Browse Source

新增积分功能(未完成,还没有默认创建)

tsurumure 7 months ago
parent
commit
948fbcf7aa
21 changed files with 322 additions and 37 deletions
  1. 32 0
      db/sys_user_integral.sql
  2. 25 0
      db/sys_user_integral_log.sql
  3. 6 3
      db/sys_user_role_permission.sql
  4. 2 2
      db/sys_user_role_permission_relation.sql
  5. 4 1
      src/main/java/com/backendsys/modules/common/config/security/utils/SecurityUtil.java
  6. 18 19
      src/main/java/com/backendsys/modules/system/controller/SysUserController.java
  7. 51 0
      src/main/java/com/backendsys/modules/system/controller/SysUserIntegralController.java
  8. 9 0
      src/main/java/com/backendsys/modules/system/dao/SysUserIntegralDao.java
  9. 9 0
      src/main/java/com/backendsys/modules/system/dao/SysUserIntegralLogDao.java
  10. 4 0
      src/main/java/com/backendsys/modules/system/entity/SysUserInfo.java
  11. 4 0
      src/main/java/com/backendsys/modules/system/entity/SysUserInfoSimple.java
  12. 14 0
      src/main/java/com/backendsys/modules/system/entity/SysUserIntegral.java
  13. 20 0
      src/main/java/com/backendsys/modules/system/entity/SysUserIntegralLog.java
  14. 4 0
      src/main/java/com/backendsys/modules/system/service/SysUserIntegralLogService.java
  15. 15 0
      src/main/java/com/backendsys/modules/system/service/SysUserIntegralService.java
  16. 1 2
      src/main/java/com/backendsys/modules/system/service/SysUserService.java
  17. 3 4
      src/main/java/com/backendsys/modules/system/service/impl/SysAuthV2ServiceImpl.java
  18. 8 0
      src/main/java/com/backendsys/modules/system/service/impl/SysUserIntegralLogServiceImpl.java
  19. 77 0
      src/main/java/com/backendsys/modules/system/service/impl/SysUserIntegralServiceImpl.java
  20. 13 3
      src/main/java/com/backendsys/modules/system/service/impl/SysUserServiceImpl.java
  21. 3 3
      src/main/java/com/backendsys/service/Ai/Aiivh/AiivhQuotaServiceImpl.java

+ 32 - 0
db/sys_user_integral.sql

@@ -0,0 +1,32 @@
+/**
+Source Server Version: 8.0.31
+Source Database: backendsys
+Date: 2023/05/23 17:09:22
+*/
+
+DROP TABLE IF EXISTS `sys_user_integral`;
+CREATE TABLE `sys_user_integral` (
+    PRIMARY KEY (`user_id`),
+    `user_id` BIGINT NOT NULL COMMENT '用户ID',
+    `integral` INT DEFAULT 0 COMMENT '积分',
+    UNIQUE KEY (`user_id`)
+) ENGINE=INNODB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='系统用户积分表';
+
+INSERT INTO sys_user_integral(user_id, integral) VALUES
+    (1, 1000),
+    (2, 200),
+    (3, 0),
+    (4, 0),
+    (5, 0),
+    (6, 0),
+    (7, 0),
+    (8, 0),
+    (9, 0),
+    (10, 0),
+    (11, 0),
+    (12, 0),
+    (13, 0),
+    (14, 0),
+    (15, 0),
+    (16, 0)
+;

+ 25 - 0
db/sys_user_integral_log.sql

@@ -0,0 +1,25 @@
+/**
+Source Server Version: 8.0.31
+Source Database: backendsys
+Date: 2023/05/23 17:09:22
+*/
+
+DROP TABLE IF EXISTS `sys_user_integral_log`;
+CREATE TABLE `sys_user_integral_log` (
+    PRIMARY KEY (`id`),
+    `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT 'ID',
+    `user_id` BIGINT NOT NULL COMMENT '用户ID',
+    `content` VARCHAR(500) COMMENT '内容',
+    `integral` INT NOT NULL COMMENT '积分',
+    `operation` INT NOT NULL COMMENT '操作 (1:增加, -1:减少)',
+    `operation_user_id` BIGINT COMMENT '操作人 (手动添加必填)',
+    `origin` INT NOT NULL COMMENT '来源 (1:手动添加, 2:..)',
+    `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+    INDEX `idx_user_id` (`user_id`)
+) ENGINE=INNODB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='系统用户积分记录表';
+
+INSERT INTO sys_user_integral_log(user_id, content, integral, operation, operation_user_id, origin) VALUES
+    (1, '手动添加积分', 100, 1, 1, 1),
+    (1, '手动添加积分', 200, 1, 2, 1),
+    (1, '手动添加积分', 200, -1, 2, 1)
+;

+ 6 - 3
db/sys_user_role_permission.sql

@@ -50,9 +50,12 @@ INSERT INTO sys_user_role_permission(id, parent_id, permission_name, sort) VALUE
             ('3.2.6', '3.2', '审核用户', null),
             ('3.2.6', '3.2', '审核用户', null),
             ('3.2.7', '3.2', '踢出用户', null),
             ('3.2.7', '3.2', '踢出用户', null),
         ('3.3', '3', '系统用户积分列表', null),
         ('3.3', '3', '系统用户积分列表', null),
-            ('3.3.8', '3.3', '操作用户积分', null),
-            ('3.3.9', '3.3', '查询用户积分', null),
-            ('3.3.10', '3.3', '查询用户积分操作记录', null),
+            ('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.3.4.2', '3.3', '查询他人积分操作记录', null),
         ('3.4', '3', '系统用户权限列表', null),
         ('3.4', '3', '系统用户权限列表', null),
             ('3.4.1', '3.4', '查询用户权限', null),
             ('3.4.1', '3.4', '查询用户权限', null),
             ('3.4.1.2', '3.4', '查询他人用户权限', null),
             ('3.4.1.2', '3.4', '查询他人用户权限', null),

+ 2 - 2
db/sys_user_role_permission_relation.sql

@@ -30,8 +30,8 @@ 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.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.2.4'), (1, '3.2.5'), (1, '3.2.6'), (1, '3.2.7'),
         (1, '3.3'),
         (1, '3.3'),
-            (1, '3.3.8'), (1, '3.3.9'), (1, '3.3.10'),
-#             (1, '3.3.1'), (1, '3.3.2'), (1, '3.3.3'), (1, '3.3.4'), (1, '3.3.5'), (1, '3.3.6'), (1, '3.3.7'),
+            (1, '3.3.1'), (1, '3.3.2'), (1, '3.3.3'), (1, '3.3.3.2'),
+            (1, '3.3.4'), (1, '3.3.4.2'),
         (1, '3.4'),
         (1, '3.4'),
             (1, '3.4.1'), (1, '3.4.1.2'),
             (1, '3.4.1'), (1, '3.4.1.2'),
         (1, '3.5'),
         (1, '3.5'),

+ 4 - 1
src/main/java/com/backendsys/modules/common/config/security/utils/SecurityUtil.java

@@ -111,6 +111,9 @@ public class SecurityUtil {
         return permission_ids;
         return permission_ids;
     }
     }
 
 
+    /**
+     * 判断单个用户权限 (超管直接通过)
+     */
     public Boolean hasPermission(String permission) {
     public Boolean hasPermission(String permission) {
         if (isSuper()) return true;
         if (isSuper()) return true;
         List<String> permission_ids = getPermissionIds();
         List<String> permission_ids = getPermissionIds();
@@ -118,7 +121,7 @@ public class SecurityUtil {
     }
     }
 
 
     /**
     /**
-     * 判断是否具备用户权限 (多个) (默认 AND)
+     * 判断是否具备用户权限 (多个) (默认 AND) (超管直接通过)
      * - SecurityUtil.hasPermissions(Arrays.asList("3.2.1", "3.2.2"))
      * - SecurityUtil.hasPermissions(Arrays.asList("3.2.1", "3.2.2"))
      * - SecurityUtil.hasPermissions(Arrays.asList("3.2.1", "3.2.2"), MatchType.OR)
      * - SecurityUtil.hasPermissions(Arrays.asList("3.2.1", "3.2.2"), MatchType.OR)
      * - 注意:权限储存在Token中,更新权限需要重新登录
      * - 注意:权限储存在Token中,更新权限需要重新登录

+ 18 - 19
src/main/java/com/backendsys/modules/system/controller/SysUserController.java

@@ -7,7 +7,7 @@ import com.backendsys.modules.common.config.security.enums.SecurityEnum;
 import com.backendsys.modules.common.config.security.utils.SecurityUtil;
 import com.backendsys.modules.common.config.security.utils.SecurityUtil;
 import com.backendsys.modules.common.utils.Result;
 import com.backendsys.modules.common.utils.Result;
 import com.backendsys.modules.system.entity.SysUserDTO;
 import com.backendsys.modules.system.entity.SysUserDTO;
-import com.backendsys.modules.system.service.SysUserV2Service;
+import com.backendsys.modules.system.service.SysUserService;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.Parameter;
 import io.swagger.v3.oas.annotations.Parameter;
 import io.swagger.v3.oas.annotations.tags.Tag;
 import io.swagger.v3.oas.annotations.tags.Tag;
@@ -32,20 +32,20 @@ public class SysUserController {
     private SecurityUtil securityUtil;
     private SecurityUtil securityUtil;
 
 
     @Autowired
     @Autowired
-    private SysUserV2Service sysUserV2Service;
+    private SysUserService sysUserService;
 
 
     @Operation(summary = "获取系统用户列表")
     @Operation(summary = "获取系统用户列表")
     @PreAuthorize("@sr.hasPermission('3.2')")
     @PreAuthorize("@sr.hasPermission('3.2')")
     @GetMapping("/api/system/user/getUserList")
     @GetMapping("/api/system/user/getUserList")
     public Result getUserList(SysUserDTO sysUserDTO) {
     public Result getUserList(SysUserDTO sysUserDTO) {
-        return Result.success().put("data", sysUserV2Service.selectUserList(sysUserDTO));
+        return Result.success().put("data", sysUserService.selectUserList(sysUserDTO));
     }
     }
 
 
     @Operation(summary = "获取系统用户列表 (在线的)")
     @Operation(summary = "获取系统用户列表 (在线的)")
     @PreAuthorize("@sr.hasPermission('3.1')")
     @PreAuthorize("@sr.hasPermission('3.1')")
     @GetMapping("/api/system/user/getUserOnlineList")
     @GetMapping("/api/system/user/getUserOnlineList")
     public Result getUserOnlineList(SysUserDTO sysUserDTO) {
     public Result getUserOnlineList(SysUserDTO sysUserDTO) {
-        return Result.success().put("data", sysUserV2Service.selectUserOnlineList(sysUserDTO));
+        return Result.success().put("data", sysUserService.selectUserOnlineList(sysUserDTO));
     }
     }
 
 
     /**
     /**
@@ -64,12 +64,11 @@ public class SysUserController {
         // 查询他人的用户信息
         // 查询他人的用户信息
         // - 查询自己 (无需权限)
         // - 查询自己 (无需权限)
         // - 查询他人 (需要权限或超级管理员)
         // - 查询他人 (需要权限或超级管理员)
-        System.out.println("SecurityUtil.isSuper(): " + SecurityUtil.isSuper());
-        if (!user_id.equals(SecurityUtil.getUserId()) && !securityUtil.hasPermission("3.2.1.2") && !SecurityUtil.isSuper()) {
+        if (!user_id.equals(SecurityUtil.getUserId()) && !securityUtil.hasPermission("3.2.1.2")) {
             throw new CustException(SecurityEnum.NOAUTH);
             throw new CustException(SecurityEnum.NOAUTH);
         }
         }
 
 
-        return Result.success().put("data", sysUserV2Service.selectUserInfoSimple(user_id));
+        return Result.success().put("data", sysUserService.selectUserInfoSimple(user_id));
     }
     }
 
 
     @SysLog("创建系统用户")
     @SysLog("创建系统用户")
@@ -77,7 +76,7 @@ public class SysUserController {
     @PreAuthorize("@sr.hasPermission('3.2.2')")
     @PreAuthorize("@sr.hasPermission('3.2.2')")
     @PostMapping("/api/system/user/createUser")
     @PostMapping("/api/system/user/createUser")
     public Result createUser(@Validated(SysUserDTO.Create.class) @RequestBody SysUserDTO sysUserDTO) {
     public Result createUser(@Validated(SysUserDTO.Create.class) @RequestBody SysUserDTO sysUserDTO) {
-        return Result.success().put("data", sysUserV2Service.insertUser(sysUserDTO));
+        return Result.success().put("data", sysUserService.insertUser(sysUserDTO));
     }
     }
 
 
     /**
     /**
@@ -101,14 +100,14 @@ public class SysUserController {
         // 编辑他人的用户信息
         // 编辑他人的用户信息
         // - 编辑自己 (无需权限)
         // - 编辑自己 (无需权限)
         // - 编辑他人 (需要子权限或超级管理员)
         // - 编辑他人 (需要子权限或超级管理员)
-        if (!user_id.equals(SecurityUtil.getUserId()) && !securityUtil.hasPermission("3.2.3.2") && !SecurityUtil.isSuper()) {
+        if (!user_id.equals(SecurityUtil.getUserId()) && !securityUtil.hasPermission("3.2.3.2")) {
             throw new CustException(SecurityEnum.NOAUTH);
             throw new CustException(SecurityEnum.NOAUTH);
         }
         }
         // 防止手动更新字段
         // 防止手动更新字段
         sysUserDTO.setLast_login_time(null);
         sysUserDTO.setLast_login_time(null);
         sysUserDTO.setLast_login_ip(null);
         sysUserDTO.setLast_login_ip(null);
 
 
-        return Result.success().put("data", sysUserV2Service.updateUserInfo(sysUserDTO));
+        return Result.success().put("data", sysUserService.updateUserInfo(sysUserDTO));
     }
     }
 
 
     @Operation(summary = "编辑系统用户密码")
     @Operation(summary = "编辑系统用户密码")
@@ -127,11 +126,11 @@ public class SysUserController {
         // 编辑他人的用户信息
         // 编辑他人的用户信息
         // - 编辑自己 (无需权限)
         // - 编辑自己 (无需权限)
         // - 编辑他人 (需要子权限或超级管理员)
         // - 编辑他人 (需要子权限或超级管理员)
-        if (!user_id.equals(SecurityUtil.getUserId()) && !securityUtil.hasPermission("3.2.3.2") && !SecurityUtil.isSuper()) {
+        if (!user_id.equals(SecurityUtil.getUserId()) && !securityUtil.hasPermission("3.2.3.2")) {
             throw new CustException(SecurityEnum.NOAUTH);
             throw new CustException(SecurityEnum.NOAUTH);
         }
         }
 
 
-        return Result.success().put("data", sysUserV2Service.updateUserPassword(sysUserDTO));
+        return Result.success().put("data", sysUserService.updateUserPassword(sysUserDTO));
     }
     }
 
 
     @Operation(summary = "重置系统用户密码")
     @Operation(summary = "重置系统用户密码")
@@ -152,7 +151,7 @@ public class SysUserController {
             throw new CustException("不能重置自身密码,请自行修改密码");
             throw new CustException("不能重置自身密码,请自行修改密码");
         }
         }
 
 
-        return Result.success().put("data", sysUserV2Service.resetUserPassword(sysUserDTO));
+        return Result.success().put("data", sysUserService.resetUserPassword(sysUserDTO));
     }
     }
 
 
     @Operation(summary = "删除系统用户")
     @Operation(summary = "删除系统用户")
@@ -166,7 +165,7 @@ public class SysUserController {
         if (user_ids != null && user_ids.contains(SecurityUtil.getUserId()) && !user_id.equals(SecurityUtil.getUserId())) throw new CustException("不能删除自己的账号");
         if (user_ids != null && user_ids.contains(SecurityUtil.getUserId()) && !user_id.equals(SecurityUtil.getUserId())) throw new CustException("不能删除自己的账号");
         if (user_ids != null && user_ids.contains(1L) && !user_id.equals(1L)) throw new CustException("不能删除超管账号");
         if (user_ids != null && user_ids.contains(1L) && !user_id.equals(1L)) throw new CustException("不能删除超管账号");
 
 
-        return Result.success().put("data", sysUserV2Service.deleteUser(sysUserDTO));
+        return Result.success().put("data", sysUserService.deleteUser(sysUserDTO));
     }
     }
 
 
     @Operation(summary = "踢出系统用户")
     @Operation(summary = "踢出系统用户")
@@ -178,7 +177,7 @@ public class SysUserController {
         if (user_id.equals(1L)) throw new CustException("不能踢出超管账号");
         if (user_id.equals(1L)) throw new CustException("不能踢出超管账号");
         if (user_id.equals(SecurityUtil.getUserId())) throw new CustException("不能踢出自己的账号");
         if (user_id.equals(SecurityUtil.getUserId())) throw new CustException("不能踢出自己的账号");
 
 
-        return Result.success().put("data", sysUserV2Service.kickUser(user_id));
+        return Result.success().put("data", sysUserService.kickUser(user_id));
     }
     }
 
 
 
 
@@ -197,11 +196,11 @@ public class SysUserController {
         // 查询他人的用户信息
         // 查询他人的用户信息
         // - 查询自己 (无需权限)
         // - 查询自己 (无需权限)
         // - 查询他人 (需要子权限或超级管理员)
         // - 查询他人 (需要子权限或超级管理员)
-        if (!user_id.equals(SecurityUtil.getUserId()) && !securityUtil.hasPermission("3.4.1.2") && !SecurityUtil.isSuper()) {
+        if (!user_id.equals(SecurityUtil.getUserId()) && !securityUtil.hasPermission("3.4.1.2")) {
             throw new CustException(SecurityEnum.NOAUTH);
             throw new CustException(SecurityEnum.NOAUTH);
         }
         }
 
 
-        return Result.success().put("data", sysUserV2Service.selectUserPermission(user_id));
+        return Result.success().put("data", sysUserService.selectUserPermission(user_id));
     }
     }
 
 
     /**
     /**
@@ -219,11 +218,11 @@ public class SysUserController {
         // 查询他人的用户信息
         // 查询他人的用户信息
         // - 查询自己 (无需权限)
         // - 查询自己 (无需权限)
         // - 查询他人 (需要子权限或超级管理员)
         // - 查询他人 (需要子权限或超级管理员)
-        if (!user_id.equals(SecurityUtil.getUserId()) && !securityUtil.hasPermission("3.4.1.2") && !SecurityUtil.isSuper()) {
+        if (!user_id.equals(SecurityUtil.getUserId()) && !securityUtil.hasPermission("3.4.1.2")) {
             throw new CustException(SecurityEnum.NOAUTH);
             throw new CustException(SecurityEnum.NOAUTH);
         }
         }
 
 
-        return Result.success().put("data", sysUserV2Service.selectUserMenu(user_id));
+        return Result.success().put("data", sysUserService.selectUserMenu(user_id));
     }
     }
 
 
 }
 }

+ 51 - 0
src/main/java/com/backendsys/modules/system/controller/SysUserIntegralController.java

@@ -0,0 +1,51 @@
+package com.backendsys.modules.system.controller;
+
+import com.backendsys.exception.CustException;
+import com.backendsys.modules.common.config.security.enums.SecurityEnum;
+import com.backendsys.modules.common.config.security.utils.SecurityUtil;
+import com.backendsys.modules.common.utils.Result;
+import com.backendsys.modules.system.entity.SysLogEntity;
+import com.backendsys.modules.system.service.SysUserIntegralService;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.LinkedHashMap;
+import java.util.Map;
+
+@Validated
+@RestController
+@Tag(name = "系统用户积分")
+public class SysUserIntegralController {
+
+    @Autowired
+    private SecurityUtil securityUtil;
+
+    @Autowired
+    private SysUserIntegralService sysUserIntegralService;
+
+    @Operation(summary = "获取系统用户积分详情")
+    @GetMapping("/api/system/getUserIntegral")
+    public Result getUserIntegral(Long user_id) {
+        if (user_id == null) user_id = SecurityUtil.getUserId();
+
+        // 查询他人的用户积分
+        // - 查询自己 (无需权限)
+        // - 查询他人 (需要子权限或超级管理员)
+        if (!user_id.equals(SecurityUtil.getUserId()) && !securityUtil.hasPermission("3.3.3.2")) {
+            throw new CustException(SecurityEnum.NOAUTH);
+        }
+
+        Integer integral = sysUserIntegralService.selectIntegralByUserId(user_id);
+
+        Map<String, Object> resp = new LinkedHashMap<>();
+        resp.put("user_id", user_id);
+        resp.put("integral", integral);
+        return Result.success().put("data", resp);
+    }
+
+}

+ 9 - 0
src/main/java/com/backendsys/modules/system/dao/SysUserIntegralDao.java

@@ -0,0 +1,9 @@
+package com.backendsys.modules.system.dao;
+
+import com.backendsys.modules.system.entity.SysUserIntegral;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface SysUserIntegralDao extends BaseMapper<SysUserIntegral> {
+}

+ 9 - 0
src/main/java/com/backendsys/modules/system/dao/SysUserIntegralLogDao.java

@@ -0,0 +1,9 @@
+package com.backendsys.modules.system.dao;
+
+import com.backendsys.modules.system.entity.SysUserIntegralLog;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface SysUserIntegralLogDao extends BaseMapper<SysUserIntegralLog> {
+}

+ 4 - 0
src/main/java/com/backendsys/modules/system/entity/SysUserInfo.java

@@ -37,6 +37,10 @@ public class SysUserInfo {
     private String last_login_uuid;
     private String last_login_uuid;
     private String last_login_time;
     private String last_login_time;
     private Integer is_super;
     private Integer is_super;
+
+    @TableField(exist = false)
+    private Integer integral;       // 积分
+
     private Double point_balance;
     private Double point_balance;
     private String invite_code;
     private String invite_code;
     private Integer status;
     private Integer status;

+ 4 - 0
src/main/java/com/backendsys/modules/system/entity/SysUserInfoSimple.java

@@ -24,6 +24,10 @@ public class SysUserInfoSimple {
     private String last_login_uuid;
     private String last_login_uuid;
     private String last_login_time;
     private String last_login_time;
     private Integer is_super;
     private Integer is_super;
+
+    @TableField(exist = false)
+    private Integer integral;       // 积分
+
     private Double point_balance;
     private Double point_balance;
     private String invite_code;
     private String invite_code;
     private Integer status;
     private Integer status;

+ 14 - 0
src/main/java/com/backendsys/modules/system/entity/SysUserIntegral.java

@@ -0,0 +1,14 @@
+package com.backendsys.modules.system.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+@Data
+@TableName("sys_user_integral")
+public class SysUserIntegral {
+    @TableId
+    private Long user_id;
+    private Integer integral;   // 积分
+}

+ 20 - 0
src/main/java/com/backendsys/modules/system/entity/SysUserIntegralLog.java

@@ -0,0 +1,20 @@
+package com.backendsys.modules.system.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+@Data
+@TableName("sys_user_integral_log")
+public class SysUserIntegralLog {
+    @TableId(type = IdType.AUTO)
+    private Long id;
+    private Long user_id;
+    private String content;             // 内容
+    private Integer integral;           // 积分
+    private Integer operation;          // 操作 (1:增加, -1:减少)
+    private Long operation_user_id;     // 操作人 (手动添加必填)
+    private Integer origin;             // 来源 (1:手动添加, 2:..)
+    private String create_time;
+}

+ 4 - 0
src/main/java/com/backendsys/modules/system/service/SysUserIntegralLogService.java

@@ -0,0 +1,4 @@
+package com.backendsys.modules.system.service;
+
+public interface SysUserIntegralLogService {
+}

+ 15 - 0
src/main/java/com/backendsys/modules/system/service/SysUserIntegralService.java

@@ -0,0 +1,15 @@
+package com.backendsys.modules.system.service;
+
+import java.util.Map;
+
+public interface SysUserIntegralService {
+
+    // 查询积分
+    Integer selectIntegralByUserId(Long user_id);
+
+    // 增加积分
+    Map<String, Object> increase(Long user_id, Integer integral);
+    // 减少积分
+    Map<String, Object> decrease(Long user_id, Integer integral);
+
+}

+ 1 - 2
src/main/java/com/backendsys/modules/system/service/SysUserV2Service.java → src/main/java/com/backendsys/modules/system/service/SysUserService.java

@@ -7,10 +7,9 @@ import com.backendsys.modules.system.entity.SysUserInfoSimple;
 import com.backendsys.utils.response.PageEntity;
 import com.backendsys.utils.response.PageEntity;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.extension.service.IService;
 
 
-import java.util.List;
 import java.util.Map;
 import java.util.Map;
 
 
-public interface SysUserV2Service extends IService<SysUser> {
+public interface SysUserService extends IService<SysUser> {
 
 
     // 获取系统用户列表
     // 获取系统用户列表
     PageEntity selectUserList(SysUserDTO sysUserDTO);
     PageEntity selectUserList(SysUserDTO sysUserDTO);

+ 3 - 4
src/main/java/com/backendsys/modules/system/service/impl/SysAuthV2ServiceImpl.java

@@ -1,7 +1,6 @@
 package com.backendsys.modules.system.service.impl;
 package com.backendsys.modules.system.service.impl;
 
 
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.date.DateUtil;
-import cn.hutool.core.util.StrUtil;
 import cn.hutool.json.JSONUtil;
 import cn.hutool.json.JSONUtil;
 import com.backendsys.exception.CustException;
 import com.backendsys.exception.CustException;
 import com.backendsys.modules.common.config.redis.utils.RedisUtil;
 import com.backendsys.modules.common.config.redis.utils.RedisUtil;
@@ -12,7 +11,7 @@ import com.backendsys.modules.system.dao.SysUserDao;
 import com.backendsys.modules.system.dao.SysUserInfoDao;
 import com.backendsys.modules.system.dao.SysUserInfoDao;
 import com.backendsys.modules.system.entity.*;
 import com.backendsys.modules.system.entity.*;
 import com.backendsys.modules.system.service.SysAuthV2Service;
 import com.backendsys.modules.system.service.SysAuthV2Service;
-import com.backendsys.modules.system.service.SysUserV2Service;
+import com.backendsys.modules.system.service.SysUserService;
 import com.backendsys.utils.response.ResultEnum;
 import com.backendsys.utils.response.ResultEnum;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.google.code.kaptcha.Producer;
 import com.google.code.kaptcha.Producer;
@@ -54,7 +53,7 @@ public class SysAuthV2ServiceImpl implements SysAuthV2Service {
     @Autowired
     @Autowired
     private SysUserInfoDao sysUserInfoDao;
     private SysUserInfoDao sysUserInfoDao;
     @Autowired
     @Autowired
-    private SysUserV2Service sysUserV2Service;
+    private SysUserService sysUserService;
     @Autowired
     @Autowired
     private SysMobileAreaDao sysMobileAreaDao;
     private SysMobileAreaDao sysMobileAreaDao;
 
 
@@ -126,7 +125,7 @@ public class SysAuthV2ServiceImpl implements SysAuthV2Service {
     private SysUserInfo loginSuccess(Long user_id, Integer is_remember) {
     private SysUserInfo loginSuccess(Long user_id, Integer is_remember) {
 
 
         // [查询] 登录的用户信息
         // [查询] 登录的用户信息
-        SysUserInfo sysUserInfo = sysUserV2Service.selectUserInfo(user_id);
+        SysUserInfo sysUserInfo = sysUserService.selectUserInfo(user_id);
 
 
         // 删除图形验证码缓存
         // 删除图形验证码缓存
         redisUtil.delete(httpRequestUtil.getKaptchaKey());
         redisUtil.delete(httpRequestUtil.getKaptchaKey());

+ 8 - 0
src/main/java/com/backendsys/modules/system/service/impl/SysUserIntegralLogServiceImpl.java

@@ -0,0 +1,8 @@
+package com.backendsys.modules.system.service.impl;
+
+import com.backendsys.modules.system.service.SysUserIntegralLogService;
+import org.springframework.stereotype.Service;
+
+@Service
+public class SysUserIntegralLogServiceImpl implements SysUserIntegralLogService {
+}

+ 77 - 0
src/main/java/com/backendsys/modules/system/service/impl/SysUserIntegralServiceImpl.java

@@ -0,0 +1,77 @@
+package com.backendsys.modules.system.service.impl;
+
+import com.backendsys.modules.system.dao.SysUserIntegralDao;
+import com.backendsys.modules.system.dao.SysUserIntegralLogDao;
+import com.backendsys.modules.system.entity.SysUserIntegral;
+import com.backendsys.modules.system.service.SysUserIntegralService;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.LinkedHashMap;
+import java.util.Map;
+
+@Service
+public class SysUserIntegralServiceImpl implements SysUserIntegralService {
+
+    @Autowired
+    private SysUserIntegralDao sysUserIntegralDao;
+    @Autowired
+    private SysUserIntegralLogDao sysUserIntegralLogDao;
+
+    /**
+     * 查询积分 (如果不存在记录,则创建)
+     */
+    @Override
+    public Integer selectIntegralByUserId(Long user_id) {
+        LambdaQueryWrapper<SysUserIntegral> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(SysUserIntegral::getUser_id, user_id);
+        SysUserIntegral detail = sysUserIntegralDao.selectOne(wrapper);
+        if (detail == null) {
+            // 如果不存在,则创建记录
+            SysUserIntegral entity = new SysUserIntegral();
+            entity.setUser_id(user_id);
+            sysUserIntegralDao.insert(entity);
+            return 0;
+        } else {
+            return detail.getIntegral();
+        }
+    }
+
+    /**
+     * 增加积分
+     */
+    @Override
+    public Map<String, Object> increase(Long user_id, Integer integral) {
+
+        // 查询当前积分 (如果不存在记录,则创建)
+        Integer currentIntegral = selectIntegralByUserId(user_id);
+
+        Integer operation = 1;  // 操作 (1:增加, -1:减少)
+
+
+        Map<String, Object> resp = new LinkedHashMap<>();
+        resp.put("user_id", user_id);
+        resp.put("integral", integral);
+        resp.put("operation", operation);
+        return resp;
+    }
+
+    /**
+     * 减少积分
+     */
+    @Override
+    public Map<String, Object> decrease(Long user_id, Integer integral) {
+
+        // 查询当前积分 (如果不存在记录,则创建)
+        Integer currentIntegral = selectIntegralByUserId(user_id);
+
+        Integer operation = -1;  // 操作 (1:增加, -1:减少)
+
+        Map<String, Object> resp = new LinkedHashMap<>();
+        resp.put("user_id", user_id);
+        resp.put("integral", integral);
+        resp.put("operation", operation);
+        return resp;
+    }
+}

+ 13 - 3
src/main/java/com/backendsys/modules/system/service/impl/SysUserV2ServiceImpl.java → src/main/java/com/backendsys/modules/system/service/impl/SysUserServiceImpl.java

@@ -1,15 +1,15 @@
 package com.backendsys.modules.system.service.impl;
 package com.backendsys.modules.system.service.impl;
 
 
 import cn.hutool.core.convert.Convert;
 import cn.hutool.core.convert.Convert;
-import cn.hutool.core.util.StrUtil;
 import com.backendsys.exception.CustException;
 import com.backendsys.exception.CustException;
 import com.backendsys.modules.common.config.redis.utils.RedisUtil;
 import com.backendsys.modules.common.config.redis.utils.RedisUtil;
 import com.backendsys.modules.common.config.security.utils.TokenUtil;
 import com.backendsys.modules.common.config.security.utils.TokenUtil;
 import com.backendsys.modules.common.utils.MybatisUtil;
 import com.backendsys.modules.common.utils.MybatisUtil;
 import com.backendsys.modules.system.dao.*;
 import com.backendsys.modules.system.dao.*;
 import com.backendsys.modules.system.entity.*;
 import com.backendsys.modules.system.entity.*;
+import com.backendsys.modules.system.service.SysUserIntegralService;
 import com.backendsys.modules.system.service.SysUserRoleMenuService;
 import com.backendsys.modules.system.service.SysUserRoleMenuService;
-import com.backendsys.modules.system.service.SysUserV2Service;
+import com.backendsys.modules.system.service.SysUserService;
 import com.backendsys.utils.MD5Util;
 import com.backendsys.utils.MD5Util;
 import com.backendsys.utils.response.PageEntity;
 import com.backendsys.utils.response.PageEntity;
 import com.backendsys.utils.response.PageInfoResult;
 import com.backendsys.utils.response.PageInfoResult;
@@ -35,7 +35,7 @@ import java.util.concurrent.TimeUnit;
 import java.util.stream.Collectors;
 import java.util.stream.Collectors;
 
 
 @Service
 @Service
-public class SysUserV2ServiceImpl extends ServiceImpl<SysUserDao, SysUser> implements SysUserV2Service {
+public class SysUserServiceImpl extends ServiceImpl<SysUserDao, SysUser> implements SysUserService {
 
 
     @Value("${REDIS_LOGIN_TOKEN_PREFIX}")
     @Value("${REDIS_LOGIN_TOKEN_PREFIX}")
     private String REDIS_LOGIN_TOKEN_PREFIX;
     private String REDIS_LOGIN_TOKEN_PREFIX;
@@ -60,6 +60,8 @@ public class SysUserV2ServiceImpl extends ServiceImpl<SysUserDao, SysUser> imple
     private SysUserRoleRelationDao sysUserRoleRelationDao;
     private SysUserRoleRelationDao sysUserRoleRelationDao;
     @Autowired
     @Autowired
     private SysUserRolePermissionRelationDao sysUserRolePermissionRelationDao;
     private SysUserRolePermissionRelationDao sysUserRolePermissionRelationDao;
+    @Autowired
+    private SysUserIntegralService sysUserIntegralService;
 
 
     /**
     /**
      * 获取系统用户列表
      * 获取系统用户列表
@@ -117,6 +119,10 @@ public class SysUserV2ServiceImpl extends ServiceImpl<SysUserDao, SysUser> imple
         List<Map<String, Object>> sysUserRoleMenuList = sysUserRoleMenuService.selectUserRoleMenuList(permission_ids, 1);
         List<Map<String, Object>> sysUserRoleMenuList = sysUserRoleMenuService.selectUserRoleMenuList(permission_ids, 1);
         sysUserInfo.setMenus(sysUserRoleMenuList);
         sysUserInfo.setMenus(sysUserRoleMenuList);
 
 
+        // 获得用户积分
+        Integer integral = sysUserIntegralService.selectIntegralByUserId(user_id);
+        sysUserInfo.setIntegral(integral);
+
         return sysUserInfo;
         return sysUserInfo;
     }
     }
 
 
@@ -133,6 +139,10 @@ public class SysUserV2ServiceImpl extends ServiceImpl<SysUserDao, SysUser> imple
         SysUserInfo sysUserInfo = sysUserInfoDao.selectOne(new QueryWrapper<SysUserInfo>().eq("user_id", user_id));
         SysUserInfo sysUserInfo = sysUserInfoDao.selectOne(new QueryWrapper<SysUserInfo>().eq("user_id", user_id));
         if (sysUserInfo == null) throw new CustException("用户不存在");
         if (sysUserInfo == null) throw new CustException("用户不存在");
 
 
+        // 获得用户积分
+        Integer integral = sysUserIntegralService.selectIntegralByUserId(user_id);
+        sysUserInfo.setIntegral(integral);
+
         // 获得 用户角色
         // 获得 用户角色
         List<Map<String, Object>> roles = sysUserRoleDao.selectRoleByUserId(user_id);
         List<Map<String, Object>> roles = sysUserRoleDao.selectRoleByUserId(user_id);
         sysUserInfo.setRoles(roles);
         sysUserInfo.setRoles(roles);

+ 3 - 3
src/main/java/com/backendsys/service/Ai/Aiivh/AiivhQuotaServiceImpl.java

@@ -18,7 +18,7 @@ import com.backendsys.mapper.System.SysResourcePointsMapper;
 import com.backendsys.mapper.System.SysUserPointsHistoryMapper;
 import com.backendsys.mapper.System.SysUserPointsHistoryMapper;
 import com.backendsys.modules.system.dao.SysUserInfoDao;
 import com.backendsys.modules.system.dao.SysUserInfoDao;
 import com.backendsys.modules.system.entity.SysUserInfo;
 import com.backendsys.modules.system.entity.SysUserInfo;
-import com.backendsys.modules.system.service.SysUserV2Service;
+import com.backendsys.modules.system.service.SysUserService;
 import com.backendsys.service.System.SysResourceService;
 import com.backendsys.service.System.SysResourceService;
 import com.backendsys.utils.CommonUtil;
 import com.backendsys.utils.CommonUtil;
 import com.backendsys.utils.DateUtil;
 import com.backendsys.utils.DateUtil;
@@ -49,7 +49,7 @@ public class AiivhQuotaServiceImpl implements AiivhQuotaService{
 
 
 
 
     @Autowired
     @Autowired
-    private SysUserV2Service sysUserV2Service;
+    private SysUserService sysUserService;
     @Autowired
     @Autowired
     private SysUserInfoDao sysUserInfoDao;
     private SysUserInfoDao sysUserInfoDao;
 
 
@@ -270,7 +270,7 @@ public class AiivhQuotaServiceImpl implements AiivhQuotaService{
 //            Map<String, Object> userInfo = sysUserService.queryUserById(user_id);
 //            Map<String, Object> userInfo = sysUserService.queryUserById(user_id);
 //            Float origin_point_balance = (Float) userInfo.get("point_balance");
 //            Float origin_point_balance = (Float) userInfo.get("point_balance");
 
 
-            SysUserInfo userInfo = sysUserV2Service.selectUserInfo(user_id);
+            SysUserInfo userInfo = sysUserService.selectUserInfo(user_id);
             Float origin_point_balance = Convert.toFloat(userInfo.getPoint_balance());
             Float origin_point_balance = Convert.toFloat(userInfo.getPoint_balance());
 
 
             Float new_point_balance = origin_point_balance - aiivhQuotaOrderDTO.getTotal_point();
             Float new_point_balance = origin_point_balance - aiivhQuotaOrderDTO.getTotal_point();