forked from angelo/java-retail-app
Merge remote-tracking branch 'origin/dev' into dev
This commit is contained in:
commit
b0658f1bc3
|
@ -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)
|
||||||
|
|
|
@ -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