zouxuan 2 years ago
parent
commit
75fee14307

+ 77 - 87
mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java

@@ -1,5 +1,6 @@
 package com.ym.mec.biz.service.impl;
 
+import static com.ym.mec.biz.dal.enums.GroupType.LIVE;
 import static com.ym.mec.biz.dal.enums.GroupType.VIP;
 import static com.ym.mec.biz.dal.enums.SysUserRoleEnum.ORGAN_MANAGER;
 import static java.math.BigDecimal.*;
@@ -4514,97 +4515,86 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
     public void createLiveCourse() {
         List<VipGroup> vipGroups = vipGroupDao.findNoCreateSuccessVipGroup(null,"LIVE");
         if(!CollectionUtils.isEmpty(vipGroups)){
-            List<VipGroup> noStudentGroup = vipGroups.stream().filter(e -> StringUtils.isEmpty(e.getStudentIdList())).collect(Collectors.toList());
-            List<VipGroup> hasStudentGroup = vipGroups.stream().filter(e -> StringUtils.isNotEmpty(e.getStudentIdList())).collect(Collectors.toList());
-            if(!CollectionUtils.isEmpty(noStudentGroup)){
-                noStudentGroup.forEach(e->e.setStatus(VipGroupStatusEnum.CANCEL));
-                //关闭课程组
-                vipGroupDao.batchUpdate(noStudentGroup);
-            }
-            if(!CollectionUtils.isEmpty(hasStudentGroup)){
-                //排课
-                for (VipGroup vipGroup : hasStudentGroup) {
-                    ClassGroup classGroup = classGroupDao.findByVipGroup(vipGroup.getId(),vipGroup.getGroupType());
+            //排课
+            for (VipGroup vipGroup : vipGroups) {
+                ClassGroup classGroup = classGroupDao.findByVipGroup(vipGroup.getId(),vipGroup.getGroupType());
+                List<ClassGroupStudentMapper> classGroupStudents = classGroupStudentMapperDao.findByClassGroup(classGroup.getId());
+                if(CollectionUtils.isEmpty(classGroupStudents)){
+                    vipGroup.setStatus(VipGroupStatusEnum.CANCEL);
+                }else {
                     vipGroup.setStatus(VipGroupStatusEnum.PROGRESS);
                     Integer tenantId = vipGroup.getTenantId();
-                    for (String s : vipGroup.getStudentIdList().split(",")) {
-                        classGroup.setDelFlag(0);
-                        VipGroupDefaultClassesUnitPrice vipGroupDefaultClassesUnitPrice = vipGroupDefaultClassesUnitPriceDao.getByVipGroupCategory(vipGroup.getVipGroupCategoryId(),
-                                vipGroup.getOrganId(), vipGroup.getGroupType());
-
-                        //生成课表
-                        List<CourseSchedule> courseSchedules = JSON.parseArray(vipGroup.getCourseSchedulesJson(), CourseSchedule.class);
-                        classGroup.setTotalClassTimes(courseSchedules.size());
-
-                        courseScheduleService.batchAddCourseSchedule1(courseSchedules);
-
-                        //考勤信息
-                        List<TeacherAttendance> teacherAttendances = new ArrayList<>();
-                        //创建课酬信息
-                        List<CourseScheduleTeacherSalary> courseScheduleTeacherSalaries = new ArrayList<>();
-                        Map<String, BigDecimal> stringBigDecimalMap = countVipGroupPredictFee1(vipGroup, vipGroup.getUserId(), null);
-                        for (CourseSchedule courseSchedule : courseSchedules) {
-                            //创建教师课程薪水记录
-                            CourseScheduleTeacherSalary courseScheduleTeacherSalary = new CourseScheduleTeacherSalary();
-                            courseScheduleTeacherSalary.setCourseScheduleId(courseSchedule.getId());
-                            courseScheduleTeacherSalary.setGroupType(courseSchedule.getGroupType());
-                            courseScheduleTeacherSalary.setMusicGroupId(courseSchedule.getMusicGroupId());
-                            courseScheduleTeacherSalary.setTeacherRole(TeachTypeEnum.BISHOP);
-                            courseScheduleTeacherSalary.setUserId(courseSchedule.getActualTeacherId().intValue());
-                            courseScheduleTeacherSalary.setClassGroupId(courseSchedule.getClassGroupId());
-                            courseScheduleTeacherSalary.setExpectSalary(stringBigDecimalMap.get("offlineTeacherSalary"));
-                            courseScheduleTeacherSalary.setActualSalary(null);
-                            courseScheduleTeacherSalary.setTenantId(tenantId);
-                            courseScheduleTeacherSalaries.add(courseScheduleTeacherSalary);
-
-                            TeacherAttendance teacherAttendance = new TeacherAttendance();
-                            teacherAttendance.setGroupType(courseSchedule.getGroupType());
-                            teacherAttendance.setClassGroupId(courseSchedule.getClassGroupId());
-                            teacherAttendance.setMusicGroupId(courseSchedule.getMusicGroupId());
-                            teacherAttendance.setTeacherId(courseSchedule.getActualTeacherId());
-                            teacherAttendance.setCourseScheduleId(courseSchedule.getId());
-                            teacherAttendance.setTenantId(tenantId);
-                            teacherAttendances.add(teacherAttendance);
-                        }
-                        courseScheduleTeacherSalaryDao.batchInsert(courseScheduleTeacherSalaries);
-                        teacherAttendanceDao.batchInsert(teacherAttendances);
-
-                        //群聊数据
-                        Map<Integer, String> userRoleMap = new HashMap<Integer, String>(5);
-                        if (Objects.nonNull(vipGroup.getEducationalTeacherId())) {
-                            userRoleMap.put(vipGroup.getEducationalTeacherId(), "乐团主管");
-                        }
-                        userRoleMap.put(vipGroup.getUserId(), "指导老师");
-                        //生成课程学员关联
-                        List<CourseScheduleStudentPayment> courseScheduleStudentPayments = new ArrayList<>();
-                        List<ClassGroupStudentMapper> classGroupStudents = classGroupStudentMapperDao.findByClassGroup(classGroup.getId());
+                    classGroup.setDelFlag(0);
+                    VipGroupDefaultClassesUnitPrice vipGroupDefaultClassesUnitPrice = vipGroupDefaultClassesUnitPriceDao.getByVipGroupCategory(vipGroup.getVipGroupCategoryId(),
+                            vipGroup.getOrganId(), vipGroup.getGroupType());
+                    //生成课表
+                    List<CourseSchedule> courseSchedules = JSON.parseArray(vipGroup.getCourseSchedulesJson(), CourseSchedule.class);
+                    classGroup.setTotalClassTimes(courseSchedules.size());
+                    courseScheduleService.batchAddCourseSchedule1(courseSchedules);
+                    //考勤信息
+                    List<TeacherAttendance> teacherAttendances = new ArrayList<>();
+                    //创建课酬信息
+                    List<CourseScheduleTeacherSalary> courseScheduleTeacherSalaries = new ArrayList<>();
+                    Map<String, BigDecimal> stringBigDecimalMap = countVipGroupPredictFee1(vipGroup, vipGroup.getUserId(), null);
+                    for (CourseSchedule courseSchedule : courseSchedules) {
+                        //创建教师课程薪水记录
+                        CourseScheduleTeacherSalary courseScheduleTeacherSalary = new CourseScheduleTeacherSalary();
+                        courseScheduleTeacherSalary.setCourseScheduleId(courseSchedule.getId());
+                        courseScheduleTeacherSalary.setGroupType(courseSchedule.getGroupType());
+                        courseScheduleTeacherSalary.setMusicGroupId(courseSchedule.getMusicGroupId());
+                        courseScheduleTeacherSalary.setTeacherRole(TeachTypeEnum.BISHOP);
+                        courseScheduleTeacherSalary.setUserId(courseSchedule.getActualTeacherId().intValue());
+                        courseScheduleTeacherSalary.setClassGroupId(courseSchedule.getClassGroupId());
+                        courseScheduleTeacherSalary.setExpectSalary(stringBigDecimalMap.get("offlineTeacherSalary"));
+                        courseScheduleTeacherSalary.setActualSalary(null);
+                        courseScheduleTeacherSalary.setTenantId(tenantId);
+                        courseScheduleTeacherSalaries.add(courseScheduleTeacherSalary);
+
+                        TeacherAttendance teacherAttendance = new TeacherAttendance();
+                        teacherAttendance.setGroupType(courseSchedule.getGroupType());
+                        teacherAttendance.setClassGroupId(courseSchedule.getClassGroupId());
+                        teacherAttendance.setMusicGroupId(courseSchedule.getMusicGroupId());
+                        teacherAttendance.setTeacherId(courseSchedule.getActualTeacherId());
+                        teacherAttendance.setCourseScheduleId(courseSchedule.getId());
+                        teacherAttendance.setTenantId(tenantId);
+                        teacherAttendances.add(teacherAttendance);
+                    }
+                    courseScheduleTeacherSalaryDao.batchInsert(courseScheduleTeacherSalaries);
+                    teacherAttendanceDao.batchInsert(teacherAttendances);
 
-                        List<Integer> studentIdList = classGroupStudents.stream().map(e -> e.getUserId()).collect(Collectors.toList());
-                        for (ClassGroupStudentMapper classGroupStudent : classGroupStudents) {
-                            StudentPaymentOrder successOrder = studentPaymentOrderDao.findByStudentVipGroup(vipGroup.getId(), classGroupStudent.getUserId(), "SUCCESS","VIP".equals(vipGroup.getGroupType())?"SMALL_CLASS_TO_BUY":"LIVE_GROUP_BUY");
-                            //实际支付金额,去除优惠券
-                            BigDecimal actualPrice = successOrder.getExpectAmount();
-                            BigDecimal divide = actualPrice.divide(new BigDecimal(courseSchedules.size()), ROUND_DOWN);
-                            BigDecimal firstAmount = actualPrice.subtract(divide.multiply(new BigDecimal(courseSchedules.size()))).add(divide);
-                            for (int i = 0; i < courseSchedules.size(); i++) {
-                                CourseSchedule courseSchedule = courseSchedules.get(i);
-                                CourseScheduleStudentPayment courseScheduleStudentPayment = new CourseScheduleStudentPayment();
-                                courseScheduleStudentPayment.setUserId(classGroupStudent.getUserId());
-                                courseScheduleStudentPayment.setGroupType(courseSchedule.getGroupType());
-                                courseScheduleStudentPayment.setMusicGroupId(courseSchedule.getMusicGroupId());
-                                courseScheduleStudentPayment.setCourseScheduleId(courseSchedule.getId());
-                                courseScheduleStudentPayment.setClassGroupId(courseSchedule.getClassGroupId());
-                                if (i == 0) {
-                                    courseScheduleStudentPayment.setExpectPrice(firstAmount);
-                                } else {
-                                    courseScheduleStudentPayment.setExpectPrice(divide);
-                                }
-                                courseScheduleStudentPayment.setOriginalPrice(TeachModeEnum.ONLINE.equals(courseSchedule.getTeachMode()) ? vipGroupDefaultClassesUnitPrice.getOnlineClassesUnitPrice() : vipGroupDefaultClassesUnitPrice.getOfflineClassesUnitPrice());
-                                courseScheduleStudentPayment.setActualPrice(courseScheduleStudentPayment.getExpectPrice());
-                                courseScheduleStudentPayments.add(courseScheduleStudentPayment);
+                    //群聊数据
+                    Map<Integer, String> userRoleMap = new HashMap<Integer, String>(5);
+                    if (Objects.nonNull(vipGroup.getEducationalTeacherId())) {
+                        userRoleMap.put(vipGroup.getEducationalTeacherId(), "乐团主管");
+                    }
+                    userRoleMap.put(vipGroup.getUserId(), "指导老师");
+                    //生成课程学员关联
+                    List<CourseScheduleStudentPayment> courseScheduleStudentPayments = new ArrayList<>();
+                    List<Integer> studentIdList = classGroupStudents.stream().map(e -> e.getUserId()).collect(Collectors.toList());
+                    for (ClassGroupStudentMapper classGroupStudent : classGroupStudents) {
+                        StudentPaymentOrder successOrder = studentPaymentOrderDao.findByStudentVipGroup(vipGroup.getId(), classGroupStudent.getUserId(), "SUCCESS","VIP".equals(vipGroup.getGroupType())?"SMALL_CLASS_TO_BUY":"LIVE_GROUP_BUY");
+                        //实际支付金额,去除优惠券
+                        BigDecimal actualPrice = successOrder.getExpectAmount();
+                        BigDecimal divide = actualPrice.divide(new BigDecimal(courseSchedules.size()), ROUND_DOWN);
+                        BigDecimal firstAmount = actualPrice.subtract(divide.multiply(new BigDecimal(courseSchedules.size()))).add(divide);
+                        for (int i = 0; i < courseSchedules.size(); i++) {
+                            CourseSchedule courseSchedule = courseSchedules.get(i);
+                            CourseScheduleStudentPayment courseScheduleStudentPayment = new CourseScheduleStudentPayment();
+                            courseScheduleStudentPayment.setUserId(classGroupStudent.getUserId());
+                            courseScheduleStudentPayment.setGroupType(courseSchedule.getGroupType());
+                            courseScheduleStudentPayment.setMusicGroupId(courseSchedule.getMusicGroupId());
+                            courseScheduleStudentPayment.setCourseScheduleId(courseSchedule.getId());
+                            courseScheduleStudentPayment.setClassGroupId(courseSchedule.getClassGroupId());
+                            if (i == 0) {
+                                courseScheduleStudentPayment.setExpectPrice(firstAmount);
+                            } else {
+                                courseScheduleStudentPayment.setExpectPrice(divide);
                             }
-                            userRoleMap.put(classGroupStudent.getUserId(), null);
+                            courseScheduleStudentPayment.setOriginalPrice(TeachModeEnum.ONLINE.equals(courseSchedule.getTeachMode()) ? vipGroupDefaultClassesUnitPrice.getOnlineClassesUnitPrice() : vipGroupDefaultClassesUnitPrice.getOfflineClassesUnitPrice());
+                            courseScheduleStudentPayment.setActualPrice(courseScheduleStudentPayment.getExpectPrice());
+                            courseScheduleStudentPayments.add(courseScheduleStudentPayment);
                         }
+                        userRoleMap.put(classGroupStudent.getUserId(), null);
                         studentDao.updateStudentServiceTag(null, studentIdList, YesOrNoEnum.YES.getCode());
 
                         courseScheduleStudentPaymentDao.batchInsert(courseScheduleStudentPayments);
@@ -4614,8 +4604,8 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
                         imGroupMemberService.join(classGroup.getId().toString(), userRoleMap);
                     }
                     imUserFriendService.refreshGroupImUserFriend(classGroup.getMusicGroupId(), classGroup.getGroupType());
-                    vipGroupDao.update(vipGroup);
                 }
+                vipGroupDao.update(vipGroup);
             }
         }
     }

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

@@ -1583,7 +1583,7 @@
         <if test="groupType == 'MUSIC'">
             LEFT JOIN music_group mg ON mg.id_ = cg.music_group_id_
         </if>
-        <if test="groupType == 'VIP'">
+        <if test="groupType == 'VIP' or groupType == 'LIVE'">
             LEFT JOIN vip_group mg ON mg.id_ = cg.music_group_id_
         </if>
         <if test="groupType == 'PRACTICE'">

+ 4 - 14
mec-web/src/main/java/com/ym/mec/web/controller/VipGroupManageController.java

@@ -53,7 +53,7 @@ public class VipGroupManageController extends BaseController {
     @Autowired
     private CourseScheduleService scheduleService;
     @Autowired
-    private SysUserFeignService sysUserFeignService;
+    private SysUserService sysUserService;
     @Autowired
     private TeacherDao teacherDao;
     @Autowired
@@ -141,10 +141,6 @@ public class VipGroupManageController extends BaseController {
     @PostMapping("/vipGroupApply")
     @PreAuthorize("@pcs.hasPermissions('vipGroupManage/vipGroupApply')")
     public Object vipGroupApply(@RequestBody VipGroupApplyDto vipGroupApplyDto){
-        SysUser sysUser = sysUserFeignService.queryUserInfo();
-        if (sysUser == null) {
-            return failed("用户信息获取失败");
-        }
         Integer userId = vipGroupApplyDto.getVipGroupApplyBaseInfo().getUserId();
         Teacher teacher = teacherDao.get(userId);
         if(Objects.isNull(teacher)){
@@ -178,20 +174,14 @@ public class VipGroupManageController extends BaseController {
     @PreAuthorize("@pcs.hasPermissions('vipGroupManage/liveGroupDetail')")
     public HttpResponseResult<VipGroupApplyDto> liveGroupDetail(@PathVariable Long id){
         return succeed(vipGroupService.liveGroupDetail(id));
-
     }
 
-
     @ApiOperation(value = "获取教务与指导老师公共分部")
     @GetMapping("/getPublicOrgans")
     @PreAuthorize("@pcs.hasPermissions('vipGroupManage/getPublicOrgans')")
     public HttpResponseResult getPublicOrgans(Integer eduTeacherId, Integer teacherId){
-        SysUser sysUser = sysUserFeignService.queryUserInfo();
-        if (sysUser == null) {
-            return failed("用户信息获取失败");
-        }
         if(Objects.isNull(eduTeacherId)){
-            eduTeacherId=sysUser.getId();
+            eduTeacherId=sysUserService.getUserId();
         }
         return succeed(vipGroupService.getPublicOrgans(eduTeacherId, teacherId));
     }
@@ -330,9 +320,9 @@ public class VipGroupManageController extends BaseController {
 			return failed("vip课信息找不到");
 		}
 
-		SysUser student = sysUserFeignService.queryUserById(studentApplyRefunds.getUserId());
+		SysUser student = sysUserService.queryUserById(studentApplyRefunds.getUserId());
 
-		SysUser teacher = sysUserFeignService.queryUserById(vipGroup.getUserId());
+		SysUser teacher = sysUserService.queryUserById(vipGroup.getUserId());
 
 		ModelMap model = new ModelMap();
 		model.put("student", student.getUsername());