|
@@ -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));
|
|
|
|