Merge remote-tracking branch 'origin/dev' into test
This commit is contained in:
commit
5778ca1429
|
@ -192,7 +192,7 @@ public abstract class BonusSettleHandle {
|
||||||
*/
|
*/
|
||||||
protected Boolean validatePkBonusItems(BonusConfigDTO bonusConfigDTO, Integer pkCountry, Integer bonusItems) {
|
protected Boolean validatePkBonusItems(BonusConfigDTO bonusConfigDTO, Integer pkCountry, Integer bonusItems) {
|
||||||
BdBonusItemsExt bdBonusItemsExt = bonusConfigDTO.getBonusItemsExtMap().get(pkCountry.toString() + bonusItems);
|
BdBonusItemsExt bdBonusItemsExt = bonusConfigDTO.getBonusItemsExtMap().get(pkCountry.toString() + bonusItems);
|
||||||
return bdBonusItemsExt == null || bdBonusItemsExt.getPkId() == null;
|
return null == bdBonusItemsExt || null == bdBonusItemsExt.getPkId();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1124,10 +1124,7 @@ public abstract class BonusSettleHandle {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Description: 云代计算 扣项,小计,总计
|
* 扣项,小计,总计
|
||||||
* @return: void
|
|
||||||
* @Author: sui q
|
|
||||||
* @Date: 2023/1/11 13:59
|
|
||||||
*/
|
*/
|
||||||
protected void setRetailTotal(BdBonusDeduct bdBonusDeduct, CuMemberBonus cuMemberBonus, Object bonusDetail) {
|
protected void setRetailTotal(BdBonusDeduct bdBonusDeduct, CuMemberBonus cuMemberBonus, Object bonusDetail) {
|
||||||
setBonusDeduct(bdBonusDeduct, cuMemberBonus, bonusDetail);
|
setBonusDeduct(bdBonusDeduct, cuMemberBonus, bonusDetail);
|
||||||
|
@ -1137,23 +1134,7 @@ public abstract class BonusSettleHandle {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Description: 云代计算 扣项,小计,总计
|
* 扣项,小计,总计
|
||||||
* @return: void
|
|
||||||
* @Author: sui q
|
|
||||||
* @Date: 2023/1/11 13:59
|
|
||||||
*/
|
|
||||||
protected void setMakerTotal(BdBonusDeduct bdBonusDeduct, CuMemberBonus cuMemberBonus, Object bonusDetail) {
|
|
||||||
setBonusDeduct(bdBonusDeduct, cuMemberBonus, bonusDetail);
|
|
||||||
BigDecimal realIncome = ReflectUtils.invokeGetter(bonusDetail, BonusFieldConstants.REAL_INCOME);
|
|
||||||
cuMemberBonus.setMakerRealSubtotal(ComputeUtil.computeAdd(cuMemberBonus.getMakerRealSubtotal(), realIncome));
|
|
||||||
cuMemberBonus.setRealIncomeTotal(ComputeUtil.computeAdd(cuMemberBonus.getRealIncomeTotal(), realIncome));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @Description: 云代计算 扣项,小计,总计
|
|
||||||
* @return: void
|
|
||||||
* @Author: sui q
|
|
||||||
* @Date: 2023/1/11 13:59
|
|
||||||
*/
|
*/
|
||||||
protected void setRepurchaseCouponTotal(BdBonusDeduct bdBonusDeduct, CuMemberBonus cuMemberBonus, Object bonusDetail) {
|
protected void setRepurchaseCouponTotal(BdBonusDeduct bdBonusDeduct, CuMemberBonus cuMemberBonus, Object bonusDetail) {
|
||||||
setBonusDeduct(bdBonusDeduct, cuMemberBonus, bonusDetail);
|
setBonusDeduct(bdBonusDeduct, cuMemberBonus, bonusDetail);
|
||||||
|
|
|
@ -57,7 +57,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
||||||
private IBonusOrderService iBonusOrderService;
|
private IBonusOrderService iBonusOrderService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 实时计算当月奖衔
|
* 实时计算秒结数据(业绩、盒数、等级、奖衔、日奖)
|
||||||
*/
|
*/
|
||||||
List<CuMemberBonusRange> calculateCuMemberRetailRangeBonusBySecond(String settleDate, SaOrderExt saOrderExt, BonusConfigDTO bonusConfigDTO,
|
List<CuMemberBonusRange> calculateCuMemberRetailRangeBonusBySecond(String settleDate, SaOrderExt saOrderExt, BonusConfigDTO bonusConfigDTO,
|
||||||
String secondRangeTableName, int beforePeriod, int currentPeriod,
|
String secondRangeTableName, int beforePeriod, int currentPeriod,
|
||||||
|
@ -130,17 +130,18 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
||||||
// 计算自消费奖衔
|
// 计算自消费奖衔
|
||||||
CuMemberRetailRangeExt sourceMemberRangeExt = memberRangeExtMap.get(saOrderExt.getPkMember());
|
CuMemberRetailRangeExt sourceMemberRangeExt = memberRangeExtMap.get(saOrderExt.getPkMember());
|
||||||
// 先算等级 注册、升级计算等级
|
// 先算等级 注册、升级计算等级
|
||||||
// 订单指定产品盒数(计算等级使用)
|
// 订单指定产品盒数
|
||||||
int boxNum = saOrderExt.getBoxNum();
|
int boxNum = 0;
|
||||||
// int boxNum = 0;
|
for (SaOrderWaresExt saOrderItems : saOrderExt.getOrderWaresExtList()) {
|
||||||
// for (SaOrderWaresExt saOrderItems : saOrderExt.getOrderWaresExtList()) {
|
for (String waresCode : RetailProductConstants.ALL_BOX_WARES_LIST) {
|
||||||
// for (String waresCode : RetailProductConstants.ALL_BOX_WARES_LIST) {
|
if (saOrderItems.getWaresCode().equals(waresCode)) {
|
||||||
// if (saOrderItems.getWaresCode().equals(waresCode)) {
|
boxNum += saOrderItems.getWaresQuantity();
|
||||||
// boxNum += saOrderItems.getWaresQuantity();
|
break;
|
||||||
// break;
|
}
|
||||||
// }
|
}
|
||||||
// }
|
}
|
||||||
// }
|
saOrderExt.setBoxNum(boxNum);
|
||||||
|
|
||||||
// 订单业绩
|
// 订单业绩
|
||||||
BigDecimal orderAchieve = saOrderExt.getOrderAchieve();
|
BigDecimal orderAchieve = saOrderExt.getOrderAchieve();
|
||||||
if (EOrderType.RETAIL_REPURCHASE.getValue() == saOrderExt.getOrderType()
|
if (EOrderType.RETAIL_REPURCHASE.getValue() == saOrderExt.getOrderType()
|
||||||
|
@ -163,7 +164,6 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
||||||
// 计算团队业绩、盒数,计算等级、奖衔
|
// 计算团队业绩、盒数,计算等级、奖衔
|
||||||
cuMemberAwardsList.addAll(calculateRetailRangeGradeAwards(currentPeriod, memberRangeExtMap, rangeTableName, saOrderExt, retailTeamGradeMap, retailAwardsMap, secondRangeTableName, boxNum, cuMemberGradeList));
|
cuMemberAwardsList.addAll(calculateRetailRangeGradeAwards(currentPeriod, memberRangeExtMap, rangeTableName, saOrderExt, retailTeamGradeMap, retailAwardsMap, secondRangeTableName, boxNum, cuMemberGradeList));
|
||||||
|
|
||||||
|
|
||||||
// TODO new 奖金处理
|
// TODO new 奖金处理
|
||||||
List<CuMemberBonusRange> cuMemberBonusRangeList = new ArrayList<>();
|
List<CuMemberBonusRange> cuMemberBonusRangeList = new ArrayList<>();
|
||||||
// 计算奖金 计算平级收益
|
// 计算奖金 计算平级收益
|
||||||
|
@ -184,13 +184,13 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
||||||
List<CuMemberRetailRangeExt> countyRangeExtList = iCuMemberRetailRangeService.batchQueryMemberRetailSecondRangeByCounty(rangeTableName, secondRangeTableName, saOrderExt.getRecCounty());
|
List<CuMemberRetailRangeExt> countyRangeExtList = iCuMemberRetailRangeService.batchQueryMemberRetailSecondRangeByCounty(rangeTableName, secondRangeTableName, saOrderExt.getRecCounty());
|
||||||
countyRangeExtList.forEach(cuMemberRetailRangeExt ->
|
countyRangeExtList.forEach(cuMemberRetailRangeExt ->
|
||||||
countyRangeExtMap.put(cuMemberRetailRangeExt.getSystemType() + "_" + cuMemberRetailRangeExt.getRegionAddress(), cuMemberRetailRangeExt));
|
countyRangeExtMap.put(cuMemberRetailRangeExt.getSystemType() + "_" + cuMemberRetailRangeExt.getRegionAddress(), cuMemberRetailRangeExt));
|
||||||
|
|
||||||
// 计算区域奖
|
// 计算区域奖
|
||||||
CuMemberBonusDetail cuMemberBonusDetail = calculateRetailAreaBonus(countyRangeExtMap, saOrderExt, bonusConfigDTO, currentPeriod, memberRangeExtMap, cuMemberBonusMap);
|
CuMemberBonusDetail cuMemberBonusDetail = calculateRetailAreaBonus(countyRangeExtMap, bonusConfigDTO, currentPeriod, memberRangeExtMap, cuMemberBonusMap, saOrderExt);
|
||||||
if (cuMemberBonusDetail != null) {
|
if (cuMemberBonusDetail != null) {
|
||||||
cuMemberBonusDetailList.add(cuMemberBonusDetail);
|
cuMemberBonusDetailList.add(cuMemberBonusDetail);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// 回退会员等级
|
// 回退会员等级
|
||||||
iCuMemberGradeService.updateCuMemberGrade(secondRangeTableName, saOrderExt.getPkId());
|
iCuMemberGradeService.updateCuMemberGrade(secondRangeTableName, saOrderExt.getPkId());
|
||||||
if (cuMemberGradeList.size() > 0) {
|
if (cuMemberGradeList.size() > 0) {
|
||||||
|
@ -214,32 +214,43 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 实时计算当月奖衔
|
* 实时计算撤单数据(业绩、盒数、等级、奖衔、日奖)
|
||||||
*/
|
*/
|
||||||
void calculateCuMemberBackRetailIncome(SaOrderExt saOrderExt, BonusConfigDTO bonusConfigDTO,
|
void calculateCuMemberBackRetailIncome(SaOrderExt saOrderExt, BonusConfigDTO bonusConfigDTO,
|
||||||
String secondRangeTableName, int beforePeriod, int currentPeriod) {
|
String secondRangeTableName, int beforePeriod, int currentPeriod) {
|
||||||
// 当天的撤单
|
// 当天的撤单
|
||||||
List<CuMemberRetailRangeExt> memberRetailRangeExtList;
|
List<CuMemberRetailRangeExt> memberRetailRangeExtList;
|
||||||
String rangeTableName = TableNameConstants.CU_MEMBER_RETAIL_RANGE + beforePeriod;
|
String rangeTableName = TableNameConstants.CU_MEMBER_RETAIL_RANGE + beforePeriod;
|
||||||
|
|
||||||
if (DateUtils.isSameDay(saOrderExt.getPayTime(), DateUtils.currentDate())) {
|
if (DateUtils.isSameDay(saOrderExt.getPayTime(), DateUtils.currentDate())) {
|
||||||
// 按照血缘,查询该会员所有伞上会员
|
// 当天撤单
|
||||||
|
// 实时网体查询血缘伞上会员,更新秒结表等级、奖衔
|
||||||
iCuMemberRetailRangeService.mergeMemberRetailGradeByMember(secondRangeTableName, saOrderExt.getPkMember());
|
iCuMemberRetailRangeService.mergeMemberRetailGradeByMember(secondRangeTableName, saOrderExt.getPkMember());
|
||||||
// 恢复奖衔
|
// 恢复秒结表奖衔
|
||||||
iCuMemberAwardsService.mergeCuMemberBackAwards(secondRangeTableName, saOrderExt.getPkMember(), currentPeriod);
|
iCuMemberAwardsService.mergeCuMemberBackAwards(secondRangeTableName, saOrderExt.getPkMember(), currentPeriod);
|
||||||
|
// 查询 昨天日结 + 今天秒结 血缘上会员结算数据
|
||||||
memberRetailRangeExtList = iCuMemberRetailRangeService.queryCuMemberSecondRangeParent(rangeTableName, secondRangeTableName, saOrderExt.getPkMember());
|
memberRetailRangeExtList = iCuMemberRetailRangeService.queryCuMemberSecondRangeParent(rangeTableName, secondRangeTableName, saOrderExt.getPkMember());
|
||||||
} else {
|
} else {
|
||||||
|
// 非当天撤单
|
||||||
rangeTableName = TableNameConstants.CU_MEMBER_RETAIL_RANGE + currentPeriod;
|
rangeTableName = TableNameConstants.CU_MEMBER_RETAIL_RANGE + currentPeriod;
|
||||||
List<SaOrderExt> retailOrderList = new ArrayList<>();
|
List<SaOrderExt> retailOrderList = new ArrayList<>();
|
||||||
retailOrderList.add(saOrderExt);
|
retailOrderList.add(saOrderExt);
|
||||||
|
// 实时网体查询血缘上会员,更新订单支付日结表等级、奖衔
|
||||||
iCuMemberRetailRangeService.mergeMemberRetailGradeByMember(rangeTableName, saOrderExt.getPkMember());
|
iCuMemberRetailRangeService.mergeMemberRetailGradeByMember(rangeTableName, saOrderExt.getPkMember());
|
||||||
// 恢复奖衔
|
// 恢复日结表奖衔
|
||||||
iCuMemberAwardsService.mergeCuMemberBackAwards(rangeTableName, saOrderExt.getPkMember(), beforePeriod);
|
iCuMemberAwardsService.mergeCuMemberBackAwards(rangeTableName, saOrderExt.getPkMember(), beforePeriod);
|
||||||
|
// 查询 订单下单日结 血缘上会员结算数据
|
||||||
memberRetailRangeExtList = iCuMemberRetailRangeService.queryCuMemberRetailRangeParent(rangeTableName, retailOrderList);
|
memberRetailRangeExtList = iCuMemberRetailRangeService.queryCuMemberRetailRangeParent(rangeTableName, retailOrderList);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 会员结算map(key:会员ID,value:结算扩展)
|
||||||
Map<Long, CuMemberRetailRangeExt> memberRangeExtMap = new HashMap<>();
|
Map<Long, CuMemberRetailRangeExt> memberRangeExtMap = new HashMap<>();
|
||||||
|
|
||||||
|
// 团队升级等级map(key:等级值,value:等级对象)
|
||||||
Map<Integer, BdGrade> retailTeamGradeMap = new TreeMap<>();
|
Map<Integer, BdGrade> retailTeamGradeMap = new TreeMap<>();
|
||||||
|
// 等级map(key:等级ID,value:等级对象)
|
||||||
Map<Integer, BdGrade> gradeIdMap = new HashMap<>();
|
Map<Integer, BdGrade> gradeIdMap = new HashMap<>();
|
||||||
|
// 等级列表
|
||||||
List<BdGrade> retaiGradeList = bonusConfigDTO.getRetaiGradeList();
|
List<BdGrade> retaiGradeList = bonusConfigDTO.getRetaiGradeList();
|
||||||
// 等级
|
// 等级
|
||||||
for (BdGrade bdGrade : retaiGradeList) {
|
for (BdGrade bdGrade : retaiGradeList) {
|
||||||
|
@ -248,18 +259,20 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
||||||
}
|
}
|
||||||
gradeIdMap.put(bdGrade.getPkId(), bdGrade);
|
gradeIdMap.put(bdGrade.getPkId(), bdGrade);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 奖衔map(key:奖衔值,value:奖衔对象)
|
||||||
Map<Integer, BdAwards> retailAwardsMap = new HashMap<>();
|
Map<Integer, BdAwards> retailAwardsMap = new HashMap<>();
|
||||||
List<BdAwards> awardsList = bonusConfigDTO.getAwardsList();
|
List<BdAwards> awardsList = bonusConfigDTO.getAwardsList();
|
||||||
awardsList.forEach(bdAwards -> retailAwardsMap.put(bdAwards.getAwardsValue(), bdAwards));
|
awardsList.forEach(bdAwards -> retailAwardsMap.put(bdAwards.getAwardsValue(), bdAwards));
|
||||||
|
|
||||||
for (CuMemberRetailRangeExt cuMemberRetailRangeExt : memberRetailRangeExtList) {
|
for (CuMemberRetailRangeExt cuMemberRetailRangeExt : memberRetailRangeExtList) {
|
||||||
if (!memberRangeExtMap.containsKey(cuMemberRetailRangeExt.getPkMember())) {
|
if (!memberRangeExtMap.containsKey(cuMemberRetailRangeExt.getPkMember())) {
|
||||||
cuMemberRetailRangeExt.setBuyNum(0);
|
cuMemberRetailRangeExt.setBuyNum(0);
|
||||||
// 转换等级购买数量
|
|
||||||
memberRangeExtMap.put(cuMemberRetailRangeExt.getPkMember(), cuMemberRetailRangeExt);
|
memberRangeExtMap.put(cuMemberRetailRangeExt.getPkMember(), cuMemberRetailRangeExt);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Map<String, CuMemberGrade> cuMemberGradeMap = new HashMap<>();
|
|
||||||
Map<String, CuMemberAwards> cuMemberAwardsMap = new HashMap<>();
|
// 计算自消费奖衔
|
||||||
CuMemberRetailRangeExt sourceMemberRangeExt = memberRangeExtMap.get(saOrderExt.getPkMember());
|
CuMemberRetailRangeExt sourceMemberRangeExt = memberRangeExtMap.get(saOrderExt.getPkMember());
|
||||||
// 先算等级 注册、升级计算等级
|
// 先算等级 注册、升级计算等级
|
||||||
int boxNum = 0;
|
int boxNum = 0;
|
||||||
|
@ -271,23 +284,32 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
saOrderExt.setBoxNum(boxNum);
|
||||||
|
|
||||||
|
// 订单业绩
|
||||||
BigDecimal orderAchieve = saOrderExt.getOrderAchieve();
|
BigDecimal orderAchieve = saOrderExt.getOrderAchieve();
|
||||||
// if (saOrderExt.getOrderType().equals(EOrderType.RETAIL_REGISTER.getValue()) ||
|
if (EOrderType.RETAIL_REPURCHASE.getValue() == saOrderExt.getOrderType()
|
||||||
// saOrderExt.getOrderType().equals(EOrderType.RETAIL_UPGRADE.getValue())) {
|
|| EOrderType.RETAIL_CONSUME.getValue() == saOrderExt.getOrderType()
|
||||||
// orderAchieve = BigDecimal.ZERO;
|
) {
|
||||||
// }else{
|
// 复购、重消,盒数、业绩算个人累计数据(盒数、业绩)
|
||||||
//
|
sourceMemberRangeExt.setConsumeBoxNum(sourceMemberRangeExt.getConsumeBoxNum() - boxNum);
|
||||||
// }
|
sourceMemberRangeExt.setNewBoxNum(sourceMemberRangeExt.getNewBoxNum() - boxNum);
|
||||||
// 个人累计消费pv
|
sourceMemberRangeExt.setConsumePv(ComputeUtil.computeSubtract(sourceMemberRangeExt.getConsumePv(), orderAchieve));
|
||||||
sourceMemberRangeExt.setConsumeBoxNum(sourceMemberRangeExt.getConsumeBoxNum() - boxNum);
|
sourceMemberRangeExt.setMonthConsumePv(ComputeUtil.computeSubtract(sourceMemberRangeExt.getMonthConsumePv(), orderAchieve));
|
||||||
sourceMemberRangeExt.setNewBoxNum(sourceMemberRangeExt.getNewBoxNum() - boxNum);
|
sourceMemberRangeExt.setNewConsumePv(ComputeUtil.computeSubtract(sourceMemberRangeExt.getNewConsumePv(), orderAchieve));
|
||||||
sourceMemberRangeExt.setConsumePv(ComputeUtil.computeSubtract(sourceMemberRangeExt.getConsumePv(), orderAchieve));
|
}
|
||||||
sourceMemberRangeExt.setMonthConsumePv(ComputeUtil.computeSubtract(sourceMemberRangeExt.getMonthConsumePv(), orderAchieve));
|
|
||||||
sourceMemberRangeExt.setNewConsumePv(ComputeUtil.computeSubtract(sourceMemberRangeExt.getNewConsumePv(), orderAchieve));
|
// 会员等级map
|
||||||
// 团队业绩,计算奖衔
|
Map<String, CuMemberGrade> cuMemberGradeMap = new HashMap<>();
|
||||||
|
// 会员奖衔map
|
||||||
|
Map<String, CuMemberAwards> cuMemberAwardsMap = new HashMap<>();
|
||||||
|
// 计算自己等级、奖衔等
|
||||||
calculateBackGrade(currentPeriod, memberRangeExtMap, rangeTableName, saOrderExt, retailTeamGradeMap, retailAwardsMap, secondRangeTableName, cuMemberGradeMap, cuMemberAwardsMap, sourceMemberRangeExt);
|
calculateBackGrade(currentPeriod, memberRangeExtMap, rangeTableName, saOrderExt, retailTeamGradeMap, retailAwardsMap, secondRangeTableName, cuMemberGradeMap, cuMemberAwardsMap, sourceMemberRangeExt);
|
||||||
|
// 计算团队业绩、盒数,计算等级、奖衔
|
||||||
List<CuMemberRetailRangeExt> cuMemberRetailRangeExtList = calculateRetailBackRangeGradeAwards(currentPeriod, memberRangeExtMap, rangeTableName, saOrderExt, retailTeamGradeMap, retailAwardsMap, secondRangeTableName, boxNum, cuMemberGradeMap, cuMemberAwardsMap);
|
List<CuMemberRetailRangeExt> cuMemberRetailRangeExtList = calculateRetailBackRangeGradeAwards(currentPeriod, memberRangeExtMap, rangeTableName, saOrderExt, retailTeamGradeMap, retailAwardsMap, secondRangeTableName, boxNum, cuMemberGradeMap, cuMemberAwardsMap);
|
||||||
cuMemberRetailRangeExtList.add(sourceMemberRangeExt);
|
cuMemberRetailRangeExtList.add(sourceMemberRangeExt);
|
||||||
|
|
||||||
|
|
||||||
// 查询期间的等级和奖衔
|
// 查询期间的等级和奖衔
|
||||||
List<CuMemberGrade> memberGradeList = iCuMemberGradeService.queryCuMemberGrade(cuMemberRetailRangeExtList, currentPeriod);
|
List<CuMemberGrade> memberGradeList = iCuMemberGradeService.queryCuMemberGrade(cuMemberRetailRangeExtList, currentPeriod);
|
||||||
// 查询最大的手动奖衔
|
// 查询最大的手动奖衔
|
||||||
|
@ -409,8 +431,6 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
||||||
// 更新网体
|
// 更新网体
|
||||||
iCuMemberRetailRangeService.mergeMemberRetailRangeByYesterday(settleEndDate, rangeTableName, yesterdayRangeTableName, isSameMonth);
|
iCuMemberRetailRangeService.mergeMemberRetailRangeByYesterday(settleEndDate, rangeTableName, yesterdayRangeTableName, isSameMonth);
|
||||||
|
|
||||||
//////////////// TODO //////////////////////
|
|
||||||
|
|
||||||
// 回退历史注水
|
// 回退历史注水
|
||||||
iCuMemberRetailRangeService.mergeCuMemberRetailBackBoxBySpecial(rangeTableName, yesterdayRangeTableName, period);
|
iCuMemberRetailRangeService.mergeCuMemberRetailBackBoxBySpecial(rangeTableName, yesterdayRangeTableName, period);
|
||||||
// 更新注水
|
// 更新注水
|
||||||
|
@ -426,7 +446,6 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
||||||
|
|
||||||
// 会员结算map(key:会员ID,value:结算扩展)
|
// 会员结算map(key:会员ID,value:结算扩展)
|
||||||
Map<Long, CuMemberRetailRangeExt> memberRangeExtMap = new HashMap<>();
|
Map<Long, CuMemberRetailRangeExt> memberRangeExtMap = new HashMap<>();
|
||||||
|
|
||||||
// 购买升级等级map(key:等级值,value:等级对象)
|
// 购买升级等级map(key:等级值,value:等级对象)
|
||||||
Map<Integer, BdGrade> retaiBuyGradeMap = new TreeMap<>();
|
Map<Integer, BdGrade> retaiBuyGradeMap = new TreeMap<>();
|
||||||
// 团队升级等级map(key:等级值,value:等级对象)
|
// 团队升级等级map(key:等级值,value:等级对象)
|
||||||
|
@ -537,31 +556,35 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
||||||
|
|
||||||
|
|
||||||
// TODO new 奖金处理
|
// TODO new 奖金处理
|
||||||
// 计算奖金 计算极差平级收益
|
// 计算奖金 直推级差 + 平级收益
|
||||||
for (SaOrderWaresExt saOrderItems : saOrderExt.getOrderWaresExtList()) {
|
if ((EOrderType.RETAIL_REGISTER.getValue() == saOrderExt.getOrderType()
|
||||||
for (String waresCode : RetailProductConstants.ALL_BOX_WARES_LIST) {
|
|| EOrderType.RETAIL_UPGRADE.getValue() == saOrderExt.getOrderType())
|
||||||
if (saOrderItems.getWaresCode() != null && saOrderItems.getWaresCode().equals(waresCode)) {
|
&& boxNum > 0
|
||||||
|
) {
|
||||||
|
// 注册或升级订单并且存在盒数产品,才有 直推级差收益 和 平级收益
|
||||||
|
for (SaOrderWaresExt saOrderItems : saOrderExt.getOrderWaresExtList()) {
|
||||||
|
// 直推级差 + 平级收益
|
||||||
|
cuMemberBonusRangeList.addAll(calculateRetailRangeBonus(memberRangeExtMap, cuMemberBonusMap, gradeMap, bonusConfigDTO, period, saOrderItems, saOrderExt));
|
||||||
|
|
||||||
|
// 计算完奖金算等级
|
||||||
|
if (EOrderType.RETAIL_REGISTER.getValue() == saOrderExt.getOrderType() ||
|
||||||
|
EOrderType.RETAIL_UPGRADE.getValue() == saOrderExt.getOrderType() ||
|
||||||
|
EOrderType.RETAIL_REPURCHASE.getValue() == saOrderExt.getOrderType()) {
|
||||||
|
// 计算个人等级,消费等级
|
||||||
int waresQuantity = saOrderItems.getWaresQuantity();
|
int waresQuantity = saOrderItems.getWaresQuantity();
|
||||||
cuMemberBonusRangeList.addAll(calculateRetailRangeBonus(memberRangeExtMap, cuMemberBonusMap, gradeMap, bonusConfigDTO, period, saOrderItems, saOrderExt));
|
int buyBoxNum = sourceMemberRangeExt.getBuyNum() + waresQuantity;
|
||||||
// 计算完奖金算等级
|
if (memberLevelMap.containsKey(saOrderExt.getPkId())) {
|
||||||
if (EOrderType.RETAIL_REGISTER.getValue() == saOrderExt.getOrderType() ||
|
CuMemberLevel cuMemberLevel = memberLevelMap.get(saOrderExt.getPkId());
|
||||||
EOrderType.RETAIL_UPGRADE.getValue() == saOrderExt.getOrderType() ||
|
if (gradeIdMap.containsKey(cuMemberLevel.getNewLevel())) {
|
||||||
EOrderType.RETAIL_REPURCHASE.getValue() == saOrderExt.getOrderType()) {
|
BdGrade bdGrade = gradeIdMap.get(cuMemberLevel.getNewLevel());
|
||||||
// 计算个人等级,消费等级
|
if (bdGrade.getGradeValue() > sourceMemberRangeExt.getGradeValue()) {
|
||||||
int buyBoxNum = sourceMemberRangeExt.getBuyNum() + waresQuantity;
|
sourceMemberRangeExt.setGradeValue(bdGrade.getGradeValue());
|
||||||
if (memberLevelMap.containsKey(saOrderExt.getPkId())) {
|
sourceMemberRangeExt.setPkGrade(bdGrade.getPkId());
|
||||||
CuMemberLevel cuMemberLevel = memberLevelMap.get(saOrderExt.getPkId());
|
sourceMemberRangeExt.setGradeName(bdGrade.getGradeName());
|
||||||
if (gradeIdMap.containsKey(cuMemberLevel.getNewLevel())) {
|
if (sourceMemberRangeExt.getSameDate() == EYesNo.NO.getIntValue()) {
|
||||||
BdGrade bdGrade = gradeIdMap.get(cuMemberLevel.getNewLevel());
|
sourceMemberRangeExt.setBuyNum(bdGrade.getBoxNumber());
|
||||||
if (bdGrade.getGradeValue() > sourceMemberRangeExt.getGradeValue()) {
|
} else {
|
||||||
sourceMemberRangeExt.setGradeValue(bdGrade.getGradeValue());
|
sourceMemberRangeExt.setBuyNum(buyBoxNum);
|
||||||
sourceMemberRangeExt.setPkGrade(bdGrade.getPkId());
|
|
||||||
sourceMemberRangeExt.setGradeName(bdGrade.getGradeName());
|
|
||||||
if (sourceMemberRangeExt.getSameDate() == EYesNo.NO.getIntValue()) {
|
|
||||||
sourceMemberRangeExt.setBuyNum(bdGrade.getBoxNumber());
|
|
||||||
} else {
|
|
||||||
sourceMemberRangeExt.setBuyNum(buyBoxNum);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -569,11 +592,9 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (saOrderExt.getOrderType().equals(EOrderType.RETAIL_CONSUME.getValue())) {
|
|
||||||
continue;
|
// 计算区域奖
|
||||||
}
|
CuMemberBonusDetail cuMemberBonusDetail = calculateRetailAreaBonus(countyRangeExtMap, bonusConfigDTO, period, memberRangeExtMap, cuMemberBonusMap, saOrderExt);
|
||||||
// 计算区域奖
|
|
||||||
CuMemberBonusDetail cuMemberBonusDetail = calculateRetailAreaBonus(countyRangeExtMap, saOrderExt, bonusConfigDTO, period, memberRangeExtMap, cuMemberBonusMap);
|
|
||||||
if (cuMemberBonusDetail != null) {
|
if (cuMemberBonusDetail != null) {
|
||||||
cuMemberBonusDetailList.add(cuMemberBonusDetail);
|
cuMemberBonusDetailList.add(cuMemberBonusDetail);
|
||||||
}
|
}
|
||||||
|
@ -926,7 +947,6 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
||||||
// 如果等级值 大于 当前会员等级值 并且 等级要求累计盒数 小于等于 团队累计盒数 + 累计消费盒数,则可以进行升级
|
// 如果等级值 大于 当前会员等级值 并且 等级要求累计盒数 小于等于 团队累计盒数 + 累计消费盒数,则可以进行升级
|
||||||
if (bdGrade.getGradeValue() > targetMemberRangeExt.getGradeValue()
|
if (bdGrade.getGradeValue() > targetMemberRangeExt.getGradeValue()
|
||||||
&& bdGrade.getBoxTotal() <= (targetMemberRangeExt.getTeamBoxNum() + targetMemberRangeExt.getConsumeBoxNum())) {
|
&& bdGrade.getBoxTotal() <= (targetMemberRangeExt.getTeamBoxNum() + targetMemberRangeExt.getConsumeBoxNum())) {
|
||||||
|
|
||||||
// 验证小区,计算小区累计盒数 查询伞下会员
|
// 验证小区,计算小区累计盒数 查询伞下会员
|
||||||
List<CuMemberRetailRangeExt> cuMemberRangeExtList;
|
List<CuMemberRetailRangeExt> cuMemberRangeExtList;
|
||||||
if (secondRangeTableName != null) {
|
if (secondRangeTableName != null) {
|
||||||
|
@ -982,7 +1002,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
||||||
// 先验证累计业绩
|
// 先验证累计业绩
|
||||||
// new 升级奖衔判断为当月累计业绩,累计业绩为团队业绩 + 个人消费业绩
|
// new 升级奖衔判断为当月累计业绩,累计业绩为团队业绩 + 个人消费业绩
|
||||||
if (ComputeUtil.compareValue(ComputeUtil.computeAdd(targetMemberRangeExt.getTeamMonthPv(), targetMemberRangeExt.getMonthConsumePv()), bdAwards.getTotalCheck())) {
|
if (ComputeUtil.compareValue(ComputeUtil.computeAdd(targetMemberRangeExt.getTeamMonthPv(), targetMemberRangeExt.getMonthConsumePv()), bdAwards.getTotalCheck())) {
|
||||||
// 累计业绩足够
|
// 累计业绩足够,即可升奖衔
|
||||||
// BigDecimal consumeBigPv = BigDecimal.ZERO;
|
// BigDecimal consumeBigPv = BigDecimal.ZERO;
|
||||||
// if (ComputeUtil.compareValue(bdAwards.getCommunityCheck())) {
|
// if (ComputeUtil.compareValue(bdAwards.getCommunityCheck())) {
|
||||||
// // 验证小区,计算小区业绩
|
// // 验证小区,计算小区业绩
|
||||||
|
@ -1002,12 +1022,11 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
||||||
// }
|
// }
|
||||||
// }
|
// }
|
||||||
// }
|
// }
|
||||||
// // new 新制度奖衔不校验小区
|
|
||||||
// BigDecimal smallAreaPv = ComputeUtil.computeSubtract(ComputeUtil.computeAdd(targetMemberRangeExt.getTeamMonthPv(), targetMemberRangeExt.getMonthConsumePv()), consumeBigPv);
|
// BigDecimal smallAreaPv = ComputeUtil.computeSubtract(ComputeUtil.computeAdd(targetMemberRangeExt.getTeamMonthPv(), targetMemberRangeExt.getMonthConsumePv()), consumeBigPv);
|
||||||
// if (ComputeUtil.compareValue(smallAreaPv, bdAwards.getCommunityCheck())) {
|
// if (ComputeUtil.compareValue(smallAreaPv, bdAwards.getCommunityCheck())) {
|
||||||
cuMemberAwardsList.add(getCuMemberRetailAwards(targetMemberRangeExt, period, saOrderExt, bdAwards, EAwardsType.RANGE_TYPE.getValue()));
|
cuMemberAwardsList.add(getCuMemberRetailAwards(targetMemberRangeExt, period, saOrderExt, bdAwards, EAwardsType.RANGE_TYPE.getValue()));
|
||||||
targetMemberRangeExt.setAwardsValue(bdAwards.getAwardsValue());
|
|
||||||
targetMemberRangeExt.setPkAwards(bdAwards.getPkId());
|
targetMemberRangeExt.setPkAwards(bdAwards.getPkId());
|
||||||
|
targetMemberRangeExt.setAwardsValue(bdAwards.getAwardsValue());
|
||||||
targetMemberRangeExt.setAwardsName(bdAwards.getAwardsName());
|
targetMemberRangeExt.setAwardsName(bdAwards.getAwardsName());
|
||||||
continue;
|
continue;
|
||||||
// }
|
// }
|
||||||
|
@ -1075,26 +1094,31 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
||||||
public List<CuMemberRetailRangeExt> calculateRetailBackRangeGradeAwards(Integer period, Map<Long, CuMemberRetailRangeExt> memberRangeExtMap, String rangeTableName, SaOrderExt saOrderExt,
|
public List<CuMemberRetailRangeExt> calculateRetailBackRangeGradeAwards(Integer period, Map<Long, CuMemberRetailRangeExt> memberRangeExtMap, String rangeTableName, SaOrderExt saOrderExt,
|
||||||
Map<Integer, BdGrade> retailTeamGradeMap, Map<Integer, BdAwards> retailAwardsMap, String secondRangeTableName,
|
Map<Integer, BdGrade> retailTeamGradeMap, Map<Integer, BdAwards> retailAwardsMap, String secondRangeTableName,
|
||||||
Integer boxNum, Map<String, CuMemberGrade> cuMemberGradeMap, Map<String, CuMemberAwards> cuMemberAwardsMap) {
|
Integer boxNum, Map<String, CuMemberGrade> cuMemberGradeMap, Map<String, CuMemberAwards> cuMemberAwardsMap) {
|
||||||
CuMemberRetailRangeExt sourceMemberRangeExt = memberRangeExtMap.get(saOrderExt.getPkMember());
|
|
||||||
CuMemberRetailRangeExt targetMemberRangeExt = memberRangeExtMap.get(sourceMemberRangeExt.getPkParent());
|
|
||||||
List<CuMemberRetailRangeExt> cuMemberRetailRangeExtList = new ArrayList<>();
|
List<CuMemberRetailRangeExt> cuMemberRetailRangeExtList = new ArrayList<>();
|
||||||
|
// 订单会员
|
||||||
|
CuMemberRetailRangeExt sourceMemberRangeExt = memberRangeExtMap.get(saOrderExt.getPkMember());
|
||||||
|
// 订单会员的推荐人
|
||||||
|
CuMemberRetailRangeExt targetMemberRangeExt = memberRangeExtMap.get(sourceMemberRangeExt.getPkParent());
|
||||||
|
|
||||||
BigDecimal orderAchieve = saOrderExt.getOrderAchieve();
|
BigDecimal orderAchieve = saOrderExt.getOrderAchieve();
|
||||||
BigDecimal orderAmount = saOrderExt.getOrderAmount();
|
BigDecimal orderAmount = saOrderExt.getOrderAmount();
|
||||||
// 累计业绩
|
|
||||||
targetMemberRangeExt.setTeamConsumeAmount(ComputeUtil.computeSubtract(targetMemberRangeExt.getTeamConsumeAmount(), orderAmount));
|
|
||||||
targetMemberRangeExt.setTeamConsumePv(ComputeUtil.computeSubtract(targetMemberRangeExt.getTeamConsumePv(), orderAchieve));
|
|
||||||
targetMemberRangeExt.setTeamMonthAmount(ComputeUtil.computeSubtract(targetMemberRangeExt.getTeamMonthAmount(), orderAmount));
|
|
||||||
targetMemberRangeExt.setTeamMonthPv(ComputeUtil.computeSubtract(targetMemberRangeExt.getTeamMonthPv(), orderAchieve));
|
|
||||||
targetMemberRangeExt.setTeamNewAmount(ComputeUtil.computeSubtract(targetMemberRangeExt.getTeamNewAmount(), orderAmount));
|
|
||||||
targetMemberRangeExt.setTeamNewPv(ComputeUtil.computeSubtract(targetMemberRangeExt.getTeamNewPv(), orderAchieve));
|
|
||||||
while (targetMemberRangeExt != null) {
|
while (targetMemberRangeExt != null) {
|
||||||
// 累计盒数
|
// 激活的账号才能累计业绩和盒数(有注册、升级订单)
|
||||||
if (targetMemberRangeExt.getEnableStatus() == EYesNo.YES.getIntValue()) {
|
if (targetMemberRangeExt.getEnableStatus() == EYesNo.YES.getIntValue()) {
|
||||||
|
// 累计业绩
|
||||||
|
targetMemberRangeExt.setTeamConsumeAmount(ComputeUtil.computeSubtract(targetMemberRangeExt.getTeamConsumeAmount(), orderAmount));
|
||||||
|
targetMemberRangeExt.setTeamConsumePv(ComputeUtil.computeSubtract(targetMemberRangeExt.getTeamConsumePv(), orderAchieve));
|
||||||
|
targetMemberRangeExt.setTeamMonthAmount(ComputeUtil.computeSubtract(targetMemberRangeExt.getTeamMonthAmount(), orderAmount));
|
||||||
|
targetMemberRangeExt.setTeamMonthPv(ComputeUtil.computeSubtract(targetMemberRangeExt.getTeamMonthPv(), orderAchieve));
|
||||||
|
targetMemberRangeExt.setTeamNewAmount(ComputeUtil.computeSubtract(targetMemberRangeExt.getTeamNewAmount(), orderAmount));
|
||||||
|
targetMemberRangeExt.setTeamNewPv(ComputeUtil.computeSubtract(targetMemberRangeExt.getTeamNewPv(), orderAchieve));
|
||||||
|
// 累计盒数
|
||||||
targetMemberRangeExt.setTeamBoxNum(targetMemberRangeExt.getTeamBoxNum() - boxNum);
|
targetMemberRangeExt.setTeamBoxNum(targetMemberRangeExt.getTeamBoxNum() - boxNum);
|
||||||
targetMemberRangeExt.setMonthBoxNum(targetMemberRangeExt.getMonthBoxNum() - boxNum);
|
targetMemberRangeExt.setMonthBoxNum(targetMemberRangeExt.getMonthBoxNum() - boxNum);
|
||||||
targetMemberRangeExt.setTeamNewBoxNum(targetMemberRangeExt.getTeamNewBoxNum() - boxNum);
|
targetMemberRangeExt.setTeamNewBoxNum(targetMemberRangeExt.getTeamNewBoxNum() - boxNum);
|
||||||
cuMemberRetailRangeExtList.add(targetMemberRangeExt);
|
// 计算等级
|
||||||
calculateBackGrade(period, memberRangeExtMap, rangeTableName, saOrderExt, retailTeamGradeMap, retailAwardsMap, secondRangeTableName, cuMemberGradeMap, cuMemberAwardsMap, targetMemberRangeExt);
|
calculateBackGrade(period, memberRangeExtMap, rangeTableName, saOrderExt, retailTeamGradeMap, retailAwardsMap, secondRangeTableName, cuMemberGradeMap, cuMemberAwardsMap, targetMemberRangeExt);
|
||||||
|
cuMemberRetailRangeExtList.add(targetMemberRangeExt);
|
||||||
}
|
}
|
||||||
// 计算等级
|
// 计算等级
|
||||||
targetMemberRangeExt = memberRangeExtMap.get(targetMemberRangeExt.getPkParent());
|
targetMemberRangeExt = memberRangeExtMap.get(targetMemberRangeExt.getPkParent());
|
||||||
|
@ -1102,34 +1126,51 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
||||||
return cuMemberRetailRangeExtList;
|
return cuMemberRetailRangeExtList;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void calculateBackGrade(Integer period, Map<Long, CuMemberRetailRangeExt> memberRangeExtMap, String rangeTableName, SaOrderExt saOrderExt, Map<Integer, BdGrade> retailTeamGradeMap, Map<Integer, BdAwards> retailAwardsMap, String secondRangeTableName, Map<String, CuMemberGrade> cuMemberGradeMap, Map<String, CuMemberAwards> cuMemberAwardsMap, CuMemberRetailRangeExt targetMemberRangeExt) {
|
private void calculateBackGrade(Integer period, Map<Long, CuMemberRetailRangeExt> memberRangeExtMap, String rangeTableName,
|
||||||
|
SaOrderExt saOrderExt, Map<Integer, BdGrade> retailTeamGradeMap, Map<Integer, BdAwards> retailAwardsMap,
|
||||||
|
String secondRangeTableName, Map<String, CuMemberGrade> cuMemberGradeMap, Map<String, CuMemberAwards> cuMemberAwardsMap,
|
||||||
|
CuMemberRetailRangeExt targetMemberRangeExt) {
|
||||||
|
// 遍历团队等级map(V4,V5)
|
||||||
for (Integer gradeValue : retailTeamGradeMap.keySet()) {
|
for (Integer gradeValue : retailTeamGradeMap.keySet()) {
|
||||||
BdGrade bdGrade = retailTeamGradeMap.get(gradeValue);
|
BdGrade bdGrade = retailTeamGradeMap.get(gradeValue);
|
||||||
|
|
||||||
if (bdGrade.getBoxTotal() <= (targetMemberRangeExt.getTeamBoxNum() + targetMemberRangeExt.getConsumeBoxNum())) {
|
if (bdGrade.getBoxTotal() <= (targetMemberRangeExt.getTeamBoxNum() + targetMemberRangeExt.getConsumeBoxNum())) {
|
||||||
// 验证小区,计算小区累计盒数 查询伞下会员
|
// 验证小区,计算小区累计盒数 查询伞下会员
|
||||||
List<CuMemberRetailRangeExt> cuMemberRangeExtList;
|
List<CuMemberRetailRangeExt> cuMemberRangeExtList;
|
||||||
if (secondRangeTableName != null) {
|
if (secondRangeTableName != null) {
|
||||||
|
// 秒结表关联昨日结算表,查询订单会员直推数据
|
||||||
cuMemberRangeExtList = iCuMemberRetailRangeService.queryCuMemberSecondRangeExtByParent(rangeTableName, secondRangeTableName, targetMemberRangeExt.getPkMember());
|
cuMemberRangeExtList = iCuMemberRetailRangeService.queryCuMemberSecondRangeExtByParent(rangeTableName, secondRangeTableName, targetMemberRangeExt.getPkMember());
|
||||||
} else {
|
} else {
|
||||||
|
// 昨日结算表,查询订单会员直推数据
|
||||||
cuMemberRangeExtList = iCuMemberRetailRangeService.queryCuMemberRetailRangeExtByParent(rangeTableName, targetMemberRangeExt.getPkMember());
|
cuMemberRangeExtList = iCuMemberRetailRangeService.queryCuMemberRetailRangeExtByParent(rangeTableName, targetMemberRangeExt.getPkMember());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 有注水的,大区无限大,新增全算小区
|
||||||
|
// 大区盒数
|
||||||
int bigBoxNum = targetMemberRangeExt.getConsumeBoxNum();
|
int bigBoxNum = targetMemberRangeExt.getConsumeBoxNum();
|
||||||
if (targetMemberRangeExt.getBigBoxNum() > 0) {
|
if (targetMemberRangeExt.getBigBoxNum() > 0) {
|
||||||
|
// 大区存在注水盒数,直接使用大区注水盒数
|
||||||
bigBoxNum = targetMemberRangeExt.getBigBoxNum();
|
bigBoxNum = targetMemberRangeExt.getBigBoxNum();
|
||||||
} else {
|
} else {
|
||||||
|
// 秒结 cuMemberRangeExtList 为直推会员数据, memberRangeExtMap 为会员伞上数据,这块应该永远不会处理
|
||||||
|
// 日结这块处理直推判断大小区没问题
|
||||||
for (CuMemberRetailRangeExt cuMemberRetailRangeExt : cuMemberRangeExtList) {
|
for (CuMemberRetailRangeExt cuMemberRetailRangeExt : cuMemberRangeExtList) {
|
||||||
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();
|
- cuMemberRetailRangeExt.getBigBoxNum() - cuMemberRetailRangeExt.getSmallBoxNum();
|
||||||
if (areaBoxNum > bigBoxNum) {
|
if (areaBoxNum > bigBoxNum) {
|
||||||
|
// 实际订单累计盒数 大于 累计消费盒数,实际订单累计盒数为大区
|
||||||
bigBoxNum = areaBoxNum;
|
bigBoxNum = areaBoxNum;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// 小区盒数
|
||||||
int smallBoxNum = targetMemberRangeExt.getTeamBoxNum() + targetMemberRangeExt.getConsumeBoxNum() - bigBoxNum;
|
int smallBoxNum = targetMemberRangeExt.getTeamBoxNum() + targetMemberRangeExt.getConsumeBoxNum() - bigBoxNum;
|
||||||
if (smallBoxNum >= bdGrade.getBoxSmallTotal()) {
|
if (smallBoxNum >= bdGrade.getBoxSmallTotal()) {
|
||||||
|
// 小区盒数 大于等于 升级小区盒数
|
||||||
CuMemberGrade cuMemberGrade = getCuMemberGrade(period, targetMemberRangeExt, bdGrade);
|
CuMemberGrade cuMemberGrade = getCuMemberGrade(period, targetMemberRangeExt, bdGrade);
|
||||||
cuMemberGradeMap.put(cuMemberGrade.getPkMember() + "_" + cuMemberGrade.getNewLevel(), cuMemberGrade);
|
cuMemberGradeMap.put(cuMemberGrade.getPkMember() + "_" + cuMemberGrade.getNewLevel(), cuMemberGrade);
|
||||||
targetMemberRangeExt.setGradeValue(bdGrade.getGradeValue());
|
targetMemberRangeExt.setGradeValue(bdGrade.getGradeValue());
|
||||||
|
@ -1138,39 +1179,42 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// 计算奖衔
|
// 计算奖衔(荣誉级别)
|
||||||
while (true) {
|
while (true) {
|
||||||
int awardsValue = targetMemberRangeExt.getAwardsValue() + 5;
|
int awardsValue = targetMemberRangeExt.getAwardsValue() + 5;
|
||||||
if (targetMemberRangeExt.getGradeValue().equals(EGrade.S_VIP.getValue()) && retailAwardsMap.containsKey(awardsValue)) {
|
if (targetMemberRangeExt.getGradeValue().equals(EGrade.S_VIP.getValue()) && retailAwardsMap.containsKey(awardsValue)) {
|
||||||
|
// 等级达到V5 并且 存在下个奖衔,判断是否能升奖衔
|
||||||
BdAwards bdAwards = retailAwardsMap.get(awardsValue);
|
BdAwards bdAwards = retailAwardsMap.get(awardsValue);
|
||||||
// 先验证累计业绩
|
// 先验证累计业绩
|
||||||
|
// new 升级奖衔判断为当月累计业绩,累计业绩为团队业绩 + 个人消费业绩
|
||||||
if (ComputeUtil.compareValue(ComputeUtil.computeAdd(targetMemberRangeExt.getTeamMonthPv(), targetMemberRangeExt.getMonthConsumePv()), bdAwards.getTotalCheck())) {
|
if (ComputeUtil.compareValue(ComputeUtil.computeAdd(targetMemberRangeExt.getTeamMonthPv(), targetMemberRangeExt.getMonthConsumePv()), bdAwards.getTotalCheck())) {
|
||||||
// 验证小区,计算小区业绩
|
// 累计业绩足够,即可升奖衔
|
||||||
List<CuMemberRetailRangeExt> cuMemberRangeExtList;
|
// // 验证小区,计算小区业绩
|
||||||
if (secondRangeTableName != null) {
|
// List<CuMemberRetailRangeExt> cuMemberRangeExtList;
|
||||||
cuMemberRangeExtList = iCuMemberRetailRangeService.queryCuMemberSecondRangeExtByParent(rangeTableName, secondRangeTableName, targetMemberRangeExt.getPkMember());
|
// if (secondRangeTableName != null) {
|
||||||
} else {
|
// cuMemberRangeExtList = iCuMemberRetailRangeService.queryCuMemberSecondRangeExtByParent(rangeTableName, secondRangeTableName, targetMemberRangeExt.getPkMember());
|
||||||
cuMemberRangeExtList = iCuMemberRetailRangeService.queryCuMemberRetailRangeExtByParent(rangeTableName, targetMemberRangeExt.getPkMember());
|
// } else {
|
||||||
}
|
// cuMemberRangeExtList = iCuMemberRetailRangeService.queryCuMemberRetailRangeExtByParent(rangeTableName, targetMemberRangeExt.getPkMember());
|
||||||
BigDecimal consumeBigPv = BigDecimal.ZERO;
|
// }
|
||||||
for (CuMemberRetailRangeExt cuMemberRetailRangeExt : cuMemberRangeExtList) {
|
// BigDecimal consumeBigPv = BigDecimal.ZERO;
|
||||||
if (memberRangeExtMap.containsKey(cuMemberRetailRangeExt.getPkMember())) {
|
// for (CuMemberRetailRangeExt cuMemberRetailRangeExt : cuMemberRangeExtList) {
|
||||||
cuMemberRetailRangeExt = memberRangeExtMap.get(cuMemberRetailRangeExt.getPkMember());
|
// if (memberRangeExtMap.containsKey(cuMemberRetailRangeExt.getPkMember())) {
|
||||||
}
|
// cuMemberRetailRangeExt = memberRangeExtMap.get(cuMemberRetailRangeExt.getPkMember());
|
||||||
BigDecimal consumePv = ComputeUtil.computeAdd(cuMemberRetailRangeExt.getMonthConsumePv(), cuMemberRetailRangeExt.getTeamMonthPv());
|
// }
|
||||||
if (ComputeUtil.compareGreaterThan(consumePv, consumeBigPv)) {
|
// BigDecimal consumePv = ComputeUtil.computeAdd(cuMemberRetailRangeExt.getMonthConsumePv(), cuMemberRetailRangeExt.getTeamMonthPv());
|
||||||
consumeBigPv = consumePv;
|
// if (ComputeUtil.compareGreaterThan(consumePv, consumeBigPv)) {
|
||||||
}
|
// consumeBigPv = consumePv;
|
||||||
}
|
// }
|
||||||
BigDecimal smallAreaPv = ComputeUtil.computeSubtract(targetMemberRangeExt.getTeamMonthPv(), consumeBigPv);
|
// }
|
||||||
if (ComputeUtil.compareValue(smallAreaPv, bdAwards.getCommunityCheck())) {
|
// BigDecimal smallAreaPv = ComputeUtil.computeSubtract(targetMemberRangeExt.getTeamMonthPv(), consumeBigPv);
|
||||||
CuMemberAwards cuMemberRetailAwards = getCuMemberRetailAwards(targetMemberRangeExt, period, saOrderExt, bdAwards, EAwardsType.RANGE_TYPE.getValue());
|
// if (ComputeUtil.compareValue(smallAreaPv, bdAwards.getCommunityCheck())) {
|
||||||
cuMemberAwardsMap.put(cuMemberRetailAwards.getPkMember() + "_" + cuMemberRetailAwards.getNewLevel(), cuMemberRetailAwards);
|
CuMemberAwards cuMemberRetailAwards = getCuMemberRetailAwards(targetMemberRangeExt, period, saOrderExt, bdAwards, EAwardsType.RANGE_TYPE.getValue());
|
||||||
targetMemberRangeExt.setAwardsValue(bdAwards.getAwardsValue());
|
cuMemberAwardsMap.put(cuMemberRetailAwards.getPkMember() + "_" + cuMemberRetailAwards.getNewLevel(), cuMemberRetailAwards);
|
||||||
targetMemberRangeExt.setPkAwards(bdAwards.getPkId());
|
targetMemberRangeExt.setPkAwards(bdAwards.getPkId());
|
||||||
targetMemberRangeExt.setAwardsName(bdAwards.getAwardsName());
|
targetMemberRangeExt.setAwardsValue(bdAwards.getAwardsValue());
|
||||||
continue;
|
targetMemberRangeExt.setAwardsName(bdAwards.getAwardsName());
|
||||||
}
|
continue;
|
||||||
|
// }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -1268,8 +1312,9 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
||||||
/**
|
/**
|
||||||
* 计算极差收益,根据极差收益计算平级收益
|
* 计算极差收益,根据极差收益计算平级收益
|
||||||
*/
|
*/
|
||||||
List<CuMemberBonusRange> calculateRetailRangeBonus(Map<Long, CuMemberRetailRangeExt> memberRangeExtMap, Map<Long, CuMemberBonus> cuMemberBonusMap, Map<Integer, BdGrade> gradeMap, BonusConfigDTO bonusConfigDTO,
|
List<CuMemberBonusRange> calculateRetailRangeBonus(Map<Long, CuMemberRetailRangeExt> memberRangeExtMap, Map<Long, CuMemberBonus> cuMemberBonusMap,
|
||||||
Integer period, SaOrderWaresExt saOrderItems, SaOrderExt saOrderExt) {
|
Map<Integer, BdGrade> gradeMap, BonusConfigDTO bonusConfigDTO, Integer period,
|
||||||
|
SaOrderWaresExt saOrderItems, SaOrderExt saOrderExt) {
|
||||||
List<CuMemberBonusRange> memberBonusRangeList = new ArrayList<>();
|
List<CuMemberBonusRange> memberBonusRangeList = new ArrayList<>();
|
||||||
// 用等级计算,按照一级级算
|
// 用等级计算,按照一级级算
|
||||||
CuMemberRetailRangeExt sourceMemberRangeExt = memberRangeExtMap.get(saOrderExt.getPkMember());
|
CuMemberRetailRangeExt sourceMemberRangeExt = memberRangeExtMap.get(saOrderExt.getPkMember());
|
||||||
|
@ -1422,30 +1467,57 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
||||||
return memberBonusRangeList;
|
return memberBonusRangeList;
|
||||||
}
|
}
|
||||||
|
|
||||||
CuMemberBonusDetail calculateRetailAreaBonus(Map<String, CuMemberRetailRangeExt> countyRangeExtMap, SaOrder saOrder,
|
/**
|
||||||
|
* 计算区域奖
|
||||||
|
*
|
||||||
|
* @param countyRangeExtMap
|
||||||
|
* @param saOrder
|
||||||
|
* @param bonusConfigDTO
|
||||||
|
* @param period
|
||||||
|
* @param memberRangeExtMap
|
||||||
|
* @param cuMemberBonusMap
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
CuMemberBonusDetail calculateRetailAreaBonus(Map<String, CuMemberRetailRangeExt> countyRangeExtMap,
|
||||||
BonusConfigDTO bonusConfigDTO, Integer period, Map<Long, CuMemberRetailRangeExt> memberRangeExtMap,
|
BonusConfigDTO bonusConfigDTO, Integer period, Map<Long, CuMemberRetailRangeExt> memberRangeExtMap,
|
||||||
Map<Long, CuMemberBonus> cuMemberBonusMap) {
|
Map<Long, CuMemberBonus> cuMemberBonusMap, SaOrder saOrder) {
|
||||||
CuMemberRetailRangeExt sourceRetailRangeExt = memberRangeExtMap.get(saOrder.getPkMember());
|
// 重消订单没有区域分红
|
||||||
CuMemberRetailRangeExt cuMemberRetailRangeExt = countyRangeExtMap.get(sourceRetailRangeExt.getSystemType() + "_" + saOrder.getRecCounty());
|
if (saOrder.getOrderType().equals(EOrderType.RETAIL_CONSUME.getValue())) {
|
||||||
if (cuMemberRetailRangeExt == null) {
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
// 区域分红根据商品盒数来,如果没有盒数,直接返回为空
|
||||||
|
if (saOrder.getBoxNum() == 0) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
CuMemberRetailRangeExt sourceRetailRangeExt = memberRangeExtMap.get(saOrder.getPkMember());
|
||||||
|
// 获取对应区域会员
|
||||||
|
CuMemberRetailRangeExt cuMemberRetailRangeExt = countyRangeExtMap.get(sourceRetailRangeExt.getSystemType() + "_" + saOrder.getRecCounty());
|
||||||
|
if (null == cuMemberRetailRangeExt) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
// 获取区域会员结算数据
|
||||||
if (memberRangeExtMap.containsKey(cuMemberRetailRangeExt.getPkMember())) {
|
if (memberRangeExtMap.containsKey(cuMemberRetailRangeExt.getPkMember())) {
|
||||||
cuMemberRetailRangeExt = memberRangeExtMap.get(cuMemberRetailRangeExt.getPkMember());
|
cuMemberRetailRangeExt = memberRangeExtMap.get(cuMemberRetailRangeExt.getPkMember());
|
||||||
}
|
}
|
||||||
if (ECategory.NORMAL.getValue() != cuMemberRetailRangeExt.getCategory() ||
|
|
||||||
EAccountStatus.STOP_INCOME.getValue() == cuMemberRetailRangeExt.getAccountStatus() ||
|
// 非正常用户 或者 停止收益 或 未激活,不能获取区域收益
|
||||||
cuMemberRetailRangeExt.getEnableStatus() == EYesNo.NO.getIntValue()) {
|
if (ECategory.NORMAL.getValue() != cuMemberRetailRangeExt.getCategory()
|
||||||
|
|| EAccountStatus.STOP_INCOME.getValue() == cuMemberRetailRangeExt.getAccountStatus()
|
||||||
|
|| cuMemberRetailRangeExt.getEnableStatus() == EYesNo.NO.getIntValue()) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
// 验证是否有奖金
|
// 验证是否有奖金
|
||||||
if (validatePkBonusItems(bonusConfigDTO, cuMemberRetailRangeExt.getPkSettleCountry(), EBonusItems.RETAIL_AREA_INCOME.getValue())) {
|
if (validatePkBonusItems(bonusConfigDTO, cuMemberRetailRangeExt.getPkSettleCountry(), EBonusItems.RETAIL_AREA_INCOME.getValue())) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
BigDecimal bonusRatio = BigDecimal.valueOf(0.4);
|
|
||||||
BigDecimal benefitIncome = ComputeUtil.computeBonusMultiply(saOrder.getOrderAchieve(), bonusRatio);
|
BigDecimal boxNumBig = new BigDecimal(saOrder.getBoxNum());
|
||||||
CuMemberBonusDetail cuMemberBonusDetail = packageBenefitIncome(bonusConfigDTO, period, cuMemberBonusMap, null, bonusRatio, benefitIncome, cuMemberRetailRangeExt, EBonusItems.RETAIL_AREA_INCOME.getValue(), BonusMsgConstants.RETAIL_AREA_INCOME);
|
// 处理区域收益(每盒2元)
|
||||||
cuMemberBonusDetail.setCalAchieve(saOrder.getOrderAchieve());
|
BigDecimal benefitIncome = RetailProductConstants.AREA_BOX_BONUS.multiply(boxNumBig);
|
||||||
|
CuMemberBonusDetail cuMemberBonusDetail = packageBenefitIncome(bonusConfigDTO, period, cuMemberBonusMap, null, BigDecimal.ZERO, benefitIncome,
|
||||||
|
cuMemberRetailRangeExt, EBonusItems.RETAIL_AREA_INCOME.getValue(), BonusMsgConstants.RETAIL_AREA_INCOME);
|
||||||
|
cuMemberBonusDetail.setCalAchieve(boxNumBig);
|
||||||
cuMemberBonusDetail.setPkOrder(saOrder.getPkId());
|
cuMemberBonusDetail.setPkOrder(saOrder.getPkId());
|
||||||
String remark = String.format(BonusMsgConstants.RETAIL_AREA_INCOME, saOrder.getOrderCode(),
|
String remark = String.format(BonusMsgConstants.RETAIL_AREA_INCOME, saOrder.getOrderCode(),
|
||||||
memberRangeExtMap.get(saOrder.getPkMember()).getMemberCode() + memberRangeExtMap.get(saOrder.getPkMember()).getMemberName(),
|
memberRangeExtMap.get(saOrder.getPkMember()).getMemberCode() + memberRangeExtMap.get(saOrder.getPkMember()).getMemberName(),
|
||||||
|
@ -1963,7 +2035,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 奖金明细 报单服务费、分红、云代首购、云代复购、海豆收益
|
* 奖金明细
|
||||||
*
|
*
|
||||||
* @param saOrderExt 订单
|
* @param saOrderExt 订单
|
||||||
* @param cuMemberBonus 奖金主表
|
* @param cuMemberBonus 奖金主表
|
||||||
|
|
|
@ -214,7 +214,7 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
|
||||||
// 订单下单处理(正向)
|
// 订单下单处理(正向)
|
||||||
// 会员奖金明细
|
// 会员奖金明细
|
||||||
List<CuMemberBonusDetail> cuMemberBonusDetailList = new ArrayList<>();
|
List<CuMemberBonusDetail> cuMemberBonusDetailList = new ArrayList<>();
|
||||||
// 实时计算当月奖衔
|
// 实时计算秒结数据(业绩、盒数、等级、奖衔、日奖)
|
||||||
List<CuMemberBonusRange> cuMemberBonusRangeList = bonusSettleRangeHandle.calculateCuMemberRetailRangeBonusBySecond(settleDate, saOrderExt, bonusConfigDTO,
|
List<CuMemberBonusRange> cuMemberBonusRangeList = bonusSettleRangeHandle.calculateCuMemberRetailRangeBonusBySecond(settleDate, saOrderExt, bonusConfigDTO,
|
||||||
secondRangeTableName, beforePeriod, currentPeriod, cuMemberBonusMap, cuMemberBonusDetailList);
|
secondRangeTableName, beforePeriod, currentPeriod, cuMemberBonusMap, cuMemberBonusDetailList);
|
||||||
saveCuMemberBonus(currentPeriod, settleDate, cuMemberBonusMap);
|
saveCuMemberBonus(currentPeriod, settleDate, cuMemberBonusMap);
|
||||||
|
@ -236,6 +236,7 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
|
||||||
settleDate = DateUtils.parseDateToFormat(DateUtils.YYYY_MM_DD, DateUtils.beforeDate(1, ChronoUnit.DAYS));
|
settleDate = DateUtils.parseDateToFormat(DateUtils.YYYY_MM_DD, DateUtils.beforeDate(1, ChronoUnit.DAYS));
|
||||||
currentPeriod = cuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(settleDate).getPkId();
|
currentPeriod = cuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(settleDate).getPkId();
|
||||||
}
|
}
|
||||||
|
// 实时计算撤单数据(业绩、盒数、等级、奖衔、日奖)
|
||||||
bonusSettleRangeHandle.calculateCuMemberBackRetailIncome(saOrderExt, bonusConfigDTO,
|
bonusSettleRangeHandle.calculateCuMemberBackRetailIncome(saOrderExt, bonusConfigDTO,
|
||||||
secondRangeTableName, beforePeriod, currentPeriod);
|
secondRangeTableName, beforePeriod, currentPeriod);
|
||||||
// 处理收益
|
// 处理收益
|
||||||
|
|
|
@ -683,7 +683,7 @@ public class CuMemberBonusServiceImpl extends ServiceImpl<CuMemberBonusMapper, C
|
||||||
public void mergeBackMemberBonusIncome(Long pkOrder) {
|
public void mergeBackMemberBonusIncome(Long pkOrder) {
|
||||||
baseMapper.mergeBackRangeBonusIncome(pkOrder, EBonusItems.RETAIL_RANGE_INCOME.getValue());
|
baseMapper.mergeBackRangeBonusIncome(pkOrder, EBonusItems.RETAIL_RANGE_INCOME.getValue());
|
||||||
baseMapper.mergeBackRangeBonusIncome(pkOrder, EBonusItems.RETAIL_SAME_LEVEL_INCOME.getValue());
|
baseMapper.mergeBackRangeBonusIncome(pkOrder, EBonusItems.RETAIL_SAME_LEVEL_INCOME.getValue());
|
||||||
// baseMapper.mergeBackRangeBonusIncome(pkOrder, EBonusItems.RETAIL_AREA_INCOME.getValue());
|
baseMapper.mergeBackRangeBonusIncome(pkOrder, EBonusItems.RETAIL_AREA_INCOME.getValue());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -206,12 +206,12 @@
|
||||||
merge into ${rangeTableName} a
|
merge into ${rangeTableName} a
|
||||||
using (
|
using (
|
||||||
select pk_id pk_member, pk_parent, pk_settle_grade, pk_awards
|
select pk_id pk_member, pk_parent, pk_settle_grade, pk_awards
|
||||||
from cu_member start with pk_id=#{pkMember}
|
from cu_member start with pk_id = #{pkMember}
|
||||||
connect by prior pk_parent=pk_id
|
connect by prior pk_parent = pk_id
|
||||||
) b
|
) b
|
||||||
on (a.pk_member = b.pk_member)
|
on (a.pk_member = b.pk_member)
|
||||||
when matched then
|
when matched then
|
||||||
update set a.pk_grade = b.pk_settle_grade,a.pk_awards = b.pk_awards
|
update set a.pk_grade = b.pk_settle_grade, a.pk_awards = b.pk_awards
|
||||||
</update>
|
</update>
|
||||||
|
|
||||||
<update id="mergeMemberRetailRegion">
|
<update id="mergeMemberRetailRegion">
|
||||||
|
|
|
@ -56,21 +56,22 @@
|
||||||
<insert id="batchInsertCuMemberBonusDetail">
|
<insert id="batchInsertCuMemberBonusDetail">
|
||||||
insert ALL
|
insert ALL
|
||||||
<foreach item="item" index="index" collection="cuMemberBonusDetailList" separator=" ">
|
<foreach item="item" index="index" collection="cuMemberBonusDetailList" separator=" ">
|
||||||
into cu_member_bonus_detail(pk_bonus,pk_order,pk_bonus_items,income_status,
|
into cu_member_bonus_detail (
|
||||||
cal_type,cal_achieve,cal_value,pretax_income,
|
pk_bonus, pk_order, pk_bonus_items, income_status,
|
||||||
income_tax,real_income,remark,
|
cal_type, cal_achieve, cal_value, pretax_income,
|
||||||
income_ratio,income_dial_ratio,order_dial_ratio,pk_country,pk_creator)
|
income_tax, real_income, remark,
|
||||||
values
|
income_ratio, income_dial_ratio, order_dial_ratio,
|
||||||
(
|
pk_country, pk_creator)
|
||||||
#{item.pkBonus},nvl(#{item.pkOrder,jdbcType=BIGINT},0),#{item.pkBonusItems},#{item.incomeStatus},
|
values (
|
||||||
#{item.calType},#{item.calAchieve,jdbcType=NUMERIC},#{item.calValue,jdbcType=NUMERIC},#{item.pretaxIncome,jdbcType=NUMERIC},
|
#{item.pkBonus}, nvl(#{item.pkOrder, jdbcType=BIGINT},0), #{item.pkBonusItems}, #{item.incomeStatus},
|
||||||
#{item.incomeTax,jdbcType=NUMERIC},#{item.realIncome,jdbcType=NUMERIC},
|
#{item.calType}, #{item.calAchieve, jdbcType=NUMERIC}, #{item.calValue, jdbcType=NUMERIC}, #{item.pretaxIncome, jdbcType=NUMERIC},
|
||||||
#{item.remark},#{item.incomeRatio,jdbcType=NUMERIC},#{item.incomeDialRatio,jdbcType=NUMERIC},#{item.orderDialRatio,jdbcType=NUMERIC},
|
#{item.incomeTax, jdbcType=NUMERIC}, #{item.realIncome, jdbcType=NUMERIC}, #{item.remark},
|
||||||
#{item.pkCountry},#{item.pkCreator}
|
#{item.incomeRatio, jdbcType=NUMERIC}, #{item.incomeDialRatio, jdbcType=NUMERIC}, #{item.orderDialRatio, jdbcType=NUMERIC},
|
||||||
)
|
#{item.pkCountry},#{item.pkCreator})
|
||||||
</foreach>
|
</foreach>
|
||||||
SELECT 1 FROM dual
|
SELECT 1 FROM dual
|
||||||
</insert>
|
</insert>
|
||||||
|
|
||||||
<insert id="insertCuMemberBonusDetail">
|
<insert id="insertCuMemberBonusDetail">
|
||||||
insert into cu_member_bonus_detail(pk_bonus, pk_order, pk_bonus_items, income_status,
|
insert into cu_member_bonus_detail(pk_bonus, pk_order, pk_bonus_items, income_status,
|
||||||
cal_type, cal_achieve, cal_value, pretax_income,
|
cal_type, cal_achieve, cal_value, pretax_income,
|
||||||
|
|
|
@ -74,36 +74,38 @@
|
||||||
and pk_country = #{pkCountry}
|
and pk_country = #{pkCountry}
|
||||||
</if>
|
</if>
|
||||||
</update>
|
</update>
|
||||||
|
|
||||||
<update id="mergeBackRangeBonusIncome">
|
<update id="mergeBackRangeBonusIncome">
|
||||||
merge into cu_member_bonus a
|
merge into cu_member_bonus a
|
||||||
using(
|
using(
|
||||||
select b.* from bd_bonus_items bt
|
select b.* from bd_bonus_items bt
|
||||||
inner join(
|
inner join(
|
||||||
select pk_bonus,pk_bonus_items,sum(pretax_income) pretax_income,
|
select pk_bonus,pk_bonus_items, sum(pretax_income) pretax_income,
|
||||||
sum(income_tax) income_tax,sum(real_income) real_income from
|
sum(income_tax) income_tax, sum(real_income) real_income from
|
||||||
<choose>
|
<choose>
|
||||||
<when test="bonusValue == 27"> cu_member_bonus_detail </when>
|
<when test="bonusValue == 27"> cu_member_bonus_detail </when>
|
||||||
<otherwise> cu_member_bonus_range </otherwise>
|
<otherwise> cu_member_bonus_range </otherwise>
|
||||||
</choose>
|
</choose>
|
||||||
where del_flag=0 and pk_order= #{pkOrder}
|
where del_flag=0 and pk_order= #{pkOrder}
|
||||||
group by pk_bonus,pk_bonus_items) b
|
group by pk_bonus, pk_bonus_items) b
|
||||||
on bt.pk_id=b.pk_bonus_items
|
on bt.pk_id = b.pk_bonus_items
|
||||||
where bt.bonus_value=#{bonusValue}) b
|
where bt.bonus_value = #{bonusValue}) b
|
||||||
on (a.pk_id=b.pk_bonus)
|
on (a.pk_id = b.pk_bonus)
|
||||||
when matched then
|
when matched then
|
||||||
update set a.retail_real_subtotal=a.retail_real_subtotal-b.real_income,
|
update set a.retail_real_subtotal=a.retail_real_subtotal-b.real_income,
|
||||||
a.back_points=a.back_points-b.income_tax,
|
a.back_points=a.back_points-b.income_tax,
|
||||||
a.real_income_total=a.real_income_total-b.real_income
|
a.real_income_total=a.real_income_total-b.real_income
|
||||||
<if test="bonusValue == 25">
|
<if test="bonusValue == 25">
|
||||||
,a.retail_range_income=a.retail_range_income-b.pretax_income
|
,a.retail_range_income = a.retail_range_income - b.pretax_income
|
||||||
</if>
|
</if>
|
||||||
<if test="bonusValue == 26">
|
<if test="bonusValue == 26">
|
||||||
,a.retail_same_level_income=a.retail_same_level_income-b.pretax_income
|
,a.retail_same_level_income = a.retail_same_level_income - b.pretax_income
|
||||||
</if>
|
</if>
|
||||||
<if test="bonusValue == 27">
|
<if test="bonusValue == 27">
|
||||||
,a.retail_area_income=a.retail_area_income-b.pretax_income
|
,a.retail_area_income = a.retail_area_income - b.pretax_income
|
||||||
</if>
|
</if>
|
||||||
</update>
|
</update>
|
||||||
|
|
||||||
<delete id="deleteCuMemberBonus">
|
<delete id="deleteCuMemberBonus">
|
||||||
delete
|
delete
|
||||||
from cu_member_bonus
|
from cu_member_bonus
|
||||||
|
|
|
@ -48,7 +48,6 @@
|
||||||
<result column="SETTLE_COUNTRY" property="settleCountry"/>
|
<result column="SETTLE_COUNTRY" property="settleCountry"/>
|
||||||
<result column="PERIOD" property="period"/>
|
<result column="PERIOD" property="period"/>
|
||||||
<result column="OUT_EXCHANGE_RATE" property="outExchangeRate"/>
|
<result column="OUT_EXCHANGE_RATE" property="outExchangeRate"/>
|
||||||
|
|
||||||
<result column="service_code" property="serviceCode"/>
|
<result column="service_code" property="serviceCode"/>
|
||||||
<result column="pk_vertex" property="pkVertex"/>
|
<result column="pk_vertex" property="pkVertex"/>
|
||||||
<result column="nick_name" property="nickName"/>
|
<result column="nick_name" property="nickName"/>
|
||||||
|
@ -57,18 +56,20 @@
|
||||||
<insert id="batchInsertCuMemberBonusRange">
|
<insert id="batchInsertCuMemberBonusRange">
|
||||||
insert ALL
|
insert ALL
|
||||||
<foreach item="item" index="index" collection="cuMemberBonusRangeList" separator=" ">
|
<foreach item="item" index="index" collection="cuMemberBonusRangeList" separator=" ">
|
||||||
into cu_member_bonus_range(pk_bonus,pk_order,pk_order_items,pk_bonus_items,income_status,
|
into cu_member_bonus_range (
|
||||||
cal_type,cal_achieve,cal_value,pk_range,pk_before_range,pretax_income,
|
pk_bonus, pk_order, pk_order_items, pk_bonus_items,
|
||||||
income_tax,real_income,remark,
|
income_status, cal_type, cal_achieve, cal_value,
|
||||||
income_ratio,income_dial_ratio,order_dial_ratio,pk_country,pk_creator)
|
pk_range, pk_before_range, pretax_income,
|
||||||
values
|
income_tax, real_income, remark,
|
||||||
(
|
income_ratio, income_dial_ratio, order_dial_ratio,
|
||||||
#{item.pkBonus},#{item.pkOrder},#{item.pkOrderItems},#{item.pkBonusItems},#{item.incomeStatus},
|
pk_country, pk_creator)
|
||||||
#{item.calType},#{item.calAchieve},#{item.calValue},#{item.pkRange},#{item.pkBeforeRange},
|
values (
|
||||||
#{item.pretaxIncome},#{item.incomeTax},#{item.realIncome},
|
#{item.pkBonus}, #{item.pkOrder}, #{item.pkOrderItems}, #{item.pkBonusItems},
|
||||||
#{item.remark},#{item.incomeRatio},#{item.incomeDialRatio},#{item.orderDialRatio},
|
#{item.incomeStatus}, #{item.calType}, #{item.calAchieve}, #{item.calValue},
|
||||||
#{item.pkCountry},#{item.pkCreator}
|
#{item.pkRange}, #{item.pkBeforeRange}, #{item.pretaxIncome},
|
||||||
)
|
#{item.incomeTax}, #{item.realIncome}, #{item.remark},
|
||||||
|
#{item.incomeRatio}, #{item.incomeDialRatio}, #{item.orderDialRatio},
|
||||||
|
#{item.pkCountry}, #{item.pkCreator})
|
||||||
</foreach>
|
</foreach>
|
||||||
SELECT 1 FROM dual
|
SELECT 1 FROM dual
|
||||||
</insert>
|
</insert>
|
||||||
|
|
|
@ -167,13 +167,13 @@
|
||||||
and ca.pk_member in
|
and ca.pk_member in
|
||||||
(select pk_id
|
(select pk_id
|
||||||
from cu_member start
|
from cu_member start
|
||||||
with pk_id=#{pkMember}
|
with pk_id = #{pkMember}
|
||||||
connect by prior pk_parent=pk_id)
|
connect by prior pk_parent = pk_id)
|
||||||
group by ca.pk_member) cx
|
group by ca.pk_member) cx
|
||||||
on cw.pk_id = cx.pk_id ) b
|
on cw.pk_id = cx.pk_id ) b
|
||||||
on (a.pk_member=b.pk_member)
|
on (a.pk_member = b.pk_member)
|
||||||
when matched then
|
when matched then
|
||||||
update set a.pk_awards=b.old_level
|
update set a.pk_awards = b.old_level
|
||||||
</update>
|
</update>
|
||||||
|
|
||||||
<!-- 删除自动升级的奖衔升级记录 -->
|
<!-- 删除自动升级的奖衔升级记录 -->
|
||||||
|
|
|
@ -156,7 +156,7 @@
|
||||||
nvl(st.wares_quantity,0) wares_quantity
|
nvl(st.wares_quantity,0) wares_quantity
|
||||||
from sa_order so
|
from sa_order so
|
||||||
left join sa_order_wares st
|
left join sa_order_wares st
|
||||||
on so.pk_id = st.pk_order and st.wares_price >0
|
on so.pk_id = st.pk_order and st.wares_price > 0
|
||||||
left join bd_wares bw
|
left join bd_wares bw
|
||||||
on bw.pk_id = st.pk_wares and bw.del_flag = 0
|
on bw.pk_id = st.pk_wares and bw.del_flag = 0
|
||||||
where so.order_status = 1
|
where so.order_status = 1
|
||||||
|
@ -168,7 +168,7 @@
|
||||||
) od
|
) od
|
||||||
left join bd_currency bc
|
left join bd_currency bc
|
||||||
on od.pk_rate = bc.pk_id
|
on od.pk_rate = bc.pk_id
|
||||||
order by pay_time,wares_price desc
|
order by pay_time, wares_price desc
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="querySaOrderByTime" resultMap="saOrderExtResultMap">
|
<select id="querySaOrderByTime" resultMap="saOrderExtResultMap">
|
||||||
|
|
|
@ -5,14 +5,10 @@ import cn.hutool.core.collection.CollUtil;
|
||||||
import cn.hutool.core.util.DesensitizedUtil;
|
import cn.hutool.core.util.DesensitizedUtil;
|
||||||
import cn.hutool.json.JSONUtil;
|
import cn.hutool.json.JSONUtil;
|
||||||
import com.hzs.common.core.annotation.RepeatSubmitSimple;
|
import com.hzs.common.core.annotation.RepeatSubmitSimple;
|
||||||
import com.hzs.common.core.config.HzsConfig;
|
|
||||||
import com.hzs.common.core.constant.CountryConstants;
|
|
||||||
import com.hzs.common.core.constant.MemberFieldConstants;
|
import com.hzs.common.core.constant.MemberFieldConstants;
|
||||||
import com.hzs.common.core.constant.SysConstants;
|
|
||||||
import com.hzs.common.core.constant.msg.FinanceMsgConstants;
|
import com.hzs.common.core.constant.msg.FinanceMsgConstants;
|
||||||
import com.hzs.common.core.enums.*;
|
import com.hzs.common.core.enums.*;
|
||||||
import com.hzs.common.core.utils.CommonUtil;
|
import com.hzs.common.core.utils.CommonUtil;
|
||||||
import com.hzs.common.core.utils.DateUtils;
|
|
||||||
import com.hzs.common.core.utils.StringUtils;
|
import com.hzs.common.core.utils.StringUtils;
|
||||||
import com.hzs.common.core.utils.reflect.ReflectUtils;
|
import com.hzs.common.core.utils.reflect.ReflectUtils;
|
||||||
import com.hzs.common.core.web.controller.BaseController;
|
import com.hzs.common.core.web.controller.BaseController;
|
||||||
|
@ -39,9 +35,7 @@ import com.hzs.member.base.vo.UpPolicyCurrencyVO;
|
||||||
import com.hzs.member.detail.service.ICuMemberServiceLogService;
|
import com.hzs.member.detail.service.ICuMemberServiceLogService;
|
||||||
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 com.hzs.system.config.IGradeServiceApi;
|
|
||||||
import com.hzs.system.config.ITradeConfigServiceApi;
|
import com.hzs.system.config.ITradeConfigServiceApi;
|
||||||
import com.hzs.system.config.dto.GradeDTO;
|
|
||||||
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.util.Assert;
|
import org.springframework.util.Assert;
|
||||||
|
@ -49,16 +43,12 @@ import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.Date;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 会员提现表 前端控制器
|
* 会员提现表 前端控制器
|
||||||
*
|
|
||||||
* @author hzs
|
|
||||||
* @since 2022-09-06
|
|
||||||
*/
|
*/
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/api/transfer")
|
@RequestMapping("/api/transfer")
|
||||||
|
@ -85,9 +75,6 @@ public class ApiCuMemberTransferController extends BaseController {
|
||||||
@DubboReference
|
@DubboReference
|
||||||
IAccountServiceApi accountServiceApi;
|
IAccountServiceApi accountServiceApi;
|
||||||
|
|
||||||
@DubboReference
|
|
||||||
IGradeServiceApi gradeServiceApi;
|
|
||||||
|
|
||||||
@DubboReference
|
@DubboReference
|
||||||
ITradeConfigServiceApi tradeConfigServiceApi;
|
ITradeConfigServiceApi tradeConfigServiceApi;
|
||||||
|
|
||||||
|
@ -99,7 +86,7 @@ public class ApiCuMemberTransferController extends BaseController {
|
||||||
*/
|
*/
|
||||||
@GetMapping("/chinese-name")
|
@GetMapping("/chinese-name")
|
||||||
public AjaxResult chineseDesensitization(String memberCode) {
|
public AjaxResult chineseDesensitization(String memberCode) {
|
||||||
if(StringUtils.isEmpty(memberCode)){
|
if (StringUtils.isEmpty(memberCode)) {
|
||||||
return AjaxResult.error(TransactionUtils.getContent(FinanceMsgConstants.PARAMETER_NOT_EMPTY));
|
return AjaxResult.error(TransactionUtils.getContent(FinanceMsgConstants.PARAMETER_NOT_EMPTY));
|
||||||
}
|
}
|
||||||
CuMember member = cuMemberService.getMemberByCode(memberCode);
|
CuMember member = cuMemberService.getMemberByCode(memberCode);
|
||||||
|
|
|
@ -2,7 +2,7 @@ package com.hzs.member.sms.service.impl;
|
||||||
|
|
||||||
import cn.hutool.core.date.DatePattern;
|
import cn.hutool.core.date.DatePattern;
|
||||||
import cn.hutool.core.date.DateUtil;
|
import cn.hutool.core.date.DateUtil;
|
||||||
import com.hzs.common.core.config.HzsConfig;
|
import com.hzs.common.core.config.BdConfig;
|
||||||
import com.hzs.common.core.constant.CacheConstants;
|
import com.hzs.common.core.constant.CacheConstants;
|
||||||
import com.hzs.common.core.domain.R;
|
import com.hzs.common.core.domain.R;
|
||||||
import com.hzs.common.core.enums.EAliSmsTemplate;
|
import com.hzs.common.core.enums.EAliSmsTemplate;
|
||||||
|
@ -20,11 +20,7 @@ import java.util.Date;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Description: 阿里短信发送服务
|
* 阿里短信发送服务
|
||||||
* @Author: jiang chao
|
|
||||||
* @Time: 2024/12/19 16:30
|
|
||||||
* @Classname: ApiAliSmsServiceImpl
|
|
||||||
* @PackageName: com.hzs.member.sms.service.impl
|
|
||||||
*/
|
*/
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@Service
|
@Service
|
||||||
|
@ -89,7 +85,7 @@ public class ApiAliSmsServiceImpl implements IApiAliSmsService {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String checkCode(String phone, String smsCode, String checkKey) {
|
public String checkCode(String phone, String smsCode, String checkKey) {
|
||||||
if (EEnv.TEST.getValue().equals(HzsConfig.getEnv()) && "ASDF".equals(smsCode)) {
|
if (EEnv.TEST.getValue().equals(BdConfig.getEnv()) && "ASDF".equals(smsCode)) {
|
||||||
// 测试环境暂时不发放短信
|
// 测试环境暂时不发放短信
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,23 +1,17 @@
|
||||||
package com.hzs.member.sms.service.impl;
|
package com.hzs.member.sms.service.impl;
|
||||||
|
|
||||||
import com.hzs.common.core.config.HzsConfig;
|
import com.hzs.common.core.config.BdConfig;
|
||||||
import com.hzs.common.core.constant.msg.SystemMsgConstants;
|
import com.hzs.common.core.constant.msg.SystemMsgConstants;
|
||||||
import com.hzs.common.core.enums.EEnv;
|
import com.hzs.common.core.enums.EEnv;
|
||||||
import com.hzs.common.core.service.RedisService;
|
import com.hzs.common.core.service.RedisService;
|
||||||
import com.hzs.common.util.TransactionUtils;
|
import com.hzs.common.util.TransactionUtils;
|
||||||
import com.hzs.member.sms.service.IApiSmsService;
|
import com.hzs.member.sms.service.IApiSmsService;
|
||||||
import com.hzs.third.sms.ISmsServiceApi;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
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;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Description: 短信处理服务
|
* 短信处理服务
|
||||||
* @Author: jiang chao
|
|
||||||
* @Time: 2023/3/8 15:56
|
|
||||||
* @Classname: ApiSmsServiceImpjl
|
|
||||||
* @PackageName: com.hzs.member.sms.service.impl
|
|
||||||
*/
|
*/
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@Service
|
@Service
|
||||||
|
@ -28,7 +22,7 @@ public class ApiSmsServiceImpl implements IApiSmsService {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String checkSms(String cacheKey, String code) {
|
public String checkSms(String cacheKey, String code) {
|
||||||
if (EEnv.TEST.getValue().equals(HzsConfig.getEnv()) && "ASDF".equals(code)) {
|
if (EEnv.TEST.getValue().equals(BdConfig.getEnv()) && "ASDF".equals(code)) {
|
||||||
// 测试环境暂时不发放短信
|
// 测试环境暂时不发放短信
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,19 +5,16 @@ import cn.hutool.core.collection.CollectionUtil;
|
||||||
import cn.hutool.core.lang.tree.Tree;
|
import cn.hutool.core.lang.tree.Tree;
|
||||||
import cn.hutool.core.lang.tree.TreeNodeConfig;
|
import cn.hutool.core.lang.tree.TreeNodeConfig;
|
||||||
import cn.hutool.core.lang.tree.TreeUtil;
|
import cn.hutool.core.lang.tree.TreeUtil;
|
||||||
|
import cn.hutool.json.JSONUtil;
|
||||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
import com.hzs.bonus.settle.IMemberSettleBonusApi;
|
import com.hzs.bonus.settle.IMemberSettleBonusApi;
|
||||||
import com.hzs.common.core.annotation.RepeatSubmitSimple;
|
import com.hzs.common.core.annotation.RepeatSubmitSimple;
|
||||||
import com.hzs.common.core.config.HzsConfig;
|
import com.hzs.common.core.config.BdConfig;
|
||||||
import com.hzs.common.core.constant.SysConstants;
|
|
||||||
import com.hzs.common.core.constant.msg.AreaConstants;
|
import com.hzs.common.core.constant.msg.AreaConstants;
|
||||||
import com.hzs.common.core.domain.R;
|
|
||||||
import com.hzs.common.core.enums.*;
|
import com.hzs.common.core.enums.*;
|
||||||
import com.hzs.common.core.utils.BoxProductUtil;
|
|
||||||
import com.hzs.common.core.web.controller.BaseController;
|
import com.hzs.common.core.web.controller.BaseController;
|
||||||
import com.hzs.common.core.web.domain.AjaxResult;
|
import com.hzs.common.core.web.domain.AjaxResult;
|
||||||
import com.hzs.common.core.web.page.TableDataInfo;
|
import com.hzs.common.core.web.page.TableDataInfo;
|
||||||
import com.hzs.common.domain.member.bonus.CuMemberRetail;
|
|
||||||
import com.hzs.common.domain.member.ext.CuMemberExt;
|
import com.hzs.common.domain.member.ext.CuMemberExt;
|
||||||
import com.hzs.common.domain.retail.member.CuMemberRetailRegion;
|
import com.hzs.common.domain.retail.member.CuMemberRetailRegion;
|
||||||
import com.hzs.common.domain.retail.member.ext.CuMemberRetailRegionExt;
|
import com.hzs.common.domain.retail.member.ext.CuMemberRetailRegionExt;
|
||||||
|
@ -33,6 +30,7 @@ import com.hzs.retail.member.vo.RecommendListVO;
|
||||||
import com.hzs.retail.member.vo.RetailMemberInfoVO;
|
import com.hzs.retail.member.vo.RetailMemberInfoVO;
|
||||||
import com.hzs.retail.member.vo.RetailMemberRegionVO;
|
import com.hzs.retail.member.vo.RetailMemberRegionVO;
|
||||||
import com.hzs.system.base.IAreaServiceApi;
|
import com.hzs.system.base.IAreaServiceApi;
|
||||||
|
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.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
@ -47,6 +45,7 @@ import java.util.List;
|
||||||
*/
|
*/
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/api/retail-member")
|
@RequestMapping("/api/retail-member")
|
||||||
|
@Slf4j
|
||||||
public class RetailMemberController extends BaseController {
|
public class RetailMemberController extends BaseController {
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
|
@ -63,6 +62,8 @@ public class RetailMemberController extends BaseController {
|
||||||
@DubboReference
|
@DubboReference
|
||||||
IMemberSettleBonusApi iMemberSettleBonusApi;
|
IMemberSettleBonusApi iMemberSettleBonusApi;
|
||||||
|
|
||||||
|
// 2025年6月11日 判断可选择收益区域的伞下+自身业绩阈值 (30万)
|
||||||
|
private static final BigDecimal REGIONAL_PERFORMANCE_THRESHOLD = new BigDecimal("300000");
|
||||||
/**
|
/**
|
||||||
* 获取登录会员信息
|
* 获取登录会员信息
|
||||||
*
|
*
|
||||||
|
@ -86,9 +87,12 @@ public class RetailMemberController extends BaseController {
|
||||||
public AjaxResult getRegion() {
|
public AjaxResult getRegion() {
|
||||||
Long userId = SecurityUtils.getUserId();
|
Long userId = SecurityUtils.getUserId();
|
||||||
Integer systemType = SecurityUtils.getSystemType();
|
Integer systemType = SecurityUtils.getSystemType();
|
||||||
|
Integer pkCountry = SecurityUtils.getPkCountry();
|
||||||
|
|
||||||
CuMemberRetailRegionExt cuMemberRetailRegionExt = iCuMemberRetailRegionService.getRegionByMember(userId, EGrade.S_VIP.getValue(), systemType);
|
CuMemberRetailRegionExt cuMemberRetailRegionExt = iCuMemberRetailRegionService.getRegionByMember(userId, EGrade.S_VIP.getValue(), systemType);
|
||||||
|
log.info("cuMemberRetailRegionExt -> {}", JSONUtil.toJsonStr(cuMemberRetailRegionExt));
|
||||||
if (null != cuMemberRetailRegionExt) {
|
if (null != cuMemberRetailRegionExt) {
|
||||||
|
// 已自选区域或者已后台指定
|
||||||
if (null != cuMemberRetailRegionExt.getPkId()) {
|
if (null != cuMemberRetailRegionExt.getPkId()) {
|
||||||
// 达到条件,也选择区域,需要进行显示
|
// 达到条件,也选择区域,需要进行显示
|
||||||
return AjaxResult.success(RetailMemberRegionVO.builder()
|
return AjaxResult.success(RetailMemberRegionVO.builder()
|
||||||
|
@ -101,14 +105,28 @@ public class RetailMemberController extends BaseController {
|
||||||
.countyVal(cuMemberRetailRegionExt.getCountyVal())
|
.countyVal(cuMemberRetailRegionExt.getCountyVal())
|
||||||
.build());
|
.build());
|
||||||
}
|
}
|
||||||
|
// 未自选或未后台指定 验证是否激活 未激活不允许选
|
||||||
|
// getIsRegion - 后台业务特殊标记,非后台办理过的为1, 后台办理过的为0,当为0时, 不设定任何条件,直接可选收益区域
|
||||||
if (EYesNo.YES.getIntValue() == cuMemberRetailRegionExt.getIsRegion()) {
|
if (EYesNo.YES.getIntValue() == cuMemberRetailRegionExt.getIsRegion()) {
|
||||||
// 2024.12.30 添加需求,指定会员可以进行区域选择
|
// 2024.12.30 添加需求,指定会员可以进行区域选择
|
||||||
return AjaxResult.success(RetailMemberRegionVO.builder()
|
return AjaxResult.success(RetailMemberRegionVO.builder()
|
||||||
.regionStatus(EYesNo.YES.getIntValue())
|
.regionStatus(EYesNo.YES.getIntValue())
|
||||||
.build());
|
.build());
|
||||||
}
|
}
|
||||||
if (null == cuMemberRetailRegionExt.getPkId()) {
|
if(EYesNo.YES.getIntValue() == cuMemberRetailRegionExt.getIsActivate()){
|
||||||
// 达到条件,但是没有选择区域,需要弹窗选择区域
|
CuMemberRetailAchieveVO retailAchieve = iCuMemberRetailAchieveService.selectMemberSumAchieve(userId, pkCountry, systemType);
|
||||||
|
log.info("retailAchieve : {}", JSONUtil.toJsonStr(retailAchieve));
|
||||||
|
if(retailAchieve.getArealPv().compareTo(REGIONAL_PERFORMANCE_THRESHOLD) >= 0){
|
||||||
|
return AjaxResult.success(RetailMemberRegionVO.builder()
|
||||||
|
.regionStatus(EYesNo.YES.getIntValue())
|
||||||
|
.build());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// 达到条件,但是没有选择区域,需要弹窗选择区域
|
||||||
|
// 验证伞下业绩+自己是否累计30W
|
||||||
|
|
||||||
|
/*
|
||||||
|
2025年6月11日 取消其他验证
|
||||||
// 2025.01.11 调整需求,当前会员必须有效(至少下过一单)
|
// 2025.01.11 调整需求,当前会员必须有效(至少下过一单)
|
||||||
if (iCuMemberRetailRegionService.getOrderCount(userId, systemType, BoxProductUtil.getBoxProductListBySystemType(systemType)) == 0) {
|
if (iCuMemberRetailRegionService.getOrderCount(userId, systemType, BoxProductUtil.getBoxProductListBySystemType(systemType)) == 0) {
|
||||||
return AjaxResult.success(RetailMemberRegionVO.builder()
|
return AjaxResult.success(RetailMemberRegionVO.builder()
|
||||||
|
@ -125,18 +143,7 @@ public class RetailMemberController extends BaseController {
|
||||||
.build());
|
.build());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
*/
|
||||||
// 达到条件,也选择区域,需要进行显示并且可以修改
|
|
||||||
return AjaxResult.success(RetailMemberRegionVO.builder()
|
|
||||||
.regionStatus(EYesNo.YES.getIntValue())
|
|
||||||
.province(cuMemberRetailRegionExt.getProvince())
|
|
||||||
.provinceVal(cuMemberRetailRegionExt.getProvinceVal())
|
|
||||||
.city(cuMemberRetailRegionExt.getCity())
|
|
||||||
.cityVal(cuMemberRetailRegionExt.getCityVal())
|
|
||||||
.county(cuMemberRetailRegionExt.getCounty())
|
|
||||||
.countyVal(cuMemberRetailRegionExt.getCountyVal())
|
|
||||||
.build());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
// 没达到条件,不需要显示区域
|
// 没达到条件,不需要显示区域
|
||||||
return AjaxResult.success(RetailMemberRegionVO.builder()
|
return AjaxResult.success(RetailMemberRegionVO.builder()
|
||||||
|
@ -157,21 +164,24 @@ public class RetailMemberController extends BaseController {
|
||||||
Integer systemType = SecurityUtils.getSystemType();
|
Integer systemType = SecurityUtils.getSystemType();
|
||||||
Integer pkCountry = SecurityUtils.getPkCountry();
|
Integer pkCountry = SecurityUtils.getPkCountry();
|
||||||
|
|
||||||
CuMemberRetailRegionExt cuMemberRetailRegionExt = iCuMemberRetailRegionService.getRegionByMember(userId, EGrade.S_VIP.getValue(), systemType);
|
boolean canSet = false;
|
||||||
if (null == cuMemberRetailRegionExt) {
|
|
||||||
return AjaxResult.error("还未达到选择收益区域条件");
|
|
||||||
} else {
|
|
||||||
if (EYesNo.NO.getIntValue() == cuMemberRetailRegionExt.getIsRegion()) {
|
|
||||||
// 2024.12.30 添加需求,会员可以指定可以进行区域选择,未指定权限才需要进行判断
|
|
||||||
|
|
||||||
// 达到条件,但是没有选择区域,需要弹窗选择区域
|
CuMemberRetailRegionExt cuMemberRetailRegionExt = iCuMemberRetailRegionService.getRegionByMember(userId, EGrade.S_VIP.getValue(), systemType);
|
||||||
|
log.info("cuMemberRetailRegionExt -> {}", JSONUtil.toJsonStr(cuMemberRetailRegionExt));
|
||||||
|
if (null != cuMemberRetailRegionExt) {
|
||||||
|
if (EYesNo.YES.getIntValue() == cuMemberRetailRegionExt.getIsRegion()) {
|
||||||
|
canSet = true;
|
||||||
|
}
|
||||||
|
if(EYesNo.YES.getIntValue() == cuMemberRetailRegionExt.getIsActivate()){
|
||||||
CuMemberRetailAchieveVO retailAchieve = iCuMemberRetailAchieveService.selectMemberSumAchieve(userId, pkCountry, systemType);
|
CuMemberRetailAchieveVO retailAchieve = iCuMemberRetailAchieveService.selectMemberSumAchieve(userId, pkCountry, systemType);
|
||||||
// TODO 2025.06.09 新需求,选择区域判断等级达到合伙人,血缘累计业绩达到30万,可以选择
|
if(retailAchieve.getArealPv().compareTo(REGIONAL_PERFORMANCE_THRESHOLD) >= 0){
|
||||||
if (retailAchieve.getSmallAreaPv().add(retailAchieve.getBigArealPv()).compareTo(SysConstants.TOTAL_AREA_PV) < 0) {
|
canSet = true;
|
||||||
return AjaxResult.error("还未达到选择收益区域条件");
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if(!canSet){
|
||||||
|
return AjaxResult.error("还未达到选择收益区域条件");
|
||||||
|
}
|
||||||
|
|
||||||
if (param.getCounty().equals(0) || param.getCity().equals(0)) {
|
if (param.getCounty().equals(0) || param.getCity().equals(0)) {
|
||||||
// 区为0 或 市为0,没有选择区或者没有选择市
|
// 区为0 或 市为0,没有选择区或者没有选择市
|
||||||
|
@ -248,7 +258,7 @@ public class RetailMemberController extends BaseController {
|
||||||
*/
|
*/
|
||||||
@GetMapping("/region-tree")
|
@GetMapping("/region-tree")
|
||||||
public AjaxResult regionTree() {
|
public AjaxResult regionTree() {
|
||||||
if (EEnv.TEST.getValue().equals(HzsConfig.getEnv()) && SecurityUtils.getUserId().equals(615423L)) {
|
if (EEnv.TEST.getValue().equals(BdConfig.getEnv()) && SecurityUtils.getUserId().equals(615423L)) {
|
||||||
// 测试环境,指定账号,返回收益区域为空
|
// 测试环境,指定账号,返回收益区域为空
|
||||||
return AjaxResult.success();
|
return AjaxResult.success();
|
||||||
}
|
}
|
||||||
|
|
|
@ -159,8 +159,8 @@ public interface CuMemberRetailRangeMapper extends BaseMapper<CuMemberRetailRang
|
||||||
CuMemberRetailAchieveVO selectMemberOrderSumAchieveByPkMember(CuMemberRetailAchieveVO cuMemberAchieveVO);
|
CuMemberRetailAchieveVO selectMemberOrderSumAchieveByPkMember(CuMemberRetailAchieveVO cuMemberAchieveVO);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询会员直推业绩(累计)
|
* 查询会员直推业绩(日结+秒结)
|
||||||
*
|
* orderType in (41,42,43,44)
|
||||||
* @param cuMemberAchieveVO 入参
|
* @param cuMemberAchieveVO 入参
|
||||||
* @return List<CuMemberRetailAchieveVO>
|
* @return List<CuMemberRetailAchieveVO>
|
||||||
*/
|
*/
|
||||||
|
@ -199,4 +199,5 @@ public interface CuMemberRetailRangeMapper extends BaseMapper<CuMemberRetailRang
|
||||||
*/
|
*/
|
||||||
List<CuMemberRetailAchieveVO> selectMemberSmallBoxList(CuMemberRetailAchieveVO param);
|
List<CuMemberRetailAchieveVO> selectMemberSmallBoxList(CuMemberRetailAchieveVO param);
|
||||||
|
|
||||||
|
List<Long> selectSubMemberIdByRootMember(@Param("pkMember") Long pkMember, @Param("systemType") Integer systemType);
|
||||||
}
|
}
|
||||||
|
|
|
@ -258,7 +258,13 @@ public class CuMemberRetailAchieveServiceImpl extends ServiceImpl<CuMemberRetail
|
||||||
CuMemberRetailAchieveVO maxAchieveVO = memberAchieveList.stream().max(Comparator.comparing(CuMemberRetailAchieveVO::getArealPv)).get();
|
CuMemberRetailAchieveVO maxAchieveVO = memberAchieveList.stream().max(Comparator.comparing(CuMemberRetailAchieveVO::getArealPv)).get();
|
||||||
//查询小区业绩
|
//查询小区业绩
|
||||||
BigDecimal smallAreaPv = memberAchieveList.stream().filter(achieveVO -> !achieveVO.getPkMember().equals(maxAchieveVO.getPkMember())).map(vo -> null == vo.getArealPv() ? BigDecimal.ZERO : vo.getArealPv()).reduce(BigDecimal.ZERO, BigDecimal::add);
|
BigDecimal smallAreaPv = memberAchieveList.stream().filter(achieveVO -> !achieveVO.getPkMember().equals(maxAchieveVO.getPkMember())).map(vo -> null == vo.getArealPv() ? BigDecimal.ZERO : vo.getArealPv()).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||||
return CuMemberRetailAchieveVO.builder().smallAreaPv(getBigDecimal(smallAreaPv, rate)).pkBigMember(maxAchieveVO.getPkMember()).bigArealPv(getBigDecimal(maxAchieveVO.getArealPv(), rate)).build();
|
// return CuMemberRetailAchieveVO.builder().smallAreaPv(getBigDecimal(smallAreaPv, rate)).pkBigMember(maxAchieveVO.getPkMember()).bigArealPv(getBigDecimal(maxAchieveVO.getArealPv(), rate)).build();
|
||||||
|
return CuMemberRetailAchieveVO.builder()
|
||||||
|
.smallAreaPv(smallAreaPv)
|
||||||
|
.pkBigMember(maxAchieveVO.getPkMember())
|
||||||
|
.bigArealPv(maxAchieveVO.getArealPv())
|
||||||
|
.arealPv(maxAchieveVO.getArealPv())
|
||||||
|
.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -295,6 +301,11 @@ public class CuMemberRetailAchieveServiceImpl extends ServiceImpl<CuMemberRetail
|
||||||
int period = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(localDate).getPkId();
|
int period = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(localDate).getPkId();
|
||||||
return TableNameConstants.CU_MEMBER_RETAIL_RANGE + period;
|
return TableNameConstants.CU_MEMBER_RETAIL_RANGE + period;
|
||||||
}
|
}
|
||||||
|
private String getDayTableName() {
|
||||||
|
String localDate = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
|
||||||
|
int period = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(localDate).getPkId();
|
||||||
|
return TableNameConstants.CU_MEMBER_RETAIL_S + period;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -375,23 +386,26 @@ public class CuMemberRetailAchieveServiceImpl extends ServiceImpl<CuMemberRetail
|
||||||
public CuMemberRetailAchieveVO selectMemberSumAchieve(Long pkMember, Integer pkCountry, Integer systemType) {
|
public CuMemberRetailAchieveVO selectMemberSumAchieve(Long pkMember, Integer pkCountry, Integer systemType) {
|
||||||
//查询会员昨日业绩
|
//查询会员昨日业绩
|
||||||
String memberRetailTable = getTableName();
|
String memberRetailTable = getTableName();
|
||||||
|
String memberSecondTable = getDayTableName();
|
||||||
//查询直推会员
|
//查询直推会员
|
||||||
List<Long> pkMemberList = baseMapper.selectDirectPushByPkMember(pkMember, systemType);
|
// List<Long> pkMemberList = baseMapper.selectDirectPushByPkMember(pkMember, systemType);
|
||||||
|
// 2025年6月11日 取伞下 + 自己的ID
|
||||||
|
List<Long> pkMemberList = baseMapper.selectSubMemberIdByRootMember(pkMember, systemType);
|
||||||
//根据国家查汇率
|
//根据国家查汇率
|
||||||
BigDecimal rate = iCuMemberBaseService.getCurrency(pkCountry).getInExchangeRate();
|
BigDecimal rate = iCuMemberBaseService.getCurrency(pkCountry).getInExchangeRate();
|
||||||
//查询自己业绩
|
//查询自己业绩
|
||||||
List<CuMemberRetailAchieveVO> memberSelfAchieveList = new ArrayList<>();
|
List<CuMemberRetailAchieveVO> memberSelfAchieveList = new ArrayList<>();
|
||||||
|
|
||||||
//会员业绩
|
//会员业绩
|
||||||
CuMemberRetailAchieveVO memberAchieveVO = CuMemberRetailAchieveVO.builder().memberRetailTable(memberRetailTable).pkMember(pkMember).systemType(systemType).build();
|
// CuMemberRetailAchieveVO memberAchieveVO = CuMemberRetailAchieveVO.builder().memberRetailTable(memberRetailTable).pkMember(pkMember).systemType(systemType).build();
|
||||||
CuMemberRetailAchieveVO orderAchieveVO = baseMapper.selectMemberOrderSumAchieveByPkMember(memberAchieveVO);
|
// CuMemberRetailAchieveVO orderAchieveVO = baseMapper.selectMemberOrderSumAchieveByPkMember(memberAchieveVO);
|
||||||
if (null != orderAchieveVO && orderAchieveVO.getArealPv().compareTo(BigDecimal.ZERO) > 0) {
|
// if (null != orderAchieveVO && orderAchieveVO.getArealPv().compareTo(BigDecimal.ZERO) > 0) {
|
||||||
orderAchieveVO.setPkMember(pkMember);
|
// orderAchieveVO.setPkMember(pkMember);
|
||||||
memberSelfAchieveList.add(orderAchieveVO);
|
// memberSelfAchieveList.add(orderAchieveVO);
|
||||||
}
|
// }
|
||||||
//查询伞下业绩
|
//查询伞下业绩
|
||||||
if (CollUtil.isNotEmpty(pkMemberList)) {
|
if (CollUtil.isNotEmpty(pkMemberList)) {
|
||||||
List<CuMemberRetailAchieveVO> memberPushAchieveList = getMemberPushSumAchieve(pkMemberList, memberRetailTable, systemType);
|
List<CuMemberRetailAchieveVO> memberPushAchieveList = getMemberPushSumAchieve(pkMemberList, memberRetailTable, memberSecondTable, systemType);
|
||||||
if (CollUtil.isNotEmpty(memberPushAchieveList)) {
|
if (CollUtil.isNotEmpty(memberPushAchieveList)) {
|
||||||
memberSelfAchieveList.addAll(memberPushAchieveList);
|
memberSelfAchieveList.addAll(memberPushAchieveList);
|
||||||
}
|
}
|
||||||
|
@ -399,7 +413,7 @@ public class CuMemberRetailAchieveServiceImpl extends ServiceImpl<CuMemberRetail
|
||||||
if (CollUtil.isEmpty(memberSelfAchieveList)) {
|
if (CollUtil.isEmpty(memberSelfAchieveList)) {
|
||||||
return CuMemberRetailAchieveVO.builder().smallAreaPv(BigDecimal.ZERO).bigArealPv(BigDecimal.ZERO).build();
|
return CuMemberRetailAchieveVO.builder().smallAreaPv(BigDecimal.ZERO).bigArealPv(BigDecimal.ZERO).build();
|
||||||
}
|
}
|
||||||
return getMemberBigAndSmallAchieve(memberSelfAchieveList, rate);
|
return getMemberBigAndSmallAchieve(memberSelfAchieveList, rate);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -409,8 +423,11 @@ public class CuMemberRetailAchieveServiceImpl extends ServiceImpl<CuMemberRetail
|
||||||
* @param pkMemberList 直推会员ID
|
* @param pkMemberList 直推会员ID
|
||||||
* @return CuMemberAchieveVO
|
* @return CuMemberAchieveVO
|
||||||
*/
|
*/
|
||||||
private List<CuMemberRetailAchieveVO> getMemberPushSumAchieve(List<Long> pkMemberList, String memberRangeTable, Integer systemType) {
|
private List<CuMemberRetailAchieveVO> getMemberPushSumAchieve(List<Long> pkMemberList, String memberRangeTable,String memberSecondTable, Integer systemType) {
|
||||||
CuMemberRetailAchieveVO memberAchieveVO = CuMemberRetailAchieveVO.builder().memberRetailTable(memberRangeTable).pkMemberList(pkMemberList).systemType(systemType).build();
|
CuMemberRetailAchieveVO memberAchieveVO = CuMemberRetailAchieveVO.builder()
|
||||||
|
.memberRetailTable(memberRangeTable)
|
||||||
|
.memberRetailSTable(memberSecondTable)
|
||||||
|
.pkMemberList(pkMemberList).systemType(systemType).build();
|
||||||
return baseMapper.selectMemberSumAchieve(memberAchieveVO);
|
return baseMapper.selectMemberSumAchieve(memberAchieveVO);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -3,12 +3,10 @@ package com.hzs.retail.member.service.impl;
|
||||||
import cn.hutool.core.collection.CollectionUtil;
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.hzs.common.core.config.HzsConfig;
|
|
||||||
import com.hzs.common.core.constant.*;
|
import com.hzs.common.core.constant.*;
|
||||||
import com.hzs.common.core.enums.*;
|
import com.hzs.common.core.enums.*;
|
||||||
import com.hzs.common.core.exception.ServiceException;
|
import com.hzs.common.core.exception.ServiceException;
|
||||||
import com.hzs.common.core.service.RedisService;
|
import com.hzs.common.core.service.RedisService;
|
||||||
import com.hzs.common.core.utils.DateUtils;
|
|
||||||
import com.hzs.common.domain.retail.member.CuMemberRetailRegion;
|
import com.hzs.common.domain.retail.member.CuMemberRetailRegion;
|
||||||
import com.hzs.common.domain.retail.member.ext.CuMemberRetailRegionExt;
|
import com.hzs.common.domain.retail.member.ext.CuMemberRetailRegionExt;
|
||||||
import com.hzs.common.domain.system.base.BdArea;
|
import com.hzs.common.domain.system.base.BdArea;
|
||||||
|
@ -16,14 +14,12 @@ import com.hzs.retail.member.mapper.CuMemberRetailRegionMapper;
|
||||||
import com.hzs.retail.member.param.RetailMemberRegionParam;
|
import com.hzs.retail.member.param.RetailMemberRegionParam;
|
||||||
import com.hzs.retail.member.service.ICuMemberRetailAchieveService;
|
import com.hzs.retail.member.service.ICuMemberRetailAchieveService;
|
||||||
import com.hzs.retail.member.service.ICuMemberRetailRegionService;
|
import com.hzs.retail.member.service.ICuMemberRetailRegionService;
|
||||||
import com.hzs.retail.member.vo.CuMemberRetailAchieveVO;
|
|
||||||
import com.hzs.retail.member.vo.UnboundAreaVO;
|
import com.hzs.retail.member.vo.UnboundAreaVO;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
|
|
@ -461,7 +461,7 @@
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
|
||||||
<sql id="selectSmallAreaSumAchieve">
|
<sql id="selectSmallAreaSumAchieveBak">
|
||||||
<foreach collection="pkMemberList" item="pkMember" separator="union all">
|
<foreach collection="pkMemberList" item="pkMember" separator="union all">
|
||||||
SELECT SUM(t1.arealPv) arealPv ,#{pkMember} pkMember
|
SELECT SUM(t1.arealPv) arealPv ,#{pkMember} pkMember
|
||||||
FROM (
|
FROM (
|
||||||
|
@ -492,6 +492,23 @@
|
||||||
AND t0.category = 0)) t1
|
AND t0.category = 0)) t1
|
||||||
</foreach>
|
</foreach>
|
||||||
</sql>
|
</sql>
|
||||||
|
<sql id="selectSmallAreaSumAchieve">
|
||||||
|
<foreach collection="pkMemberList" item="pkMember" separator="union all">
|
||||||
|
SELECT SUM(t1.arealPv) arealPv ,#{pkMember} pkMember
|
||||||
|
FROM (
|
||||||
|
SELECT NVL(mr.CONSUME_PV + mr.TEAM_CONSUME_PV,0) arealPv
|
||||||
|
FROM ${memberRetailTable} mr
|
||||||
|
WHERE mr.category = 0
|
||||||
|
AND mr.pk_member = #{pkMember}
|
||||||
|
UNION ALL
|
||||||
|
SELECT
|
||||||
|
NVL( mrs.NEW_CONSUME_PV + mrs.TEAM_NEW_PV, 0 ) arealPv
|
||||||
|
FROM
|
||||||
|
${memberRetailSTable} mrs
|
||||||
|
WHERE mrs.pk_member = #{pkMember}
|
||||||
|
) t1
|
||||||
|
</foreach>
|
||||||
|
</sql>
|
||||||
|
|
||||||
|
|
||||||
<select id="selectMemberSumAchieve" resultType="com.hzs.retail.member.vo.CuMemberRetailAchieveVO">
|
<select id="selectMemberSumAchieve" resultType="com.hzs.retail.member.vo.CuMemberRetailAchieveVO">
|
||||||
|
@ -809,4 +826,14 @@
|
||||||
ORDER BY t3.monthBox desc
|
ORDER BY t3.monthBox desc
|
||||||
</select>
|
</select>
|
||||||
<!--市场动态盒数 结束-->
|
<!--市场动态盒数 结束-->
|
||||||
|
|
||||||
|
|
||||||
|
<select id="selectSubMemberIdByRootMember" resultType="java.lang.Long">
|
||||||
|
select cm.pk_id, cm.MEMBER_NAME
|
||||||
|
from cu_member cm
|
||||||
|
where cm.SYSTEM_TYPE = #{systemType}
|
||||||
|
start with cm.pk_id = #{pkMember}
|
||||||
|
connect by prior cm.pk_id = cm.pk_parent
|
||||||
|
order by level
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|
|
@ -9,7 +9,8 @@
|
||||||
cmrr.*,
|
cmrr.*,
|
||||||
bap.name province_val,
|
bap.name province_val,
|
||||||
bac.name city_val,
|
bac.name city_val,
|
||||||
bax.name county_val
|
bax.name county_val,
|
||||||
|
cm.IS_ACTIVATE
|
||||||
from cu_member cm
|
from cu_member cm
|
||||||
left join cu_member_retail_region cmrr
|
left join cu_member_retail_region cmrr
|
||||||
on cmrr.pk_member = cm.pk_id
|
on cmrr.pk_member = cm.pk_id
|
||||||
|
@ -30,7 +31,7 @@
|
||||||
and bax.del_flag = 0
|
and bax.del_flag = 0
|
||||||
where cm.del_flag = 0
|
where cm.del_flag = 0
|
||||||
and cm.pk_id = #{pkMember}
|
and cm.pk_id = #{pkMember}
|
||||||
and cm.IS_ACTIVATE=0
|
-- and cm.IS_ACTIVATE=0
|
||||||
and bg.grade_value >= #{gradeValue}
|
and bg.grade_value >= #{gradeValue}
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
|
|
@ -3,17 +3,13 @@ package com.hzs.retail.sale.controller.api;
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
import cn.hutool.core.collection.CollectionUtil;
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
import com.hzs.common.core.annotation.RepeatSubmit;
|
import com.hzs.common.core.annotation.RepeatSubmit;
|
||||||
import com.hzs.common.core.config.HzsConfig;
|
import com.hzs.common.core.config.BdConfig;
|
||||||
import com.hzs.common.core.constant.CacheConstants;
|
import com.hzs.common.core.constant.CacheConstants;
|
||||||
import com.hzs.common.core.constant.SysConstants;
|
|
||||||
import com.hzs.common.core.domain.R;
|
import com.hzs.common.core.domain.R;
|
||||||
import com.hzs.common.core.enums.EEnv;
|
|
||||||
import com.hzs.common.core.enums.EGrade;
|
import com.hzs.common.core.enums.EGrade;
|
||||||
import com.hzs.common.core.enums.ESpecialArea;
|
import com.hzs.common.core.enums.ESpecialArea;
|
||||||
import com.hzs.common.core.enums.EYesNo;
|
|
||||||
import com.hzs.common.core.exception.ServiceException;
|
import com.hzs.common.core.exception.ServiceException;
|
||||||
import com.hzs.common.core.service.RedisService;
|
import com.hzs.common.core.service.RedisService;
|
||||||
import com.hzs.common.core.utils.DateUtils;
|
|
||||||
import com.hzs.common.core.utils.StringUtils;
|
import com.hzs.common.core.utils.StringUtils;
|
||||||
import com.hzs.common.core.web.domain.AjaxResult;
|
import com.hzs.common.core.web.domain.AjaxResult;
|
||||||
import com.hzs.common.domain.member.base.CuMember;
|
import com.hzs.common.domain.member.base.CuMember;
|
||||||
|
@ -42,7 +38,6 @@ import org.springframework.web.bind.annotation.*;
|
||||||
import javax.validation.Valid;
|
import javax.validation.Valid;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Date;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
@ -317,6 +312,7 @@ public class ApiRetailOrderController {
|
||||||
.phone(newMember.getPhone())
|
.phone(newMember.getPhone())
|
||||||
.loginPassword(newMember.getLoginPassword())
|
.loginPassword(newMember.getLoginPassword())
|
||||||
.payPassword(newMember.getPayPassword())
|
.payPassword(newMember.getPayPassword())
|
||||||
|
.urlAddress(BdConfig.getPc())
|
||||||
.build());
|
.build());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -8,11 +8,7 @@ import lombok.NoArgsConstructor;
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Description: 新零售订单返回VO
|
* 新零售订单返回VO
|
||||||
* @Author: jiang chao
|
|
||||||
* @Time: 2024/12/12 16:38
|
|
||||||
* @Classname: RetailOrderVO
|
|
||||||
* @PackageName: com.hzs.retail.sale.vo
|
|
||||||
*/
|
*/
|
||||||
@Builder
|
@Builder
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
|
@ -47,4 +43,9 @@ public class RetailOrderVO implements Serializable {
|
||||||
*/
|
*/
|
||||||
private String payPassword;
|
private String payPassword;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 登录网址
|
||||||
|
*/
|
||||||
|
private String urlAddress;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,7 +2,7 @@ package com.hzs.sale.order.controller;
|
||||||
|
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
import cn.hutool.core.collection.CollectionUtil;
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
import com.hzs.common.core.config.HzsConfig;
|
import com.hzs.common.core.config.BdConfig;
|
||||||
import com.hzs.common.core.constant.CacheConstants;
|
import com.hzs.common.core.constant.CacheConstants;
|
||||||
import com.hzs.common.core.constant.CountryConstants;
|
import com.hzs.common.core.constant.CountryConstants;
|
||||||
import com.hzs.common.core.constant.HttpStatus;
|
import com.hzs.common.core.constant.HttpStatus;
|
||||||
|
@ -20,12 +20,9 @@ import com.hzs.common.domain.member.account.CuMemberAccount;
|
||||||
import com.hzs.common.domain.member.base.CuMember;
|
import com.hzs.common.domain.member.base.CuMember;
|
||||||
import com.hzs.common.domain.member.ext.CuMemberAccountExt;
|
import com.hzs.common.domain.member.ext.CuMemberAccountExt;
|
||||||
import com.hzs.common.domain.member.ext.CuMemberExt;
|
import com.hzs.common.domain.member.ext.CuMemberExt;
|
||||||
import com.hzs.common.domain.sale.ext.SaOrderExt;
|
|
||||||
import com.hzs.common.domain.sale.order.SaOrder;
|
import com.hzs.common.domain.sale.order.SaOrder;
|
||||||
import com.hzs.common.domain.sale.order.SaOrderItems;
|
|
||||||
import com.hzs.common.domain.scm.ic.IcAvailableNum;
|
import com.hzs.common.domain.scm.ic.IcAvailableNum;
|
||||||
import com.hzs.common.domain.scm.ic.ext.IcAvailableNumExt;
|
import com.hzs.common.domain.scm.ic.ext.IcAvailableNumExt;
|
||||||
import com.hzs.common.domain.scm.pub.ScmItemSpecs;
|
|
||||||
import com.hzs.common.domain.system.base.BdStorehouse;
|
import com.hzs.common.domain.system.base.BdStorehouse;
|
||||||
import com.hzs.common.security.utils.SecurityUtils;
|
import com.hzs.common.security.utils.SecurityUtils;
|
||||||
import com.hzs.common.util.TransactionUtils;
|
import com.hzs.common.util.TransactionUtils;
|
||||||
|
@ -52,13 +49,6 @@ import org.springframework.web.bind.annotation.RequestBody;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
/**
|
|
||||||
* @Description:
|
|
||||||
* @Author: sui q
|
|
||||||
* @Time: 2022/8/30 8:42
|
|
||||||
* @Classname: ParentOrderController
|
|
||||||
* @PackageName: com.hzs.sale.order.controller
|
|
||||||
*/
|
|
||||||
@Slf4j
|
@Slf4j
|
||||||
public abstract class ParentOrderController extends BaseController {
|
public abstract class ParentOrderController extends BaseController {
|
||||||
|
|
||||||
|
@ -391,7 +381,7 @@ public abstract class ParentOrderController extends BaseController {
|
||||||
**/
|
**/
|
||||||
protected String validateAvailableNum(OrderParam orderParam, String orderCode) {
|
protected String validateAvailableNum(OrderParam orderParam, String orderCode) {
|
||||||
// 验证是否控制进销存
|
// 验证是否控制进销存
|
||||||
if (EYesNo.NO.getIntValue() == HzsConfig.getEnable()) {
|
if (EYesNo.NO.getIntValue() == BdConfig.getEnable()) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
BdStorehouse bdStorehouse;
|
BdStorehouse bdStorehouse;
|
||||||
|
|
|
@ -11,7 +11,7 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.hzs.activity.pick.service.IAcRetailPickService;
|
import com.hzs.activity.pick.service.IAcRetailPickService;
|
||||||
import com.hzs.common.core.config.HzsConfig;
|
import com.hzs.common.core.config.BdConfig;
|
||||||
import com.hzs.common.core.constant.*;
|
import com.hzs.common.core.constant.*;
|
||||||
import com.hzs.common.core.constant.msg.ConfigMsgConstants;
|
import com.hzs.common.core.constant.msg.ConfigMsgConstants;
|
||||||
import com.hzs.common.core.constant.msg.MemberMsgConstants;
|
import com.hzs.common.core.constant.msg.MemberMsgConstants;
|
||||||
|
@ -63,7 +63,6 @@ import com.hzs.sale.order.param.*;
|
||||||
import com.hzs.sale.order.service.*;
|
import com.hzs.sale.order.service.*;
|
||||||
import com.hzs.sale.order.vo.*;
|
import com.hzs.sale.order.vo.*;
|
||||||
import com.hzs.sale.product.service.IBdProductExtendService;
|
import com.hzs.sale.product.service.IBdProductExtendService;
|
||||||
import com.hzs.sale.product.service.IBdProductService;
|
|
||||||
import com.hzs.sale.wares.service.*;
|
import com.hzs.sale.wares.service.*;
|
||||||
import com.hzs.scm.pub.IScmBillServiceApi;
|
import com.hzs.scm.pub.IScmBillServiceApi;
|
||||||
import com.hzs.system.base.IAreaServiceApi;
|
import com.hzs.system.base.IAreaServiceApi;
|
||||||
|
@ -151,8 +150,6 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
|
||||||
@Autowired
|
@Autowired
|
||||||
private UserTokenService userTokenService;
|
private UserTokenService userTokenService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private IBdProductService iBdProductService;
|
|
||||||
@Autowired
|
|
||||||
private IBdProductExtendService iBdProductExtendService;
|
private IBdProductExtendService iBdProductExtendService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private RabbitTemplate rabbitTemplate;
|
private RabbitTemplate rabbitTemplate;
|
||||||
|
@ -173,17 +170,12 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
|
||||||
private IOrderBusinessService orderBusinessService;
|
private IOrderBusinessService orderBusinessService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private ISaOrderChargeLogService saOrderChargeLogService;
|
private ISaOrderChargeLogService saOrderChargeLogService;
|
||||||
|
@Autowired
|
||||||
private RedisService redisService;
|
private RedisService redisService;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private IBdWaresDetailService bdWaresDetailService;
|
private IBdWaresDetailService bdWaresDetailService;
|
||||||
|
|
||||||
@Autowired
|
|
||||||
public void setRedisService(RedisService redisService) {
|
|
||||||
this.redisService = redisService;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<CuMemberExt> queryMemberExtByCondition(CuMember cuMember) {
|
public List<CuMemberExt> queryMemberExtByCondition(CuMember cuMember) {
|
||||||
return memberServiceApi.getMemberInfo(cuMember).getData();
|
return memberServiceApi.getMemberInfo(cuMember).getData();
|
||||||
|
@ -820,7 +812,7 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void convertAvailableNumMsg(List<IcAvailableNumExt> availableNumList) {
|
public void convertAvailableNumMsg(List<IcAvailableNumExt> availableNumList) {
|
||||||
if (EYesNo.NO.getIntValue() == HzsConfig.getEnable()) {
|
if (EYesNo.NO.getIntValue() == BdConfig.getEnable()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
log.info("生产活动消息,activity.exchange:{}", JSONUtil.toJsonStr(availableNumList));
|
log.info("生产活动消息,activity.exchange:{}", JSONUtil.toJsonStr(availableNumList));
|
||||||
|
@ -1838,7 +1830,7 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String validateAvailableNum(OrderParam orderParam, String orderCode) {
|
public String validateAvailableNum(OrderParam orderParam, String orderCode) {
|
||||||
if (EYesNo.NO.getIntValue() == HzsConfig.getEnable()) {
|
if (EYesNo.NO.getIntValue() == BdConfig.getEnable()) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
BdStorehouse bdStorehouse;
|
BdStorehouse bdStorehouse;
|
||||||
|
@ -2119,7 +2111,7 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
|
||||||
@Override
|
@Override
|
||||||
public Boolean checkPreSalesQuantity(OrderParam orderParam) {
|
public Boolean checkPreSalesQuantity(OrderParam orderParam) {
|
||||||
// 开关控制是否处理
|
// 开关控制是否处理
|
||||||
if (EYesNo.NO.getIntValue() == HzsConfig.getEnable()) {
|
if (EYesNo.NO.getIntValue() == BdConfig.getEnable()) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2158,7 +2150,7 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public Boolean reducePreSalesQuantity(String orderCode, Integer specialArea) {
|
public Boolean reducePreSalesQuantity(String orderCode, Integer specialArea) {
|
||||||
// 开关控制是否处理
|
// 开关控制是否处理
|
||||||
if (EYesNo.NO.getIntValue() == HzsConfig.getEnable()) {
|
if (EYesNo.NO.getIntValue() == BdConfig.getEnable()) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2532,14 +2524,15 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
|
||||||
} else if (EOrderType.RETAIL_REPURCHASE.getValue() == saOrderExt.getOrderType()) {
|
} else if (EOrderType.RETAIL_REPURCHASE.getValue() == saOrderExt.getOrderType()) {
|
||||||
// 复购订单存在盒数商品撤单,需要处理降级操作
|
// 复购订单存在盒数商品撤单,需要处理降级操作
|
||||||
if (saOrderExt.getBoxNum() > 0) {
|
if (saOrderExt.getBoxNum() > 0) {
|
||||||
Date firstDate = baseMapper.getFirstPayTime(cuMember.getPkId());
|
// TODO 目前只有注册、升级才能激活,复购不进行处理
|
||||||
if (null == firstDate) {
|
// Date firstDate = baseMapper.getFirstPayTime(cuMember.getPkId());
|
||||||
// 盒数商品订单最早的时间为空,则会员未激活
|
// if (null == firstDate) {
|
||||||
cuMember.setPayTime(null);
|
// // 盒数商品订单最早的时间为空,则会员未激活
|
||||||
cuMember.setPayStatus(EPayStatus.UNPAID.getValue());
|
// cuMember.setPayTime(null);
|
||||||
cuMember.setIsActivate(EYesNo.NO.getIntValue());
|
// cuMember.setPayStatus(EPayStatus.UNPAID.getValue());
|
||||||
saOrderExt.setUpdateFlag(EYesNo.YES.getIntValue());
|
// cuMember.setIsActivate(EYesNo.NO.getIntValue());
|
||||||
}
|
// saOrderExt.setUpdateFlag(EYesNo.YES.getIntValue());
|
||||||
|
// }
|
||||||
|
|
||||||
// TODO 恢复升级专区,复购专区不需要处理等级问题
|
// TODO 恢复升级专区,复购专区不需要处理等级问题
|
||||||
// // 如果复购订单后面还有升级订单,不需要处理等级问题; 复购订单后面没有升级订单,走新逻辑校验
|
// // 如果复购订单后面还有升级订单,不需要处理等级问题; 复购订单后面没有升级订单,走新逻辑校验
|
||||||
|
@ -2638,7 +2631,7 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
|
||||||
// 注册专区直接算等级
|
// 注册专区直接算等级
|
||||||
bdGrade = this.getGradeByBox(boxNum, gradeList, null, true);
|
bdGrade = this.getGradeByBox(boxNum, gradeList, null, true);
|
||||||
} else if (ESpecialArea.RETAIL_UPGRADE.getValue() == specialArea) {
|
} else if (ESpecialArea.RETAIL_UPGRADE.getValue() == specialArea) {
|
||||||
// 升级专区取消,一次性补差升级
|
// 升级专区,一次性补差升级
|
||||||
if (boxNum == 0) {
|
if (boxNum == 0) {
|
||||||
// 不满足升级条件
|
// 不满足升级条件
|
||||||
throw new ServiceException("不满足升级条件");
|
throw new ServiceException("不满足升级条件");
|
||||||
|
@ -2651,8 +2644,10 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
|
||||||
throw new ServiceException("当前已经是可以购买的最高等级");
|
throw new ServiceException("当前已经是可以购买的最高等级");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 获取升级盒数基数
|
||||||
|
int baseBoxNum = this.handleBaseBoxNum(updateGradeMember, memberGrade, gradeList, boxProductList, systemType);
|
||||||
// 计算等级
|
// 计算等级
|
||||||
bdGrade = this.getGradeByBox(boxNum, gradeList, memberGrade, true);
|
bdGrade = this.getGradeByBox(boxNum + baseBoxNum, gradeList, memberGrade, true);
|
||||||
|
|
||||||
// 会员等级 大于等于 购买盒数等级,则不充足升级条件
|
// 会员等级 大于等于 购买盒数等级,则不充足升级条件
|
||||||
if (memberGrade.getGradeValue().compareTo(bdGrade.getGradeValue()) >= 0) {
|
if (memberGrade.getGradeValue().compareTo(bdGrade.getGradeValue()) >= 0) {
|
||||||
|
@ -2703,7 +2698,7 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
|
||||||
Optional<BdGrade> gradeOptional = gradeList.stream().filter(tmpGrade -> tmpGrade.getGradeValue() > memberGrade.getGradeValue())
|
Optional<BdGrade> gradeOptional = gradeList.stream().filter(tmpGrade -> tmpGrade.getGradeValue() > memberGrade.getGradeValue())
|
||||||
.sorted(Comparator.comparingInt(BdGrade::getGradeValue).reversed())
|
.sorted(Comparator.comparingInt(BdGrade::getGradeValue).reversed())
|
||||||
.filter(tmpGrade -> tmpGrade.getBoxNumber() != 0)
|
.filter(tmpGrade -> tmpGrade.getBoxNumber() != 0)
|
||||||
.filter(tmpGrade -> tmpGrade.getBoxNumber() - memberGrade.getBoxNumber() <= boxTotal).findFirst();
|
.filter(tmpGrade -> tmpGrade.getBoxNumber() <= boxTotal).findFirst();
|
||||||
return gradeOptional.orElse(memberGrade);
|
return gradeOptional.orElse(memberGrade);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2715,7 +2710,7 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
|
||||||
* @param cuMember 会员信息
|
* @param cuMember 会员信息
|
||||||
* @param memberGrade 会员等级信息
|
* @param memberGrade 会员等级信息
|
||||||
* @param gradeList 等级列表
|
* @param gradeList 等级列表
|
||||||
* @param boxProductList 盒数商品商品
|
* @param boxProductList 盒数商品列表
|
||||||
* @param systemType 所属系统
|
* @param systemType 所属系统
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
|
@ -2723,35 +2718,56 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
|
||||||
public int handleBaseBoxNum(CuMember cuMember, BdGrade memberGrade,
|
public int handleBaseBoxNum(CuMember cuMember, BdGrade memberGrade,
|
||||||
List<BdGrade> gradeList, List<String> boxProductList,
|
List<BdGrade> gradeList, List<String> boxProductList,
|
||||||
Integer systemType) {
|
Integer systemType) {
|
||||||
// 获取今天开始时间
|
// 升级盒数基数
|
||||||
Date todayDate = DateUtils.getStartTime(new Date());
|
|
||||||
// 2025.03.18 调整需求,升级走当天累计,当天买的所有都进行积累,24点之后则重新累积(手动升级前后的盒数都算累计)
|
|
||||||
int baseBoxNum = 0;
|
int baseBoxNum = 0;
|
||||||
|
// 会员所有升级记录
|
||||||
// 是否有升级记录
|
|
||||||
List<CuMemberLevel> memberLevelList = iCuMemberDetailServiceApi.getUpgradeList(cuMember.getPkId()).getData();
|
List<CuMemberLevel> memberLevelList = iCuMemberDetailServiceApi.getUpgradeList(cuMember.getPkId()).getData();
|
||||||
if (CollectionUtil.isNotEmpty(memberLevelList)) {
|
if (CollectionUtil.isNotEmpty(memberLevelList)) {
|
||||||
// 如果今天有手动升级记录,则以手动升级记录的盒数 + 今天购买的盒数做累计
|
|
||||||
// 最新一次的手动升级记录
|
|
||||||
Optional<CuMemberLevel> lastManualOptional = memberLevelList.stream().filter(tmpGrade -> tmpGrade.getUpType().equals(EUpgradeType.MANUAL_UPGRADE.getValue())).findFirst();
|
Optional<CuMemberLevel> lastManualOptional = memberLevelList.stream().filter(tmpGrade -> tmpGrade.getUpType().equals(EUpgradeType.MANUAL_UPGRADE.getValue())).findFirst();
|
||||||
if (lastManualOptional.isPresent() && lastManualOptional.get().getUpgradeTime().compareTo(todayDate) >= 0) {
|
if (lastManualOptional.isPresent()) {
|
||||||
// 存在今天的手动升级记录
|
// 最新一次的手动升级
|
||||||
CuMemberLevel lastMemberLevel = lastManualOptional.get();
|
CuMemberLevel lastMemberLevel = lastManualOptional.get();
|
||||||
BdGrade lastUpdateGrade = gradeList.stream().filter(tmpGrade -> tmpGrade.getPkId().equals(lastMemberLevel.getNewLevel())).findFirst().get();
|
BdGrade lastUpdateGrade = gradeList.stream().filter(tmpGrade -> tmpGrade.getPkId().equals(lastMemberLevel.getNewLevel())).findFirst().get();
|
||||||
baseBoxNum = lastUpdateGrade.getBoxNumber();
|
// 盒数基数 = 手动升级盒数 + 手动升级之后的升级订单盒数
|
||||||
|
baseBoxNum = lastUpdateGrade.getBoxNumber()
|
||||||
|
+ saOrderItemsService.getRetailWaresQuantityNew(cuMember.getPkId(), boxProductList, lastMemberLevel.getUpgradeTime(), Collections.singletonList(EOrderType.RETAIL_UPGRADE.getValue()), systemType);
|
||||||
} else {
|
} else {
|
||||||
// 如果今天没有手动升级记录,则以今天以前最后一条升级记录的盒数 + 今天购买的盒数做累计
|
// 没有手动升级记录
|
||||||
memberLevelList = memberLevelList.stream().filter(tmp -> tmp.getUpgradeTime().compareTo(todayDate) < 0).collect(Collectors.toList());
|
saOrderItemsService.getRetailWaresQuantityNew(cuMember.getPkId(), boxProductList, null, Arrays.asList(EOrderType.RETAIL_REGISTER.getValue(), EOrderType.RETAIL_UPGRADE.getValue()), systemType);
|
||||||
if (CollectionUtil.isNotEmpty(memberLevelList)) {
|
|
||||||
CuMemberLevel lastMemberLevel = memberLevelList.get(0);
|
|
||||||
BdGrade lastUpdateGrade = gradeList.stream().filter(tmpGrade -> tmpGrade.getPkId().equals(lastMemberLevel.getNewLevel())).findFirst().get();
|
|
||||||
baseBoxNum = lastUpdateGrade.getBoxNumber();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
return baseBoxNum;
|
||||||
|
|
||||||
return baseBoxNum + saOrderItemsService.getRetailWaresQuantityNew(cuMember.getPkId(), boxProductList, todayDate,
|
|
||||||
Arrays.asList(EOrderType.RETAIL_REGISTER.getValue(), EOrderType.RETAIL_UPGRADE.getValue(), EOrderType.RETAIL_REPURCHASE.getValue()), systemType);
|
// // 获取今天开始时间
|
||||||
|
// Date todayDate = DateUtils.getStartTime(new Date());
|
||||||
|
// // 2025.03.18 调整需求,升级走当天累计,当天买的所有都进行积累,24点之后则重新累积(手动升级前后的盒数都算累计)
|
||||||
|
// int baseBoxNum = 0;
|
||||||
|
//
|
||||||
|
// // 是否有升级记录
|
||||||
|
// List<CuMemberLevel> memberLevelList = iCuMemberDetailServiceApi.getUpgradeList(cuMember.getPkId()).getData();
|
||||||
|
// if (CollectionUtil.isNotEmpty(memberLevelList)) {
|
||||||
|
// // 如果今天有手动升级记录,则以手动升级记录的盒数 + 今天购买的盒数做累计
|
||||||
|
// // 最新一次的手动升级记录
|
||||||
|
// Optional<CuMemberLevel> lastManualOptional = memberLevelList.stream().filter(tmpGrade -> tmpGrade.getUpType().equals(EUpgradeType.MANUAL_UPGRADE.getValue())).findFirst();
|
||||||
|
// if (lastManualOptional.isPresent() && lastManualOptional.get().getUpgradeTime().compareTo(todayDate) >= 0) {
|
||||||
|
// // 存在今天的手动升级记录
|
||||||
|
// CuMemberLevel lastMemberLevel = lastManualOptional.get();
|
||||||
|
// BdGrade lastUpdateGrade = gradeList.stream().filter(tmpGrade -> tmpGrade.getPkId().equals(lastMemberLevel.getNewLevel())).findFirst().get();
|
||||||
|
// baseBoxNum = lastUpdateGrade.getBoxNumber();
|
||||||
|
// } else {
|
||||||
|
// // 如果今天没有手动升级记录,则以今天以前最后一条升级记录的盒数 + 今天购买的盒数做累计
|
||||||
|
// memberLevelList = memberLevelList.stream().filter(tmp -> tmp.getUpgradeTime().compareTo(todayDate) < 0).collect(Collectors.toList());
|
||||||
|
// if (CollectionUtil.isNotEmpty(memberLevelList)) {
|
||||||
|
// CuMemberLevel lastMemberLevel = memberLevelList.get(0);
|
||||||
|
// BdGrade lastUpdateGrade = gradeList.stream().filter(tmpGrade -> tmpGrade.getPkId().equals(lastMemberLevel.getNewLevel())).findFirst().get();
|
||||||
|
// baseBoxNum = lastUpdateGrade.getBoxNumber();
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// return baseBoxNum + saOrderItemsService.getRetailWaresQuantityNew(cuMember.getPkId(), boxProductList, todayDate,
|
||||||
|
// Arrays.asList(EOrderType.RETAIL_REGISTER.getValue(), EOrderType.RETAIL_UPGRADE.getValue(), EOrderType.RETAIL_REPURCHASE.getValue()), systemType);
|
||||||
|
|
||||||
|
|
||||||
// // 是否当天购买(当天走累计升级,非当天走一次性补差)
|
// // 是否当天购买(当天走累计升级,非当天走一次性补差)
|
||||||
|
|
|
@ -36,9 +36,6 @@ import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 门票主表 前端控制器
|
* 门票主表 前端控制器
|
||||||
*
|
|
||||||
* @author hzs
|
|
||||||
* @since 2025-01-09
|
|
||||||
*/
|
*/
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/api/ticket")
|
@RequestMapping("/api/ticket")
|
||||||
|
@ -52,11 +49,9 @@ public class ApiSaTicketController extends ParentOrderController {
|
||||||
private IAcTicketService acTicketService;
|
private IAcTicketService acTicketService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* 支付购买订单
|
||||||
|
*
|
||||||
* @param orderParam 订单参数
|
* @param orderParam 订单参数
|
||||||
* @Description: 支付购买订单
|
|
||||||
* @return: AjaxResult
|
|
||||||
* @Author: sui q
|
|
||||||
* @Date: 2022/8/27 16:47
|
|
||||||
*/
|
*/
|
||||||
@RepeatSubmitSimple
|
@RepeatSubmitSimple
|
||||||
@PostMapping("/pay-ticket")
|
@PostMapping("/pay-ticket")
|
||||||
|
@ -113,15 +108,13 @@ public class ApiSaTicketController extends ParentOrderController {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* 支付购买订单
|
||||||
|
*
|
||||||
* @param orderParam 订单参数
|
* @param orderParam 订单参数
|
||||||
* @Description: 支付购买订单
|
|
||||||
* @return: AjaxResult
|
|
||||||
* @Author: sui q
|
|
||||||
* @Date: 2022/8/27 16:47
|
|
||||||
*/
|
*/
|
||||||
@PostMapping("/cancel-pay-ticket")
|
@PostMapping("/cancel-pay-ticket")
|
||||||
public AjaxResult cancelPaySaTicket(@RequestBody OrderParam orderParam) {
|
public AjaxResult cancelPaySaTicket(@RequestBody OrderParam orderParam) {
|
||||||
if(orderParam.getOrderCode() == null ) {
|
if (orderParam.getOrderCode() == null) {
|
||||||
return AjaxResult.error(TransactionUtils.getContent(MemberMsgConstants.REQUIRED_NOT_EMPTY));
|
return AjaxResult.error(TransactionUtils.getContent(MemberMsgConstants.REQUIRED_NOT_EMPTY));
|
||||||
}
|
}
|
||||||
// 查询门票
|
// 查询门票
|
||||||
|
@ -134,11 +127,9 @@ public class ApiSaTicketController extends ParentOrderController {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* 支付购买订单
|
||||||
|
*
|
||||||
* @param orderParam 订单参数
|
* @param orderParam 订单参数
|
||||||
* @Description: 支付购买订单
|
|
||||||
* @return: AjaxResult
|
|
||||||
* @Author: sui q
|
|
||||||
* @Date: 2022/8/27 16:47
|
|
||||||
*/
|
*/
|
||||||
@PostMapping("/pay-online")
|
@PostMapping("/pay-online")
|
||||||
public AjaxResult paySaTicketOnline(@RequestBody OrderParam orderParam) {
|
public AjaxResult paySaTicketOnline(@RequestBody OrderParam orderParam) {
|
||||||
|
@ -174,11 +165,9 @@ public class ApiSaTicketController extends ParentOrderController {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* 支付购买订单
|
||||||
|
*
|
||||||
* @param orderParam 订单参数
|
* @param orderParam 订单参数
|
||||||
* @Description: 支付购买订单
|
|
||||||
* @return: AjaxResult
|
|
||||||
* @Author: sui q
|
|
||||||
* @Date: 2022/8/27 16:47
|
|
||||||
*/
|
*/
|
||||||
@PostMapping("/pay-back")
|
@PostMapping("/pay-back")
|
||||||
public AjaxResult payBackSaTicketOnline(@RequestBody OrderParam orderParam) {
|
public AjaxResult payBackSaTicketOnline(@RequestBody OrderParam orderParam) {
|
||||||
|
@ -187,10 +176,8 @@ public class ApiSaTicketController extends ParentOrderController {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @description: 会员前台查询门票活动列表
|
* 会员前台查询门票活动列表
|
||||||
* @param: [acTicket]
|
*/
|
||||||
* @return: com.hzs.common.core.web.page.TableDataInfo
|
|
||||||
**/
|
|
||||||
@GetMapping("/query")
|
@GetMapping("/query")
|
||||||
public TableDataInfo querySaTick() {
|
public TableDataInfo querySaTick() {
|
||||||
SaTicketParam saTicketParam = SaTicketParam.builder()
|
SaTicketParam saTicketParam = SaTicketParam.builder()
|
||||||
|
@ -225,11 +212,9 @@ public class ApiSaTicketController extends ParentOrderController {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* 支付购买订单
|
||||||
|
*
|
||||||
* @param ticketParam 订单参数
|
* @param ticketParam 订单参数
|
||||||
* @Description: 支付购买订单
|
|
||||||
* @return: AjaxResult
|
|
||||||
* @Author: sui q
|
|
||||||
* @Date: 2022/8/27 16:47
|
|
||||||
*/
|
*/
|
||||||
@PostMapping("/update-ticket")
|
@PostMapping("/update-ticket")
|
||||||
public AjaxResult update(@RequestBody BuyTicketParam ticketParam) {
|
public AjaxResult update(@RequestBody BuyTicketParam ticketParam) {
|
||||||
|
@ -251,9 +236,7 @@ public class ApiSaTicketController extends ParentOrderController {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @description: 会员前台查询门票活动列表
|
* 会员前台查询门票活动列表
|
||||||
* @param: [acTicket]
|
|
||||||
* @return: com.hzs.common.core.web.page.TableDataInfo
|
|
||||||
**/
|
**/
|
||||||
@GetMapping("/query-ac")
|
@GetMapping("/query-ac")
|
||||||
public TableDataInfo queryAcTick() {
|
public TableDataInfo queryAcTick() {
|
||||||
|
@ -267,11 +250,7 @@ public class ApiSaTicketController extends ParentOrderController {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param fieldList 需要验证的字段
|
* 验证字段是否必输
|
||||||
* @Description: 验证字段是否必输
|
|
||||||
* @return: boolean
|
|
||||||
* @Author: sui q
|
|
||||||
* @Date: 2022/8/29 11:13
|
|
||||||
*/
|
*/
|
||||||
private boolean validateFieldNotNull(BuyTicketParam buyTicketParam, List<String> fieldList) {
|
private boolean validateFieldNotNull(BuyTicketParam buyTicketParam, List<String> fieldList) {
|
||||||
return fieldList.stream().anyMatch(field -> {
|
return fieldList.stream().anyMatch(field -> {
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
package com.hzs.sale.ticket.vo;
|
package com.hzs.sale.ticket.vo;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.TableField;
|
|
||||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
|
import com.hzs.common.core.annotation.BigDecimalFormat;
|
||||||
import com.hzs.common.core.annotation.Excel;
|
import com.hzs.common.core.annotation.Excel;
|
||||||
import com.hzs.common.core.annotation.Transaction;
|
import com.hzs.common.core.annotation.Transaction;
|
||||||
import com.hzs.common.core.constant.EnumsPrefixConstants;
|
import com.hzs.common.core.constant.EnumsPrefixConstants;
|
||||||
|
@ -15,12 +15,7 @@ import java.math.BigDecimal;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @description: 返回到前台页面
|
* 返回到前台页面
|
||||||
* @author: sui q
|
|
||||||
* @time: 2025/1/10 13:36
|
|
||||||
* @classname: SaTicketVO
|
|
||||||
* @package_name: com.hzs.sale.ticket.vo
|
|
||||||
* version 1.0.0
|
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
@Builder
|
@Builder
|
||||||
|
@ -51,13 +46,13 @@ public class SaTicketVO implements Serializable {
|
||||||
* 活动开始时间
|
* 活动开始时间
|
||||||
*/
|
*/
|
||||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||||
@Excel(name = "开始时间",dateFormat = "yyyy-MM-dd")
|
@Excel(name = "开始时间", dateFormat = "yyyy-MM-dd")
|
||||||
private Date actStartDate;
|
private Date actStartDate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 活动结束时间
|
* 活动结束时间
|
||||||
*/
|
*/
|
||||||
@Excel(name = "结束时间",dateFormat = "yyyy-MM-dd")
|
@Excel(name = "结束时间", dateFormat = "yyyy-MM-dd")
|
||||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||||
private Date actEndDate;
|
private Date actEndDate;
|
||||||
|
|
||||||
|
@ -70,12 +65,14 @@ public class SaTicketVO implements Serializable {
|
||||||
/**
|
/**
|
||||||
* 订单金额
|
* 订单金额
|
||||||
*/
|
*/
|
||||||
|
@BigDecimalFormat
|
||||||
@Excel(name = "订单金额")
|
@Excel(name = "订单金额")
|
||||||
private BigDecimal orderAmount;
|
private BigDecimal orderAmount;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 单价
|
* 单价
|
||||||
*/
|
*/
|
||||||
|
@BigDecimalFormat
|
||||||
@Excel(name = "单价")
|
@Excel(name = "单价")
|
||||||
private BigDecimal price;
|
private BigDecimal price;
|
||||||
|
|
||||||
|
@ -144,7 +141,7 @@ public class SaTicketVO implements Serializable {
|
||||||
/**
|
/**
|
||||||
* 支付时间
|
* 支付时间
|
||||||
*/
|
*/
|
||||||
@Excel(name = "支付时间",dateFormat = "yyyy-MM-dd HH:mm:ss")
|
@Excel(name = "支付时间", dateFormat = "yyyy-MM-dd HH:mm:ss")
|
||||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
private Date creationTime;
|
private Date creationTime;
|
||||||
|
|
||||||
|
|
|
@ -1183,7 +1183,9 @@
|
||||||
<foreach collection="waresCodeList" item="items" open="(" close=")" separator=",">
|
<foreach collection="waresCodeList" item="items" open="(" close=")" separator=",">
|
||||||
#{items}
|
#{items}
|
||||||
</foreach>
|
</foreach>
|
||||||
and to_char(so.pay_time, 'yyyy-mm-dd') = to_char(#{payTime}, 'yyyy-mm-dd')
|
<if test="payTime != null">
|
||||||
|
and so.pay_time > #{payTime}
|
||||||
|
</if>
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<!-- 订单发货数量 -->
|
<!-- 订单发货数量 -->
|
||||||
|
|
|
@ -1543,7 +1543,7 @@
|
||||||
where so.del_flag = 0
|
where so.del_flag = 0
|
||||||
and so.order_status = 1
|
and so.order_status = 1
|
||||||
and so.pk_member = #{pkMember}
|
and so.pk_member = #{pkMember}
|
||||||
and so.order_type in (41, 42, 43)
|
and so.order_type in (41, 42)
|
||||||
and so.box_num != 0
|
and so.box_num != 0
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
|
|
@ -61,7 +61,9 @@
|
||||||
left join bd_product bp
|
left join bd_product bp
|
||||||
on bd.pk_product=bp.pk_id and bp.del_flag=0
|
on bd.pk_product=bp.pk_id and bp.del_flag=0
|
||||||
left join (
|
left join (
|
||||||
select pk_wares_specs_sku,wmsys.wm_concat(distinct(sc.specs_name)) specs_name,wmsys.wm_concat(distinct(sc.pk_id)) specs_name_id
|
select pk_wares_specs_sku,
|
||||||
|
to_char(wm_concat(distinct(sc.specs_name))) specs_name,
|
||||||
|
to_char(wm_concat(distinct(sc.pk_id))) specs_name_id
|
||||||
from bd_wares_specs_relation br
|
from bd_wares_specs_relation br
|
||||||
left join bd_wares_specs bp
|
left join bd_wares_specs bp
|
||||||
on br.pk_wares_specs= bp.pk_id
|
on br.pk_wares_specs= bp.pk_id
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
package com.hzs.common.core.aspect;
|
package com.hzs.common.core.aspect;
|
||||||
|
|
||||||
import com.hzs.common.core.annotation.RepeatSubmit;
|
import com.hzs.common.core.annotation.RepeatSubmit;
|
||||||
import com.hzs.common.core.config.HzsConfig;
|
import com.hzs.common.core.config.BdConfig;
|
||||||
import com.hzs.common.core.constant.CacheToolsConstants;
|
import com.hzs.common.core.constant.CacheToolsConstants;
|
||||||
import com.hzs.common.core.constant.HttpStatus;
|
import com.hzs.common.core.constant.HttpStatus;
|
||||||
import com.hzs.common.core.constant.MemberFieldConstants;
|
import com.hzs.common.core.constant.MemberFieldConstants;
|
||||||
|
@ -53,7 +53,7 @@ public class RepeatSubmitAspectAdvice {
|
||||||
request.getHeader(MemberFieldConstants.TOKEN);
|
request.getHeader(MemberFieldConstants.TOKEN);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
if (EEnv.DEV.getValue().equals(HzsConfig.getEnv())) {
|
if (EEnv.DEV.getValue().equals(BdConfig.getEnv())) {
|
||||||
// 本地研发环境,不做拦截处理
|
// 本地研发环境,不做拦截处理
|
||||||
return joinPoint.proceed();
|
return joinPoint.proceed();
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,17 +8,17 @@ import org.springframework.stereotype.Component;
|
||||||
*/
|
*/
|
||||||
@Component
|
@Component
|
||||||
@ConfigurationProperties(prefix = "bd")
|
@ConfigurationProperties(prefix = "bd")
|
||||||
public class HzsConfig {
|
public class BdConfig {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 当前环境
|
* 当前环境
|
||||||
*/
|
*/
|
||||||
private static String env;
|
private static String env;
|
||||||
|
|
||||||
// /**
|
/**
|
||||||
// * PC地址
|
* PC地址
|
||||||
// */
|
*/
|
||||||
// private static String pc;
|
private static String pc;
|
||||||
// /**
|
// /**
|
||||||
// * 公众号地址
|
// * 公众号地址
|
||||||
// */
|
// */
|
||||||
|
@ -39,17 +39,17 @@ public class HzsConfig {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setEnv(String env) {
|
public void setEnv(String env) {
|
||||||
HzsConfig.env = env;
|
BdConfig.env = env;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String getPc() {
|
||||||
|
return pc;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPc(String pc) {
|
||||||
|
BdConfig.pc = pc;
|
||||||
}
|
}
|
||||||
|
|
||||||
// public static String getPc() {
|
|
||||||
// return pc;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// public void setPc(String pc) {
|
|
||||||
// HzsConfig.pc = pc;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// public static String getGzh() {
|
// public static String getGzh() {
|
||||||
// return gzh;
|
// return gzh;
|
||||||
// }
|
// }
|
||||||
|
@ -79,6 +79,6 @@ public class HzsConfig {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setEnable(Integer enable) {
|
public void setEnable(Integer enable) {
|
||||||
HzsConfig.enable = enable;
|
BdConfig.enable = enable;
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -1,5 +1,6 @@
|
||||||
package com.hzs.common.core.constant;
|
package com.hzs.common.core.constant;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
@ -8,6 +9,11 @@ import java.util.List;
|
||||||
*/
|
*/
|
||||||
public class RetailProductConstants {
|
public class RetailProductConstants {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 区域分红,每盒2元
|
||||||
|
*/
|
||||||
|
public static final BigDecimal AREA_BOX_BONUS = new BigDecimal("2");
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 盒数产品列表
|
* 盒数产品列表
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -19,6 +19,10 @@ public enum EBonusItems {
|
||||||
* 启动卡直推
|
* 启动卡直推
|
||||||
*/
|
*/
|
||||||
BOOT_CARD(2, "旧启动卡直推", 0, EnumsPrefixConstants.BONUS_ITEMS + 2),
|
BOOT_CARD(2, "旧启动卡直推", 0, EnumsPrefixConstants.BONUS_ITEMS + 2),
|
||||||
|
/**
|
||||||
|
* 直推收益
|
||||||
|
*/
|
||||||
|
DIRECT_INCOME(3, "旧直推收益", 0, EnumsPrefixConstants.BONUS_ITEMS + 3),
|
||||||
/**
|
/**
|
||||||
* 拓展收益
|
* 拓展收益
|
||||||
*/
|
*/
|
||||||
|
@ -83,9 +87,9 @@ public enum EBonusItems {
|
||||||
////////////////////////////////////////////////// 新奖项 //////////////////////////////////////////////////
|
////////////////////////////////////////////////// 新奖项 //////////////////////////////////////////////////
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 直推收益 -- 秒结,日奖
|
* 直推收益(新零售直推级差收益) -- 秒结,日奖
|
||||||
*/
|
*/
|
||||||
DIRECT_INCOME(3, "直推收益", 0, EnumsPrefixConstants.BONUS_ITEMS + 3),
|
RETAIL_RANGE_INCOME(25, "直推收益", 0, EnumsPrefixConstants.BONUS_ITEMS + 25),
|
||||||
/**
|
/**
|
||||||
* 平级收益(新零售平级收益) -- 秒结,日奖
|
* 平级收益(新零售平级收益) -- 秒结,日奖
|
||||||
*/
|
*/
|
||||||
|
@ -94,14 +98,12 @@ public enum EBonusItems {
|
||||||
* 区域分红(新零售区域收益) -- 秒结,日奖
|
* 区域分红(新零售区域收益) -- 秒结,日奖
|
||||||
*/
|
*/
|
||||||
RETAIL_AREA_INCOME(27, "区域分红", 0, EnumsPrefixConstants.BONUS_ITEMS + 27),
|
RETAIL_AREA_INCOME(27, "区域分红", 0, EnumsPrefixConstants.BONUS_ITEMS + 27),
|
||||||
/**
|
|
||||||
* 月度级差收益(新零售极差收益) -- 月结,月奖
|
|
||||||
*/
|
|
||||||
RETAIL_RANGE_INCOME(25, "月度级差收益", 0, EnumsPrefixConstants.BONUS_ITEMS + 25),
|
|
||||||
/**
|
/**
|
||||||
* 复购级差收益(新) -- 月结,月奖
|
* 复购级差收益(新) -- 月结,月奖
|
||||||
*/
|
*/
|
||||||
RETAIL_MONTH_REPURCHASE_INCOME(31, "复购级差收益", 0, EnumsPrefixConstants.BONUS_ITEMS + 31),
|
RETAIL_MONTH_REPURCHASE_INCOME(31, "复购级差收益", 0, EnumsPrefixConstants.BONUS_ITEMS + 31),
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 月度分红 - 平均收益(新零售福利平均收益) -- 月结,月奖
|
* 月度分红 - 平均收益(新零售福利平均收益) -- 月结,月奖
|
||||||
*/
|
*/
|
||||||
|
@ -110,6 +112,7 @@ public enum EBonusItems {
|
||||||
* 月度分红 - 加权收益(新零售福利加权收益) -- 月结,月奖
|
* 月度分红 - 加权收益(新零售福利加权收益) -- 月结,月奖
|
||||||
*/
|
*/
|
||||||
RETAIL_BENEFIT_INCOME(29, "月度分红加权收益", 0, EnumsPrefixConstants.BONUS_ITEMS + 29),
|
RETAIL_BENEFIT_INCOME(29, "月度分红加权收益", 0, EnumsPrefixConstants.BONUS_ITEMS + 29),
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 培育津贴(新) -- 月结,月奖
|
* 培育津贴(新) -- 月结,月奖
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -98,4 +98,8 @@ public class CuMemberRetailRegionExt extends CuMemberRetailRegion {
|
||||||
*/
|
*/
|
||||||
private Integer pkCountry;
|
private Integer pkCountry;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 2025年6月11日 是否激活 (0-是, 1-否)
|
||||||
|
*/
|
||||||
|
private Integer isActivate;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue