Gaokun Wang 1 miesiąc temu
rodzic
commit
dab745d42a

+ 71 - 0
eco-common/com-orm/src/main/java/org/eco/vip/orm/domain/BaseBO.java

@@ -0,0 +1,71 @@
+/*
+ * Copyright (c) 2025 GaoKunW
+ *
+ */
+
+package org.eco.vip.orm.domain;
+
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @description 全局基础BO类
+ *
+ * @author GaoKunW
+ * @date 2025/7/2 14:30
+ */
+@Data
+public class BaseBO implements Serializable {
+
+    /**
+     * 租户编号
+     */
+    private String tenantId;
+
+    /**
+     * 乐观锁
+     */
+    private Integer version;
+
+    /**
+     * 删除逻辑字段(1已删除,0存在)
+     */
+    private String delFlag;
+
+    /**
+     * 状态(1有效,0失效)
+     */
+    private String status;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 创建者
+     */
+    private String createBy;
+
+    /**
+     * 创建时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date createTime;
+
+    /**
+     * 更新者
+     */
+    private String updateBy;
+
+    /**
+     * 更新时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date updateTime;
+
+}

+ 12 - 3
eco-nexus-core/auth-biz/src/main/java/org/eco/vip/auth/controller/org/OrgController.java

@@ -15,7 +15,12 @@ import org.eco.vip.auth.service.org.IOrgService;
 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.*;
+import org.springframework.web.bind.annotation.DeleteMapping;
+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;
 
@@ -41,8 +46,8 @@ public class OrgController {
     }
 
     @GetMapping("/list")
-    public CommonResult<PageResult<OrgVO>> list(OrgBO orgBO) {
-        return success(orgService.selectPage(orgBO));
+    public CommonResult<List<OrgVO>> list(OrgBO orgBO) {
+        return success(orgService.selectList(orgBO));
     }
 
     @PostMapping("/add")
@@ -64,6 +69,10 @@ public class OrgController {
 
     @PostMapping("/delete")
     public CommonResult<String> delete(@RequestBody @Valid @NotEmpty(message = "集合不能为空") List<String> orgIds) {
+        boolean result = orgService.delete(orgIds);
+        if (!result) {
+            return fail("删除组织失败!");
+        }
         return success();
     }
 

+ 75 - 0
eco-nexus-core/auth-biz/src/main/java/org/eco/vip/auth/controller/role/RoleController.java

@@ -0,0 +1,75 @@
+/*
+ * Copyright (c) 2025 GaoKunW
+ *
+ */
+
+package org.eco.vip.auth.controller.role;
+
+
+import jakarta.annotation.Resource;
+import jakarta.validation.Valid;
+import jakarta.validation.constraints.NotEmpty;
+import org.eco.vip.auth.domain.role.vo.RoleBO;
+import org.eco.vip.auth.domain.role.vo.RoleVO;
+import org.eco.vip.auth.service.role.IRoleService;
+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.DeleteMapping;
+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.fail;
+import static org.eco.vip.orm.pojo.CommonResult.success;
+
+/**
+ * @description RoleController
+ *
+ * @author GaoKunW
+ * @date 2025/7/2 14:28
+ */
+@RestController
+@RequestMapping("/system/role")
+@Validated
+public class RoleController {
+    @Resource
+    private IRoleService roleService;
+
+    @GetMapping("/page")
+    public CommonResult<PageResult<RoleVO>> page(RoleBO roleBO) {
+        return success(roleService.selectPage(roleBO));
+    }
+
+    @GetMapping("/list")
+    public CommonResult<List<RoleVO>> list(RoleBO roleBO) {
+        return success(roleService.selectList(roleBO));
+    }
+
+    @PostMapping("/add")
+    public CommonResult<String> add(@RequestBody @Valid RoleBO roleBO) {
+        boolean result = roleService.insert(roleBO);
+        if (!result) {
+            return fail("新增组织失败!");
+        }
+        return success();
+    }
+
+    @DeleteMapping("/edit")
+    public CommonResult<String> edit(@RequestBody @Valid RoleBO roleBO) {
+        return success();
+    }
+
+    @PostMapping("/delete")
+    public CommonResult<String> delete(@RequestBody @Valid @NotEmpty(message = "集合不能为空") List<String> ids) {
+        boolean result = roleService.delete(ids);
+        if (!result) {
+            return fail("删除组织失败!");
+        }
+        return success();
+    }
+}

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

@@ -12,7 +12,11 @@ import org.eco.vip.auth.domain.user.vo.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.web.bind.annotation.*;
+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;
 

+ 2 - 2
eco-nexus-core/auth-biz/src/main/java/org/eco/vip/auth/domain/org/vo/OrgBO.java

@@ -13,7 +13,7 @@ import jakarta.validation.constraints.NotNull;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import org.eco.vip.auth.domain.org.Org;
-import org.eco.vip.orm.domain.BaseEntity;
+import org.eco.vip.orm.domain.BaseBO;
 
 /**
  * @description OrgBO
@@ -24,7 +24,7 @@ import org.eco.vip.orm.domain.BaseEntity;
 @Data
 @EqualsAndHashCode(callSuper = true)
 @AutoMapper(target = Org.class, reverseConvertGenerate = false)
-public class OrgBO extends BaseEntity {
+public class OrgBO extends BaseBO {
 
     /**
      * 组织id

+ 56 - 0
eco-nexus-core/auth-biz/src/main/java/org/eco/vip/auth/domain/role/Role.java

@@ -0,0 +1,56 @@
+/*
+ * Copyright (c) 2025 GaoKunW
+ *
+ */
+
+package org.eco.vip.auth.domain.role;
+
+
+import com.mybatisflex.annotation.Id;
+import com.mybatisflex.annotation.Table;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.eco.vip.orm.domain.BaseEntity;
+
+/**
+ * @description Role
+ *
+ * @author GaoKunW
+ * @date 2025/7/2 14:29
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@Table("system_role_t")
+public class Role extends BaseEntity {
+
+    /**
+     * id
+     */
+    @Id
+    private String id;
+
+    /**
+     * 组织id
+     */
+    private String orgId;
+
+    /**
+     * 名称
+     */
+    private String name;
+
+    /**
+     * 编码
+     */
+    private String code;
+
+    /**
+     * 分类
+     */
+    private String category;
+
+    /**
+     * 显示顺序
+     */
+    private Integer orderNum;
+}

+ 61 - 0
eco-nexus-core/auth-biz/src/main/java/org/eco/vip/auth/domain/role/vo/RoleBO.java

@@ -0,0 +1,61 @@
+/*
+ * Copyright (c) 2025 GaoKunW
+ *
+ */
+
+package org.eco.vip.auth.domain.role.vo;
+
+
+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.role.Role;
+import org.eco.vip.orm.domain.BaseBO;
+
+/**
+ * @description RoleBO
+ *
+ * @author GaoKunW
+ * @date 2025/7/2 14:40
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@AutoMapper(target = Role.class, reverseConvertGenerate = false)
+public class RoleBO extends BaseBO {
+
+    /**
+     * id
+     */
+    private String id;
+
+    /**
+     * 组织id
+     */
+    private String orgId;
+
+    /**
+     * 名称
+     */
+    @NotBlank(message = "name不能为空")
+    private String name;
+
+    /**
+     * 编码
+     */
+    @NotBlank(message = "code不能为空")
+    private String code;
+
+    /**
+     * 分类
+     */
+    @NotBlank(message = "category不能为空")
+    private String category;
+
+    /**
+     * 显示顺序
+     */
+    @NotNull(message = "orderNum不能为空")
+    private Integer orderNum;
+}

+ 54 - 0
eco-nexus-core/auth-biz/src/main/java/org/eco/vip/auth/domain/role/vo/RoleVO.java

@@ -0,0 +1,54 @@
+/*
+ * Copyright (c) 2025 GaoKunW
+ *
+ */
+
+package org.eco.vip.auth.domain.role.vo;
+
+
+import io.github.linpeilie.annotations.AutoMapper;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.eco.vip.auth.domain.role.Role;
+import org.eco.vip.orm.domain.BaseEntity;
+
+/**
+ * @description RoleVO
+ *
+ * @author GaoKunW
+ * @date 2025/7/2 14:40
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@AutoMapper(target = Role.class, reverseConvertGenerate = false)
+public class RoleVO extends BaseEntity {
+    /**
+     * id
+     */
+    private String id;
+
+    /**
+     * 组织id
+     */
+    private String orgId;
+
+    /**
+     * 名称
+     */
+    private String name;
+
+    /**
+     * 编码
+     */
+    private String code;
+
+    /**
+     * 分类
+     */
+    private String category;
+
+    /**
+     * 显示顺序
+     */
+    private Integer orderNum;
+}

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

@@ -0,0 +1,22 @@
+/*
+ * 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.org.Org;
+import org.eco.vip.auth.domain.role.Role;
+
+/**
+ * @description OrgMapper
+ *
+ * @author GaoKunW
+ * @date 2025/3/10 21:00
+ */
+@Mapper
+public interface RoleMapper extends BaseMapper<Role> {
+}

+ 19 - 5
eco-nexus-core/auth-biz/src/main/java/org/eco/vip/auth/service/org/IOrgService.java

@@ -28,6 +28,13 @@ public interface IOrgService extends IBaseService<Org> {
      **/
     PageResult<OrgVO> selectPage(OrgBO orgBO);
 
+    /**
+     * @description: 查询
+     * @param orgBO 参数
+     * @return List<OrgVO>
+     **/
+    List<OrgVO> selectList(OrgBO orgBO);
+
     /**
      * @description: 新增
      * @param orgBO 参数
@@ -35,20 +42,27 @@ public interface IOrgService extends IBaseService<Org> {
      **/
     boolean insert(OrgBO orgBO);
 
+    /**
+     * @description: 更新
+     * @param orgBO 参数
+     * @return boolean 是否成功
+     **/
+    boolean update(OrgBO orgBO);
+
     /**
      * @description: 删除
-     * @param orgIds 组织id
+     * @param ids ids
      * @return boolean 是否成功
      **/
-    boolean delete(List<String> orgIds);
+    boolean delete(List<String> ids);
 
     /**
-     * 根据组织ID查询信息
+     * 根据ID查询信息
      *
-     * @param orgId 组织ID
+     * @param id ID
      * @return 组织信息
      */
-    OrgVO selectById(String orgId);
+    OrgVO selectById(String id);
 
     /**
      * 校验组织名称是否唯一

+ 21 - 4
eco-nexus-core/auth-biz/src/main/java/org/eco/vip/auth/service/org/OrgService.java

@@ -35,18 +35,30 @@ import static org.eco.vip.auth.domain.org.table.OrgTableDef.ORG;
  */
 @Service
 public class OrgService extends BaseService<OrgMapper, Org> implements IOrgService {
-    private QueryWrapper buildQueryWrapper() {
-        QueryWrapper queryWrapper = super.buildBaseQueryWrapper();
-        return queryWrapper;
+
+    private QueryWrapper buildQueryWrapper(OrgBO orgBO) {
+        return super.buildBaseQueryWrapper()
+                .and(ORG.ID.eq(orgBO.getOrgId()))
+                .and(ORG.CODE.eq(orgBO.getCode()))
+                .and(ORG.CATEGORY.eq(orgBO.getCategory()))
+                .and(ORG.NAME.eq(orgBO.getName()))
+                .and(ORG.STATUS.eq(orgBO.getStatus()))
+                .and(ORG.PARENT_ID.eq(orgBO.getParentId()));
     }
 
     @Override
     public PageResult<OrgVO> selectPage(OrgBO orgBO) {
-        QueryWrapper queryWrapper = buildQueryWrapper();
+        QueryWrapper queryWrapper = buildQueryWrapper(orgBO);
         Page<OrgVO> page = this.pageAs(PageQuery.build(), queryWrapper, OrgVO.class);
         return PageResult.build(page);
     }
 
+    @Override
+    public List<OrgVO> selectList(OrgBO orgBO) {
+        QueryWrapper queryWrapper = buildQueryWrapper(orgBO);
+        return this.listAs(queryWrapper, OrgVO.class);
+    }
+
     @Override
     public boolean insert(OrgBO orgBO) {
         OrgVO orgVO = selectById(orgBO.getParentId());
@@ -60,6 +72,11 @@ public class OrgService extends BaseService<OrgMapper, Org> implements IOrgServi
         return this.save(org);
     }
 
+    @Override
+    public boolean update(OrgBO orgBO) {
+        return false;
+    }
+
     @Override
     public boolean delete(List<String> orgIds) {
         return false;

+ 67 - 0
eco-nexus-core/auth-biz/src/main/java/org/eco/vip/auth/service/role/IRoleService.java

@@ -0,0 +1,67 @@
+/*
+ * Copyright (c) 2025 GaoKunW
+ *
+ */
+
+package org.eco.vip.auth.service.role;
+
+
+import org.eco.vip.auth.domain.role.Role;
+import org.eco.vip.auth.domain.role.vo.RoleBO;
+import org.eco.vip.auth.domain.role.vo.RoleVO;
+import org.eco.vip.orm.pojo.PageResult;
+import org.eco.vip.orm.service.IBaseService;
+
+import java.util.List;
+
+/**
+ * @description IRoleService
+ *
+ * @author GaoKunW
+ * @date 2025/7/2 14:30
+ */
+public interface IRoleService extends IBaseService<Role> {
+
+    /**
+     * @description: 分页查询
+     * @param roleBO 参数
+     * @return PageResult<RoleVO>
+     **/
+    PageResult<RoleVO> selectPage(RoleBO roleBO);
+
+    /**
+     * @description: 查询
+     * @param roleBO 参数
+     * @return List<OrgVO>
+     **/
+    List<RoleVO> selectList(RoleBO roleBO);
+
+    /**
+     * @description: 新增
+     * @param roleBO 参数
+     * @return boolean 是否成功
+     **/
+    boolean insert(RoleBO roleBO);
+
+    /**
+     * @description: 更新
+     * @param roleBO 参数
+     * @return boolean 是否成功
+     **/
+    boolean update(RoleBO roleBO);
+
+    /**
+     * @description: 删除
+     * @param ids ids
+     * @return boolean 是否成功
+     **/
+    boolean delete(List<String> ids);
+
+    /**
+     * 根据ID查询信息
+     *
+     * @param id ID
+     * @return 结果
+     */
+    RoleVO selectById(String id);
+}

+ 60 - 0
eco-nexus-core/auth-biz/src/main/java/org/eco/vip/auth/service/role/RoleService.java

@@ -0,0 +1,60 @@
+/*
+ * Copyright (c) 2025 GaoKunW
+ *
+ */
+
+package org.eco.vip.auth.service.role;
+
+
+import lombok.extern.slf4j.Slf4j;
+import org.eco.vip.auth.domain.role.Role;
+import org.eco.vip.auth.domain.role.vo.RoleBO;
+import org.eco.vip.auth.domain.role.vo.RoleVO;
+import org.eco.vip.auth.mapper.RoleMapper;
+import org.eco.vip.orm.pojo.PageResult;
+import org.eco.vip.orm.service.BaseService;
+import org.eco.vip.orm.utils.MapstructUtils;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * @description RoleService
+ *
+ * @author GaoKunW
+ * @date 2025/7/2 14:30
+ */
+@Service
+@Slf4j
+public class RoleService extends BaseService<RoleMapper, Role> implements IRoleService {
+    @Override
+    public PageResult<RoleVO> selectPage(RoleBO roleBO) {
+        return null;
+    }
+
+    @Override
+    public List<RoleVO> selectList(RoleBO roleBO) {
+        return List.of();
+    }
+
+    @Override
+    public boolean insert(RoleBO roleBO) {
+        Role role = MapstructUtils.convert(roleBO, Role.class);
+        return this.save(role);
+    }
+
+    @Override
+    public boolean update(RoleBO roleBO) {
+        return false;
+    }
+
+    @Override
+    public boolean delete(List<String> ids) {
+        return false;
+    }
+
+    @Override
+    public RoleVO selectById(String id) {
+        return null;
+    }
+}

+ 74 - 52
eco-start/src/main/resources/db/mysql/V1_0_0_1__sys-init-ddl.sql

@@ -1,54 +1,76 @@
-drop table if exists system_user_t;
-create table system_user_t
+/*
+ Navicat Premium Data Transfer
+
+ Source Server         : local
+ Source Server Type    : MySQL
+ Source Server Version : 80041
+ Source Host           : localhost:3306
+ Source Schema         : eco-boot
+
+ Target Server Type    : MySQL
+ Target Server Version : 80041
+ File Encoding         : 65001
+
+ Date: 02/07/2025 14:19:37
+*/
+
+SET NAMES utf8mb4;
+SET
+FOREIGN_KEY_CHECKS = 0;
+
+-- ----------------------------
+-- Table structure for system_org_t
+-- ----------------------------
+DROP TABLE IF EXISTS `system_org_t`;
+CREATE TABLE `system_org_t`
 (
-    id           varchar(20) not null comment '唯一标识'
-        primary key,
-    org_id      varchar(20) not null comment '组织ID',
-    account      varchar(50) null comment '用户账号',
-    user_name    varchar(50) null comment '用户姓名',
-    nick_name    varchar(50) null comment '用户昵称',
-    user_type    varchar(30) null comment '用户类型(system系统用户)',
-    email        varchar(50) null comment '用户邮箱',
-    phone_number varchar(11) null comment '手机号码',
-    gender       varchar(20) null comment '用户性别(0男 1女 2未知)',
-    avatar       longtext null comment '头像地址',
-    password     varchar(255) null comment '密码',
-    login_ip     varchar(128) null comment '最后登陆IP',
-    login_date   datetime null comment '最后登陆时间',
-    tenant_id    varchar(20) null comment '租户编号',
-    status       varchar(20) null comment '帐号状态(1正常 0停用)',
-    version      int null comment '乐观锁',
-    del_flag     varchar(20) null comment '删除标志(1代表已删除 0代表存在)',
-    create_by    varchar(20) null comment '创建者',
-    create_time  datetime null comment '创建时间',
-    update_by    varchar(20) null comment '更新者',
-    update_time  datetime null comment '更新时间',
-    remark       varchar(1000)      null comment '备注'
-) comment '用户信息表' collate = utf8mb4_bin
-                         row_format = DYNAMIC;
-
-
-drop table if exists system_org_t;
-create table system_org_t
+    `id`          varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT '唯一标识',
+    `parent_id`   varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '父组织ID',
+    `name`        varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '组织名称',
+    `code`        varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '组织编码',
+    `category`    varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '类别',
+    `order_num`   int NULL DEFAULT NULL COMMENT '显示顺序',
+    `leader_id`   varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '负责人',
+    `phone`       varchar(11) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '联系电话',
+    `email`       varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '邮箱',
+    `tenant_id`   varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '租户编号',
+    `status`      varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '帐号状态(1正常 0停用)',
+    `version`     int NULL DEFAULT NULL COMMENT '乐观锁',
+    `del_flag`    varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '删除标志(1代表已删除 0代表存在)',
+    `create_by`   varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '创建者',
+    `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
+    `update_by`   varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '更新者',
+    `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
+    `remark`      varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '备注',
+    PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '部门表' ROW_FORMAT = DYNAMIC;
+
+
+
+-- ----------------------------
+-- Table structure for system_role_t
+-- ----------------------------
+DROP TABLE IF EXISTS `system_role_t`;
+CREATE TABLE `system_role_t`
 (
-    id          varchar(20) not null comment '唯一标识'
-        primary key,
-    parent_id   varchar(20) null comment '父组织ID',
-    name   varchar(255) null comment '组织名称',
-    code   varchar(255) null comment '组织编码',
-    category   varchar(255) null comment '类别',
-    order_num   int null comment '显示顺序',
-    leader_id   varchar(20) null comment '负责人',
-    phone       varchar(11) null comment '联系电话',
-    email       varchar(50) null comment '邮箱',
-    tenant_id   varchar(20) null comment '租户编号',
-    status      varchar(20) null comment '帐号状态(1正常 0停用)',
-    version     int null comment '乐观锁',
-    del_flag    varchar(20) null comment '删除标志(1代表已删除 0代表存在)',
-    create_by   varchar(20) null comment '创建者',
-    create_time datetime null comment '创建时间',
-    update_by   varchar(20) null comment '更新者',
-    update_time datetime null comment '更新时间',
-    remark      varchar(1000)      null comment '备注'
-) comment '部门表' collate = utf8mb4_bin
-                     row_format = DYNAMIC;
+    `id`          varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
+    `org_id`      varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '组织id',
+    `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 '分类',
+    `order_num`   int NULL DEFAULT NULL COMMENT '显示顺序',
+    `tenant_id`   varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '租户编号',
+    `status`      varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '帐号状态(1正常 0停用)',
+    `version`     int NULL DEFAULT NULL COMMENT '乐观锁',
+    `del_flag`    varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '删除标志(1代表已删除 0代表存在)',
+    `create_by`   varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '创建者',
+    `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
+    `update_by`   varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '更新者',
+    `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
+    `remark`      varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '备注',
+    PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '角色表' ROW_FORMAT = DYNAMIC;
+
+
+SET
+FOREIGN_KEY_CHECKS = 1;