|
@@ -11,6 +11,7 @@ import java.util.stream.Collectors;
|
|
|
|
|
|
import com.ym.mec.biz.dal.dao.*;
|
|
|
import com.ym.mec.biz.dal.dto.*;
|
|
|
+import com.ym.mec.biz.dal.entity.*;
|
|
|
import com.ym.mec.biz.dal.enums.GroupType;
|
|
|
import com.ym.mec.biz.dal.enums.ImSendTypeEnum;
|
|
|
import com.ym.mec.common.entity.ImPrivateMessage;
|
|
@@ -24,15 +25,6 @@ import org.springframework.transaction.annotation.Transactional;
|
|
|
import org.springframework.util.CollectionUtils;
|
|
|
|
|
|
import com.ym.mec.auth.api.entity.SysUser;
|
|
|
-import com.ym.mec.biz.dal.entity.ClassGroup;
|
|
|
-import com.ym.mec.biz.dal.entity.CourseHomework;
|
|
|
-import com.ym.mec.biz.dal.entity.CourseSchedule;
|
|
|
-import com.ym.mec.biz.dal.entity.CourseScheduleComplaints;
|
|
|
-import com.ym.mec.biz.dal.entity.CourseScheduleReview;
|
|
|
-import com.ym.mec.biz.dal.entity.CourseScheduleStudentPayment;
|
|
|
-import com.ym.mec.biz.dal.entity.PracticeGroup;
|
|
|
-import com.ym.mec.biz.dal.entity.StudentCourseHomework;
|
|
|
-import com.ym.mec.biz.dal.entity.Teacher;
|
|
|
import com.ym.mec.biz.dal.enums.MessageTypeEnum;
|
|
|
import com.ym.mec.biz.dal.enums.YesOrNoEnum;
|
|
|
import com.ym.mec.biz.dal.page.CourseReview4EduQueryInfo;
|
|
@@ -104,7 +96,7 @@ public class CourseReviewServiceImpl extends BaseServiceImpl<Integer, CourseSche
|
|
|
private SysConfigDao sysConfigDao;
|
|
|
|
|
|
@Autowired
|
|
|
- private RedisCache<String, Object> redisCache;
|
|
|
+ private VipGroupDao vipGroupDao;
|
|
|
|
|
|
@Override
|
|
|
public BaseDAO<Integer, CourseScheduleReview> getDAO() {
|
|
@@ -114,7 +106,7 @@ public class CourseReviewServiceImpl extends BaseServiceImpl<Integer, CourseSche
|
|
|
|
|
|
@Override
|
|
|
public PageInfo<CourseReviewDto> findPracticeGroupReviews(CourseReviewQueryInfo queryInfo) {
|
|
|
- PageInfo pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
|
|
|
+ PageInfo<CourseReviewDto> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
|
|
|
Map<String, Object> params = new HashMap<>();
|
|
|
MapUtil.populateMap(params, queryInfo);
|
|
|
|
|
@@ -145,7 +137,7 @@ public class CourseReviewServiceImpl extends BaseServiceImpl<Integer, CourseSche
|
|
|
|
|
|
@Override
|
|
|
public PageInfo<CourseScheduleReview> findPracticeGroupReviews4Edu(CourseReview4EduQueryInfo queryInfo) {
|
|
|
- PageInfo pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
|
|
|
+ PageInfo<CourseScheduleReview> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
|
|
|
Map<String, Object> params = new HashMap<>();
|
|
|
MapUtil.populateMap(params, queryInfo);
|
|
|
|
|
@@ -178,15 +170,24 @@ public class CourseReviewServiceImpl extends BaseServiceImpl<Integer, CourseSche
|
|
|
|
|
|
studentDao.lockUser(courseScheduleReview.getTeacherId());
|
|
|
|
|
|
- PracticeGroup practiceGroup = practiceGroupDao.get(Long.parseLong(courseSchedule.getMusicGroupId()));
|
|
|
+ Integer studentId = null;
|
|
|
+ Integer educationalTeacherId = null;
|
|
|
|
|
|
- CourseScheduleReview hasReview = courseScheduleReviewDao.findByCourseScheduleAndStudent(courseScheduleId.longValue(), practiceGroup.getStudentId());
|
|
|
+ if (courseSchedule.getType().equals(CourseSchedule.CourseScheduleType.PRACTICE)) {
|
|
|
+ PracticeGroup practiceGroup = practiceGroupDao.get(Long.parseLong(courseSchedule.getMusicGroupId()));
|
|
|
+ studentId = practiceGroup.getStudentId();
|
|
|
+ educationalTeacherId = practiceGroup.getEducationalTeacherId();
|
|
|
+ } else if (courseSchedule.getType().equals(CourseSchedule.CourseScheduleType.VIP)) {
|
|
|
+ VipGroup vipGroup = vipGroupDao.get(Long.parseLong(courseSchedule.getMusicGroupId()));
|
|
|
+ educationalTeacherId = vipGroup.getEducationalTeacherId();
|
|
|
+ }
|
|
|
+ CourseScheduleReview hasReview = courseScheduleReviewDao.findByCourseScheduleAndStudent(courseScheduleId.longValue(), studentId);
|
|
|
if (hasReview != null) {
|
|
|
throw new BizException("评论已提交,请勿重复提交");
|
|
|
}
|
|
|
courseScheduleReview.setClassGroupId(courseSchedule.getClassGroupId());
|
|
|
- courseScheduleReview.setEducationalTeacherId(practiceGroup.getEducationalTeacherId());
|
|
|
- courseScheduleReview.setStudentId(practiceGroup.getStudentId());
|
|
|
+ courseScheduleReview.setEducationalTeacherId(educationalTeacherId);
|
|
|
+ courseScheduleReview.setStudentId(studentId);
|
|
|
courseScheduleReview.setCreateTime(date);
|
|
|
courseScheduleReview.setUpdateTime(date);
|
|
|
long num = courseScheduleReviewDao.insert(courseScheduleReview);
|
|
@@ -201,12 +202,12 @@ public class CourseReviewServiceImpl extends BaseServiceImpl<Integer, CourseSche
|
|
|
CourseHomework courseHomework = new CourseHomework();
|
|
|
List<CourseScheduleStudentPayment> courseScheduleStudentPayments = courseScheduleStudentPaymentDao.findByCourseSchedule(courseSchedule.getId());
|
|
|
|
|
|
- if(Objects.nonNull(existHomework)){
|
|
|
+ if (Objects.nonNull(existHomework)) {
|
|
|
courseHomework.setId(existHomework.getId());
|
|
|
courseHomework.setContent(courseScheduleReview.getHomeWork());
|
|
|
courseHomework.setExpiryDate(DateUtil.addDays(date, 7));
|
|
|
courseHomeworkService.update(courseHomework);
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
courseHomework.setContent(courseScheduleReview.getHomeWork());
|
|
|
courseHomework.setCourseScheduleId(courseSchedule.getId());
|
|
|
courseHomework.setMusicGroupId(courseSchedule.getMusicGroupId());
|
|
@@ -223,7 +224,7 @@ public class CourseReviewServiceImpl extends BaseServiceImpl<Integer, CourseSche
|
|
|
String dateStr = DateUtil.dateToString(DateUtil.addDays(date, 3), "MM月dd日");
|
|
|
for (CourseScheduleStudentPayment courseScheduleStudentPayment : courseScheduleStudentPayments) {
|
|
|
StudentCourseHomework studentCourseHomework = new StudentCourseHomework();
|
|
|
- if(Objects.isNull(existHomework)){
|
|
|
+ if (Objects.isNull(existHomework)) {
|
|
|
studentCourseHomework.setCourseHomeworkId(courseHomework.getId());
|
|
|
studentCourseHomework.setUserId(courseScheduleStudentPayment.getUserId());
|
|
|
studentCourseHomework.setCourseScheduleId(courseSchedule.getId());
|
|
@@ -234,7 +235,7 @@ public class CourseReviewServiceImpl extends BaseServiceImpl<Integer, CourseSche
|
|
|
studentCourseHomework.setIsReplied(YesOrNoEnum.NO);
|
|
|
studentCourseHomework.setIsRepliedTimely(0);
|
|
|
studentCourseHomeworkDao.insert(studentCourseHomework);
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
studentCourseHomework = studentCourseHomeworkDao.findByStudentAndCourseHomewok(existHomework.getId(), courseScheduleStudentPayment.getUserId());
|
|
|
}
|
|
|
|
|
@@ -242,17 +243,17 @@ public class CourseReviewServiceImpl extends BaseServiceImpl<Integer, CourseSche
|
|
|
userMap.put(courseScheduleStudentPayment.getUserId(), courseScheduleStudentPayment.getUserId().toString());
|
|
|
String notifyUrl = "?courseScheduleID=" + courseSchedule.getId() + "&studentCourseHomeworkId=" + studentCourseHomework.getId() + "&extra=0";
|
|
|
String extra = "dayaedu" + notifyUrl + "&userId=" + courseScheduleStudentPayment.getUserId();
|
|
|
- if (courseScheduleReview.getMsgType() != ImSendTypeEnum.TXT){
|
|
|
- sysMessageService.batchSendImMessage(MessageTypeEnum.IM_HOMEWORK_REMIND_DETAIL,courseScheduleReview.getTeacherId().toString(),extra,
|
|
|
+ if (courseScheduleReview.getMsgType() != ImSendTypeEnum.TXT) {
|
|
|
+ sysMessageService.batchSendImMessage(MessageTypeEnum.IM_HOMEWORK_REMIND_DETAIL, courseScheduleReview.getTeacherId().toString(), extra,
|
|
|
new String[]{courseScheduleStudentPayment.getUserId().toString()},
|
|
|
- null,courseSchedule.getName(), dateStr,courseHomework.getContent());
|
|
|
- }else {
|
|
|
- sysMessageService.batchSendImMessage(MessageTypeEnum.IM_HOMEWORK_REMIND,courseScheduleReview.getTeacherId().toString(),extra,
|
|
|
+ null, courseSchedule.getName(), dateStr, courseHomework.getContent());
|
|
|
+ } else {
|
|
|
+ sysMessageService.batchSendImMessage(MessageTypeEnum.IM_HOMEWORK_REMIND, courseScheduleReview.getTeacherId().toString(), extra,
|
|
|
new String[]{courseScheduleStudentPayment.getUserId().toString()},
|
|
|
- null,courseSchedule.getName(), dateStr,courseHomework.getContent());
|
|
|
+ null, courseSchedule.getName(), dateStr, courseHomework.getContent());
|
|
|
}
|
|
|
sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.HOMEWORK_REMIND,
|
|
|
- userMap, null, 0, 3+notifyUrl, "STUDENT", teacher.getRealName(), courseSchedule.getName(), dateStr);
|
|
|
+ userMap, null, 0, 3 + notifyUrl, "STUDENT", teacher.getRealName(), courseSchedule.getName(), dateStr);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -273,10 +274,9 @@ public class CourseReviewServiceImpl extends BaseServiceImpl<Integer, CourseSche
|
|
|
TeacherClassHeadInfo teacherClassGroupInfo = getCourseInfoHead(courseScheduleReview.getCourseScheduleId());
|
|
|
courseScheduleReview.setTeacherName(teacherClassGroupInfo.getBishopTeacher());
|
|
|
|
|
|
- CourseSchedule courseSchedule = courseScheduleDao.get(courseScheduleReview.getCourseScheduleId().longValue());
|
|
|
- if (courseSchedule.getGroupType().equals(GroupType.PRACTICE)) {
|
|
|
- PracticeCourseDto practiceGroup = practiceGroupDao.findByGroupId(Integer.parseInt(courseSchedule.getMusicGroupId()));
|
|
|
- courseScheduleReview.setEduTeacherName(practiceGroup.getEduTeacherName());
|
|
|
+ if (courseScheduleReview.getEducationalTeacherId() != null) {
|
|
|
+ SysUser user = teacherDao.getUser(courseScheduleReview.getEducationalTeacherId());
|
|
|
+ courseScheduleReview.setEduTeacherName(user.getRealName());
|
|
|
}
|
|
|
|
|
|
ReviewInfoDto reviewInfoDto = new ReviewInfoDto();
|
|
@@ -508,4 +508,99 @@ public class CourseReviewServiceImpl extends BaseServiceImpl<Integer, CourseSche
|
|
|
}
|
|
|
return reviewInfoDto;
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public PageInfo<CourseReviewDto> findOnlineCourseReviews(CourseReviewQueryInfo queryInfo) {
|
|
|
+ PageInfo<CourseReviewDto> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
|
|
|
+ Map<String, Object> params = new HashMap<>();
|
|
|
+ MapUtil.populateMap(params, queryInfo);
|
|
|
+
|
|
|
+ List<CourseReviewDto> dataList = null;
|
|
|
+ int count = courseScheduleReviewDao.countOnlineCourseReviews(params);
|
|
|
+ if (count > 0) {
|
|
|
+ pageInfo.setTotal(count);
|
|
|
+ params.put("offset", pageInfo.getOffset());
|
|
|
+ dataList = courseScheduleReviewDao.getOnlineCourseReviewList(params);
|
|
|
+ }
|
|
|
+ if (count == 0) {
|
|
|
+ dataList = new ArrayList<>();
|
|
|
+ }
|
|
|
+ pageInfo.setRows(dataList);
|
|
|
+ return pageInfo;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ @Transactional(rollbackFor = Exception.class, isolation = Isolation.READ_COMMITTED)
|
|
|
+ public CourseHomework addHomeWork(Integer courseScheduleId, String content, Date expiryDate) {
|
|
|
+ if (StringUtils.isBlank(content)) {
|
|
|
+ throw new BizException("作业内容不能为空");
|
|
|
+ }
|
|
|
+ if (courseScheduleId == null || courseScheduleId <= 0) {
|
|
|
+ throw new BizException("课程id必须大于0");
|
|
|
+ }
|
|
|
+ Date date = new Date();
|
|
|
+ CourseSchedule courseSchedule = courseScheduleDao.get(courseScheduleId.longValue());
|
|
|
+ if (courseSchedule == null) {
|
|
|
+ throw new BizException("课程不存在");
|
|
|
+ }
|
|
|
+ studentDao.lockUser(courseSchedule.getActualTeacherId());
|
|
|
+
|
|
|
+ CourseHomework existHomework = courseHomeworkDao.findByCourseSchedule(courseScheduleId.longValue());
|
|
|
+
|
|
|
+ //新增课堂作业
|
|
|
+ CourseHomework courseHomework = new CourseHomework();
|
|
|
+ List<CourseScheduleStudentPayment> courseScheduleStudentPayments = courseScheduleStudentPaymentDao.findByCourseSchedule(courseSchedule.getId());
|
|
|
+
|
|
|
+ if (Objects.nonNull(existHomework)) {
|
|
|
+ courseHomework.setId(existHomework.getId());
|
|
|
+ courseHomework.setContent(content);
|
|
|
+ courseHomework.setExpiryDate(expiryDate);
|
|
|
+ courseHomeworkService.update(courseHomework);
|
|
|
+ } else {
|
|
|
+ courseHomework.setContent(content);
|
|
|
+ courseHomework.setCourseScheduleId(courseSchedule.getId());
|
|
|
+ courseHomework.setMusicGroupId(courseSchedule.getMusicGroupId());
|
|
|
+ courseHomework.setGroupType(courseSchedule.getGroupType());
|
|
|
+ courseHomework.setClassGroupId(courseSchedule.getClassGroupId());
|
|
|
+ courseHomework.setExpiryDate(expiryDate);
|
|
|
+ courseHomework.setExpectNum(CollectionUtils.isEmpty(courseScheduleStudentPayments) ? 0 : courseScheduleStudentPayments.size());
|
|
|
+ courseHomeworkService.insert(courseHomework);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!CollectionUtils.isEmpty(courseScheduleStudentPayments)) {
|
|
|
+ Teacher teacher = teacherDao.get(courseSchedule.getActualTeacherId());
|
|
|
+ String dateStr = DateUtil.dateToString(DateUtil.addDays(date, 3), "MM月dd日");
|
|
|
+ for (CourseScheduleStudentPayment courseScheduleStudentPayment : courseScheduleStudentPayments) {
|
|
|
+ StudentCourseHomework studentCourseHomework = new StudentCourseHomework();
|
|
|
+ if (Objects.isNull(existHomework)) {
|
|
|
+ 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);
|
|
|
+ studentCourseHomework.setIsRepliedTimely(0);
|
|
|
+ studentCourseHomeworkDao.insert(studentCourseHomework);
|
|
|
+ } else {
|
|
|
+ studentCourseHomework = studentCourseHomeworkDao.findByStudentAndCourseHomewok(existHomework.getId(), courseScheduleStudentPayment.getUserId());
|
|
|
+ }
|
|
|
+
|
|
|
+ Map<Integer, String> userMap = new HashMap<>();
|
|
|
+ userMap.put(courseScheduleStudentPayment.getUserId(), courseScheduleStudentPayment.getUserId().toString());
|
|
|
+ String notifyUrl = "?courseScheduleID=" + courseSchedule.getId() + "&studentCourseHomeworkId=" + studentCourseHomework.getId() + "&extra=0";
|
|
|
+ String extra = "dayaedu" + notifyUrl + "&userId=" + courseScheduleStudentPayment.getUserId();
|
|
|
+
|
|
|
+ sysMessageService.batchSendImMessage(MessageTypeEnum.IM_HOMEWORK_REMIND, courseSchedule.getActualTeacherId().toString(), extra,
|
|
|
+ new String[]{courseScheduleStudentPayment.getUserId().toString()},
|
|
|
+ null, courseSchedule.getName(), dateStr, courseHomework.getContent());
|
|
|
+
|
|
|
+ sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.HOMEWORK_REMIND,
|
|
|
+ userMap, null, 0, 3 + notifyUrl, "STUDENT", teacher.getRealName(), courseSchedule.getName(), dateStr);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return courseHomework;
|
|
|
+ }
|
|
|
}
|