فهرست منبع

fix 人脸识别H5

tjf 7 ماه پیش
والد
کامیت
68d55074f8

+ 32 - 24
ruoyi-admin/src/main/java/com/ruoyi/web/controller/idcard/SysUserIdcardController.java

@@ -1,5 +1,6 @@
 package com.ruoyi.web.controller.idcard;
 
+import cn.hutool.core.util.ObjectUtil;
 import com.ruoyi.common.annotation.Log;
 import com.ruoyi.common.core.controller.BaseController;
 import com.ruoyi.common.core.domain.AjaxResult;
@@ -81,19 +82,23 @@ public class SysUserIdcardController extends BaseController {
     @Log(title = "用户身份证信息", businessType = BusinessType.INSERT)
     @PostMapping
     public AjaxResult add(@RequestBody SysUserIdcard sysUserIdcard) {
-        LoginUser loginUser = getLoginUser();
-        SysUser currentUser = loginUser.getUser();
-        currentUser.setInitFace("Y");
-        userService.checkUserAllowed(currentUser);
-        userService.checkUserDataScope(currentUser.getUserId());
-        currentUser.setUpdateBy(getUsername());
-        if (userService.updateUserStatus(currentUser) > 0) {
+        String idCard = sysUserIdcard.getIdCard();
+        //先去查询是否已经被认证过
+        if (ObjectUtil.isNull(sysUserIdcardService.selectSysUserIdcardByIdCard(idCard))) {
+            LoginUser loginUser = getLoginUser();
+            SysUser currentUser = loginUser.getUser();
             currentUser.setInitFace("Y");
-            // 更新缓存用户信息
-            tokenService.setLoginUser(loginUser);
-            return toAjax(sysUserIdcardService.insertSysUserIdcard(sysUserIdcard));
+            userService.checkUserAllowed(currentUser);
+            userService.checkUserDataScope(currentUser.getUserId());
+            currentUser.setUpdateBy(getUsername());
+            if (userService.updateUserStatus(currentUser) > 0) {
+                currentUser.setInitFace("Y");
+                // 更新缓存用户信息
+                tokenService.setLoginUser(loginUser);
+                return toAjax(sysUserIdcardService.insertSysUserIdcard(sysUserIdcard));
+            }
         }
-        return error("人脸认证更新失败");
+        return error("人脸认证失败,当前已被其他用户认证。");
     }
 
 
@@ -113,21 +118,24 @@ public class SysUserIdcardController extends BaseController {
         sysUserIdcard.setAddress(sysUserIdcardVo.getAddress());
         sysUserIdcard.setFront(sysUserIdcardVo.getFront());
         sysUserIdcard.setBack(sysUserIdcardVo.getBack());
-        LoginUser loginUser = getLoginUser();
-        SysUser currentUser = loginUser.getUser();
-        currentUser.setInitFace("Y");
-        userService.checkUserAllowed(currentUser);
-        userService.checkUserDataScope(currentUser.getUserId());
-        currentUser.setUpdateBy(getUsername());
-        if (userService.updateUserStatus(currentUser) > 0) {
+        //先去查询是否已经被认证过
+        if (ObjectUtil.isNull(sysUserIdcardService.selectSysUserIdcardByIdCard(sysUserIdcardVo.getIdCard()))) {
+            LoginUser loginUser = getLoginUser();
+            SysUser currentUser = loginUser.getUser();
             currentUser.setInitFace("Y");
-            // 更新缓存用户信息
-            tokenService.setLoginUser(loginUser);
-            //删除redis
-            redisCache.deleteObject(certifyId);
-            return toAjax(sysUserIdcardService.insertSysUserIdcard(sysUserIdcard));
+            userService.checkUserAllowed(currentUser);
+            userService.checkUserDataScope(currentUser.getUserId());
+            currentUser.setUpdateBy(getUsername());
+            if (userService.updateUserStatus(currentUser) > 0) {
+                currentUser.setInitFace("Y");
+                // 更新缓存用户信息
+                tokenService.setLoginUser(loginUser);
+                //删除redis
+                redisCache.deleteObject(certifyId);
+                return toAjax(sysUserIdcardService.insertSysUserIdcard(sysUserIdcard));
+            }
         }
-        return error("人脸认证更新失败");
+        return error("人脸认证失败,当前已被其他用户认证。");
     }
 
     /**

+ 0 - 1
ruoyi-system/src/main/java/com/ruoyi/system/domain/idcard/SysUserIdcard.java

@@ -4,7 +4,6 @@ import com.ruoyi.common.annotation.Excel;
 import com.ruoyi.common.core.domain.BaseEntity;
 import com.ruoyi.system.domain.enterprise.SysUserEnterprise;
 import com.ruoyi.system.domain.loan.LoanApplication;
-
 import java.util.List;
 
 /**

+ 3 - 0
ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserIdcardMapper.java

@@ -21,6 +21,9 @@ public interface SysUserIdcardMapper
      */
     public SysUserIdcard selectSysUserIdcardByUserId(Long userId);
 
+
+    public SysUserIdcard selectSysUserIdcardByIdCard(String idCard);
+
     /**
      * 查询用户身份证信息列表
      * 

+ 2 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/idcard/ISysUserIdcardService.java

@@ -21,6 +21,8 @@ public interface ISysUserIdcardService
      */
     public SysUserIdcard selectSysUserIdcardByUserId(Long userId);
 
+    public SysUserIdcard selectSysUserIdcardByIdCard(String idCard);
+
     /**
      * 查询用户身份证信息列表
      * 

+ 13 - 3
ruoyi-system/src/main/java/com/ruoyi/system/service/idcard/impl/SysUserIdcardServiceImpl.java

@@ -1,8 +1,6 @@
 package com.ruoyi.system.service.idcard.impl;
 
-import java.util.List;
 import com.ruoyi.common.utils.DateUtils;
-import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.system.domain.enterprise.SysUserEnterprise;
 import com.ruoyi.system.domain.idcard.SysUserIdcard;
 import com.ruoyi.system.domain.loan.LoanApplication;
@@ -11,9 +9,10 @@ import com.ruoyi.system.mapper.SysUserEnterpriseMapper;
 import com.ruoyi.system.mapper.SysUserIdcardMapper;
 import com.ruoyi.system.service.idcard.ISysUserIdcardService;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.core.env.SystemEnvironmentPropertySource;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+
 
 /**
  * 用户身份证信息Service业务层处理
@@ -56,6 +55,17 @@ public class SysUserIdcardServiceImpl implements ISysUserIdcardService
         return sysUserIdcard;
     }
 
+    /**
+     * 根据身份证号查询
+     * @param idCard
+     * @return
+     */
+    @Override
+    public SysUserIdcard selectSysUserIdcardByIdCard(String idCard) {
+        SysUserIdcard sysUserIdcard = sysUserIdcardMapper.selectSysUserIdcardByIdCard(idCard);
+        return sysUserIdcard;
+    }
+
     /**
      * 查询用户身份证信息列表
      * 

+ 5 - 1
ruoyi-system/src/main/resources/mapper/system/SysUserIdcardMapper.xml

@@ -42,7 +42,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <include refid="selectSysUserIdcardVo"/>
         where user_id = #{userId}
     </select>
-        
+    <select id="selectSysUserIdcardByIdCard" parameterType="string" resultMap="SysUserIdcardResult">
+        <include refid="selectSysUserIdcardVo"/>
+        where id_card = #{idCard} limit 1
+    </select>
+
     <insert id="insertSysUserIdcard" parameterType="SysUserIdcard">
         insert into sys_user_idcard
         <trim prefix="(" suffix=")" suffixOverrides=",">