Merge branch 'zcwy_yk'

# Conflicts:
#	servers/boe-server-all/src/main/java/com/xboe/module/course/api/CourseFullTextApi.java
This commit is contained in:
670788339
2024-03-01 15:41:14 +08:00

View File

@@ -1,12 +1,13 @@
package com.xboe.module.course.api; package com.xboe.module.course.api;
import java.util.ArrayList;
import java.util.Arrays; import java.util.*;
import java.util.List;
import java.util.Objects;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.lang.Opt;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.core.JsonProcessingException;
import com.xboe.api.ThirdApi; import com.xboe.api.ThirdApi;
import com.xboe.data.dto.UserData; import com.xboe.data.dto.UserData;
@@ -224,7 +225,6 @@ public class CourseFullTextApi extends ApiBaseController{
*/ */
@PostMapping("/search") @PostMapping("/search")
public JsonResponse<PageList<CourseFullText>> search(Pagination pager, CourseQueryDto dto, Integer minDuration, Integer maxDuration, HttpServletRequest request) throws JsonProcessingException { public JsonResponse<PageList<CourseFullText>> search(Pagination pager, CourseQueryDto dto, Integer minDuration, Integer maxDuration, HttpServletRequest request) throws JsonProcessingException {
//获取例外人员id //获取例外人员id
List<String> userId = thirdApi.getUserId(); List<String> userId = thirdApi.getUserId();
log.info("获取例外人员id userId = " + userId ); log.info("获取例外人员id userId = " + userId );
@@ -232,7 +232,6 @@ public class CourseFullTextApi extends ApiBaseController{
// String userIds="132,123"; // String userIds="132,123";
//获取没报名课程的id //获取没报名课程的id
String token = request.getHeader("Xboe-Access-Token"); String token = request.getHeader("Xboe-Access-Token");
//
if (StringUtils.isEmpty(token)) { if (StringUtils.isEmpty(token)) {
token = request.getHeader("token"); token = request.getHeader("token");
} }
@@ -333,23 +332,28 @@ public class CourseFullTextApi extends ApiBaseController{
} }
} }
} }
//为面授课的时候 //为面授课的时候
if(teachers.size()==0){ if (teachers.size() == 0) {
log.info("查询面授课");
for (CourseFullText courseFullText : coursePageList.getList()) { for (CourseFullText courseFullText : coursePageList.getList()) {
log.info("教师状态="+redisTemplate.opsForValue().get(courseFullText.getTeacherCode())); List<String> singleTeacherNameList = Arrays.asList(courseFullText.getTeacher().split(","));
if (redisTemplate.opsForValue().get(courseFullText.getTeacherCode())==null){ List<String> singleTeacherCodeList = Arrays.asList(courseFullText.getTeacherCode().split(","));
getTeacherStatusByCode(token, coursePageList); log.info("课程name="+courseFullText.getName());
if(Objects.equals(redisTemplate.opsForValue().get(courseFullText.getTeacherCode()), "1")){ for (int i=0;i<singleTeacherCodeList.size();i++){
log.info("redis无信息设置教师"); String singleTeacherCode=singleTeacherCodeList.get(i);
courseFullText.setTeacher("BOE教师"); log.info("工号为"+singleTeacherCode);
log.info("教师状态为:" + redisTemplate.opsForValue().get(singleTeacherCode));
if (StringUtils.isEmpty(redisTemplate.opsForValue().get(singleTeacherCode))) {
syncTeacherStatusToRedis(token, coursePageList);
} }
}else { if (Objects.equals(redisTemplate.opsForValue().get(singleTeacherCode), "1")) {
if(Objects.equals(redisTemplate.opsForValue().get(courseFullText.getTeacherCode()), "1")){ log.info("教师已离职,工号:"+singleTeacherCode);
log.info("状态="+redisTemplate.opsForValue().get(courseFullText.getTeacherCode())); singleTeacherNameList.set(i,"BOE教师");
courseFullText.setTeacher("BOE教师");
} }
} }
String finalTeacherNames = String.join(",", singleTeacherNameList);
courseFullText.setTeacher(finalTeacherNames);
} }
} }
@@ -416,7 +420,7 @@ public class CourseFullTextApi extends ApiBaseController{
for (TeacherVo teacherVo : teacherInfoByCode) { for (TeacherVo teacherVo : teacherInfoByCode) {
redisTemplate.opsForValue().set(teacherVo.getTeacherCode(), teacherVo.getStatus()); redisTemplate.opsForValue().set(teacherVo.getTeacherCode(), teacherVo.getStatus());
//设置过期时间为1天 //设置过期时间为1天
redisTemplate.expire(teacherVo.getTeacherId(), 24 * 60 * 60, TimeUnit.SECONDS); redisTemplate.expire(teacherVo.getTeacherCode(), 24 * 60 * 60, TimeUnit.SECONDS);
} }
} }
@@ -440,4 +444,23 @@ public class CourseFullTextApi extends ApiBaseController{
} }
} }
private void syncTeacherStatusToRedis(String token, PageList<CourseFullText> coursePageList) {
List<String> allTeacherCodeList = Opt.ofEmptyAble(coursePageList.getList()).stream().flatMap(Collection::stream)
.flatMap(courseFullText -> {
return Arrays.asList(courseFullText.getTeacherCode().split(",")).stream();
}).collect(Collectors.toList());
log.info("同步教师状态到redis allTeacherCodeList = " + allTeacherCodeList);
//用户中心接口,根据工号获取人员信息
List<TeacherVo> TeacherVoList = thirdApi.getTeacherInfoByCode(allTeacherCodeList, token);
log.info("同步教师状态到redis TeacherVoList = " + TeacherVoList);
if (CollectionUtil.isNotEmpty(TeacherVoList)) {
for (TeacherVo teacherVo : TeacherVoList) {
redisTemplate.opsForValue().set(teacherVo.getTeacherCode(), teacherVo.getStatus());
//设置过期时间为1天
redisTemplate.expire(teacherVo.getTeacherCode(), 24 * 60 * 60, TimeUnit.SECONDS);
}
}
}
} }