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}, '%')