|
@@ -1,78 +1,98 @@
|
|
package com.ym.mec.biz.service.impl;
|
|
package com.ym.mec.biz.service.impl;
|
|
|
|
|
|
|
|
+import com.ym.mec.biz.dal.dao.MemberFeeSettingDao;
|
|
|
|
+import com.ym.mec.biz.dal.entity.MemberFeeSetting;
|
|
import com.ym.mec.biz.dal.enums.PeriodEnum;
|
|
import com.ym.mec.biz.dal.enums.PeriodEnum;
|
|
|
|
+import com.ym.mec.biz.service.MemberFeeSettingService;
|
|
import com.ym.mec.common.dal.BaseDAO;
|
|
import com.ym.mec.common.dal.BaseDAO;
|
|
import com.ym.mec.common.exception.BizException;
|
|
import com.ym.mec.common.exception.BizException;
|
|
-import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
import com.ym.mec.common.service.impl.BaseServiceImpl;
|
|
import com.ym.mec.common.service.impl.BaseServiceImpl;
|
|
-import com.ym.mec.biz.dal.entity.MemberFeeSetting;
|
|
|
|
-import com.ym.mec.biz.service.MemberFeeSettingService;
|
|
|
|
-import com.ym.mec.biz.dal.dao.MemberFeeSettingDao;
|
|
|
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
import java.math.BigDecimal;
|
|
|
|
+import java.util.Objects;
|
|
import java.util.function.BiFunction;
|
|
import java.util.function.BiFunction;
|
|
|
|
|
|
-import static com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender.PaymentCalenderStatusEnum.AUDITING;
|
|
|
|
-
|
|
|
|
@Service
|
|
@Service
|
|
-public class MemberFeeSettingServiceImpl extends BaseServiceImpl<Integer, MemberFeeSetting> implements MemberFeeSettingService {
|
|
|
|
-
|
|
|
|
- @Autowired
|
|
|
|
- private MemberFeeSettingDao memberFeeSettingDao;
|
|
|
|
|
|
+public class MemberFeeSettingServiceImpl extends BaseServiceImpl<Integer, MemberFeeSetting> implements MemberFeeSettingService {
|
|
|
|
|
|
- @Override
|
|
|
|
- public BaseDAO<Integer, MemberFeeSetting> getDAO() {
|
|
|
|
- return memberFeeSettingDao;
|
|
|
|
- }
|
|
|
|
|
|
+ @Autowired
|
|
|
|
+ private MemberFeeSettingDao memberFeeSettingDao;
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public BaseDAO<Integer, MemberFeeSetting> getDAO() {
|
|
|
|
+ return memberFeeSettingDao;
|
|
|
|
+ }
|
|
|
|
|
|
@Override
|
|
@Override
|
|
public MemberFeeSetting findByRankIdAndOrganId(Integer organId, Integer rankId) {
|
|
public MemberFeeSetting findByRankIdAndOrganId(Integer organId, Integer rankId) {
|
|
- return memberFeeSettingDao.findByRankIdAndOrganId(organId,rankId);
|
|
|
|
|
|
+ return memberFeeSettingDao.findByRankIdAndOrganId(organId, rankId);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public BigDecimal getAmount(Integer organId, Integer memberRankSettingId, PeriodEnum period, BigDecimal num,
|
|
|
|
+ BiFunction<PeriodEnum, MemberFeeSetting, BigDecimal> func) {
|
|
|
|
+ MemberFeeSetting memberFee = memberFeeSettingDao.findByRankIdAndOrganId(organId, memberRankSettingId);
|
|
|
|
+ if (memberFee == null) {
|
|
|
|
+ throw new BizException("操作失败:请配置当前分部会员收费标准");
|
|
|
|
+ }
|
|
|
|
+ //获取总价(原价或者现价)
|
|
|
|
+ return func.apply(period, memberFee).multiply(num).setScale(0, BigDecimal.ROUND_HALF_UP);
|
|
}
|
|
}
|
|
|
|
|
|
- @Override
|
|
|
|
- public BigDecimal getAmount(Integer organId, Integer memberRankSettingId, PeriodEnum period, BigDecimal num,
|
|
|
|
- BiFunction<PeriodEnum, MemberFeeSetting, BigDecimal> func) {
|
|
|
|
- MemberFeeSetting memberFee = memberFeeSettingDao.findByRankIdAndOrganId(organId,memberRankSettingId);
|
|
|
|
- if(memberFee == null){
|
|
|
|
- throw new BizException("操作失败:请配置当前分部会员收费标准");
|
|
|
|
- }
|
|
|
|
- //获取总价(原价或者现价)
|
|
|
|
- return func.apply(period,memberFee).multiply(num).setScale(0, BigDecimal.ROUND_HALF_UP);
|
|
|
|
- }
|
|
|
|
|
|
+ public static BigDecimal getGroupPurchaseFee(PeriodEnum periodEnum, MemberFeeSetting memberFee) {
|
|
|
|
+ BigDecimal amount;
|
|
|
|
+ switch (periodEnum) {
|
|
|
|
+ case DAY:
|
|
|
|
+ amount = memberFee.getGroupPurchaseDayFee();
|
|
|
|
+ break;
|
|
|
|
+ case MONTH:
|
|
|
|
+ amount = memberFee.getGroupPurchaseMonthFee();
|
|
|
|
+ break;
|
|
|
|
+ case QUARTERLY:
|
|
|
|
+ amount = memberFee.getGroupPurchaseQuarterlyFee();
|
|
|
|
+ break;
|
|
|
|
+ case YEAR_HALF:
|
|
|
|
+ amount = memberFee.getGroupPurchaseHalfYearFee();
|
|
|
|
+ break;
|
|
|
|
+ case YEAR:
|
|
|
|
+ amount = memberFee.getGroupPurchaseYearFee();
|
|
|
|
+ break;
|
|
|
|
+ default:
|
|
|
|
+ throw new BizException("请选择正确的会员有效期");
|
|
|
|
+ }
|
|
|
|
+ if (Objects.isNull(amount)) {
|
|
|
|
+ throw new BizException("未设置团练宝的价格");
|
|
|
|
+ }
|
|
|
|
+ return amount;
|
|
|
|
+ }
|
|
|
|
|
|
- public static BigDecimal getGroupPurchaseFee(PeriodEnum periodEnum,MemberFeeSetting memberFee){
|
|
|
|
- switch (periodEnum){
|
|
|
|
- case DAY :
|
|
|
|
- return memberFee.getGroupPurchaseDayFee();
|
|
|
|
- case MONTH :
|
|
|
|
- return memberFee.getGroupPurchaseMonthFee();
|
|
|
|
- case QUARTERLY :
|
|
|
|
- return memberFee.getGroupPurchaseQuarterlyFee();
|
|
|
|
- case YEAR_HALF :
|
|
|
|
- return memberFee.getGroupPurchaseHalfYearFee();
|
|
|
|
- case YEAR :
|
|
|
|
- return memberFee.getGroupPurchaseYearFee();
|
|
|
|
- default:
|
|
|
|
- throw new BizException("请选择正确的会员有效期");
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
|
|
+ public static BigDecimal getOriginalFee(PeriodEnum periodEnum, MemberFeeSetting memberFee) {
|
|
|
|
+ BigDecimal amount;
|
|
|
|
+ switch (periodEnum) {
|
|
|
|
+ case DAY:
|
|
|
|
+ amount = memberFee.getOriginalDayFee();
|
|
|
|
+ break;
|
|
|
|
+ case MONTH:
|
|
|
|
+ amount = memberFee.getOriginalMonthFee();
|
|
|
|
+ break;
|
|
|
|
+ case QUARTERLY:
|
|
|
|
+ amount = memberFee.getOriginalQuarterlyFee();
|
|
|
|
+ break;
|
|
|
|
+ case YEAR_HALF:
|
|
|
|
+ amount = memberFee.getOriginalHalfYearFee();
|
|
|
|
+ break;
|
|
|
|
+ case YEAR:
|
|
|
|
+ amount = memberFee.getOriginalYearFee();
|
|
|
|
+ break;
|
|
|
|
+ default:
|
|
|
|
+ throw new BizException("请选择正确的会员有效期");
|
|
|
|
+ }
|
|
|
|
+ if (Objects.isNull(amount)) {
|
|
|
|
+ throw new BizException("未设置会员有效期的价格");
|
|
|
|
+ }
|
|
|
|
+ return amount;
|
|
|
|
+ }
|
|
|
|
|
|
- public static BigDecimal getOriginalFee(PeriodEnum periodEnum,MemberFeeSetting memberFee){
|
|
|
|
- switch (periodEnum){
|
|
|
|
- case DAY :
|
|
|
|
- return memberFee.getOriginalDayFee();
|
|
|
|
- case MONTH :
|
|
|
|
- return memberFee.getOriginalMonthFee();
|
|
|
|
- case QUARTERLY :
|
|
|
|
- return memberFee.getOriginalQuarterlyFee();
|
|
|
|
- case YEAR_HALF :
|
|
|
|
- return memberFee.getOriginalHalfYearFee();
|
|
|
|
- case YEAR :
|
|
|
|
- return memberFee.getOriginalYearFee();
|
|
|
|
- default:
|
|
|
|
- throw new BizException("请选择正确的会员有效期");
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
}
|
|
}
|