|
@@ -1,9 +1,30 @@
|
|
|
package com.ym.mec.biz.service.impl;
|
|
package com.ym.mec.biz.service.impl;
|
|
|
|
|
|
|
|
-import com.ym.mec.biz.dal.dao.*;
|
|
|
|
|
|
|
+import java.math.BigDecimal;
|
|
|
|
|
+import java.util.ArrayList;
|
|
|
|
|
+import java.util.Arrays;
|
|
|
|
|
+import java.util.Date;
|
|
|
|
|
+import java.util.HashMap;
|
|
|
|
|
+import java.util.HashSet;
|
|
|
|
|
+import java.util.List;
|
|
|
|
|
+import java.util.Map;
|
|
|
|
|
+import java.util.Set;
|
|
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
+
|
|
|
|
|
+import org.apache.commons.lang3.StringUtils;
|
|
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
+
|
|
|
|
|
+import com.ym.mec.biz.dal.dao.MusicGroupDao;
|
|
|
|
|
+import com.ym.mec.biz.dal.dao.MusicGroupPaymentCalenderDao;
|
|
|
|
|
+import com.ym.mec.biz.dal.dao.MusicGroupPaymentCalenderDetailDao;
|
|
|
|
|
+import com.ym.mec.biz.dal.dao.MusicGroupStudentFeeDao;
|
|
|
|
|
+import com.ym.mec.biz.dal.dao.SysConfigDao;
|
|
|
import com.ym.mec.biz.dal.dto.CalenderPushDto;
|
|
import com.ym.mec.biz.dal.dto.CalenderPushDto;
|
|
|
import com.ym.mec.biz.dal.entity.MusicGroup;
|
|
import com.ym.mec.biz.dal.entity.MusicGroup;
|
|
|
import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender;
|
|
import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender;
|
|
|
|
|
+import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender.PaymentCalenderStatusEnum;
|
|
|
import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalenderDetail;
|
|
import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalenderDetail;
|
|
|
import com.ym.mec.biz.dal.entity.MusicGroupStudentFee;
|
|
import com.ym.mec.biz.dal.entity.MusicGroupStudentFee;
|
|
|
import com.ym.mec.biz.dal.entity.MusicGroupStudentFee.PaymentStatus;
|
|
import com.ym.mec.biz.dal.entity.MusicGroupStudentFee.PaymentStatus;
|
|
@@ -20,16 +41,6 @@ import com.ym.mec.common.service.impl.BaseServiceImpl;
|
|
|
import com.ym.mec.thirdparty.message.MessageSenderPluginContext;
|
|
import com.ym.mec.thirdparty.message.MessageSenderPluginContext;
|
|
|
import com.ym.mec.util.collection.MapUtil;
|
|
import com.ym.mec.util.collection.MapUtil;
|
|
|
import com.ym.mec.util.date.DateUtil;
|
|
import com.ym.mec.util.date.DateUtil;
|
|
|
-import org.apache.commons.lang3.StringUtils;
|
|
|
|
|
-import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
|
-import org.springframework.stereotype.Service;
|
|
|
|
|
-import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
-
|
|
|
|
|
-import java.math.BigDecimal;
|
|
|
|
|
-import java.util.*;
|
|
|
|
|
-import java.util.stream.Collectors;
|
|
|
|
|
-
|
|
|
|
|
-import static com.ym.mec.biz.dal.enums.PaymentStatusEnum.NO;
|
|
|
|
|
|
|
|
|
|
@Service
|
|
@Service
|
|
|
public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long, MusicGroupPaymentCalender> implements MusicGroupPaymentCalenderService {
|
|
public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long, MusicGroupPaymentCalender> implements MusicGroupPaymentCalenderService {
|
|
@@ -53,6 +64,23 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
|
|
+ public PageInfo<MusicGroupPaymentCalender> queryDetailPage(MusicCalenderQueryInfo queryInfo) {
|
|
|
|
|
+ PageInfo<MusicGroupPaymentCalender> pageInfo = queryPage(queryInfo);
|
|
|
|
|
+ List<MusicGroupPaymentCalender> rows = pageInfo.getRows();
|
|
|
|
|
+ if (rows.size() == 0) {
|
|
|
|
|
+ return pageInfo;
|
|
|
|
|
+ }
|
|
|
|
|
+ Set<Long> collect = rows.stream().map(e -> e.getId()).collect(Collectors.toSet());
|
|
|
|
|
+ Map<Long, Long> expectNumMap = MapUtil.convertIntegerMap(musicGroupPaymentCalenderDao.countExpectNum(collect));
|
|
|
|
|
+ Map<Long, Long> actualNumMap = MapUtil.convertIntegerMap(musicGroupPaymentCalenderDao.countActualNum(collect));
|
|
|
|
|
+ rows.forEach(e -> {
|
|
|
|
|
+ e.setActualNum(actualNumMap.get(e.getId()) == null ? 0 : actualNumMap.get(e.getId()).intValue());
|
|
|
|
|
+ e.setExpectNum(expectNumMap.get(e.getId()) == null ? 0 : expectNumMap.get(e.getId()).intValue());
|
|
|
|
|
+ });
|
|
|
|
|
+ return pageInfo;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public boolean create(MusicGroupPaymentCalender musicGroupPaymentCalender) {
|
|
public boolean create(MusicGroupPaymentCalender musicGroupPaymentCalender) {
|
|
|
String musicGroupId = musicGroupPaymentCalender.getMusicGroupId();
|
|
String musicGroupId = musicGroupPaymentCalender.getMusicGroupId();
|
|
@@ -69,28 +97,28 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
|
|
|
}
|
|
}
|
|
|
// 判断缴费开始时间、结束时间是否被其他缴费记录占用
|
|
// 判断缴费开始时间、结束时间是否被其他缴费记录占用
|
|
|
int count = musicGroupPaymentCalenderDao.queryIntersectionByPaymentDate(musicGroupId, musicGroupPaymentCalender.getStartPaymentDate(),
|
|
int count = musicGroupPaymentCalenderDao.queryIntersectionByPaymentDate(musicGroupId, musicGroupPaymentCalender.getStartPaymentDate(),
|
|
|
- musicGroupPaymentCalender.getDeadlinePaymentDate(),null);
|
|
|
|
|
|
|
+ musicGroupPaymentCalender.getDeadlinePaymentDate(), null);
|
|
|
|
|
|
|
|
-// String format = DateUtil.format(musicGroupPaymentCalender.getStartPaymentDate(), DateUtil.DEFAULT_PATTERN);
|
|
|
|
|
-// String format1 = DateUtil.format(musicGroupPaymentCalender.getDeadlinePaymentDate(), DateUtil.DEFAULT_PATTERN);
|
|
|
|
|
-// int count = musicGroupPaymentCalenderDao.queryIntersectionByDate(musicGroupId, format,format1);
|
|
|
|
|
|
|
+ // String format = DateUtil.format(musicGroupPaymentCalender.getStartPaymentDate(), DateUtil.DEFAULT_PATTERN);
|
|
|
|
|
+ // String format1 = DateUtil.format(musicGroupPaymentCalender.getDeadlinePaymentDate(), DateUtil.DEFAULT_PATTERN);
|
|
|
|
|
+ // int count = musicGroupPaymentCalenderDao.queryIntersectionByDate(musicGroupId, format,format1);
|
|
|
if (count > 0) {
|
|
if (count > 0) {
|
|
|
throw new BizException("缴费日期存在冲突,请修改缴费日期");
|
|
throw new BizException("缴费日期存在冲突,请修改缴费日期");
|
|
|
}
|
|
}
|
|
|
count = musicGroupPaymentCalenderDao.queryIntersectionByValidDate(musicGroupId, musicGroupPaymentCalender.getPaymentValidStartDate(),
|
|
count = musicGroupPaymentCalenderDao.queryIntersectionByValidDate(musicGroupId, musicGroupPaymentCalender.getPaymentValidStartDate(),
|
|
|
- musicGroupPaymentCalender.getPaymentValidEndDate(),null);
|
|
|
|
|
|
|
+ musicGroupPaymentCalender.getPaymentValidEndDate(), null);
|
|
|
if (count > 0) {
|
|
if (count > 0) {
|
|
|
throw new BizException("缴费有效期存在冲突,请修改缴费有效期");
|
|
throw new BizException("缴费有效期存在冲突,请修改缴费有效期");
|
|
|
}
|
|
}
|
|
|
if (date.after(musicGroupPaymentCalender.getDeadlinePaymentDate())) {
|
|
if (date.after(musicGroupPaymentCalender.getDeadlinePaymentDate())) {
|
|
|
- musicGroupPaymentCalender.setPaymentStatus(PaymentStatusEnum.OVER);
|
|
|
|
|
|
|
+ musicGroupPaymentCalender.setStatus(PaymentCalenderStatusEnum.OVER);
|
|
|
} else if (date.after(musicGroupPaymentCalender.getStartPaymentDate())) {
|
|
} else if (date.after(musicGroupPaymentCalender.getStartPaymentDate())) {
|
|
|
- musicGroupPaymentCalender.setPaymentStatus(PaymentStatusEnum.OPEN);
|
|
|
|
|
|
|
+ musicGroupPaymentCalender.setStatus(PaymentCalenderStatusEnum.OPEN);
|
|
|
} else {
|
|
} else {
|
|
|
- musicGroupPaymentCalender.setPaymentStatus(PaymentStatusEnum.NO);
|
|
|
|
|
|
|
+ musicGroupPaymentCalender.setStatus(PaymentCalenderStatusEnum.NO);
|
|
|
}
|
|
}
|
|
|
// 统计缴费人数
|
|
// 统计缴费人数
|
|
|
- musicGroupStudentFeeList = musicGroupStudentFeeDao.queryByMusicGroupId(musicGroupId,musicGroupPaymentCalender.getStudentIds());
|
|
|
|
|
|
|
+ musicGroupStudentFeeList = musicGroupStudentFeeDao.queryByMusicGroupId(musicGroupId, musicGroupPaymentCalender.getStudentIds());
|
|
|
if (musicGroupStudentFeeList == null) {
|
|
if (musicGroupStudentFeeList == null) {
|
|
|
musicGroupStudentFeeList = new ArrayList<>();
|
|
musicGroupStudentFeeList = new ArrayList<>();
|
|
|
}
|
|
}
|
|
@@ -119,7 +147,7 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
|
|
|
musicGroupPaymentCalenderDetail.setUserId(mgsf.getUserId());
|
|
musicGroupPaymentCalenderDetail.setUserId(mgsf.getUserId());
|
|
|
musicGroupPaymentCalenderDetailList.add(musicGroupPaymentCalenderDetail);
|
|
musicGroupPaymentCalenderDetailList.add(musicGroupPaymentCalenderDetail);
|
|
|
}
|
|
}
|
|
|
- if (musicGroupPaymentCalender.getPaymentStatus() == PaymentStatusEnum.OPEN) {
|
|
|
|
|
|
|
+ if (musicGroupPaymentCalender.getStatus() == PaymentCalenderStatusEnum.OPEN) {
|
|
|
// 更新学员缴费状态
|
|
// 更新学员缴费状态
|
|
|
for (MusicGroupStudentFee mgsf : musicGroupStudentFeeList) {
|
|
for (MusicGroupStudentFee mgsf : musicGroupStudentFeeList) {
|
|
|
mgsf.setPaymentStatus(PaymentStatus.NON_PAYMENT);
|
|
mgsf.setPaymentStatus(PaymentStatus.NON_PAYMENT);
|
|
@@ -156,47 +184,45 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
|
|
|
public void autoUpdateMusicGroupStudentFeeStatus() {
|
|
public void autoUpdateMusicGroupStudentFeeStatus() {
|
|
|
Date date = new Date();
|
|
Date date = new Date();
|
|
|
String format = DateUtil.format(date, DateUtil.DEFAULT_PATTERN);
|
|
String format = DateUtil.format(date, DateUtil.DEFAULT_PATTERN);
|
|
|
- //获取距离缴费开启指定天数后的缴费明细
|
|
|
|
|
|
|
+ // 获取距离缴费开启指定天数后的缴费明细
|
|
|
String configValue = sysConfigDao.findConfigValue("push_payment_detail");
|
|
String configValue = sysConfigDao.findConfigValue("push_payment_detail");
|
|
|
- Map<Long, Long> maps = MapUtil.convertIntegerMap(musicGroupPaymentCalenderDao.queryCalenderByDay(configValue,format));
|
|
|
|
|
- if(maps != null && maps.size() > 0){
|
|
|
|
|
|
|
+ Map<Long, Long> maps = MapUtil.convertIntegerMap(musicGroupPaymentCalenderDao.queryCalenderByDay(configValue, format));
|
|
|
|
|
+ if (maps != null && maps.size() > 0) {
|
|
|
Set<Long> calenderId = maps.keySet();
|
|
Set<Long> calenderId = maps.keySet();
|
|
|
List<CalenderPushDto> calenderPushDtos = musicGroupPaymentCalenderDao.getCalenderPushDto(calenderId);
|
|
List<CalenderPushDto> calenderPushDtos = musicGroupPaymentCalenderDao.getCalenderPushDto(calenderId);
|
|
|
Map<Long, List<CalenderPushDto>> collect = calenderPushDtos.stream().collect(Collectors.groupingBy(CalenderPushDto::getCalenderId));
|
|
Map<Long, List<CalenderPushDto>> collect = calenderPushDtos.stream().collect(Collectors.groupingBy(CalenderPushDto::getCalenderId));
|
|
|
- calenderId.forEach(e->{
|
|
|
|
|
|
|
+ calenderId.forEach(e -> {
|
|
|
CalenderPushDto calenderPushDto = collect.get(e).get(0);
|
|
CalenderPushDto calenderPushDto = collect.get(e).get(0);
|
|
|
Map<Integer, String> receivers = new HashMap<>(1);
|
|
Map<Integer, String> receivers = new HashMap<>(1);
|
|
|
- receivers.put(calenderPushDto.getTeacherId(),calenderPushDto.getTeacherPhone());
|
|
|
|
|
- sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.AWSMS, MessageTypeEnum.SMS_PAYMENT_DETAIL,
|
|
|
|
|
- receivers, null, 0, null, null,calenderPushDto.getMusicGroupName(),
|
|
|
|
|
- calenderPushDto.getPaymentValidStartDate(),calenderPushDto.getPaymentValidEndDate(),maps.get(e));
|
|
|
|
|
|
|
+ receivers.put(calenderPushDto.getTeacherId(), calenderPushDto.getTeacherPhone());
|
|
|
|
|
+ sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.AWSMS, MessageTypeEnum.SMS_PAYMENT_DETAIL, receivers, null, 0,
|
|
|
|
|
+ null, null, calenderPushDto.getMusicGroupName(), calenderPushDto.getPaymentValidStartDate(), calenderPushDto.getPaymentValidEndDate(),
|
|
|
|
|
+ maps.get(e));
|
|
|
});
|
|
});
|
|
|
}
|
|
}
|
|
|
- //获取离截止还有指定时间的缴费项,并发送推送消息给指定老师
|
|
|
|
|
|
|
+ // 获取离截止还有指定时间的缴费项,并发送推送消息给指定老师
|
|
|
String configValue1 = sysConfigDao.findConfigValue("push_create_payment_calender");
|
|
String configValue1 = sysConfigDao.findConfigValue("push_create_payment_calender");
|
|
|
- List<Long> calenderIds = musicGroupPaymentCalenderDao.queryEndIds(configValue1,format);
|
|
|
|
|
- if(calenderIds != null && calenderIds.size() > 0){
|
|
|
|
|
|
|
+ List<Long> calenderIds = musicGroupPaymentCalenderDao.queryEndIds(configValue1, format);
|
|
|
|
|
+ if (calenderIds != null && calenderIds.size() > 0) {
|
|
|
List<CalenderPushDto> calenderPushDtos = musicGroupPaymentCalenderDao.getCalenderPushDto(calenderIds);
|
|
List<CalenderPushDto> calenderPushDtos = musicGroupPaymentCalenderDao.getCalenderPushDto(calenderIds);
|
|
|
Map<Long, List<CalenderPushDto>> collect = calenderPushDtos.stream().collect(Collectors.groupingBy(CalenderPushDto::getCalenderId));
|
|
Map<Long, List<CalenderPushDto>> collect = calenderPushDtos.stream().collect(Collectors.groupingBy(CalenderPushDto::getCalenderId));
|
|
|
- calenderIds.forEach(e->{
|
|
|
|
|
|
|
+ calenderIds.forEach(e -> {
|
|
|
CalenderPushDto calenderPushDto = collect.get(e).get(0);
|
|
CalenderPushDto calenderPushDto = collect.get(e).get(0);
|
|
|
Map<Integer, String> receivers = new HashMap<>(1);
|
|
Map<Integer, String> receivers = new HashMap<>(1);
|
|
|
- receivers.put(calenderPushDto.getTeacherId(),calenderPushDto.getTeacherPhone());
|
|
|
|
|
- sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.AWSMS, MessageTypeEnum.SMS_PAYMENT_CREATE,
|
|
|
|
|
- receivers, null, 0, null, null,calenderPushDto.getMusicGroupName(),
|
|
|
|
|
- calenderPushDto.getPaymentValidStartDate(),calenderPushDto.getPaymentValidEndDate());
|
|
|
|
|
|
|
+ receivers.put(calenderPushDto.getTeacherId(), calenderPushDto.getTeacherPhone());
|
|
|
|
|
+ sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.AWSMS, MessageTypeEnum.SMS_PAYMENT_CREATE, receivers, null, 0,
|
|
|
|
|
+ null, null, calenderPushDto.getMusicGroupName(), calenderPushDto.getPaymentValidStartDate(), calenderPushDto.getPaymentValidEndDate());
|
|
|
});
|
|
});
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- //乐团报名到期,提醒教务老师创建缴费
|
|
|
|
|
- List<CalenderPushDto> calenderPushDtos = musicGroupPaymentCalenderDao.getMusicCalenderPushDto(configValue1,format);
|
|
|
|
|
- if(calenderPushDtos != null && calenderPushDtos.size() > 0){
|
|
|
|
|
- calenderPushDtos.forEach(e->{
|
|
|
|
|
|
|
+ // 乐团报名到期,提醒教务老师创建缴费
|
|
|
|
|
+ List<CalenderPushDto> calenderPushDtos = musicGroupPaymentCalenderDao.getMusicCalenderPushDto(configValue1, format);
|
|
|
|
|
+ if (calenderPushDtos != null && calenderPushDtos.size() > 0) {
|
|
|
|
|
+ calenderPushDtos.forEach(e -> {
|
|
|
Map<Integer, String> receivers = new HashMap<>(1);
|
|
Map<Integer, String> receivers = new HashMap<>(1);
|
|
|
- receivers.put(e.getTeacherId(),e.getTeacherPhone());
|
|
|
|
|
- sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.AWSMS, MessageTypeEnum.SMS_PAYMENT_CREATE,
|
|
|
|
|
- receivers, null, 0, null, null,e.getMusicGroupName(),
|
|
|
|
|
- e.getPaymentValidStartDate(),e.getPaymentValidEndDate());
|
|
|
|
|
|
|
+ receivers.put(e.getTeacherId(), e.getTeacherPhone());
|
|
|
|
|
+ sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.AWSMS, MessageTypeEnum.SMS_PAYMENT_CREATE, receivers, null, 0,
|
|
|
|
|
+ null, null, e.getMusicGroupName(), e.getPaymentValidStartDate(), e.getPaymentValidEndDate());
|
|
|
});
|
|
});
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -240,14 +266,15 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
|
|
|
|
|
|
|
|
for (MusicGroupPaymentCalender mgpc : musicGroupPaymentCalenderList) {
|
|
for (MusicGroupPaymentCalender mgpc : musicGroupPaymentCalenderList) {
|
|
|
Set<Integer> studentIds = musicGroupPaymentCalenderDetailDao.queryStudentIds(mgpc.getId());
|
|
Set<Integer> studentIds = musicGroupPaymentCalenderDetailDao.queryStudentIds(mgpc.getId());
|
|
|
- List<MusicGroupStudentFee> musicGroupStudentFeeList = musicGroupStudentFeeDao.queryByMusicGroupId(mgpc.getMusicGroupId(),StringUtils.join(studentIds,","));
|
|
|
|
|
|
|
+ List<MusicGroupStudentFee> musicGroupStudentFeeList = musicGroupStudentFeeDao.queryByMusicGroupId(mgpc.getMusicGroupId(),
|
|
|
|
|
+ StringUtils.join(studentIds, ","));
|
|
|
Map<Integer, MusicGroupStudentFee> feeMap = musicGroupStudentFeeList.stream()
|
|
Map<Integer, MusicGroupStudentFee> feeMap = musicGroupStudentFeeList.stream()
|
|
|
.collect(Collectors.toMap(MusicGroupStudentFee::getUserId, fee -> fee));
|
|
.collect(Collectors.toMap(MusicGroupStudentFee::getUserId, fee -> fee));
|
|
|
|
|
|
|
|
- if (mgpc.getDeadlinePaymentDate() != null && date.after(mgpc.getDeadlinePaymentDate()) && mgpc.getPaymentStatus() == PaymentStatusEnum.OPEN) {
|
|
|
|
|
|
|
+ if (mgpc.getDeadlinePaymentDate() != null && date.after(mgpc.getDeadlinePaymentDate()) && mgpc.getStatus() == PaymentCalenderStatusEnum.OPEN) {
|
|
|
// “进行中”更新至“已结束”
|
|
// “进行中”更新至“已结束”
|
|
|
mgpc.setUpdateTime(date);
|
|
mgpc.setUpdateTime(date);
|
|
|
- mgpc.setPaymentStatus(PaymentStatusEnum.OVER);
|
|
|
|
|
|
|
+ mgpc.setStatus(PaymentCalenderStatusEnum.OVER);
|
|
|
updateMusicGroupPaymentCalenderList.add(mgpc);
|
|
updateMusicGroupPaymentCalenderList.add(mgpc);
|
|
|
|
|
|
|
|
// 0元学生改成“已缴费”
|
|
// 0元学生改成“已缴费”
|
|
@@ -270,32 +297,26 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- } else if (mgpc.getStartPaymentDate() != null && date.after(mgpc.getStartPaymentDate()) && mgpc.getPaymentStatus() == PaymentStatusEnum.NO) {
|
|
|
|
|
|
|
+ } else if (mgpc.getStartPaymentDate() != null && date.after(mgpc.getStartPaymentDate()) && mgpc.getStatus() == PaymentCalenderStatusEnum.NO) {
|
|
|
// “未开始”更新至“进行中”
|
|
// “未开始”更新至“进行中”
|
|
|
mgpc.setUpdateTime(date);
|
|
mgpc.setUpdateTime(date);
|
|
|
- mgpc.setPaymentStatus(PaymentStatusEnum.OPEN);
|
|
|
|
|
|
|
+ mgpc.setStatus(PaymentCalenderStatusEnum.OPEN);
|
|
|
updateMusicGroupPaymentCalenderList.add(mgpc);
|
|
updateMusicGroupPaymentCalenderList.add(mgpc);
|
|
|
|
|
|
|
|
// 学生状态更新进行中
|
|
// 学生状态更新进行中
|
|
|
-// Set<Integer> studentIds = new HashSet<Integer>();
|
|
|
|
|
|
|
+ // Set<Integer> studentIds = new HashSet<Integer>();
|
|
|
// 创建缴费明细
|
|
// 创建缴费明细
|
|
|
- /*for (MusicGroupStudentFee mgsf : musicGroupStudentFeeList) {
|
|
|
|
|
- if (mgsf.getPaymentStatus() != PaymentStatus.PAID_COMPLETED) {
|
|
|
|
|
- continue;
|
|
|
|
|
- }
|
|
|
|
|
- musicGroupPaymentCalenderDetail = new MusicGroupPaymentCalenderDetail();
|
|
|
|
|
- musicGroupPaymentCalenderDetail.setMusicGroupPaymentCalenderId(mgpc.getId());
|
|
|
|
|
- musicGroupPaymentCalenderDetail.setCreateTime(date);
|
|
|
|
|
- musicGroupPaymentCalenderDetail.setExpectAmount(mgsf.getCourseFee());
|
|
|
|
|
- musicGroupPaymentCalenderDetail.setPaymentStatus(PaymentStatus.NON_PAYMENT);
|
|
|
|
|
- if (mgsf.getCourseFee().doubleValue() != 0) {
|
|
|
|
|
- studentIds.add(mgsf.getUserId());
|
|
|
|
|
- }
|
|
|
|
|
- musicGroupPaymentCalenderDetail.setUpdateTime(date);
|
|
|
|
|
- musicGroupPaymentCalenderDetail.setUserId(mgsf.getUserId());
|
|
|
|
|
-
|
|
|
|
|
- musicGroupPaymentCalenderDetailList.add(musicGroupPaymentCalenderDetail);
|
|
|
|
|
- }*/
|
|
|
|
|
|
|
+ /*
|
|
|
|
|
+ * for (MusicGroupStudentFee mgsf : musicGroupStudentFeeList) { if (mgsf.getPaymentStatus() != PaymentStatus.PAID_COMPLETED) {
|
|
|
|
|
+ * continue; } musicGroupPaymentCalenderDetail = new MusicGroupPaymentCalenderDetail();
|
|
|
|
|
+ * musicGroupPaymentCalenderDetail.setMusicGroupPaymentCalenderId(mgpc.getId()); musicGroupPaymentCalenderDetail.setCreateTime(date);
|
|
|
|
|
+ * musicGroupPaymentCalenderDetail.setExpectAmount(mgsf.getCourseFee());
|
|
|
|
|
+ * musicGroupPaymentCalenderDetail.setPaymentStatus(PaymentStatus.NON_PAYMENT); if (mgsf.getCourseFee().doubleValue() != 0) {
|
|
|
|
|
+ * studentIds.add(mgsf.getUserId()); } musicGroupPaymentCalenderDetail.setUpdateTime(date);
|
|
|
|
|
+ * musicGroupPaymentCalenderDetail.setUserId(mgsf.getUserId());
|
|
|
|
|
+ *
|
|
|
|
|
+ * musicGroupPaymentCalenderDetailList.add(musicGroupPaymentCalenderDetail); }
|
|
|
|
|
+ */
|
|
|
|
|
|
|
|
// 更新学员缴费状态
|
|
// 更新学员缴费状态
|
|
|
for (MusicGroupStudentFee mgsf : musicGroupStudentFeeList) {
|
|
for (MusicGroupStudentFee mgsf : musicGroupStudentFeeList) {
|
|
@@ -349,74 +370,30 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
- public Date getNextPaymentDate(String musicGroupId, Date latestPaidDate, MusicGroupStudentFee fee) {
|
|
|
|
|
- List<Integer> months = null;
|
|
|
|
|
- if (fee != null) {
|
|
|
|
|
- String paymentPeriodList = fee.getPaymentPeriodList();
|
|
|
|
|
- if (StringUtils.isEmpty(paymentPeriodList)) {
|
|
|
|
|
- return null;
|
|
|
|
|
- } else {
|
|
|
|
|
- months = Arrays.asList(paymentPeriodList.split(",")).stream().map(x -> Integer.parseInt(x)).collect(Collectors.toList());
|
|
|
|
|
- Collections.sort(months);
|
|
|
|
|
- }
|
|
|
|
|
- } else {
|
|
|
|
|
- List<MusicGroupPaymentCalender> musicGroupPaymentCalenderList = musicGroupPaymentCalenderDao.findByMusicGroupId(musicGroupId);
|
|
|
|
|
- if (musicGroupPaymentCalenderList != null && musicGroupPaymentCalenderList.size() > 0) {
|
|
|
|
|
- months = musicGroupPaymentCalenderList.stream().map(e -> e.getPaymentMonth()).sorted().collect(Collectors.toList());
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- if (months != null && months.size() > 0) {
|
|
|
|
|
- Date date = latestPaidDate;
|
|
|
|
|
- if (date == null) {
|
|
|
|
|
- date = new Date();
|
|
|
|
|
- }
|
|
|
|
|
- // 获取当前月份
|
|
|
|
|
- int currentMonth = Integer.parseInt(DateUtil.getMonth(date));
|
|
|
|
|
- int nextMonth = months.get(0);
|
|
|
|
|
- for (int i = 0; i < months.size(); i++) {
|
|
|
|
|
- if (currentMonth < months.get(i)) {
|
|
|
|
|
- nextMonth = months.get(i);
|
|
|
|
|
- break;
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- // 修改学员付费周期
|
|
|
|
|
- Date nextPaymentDate = null;
|
|
|
|
|
- if (nextMonth > currentMonth) {
|
|
|
|
|
- nextPaymentDate = DateUtil.addMonths(date, nextMonth - currentMonth);
|
|
|
|
|
- } else if (nextMonth < currentMonth) {
|
|
|
|
|
- nextPaymentDate = DateUtil.addMonths(date, 12 - currentMonth + nextMonth);
|
|
|
|
|
- } else {
|
|
|
|
|
- nextPaymentDate = DateUtil.addMonths(date, 12);
|
|
|
|
|
- }
|
|
|
|
|
- return DateUtil.getFirstDayOfMonth(nextPaymentDate);
|
|
|
|
|
- }
|
|
|
|
|
- return null;
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- @Override
|
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public void updateStartTime(MusicGroupPaymentCalender paymentCalender) {
|
|
public void updateStartTime(MusicGroupPaymentCalender paymentCalender) {
|
|
|
-// if (startTime == null || id == null || endTime == null) {
|
|
|
|
|
-// throw new BizException("参数校验失败");
|
|
|
|
|
-// }
|
|
|
|
|
|
|
+ // if (startTime == null || id == null || endTime == null) {
|
|
|
|
|
+ // throw new BizException("参数校验失败");
|
|
|
|
|
+ // }
|
|
|
MusicGroupPaymentCalender calender = musicGroupPaymentCalenderDao.get(paymentCalender.getId());
|
|
MusicGroupPaymentCalender calender = musicGroupPaymentCalenderDao.get(paymentCalender.getId());
|
|
|
if (calender == null) {
|
|
if (calender == null) {
|
|
|
throw new BizException("缴费信息不存在");
|
|
throw new BizException("缴费信息不存在");
|
|
|
}
|
|
}
|
|
|
- if (calender.getPaymentStatus() == null || calender.getPaymentStatus() != NO) {
|
|
|
|
|
|
|
+ if (calender.getStatus() == null || calender.getStatus() != PaymentCalenderStatusEnum.NO) {
|
|
|
throw new BizException("修改失败,缴费状态不匹配");
|
|
throw new BizException("修改失败,缴费状态不匹配");
|
|
|
}
|
|
}
|
|
|
Date date = new Date();
|
|
Date date = new Date();
|
|
|
// 判断缴费开始时间、结束时间是否被其他缴费记录占用
|
|
// 判断缴费开始时间、结束时间是否被其他缴费记录占用
|
|
|
- int count = musicGroupPaymentCalenderDao.queryIntersectionByPaymentDate(calender.getMusicGroupId(), paymentCalender.getStartPaymentDate(),paymentCalender.getDeadlinePaymentDate(),paymentCalender.getId());
|
|
|
|
|
-// String format = DateUtil.format(startTime, DateUtil.DEFAULT_PATTERN);
|
|
|
|
|
-// String format1 = DateUtil.format(endTime, DateUtil.DEFAULT_PATTERN);
|
|
|
|
|
-// int count = musicGroupPaymentCalenderDao.queryIntersectionByDate(calender.getMusicGroupId(), format,format1);
|
|
|
|
|
|
|
+ int count = musicGroupPaymentCalenderDao.queryIntersectionByPaymentDate(calender.getMusicGroupId(), paymentCalender.getStartPaymentDate(),
|
|
|
|
|
+ paymentCalender.getDeadlinePaymentDate(), paymentCalender.getId());
|
|
|
|
|
+ // String format = DateUtil.format(startTime, DateUtil.DEFAULT_PATTERN);
|
|
|
|
|
+ // String format1 = DateUtil.format(endTime, DateUtil.DEFAULT_PATTERN);
|
|
|
|
|
+ // int count = musicGroupPaymentCalenderDao.queryIntersectionByDate(calender.getMusicGroupId(), format,format1);
|
|
|
if (count > 0) {
|
|
if (count > 0) {
|
|
|
throw new BizException("缴费时间存在冲突,请修改缴费开始日期");
|
|
throw new BizException("缴费时间存在冲突,请修改缴费开始日期");
|
|
|
}
|
|
}
|
|
|
count = musicGroupPaymentCalenderDao.queryIntersectionByValidDate(calender.getMusicGroupId(), paymentCalender.getPaymentValidStartDate(),
|
|
count = musicGroupPaymentCalenderDao.queryIntersectionByValidDate(calender.getMusicGroupId(), paymentCalender.getPaymentValidStartDate(),
|
|
|
- paymentCalender.getPaymentValidEndDate(),paymentCalender.getId());
|
|
|
|
|
|
|
+ paymentCalender.getPaymentValidEndDate(), paymentCalender.getId());
|
|
|
if (count > 0) {
|
|
if (count > 0) {
|
|
|
throw new BizException("缴费有效期存在冲突,请修改缴费有效期");
|
|
throw new BizException("缴费有效期存在冲突,请修改缴费有效期");
|
|
|
}
|
|
}
|
|
@@ -426,12 +403,12 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
|
|
|
calender.setPaymentValidEndDate(paymentCalender.getPaymentValidEndDate());
|
|
calender.setPaymentValidEndDate(paymentCalender.getPaymentValidEndDate());
|
|
|
calender.setPaymentPattern(paymentCalender.getPaymentPattern());
|
|
calender.setPaymentPattern(paymentCalender.getPaymentPattern());
|
|
|
calender.setUpdateTime(date);
|
|
calender.setUpdateTime(date);
|
|
|
- if (paymentCalender.getDeadlinePaymentDate().before(date) && !DateUtil.isSameDay(date,paymentCalender.getDeadlinePaymentDate())) {
|
|
|
|
|
- calender.setPaymentStatus(PaymentStatusEnum.OVER);
|
|
|
|
|
- } else if (date.after(paymentCalender.getStartPaymentDate()) || DateUtil.isSameDay(date,paymentCalender.getStartPaymentDate())) {
|
|
|
|
|
- calender.setPaymentStatus(PaymentStatusEnum.OPEN);
|
|
|
|
|
- //修改Fee缴费状态为未缴费
|
|
|
|
|
- musicGroupStudentFeeDao.updatePaymentStatus(calender.getId(),"NON_PAYMENT");
|
|
|
|
|
|
|
+ if (paymentCalender.getDeadlinePaymentDate().before(date) && !DateUtil.isSameDay(date, paymentCalender.getDeadlinePaymentDate())) {
|
|
|
|
|
+ calender.setStatus(PaymentCalenderStatusEnum.OVER);
|
|
|
|
|
+ } else if (date.after(paymentCalender.getStartPaymentDate()) || DateUtil.isSameDay(date, paymentCalender.getStartPaymentDate())) {
|
|
|
|
|
+ calender.setStatus(PaymentCalenderStatusEnum.OPEN);
|
|
|
|
|
+ // 修改Fee缴费状态为未缴费
|
|
|
|
|
+ musicGroupStudentFeeDao.updatePaymentStatus(calender.getId(), "NON_PAYMENT");
|
|
|
List<MusicGroupPaymentCalenderDetail> details = musicGroupPaymentCalenderDetailDao.queryByCalenderId(calender.getId());
|
|
List<MusicGroupPaymentCalenderDetail> details = musicGroupPaymentCalenderDetailDao.queryByCalenderId(calender.getId());
|
|
|
Set<Integer> studentIds = details.stream().map(e -> e.getUserId()).collect(Collectors.toSet());
|
|
Set<Integer> studentIds = details.stream().map(e -> e.getUserId()).collect(Collectors.toSet());
|
|
|
if (studentIds.size() > 0) {
|
|
if (studentIds.size() > 0) {
|
|
@@ -447,7 +424,7 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
|
|
|
null, 0, memo, "STUDENT", musicGroup.getName());
|
|
null, 0, memo, "STUDENT", musicGroup.getName());
|
|
|
}
|
|
}
|
|
|
} else {
|
|
} else {
|
|
|
- calender.setPaymentStatus(PaymentStatusEnum.NO);
|
|
|
|
|
|
|
+ calender.setStatus(PaymentCalenderStatusEnum.NO);
|
|
|
}
|
|
}
|
|
|
musicGroupPaymentCalenderDao.update(calender);
|
|
musicGroupPaymentCalenderDao.update(calender);
|
|
|
}
|
|
}
|
|
@@ -462,7 +439,7 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
|
|
|
if (calender == null) {
|
|
if (calender == null) {
|
|
|
throw new BizException("缴费信息不存在");
|
|
throw new BizException("缴费信息不存在");
|
|
|
}
|
|
}
|
|
|
- if (calender.getPaymentStatus() == null || calender.getPaymentStatus() != NO) {
|
|
|
|
|
|
|
+ if (calender.getStatus() == null || calender.getStatus() != PaymentCalenderStatusEnum.NO) {
|
|
|
throw new BizException("删除失败,缴费状态不匹配");
|
|
throw new BizException("删除失败,缴费状态不匹配");
|
|
|
}
|
|
}
|
|
|
musicGroupPaymentCalenderDao.delete(id);
|
|
musicGroupPaymentCalenderDao.delete(id);
|
|
@@ -486,23 +463,6 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
- public PageInfo<MusicGroupPaymentCalender> queryDetailPage(MusicCalenderQueryInfo queryInfo) {
|
|
|
|
|
- PageInfo<MusicGroupPaymentCalender> pageInfo = queryPage(queryInfo);
|
|
|
|
|
- List<MusicGroupPaymentCalender> rows = pageInfo.getRows();
|
|
|
|
|
- if (rows.size() == 0) {
|
|
|
|
|
- return pageInfo;
|
|
|
|
|
- }
|
|
|
|
|
- Set<Long> collect = rows.stream().map(e -> e.getId()).collect(Collectors.toSet());
|
|
|
|
|
- Map<Long, Long> expectNumMap = MapUtil.convertIntegerMap(musicGroupPaymentCalenderDao.countExpectNum(collect));
|
|
|
|
|
- Map<Long, Long> actualNumMap = MapUtil.convertIntegerMap(musicGroupPaymentCalenderDao.countActualNum(collect));
|
|
|
|
|
- rows.forEach(e -> {
|
|
|
|
|
- e.setActualNum(actualNumMap.get(e.getId()) == null ? 0 : actualNumMap.get(e.getId()).intValue());
|
|
|
|
|
- e.setExpectNum(expectNumMap.get(e.getId()) == null ? 0 : expectNumMap.get(e.getId()).intValue());
|
|
|
|
|
- });
|
|
|
|
|
- return pageInfo;
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- @Override
|
|
|
|
|
public void paymentPush(Long id, String userIds) {
|
|
public void paymentPush(Long id, String userIds) {
|
|
|
// 推送所有
|
|
// 推送所有
|
|
|
if (StringUtils.isEmpty(userIds)) {
|
|
if (StringUtils.isEmpty(userIds)) {
|