ソースを参照

feat:系统管理功能完成

wangzaijun 7 ヶ月 前
コミット
35ba75ede1
33 ファイル変更281 行追加128 行削除
  1. 1 1
      service-base/src/main/java/com/simuwang/base/common/support/command/BaseAddCmd.java
  2. 1 1
      service-base/src/main/java/com/simuwang/base/common/support/command/BaseEditCmd.java
  3. 2 3
      service-base/src/main/java/com/simuwang/base/common/support/command/BaseIdCmd.java
  4. 1 1
      service-base/src/main/java/com/simuwang/base/common/support/BaseEntity.java
  5. 41 0
      service-base/src/main/java/com/simuwang/base/common/support/dos/OnlyIdNameDO.java
  6. 17 0
      service-base/src/main/java/com/simuwang/base/common/support/query/BaseByIdQuery.java
  7. 19 0
      service-base/src/main/java/com/simuwang/base/common/support/service/GetByIdService.java
  8. 4 2
      service-base/src/main/java/com/simuwang/base/common/support/BaseService.java
  9. 3 2
      service-base/src/main/java/com/simuwang/base/common/support/BaseMultiJoinService.java
  10. 0 13
      service-base/src/main/java/com/simuwang/base/common/support/vo/BaseVO.java
  11. 28 0
      service-base/src/main/java/com/simuwang/base/common/support/vo/OnlyIdNameVO.java
  12. 9 0
      service-base/src/main/java/com/simuwang/base/mapper/system/SysRoleMapper.java
  13. 9 0
      service-base/src/main/java/com/simuwang/base/mapper/system/SysUserMapper.java
  14. 1 1
      service-base/src/main/java/com/simuwang/base/pojo/dos/sys/SysMenuDO.java
  15. 1 1
      service-base/src/main/java/com/simuwang/base/pojo/dos/sys/SysRoleDO.java
  16. 1 1
      service-base/src/main/java/com/simuwang/base/pojo/dos/sys/SysRoleUserDO.java
  17. 1 1
      service-base/src/main/java/com/simuwang/base/pojo/dos/sys/SysUserDO.java
  18. 0 1
      service-base/src/main/java/com/simuwang/base/pojo/dto/DeleteByIdCmd.java
  19. 21 0
      service-base/src/main/java/com/simuwang/base/pojo/dto/GetByIdQuery.java
  20. 1 1
      service-base/src/main/java/com/simuwang/base/pojo/vo/sys/SysUserVO.java
  21. 11 0
      service-base/src/main/resources/mapper/system/SysRoleMapper.xml
  22. 11 0
      service-base/src/main/resources/mapper/system/SysUserMapper.xml
  23. 7 7
      service-manage/src/main/java/com/simuwang/manage/api/LoginController.java
  24. 0 75
      service-manage/src/main/java/com/simuwang/manage/api/system/SysLoginController.java
  25. 14 0
      service-manage/src/main/java/com/simuwang/manage/api/system/SysRoleController.java
  26. 14 0
      service-manage/src/main/java/com/simuwang/manage/api/system/SysUserController.java
  27. 4 4
      service-manage/src/main/java/com/simuwang/manage/service/SystemService.java
  28. 2 2
      service-manage/src/main/java/com/simuwang/manage/service/impl/system/SysMenuServiceImpl.java
  29. 14 2
      service-manage/src/main/java/com/simuwang/manage/service/impl/system/SysRoleServiceImpl.java
  30. 11 2
      service-manage/src/main/java/com/simuwang/manage/service/impl/system/SysUserServiceImpl.java
  31. 2 2
      service-manage/src/main/java/com/simuwang/manage/service/system/SysMenuService.java
  32. 14 2
      service-manage/src/main/java/com/simuwang/manage/service/system/SysRoleService.java
  33. 16 3
      service-manage/src/main/java/com/simuwang/manage/service/system/SysUserService.java

+ 1 - 1
service-base/src/main/java/com/simuwang/base/common/support/command/BaseAddCmd.java

@@ -1,6 +1,6 @@
 package com.simuwang.base.common.support.command;
 
-import com.simuwang.base.common.support.BaseEntity;
+import com.simuwang.base.common.support.dos.BaseEntity;
 
 /**
  * @author wangzaijun

+ 1 - 1
service-base/src/main/java/com/simuwang/base/common/support/command/BaseEditCmd.java

@@ -1,6 +1,6 @@
 package com.simuwang.base.common.support.command;
 
-import com.simuwang.base.common.support.BaseEntity;
+import com.simuwang.base.common.support.dos.BaseEntity;
 
 /**
  * @author wangzaijun

+ 2 - 3
service-base/src/main/java/com/simuwang/base/common/support/command/BaseIdCmd.java

@@ -6,16 +6,15 @@ import lombok.Setter;
 /**
  * @author wangzaijun
  * @date 2024/9/13 15:06
- * @description 只包括id的抽象对象
+ * @description 只包括id的抽象保存类对象
  */
 @Setter
 @Getter
 public abstract class BaseIdCmd extends BaseCmd {
     /**
      * 提供给子类实现的获取唯一标识的方法
+     *
      * @return /
      */
     public abstract Integer getId();
-
-    public abstract void setId(Integer id);
 }

+ 1 - 1
service-base/src/main/java/com/simuwang/base/common/support/BaseEntity.java

@@ -1,4 +1,4 @@
-package com.simuwang.base.common.support;
+package com.simuwang.base.common.support.dos;
 
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableLogic;

+ 41 - 0
service-base/src/main/java/com/simuwang/base/common/support/dos/OnlyIdNameDO.java

@@ -0,0 +1,41 @@
+package com.simuwang.base.common.support.dos;
+
+import com.simuwang.base.common.conts.Constants;
+import com.simuwang.base.common.support.vo.OnlyIdNameVO;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * @author wangzaijun
+ * @date 2024/9/14 9:32
+ * @description 仅包含id和名称的对象
+ */
+@Setter
+@Getter
+public class OnlyIdNameDO implements Serializable {
+    @Serial
+    private static final long serialVersionUID = Constants.DEFAULT_SERIAL_ID;
+    /**
+     * 唯一标识
+     */
+    private Integer id;
+    /**
+     * 对应的名称
+     */
+    private String name;
+
+    /**
+     * 提供把数据库对象转vo对象的方法
+     *
+     * @return /
+     */
+    public OnlyIdNameVO toVo() {
+        OnlyIdNameVO vo = new OnlyIdNameVO();
+        vo.setId(id);
+        vo.setName(name);
+        return vo;
+    }
+}

+ 17 - 0
service-base/src/main/java/com/simuwang/base/common/support/query/BaseByIdQuery.java

@@ -0,0 +1,17 @@
+package com.simuwang.base.common.support.query;
+
+import com.simuwang.base.common.support.DTO;
+
+/**
+ * @author wangzaijun
+ * @date 2024/9/14 8:57
+ * @description 抽象的根据id查询对象
+ */
+public abstract class BaseByIdQuery extends DTO {
+    /**
+     * 提供给子类实现的获取唯一标识的方法
+     *
+     * @return /
+     */
+    public abstract Integer getId();
+}

+ 19 - 0
service-base/src/main/java/com/simuwang/base/common/support/service/GetByIdService.java

@@ -0,0 +1,19 @@
+package com.simuwang.base.common.support.service;
+
+import com.simuwang.base.common.support.query.BaseByIdQuery;
+import com.simuwang.base.common.support.vo.BaseVO;
+
+/**
+ * @author wangzaijun
+ * @date 2024/9/14 9:07
+ * @description 根据id获取数据的服务
+ */
+public interface GetByIdService<Q extends BaseByIdQuery, VO extends BaseVO> {
+    /**
+     * 根据id获取一条记录
+     *
+     * @param query id查询条件
+     * @return /
+     */
+    VO getById(Q query);
+}

+ 4 - 2
service-base/src/main/java/com/simuwang/base/common/support/BaseService.java

@@ -1,10 +1,12 @@
-package com.simuwang.base.common.support;
+package com.simuwang.base.common.support.service;
 
 import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.simuwang.base.common.exception.APIException;
+import com.simuwang.base.common.support.dos.BaseEntity;
+import com.simuwang.base.common.support.MybatisPage;
 import com.simuwang.base.common.support.command.BaseAddCmd;
 import com.simuwang.base.common.support.command.BaseEditCmd;
 import com.simuwang.base.common.support.command.BaseIdCmd;
@@ -17,7 +19,7 @@ import com.simuwang.base.common.support.vo.BaseVO;
  * @date 2024/9/13 14:10
  * @description 数据库操作的基础service
  */
-public interface BaseService<VO extends BaseVO, T extends BaseEntity<VO>> {
+public interface IService<VO extends BaseVO, T extends BaseEntity<VO>> {
     String[] DEFAULT_COLUMNS = {"creatorid", "createtime"};
 
     String[] DEFAULT_SELECT_COLUMNS = extColumns(DEFAULT_COLUMNS, "isvalid", "remark", "updaterid", "updatetime");

+ 3 - 2
service-base/src/main/java/com/simuwang/base/common/support/BaseMultiJoinService.java

@@ -1,5 +1,6 @@
-package com.simuwang.base.common.support;
+package com.simuwang.base.common.support.service;
 
+import com.simuwang.base.common.support.MybatisPage;
 import com.simuwang.base.common.support.query.PageQuery;
 import com.simuwang.base.common.support.vo.BaseVO;
 
@@ -8,7 +9,7 @@ import com.simuwang.base.common.support.vo.BaseVO;
  * @date 2024/9/13 16:02
  * @description 多表关联时的接口对象
  */
-public interface BaseMultiJoinService<VO extends BaseVO> {
+public interface MultiJoinIService<VO extends BaseVO> {
     /**
      * 多表关联的分页方法
      *

+ 0 - 13
service-base/src/main/java/com/simuwang/base/common/support/vo/BaseVO.java

@@ -2,8 +2,6 @@ package com.simuwang.base.common.support.vo;
 
 import com.simuwang.base.common.support.DTO;
 
-import java.util.Date;
-
 /**
  * @author wangzaijun
  * @date 2024/9/13 13:55
@@ -16,15 +14,4 @@ public abstract class BaseVO extends DTO {
      * @return /
      */
     public abstract Integer getId();
-
-    /**
-     * 创建人id
-     */
-    public abstract Integer getCreatorId();
-
-    /**
-     * 创建时间
-     */
-    public abstract Date getCreateTime();
-
 }

+ 28 - 0
service-base/src/main/java/com/simuwang/base/common/support/vo/OnlyIdNameVO.java

@@ -0,0 +1,28 @@
+package com.simuwang.base.common.support.vo;
+
+import com.simuwang.base.common.conts.Constants;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * @author wangzaijun
+ * @date 2024/9/14 9:36
+ * @description 仅包含id和名称的对象
+ */
+@Setter
+@Getter
+public class OnlyIdNameVO implements Serializable {
+    @Serial
+    private static final long serialVersionUID = Constants.DEFAULT_SERIAL_ID;
+    /**
+     * 唯一标识
+     */
+    private Integer id;
+    /**
+     * 对应的名称
+     */
+    private String name;
+}

+ 9 - 0
service-base/src/main/java/com/simuwang/base/mapper/system/SysRoleMapper.java

@@ -1,6 +1,7 @@
 package com.simuwang.base.mapper.system;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.simuwang.base.common.support.dos.OnlyIdNameDO;
 import com.simuwang.base.pojo.dos.sys.SysRoleDO;
 import org.springframework.stereotype.Repository;
 
@@ -9,6 +10,14 @@ import java.util.List;
 @Repository
 public interface SysRoleMapper extends BaseMapper<SysRoleDO> {
     /**
+     * 根据角色id获取该角色已分配的所有菜单
+     *
+     * @param roleId 角色id
+     * @return /
+     */
+    List<OnlyIdNameDO> selectMenuByRoleId(Integer roleId);
+
+    /**
      * 删除某个角色的所有权限关系(用物理删)
      *
      * @param roleId 角色id

+ 9 - 0
service-base/src/main/java/com/simuwang/base/mapper/system/SysUserMapper.java

@@ -1,6 +1,7 @@
 package com.simuwang.base.mapper.system;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.simuwang.base.common.support.dos.OnlyIdNameDO;
 import com.simuwang.base.pojo.dos.sys.SysMenuDO;
 import com.simuwang.base.pojo.dos.sys.SysRoleDO;
 import com.simuwang.base.pojo.dos.sys.SysRoleUserDO;
@@ -18,6 +19,14 @@ public interface SysUserMapper extends BaseMapper<SysUserDO> {
      * @param userId 用户id
      * @return /
      */
+    List<OnlyIdNameDO> listBindRoles(Integer userId);
+
+    /**
+     * 根据用户id从用户角色关系表查询该用户的所有角色信息
+     *
+     * @param userId 用户id
+     * @return /
+     */
     List<SysRoleDO> selectRoleByUserId(Integer userId);
 
     /**

+ 1 - 1
service-base/src/main/java/com/simuwang/base/pojo/dos/sys/SysMenuDO.java

@@ -3,7 +3,7 @@ package com.simuwang.base.pojo.dos.sys;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
-import com.simuwang.base.common.support.BaseEntity;
+import com.simuwang.base.common.support.dos.BaseEntity;
 import com.simuwang.base.pojo.vo.sys.SysMenuVO;
 import lombok.Getter;
 import lombok.Setter;

+ 1 - 1
service-base/src/main/java/com/simuwang/base/pojo/dos/sys/SysRoleDO.java

@@ -3,7 +3,7 @@ package com.simuwang.base.pojo.dos.sys;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
-import com.simuwang.base.common.support.BaseEntity;
+import com.simuwang.base.common.support.dos.BaseEntity;
 import com.simuwang.base.pojo.vo.sys.SysRoleVO;
 import lombok.Getter;
 import lombok.Setter;

+ 1 - 1
service-base/src/main/java/com/simuwang/base/pojo/dos/sys/SysRoleUserDO.java

@@ -1,6 +1,6 @@
 package com.simuwang.base.pojo.dos.sys;
 
-import com.simuwang.base.common.support.BaseEntity;
+import com.simuwang.base.common.support.dos.BaseEntity;
 import com.simuwang.base.pojo.vo.sys.SysRoleUserVO;
 import lombok.Getter;
 import lombok.Setter;

+ 1 - 1
service-base/src/main/java/com/simuwang/base/pojo/dos/sys/SysUserDO.java

@@ -3,7 +3,7 @@ package com.simuwang.base.pojo.dos.sys;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
-import com.simuwang.base.common.support.BaseEntity;
+import com.simuwang.base.common.support.dos.BaseEntity;
 import com.simuwang.base.pojo.vo.sys.SysUserVO;
 import lombok.Getter;
 import lombok.Setter;

+ 0 - 1
service-base/src/main/java/com/simuwang/base/pojo/dto/DeleteByIdCmd.java

@@ -17,7 +17,6 @@ public class DeleteByIdCmd extends BaseIdCmd {
         return id;
     }
 
-    @Override
     public void setId(Integer id) {
         this.id = id;
     }

+ 21 - 0
service-base/src/main/java/com/simuwang/base/pojo/dto/GetByIdQuery.java

@@ -0,0 +1,21 @@
+package com.simuwang.base.pojo.dto;
+
+import com.simuwang.base.common.support.query.BaseByIdQuery;
+import jakarta.validation.constraints.NotNull;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @author wangzaijun
+ * @date 2024/9/14 9:00
+ * @description 根据唯一标识获取数据的查询对象
+ */
+@Setter
+@Getter
+public class GetByIdQuery extends BaseByIdQuery {
+    /**
+     * 唯一标识符id
+     */
+    @NotNull(message = "唯一标识不能为空")
+    private Integer id;
+}

+ 1 - 1
service-base/src/main/java/com/simuwang/base/pojo/vo/sys/SysUserVO.java

@@ -69,6 +69,6 @@ public class SysUserVO extends BaseVO {
 
     @Override
     public Integer getId() {
-        return this.getUserId();
+        return this.userId;
     }
 }

+ 11 - 0
service-base/src/main/resources/mapper/system/SysRoleMapper.xml

@@ -1,6 +1,17 @@
 <?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.simuwang.base.mapper.system.SysRoleMapper">
+    <select id="selectMenuByRoleId" resultType="com.simuwang.base.common.support.dos.OnlyIdNameDO">
+        select sm.menu_id    as id,
+               sm.menu_name  as name
+        from sys_menu sm
+                 join sys_role_menu srm on sm.menu_id = srm.menu_id
+                 join sys_role sr on sr.role_id = srm.role_id and sr.isvalid = 1
+        where sr.role_id = #{roleId}
+          and sm.isvalid = 1
+        order by sm.menu_id
+    </select>
+
     <delete id="delRoleMenuByUserId" parameterType="int">
         delete from sys_role_menu where role_id =#{roleId}
     </delete>

+ 11 - 0
service-base/src/main/resources/mapper/system/SysUserMapper.xml

@@ -1,6 +1,17 @@
 <?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.simuwang.base.mapper.system.SysUserMapper">
+    <select id="listBindRoles" resultType="com.simuwang.base.common.support.dos.OnlyIdNameDO">
+        select t.role_id    as id,
+               t.role_name  as name
+        from sys_role t
+                 join sys_user_role t1 on t.role_id = t1.role_id
+                 join sys_user t2 on t1.user_id = t2.user_id and t2.isvalid = 1
+        where t2.user_id = #{userId}
+          and t.isvalid = 1
+        order by t.role_id
+    </select>
+
     <select id="selectRoleByUserId" resultType="com.simuwang.base.pojo.dos.sys.SysRoleDO">
         select t.role_id    as roleId,
                t.role_name  as roleName,

+ 7 - 7
service-manage/src/main/java/com/simuwang/manage/api/LoginController.java

@@ -4,7 +4,7 @@ import cn.hutool.core.map.MapUtil;
 import com.simuwang.base.config.DaqProperties;
 import com.simuwang.manage.dto.LoginUser;
 import com.simuwang.manage.dto.UserInfoVO;
-import com.simuwang.manage.service.SystemService;
+import com.simuwang.manage.service.LoginService;
 import com.simuwang.shiro.core.ShiroToken;
 import com.simuwang.shiro.core.ShiroUser;
 import com.simuwang.shiro.core.jwt.JwtContext;
@@ -26,12 +26,12 @@ import java.util.Map;
 public class LoginController {
     private final JwtContext jwtContext;
     private final DaqProperties properties;
-    private final SystemService systemService;
+    private final LoginService loginService;
 
-    public LoginController(JwtContext jwtContext, DaqProperties properties, SystemService systemService) {
+    public LoginController(JwtContext jwtContext, DaqProperties properties, LoginService loginService) {
         this.jwtContext = jwtContext;
         this.properties = properties;
-        this.systemService = systemService;
+        this.loginService = loginService;
     }
 
     /**
@@ -69,12 +69,12 @@ public class LoginController {
      */
     @RequiresAuthentication
     @PostMapping("/logout")
-    public String logout() {
+    public ResultVo<Boolean> logout() {
         Subject subject = SecurityUtils.getSubject();
         ShiroUser shiroUser = (ShiroUser) SecurityUtils.getSubject().getPrincipal();
         this.jwtContext.cleanUserCache(shiroUser.getUsername());
         subject.logout();
-        return "退出成功";
+        return ResultVo.ok(ResultCode.SUCCESS.getCode(), "退出成功", true);
     }
 
     /**
@@ -85,6 +85,6 @@ public class LoginController {
     @RequiresAuthentication
     @GetMapping("/user-info")
     public UserInfoVO getUserInfo() {
-        return this.systemService.getUserInfo();
+        return this.loginService.getUserInfo();
     }
 }

+ 0 - 75
service-manage/src/main/java/com/simuwang/manage/api/system/SysLoginController.java

@@ -1,75 +0,0 @@
-//package com.simuwang.manage.api.system;
-//
-//
-//import com.simuwang.base.common.text.Convert;
-//import com.simuwang.base.common.util.ServletUtils;
-//import com.simuwang.manage.api.base.BaseController;
-//import com.simuwang.manage.service.system.SysConfigService;
-//import jakarta.servlet.http.HttpServletRequest;
-//import jakarta.servlet.http.HttpServletResponse;
-//import org.springframework.beans.factory.annotation.Autowired;
-//import org.springframework.beans.factory.annotation.Value;
-//import org.springframework.stereotype.Controller;
-//import org.springframework.ui.ModelMap;
-//import org.springframework.web.bind.annotation.GetMapping;
-//
-///**
-// * 登录验证
-// *
-// * @author ruoyi
-// */
-//@Controller
-//public class SysLoginController extends BaseController
-//{
-//    /**
-//     * 是否开启记住我功能
-//     */
-//    @Value("${shiro.rememberMe.enabled: false}")
-//    private boolean rememberMe;
-//
-//    @Autowired
-//    private SysConfigService configService;
-//
-//    @GetMapping("/login")
-//    public String login(HttpServletRequest request, HttpServletResponse response, ModelMap mmap)
-//    {
-//        // 如果是Ajax请求,返回Json字符串。
-//        if (ServletUtils.isAjaxRequest(request))
-//        {
-//            return ServletUtils.renderString(response, "{\"code\":\"1\",\"msg\":\"未登录或登录超时。请重新登录\"}");
-//        }
-//        // 是否开启记住我
-//        mmap.put("isRemembered", rememberMe);
-//        // 是否开启用户注册
-//        mmap.put("isAllowRegister", Convert.toBool(configService.getKey("sys.account.registerUser"), false));
-//        return "login";
-//    }
-//
-////    @PostMapping("/login")
-////    @ResponseBody
-////    public AjaxResult ajaxLogin(String username, String password, Boolean rememberMe)
-////    {
-////        UsernamePasswordToken token = new UsernamePasswordToken(username, password, rememberMe);
-////        Subject subject = SecurityUtils.getSubject();
-////        try
-////        {
-////            subject.login(token);
-////            return success();
-////        }
-////        catch (AuthenticationException e)
-////        {
-////            String msg = "用户或密码错误";
-////            if (StringUtils.isNotEmpty(e.getMessage()))
-////            {
-////                msg = e.getMessage();
-////            }
-////            return error(msg);
-////        }
-////    }
-//
-//    @GetMapping("/unauth")
-//    public String unauth()
-//    {
-//        return "error/unauth";
-//    }
-//}

+ 14 - 0
service-manage/src/main/java/com/simuwang/manage/api/system/SysRoleController.java

@@ -1,7 +1,9 @@
 package com.simuwang.manage.api.system;
 
 import com.simuwang.base.common.support.MybatisPage;
+import com.simuwang.base.common.support.vo.OnlyIdNameVO;
 import com.simuwang.base.pojo.dto.DeleteByIdCmd;
+import com.simuwang.base.pojo.dto.GetByIdQuery;
 import com.simuwang.base.pojo.dto.UpdateStatusCmd;
 import com.simuwang.base.pojo.dto.sys.RoleAddCmd;
 import com.simuwang.base.pojo.dto.sys.RoleEditCmd;
@@ -12,6 +14,8 @@ import com.simuwang.manage.service.system.SysRoleService;
 import jakarta.validation.Valid;
 import org.springframework.web.bind.annotation.*;
 
+import java.util.List;
+
 /**
  * 角色管理相关接口
  */
@@ -89,4 +93,14 @@ public class SysRoleController {
         this.service.assignPerms(command);
         return true;
     }
+
+    /**
+     * 获取角色分配的权限
+     *
+     * @param query 角色id对象
+     */
+    @GetMapping("list-assign-perms")
+    public List<OnlyIdNameVO> listAssignPerms(@Valid @RequestBody GetByIdQuery query) {
+        return this.service.getRolePerms(query);
+    }
 }

+ 14 - 0
service-manage/src/main/java/com/simuwang/manage/api/system/SysUserController.java

@@ -1,7 +1,9 @@
 package com.simuwang.manage.api.system;
 
 import com.simuwang.base.common.support.MybatisPage;
+import com.simuwang.base.common.support.vo.OnlyIdNameVO;
 import com.simuwang.base.pojo.dto.DeleteByIdCmd;
+import com.simuwang.base.pojo.dto.GetByIdQuery;
 import com.simuwang.base.pojo.dto.UpdateStatusCmd;
 import com.simuwang.base.pojo.dto.sys.*;
 import com.simuwang.base.pojo.vo.sys.SysRoleUserVO;
@@ -10,6 +12,8 @@ import com.simuwang.manage.service.system.SysUserService;
 import jakarta.validation.Valid;
 import org.springframework.web.bind.annotation.*;
 
+import java.util.List;
+
 /**
  * 用户管理相关接口
  */
@@ -98,4 +102,14 @@ public class SysUserController {
         this.service.bindRoles(command);
         return true;
     }
+
+    /**
+     * 获取用户绑定的角色
+     *
+     * @param query 用户id对象
+     */
+    @GetMapping("list-bind-roles")
+    public List<OnlyIdNameVO> listBindRoles(@Valid @RequestBody GetByIdQuery query) {
+        return this.service.getUserRoles(query);
+    }
 }

+ 4 - 4
service-manage/src/main/java/com/simuwang/manage/service/SystemService.java

@@ -1,10 +1,10 @@
 package com.simuwang.manage.service;
 
+import com.simuwang.base.common.util.TreeUtil;
+import com.simuwang.base.components.UserAuthService;
 import com.simuwang.base.pojo.dos.sys.SysMenuDO;
 import com.simuwang.base.pojo.dos.sys.SysRoleDO;
 import com.simuwang.base.pojo.dos.sys.SysUserDO;
-import com.simuwang.base.components.UserAuthService;
-import com.simuwang.base.common.util.TreeUtil;
 import com.simuwang.manage.dto.UserInfoVO;
 import com.simuwang.manage.dto.UserMenuTreeDTO;
 import com.simuwang.manage.dto.UserRoleDTO;
@@ -21,10 +21,10 @@ import java.util.stream.Collectors;
  * @description 系统管理服务
  */
 @Service
-public class SystemService {
+public class LoginService {
     private final UserAuthService userAuthService;
 
-    public SystemService(UserAuthService userAuthService) {
+    public LoginService(UserAuthService userAuthService) {
         this.userAuthService = userAuthService;
     }
 

+ 2 - 2
service-manage/src/main/java/com/simuwang/manage/service/impl/system/SysMenuServiceImpl.java

@@ -4,7 +4,7 @@ import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.simuwang.base.common.support.BaseService;
+import com.simuwang.base.common.support.service.IService;
 import com.simuwang.base.common.support.MybatisPage;
 import com.simuwang.base.common.support.command.BaseAddCmd;
 import com.simuwang.base.common.support.command.BaseEditCmd;
@@ -30,7 +30,7 @@ public class SysMenuServiceImpl implements SysMenuService {
 
     @Override
     public String[] selectColumns() {
-        return BaseService.extColumns(DEFAULT_SELECT_COLUMNS,
+        return IService.extColumns(DEFAULT_SELECT_COLUMNS,
                 "menu_id", "menu_name", "parent_id", "order_num", "path", "component",
                 "query", "is_frame", "is_cache", "menu_type", "visible", "status", "perms", "icon");
     }

+ 14 - 2
service-manage/src/main/java/com/simuwang/manage/service/impl/system/SysRoleServiceImpl.java

@@ -4,15 +4,18 @@ import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.simuwang.base.common.support.BaseService;
 import com.simuwang.base.common.support.MybatisPage;
 import com.simuwang.base.common.support.command.BaseAddCmd;
 import com.simuwang.base.common.support.command.BaseEditCmd;
 import com.simuwang.base.common.support.command.BaseIdCmd;
 import com.simuwang.base.common.support.command.BaseIdStatusCmd;
+import com.simuwang.base.common.support.dos.OnlyIdNameDO;
 import com.simuwang.base.common.support.query.PageQuery;
+import com.simuwang.base.common.support.service.IService;
+import com.simuwang.base.common.support.vo.OnlyIdNameVO;
 import com.simuwang.base.mapper.system.SysRoleMapper;
 import com.simuwang.base.pojo.dos.sys.SysRoleDO;
+import com.simuwang.base.pojo.dto.GetByIdQuery;
 import com.simuwang.base.pojo.dto.sys.RoleAddCmd;
 import com.simuwang.base.pojo.dto.sys.RoleEditCmd;
 import com.simuwang.base.pojo.dto.sys.RoleMenuAssignCmd;
@@ -23,6 +26,9 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+import java.util.stream.Collectors;
+
 @Service
 public class SysRoleServiceImpl implements SysRoleService {
     private final Logger logger = LoggerFactory.getLogger(this.getClass());
@@ -34,7 +40,7 @@ public class SysRoleServiceImpl implements SysRoleService {
 
     @Override
     public String[] selectColumns() {
-        return BaseService.extColumns(DEFAULT_SELECT_COLUMNS, "role_id", "role_name", "role_sort", "role_key");
+        return IService.extColumns(DEFAULT_SELECT_COLUMNS, "role_id", "role_name", "role_sort", "role_key");
     }
 
     @Override
@@ -92,4 +98,10 @@ public class SysRoleServiceImpl implements SysRoleService {
             this.logger.info("给{}角色分配权限时删除了{}条记录,新增{}条记录", roleId, i, j);
         }
     }
+
+    @Override
+    public List<OnlyIdNameVO> getRolePerms(GetByIdQuery query) {
+        List<OnlyIdNameDO> dataList = this.mapper.selectMenuByRoleId(query.getId());
+        return dataList.stream().map(OnlyIdNameDO::toVo).collect(Collectors.toList());
+    }
 }

+ 11 - 2
service-manage/src/main/java/com/simuwang/manage/service/impl/system/SysUserServiceImpl.java

@@ -6,17 +6,20 @@ import cn.hutool.crypto.asymmetric.RSA;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.simuwang.base.common.support.BaseService;
 import com.simuwang.base.common.support.MybatisPage;
 import com.simuwang.base.common.support.command.BaseAddCmd;
 import com.simuwang.base.common.support.command.BaseEditCmd;
 import com.simuwang.base.common.support.command.BaseIdCmd;
 import com.simuwang.base.common.support.command.BaseIdStatusCmd;
+import com.simuwang.base.common.support.dos.OnlyIdNameDO;
 import com.simuwang.base.common.support.query.PageQuery;
+import com.simuwang.base.common.support.service.IService;
+import com.simuwang.base.common.support.vo.OnlyIdNameVO;
 import com.simuwang.base.config.DaqProperties;
 import com.simuwang.base.mapper.system.SysUserMapper;
 import com.simuwang.base.pojo.dos.sys.SysRoleUserDO;
 import com.simuwang.base.pojo.dos.sys.SysUserDO;
+import com.simuwang.base.pojo.dto.GetByIdQuery;
 import com.simuwang.base.pojo.dto.sys.*;
 import com.simuwang.base.pojo.vo.sys.SysRoleUserVO;
 import com.simuwang.base.pojo.vo.sys.SysUserVO;
@@ -43,7 +46,7 @@ public class SysUserServiceImpl implements SysUserService {
 
     @Override
     public String[] selectColumns() {
-        return BaseService.extColumns(DEFAULT_SELECT_COLUMNS,
+        return IService.extColumns(DEFAULT_SELECT_COLUMNS,
                 "user_id", "user_name", "email", "phonenumber", "sex", "avatar", "status");
     }
 
@@ -129,4 +132,10 @@ public class SysUserServiceImpl implements SysUserService {
             this.logger.info("绑定用户{} 角色时删除了{}条记录,新增{}条记录", userId, i, j);
         }
     }
+
+    @Override
+    public List<OnlyIdNameVO> getUserRoles(GetByIdQuery query) {
+        List<OnlyIdNameDO> dataList = this.mapper.listBindRoles(query.getId());
+        return dataList.stream().map(OnlyIdNameDO::toVo).collect(Collectors.toList());
+    }
 }

+ 2 - 2
service-manage/src/main/java/com/simuwang/manage/service/system/SysMenuService.java

@@ -1,6 +1,6 @@
 package com.simuwang.manage.service.system;
 
-import com.simuwang.base.common.support.BaseService;
+import com.simuwang.base.common.support.service.IService;
 import com.simuwang.base.pojo.dos.sys.SysMenuDO;
 import com.simuwang.base.pojo.vo.sys.SysMenuVO;
 
@@ -9,6 +9,6 @@ import com.simuwang.base.pojo.vo.sys.SysMenuVO;
  * @date 2024/9/13 19:43
  * @description 系统菜单服务
  */
-public interface SysMenuService extends BaseService<SysMenuVO, SysMenuDO> {
+public interface SysMenuService extends IService<SysMenuVO, SysMenuDO> {
 
 }

+ 14 - 2
service-manage/src/main/java/com/simuwang/manage/service/system/SysRoleService.java

@@ -1,20 +1,32 @@
 package com.simuwang.manage.service.system;
 
-import com.simuwang.base.common.support.BaseService;
+import com.simuwang.base.common.support.service.IService;
+import com.simuwang.base.common.support.vo.OnlyIdNameVO;
 import com.simuwang.base.pojo.dos.sys.SysRoleDO;
+import com.simuwang.base.pojo.dto.GetByIdQuery;
 import com.simuwang.base.pojo.dto.sys.RoleMenuAssignCmd;
 import com.simuwang.base.pojo.vo.sys.SysRoleVO;
 
+import java.util.List;
+
 /**
  * @author wangzaijun
  * @date 2024/9/13 19:43
  * @description 系统角色服务
  */
-public interface SysRoleService extends BaseService<SysRoleVO, SysRoleDO> {
+public interface SysRoleService extends IService<SysRoleVO, SysRoleDO> {
     /**
      * 给角色分配权限
      *
      * @param command 参数
      */
     void assignPerms(RoleMenuAssignCmd command);
+
+    /**
+     * 获取某个角色已分配的菜单列表
+     *
+     * @param query id查询条件
+     * @return /
+     */
+    List<OnlyIdNameVO> getRolePerms(GetByIdQuery query);
 }

+ 16 - 3
service-manage/src/main/java/com/simuwang/manage/service/system/SysUserService.java

@@ -1,21 +1,34 @@
 package com.simuwang.manage.service.system;
 
-import com.simuwang.base.common.support.BaseMultiJoinService;
-import com.simuwang.base.common.support.BaseService;
+import com.simuwang.base.common.support.service.IService;
+import com.simuwang.base.common.support.service.MultiJoinIService;
+import com.simuwang.base.common.support.vo.OnlyIdNameVO;
 import com.simuwang.base.pojo.dos.sys.SysUserDO;
+import com.simuwang.base.pojo.dto.GetByIdQuery;
 import com.simuwang.base.pojo.dto.sys.UserRoleBindCmd;
 import com.simuwang.base.pojo.vo.sys.SysRoleUserVO;
 import com.simuwang.base.pojo.vo.sys.SysUserVO;
 
+import java.util.List;
+
 /**
  * @author wangzaijun
  * @date 2024/9/13 14:14
  * @description 用户服务
  */
-public interface SysUserService extends BaseService<SysUserVO, SysUserDO>, BaseMultiJoinService<SysRoleUserVO> {
+public interface SysUserService extends IService<SysUserVO, SysUserDO>, MultiJoinIService<SysRoleUserVO> {
     /**
      * 用户角色绑定接口
+     *
      * @param command 请求参数
      */
     void bindRoles(UserRoleBindCmd command);
+
+    /**
+     * 获取某个用户的已绑定角色
+     *
+     * @param query 用户id
+     * @return /
+     */
+    List<OnlyIdNameVO> getUserRoles(GetByIdQuery query);
 }