#
vincentlu
2025-01-13 e1b6929f24ccf3638cad470917e92221d98aa1c4
#
4个文件已修改
1个文件已添加
144 ■■■■ 已修改文件
zy-acs-common/src/main/java/com/zy/acs/common/utils/Utils.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-manager/src/main/java/com/zy/acs/manager/system/controller/AuthController.java 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-manager/src/main/java/com/zy/acs/manager/system/controller/result/MenuVo.java 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-manager/src/main/java/com/zy/acs/manager/system/entity/Menu.java 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-manager/src/main/resources/mapper/system/RoleMenuMapper.xml 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-common/src/main/java/com/zy/acs/common/utils/Utils.java
@@ -37,7 +37,7 @@
            if (parentId.equals(dParentId)) {
                R dId = idMapper.apply(d);
                List<T> children = toTreeData(data, dId, parentIdMapper, idMapper, consumer);
                if(children.size() > 0) {
                if(!children.isEmpty()) {
                    consumer.accept(d, children);
                }
                result.add(d);
@@ -63,8 +63,6 @@
    /**
     * 数组倒序
     * @param bytes
     * @param <T>
     */
    public static <T> byte[] reverse(byte[] bytes) {
        if (bytes == null) return null;
zy-acs-manager/src/main/java/com/zy/acs/manager/system/controller/AuthController.java
@@ -1,6 +1,8 @@
package com.zy.acs.manager.system.controller;
import com.zy.acs.common.utils.Utils;
import com.zy.acs.framework.common.Cools;
import com.zy.acs.framework.common.R;
import com.zy.acs.manager.common.annotation.OperationLog;
import com.zy.acs.manager.common.config.ConfigProperties;
import com.zy.acs.manager.common.security.JwtSubject;
@@ -8,6 +10,7 @@
import com.zy.acs.manager.system.controller.param.LoginParam;
import com.zy.acs.manager.system.controller.param.UpdatePasswordParam;
import com.zy.acs.manager.system.controller.result.LoginResult;
import com.zy.acs.manager.system.controller.result.MenuVo;
import com.zy.acs.manager.system.entity.Menu;
import com.zy.acs.manager.system.entity.User;
import com.zy.acs.manager.system.entity.UserLogin;
@@ -15,14 +18,13 @@
import com.zy.acs.manager.system.service.TenantService;
import com.zy.acs.manager.system.service.UserLoginService;
import com.zy.acs.manager.system.service.UserService;
import com.zy.acs.framework.common.Cools;
import com.zy.acs.framework.common.R;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
import java.util.stream.Collectors;
/**
 * 认证控制器
@@ -73,8 +75,12 @@
    @GetMapping("/auth/menu")
    public R userMenu() {
        List<Menu> menus = roleMenuService.listMenuByUserId(getLoginUserId(), Menu.TYPE_MENU);
        return R.ok().add(Utils.toTreeData(menus, 0L, Menu::getParentId, Menu::getId, Menu::setChildren));
//        return R.ok().add(Utils.toTreeData(menus, 0L, Menu::getParentId, Menu::getId, Menu::setChildren));
        List<MenuVo> voList = menus.stream().map(this::convertToVo).collect(Collectors.toList());
        return R.ok().add(Utils.toTreeData(voList, 0L, MenuVo::getParentId, MenuVo::getId, MenuVo::setChildren));
    }
    @GetMapping("/auth/tenant")
    public R authHost() {
@@ -121,4 +127,32 @@
        return R.error("Update Fail");
    }
    // ----------------------------------------------------
    private MenuVo convertToVo(Menu menu) {
        if (menu == null) {
            return null;
        }
        MenuVo vo = new MenuVo();
        vo.setId(menu.getId());
        vo.setName(menu.getName());
        vo.setParentId(menu.getParentId());
//        vo.setParentName(menu.getParentName());
        vo.setPath(menu.getPath());
//        vo.setPathName(menu.getPathName());
        vo.setRoute(menu.getRoute());
        vo.setComponent(menu.getComponent());
        vo.setType(menu.getType());
        vo.setIcon(menu.getIcon());
        vo.setSort(menu.getSort());
        if (menu.getChildren() != null && !menu.getChildren().isEmpty()) {
            List<MenuVo> childDTOs = menu.getChildren().stream()
                    .map(this::convertToVo)
                    .collect(Collectors.toList());
            vo.setChildren(childDTOs);
        }
        return vo;
    }
}
zy-acs-manager/src/main/java/com/zy/acs/manager/system/controller/result/MenuVo.java
New file
@@ -0,0 +1,54 @@
package com.zy.acs.manager.system.controller.result;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
@Data
public class MenuVo implements Serializable {
    private static final long serialVersionUID = 1L;
    @ApiModelProperty(value= "ID")
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    @ApiModelProperty(value= "名称")
    private String name;
    @ApiModelProperty(value= "上级菜单")
    private Long parentId;
//    @ApiModelProperty(value= "上级菜单名")
//    private String parentName;
    @ApiModelProperty(value= "关联路径")
    private String path;
//    @ApiModelProperty(value= "关联路径名")
//    private String pathName;
    @ApiModelProperty(value= "路由地址")
    private String route;
    @ApiModelProperty(value= "页面组件")
    private String component;
    @ApiModelProperty(value= "类型 0: 菜单  1: 按钮  ")
    private Integer type;
    @ApiModelProperty(value= "菜单图标")
    private String icon;
    private Integer sort;
    @TableField(exist = false)
    private List<MenuVo> children;
}
zy-acs-manager/src/main/java/com/zy/acs/manager/system/entity/Menu.java
@@ -1,10 +1,10 @@
package com.zy.acs.manager.system.entity;
import com.baomidou.mybatisplus.annotation.*;
import com.zy.acs.manager.system.service.TenantService;
import com.zy.acs.manager.system.service.UserService;
import com.zy.acs.framework.common.Cools;
import com.zy.acs.framework.common.SpringUtils;
import com.zy.acs.manager.system.service.TenantService;
import com.zy.acs.manager.system.service.UserService;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
@@ -193,20 +193,6 @@
        return null;
    }
    public String getStatus$(){
        if (null == this.status){ return null; }
        switch (this.status){
            case 1:
                return "正常";
            case 0:
                return "禁用";
            default:
                return String.valueOf(this.status);
        }
    }
    public String getCreateTime$(){
        if (Cools.isEmpty(this.createTime)){
            return "";
@@ -250,7 +236,5 @@
                return null;
        }
    }
}
zy-acs-manager/src/main/resources/mapper/system/RoleMenuMapper.xml
@@ -3,23 +3,19 @@
<mapper namespace="com.zy.acs.manager.system.mapper.RoleMenuMapper">
    <select id="listMenuByUserId" resultType="com.zy.acs.manager.system.entity.Menu">
        select * from sys_menu
        where 1=1
        SELECT DISTINCT sm.*
        FROM sys_menu sm
        JOIN sys_role_menu srm ON sm.id = srm.menu_id
        JOIN sys_user_role sur ON srm.role_id = sur.role_id
        JOIN sys_role sr ON sur.role_id = sr.id
        WHERE 1=1
        <if test="type != null">
            AND type = #{type}
            AND sm.type = #{type}
        </if>
        and deleted = 0
        and id in (
            select menu_id from sys_role_menu
            where role_id in (
                select sur.role_id from sys_user_role sur
                left join sys_role sr on sur.role_id = sr.id
                where 1=1
                and sur.user_id = #{userId}
                and sr.deleted = 0
            )
        )
        order by sort
        AND sur.user_id = #{userId}
        AND sr.deleted = 0
        AND sm.deleted = 0
        ORDER BY sm.sort
    </select>
    <select id="listStrictlyMenuByRoleId" resultType="java.lang.Long">