Browse Source

修改缴费金额不校验缴费状态

缴费通知单独按钮控制发送,取消所有自动发送
zouxuan 4 years ago
parent
commit
7c548f7f0a

+ 8 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/MusicGroupPaymentCalenderDetailService.java

@@ -104,4 +104,12 @@ public interface MusicGroupPaymentCalenderDetailService extends BaseService<Long
      * @return java.util.List<com.ym.mec.biz.dal.entity.MusicGroup>
      */
     List<MusicGroup> getNoPaymentStudentMusicGroups(String organIds);
+
+    /**
+     * 主动发送学员待续费通知
+     * @param calenderDetailId
+     * @param studentIds
+     * @return
+     */
+    void pushWaitRenewMessage(Long calenderDetailId, String studentIds);
 }

+ 45 - 12
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupPaymentCalenderDetailServiceImpl.java

@@ -86,12 +86,13 @@ public class MusicGroupPaymentCalenderDetailServiceImpl extends BaseServiceImpl<
 		Date date = new Date();
 		MusicGroupPaymentCalender calender = musicGroupPaymentCalenderService.get(calenderDetails.get(0).getMusicGroupPaymentCalenderId());
 		//缴费项目已结束,并且没有单独开启缴费的学员,不能修改缴费金额
-		if(calender.getStatus() == OVER){
-			List<MusicGroupPaymentCalenderDetail> paymentCalenderDetails = calenderDetails.stream().filter(e -> e.getOpenFlag() == YesOrNoEnum.NO).collect(Collectors.toList());
-			if(paymentCalenderDetails != null && paymentCalenderDetails.size() > 0){
-				throw new BizException("修改失败:存在未开启缴费的学员");
-			}
-		}
+//		if(calender.getStatus() == OVER){
+//			List<MusicGroupPaymentCalenderDetail> paymentCalenderDetails = calenderDetails.stream().filter(e -> e.getOpenFlag() == YesOrNoEnum.NO).collect(Collectors.toList());
+//			if(paymentCalenderDetails != null && paymentCalenderDetails.size() > 0){
+//				throw new BizException("修改失败:存在未开启缴费的学员");
+//			}
+//		}
+		//为了解决学员欠费数量的问题,只要学员没有缴费就可以修改金额
 		Set<Integer> studentIds = new HashSet<>();
 				calenderDetails.forEach(e->{
 			if(e.getPaymentStatus() == null || e.getPaymentStatus() != NON_PAYMENT){
@@ -110,7 +111,7 @@ public class MusicGroupPaymentCalenderDetailServiceImpl extends BaseServiceImpl<
 		});
 		musicGroupPaymentCalenderDetailDao.batchUpdate(calenderDetails);
 		//推送消息
-		if (calender.getPayUserType() == STUDENT && studentIds.size() > 0) {
+		/*if (calender.getPayUserType() == STUDENT && studentIds.size() > 0) {
 			String musicGroupId = calenderDetails.get(0).getMusicGroupId();
 			Map<Integer, String> push = new HashMap<>();
 			for (Integer userId : studentIds) {
@@ -129,7 +130,7 @@ public class MusicGroupPaymentCalenderDetailServiceImpl extends BaseServiceImpl<
 				sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.AWSMS, MessageTypeEnum.STUDENT_SMS_WAIT_RENEW_MESSAGE, studentMaps,
 						null, 0, memo, null, musicGroup.getName());
 			}
-		}
+		}*/
 	}
 
 	@Override
@@ -145,8 +146,8 @@ public class MusicGroupPaymentCalenderDetailServiceImpl extends BaseServiceImpl<
 		}
 		int length = ids.split(",").length;
 		Date date = new Date();
-		Long calenderId = calenderDetails.get(0).getMusicGroupPaymentCalenderId();
-		MusicGroupPaymentCalender calender = musicGroupPaymentCalenderService.get(calenderId);
+//		Long calenderId = calenderDetails.get(0).getMusicGroupPaymentCalenderId();
+//		MusicGroupPaymentCalender calender = musicGroupPaymentCalenderService.get(calenderId);
 		calenderDetails.forEach(e->{
 			e.setUpdateTime(date);
 			e.setOpen(1);
@@ -156,7 +157,7 @@ public class MusicGroupPaymentCalenderDetailServiceImpl extends BaseServiceImpl<
 		musicGroupPaymentCalenderDetailDao.batchUpdate(calenderDetails);
 		Set<Integer> studentIds = calenderDetails.stream().map(e -> e.getUserId()).collect(Collectors.toSet());
 		//推送消息
-		if (calender.getPayUserType() == STUDENT && studentIds.size() > 0) {
+		/*if (calender.getPayUserType() == STUDENT && studentIds.size() > 0) {
 			Map<Integer, String> push = new HashMap<>();
 			for (Integer userId : studentIds) {
 				push.put(userId, userId + "");
@@ -173,7 +174,7 @@ public class MusicGroupPaymentCalenderDetailServiceImpl extends BaseServiceImpl<
 				sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.AWSMS, MessageTypeEnum.STUDENT_SMS_WAIT_RENEW_MESSAGE, studentMaps,
 						null, 0, memo, null, musicGroup.getName());
 			}
-		}
+		}*/
 		StringBuffer append = new StringBuffer("操作成功: 成功开启缴费").append(studentIds.size()).append("条,失败").append(length - studentIds.size()).append("条");
 		return append.toString();
 	}
@@ -590,4 +591,36 @@ public class MusicGroupPaymentCalenderDetailServiceImpl extends BaseServiceImpl<
 		}
 		return musicGroupPaymentCalenderDetailDao.getNoPaymentStudentMusicGroups(organIds);
 	}
+
+	@Override
+	public void pushWaitRenewMessage(Long calenderDetailId, String studentIds) {
+		MusicGroupPaymentCalenderDetail calenderDetail = musicGroupPaymentCalenderDetailDao.get(calenderDetailId);
+		if(calenderDetail == null){
+			throw new BizException("缴费详情不存在");
+		}
+		Long calenderId = calenderDetail.getMusicGroupPaymentCalenderId();
+		MusicGroupPaymentCalender paymentCalender = musicGroupPaymentCalenderDao.get(calenderId);
+		if(paymentCalender.getStatus() != OPEN && calenderDetail.getOpenFlag() != YesOrNoEnum.YES){
+			throw new BizException("操作失败:请开启缴费");
+		}
+		//未缴费
+		HashSet<String> strings = new HashSet<>(Arrays.asList(studentIds.split(",")));
+		Map<Integer,String> studentMaps = MapUtil.convertMybatisMap(musicGroupPaymentCalenderDetailDao.queryNoPaymentAndNotZeroStudent(calenderId,strings));
+		if(studentMaps.size() > 0){
+			MusicGroup musicGroup = musicGroupDao.get(paymentCalender.getMusicGroupId());
+			String baseUrl = sysConfigDao.findConfigValue(SysConfigService.BASE_API_URL);
+			String memo = "4?" + baseUrl + "/#/musicGroupRenew?calenderId="+calenderId+"&id=" + musicGroup.getId();
+			Map<Integer, String> push = new HashMap<>();
+			for (String userId : strings) {
+				push.put(Integer.parseInt(userId), userId);
+			}
+			// 发送续费通知
+			sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.STUDENT_PUSH_WAIT_RENEW_MESSAGE, push,
+					null, 0, memo, "STUDENT", musicGroup.getName());
+			sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.AWSMS, MessageTypeEnum.STUDENT_SMS_WAIT_RENEW_MESSAGE, studentMaps,
+					null, 0, memo, null, musicGroup.getName());
+		}else {
+			throw new BizException("操作失败:没有待续费学员");
+		}
+	}
 }

+ 2 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupPaymentCalenderServiceImpl.java

@@ -1160,7 +1160,7 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 
 	//推送待续费通知
 	public void pushWaitRenewMessage(Long calenderId,MusicGroup musicGroup,Set<Integer> studentIds){
-		if(studentIds == null){
+		/*if(studentIds == null){
 			studentIds = musicGroupPaymentCalenderDetailDao.queryNoPaymentStudentIds(calenderId);
 		}
 		if (studentIds.size() > 0) {
@@ -1180,7 +1180,7 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 				sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.AWSMS, MessageTypeEnum.STUDENT_SMS_WAIT_RENEW_MESSAGE, studentMaps,
 						null, 0, memo, null, musicGroup.getName());
 			}
-		}
+		}*/
 	}
 
     @Override

+ 8 - 0
mec-web/src/main/java/com/ym/mec/web/controller/MusicGroupPaymentCalenderDetailController.java

@@ -16,6 +16,7 @@ import io.swagger.annotations.ApiOperation;
 import java.math.BigDecimal;
 import java.util.Arrays;
 import java.util.List;
+import java.util.Set;
 
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -105,6 +106,13 @@ public class MusicGroupPaymentCalenderDetailController extends BaseController {
         return succeed;
     }
 
+    @ApiOperation(value = "发送学员待续费通知")
+    @PostMapping("/sendWaitRenewMessage")
+    @PreAuthorize("@pcs.hasPermissions('musicGroupPaymentCalenderDetail/sendWaitRenewMessage')")
+    public HttpResponseResult sendWaitRenewMessage(Long calenderDetailId, String studentIds) {
+        musicGroupPaymentCalenderDetailService.pushWaitRenewMessage(calenderDetailId,studentIds);
+        return succeed();
+    }
 
     @ApiOperation(value = "未缴费学员列表")
     @GetMapping("/queryArrearageStudents")