mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/per-boe/java-servers.git
synced 2025-12-11 03:46:50 +08:00
在线状态时事同步
This commit is contained in:
@@ -5,9 +5,11 @@ import cn.hutool.core.lang.Opt;
|
|||||||
import cn.hutool.http.HttpRequest;
|
import cn.hutool.http.HttpRequest;
|
||||||
import cn.hutool.json.JSONUtil;
|
import cn.hutool.json.JSONUtil;
|
||||||
import com.xboe.api.vo.*;
|
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.TeacherInfoVo;
|
||||||
import com.xboe.module.course.vo.TeacherVo;
|
import com.xboe.module.course.vo.TeacherVo;
|
||||||
import com.xboe.module.dict.entity.DictDto;
|
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.dao.UserDao;
|
||||||
import com.xboe.system.user.entity.User;
|
import com.xboe.system.user.entity.User;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
@@ -57,6 +59,9 @@ public class ThirdApi {
|
|||||||
@Value("${userBasic.getTeacherIds}")
|
@Value("${userBasic.getTeacherIds}")
|
||||||
private String getTeacherIds;
|
private String getTeacherIds;
|
||||||
|
|
||||||
|
|
||||||
|
@Value("${coursesuilt.getStudyStatus}")
|
||||||
|
private String getStudyStatus;
|
||||||
//获取例外人员的id
|
//获取例外人员的id
|
||||||
public List<String> getUserId(){
|
public List<String> getUserId(){
|
||||||
String responseBody = Optional.ofNullable(HttpRequest.get(infarasApiUrl+"?pid=316&type=1").execute() //prod 316
|
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);
|
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) {
|
public static void main(String[] args) {
|
||||||
String token = "eyJ0eXBlIjoidG9rZW4iLCJhbGciOiJIUzI1NiJ9.eyJjb21wYW55Q29kZSI6IkMwMDEiLCJ1SWQiOiI5NjUzNDIwMjc0OTc2MDcxNjgiLCJjb21wYW55SWQiOiIxMDQxNjczOTc3Mzc5OTQ2NDk2IiwibG9naW5JZCI6IjE2ODg0NDg5MjIwNzY0OTE3NzgiLCJpc3MiOiJodHRwOi8vdS5ib2UuY29tIiwiR2l2ZW5OYW1lIjoiYm9ldSIsImV4cCI6MTY5MTM5OTc2NzU1OCwidXNlck5hbWUiOiLmnY7njonlhrAiLCJ1c2VySWQiOiI2QjA0OUZBRi1DMzE0LTdDQ0YtMEQyOC0wRDIzRjRDNDI1MzEifQ==.8b52dcf4d48a790ed258b9ca2b279bb269f5301722095382fbd352705b51c893";
|
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().
|
String resp = Optional.ofNullable(HttpRequest.post("https://u-pre.boe.com/statApi/xboe/m/stat/userdynamic/list").body(JSONUtil.toJsonStr(UserdynamicParam.builder().
|
||||||
|
|||||||
@@ -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;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -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;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -7,10 +7,7 @@ import java.util.stream.Collectors;
|
|||||||
|
|
||||||
import cn.hutool.core.util.ArrayUtil;
|
import cn.hutool.core.util.ArrayUtil;
|
||||||
import com.xboe.api.ThirdApi;
|
import com.xboe.api.ThirdApi;
|
||||||
import com.xboe.api.vo.AuditList;
|
import com.xboe.api.vo.*;
|
||||||
import com.xboe.api.vo.AuditListParam;
|
|
||||||
import com.xboe.api.vo.UserDynamic;
|
|
||||||
import com.xboe.api.vo.UserdynamicParam;
|
|
||||||
import com.xboe.module.course.vo.TeacherVo;
|
import com.xboe.module.course.vo.TeacherVo;
|
||||||
import com.xboe.module.usergroup.entity.UserGroupItem;
|
import com.xboe.module.usergroup.entity.UserGroupItem;
|
||||||
import com.xboe.module.usergroup.service.IUserGroupService;
|
import com.xboe.module.usergroup.service.IUserGroupService;
|
||||||
@@ -77,8 +74,10 @@ public class StudyCourseApi extends ApiBaseController{
|
|||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
ICourseService courseService;
|
ICourseService courseService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private ThirdApi thirdApi;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private ICourseContentService contentService;
|
private ICourseContentService contentService;
|
||||||
|
|
||||||
@@ -94,9 +93,6 @@ public class StudyCourseApi extends ApiBaseController{
|
|||||||
@Autowired
|
@Autowired
|
||||||
private IUserGroupService userGroupService;
|
private IUserGroupService userGroupService;
|
||||||
|
|
||||||
@Resource
|
|
||||||
private ThirdApi thirdApi;
|
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
StringRedisTemplate redisTemplate;
|
StringRedisTemplate redisTemplate;
|
||||||
|
|
||||||
@@ -297,7 +293,7 @@ public class StudyCourseApi extends ApiBaseController{
|
|||||||
* @return 返回学习条目的id
|
* @return 返回学习条目的id
|
||||||
*/
|
*/
|
||||||
@PostMapping("/study")
|
@PostMapping("/study")
|
||||||
public JsonResponse<String> study(@RequestBody StudyContentDto sci){
|
public JsonResponse<String> study(@RequestBody StudyContentDto sci, HttpServletRequest request){
|
||||||
|
|
||||||
if(StringUtils.isBlank(sci.getStudyId())){
|
if(StringUtils.isBlank(sci.getStudyId())){
|
||||||
return error("参数错误");
|
return error("参数错误");
|
||||||
@@ -321,16 +317,23 @@ public class StudyCourseApi extends ApiBaseController{
|
|||||||
// st.setStudentId(cuser.getAccountId());
|
// st.setStudentId(cuser.getAccountId());
|
||||||
// st.setStudentName(cuser.getName());
|
// st.setStudentName(cuser.getName());
|
||||||
// st.setStudyId(sci.getStudyId());
|
// 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());
|
StudyCourseItem item = studyService.checkHas(sci.getStudyId(),sci.getContentId());
|
||||||
if(item!=null) {
|
if(item!=null) {
|
||||||
//如果记录存在,但是进度不100无成情况,就更新进度,一期不会有这种情况
|
//如果记录存在,但是进度不100无成情况,就更新进度,一期不会有这种情况
|
||||||
if(item.getProgress()<100 && sci.getProgress()>item.getProgress()) {
|
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());
|
studyService.appendStudyDuration(sci.getStudyId(),item.getId(),sci.getContentId(),sci.getDuration());
|
||||||
|
|
||||||
return success(item.getId());
|
return success(item.getId());
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -346,6 +349,9 @@ public class StudyCourseApi extends ApiBaseController{
|
|||||||
sci.setAname(cuser.getName());
|
sci.setAname(cuser.getName());
|
||||||
|
|
||||||
studyService.saveStudyInfo(sci);
|
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());
|
studyService.appendStudyDuration(sci.getStudyId(),sci.getStudyItemId(),sci.getContentId(),sci.getDuration());
|
||||||
return success(sci.getStudyItemId());
|
return success(sci.getStudyItemId());
|
||||||
|
|||||||
@@ -56,7 +56,8 @@ logging.config=classpath:log/logback-@profileActive@.xml
|
|||||||
# config.id.generator.datacenter.num=1
|
# config.id.generator.datacenter.num=1
|
||||||
|
|
||||||
#boe.domain=https://pretest.zcwytd.com
|
#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
|
orgTree.orgTreeList=${boe.domain}/userbasic/org/list
|
||||||
# ????id????????????
|
# ????id????????????
|
||||||
orgTree.orgChildTreeList=${boe.domain}/userbasic/org/childOrgs
|
orgTree.orgChildTreeList=${boe.domain}/userbasic/org/childOrgs
|
||||||
@@ -71,4 +72,5 @@ infrasApi.dict=${boe.domain}/infrasApi/dict/list
|
|||||||
#获取非报名课id
|
#获取非报名课id
|
||||||
manageApi.stu.offcourse=${boe.domain}/manageApi/stu/offcourse/getOffCourseId
|
manageApi.stu.offcourse=${boe.domain}/manageApi/stu/offcourse/getOffCourseId
|
||||||
#获取离职教师id
|
#获取离职教师id
|
||||||
userBasic.getTeacherIds=${boe.domain}/userbasic/user/getTeacherInfo
|
userBasic.getTeacherIds=${boe.domain}/userbasic/user/getTeacherInfo
|
||||||
|
coursesuilt.getStudyStatus=${boe.domain}/stu/project/completeStatus
|
||||||
Reference in New Issue
Block a user