## 商品盒数支持小数处理;

This commit is contained in:
cabbage 2025-07-01 09:32:40 +08:00
parent 7766c46086
commit 99a8b74ec0
31 changed files with 1080 additions and 1470 deletions

View File

@ -91,7 +91,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
// 等级列表
List<BdGrade> retaiGradeList = bonusConfigDTO.getRetaiGradeList();
for (BdGrade bdGrade : retaiGradeList) {
if (bdGrade.getBoxTotal() > 0) {
if (bdGrade.getBoxTotal().compareTo(BigDecimal.ZERO) > 0) {
retailTeamGradeMap.put(bdGrade.getGradeValue(), bdGrade);
}
gradeMap.put(bdGrade.getGradeValue(), bdGrade);
@ -115,10 +115,10 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
CuMemberRetailRangeExt sourceMemberRangeExt = memberRangeExtMap.get(saOrderExt.getPkMember());
// 先算等级 注册升级计算等级
// 订单指定产品盒数
int boxNum = 0;
BigDecimal boxNum = BigDecimal.ZERO;
for (SaOrderWaresExt saOrderItems : saOrderExt.getOrderWaresExtList()) {
if (RetailConstants.ALL_BOX_WARES_LIST.contains(saOrderItems.getWaresCode())) {
boxNum += saOrderItems.getWaresQuantity();
boxNum = boxNum.add(saOrderItems.getBoxNum().multiply(new BigDecimal(saOrderItems.getWaresQuantity())));
}
}
saOrderExt.setBoxNum(boxNum);
@ -126,9 +126,9 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
// 订单业绩
BigDecimal orderAchieve = saOrderExt.getOrderAchieve();
// 注册升级复购重消盒数业绩算个人累计数据盒数业绩
sourceMemberRangeExt.setNewBoxNum(sourceMemberRangeExt.getNewBoxNum() + boxNum);
sourceMemberRangeExt.setConsumeBoxNum(sourceMemberRangeExt.getConsumeBoxNum() + boxNum);
sourceMemberRangeExt.setMonthBoxNum(sourceMemberRangeExt.getMonthBoxNum() + boxNum);
sourceMemberRangeExt.setNewBoxNum(sourceMemberRangeExt.getNewBoxNum().add(boxNum));
sourceMemberRangeExt.setConsumeBoxNum(sourceMemberRangeExt.getConsumeBoxNum().add(boxNum));
sourceMemberRangeExt.setMonthBoxNum(sourceMemberRangeExt.getMonthBoxNum().add(boxNum));
sourceMemberRangeExt.setNewConsumePv(ComputeUtil.computeAdd(sourceMemberRangeExt.getNewConsumePv(), orderAchieve));
sourceMemberRangeExt.setConsumePv(ComputeUtil.computeAdd(sourceMemberRangeExt.getConsumePv(), orderAchieve));
sourceMemberRangeExt.setMonthConsumePv(ComputeUtil.computeAdd(sourceMemberRangeExt.getMonthConsumePv(), orderAchieve));
@ -233,7 +233,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
List<BdGrade> retailGradeList = bonusConfigDTO.getRetaiGradeList();
// 等级
for (BdGrade bdGrade : retailGradeList) {
if (bdGrade.getBoxTotal() > 0) {
if (bdGrade.getBoxTotal().compareTo(BigDecimal.ZERO) > 0) {
retailTeamGradeMap.put(bdGrade.getGradeValue(), bdGrade);
}
gradeIdMap.put(bdGrade.getPkId(), bdGrade);
@ -253,10 +253,10 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
// 计算自消费奖衔
CuMemberRetailRangeExt sourceMemberRangeExt = memberRangeExtMap.get(saOrderExt.getPkMember());
// 先算等级 注册升级计算等级
int boxNum = 0;
BigDecimal boxNum = BigDecimal.ZERO;
for (SaOrderWaresExt saOrderItems : saOrderExt.getOrderWaresExtList()) {
if (RetailConstants.ALL_BOX_WARES_LIST.contains(saOrderItems.getWaresCode())) {
boxNum += saOrderItems.getWaresQuantity();
boxNum = boxNum.add(saOrderItems.getBoxNum().multiply(new BigDecimal(saOrderItems.getWaresQuantity())));
}
}
saOrderExt.setBoxNum(boxNum);
@ -264,9 +264,9 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
// 订单业绩
BigDecimal orderAchieve = saOrderExt.getOrderAchieve();
// 复购重消盒数业绩算个人累计数据盒数业绩
sourceMemberRangeExt.setNewBoxNum(sourceMemberRangeExt.getNewBoxNum() - boxNum);
sourceMemberRangeExt.setConsumeBoxNum(sourceMemberRangeExt.getConsumeBoxNum() - boxNum);
sourceMemberRangeExt.setMonthBoxNum(sourceMemberRangeExt.getMonthBoxNum() - boxNum);
sourceMemberRangeExt.setNewBoxNum(sourceMemberRangeExt.getNewBoxNum().add(boxNum));
sourceMemberRangeExt.setConsumeBoxNum(sourceMemberRangeExt.getConsumeBoxNum().add(boxNum));
sourceMemberRangeExt.setMonthBoxNum(sourceMemberRangeExt.getMonthBoxNum().add(boxNum));
sourceMemberRangeExt.setNewConsumePv(ComputeUtil.computeSubtract(sourceMemberRangeExt.getNewConsumePv(), orderAchieve));
sourceMemberRangeExt.setConsumePv(ComputeUtil.computeSubtract(sourceMemberRangeExt.getConsumePv(), orderAchieve));
sourceMemberRangeExt.setMonthConsumePv(ComputeUtil.computeSubtract(sourceMemberRangeExt.getMonthConsumePv(), orderAchieve));
@ -461,7 +461,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
// 等级列表
List<BdGrade> retaiGradeList = bonusConfigDTO.getRetaiGradeList();
for (BdGrade bdGrade : retaiGradeList) {
if (bdGrade.getBoxTotal() > 0) {
if (bdGrade.getBoxTotal().compareTo(BigDecimal.ZERO) > 0) {
retailTeamGradeMap.put(bdGrade.getGradeValue(), bdGrade);
}
gradeMap.put(bdGrade.getGradeValue(), bdGrade);
@ -510,18 +510,18 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
CuMemberRetailRangeExt sourceMemberRangeExt = memberRangeExtMap.get(saOrderExt.getPkMember());
// 订单指定产品盒数计算等级使用
int boxNum = 0;
BigDecimal boxNum = BigDecimal.ZERO;
for (SaOrderWaresExt saOrderItems : saOrderExt.getOrderWaresExtList()) {
if (RetailConstants.ALL_BOX_WARES_LIST.contains(saOrderItems.getWaresCode())) {
boxNum += saOrderItems.getWaresQuantity();
boxNum = boxNum.add(saOrderItems.getBoxNum().multiply(new BigDecimal(saOrderItems.getWaresQuantity())));
}
}
// 个人累计消费pv
BigDecimal orderAchieve = saOrderExt.getOrderAchieve();
// 复购重消盒数业绩算个人累计数据盒数业绩
sourceMemberRangeExt.setNewBoxNum(sourceMemberRangeExt.getNewBoxNum() + boxNum);
sourceMemberRangeExt.setConsumeBoxNum(sourceMemberRangeExt.getConsumeBoxNum() + boxNum);
sourceMemberRangeExt.setMonthBoxNum(sourceMemberRangeExt.getMonthBoxNum() + boxNum);
sourceMemberRangeExt.setNewBoxNum(sourceMemberRangeExt.getNewBoxNum().add(boxNum));
sourceMemberRangeExt.setConsumeBoxNum(sourceMemberRangeExt.getConsumeBoxNum().add(boxNum));
sourceMemberRangeExt.setMonthBoxNum(sourceMemberRangeExt.getMonthBoxNum().add(boxNum));
sourceMemberRangeExt.setNewConsumePv(ComputeUtil.computeAdd(sourceMemberRangeExt.getNewConsumePv(), orderAchieve));
sourceMemberRangeExt.setConsumePv(ComputeUtil.computeAdd(sourceMemberRangeExt.getConsumePv(), orderAchieve));
sourceMemberRangeExt.setMonthConsumePv(ComputeUtil.computeAdd(sourceMemberRangeExt.getMonthConsumePv(), orderAchieve));
@ -535,7 +535,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
// 计算奖金 直推级差 + 平级收益
if ((EOrderType.RETAIL_REGISTER.getValue() == saOrderExt.getOrderType()
|| EOrderType.RETAIL_UPGRADE.getValue() == saOrderExt.getOrderType())
&& boxNum > 0
&& boxNum.compareTo(BigDecimal.ZERO) > 0
) {
// 注册或升级订单并且存在盒数产品才有 直推级差收益 平级收益
for (SaOrderWaresExt saOrderItems : saOrderExt.getOrderWaresExtList()) {
@ -605,7 +605,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
*/
public List<CuMemberAwards> calculateRetailRangeGradeAwards(Integer period, Map<Long, CuMemberRetailRangeExt> memberRangeExtMap, String rangeTableName, SaOrderExt saOrderExt,
Map<Integer, BdGrade> retailTeamGradeMap, Map<Integer, BdAwards> retailAwardsMap, String secondRangeTableName,
Integer boxNum, List<CuMemberGrade> cuMemberGradeList, Map<Long, Date> activateMap) {
BigDecimal boxNum, List<CuMemberGrade> cuMemberGradeList, Map<Long, Date> activateMap) {
// 会员奖衔升级列表
List<CuMemberAwards> cuMemberAwardsList = new ArrayList<>();
// 订单会员
@ -634,9 +634,9 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
targetMemberRangeExt.setTeamConsumePv(ComputeUtil.computeAdd(targetMemberRangeExt.getTeamConsumePv(), orderAchieve));
targetMemberRangeExt.setTeamMonthPv(ComputeUtil.computeAdd(targetMemberRangeExt.getTeamMonthPv(), orderAchieve));
// 累计盒数
targetMemberRangeExt.setTeamNewBoxNum(targetMemberRangeExt.getTeamNewBoxNum() + boxNum);
targetMemberRangeExt.setTeamBoxNum(targetMemberRangeExt.getTeamBoxNum() + boxNum);
targetMemberRangeExt.setTeamMonthBoxNum(targetMemberRangeExt.getTeamMonthBoxNum() + boxNum);
targetMemberRangeExt.setTeamNewBoxNum(targetMemberRangeExt.getTeamNewBoxNum().add(boxNum));
targetMemberRangeExt.setTeamBoxNum(targetMemberRangeExt.getTeamBoxNum().add(boxNum));
targetMemberRangeExt.setTeamMonthBoxNum(targetMemberRangeExt.getTeamMonthBoxNum().add(boxNum));
// 计算等级
calculateGradeAwards(period, memberRangeExtMap, rangeTableName, saOrderExt, retailTeamGradeMap, retailAwardsMap,
secondRangeTableName, cuMemberGradeList, cuMemberAwardsList, targetMemberRangeExt, activateMap);
@ -665,10 +665,10 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
// 如果等级值 大于 当前会员等级值 并且 等级要求累计盒数 小于等于 团队累计盒数 + 累计消费盒数则可以进行升级
if (bdGrade.getGradeValue() > targetMemberRangeExt.getGradeValue()
&& bdGrade.getBoxTotal() <= (
targetMemberRangeExt.getTeamBoxNum() + targetMemberRangeExt.getConsumeBoxNum()
+ targetMemberRangeExt.getBigBoxNum() + targetMemberRangeExt.getSmallBoxNum()
)) {
&& bdGrade.getBoxTotal().compareTo(
targetMemberRangeExt.getTeamBoxNum().add(targetMemberRangeExt.getConsumeBoxNum()).add(targetMemberRangeExt.getBigBoxNum()).add(targetMemberRangeExt.getSmallBoxNum())
) <= 0
) {
// 验证小区计算小区累计盒数 查询伞下会员
List<CuMemberRetailRangeExt> cuMemberRangeExtList;
if (secondRangeTableName != null) {
@ -681,12 +681,12 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
// new 新逻辑确认注水 2 个虚拟区自己消费 1 个虚拟区伞下直推所有的最大
// 大区盒数默认为自己累计消费盒数
int bigBoxNum = targetMemberRangeExt.getConsumeBoxNum();
if (targetMemberRangeExt.getBigBoxNum() > bigBoxNum) {
BigDecimal bigBoxNum = targetMemberRangeExt.getConsumeBoxNum();
if (targetMemberRangeExt.getBigBoxNum().compareTo(bigBoxNum) > 0) {
// 注水大区如果大则使用注水盒数为大区
bigBoxNum = targetMemberRangeExt.getBigBoxNum();
}
if (targetMemberRangeExt.getSmallBoxNum() > bigBoxNum) {
if (targetMemberRangeExt.getSmallBoxNum().compareTo(bigBoxNum) > 0) {
// 注水小区如果大则使用注水盒数为大区
bigBoxNum = targetMemberRangeExt.getSmallBoxNum();
}
@ -696,17 +696,16 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
cuMemberRetailRangeExt = memberRangeExtMap.get(cuMemberRetailRangeExt.getPkMember());
}
// 伞下团队累计盒数 + 自己消费盒数
int areaBoxNum = cuMemberRetailRangeExt.getTeamBoxNum() + cuMemberRetailRangeExt.getConsumeBoxNum();
if (areaBoxNum > bigBoxNum) {
BigDecimal areaBoxNum = cuMemberRetailRangeExt.getTeamBoxNum().add(cuMemberRetailRangeExt.getConsumeBoxNum());
if (areaBoxNum.compareTo(bigBoxNum) > 0) {
// 实际订单累计盒数 大于 累计消费盒数实际订单累计盒数为大区
bigBoxNum = areaBoxNum;
}
}
// 小区盒数团队累计盒数 + 自消费累计盒数 + 两个注水虚拟盒数 - 大市场盒数
int smallBoxNum = targetMemberRangeExt.getTeamBoxNum() + targetMemberRangeExt.getConsumeBoxNum()
+ targetMemberRangeExt.getBigBoxNum() + targetMemberRangeExt.getSmallBoxNum() - bigBoxNum;
if (smallBoxNum >= bdGrade.getBoxSmallTotal()) {
BigDecimal smallBoxNum = targetMemberRangeExt.getTeamBoxNum().add(targetMemberRangeExt.getConsumeBoxNum()).add(targetMemberRangeExt.getBigBoxNum()).add(targetMemberRangeExt.getSmallBoxNum()).subtract(bigBoxNum);
if (smallBoxNum.compareTo(bdGrade.getBoxSmallTotal()) >= 0) {
// 小区盒数 大于等于 升级小区盒数
CuMemberGrade cuMemberGrade = getCuMemberGrade(period, targetMemberRangeExt, bdGrade);
cuMemberGradeList.add(cuMemberGrade);
@ -815,7 +814,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
* 计算团队极差奖衔
*/
public List<CuMemberRetailRangeExt> calculateRetailBackRangeGradeAwards(Integer period, Map<Long, CuMemberRetailRangeExt> memberRangeExtMap, String rangeTableName, SaOrderExt saOrderExt,
Map<Integer, BdGrade> retailTeamGradeMap, Map<Integer, BdAwards> retailAwardsMap, String secondRangeTableName, Integer boxNum,
Map<Integer, BdGrade> retailTeamGradeMap, Map<Integer, BdAwards> retailAwardsMap, String secondRangeTableName, BigDecimal boxNum,
Map<String, CuMemberGrade> cuMemberGradeMap, Map<String, CuMemberAwards> cuMemberAwardsMap, Map<String, CuMemberAwards> cuMemberShareAwardsMap) {
List<CuMemberRetailRangeExt> cuMemberRetailRangeExtList = new ArrayList<>();
// 订单会员
@ -837,9 +836,9 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
targetMemberRangeExt.setTeamConsumeAmount(ComputeUtil.computeSubtract(targetMemberRangeExt.getTeamConsumeAmount(), orderAmount));
targetMemberRangeExt.setTeamMonthAmount(ComputeUtil.computeSubtract(targetMemberRangeExt.getTeamMonthAmount(), orderAmount));
// 累计盒数
targetMemberRangeExt.setTeamNewBoxNum(targetMemberRangeExt.getTeamNewBoxNum() - boxNum);
targetMemberRangeExt.setTeamBoxNum(targetMemberRangeExt.getTeamBoxNum() - boxNum);
targetMemberRangeExt.setTeamMonthBoxNum(targetMemberRangeExt.getTeamMonthBoxNum() - boxNum);
targetMemberRangeExt.setTeamNewBoxNum(targetMemberRangeExt.getTeamNewBoxNum().add(boxNum));
targetMemberRangeExt.setTeamBoxNum(targetMemberRangeExt.getTeamBoxNum().add(boxNum));
targetMemberRangeExt.setTeamMonthBoxNum(targetMemberRangeExt.getTeamMonthBoxNum().add(boxNum));
// 计算等级
calculateBackGrade(period, memberRangeExtMap, rangeTableName, saOrderExt, retailTeamGradeMap, retailAwardsMap, secondRangeTableName,
cuMemberGradeMap, cuMemberAwardsMap, cuMemberShareAwardsMap, targetMemberRangeExt);
@ -859,10 +858,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
for (Integer gradeValue : retailTeamGradeMap.keySet()) {
BdGrade bdGrade = retailTeamGradeMap.get(gradeValue);
if (bdGrade.getBoxTotal() <= (
targetMemberRangeExt.getTeamBoxNum() + targetMemberRangeExt.getConsumeBoxNum()
+ targetMemberRangeExt.getBigBoxNum() + targetMemberRangeExt.getSmallBoxNum()
)) {
if (bdGrade.getBoxTotal().compareTo(targetMemberRangeExt.getTeamBoxNum().add(targetMemberRangeExt.getConsumeBoxNum()).add(targetMemberRangeExt.getBigBoxNum()).add(targetMemberRangeExt.getSmallBoxNum())) <= 0) {
// 验证小区计算小区累计盒数 查询伞下会员
List<CuMemberRetailRangeExt> cuMemberRangeExtList;
if (secondRangeTableName != null) {
@ -875,12 +871,12 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
// new 新逻辑确认注水 2 个虚拟区自己消费 1 个虚拟区伞下直推所有的最大
// 大区盒数默认为自己累计消费盒数
int bigBoxNum = targetMemberRangeExt.getConsumeBoxNum();
if (targetMemberRangeExt.getBigBoxNum() > bigBoxNum) {
BigDecimal bigBoxNum = targetMemberRangeExt.getConsumeBoxNum();
if (targetMemberRangeExt.getBigBoxNum().compareTo(bigBoxNum) > 0) {
// 注水大区如果大则使用注水盒数为大区
bigBoxNum = targetMemberRangeExt.getBigBoxNum();
}
if (targetMemberRangeExt.getSmallBoxNum() > bigBoxNum) {
if (targetMemberRangeExt.getSmallBoxNum().compareTo(bigBoxNum) > 0) {
// 注水小区如果大则使用注水盒数为大区
bigBoxNum = targetMemberRangeExt.getSmallBoxNum();
}
@ -890,17 +886,16 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
cuMemberRetailRangeExt = memberRangeExtMap.get(cuMemberRetailRangeExt.getPkMember());
}
// 伞下团队累计盒数 + 自己消费盒数
int areaBoxNum = cuMemberRetailRangeExt.getTeamBoxNum() + cuMemberRetailRangeExt.getConsumeBoxNum();
if (areaBoxNum > bigBoxNum) {
BigDecimal areaBoxNum = cuMemberRetailRangeExt.getTeamBoxNum().add(cuMemberRetailRangeExt.getConsumeBoxNum());
if (areaBoxNum.compareTo(bigBoxNum) > 0) {
// 实际订单累计盒数 大于 累计消费盒数实际订单累计盒数为大区
bigBoxNum = areaBoxNum;
}
}
// 小区盒数团队累计盒数 + 自消费累计盒数 + 两个注水虚拟盒数 - 大市场盒数
int smallBoxNum = targetMemberRangeExt.getTeamBoxNum() + targetMemberRangeExt.getConsumeBoxNum()
+ targetMemberRangeExt.getBigBoxNum() + targetMemberRangeExt.getSmallBoxNum() - bigBoxNum;
if (smallBoxNum >= bdGrade.getBoxSmallTotal()) {
BigDecimal smallBoxNum = targetMemberRangeExt.getTeamBoxNum().add(targetMemberRangeExt.getConsumeBoxNum()).add(targetMemberRangeExt.getBigBoxNum()).add(targetMemberRangeExt.getSmallBoxNum()).subtract(bigBoxNum);
if (smallBoxNum.compareTo(bdGrade.getBoxSmallTotal()) >= 0) {
// 小区盒数 大于等于 升级小区盒数
CuMemberGrade cuMemberGrade = getCuMemberGrade(period, targetMemberRangeExt, bdGrade);
cuMemberGradeMap.put(cuMemberGrade.getPkMember() + "_" + cuMemberGrade.getNewLevel(), cuMemberGrade);
@ -1316,7 +1311,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
return null;
}
// 区域分红根据商品盒数来如果没有盒数直接返回为空
if (saOrder.getBoxNum() == 0) {
if (saOrder.getBoxNum().compareTo(BigDecimal.ZERO) == 0) {
return null;
}
@ -1370,7 +1365,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
CuMemberBonusDetail cuMemberBonusDetail = packageBenefitIncome(bonusConfigDTO, period, cuMemberBonusMap, null, RetailConstants.SAME_RATIO, benefitIncome,
cuMemberRetailRangeExt, EBonusItems.RETAIL_AREA_INCOME.getValue(), BonusMsgConstants.RETAIL_AREA_INCOME);
// 计算业绩以盒数做为基础
cuMemberBonusDetail.setCalAchieve(new BigDecimal(saOrder.getBoxNum()));
cuMemberBonusDetail.setCalAchieve(saOrder.getBoxNum());
cuMemberBonusDetail.setPkOrder(saOrder.getPkId());
String remark = String.format(BonusMsgConstants.RETAIL_AREA_INCOME, saOrder.getOrderCode(),
memberRangeExtMap.get(saOrder.getPkMember()).getMemberCode() + memberRangeExtMap.get(saOrder.getPkMember()).getMemberName(),

View File

@ -38,7 +38,7 @@ public class MemberBonusFirstPurchaseVO extends PubMemberBonusVO {
/**
* 商城重消
*/
@BigDecimalFormat
@BigDecimalFormat("#0.0000")
private BigDecimal backPoints;
//
// /**
@ -75,55 +75,55 @@ public class MemberBonusFirstPurchaseVO extends PubMemberBonusVO {
/**
* 新零售直推收益
*/
@BigDecimalFormat
@BigDecimalFormat("#0.0000")
private BigDecimal retailRangeIncome;
/**
* 新零售平级收益
*/
@BigDecimalFormat
@BigDecimalFormat("#0.0000")
private BigDecimal retailSameLevelIncome;
/**
* 新零售区域分红
*/
@BigDecimalFormat
@BigDecimalFormat("#0.0000")
private BigDecimal retailAreaIncome;
/**
* 福利级差收益
*/
@BigDecimalFormat
@BigDecimalFormat("#0.0000")
private BigDecimal retailBenefitRangeIncome;
/**
* 复购级差收益
*/
@BigDecimalFormat
@BigDecimalFormat("#0.0000")
private BigDecimal retailMonthRepurchaseIncome;
/**
* 培育津贴
*/
@BigDecimalFormat
@BigDecimalFormat("#0.0000")
private BigDecimal coachIncome;
/**
* 福利分红收益总计
*/
@BigDecimalFormat
@BigDecimalFormat("#0.0000")
private BigDecimal retailBenefitIncomeTotal;
/**
* 新零售收益小计
*/
@BigDecimalFormat
@BigDecimalFormat("#0.0000")
private BigDecimal retailRealSubtotal;
/**
* 实发收益总计
*/
@BigDecimalFormat
@BigDecimalFormat("#0.0000")
private BigDecimal realIncomeTotal;
}

View File

@ -93,7 +93,7 @@ public class MemberBonusVO implements Serializable {
/**
* 商城重消
*/
@BigDecimalFormat
@BigDecimalFormat("#0.0000")
private BigDecimal backPoints;
/**
@ -114,7 +114,7 @@ public class MemberBonusVO implements Serializable {
/**
* 实发收益总计
*/
@BigDecimalFormat
@BigDecimalFormat("#0.0000")
private BigDecimal realIncomeTotal;
/**
@ -130,19 +130,19 @@ public class MemberBonusVO implements Serializable {
/**
* 新零售直推级差收益
*/
@BigDecimalFormat
@BigDecimalFormat("#0.0000")
private BigDecimal retailRangeIncome;
/**
* 新零售平级收益
*/
@BigDecimalFormat
@BigDecimalFormat("#0.0000")
private BigDecimal retailSameLevelIncome;
/**
* 新零售区域收益
*/
@BigDecimalFormat
@BigDecimalFormat("#0.0000")
private BigDecimal retailAreaIncome;
/**
@ -163,7 +163,7 @@ public class MemberBonusVO implements Serializable {
/**
* 新零售收益小计
*/
@BigDecimalFormat
@BigDecimalFormat("#0.0000")
private BigDecimal retailRealSubtotal;
/**

View File

@ -470,9 +470,9 @@
pk_share_awards number(4) default 10 not null,
enable_status number(2) default 1 not null,
system_type NUMBER(2) default 2 not null,
new_box_num number(8) default 0 not null,
new_box_num number(10,2) default 0 not null,
new_consume_pv number(17,6) default 0 not null,
team_new_box_num number(8) default 0 not null,
team_new_box_num number(10,2) default 0 not null,
team_new_pv number(17,6) default 0 not null,
team_new_amount number(17,6) default 0 not null
)
@ -505,15 +505,15 @@
pk_country number(4) default 1 not null,
system_type NUMBER(2) default 2 not null,
pk_rate NUMBER(6),
new_box_num number(8) default 0 not null,
consume_box_num number(8) default 0 not null,
month_box_num number(8) default 0 not null,
new_box_num number(10,2) default 0 not null,
consume_box_num number(10,2) default 0 not null,
month_box_num number(10,2) default 0 not null,
new_consume_pv number(17,6) default 0 not null,
consume_pv number(17,6) default 0 not null,
month_consume_pv number(17,6) default 0 not null,
team_new_box_num number(8) default 0 not null,
team_box_num number(8) default 0 not null,
team_month_box_num number(8) default 0 not null,
team_new_box_num number(10,2) default 0 not null,
team_box_num number(10,2) default 0 not null,
team_month_box_num number(10,2) default 0 not null,
team_new_pv number(17,6) default 0 not null,
team_consume_pv number(17,6) default 0 not null,
team_month_pv number(17,6) default 0 not null,
@ -523,8 +523,8 @@
recommend_num number(8) default 0 not null,
team_num number(8) default 0 not null,
region_address number(8) default 0 not null,
big_box_num number(8) default 0 not null,
small_box_num number(8) default 0 not null,
big_box_num number(10,2) default 0 not null,
small_box_num number(10,2) default 0 not null,
big_team_pv number(17,6) default 0 not null,
small_team_pv number(17,6) default 0 not null
)

View File

@ -61,6 +61,7 @@
<result column="WARES_PRICE" property="waresPrice"/>
<result column="WARES_CODE" property="waresCode"/>
<result column="AREA_INCOME" property="areaIncome"/>
<result column="BOX_NUM" property="boxNum"/>
</collection>
<collection property="orderItemsExtList" ofType="com.hzs.common.domain.sale.ext.SaOrderItemsExt">
<result column="SI_ITEMS_ID" property="pkId"/>
@ -155,7 +156,8 @@
nvl(st.wares_price,0) wares_price,
nvl(bw.wares_code,'~') wares_code,
nvl(st.wares_quantity,0) wares_quantity,
nvl(bw.area_income, 0) area_income
nvl(bw.area_income, 0) area_income,
nvl(bw.box_num, 0) box_num
from sa_order so
left join sa_order_wares st
on so.pk_id = st.pk_order and st.wares_price > 0

View File

@ -7,15 +7,8 @@ import org.apache.ibatis.annotations.Param;
import java.util.Date;
import java.util.List;
/**
* @BelongsProject: hzs_cloud
* @BelongsPackage: com.hzs.report.member.mapper
* @Author: yh
* @CreateTime: 2023-08-26 09:53
* @Description: TODO
* @Version: 1.0
*/
public interface MemberReportMapper {
/**
* 查询伞下直推新增业绩-查询会员
*
@ -27,31 +20,22 @@ public interface MemberReportMapper {
@Param("endPayTime") Date endPayTime);
/**
* @description: 查询伞下直推新增业绩-业绩
* @author: zhang jing
* @date: 2023/9/6 14:10
* @param: [pkMember, memberName, pkAwards, pkTeamCode, pkCountry, startPayTime, endPayTime, pkVertex]
* @return: java.util.List<com.hzs.report.member.vo.DirectPushNewVo>
* 查询伞下直推新增业绩-业绩
*
**/
List<DirectPushNewVo> directPushNewAchieList(@Param("dpo") DirectPushNewVo dpo,
@Param("pkMemberList") List<Long> pkMemberList);
/**
* @description: 查询会员总盒数
* @author: zhang jing
* @date: 2025/2/14 15:02
* @param: [dpb, pkMemberList]
* @return: java.util.List<com.hzs.report.member.vo.DirectPushBoxVo>
* 查询会员总盒数
*
**/
List<DirectPushBoxVo> directPushNewBoxList(@Param("dpo") DirectPushBoxVo dpb,
@Param("dpbList") List<DirectPushBoxVo> dpbList);
/**
* @description: 查询伞下直推新增业绩-业绩
* @author: zhang jing
* @date: 2024/3/18 15:41
* @param: [pkMember, startPayTime, endPayTime, pkCountry, monthList]
* @return: java.util.List<com.hzs.report.member.vo.DirectPushNewVo>
* 查询伞下直推新增业绩-业绩
*
**/
List<DirectPushNewVo> directPushNewAchieUpList(@Param("dpo") DirectPushNewVo dpo,
@Param("pkMemberList") List<Long> pkMemberList);
@ -76,11 +60,8 @@ public interface MemberReportMapper {
List<MemberResettleAchieveVo> memberResettleAchieve(@Param("pkMember") Long pkMember, @Param("memberName") String memberName, @Param("startPayTime") Date startPayTime, @Param("endPayTime") Date endPayTime, @Param("pkVertex") Integer pkVertex, @Param("pkTeamCode") Integer pkTeamCode, @Param("pkCountry") Integer pkCountry, @Param("pkAwards") Integer pkAwards, @Param("orderTypeList") List<Integer> orderTypeList);
/**
* @description: 伞下新增安置业绩
* @author: zhang jing
* @date: 2024/3/12 16:57
* @param: [pkMember, memberName, startPayTime, endPayTime, pkVertex, pkTeamCode, pkCountry, pkAwards, orderTypeList]
* @return: java.util.List<com.hzs.report.member.vo.MemberResettleAchieveVo>
* 伞下新增安置业绩
*
**/
List<MemberResettleAchieveVo> selectBrollyNewABAchieve(@Param("pkMember") Long pkMember,
@Param("memberName") String memberName,
@ -165,14 +146,6 @@ public interface MemberReportMapper {
*/
List<ReportSummaryVo> reportSummaryList(ReportSummaryVo reportSummaryVo);
/**
* 查询会员伞下订单左右区业绩
*
* @param pkMember
* @return
*/
List<MemberPerformanceVo> brollyBelowResettle(@Param("pkMember") Long pkMember, @Param("startPayTime") Date startPayTime, @Param("endPayTime") Date endPayTime, @Param("orderTypeList") List<Integer> orderTypeList);
/**
* 出货明细汇总统计详情
*
@ -244,76 +217,39 @@ public interface MemberReportMapper {
Integer sumQuantity(@Param("productName") String productName, @Param("pkClassify") Integer pkClassify, @Param("startTime") Date startTime, @Param("endTime") Date endTime, @Param("pkCountry") Integer pkCountry, @Param("orderTypeList") List<Integer> orderTypeList);
/**
* @description: 查询表是否存在
* @author: zhang jing
* @date: 2024/4/7 16:10
* @param: [tableName]
* @return: java.lang.Integer
* 查询表是否存在
**/
Integer selectExistTable(String tableName);
/**
* @description: 查询直推会员
* @author: zhang jing
* @date: 2025/2/7 16:10
* @param: [pkMember]
* @return: java.util.List<java.lang.Long>
* 查询直推会员
**/
List<Long> selectDirectPushByPkMember(@Param("pkMember") Long pkMember);
/**
* @description: 查询会员业绩
* @author: zhang jing
* @date: 2025/2/7 16:08
* @param: [directPushNewVo]
* @return: com.hzs.report.member.vo.DirectPushNewVo
* 查询会员业绩
**/
DirectPushNewVo selectMemberOrderAchieveByPkMember(DirectPushNewVo directPushNewVo);
/**
* @description: 查询会员个人业绩金额
* @author: zhang jing
* @date: 2025/2/13 11:31
* @param: [directPushNewVo]
* @return: com.hzs.report.member.vo.DirectPushNewVo
**/
DirectPushNewVo querMemberAchieveAmount(DirectPushNewVo directPushNewVo);
List<DirectPushNewVo> selectMemberAchieve(DirectPushNewVo directPushNewVo);
/**
* @description: 查询会员直推伞下业绩金额
* @author: zhang jing
* @date: 2025/2/13 13:34
* @param: [directPushNewVo]
* @return: java.util.List<com.hzs.report.member.vo.DirectPushNewVo>
* 查询会员直推伞下业绩金额
**/
List<DirectPushNewVo> querMemberAchieveAmountTeam(DirectPushNewVo directPushNewVo);
/**
* @description: 添加新的表
* @author: zhang jing
* @date: 2025/2/25 16:20
* @param: [tableName]
* @return: void
* 添加新的表
**/
void createCuMemberAmountBoxTable(String tableName);
/**
* @description: 创建表字段索引
* @author: zhang jing
* @date: 2025/2/25 16:20
* @param: [tableName]
* @return: void
* 创建表字段索引
**/
void createPkMemberIndex (@Param("indexName")String indexName,@Param("tableName")String tableName);
void createPkMemberIndex(@Param("indexName") String indexName, @Param("tableName") String tableName);
/**
* @description: 查询订单金额业绩盒数批量添加会员个人操作
* @author: zhang jing
* @date: 2025/2/12 11:35
* @param: [staDate, endDate, tableName, beforeTabeName, rangeTabeName]
* @return: int
* 查询订单金额业绩盒数批量添加会员个人操作
**/
int innertMemberAmountBoxTable(@Param("staDate") String staDate,
@Param("endDate") String endDate,
@ -322,11 +258,7 @@ public interface MemberReportMapper {
@Param("rangeTabeName") String rangeTabeName);
/**
* @description: 查询订单金额业绩盒数批量添加会员伞下操作
* @author: zhang jing
* @date: 2025/2/12 11:36
* @param: [staDate, endDate, tableName, beforeTabeName, rangeTabeName]
* @return: int
* 查询订单金额业绩盒数批量添加会员伞下操作
**/
int innertTeamAmountBoxTable(@Param("apb") DirectPushAmountPvBoxVo apb,
@Param("staDate") String staDate,
@ -336,92 +268,33 @@ public interface MemberReportMapper {
@Param("rangeTabeName") String rangeTabeName);
/**
* @description: 查询会员订单
* @author: zhang jing
* @date: 2025/2/12 15:59
* @param: [staDate, endDate]
* @return: java.util.List<com.hzs.report.member.vo.DirectPushAmountPvBoxVo>
* 查询会员订单
**/
List<DirectPushAmountPvBoxVo> querMemberOrder(@Param("staDate") String staDate, @Param("endDate") String endDate);
/**
* @description: 7天重算删除会员统计业绩金额盒数表数据
* @author: zhang jing
* @date: 2025/2/12 15:58
* @param: [tableName]
* @return: void
* 7天重算删除会员统计业绩金额盒数表数据
**/
void delMemberAmountBox(@Param("tableName") String tableName);
/**
* @description: 初始化会员直推金额业绩盒数数据
* @author: zhang jing
* @date: 2025/2/14 17:41
* @param: [tableName, rangeTabeName]
* @return: void
* 初始化会员直推金额业绩盒数数据
**/
void washMemberAmountBox(@Param("tableName") String tableName,@Param("rangeTabeName") String rangeTabeName);
void washMemberAmountBox(@Param("tableName") String tableName, @Param("rangeTabeName") String rangeTabeName);
/**
* @description: 将未激活的会员盒数更新为0
* @author: zhang jing
* @date: 2025/2/14 17:41
* @param: [tableName, rangeTabeName]
* @return: void
* 将未激活的会员盒数更新为0
**/
void updMemberBox (@Param("tableName") String tableName,@Param("rangeTabeName") String rangeTabeName);
void updMemberBox(@Param("tableName") String tableName, @Param("rangeTabeName") String rangeTabeName);
/**
* @description: 秒结表查询会员是否激活
* @author: zhang jing
* @date: 2025/2/14 10:25
* @param: [directPushBoxVo]
* @return: java.lang.Integer
* 秒结表查询会员是否激活
**/
List<DirectPushBoxVo> selectMemberActiveState(@Param("dpb") DirectPushBoxVo dpb,
@Param("pkMemberList") List<Long> pkMemberList);
/**
* @description: 查询结束日期总盒数
* @author: zhang jing
* @date: 2025/2/14 12:00
* @param: [directPushBoxVo]
* @return: java.lang.Integer
**/
Integer selectMemberTotalBox(DirectPushBoxVo directPushBoxVo);
/**
* 根据会员编号查询注水
*
* @param memberCode 会员编号
* @return Integer
*/
Integer selectWaterInjection(@Param("memberCode") String memberCode);
/**
* @description: 查询会员注水的大区盒数
* @author: zhang jing
* @date: 2025/2/14 13:22
* @param: [directPushBoxVo]
* @return: java.lang.Integer
**/
Integer selectMemberBoxWaterInjection(DirectPushBoxVo directPushBoxVo);
/**
* @description: 查询会员没有注水的大区盒数
* @author: zhang jing
* @date: 2025/2/14 13:24
* @param: [directPushBoxVo]
* @return: java.lang.Integer
**/
Integer selectMemberBoxNoWaterInjection(DirectPushBoxVo directPushBoxVo);
/**
* @description: 查询直推会员信息
* @author: zhang jing
* @date: 2025/2/17 15:49
* @param: [directPushNewVo]
* @return: java.util.List<com.hzs.report.member.vo.DirectPushNewVo>
* 查询直推会员信息
**/
List<DirectPushNewVo> querDirectPushDetails(DirectPushNewVo directPushNewVo);

View File

@ -107,7 +107,6 @@ public interface MemberReportService {
*/
List<OrderDistribution> getByDistrictOrderDistribution(Date startTime, Date endTime, Integer pkCountry);
/**
* 出货明细汇总
*

View File

@ -184,7 +184,7 @@ public class MemberReportServiceImpl implements MemberReportService {
* @return List<MonthAchieveVO>
*/
private List<MonthAchieveVO> getAchieveMonthTable(String startDate, String endDate) {
MonthAchieveVO monthAchieveVO = null;
MonthAchieveVO monthAchieveVO;
List<MonthAchieveVO> monthAchieveVOList = new ArrayList<>();
LocalDate startLocalDate = DateUtils.getStringToLocalDate(startDate);
LocalDate endLocalDate = DateUtils.getStringToLocalDate(endDate);
@ -347,11 +347,6 @@ public class MemberReportServiceImpl implements MemberReportService {
/**
* 查询伞下业绩金额
*
* @author: zhang jing
* @date: 2025/2/25 15:40
* @param: [dpo]
* @return: java.util.List<com.hzs.report.member.vo.DirectPushNewVo>
**/
private List<DirectPushNewVo> querMemberAchieveAmountTeam(DirectPushNewVo dpo) {
return memberReportMapper.querMemberAchieveAmountTeam(dpo);
@ -359,11 +354,6 @@ public class MemberReportServiceImpl implements MemberReportService {
/**
* 获取直推大区业绩小区业绩
*
* @author: zhang jing
* @date: 2025/2/7 16:21
* @param: [memberAchieveList, rate]
* @return: com.hzs.report.member.vo.DirectPushNewVo
**/
private DirectPushNewVo getMemberBigAndSmallAchieve(List<DirectPushNewVo> memberAchieveList, BigDecimal rate) {
//查询最大业绩
@ -384,14 +374,8 @@ public class MemberReportServiceImpl implements MemberReportService {
/**
* 根据大业绩查询大小区盒数
*
* @author: zhang jing
* @date: 2025/2/25 16:36
* @param: [memberAchieveList, rate]
* @return: com.hzs.report.member.vo.DirectPushNewVo
**/
private DirectPushBoxVo getMemberBigAndSmallBox(List<DirectPushBoxVo> memberAchieveList) {
// 2. 找到 ArealPv 最大的对象
DirectPushBoxVo maxAchieveVO = memberAchieveList.stream()
.max(Comparator.comparing(DirectPushBoxVo::getArealPv))
@ -576,17 +560,6 @@ public class MemberReportServiceImpl implements MemberReportService {
}
}
/**
* 查询会员当日极差秒表名
*
* @return String
*/
private String getTableSName() {
String localDate = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
int period = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(localDate).getPkId();
return TableNameConstants.CU_MEMBER_RETAIL_S + period;
}
@Override
public List<DirectPushBoxVo> selectMemberActiveState(DirectPushBoxVo dpbVo, List<Long> pkMemberList) {
return memberReportMapper.selectMemberActiveState(dpbVo, pkMemberList);

View File

@ -9,11 +9,7 @@ import lombok.NoArgsConstructor;
import java.math.BigDecimal;
/**
* @description: 伞下直推查询会员大小区金额业绩盒数
* @author: zhang jing
* @date: 2025/2/10 18:00
* @param:
* @return:
* 伞下直推查询会员大小区金额业绩盒数
**/
@AllArgsConstructor
@NoArgsConstructor
@ -21,7 +17,6 @@ import java.math.BigDecimal;
@Data
public class DirectPushAmountPvBoxVo {
private Long pkMember;
/**
* 金额
@ -42,65 +37,59 @@ public class DirectPushAmountPvBoxVo {
* 金额
*/
@BigDecimalFormat()
private BigDecimal orderAmountReg=BigDecimal.ZERO;
private BigDecimal orderAmountReg = BigDecimal.ZERO;
/**
* 金额
*/
@BigDecimalFormat()
private BigDecimal orderAmountUpg=BigDecimal.ZERO;
private BigDecimal orderAmountUpg = BigDecimal.ZERO;
/**
* 金额
*/
@BigDecimalFormat()
private BigDecimal orderAmountRep=BigDecimal.ZERO;
private BigDecimal orderAmountRep = BigDecimal.ZERO;
/**
* 金额
*/
@BigDecimalFormat()
private BigDecimal orderAmountCon=BigDecimal.ZERO;
private BigDecimal orderAmountCon = BigDecimal.ZERO;
/**
* 业绩
*/
@BigDecimalFormat()
private BigDecimal orderAchieveReg=BigDecimal.ZERO;
private BigDecimal orderAchieveReg = BigDecimal.ZERO;
/**
* 业绩
*/
@BigDecimalFormat()
private BigDecimal orderAchieveUpg=BigDecimal.ZERO;
private BigDecimal orderAchieveUpg = BigDecimal.ZERO;
/**
* 业绩
*/
@BigDecimalFormat()
private BigDecimal orderAchieveRep=BigDecimal.ZERO;
private BigDecimal orderAchieveRep = BigDecimal.ZERO;
/**
* 业绩
*/
@BigDecimalFormat()
private BigDecimal orderAchieveCon=BigDecimal.ZERO;
private BigDecimal orderAchieveCon = BigDecimal.ZERO;
/**
* 盒数
*/
private int boxNumReg;
private BigDecimal boxNumReg;
/**
* 盒数
*/
private int boxNumUpg;
private BigDecimal boxNumUpg;
/**
* 盒数
*/
private int boxNumRep;
private BigDecimal boxNumRep;
/**
* 盒数
*/
private int boxNumCon;
private BigDecimal boxNumCon;
}

View File

@ -38,23 +38,23 @@
TEAM_REP_AMOUNT NUMBER(17,6) default 0 not null,
TEAM_CON_AMOUNT NUMBER(17,6) default 0 not null,
SUM_BOX NUMBER(8) default 0,
BIG_BOX NUMBER(8) default 0,
SMALL_BOX NUMBER(8) default 0,
REG_BOX NUMBER(8) default 0,
UPG_BOX NUMBER(8) default 0,
REP_BOX NUMBER(8) default 0,
CON_BOX NUMBER(8) default 0,
INFLATE_BIG_BOX NUMBER(8) default 0,
INFLATE_SMALL_BOX NUMBER(8) default 0,
SUM_BOX NUMBER(10,2) default 0,
BIG_BOX NUMBER(10,2) default 0,
SMALL_BOX NUMBER(10,2) default 0,
REG_BOX NUMBER(10,2) default 0,
UPG_BOX NUMBER(10,2) default 0,
REP_BOX NUMBER(10,2) default 0,
CON_BOX NUMBER(10,2) default 0,
INFLATE_BIG_BOX NUMBER(10,2) default 0,
INFLATE_SMALL_BOX NUMBER(10,2) default 0,
TEAM_SUM_BOX NUMBER(18) default 0,
TEAM_BIG_BOX NUMBER(18) default 0,
TEAM_SMALL_BOX NUMBER(8) default 0,
TEAM_REG_BOX NUMBER(18) default 0,
TEAM_UPG_BOX NUMBER(18) default 0,
TEAM_REP_BOX NUMBER(18) default 0,
TEAM_CON_BOX NUMBER(18) default 0,
TEAM_SUM_BOX NUMBER(18,2) default 0,
TEAM_BIG_BOX NUMBER(18,2) default 0,
TEAM_SMALL_BOX NUMBER(10,2) default 0,
TEAM_REG_BOX NUMBER(18,2) default 0,
TEAM_UPG_BOX NUMBER(18,2) default 0,
TEAM_REP_BOX NUMBER(18,2) default 0,
TEAM_CON_BOX NUMBER(18,2) default 0,
SUM_PV NUMBER(17,6) default 0 not null,
BIG_PV NUMBER(17,6) default 0 not null,
@ -74,6 +74,7 @@
PK_COUNTRY NUMBER(4) not null
</sql>
<!-- 查询伞下直推新增业绩 -会员 -->
<select id="directPushNewList" resultType="com.hzs.report.member.vo.DirectPushNewVo">
select
@ -704,45 +705,6 @@
</select>
<select id="brollyBelowResettle" resultType="com.hzs.report.member.vo.MemberPerformanceVo">
select 1 placeDept , nvl(sum(so.ORDER_ACHIEVE),0) achieve
from SA_ORDER so
left join cu_member t on so.PK_CREATOR = t.pk_id and t.PLACE_DEPT = 1
where so.del_flag = 0 and so.ORDER_STATUS = 1
<if test="orderTypeList != null">
and SO.ORDER_TYPE in
<foreach collection="orderTypeList" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
</if>
<if test="startPayTime != null">
and to_char(so.PAY_TIME, 'yyyy-mm-dd hh24:mi:ss') &gt;= to_char(#{startPayTime}, 'yyyy-mm-dd hh24:mi:ss')
</if>
<if test="endPayTime != null">
and to_char(so.PAY_TIME, 'yyyy-mm-dd hh24:mi:ss') &lt;= to_char(#{endPayTime}, 'yyyy-mm-dd hh24:mi:ss')
</if>
union all
select 2 placeDept , nvl(sum(so.ORDER_ACHIEVE),0) achieve
from SA_ORDER so
left join cu_member t on so.PK_CREATOR = t.pk_id and t.PLACE_DEPT = 2
where so.del_flag = 0 and so.ORDER_STATUS = 1
<if test="orderTypeList != null">
and SO.ORDER_TYPE in
<foreach collection="orderTypeList" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
</if>
<if test="startPayTime != null">
and to_char(so.PAY_TIME, 'yyyy-mm-dd hh24:mi:ss') &gt;= to_char(#{startPayTime}, 'yyyy-mm-dd hh24:mi:ss')
</if>
<if test="endPayTime != null">
and to_char(so.PAY_TIME, 'yyyy-mm-dd hh24:mi:ss') &lt;= to_char(#{endPayTime}, 'yyyy-mm-dd hh24:mi:ss')
</if>
</select>
<select id="productShippingDetailsList" resultType="com.hzs.report.member.vo.ProductShippingDetailsInfoVo">
select bp.PRODUCT_CODE productCode,bp.PRODUCT_NAME productName,bc.NAME classifyName,oi.PK_AWARDS pkAwards,oi.QUANTITY quantity,
oi.PRICE price,bw.AWARDS_NAME awardsName
@ -1358,44 +1320,6 @@
AND so.pk_member = #{pkMember})
</select>
<!-- 查询会员个人业绩金额-->
<select id="querMemberAchieveAmount" resultType="com.hzs.report.member.vo.DirectPushNewVo">
SELECT
NVL(MR1.arealPv, 0) - NVL(MR2.SUM_PV, 0) AS arealPv,
NVL(MR1.arealAm, 0) - NVL(MR2.SUM_AMOUNT, 0) AS arealAm
FROM
(
SELECT sum(arealPv) arealPv,
sum(arealAm) arealAm,
#{pkMember} pkMember
FROM (SELECT NVL(mr.SUM_PV, 0) arealPv,
NVL(mr.SUM_AMOUNT, 0) arealAm
FROM ${achieveTableNameEnd} mr
WHERE mr.pk_member = #{pkMember}
<if test="payTime!=null and payTime!=''">
union all
SELECT NVL(SUM(so.order_achieve), 0) arealPv,
NVL(SUM(so.ORDER_AMOUNT), 0) arealAm
FROM sa_order so
WHERE so.del_flag = 0
AND so.order_status = 1
AND so.order_type in (41, 42, 43, 44)
AND so.pay_time >= #{endPayTime}
AND so.pay_time &lt;= #{zonpayTime}
AND so.pk_member = #{pkMember}
</if>
)
) MR1
FULL OUTER JOIN
${achieveTableNameSta} MR2
ON
MR1.pkMember = MR2.PK_MEMBER
WHERE
MR1.pkMember = #{pkMember}
OR MR2.PK_MEMBER = #{pkMember}
</select>
<select id="selectMemberAchieve" resultType="com.hzs.report.member.vo.DirectPushNewVo">
<foreach collection="pkMemberList" item="pkMember" separator="union all">
SELECT SUM(t1.arealPv) arealPv ,#{pkMember} pkMember
@ -1427,43 +1351,6 @@
</foreach>
</select>
<select id="querMemberAchieveAmount" resultType="com.hzs.report.member.vo.DirectPushNewVo">
SELECT
NVL(MR1.arealPv, 0) - NVL(MR2.SUM_PV, 0) AS arealPv,
NVL(MR1.arealAm, 0) - NVL(MR2.SUM_AMOUNT, 0) AS arealAm
FROM
(
SELECT sum(arealPv) arealPv,
sum(arealAm) arealAm,
#{pkMember} pkMember
FROM (SELECT NVL(mr.SUM_PV, 0) arealPv,
NVL(mr.SUM_AMOUNT, 0) arealAm
FROM ${achieveTableNameEnd} mr
WHERE mr.pk_member = #{pkMember}
<if test="payTime!=null and payTime!=''">
union all
SELECT NVL(SUM(so.order_achieve), 0) arealPv,
NVL(SUM(so.ORDER_AMOUNT), 0) arealAm
FROM sa_order so
WHERE so.del_flag = 0
AND so.order_status = 1
AND so.order_type in (41, 42, 43, 44)
AND so.pay_time >= #{endPayTime}
AND so.pay_time &lt;= #{zonpayTime}
AND so.pk_member = #{pkMember}
</if>
)
) MR1
FULL OUTER JOIN
${achieveTableNameSta} MR2
ON
MR1.pkMember = MR2.PK_MEMBER
WHERE
MR1.pkMember = #{pkMember}
OR MR2.PK_MEMBER = #{pkMember}
</select>
<!-- 查询会员直推伞下业绩金额盒数-->
<select id="querMemberAchieveAmountTeam" resultType="com.hzs.report.member.vo.DirectPushNewVo">
<!-- <foreach collection="pkMemberList" item="pkMember" separator="union all">-->
@ -1553,9 +1440,6 @@
) MR2 ON MR1.pkMember = MR2.PK_MEMBER
<!-- </foreach>-->
</select>
@ -1566,99 +1450,97 @@
<include refid="CuMemberAmountBoxTable"></include>
)
</update>
<!-- 创建表字段索引-->
<update id="createPkMemberIndex">
CREATE INDEX ${indexName} ON ${tableName} (pk_member)
</update>
<!-- 查询订单金额,业绩,盒数,批量添加会员个人操作 -->
<update id="innertMemberAmountBoxTable">
merge into ${tableName} cmab
using (
SELECT
nvl(t.SUM_AMOUNT+ nvl(cmr.SUM_AMOUNT,0),0) SUM_AMOUNT,
nvl(t.REG_AMOUNT+ nvl(cmr.REG_AMOUNT,0),0) REG_AMOUNT,
nvl(t.UPG_AMOUNT+ nvl(cmr.UPG_AMOUNT,0),0) UPG_AMOUNT,
nvl(t.REP_AMOUNT+ nvl(cmr.REP_AMOUNT,0),0) REP_AMOUNT,
nvl(t.CON_AMOUNT+ nvl(cmr.CON_AMOUNT,0),0) CON_AMOUNT,
SELECT nvl(t.SUM_AMOUNT + nvl(cmr.SUM_AMOUNT, 0), 0) SUM_AMOUNT,
nvl(t.REG_AMOUNT + nvl(cmr.REG_AMOUNT, 0), 0) REG_AMOUNT,
nvl(t.UPG_AMOUNT + nvl(cmr.UPG_AMOUNT, 0), 0) UPG_AMOUNT,
nvl(t.REP_AMOUNT + nvl(cmr.REP_AMOUNT, 0), 0) REP_AMOUNT,
nvl(t.CON_AMOUNT + nvl(cmr.CON_AMOUNT, 0), 0) CON_AMOUNT,
nvl(t.SUM_PV+ nvl(cmr.SUM_PV,0),0)SUM_PV,
nvl(t.REG_PV+ nvl(cmr.REG_PV,0),0)REG_PV,
nvl(t.UPG_PV+ nvl(cmr.UPG_PV,0),0)UPG_PV,
nvl(t.REP_PV+ nvl(cmr.REP_PV,0),0)REP_PV,
nvl(t.CON_PV+ nvl(cmr.CON_PV,0),0)CON_PV,
nvl(t.SUM_PV + nvl(cmr.SUM_PV, 0), 0) SUM_PV,
nvl(t.REG_PV + nvl(cmr.REG_PV, 0), 0) REG_PV,
nvl(t.UPG_PV + nvl(cmr.UPG_PV, 0), 0) UPG_PV,
nvl(t.REP_PV + nvl(cmr.REP_PV, 0), 0) REP_PV,
nvl(t.CON_PV + nvl(cmr.CON_PV, 0), 0) CON_PV,
nvl(t.SUM_BOX+ nvl(cmr.SUM_BOX,0),0) SUM_BOX,
nvl(t.REG_BOX+ nvl(cmr.REG_BOX,0),0) REG_BOX,
nvl(t.UPG_BOX+ nvl(cmr.UPG_BOX,0),0) UPG_BOX,
nvl(t.REP_BOX+ nvl(cmr.REP_BOX,0),0) REP_BOX,
nvl(t.CON_BOX+ nvl(cmr.CON_BOX,0),0) CON_BOX,
nvl(t.SUM_BOX + nvl(cmr.SUM_BOX, 0), 0) SUM_BOX,
nvl(t.REG_BOX + nvl(cmr.REG_BOX, 0), 0) REG_BOX,
nvl(t.UPG_BOX + nvl(cmr.UPG_BOX, 0), 0) UPG_BOX,
nvl(t.REP_BOX + nvl(cmr.REP_BOX, 0), 0) REP_BOX,
nvl(t.CON_BOX + nvl(cmr.CON_BOX, 0), 0) CON_BOX,
t.pk_member,
t.pk_parent,
t.BIG_BOX_NUM,
t.SMALL_BOX_NUM,
t.PK_COUNTRY,
nvl(cmr.team_sum_amount,0) team_sum_amount,
nvl(cmr.team_REG_amount,0) team_REG_amount,
nvl(cmr.team_UPG_amount,0) team_UPG_amount,
nvl(cmr.team_REP_amount,0) team_REP_amount,
nvl(cmr.team_CON_amount,0) team_CON_amount,
nvl(cmr.team_sum_amount, 0) team_sum_amount,
nvl(cmr.team_REG_amount, 0) team_REG_amount,
nvl(cmr.team_UPG_amount, 0) team_UPG_amount,
nvl(cmr.team_REP_amount, 0) team_REP_amount,
nvl(cmr.team_CON_amount, 0) team_CON_amount,
nvl(cmr.team_sum_pv,0) team_sum_pv,
nvl(cmr.team_REG_pv,0) team_REG_pv,
nvl(cmr.team_UPG_pv,0) team_UPG_pv,
nvl(cmr.team_REP_pv,0) team_REP_pv,
nvl(cmr.team_CON_pv,0) team_CON_pv,
nvl(cmr.team_sum_pv, 0) team_sum_pv,
nvl(cmr.team_REG_pv, 0) team_REG_pv,
nvl(cmr.team_UPG_pv, 0) team_UPG_pv,
nvl(cmr.team_REP_pv, 0) team_REP_pv,
nvl(cmr.team_CON_pv, 0) team_CON_pv,
nvl(cmr.team_sum_box,0) team_sum_box,
nvl(cmr.team_REG_box,0) team_REG_box,
nvl(cmr.team_UPG_box,0) team_UPG_box,
nvl(cmr.team_REP_box,0) team_REP_box,
nvl(cmr.team_CON_box,0) team_CON_box
nvl(cmr.team_sum_box, 0) team_sum_box,
nvl(cmr.team_REG_box, 0) team_REG_box,
nvl(cmr.team_UPG_box, 0) team_UPG_box,
nvl(cmr.team_REP_box, 0) team_REP_box,
nvl(cmr.team_CON_box, 0) team_CON_box
FROM (
SELECT SUM(nvl(so.ORDER_AMOUNT,0)) SUM_AMOUNT,
SELECT SUM(nvl(so.ORDER_AMOUNT, 0)) SUM_AMOUNT,
SUM(CASE WHEN so.order_type = 41 THEN nvl(so.ORDER_AMOUNT, 0) ELSE 0 END) AS REG_AMOUNT,
SUM(CASE WHEN so.order_type = 42 THEN nvl(so.ORDER_AMOUNT, 0) ELSE 0 END) AS UPG_AMOUNT,
SUM(CASE WHEN so.order_type = 43 THEN nvl(so.ORDER_AMOUNT, 0) ELSE 0 END) AS REP_AMOUNT,
SUM(CASE WHEN so.order_type = 44 THEN nvl(so.ORDER_AMOUNT, 0) ELSE 0 END) AS CON_AMOUNT,
SUM(nvl(so.ORDER_ACHIEVE,0)) SUM_PV,
SUM(nvl(so.ORDER_ACHIEVE, 0)) SUM_PV,
SUM(CASE WHEN so.order_type = 41 THEN nvl(so.ORDER_ACHIEVE, 0) ELSE 0 END) AS REG_PV,
SUM(CASE WHEN so.order_type = 42 THEN nvl(so.ORDER_ACHIEVE, 0) ELSE 0 END) AS UPG_PV,
SUM(CASE WHEN so.order_type = 43 THEN nvl(so.ORDER_ACHIEVE, 0) ELSE 0 END) AS REP_PV,
SUM(CASE WHEN so.order_type = 44 THEN nvl(so.ORDER_ACHIEVE, 0) ELSE 0 END) AS CON_PV,
SUM(nvl(so.BOX_NUM,0)) SUM_BOX,
SUM(nvl(so.BOX_NUM, 0)) SUM_BOX,
SUM(CASE WHEN so.order_type = 41 THEN nvl(so.BOX_NUM, 0) ELSE 0 END) AS REG_BOX,
SUM(CASE WHEN so.order_type = 42 THEN nvl(so.BOX_NUM, 0) ELSE 0 END) AS UPG_BOX,
SUM(CASE WHEN so.order_type = 43 THEN nvl(so.BOX_NUM, 0) ELSE 0 END) AS REP_BOX,
SUM(CASE WHEN so.order_type = 44 THEN nvl(so.BOX_NUM, 0) ELSE 0 END) AS CON_BOX,
rag.pk_member,
rag.pk_parent,
SUM(nvl(rag.BIG_BOX_NUM,0)) BIG_BOX_NUM,
SUM(nvl(rag.SMALL_BOX_NUM,0)) SMALL_BOX_NUM,
SUM(nvl(rag.BIG_BOX_NUM, 0)) BIG_BOX_NUM,
SUM(nvl(rag.SMALL_BOX_NUM, 0)) SMALL_BOX_NUM,
rag.PK_COUNTRY
FROM ${rangeTabeName} rag
left join sa_order so on rag.pk_member=so.pk_member and so.del_flag=0 AND so.ORDER_STATUS=1
left join sa_order so on rag.pk_member = so.pk_member and so.del_flag = 0 AND so.ORDER_STATUS = 1
AND so.PAY_TIME >= to_date(#{staDate}, 'yyyy-mm-dd')
AND so.PAY_TIME &lt;= to_date(#{endDate} || ' 23:59:59', 'yyyy-mm-dd hh24:mi:ss')
GROUP BY rag.pk_member, rag.pk_parent,rag.PK_COUNTRY
GROUP BY rag.pk_member, rag.pk_parent, rag.PK_COUNTRY
) t
left JOIN ${beforeTabeName} cmr ON cmr.pk_member=t.pk_member
left JOIN ${beforeTabeName} cmr ON cmr.pk_member = t.pk_member
) tmp
on (cmab.pk_member = tmp.pk_member)
when not matched then
insert
(PK_MEMBER,PK_PARENT,SUM_AMOUNT,REG_AMOUNT,UPG_AMOUNT,REP_AMOUNT,CON_AMOUNT,
SUM_BOX,REG_BOX,UPG_BOX,REP_BOX,CON_BOX,
SUM_PV,REG_PV,UPG_PV,REP_PV,CON_PV,
(PK_MEMBER, PK_PARENT, SUM_AMOUNT, REG_AMOUNT, UPG_AMOUNT, REP_AMOUNT, CON_AMOUNT,
SUM_BOX, REG_BOX, UPG_BOX, REP_BOX, CON_BOX,
SUM_PV, REG_PV, UPG_PV, REP_PV, CON_PV,
PK_COUNTRY,
TEAM_SUM_AMOUNT,TEAM_REG_AMOUNT,TEAM_UPG_AMOUNT,TEAM_REP_AMOUNT,TEAM_CON_AMOUNT,
TEAM_SUM_BOX,TEAM_REG_BOX,TEAM_UPG_BOX,TEAM_REP_BOX,TEAM_CON_BOX,
TEAM_SUM_PV,TEAM_REG_PV,TEAM_UPG_PV,TEAM_REP_PV,TEAM_CON_PV,BIG_BOX,SMALL_BOX
TEAM_SUM_AMOUNT, TEAM_REG_AMOUNT, TEAM_UPG_AMOUNT, TEAM_REP_AMOUNT, TEAM_CON_AMOUNT,
TEAM_SUM_BOX, TEAM_REG_BOX, TEAM_UPG_BOX, TEAM_REP_BOX, TEAM_CON_BOX,
TEAM_SUM_PV, TEAM_REG_PV, TEAM_UPG_PV, TEAM_REP_PV, TEAM_CON_PV, BIG_BOX, SMALL_BOX
)
values (tmp.pk_member,
tmp.PK_PARENT,
@ -1667,13 +1549,11 @@
tmp.UPG_AMOUNT,
tmp.REP_AMOUNT,
tmp.CON_AMOUNT,
tmp.SUM_BOX,
tmp.REG_BOX,
tmp.UPG_BOX,
tmp.REP_BOX,
tmp.CON_BOX,
tmp.SUM_PV,
tmp.REG_PV,
tmp.UPG_PV,
@ -1685,21 +1565,18 @@
tmp.TEAM_UPG_AMOUNT,
tmp.TEAM_REP_AMOUNT,
tmp.TEAM_CON_AMOUNT,
tmp.TEAM_SUM_BOX,
tmp.TEAM_REG_BOX,
tmp.TEAM_UPG_BOX,
tmp.TEAM_REP_BOX,
tmp.TEAM_CON_BOX,
tmp.TEAM_SUM_PV,
tmp.TEAM_REG_PV,
tmp.TEAM_UPG_PV,
tmp.TEAM_REP_PV,
tmp.TEAM_CON_PV,
tmp.BIG_BOX_NUM,
tmp.SMALL_BOX_NUM
)
tmp.SMALL_BOX_NUM)
when matched then
update set
cmab.SUM_AMOUNT = tmp.SUM_AMOUNT,
@ -1739,10 +1616,8 @@
cmab.TEAM_CON_PV = tmp.TEAM_CON_PV,
cmab.BIG_BOX = tmp.BIG_BOX_NUM,
cmab.SMALL_BOX = tmp.SMALL_BOX_NUM
</update>
<!-- 查询订单金额,业绩,盒数,批量添加会员伞下操作 -->
<update id="innertTeamAmountBoxTable">
merge into ${tableName} cmab
@ -1798,10 +1673,10 @@
cmab.TEAM_REP_PV = tmp.TEAM_REP_PV,
cmab.TEAM_CON_PV = tmp.TEAM_CON_PV
</update>
<!-- 查询会员订单-->
<select id="querMemberOrder" resultType="com.hzs.report.member.vo.DirectPushAmountPvBoxVo">
select
sum(so.order_amount) orderAmount,
select sum(so.order_amount) orderAmount,
SUM(CASE WHEN so.order_type = 41 THEN so.order_amount ELSE 0 END) AS orderAmountReg,
SUM(CASE WHEN so.order_type = 42 THEN so.order_amount ELSE 0 END) AS orderAmountUpg,
SUM(CASE WHEN so.order_type = 43 THEN so.order_amount ELSE 0 END) AS orderAmountRep,
@ -1824,22 +1699,29 @@
AND so.PAY_TIME &lt;= to_date(#{endDate} || ' 23:59:59', 'yyyy-mm-dd hh24:mi:ss')
GROUP BY so.pk_member
</select>
<!-- 7天重算删除会员统计业绩金额盒数表数据-->
<update id="delMemberAmountBox">
delete from ${tableName}
delete
from ${tableName}
</update>
<!-- 未激活的会员盒数为零-->
<update id="updMemberBox">
update ${tableName} set SUM_BOX=0,TEAM_SUM_BOX=0 where PK_MEMBER in(
select PK_MEMBER from ${rangeTabeName} rag where enable_status=1
update ${tableName}
set SUM_BOX = 0,
TEAM_SUM_BOX = 0
where PK_MEMBER in (
select PK_MEMBER
from ${rangeTabeName} rag
where enable_status = 1
)
</update>
<!-- 初始化会员直推金额业绩盒数数据-->
<!-- 初始化会员直推金额业绩盒数数据-->
<update id="washMemberAmountBox">
merge into ${tableName} cmab
using ( SELECT rag.pk_member,
using (SELECT rag.pk_member,
rag.pk_parent,
rag.CONSUME_PV SUM_PV,
rag.CONSUME_BOX_NUM SUM_BOX,
@ -1854,7 +1736,7 @@
on (cmab.pk_member = tmp.pk_member)
when not matched then
insert
(PK_MEMBER,PK_PARENT,SUM_PV,SUM_BOX,TEAM_SUM_PV,TEAM_SUM_BOX,TEAM_SUM_AMOUNT,
(PK_MEMBER, PK_PARENT, SUM_PV, SUM_BOX, TEAM_SUM_PV, TEAM_SUM_BOX, TEAM_SUM_AMOUNT,
INFLATE_BIG_BOX,
INFLATE_SMALL_BOX,
PK_COUNTRY)
@ -1867,19 +1749,18 @@
tmp.TEAM_SUM_AMOUNT,
tmp.INFLATE_BIG_BOX,
tmp.INFLATE_SMALL_BOX,
tmp.PK_COUNTRY
)
tmp.PK_COUNTRY)
when matched then
update set cmab.SUM_BOX = tmp.SUM_BOX,
cmab.SUM_PV = tmp.SUM_PV,
cmab.TEAM_SUM_PV=tmp.TEAM_SUM_PV,
cmab.TEAM_SUM_BOX=tmp.TEAM_SUM_BOX,
cmab.TEAM_SUM_AMOUNT=tmp.TEAM_SUM_AMOUNT,
cmab.INFLATE_BIG_BOX=tmp.INFLATE_BIG_BOX,
cmab.INFLATE_SMALL_BOX=tmp.INFLATE_SMALL_BOX
cmab.TEAM_SUM_PV = tmp.TEAM_SUM_PV,
cmab.TEAM_SUM_BOX = tmp.TEAM_SUM_BOX,
cmab.TEAM_SUM_AMOUNT = tmp.TEAM_SUM_AMOUNT,
cmab.INFLATE_BIG_BOX = tmp.INFLATE_BIG_BOX,
cmab.INFLATE_SMALL_BOX = tmp.INFLATE_SMALL_BOX
</update>
<!-- 秒结表查询会员是否激活-->
<!-- 秒结表查询会员是否激活-->
<select id="selectMemberActiveState" resultType="com.hzs.report.member.vo.DirectPushBoxVo">
<foreach collection="pkMemberList" item="pkMember" separator="union all">
SELECT min(t0.enable_status) enableStatus,
@ -1897,63 +1778,6 @@
</foreach>
</select>
<!-- 查询总盒数-->
<select id="selectMemberTotalBox" resultType="integer">
SELECT nvl(sum(totalAreaBox), 0) totalAreaBox
FROM (SELECT NVL(mr.team_box_num + mr.consume_box_num, 0) totalAreaBox
FROM ${memberRetailTable} mr
WHERE mr.category = 0
AND mr.pk_member = #{pkMember}
<if test="payTime!=null and payTime!=''">
union all
select NVL(rs.new_box_num + rs.team_new_box_num, 0) totalAreaBox
from ${memberRetailSTable} rs
where rs.pk_member = #{pkMember}
</if>
)
</select>
<select id="selectWaterInjection" resultType="integer">
SELECT count(1)
FROM (SELECT sr.team_box_num, sr.small_box_num, sr.period_date
FROM cu_member_spe_retail sr
where sr.del_flag = 0
and sr.pk_country = 1
and sr.period_date &lt; TRUNC(SYSDATE)
and sr.member_code = #{memberCode}
ORDER BY sr.period_date desc) t0
where rownum = 1
</select>
<select id="selectMemberBoxWaterInjection" resultType="integer">
SELECT NVL(mr.big_box_num, 0) smallAreaBox
FROM ${memberRetailTable} mr
WHERE mr.category = 0
AND mr.pk_member = #{pkMember}
</select>
<select id="selectMemberBoxNoWaterInjection" resultType="integer">
SELECT nvl(max(smallAreaBox), 0) smallareabox
from
(
<if test="pkMemberList != null and pkMemberList.size > 0">
<include refid="selectMemberDirectPushBox"/>
union all
</if>
SELECT nvl(sum(smallAreaBox), 0) smallAreaBox
FROM (SELECT NVL(mr.consume_box_num, 0) smallAreaBox
FROM ${memberRetailTable} mr
WHERE mr.category = 0
AND mr.pk_member = #{pkMember}
<if test="payTime!=null and payTime!=''">
union all
select rs.new_box_num smallAreaBox
from ${memberRetailSTable} rs
where rs.pk_member = #{pkMember}
</if>
)
)
</select>
<sql id="selectMemberDirectPushBox">
<foreach collection="pkMemberList" item="pkMember" separator="union all">
@ -2003,6 +1827,4 @@
</if>
</select>
</mapper>

View File

@ -599,7 +599,6 @@ public class ApiRetailOrderController {
.channel(shoppingCartRedis.getSource())
.waresCode(shoppingCartRedis.getWaresCode())
.quantity(shoppingCartRedis.getNumber())
.pkMakerSpace(shoppingCartRedis.getPkMakerSpace())
.build();
List<WaresItemsParam> waresItemsParamList = new ArrayList<>(shoppingCartRedis.getProductGroup().size());
for (ProductGroup productGroup : shoppingCartRedis.getProductGroup()) {

View File

@ -226,37 +226,11 @@ public class RetailOrderServiceImpl implements IRetailOrderService {
return saOrderExt;
}
/**
* 获取升级价格
*
* @param gradeList 等级列表
* @param boxNum 购买盒数
* @param baseBoxNum 基础盒数
* @param updateGrade 升级等级
* @return
*/
private BigDecimal getUpGradePrice(List<BdGrade> gradeList, int boxNum, int baseBoxNum, BdGrade updateGrade) {
BigDecimal price;
if (null != updateGrade) {
// V4V5直接给固定价格不会因升级变动
if (updateGrade.getGradeValue() == EGrade.S_VIP.getValue()) {
price = ERetailWaresPrice.V5.getPrice();
} else if (updateGrade.getGradeValue() == EGrade.VIP.getValue()) {
price = ERetailWaresPrice.V4.getPrice();
} else {
price = this.getWaresPrice(baseBoxNum + boxNum, gradeList);
}
} else {
price = this.getWaresPrice(baseBoxNum + boxNum, gradeList);
}
return price;
}
@Override
public List<SaOrderItems> createSaOrderItems(RetailOrderParam orderParam, List<BdGrade> gradeList,
CuMember cuMember, SaOrderExt saOrderExt, CurrencyDTO currency) {
// 需要查询盒数商品
List<String> boxProductList = BoxProductUtil.getBoxProductListBySystemType(null);
List<String> boxWaresList = BoxProductUtil.getBoxWaresListBySystemType(null);
// 订单明细信息
List<SaOrderItems> orderItemsList = new ArrayList<>();
@ -291,7 +265,7 @@ public class RetailOrderServiceImpl implements IRetailOrderService {
// }
// 当前盒数
int boxNum = 0;
BigDecimal boxNum = BigDecimal.ZERO;
// // 2025.03.11 添加需求复购专区重消专区指定盒数商品每用户每月限购50件
// this.checkWaresLimit(cuMember.getPkId(), orderParam.getSpecialArea(), waresDetailExtList, boxProductList);
@ -315,9 +289,9 @@ public class RetailOrderServiceImpl implements IRetailOrderService {
saOrderHandle.setPostageTmpMap(orderParam.getTranType(), postageMap, waresDetailExt, orderItems);
}
if (boxProductList.contains(waresDetailExt.getWaresCode())) {
if (boxWaresList.contains(waresDetailExt.getWaresCode())) {
// 商品是盒数商品需要累计数量
boxNum += orderItems.getWaresQuantity();
boxNum = boxNum.add(waresDetailExt.getBoxNum().multiply(new BigDecimal(orderItems.getWaresQuantity())));
}
}
@ -478,26 +452,6 @@ public class RetailOrderServiceImpl implements IRetailOrderService {
}
}
/**
* 根据购买盒数返回商品价格
*
* @param boxNum 盒数
* @param gradeList 等级列表倒序排序
* @return
*/
private BigDecimal getWaresPrice(int boxNum, List<BdGrade> gradeList) {
// 去掉升级条件带有累计盒数的V4,V5并且升级购买合数小于等于订单商品盒数的再进行等级值倒序排序
gradeList = gradeList.stream().filter(tmpGrade -> tmpGrade.getBoxTotal() == 0 && tmpGrade.getBoxNumber() <= boxNum).sorted(Comparator.comparingInt(BdGrade::getGradeValue).reversed()).collect(Collectors.toList());
for (BdGrade bdGrade : gradeList) {
if (boxNum > bdGrade.getBoxNumber()) {
// 盒数大于等于购买盒数
return ERetailWaresPrice.getEnumByValue(bdGrade.getGradeValue()).getPrice();
}
}
return ERetailWaresPrice.V0.getPrice();
}
/**
* 封装订单信息
*
@ -807,7 +761,7 @@ public class RetailOrderServiceImpl implements IRetailOrderService {
Map<Integer, Integer> waresLimitMap = new HashMap<>();
// 盒数商品
List<String> boxProductList = BoxProductUtil.getBoxProductListBySystemType(saOrderExt.getSystemType());
List<String> boxProductList = BoxProductUtil.getBoxWaresListBySystemType(saOrderExt.getSystemType());
for (SaOrderItems saOrderItems : saOrderExt.getOrderItemsList()) {
saOrderItems.setPkOrder(saOrderExt.getPkId());
@ -933,7 +887,7 @@ public class RetailOrderServiceImpl implements IRetailOrderService {
&& (EOrderType.RETAIL_REGISTER.getValue() == saOrder.getOrderType() || EOrderType.RETAIL_UPGRADE.getValue() == saOrder.getOrderType())
) {
// 会员激活状态为空 未激活并且是 注册升级 订单判断会员是否激活
if (saOrder.getBoxNum() > 0) {
if (saOrder.getBoxNum().compareTo(BigDecimal.ZERO) > 0) {
// 存在指定盒数商品
cuMember.setIsActivate(EYesNo.YES.getIntValue());
if (EPayStatus.UNPAID.getValue() == cuMember.getPayStatus()) {

View File

@ -40,7 +40,6 @@ import com.hzs.sale.wares.service.IBdWaresDetailService;
import com.hzs.scm.pub.IScmBillServiceApi;
import com.hzs.system.base.IAreaServiceApi;
import com.hzs.system.base.ICurrencyServiceApi;
import com.hzs.system.base.dto.CurrencyDTO;
import lombok.extern.slf4j.Slf4j;
import org.apache.dubbo.config.annotation.DubboReference;
import org.springframework.beans.factory.annotation.Autowired;
@ -98,24 +97,19 @@ public abstract class ParentOrderController extends BaseController {
return orderItemsService;
}
/**
* 根据code编码获取值
*
* @param code 查询的code
* @Description: 根据code编码获取值
* @return: CuMember
* @Author: sui q
* @Date: 2022/8/30 8:48
*/
protected CuMember getCuMemberByCode(String code) {
return orderService.getCuMemberByCode(code);
}
/**
* 验证字段是否必输
*
* @param fieldList 需要验证的字段
* @Description: 验证字段是否必输
* @return: boolean
* @Author: sui q
* @Date: 2022/8/29 11:13
*/
protected boolean validateFieldNotNull(OrderParam orderParam, List<String> fieldList) {
return fieldList.stream().anyMatch(field -> {
@ -125,11 +119,9 @@ public abstract class ParentOrderController extends BaseController {
}
/**
* 验证手机号+姓名
*
* @param orderParam 手机号姓名安置人必输
* @Description: 验证手机号+姓名
* @return: AjaxResult
* @Author: sui q
* @Date: 2022/8/27 16:51
*/
protected AjaxResult validatePhone(OrderParam orderParam) {
if (StringUtils.isEmpty(orderParam.getPhone()) || StringUtils.isEmpty(orderParam.getMemberName())) {
@ -190,11 +182,9 @@ public abstract class ParentOrderController extends BaseController {
}
/**
* 验证推荐编号成功后返回姓名如果首单返回安置人安置部门
*
* @param orderParam 必须推荐人
* @Description: 验证推荐编号成功后返回姓名如果首单返回安置人安置部门
* @return: AjaxResult
* @Author: sui q
* @Date: 2022/8/27 16:53
*/
protected AjaxResult validateReferenceRelation(OrderParam orderParam) {
if (StringUtils.isEmpty(orderParam.getParent())) {
@ -264,11 +254,9 @@ public abstract class ParentOrderController extends BaseController {
}
/**
* 验证安置编号安置部门成功后返回姓名
*
* @param orderParam 必须安置人
* @Description: 验证安置编号安置部门成功后返回姓名
* @return: AjaxResult
* @Author: sui q
* @Date: 2022/8/27 16:53
*/
protected AjaxResult validatePlaceParentMemberCode(OrderParam orderParam) {
if (StringUtils.isEmpty(orderParam.getParent())) {
@ -341,11 +329,9 @@ public abstract class ParentOrderController extends BaseController {
}
/**
* 验证需要注册的信息, 订单保存时需要调用的验证
*
* @param orderParam 所有信息
* @Description: 验证需要注册的信息, 订单保存时需要调用的验证
* @return: AjaxResult
* @Author: sui q
* @Date: 2022/9/2 16:15
*/
protected AjaxResult validateSaveMember(OrderParam orderParam) {
// 安置编号
@ -375,9 +361,6 @@ public abstract class ParentOrderController extends BaseController {
/*
* 验证可用量可用量不足不能下单
* @author: sui q
* @date: 2023/12/14 17:49
* @param: null null
**/
protected String validateAvailableNum(OrderParam orderParam, String orderCode) {
// 验证是否控制进销存
@ -468,12 +451,10 @@ public abstract class ParentOrderController extends BaseController {
}
/**
* 对安置位置进行加锁预防位置重复
*
* @param placeParentId 安置人
* @param placeDept 安置位置
* @Description: 对安置位置进行加锁预防位置重复
* @return: void
* @Author: sui q
* @Date: 2022/9/5 9:20
*/
protected boolean validatePlacePosition(Long placeParentId, Integer placeDept) {
// 验证通过对安置人安置部门加锁防止同时安置引起错误最后解锁
@ -483,10 +464,6 @@ public abstract class ParentOrderController extends BaseController {
/**
* @param placeParentId 安置位置
* @param placeDept 安置部门
* @Description:
* @return: String
* @Author: sui q
* @Date: 2022/9/5 10:35
*/
private String getLockKey(Long placeParentId, Integer placeDept) {
return CacheConstants.POSITION +
@ -495,11 +472,9 @@ public abstract class ParentOrderController extends BaseController {
}
/**
* 空单注册 验证权限验证编号是否有报单权限
*
* @param centerCodeId 验证的权限
* @Description: 空单注册 验证权限验证编号是否有报单权限
* @return: AjaxResult
* @Author: sui q
* @Date: 2022/8/27 16:53
*/
protected AjaxResult validateRegisterAuthority(Long centerCodeId, Integer specialArea) {
// 前台登录验证登录会员后台空点验证输入的报单人
@ -580,10 +555,6 @@ public abstract class ParentOrderController extends BaseController {
* 验证手机号注册次数
*
* @param cuMemberExtList 会员数量
* @Description:
* @return: Boolean
* @Author: sui q
* @Date: 2022/8/29 11:38
*/
private Boolean validatePhoneCount(List<CuMemberExt> cuMemberExtList) {
// 判断次数获取系统参数从redis中获取系统参数
@ -621,11 +592,9 @@ public abstract class ParentOrderController extends BaseController {
}
/**
* 验证升级关系只能给自己或者自己安置伞下升级
*
* @param orderParam 前台传递的参数
* @Description: 验证升级关系只能给自己或者自己安置伞下升级
* @return: boolean
* @Author: sui q
* @Date: 2023/1/10 14:05
*/
protected AjaxResult validateUpgradeRelation(OrderParam orderParam) {
CuMember upgradeMember = orderService.getCuMemberByCode(orderParam.getUpgradeMemberCode());
@ -659,27 +628,16 @@ public abstract class ParentOrderController extends BaseController {
}
/**
* 查询订单返回值用于支付
*
* @param saOrder 订单
* @param orderParam 参数
* @Description: 查询订单返回值用于支付
* @return: OrderReturn
* @Author: sui q
* @Date: 2023/2/2 11:11
*/
protected OrderReturn getOrderReturn(SaOrder saOrder, OrderParam orderParam) {
// 封装订单信息
long maxPayTime = getOrderService().getIsToBePayTime(orderParam.getPkSettleCountry(), saOrder.getOrderType());
// 剩余支付秒数
//查询带关闭参数
// 获取行政区划map
Integer pkLoginCountry = orderParam.getPkLoginSettleCountry();
BigDecimal orderAmount = saOrder.getOrderAmount();
if (!Objects.equals(pkLoginCountry, saOrder.getPkCountry())) {
// 结算国当地币 转美金 美金登录当地币
CurrencyDTO loginCountryCurrency = currencyServiceApi.getCurrency(pkLoginCountry).getData();
CurrencyDTO settleCountryCurrency = currencyServiceApi.getCurrency(saOrder.getPkCountry()).getData();
orderAmount = ComputeUtil.computeMultiply(ComputeUtil.computeDivide(orderAmount, settleCountryCurrency.getInExchangeRate()), loginCountryCurrency.getInExchangeRate());
}
Map<Integer, String> areaMap = iAreaServiceApi.getAreaMap(orderParam.getPkSettleCountry()).getData();
OrderReturn orderReturn = OrderReturn.builder()
.orderCode(saOrder.getOrderCode())
@ -724,7 +682,6 @@ public abstract class ParentOrderController extends BaseController {
.channel(shoppingCartRedis.getSource())
.waresCode(shoppingCartRedis.getWaresCode())
.quantity(shoppingCartRedis.getNumber())
.pkMakerSpace(shoppingCartRedis.getPkMakerSpace())
.build();
List<WaresItemsParam> waresItemsParamList = new ArrayList<>(shoppingCartRedis.getProductGroup().size());
for (ProductGroup productGroup : shoppingCartRedis.getProductGroup()) {

View File

@ -671,11 +671,11 @@ public class SaOrderBusinessController extends BaseController {
return AjaxResult.error(checkStr);
}
// 校验盒数商品与非盒数商品不能互换
checkStr = iOrderBusinessService.checkOrderRetailProduct(param);
if (null != checkStr) {
return AjaxResult.error(checkStr);
}
// // 校验盒数商品与非盒数商品不能互换
// checkStr = iOrderBusinessService.checkOrderRetailProduct(param);
// if (null != checkStr) {
// return AjaxResult.error(checkStr);
// }
// 确认调换货物并发起审批
String str = iOrderBusinessService.changeProductApprovalSubmit(param, userTokenService.getLoginUser());
@ -722,11 +722,11 @@ public class SaOrderBusinessController extends BaseController {
return AjaxResult.error(checkStr);
}
// 校验盒数商品与非盒数商品不能互换
checkStr = iOrderBusinessService.checkOrderRetailProduct(param);
if (null != checkStr) {
return AjaxResult.error(checkStr);
}
// // 校验盒数商品与非盒数商品不能互换
// checkStr = iOrderBusinessService.checkOrderRetailProduct(param);
// if (null != checkStr) {
// return AjaxResult.error(checkStr);
// }
// 调换货物不走签呈
String str = iOrderBusinessService.changeProductApprovalFreeSign(param, userTokenService.getLoginUser());

View File

@ -14,6 +14,7 @@ import com.hzs.sale.order.param.WaresOrderParam;
import com.hzs.sale.order.vo.WaresOrderVo;
import org.apache.ibatis.annotations.Param;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
@ -285,7 +286,7 @@ public interface SaOrderItemsMapper extends BaseMapper<SaOrderItems> {
* @param systemType 系统类型可为null
* @return
*/
int getRetailWaresQuantityNew(@Param("pkMember") Long pkMember,
BigDecimal getRetailWaresQuantityNew(@Param("pkMember") Long pkMember,
@Param("waresCodeList") List<String> waresCodeList,
@Param("payTime") Date payTime,
@Param("orderTypeList") List<Integer> orderTypeList,

View File

@ -6,6 +6,7 @@ import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;
/**
@ -40,9 +41,9 @@ public class OrderItemsParam implements Serializable {
private Integer quantity;
/**
* 创客空间id
* 商品盒数
*/
private Long pkMakerSpace;
private BigDecimal boxNum;
/**
* 商品明细

View File

@ -14,6 +14,7 @@ import com.hzs.sale.order.param.WaresOrderParam;
import com.hzs.sale.order.vo.WaresOrderVo;
import org.apache.ibatis.annotations.Param;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
@ -249,7 +250,7 @@ public interface ISaOrderItemsService extends IService<SaOrderItems> {
* @param systemType 系统类型可为null
* @return
*/
int getRetailWaresQuantityNew(Long pkMember, List<String> waresCodeList, Date payTime, List<Integer> orderTypeList, Integer systemType);
BigDecimal getRetailWaresQuantityNew(Long pkMember, List<String> waresCodeList, Date payTime, List<Integer> orderTypeList, Integer systemType);
/**
* 订单发货数量

View File

@ -154,14 +154,14 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService {
@Override
public String checkOrderRetailProduct(OrderProductParam param) {
// 盒数商品对应的产品列表
List<Integer> pkProductList = iBdWaresService.listBoxProduct(BoxProductUtil.getBoxProductListBySystemType(null));
List<Integer> pkProductList = iBdWaresService.listBoxProduct(BoxProductUtil.getBoxWaresListBySystemType(null));
// 换货产品列表
List<Integer> paramProductList = param.getItemList().stream().map(OrderProductDetailParam::getPkProduct).collect(Collectors.toList());
SaOrder saOrder = iSaOrderService.getOne(Wrappers.<SaOrder>lambdaQuery()
.eq(SaOrder::getOrderCode, param.getOrderCode())
);
if (saOrder.getBoxNum() > 0) {
if (saOrder.getBoxNum().compareTo(BigDecimal.ZERO) > 0) {
// 盒数商品订单换货的产品是否都是盒数商品下的如果是则可以进行更换如果不是则不能更换
for (Integer pkProduct : paramProductList) {
if (!pkProductList.contains(pkProduct)) {
@ -2288,7 +2288,7 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService {
saOrderItems.setPkWaresSpecsSku(0);
// 2025.02.11 如果是盒数商品换货需要更新成最新的盒数商品ID
List<BdWaresDetail> tmpList = iBdWaresService.listBoxProductAndWares(BoxProductUtil.getBoxProductListBySystemType(null), saOrderItems.getPkProduct(), ESpecialArea.getRetailSpecialAreaValue(saOrder.getOrderType()));
List<BdWaresDetail> tmpList = iBdWaresService.listBoxProductAndWares(BoxProductUtil.getBoxWaresListBySystemType(null), saOrderItems.getPkProduct(), ESpecialArea.getRetailSpecialAreaValue(saOrder.getOrderType()));
if (CollectionUtil.isNotEmpty(tmpList)) {
saOrderItems.setPkWares(tmpList.get(0).getPkWares());
}
@ -2312,10 +2312,11 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService {
// 不同产品需要更新
// 调换货物选择不同产品没有商品信息此处先全部按默认值来处理
// 2025.02.11 如果盒数商品历史商品ID不变非盒数商品进行处理
if (saOrder.getBoxNum() == 0) {
// // 2025.02.11 如果盒数商品历史商品ID不变非盒数商品进行处理
// if (saOrder.getBoxNum() == 0) {
// saOrderItems.setPkWares(0);
// }
saOrderItems.setPkWares(0);
}
saOrderItems.setPkWaresDetail(0);
saOrderItems.setPkWaresSpecsSku(0);
updateOrderItemsList.add(saOrderItems);

View File

@ -20,6 +20,7 @@ import com.hzs.sale.order.vo.WaresOrderVo;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.util.*;
/**
@ -194,7 +195,7 @@ public class SaOrderItemsServiceImpl extends ServiceImpl<SaOrderItemsMapper, SaO
}
@Override
public int getRetailWaresQuantityNew(Long pkMember, List<String> waresCodeList, Date payTime, List<Integer> orderTypeList, Integer systemType) {
public BigDecimal getRetailWaresQuantityNew(Long pkMember, List<String> waresCodeList, Date payTime, List<Integer> orderTypeList, Integer systemType) {
return baseMapper.getRetailWaresQuantityNew(pkMember, waresCodeList, payTime, orderTypeList, systemType);
}

View File

@ -57,7 +57,6 @@ public class BdWaresDetailServiceImpl extends ServiceImpl<BdWaresDetailMapper, B
.waresCode(orderItemsParam.getWaresCode())
.pkWaresSpecsSku(waresItemsParam.getPkWaresSpecsSku())
.waresQuantity(orderItemsParam.getQuantity())
.pkMakerSpace(orderItemsParam.getPkMakerSpace())
.price(BigDecimal.ZERO)
.achieve(BigDecimal.ZERO)
.build();

View File

@ -1160,7 +1160,7 @@
</select>
<!-- 查询新零售购买指定商品数量(新) -->
<select id="getRetailWaresQuantityNew" resultType="int">
<select id="getRetailWaresQuantityNew" resultType="decimal">
select nvl(sum(soi.wares_quantity), 0) wares_quantity
from sa_order so
left join sa_order_items soi

View File

@ -36,6 +36,8 @@
<result column="PRE_SALE_STATUS" property="preSaleStatus"/>
<result column="PK_PRODUCT_BAS" property="pkProductBas"/>
<result column="PK_UNIT" property="pkUnit"/>
<result column="AREA_INCOME" property="areaIncome"/>
<result column="BOX_NUM" property="boxNum"/>
<collection property="waresSpecsList" ofType="com.hzs.common.domain.sale.ext.WaresSpecsExt">
<result column="PK_SPECS_TYPE" property="pkSpecsType"/>
<result column="PK_SPECS" property="pkSpecs"/>
@ -50,7 +52,8 @@
be.pk_special_currency,bw.wares_code, bw.wares_name,
bd.is_gift is_gift,
bd.pk_product,bs.price,bs.achieve,bp.pk_supplier,bp.shipping_channel,bp.product_code,
bs.ass_achieve,b.specs_name,b.specs_name_id
bs.ass_achieve,b.specs_name,b.specs_name_id,
bw.area_income, bw.box_num
from bd_wares bw
inner join bd_wares_extend be
on bw.pk_id = be.pk_wares

View File

@ -159,7 +159,7 @@
ac.CLASSIFY_NAME,we.OPERATE_SCOPE,we.IS_SALE,we.IS_PUT_ON,we.PRE_SALE_STATUS,bw.PK_ID,we.ARRIVAL_TIME,we.PUT_ON_TIME,we.PUT_OFF_TIME,
we.SALES actualSales,we.SALES,bw.CREATION_TIME,bw.IS_RECOMMEND,bw.LISTING_TIME,bw.REMOVAL_TIME,bw.SORT_STATUS,we.IS_MAKER_GIFT,
sc.TEMP_NAME, we.maker_income, nvl(we.SYSTEM_TYPE, 2) SYSTEM_TYPE, bw.WARES_STATUS,
AREA_INCOME, BOX_NUM
bw.area_income, bw.box_num
from bd_wares bw
left join BD_WARES_EXTEND we on we.PK_WARES = bw.PK_ID
left join BD_AREA_CLASSIFY ac on ac.PK_ID = bw.PK_AREA_CLASSIFY

View File

@ -14,7 +14,7 @@ public class BoxProductUtil {
* @param systemType 系统类型为空返回全部盒数商品
* @return
*/
public static List<String> getBoxProductListBySystemType(Integer systemType) {
public static List<String> getBoxWaresListBySystemType(Integer systemType) {
List<String> productList = new ArrayList<>(0);
if (null == systemType || ESystemType.ALL.getValue() == systemType) {

View File

@ -117,17 +117,17 @@ public class CuMemberRetailRange extends BaseEntity {
* 本人当天新消费盒数
*/
@TableField("NEW_BOX_NUM")
private Integer newBoxNum;
private BigDecimal newBoxNum;
/**
* 本人累计消费盒数
*/
@TableField("CONSUME_BOX_NUM")
private Integer consumeBoxNum;
private BigDecimal consumeBoxNum;
/**
* 本人月累计盒数
*/
@TableField("MONTH_BOX_NUM")
private Integer monthBoxNum;
private BigDecimal monthBoxNum;
/**
* 本人当天新消费pv
@ -159,17 +159,17 @@ public class CuMemberRetailRange extends BaseEntity {
* 团队当天新增盒数
*/
@TableField("TEAM_NEW_BOX_NUM")
private Integer teamNewBoxNum;
private BigDecimal teamNewBoxNum;
/**
* 团队累计盒数
*/
@TableField("TEAM_BOX_NUM")
private Integer teamBoxNum;
private BigDecimal teamBoxNum;
/**
* 团队月累计盒数
*/
@TableField("TEAM_MONTH_BOX_NUM")
private Integer teamMonthBoxNum;
private BigDecimal teamMonthBoxNum;
/**
* 团队当天新增消费pv
@ -238,13 +238,13 @@ public class CuMemberRetailRange extends BaseEntity {
* 大区注水盒数
*/
@TableField("big_box_num")
private Integer bigBoxNum;
private BigDecimal bigBoxNum;
/**
* 小区注水盒数
*/
@TableField("small_box_num")
private Integer smallBoxNum;
private BigDecimal smallBoxNum;
@TableField("big_team_pv")
private BigDecimal bigTeamPv;

View File

@ -47,13 +47,13 @@ public class CuMemberRetailS implements Serializable {
* 新増盒数
*/
@TableField("NEW_BOX_NUM")
private Integer newBoxNum;
private BigDecimal newBoxNum;
/**
* 伞下新増盒数
*/
@TableField("TEAM_NEW_BOX_NUM")
private Integer teamNewNoxNum;
private BigDecimal teamNewNoxNum;
/**
* 新増业绩

View File

@ -138,4 +138,14 @@ public class BdWaresDetailExt extends BdWaresDetail {
*/
private Integer pkUnit;
/**
* 复购区域分红
*/
private BigDecimal areaIncome;
/**
* 商品上传盒数
*/
private BigDecimal boxNum;
}

View File

@ -20,4 +20,9 @@ public class SaOrderWaresExt extends SaOrderWares {
*/
private BigDecimal areaIncome;
/**
* 商品上传盒数
*/
private BigDecimal boxNum;
}

View File

@ -224,6 +224,6 @@ public class SaOrder extends BaseEntity {
* 指定商品盒数
*/
@TableField("BOX_NUM")
private Integer boxNum;
private BigDecimal boxNum;
}

View File

@ -164,19 +164,19 @@ public class BdGrade extends BaseEntity {
* 购买盒数
*/
@TableField("BOX_NUMBER")
private Integer boxNumber;
private BigDecimal boxNumber;
/**
* 累计盒数
*/
@TableField("BOX_TOTAL")
private Integer boxTotal;
private BigDecimal boxTotal;
/**
* 小市场盒数
*/
@TableField("BOX_SMALL_TOTAL")
private Integer boxSmallTotal;
private BigDecimal boxSmallTotal;
/**
* 购买价格