Browse Source

Merge branch 'master' of http://git.dayaedu.com/yonge/mec

zouxuan 5 năm trước cách đây
mục cha
commit
42b0e6e490

+ 89 - 68
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseReviewServiceImpl.java

@@ -21,6 +21,7 @@ import com.ym.mec.common.entity.ImGroupMember;
 import com.ym.mec.common.entity.ImGroupModel;
 import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.page.PageInfo;
+import com.ym.mec.common.redis.service.RedisCache;
 import com.ym.mec.common.service.IdGeneratorService;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.im.ImFeignService;
@@ -93,6 +94,9 @@ public class CourseReviewServiceImpl extends BaseServiceImpl<Integer, CourseSche
     @Autowired
     private SysConfigDao sysConfigDao;
 
+    @Autowired
+    private RedisCache redisCache;
+
     @Override
     public BaseDAO<Integer, CourseScheduleReview> getDAO() {
         return courseScheduleReviewDao;
@@ -162,59 +166,74 @@ public class CourseReviewServiceImpl extends BaseServiceImpl<Integer, CourseSche
         if (courseSchedule == null) {
             throw new BizException("课程不存在");
         }
-        PracticeGroup practiceGroup = practiceGroupDao.get(Long.parseLong(courseSchedule.getMusicGroupId()));
 
-        courseScheduleReview.setClassGroupId(courseSchedule.getClassGroupId());
-        courseScheduleReview.setEducationalTeacherId(practiceGroup.getEducationalTeacherId());
-        courseScheduleReview.setStudentId(practiceGroup.getStudentId());
-        courseScheduleReview.setCreateTime(date);
-        courseScheduleReview.setUpdateTime(date);
-        long num = courseScheduleReviewDao.insert(courseScheduleReview);
-        if (num <= 0) {
-            throw new BizException("评论提交失败,请重试");
+        String lockKey = "course_review" + courseSchedule.getId();
+        if (!redisCache.getLocked(lockKey, 1, 10)) {
+            throw new BizException("评论提交中,请稍等");
         }
+        PracticeGroup practiceGroup = practiceGroupDao.get(Long.parseLong(courseSchedule.getMusicGroupId()));
 
-        CourseHomework existHomework = courseHomeworkDao.findByCourseSchedule(courseScheduleId.longValue());
-
-        if(StringUtils.isNotBlank(courseScheduleReview.getHomeWork())&&Objects.isNull(existHomework)){
-            //新增课堂作业
-            CourseHomework courseHomework=new CourseHomework();
-            courseHomework.setContent(courseScheduleReview.getHomeWork());
-            courseHomework.setCourseScheduleId(courseSchedule.getId());
-            courseHomework.setMusicGroupId(courseSchedule.getMusicGroupId());
-            courseHomework.setGroupType(courseSchedule.getGroupType());
-            courseHomework.setClassGroupId(courseSchedule.getClassGroupId());
-            courseHomework.setExpiryDate(DateUtil.addDays(date,7));
-            List<CourseScheduleStudentPayment> courseScheduleStudentPayments = courseScheduleStudentPaymentDao.findByCourseSchedule(courseSchedule.getId());
-
-            courseHomework.setExpectNum(CollectionUtils.isEmpty(courseScheduleStudentPayments)?0:courseScheduleStudentPayments.size());
-            courseHomeworkService.insert(courseHomework);
-
-            if(!CollectionUtils.isEmpty(courseScheduleStudentPayments)){
-                List<StudentCourseHomework> studentCourseHomeworks=new ArrayList<>();
-                Map<Integer, String> userMap = new HashMap<>();
-                for (CourseScheduleStudentPayment courseScheduleStudentPayment : courseScheduleStudentPayments) {
-                    StudentCourseHomework studentCourseHomework=new StudentCourseHomework();
-                    studentCourseHomework.setCourseHomeworkId(courseHomework.getId());
-                    studentCourseHomework.setUserId(courseScheduleStudentPayment.getUserId());
-                    studentCourseHomework.setCourseScheduleId(courseSchedule.getId());
-                    studentCourseHomework.setCreateTime(date);
-                    studentCourseHomework.setUpdateTime(date);
-                    studentCourseHomework.setStatus(YesOrNoEnum.NO);
-                    studentCourseHomework.setIsView(YesOrNoEnum.NO);
-                    studentCourseHomework.setIsReplied(YesOrNoEnum.NO);
-                    studentCourseHomeworks.add(studentCourseHomework);
-                    userMap.put(courseScheduleStudentPayment.getUserId(), courseScheduleStudentPayment.getUserId().toString());
+        try {
+            CourseScheduleReview hasReview = courseScheduleReviewDao.findByCourseScheduleAndStudent(courseScheduleId.longValue(), practiceGroup.getStudentId());
+            if (hasReview != null) {
+                throw new BizException("评论已提交,请勿重复提交");
+            }
+            courseScheduleReview.setClassGroupId(courseSchedule.getClassGroupId());
+            courseScheduleReview.setEducationalTeacherId(practiceGroup.getEducationalTeacherId());
+            courseScheduleReview.setStudentId(practiceGroup.getStudentId());
+            courseScheduleReview.setCreateTime(date);
+            courseScheduleReview.setUpdateTime(date);
+            long num = courseScheduleReviewDao.insert(courseScheduleReview);
+            if (num <= 0) {
+                throw new BizException("评论提交失败,请重试");
+            }
+
+            CourseHomework existHomework = courseHomeworkDao.findByCourseSchedule(courseScheduleId.longValue());
+
+            if (StringUtils.isNotBlank(courseScheduleReview.getHomeWork()) && Objects.isNull(existHomework)) {
+                //新增课堂作业
+                CourseHomework courseHomework = new CourseHomework();
+                courseHomework.setContent(courseScheduleReview.getHomeWork());
+                courseHomework.setCourseScheduleId(courseSchedule.getId());
+                courseHomework.setMusicGroupId(courseSchedule.getMusicGroupId());
+                courseHomework.setGroupType(courseSchedule.getGroupType());
+                courseHomework.setClassGroupId(courseSchedule.getClassGroupId());
+                courseHomework.setExpiryDate(DateUtil.addDays(date, 7));
+                List<CourseScheduleStudentPayment> courseScheduleStudentPayments = courseScheduleStudentPaymentDao.findByCourseSchedule(courseSchedule.getId());
+
+                courseHomework.setExpectNum(CollectionUtils.isEmpty(courseScheduleStudentPayments) ? 0 : courseScheduleStudentPayments.size());
+                courseHomeworkService.insert(courseHomework);
+
+                if (!CollectionUtils.isEmpty(courseScheduleStudentPayments)) {
+                    List<StudentCourseHomework> studentCourseHomeworks = new ArrayList<>();
+                    Map<Integer, String> userMap = new HashMap<>();
+                    for (CourseScheduleStudentPayment courseScheduleStudentPayment : courseScheduleStudentPayments) {
+                        StudentCourseHomework studentCourseHomework = new StudentCourseHomework();
+                        studentCourseHomework.setCourseHomeworkId(courseHomework.getId());
+                        studentCourseHomework.setUserId(courseScheduleStudentPayment.getUserId());
+                        studentCourseHomework.setCourseScheduleId(courseSchedule.getId());
+                        studentCourseHomework.setCreateTime(date);
+                        studentCourseHomework.setUpdateTime(date);
+                        studentCourseHomework.setStatus(YesOrNoEnum.NO);
+                        studentCourseHomework.setIsView(YesOrNoEnum.NO);
+                        studentCourseHomework.setIsReplied(YesOrNoEnum.NO);
+                        studentCourseHomeworks.add(studentCourseHomework);
+                        userMap.put(courseScheduleStudentPayment.getUserId(), courseScheduleStudentPayment.getUserId().toString());
+                    }
+                    studentCourseHomeworkDao.batchInsertStudentCourseHomeworkRecord(studentCourseHomeworks);
+                    Teacher teacher = teacherDao.get(courseScheduleReview.getTeacherId());
+                    String dateStr = DateUtil.dateToString(DateUtil.addDays(date, 1), "MM月dd日");
+                    String notifyUrl = "3?courseScheduleID=" + courseSchedule.getId() + "&studentCourseHomeworkId=" + courseHomework.getId();
+                    sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.HOMEWORK_REMIND,
+                            userMap, null, 0, notifyUrl, "STUDENT", teacher.getRealName(), courseSchedule.getName(), dateStr);
                 }
-                studentCourseHomeworkDao.batchInsertStudentCourseHomeworkRecord(studentCourseHomeworks);
-                Teacher teacher = teacherDao.get(courseScheduleReview.getTeacherId());
-                String dateStr=DateUtil.dateToString(DateUtil.addDays(date,1), "MM月dd日");
-                String notifyUrl="3?courseScheduleID="+courseSchedule.getId()+"&studentCourseHomeworkId="+courseHomework.getId();
-                sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.HOMEWORK_REMIND,
-                        userMap, null, 0, notifyUrl, "STUDENT", teacher.getRealName(), courseSchedule.getName(), dateStr);
             }
+
+        } finally {
+            redisCache.releaseLocked(lockKey, 1);
         }
 
+
         return courseScheduleReview;
     }
 
@@ -228,15 +247,17 @@ public class CourseReviewServiceImpl extends BaseServiceImpl<Integer, CourseSche
         courseScheduleReview.setHomeWork(homework.getContent());
         TeacherClassHeadInfo teacherClassGroupInfo = getCourseInfoHead(courseScheduleReview.getCourseScheduleId());
         courseScheduleReview.setTeacherName(teacherClassGroupInfo.getBishopTeacher());
-        //学生评价
-        CourseScheduleComplaintsDto courseScheduleComplaint = courseScheduleComplaintsDao.findByUserIdAndCourseId(courseScheduleReview.getStudentId().longValue(), courseScheduleReview.getCourseScheduleId().longValue());
-        ArrayList<CourseScheduleComplaintsDto> courseScheduleComplaints = new ArrayList<>();
-        courseScheduleComplaints.add(courseScheduleComplaint);
 
         ReviewInfoDto reviewInfoDto = new ReviewInfoDto();
         reviewInfoDto.setCourseScheduleReview(courseScheduleReview);
         reviewInfoDto.setTeacherClassHeadInfo(teacherClassGroupInfo);
-        reviewInfoDto.setCourseScheduleComplaints(courseScheduleComplaints);
+        //学生评价
+        CourseScheduleComplaintsDto courseScheduleComplaint = courseScheduleComplaintsDao.findByUserIdAndCourseId(courseScheduleReview.getStudentId().longValue(), courseScheduleReview.getCourseScheduleId().longValue());
+        if (courseScheduleComplaint != null) {
+            List<CourseScheduleComplaintsDto> courseScheduleComplaints = new ArrayList<>();
+            courseScheduleComplaints.add(courseScheduleComplaint);
+            reviewInfoDto.setCourseScheduleComplaints(courseScheduleComplaints);
+        }
         return reviewInfoDto;
     }
 
@@ -245,9 +266,9 @@ public class CourseReviewServiceImpl extends BaseServiceImpl<Integer, CourseSche
         CourseSchedule courseSchedule = courseScheduleDao.get(id.longValue());
         ClassGroup classGroup = classGroupService.get(courseSchedule.getClassGroupId());
         TeacherClassHeadInfo teacherClassGroupInfo = classGroupService.findTeacherClassGroupInfo(courseSchedule.getClassGroupId().longValue());
-        teacherClassGroupInfo.setClassDate(DateUtil.dateToString(courseSchedule.getClassDate(),"yyyy年MM月dd日"));
-        teacherClassGroupInfo.setStartClassTime(DateUtil.dateToString(courseSchedule.getStartClassTime(),"HH:mm"));
-        teacherClassGroupInfo.setEndClassTime(DateUtil.dateToString(courseSchedule.getEndClassTime(),"HH:mm"));
+        teacherClassGroupInfo.setClassDate(DateUtil.dateToString(courseSchedule.getClassDate(), "yyyy年MM月dd日"));
+        teacherClassGroupInfo.setStartClassTime(DateUtil.dateToString(courseSchedule.getStartClassTime(), "HH:mm"));
+        teacherClassGroupInfo.setEndClassTime(DateUtil.dateToString(courseSchedule.getEndClassTime(), "HH:mm"));
         teacherClassGroupInfo.setClassGroupName(classGroup.getName());
         return teacherClassGroupInfo;
     }
@@ -259,34 +280,34 @@ public class CourseReviewServiceImpl extends BaseServiceImpl<Integer, CourseSche
             throw new BizException("评论id为空");
         }
         CourseScheduleReview review = courseScheduleReviewDao.get(courseScheduleReview.getId());
-        if(review == null){
+        if (review == null) {
             throw new BizException("评论不存在");
         }
         courseScheduleReviewDao.update(courseScheduleReview);
 
-        if(StringUtils.isNotBlank(courseScheduleReview.getHomeWork())){
-            Date date=new Date();
+        if (StringUtils.isNotBlank(courseScheduleReview.getHomeWork())) {
+            Date date = new Date();
             CourseSchedule courseSchedule = courseScheduleDao.get(review.getCourseScheduleId().longValue());
             CourseHomework homework = courseHomeworkDao.findByCourseSchedule(review.getCourseScheduleId().longValue());
-            if(Objects.isNull(homework)){
-                if(StringUtils.isNotBlank(courseScheduleReview.getHomeWork())){
+            if (Objects.isNull(homework)) {
+                if (StringUtils.isNotBlank(courseScheduleReview.getHomeWork())) {
                     //新增课堂作业
-                    CourseHomework courseHomework=new CourseHomework();
+                    CourseHomework courseHomework = new CourseHomework();
                     courseHomework.setContent(courseScheduleReview.getHomeWork());
                     courseHomework.setCourseScheduleId(courseSchedule.getId());
                     courseHomework.setMusicGroupId(courseSchedule.getMusicGroupId());
                     courseHomework.setGroupType(courseSchedule.getGroupType());
                     courseHomework.setClassGroupId(courseSchedule.getClassGroupId());
-                    courseHomework.setExpiryDate(DateUtil.addDays(date,7));
+                    courseHomework.setExpiryDate(DateUtil.addDays(date, 7));
                     List<CourseScheduleStudentPayment> courseScheduleStudentPayments = courseScheduleStudentPaymentDao.findByCourseSchedule(courseSchedule.getId());
 
-                    courseHomework.setExpectNum(CollectionUtils.isEmpty(courseScheduleStudentPayments)?0:courseScheduleStudentPayments.size());
+                    courseHomework.setExpectNum(CollectionUtils.isEmpty(courseScheduleStudentPayments) ? 0 : courseScheduleStudentPayments.size());
                     courseHomeworkService.insert(courseHomework);
 
-                    if(!CollectionUtils.isEmpty(courseScheduleStudentPayments)){
-                        List<StudentCourseHomework> studentCourseHomeworks=new ArrayList<>();
+                    if (!CollectionUtils.isEmpty(courseScheduleStudentPayments)) {
+                        List<StudentCourseHomework> studentCourseHomeworks = new ArrayList<>();
                         for (CourseScheduleStudentPayment courseScheduleStudentPayment : courseScheduleStudentPayments) {
-                            StudentCourseHomework studentCourseHomework=new StudentCourseHomework();
+                            StudentCourseHomework studentCourseHomework = new StudentCourseHomework();
                             studentCourseHomework.setCourseHomeworkId(courseHomework.getId());
                             studentCourseHomework.setUserId(courseScheduleStudentPayment.getUserId());
                             studentCourseHomework.setCourseScheduleId(courseSchedule.getId());
@@ -298,7 +319,7 @@ public class CourseReviewServiceImpl extends BaseServiceImpl<Integer, CourseSche
                         studentCourseHomeworkDao.batchInsertStudentCourseHomeworkRecord(studentCourseHomeworks);
                     }
                 }
-            }else if(Objects.isNull(homework.getContent())||!homework.getContent().equals(courseScheduleReview.getHomeWork())){
+            } else if (Objects.isNull(homework.getContent()) || !homework.getContent().equals(courseScheduleReview.getHomeWork())) {
                 homework.setContent(courseScheduleReview.getHomeWork());
                 courseHomeworkDao.update(homework);
             }
@@ -313,8 +334,8 @@ public class CourseReviewServiceImpl extends BaseServiceImpl<Integer, CourseSche
         courseReviewQueryInfo.setRows(10000);
         PageInfo<CourseReviewDto> practiceGroupReviews = findPracticeGroupReviews(courseReviewQueryInfo);
 
-        if(practiceGroupReviews.getTotal() <=0){
-          return;
+        if (practiceGroupReviews.getTotal() <= 0) {
+            return;
         }
         Map<Integer, List<CourseReviewDto>> teacherNeedReview = practiceGroupReviews.getRows().stream().collect(Collectors.groupingBy(CourseReviewDto::getTeacherId));
 

+ 7 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CoursesGroupServiceImpl.java

@@ -291,16 +291,23 @@ public class CoursesGroupServiceImpl extends BaseServiceImpl<Long, CoursesGroup>
         }
         CoursesGroup coursesGroup = coursesGroupDao.get(groupId);
         Teacher teacher = teacherDao.get(coursesGroup.getTeacherId());
+        List<String> subjectNames = subjectDao.findBySubIds(teacher.getSubjectId());
         Map<String, Object> result=new HashMap<>();
         result.put("groupId", groupId);
         result.put("groupName", coursesGroup.getName());
         result.put("courseStartDate",coursesGroup.getCoursesStartDate());
         result.put("courseEndDate", coursesGroup.getCoursesEndDate());
         result.put("teacherName", teacher.getRealName());
+        result.put("avatar",teacher.getAvatar());
         result.put("introduction", teacher.getIntroduction());
         result.put("lectureNum", teacher.getLectureNum());
+        result.put("subjectNames", StringUtils.join(subjectNames,","));
         List<CourseSchedule> groupNotStartCourses = courseScheduleDao.findGroupNotStartCourses(groupId.toString(), GroupType.COMM);
         result.put("courseSchedules",groupNotStartCourses);
+        Map<TeachModeEnum, Long> collect = groupNotStartCourses.stream().collect(Collectors.groupingBy(CourseSchedule::getTeachMode, Collectors.counting()));
+        result.put("totalClassesTimes", groupNotStartCourses.size());
+        result.put("onlineClassesTimes", Objects.isNull(collect.get(TeachModeEnum.ONLINE))?0:collect.get(TeachModeEnum.ONLINE));
+        result.put("offlineClassesTimes", Objects.isNull(collect.get(TeachModeEnum.OFFLINE))?0:collect.get(TeachModeEnum.OFFLINE));
         return result;
     }