合同签署增加一个 不重复配置

This commit is contained in:
Jack 2026-01-05 08:38:35 +08:00
parent 195f3476a9
commit f38fbf782b
6 changed files with 173 additions and 98 deletions

View File

@ -46,4 +46,7 @@ public class RedisConstant {
public static final String VERIFY_CODE_KEY = "register:verifyCode:";
// 拉卡拉合同是否强制签署
public static final String LKL_EC_REPEAT_SIGN = "lkl:ec:repeat:sign:";
}

View File

@ -9,6 +9,7 @@
package com.suisung.mall.shop.lakala.service;
import com.suisung.mall.common.modules.lakala.LklLedgerEc;
import com.suisung.mall.common.modules.store.ShopMchEntry;
import com.suisung.mall.core.web.service.IBaseService;
public interface LklLedgerEcService extends IBaseService<LklLedgerEc> {
@ -58,4 +59,13 @@ public interface LklLedgerEcService extends IBaseService<LklLedgerEc> {
*/
String getLklEcResultUrl(Long mchId);
/**
* 是否已签署拉卡拉商户合同
*
* @param lklLedgerEc
* @param shopMchEntry
* @return
*/
Boolean isSignedLklEc(LklLedgerEc lklLedgerEc, ShopMchEntry shopMchEntry);
}

View File

@ -25,7 +25,9 @@ import com.lkl.laop.sdk.request.model.V3LabsTradeLocationInfo;
import com.lkl.laop.sdk.request.model.V3SacsSeparateRecvDatas;
import com.suisung.mall.common.api.CommonResult;
import com.suisung.mall.common.constant.CommonConstant;
import com.suisung.mall.common.constant.RedisConstant;
import com.suisung.mall.common.exception.ApiException;
import com.suisung.mall.common.feignService.AccountService;
import com.suisung.mall.common.feignService.ShopService;
import com.suisung.mall.common.modules.esign.EsignPlatformInfo;
import com.suisung.mall.common.modules.lakala.*;
@ -36,6 +38,7 @@ import com.suisung.mall.common.pojo.dto.LklSeparateWithTotalAmountDTO;
import com.suisung.mall.common.service.impl.CommonService;
import com.suisung.mall.common.utils.*;
import com.suisung.mall.core.web.service.RedisService;
import com.suisung.mall.shop.base.service.impl.AccountBaseConfigServiceImpl;
import com.suisung.mall.shop.esign.service.EsignPlatformInfoService;
import com.suisung.mall.shop.lakala.service.*;
import com.suisung.mall.shop.lakala.utils.LakalaUtil;
@ -48,6 +51,7 @@ import com.suisung.mall.shop.store.service.ShopMchEntryService;
import com.suisung.mall.shop.store.service.ShopStoreBaseService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.time.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Lazy;
import org.springframework.data.util.Pair;
@ -175,6 +179,10 @@ public class LakalaApiServiceImpl implements LakalaApiService {
@Lazy
@Resource
private OssService ossService;
@Autowired
private AccountService accountService;
@Autowired
private AccountBaseConfigServiceImpl accountBaseConfigService;
/**
@ -419,14 +427,35 @@ public class LakalaApiServiceImpl implements LakalaApiService {
return Pair.of(false, "缺少商家相关入驻信息!");
}
// 3. 检查是否已存在已完成的电子合同
LklLedgerEc lklLedgerEc = lklLedgerEcService.getByMchId(mchId, "", CommonConstant.Enable);
// 如果配置不允许重复签署拉卡拉电子合同则检查是否已签署拉卡拉电子合同已签署直接跳过签署合同
if (ObjectUtil.notEqual("1", accountBaseConfigService.getConfig(RedisConstant.LKL_EC_REPEAT_SIGN))) {
if (lklLedgerEcService.isSignedLklEc(lklLedgerEc, shopMchEntry)) {
log.info("商户:{} 已签署拉卡拉电子合同,直接进行进件处理!", mchId);
// 13. 触发拉卡拉商家进件流程
log.info("开始触发拉卡拉商家进件流程mchId: {}", mchId);
Pair<Boolean, String> resultPair = lklTkService.registrationMerchant(mchId);
if (!resultPair.getFirst()) {
String errMsg = resultPair.getSecond();
log.error("拉卡拉商家进件失败: {}mchId: {}", errMsg, mchId);
shopMchEntryService.updateMerchEntryApprovalByMchId(mchId, CommonConstant.MCH_APPR_STA_LKL_NOPASS, errMsg);
throw new ApiException(errMsg);
}
return Pair.of(true, "已签署合同,等待进件中!");
}
}
String contractMobile = shopMchEntry.getLegal_person_mobile();
if (StrUtil.isBlank(contractMobile)) {
log.warn("商家申请入网电子合同失败:联系人手机号为空,入驻编号: {}", mchId);
return Pair.of(false, "联系人手机号不能为空!");
}
// 3. 检查是否已存在已完成的电子合同
LklLedgerEc lklLedgerEc = lklLedgerEcService.getByMchId(shopMchEntry.getId(), "", CommonConstant.Enable);
if (lklLedgerEc != null && "COMPLETED".equals(lklLedgerEc.getEc_status())) {
log.info("商户:{} 电子合同已签署过,重新提交将被覆盖!", mchId);
}
@ -1061,6 +1090,7 @@ public class LakalaApiServiceImpl implements LakalaApiService {
updRecord.setEc_file(ecCosFileUrl); // 合同本地文件COS URL链接
updRecord.setLkl_file_path(eclklFilePath);
updRecord.setEc_status(paramsJSON.getStr("ecStatus"));
updRecord.setResp_notify_body(paramsJSON.toString());
Boolean success = lklLedgerEcService.updateByApplyId(updRecord);
if (!success) {

View File

@ -13,6 +13,7 @@ import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.suisung.mall.common.constant.CommonConstant;
import com.suisung.mall.common.modules.lakala.LklLedgerEc;
import com.suisung.mall.common.modules.store.ShopMchEntry;
import com.suisung.mall.common.utils.CheckUtil;
import com.suisung.mall.core.web.service.impl.BaseServiceImpl;
import com.suisung.mall.shop.lakala.mapper.LklLedgerEcMapper;
@ -150,4 +151,31 @@ public class LklLedgerEcServiceImpl extends BaseServiceImpl<LklLedgerEcMapper, L
return "";
}
/**
* 是否已签署拉卡拉商户合同
*
* @param lklLedgerEc
* @param shopMchEntry
* @return
*/
@Override
public Boolean isSignedLklEc(LklLedgerEc lklLedgerEc, ShopMchEntry shopMchEntry) {
if (lklLedgerEc == null || shopMchEntry == null) {
return false;
}
if (CheckUtil.isNotEmpty(shopMchEntry.getId()) || CheckUtil.isNotEmpty(lklLedgerEc.getMch_id())
|| ObjectUtil.notEqual(shopMchEntry.getId(), lklLedgerEc.getMch_id())) {
return false;
}
if (!"COMPLETED".equals(lklLedgerEc.getEc_status()) || StrUtil.isBlank(lklLedgerEc.getEc_no())
|| StrUtil.isBlank(lklLedgerEc.getResp_notify_body())) {
return false;
}
return CommonConstant.Enable.equals(shopMchEntry.getHas_ec_signed())
&& StrUtil.isNotBlank(shopMchEntry.getLkl_ec_result_url());
}
}

View File

@ -32,7 +32,6 @@ import com.suisung.mall.shop.lakala.utils.LakalaUtil;
import com.suisung.mall.shop.page.service.impl.OssServiceImpl;
import com.suisung.mall.shop.store.service.ShopMchEntryBranchService;
import com.suisung.mall.shop.store.service.ShopMchEntryService;
import com.suisung.mall.shop.store.service.ShopStoreBaseService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@ -105,9 +104,9 @@ public class LklTkServiceImpl {
@Resource
private ShopMchEntryBranchService shopMchEntryBranchService;
@Lazy
@Resource
private ShopStoreBaseService shopStoreBaseService;
// @Lazy
// @Resource
// private ShopStoreBaseService shopStoreBaseService;
@Lazy
@Resource
@ -194,7 +193,7 @@ public class LklTkServiceImpl {
// 构造请求头
JSONObject header = new JSONObject();
header.put("Authorization", authorization);
header.set("Authorization", authorization);
// 文件转Base64
String fileBase64 = UploadUtil.multipartFileToBase64(processedFile);
@ -206,10 +205,10 @@ public class LklTkServiceImpl {
// 构造请求体
JSONObject requestBody = new JSONObject();
requestBody.put("fileBase64", fileBase64);
requestBody.put("imgType", imgType);
requestBody.put("sourcechnl", "0"); // 来源: 0:PC,1:安卓,2:IOS
requestBody.put("isOcr", "true");
requestBody.set("fileBase64", fileBase64);
requestBody.set("imgType", imgType);
requestBody.set("sourcechnl", "0"); // 来源: 0:PC,1:安卓,2:IOS
requestBody.set("isOcr", "true");
// 构造请求路径
String urlPath = "/sit/htkregistration/file/base/upload";
@ -235,6 +234,12 @@ public class LklTkServiceImpl {
// 提取上传结果
JSONObject updObj = updResponse.getBody();
if (updObj == null) {
logger.error("拉卡拉文件上传返回值有误filename={}, imgType={}",
processedFile.getOriginalFilename(), imgType);
return CommonResult.failed("上传文件返回值有误");
}
String batchNo = updObj.getStr("batchNo");
if (StrUtil.isBlank(batchNo)) {
logger.error("拉卡拉文件上传返回批次号为空filename={}, imgType={}",
@ -242,7 +247,7 @@ public class LklTkServiceImpl {
return CommonResult.failed("上传文件返回值有误");
}
updObj.put("cosURL", imgURL);
updObj.set("cosURL", imgURL);
logger.info("拉卡拉文件上传成功filename={}, imgType={}, batchNo={}",
processedFile.getOriginalFilename(), imgType, batchNo);
@ -293,12 +298,12 @@ public class LklTkServiceImpl {
// 构造请求头
JSONObject header = new JSONObject();
header.put("Authorization", authorization);
header.set("Authorization", authorization);
// 构造请求体
JSONObject ocrRequestBody = new JSONObject();
ocrRequestBody.put("batchNo", batchNo);
ocrRequestBody.put("imgType", imgType);
ocrRequestBody.set("batchNo", batchNo);
ocrRequestBody.set("imgType", imgType);
logger.info("调用OCR识别接口batchNo={}, imgType={}", batchNo, imgType);
// 构造请求路径
@ -404,7 +409,7 @@ public class LklTkServiceImpl {
}
JSONObject header = new JSONObject();
header.put("Authorization", authorization);
header.set("Authorization", authorization);
// 获取商家入驻信息组成请求参数
ShopMchEntry shopMchEntry = shopMchEntryService.shopMerchEntryById(mchId);
@ -431,69 +436,69 @@ public class LklTkServiceImpl {
}
JSONObject reqJsonBody = new JSONObject();
reqJsonBody.put("userNo", userNo);
reqJsonBody.put("busiCode", "WECHAT_PAY");// WECHAT_PAY:专业化扫码;B2B_SYT:B2B收银台;
reqJsonBody.put("email", shopMchEntry.getEmail());
reqJsonBody.put("merRegName", shopMchEntry.getStore_name());
reqJsonBody.put("merName", shopMchEntry.getStore_name());
reqJsonBody.set("userNo", userNo);
reqJsonBody.set("busiCode", "WECHAT_PAY");// WECHAT_PAY:专业化扫码;B2B_SYT:B2B收银台;
reqJsonBody.set("email", shopMchEntry.getEmail());
reqJsonBody.set("merRegName", shopMchEntry.getStore_name());
reqJsonBody.set("merName", shopMchEntry.getStore_name());
AddressParseResultTO addressParseResultTO = AddressUtil.parseAddress(shopMchEntry.getStore_address());
reqJsonBody.put("merAddr", addressParseResultTO.getDetailAddress());
reqJsonBody.set("merAddr", addressParseResultTO.getDetailAddress());
// 是企业类型商家
Boolean isQy = CommonConstant.MCH_ENTITY_TYPE_QY.equals(shopMchEntry.getEntity_type());
reqJsonBody.put("merType", isQy ? "TP_MERCHANT" : "TP_PERSONAL");
reqJsonBody.set("merType", isQy ? "TP_MERCHANT" : "TP_PERSONAL");
reqJsonBody.put("longtude", shopMchEntry.getStore_longitude()); //longitude 经度
reqJsonBody.put("latitude", shopMchEntry.getStore_latitude());
reqJsonBody.put("source", "H5");
reqJsonBody.set("longtude", shopMchEntry.getStore_longitude()); //longitude 经度
reqJsonBody.set("latitude", shopMchEntry.getStore_latitude());
reqJsonBody.set("source", "H5");
reqJsonBody.put("larIdType", "01"); // 01 身份证 02 护照03 港澳通行证04 台胞证10 外国人永久居留身份证11 港妨澳居民居住证12 台湾居民居住证13 执行事务合伙人99 其它证件
reqJsonBody.set("larIdType", "01"); // 01 身份证 02 护照03 港澳通行证04 台胞证10 外国人永久居留身份证11 港妨澳居民居住证12 台湾居民居住证13 执行事务合伙人99 其它证件
String larName = isQy ? shopMchEntry.getLegal_person_name() : shopMchEntry.getContact_name();
String larIdCard = isQy ? shopMchEntry.getLegal_person_id_number() : shopMchEntry.getIndividual_id_number();
String larIdCardStart = isQy ? shopMchEntry.getLegal_person_id_period_begin() : shopMchEntry.getIndividual_id_period_begin();
String larIdCardEnd = isQy ? shopMchEntry.getLegal_person_id_period_end() : shopMchEntry.getIndividual_id_period_end();
// 法人相关信息
reqJsonBody.put("larName", larName);
reqJsonBody.put("larIdCard", larIdCard);
reqJsonBody.put("larIdCardStart", larIdCardStart); // 身份证有效期开始时间
reqJsonBody.put("larIdCardEnd", larIdCardEnd); // 身份证有效期结束时间长期9999-12-31
reqJsonBody.set("larName", larName);
reqJsonBody.set("larIdCard", larIdCard);
reqJsonBody.set("larIdCardStart", larIdCardStart); // 身份证有效期开始时间
reqJsonBody.set("larIdCardEnd", larIdCardEnd); // 身份证有效期结束时间长期9999-12-31
// 营业执照上的经营内容20字以内
String bizLicenseContent = CommonService.subZhCNString(shopMchEntry.getBiz_license_content(), 20);
reqJsonBody.put("businessContent", bizLicenseContent);
reqJsonBody.set("businessContent", bizLicenseContent);
// 营业执照信息
if (isQy) {
reqJsonBody.put("licenseName", shopMchEntry.getBiz_license_company());
reqJsonBody.put("licenseNo", shopMchEntry.getBiz_license_number());
reqJsonBody.put("licenseDtStart", shopMchEntry.getBiz_license_period_begin());
reqJsonBody.put("licenseDtEnd", shopMchEntry.getBiz_license_period_end()); // 长期9999-12-31
reqJsonBody.set("licenseName", shopMchEntry.getBiz_license_company());
reqJsonBody.set("licenseNo", shopMchEntry.getBiz_license_number());
reqJsonBody.set("licenseDtStart", shopMchEntry.getBiz_license_period_begin());
reqJsonBody.set("licenseDtEnd", shopMchEntry.getBiz_license_period_end()); // 长期9999-12-31
}
reqJsonBody.put("contactMobile", shopMchEntry.getLegal_person_mobile());
reqJsonBody.put("contactName", shopMchEntry.getContact_name());// 联系人姓名
reqJsonBody.put("contractNo", shopMchEntry.getLkl_ec_no()); // 拉卡拉入网合同编号
reqJsonBody.set("contactMobile", shopMchEntry.getLegal_person_mobile());
reqJsonBody.set("contactName", shopMchEntry.getContact_name());// 联系人姓名
reqJsonBody.set("contractNo", shopMchEntry.getLkl_ec_no()); // 拉卡拉入网合同编号
// 银行账号关键字段
reqJsonBody.put("openningBankCode", shopMchEntry.getOpenning_bank_code());//结算账户开户
reqJsonBody.put("openningBankName", shopMchEntry.getBank_name());//结算账户开户名称
reqJsonBody.put("clearingBankCode", shopMchEntry.getClearing_bank_code());//结算账户清算
reqJsonBody.set("openningBankCode", shopMchEntry.getOpenning_bank_code());//结算账户开户
reqJsonBody.set("openningBankName", shopMchEntry.getBank_name());//结算账户开户名称
reqJsonBody.set("clearingBankCode", shopMchEntry.getClearing_bank_code());//结算账户清算
reqJsonBody.put("accountType", isQy ? "57" : "58"); //结算账户类型: 57 对公 58 对私
reqJsonBody.put("accountNo", shopMchEntry.getAccount_number()); //结算人银行卡号
reqJsonBody.put("accountName", shopMchEntry.getAccount_holder_name()); //结算人账户名称
reqJsonBody.put("accountIdCard", larIdCard);//结算法人或小微个人证件号码(身份证)
reqJsonBody.set("accountType", isQy ? "57" : "58"); //结算账户类型: 57 对公 58 对私
reqJsonBody.set("accountNo", shopMchEntry.getAccount_number()); //结算人银行卡号
reqJsonBody.set("accountName", shopMchEntry.getAccount_holder_name()); //结算人账户名称
reqJsonBody.set("accountIdCard", larIdCard);//结算法人或小微个人证件号码(身份证)
reqJsonBody.put("settleType", "D1"); //结算类型0-秒到不分账1-次日结算需要分账
reqJsonBody.put("settlementType", "AUTOMATIC"); // 结算方式MANUAL:手动结算(结算至拉卡拉APP钱包),AUTOMATIC:自动结算到银行卡,REGULAR:定时结算仅企业商户支持
reqJsonBody.set("settleType", "D1"); //结算类型0-秒到不分账1-次日结算需要分账
reqJsonBody.set("settlementType", "AUTOMATIC"); // 结算方式MANUAL:手动结算(结算至拉卡拉APP钱包),AUTOMATIC:自动结算到银行卡,REGULAR:定时结算仅企业商户支持
// 店铺省市区信息
Map<String, String> areaCode = getAreaCode(shopMchEntry.getStore_area(), false);
if (ObjectUtil.isNotEmpty(areaCode)) {
reqJsonBody.put("provinceCode", areaCode.get("provinceCode"));
reqJsonBody.put("cityCode", areaCode.get("cityCode"));
reqJsonBody.put("countyCode", areaCode.get("countyCode"));
reqJsonBody.set("provinceCode", areaCode.get("provinceCode"));
reqJsonBody.set("cityCode", areaCode.get("cityCode"));
reqJsonBody.set("countyCode", areaCode.get("countyCode"));
}
//银行结算信息省市信息
@ -510,38 +515,38 @@ public class LklTkServiceImpl {
String[] bankAreaCodes = shopMchEntry.getBank_district().split("/");
String[] bankAreaNames = shopMchEntry.getBank_area().split("/");
if (bankAreaCodes.length >= 2 && bankAreaNames.length >= 2) {
reqJsonBody.put("settleProvinceCode", bankAreaCodes[0]);
reqJsonBody.put("settleProvinceName", bankAreaCodes[1]);
reqJsonBody.put("settleCityCode", bankAreaNames[0]);
reqJsonBody.put("settleCityName", bankAreaNames[1]);
reqJsonBody.set("settleProvinceCode", bankAreaCodes[0]);
reqJsonBody.set("settleProvinceName", bankAreaCodes[1]);
reqJsonBody.set("settleCityCode", bankAreaNames[0]);
reqJsonBody.set("settleCityName", bankAreaNames[1]);
}
} else {
Map<String, String> bankAreaCode = getAreaCode(shopMchEntry.getBank_area(), true);
if (ObjectUtil.isNotEmpty(bankAreaCode)) {
reqJsonBody.put("settleProvinceCode", bankAreaCode.get("provinceCode"));
reqJsonBody.put("settleCityCode", bankAreaCode.get("cityCode"));
reqJsonBody.set("settleProvinceCode", bankAreaCode.get("provinceCode"));
reqJsonBody.set("settleCityCode", bankAreaCode.get("cityCode"));
String[] bankAreaName = shopMchEntry.getBank_area().split("/");
if (bankAreaName.length >= 2) {
reqJsonBody.put("settleProvinceName", bankAreaName[0]);
reqJsonBody.put("settleCityName", bankAreaName[1]);
reqJsonBody.set("settleProvinceName", bankAreaName[0]);
reqJsonBody.set("settleCityName", bankAreaName[1]);
}
}
}
// 费率和设备活动
JSONObject bizContent = new JSONObject();
bizContent.put("activityId", activityId);
bizContent.put("termNum", "1");
bizContent.put("mcc", "12015"); // 超市的 MCC code
bizContent.put("fees", new JSONArray() {{
bizContent.set("activityId", activityId);
bizContent.set("termNum", "1");
bizContent.set("mcc", "12015"); // 超市的 MCC code
bizContent.set("fees", new JSONArray() {{
put(new JSONObject() {
{
put("feeCode", "WECHAT");
put("feeValue", wxFee);
set("feeCode", "WECHAT");
set("feeValue", wxFee);
}
});
}});
reqJsonBody.put("bizContent", bizContent);
reqJsonBody.set("bizContent", bizContent);
// 附件文件相关开始
logger.debug("开始处理商户附件文件商户ID: {}", mchId);
@ -550,7 +555,7 @@ public class LklTkServiceImpl {
// 企业
JSONObject SETTLE_ID_CARD_FRONT = updatePhoto(shopMchEntry.getLegal_person_id_images(), "ID_CARD_FRONT", false);
if (SETTLE_ID_CARD_FRONT != null) {
attachments.put(SETTLE_ID_CARD_FRONT); // 法人身份证正面
attachments.set(SETTLE_ID_CARD_FRONT); // 法人身份证正面
logger.debug("成功添加法人身份证正面图片");
} else {
logger.warn("法人身份证正面图片添加失败");
@ -558,7 +563,7 @@ public class LklTkServiceImpl {
JSONObject SETTLE_ID_CARD_BEHIND = updatePhoto(shopMchEntry.getLegal_person_id_images2(), "ID_CARD_BEHIND", false);
if (SETTLE_ID_CARD_BEHIND != null) {
attachments.put(SETTLE_ID_CARD_BEHIND); // 法人身份证国徽面
attachments.set(SETTLE_ID_CARD_BEHIND); // 法人身份证国徽面
logger.debug("成功添加法人身份证国徽面图片");
} else {
logger.warn("法人身份证国徽面图片添加失败");
@ -566,7 +571,7 @@ public class LklTkServiceImpl {
JSONObject BUSINESS_LICENCE = updatePhoto(shopMchEntry.getBiz_license_image(), "BUSINESS_LICENCE", false);
if (BUSINESS_LICENCE != null) {
attachments.put(BUSINESS_LICENCE); // 营业执照
attachments.set(BUSINESS_LICENCE); // 营业执照
logger.debug("成功添加营业执照图片");
} else {
logger.warn("营业执照图片添加失败");
@ -575,7 +580,7 @@ public class LklTkServiceImpl {
// 银行对公开户正面
JSONObject OPENING_PERMIT = updatePhoto(shopMchEntry.getOpening_permit_image(), "OPENING_PERMIT", false);
if (OPENING_PERMIT != null) {
attachments.put(OPENING_PERMIT); // 营业执照
attachments.set(OPENING_PERMIT); // 营业执照
logger.debug("成功添加开户许可证证明图片");
} else {
logger.warn("成功添加开户许可证证明图片添加失败");
@ -585,7 +590,7 @@ public class LklTkServiceImpl {
// 小微个人
JSONObject ID_CARD_FRONT = updatePhoto(shopMchEntry.getIndividual_id_images(), "ID_CARD_FRONT", false);
if (ID_CARD_FRONT != null) {
attachments.put(ID_CARD_FRONT); // 身份证正面
attachments.set(ID_CARD_FRONT); // 身份证正面
logger.debug("成功添加身份证正面图片");
} else {
logger.warn("身份证正面图片添加失败");
@ -593,7 +598,7 @@ public class LklTkServiceImpl {
JSONObject ID_CARD_BEHIND = updatePhoto(shopMchEntry.getIndividual_id_images2(), "ID_CARD_BEHIND", false);
if (ID_CARD_BEHIND != null) {
attachments.put(ID_CARD_BEHIND); // 身份证国徽面
attachments.set(ID_CARD_BEHIND); // 身份证国徽面
logger.debug("成功添加身份证国徽面图片");
} else {
logger.warn("身份证国徽面图片添加失败");
@ -602,7 +607,7 @@ public class LklTkServiceImpl {
// 对私必传银行卡
JSONObject BANK_CARD = updatePhoto(shopMchEntry.getBank_image(), "BANK_CARD", false);
if (BANK_CARD != null) {
attachments.put(BANK_CARD); // 银行卡图片
attachments.set(BANK_CARD); // 银行卡图片
logger.debug("成功添加银行卡图片");
} else {
logger.warn("银行卡图片添加失败");
@ -611,7 +616,7 @@ public class LklTkServiceImpl {
JSONObject SHOP_OUTSIDE_IMG = updatePhoto(shopMchEntry.getFront_facade_image(), "SHOP_OUTSIDE_IMG", false);
if (SHOP_OUTSIDE_IMG != null) {
attachments.put(SHOP_OUTSIDE_IMG); // 门店门面图片
attachments.set(SHOP_OUTSIDE_IMG); // 门店门面图片
logger.debug("成功添加门店门面图片");
} else {
logger.warn("门店门面图片添加失败");
@ -619,7 +624,7 @@ public class LklTkServiceImpl {
JSONObject SHOP_INSIDE_IMG = updatePhoto(shopMchEntry.getEnvironment_image(), "SHOP_INSIDE_IMG", false);
if (SHOP_INSIDE_IMG != null) {
attachments.put(SHOP_INSIDE_IMG); // 门店内部图片
attachments.set(SHOP_INSIDE_IMG); // 门店内部图片
logger.debug("成功添加门店内部图片");
} else {
logger.warn("门店内部图片添加失败");
@ -628,13 +633,13 @@ public class LklTkServiceImpl {
// 收银台图片
JSONObject CHECKSTAND_IMG = updatePhoto(shopMchEntry.getCheckstand_image(), "CHECKSTAND_IMG", false);
if (CHECKSTAND_IMG != null) {
attachments.put(CHECKSTAND_IMG); // 收银台图片
attachments.set(CHECKSTAND_IMG); // 收银台图片
logger.debug("成功添加收银台图片");
} else {
logger.warn("收银台图片添加失败");
}
reqJsonBody.put("attchments", attachments);
reqJsonBody.set("attchments", attachments);
logger.debug("商户附件文件处理完成,共添加 {} 个附件", attachments.size());
// 附件文件相关结束
@ -755,7 +760,7 @@ public class LklTkServiceImpl {
ShopMchEntry shopMchEntry = shopMchEntryService.getShopMerchEntryByMerInnerNo(merInnerNo);
if (shopMchEntry == null) {
logger.error("拉卡拉进件异步通知:{}内部商户号入驻信息不存在!", merInnerNo);
return new JSONObject().put("code", "500").put("message", merInnerNo + "内部商户号入驻信息不存在");
return new JSONObject().set("code", "500").set("message", merInnerNo + "内部商户号入驻信息不存在");
}
Long mchId = shopMchEntry.getId();
@ -872,7 +877,7 @@ public class LklTkServiceImpl {
ShopMchEntry shopMchEntry = shopMchEntryService.getShopMerchEntryByMerCupNo(merCupNo, 0L);
if (shopMchEntry == null) {
logger.error("拉卡拉商户增终异步通知 - 商户号入驻信息不存在: {}", merCupNo);
return new JSONObject().put("code", "500").put("message", merCupNo + "商户号入驻信息不存在");
return new JSONObject().set("code", "500").set("message", merCupNo + "商户号入驻信息不存在");
}
// 校验审核状态: PREPARE:待提交; PASS:通过; UNPASS:未通过; PASSING:审核中;
@ -1175,7 +1180,7 @@ public class LklTkServiceImpl {
}
JSONObject header = new JSONObject();
header.put("Authorization", getLklTkAuthorization());
header.set("Authorization", getLklTkAuthorization());
String urlPath = "/sit/htkregistration/organization";
if (isLklProd) {
@ -1279,10 +1284,10 @@ public class LklTkServiceImpl {
// Base64Utils.encodeToString(file.getBytes());
JSONObject requestBody = new JSONObject();
requestBody.put("fileBase64", fileBase64);
requestBody.put("imgType", imgType);
requestBody.put("sourcechnl", "0"); // 来源: 0:PC,1:安卓,2:IOS
requestBody.put("isOcr", "true");
requestBody.set("fileBase64", fileBase64);
requestBody.set("imgType", imgType);
requestBody.set("sourcechnl", "0"); // 来源: 0:PC,1:安卓,2:IOS
requestBody.set("isOcr", "true");
String urlPath = "/sit/htkregistration/file/base/upload";
if (isLklProd) {
@ -1303,7 +1308,7 @@ public class LklTkServiceImpl {
return null;
}
return new JSONObject().put("id", result.get("url")).put("type", imgType);
return new JSONObject().set("id", result.get("url")).set("type", imgType);
} catch (Exception e) {
logger.error("上传文件异常:{}", e.getMessage());
return null;
@ -1315,13 +1320,13 @@ public class LklTkServiceImpl {
}
JSONObject header = new JSONObject();
header.put("Authorization", getLklTkAuthorization());
header.set("Authorization", getLklTkAuthorization());
// Base64Utils.encodeToString(file.getBytes());
JSONObject requestBody = new JSONObject();
requestBody.put("areaCode", areaCode);
requestBody.put("bankName", bankName);
requestBody.set("areaCode", areaCode);
requestBody.set("bankName", bankName);
String urlPath = "/sit/registration/bank";
if (isLklProd) {
@ -1342,7 +1347,7 @@ public class LklTkServiceImpl {
return null;
}
return new JSONObject().put("id", result.get("url")).put("type", "");
return new JSONObject().set("id", result.get("url")).set("type", "");
} catch (Exception e) {
logger.error("上传文件异常:{}", e.getMessage());
return null;

View File

@ -662,17 +662,17 @@ public class ShopMchEntryServiceImpl extends BaseServiceImpl<ShopMchEntryMapper,
/**
* 通过 mobile 申请手机号或自增 ID 获取商家入驻申请详情
*
* @param recordId 商家入驻记录ID可选
* @param mchId 商家入驻编号可选
* @param mobile 商家登录手机号可选
* @param approvalStatusList 审批状态列表过滤条件可选
* @return CommonResult 包含商家入驻申请详情的响应结果
*/
@Override
public CommonResult shopMerchEntryDetail(Long recordId, String mobile, List<Integer> approvalStatusList) {
log.debug("获取商家入驻申请详情开始: recordId={}, mobile={}", recordId, mobile);
public CommonResult shopMerchEntryDetail(Long mchId, String mobile, List<Integer> approvalStatusList) {
log.debug("获取商家入驻申请详情开始: recordId={}, mobile={}", mchId, mobile);
// 参数校验recordId mobile 至少提供一个
if (ObjectUtil.isEmpty(recordId) && StrUtil.isBlank(mobile)) {
if (ObjectUtil.isEmpty(mchId) && StrUtil.isBlank(mobile)) {
log.warn("获取商家入驻详情失败:缺少必要参数 recordId 或 mobile");
return CommonResult.failed("缺少必要参数!");
}
@ -682,8 +682,8 @@ public class ShopMchEntryServiceImpl extends BaseServiceImpl<ShopMchEntryMapper,
QueryWrapper<ShopMchEntry> queryWrapper = new QueryWrapper<>();
// 根据ID查询
if (ObjectUtil.isNotEmpty(recordId)) {
queryWrapper.eq("id", recordId);
if (ObjectUtil.isNotEmpty(mchId)) {
queryWrapper.eq("id", mchId);
}
// 根据手机号查询
@ -702,7 +702,7 @@ public class ShopMchEntryServiceImpl extends BaseServiceImpl<ShopMchEntryMapper,
// 如果没有找到记录返回默认的成功结果
if (ObjectUtil.isEmpty(record)) {
log.debug("未找到商家入驻记录: recordId={}, mobile={}", recordId, mobile);
log.debug("未找到商家入驻记录: recordId={}, mobile={}", mchId, mobile);
return CommonResult.success(
new JSONObject().set("approval_status", CommonConstant.MCH_APPR_STA_NONE),
"请求成功!"
@ -717,7 +717,6 @@ public class ShopMchEntryServiceImpl extends BaseServiceImpl<ShopMchEntryMapper,
// 尝试更新入驻表的合同下载地址和合同签署状态
updateMerchEntrySignedStatusAndContractDownloadUrl(record);
if (StrUtil.isNotBlank(record.getStore_id())) {
// 转换为JSONObject并添加额外属性
JSONObject retObj = JSONUtil.parseObj(record);
@ -732,7 +731,7 @@ public class ShopMchEntryServiceImpl extends BaseServiceImpl<ShopMchEntryMapper,
return CommonResult.success(record);
} catch (Exception e) {
log.error("获取商家入驻申请详情异常: recordId={}, mobile={}", recordId, mobile, e);
log.error("获取商家入驻申请详情异常: recordId={}, mobile={}", mchId, mobile, e);
return CommonResult.failed("系统异常,请稍后重试");
}
}