入驻连起来
This commit is contained in:
parent
2ed235f8fb
commit
8873bff6e5
@ -26,6 +26,14 @@ public interface EsignContractService {
|
||||
*/
|
||||
CommonResult signFlowCreateByFile(String mchMobile);
|
||||
|
||||
/**
|
||||
* 内部调用:发起合同签署流程
|
||||
*
|
||||
* @param mchMobile
|
||||
* @return
|
||||
*/
|
||||
Pair<Boolean, String> innerSignFlowCreateByFile(String mchMobile);
|
||||
|
||||
/**
|
||||
* 签署流程结束异步通知(由e签宝通知)
|
||||
*
|
||||
|
||||
@ -159,28 +159,32 @@ public class EsignContractServiceImpl extends BaseServiceImpl<EsignContractMappe
|
||||
*/
|
||||
@Override
|
||||
public CommonResult signFlowCreateByFile(String mchMobile) {
|
||||
String userId = "0";
|
||||
Pair<Boolean, String> ret = innerSignFlowCreateByFile(mchMobile);
|
||||
if (!ret.getFirst()) {
|
||||
return CommonResult.failed(ret.getSecond());
|
||||
}
|
||||
|
||||
// UserDto user = getCurrentUser();
|
||||
// if (!user.isAdmin()) {
|
||||
// return CommonResult.failed("权限不足!");
|
||||
// }
|
||||
// userId = user.getId().toString();
|
||||
return CommonResult.success(null, ret.getSecond());
|
||||
}
|
||||
|
||||
@Override
|
||||
public Pair<Boolean, String> innerSignFlowCreateByFile(String mchMobile) {
|
||||
//String userId = "0";
|
||||
|
||||
if (StrUtil.isBlank(mchMobile)) {
|
||||
return CommonResult.failed("缺少必要参数!");
|
||||
return Pair.of(false, "缺少必要参数!");
|
||||
}
|
||||
|
||||
EsignContract esignContract = getEsignContractByMchMobile(mchMobile);
|
||||
if (esignContract == null) {
|
||||
return CommonResult.failed("未找到商家合同信息");
|
||||
return Pair.of(false, "未找到商家合同信息");
|
||||
}
|
||||
|
||||
// 检查商户入驻信息是否被审核通过
|
||||
// 检查店铺是否已经申请过入驻
|
||||
Integer apprStatus = shopMchEntryService.getApprovalStatus(mchMobile);
|
||||
if (!CommonConstant.MCH_APPR_STA_PASS.equals(apprStatus)) {
|
||||
return CommonResult.failed("请先审核商家入驻信息");
|
||||
return Pair.of(false, "请先审核商家入驻信息");
|
||||
}
|
||||
|
||||
//"{\"docs\":[{\"fileId\":\"ab30d2c5600441f4a7daf512e4d69157\",\"fileName\":\"平台商户入驻合同协议.pdf\"}],\"signFlowConfig\":{\"signFlowTitle\":\"平台商户入驻合同协议\",\"signFlowExpireTime\":1746844718000,\"autoFinish\":true,\"notifyUrl\":\"https://mall.gpxscs.cn/asyn/notify\",\"redirectConfig\":{\"redirectUrl\":\"https://mall.gpxscs.cn/\"}},\"signers\":[{\"signConfig\":{\"signOrder\":1},\"noticeConfig\":{\"noticeTypes\":\"1\"},\"signerType\":0,\"psnSignerInfo\":{\"psnAccount\":\"13128997057\",\"psnInfo\":{\"psnName\":\"潘军杰\"}},\"signFields\":[{\"fileId\":\"ab30d2c5600441f4a7daf512e4d69157\",\"normalSignFieldConfig\":{\"signFieldStyle\":1,\"signFieldPosition\":{\"positionPage\":40,\"positionX\":472.3607,\"positionY\":277.19104}}},{\"fileId\":\"ab30d2c5600441f4a7daf512e4d69157\",\"normalSignFieldConfig\":{\"signFieldStyle\":1,\"signFieldPosition\":{\"positionPage\":5,\"positionX\":470.58798,\"positionY\":589.14496}}}]},{\"signConfig\":{\"signOrder\":2},\"noticeConfig\":{\"noticeTypes\":\"1\"},\"signerType\":1,\"orgSignerInfo\":{\"orgName\":\"桂平发发网络有限公司\",\"orgInfo\":{\"orgIDCardNum\":\"91450881MADEQ92533\",\"orgIDCardType\":\"CRED_ORG_USCC\"},\"transactorInfo\":{\"psnAccount\":\"17777525395\",\"psnInfo\":{\"psnName\":\"谢能坤\"}}},\"signFields\":[{\"fileId\":\"ab30d2c5600441f4a7daf512e4d69157\",\"normalSignFieldConfig\":{\"signFieldStyle\":1,\"signFieldPosition\":{\"positionPage\":2,\"positionX\":479.04996,\"positionY\":357.2327}}},{\"fileId\":\"ab30d2c5600441f4a7daf512e4d69157\",\"normalSignFieldConfig\":{\"signFieldStyle\":1,\"signFieldPosition\":{\"positionPage\":5,\"positionX\":255.96832,\"positionY\":588.4553}}}]}]}";
|
||||
@ -198,7 +202,7 @@ public class EsignContractServiceImpl extends BaseServiceImpl<EsignContractMappe
|
||||
EsignHttpResponse createByDocTemplate = EsignHttpHelper.doCommHttp(serverUrl, apiAddr, requestType, jsonParams, header, debug);
|
||||
if (createByDocTemplate.getStatus() != 200 || createByDocTemplate.getBody() == null) {
|
||||
log.error("e签宝请求失败,返回状态码:{}", createByDocTemplate.getStatus());
|
||||
return CommonResult.failed("签署失败,状态码:" + createByDocTemplate.getStatus());
|
||||
return Pair.of(false, "e签宝请求失败,状态码:" + createByDocTemplate.getStatus());
|
||||
}
|
||||
|
||||
JSONObject jsonObject = JSONUtil.parseObj(createByDocTemplate.getBody());
|
||||
@ -206,20 +210,21 @@ public class EsignContractServiceImpl extends BaseServiceImpl<EsignContractMappe
|
||||
String signFlowId = (String) jsonObject.getByPath("data.signFlowId");
|
||||
if (code == null || code != 0 || StrUtil.isBlank(signFlowId)) {
|
||||
log.error("e签宝请求失败,返回状态码:{}", createByDocTemplate.getStatus());
|
||||
return CommonResult.failed("签署失败,状态码:" + createByDocTemplate.getStatus());
|
||||
return Pair.of(false, "e签宝请求失败,状态码:" + createByDocTemplate.getStatus());
|
||||
}
|
||||
|
||||
//合同签署状态:-1:预备数据阶段;0-等待签署;1-已部分签署;2-已完成(所有签署方完成签署)3-已撤销(发起方撤销签署任务)5-已过期(签署截止日到期后触发)7-已拒签(签署方拒绝签署)
|
||||
Boolean success = updateContractFlowIdAndFileUrl(esignContract.getId(), signFlowId, CommonConstant.CONTRACT_SIGN_STA_ING, null);
|
||||
if (!success) {
|
||||
log.error("更新合同流程状态失败");
|
||||
return CommonResult.failed("更新合同流程状态失败");
|
||||
return Pair.of(false, "更新合同流程状态失败");
|
||||
}
|
||||
|
||||
return CommonResult.success("合同流程创建成功,合同流程ID:" + signFlowId);
|
||||
return Pair.of(true, "合同流程创建成功,合同流程ID:" + signFlowId);
|
||||
|
||||
} catch (EsignDemoException e) {
|
||||
throw new RuntimeException(e);
|
||||
log.error("发起签署电子合同请求失败:", e);
|
||||
return Pair.of(false, "发起签署电子合同请求失败!");
|
||||
}
|
||||
}
|
||||
|
||||
@ -288,9 +293,11 @@ public class EsignContractServiceImpl extends BaseServiceImpl<EsignContractMappe
|
||||
boolean success = updateContractFlowStatusAndFileUrlBySignFlowId(signFlowId, CommonConstant.CONTRACT_SIGN_STA_FINISH, downloadUrl);
|
||||
if (success && StrUtil.isNotBlank(downloadUrl)) {
|
||||
|
||||
// 新建一个正式的已审核通过的店铺
|
||||
taskService.executeTask(() -> {
|
||||
|
||||
taskService.executeTask(() -> {
|
||||
// 申请分账
|
||||
|
||||
// 新建一个正式的已审核通过的店铺
|
||||
Pair<Integer, String> retPair = shopStoreBaseService.merchEntryInfo2StoreInfo(esignContract.getMch_mobile());
|
||||
if (retPair.getFirst() > 0) {
|
||||
// 更改合同记录表的店铺id
|
||||
|
||||
@ -54,4 +54,15 @@ public interface LklLedgerMemberService extends IBaseService<LklLedgerMember> {
|
||||
*/
|
||||
Boolean updateAuditResult(String applyId, String merInnerNo, String merCupNo, String entrustFileName, String entrustFilePath, String auditStatus, String auditStatusText, String remark);
|
||||
|
||||
/**
|
||||
* 更新分账多个状态
|
||||
*
|
||||
* @param merCupNo
|
||||
* @param hasEsigned
|
||||
* @param hasApplySplit
|
||||
* @param hasReceiver
|
||||
* @param hasBindReceiver
|
||||
* @return
|
||||
*/
|
||||
Boolean updateMulStatus(String merCupNo, Integer hasEsigned, Integer hasApplySplit, Integer hasReceiver, Integer hasBindReceiver);
|
||||
}
|
||||
|
||||
@ -49,10 +49,11 @@ public interface LklLedgerReceiverService extends IBaseService<LklLedgerReceiver
|
||||
/**
|
||||
* 内部调用:申请分账接收方
|
||||
*
|
||||
* @param merCupNo
|
||||
* @param platformId
|
||||
* @return
|
||||
*/
|
||||
Boolean innerApplyLedgerReceiver(Long platformId);
|
||||
Boolean innerApplyLedgerReceiver(String merCupNo, Long platformId);
|
||||
|
||||
/**
|
||||
* 是否存在平台方的相关记录信息?
|
||||
|
||||
@ -494,7 +494,7 @@ public class LakalaApiServiceImpl implements LakalaApiService {
|
||||
|
||||
return CommonResult.success(null, "提交成功,待审核中!");
|
||||
} catch (SDKException e) {
|
||||
log.error("分账申请失败:", e);
|
||||
log.error("申请开通分账出错:", e);
|
||||
throw new ApiException(I18nUtil._("申请开通分账出错!"), e);
|
||||
}
|
||||
}
|
||||
@ -657,7 +657,11 @@ public class LakalaApiServiceImpl implements LakalaApiService {
|
||||
LklLedgerReceiver lklLedgerReceiver = JSONUtil.toBean(StringUtils.convertCamelToSnake(paramsJSON.toString()), LklLedgerReceiver.class);
|
||||
|
||||
// 新增或修改本地数据
|
||||
lklLedgerReceiverService.saveOrUpdateByReceiverNo(lklLedgerReceiver);
|
||||
Boolean success = lklLedgerReceiverService.saveOrUpdateByReceiverNo(lklLedgerReceiver);
|
||||
if (!success) {
|
||||
log.error("接收方创建成功,但更新本地数据 lklLedgerReceiverService.saveOrUpdateByReceiverNo 失败!");
|
||||
}
|
||||
|
||||
|
||||
return CommonResult.success(lklLedgerReceiver, "创建接收方成功!");
|
||||
} catch (SDKException e) {
|
||||
|
||||
@ -12,6 +12,7 @@ import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||
import com.suisung.mall.common.constant.CommonConstant;
|
||||
import com.suisung.mall.common.modules.lakala.LklLedgerMember;
|
||||
import com.suisung.mall.core.web.service.impl.BaseServiceImpl;
|
||||
import com.suisung.mall.shop.lakala.mapper.LklLedgerMemberMapper;
|
||||
@ -116,8 +117,54 @@ public class LklLedgerMemberServiceImpl extends BaseServiceImpl<LklLedgerMemberM
|
||||
updateWrapper.set("split_entrust_file_path", entrustFilePath);
|
||||
updateWrapper.set("audit_status", auditStatus);
|
||||
updateWrapper.set("audit_status_text", auditStatusText);
|
||||
updateWrapper.set("has_esigned", CommonConstant.Enable); // 电子合同签署完成之后才能做分账申请
|
||||
updateWrapper.set("has_apply_split", CommonConstant.Enable);
|
||||
updateWrapper.set("remark", remark);
|
||||
|
||||
return update(updateWrapper);
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新分账多个状态
|
||||
*
|
||||
* @param merCupNo
|
||||
* @param hasEsigned
|
||||
* @param hasApplySplit
|
||||
* @param hasReceiver
|
||||
* @param hasBindReceiver
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public Boolean updateMulStatus(String merCupNo, Integer hasEsigned, Integer hasApplySplit, Integer hasReceiver, Integer hasBindReceiver) {
|
||||
if (StrUtil.isBlank(merCupNo)) {
|
||||
log.error("缺少参数:merCupNo}");
|
||||
return false;
|
||||
}
|
||||
|
||||
int i = 0;
|
||||
UpdateWrapper<LklLedgerMember> updateWrapper = new UpdateWrapper<>();
|
||||
updateWrapper.eq("mer_cup_no", merCupNo);
|
||||
if (hasEsigned != null && hasEsigned > 0) {
|
||||
i++;
|
||||
updateWrapper.set("has_esigned", hasEsigned);
|
||||
}
|
||||
if (hasApplySplit != null && hasApplySplit > 0) {
|
||||
i++;
|
||||
updateWrapper.set("has_apply_split", hasApplySplit);
|
||||
}
|
||||
if (hasReceiver != null && hasReceiver > 0) {
|
||||
i++;
|
||||
updateWrapper.set("has_receiver", hasReceiver);
|
||||
}
|
||||
if (hasBindReceiver != null && hasBindReceiver > 0) {
|
||||
i++;
|
||||
updateWrapper.set("has_bind_receiver", hasBindReceiver);
|
||||
}
|
||||
|
||||
if (i == 0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return update(updateWrapper);
|
||||
}
|
||||
}
|
||||
|
||||
@ -22,6 +22,7 @@ import com.suisung.mall.core.web.service.impl.BaseServiceImpl;
|
||||
import com.suisung.mall.shop.esign.service.EsignPlatformInfoService;
|
||||
import com.suisung.mall.shop.lakala.mapper.LklLedgerReceiverMapper;
|
||||
import com.suisung.mall.shop.lakala.service.LakalaApiService;
|
||||
import com.suisung.mall.shop.lakala.service.LklLedgerMemberService;
|
||||
import com.suisung.mall.shop.lakala.service.LklLedgerReceiverService;
|
||||
import org.springframework.context.annotation.Lazy;
|
||||
import org.springframework.stereotype.Service;
|
||||
@ -40,6 +41,10 @@ public class LklLedgerReceiverServiceImpl extends BaseServiceImpl<LklLedgerRecei
|
||||
@Resource
|
||||
private LakalaApiService lakalaApiService;
|
||||
|
||||
@Lazy
|
||||
@Resource
|
||||
private LklLedgerMemberService lklLedgerMemberService;
|
||||
|
||||
/**
|
||||
* 根据接收方编号新增或更新记录
|
||||
*
|
||||
@ -145,7 +150,7 @@ public class LklLedgerReceiverServiceImpl extends BaseServiceImpl<LklLedgerRecei
|
||||
|
||||
reqParam.put("receiverName", esignPlatformInfo.getLicense_company());
|
||||
reqParam.put("contactMobile", esignPlatformInfo.getLegal_person_mobile());
|
||||
|
||||
reqParam.put("platformId", esignPlatformInfo.getId());
|
||||
reqParam.put("licenseNo", esignPlatformInfo.getLicense_number());
|
||||
reqParam.put("licenseName", esignPlatformInfo.getLicense_company());
|
||||
reqParam.put("legalPersonName", esignPlatformInfo.getLegal_person_name());
|
||||
@ -199,7 +204,7 @@ public class LklLedgerReceiverServiceImpl extends BaseServiceImpl<LklLedgerRecei
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public Boolean innerApplyLedgerReceiver(Long platformId) {
|
||||
public Boolean innerApplyLedgerReceiver(String merCupNo, Long platformId) {
|
||||
JSONArray buildApplyLedgerReceiverReqParams = buildApplyLedgerReceiverReqParams(platformId);
|
||||
if (CollectionUtil.isEmpty(buildApplyLedgerReceiverReqParams)) {
|
||||
return false;
|
||||
@ -211,6 +216,9 @@ public class LklLedgerReceiverServiceImpl extends BaseServiceImpl<LklLedgerRecei
|
||||
if (result == null || result.getCode() != 200) {
|
||||
continue;
|
||||
}
|
||||
|
||||
// 更新多个状态
|
||||
lklLedgerMemberService.updateMulStatus(merCupNo, 0, 0, 1, 0);
|
||||
success += 1;
|
||||
}
|
||||
|
||||
|
||||
@ -20,6 +20,7 @@ import com.suisung.mall.common.utils.RestTemplateHttpUtil;
|
||||
import com.suisung.mall.common.utils.StringUtils;
|
||||
import com.suisung.mall.common.utils.UploadUtil;
|
||||
import com.suisung.mall.core.web.service.RedisService;
|
||||
import com.suisung.mall.shop.esign.service.EsignContractService;
|
||||
import com.suisung.mall.shop.lakala.service.LklLedgerReceiverService;
|
||||
import com.suisung.mall.shop.lakala.utils.LakalaUtil;
|
||||
import com.suisung.mall.shop.store.service.ShopMchEntryService;
|
||||
@ -77,6 +78,10 @@ public class LklTkServiceImpl {
|
||||
@Resource
|
||||
private LklLedgerReceiverService lklLedgerReceiverService;
|
||||
|
||||
@Lazy
|
||||
@Resource
|
||||
private EsignContractService esignContractService;
|
||||
|
||||
@Autowired
|
||||
private RedisService redisService;
|
||||
|
||||
@ -423,10 +428,11 @@ public class LklTkServiceImpl {
|
||||
return new JSONObject().set("code", "500").set("message", "商户入驻信息不存在");
|
||||
}
|
||||
|
||||
// 1、发起E签宝合同签署;2、立即给商家申请分账功能权限;3、新增一个接收方记录,起码要一个平台方,代理商根据入驻信息新增
|
||||
// 1、发起E签宝合同签署;签署完成之后,生成分账盖章协议书,下一步才能申请分账功能权限;
|
||||
esignContractService.innerSignFlowCreateByFile(shopMchEntry.getLogin_mobile());
|
||||
|
||||
//3
|
||||
lklLedgerReceiverService.innerApplyLedgerReceiver(shopMchEntry.getDistributor_id());
|
||||
// 2:新增一个接收方记录,起码要一个平台方,代理商根据入驻信息新增
|
||||
lklLedgerReceiverService.innerApplyLedgerReceiver(merCupNo, shopMchEntry.getDistributor_id());
|
||||
|
||||
return new JSONObject().set("code", "200").set("message", "成功");
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user