|  | @@ -11,6 +11,9 @@ import java.util.Map;
 | 
	
		
			
				|  |  |  import java.util.Set;
 | 
	
		
			
				|  |  |  import java.util.stream.Collectors;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +import com.ym.mec.auth.api.entity.SysUserRole;
 | 
	
		
			
				|  |  | +import com.ym.mec.biz.dal.dao.*;
 | 
	
		
			
				|  |  | +import com.ym.mec.biz.dal.entity.*;
 | 
	
		
			
				|  |  |  import org.apache.commons.lang3.StringUtils;
 | 
	
		
			
				|  |  |  import org.springframework.beans.factory.annotation.Autowired;
 | 
	
		
			
				|  |  |  import org.springframework.stereotype.Service;
 | 
	
	
		
			
				|  | @@ -20,51 +23,13 @@ import org.springframework.transaction.annotation.Transactional;
 | 
	
		
			
				|  |  |  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.biz.dal.dao.ChargeTypeDao;
 | 
	
		
			
				|  |  | -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.CourseScheduleTeacherSalaryDao;
 | 
	
		
			
				|  |  | -import com.ym.mec.biz.dal.dao.MusicGroupBuildLogDao;
 | 
	
		
			
				|  |  | -import com.ym.mec.biz.dal.dao.MusicGroupDao;
 | 
	
		
			
				|  |  | -import com.ym.mec.biz.dal.dao.MusicGroupPaymentCalenderDao;
 | 
	
		
			
				|  |  | -import com.ym.mec.biz.dal.dao.MusicGroupPaymentEntitiesDao;
 | 
	
		
			
				|  |  | -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.StudentPaymentOrderDao;
 | 
	
		
			
				|  |  | -import com.ym.mec.biz.dal.dao.StudentRegistrationDao;
 | 
	
		
			
				|  |  | -import com.ym.mec.biz.dal.dao.SysConfigDao;
 | 
	
		
			
				|  |  | -import com.ym.mec.biz.dal.dao.SysMessageConfigDao;
 | 
	
		
			
				|  |  | -import com.ym.mec.biz.dal.dao.TeacherDao;
 | 
	
		
			
				|  |  |  import com.ym.mec.biz.dal.dto.BasicUserDto;
 | 
	
		
			
				|  |  |  import com.ym.mec.biz.dal.dto.CourseScheduleTeachersDto;
 | 
	
		
			
				|  |  |  import com.ym.mec.biz.dal.dto.MusicCardDto;
 | 
	
		
			
				|  |  |  import com.ym.mec.biz.dal.dto.SubFeeSettingDto;
 | 
	
		
			
				|  |  |  import com.ym.mec.biz.dal.dto.SubjectRegisterDto;
 | 
	
		
			
				|  |  |  import com.ym.mec.biz.dal.dto.UpdateExpectedNumDto;
 | 
	
		
			
				|  |  | -import com.ym.mec.biz.dal.entity.ApprovalStatus;
 | 
	
		
			
				|  |  | -import com.ym.mec.biz.dal.entity.ChargeType;
 | 
	
		
			
				|  |  | -import com.ym.mec.biz.dal.entity.CourseSchedule;
 | 
	
		
			
				|  |  | -import com.ym.mec.biz.dal.entity.CourseScheduleTeacherSalary;
 | 
	
		
			
				|  |  | -import com.ym.mec.biz.dal.entity.MusicGroup;
 | 
	
		
			
				|  |  | -import com.ym.mec.biz.dal.entity.MusicGroupBuildLog;
 | 
	
		
			
				|  |  | -import com.ym.mec.biz.dal.entity.MusicGroupQuit;
 | 
	
		
			
				|  |  | -import com.ym.mec.biz.dal.entity.MusicGroupStudentFee;
 | 
	
		
			
				|  |  |  import com.ym.mec.biz.dal.entity.MusicGroupStudentFee.PaymentStatus;
 | 
	
		
			
				|  |  | -import com.ym.mec.biz.dal.entity.MusicGroupSubjectGoodsGroup;
 | 
	
		
			
				|  |  | -import com.ym.mec.biz.dal.entity.MusicGroupSubjectPlan;
 | 
	
		
			
				|  |  | -import com.ym.mec.biz.dal.entity.Organization;
 | 
	
		
			
				|  |  | -import com.ym.mec.biz.dal.entity.School;
 | 
	
		
			
				|  |  | -import com.ym.mec.biz.dal.entity.StudentPaymentOrder;
 | 
	
		
			
				|  |  | -import com.ym.mec.biz.dal.entity.StudentPaymentOrderDetail;
 | 
	
		
			
				|  |  | -import com.ym.mec.biz.dal.entity.StudentRegistration;
 | 
	
		
			
				|  |  | -import com.ym.mec.biz.dal.entity.SysUserCashAccount;
 | 
	
		
			
				|  |  | -import com.ym.mec.biz.dal.entity.SysUserCashAccountDetail;
 | 
	
		
			
				|  |  |  import com.ym.mec.biz.dal.enums.ClassGroupStudentStatusEnum;
 | 
	
		
			
				|  |  |  import com.ym.mec.biz.dal.enums.ClassGroupTypeEnum;
 | 
	
		
			
				|  |  |  import com.ym.mec.biz.dal.enums.DealStatusEnum;
 | 
	
	
		
			
				|  | @@ -139,9 +104,6 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 | 
	
		
			
				|  |  |      @Autowired
 | 
	
		
			
				|  |  |      private MusicGroupQuitDao musicGroupQuitDao;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -//    @Autowired
 | 
	
		
			
				|  |  | -//    private StudentRegistrationService studentRegistrationService;
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |      @Autowired
 | 
	
		
			
				|  |  |      private StudentRegistrationDao studentRegistrationDao;
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -149,6 +111,9 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 | 
	
		
			
				|  |  |      private CourseScheduleDao courseScheduleDao;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      @Autowired
 | 
	
		
			
				|  |  | +    private ClassGroupDao classGroupDao;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    @Autowired
 | 
	
		
			
				|  |  |      private OrganizationDao organizationDao;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      @Autowired
 | 
	
	
		
			
				|  | @@ -201,6 +166,11 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          // 保存乐团基本信息
 | 
	
		
			
				|  |  |          musicGroupDao.insert(musicGroup);
 | 
	
		
			
				|  |  | +        if(musicGroup.getStatus() == MusicGroupStatusEnum.AUDIT){
 | 
	
		
			
				|  |  | +            Set<Integer> roleIds = new HashSet<>(1);
 | 
	
		
			
				|  |  | +            roleIds.add(SysUserRole.SECTION_MANAGER);
 | 
	
		
			
				|  |  | +            sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds),MessageTypeEnum.BACKSTAGE_CREATE_MUSIC_GROUP_APPLY);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  |          // 保存乐团付费主体列表
 | 
	
		
			
				|  |  |          //批量新增
 | 
	
		
			
				|  |  |          if(subFeeSettingDto.getMusicGroupPaymentEntities() != null && subFeeSettingDto.getMusicGroupPaymentEntities().size() > 0){
 | 
	
	
		
			
				|  | @@ -320,6 +290,13 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 | 
	
		
			
				|  |  |          Map<Integer,String> map = JSONObject.parseObject(JSONObject.toJSONString(MapUtil.convertMybatisMap(musicGroupDao.queryTeacherMap(musicGroupId))),HashMap.class);
 | 
	
		
			
				|  |  |          sysMessageService.batchSendMessage(MessageSender.YIMEI,MessageTypeEnum.TEACHER_PUSH_MUSIC_GROUP_COURSE_ADD_PLAN,
 | 
	
		
			
				|  |  |                  map,null,0,musicGroup.getName());
 | 
	
		
			
				|  |  | +        Set<Integer> roleIds = new HashSet<>(5);
 | 
	
		
			
				|  |  | +        roleIds.add(SysUserRole.SECTION_MANAGER);
 | 
	
		
			
				|  |  | +        roleIds.add(SysUserRole.EDUCATIONAL_TEACHER);
 | 
	
		
			
				|  |  | +        roleIds.add(SysUserRole.OPERATION_EXECUTIVE);
 | 
	
		
			
				|  |  | +        roleIds.add(SysUserRole.ADMISSIONS_DIRECTOR);
 | 
	
		
			
				|  |  | +        roleIds.add(SysUserRole.DEAN_OF_STUDIES);
 | 
	
		
			
				|  |  | +        sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds),MessageTypeEnum.BACKSTAGE_ACTION_GROUP,musicGroup.getName());
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      private MusicGroup saveLog(String musicGroupId,MusicGroupStatusEnum statusEnum) throws Exception {
 | 
	
	
		
			
				|  | @@ -336,6 +313,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      @Override
 | 
	
		
			
				|  |  | +    @Transactional(rollbackFor = Exception.class)
 | 
	
		
			
				|  |  |      public void musicGroupAudit(String musicGroupId) throws Exception {
 | 
	
		
			
				|  |  |          SysUser sysUser = sysUserFeignService.queryUserInfo();
 | 
	
		
			
				|  |  |          if(sysUser == null){
 | 
	
	
		
			
				|  | @@ -346,9 +324,13 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 | 
	
		
			
				|  |  |          musicGroupBuildLogDao.insert(new MusicGroupBuildLog(musicGroupId,"提交审核(草稿 -> 审核中)",sysUser.getId(),""));
 | 
	
		
			
				|  |  |          musicGroup.setStatus(MusicGroupStatusEnum.AUDIT);
 | 
	
		
			
				|  |  |          musicGroupDao.update(musicGroup);
 | 
	
		
			
				|  |  | +        Set<Integer> roleIds = new HashSet<>(1);
 | 
	
		
			
				|  |  | +        roleIds.add(SysUserRole.SECTION_MANAGER);
 | 
	
		
			
				|  |  | +        sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds),MessageTypeEnum.BACKSTAGE_CREATE_MUSIC_GROUP_APPLY);
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      @Override
 | 
	
		
			
				|  |  | +    @Transactional(rollbackFor = Exception.class)
 | 
	
		
			
				|  |  |      public void musicGroupAuditFailed(String musicGroupId,String memo) throws Exception {
 | 
	
		
			
				|  |  |          SysUser sysUser = sysUserFeignService.queryUserInfo();
 | 
	
		
			
				|  |  |          if(sysUser == null){
 | 
	
	
		
			
				|  | @@ -363,6 +345,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      @Override
 | 
	
		
			
				|  |  | +    @Transactional(rollbackFor = Exception.class)
 | 
	
		
			
				|  |  |      public void musicGroupAuditSuccess(String musicGroupId) throws Exception {
 | 
	
		
			
				|  |  |          SysUser sysUser = sysUserFeignService.queryUserInfo();
 | 
	
		
			
				|  |  |          if(sysUser == null){
 | 
	
	
		
			
				|  | @@ -373,6 +356,11 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 | 
	
		
			
				|  |  |          musicGroupBuildLogDao.insert(new MusicGroupBuildLog(musicGroupId,"审核失败(审核中 -> 报名中)",sysUser.getId(),""));
 | 
	
		
			
				|  |  |          musicGroup.setStatus(MusicGroupStatusEnum.APPLY);
 | 
	
		
			
				|  |  |          musicGroupDao.update(musicGroup);
 | 
	
		
			
				|  |  | +        Set<Integer> roleIds = new HashSet<>(3);
 | 
	
		
			
				|  |  | +        roleIds.add(SysUserRole.EDUCATIONAL_TEACHER);
 | 
	
		
			
				|  |  | +        roleIds.add(SysUserRole.OPERATION_EXECUTIVE);
 | 
	
		
			
				|  |  | +        roleIds.add(SysUserRole.ADMISSIONS_DIRECTOR);
 | 
	
		
			
				|  |  | +        sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds),MessageTypeEnum.BACKSTAGE_ACTION_APPLY,musicGroup.getName());
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      @Override
 | 
	
	
		
			
				|  | @@ -448,10 +436,14 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 | 
	
		
			
				|  |  |                  map.put(e.getUserId(),e.getParentsPhone());
 | 
	
		
			
				|  |  |              });
 | 
	
		
			
				|  |  |              sysMessageService.batchSendMessage(MessageSender.YIMEI,MessageTypeEnum.STUDENT_PUSH_MUSIC_GROUP_CLOSE,
 | 
	
		
			
				|  |  | -                    map,null,0,"",sysConfigDao.findConfigValue(SysConfigService.REFUND_PERIOD));
 | 
	
		
			
				|  |  | +                    map,null,0,"",musicGroup.getName(),sysConfigDao.findConfigValue(SysConfigService.REFUND_PERIOD));
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          //记录建团日志
 | 
	
		
			
				|  |  |          musicGroupBuildLogDao.insert(new MusicGroupBuildLog(musicGroupId,"取消乐团",sysUser.getId(),""));
 | 
	
		
			
				|  |  | +        Set<Integer> roleIds = new HashSet<>(2);
 | 
	
		
			
				|  |  | +        roleIds.add(SysUserRole.SECTION_MANAGER);
 | 
	
		
			
				|  |  | +        roleIds.add(SysUserRole.OPERATION_EXECUTIVE);
 | 
	
		
			
				|  |  | +        sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds),MessageTypeEnum.BACKSTAGE_MUSIC_GROUP_STOP,musicGroup.getName());
 | 
	
		
			
				|  |  |          return true;
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -532,6 +524,12 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 | 
	
		
			
				|  |  |          musicGroup.setUpdateTime(date);
 | 
	
		
			
				|  |  |          musicGroupDao.update(musicGroup);
 | 
	
		
			
				|  |  |          musicGroupBuildLogDao.insert(new MusicGroupBuildLog(musicGroupId,"延长缴费",sysUser.getId(),""));
 | 
	
		
			
				|  |  | +        Set<Integer> roleIds = new HashSet<>(4);
 | 
	
		
			
				|  |  | +        roleIds.add(SysUserRole.SECTION_MANAGER);
 | 
	
		
			
				|  |  | +        roleIds.add(SysUserRole.EDUCATIONAL_TEACHER);
 | 
	
		
			
				|  |  | +        roleIds.add(SysUserRole.OPERATION_EXECUTIVE);
 | 
	
		
			
				|  |  | +        roleIds.add(SysUserRole.ADMISSIONS_DIRECTOR);
 | 
	
		
			
				|  |  | +        sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds),MessageTypeEnum.BACKSTAGE_LENGTHEN_PAYMENT,musicGroup.getName());
 | 
	
		
			
				|  |  |          return true;
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -551,6 +549,9 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 | 
	
		
			
				|  |  |          musicGroupQuit.setStatus(ApprovalStatus.PROCESSING);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          musicGroupQuitDao.insert(musicGroupQuit);
 | 
	
		
			
				|  |  | +        Set<Integer> roleIds = new HashSet<>(1);
 | 
	
		
			
				|  |  | +        roleIds.add(SysUserRole.EDUCATIONAL_TEACHER);
 | 
	
		
			
				|  |  | +        sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds),MessageTypeEnum.BACKSTAGE_STUDENT_APPLY_QUIT_GROUP,sysUser.getUsername());
 | 
	
		
			
				|  |  |          return true;
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -809,6 +810,12 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 | 
	
		
			
				|  |  |              courseScheduleTeacherSalary.setUpdateTime(new Date());
 | 
	
		
			
				|  |  |              courseScheduleTeacherSalaryDao.update(courseScheduleTeacherSalary);
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | +        Teacher teacher = teacherDao.get(teacherId);
 | 
	
		
			
				|  |  | +        MusicGroup musicGroup = musicGroupDao.get(classGroupDao.findByCourseSchedule(courseScheduleId.intValue()).getMusicGroupId());
 | 
	
		
			
				|  |  | +        Set<Integer> roleIds = new HashSet<>(1);
 | 
	
		
			
				|  |  | +        roleIds.add(SysUserRole.SECTION_MANAGER);
 | 
	
		
			
				|  |  | +        sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds),MessageTypeEnum.BACKSTAGE_TEACHER_AMOUNT_CHANGE,
 | 
	
		
			
				|  |  | +                teacher.getRealName(),musicGroup.getName(),scope.equals("all")?"所有":"本次");
 | 
	
		
			
				|  |  |          return true;
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -958,6 +965,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      @Override
 | 
	
		
			
				|  |  | +    @Transactional(rollbackFor = Exception.class)
 | 
	
		
			
				|  |  |      public MusicGroup openPay(String musicGroupId, String expireDate) throws Exception {
 | 
	
		
			
				|  |  |          SysUser sysUser = sysUserFeignService.queryUserInfo();
 | 
	
		
			
				|  |  |          if(sysUser == null){
 | 
	
	
		
			
				|  | @@ -978,6 +986,11 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 | 
	
		
			
				|  |  |              sysMessageService.batchSendMessage(MessageSender.YIMEI,MessageTypeEnum.SMS_BASICS_SKILL_APPLY_MESSAGE,
 | 
	
		
			
				|  |  |                      map,null,0,"",musicGroup.getName(),studentApplyUrl,serverPhone);
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | +        Set<Integer> roleIds = new HashSet<>(3);
 | 
	
		
			
				|  |  | +        roleIds.add(SysUserRole.SECTION_MANAGER);
 | 
	
		
			
				|  |  | +        roleIds.add(SysUserRole.EDUCATIONAL_TEACHER);
 | 
	
		
			
				|  |  | +        roleIds.add(SysUserRole.OPERATION_EXECUTIVE);
 | 
	
		
			
				|  |  | +        sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds),MessageTypeEnum.BACKSTAGE_ACTION_PAYMENT,musicGroup.getName());
 | 
	
		
			
				|  |  |          return musicGroup;
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -1043,5 +1056,8 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 | 
	
		
			
				|  |  |  			String content = sysMessageConfigDao.findContent(MessageTypeEnum.SMS_BASICS_SKILL_APPLY_MESSAGE.getCode());
 | 
	
		
			
				|  |  |  			sysMessageService.batchSendMessage(MessageSender.YIMEI, "", content, userIds, new Date(), 0, "", "");
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  | +        Set<Integer> roleIds = new HashSet<>(1);
 | 
	
		
			
				|  |  | +        roleIds.add(SysUserRole.SECTION_MANAGER);
 | 
	
		
			
				|  |  | +        sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds),MessageTypeEnum.BACKSTAGE_MUSIC_GROUP_MARKING,musicGroup.getName());
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  }
 |