Compare commits

..

9 Commits

Author SHA1 Message Date
gengxin
978e1a7bf2 分析数据 img 是否为空 2025-03-21 15:26:41 +08:00
670788339
c9db78ea94 在线课-外部讲师 补充 2025-03-21 09:42:02 +08:00
670788339
f33de0c326 在线课-外部讲师 2025-03-20 20:57:49 +08:00
670788339
4be72391ad 在线课-外部讲师报错 添加讲师类型 2025-03-20 17:37:04 +08:00
670788339
3d9b26982c 在线课-外部讲师报错 2025-03-18 11:49:53 +08:00
emcchui
a65fa797cc dev 2025-03-16 13:29:06 +08:00
emcchui
feba3237ab dev 2025-03-16 13:27:05 +08:00
670788339
2919fceef1 boenewlogin band处理 2025-02-25 17:35:47 +08:00
670788339
f7dcda551d 登录异常处理 2025-02-22 13:12:31 +08:00
7 changed files with 199 additions and 165 deletions

View File

@@ -122,12 +122,19 @@ public class OutSideDataServiceImpl implements IOutSideDataService {
//这里应该是单独的线程去处理 //这里应该是单独的线程去处理
user.setId(getNodeText(result.get("userId")));//最新接口变化id改成userId user.setId(getNodeText(result.get("userId")));//最新接口变化id改成userId
String band=getNodeText(result.get("bandCode")); String band=getNodeText(result.get("bandCode"));
if(StringUtils.isNotBlank(band) && band.length()>4) { try {
if(StringUtils.isNotBlank(band) && band.length()>4 && band.contains("band")) {
String bandNum=band.substring(4); String bandNum=band.substring(4);
user.setBandLevel(Integer.valueOf(bandNum)); user.setBandLevel(Integer.valueOf(bandNum));
}else if (StringUtils.isNotBlank(band) && band.length()>4 && band.contains("Level")) {
String bandNum=band.substring(5);
user.setBandLevel(Integer.valueOf(bandNum));
}else { }else {
user.setBandLevel(0); user.setBandLevel(0);
} }
} catch (NumberFormatException e) {
user.setBandLevel(0);
}
user.setAvatar(getNodeText(result.get("avatar"))); user.setAvatar(getNodeText(result.get("avatar")));
user.setCode(getNodeText(result.get("userNo"))); user.setCode(getNodeText(result.get("userNo")));

View File

@@ -314,8 +314,10 @@ public class CoursePortalApi extends ApiBaseController{
User user = userService.get(ct.getTeacherId()); User user = userService.get(ct.getTeacherId());
if(t!=null) { if(t!=null) {
ct.setRemark(t.getDescription()); ct.setRemark(t.getDescription());
ct.setSupplier(t.getSupplier());
ct.setTeacherType(t.getTeacherType());
if(redisTemplate.opsForValue().get(ct.getTeacherId())!=null){ if(redisTemplate.opsForValue().get(ct.getTeacherId())!=null){
if(Objects.equals(redisTemplate.opsForValue().get(ct.getTeacherId()), "1")){ if(Objects.equals(redisTemplate.opsForValue().get(ct.getTeacherId()), "1") && ( t==null || t.getTeacherType() == 1)){
ct.setTeacherName("BOE教师"); ct.setTeacherName("BOE教师");
} }
teacherCourseDto.setCourseId(ct.getCourseId()); teacherCourseDto.setCourseId(ct.getCourseId());
@@ -327,13 +329,15 @@ public class CoursePortalApi extends ApiBaseController{
teacherCourseDto.setSysCreateBy(ct.getSysCreateBy()); teacherCourseDto.setSysCreateBy(ct.getSysCreateBy());
teacherCourseDto.setSysCreateTime(ct.getSysCreateTime()); teacherCourseDto.setSysCreateTime(ct.getSysCreateTime());
teacherCourseDto.setId(ct.getId()); teacherCourseDto.setId(ct.getId());
if(user!=null){
teacherCourseDto.setUserNo(user.getUserNo()); teacherCourseDto.setUserNo(user.getUserNo());
}
teacherCourseDtos.add(teacherCourseDto); teacherCourseDtos.add(teacherCourseDto);
}else if (redisTemplate.opsForValue().get(ct.getTeacherId())==null){ }else if (redisTemplate.opsForValue().get(ct.getTeacherId())==null){
List<String> list=new ArrayList<>(); List<String> list=new ArrayList<>();
list.add(ct.getTeacherId()); list.add(ct.getTeacherId());
getTeacherInfo(request.getHeader("Xboe-Access-Token"),list); getTeacherInfo(request.getHeader("Xboe-Access-Token"),list);
if(Objects.equals(redisTemplate.opsForValue().get(ct.getTeacherId()), "1")){ if(Objects.equals(redisTemplate.opsForValue().get(ct.getTeacherId()), "1") && ( t==null || t.getTeacherType() == 1)){
ct.setTeacherName("BOE教师"); ct.setTeacherName("BOE教师");
} }
teacherCourseDto.setCourseId(ct.getCourseId()); teacherCourseDto.setCourseId(ct.getCourseId());
@@ -345,7 +349,9 @@ public class CoursePortalApi extends ApiBaseController{
teacherCourseDto.setSysCreateBy(ct.getSysCreateBy()); teacherCourseDto.setSysCreateBy(ct.getSysCreateBy());
teacherCourseDto.setSysCreateTime(ct.getSysCreateTime()); teacherCourseDto.setSysCreateTime(ct.getSysCreateTime());
teacherCourseDto.setId(ct.getId()); teacherCourseDto.setId(ct.getId());
if(user!=null){
teacherCourseDto.setUserNo(user.getUserNo()); teacherCourseDto.setUserNo(user.getUserNo());
}
teacherCourseDtos.add(teacherCourseDto); teacherCourseDtos.add(teacherCourseDto);
} }
} }

View File

@@ -49,4 +49,11 @@ public class CourseTeacher extends IdBaseEntity {
@Transient @Transient
private String code; private String code;
/**供应商*/
@Transient
private String supplier;
/**讲师类型 1 内部讲师 2外部讲师*/
@Transient
private Integer teacherType;
} }

View File

@@ -204,6 +204,8 @@ public class StudyCourseApi extends ApiBaseController{
Teacher t = teacherService.get(ct.getTeacherId()); Teacher t = teacherService.get(ct.getTeacherId());
if(t!=null) { if(t!=null) {
ct.setRemark(t.getDescription()); ct.setRemark(t.getDescription());
ct.setSupplier(t.getSupplier());
ct.setTeacherType(t.getTeacherType());
} }
if(redisTemplate.opsForValue().get(ct.getTeacherId())==null){ if(redisTemplate.opsForValue().get(ct.getTeacherId())==null){
List<String>list=new ArrayList<>(); List<String>list=new ArrayList<>();
@@ -212,11 +214,11 @@ public class StudyCourseApi extends ApiBaseController{
redisTemplate.opsForValue().set(teacherVo.get(0).getTeacherId(), teacherVo.get(0).getStatus()); redisTemplate.opsForValue().set(teacherVo.get(0).getTeacherId(), teacherVo.get(0).getStatus());
//设置过期时间为1天 //设置过期时间为1天
redisTemplate.expire(teacherVo.get(0).getTeacherId(), 24 * 60 * 60, TimeUnit.SECONDS); redisTemplate.expire(teacherVo.get(0).getTeacherId(), 24 * 60 * 60, TimeUnit.SECONDS);
if (Objects.equals(redisTemplate.opsForValue().get(ct.getTeacherId()), "1")){ if (Objects.equals(redisTemplate.opsForValue().get(ct.getTeacherId()), "1") && ( t==null || t.getTeacherType() == 1)){
ct.setTeacherName("BOE教师"); ct.setTeacherName("BOE教师");
} }
} }
if (Objects.equals(redisTemplate.opsForValue().get(ct.getTeacherId()), "1")){ if (Objects.equals(redisTemplate.opsForValue().get(ct.getTeacherId()), "1") && ( t==null || t.getTeacherType() == 1)){
ct.setTeacherName("BOE教师"); ct.setTeacherName("BOE教师");
} }
} }

View File

@@ -1,9 +1,18 @@
package com.xboe.school.study.api; package com.xboe.school.study.api;
import java.io.IOException; import java.io.IOException;
import java.time.LocalDateTime;
import java.time.ZoneOffset; import java.time.ZoneOffset;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import cn.hutool.core.collection.CollectionUtil;
import com.alibaba.fastjson2.JSON;
import com.xboe.core.orm.FieldFilters;
import com.xboe.core.orm.QueryBuilder;
import com.xboe.module.course.dao.CourseDao;
import com.xboe.module.course.dto.RankingDto;
import com.xboe.module.course.entity.Course;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
@@ -42,6 +51,9 @@ public class StudyCourseESApi extends ApiBaseController{
@Autowired @Autowired
IStudyCourseService service; IStudyCourseService service;
@Resource
private CourseDao courseDao;
@Resource @Resource
private PhpOnlineStudyRecordScheduledTasks phpOnlineStudyRecordScheduledTasks; private PhpOnlineStudyRecordScheduledTasks phpOnlineStudyRecordScheduledTasks;
@@ -54,6 +66,58 @@ public class StudyCourseESApi extends ApiBaseController{
try { try {
dto.setAccountId(getCurrent().getAccountId()); dto.setAccountId(getCurrent().getAccountId());
PageList<CourseStudyDto> rs=search.search(page.getStartRow(),page.getPageSize(), dto); PageList<CourseStudyDto> rs=search.search(page.getStartRow(),page.getPageSize(), dto);
List<CourseStudyDto> list = rs.getList();
List<String> emptyIds = new ArrayList<>();
log.info("test data gengxin CourseStudyDto list ==> {}", JSON.toJSONString(list));
if(CollectionUtil.isNotEmpty(list)){
log.info("test data gengxin CourseStudyDto isNotEmpty list ==> {}", JSON.toJSONString(list));
//todo 过滤数据
for(CourseStudyDto courseStudyDto : list){
log.info("test data gengxin CourseStudyDto isNotEmpty item ==> {}", JSON.toJSONString(courseStudyDto));
//在线课 录播课
if(courseStudyDto.getCourseType() == 20 || courseStudyDto.getCourseType() == 21){
if(StringUtils.isBlank(courseStudyDto.getCourseImage())){
emptyIds.add(courseStudyDto.getCourseId());
}
}
}
//todo 图片空返回结果
List<CourseStudyDto> emptyImgCourseStudyDtos = new ArrayList();
//在线课查询
if(CollectionUtil.isNotEmpty(emptyIds)){
QueryBuilder query = QueryBuilder.from(Course.class);
query.addFields("id","name","type","coverImg");
//todo 确认下 是否是这个字段
query.addFilter(FieldFilters.in("id",emptyIds));
query.addFilter(FieldFilters.eq("enabled",true));
query.addFilter(FieldFilters.eq("deleted",false));
List<Object[]> listFields = courseDao.findListFields(query.builder());
log.info("test data gengxin CourseStudyDto isNotEmpty listFields ==> {}", JSON.toJSONString(listFields));
if(CollectionUtil.isNotEmpty(listFields)){
for(Object[] objs : listFields) {
CourseStudyDto CourseStudyDtoResult=new CourseStudyDto();
CourseStudyDtoResult.setId((String) objs[0]);
CourseStudyDtoResult.setCourseName((String)objs[1]);
CourseStudyDtoResult.setCourseType((Integer) objs[2]);
CourseStudyDtoResult.setCourseImage((String)objs[3]);
emptyImgCourseStudyDtos.add(CourseStudyDtoResult);
}
}
log.info("test data gengxin CourseStudyDto isNotEmpty emptyImgCourseStudyDtos ==> {}", JSON.toJSONString(emptyImgCourseStudyDtos));
//todo 进行赋值处理 最外层
emptyImgCourseStudyDtos.forEach(item -> {
list.forEach(subjectItem -> {
if(item.getCourseId().equals(subjectItem.getCourseId())){
//赋值
subjectItem.setCourseImage(item.getCourseImage());
}
});
});
log.info("test data gengxin CourseStudyDto isNotEmpty result ==> {}", JSON.toJSONString(list));
}
}
return success(rs); return success(rs);
}catch(Exception e) { }catch(Exception e) {
log.error("查询报名学习ES失败",e); log.error("查询报名学习ES失败",e);

View File

@@ -1,159 +1,102 @@
boe:
domain: http://192.168.0.253
spring: spring:
# application.yml
servlet: servlet:
multipart: multipart:
max-file-size: 500MB max-file-size: 1000MB
max-request-size: 500MB max-request-size: 1000MB
redis:
database: 1
host: 192.168.0.101
password: boe@123
port: 6379
lettuce:
pool:
max-active: 8
min-idle: 0
max-idle: 30
max-wait: 10000ms
shutdown-timeout: 100ms
jpa:
database: MYSQL
properties:
hibernate:
naming_strategy: org.hibernate.cfg.EJB3NamingStrategy
dialect: org.hibernate.dialect.MySQL5InnoDBDialect
current_session_context_class: org.springframework.orm.hibernate5.SpringSessionContext
show-sql: true
hibernate:
ddl-auto: update
datasource:
driverClassName: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://192.168.0.101:3306/boe_base?useSSL=false&useUnicode=true&characterEncoding=UTF8&zeroDateTimeBehavior=convertToNull
username: root
password: boe#1234A
web: web:
resources: resources:
static-locations: file:E:/Projects/BOE/10/static static-locations: file:E:/Projects/BOE/java/static
server: cloud:
port: 9090 nacos:
servlet: discovery:
multipart: server-addr: 192.168.0.253:8848
max-file-size: 500MB config:
max-request-size: 500MB server-addr: 192.168.0.253:8848
session: redis:
timeout: 30m database: 1
encoding: host: 192.168.0.253
charset: UTF-8 password: boe@123
enabled: true port: 6379
force: true jpa:
tomcat: hibernate:
uri-encoding: UTF-8 ddl-auto: none
servlet: datasource:
multipart: driverClassName: com.mysql.jdbc.Driver
maxFileSize: 1024MB url: jdbc:mysql://192.168.0.253:3306/boe_base?useSSL=false&useUnicode=true&characterEncoding=UTF8&zeroDateTimeBehavior=convertToNull
maxRequestSize: 1024MB username: root
mvc: password: boe#1234A
static-path-pattern: /cdn/** type: com.zaxxer.hikari.HikariDataSource
hikari:
#logging.level.org.hibernate.SQL=DEBUG auto-commit: true
#logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE minimum-idle: 5
#logging.config=classpath:log/logback-@profileActive@.xml idle-timeout: 60000
connection-timeout: 30000
# logging: max-lifetime: 1800000
# config: classpath:log/logback-${spring.profiles.active}.xml maximum-pool-size: 20
# level: logging:
# org: level:
# hibernate: org:
# SQL: DEBUG hibernate:
# type: SQL: ERROR
# descriptor: config: classpath:log/logback-@profileActive@.xml
# sql:
# BasicBinder: TRACE
xcaching:
specs:
favorites:
timeout: 10s
praises:
timeout: 10s
shares:
timeout: 10s
xboe: xboe:
api: api:
cross_filter: true cross_filter: true
local:
dev: true
upload: upload:
file: file:
temp_path: D:/Projects/BOE/10/static/temp temp_path: /tmp
save_path: /home/www/elearning/upload save_path: /home/www/elearning/upload
http_path: http://127.0.0.1/upload http_path: http://192.168.0.253/upload
externalinterface: externalinterface:
url: url:
system: http://localhost:9091 system: http://127.0.0.1:9091
old: old:
base: base:
url: http://192.168.0.101 url: http://192.168.0.253
server:
userbasic:
url: http://192.168.0.101/userbasic
stat: stat:
base: base:
url: http://127.0.0.1:9080 url: http://127.0.0.1:9080
server:
userbasic:
url: http://192.168.0.253/userbasic
elasticsearch: elasticsearch:
server: server:
ip: 192.168.0.101 ip: 192.168.0.253
port: 9200 port: 9200
user: user:
password: password:
email: email:
url: http://192.168.0.101/api/b1/email/send url: http://192.168.0.253/api/b1/email/send
from: boeu_learning@boe.com.cn from: boeu_learning@boe.com.cn
user: user:
security: security:
jasypt:
jasypt:
encryptor: encryptor:
algorithm: PBEWithMD5AndDES algorithm: PBEWithMD5AndDES
iv-generator-classname: org.jasypt.iv.NoIvGenerator iv-generator-classname: org.jasypt.iv.NoIvGenerator
xxl:
boe: job:
domain: http://127.0.0.1 accessToken: 65ddc683-22f5-83b4-de3a-3c97a0a29af0
admin:
ok: addresses: http://192.168.0.253/jobAdmin
http: executor:
connect-timeout: 30 appname: java-servers-job-api
read-timeout: 30 port: 9995
write-timeout: 30 address:
max-idle-connections: 200 ip:
keep-alive-duration: 300 logpath: /var/log/xxl-job/dw/
logretentiondays: 30
aop-log-record:
#是否开启日志记录
orgTree: enabled: true
orgTreeList: ${boe.domain}/userbasic/org/list #不进行拦截的包或者类
orgChildTreeList: ${boe.domain}/userbasic/org/childOrgs excludeClassNames:
activemq:
userBasic: broker-url: tcp://192.168.0.253:61616
searchUserList: ${boe.domain}/userbasic/user/list user: admin
getUserBasicInfo: ${boe.domain}/userbasic/user/getUserBasicInfo password: admin
getTeacherIds: ${boe.domain}/userbasic/user/getTeacherInfo elasticsearch:
host: 192.168.0.253
audience: port: 9200
usersByAudienceList: ${boe.domain}/userbasic/audience/memberList
getOrgUsers: ${boe.domain}/userbasic/user/getOrgUsers
statApi:
userdynamicList: ${boe.domain}/statApi/xboe/m/stat/userdynamic/list
infrasApi:
dict: ${boe.domain}/infrasApi/dict/list
manageApi:
stu:
offcourse: ${boe.domain}/manageApi/stu/offcourse/getOffCourseId
editExam: ${boe.domain}/manageApi/admin/project/editExam
getStudyStatus: ${boe.domain}/manageApi/stu/project/completeStatus
coursesuilt:
getStudyStatus: ${boe.domain}/manageApi/stu/project/completeStatus

View File

@@ -1,13 +1,13 @@
# application-dev.yml # application-pro.yml
spring: spring:
redis: redis:
database: 2 database: 1
port: 6379 host: 192.168.0.253
host: 192.168.0.101
password: boe@123 password: boe@123
port: 6379
jpa: jpa:
hibernate: hibernate:
ddl-auto: none ddl-auto: update
open-in-view: false open-in-view: false
properties: properties:
hibernate: hibernate:
@@ -16,14 +16,15 @@ spring:
driverClassName: com.mysql.jdbc.Driver driverClassName: com.mysql.jdbc.Driver
db1: db1:
driverClassName: com.mysql.jdbc.Driver driverClassName: com.mysql.jdbc.Driver
jdbc-url: jdbc:mysql://192.168.0.101:3306/boe_basic?useSSL=false&useUnicode=true&characterEncoding=UTF8&zeroDateTimeBehavior=convertToNull jdbc-url: jdbc:mysql://192.168.0.253:3306/boe_basic?useSSL=false&useUnicode=true&characterEncoding=UTF8&zeroDateTimeBehavior=convertToNull
username: root username: root
password: boe#1234A password: boe#1234A
db2: db2:
driverClassName: com.mysql.jdbc.Driver driverClassName: com.mysql.jdbc.Driver
jdbc-url: jdbc:mysql://192.168.0.101:3306/boe_base?useSSL=false&useUnicode=true&characterEncoding=UTF8&zeroDateTimeBehavior=convertToNull jdbc-url: jdbc:mysql://192.168.0.253:3306/boe_base?useSSL=false&useUnicode=true&characterEncoding=UTF8&zeroDateTimeBehavior=convertToNull
username: root username: root
password: boe#1234A password: boe#1234A
web: web:
resources: resources:
static-locations: file:E:/Projects/BOE/java/static static-locations: file:E:/Projects/BOE/java/static
@@ -32,23 +33,27 @@ logging:
level: level:
org: org:
hibernate: hibernate:
SQL: DEBUG SQL: ERROR
type: # type:
descriptor: # descriptor:
sql: # sql:
BasicBinder: TRACE # BasicBinder: TRACE
config: classpath:log/logback-dev.xml config: classpath:log/logback-dev.xml
xboe: xboe:
api:
cross_filter: true
upload: upload:
file: file:
temp_path: E:/Projects/BOE/java/static/temp temp_path: /tmp
save_path: E:/Projects/BOE/java/static/upload save_path: /home/www/elearning/upload
http_path: http://localhost:9090/upload http_path: http://192.168.0.253/upload
inner: inner:
data: data:
sync: sync:
baseurl: http://localhost:9090 baseurl: http://127.0.0.1:9090
jasypt: jasypt:
encryptor: encryptor: