From 4e4452365fc98f368a9b77c034b7e9622ed71c3b Mon Sep 17 00:00:00 2001 From: cabbage <281119120@qq.com> Date: Wed, 2 Jul 2025 15:19:54 +0800 Subject: [PATCH] =?UTF-8?q?##=20=E7=A7=92=E7=BB=93=E3=80=81=E6=97=A5?= =?UTF-8?q?=E7=BB=93=E9=92=88=E5=AF=B9=E6=9C=AA=E6=BF=80=E6=B4=BB=E4=BC=9A?= =?UTF-8?q?=E5=91=98=E6=B7=BB=E5=8A=A0=E5=AD=97=E6=AE=B5=E7=B4=AF=E8=AE=A1?= =?UTF-8?q?=E5=9B=A2=E9=98=9F=E6=95=B0=E6=8D=AE=EF=BC=8C=E4=B8=BA=E6=8E=A8?= =?UTF-8?q?=E8=8D=90=E4=BA=BA=E5=A4=84=E7=90=86=E5=A4=A7=E5=B0=8F=E5=B8=82?= =?UTF-8?q?=E5=9C=BA=E5=A4=84=E7=90=86=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/CuMemberTreeServiceImpl.java | 2 +- .../service/impl/BonusSettleRangeHandle.java | 65 +++++-- .../achieve/CuMemberRetailRangeMapper.xml | 171 ++++++++---------- .../bonus/achieve/CuMemberTreeMapper.xml | 6 +- .../achieve/ext/CuMemberRetailRangeExt.java | 27 ++- 5 files changed, 151 insertions(+), 120 deletions(-) diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/service/impl/CuMemberTreeServiceImpl.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/service/impl/CuMemberTreeServiceImpl.java index 3eb97515..0c2ef6e4 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/service/impl/CuMemberTreeServiceImpl.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/service/impl/CuMemberTreeServiceImpl.java @@ -42,7 +42,7 @@ public class CuMemberTreeServiceImpl extends ServiceImpl 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 cuMemberGradeMap = new HashMap<>(); @@ -289,7 +294,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { cuMemberGradeMap, cuMemberAwardsMap, cuMemberShareAwardsMap, sourceMemberRangeExt); // 计算团队业绩、盒数,计算等级、奖衔 List 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); @@ -631,8 +637,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 +675,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { } /** - * 计算等级、奖衔 + * 计算等级、奖衔 -- 日结、秒结 */ private void calculateGradeAwards(Integer period, Map memberRangeExtMap, String rangeTableName, SaOrderExt saOrderExt, Map retailTeamGradeMap, Map retailAwardsMap, @@ -674,7 +691,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 +699,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { ) { // 验证小区,计算小区累计盒数 查询伞下会员 List cuMemberRangeExtList; - if (secondRangeTableName != null) { + if (null != secondRangeTableName) { // 会员表 关联 秒结表 和 昨日结算表,查询订单会员直推数据 cuMemberRangeExtList = iCuMemberRetailRangeService.queryCuMemberSecondRangeExtByParent(rangeTableName, secondRangeTableName, targetMemberRangeExt.getPkMember()); } else { @@ -707,7 +724,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 +732,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); @@ -822,11 +839,12 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { } /** - * 计算团队极差奖衔 + * 计算团队极差奖衔 -- 退单秒结 */ public List calculateRetailBackRangeGradeAwards(Integer period, Map memberRangeExtMap, String rangeTableName, SaOrderExt saOrderExt, Map retailTeamGradeMap, Map retailAwardsMap, String secondRangeTableName, BigDecimal boxNum, - Map cuMemberGradeMap, Map cuMemberAwardsMap, Map cuMemberShareAwardsMap) { + Map cuMemberGradeMap, Map cuMemberAwardsMap, Map cuMemberShareAwardsMap, + boolean isSecond) { List cuMemberRetailRangeExtList = new ArrayList<>(); // 订单会员 CuMemberRetailRangeExt sourceMemberRangeExt = memberRangeExtMap.get(saOrderExt.getPkMember()); @@ -837,8 +855,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 +930,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 +938,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); diff --git a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/achieve/CuMemberRetailRangeMapper.xml b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/achieve/CuMemberRetailRangeMapper.xml index 55e5bf42..0d9abd36 100644 --- a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/achieve/CuMemberRetailRangeMapper.xml +++ b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/achieve/CuMemberRetailRangeMapper.xml @@ -65,8 +65,13 @@ + + + + + @@ -142,7 +147,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 ) b @@ -154,7 +162,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 @@ -218,9 +229,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 ) b @@ -230,9 +241,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 @@ -362,6 +373,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 +427,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 +579,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 +680,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) + a.new_box_num consume_box_num, + nvl(b.month_box_num, 0) + a.new_box_num 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) + a.new_consume_pv consume_pv, + nvl(b.month_consume_pv, 0) + a.new_consume_pv 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) + a.team_new_box_num team_box_num, + nvl(b.team_month_box_num, 0) + a.team_new_box_num 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) + a.team_new_pv team_consume_pv, + nvl(b.team_month_pv, 0) + a.team_new_pv 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) + 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, 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) + a.all_team_new_box_num all_team_box_num, + nvl(b.all_team_month_box_num, 0) + a.all_team_new_pv all_team_month_box_num, + nvl(b.all_team_consume_pv, 0) + a.all_team_new_box_num all_team_consume_pv, + nvl(b.all_team_month_pv, 0) + a.all_team_new_pv all_team_month_pv, bg.grade_value, bg.grade_name, bw.awards_value, @@ -683,9 +718,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 +749,25 @@