From ffc688d029e932fb03e0e2054b143cc9ed5b34a0 Mon Sep 17 00:00:00 2001 From: cabbage <281119120@qq.com> Date: Wed, 11 Jun 2025 13:49:11 +0800 Subject: [PATCH 1/9] =?UTF-8?q?##=20=E5=8C=BA=E5=9F=9F=E5=88=86=E7=BA=A2?= =?UTF-8?q?=E6=94=B6=E7=9B=8A=E5=A4=84=E7=90=86=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bonus/service/impl/BonusSettleHandle.java | 25 +-- .../service/impl/BonusSettleRangeHandle.java | 148 +++++++++++------- .../mapper/bonus/order/BonusOrderMapper.xml | 4 +- .../core/constant/RetailProductConstants.java | 6 + 4 files changed, 99 insertions(+), 84 deletions(-) diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleHandle.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleHandle.java index a37cd1e7..03663c1b 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleHandle.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleHandle.java @@ -192,7 +192,7 @@ public abstract class BonusSettleHandle { */ protected Boolean validatePkBonusItems(BonusConfigDTO bonusConfigDTO, Integer pkCountry, Integer bonusItems) { BdBonusItemsExt bdBonusItemsExt = bonusConfigDTO.getBonusItemsExtMap().get(pkCountry.toString() + bonusItems); - return bdBonusItemsExt == null || bdBonusItemsExt.getPkId() == null; + return null == bdBonusItemsExt || null == bdBonusItemsExt.getPkId(); } /** @@ -1124,10 +1124,7 @@ public abstract class BonusSettleHandle { } /** - * @Description: 云代计算 扣项,小计,总计 - * @return: void - * @Author: sui q - * @Date: 2023/1/11 13:59 + * 扣项,小计,总计 */ protected void setRetailTotal(BdBonusDeduct bdBonusDeduct, CuMemberBonus cuMemberBonus, Object bonusDetail) { setBonusDeduct(bdBonusDeduct, cuMemberBonus, bonusDetail); @@ -1137,23 +1134,7 @@ public abstract class BonusSettleHandle { } /** - * @Description: 云代计算 扣项,小计,总计 - * @return: void - * @Author: sui q - * @Date: 2023/1/11 13:59 - */ - protected void setMakerTotal(BdBonusDeduct bdBonusDeduct, CuMemberBonus cuMemberBonus, Object bonusDetail) { - setBonusDeduct(bdBonusDeduct, cuMemberBonus, bonusDetail); - BigDecimal realIncome = ReflectUtils.invokeGetter(bonusDetail, BonusFieldConstants.REAL_INCOME); - cuMemberBonus.setMakerRealSubtotal(ComputeUtil.computeAdd(cuMemberBonus.getMakerRealSubtotal(), realIncome)); - cuMemberBonus.setRealIncomeTotal(ComputeUtil.computeAdd(cuMemberBonus.getRealIncomeTotal(), realIncome)); - } - - /** - * @Description: 云代计算 扣项,小计,总计 - * @return: void - * @Author: sui q - * @Date: 2023/1/11 13:59 + * 扣项,小计,总计 */ protected void setRepurchaseCouponTotal(BdBonusDeduct bdBonusDeduct, CuMemberBonus cuMemberBonus, Object bonusDetail) { setBonusDeduct(bdBonusDeduct, cuMemberBonus, bonusDetail); diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleRangeHandle.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleRangeHandle.java index fe8cc744..639a5326 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleRangeHandle.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleRangeHandle.java @@ -130,17 +130,18 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { // 计算自消费奖衔 CuMemberRetailRangeExt sourceMemberRangeExt = memberRangeExtMap.get(saOrderExt.getPkMember()); // 先算等级 注册、升级计算等级 - // 订单指定产品盒数(计算等级使用) - int boxNum = saOrderExt.getBoxNum(); -// int boxNum = 0; -// for (SaOrderWaresExt saOrderItems : saOrderExt.getOrderWaresExtList()) { -// for (String waresCode : RetailProductConstants.ALL_BOX_WARES_LIST) { -// if (saOrderItems.getWaresCode().equals(waresCode)) { -// boxNum += saOrderItems.getWaresQuantity(); -// break; -// } -// } -// } + // 订单指定产品盒数 + int boxNum = 0; + for (SaOrderWaresExt saOrderItems : saOrderExt.getOrderWaresExtList()) { + for (String waresCode : RetailProductConstants.ALL_BOX_WARES_LIST) { + if (saOrderItems.getWaresCode().equals(waresCode)) { + boxNum += saOrderItems.getWaresQuantity(); + break; + } + } + } + saOrderExt.setBoxNum(boxNum); + // 订单业绩 BigDecimal orderAchieve = saOrderExt.getOrderAchieve(); if (EOrderType.RETAIL_REPURCHASE.getValue() == saOrderExt.getOrderType() @@ -163,7 +164,6 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { // 计算团队业绩、盒数,计算等级、奖衔 cuMemberAwardsList.addAll(calculateRetailRangeGradeAwards(currentPeriod, memberRangeExtMap, rangeTableName, saOrderExt, retailTeamGradeMap, retailAwardsMap, secondRangeTableName, boxNum, cuMemberGradeList)); - // TODO new 奖金处理 List cuMemberBonusRangeList = new ArrayList<>(); // 计算奖金 计算平级收益 @@ -184,8 +184,9 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { List countyRangeExtList = iCuMemberRetailRangeService.batchQueryMemberRetailSecondRangeByCounty(rangeTableName, secondRangeTableName, saOrderExt.getRecCounty()); countyRangeExtList.forEach(cuMemberRetailRangeExt -> countyRangeExtMap.put(cuMemberRetailRangeExt.getSystemType() + "_" + cuMemberRetailRangeExt.getRegionAddress(), cuMemberRetailRangeExt)); + // 计算区域奖 - CuMemberBonusDetail cuMemberBonusDetail = calculateRetailAreaBonus(countyRangeExtMap, saOrderExt, bonusConfigDTO, currentPeriod, memberRangeExtMap, cuMemberBonusMap); + CuMemberBonusDetail cuMemberBonusDetail = calculateRetailAreaBonus(countyRangeExtMap, bonusConfigDTO, currentPeriod, memberRangeExtMap, cuMemberBonusMap, saOrderExt); if (cuMemberBonusDetail != null) { cuMemberBonusDetailList.add(cuMemberBonusDetail); } @@ -409,8 +410,6 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { // 更新网体 iCuMemberRetailRangeService.mergeMemberRetailRangeByYesterday(settleEndDate, rangeTableName, yesterdayRangeTableName, isSameMonth); - //////////////// TODO ////////////////////// - // 回退历史注水 iCuMemberRetailRangeService.mergeCuMemberRetailBackBoxBySpecial(rangeTableName, yesterdayRangeTableName, period); // 更新注水 @@ -426,7 +425,6 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { // 会员结算map(key:会员ID,value:结算扩展) Map memberRangeExtMap = new HashMap<>(); - // 购买升级等级map(key:等级值,value:等级对象) Map retaiBuyGradeMap = new TreeMap<>(); // 团队升级等级map(key:等级值,value:等级对象) @@ -537,31 +535,35 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { // TODO new 奖金处理 - // 计算奖金 计算极差平级收益 - for (SaOrderWaresExt saOrderItems : saOrderExt.getOrderWaresExtList()) { - for (String waresCode : RetailProductConstants.ALL_BOX_WARES_LIST) { - if (saOrderItems.getWaresCode() != null && saOrderItems.getWaresCode().equals(waresCode)) { + // 计算奖金 直推级差 + 平级收益 + if ((EOrderType.RETAIL_REGISTER.getValue() == saOrderExt.getOrderType() + || EOrderType.RETAIL_UPGRADE.getValue() == saOrderExt.getOrderType()) + && boxNum > 0 + ) { + // 注册或升级订单并且存在盒数产品,才有 直推级差收益 和 平级收益 + for (SaOrderWaresExt saOrderItems : saOrderExt.getOrderWaresExtList()) { + // 直推级差 + 平级收益 + cuMemberBonusRangeList.addAll(calculateRetailRangeBonus(memberRangeExtMap, cuMemberBonusMap, gradeMap, bonusConfigDTO, period, saOrderItems, saOrderExt)); + + // 计算完奖金算等级 + if (EOrderType.RETAIL_REGISTER.getValue() == saOrderExt.getOrderType() || + EOrderType.RETAIL_UPGRADE.getValue() == saOrderExt.getOrderType() || + EOrderType.RETAIL_REPURCHASE.getValue() == saOrderExt.getOrderType()) { + // 计算个人等级,消费等级 int waresQuantity = saOrderItems.getWaresQuantity(); - cuMemberBonusRangeList.addAll(calculateRetailRangeBonus(memberRangeExtMap, cuMemberBonusMap, gradeMap, bonusConfigDTO, period, saOrderItems, saOrderExt)); - // 计算完奖金算等级 - if (EOrderType.RETAIL_REGISTER.getValue() == saOrderExt.getOrderType() || - EOrderType.RETAIL_UPGRADE.getValue() == saOrderExt.getOrderType() || - EOrderType.RETAIL_REPURCHASE.getValue() == saOrderExt.getOrderType()) { - // 计算个人等级,消费等级 - int buyBoxNum = sourceMemberRangeExt.getBuyNum() + waresQuantity; - 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.setGradeValue(bdGrade.getGradeValue()); - sourceMemberRangeExt.setPkGrade(bdGrade.getPkId()); - sourceMemberRangeExt.setGradeName(bdGrade.getGradeName()); - if (sourceMemberRangeExt.getSameDate() == EYesNo.NO.getIntValue()) { - sourceMemberRangeExt.setBuyNum(bdGrade.getBoxNumber()); - } else { - sourceMemberRangeExt.setBuyNum(buyBoxNum); - } + int buyBoxNum = sourceMemberRangeExt.getBuyNum() + waresQuantity; + 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.setGradeValue(bdGrade.getGradeValue()); + sourceMemberRangeExt.setPkGrade(bdGrade.getPkId()); + sourceMemberRangeExt.setGradeName(bdGrade.getGradeName()); + if (sourceMemberRangeExt.getSameDate() == EYesNo.NO.getIntValue()) { + sourceMemberRangeExt.setBuyNum(bdGrade.getBoxNumber()); + } else { + sourceMemberRangeExt.setBuyNum(buyBoxNum); } } } @@ -569,11 +571,9 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { } } } - if (saOrderExt.getOrderType().equals(EOrderType.RETAIL_CONSUME.getValue())) { - continue; - } -// 计算区域奖 - CuMemberBonusDetail cuMemberBonusDetail = calculateRetailAreaBonus(countyRangeExtMap, saOrderExt, bonusConfigDTO, period, memberRangeExtMap, cuMemberBonusMap); + + // 计算区域奖 + CuMemberBonusDetail cuMemberBonusDetail = calculateRetailAreaBonus(countyRangeExtMap, bonusConfigDTO, period, memberRangeExtMap, cuMemberBonusMap, saOrderExt); if (cuMemberBonusDetail != null) { cuMemberBonusDetailList.add(cuMemberBonusDetail); } @@ -1268,8 +1268,9 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { /** * 计算极差收益,根据极差收益计算平级收益 */ - List calculateRetailRangeBonus(Map memberRangeExtMap, Map cuMemberBonusMap, Map gradeMap, BonusConfigDTO bonusConfigDTO, - Integer period, SaOrderWaresExt saOrderItems, SaOrderExt saOrderExt) { + List calculateRetailRangeBonus(Map memberRangeExtMap, Map cuMemberBonusMap, + Map gradeMap, BonusConfigDTO bonusConfigDTO, Integer period, + SaOrderWaresExt saOrderItems, SaOrderExt saOrderExt) { List memberBonusRangeList = new ArrayList<>(); // 用等级计算,按照一级级算 CuMemberRetailRangeExt sourceMemberRangeExt = memberRangeExtMap.get(saOrderExt.getPkMember()); @@ -1422,30 +1423,57 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { return memberBonusRangeList; } - CuMemberBonusDetail calculateRetailAreaBonus(Map countyRangeExtMap, SaOrder saOrder, + /** + * 计算区域奖 + * + * @param countyRangeExtMap + * @param saOrder + * @param bonusConfigDTO + * @param period + * @param memberRangeExtMap + * @param cuMemberBonusMap + * @return + */ + CuMemberBonusDetail calculateRetailAreaBonus(Map countyRangeExtMap, BonusConfigDTO bonusConfigDTO, Integer period, Map memberRangeExtMap, - Map cuMemberBonusMap) { - CuMemberRetailRangeExt sourceRetailRangeExt = memberRangeExtMap.get(saOrder.getPkMember()); - CuMemberRetailRangeExt cuMemberRetailRangeExt = countyRangeExtMap.get(sourceRetailRangeExt.getSystemType() + "_" + saOrder.getRecCounty()); - if (cuMemberRetailRangeExt == null) { + Map cuMemberBonusMap, SaOrder saOrder) { + // 重消订单没有区域分红 + if (saOrder.getOrderType().equals(EOrderType.RETAIL_CONSUME.getValue())) { return null; } + // 区域分红根据商品盒数来,如果没有盒数,直接返回为空 + if (saOrder.getBoxNum() == 0) { + return null; + } + + CuMemberRetailRangeExt sourceRetailRangeExt = memberRangeExtMap.get(saOrder.getPkMember()); + // 获取对应区域会员 + CuMemberRetailRangeExt cuMemberRetailRangeExt = countyRangeExtMap.get(sourceRetailRangeExt.getSystemType() + "_" + saOrder.getRecCounty()); + if (null == cuMemberRetailRangeExt) { + return null; + } + // 获取区域会员结算数据 if (memberRangeExtMap.containsKey(cuMemberRetailRangeExt.getPkMember())) { cuMemberRetailRangeExt = memberRangeExtMap.get(cuMemberRetailRangeExt.getPkMember()); } - if (ECategory.NORMAL.getValue() != cuMemberRetailRangeExt.getCategory() || - EAccountStatus.STOP_INCOME.getValue() == cuMemberRetailRangeExt.getAccountStatus() || - cuMemberRetailRangeExt.getEnableStatus() == EYesNo.NO.getIntValue()) { + + // 非正常用户 或者 停止收益 或 未激活,不能获取区域收益 + if (ECategory.NORMAL.getValue() != cuMemberRetailRangeExt.getCategory() + || EAccountStatus.STOP_INCOME.getValue() == cuMemberRetailRangeExt.getAccountStatus() + || cuMemberRetailRangeExt.getEnableStatus() == EYesNo.NO.getIntValue()) { return null; } // 验证是否有奖金 if (validatePkBonusItems(bonusConfigDTO, cuMemberRetailRangeExt.getPkSettleCountry(), EBonusItems.RETAIL_AREA_INCOME.getValue())) { return null; } - BigDecimal bonusRatio = BigDecimal.valueOf(0.4); - BigDecimal benefitIncome = ComputeUtil.computeBonusMultiply(saOrder.getOrderAchieve(), bonusRatio); - CuMemberBonusDetail cuMemberBonusDetail = packageBenefitIncome(bonusConfigDTO, period, cuMemberBonusMap, null, bonusRatio, benefitIncome, cuMemberRetailRangeExt, EBonusItems.RETAIL_AREA_INCOME.getValue(), BonusMsgConstants.RETAIL_AREA_INCOME); - cuMemberBonusDetail.setCalAchieve(saOrder.getOrderAchieve()); + + BigDecimal boxNumBig = new BigDecimal(saOrder.getBoxNum()); + // 处理区域收益(每盒2元) + BigDecimal benefitIncome = RetailProductConstants.AREA_BOX_BONUS.multiply(boxNumBig); + CuMemberBonusDetail cuMemberBonusDetail = packageBenefitIncome(bonusConfigDTO, period, cuMemberBonusMap, null, BigDecimal.ZERO, benefitIncome, + cuMemberRetailRangeExt, EBonusItems.RETAIL_AREA_INCOME.getValue(), BonusMsgConstants.RETAIL_AREA_INCOME); + cuMemberBonusDetail.setCalAchieve(boxNumBig); cuMemberBonusDetail.setPkOrder(saOrder.getPkId()); String remark = String.format(BonusMsgConstants.RETAIL_AREA_INCOME, saOrder.getOrderCode(), memberRangeExtMap.get(saOrder.getPkMember()).getMemberCode() + memberRangeExtMap.get(saOrder.getPkMember()).getMemberName(), @@ -1963,7 +1991,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { } /** - * 奖金明细 报单服务费、分红、云代首购、云代复购、海豆收益 + * 奖金明细 * * @param saOrderExt 订单 * @param cuMemberBonus 奖金主表 diff --git a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/order/BonusOrderMapper.xml b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/order/BonusOrderMapper.xml index 5a294639..5e45a63b 100644 --- a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/order/BonusOrderMapper.xml +++ b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/order/BonusOrderMapper.xml @@ -156,7 +156,7 @@ nvl(st.wares_quantity,0) wares_quantity from sa_order so left join sa_order_wares st - on so.pk_id = st.pk_order and st.wares_price >0 + on so.pk_id = st.pk_order and st.wares_price > 0 left join bd_wares bw on bw.pk_id = st.pk_wares and bw.del_flag = 0 where so.order_status = 1 @@ -168,7 +168,7 @@ ) od left join bd_currency bc on od.pk_rate = bc.pk_id - order by pay_time,wares_price desc + order by pay_time, wares_price desc - + SELECT SUM(t1.arealPv) arealPv ,#{pkMember} pkMember FROM ( @@ -492,6 +492,23 @@ AND t0.category = 0)) t1 + + + SELECT SUM(t1.arealPv) arealPv ,#{pkMember} pkMember + FROM ( + SELECT NVL(mr.CONSUME_PV + mr.TEAM_CONSUME_PV,0) arealPv + FROM ${memberRetailTable} mr + WHERE mr.category = 0 + AND mr.pk_member = #{pkMember} + UNION ALL + SELECT + NVL( mrs.NEW_CONSUME_PV + mrs.TEAM_NEW_PV, 0 ) arealPv + FROM + ${memberRetailSTable} mrs + WHERE mrs.pk_member = #{pkMember} + ) t1 + + + + + diff --git a/bd-business/bd-business-member/src/main/resources/mapper/retail/member/CuMemberRetailRegionMapper.xml b/bd-business/bd-business-member/src/main/resources/mapper/retail/member/CuMemberRetailRegionMapper.xml index f7dece3e..4dd286d4 100644 --- a/bd-business/bd-business-member/src/main/resources/mapper/retail/member/CuMemberRetailRegionMapper.xml +++ b/bd-business/bd-business-member/src/main/resources/mapper/retail/member/CuMemberRetailRegionMapper.xml @@ -9,7 +9,8 @@ cmrr.*, bap.name province_val, bac.name city_val, - bax.name county_val + bax.name county_val, + cm.IS_ACTIVATE from cu_member cm left join cu_member_retail_region cmrr on cmrr.pk_member = cm.pk_id @@ -30,7 +31,7 @@ and bax.del_flag = 0 where cm.del_flag = 0 and cm.pk_id = #{pkMember} - and cm.IS_ACTIVATE=0 +-- and cm.IS_ACTIVATE=0 and bg.grade_value >= #{gradeValue} diff --git a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/retail/member/ext/CuMemberRetailRegionExt.java b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/retail/member/ext/CuMemberRetailRegionExt.java index f643cd81..d6471e44 100644 --- a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/retail/member/ext/CuMemberRetailRegionExt.java +++ b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/retail/member/ext/CuMemberRetailRegionExt.java @@ -98,4 +98,8 @@ public class CuMemberRetailRegionExt extends CuMemberRetailRegion { */ private Integer pkCountry; + /** + * 2025年6月11日 是否激活 (0-是, 1-否) + */ + private Integer isActivate; } From 9289057d5586b41ae7d45846b888b78daf8dee9e Mon Sep 17 00:00:00 2001 From: cabbage <281119120@qq.com> Date: Wed, 11 Jun 2025 15:38:36 +0800 Subject: [PATCH 4/9] =?UTF-8?q?##=20=E5=A5=96=E9=87=91=E9=A1=B9=E8=B0=83?= =?UTF-8?q?=E6=95=B4=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/hzs/common/core/enums/EBonusItems.java | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EBonusItems.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EBonusItems.java index 2f29ee18..9a205838 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EBonusItems.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EBonusItems.java @@ -19,6 +19,10 @@ public enum EBonusItems { * 启动卡直推 */ BOOT_CARD(2, "旧启动卡直推", 0, EnumsPrefixConstants.BONUS_ITEMS + 2), + /** + * 直推收益 + */ + DIRECT_INCOME(3, "旧直推收益", 0, EnumsPrefixConstants.BONUS_ITEMS + 3), /** * 拓展收益 */ @@ -83,9 +87,9 @@ public enum EBonusItems { ////////////////////////////////////////////////// 新奖项 ////////////////////////////////////////////////// /** - * 直推收益 -- 秒结,日奖 + * 直推收益(新零售直推级差收益) -- 秒结,日奖 */ - DIRECT_INCOME(3, "直推收益", 0, EnumsPrefixConstants.BONUS_ITEMS + 3), + RETAIL_RANGE_INCOME(25, "直推收益", 0, EnumsPrefixConstants.BONUS_ITEMS + 25), /** * 平级收益(新零售平级收益) -- 秒结,日奖 */ @@ -94,14 +98,12 @@ public enum EBonusItems { * 区域分红(新零售区域收益) -- 秒结,日奖 */ RETAIL_AREA_INCOME(27, "区域分红", 0, EnumsPrefixConstants.BONUS_ITEMS + 27), - /** - * 月度级差收益(新零售极差收益) -- 月结,月奖 - */ - RETAIL_RANGE_INCOME(25, "月度级差收益", 0, EnumsPrefixConstants.BONUS_ITEMS + 25), + /** * 复购级差收益(新) -- 月结,月奖 */ RETAIL_MONTH_REPURCHASE_INCOME(31, "复购级差收益", 0, EnumsPrefixConstants.BONUS_ITEMS + 31), + /** * 月度分红 - 平均收益(新零售福利平均收益) -- 月结,月奖 */ @@ -110,6 +112,7 @@ public enum EBonusItems { * 月度分红 - 加权收益(新零售福利加权收益) -- 月结,月奖 */ RETAIL_BENEFIT_INCOME(29, "月度分红加权收益", 0, EnumsPrefixConstants.BONUS_ITEMS + 29), + /** * 培育津贴(新) -- 月结,月奖 */ From 5cedaa4f2e38b7893bee68020d2315540dd83947 Mon Sep 17 00:00:00 2001 From: cabbage <281119120@qq.com> Date: Wed, 11 Jun 2025 15:39:32 +0800 Subject: [PATCH 5/9] =?UTF-8?q?##=20=E6=92=A4=E5=8D=95=E5=A4=84=E7=90=86?= =?UTF-8?q?=E7=9B=92=E6=95=B0=E3=80=81=E4=B8=9A=E7=BB=A9=E7=AD=89=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/BonusSettleRangeHandle.java | 174 +++++++++++------- .../service/impl/BonusSettleServiceImpl.java | 3 +- .../impl/CuMemberBonusServiceImpl.java | 2 +- .../achieve/CuMemberRetailRangeMapper.xml | 6 +- .../bonus/bonus/CuMemberBonusDetailMapper.xml | 25 +-- .../bonus/bonus/CuMemberBonusMapper.xml | 20 +- .../bonus/bonus/CuMemberBonusRangeMapper.xml | 27 +-- .../bonus/detail/CuMemberAwardsMapper.xml | 8 +- 8 files changed, 157 insertions(+), 108 deletions(-) diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleRangeHandle.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleRangeHandle.java index 639a5326..87db9291 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleRangeHandle.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleRangeHandle.java @@ -57,7 +57,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { private IBonusOrderService iBonusOrderService; /** - * 实时计算当月奖衔 + * 实时计算秒结数据(业绩、盒数、等级、奖衔、日奖) */ List calculateCuMemberRetailRangeBonusBySecond(String settleDate, SaOrderExt saOrderExt, BonusConfigDTO bonusConfigDTO, String secondRangeTableName, int beforePeriod, int currentPeriod, @@ -191,7 +191,6 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { cuMemberBonusDetailList.add(cuMemberBonusDetail); } - // 回退会员等级 iCuMemberGradeService.updateCuMemberGrade(secondRangeTableName, saOrderExt.getPkId()); if (cuMemberGradeList.size() > 0) { @@ -215,32 +214,43 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { } /** - * 实时计算当月奖衔 + * 实时计算撤单数据(业绩、盒数、等级、奖衔、日奖) */ void calculateCuMemberBackRetailIncome(SaOrderExt saOrderExt, BonusConfigDTO bonusConfigDTO, String secondRangeTableName, int beforePeriod, int currentPeriod) { // 当天的撤单 List memberRetailRangeExtList; String rangeTableName = TableNameConstants.CU_MEMBER_RETAIL_RANGE + beforePeriod; + if (DateUtils.isSameDay(saOrderExt.getPayTime(), DateUtils.currentDate())) { - // 按照血缘,查询该会员所有伞上会员 + // 当天撤单 + // 实时网体查询血缘伞上会员,更新秒结表等级、奖衔 iCuMemberRetailRangeService.mergeMemberRetailGradeByMember(secondRangeTableName, saOrderExt.getPkMember()); - // 恢复奖衔 + // 恢复秒结表奖衔 iCuMemberAwardsService.mergeCuMemberBackAwards(secondRangeTableName, saOrderExt.getPkMember(), currentPeriod); + // 查询 昨天日结 + 今天秒结 血缘上会员结算数据 memberRetailRangeExtList = iCuMemberRetailRangeService.queryCuMemberSecondRangeParent(rangeTableName, secondRangeTableName, saOrderExt.getPkMember()); } else { + // 非当天撤单 rangeTableName = TableNameConstants.CU_MEMBER_RETAIL_RANGE + currentPeriod; List retailOrderList = new ArrayList<>(); retailOrderList.add(saOrderExt); + // 实时网体查询血缘上会员,更新订单支付日结表等级、奖衔 iCuMemberRetailRangeService.mergeMemberRetailGradeByMember(rangeTableName, saOrderExt.getPkMember()); - // 恢复奖衔 + // 恢复日结表奖衔 iCuMemberAwardsService.mergeCuMemberBackAwards(rangeTableName, saOrderExt.getPkMember(), beforePeriod); + // 查询 订单下单日结 血缘上会员结算数据 memberRetailRangeExtList = iCuMemberRetailRangeService.queryCuMemberRetailRangeParent(rangeTableName, retailOrderList); } + + // 会员结算map(key:会员ID,value:结算扩展) Map memberRangeExtMap = new HashMap<>(); + // 团队升级等级map(key:等级值,value:等级对象) Map retailTeamGradeMap = new TreeMap<>(); + // 等级map(key:等级ID,value:等级对象) Map gradeIdMap = new HashMap<>(); + // 等级列表 List retaiGradeList = bonusConfigDTO.getRetaiGradeList(); // 等级 for (BdGrade bdGrade : retaiGradeList) { @@ -249,18 +259,20 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { } gradeIdMap.put(bdGrade.getPkId(), bdGrade); } + + // 奖衔map(key:奖衔值,value:奖衔对象) Map retailAwardsMap = new HashMap<>(); List awardsList = bonusConfigDTO.getAwardsList(); awardsList.forEach(bdAwards -> retailAwardsMap.put(bdAwards.getAwardsValue(), bdAwards)); + for (CuMemberRetailRangeExt cuMemberRetailRangeExt : memberRetailRangeExtList) { if (!memberRangeExtMap.containsKey(cuMemberRetailRangeExt.getPkMember())) { cuMemberRetailRangeExt.setBuyNum(0); - // 转换等级购买数量 memberRangeExtMap.put(cuMemberRetailRangeExt.getPkMember(), cuMemberRetailRangeExt); } } - Map cuMemberGradeMap = new HashMap<>(); - Map cuMemberAwardsMap = new HashMap<>(); + + // 计算自消费奖衔 CuMemberRetailRangeExt sourceMemberRangeExt = memberRangeExtMap.get(saOrderExt.getPkMember()); // 先算等级 注册、升级计算等级 int boxNum = 0; @@ -272,23 +284,32 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { } } } + saOrderExt.setBoxNum(boxNum); + + // 订单业绩 BigDecimal orderAchieve = saOrderExt.getOrderAchieve(); -// if (saOrderExt.getOrderType().equals(EOrderType.RETAIL_REGISTER.getValue()) || -// saOrderExt.getOrderType().equals(EOrderType.RETAIL_UPGRADE.getValue())) { -// orderAchieve = BigDecimal.ZERO; -// }else{ -// -// } - // 个人累计消费pv - sourceMemberRangeExt.setConsumeBoxNum(sourceMemberRangeExt.getConsumeBoxNum() - boxNum); - sourceMemberRangeExt.setNewBoxNum(sourceMemberRangeExt.getNewBoxNum() - boxNum); - sourceMemberRangeExt.setConsumePv(ComputeUtil.computeSubtract(sourceMemberRangeExt.getConsumePv(), orderAchieve)); - sourceMemberRangeExt.setMonthConsumePv(ComputeUtil.computeSubtract(sourceMemberRangeExt.getMonthConsumePv(), orderAchieve)); - sourceMemberRangeExt.setNewConsumePv(ComputeUtil.computeSubtract(sourceMemberRangeExt.getNewConsumePv(), orderAchieve)); - // 团队业绩,计算奖衔 + if (EOrderType.RETAIL_REPURCHASE.getValue() == saOrderExt.getOrderType() + || EOrderType.RETAIL_CONSUME.getValue() == saOrderExt.getOrderType() + ) { + // 复购、重消,盒数、业绩算个人累计数据(盒数、业绩) + sourceMemberRangeExt.setConsumeBoxNum(sourceMemberRangeExt.getConsumeBoxNum() - boxNum); + sourceMemberRangeExt.setNewBoxNum(sourceMemberRangeExt.getNewBoxNum() - boxNum); + sourceMemberRangeExt.setConsumePv(ComputeUtil.computeSubtract(sourceMemberRangeExt.getConsumePv(), orderAchieve)); + sourceMemberRangeExt.setMonthConsumePv(ComputeUtil.computeSubtract(sourceMemberRangeExt.getMonthConsumePv(), orderAchieve)); + sourceMemberRangeExt.setNewConsumePv(ComputeUtil.computeSubtract(sourceMemberRangeExt.getNewConsumePv(), orderAchieve)); + } + + // 会员等级map + Map cuMemberGradeMap = new HashMap<>(); + // 会员奖衔map + Map cuMemberAwardsMap = new HashMap<>(); + // 计算自己等级、奖衔等 calculateBackGrade(currentPeriod, memberRangeExtMap, rangeTableName, saOrderExt, retailTeamGradeMap, retailAwardsMap, secondRangeTableName, cuMemberGradeMap, cuMemberAwardsMap, sourceMemberRangeExt); + // 计算团队业绩、盒数,计算等级、奖衔 List cuMemberRetailRangeExtList = calculateRetailBackRangeGradeAwards(currentPeriod, memberRangeExtMap, rangeTableName, saOrderExt, retailTeamGradeMap, retailAwardsMap, secondRangeTableName, boxNum, cuMemberGradeMap, cuMemberAwardsMap); cuMemberRetailRangeExtList.add(sourceMemberRangeExt); + + // 查询期间的等级和奖衔 List memberGradeList = iCuMemberGradeService.queryCuMemberGrade(cuMemberRetailRangeExtList, currentPeriod); // 查询最大的手动奖衔 @@ -926,7 +947,6 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { // 如果等级值 大于 当前会员等级值 并且 等级要求累计盒数 小于等于 团队累计盒数 + 累计消费盒数,则可以进行升级 if (bdGrade.getGradeValue() > targetMemberRangeExt.getGradeValue() && bdGrade.getBoxTotal() <= (targetMemberRangeExt.getTeamBoxNum() + targetMemberRangeExt.getConsumeBoxNum())) { - // 验证小区,计算小区累计盒数 查询伞下会员 List cuMemberRangeExtList; if (secondRangeTableName != null) { @@ -982,7 +1002,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { // 先验证累计业绩 // new 升级奖衔判断为当月累计业绩,累计业绩为团队业绩 + 个人消费业绩 if (ComputeUtil.compareValue(ComputeUtil.computeAdd(targetMemberRangeExt.getTeamMonthPv(), targetMemberRangeExt.getMonthConsumePv()), bdAwards.getTotalCheck())) { - // 累计业绩足够 + // 累计业绩足够,即可升奖衔 // BigDecimal consumeBigPv = BigDecimal.ZERO; // if (ComputeUtil.compareValue(bdAwards.getCommunityCheck())) { // // 验证小区,计算小区业绩 @@ -1002,12 +1022,11 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { // } // } // } -// // new 新制度奖衔不校验小区 // BigDecimal smallAreaPv = ComputeUtil.computeSubtract(ComputeUtil.computeAdd(targetMemberRangeExt.getTeamMonthPv(), targetMemberRangeExt.getMonthConsumePv()), consumeBigPv); // if (ComputeUtil.compareValue(smallAreaPv, bdAwards.getCommunityCheck())) { cuMemberAwardsList.add(getCuMemberRetailAwards(targetMemberRangeExt, period, saOrderExt, bdAwards, EAwardsType.RANGE_TYPE.getValue())); - targetMemberRangeExt.setAwardsValue(bdAwards.getAwardsValue()); targetMemberRangeExt.setPkAwards(bdAwards.getPkId()); + targetMemberRangeExt.setAwardsValue(bdAwards.getAwardsValue()); targetMemberRangeExt.setAwardsName(bdAwards.getAwardsName()); continue; // } @@ -1075,26 +1094,31 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { public List calculateRetailBackRangeGradeAwards(Integer period, Map memberRangeExtMap, String rangeTableName, SaOrderExt saOrderExt, Map retailTeamGradeMap, Map retailAwardsMap, String secondRangeTableName, Integer boxNum, Map cuMemberGradeMap, Map cuMemberAwardsMap) { - CuMemberRetailRangeExt sourceMemberRangeExt = memberRangeExtMap.get(saOrderExt.getPkMember()); - CuMemberRetailRangeExt targetMemberRangeExt = memberRangeExtMap.get(sourceMemberRangeExt.getPkParent()); List cuMemberRetailRangeExtList = new ArrayList<>(); + // 订单会员 + CuMemberRetailRangeExt sourceMemberRangeExt = memberRangeExtMap.get(saOrderExt.getPkMember()); + // 订单会员的推荐人 + CuMemberRetailRangeExt targetMemberRangeExt = memberRangeExtMap.get(sourceMemberRangeExt.getPkParent()); + BigDecimal orderAchieve = saOrderExt.getOrderAchieve(); BigDecimal orderAmount = saOrderExt.getOrderAmount(); - // 累计业绩 - targetMemberRangeExt.setTeamConsumeAmount(ComputeUtil.computeSubtract(targetMemberRangeExt.getTeamConsumeAmount(), orderAmount)); - targetMemberRangeExt.setTeamConsumePv(ComputeUtil.computeSubtract(targetMemberRangeExt.getTeamConsumePv(), orderAchieve)); - targetMemberRangeExt.setTeamMonthAmount(ComputeUtil.computeSubtract(targetMemberRangeExt.getTeamMonthAmount(), orderAmount)); - targetMemberRangeExt.setTeamMonthPv(ComputeUtil.computeSubtract(targetMemberRangeExt.getTeamMonthPv(), orderAchieve)); - targetMemberRangeExt.setTeamNewAmount(ComputeUtil.computeSubtract(targetMemberRangeExt.getTeamNewAmount(), orderAmount)); - targetMemberRangeExt.setTeamNewPv(ComputeUtil.computeSubtract(targetMemberRangeExt.getTeamNewPv(), orderAchieve)); while (targetMemberRangeExt != null) { - // 累计盒数 + // 激活的账号才能累计业绩和盒数(有注册、升级订单) if (targetMemberRangeExt.getEnableStatus() == EYesNo.YES.getIntValue()) { + // 累计业绩 + targetMemberRangeExt.setTeamConsumeAmount(ComputeUtil.computeSubtract(targetMemberRangeExt.getTeamConsumeAmount(), orderAmount)); + targetMemberRangeExt.setTeamConsumePv(ComputeUtil.computeSubtract(targetMemberRangeExt.getTeamConsumePv(), orderAchieve)); + targetMemberRangeExt.setTeamMonthAmount(ComputeUtil.computeSubtract(targetMemberRangeExt.getTeamMonthAmount(), orderAmount)); + targetMemberRangeExt.setTeamMonthPv(ComputeUtil.computeSubtract(targetMemberRangeExt.getTeamMonthPv(), orderAchieve)); + targetMemberRangeExt.setTeamNewAmount(ComputeUtil.computeSubtract(targetMemberRangeExt.getTeamNewAmount(), orderAmount)); + targetMemberRangeExt.setTeamNewPv(ComputeUtil.computeSubtract(targetMemberRangeExt.getTeamNewPv(), orderAchieve)); + // 累计盒数 targetMemberRangeExt.setTeamBoxNum(targetMemberRangeExt.getTeamBoxNum() - boxNum); targetMemberRangeExt.setMonthBoxNum(targetMemberRangeExt.getMonthBoxNum() - boxNum); targetMemberRangeExt.setTeamNewBoxNum(targetMemberRangeExt.getTeamNewBoxNum() - boxNum); - cuMemberRetailRangeExtList.add(targetMemberRangeExt); + // 计算等级 calculateBackGrade(period, memberRangeExtMap, rangeTableName, saOrderExt, retailTeamGradeMap, retailAwardsMap, secondRangeTableName, cuMemberGradeMap, cuMemberAwardsMap, targetMemberRangeExt); + cuMemberRetailRangeExtList.add(targetMemberRangeExt); } // 计算等级 targetMemberRangeExt = memberRangeExtMap.get(targetMemberRangeExt.getPkParent()); @@ -1102,34 +1126,51 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { return cuMemberRetailRangeExtList; } - private void calculateBackGrade(Integer period, Map memberRangeExtMap, String rangeTableName, SaOrderExt saOrderExt, Map retailTeamGradeMap, Map retailAwardsMap, String secondRangeTableName, Map cuMemberGradeMap, Map cuMemberAwardsMap, CuMemberRetailRangeExt targetMemberRangeExt) { + private void calculateBackGrade(Integer period, Map memberRangeExtMap, String rangeTableName, + SaOrderExt saOrderExt, Map retailTeamGradeMap, Map retailAwardsMap, + String secondRangeTableName, Map cuMemberGradeMap, Map cuMemberAwardsMap, + CuMemberRetailRangeExt targetMemberRangeExt) { + // 遍历团队等级map(V4,V5) for (Integer gradeValue : retailTeamGradeMap.keySet()) { BdGrade bdGrade = retailTeamGradeMap.get(gradeValue); + if (bdGrade.getBoxTotal() <= (targetMemberRangeExt.getTeamBoxNum() + targetMemberRangeExt.getConsumeBoxNum())) { // 验证小区,计算小区累计盒数 查询伞下会员 List cuMemberRangeExtList; if (secondRangeTableName != null) { + // 秒结表关联昨日结算表,查询订单会员直推数据 cuMemberRangeExtList = iCuMemberRetailRangeService.queryCuMemberSecondRangeExtByParent(rangeTableName, secondRangeTableName, targetMemberRangeExt.getPkMember()); } else { + // 昨日结算表,查询订单会员直推数据 cuMemberRangeExtList = iCuMemberRetailRangeService.queryCuMemberRetailRangeExtByParent(rangeTableName, targetMemberRangeExt.getPkMember()); } + + // 有注水的,大区无限大,新增全算小区 + // 大区盒数 int bigBoxNum = targetMemberRangeExt.getConsumeBoxNum(); if (targetMemberRangeExt.getBigBoxNum() > 0) { + // 大区存在注水盒数,直接使用大区注水盒数 bigBoxNum = targetMemberRangeExt.getBigBoxNum(); } else { + // 秒结 cuMemberRangeExtList 为直推会员数据, memberRangeExtMap 为会员伞上数据,这块应该永远不会处理 + // 日结这块处理直推判断大小区没问题 for (CuMemberRetailRangeExt cuMemberRetailRangeExt : cuMemberRangeExtList) { if (memberRangeExtMap.containsKey(cuMemberRetailRangeExt.getPkMember())) { cuMemberRetailRangeExt = memberRangeExtMap.get(cuMemberRetailRangeExt.getPkMember()); } + // 伞下团队累计盒数 + 自己消费盒数 - 大区注水 - 小区注水 int areaBoxNum = cuMemberRetailRangeExt.getTeamBoxNum() + cuMemberRetailRangeExt.getConsumeBoxNum() - cuMemberRetailRangeExt.getBigBoxNum() - cuMemberRetailRangeExt.getSmallBoxNum(); if (areaBoxNum > bigBoxNum) { + // 实际订单累计盒数 大于 累计消费盒数,实际订单累计盒数为大区 bigBoxNum = areaBoxNum; } } } + // 小区盒数 int smallBoxNum = targetMemberRangeExt.getTeamBoxNum() + targetMemberRangeExt.getConsumeBoxNum() - bigBoxNum; if (smallBoxNum >= bdGrade.getBoxSmallTotal()) { + // 小区盒数 大于等于 升级小区盒数 CuMemberGrade cuMemberGrade = getCuMemberGrade(period, targetMemberRangeExt, bdGrade); cuMemberGradeMap.put(cuMemberGrade.getPkMember() + "_" + cuMemberGrade.getNewLevel(), cuMemberGrade); targetMemberRangeExt.setGradeValue(bdGrade.getGradeValue()); @@ -1138,39 +1179,42 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { } } } - // 计算奖衔 + // 计算奖衔(荣誉级别) while (true) { int awardsValue = targetMemberRangeExt.getAwardsValue() + 5; if (targetMemberRangeExt.getGradeValue().equals(EGrade.S_VIP.getValue()) && retailAwardsMap.containsKey(awardsValue)) { + // 等级达到V5 并且 存在下个奖衔,判断是否能升奖衔 BdAwards bdAwards = retailAwardsMap.get(awardsValue); // 先验证累计业绩 + // new 升级奖衔判断为当月累计业绩,累计业绩为团队业绩 + 个人消费业绩 if (ComputeUtil.compareValue(ComputeUtil.computeAdd(targetMemberRangeExt.getTeamMonthPv(), targetMemberRangeExt.getMonthConsumePv()), bdAwards.getTotalCheck())) { - // 验证小区,计算小区业绩 - List cuMemberRangeExtList; - if (secondRangeTableName != null) { - cuMemberRangeExtList = iCuMemberRetailRangeService.queryCuMemberSecondRangeExtByParent(rangeTableName, secondRangeTableName, targetMemberRangeExt.getPkMember()); - } else { - cuMemberRangeExtList = iCuMemberRetailRangeService.queryCuMemberRetailRangeExtByParent(rangeTableName, targetMemberRangeExt.getPkMember()); - } - BigDecimal consumeBigPv = BigDecimal.ZERO; - for (CuMemberRetailRangeExt cuMemberRetailRangeExt : cuMemberRangeExtList) { - if (memberRangeExtMap.containsKey(cuMemberRetailRangeExt.getPkMember())) { - cuMemberRetailRangeExt = memberRangeExtMap.get(cuMemberRetailRangeExt.getPkMember()); - } - BigDecimal consumePv = ComputeUtil.computeAdd(cuMemberRetailRangeExt.getMonthConsumePv(), cuMemberRetailRangeExt.getTeamMonthPv()); - if (ComputeUtil.compareGreaterThan(consumePv, consumeBigPv)) { - consumeBigPv = consumePv; - } - } - BigDecimal smallAreaPv = ComputeUtil.computeSubtract(targetMemberRangeExt.getTeamMonthPv(), consumeBigPv); - if (ComputeUtil.compareValue(smallAreaPv, bdAwards.getCommunityCheck())) { - CuMemberAwards cuMemberRetailAwards = getCuMemberRetailAwards(targetMemberRangeExt, period, saOrderExt, bdAwards, EAwardsType.RANGE_TYPE.getValue()); - cuMemberAwardsMap.put(cuMemberRetailAwards.getPkMember() + "_" + cuMemberRetailAwards.getNewLevel(), cuMemberRetailAwards); - targetMemberRangeExt.setAwardsValue(bdAwards.getAwardsValue()); - targetMemberRangeExt.setPkAwards(bdAwards.getPkId()); - targetMemberRangeExt.setAwardsName(bdAwards.getAwardsName()); - continue; - } + // 累计业绩足够,即可升奖衔 +// // 验证小区,计算小区业绩 +// List cuMemberRangeExtList; +// if (secondRangeTableName != null) { +// cuMemberRangeExtList = iCuMemberRetailRangeService.queryCuMemberSecondRangeExtByParent(rangeTableName, secondRangeTableName, targetMemberRangeExt.getPkMember()); +// } else { +// cuMemberRangeExtList = iCuMemberRetailRangeService.queryCuMemberRetailRangeExtByParent(rangeTableName, targetMemberRangeExt.getPkMember()); +// } +// BigDecimal consumeBigPv = BigDecimal.ZERO; +// for (CuMemberRetailRangeExt cuMemberRetailRangeExt : cuMemberRangeExtList) { +// if (memberRangeExtMap.containsKey(cuMemberRetailRangeExt.getPkMember())) { +// cuMemberRetailRangeExt = memberRangeExtMap.get(cuMemberRetailRangeExt.getPkMember()); +// } +// BigDecimal consumePv = ComputeUtil.computeAdd(cuMemberRetailRangeExt.getMonthConsumePv(), cuMemberRetailRangeExt.getTeamMonthPv()); +// if (ComputeUtil.compareGreaterThan(consumePv, consumeBigPv)) { +// consumeBigPv = consumePv; +// } +// } +// BigDecimal smallAreaPv = ComputeUtil.computeSubtract(targetMemberRangeExt.getTeamMonthPv(), consumeBigPv); +// if (ComputeUtil.compareValue(smallAreaPv, bdAwards.getCommunityCheck())) { + CuMemberAwards cuMemberRetailAwards = getCuMemberRetailAwards(targetMemberRangeExt, period, saOrderExt, bdAwards, EAwardsType.RANGE_TYPE.getValue()); + cuMemberAwardsMap.put(cuMemberRetailAwards.getPkMember() + "_" + cuMemberRetailAwards.getNewLevel(), cuMemberRetailAwards); + targetMemberRangeExt.setPkAwards(bdAwards.getPkId()); + targetMemberRangeExt.setAwardsValue(bdAwards.getAwardsValue()); + targetMemberRangeExt.setAwardsName(bdAwards.getAwardsName()); + continue; +// } } } break; diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleServiceImpl.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleServiceImpl.java index e3b52f37..17f11363 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleServiceImpl.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleServiceImpl.java @@ -214,7 +214,7 @@ public class BonusSettleServiceImpl implements IBonusSettleService { // 订单下单处理(正向) // 会员奖金明细 List cuMemberBonusDetailList = new ArrayList<>(); - // 实时计算当月奖衔 + // 实时计算秒结数据(业绩、盒数、等级、奖衔、日奖) List cuMemberBonusRangeList = bonusSettleRangeHandle.calculateCuMemberRetailRangeBonusBySecond(settleDate, saOrderExt, bonusConfigDTO, secondRangeTableName, beforePeriod, currentPeriod, cuMemberBonusMap, cuMemberBonusDetailList); saveCuMemberBonus(currentPeriod, settleDate, cuMemberBonusMap); @@ -236,6 +236,7 @@ public class BonusSettleServiceImpl implements IBonusSettleService { settleDate = DateUtils.parseDateToFormat(DateUtils.YYYY_MM_DD, DateUtils.beforeDate(1, ChronoUnit.DAYS)); currentPeriod = cuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(settleDate).getPkId(); } + // 实时计算撤单数据(业绩、盒数、等级、奖衔、日奖) bonusSettleRangeHandle.calculateCuMemberBackRetailIncome(saOrderExt, bonusConfigDTO, secondRangeTableName, beforePeriod, currentPeriod); // 处理收益 diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/CuMemberBonusServiceImpl.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/CuMemberBonusServiceImpl.java index 31fc7b82..ab59d7fe 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/CuMemberBonusServiceImpl.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/CuMemberBonusServiceImpl.java @@ -683,7 +683,7 @@ public class CuMemberBonusServiceImpl extends ServiceImpl diff --git a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/bonus/CuMemberBonusDetailMapper.xml b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/bonus/CuMemberBonusDetailMapper.xml index 0ede2e9c..f00cf047 100644 --- a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/bonus/CuMemberBonusDetailMapper.xml +++ b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/bonus/CuMemberBonusDetailMapper.xml @@ -56,21 +56,22 @@ insert ALL - into cu_member_bonus_detail(pk_bonus,pk_order,pk_bonus_items,income_status, - cal_type,cal_achieve,cal_value,pretax_income, - income_tax,real_income,remark, - income_ratio,income_dial_ratio,order_dial_ratio,pk_country,pk_creator) - values - ( - #{item.pkBonus},nvl(#{item.pkOrder,jdbcType=BIGINT},0),#{item.pkBonusItems},#{item.incomeStatus}, - #{item.calType},#{item.calAchieve,jdbcType=NUMERIC},#{item.calValue,jdbcType=NUMERIC},#{item.pretaxIncome,jdbcType=NUMERIC}, - #{item.incomeTax,jdbcType=NUMERIC},#{item.realIncome,jdbcType=NUMERIC}, - #{item.remark},#{item.incomeRatio,jdbcType=NUMERIC},#{item.incomeDialRatio,jdbcType=NUMERIC},#{item.orderDialRatio,jdbcType=NUMERIC}, - #{item.pkCountry},#{item.pkCreator} - ) + into cu_member_bonus_detail ( + pk_bonus, pk_order, pk_bonus_items, income_status, + cal_type, cal_achieve, cal_value, pretax_income, + income_tax, real_income, remark, + income_ratio, income_dial_ratio, order_dial_ratio, + pk_country, pk_creator) + values ( + #{item.pkBonus}, nvl(#{item.pkOrder, jdbcType=BIGINT},0), #{item.pkBonusItems}, #{item.incomeStatus}, + #{item.calType}, #{item.calAchieve, jdbcType=NUMERIC}, #{item.calValue, jdbcType=NUMERIC}, #{item.pretaxIncome, jdbcType=NUMERIC}, + #{item.incomeTax, jdbcType=NUMERIC}, #{item.realIncome, jdbcType=NUMERIC}, #{item.remark}, + #{item.incomeRatio, jdbcType=NUMERIC}, #{item.incomeDialRatio, jdbcType=NUMERIC}, #{item.orderDialRatio, jdbcType=NUMERIC}, + #{item.pkCountry},#{item.pkCreator}) SELECT 1 FROM dual + insert into cu_member_bonus_detail(pk_bonus, pk_order, pk_bonus_items, income_status, cal_type, cal_achieve, cal_value, pretax_income, diff --git a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/bonus/CuMemberBonusMapper.xml b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/bonus/CuMemberBonusMapper.xml index bdbc9fe1..064b3d49 100644 --- a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/bonus/CuMemberBonusMapper.xml +++ b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/bonus/CuMemberBonusMapper.xml @@ -74,36 +74,38 @@ and pk_country = #{pkCountry} + merge into cu_member_bonus a using( select b.* from bd_bonus_items bt inner join( - select pk_bonus,pk_bonus_items,sum(pretax_income) pretax_income, - sum(income_tax) income_tax,sum(real_income) real_income from + select pk_bonus,pk_bonus_items, sum(pretax_income) pretax_income, + sum(income_tax) income_tax, sum(real_income) real_income from cu_member_bonus_detail cu_member_bonus_range where del_flag=0 and pk_order= #{pkOrder} - group by pk_bonus,pk_bonus_items) b - on bt.pk_id=b.pk_bonus_items - where bt.bonus_value=#{bonusValue}) b - on (a.pk_id=b.pk_bonus) + group by pk_bonus, pk_bonus_items) b + on bt.pk_id = b.pk_bonus_items + where bt.bonus_value = #{bonusValue}) b + on (a.pk_id = b.pk_bonus) when matched then update set a.retail_real_subtotal=a.retail_real_subtotal-b.real_income, a.back_points=a.back_points-b.income_tax, a.real_income_total=a.real_income_total-b.real_income - ,a.retail_range_income=a.retail_range_income-b.pretax_income + ,a.retail_range_income = a.retail_range_income - b.pretax_income - ,a.retail_same_level_income=a.retail_same_level_income-b.pretax_income + ,a.retail_same_level_income = a.retail_same_level_income - b.pretax_income - ,a.retail_area_income=a.retail_area_income-b.pretax_income + ,a.retail_area_income = a.retail_area_income - b.pretax_income + delete from cu_member_bonus diff --git a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/bonus/CuMemberBonusRangeMapper.xml b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/bonus/CuMemberBonusRangeMapper.xml index 4cb49414..7ba51c1e 100644 --- a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/bonus/CuMemberBonusRangeMapper.xml +++ b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/bonus/CuMemberBonusRangeMapper.xml @@ -48,7 +48,6 @@ - @@ -57,18 +56,20 @@ insert ALL - into cu_member_bonus_range(pk_bonus,pk_order,pk_order_items,pk_bonus_items,income_status, - cal_type,cal_achieve,cal_value,pk_range,pk_before_range,pretax_income, - income_tax,real_income,remark, - income_ratio,income_dial_ratio,order_dial_ratio,pk_country,pk_creator) - values - ( - #{item.pkBonus},#{item.pkOrder},#{item.pkOrderItems},#{item.pkBonusItems},#{item.incomeStatus}, - #{item.calType},#{item.calAchieve},#{item.calValue},#{item.pkRange},#{item.pkBeforeRange}, - #{item.pretaxIncome},#{item.incomeTax},#{item.realIncome}, - #{item.remark},#{item.incomeRatio},#{item.incomeDialRatio},#{item.orderDialRatio}, - #{item.pkCountry},#{item.pkCreator} - ) + into cu_member_bonus_range ( + pk_bonus, pk_order, pk_order_items, pk_bonus_items, + income_status, cal_type, cal_achieve, cal_value, + pk_range, pk_before_range, pretax_income, + income_tax, real_income, remark, + income_ratio, income_dial_ratio, order_dial_ratio, + pk_country, pk_creator) + values ( + #{item.pkBonus}, #{item.pkOrder}, #{item.pkOrderItems}, #{item.pkBonusItems}, + #{item.incomeStatus}, #{item.calType}, #{item.calAchieve}, #{item.calValue}, + #{item.pkRange}, #{item.pkBeforeRange}, #{item.pretaxIncome}, + #{item.incomeTax}, #{item.realIncome}, #{item.remark}, + #{item.incomeRatio}, #{item.incomeDialRatio}, #{item.orderDialRatio}, + #{item.pkCountry}, #{item.pkCreator}) SELECT 1 FROM dual diff --git a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/detail/CuMemberAwardsMapper.xml b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/detail/CuMemberAwardsMapper.xml index 7af93b0b..fbd4d289 100644 --- a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/detail/CuMemberAwardsMapper.xml +++ b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/detail/CuMemberAwardsMapper.xml @@ -167,13 +167,13 @@ and ca.pk_member in (select pk_id from cu_member start - with pk_id=#{pkMember} - connect by prior pk_parent=pk_id) + with pk_id = #{pkMember} + connect by prior pk_parent = pk_id) group by ca.pk_member) cx on cw.pk_id = cx.pk_id ) b - on (a.pk_member=b.pk_member) + on (a.pk_member = b.pk_member) when matched then - update set a.pk_awards=b.old_level + update set a.pk_awards = b.old_level From 78c9b8d038e36c7f54ec5b2eac6aea8012172460 Mon Sep 17 00:00:00 2001 From: cabbage <281119120@qq.com> Date: Wed, 11 Jun 2025 16:11:50 +0800 Subject: [PATCH 6/9] =?UTF-8?q?##=20=E5=8D=87=E7=BA=A7=E6=96=B9=E5=BC=8F?= =?UTF-8?q?=E6=94=B9=E4=B8=BA=E4=B8=80=E6=AC=A1=E6=80=A7=E8=A1=A5=E5=B7=AE?= =?UTF-8?q?=E5=8D=87=E7=BA=A7=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/SaOrderServiceImpl.java | 69 ++++++++++++------- .../mapper/sale/order/SaOrderItemsMapper.xml | 4 +- 2 files changed, 49 insertions(+), 24 deletions(-) diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/SaOrderServiceImpl.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/SaOrderServiceImpl.java index b6632819..15b3741e 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/SaOrderServiceImpl.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/SaOrderServiceImpl.java @@ -2638,7 +2638,7 @@ public class SaOrderServiceImpl extends ServiceImpl impl // 注册专区直接算等级 bdGrade = this.getGradeByBox(boxNum, gradeList, null, true); } else if (ESpecialArea.RETAIL_UPGRADE.getValue() == specialArea) { - // 升级专区取消,一次性补差升级 + // 升级专区,一次性补差升级 if (boxNum == 0) { // 不满足升级条件 throw new ServiceException("不满足升级条件"); @@ -2651,8 +2651,10 @@ public class SaOrderServiceImpl extends ServiceImpl impl throw new ServiceException("当前已经是可以购买的最高等级"); } + // 获取升级盒数基数 + int baseBoxNum = this.handleBaseBoxNum(updateGradeMember, memberGrade, gradeList, boxProductList, systemType); // 计算等级 - bdGrade = this.getGradeByBox(boxNum, gradeList, memberGrade, true); + bdGrade = this.getGradeByBox(boxNum + baseBoxNum, gradeList, memberGrade, true); // 会员等级 大于等于 购买盒数等级,则不充足升级条件 if (memberGrade.getGradeValue().compareTo(bdGrade.getGradeValue()) >= 0) { @@ -2703,7 +2705,7 @@ public class SaOrderServiceImpl extends ServiceImpl impl Optional gradeOptional = gradeList.stream().filter(tmpGrade -> tmpGrade.getGradeValue() > memberGrade.getGradeValue()) .sorted(Comparator.comparingInt(BdGrade::getGradeValue).reversed()) .filter(tmpGrade -> tmpGrade.getBoxNumber() != 0) - .filter(tmpGrade -> tmpGrade.getBoxNumber() - memberGrade.getBoxNumber() <= boxTotal).findFirst(); + .filter(tmpGrade -> tmpGrade.getBoxNumber() <= boxTotal).findFirst(); return gradeOptional.orElse(memberGrade); } } @@ -2715,7 +2717,7 @@ public class SaOrderServiceImpl extends ServiceImpl impl * @param cuMember 会员信息 * @param memberGrade 会员等级信息 * @param gradeList 等级列表 - * @param boxProductList 盒数商品商品 + * @param boxProductList 盒数商品列表 * @param systemType 所属系统 * @return */ @@ -2723,35 +2725,56 @@ public class SaOrderServiceImpl extends ServiceImpl impl public int handleBaseBoxNum(CuMember cuMember, BdGrade memberGrade, List gradeList, List boxProductList, Integer systemType) { - // 获取今天开始时间 - Date todayDate = DateUtils.getStartTime(new Date()); - // 2025.03.18 调整需求,升级走当天累计,当天买的所有都进行积累,24点之后则重新累积(手动升级前后的盒数都算累计) + // 升级盒数基数 int baseBoxNum = 0; - - // 是否有升级记录 + // 会员所有升级记录 List memberLevelList = iCuMemberDetailServiceApi.getUpgradeList(cuMember.getPkId()).getData(); if (CollectionUtil.isNotEmpty(memberLevelList)) { - // 如果今天有手动升级记录,则以手动升级记录的盒数 + 今天购买的盒数做累计 - // 最新一次的手动升级记录 Optional lastManualOptional = memberLevelList.stream().filter(tmpGrade -> tmpGrade.getUpType().equals(EUpgradeType.MANUAL_UPGRADE.getValue())).findFirst(); - if (lastManualOptional.isPresent() && lastManualOptional.get().getUpgradeTime().compareTo(todayDate) >= 0) { - // 存在今天的手动升级记录 + if (lastManualOptional.isPresent()) { + // 最新一次的手动升级 CuMemberLevel lastMemberLevel = lastManualOptional.get(); BdGrade lastUpdateGrade = gradeList.stream().filter(tmpGrade -> tmpGrade.getPkId().equals(lastMemberLevel.getNewLevel())).findFirst().get(); - baseBoxNum = lastUpdateGrade.getBoxNumber(); + // 盒数基数 = 手动升级盒数 + 手动升级之后的升级订单盒数 + baseBoxNum = lastUpdateGrade.getBoxNumber() + + saOrderItemsService.getRetailWaresQuantityNew(cuMember.getPkId(), boxProductList, lastMemberLevel.getUpgradeTime(), Collections.singletonList(EOrderType.RETAIL_UPGRADE.getValue()), systemType); } else { - // 如果今天没有手动升级记录,则以今天以前最后一条升级记录的盒数 + 今天购买的盒数做累计 - memberLevelList = memberLevelList.stream().filter(tmp -> tmp.getUpgradeTime().compareTo(todayDate) < 0).collect(Collectors.toList()); - if (CollectionUtil.isNotEmpty(memberLevelList)) { - CuMemberLevel lastMemberLevel = memberLevelList.get(0); - BdGrade lastUpdateGrade = gradeList.stream().filter(tmpGrade -> tmpGrade.getPkId().equals(lastMemberLevel.getNewLevel())).findFirst().get(); - baseBoxNum = lastUpdateGrade.getBoxNumber(); - } + // 没有手动升级记录 + saOrderItemsService.getRetailWaresQuantityNew(cuMember.getPkId(), boxProductList, null, Arrays.asList(EOrderType.RETAIL_REGISTER.getValue(), EOrderType.RETAIL_UPGRADE.getValue()), systemType); } } + return baseBoxNum; - return baseBoxNum + saOrderItemsService.getRetailWaresQuantityNew(cuMember.getPkId(), boxProductList, todayDate, - Arrays.asList(EOrderType.RETAIL_REGISTER.getValue(), EOrderType.RETAIL_UPGRADE.getValue(), EOrderType.RETAIL_REPURCHASE.getValue()), systemType); + +// // 获取今天开始时间 +// Date todayDate = DateUtils.getStartTime(new Date()); +// // 2025.03.18 调整需求,升级走当天累计,当天买的所有都进行积累,24点之后则重新累积(手动升级前后的盒数都算累计) +// int baseBoxNum = 0; +// +// // 是否有升级记录 +// List memberLevelList = iCuMemberDetailServiceApi.getUpgradeList(cuMember.getPkId()).getData(); +// if (CollectionUtil.isNotEmpty(memberLevelList)) { +// // 如果今天有手动升级记录,则以手动升级记录的盒数 + 今天购买的盒数做累计 +// // 最新一次的手动升级记录 +// Optional lastManualOptional = memberLevelList.stream().filter(tmpGrade -> tmpGrade.getUpType().equals(EUpgradeType.MANUAL_UPGRADE.getValue())).findFirst(); +// if (lastManualOptional.isPresent() && lastManualOptional.get().getUpgradeTime().compareTo(todayDate) >= 0) { +// // 存在今天的手动升级记录 +// CuMemberLevel lastMemberLevel = lastManualOptional.get(); +// BdGrade lastUpdateGrade = gradeList.stream().filter(tmpGrade -> tmpGrade.getPkId().equals(lastMemberLevel.getNewLevel())).findFirst().get(); +// baseBoxNum = lastUpdateGrade.getBoxNumber(); +// } else { +// // 如果今天没有手动升级记录,则以今天以前最后一条升级记录的盒数 + 今天购买的盒数做累计 +// memberLevelList = memberLevelList.stream().filter(tmp -> tmp.getUpgradeTime().compareTo(todayDate) < 0).collect(Collectors.toList()); +// if (CollectionUtil.isNotEmpty(memberLevelList)) { +// CuMemberLevel lastMemberLevel = memberLevelList.get(0); +// BdGrade lastUpdateGrade = gradeList.stream().filter(tmpGrade -> tmpGrade.getPkId().equals(lastMemberLevel.getNewLevel())).findFirst().get(); +// baseBoxNum = lastUpdateGrade.getBoxNumber(); +// } +// } +// } +// +// return baseBoxNum + saOrderItemsService.getRetailWaresQuantityNew(cuMember.getPkId(), boxProductList, todayDate, +// Arrays.asList(EOrderType.RETAIL_REGISTER.getValue(), EOrderType.RETAIL_UPGRADE.getValue(), EOrderType.RETAIL_REPURCHASE.getValue()), systemType); // // 是否当天购买(当天走累计升级,非当天走一次性补差) diff --git a/bd-business/bd-business-sale/src/main/resources/mapper/sale/order/SaOrderItemsMapper.xml b/bd-business/bd-business-sale/src/main/resources/mapper/sale/order/SaOrderItemsMapper.xml index 97ed422c..8f4f558e 100644 --- a/bd-business/bd-business-sale/src/main/resources/mapper/sale/order/SaOrderItemsMapper.xml +++ b/bd-business/bd-business-sale/src/main/resources/mapper/sale/order/SaOrderItemsMapper.xml @@ -1183,7 +1183,9 @@ #{items} - and to_char(so.pay_time, 'yyyy-mm-dd') = to_char(#{payTime}, 'yyyy-mm-dd') + + and so.pay_time > #{payTime} + From a687acd4f3403257779f97268a263af4da89bee2 Mon Sep 17 00:00:00 2001 From: cabbage <281119120@qq.com> Date: Wed, 11 Jun 2025 16:20:17 +0800 Subject: [PATCH 7/9] =?UTF-8?q?##=20=E6=B3=A8=E5=86=8C=E6=88=90=E5=8A=9F?= =?UTF-8?q?=E8=BF=94=E5=9B=9E=E5=9C=B0=E5=9D=80=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/ApiCuMemberTransferController.java | 15 +--------- .../service/impl/ApiAliSmsServiceImpl.java | 10 ++----- .../sms/service/impl/ApiSmsServiceImpl.java | 12 ++------ .../api/RetailMemberController.java | 8 ++--- .../impl/CuMemberRetailRegionServiceImpl.java | 4 --- .../api/ApiRetailOrderController.java | 8 ++--- .../com/hzs/retail/sale/vo/RetailOrderVO.java | 11 +++---- .../controller/ParentOrderController.java | 14 ++------- .../service/impl/SaOrderServiceImpl.java | 13 ++++---- .../core/aspect/RepeatSubmitAspectAdvice.java | 4 +-- .../config/{HzsConfig.java => BdConfig.java} | 30 +++++++++---------- 11 files changed, 41 insertions(+), 88 deletions(-) rename bd-common/bd-common-core/src/main/java/com/hzs/common/core/config/{HzsConfig.java => BdConfig.java} (80%) diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/account/controller/api/ApiCuMemberTransferController.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/account/controller/api/ApiCuMemberTransferController.java index 46babd49..db08b67a 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/account/controller/api/ApiCuMemberTransferController.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/account/controller/api/ApiCuMemberTransferController.java @@ -5,14 +5,10 @@ import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.DesensitizedUtil; import cn.hutool.json.JSONUtil; import com.hzs.common.core.annotation.RepeatSubmitSimple; -import com.hzs.common.core.config.HzsConfig; -import com.hzs.common.core.constant.CountryConstants; import com.hzs.common.core.constant.MemberFieldConstants; -import com.hzs.common.core.constant.SysConstants; import com.hzs.common.core.constant.msg.FinanceMsgConstants; import com.hzs.common.core.enums.*; import com.hzs.common.core.utils.CommonUtil; -import com.hzs.common.core.utils.DateUtils; import com.hzs.common.core.utils.StringUtils; import com.hzs.common.core.utils.reflect.ReflectUtils; import com.hzs.common.core.web.controller.BaseController; @@ -39,9 +35,7 @@ import com.hzs.member.base.vo.UpPolicyCurrencyVO; import com.hzs.member.detail.service.ICuMemberServiceLogService; import com.hzs.system.base.dto.CurrencyDTO; import com.hzs.system.config.IAccountServiceApi; -import com.hzs.system.config.IGradeServiceApi; import com.hzs.system.config.ITradeConfigServiceApi; -import com.hzs.system.config.dto.GradeDTO; import org.apache.dubbo.config.annotation.DubboReference; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.util.Assert; @@ -49,16 +43,12 @@ import org.springframework.web.bind.annotation.*; import java.math.BigDecimal; import java.util.Arrays; -import java.util.Date; import java.util.List; import java.util.Map; import java.util.stream.Collectors; /** * 会员提现表 前端控制器 - * - * @author hzs - * @since 2022-09-06 */ @RestController @RequestMapping("/api/transfer") @@ -85,9 +75,6 @@ public class ApiCuMemberTransferController extends BaseController { @DubboReference IAccountServiceApi accountServiceApi; - @DubboReference - IGradeServiceApi gradeServiceApi; - @DubboReference ITradeConfigServiceApi tradeConfigServiceApi; @@ -99,7 +86,7 @@ public class ApiCuMemberTransferController extends BaseController { */ @GetMapping("/chinese-name") public AjaxResult chineseDesensitization(String memberCode) { - if(StringUtils.isEmpty(memberCode)){ + if (StringUtils.isEmpty(memberCode)) { return AjaxResult.error(TransactionUtils.getContent(FinanceMsgConstants.PARAMETER_NOT_EMPTY)); } CuMember member = cuMemberService.getMemberByCode(memberCode); diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/sms/service/impl/ApiAliSmsServiceImpl.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/sms/service/impl/ApiAliSmsServiceImpl.java index cf2abaec..501821f2 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/sms/service/impl/ApiAliSmsServiceImpl.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/sms/service/impl/ApiAliSmsServiceImpl.java @@ -2,7 +2,7 @@ package com.hzs.member.sms.service.impl; import cn.hutool.core.date.DatePattern; import cn.hutool.core.date.DateUtil; -import com.hzs.common.core.config.HzsConfig; +import com.hzs.common.core.config.BdConfig; import com.hzs.common.core.constant.CacheConstants; import com.hzs.common.core.domain.R; import com.hzs.common.core.enums.EAliSmsTemplate; @@ -20,11 +20,7 @@ import java.util.Date; import java.util.concurrent.TimeUnit; /** - * @Description: 阿里短信发送服务 - * @Author: jiang chao - * @Time: 2024/12/19 16:30 - * @Classname: ApiAliSmsServiceImpl - * @PackageName: com.hzs.member.sms.service.impl + * 阿里短信发送服务 */ @Slf4j @Service @@ -89,7 +85,7 @@ public class ApiAliSmsServiceImpl implements IApiAliSmsService { @Override public String checkCode(String phone, String smsCode, String checkKey) { - if (EEnv.TEST.getValue().equals(HzsConfig.getEnv()) && "ASDF".equals(smsCode)) { + if (EEnv.TEST.getValue().equals(BdConfig.getEnv()) && "ASDF".equals(smsCode)) { // 测试环境暂时不发放短信 return null; } diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/sms/service/impl/ApiSmsServiceImpl.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/sms/service/impl/ApiSmsServiceImpl.java index f91d30d8..928d3666 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/sms/service/impl/ApiSmsServiceImpl.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/sms/service/impl/ApiSmsServiceImpl.java @@ -1,23 +1,17 @@ package com.hzs.member.sms.service.impl; -import com.hzs.common.core.config.HzsConfig; +import com.hzs.common.core.config.BdConfig; import com.hzs.common.core.constant.msg.SystemMsgConstants; import com.hzs.common.core.enums.EEnv; import com.hzs.common.core.service.RedisService; import com.hzs.common.util.TransactionUtils; import com.hzs.member.sms.service.IApiSmsService; -import com.hzs.third.sms.ISmsServiceApi; import lombok.extern.slf4j.Slf4j; -import org.apache.dubbo.config.annotation.DubboReference; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; /** - * @Description: 短信处理服务 - * @Author: jiang chao - * @Time: 2023/3/8 15:56 - * @Classname: ApiSmsServiceImpjl - * @PackageName: com.hzs.member.sms.service.impl + * 短信处理服务 */ @Slf4j @Service @@ -28,7 +22,7 @@ public class ApiSmsServiceImpl implements IApiSmsService { @Override public String checkSms(String cacheKey, String code) { - if (EEnv.TEST.getValue().equals(HzsConfig.getEnv()) && "ASDF".equals(code)) { + if (EEnv.TEST.getValue().equals(BdConfig.getEnv()) && "ASDF".equals(code)) { // 测试环境暂时不发放短信 return null; } diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/controller/api/RetailMemberController.java b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/controller/api/RetailMemberController.java index 2cfd2a7c..9329b3d9 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/controller/api/RetailMemberController.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/controller/api/RetailMemberController.java @@ -9,16 +9,12 @@ import cn.hutool.json.JSONUtil; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.hzs.bonus.settle.IMemberSettleBonusApi; import com.hzs.common.core.annotation.RepeatSubmitSimple; -import com.hzs.common.core.config.HzsConfig; -import com.hzs.common.core.constant.SysConstants; +import com.hzs.common.core.config.BdConfig; import com.hzs.common.core.constant.msg.AreaConstants; -import com.hzs.common.core.domain.R; import com.hzs.common.core.enums.*; -import com.hzs.common.core.utils.BoxProductUtil; import com.hzs.common.core.web.controller.BaseController; import com.hzs.common.core.web.domain.AjaxResult; import com.hzs.common.core.web.page.TableDataInfo; -import com.hzs.common.domain.member.bonus.CuMemberRetail; import com.hzs.common.domain.member.ext.CuMemberExt; import com.hzs.common.domain.retail.member.CuMemberRetailRegion; import com.hzs.common.domain.retail.member.ext.CuMemberRetailRegionExt; @@ -262,7 +258,7 @@ public class RetailMemberController extends BaseController { */ @GetMapping("/region-tree") public AjaxResult regionTree() { - if (EEnv.TEST.getValue().equals(HzsConfig.getEnv()) && SecurityUtils.getUserId().equals(615423L)) { + if (EEnv.TEST.getValue().equals(BdConfig.getEnv()) && SecurityUtils.getUserId().equals(615423L)) { // 测试环境,指定账号,返回收益区域为空 return AjaxResult.success(); } diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/service/impl/CuMemberRetailRegionServiceImpl.java b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/service/impl/CuMemberRetailRegionServiceImpl.java index 8544dbce..21489c9f 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/service/impl/CuMemberRetailRegionServiceImpl.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/service/impl/CuMemberRetailRegionServiceImpl.java @@ -3,12 +3,10 @@ package com.hzs.retail.member.service.impl; import cn.hutool.core.collection.CollectionUtil; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.hzs.common.core.config.HzsConfig; import com.hzs.common.core.constant.*; import com.hzs.common.core.enums.*; import com.hzs.common.core.exception.ServiceException; import com.hzs.common.core.service.RedisService; -import com.hzs.common.core.utils.DateUtils; import com.hzs.common.domain.retail.member.CuMemberRetailRegion; import com.hzs.common.domain.retail.member.ext.CuMemberRetailRegionExt; import com.hzs.common.domain.system.base.BdArea; @@ -16,14 +14,12 @@ import com.hzs.retail.member.mapper.CuMemberRetailRegionMapper; import com.hzs.retail.member.param.RetailMemberRegionParam; import com.hzs.retail.member.service.ICuMemberRetailAchieveService; import com.hzs.retail.member.service.ICuMemberRetailRegionService; -import com.hzs.retail.member.vo.CuMemberRetailAchieveVO; import com.hzs.retail.member.vo.UnboundAreaVO; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.math.BigDecimal; import java.util.Date; import java.util.List; diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/controller/api/ApiRetailOrderController.java b/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/controller/api/ApiRetailOrderController.java index 4ccc5707..6a5328a4 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/controller/api/ApiRetailOrderController.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/controller/api/ApiRetailOrderController.java @@ -3,17 +3,13 @@ package com.hzs.retail.sale.controller.api; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollectionUtil; import com.hzs.common.core.annotation.RepeatSubmit; -import com.hzs.common.core.config.HzsConfig; +import com.hzs.common.core.config.BdConfig; import com.hzs.common.core.constant.CacheConstants; -import com.hzs.common.core.constant.SysConstants; import com.hzs.common.core.domain.R; -import com.hzs.common.core.enums.EEnv; import com.hzs.common.core.enums.EGrade; import com.hzs.common.core.enums.ESpecialArea; -import com.hzs.common.core.enums.EYesNo; import com.hzs.common.core.exception.ServiceException; import com.hzs.common.core.service.RedisService; -import com.hzs.common.core.utils.DateUtils; import com.hzs.common.core.utils.StringUtils; import com.hzs.common.core.web.domain.AjaxResult; import com.hzs.common.domain.member.base.CuMember; @@ -42,7 +38,6 @@ import org.springframework.web.bind.annotation.*; import javax.validation.Valid; import java.math.BigDecimal; import java.util.ArrayList; -import java.util.Date; import java.util.List; import java.util.Map; @@ -317,6 +312,7 @@ public class ApiRetailOrderController { .phone(newMember.getPhone()) .loginPassword(newMember.getLoginPassword()) .payPassword(newMember.getPayPassword()) + .urlAddress(BdConfig.getPc()) .build()); } diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/vo/RetailOrderVO.java b/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/vo/RetailOrderVO.java index 6c7a7457..a6b3e3c8 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/vo/RetailOrderVO.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/vo/RetailOrderVO.java @@ -8,11 +8,7 @@ import lombok.NoArgsConstructor; import java.io.Serializable; /** - * @Description: 新零售订单返回VO - * @Author: jiang chao - * @Time: 2024/12/12 16:38 - * @Classname: RetailOrderVO - * @PackageName: com.hzs.retail.sale.vo + * 新零售订单返回VO */ @Builder @AllArgsConstructor @@ -47,4 +43,9 @@ public class RetailOrderVO implements Serializable { */ private String payPassword; + /** + * 登录网址 + */ + private String urlAddress; + } diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/controller/ParentOrderController.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/controller/ParentOrderController.java index c0d28d07..18753424 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/controller/ParentOrderController.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/controller/ParentOrderController.java @@ -2,7 +2,7 @@ package com.hzs.sale.order.controller; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollectionUtil; -import com.hzs.common.core.config.HzsConfig; +import com.hzs.common.core.config.BdConfig; import com.hzs.common.core.constant.CacheConstants; import com.hzs.common.core.constant.CountryConstants; import com.hzs.common.core.constant.HttpStatus; @@ -20,12 +20,9 @@ import com.hzs.common.domain.member.account.CuMemberAccount; import com.hzs.common.domain.member.base.CuMember; import com.hzs.common.domain.member.ext.CuMemberAccountExt; import com.hzs.common.domain.member.ext.CuMemberExt; -import com.hzs.common.domain.sale.ext.SaOrderExt; import com.hzs.common.domain.sale.order.SaOrder; -import com.hzs.common.domain.sale.order.SaOrderItems; import com.hzs.common.domain.scm.ic.IcAvailableNum; import com.hzs.common.domain.scm.ic.ext.IcAvailableNumExt; -import com.hzs.common.domain.scm.pub.ScmItemSpecs; import com.hzs.common.domain.system.base.BdStorehouse; import com.hzs.common.security.utils.SecurityUtils; import com.hzs.common.util.TransactionUtils; @@ -52,13 +49,6 @@ import org.springframework.web.bind.annotation.RequestBody; import java.math.BigDecimal; import java.util.*; -/** - * @Description: - * @Author: sui q - * @Time: 2022/8/30 8:42 - * @Classname: ParentOrderController - * @PackageName: com.hzs.sale.order.controller - */ @Slf4j public abstract class ParentOrderController extends BaseController { @@ -391,7 +381,7 @@ public abstract class ParentOrderController extends BaseController { **/ protected String validateAvailableNum(OrderParam orderParam, String orderCode) { // 验证是否控制进销存 - if (EYesNo.NO.getIntValue() == HzsConfig.getEnable()) { + if (EYesNo.NO.getIntValue() == BdConfig.getEnable()) { return null; } BdStorehouse bdStorehouse; diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/SaOrderServiceImpl.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/SaOrderServiceImpl.java index 15b3741e..d8edf030 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/SaOrderServiceImpl.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/SaOrderServiceImpl.java @@ -11,7 +11,7 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.hzs.activity.pick.service.IAcRetailPickService; -import com.hzs.common.core.config.HzsConfig; +import com.hzs.common.core.config.BdConfig; import com.hzs.common.core.constant.*; import com.hzs.common.core.constant.msg.ConfigMsgConstants; import com.hzs.common.core.constant.msg.MemberMsgConstants; @@ -63,7 +63,6 @@ import com.hzs.sale.order.param.*; import com.hzs.sale.order.service.*; import com.hzs.sale.order.vo.*; import com.hzs.sale.product.service.IBdProductExtendService; -import com.hzs.sale.product.service.IBdProductService; import com.hzs.sale.wares.service.*; import com.hzs.scm.pub.IScmBillServiceApi; import com.hzs.system.base.IAreaServiceApi; @@ -151,8 +150,6 @@ public class SaOrderServiceImpl extends ServiceImpl impl @Autowired private UserTokenService userTokenService; @Autowired - private IBdProductService iBdProductService; - @Autowired private IBdProductExtendService iBdProductExtendService; @Autowired private RabbitTemplate rabbitTemplate; @@ -820,7 +817,7 @@ public class SaOrderServiceImpl extends ServiceImpl impl @Override public void convertAvailableNumMsg(List availableNumList) { - if (EYesNo.NO.getIntValue() == HzsConfig.getEnable()) { + if (EYesNo.NO.getIntValue() == BdConfig.getEnable()) { return; } log.info("生产活动消息,activity.exchange:{}", JSONUtil.toJsonStr(availableNumList)); @@ -1838,7 +1835,7 @@ public class SaOrderServiceImpl extends ServiceImpl impl @Override public String validateAvailableNum(OrderParam orderParam, String orderCode) { - if (EYesNo.NO.getIntValue() == HzsConfig.getEnable()) { + if (EYesNo.NO.getIntValue() == BdConfig.getEnable()) { return null; } BdStorehouse bdStorehouse; @@ -2119,7 +2116,7 @@ public class SaOrderServiceImpl extends ServiceImpl impl @Override public Boolean checkPreSalesQuantity(OrderParam orderParam) { // 开关控制是否处理 - if (EYesNo.NO.getIntValue() == HzsConfig.getEnable()) { + if (EYesNo.NO.getIntValue() == BdConfig.getEnable()) { return true; } @@ -2158,7 +2155,7 @@ public class SaOrderServiceImpl extends ServiceImpl impl @Transactional(rollbackFor = Exception.class) public Boolean reducePreSalesQuantity(String orderCode, Integer specialArea) { // 开关控制是否处理 - if (EYesNo.NO.getIntValue() == HzsConfig.getEnable()) { + if (EYesNo.NO.getIntValue() == BdConfig.getEnable()) { return true; } diff --git a/bd-common/bd-common-aop/src/main/java/com/hzs/common/core/aspect/RepeatSubmitAspectAdvice.java b/bd-common/bd-common-aop/src/main/java/com/hzs/common/core/aspect/RepeatSubmitAspectAdvice.java index ce8f308a..b66f8318 100644 --- a/bd-common/bd-common-aop/src/main/java/com/hzs/common/core/aspect/RepeatSubmitAspectAdvice.java +++ b/bd-common/bd-common-aop/src/main/java/com/hzs/common/core/aspect/RepeatSubmitAspectAdvice.java @@ -1,7 +1,7 @@ package com.hzs.common.core.aspect; import com.hzs.common.core.annotation.RepeatSubmit; -import com.hzs.common.core.config.HzsConfig; +import com.hzs.common.core.config.BdConfig; import com.hzs.common.core.constant.CacheToolsConstants; import com.hzs.common.core.constant.HttpStatus; import com.hzs.common.core.constant.MemberFieldConstants; @@ -53,7 +53,7 @@ public class RepeatSubmitAspectAdvice { request.getHeader(MemberFieldConstants.TOKEN); try { - if (EEnv.DEV.getValue().equals(HzsConfig.getEnv())) { + if (EEnv.DEV.getValue().equals(BdConfig.getEnv())) { // 本地研发环境,不做拦截处理 return joinPoint.proceed(); } diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/config/HzsConfig.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/config/BdConfig.java similarity index 80% rename from bd-common/bd-common-core/src/main/java/com/hzs/common/core/config/HzsConfig.java rename to bd-common/bd-common-core/src/main/java/com/hzs/common/core/config/BdConfig.java index a144f99d..06279ca0 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/config/HzsConfig.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/config/BdConfig.java @@ -8,17 +8,17 @@ import org.springframework.stereotype.Component; */ @Component @ConfigurationProperties(prefix = "bd") -public class HzsConfig { +public class BdConfig { /** * 当前环境 */ private static String env; -// /** -// * PC地址 -// */ -// private static String pc; + /** + * PC地址 + */ + private static String pc; // /** // * 公众号地址 // */ @@ -39,17 +39,17 @@ public class HzsConfig { } public void setEnv(String env) { - HzsConfig.env = env; + BdConfig.env = env; + } + + public static String getPc() { + return pc; + } + + public void setPc(String pc) { + BdConfig.pc = pc; } -// public static String getPc() { -// return pc; -// } -// -// public void setPc(String pc) { -// HzsConfig.pc = pc; -// } -// // public static String getGzh() { // return gzh; // } @@ -79,6 +79,6 @@ public class HzsConfig { } public void setEnable(Integer enable) { - HzsConfig.enable = enable; + BdConfig.enable = enable; } } From e8bba0ae805cea898a01ed9a3e7ae2ea47ef6ea2 Mon Sep 17 00:00:00 2001 From: cabbage <281119120@qq.com> Date: Wed, 11 Jun 2025 16:25:55 +0800 Subject: [PATCH 8/9] =?UTF-8?q?##=20=E9=97=A8=E7=A5=A8=E4=BB=B7=E6=A0=BC?= =?UTF-8?q?=E6=98=BE=E7=A4=BA=EF=BC=88169=EF=BC=89=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/api/ApiSaTicketController.java | 51 ++++++------------- .../com/hzs/sale/ticket/vo/SaTicketVO.java | 17 +++---- 2 files changed, 22 insertions(+), 46 deletions(-) diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/ticket/controller/api/ApiSaTicketController.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/ticket/controller/api/ApiSaTicketController.java index 4462c442..22a52f1e 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/ticket/controller/api/ApiSaTicketController.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/ticket/controller/api/ApiSaTicketController.java @@ -36,9 +36,6 @@ import java.util.List; /** * 门票主表 前端控制器 - * - * @author hzs - * @since 2025-01-09 */ @RestController @RequestMapping("/api/ticket") @@ -52,11 +49,9 @@ public class ApiSaTicketController extends ParentOrderController { private IAcTicketService acTicketService; /** + * 支付购买订单 + * * @param orderParam 订单参数 - * @Description: 支付购买订单 - * @return: AjaxResult - * @Author: sui q - * @Date: 2022/8/27 16:47 */ @RepeatSubmitSimple @PostMapping("/pay-ticket") @@ -113,15 +108,13 @@ public class ApiSaTicketController extends ParentOrderController { } /** + * 支付购买订单 + * * @param orderParam 订单参数 - * @Description: 支付购买订单 - * @return: AjaxResult - * @Author: sui q - * @Date: 2022/8/27 16:47 */ @PostMapping("/cancel-pay-ticket") public AjaxResult cancelPaySaTicket(@RequestBody OrderParam orderParam) { - if(orderParam.getOrderCode() == null ) { + if (orderParam.getOrderCode() == null) { return AjaxResult.error(TransactionUtils.getContent(MemberMsgConstants.REQUIRED_NOT_EMPTY)); } // 查询门票 @@ -134,11 +127,9 @@ public class ApiSaTicketController extends ParentOrderController { } /** + * 支付购买订单 + * * @param orderParam 订单参数 - * @Description: 支付购买订单 - * @return: AjaxResult - * @Author: sui q - * @Date: 2022/8/27 16:47 */ @PostMapping("/pay-online") public AjaxResult paySaTicketOnline(@RequestBody OrderParam orderParam) { @@ -174,11 +165,9 @@ public class ApiSaTicketController extends ParentOrderController { } /** + * 支付购买订单 + * * @param orderParam 订单参数 - * @Description: 支付购买订单 - * @return: AjaxResult - * @Author: sui q - * @Date: 2022/8/27 16:47 */ @PostMapping("/pay-back") public AjaxResult payBackSaTicketOnline(@RequestBody OrderParam orderParam) { @@ -187,10 +176,8 @@ public class ApiSaTicketController extends ParentOrderController { } /** - * @description: 会员前台查询门票活动列表 - * @param: [acTicket] - * @return: com.hzs.common.core.web.page.TableDataInfo - **/ + * 会员前台查询门票活动列表 + */ @GetMapping("/query") public TableDataInfo querySaTick() { SaTicketParam saTicketParam = SaTicketParam.builder() @@ -225,11 +212,9 @@ public class ApiSaTicketController extends ParentOrderController { } /** + * 支付购买订单 + * * @param ticketParam 订单参数 - * @Description: 支付购买订单 - * @return: AjaxResult - * @Author: sui q - * @Date: 2022/8/27 16:47 */ @PostMapping("/update-ticket") public AjaxResult update(@RequestBody BuyTicketParam ticketParam) { @@ -251,9 +236,7 @@ public class ApiSaTicketController extends ParentOrderController { } /** - * @description: 会员前台查询门票活动列表 - * @param: [acTicket] - * @return: com.hzs.common.core.web.page.TableDataInfo + * 会员前台查询门票活动列表 **/ @GetMapping("/query-ac") public TableDataInfo queryAcTick() { @@ -267,11 +250,7 @@ public class ApiSaTicketController extends ParentOrderController { } /** - * @param fieldList 需要验证的字段 - * @Description: 验证字段是否必输 - * @return: boolean - * @Author: sui q - * @Date: 2022/8/29 11:13 + * 验证字段是否必输 */ private boolean validateFieldNotNull(BuyTicketParam buyTicketParam, List fieldList) { return fieldList.stream().anyMatch(field -> { diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/ticket/vo/SaTicketVO.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/ticket/vo/SaTicketVO.java index 0157f89e..364d3c07 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/ticket/vo/SaTicketVO.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/ticket/vo/SaTicketVO.java @@ -1,7 +1,7 @@ package com.hzs.sale.ticket.vo; -import com.baomidou.mybatisplus.annotation.TableField; import com.fasterxml.jackson.annotation.JsonFormat; +import com.hzs.common.core.annotation.BigDecimalFormat; import com.hzs.common.core.annotation.Excel; import com.hzs.common.core.annotation.Transaction; import com.hzs.common.core.constant.EnumsPrefixConstants; @@ -15,12 +15,7 @@ import java.math.BigDecimal; import java.util.Date; /** - * @description: 返回到前台页面 - * @author: sui q - * @time: 2025/1/10 13:36 - * @classname: SaTicketVO - * @package_name: com.hzs.sale.ticket.vo - * version 1.0.0 + * 返回到前台页面 */ @Data @Builder @@ -51,13 +46,13 @@ public class SaTicketVO implements Serializable { * 活动开始时间 */ @JsonFormat(pattern = "yyyy-MM-dd") - @Excel(name = "开始时间",dateFormat = "yyyy-MM-dd") + @Excel(name = "开始时间", dateFormat = "yyyy-MM-dd") private Date actStartDate; /** * 活动结束时间 */ - @Excel(name = "结束时间",dateFormat = "yyyy-MM-dd") + @Excel(name = "结束时间", dateFormat = "yyyy-MM-dd") @JsonFormat(pattern = "yyyy-MM-dd") private Date actEndDate; @@ -70,12 +65,14 @@ public class SaTicketVO implements Serializable { /** * 订单金额 */ + @BigDecimalFormat @Excel(name = "订单金额") private BigDecimal orderAmount; /** * 单价 */ + @BigDecimalFormat @Excel(name = "单价") private BigDecimal price; @@ -144,7 +141,7 @@ public class SaTicketVO implements Serializable { /** * 支付时间 */ - @Excel(name = "支付时间",dateFormat = "yyyy-MM-dd HH:mm:ss") + @Excel(name = "支付时间", dateFormat = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date creationTime; From 68827b97f2871bdfe99de0e555f8ab1df413ec6c Mon Sep 17 00:00:00 2001 From: cabbage <281119120@qq.com> Date: Wed, 11 Jun 2025 16:28:57 +0800 Subject: [PATCH 9/9] =?UTF-8?q?##=20=E6=92=A4=E5=8D=95=E6=BF=80=E6=B4=BB?= =?UTF-8?q?=E5=A4=84=E7=90=86=EF=BC=88168=EF=BC=89=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/SaOrderServiceImpl.java | 24 ++++++++----------- .../mapper/sale/order/SaOrderMapper.xml | 2 +- 2 files changed, 11 insertions(+), 15 deletions(-) diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/SaOrderServiceImpl.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/SaOrderServiceImpl.java index d8edf030..8a16b38e 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/SaOrderServiceImpl.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/SaOrderServiceImpl.java @@ -170,17 +170,12 @@ public class SaOrderServiceImpl extends ServiceImpl impl private IOrderBusinessService orderBusinessService; @Autowired private ISaOrderChargeLogService saOrderChargeLogService; - + @Autowired private RedisService redisService; @Autowired private IBdWaresDetailService bdWaresDetailService; - @Autowired - public void setRedisService(RedisService redisService) { - this.redisService = redisService; - } - @Override public List queryMemberExtByCondition(CuMember cuMember) { return memberServiceApi.getMemberInfo(cuMember).getData(); @@ -2529,14 +2524,15 @@ public class SaOrderServiceImpl extends ServiceImpl impl } else if (EOrderType.RETAIL_REPURCHASE.getValue() == saOrderExt.getOrderType()) { // 复购订单存在盒数商品撤单,需要处理降级操作 if (saOrderExt.getBoxNum() > 0) { - Date firstDate = baseMapper.getFirstPayTime(cuMember.getPkId()); - if (null == firstDate) { - // 盒数商品订单最早的时间为空,则会员未激活 - cuMember.setPayTime(null); - cuMember.setPayStatus(EPayStatus.UNPAID.getValue()); - cuMember.setIsActivate(EYesNo.NO.getIntValue()); - saOrderExt.setUpdateFlag(EYesNo.YES.getIntValue()); - } + // TODO 目前只有注册、升级才能激活,复购不进行处理 +// Date firstDate = baseMapper.getFirstPayTime(cuMember.getPkId()); +// if (null == firstDate) { +// // 盒数商品订单最早的时间为空,则会员未激活 +// cuMember.setPayTime(null); +// cuMember.setPayStatus(EPayStatus.UNPAID.getValue()); +// cuMember.setIsActivate(EYesNo.NO.getIntValue()); +// saOrderExt.setUpdateFlag(EYesNo.YES.getIntValue()); +// } // TODO 恢复升级专区,复购专区不需要处理等级问题 // // 如果复购订单后面还有升级订单,不需要处理等级问题; 复购订单后面没有升级订单,走新逻辑校验 diff --git a/bd-business/bd-business-sale/src/main/resources/mapper/sale/order/SaOrderMapper.xml b/bd-business/bd-business-sale/src/main/resources/mapper/sale/order/SaOrderMapper.xml index 62170638..9675c338 100644 --- a/bd-business/bd-business-sale/src/main/resources/mapper/sale/order/SaOrderMapper.xml +++ b/bd-business/bd-business-sale/src/main/resources/mapper/sale/order/SaOrderMapper.xml @@ -1543,7 +1543,7 @@ where so.del_flag = 0 and so.order_status = 1 and so.pk_member = #{pkMember} - and so.order_type in (41, 42, 43) + and so.order_type in (41, 42) and so.box_num != 0