diff --git a/servers/boe-server-all/pom.xml b/servers/boe-server-all/pom.xml index de0b436d..8ac06a35 100644 --- a/servers/boe-server-all/pom.xml +++ b/servers/boe-server-all/pom.xml @@ -10,11 +10,12 @@ com.xboe boe-server-all - 2.0.0 + 1.1.24 boe-server-all BOE 项目所有功能启动工程,用于开发 1.8 + 1.1.24 2021.0.5 2021.0.5.0 2.2.0 @@ -51,38 +52,38 @@ com.xboe xboe-api - 1.0.0 + ${xboe.version} com.xboe xboe-module-scorm - 1.0.0 + ${xboe.version} com.xboe xboe-core - 1.0.0 + ${xboe.version} com.xboe xboe-redis - 1.0.0 + ${xboe.version} com.xboe xboe-module-course - 1.0.0 + ${xboe.version} com.xboe xboe-module-idconfig - 1.0.0 + ${xboe.version} com.xboe xboe-module-es - 1.0.0 + ${xboe.version} it.sauronsoftware diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/course/api/CoursePortalApi.java b/servers/boe-server-all/src/main/java/com/xboe/module/course/api/CoursePortalApi.java index 595a6bab..0718c749 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/course/api/CoursePortalApi.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/course/api/CoursePortalApi.java @@ -11,6 +11,7 @@ import com.xboe.core.orm.FieldFilters; import com.xboe.module.course.dto.CourseQueryDto; import com.xboe.module.course.dto.CourseTeacherDto; import com.xboe.module.course.dto.RankingDto; +import com.xboe.module.course.dto.TeacherCourseDto; import com.xboe.module.course.entity.*; import com.xboe.module.course.service.ICourseContentService; import com.xboe.module.course.service.ICourseSectionService; @@ -28,6 +29,8 @@ import com.xboe.school.study.entity.StudyHomeWork; import com.xboe.school.study.service.IStudyCourseService; import com.xboe.school.study.service.IStudyHomeWorkService; import com.xboe.school.study.service.IStudyService; +import com.xboe.system.user.entity.User; +import com.xboe.system.user.service.IUserService; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -60,7 +63,8 @@ public class CoursePortalApi extends ApiBaseController{ @Resource private ICourseService courseService; - + @Resource + private IUserService userService; @Resource private ITeacherService teacherService; @@ -278,7 +282,7 @@ public class CoursePortalApi extends ApiBaseController{ if (!Objects.isNull(studyCourse)){ pass = true; } - if (Objects.isNull(studyCourse) && !courseCrowdList.isEmpty()) { + if (Objects.isNull(studyCourse) && !courseCrowdList.isEmpty() && !StringUtils.isEmpty(audiences)) { List audienceList = Arrays.asList(audiences.split(",")); // 此用户所在受众组 log.error("---------------参数------------ audienceList = " + audienceList); for (CourseCrowd c : courseCrowdList) { @@ -301,17 +305,30 @@ public class CoursePortalApi extends ApiBaseController{ List cclist=contentService.getByCourseId(id); List sectionlist=sectionService.getByCourseId(id); List teachers=courseService.findTeachersByCourseId(id); - + List teacherCourseDtos = new ArrayList<>(); //获取教师的介绍信息,因为一门课程 的教师不会太多,所以这里简单直接遍历查询,后续再优化 for(CourseTeacher ct : teachers) { + TeacherCourseDto teacherCourseDto = new TeacherCourseDto(); Teacher t = teacherService.get(ct.getTeacherId()); + User user = userService.get(ct.getTeacherId()); if(t!=null) { ct.setRemark(t.getDescription()); if(redisTemplate.opsForValue().get(ct.getTeacherId())!=null){ if(Objects.equals(redisTemplate.opsForValue().get(ct.getTeacherId()), "1")){ ct.setTeacherName("BOE教师"); } + teacherCourseDto.setCourseId(ct.getCourseId()); + teacherCourseDto.setTeacherName(ct.getTeacherName()); + teacherCourseDto.setTeacherId(ct.getTeacherId()); + teacherCourseDto.setCode(ct.getCode()); + teacherCourseDto.setRemark(ct.getRemark()); + teacherCourseDto.setSysCreateAid(ct.getSysCreateAid()); + teacherCourseDto.setSysCreateBy(ct.getSysCreateBy()); + teacherCourseDto.setSysCreateTime(ct.getSysCreateTime()); + teacherCourseDto.setId(ct.getId()); + teacherCourseDto.setUserNo(user.getUserNo()); + teacherCourseDtos.add(teacherCourseDto); }else if (redisTemplate.opsForValue().get(ct.getTeacherId())==null){ List list=new ArrayList<>(); list.add(ct.getTeacherId()); @@ -319,6 +336,17 @@ public class CoursePortalApi extends ApiBaseController{ if(Objects.equals(redisTemplate.opsForValue().get(ct.getTeacherId()), "1")){ ct.setTeacherName("BOE教师"); } + teacherCourseDto.setCourseId(ct.getCourseId()); + teacherCourseDto.setTeacherName(ct.getTeacherName()); + teacherCourseDto.setTeacherId(ct.getTeacherId()); + teacherCourseDto.setCode(ct.getCode()); + teacherCourseDto.setRemark(ct.getRemark()); + teacherCourseDto.setSysCreateAid(ct.getSysCreateAid()); + teacherCourseDto.setSysCreateBy(ct.getSysCreateBy()); + teacherCourseDto.setSysCreateTime(ct.getSysCreateTime()); + teacherCourseDto.setId(ct.getId()); + teacherCourseDto.setUserNo(user.getUserNo()); + teacherCourseDtos.add(teacherCourseDto); } } @@ -327,7 +355,7 @@ public class CoursePortalApi extends ApiBaseController{ rs.put("isCrowd",pass); rs.put("contents", cclist); rs.put("sections",sectionlist); - rs.put("teachers",teachers); + rs.put("teachers",teacherCourseDtos); //查询课程 return success(rs); diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/course/dto/TeacherCourseDto.java b/servers/boe-server-all/src/main/java/com/xboe/module/course/dto/TeacherCourseDto.java new file mode 100644 index 00000000..8fef6126 --- /dev/null +++ b/servers/boe-server-all/src/main/java/com/xboe/module/course/dto/TeacherCourseDto.java @@ -0,0 +1,11 @@ +package com.xboe.module.course.dto; + +import com.xboe.module.course.entity.CourseTeacher; +import lombok.Data; + +import java.util.List; + +@Data +public class TeacherCourseDto extends CourseTeacher { + private String userNo; +} 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 dc24355c..34a57f49 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 @@ -177,7 +177,7 @@ public class StudyCourseApi extends ApiBaseController{ if (!Objects.isNull(studyCourse)){ pass = true; } - if (Objects.isNull(studyCourse) && !courseCrowdList.isEmpty()) { + if (Objects.isNull(studyCourse) && !courseCrowdList.isEmpty() && !StringUtils.isEmpty(audiences)) { List audienceList = Arrays.asList(audiences.split(",")); // 此用户所在受众组 log.error("---------------参数------------ audienceList = " + audienceList); for (CourseCrowd c : courseCrowdList) { @@ -228,7 +228,7 @@ public class StudyCourseApi extends ApiBaseController{ //检查是否已报名 StudyCourse sc=service.findByCourseIdAndAid(cid, aid); - if(sc==null) { + if(pass==true && sc==null) { //未报名,这里直接报名 StudySignup signup=new StudySignup(); signup.setCourseId(cid); @@ -246,13 +246,13 @@ public class StudyCourseApi extends ApiBaseController{ signup.setSignTime(LocalDateTime.now()); sc=service.autoSignup(signup); } - - rs.put("signup",true); - rs.put("studyId", sc.getId());//学习id - rs.put("progress", sc.getProgress()); - //查询上次学习的是什么资源。查询用户的学习情况 - List items=studyService.findByStudyId(sc.getId()); - rs.put("contentStudys",items);//学习的内容 + if (sc !=null){ + rs.put("studyId", sc.getId());//学习id + rs.put("progress", sc.getProgress()); + //查询上次学习的是什么资源。查询用户的学习情况 + List items=studyService.findByStudyId(sc.getId()); + rs.put("contentStudys",items);//学习的内容 + } return success(rs); } diff --git a/servers/boe-server-all/src/main/java/com/xboe/school/study/dao/StudyCourseDao.java b/servers/boe-server-all/src/main/java/com/xboe/school/study/dao/StudyCourseDao.java index 462f9c26..845eb56e 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/school/study/dao/StudyCourseDao.java +++ b/servers/boe-server-all/src/main/java/com/xboe/school/study/dao/StudyCourseDao.java @@ -2,10 +2,14 @@ package com.xboe.school.study.dao; import java.time.LocalDateTime; import java.util.List; +import java.util.concurrent.TimeUnit; import com.xboe.api.ThirdApi; +import com.xboe.constants.CacheName; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.stereotype.Repository; import com.xboe.core.orm.BaseDao; @@ -26,6 +30,9 @@ public class StudyCourseDao extends BaseDao { @Autowired StudyCourseItemDao scItemDao; + @Autowired + StringRedisTemplate redisTemplate; + @Resource private ThirdApi thirdApi; @@ -36,6 +43,11 @@ public class StudyCourseDao extends BaseDao { * @param total */ public void finishCheck(String studyId,String courseId,Integer total,String token){ + + if(StringUtils.isNotEmpty(redisTemplate.opsForValue().get(studyId + "_" + courseId + "_" + total))){ + return ; + } + log.info("------1.完成情况检查---------------studyId = " + studyId + " , courseId = " + courseId + " , total = " + total ); LocalDateTime now=LocalDateTime.now(); //已完成的内容 @@ -50,7 +62,9 @@ public class StudyCourseDao extends BaseDao { } log.info("------3.完成情况检查---------------studyId = " + studyId + " , courseId = " + courseId + " , total = " + total ); //以下注意,float类型,是否等于100对应 - float percent=n*100/total; + float percent=n*100/total; + + if(n>=total) { //自主报名的课程,代表学习完成 super.updateMultiFieldById(studyId, @@ -58,11 +72,13 @@ public class StudyCourseDao extends BaseDao { UpdateBuilder.create("lastTime",now), UpdateBuilder.create("finishTime",now), UpdateBuilder.create("status",StudyCourse.STATUS_FINISH)); + redisTemplate.opsForValue().set(studyId + "_" + courseId + "_" + total, "100", 24, TimeUnit.HOURS); }else { super.updateMultiFieldById(studyId, UpdateBuilder.create("progress",percent), UpdateBuilder.create("lastTime",LocalDateTime.now()), UpdateBuilder.create("status",StudyCourse.STATUS_STUDYING)); +// redisTemplate.opsForValue().set(studyId, String.valueOf(percent), 10, TimeUnit.SECONDS); } List allUserList = thirdApi.getStudyCourseList(studyId ,courseId, token); diff --git a/servers/boe-server-basic/pom.xml b/servers/boe-server-basic/pom.xml index 28098153..cf45d271 100644 --- a/servers/boe-server-basic/pom.xml +++ b/servers/boe-server-basic/pom.xml @@ -10,22 +10,23 @@ com.xboe boe-server-basic - 2.0.0 + 1.1.24 boe-server-basic 基本数据服务 1.8 + 1.1.24 com.xboe xboe-core - 1.0.0 + ${xboe.version} com.xboe xboe-redis - 1.0.0 + ${xboe.version}