diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/IBonusGrantService.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/IBonusGrantService.java index e9faa10f..d6a9dd1e 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/IBonusGrantService.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/IBonusGrantService.java @@ -1,20 +1,12 @@ package com.hzs.bonus.bonus.service; /** - * @Description: 奖金发放 - * @Author: sui q - * @Time: 2023/3/20 17:04 - * @Classname: IBonusGrantService - * @PackageName: com.hzs.member.bonus.service + * 奖金发放 */ public interface IBonusGrantService { /** * 每天公布奖金,定时任务 - * - * @return: void - * @Author: sui q - * @Date: 2023/3/20 17:06 */ void publishBonusByPeriodEveryDay(); @@ -24,9 +16,6 @@ public interface IBonusGrantService { * 手动公布奖金 * * @param settleDate 日期 - * @return: void - * @Author: sui q - * @Date: 2023/3/20 17:06 */ void publishBonusByPeriod(Integer pkCountry, String settleDate); @@ -34,9 +23,6 @@ public interface IBonusGrantService { * 手动不公布奖金 * * @param settleDate 日期 - * @return: void - * @Author: sui q - * @Date: 2023/3/20 17:06 */ void noPublishBonusByPeriod(Integer pkCountry, String settleDate); @@ -44,9 +30,6 @@ public interface IBonusGrantService { * 每天发放奖金 * * @param settleDate 日期 - * @return: void - * @Author: sui q - * @Date: 2023/3/20 17:06 */ Boolean grantBonusByPeriod(Integer pkCountry, String settleDate); @@ -56,9 +39,6 @@ public interface IBonusGrantService { * 每天奖金提现 * * @param settleDate 日期 - * @return: void - * @Author: sui q - * @Date: 2023/3/20 17:07 */ void withdrawalBonusByPeriod(Integer pkCountry, String settleDate); diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusGrantServiceImpl.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusGrantServiceImpl.java index 747069ac..3187a5ab 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusGrantServiceImpl.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusGrantServiceImpl.java @@ -1,6 +1,5 @@ package com.hzs.bonus.bonus.service.impl; -import com.hzs.activity.base.IActivityServiceApi; import com.hzs.bonus.account.service.ICuMemberAccountService; import com.hzs.bonus.account.service.ICuMemberTradeDetailService; import com.hzs.bonus.account.service.ICuMemberTradeService; @@ -22,6 +21,7 @@ import com.hzs.system.base.ICountryServiceApi; import com.hzs.system.base.ICurrencyServiceApi; import com.hzs.system.base.dto.CurrencyDTO; import com.hzs.system.config.IAccountServiceApi; +import lombok.extern.slf4j.Slf4j; import org.apache.dubbo.config.annotation.DubboReference; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -33,70 +33,47 @@ import java.time.temporal.ChronoUnit; import java.util.*; /** - * 金发放实现类 + * 奖金发放实现类 */ +@Slf4j @Service public class BonusGrantServiceImpl implements IBonusGrantService { @DubboReference - IAccountServiceApi accountServiceApi; - @DubboReference - IActivityServiceApi activityServiceApi; - - private ICuMemberBonusService cuMemberBonusService; - - private ICuMemberSettlePeriodService cuMemberSettlePeriodService; + IAccountServiceApi iAccountServiceApi; + @Autowired + private ICuMemberBonusService iCuMemberBonusService; + @Autowired + private ICuMemberSettlePeriodService iCuMemberSettlePeriodService; @Autowired private MemberToolsHandler memberToolsHandler; - - private ICuMemberTradeService cuMemberTradeService; - - private ICuMemberTradeDetailService cuMemberTradeDetailService; - - private ICuMemberAccountService cuMemberAccountService; + @Autowired + private ICuMemberTradeService iCuMemberTradeService; + @Autowired + private ICuMemberTradeDetailService iCuMemberTradeDetailService; + @Autowired + private ICuMemberAccountService iCuMemberAccountService; @DubboReference - ICountryServiceApi countryServiceApi; + ICountryServiceApi iCountryServiceApi; @DubboReference - ICurrencyServiceApi currencyServiceApi; - - @Autowired - public void setCuMemberAccountService(ICuMemberAccountService cuMemberAccountService) { - this.cuMemberAccountService = cuMemberAccountService; - } - - @Autowired - public void setCuMemberTradeDetailService(ICuMemberTradeDetailService cuMemberTradeDetailService) { - this.cuMemberTradeDetailService = cuMemberTradeDetailService; - } - - @Autowired - public void setCuMemberTradeService(ICuMemberTradeService cuMemberTradeService) { - this.cuMemberTradeService = cuMemberTradeService; - } - - @Autowired - public void setCuMemberSettlePeriodService(ICuMemberSettlePeriodService cuMemberSettlePeriodService) { - this.cuMemberSettlePeriodService = cuMemberSettlePeriodService; - } - - @Autowired - public void setCuMemberBonusService(ICuMemberBonusService cuMemberBonusService) { - this.cuMemberBonusService = cuMemberBonusService; - } + ICurrencyServiceApi iCurrencyServiceApi; + @Transactional(rollbackFor = Exception.class) @Override public void publishBonusByPeriodEveryDay() { - Map integerBdCountryMap = countryServiceApi.getAllCountryMap().getData(); + Map integerBdCountryMap = iCountryServiceApi.getAllCountryMap().getData(); if (integerBdCountryMap.size() > 0) { for (Integer pkCountry : integerBdCountryMap.keySet()) { String settleDate = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, DateUtils.beforeDate(1, ChronoUnit.DAYS, DateUtils.currentDate())); CuMemberSettlePeriodExt cuMemberSettlePeriod = getCuMemberSettlePeriod(pkCountry, settleDate); + log.info("公布奖金参数, settleDate: {}, ", settleDate); // 设置不公布后不能自动公布奖金 if (EYesNo.PROHIBIT.getIntValue() == cuMemberSettlePeriod.getIsPublish()) { return; } + log.info("公布奖金期数状态, isPublish: {}, ", cuMemberSettlePeriod.getIsPublish()); publishBonus(cuMemberSettlePeriod); } } @@ -105,13 +82,16 @@ public class BonusGrantServiceImpl implements IBonusGrantService { @Override @Transactional(rollbackFor = Exception.class) public void grantWithdrawBonusByPeriodEveryDay() { - Map integerBdCountryMap = countryServiceApi.getAllCountryMap().getData(); + Map integerBdCountryMap = iCountryServiceApi.getAllCountryMap().getData(); if (integerBdCountryMap.size() > 0) { for (Integer pkCountry : integerBdCountryMap.keySet()) { // 先发放奖金,验证是否是周结,周结发放上周的,直接变为可提现 Date grantDay = DateUtils.beforeDate(7, ChronoUnit.DAYS, DateUtils.currentDate()); String settleDate = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, grantDay); grantBonusByPeriod(pkCountry, settleDate); + // 设置奖金可以提现 + withdrawalBonusByPeriod(pkCountry, settleDate); + // 周奖发放上周的奖金 // CuMemberSettlePeriodExt cuMemberSettlePeriod = getCuMemberSettlePeriod(pkCountry, settleDate); // Date withdrawDay = DateUtils.beforeDate(7, ChronoUnit.DAYS, grantDay); @@ -119,29 +99,26 @@ public class BonusGrantServiceImpl implements IBonusGrantService { // !CountryConstants.CHINA_COUNTRY.equals(pkCountry)) { // withdrawDay = grantDay; // } - withdrawalBonusByPeriod(pkCountry, DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, grantDay)); - // 设置奖金可以提现 } } } /* - * @description: 公布奖金 - * @author: sui q - * @date: 2023/4/24 14:19 - * @param: null null + * 公布奖金 **/ private void publishBonus(CuMemberSettlePeriodExt cuMemberSettlePeriod) { if (EYesNo.YES.getIntValue() == cuMemberSettlePeriod.getIsPublish()) { return; } - // 更新奖金状态 - cuMemberBonusService.updateCuMemberBonusStatus(null, EGrantStatus.PUBLISHED.getValue(), EGrantStatus.SETTLED.getValue(), + + log.info("公布奖金开始, periodId: {}, ", cuMemberSettlePeriod.getPkId()); + // 更新奖金状态(cu_member_bonus) + iCuMemberBonusService.updateCuMemberBonusStatus(null, EGrantStatus.PUBLISHED.getValue(), EGrantStatus.SETTLED.getValue(), cuMemberSettlePeriod.getPkId(), cuMemberSettlePeriod.getPkId()); - // 更新期间表状态 + // 更新期间表状态(cu_member_settle_period_detail) cuMemberSettlePeriod.setIsPublish(EYesNo.YES.getIntValue()); cuMemberSettlePeriod.setPublishDate(DateUtils.currentDateTime()); - cuMemberSettlePeriodService.updateCuMemberSettlePeriodByDate(cuMemberSettlePeriod); + iCuMemberSettlePeriodService.updateCuMemberSettlePeriodByDate(cuMemberSettlePeriod); } @Override @@ -160,11 +137,11 @@ public class BonusGrantServiceImpl implements IBonusGrantService { // 更新期间表状态 cuMemberSettlePeriod.setIsPublish(EYesNo.PROHIBIT.getIntValue()); cuMemberSettlePeriod.setPublishDate(DateUtils.currentDateTime()); - cuMemberSettlePeriodService.updateCuMemberSettlePeriodByDate(cuMemberSettlePeriod); + iCuMemberSettlePeriodService.updateCuMemberSettlePeriodByDate(cuMemberSettlePeriod); } private CuMemberSettlePeriodExt getCuMemberSettlePeriod(Integer pkCountry, String settleDate) { - CuMemberSettlePeriodExt cuMemberSettlePeriodByDate = cuMemberSettlePeriodService.getCuMemberSettlePeriod(pkCountry, DateUtils.parseStringToDate(settleDate)); + CuMemberSettlePeriodExt cuMemberSettlePeriodByDate = iCuMemberSettlePeriodService.getCuMemberSettlePeriod(pkCountry, DateUtils.parseStringToDate(settleDate)); cuMemberSettlePeriodByDate.setPkModified(MagicNumberConstants.PK_ADMIN); cuMemberSettlePeriodByDate.setModifiedTime(DateUtils.currentDateTime()); return cuMemberSettlePeriodByDate; @@ -189,16 +166,16 @@ public class BonusGrantServiceImpl implements IBonusGrantService { return Boolean.FALSE; } } - Map bdAccountValueMap = accountServiceApi.getAccountMapByCountry(pkCountry).getData(); + Map bdAccountValueMap = iAccountServiceApi.getAccountMapByCountry(pkCountry).getData(); Date currentDateTime = DateUtils.currentDateTime(); // 查询奖金表,查询未发放的奖金明细 - List cuMemberBonusList = cuMemberBonusService.queryCuMemberBonusByCondition(pkCountry, EGrantStatus.PUBLISHED.getValue(), cuMemberSettlePeriod.getStartPeriod(), cuMemberSettlePeriod.getEndPeriod()); + List cuMemberBonusList = iCuMemberBonusService.queryCuMemberBonusByCondition(pkCountry, EGrantStatus.PUBLISHED.getValue(), cuMemberSettlePeriod.getStartPeriod(), cuMemberSettlePeriod.getEndPeriod()); if (cuMemberBonusList.size() > 0) { // 新增交易流水 List cuMemberTradeList = new ArrayList<>(); cuMemberBonusList.forEach(cuMemberBonus -> { - CurrencyDTO currencyDTO = currencyServiceApi.getCurrency(cuMemberBonus.getPkCountry()).getData(); + CurrencyDTO currencyDTO = iCurrencyServiceApi.getCurrency(cuMemberBonus.getPkCountry()).getData(); // 奖金币(首购+复购+云代+海粉+嗨粉+店铺) packAccountTrade(cuMemberTradeList, bdAccountValueMap, EAccount.BONUS.getValue(), currentDateTime, cuMemberBonus, ComputeUtil.computeMultiply(cuMemberBonus.getRealIncomeTotal(), currencyDTO.getOutExchangeRate()), settleDate); // 重销币(商城重消+平台服务费) @@ -211,10 +188,10 @@ public class BonusGrantServiceImpl implements IBonusGrantService { // 车奖积分 // packAccountTrade(cuMemberTradeList, bdAccountValueMap, EAccount.CAR_AWARD_POINTS.getValue(), currentDateTime, cuMemberBonus, ComputeUtil.computeMultiply(cuMemberBonus.getCarAwardPoints(), currencyDTO.getOutExchangeRate()), settleDate); }); - List seqList = cuMemberTradeService.batchQueryCuMemberTradeSeq(cuMemberTradeList.size()); + List seqList = iCuMemberTradeService.batchQueryCuMemberTradeSeq(cuMemberTradeList.size()); // 新增流水明细,记录奖金明细的发放状态、消费明细 List cuMemberTradeDetailList = new ArrayList<>(); - Map bdAccountMap = accountServiceApi.getAccountListByCountry(pkCountry).getData(); + Map bdAccountMap = iAccountServiceApi.getAccountListByCountry(pkCountry).getData(); for (int i = 0; i < cuMemberTradeList.size(); i++) { CuMemberTrade cuMemberTrade = cuMemberTradeList.get(i); cuMemberTrade.setPkId(seqList.get(i)); @@ -233,18 +210,18 @@ public class BonusGrantServiceImpl implements IBonusGrantService { } } // 批量保存交易流水,交易流水明细 - cuMemberTradeService.batchInsertCuMemberTrade(cuMemberTradeList); - cuMemberTradeDetailService.batchInsertCuMemberTradeDetail(cuMemberTradeDetailList); + iCuMemberTradeService.batchInsertCuMemberTrade(cuMemberTradeList); + iCuMemberTradeDetailService.batchInsertCuMemberTradeDetail(cuMemberTradeDetailList); // 批量更新会员账户,更新余额 - cuMemberAccountService.updateMemberAccountGrantByPeriod(pkCountry, cuMemberSettlePeriod.getStartPeriod(), cuMemberSettlePeriod.getEndPeriod()); + iCuMemberAccountService.updateMemberAccountGrantByPeriod(pkCountry, cuMemberSettlePeriod.getStartPeriod(), cuMemberSettlePeriod.getEndPeriod()); // 更新奖金表发放状态 - cuMemberBonusService.updateCuMemberBonusStatus(pkCountry, EGrantStatus.GRANT.getValue(), EGrantStatus.PUBLISHED.getValue(), + iCuMemberBonusService.updateCuMemberBonusStatus(pkCountry, EGrantStatus.GRANT.getValue(), EGrantStatus.PUBLISHED.getValue(), cuMemberSettlePeriod.getStartPeriod(), cuMemberSettlePeriod.getEndPeriod()); } // 更新期间表状态 cuMemberSettlePeriod.setIsGrant(EYesNo.YES.getIntValue()); cuMemberSettlePeriod.setGrantDate(DateUtils.currentDateTime()); - cuMemberSettlePeriodService.updateCuMemberSettlePeriodByDate(cuMemberSettlePeriod); + iCuMemberSettlePeriodService.updateCuMemberSettlePeriodByDate(cuMemberSettlePeriod); return Boolean.TRUE; } @@ -253,14 +230,14 @@ public class BonusGrantServiceImpl implements IBonusGrantService { // 奖金发放 CuMemberSettlePeriodExt cuMemberSettlePeriod = getCuMemberSettlePeriod(pkCountry, settleDate); // 查询奖金表,查询未发放的奖金明细 - List cuMemberBonusList = cuMemberBonusService.queryCuMemberBonusByCondition(pkCountry, EGrantStatus.PUBLISHED.getValue(), cuMemberSettlePeriod.getStartPeriod(), cuMemberSettlePeriod.getEndPeriod()); - Map bdAccountValueMap = accountServiceApi.getAccountMapByCountry(pkCountry).getData(); + List cuMemberBonusList = iCuMemberBonusService.queryCuMemberBonusByCondition(pkCountry, EGrantStatus.PUBLISHED.getValue(), cuMemberSettlePeriod.getStartPeriod(), cuMemberSettlePeriod.getEndPeriod()); + Map bdAccountValueMap = iAccountServiceApi.getAccountMapByCountry(pkCountry).getData(); Date currentDateTime = DateUtils.currentDateTime(); if (cuMemberBonusList.size() > 0) { // 新增交易流水 List cuMemberTradeList = new ArrayList<>(); cuMemberBonusList.forEach(cuMemberBonus -> { - CurrencyDTO currencyDTO = currencyServiceApi.getCurrency(cuMemberBonus.getPkCountry()).getData(); + CurrencyDTO currencyDTO = iCurrencyServiceApi.getCurrency(cuMemberBonus.getPkCountry()).getData(); // 奖金币(首购+复购+云代+海粉+嗨粉+店铺) packAccountTrade(cuMemberTradeList, bdAccountValueMap, EAccount.BONUS.getValue(), currentDateTime, cuMemberBonus, ComputeUtil.computeMultiply(cuMemberBonus.getRealIncomeTotal(), currencyDTO.getOutExchangeRate()), settleDate); // 重销币(商城重消+平台服务费) @@ -273,10 +250,10 @@ public class BonusGrantServiceImpl implements IBonusGrantService { // 车奖积分 // packAccountTrade(cuMemberTradeList, bdAccountValueMap, EAccount.CAR_AWARD_POINTS.getValue(), currentDateTime, cuMemberBonus, ComputeUtil.computeMultiply(cuMemberBonus.getCarAwardPoints(), currencyDTO.getOutExchangeRate()), settleDate); }); - List seqList = cuMemberTradeService.batchQueryCuMemberTradeSeq(cuMemberTradeList.size()); + List seqList = iCuMemberTradeService.batchQueryCuMemberTradeSeq(cuMemberTradeList.size()); // 新增流水明细,记录奖金明细的发放状态、消费明细 List cuMemberTradeDetailList = new ArrayList<>(); - Map bdAccountMap = accountServiceApi.getAccountListByCountry(pkCountry).getData(); + Map bdAccountMap = iAccountServiceApi.getAccountListByCountry(pkCountry).getData(); for (int i = 0; i < cuMemberTradeList.size(); i++) { CuMemberTrade cuMemberTrade = cuMemberTradeList.get(i); cuMemberTrade.setPkId(seqList.get(i)); @@ -295,12 +272,12 @@ public class BonusGrantServiceImpl implements IBonusGrantService { } } // 批量保存交易流水,交易流水明细 - cuMemberTradeService.batchInsertCuMemberTrade(cuMemberTradeList); - cuMemberTradeDetailService.batchInsertCuMemberTradeDetail(cuMemberTradeDetailList); + iCuMemberTradeService.batchInsertCuMemberTrade(cuMemberTradeList); + iCuMemberTradeDetailService.batchInsertCuMemberTradeDetail(cuMemberTradeDetailList); // 批量更新会员账户,更新余额 - cuMemberAccountService.updateMemberAccountGrantByPeriod(pkCountry, cuMemberSettlePeriod.getStartPeriod(), cuMemberSettlePeriod.getEndPeriod()); + iCuMemberAccountService.updateMemberAccountGrantByPeriod(pkCountry, cuMemberSettlePeriod.getStartPeriod(), cuMemberSettlePeriod.getEndPeriod()); // 更新奖金表发放状态 - cuMemberBonusService.updateCuMemberBonusStatus(pkCountry, EGrantStatus.GRANT.getValue(), EGrantStatus.PUBLISHED.getValue(), + iCuMemberBonusService.updateCuMemberBonusStatus(pkCountry, EGrantStatus.GRANT.getValue(), EGrantStatus.PUBLISHED.getValue(), cuMemberSettlePeriod.getStartPeriod(), cuMemberSettlePeriod.getEndPeriod()); } } @@ -327,15 +304,15 @@ public class BonusGrantServiceImpl implements IBonusGrantService { } } // 批量更新会员账户,更新余额 - cuMemberAccountService.updateMemberAccountWithdrawalByPeriod(cuMemberSettlePeriod.getStartPeriod(), cuMemberSettlePeriod.getEndPeriod(), pkCountry); + iCuMemberAccountService.updateMemberAccountWithdrawalByPeriod(cuMemberSettlePeriod.getStartPeriod(), cuMemberSettlePeriod.getEndPeriod(), pkCountry); // 更新交易明细表状态 cu_member_trade_detail - cuMemberTradeDetailService.updateCuMemberTradeDetailByPeriod(cuMemberSettlePeriod.getStartPeriod(), cuMemberSettlePeriod.getEndPeriod(), pkCountry); + iCuMemberTradeDetailService.updateCuMemberTradeDetailByPeriod(cuMemberSettlePeriod.getStartPeriod(), cuMemberSettlePeriod.getEndPeriod(), pkCountry); // 更新奖金表发放状态 - cuMemberBonusService.updateCuMemberBonusStatus(pkCountry, EGrantStatus.WITHDRAWAL.getValue(), EGrantStatus.GRANT.getValue(), cuMemberSettlePeriod.getStartPeriod(), cuMemberSettlePeriod.getEndPeriod()); + iCuMemberBonusService.updateCuMemberBonusStatus(pkCountry, EGrantStatus.WITHDRAWAL.getValue(), EGrantStatus.GRANT.getValue(), cuMemberSettlePeriod.getStartPeriod(), cuMemberSettlePeriod.getEndPeriod()); // 更新期间表状态 cuMemberSettlePeriod.setIsWithdrawal(EYesNo.YES.getIntValue()); cuMemberSettlePeriod.setWithdrawalDate(DateUtils.currentDateTime()); - cuMemberSettlePeriodService.updateCuMemberSettlePeriodByDate(cuMemberSettlePeriod); + iCuMemberSettlePeriodService.updateCuMemberSettlePeriodByDate(cuMemberSettlePeriod); } /** diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleRangeHandle.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleRangeHandle.java index beb8f19e..cacd8812 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleRangeHandle.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleRangeHandle.java @@ -33,6 +33,7 @@ import com.hzs.common.domain.system.config.BdGrade; import com.hzs.common.domain.system.config.BdRangeAwards; import com.hzs.member.detail.ICuMemberServiceLogServiceApi; import com.hzs.system.config.dto.BonusConfigDTO; +import lombok.extern.slf4j.Slf4j; import org.apache.dubbo.config.annotation.DubboReference; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @@ -44,8 +45,9 @@ import java.util.*; import java.util.stream.Collectors; /** - * 计算乐享极差收益 + * 计算新零售收益 */ +@Slf4j @Component public class BonusSettleRangeHandle extends BonusSettleHandle { @@ -920,9 +922,10 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { if (memberRangeExtMap.containsKey(cuMemberRetailRangeExt.getPkMember())) { cuMemberRetailRangeExt = memberRangeExtMap.get(cuMemberRetailRangeExt.getPkMember()); } - // 最新确认逻辑,计算大小区时,不需要去掉注水 + // 最新确认逻辑,计算大小区时,需要去掉注水 // 伞下团队累计盒数 + 自己消费盒数 - int areaBoxNum = cuMemberRetailRangeExt.getTeamBoxNum() + cuMemberRetailRangeExt.getConsumeBoxNum(); + int areaBoxNum = cuMemberRetailRangeExt.getTeamBoxNum() + cuMemberRetailRangeExt.getConsumeBoxNum() + - cuMemberRetailRangeExt.getBigBoxNum() - cuMemberRetailRangeExt.getSmallBoxNum(); if (areaBoxNum > bigBoxNum) { // 实际订单累计盒数 大于 累计消费盒数,实际订单累计盒数为大区 bigBoxNum = areaBoxNum; @@ -941,6 +944,9 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { } } } + if (targetMemberRangeExt.getPkMember() == 201) { + log.info("targetMemberRangeExt: {}", targetMemberRangeExt); + } // 计算奖衔(荣誉级别) while (true) { // 当前实时奖衔值 + 5,获取下一个奖衔值 @@ -983,58 +989,58 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { } break; } - // 计算分红奖衔(秒结不走这个地方) - while (true) { - if (null == targetMemberRangeExt.getShareAwardsValue()) { - break; - } - int awardsValue = targetMemberRangeExt.getShareAwardsValue() + 5; - if (targetMemberRangeExt.getGradeValue().equals(EGrade.S_VIP.getValue()) && retailAwardsMap.containsKey(awardsValue)) { - BdAwards bdAwards = retailAwardsMap.get(awardsValue); - // 先验证累计业绩 - if (ComputeUtil.compareValue(ComputeUtil.computeAdd(targetMemberRangeExt.getTeamMonthPv(), targetMemberRangeExt.getMonthConsumePv()), bdAwards.getShareTotalCheck())) { - // 验证小区,计算小区业绩 - List cuMemberRangeExtList = iCuMemberRetailRangeService.queryCuMemberRetailRangeExtByParent(rangeTableName, targetMemberRangeExt.getPkMember()); - BigDecimal consumeBigPv = targetMemberRangeExt.getMonthConsumePv(); -// if (ComputeUtil.compareGreaterThan(targetMemberRangeExt.getBigTeamPv(), consumeBigPv)) { -// consumeBigPv = targetMemberRangeExt.getBigTeamPv(); +// // 计算分红奖衔(秒结不走这个地方) +// while (true) { +// if (null == targetMemberRangeExt.getShareAwardsValue()) { +// break; +// } +// int awardsValue = targetMemberRangeExt.getShareAwardsValue() + 5; +// if (targetMemberRangeExt.getGradeValue().equals(EGrade.S_VIP.getValue()) && retailAwardsMap.containsKey(awardsValue)) { +// BdAwards bdAwards = retailAwardsMap.get(awardsValue); +// // 先验证累计业绩 +// if (ComputeUtil.compareValue(ComputeUtil.computeAdd(targetMemberRangeExt.getTeamMonthPv(), targetMemberRangeExt.getMonthConsumePv()), bdAwards.getShareTotalCheck())) { +// // 验证小区,计算小区业绩 +// List cuMemberRangeExtList = iCuMemberRetailRangeService.queryCuMemberRetailRangeExtByParent(rangeTableName, targetMemberRangeExt.getPkMember()); +// BigDecimal consumeBigPv = targetMemberRangeExt.getMonthConsumePv(); +//// if (ComputeUtil.compareGreaterThan(targetMemberRangeExt.getBigTeamPv(), consumeBigPv)) { +//// consumeBigPv = targetMemberRangeExt.getBigTeamPv(); +//// } +// for (CuMemberRetailRangeExt cuMemberRetailRangeExt : cuMemberRangeExtList) { +// if (memberRangeExtMap.containsKey(cuMemberRetailRangeExt.getPkMember())) { +// cuMemberRetailRangeExt = memberRangeExtMap.get(cuMemberRetailRangeExt.getPkMember()); +// } +// BigDecimal consumePv = ComputeUtil.computeAdd(cuMemberRetailRangeExt.getMonthConsumePv(), cuMemberRetailRangeExt.getTeamMonthPv()); +// if (ComputeUtil.compareGreaterThan(consumePv, consumeBigPv)) { +// consumeBigPv = consumePv; +// } // } - for (CuMemberRetailRangeExt cuMemberRetailRangeExt : cuMemberRangeExtList) { - if (memberRangeExtMap.containsKey(cuMemberRetailRangeExt.getPkMember())) { - cuMemberRetailRangeExt = memberRangeExtMap.get(cuMemberRetailRangeExt.getPkMember()); - } - BigDecimal consumePv = ComputeUtil.computeAdd(cuMemberRetailRangeExt.getMonthConsumePv(), cuMemberRetailRangeExt.getTeamMonthPv()); - if (ComputeUtil.compareGreaterThan(consumePv, consumeBigPv)) { - consumeBigPv = consumePv; - } - } - BigDecimal smallAreaPv = ComputeUtil.computeAdd(targetMemberRangeExt.getMonthConsumePv(), ComputeUtil.computeSubtract(targetMemberRangeExt.getTeamMonthPv(), consumeBigPv)); - if (ComputeUtil.compareValue(smallAreaPv, bdAwards.getShareCommunityCheck())) { - if (bdAwards.getPlaceDeptNum() > 0) { - // 验证是否有多个区满足业绩 - List cuMemberRetailRangeExtList = iCuMemberRetailRangeService.queryCuMemberRetailRangeEnoughAchieve(rangeTableName, targetMemberRangeExt.getPkMember(), bdAwards.getShareCommunityCheck()); - int enoughNum = 0; - for (CuMemberRetailRangeExt cuMemberRetailRangeExt : cuMemberRetailRangeExtList) { - if (memberRangeExtMap.containsKey(cuMemberRetailRangeExt.getPkMember())) { - cuMemberRetailRangeExt = memberRangeExtMap.get(cuMemberRetailRangeExt.getPkMember()); - } - if (ComputeUtil.compareValue(ComputeUtil.computeAdd(cuMemberRetailRangeExt.getMonthConsumePv(), cuMemberRetailRangeExt.getTeamMonthPv()), bdAwards.getShareCommunityCheck())) { - enoughNum += 1; - } - } - if (bdAwards.getPlaceDeptNum() > enoughNum) { - break; - } - } - cuMemberAwardsList.add(getCuMemberRetailAwards(targetMemberRangeExt, period, saOrderExt, bdAwards, EAwardsType.SHARE_TYPE.getValue())); - targetMemberRangeExt.setShareAwardsValue(bdAwards.getAwardsValue()); - targetMemberRangeExt.setPkShareAwards(bdAwards.getPkId()); - continue; - } - } - } - break; - } +// BigDecimal smallAreaPv = ComputeUtil.computeAdd(targetMemberRangeExt.getMonthConsumePv(), ComputeUtil.computeSubtract(targetMemberRangeExt.getTeamMonthPv(), consumeBigPv)); +// if (ComputeUtil.compareValue(smallAreaPv, bdAwards.getShareCommunityCheck())) { +// if (bdAwards.getPlaceDeptNum() > 0) { +// // 验证是否有多个区满足业绩 +// List cuMemberRetailRangeExtList = iCuMemberRetailRangeService.queryCuMemberRetailRangeEnoughAchieve(rangeTableName, targetMemberRangeExt.getPkMember(), bdAwards.getShareCommunityCheck()); +// int enoughNum = 0; +// for (CuMemberRetailRangeExt cuMemberRetailRangeExt : cuMemberRetailRangeExtList) { +// if (memberRangeExtMap.containsKey(cuMemberRetailRangeExt.getPkMember())) { +// cuMemberRetailRangeExt = memberRangeExtMap.get(cuMemberRetailRangeExt.getPkMember()); +// } +// if (ComputeUtil.compareValue(ComputeUtil.computeAdd(cuMemberRetailRangeExt.getMonthConsumePv(), cuMemberRetailRangeExt.getTeamMonthPv()), bdAwards.getShareCommunityCheck())) { +// enoughNum += 1; +// } +// } +// if (bdAwards.getPlaceDeptNum() > enoughNum) { +// break; +// } +// } +// cuMemberAwardsList.add(getCuMemberRetailAwards(targetMemberRangeExt, period, saOrderExt, bdAwards, EAwardsType.SHARE_TYPE.getValue())); +// targetMemberRangeExt.setShareAwardsValue(bdAwards.getAwardsValue()); +// targetMemberRangeExt.setPkShareAwards(bdAwards.getPkId()); +// continue; +// } +// } +// } +// break; +// } } /** @@ -1106,9 +1112,10 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { if (memberRangeExtMap.containsKey(cuMemberRetailRangeExt.getPkMember())) { cuMemberRetailRangeExt = memberRangeExtMap.get(cuMemberRetailRangeExt.getPkMember()); } - // 最新确认逻辑,计算大小区时,不需要去掉注水 + // 最新确认逻辑,计算大小区时,需要去掉注水 // 伞下团队累计盒数 + 自己消费盒数 - int areaBoxNum = cuMemberRetailRangeExt.getTeamBoxNum() + cuMemberRetailRangeExt.getConsumeBoxNum(); + int areaBoxNum = cuMemberRetailRangeExt.getTeamBoxNum() + cuMemberRetailRangeExt.getConsumeBoxNum() + - cuMemberRetailRangeExt.getBigBoxNum() - cuMemberRetailRangeExt.getSmallBoxNum(); if (areaBoxNum > bigBoxNum) { // 实际订单累计盒数 大于 累计消费盒数,实际订单累计盒数为大区 bigBoxNum = areaBoxNum;