Explorar o código

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

yonge %!s(int64=4) %!d(string=hai) anos
pai
achega
f802abae35

+ 2 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/MusicGroupStatusEnum.java

@@ -3,7 +3,8 @@ package com.ym.mec.biz.dal.enums;
 import com.ym.mec.common.enums.BaseEnum;
 
 public enum MusicGroupStatusEnum implements BaseEnum<String, MusicGroupStatusEnum> {
-	DRAFT("草稿"), AUDIT("审核中"), AUDIT_FAILED("审核失败"), PRE_APPLY("预报名"), PRE_BUILD_FEE("创建缴费"), FEE_AUDIT("费用审核中"), APPLY("报名中"), PAY("缴费中"), PREPARE("筹备中"), PROGRESS(
+	DRAFT("草稿"), AUDIT("审核中"), AUDIT_FAILED("审核失败"), PRE_APPLY("预报名"), PRE_BUILD_FEE("创建缴费"),
+	FEE_AUDIT("费用审核中"), APPLY("报名中"), PAY("缴费中"), PREPARE("筹备中"), PROGRESS(
 			"进行中"), CANCELED("取消"), PAUSE("暂停"), CLOSE("关闭");
 
 	private String msg;

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

@@ -7,6 +7,7 @@ import static com.ym.mec.biz.dal.enums.GroupType.COMM;
 import static com.ym.mec.biz.dal.enums.GroupType.MUSIC;
 import static com.ym.mec.biz.dal.enums.GroupType.PRACTICE;
 import static com.ym.mec.biz.dal.enums.GroupType.VIP;
+import static com.ym.mec.biz.dal.enums.MusicGroupStatusEnum.PROGRESS;
 
 import java.math.BigDecimal;
 import java.time.Duration;
@@ -2201,23 +2202,25 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         }
 
         List<ClassGroupTeacherMapper> byClassGroup = classGroupTeacherMapperDao.findByClassGroup(classGroupId);
-        if (byClassGroup != null && byClassGroup.size() > 0) {
-            ClassGroupTeacherMapper groupTeacherMapper = byClassGroup.stream().filter(classGroupTeacherMapper -> classGroupTeacherMapper.getTeacherRole() == TeachTypeEnum.BISHOP).findFirst().get();
-            if (groupTeacherMapper != null) {
-                imGroupMemberService.quit(classGroupId.longValue(), groupTeacherMapper.getUserId());
-            }
-        }
-
         List<ClassGroupTeacherMapper> newTeacherMapperList = classGroup4MixDtos.get(0).getClassGroupTeacherMapperList();
-        if (newTeacherMapperList.size() > 0) {
-            //获取之前的班级老师
-            Set<Integer> groupTeacher = classGroupDao.findGroupTeacher(classGroupId);
-            groupTeacher.forEach(e -> {
-            	imGroupMemberService.quit(classGroupId.longValue(), e);
-            });
-            newTeacherMapperList.forEach(e -> {
-                imGroupMemberService.join(classGroupId.longValue(), e.getUserId(), "指导老师", false);
-            });
+        MusicGroup musicGroup = musicGroupDao.get(classGroup.getMusicGroupId());
+        if(musicGroup.getStatus() == PROGRESS){
+            if (byClassGroup != null && byClassGroup.size() > 0) {
+                ClassGroupTeacherMapper groupTeacherMapper = byClassGroup.stream().filter(classGroupTeacherMapper -> classGroupTeacherMapper.getTeacherRole() == TeachTypeEnum.BISHOP).findFirst().get();
+                if (groupTeacherMapper != null) {
+                    imGroupMemberService.quit(classGroupId.longValue(), groupTeacherMapper.getUserId());
+                }
+            }
+            if (newTeacherMapperList.size() > 0) {
+                //获取之前的班级老师
+                Set<Integer> groupTeacher = classGroupDao.findGroupTeacher(classGroupId);
+                groupTeacher.forEach(e -> {
+                    imGroupMemberService.quit(classGroupId.longValue(), e);
+                });
+                newTeacherMapperList.forEach(e -> {
+                    imGroupMemberService.join(classGroupId.longValue(), e.getUserId(), "指导老师", false);
+                });
+            }
         }
         if (Objects.nonNull(classGroup4MixDtos.get(0).getCourseAddType()) && classGroup4MixDtos.get(0).getCourseAddType().equals("onlyUpdateTeacher")) {
             List<Integer> classGroupIds = new ArrayList<>();
@@ -2241,8 +2244,6 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
 
         classGroupService.updateTotalClassTimes(classGroup.getId(), courseTimes);
 
-        MusicGroup musicGroup = musicGroupDao.get(classGroup.getMusicGroupId());
-
         Integer schoolId = teachMode.equals(TeachModeEnum.ONLINE) ? null : musicGroup.getSchoolId();
 
         List<Subject> subjectList = subjectService.findBySubjectByIdList(classGroup.getSubjectIdList());
@@ -2271,11 +2272,6 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
                 .map(ClassGroupTeacherMapper::getUserId)
                 .collect(Collectors.toList());
 
-        //所有教师列表
-        List<Teacher> teachers = teacherDao.findByTeacherIds(allTeacherIds);
-        Map<Integer, Teacher> teacherMap = teachers.stream()
-                .collect(Collectors.toMap(Teacher::getId, teacher -> teacher));
-
         Set<String> newTeacher = newClassGroupTeacherMapperList.stream().map(
                 classGroupTeacherMapper -> classGroupTeacherMapper.getTeacherRole().getCode() + classGroupTeacherMapper.getUserId()
         ).collect(Collectors.toSet());
@@ -2312,7 +2308,6 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
             }
             Integer totalMinutes = courseTypeMinutesMap.get(classGroup4MixDto.getCourseType().getCode());
             long totalCourseDuration = 0;
-//            classGroup4MixDto.setCourseTimes(totalMinutes/(int)courseDuration);
 
             if (classGroup4MixDto.getCourseTimes() <= 0) {
                 throw new BizException("{}课程类型剩余课程时长不足", classGroup4MixDto.getCourseType().getMsg());
@@ -2398,12 +2393,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
             }
         }
 
-        //排课处理
-//        if (classGroup.getType().equals(ClassGroupTypeEnum.SNAP)) {
-//            courseScheduleService.checkSnapCourseShchedules(courseScheduleList);
-//        } else {
         courseScheduleService.checkNewCourseSchedules(courseScheduleList, false, false);
-//        }
 
         //老师结算表
         if (courseScheduleTeacherSalaryList.size() > 0) {
@@ -2416,7 +2406,9 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
             //学生结算表
             courseScheduleStudentPaymentService.createForMusicGroup(musicGroupId, courseScheduleList, studentIds);
         }
-        imUserFriendService.refreshClassImUserFriend(classGroupId);
+        if(musicGroup.getStatus() == PROGRESS){
+            imUserFriendService.refreshClassImUserFriend(classGroupId);
+        }
         return classGroup;
     }
 
@@ -2982,7 +2974,6 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         
         imGroupService.create(classGroup.getId().longValue(), musicGroup.getTeamTeacherId(), classGroup.getName(), musicGroup.getName(), musicGroup.getName(), musicGroup.getName(), null, "MUSIC");
         imGroupMemberService.join(classGroup.getId().longValue(), userRoleMap);
-        imUserFriendService.refreshClassImUserFriend(classGroup.getId());
         return true;
     }
 

+ 16 - 10
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupStudentMapperServiceImpl.java

@@ -413,10 +413,10 @@ public class ClassGroupStudentMapperServiceImpl extends BaseServiceImpl<Long, Cl
             oldStudentIds = classGroupStudents.stream().map(ClassGroupStudentMapper::getUserId).collect(Collectors.toSet());
             oldNormalStudentIds = classGroupStudents.stream().filter(s -> ClassGroupStudentStatusEnum.NORMAL.equals(s.getStatus())).map(ClassGroupStudentMapper::getUserId).collect(Collectors.toSet());
         }
-
+        MusicGroup musicGroup = musicGroupDao.get(classGroup.getMusicGroupId());
         //线上基础技能班,原始分班人数不能小于3人大于6人
         if (classGroup.getType().equals(ClassGroupTypeEnum.HIGH_ONLINE)) {
-            MusicGroup musicGroup = musicGroupDao.get(classGroup.getMusicGroupId());
+
             if (studentIds.size() < 3 && musicGroup.getStatus().equals(MusicGroupStatusEnum.PREPARE)) {
                 throw new BizException("线上基础技能班人数不能少于3人");
             }
@@ -526,20 +526,26 @@ public class ClassGroupStudentMapperServiceImpl extends BaseServiceImpl<Long, Cl
 
         if (!CollectionUtils.isEmpty(removeStudentIds)) {
             courseScheduleDao.deleteMusicGroupCourseSchedulesWithStudents(courseIds, new ArrayList<>(removeStudentIds));
-            //5、学生退出班级群组
-            imGroupMemberService.quit(classGroup.getId().longValue(), new ArrayList<Integer>(addStudentIds));
+            if(musicGroup.getStatus() == MusicGroupStatusEnum.PROGRESS){
+                //5、学生退出班级群组
+                imGroupMemberService.quit(classGroup.getId().longValue(), new ArrayList<Integer>(addStudentIds));
+            }
         }
 
         if (!CollectionUtils.isEmpty(addStudentIds)) {
             courseScheduleStudentPaymentService.createForMusicGroup(classGroup.getMusicGroupId(), classGroupNotStartCourse, new ArrayList<>(addStudentIds));
-            Map<Integer,String> userRoleMap = new HashMap<Integer, String>();
-            for (Integer addStudentId : addStudentIds) {
-            	userRoleMap.put(addStudentId, "");
+            if(musicGroup.getStatus() == MusicGroupStatusEnum.PROGRESS){
+                Map<Integer,String> userRoleMap = new HashMap<>();
+                for (Integer addStudentId : addStudentIds) {
+                    userRoleMap.put(addStudentId, "");
+                }
+                //5、添加进IM群组
+                imGroupMemberService.join(classGroup.getId().longValue(), userRoleMap);
             }
-            //5、添加进IM群组
-            imGroupMemberService.join(classGroup.getId().longValue(), userRoleMap);
         }
-        imUserFriendService.refreshClassImUserFriend(classGroup.getId());
+        if(musicGroup.getStatus() == MusicGroupStatusEnum.PROGRESS){
+            imUserFriendService.refreshClassImUserFriend(classGroup.getId());
+        }
     }
 
     @Override

+ 21 - 49
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java

@@ -18,6 +18,7 @@ import java.util.Map;
 import java.util.Set;
 import java.util.stream.Collectors;
 
+import com.ym.mec.biz.dal.dao.*;
 import com.ym.mec.biz.service.*;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -31,42 +32,6 @@ import com.alibaba.fastjson.TypeReference;
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.auth.api.entity.SysUserRole;
-import com.ym.mec.biz.dal.dao.ChargeTypeDao;
-import com.ym.mec.biz.dal.dao.ClassGroupDao;
-import com.ym.mec.biz.dal.dao.ClassGroupStudentMapperDao;
-import com.ym.mec.biz.dal.dao.CooperationOrganDao;
-import com.ym.mec.biz.dal.dao.CourseScheduleDao;
-import com.ym.mec.biz.dal.dao.CourseScheduleStudentPaymentDao;
-import com.ym.mec.biz.dal.dao.CourseScheduleTeacherSalaryDao;
-import com.ym.mec.biz.dal.dao.EmployeeDao;
-import com.ym.mec.biz.dal.dao.MusicGroupBuildLogDao;
-import com.ym.mec.biz.dal.dao.MusicGroupDao;
-import com.ym.mec.biz.dal.dao.MusicGroupPaymentCalenderCourseSettingsDao;
-import com.ym.mec.biz.dal.dao.MusicGroupPaymentCalenderDao;
-import com.ym.mec.biz.dal.dao.MusicGroupPaymentCalenderDetailDao;
-import com.ym.mec.biz.dal.dao.MusicGroupPaymentCalenderStudentDetailDao;
-import com.ym.mec.biz.dal.dao.MusicGroupPaymentEntitiesDao;
-import com.ym.mec.biz.dal.dao.MusicGroupPaymentStudentCourseDetailDao;
-import com.ym.mec.biz.dal.dao.MusicGroupPurchaseListDao;
-import com.ym.mec.biz.dal.dao.MusicGroupQuitDao;
-import com.ym.mec.biz.dal.dao.MusicGroupStudentFeeDao;
-import com.ym.mec.biz.dal.dao.MusicGroupSubjectGoodsGroupDao;
-import com.ym.mec.biz.dal.dao.MusicGroupSubjectPlanDao;
-import com.ym.mec.biz.dal.dao.OrganizationDao;
-import com.ym.mec.biz.dal.dao.SchoolDao;
-import com.ym.mec.biz.dal.dao.SporadicChargeInfoDao;
-import com.ym.mec.biz.dal.dao.StudentDao;
-import com.ym.mec.biz.dal.dao.StudentPaymentOrderDao;
-import com.ym.mec.biz.dal.dao.StudentPaymentOrderDetailDao;
-import com.ym.mec.biz.dal.dao.StudentPreRegistrationDao;
-import com.ym.mec.biz.dal.dao.StudentRegistrationDao;
-import com.ym.mec.biz.dal.dao.StudentVisitDao;
-import com.ym.mec.biz.dal.dao.SubjectChangeDao;
-import com.ym.mec.biz.dal.dao.SubjectDao;
-import com.ym.mec.biz.dal.dao.SysConfigDao;
-import com.ym.mec.biz.dal.dao.SysUserCashAccountDao;
-import com.ym.mec.biz.dal.dao.TeacherAttendanceDao;
-import com.ym.mec.biz.dal.dao.TeacherDao;
 import com.ym.mec.biz.dal.dto.BasicUserDto;
 import com.ym.mec.biz.dal.dto.CloseMusicGroupDto;
 import com.ym.mec.biz.dal.dto.CourseFormDto;
@@ -174,6 +139,9 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
     private ClassGroupStudentMapperDao classGroupStudentMapperDao;
 
     @Autowired
+    private ClassGroupTeacherMapperDao classGroupTeacherMapperDao;
+
+    @Autowired
     private StudentPaymentOrderDao studentPaymentOrderDao;
 
     @Autowired
@@ -1202,17 +1170,6 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
                 throw new BizException("课酬未确认");
             }
         }
-//        updateTeamTeacher(musicGroup, musicGroup);
-        //生成学员费用表
-        /*List<MusicGroupStudentFee> musicGroupStudentFees = musicGroupStudentFeeDao.initMusicGroupStudentFee(musicGroupId);
-        if (musicGroupStudentFees != null && musicGroupStudentFees.size() > 0) {
-            if (musicGroup.getFeeType() != null && musicGroup.getFeeType() != FeeType.OFFLINE) {
-                for (MusicGroupStudentFee sf : musicGroupStudentFees) {
-                    sf.setRemainNetworkClassTimes(sf.getRemainNetworkClassTimes() + 1);
-                }
-            }
-            musicGroupStudentFeeDao.batchInsert(musicGroupStudentFees, null, "PAID_COMPLETED");
-        }*/
         musicGroupStudentFeeDao.batchUpdateCalenders(musicGroupId);
         //记录操作日志
         musicGroupBuildLogDao.insert(new MusicGroupBuildLog(musicGroupId, "确认开团(筹备中 -> 进行中)", sysUser.getId(), ""));
@@ -1222,6 +1179,17 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         musicGroup.setGroupMemberNum(studentRegistrations == null ? 0 : studentRegistrations.size());
         musicGroup.setBillStartDate(new Date());
         musicGroupDao.update(musicGroup);
+        //获取乐团班级列表
+        List<ClassGroup> classGroups = classGroupDao.queryClassGroups(musicGroupId, "MUSIC");
+        for (ClassGroup classGroup : classGroups) {
+            //获取班级关联的老师列表
+            Set<Integer> teacherIds = classGroupTeacherMapperDao.queryTeacherIdsByClassGroupId(classGroup.getId(),null,null);
+            //获取班级关联的学员列表
+            Set<Integer> studentIds = classGroupStudentMapperDao.queryStudentIdsByClassGroupId(classGroup.getId(),null,null);
+            //创建IM群组
+            classGroupService.addImGroup(classGroup, new ArrayList<>(studentIds), new ArrayList<>(teacherIds));
+        }
+        imUserFriendService.refreshGroupImUserFriend(musicGroupId,GroupType.MUSIC);
         //给老师发送乐团成立通知
         Map<Integer, String> map = JSONObject.parseObject(JSONObject.toJSONString(MapUtil.convertMybatisMap(musicGroupDao.queryTeacherIdMap(musicGroupId))), HashMap.class);
         if (map != null && map.size() > 0) {
@@ -2595,7 +2563,9 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
             //如果已生成课表,那么修改未上课时教学点
             courseScheduleDao.updateCourseScheduleSchool("MUSIC", musicGroupId, musicGroup.getSchoolId());
         }
-        updateTeamTeacher(group, musicGroup);
+        if(group.getStatus() != MusicGroupStatusEnum.PROGRESS){
+            updateTeamTeacher(group, musicGroup);
+        }
 
         Date date = new Date();
         //缴费方式不同
@@ -2621,7 +2591,9 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         if (subFeeSettingDto.getMusicGroupPaymentEntities() != null && subFeeSettingDto.getMusicGroupPaymentEntities().size() > 0) {
             musicGroupPaymentEntitiesDao.batchAdd(subFeeSettingDto.getMusicGroupPaymentEntities(), musicGroupId);
         }
-        imUserFriendService.refreshGroupImUserFriend(musicGroupId,GroupType.MUSIC);
+        if(group.getStatus() == MusicGroupStatusEnum.PROGRESS){
+            imUserFriendService.refreshGroupImUserFriend(musicGroupId,GroupType.MUSIC);
+        }
         //记录操作日志
         musicGroupBuildLogDao.insert(new MusicGroupBuildLog(musicGroupId, "修改乐团基本信息数据", sysUser.getId(), JSONObject.toJSONString(subFeeSettingDto)));
     }

+ 0 - 7
mec-web/src/main/java/com/ym/mec/web/controller/MusicGroupController.java

@@ -76,13 +76,6 @@ public class MusicGroupController extends BaseController {
 		return succeed(musicGroupService.findMusicGroupSubjectInfo(musicGroupId));
 	}
 
-//	@ApiOperation(value = "用户费用表,数据补全")
-//	@PostMapping("/musicGroupStudentFeePatch")
-//	public Object musicGroupStudentFeePatch(@RequestBody List<String> musicGroupIds){
-//		musicGroupService.musicGroupStudentFeePatch(musicGroupIds);
-//		return succeed();
-//	}
-
 	@ApiOperation(value = "修改乐团声部信息")
 	@PostMapping("/updateSubjectInfo")
 	@PreAuthorize("@pcs.hasPermissions('musicGroup/updateSubjectInfo')")