lyhzzz пре 3 година
родитељ
комит
382f735c47

+ 58 - 4
4dkankan-center-manage/src/main/java/com/fdkankan/manage/controller/SysMenuController.java

@@ -1,9 +1,18 @@
 package com.fdkankan.manage.controller;
 
 
-import org.springframework.web.bind.annotation.RequestMapping;
+import com.fdkankan.common.constant.ErrorCode;
+import com.fdkankan.common.exception.BusinessException;
+import com.fdkankan.common.request.RequestBase;
+import com.fdkankan.common.response.ResultData;
+import com.fdkankan.common.util.DateUtil;
+import com.fdkankan.manage.entity.SysMenu;
+import com.fdkankan.manage.service.ISysMenuService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.util.StringUtils;
+import org.springframework.web.bind.annotation.*;
 
-import org.springframework.web.bind.annotation.RestController;
+import java.util.Date;
 
 /**
  * <p>
@@ -14,8 +23,53 @@ import org.springframework.web.bind.annotation.RestController;
  * @since 2022-06-09
  */
 @RestController
-@RequestMapping("/manage/sysMenu")
-public class SysMenuController {
+@RequestMapping("/service/manage/sysMenu")
+public class SysMenuController extends BaseController{
+
+    @Autowired
+    ISysMenuService menuService;
+
+    @PostMapping("/add")
+    public ResultData add(@RequestBody SysMenu param){
+        param.setUpdateTime(DateUtil.date2String(new Date(),DateUtil.DEFAULT_DATE_FORMAT));
+        menuService.saveOrUpdate(param);
+        return ResultData.ok();
+    }
+
+    @PostMapping("/update")
+    public ResultData update(@RequestBody SysMenu param){
+        if(StringUtils.isEmpty(param.getId())){
+            throw new BusinessException(ErrorCode.MISSING_REQUIRED_PARAMETERS);
+        }
+        param.setUpdateTime(DateUtil.date2String(new Date(),DateUtil.DEFAULT_DATE_FORMAT));
+        menuService.saveOrUpdate(param);
+        return ResultData.ok();
+    }
+
+    @PostMapping("/delete")
+    public ResultData delete(@RequestBody SysMenu param){
+        menuService.removeById(param.getId());
+        return ResultData.ok();
+    }
+
+    @PostMapping("/list")
+    public ResultData list(@RequestBody RequestBase param){
+        return ResultData.ok(menuService.pageList(param));
+    }
+
+    @PostMapping("/allShowList")
+    public ResultData allShowList(){
+        return ResultData.ok(menuService.allShowList());
+    }
+
+    @GetMapping("/getByUserId")
+    public ResultData getByUserId(){
+        return ResultData.ok(menuService.getByUserId(getUserId()));
+    }
+    @GetMapping("/getByRoleId")
+    public ResultData getByRoleId(@RequestParam(required = false) Long roleId){
+        return ResultData.ok(menuService.getByRoleId(null,roleId));
+    }
 
 }
 

+ 6 - 6
4dkankan-center-manage/src/main/java/com/fdkankan/manage/controller/SysRoleController.java

@@ -28,14 +28,14 @@ public class SysRoleController extends BaseController{
     @Autowired
     ISysRoleService roleService;
 
-    @PostMapping("add")
+    @PostMapping("/add")
     public ResultData add(@RequestBody SysRoleParam param){
         param.setCreateUserId(getUserId());
         roleService.addOrUpdate(param);
         return ResultData.ok();
     }
 
-    @PostMapping("update")
+    @PostMapping("/update")
     public ResultData update(@RequestBody SysRoleParam param){
         if(StringUtils.isEmpty(param.getId())){
             throw new BusinessException(ErrorCode.MISSING_REQUIRED_PARAMETERS);
@@ -44,25 +44,25 @@ public class SysRoleController extends BaseController{
         return ResultData.ok();
     }
 
-    @PostMapping("delete")
+    @PostMapping("/delete")
     public ResultData delete(@RequestBody SysRoleParam param){
         roleService.delete(param.getId());
         return ResultData.ok();
     }
 
-    @PostMapping("list")
+    @PostMapping("/list")
     public ResultData list(@RequestBody SysRoleParam param){
         return ResultData.ok(roleService.pageList(param));
     }
 
-    @GetMapping("allList")
+    @GetMapping("/allList")
     public ResultData allList(){
         LambdaQueryWrapper<SysRole> wrapper = new LambdaQueryWrapper<>();
         wrapper.eq(SysRole::getStatus,1);
         return ResultData.ok(roleService.list(wrapper));
     }
 
-    @PostMapping("giveMenu")
+    @PostMapping("/giveMenu")
     public ResultData giveMenu(@RequestBody SysRoleMenuParam param){
         roleService.giveMenu(param);
         return ResultData.ok();

+ 0 - 21
4dkankan-center-manage/src/main/java/com/fdkankan/manage/controller/SysRoleMenuController.java

@@ -1,21 +0,0 @@
-package com.fdkankan.manage.controller;
-
-
-import org.springframework.web.bind.annotation.RequestMapping;
-
-import org.springframework.web.bind.annotation.RestController;
-
-/**
- * <p>
- *  前端控制器
- * </p>
- *
- * @author 
- * @since 2022-06-09
- */
-@RestController
-@RequestMapping("/manage/sysRoleMenu")
-public class SysRoleMenuController {
-
-}
-

+ 5 - 5
4dkankan-center-manage/src/main/java/com/fdkankan/manage/controller/SysUserController.java

@@ -20,14 +20,14 @@ public class SysUserController  extends BaseController{
     @Autowired
     ISysUserService sysUserService;
 
-    @PostMapping("add")
+    @PostMapping("/add")
     public ResultData add(@RequestBody SysUserParam param){
         param.setCreateUserId(getUserId());
         sysUserService.addOrUpdate(param);
         return ResultData.ok();
     }
 
-    @PostMapping("update")
+    @PostMapping("/update")
     public ResultData update(@RequestBody SysUserParam param){
         if(StringUtils.isEmpty(param.getId())){
             throw new BusinessException(ErrorCode.MISSING_REQUIRED_PARAMETERS);
@@ -36,7 +36,7 @@ public class SysUserController  extends BaseController{
         return ResultData.ok();
     }
 
-    @PostMapping("delete")
+    @PostMapping("/delete")
     public ResultData delete(@RequestBody SysUserParam param){
         if(StringUtils.isEmpty(param.getId())){
             throw new BusinessException(ErrorCode.MISSING_REQUIRED_PARAMETERS);
@@ -44,7 +44,7 @@ public class SysUserController  extends BaseController{
         sysUserService.removeById(param.getId());
         return ResultData.ok();
     }
-    @PostMapping("rePassword")
+    @PostMapping("/rePassword")
     public ResultData rePassword(@RequestBody SysUserParam param){
         if(StringUtils.isEmpty(param.getId()) && StringUtils.isEmpty(param.getPassword())){
             throw new BusinessException(ErrorCode.MISSING_REQUIRED_PARAMETERS);
@@ -53,7 +53,7 @@ public class SysUserController  extends BaseController{
         return ResultData.ok();
     }
 
-    @PostMapping("list")
+    @PostMapping("/list")
     public ResultData list(@RequestBody SysUserParam param){
         return ResultData.ok(sysUserService.pageList(param));
     }

+ 4 - 5
4dkankan-center-manage/src/main/java/com/fdkankan/manage/entity/SysMenu.java

@@ -5,7 +5,6 @@ import lombok.Getter;
 import lombok.Setter;
 
 import java.io.Serializable;
-import java.util.Date;
 
 /**
  * <p>
@@ -26,7 +25,7 @@ public class SysMenu implements Serializable {
      * 系统菜单表
      */
     @TableId(value = "id", type = IdType.AUTO)
-    private Integer id;
+    private Long id;
 
     /**
      * 菜单名称
@@ -50,7 +49,7 @@ public class SysMenu implements Serializable {
      * 父id
      */
     @TableField("parent_id")
-    private Integer parentId;
+    private Long parentId;
 
     /**
      * 类型0菜单,1按钮
@@ -81,10 +80,10 @@ public class SysMenu implements Serializable {
     private String perms;
 
     @TableField("create_time")
-    private Date createTime;
+    private String createTime;
 
     @TableField("update_time")
-    private Date updateTime;
+    private String updateTime;
 
 
 }

+ 12 - 1
4dkankan-center-manage/src/main/java/com/fdkankan/manage/service/ISysMenuService.java

@@ -1,7 +1,10 @@
 package com.fdkankan.manage.service;
 
-import com.fdkankan.manage.entity.SysMenu;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.fdkankan.common.request.RequestBase;
+import com.fdkankan.common.response.PageInfo;
+import com.fdkankan.manage.entity.SysMenu;
+import com.fdkankan.manage.vo.response.SysMenuVo;
 
 import java.util.List;
 
@@ -16,4 +19,12 @@ import java.util.List;
 public interface ISysMenuService extends IService<SysMenu> {
 
     List<SysMenu> getListByUserId(Object loginId);
+
+    PageInfo pageList(RequestBase param);
+
+    List<SysMenuVo> allShowList();
+
+    List<SysMenuVo>  getByUserId(Long userId);
+
+    List<SysMenuVo>  getByRoleId(List<Long> menuIds,Long roleId);
 }

+ 2 - 0
4dkankan-center-manage/src/main/java/com/fdkankan/manage/service/ISysRoleMenuService.java

@@ -18,4 +18,6 @@ public interface ISysRoleMenuService extends IService<SysRoleMenu> {
     void deleteByRoleId(Long roleId);
 
     void saveBatchByRoleId(Long roleId, List<Long> menuIds);
+
+    List<SysRoleMenu> getByRoleId(Long roleId);
 }

+ 100 - 1
4dkankan-center-manage/src/main/java/com/fdkankan/manage/service/impl/SysMenuServiceImpl.java

@@ -1,12 +1,25 @@
 package com.fdkankan.manage.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fdkankan.common.request.RequestBase;
+import com.fdkankan.common.response.PageInfo;
 import com.fdkankan.manage.entity.SysMenu;
+import com.fdkankan.manage.entity.SysRoleMenu;
+import com.fdkankan.manage.entity.SysUser;
 import com.fdkankan.manage.mapper.ISysMenuMapper;
 import com.fdkankan.manage.service.ISysMenuService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fdkankan.manage.service.ISysRoleMenuService;
+import com.fdkankan.manage.service.ISysUserService;
+import com.fdkankan.manage.vo.response.SysMenuVo;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -19,8 +32,94 @@ import java.util.List;
 @Service
 public class SysMenuServiceImpl extends ServiceImpl<ISysMenuMapper, SysMenu> implements ISysMenuService {
 
+    @Autowired
+    ISysRoleMenuService roleMenuService;
+    @Autowired
+    ISysUserService userService;
+
+
     @Override
     public List<SysMenu> getListByUserId(Object loginId) {
         return getBaseMapper().getListByUserId(loginId);
     }
+
+    @Override
+    public PageInfo pageList(RequestBase param) {
+        LambdaQueryWrapper<SysMenu> wrapper = new LambdaQueryWrapper<>();
+        wrapper.isNull(SysMenu::getParentId);
+        wrapper.orderByAsc(SysMenu::getSort);
+        Page<SysMenu> page = this.page(new Page<>(param.getPageNum(),param.getPageSize()), wrapper);
+        List<SysMenuVo> voList = getByParentId(null,page.getRecords(),false,null);
+
+        Page<SysMenuVo> resultPage = new Page<>(page.getCurrent(),page.getSize());
+        resultPage.setRecords(voList);
+        resultPage.setTotal(page.getTotal());
+        return PageInfo.PageInfo(resultPage);
+    }
+
+    @Override
+    public List<SysMenuVo> allShowList() {
+        return getByParentId(null,null,true,null);
+    }
+
+    @Override
+    public List<SysMenuVo> getByUserId(Long userId) {
+        SysUser user = userService.getById(userId);
+        List<SysMenu> menuList  = this.getListByUserId(userId);
+        List<Long> menuIds = menuList.parallelStream().map(SysMenu::getId).collect(Collectors.toList());
+        menuList.forEach(sysMenu -> setMenuIds(menuIds,sysMenu));
+        return getByRoleId(menuIds,user.getRoleId());
+    }
+
+
+    private void setMenuIds( List<Long> menuIds ,SysMenu sysMenu){
+        if(sysMenu.getParentId()!= null && !menuIds.contains(sysMenu.getParentId())) {
+            menuIds.add(sysMenu.getParentId());
+            SysMenu menu = this.getById(sysMenu.getParentId());
+            this.setMenuIds(menuIds,menu);
+        }
+    }
+
+    @Override
+    public List<SysMenuVo> getByRoleId(List<Long> menuIds ,Long roleId) {
+        if(menuIds == null){
+            List<SysRoleMenu> roleMenus  = roleMenuService.getByRoleId(roleId);
+            menuIds = roleMenus.parallelStream().map(SysRoleMenu::getMenuId).collect(Collectors.toList());
+        }
+        LambdaQueryWrapper<SysMenu> wrapper = new LambdaQueryWrapper<>();
+        wrapper.isNull(SysMenu::getParentId);
+        wrapper.in(SysMenu::getId,menuIds);
+        List<SysMenu> list = this.list(wrapper);
+        return getByParentId(null,list,true,menuIds);
+    }
+
+    private List<SysMenuVo> getByParentId(Long parentId, List<SysMenu> list, boolean show ,List<Long> menuIds){
+        if(list == null){
+            LambdaQueryWrapper<SysMenu> wrapper = new LambdaQueryWrapper<>();
+            if(show){
+                wrapper.eq(SysMenu::getIsShow,1);
+            }
+            if(parentId == null){
+                wrapper.isNull(SysMenu::getParentId);
+            }else {
+                wrapper.eq(SysMenu::getParentId,parentId);
+            }
+            if(menuIds != null){
+                wrapper.in(SysMenu::getId,menuIds);
+            }
+            list = this.list(wrapper);
+        }
+        List<SysMenuVo> sysMenuVos = new ArrayList<>();
+        if(list.size() <=0){
+            return sysMenuVos;
+        }
+        for (SysMenu record : list) {
+            SysMenuVo vo = new SysMenuVo();
+            BeanUtils.copyProperties(record,vo);
+            sysMenuVos.add(vo);
+            List<SysMenuVo> children = getByParentId(record.getId(),null,show,menuIds);
+            vo.setChildren(children);
+        }
+        return sysMenuVos;
+    }
 }

+ 7 - 0
4dkankan-center-manage/src/main/java/com/fdkankan/manage/service/impl/SysRoleMenuServiceImpl.java

@@ -39,4 +39,11 @@ public class SysRoleMenuServiceImpl extends ServiceImpl<ISysRoleMenuMapper, SysR
         }
         this.saveBatch(sysMenus);
     }
+
+    @Override
+    public List<SysRoleMenu> getByRoleId(Long roleId) {
+        LambdaQueryWrapper<SysRoleMenu> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(SysRoleMenu::getRoleId,roleId);
+        return this.list(wrapper);
+    }
 }

+ 12 - 0
4dkankan-center-manage/src/main/java/com/fdkankan/manage/vo/response/SysMenuVo.java

@@ -0,0 +1,12 @@
+package com.fdkankan.manage.vo.response;
+
+import com.fdkankan.manage.entity.SysMenu;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class SysMenuVo extends SysMenu {
+
+    private List<SysMenuVo> children;
+}