Browse Source

角色功能完善

chao 3 years ago
parent
commit
33da3a800f

+ 3 - 0
db.sql

@@ -63,3 +63,6 @@ CREATE TABLE `sys_role_menu` (
   `menu_id` VARCHAR(255) DEFAULT NULL COMMENT '菜单ID',
   PRIMARY KEY (`id`)
 ) ENGINE=INNODB DEFAULT CHARSET=utf8 COMMENT='系统用户角色关联表';
+
+INSERT INTO `sys_user`(`username`,`password`,`create_time`) VALUES ('sysadmin','$2a$10$QmDp1600wURZ.Dn2utkfXO4UTM3gdV42qVjMa81o3GMyW.IdfeEWm',NOW());
+

+ 1 - 1
src/main/java/com/caimei365/manager/controller/SysUserApi.java

@@ -120,7 +120,7 @@ public class SysUserApi {
         if (null == id || id <= 0) {
             return ResponseJson.error("角色Id不能为空!", null);
         }
-        return sysUserService.getRole(id);
+        return sysUserService.getRoleInfo(id);
     }
 
     /**

+ 4 - 0
src/main/java/com/caimei365/manager/dao/SysUserDao.java

@@ -91,6 +91,10 @@ public interface SysUserDao {
      * 根据ID删除角色
      */
     void deleteRole(Integer id);
+    /**
+     * 根据角色ID获取菜单Ids
+     */
+    List<String> getMenuIdsByRoleId(Integer roleId);
     /**
      * 保存角色菜单关系
      */

+ 1 - 1
src/main/java/com/caimei365/manager/service/SysUserService.java

@@ -57,7 +57,7 @@ public interface SysUserService {
     /**
      * 根据ID获取角色
      */
-    ResponseJson<SysRole> getRole(Integer id);
+    ResponseJson<SysRole> getRoleInfo(Integer id);
     /**
      * 根据ID更新角色
      */

+ 19 - 2
src/main/java/com/caimei365/manager/service/impl/SysUserServiceImpl.java

@@ -191,11 +191,28 @@ public class SysUserServiceImpl implements SysUserService {
      * 根据ID获取角色
      */
     @Override
-    public ResponseJson<SysRole> getRole(Integer id) {
-        SysRole sysRole = sysUserDao.getRole(id);
+    public ResponseJson<SysRole> getRoleInfo(Integer id) {
+        SysRole sysRole = getRole(id);
+        // 根据角色ID获取菜单Ids
+        List<String> menuIdList = sysUserDao.getMenuIdsByRoleId(id);
+        StringBuilder menuIds = new StringBuilder();
+        for (int i = 0; i < menuIdList.size(); i++) {
+            if (StringUtils.hasLength(menuIdList.get(i))){
+                if (i == 0) {
+                    menuIds.append(menuIdList.get(i));
+                } else {
+                    menuIds.append(",").append(menuIdList.get(i));
+                }
+            }
+        }
+        sysRole.setMenuIds(menuIds.toString());
         return ResponseJson.success(sysRole);
     }
 
+    private SysRole getRole(Integer id) {
+        return sysUserDao.getRole(id);
+    }
+
     /**
      * 根据ID更新角色
      */

+ 3 - 0
src/main/resources/mapper/SysUserDao.xml

@@ -72,6 +72,9 @@
         INSERT INTO sys_role(role_name, role_desc, create_time)
         VALUES (#{roleName}, #{roleDesc}, NOW())
     </insert>
+    <select id="getMenuIdsByRoleId" resultType="java.lang.String">
+        SELECT DISTINCT menu_id FROM sys_role_menu WHERE role_id = #{roleId}
+    </select>
     <insert id="insertRoleMenuRelation">
         INSERT INTO sys_role_menu(role_id, menu_id) VALUES(#{roleId}, #{menuId})
     </insert>