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

This commit is contained in:
sangelxiu1 2025-07-04 09:26:16 +08:00
commit c274fba09e
21 changed files with 436 additions and 273 deletions

View File

@ -42,7 +42,7 @@ public class CuMemberTreeServiceImpl extends ServiceImpl<CuMemberTreeMapper, CuM
baseMapper.createCuMemberTreeParentIndex(settleTableName);
baseMapper.createCuMemberTreePlaceIndex(settleTableName);
}
// 创建新零售差结算记录表
// 创建新零售差结算记录表
String retailRangeTableName = TableNameConstants.CU_MEMBER_RETAIL_RANGE + period;
number = baseMapper.queryExistOracleTable(retailRangeTableName);
if (number == null || number <= 0) {

View File

@ -204,8 +204,10 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
// 当天的撤单
List<CuMemberRetailRangeExt> memberRetailRangeExtList;
String rangeTableName = TableNameConstants.CU_MEMBER_RETAIL_RANGE + beforePeriod;
// 是否当天
boolean isSecond = DateUtils.isSameDay(saOrderExt.getPayTime(), DateUtils.currentDate());
if (DateUtils.isSameDay(saOrderExt.getPayTime(), DateUtils.currentDate())) {
if (isSecond) {
// 当天撤单
// 实时网体查询血缘伞上会员更新秒结表等级奖衔
iCuMemberRetailRangeService.mergeMemberRetailGradeByMember(secondRangeTableName, saOrderExt.getPkMember(), EYesNo.YES.getIntValue());
@ -274,9 +276,12 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
sourceMemberRangeExt.setNewConsumePv(ComputeUtil.computeSubtract(sourceMemberRangeExt.getNewConsumePv(), orderAchieve));
sourceMemberRangeExt.setConsumePv(ComputeUtil.computeSubtract(sourceMemberRangeExt.getConsumePv(), orderAchieve));
sourceMemberRangeExt.setMonthConsumePv(ComputeUtil.computeSubtract(sourceMemberRangeExt.getMonthConsumePv(), orderAchieve));
// 累计盒数业绩不管激活不激活都处理兼容不激活判断显示有问题
sourceMemberRangeExt.setAllNewBoxNum(sourceMemberRangeExt.getAllNewBoxNum().subtract(boxNum));
sourceMemberRangeExt.setAllNewConsumePv(sourceMemberRangeExt.getAllNewConsumePv().subtract(orderAchieve));
if (isSecond) {
// 当天
// 累计盒数业绩不管激活不激活都处理兼容不激活判断显示有问题
sourceMemberRangeExt.setAllNewBoxNum(sourceMemberRangeExt.getAllNewBoxNum().subtract(boxNum));
sourceMemberRangeExt.setAllNewConsumePv(sourceMemberRangeExt.getAllNewConsumePv().subtract(orderAchieve));
}
// 会员等级map
Map<String, CuMemberGrade> cuMemberGradeMap = new HashMap<>();
@ -289,7 +294,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
cuMemberGradeMap, cuMemberAwardsMap, cuMemberShareAwardsMap, sourceMemberRangeExt);
// 计算团队业绩盒数计算等级奖衔
List<CuMemberRetailRangeExt> cuMemberRetailRangeExtList = calculateRetailBackRangeGradeAwards(currentPeriod, memberRangeExtMap, rangeTableName, saOrderExt, retailTeamGradeMap, retailAwardsMap,
secondRangeTableName, boxNum, cuMemberGradeMap, cuMemberAwardsMap, cuMemberShareAwardsMap);
secondRangeTableName, boxNum, cuMemberGradeMap, cuMemberAwardsMap, cuMemberShareAwardsMap, isSecond);
cuMemberRetailRangeExtList.add(sourceMemberRangeExt);
// 查询期间的等级
@ -532,6 +537,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
sourceMemberRangeExt.setNewConsumePv(ComputeUtil.computeAdd(sourceMemberRangeExt.getNewConsumePv(), orderAchieve));
sourceMemberRangeExt.setConsumePv(ComputeUtil.computeAdd(sourceMemberRangeExt.getConsumePv(), orderAchieve));
sourceMemberRangeExt.setMonthConsumePv(ComputeUtil.computeAdd(sourceMemberRangeExt.getMonthConsumePv(), orderAchieve));
// 计算自己等级奖衔等
calculateGradeAwards(period, memberRangeExtMap, rangeTableName, saOrderExt, retailTeamGradeMap, retailAwardsMap,
null, cuMemberGradeList, cuMemberAwardsList, sourceMemberRangeExt, activateMap);
@ -546,25 +552,27 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
) {
// 注册或升级订单并且存在盒数产品才有 直推级差收益 平级收益
for (SaOrderWaresExt saOrderItems : saOrderExt.getOrderWaresExtList()) {
// 直推级差 + 平级收益
cuMemberBonusRangeList.addAll(calculateRetailRangeBonus(memberRangeExtMap, cuMemberBonusMap, gradeMap, bonusConfigDTO, period, saOrderItems, saOrderExt));
if (RetailConstants.ALL_BOX_WARES_LIST.contains(saOrderItems.getWaresCode())) {
// 盒数商品 计算 直推级差 + 平级收益
cuMemberBonusRangeList.addAll(calculateRetailRangeBonus(memberRangeExtMap, cuMemberBonusMap, gradeMap, bonusConfigDTO, period, saOrderItems, saOrderExt));
}
// 计算完奖金算等级
if (EOrderType.RETAIL_REGISTER.getValue() == saOrderExt.getOrderType()
|| EOrderType.RETAIL_UPGRADE.getValue() == saOrderExt.getOrderType()) {
// 订单存在升级记录
if (memberLevelMap.containsKey(saOrderExt.getPkId())) {
CuMemberLevel cuMemberLevel = memberLevelMap.get(saOrderExt.getPkId());
if (gradeIdMap.containsKey(cuMemberLevel.getNewLevel())) {
BdGrade bdGrade = gradeIdMap.get(cuMemberLevel.getNewLevel());
if (bdGrade.getGradeValue() > sourceMemberRangeExt.getGradeValue()) {
sourceMemberRangeExt.setPkGrade(bdGrade.getPkId());
sourceMemberRangeExt.setGradeValue(bdGrade.getGradeValue());
sourceMemberRangeExt.setGradeName(bdGrade.getGradeName());
}
// if (EOrderType.RETAIL_REGISTER.getValue() == saOrderExt.getOrderType()
// || EOrderType.RETAIL_UPGRADE.getValue() == saOrderExt.getOrderType()) {
// // 订单存在升级记录
if (memberLevelMap.containsKey(saOrderExt.getPkId())) {
CuMemberLevel cuMemberLevel = memberLevelMap.get(saOrderExt.getPkId());
if (gradeIdMap.containsKey(cuMemberLevel.getNewLevel())) {
BdGrade bdGrade = gradeIdMap.get(cuMemberLevel.getNewLevel());
if (bdGrade.getGradeValue() > sourceMemberRangeExt.getGradeValue()) {
sourceMemberRangeExt.setPkGrade(bdGrade.getPkId());
sourceMemberRangeExt.setGradeValue(bdGrade.getGradeValue());
sourceMemberRangeExt.setGradeName(bdGrade.getGradeName());
}
}
}
// }
}
}
@ -631,8 +639,19 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
}
// 累计盒数业绩不管激活不激活都处理兼容不激活判断显示有问题
targetMemberRangeExt.setAllTeamNewBoxNum(targetMemberRangeExt.getAllTeamNewBoxNum().add(boxNum));
targetMemberRangeExt.setAllTeamNewPv(targetMemberRangeExt.getAllTeamNewPv().add(orderAchieve));
if (null != secondRangeTableName) {
// 秒结处理
targetMemberRangeExt.setAllTeamNewBoxNum(targetMemberRangeExt.getAllTeamNewBoxNum().add(boxNum));
targetMemberRangeExt.setAllTeamNewPv(targetMemberRangeExt.getAllTeamNewPv().add(orderAchieve));
} else {
// 日结处理
targetMemberRangeExt.setAllTeamNewBoxNum(targetMemberRangeExt.getAllTeamNewBoxNum().add(boxNum));
targetMemberRangeExt.setAllTeamBoxNum(targetMemberRangeExt.getAllTeamBoxNum().add(boxNum));
targetMemberRangeExt.setAllTeamMonthBoxNum(targetMemberRangeExt.getAllTeamMonthBoxNum().add(boxNum));
targetMemberRangeExt.setAllTeamNewPv(targetMemberRangeExt.getAllTeamNewPv().add(orderAchieve));
targetMemberRangeExt.setAllTeamConsumePv(targetMemberRangeExt.getAllTeamConsumePv().add(orderAchieve));
targetMemberRangeExt.setAllTeamMonthPv(targetMemberRangeExt.getAllTeamMonthPv().add(orderAchieve));
}
// 激活的账号才能累计业绩和盒数有注册升级订单
if (targetMemberRangeExt.getEnableStatus() == EYesNo.YES.getIntValue()) {
@ -658,7 +677,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
}
/**
* 计算等级奖衔
* 计算等级奖衔 -- 日结秒结
*/
private void calculateGradeAwards(Integer period, Map<Long, CuMemberRetailRangeExt> memberRangeExtMap, String rangeTableName,
SaOrderExt saOrderExt, Map<Integer, BdGrade> retailTeamGradeMap, Map<Integer, BdAwards> retailAwardsMap,
@ -674,7 +693,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
for (Integer gradeValue : retailTeamGradeMap.keySet()) {
BdGrade bdGrade = retailTeamGradeMap.get(gradeValue);
// 如果等级值 大于 当前会员等级值 并且 等级要求累计盒数 小于等于 团队累计盒数 + 累计消费盒数则可以进行升级
// 如果等级值 大于 当前会员等级值 并且 等级要求累计盒数 小于等于 团队累计盒数 + 累计消费盒数 + 大区注水 + 小区注水则可以进行升级
if (bdGrade.getGradeValue() > targetMemberRangeExt.getGradeValue()
&& bdGrade.getBoxTotal().compareTo(
targetMemberRangeExt.getTeamBoxNum().add(targetMemberRangeExt.getConsumeBoxNum()).add(targetMemberRangeExt.getBigBoxNum()).add(targetMemberRangeExt.getSmallBoxNum())
@ -682,7 +701,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
) {
// 验证小区计算小区累计盒数 查询伞下会员
List<CuMemberRetailRangeExt> cuMemberRangeExtList;
if (secondRangeTableName != null) {
if (null != secondRangeTableName) {
// 会员表 关联 秒结表 昨日结算表查询订单会员直推数据
cuMemberRangeExtList = iCuMemberRetailRangeService.queryCuMemberSecondRangeExtByParent(rangeTableName, secondRangeTableName, targetMemberRangeExt.getPkMember());
} else {
@ -707,7 +726,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
cuMemberRetailRangeExt = memberRangeExtMap.get(cuMemberRetailRangeExt.getPkMember());
}
// 伞下团队累计盒数 + 自己消费盒数
BigDecimal areaBoxNum = cuMemberRetailRangeExt.getTeamBoxNum().add(cuMemberRetailRangeExt.getConsumeBoxNum());
BigDecimal areaBoxNum = cuMemberRetailRangeExt.getAllTeamBoxNum().add(cuMemberRetailRangeExt.getConsumeBoxNum());
if (areaBoxNum.compareTo(bigBoxNum) > 0) {
// 实际订单累计盒数 大于 累计消费盒数实际订单累计盒数为大区
bigBoxNum = areaBoxNum;
@ -715,7 +734,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
}
// 小区盒数团队累计盒数 + 自消费累计盒数 + 两个注水虚拟盒数 - 大市场盒数
BigDecimal smallBoxNum = targetMemberRangeExt.getTeamBoxNum().add(targetMemberRangeExt.getConsumeBoxNum()).add(targetMemberRangeExt.getBigBoxNum()).add(targetMemberRangeExt.getSmallBoxNum()).subtract(bigBoxNum);
BigDecimal smallBoxNum = targetMemberRangeExt.getAllTeamBoxNum().add(targetMemberRangeExt.getConsumeBoxNum()).add(targetMemberRangeExt.getBigBoxNum()).add(targetMemberRangeExt.getSmallBoxNum()).subtract(bigBoxNum);
if (smallBoxNum.compareTo(bdGrade.getBoxSmallTotal()) >= 0) {
// 小区盒数 大于等于 升级小区盒数
CuMemberGrade cuMemberGrade = getCuMemberGrade(period, targetMemberRangeExt, bdGrade);
@ -770,7 +789,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
cuMemberRetailRangeExt = memberRangeExtMap.get(cuMemberRetailRangeExt.getPkMember());
}
// 月累计业绩 = 本人月消费业绩 + 团队月消费业绩
BigDecimal consumePv = ComputeUtil.computeAdd(cuMemberRetailRangeExt.getMonthConsumePv(), cuMemberRetailRangeExt.getTeamMonthPv());
BigDecimal consumePv = ComputeUtil.computeAdd(cuMemberRetailRangeExt.getMonthConsumePv(), cuMemberRetailRangeExt.getAllTeamMonthPv());
if (ComputeUtil.compareGreaterThan(consumePv, consumeBigPv)) {
// 月累计业绩 > 大区业绩则月累计就成为大区了
consumeBigPv = consumePv;
@ -801,7 +820,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
if (memberRangeExtMap.containsKey(cuMemberRetailRangeExt.getPkMember())) {
cuMemberRetailRangeExt = memberRangeExtMap.get(cuMemberRetailRangeExt.getPkMember());
}
if (ComputeUtil.compareValue(ComputeUtil.computeAdd(cuMemberRetailRangeExt.getMonthConsumePv(), cuMemberRetailRangeExt.getTeamMonthPv()), bdAwards.getShareCommunityCheck())) {
if (ComputeUtil.compareValue(ComputeUtil.computeAdd(cuMemberRetailRangeExt.getMonthConsumePv(), cuMemberRetailRangeExt.getAllTeamMonthPv()), bdAwards.getShareCommunityCheck())) {
// 本人月消费业绩 + 团队月消费业绩 >= 小区考核业绩则满足条件小部门 +1
enoughNum += 1;
}
@ -822,11 +841,12 @@ 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, BigDecimal boxNum,
Map<String, CuMemberGrade> cuMemberGradeMap, Map<String, CuMemberAwards> cuMemberAwardsMap, Map<String, CuMemberAwards> cuMemberShareAwardsMap) {
Map<String, CuMemberGrade> cuMemberGradeMap, Map<String, CuMemberAwards> cuMemberAwardsMap, Map<String, CuMemberAwards> cuMemberShareAwardsMap,
boolean isSecond) {
List<CuMemberRetailRangeExt> cuMemberRetailRangeExtList = new ArrayList<>();
// 订单会员
CuMemberRetailRangeExt sourceMemberRangeExt = memberRangeExtMap.get(saOrderExt.getPkMember());
@ -837,8 +857,19 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
BigDecimal orderAmount = saOrderExt.getOrderAmount();
while (targetMemberRangeExt != null) {
// 累计盒数业绩不管激活不激活都处理兼容不激活判断显示有问题
targetMemberRangeExt.setAllTeamNewBoxNum(targetMemberRangeExt.getAllTeamNewBoxNum().subtract(boxNum));
targetMemberRangeExt.setAllTeamNewPv(targetMemberRangeExt.getAllTeamNewPv().subtract(orderAchieve));
if (isSecond) {
// 当天秒结处理
targetMemberRangeExt.setAllTeamNewBoxNum(targetMemberRangeExt.getAllTeamNewBoxNum().add(boxNum));
targetMemberRangeExt.setAllTeamNewPv(targetMemberRangeExt.getAllTeamNewPv().add(orderAchieve));
} else {
// 非当天日结处理
targetMemberRangeExt.setAllTeamNewBoxNum(targetMemberRangeExt.getAllTeamNewBoxNum().add(boxNum));
targetMemberRangeExt.setAllTeamBoxNum(targetMemberRangeExt.getAllTeamBoxNum().add(boxNum));
targetMemberRangeExt.setAllTeamMonthBoxNum(targetMemberRangeExt.getAllTeamMonthBoxNum().add(boxNum));
targetMemberRangeExt.setAllTeamNewPv(targetMemberRangeExt.getAllTeamNewPv().add(orderAchieve));
targetMemberRangeExt.setAllTeamConsumePv(targetMemberRangeExt.getAllTeamConsumePv().add(orderAchieve));
targetMemberRangeExt.setAllTeamMonthPv(targetMemberRangeExt.getAllTeamMonthPv().add(orderAchieve));
}
// 激活的账号才能累计业绩和盒数有注册升级订单
if (targetMemberRangeExt.getEnableStatus() == EYesNo.YES.getIntValue()) {
@ -901,7 +932,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
cuMemberRetailRangeExt = memberRangeExtMap.get(cuMemberRetailRangeExt.getPkMember());
}
// 伞下团队累计盒数 + 自己消费盒数
BigDecimal areaBoxNum = cuMemberRetailRangeExt.getTeamBoxNum().add(cuMemberRetailRangeExt.getConsumeBoxNum());
BigDecimal areaBoxNum = cuMemberRetailRangeExt.getAllTeamBoxNum().add(cuMemberRetailRangeExt.getConsumeBoxNum());
if (areaBoxNum.compareTo(bigBoxNum) > 0) {
// 实际订单累计盒数 大于 累计消费盒数实际订单累计盒数为大区
bigBoxNum = areaBoxNum;
@ -909,7 +940,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
}
// 小区盒数团队累计盒数 + 自消费累计盒数 + 两个注水虚拟盒数 - 大市场盒数
BigDecimal smallBoxNum = targetMemberRangeExt.getTeamBoxNum().add(targetMemberRangeExt.getConsumeBoxNum()).add(targetMemberRangeExt.getBigBoxNum()).add(targetMemberRangeExt.getSmallBoxNum()).subtract(bigBoxNum);
BigDecimal smallBoxNum = targetMemberRangeExt.getAllTeamBoxNum().add(targetMemberRangeExt.getConsumeBoxNum()).add(targetMemberRangeExt.getBigBoxNum()).add(targetMemberRangeExt.getSmallBoxNum()).subtract(bigBoxNum);
if (smallBoxNum.compareTo(bdGrade.getBoxSmallTotal()) >= 0) {
// 小区盒数 大于等于 升级小区盒数
CuMemberGrade cuMemberGrade = getCuMemberGrade(period, targetMemberRangeExt, bdGrade);
@ -965,7 +996,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
cuMemberRetailRangeExt = memberRangeExtMap.get(cuMemberRetailRangeExt.getPkMember());
}
// 月累计业绩 = 本人月消费业绩 + 团队月消费业绩
BigDecimal consumePv = ComputeUtil.computeAdd(cuMemberRetailRangeExt.getMonthConsumePv(), cuMemberRetailRangeExt.getTeamMonthPv());
BigDecimal consumePv = ComputeUtil.computeAdd(cuMemberRetailRangeExt.getMonthConsumePv(), cuMemberRetailRangeExt.getAllTeamMonthPv());
if (ComputeUtil.compareGreaterThan(consumePv, consumeBigPv)) {
// 月累计业绩 > 大区业绩则月累计就成为大区了
consumeBigPv = consumePv;
@ -995,7 +1026,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
if (memberRangeExtMap.containsKey(cuMemberRetailRangeExt.getPkMember())) {
cuMemberRetailRangeExt = memberRangeExtMap.get(cuMemberRetailRangeExt.getPkMember());
}
if (ComputeUtil.compareValue(ComputeUtil.computeAdd(cuMemberRetailRangeExt.getMonthConsumePv(), cuMemberRetailRangeExt.getTeamMonthPv()), bdAwards.getShareCommunityCheck())) {
if (ComputeUtil.compareValue(ComputeUtil.computeAdd(cuMemberRetailRangeExt.getMonthConsumePv(), cuMemberRetailRangeExt.getAllTeamMonthPv()), bdAwards.getShareCommunityCheck())) {
// 本人月消费业绩 + 团队月消费业绩 >= 小区考核业绩则满足条件小部门 +1
enoughNum += 1;
}
@ -1374,9 +1405,16 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
} else if (EOrderType.RETAIL_REPURCHASE.getValue() == saOrder.getOrderType()) {
// 复购订单 区域收益 = 复购区域分红 * 商品数量
for (SaOrderWaresExt saOrderWaresExt : saOrder.getOrderWaresExtList()) {
benefitIncome = benefitIncome.add(saOrderWaresExt.getAreaIncome().multiply(new BigDecimal(saOrderWaresExt.getWaresQuantity())));
if (ERatioType.VALUE.getValue() == saOrderWaresExt.getAreaIncomeType()) {
// 按比值处理
benefitIncome = benefitIncome.add(saOrderWaresExt.getAreaIncome().multiply(new BigDecimal(saOrderWaresExt.getWaresQuantity())));
} else {
// 按比率处理
benefitIncome = benefitIncome.add(saOrderWaresExt.getWaresPrice().multiply(saOrderWaresExt.getAreaIncome()).divide(new BigDecimal("100"), 6, BigDecimal.ROUND_HALF_UP));
}
}
}
CuMemberBonusDetail cuMemberBonusDetail = packageBenefitIncome(bonusConfigDTO, period, cuMemberBonusMap, null, RetailConstants.SAME_RATIO, benefitIncome,
cuMemberRetailRangeExt, EBonusItems.RETAIL_AREA_INCOME.getValue(), BonusMsgConstants.RETAIL_AREA_INCOME);
// 计算业绩以盒数做为基础

View File

@ -70,28 +70,59 @@ public class CuRegionAssessServiceImpl extends ServiceImpl<CuRegionAssessMapper,
Map<Long, CuRegionAssess> regionAssessMap = new HashMap<>();
List<CuRegionAssessDetail> regionAssessDetailList = new ArrayList<>();
for (CuMemberRetailRegion cuMemberRetailRegion : memberRetailRegionList) {
CuRegionAssess cuRegionAssess = CuRegionAssess.builder()
.pkMember(cuMemberRetailRegion.getPkMember())
.pkRegion(cuMemberRetailRegion.getPkId())
.assessPeriod(1)
.assessStartDate(assessDate)
.assessEndDate(DateUtils.currentMonthFirstDate(DateUtils.afterMonthDate(5, assessDate)))
.source(cuMemberRetailRegion.getSource())
.build();
cuRegionAssess.setPkCreator(MagicNumberConstants.PK_ADMIN);
cuRegionAssess.setPkCountry(cuMemberRetailRegion.getPkCountry());
regionAssessMap.put(cuRegionAssess.getPkMember(), cuRegionAssess);
// 保存明细
for (int i = 0; i < 6; i++) {
CuRegionAssessDetail cuRegionAssessDetail = CuRegionAssessDetail.builder()
.pkRegionAssess(cuRegionAssess.getPkMember())
.assessDate(DateUtils.afterMonthDate(i, assessDate))
.pkMember(cuRegionAssess.getPkMember())
if (null != cuMemberRetailRegion.getEffectiveEndDate()) {
// 设置过生效结束时间
CuRegionAssess cuRegionAssess = CuRegionAssess.builder()
.pkMember(cuMemberRetailRegion.getPkMember())
.pkRegion(cuMemberRetailRegion.getPkId())
.assessPeriod(1)
.assessStartDate(assessDate)
// 考核结束期
.assessEndDate(DateUtils.currentMonthFirstDate(DateUtils.afterMonthDate(1, cuMemberRetailRegion.getEffectiveEndDate())))
.source(cuMemberRetailRegion.getSource())
.build();
cuRegionAssessDetail.setPkCreator(MagicNumberConstants.PK_ADMIN);
cuRegionAssessDetail.setPkCountry(cuMemberRetailRegion.getPkCountry());
regionAssessDetailList.add(cuRegionAssessDetail);
cuRegionAssess.setPkCreator(MagicNumberConstants.PK_ADMIN);
cuRegionAssess.setPkCountry(cuMemberRetailRegion.getPkCountry());
regionAssessMap.put(cuRegionAssess.getPkMember(), cuRegionAssess);
while (assessDate.compareTo(cuRegionAssess.getAssessEndDate()) <= 0) {
CuRegionAssessDetail cuRegionAssessDetail = CuRegionAssessDetail.builder()
.pkRegionAssess(cuRegionAssess.getPkMember())
.assessDate(assessDate)
.pkMember(cuRegionAssess.getPkMember())
.build();
cuRegionAssessDetail.setPkCreator(MagicNumberConstants.PK_ADMIN);
cuRegionAssessDetail.setPkCountry(cuMemberRetailRegion.getPkCountry());
regionAssessDetailList.add(cuRegionAssessDetail);
assessDate = DateUtils.afterMonthDate(1, assessDate);
}
} else {
CuRegionAssess cuRegionAssess = CuRegionAssess.builder()
.pkMember(cuMemberRetailRegion.getPkMember())
.pkRegion(cuMemberRetailRegion.getPkId())
.assessPeriod(1)
.assessStartDate(assessDate)
// 考核结束期
.assessEndDate(DateUtils.currentMonthFirstDate(DateUtils.afterMonthDate(5, assessDate)))
.source(cuMemberRetailRegion.getSource())
.build();
cuRegionAssess.setPkCreator(MagicNumberConstants.PK_ADMIN);
cuRegionAssess.setPkCountry(cuMemberRetailRegion.getPkCountry());
regionAssessMap.put(cuRegionAssess.getPkMember(), cuRegionAssess);
// 保存明细
for (int i = 0; i < 6; i++) {
CuRegionAssessDetail cuRegionAssessDetail = CuRegionAssessDetail.builder()
.pkRegionAssess(cuRegionAssess.getPkMember())
.assessDate(DateUtils.afterMonthDate(i, assessDate))
.pkMember(cuRegionAssess.getPkMember())
.build();
cuRegionAssessDetail.setPkCreator(MagicNumberConstants.PK_ADMIN);
cuRegionAssessDetail.setPkCountry(cuMemberRetailRegion.getPkCountry());
regionAssessDetailList.add(cuRegionAssessDetail);
}
}
}
saveCuRegionAssess(regionAssessMap, regionAssessDetailList);
}

View File

@ -65,8 +65,13 @@
<result column="all_new_box_num" property="allNewBoxNum"/>
<result column="all_new_consume_pv" property="allNewConsumePv"/>
<result column="all_team_new_box_num" property="allTeamNewBoxNum"/>
<result column="all_team_new_pv" property="allTeamNewPv"/>
<result column="all_team_box_num" property="allTeamBoxNum"/>
<result column="all_team_month_box_num" property="allTeamMonthBoxNum"/>
<result column="all_team_consume_pv" property="allTeamConsumePv"/>
<result column="all_team_month_pv" property="allTeamMonthPv"/>
</resultMap>
<update id="mergeMemberRetailRangeInit">
@ -94,7 +99,13 @@
big_box_num = 0,
small_box_num = 0,
big_team_pv = 0,
small_team_pv = 0
small_team_pv = 0,
all_team_new_box_num = 0,
all_team_box_num = 0,
all_team_month_box_num = 0,
all_team_new_pv = 0,
all_team_consume_pv = 0,
all_team_month_pv = 0
</update>
<update id="mergeMemberRetailRangeByYesterday">
@ -107,7 +118,9 @@
team_new_pv, team_consume_pv, team_month_pv,
team_new_amount, team_consume_amount, team_month_amount,
recommend_num, team_num,
big_box_num, small_box_num, big_team_pv, small_team_pv
big_box_num, small_box_num, big_team_pv, small_team_pv,
all_team_new_box_num, all_team_box_num, all_team_month_box_num,
all_team_new_pv, all_team_consume_pv, all_team_month_pv
from ${yesterdayRangeTableName}
) b
on (a.pk_member = b.pk_member)
@ -122,13 +135,19 @@
a.pk_grade = b.pk_grade,
a.enable_status = b.enable_status,
a.big_box_num = b.big_box_num, a.small_box_num = b.small_box_num,
a.big_team_pv = b.big_team_pv, a.small_team_pv = b.small_team_pv
a.big_team_pv = b.big_team_pv, a.small_team_pv = b.small_team_pv,
a.all_team_new_box_num = b.all_team_new_box_num,
a.all_team_box_num = b.all_team_box_num,
a.all_team_new_pv = b.all_team_new_pv,
a.all_team_consume_pv = b.all_team_consume_pv
<if test="isSameMonth == 0">
,a.month_box_num = b.month_box_num
,a.month_consume_pv = b.month_consume_pv
,a.team_month_box_num = b.team_month_box_num
,a.team_month_pv = b.team_month_pv
,a.team_month_amount = b.team_month_amount
,a.all_team_month_box_num = b.all_team_month_box_num
,a.all_team_month_pv = b.all_team_month_pv
</if>
</update>
@ -142,7 +161,10 @@
#{item.teamNewBoxNum} team_new_box_num, #{item.teamBoxNum} team_box_num, #{item.teamMonthBoxNum} team_month_box_num,
#{item.teamNewPv} team_new_pv, #{item.teamConsumePv} team_consume_pv, #{item.teamMonthPv} team_month_pv,
#{item.teamNewAmount} team_new_amount, #{item.teamConsumeAmount} team_consume_amount, #{item.teamMonthAmount} team_month_amount,
#{item.recommendNum} recommend_num, #{item.teamNum} team_num, #{item.enableStatus} enable_status
#{item.recommendNum} recommend_num, #{item.teamNum} team_num, #{item.enableStatus} enable_status,
#{item.allTeamNewBoxNum} all_team_new_box_num, #{item.allTeamNewPv} all_team_new_pv,
#{item.allTeamBoxNum} all_team_box_num, #{item.allTeamConsumePv} all_team_consume_pv,
#{item.allTeamMonthBoxNum} all_team_month_box_num, #{item.allTeamMonthPv} all_team_month_pv
from dual
</foreach>
) b
@ -154,7 +176,10 @@
a.team_new_box_num = b.team_new_box_num, a.team_box_num = b.team_box_num, a.team_month_box_num = b.team_month_box_num,
a.team_new_pv = b.team_new_pv, a.team_consume_pv = b.team_consume_pv, a.team_month_pv = b.team_month_pv,
a.team_new_amount = b.team_new_amount, a.team_consume_amount = b.team_consume_amount, a.team_month_amount = b.team_month_amount,
a.recommend_num = b.recommend_num, a.team_num = b.team_num, a.enable_status = b.enable_status
a.recommend_num = b.recommend_num, a.team_num = b.team_num, a.enable_status = b.enable_status,
a.all_team_new_box_num = b.all_team_new_box_num, a.all_team_new_pv = b.all_team_new_pv,
a.all_team_box_num = b.all_team_box_num, a.all_team_consume_pv = b.all_team_consume_pv,
a.all_team_month_box_num = b.all_team_month_box_num, a.all_team_month_pv = b.all_team_month_pv
</update>
<!-- 当前网体更新极差秒接表 -->
@ -218,9 +243,9 @@
#{item.pkAwards} pk_awards, #{item.pkShareAwards} pk_share_awards,
#{item.newBoxNum} new_box_num, #{item.newConsumePv} new_consume_pv,
#{item.teamNewBoxNum} team_new_box_num, #{item.teamNewPv} team_new_pv,
#{item.teamNewAmount} team_new_amount, #{item.enableStatus} enable_status,
#{item.allNewBoxNum} all_new_box_num, #{item.allNewConsumePv} all_new_consume_pv,
#{item.allTeamNewBoxNum} all_team_new_box_num, #{item.allTeamNewPv} all_team_new_pv,
#{item.teamNewAmount} team_new_amount, #{item.enableStatus} enable_status
#{item.allTeamNewBoxNum} all_team_new_box_num, #{item.allTeamNewPv} all_team_new_pv
from dual
</foreach>
) b
@ -230,9 +255,9 @@
a.pk_grade = b.pk_grade, a.pk_awards = b.pk_awards, a.pk_share_awards = b.pk_share_awards,
a.new_box_num = b.new_box_num, a.new_consume_pv = b.new_consume_pv,
a.team_new_box_num = b.team_new_box_num, a.team_new_pv = b.team_new_pv,
a.team_new_amount = b.team_new_amount, a.enable_status = b.enable_status,
a.all_new_box_num = b.all_new_box_num, a.all_new_consume_pv = b.all_new_consume_pv,
a.all_team_new_box_num = b.all_team_new_box_num, a.all_team_new_pv = b.all_team_new_pv,
a.team_new_amount = b.team_new_amount, a.enable_status = b.enable_status
a.all_team_new_box_num = b.all_team_new_box_num, a.all_team_new_pv = b.all_team_new_pv
</update>
<update id="mergeMemberRetailGradeByMember">
@ -362,6 +387,12 @@
a.small_box_num,
a.big_team_pv,
a.small_team_pv,
a.all_team_new_box_num,
a.all_team_box_num,
a.all_team_month_box_num,
a.all_team_new_pv,
a.all_team_consume_pv,
a.all_team_month_pv,
bw.range_ratio,
bw.month_repurchase_ratio,
bw.benefit_avg_ratio,
@ -410,6 +441,10 @@
a.big_team_pv,
a.small_team_pv,
a.system_type,
a.all_team_box_num,
a.all_team_month_box_num,
a.all_team_consume_pv,
a.all_team_month_pv,
new_box_num,
consume_box_num,
month_box_num,
@ -558,6 +593,16 @@
bw.awards_value,
bw.awards_name,
bwa.awards_value share_awards_value,
a.big_box_num,
a.small_box_num,
a.big_team_pv,
a.small_team_pv,
a.all_team_new_box_num,
a.all_team_box_num,
a.all_team_month_box_num,
a.all_team_new_pv,
a.all_team_consume_pv,
a.all_team_month_pv,
a.account_status,
a.category,
bw.range_ratio,
@ -649,32 +694,36 @@
a.pk_share_awards,
cm.income_status,
cm.pay_time,
nvl(b.pk_rate, bt.pk_id) pk_rate,
nvl(cm.is_activate, a.enable_status) enable_status,
nvl(b.pk_rate, bt.pk_id) pk_rate,
nvl(cm.is_activate, a.enable_status) enable_status,
a.new_box_num,
nvl(b.consume_box_num, 0) + a.new_box_num consume_box_num,
nvl(b.month_box_num, 0) + a.new_box_num month_box_num,
nvl(b.consume_box_num, 0) + nvl(a.new_box_num, 0) consume_box_num,
nvl(b.month_box_num, 0) + nvl(a.new_box_num, 0) month_box_num,
a.new_consume_pv,
nvl(b.consume_pv, 0) + a.new_consume_pv consume_pv,
nvl(b.month_consume_pv, 0) + a.new_consume_pv month_consume_pv,
nvl(b.consume_pv, 0) + nvl(a.new_consume_pv, 0) consume_pv,
nvl(b.month_consume_pv, 0) + nvl(a.new_consume_pv, 0) month_consume_pv,
a.team_new_box_num,
nvl(b.team_box_num, 0) + a.team_new_box_num team_box_num,
nvl(b.team_month_box_num, 0) + a.team_new_box_num team_month_box_num,
nvl(b.team_box_num, 0) + nvl(a.team_new_box_num, 0) team_box_num,
nvl(b.team_month_box_num, 0) + nvl(a.team_new_box_num, 0) team_month_box_num,
a.team_new_pv,
nvl(b.team_consume_pv, 0) + a.team_new_pv team_consume_pv,
nvl(b.team_month_pv, 0) + a.team_new_pv team_month_pv,
nvl(b.team_consume_pv, 0) + nvl(a.team_new_pv, 0) team_consume_pv,
nvl(b.team_month_pv, 0) + nvl(a.team_new_pv, 0) team_month_pv,
a.team_new_amount,
nvl(b.team_consume_amount, 0) + a.team_new_amount team_consume_amount,
nvl(b.team_month_amount, 0) + a.team_new_amount team_month_amount,
nvl(b.big_box_num, 0) big_box_num,
nvl(b.small_box_num, 0) small_box_num,
nvl(b.big_team_pv, 0) big_team_pv,
nvl(b.small_team_pv, 0) small_team_pv,
nvl(b.team_consume_amount, 0) + nvl(a.team_new_amount, 0) team_consume_amount,
nvl(b.team_month_amount, 0) + nvl(a.team_new_amount, 0) team_month_amount,
nvl(b.big_box_num, 0) big_box_num,
nvl(b.small_box_num, 0) small_box_num,
nvl(b.big_team_pv, 0) big_team_pv,
nvl(b.small_team_pv, 0) small_team_pv,
a.system_type,
a.all_new_box_num,
a.all_new_consume_pv,
a.all_team_new_box_num,
a.all_team_new_pv,
nvl(b.all_team_box_num, 0) + nvl(a.all_team_new_box_num, 0) all_team_box_num,
nvl(b.all_team_month_box_num, 0) + nvl(a.all_team_new_pv, 0) all_team_month_box_num,
nvl(b.all_team_consume_pv, 0) + nvl(a.all_team_new_box_num, 0) all_team_consume_pv,
nvl(b.all_team_month_pv, 0) + nvl(a.all_team_new_pv, 0) all_team_month_pv,
bg.grade_value,
bg.grade_name,
bw.awards_value,
@ -683,9 +732,9 @@
bw.month_repurchase_ratio,
bw.benefit_avg_ratio,
bw.benefit_share_ratio,
bws.awards_value share_awards_value,
br.name country_name,
cr.county region_address,
bws.awards_value share_awards_value,
br.name country_name,
cr.county region_address,
bv.region_vertex_pk_id
from (
select *
@ -714,77 +763,25 @@
</select>
<select id="queryCuMemberSecondRangeExtByParent" resultMap="CuMemberRetailRangeExt">
select cm.pk_id pk_member,
cm.pk_parent,
nvl(b.month_consume_pv, 0) + nvl(a.new_consume_pv, 0) month_consume_pv,
nvl(b.team_month_pv, 0) + nvl(a.team_new_pv, 0) team_month_pv,
nvl(b.consume_box_num, 0) + nvl(a.new_box_num, 0) consume_box_num,
nvl(b.team_box_num, 0) + nvl(a.team_new_box_num, 0) team_box_num,
nvl(b.big_box_num, 0) big_box_num,
nvl(b.small_box_num, 0) small_box_num
select cm.pk_id pk_member,
cm.pk_parent,
nvl(b.month_consume_pv, 0) + nvl(a.new_consume_pv, 0) month_consume_pv,
nvl(b.team_month_pv, 0) + nvl(a.team_new_pv, 0) team_month_pv,
nvl(b.consume_box_num, 0) + nvl(a.new_box_num, 0) consume_box_num,
nvl(b.team_box_num, 0) + nvl(a.team_new_box_num, 0) team_box_num,
nvl(b.big_box_num, 0) big_box_num,
nvl(b.small_box_num, 0) small_box_num,
nvl(b.all_team_box_num, 0) + nvl(a.all_team_new_box_num, 0) all_team_box_num,
nvl(b.all_team_month_box_num, 0) + nvl(a.all_team_new_pv, 0) all_team_month_box_num,
nvl(b.all_team_consume_pv, 0) + nvl(a.all_team_new_box_num, 0) all_team_consume_pv,
nvl(b.all_team_month_pv, 0) + nvl(a.all_team_new_pv, 0) all_team_month_pv
from cu_member cm
left join ${secondTableName} a
on cm.pk_id = a.pk_member
left join ${rangeTableName} b
on cm.pk_id = b.pk_member
where cm.pk_parent = #{pkMember}
and cm.del_flag = 0
<!--
select a.pk_member,
cm.member_code,
cm.member_name,
a.pk_parent,
cm.pk_settle_country,
cm.category,
cm.account_status,
a.pk_grade,
a.pk_awards,
cm.income_status,
nvl(b.consume_box_num, 0) + a.new_box_num consume_box_num,
a.new_box_num,
nvl(b.team_box_num, 0) + a.team_new_box_num team_box_num,
nvl(b.month_box_num, 0) + a.team_new_box_num month_box_num,
a.team_new_box_num,
nvl(b.consume_pv, 0) + a.new_consume_pv consume_pv,
nvl(month_consume_pv, 0) + a.new_consume_pv month_consume_pv,
a.new_consume_pv,
nvl(b.team_consume_amount, 0) + a.team_new_amount team_consume_amount,
nvl(b.team_consume_pv, 0) + a.team_new_pv team_consume_pv,
nvl(b.team_month_amount, 0) + a.team_new_amount team_month_amount,
nvl(b.team_month_pv, 0) + a.team_new_pv team_month_pv,
a.team_new_amount,
a.team_new_pv,
bg.grade_value,
bg.grade_name,
bw.awards_value,
bw.awards_name,
nvl(b.big_box_num, 0) big_box_num,
nvl(b.small_box_num, 0) small_box_num,
nvl(b.big_team_pv, 0) big_team_pv,
nvl(b.small_team_pv, 0) small_team_pv,
a.system_type,
bw.range_ratio,
bw.benefit_avg_ratio,
bw.benefit_share_ratio,
br.name country_name
from ${secondTableName} a
left join ${secondTableName} a
on cm.pk_id = a.pk_member
left join ${rangeTableName} b
on a.pk_member = b.pk_member
inner join cu_member cm
on cm.pk_id = a.pk_member
inner join bd_awards bw
on bw.pk_id = a.pk_awards
inner join bd_grade bg
on bg.pk_id = a.pk_grade
left join cu_member_retail_region cr
on cr.pk_member = cm.pk_id and cr.effective = 0 and cr.del_flag = 0
left join bd_area br
on br.pk_id = cr.county and br.del_flag = 0
where bw.del_flag = 0
and bg.del_flag = 0
and a.pk_parent = #{pkMember}
-->
on cm.pk_id = b.pk_member
where cm.pk_parent = #{pkMember}
and cm.del_flag = 0
</select>
<select id="queryCuMemberRetailRangeEnoughAchieve" resultType="com.hzs.common.domain.member.achieve.ext.CuMemberRetailRangeExt">
@ -808,7 +805,11 @@
big_box_num,
small_box_num,
big_team_pv,
small_team_pv
small_team_pv,
all_team_box_num,
all_team_month_box_num,
all_team_consume_pv,
all_team_month_pv
from ${tableName}
where pk_parent = #{pkParent}
</select>

View File

@ -478,59 +478,65 @@
all_new_box_num number(10,2) default 0 not null,
all_new_consume_pv number(17,6) default 0 not null,
all_team_new_box_num number(10,2) default 0 not null,
all_team_new_pv number(17,6) default 0 not null,
all_team_new_pv number(17,6) default 0 not null
)
</update>
<update id="createCuMemberRetailRangeTable">
create table ${tableName}
(
pk_member NUMBER(20) not null,
pk_parent NUMBER(20) not null,
member_code VARCHAR2(30) not null,
member_name VARCHAR2(100) not null,
customer_type NUMBER(2) not null,
phone VARCHAR2(40) not null,
pk_grade NUMBER(4) not null,
pk_awards number(4) default 10 not null,
pk_share_awards number(4) default 10 not null,
enable_status number(2) default 1 not null,
account_status number(1) default 0 not null,
pay_status NUMBER(2) default 0 not null,
pay_time DATE,
category number(2) default 0 not null,
purchase_status number(2) default 0 not null,
income_status number(2) default 0 not null,
pk_team_code number(20),
pk_center_code number(20),
pk_vertex number(20),
pk_settle_country number(4) not null,
is_real_name NUMBER(1) default 1 not null,
pk_country number(4) default 1 not null,
system_type NUMBER(2) default 2 not null,
pk_rate NUMBER(6),
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(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,
team_new_amount number(17,6) default 0 not null,
team_consume_amount number(17,6) default 0 not null,
team_month_amount number(17,6) default 0 not null,
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(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
pk_member NUMBER(20) not null,
pk_parent NUMBER(20) not null,
member_code VARCHAR2(30) not null,
member_name VARCHAR2(100) not null,
customer_type NUMBER(2) not null,
phone VARCHAR2(40) not null,
pk_grade NUMBER(4) not null,
pk_awards number(4) default 10 not null,
pk_share_awards number(4) default 10 not null,
enable_status number(2) default 1 not null,
account_status number(1) default 0 not null,
pay_status NUMBER(2) default 0 not null,
pay_time DATE,
category number(2) default 0 not null,
purchase_status number(2) default 0 not null,
income_status number(2) default 0 not null,
pk_team_code number(20),
pk_center_code number(20),
pk_vertex number(20),
pk_settle_country number(4) not null,
is_real_name NUMBER(1) default 1 not null,
pk_country number(4) default 1 not null,
system_type NUMBER(2) default 2 not null,
pk_rate NUMBER(6),
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(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,
team_new_amount number(17,6) default 0 not null,
team_consume_amount number(17,6) default 0 not null,
team_month_amount number(17,6) default 0 not null,
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(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,
all_team_new_box_num number(12,2) default 0 not null,
all_team_box_num number(12,2) default 0 not null,
all_team_month_box_num number(12,2) default 0 not null,
all_team_new_pv number(17,6) default 0 not null,
all_team_consume_pv number(17,6) default 0 not null,
all_team_month_pv number(17,6) default 0 not null
)
</update>

View File

@ -55,11 +55,29 @@
from cu_region_assess_detail cd
inner join cu_region_assess ca
on cd.pk_region_assess = ca.pk_id
inner join cu_member_retail_region cmrr
on cmrr.pk_id = ca.pk_region
where cd.ASSESS_STATUS = 0
and cd.del_flag = 0
and ca.del_flag = 0
and ca.assess_start_date &lt;= #{assessDate,jdbcType=DATE}
and ca.assess_end_date >= #{assessDate,jdbcType=DATE}
and cmrr.del_flag = 0
and cmrr.effective_end_date is null
group by cd.pk_region_assess
union
<!-- 手动开通的只查询手效期前6个月的数据 -->
select cd.pk_region_assess, sum(1) REACH_NUM
from cu_region_assess_detail cd
inner join cu_region_assess ca
on cd.pk_region_assess = ca.pk_id
inner join CU_MEMBER_RETAIL_REGION cmrr
on cmrr.pk_id = ca.pk_region
where cd.del_flag = 0
and ca.del_flag = 0
and cmrr.del_flag = 0
and cmrr.effective_end_date is not null
and cd.assess_date > ADD_MONTHS(cmrr.effective_end_date, -6)
group by cd.pk_region_assess
) b
on (a.pk_id = b.pk_region_assess)

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="AREA_INCOME_TYPE" property="areaIncomeType"/>
<result column="WARES_BOX_NUM" property="waresBoxNum"/>
</collection>
<collection property="orderItemsExtList" ofType="com.hzs.common.domain.sale.ext.SaOrderItemsExt">
@ -154,9 +155,10 @@
nvl(st.pk_order,0) pk_order,
nvl(st.pk_wares,0) pk_wares,
nvl(st.wares_price,0) wares_price,
nvl(bw.wares_code,'~') wares_code,
nvl(st.wares_quantity,0) wares_quantity,
nvl(bw.wares_code,'~') wares_code,
nvl(bw.area_income, 0) area_income,
nvl(bw.area_income_type, 0) area_income_type,
nvl(bw.box_num, 0) wares_box_num
from sa_order so
left join sa_order_wares st
@ -164,6 +166,69 @@
left join bd_wares bw
on bw.pk_id = st.pk_wares and bw.del_flag = 0
where so.order_status = 1
and so.order_type in (41, 42)
<if test="orderCode != null and orderCode != ''">
and so.order_code=#{orderCode}
</if>
and so.pay_time >= #{startDate}
and so.pay_time &lt; #{endDate}
union
select so.pk_id,
so.pk_member,
so.order_code,
so.order_type,
so.pk_rate,
so.rec_province,
so.rec_city,
so.rec_county,
so.order_amount,
so.order_achieve,
so.order_ass_achieve,
so.upload_achieve,
so.pk_reference,
so.pk_vertex,
so.pk_country,
so.del_flag,
so.pay_time,
so.pk_creator,
so.consume_amount,
so.box_num,
soi.items_id,
soi.pk_order,
soi.pk_wares,
soi.wares_price,
soi.wares_quantity,
nvl(bw.wares_code, '~') wares_code,
nvl(bw.area_income, 0) area_income,
nvl(bw.area_income_type, 0) area_income_type,
nvl(bw.box_num, 0) wares_box_num
from sa_order so
left join (
select max(soi.pk_id) items_id,
nvl(soi.pk_order, 0) pk_order,
nvl(soi.pk_wares, 0) pk_wares,
sum(soi.achievement * soi.quantity) wares_price,
max(soi.wares_quantity) wares_quantity
from sa_order so
left join sa_order_items soi
on soi.pk_order = so.pk_id
and soi.del_flag = 0
and soi.is_gift = 1
where so.order_status = 1
and so.order_type in (43)
<if test="orderCode != null and orderCode != ''">
and so.order_code=#{orderCode}
</if>
and so.pay_time >= #{startDate}
and so.pay_time &lt; #{endDate}
group by soi.pk_order, soi.pk_wares
) soi
on soi.pk_order = so.pk_id
left join bd_wares bw
on bw.pk_id = soi.pk_wares
and bw.del_flag = 0
where so.order_status = 1
and so.order_type in (43)
<if test="orderCode != null and orderCode != ''">
and so.order_code=#{orderCode}
</if>

View File

@ -2521,10 +2521,13 @@ public class CuMemberServiceImpl extends ServiceImpl<CuMemberMapper, CuMember> i
Set<WaresAuthorityParentParam> waresAuthorityParentParamList = new HashSet<>();
// 安置查询
Set<WaresAuthorityParentParam> waresAuthorityPlaceParamList = new HashSet<>();
// 指定会员
Set<Long> pkMemberList = new HashSet<>();
for (ShowWaresDTO showWaresDTO : showWaresDTOS) {
for (BdWaresAuthority bw : showWaresDTO.getWaresAuthorityList()) {
if (bw.getAuthorityType() == EWaresPermissionType.BLOOD_ALLOW.getValue() || bw.getAuthorityType() == EWaresPermissionType.BLOOD_STOP.getValue()) {
// 血缘关系
WaresAuthorityParentParam waresAuthorityParentParam = WaresAuthorityParentParam.builder()
.pkMember(bw.getPkMember())
.loginMember(showWaresDTO.getLoginMember())
@ -2532,12 +2535,17 @@ public class CuMemberServiceImpl extends ServiceImpl<CuMemberMapper, CuMember> i
waresAuthorityParentParamList.add(waresAuthorityParentParam);
}
if (bw.getAuthorityType() == EWaresPermissionType.PLACE_ALLWO.getValue() || bw.getAuthorityType() == EWaresPermissionType.PLACE_STOP.getValue()) {
// 安置关系
WaresAuthorityParentParam waresAuthorityParentParam = WaresAuthorityParentParam.builder()
.pkMember(bw.getPkMember())
.loginMember(showWaresDTO.getLoginMember())
.build();
waresAuthorityPlaceParamList.add(waresAuthorityParentParam);
}
if (bw.getAuthorityType() == EWaresPermissionType.MEMBER.getValue()) {
// 指定会员可见
pkMemberList.add(bw.getPkMember());
}
}
}
@ -2568,6 +2576,9 @@ public class CuMemberServiceImpl extends ServiceImpl<CuMemberMapper, CuMember> i
} else if (bdWaresAuthority.getAuthorityType() == EWaresPermissionType.PLACE_STOP.getValue()) {
// 安置禁止
isShowWares = !waresAuthorityPlaceList.contains(bdWaresAuthority.getPkMember());
} else if (bdWaresAuthority.getAuthorityType() == EWaresPermissionType.MEMBER.getValue()) {
// 指定会员可见
isShowWares = pkMemberList.contains(showWaresDTO.getLoginMember());
}
}
resultMap.put(showWaresDTO.getPkWares(), isShowWares);

View File

@ -513,6 +513,7 @@ public class BdWaresController extends BaseController {
waresParams.setSortStatus(wares.getSortStatus());
waresParams.setSystemType(waresExtend.getSystemType());
waresParams.setAreaIncome(wares.getAreaIncome());
waresParams.setAreaIncomeType(wares.getAreaIncomeType());
waresParams.setBoxNum(wares.getBoxNum());
BdAreaClassify parentAreaClassify = iBdAreaClassifyService.getAreaClassify(wares.getPkAreaClassify());

View File

@ -409,6 +409,11 @@ public class WaresParams implements Serializable {
*/
private BigDecimal areaIncome;
/**
* 复购区域分红方式(1=比率,2=比值)
*/
private Integer areaIncomeType;
/**
* 商品上传盒数
*/

View File

@ -27,9 +27,6 @@ import com.hzs.sale.wares.param.WaresDetailParams;
import com.hzs.sale.wares.mapper.BdWaresMapper;
import com.hzs.sale.wares.service.*;
import com.hzs.sale.wares.vo.*;
import com.hzs.system.base.ICurrencyServiceApi;
import com.hzs.system.base.ITransactionServiceApi;
import com.hzs.system.base.dto.CurrencyDTO;
import com.hzs.system.config.IAwardsServiceApi;
import com.hzs.system.config.ILabelServiceApi;
import com.hzs.system.config.IRangeServiceApi;
@ -87,13 +84,9 @@ public class BdWaresServiceImpl extends ServiceImpl<BdWaresMapper, BdWares> impl
@DubboReference
IMemberServiceApi iMemberServiceApi;
@DubboReference
ICurrencyServiceApi iCurrencyServiceApi;
@DubboReference
IAwardsServiceApi iAwardsServiceApi;
@DubboReference
IRangeServiceApi iRangeServiceApi;
@DubboReference
ITransactionServiceApi iTransactionServiceApi;
@Override
@Transactional(rollbackFor = Exception.class)

View File

@ -50,6 +50,7 @@
<result column="SYSTEM_TYPE" property="systemType"/>
<result column="AREA_INCOME" property="areaIncome"/>
<result column="BOX_NUM" property="boxNum"/>
<result column="AREA_INCOME_TYPE" property="areaIncomeType"/>
</resultMap>
<resultMap id="resultMap" type="com.hzs.sale.wares.vo.WaresVo">

View File

@ -750,7 +750,7 @@ public class EnumsController extends BaseController {
public AjaxResult getEWaresPermissionTypeList() {
List<EnumEntity> enumEntityList = new ArrayList<>();
for (EWaresPermissionType value : EWaresPermissionType.values()) {
enumEntityList.add(new EnumEntity(value.getValue(), value.getLabel(), EnumsPrefixConstants.ENU_WARES));
enumEntityList.add(new EnumEntity(value.getValue(), value.getLabel()));
}
return AjaxResult.success(enumEntityList);
}
@ -837,7 +837,7 @@ public class EnumsController extends BaseController {
public AjaxResult getECycle() {
List<EnumEntity> enumEntityList = new ArrayList<>();
for (ECycle value : ECycle.values()) {
enumEntityList.add(new EnumEntity(value.getValue(), value.getLabel(), EnumsPrefixConstants.CYCLE));
enumEntityList.add(new EnumEntity(value.getValue(), value.getLabel()));
}
return AjaxResult.success(enumEntityList);
}

View File

@ -580,10 +580,6 @@ public class EnumsPrefixConstants {
*/
public static final String ENU_USER = "ENU_USER_S_";
/**
* 商品权限类型枚举
*/
public static final String ENU_WARES = "ENU_WARES_P_";
/**
* 商品类型枚举
*/
@ -628,11 +624,6 @@ public class EnumsPrefixConstants {
*/
public static final String EXEMPT_TYPE = "ENU_EXE_T_";
/**
* 提现周期
*/
public static final String CYCLE = "ENU_CYCLE_";
/**
* 提现状态
*/

View File

@ -1,13 +1,10 @@
package com.hzs.common.core.enums;
import com.hzs.common.core.constant.EnumsPrefixConstants;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* 提现周期枚举类
*
* @author: hzs
*/
@AllArgsConstructor
@Getter
@ -16,32 +13,32 @@ public enum ECycle {
/**
* 周一
*/
MONDAY( 1, "周一", EnumsPrefixConstants.CYCLE + "1"),
MONDAY(1, "周一"),
/**
* 周二
*/
TUESDAY( 2, "周二", EnumsPrefixConstants.CYCLE + "2"),
TUESDAY(2, "周二"),
/**
* 周三
*/
WEDNESDAY( 3, "周三", EnumsPrefixConstants.CYCLE + "3"),
WEDNESDAY(3, "周三"),
/**
* 周四
*/
THURSDAY( 4, "周四", EnumsPrefixConstants.CYCLE + "4"),
THURSDAY(4, "周四"),
/**
* 周五
*/
FRIDAY( 5, "周五", EnumsPrefixConstants.CYCLE + "5"),
FRIDAY(5, "周五"),
/**
* 周六
*/
SATURDAY( 6, "周六", EnumsPrefixConstants.CYCLE + "6"),
SATURDAY(6, "周六"),
/**
* 周日
*/
SUNDAY( 7, "周日", EnumsPrefixConstants.CYCLE + "7"),
SUNDAY(7, "周日"),
;
@ -54,11 +51,6 @@ public enum ECycle {
* 显示标签
*/
private final String label;
/**
* 国际化翻译key值
*/
private final String key;
}

View File

@ -5,13 +5,7 @@ import lombok.AllArgsConstructor;
import lombok.Getter;
/**
*
* 比率类型
* @Description:
* @Author: ljc
* @Time: 2023/5/8 11:23
* @Classname: ERatioType
* @Package_name: com.hzs.common.core.enums
*/
@AllArgsConstructor
@Getter

View File

@ -11,29 +11,33 @@ import lombok.Getter;
@Getter
public enum EWaresPermissionType {
/**
* 指定会员
*/
MEMBER(6, "指定会员", 0),
/**
* 1=血缘可见
*/
BLOOD_ALLOW(1, "血缘可见", 0, EnumsPrefixConstants.ENU_WARES + "1"),
BLOOD_ALLOW(1, "血缘可见", 0),
/**
* 2=血缘禁止
*/
BLOOD_STOP(2, "血缘禁止", 0, EnumsPrefixConstants.ENU_WARES + "2"),
BLOOD_STOP(2, "血缘禁止", 0),
/**
* 安置可见
*/
PLACE_ALLWO(3, "安置可见", 0, EnumsPrefixConstants.ENU_WARES + "3"),
PLACE_ALLWO(3, "安置可见", 0),
/**
* 安置禁止
*/
PLACE_STOP(4, "安置禁止", 0, EnumsPrefixConstants.ENU_WARES + "4"),
PLACE_STOP(4, "安置禁止", 0),
/**
* 全部
*/
AUTH_ORITY_TYPE(5, "全部", 0, EnumsPrefixConstants.ENU_WARES + "5"),
AUTH_ORITY_TYPE(5, "全部", 0),
;
/**
@ -48,10 +52,6 @@ public enum EWaresPermissionType {
* 是否启用0=,1= -- 来源EYesNo
*/
private final int enable;
/**
* 国际化翻译key值
*/
private final String key;
public static String getEnumLabelByValue(Integer value) {
if (null == value) {

View File

@ -535,24 +535,16 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
LocalDate today = getLocalDate(date);
return ((Long) toLocalDate(date1).until(today, ChronoUnit.DAYS)).intValue();
}
/**
* 计算2个日期之间的天数
* 获得2个日期总共差的天数
*
* @param date1 日期
* @param date 日期2
* @param date1 第一个日期
* @param date 第二个日期
* @return Integer
*/
public static Boolean betweenMonth(Date date1, Date... date) {
LocalDate localDate = LocalDate.now();
if (date.length > 0) {
localDate = toLocalDate(date[0]);
}
LocalDate localDate1 = toLocalDate(date1);
if (localDate.getMonth() == localDate1.getMonth()) {
return Boolean.TRUE;
}
return Boolean.FALSE;
public static Integer betweenMonth(Date date1, Date... date) {
LocalDate today = getLocalDate(date);
return ((Long) toLocalDate(date1).until(today, ChronoUnit.MONTHS)).intValue();
}
/**

View File

@ -78,23 +78,38 @@ public class CuMemberRetailRangeExt extends CuMemberRetailRange {
private String countryName;
/**
* 新増盒数不管激活全累计
* 新増盒数不管激活全累计 -- 秒结使用
*/
private BigDecimal allNewBoxNum;
/**
* 新増业绩不管激活全累计
* 新増业绩不管激活全累计 -- 秒结使用
*/
private BigDecimal allNewConsumePv;
/**
* 团队新増盒数不管激活全累计
* 团队新増盒数不管激活全累计 -- 秒结日结使用
*/
private BigDecimal allTeamNewBoxNum;
/**
* 团队新増业绩不管激活全累计
* 团队新増业绩不管激活全累计 -- 秒结使用
*/
private BigDecimal allTeamNewPv;
/**
* 团队累计盒数不管激活全累计 -- 日结使用
*/
private BigDecimal allTeamBoxNum;
/**
* 团队月累计盒数不管激活全累计 -- 日结使用
*/
private BigDecimal allTeamMonthBoxNum;
/**
* 团队累计消费pv不管激活全累计 -- 日结使用
*/
private BigDecimal allTeamConsumePv;
/**
* 团队月累计消费pv不管激活全累计 -- 日结使用
*/
private BigDecimal allTeamMonthPv;
}

View File

@ -19,6 +19,10 @@ public class SaOrderWaresExt extends SaOrderWares {
* 复购区域分红
*/
private BigDecimal areaIncome;
/**
* 复购区域分红方式
*/
private Integer areaIncomeType;
/**
* 商品上传盒数

View File

@ -228,5 +228,10 @@ public class BdWares extends BaseEntity {
@TableField("BOX_NUM")
private BigDecimal boxNum;
/**
* 复购区域分红方式(1=比率,2=比值)
*/
@TableField("AREA_INCOME_TYPE")
private Integer areaIncomeType;
}