Procházet zdrojové kódy

完成用户积分的权限

tsurumure před 7 měsíci
rodič
revize
6478b7de0a

+ 0 - 1
db/sys_user_role_permission.sql

@@ -53,7 +53,6 @@ INSERT INTO sys_user_role_permission(id, parent_id, permission_name, sort) VALUE
             ('3.3.1', '3.3', '操作用户积分(增加)', null),
             ('3.3.2', '3.3', '操作用户积分(减少)', null),
             ('3.3.3', '3.3', '查询用户积分详情', null),
-                ('3.3.3.2', '3.3.3', '查询他人积分详情', null),
             ('3.3.4', '3.3', '查询用户积分操作记录', null),
         ('3.4', '3', '系统用户权限列表', null),
             ('3.4.1', '3.4', '查询用户权限', null),

+ 1 - 1
db/sys_user_role_permission_relation.sql

@@ -30,7 +30,7 @@ INSERT INTO sys_user_role_permission_relation(role_id, permission_id) VALUES
                 (1, '3.2.3.2'), (1, '3.2.3.3'), (1, '3.2.3.4'),
             (1, '3.2.4'), (1, '3.2.5'), (1, '3.2.6'), (1, '3.2.7'),
         (1, '3.3'),
-            (1, '3.3.1'), (1, '3.3.2'), (1, '3.3.3'), (1, '3.3.3.2'),
+            (1, '3.3.1'), (1, '3.3.2'), (1, '3.3.3'),
             (1, '3.3.4'),
         (1, '3.4'),
             (1, '3.4.1'), (1, '3.4.1.2'),

+ 1 - 0
src/main/java/com/backendsys/modules/system/controller/SysUserController.java

@@ -8,6 +8,7 @@ import com.backendsys.modules.common.config.security.utils.SecurityUtil;
 import com.backendsys.modules.common.utils.Result;
 import com.backendsys.modules.system.entity.SysUserDTO;
 import com.backendsys.modules.system.service.SysUserService;
+import com.backendsys.utils.response.PageEntity;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.Parameter;
 import io.swagger.v3.oas.annotations.tags.Tag;

+ 14 - 15
src/main/java/com/backendsys/modules/system/controller/SysUserIntegralController.java

@@ -34,6 +34,20 @@ public class SysUserIntegralController {
     @Autowired
     private SysUserIntegralLogService sysUserIntegralLogService;
 
+    @Operation(summary = "增加系统用户积分")
+    @PreAuthorize("@sr.hasPermission('3.3.1')")
+    @GetMapping("/api/system/user/increaseUserIntegral")
+    public Result increaseUserIntegral(Long user_id, Integer integral) {
+        return Result.success().put("data", sysUserIntegralService.increase(user_id, integral));
+    }
+
+    @Operation(summary = "减少系统用户积分")
+    @PreAuthorize("@sr.hasPermission('3.3.2')")
+    @GetMapping("/api/system/user/decreaseUserIntegral")
+    public Result decreaseUserIntegral(Long user_id, Integer integral) {
+        return Result.success().put("data", sysUserIntegralService.decrease(user_id, integral));
+    }
+
     @Operation(summary = "获取系统用户积分详情")
     @GetMapping("/api/system/user/getUserIntegral")
     public Result getUserIntegral(Long user_id) {
@@ -65,19 +79,4 @@ public class SysUserIntegralController {
         return Result.success().put("data", sysUserIntegralLogService.selectIntegralLogList(sysUserIntegralLog));
     }
 
-
-//    // 测试完删除
-//    @Operation(summary = "增加积分 (测试)")
-//    @GetMapping("/api/system/increaseUserIntegral")
-//    public Result increaseUserIntegral(Long user_id, Integer integral) {
-//        return Result.success().put("data", sysUserIntegralService.increase(user_id, integral));
-//    }
-//
-//    // 测试完删除
-//    @Operation(summary = "减少积分 (测试)")
-//    @GetMapping("/api/system/decreaseUserIntegral")
-//    public Result decreaseUserIntegral(Long user_id, Integer integral) {
-//        return Result.success().put("data", sysUserIntegralService.decrease(user_id, integral));
-//    }
-
 }

+ 11 - 5
src/main/java/com/backendsys/modules/system/service/impl/SysUserServiceImpl.java

@@ -3,6 +3,7 @@ package com.backendsys.modules.system.service.impl;
 import cn.hutool.core.convert.Convert;
 import com.backendsys.exception.CustException;
 import com.backendsys.modules.common.config.redis.utils.RedisUtil;
+import com.backendsys.modules.common.config.security.utils.SecurityUtil;
 import com.backendsys.modules.common.config.security.utils.TokenUtil;
 import com.backendsys.modules.common.utils.MybatisUtil;
 import com.backendsys.modules.system.dao.*;
@@ -47,6 +48,8 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserDao, SysUser> impleme
     private RedisUtil redisUtil;
     @Autowired
     private TokenUtil tokenUtil;
+    @Autowired
+    private SecurityUtil securityUtil;
 
     @Autowired
     private SysUserDao sysUserDao;
@@ -119,7 +122,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserDao, SysUser> impleme
         List<Map<String, Object>> sysUserRoleMenuList = sysUserRoleMenuService.selectUserRoleMenuList(permission_ids, 1);
         sysUserInfo.setMenus(sysUserRoleMenuList);
 
-        // 获得用户积分
+        // 获得用户积分 (需要权限)
         Integer integral = sysUserIntegralService.selectIntegralByUserId(user_id);
         sysUserInfo.setIntegral(integral);
 
@@ -139,10 +142,6 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserDao, SysUser> impleme
         SysUserInfo sysUserInfo = sysUserInfoDao.selectOne(new QueryWrapper<SysUserInfo>().eq("user_id", user_id));
         if (sysUserInfo == null) throw new CustException("用户不存在");
 
-        // 获得用户积分
-        Integer integral = sysUserIntegralService.selectIntegralByUserId(user_id);
-        sysUserInfo.setIntegral(integral);
-
         // 获得 用户角色
         List<Map<String, Object>> roles = sysUserRoleDao.selectRoleByUserId(user_id);
         sysUserInfo.setRoles(roles);
@@ -151,6 +150,13 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserDao, SysUser> impleme
         List<Long> role_ids = roles.stream().map(m -> Convert.toLong(m.get("role_id"))).collect(Collectors.toList());
         sysUserInfo.setRole_id(role_ids);
 
+
+
+        // 获得用户积分 (需要权限)
+        Integer integral = sysUserIntegralService.selectIntegralByUserId(user_id);
+        sysUserInfo.setIntegral(integral);
+
+
         // 用户账号信息 赋值到 用户基本信息
         BeanUtils.copyProperties(sysUser, sysUserInfo);
 

+ 15 - 28
src/main/resources/mapper/system/SysUserInfoDao.xml

@@ -40,6 +40,7 @@
         <result property="last_login_uuid" column="last_login_uuid" />
         <result property="last_login_time" column="last_login_time" />
         <result property="is_super" column="is_super" javaType="java.lang.Integer" />
+        <result property="integral" column="integral" javaType="java.lang.Integer" />
         <result property="point_balance" column="point_balance" javaType="java.lang.Float" />
         <result property="invite_code" column="invite_code" />
         <result property="status" column="status" javaType="java.lang.Integer"/>
@@ -54,43 +55,29 @@
     </resultMap>
 
     <select id="selectUserList" resultMap="resultMapUserList">
-        SELECT <include refid="includeUser" />, urr.role_id role_id
+        SELECT
+            <include refid="includeUser" />,
+            urr.role_id role_id,
+            COALESCE(ui.integral, 0) integral
         FROM sys_user_info uf
         LEFT JOIN sys_user u ON u.id = uf.user_id
         LEFT JOIN sys_user_role_relation urr ON uf.user_id = urr.user_id
+        LEFT JOIN sys_user_integral ui ON uf.user_id = ui.user_id
         <where>
             AND u.id != 1
             AND uf.del_flag != 1
-            <if test="username != null and username != ''">
-                AND u.username LIKE CONCAT('%', #{username}, '%')
-            </if>
-            <if test="phone != null and phone != ''">
-                AND u.phone LIKE CONCAT('%', #{phone}, '%')
-            </if>
-            <if test="phone_area_code != null and phone_area_code != ''">
-                AND u.phone_area_code = #{phone_area_code}
-            </if>
-            <if test="nickname != null and nickname != ''">
-                AND uf.nickname LIKE CONCAT('%', #{nickname}, '%')
-            </if>
-            <if test="email != null and email != ''">
-                AND uf.email LIKE CONCAT('%', #{email}, '%')
-            </if>
-            <if test="status != null and status != ''">
-                AND uf.status = #{status}
-            </if>
-            <if test="audit_status != null and audit_status != ''">
-                AND uf.audit_status = #{audit_status}
-            </if>
+            <if test="username != null and username != ''">AND u.username LIKE CONCAT('%', #{username}, '%')</if>
+            <if test="phone != null and phone != ''">AND u.phone LIKE CONCAT('%', #{phone}, '%')</if>
+            <if test="phone_area_code != null and phone_area_code != ''">AND u.phone_area_code = #{phone_area_code}</if>
+            <if test="nickname != null and nickname != ''">AND uf.nickname LIKE CONCAT('%', #{nickname}, '%')</if>
+            <if test="email != null and email != ''">AND uf.email LIKE CONCAT('%', #{email}, '%')</if>
+            <if test="status != null and status != ''">AND uf.status = #{status}</if>
+            <if test="audit_status != null and audit_status != ''">AND uf.audit_status = #{audit_status}</if>
             <if test="role_id != null and role_id != ''">
                 AND urr.role_id IN
-                <foreach collection="role_id" item="role" open="(" separator="," close=")">
-                    #{role}
-                </foreach>
-            </if>
-            <if test="is_super != null and is_super != ''">
-                AND uf.is_super = #{is_super}
+                <foreach collection="role_id" item="role" open="(" separator="," close=")">#{role}</foreach>
             </if>
+            <if test="is_super != null and is_super != ''">AND uf.is_super = #{is_super}</if>
         </where>
         ORDER BY uf.create_time DESC
     </select>