Browse Source

Merge remote-tracking branch 'origin/master'

Joburgess 5 years ago
parent
commit
b79e81dac7

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

@@ -17,6 +17,7 @@ public interface ClassGroupTeacherMapperService extends BaseService<Long, ClassG
      */
     int classGroupTeachersInsert(List<ClassGroupTeacherMapper> classGroupTeacherMapperList);
 
+    int classGroupTeachersInsert(List<ClassGroupTeacherMapper> classGroupTeacherMapperList,boolean checkCourser);
 
     /**
      * 查询班级老师

+ 41 - 4
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupTeacherMapperServiceImpl.java

@@ -69,6 +69,43 @@ public class ClassGroupTeacherMapperServiceImpl extends BaseServiceImpl<Long, Cl
 
         List<ClassGroupTeacherMapper> oldClassGroupTeacherMapper = classGroupTeacherMapperDao.getClassGroupTeacherMapper(classGroupTeacherMapperList, GroupType.MUSIC);
 
+        for (ClassGroup classGroup : classGroups) {
+            imGroupMemberList.clear();
+            //原设置的老师删除群组
+            for (ClassGroupTeacherMapper classGroupTeacherMapper : oldClassGroupTeacherMapper) {
+                if (!classGroup.getId().equals(classGroupTeacherMapper.getClassGroupId())) continue;
+                imGroupMemberList.add(new ImGroupMember(classGroupTeacherMapper.getUserId().toString()));
+            }
+            if (imGroupMemberList.size() > 0) {
+                ImGroupMember[] imGroupMembers = imGroupMemberList.toArray(new ImGroupMember[imGroupMemberList.size()]);
+                imFeignService.groupQuit(new ImGroupModel(classGroup.getId().toString(), imGroupMembers, classGroup.getName()));
+            }
+            // 新设置的老师加入群组
+            imGroupMemberList.clear();
+            for (ClassGroupTeacherMapper classGroupTeacherMapper : classGroupTeacherMapperList) {
+                if (!classGroup.getId().equals(classGroupTeacherMapper.getClassGroupId())) continue;
+                classGroupTeacherMapper.setMusicGroupId(classGroup.getMusicGroupId());
+                classGroupTeacherMapper.setGroupType(classGroup.getGroupType());
+                imGroupMemberList.add(new ImGroupMember(classGroupTeacherMapper.getUserId().toString()));
+            }
+            ImGroupMember[] imGroupMembers = imGroupMemberList.toArray(new ImGroupMember[imGroupMemberList.size()]);
+            imFeignService.groupJoin(new ImGroupModel(classGroup.getId().toString(), imGroupMembers, classGroup.getName()));
+        }
+        classGroupTeacherMapperDao.delMusicGroupTeacherMapper(classGroupTeacherMapperList);
+
+        return classGroupTeacherMapperDao.classGroupTeachersInsert(classGroupTeacherMapperList);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public int classGroupTeachersInsert(List<ClassGroupTeacherMapper> classGroupTeacherMapperList, boolean checkCourser) {
+        String classGroupIds = classGroupTeacherMapperList.stream().map(classGroupTeacherMapper -> classGroupTeacherMapper.getClassGroupId().toString()).collect(Collectors.joining(","));
+        //老师加入群组
+        List<ImGroupMember> imGroupMemberList = new ArrayList<>();
+        List<ClassGroup> classGroups = classGroupService.findClassGroupByIds(classGroupIds);
+
+        List<ClassGroupTeacherMapper> oldClassGroupTeacherMapper = classGroupTeacherMapperDao.getClassGroupTeacherMapper(classGroupTeacherMapperList, GroupType.MUSIC);
+
         Set<String> oldTeacher = new HashSet<>();
         Set<String> newTeacher = new HashSet<>();
         for (ClassGroup classGroup : classGroups) {
@@ -98,11 +135,11 @@ public class ClassGroupTeacherMapperServiceImpl extends BaseServiceImpl<Long, Cl
         classGroupTeacherMapperDao.delMusicGroupTeacherMapper(classGroupTeacherMapperList);
 
         //老师不相同删除老师未开始的课程
-        if (oldTeacher.size() != newTeacher.size() || !newTeacher.containsAll(oldTeacher)){
+        if (checkCourser && (oldTeacher.size() != newTeacher.size() || !newTeacher.containsAll(oldTeacher))) {
             String musicGroupId = classGroupTeacherMapperList.get(0).getMusicGroupId();
             List<CourseSchedule> musicGroupCourseSchedules = courseScheduleDao.findMusicGroupCourseSchedules(musicGroupId, GroupType.MUSIC.getCode(), CourseStatusEnum.NOT_START.getCode());
-            if(musicGroupCourseSchedules != null && musicGroupCourseSchedules.size() >0){
-                courseScheduleService.batchDeleteMusicGroupNotStartCourse(musicGroupId,GroupType.MUSIC);
+            if (musicGroupCourseSchedules != null && musicGroupCourseSchedules.size() > 0) {
+                courseScheduleService.batchDeleteMusicGroupNotStartCourse(musicGroupId, GroupType.MUSIC);
             }
         }
 
@@ -428,7 +465,7 @@ public class ClassGroupTeacherMapperServiceImpl extends BaseServiceImpl<Long, Cl
         return courseScheduleTeacherSalary;
     }
 
-    public List<ClassGroupTeacherMapper> getClassGroupTeachers(Integer classGroupId){
+    public List<ClassGroupTeacherMapper> getClassGroupTeachers(Integer classGroupId) {
         return classGroupTeacherMapperDao.findClassGroupTeachers(classGroupId.toString());
     }
 }

+ 24 - 9
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupPaymentCalenderServiceImpl.java

@@ -6,6 +6,7 @@ import com.ym.mec.biz.service.MusicGroupPaymentCalenderService;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
 
+import com.ym.mec.util.date.DateUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -14,6 +15,7 @@ import java.util.Calendar;
 import java.util.Collections;
 import java.util.Date;
 import java.util.List;
+import java.util.stream.Collectors;
 
 @Service
 public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long, MusicGroupPaymentCalender> implements MusicGroupPaymentCalenderService {
@@ -41,17 +43,30 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 	public Date getNextPaymentDate(String musicGroupId) {
 		List<MusicGroupPaymentCalender> musicGroupPaymentCalenderList = musicGroupPaymentCalenderDao.findByMusicGroupId(musicGroupId);
 		if (musicGroupPaymentCalenderList != null && musicGroupPaymentCalenderList.size() > 0) {
-
-			Collections.sort(musicGroupPaymentCalenderList);
-
-			Calendar cale = Calendar.getInstance();
-			int month = cale.get(Calendar.MONTH) + 1;
-
-			for (MusicGroupPaymentCalender cal : musicGroupPaymentCalenderList) {
-				if (cal.getPaymentMonth() >= month) {
-					return cal.getStartPaymentDate();
+			Date date = new Date();
+			List<Integer> months = musicGroupPaymentCalenderList.stream().map(e -> e.getPaymentMonth()).collect(Collectors.toList());
+			//获取当前月份
+			int currentMonth = Integer.parseInt(DateUtil.getMonth(date));
+			int nextMonth = currentMonth;
+			for (int i = 0;i < months.size();i++){
+				if(i == months.size()-1 && months.get(i) <= currentMonth){
+					nextMonth = months.get(0);
+					break;
+				}else if(months.get(i) > currentMonth){
+					nextMonth = months.get(i);
+					break;
 				}
 			}
+			// 修改学员付费周期
+			Date nextPaymentDate = null;
+			if(nextMonth > currentMonth){
+				nextPaymentDate = DateUtil.addMonths(date, nextMonth - currentMonth);
+			}else if(nextMonth < currentMonth) {
+				nextPaymentDate = DateUtil.addMonths(date, 12 - currentMonth + nextMonth);
+			}else {
+				nextPaymentDate = DateUtil.addMonths(date, 12);
+			}
+			return nextPaymentDate;
 		}
 		return null;
 	}

+ 2 - 3
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRegistrationServiceImpl.java

@@ -101,8 +101,6 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
     @Autowired
     private SysMessageService sysMessageService;
     @Autowired
-    private MusicGroupPaymentCalenderDao musicGroupPaymentCalenderDao;
-    @Autowired
     private MusicGroupSubjectPlanDao musicGroupSubjectPlanDao;
     @Autowired
     private SubjectDao subjectDao;
@@ -585,9 +583,10 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
                     MusicGroupSubjectPlan musicOneSubjectClassPlan = musicGroupSubjectPlanDao.getMusicOneSubjectClassPlan(musicGroupId, studentRegistration.getActualSubjectId());
                     studentAddDto.setCourseFee(musicOneSubjectClassPlan.getFee());
                 }
+                Date nextPaymentDate = musicGroupPaymentCalenderService.getNextPaymentDate(musicGroupId);
                 musicGroupStudentFeeDao.insert(new MusicGroupStudentFee(musicGroupId,
                         userId, studentRegistration.getSubjectId(), studentAddDto.getCourseFee(),
-                        musicGroupPaymentCalenderService.getNextPaymentDate(musicGroupId), studentAddDto.getTemporaryCourseFee()));
+                        nextPaymentDate, studentAddDto.getTemporaryCourseFee()));
                 //生成订单
                 StudentPaymentOrder studentPaymentOrder = new StudentPaymentOrder();
                 studentPaymentOrder.setUserId(userId);

+ 1 - 0
mec-biz/src/main/resources/config/mybatis/StudentPaymentOrderMapper.xml

@@ -240,6 +240,7 @@
     <select id="findMusicGroupApplyOrderByStatus" resultMap="StudentPaymentOrder">
         SELECT * FROM student_payment_order WHERE music_group_id_= #{musicGroupId} AND user_id_=#{userId} AND type_ =
         'APPLY' AND status_ = #{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
+         ORDER BY id_ DESC LIMIT 1
     </select>
 
     <!-- 根据订单号查询订单 -->

+ 1 - 1
mec-web/src/main/java/com/ym/mec/web/controller/ClassGroupController.java

@@ -154,7 +154,7 @@ public class ClassGroupController extends BaseController {
         if (classGroupTeacherMapperList.size() <= 0) {
             return failed("参数不合法");
         }
-        return succeed(classGroupTeacherMapperService.classGroupTeachersInsert(classGroupTeacherMapperList));
+        return succeed(classGroupTeacherMapperService.classGroupTeachersInsert(classGroupTeacherMapperList,true));
     }
 
     @ApiOperation(value = "获取乐团班级老师")