serv\web- 日志

This commit is contained in:
2025-10-30 16:40:56 +08:00
parent 82b6f14e64
commit 2b252e1b3c
91 changed files with 6003 additions and 1485 deletions

View File

@@ -36,19 +36,21 @@ public interface AchievementMapper extends BaseMapper<TbAchievement> {
TbAchievement selectByAchievementId(@Param("achievementId") String achievementId);
/**
* @description 根据类型查询成就列表
* @description 根据类型查询成就列表(包含权限过滤)
* @param type 成就类型
* @param userDeptRoles 用户部门角色列表
* @return List<TbAchievement> 成就列表
*/
List<TbAchievement> selectByType(@Param("type") Integer type);
List<TbAchievement> selectByType(@Param("type") Integer type, @Param("userDeptRoles") List<UserDeptRoleVO> userDeptRoles);
/**
* @description 根据类型和等级查询成就列表
* @description 根据类型和等级查询成就列表(包含权限过滤)
* @param type 成就类型
* @param level 成就等级
* @param userDeptRoles 用户部门角色列表
* @return List<TbAchievement> 成就列表
*/
List<TbAchievement> selectByTypeAndLevel(@Param("type") Integer type, @Param("level") Integer level);
List<TbAchievement> selectByTypeAndLevel(@Param("type") Integer type, @Param("level") Integer level, @Param("userDeptRoles") List<UserDeptRoleVO> userDeptRoles);
/**
* @description 根据条件类型查询成就列表
@@ -65,12 +67,13 @@ public interface AchievementMapper extends BaseMapper<TbAchievement> {
List<TbAchievement> selectAchievementRanking(@Param("limit") Integer limit);
/**
* @description 检查成就名称是否存在
* @description 检查成就名称是否存在(包含权限过滤)
* @param name 成就名称
* @param excludeId 排除的成就ID用于更新时排除自身
* @param userDeptRoles 用户部门角色列表
* @return int 存在的数量
*/
int countByName(@Param("name") String name, @Param("excludeId") String excludeId);
int countByName(@Param("name") String name, @Param("excludeId") String excludeId, @Param("userDeptRoles") List<UserDeptRoleVO> userDeptRoles);
/**
* @description 插入成就

View File

@@ -71,7 +71,8 @@ public class ACHAchievementServiceImpl implements AchievementService {
}
// 检查名称是否已存在
int count = achievementMapper.countByName(achievement.getName(), null);
List<UserDeptRoleVO> userDeptRoles = LoginUtil.getCurrentDeptRole();
int count = achievementMapper.countByName(achievement.getName(), null, userDeptRoles);
if (count > 0) {
resultDomain.fail("成就名称已存在");
return resultDomain;
@@ -92,7 +93,6 @@ public class ACHAchievementServiceImpl implements AchievementService {
if (result > 0) {
// 创建成就资源权限
try {
List<UserDeptRoleVO> userDeptRoles = LoginUtil.getCurrentDeptRole();
if (userDeptRoles != null && !userDeptRoles.isEmpty()) {
// 使用用户的第一个部门角色创建权限
resourcePermissionService.createResourcePermission(
@@ -137,7 +137,8 @@ public class ACHAchievementServiceImpl implements AchievementService {
// 检查名称是否重复
if (StringUtils.hasText(achievement.getName())) {
int count = achievementMapper.countByName(achievement.getName(), achievement.getAchievementID());
List<UserDeptRoleVO> userDeptRoles = LoginUtil.getCurrentDeptRole();
int count = achievementMapper.countByName(achievement.getName(), achievement.getAchievementID(), userDeptRoles);
if (count > 0) {
resultDomain.fail("成就名称已存在");
return resultDomain;

View File

@@ -126,22 +126,22 @@
WHERE achievement_id = #{achievementId} AND deleted = 0
</select>
<!-- 根据类型查询成就列表 -->
<!-- 根据类型查询成就列表 - 添加权限过滤 -->
<select id="selectByType" resultMap="BaseResultMap">
SELECT
<include refid="Base_Column_List" />
FROM tb_achievement
WHERE type = #{type} AND deleted = 0
ORDER BY order_num ASC, create_time DESC
SELECT DISTINCT a.*
FROM tb_achievement a
<include refid="Permission_Filter" />
WHERE a.type = #{type} AND a.deleted = 0
ORDER BY a.order_num ASC, a.create_time DESC
</select>
<!-- 根据类型和等级查询成就列表 -->
<!-- 根据类型和等级查询成就列表 - 添加权限过滤 -->
<select id="selectByTypeAndLevel" resultMap="BaseResultMap">
SELECT
<include refid="Base_Column_List" />
FROM tb_achievement
WHERE type = #{type} AND level = #{level} AND deleted = 0
ORDER BY order_num ASC, create_time DESC
SELECT DISTINCT a.*
FROM tb_achievement a
<include refid="Permission_Filter" />
WHERE a.type = #{type} AND a.level = #{level} AND a.deleted = 0
ORDER BY a.order_num ASC, a.create_time DESC
</select>
<!-- 根据条件类型查询成就列表 -->
@@ -165,13 +165,14 @@
</if>
</select>
<!-- 检查成就名称是否存在 -->
<!-- 检查成就名称是否存在 - 添加权限过滤 -->
<select id="countByName" resultType="int">
SELECT COUNT(1)
FROM tb_achievement
WHERE name = #{name} AND deleted = 0
SELECT COUNT(DISTINCT a.id)
FROM tb_achievement a
<include refid="Permission_Filter" />
WHERE a.name = #{name} AND a.deleted = 0
<if test="excludeId != null and excludeId != ''">
AND id != #{excludeId}
AND a.id != #{excludeId}
</if>
</select>