Merge remote-tracking branch 'origin/dev' into dev

This commit is contained in:
sangelxiu1 2025-06-14 09:47:41 +08:00
commit b0658f1bc3
7 changed files with 155 additions and 181 deletions

View File

@ -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;
/**
* 币种图标

View File

@ -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);

View File

@ -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<Integer, BdCountry> integerBdCountryMap = countryServiceApi.getAllCountryMap().getData();
Map<Integer, BdCountry> 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<Integer, BdCountry> integerBdCountryMap = countryServiceApi.getAllCountryMap().getData();
Map<Integer, BdCountry> 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<Integer, BdAccount> bdAccountValueMap = accountServiceApi.getAccountMapByCountry(pkCountry).getData();
Map<Integer, BdAccount> bdAccountValueMap = iAccountServiceApi.getAccountMapByCountry(pkCountry).getData();
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) {
// 新增交易流水
List<CuMemberTrade> 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<Long> seqList = cuMemberTradeService.batchQueryCuMemberTradeSeq(cuMemberTradeList.size());
List<Long> seqList = iCuMemberTradeService.batchQueryCuMemberTradeSeq(cuMemberTradeList.size());
// 新增流水明细,记录奖金明细的发放状态消费明细
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++) {
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<CuMemberBonus> cuMemberBonusList = cuMemberBonusService.queryCuMemberBonusByCondition(pkCountry, EGrantStatus.PUBLISHED.getValue(), cuMemberSettlePeriod.getStartPeriod(), cuMemberSettlePeriod.getEndPeriod());
Map<Integer, BdAccount> bdAccountValueMap = accountServiceApi.getAccountMapByCountry(pkCountry).getData();
List<CuMemberBonus> cuMemberBonusList = iCuMemberBonusService.queryCuMemberBonusByCondition(pkCountry, EGrantStatus.PUBLISHED.getValue(), cuMemberSettlePeriod.getStartPeriod(), cuMemberSettlePeriod.getEndPeriod());
Map<Integer, BdAccount> bdAccountValueMap = iAccountServiceApi.getAccountMapByCountry(pkCountry).getData();
Date currentDateTime = DateUtils.currentDateTime();
if (cuMemberBonusList.size() > 0) {
// 新增交易流水
List<CuMemberTrade> 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<Long> seqList = cuMemberTradeService.batchQueryCuMemberTradeSeq(cuMemberTradeList.size());
List<Long> seqList = iCuMemberTradeService.batchQueryCuMemberTradeSeq(cuMemberTradeList.size());
// 新增流水明细,记录奖金明细的发放状态消费明细
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++) {
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);
}
/**

View File

@ -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<CuMemberRetailRangeExt> 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<CuMemberRetailRangeExt> 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<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;
}
// 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())) {
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;

View File

@ -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)

View File

@ -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;
/**
* 币种图标

View File

@ -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());
}
}
}