From 3aa737ae155fbdf7c5ced4e8af639f5a82cc581c Mon Sep 17 00:00:00 2001 From: zhaolongfei <2651195677@qq.com> Date: Sat, 25 May 2024 13:55:57 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9C=A8=E7=BA=BF=E7=8A=B6=E6=80=81=E6=97=B6?= =?UTF-8?q?=E4=BA=8B=E5=90=8C=E6=AD=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/xboe/api/ThirdApi.java | 17 +++++++ .../com/xboe/api/vo/StudyCourseResult.java | 28 +++++++++++ .../xboe/module/course/vo/StudyCourseVo.java | 47 +++++++++++++++++++ .../xboe/school/study/api/StudyCourseApi.java | 30 +++++++----- .../src/main/resources/application.properties | 6 ++- 5 files changed, 114 insertions(+), 14 deletions(-) create mode 100644 servers/boe-server-all/src/main/java/com/xboe/api/vo/StudyCourseResult.java create mode 100644 servers/boe-server-all/src/main/java/com/xboe/module/course/vo/StudyCourseVo.java diff --git a/servers/boe-server-all/src/main/java/com/xboe/api/ThirdApi.java b/servers/boe-server-all/src/main/java/com/xboe/api/ThirdApi.java index d962b008..ee17cd40 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/api/ThirdApi.java +++ b/servers/boe-server-all/src/main/java/com/xboe/api/ThirdApi.java @@ -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 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 ListgetStudyCourseList(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(). diff --git a/servers/boe-server-all/src/main/java/com/xboe/api/vo/StudyCourseResult.java b/servers/boe-server-all/src/main/java/com/xboe/api/vo/StudyCourseResult.java new file mode 100644 index 00000000..4f62f84b --- /dev/null +++ b/servers/boe-server-all/src/main/java/com/xboe/api/vo/StudyCourseResult.java @@ -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 result; + private int status; + private Date timestamp; + + public StudyCourseResult success() { + if (this.status != 200) { + log.error("获取学习记录失败----{}", JSONUtil.toJsonPrettyStr(this)); + return null; + } + return this; + } +} diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/course/vo/StudyCourseVo.java b/servers/boe-server-all/src/main/java/com/xboe/module/course/vo/StudyCourseVo.java new file mode 100644 index 00000000..c64332eb --- /dev/null +++ b/servers/boe-server-all/src/main/java/com/xboe/module/course/vo/StudyCourseVo.java @@ -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; + } +} diff --git a/servers/boe-server-all/src/main/java/com/xboe/school/study/api/StudyCourseApi.java b/servers/boe-server-all/src/main/java/com/xboe/school/study/api/StudyCourseApi.java index 9516a83d..ea54f107 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/school/study/api/StudyCourseApi.java +++ b/servers/boe-server-all/src/main/java/com/xboe/school/study/api/StudyCourseApi.java @@ -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 study(@RequestBody StudyContentDto sci){ + public JsonResponse 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 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 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()); diff --git a/servers/boe-server-all/src/main/resources/application.properties b/servers/boe-server-all/src/main/resources/application.properties index 11ffda7a..3e2e9b14 100644 --- a/servers/boe-server-all/src/main/resources/application.properties +++ b/servers/boe-server-all/src/main/resources/application.properties @@ -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 \ No newline at end of file +userBasic.getTeacherIds=${boe.domain}/userbasic/user/getTeacherInfo +coursesuilt.getStudyStatus=${boe.domain}/stu/project/completeStatus \ No newline at end of file