Merge remote-tracking branch 'origin/master'

This commit is contained in:
SjS 2025-04-26 19:06:21 +08:00
commit bf6299ddc1
3 changed files with 29 additions and 42 deletions

View File

@ -57,7 +57,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="mobile != null">mobile,</if>
<if test="status != null and status != ''">status,</if>
<if test="createTime != null">create_time,</if>
<if test="updateTime != null">update_time,</if>
<if test="userId != null">user_id,</if>
<if test="type != null and type != ''">type,</if>
<if test="result != null and result != ''">result,</if>
@ -70,7 +69,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="mobile != null">#{mobile},</if>
<if test="status != null and status != ''">#{status},</if>
<if test="createTime != null">#{createTime},</if>
<if test="updateTime != null">#{updateTime},</if>
<if test="userId != null">#{userId},</if>
<if test="type != null and type != ''">#{type},</if>
<if test="result != null and result != ''">#{result},</if>
@ -93,7 +91,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="data.mobile != null">mobile = #{data.mobile},</if>
<if test="data.status != null and data.status != ''">status = #{data.status},</if>
<if test="data.createTime != null">create_time = #{data.createTime},</if>
<if test="data.updateTime != null">update_time = #{data.updateTime},</if>
<if test="data.userId != null">user_id = #{data.userId},</if>
<if test="data.type != null and data.type != ''">type = #{data.type},</if>
<if test="data.result != null and data.result != ''">result = #{data.result},</if>

View File

@ -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;

View File

@ -96,6 +96,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="status != null">
AND status = #{status}
</if>
<if test="operUrl != null and operUrl != ''">
AND oper_url like concat('%', #{operUrl}, '%')
</if>
<if test="operName != null and operName != ''">
AND oper_name like concat('%', #{operName}, '%')
</if>