Ver código fonte

添加种子数据模块

Yue 2 anos atrás
pai
commit
02f309f559
98 arquivos alterados com 3148 adições e 152 exclusões
  1. 8 1
      pom.xml
  2. 3 4
      sql/SysBase_20230223.sql
  3. 13 0
      vber-common/src/main/java/com/vber/common/core/domain/entity/SysUser.java
  4. 109 0
      vber-data-seeder/pom.xml
  5. 28 0
      vber-data-seeder/src/main/java/com/vber/DataSeederApplication.java
  6. 14 0
      vber-data-seeder/src/main/java/com/vber/DataSeederServletInitializer.java
  7. 45 0
      vber-data-seeder/src/main/java/com/vber/dataSeeder/DataSeederRunner.java
  8. 57 0
      vber-data-seeder/src/main/java/com/vber/dataSeeder/config/DefaultConfigCreator.java
  9. 29 0
      vber-data-seeder/src/main/java/com/vber/dataSeeder/core/config/ApplicationConfig.java
  10. 113 0
      vber-data-seeder/src/main/java/com/vber/dataSeeder/core/config/DsDruidConfig.java
  11. 70 0
      vber-data-seeder/src/main/java/com/vber/dataSeeder/core/config/DsSecurityConfig.java
  12. 131 0
      vber-data-seeder/src/main/java/com/vber/dataSeeder/core/config/MyBatisConfig.java
  13. 87 0
      vber-data-seeder/src/main/java/com/vber/dataSeeder/core/config/properties/DruidProperties.java
  14. 68 0
      vber-data-seeder/src/main/java/com/vber/dataSeeder/core/config/properties/PermitAllUrlProperties.java
  15. 25 0
      vber-data-seeder/src/main/java/com/vber/dataSeeder/core/datasource/DynamicDataSource.java
  16. 43 0
      vber-data-seeder/src/main/java/com/vber/dataSeeder/core/datasource/DynamicDataSourceContextHolder.java
  17. 121 0
      vber-data-seeder/src/main/java/com/vber/dataSeeder/dict/DefaultDictCreator.java
  18. 13 0
      vber-data-seeder/src/main/java/com/vber/dataSeeder/mapper/DsConfigMapper.java
  19. 13 0
      vber-data-seeder/src/main/java/com/vber/dataSeeder/mapper/DsDeptMapper.java
  20. 16 0
      vber-data-seeder/src/main/java/com/vber/dataSeeder/mapper/DsDictMapper.java
  21. 34 0
      vber-data-seeder/src/main/java/com/vber/dataSeeder/mapper/DsMenuMapper.java
  22. 13 0
      vber-data-seeder/src/main/java/com/vber/dataSeeder/mapper/DsPostMapper.java
  23. 12 0
      vber-data-seeder/src/main/java/com/vber/dataSeeder/mapper/DsTableMapper.java
  24. 36 0
      vber-data-seeder/src/main/java/com/vber/dataSeeder/mapper/DsUserRoleMapper.java
  25. 452 0
      vber-data-seeder/src/main/java/com/vber/dataSeeder/menu/DefaultMenuCreator.java
  26. 51 0
      vber-data-seeder/src/main/java/com/vber/dataSeeder/table/BuildTables.java
  27. 276 0
      vber-data-seeder/src/main/java/com/vber/dataSeeder/user/DefaultUserRoleCreator.java
  28. 1 0
      vber-data-seeder/src/main/resources/META-INF/spring-devtools.properties
  29. 184 0
      vber-data-seeder/src/main/resources/application.yml
  30. 27 0
      vber-data-seeder/src/main/resources/logback.xml
  31. 34 0
      vber-data-seeder/src/main/resources/mapper/DsConfigMapper.xml
  32. 84 0
      vber-data-seeder/src/main/resources/mapper/DsDeptMapper.xml
  33. 70 0
      vber-data-seeder/src/main/resources/mapper/DsDictMapper.xml
  34. 116 0
      vber-data-seeder/src/main/resources/mapper/DsMenuMapper.xml
  35. 66 0
      vber-data-seeder/src/main/resources/mapper/DsPostMapper.xml
  36. 254 0
      vber-data-seeder/src/main/resources/mapper/DsTableMapper.xml
  37. 219 0
      vber-data-seeder/src/main/resources/mapper/DsUserRoleMapper.xml
  38. 24 0
      vber-data-seeder/src/main/resources/mybatis/mybatis-config.xml
  39. 24 0
      vber-domain-entity/pom.xml
  40. 1 1
      vber-domain-entity/src/main/java/com/vber/system/SysCache.java
  41. 1 1
      vber-domain-entity/src/main/java/com/vber/system/SysConfig.java
  42. 1 1
      vber-domain-entity/src/main/java/com/vber/system/SysLogininfor.java
  43. 1 1
      vber-domain-entity/src/main/java/com/vber/system/SysNotice.java
  44. 1 1
      vber-domain-entity/src/main/java/com/vber/system/SysOperLog.java
  45. 1 1
      vber-domain-entity/src/main/java/com/vber/system/SysOrder.java
  46. 1 1
      vber-domain-entity/src/main/java/com/vber/system/SysPost.java
  47. 1 1
      vber-domain-entity/src/main/java/com/vber/system/SysRoleDept.java
  48. 9 1
      vber-domain-entity/src/main/java/com/vber/system/SysRoleMenu.java
  49. 1 1
      vber-domain-entity/src/main/java/com/vber/system/SysUserOnline.java
  50. 9 1
      vber-domain-entity/src/main/java/com/vber/system/SysUserPost.java
  51. 9 1
      vber-domain-entity/src/main/java/com/vber/system/SysUserRole.java
  52. 1 1
      vber-domain-entity/src/main/java/com/vber/system/TestUser.java
  53. 4 0
      vber-domain-entity/src/main/resources/mybatis/mybatis-config.xml
  54. 1 1
      vber-framework/src/main/java/com/vber/framework/aspectj/LogAspect.java
  55. 2 2
      vber-framework/src/main/java/com/vber/framework/manager/factory/AsyncFactory.java
  56. 0 5
      vber-generator-web/pom.xml
  57. 2 2
      vber-generator/src/main/java/com/vber/generator/permission/PermissionNameGeneratorImpl.java
  58. 2 4
      vber-system/pom.xml
  59. 3 1
      vber-system/src/main/java/com/vber/system/mapper/SysConfigMapper.java
  60. 1 1
      vber-system/src/main/java/com/vber/system/mapper/SysLogininforMapper.java
  61. 1 1
      vber-system/src/main/java/com/vber/system/mapper/SysNoticeMapper.java
  62. 1 1
      vber-system/src/main/java/com/vber/system/mapper/SysOperLogMapper.java
  63. 1 1
      vber-system/src/main/java/com/vber/system/mapper/SysOrderMapper.java
  64. 1 1
      vber-system/src/main/java/com/vber/system/mapper/SysPostMapper.java
  65. 1 1
      vber-system/src/main/java/com/vber/system/mapper/SysRoleDeptMapper.java
  66. 1 1
      vber-system/src/main/java/com/vber/system/mapper/SysRoleMenuMapper.java
  67. 1 1
      vber-system/src/main/java/com/vber/system/mapper/SysUserPostMapper.java
  68. 1 1
      vber-system/src/main/java/com/vber/system/mapper/SysUserRoleMapper.java
  69. 1 1
      vber-system/src/main/java/com/vber/system/mapper/TestUserMapper.java
  70. 67 55
      vber-system/src/main/java/com/vber/system/permissions/permissionName.java
  71. 1 1
      vber-system/src/main/java/com/vber/system/service/ISysConfigService.java
  72. 1 1
      vber-system/src/main/java/com/vber/system/service/ISysLogininforService.java
  73. 1 1
      vber-system/src/main/java/com/vber/system/service/ISysNoticeService.java
  74. 1 1
      vber-system/src/main/java/com/vber/system/service/ISysOperLogService.java
  75. 1 1
      vber-system/src/main/java/com/vber/system/service/ISysOrderService.java
  76. 1 1
      vber-system/src/main/java/com/vber/system/service/ISysPostService.java
  77. 1 1
      vber-system/src/main/java/com/vber/system/service/ISysRoleService.java
  78. 1 1
      vber-system/src/main/java/com/vber/system/service/ISysUserOnlineService.java
  79. 1 1
      vber-system/src/main/java/com/vber/system/service/impl/SysConfigServiceImpl.java
  80. 1 3
      vber-system/src/main/java/com/vber/system/service/impl/SysLogininforServiceImpl.java
  81. 1 3
      vber-system/src/main/java/com/vber/system/service/impl/SysNoticeServiceImpl.java
  82. 1 3
      vber-system/src/main/java/com/vber/system/service/impl/SysOperLogServiceImpl.java
  83. 1 1
      vber-system/src/main/java/com/vber/system/service/impl/SysOrderServiceImpl.java
  84. 1 3
      vber-system/src/main/java/com/vber/system/service/impl/SysPostServiceImpl.java
  85. 3 5
      vber-system/src/main/java/com/vber/system/service/impl/SysRoleServiceImpl.java
  86. 1 3
      vber-system/src/main/java/com/vber/system/service/impl/SysUserOnlineServiceImpl.java
  87. 3 5
      vber-system/src/main/java/com/vber/system/service/impl/SysUserServiceImpl.java
  88. 6 6
      vber-system/src/main/resources/mapper/system/SysMenuMapper.xml
  89. 1 1
      vber-web/src/main/java/com/vber/web/controller/monitor/CacheController.java
  90. 1 1
      vber-web/src/main/java/com/vber/web/controller/monitor/SysLogininforController.java
  91. 1 1
      vber-web/src/main/java/com/vber/web/controller/monitor/SysOperlogController.java
  92. 1 1
      vber-web/src/main/java/com/vber/web/controller/monitor/SysUserOnlineController.java
  93. 1 2
      vber-web/src/main/java/com/vber/web/controller/system/SysConfigController.java
  94. 1 1
      vber-web/src/main/java/com/vber/web/controller/system/SysNoticeController.java
  95. 1 1
      vber-web/src/main/java/com/vber/web/controller/system/SysOrderController.java
  96. 1 1
      vber-web/src/main/java/com/vber/web/controller/system/SysPostController.java
  97. 1 1
      vber-web/src/main/java/com/vber/web/controller/system/SysRoleController.java
  98. 1 3
      vber-web/src/main/java/com/vber/web/controller/system/TestUserController.java

+ 8 - 1
pom.xml

@@ -10,12 +10,14 @@
     <packaging>pom</packaging>
     <modules>
         <module>vber-common</module>
+        <module>vber-domain-entity</module>
         <module>vber-system</module>
         <module>vber-framework</module>
         <module>vber-quartz</module>
         <module>vber-generator</module>
         <module>vber-generator-web</module>
         <module>vber-web</module>
+        <module>vber-data-seeder</module>
     </modules>
 
     <properties>
@@ -182,7 +184,12 @@
                 <artifactId>vber-system</artifactId>
                 <version>${vber.version}</version>
             </dependency>
-
+            <!-- 系统模块-->
+            <dependency>
+                <groupId>com.vber</groupId>
+                <artifactId>vber-domain-entity</artifactId>
+                <version>${vber.version}</version>
+            </dependency>
             <!-- 通用工具-->
             <dependency>
                 <groupId>com.vber</groupId>

+ 3 - 4
sql/SysBase_20230223.sql

@@ -44,7 +44,7 @@ create table sys_user (
   dept_id           bigint(20)      default null               comment '部门ID',
   user_name         varchar(30)     not null                   comment '用户账号',
   nick_name         varchar(30)     not null                   comment '用户昵称',
-  user_type         varchar(2)      default '00'               comment '用户类型(00系统用户)',
+  user_type         int(2)          default 0                  comment '用户类型(0系统用户,1普通用户)',
   email             varchar(50)     default ''                 comment '用户邮箱',
   phonenumber       varchar(11)     default ''                 comment '手机号码',
   sex               char(1)         default '0'                comment '用户性别(0男 1女 2未知)',
@@ -146,8 +146,8 @@ create table sys_menu (
   status            char(1)         default 0                  comment '菜单状态(0正常 1停用)',
   perms             varchar(100)    default null               comment '权限标识',
   icon              varchar(100)    default '#'                comment '菜单图标',
-  btnClass          varchar(100)    default 'btn btn-light-primary'  comment '按钮样式',
-  btnScript         varchar(100)    default ''                 comment '按钮事件',
+  btn_class          varchar(100)    default 'btn btn-light-primary'  comment '按钮样式',
+  btn_script         varchar(100)    default ''                 comment '按钮事件',
   create_by         varchar(64)     default ''                 comment '创建者',
   create_time       datetime                                   comment '创建时间',
   update_by         varchar(64)     default ''                 comment '更新者',
@@ -398,7 +398,6 @@ insert into sys_role_dept values ('2', '100');
 insert into sys_role_dept values ('2', '101');
 insert into sys_role_dept values ('2', '105');
 
-
 -- ----------------------------
 -- 9、用户与岗位关联表  用户1-N岗位
 -- ----------------------------

+ 13 - 0
vber-common/src/main/java/com/vber/common/core/domain/entity/SysUser.java

@@ -38,10 +38,23 @@ public class SysUser extends BaseEntity
     @Excel(name = "用户名称")
     private String nickName;
 
+    public int getUserType() {
+        return userType;
+    }
+
+    public void setUserType(int userType) {
+        this.userType = userType;
+    }
+
+    /** 用户类型 */
+    @Excel(name = "用户类型", readConverterExp = "0=系统用户,1=普通用户")
+    private int userType;
+
     /** 用户邮箱 */
     @Excel(name = "用户邮箱")
     private String email;
 
+
     /** 手机号码 */
     @Excel(name = "手机号码")
     private String phonenumber;

+ 109 - 0
vber-data-seeder/pom.xml

@@ -0,0 +1,109 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>com.vber</groupId>
+        <artifactId>VberAdmin</artifactId>
+        <version>1.0.0</version>
+    </parent>
+
+    <artifactId>vber-data-seeder</artifactId>
+
+    <dependencies>
+        <!-- spring-boot-devtools -->
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-devtools</artifactId>
+            <optional>true</optional> <!-- 表示依赖不会传递 -->
+        </dependency>
+        <!-- swagger3-->
+        <dependency>
+            <groupId>io.springfox</groupId>
+            <artifactId>springfox-boot-starter</artifactId>
+        </dependency>
+        <!-- 防止进入swagger页面报类型转换错误,排除3.0.0中的引用,手动增加1.6.2版本 -->
+        <dependency>
+            <groupId>io.swagger</groupId>
+            <artifactId>swagger-models</artifactId>
+            <version>1.6.2</version>
+        </dependency>
+        <!-- Mysql驱动包 -->
+        <dependency>
+            <groupId>mysql</groupId>
+            <artifactId>mysql-connector-java</artifactId>
+        </dependency>
+        <!-- SpringBoot Web容器 -->
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+        </dependency>
+        <!-- SpringBoot 拦截器 -->
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-aop</artifactId>
+        </dependency>
+        <!-- 阿里数据库连接池 -->
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>druid-spring-boot-starter</artifactId>
+        </dependency>
+        <!-- 验证码 -->
+        <dependency>
+            <groupId>pro.fessional</groupId>
+            <artifactId>kaptcha</artifactId>
+            <exclusions>
+                <exclusion>
+                    <artifactId>javax.servlet-api</artifactId>
+                    <groupId>javax.servlet</groupId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <!-- 获取系统信息 -->
+        <dependency>
+            <groupId>com.github.oshi</groupId>
+            <artifactId>oshi-core</artifactId>
+        </dependency>
+        <!-- 代码生成-->
+        <dependency>
+            <groupId>com.vber</groupId>
+            <artifactId>vber-domain-entity</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok</artifactId>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+                <version>2.1.1.RELEASE</version>
+                <configuration>
+                    <fork>true</fork> <!-- 如果没有该配置,devtools不会生效 -->
+                </configuration>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>repackage</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-war-plugin</artifactId>
+                <version>3.1.0</version>
+                <configuration>
+                    <failOnMissingWebXml>false</failOnMissingWebXml>
+                    <warName>${project.artifactId}</warName>
+                </configuration>
+            </plugin>
+        </plugins>
+        <finalName>${project.artifactId}</finalName>
+    </build>
+
+</project>

+ 28 - 0
vber-data-seeder/src/main/java/com/vber/DataSeederApplication.java

@@ -0,0 +1,28 @@
+package com.vber;
+
+import com.vber.dataSeeder.DataSeederRunner;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.CommandLineRunner;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
+
+@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})
+public class DataSeederApplication implements CommandLineRunner {
+
+    @Autowired
+    private DataSeederRunner DsRunner;
+    public static void main(String[] args) {
+        System.out.println("开始运行");
+        SpringApplication.run(DataSeederApplication.class, args);
+        System.out.println("运行结束");
+        System.exit(0);
+    }
+
+    @Override
+    public void run(String... args) throws Exception {
+        System.out.println("程序启动入口");
+        DsRunner.Run();
+    }
+
+}

+ 14 - 0
vber-data-seeder/src/main/java/com/vber/DataSeederServletInitializer.java

@@ -0,0 +1,14 @@
+package com.vber;
+
+import org.springframework.boot.builder.SpringApplicationBuilder;
+import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
+
+/**
+ * web容器中进行部署
+ */
+public class DataSeederServletInitializer extends SpringBootServletInitializer {
+    @Override
+    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
+        return application.sources(DataSeederApplication.class);
+    }
+}

+ 45 - 0
vber-data-seeder/src/main/java/com/vber/dataSeeder/DataSeederRunner.java

@@ -0,0 +1,45 @@
+package com.vber.dataSeeder;
+
+import com.vber.common.utils.StringUtils;
+import com.vber.dataSeeder.config.DefaultConfigCreator;
+import com.vber.dataSeeder.dict.DefaultDictCreator;
+import com.vber.dataSeeder.menu.DefaultMenuCreator;
+import com.vber.dataSeeder.table.BuildTables;
+import com.vber.dataSeeder.user.DefaultUserRoleCreator;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+@Component
+@Slf4j
+public class DataSeederRunner {
+    private final BuildTables   buildTables;
+    private final DefaultConfigCreator configCreator;
+    private final DefaultDictCreator dictCreator;
+
+    private final DefaultUserRoleCreator userRoleCreator;
+    private final DefaultMenuCreator menuCreator;
+
+    public DataSeederRunner(BuildTables buildTables,
+                            DefaultConfigCreator configCreator,
+                            DefaultDictCreator dictCreator,
+                            DefaultUserRoleCreator userRoleCreator,
+                            DefaultMenuCreator menuCreator) {
+        this.buildTables = buildTables;
+        this.configCreator = configCreator;
+        this.dictCreator = dictCreator;
+        this.userRoleCreator = userRoleCreator;
+        this.menuCreator = menuCreator;
+    }
+
+    public void Run(){
+        log.debug(StringUtils.format("-- START -- {}", DataSeederRunner.class));
+
+//        buildTables.build();
+//        configCreator.create();
+//        dictCreator.create();
+//        menuCreator.create(true);
+//        userRoleCreator.create();
+
+        log.debug(StringUtils.format("--  END  -- {}",  DataSeederRunner.class));
+    }
+}

+ 57 - 0
vber-data-seeder/src/main/java/com/vber/dataSeeder/config/DefaultConfigCreator.java

@@ -0,0 +1,57 @@
+package com.vber.dataSeeder.config;
+
+import com.vber.common.utils.StringUtils;
+import com.vber.dataSeeder.mapper.DsConfigMapper;
+import com.vber.dataSeeder.mapper.DsTableMapper;
+import com.vber.system.SysConfig;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+
+@Component
+@Slf4j
+public class DefaultConfigCreator {
+    private Long ConfigId = 0L;
+    private DsConfigMapper dsConfigMapper;
+    private DsTableMapper tableMapper;
+
+    public DefaultConfigCreator(DsConfigMapper dsConfigMapper) {
+        this.dsConfigMapper = dsConfigMapper;
+    }
+
+    public void create(){
+        log.debug(StringUtils.format("-- START -- {}", DefaultConfigCreator.class));
+
+        ConfigId = 0L;
+
+        createConfig("用户管理-账号初始密码","sys.user.initPassword","123qwe","初始化密码 123qwe");
+        createConfig("账号自助-验证码开关","sys.account.captchaEnabled","true","是否开启验证码功能(true开启,false关闭)");
+        createConfig("账号自助-是否开启用户注册功能","sys.account.registerUser","false","是否开启注册用户功能(true开启,false关闭)");
+        createConfig("用户登录-黑名单列表","sys.login.blackIPList","","设置登录IP黑名单限制,多个匹配项以;分隔,支持匹配(*通配、网段)");
+
+        log.debug(StringUtils.format("-- END -- {}", DefaultConfigCreator.class));
+    }
+
+    private SysConfig createConfig(String name, String key, String  value,String remark ){
+        return  createConfig(name,key,value,remark,true);
+
+    }
+    private SysConfig createConfig(String name, String key, String  value,String remark,boolean isSystem ){
+        ConfigId++;
+        SysConfig config=new SysConfig();
+        config.setConfigId(ConfigId);
+        config.setConfigName(name);
+        config.setConfigKey(key);
+        config.setConfigValue(value);
+        config.setConfigType(isSystem?"Y":"N");
+        config.setCreateBy("admin");
+        config.setCreateTime(new Date());
+        config.setUpdateBy("");
+        config.setUpdateTime(null);
+        config.setRemark(remark);
+        dsConfigMapper.insertConfig(config);
+        return config;
+    }
+
+}

+ 29 - 0
vber-data-seeder/src/main/java/com/vber/dataSeeder/core/config/ApplicationConfig.java

@@ -0,0 +1,29 @@
+package com.vber.dataSeeder.core.config;
+
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.boot.autoconfigure.jackson.Jackson2ObjectMapperBuilderCustomizer;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.EnableAspectJAutoProxy;
+
+import java.util.TimeZone;
+
+/**
+ * 程序注解配置
+ */
+@Configuration
+// 表示通过aop框架暴露该代理对象,AopContext能够访问
+@EnableAspectJAutoProxy(exposeProxy = true)
+// 指定要扫描的Mapper类的包的路径
+@MapperScan("com.vber.**.mapper")
+public class ApplicationConfig
+{
+    /**
+     * 时区配置
+     */
+    @Bean
+    public Jackson2ObjectMapperBuilderCustomizer jacksonObjectMapperCustomization()
+    {
+        return jacksonObjectMapperBuilder -> jacksonObjectMapperBuilder.timeZone(TimeZone.getDefault());
+    }
+}

+ 113 - 0
vber-data-seeder/src/main/java/com/vber/dataSeeder/core/config/DsDruidConfig.java

@@ -0,0 +1,113 @@
+package com.vber.dataSeeder.core.config;
+
+import com.alibaba.druid.pool.DruidDataSource;
+import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceBuilder;
+import com.alibaba.druid.spring.boot.autoconfigure.properties.DruidStatProperties;
+import com.alibaba.druid.util.Utils;
+import com.vber.common.enums.DataSourceType;
+import com.vber.common.utils.spring.SpringUtils;
+import com.vber.dataSeeder.core.config.properties.DruidProperties;
+import com.vber.dataSeeder.core.datasource.DynamicDataSource;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.boot.web.servlet.FilterRegistrationBean;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Primary;
+
+import javax.servlet.*;
+import javax.sql.DataSource;
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * druid 配置多数据源
+ */
+@Configuration
+public class DsDruidConfig
+{
+    @Bean
+    @ConfigurationProperties("spring.datasource.druid.master")
+    public DataSource masterDataSource(DruidProperties druidProperties)
+    {
+        DruidDataSource dataSource = DruidDataSourceBuilder.create().build();
+        return druidProperties.dataSource(dataSource);
+    }
+
+
+
+    @Bean(name = "dynamicDataSource")
+    @Primary
+    public DynamicDataSource dataSource(DataSource masterDataSource)
+    {
+        Map<Object, Object> targetDataSources = new HashMap<>();
+        targetDataSources.put(DataSourceType.MASTER.name(), masterDataSource);
+        return new DynamicDataSource(masterDataSource, targetDataSources);
+    }
+    
+    /**
+     * 设置数据源
+     * 
+     * @param targetDataSources 备选数据源集合
+     * @param sourceName 数据源名称
+     * @param beanName bean名称
+     */
+    public void setDataSource(Map<Object, Object> targetDataSources, String sourceName, String beanName)
+    {
+        try
+        {
+            DataSource dataSource = SpringUtils.getBean(beanName);
+            targetDataSources.put(sourceName, dataSource);
+        }
+        catch (Exception e)
+        {
+        }
+    }
+
+    /**
+     * 去除监控页面底部的广告
+     */
+    @SuppressWarnings({ "rawtypes", "unchecked" })
+    @Bean
+    @ConditionalOnProperty(name = "spring.datasource.druid.statViewServlet.enabled", havingValue = "true")
+    public FilterRegistrationBean removeDruidFilterRegistrationBean(DruidStatProperties properties)
+    {
+        // 获取web监控页面的参数
+        DruidStatProperties.StatViewServlet config = properties.getStatViewServlet();
+        // 提取common.js的配置路径
+        String pattern = config.getUrlPattern() != null ? config.getUrlPattern() : "/druid/*";
+        String commonJsPattern = pattern.replaceAll("\\*", "js/common.js");
+        final String filePath = "support/http/resources/js/common.js";
+        // 创建filter进行过滤
+        Filter filter = new Filter()
+        {
+            @Override
+            public void init(FilterConfig filterConfig) throws ServletException
+            {
+            }
+            @Override
+            public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
+                    throws IOException, ServletException
+            {
+                chain.doFilter(request, response);
+                // 重置缓冲区,响应头不会被重置
+                response.resetBuffer();
+                // 获取common.js
+                String text = Utils.readFromResource(filePath);
+                // 正则替换banner, 除去底部的广告信息
+                text = text.replaceAll("<a.*?banner\"></a><br/>", "");
+                text = text.replaceAll("powered.*?shrek.wang</a>", "");
+                response.getWriter().write(text);
+            }
+            @Override
+            public void destroy()
+            {
+            }
+        };
+        FilterRegistrationBean registrationBean = new FilterRegistrationBean();
+        registrationBean.setFilter(filter);
+        registrationBean.addUrlPatterns(commonJsPattern);
+        return registrationBean;
+    }
+}

+ 70 - 0
vber-data-seeder/src/main/java/com/vber/dataSeeder/core/config/DsSecurityConfig.java

@@ -0,0 +1,70 @@
+package com.vber.dataSeeder.core.config;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.http.HttpMethod;
+import org.springframework.security.authentication.AuthenticationManager;
+import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
+import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity;
+import org.springframework.security.config.annotation.web.builders.HttpSecurity;
+import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
+import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
+
+@EnableGlobalMethodSecurity(prePostEnabled = true, securedEnabled = true)
+public class DsSecurityConfig extends WebSecurityConfigurerAdapter {
+
+    /**
+     * 解决 无法直接注入 AuthenticationManager
+     *
+     * @return
+     * @throws Exception
+     */
+    @Bean
+    @Override
+    public AuthenticationManager authenticationManagerBean() throws Exception
+    {
+        return super.authenticationManagerBean();
+    }
+    /**
+     * 强散列哈希加密实现
+     */
+    @Bean
+    public BCryptPasswordEncoder bCryptPasswordEncoder()
+    {
+        return new BCryptPasswordEncoder();
+    }
+
+    /**
+     * 身份认证接口
+     */
+    @Override
+    protected void configure(AuthenticationManagerBuilder auth) throws Exception
+    {
+        auth
+                .inMemoryAuthentication()
+                .withUser("admin").password("admin").roles("ADMIN");
+
+    }
+    @Override
+    protected void configure(HttpSecurity httpSecurity) throws Exception
+    {
+        httpSecurity
+                // CSRF禁用,因为不使用session
+                .csrf().disable()
+                // 禁用HTTP响应标头
+                .headers().cacheControl().disable().and()
+                // 过滤请求
+                .authorizeRequests()
+                // 对于登录login 注册register 验证码captchaImage 允许匿名访问
+                .antMatchers("/login", "/register", "/captchaImage").permitAll()
+                // 静态资源,可匿名访问
+                .antMatchers(HttpMethod.GET, "/", "/*.html", "/**/*.html", "/**/*.css", "/**/*.js", "/profile/**").permitAll()
+                .antMatchers("/**/*.woff","/**/*.woff2","/**/*.ico","/**/*.woff2").permitAll()
+                .antMatchers("/**/theme/*/*","/**/img/*.png","/**/img/*.gif").permitAll()
+                .antMatchers("/swagger-ui.html", "/swagger-resources/**", "/webjars/**", "/*/api-docs", "/druid/**").permitAll()
+                // 除上面外的所有请求全部需要鉴权认证
+                .anyRequest().authenticated()
+                .and()
+                .headers().frameOptions().disable();
+
+    }
+}

+ 131 - 0
vber-data-seeder/src/main/java/com/vber/dataSeeder/core/config/MyBatisConfig.java

@@ -0,0 +1,131 @@
+package com.vber.dataSeeder.core.config;
+
+import com.vber.common.utils.StringUtils;
+import org.apache.ibatis.io.VFS;
+import org.apache.ibatis.session.SqlSessionFactory;
+import org.mybatis.spring.SqlSessionFactoryBean;
+import org.mybatis.spring.boot.autoconfigure.SpringBootVFS;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.core.env.Environment;
+import org.springframework.core.io.DefaultResourceLoader;
+import org.springframework.core.io.Resource;
+import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
+import org.springframework.core.io.support.ResourcePatternResolver;
+import org.springframework.core.type.classreading.CachingMetadataReaderFactory;
+import org.springframework.core.type.classreading.MetadataReader;
+import org.springframework.core.type.classreading.MetadataReaderFactory;
+import org.springframework.util.ClassUtils;
+
+import javax.sql.DataSource;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.List;
+
+/**
+ * Mybatis支持*匹配扫描包
+ */
+@Configuration
+public class MyBatisConfig
+{
+    @Autowired
+    private Environment env;
+
+    static final String DEFAULT_RESOURCE_PATTERN = "**/*.class";
+
+    public static String setTypeAliasesPackage(String typeAliasesPackage)
+    {
+        ResourcePatternResolver resolver = (ResourcePatternResolver) new PathMatchingResourcePatternResolver();
+        MetadataReaderFactory metadataReaderFactory = new CachingMetadataReaderFactory(resolver);
+        List<String> allResult = new ArrayList<String>();
+        try
+        {
+            for (String aliasesPackage : typeAliasesPackage.split(","))
+            {
+                List<String> result = new ArrayList<String>();
+                aliasesPackage = ResourcePatternResolver.CLASSPATH_ALL_URL_PREFIX
+                        + ClassUtils.convertClassNameToResourcePath(aliasesPackage.trim()) + "/" + DEFAULT_RESOURCE_PATTERN;
+                Resource[] resources = resolver.getResources(aliasesPackage);
+                if (resources != null && resources.length > 0)
+                {
+                    MetadataReader metadataReader = null;
+                    for (Resource resource : resources)
+                    {
+                        if (resource.isReadable())
+                        {
+                            metadataReader = metadataReaderFactory.getMetadataReader(resource);
+                            try
+                            {
+                                result.add(Class.forName(metadataReader.getClassMetadata().getClassName()).getPackage().getName());
+                            }
+                            catch (ClassNotFoundException e)
+                            {
+                                e.printStackTrace();
+                            }
+                        }
+                    }
+                }
+                if (result.size() > 0)
+                {
+                    HashSet<String> hashResult = new HashSet<String>(result);
+                    allResult.addAll(hashResult);
+                }
+            }
+            if (allResult.size() > 0)
+            {
+                typeAliasesPackage = String.join(",", (String[]) allResult.toArray(new String[0]));
+            }
+            else
+            {
+                throw new RuntimeException("mybatis typeAliasesPackage 路径扫描错误,参数typeAliasesPackage:" + typeAliasesPackage + "未找到任何包");
+            }
+        }
+        catch (IOException e)
+        {
+            e.printStackTrace();
+        }
+        return typeAliasesPackage;
+    }
+
+    public Resource[] resolveMapperLocations(String[] mapperLocations)
+    {
+        ResourcePatternResolver resourceResolver = new PathMatchingResourcePatternResolver();
+        List<Resource> resources = new ArrayList<Resource>();
+        if (mapperLocations != null)
+        {
+            for (String mapperLocation : mapperLocations)
+            {
+                try
+                {
+                    Resource[] mappers = resourceResolver.getResources(mapperLocation);
+                    resources.addAll(Arrays.asList(mappers));
+                }
+                catch (IOException e)
+                {
+                    // ignore
+                }
+            }
+        }
+        return resources.toArray(new Resource[resources.size()]);
+    }
+
+    @Bean
+    public SqlSessionFactory sqlSessionFactory(DataSource dataSource) throws Exception
+    {
+        String typeAliasesPackage = env.getProperty("mybatis.typeAliasesPackage");
+        String mapperLocations = env.getProperty("mybatis.mapperLocations");
+        String configLocation = env.getProperty("mybatis.configLocation");
+        typeAliasesPackage = setTypeAliasesPackage(typeAliasesPackage);
+        VFS.addImplClass(SpringBootVFS.class);
+
+        final SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
+        sessionFactory.setDataSource(dataSource);
+        sessionFactory.setTypeAliasesPackage(typeAliasesPackage);
+        sessionFactory.setMapperLocations(resolveMapperLocations(StringUtils.split(mapperLocations, ",")));
+        sessionFactory.setConfigLocation(new DefaultResourceLoader().getResource(configLocation));
+        return sessionFactory.getObject();
+    }
+}

+ 87 - 0
vber-data-seeder/src/main/java/com/vber/dataSeeder/core/config/properties/DruidProperties.java

@@ -0,0 +1,87 @@
+package com.vber.dataSeeder.core.config.properties;
+
+import com.alibaba.druid.pool.DruidDataSource;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * druid 配置属性
+ */
+@Configuration
+public class DruidProperties
+{
+    @Value("${spring.datasource.druid.initialSize}")
+    private int initialSize;
+
+    @Value("${spring.datasource.druid.minIdle}")
+    private int minIdle;
+
+    @Value("${spring.datasource.druid.maxActive}")
+    private int maxActive;
+
+    @Value("${spring.datasource.druid.maxWait}")
+    private int maxWait;
+
+    @Value("${spring.datasource.druid.connectTimeout}")
+    private int connectTimeout;
+
+    @Value("${spring.datasource.druid.socketTimeout}")
+    private int socketTimeout;
+
+    @Value("${spring.datasource.druid.timeBetweenEvictionRunsMillis}")
+    private int timeBetweenEvictionRunsMillis;
+
+    @Value("${spring.datasource.druid.minEvictableIdleTimeMillis}")
+    private int minEvictableIdleTimeMillis;
+
+    @Value("${spring.datasource.druid.maxEvictableIdleTimeMillis}")
+    private int maxEvictableIdleTimeMillis;
+
+    @Value("${spring.datasource.druid.validationQuery}")
+    private String validationQuery;
+
+    @Value("${spring.datasource.druid.testWhileIdle}")
+    private boolean testWhileIdle;
+
+    @Value("${spring.datasource.druid.testOnBorrow}")
+    private boolean testOnBorrow;
+
+    @Value("${spring.datasource.druid.testOnReturn}")
+    private boolean testOnReturn;
+
+    public DruidDataSource dataSource(DruidDataSource datasource)
+    {
+        /** 配置初始化大小、最小、最大 */
+        datasource.setInitialSize(initialSize);
+        datasource.setMaxActive(maxActive);
+        datasource.setMinIdle(minIdle);
+
+        /** 配置获取连接等待超时的时间 */
+        datasource.setMaxWait(maxWait);
+        
+        /** 配置驱动连接超时时间,检测数据库建立连接的超时时间,单位是毫秒 */
+        datasource.setConnectTimeout(connectTimeout);
+        
+        /** 配置网络超时时间,等待数据库操作完成的网络超时时间,单位是毫秒 */
+        datasource.setSocketTimeout(socketTimeout);
+
+        /** 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 */
+        datasource.setTimeBetweenEvictionRunsMillis(timeBetweenEvictionRunsMillis);
+
+        /** 配置一个连接在池中最小、最大生存的时间,单位是毫秒 */
+        datasource.setMinEvictableIdleTimeMillis(minEvictableIdleTimeMillis);
+        datasource.setMaxEvictableIdleTimeMillis(maxEvictableIdleTimeMillis);
+
+        /**
+         * 用来检测连接是否有效的sql,要求是一个查询语句,常用select 'x'。如果validationQuery为null,testOnBorrow、testOnReturn、testWhileIdle都不会起作用。
+         */
+        datasource.setValidationQuery(validationQuery);
+        /** 建议配置为true,不影响性能,并且保证安全性。申请连接的时候检测,如果空闲时间大于timeBetweenEvictionRunsMillis,执行validationQuery检测连接是否有效。 */
+        datasource.setTestWhileIdle(testWhileIdle);
+        /** 申请连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能。 */
+        datasource.setTestOnBorrow(testOnBorrow);
+        /** 归还连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能。 */
+        datasource.setTestOnReturn(testOnReturn);
+        return datasource;
+    }
+}

+ 68 - 0
vber-data-seeder/src/main/java/com/vber/dataSeeder/core/config/properties/PermitAllUrlProperties.java

@@ -0,0 +1,68 @@
+package com.vber.dataSeeder.core.config.properties;
+
+import com.vber.common.annotation.Anonymous;
+import org.apache.commons.lang3.RegExUtils;
+import org.springframework.beans.BeansException;
+import org.springframework.beans.factory.InitializingBean;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.ApplicationContextAware;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.core.annotation.AnnotationUtils;
+import org.springframework.web.method.HandlerMethod;
+import org.springframework.web.servlet.mvc.method.RequestMappingInfo;
+import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping;
+
+import java.util.*;
+import java.util.regex.Pattern;
+
+/**
+ * 设置Anonymous注解允许匿名访问的url
+ */
+@Configuration
+public class PermitAllUrlProperties implements InitializingBean, ApplicationContextAware
+{
+    private static final Pattern PATTERN = Pattern.compile("\\{(.*?)\\}");
+
+    private ApplicationContext applicationContext;
+
+    private List<String> urls = new ArrayList<>();
+
+    public String ASTERISK = "*";
+
+    @Override
+    public void afterPropertiesSet()
+    {
+        RequestMappingHandlerMapping mapping = applicationContext.getBean(RequestMappingHandlerMapping.class);
+        Map<RequestMappingInfo, HandlerMethod> map = mapping.getHandlerMethods();
+
+        map.keySet().forEach(info -> {
+            HandlerMethod handlerMethod = map.get(info);
+
+            // 获取方法上边的注解 替代path variable 为 *
+            Anonymous method = AnnotationUtils.findAnnotation(handlerMethod.getMethod(), Anonymous.class);
+            Optional.ofNullable(method).ifPresent(anonymous -> Objects.requireNonNull(info.getPatternsCondition().getPatterns())
+                    .forEach(url -> urls.add(RegExUtils.replaceAll(url, PATTERN, ASTERISK))));
+
+            // 获取类上边的注解, 替代path variable 为 *
+            Anonymous controller = AnnotationUtils.findAnnotation(handlerMethod.getBeanType(), Anonymous.class);
+            Optional.ofNullable(controller).ifPresent(anonymous -> Objects.requireNonNull(info.getPatternsCondition().getPatterns())
+                    .forEach(url -> urls.add(RegExUtils.replaceAll(url, PATTERN, ASTERISK))));
+        });
+    }
+
+    @Override
+    public void setApplicationContext(ApplicationContext context) throws BeansException
+    {
+        this.applicationContext = context;
+    }
+
+    public List<String> getUrls()
+    {
+        return urls;
+    }
+
+    public void setUrls(List<String> urls)
+    {
+        this.urls = urls;
+    }
+}

+ 25 - 0
vber-data-seeder/src/main/java/com/vber/dataSeeder/core/datasource/DynamicDataSource.java

@@ -0,0 +1,25 @@
+package com.vber.dataSeeder.core.datasource;
+
+import org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource;
+
+import javax.sql.DataSource;
+import java.util.Map;
+
+/**
+ * 动态数据源
+ */
+public class DynamicDataSource extends AbstractRoutingDataSource
+{
+    public DynamicDataSource(DataSource defaultTargetDataSource, Map<Object, Object> targetDataSources)
+    {
+        super.setDefaultTargetDataSource(defaultTargetDataSource);
+        super.setTargetDataSources(targetDataSources);
+        super.afterPropertiesSet();
+    }
+
+    @Override
+    protected Object determineCurrentLookupKey()
+    {
+        return DynamicDataSourceContextHolder.getDataSourceType();
+    }
+}

+ 43 - 0
vber-data-seeder/src/main/java/com/vber/dataSeeder/core/datasource/DynamicDataSourceContextHolder.java

@@ -0,0 +1,43 @@
+package com.vber.dataSeeder.core.datasource;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * 数据源切换处理
+ */
+public class DynamicDataSourceContextHolder
+{
+    public static final Logger log = LoggerFactory.getLogger(DynamicDataSourceContextHolder.class);
+
+    /**
+     * 使用ThreadLocal维护变量,ThreadLocal为每个使用该变量的线程提供独立的变量副本,
+     *  所以每一个线程都可以独立地改变自己的副本,而不会影响其它线程所对应的副本。
+     */
+    private static final ThreadLocal<String> CONTEXT_HOLDER = new ThreadLocal<>();
+
+    /**
+     * 设置数据源的变量
+     */
+    public static void setDataSourceType(String dsType)
+    {
+        log.info("切换到{}数据源", dsType);
+        CONTEXT_HOLDER.set(dsType);
+    }
+
+    /**
+     * 获得数据源的变量
+     */
+    public static String getDataSourceType()
+    {
+        return CONTEXT_HOLDER.get();
+    }
+
+    /**
+     * 清空数据源变量
+     */
+    public static void clearDataSourceType()
+    {
+        CONTEXT_HOLDER.remove();
+    }
+}

+ 121 - 0
vber-data-seeder/src/main/java/com/vber/dataSeeder/dict/DefaultDictCreator.java

@@ -0,0 +1,121 @@
+package com.vber.dataSeeder.dict;
+
+import com.vber.common.core.domain.entity.SysDictData;
+import com.vber.common.core.domain.entity.SysDictType;
+import com.vber.common.utils.StringUtils;
+import com.vber.dataSeeder.mapper.DsDictMapper;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+
+@Component
+@Slf4j
+public class DefaultDictCreator {
+    public DefaultDictCreator(DsDictMapper dsDictMapper) {
+        this.dsDictMapper = dsDictMapper;
+    }
+
+    private Long TypeId = 0L;
+    private Long DataCode = 0L;
+    private DsDictMapper dsDictMapper;
+    public void create(){
+        log.debug(StringUtils.format("-- START -- {}", DefaultDictCreator.class));
+
+        TypeId = 0L;
+        DataCode = 0L;
+
+        SysDictType t1 = createDictType("用户性别","sys_user_sex","用户性别列表");
+        createDictData(t1,"男","0","性别男",1L,"","",true);
+        createDictData(t1,"女","1","性别女",2L,"","");
+        createDictData(t1,"未知","2","性别未知",3L,"","");
+
+        SysDictType t2 = createDictType("菜单状态","sys_show_hide","菜单状态列表");
+        createDictData(t2,"显示","0","显示菜单",1L,"","primary",true);
+        createDictData(t2,"隐藏","1","隐藏菜单",2L,"","danger");
+
+        SysDictType t3 = createDictType("系统开关","sys_normal_disable","系统开关列表");
+        createDictData(t3,"正常","0","正常状态",1L,"","primary",true);
+        createDictData(t3,"停用","1","停用状态",2L,"","danger");
+
+        SysDictType t4 = createDictType("系统是否","sys_yes_no","系统是否列表");
+        createDictData(t4,"是","Y","系统默认是",1L,"","primary",true);
+        createDictData(t4,"否","N","系统默认否",2L,"","danger");
+
+        SysDictType t5 = createDictType("通知类型","sys_notice_type","通知类型列表");
+        createDictData(t5,"通知","1","通知",1L,"","warning",true);
+        createDictData(t5,"公告","2","公告",2L,"","success");
+
+        SysDictType t6 = createDictType("通知状态","sys_notice_status","通知状态列表");
+        createDictData(t6,"正常","0","正常状态",1L,"","primary",true);
+        createDictData(t6,"关闭","1","关闭状态",2L,"","danger");
+
+        SysDictType t7 = createDictType("操作类型","sys_oper_type","操作类型列表");
+        createDictData(t7,"其他","0","其他操作",0L,"","info");
+        createDictData(t7,"新增","1","新增操作",1L,"","info");
+        createDictData(t7,"修改","2","修改操作",2L,"","info");
+        createDictData(t7,"删除","3","删除操作",3L,"","danger");
+        createDictData(t7,"授权","4","授权操作",4L,"","primary");
+        createDictData(t7,"导出","5","导出操作",5L,"","warning");
+        createDictData(t7,"导入","6","导入操作",6L,"","warning");
+        createDictData(t7,"强退","7","强退操作",7L,"","danger");
+        createDictData(t7,"生成代码","8","生成代码操作",8L,"","warning");
+        createDictData(t7,"清空数据","9","清空数据操作",9L,"","danger");
+
+        SysDictType t8 = createDictType("系统状态","sys_common_status","系统状态列表");
+        createDictData(t8,"成功","0","成功状态",1L,"","primary");
+        createDictData(t8,"失败","1","失败状态",2L,"","danger");
+
+
+//        SysDictType t9 = createDictType("","","列表");
+//        createDictData(t9,"","","",1L,"","",true);
+//        createDictData(t9,"","","",2L,"","");
+//
+//        SysDictType t10 = createDictType("","","列表");
+//        createDictData(t10,"","","",1L,"","",true);
+//        createDictData(t10,"","","",2L,"","");
+
+        log.debug(StringUtils.format("--  END  -- {}", DefaultDictCreator.class));
+    }
+
+    private SysDictType createDictType(String name,String type,String remark){
+        TypeId++;
+        SysDictType dictType=new SysDictType();
+        dictType.setDictId(TypeId);
+        dictType.setDictName(name);
+        dictType.setDictType(type);
+        dictType.setStatus("0");
+        dictType.setCreateBy("admin");
+        dictType.setCreateTime(new Date());
+        dictType.setUpdateBy("");
+        dictType.setUpdateTime(null);
+        dictType.setRemark(remark);
+        dsDictMapper.insertDictType(dictType);
+        return dictType;
+    }
+
+    private SysDictData createDictData(SysDictType type,String label,String value,String remark,Long sort,String cssClass,String listClass){
+       SysDictData dictData= createDictData(type,label,value,remark,sort,cssClass,listClass,false);
+        return dictData;
+    }
+    private SysDictData createDictData(SysDictType type,String label,String value,String remark,Long sort,String cssClass,String listClass,Boolean isDefault){
+        DataCode++;
+        SysDictData dictData= new SysDictData();
+        dictData.setDictCode(DataCode);
+        dictData.setDictType(type.getDictType());
+        dictData.setDictLabel(label);
+        dictData.setDictValue(value);
+        dictData.setDictSort(sort);
+        dictData.setCssClass(cssClass);
+        dictData.setListClass(listClass);
+        dictData.setIsDefault(isDefault?"Y":"N");
+        dictData.setStatus("0");
+        dictData.setCreateBy("admin");
+        dictData.setCreateTime(new Date());
+        dictData.setUpdateBy("");
+        dictData.setUpdateTime(null);
+        dictData.setRemark(remark);
+        dsDictMapper.insertDictData(dictData);
+        return dictData;
+    }
+}

+ 13 - 0
vber-data-seeder/src/main/java/com/vber/dataSeeder/mapper/DsConfigMapper.java

@@ -0,0 +1,13 @@
+package com.vber.dataSeeder.mapper;
+
+import com.vber.system.SysConfig;
+import org.springframework.stereotype.Repository;
+
+@Repository
+public interface DsConfigMapper
+{
+
+    public int insertConfig(SysConfig config);
+    public int deleteConfig();
+
+}

+ 13 - 0
vber-data-seeder/src/main/java/com/vber/dataSeeder/mapper/DsDeptMapper.java

@@ -0,0 +1,13 @@
+package com.vber.dataSeeder.mapper;
+
+import com.vber.common.core.domain.entity.SysDept;
+import org.springframework.stereotype.Repository;
+
+@Repository
+public interface DsDeptMapper
+{
+    public SysDept selectDeptById(Long deptId);
+    public int insertDept(SysDept dept);
+    public int updateDept(SysDept dept);
+
+}

+ 16 - 0
vber-data-seeder/src/main/java/com/vber/dataSeeder/mapper/DsDictMapper.java

@@ -0,0 +1,16 @@
+package com.vber.dataSeeder.mapper;
+
+import com.vber.common.core.domain.entity.SysDictData;
+import com.vber.common.core.domain.entity.SysDictType;
+import org.springframework.stereotype.Repository;
+
+@Repository
+public interface DsDictMapper
+{
+    public int insertDictType(SysDictType dictType);
+    public int insertDictData(SysDictData dictData);
+    public int deleteDict();
+    public int deleteDictType();
+    public int deleteDictData();
+
+}

+ 34 - 0
vber-data-seeder/src/main/java/com/vber/dataSeeder/mapper/DsMenuMapper.java

@@ -0,0 +1,34 @@
+package com.vber.dataSeeder.mapper;
+
+import com.vber.common.core.domain.entity.SysMenu;
+import org.springframework.stereotype.Repository;
+
+@Repository
+public interface DsMenuMapper
+{
+
+    /**
+     * 根据菜单ID查询信息
+     *
+     * @param menuId 菜单ID
+     * @return 菜单信息
+     */
+    public SysMenu selectMenuById(Long menuId);
+
+    /**
+     * 新增菜单信息
+     *
+     * @param menu 菜单信息
+     * @return 结果
+     */
+    public int insertMenu(SysMenu menu);
+
+    /**
+     * 修改菜单信息
+     *
+     * @param menu 菜单信息
+     * @return 结果
+     */
+    public int updateMenu(SysMenu menu);
+
+}

+ 13 - 0
vber-data-seeder/src/main/java/com/vber/dataSeeder/mapper/DsPostMapper.java

@@ -0,0 +1,13 @@
+package com.vber.dataSeeder.mapper;
+
+import com.vber.system.SysPost;
+import org.springframework.stereotype.Repository;
+
+@Repository
+public interface DsPostMapper
+{
+    public SysPost selectPostById(Long postId);
+    public int insertPost(SysPost post);
+    public int updatePost(SysPost post);
+
+}

+ 12 - 0
vber-data-seeder/src/main/java/com/vber/dataSeeder/mapper/DsTableMapper.java

@@ -0,0 +1,12 @@
+package com.vber.dataSeeder.mapper;
+
+import com.vber.system.SysConfig;
+import org.springframework.stereotype.Repository;
+
+@Repository
+public interface DsTableMapper
+{
+    public void createTable(String tableName);
+    public void dropTable(String tableName);
+
+}

+ 36 - 0
vber-data-seeder/src/main/java/com/vber/dataSeeder/mapper/DsUserRoleMapper.java

@@ -0,0 +1,36 @@
+package com.vber.dataSeeder.mapper;
+
+import com.vber.common.core.domain.entity.SysRole;
+import com.vber.common.core.domain.entity.SysUser;
+import com.vber.system.SysRoleDept;
+import com.vber.system.SysRoleMenu;
+import com.vber.system.SysUserPost;
+import com.vber.system.SysUserRole;
+
+import java.util.List;
+import org.springframework.stereotype.Repository;
+
+@Repository
+public interface DsUserRoleMapper
+{
+    public SysRole selectRoleById(Long roleId);
+    public int insertRole(SysRole role);
+    public int updateRole(SysRole role);
+
+    public SysUser selectUserById(Long userId);
+    public int insertUser(SysUser user);
+    public int updateUser(SysUser user);
+
+
+    public int deleteUserRole(Long userId);
+    public int batchUserRole(List<SysUserRole> userRoleList);
+
+    public int deleteUserPost(Long userId);
+    public int batchUserPost(List<SysUserPost> userPostList);
+    public int deleteRoleMenu(Long roleId);
+    public int batchRoleMenu(List<SysRoleMenu> roleMenuList);
+
+    public int deleteRoleDept(Long roleId);
+    public int batchRoleDept(List<SysRoleDept> roleDeptList);
+
+}

+ 452 - 0
vber-data-seeder/src/main/java/com/vber/dataSeeder/menu/DefaultMenuCreator.java

@@ -0,0 +1,452 @@
+package com.vber.dataSeeder.menu;
+
+import com.vber.common.constant.UserConstants;
+import com.vber.common.core.domain.entity.SysMenu;
+import com.vber.common.utils.DateUtils;
+import com.vber.common.utils.StringUtils;
+import com.vber.dataSeeder.mapper.DsMenuMapper;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.io.File;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+@Component
+@Slf4j
+public class DefaultMenuCreator {
+
+    private final DsMenuMapper menuMapper;
+    public DefaultMenuCreator(DsMenuMapper menuMapper) {
+        this.menuMapper = menuMapper;
+    }
+    private Long Id = 2000L;
+    private boolean IsSystem = false;
+    private Long DirId = 1L;
+    private Long MenuId = 100L;
+    private Long ChildMenuId = 500L;
+    private Long BtnId = 1000L;
+
+    private String javaPermissionStr;
+    private String vuePermissionStr;
+    private List<SysMenu>  meunList = new ArrayList<>();
+
+
+
+    public void create(boolean isGenPerm){
+        log.debug(StringUtils.format("-- START -- {}", this.getClass().getName()));
+
+        init();
+        SysMenu root = getRoot();
+
+        System(root);
+        Monitor(root);
+        if(isGenPerm){
+            generatorPermission();
+        }
+
+        log.debug(StringUtils.format("--  END  -- {}", this.getClass().getName()));
+    }
+
+    private void init(){
+        Id = 2000L;
+        IsSystem = false;
+        DirId = 1L;
+        MenuId = 100L;
+        ChildMenuId = 500L;
+        BtnId = 1000L;
+
+        meunList=new ArrayList<>();
+        javaPermissionStr="";
+        vuePermissionStr="";
+    }
+    private SysMenu getRoot(){
+        SysMenu root = new SysMenu();
+        root.setMenuId(0L);
+        return  root;
+    }
+
+    // region BASE_SYSTEM
+
+    private void System(SysMenu root){
+        IsSystem = true;
+        SysMenu dir= createDir(root,"系统管理","system",100,"terminal");
+
+        SysMenu user= createMenu(dir,"系统用户管理","user","system/user/index",10,"person-circle");
+        createCurdBtnWithExport(user,"用户");
+        createImportBtn(user,"用户",20);
+        createHideBtn(user,"重置密码","resetPwd",20,"file-lock2");
+
+        SysMenu role = createMenu(dir,"系统角色管理","role","system/role/index",11,"person-gear");
+        createCurdBtnWithExport(role,"角色");
+
+        SysMenu menu = createMenu(dir,"功能菜单管理","menu","system/menu/index",12,"list");
+        createCurdBtn(menu,"菜单");
+
+        SysMenu dept = createMenu(dir,"系统部门管理","dept","system/dept/index",13,"card-list");
+        createCurdBtn(dept,"部门");
+
+        SysMenu post = createMenu(dir,"系统岗位管理","post","system/post/index",14,"file-person");
+        createCurdBtnWithExport(post,"岗位");
+
+        SysMenu dict = createMenu(dir,"系统字典管理","dict","system/dict/index",15,"file-earmark-medical");
+        createCurdBtnWithExport(dict,"字典");
+
+        SysMenu config = createMenu(dir,"系统配置管理","config","system/config/index",16,"gear");
+        createCurdBtnWithExport(config,"配置");
+
+        SysMenu notice = createMenu(dir,"通知公告管理","notice","system/notice/index",17,"bell");
+        createCurdBtnWithExport(notice,"公告");
+
+        SysMenu log = createChildDir(dir,"系统日志管理","log",18,"file-earmark-medical");
+        SysMenu operlog = createChildMenu(log,"操作日志","operlog","system/log/operlog",10,"file-earmark-easel");
+        createQueryBtn(operlog,"操作",10);
+        createDeleteBtn(operlog,"操作",11);
+        createExportBtn(operlog,"操作",12);
+
+        SysMenu logininfor= createChildMenu(log,"登录日志","logininfor","system/log/logininfor",11,"file-earmark-person");
+        createQueryBtn(logininfor,"登录",10);
+        createDeleteBtn(logininfor,"登录",11);
+        createExportBtn(logininfor,"登录",12);
+        createHideBtn(logininfor,"账户解锁","unlock",12,"#");
+    }
+
+    private void Monitor(SysMenu root){
+        IsSystem = true;
+        SysMenu dir= createDir(root,"系统监控","monitor",101,"display");
+        SysMenu online= createMenu(dir,"在线用户","online","monitor/online/index",10,"graph-up");
+        createQueryBtn(online,"在线用户",10);
+        createHideBtn(online,"批量强退","batchLogout",10,"#");
+        createHideBtn(online,"单条强退","forceLogout",11,"#");
+
+        createMenu(dir,"数据监控","druid","monitor/druid/index",11,"list-task");
+        createMenu(dir,"服务监控","server","monitor/server/index",12,"pc-display-horizontal");
+        createMenu(dir,"缓存监控","cache","monitor/cache/index",13,"exclude");
+        createMenu(dir,"缓存列表","cacheList","monitor/cache/list",14,"file-slides");
+
+    }
+
+    // endregion
+
+    // region CREATE
+
+    // region Dir
+
+    /**
+     * 创建目录
+     * @param parent
+     * @param name
+     * @param path 传入 *开头 表示不需要鉴权
+     * @param sort
+     * @param icon
+     * @return
+     */
+    private SysMenu createDir(SysMenu parent,String name,String path,int sort,String icon){
+        return createDir(parent,name,path, sort,icon,true);
+    }
+    private SysMenu createHideDir(SysMenu parent,String name,String path,int sort,String icon){
+        return createDir(parent,name,path, sort,icon,false);
+    }
+    private SysMenu createDir(SysMenu parent,String name,String path,int sort,String icon,boolean visible){
+        return createDir(parent,name,path, sort,icon,visible,"");
+    }
+    private SysMenu createDir(SysMenu parent,String name,String path,int sort,String icon,boolean visible,String remark){
+        Long id = IsSystem ? DirId++ : Id++;
+        return createEntity(id,parent,name,path,"", UserConstants.TYPE_DIR,sort,icon,"","","",visible,false,true,remark);
+    }
+
+    // region ChildDir
+    private SysMenu createChildDir(SysMenu parent,String name,String path,int sort,String icon){
+        return createChildDir(parent,name,path, sort,icon,true);
+    }
+    private SysMenu createChildHideDir(SysMenu parent,String name,String path,int sort,String icon){
+        return createChildDir(parent,name,path, sort,icon,false);
+    }
+    private SysMenu createChildDir(SysMenu parent,String name,String path,int sort,String icon,boolean visible){
+        return createChildDir(parent,name,path, sort,icon,visible,"");
+    }
+    private SysMenu createChildDir(SysMenu parent,String name,String path,int sort,String icon,boolean visible,String remark){
+        Long id = IsSystem ? MenuId++ : Id++;
+        return createEntity(id,parent,name,path,"", UserConstants.TYPE_DIR,sort,icon,"","","",visible,false,true,remark);
+    }
+    // endregion
+
+    // endregion
+
+    // region MENU
+
+    /**
+     * 创建菜单
+     * @param parent
+     * @param name
+     * @param path 传入 *开头 表示不需要鉴权
+     * @param component
+     * @param sort
+     * @param icon
+     * @return
+     */
+    private SysMenu createMenu(SysMenu parent,String name,String path,String component,int sort,String icon){
+        return createMenu(parent,name,path,component, sort,icon,true);
+    }
+    private SysMenu createHideMenu(SysMenu parent,String name,String path,String component,int sort,String icon){
+        return createMenu(parent,name,path,component, sort,icon,false);
+    }
+    private SysMenu createMenu(SysMenu parent,String name,String path,String component,int sort,String icon,boolean visible){
+        return createMenu(parent,name,path,component, sort,icon,visible,false,true,"");
+    }
+    private SysMenu createMenu(SysMenu parent,String name,String path,String component,int sort,String icon,boolean visible,boolean isFrame,boolean isCache,String remark){
+        Long id = IsSystem ? MenuId++ : Id++;
+        return createEntity(id,parent,name,path,component, UserConstants.TYPE_MENU,sort,icon,"","","",visible,isFrame,isCache,remark);
+    }
+
+    // region ChildMenu
+    private SysMenu createChildMenu(SysMenu parent,String name,String path,String component,int sort,String icon){
+        return createChildMenu(parent,name,path,component, sort,icon,true);
+    }
+    private SysMenu createChildHideMenu(SysMenu parent,String name,String path,String component,int sort,String icon){
+        return createChildMenu(parent,name,path,component, sort,icon,false);
+    }
+    private SysMenu createChildMenu(SysMenu parent,String name,String path,String component,int sort,String icon,boolean visible){
+        return createChildMenu(parent,name,path,component, sort,icon,visible,false,true,"");
+    }
+    private SysMenu createChildMenu(SysMenu parent,String name,String path,String component,int sort,String icon,boolean visible,boolean isFrame,boolean isCache,String remark){
+        Long id = IsSystem ? ChildMenuId++ : Id++;
+        return createEntity(id,parent,name,path,component, UserConstants.TYPE_MENU,sort,icon,"","","",visible,isFrame,isCache,remark);
+    }
+    // endregion
+
+    // endregion
+
+    // region BTN
+
+    private void createCurdBtn(SysMenu parent,String postName){
+        createQueryBtn(parent,postName,10);
+        createAddBtn(parent,postName,11);
+        createEditBtn(parent,postName,12);
+        createDeleteBtn(parent,postName,13);
+    }
+    private void createCurdBtnWithExport(SysMenu parent,String postName){
+        createQueryBtn(parent,postName,10);
+        createAddBtn(parent,postName,11);
+        createEditBtn(parent,postName,12);
+        createDeleteBtn(parent,postName,13);
+        createExportBtn(parent,postName,14);
+    }
+    private SysMenu createQueryBtn(SysMenu parent,String postName,int sort){
+        return createHideBtn(parent,"查询"+postName,"query",sort,"eye","","");
+    }
+    private SysMenu createAddBtn(SysMenu parent,String postName,int sort){
+        return createBtn(parent,"新增"+postName,"add",sort,"plus-square","btn btn-light-primary","handleCreate");
+    }
+    private SysMenu createEditBtn(SysMenu parent,String postName,int sort){
+        return createBtn(parent,"修改"+postName,"edit",sort,"pencil-square","btn btn-light-success","handleUpdate@1");
+    }
+    private SysMenu createDeleteBtn(SysMenu parent,String postName,int sort){
+        return createBtn(parent,"删除"+postName,"remove",sort,"dash-square","btn btn-light-danger","handleDelete@0");
+    }
+    private SysMenu createExportBtn(SysMenu parent,String postName,int sort){
+        return createBtn(parent,"导出"+postName,"export",sort,"cloud-download","btn btn-light-info","handleExport");
+    }
+    private SysMenu createImportBtn(SysMenu parent,String postName,int sort){
+        return createBtn(parent,"导入"+postName,"import",sort,"cloud-upload","btn btn-light-warning","handleImport");
+    }
+
+    /**
+     * 创建按钮
+     * @param parent
+     * @param name
+     * @param path 传入 *开头 表示不需要鉴权
+     * @param sort
+     * @param icon
+     * @return
+     */
+    private SysMenu createBtn(SysMenu parent,String name,String path,int sort,String icon){
+        return createBtn(parent,name, path,sort,icon,"","",true,"");
+    }
+
+    /**
+     * 创建按钮
+     * @param parent
+     * @param name
+     * @param path 传入 *开头 表示不需要鉴权
+     * @param sort
+     * @param icon
+     * @param btnClass
+     * @param btnScript
+     * @return
+     */
+    private SysMenu createBtn(SysMenu parent,String name,String path,int sort,String icon,String btnClass,String btnScript){
+        return createBtn(parent,name, path,sort,icon,btnClass,btnScript,true,"");
+    }
+
+    /**
+     * 创建隐藏按钮
+     * @param parent
+     * @param name
+     * @param path 传入 *开头 表示不需要鉴权
+     * @param sort
+     * @param icon
+     * @return
+     */
+    private SysMenu createHideBtn(SysMenu parent,String name,String path,int sort,String icon){
+        return createBtn(parent,name, path,sort,icon,"","",false,"");
+    }
+
+    /**
+     * 创建隐藏按钮
+     * @param parent
+     * @param name
+     * @param path 传入 *开头 表示不需要鉴权
+     * @param sort
+     * @param icon
+     * @param btnClass
+     * @param btnScript
+     * @return
+     */
+    private SysMenu createHideBtn(SysMenu parent,String name,String path,int sort,String icon,String btnClass,String btnScript){
+        return createBtn(parent,name, path,sort,icon,btnClass,btnScript,false,"");
+    }
+    private SysMenu createBtn(SysMenu parent,String name,String path,int sort,String icon,String btnClass,String btnScript,boolean visible,String remark){
+        Long id = IsSystem ? BtnId++ : Id++;
+        return createEntity(id,parent,name,path,"", UserConstants.TYPE_BUTTON,sort,icon,btnClass,btnScript,"",visible,false,true,remark);
+    }
+
+    // endregion
+
+    /**
+     * 创建功能菜单
+     * @param menuId
+     * @param parent
+     * @param name
+     * @param path 传入 *开头 表示不需要鉴权
+     * @param component
+     * @param menuType
+     * @param sort
+     * @param icon
+     * @param btnClass
+     * @param btnScript
+     * @param query
+     * @param visible
+     * @param isFrame
+     * @param isCache
+     * @param remark
+     * @return
+     */
+    private SysMenu createEntity(Long menuId,SysMenu parent,String name,String path,String component,String menuType, int sort,String icon,String btnClass,String btnScript,String query,boolean visible,boolean isFrame,boolean isCache,String remark){
+        Boolean flag= false;
+        SysMenu menu = menuMapper.selectMenuById(menuId);
+        if(menu==null){
+            menu = new SysMenu();
+            menu.setMenuId(menuId);
+            flag = true;
+        }
+        menu.setMenuName(name);
+        menu.setParentId(parent.getMenuId());
+        menu.setOrderNum(sort);
+        menu.setComponent(component);
+        menu.setQuery(query);
+        menu.setIsCache(isCache?"0":"1");
+        menu.setIsFrame(isFrame?"0":"1");
+        menu.setMenuType(menuType);
+        menu.setVisible(visible?"0":"1");
+        menu.setStatus("0");
+        String perm ="";
+
+        // path传入 *开头 表示不需要鉴权
+        if(path.startsWith("*")){
+            path=path.substring(1);
+        }else{
+            perm = (StringUtils.isEmpty(parent.getPerms()) ? "" : parent.getPerms() + ":")+path;
+        }
+
+        menu.setPath(path);
+        menu.setPerms(perm);
+        menu.setIcon(icon);
+        menu.setBtnClass(btnClass);
+        menu.setBtnScript(btnScript);
+        menu.setCreateBy("admin");
+        menu.setCreateTime(new Date());
+        menu.setUpdateBy("");
+        menu.setUpdateTime(null);
+        menu.setRemark(remark);
+
+        if(flag){
+            menuMapper.insertMenu(menu);
+        }else{
+            menuMapper.updateMenu(menu);
+        }
+        if(!perm.isEmpty()){
+            meunList.add(menu);
+        }
+        return menu;
+    }
+
+    // endregion
+
+    // region WRITE
+
+    private void generatorPermission(){
+        vuePermissionStr += "/**\n\n";
+        vuePermissionStr += "class permissionName {\n";
+
+        javaPermissionStr ="";
+        javaPermissionStr +="package com.vber.system.permissions;\n\n";
+        javaPermissionStr +="/**\n";
+        javaPermissionStr +=" * AUTO_GENERATOR\n";
+        javaPermissionStr +=" * DATE: " + DateUtils.getTime()+"\n";
+        javaPermissionStr +=" * BY IWB_Y\n";
+        javaPermissionStr +=" */\n";
+        javaPermissionStr +="public class permissionName {\n";
+        meunList.forEach(v->{
+            String name= StringUtils.convertToCamelCase(v.getPerms().replace(":","_"));
+            javaPermissionStr += String.format("\tpublic static final String %s = \"%s\";\n",name,v.getPerms());
+            vuePermissionStr += String.format("\t%s = \"%s\"\n",name,v.getPerms());
+        });
+        vuePermissionStr +="}\n";
+        vuePermissionStr +="export const permissionNames = new permissionName()\n";
+        vuePermissionStr +="export default permissionName\n\n";
+        vuePermissionStr +="*/\n";
+
+        javaPermissionStr +="}\n";
+        saveFile("\\vber-system\\src\\main\\java\\com\\vber\\system\\permissions\\","permissionName.java", javaPermissionStr +"\n\n"+ vuePermissionStr);
+    }
+
+
+    private void saveFile(String path,String name,String content) {
+        String filePath=  System.getProperty("user.dir") + path;
+        File dir = new File(filePath);
+        // 检查放置文件的文件夹路径是否存在,不存在则创建
+        if (!dir.exists()) {
+            dir.mkdirs();// mkdirs创建多级目录
+        }
+        String javaPermissionFileName = filePath + name;
+        FileWriter writer = null;
+        try {
+            File javaFile= new File(javaPermissionFileName) ;
+            if (!javaFile.exists()) {
+                javaFile.createNewFile();// 创建目标文件
+            }
+            writer = new FileWriter(javaFile, false);
+            writer.append(content);
+            writer.flush();
+            System.out.println( "【"+name+"】文件写入成功 "+javaPermissionFileName);
+        } catch (IOException e) {
+            e.printStackTrace();
+        } finally {
+            try{
+                if (null != writer){
+                    writer.close();
+                }
+            } catch (IOException e) {
+                e.printStackTrace();
+            }
+        }
+    }
+
+    // endregion
+
+}

+ 51 - 0
vber-data-seeder/src/main/java/com/vber/dataSeeder/table/BuildTables.java

@@ -0,0 +1,51 @@
+package com.vber.dataSeeder.table;
+
+import com.vber.common.utils.StringUtils;
+import com.vber.dataSeeder.mapper.DsTableMapper;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+@Component
+@Slf4j
+public class BuildTables {
+    final DsTableMapper dsTableMapper;
+
+    public BuildTables(DsTableMapper dsTableMapper) {
+        this.dsTableMapper = dsTableMapper;
+    }
+
+    public void build(){
+        log.debug(StringUtils.format("-- START -- {}", "创建表"));
+//        createTable("sys_dept");
+//        createTable("sys_user");
+//        createTable("sys_post");
+//        createTable("sys_role");
+//        createTable("sys_menu",true);
+//        createTable("sys_user_role");
+//        createTable("sys_role_menu");
+//        createTable("sys_role_dept");
+//        createTable("sys_user_post");
+//        createTable("sys_notice");
+//        createTable("sys_config",true);
+//        createTable("sys_dict_type",true);
+//        createTable("sys_dict_data",true);
+//        createTable("sys_oper_log",true);
+//        createTable("sys_logininfor",true);
+        log.debug(StringUtils.format("--  END  -- {}", "创建表"));
+    }
+
+    private void  createTable(String tableName){
+        createTable(tableName,false);
+    }
+
+    private void  createTable(String tableName,boolean dropTable){
+        log.debug(StringUtils.format("-- START -- Create {}", tableName));
+        if(dropTable){
+            log.debug(StringUtils.format("-- START -- Drop {}", tableName));
+            dsTableMapper.dropTable(tableName);
+            log.debug(StringUtils.format("--  END  -- Drop {}", tableName));
+        }
+        dsTableMapper.createTable(tableName);
+        log.debug(StringUtils.format("--  END  -- Create {}", tableName));
+    }
+}

+ 276 - 0
vber-data-seeder/src/main/java/com/vber/dataSeeder/user/DefaultUserRoleCreator.java

@@ -0,0 +1,276 @@
+package com.vber.dataSeeder.user;
+
+import com.vber.common.core.domain.entity.SysDept;
+import com.vber.common.core.domain.entity.SysRole;
+import com.vber.common.core.domain.entity.SysUser;
+import com.vber.common.utils.SecurityUtils;
+import com.vber.common.utils.StringUtils;
+import com.vber.dataSeeder.mapper.DsDeptMapper;
+import com.vber.dataSeeder.mapper.DsPostMapper;
+import com.vber.dataSeeder.mapper.DsUserRoleMapper;
+import com.vber.system.SysPost;
+import com.vber.system.SysRoleMenu;
+import com.vber.system.SysUserPost;
+import com.vber.system.SysUserRole;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+@Component
+@Slf4j
+public class DefaultUserRoleCreator {
+
+    private final DsUserRoleMapper userRoleMapper;
+    private final DsPostMapper postMapper;
+    private final DsDeptMapper deptMapper;
+    public DefaultUserRoleCreator(DsUserRoleMapper userRoleMapper, DsPostMapper postMapper, DsDeptMapper deptMapper) {
+        this.userRoleMapper = userRoleMapper;
+        this.postMapper = postMapper;
+        this.deptMapper = deptMapper;
+    }
+    public void create(){
+        log.debug(StringUtils.format("-- START -- {}", this.getClass().getName()));
+
+        Post();
+        Dept();
+        Role();
+        User();
+
+        log.debug(StringUtils.format("--  END  -- {}", this.getClass().getName()));
+    }
+
+    //region POST
+
+    private void Post(){
+        createPost(1L,"ceo","董事长",1);
+        createPost(2L,"se","项目经理",2);
+        createPost(3L,"hr","人力资源",3);
+        createPost(4L,"user","普通员工",4);
+    }
+
+    private SysPost createPost(Long postId,String code,String name,int sort){
+        Boolean flag= false;
+        SysPost post = postMapper.selectPostById(postId);
+        if(post == null){
+            post = new SysPost();
+            post.setPostId(postId);
+            flag = true;
+        }
+
+        post.setPostCode(code);
+        post.setPostName(name);
+        post.setPostSort(sort);
+        post.setStatus("0");
+        post.setCreateBy("admin");
+        post.setCreateTime(new Date());
+        post.setUpdateBy("");
+        post.setUpdateTime(null);
+        post.setRemark("");
+
+        if(flag){
+            postMapper.insertPost(post);
+        }else{
+            postMapper.updatePost(post);
+        }
+
+        return post;
+    }
+
+    //endregion
+
+    //region DEPT
+    private void Dept(){
+        SysDept root= new SysDept();
+        root.setDeptId(0L);
+        SysDept dept =  createDept(root,1L,"玮搏科技",1);
+        SysDept dept1 =  createDept(dept,10L,"玮搏电子科技",1);
+        SysDept dept2 =  createDept(dept,20L,"玮搏信息科技",2);
+        createDept(dept1,101L,"研发部门",1);
+        createDept(dept1,102L,"市场部门",2);
+        createDept(dept1,103L,"运维部门",3);
+        createDept(dept1,104L,"财务部门",4);
+        createDept(dept2,201L,"研发部门",1);
+        createDept(dept2,202L,"市场部门",2);
+        createDept(dept2,203L,"运维部门",3);
+        createDept(dept2,204L,"财务部门",4);
+    }
+    private SysDept createDept(SysDept parent,Long deptId,String name,int sort){
+        Boolean flag= false;
+        SysDept dept = deptMapper.selectDeptById(deptId);
+        if(dept == null){
+            dept = new SysDept();
+            dept.setDeptId(deptId);
+            flag = true;
+        }
+
+        dept.setDeptId(deptId);
+        dept.setParentId(parent.getDeptId());
+        dept.setAncestors(StringUtils.isEmpty(parent.getAncestors()) ? deptId+"" : parent.getAncestors()+","+deptId);
+        dept.setDeptName(name);
+        dept.setOrderNum(sort);
+        dept.setStatus("0");
+        dept.setDelFlag("0");
+        dept.setCreateBy("admin");
+        dept.setCreateTime(new Date());
+        dept.setUpdateBy("");
+        dept.setUpdateTime(null);
+
+        if(flag){
+            deptMapper.insertDept(dept);
+        }else{
+            deptMapper.updateDept(dept);
+        }
+
+        return dept;
+    }
+
+    //endregion
+
+    //region ROLE
+
+    private void Role(){
+        createRole(1L,"超级管理员角色","admin",1,1);
+        createRole(2L,"系统角色","system",2,3);
+        createRole(3L,"默认角色","default",3,3);
+
+        userRoleMapper.deleteRoleMenu(2L);
+        setRoleSystemMenus(2L);
+    }
+    private void setRoleSystemMenus(long roleId){
+
+        List<SysRoleMenu> roleMenuList = new ArrayList<>();
+        roleMenuList.add(new SysRoleMenu(roleId,1L));
+        roleMenuList.add(new SysRoleMenu(roleId,2L));
+        for (Long i = 101L; i <= 114L; i++) {
+            roleMenuList.add(new SysRoleMenu(roleId,i));
+        }
+        roleMenuList.add(new SysRoleMenu(roleId,500L));
+        roleMenuList.add(new SysRoleMenu(roleId,501L));
+        for (Long i = 1001L; i <= 1049L; i++) {
+            roleMenuList.add(new SysRoleMenu(roleId,i));
+        }
+        userRoleMapper.batchRoleMenu(roleMenuList);
+    }
+
+    /**
+     *
+     * @param roleId
+     * @param name
+     * @param key
+     * @param sort
+     * @param data_scope 数据范围(1:全部数据权限 2:自定义部门数据权限 3:本部门数据权限 4:本部门及以下数据权限 5:自己的数据)
+     * @return
+     */
+    private SysRole createRole(Long roleId,String name,String key,int sort,int data_scope){
+        Boolean flag= false;
+        SysRole role = userRoleMapper.selectRoleById(roleId);
+        if(role==null){
+            role = new SysRole();
+            role.setRoleId(roleId);
+            flag = true;
+        }
+
+        role.setRoleId(roleId);
+        role.setRoleName(name);
+        role.setRoleKey(key);
+        role.setRoleSort(sort);
+        role.setDataScope(data_scope+"");
+        role.setMenuCheckStrictly(true);
+        role.setDeptCheckStrictly(true);
+        role.setStatus("0");
+        role.setDelFlag("0");
+        role.setCreateBy("admin");
+        role.setCreateTime(new Date());
+        role.setUpdateBy("");
+        role.setUpdateTime(null);
+        role.setRemark("");
+
+        if(flag){
+            userRoleMapper.insertRole(role);
+        }else{
+            userRoleMapper.updateRole(role);
+        }
+
+        return role;
+    }
+
+    //endregion
+
+    //region USER
+
+    private void User(){
+        createUser(1L,1L,"admin","vberAdmin",0,"admin@iwbnet.com","13812345678","123iwb");
+        setUserRole(1L,1L);
+        setUserPost(1L,1L);
+
+        createUser(2L,10L,"system","vberSystem",0,"system@iwbnet.com","13811111111","system");
+        setUserRole(2L,2L,3L);
+        setUserPost(2L,2L);
+
+        createUser(3L,20L,"demo","Demo",0,"demo@iwbnet.com","13822222222","123qwe");
+        setUserRole(3L,3L);
+        setUserPost(3L,3L);
+    }
+
+    private void setUserRole(Long userId, Long ...roleIds){
+
+        List<SysUserRole> userRoleList = new ArrayList<>();
+        for (Long roleId : roleIds) {
+            userRoleList.add(new SysUserRole(userId,roleId));
+        }
+        userRoleMapper.deleteUserRole(userId);
+        userRoleMapper.batchUserRole(userRoleList);
+    }
+
+    private void setUserPost(Long userId, Long ...postIds){
+
+        List<SysUserPost> userPostList = new ArrayList<>();
+        for (Long id : postIds) {
+            userPostList.add(new SysUserPost(userId,id));
+        }
+        userRoleMapper.deleteUserPost(userId);
+        userRoleMapper.batchUserPost(userPostList);
+    }
+
+    private SysUser createUser(Long userId,Long deptId,String name,String nick,int type,String email,String phone,String pwd){
+        Boolean flag= false;
+        SysUser user = userRoleMapper.selectUserById(userId);
+        if(user==null){
+            user = new SysUser();
+            user.setUserId(userId);
+            flag = true;
+        }
+
+        user.setUserId(userId);
+        user.setDeptId(deptId);
+        user.setUserName(name);
+        user.setNickName(nick);
+        user.setUserType(type);
+        user.setEmail(email);
+        user.setPhonenumber(phone);
+        user.setPassword(SecurityUtils.encryptPassword(pwd));
+        user.setStatus("0");
+        user.setDelFlag("0");
+        user.setLoginIp("");
+        user.setLoginDate(null);
+        user.setCreateBy("admin");
+        user.setCreateTime(new Date());
+        user.setUpdateBy("");
+        user.setUpdateTime(null);
+        user.setRemark("");
+
+        if(flag){
+            userRoleMapper.insertUser(user);
+        }else{
+            userRoleMapper.updateUser(user);
+        }
+
+        return user;
+    }
+
+    //endregion
+
+}

+ 1 - 0
vber-data-seeder/src/main/resources/META-INF/spring-devtools.properties

@@ -0,0 +1 @@
+restart.include.json=/com.alibaba.fastjson.*.jar

+ 184 - 0
vber-data-seeder/src/main/resources/application.yml

@@ -0,0 +1,184 @@
+# 项目相关配置
+vber:
+  # 名称
+  name: VberAdmin
+  # 版本
+  version: 1.0.0
+  # 版权年份
+  copyrightYear: 2023
+  # 实例演示开关
+  demoEnabled: true
+  # 文件路径 示例( Windows配置D:/vber/uploadPath,Linux配置 /home/vber/uploadPath)
+  profile: D:/Project/TEST/J_V1.0/VberAdmin/UploadPath
+  # 获取ip地址开关
+  addressEnabled: false
+  # 验证码类型 math 数组计算 char 字符验证
+  captchaType: math
+
+# 开发环境配置
+server:
+  # 服务器的HTTP端口,默认为8080
+  port: 6060
+  servlet:
+    # 应用的访问路径
+    context-path: /
+  tomcat:
+    # tomcat的URI编码
+    uri-encoding: UTF-8
+    # 连接数满后的排队数,默认为100
+    accept-count: 1000
+    threads:
+      # tomcat最大线程数,默认为200
+      max: 800
+      # Tomcat启动初始化的线程数,默认值10
+      min-spare: 100
+
+# 日志配置
+logging:
+  level:
+    com.vber: debug
+    org.springframework: warn
+
+# 用户配置
+user:
+  password:
+    # 密码最大错误次数
+    maxRetryCount: 5
+    # 密码锁定时间(默认10分钟)
+    lockTime: 10
+
+# Spring配置
+spring:
+  # 数据源配置
+  datasource:
+    type: com.alibaba.druid.pool.DruidDataSource
+    driverClassName: com.mysql.cj.jdbc.Driver
+    druid:
+      # 主库数据源
+      master:
+        url: jdbc:mysql://47.112.30.247:4501/VberTest_V1.0.0?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
+        username: root
+        password: Iwb2023
+      # 初始连接数
+      initialSize: 5
+      # 最小连接池数量
+      minIdle: 10
+      # 最大连接池数量
+      maxActive: 20
+      # 配置获取连接等待超时的时间
+      maxWait: 60000
+      # 配置连接超时时间
+      connectTimeout: 30000
+      # 配置网络超时时间
+      socketTimeout: 60000
+      # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
+      timeBetweenEvictionRunsMillis: 60000
+      # 配置一个连接在池中最小生存的时间,单位是毫秒
+      minEvictableIdleTimeMillis: 300000
+      # 配置一个连接在池中最大生存的时间,单位是毫秒
+      maxEvictableIdleTimeMillis: 900000
+      # 配置检测连接是否有效
+      validationQuery: SELECT 1 FROM DUAL
+      testWhileIdle: true
+      testOnBorrow: false
+      testOnReturn: false
+      webStatFilter:
+        enabled: true
+      statViewServlet:
+        enabled: true
+        # 设置白名单,不填则允许所有访问
+        allow:
+        url-pattern: /druid/*
+        # 控制台管理用户名和密码
+        login-username: vber
+        login-password: 123456
+      filter:
+        stat:
+          enabled: true
+          # 慢SQL记录
+          log-slow-sql: true
+          slow-sql-millis: 1000
+          merge-sql: true
+        wall:
+          config:
+            multi-statement-allow: true
+  # 资源信息
+  messages:
+    # 国际化资源文件路径
+    basename: i18n/messages
+#  profiles:
+#    active: druid
+  # 文件上传
+  servlet:
+    multipart:
+      # 单个文件大小
+      max-file-size: 10MB
+      # 设置总上传的文件大小
+      max-request-size: 20MB
+  # 服务模块
+  devtools:
+    restart:
+      # 热部署开关
+      enabled: true
+  # redis 配置
+  redis:
+    # 地址
+    host: 47.112.30.247
+    # 端口,默认为6379
+    port: 6399
+    # 数据库索引
+    database: 0
+    # 密码
+    password: Iwb-2017
+    # 连接超时时间
+    timeout: 10s
+    lettuce:
+      pool:
+        # 连接池中的最小空闲连接
+        min-idle: 0
+        # 连接池中的最大空闲连接
+        max-idle: 8
+        # 连接池的最大数据库连接数
+        max-active: 8
+        # #连接池最大阻塞等待时间(使用负值表示没有限制)
+        max-wait: -1ms
+
+# token配置
+token:
+  # 令牌自定义标识
+  header: Authorization
+  # 令牌密钥
+  secret: abcdefghiwbnetqrstuvwxyzlm
+  # 令牌有效期(默认30分钟)
+  expireTime: 30
+
+# MyBatis配置
+mybatis:
+  # 搜索指定包别名
+  typeAliasesPackage: com.vber.**.domain
+  # 配置mapper的扫描,找到所有的mapper.xml映射文件
+  mapperLocations: classpath*:mapper/**/*Mapper.xml
+  # 加载全局的配置文件
+  configLocation: classpath:mybatis/mybatis-config.xml
+
+# PageHelper分页插件
+pagehelper:
+  helperDialect: mysql
+  supportMethodsArguments: true
+  params: count=countSql
+
+# Swagger配置
+swagger:
+  # 是否开启swagger
+  enabled: true
+  # 请求前缀
+  pathMapping: /dev-api
+
+# 防止XSS攻击
+xss:
+  # 过滤开关
+  enabled: true
+  # 排除链接(多个用逗号分隔)
+  excludes: /system/notice
+  # 匹配链接
+  urlPatterns: /system/*,/monitor/*

+ 27 - 0
vber-data-seeder/src/main/resources/logback.xml

@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration>
+    <!-- 日志存放路径 -->
+	<property name="log.path" value="/vber/logs" />
+    <!-- 日志输出格式 -->
+	<property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n" />
+
+	<!-- 控制台输出 -->
+	<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
+		<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
+			<!-- <encoder>表示输出格式 -->
+			<pattern>${log.pattern}</pattern>
+			<!-- 控制台也要使用UTF-8,不要使用GBK,否则会中文乱码 -->
+			<charset>utf8</charset>
+		</encoder>
+	</appender>
+
+	<!-- 系统模块日志级别控制  -->
+	<logger name="com.vber" level="info" />
+	<!-- Spring日志级别控制  -->
+	<logger name="org.springframework" level="error" />
+
+	<root level="info">
+		<appender-ref ref="console" />
+	</root>
+
+</configuration>

+ 34 - 0
vber-data-seeder/src/main/resources/mapper/DsConfigMapper.xml

@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+		PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+		"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.vber.dataSeeder.mapper.DsConfigMapper">
+
+	<insert id="insertConfig" parameterType="SysConfig">
+		insert into sys_config (
+		<if test="configId != null and configId != '' ">config_id,</if>
+		<if test="configName != null and configName != '' ">config_name,</if>
+		<if test="configKey != null and configKey != '' ">config_key,</if>
+		<if test="configValue != null and configValue != '' ">config_value,</if>
+		<if test="configType != null and configType != '' ">config_type,</if>
+		<if test="createBy != null and createBy != ''">create_by,</if>
+		<if test="remark != null and remark != ''">remark,</if>
+		create_time
+		)values(
+		<if test="configId != null and configId != ''">#{configId},</if>
+		<if test="configName != null and configName != ''">#{configName},</if>
+		<if test="configKey != null and configKey != ''">#{configKey},</if>
+		<if test="configValue != null and configValue != ''">#{configValue},</if>
+		<if test="configType != null and configType != ''">#{configType},</if>
+		<if test="createBy != null and createBy != ''">#{createBy},</if>
+		<if test="remark != null and remark != ''">#{remark},</if>
+		sysdate()
+		)
+	</insert>
+
+	<delete id="deleteConfig">
+		delete from sys_config
+	</delete>
+
+
+</mapper>

+ 84 - 0
vber-data-seeder/src/main/resources/mapper/DsDeptMapper.xml

@@ -0,0 +1,84 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+		PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+		"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.vber.dataSeeder.mapper.DsDeptMapper">
+
+	<resultMap type="SysDept" id="SysDeptResult">
+		<id     property="deptId"     column="dept_id"     />
+		<result property="parentId"   column="parent_id"   />
+		<result property="ancestors"  column="ancestors"   />
+		<result property="deptName"   column="dept_name"   />
+		<result property="orderNum"   column="order_num"   />
+		<result property="leader"     column="leader"      />
+		<result property="phone"      column="phone"       />
+		<result property="email"      column="email"       />
+		<result property="status"     column="status"      />
+		<result property="delFlag"    column="del_flag"    />
+		<result property="parentName" column="parent_name" />
+		<result property="createBy"   column="create_by"   />
+		<result property="createTime" column="create_time" />
+		<result property="updateBy"   column="update_by"   />
+		<result property="updateTime" column="update_time" />
+	</resultMap>
+
+	<sql id="selectDeptVo">
+		select d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.phone, d.email, d.status, d.del_flag, d.create_by, d.create_time
+		from sys_dept d
+	</sql>
+
+	<select id="selectDeptById" parameterType="Long" resultMap="SysDeptResult">
+		select d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.phone, d.email, d.status,
+			   (select dept_name from sys_dept where dept_id = d.parent_id) parent_name
+		from sys_dept d
+		where d.dept_id = #{deptId}
+	</select>
+
+
+	<insert id="insertDept" parameterType="SysDept">
+		insert into sys_dept(
+		<if test="deptId != null and deptId != 0">dept_id,</if>
+		<if test="parentId != null and parentId != 0">parent_id,</if>
+		<if test="deptName != null and deptName != ''">dept_name,</if>
+		<if test="ancestors != null and ancestors != ''">ancestors,</if>
+		<if test="orderNum != null">order_num,</if>
+		<if test="leader != null and leader != ''">leader,</if>
+		<if test="phone != null and phone != ''">phone,</if>
+		<if test="email != null and email != ''">email,</if>
+		<if test="status != null">status,</if>
+		<if test="createBy != null and createBy != ''">create_by,</if>
+		create_time
+		)values(
+		<if test="deptId != null and deptId != 0">#{deptId},</if>
+		<if test="parentId != null and parentId != 0">#{parentId},</if>
+		<if test="deptName != null and deptName != ''">#{deptName},</if>
+		<if test="ancestors != null and ancestors != ''">#{ancestors},</if>
+		<if test="orderNum != null">#{orderNum},</if>
+		<if test="leader != null and leader != ''">#{leader},</if>
+		<if test="phone != null and phone != ''">#{phone},</if>
+		<if test="email != null and email != ''">#{email},</if>
+		<if test="status != null">#{status},</if>
+		<if test="createBy != null and createBy != ''">#{createBy},</if>
+		sysdate()
+		)
+	</insert>
+
+	<update id="updateDept" parameterType="SysDept">
+		update sys_dept
+		<set>
+			<if test="parentId != null and parentId != 0">parent_id = #{parentId},</if>
+			<if test="deptName != null and deptName != ''">dept_name = #{deptName},</if>
+			<if test="ancestors != null and ancestors != ''">ancestors = #{ancestors},</if>
+			<if test="orderNum != null">order_num = #{orderNum},</if>
+			<if test="leader != null">leader = #{leader},</if>
+			<if test="phone != null">phone = #{phone},</if>
+			<if test="email != null">email = #{email},</if>
+			<if test="status != null and status != ''">status = #{status},</if>
+			<if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if>
+			update_time = sysdate()
+		</set>
+		where dept_id = #{deptId}
+	</update>
+
+
+</mapper> 

+ 70 - 0
vber-data-seeder/src/main/resources/mapper/DsDictMapper.xml

@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+		PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+		"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.vber.dataSeeder.mapper.DsDictMapper">
+
+	<delete id="deleteDict">
+		delete from sys_dict_type;
+		delete from sys_dict_data;
+	</delete>
+
+	<delete id="deleteDictType">
+		delete from sys_dict_type;
+	</delete>
+	<insert id="insertDictType" parameterType="SysDictType">
+		insert into sys_dict_type(
+		<if test="dictId != null and dictName != ''">dict_id,</if>
+		<if test="dictName != null and dictName != ''">dict_name,</if>
+		<if test="dictType != null and dictType != ''">dict_type,</if>
+		<if test="status != null">status,</if>
+		<if test="remark != null and remark != ''">remark,</if>
+		<if test="createBy != null and createBy != ''">create_by,</if>
+		create_time
+		)values(
+		<if test="dictId != null and dictId != ''">#{dictId},</if>
+		<if test="dictName != null and dictName != ''">#{dictName},</if>
+		<if test="dictType != null and dictType != ''">#{dictType},</if>
+		<if test="status != null">#{status},</if>
+		<if test="remark != null and remark != ''">#{remark},</if>
+		<if test="createBy != null and createBy != ''">#{createBy},</if>
+		sysdate()
+		)
+	</insert>
+
+	<delete id="deleteDictData">
+		delete from sys_dict_data;
+	</delete>
+
+	<insert id="insertDictData" parameterType="SysDictData">
+		insert into sys_dict_data(
+		<if test="dictCode != null">dict_code,</if>
+		<if test="dictSort != null">dict_sort,</if>
+		<if test="dictLabel != null and dictLabel != ''">dict_label,</if>
+		<if test="dictValue != null and dictValue != ''">dict_value,</if>
+		<if test="dictType != null and dictType != ''">dict_type,</if>
+		<if test="cssClass != null and cssClass != ''">css_class,</if>
+		<if test="listClass != null and listClass != ''">list_class,</if>
+		<if test="isDefault != null and isDefault != ''">is_default,</if>
+		<if test="status != null">status,</if>
+		<if test="remark != null and remark != ''">remark,</if>
+		<if test="createBy != null and createBy != ''">create_by,</if>
+		create_time
+		)values(
+		<if test="dictCode != null">#{dictCode},</if>
+		<if test="dictSort != null">#{dictSort},</if>
+		<if test="dictLabel != null and dictLabel != ''">#{dictLabel},</if>
+		<if test="dictValue != null and dictValue != ''">#{dictValue},</if>
+		<if test="dictType != null and dictType != ''">#{dictType},</if>
+		<if test="cssClass != null and cssClass != ''">#{cssClass},</if>
+		<if test="listClass != null and listClass != ''">#{listClass},</if>
+		<if test="isDefault != null and isDefault != ''">#{isDefault},</if>
+		<if test="status != null">#{status},</if>
+		<if test="remark != null and remark != ''">#{remark},</if>
+		<if test="createBy != null and createBy != ''">#{createBy},</if>
+		sysdate()
+		)
+	</insert>
+
+
+</mapper> 

+ 116 - 0
vber-data-seeder/src/main/resources/mapper/DsMenuMapper.xml

@@ -0,0 +1,116 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+		PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+		"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.vber.dataSeeder.mapper.DsMenuMapper">
+
+	<resultMap type="SysMenu" id="SysMenuResult">
+		<id     property="menuId"         column="menu_id"        />
+		<result property="menuName"       column="menu_name"      />
+		<result property="parentName"     column="parent_name"    />
+		<result property="parentId"       column="parent_id"      />
+		<result property="orderNum"       column="order_num"      />
+		<result property="path"           column="path"           />
+		<result property="component"      column="component"      />
+		<result property="query"          column="query"          />
+		<result property="isFrame"        column="is_frame"       />
+		<result property="isCache"        column="is_cache"       />
+		<result property="menuType"       column="menu_type"      />
+		<result property="visible"        column="visible"        />
+		<result property="status"         column="status"         />
+		<result property="perms"          column="perms"          />
+		<result property="icon"           column="icon"           />
+		<result property="btnClass"       column="btn_class"           />
+		<result property="btnScript"      column="btn_script"           />
+		<result property="createBy"       column="create_by"      />
+		<result property="createTime"     column="create_time"    />
+		<result property="updateTime"     column="update_time"    />
+		<result property="updateBy"       column="update_by"      />
+		<result property="remark"         column="remark"         />
+	</resultMap>
+
+	<sql id="selectMenuVo">
+		select menu_id, menu_name, parent_id, order_num, path, component, `query`, is_frame, is_cache, menu_type, visible, status, ifnull(perms,'') as perms, icon, create_time
+		from sys_menu
+	</sql>
+
+	<select id="selectMenuById" parameterType="Long" resultMap="SysMenuResult">
+		<include refid="selectMenuVo"/>
+		where menu_id = #{menuId}
+	</select>
+
+	<select id="selectMenuAll" resultMap="SysMenuResult">
+		<include refid="selectMenuVo"/>
+		order by parent_id, order_num
+	</select>
+
+	<update id="updateMenu" parameterType="SysMenu">
+		update sys_menu
+		<set>
+			<if test="menuName != null and menuName != ''">menu_name = #{menuName},</if>
+			<if test="parentId != null">parent_id = #{parentId},</if>
+			<if test="orderNum != null">order_num = #{orderNum},</if>
+			<if test="path != null and path != ''">path = #{path},</if>
+			<if test="component != null">component = #{component},</if>
+			<if test="query != null">`query` = #{query},</if>
+			<if test="isFrame != null and isFrame != ''">is_frame = #{isFrame},</if>
+			<if test="isCache != null and isCache != ''">is_cache = #{isCache},</if>
+			<if test="menuType != null and menuType != ''">menu_type = #{menuType},</if>
+			<if test="visible != null">visible = #{visible},</if>
+			<if test="status != null">status = #{status},</if>
+			<if test="perms !=null">perms = #{perms},</if>
+			<if test="icon !=null and icon != ''">icon = #{icon},</if>
+			<if test="btnClass !=null">btn_class = #{btnClass},</if>
+			<if test="btnScript !=null">btn_script = #{btnScript},</if>
+			<if test="remark != null and remark != ''">remark = #{remark},</if>
+			<if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if>
+			update_time = sysdate()
+		</set>
+		where menu_id = #{menuId}
+	</update>
+
+	<insert id="insertMenu" parameterType="SysMenu">
+		insert into sys_menu(
+		<if test="menuId != null and menuId != 0">menu_id,</if>
+		<if test="parentId != null and parentId != 0">parent_id,</if>
+		<if test="menuName != null and menuName != ''">menu_name,</if>
+		<if test="orderNum != null">order_num,</if>
+		<if test="path != null and path != ''">path,</if>
+		<if test="component != null and component != ''">component,</if>
+		<if test="query != null and query != ''">`query`,</if>
+		<if test="isFrame != null and isFrame != ''">is_frame,</if>
+		<if test="isCache != null and isCache != ''">is_cache,</if>
+		<if test="menuType != null and menuType != ''">menu_type,</if>
+		<if test="visible != null">visible,</if>
+		<if test="status != null">status,</if>
+		<if test="perms !=null and perms != ''">perms,</if>
+		<if test="icon != null and icon != ''">icon,</if>
+		<if test="btnClass !=null">btn_class,</if>
+		<if test="btnScript !=null">btn_script,</if>
+		<if test="remark != null and remark != ''">remark,</if>
+		<if test="createBy != null and createBy != ''">create_by,</if>
+		create_time
+		)values(
+		<if test="menuId != null and menuId != 0">#{menuId},</if>
+		<if test="parentId != null and parentId != 0">#{parentId},</if>
+		<if test="menuName != null and menuName != ''">#{menuName},</if>
+		<if test="orderNum != null">#{orderNum},</if>
+		<if test="path != null and path != ''">#{path},</if>
+		<if test="component != null and component != ''">#{component},</if>
+		<if test="query != null and query != ''">#{query},</if>
+		<if test="isFrame != null and isFrame != ''">#{isFrame},</if>
+		<if test="isCache != null and isCache != ''">#{isCache},</if>
+		<if test="menuType != null and menuType != ''">#{menuType},</if>
+		<if test="visible != null">#{visible},</if>
+		<if test="status != null">#{status},</if>
+		<if test="perms !=null and perms != ''">#{perms},</if>
+		<if test="icon != null and icon != ''">#{icon},</if>
+		<if test="btnClass !=null">#{btnClass},</if>
+		<if test="btnScript !=null">#{btnScript},</if>
+		<if test="remark != null and remark != ''">#{remark},</if>
+		<if test="createBy != null and createBy != ''">#{createBy},</if>
+		sysdate()
+		)
+	</insert>
+
+</mapper> 

+ 66 - 0
vber-data-seeder/src/main/resources/mapper/DsPostMapper.xml

@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+		PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+		"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.vber.dataSeeder.mapper.DsPostMapper">
+
+	<resultMap type="SysPost" id="SysPostResult">
+		<id     property="postId"        column="post_id"       />
+		<result property="postCode"      column="post_code"     />
+		<result property="postName"      column="post_name"     />
+		<result property="postSort"      column="post_sort"     />
+		<result property="status"        column="status"        />
+		<result property="createBy"      column="create_by"     />
+		<result property="createTime"    column="create_time"   />
+		<result property="updateBy"      column="update_by"     />
+		<result property="updateTime"    column="update_time"   />
+		<result property="remark"        column="remark"        />
+	</resultMap>
+
+	<sql id="selectPostVo">
+		select post_id, post_code, post_name, post_sort, status, create_by, create_time, remark
+		from sys_post
+	</sql>
+
+	<select id="selectPostById" parameterType="Long" resultMap="SysPostResult">
+		<include refid="selectPostVo"/>
+		where post_id = #{postId}
+	</select>
+
+	<update id="updatePost" parameterType="SysPost">
+		update sys_post
+		<set>
+			<if test="postCode != null and postCode != ''">post_code = #{postCode},</if>
+			<if test="postName != null and postName != ''">post_name = #{postName},</if>
+			<if test="postSort != null">post_sort = #{postSort},</if>
+			<if test="status != null and status != ''">status = #{status},</if>
+			<if test="remark != null">remark = #{remark},</if>
+			<if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if>
+			update_time = sysdate()
+		</set>
+		where post_id = #{postId}
+	</update>
+
+	<insert id="insertPost" parameterType="SysPost" useGeneratedKeys="true" keyProperty="postId">
+		insert into sys_post(
+		<if test="postId != null and postId != 0">post_id,</if>
+		<if test="postCode != null and postCode != ''">post_code,</if>
+		<if test="postName != null and postName != ''">post_name,</if>
+		<if test="postSort != null">post_sort,</if>
+		<if test="status != null and status != ''">status,</if>
+		<if test="remark != null and remark != ''">remark,</if>
+		<if test="createBy != null and createBy != ''">create_by,</if>
+		create_time
+		)values(
+		<if test="postId != null and postId != 0">#{postId},</if>
+		<if test="postCode != null and postCode != ''">#{postCode},</if>
+		<if test="postName != null and postName != ''">#{postName},</if>
+		<if test="postSort != null">#{postSort},</if>
+		<if test="status != null and status != ''">#{status},</if>
+		<if test="remark != null and remark != ''">#{remark},</if>
+		<if test="createBy != null and createBy != ''">#{createBy},</if>
+		sysdate()
+		)
+	</insert>
+
+</mapper> 

+ 254 - 0
vber-data-seeder/src/main/resources/mapper/DsTableMapper.xml

@@ -0,0 +1,254 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+		PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+		"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.vber.dataSeeder.mapper.DsTableMapper">
+	<update id="dropTable" parameterType="int">
+		DROP TABLE IF EXISTS ${tableName};
+	</update>
+
+	<update id="createTable" parameterType="int">
+		<choose>
+			<when test="tableName=='sys_dept'">
+				CREATE TABLE IF NOT EXISTS sys_dept (
+				dept_id           BIGINT(20)      NOT NULL AUTO_INCREMENT    COMMENT '部门ID',
+				parent_id         BIGINT(20)      DEFAULT 0                  COMMENT '父部门ID',
+				ancestors         VARCHAR(50)     DEFAULT ''                 COMMENT '祖级列表',
+				dept_name         VARCHAR(30)     DEFAULT ''                 COMMENT '部门名称',
+				order_num         INT(4)          DEFAULT 0                  COMMENT '显示顺序',
+				leader            VARCHAR(20)     DEFAULT NULL               COMMENT '负责人',
+				phone             VARCHAR(11)     DEFAULT NULL               COMMENT '联系电话',
+				email             VARCHAR(50)     DEFAULT NULL               COMMENT '邮箱',
+				status            CHAR(1)         DEFAULT '0'                COMMENT '部门状态(0正常 1停用)',
+				del_flag          CHAR(1)         DEFAULT '0'                COMMENT '删除标志(0代表存在 2代表删除)',
+				create_by         VARCHAR(64)     DEFAULT ''                 COMMENT '创建者',
+				create_time 	    DATETIME                                   COMMENT '创建时间',
+				update_by         VARCHAR(64)     DEFAULT ''                 COMMENT '更新者',
+				update_time       DATETIME                                   COMMENT '更新时间',
+				PRIMARY KEY (dept_id)
+				) ENGINE=INNODB AUTO_INCREMENT=200 COMMENT = '部门表';
+			</when>
+			<when test="tableName=='sys_user'">
+				CREATE TABLE IF NOT EXISTS sys_user (
+				user_id           BIGINT(20)      NOT NULL AUTO_INCREMENT    COMMENT '用户ID',
+				dept_id           BIGINT(20)      DEFAULT NULL               COMMENT '部门ID',
+				nick_name         VARCHAR(30)     NOT NULL                   COMMENT '用户昵称',
+				user_name         VARCHAR(30)     NOT NULL                   COMMENT '用户账号',
+				email             VARCHAR(50)     DEFAULT ''                 COMMENT '用户邮箱',
+				phonenumber       VARCHAR(11)     DEFAULT ''                 COMMENT '手机号码',
+				user_type         INT(2)          DEFAULT 0                  COMMENT '用户类型(0系统用户,1普通用户)',
+				sex               CHAR(1)         DEFAULT '0'                COMMENT '用户性别(0男 1女 2未知)',
+				avatar            VARCHAR(200)    DEFAULT ''                 COMMENT '头像地址',
+				password          VARCHAR(100)    DEFAULT ''                 COMMENT '密码',
+				status            CHAR(1)         DEFAULT '0'                COMMENT '帐号状态(0正常 1停用)',
+				del_flag          CHAR(1)         DEFAULT '0'                COMMENT '删除标志(0代表存在 2代表删除)',
+				login_ip          VARCHAR(128)    DEFAULT ''                 COMMENT '最后登录IP',
+				login_date        DATETIME                                   COMMENT '最后登录时间',
+				create_by         VARCHAR(64)     DEFAULT ''                 COMMENT '创建者',
+				create_time       DATETIME                                   COMMENT '创建时间',
+				update_by         VARCHAR(64)     DEFAULT ''                 COMMENT '更新者',
+				update_time       DATETIME                                   COMMENT '更新时间',
+				remark            VARCHAR(500)    DEFAULT NULL               COMMENT '备注',
+				PRIMARY KEY (user_id)
+				) ENGINE=INNODB AUTO_INCREMENT=100 COMMENT = '用户信息表';
+			</when>
+			<when test="tableName=='sys_post'">
+				CREATE TABLE IF NOT EXISTS sys_post (
+				post_id       BIGINT(20)      NOT NULL AUTO_INCREMENT    COMMENT '岗位ID',
+				post_code     VARCHAR(64)     NOT NULL                   COMMENT '岗位编码',
+				post_name     VARCHAR(50)     NOT NULL                   COMMENT '岗位名称',
+				post_sort     INT(4)          NOT NULL                   COMMENT '显示顺序',
+				status        CHAR(1)         NOT NULL                   COMMENT '状态(0正常 1停用)',
+				create_by     VARCHAR(64)     DEFAULT ''                 COMMENT '创建者',
+				create_time   DATETIME                                   COMMENT '创建时间',
+				update_by     VARCHAR(64)     DEFAULT ''			       COMMENT '更新者',
+				update_time   DATETIME                                   COMMENT '更新时间',
+				remark        VARCHAR(500)    DEFAULT NULL               COMMENT '备注',
+				PRIMARY KEY (post_id)
+				) ENGINE=INNODB COMMENT = '岗位信息表';
+			</when>
+			<when test="tableName=='sys_role'">
+				CREATE TABLE IF NOT EXISTS sys_role (
+				role_id              BIGINT(20)      NOT NULL AUTO_INCREMENT    COMMENT '角色ID',
+				role_name            VARCHAR(30)     NOT NULL                   COMMENT '角色名称',
+				role_key             VARCHAR(100)    NOT NULL                   COMMENT '角色权限字符串',
+				role_sort            INT(4)          NOT NULL                   COMMENT '显示顺序',
+				data_scope           CHAR(1)         DEFAULT '1'                COMMENT '数据范围(1:全部数据权限 2:自定数据权限 3:本部门数据权限 4:本部门及以下数据权限)',
+				menu_check_strictly  TINYINT(1)      DEFAULT 1                  COMMENT '菜单树选择项是否关联显示',
+				dept_check_strictly  TINYINT(1)      DEFAULT 1                  COMMENT '部门树选择项是否关联显示',
+				status               CHAR(1)         NOT NULL                   COMMENT '角色状态(0正常 1停用)',
+				del_flag             CHAR(1)         DEFAULT '0'                COMMENT '删除标志(0代表存在 2代表删除)',
+				create_by            VARCHAR(64)     DEFAULT ''                 COMMENT '创建者',
+				create_time          DATETIME                                   COMMENT '创建时间',
+				update_by            VARCHAR(64)     DEFAULT ''                 COMMENT '更新者',
+				update_time          DATETIME                                   COMMENT '更新时间',
+				remark               VARCHAR(500)    DEFAULT NULL               COMMENT '备注',
+				PRIMARY KEY (role_id)
+				) ENGINE=INNODB AUTO_INCREMENT=100 COMMENT = '角色信息表';
+			</when>
+			<when test="tableName=='sys_menu'">
+				CREATE TABLE IF NOT EXISTS sys_menu (
+				menu_id           BIGINT(20)      NOT NULL AUTO_INCREMENT    COMMENT '菜单ID',
+				menu_name         VARCHAR(50)     NOT NULL                   COMMENT '菜单名称',
+				parent_id         BIGINT(20)      DEFAULT 0                  COMMENT '父菜单ID',
+				order_num         INT(4)          DEFAULT 0                  COMMENT '显示顺序',
+				path              VARCHAR(200)    DEFAULT ''                 COMMENT '路由地址',
+				component         VARCHAR(255)    DEFAULT NULL               COMMENT '组件路径',
+				query             VARCHAR(255)    DEFAULT NULL               COMMENT '路由参数',
+				is_frame          INT(1)          DEFAULT 1                  COMMENT '是否为外链(0是 1否)',
+				is_cache          INT(1)          DEFAULT 0                  COMMENT '是否缓存(0缓存 1不缓存)',
+				menu_type         CHAR(1)         DEFAULT ''                 COMMENT '菜单类型(M目录 C菜单 F按钮)',
+				visible           CHAR(1)         DEFAULT 0                  COMMENT '菜单状态(0显示 1隐藏)',
+				status            CHAR(1)         DEFAULT 0                  COMMENT '菜单状态(0正常 1停用)',
+				perms             VARCHAR(100)    DEFAULT NULL               COMMENT '权限标识',
+				icon              VARCHAR(100)    DEFAULT '#'                COMMENT '菜单图标',
+				btn_class          VARCHAR(100)    DEFAULT 'BTN BTN-LIGHT-PRIMARY'  COMMENT '按钮样式',
+				btn_script         VARCHAR(100)    DEFAULT ''                 COMMENT '按钮事件',
+				create_by         VARCHAR(64)     DEFAULT ''                 COMMENT '创建者',
+				create_time       DATETIME                                   COMMENT '创建时间',
+				update_by         VARCHAR(64)     DEFAULT ''                 COMMENT '更新者',
+				update_time       DATETIME                                   COMMENT '更新时间',
+				remark            VARCHAR(500)    DEFAULT ''                 COMMENT '备注',
+				PRIMARY KEY (MENU_ID)
+				) ENGINE=INNODB AUTO_INCREMENT=5000 COMMENT = '菜单权限表';
+			</when>
+			<when test="tableName=='sys_user_role'">
+				CREATE TABLE IF NOT EXISTS sys_user_role (
+				user_id   BIGINT(20) NOT NULL COMMENT '用户ID',
+				role_id   BIGINT(20) NOT NULL COMMENT '角色ID',
+				PRIMARY KEY(user_id, role_id)
+				) ENGINE=INNODB COMMENT = '用户和角色关联表';
+			</when>
+			<when test="tableName=='sys_role_menu'">
+				CREATE TABLE IF NOT EXISTS sys_role_menu (
+				role_id   BIGINT(20) NOT NULL COMMENT '角色ID',
+				menu_id   BIGINT(20) NOT NULL COMMENT '菜单ID',
+				PRIMARY KEY(role_id, menu_id)
+				) ENGINE=INNODB COMMENT = '角色和菜单关联表';
+			</when>
+			<when test="tableName=='sys_role_dept'">
+				CREATE TABLE IF NOT EXISTS sys_role_dept (
+				role_id   BIGINT(20) NOT NULL COMMENT '角色ID',
+				dept_id   BIGINT(20) NOT NULL COMMENT '部门ID',
+				PRIMARY KEY(role_id, dept_id)
+				) ENGINE=INNODB COMMENT = '角色和部门关联表';
+			</when>
+			<when test="tableName=='sys_user_post'">
+				CREATE TABLE IF NOT EXISTS sys_user_post (
+				user_id   BIGINT(20) NOT NULL COMMENT '用户ID',
+				post_id   BIGINT(20) NOT NULL COMMENT '岗位ID',
+				PRIMARY KEY (user_id, post_id)
+				) ENGINE=INNODB COMMENT = '用户与岗位关联表';
+			</when>
+			<when test="tableName=='sys_oper_log'">
+				CREATE TABLE IF NOT EXISTS sys_oper_log (
+				oper_id           BIGINT(20)      NOT NULL AUTO_INCREMENT    COMMENT '日志主键',
+				title             VARCHAR(50)     DEFAULT ''                 COMMENT '模块标题',
+				business_type     INT(2)          DEFAULT 0                  COMMENT '业务类型(0其它 1新增 2修改 3删除)',
+				method            VARCHAR(100)    DEFAULT ''                 COMMENT '方法名称',
+				request_method    VARCHAR(10)     DEFAULT ''                 COMMENT '请求方式',
+				operator_type     INT(1)          DEFAULT 0                  COMMENT '操作类别(0其它 1后台用户 2手机端用户)',
+				oper_name         VARCHAR(50)     DEFAULT ''                 COMMENT '操作人员',
+				dept_name         VARCHAR(50)     DEFAULT ''                 COMMENT '部门名称',
+				oper_url          VARCHAR(255)    DEFAULT ''                 COMMENT '请求URL',
+				oper_ip           VARCHAR(128)    DEFAULT ''                 COMMENT '主机地址',
+				oper_location     VARCHAR(255)    DEFAULT ''                 COMMENT '操作地点',
+				oper_param        VARCHAR(2000)   DEFAULT ''                 COMMENT '请求参数',
+				json_result       VARCHAR(2000)   DEFAULT ''                 COMMENT '返回参数',
+				status            INT(1)          DEFAULT 0                  COMMENT '操作状态(0正常 1异常)',
+				error_msg         VARCHAR(2000)   DEFAULT ''                 COMMENT '错误消息',
+				oper_time         DATETIME                                   COMMENT '操作时间',
+				cost_time         BIGINT(20)      DEFAULT 0                  COMMENT '消耗时间',
+				PRIMARY KEY (oper_id),
+				KEY IDX_SYS_OPER_LOG_BT (business_type),
+				KEY IDX_SYS_OPER_LOG_S  (status),
+				KEY IDX_SYS_OPER_LOG_OT (oper_time)
+				) ENGINE=INNODB AUTO_INCREMENT=100 COMMENT = '操作日志记录';
+			</when>
+			<when test="tableName=='sys_dict_type'">
+				CREATE TABLE IF NOT EXISTS sys_dict_type (
+				dict_id          BIGINT(20)      NOT NULL AUTO_INCREMENT    COMMENT '字典主键',
+				dict_name        VARCHAR(100)    DEFAULT ''                 COMMENT '字典名称',
+				dict_type        VARCHAR(100)    DEFAULT ''                 COMMENT '字典类型',
+				status           CHAR(1)         DEFAULT '0'                COMMENT '状态(0正常 1停用)',
+				create_by        VARCHAR(64)     DEFAULT ''                 COMMENT '创建者',
+				create_time      DATETIME                                   COMMENT '创建时间',
+				update_by        VARCHAR(64)     DEFAULT ''                 COMMENT '更新者',
+				update_time      DATETIME                                   COMMENT '更新时间',
+				remark           VARCHAR(500)    DEFAULT NULL               COMMENT '备注',
+				PRIMARY KEY (dict_id),
+				UNIQUE (dict_type)
+				) ENGINE=INNODB AUTO_INCREMENT=100 COMMENT = '字典类型表';
+			</when>
+			<when test="tableName=='sys_dict_data'">
+				CREATE TABLE IF NOT EXISTS sys_dict_data (
+				dict_code        BIGINT(20)      NOT NULL AUTO_INCREMENT    COMMENT '字典编码',
+				dict_sort        INT(4)          DEFAULT 0                  COMMENT '字典排序',
+				dict_label       VARCHAR(100)    DEFAULT ''                 COMMENT '字典标签',
+				dict_value       VARCHAR(100)    DEFAULT ''                 COMMENT '字典键值',
+				dict_type        VARCHAR(100)    DEFAULT ''                 COMMENT '字典类型',
+				css_class        VARCHAR(100)    DEFAULT NULL               COMMENT '样式属性(其他样式扩展)',
+				list_class       VARCHAR(100)    DEFAULT NULL               COMMENT '表格回显样式',
+				is_default       CHAR(1)         DEFAULT 'N'                COMMENT '是否默认(Y是 N否)',
+				status           CHAR(1)         DEFAULT '0'                COMMENT '状态(0正常 1停用)',
+				create_by        VARCHAR(64)     DEFAULT ''                 COMMENT '创建者',
+				create_time      DATETIME                                   COMMENT '创建时间',
+				update_by        VARCHAR(64)     DEFAULT ''                 COMMENT '更新者',
+				update_time      DATETIME                                   COMMENT '更新时间',
+				remark           VARCHAR(500)    DEFAULT NULL               COMMENT '备注',
+				PRIMARY KEY (dict_code)
+				) ENGINE=INNODB AUTO_INCREMENT=100 COMMENT = '字典数据表';
+			</when>
+			<when test="tableName=='sys_config'">
+				CREATE TABLE IF NOT EXISTS sys_config (
+				config_id         INT(5)          NOT NULL AUTO_INCREMENT    COMMENT '参数主键',
+				config_name       VARCHAR(100)    DEFAULT ''                 COMMENT '参数名称',
+				config_key        VARCHAR(100)    DEFAULT ''                 COMMENT '参数键名',
+				config_value      VARCHAR(500)    DEFAULT ''                 COMMENT '参数键值',
+				config_type       CHAR(1)         DEFAULT 'N'                COMMENT '系统内置(Y是 N否)',
+				create_by         VARCHAR(64)     DEFAULT ''                 COMMENT '创建者',
+				create_time       DATETIME                                   COMMENT '创建时间',
+				update_by         VARCHAR(64)     DEFAULT ''                 COMMENT '更新者',
+				update_time       DATETIME                                   COMMENT '更新时间',
+				remark            VARCHAR(500)    DEFAULT NULL               COMMENT '备注',
+				PRIMARY KEY (config_id)
+				)
+				ENGINE=INNODB
+				AUTO_INCREMENT=100
+				COMMENT = '参数配置表';
+			</when>
+			<when test="tableName=='sys_logininfor'">
+				CREATE TABLE IF NOT EXISTS sys_logininfor (
+				info_id        BIGINT(20)     NOT NULL AUTO_INCREMENT   COMMENT '访问ID',
+				user_name      VARCHAR(50)    DEFAULT ''                COMMENT '用户账号',
+				ipaddr         VARCHAR(128)   DEFAULT ''                COMMENT '登录IP地址',
+				login_location VARCHAR(255)   DEFAULT ''                COMMENT '登录地点',
+				browser        VARCHAR(50)    DEFAULT ''                COMMENT '浏览器类型',
+				os             VARCHAR(50)    DEFAULT ''                COMMENT '操作系统',
+				status         CHAR(1)        DEFAULT '0'               COMMENT '登录状态(0成功 1失败)',
+				msg            VARCHAR(255)   DEFAULT ''                COMMENT '提示消息',
+				login_time     DATETIME                                 COMMENT '访问时间',
+				PRIMARY KEY (info_id),
+				KEY IDX_SYS_LOGININFOR_S  (status),
+				KEY IDX_SYS_LOGININFOR_LT (login_time)
+				) ENGINE=INNODB AUTO_INCREMENT=100 COMMENT = '系统访问记录';
+			</when>
+			<when test="tableName=='sys_notice'">
+				CREATE TABLE IF NOT EXISTS sys_notice (
+				notice_id         INT(4)          NOT NULL AUTO_INCREMENT    COMMENT '公告ID',
+				notice_title      VARCHAR(50)     NOT NULL                   COMMENT '公告标题',
+				notice_type       CHAR(1)         NOT NULL                   COMMENT '公告类型(1通知 2公告)',
+				notice_content    LONGBLOB        DEFAULT NULL               COMMENT '公告内容',
+				status            CHAR(1)         DEFAULT '0'                COMMENT '公告状态(0正常 1关闭)',
+				create_by         VARCHAR(64)     DEFAULT ''                 COMMENT '创建者',
+				create_time       DATETIME                                   COMMENT '创建时间',
+				update_by         VARCHAR(64)     DEFAULT ''                 COMMENT '更新者',
+				update_time       DATETIME                                   COMMENT '更新时间',
+				remark            VARCHAR(255)    DEFAULT NULL               COMMENT '备注',
+				PRIMARY KEY (notice_id)
+				) ENGINE=INNODB AUTO_INCREMENT=10 COMMENT = '通知公告表';
+			</when>
+		</choose>
+	</update>
+
+</mapper>

+ 219 - 0
vber-data-seeder/src/main/resources/mapper/DsUserRoleMapper.xml

@@ -0,0 +1,219 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+		PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+		"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.vber.dataSeeder.mapper.DsUserRoleMapper">
+
+	<!-- region ROLE -->
+
+	<resultMap type="SysRole" id="SysRoleResult">
+		<id     property="roleId"             column="role_id"               />
+		<result property="roleName"           column="role_name"             />
+		<result property="roleKey"            column="role_key"              />
+		<result property="roleSort"           column="role_sort"             />
+		<result property="dataScope"          column="data_scope"            />
+		<result property="menuCheckStrictly"  column="menu_check_strictly"   />
+		<result property="deptCheckStrictly"  column="dept_check_strictly"   />
+		<result property="status"             column="status"                />
+		<result property="delFlag"            column="del_flag"              />
+		<result property="createBy"           column="create_by"             />
+		<result property="createTime"         column="create_time"           />
+		<result property="updateBy"           column="update_by"             />
+		<result property="updateTime"         column="update_time"           />
+		<result property="remark"             column="remark"                />
+	</resultMap>
+
+	<sql id="selectRoleVo">
+		select distinct r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.menu_check_strictly, r.dept_check_strictly,
+						r.status, r.del_flag, r.create_time, r.remark
+		from sys_role r
+	</sql>
+
+	<select id="selectRoleById" parameterType="Long" resultMap="SysRoleResult">
+		<include refid="selectRoleVo"/>
+		where r.role_id = #{roleId}
+	</select>
+
+	<insert id="insertRole" parameterType="SysRole" useGeneratedKeys="true" keyProperty="roleId">
+		insert into sys_role(
+		<if test="roleId != null and roleId != 0">role_id,</if>
+		<if test="roleName != null and roleName != ''">role_name,</if>
+		<if test="roleKey != null and roleKey != ''">role_key,</if>
+		<if test="roleSort != null">role_sort,</if>
+		<if test="dataScope != null and dataScope != ''">data_scope,</if>
+		<if test="menuCheckStrictly != null">menu_check_strictly,</if>
+		<if test="deptCheckStrictly != null">dept_check_strictly,</if>
+		<if test="status != null and status != ''">status,</if>
+		<if test="remark != null and remark != ''">remark,</if>
+		<if test="createBy != null and createBy != ''">create_by,</if>
+		create_time
+		)values(
+		<if test="roleId != null and roleId != 0">#{roleId},</if>
+		<if test="roleName != null and roleName != ''">#{roleName},</if>
+		<if test="roleKey != null and roleKey != ''">#{roleKey},</if>
+		<if test="roleSort != null">#{roleSort},</if>
+		<if test="dataScope != null and dataScope != ''">#{dataScope},</if>
+		<if test="menuCheckStrictly != null">#{menuCheckStrictly},</if>
+		<if test="deptCheckStrictly != null">#{deptCheckStrictly},</if>
+		<if test="status != null and status != ''">#{status},</if>
+		<if test="remark != null and remark != ''">#{remark},</if>
+		<if test="createBy != null and createBy != ''">#{createBy},</if>
+		sysdate()
+		)
+	</insert>
+
+	<update id="updateRole" parameterType="SysRole">
+		update sys_role
+		<set>
+			<if test="roleName != null and roleName != ''">role_name = #{roleName},</if>
+			<if test="roleKey != null and roleKey != ''">role_key = #{roleKey},</if>
+			<if test="roleSort != null">role_sort = #{roleSort},</if>
+			<if test="dataScope != null and dataScope != ''">data_scope = #{dataScope},</if>
+			<if test="menuCheckStrictly != null">menu_check_strictly = #{menuCheckStrictly},</if>
+			<if test="deptCheckStrictly != null">dept_check_strictly = #{deptCheckStrictly},</if>
+			<if test="status != null and status != ''">status = #{status},</if>
+			<if test="remark != null">remark = #{remark},</if>
+			<if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if>
+			update_time = sysdate()
+		</set>
+		where role_id = #{roleId}
+	</update>
+
+	<!-- endregion -->
+
+	<!-- region USER -->
+
+	<resultMap type="SysUser" id="SysUserResult">
+		<id     property="userId"       column="user_id"      />
+		<result property="deptId"       column="dept_id"      />
+		<result property="userName"     column="user_name"    />
+		<result property="nickName"     column="nick_name"    />
+		<result property="email"        column="email"        />
+		<result property="phonenumber"  column="phonenumber"  />
+		<result property="sex"          column="sex"          />
+		<result property="avatar"       column="avatar"       />
+		<result property="password"     column="password"     />
+		<result property="status"       column="status"       />
+		<result property="delFlag"      column="del_flag"     />
+		<result property="loginIp"      column="login_ip"     />
+		<result property="loginDate"    column="login_date"   />
+		<result property="createBy"     column="create_by"    />
+		<result property="createTime"   column="create_time"  />
+		<result property="updateBy"     column="update_by"    />
+		<result property="updateTime"   column="update_time"  />
+		<result property="remark"       column="remark"       />
+	</resultMap>
+
+	<sql id="selectUserVo">
+		select u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.avatar, u.phonenumber, u.password, u.sex, u.status,
+		       u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark
+		from sys_user u
+
+	</sql>
+
+	<select id="selectUserById" parameterType="Long" resultMap="SysUserResult">
+		<include refid="selectUserVo"/>
+		where u.user_id = #{userId}
+	</select>
+
+	<insert id="insertUser" parameterType="SysUser" useGeneratedKeys="true" keyProperty="userId">
+		insert into sys_user(
+		<if test="userId != null and userId != 0">user_id,</if>
+		<if test="deptId != null and deptId != 0">dept_id,</if>
+		<if test="userName != null and userName != ''">user_name,</if>
+		<if test="nickName != null and nickName != ''">nick_name,</if>
+		<if test="email != null and email != ''">email,</if>
+		<if test="avatar != null and avatar != ''">avatar,</if>
+		<if test="phonenumber != null and phonenumber != ''">phonenumber,</if>
+		<if test="sex != null and sex != ''">sex,</if>
+		<if test="password != null and password != ''">password,</if>
+		<if test="status != null and status != ''">status,</if>
+		<if test="createBy != null and createBy != ''">create_by,</if>
+		<if test="remark != null and remark != ''">remark,</if>
+		create_time
+		)values(
+		<if test="userId != null and userId != ''">#{userId},</if>
+		<if test="deptId != null and deptId != ''">#{deptId},</if>
+		<if test="userName != null and userName != ''">#{userName},</if>
+		<if test="nickName != null and nickName != ''">#{nickName},</if>
+		<if test="email != null and email != ''">#{email},</if>
+		<if test="avatar != null and avatar != ''">#{avatar},</if>
+		<if test="phonenumber != null and phonenumber != ''">#{phonenumber},</if>
+		<if test="sex != null and sex != ''">#{sex},</if>
+		<if test="password != null and password != ''">#{password},</if>
+		<if test="status != null and status != ''">#{status},</if>
+		<if test="createBy != null and createBy != ''">#{createBy},</if>
+		<if test="remark != null and remark != ''">#{remark},</if>
+		sysdate()
+		)
+	</insert>
+
+	<update id="updateUser" parameterType="SysUser">
+		update sys_user
+		<set>
+			<if test="deptId != null and deptId != 0">dept_id = #{deptId},</if>
+			<if test="userName != null and userName != ''">user_name = #{userName},</if>
+			<if test="nickName != null and nickName != ''">nick_name = #{nickName},</if>
+			<if test="email != null ">email = #{email},</if>
+			<if test="phonenumber != null ">phonenumber = #{phonenumber},</if>
+			<if test="sex != null and sex != ''">sex = #{sex},</if>
+			<if test="avatar != null and avatar != ''">avatar = #{avatar},</if>
+			<if test="password != null and password != ''">password = #{password},</if>
+			<if test="status != null and status != ''">status = #{status},</if>
+			<if test="loginIp != null and loginIp != ''">login_ip = #{loginIp},</if>
+			<if test="loginDate != null">login_date = #{loginDate},</if>
+			<if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if>
+			<if test="remark != null">remark = #{remark},</if>
+			update_time = sysdate()
+		</set>
+		where user_id = #{userId}
+	</update>
+
+	<!-- endregion -->
+
+
+	<delete id="deleteUserRole" parameterType="Long">
+		delete from sys_user_role where user_id = #{userId}
+	</delete>
+
+	<insert id="batchUserRole">
+		insert into sys_user_role(user_id, role_id) values
+		<foreach item="item" index="index" collection="list" separator=",">
+			(#{item.userId},#{item.roleId})
+		</foreach>
+	</insert>
+
+	<delete id="deleteUserPost" parameterType="Long">
+		delete from sys_user_post where user_id = #{userId}
+	</delete>
+
+	<insert id="batchUserPost">
+		insert into sys_user_post(user_id, post_id) values
+		<foreach item="item" index="index" collection="list" separator=",">
+			(#{item.userId},#{item.postId})
+		</foreach>
+	</insert>
+
+	<delete id="deleteRoleMenu" parameterType="Long">
+		delete from sys_role_menu where role_id =  #{roleId}
+	</delete>
+
+	<insert id="batchRoleMenu">
+		insert into sys_role_menu(role_id, menu_id) values
+		<foreach item="item" index="index" collection="list" separator=",">
+			(#{item.roleId},#{item.menuId})
+		</foreach>
+	</insert>
+
+	<delete id="deleteRoleDept" parameterType="Long">
+		delete from sys_role_dept where role_id =  #{roleId}
+	</delete>
+
+	<insert id="batchRoleDept">
+		insert into sys_role_dept(role_id, dept_id) values
+		<foreach item="item" index="index" collection="list" separator=",">
+			(#{item.roleId},#{item.deptId})
+		</foreach>
+	</insert>
+
+</mapper> 

+ 24 - 0
vber-data-seeder/src/main/resources/mybatis/mybatis-config.xml

@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE configuration
+        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-config.dtd">
+<configuration>
+    <!-- 全局参数 -->
+    <settings>
+        <!-- 使全局的映射器启用或禁用缓存 -->
+        <setting name="cacheEnabled" value="true"/>
+        <!-- 允许JDBC 支持自动生成主键 -->
+        <setting name="useGeneratedKeys" value="true"/>
+        <!-- 配置默认的执行器.SIMPLE就是普通执行器;REUSE执行器会重用预处理语句(prepared statements);BATCH执行器将重用语句并执行批量更新 -->
+        <setting name="defaultExecutorType" value="SIMPLE"/>
+        <!-- 指定 MyBatis 所用日志的具体实现 -->
+<!--        <setting name="logImpl" value="SLF4J"/>-->
+
+        <!-- 使用驼峰命名法转换字段 -->
+        <!-- <setting name="mapUnderscoreToCamelCase" value="true"/> -->
+    </settings>
+    <typeAliases>
+        <package name="com.vber" />
+    </typeAliases>
+
+</configuration>

+ 24 - 0
vber-domain-entity/pom.xml

@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>com.vber</groupId>
+        <artifactId>VberAdmin</artifactId>
+        <version>1.0.0</version>
+    </parent>
+
+    <artifactId>vber-domain-entity</artifactId>
+    <description>entity实体模块</description>
+
+    <dependencies>
+        <!-- 通用工具-->
+        <dependency>
+            <groupId>com.vber</groupId>
+            <artifactId>vber-common</artifactId>
+        </dependency>
+    </dependencies>
+
+
+</project>

+ 1 - 1
vber-system/src/main/java/com/vber/system/domain/SysCache.java → vber-domain-entity/src/main/java/com/vber/system/SysCache.java

@@ -1,4 +1,4 @@
-package com.vber.system.domain;
+package com.vber.system;
 
 import com.vber.common.utils.StringUtils;
 

+ 1 - 1
vber-system/src/main/java/com/vber/system/domain/SysConfig.java → vber-domain-entity/src/main/java/com/vber/system/SysConfig.java

@@ -1,4 +1,4 @@
-package com.vber.system.domain;
+package com.vber.system;
 
 import com.vber.common.annotation.Excel;
 import com.vber.common.annotation.Excel.ColumnType;

+ 1 - 1
vber-system/src/main/java/com/vber/system/domain/SysLogininfor.java → vber-domain-entity/src/main/java/com/vber/system/SysLogininfor.java

@@ -1,4 +1,4 @@
-package com.vber.system.domain;
+package com.vber.system;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.vber.common.annotation.Excel;

+ 1 - 1
vber-system/src/main/java/com/vber/system/domain/SysNotice.java → vber-domain-entity/src/main/java/com/vber/system/SysNotice.java

@@ -1,4 +1,4 @@
-package com.vber.system.domain;
+package com.vber.system;
 
 import com.vber.common.core.domain.BaseEntity;
 import com.vber.common.xss.Xss;

+ 1 - 1
vber-system/src/main/java/com/vber/system/domain/SysOperLog.java → vber-domain-entity/src/main/java/com/vber/system/SysOperLog.java

@@ -1,4 +1,4 @@
-package com.vber.system.domain;
+package com.vber.system;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.vber.common.annotation.Excel;

+ 1 - 1
vber-system/src/main/java/com/vber/system/domain/SysOrder.java → vber-domain-entity/src/main/java/com/vber/system/SysOrder.java

@@ -1,4 +1,4 @@
-package com.vber.system.domain;
+package com.vber.system;
 
 import com.vber.common.core.domain.BaseEntity;
 

+ 1 - 1
vber-system/src/main/java/com/vber/system/domain/SysPost.java → vber-domain-entity/src/main/java/com/vber/system/SysPost.java

@@ -1,4 +1,4 @@
-package com.vber.system.domain;
+package com.vber.system;
 
 import com.vber.common.annotation.Excel;
 import com.vber.common.annotation.Excel.ColumnType;

+ 1 - 1
vber-system/src/main/java/com/vber/system/domain/SysRoleDept.java → vber-domain-entity/src/main/java/com/vber/system/SysRoleDept.java

@@ -1,4 +1,4 @@
-package com.vber.system.domain;
+package com.vber.system;
 
 import org.apache.commons.lang3.builder.ToStringBuilder;
 import org.apache.commons.lang3.builder.ToStringStyle;

+ 9 - 1
vber-system/src/main/java/com/vber/system/domain/SysRoleMenu.java → vber-domain-entity/src/main/java/com/vber/system/SysRoleMenu.java

@@ -1,4 +1,4 @@
-package com.vber.system.domain;
+package com.vber.system;
 
 import org.apache.commons.lang3.builder.ToStringBuilder;
 import org.apache.commons.lang3.builder.ToStringStyle;
@@ -8,12 +8,20 @@ import org.apache.commons.lang3.builder.ToStringStyle;
  */
 public class SysRoleMenu
 {
+    public SysRoleMenu() {
+    }
+    public SysRoleMenu(Long roleId, Long menuId) {
+        this.roleId = roleId;
+        this.menuId = menuId;
+    }
     /** 角色ID */
     private Long roleId;
     
     /** 菜单ID */
     private Long menuId;
 
+
+
     public Long getRoleId()
     {
         return roleId;

+ 1 - 1
vber-system/src/main/java/com/vber/system/domain/SysUserOnline.java → vber-domain-entity/src/main/java/com/vber/system/SysUserOnline.java

@@ -1,4 +1,4 @@
-package com.vber.system.domain;
+package com.vber.system;
 
 /**
  * 当前在线会话

+ 9 - 1
vber-system/src/main/java/com/vber/system/domain/SysUserPost.java → vber-domain-entity/src/main/java/com/vber/system/SysUserPost.java

@@ -1,4 +1,4 @@
-package com.vber.system.domain;
+package com.vber.system;
 
 import org.apache.commons.lang3.builder.ToStringBuilder;
 import org.apache.commons.lang3.builder.ToStringStyle;
@@ -14,6 +14,14 @@ public class SysUserPost
     /** 岗位ID */
     private Long postId;
 
+    public SysUserPost() {
+    }
+
+    public SysUserPost(Long userId, Long postId) {
+        this.userId = userId;
+        this.postId = postId;
+    }
+
     public Long getUserId()
     {
         return userId;

+ 9 - 1
vber-system/src/main/java/com/vber/system/domain/SysUserRole.java → vber-domain-entity/src/main/java/com/vber/system/SysUserRole.java

@@ -1,4 +1,4 @@
-package com.vber.system.domain;
+package com.vber.system;
 
 import org.apache.commons.lang3.builder.ToStringBuilder;
 import org.apache.commons.lang3.builder.ToStringStyle;
@@ -14,6 +14,14 @@ public class SysUserRole
     /** 角色ID */
     private Long roleId;
 
+    public SysUserRole() {
+    }
+
+    public SysUserRole(Long userId, Long roleId) {
+        this.userId = userId;
+        this.roleId = roleId;
+    }
+
     public Long getUserId()
     {
         return userId;

+ 1 - 1
vber-system/src/main/java/com/vber/system/domain/TestUser.java → vber-domain-entity/src/main/java/com/vber/system/TestUser.java

@@ -1,4 +1,4 @@
-package com.vber.system.domain;
+package com.vber.system;
 
 import org.apache.commons.lang3.builder.ToStringBuilder;
 import org.apache.commons.lang3.builder.ToStringStyle;

+ 4 - 0
vber-web/src/main/resources/mybatis/mybatis-config.xml → vber-domain-entity/src/main/resources/mybatis/mybatis-config.xml

@@ -13,8 +13,12 @@
         <setting name="defaultExecutorType" value="SIMPLE"/>
         <!-- 指定 MyBatis 所用日志的具体实现 -->
         <setting name="logImpl" value="SLF4J"/>
+
         <!-- 使用驼峰命名法转换字段 -->
         <!-- <setting name="mapUnderscoreToCamelCase" value="true"/> -->
     </settings>
+    <typeAliases>
+        <package name="com.vber" />
+    </typeAliases>
 
 </configuration>

+ 1 - 1
vber-framework/src/main/java/com/vber/framework/aspectj/LogAspect.java

@@ -12,7 +12,7 @@ import com.vber.common.utils.StringUtils;
 import com.vber.common.utils.ip.IpUtils;
 import com.vber.framework.manager.AsyncManager;
 import com.vber.framework.manager.factory.AsyncFactory;
-import com.vber.system.domain.SysOperLog;
+import com.vber.system.SysOperLog;
 import org.apache.commons.lang3.ArrayUtils;
 import org.aspectj.lang.JoinPoint;
 import org.aspectj.lang.annotation.AfterReturning;

+ 2 - 2
vber-framework/src/main/java/com/vber/framework/manager/factory/AsyncFactory.java

@@ -7,8 +7,8 @@ import com.vber.common.utils.StringUtils;
 import com.vber.common.utils.ip.AddressUtils;
 import com.vber.common.utils.ip.IpUtils;
 import com.vber.common.utils.spring.SpringUtils;
-import com.vber.system.domain.SysLogininfor;
-import com.vber.system.domain.SysOperLog;
+import com.vber.system.SysLogininfor;
+import com.vber.system.SysOperLog;
 import com.vber.system.service.ISysLogininforService;
 import com.vber.system.service.ISysOperLogService;
 import eu.bitwalker.useragentutils.UserAgent;

+ 0 - 5
vber-generator-web/pom.xml

@@ -80,11 +80,6 @@
             <groupId>com.github.oshi</groupId>
             <artifactId>oshi-core</artifactId>
         </dependency>
-        <!-- 工具模块-->
-        <dependency>
-            <groupId>com.vber</groupId>
-            <artifactId>vber-common</artifactId>
-        </dependency>
         <!-- 代码生成-->
         <dependency>
             <groupId>com.vber</groupId>

+ 2 - 2
vber-generator/src/main/java/com/vber/generator/permission/PermissionNameGeneratorImpl.java

@@ -31,7 +31,7 @@ public class PermissionNameGeneratorImpl implements IPermissionNameGeneratorServ
         vuePermissions+="class permissionName {\n";
 
         javaPermissions="";
-        javaPermissions+="package com.vber.system;\n\n";
+        javaPermissions+="package com.vber.system.permissions;\n\n";
         javaPermissions+="/**\n";
         javaPermissions+=" * AUTO_GENERATOR\n";
         javaPermissions+=" */\n";
@@ -104,7 +104,7 @@ public class PermissionNameGeneratorImpl implements IPermissionNameGeneratorServ
     }
 
     private void saveFile() {
-        String filePath=  System.getProperty("user.dir").replace("vber-generator-web","vber-system")+"\\src\\main\\java\\com\\vber\\system\\";
+        String filePath=  System.getProperty("user.dir").replace("vber-generator-web","vber-system")+"\\src\\main\\java\\com\\vber\\system\\permissions\\";
         File dir = new File(filePath);
         // 检查放置文件的文件夹路径是否存在,不存在则创建
         if (!dir.exists()) {

+ 2 - 4
vber-system/pom.xml

@@ -12,14 +12,12 @@
     <artifactId>vber-system</artifactId>
     <description>system系统模块</description>
 
-
-
     <dependencies>
-        <!-- 通用工具-->
         <dependency>
             <groupId>com.vber</groupId>
-            <artifactId>vber-common</artifactId>
+            <artifactId>vber-domain-entity</artifactId>
         </dependency>
+
     </dependencies>
 
 </project>

+ 3 - 1
vber-system/src/main/java/com/vber/system/mapper/SysConfigMapper.java

@@ -1,12 +1,14 @@
 package com.vber.system.mapper;
 
-import com.vber.system.domain.SysConfig;
+import com.vber.system.SysConfig;
+import org.springframework.stereotype.Repository;
 
 import java.util.List;
 
 /**
  * 参数配置 数据层
  */
+@Repository
 public interface SysConfigMapper
 {
     /**

+ 1 - 1
vber-system/src/main/java/com/vber/system/mapper/SysLogininforMapper.java

@@ -1,6 +1,6 @@
 package com.vber.system.mapper;
 
-import com.vber.system.domain.SysLogininfor;
+import com.vber.system.SysLogininfor;
 
 import java.util.List;
 

+ 1 - 1
vber-system/src/main/java/com/vber/system/mapper/SysNoticeMapper.java

@@ -1,6 +1,6 @@
 package com.vber.system.mapper;
 
-import com.vber.system.domain.SysNotice;
+import com.vber.system.SysNotice;
 
 import java.util.List;
 

+ 1 - 1
vber-system/src/main/java/com/vber/system/mapper/SysOperLogMapper.java

@@ -1,6 +1,6 @@
 package com.vber.system.mapper;
 
-import com.vber.system.domain.SysOperLog;
+import com.vber.system.SysOperLog;
 
 import java.util.List;
 

+ 1 - 1
vber-system/src/main/java/com/vber/system/mapper/SysOrderMapper.java

@@ -1,6 +1,6 @@
 package com.vber.system.mapper;
 
-import com.vber.system.domain.SysOrder;
+import com.vber.system.SysOrder;
 
 import java.util.List;
 

+ 1 - 1
vber-system/src/main/java/com/vber/system/mapper/SysPostMapper.java

@@ -1,6 +1,6 @@
 package com.vber.system.mapper;
 
-import com.vber.system.domain.SysPost;
+import com.vber.system.SysPost;
 
 import java.util.List;
 

+ 1 - 1
vber-system/src/main/java/com/vber/system/mapper/SysRoleDeptMapper.java

@@ -1,6 +1,6 @@
 package com.vber.system.mapper;
 
-import com.vber.system.domain.SysRoleDept;
+import com.vber.system.SysRoleDept;
 
 import java.util.List;
 

+ 1 - 1
vber-system/src/main/java/com/vber/system/mapper/SysRoleMenuMapper.java

@@ -1,6 +1,6 @@
 package com.vber.system.mapper;
 
-import com.vber.system.domain.SysRoleMenu;
+import com.vber.system.SysRoleMenu;
 
 import java.util.List;
 

+ 1 - 1
vber-system/src/main/java/com/vber/system/mapper/SysUserPostMapper.java

@@ -1,6 +1,6 @@
 package com.vber.system.mapper;
 
-import com.vber.system.domain.SysUserPost;
+import com.vber.system.SysUserPost;
 
 import java.util.List;
 

+ 1 - 1
vber-system/src/main/java/com/vber/system/mapper/SysUserRoleMapper.java

@@ -1,6 +1,6 @@
 package com.vber.system.mapper;
 
-import com.vber.system.domain.SysUserRole;
+import com.vber.system.SysUserRole;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;

+ 1 - 1
vber-system/src/main/java/com/vber/system/mapper/TestUserMapper.java

@@ -1,6 +1,6 @@
 package com.vber.system.mapper;
 
-import com.vber.system.domain.TestUser;
+import com.vber.system.TestUser;
 
 import java.util.List;
 

+ 67 - 55
vber-system/src/main/java/com/vber/system/permissionName.java → vber-system/src/main/java/com/vber/system/permissions/permissionName.java

@@ -1,141 +1,153 @@
-package com.vber.system;
+package com.vber.system.permissions;
 
 /**
  * AUTO_GENERATOR
+ * DATE: 2023-07-24 13:49:32
+ * BY IWB_Y
  */
 public class permissionName {
-	public static final String SystemUserList = "system:user:list";
+	public static final String System = "system";
+	public static final String SystemUser = "system:user";
 	public static final String SystemUserQuery = "system:user:query";
 	public static final String SystemUserAdd = "system:user:add";
-	public static final String SystemUserEdit = "system:user::edit";
+	public static final String SystemUserEdit = "system:user:edit";
 	public static final String SystemUserRemove = "system:user:remove";
 	public static final String SystemUserExport = "system:user:export";
 	public static final String SystemUserImport = "system:user:import";
 	public static final String SystemUserResetpwd = "system:user:resetPwd";
-	public static final String SystemRoleList = "system:role:list";
+	public static final String SystemRole = "system:role";
 	public static final String SystemRoleQuery = "system:role:query";
 	public static final String SystemRoleAdd = "system:role:add";
-	public static final String SystemRoleEdit = "system:role::edit";
+	public static final String SystemRoleEdit = "system:role:edit";
 	public static final String SystemRoleRemove = "system:role:remove";
 	public static final String SystemRoleExport = "system:role:export";
-	public static final String SystemMenuList = "system:menu:list";
+	public static final String SystemMenu = "system:menu";
 	public static final String SystemMenuQuery = "system:menu:query";
 	public static final String SystemMenuAdd = "system:menu:add";
-	public static final String SystemMenuEdit = "system:menu::edit";
+	public static final String SystemMenuEdit = "system:menu:edit";
 	public static final String SystemMenuRemove = "system:menu:remove";
-	public static final String SystemDeptList = "system:dept:list";
+	public static final String SystemDept = "system:dept";
 	public static final String SystemDeptQuery = "system:dept:query";
 	public static final String SystemDeptAdd = "system:dept:add";
-	public static final String SystemDeptEdit = "system:dept::edit";
+	public static final String SystemDeptEdit = "system:dept:edit";
 	public static final String SystemDeptRemove = "system:dept:remove";
-	public static final String SystemPostList = "system:post:list";
+	public static final String SystemPost = "system:post";
 	public static final String SystemPostQuery = "system:post:query";
 	public static final String SystemPostAdd = "system:post:add";
-	public static final String SystemPostEdit = "system:post::edit";
+	public static final String SystemPostEdit = "system:post:edit";
 	public static final String SystemPostRemove = "system:post:remove";
 	public static final String SystemPostExport = "system:post:export";
-	public static final String SystemDictList = "system:dict:list";
+	public static final String SystemDict = "system:dict";
 	public static final String SystemDictQuery = "system:dict:query";
 	public static final String SystemDictAdd = "system:dict:add";
-	public static final String SystemDictEdit = "system:dict::edit";
+	public static final String SystemDictEdit = "system:dict:edit";
 	public static final String SystemDictRemove = "system:dict:remove";
 	public static final String SystemDictExport = "system:dict:export";
-	public static final String SystemConfigList = "system:config:list";
+	public static final String SystemConfig = "system:config";
 	public static final String SystemConfigQuery = "system:config:query";
 	public static final String SystemConfigAdd = "system:config:add";
 	public static final String SystemConfigEdit = "system:config:edit";
 	public static final String SystemConfigRemove = "system:config:remove";
 	public static final String SystemConfigExport = "system:config:export";
-	public static final String SystemNoticeList = "system:notice:list";
+	public static final String SystemNotice = "system:notice";
 	public static final String SystemNoticeQuery = "system:notice:query";
 	public static final String SystemNoticeAdd = "system:notice:add";
 	public static final String SystemNoticeEdit = "system:notice:edit";
 	public static final String SystemNoticeRemove = "system:notice:remove";
-	public static final String MonitorOperlogList = "monitor:operlog:list";
-	public static final String MonitorOperlogQuery = "monitor:operlog:query";
-	public static final String MonitorOperlogRemove = "monitor:operlog:remove";
-	public static final String MonitorOperlogExport = "monitor:operlog:export";
-	public static final String MonitorLogininforList = "monitor:logininfor:list";
-	public static final String MonitorLogininforQuery = "monitor:logininfor:query";
-	public static final String MonitorLogininforUnlock = "monitor:logininfor:unlock";
-	public static final String MonitorLogininforRemove = "monitor:logininfor:remove";
-	public static final String MonitorLogininforExport = "monitor:logininfor:export";
-	public static final String MonitorOnlineList = "monitor:online:list";
+	public static final String SystemNoticeExport = "system:notice:export";
+	public static final String SystemLog = "system:log";
+	public static final String SystemLogOperlog = "system:log:operlog";
+	public static final String SystemLogOperlogQuery = "system:log:operlog:query";
+	public static final String SystemLogOperlogRemove = "system:log:operlog:remove";
+	public static final String SystemLogOperlogExport = "system:log:operlog:export";
+	public static final String SystemLogLogininfor = "system:log:logininfor";
+	public static final String SystemLogLogininforQuery = "system:log:logininfor:query";
+	public static final String SystemLogLogininforRemove = "system:log:logininfor:remove";
+	public static final String SystemLogLogininforExport = "system:log:logininfor:export";
+	public static final String SystemLogLogininforUnlock = "system:log:logininfor:unlock";
+	public static final String Monitor = "monitor";
+	public static final String MonitorOnline = "monitor:online";
 	public static final String MonitorOnlineQuery = "monitor:online:query";
 	public static final String MonitorOnlineBatchlogout = "monitor:online:batchLogout";
 	public static final String MonitorOnlineForcelogout = "monitor:online:forceLogout";
-	public static final String MonitorDruidList = "monitor:druid:list";
-	public static final String MonitorServerList = "monitor:server:list";
-	public static final String MonitorCacheList = "monitor:cache:list";
+	public static final String MonitorDruid = "monitor:druid";
+	public static final String MonitorServer = "monitor:server";
+	public static final String MonitorCache = "monitor:cache";
+	public static final String MonitorCachelist = "monitor:cacheList";
 }
 
 
 /**
 
 class permissionName {
-	SystemUserList = "system:user:list"
+	System = "system"
+	SystemUser = "system:user"
 	SystemUserQuery = "system:user:query"
 	SystemUserAdd = "system:user:add"
-	SystemUserEdit = "system:user::edit"
+	SystemUserEdit = "system:user:edit"
 	SystemUserRemove = "system:user:remove"
 	SystemUserExport = "system:user:export"
 	SystemUserImport = "system:user:import"
 	SystemUserResetpwd = "system:user:resetPwd"
-	SystemRoleList = "system:role:list"
+	SystemRole = "system:role"
 	SystemRoleQuery = "system:role:query"
 	SystemRoleAdd = "system:role:add"
-	SystemRoleEdit = "system:role::edit"
+	SystemRoleEdit = "system:role:edit"
 	SystemRoleRemove = "system:role:remove"
 	SystemRoleExport = "system:role:export"
-	SystemMenuList = "system:menu:list"
+	SystemMenu = "system:menu"
 	SystemMenuQuery = "system:menu:query"
 	SystemMenuAdd = "system:menu:add"
-	SystemMenuEdit = "system:menu::edit"
+	SystemMenuEdit = "system:menu:edit"
 	SystemMenuRemove = "system:menu:remove"
-	SystemDeptList = "system:dept:list"
+	SystemDept = "system:dept"
 	SystemDeptQuery = "system:dept:query"
 	SystemDeptAdd = "system:dept:add"
-	SystemDeptEdit = "system:dept::edit"
+	SystemDeptEdit = "system:dept:edit"
 	SystemDeptRemove = "system:dept:remove"
-	SystemPostList = "system:post:list"
+	SystemPost = "system:post"
 	SystemPostQuery = "system:post:query"
 	SystemPostAdd = "system:post:add"
-	SystemPostEdit = "system:post::edit"
+	SystemPostEdit = "system:post:edit"
 	SystemPostRemove = "system:post:remove"
 	SystemPostExport = "system:post:export"
-	SystemDictList = "system:dict:list"
+	SystemDict = "system:dict"
 	SystemDictQuery = "system:dict:query"
 	SystemDictAdd = "system:dict:add"
-	SystemDictEdit = "system:dict::edit"
+	SystemDictEdit = "system:dict:edit"
 	SystemDictRemove = "system:dict:remove"
 	SystemDictExport = "system:dict:export"
-	SystemConfigList = "system:config:list"
+	SystemConfig = "system:config"
 	SystemConfigQuery = "system:config:query"
 	SystemConfigAdd = "system:config:add"
 	SystemConfigEdit = "system:config:edit"
 	SystemConfigRemove = "system:config:remove"
 	SystemConfigExport = "system:config:export"
-	SystemNoticeList = "system:notice:list"
+	SystemNotice = "system:notice"
 	SystemNoticeQuery = "system:notice:query"
 	SystemNoticeAdd = "system:notice:add"
 	SystemNoticeEdit = "system:notice:edit"
 	SystemNoticeRemove = "system:notice:remove"
-	MonitorOperlogList = "monitor:operlog:list"
-	MonitorOperlogQuery = "monitor:operlog:query"
-	MonitorOperlogRemove = "monitor:operlog:remove"
-	MonitorOperlogExport = "monitor:operlog:export"
-	MonitorLogininforList = "monitor:logininfor:list"
-	MonitorLogininforQuery = "monitor:logininfor:query"
-	MonitorLogininforUnlock = "monitor:logininfor:unlock"
-	MonitorLogininforRemove = "monitor:logininfor:remove"
-	MonitorLogininforExport = "monitor:logininfor:export"
-	MonitorOnlineList = "monitor:online:list"
+	SystemNoticeExport = "system:notice:export"
+	SystemLog = "system:log"
+	SystemLogOperlog = "system:log:operlog"
+	SystemLogOperlogQuery = "system:log:operlog:query"
+	SystemLogOperlogRemove = "system:log:operlog:remove"
+	SystemLogOperlogExport = "system:log:operlog:export"
+	SystemLogLogininfor = "system:log:logininfor"
+	SystemLogLogininforQuery = "system:log:logininfor:query"
+	SystemLogLogininforRemove = "system:log:logininfor:remove"
+	SystemLogLogininforExport = "system:log:logininfor:export"
+	SystemLogLogininforUnlock = "system:log:logininfor:unlock"
+	Monitor = "monitor"
+	MonitorOnline = "monitor:online"
 	MonitorOnlineQuery = "monitor:online:query"
 	MonitorOnlineBatchlogout = "monitor:online:batchLogout"
 	MonitorOnlineForcelogout = "monitor:online:forceLogout"
-	MonitorDruidList = "monitor:druid:list"
-	MonitorServerList = "monitor:server:list"
-	MonitorCacheList = "monitor:cache:list"
+	MonitorDruid = "monitor:druid"
+	MonitorServer = "monitor:server"
+	MonitorCache = "monitor:cache"
+	MonitorCachelist = "monitor:cacheList"
 }
 export const permissionNames = new permissionName()
 export default permissionName

+ 1 - 1
vber-system/src/main/java/com/vber/system/service/ISysConfigService.java

@@ -1,6 +1,6 @@
 package com.vber.system.service;
 
-import com.vber.system.domain.SysConfig;
+import com.vber.system.SysConfig;
 
 import java.util.List;
 

+ 1 - 1
vber-system/src/main/java/com/vber/system/service/ISysLogininforService.java

@@ -1,6 +1,6 @@
 package com.vber.system.service;
 
-import com.vber.system.domain.SysLogininfor;
+import com.vber.system.SysLogininfor;
 
 import java.util.List;
 

+ 1 - 1
vber-system/src/main/java/com/vber/system/service/ISysNoticeService.java

@@ -1,6 +1,6 @@
 package com.vber.system.service;
 
-import com.vber.system.domain.SysNotice;
+import com.vber.system.SysNotice;
 
 import java.util.List;
 

+ 1 - 1
vber-system/src/main/java/com/vber/system/service/ISysOperLogService.java

@@ -1,6 +1,6 @@
 package com.vber.system.service;
 
-import com.vber.system.domain.SysOperLog;
+import com.vber.system.SysOperLog;
 
 import java.util.List;
 

+ 1 - 1
vber-system/src/main/java/com/vber/system/service/ISysOrderService.java

@@ -1,6 +1,6 @@
 package com.vber.system.service;
 
-import com.vber.system.domain.SysOrder;
+import com.vber.system.SysOrder;
 
 import java.util.List;
 

+ 1 - 1
vber-system/src/main/java/com/vber/system/service/ISysPostService.java

@@ -1,6 +1,6 @@
 package com.vber.system.service;
 
-import com.vber.system.domain.SysPost;
+import com.vber.system.SysPost;
 
 import java.util.List;
 

+ 1 - 1
vber-system/src/main/java/com/vber/system/service/ISysRoleService.java

@@ -1,7 +1,7 @@
 package com.vber.system.service;
 
 import com.vber.common.core.domain.entity.SysRole;
-import com.vber.system.domain.SysUserRole;
+import com.vber.system.SysUserRole;
 
 import java.util.List;
 import java.util.Set;

+ 1 - 1
vber-system/src/main/java/com/vber/system/service/ISysUserOnlineService.java

@@ -1,7 +1,7 @@
 package com.vber.system.service;
 
 import com.vber.common.core.domain.model.LoginUser;
-import com.vber.system.domain.SysUserOnline;
+import com.vber.system.SysUserOnline;
 
 /**
  * 在线用户 服务层

+ 1 - 1
vber-system/src/main/java/com/vber/system/service/impl/SysConfigServiceImpl.java

@@ -8,7 +8,7 @@ import com.vber.common.core.text.Convert;
 import com.vber.common.enums.DataSourceType;
 import com.vber.common.exception.ServiceException;
 import com.vber.common.utils.StringUtils;
-import com.vber.system.domain.SysConfig;
+import com.vber.system.SysConfig;
 import com.vber.system.mapper.SysConfigMapper;
 import com.vber.system.service.ISysConfigService;
 import org.springframework.beans.factory.annotation.Autowired;

+ 1 - 3
vber-system/src/main/java/com/vber/system/service/impl/SysLogininforServiceImpl.java

@@ -1,8 +1,6 @@
 package com.vber.system.service.impl;
 
-import com.vber.common.annotation.DataSource;
-import com.vber.common.enums.DataSourceType;
-import com.vber.system.domain.SysLogininfor;
+import com.vber.system.SysLogininfor;
 import com.vber.system.mapper.SysLogininforMapper;
 import com.vber.system.service.ISysLogininforService;
 import org.springframework.beans.factory.annotation.Autowired;

+ 1 - 3
vber-system/src/main/java/com/vber/system/service/impl/SysNoticeServiceImpl.java

@@ -1,8 +1,6 @@
 package com.vber.system.service.impl;
 
-import com.vber.common.annotation.DataSource;
-import com.vber.common.enums.DataSourceType;
-import com.vber.system.domain.SysNotice;
+import com.vber.system.SysNotice;
 import com.vber.system.mapper.SysNoticeMapper;
 import com.vber.system.service.ISysNoticeService;
 import org.springframework.beans.factory.annotation.Autowired;

+ 1 - 3
vber-system/src/main/java/com/vber/system/service/impl/SysOperLogServiceImpl.java

@@ -1,8 +1,6 @@
 package com.vber.system.service.impl;
 
-import com.vber.common.annotation.DataSource;
-import com.vber.common.enums.DataSourceType;
-import com.vber.system.domain.SysOperLog;
+import com.vber.system.SysOperLog;
 import com.vber.system.mapper.SysOperLogMapper;
 import com.vber.system.service.ISysOperLogService;
 import org.springframework.beans.factory.annotation.Autowired;

+ 1 - 1
vber-system/src/main/java/com/vber/system/service/impl/SysOrderServiceImpl.java

@@ -2,7 +2,7 @@ package com.vber.system.service.impl;
 
 import com.vber.common.annotation.DataSource;
 import com.vber.common.enums.DataSourceType;
-import com.vber.system.domain.SysOrder;
+import com.vber.system.SysOrder;
 import com.vber.system.mapper.SysOrderMapper;
 import com.vber.system.service.ISysOrderService;
 import org.springframework.beans.factory.annotation.Autowired;

+ 1 - 3
vber-system/src/main/java/com/vber/system/service/impl/SysPostServiceImpl.java

@@ -1,11 +1,9 @@
 package com.vber.system.service.impl;
 
-import com.vber.common.annotation.DataSource;
 import com.vber.common.constant.UserConstants;
-import com.vber.common.enums.DataSourceType;
 import com.vber.common.exception.ServiceException;
 import com.vber.common.utils.StringUtils;
-import com.vber.system.domain.SysPost;
+import com.vber.system.SysPost;
 import com.vber.system.mapper.SysPostMapper;
 import com.vber.system.mapper.SysUserPostMapper;
 import com.vber.system.service.ISysPostService;

+ 3 - 5
vber-system/src/main/java/com/vber/system/service/impl/SysRoleServiceImpl.java

@@ -1,18 +1,16 @@
 package com.vber.system.service.impl;
 
 import com.vber.common.annotation.DataScope;
-import com.vber.common.annotation.DataSource;
 import com.vber.common.constant.UserConstants;
 import com.vber.common.core.domain.entity.SysRole;
 import com.vber.common.core.domain.entity.SysUser;
-import com.vber.common.enums.DataSourceType;
 import com.vber.common.exception.ServiceException;
 import com.vber.common.utils.SecurityUtils;
 import com.vber.common.utils.StringUtils;
 import com.vber.common.utils.spring.SpringUtils;
-import com.vber.system.domain.SysRoleDept;
-import com.vber.system.domain.SysRoleMenu;
-import com.vber.system.domain.SysUserRole;
+import com.vber.system.SysRoleDept;
+import com.vber.system.SysRoleMenu;
+import com.vber.system.SysUserRole;
 import com.vber.system.mapper.SysRoleDeptMapper;
 import com.vber.system.mapper.SysRoleMapper;
 import com.vber.system.mapper.SysRoleMenuMapper;

+ 1 - 3
vber-system/src/main/java/com/vber/system/service/impl/SysUserOnlineServiceImpl.java

@@ -1,10 +1,8 @@
 package com.vber.system.service.impl;
 
-import com.vber.common.annotation.DataSource;
 import com.vber.common.core.domain.model.LoginUser;
-import com.vber.common.enums.DataSourceType;
 import com.vber.common.utils.StringUtils;
-import com.vber.system.domain.SysUserOnline;
+import com.vber.system.SysUserOnline;
 import com.vber.system.service.ISysUserOnlineService;
 import org.springframework.stereotype.Service;
 

+ 3 - 5
vber-system/src/main/java/com/vber/system/service/impl/SysUserServiceImpl.java

@@ -1,19 +1,17 @@
 package com.vber.system.service.impl;
 
 import com.vber.common.annotation.DataScope;
-import com.vber.common.annotation.DataSource;
 import com.vber.common.constant.UserConstants;
 import com.vber.common.core.domain.entity.SysRole;
 import com.vber.common.core.domain.entity.SysUser;
-import com.vber.common.enums.DataSourceType;
 import com.vber.common.exception.ServiceException;
 import com.vber.common.utils.SecurityUtils;
 import com.vber.common.utils.StringUtils;
 import com.vber.common.utils.bean.BeanValidators;
 import com.vber.common.utils.spring.SpringUtils;
-import com.vber.system.domain.SysPost;
-import com.vber.system.domain.SysUserPost;
-import com.vber.system.domain.SysUserRole;
+import com.vber.system.SysPost;
+import com.vber.system.SysUserPost;
+import com.vber.system.SysUserRole;
 import com.vber.system.mapper.*;
 import com.vber.system.service.ISysConfigService;
 import com.vber.system.service.ISysUserService;

+ 6 - 6
vber-system/src/main/resources/mapper/system/SysMenuMapper.xml

@@ -20,8 +20,8 @@
 		<result property="status"         column="status"         />
 		<result property="perms"          column="perms"          />
 		<result property="icon"           column="icon"           />
-		<result property="btnClass"       column="btnClass"           />
-		<result property="btnScript"      column="btnScript"           />
+		<result property="btnClass"       column="btn_class"           />
+		<result property="btnScript"      column="btn_script"           />
 		<result property="createBy"       column="create_by"      />
 		<result property="createTime"     column="create_time"    />
 		<result property="updateTime"     column="update_time"    />
@@ -160,8 +160,8 @@
 			<if test="status != null">status = #{status},</if>
 			<if test="perms !=null">perms = #{perms},</if>
 			<if test="icon !=null and icon != ''">icon = #{icon},</if>
-			<if test="btnClass !=null">btnClass = #{btnClass},</if>
-			<if test="btnScript !=null">btnScript = #{btnScript},</if>
+			<if test="btnClass !=null">btn_class = #{btnClass},</if>
+			<if test="btnScript !=null">btn_script = #{btnScript},</if>
 			<if test="remark != null and remark != ''">remark = #{remark},</if>
 			<if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if>
 			update_time = sysdate()
@@ -185,8 +185,8 @@
 		<if test="status != null">status,</if>
 		<if test="perms !=null and perms != ''">perms,</if>
 		<if test="icon != null and icon != ''">icon,</if>
-		<if test="btnClass !=null">btnClass,</if>
-		<if test="btnScript !=null">btnScript,</if>
+		<if test="btnClass !=null">btn_class,</if>
+		<if test="btnScript !=null">btn_script,</if>
 		<if test="remark != null and remark != ''">remark,</if>
 		<if test="createBy != null and createBy != ''">create_by,</if>
 		create_time

+ 1 - 1
vber-web/src/main/java/com/vber/web/controller/monitor/CacheController.java

@@ -3,7 +3,7 @@ package com.vber.web.controller.monitor;
 import com.vber.common.constant.CacheConstants;
 import com.vber.common.core.domain.AjaxResult;
 import com.vber.common.utils.StringUtils;
-import com.vber.system.domain.SysCache;
+import com.vber.system.SysCache;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.redis.core.RedisCallback;
 import org.springframework.data.redis.core.RedisTemplate;

+ 1 - 1
vber-web/src/main/java/com/vber/web/controller/monitor/SysLogininforController.java

@@ -7,7 +7,7 @@ import com.vber.common.core.page.TableDataInfo;
 import com.vber.common.enums.BusinessType;
 import com.vber.common.utils.poi.ExcelUtil;
 import com.vber.framework.web.service.SysPasswordService;
-import com.vber.system.domain.SysLogininfor;
+import com.vber.system.SysLogininfor;
 import com.vber.system.service.ISysLogininforService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;

+ 1 - 1
vber-web/src/main/java/com/vber/web/controller/monitor/SysOperlogController.java

@@ -6,7 +6,7 @@ import com.vber.common.core.domain.AjaxResult;
 import com.vber.common.core.page.TableDataInfo;
 import com.vber.common.enums.BusinessType;
 import com.vber.common.utils.poi.ExcelUtil;
-import com.vber.system.domain.SysOperLog;
+import com.vber.system.SysOperLog;
 import com.vber.system.service.ISysOperLogService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;

+ 1 - 1
vber-web/src/main/java/com/vber/web/controller/monitor/SysUserOnlineController.java

@@ -9,7 +9,7 @@ import com.vber.common.core.page.TableDataInfo;
 import com.vber.common.core.redis.RedisCache;
 import com.vber.common.enums.BusinessType;
 import com.vber.common.utils.StringUtils;
-import com.vber.system.domain.SysUserOnline;
+import com.vber.system.SysUserOnline;
 import com.vber.system.service.ISysUserOnlineService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;

+ 1 - 2
vber-web/src/main/java/com/vber/web/controller/system/SysConfigController.java

@@ -6,9 +6,8 @@ import com.vber.common.core.domain.AjaxResult;
 import com.vber.common.core.page.TableDataInfo;
 import com.vber.common.enums.BusinessType;
 import com.vber.common.utils.poi.ExcelUtil;
-import com.vber.system.domain.SysConfig;
+import com.vber.system.SysConfig;
 import com.vber.system.service.ISysConfigService;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;

+ 1 - 1
vber-web/src/main/java/com/vber/web/controller/system/SysNoticeController.java

@@ -5,7 +5,7 @@ import com.vber.common.core.controller.BaseController;
 import com.vber.common.core.domain.AjaxResult;
 import com.vber.common.core.page.TableDataInfo;
 import com.vber.common.enums.BusinessType;
-import com.vber.system.domain.SysNotice;
+import com.vber.system.SysNotice;
 import com.vber.system.service.ISysNoticeService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;

+ 1 - 1
vber-web/src/main/java/com/vber/web/controller/system/SysOrderController.java

@@ -4,7 +4,7 @@ import com.vber.common.annotation.Anonymous;
 import com.vber.common.core.controller.BaseController;
 import com.vber.common.core.domain.AjaxResult;
 import com.vber.common.utils.uuid.IdUtils;
-import com.vber.system.domain.SysOrder;
+import com.vber.system.SysOrder;
 import com.vber.system.service.ISysOrderService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;

+ 1 - 1
vber-web/src/main/java/com/vber/web/controller/system/SysPostController.java

@@ -6,7 +6,7 @@ import com.vber.common.core.domain.AjaxResult;
 import com.vber.common.core.page.TableDataInfo;
 import com.vber.common.enums.BusinessType;
 import com.vber.common.utils.poi.ExcelUtil;
-import com.vber.system.domain.SysPost;
+import com.vber.system.SysPost;
 import com.vber.system.service.ISysPostService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;

+ 1 - 1
vber-web/src/main/java/com/vber/web/controller/system/SysRoleController.java

@@ -13,7 +13,7 @@ import com.vber.common.utils.StringUtils;
 import com.vber.common.utils.poi.ExcelUtil;
 import com.vber.framework.web.service.SysPermissionService;
 import com.vber.framework.web.service.TokenService;
-import com.vber.system.domain.SysUserRole;
+import com.vber.system.SysUserRole;
 import com.vber.system.service.ISysDeptService;
 import com.vber.system.service.ISysRoleService;
 import com.vber.system.service.ISysUserService;

+ 1 - 3
vber-web/src/main/java/com/vber/web/controller/system/TestUserController.java

@@ -5,9 +5,7 @@ import com.vber.common.annotation.DataSource;
 import com.vber.common.core.controller.BaseController;
 import com.vber.common.core.domain.AjaxResult;
 import com.vber.common.enums.DataSourceType;
-import com.vber.common.utils.uuid.IdUtils;
-import com.vber.system.domain.SysOrder;
-import com.vber.system.domain.TestUser;
+import com.vber.system.TestUser;
 import com.vber.system.mapper.TestUserMapper;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PathVariable;