Compare commits
	
		
			3 Commits
		
	
	
		
			0fa7c1901e
			...
			8986823f58
		
	
	| Author | SHA1 | Date | 
|---|---|---|
|  | 8986823f58 | |
|  | e3600d8e76 | |
|  | 693219a8b5 | 
|  | @ -9,11 +9,7 @@ import java.io.Serializable; | ||||||
| import java.math.BigDecimal; | import java.math.BigDecimal; | ||||||
| 
 | 
 | ||||||
| /** | /** | ||||||
|  * @Description: 新零售会员信息 |  * 新零售会员信息 | ||||||
|  * @Author: jiang chao |  | ||||||
|  * @Time: 2024/12/11 15:46 |  | ||||||
|  * @Classname: RetailMemberDataDTO |  | ||||||
|  * @PackageName: com.hzs.system.common.dto |  | ||||||
|  */ |  */ | ||||||
| @AllArgsConstructor | @AllArgsConstructor | ||||||
| @NoArgsConstructor | @NoArgsConstructor | ||||||
|  | @ -32,14 +28,14 @@ public class RetailMemberDataDTO implements Serializable { | ||||||
|     private Integer pkGrade; |     private Integer pkGrade; | ||||||
| 
 | 
 | ||||||
|     /** |     /** | ||||||
|      * 极差奖衔 |      * 当月奖衔 | ||||||
|      */ |      */ | ||||||
|     private Integer pkAwards; |     private Integer pkAwards; | ||||||
| 
 | 
 | ||||||
|     /** |     /** | ||||||
|      * 荣誉奖衔 |      * 荣誉奖衔 | ||||||
|      */ |      */ | ||||||
|     private Integer pkRangeAwards; |     private Integer pkMaxAwards; | ||||||
| 
 | 
 | ||||||
|     /** |     /** | ||||||
|      * 国家名称 |      * 国家名称 | ||||||
|  | @ -71,23 +67,24 @@ public class RetailMemberDataDTO implements Serializable { | ||||||
|      * 等级图标 |      * 等级图标 | ||||||
|      */ |      */ | ||||||
|     private String gradeIcon; |     private String gradeIcon; | ||||||
|  | 
 | ||||||
|     /** |     /** | ||||||
|      * 极差奖衔显示 |      * 月度奖衔显示 | ||||||
|      */ |      */ | ||||||
|     private String awardsVal; |     private String awardsVal; | ||||||
|     /** |     /** | ||||||
|      * 极差奖衔图标 |      * 月度奖衔图标 | ||||||
|      */ |      */ | ||||||
|     private String awardsIcon; |     private String awardsIcon; | ||||||
| 
 | 
 | ||||||
|     /** |     /** | ||||||
|      * 荣誉奖衔显示 |      * 荣誉奖衔显示 | ||||||
|      */ |      */ | ||||||
|     private String rangeAwardsVal; |     private String maxAwardsVal; | ||||||
|     /** |     /** | ||||||
|      * 荣誉奖衔图标 |      * 荣誉奖衔图标 | ||||||
|      */ |      */ | ||||||
|     private String rangeAwardsIcon; |     private String maxAwardsIcon; | ||||||
| 
 | 
 | ||||||
|     /** |     /** | ||||||
|      * 币种图标 |      * 币种图标 | ||||||
|  |  | ||||||
|  | @ -1,20 +1,12 @@ | ||||||
| package com.hzs.bonus.bonus.service; | 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 { | public interface IBonusGrantService { | ||||||
| 
 | 
 | ||||||
|     /** |     /** | ||||||
|      * 每天公布奖金,定时任务 |      * 每天公布奖金,定时任务 | ||||||
|      * |  | ||||||
|      * @return: void |  | ||||||
|      * @Author: sui q |  | ||||||
|      * @Date: 2023/3/20 17:06 |  | ||||||
|      */ |      */ | ||||||
|     void publishBonusByPeriodEveryDay(); |     void publishBonusByPeriodEveryDay(); | ||||||
| 
 | 
 | ||||||
|  | @ -24,9 +16,6 @@ public interface IBonusGrantService { | ||||||
|      * 手动公布奖金 |      * 手动公布奖金 | ||||||
|      * |      * | ||||||
|      * @param settleDate 日期 |      * @param settleDate 日期 | ||||||
|      * @return: void |  | ||||||
|      * @Author: sui q |  | ||||||
|      * @Date: 2023/3/20 17:06 |  | ||||||
|      */ |      */ | ||||||
|     void publishBonusByPeriod(Integer pkCountry, String settleDate); |     void publishBonusByPeriod(Integer pkCountry, String settleDate); | ||||||
| 
 | 
 | ||||||
|  | @ -34,9 +23,6 @@ public interface IBonusGrantService { | ||||||
|      * 手动不公布奖金 |      * 手动不公布奖金 | ||||||
|      * |      * | ||||||
|      * @param settleDate 日期 |      * @param settleDate 日期 | ||||||
|      * @return: void |  | ||||||
|      * @Author: sui q |  | ||||||
|      * @Date: 2023/3/20 17:06 |  | ||||||
|      */ |      */ | ||||||
|     void noPublishBonusByPeriod(Integer pkCountry, String settleDate); |     void noPublishBonusByPeriod(Integer pkCountry, String settleDate); | ||||||
| 
 | 
 | ||||||
|  | @ -44,9 +30,6 @@ public interface IBonusGrantService { | ||||||
|      * 每天发放奖金 |      * 每天发放奖金 | ||||||
|      * |      * | ||||||
|      * @param settleDate 日期 |      * @param settleDate 日期 | ||||||
|      * @return: void |  | ||||||
|      * @Author: sui q |  | ||||||
|      * @Date: 2023/3/20 17:06 |  | ||||||
|      */ |      */ | ||||||
|     Boolean grantBonusByPeriod(Integer pkCountry, String settleDate); |     Boolean grantBonusByPeriod(Integer pkCountry, String settleDate); | ||||||
| 
 | 
 | ||||||
|  | @ -56,9 +39,6 @@ public interface IBonusGrantService { | ||||||
|      * 每天奖金提现 |      * 每天奖金提现 | ||||||
|      * |      * | ||||||
|      * @param settleDate 日期 |      * @param settleDate 日期 | ||||||
|      * @return: void |  | ||||||
|      * @Author: sui q |  | ||||||
|      * @Date: 2023/3/20 17:07 |  | ||||||
|      */ |      */ | ||||||
|     void withdrawalBonusByPeriod(Integer pkCountry, String settleDate); |     void withdrawalBonusByPeriod(Integer pkCountry, String settleDate); | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -1,6 +1,5 @@ | ||||||
| package com.hzs.bonus.bonus.service.impl; | 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.ICuMemberAccountService; | ||||||
| import com.hzs.bonus.account.service.ICuMemberTradeDetailService; | import com.hzs.bonus.account.service.ICuMemberTradeDetailService; | ||||||
| import com.hzs.bonus.account.service.ICuMemberTradeService; | 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.ICurrencyServiceApi; | ||||||
| import com.hzs.system.base.dto.CurrencyDTO; | import com.hzs.system.base.dto.CurrencyDTO; | ||||||
| import com.hzs.system.config.IAccountServiceApi; | import com.hzs.system.config.IAccountServiceApi; | ||||||
|  | import lombok.extern.slf4j.Slf4j; | ||||||
| import org.apache.dubbo.config.annotation.DubboReference; | import org.apache.dubbo.config.annotation.DubboReference; | ||||||
| import org.springframework.beans.factory.annotation.Autowired; | import org.springframework.beans.factory.annotation.Autowired; | ||||||
| import org.springframework.stereotype.Service; | import org.springframework.stereotype.Service; | ||||||
|  | @ -33,70 +33,47 @@ import java.time.temporal.ChronoUnit; | ||||||
| import java.util.*; | import java.util.*; | ||||||
| 
 | 
 | ||||||
| /** | /** | ||||||
|  * 金发放实现类 |  * 奖金发放实现类 | ||||||
|  */ |  */ | ||||||
|  | @Slf4j | ||||||
| @Service | @Service | ||||||
| public class BonusGrantServiceImpl implements IBonusGrantService { | public class BonusGrantServiceImpl implements IBonusGrantService { | ||||||
| 
 | 
 | ||||||
|     @DubboReference |     @DubboReference | ||||||
|     IAccountServiceApi accountServiceApi; |     IAccountServiceApi iAccountServiceApi; | ||||||
|     @DubboReference |  | ||||||
|     IActivityServiceApi activityServiceApi; |  | ||||||
| 
 |  | ||||||
|     private ICuMemberBonusService cuMemberBonusService; |  | ||||||
| 
 |  | ||||||
|     private ICuMemberSettlePeriodService cuMemberSettlePeriodService; |  | ||||||
| 
 | 
 | ||||||
|  |     @Autowired | ||||||
|  |     private ICuMemberBonusService iCuMemberBonusService; | ||||||
|  |     @Autowired | ||||||
|  |     private ICuMemberSettlePeriodService iCuMemberSettlePeriodService; | ||||||
|     @Autowired |     @Autowired | ||||||
|     private MemberToolsHandler memberToolsHandler; |     private MemberToolsHandler memberToolsHandler; | ||||||
| 
 |     @Autowired | ||||||
|     private ICuMemberTradeService cuMemberTradeService; |     private ICuMemberTradeService iCuMemberTradeService; | ||||||
| 
 |     @Autowired | ||||||
|     private ICuMemberTradeDetailService cuMemberTradeDetailService; |     private ICuMemberTradeDetailService iCuMemberTradeDetailService; | ||||||
| 
 |     @Autowired | ||||||
|     private ICuMemberAccountService cuMemberAccountService; |     private ICuMemberAccountService iCuMemberAccountService; | ||||||
| 
 | 
 | ||||||
|     @DubboReference |     @DubboReference | ||||||
|     ICountryServiceApi countryServiceApi; |     ICountryServiceApi iCountryServiceApi; | ||||||
|     @DubboReference |     @DubboReference | ||||||
|     ICurrencyServiceApi currencyServiceApi; |     ICurrencyServiceApi iCurrencyServiceApi; | ||||||
| 
 |  | ||||||
|     @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; |  | ||||||
|     } |  | ||||||
| 
 | 
 | ||||||
|  |     @Transactional(rollbackFor = Exception.class) | ||||||
|     @Override |     @Override | ||||||
|     public void publishBonusByPeriodEveryDay() { |     public void publishBonusByPeriodEveryDay() { | ||||||
|         Map<Integer, BdCountry> integerBdCountryMap = countryServiceApi.getAllCountryMap().getData(); |         Map<Integer, BdCountry> integerBdCountryMap = iCountryServiceApi.getAllCountryMap().getData(); | ||||||
|         if (integerBdCountryMap.size() > 0) { |         if (integerBdCountryMap.size() > 0) { | ||||||
|             for (Integer pkCountry : integerBdCountryMap.keySet()) { |             for (Integer pkCountry : integerBdCountryMap.keySet()) { | ||||||
|                 String settleDate = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, DateUtils.beforeDate(1, ChronoUnit.DAYS, DateUtils.currentDate())); |                 String settleDate = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, DateUtils.beforeDate(1, ChronoUnit.DAYS, DateUtils.currentDate())); | ||||||
|                 CuMemberSettlePeriodExt cuMemberSettlePeriod = getCuMemberSettlePeriod(pkCountry, settleDate); |                 CuMemberSettlePeriodExt cuMemberSettlePeriod = getCuMemberSettlePeriod(pkCountry, settleDate); | ||||||
|  |                 log.info("公布奖金参数, settleDate: {}, ", settleDate); | ||||||
|                 // 设置不公布后不能自动公布奖金 |                 // 设置不公布后不能自动公布奖金 | ||||||
|                 if (EYesNo.PROHIBIT.getIntValue() == cuMemberSettlePeriod.getIsPublish()) { |                 if (EYesNo.PROHIBIT.getIntValue() == cuMemberSettlePeriod.getIsPublish()) { | ||||||
|                     return; |                     return; | ||||||
|                 } |                 } | ||||||
|  |                 log.info("公布奖金期数状态, isPublish: {}, ", cuMemberSettlePeriod.getIsPublish()); | ||||||
|                 publishBonus(cuMemberSettlePeriod); |                 publishBonus(cuMemberSettlePeriod); | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|  | @ -105,13 +82,16 @@ public class BonusGrantServiceImpl implements IBonusGrantService { | ||||||
|     @Override |     @Override | ||||||
|     @Transactional(rollbackFor = Exception.class) |     @Transactional(rollbackFor = Exception.class) | ||||||
|     public void grantWithdrawBonusByPeriodEveryDay() { |     public void grantWithdrawBonusByPeriodEveryDay() { | ||||||
|         Map<Integer, BdCountry> integerBdCountryMap = countryServiceApi.getAllCountryMap().getData(); |         Map<Integer, BdCountry> integerBdCountryMap = iCountryServiceApi.getAllCountryMap().getData(); | ||||||
|         if (integerBdCountryMap.size() > 0) { |         if (integerBdCountryMap.size() > 0) { | ||||||
|             for (Integer pkCountry : integerBdCountryMap.keySet()) { |             for (Integer pkCountry : integerBdCountryMap.keySet()) { | ||||||
|                 // 先发放奖金,验证是否是周结,周结发放上周的,直接变为可提现 |                 // 先发放奖金,验证是否是周结,周结发放上周的,直接变为可提现 | ||||||
|                 Date grantDay = DateUtils.beforeDate(7, ChronoUnit.DAYS, DateUtils.currentDate()); |                 Date grantDay = DateUtils.beforeDate(7, ChronoUnit.DAYS, DateUtils.currentDate()); | ||||||
|                 String settleDate = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, grantDay); |                 String settleDate = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, grantDay); | ||||||
|                 grantBonusByPeriod(pkCountry, settleDate); |                 grantBonusByPeriod(pkCountry, settleDate); | ||||||
|  |                 // 设置奖金可以提现 | ||||||
|  |                 withdrawalBonusByPeriod(pkCountry, settleDate); | ||||||
|  | 
 | ||||||
|                 // 周奖发放上周的奖金 |                 // 周奖发放上周的奖金 | ||||||
| //                CuMemberSettlePeriodExt cuMemberSettlePeriod = getCuMemberSettlePeriod(pkCountry, settleDate); | //                CuMemberSettlePeriodExt cuMemberSettlePeriod = getCuMemberSettlePeriod(pkCountry, settleDate); | ||||||
| //                Date withdrawDay = DateUtils.beforeDate(7, ChronoUnit.DAYS, grantDay); | //                Date withdrawDay = DateUtils.beforeDate(7, ChronoUnit.DAYS, grantDay); | ||||||
|  | @ -119,29 +99,26 @@ public class BonusGrantServiceImpl implements IBonusGrantService { | ||||||
| //                        !CountryConstants.CHINA_COUNTRY.equals(pkCountry)) { | //                        !CountryConstants.CHINA_COUNTRY.equals(pkCountry)) { | ||||||
| //                    withdrawDay = grantDay; | //                    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) { |     private void publishBonus(CuMemberSettlePeriodExt cuMemberSettlePeriod) { | ||||||
|         if (EYesNo.YES.getIntValue() == cuMemberSettlePeriod.getIsPublish()) { |         if (EYesNo.YES.getIntValue() == cuMemberSettlePeriod.getIsPublish()) { | ||||||
|             return; |             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()); |                 cuMemberSettlePeriod.getPkId(), cuMemberSettlePeriod.getPkId()); | ||||||
|         // 更新期间表状态 |         // 更新期间表状态(cu_member_settle_period_detail) | ||||||
|         cuMemberSettlePeriod.setIsPublish(EYesNo.YES.getIntValue()); |         cuMemberSettlePeriod.setIsPublish(EYesNo.YES.getIntValue()); | ||||||
|         cuMemberSettlePeriod.setPublishDate(DateUtils.currentDateTime()); |         cuMemberSettlePeriod.setPublishDate(DateUtils.currentDateTime()); | ||||||
|         cuMemberSettlePeriodService.updateCuMemberSettlePeriodByDate(cuMemberSettlePeriod); |         iCuMemberSettlePeriodService.updateCuMemberSettlePeriodByDate(cuMemberSettlePeriod); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     @Override |     @Override | ||||||
|  | @ -160,11 +137,11 @@ public class BonusGrantServiceImpl implements IBonusGrantService { | ||||||
|         // 更新期间表状态 |         // 更新期间表状态 | ||||||
|         cuMemberSettlePeriod.setIsPublish(EYesNo.PROHIBIT.getIntValue()); |         cuMemberSettlePeriod.setIsPublish(EYesNo.PROHIBIT.getIntValue()); | ||||||
|         cuMemberSettlePeriod.setPublishDate(DateUtils.currentDateTime()); |         cuMemberSettlePeriod.setPublishDate(DateUtils.currentDateTime()); | ||||||
|         cuMemberSettlePeriodService.updateCuMemberSettlePeriodByDate(cuMemberSettlePeriod); |         iCuMemberSettlePeriodService.updateCuMemberSettlePeriodByDate(cuMemberSettlePeriod); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     private CuMemberSettlePeriodExt getCuMemberSettlePeriod(Integer pkCountry, String settleDate) { |     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.setPkModified(MagicNumberConstants.PK_ADMIN); | ||||||
|         cuMemberSettlePeriodByDate.setModifiedTime(DateUtils.currentDateTime()); |         cuMemberSettlePeriodByDate.setModifiedTime(DateUtils.currentDateTime()); | ||||||
|         return cuMemberSettlePeriodByDate; |         return cuMemberSettlePeriodByDate; | ||||||
|  | @ -189,16 +166,16 @@ public class BonusGrantServiceImpl implements IBonusGrantService { | ||||||
|                 return Boolean.FALSE; |                 return Boolean.FALSE; | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|         Map<Integer, BdAccount> bdAccountValueMap = accountServiceApi.getAccountMapByCountry(pkCountry).getData(); |         Map<Integer, BdAccount> bdAccountValueMap = iAccountServiceApi.getAccountMapByCountry(pkCountry).getData(); | ||||||
|         Date currentDateTime = DateUtils.currentDateTime(); |         Date currentDateTime = DateUtils.currentDateTime(); | ||||||
| 
 | 
 | ||||||
|         // 查询奖金表,查询未发放的奖金明细 |         // 查询奖金表,查询未发放的奖金明细 | ||||||
|         List<CuMemberBonus> cuMemberBonusList = cuMemberBonusService.queryCuMemberBonusByCondition(pkCountry, EGrantStatus.PUBLISHED.getValue(), cuMemberSettlePeriod.getStartPeriod(), cuMemberSettlePeriod.getEndPeriod()); |         List<CuMemberBonus> cuMemberBonusList = iCuMemberBonusService.queryCuMemberBonusByCondition(pkCountry, EGrantStatus.PUBLISHED.getValue(), cuMemberSettlePeriod.getStartPeriod(), cuMemberSettlePeriod.getEndPeriod()); | ||||||
|         if (cuMemberBonusList.size() > 0) { |         if (cuMemberBonusList.size() > 0) { | ||||||
|             // 新增交易流水 |             // 新增交易流水 | ||||||
|             List<CuMemberTrade> cuMemberTradeList = new ArrayList<>(); |             List<CuMemberTrade> cuMemberTradeList = new ArrayList<>(); | ||||||
|             cuMemberBonusList.forEach(cuMemberBonus -> { |             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); |                 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); | //                packAccountTrade(cuMemberTradeList, bdAccountValueMap, EAccount.CAR_AWARD_POINTS.getValue(), currentDateTime, cuMemberBonus, ComputeUtil.computeMultiply(cuMemberBonus.getCarAwardPoints(), currencyDTO.getOutExchangeRate()), settleDate); | ||||||
|             }); |             }); | ||||||
|             List<Long> seqList = cuMemberTradeService.batchQueryCuMemberTradeSeq(cuMemberTradeList.size()); |             List<Long> seqList = iCuMemberTradeService.batchQueryCuMemberTradeSeq(cuMemberTradeList.size()); | ||||||
|             // 新增流水明细,记录奖金明细的发放状态、消费明细 |             // 新增流水明细,记录奖金明细的发放状态、消费明细 | ||||||
|             List<CuMemberTradeDetail> cuMemberTradeDetailList = new ArrayList<>(); |             List<CuMemberTradeDetail> cuMemberTradeDetailList = new ArrayList<>(); | ||||||
|             Map<Integer, BdAccount> bdAccountMap = accountServiceApi.getAccountListByCountry(pkCountry).getData(); |             Map<Integer, BdAccount> bdAccountMap = iAccountServiceApi.getAccountListByCountry(pkCountry).getData(); | ||||||
|             for (int i = 0; i < cuMemberTradeList.size(); i++) { |             for (int i = 0; i < cuMemberTradeList.size(); i++) { | ||||||
|                 CuMemberTrade cuMemberTrade = cuMemberTradeList.get(i); |                 CuMemberTrade cuMemberTrade = cuMemberTradeList.get(i); | ||||||
|                 cuMemberTrade.setPkId(seqList.get(i)); |                 cuMemberTrade.setPkId(seqList.get(i)); | ||||||
|  | @ -233,18 +210,18 @@ public class BonusGrantServiceImpl implements IBonusGrantService { | ||||||
|                 } |                 } | ||||||
|             } |             } | ||||||
|             // 批量保存交易流水,交易流水明细 |             // 批量保存交易流水,交易流水明细 | ||||||
|             cuMemberTradeService.batchInsertCuMemberTrade(cuMemberTradeList); |             iCuMemberTradeService.batchInsertCuMemberTrade(cuMemberTradeList); | ||||||
|             cuMemberTradeDetailService.batchInsertCuMemberTradeDetail(cuMemberTradeDetailList); |             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.getStartPeriod(), cuMemberSettlePeriod.getEndPeriod()); | ||||||
|         } |         } | ||||||
|         // 更新期间表状态 |         // 更新期间表状态 | ||||||
|         cuMemberSettlePeriod.setIsGrant(EYesNo.YES.getIntValue()); |         cuMemberSettlePeriod.setIsGrant(EYesNo.YES.getIntValue()); | ||||||
|         cuMemberSettlePeriod.setGrantDate(DateUtils.currentDateTime()); |         cuMemberSettlePeriod.setGrantDate(DateUtils.currentDateTime()); | ||||||
|         cuMemberSettlePeriodService.updateCuMemberSettlePeriodByDate(cuMemberSettlePeriod); |         iCuMemberSettlePeriodService.updateCuMemberSettlePeriodByDate(cuMemberSettlePeriod); | ||||||
|         return Boolean.TRUE; |         return Boolean.TRUE; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  | @ -253,14 +230,14 @@ public class BonusGrantServiceImpl implements IBonusGrantService { | ||||||
|         // 奖金发放 |         // 奖金发放 | ||||||
|         CuMemberSettlePeriodExt cuMemberSettlePeriod = getCuMemberSettlePeriod(pkCountry, settleDate); |         CuMemberSettlePeriodExt cuMemberSettlePeriod = getCuMemberSettlePeriod(pkCountry, settleDate); | ||||||
|         // 查询奖金表,查询未发放的奖金明细 |         // 查询奖金表,查询未发放的奖金明细 | ||||||
|         List<CuMemberBonus> cuMemberBonusList = cuMemberBonusService.queryCuMemberBonusByCondition(pkCountry, EGrantStatus.PUBLISHED.getValue(), cuMemberSettlePeriod.getStartPeriod(), cuMemberSettlePeriod.getEndPeriod()); |         List<CuMemberBonus> cuMemberBonusList = iCuMemberBonusService.queryCuMemberBonusByCondition(pkCountry, EGrantStatus.PUBLISHED.getValue(), cuMemberSettlePeriod.getStartPeriod(), cuMemberSettlePeriod.getEndPeriod()); | ||||||
|         Map<Integer, BdAccount> bdAccountValueMap = accountServiceApi.getAccountMapByCountry(pkCountry).getData(); |         Map<Integer, BdAccount> bdAccountValueMap = iAccountServiceApi.getAccountMapByCountry(pkCountry).getData(); | ||||||
|         Date currentDateTime = DateUtils.currentDateTime(); |         Date currentDateTime = DateUtils.currentDateTime(); | ||||||
|         if (cuMemberBonusList.size() > 0) { |         if (cuMemberBonusList.size() > 0) { | ||||||
|             // 新增交易流水 |             // 新增交易流水 | ||||||
|             List<CuMemberTrade> cuMemberTradeList = new ArrayList<>(); |             List<CuMemberTrade> cuMemberTradeList = new ArrayList<>(); | ||||||
|             cuMemberBonusList.forEach(cuMemberBonus -> { |             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); |                 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); | //                packAccountTrade(cuMemberTradeList, bdAccountValueMap, EAccount.CAR_AWARD_POINTS.getValue(), currentDateTime, cuMemberBonus, ComputeUtil.computeMultiply(cuMemberBonus.getCarAwardPoints(), currencyDTO.getOutExchangeRate()), settleDate); | ||||||
|             }); |             }); | ||||||
|             List<Long> seqList = cuMemberTradeService.batchQueryCuMemberTradeSeq(cuMemberTradeList.size()); |             List<Long> seqList = iCuMemberTradeService.batchQueryCuMemberTradeSeq(cuMemberTradeList.size()); | ||||||
|             // 新增流水明细,记录奖金明细的发放状态、消费明细 |             // 新增流水明细,记录奖金明细的发放状态、消费明细 | ||||||
|             List<CuMemberTradeDetail> cuMemberTradeDetailList = new ArrayList<>(); |             List<CuMemberTradeDetail> cuMemberTradeDetailList = new ArrayList<>(); | ||||||
|             Map<Integer, BdAccount> bdAccountMap = accountServiceApi.getAccountListByCountry(pkCountry).getData(); |             Map<Integer, BdAccount> bdAccountMap = iAccountServiceApi.getAccountListByCountry(pkCountry).getData(); | ||||||
|             for (int i = 0; i < cuMemberTradeList.size(); i++) { |             for (int i = 0; i < cuMemberTradeList.size(); i++) { | ||||||
|                 CuMemberTrade cuMemberTrade = cuMemberTradeList.get(i); |                 CuMemberTrade cuMemberTrade = cuMemberTradeList.get(i); | ||||||
|                 cuMemberTrade.setPkId(seqList.get(i)); |                 cuMemberTrade.setPkId(seqList.get(i)); | ||||||
|  | @ -295,12 +272,12 @@ public class BonusGrantServiceImpl implements IBonusGrantService { | ||||||
|                 } |                 } | ||||||
|             } |             } | ||||||
|             // 批量保存交易流水,交易流水明细 |             // 批量保存交易流水,交易流水明细 | ||||||
|             cuMemberTradeService.batchInsertCuMemberTrade(cuMemberTradeList); |             iCuMemberTradeService.batchInsertCuMemberTrade(cuMemberTradeList); | ||||||
|             cuMemberTradeDetailService.batchInsertCuMemberTradeDetail(cuMemberTradeDetailList); |             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.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 |         // 更新交易明细表状态 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.setIsWithdrawal(EYesNo.YES.getIntValue()); | ||||||
|         cuMemberSettlePeriod.setWithdrawalDate(DateUtils.currentDateTime()); |         cuMemberSettlePeriod.setWithdrawalDate(DateUtils.currentDateTime()); | ||||||
|         cuMemberSettlePeriodService.updateCuMemberSettlePeriodByDate(cuMemberSettlePeriod); |         iCuMemberSettlePeriodService.updateCuMemberSettlePeriodByDate(cuMemberSettlePeriod); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     /** |     /** | ||||||
|  |  | ||||||
|  | @ -33,6 +33,7 @@ import com.hzs.common.domain.system.config.BdGrade; | ||||||
| import com.hzs.common.domain.system.config.BdRangeAwards; | import com.hzs.common.domain.system.config.BdRangeAwards; | ||||||
| import com.hzs.member.detail.ICuMemberServiceLogServiceApi; | import com.hzs.member.detail.ICuMemberServiceLogServiceApi; | ||||||
| import com.hzs.system.config.dto.BonusConfigDTO; | import com.hzs.system.config.dto.BonusConfigDTO; | ||||||
|  | import lombok.extern.slf4j.Slf4j; | ||||||
| import org.apache.dubbo.config.annotation.DubboReference; | import org.apache.dubbo.config.annotation.DubboReference; | ||||||
| import org.springframework.beans.factory.annotation.Autowired; | import org.springframework.beans.factory.annotation.Autowired; | ||||||
| import org.springframework.stereotype.Component; | import org.springframework.stereotype.Component; | ||||||
|  | @ -44,8 +45,9 @@ import java.util.*; | ||||||
| import java.util.stream.Collectors; | import java.util.stream.Collectors; | ||||||
| 
 | 
 | ||||||
| /** | /** | ||||||
|  * 计算乐享极差收益 |  * 计算新零售收益 | ||||||
|  */ |  */ | ||||||
|  | @Slf4j | ||||||
| @Component | @Component | ||||||
| public class BonusSettleRangeHandle extends BonusSettleHandle { | public class BonusSettleRangeHandle extends BonusSettleHandle { | ||||||
| 
 | 
 | ||||||
|  | @ -920,9 +922,10 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { | ||||||
|                     if (memberRangeExtMap.containsKey(cuMemberRetailRangeExt.getPkMember())) { |                     if (memberRangeExtMap.containsKey(cuMemberRetailRangeExt.getPkMember())) { | ||||||
|                         cuMemberRetailRangeExt = memberRangeExtMap.get(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) { |                     if (areaBoxNum > bigBoxNum) { | ||||||
|                         // 实际订单累计盒数 大于 累计消费盒数,实际订单累计盒数为大区 |                         // 实际订单累计盒数 大于 累计消费盒数,实际订单累计盒数为大区 | ||||||
|                         bigBoxNum = areaBoxNum; |                         bigBoxNum = areaBoxNum; | ||||||
|  | @ -941,6 +944,9 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { | ||||||
|                 } |                 } | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|  |         if (targetMemberRangeExt.getPkMember() == 201) { | ||||||
|  |             log.info("targetMemberRangeExt: {}", targetMemberRangeExt); | ||||||
|  |         } | ||||||
|         // 计算奖衔(荣誉级别) |         // 计算奖衔(荣誉级别) | ||||||
|         while (true) { |         while (true) { | ||||||
|             // 当前实时奖衔值 + 5,获取下一个奖衔值 |             // 当前实时奖衔值 + 5,获取下一个奖衔值 | ||||||
|  | @ -983,58 +989,58 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { | ||||||
|             } |             } | ||||||
|             break; |             break; | ||||||
|         } |         } | ||||||
|         // 计算分红奖衔(秒结不走这个地方) | //        // 计算分红奖衔(秒结不走这个地方) | ||||||
|         while (true) { | //        while (true) { | ||||||
|             if (null == targetMemberRangeExt.getShareAwardsValue()) { | //            if (null == targetMemberRangeExt.getShareAwardsValue()) { | ||||||
|                 break; | //                break; | ||||||
|             } | //            } | ||||||
|             int awardsValue = targetMemberRangeExt.getShareAwardsValue() + 5; | //            int awardsValue = targetMemberRangeExt.getShareAwardsValue() + 5; | ||||||
|             if (targetMemberRangeExt.getGradeValue().equals(EGrade.S_VIP.getValue()) && retailAwardsMap.containsKey(awardsValue)) { | //            if (targetMemberRangeExt.getGradeValue().equals(EGrade.S_VIP.getValue()) && retailAwardsMap.containsKey(awardsValue)) { | ||||||
|                 BdAwards bdAwards = retailAwardsMap.get(awardsValue); | //                BdAwards bdAwards = retailAwardsMap.get(awardsValue); | ||||||
|                 // 先验证累计业绩 | //                // 先验证累计业绩 | ||||||
|                 if (ComputeUtil.compareValue(ComputeUtil.computeAdd(targetMemberRangeExt.getTeamMonthPv(), targetMemberRangeExt.getMonthConsumePv()), bdAwards.getShareTotalCheck())) { | //                if (ComputeUtil.compareValue(ComputeUtil.computeAdd(targetMemberRangeExt.getTeamMonthPv(), targetMemberRangeExt.getMonthConsumePv()), bdAwards.getShareTotalCheck())) { | ||||||
|                     // 验证小区,计算小区业绩 | //                    // 验证小区,计算小区业绩 | ||||||
|                     List<CuMemberRetailRangeExt> cuMemberRangeExtList = iCuMemberRetailRangeService.queryCuMemberRetailRangeExtByParent(rangeTableName, targetMemberRangeExt.getPkMember()); | //                    List<CuMemberRetailRangeExt> cuMemberRangeExtList = iCuMemberRetailRangeService.queryCuMemberRetailRangeExtByParent(rangeTableName, targetMemberRangeExt.getPkMember()); | ||||||
|                     BigDecimal consumeBigPv = targetMemberRangeExt.getMonthConsumePv(); | //                    BigDecimal consumeBigPv = targetMemberRangeExt.getMonthConsumePv(); | ||||||
| //                    if (ComputeUtil.compareGreaterThan(targetMemberRangeExt.getBigTeamPv(), consumeBigPv)) { | ////                    if (ComputeUtil.compareGreaterThan(targetMemberRangeExt.getBigTeamPv(), consumeBigPv)) { | ||||||
| //                        consumeBigPv = targetMemberRangeExt.getBigTeamPv(); | ////                        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; | ||||||
|  | //                        } | ||||||
|  | //                    } | ||||||
|  | //                    BigDecimal smallAreaPv = ComputeUtil.computeAdd(targetMemberRangeExt.getMonthConsumePv(), ComputeUtil.computeSubtract(targetMemberRangeExt.getTeamMonthPv(), consumeBigPv)); | ||||||
|  | //                    if (ComputeUtil.compareValue(smallAreaPv, bdAwards.getShareCommunityCheck())) { | ||||||
|  | //                        if (bdAwards.getPlaceDeptNum() > 0) { | ||||||
|  | //                            // 验证是否有多个区满足业绩 | ||||||
|  | //                            List<CuMemberRetailRangeExt> 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; | ||||||
| //        } | //        } | ||||||
|                     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<CuMemberRetailRangeExt> 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())) { |                     if (memberRangeExtMap.containsKey(cuMemberRetailRangeExt.getPkMember())) { | ||||||
|                         cuMemberRetailRangeExt = memberRangeExtMap.get(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) { |                     if (areaBoxNum > bigBoxNum) { | ||||||
|                         // 实际订单累计盒数 大于 累计消费盒数,实际订单累计盒数为大区 |                         // 实际订单累计盒数 大于 累计消费盒数,实际订单累计盒数为大区 | ||||||
|                         bigBoxNum = areaBoxNum; |                         bigBoxNum = areaBoxNum; | ||||||
|  |  | ||||||
|  | @ -37,7 +37,7 @@ public class MemberRetailServiceImpl implements IMemberRetailService { | ||||||
|                     .pkSettleCountry(CountryConstants.CHINA_COUNTRY) |                     .pkSettleCountry(CountryConstants.CHINA_COUNTRY) | ||||||
|                     .pkGrade(cuMember.getPkSettleGrade()) |                     .pkGrade(cuMember.getPkSettleGrade()) | ||||||
|                     .pkAwards(cuMember.getPkAwards()) |                     .pkAwards(cuMember.getPkAwards()) | ||||||
|                     .pkRangeAwards(cuMember.getPkRangeAwards()) |                     .pkMaxAwards(cuMember.getPkMaxAwards()) | ||||||
|                     .build()).getData(); |                     .build()).getData(); | ||||||
| 
 | 
 | ||||||
|             // 会员标记(0=正常会员,1=V0会员,2=V5会员) |             // 会员标记(0=正常会员,1=V0会员,2=V5会员) | ||||||
|  | @ -77,8 +77,10 @@ public class MemberRetailServiceImpl implements IMemberRetailService { | ||||||
|                     .gradeIcon(memberDataDTO.getGradeIcon()) |                     .gradeIcon(memberDataDTO.getGradeIcon()) | ||||||
|                     .pkAwardsVal(memberDataDTO.getAwardsVal()) |                     .pkAwardsVal(memberDataDTO.getAwardsVal()) | ||||||
|                     .awardsIcon(memberDataDTO.getAwardsIcon()) |                     .awardsIcon(memberDataDTO.getAwardsIcon()) | ||||||
|                     .pkRangeAwardsVal(memberDataDTO.getRangeAwardsVal()) |                     .pkMaxAwardsVal(memberDataDTO.getMaxAwardsVal()) | ||||||
|                     .rangeAwardsIcon(memberDataDTO.getRangeAwardsIcon()) |                     .maxAwardsIcon(memberDataDTO.getMaxAwardsIcon()) | ||||||
|  | //                    .pkRangeAwardsVal(memberDataDTO.getRangeAwardsVal()) | ||||||
|  | //                    .rangeAwardsIcon(memberDataDTO.getRangeAwardsIcon()) | ||||||
|                     .currencyIcon(memberDataDTO.getCurrencyIcon()) |                     .currencyIcon(memberDataDTO.getCurrencyIcon()) | ||||||
|                     .memberSign(memberSign) |                     .memberSign(memberSign) | ||||||
|                     .control(control) |                     .control(control) | ||||||
|  |  | ||||||
|  | @ -52,8 +52,6 @@ public class DataStatisticsUtil { | ||||||
|         calcDetailVOTotalField(detailVOList, pkId); |         calcDetailVOTotalField(detailVOList, pkId); | ||||||
|         addVirtualBranch(detailVOList, pkId); |         addVirtualBranch(detailVOList, pkId); | ||||||
|         CuMemberRetailDataStatisticsDetailVO total = getDetailVOByPKID(detailVOList, pkId); |         CuMemberRetailDataStatisticsDetailVO total = getDetailVOByPKID(detailVOList, pkId); | ||||||
|         CuMemberRetailDataStatisticsDetailVO bigRangeBox = getBigRangeBoxDetailVO(detailVOList, pkId); |  | ||||||
|         CuMemberRetailDataStatisticsDetailVO bigRangePv = getBigRangePVDetailVO(detailVOList, pkId); |  | ||||||
|         if(EYesNo.NO.getIntValue() == cuMember.getIsActivate()){ |         if(EYesNo.NO.getIntValue() == cuMember.getIsActivate()){ | ||||||
|             // 昨日非激活 排除昨日日结表数据 |             // 昨日非激活 排除昨日日结表数据 | ||||||
|             excludeDailySettlementData(detailVOList); |             excludeDailySettlementData(detailVOList); | ||||||
|  | @ -61,6 +59,8 @@ public class DataStatisticsUtil { | ||||||
|             // 排除注水数据 |             // 排除注水数据 | ||||||
|             excludeWaterInjectionData(detailVOList, pkId); |             excludeWaterInjectionData(detailVOList, pkId); | ||||||
|         } |         } | ||||||
|  |         CuMemberRetailDataStatisticsDetailVO bigRangeBox = getBigRangeBoxDetailVO(detailVOList, pkId); | ||||||
|  |         CuMemberRetailDataStatisticsDetailVO bigRangePv = getBigRangePVDetailVO(detailVOList, pkId); | ||||||
|         Integer smallRangeTotalBoxNum = total.getTotalBoxNum() - bigRangeBox.getTotalBoxNum(); |         Integer smallRangeTotalBoxNum = total.getTotalBoxNum() - bigRangeBox.getTotalBoxNum(); | ||||||
|         if(smallRangeTotalBoxNum < 0){ |         if(smallRangeTotalBoxNum < 0){ | ||||||
|             smallRangeTotalBoxNum = 0; |             smallRangeTotalBoxNum = 0; | ||||||
|  |  | ||||||
|  | @ -76,22 +76,31 @@ public class RetailMemberInfoVO implements Serializable { | ||||||
|     private String gradeIcon; |     private String gradeIcon; | ||||||
| 
 | 
 | ||||||
|     /** |     /** | ||||||
|      * 极差奖衔名称 |      * 当月奖衔名称 | ||||||
|      */ |      */ | ||||||
|     private String pkAwardsVal; |     private String pkAwardsVal; | ||||||
|     /** |     /** | ||||||
|      * 极差奖衔图标 |      * 当月奖衔图标 | ||||||
|      */ |      */ | ||||||
|     private String awardsIcon; |     private String awardsIcon; | ||||||
| 
 | 
 | ||||||
|     /** |     /** | ||||||
|      * 荣誉奖衔名称 |      * 荣誉奖衔名称 | ||||||
|      */ |      */ | ||||||
|     private String pkRangeAwardsVal; |     private String pkMaxAwardsVal; | ||||||
|     /** |     /** | ||||||
|      * 荣誉奖衔图标 |      * 荣誉奖衔图标 | ||||||
|      */ |      */ | ||||||
|     private String rangeAwardsIcon; |     private String maxAwardsIcon; | ||||||
|  | 
 | ||||||
|  | //    /** | ||||||
|  | //     * 荣誉奖衔名称 | ||||||
|  | //     */ | ||||||
|  | //    private String pkRangeAwardsVal; | ||||||
|  | //    /** | ||||||
|  | //     * 荣誉奖衔图标 | ||||||
|  | //     */ | ||||||
|  | //    private String rangeAwardsIcon; | ||||||
| 
 | 
 | ||||||
|     /** |     /** | ||||||
|      * 币种图标 |      * 币种图标 | ||||||
|  |  | ||||||
|  | @ -131,7 +131,7 @@ public class CommonServiceProvider implements ICommonServiceApi { | ||||||
|                 memberDataDTO.setGradeVal(bdGrade.getGradeName()); |                 memberDataDTO.setGradeVal(bdGrade.getGradeName()); | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|         // 极差奖衔 |         // 当月奖衔 | ||||||
|         if (null != memberDataDTO.getPkAwards()) { |         if (null != memberDataDTO.getPkAwards()) { | ||||||
|             BdAwards bdAwards = iBdAwardsService.getBdAwardsOne(memberDataDTO.getPkAwards()); |             BdAwards bdAwards = iBdAwardsService.getBdAwardsOne(memberDataDTO.getPkAwards()); | ||||||
|             if (null != bdAwards) { |             if (null != bdAwards) { | ||||||
|  | @ -143,13 +143,15 @@ public class CommonServiceProvider implements ICommonServiceApi { | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|         // 荣誉奖衔 |         // 荣誉奖衔 | ||||||
|         if (null != memberDataDTO.getPkRangeAwards()) { |         if (null != memberDataDTO.getPkMaxAwards()) { | ||||||
|             BdAwards bdAwards = iBdAwardsService.getBdAwardsOne(memberDataDTO.getPkRangeAwards()); |             BdAwards bdAwards = iBdAwardsService.getBdAwardsOne(memberDataDTO.getPkMaxAwards()); | ||||||
|             if (null != bdAwards) { |             if (null != bdAwards) { | ||||||
|                 memberDataDTO.setRangeAwardsVal(bdAwards.getAwardsName()); |                 if (EAwards.MEMBER.getValue() == bdAwards.getAwardsValue()) { | ||||||
|                 if (EAwards.MEMBER.getValue() != bdAwards.getAwardsValue()) { |                     memberDataDTO.setMaxAwardsVal(memberDataDTO.getAwardsVal()); | ||||||
|                     // 奖衔如果是会员级别不返回图标 |                     memberDataDTO.setMaxAwardsIcon(memberDataDTO.getAwardsIcon()); | ||||||
|                     memberDataDTO.setRangeAwardsIcon(bdAwards.getImage()); |                 } else { | ||||||
|  |                     memberDataDTO.setMaxAwardsVal(bdAwards.getAwardsName()); | ||||||
|  |                     memberDataDTO.setMaxAwardsIcon(bdAwards.getImage()); | ||||||
|                 } |                 } | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue