Browse Source

增加菜单功能

Gaokun Wang 1 month ago
parent
commit
c5b362dbf1

+ 16 - 0
eco-nexus-core/auth-biz/src/main/java/org/eco/vip/auth/controller/menu/MenuController.java

@@ -0,0 +1,16 @@
+/*
+ * Copyright (c) 2025 GaoKunW
+ *
+ */
+
+package org.eco.vip.auth.controller.menu;
+
+
+/**
+ * @description MenuController
+ *
+ * @author GaoKunW
+ * @date 2025/7/4 14:51
+ */
+public class MenuController {
+}

+ 9 - 8
eco-nexus-core/auth-biz/src/main/java/org/eco/vip/auth/controller/user/UserController.java

@@ -7,20 +7,20 @@ package org.eco.vip.auth.controller.user;
 
 
 import jakarta.annotation.Resource;
+import jakarta.validation.Valid;
 import org.eco.vip.auth.domain.user.User;
 import org.eco.vip.auth.domain.user.pojo.UserBO;
 import org.eco.vip.auth.domain.user.pojo.UserVO;
 import org.eco.vip.auth.service.user.IUserService;
 import org.eco.vip.orm.pojo.CommonResult;
 import org.eco.vip.orm.pojo.PageResult;
+import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.GetMapping;
 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 java.util.List;
-
 import static org.eco.vip.orm.pojo.CommonResult.success;
 
 /**
@@ -31,19 +31,20 @@ import static org.eco.vip.orm.pojo.CommonResult.success;
  */
 @RestController
 @RequestMapping("/system/user")
+@Validated
 public class UserController {
 
     @Resource
     private IUserService userService;
 
-    @GetMapping("/list")
-    public List<User> list() {
-        return userService.getUsers();
-    }
+//    @GetMapping("/list")
+//    public List<User> list() {
+//        return userService.getUsers();
+//    }
 
     @GetMapping("/page")
-    public CommonResult<PageResult<UserVO>> page() {
-        return success(userService.selectPage());
+    public CommonResult<PageResult<UserVO>> page(@RequestBody @Valid UserBO userBO) {
+        return success(userService.selectPage(userBO));
     }
 
     @PostMapping(("/add"))

+ 106 - 0
eco-nexus-core/auth-biz/src/main/java/org/eco/vip/auth/domain/menu/Menu.java

@@ -0,0 +1,106 @@
+/*
+ * Copyright (c) 2025 GaoKunW
+ *
+ */
+
+package org.eco.vip.auth.domain.menu;
+
+
+import com.mybatisflex.annotation.Id;
+import com.mybatisflex.annotation.Table;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.eco.vip.orm.domain.BaseEntity;
+
+/**
+ * @description Menu
+ *
+ * @author GaoKunW
+ * @date 2025/7/4 14:51
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@Table("system_menu_t")
+public class Menu extends BaseEntity {
+
+    /**
+     * 唯一标识
+     */
+    @Id
+    private String menuId;
+
+    /**
+     * 父id
+     */
+    private String parentId;
+
+    /**
+     * 标题
+     */
+    private String title;
+
+    /**
+     * 别名
+     */
+    private String name;
+
+    /**
+     * 编码
+     */
+    private String code;
+
+    /**
+     * 分类
+     */
+    private String category;
+
+    /**
+     * 模块
+     */
+    private String module;
+
+    /**
+     * 菜单类型
+     */
+    private String menuType;
+
+    /**
+     * 路径
+     */
+    private String path;
+
+    /**
+     * 组件
+     */
+    private String component;
+
+    /**
+     * 图标
+     */
+    private String icon;
+
+    /**
+     * 颜色
+     */
+    private String color;
+
+    /**
+     * 是否可见
+     */
+    private String visible;
+
+    /**
+     * 显示布局
+     */
+    private String displayLayout;
+
+    /**
+     * 缓存
+     */
+    private String keepLive;
+
+    /**
+     * 显示顺序
+     */
+    private Integer orderNum;
+}

+ 107 - 0
eco-nexus-core/auth-biz/src/main/java/org/eco/vip/auth/domain/menu/pojo/MenuBO.java

@@ -0,0 +1,107 @@
+/*
+ * Copyright (c) 2025 GaoKunW
+ *
+ */
+
+package org.eco.vip.auth.domain.menu.pojo;
+
+
+import io.github.linpeilie.annotations.AutoMapper;
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.eco.vip.auth.domain.menu.Menu;
+import org.eco.vip.orm.domain.BaseBO;
+
+/**
+ * @description MenuBO
+ *
+ * @author GaoKunW
+ * @date 2025/7/4 14:58
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@AutoMapper(target = Menu.class, reverseConvertGenerate = false)
+public class MenuBO extends BaseBO {
+
+    /**
+     * 父id
+     */
+    @NotBlank(message = "parentId不能为空")
+    private String parentId;
+
+    /**
+     * 标题
+     */
+    @NotBlank(message = "title不能为空")
+    private String title;
+
+    /**
+     * 别名
+     */
+    private String name;
+
+    /**
+     * 编码
+     */
+    private String code;
+
+    /**
+     * 分类
+     */
+    private String category;
+
+    /**
+     * 模块
+     */
+    private String module;
+
+    /**
+     * 菜单类型
+     */
+    @NotBlank(message = "menuType不能为空")
+    private String menuType;
+
+    /**
+     * 路径
+     */
+    @NotBlank(message = "path不能为空")
+    private String path;
+
+    /**
+     * 组件
+     */
+    private String component;
+
+    /**
+     * 图标
+     */
+    private String icon;
+
+    /**
+     * 颜色
+     */
+    private String color;
+
+    /**
+     * 是否可见
+     */
+    private String visible;
+
+    /**
+     * 显示布局
+     */
+    private String displayLayout;
+
+    /**
+     * 缓存
+     */
+    private String keepLive;
+
+    /**
+     * 显示顺序
+     */
+    @NotNull(message = "orderNum不能为空")
+    private Integer orderNum;
+}

+ 107 - 0
eco-nexus-core/auth-biz/src/main/java/org/eco/vip/auth/domain/menu/pojo/MenuVO.java

@@ -0,0 +1,107 @@
+/*
+ * Copyright (c) 2025 GaoKunW
+ *
+ */
+
+package org.eco.vip.auth.domain.menu.pojo;
+
+
+import com.mybatisflex.annotation.Id;
+import io.github.linpeilie.annotations.AutoMapper;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.eco.vip.auth.domain.menu.Menu;
+import org.eco.vip.orm.domain.BaseEntity;
+
+/**
+ * @description MenuVO
+ *
+ * @author GaoKunW
+ * @date 2025/7/4 14:58
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@AutoMapper(target = Menu.class, reverseConvertGenerate = false)
+public class MenuVO extends BaseEntity {
+
+    /**
+     * 唯一标识
+     */
+    @Id
+    private String menuId;
+
+    /**
+     * 父id
+     */
+    private String parentId;
+
+    /**
+     * 标题
+     */
+    private String title;
+
+    /**
+     * 别名
+     */
+    private String name;
+
+    /**
+     * 编码
+     */
+    private String code;
+
+    /**
+     * 分类
+     */
+    private String category;
+
+    /**
+     * 模块
+     */
+    private String module;
+
+    /**
+     * 菜单类型
+     */
+    private String menuType;
+
+    /**
+     * 路径
+     */
+    private String path;
+
+    /**
+     * 组件
+     */
+    private String component;
+
+    /**
+     * 图标
+     */
+    private String icon;
+
+    /**
+     * 颜色
+     */
+    private String color;
+
+    /**
+     * 是否可见
+     */
+    private String visible;
+
+    /**
+     * 显示布局
+     */
+    private String displayLayout;
+
+    /**
+     * 缓存
+     */
+    private String keepLive;
+
+    /**
+     * 显示顺序
+     */
+    private Integer orderNum;
+}

+ 1 - 0
eco-nexus-core/auth-biz/src/main/java/org/eco/vip/auth/domain/org/pojo/OrgVO.java

@@ -24,6 +24,7 @@ import org.eco.vip.orm.domain.BaseEntity;
 @EqualsAndHashCode(callSuper = true)
 @AutoMapper(target = Org.class, reverseConvertGenerate = false)
 public class OrgVO extends BaseEntity {
+
     /**
      * 部门ID
      */

+ 21 - 0
eco-nexus-core/auth-biz/src/main/java/org/eco/vip/auth/mapper/MenuMapper.java

@@ -0,0 +1,21 @@
+/*
+ * Copyright (c) 2025 GaoKunW
+ *
+ */
+
+package org.eco.vip.auth.mapper;
+
+
+import com.mybatisflex.core.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import org.eco.vip.auth.domain.menu.Menu;
+
+/**
+ * @description MenuMapper
+ *
+ * @author GaoKunW
+ * @date 2025/7/4 15:05
+ */
+@Mapper
+public interface MenuMapper extends BaseMapper<Menu> {
+}

+ 2 - 0
eco-nexus-core/auth-biz/src/main/java/org/eco/vip/auth/mapper/RolePermMapper.java

@@ -7,6 +7,7 @@ package org.eco.vip.auth.mapper;
 
 
 import com.mybatisflex.core.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
 import org.eco.vip.auth.domain.role.RolePerm;
 
 /**
@@ -15,5 +16,6 @@ import org.eco.vip.auth.domain.role.RolePerm;
  * @author GaoKunW
  * @date 2025/7/4 14:27
  */
+@Mapper
 public interface RolePermMapper extends BaseMapper<RolePerm> {
 }

+ 2 - 0
eco-nexus-core/auth-biz/src/main/java/org/eco/vip/auth/mapper/UserRoleMapper.java

@@ -7,6 +7,7 @@ package org.eco.vip.auth.mapper;
 
 
 import com.mybatisflex.core.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
 import org.eco.vip.auth.domain.user.UserRole;
 
 /**
@@ -15,5 +16,6 @@ import org.eco.vip.auth.domain.user.UserRole;
  * @author GaoKunW
  * @date 2025/7/4 14:27
  */
+@Mapper
 public interface UserRoleMapper extends BaseMapper<UserRole> {
 }

+ 16 - 0
eco-nexus-core/auth-biz/src/main/java/org/eco/vip/auth/service/menu/IMenuService.java

@@ -0,0 +1,16 @@
+/*
+ * Copyright (c) 2025 GaoKunW
+ *
+ */
+
+package org.eco.vip.auth.service.menu;
+
+
+/**
+ * @description IMenuService
+ *
+ * @author GaoKunW
+ * @date 2025/7/4 15:04
+ */
+public interface IMenuService {
+}

+ 16 - 0
eco-nexus-core/auth-biz/src/main/java/org/eco/vip/auth/service/menu/MenuService.java

@@ -0,0 +1,16 @@
+/*
+ * Copyright (c) 2025 GaoKunW
+ *
+ */
+
+package org.eco.vip.auth.service.menu;
+
+
+/**
+ * @description MenuService
+ *
+ * @author GaoKunW
+ * @date 2025/7/4 15:05
+ */
+public class MenuService {
+}

+ 37 - 0
eco-start/src/main/resources/db/mysql/V1_0_0_1__sys-init-ddl.sql

@@ -164,5 +164,42 @@ CREATE TABLE `system_role_perm_t`
     PRIMARY KEY (`role_id`, `perm_id`) USING BTREE
 ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '角色权限关系' ROW_FORMAT = Dynamic;
 
+
+-- ----------------------------
+-- Table structure for system_menu_t
+-- ----------------------------
+DROP TABLE IF EXISTS `system_menu_t`;
+CREATE TABLE `system_menu_t`
+(
+    `menu_id`        varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '唯一标识',
+    `parent_id`      varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '父id',
+    `title`          varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '标题',
+    `name`           varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '别名',
+    `code`           varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '编码',
+    `category`       varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '分类',
+    `module`         varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '模块',
+    `menu_type`      varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '菜单类型',
+    `path`           varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '路径',
+    `component`      varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '组件',
+    `icon`           varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '图标',
+    `color`          varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '颜色',
+    `visible`        varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '是否可见',
+    `display_layout` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '显示布局',
+    `keep_live`      varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '页签缓存',
+    `order_num`      int NULL DEFAULT NULL COMMENT '显示顺序',
+    `tenant_id`      varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '租户编号',
+    `status`         varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '状态(1正常 0停用)',
+    `version`        int NULL DEFAULT NULL COMMENT '乐观锁',
+    `del_flag`       varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '删除标志(1代表已删除 0代表存在)',
+    `create_by`      varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建者',
+    `create_time`    datetime NULL DEFAULT NULL COMMENT '创建时间',
+    `update_by`      varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '更新者',
+    `update_time`    datetime NULL DEFAULT NULL COMMENT '更新时间',
+    `remark`         varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
+    PRIMARY KEY (`menu_id`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '菜单' ROW_FORMAT = DYNAMIC;
+
+
+
 SET
 FOREIGN_KEY_CHECKS = 1;