Ver código fonte

个代注册添加银行卡接口

caiyaru 2 anos atrás
pai
commit
21d4e9e4bb

+ 5 - 1
sql/Online.sql

@@ -127,4 +127,8 @@ CREATE TABLE `sys_relation_person` (
                                        `create_by` varchar(50) DEFAULT NULL COMMENT '创建人',
                                        `del_flag` tinyint NOT NULL DEFAULT '1' COMMENT '删除( 0:删除 1:正常)',
                                        PRIMARY KEY (`id`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='合伙人/推荐人和机构负责人关系表';
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='合伙人/推荐人和机构负责人关系表';
+
+--add by caiyaru 20240813
+ALTER TABLE `sys_user` ADD COLUMN `factor_verify` tinyint  DEFAULT 0 COMMENT '0 未验证 1 已验证';
+ALTER TABLE `sys_user_bank_card` ADD COLUMN `bank_verify` tinyint  DEFAULT 0 COMMENT '0 未验证 1 已验证';

+ 5 - 3
src/main/java/com/ydtech/modules/admin/controller/SysUserBankController.java

@@ -1,7 +1,11 @@
 package com.ydtech.modules.admin.controller;
 
 
+import cn.dev33.satoken.stp.StpUtil;
 import com.ydtech.core.page.HttpResult;
+import com.ydtech.modules.admin.components.request.UnionPayRequest;
+import com.ydtech.modules.admin.components.response.UnionPayResponse;
+import com.ydtech.modules.admin.model.SysUser;
 import com.ydtech.modules.admin.model.po.SysUserBankCard;
 import com.ydtech.modules.admin.model.po.SysUserBankCardHistory;
 import com.ydtech.modules.admin.model.vo.SysUserBankCardVO;
@@ -77,9 +81,7 @@ public class SysUserBankController extends BaseController {
     @PostMapping("/insertByBankNumber")
     @ApiOperation("新增卡号开户行")
     public HttpResult<Object> insertByBankNumber(@RequestBody SysUserBankCardVO sysUserBankCardVO) {
-        bankCardService.insertByBankNumber(sysUserBankCardVO);
-
-        return HttpResult.ok("新增成功");
+        return  bankCardService.insertByBankNumber(sysUserBankCardVO);
     }
     @PostMapping("/auditByBankNumber")
     @ApiOperation("审核卡号开户行")

+ 21 - 1
src/main/java/com/ydtech/modules/admin/controller/SysUserController.java

@@ -12,6 +12,9 @@ import com.ydtech.core.page.HttpResult;
 import com.ydtech.core.page.PageRequest;
 import com.ydtech.core.page.PageResult;
 import com.ydtech.exception.SystemException;
+import com.ydtech.modules.admin.components.UnionPayRequestApiComponent;
+import com.ydtech.modules.admin.components.request.UnionPayRequest;
+import com.ydtech.modules.admin.components.response.UnionPayResponse;
 import com.ydtech.modules.admin.constants.RoleConstants;
 import com.ydtech.modules.admin.constants.UserWorkStatus;
 import com.ydtech.modules.admin.model.*;
@@ -94,7 +97,7 @@ public class SysUserController extends BaseController {
 
     private final SysUserTrackService sysUserTrackService;
 
-
+    private final UnionPayRequestApiComponent unionPayRequestApiComponent;
     //    @PreAuthorize("hasAuthority('sys:user:delete')")
     @ApiOperation(value = "逻辑删除")
     @PostMapping(value = "/deleteFlag")
@@ -657,6 +660,22 @@ public class SysUserController extends BaseController {
         if (recommender == null) {
             return HttpResult.error("推荐人信息不存在");
         }
+        SysUser reUser = sysUserService.getByUserId(recommenderid);
+        //个代
+        UnionPayResponse response = new UnionPayResponse();
+        if ("2".equals(reUser.getManagementSource())) {
+            if (StringUtils.isNullOrEmpty(dto.getIdentity())) {
+                return HttpResult.error("机构来源为个代的证件号不能为空");
+            }
+            UnionPayRequest request = new UnionPayRequest();
+            request.setName(dto.getName());
+            request.setPhoneNo(dto.getMobile());
+            request.setCertNo(dto.getIdentity());
+            response = unionPayRequestApiComponent.threeFactorVerifyRequest(request);
+            if (response != null&&!"00".equals(response.getRespCode())) {
+                return HttpResult.error("认证信息不一致:"+response.getDetailRespMsg());
+            }
+        }
         //只有团队长和代理人才能邀请 by gws
         SysUserRole recommenderRole = sysUserRoleService.selectByUserId(recommenderid);
         if (!"20".equals(recommenderRole.getRoleId().toString()) && !"21".equals(recommenderRole.getRoleId().toString())) {
@@ -690,6 +709,7 @@ public class SysUserController extends BaseController {
         if (dto.getFlag().equals("2")) {
             sysUser.setOperatorCode(recommenderid);
         }
+        sysUser.setFactorVerify(response != null && "00".equals(response.getRespCode())? 1:0);
         sysUserService.save(sysUser);
 
         //角色配置

+ 3 - 1
src/main/java/com/ydtech/modules/admin/dao/SysUserMapper.java

@@ -36,7 +36,7 @@ public interface SysUserMapper extends BaseMapper<SysUser> {
             " where t1.id=#{userId}";
     ;
 
-    String internalUserSql = "select t.id,t.name,t.dept_id deptid,t2.name deptname,t3.id comid,t3.name comname,t.status " +
+    String internalUserSql = "select t.id,t.name,t.dept_id deptid,t2.name deptname,t3.id comid,t3.name comname,t.status   " +
             "from sys_user t left join sys_dept t2 on t.dept_id=t2.id " +
             "left join sys_dept t3 on t2.parent_id=t3.id " +
             "left join esm_user_internal a on t.id=a.id " +
@@ -398,6 +398,8 @@ public interface SysUserMapper extends BaseMapper<SysUser> {
 
     IPage<QxFrontlineAgentDto> getByIdsList(@Param("page") Page page, @Param("vo") QxFrontlineAgentVo qxFrontlineAgentVo);
 
+
+    SysUser getByUserId(String userId);
 }
 
 

+ 6 - 0
src/main/java/com/ydtech/modules/admin/model/SysUser.java

@@ -121,6 +121,12 @@ public class SysUser extends BaseEntity {
     @TableField(value = "leader_name")
     private String leaderName;
 
+
+    @ApiModelProperty(value = "三要素验证")
+    @TableField(value = "factor_verify")
+    private Integer factorVerify;
+
+
     //------------------
 
 

+ 0 - 1
src/main/java/com/ydtech/modules/admin/model/dto/AgentUserDto.java

@@ -42,5 +42,4 @@ public class AgentUserDto {
     @ApiModelProperty(value = "个代、出单员标识:1个代、2出单员",required = true)
     private String flag;
 
-
 }

+ 4 - 0
src/main/java/com/ydtech/modules/admin/model/po/SysUserBankCard.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 import java.io.Serializable;
@@ -90,4 +91,7 @@ public class SysUserBankCard implements Serializable {
 
     @TableField(value = "real_user_name")
     private String realUserName;
+
+    @TableField(value = "bank_verify")
+    private Integer bankVerify;
 }

+ 2 - 0
src/main/java/com/ydtech/modules/admin/model/vo/SysUserBankCardVO.java

@@ -34,6 +34,8 @@ public class SysUserBankCardVO {
     @ApiModelProperty(value = "是否默认值")
     private Integer isDefault;
 
+    @ApiModelProperty(value = "银行卡预留手机号")
+    private String phoneNo;
 
     @JsonFormat(pattern = "yyyy-MM-dd")
     @TableField(value = "create_time",fill = FieldFill.INSERT_UPDATE)

+ 4 - 0
src/main/java/com/ydtech/modules/admin/model/vo/SysUserVO.java

@@ -1,11 +1,15 @@
 package com.ydtech.modules.admin.model.vo;
 
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
 /**
  * @author qinfenglong
  * @version 1.0.0
  * @description SysUserVO
  * @since 2020/10/22 23:18
  */
+@Data
 public class SysUserVO {
     private String id;
     private String name;

+ 1 - 1
src/main/java/com/ydtech/modules/admin/service/SysUserBankCardService.java

@@ -35,7 +35,7 @@ public interface SysUserBankCardService extends IService<SysUserBankCard> {
 
     SysUserBankCard getByBankNumber(String bankNumber, String userId);
 
-    void insertByBankNumber(SysUserBankCardVO sysUserBankCardVO);
+    HttpResult<Object> insertByBankNumber(SysUserBankCardVO sysUserBankCardVO);
 
     void auditByBankNumber(SysUserBankCardVO sysUserBankCardVO);
 

+ 2 - 0
src/main/java/com/ydtech/modules/admin/service/SysUserService.java

@@ -220,6 +220,8 @@ public interface SysUserService extends BaseIService<SysUser> {
      */
     void separationReinstatement(String userid);
 
+    SysUser getByUserId(String userid);
+
 }
 
 

+ 28 - 1
src/main/java/com/ydtech/modules/admin/service/impl/SysUserBankCardServiceImpl.java

@@ -1,16 +1,22 @@
 package com.ydtech.modules.admin.service.impl;
 
+import cn.dev33.satoken.stp.StpUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ydtech.core.page.HttpResult;
 import com.ydtech.exception.SystemException;
+import com.ydtech.modules.admin.components.UnionPayRequestApiComponent;
+import com.ydtech.modules.admin.components.request.UnionPayRequest;
+import com.ydtech.modules.admin.components.response.UnionPayResponse;
 import com.ydtech.modules.admin.dao.SysUserBankCardMapper;
+import com.ydtech.modules.admin.model.SysUser;
 import com.ydtech.modules.admin.model.po.SysUserBankCard;
 import com.ydtech.modules.admin.model.po.SysUserBankCardHistory;
 import com.ydtech.modules.admin.model.vo.SysUserBankCardVO;
 import com.ydtech.modules.admin.service.SysUserBankCardHistoryService;
 import com.ydtech.modules.admin.service.SysUserBankCardService;
+import com.ydtech.modules.admin.service.SysUserService;
 import com.ydtech.modules.base.controller.BaseController;
 import com.ydtech.modules.order.entity.BasePageResult;
 import com.ydtech.modules.protocol.utils.AssertionUtils;
@@ -37,6 +43,10 @@ public class SysUserBankCardServiceImpl extends ServiceImpl<SysUserBankCardMappe
 
     @Resource
     private SysUserBankCardHistoryService sysUserBankCardHistoryService;
+    @Resource
+    private UnionPayRequestApiComponent unionPayRequestApiComponent;
+    @Resource
+    private SysUserService sysUserService;
 
     @Override
     public BasePageResult<SysUserBankCard> queryByVo(SysUserBankCardVO sysUserBankCardVO) {
@@ -135,7 +145,21 @@ public class SysUserBankCardServiceImpl extends ServiceImpl<SysUserBankCardMappe
 
     @Override
     @Transactional
-    public void insertByBankNumber(SysUserBankCardVO sysUserBankCardVO) {
+    public  HttpResult<Object> insertByBankNumber(SysUserBankCardVO sysUserBankCardVO) {
+        //个贷验证银行卡
+        SysUser sysUser = sysUserService.getByUserId(StpUtil.getLoginId().toString());
+        UnionPayResponse response = new UnionPayResponse();
+        if ("2".equals(sysUser.getManagementSource())){
+            UnionPayRequest request = new UnionPayRequest();
+            request.setCardNo(sysUserBankCardVO.getBankNumber());
+            request.setPhoneNo(sysUserBankCardVO.getPhoneNo());
+            request.setName(sysUser.getName());
+            request.setCertNo(sysUser.getIdentity());
+            response = unionPayRequestApiComponent.bankCardVerifyRequest(request);
+            if (response != null && !"00".equals(response.getRespCode())) {
+                return HttpResult.error("未通过银行卡认证:"+response.getDetailRespMsg());
+            }
+        }
         SysUserBankCard findSysUserBankCard = sysUserBankCardService.getOne(new LambdaQueryWrapper<SysUserBankCard>()
                 .eq(SysUserBankCard::getBankNumber, sysUserBankCardVO.getBankNumber())
                 .eq(SysUserBankCard::getUserId, sysUserBankCardVO.getUserId()));
@@ -149,6 +173,7 @@ public class SysUserBankCardServiceImpl extends ServiceImpl<SysUserBankCardMappe
             findSysUserBankCard.setBankAddress(sysUserBankCardVO.getBankAddress());
             findSysUserBankCard.setBankAccount(sysUserBankCardVO.getBankAccount());
             findSysUserBankCard.setRealUserName(sysUserBankCardVO.getRealUserName());
+            findSysUserBankCard.setBankVerify(response != null && "00".equals(response.getRespCode())?1:0);
             sysUserBankCardService.updateById(findSysUserBankCard);
             SysUserBankCardHistory sysUserBankCardHistory = new SysUserBankCardHistory();
             sysUserBankCardHistory.setBankNumber(sysUserBankCardVO.getBankNumber());
@@ -167,6 +192,7 @@ public class SysUserBankCardServiceImpl extends ServiceImpl<SysUserBankCardMappe
             sysUserBankCard.setBankNumber(sysUserBankCardVO.getBankNumber().replaceAll("\\s+", ""));
             sysUserBankCard.setUserName(sysUserBankCardVO.getUserName());
             sysUserBankCard.setUserId(sysUserBankCardVO.getUserId());
+            sysUserBankCard.setBankVerify(response != null && "00".equals(response.getRespCode())?1:0);
             baseMapper.insert(sysUserBankCard);
             SysUserBankCardHistory sysUserBankCardHistory = new SysUserBankCardHistory();
             sysUserBankCardHistory.setBankNumber(sysUserBankCardVO.getBankNumber());
@@ -176,6 +202,7 @@ public class SysUserBankCardServiceImpl extends ServiceImpl<SysUserBankCardMappe
             sysUserBankCardHistory.setBankNumberUserId(sysUserBankCardVO.getUserId());
             sysUserBankCardHistoryService.save(sysUserBankCardHistory);
         }
+        return HttpResult.ok("新增成功");
     }
 
     @Override

+ 4 - 0
src/main/java/com/ydtech/modules/admin/service/impl/SysUserServiceImpl.java

@@ -1550,4 +1550,8 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
         sysUserTrackService.save(sysUserTrack);
     }
 
+    @Override
+    public SysUser getByUserId(String userid){
+        return baseMapper.getByUserId(userid);
+    }
 }

+ 5 - 0
src/main/resources/mapper/modules/admin/SysUserMapper.xml

@@ -1374,5 +1374,10 @@
             </if>
         </where>
     </select>
+    <select id="getByUserId" resultType="com.ydtech.modules.admin.model.SysUser">
+        select t.id id,t.name name,t.mobile mobile,t2.management_source managementSource
+        from sys_user t left join sys_dept t2 on t.dept_id=t2.id
+        where t.id=#{id}
+    </select>
 
 </mapper>