|
|
@@ -7,10 +7,7 @@ import com.ym.mec.biz.dal.dto.MusicGroupPaymentCalenderDto;
|
|
|
import com.ym.mec.biz.dal.entity.*;
|
|
|
import com.ym.mec.biz.dal.enums.CourseViewTypeEnum;
|
|
|
import com.ym.mec.biz.dal.enums.MessageTypeEnum;
|
|
|
-import com.ym.mec.biz.service.MusicGroupPaymentCalenderService;
|
|
|
-import com.ym.mec.biz.service.MusicGroupSchoolTermCourseDetailService;
|
|
|
-import com.ym.mec.biz.service.SysConfigService;
|
|
|
-import com.ym.mec.biz.service.SysMessageService;
|
|
|
+import com.ym.mec.biz.service.*;
|
|
|
import com.ym.mec.common.controller.BaseController;
|
|
|
import com.ym.mec.common.dal.BaseDAO;
|
|
|
import com.ym.mec.common.entity.HttpResponseResult;
|
|
|
@@ -67,7 +64,9 @@ public class MusicGroupSchoolTermCourseDetailServiceImpl extends BaseServiceImpl
|
|
|
@Autowired
|
|
|
private MusicGroupPaymentCalenderService musicGroupPaymentCalenderService;
|
|
|
@Autowired
|
|
|
- private MusicGroupPaymentStudentCourseDetailDao musicGroupPaymentStudentCourseDetailDao;
|
|
|
+ private MusicGroupPaymentCalenderDetailService musicGroupPaymentCalenderDetailService;
|
|
|
+ @Autowired
|
|
|
+ private MusicGroupPaymentStudentCourseDetailService musicGroupPaymentStudentCourseDetailService;
|
|
|
|
|
|
private final Logger logger = LoggerFactory.getLogger(this.getClass());
|
|
|
|
|
|
@@ -167,6 +166,7 @@ public class MusicGroupSchoolTermCourseDetailServiceImpl extends BaseServiceImpl
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
public void musicSchoolTermPush() {
|
|
|
String remindCourseTime = sysConfigDao.findConfigValue(SysConfigService.REMIND_COURSE_TIME);
|
|
|
if(StringUtils.isEmpty(remindCourseTime)){
|
|
|
@@ -206,54 +206,7 @@ public class MusicGroupSchoolTermCourseDetailServiceImpl extends BaseServiceImpl
|
|
|
if(memberRankSetting != null){
|
|
|
memberName = memberRankSetting.getName();
|
|
|
}
|
|
|
- //会员结束前15天自动创建乐团续费(默认提前15天)
|
|
|
- String autoCreateMemberRenew = sysConfigDao.findConfigValue(SysConfigService.AUTO_CREATE_MEMBER_RENEW);
|
|
|
- if(StringUtils.isEmpty(autoCreateMemberRenew)){
|
|
|
- autoCreateMemberRenew = "15";
|
|
|
- }
|
|
|
Date date = new Date();
|
|
|
- Map<String,String> studentMusicMap = MapUtil.convertMybatisMap(studentDao.queryAutoCreateStudentMap(autoCreateMemberRenew));
|
|
|
- if(studentMusicMap.size() > 0){
|
|
|
- for (String musicGroupId : studentMusicMap.keySet()) {
|
|
|
- MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
|
|
|
- // 所有缴费项目已完成排课才能创建下一个缴费项目
|
|
|
- String orignBatchNo = musicGroupPaymentStudentCourseDetailDao.getUnUseBatchNoWithStudentAndCourseTypeAndCourseMinutes(musicGroupId, null, null,null);
|
|
|
- if (StringUtils.isNoneBlank(orignBatchNo)) {
|
|
|
- logger.error("自动创建缴费项目失败,{} 乐团存在未排课的缴费项目",musicGroup.getName());
|
|
|
- continue;
|
|
|
- }
|
|
|
- MemberFeeSetting memberFee = memberFeeSettingDao.findByRankIdAndOrganId(musicGroup.getOrganId(), memberRankSetting.getId());
|
|
|
- if(memberFee == null){
|
|
|
- Organization organization = organizationDao.get(musicGroup.getOrganId());
|
|
|
- logger.error("自动创建缴费项目失败,{} 分部会员收费标准未配置",organization.getName());
|
|
|
- continue;
|
|
|
- }
|
|
|
- //创建缴费项目
|
|
|
- MusicGroupPaymentCalenderDto musicGroupPaymentCalenderDto = new MusicGroupPaymentCalenderDto();
|
|
|
- musicGroupPaymentCalenderDto.setMusicGroupId(musicGroupId);
|
|
|
- musicGroupPaymentCalenderDto.setMemberValidDate(6);
|
|
|
- musicGroupPaymentCalenderDto.setMemo("系统自动创建缴费项目");
|
|
|
- musicGroupPaymentCalenderDto.setMemberRankSettingId(memberRankSetting.getId());
|
|
|
- musicGroupPaymentCalenderDto.setPayUserType(MusicGroupPaymentCalender.PayUserType.STUDENT);
|
|
|
- musicGroupPaymentCalenderDto.setPaymentType(MusicGroupPaymentCalender.PaymentType.MUSIC_RENEW);
|
|
|
- musicGroupPaymentCalenderDto.setPaymentPattern(1);
|
|
|
- musicGroupPaymentCalenderDto.setMemberPaymentAmount(memberFee.getCurrentHalfYearFee().setScale(0, BigDecimal.ROUND_HALF_UP));
|
|
|
- List<MusicGroupPaymentCalenderDto.MusicGroupPaymentDateRange> musicGroupPaymentDateRangeList = new ArrayList<>();
|
|
|
- MusicGroupPaymentCalenderDto.MusicGroupPaymentDateRange range = new MusicGroupPaymentCalenderDto().new MusicGroupPaymentDateRange();
|
|
|
- range.setStartPaymentDate(date);
|
|
|
- range.setDeadlinePaymentDate(DateUtil.addMonths(date,1));
|
|
|
- musicGroupPaymentDateRangeList.add(range);
|
|
|
- musicGroupPaymentCalenderDto.setMusicGroupPaymentDateRangeList(musicGroupPaymentDateRangeList);
|
|
|
-
|
|
|
- try {
|
|
|
- musicGroupPaymentCalenderService.create(musicGroupPaymentCalenderDto);
|
|
|
- }catch (Exception e){
|
|
|
- logger.error("{} 乐团自动创建缴费项目失败,失败原因:{}",musicGroup.getName(),e.getMessage());
|
|
|
- continue;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
//会员结束前15天提醒学员续费
|
|
|
/*String pushMemberRenew = sysConfigDao.findConfigValue(SysConfigService.PUSH_MEMBER_RENEW);
|
|
|
if(StringUtils.isEmpty(pushMemberRenew)){
|
|
|
@@ -314,6 +267,81 @@ public class MusicGroupSchoolTermCourseDetailServiceImpl extends BaseServiceImpl
|
|
|
null,
|
|
|
"STUDENT",memberName,pushMemberRenewAgain);
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+ //会员结束前15天自动创建乐团续费(默认提前15天)
|
|
|
+ String autoCreateMemberRenew = sysConfigDao.findConfigValue(SysConfigService.AUTO_CREATE_MEMBER_RENEW);
|
|
|
+ if(StringUtils.isEmpty(autoCreateMemberRenew)){
|
|
|
+ autoCreateMemberRenew = "15";
|
|
|
+ }
|
|
|
+ Map<String,String> studentMusicMap = MapUtil.convertMybatisMap(studentDao.queryAutoCreateStudentMap(autoCreateMemberRenew));
|
|
|
+ if(studentMusicMap.size() > 0){
|
|
|
+ for (String musicGroupId : studentMusicMap.keySet()) {
|
|
|
+ MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
|
|
|
+ // 所有缴费项目已完成排课才能创建下一个缴费项目
|
|
|
+ String orignBatchNo = musicGroupPaymentStudentCourseDetailService.getUnUseBatchNoWithStudentAndCourseTypeAndCourseMinutes(musicGroupId, null, null,null);
|
|
|
+ if (StringUtils.isNoneBlank(orignBatchNo)) {
|
|
|
+ logger.error("自动创建缴费项目失败,{} 乐团存在未排课的缴费项目",musicGroup.getName());
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ MemberFeeSetting memberFee = memberFeeSettingDao.findByRankIdAndOrganId(musicGroup.getOrganId(), memberRankSetting.getId());
|
|
|
+ if(memberFee == null){
|
|
|
+ Organization organization = organizationDao.get(musicGroup.getOrganId());
|
|
|
+ logger.error("自动创建缴费项目失败,{} 分部会员收费标准未配置",organization.getName());
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ //创建缴费项目
|
|
|
+ MusicGroupPaymentCalenderDto musicGroupPaymentCalenderDto = new MusicGroupPaymentCalenderDto();
|
|
|
+ musicGroupPaymentCalenderDto.setMusicGroupId(musicGroupId);
|
|
|
+ musicGroupPaymentCalenderDto.setMemberValidDate(6);
|
|
|
+ musicGroupPaymentCalenderDto.setMemo("系统自动创建缴费项目");
|
|
|
+ musicGroupPaymentCalenderDto.setMemberRankSettingId(memberRankSetting.getId());
|
|
|
+ musicGroupPaymentCalenderDto.setPayUserType(MusicGroupPaymentCalender.PayUserType.STUDENT);
|
|
|
+ musicGroupPaymentCalenderDto.setPaymentType(MusicGroupPaymentCalender.PaymentType.MUSIC_RENEW);
|
|
|
+ musicGroupPaymentCalenderDto.setPaymentPattern(1);
|
|
|
+ musicGroupPaymentCalenderDto.setMemberPaymentAmount(memberFee.getCurrentHalfYearFee().setScale(0, BigDecimal.ROUND_HALF_UP));
|
|
|
+ List<MusicGroupPaymentCalenderDto.MusicGroupPaymentDateRange> musicGroupPaymentDateRangeList = new ArrayList<>();
|
|
|
+ MusicGroupPaymentCalenderDto.MusicGroupPaymentDateRange range = new MusicGroupPaymentCalenderDto().new MusicGroupPaymentDateRange();
|
|
|
+ range.setStartPaymentDate(date);
|
|
|
+ range.setDeadlinePaymentDate(DateUtil.addMonths(date,1));
|
|
|
+ musicGroupPaymentDateRangeList.add(range);
|
|
|
+ musicGroupPaymentCalenderDto.setMusicGroupPaymentDateRangeList(musicGroupPaymentDateRangeList);
|
|
|
+ String batchNo = "";
|
|
|
+ try {
|
|
|
+ batchNo = musicGroupPaymentCalenderService.create(musicGroupPaymentCalenderDto);
|
|
|
+ }catch (Exception e){
|
|
|
+ logger.error("{} 乐团自动创建缴费项目失败,失败原因:{}",musicGroup.getName(),e.getMessage());
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ MusicGroupPaymentCalender calender = musicGroupPaymentCalenderService.findByBatchNo(batchNo).get(0);
|
|
|
+ Set<Integer> userIdList = Arrays.stream(studentMusicMap.get(musicGroupId).split(",")).map(Integer::new).collect(Collectors.toSet());
|
|
|
+ musicGroupPaymentCalenderDetailService.batchAdd(calender.getId(),userIdList,musicGroup);
|
|
|
+ Map<Integer, String> studentPhoneMap = MapUtil.convertMybatisMap(teacherDao.queryPhoneByIds(studentMusicMap.get(musicGroupId)));
|
|
|
+ Map<Integer,String> userMap = new HashMap<>(userIdList.size());
|
|
|
+ Map<Integer,String> userMap1 = new HashMap<>(userIdList.size());
|
|
|
+ for (Integer studentId : userIdList) {
|
|
|
+ userMap.put(studentId,studentPhoneMap.get(studentId));
|
|
|
+ userMap1.put(studentId,studentId.toString());
|
|
|
+ }
|
|
|
+ String baseApiUrl = sysConfigDao.findConfigValue("base_api_url");
|
|
|
+ String pushUrl = baseApiUrl + "/#/musicGroupRenew?calenderId=" + calender.getId() + "&id=" + musicGroupId;
|
|
|
+ sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.AWSMS,
|
|
|
+ MessageTypeEnum.AUTO_STUDENT_MEMBER_RENEW_MESSAGE,
|
|
|
+ userMap,
|
|
|
+ null,
|
|
|
+ 0,
|
|
|
+ pushUrl,
|
|
|
+ null,memberName,autoCreateMemberRenew);
|
|
|
+
|
|
|
+ sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG,
|
|
|
+ MessageTypeEnum.AUTO_STUDENT_MEMBER_RENEW_MESSAGE,
|
|
|
+ userMap1,
|
|
|
+ null,
|
|
|
+ 0,
|
|
|
+ pushUrl,
|
|
|
+ "STUDENT",memberName,autoCreateMemberRenew);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
private MusicGroupSchoolTermCourseDetail getCourseDetail(MusicGroupSchoolTermCourseDetail courseDetail){
|