Browse Source

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

zouxuan 5 years ago
parent
commit
3d097d0940

+ 0 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/PracticeGroupService.java

@@ -3,7 +3,6 @@ package com.ym.mec.biz.service;
 import com.ym.mec.biz.dal.dto.CourseScheduleDto;
 import com.ym.mec.biz.dal.dto.PracticeGroupDto;
 import com.ym.mec.biz.dal.dto.SimpleUserDto;
-import com.ym.mec.biz.dal.dto.TeacherBasicDto;
 import com.ym.mec.biz.dal.entity.PracticeGroup;
 import com.ym.mec.biz.dal.page.PracticeGroupQueryInfo;
 import com.ym.mec.common.page.PageInfo;

+ 22 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupServiceImpl.java

@@ -24,6 +24,7 @@ import com.ym.mec.jiari.JiaRiFeignService;
 import com.ym.mec.util.collection.MapUtil;
 import com.ym.mec.util.date.DateConvertor;
 import com.ym.mec.util.date.DateUtil;
+
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -1402,10 +1403,29 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
     @Transactional(rollbackFor = Exception.class)
     public ClassGroup classGroupUpdate(ClassGroup4MixDto classGroup4MixDto) throws Exception {
         Date date = new Date();
-        ClassGroup classGroup = classGroupDao.get(classGroup4MixDto.getClassGroupId());
+        Integer classGroupId = classGroup4MixDto.getClassGroupId();
+        String musicGroupId = classGroup4MixDto.getMusicGroupId();
+        ClassGroup classGroup = classGroupDao.get(classGroupId);
         if (classGroup == null) {
             throw new BizException("班级不存在");
         }
+        if (classGroup4MixDto.getCourseAddType().equals("onlyUpdateTeacher")) {
+			List<Integer> classGroupIds = new ArrayList<Integer>();
+			classGroupIds.add(classGroupId);
+			// 删除历史记录
+			classGroupTeacherMapperDao.delClassGroupTeacherMapper(classGroupIds);
+
+			List<ClassGroupTeacherMapper> newTeacherMapperList = classGroup4MixDto.getClassGroupTeacherMapperList();
+			for (ClassGroupTeacherMapper tm : newTeacherMapperList) {
+				tm.setClassGroupId(classGroupId);
+				tm.setCreateTime(date);
+				tm.setGroupType(GroupType.MUSIC);
+				tm.setMusicGroupId(musicGroupId);
+				tm.setUpdateTime(date);
+				classGroupTeacherMapperDao.insert(tm);
+			}
+			return classGroup;
+		}
         if(classGroup4MixDto.getCourseTimes().compareTo(0) <= 0){
             throw new BizException("排课次数必须大于0");
         }
@@ -1423,7 +1443,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
                 teacherAttendanceDao.batchDeleteByCourseSchedules(courseScheduleIds);
                 courseScheduleStudentPaymentDao.deleteByCourseSchedule(courseScheduleIds);
             }
-        }
+		}
 
         classGroupService.updateTotalClassTimes(classGroup.getId().longValue(),courseTimes);
 

+ 34 - 9
mec-biz/src/main/java/com/ym/mec/biz/service/impl/PracticeGroupServiceImpl.java

@@ -1717,8 +1717,10 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
         }
         Map result = new HashMap();
         SysConfig practiceSubjectIdListConfig = sysConfigService.findByParamName(SysConfigService.PRACTICE_SUBJECT_ID_LIST);
-        if (!Arrays.asList(practiceSubjectIdListConfig.getParanValue().split(",")).contains(practiceGroup.getSubjectId().toString())) {
+        if (Objects.isNull(practiceGroup.getSubjectId())
+                ||!Arrays.asList(practiceSubjectIdListConfig.getParanValue().split(",")).contains(practiceGroup.getSubjectId().toString())) {
             result.put("status", "DISABLE_SUBJECT");
+            result.put("info", "预约失败,声部选择错误,请重试。");
             return result;
         }
         Integer practiceCourseMinutes = 25;
@@ -1731,15 +1733,18 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
         if (practiceGroup.getFirstCourseTime().before(activityStartDate)
                 || practiceGroup.getFirstCourseTime().after(activityEndDate)) {
             result.put("status", "APPLY_DATE_OVERFLOW");
+            result.put("info", "预约失败,陪练课的时间超出活动时间范围(2020-3-31之前),请重试。");
             return result;
         }
         if (practiceGroup.getSecondCourseTime().before(activityStartDate)
                 || practiceGroup.getSecondCourseTime().after(activityEndDate)) {
             result.put("status", "APPLY_DATE_OVERFLOW");
+            result.put("info", "预约失败,陪练课的时间超出活动时间范围(2020-3-31之前),请重试。");
             return result;
         }
         if (DateUtil.isSameDay(practiceGroup.getFirstCourseTime(), practiceGroup.getSecondCourseTime())) {
             result.put("status", "TWO_DATE_ON_ONE_DAY");
+            result.put("info", "预约失败,陪练课选择时间重复,请重试。");
             return result;
         }
 
@@ -1761,11 +1766,13 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
         if (allCourseDates.get(2).before(activityStartDate)
                 || allCourseDates.get(2).after(courseExpireDate)) {
             result.put("status", "APPLY_DATE_OVERFLOW");
+            result.put("info", "预约失败,陪练课的时间超出活动时间范围(2020-3-31之前),请重试。");
             return result;
         }
         if (allCourseDates.get(3).before(activityStartDate)
                 || allCourseDates.get(3).after(courseExpireDate)) {
             result.put("status", "APPLY_DATE_OVERFLOW");
+            result.put("info", "预约失败,陪练课的时间超出活动时间范围(2020-3-31之前),请重试。");
             return result;
         }
         allCourseDates.sort(Comparator.comparing(Date::getTime));
@@ -1777,6 +1784,7 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
 
         if (applyTimes >= 1) {
             result.put("status", "IS_APPLIED");
+            result.put("info", "您已经完成陪练课预约,请勿重复预约。");
             return result;
         }
         applyTimes += 1;
@@ -1801,6 +1809,7 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
         Subject subject = subjectDao.get(practiceGroup.getSubjectId());
         if (Objects.isNull(subject)) {
             result.put("status", "DISABLE_SUBJECT");
+            result.put("info", "预约失败,声部选择错误,请重试。");
             return result;
         }
         practiceGroup.setName(subject.getName() + "•" + sysUser.getUsername());
@@ -1915,7 +1924,6 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
             teacherAttendances.add(teacherAttendance);
         }
         courseScheduleTeacherSalaryDao.batchInsert(courseScheduleTeacherSalaries);
-        courseScheduleStudentPaymentDao.batchInsert(courseScheduleStudentPayments);
         teacherAttendanceDao.batchInsert(teacherAttendances);
 
         Student student = studentDao.get(practiceGroup.getStudentId());
@@ -1939,41 +1947,57 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
         }
 
         List<CourseSchedule> studentRepeatCourse1 = courseScheduleDao.findStudentCoursesWithIncludeDateRange(practiceGroup.getStudentId(), allCourseDates.get(0), DateUtil.addMinutes(allCourseDates.get(2), practiceCourseMinutes));
-        if (CollectionUtils.isEmpty(studentRepeatCourse1)) {
+        if (!CollectionUtils.isEmpty(studentRepeatCourse1)) {
             TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
             result.put("status", "STUDENT_COURSE_REPEAT");
+            result.put("info", "抱歉啦,当前所选时段组合,与您现有课程「"+studentRepeatCourse1.get(0).getName()+"」时段冲突,请选择其他时段重试。");
             return result;
         }
         List<CourseSchedule> studentRepeatCourse2 = courseScheduleDao.findStudentCoursesWithIncludeDateRange(practiceGroup.getStudentId(), allCourseDates.get(1), DateUtil.addMinutes(allCourseDates.get(3), practiceCourseMinutes));
-        if (CollectionUtils.isEmpty(studentRepeatCourse2)) {
+        if (!CollectionUtils.isEmpty(studentRepeatCourse2)) {
             TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
             result.put("status", "STUDENT_COURSE_REPEAT");
+            result.put("info", "抱歉啦,当前所选时段组合,与您现有课程「"+studentRepeatCourse2.get(0).getName()+"」时段冲突,请选择其他时段重试。");
             return result;
         }
         List<CourseSchedule> studentRepeatCourse3 = courseScheduleDao.findStudentCoursesWithIncludeDateRange(practiceGroup.getStudentId(), allCourseDates.get(2), DateUtil.addMinutes(allCourseDates.get(3), practiceCourseMinutes));
-        if (CollectionUtils.isEmpty(studentRepeatCourse3)) {
+        if (!CollectionUtils.isEmpty(studentRepeatCourse3)) {
             TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
             result.put("status", "STUDENT_COURSE_REPEAT");
+            result.put("info", "抱歉啦,当前所选时段组合,与您现有课程「"+studentRepeatCourse3.get(0).getName()+"」时段冲突,请选择其他时段重试。");
             return result;
         }
         List<CourseSchedule> studentRepeatCourse4 = courseScheduleDao.findStudentCoursesWithIncludeDateRange(practiceGroup.getStudentId(), allCourseDates.get(3), DateUtil.addMinutes(allCourseDates.get(3), practiceCourseMinutes));
-        if (CollectionUtils.isEmpty(studentRepeatCourse4)) {
+        if (!CollectionUtils.isEmpty(studentRepeatCourse4)) {
             TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
             result.put("status", "STUDENT_COURSE_REPEAT");
+            result.put("info", "抱歉啦,当前所选时段组合,与您现有课程「"+studentRepeatCourse4.get(0).getName()+"」时段冲突,请选择其他时段重试。");
             return result;
         }
+        courseScheduleStudentPaymentDao.batchInsert(courseScheduleStudentPayments);
 
         //推送
-        List<CourseSchedule> courseSchedules1 = courseScheduleDao.findTeacherCoursesWithIncludeDateRange(practiceGroup.getUserId(), allCourseDates.get(2), DateUtil.addMinutes(allCourseDates.get(2), practiceCourseMinutes));
-        List<CourseSchedule> courseSchedules2 = courseScheduleDao.findTeacherCoursesWithIncludeDateRange(practiceGroup.getUserId(), allCourseDates.get(3), DateUtil.addMinutes(allCourseDates.get(3), practiceCourseMinutes));
-        if (!CollectionUtils.isEmpty(courseSchedules1) || !CollectionUtils.isEmpty(courseSchedules2)) {
+        List<CourseSchedule> courseSchedules1 = courseScheduleDao.findTeacherCoursesWithIncludeDateRange(practiceGroup.getUserId(), allCourseDates.get(0), DateUtil.addMinutes(allCourseDates.get(0), practiceCourseMinutes));
+        List<CourseSchedule> courseSchedules2 = courseScheduleDao.findTeacherCoursesWithIncludeDateRange(practiceGroup.getUserId(), allCourseDates.get(1), DateUtil.addMinutes(allCourseDates.get(1), practiceCourseMinutes));
+        List<CourseSchedule> courseSchedules3 = courseScheduleDao.findTeacherCoursesWithIncludeDateRange(practiceGroup.getUserId(), allCourseDates.get(2), DateUtil.addMinutes(allCourseDates.get(2), practiceCourseMinutes));
+        List<CourseSchedule> courseSchedules5 = courseScheduleDao.findTeacherCoursesWithIncludeDateRange(practiceGroup.getUserId(), allCourseDates.get(3), DateUtil.addMinutes(allCourseDates.get(3), practiceCourseMinutes));
+        if (!CollectionUtils.isEmpty(courseSchedules1) || !CollectionUtils.isEmpty(courseSchedules2)
+                ||!CollectionUtils.isEmpty(courseSchedules3) || !CollectionUtils.isEmpty(courseSchedules5)) {
             if (courseSchedules1 == null) {
                 courseSchedules1 = new ArrayList<>();
             }
             if (courseSchedules2 == null) {
                 courseSchedules2 = new ArrayList<>();
             }
+            if (courseSchedules3 == null) {
+                courseSchedules3 = new ArrayList<>();
+            }
+            if (courseSchedules5 == null) {
+                courseSchedules5 = new ArrayList<>();
+            }
             courseSchedules1.addAll(courseSchedules2);
+            courseSchedules1.addAll(courseSchedules3);
+            courseSchedules1.addAll(courseSchedules5);
             List<String> courseDates = new ArrayList<>();
             List<String> courseNames = new ArrayList<>();
             for (int i = 0; i < courseSchedules1.size(); i++) {
@@ -1983,6 +2007,7 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
                     } else {
                         TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                         result.put("status", "TEACHER_PRACTICE_REPEAT");
+                        result.put("info", "抱歉啦,当前所选时段组合,「" + teacher.getRealName() +"」老师已被预约,请选择其他时段或更换老师后重试。");
                         return result;
                     }
                 }