feat(core): 实现用户积分计算逻辑
- 新增积分规则处理模块
- 集成积分计算到相关业务流程中
fix(file): 修复上传工具中路径乱码和非法字符问题
- 使用 UTF-8 编码统一路径解析
- 增加路径合法性校验
fix(user): 修正用户 Passkey 生成与验证流程
- 修复部分场景下 Passkey 未生成的问题
- 调整 Passkey 校验逻辑,确保唯一性和安全性
Change-Id: Id5eacb20f354a07de01413474095c2b2b9b49231
diff --git a/ruoyi-admin/src/main/resources/mapper/system/SysUserPasskeyMapper.xml b/ruoyi-admin/src/main/resources/mapper/system/SysUserPasskeyMapper.xml
new file mode 100644
index 0000000..949ac4f
--- /dev/null
+++ b/ruoyi-admin/src/main/resources/mapper/system/SysUserPasskeyMapper.xml
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.authentication.mapper.SysUserPasskeyMapper">
+
+ <resultMap type="SysUserPasskey" id="SysUserPasskeyResult">
+ <result property="userId" column="user_id" />
+ <result property="passkey" column="passkey" />
+ <result property="createdAt" column="created_at" />
+ </resultMap>
+
+ <sql id="selectSysUserPasskeyVo">
+ select user_id, passkey, created_at from sys_user_passkey
+ </sql>
+
+ <select id="selectSysUserPasskeyList" parameterType="SysUserPasskey" resultMap="SysUserPasskeyResult">
+ <include refid="selectSysUserPasskeyVo"/>
+ <where>
+ <if test="passkey != null and passkey != ''"> and passkey = #{passkey}</if>
+ </where>
+ </select>
+
+ <select id="selectSysUserPasskeyByUserId" parameterType="Long" resultMap="SysUserPasskeyResult">
+ <include refid="selectSysUserPasskeyVo"/>
+ where user_id = #{userId}
+ </select>
+
+ <insert id="insertSysUserPasskey" parameterType="SysUserPasskey">
+ insert into sys_user_passkey
+ <trim prefix="(" suffix=")" suffixOverrides=",">
+ <if test="userId != null">user_id,</if>
+ <if test="passkey != null and passkey != ''">passkey,</if>
+ <if test="createdAt != null">created_at,</if>
+ </trim>
+ <trim prefix="values (" suffix=")" suffixOverrides=",">
+ <if test="userId != null">#{userId},</if>
+ <if test="passkey != null and passkey != ''">#{passkey},</if>
+ <if test="createdAt != null">#{createdAt},</if>
+ </trim>
+ </insert>
+
+ <update id="updateSysUserPasskey" parameterType="SysUserPasskey">
+ update sys_user_passkey
+ <trim prefix="SET" suffixOverrides=",">
+ <if test="passkey != null and passkey != ''">passkey = #{passkey},</if>
+ <if test="createdAt != null">created_at = #{createdAt},</if>
+ </trim>
+ where user_id = #{userId}
+ </update>
+
+ <delete id="deleteSysUserPasskeyByUserId" parameterType="Long">
+ delete from sys_user_passkey where user_id = #{userId}
+ </delete>
+
+ <delete id="deleteSysUserPasskeyByUserIds" parameterType="String">
+ delete from sys_user_passkey where user_id in
+ <foreach item="userId" collection="array" open="(" separator="," close=")">
+ #{userId}
+ </foreach>
+ </delete>
+</mapper>
\ No newline at end of file