优化 分账接收方绑定
This commit is contained in:
parent
422bd92f4a
commit
d8b068e14f
@ -92,6 +92,15 @@ public interface LklLedgerMerReceiverBindService extends IBaseService<LklLedgerM
|
|||||||
*/
|
*/
|
||||||
Boolean updateAuditResult(String applyId, String merInnerNo, String merCupNo, String receiverNo, String entrustFileName, String entrustFilePath, String auditStatus, String auditStatusText, String remark);
|
Boolean updateAuditResult(String applyId, String merInnerNo, String merCupNo, String receiverNo, String entrustFileName, String entrustFilePath, String auditStatus, String auditStatusText, String remark);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据入驻号和商户编号查询商户分账接收方绑定记录
|
||||||
|
*
|
||||||
|
* @param mchId 商户ID
|
||||||
|
* @param merCupNo 商户银联编号
|
||||||
|
* @return 删除成功返回true,失败返回false
|
||||||
|
*/
|
||||||
|
List<LklLedgerMerReceiverBind> selectByMchIdAndMerCupNo(Long mchId, String merCupNo);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据入驻编号和商户编号删除商户分账接收方绑定记录
|
* 根据入驻编号和商户编号删除商户分账接收方绑定记录
|
||||||
*
|
*
|
||||||
|
|||||||
@ -403,7 +403,6 @@ public class LakalaApiServiceImpl implements LakalaApiService {
|
|||||||
// TODO 电子合同已签署完成(但有一些错误的信息),这种情况,需要怎么处理?
|
// TODO 电子合同已签署完成(但有一些错误的信息),这种情况,需要怎么处理?
|
||||||
// 办法:重新再签署合同,更新拉卡拉的电子合同信息到商家入驻表中
|
// 办法:重新再签署合同,更新拉卡拉的电子合同信息到商家入驻表中
|
||||||
|
|
||||||
// return Pair.of(true, I18nUtil._("已提交进件申请,请等待机构审核!"));
|
|
||||||
log.info("商户:{} 电子合同已签署过,重新提交将被覆盖!", mchId);
|
log.info("商户:{} 电子合同已签署过,重新提交将被覆盖!", mchId);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -665,7 +664,7 @@ public class LakalaApiServiceImpl implements LakalaApiService {
|
|||||||
paramsJSON.put("splitEntrustFilePath", splitEntrustFilePath);
|
paramsJSON.put("splitEntrustFilePath", splitEntrustFilePath);
|
||||||
paramsJSON.put("retUrl", notifyUrl);
|
paramsJSON.put("retUrl", notifyUrl);
|
||||||
|
|
||||||
paramsJSON.put("splitLowestRatio", splitLowestRatio);
|
paramsJSON.put("splitLowestRatio", splitLowestRatio); // 商家最低分账比例不低于 20%
|
||||||
paramsJSON.put("splitRange", "ALL");
|
paramsJSON.put("splitRange", "ALL");
|
||||||
paramsJSON.put("settleType", "01");
|
paramsJSON.put("settleType", "01");
|
||||||
// paramsJSON.put("splitLaunchMode", "MANUAL");
|
// paramsJSON.put("splitLaunchMode", "MANUAL");
|
||||||
@ -896,7 +895,6 @@ public class LakalaApiServiceImpl implements LakalaApiService {
|
|||||||
* @param request
|
* @param request
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
// @Transactional
|
|
||||||
@Override
|
@Override
|
||||||
public JSONObject applyLedgerMerEcNotify(HttpServletRequest request) {
|
public JSONObject applyLedgerMerEcNotify(HttpServletRequest request) {
|
||||||
log.debug("商户入网电子合同申请回调通知开始");
|
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<Boolean, String> resultPair = lklTkService.registrationMerchant(mchId);
|
Pair<Boolean, String> resultPair = lklTkService.registrationMerchant(mchId);
|
||||||
@ -1496,7 +1494,7 @@ public class LakalaApiServiceImpl implements LakalaApiService {
|
|||||||
int totalCount = receiverList.size();
|
int totalCount = receiverList.size();
|
||||||
|
|
||||||
// 清理旧绑定数据
|
// 清理旧绑定数据
|
||||||
lklLedgerMerReceiverBindService.delByMchIdAndMerCupNo(shopMchEntry.getId(), merCupNo);
|
// lklLedgerMerReceiverBindService.delByMchIdAndMerCupNo(shopMchEntry.getId(), merCupNo);
|
||||||
|
|
||||||
// 4. 初始化SDK(建议移至类初始化或统一配置)
|
// 4. 初始化SDK(建议移至类初始化或统一配置)
|
||||||
log.debug("初始化拉卡拉SDK");
|
log.debug("初始化拉卡拉SDK");
|
||||||
@ -1507,10 +1505,12 @@ public class LakalaApiServiceImpl implements LakalaApiService {
|
|||||||
try {
|
try {
|
||||||
log.debug("开始处理分账接收方绑定,接收方编号: {}", receiver.getReceiver_no());
|
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) {
|
if (existingBind != null) {
|
||||||
log.info("分账绑定关系已存在,跳过处理:merCupNo={}, receiverNo={}", merCupNo, receiver.getReceiver_no());
|
log.info("分账绑定关系已存在,跳过处理:merCupNo={}, receiverNo={}", merCupNo, receiverNo);
|
||||||
successCount++; // 已存在的绑定视为成功
|
successCount++; // 已存在的绑定视为成功
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@ -1525,7 +1525,7 @@ public class LakalaApiServiceImpl implements LakalaApiService {
|
|||||||
request.setVersion("2.0");
|
request.setVersion("2.0");
|
||||||
request.setMerInnerNo(lklLedgerMember.getMer_inner_no());
|
request.setMerInnerNo(lklLedgerMember.getMer_inner_no());
|
||||||
request.setMerCupNo(merCupNo);
|
request.setMerCupNo(merCupNo);
|
||||||
request.setReceiverNo(receiver.getReceiver_no());
|
request.setReceiverNo(receiverNo);
|
||||||
request.setEntrustFileName(entrustFileName);
|
request.setEntrustFileName(entrustFileName);
|
||||||
request.setEntrustFilePath(entrustFilePath);
|
request.setEntrustFilePath(entrustFilePath);
|
||||||
request.setRetUrl(retUrl);
|
request.setRetUrl(retUrl);
|
||||||
@ -1546,11 +1546,11 @@ public class LakalaApiServiceImpl implements LakalaApiService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
String applyId = (String) respJson.getByPath("respData.applyId");
|
String applyId = (String) respJson.getByPath("respData.applyId");
|
||||||
log.info("拉卡拉分账接收方绑定申请提交成功,订单号: {},申请ID: {}",
|
log.info("拉卡拉分账接收方绑定申请提交成功,订单号: {},商户号: {},接收方: {},申请ID: {}",
|
||||||
orderNo, applyId);
|
orderNo, merCupNo, receiverNo, applyId);
|
||||||
|
|
||||||
if (StrUtil.isBlank(applyId)) {
|
if (StrUtil.isBlank(applyId)) {
|
||||||
log.error("拉卡拉分账接收方绑定申请提交失败,订单号: {},申请ID为空", orderNo);
|
log.error("拉卡拉分账接收方绑定申请提交失败,订单号: {},订单号: {},商户号: {},接收方: {} 申请ID为空", orderNo, merCupNo, receiverNo);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1558,7 +1558,7 @@ public class LakalaApiServiceImpl implements LakalaApiService {
|
|||||||
paramsJSON.set("orderNo", orderNo);
|
paramsJSON.set("orderNo", orderNo);
|
||||||
paramsJSON.set("apply_id", applyId);
|
paramsJSON.set("apply_id", applyId);
|
||||||
paramsJSON.set("org_code", orgCode);
|
paramsJSON.set("org_code", orgCode);
|
||||||
paramsJSON.set("receiver_no", receiver.getReceiver_no());
|
paramsJSON.set("receiver_no", receiverNo);
|
||||||
paramsJSON.set("ret_url", retUrl);
|
paramsJSON.set("ret_url", retUrl);
|
||||||
paramsJSON.set("remark", respJson.getStr("retMsg"));
|
paramsJSON.set("remark", respJson.getStr("retMsg"));
|
||||||
paramsJSON.set("platform_id", receiver.getPlatform_id());
|
paramsJSON.set("platform_id", receiver.getPlatform_id());
|
||||||
@ -1571,10 +1571,10 @@ public class LakalaApiServiceImpl implements LakalaApiService {
|
|||||||
log.debug("准备保存分账绑定记录");
|
log.debug("准备保存分账绑定记录");
|
||||||
if (lklLedgerMerReceiverBindService.addOrUpdateByMerCupNoReceiverNo(bindRecord)) {
|
if (lklLedgerMerReceiverBindService.addOrUpdateByMerCupNoReceiverNo(bindRecord)) {
|
||||||
successCount++;
|
successCount++;
|
||||||
log.info("分账绑定记录保存成功,订单号: {}", orderNo);
|
log.info("分账绑定记录保存成功,,订单号: {},商户号: {},接收方: {}", orderNo, merCupNo, receiverNo);
|
||||||
} else {
|
} else {
|
||||||
log.warn("分账绑定记录保存失败,订单号: {},商户号: {},接收方: {}",
|
log.warn("分账绑定记录保存失败,订单号: {},商户号: {},接收方: {}",
|
||||||
orderNo, merCupNo, receiver.getReceiver_no());
|
orderNo, merCupNo, receiverNo);
|
||||||
}
|
}
|
||||||
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
|
|||||||
@ -21,6 +21,7 @@ import com.suisung.mall.shop.lakala.service.LklLedgerMerReceiverBindService;
|
|||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@ -244,7 +245,37 @@ public class LklLedgerMerReceiverBindServiceImpl extends BaseServiceImpl<LklLedg
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据商户编号删除商户分账接收方绑定记录
|
* 根据入驻号和商户编号查询商户分账接收方绑定记录
|
||||||
|
*
|
||||||
|
* @param mchId 商户ID
|
||||||
|
* @param merCupNo 商户银联编号
|
||||||
|
* @return 符合条件的商户分账接收方绑定记录列表
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public List<LklLedgerMerReceiverBind> 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<LklLedgerMerReceiverBind> queryWrapper = new QueryWrapper<>();
|
||||||
|
queryWrapper.eq("mch_id", mchId)
|
||||||
|
.eq("mer_cup_no", merCupNo);
|
||||||
|
|
||||||
|
List<LklLedgerMerReceiverBind> 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 mchId 商户ID
|
||||||
* @param merCupNo 商户银联编号
|
* @param merCupNo 商户银联编号
|
||||||
@ -261,8 +292,7 @@ public class LklLedgerMerReceiverBindServiceImpl extends BaseServiceImpl<LklLedg
|
|||||||
}
|
}
|
||||||
|
|
||||||
QueryWrapper<LklLedgerMerReceiverBind> queryWrapper = new QueryWrapper<>();
|
QueryWrapper<LklLedgerMerReceiverBind> queryWrapper = new QueryWrapper<>();
|
||||||
queryWrapper.eq("mer_cup_no", merCupNo)
|
queryWrapper.eq("mch_id", mchId).eq("mer_cup_no", merCupNo);
|
||||||
.eq("mch_id", mchId);
|
|
||||||
|
|
||||||
boolean removeResult = remove(queryWrapper);
|
boolean removeResult = remove(queryWrapper);
|
||||||
|
|
||||||
|
|||||||
@ -227,7 +227,7 @@ public interface ShopMchEntryService {
|
|||||||
* @param lklElectronicContractFilePath 拉卡拉电子合同文件路径
|
* @param lklElectronicContractFilePath 拉卡拉电子合同文件路径
|
||||||
* @return 更新成功返回 true, 失败返回 false
|
* @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);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 更新商家入驻申请的审批状态和审批备注
|
* 更新商家入驻申请的审批状态和审批备注
|
||||||
|
|||||||
@ -1462,7 +1462,7 @@ public class ShopMchEntryServiceImpl extends BaseServiceImpl<ShopMchEntryMapper,
|
|||||||
* @return 更新成功返回 true, 失败返回 false
|
* @return 更新成功返回 true, 失败返回 false
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public Boolean updateMerchantLklElectronicContractInfo(Long merchantId, String lklElectronicContractNo, String lklElectronicContractName, String lklElectronicContractResultUrl, String contractDownloadUrl, String lklElectronicContractFilePath) {
|
public Boolean updateMerchantLklEContractInfo(Long merchantId, String lklElectronicContractNo, String lklElectronicContractName, String lklElectronicContractResultUrl, String contractDownloadUrl, String lklElectronicContractFilePath) {
|
||||||
// 1. 参数校验: 确保merchantId和lklElectronicContractNo至少有一个不为空
|
// 1. 参数校验: 确保merchantId和lklElectronicContractNo至少有一个不为空
|
||||||
if (ObjectUtil.isEmpty(merchantId) && StrUtil.isBlank(lklElectronicContractNo)) {
|
if (ObjectUtil.isEmpty(merchantId) && StrUtil.isBlank(lklElectronicContractNo)) {
|
||||||
log.warn("商户ID和拉卡拉电子合同编号都为空, 无法更新");
|
log.warn("商户ID和拉卡拉电子合同编号都为空, 无法更新");
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user