From f8ca35d20c20f136409cafc860e16f0b70d9c7cd Mon Sep 17 00:00:00 2001 From: Jack <46790855@qq.com> Date: Fri, 26 Dec 2025 00:07:27 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=86=E5=BA=97=E9=80=BB=E8=BE=91=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0,=E9=80=BB=E8=BE=91=E7=BC=96=E5=86=99=EF=BC=8C?= =?UTF-8?q?=E6=8B=89=E5=8D=A1=E6=8B=89=E5=A2=9E=E7=BB=88=EF=BC=8C=E6=94=B6?= =?UTF-8?q?=E5=88=B0=E9=80=9A=E7=9F=A5=EF=BC=8C=E5=88=9B=E5=BB=BA=E5=88=86?= =?UTF-8?q?=E5=BA=97=EF=BC=8C=E5=88=86=E5=BA=97=E5=91=A8=E8=BE=B9=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E3=80=81=E8=B4=A6=E5=8F=B7=E3=80=81=E5=85=A5=E9=A9=BB?= =?UTF-8?q?=E4=BF=A1=E6=81=AF=E7=AD=892?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/feignService/AccountService.java | 2 +- .../common/modules/store/ShopStoreBase.java | 3 ++ .../lakala/service/impl/LklTkServiceImpl.java | 35 ++++--------------- .../store/service/ShopStoreBaseService.java | 11 ++++++ .../impl/ShopMchEntryBranchServiceImpl.java | 12 ++++--- .../service/impl/ShopMchEntryServiceImpl.java | 5 ++- .../impl/ShopStoreBaseServiceImpl.java | 11 ++++++ .../mapper/store/ShopStoreBaseMapper.xml | 2 +- 8 files changed, 45 insertions(+), 36 deletions(-) diff --git a/mall-common/src/main/java/com/suisung/mall/common/feignService/AccountService.java b/mall-common/src/main/java/com/suisung/mall/common/feignService/AccountService.java index 7906647b..5ff48994 100644 --- a/mall-common/src/main/java/com/suisung/mall/common/feignService/AccountService.java +++ b/mall-common/src/main/java/com/suisung/mall/common/feignService/AccountService.java @@ -319,6 +319,6 @@ public interface AccountService { /** * 服务间注册商家账号,项目之间远程调用 */ - @RequestMapping(value = "/merchant/inner-register", method = RequestMethod.POST) + @RequestMapping(value = "/admin/account/account-user-base/merchant/inner-register", method = RequestMethod.POST) Pair merchantInnerRegister(@Param("mobile") String mobile); } diff --git a/mall-common/src/main/java/com/suisung/mall/common/modules/store/ShopStoreBase.java b/mall-common/src/main/java/com/suisung/mall/common/modules/store/ShopStoreBase.java index b6b4d9ba..c0b38f3d 100644 --- a/mall-common/src/main/java/com/suisung/mall/common/modules/store/ShopStoreBase.java +++ b/mall-common/src/main/java/com/suisung/mall/common/modules/store/ShopStoreBase.java @@ -141,6 +141,9 @@ public class ShopStoreBase implements Serializable { @ApiModelProperty(value = "店铺统一的打包费, 0-10元范围") private BigDecimal packing_fee; + @ApiModelProperty(value = "分店所属总店 Id,一般分店有值,总店为0") + private Integer parent_id; + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @ApiModelProperty(value = "新增时间") diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/lakala/service/impl/LklTkServiceImpl.java b/mall-shop/src/main/java/com/suisung/mall/shop/lakala/service/impl/LklTkServiceImpl.java index 876bcf39..3f6e0cae 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/lakala/service/impl/LklTkServiceImpl.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/lakala/service/impl/LklTkServiceImpl.java @@ -788,50 +788,38 @@ public class LklTkServiceImpl { * @return */ public JSONObject updateMerchantNotify(HttpServletRequest request) { - logger.info("开始处理拉卡拉增终异步通知"); - try { // 解密请求参数 String requestBody = LakalaUtil.getBody(request); - logger.debug("拉卡拉增终异步通知原始参数:{}", requestBody); if (StrUtil.isBlank(requestBody)) { - logger.warn("拉卡拉增终异步通知参数为空"); return new JSONObject().set("code", "400").set("message", "返回参数为空"); } JSONObject reqBodyJSON = JSONUtil.parseObj(requestBody); if (reqBodyJSON.isEmpty() || reqBodyJSON.get("data") == null) { - logger.warn("拉卡拉增终异步通知参数格式有误,无法解析: {}", requestBody); return new JSONObject().set("code", "400").set("message", "参数格式有误,无法解析"); } String srcData = reqBodyJSON.getStr("data"); if (StrUtil.isBlank(srcData)) { - logger.warn("拉卡拉增终异步通知关键参数为空值"); return new JSONObject().set("code", "400").set("message", "关键参数为空值"); } // 公钥解密出来的数据 - logger.debug("开始解密拉卡拉通知数据"); String notifyPubKey = LakalaUtil.getResourceFile(notifyPubKeyPath, false, false); - String data = LakalaUtil.decryptNotifyData(notifyPubKey, srcData); - if (StrUtil.isBlank(data)) { - logger.error("拉卡拉增终异步通知数据解密失败"); + String lklNotifyResp = LakalaUtil.decryptNotifyData(notifyPubKey, srcData); + if (StrUtil.isBlank(lklNotifyResp)) { return new JSONObject().set("code", "400").set("message", "数据解密出错!"); } - logger.info("拉卡拉进件异步通知数据解密成功,开始处理业务逻辑"); - // 逻辑处理 - JSONObject dataJSON = JSONUtil.parseObj(data); + JSONObject dataJSON = JSONUtil.parseObj(lklNotifyResp); String reviewPass = dataJSON.getStr("reviewPass"); String merCupNo = dataJSON.getStr("externalCustomerNo"); //拉卡拉外部商户号 String merInnerNo = dataJSON.getStr("customerNo"); //拉卡拉内部商户号 String termNo = dataJSON.getStr("termNo"); //拉卡拉分配的业务终端号 String reviewRelatedId = dataJSON.getStr("reviewRelatedId"); //拉卡拉分配的业务终端号 - logger.debug("解析通知数据完成 - 审核状态: {},外部商户号: {},内部商户号: {},终端号: {}", - reviewPass, merCupNo, merInnerNo, termNo); // 合并参数校验 if (dataJSON.isEmpty() || @@ -839,36 +827,24 @@ public class LklTkServiceImpl { StrUtil.isBlank(merCupNo) || StrUtil.isBlank(reviewRelatedId) || StrUtil.isBlank(termNo)) { - logger.warn("拉卡拉改进异步通知参数解析出错,数据: {}", data); return new JSONObject().set("code", "500").set("message", "参数解析出错"); } // 给商家入驻表增加拉卡拉的商户号和拉卡拉返回的数据 - logger.debug("开始查询商户入驻信息,内部商户号: {}", merInnerNo); ShopMchEntry shopMchEntry = shopMchEntryService.getShopMerchEntryByMerInnerNo(merInnerNo); if (shopMchEntry == null) { - logger.error("拉卡拉增终异步通知:{}内部商户号入驻信息不存在!", merInnerNo); return new JSONObject().put("code", "500").put("message", merInnerNo + "内部商户号入驻信息不存在"); } - Long mchId = shopMchEntry.getId(); - logger.info("找到商户入驻信息,商户ID: {}", mchId); - // 校验审核状态: PREPARE:待提交; PASS:通过; UNPASS:未通过; PASSING:审核中; - logger.debug("校验审核状态: {}", reviewPass); if (!"PASS".equals(reviewPass)) { String reviewResult = dataJSON.getStr("reviewResult"); - logger.warn("拉卡拉增终审核未通过,审核状态: {},备注: {}", reviewPass, reviewResult); - shopMchEntryService.updateMerchEntryApprovalByMchId(mchId, CommonConstant.MCH_APPR_STA_LKL_NOPASS, "增终失败:" + reviewResult); - return new JSONObject().set("code", "FAIL").set("message", "返回审核状态有误"); + return new JSONObject().set("code", "FAIL").set("message", "审核未通过:" + reviewResult); } - logger.info("拉卡拉增终审核通过,商户ID: {},开始更新商户信息", mchId); - // RMK 拉卡拉增终成功, 创建分店入驻记录,创建商家账号、创建店铺和周边信息 - shopMchEntryBranchService.createMchEntryBranchStore(reviewRelatedId, termNo, data); + shopMchEntryBranchService.createMchEntryBranchStore(reviewRelatedId, termNo, lklNotifyResp); - logger.info("拉卡拉进件异步通知处理完成,商户ID: {}", mchId); return new JSONObject().set("code", "200").set("message", "处理成功"); } catch (Exception e) { @@ -877,6 +853,7 @@ public class LklTkServiceImpl { } } + public JSONObject openMerchantAddTerm(String externalCustomerNo) { logger.debug("开始获取拉卡拉商户信息,externalCustomerNo={}", externalCustomerNo); diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/store/service/ShopStoreBaseService.java b/mall-shop/src/main/java/com/suisung/mall/shop/store/service/ShopStoreBaseService.java index a24f75e2..191714b8 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/store/service/ShopStoreBaseService.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/store/service/ShopStoreBaseService.java @@ -166,6 +166,17 @@ public interface ShopStoreBaseService extends IBaseService { */ Pair covMerchEntryInfo2StoreInfo(Long mchId, Boolean allowThrown); + /** + * (重要)入驻审批通过并且合同盖章完结之后,把商家入驻信息转换成店铺信息,正式生成店铺所需的数据 + * + * @param mchId 入驻编号 + * @param parentStoreId 总店店铺Id + * @param allowThrown 是否允许抛出异常? + * @return + */ + Pair covMerchEntryInfo2StoreInfo(Long mchId, Integer parentStoreId, Boolean allowThrown); + + /** * 根据店铺名称判断店铺是否存在 * diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/store/service/impl/ShopMchEntryBranchServiceImpl.java b/mall-shop/src/main/java/com/suisung/mall/shop/store/service/impl/ShopMchEntryBranchServiceImpl.java index 5778936c..f937abe2 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/store/service/impl/ShopMchEntryBranchServiceImpl.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/store/service/impl/ShopMchEntryBranchServiceImpl.java @@ -1,5 +1,6 @@ package com.suisung.mall.shop.store.service.impl; +import cn.hutool.core.convert.Convert; import cn.hutool.core.util.StrUtil; import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; @@ -288,13 +289,16 @@ public class ShopMchEntryBranchServiceImpl extends BaseServiceImpl storeResult = shopStoreBaseService.covMerchEntryInfo2StoreInfo(shopMchEntry.getId(), true); + Pair storeResult = shopStoreBaseService.covMerchEntryInfo2StoreInfo(shopMchEntry.getId(), parentStoreId, true); if (storeResult == null || storeResult.getFirst() <= 0) { log.error("创建分店店铺信息失败,分店入驻ID: {},错误信息: {}", shopMchEntry.getId(), storeResult != null ? storeResult.getSecond() : "返回结果为空"); diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/store/service/impl/ShopMchEntryServiceImpl.java b/mall-shop/src/main/java/com/suisung/mall/shop/store/service/impl/ShopMchEntryServiceImpl.java index f0b4737e..8b6bfee6 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/store/service/impl/ShopMchEntryServiceImpl.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/store/service/impl/ShopMchEntryServiceImpl.java @@ -1325,7 +1325,10 @@ public class ShopMchEntryServiceImpl extends BaseServiceImpl queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.eq(ShopMchEntry::getLkl_mer_cup_no, merCupNo).eq(ShopMchEntry::getStatus, CommonConstant.Enable).orderByAsc(ShopMchEntry::getId); + queryWrapper.eq(ShopMchEntry::getLkl_mer_cup_no, merCupNo) + .eq(ShopMchEntry::getParent_id, 0L) // 总店 + .eq(ShopMchEntry::getStatus, CommonConstant.Enable) + .orderByAsc(ShopMchEntry::getId); ShopMchEntry record = findOne(queryWrapper); if (ObjectUtil.isEmpty(record)) { return null; diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/store/service/impl/ShopStoreBaseServiceImpl.java b/mall-shop/src/main/java/com/suisung/mall/shop/store/service/impl/ShopStoreBaseServiceImpl.java index 1efa829a..d2605702 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/store/service/impl/ShopStoreBaseServiceImpl.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/store/service/impl/ShopStoreBaseServiceImpl.java @@ -3251,6 +3251,11 @@ public class ShopStoreBaseServiceImpl extends BaseServiceImpl covMerchEntryInfo2StoreInfo(Long mchId, Boolean allowThrown) { + return covMerchEntryInfo2StoreInfo(mchId, 0, allowThrown); + } + + @Override + public Pair covMerchEntryInfo2StoreInfo(Long mchId, Integer parentStoreId, Boolean allowThrown) { // 参数校验 if (ObjectUtil.isEmpty(mchId)) { logger.error("生成店铺:入驻商家自增Id不能为空"); @@ -3299,6 +3304,12 @@ public class ShopStoreBaseServiceImpl extends BaseServiceImpl