验证码bug修改
This commit is contained in:
parent
cec7158174
commit
b6af474c76
@ -2362,39 +2362,39 @@ public class AccountUserBaseServiceImpl extends BaseServiceImpl<AccountUserBaseM
|
||||
}
|
||||
|
||||
String mobileOrEmail = "";
|
||||
AccountUserBindConnect accountUserBindConnect = null;
|
||||
boolean isMobile = PhoneNumberUtils.checkPhoneNumber(number);
|
||||
if (isMobile) {
|
||||
// number 是手机格式
|
||||
AccountUserBindConnect accountUserBindConnect = accountUserBindConnectService.getBindByBindId(PhoneNumberUtils.convZhPhoneNumber(number), BindCode.MOBILE);
|
||||
if (accountUserBindConnect == null) {
|
||||
return CommonResult.failed(_("账号有异常!"));
|
||||
accountUserBindConnect = accountUserBindConnectService.getBindByBindId(PhoneNumberUtils.convZhPhoneNumber(number), BindCode.MOBILE);
|
||||
if (accountUserBindConnect != null) {
|
||||
// 获取绑定的手机号(带国家码)
|
||||
mobileOrEmail = PhoneNumberUtils.convZhPhoneNumber(accountUserBindConnect.getBind_id());
|
||||
}
|
||||
|
||||
// 获取绑定的手机号(带国家码)
|
||||
mobileOrEmail = PhoneNumberUtils.convZhPhoneNumber(accountUserBindConnect.getBind_id());
|
||||
} else if (CheckUtil.isEmail(number)) {
|
||||
// number 是邮箱格式
|
||||
AccountUserBindConnect accountUserBindConnect = accountUserBindConnectService.getBindByBindId(number, BindCode.EMAIL);
|
||||
if (accountUserBindConnect == null) {
|
||||
return CommonResult.failed(_("账号有异常!"));
|
||||
accountUserBindConnect = accountUserBindConnectService.getBindByBindId(number, BindCode.EMAIL);
|
||||
if (accountUserBindConnect != null) {
|
||||
// email
|
||||
mobileOrEmail = accountUserBindConnect.getBind_id();
|
||||
}
|
||||
|
||||
// email
|
||||
mobileOrEmail = accountUserBindConnect.getBind_id();
|
||||
} else {
|
||||
// number 是userAccount账号格式
|
||||
AccountUserBase accountUserBase = accountUserBaseService.getByAccount(number);
|
||||
if (accountUserBase == null) {
|
||||
return CommonResult.failed(_("账号有异常!"));
|
||||
if (accountUserBase != null) {
|
||||
accountUserBindConnect = accountUserBindConnectService.getBindByUserId(accountUserBase.getUser_id(), BindCode.MOBILE);
|
||||
if (accountUserBindConnect != null) {
|
||||
// 获取绑定的手机号(带国家码)
|
||||
mobileOrEmail = PhoneNumberUtils.convZhPhoneNumber(accountUserBindConnect.getBind_id());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
AccountUserBindConnect accountUserBindConnect = accountUserBindConnectService.getBindByUserId(accountUserBase.getUser_id(), BindCode.MOBILE);
|
||||
if (accountUserBindConnect == null) {
|
||||
return CommonResult.failed(_("账号有异常!"));
|
||||
}
|
||||
|
||||
// 获取绑定的手机号(带国家码)
|
||||
mobileOrEmail = PhoneNumberUtils.convZhPhoneNumber(accountUserBindConnect.getBind_id());
|
||||
// 手机号没有注册账号的情况,发送注册验证码
|
||||
if (isMobile && accountUserBindConnect == null) {
|
||||
mobileOrEmail = PhoneNumberUtils.convZhPhoneNumber(number);
|
||||
}
|
||||
|
||||
// 发送短信或邮件验证码
|
||||
|
||||
@ -44,4 +44,10 @@ public class CommonConstant {
|
||||
|
||||
public static final Integer PRODUCT_DATA_SOURCE_USER = 1;
|
||||
public static final Integer PRODUCT_DATA_SOURCE_SX = 2;
|
||||
|
||||
// 入驻商家的审批状态:1-已通过;2-未通过;3-待审核;4-未申请;
|
||||
public static final Integer MCH_APPR_STA_PASS = 1;
|
||||
public static final Integer MCH_APPR_STA_NOPASS = 2;
|
||||
public static final Integer MCH_APPR_STA_PADDING = 3;
|
||||
public static final Integer MCH_APPR_STA_NONE = 4;
|
||||
}
|
||||
|
||||
@ -38,8 +38,8 @@ public class EsignPlatformInfo implements Serializable {
|
||||
@ApiModelProperty(value = "公司法人联系电话(可座机或手机号)")
|
||||
private String telephone;
|
||||
|
||||
@ApiModelProperty(value = "合同模版Id")
|
||||
private String doc_template_id;
|
||||
@ApiModelProperty(value = "合同模版编号和名称,JSON格式")
|
||||
private String doc_template;
|
||||
|
||||
@ApiModelProperty(value = "平台方营业执照编号")
|
||||
private String license_number;
|
||||
|
||||
@ -13,10 +13,11 @@ import com.suisung.mall.common.modules.esign.EsignPlatformInfo;
|
||||
public interface EsignPlatformInfoService {
|
||||
|
||||
/**
|
||||
* 根据分类获取平台方信息
|
||||
* 根据分类和营业执照号获取平台方信息
|
||||
*
|
||||
* @param type
|
||||
* @param type 分类(必选):类型:0-平台方(只能一条记录);1-一级代理;2-二级代理;3-三级代理;4-四级代理;
|
||||
* @param licenseNumber 营业执照号码(可选)
|
||||
* @return
|
||||
*/
|
||||
EsignPlatformInfo getEsignPlatformInfo(Integer type);
|
||||
EsignPlatformInfo getEsignPlatformInfo(Integer type, String licenseNumber);
|
||||
}
|
||||
|
||||
@ -15,9 +15,9 @@ public interface FileAndTemplateService {
|
||||
/**
|
||||
* 填充合同模版,生成合同文件地址
|
||||
*
|
||||
* @param storeId
|
||||
* @param docTemplateId
|
||||
* @param mchLicenseNumber 入驻商家的营业执照号
|
||||
* @param platLicenseNumber 平台方(代理商方)营业执照号
|
||||
* @return
|
||||
*/
|
||||
EsignContractFillingFile fillDocTemplate(String storeId, String docTemplateId);
|
||||
EsignContractFillingFile fillDocTemplate(String mchLicenseNumber, String platLicenseNumber);
|
||||
}
|
||||
|
||||
@ -8,22 +8,43 @@
|
||||
|
||||
package com.suisung.mall.shop.esign.service.impl;
|
||||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.suisung.mall.common.modules.esign.EsignPlatformInfo;
|
||||
import com.suisung.mall.core.web.service.impl.BaseServiceImpl;
|
||||
import com.suisung.mall.shop.esign.mapper.EsignPlatformInfoMapper;
|
||||
import com.suisung.mall.shop.esign.service.EsignPlatformInfoService;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.ObjectUtils;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Service
|
||||
public class EsignPlatformInfoServiceImpl extends BaseServiceImpl<EsignPlatformInfoMapper, EsignPlatformInfo> implements EsignPlatformInfoService {
|
||||
/**
|
||||
* 根据分类获取平台方信息
|
||||
* 根据分类和营业执照号获取平台方信息
|
||||
*
|
||||
* @param type
|
||||
* @param type 分类(可选):类型:0-平台方(只能一条记录);1-一级代理;2-二级代理;3-三级代理;4-四级代理;
|
||||
* @param licenseNumber 营业执照号码(可选)
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public EsignPlatformInfo getEsignPlatformInfo(Integer type) {
|
||||
return null;
|
||||
public EsignPlatformInfo getEsignPlatformInfo(Integer type, String licenseNumber) {
|
||||
QueryWrapper<EsignPlatformInfo> queryWrapper = new QueryWrapper<>();
|
||||
if (ObjectUtils.isEmpty(type)) {
|
||||
queryWrapper.eq("type", type);
|
||||
}
|
||||
|
||||
if (StrUtil.isNotBlank(licenseNumber)) {
|
||||
queryWrapper.eq("license_number", licenseNumber);
|
||||
}
|
||||
|
||||
List<EsignPlatformInfo> esignPlatformInfos = list(queryWrapper);
|
||||
if (CollectionUtil.isEmpty(esignPlatformInfos)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return esignPlatformInfos.get(0);
|
||||
}
|
||||
}
|
||||
|
||||
@ -8,18 +8,27 @@
|
||||
|
||||
package com.suisung.mall.shop.esign.service.impl;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.json.JSONArray;
|
||||
import cn.hutool.json.JSONObject;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import com.suisung.mall.common.constant.CommonConstant;
|
||||
import com.suisung.mall.common.modules.esign.EsignContractFillingFile;
|
||||
import com.suisung.mall.common.modules.esign.EsignPlatformInfo;
|
||||
import com.suisung.mall.common.modules.merch.ShopMerchEntry;
|
||||
import com.suisung.mall.shop.esign.service.EsignPlatformInfoService;
|
||||
import com.suisung.mall.shop.esign.service.FileAndTemplateService;
|
||||
import com.suisung.mall.shop.esign.utils.comm.EsignHttpHelper;
|
||||
import com.suisung.mall.shop.esign.utils.comm.EsignHttpResponse;
|
||||
import com.suisung.mall.shop.esign.utils.enums.EsignRequestType;
|
||||
import com.suisung.mall.shop.esign.utils.exception.EsignDemoException;
|
||||
import com.suisung.mall.shop.store.service.ShopMerchEntryService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.ObjectUtils;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.Map;
|
||||
|
||||
@Slf4j
|
||||
@ -34,16 +43,99 @@ public class FileAndTemplateServiceImpl implements FileAndTemplateService {
|
||||
@Value("${esign.app_secret}")
|
||||
private String appSecret;
|
||||
|
||||
@Resource
|
||||
private EsignPlatformInfoService esignPlatformInfoService;
|
||||
|
||||
@Resource
|
||||
private ShopMerchEntryService shopMerchEntryService;
|
||||
|
||||
/**
|
||||
* 填充合同模版,生成合同文件地址
|
||||
*
|
||||
* @param storeId
|
||||
* @param docTemplateId
|
||||
* @param mchLicenseNumber 入驻商家(甲方)的营业执照号
|
||||
* @param platLicenseNumber 平台方(代理商方)(乙方)营业执照号
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public EsignContractFillingFile fillDocTemplate(String storeId, String docTemplateId) {
|
||||
public EsignContractFillingFile fillDocTemplate(String mchLicenseNumber, String platLicenseNumber) {
|
||||
// 获取平台方的信息
|
||||
EsignPlatformInfo esignPlatformInfo = null;
|
||||
if (StrUtil.isNotEmpty(platLicenseNumber)) {
|
||||
esignPlatformInfo = esignPlatformInfoService.getEsignPlatformInfo(null, platLicenseNumber);
|
||||
}
|
||||
if (ObjectUtils.isEmpty(esignPlatformInfo)) {
|
||||
esignPlatformInfo = esignPlatformInfoService.getEsignPlatformInfo(0, "");
|
||||
}
|
||||
|
||||
if (ObjectUtils.isEmpty(esignPlatformInfo)) {
|
||||
log.error("缺少平台方(代理商方)信息");
|
||||
return null;
|
||||
}
|
||||
|
||||
// 获取入驻商家(审批通过的)的信息
|
||||
ShopMerchEntry shopMerchEntry = shopMerchEntryService.getShopMerchEntryByLicenseNumber("", mchLicenseNumber, CommonConstant.MCH_APPR_STA_PASS);
|
||||
if (shopMerchEntry == null) {
|
||||
log.error("缺少商家入驻信息");
|
||||
return null;
|
||||
}
|
||||
|
||||
String apiaddr = "/v3/files/create-by-doc-template";
|
||||
EsignRequestType requestType = EsignRequestType.POST;
|
||||
|
||||
JSONArray templates = JSONUtil.parseArray(esignPlatformInfo.getDoc_template());
|
||||
if (ObjectUtils.isEmpty(templates)) {
|
||||
log.error("缺少平台方(代理商方)合同模版信息");
|
||||
return null;
|
||||
}
|
||||
|
||||
for (Object template : templates) {
|
||||
JSONObject templateJson = (JSONObject) template;
|
||||
|
||||
// 获取填充模版的数据
|
||||
JSONObject fillJson = new JSONObject();
|
||||
fillJson.put("docTemplateId", templateJson.getStr("template_id"))
|
||||
.put("fileName", templateJson.getStr("template_name"));
|
||||
|
||||
String components = "[{'componentKey':'yf_company','componentValue':'桂平厚德贸易有限公司'},{'componentKey':'sign_date','componentValue':'2025-02-20'}]";
|
||||
fillJson.put("components", JSONUtil.parseArray(components));
|
||||
|
||||
String jsonParma = fillJson.toString();
|
||||
|
||||
//生成签名鉴权方式的的header
|
||||
Map<String, String> header = null;
|
||||
try {
|
||||
header = EsignHttpHelper.signAndBuildSignAndJsonHeader(appId, appSecret, jsonParma, requestType.name(), apiaddr, true);
|
||||
//发起接口请求
|
||||
EsignHttpResponse createByDocTemplate = EsignHttpHelper.doCommHttp(serverUrl, apiaddr, requestType, jsonParma, header, true);
|
||||
|
||||
log.info("{}", createByDocTemplate);
|
||||
|
||||
EsignContractFillingFile esignContractFillingFile = new EsignContractFillingFile();
|
||||
esignContractFillingFile.setDoc_template_id("docTemplateId");
|
||||
esignContractFillingFile.setStore_id("storeId");
|
||||
esignContractFillingFile.setDoc_template_filling_values(jsonParma);
|
||||
esignContractFillingFile.setUnsigned_contract_url(createByDocTemplate.getBody());
|
||||
esignContractFillingFile.setUnsigned_contract_local_url(createByDocTemplate.getBody());
|
||||
esignContractFillingFile.setStatus(1);
|
||||
return esignContractFillingFile;
|
||||
|
||||
} catch (EsignDemoException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 填充合同模版,生成合同文件地址
|
||||
*
|
||||
* @param mchLicenseNumber 入驻商家的营业执照号
|
||||
* @param platLicenseNumber 平台方(代理商方)营业执照号
|
||||
* @return
|
||||
*/
|
||||
// @Override
|
||||
public EsignContractFillingFile fillDocTemplate1(String mchLicenseNumber, String platLicenseNumber) {
|
||||
// 获取模版文件
|
||||
String templateId = "b411907d8f4640a1af593bea98c6b6c1";
|
||||
String apiaddr = "/v3/files/create-by-doc-template";
|
||||
@ -73,8 +165,8 @@ public class FileAndTemplateServiceImpl implements FileAndTemplateService {
|
||||
log.info("{}", createByDocTemplate);
|
||||
|
||||
EsignContractFillingFile esignContractFillingFile = new EsignContractFillingFile();
|
||||
esignContractFillingFile.setDoc_template_id(docTemplateId);
|
||||
esignContractFillingFile.setStore_id(storeId);
|
||||
esignContractFillingFile.setDoc_template_id("docTemplateId");
|
||||
esignContractFillingFile.setStore_id("storeId");
|
||||
esignContractFillingFile.setDoc_template_filling_values(jsonParma);
|
||||
esignContractFillingFile.setUnsigned_contract_url(createByDocTemplate.getBody());
|
||||
esignContractFillingFile.setUnsigned_contract_local_url(createByDocTemplate.getBody());
|
||||
|
||||
@ -6,12 +6,12 @@
|
||||
* Vestibulum commodo. Ut rhoncus gravida arcu.
|
||||
*/
|
||||
|
||||
package com.suisung.mall.shop.merch.controller.admin;
|
||||
package com.suisung.mall.shop.store.controller.admin;
|
||||
|
||||
import cn.hutool.json.JSONObject;
|
||||
import com.suisung.mall.common.api.CommonResult;
|
||||
import com.suisung.mall.common.service.impl.BaseControllerImpl;
|
||||
import com.suisung.mall.shop.merch.service.ShopMerchEntryService;
|
||||
import com.suisung.mall.shop.store.service.ShopMerchEntryService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
@ -6,12 +6,12 @@
|
||||
* Vestibulum commodo. Ut rhoncus gravida arcu.
|
||||
*/
|
||||
|
||||
package com.suisung.mall.shop.merch.controller.mobile;
|
||||
package com.suisung.mall.shop.store.controller.mobile;
|
||||
|
||||
import cn.hutool.json.JSONObject;
|
||||
import com.suisung.mall.common.api.CommonResult;
|
||||
import com.suisung.mall.common.service.impl.BaseControllerImpl;
|
||||
import com.suisung.mall.shop.merch.service.ShopMerchEntryService;
|
||||
import com.suisung.mall.shop.store.service.ShopMerchEntryService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
@ -6,7 +6,7 @@
|
||||
* Vestibulum commodo. Ut rhoncus gravida arcu.
|
||||
*/
|
||||
|
||||
package com.suisung.mall.shop.merch.mapper;
|
||||
package com.suisung.mall.shop.store.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.suisung.mall.common.modules.merch.ShopMerchEntry;
|
||||
@ -6,10 +6,11 @@
|
||||
* Vestibulum commodo. Ut rhoncus gravida arcu.
|
||||
*/
|
||||
|
||||
package com.suisung.mall.shop.merch.service;
|
||||
package com.suisung.mall.shop.store.service;
|
||||
|
||||
import cn.hutool.json.JSONObject;
|
||||
import com.suisung.mall.common.api.CommonResult;
|
||||
import com.suisung.mall.common.modules.merch.ShopMerchEntry;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@ -78,4 +79,14 @@ public interface ShopMerchEntryService {
|
||||
* @return
|
||||
*/
|
||||
Integer shopMerchEntryApprovalStatus(String loginMobile);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据商家手机号、营业执照、审批状态获取有效的商家入驻申请记录
|
||||
*
|
||||
* @param loginMobile
|
||||
* @param bizLicenseNumber
|
||||
* @param approvalStatus
|
||||
* @return
|
||||
*/
|
||||
ShopMerchEntry getShopMerchEntryByLicenseNumber(String loginMobile, String bizLicenseNumber, Integer approvalStatus);
|
||||
}
|
||||
@ -6,7 +6,7 @@
|
||||
* Vestibulum commodo. Ut rhoncus gravida arcu.
|
||||
*/
|
||||
|
||||
package com.suisung.mall.shop.merch.service.impl;
|
||||
package com.suisung.mall.shop.store.service.impl;
|
||||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
@ -24,8 +24,8 @@ import com.suisung.mall.common.utils.StringUtils;
|
||||
import com.suisung.mall.common.utils.phone.PhoneNumberUtils;
|
||||
import com.suisung.mall.core.web.service.impl.BaseServiceImpl;
|
||||
import com.suisung.mall.shop.base.service.AccountBaseConfigService;
|
||||
import com.suisung.mall.shop.merch.mapper.ShopMerchEntryMapper;
|
||||
import com.suisung.mall.shop.merch.service.ShopMerchEntryService;
|
||||
import com.suisung.mall.shop.store.mapper.ShopMerchEntryMapper;
|
||||
import com.suisung.mall.shop.store.service.ShopMerchEntryService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@ -339,4 +339,40 @@ public class ShopMerchEntryServiceImpl extends BaseServiceImpl<ShopMerchEntryMap
|
||||
|
||||
return recordList.get(0).getApproval_status();
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据商家手机号、营业执照、审批状态获取有效的商家入驻申请记录
|
||||
*
|
||||
* @param loginMobile
|
||||
* @param bizLicenseNumber
|
||||
* @param approvalStatus
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public ShopMerchEntry getShopMerchEntryByLicenseNumber(String loginMobile, String bizLicenseNumber, Integer approvalStatus) {
|
||||
if (StrUtil.isBlank(loginMobile) && StrUtil.isBlank(bizLicenseNumber) && ObjectUtil.isEmpty(approvalStatus)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
QueryWrapper<ShopMerchEntry> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.eq("status", CommonConstant.Enable).orderByAsc("id");
|
||||
if (StrUtil.isNotBlank(loginMobile)) {
|
||||
queryWrapper.eq("login_mobile", loginMobile);
|
||||
}
|
||||
|
||||
if (StrUtil.isNotBlank(bizLicenseNumber)) {
|
||||
queryWrapper.eq("biz_license_number", bizLicenseNumber);
|
||||
}
|
||||
|
||||
if (ObjectUtil.isEmpty(approvalStatus)) {
|
||||
queryWrapper.eq("approval_status", approvalStatus);
|
||||
}
|
||||
|
||||
List<ShopMerchEntry> recordList = list(queryWrapper);
|
||||
if (CollectionUtil.isEmpty(recordList)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return recordList.get(0);
|
||||
}
|
||||
}
|
||||
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.suisung.mall.shop.merch.mapper.ShopMerchEntryMapper">
|
||||
<mapper namespace="com.suisung.mall.shop.store.mapper.ShopMerchEntryMapper">
|
||||
<!-- 通用查询结果列 -->
|
||||
<sql id="Base_Column_List">
|
||||
*
|
||||
Loading…
Reference in New Issue
Block a user