Explorar o código

1、优化小课加学员的流程

Joburgess %!s(int64=5) %!d(string=hai) anos
pai
achega
2e3f96f45e

+ 12 - 10
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleTeacherSalaryServiceImpl.java

@@ -619,18 +619,20 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
         classGroupTeacherSalary.setSalary(offlineTeacherSalary);
 
         List<CourseScheduleTeacherSalary> courseScheduleTeacherSalaries = courseScheduleTeacherSalaryDao.findByGroupWithNotStart(vipGroupId.toString(), GroupType.VIP.getCode());
-        List<Long> courseIds = courseScheduleTeacherSalaries.stream().map(CourseScheduleTeacherSalary::getCourseScheduleId).collect(Collectors.toList());
-        List<Map<Integer, String>> teachModeById = courseScheduleDao.getTeachModeById(courseIds);
-        Map<Integer, String> coureTeachModeMap = MapUtil.convertIntegerMap(teachModeById);
-        for(int i=0;i<courseScheduleTeacherSalaries.size();i++){
-            String courseType = coureTeachModeMap.get(courseScheduleTeacherSalaries.get(i).getCourseScheduleId());
-            if(courseType.equals(TeachModeEnum.ONLINE.getCode())){
-                courseScheduleTeacherSalaries.get(i).setExpectSalary(onlineTeacherSalary);
-            }else if(courseType.equals(TeachModeEnum.OFFLINE.getCode())){
-                courseScheduleTeacherSalaries.get(i).setExpectSalary(offlineTeacherSalary);
+        if(!CollectionUtils.isEmpty(courseScheduleTeacherSalaries)){
+            List<Long> courseIds = courseScheduleTeacherSalaries.stream().map(CourseScheduleTeacherSalary::getCourseScheduleId).collect(Collectors.toList());
+            List<Map<Integer, String>> teachModeById = courseScheduleDao.getTeachModeById(courseIds);
+            Map<Integer, String> coureTeachModeMap = MapUtil.convertIntegerMap(teachModeById);
+            for(int i=0;i<courseScheduleTeacherSalaries.size();i++){
+                String courseType = coureTeachModeMap.get(courseScheduleTeacherSalaries.get(i).getCourseScheduleId());
+                if(courseType.equals(TeachModeEnum.ONLINE.getCode())){
+                    courseScheduleTeacherSalaries.get(i).setExpectSalary(onlineTeacherSalary);
+                }else if(courseType.equals(TeachModeEnum.OFFLINE.getCode())){
+                    courseScheduleTeacherSalaries.get(i).setExpectSalary(offlineTeacherSalary);
+                }
             }
+            courseScheduleTeacherSalaryDao.batchUpdateTeacherExpectSalarys(courseScheduleTeacherSalaries);
         }
-        courseScheduleTeacherSalaryDao.batchUpdateTeacherExpectSalarys(courseScheduleTeacherSalaries);
         classGroupTeacherSalaryDao.update(classGroupTeacherSalary);
     }
 }

+ 41 - 8
mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java

@@ -1809,8 +1809,48 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		}
 
 		List<CourseSchedule> surplusCourses = courseScheduleDao.findByClassGroupAndStatus(classGroup.getId(), CourseStatusEnum.NOT_START.getCode());
+
+		List<ImGroupMember> imGroupMemberList = new ArrayList<>();
+		List<ClassGroupStudentMapper> classGroupStudentMappers=new ArrayList<>();
+
+		List<ClassGroupStudentMapper> classGroupStudentsList = classGroupStudentMapperDao.findByClassGroupAndStudent(classGroup.getId(), studentIds);
+		Map<Integer, List<ClassGroupStudentMapper>> classGroupStudentsMap = classGroupStudentsList.stream()
+				.collect(Collectors.groupingBy(ClassGroupStudentMapper::getUserId));
+
 		if(CollectionUtils.isEmpty(surplusCourses)){
-			throw new BizException("此vip课程没有剩余课程计划");
+			for (Integer studentId:studentIds) {
+				//创建班级学生关联记录
+				ClassGroupStudentMapper classGroupStudentMapper;
+
+				List<ClassGroupStudentMapper> classGroupStudents = classGroupStudentsMap.get(studentId);
+				if(!CollectionUtils.isEmpty(classGroupStudents)){
+					classGroupStudentMapper = classGroupStudents.get(0);
+					classGroupStudentMapper.setStatus(ClassGroupStudentStatusEnum.NORMAL);
+					classGroupStudentMapperDao.update(classGroupStudentMapper);
+				}else{
+					classGroupStudentMapper=new ClassGroupStudentMapper();
+					classGroupStudentMapper.setGroupType(classGroup.getGroupType());
+					classGroupStudentMapper.setMusicGroupId(classGroup.getMusicGroupId());
+					classGroupStudentMapper.setClassGroupId(classGroup.getId());
+					classGroupStudentMapper.setStatus(ClassGroupStudentStatusEnum.NORMAL);
+					classGroupStudentMapper.setUserId(studentId);
+					classGroupStudentMappers.add(classGroupStudentMapper);
+				}
+
+				imGroupMemberList.add(new ImGroupMember(studentId.toString()));
+			}
+
+			if(!CollectionUtils.isEmpty(classGroupStudentMappers)){
+				classGroupStudentMapperDao.classGroupStudentsInsert(classGroupStudentMappers);
+			}
+			try {
+				ImGroupMember[] imGroupMembers = imGroupMemberList.toArray(new ImGroupMember[imGroupMemberList.size()]);
+				// 创建群组
+				imFeignService.groupCreate(new ImGroupModel(classGroup.getId().toString(), imGroupMembers, classGroup.getName()));
+			} catch (Exception e) {
+				e.printStackTrace();
+			}
+			return;
 		}
 
 		BigDecimal surplusCourseNum = new BigDecimal(surplusCourses.size());
@@ -1825,13 +1865,6 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 
 		BigDecimal avgCourseFee = surplusCoursesPrice.divide(surplusCourseNum,CommonConstants.DECIMAL_FINAL_PLACE,BigDecimal.ROUND_HALF_UP);
 
-		List<ImGroupMember> imGroupMemberList = new ArrayList<>();
-		List<ClassGroupStudentMapper> classGroupStudentMappers=new ArrayList<>();
-
-		List<ClassGroupStudentMapper> classGroupStudentsList = classGroupStudentMapperDao.findByClassGroupAndStudent(classGroup.getId(), studentIds);
-		Map<Integer, List<ClassGroupStudentMapper>> classGroupStudentsMap = classGroupStudentsList.stream()
-				.collect(Collectors.groupingBy(ClassGroupStudentMapper::getUserId));
-
 		//生成学生单课缴费信息
 		for (Integer studentId:studentIds) {
 			SysUserCashAccount sysUserCashAccount = sysUserCashAccountService.get(studentId);