From 31a1f3b601349771a04f6cfd5351b30669f75f7b Mon Sep 17 00:00:00 2001 From: liujiang <569804566@qq.com> Date: Fri, 21 Nov 2025 21:36:30 +0800 Subject: [PATCH] =?UTF-8?q?master=EF=BC=9A=E6=A1=A3=E5=8F=A3=E8=AE=A4?= =?UTF-8?q?=E8=AF=81=E8=B0=83=E4=BC=98=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../storeCertificate/StoreCertCreateVO.java | 22 ++++++++++-------- .../ruoyi/xkt/domain/StoreCertificate.java | 20 ++++++++-------- .../dto/storeCertificate/StoreCertDTO.java | 8 ++++--- .../impl/StoreCertificateServiceImpl.java | 23 +++++++++++++++---- 4 files changed, 47 insertions(+), 26 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeCertificate/StoreCertCreateVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeCertificate/StoreCertCreateVO.java index a3c286dbc..1fe6f341e 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeCertificate/StoreCertCreateVO.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeCertificate/StoreCertCreateVO.java @@ -70,17 +70,21 @@ public class StoreCertCreateVO { @Data @ApiModel public static class SCStoreCertVO { - @ApiModelProperty(value = "真实姓名", required = true) - @NotBlank(message = "真实姓名不能为空") - @Size(min = 0, max = 30, message = "真实姓名长度必须在1到30个字之间") + @ApiModelProperty(value = "法人真实姓名", required = true) + @NotBlank(message = "法人真实姓名不能为空") + @Size(min = 0, max = 30, message = "法人真实姓名长度必须在1到30个字之间") private String realName; - @ApiModelProperty(value = "联系电话", required = true) - @NotBlank(message = "联系电话不能为空") - @Pattern(regexp = "^1[3-9]\\d{9}$", message = "联系电话格式不正确,请输入有效的中国大陆手机号") + @ApiModelProperty(value = "法人联系电话", required = true) + @NotBlank(message = "法人联系电话不能为空") + @Pattern(regexp = "^1[3-9]\\d{9}$", message = "法人联系电话格式不正确,请输入有效的中国大陆手机号") private String phone; - @ApiModelProperty(value = "身份证号", required = true) - @NotBlank(message = "身份证号不能为空") - @Pattern(regexp = "(^\\d{15}$)|(^\\d{17}([0-9]|X|x)$)", message = "身份证号格式不正确,请输入有效的15位或18位身份证号") + @NotBlank(message = "短信验证码不能为空!") + @ApiModelProperty(value = "短信验证码", required = true) + @Size(min = 0, max = 6, message = "短信验证码长度必须在0到6个字之间") + private String code; + @ApiModelProperty(value = "法人身份证号", required = true) + @NotBlank(message = "法人身份证号不能为空") + @Pattern(regexp = "(^\\d{15}$)|(^\\d{17}([0-9]|X|x)$)", message = "法人身份证号格式不正确,请输入有效的15位或18位身份证号") private String idCard; @Valid @ApiModelProperty(value = "认证文件列表", required = true) diff --git a/xkt/src/main/java/com/ruoyi/xkt/domain/StoreCertificate.java b/xkt/src/main/java/com/ruoyi/xkt/domain/StoreCertificate.java index a6814de64..80f0beb5b 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/domain/StoreCertificate.java +++ b/xkt/src/main/java/com/ruoyi/xkt/domain/StoreCertificate.java @@ -37,33 +37,33 @@ public class StoreCertificate extends XktBaseEntity { private Long storeId; /** - * 真实姓名 + * 法人真实姓名 */ - @Excel(name = "真实姓名") + @Excel(name = "法人真实姓名") private String realName; /** - * 联系电话 + * 法人联系电话 */ - @Excel(name = "联系电话") + @Excel(name = "法人联系电话") private String phone; /** - * 身份证号 + * 法人身份证号 */ - @Excel(name = "身份证号") + @Excel(name = "法人身份证号") private String idCard; /** - * 身份证人脸文件ID + * 法人身份证人脸文件ID */ - @Excel(name = "身份证人脸文件ID") + @Excel(name = "法人身份证人脸文件ID") private Long idCardFaceFileId; /** - * 身份证国徽文件ID + * 法人身份证国徽文件ID */ - @Excel(name = "身份证国徽文件ID") + @Excel(name = "法人身份证国徽文件ID") private Long idCardEmblemFileId; /** diff --git a/xkt/src/main/java/com/ruoyi/xkt/dto/storeCertificate/StoreCertDTO.java b/xkt/src/main/java/com/ruoyi/xkt/dto/storeCertificate/StoreCertDTO.java index 7ed785674..982229b18 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/dto/storeCertificate/StoreCertDTO.java +++ b/xkt/src/main/java/com/ruoyi/xkt/dto/storeCertificate/StoreCertDTO.java @@ -54,12 +54,14 @@ public class StoreCertDTO { @Data public static class SCStoreCertDTO { - @ApiModelProperty(value = "真实姓名", required = true) + @ApiModelProperty(value = "法人真实姓名", required = true) private String realName; - @ApiModelProperty(value = "联系电话", required = true) + @ApiModelProperty(value = "法人联系电话", required = true) private String phone; - @ApiModelProperty(value = "身份证号", required = true) + @ApiModelProperty(value = "法人身份证号", required = true) private String idCard; + @ApiModelProperty(value = "短信验证码") + private String code; @ApiModelProperty(value = "认证文件列表", required = true) private List fileList; @ApiModelProperty(value = "统一社会信用代码", required = true) diff --git a/xkt/src/main/java/com/ruoyi/xkt/service/impl/StoreCertificateServiceImpl.java b/xkt/src/main/java/com/ruoyi/xkt/service/impl/StoreCertificateServiceImpl.java index 56bf0d2ee..663ab1ec6 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/service/impl/StoreCertificateServiceImpl.java +++ b/xkt/src/main/java/com/ruoyi/xkt/service/impl/StoreCertificateServiceImpl.java @@ -23,6 +23,7 @@ import com.ruoyi.xkt.enums.StoreStatus; import com.ruoyi.xkt.mapper.*; import com.ruoyi.xkt.service.IAssetService; import com.ruoyi.xkt.service.IStoreCertificateService; +import com.ruoyi.xkt.thirdpart.lfv2.Lfv2Client; import lombok.RequiredArgsConstructor; import org.apache.commons.lang3.ObjectUtils; import org.springframework.stereotype.Service; @@ -52,6 +53,7 @@ public class StoreCertificateServiceImpl implements IStoreCertificateService { final StoreProductMapper storeProdMapper; final ISysUserService userService; final SmsClientWrapper smsClient; + final Lfv2Client lfv2Client; /** @@ -63,13 +65,26 @@ public class StoreCertificateServiceImpl implements IStoreCertificateService { @Override @Transactional public Integer create(StoreCertDTO certDTO) { + final StoreCertDTO.SCStoreCertDTO storeCert = certDTO.getStoreCert(); + // 1. 校验短信验证码 + this.validateSmsVerificationCode(storeCert.getPhone(), storeCert.getCode()); + // 2. 校验法人身份信息是否通过 手机号 姓名 身份证号 + boolean phoneCheck = this.lfv2Client.checkPhone(storeCert.getPhone().trim(), storeCert.getRealName().trim(), storeCert.getIdCard().trim()); + if (!phoneCheck) { + throw new ServiceException("法人身份信息验证未通过!可能原因:1. 法人姓名或身份证号输入有误 2. 当前手机号非法人本人实名办理!", HttpStatus.ERROR); + } + // 3. 校验工商信息是否通过 社会统一信用代码 企业名 法人名称 法人身份证号 + boolean bizCheck = this.lfv2Client.checkEnterprise(storeCert.getSocialCreditCode().trim(), + storeCert.getLicenseName().trim(), storeCert.getRealName().trim(), storeCert.getIdCard().trim()); + if (!bizCheck) { + throw new ServiceException("工商信息验证未通过!请核对您的企业名称、统一社会信用代码、法人姓名及身份证号是否与营业执照完全一致!", HttpStatus.ERROR); + } // 新增档口 Store store = this.createStore(certDTO); - StoreCertificate storeCert = BeanUtil.toBean(certDTO.getStoreCert(), StoreCertificate.class) - .setStoreId(store.getId()); + StoreCertificate storeCertCreate = BeanUtil.toBean(certDTO.getStoreCert(), StoreCertificate.class).setStoreId(store.getId()); // 新增档口认证的文件列表 - storeCert = this.handleStoreCertFileList(certDTO, storeCert); - return this.storeCertMapper.insert(storeCert); + storeCertCreate = this.handleStoreCertFileList(certDTO, storeCertCreate); + return this.storeCertMapper.insert(storeCertCreate); }