From 19de07fd43f62303c342052b846259e44227687b Mon Sep 17 00:00:00 2001 From: cabbage <281119120@qq.com> Date: Sat, 14 Jun 2025 09:45:28 +0800 Subject: [PATCH 1/2] =?UTF-8?q?##=20get-info=E8=BF=94=E5=9B=9E=E4=BC=9A?= =?UTF-8?q?=E5=91=98=E8=8D=A3=E8=AA=89=E5=A5=96=E8=A1=94=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/dto/RetailMemberDataDTO.java | 19 ++++++++----------- .../service/impl/MemberRetailServiceImpl.java | 8 +++++--- .../retail/member/vo/RetailMemberInfoVO.java | 17 +++++++++++++---- .../provider/CommonServiceProvider.java | 16 +++++++++------- 4 files changed, 35 insertions(+), 25 deletions(-) diff --git a/bd-api/bd-api-system/src/main/java/com/hzs/system/common/dto/RetailMemberDataDTO.java b/bd-api/bd-api-system/src/main/java/com/hzs/system/common/dto/RetailMemberDataDTO.java index ee567c64..3b1041e5 100644 --- a/bd-api/bd-api-system/src/main/java/com/hzs/system/common/dto/RetailMemberDataDTO.java +++ b/bd-api/bd-api-system/src/main/java/com/hzs/system/common/dto/RetailMemberDataDTO.java @@ -9,11 +9,7 @@ import java.io.Serializable; import java.math.BigDecimal; /** - * @Description: 新零售会员信息 - * @Author: jiang chao - * @Time: 2024/12/11 15:46 - * @Classname: RetailMemberDataDTO - * @PackageName: com.hzs.system.common.dto + * 新零售会员信息 */ @AllArgsConstructor @NoArgsConstructor @@ -32,14 +28,14 @@ public class RetailMemberDataDTO implements Serializable { private Integer pkGrade; /** - * 极差奖衔 + * 当月奖衔 */ private Integer pkAwards; /** * 荣誉奖衔 */ - private Integer pkRangeAwards; + private Integer pkMaxAwards; /** * 国家名称 @@ -71,23 +67,24 @@ public class RetailMemberDataDTO implements Serializable { * 等级图标 */ private String gradeIcon; + /** - * 极差奖衔显示 + * 月度奖衔显示 */ private String awardsVal; /** - * 极差奖衔图标 + * 月度奖衔图标 */ private String awardsIcon; /** * 荣誉奖衔显示 */ - private String rangeAwardsVal; + private String maxAwardsVal; /** * 荣誉奖衔图标 */ - private String rangeAwardsIcon; + private String maxAwardsIcon; /** * 币种图标 diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/service/impl/MemberRetailServiceImpl.java b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/service/impl/MemberRetailServiceImpl.java index ffb5c0de..e8706879 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/service/impl/MemberRetailServiceImpl.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/service/impl/MemberRetailServiceImpl.java @@ -37,7 +37,7 @@ public class MemberRetailServiceImpl implements IMemberRetailService { .pkSettleCountry(CountryConstants.CHINA_COUNTRY) .pkGrade(cuMember.getPkSettleGrade()) .pkAwards(cuMember.getPkAwards()) - .pkRangeAwards(cuMember.getPkRangeAwards()) + .pkMaxAwards(cuMember.getPkMaxAwards()) .build()).getData(); // 会员标记(0=正常会员,1=V0会员,2=V5会员) @@ -77,8 +77,10 @@ public class MemberRetailServiceImpl implements IMemberRetailService { .gradeIcon(memberDataDTO.getGradeIcon()) .pkAwardsVal(memberDataDTO.getAwardsVal()) .awardsIcon(memberDataDTO.getAwardsIcon()) - .pkRangeAwardsVal(memberDataDTO.getRangeAwardsVal()) - .rangeAwardsIcon(memberDataDTO.getRangeAwardsIcon()) + .pkMaxAwardsVal(memberDataDTO.getMaxAwardsVal()) + .maxAwardsIcon(memberDataDTO.getMaxAwardsIcon()) +// .pkRangeAwardsVal(memberDataDTO.getRangeAwardsVal()) +// .rangeAwardsIcon(memberDataDTO.getRangeAwardsIcon()) .currencyIcon(memberDataDTO.getCurrencyIcon()) .memberSign(memberSign) .control(control) diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/vo/RetailMemberInfoVO.java b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/vo/RetailMemberInfoVO.java index 6cf20d6c..d5361f0e 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/vo/RetailMemberInfoVO.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/vo/RetailMemberInfoVO.java @@ -76,22 +76,31 @@ public class RetailMemberInfoVO implements Serializable { private String gradeIcon; /** - * 极差奖衔名称 + * 当月奖衔名称 */ private String pkAwardsVal; /** - * 极差奖衔图标 + * 当月奖衔图标 */ private String awardsIcon; /** * 荣誉奖衔名称 */ - private String pkRangeAwardsVal; + private String pkMaxAwardsVal; /** * 荣誉奖衔图标 */ - private String rangeAwardsIcon; + private String maxAwardsIcon; + +// /** +// * 荣誉奖衔名称 +// */ +// private String pkRangeAwardsVal; +// /** +// * 荣誉奖衔图标 +// */ +// private String rangeAwardsIcon; /** * 币种图标 diff --git a/bd-business/bd-business-system/src/main/java/com/hzs/system/common/provider/CommonServiceProvider.java b/bd-business/bd-business-system/src/main/java/com/hzs/system/common/provider/CommonServiceProvider.java index 3ccbfc78..8b212fd4 100644 --- a/bd-business/bd-business-system/src/main/java/com/hzs/system/common/provider/CommonServiceProvider.java +++ b/bd-business/bd-business-system/src/main/java/com/hzs/system/common/provider/CommonServiceProvider.java @@ -131,7 +131,7 @@ public class CommonServiceProvider implements ICommonServiceApi { memberDataDTO.setGradeVal(bdGrade.getGradeName()); } } - // 极差奖衔 + // 当月奖衔 if (null != memberDataDTO.getPkAwards()) { BdAwards bdAwards = iBdAwardsService.getBdAwardsOne(memberDataDTO.getPkAwards()); if (null != bdAwards) { @@ -143,13 +143,15 @@ public class CommonServiceProvider implements ICommonServiceApi { } } // 荣誉奖衔 - if (null != memberDataDTO.getPkRangeAwards()) { - BdAwards bdAwards = iBdAwardsService.getBdAwardsOne(memberDataDTO.getPkRangeAwards()); + if (null != memberDataDTO.getPkMaxAwards()) { + BdAwards bdAwards = iBdAwardsService.getBdAwardsOne(memberDataDTO.getPkMaxAwards()); if (null != bdAwards) { - memberDataDTO.setRangeAwardsVal(bdAwards.getAwardsName()); - if (EAwards.MEMBER.getValue() != bdAwards.getAwardsValue()) { - // 奖衔如果是会员级别不返回图标 - memberDataDTO.setRangeAwardsIcon(bdAwards.getImage()); + if (EAwards.MEMBER.getValue() == bdAwards.getAwardsValue()) { + memberDataDTO.setMaxAwardsVal(memberDataDTO.getAwardsVal()); + memberDataDTO.setMaxAwardsIcon(memberDataDTO.getAwardsIcon()); + } else { + memberDataDTO.setMaxAwardsVal(bdAwards.getAwardsName()); + memberDataDTO.setMaxAwardsIcon(bdAwards.getImage()); } } } From 2f6e9da59892ef3a4f6a891fe98de9cc460ee11b Mon Sep 17 00:00:00 2001 From: cabbage <281119120@qq.com> Date: Sat, 14 Jun 2025 09:47:07 +0800 Subject: [PATCH 2/2] =?UTF-8?q?##=20=E8=AE=A1=E7=AE=97=E4=BC=9A=E5=91=98?= =?UTF-8?q?=E7=AD=89=E7=BA=A7=E7=9B=B4=E6=8E=A8=E4=BC=9A=E5=91=98=E4=B8=8D?= =?UTF-8?q?=E7=AE=97=E6=B3=A8=E6=B0=B4=EF=BC=9B=E5=A5=96=E9=87=91=E5=85=AC?= =?UTF-8?q?=E5=B8=83=E6=8E=A5=E5=8F=A3=E8=B0=83=E6=95=B4=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bonus/service/IBonusGrantService.java | 22 +-- .../service/impl/BonusGrantServiceImpl.java | 135 ++++++++---------- .../service/impl/BonusSettleRangeHandle.java | 119 +++++++-------- 3 files changed, 120 insertions(+), 156 deletions(-) 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;