From 6d8cc3d05d3c0353816a9e932e79cd126a5e59aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A3=B7=E5=8F=B6?= <14103883+leaf-phos@user.noreply.gitee.com> Date: Sat, 26 Apr 2025 19:03:11 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=9E=E5=90=8D=E8=AE=A4=E8=AF=81=E6=9B=B4?= =?UTF-8?q?=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bst/realName/mapper/RealNameMapper.xml | 3 - .../service/impl/RealNameServiceImpl.java | 65 ++++++++----------- .../system/operLog/mapper/OperLogMapper.xml | 3 + 3 files changed, 29 insertions(+), 42 deletions(-) diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/realName/mapper/RealNameMapper.xml b/ruoyi-service/src/main/java/com/ruoyi/bst/realName/mapper/RealNameMapper.xml index 4502841..3840921 100644 --- a/ruoyi-service/src/main/java/com/ruoyi/bst/realName/mapper/RealNameMapper.xml +++ b/ruoyi-service/src/main/java/com/ruoyi/bst/realName/mapper/RealNameMapper.xml @@ -57,7 +57,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" mobile, status, create_time, - update_time, user_id, type, result, @@ -70,7 +69,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{mobile}, #{status}, #{createTime}, - #{updateTime}, #{userId}, #{type}, #{result}, @@ -93,7 +91,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" mobile = #{data.mobile}, status = #{data.status}, create_time = #{data.createTime}, - update_time = #{data.updateTime}, user_id = #{data.userId}, type = #{data.type}, result = #{data.result}, diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/realName/service/impl/RealNameServiceImpl.java b/ruoyi-service/src/main/java/com/ruoyi/bst/realName/service/impl/RealNameServiceImpl.java index 1e0a76f..3611214 100644 --- a/ruoyi-service/src/main/java/com/ruoyi/bst/realName/service/impl/RealNameServiceImpl.java +++ b/ruoyi-service/src/main/java/com/ruoyi/bst/realName/service/impl/RealNameServiceImpl.java @@ -1,6 +1,5 @@ package com.ruoyi.bst.realName.service.impl; -import java.util.Date; import java.util.List; import java.util.concurrent.TimeUnit; @@ -126,7 +125,7 @@ public class RealNameServiceImpl implements RealNameService public RealNameFaceVO faceRealName(RealName realName) { UserVO user = userService.selectUserById(realName.getUserId()); ServiceUtil.assertion(user == null,"用户信息不存在"); - + ServiceUtil.assertion(user.getIsReal() != null && user.getIsReal(),"用户已实名认证"); // 获取活体检测token LivenessResponseTokenData tokenData = LivenessUtils.getToken(LIVENESS_RETURN_URL, null, null); @@ -186,8 +185,9 @@ public class RealNameServiceImpl implements RealNameService // 判断活体是否匹配 FaceResponseData faceIdb = FaceUtils.getFaceIdb(face.getIdCard(), face.getName(), livenessResult.getFaceImage(), null); ServiceUtil.assertion(faceIdb == null, "人证比对数据不存在"); - ServiceUtil.assertion(!FaceIncorrect.isSuccess(faceIdb.getIncorrect()), "人证比对未通过:" + faceIdb.getMsg()); - ServiceUtil.assertion(!FaceScoreResult.isSame(faceIdb.getScore()), "人证比对未通过,分数:" + faceIdb.getScore()); + + boolean isSuccess = FaceIncorrect.isSuccess(faceIdb.getIncorrect()); + boolean isScoreSuccess = FaceScoreResult.isSame(faceIdb.getScore()); // 通过,构造实名认证表 RealName realName = new RealName(); @@ -197,28 +197,29 @@ public class RealNameServiceImpl implements RealNameService realName.setMobile(face.getMobile()); realName.setScore(faceIdb.getScore()); realName.setPicture(imageUrl); - realName.setStatus(RealNameStatus.REAL.getCode()); - Date now = new Date(); - realName.setUpdateTime(now); - realName.setCreateTime(now); + realName.setStatus(isSuccess && isScoreSuccess ? RealNameStatus.REAL.getCode() : RealNameStatus.FAILED.getCode()); + realName.setType(RealNameType.FACE.getCode()); + realName.setResult(isSuccess && isScoreSuccess ? "认证成功" : "人证比对未通过,分数:" + faceIdb.getScore()); int result = this.handleNormalRealName(realName, cacheKey); - ServiceUtil.assertion(result != 1, "实名认证失败"); - vo.setPass(true); + + vo.setPass(isSuccess && isScoreSuccess); + ServiceUtil.assertion(result != 1 || !vo.getPass(), "实名认证失败"); return vo; } @Override public int twoElementRealName(RealNameTowEleDTO dto) { - // TODO 判断用户是否已经实名认证 + // 判断用户是否已经实名认证 + UserVO user = userService.selectUserById(dto.getUserId()); + ServiceUtil.assertion(user == null,"用户信息不存在"); + ServiceUtil.assertion(user.getIsReal() != null && user.getIsReal(),"用户已实名认证"); IDResponse idRes = TwoEleUtil.verifyIdentity(dto.getIdCard(), dto.getUserName()); boolean isSuccess = IDResponse.isSuccess(idRes); - - // 保存实名信息 RealName realName = new RealName(); realName.setUserId(dto.getUserId()); @@ -228,25 +229,7 @@ public class RealNameServiceImpl implements RealNameService realName.setType(RealNameType.TWO_ELEMENT.getCode()); realName.setResult(isSuccess ? "认证成功" : idRes.getReason()); - Integer result = transactionTemplate.execute(status -> { - int insert = this.insertRealName(realName); - - if (insert > 0) { - if (isSuccess) { - // 修改用户实名信息 - UserVO user = new UserVO(); - user.setUserId(dto.getUserId()); - user.setRealName(dto.getUserName()); - user.setRealIdCard(dto.getIdCard()); - user.setIsReal(true); - int update = userService.updateUserRealName(user); - ServiceUtil.assertion(update != 1, "更新用户信息失败"); - } - } - return insert; - }); - - return result == null ? 0 : result; + return this.handleNormalRealName(realName, null); } private int handleNormalRealName(RealName realName, String cacheKey) { @@ -261,18 +244,22 @@ public class RealNameServiceImpl implements RealNameService // 数据库操作 Integer result = transactionTemplate.execute(status -> { - // 修改用户实名信息 - int update = userService.updateUserRealName(data); - ServiceUtil.assertion(update != 1, "更新用户信息失败"); - // 插入实名认证表 int insert = this.insertRealName(realName); ServiceUtil.assertion(insert != 1, "新增实名认证失败"); - // 删除缓存 - redisCache.deleteObject(cacheKey); + if (realName.getStatus().equals(RealNameStatus.REAL.getCode())) { + // 修改用户实名信息 + int update = userService.updateUserRealName(data); + ServiceUtil.assertion(update != 1, "更新用户信息失败"); + } - return update; + // 删除缓存 + if (cacheKey != null) { + redisCache.deleteObject(cacheKey); + } + + return insert; }); return result == null ? 0 : result; diff --git a/ruoyi-service/src/main/java/com/ruoyi/system/operLog/mapper/OperLogMapper.xml b/ruoyi-service/src/main/java/com/ruoyi/system/operLog/mapper/OperLogMapper.xml index a227c87..8faa69f 100644 --- a/ruoyi-service/src/main/java/com/ruoyi/system/operLog/mapper/OperLogMapper.xml +++ b/ruoyi-service/src/main/java/com/ruoyi/system/operLog/mapper/OperLogMapper.xml @@ -96,6 +96,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" AND status = #{status} + + AND oper_url like concat('%', #{operUrl}, '%') + AND oper_name like concat('%', #{operName}, '%')