合同签署增加一个 不重复配置
This commit is contained in:
parent
195f3476a9
commit
f38fbf782b
@ -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:";
|
||||
|
||||
}
|
||||
|
||||
@ -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);
|
||||
|
||||
}
|
||||
|
||||
@ -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) {
|
||||
|
||||
@ -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());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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("系统异常,请稍后重试");
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user