Răsfoiți Sursa

Merge remote-tracking branch 'origin/test' into test

wks 2 ani în urmă
părinte
comite
1f5d9e1ce5

+ 31 - 4
src/main/java/com/ydtech/modules/admin/controller/kzt/KZTRoleController.java

@@ -3,12 +3,14 @@ package com.ydtech.modules.admin.controller.kzt;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.ydtech.core.page.HttpResult;
 import com.ydtech.exception.SystemException;
+import com.ydtech.modules.admin.model.SysMenu;
 import com.ydtech.modules.admin.model.SysRole;
 import com.ydtech.modules.admin.model.SysUser;
 import com.ydtech.modules.admin.model.dto.KZTRoleAndMenuDto;
 import com.ydtech.modules.admin.model.dto.KZTUserQueryDto;
 import com.ydtech.modules.admin.model.dto.SysUserRoleQueryDto;
 import com.ydtech.modules.admin.model.vo.SysUserRoleVo;
+import com.ydtech.modules.admin.service.SysMenuService;
 import com.ydtech.modules.admin.service.SysRoleMenuKztService;
 import com.ydtech.modules.admin.service.SysRoleService;
 import com.ydtech.modules.admin.service.SysUserRoleKztService;
@@ -19,11 +21,9 @@ import io.swagger.annotations.ApiOperation;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.transaction.annotation.Transactional;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
+import java.util.ArrayList;
 import java.util.List;
 import java.util.stream.Collectors;
 
@@ -47,6 +47,12 @@ public class KZTRoleController extends BaseController {
 
     @Autowired
     private SysRoleMenuKztService sysRoleMenuKztService;
+
+    @Autowired
+    private SysMenuService sysMenuService;
+
+
+
     /**
      *  @version
      *  @author: hxl
@@ -167,4 +173,25 @@ public class KZTRoleController extends BaseController {
         }
         return HttpResult.ok("保存成功");
     }
+
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/8/14 16:36
+     *  @Description:
+     */
+    @GetMapping(value = "/findMenuIds")
+    @ApiOperation(value = "通过角色关联菜单表")
+    public HttpResult<List<SysMenu>> findMenuIds(Long roleId) {
+        if (roleId==null) {
+            throw new SystemException("角色id不能为空!!");
+        }
+        List<SysMenu> list= new ArrayList<SysMenu>();
+        try{
+             list= sysMenuService.getSysMenusByRoleId(roleId,"2");
+        }catch(Exception e){
+            return HttpResult.error("保存失败");
+        }
+        return HttpResult.ok(list);
+    }
 }

+ 11 - 1
src/main/java/com/ydtech/modules/admin/dao/SysRoleMenuKztMapper.java

@@ -2,7 +2,11 @@ package com.ydtech.modules.admin.dao;
 
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ydtech.modules.admin.model.SysMenu;
 import com.ydtech.modules.admin.model.SysRoleMenuKzt;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 /**
 * @author Administrator
@@ -11,7 +15,13 @@ import com.ydtech.modules.admin.model.SysRoleMenuKzt;
 * @Entity generator.domain.SysRoleMenuKzt
 */
 public interface SysRoleMenuKztMapper extends BaseMapper<SysRoleMenuKzt> {
-
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/8/15 14:12
+     *  @Description: 通过角色id查询控制台关联的菜单
+     */
+    List<SysMenu> findMenuIdsByRoleId(@Param("roleId") Long roleId, @Param("sysType") String sysType);
 }
 
 

+ 5 - 0
src/main/java/com/ydtech/modules/admin/dao/SysUserRoleKztMapper.java

@@ -2,11 +2,14 @@ package com.ydtech.modules.admin.dao;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ydtech.modules.admin.model.SysMenu;
 import com.ydtech.modules.admin.model.SysUser;
 import com.ydtech.modules.admin.model.SysUserRoleKzt;
 import com.ydtech.modules.admin.model.dto.KZTUserQueryDto;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.List;
+
 /**
 * @author Administrator
 * @description 针对表【sys_user_role_kzt(控制台用户关联角色)】的数据库操作Mapper
@@ -28,6 +31,8 @@ public interface SysUserRoleKztMapper extends BaseMapper<SysUserRoleKzt> {
       *  @Description: 通过机构id和用户参数查询已经授权的用户
       */
     Page<SysUser> queryPageByParam(@Param("page") Page<SysUser> page,@Param("vo") KZTUserQueryDto kZTUserQueryDto);
+
+    List<SysMenu> findMenuIdsByRoleId(Long roleId, String sysType);
 }
 
 

+ 7 - 0
src/main/java/com/ydtech/modules/admin/service/SysMenuService.java

@@ -26,6 +26,13 @@ public interface SysMenuService extends IService<SysMenu> {
      *  @Description: 通过用户id查询菜单树
      */
     List<SysMenu> findMenuListByUserId(String userId,String sysType);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/8/15 14:21
+     *  @Description: 通过角色id查询控制台角色
+     */
+    List<SysMenu> getSysMenusByRoleId(Long roleId, String sysType);
 }
 
 

+ 10 - 0
src/main/java/com/ydtech/modules/admin/service/SysRoleMenuKztService.java

@@ -1,9 +1,12 @@
 package com.ydtech.modules.admin.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.ydtech.modules.admin.model.SysMenu;
 import com.ydtech.modules.admin.model.SysRoleMenuKzt;
 import com.ydtech.modules.admin.model.dto.KZTRoleAndMenuDto;
 
+import java.util.List;
+
 /**
 * @author Administrator
 * @description 针对表【sys_role_menu_kzt(控制台角色关联菜单)】的数据库操作Service
@@ -17,4 +20,11 @@ public interface SysRoleMenuKztService extends IService<SysRoleMenuKzt> {
      *  @Description:  保存控制台关联菜单
      */
     void saveRoleMenus(KZTRoleAndMenuDto kZTRoleAndMenuDto);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/8/15 14:11
+     *  @Description: 通过角色id查询菜单数据
+     */
+    List<SysMenu> findMenuIdsByRoleId(Long roleId, String sysType);
 }

+ 31 - 0
src/main/java/com/ydtech/modules/admin/service/impl/SysMenuServiceImpl.java

@@ -7,6 +7,7 @@ import com.ydtech.modules.admin.dao.SysMenuMapper;
 import com.ydtech.modules.admin.model.SysMenu;
 import com.ydtech.modules.admin.model.SysRoleMenu;
 import com.ydtech.modules.admin.service.SysMenuService;
+import com.ydtech.modules.admin.service.SysRoleMenuKztService;
 import com.ydtech.modules.admin.service.SysRoleMenuService;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -24,6 +25,10 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu>
     @Autowired
     private SysRoleMenuService sysRoleMenuService;
 
+    @Autowired
+    private SysRoleMenuKztService sysRoleMenuKztService;
+
+
     @Override
     public List<SysMenu> findTree(String userName, int menuType) {
         List<SysMenu> sysMenus = new ArrayList<>();
@@ -165,6 +170,32 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu>
     public List<SysMenu> findMenuListByUserId(String userId, String sysType) {
         return getSysMenus(sysType,0,userId);
     }
+
+
+
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/8/15 11:38
+     *  @Description: 通过角色查询菜单树
+     */
+    public List<SysMenu> getSysMenusByRoleId(Long roleId, String sysType) {
+        List<SysMenu> sysMenus = new ArrayList<>();
+
+        List<SysMenu> menus = sysRoleMenuKztService.findMenuIdsByRoleId(roleId,sysType);
+
+        for (SysMenu menu : menus) {
+            if (menu.getParentId() == null || menu.getParentId().equalsIgnoreCase("0")) {
+                menu.setLevel(0);
+                if (!exists(sysMenus, menu)) {
+                    sysMenus.add(menu);
+                }
+            }
+        }
+        sysMenus.sort((o1, o2) -> o1.getOrderNum().compareTo(o2.getOrderNum()));
+        findChildren(sysMenus, menus, 0);
+        return sysMenus;
+    }
 }
 
 

+ 11 - 0
src/main/java/com/ydtech/modules/admin/service/impl/SysRoleMenuKztServiceImpl.java

@@ -2,6 +2,7 @@ package com.ydtech.modules.admin.service.impl;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ydtech.modules.admin.dao.SysRoleMenuKztMapper;
+import com.ydtech.modules.admin.model.SysMenu;
 import com.ydtech.modules.admin.model.SysRoleMenuKzt;
 import com.ydtech.modules.admin.model.dto.KZTRoleAndMenuDto;
 import com.ydtech.modules.admin.service.SysRoleMenuKztService;
@@ -48,6 +49,16 @@ public class SysRoleMenuKztServiceImpl extends ServiceImpl<SysRoleMenuKztMapper,
         }
         this.saveBatch(list);
     }
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/8/15 14:11
+     *  @Description:  通过角色id查询菜单数据
+     */
+    @Override
+    public List<SysMenu> findMenuIdsByRoleId(Long roleId, String sysType) {
+        return sysRoleMenuKztMapper.findMenuIdsByRoleId(roleId,sysType);
+    }
 }
 
 

+ 5 - 0
src/main/java/com/ydtech/modules/admin/service/impl/SysUserRoleKztServiceImpl.java

@@ -26,6 +26,11 @@ public class SysUserRoleKztServiceImpl extends ServiceImpl<SysUserRoleKztMapper,
 
      @Autowired
      private  SysUserRoleKztMapper  sysUserRoleKztMapper;
+
+    @Autowired
+    private  SysUserRoleKztMapper  sysRoleMenuKztService;
+
+
     /**
      *  @version
      *  @author: hxl

+ 24 - 0
src/main/resources/mapper/modules/admin/SysRoleMenuKztMapper.xml

@@ -20,4 +20,28 @@
         sys_type,create_by,create_time,
         last_update_by,last_update_time
     </sql>
+    <select id="findMenuIdsByRoleId" resultType="com.ydtech.modules.admin.model.SysMenu">
+        SELECT
+            t.id,
+            t.NAME,
+            t.parent_id,
+            t.url,
+            t.perms,
+            t.type,
+            t.icon,
+            t.order_num,
+            t.create_by,
+            t.create_time,
+            t.last_update_by,
+            t.last_update_time,
+            t.del_flag
+        FROM
+            sys_role_menu_kzt link
+                LEFT JOIN sys_menu t ON link.menu_id = t.id
+        WHERE
+            role_id =#{roleId}
+          AND link.sys_type = ${sysType}
+          AND t.sys_type = ${sysType}
+          AND t.del_flag =0
+    </select>
 </mapper>