|
@@ -338,8 +338,8 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
|
|
|
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
- public void updateStartTime(Date startTime, Long id) {
|
|
|
- if (startTime == null || id == null) {
|
|
|
+ public void updateStartTime(Date startTime,Date endTime,Long id) {
|
|
|
+ if (startTime == null || id == null || endTime == null) {
|
|
|
throw new BizException("参数校验失败");
|
|
|
}
|
|
|
MusicGroupPaymentCalender calender = musicGroupPaymentCalenderDao.get(id);
|
|
@@ -349,10 +349,35 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
|
|
|
if (calender.getPaymentStatus() == null || calender.getPaymentStatus() != NO) {
|
|
|
throw new BizException("修改失败,缴费状态不匹配");
|
|
|
}
|
|
|
- calender.setStartPaymentDate(startTime);
|
|
|
- calender.setDeadlinePaymentDate(DateUtil.addDays(startTime, 3));
|
|
|
- calender.setUpdateTime(new Date());
|
|
|
- musicGroupPaymentCalenderDao.update(calender);
|
|
|
+ Date date = new Date();
|
|
|
+ // 判断缴费开始时间、结束时间是否被其他缴费记录占用
|
|
|
+ int count = musicGroupPaymentCalenderDao.queryIntersectionByPaymentDate(calender.getMusicGroupId(), startTime,endTime);
|
|
|
+ if (count > 0) {
|
|
|
+ throw new BizException("缴费时间存在冲突,请修改缴费开始日期");
|
|
|
+ }
|
|
|
+ if (date.after(endTime)) {
|
|
|
+ calender.setPaymentStatus(PaymentStatusEnum.YES);
|
|
|
+ } else if (date.after(startTime)) {
|
|
|
+ calender.setPaymentStatus(PaymentStatusEnum.OPEN);
|
|
|
+ //修改Fee缴费状态为未缴费
|
|
|
+ musicGroupStudentFeeDao.updatePaymentStatus(calender.getId(),"NON_PAYMENT");
|
|
|
+ List<MusicGroupPaymentCalenderDetail> details = musicGroupPaymentCalenderDetailDao.queryByCalenderId(calender.getId());
|
|
|
+ Set<Integer> studentIds = details.stream().map(e -> e.getUserId()).collect(Collectors.toSet());
|
|
|
+ if (studentIds.size() > 0) {
|
|
|
+ Map<Integer, String> push = new HashMap<>();
|
|
|
+ for (Integer userId : studentIds) {
|
|
|
+ push.put(userId, userId + "");
|
|
|
+ }
|
|
|
+ MusicGroup musicGroup = musicGroupDao.get(calender.getMusicGroupId());
|
|
|
+ String configValue = sysConfigDao.findConfigValue(SysConfigService.BASE_API_URL);
|
|
|
+ String memo = "4?" + configValue + "/#/renew?musicGroupId=" + musicGroup.getId();
|
|
|
+ // 发送续费通知
|
|
|
+ sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.STUDENT_PUSH_WAIT_RENEW_MESSAGE, push,
|
|
|
+ null, 0, memo, "STUDENT", musicGroup.getName());
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ calender.setPaymentStatus(PaymentStatusEnum.NO);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
@Override
|