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

This commit is contained in:
sangelxiu1 2025-06-17 13:58:24 +08:00
commit 52f8a8585f
6 changed files with 24 additions and 105 deletions

View File

@ -1,7 +1,6 @@
package com.hzs.bonus.settle;
import com.hzs.common.core.domain.R;
import com.hzs.common.domain.member.bonus.CuMemberRetail;
import com.hzs.common.domain.sale.order.SaOrder;
import java.util.Date;
@ -44,9 +43,4 @@ public interface IMemberSettleBonusApi {
void calculateCuMemberRetailRangeBonusBySaOrder();
/*
* 根据会员查询会员的 大小区盒数业绩
**/
R<CuMemberRetail> queryValidateBoxOrAchieve(Long pkMember);
}

View File

@ -232,17 +232,6 @@ public class CuMemberSettleController extends BaseController {
return AjaxResult.success();
}
/**
* 秒接结算业绩仅用于测试
* w
*
* @return AjaxResult
*/
@GetMapping("/validate/{pkMember}")
public TableDataInfo validateBigBox(@PathVariable("pkMember") Long pkMember) {
return getDataTable(Collections.singletonList(bonusSettleService.queryValidateBoxOrAchieve(pkMember)));
}
/**
* 秒接结算业绩仅用于测试
*

View File

@ -9,7 +9,6 @@ import com.hzs.bonus.bonus.service.ICuMemberRetailLogService;
import com.hzs.bonus.settle.IMemberSettleBonusApi;
import com.hzs.common.core.domain.R;
import com.hzs.common.core.utils.DateUtils;
import com.hzs.common.domain.member.bonus.CuMemberRetail;
import com.hzs.common.domain.member.bonus.CuMemberRetailLog;
import com.hzs.common.domain.sale.order.SaOrder;
import lombok.extern.slf4j.Slf4j;
@ -118,8 +117,4 @@ public class MemberSettleBonusProvider implements IMemberSettleBonusApi {
}
}
@Override
public R<CuMemberRetail> queryValidateBoxOrAchieve(Long pkMember) {
return R.ok(iBonusSettleService.queryValidateBoxOrAchieve(pkMember));
}
}

View File

@ -1,6 +1,5 @@
package com.hzs.bonus.bonus.service;
import com.hzs.common.domain.member.bonus.CuMemberRetail;
import com.hzs.common.domain.sale.ext.SaOrderExt;
import java.util.List;
@ -28,9 +27,4 @@ public interface IBonusSettleService {
**/
void repeatCuMemberBonusByExpand(String settleDate, List<SaOrderExt> saOrderExtList);
/*
* 根据会员查询会员的 大小区盒数业绩
**/
CuMemberRetail queryValidateBoxOrAchieve(Long pkMember);
}

View File

@ -576,62 +576,6 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
}
}
/**
* 查询会员验证大小区区域算法2种条件1 实际满足V5 1种是满足 30w 小区10w
*/
CuMemberRetail queryValidateBoxOrAchieve(int currentPeriod, int beforePeriod, Long pkMember) {
CuMemberRetail cuMemberRetail = new CuMemberRetail();
String rangeTableName = TableNameConstants.CU_MEMBER_RETAIL_RANGE + beforePeriod;
String secondRangeTableName = TableNameConstants.CU_MEMBER_RETAIL_S + currentPeriod;
List<CuMemberRetailRangeExt> memberRetailRangeExtList = iCuMemberRetailRangeService.queryCuMemberSecondRange(rangeTableName, secondRangeTableName, pkMember);
List<CuMemberRetailRangeExt> cuMemberRangeExtList = new ArrayList<>();
CuMemberRetailRangeExt targetMemberRangeExt = null;
for (CuMemberRetailRangeExt cuMemberRetailRangeExt : memberRetailRangeExtList) {
if (cuMemberRetailRangeExt.getPkParent().equals(pkMember)) {
cuMemberRangeExtList.add(cuMemberRetailRangeExt);
} else {
targetMemberRangeExt = cuMemberRetailRangeExt;
}
}
if (targetMemberRangeExt == null) {
return null;
}
// 计算大区盒数小区盒数
int bigBoxNum = targetMemberRangeExt.getConsumeBoxNum();
for (CuMemberRetailRangeExt cuMemberRetailRangeExt : cuMemberRangeExtList) {
int areaBoxNum = cuMemberRetailRangeExt.getTeamBoxNum() + cuMemberRetailRangeExt.getConsumeBoxNum()
- cuMemberRetailRangeExt.getBigBoxNum() - cuMemberRetailRangeExt.getSmallBoxNum();
if (areaBoxNum > bigBoxNum) {
bigBoxNum = areaBoxNum;
}
}
// 实际盒数去掉注水
int realBoxNum = targetMemberRangeExt.getTeamBoxNum() + targetMemberRangeExt.getConsumeBoxNum() -
targetMemberRangeExt.getBigBoxNum() - targetMemberRangeExt.getSmallBoxNum();
int smallBoxNum = realBoxNum - bigBoxNum;
cuMemberRetail.setRealBoxNum(realBoxNum);
cuMemberRetail.setBigBoxNum(bigBoxNum);
cuMemberRetail.setSmallBoxNum(smallBoxNum);
// 计算大小区业绩
BigDecimal consumeBigPv = targetMemberRangeExt.getMonthConsumePv();
for (CuMemberRetailRangeExt cuMemberRetailRangeExt : cuMemberRangeExtList) {
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));
cuMemberRetail.setTeamMonthPv(ComputeUtil.computeAdd(targetMemberRangeExt.getMonthConsumePv(), targetMemberRangeExt.getTeamMonthPv()));
cuMemberRetail.setBigAreaPv(consumeBigPv);
cuMemberRetail.setSmallAreaPv(smallAreaPv);
cuMemberRetail.setValidateFlag(Boolean.FALSE);
if ((cuMemberRetail.getRealBoxNum() >= 2400 && cuMemberRetail.getSmallBoxNum() >= 500) ||
(ComputeUtil.compareValue(cuMemberRetail.getTeamMonthPv(), BigDecimal.valueOf(46875)) && ComputeUtil.compareValue(cuMemberRetail.getSmallAreaPv(), BigDecimal.valueOf(15625)))) {
cuMemberRetail.setValidateFlag(Boolean.TRUE);
}
return cuMemberRetail;
}
void calculateRangeEvBonus(Map<Long, CuMemberBonus> cuMemberBonusMap, BonusConfigDTO bonusConfigDTO, Integer period, Map<Long, CuMemberRangeExt> memberRangeExtMap, List<CuMemberBonusPush> cuMemberBonusPushList, List<BdWaresBonusExt> bdWaresBonusExtList, SaOrderExt saOrderExt) {
CuMemberRangeExt sourceMemberRangeExt = memberRangeExtMap.get(saOrderExt.getPkMember());
if (ComputeUtil.compareValue(saOrderExt.getOrderAssAchieve(), BigDecimal.valueOf(15.625))) {
@ -908,7 +852,10 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
// 如果等级值 大于 当前会员等级值 并且 等级要求累计盒数 小于等于 团队累计盒数 + 累计消费盒数则可以进行升级
if (bdGrade.getGradeValue() > targetMemberRangeExt.getGradeValue()
&& bdGrade.getBoxTotal() <= (targetMemberRangeExt.getTeamBoxNum() + targetMemberRangeExt.getConsumeBoxNum())) {
&& bdGrade.getBoxTotal() <= (
targetMemberRangeExt.getTeamBoxNum() + targetMemberRangeExt.getConsumeBoxNum()
+ targetMemberRangeExt.getBigBoxNum() + targetMemberRangeExt.getSmallBoxNum()
)) {
// 验证小区计算小区累计盒数 查询伞下会员
List<CuMemberRetailRangeExt> cuMemberRangeExtList;
if (secondRangeTableName != null) {
@ -926,23 +873,26 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
// 注水大区如果大则使用注水盒数为大区
bigBoxNum = targetMemberRangeExt.getBigBoxNum();
}
if (targetMemberRangeExt.getSmallBoxNum() > bigBoxNum) {
// 注水小区如果大则使用注水盒数为大区
bigBoxNum = targetMemberRangeExt.getSmallBoxNum();
}
// 秒结补全直推数据此处秒结和日结可以使用同一逻辑
for (CuMemberRetailRangeExt cuMemberRetailRangeExt : cuMemberRangeExtList) {
if (memberRangeExtMap.containsKey(cuMemberRetailRangeExt.getPkMember())) {
cuMemberRetailRangeExt = memberRangeExtMap.get(cuMemberRetailRangeExt.getPkMember());
}
// 最新确认逻辑计算大小区时需要去掉注水
// 伞下团队累计盒数 + 自己消费盒数
int areaBoxNum = cuMemberRetailRangeExt.getTeamBoxNum() + cuMemberRetailRangeExt.getConsumeBoxNum()
- cuMemberRetailRangeExt.getBigBoxNum() - cuMemberRetailRangeExt.getSmallBoxNum();
int areaBoxNum = cuMemberRetailRangeExt.getTeamBoxNum() + cuMemberRetailRangeExt.getConsumeBoxNum();
if (areaBoxNum > bigBoxNum) {
// 实际订单累计盒数 大于 累计消费盒数实际订单累计盒数为大区
bigBoxNum = areaBoxNum;
}
}
// 小区盒数
int smallBoxNum = targetMemberRangeExt.getTeamBoxNum() + targetMemberRangeExt.getConsumeBoxNum() - bigBoxNum;
// 小区盒数团队累计盒数 + 自消费累计盒数 + 两个注水虚拟盒数 - 大市场盒数
int smallBoxNum = targetMemberRangeExt.getTeamBoxNum() + targetMemberRangeExt.getConsumeBoxNum()
+ targetMemberRangeExt.getBigBoxNum() + targetMemberRangeExt.getSmallBoxNum() - bigBoxNum;
if (smallBoxNum >= bdGrade.getBoxSmallTotal()) {
// 小区盒数 大于等于 升级小区盒数
CuMemberGrade cuMemberGrade = getCuMemberGrade(period, targetMemberRangeExt, bdGrade);
@ -1096,7 +1046,10 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
for (Integer gradeValue : retailTeamGradeMap.keySet()) {
BdGrade bdGrade = retailTeamGradeMap.get(gradeValue);
if (bdGrade.getBoxTotal() <= (targetMemberRangeExt.getTeamBoxNum() + targetMemberRangeExt.getConsumeBoxNum())) {
if (bdGrade.getBoxTotal() <= (
targetMemberRangeExt.getTeamBoxNum() + targetMemberRangeExt.getConsumeBoxNum()
+ targetMemberRangeExt.getBigBoxNum() + targetMemberRangeExt.getSmallBoxNum()
)) {
// 验证小区计算小区累计盒数 查询伞下会员
List<CuMemberRetailRangeExt> cuMemberRangeExtList;
if (secondRangeTableName != null) {
@ -1114,23 +1067,26 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
// 注水大区如果大则使用注水盒数为大区
bigBoxNum = targetMemberRangeExt.getBigBoxNum();
}
if (targetMemberRangeExt.getSmallBoxNum() > bigBoxNum) {
// 注水小区如果大则使用注水盒数为大区
bigBoxNum = targetMemberRangeExt.getSmallBoxNum();
}
// 秒结补全直推数据此处秒结和日结可以使用同一逻辑
for (CuMemberRetailRangeExt cuMemberRetailRangeExt : cuMemberRangeExtList) {
if (memberRangeExtMap.containsKey(cuMemberRetailRangeExt.getPkMember())) {
cuMemberRetailRangeExt = memberRangeExtMap.get(cuMemberRetailRangeExt.getPkMember());
}
// 最新确认逻辑计算大小区时需要去掉注水
// 伞下团队累计盒数 + 自己消费盒数
int areaBoxNum = cuMemberRetailRangeExt.getTeamBoxNum() + cuMemberRetailRangeExt.getConsumeBoxNum()
- cuMemberRetailRangeExt.getBigBoxNum() - cuMemberRetailRangeExt.getSmallBoxNum();
int areaBoxNum = cuMemberRetailRangeExt.getTeamBoxNum() + cuMemberRetailRangeExt.getConsumeBoxNum();
if (areaBoxNum > bigBoxNum) {
// 实际订单累计盒数 大于 累计消费盒数实际订单累计盒数为大区
bigBoxNum = areaBoxNum;
}
}
// 小区盒数
int smallBoxNum = targetMemberRangeExt.getTeamBoxNum() + targetMemberRangeExt.getConsumeBoxNum() - bigBoxNum;
// 小区盒数团队累计盒数 + 自消费累计盒数 + 两个注水虚拟盒数 - 大市场盒数
int smallBoxNum = targetMemberRangeExt.getTeamBoxNum() + targetMemberRangeExt.getConsumeBoxNum()
+ targetMemberRangeExt.getBigBoxNum() + targetMemberRangeExt.getSmallBoxNum() - bigBoxNum;
if (smallBoxNum >= bdGrade.getBoxSmallTotal()) {
// 小区盒数 大于等于 升级小区盒数
CuMemberGrade cuMemberGrade = getCuMemberGrade(period, targetMemberRangeExt, bdGrade);

View File

@ -294,15 +294,6 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
}
}
@Override
public CuMemberRetail queryValidateBoxOrAchieve(Long pkMember) {
String settleDate = DateUtils.parseDateToFormat(DateUtils.YYYY_MM_DD, DateUtils.currentDate());
String beforeDay = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, DateUtils.beforeDate(1, ChronoUnit.DAYS));
int currentPeriod = cuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(settleDate).getPkId();
int beforePeriod = cuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(beforeDay).getPkId();
return bonusSettleRangeHandle.queryValidateBoxOrAchieve(currentPeriod, beforePeriod, pkMember);
}
private Map<Long, CuMemberBonus> getWeekMemberBonusMap(String settleDate, Integer period) {
// 根据结算日期获取周期的期间用于海外
String recentlyMonday = DateUtils.getRecentlyTuesday(settleDate);