在线状态时事同步

This commit is contained in:
zhaolongfei
2024-05-25 13:55:57 +08:00
parent b872983795
commit 3aa737ae15
5 changed files with 114 additions and 14 deletions

View File

@@ -5,9 +5,11 @@ import cn.hutool.core.lang.Opt;
import cn.hutool.http.HttpRequest;
import cn.hutool.json.JSONUtil;
import com.xboe.api.vo.*;
import com.xboe.module.course.vo.StudyCourseVo;
import com.xboe.module.course.vo.TeacherInfoVo;
import com.xboe.module.course.vo.TeacherVo;
import com.xboe.module.dict.entity.DictDto;
import com.xboe.school.study.entity.StudyCourse;
import com.xboe.system.user.dao.UserDao;
import com.xboe.system.user.entity.User;
import lombok.extern.slf4j.Slf4j;
@@ -57,6 +59,9 @@ public class ThirdApi {
@Value("${userBasic.getTeacherIds}")
private String getTeacherIds;
@Value("${coursesuilt.getStudyStatus}")
private String getStudyStatus;
//获取例外人员的id
public List<String> getUserId(){
String responseBody = Optional.ofNullable(HttpRequest.get(infarasApiUrl+"?pid=316&type=1").execute() //prod 316
@@ -189,6 +194,18 @@ public class ThirdApi {
Opt.ofBlankAble(resp).map(t -> JSONUtil.toBean(t, DynamicBean.class).success()).map(DynamicBean::getResult).map(UserDynamicResult::getList).stream().flatMap(Collection::stream).forEach(list::add);
}
public List<StudyCourse>getStudyCourseList(String studyId,String contentId, String token){
StudyCourseVo studyCourseVo = new StudyCourseVo();
studyCourseVo.setStudyId(studyId);
studyCourseVo.setContentId(contentId);
String resp = Optional.ofNullable(
HttpRequest.post(getStudyStatus).body(JSONUtil.toJsonStr(studyCourseVo)).header("token", token).execute()
.body()).orElseThrow(() -> new RuntimeException("token校验失败"));
StudyCourseResult studyCourseResult = JSONUtil.toBean(resp, StudyCourseResult.class);
log.info("getTeacherIdsResult = " + studyCourseResult);
return studyCourseResult.getResult();
}
public static void main(String[] args) {
String token = "eyJ0eXBlIjoidG9rZW4iLCJhbGciOiJIUzI1NiJ9.eyJjb21wYW55Q29kZSI6IkMwMDEiLCJ1SWQiOiI5NjUzNDIwMjc0OTc2MDcxNjgiLCJjb21wYW55SWQiOiIxMDQxNjczOTc3Mzc5OTQ2NDk2IiwibG9naW5JZCI6IjE2ODg0NDg5MjIwNzY0OTE3NzgiLCJpc3MiOiJodHRwOi8vdS5ib2UuY29tIiwiR2l2ZW5OYW1lIjoiYm9ldSIsImV4cCI6MTY5MTM5OTc2NzU1OCwidXNlck5hbWUiOiLmnY7njonlhrAiLCJ1c2VySWQiOiI2QjA0OUZBRi1DMzE0LTdDQ0YtMEQyOC0wRDIzRjRDNDI1MzEifQ==.8b52dcf4d48a790ed258b9ca2b279bb269f5301722095382fbd352705b51c893";
String resp = Optional.ofNullable(HttpRequest.post("https://u-pre.boe.com/statApi/xboe/m/stat/userdynamic/list").body(JSONUtil.toJsonStr(UserdynamicParam.builder().

View File

@@ -0,0 +1,28 @@
package com.xboe.api.vo;
import cn.hutool.json.JSONUtil;
import com.xboe.school.study.entity.StudyCourse;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import java.util.Date;
import java.util.List;
@Data
@Slf4j
public class StudyCourseResult {
private String error;
private String message;
private String permissions;
private List<StudyCourse> result;
private int status;
private Date timestamp;
public StudyCourseResult success() {
if (this.status != 200) {
log.error("获取学习记录失败----{}", JSONUtil.toJsonPrettyStr(this));
return null;
}
return this;
}
}

View File

@@ -0,0 +1,47 @@
package com.xboe.module.course.vo;
import lombok.Data;
/**
* 课程内容学习记录
* */
@Data
public class StudyCourseVo {
private Long userId;
private String studyId;
private Long courseId;
private String contentId;
public Long getUserId() {
return userId;
}
public void setUserId(Long userId) {
this.userId = userId;
}
public String getStudyId() {
return studyId;
}
public void setStudyId(String studyId) {
this.studyId = studyId;
}
public Long getCourseId() {
return courseId;
}
public void setCourseId(Long courseId) {
this.courseId = courseId;
}
public String getContentId() {
return contentId;
}
public void setContentId(String contentId) {
this.contentId = contentId;
}
}

View File

@@ -7,10 +7,7 @@ import java.util.stream.Collectors;
import cn.hutool.core.util.ArrayUtil;
import com.xboe.api.ThirdApi;
import com.xboe.api.vo.AuditList;
import com.xboe.api.vo.AuditListParam;
import com.xboe.api.vo.UserDynamic;
import com.xboe.api.vo.UserdynamicParam;
import com.xboe.api.vo.*;
import com.xboe.module.course.vo.TeacherVo;
import com.xboe.module.usergroup.entity.UserGroupItem;
import com.xboe.module.usergroup.service.IUserGroupService;
@@ -77,8 +74,10 @@ public class StudyCourseApi extends ApiBaseController{
@Autowired
ICourseService courseService;
@Resource
private ThirdApi thirdApi;
@Autowired
private ICourseContentService contentService;
@@ -94,9 +93,6 @@ public class StudyCourseApi extends ApiBaseController{
@Autowired
private IUserGroupService userGroupService;
@Resource
private ThirdApi thirdApi;
@Autowired
StringRedisTemplate redisTemplate;
@@ -297,7 +293,7 @@ public class StudyCourseApi extends ApiBaseController{
* @return 返回学习条目的id
*/
@PostMapping("/study")
public JsonResponse<String> study(@RequestBody StudyContentDto sci){
public JsonResponse<String> study(@RequestBody StudyContentDto sci, HttpServletRequest request){
if(StringUtils.isBlank(sci.getStudyId())){
return error("参数错误");
@@ -321,16 +317,23 @@ public class StudyCourseApi extends ApiBaseController{
// st.setStudentId(cuser.getAccountId());
// st.setStudentName(cuser.getName());
// st.setStudyId(sci.getStudyId());
String token = request.getHeader("Xboe-Access-Token");
if (StringUtils.isEmpty(token)) {
token = request.getHeader("token");
}
//检查是否已存在
StudyCourseItem item = studyService.checkHas(sci.getStudyId(),sci.getContentId());
if(item!=null) {
//如果记录存在但是进度不100无成情况就更新进度一期不会有这种情况
if(item.getProgress()<100 && sci.getProgress()>item.getProgress()) {
studyService.updateProcess(item.getId(),sci.getStudyId(),sci.getCourseId(), sci.getContentTotal(),sci.getProgress());
studyService.updateProcess(item.getId(), sci.getStudyId(), sci.getCourseId(), sci.getContentTotal(), sci.getProgress());
}
List<StudyCourse> allUserList = thirdApi.getStudyCourseList(sci.getStudyId(), sci.getContentId(), token);
log.info("在线课学习记录"+allUserList);
System.out.println("在线课学习记录"+allUserList);
//追加学习时长
studyService.appendStudyDuration(sci.getStudyId(),item.getId(),sci.getContentId(),sci.getDuration());
return success(item.getId());
}
@@ -346,6 +349,9 @@ public class StudyCourseApi extends ApiBaseController{
sci.setAname(cuser.getName());
studyService.saveStudyInfo(sci);
List<StudyCourse> allUserList = thirdApi.getStudyCourseList(sci.getStudyId(), sci.getContentId(), token);
log.info("在线课学习记录"+allUserList);
System.out.println("在线课学习记录"+allUserList);
//学习记录成功后处理
studyService.appendStudyDuration(sci.getStudyId(),sci.getStudyItemId(),sci.getContentId(),sci.getDuration());
return success(sci.getStudyItemId());

View File

@@ -56,7 +56,8 @@ logging.config=classpath:log/logback-@profileActive@.xml
# config.id.generator.datacenter.num=1
#boe.domain=https://pretest.zcwytd.com
boe.domain=https://u.boe.com
#boe.domain=https://u.boe.com
boe.domain=http://localhost:30001
orgTree.orgTreeList=${boe.domain}/userbasic/org/list
# ????id????????????
orgTree.orgChildTreeList=${boe.domain}/userbasic/org/childOrgs
@@ -71,4 +72,5 @@ infrasApi.dict=${boe.domain}/infrasApi/dict/list
#获取非报名课id
manageApi.stu.offcourse=${boe.domain}/manageApi/stu/offcourse/getOffCourseId
#获取离职教师id
userBasic.getTeacherIds=${boe.domain}/userbasic/user/getTeacherInfo
userBasic.getTeacherIds=${boe.domain}/userbasic/user/getTeacherInfo
coursesuilt.getStudyStatus=${boe.domain}/stu/project/completeStatus