|
@@ -1902,7 +1902,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
|
|
|
|
|
|
@Override
|
|
|
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
|
|
|
- public boolean applyQuitMusicGroup(MusicGroupQuit reqMusicGroupQuit, Integer operatorId) {
|
|
|
+ public boolean applyQuitMusicGroup(List<Integer> currentOperatorRoleIds, MusicGroupQuit reqMusicGroupQuit, Integer operatorId) {
|
|
|
|
|
|
Integer userId = reqMusicGroupQuit.getUserId();
|
|
|
String musicGroupId = reqMusicGroupQuit.getMusicGroupId();
|
|
@@ -1934,38 +1934,83 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
|
|
|
musicGroupQuit.setJoinDate(studentRegistration.getCreateTime());
|
|
|
musicGroupQuit.setMusicGroupId(musicGroupId);
|
|
|
musicGroupQuit.setUserId(userId);
|
|
|
- musicGroupQuit.setUserComment(reason);
|
|
|
+ musicGroupQuit.setUserComment(reqMusicGroupQuit.getUserComment());
|
|
|
musicGroupQuit.setApplyUserId(userId);
|
|
|
- musicGroupQuit.setFeeJson(JsonUtil.toJSONString(reqMusicGroupQuit.getReturnFeeDto()));
|
|
|
+ musicGroupQuit.setReason(reason);
|
|
|
+
|
|
|
+ MusicGroupReturnFeeDto returnFeeDto = reqMusicGroupQuit.getReturnFeeDto();
|
|
|
+ musicGroupQuit.setFeeJson(JsonUtil.toJSONString(returnFeeDto));
|
|
|
musicGroupQuit.setIsVisit(reqMusicGroupQuit.getIsVisit());
|
|
|
musicGroupQuit.setVisitTime(reqMusicGroupQuit.getVisitTime());
|
|
|
+ musicGroupQuit.setStatus(PROCESSING);
|
|
|
+
|
|
|
+ if(currentOperatorRoleIds != null){
|
|
|
+ if (!currentOperatorRoleIds.contains(SysUserRole.SECTION_MANAGER) && currentOperatorRoleIds.contains(SysUserRole.EDUCATIONAL_TEACHER)) {
|
|
|
+
|
|
|
+ if(musicGroupQuit.getStatus() == ApprovalStatus.APPROVED){
|
|
|
+ throw new BizException("只能分部经理操作退团");
|
|
|
+ }else if(musicGroupQuit.getStatus() == ApprovalStatus.DENIED){
|
|
|
+ musicGroupQuit.setStatus(ApprovalStatus.DENIED);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (currentOperatorRoleIds.contains(SysUserRole.SECTION_MANAGER) && !currentOperatorRoleIds.contains(SysUserRole.EDUCATIONAL_TEACHER)) {
|
|
|
+
|
|
|
+ throw new BizException("只能乐团主管操作退团申请");
|
|
|
+ }
|
|
|
+ if (currentOperatorRoleIds.contains(SysUserRole.SECTION_MANAGER) && currentOperatorRoleIds.contains(SysUserRole.EDUCATIONAL_TEACHER)) {
|
|
|
+ musicGroupQuit.setStatus(reqMusicGroupQuit.getStatus());
|
|
|
+ }
|
|
|
+
|
|
|
+ BigDecimal returnTotalFee = BigDecimal.ZERO;
|
|
|
+
|
|
|
+ if(returnFeeDto.getIsReturnAccessoriesFee()){
|
|
|
+ returnTotalFee = returnTotalFee.add(returnFeeDto.getAccessoriesFee());
|
|
|
+ }
|
|
|
+ if(returnFeeDto.getIsReturnCourseFee()){
|
|
|
+ returnTotalFee = returnTotalFee.add(returnFeeDto.getCourseFee());
|
|
|
+ }
|
|
|
+ if(returnFeeDto.getIsReturnMaintenanceFee()){
|
|
|
+ returnTotalFee = returnTotalFee.add(returnFeeDto.getMaintenanceFee());
|
|
|
+ }
|
|
|
+ if(returnFeeDto.getIsReturnMemberFee()){
|
|
|
+ returnTotalFee = returnTotalFee.add(returnFeeDto.getMemberFee());
|
|
|
+ }
|
|
|
+ if(returnFeeDto.getIsReturnMusicalFee()){
|
|
|
+ returnTotalFee = returnTotalFee.add(returnFeeDto.getMusicalFee());
|
|
|
+ }
|
|
|
+
|
|
|
+ musicGroupQuit.setReturnTotalFee(returnTotalFee);
|
|
|
+ }
|
|
|
+
|
|
|
if(operatorId == userId.intValue()){
|
|
|
musicGroupQuit.setCurrentApproveRole(SysUserRole.EDUCATIONAL_TEACHER + "");
|
|
|
}else{
|
|
|
musicGroupQuit.setCurrentApproveRole(SysUserRole.SECTION_MANAGER + "");
|
|
|
}
|
|
|
- musicGroupQuit.setStatus(PROCESSING);
|
|
|
|
|
|
musicGroupQuitDao.insert(musicGroupQuit);
|
|
|
- Set<Integer> roleIds = new HashSet<>(1);
|
|
|
- roleIds.add(SysUserRole.EDUCATIONAL_TEACHER);
|
|
|
- roleIds.add(SysUserRole.SECTION_MANAGER);
|
|
|
- Set<Integer> integers = musicGroupDao.queryUserIdByRoleId(roleIds, musicGroup.getOrganId());
|
|
|
- integers.add(musicGroup.getEducationalTeacherId());
|
|
|
- Map<String, Object> memo = new HashMap<>(2);
|
|
|
- memo.put("Id", musicGroupQuit.getId());
|
|
|
- memo.put("type", "MUSICGROUP");
|
|
|
|
|
|
- SysUser sysUser = sysUserFeignService.queryUserById(userId);
|
|
|
-
|
|
|
- sysMessageService.batchSeoMessage(integers,
|
|
|
- MessageTypeEnum.BACKSTAGE_STUDENT_APPLY_QUIT_GROUP, JSONObject.toJSONString(memo), sysUser.getUsername());
|
|
|
- Map<Integer, String> receivers = new HashMap<>(integers.size());
|
|
|
- for (Integer integer : integers) {
|
|
|
- receivers.put(integer, integer.toString());
|
|
|
- }
|
|
|
- sysMessageService.batchSendMessage(MessageSender.JIGUANG, MessageTypeEnum.SYSTEM_PUSH_STUDENT_COMMIT_QUIT_MUSIC_APPLY,
|
|
|
- receivers, null, 0, null, "SYSTEM", musicGroup.getName(), sysUser.getUsername());
|
|
|
+ if (musicGroupQuit.getStatus() == PROCESSING) {
|
|
|
+ Set<Integer> roleIds = new HashSet<>(1);
|
|
|
+ roleIds.add(SysUserRole.EDUCATIONAL_TEACHER);
|
|
|
+ roleIds.add(SysUserRole.SECTION_MANAGER);
|
|
|
+ Set<Integer> integers = musicGroupDao.queryUserIdByRoleId(roleIds, musicGroup.getOrganId());
|
|
|
+ integers.add(musicGroup.getEducationalTeacherId());
|
|
|
+ Map<String, Object> memo = new HashMap<>(2);
|
|
|
+ memo.put("Id", musicGroupQuit.getId());
|
|
|
+ memo.put("type", "MUSICGROUP");
|
|
|
+
|
|
|
+ SysUser sysUser = sysUserFeignService.queryUserById(userId);
|
|
|
+
|
|
|
+ sysMessageService.batchSeoMessage(integers, MessageTypeEnum.BACKSTAGE_STUDENT_APPLY_QUIT_GROUP, JSONObject.toJSONString(memo),
|
|
|
+ sysUser.getUsername());
|
|
|
+ Map<Integer, String> receivers = new HashMap<>(integers.size());
|
|
|
+ for (Integer integer : integers) {
|
|
|
+ receivers.put(integer, integer.toString());
|
|
|
+ }
|
|
|
+ sysMessageService.batchSendMessage(MessageSender.JIGUANG, MessageTypeEnum.SYSTEM_PUSH_STUDENT_COMMIT_QUIT_MUSIC_APPLY, receivers, null, 0, null,
|
|
|
+ "SYSTEM", musicGroup.getName(), sysUser.getUsername());
|
|
|
+ }
|
|
|
return true;
|
|
|
}
|
|
|
|
|
@@ -2073,6 +2118,26 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
|
|
|
} else {
|
|
|
musicGroupQuit.setIsVisit(false);
|
|
|
}
|
|
|
+
|
|
|
+ BigDecimal returnTotalFee = BigDecimal.ZERO;
|
|
|
+
|
|
|
+ if(returnFeeDto.getIsReturnAccessoriesFee()){
|
|
|
+ returnTotalFee = returnTotalFee.add(returnFeeDto.getAccessoriesFee());
|
|
|
+ }
|
|
|
+ if(returnFeeDto.getIsReturnCourseFee()){
|
|
|
+ returnTotalFee = returnTotalFee.add(returnFeeDto.getCourseFee());
|
|
|
+ }
|
|
|
+ if(returnFeeDto.getIsReturnMaintenanceFee()){
|
|
|
+ returnTotalFee = returnTotalFee.add(returnFeeDto.getMaintenanceFee());
|
|
|
+ }
|
|
|
+ if(returnFeeDto.getIsReturnMemberFee()){
|
|
|
+ returnTotalFee = returnTotalFee.add(returnFeeDto.getMemberFee());
|
|
|
+ }
|
|
|
+ if(returnFeeDto.getIsReturnMusicalFee()){
|
|
|
+ returnTotalFee = returnTotalFee.add(returnFeeDto.getMusicalFee());
|
|
|
+ }
|
|
|
+
|
|
|
+ musicGroupQuit.setReturnTotalFee(returnTotalFee);
|
|
|
musicGroupQuitDao.update(musicGroupQuit);
|
|
|
|
|
|
courseScheduleStudentPaymentService.updateCourseActualPrice(Arrays.asList(musicGroupId), Arrays.asList(userId), GroupType.MUSIC);
|
|
@@ -2284,7 +2349,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
|
|
|
}
|
|
|
|
|
|
//退乐保费用
|
|
|
- if (returnFeeDto.getMaintenanceFee() != null) {
|
|
|
+ if (returnFeeDto.getIsReturnMaintenanceFee()) {
|
|
|
StudentInstrument studentMaintenance = studentInstrumentDao.getStudentMaintenance(userId, musicGroupId);
|
|
|
if (returnFeeDto.getMaintenanceFee().compareTo(BigDecimal.ZERO) > 0) {
|
|
|
if (studentMaintenance == null) {
|