Browse Source

菜单选中设置

黄远 5 years ago
parent
commit
d41589d5cf

+ 2 - 2
lift-system-service/src/main/java/cn/com/ty/lift/system/user/controller/MenuController.java

@@ -27,8 +27,8 @@ public class MenuController {
      * @date 2019/11/27 10:03 AM
      */
     @RequestMapping("/all")
-    public RestResponse all() {
-        return menuService.all();
+    public RestResponse all(MenuRequest menuRequest) {
+        return menuService.all(menuRequest);
     }
 
     /**

+ 11 - 0
lift-system-service/src/main/java/cn/com/ty/lift/system/user/controller/RoleController.java

@@ -45,6 +45,17 @@ public class RoleController {
         return roleService.addRole(roleRequest);
     }
 
+    /**
+     * @description 获取角色信息
+     * @date 2019-12-20 15:58
+     * @param
+     * @return
+     */
+    @RequestMapping("/info")
+    public RestResponse roleInfo(@RequestBody RoleRequest roleRequest){
+        return roleService.info(roleRequest);
+    }
+
     /**
      * @description 添加角色
      * @date 2019/11/27 10:03 AM

+ 3 - 2
lift-system-service/src/main/java/cn/com/ty/lift/system/user/dao/entity/model/MenuRequest.java

@@ -10,8 +10,9 @@ import lombok.Data;
 @Data
 public class MenuRequest {
     private Long id;
-    private Long companyId;
-    private String menuIds;
+    private Long companyId;//公司id
+    private String menuIds;//菜单id通过","连接
+    private Long roleId;//角色id
     public MenuRequest(){}
     public MenuRequest(Long companyId, String menuIds){
         this.companyId = companyId;

+ 11 - 0
lift-system-service/src/main/java/cn/com/ty/lift/system/user/dao/entity/model/RoleResponse.java

@@ -1,9 +1,20 @@
 package cn.com.ty.lift.system.user.dao.entity.model;
 
+import cn.com.ty.lift.system.user.dao.entity.Menu;
+import lombok.Data;
+
+import java.util.List;
+
 /**
  * @author huangyuan
  * @date 2019-12-01
  * @description 角色响应类
  */
+@Data
 public class RoleResponse {
+    private Long id;//角色id
+    private String name;//角色名称
+    private String description;//描述
+    private List<Menu> menuList;//角色所有的菜单列表
+    private List<Menu> companyMenuList;//企业菜单列表
 }

+ 2 - 1
lift-system-service/src/main/java/cn/com/ty/lift/system/user/service/IMenuService.java

@@ -33,9 +33,10 @@ public interface IMenuService extends IService<Menu> {
      * @description 获取所有的菜单信息
      * @date 2019/11/27 10:03 AM
      * @param
+     * @param menuRequest
      * @return
      */
-    RestResponse all();
+    RestResponse all(MenuRequest menuRequest);
 
     /**
      * @description 通过公司id获取公司菜单

+ 8 - 0
lift-system-service/src/main/java/cn/com/ty/lift/system/user/service/IRoleService.java

@@ -79,4 +79,12 @@ public interface IRoleService extends IService<Role> {
      * @date 2019-12-18 10:46
      */
     Map<Long, Role> getUserIdToRoleByUserIdsAndCompanyId(List<Long> userIdList, Long companyId);
+
+    /***
+     * @description 获取角色信息
+     * @date 2019-12-20 15:47
+     * @param
+     * @return
+     */
+    RestResponse info(RoleRequest roleRequest);
 }

+ 40 - 6
lift-system-service/src/main/java/cn/com/ty/lift/system/user/service/impl/MenuService.java

@@ -50,14 +50,27 @@ public class MenuService extends ServiceImpl<MenuMapper, Menu> implements IMenuS
     }
 
     @Override
-    public RestResponse all() {
+    public RestResponse all(MenuRequest menuRequest) {
         List<Menu> allMenus = this.list();
+        if(menuRequest.getCompanyId() != null){
+            //如果公司id不为空,获取当前公司已有的菜单信息
+            List<Menu> companyMenus = this.list(new QueryWrapper<Menu>().eq("company_id", menuRequest.getCompanyId()));
+            //在全部订单中设置选中
+            setMenuChecked(allMenus, companyMenus);
+        }
+
         return RestResponse.ok(getMenuTree(allMenus), ApiConstants.RESULT_SUCCESS, "获取所有菜单信息");
     }
 
     @Override
     public RestResponse list(MenuRequest menuRequest) {
         List<Menu> menuList = this.list(new QueryWrapper<Menu>().eq("company_id", menuRequest.getCompanyId()));
+        if(menuRequest.getRoleId() != null){
+            //如果传递了角色,获取角色下的所有菜单
+            List<Menu> roleMenuList = getByRoleId(menuRequest.getRoleId());
+            //设置角色有的菜单为选中
+            setMenuChecked(menuList, roleMenuList);
+        }
         return RestResponse.ok(getMenuTree(menuList), ApiConstants.RESULT_SUCCESS, "获取企业所有菜单信息");
     }
 
@@ -66,16 +79,16 @@ public class MenuService extends ServiceImpl<MenuMapper, Menu> implements IMenuS
     public RestResponse companyMenu(MenuRequest menuRequest) {
         Long companyId = menuRequest.getCompanyId();
         //删除企业原来关联的菜单
-        List<CompanyMenu> needDeleteCompanuMenuList = companyMenuService.list(new QueryWrapper<CompanyMenu>()
-            .eq("company_id", companyId)
+        List<CompanyMenu> needDeleteCompanyMenuList = companyMenuService.list(new QueryWrapper<CompanyMenu>()
+                .eq("company_id", companyId)
         );
-        List<Long> companyMenuIds = ProjectUtils.getAttrList(needDeleteCompanuMenuList, "id", null);
+        List<Long> companyMenuIds = ProjectUtils.getAttrList(needDeleteCompanyMenuList, "id", null);
         companyMenuService.removeByIds(companyMenuIds);
         //获取菜单id列表
         List<Long> menuIdList = ProjectUtils.getLongIdFromIds(menuRequest.getMenuIds());
         List<CompanyMenu> needSaveCompanyMenuList = new ArrayList<>();
         if (menuIdList != null && menuIdList.size() > 0) {
-            for(Long menuId:menuIdList){
+            for (Long menuId : menuIdList) {
                 CompanyMenu companyMenu = new CompanyMenu();
                 companyMenu.setCompanyId(companyId);
                 companyMenu.setMenuId(menuId);
@@ -83,7 +96,7 @@ public class MenuService extends ServiceImpl<MenuMapper, Menu> implements IMenuS
             }
         }
         //保存公司菜单关联关系
-        if(needSaveCompanyMenuList.size() > 0){
+        if (needSaveCompanyMenuList.size() > 0) {
             companyMenuService.saveBatch(needSaveCompanyMenuList);
         }
         return RestResponse.ok(null, ApiConstants.RESULT_SUCCESS, "分配菜单成功");
@@ -113,4 +126,25 @@ public class MenuService extends ServiceImpl<MenuMapper, Menu> implements IMenuS
         }
         sb.append(url + ",");
     }
+
+    /**
+     * @param moreMenuList 大的菜单列表
+     * @param lessMenuList 小的菜单列表
+     * @return
+     * @description 设置菜单选中
+     * @date 2019-12-20 16:33
+     */
+    private void setMenuChecked(List<Menu> moreMenuList, List<Menu> lessMenuList) {
+        if ((moreMenuList != null && moreMenuList.size() > 0)
+                && (lessMenuList != null && lessMenuList.size() > 0)) {
+            for (Menu moreMenu : moreMenuList) {
+                for (Menu lessMenu : lessMenuList) {
+                    if (moreMenu.getId().equals(lessMenu.getId())) {
+                        //设置菜单信息为选中
+                        moreMenu.setChecked(true);
+                    }
+                }
+            }
+        }
+    }
 }

+ 20 - 1
lift-system-service/src/main/java/cn/com/ty/lift/system/user/service/impl/RoleService.java

@@ -9,6 +9,7 @@ import cn.com.ty.lift.system.user.dao.entity.Role;
 import cn.com.ty.lift.system.user.dao.entity.RoleMenu;
 import cn.com.ty.lift.system.user.dao.entity.UserRole;
 import cn.com.ty.lift.system.user.dao.entity.model.RoleRequest;
+import cn.com.ty.lift.system.user.dao.entity.model.RoleResponse;
 import cn.com.ty.lift.system.user.dao.mapper.RoleMapper;
 import cn.com.ty.lift.system.user.service.IMenuService;
 import cn.com.ty.lift.system.user.service.IRoleMenuService;
@@ -126,7 +127,7 @@ public class RoleService extends ServiceImpl<RoleMapper, Role> implements IRoleS
                 .eq("company_id", companyId)
         );
         if (userRole != null) {
-            getById(userRole.getRoleId());
+            return getById(userRole.getRoleId());
         }
         return null;
     }
@@ -184,4 +185,22 @@ public class RoleService extends ServiceImpl<RoleMapper, Role> implements IRoleS
         }
         return userIdToRole;
     }
+
+    @Override
+    public RestResponse info(RoleRequest roleRequest) {
+        Long roleId = roleRequest.getId();
+        RoleResponse roleResponse = new RoleResponse();
+        //获取角色
+        Role role = this.getById(roleId);
+        if(role != null){
+            //角色基础信息查看
+            roleResponse.setId(roleId);
+            roleResponse.setName(role.getName());
+            roleResponse.setId(role.getId());
+            //获取角色菜单信息
+            List<Menu> roleMenuList = roleMenuService.getMenuTree(roleId);
+            roleResponse.setCompanyMenuList(roleMenuList);
+        }
+        return RestResponse.ok(roleResponse, ApiConstants.RESULT_SUCCESS, "获取角色信息成功");
+    }
 }