|
@@ -1,8 +1,10 @@
|
|
|
package com.ym.mec.biz.service.impl;
|
|
|
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
|
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.*;
|
|
|
import com.ym.mec.biz.dal.dto.*;
|
|
|
import com.ym.mec.biz.dal.entity.*;
|
|
@@ -107,7 +109,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
|
|
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
@Override
|
|
|
- public void createVipGroup(VipGroupApplyDto vipGroup) {
|
|
|
+ public void createVipGroup(VipGroupApplyDto vipGroup,Integer systemId) {
|
|
|
|
|
|
if (Objects.isNull(vipGroup.getVipGroupApplyBaseInfo().getUserId())){
|
|
|
throw new BizException("请选择指导老师");
|
|
@@ -256,6 +258,17 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
|
|
|
courseScheduleService.checkNewCourseSchedules(vipGroup.getCourseSchedules(),false);
|
|
|
vipGroupApplyBaseInfoDto.setCourseSchedulesJson(JSON.toJSONString(vipGroup.getCourseSchedules()));
|
|
|
vipGroupDao.update(vipGroupApplyBaseInfoDto);
|
|
|
+
|
|
|
+ SysUser systemUser = sysUserFeignService.queryUserById(systemId);
|
|
|
+ Set<Integer> roleIds = new HashSet<>(1);
|
|
|
+ roleIds.add(SysUserRole.OPERATION_EXECUTIVE);
|
|
|
+ Map<String,Long> memo = new HashMap<>(1);
|
|
|
+ memo.put("vipGroupId",vipGroupApplyBaseInfoDto.getId());
|
|
|
+ if (systemId != null){
|
|
|
+ sysMessageService.batchSeoMessage(roleIds,MessageTypeEnum.BACKSTAGE_VIP_COURSE_APPLY, JSONObject.toJSONString(memo),systemUser.getUsername(),sysUser.getUsername());
|
|
|
+ }else {
|
|
|
+ sysMessageService.batchSeoMessage(roleIds,MessageTypeEnum.BACKSTAGE_TEACHER_APPLY_VIP, JSONObject.toJSONString(memo),sysUser.getUsername());
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -1303,6 +1316,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
public void appendVipGroupCourseSchedules(VipGroupApplyDto vipGroupApplyDto) {
|
|
|
if(Objects.isNull(vipGroupApplyDto.getVipGroupApplyBaseInfo().getId())){
|
|
|
throw new BizException("请指定vip课");
|
|
@@ -1311,7 +1325,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
|
|
|
if(Objects.isNull(vipGroup)){
|
|
|
throw new BizException("指定的vip课不存在");
|
|
|
}
|
|
|
- VipGroupClassGroupMapper vipGroupClassGroupMapper = vipGroupClassGroupMapperDao.findByVipGroupId(vipGroup.getId());
|
|
|
+ ClassGroup classGroup = classGroupDao.findByVipGroup(vipGroup.getId(), null);
|
|
|
//课程信息调整
|
|
|
vipGroupApplyDto.getCourseSchedules().forEach(courseSchedule -> {
|
|
|
courseSchedule.setSchoolId(vipGroup.getTeacherSchoolId());
|
|
@@ -1319,17 +1333,40 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
|
|
|
courseSchedule.setActualTeacherId(vipGroup.getUserId());
|
|
|
courseSchedule.setStatus(CourseStatusEnum.NOT_START);
|
|
|
courseSchedule.setType(CourseSchedule.CourseScheduleType.VIP);
|
|
|
- courseSchedule.setClassGroupId(vipGroupClassGroupMapper.getClassGroupId());
|
|
|
+ courseSchedule.setClassGroupId(classGroup.getId());
|
|
|
});
|
|
|
courseScheduleService.batchAddCourseSchedule(vipGroupApplyDto.getCourseSchedules());
|
|
|
|
|
|
TeacherDefaultVipGroupSalary byTeacherAndCategory = teacherDefaultVipGroupSalaryDao.findByTeacherAndCategory(vipGroup.getUserId(), vipGroup.getVipGroupCategoryId());
|
|
|
|
|
|
+ BigDecimal onlineTeacherSalary=new BigDecimal(0),offlineTeacherSalary=new BigDecimal(0);
|
|
|
+ if(Objects.nonNull(byTeacherAndCategory)){
|
|
|
+ onlineTeacherSalary=byTeacherAndCategory.getOnlineClassesSalary();
|
|
|
+ offlineTeacherSalary=byTeacherAndCategory.getOfflineClassesSalary();
|
|
|
+ }else{
|
|
|
+ ClassGroupTeacherSalary classGroupTeacherSalary = classGroupTeacherSalaryDao.findByVipGoupAndTeacher(vipGroup.getId().intValue(), vipGroup.getUserId());
|
|
|
+ onlineTeacherSalary=classGroupTeacherSalary.getOnlineClassesSalary();
|
|
|
+ offlineTeacherSalary=classGroupTeacherSalary.getSalary();
|
|
|
+ }
|
|
|
+
|
|
|
//创建老师单节课课酬信息
|
|
|
courseScheduleTeacherSalaryService.createCourseScheduleTeacherVipSalary(vipGroup,
|
|
|
vipGroupApplyDto.getCourseSchedules(),
|
|
|
- byTeacherAndCategory.getOnlineClassesSalary(),
|
|
|
- byTeacherAndCategory.getOfflineClassesSalary());
|
|
|
+ onlineTeacherSalary,
|
|
|
+ offlineTeacherSalary);
|
|
|
+
|
|
|
+
|
|
|
+ List<ClassGroupStudentMapper> classGroupStudents = classGroupStudentMapperDao.findByClassGroup(classGroup.getId());
|
|
|
+
|
|
|
+ List<ImGroupMember> imGroupMemberList = new ArrayList<>();
|
|
|
+ //生成学生单课缴费信息
|
|
|
+ for (ClassGroupStudentMapper classGroupStudent : classGroupStudents) {
|
|
|
+ courseScheduleStudentPaymentService.createCourseScheduleStudentPaymentForVipGroup(vipGroup.getId(),classGroupStudent.getUserId());
|
|
|
+ imGroupMemberList.add(new ImGroupMember(classGroupStudent.getUserId().toString()));
|
|
|
+ }
|
|
|
+ ImGroupMember[] imGroupMembers = imGroupMemberList.toArray(new ImGroupMember[imGroupMemberList.size()]);
|
|
|
+ imFeignService.groupJoin(new ImGroupModel(classGroup.getId().toString(),
|
|
|
+ imGroupMembers, classGroup.getName()));
|
|
|
}
|
|
|
|
|
|
@Override
|