2021与蓝度共同重构项目,服务端
chenjiantian
2022-01-17 75ef59813ad1f15293d8e3937c3b8b85ca561703
token优化
已修改5个文件
已添加1个文件
189 ■■■■ 文件已修改
dao/src/main/java/com/sandu/ximon/dao/domain/Menu.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ximon-admin/src/main/java/com/sandu/ximon/admin/controller/AdminController.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ximon-admin/src/main/java/com/sandu/ximon/admin/controller/MenuController.java 52 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ximon-admin/src/main/java/com/sandu/ximon/admin/param/MenuParam.java 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ximon-admin/src/main/java/com/sandu/ximon/admin/service/MenuService.java 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ximon-admin/src/test/java/com/sandu/ximon/admin/BaseTopicTests.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
dao/src/main/java/com/sandu/ximon/dao/domain/Menu.java
@@ -67,7 +67,7 @@
    private String permission;
    /**
     * ç±»åž‹ï¼Œ0:菜单,1:按钮
     * ç±»åž‹ï¼Œ0:目录   1:菜单   2:按钮
     */
    private Integer type;
@@ -83,4 +83,4 @@
    @TableField(exist = false)
    private static final long serialVersionUID = 1L;
}
}
ximon-admin/src/main/java/com/sandu/ximon/admin/controller/AdminController.java
@@ -105,10 +105,13 @@
        Long userId = SecurityUtils.getUserId();
        Admin admin = adminService.getById(userId);
        List<Role> roles = roleService.listByAdminId(admin.getId());
        if(CollectionUtil.isEmpty(roles)){
            return ResponseUtil.fail("用户没有角色,无法获取数据");
        }
        List<Menu> menus = menuService.listByRoleIds(roles.stream().map(Role::getId).collect(Collectors.toList()));
        MapBuilder<Object, Object> builder = MapUtil.builder().put("info", admin);
        MapBuilder<Object, Object> builder = MapUtil.builder().put("admin", admin);
        if (CollectionUtil.isNotEmpty(menus)) {
            List<Menu> collect = menus.stream().filter(menu -> menu.getType() == 0).collect(Collectors.toList());
            List<Menu> collect = menus.stream().filter(menu -> menu.getType() == 0 || menu.getType() == 1).collect(Collectors.toList());
            builder.put("menus", collect);
        }
        return ResponseUtil.success(builder.build());
ximon-admin/src/main/java/com/sandu/ximon/admin/controller/MenuController.java
@@ -1,13 +1,12 @@
package com.sandu.ximon.admin.controller;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.sandu.common.domain.ResponseVO;
import com.sandu.common.util.ResponseUtil;
import com.sandu.ximon.admin.param.MenuParam;
import com.sandu.ximon.admin.service.MenuService;
import com.sandu.ximon.dao.bo.MenuNode;
import com.sandu.ximon.dao.domain.Menu;
import lombok.AllArgsConstructor;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@@ -30,27 +29,32 @@
//        List<MenuNode> menuTrees = menuService.buildTree(list);
//        return ResponseUtil.success(menuTrees);
//    }
//
//    @GetMapping("treeList")
//    public ResponseVO<Object> treeList() {
//        List<Menu> list = menuService.list(Wrappers.lambdaQuery(Menu.class));
//        List<MenuNode> menuTrees = menuService.buildTree(list);
//        return ResponseUtil.success(menuTrees);
//    }
//
//    @PutMapping
//    @PreAuthorize("@el.check('menu:edit')")
//    public ResponseVO<Object> update(@RequestBody Menu resources) {
//
//        boolean b = menuService.updateMenu(resources);
//        return ResponseUtil.success("");
//    }
//    @PostMapping
//    public ResponseVO<Object> addMenu(@RequestBody Menu resources) {
//
//        boolean b = menuService.updateMenu(resources);
//        return ResponseUtil.success("");
//    }
    @GetMapping("/treeList")
    public ResponseVO<Object> treeList() {
        List<MenuNode> menuTrees = menuService.treeList();
        return ResponseUtil.success(menuTrees);
    }
    @PostMapping("/update/{menuId}")
    public ResponseVO<Object> update(@PathVariable Long menuId, @Validated @RequestBody MenuParam param) {
        boolean result = menuService.updateMenu(menuId,param);
        if (result) {
            return ResponseUtil.success("添加成功");
        } else {
            return ResponseUtil.fail("添加失败");
        }
    }
    @PostMapping
    public ResponseVO<Object> addMenu(@Validated @RequestBody MenuParam param) {
        boolean result = menuService.addMenu(param);
        if (result) {
            return ResponseUtil.success("添加成功");
        } else {
            return ResponseUtil.fail("添加失败");
        }
    }
}
ximon-admin/src/main/java/com/sandu/ximon/admin/param/MenuParam.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,63 @@
package com.sandu.ximon.admin.param;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
 * @author chenjiantian
 * @date 2022/1/17 18:11
 */
@Data
public class MenuParam {
    /**
     * èœå•title
     */
    @NotBlank(message = "菜单名称不能为空")
    private String title;
    /**
     * ä¸Šçº§èœå•ID
     */
    private Long pid;
    /**
     * æŽ’序
     */
    private Integer seq;
    /**
     * èœå•图标
     */
    private String icon;
    /**
     * è¯·æ±‚路径
     */
    private String path;
    /**
     * èœå•是否隐藏
     */
    private Boolean hidden;
    /**
     * ç»„件路径映射
     */
    private String component;
    /**
     * è·¯ç”±åç§°
     */
    private String routerName;
    /**
     * æƒé™åç§°
     */
    private String permission;
    /**
     * ç±»åž‹ï¼Œ0:菜单,1:按钮
     */
    private Integer type;
}
ximon-admin/src/main/java/com/sandu/ximon/admin/service/MenuService.java
@@ -3,13 +3,18 @@
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.sandu.common.execption.BusinessException;
import com.sandu.common.execption.EntityExistException;
import com.sandu.common.service.impl.BaseServiceImpl;
import com.sandu.ximon.admin.param.MenuParam;
import com.sandu.ximon.dao.bo.MenuNode;
import com.sandu.ximon.dao.domain.AdminRoleRelation;
import com.sandu.ximon.dao.domain.Menu;
import com.sandu.ximon.dao.domain.RoleMenuRelation;
import com.sandu.ximon.dao.mapper.AdminRoleRelationMapper;
import com.sandu.ximon.dao.mapper.MenuMapper;
import lombok.AllArgsConstructor;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import java.util.List;
@@ -34,7 +39,56 @@
        if (CollectionUtil.isEmpty(menuIdList)) {
            return null;
        }
        List<Menu> menus = listByIds(menuIdList);
        return menus;
        return listByIds(menuIdList);
    }
    public boolean addMenu(MenuParam param) {
        Menu menu = new Menu();
        BeanUtils.copyProperties(param,menu);
        return save(menu);
    }
//    public Set<Menu> listMenuByRoles(Set<Role> roles) {
//        List<Long> roleIds = roles.stream().map(Role::getId).collect(Collectors.toList());
//        Set<Menu> menus = menuDao.listMenuByRoleIds(roleIds);
//        return menus;
//    }
//
//    /**
//     * æŠŠèœå•转成树形结构
//     */
//    public List<MenuNode> buildTree(List<Menu> menuList) {
//        return menuList.stream()
//                .filter(menu -> menu.getPid().equals(0L))
//                .map(menu -> covertMenuNode(menu, menuList)).collect(Collectors.toList());
//    }
    private MenuNode covertMenuNode(Menu menu, List<Menu> menuList) {
        MenuNode node = new MenuNode();
        BeanUtils.copyProperties(menu, node);
        List<MenuNode> children = menuList.stream()
                .filter(subMenu -> subMenu.getPid().equals(menu.getId()))
                .map(subMenu -> covertMenuNode(subMenu, menuList)).collect(Collectors.toList());
        node.setChildren(children);
        return node;
    }
    public boolean updateMenu(Long menuId,MenuParam param) {
        Menu one = getById(menuId);
        if (one == null) {
            throw new BusinessException("找不到菜单信息");
        }
        Menu menu = new Menu();
        BeanUtils.copyProperties(param,menu);
        menu.setId(menuId);
        return updateById(menu);
    }
    public List<MenuNode> treeList() {
        List<Menu> list = list();
        return list.stream()
                .filter(menu -> menu.getPid().equals(0L))
                .map(menu -> covertMenuNode(menu, list)).collect(Collectors.toList());
    }
}
ximon-admin/src/test/java/com/sandu/ximon/admin/BaseTopicTests.java
@@ -21,6 +21,8 @@
import com.sandu.ximon.admin.manager.iot.rrpc.enums.A5OrderEnum;
import com.sandu.ximon.admin.manager.iot.rrpc.mainboard.MainBoardInvokeSyncService;
import com.sandu.ximon.admin.service.PoleService;
import com.sandu.ximon.admin.service.RoleMenuRelationService;
import com.sandu.ximon.dao.domain.RoleMenuRelation;
import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
@@ -33,6 +35,9 @@
class BaseTopicTests {
@Autowired
    PoleService poleService;
@Autowired
    RoleMenuRelationService roleMenuRelationService;
    // æŸ¥è¯¢è®¾å¤‡è¯¦æƒ…
    @Test