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 7a56e2db..da0679ec 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 @@ -282,22 +282,13 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { CuMemberRetailRangeExt sourceMemberRangeExt = memberRangeExtMap.get(saOrderExt.getPkMember()); // 推荐人 long pkParent = sourceMemberRangeExt.getPkParent(); + // 2025.08.21 需要修改:累计升级制,按订单金额以及等级对应比例拿直推级差 // 订单金额 BigDecimal orderAmount = saOrderExt.getOrderAmount(); -// // TODO 累计升级,此处订单可能没有等级值 -// if (null != saOrderExt.getPkGrade()) { -// // 订单存在升级记录信息 -// // 订单等级值 -// Integer orderGradeValue = gradeIdMap.get(saOrderExt.getPkGrade()).getGradeValue(); -// } else { -// -// } - - - Integer orderGradeValue = gradeIdMap.get(saOrderExt.getPkGrade()).getGradeValue(); - - - + if (null == orderAmount || orderAmount.compareTo(BigDecimal.ZERO) == 0) { + log.warn("订单 {} 金额为0", saOrderExt.getOrderCode()); + return memberBonusRangeList; + } // 前一个会员等级 int beforeGradeValue = 0; @@ -311,7 +302,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { if (beforeGradeValue == EGrade.COMPANY.getValue()) { break; } - // 推荐人 + // 推荐人 - 当前处理会员 CuMemberRetailRangeExt targetMemberRangeExt = memberRangeExtMap.get(pkParent); if (null == targetMemberRangeExt) { break; @@ -329,248 +320,72 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { } // 当前会员等级值 int targetGradeValue = targetMemberRangeExt.getGradeValue(); - // 直推级差收益 BigDecimal rangeBonusIncome = BigDecimal.ZERO; - if (EGrade.HAI_FAN.getValue() == orderGradeValue) { - // 订单等级是会员、VIP - if (targetGradeValue > beforeGradeValue) { - // 当前会员等级大于上一个会员等级 - if (EGrade.HAI_FAN.getValue() == targetGradeValue) { - // V1 推拿 30 - rangeBonusIncome = RetailConstants.V1_V1; - // 前面累计的奖金 - totalBonus = RetailConstants.V1_V1; - } else if (EGrade.YOU_KE.getValue() == targetGradeValue) { - // V2 推拿 40,或者减去之前累计 - rangeBonusIncome = RetailConstants.V2_V1.subtract(totalBonus); - // 前面累计的奖金 - totalBonus = RetailConstants.V2_V1; - } else if (EGrade.MAKER.getValue() == targetGradeValue) { - // V3 推拿 50,或者减去之前累计 - rangeBonusIncome = RetailConstants.V3_V1.subtract(totalBonus); - // 前面累计的奖金 - totalBonus = RetailConstants.V3_V1; - } else if (EGrade.VIP.getValue() == targetGradeValue) { - // V4 推拿 100,或者减去之前累计 - rangeBonusIncome = RetailConstants.V4_V1.subtract(totalBonus); - // 前面累计的奖金 - totalBonus = RetailConstants.V4_V1; - } else if (EGrade.S_VIP.getValue() == targetGradeValue) { - // V5 推拿 104,或者减去之前累计 - rangeBonusIncome = RetailConstants.V5_V1.subtract(totalBonus); - // 前面累计的奖金 - totalBonus = RetailConstants.V5_V1; - } else if (EGrade.REGION.getValue() == targetGradeValue - || EGrade.DIRECTOR.getValue() == targetGradeValue) { - // V6、V7 推拿 110 ,或者减去之前累计 - // 前一等级不是V6、V7 - rangeBonusIncome = RetailConstants.V6_V7_V1.subtract(totalBonus); - // 前面累计的奖金 - totalBonus = RetailConstants.V6_V7_V1; - } else if (EGrade.COMPANY.getValue() == targetGradeValue) { - // V8 推拿 120,或者减去之前累计 - rangeBonusIncome = RetailConstants.V8_V1.subtract(totalBonus); - // 前面累计的奖金 - totalBonus = RetailConstants.V8_V1; - } - // 前一级会员等级 - beforeGradeValue = targetGradeValue; - } - } else if (EGrade.YOU_KE.getValue() == orderGradeValue) { - // 订单等级是VIP - if (targetGradeValue > beforeGradeValue) { - // 当前会员等级大于上一个会员等级 - if (EGrade.HAI_FAN.getValue() == targetGradeValue) { - // V1 推拿 300 - rangeBonusIncome = RetailConstants.V1_V2; - // 前面累计的奖金 - totalBonus = RetailConstants.V1_V2; - } else if (EGrade.YOU_KE.getValue() == targetGradeValue) { - // V2 推拿 400,或者减去之前累计 - rangeBonusIncome = RetailConstants.V2_V2.subtract(totalBonus); - // 前面累计的奖金 - totalBonus = RetailConstants.V2_V2; - } else if (EGrade.MAKER.getValue() == targetGradeValue) { - // V3 推拿 500,或者减去之前累计 - rangeBonusIncome = RetailConstants.V3_V2.subtract(totalBonus); - // 前面累计的奖金 - totalBonus = RetailConstants.V3_V2; - } else if (EGrade.VIP.getValue() == targetGradeValue) { - // V4 推拿 1000,或者减去之前累计 - rangeBonusIncome = RetailConstants.V4_V2.subtract(totalBonus); - // 前面累计的奖金 - totalBonus = RetailConstants.V4_V2; - } else if (EGrade.S_VIP.getValue() == targetGradeValue) { - // V5 推拿 1040,或者减去之前累计 - rangeBonusIncome = RetailConstants.V5_V2.subtract(totalBonus); - // 前面累计的奖金 - totalBonus = RetailConstants.V5_V2; - } else if (EGrade.REGION.getValue() == targetGradeValue - || EGrade.DIRECTOR.getValue() == targetGradeValue) { - // V6、V7 推拿 1100,或者减去之前累计 - rangeBonusIncome = RetailConstants.V6_V7_V2.subtract(totalBonus); - // 前面累计的奖金 - totalBonus = RetailConstants.V6_V7_V2; - } else if (EGrade.COMPANY.getValue() == targetGradeValue) { - // V8 推拿 1200,或者减去之前累计 - rangeBonusIncome = RetailConstants.V8_V2.subtract(totalBonus); - // 前面累计的奖金 - totalBonus = RetailConstants.V8_V2; - } - // 前一级会员等级 - beforeGradeValue = targetGradeValue; - } - } else if (EGrade.MAKER.getValue() == orderGradeValue) { - // 订单是合伙人 - if (targetGradeValue > beforeGradeValue) { - // 当前等级大于之前等级 - if (EGrade.HAI_FAN.getValue() == targetGradeValue) { - // V1 推拿 600 - rangeBonusIncome = RetailConstants.V1_V3; - // 前面累计的奖金 - totalBonus = RetailConstants.V1_V3; - } else if (EGrade.YOU_KE.getValue() == targetGradeValue) { - // V2 推拿 800,或者减去之前累计 - rangeBonusIncome = RetailConstants.V2_V3.subtract(totalBonus); - // 前面累计的奖金 - totalBonus = RetailConstants.V2_V3; - } else if (EGrade.MAKER.getValue() == targetGradeValue) { - // V3 推拿 1000,或者减去之前累计 - rangeBonusIncome = RetailConstants.V3_V3_1.subtract(totalBonus); - // 前面累计的奖金 - totalBonus = RetailConstants.V3_V3_1; - } else if (EGrade.VIP.getValue() == targetGradeValue) { - // V4 推拿 2000,或者减去之前累计 - rangeBonusIncome = RetailConstants.V4_V3.subtract(totalBonus); - // 前面累计的奖金 - totalBonus = RetailConstants.V4_V3; - } else if (EGrade.S_VIP.getValue() == targetGradeValue) { - // V5 推拿 2080,或者减去之前累计 - rangeBonusIncome = RetailConstants.V5_V3.subtract(totalBonus); - // 前面累计的奖金 - totalBonus = RetailConstants.V5_V3; - } else if (EGrade.REGION.getValue() == targetGradeValue - || EGrade.DIRECTOR.getValue() == targetGradeValue) { - // V6、V7 推拿 2200,或者减去之前累计 - rangeBonusIncome = RetailConstants.V6_V7_V3.subtract(totalBonus); - // 前面累计的奖金 - totalBonus = RetailConstants.V6_V7_V3; - } else if (EGrade.COMPANY.getValue() == targetGradeValue) { - // V8 推拿 2400,或者减去之前累计 - rangeBonusIncome = RetailConstants.V8_V3.subtract(totalBonus); - // 前面累计的奖金 - totalBonus = RetailConstants.V8_V3; - } - // 前一级会员等级 - beforeGradeValue = targetGradeValue; - } else if (EGrade.MAKER.getValue() == beforeGradeValue - && EGrade.MAKER.getValue() == targetGradeValue) { - // 之前和现在都是合伙人,处理平级 - if (v3Count == 1) { - // V3第一平级 推拿 1200,或者减去之前累计 - rangeBonusIncome = RetailConstants.V3_V3_2.subtract(totalBonus); - // 前面累计的奖金 - totalBonus = RetailConstants.V3_V3_2; - v3Count++; - } else if (v3Count == 2) { - // V3第二平级 推拿 1300,或者减去之前累计 - rangeBonusIncome = RetailConstants.V3_V3_3.subtract(totalBonus); - // 前面累计的奖金 - totalBonus = RetailConstants.V3_V3_3; - v3Count++; - } - } - } else if (EGrade.VIP.getValue() == orderGradeValue) { - // 订单是博羚店主 - if (targetGradeValue > beforeGradeValue) { - // 当前等级大于之前等级 - if (EGrade.HAI_FAN.getValue() == targetGradeValue) { - // V1 推拿 1200 - rangeBonusIncome = RetailConstants.V1_V4; - // 前面累计的奖金 - totalBonus = RetailConstants.V1_V4; - } else if (EGrade.YOU_KE.getValue() == targetGradeValue) { - // V2 推拿 1600,或者减去之前累计 - rangeBonusIncome = RetailConstants.V2_V4.subtract(totalBonus); - // 前面累计的奖金 - totalBonus = RetailConstants.V2_V4; - } else if (EGrade.MAKER.getValue() == targetGradeValue) { - // V3 推拿 2000,或者减去之前累计 - rangeBonusIncome = RetailConstants.V3_V4_1.subtract(totalBonus); - // 前面累计的奖金 - totalBonus = RetailConstants.V3_V4_1; - } else if (EGrade.VIP.getValue() == targetGradeValue) { - // V4 推拿 4000,或者减去之前累计 - rangeBonusIncome = RetailConstants.V4_V4.subtract(totalBonus); - // 前面累计的奖金 - totalBonus = RetailConstants.V4_V4; - } else if (EGrade.S_VIP.getValue() == targetGradeValue) { - // V5 推拿 4160,或者减去之前累计 - rangeBonusIncome = RetailConstants.V5_V4.subtract(totalBonus); - // 前面累计的奖金 - totalBonus = RetailConstants.V5_V4; - } else if (EGrade.REGION.getValue() == targetGradeValue - || EGrade.DIRECTOR.getValue() == targetGradeValue) { - // V6、V7 推拿 4400,或者减去之前累计 - rangeBonusIncome = RetailConstants.V6_V7_V4.subtract(totalBonus); - // 前面累计的奖金 - totalBonus = RetailConstants.V6_V7_V4; - } else if (EGrade.COMPANY.getValue() == targetGradeValue) { - // V8 推拿 4800,或者减去之前累计 - rangeBonusIncome = RetailConstants.V8_V4.subtract(totalBonus); - // 前面累计的奖金 - totalBonus = RetailConstants.V8_V4; - } - // 前一级会员等级 - beforeGradeValue = targetGradeValue; - } else if (EGrade.MAKER.getValue() == beforeGradeValue - && EGrade.MAKER.getValue() == targetGradeValue) { - // 之前和现在都是合伙人,处理平级 - if (v3Count == 1) { - // V3第一平级 推拿 2400,或者减去之前累计 - rangeBonusIncome = RetailConstants.V3_V4_2.subtract(totalBonus); - // 前面累计的奖金 - totalBonus = RetailConstants.V3_V4_2; - v3Count++; - } else if (v3Count == 2) { - // V3第二平级 推拿 2600,或者减去之前累计 - rangeBonusIncome = RetailConstants.V3_V4_3.subtract(totalBonus); - // 前面累计的奖金 - totalBonus = RetailConstants.V3_V4_3; - v3Count++; - } - } - } else if (EGrade.REGION.getValue() == orderGradeValue) { - // 订单是区域代理 - if (targetGradeValue >= EGrade.VIP.getValue() && targetGradeValue > beforeGradeValue) { - // 博羚店主以上才有级差 并且 当前等级大于之前等级 - if (EGrade.VIP.getValue() == targetGradeValue) { - // 博羚店主 拿 50000 - rangeBonusIncome = RetailConstants.V4_V6.subtract(totalBonus); - // 前面累计的奖金 - totalBonus = RetailConstants.V4_V6; - } else if (EGrade.S_VIP.getValue() == targetGradeValue) { - // 高级店主 拿 52000,或者减去之前累计 - rangeBonusIncome = RetailConstants.V5_V6.subtract(totalBonus); - // 前面累计的奖金 - totalBonus = RetailConstants.V5_V6; - } else if (EGrade.REGION.getValue() == targetGradeValue - || EGrade.DIRECTOR.getValue() == targetGradeValue) { - // 区域代理、董事代理 拿 55000,或者减去之前累计 - rangeBonusIncome = RetailConstants.V6_V7_V6.subtract(totalBonus); - // 前面累计的奖金 - totalBonus = RetailConstants.V6_V7_V6; - } else if (EGrade.COMPANY.getValue() == targetGradeValue) { - // 总公司 拿 60000,或者减去之前累计 - rangeBonusIncome = RetailConstants.V8_V6.subtract(totalBonus); - // 前面累计的奖金 - totalBonus = RetailConstants.V8_V6; - } - // 前一级会员等级 - beforeGradeValue = targetGradeValue; + if (EGrade.HAI_FAN.getValue() == targetGradeValue && targetGradeValue > beforeGradeValue) { + // 推荐人是 会员 + rangeBonusIncome = orderAmount.multiply(RetailConstants.RECOMMEND_HAI_FAN).setScale(4, BigDecimal.ROUND_HALF_UP); + // 已经算完级差等级的累计奖金 + totalBonus = totalBonus.add(rangeBonusIncome); + // 前一级会员等级 + beforeGradeValue = targetGradeValue; + } else if (EGrade.YOU_KE.getValue() == targetGradeValue && targetGradeValue > beforeGradeValue) { + // 推荐人是 VIP + rangeBonusIncome = orderAmount.multiply(RetailConstants.RECOMMEND_YOU_KE).subtract(totalBonus).setScale(4, BigDecimal.ROUND_HALF_UP); + // 已经算完级差等级的累计奖金 + totalBonus = totalBonus.add(rangeBonusIncome); + // 前一级会员等级 + beforeGradeValue = targetGradeValue; + } else if (EGrade.MAKER.getValue() == targetGradeValue && targetGradeValue >= beforeGradeValue) { + // 推荐人是 合伙人 + if (v3Count == 1) { + rangeBonusIncome = orderAmount.multiply(RetailConstants.RECOMMEND_MAKER_1).subtract(totalBonus).setScale(4, BigDecimal.ROUND_HALF_UP); + } else if (v3Count == 2) { + rangeBonusIncome = orderAmount.multiply(RetailConstants.RECOMMEND_MAKER_2).subtract(totalBonus).setScale(4, BigDecimal.ROUND_HALF_UP); + } else if (v3Count == 3) { + rangeBonusIncome = orderAmount.multiply(RetailConstants.RECOMMEND_MAKER_3).subtract(totalBonus).setScale(4, BigDecimal.ROUND_HALF_UP); } + v3Count++; + // 已经算完级差等级的累计奖金 + totalBonus = totalBonus.add(rangeBonusIncome); + // 前一级会员等级 + beforeGradeValue = targetGradeValue; + } else if (EGrade.VIP.getValue() == targetGradeValue && targetGradeValue > beforeGradeValue) { + // 推荐人是 博羚店主 + rangeBonusIncome = orderAmount.multiply(RetailConstants.RECOMMEND_VIP).subtract(totalBonus).setScale(4, BigDecimal.ROUND_HALF_UP); + // 已经算完级差等级的累计奖金 + totalBonus = totalBonus.add(rangeBonusIncome); + // 前一级会员等级 + beforeGradeValue = targetGradeValue; + } else if (EGrade.S_VIP.getValue() == targetGradeValue && targetGradeValue > beforeGradeValue) { + // 推荐人是 高级店主 + rangeBonusIncome = orderAmount.multiply(RetailConstants.RECOMMEND_S_VIP).subtract(totalBonus).setScale(4, BigDecimal.ROUND_HALF_UP); + // 已经算完级差等级的累计奖金 + totalBonus = totalBonus.add(rangeBonusIncome); + // 前一级会员等级 + beforeGradeValue = targetGradeValue; + } else if (EGrade.REGION.getValue() == targetGradeValue && targetGradeValue > beforeGradeValue) { + // 推荐人是 区域代理 + rangeBonusIncome = orderAmount.multiply(RetailConstants.RECOMMEND_REGION).subtract(totalBonus).setScale(4, BigDecimal.ROUND_HALF_UP); + // 已经算完级差等级的累计奖金 + totalBonus = totalBonus.add(rangeBonusIncome); + // 前一级会员等级 + beforeGradeValue = targetGradeValue; + } else if (EGrade.DIRECTOR.getValue() == targetGradeValue && targetGradeValue > beforeGradeValue) { + // 推荐人是 董事代理 + rangeBonusIncome = orderAmount.multiply(RetailConstants.RECOMMEND_DIRECTOR).subtract(totalBonus).setScale(4, BigDecimal.ROUND_HALF_UP); + // 已经算完级差等级的累计奖金 + totalBonus = totalBonus.add(rangeBonusIncome); + // 前一级会员等级 + beforeGradeValue = targetGradeValue; + } else if (EGrade.COMPANY.getValue() == targetGradeValue && targetGradeValue > beforeGradeValue) { + // 推荐人是 总公司 + rangeBonusIncome = orderAmount.multiply(RetailConstants.RECOMMEND_COMPANY).subtract(totalBonus).setScale(4, BigDecimal.ROUND_HALF_UP); + // 已经算完级差等级的累计奖金 + totalBonus = totalBonus.add(rangeBonusIncome); + // 前一级会员等级 + beforeGradeValue = targetGradeValue; } if (rangeBonusIncome.compareTo(BigDecimal.ZERO) > 0) { @@ -737,7 +552,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { // 2025.08.13 添加 代理 级差收益,每1盒(4个产品)区域代理4元,董事代理4元,公司6元,总拨出14元 if ((EGrade.REGION.getValue() == targetMemberRangeExt.getGradeValue() - && EGrade.DIRECTOR.getValue() == targetMemberRangeExt.getGradeValue()) + || EGrade.DIRECTOR.getValue() == targetMemberRangeExt.getGradeValue()) && branch < 2) { // 等级是分公司 并且 发放次数小于2 this.calculateRetailRepurCompanyRangeBonus(sourceMemberRangeExt, targetMemberRangeExt, cuMemberBonusMap, bonusConfigDTO, @@ -830,6 +645,10 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { CuMemberRetailRangeExt targetMemberRangeExt = memberRangeExtMap.get(retailRegion.getPkMember()); if (ObjectUtil.isEmpty(targetMemberRangeExt)) { targetMemberRangeExt = cuMemberRetailRangeMapper.queryCuMemberRetailRangeByMemberId(rangeTableName, retailRegion.getPkMember()); + if (null == targetMemberRangeExt) { + // 配送区域对应的会员不存在了,直接跳过 + return memberBonusDetailList; + } memberRangeExtMap.put(retailRegion.getPkMember(), targetMemberRangeExt); } // 复购配送区域收益 diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/mapper/CuMemberMapper.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/mapper/CuMemberMapper.java index b707c32d..da165385 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/mapper/CuMemberMapper.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/mapper/CuMemberMapper.java @@ -608,12 +608,12 @@ public interface CuMemberMapper extends BaseMapper { CuMember getShopkeeperMember(@Param("pkMember") Long pkMember, @Param("gradeValue") Integer gradeValue); /** - * 查询高级店主 + * 查询会员等级 * * @param pkMember * @return */ - CuMember getGradeSvipMember(@Param("pkMember") Long pkMember); + CuMemberExt getGradeSvipMember(@Param("pkMember") Long pkMember, @Param("gradeValue") Integer gradeValue); /** * 查询会员直推大于博羚店主的注册、升级订单查询会员直推大于博羚店主的注册、升级订单 @@ -622,7 +622,21 @@ public interface CuMemberMapper extends BaseMapper { * @param orderCode * @return */ - SaOrder listRecommendVipOrder(@Param("pkMember") Long pkMember, @Param("orderCode") String orderCode); + SaOrder listRecommendVipOrder(@Param("pkMember") Long pkMember, @Param("orderCode") String orderCode, @Param("gradeValue") Integer gradeValue); + + + /** + * + */ + int getMemberCountWithGradeAndParent(@Param("parentId") Long parentId, @Param("gradeValue") Integer gradeValue); + + /** + * 查询业绩汇总 + * + * @param censusSummaryParam + * @return + */ + List queryDateBySummary(CensusSummaryParam censusSummaryParam); /** diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/provider/MemberServiceProvider.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/provider/MemberServiceProvider.java index 4ba53ee8..b0b58ee1 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/provider/MemberServiceProvider.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/provider/MemberServiceProvider.java @@ -106,7 +106,7 @@ public class MemberServiceProvider implements IMemberServiceApi { if (iCuMemberBusinessService.mergeRevokeMemberByRegisterOrder(pkApprove, memberList, saOrderMap, businessCommissionDTO)) { return R.ok(); } - return R.fail("会员信息处理失败"); + return R.fail("合并撤单会员信息处理失败"); } catch (Exception e) { log.error("mergeRevokeMemberByRegisterOrder error msg:{}", e.getMessage(), e); return R.fail(e.getMessage()); @@ -116,10 +116,13 @@ public class MemberServiceProvider implements IMemberServiceApi { @Override public R normalRevokeOrder(Long pkApprove, SaOrderExt saOrder, CuMember cuMember, BusinessCommissionDTO businessCommissionDTO) { try { - return R.ok(iCuMemberBusinessService.normalRevokeOrder(pkApprove, saOrder, cuMember, businessCommissionDTO)); + if (iCuMemberBusinessService.normalRevokeOrder(pkApprove, saOrder, cuMember, businessCommissionDTO)) { + return R.ok(); + } + return R.fail("其它撤单会员信息处理失败"); } catch (Exception e) { log.error("normalRevokeOrder error msg: {}", e.getMessage(), e); - return R.ok(false); + return R.fail(e.getMessage()); } } diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/ICuMemberService.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/ICuMemberService.java index a35abb6a..c7046466 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/ICuMemberService.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/ICuMemberService.java @@ -878,12 +878,12 @@ public interface ICuMemberService extends IService { CuMember getShopkeeperMember(Long pkMember, Integer gradeValue); /** - * 查询高级店主 + * 查询会员等级 * * @param pkMember * @return */ - CuMember getGradeSvipMember(Long pkMember); + CuMemberExt getGradeSvipMember(Long pkMember, Integer gradeValue); /** * 查询会员直推大于博羚店主的注册、升级订单查询会员直推大于博羚店主的注册、升级订单 @@ -892,7 +892,15 @@ public interface ICuMemberService extends IService { * @param orderCode * @return */ - SaOrder listRecommendVipOrder(Long pkMember, String orderCode); + SaOrder listRecommendVipOrder(Long pkMember, String orderCode, Integer gradeValue); + + /** + * 查询汇总 + * + * @param censusSummaryParam 表格名称 + * @return + */ + List selectCensusSummary(CensusSummaryParam censusSummaryParam, List days); /** * 查询汇总 diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberBusinessServiceImpl.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberBusinessServiceImpl.java index 27edfd3a..318fafcf 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberBusinessServiceImpl.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberBusinessServiceImpl.java @@ -618,7 +618,6 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService { updateWrapper.set(CuMember::getPkModified, saOrder.getPkModified()); updateWrapper.eq(CuMember::getPkId, member.getPkId()); iCuMemberService.update(updateWrapper); - // 删除会员注册表 LambdaUpdateWrapper updateWrapperRegister = new LambdaUpdateWrapper<>(); updateWrapperRegister.set(CuMemberRegister::getDelFlag, EDelFlag.DELETE.getValue()); @@ -853,6 +852,12 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService { SaOrderExt saOrder = saOrderMap.get(pkMember); // 删除等级 iCuMemberLevelService.deleteCuMemberLevelRecord(saOrder.getPkId(), pkApprove, currentDateTime); + // 删除会员区域 + iCuMemberRetailRegionService.update(Wrappers.lambdaUpdate() + .eq(CuMemberRetailRegion::getPkMember, saOrder.getPkMember()) + .set(CuMemberRetailRegion::getDelFlag, EDelFlag.DELETE.getValue()) + .set(CuMemberRetailRegion::getModifiedTime, currentDateTime) + ); // 回退奖衔,根据订单从 cu_member_awards查询 iCuMemberAwardsService.deleteCuMemberAwards(saOrder.getPkId(), pkApprove, currentDateTime); iCuMemberService.deleteCuMemberByPkMember(pkMember, pkApprove, currentDateTime); @@ -899,12 +904,26 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService { // 升级订单 // 回退等级 iCuMemberLevelService.deleteCuMemberLevelRecord(saOrder.getPkId(), pkApprove, currentDateTime); - // 删除会员区域 - iCuMemberRetailRegionService.update(Wrappers.lambdaUpdate() - .eq(CuMemberRetailRegion::getPkMember, saOrder.getPkMember()) - .set(CuMemberRetailRegion::getDelFlag, EDelFlag.DELETE.getValue()) - .set(CuMemberRetailRegion::getModifiedTime, currentDateTime) - ); + // 如果会员等级非代理,则需要删除会员区域 + GradeDTO gradeDTO = iGradeServiceApi.getGrade(cuMember.getPkSettleGrade()).getData(); + if (gradeDTO.getGradeValue() != EGrade.REGION.getValue() + && gradeDTO.getGradeValue() != EGrade.DIRECTOR.getValue()) { + // 删除会员区域选择 + iCuMemberRetailRegionService.update(Wrappers.lambdaUpdate() + .eq(CuMemberRetailRegion::getPkMember, saOrder.getPkMember()) + .eq(CuMemberRetailRegion::getBusinessType, 1) + .set(CuMemberRetailRegion::getDelFlag, EDelFlag.DELETE.getValue()) + .set(CuMemberRetailRegion::getModifiedTime, currentDateTime) + ); + // 更新会员配送中心为失效 + iCuMemberRetailRegionService.update(Wrappers.lambdaUpdate() + .eq(CuMemberRetailRegion::getPkMember, saOrder.getPkMember()) + .eq(CuMemberRetailRegion::getBusinessType, 2) + .set(CuMemberRetailRegion::getEffective, EYesNo.NO.getIntValue()) + .set(CuMemberRetailRegion::getEffectiveEndDate, DateUtils.getEndTime(null)) + .set(CuMemberRetailRegion::getModifiedTime, currentDateTime) + ); + } } // 更新会员标记,如果是则更新会员信息 @@ -1674,38 +1693,66 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService { memberLevelQuery.eq(CuMemberLevel::getUpType, EUpgradeType.AUTO_UPGRADE.getValue()); CuMemberLevel parentLevel = iCuMemberLevelService.getOne(memberLevelQuery); if (null != parentLevel) { - // 查询推荐人信息(必须是高级店主) - CuMember parentMember = iCuMemberService.getGradeSvipMember(parentLevel.getPkMember()); + // 查询推荐人及等级信息 + CuMemberExt parentMember = iCuMemberService.getGradeSvipMember(parentLevel.getPkMember(), null); if (null != parentMember) { - // 推荐是高级店主,查询直推博羚店主以上订单 - SaOrder parentOrder = iCuMemberService.listRecommendVipOrder(parentMember.getPkId(), saOrder.getOrderCode()); - if (null != parentOrder) { - // 存在其它博羚店主订单,重新处理升级记录 - CuMemberLevel parentNewLevel = BeanUtil.copyProperties(parentLevel, CuMemberLevel.class); - parentNewLevel.setPkId(null); - parentNewLevel.setPkOrder(parentOrder.getPkId()); - parentNewLevel.setUpgradeTime(parentOrder.getPayTime()); - parentNewLevel.setModifiedTime(parentOrder.getPayTime()); - parentNewLevel.setPkModified(parentOrder.getPkMember()); - iCuMemberLevelService.save(parentNewLevel); - } else { - // 不存在其它博羚店主订单,会员需要降级处理 - LambdaUpdateWrapper parentMemberUpdate = new LambdaUpdateWrapper<>(); - parentMemberUpdate.eq(CuMember::getPkId, parentMember.getPkId()); - parentMemberUpdate.set(CuMember::getPkSettleGrade, parentLevel.getOldLevel()); - parentMemberUpdate.set(CuMember::getModifiedTime, currentDateTime); - iCuMemberService.update(parentMemberUpdate); + SaOrder parentOrder = null; + if (parentMember.getGradeValue() == EGrade.DIRECTOR.getValue()) { + // 推荐人是董事代理,查询直推区域代理以上订单 + parentOrder = iCuMemberService.listRecommendVipOrder(parentMember.getPkId(), saOrder.getOrderCode(), EGrade.REGION.getValue()); + } else if (parentMember.getGradeValue() == EGrade.S_VIP.getValue()) { + // 推荐人是高级店主,查询直推博羚店主以上订单 + parentOrder = iCuMemberService.listRecommendVipOrder(parentMember.getPkId(), saOrder.getOrderCode(), EGrade.VIP.getValue()); } - // 删除原来升级记录 - LambdaUpdateWrapper updateMemberLevel = new LambdaUpdateWrapper<>(); - updateMemberLevel.eq(CuMemberLevel::getPkId, parentLevel.getPkId()); - updateMemberLevel.set(CuMemberLevel::getDelFlag, EDelFlag.DELETE.getValue()); - updateMemberLevel.set(CuMemberLevel::getModifiedTime, currentDateTime); - iCuMemberLevelService.update(updateMemberLevel); + this.handleParentLevelUpdate(parentOrder, parentLevel, parentMember, currentDateTime); } } } + } + private void handleParentLevelUpdate(SaOrder parentOrder, CuMemberLevel parentLevel, CuMemberExt parentMember, Date currentDateTime) { + if (null != parentOrder) { + // 存在其它博羚店主订单,重新处理升级记录 + CuMemberLevel parentNewLevel = BeanUtil.copyProperties(parentLevel, CuMemberLevel.class); + parentNewLevel.setPkId(null); + parentNewLevel.setPkOrder(parentOrder.getPkId()); + parentNewLevel.setUpgradeTime(parentOrder.getPayTime()); + parentNewLevel.setModifiedTime(parentOrder.getPayTime()); + parentNewLevel.setPkModified(parentOrder.getPkMember()); + iCuMemberLevelService.save(parentNewLevel); + } else { + // 不存在其它博羚店主订单,会员需要降级处理 + LambdaUpdateWrapper parentMemberUpdate = new LambdaUpdateWrapper<>(); + parentMemberUpdate.eq(CuMember::getPkId, parentMember.getPkId()); + parentMemberUpdate.set(CuMember::getPkSettleGrade, parentLevel.getOldLevel()); + parentMemberUpdate.set(CuMember::getModifiedTime, currentDateTime); + iCuMemberService.update(parentMemberUpdate); + } + // 删除原来升级记录 + LambdaUpdateWrapper updateMemberLevel = new LambdaUpdateWrapper<>(); + updateMemberLevel.eq(CuMemberLevel::getPkId, parentLevel.getPkId()); + updateMemberLevel.set(CuMemberLevel::getDelFlag, EDelFlag.DELETE.getValue()); + updateMemberLevel.set(CuMemberLevel::getModifiedTime, currentDateTime); + iCuMemberLevelService.update(updateMemberLevel); + } + + + /** + * 在线支付退款 + * + * @param saOrder + */ + private void handleOnlineRefund(SaOrderExt saOrder) { + R onlinePaymentR = itOnlinePaymentServiceApi.getOnlinePayment(saOrder.getOrderCode()); + if (ObjectUtil.isNotEmpty(onlinePaymentR)) { + TOnlinePayment onlinePayment = onlinePaymentR.getData(); + if (ObjectUtil.isNotEmpty(onlinePayment)) { + R result = itOnlinePaymentServiceApi.refund(saOrder.getOrderCode(), saOrder.getPkCreator()); + if (!result.isSuccess()) { + throw new ServiceException(result.getMsg()); + } + } + } } diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberServiceImpl.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberServiceImpl.java index 864319b3..9070417d 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberServiceImpl.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberServiceImpl.java @@ -3250,13 +3250,13 @@ public class CuMemberServiceImpl extends ServiceImpl i } @Override - public CuMember getGradeSvipMember(Long pkMember) { - return baseMapper.getGradeSvipMember(pkMember); + public CuMemberExt getGradeSvipMember(Long pkMember, Integer gradeValue) { + return baseMapper.getGradeSvipMember(pkMember, gradeValue); } @Override - public SaOrder listRecommendVipOrder(Long pkMember, String orderCode) { - return baseMapper.listRecommendVipOrder(pkMember, orderCode); + public SaOrder listRecommendVipOrder(Long pkMember, String orderCode, Integer gradeValue) { + return baseMapper.listRecommendVipOrder(pkMember, orderCode, gradeValue); } diff --git a/bd-business/bd-business-member/src/main/resources/mapper/member/base/CuMemberMapper.xml b/bd-business/bd-business-member/src/main/resources/mapper/member/base/CuMemberMapper.xml index fb54ee60..22a176b9 100644 --- a/bd-business/bd-business-member/src/main/resources/mapper/member/base/CuMemberMapper.xml +++ b/bd-business/bd-business-member/src/main/resources/mapper/member/base/CuMemberMapper.xml @@ -2382,16 +2382,18 @@ and bg.grade_value = #{gradeValue} - - + select cm.*, bg.grade_value gradeValue from cu_member cm left join bd_grade bg on bg.pk_id = cm.pk_settle_grade where cm.del_flag = 0 and cm.category = 0 and cm.pk_id = #{pkMember} - and bg.grade_value = 70 + @@ -2416,7 +2418,7 @@ and so.order_code != #{orderCode} - and bg.grade_value >= 60) so + and bg.grade_value >= #{gradeValue}) so where rownum = 1 + select bp.wms_code, + nvl(sum(tmp.quantity), 0) quantity, + to_char(wm_concat(bp.product_name)) product_name, + to_char(wm_concat(bp.product_code)) product_code + from bd_product bp + left join ( + select soi.pk_product, sum(soi.quantity) quantity + from sa_order so + left join sa_order_items soi + on soi.pk_order = so.pk_id + and soi.del_flag = 0 + where so.del_flag = 0 + and so.order_status = 1 + + and so.pay_time >= to_date(#{param.startTime}, 'yyyy-mm-dd') + + + and to_date(#{param.endTime} || ' 23:59:59', 'yyyy-mm-dd hh24:mi:ss') >= so.pay_time + + group by soi.pk_product + ) tmp + on tmp.pk_product = bp.pk_id + where bp.del_flag = 0 + + and bp.wms_code = #{param.wmsCode} + + + and bp.product_code = #{param.productCode} + + + and bp.product_name like '%' || #{param.productName} ||'%' + + group by bp.wms_code + order by quantity desc + + + + 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 4837a0d9..3bf343e7 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 @@ -98,6 +98,11 @@ public class ApiRetailOrderController { BdGrade bdGrade = iSaOrderService.calculateGrade(levelParam.getSpecialArea(), convertShoppingCarToSku(SecurityUtils.getUserId(), levelParam.getShopList()), null, levelParam.getUpgradeMember(), SecurityUtils.getSystemType(), EYesNo.NO.getIntValue()); if (null != bdGrade) { + if (ESpecialArea.RETAIL_REGISTER.getValue() == levelParam.getSpecialArea()) { + // 注册专区,校验会员等级推荐范围 + iRetailOrderService.checkMemberRegisterScope(iMemberServiceApi.getMember(SecurityUtils.getUserId()).getData(), bdGrade.getPkId()); + } + orderLevelVO.setIsEnough(true); orderLevelVO.setPkGradeVal(bdGrade.getGradeName()); orderLevelVO.setGradeValue(bdGrade.getGradeValue()); @@ -292,6 +297,9 @@ public class ApiRetailOrderController { // 封装订单信息 SaOrderExt saOrderExt = iRetailOrderService.createSaOrder(registerParam, gradeList, newMember); + // 校验会员等级推荐范围 + iRetailOrderService.checkMemberRegisterScope(registerParam.getCreatorMember(), newMember.getPkSettleGrade()); + // 校验会员账户状态等 R accountResult = iRetailOrderService.validMemberAccount(pkMember, payParam.getPayPwd()); if (!accountResult.isSuccess()) { @@ -700,7 +708,6 @@ public class ApiRetailOrderController { orderParam.setPkParent(orderParam.getPkCreator()); if (!creatorMember.getMemberCode().equals(orderParam.getParentCode())) { - CuMember parentMember = iMemberServiceApi.getRetailMember(null, orderParam.getParentCode()).getData(); if (null == parentMember) { return "推荐编号不存在"; @@ -718,7 +725,6 @@ public class ApiRetailOrderController { } orderParam.setPkParent(parentMember.getPkId()); } - return null; } diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/controller/service/IRetailOrderService.java b/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/controller/service/IRetailOrderService.java index bc915ada..05415476 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/controller/service/IRetailOrderService.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/controller/service/IRetailOrderService.java @@ -141,4 +141,12 @@ public interface IRetailOrderService { */ Long savePickOrder(SaOrder saOrder, List saOrderItemsList); + /** + * 校验会员注册范围 + * + * @param createMember + * @param newSettleGrade + */ + void checkMemberRegisterScope(CuMember createMember, Integer newSettleGrade); + } diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/controller/service/impl/RetailOrderServiceImpl.java b/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/controller/service/impl/RetailOrderServiceImpl.java index 352ee431..0d0fd79e 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/controller/service/impl/RetailOrderServiceImpl.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/controller/service/impl/RetailOrderServiceImpl.java @@ -13,7 +13,6 @@ import com.hzs.common.core.config.BdConfig; import com.hzs.common.core.constant.*; import com.hzs.common.core.domain.R; import com.hzs.common.core.enums.*; -import com.hzs.common.core.enums.retail.ERetailWaresPrice; import com.hzs.common.core.exception.ServiceException; import com.hzs.common.core.service.RedisService; import com.hzs.common.core.utils.*; @@ -31,6 +30,7 @@ import com.hzs.common.domain.sale.product.BdProduct; import com.hzs.common.domain.sale.wares.BdWaresRange; import com.hzs.common.domain.system.base.BdStorehouse; import com.hzs.common.domain.system.config.BdGrade; +import com.hzs.common.domain.system.ext.BdGradeScopeExt; import com.hzs.common.security.utils.SecurityUtils; import com.hzs.member.account.IMemberAccountServiceApi; import com.hzs.member.base.IMemberServiceApi; @@ -120,6 +120,9 @@ public class RetailOrderServiceImpl implements IRetailOrderService { // 封装订单信息 SaOrderExt saOrderExt = this.createSaOrder(registerParam, gradeList, newMember); + // 校验会员等级推荐范围 + this.checkMemberRegisterScope(registerParam.getCreatorMember(), newMember.getPkSettleGrade()); + // 订单缓存(60分钟有效,防止在线支付回调慢) redisService.setCacheObject(CacheConstants.RETAIL_TEMP_ORDER + registerParam.getPkCreator() + registerParam.getOrderCode(), saOrderExt, CacheConstants.RETAIL_ORDER_EXPIRE_TIME * 2, TimeUnit.MINUTES); registerParam.setPkGrade(newMember.getPkSettleGrade()); @@ -990,4 +993,18 @@ public class RetailOrderServiceImpl implements IRetailOrderService { } } + @Override + public void checkMemberRegisterScope(CuMember createMember, Integer newSettleGrade) { + // 2025.08.21 店主及以下,只能推荐店主及以下 + List bdGradeScopeExtList = iGradeServiceApi.queryGradeConfigByCondition(createMember.getPkSettleCountry(), createMember.getPkSettleGrade()).getData().getBdGradeScopeExtList(); + if (CollectionUtil.isNotEmpty(bdGradeScopeExtList)) { + for (BdGradeScopeExt bdGradeScopeExt : bdGradeScopeExtList) { + if (bdGradeScopeExt.getPkScope().equals(newSettleGrade)) { + return; + } + } + } + throw new ServiceException("不能注册当前新会员等级"); + } + } diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/controller/api/ApiOrderController.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/controller/api/ApiOrderController.java index 3794ee0e..828a2bc2 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/controller/api/ApiOrderController.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/controller/api/ApiOrderController.java @@ -61,8 +61,6 @@ public class ApiOrderController extends BaseController { private ISaDeliverService iSaDeliverService; @Autowired private IOrderBusinessService iOrderBusinessService; - @Autowired - private ISaDeliverItemsService saDeliverItemsService; @DubboReference ICurrencyServiceApi iCurrencyServiceApi; @@ -537,8 +535,6 @@ public class ApiOrderController extends BaseController { if (null != param.getCreationTimeEnd()) { param.setCreationTimeEnd(DateUtils.getEndTime(param.getCreationTimeEnd())); } - // 会员ID - Long userId = SecurityUtils.getUserId(); // 返回的订单数据 List myOrderList = new ArrayList<>(); diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/OrderBusinessServiceImpl.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/OrderBusinessServiceImpl.java index 39601676..daead204 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/OrderBusinessServiceImpl.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/OrderBusinessServiceImpl.java @@ -6,7 +6,6 @@ import cn.hutool.json.JSONUtil; import com.alibaba.fastjson2.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.hzs.bonus.settle.IMemberSettleBonusApi; import com.hzs.common.core.constant.*; import com.hzs.common.core.constant.msg.*; @@ -2356,8 +2355,7 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService { return myOrderVO; } if (myOrderVO.getOrderType() == EOrderType.RETAIL_REGISTER.getValue() || - myOrderVO.getOrderType() == EOrderType.RETAIL_UPGRADE.getValue() || - myOrderVO.getOrderType() == EOrderType.RETAIL_REPURCHASE.getValue()) { + myOrderVO.getOrderType() == EOrderType.RETAIL_UPGRADE.getValue()) { String lastOrderCode = iSaOrderService.lastOrderList(userId, myOrderVO.getPkCountry()); if (StringUtils.isEmpty(lastOrderCode) || !lastOrderCode.equals(myOrderVO.getOrderCode())) { myOrderVO.setMsg(TransactionUtils.getContent(SaOrderMsgConstants.CHECK_MEMBER_LAST_ORDER)); @@ -2397,7 +2395,8 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService { } // 校验订单是否存在进行中的签呈 if (iSaOrderChargeLogService.checkOrderApprovalExist( - Arrays.asList(EApprovalBusiness.ORDER_CHANGE_ADDRESS.getValue(), EApprovalBusiness.ORDER_CHANGE_PRODUCT.getValue(), + Arrays.asList(EApprovalBusiness.ORDER_CHANGE_ADDRESS.getValue(), + EApprovalBusiness.ORDER_CHANGE_PRODUCT.getValue(), EApprovalBusiness.ORDER_RETURN.getValue(), approveBusiness, EApprovalBusiness.ORDER_CANCEL_PRODUCT.getValue() ), 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 25a3aee0..92ab013e 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 @@ -2119,8 +2119,9 @@ public class SaOrderServiceImpl extends ServiceImpl impl // iSaOrderWaresLimitService.updateCancelOrder(saOrderExt.getPkId(), saOrderExt.getPkMember(), saOrderExt.getModifiedTime(), boxProductList); // } - if (!iMemberServiceApi.normalRevokeOrder(pkApprove, saOrderExt, cuMember, businessCommissionDTO).getData()) { - throw new ServiceException("撤单处理会员失败"); + R tmpR = iMemberServiceApi.normalRevokeOrder(pkApprove, saOrderExt, cuMember, businessCommissionDTO); + if (!tmpR.isSuccess()) { + throw new ServiceException("撤单失败 " + tmpR.getMsg()); } } 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 d4bcb027..123c5d12 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 @@ -320,7 +320,7 @@ soi.soi.wares_quantity, bc.in_exchange_rate, case - when soi.order_status in (1, 2) then + when soi.order_status in (1, 2, 6) then 0 else 1 @@ -529,7 +529,7 @@ - and soi.order_status in (1, 2) + and soi.order_status in (1, 2, 6) and soi.order_status = #{param.orderStatus} @@ -607,7 +607,7 @@ and ( - soi.order_status in (1, 2, 3, 5) + soi.order_status in (1, 2, 3, 5, 6) or (soi.order_status = 0 and so.order_type in (1)) )