From 3d8999d51e863d1bad34a775007a25fdc9bc15ab Mon Sep 17 00:00:00 2001 From: Jack <46790855@qq.com> Date: Tue, 26 Aug 2025 22:50:45 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A1=BA=E4=B8=B0=E5=95=86=E5=AE=B6id=20?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=EF=BC=8C=E7=BB=91=E5=AE=9A=E6=8E=A5=E6=94=B6?= =?UTF-8?q?=E8=80=85=E6=96=B9=E6=B3=95fix=20bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/PayUserPayServiceImpl.java | 6 +- .../LklLedgerMerReceiverBindService.java | 8 ++ .../service/impl/LakalaApiServiceImpl.java | 80 +++++++++++-------- .../impl/LklLedgerMemberServiceImpl.java | 4 +- .../LklLedgerMerReceiverBindServiceImpl.java | 20 ++++- .../lakala/service/impl/LklTkServiceImpl.java | 9 ++- .../service/impl/ShopMchEntryServiceImpl.java | 12 ++- .../src/main/resources/bootstrap-dev.yml | 3 +- .../src/main/resources/bootstrap-local.yml | 3 +- .../src/main/resources/bootstrap-prod.yml | 3 +- .../src/main/resources/bootstrap-test.yml | 3 +- .../src/main/resources/bootstrap-uat.yml | 3 +- 12 files changed, 104 insertions(+), 50 deletions(-) diff --git a/mall-pay/src/main/java/com/suisung/mall/pay/service/impl/PayUserPayServiceImpl.java b/mall-pay/src/main/java/com/suisung/mall/pay/service/impl/PayUserPayServiceImpl.java index fec943d2..9ff56ce8 100644 --- a/mall-pay/src/main/java/com/suisung/mall/pay/service/impl/PayUserPayServiceImpl.java +++ b/mall-pay/src/main/java/com/suisung/mall/pay/service/impl/PayUserPayServiceImpl.java @@ -669,7 +669,7 @@ public class PayUserPayServiceImpl extends BaseServiceImpl bindResult = innerApplyLedgerMerReceiverBind(bindParamsJSON); if (!bindResult.getFirst()) { - String errMsg = "商户分账申请业务回调:预绑定接收方失败 - " + bindResult.getSecond(); - log.error("商户{}预绑定接收方出错:{}", merCupNo, errMsg); + String errMsg = "商户分账业务申请异步回调:预绑定分账接收方失败 - " + bindResult.getSecond(); + log.error("商户{}预绑定分账接收方失败:{}", merCupNo, errMsg); // 更新商户审批状态 if (lklLedgerMember != null) { // 防御性判断(理论上此时应为null,但保留安全检查) @@ -1024,8 +1027,8 @@ public class LakalaApiServiceImpl implements LakalaApiService { // 更新商家分账申请状态为已申请(hasApplySplit=1) shopMchEntryService.updateMulStatus(lklLedgerMember.getMch_id(), "", merCupNo, 0, 0, 0, 1, 0, 0, CommonConstant.MCH_APPR_STA_LKL_PADDING); - shopMchEntryService.updateMerchEntryApprovalByMchId(lklLedgerMember.getMch_id(), null, "分账业务开通成功"); - log.debug("商户分账业务申请回调:处理成功,applyId={}", applyId); + shopMchEntryService.updateMerchEntryApprovalByMchId(lklLedgerMember.getMch_id(), null, "商户分账业务申请已审核通过"); + log.debug("商户分账业务申请异步回调:处理成功,applyId={}", applyId); return JSONUtil.createObj().put("code", "SUCCESS").put("message", "操作成功!"); } @@ -1200,7 +1203,7 @@ public class LakalaApiServiceImpl implements LakalaApiService { return CommonResult.failed(retPair.getSecond()); } - return CommonResult.success(null, "接收方绑定成功!"); + return CommonResult.success(null, "商家绑定分账接收方成功!"); } @@ -1219,6 +1222,8 @@ public class LakalaApiServiceImpl implements LakalaApiService { * @return 操作结果及提示信息 */ public Pair innerApplyLedgerMerReceiverBind(JSONObject paramsJSON) { + log.debug("商家绑定分账接收方申请开始:{}", paramsJSON); + // 1. 参数校验(提前失败) if (paramsJSON == null) { return Pair.of(false, I18nUtil._("绑定参数为空")); @@ -1235,11 +1240,13 @@ public class LakalaApiServiceImpl implements LakalaApiService { return Pair.of(false, I18nUtil._("商户入驻记录不存在")); } + // 进件记录 LklLedgerMember lklLedgerMember = lklLedgerMemberService.getByMerCupNo(merCupNo); if (lklLedgerMember == null || !CommonConstant.Enable.equals(lklLedgerMember.getAudit_status())) { return Pair.of(false, I18nUtil._("商家尚未申请分账业务")); } + // 分账接收方列表 List receiverList = lklLedgerReceiverService.selectPlatformAnDistributorList(); if (CollectionUtil.isEmpty(receiverList)) { return Pair.of(false, I18nUtil._("分账接收方信息为空")); @@ -1255,7 +1262,7 @@ public class LakalaApiServiceImpl implements LakalaApiService { // 给拉卡拉通知的回调地址 String retUrl = domain + "/mobile/shop/lakala/ledger/applyLedgerMerReceiverBindNotify"; String entrustFileName = "小发同城合作协议书.pdf"; - String entrustFilePath = shopMchEntry.getLkl_ec_file_path(); + String entrustFilePath = shopMchEntry.getLkl_ec_file_path(); // 拉卡拉的文件路径 int successCount = 0; int totalCount = receiverList.size(); @@ -1286,7 +1293,7 @@ public class LakalaApiServiceImpl implements LakalaApiService { request.setRetUrl(retUrl); // 7. 记录请求参数 - log.debug("绑定接收方参数:{}", JSONUtil.toJsonStr(request)); + log.debug("商家绑定分账接收方参数:{}", JSONUtil.toJsonStr(request)); // 8. 发送请求并处理响应 String responseStr = LKLSDK.httpPost(request); @@ -1327,14 +1334,14 @@ public class LakalaApiServiceImpl implements LakalaApiService { if (successCount == 0) { if (lklLedgerMember != null) { shopMchEntryService.updateMerchEntryApprovalByMchId( - lklLedgerMember.getMch_id(), CommonConstant.MCH_APPR_STA_NOPASS, "分账接收方绑定失败:" + lklLedgerMember.getMch_id(), CommonConstant.MCH_APPR_STA_NOPASS, "商家绑定分账接收方失败:" ); } - return Pair.of(false, "分账接收方绑定失败"); + return Pair.of(false, "商家绑定分账接收方失败"); } else if (successCount < totalCount) { - return Pair.of(true, "分账接收方绑定,部分提交成功(" + successCount + "/" + totalCount + "),待审核中"); + return Pair.of(true, "商家绑定分账接收方,部分提交成功(" + successCount + "/" + totalCount + "),待审核通知"); } else { - return Pair.of(true, "分账接收方绑定,全部提交成功,待审核中"); + return Pair.of(true, "商家绑定分账接收方,全部提交成功,待审核通知"); } } @@ -1363,7 +1370,7 @@ public class LakalaApiServiceImpl implements LakalaApiService { // 2. 解析回调参数 JSONObject paramsJSON = JSONUtil.parseObj(checkResult.getSecond()); - log.info("##### 商家绑定接收方回调参数:{} ####", paramsJSON); + log.debug("##### 商家绑定接收方回调参数:{} ####", paramsJSON); if (paramsJSON == null || StrUtil.isBlank(paramsJSON.getStr("applyId"))) { // https://o.lakala.com/#/home/document/detail?id=386 返回的数据结果有歧义,需处理 @@ -1414,8 +1421,17 @@ public class LakalaApiServiceImpl implements LakalaApiService { return JSONUtil.createObj().put("code", "FAIL").put("message", "更新状态失败"); } - // 7. 成功后更新商户绑定状态为已绑定 - shopMchEntryService.updateMulStatus(0L, "", merCupNo, 0, 0, 0, 0, 0, 1, CommonConstant.MCH_APPR_STA_PASS); + LklLedgerMerReceiverBind lklLedgerMerReceiverBind = lklLedgerMerReceiverBindService.getPlatformByApplyId(applyId); + if (lklLedgerMerReceiverBind != null) { +// shopMchEntryService.updateMerchEntryApprovalByMchId( +// lklLedgerMerReceiverBind.getMch_id(), CommonConstant.MCH_APPR_STA_PASS, "商家绑定分账接收方成功" +// ); + + // 7. 成功后更新商户绑定状态为已绑定 + shopMchEntryService.updateMulStatus(lklLedgerMerReceiverBind.getMch_id(), "", merCupNo, 0, 0, 0, 0, 0, 1, CommonConstant.MCH_APPR_STA_PASS); + + } + // 8. 检查商户绑定状态是否完成, 更改总的审核状态 shopMchEntryService.checkMerchEntryFinished("", merCupNo); diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/lakala/service/impl/LklLedgerMemberServiceImpl.java b/mall-shop/src/main/java/com/suisung/mall/shop/lakala/service/impl/LklLedgerMemberServiceImpl.java index a190833a..66657a65 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/lakala/service/impl/LklLedgerMemberServiceImpl.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/lakala/service/impl/LklLedgerMemberServiceImpl.java @@ -58,7 +58,9 @@ public class LklLedgerMemberServiceImpl extends BaseServiceImpl queryWrapper = new QueryWrapper<>(); queryWrapper.eq("apply_id", applyId); - queryWrapper.eq("audit_status", auditStatus); + if (auditStatus >= 0) { + queryWrapper.eq("audit_status", auditStatus); + } return getOne(queryWrapper); } diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/lakala/service/impl/LklLedgerMerReceiverBindServiceImpl.java b/mall-shop/src/main/java/com/suisung/mall/shop/lakala/service/impl/LklLedgerMerReceiverBindServiceImpl.java index b40c03ed..233acaad 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/lakala/service/impl/LklLedgerMerReceiverBindServiceImpl.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/lakala/service/impl/LklLedgerMerReceiverBindServiceImpl.java @@ -69,7 +69,7 @@ public class LklLedgerMerReceiverBindServiceImpl extends BaseServiceImpl queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("apply_id", applyId).orderByAsc("id"); + + return findOne(queryWrapper); + } + /** * 根据商户编号查询一条代理商绑定记录 * 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 c032ee56..effaf01d 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 @@ -318,7 +318,8 @@ public class LklTkServiceImpl { } /** - * (重要) 请求拉卡拉进件 + * (重要) 请求拉卡拉进件, + * TODO 已经进件过了,一般不涉及更改企业(小微)的信息,可以不要重新进件了 *

* 参考拉卡拉给的独立文档:2、拓客SAAS商户管理接口(新).docx * @@ -398,7 +399,7 @@ public class LklTkServiceImpl { reqJsonBody.put("accountNo", shopMchEntry.getAccount_number()); //结算人银行卡号 reqJsonBody.put("accountName", shopMchEntry.getAccount_holder_name()); //结算人账户名称 reqJsonBody.put("accountIdCard", larIdCard);//结算⼈(法人或小微个人)证件号码(身份证) - + String settleType = String.format("D%d", 1); reqJsonBody.put("settleType", settleType); //结算类型:0-秒到(不分账);1-次日结算(需要分账) // formData.put("settlementType", "AUTOMATIC"); // 结算方式:MANUAL:手动结算(结算至拉卡拉APP钱包),AUTOMATIC:自动结算到银行卡,REGULAR:定时结算(仅企业商户支持) @@ -661,7 +662,7 @@ public class LklTkServiceImpl { logger.info("初始化店铺成功!mchId={}", mchId); } - // 1、(电子合同)给商家申请分账功能使用;务必检查是否申请过?申请过忽略 + // 1、(电子合同)给商家申请分账业务;务必检查是否申请过?申请过忽略 Pair retPair = lakalaApiService.innerApplyLedgerMer(merCupNo); // 2:新增一个接收方记录,起码要一个平台方,代理商根据入驻信息新增 @@ -669,7 +670,7 @@ public class LklTkServiceImpl { // 统一处理分账申请结果 if (retPair.getFirst() && genSuccess) { - shopMchEntryService.updateMerchEntryApprovalByMchId(shopMchEntry.getId(), CommonConstant.MCH_APPR_STA_LKL_PADDING, "成功申请分账功能"); + shopMchEntryService.updateMerchEntryApprovalByMchId(shopMchEntry.getId(), CommonConstant.MCH_APPR_STA_LKL_PADDING, "已向拉卡拉提交分账业务申请"); return new JSONObject().put("code", "200").put("message", "处理成功"); } 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 3bd088f3..73546740 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 @@ -1572,10 +1572,14 @@ public class ShopMchEntryServiceImpl extends BaseServiceImpl updateWrapper = new UpdateWrapper<>(); - // 3. 设置查询条件:优先使用商户手机号,如果为空则使用商户号 - if (CheckUtil.isEmpty(mchId)) { - updateWrapper.eq("id", mchId); - } + // 3. 设置查询条件:优先 mchId +// if (CheckUtil.isEmpty(mchId)) { +// updateWrapper.eq("id", mchId); +// } + + Optional.ofNullable(mchId) + .filter(CheckUtil::isNotEmpty) + .ifPresent(id -> updateWrapper.eq("id", id)); Optional.ofNullable(merchantMobile) .filter(StrUtil::isNotBlank) diff --git a/mall-shop/src/main/resources/bootstrap-dev.yml b/mall-shop/src/main/resources/bootstrap-dev.yml index d7d252d7..8ccdb5e1 100644 --- a/mall-shop/src/main/resources/bootstrap-dev.yml +++ b/mall-shop/src/main/resources/bootstrap-dev.yml @@ -139,7 +139,8 @@ feieyun: sf-express: # 顺丰同城 api 接口配置 appid: 1711573316 - supplier_id: 0 + # 桂平顺丰平台商家id + supplier_id: 2273453450129 appkey: cd57608baa9c00fe1cda5f652b14240d dev_id: 1711573316 enable: 2 diff --git a/mall-shop/src/main/resources/bootstrap-local.yml b/mall-shop/src/main/resources/bootstrap-local.yml index 1575e31b..a74f6a1b 100644 --- a/mall-shop/src/main/resources/bootstrap-local.yml +++ b/mall-shop/src/main/resources/bootstrap-local.yml @@ -139,7 +139,8 @@ feieyun: sf-express: # 顺丰同城 api 接口配置 appid: 1711573316 - supplier_id: 2280784732353 + # 桂平顺丰平台商家id + supplier_id: 2273453450129 appkey: cd57608baa9c00fe1cda5f652b14240d dev_id: 1711573316 enable: 2 diff --git a/mall-shop/src/main/resources/bootstrap-prod.yml b/mall-shop/src/main/resources/bootstrap-prod.yml index 625cda20..d7957d6b 100644 --- a/mall-shop/src/main/resources/bootstrap-prod.yml +++ b/mall-shop/src/main/resources/bootstrap-prod.yml @@ -145,7 +145,8 @@ feieyun: sf-express: # 顺丰同城 api 接口配置 dev_id: 1711573316 - supplier_id: 2280784732353 + # 桂平顺丰平台商家id + supplier_id: 2273453450129 appid: 1711573316 appkey: cd57608baa9c00fe1cda5f652b14240d # dev_id: 1715091463 diff --git a/mall-shop/src/main/resources/bootstrap-test.yml b/mall-shop/src/main/resources/bootstrap-test.yml index bd0064c1..ae01b836 100644 --- a/mall-shop/src/main/resources/bootstrap-test.yml +++ b/mall-shop/src/main/resources/bootstrap-test.yml @@ -143,7 +143,8 @@ feieyun: sf-express: # 顺丰同城 api 接口配置 appid: 1711573316 - supplier_id: 2280784732353 + # 桂平顺丰平台商家id + supplier_id: 2273453450129 appkey: cd57608baa9c00fe1cda5f652b14240d dev_id: 1711573316 enable: 2 diff --git a/mall-shop/src/main/resources/bootstrap-uat.yml b/mall-shop/src/main/resources/bootstrap-uat.yml index bd0064c1..ae01b836 100644 --- a/mall-shop/src/main/resources/bootstrap-uat.yml +++ b/mall-shop/src/main/resources/bootstrap-uat.yml @@ -143,7 +143,8 @@ feieyun: sf-express: # 顺丰同城 api 接口配置 appid: 1711573316 - supplier_id: 2280784732353 + # 桂平顺丰平台商家id + supplier_id: 2273453450129 appkey: cd57608baa9c00fe1cda5f652b14240d dev_id: 1711573316 enable: 2