From b1e16744e235789b5430a2676fff6b1ccf189574 Mon Sep 17 00:00:00 2001 From: cabbage <281119120@qq.com> Date: Wed, 20 Aug 2025 16:54:55 +0800 Subject: [PATCH] =?UTF-8?q?##=20=E5=8D=9A=E7=BE=9A=E8=B4=AD=E4=B9=B0?= =?UTF-8?q?=E5=8D=9A=E7=BE=9A=E4=BB=A5=E4=B8=8A=E5=8D=87=E9=AB=98=E7=BA=A7?= =?UTF-8?q?=EF=BC=9B=E5=8C=BA=E5=9F=9F=E8=B4=AD=E4=B9=B0=E5=8C=BA=E5=9F=9F?= =?UTF-8?q?=E5=8D=87=E8=91=A3=E4=BA=8B=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../member/base/mapper/CuMemberMapper.java | 2 +- .../member/base/service/ICuMemberService.java | 2 +- .../impl/CuMemberBusinessServiceImpl.java | 32 ++++++- .../service/impl/CuMemberServiceImpl.java | 8 +- .../mapper/member/base/CuMemberMapper.xml | 2 +- .../service/impl/RetailOrderServiceImpl.java | 90 ++++++++++--------- .../hzs/common/core/enums/EUpgradeType.java | 2 +- 7 files changed, 83 insertions(+), 55 deletions(-) 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 ec54c64e..bcbab237 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 @@ -604,7 +604,7 @@ public interface CuMemberMapper extends BaseMapper { * * @return */ - CuMember getShopkeeperMember(@Param("pkMember") Long pkMember); + CuMember getShopkeeperMember(@Param("pkMember") Long pkMember, @Param("gradeValue") Integer gradeValue); /** * 查询高级店主 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 8630427b..7c3313b9 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 @@ -873,7 +873,7 @@ public interface ICuMemberService extends IService { * * @return */ - CuMember getShopkeeperMember(Long pkMember); + CuMember getShopkeeperMember(Long pkMember, Integer gradeValue); /** * 查询高级店主 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 75635f8e..774276d1 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 @@ -918,7 +918,6 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService { // 处理推荐人等级 this.handleParentLevel(saOrder, currentDateTime); - // 部分撤单 todo 发货后邮费不退,未发货退邮费 if (saOrder.getPayType().equals(EOrderPayType.WALLET.getValue())) { // 钱包支付,则需要回退金额 // 部分撤单 @@ -1606,9 +1605,9 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService { if (null == gradeDTO) { gradeDTO = iGradeServiceApi.getGrade(cuMember.getPkSettleGrade()).getData(); } - if (EGrade.VIP.getValue() == gradeDTO.getGradeValue()) { - // 会员等级为 博羚店主,推荐人如果也是博羚店主,需要升级为高级店主 - CuMember parentMember = iCuMemberService.getShopkeeperMember(cuMember.getPkParent()); + if (gradeDTO.getGradeValue() >= EGrade.VIP.getValue()) { + // 会员等级大于等于 博羚店主,推荐人如果也是博羚店主,需要升级为高级店主 + CuMember parentMember = iCuMemberService.getShopkeeperMember(cuMember.getPkParent(), EGrade.VIP.getValue()); if (null != parentMember) { // 记录升级历史 GradeDTO upgradeDTO = iGradeServiceApi.getGradeByGradeValue(EGrade.S_VIP.getValue(), cuMember.getPkSettleCountry()).getData(); @@ -1624,6 +1623,31 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService { cuMemberLevel.setPkCreator(cuMember.getPkId()); iCuMemberLevelService.save(cuMemberLevel); + LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); + updateWrapper.set(CuMember::getPkSettleGrade, upgradeDTO.getPkId()); + updateWrapper.eq(CuMember::getPkId, parentMember.getPkId()); + updateWrapper.set(CuMember::getPkModified, cuMember.getPkId()); + updateWrapper.set(CuMember::getModifiedTime, new Date()); + iCuMemberService.update(updateWrapper); + } + } else if (gradeDTO.getGradeValue() >= EGrade.REGION.getValue()) { + // 会员等级大于等于 区域代理,推荐人如果也是区域代理,需要升级为董事代理 + CuMember parentMember = iCuMemberService.getShopkeeperMember(cuMember.getPkParent(), EGrade.REGION.getValue()); + if (null != parentMember) { + // 记录升级历史 + GradeDTO upgradeDTO = iGradeServiceApi.getGradeByGradeValue(EGrade.DIRECTOR.getValue(), cuMember.getPkSettleCountry()).getData(); + CuMemberLevel cuMemberLevel = CuMemberLevel.builder() + .pkMember(parentMember.getPkId()) + .upType(EUpgradeType.AUTO_UPGRADE.getValue()) + .oldLevel(parentMember.getPkSettleGrade()) + .newLevel(upgradeDTO.getPkId()) + .upgradeTime(saOrder.getPayTime()) + .pkOrder(saOrder.getPkId()) + .build(); + cuMemberLevel.setPkCountry(cuMember.getPkSettleCountry()); + cuMemberLevel.setPkCreator(cuMember.getPkId()); + iCuMemberLevelService.save(cuMemberLevel); + LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); updateWrapper.set(CuMember::getPkSettleGrade, upgradeDTO.getPkId()); updateWrapper.eq(CuMember::getPkId, parentMember.getPkId()); 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 afe065a4..1d777aee 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 @@ -116,7 +116,7 @@ public class CuMemberServiceImpl extends ServiceImpl i @Autowired private ICuSettleCountryDetailedService iCuSettleCountryDetailedService; @Autowired - private ICuMemberBusinessService cuMemberBusinessService; + private ICuMemberBusinessService iCuMemberBusinessService; @Autowired private RabbitTemplate rabbitTemplate; @@ -2292,7 +2292,7 @@ public class CuMemberServiceImpl extends ServiceImpl i cuMember.setPkRegisterGrade(gradeDTO.getPkId()); cuMember.setPkSettleGrade(gradeDTO.getPkId()); cuMember.setPkAwards(gradeDTO.getPkAwards()); - cuMemberBusinessService.saveShareMember(cuMember); + iCuMemberBusinessService.saveShareMember(cuMember); return cuMember; } @@ -3139,8 +3139,8 @@ public class CuMemberServiceImpl extends ServiceImpl i } @Override - public CuMember getShopkeeperMember(Long pkMember) { - return baseMapper.getShopkeeperMember(pkMember); + public CuMember getShopkeeperMember(Long pkMember, Integer gradeValue) { + return baseMapper.getShopkeeperMember(pkMember, gradeValue); } @Override 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 6f5697ce..b945e864 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 @@ -2379,7 +2379,7 @@ left join bd_grade bg on bg.pk_id = cm.pk_settle_grade where cm.pk_id = #{pkMember} - and bg.grade_value = 60 + and bg.grade_value = #{gradeValue} 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 aa847938..ee63f676 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 @@ -236,7 +236,7 @@ public class RetailOrderServiceImpl implements IRetailOrderService { } } - // TODO 2025.08.04 注册、升级专区,下单支付会员如果是分公司,订单不需要发货,直接放入提货中心 + // 2025.08.04 注册、升级专区,下单支付会员如果是分公司,订单不需要发货,直接放入提货中心 CuMember createMember = orderParam.getCreatorMember(); if (null == createMember) { createMember = iMemberServiceApi.getMember(orderParam.getPkCreator()).getData(); @@ -961,49 +961,53 @@ public class RetailOrderServiceImpl implements IRetailOrderService { if (EYesNo.NO.getIntValue() == BdConfig.getProductSync()) { return; } - Map productMap = iBdProductService.queryProductMap(saOrderExt.getOrderItemsList().stream().map(SaOrderItems::getPkProduct).collect(Collectors.toSet()), null); - // 开启线程调用全网产品库存 - // 请求参数 - Map bodyMap = new HashMap<>(); - bodyMap.put("source", BdConfig.getSysName()); - bodyMap.put("orderCode", saOrderExt.getOrderCode()); - List> bodyDetailList = new ArrayList<>(); - for (SaOrderItems saOrderItems : saOrderExt.getOrderItemsList()) { - Map detailMap = new HashMap<>(); - detailMap.put("wmsCode", productMap.get(saOrderItems.getPkProduct()).getWmsCode()); - detailMap.put("changeNum", saOrderItems.getQuantity()); - bodyDetailList.add(detailMap); - } - bodyMap.put("detailList", bodyDetailList); - // 请求头 - String header = Base64Encoder.encode(BdConfig.getSysName() + "!" + saOrderExt.getOrderCode()); - ThreadUtils.threadPoolExecutor.submit(() -> { - log.info("同步产品,header: {}", header); - log.info("同步产品,bodyMap: {}", bodyMap); - HttpRequest httpRequest = HttpUtil.createPost(BdConfig.getProductSyncUrl()); - httpRequest.header("authorization", header); - httpRequest.body(JSONUtil.toJsonStr(bodyMap)); - httpRequest.setReadTimeout(5000); - try { - // 同步产品接口返回 - String resultStr = httpRequest.execute().body(); - AjaxResult ajaxResult = JSONUtil.toBean(resultStr, AjaxResult.class); - log.info("同步产品,resultStr: {}", resultStr); - if (!ajaxResult.isSuccess()) { - // 同步产品失败,250毫秒后重试 - Thread.sleep(250); - resultStr = httpRequest.execute().body(); - log.info("同步产品失败重试,resultStr: {}", resultStr); - } - } catch (Exception e) { - log.error("同步产品库存异常", e); - // 保存订单产品同步记录 - iSaOrderSyncService.save(SaOrderSync.builder() - .orderCode(saOrderExt.getOrderCode()) - .bodyDetail(JSONUtil.toJsonStr(bodyDetailList)) - .build()); + try { + Map productMap = iBdProductService.queryProductMap(saOrderExt.getOrderItemsList().stream().map(SaOrderItems::getPkProduct).collect(Collectors.toSet()), null); + // 开启线程调用全网产品库存 + // 请求参数 + Map bodyMap = new HashMap<>(); + bodyMap.put("source", BdConfig.getSysName()); + bodyMap.put("orderCode", saOrderExt.getOrderCode()); + List> bodyDetailList = new ArrayList<>(); + for (SaOrderItems saOrderItems : saOrderExt.getOrderItemsList()) { + Map detailMap = new HashMap<>(); + detailMap.put("wmsCode", productMap.get(saOrderItems.getPkProduct()).getWmsCode()); + detailMap.put("changeNum", saOrderItems.getQuantity()); + bodyDetailList.add(detailMap); } - }); + bodyMap.put("detailList", bodyDetailList); + // 请求头 + String header = Base64Encoder.encode(BdConfig.getSysName() + "!" + saOrderExt.getOrderCode()); + ThreadUtils.threadPoolExecutor.submit(() -> { + log.info("同步产品,header: {}", header); + log.info("同步产品,bodyMap: {}", bodyMap); + HttpRequest httpRequest = HttpUtil.createPost(BdConfig.getProductSyncUrl()); + httpRequest.header("authorization", header); + httpRequest.body(JSONUtil.toJsonStr(bodyMap)); + httpRequest.setReadTimeout(5000); + try { + // 同步产品接口返回 + String resultStr = httpRequest.execute().body(); + AjaxResult ajaxResult = JSONUtil.toBean(resultStr, AjaxResult.class); + log.info("同步产品,resultStr: {}", resultStr); + if (!ajaxResult.isSuccess()) { + // 同步产品失败,250毫秒后重试 + Thread.sleep(250); + resultStr = httpRequest.execute().body(); + log.info("同步产品失败重试,resultStr: {}", resultStr); + } + } catch (Exception e) { + log.error("同步产品库存异常", e); + // 保存订单产品同步记录 + iSaOrderSyncService.save(SaOrderSync.builder() + .orderCode(saOrderExt.getOrderCode()) + .bodyDetail(JSONUtil.toJsonStr(bodyDetailList)) + .build()); + } + }); + } catch (Exception e) { + log.error("同步产品异常: ", e); + } } } diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EUpgradeType.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EUpgradeType.java index caac6485..e9235952 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EUpgradeType.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EUpgradeType.java @@ -12,7 +12,7 @@ import lombok.Getter; public enum EUpgradeType { /** - * 1=自动升级 -- 目前只高级店主升级为自动升级 + * 1=自动升级 -- 高级店主升级为自动升级、董事代理为自动升级 */ AUTO_UPGRADE(1, "自动升级", 0, EnumsPrefixConstants.UPGRADE_TYPE + 1),