|
|
@@ -1,7 +1,9 @@
|
|
|
package com.ym.mec.biz.service.impl;
|
|
|
|
|
|
+import com.sun.javafx.collections.MappingChange;
|
|
|
import com.ym.mec.auth.api.client.SysUserFeignService;
|
|
|
import com.ym.mec.biz.dal.dao.*;
|
|
|
+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;
|
|
|
@@ -17,17 +19,19 @@ import com.ym.mec.thirdparty.message.MessageSenderPluginContext;
|
|
|
import com.ym.mec.util.collection.MapUtil;
|
|
|
import com.ym.mec.util.date.DateUtil;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
+import org.slf4j.Logger;
|
|
|
+import org.slf4j.LoggerFactory;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.http.HttpStatus;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
-import java.util.Date;
|
|
|
-import java.util.HashMap;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Map;
|
|
|
+import java.math.BigDecimal;
|
|
|
+import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
+import static com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender.PaymentCalenderStatusEnum.AUDITING;
|
|
|
+
|
|
|
@Service
|
|
|
public class MusicGroupSchoolTermCourseDetailServiceImpl extends BaseServiceImpl<Integer, MusicGroupSchoolTermCourseDetail> implements MusicGroupSchoolTermCourseDetailService {
|
|
|
|
|
|
@@ -55,6 +59,12 @@ public class MusicGroupSchoolTermCourseDetailServiceImpl extends BaseServiceImpl
|
|
|
private StudentDao studentDao;
|
|
|
@Autowired
|
|
|
private MemberRankSettingDao memberRankSettingDao;
|
|
|
+ @Autowired
|
|
|
+ private MemberFeeSettingDao memberFeeSettingDao;
|
|
|
+ @Autowired
|
|
|
+ private OrganizationDao organizationDao;
|
|
|
+
|
|
|
+ private final Logger logger = LoggerFactory.getLogger(this.getClass());
|
|
|
|
|
|
@Override
|
|
|
public BaseDAO<Integer, MusicGroupSchoolTermCourseDetail> getDAO() {
|
|
|
@@ -196,9 +206,34 @@ public class MusicGroupSchoolTermCourseDetailServiceImpl extends BaseServiceImpl
|
|
|
if(StringUtils.isEmpty(autoCreateMemberRenew)){
|
|
|
autoCreateMemberRenew = "15";
|
|
|
}
|
|
|
- List<Integer> studentIds = studentDao.queryPushMemberRenew(autoCreateMemberRenew);
|
|
|
- if(studentIds.size() > 0){
|
|
|
-
|
|
|
+ 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);
|
|
|
+ //创建缴费项目
|
|
|
+ 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);
|
|
|
+ //会员价格是否变动
|
|
|
+ MemberFeeSetting memberFee = memberFeeSettingDao.findByRankIdAndOrganId(musicGroup.getOrganId(), memberRankSetting.getId());
|
|
|
+ if(memberFee == null){
|
|
|
+ Organization organization = organizationDao.get(musicGroup.getOrganId());
|
|
|
+ logger.error("自动创建缴费项目失败,{} 分部会员收费标准未配置",organization.getName());
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ musicGroupPaymentCalenderDto.setMemberPaymentAmount(memberFee.getCurrentHalfYearFee().setScale(0, BigDecimal.ROUND_HALF_UP));
|
|
|
+ List<MusicGroupPaymentCalenderDto.MusicGroupPaymentDateRange> musicGroupPaymentDateRangeList = new ArrayList<MusicGroupPaymentCalenderDto.MusicGroupPaymentDateRange>();
|
|
|
+ MusicGroupPaymentCalenderDto.MusicGroupPaymentDateRange range = new MusicGroupPaymentCalenderDto().new MusicGroupPaymentDateRange();
|
|
|
+ range.setStartPaymentDate(date);
|
|
|
+ range.setDeadlinePaymentDate(DateUtil.addMonths(date,1));
|
|
|
+ musicGroupPaymentDateRangeList.add(range);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
//会员结束前15天提醒学员续费
|