From d8b068e14f087baf7beb8d13489530865928c9d1 Mon Sep 17 00:00:00 2001 From: Jack <46790855@qq.com> Date: Mon, 22 Sep 2025 15:59:27 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=20=E5=88=86=E8=B4=A6?= =?UTF-8?q?=E6=8E=A5=E6=94=B6=E6=96=B9=E7=BB=91=E5=AE=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../LklLedgerMerReceiverBindService.java | 9 +++++ .../service/impl/LakalaApiServiceImpl.java | 28 +++++++-------- .../LklLedgerMerReceiverBindServiceImpl.java | 36 +++++++++++++++++-- .../store/service/ShopMchEntryService.java | 2 +- .../service/impl/ShopMchEntryServiceImpl.java | 2 +- 5 files changed, 58 insertions(+), 19 deletions(-) diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/lakala/service/LklLedgerMerReceiverBindService.java b/mall-shop/src/main/java/com/suisung/mall/shop/lakala/service/LklLedgerMerReceiverBindService.java index f00bd514..43a17ef5 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/lakala/service/LklLedgerMerReceiverBindService.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/lakala/service/LklLedgerMerReceiverBindService.java @@ -92,6 +92,15 @@ public interface LklLedgerMerReceiverBindService extends IBaseService selectByMchIdAndMerCupNo(Long mchId, String merCupNo); + /** * 根据入驻编号和商户编号删除商户分账接收方绑定记录 * diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/lakala/service/impl/LakalaApiServiceImpl.java b/mall-shop/src/main/java/com/suisung/mall/shop/lakala/service/impl/LakalaApiServiceImpl.java index 026ef694..fcf2155f 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/lakala/service/impl/LakalaApiServiceImpl.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/lakala/service/impl/LakalaApiServiceImpl.java @@ -403,7 +403,6 @@ public class LakalaApiServiceImpl implements LakalaApiService { // TODO 电子合同已签署完成(但有一些错误的信息),这种情况,需要怎么处理? // 办法:重新再签署合同,更新拉卡拉的电子合同信息到商家入驻表中 -// return Pair.of(true, I18nUtil._("已提交进件申请,请等待机构审核!")); log.info("商户:{} 电子合同已签署过,重新提交将被覆盖!", mchId); } @@ -665,7 +664,7 @@ public class LakalaApiServiceImpl implements LakalaApiService { paramsJSON.put("splitEntrustFilePath", splitEntrustFilePath); paramsJSON.put("retUrl", notifyUrl); - paramsJSON.put("splitLowestRatio", splitLowestRatio); + paramsJSON.put("splitLowestRatio", splitLowestRatio); // 商家最低分账比例不低于 20% paramsJSON.put("splitRange", "ALL"); paramsJSON.put("settleType", "01"); // paramsJSON.put("splitLaunchMode", "MANUAL"); @@ -896,7 +895,6 @@ public class LakalaApiServiceImpl implements LakalaApiService { * @param request * @return */ -// @Transactional @Override public JSONObject applyLedgerMerEcNotify(HttpServletRequest request) { log.debug("商户入网电子合同申请回调通知开始"); @@ -985,7 +983,7 @@ public class LakalaApiServiceImpl implements LakalaApiService { } // 更新商家入驻表的合同编号,和签署地址,更改状态 - shopMchEntryService.updateMerchantLklElectronicContractInfo(mchId, ecNo, paramsJSON.getStr("ecName"), lklLedgerEc.getResult_url(), ecCosFileUrl, eclklFilePath); + shopMchEntryService.updateMerchantLklEContractInfo(mchId, ecNo, paramsJSON.getStr("ecName"), lklLedgerEc.getResult_url(), ecCosFileUrl, eclklFilePath); // 商家电子合同签署完毕后,收到异步通知,触发拉卡拉商家进件(重要环节) Pair resultPair = lklTkService.registrationMerchant(mchId); @@ -1496,7 +1494,7 @@ public class LakalaApiServiceImpl implements LakalaApiService { int totalCount = receiverList.size(); // 清理旧绑定数据 - lklLedgerMerReceiverBindService.delByMchIdAndMerCupNo(shopMchEntry.getId(), merCupNo); + // lklLedgerMerReceiverBindService.delByMchIdAndMerCupNo(shopMchEntry.getId(), merCupNo); // 4. 初始化SDK(建议移至类初始化或统一配置) log.debug("初始化拉卡拉SDK"); @@ -1507,10 +1505,12 @@ public class LakalaApiServiceImpl implements LakalaApiService { try { log.debug("开始处理分账接收方绑定,接收方编号: {}", receiver.getReceiver_no()); + String receiverNo = receiver.getReceiver_no(); + // 跳过已存在的绑定关系 - LklLedgerMerReceiverBind existingBind = lklLedgerMerReceiverBindService.getByCondition(merCupNo, receiver.getReceiver_no()); + LklLedgerMerReceiverBind existingBind = lklLedgerMerReceiverBindService.getByCondition(merCupNo, receiverNo); if (existingBind != null) { - log.info("分账绑定关系已存在,跳过处理:merCupNo={}, receiverNo={}", merCupNo, receiver.getReceiver_no()); + log.info("分账绑定关系已存在,跳过处理:merCupNo={}, receiverNo={}", merCupNo, receiverNo); successCount++; // 已存在的绑定视为成功 continue; } @@ -1525,7 +1525,7 @@ public class LakalaApiServiceImpl implements LakalaApiService { request.setVersion("2.0"); request.setMerInnerNo(lklLedgerMember.getMer_inner_no()); request.setMerCupNo(merCupNo); - request.setReceiverNo(receiver.getReceiver_no()); + request.setReceiverNo(receiverNo); request.setEntrustFileName(entrustFileName); request.setEntrustFilePath(entrustFilePath); request.setRetUrl(retUrl); @@ -1546,11 +1546,11 @@ public class LakalaApiServiceImpl implements LakalaApiService { } String applyId = (String) respJson.getByPath("respData.applyId"); - log.info("拉卡拉分账接收方绑定申请提交成功,订单号: {},申请ID: {}", - orderNo, applyId); + log.info("拉卡拉分账接收方绑定申请提交成功,订单号: {},商户号: {},接收方: {},申请ID: {}", + orderNo, merCupNo, receiverNo, applyId); if (StrUtil.isBlank(applyId)) { - log.error("拉卡拉分账接收方绑定申请提交失败,订单号: {},申请ID为空", orderNo); + log.error("拉卡拉分账接收方绑定申请提交失败,订单号: {},订单号: {},商户号: {},接收方: {} 申请ID为空", orderNo, merCupNo, receiverNo); continue; } @@ -1558,7 +1558,7 @@ public class LakalaApiServiceImpl implements LakalaApiService { paramsJSON.set("orderNo", orderNo); paramsJSON.set("apply_id", applyId); paramsJSON.set("org_code", orgCode); - paramsJSON.set("receiver_no", receiver.getReceiver_no()); + paramsJSON.set("receiver_no", receiverNo); paramsJSON.set("ret_url", retUrl); paramsJSON.set("remark", respJson.getStr("retMsg")); paramsJSON.set("platform_id", receiver.getPlatform_id()); @@ -1571,10 +1571,10 @@ public class LakalaApiServiceImpl implements LakalaApiService { log.debug("准备保存分账绑定记录"); if (lklLedgerMerReceiverBindService.addOrUpdateByMerCupNoReceiverNo(bindRecord)) { successCount++; - log.info("分账绑定记录保存成功,订单号: {}", orderNo); + log.info("分账绑定记录保存成功,,订单号: {},商户号: {},接收方: {}", orderNo, merCupNo, receiverNo); } else { log.warn("分账绑定记录保存失败,订单号: {},商户号: {},接收方: {}", - orderNo, merCupNo, receiver.getReceiver_no()); + orderNo, merCupNo, receiverNo); } } catch (Exception e) { 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 1cb022be..7c5a0f37 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 @@ -21,6 +21,7 @@ import com.suisung.mall.shop.lakala.service.LklLedgerMerReceiverBindService; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; +import java.util.Collections; import java.util.List; @Slf4j @@ -244,7 +245,37 @@ public class LklLedgerMerReceiverBindServiceImpl extends BaseServiceImpl selectByMchIdAndMerCupNo(Long mchId, String merCupNo) { + log.debug("开始查询商户分账接收方绑定记录,mchId={}, merCupNo={}", mchId, merCupNo); + + if (CheckUtil.isEmpty(mchId) && StrUtil.isBlank(merCupNo)) { + log.warn("查询商户分账接收方绑定记录参数校验失败,mchId和merCupNo不能同时为空"); + return Collections.emptyList(); + } + + try { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("mch_id", mchId) + .eq("mer_cup_no", merCupNo); + + List result = list(queryWrapper); + log.debug("查询商户分账接收方绑定记录完成,mchId={}, merCupNo={}, 结果数量={}", mchId, merCupNo, result.size()); + return result; + } catch (Exception e) { + log.error("查询商户分账接收方绑定记录时发生异常,mchId={}, merCupNo={}", mchId, merCupNo, e); + return Collections.emptyList(); + } + } + + /** + * 根据入驻号和商户编号删除商户分账接收方绑定记录 * * @param mchId 商户ID * @param merCupNo 商户银联编号 @@ -261,8 +292,7 @@ public class LklLedgerMerReceiverBindServiceImpl extends BaseServiceImpl queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("mer_cup_no", merCupNo) - .eq("mch_id", mchId); + queryWrapper.eq("mch_id", mchId).eq("mer_cup_no", merCupNo); boolean removeResult = remove(queryWrapper); diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/store/service/ShopMchEntryService.java b/mall-shop/src/main/java/com/suisung/mall/shop/store/service/ShopMchEntryService.java index 97f7c6a6..387d8e0b 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/store/service/ShopMchEntryService.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/store/service/ShopMchEntryService.java @@ -227,7 +227,7 @@ public interface ShopMchEntryService { * @param lklElectronicContractFilePath 拉卡拉电子合同文件路径 * @return 更新成功返回 true, 失败返回 false */ - Boolean updateMerchantLklElectronicContractInfo(Long merchantId, String lklElectronicContractNo, String lklElectronicContractName, String lklElectronicContractResultUrl, String contractDownloadUrl, String lklElectronicContractFilePath); + Boolean updateMerchantLklEContractInfo(Long merchantId, String lklElectronicContractNo, String lklElectronicContractName, String lklElectronicContractResultUrl, String contractDownloadUrl, String lklElectronicContractFilePath); /** * 更新商家入驻申请的审批状态和审批备注 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 8f49b9ce..ab87ee3c 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 @@ -1462,7 +1462,7 @@ public class ShopMchEntryServiceImpl extends BaseServiceImpl