Просмотр исходного кода

Update 优化docker配置,前端UI也使用docker发布

前端UI需要先build成功后再使用docker
Yue 8 месяцев назад
Родитель
Сommit
97d751a8da

+ 2 - 0
.gitignore

@@ -68,3 +68,5 @@ build/
 *.flattened-pom.xml
 /SERVER/**/vber/profile/
 UI/VAP_V3.VUE/pnpm-lock.yaml
+
+.data/

+ 161 - 122
SERVER/VberAdminPlusV3/.script/docker/docker-compose.yml

@@ -1,157 +1,196 @@
 services:
-  #  mysql:
-  #    image: mysql:8.0.42
-  #    container_name: mysql
-  #    environment:
-  #      # 时区上海
-  #      TZ: Asia/Shanghai
-  #      # root 密码
-  #      MYSQL_ROOT_PASSWORD: root
-  #      # 初始化数据库(后续的初始化sql会在这个库执行)
-  #      MYSQL_DATABASE: VberAdminPlusV3DB
+  vber_mysql:
+    image: mysql:8.0.42
+    container_name: vber_mysql
+    environment:
+      # 时区上海
+      TZ: Asia/Shanghai
+      # root 密码
+      MYSQL_ROOT_PASSWORD: root
+      # 初始化数据库(后续的初始化sql会在这个库执行)
+      MYSQL_DATABASE: VberAdminPlusV3DB
+      # 添加字符集设置
+      MYSQL_CHARSET: utf8
+      MYSQL_COLLATION: utf8_general_ci
+    ports:
+      - "3326:3306"
+    volumes:
+      # 数据挂载
+      - ../../.data/mysql/data/:/var/lib/mysql/
+      - ./sql/init.sql:/docker-entrypoint-initdb.d/init.sql # 挂载 init.sql 文件
+    command:
+      # 将mysql8.0默认密码策略 修改为 原先 策略 (mysql8.0对其默认策略做了更改 会导致密码无法匹配)
+      --default-authentication-plugin=mysql_native_password
+      --character-set-server=utf8mb4
+      --collation-server=utf8mb4_general_ci
+      --explicit_defaults_for_timestamp=true
+      --lower_case_table_names=1
+    privileged: true
+    networks:
+      - vap3-net
+
+  vber_redis:
+    image: redis:6.2.6
+    container_name: vber_redis
+    ports:
+      - "6389:6379"
+    environment:
+      # 时区上海
+      TZ: Asia/Shanghai
+    volumes:
+      # 配置文件
+      - ./redis/conf/redis.conf:/redis/config/redis.conf:rw
+      # 数据文件
+      - ../../.data/redis/data/:/redis/data/:rw
+    command: "redis-server /redis/config/redis.conf"
+    privileged: true
+    networks:
+      - vap3-net
+
+  #  minio:
+  #    # minio 最后一个未阉割版本 不能再进行升级 在往上的版本功能被阉割
+  #    image: minio/minio:RELEASE.2025-04-22T22-12-26Z
+  #    container_name: minio
   #    ports:
-  #      - "3326:3306"
-  #    volumes:
-  #      # 数据挂载
-  #      - /docker/mysql/data/:/var/lib/mysql/
-  #      # 配置挂载
-  #      - /docker/mysql/conf/:/etc/mysql/conf.d/
-  #    command:
-  #      # 将mysql8.0默认密码策略 修改为 原先 策略 (mysql8.0对其默认策略做了更改 会导致密码无法匹配)
-  #      --default-authentication-plugin=mysql_native_password
-  #      --character-set-server=utf8mb4
-  #      --collation-server=utf8mb4_general_ci
-  #      --explicit_defaults_for_timestamp=true
-  #      --lower_case_table_names=1
-  #    privileged: true
-  #    network_mode: "host"
-  #
-  #  nginx-web:
-  #    image: nginx:1.23.4
-  #    container_name: nginx-web
+  #      # api 端口
+  #      - "9000:9000"
+  #      # 控制台端口
+  #      - "9001:9001"
   #    environment:
   #      # 时区上海
   #      TZ: Asia/Shanghai
-  #    ports:
-  #      - "80:80"
-  #      - "443:443"
+  #      # 管理后台用户名
+  #      MINIO_ROOT_USER: vber
+  #      # 管理后台密码,最小8个字符
+  #      MINIO_ROOT_PASSWORD: vber123
+  #      # https需要指定域名
+  #      #MINIO_SERVER_URL: "https://xxx.com:9000"
+  #      #MINIO_BROWSER_REDIRECT_URL: "https://xxx.com:9001"
+  #      # 开启压缩 on 开启 off 关闭
+  #      MINIO_COMPRESS: "off"
+  #      # 扩展名 .pdf,.doc 为空 所有类型均压缩
+  #      MINIO_COMPRESS_EXTENSIONS: ""
+  #      # mime 类型 application/pdf 为空 所有类型均压缩
+  #      MINIO_COMPRESS_MIME_TYPES: ""
   #    volumes:
-  #      # 证书映射
-  #      - /docker/nginx/cert:/etc/nginx/cert
-  #      # 配置文件映射
-  #      - /docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf
-  #      # 页面目录
-  #      - /docker/nginx/html:/usr/share/nginx/html
-  #      # 日志目录
-  #      - /docker/nginx/log:/var/log/nginx
+  #      # 映射当前目录下的data目录至容器内/data目录
+  #      - /docker/minio/data:/data
+  #      # 映射配置目录
+  #      - /docker/minio/config:/root/.minio/
+  #    command: server --address ':9000' --console-address ':9001' /data  # 指定容器中的目录 /data
   #    privileged: true
-  #    network_mode: "host"
+  #    networks:
+  #      - vap3-net
   #
-  #  redis:
-  #    image: redis:7.2.8
-  #    container_name: redis
-  #    ports:
-  #      - "6389:6379"
-  #    environment:
-  #      # 时区上海
-  #      TZ: Asia/Shanghai
-  #    volumes:
-  #      # 配置文件
-  #      - /docker/redis/conf:/redis/config:rw
-  #      # 数据文件
-  #      - /docker/redis/data/:/redis/data/:rw
-  #    command: "redis-server /redis/config/redis.conf"
-  #    privileged: true
-  #    network_mode: "host"
 
-  minio:
-    # minio 最后一个未阉割版本 不能再进行升级 在往上的版本功能被阉割
-    image: minio/minio:RELEASE.2025-04-22T22-12-26Z
-    container_name: minio
-    ports:
-      # api 端口
-      - "9000:9000"
-      # 控制台端口
-      - "9001:9001"
+  vber_ui-web:
+    image: vber/vber_ui:3.0.0
+    container_name: vber_ui-web
     environment:
       # 时区上海
       TZ: Asia/Shanghai
-      # 管理后台用户名
-      MINIO_ROOT_USER: vber
-      # 管理后台密码,最小8个字符
-      MINIO_ROOT_PASSWORD: vber123
-      # https需要指定域名
-      #MINIO_SERVER_URL: "https://xxx.com:9000"
-      #MINIO_BROWSER_REDIRECT_URL: "https://xxx.com:9001"
-      # 开启压缩 on 开启 off 关闭
-      MINIO_COMPRESS: "off"
-      # 扩展名 .pdf,.doc 为空 所有类型均压缩
-      MINIO_COMPRESS_EXTENSIONS: ""
-      # mime 类型 application/pdf 为空 所有类型均压缩
-      MINIO_COMPRESS_MIME_TYPES: ""
+    ports:
+      - "8010:80"
+      - "4430:443"
     volumes:
-      # 映射当前目录下的data目录至容器内/data目录
-      - /docker/minio/data:/data
-      # 映射配置目录
-      - /docker/minio/config:/root/.minio/
-    command: server --address ':9000' --console-address ':9001' /data  # 指定容器中的目录 /data
+      # 证书映射
+      - ./nginx/cert:/etc/nginx/cert
+      - ./nginx/conf:/etc/nginx/conf.d
+      # 页面目录
+      - ../../.data/html:/usr/share/nginx/html
+      # 日志目录
+      - ../../.data/nginx/log:/var/log/nginx
     privileged: true
-    network_mode: "host"
+    networks:
+      - vap3-net
 
-  vber-server1:
-    image: vber/vber-server:3.0.0
-    container_name: vber-server1
+  vber_server-1:
+    image: vber/vber_server:3.0.0
+    container_name: vber_server-1
     environment:
       # 时区上海
       TZ: Asia/Shanghai
-      SERVER_PORT: 6080
+      #      SERVER_PORT: 6080
+      JAVA_OPTS: >-
+        --spring.datasource.dynamic.datasource.master.url=jdbc:mysql://vber_mysql:3306/VberAdminPlusV3DB?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true
+        --spring.datasource.dynamic.datasource.master.username=root
+        --spring.datasource.dynamic.datasource.master.password=root
+        --spring.data.redis.host=vber_redis
+        --spring.data.redis.port=6379
+        --spring.data.redis.password=123456vb
+    ports:
+      - "6080:8080"
     volumes:
       # 配置文件
-      - /docker/server1/logs/:/vber/server/logs/
+      - ../../.data/server1/logs/:/vber/server/logs/
       # skywalking 探针
     #      - /docker/skywalking/agent/:/vber/skywalking/agent
+    depends_on:
+      - vber_redis
+      - vber_mysql
     privileged: true
-    network_mode: "host"
+    networks:
+      - vap3-net
 
-  vber-server2:
-    image: vber/vber-server:3.0.0
-    container_name: vber-server2
+  vber_server-2:
+    image: vber/vber_server:3.0.0
+    container_name: vber_server-2
     environment:
       # 时区上海
       TZ: Asia/Shanghai
-      SERVER_PORT: 6081
+      JAVA_OPTS: >-
+        --spring.datasource.dynamic.datasource.master.url=jdbc:mysql://vber_mysql:3306/VberAdminPlusV3DB?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true
+        --spring.datasource.dynamic.datasource.master.username=root
+        --spring.datasource.dynamic.datasource.master.password=root
+        --spring.data.redis.host=vber_redis
+        --spring.data.redis.port=6379
+        --spring.data.redis.password=123456vb
+    ports:
+      - "6081:8080"
     volumes:
       # 配置文件
-      - /docker/server2/logs/:/vber/server/logs/
+      - ../../.data/server2/logs/:/vber/server/logs/
       # skywalking 探针
     #      - /docker/skywalking/agent/:/vber/skywalking/agent
+    depends_on:
+      - vber_redis
+      - vber_mysql
     privileged: true
-    network_mode: "host"
+    networks:
+      - vap3-net
 
-  vber-monitor-admin:
-    image: vber/vber-monitor-admin:3.0.0
-    container_name: vber-monitor-admin
-    environment:
-      # 时区上海
-      TZ: Asia/Shanghai
-    volumes:
-      # 配置文件
-      - /docker/monitor/logs/:/vber/monitor/logs
-    privileged: true
-    network_mode: "host"
 
-  vber-job-server:
-    image: vber/vber-job-server:3.0.0
-    container_name: vber-job-server
-    environment:
-      # 时区上海
-      TZ: Asia/Shanghai
-    ports:
-      - "6076:6076"
-      - "10086:10086"
-      - "10010:10010"
-    volumes:
-      - /docker/job/logs/:/vber/job/logs
-    privileged: true
-    network_mode: "host"
+#  vber_monitor-admin:
+#    image: vber/vber_monitor-admin:3.0.0
+#    container_name: vber_monitor-admin
+#    environment:
+#      # 时区上海
+#      TZ: Asia/Shanghai
+#    ports:
+#      - "6075:6075"
+#    volumes:
+#      # 配置文件
+#      - ../../.data/monitor/logs/:/vber/monitor/logs
+#    privileged: true
+#    networks:
+#      - vap3-net
+#
+#  vber_job-server:
+#    image: vber/vber_job-server:3.0.0
+#    container_name: vber_job-server
+#    environment:
+#      # 时区上海
+#      TZ: Asia/Shanghai
+#    ports:
+#      - "6076:6076"
+#      - "10086:10086"
+#      - "10010:10010"
+#    volumes:
+#      - ../../.data/job/logs/:/vber/job/logs
+#    privileged: true
+#    networks:
+#      - vap3-net
 
+networks:
+  vap3-net:
+    external: false

+ 107 - 0
SERVER/VberAdminPlusV3/.script/docker/nginx/conf/default.conf

@@ -0,0 +1,107 @@
+
+upstream server {
+    ip_hash;
+    server vber_server-1:8080;
+    server vber_server-2:8080;
+}
+
+upstream monitor-admin {
+   server 127.0.0.1:6075;
+#   server vber_monitor-admin:6075;
+}
+
+upstream job-server {
+   server 127.0.0.1:6076;
+#   server vber_job-server:6076;
+}
+
+server {
+    listen  80;
+    server_name  localhost;
+
+    # https配置参考 start
+    #listen       443 ssl;
+
+    # 证书直接存放 /docker/nginx/cert/ 目录下即可 更改证书名称即可 无需更改证书路径
+    #ssl on;
+    #ssl_certificate      /etc/nginx/cert/xxx.local.crt; # /etc/nginx/cert/ 为docker映射路径 不允许更改
+    #ssl_certificate_key  /etc/nginx/cert/xxx.local.key; # /etc/nginx/cert/ 为docker映射路径 不允许更改
+    #ssl_session_timeout 5m;
+    #ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
+    #ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
+    #ssl_prefer_server_ciphers on;
+    # https配置参考 end
+
+    # 演示环境配置 拦截除 GET POST 之外的所有请求
+    # if ($request_method !~* GET|POST) {
+    #     rewrite  ^/(.*)$  /403;
+    # }
+
+    # location = /403 {
+    #     default_type application/json;
+    #     return 200 '{"msg":"演示模式,不允许操作","code":500}';
+    # }
+
+    # 限制外网访问内网 actuator 相关路径
+    location ~ ^(/[^/]*)?/actuator(/.*)?$ {
+        return 403;
+    }
+
+    location / {
+        root   /usr/share/nginx/html; # docker映射路径 不允许更改
+        try_files $uri $uri/ /index.html;
+        index  index.html index.htm;
+    }
+
+    # 明确处理静态资源
+    location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg|woff|woff2|ttf|eot)$ {
+        root /usr/share/nginx/html;
+        expires 1y;
+        add_header Cache-Control "public, immutable";
+        try_files $uri =404;
+    }
+
+    location /prod-api/ {
+        proxy_set_header Host $http_host;
+        proxy_set_header X-Real-IP $remote_addr;
+        proxy_set_header REMOTE-HOST $remote_addr;
+        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+        # websocket参数
+        proxy_http_version 1.1;
+        proxy_set_header Upgrade $http_upgrade;
+        proxy_set_header Connection "upgrade";
+        proxy_pass http://server/;
+    }
+
+    # https 会拦截内链所有的 http 请求 造成功能无法使用
+    # 解决方案1 将 admin 服务 也配置成 https
+    # 解决方案2 将菜单配置为外链访问 走独立页面 http 访问
+    location /admin/ {
+        proxy_set_header Host $http_host;
+        proxy_set_header X-Real-IP $remote_addr;
+        proxy_set_header REMOTE-HOST $remote_addr;
+        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+        proxy_pass http://monitor-admin/admin/;
+    }
+
+    # https 会拦截内链所有的 http 请求 造成功能无法使用
+    # 解决方案1 将 job 服务 也配置成 https
+    # 解决方案2 将菜单配置为外链访问 走独立页面 http 访问
+    location /job/ {
+        proxy_set_header Host $http_host;
+        proxy_set_header X-Real-IP $remote_addr;
+        proxy_set_header REMOTE-HOST $remote_addr;
+        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+        proxy_pass http://job-server/;
+    }
+
+    # 解决 job 代理之后静态文件无法访问的问题 请勿修改乱动
+    location ~ ^/(js|css|jpg|png|svg|woff|ttf|ico|img)/ {
+        proxy_pass http://job-server;
+    }
+
+    error_page   500 502 503 504  /50x.html;
+    location = /50x.html {
+        root   html;
+    }
+}

+ 0 - 120
SERVER/VberAdminPlusV3/.script/docker/nginx/conf/nginx.conf

@@ -1,120 +0,0 @@
-worker_processes  1;
-
-error_log  /var/log/nginx/error.log warn;
-pid        /var/run/nginx.pid;
-
-events {
-    worker_connections  1024;
-}
-
-http {
-    include       mime.types;
-    default_type  application/octet-stream;
-    sendfile        on;
-    keepalive_timeout  65;
-    # 限制body大小
-    client_max_body_size 100m;
-
-    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
-                          '$status $body_bytes_sent "$http_referer" '
-                          '"$http_user_agent" "$http_x_forwarded_for"';
-
-    access_log  /var/log/nginx/access.log  main;
-
-    upstream server {
-        ip_hash;
-        server 127.0.0.1:8080;
-        server 127.0.0.1:8081;
-    }
-
-    upstream monitor-admin {
-        server 127.0.0.1:6075;
-    }
-
-    upstream job-server {
-        server 127.0.0.1:6076;
-    }
-
-    server {
-        listen       80;
-        server_name  localhost;
-
-        # https配置参考 start
-        #listen       443 ssl;
-
-        # 证书直接存放 /docker/nginx/cert/ 目录下即可 更改证书名称即可 无需更改证书路径
-        #ssl on;
-        #ssl_certificate      /etc/nginx/cert/xxx.local.crt; # /etc/nginx/cert/ 为docker映射路径 不允许更改
-        #ssl_certificate_key  /etc/nginx/cert/xxx.local.key; # /etc/nginx/cert/ 为docker映射路径 不允许更改
-        #ssl_session_timeout 5m;
-        #ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
-        #ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
-        #ssl_prefer_server_ciphers on;
-        # https配置参考 end
-
-        # 演示环境配置 拦截除 GET POST 之外的所有请求
-        # if ($request_method !~* GET|POST) {
-        #     rewrite  ^/(.*)$  /403;
-        # }
-
-        # location = /403 {
-        #     default_type application/json;
-        #     return 200 '{"msg":"演示模式,不允许操作","code":500}';
-        # }
-
-        # 限制外网访问内网 actuator 相关路径
-        location ~ ^(/[^/]*)?/actuator(/.*)?$ {
-            return 403;
-        }
-
-        location / {
-            root   /usr/share/nginx/html; # docker映射路径 不允许更改
-            try_files $uri $uri/ /index.html;
-            index  index.html index.htm;
-        }
-
-        location /prod-api/ {
-            proxy_set_header Host $http_host;
-            proxy_set_header X-Real-IP $remote_addr;
-            proxy_set_header REMOTE-HOST $remote_addr;
-            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
-            # websocket参数
-            proxy_http_version 1.1;
-            proxy_set_header Upgrade $http_upgrade;
-            proxy_set_header Connection "upgrade";
-            proxy_pass http://server/;
-        }
-
-        # https 会拦截内链所有的 http 请求 造成功能无法使用
-        # 解决方案1 将 admin 服务 也配置成 https
-        # 解决方案2 将菜单配置为外链访问 走独立页面 http 访问
-        location /admin/ {
-            proxy_set_header Host $http_host;
-            proxy_set_header X-Real-IP $remote_addr;
-            proxy_set_header REMOTE-HOST $remote_addr;
-            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
-            proxy_pass http://monitor-admin/admin/;
-        }
-
-        # https 会拦截内链所有的 http 请求 造成功能无法使用
-        # 解决方案1 将 job 服务 也配置成 https
-        # 解决方案2 将菜单配置为外链访问 走独立页面 http 访问
-        location /job/ {
-            proxy_set_header Host $http_host;
-            proxy_set_header X-Real-IP $remote_addr;
-            proxy_set_header REMOTE-HOST $remote_addr;
-            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
-            proxy_pass http://job-server/;
-        }
-
-        # 解决 job 代理之后静态文件无法访问的问题 请勿修改乱动
-        location ~ ^/(js|css|jpg|png|svg|woff|ttf|ico|img)/ {
-            proxy_pass http://job-server;
-        }
-
-        error_page   500 502 503 504  /50x.html;
-        location = /50x.html {
-            root   html;
-        }
-    }
-}

+ 26 - 0
SERVER/VberAdminPlusV3/.script/docker/nginx/nginx.conf

@@ -0,0 +1,26 @@
+worker_processes  1;
+
+error_log  /var/log/nginx/error.log warn;
+pid        /var/run/nginx.pid;
+
+events {
+    worker_connections  1024;
+}
+
+http {
+    include       mime.types;
+    default_type  application/octet-stream;
+    sendfile        on;
+    keepalive_timeout  65;
+    # 限制body大小
+    client_max_body_size 100m;
+
+    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
+                          '$status $body_bytes_sent "$http_referer" '
+                          '"$http_user_agent" "$http_x_forwarded_for"';
+
+    access_log  /var/log/nginx/access.log  main;
+
+    # 包含站点配置文件
+    include /etc/nginx/conf.d/*.conf;
+}

+ 1 - 1
SERVER/VberAdminPlusV3/.script/docker/redis/conf/redis.conf

@@ -1,5 +1,5 @@
 # redis 密码
-requirepass vber123
+requirepass 123456vb
 
 # key 监听器配置
 # notify-keyspace-events Ex

+ 1025 - 0
SERVER/VberAdminPlusV3/.script/docker/sql/init.sql

@@ -0,0 +1,1025 @@
+-- 设置字符集
+SET NAMES utf8;
+
+-- ----------------------------
+-- 1、组织机构表
+-- ----------------------------
+DROP TABLE IF EXISTS sys_org;
+CREATE TABLE sys_org
+(
+    org_id       BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT '组织机构id',
+    tenant_id    VARCHAR(20)  DEFAULT '000000' COMMENT '租户编号',
+    parent_id    BIGINT(20)   DEFAULT 0 COMMENT '父组织机构id',
+    ancestors    VARCHAR(500) DEFAULT '' COMMENT '祖级列表',
+    org_name     VARCHAR(30)  DEFAULT '' COMMENT '组织机构名称',
+    org_category VARCHAR(100) DEFAULT NULL COMMENT '组织机构类别编码',
+    order_num    INT(4)       DEFAULT 0 COMMENT '显示顺序',
+    leader       BIGINT(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_org   BIGINT(20)   DEFAULT NULL COMMENT '创建组织机构',
+    create_by    BIGINT(20)   DEFAULT NULL COMMENT '创建者',
+    create_time  DATETIME COMMENT '创建时间',
+    update_by    BIGINT(20)   DEFAULT NULL COMMENT '更新者',
+    update_time  DATETIME COMMENT '更新时间',
+    PRIMARY KEY (org_id)
+) ENGINE = innodb COMMENT = '组织机构表'
+  AUTO_INCREMENT = 1000;
+
+-- ----------------------------
+-- 2、用户信息表
+-- ----------------------------
+DROP TABLE IF EXISTS sys_user;
+CREATE TABLE sys_user
+(
+    user_id     BIGINT(20)  NOT NULL AUTO_INCREMENT COMMENT '用户ID',
+    tenant_id   VARCHAR(20)  DEFAULT '000000' COMMENT '租户编号',
+    org_id      BIGINT(20)   DEFAULT NULL COMMENT '组织机构ID',
+    user_name   VARCHAR(30) NOT NULL COMMENT '用户账号',
+    nick_name   VARCHAR(30) NOT NULL COMMENT '用户昵称',
+    user_type   VARCHAR(10)  DEFAULT 'sys_user' COMMENT '用户类型(sys_user系统用户)',
+    email       VARCHAR(50)  DEFAULT '' COMMENT '用户邮箱',
+    phonenumber VARCHAR(11)  DEFAULT '' COMMENT '手机号码',
+    sex         CHAR(1)      DEFAULT '0' COMMENT '用户性别(0男 1女 2未知)',
+    avatar      BIGINT(20) 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_org  BIGINT(20)   DEFAULT NULL COMMENT '创建组织机构',
+    create_by   BIGINT(20)   DEFAULT NULL COMMENT '创建者',
+    create_time DATETIME COMMENT '创建时间',
+    update_by   BIGINT(20)   DEFAULT NULL COMMENT '更新者',
+    update_time DATETIME COMMENT '更新时间',
+    remark      VARCHAR(500) DEFAULT NULL COMMENT '备注',
+    PRIMARY KEY (user_id)
+) ENGINE = innodb COMMENT = '用户信息表'
+  AUTO_INCREMENT = 1000;
+
+-- ----------------------------
+-- 3、岗位信息表
+-- ----------------------------
+DROP TABLE IF EXISTS sys_post;
+CREATE TABLE sys_post
+(
+    post_id       BIGINT(20)  NOT NULL AUTO_INCREMENT COMMENT '岗位ID',
+    tenant_id     VARCHAR(20)  DEFAULT '000000' COMMENT '租户编号',
+    org_id        BIGINT(20)  NOT NULL COMMENT '组织机构id',
+    post_code     VARCHAR(64) NOT NULL COMMENT '岗位编码',
+    post_category VARCHAR(100) DEFAULT 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_org    BIGINT(20)   DEFAULT NULL COMMENT '创建组织机构',
+    create_by     BIGINT(20)   DEFAULT NULL COMMENT '创建者',
+    create_time   DATETIME COMMENT '创建时间',
+    update_by     BIGINT(20)   DEFAULT NULL COMMENT '更新者',
+    update_time   DATETIME COMMENT '更新时间',
+    remark        VARCHAR(500) DEFAULT NULL COMMENT '备注',
+    PRIMARY KEY (post_id)
+) ENGINE = innodb COMMENT = '岗位信息表'
+  AUTO_INCREMENT = 1000;
+
+-- ----------------------------
+-- 4、角色信息表
+-- ----------------------------
+DROP TABLE IF EXISTS sys_role;
+CREATE TABLE sys_role
+(
+    role_id             BIGINT(20)   NOT NULL AUTO_INCREMENT COMMENT '角色ID',
+    tenant_id           VARCHAR(20)  DEFAULT '000000' COMMENT '租户编号',
+    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 '菜单树选择项是否关联显示',
+    org_check_strictly  TINYINT(1)   DEFAULT 1 COMMENT '组织机构树选择项是否关联显示',
+    is_static           TINYINT(1)   DEFAULT 0 COMMENT '是否静态角色(0否 1是)',
+    status              CHAR(1)      NOT NULL COMMENT '角色状态(0正常 1停用)',
+    del_flag            CHAR(1)      DEFAULT '0' COMMENT '删除标志(0代表存在 2代表删除)',
+    create_org          BIGINT(20)   DEFAULT NULL COMMENT '创建组织机构',
+    create_by           BIGINT(20)   DEFAULT NULL COMMENT '创建者',
+    create_time         DATETIME COMMENT '创建时间',
+    update_by           BIGINT(20)   DEFAULT NULL COMMENT '更新者',
+    update_time         DATETIME COMMENT '更新时间',
+    remark              VARCHAR(500) DEFAULT NULL COMMENT '备注',
+    PRIMARY KEY (role_id)
+) ENGINE = innodb COMMENT = '角色信息表'
+  AUTO_INCREMENT = 1000;
+
+-- ----------------------------
+-- 5、菜单权限表
+-- ----------------------------
+DROP TABLE IF EXISTS sys_menu;
+CREATE TABLE 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_param 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 NULL COMMENT '按钮样式',
+    btn_script  VARCHAR(100) DEFAULT NULL COMMENT '按钮脚本',
+    create_org  BIGINT(20)   DEFAULT NULL COMMENT '创建组织机构',
+    create_by   BIGINT(20)   DEFAULT NULL COMMENT '创建者',
+    create_time DATETIME COMMENT '创建时间',
+    update_by   BIGINT(20)   DEFAULT NULL COMMENT '更新者',
+    update_time DATETIME COMMENT '更新时间',
+    remark      VARCHAR(500) DEFAULT '' COMMENT '备注',
+    PRIMARY KEY (menu_id)
+) ENGINE = innodb COMMENT = '菜单权限表'
+  AUTO_INCREMENT = 10000;
+
+-- ----------------------------
+-- 6、用户和角色关联表  用户N-1角色
+-- ----------------------------
+DROP TABLE IF EXISTS sys_user_role;
+CREATE TABLE 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 = '用户和角色关联表';
+
+-- ----------------------------
+-- 7、角色和菜单关联表  角色1-N菜单
+-- ----------------------------
+DROP TABLE IF EXISTS sys_role_menu;
+CREATE TABLE 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 = '角色和菜单关联表';
+
+-- ----------------------------
+-- 8、角色和组织机构关联表  角色1-N组织机构
+-- ----------------------------
+DROP TABLE IF EXISTS sys_role_org;
+CREATE TABLE sys_role_org
+(
+    role_id BIGINT(20) NOT NULL COMMENT '角色ID',
+    org_id  BIGINT(20) NOT NULL COMMENT '组织机构ID',
+    PRIMARY KEY (role_id, org_id)
+) ENGINE = innodb COMMENT = '角色和组织机构关联表';
+
+-- ----------------------------
+-- 9、用户与岗位关联表  用户1-N岗位
+-- ----------------------------
+DROP TABLE IF EXISTS sys_user_post;
+CREATE TABLE 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 = '用户与岗位关联表';
+
+-- ----------------------------
+-- 10、操作日志记录
+-- ----------------------------
+DROP TABLE IF EXISTS sys_oper_log;
+CREATE TABLE sys_oper_log
+(
+    oper_id        BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT '日志主键',
+    tenant_id      VARCHAR(20)   DEFAULT '000000' 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 '操作人员',
+    org_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(4000) DEFAULT '' COMMENT '请求参数',
+    json_result    VARCHAR(4000) DEFAULT '' COMMENT '返回参数',
+    status         INT(1)        DEFAULT 0 COMMENT '操作状态(0正常 1异常)',
+    error_msg      VARCHAR(4000) 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 COMMENT = '操作日志记录'
+  AUTO_INCREMENT = 1000;
+
+-- ----------------------------
+-- 11、字典类型表
+-- ----------------------------
+DROP TABLE IF EXISTS sys_dict_type;
+CREATE TABLE sys_dict_type
+(
+    dict_id     BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT '字典主键',
+    tenant_id   VARCHAR(20)  DEFAULT '000000' COMMENT '租户编号',
+    dict_name   VARCHAR(100) DEFAULT '' COMMENT '字典名称',
+    dict_type   VARCHAR(100) DEFAULT '' COMMENT '字典类型',
+    create_org  BIGINT(20)   DEFAULT NULL COMMENT '创建组织机构',
+    create_by   BIGINT(20)   DEFAULT NULL COMMENT '创建者',
+    create_time DATETIME COMMENT '创建时间',
+    update_by   BIGINT(20)   DEFAULT NULL COMMENT '更新者',
+    update_time DATETIME COMMENT '更新时间',
+    remark      VARCHAR(500) DEFAULT NULL COMMENT '备注',
+    PRIMARY KEY (dict_id),
+    UNIQUE (tenant_id, dict_type)
+) ENGINE = innodb COMMENT = '字典类型表'
+  AUTO_INCREMENT = 1000;
+
+-- ----------------------------
+-- 12、字典数据表
+-- ----------------------------
+DROP TABLE IF EXISTS sys_dict_data;
+CREATE TABLE sys_dict_data
+(
+    dict_code   BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT '字典编码',
+    tenant_id   VARCHAR(20)  DEFAULT '000000' 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否)',
+    create_org  BIGINT(20)   DEFAULT NULL COMMENT '创建组织机构',
+    create_by   BIGINT(20)   DEFAULT NULL COMMENT '创建者',
+    create_time DATETIME COMMENT '创建时间',
+    update_by   BIGINT(20)   DEFAULT NULL COMMENT '更新者',
+    update_time DATETIME COMMENT '更新时间',
+    remark      VARCHAR(500) DEFAULT NULL COMMENT '备注',
+    PRIMARY KEY (dict_code)
+) ENGINE = innodb COMMENT = '字典数据表'
+  AUTO_INCREMENT = 1000;
+
+
+-- ----------------------------
+-- 13、参数配置表
+-- ----------------------------
+DROP TABLE IF EXISTS sys_config;
+CREATE TABLE sys_config
+(
+    config_id    BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT '参数主键',
+    tenant_id    VARCHAR(20)  DEFAULT '000000' 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_org   BIGINT(20)   DEFAULT NULL COMMENT '创建组织机构',
+    create_by    BIGINT(20)   DEFAULT NULL COMMENT '创建者',
+    create_time  DATETIME COMMENT '创建时间',
+    update_by    BIGINT(20)   DEFAULT NULL COMMENT '更新者',
+    update_time  DATETIME COMMENT '更新时间',
+    remark       VARCHAR(500) DEFAULT NULL COMMENT '备注',
+    PRIMARY KEY (config_id)
+) ENGINE = innodb COMMENT = '参数配置表'
+  AUTO_INCREMENT = 1000;
+
+
+
+-- ----------------------------
+-- 14、系统访问记录
+-- ----------------------------
+DROP TABLE IF EXISTS sys_login_log;
+CREATE TABLE sys_login_log
+(
+    info_id        BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT '访问ID',
+    tenant_id      VARCHAR(20)  DEFAULT '000000' COMMENT '租户编号',
+    user_name      VARCHAR(50)  DEFAULT '' COMMENT '用户账号',
+    client_key     VARCHAR(32)  DEFAULT '' COMMENT '客户端',
+    device_type    VARCHAR(32)  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_loginLog_s (status),
+    KEY            idx_sys_loginLog_lt (login_time)
+) ENGINE = innodb COMMENT = '系统访问记录'
+  AUTO_INCREMENT = 1000;
+
+
+-- ----------------------------
+-- 15、通知公告表
+-- ----------------------------
+DROP TABLE IF EXISTS sys_notice;
+CREATE TABLE sys_notice
+(
+    notice_id      BIGINT(20)  NOT NULL AUTO_INCREMENT COMMENT '公告ID',
+    tenant_id      VARCHAR(20)  DEFAULT '000000' COMMENT '租户编号',
+    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_org     BIGINT(20)   DEFAULT NULL COMMENT '创建组织机构',
+    create_by      BIGINT(20)   DEFAULT NULL COMMENT '创建者',
+    create_time    DATETIME COMMENT '创建时间',
+    update_by      BIGINT(20)   DEFAULT NULL COMMENT '更新者',
+    update_time    DATETIME COMMENT '更新时间',
+    remark         VARCHAR(255) DEFAULT NULL COMMENT '备注',
+    PRIMARY KEY (notice_id)
+) ENGINE = innodb COMMENT = '通知公告表'
+  AUTO_INCREMENT = 1000;
+
+
+-- ----------------------------
+-- 16、OSS对象存储表
+-- ----------------------------
+DROP TABLE IF EXISTS sys_oss;
+CREATE TABLE sys_oss
+(
+    oss_id        BIGINT(20)   NOT NULL AUTO_INCREMENT COMMENT '对象存储主键',
+    tenant_id     VARCHAR(20)           DEFAULT '000000' COMMENT '租户编号',
+    file_name     VARCHAR(255) NOT NULL DEFAULT '' COMMENT '文件名',
+    original_name VARCHAR(255) NOT NULL DEFAULT '' COMMENT '原名',
+    file_suffix   VARCHAR(10)  NOT NULL DEFAULT '' COMMENT '文件后缀名',
+    url           VARCHAR(500) NOT NULL COMMENT 'URL地址',
+    ext1          TEXT                  default NULL COMMENT '扩展字段',
+    object_id     VARCHAR(50) COMMENT '文件标识',
+    service       VARCHAR(20)  NOT NULL DEFAULT 'minio' COMMENT '服务商',
+    create_org    BIGINT(20)            DEFAULT NULL COMMENT '创建组织机构',
+    create_time   DATETIME              DEFAULT NULL COMMENT '创建时间',
+    create_by     BIGINT(20)            DEFAULT NULL COMMENT '上传人',
+    update_time   DATETIME              DEFAULT NULL COMMENT '更新时间',
+    update_by     BIGINT(20)            DEFAULT NULL COMMENT '更新人',
+    PRIMARY KEY (oss_id)
+) ENGINE = innodb COMMENT ='OSS对象存储表'
+  AUTO_INCREMENT = 1000;
+
+-- ----------------------------
+-- 17、OSS对象存储动态配置表
+-- ----------------------------
+DROP TABLE IF EXISTS sys_oss_config;
+CREATE TABLE sys_oss_config
+(
+    oss_config_id BIGINT(20)  NOT NULL AUTO_INCREMENT COMMENT '主键',
+    tenant_id     VARCHAR(20)          DEFAULT '000000' COMMENT '租户编号',
+    config_key    VARCHAR(20) NOT NULL DEFAULT '' COMMENT '配置key',
+    access_key    VARCHAR(255)         DEFAULT '' COMMENT 'accessKey',
+    secret_key    VARCHAR(255)         DEFAULT '' COMMENT '秘钥',
+    bucket_name   VARCHAR(255)         DEFAULT '' COMMENT '桶名称',
+    prefix        VARCHAR(255)         DEFAULT '' COMMENT '前缀',
+    endpoint      VARCHAR(255)         DEFAULT '' COMMENT '访问站点',
+    domain        VARCHAR(255)         DEFAULT '' COMMENT '自定义域名',
+    is_https      CHAR(1)              DEFAULT 'N' COMMENT '是否https(Y=是,N=否)',
+    region        VARCHAR(255)         DEFAULT '' COMMENT '域',
+    access_policy CHAR(1)     NOT NULL DEFAULT '1' COMMENT '桶权限类型(0=private 1=public 2=custom)',
+    status        CHAR(1)              DEFAULT '1' COMMENT '是否默认(0=是,1=否)',
+    ext1          VARCHAR(255)         DEFAULT '' COMMENT '扩展字段',
+    create_org    BIGINT(20)           DEFAULT NULL COMMENT '创建组织机构',
+    create_by     BIGINT(20)           DEFAULT NULL COMMENT '创建者',
+    create_time   DATETIME             DEFAULT NULL COMMENT '创建时间',
+    update_by     BIGINT(20)           DEFAULT NULL COMMENT '更新者',
+    update_time   DATETIME             DEFAULT NULL COMMENT '更新时间',
+    remark        VARCHAR(500)         DEFAULT NULL COMMENT '备注',
+    PRIMARY KEY (oss_config_id)
+) ENGINE = innodb COMMENT ='对象存储配置表'
+  AUTO_INCREMENT = 1000;
+
+-- ----------------------------
+-- 18、系统授权表
+-- ----------------------------
+DROP TABLE IF EXISTS sys_client;
+CREATE TABLE sys_client
+(
+    id             BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
+    client_id      VARCHAR(64)  DEFAULT NULL COMMENT '客户端id',
+    client_key     VARCHAR(32)  DEFAULT NULL COMMENT '客户端key',
+    client_secret  VARCHAR(255) DEFAULT NULL COMMENT '客户端秘钥',
+    grant_type     VARCHAR(255) DEFAULT NULL COMMENT '授权类型',
+    device_type    VARCHAR(32)  DEFAULT NULL COMMENT '设备类型',
+    active_timeout INT(11)      DEFAULT 1800 COMMENT 'token活跃超时时间',
+    timeout        INT(11)      DEFAULT 604800 COMMENT 'token固定超时',
+    status         CHAR(1)      DEFAULT '0' COMMENT '状态(0正常 1停用)',
+    del_flag       CHAR(1)      DEFAULT '0' COMMENT '删除标志(0代表存在 2代表删除)',
+    create_org     BIGINT(20)   DEFAULT NULL COMMENT '创建组织机构',
+    create_by      BIGINT(20)   DEFAULT NULL COMMENT '创建者',
+    create_time    DATETIME     DEFAULT NULL COMMENT '创建时间',
+    update_by      BIGINT(20)   DEFAULT NULL COMMENT '更新者',
+    update_time    DATETIME     DEFAULT NULL COMMENT '更新时间',
+    PRIMARY KEY (id)
+) ENGINE = innodb COMMENT ='系统授权表'
+  AUTO_INCREMENT = 1000;
+
+-- ----------------------------
+-- 19、第三方平台授权表
+-- ----------------------------
+DROP TABLE IF EXISTS sys_social;
+CREATE TABLE sys_social
+(
+    id                 BIGINT        NOT NULL AUTO_INCREMENT COMMENT '主键',
+    user_id            BIGINT        NOT NULL COMMENT '用户ID',
+    tenant_id          VARCHAR(20)   DEFAULT "000000" COMMENT '租户id',
+    auth_id            VARCHAR(255)  NOT NULL COMMENT '平台+平台唯一id',
+    source             VARCHAR(255)  NOT NULL COMMENT '用户来源',
+    open_id            VARCHAR(255)  DEFAULT NULL COMMENT '平台编号唯一id',
+    user_name          VARCHAR(30)   NOT NULL COMMENT '登录账号',
+    nick_name          VARCHAR(30)   DEFAULT '' COMMENT '用户昵称',
+    email              VARCHAR(255)  DEFAULT '' COMMENT '用户邮箱',
+    avatar             VARCHAR(500)  DEFAULT '' COMMENT '头像地址',
+    access_token       VARCHAR(2000) NOT NULL COMMENT '用户的授权令牌',
+    expire_in          INT           DEFAULT NULL COMMENT '用户的授权令牌的有效期,部分平台可能没有',
+    refresh_token      VARCHAR(2000) DEFAULT NULL COMMENT '刷新令牌,部分平台可能没有',
+    access_code        VARCHAR(255)  DEFAULT NULL COMMENT '平台的授权信息,部分平台可能没有',
+    union_id           VARCHAR(255)  DEFAULT NULL COMMENT '用户的 unionid',
+    scope              VARCHAR(255)  DEFAULT NULL COMMENT '授予的权限,部分平台可能没有',
+    token_type         VARCHAR(255)  DEFAULT NULL COMMENT '个别平台的授权信息,部分平台可能没有',
+    id_token           VARCHAR(255)  DEFAULT NULL COMMENT 'id token,部分平台可能没有',
+    mac_algorithm      VARCHAR(255)  DEFAULT NULL COMMENT '小米平台用户的附带属性,部分平台可能没有',
+    mac_key            VARCHAR(255)  DEFAULT NULL COMMENT '小米平台用户的附带属性,部分平台可能没有',
+    code               VARCHAR(255)  DEFAULT NULL COMMENT '用户的授权code,部分平台可能没有',
+    oauth_token        VARCHAR(255)  DEFAULT NULL COMMENT 'Twitter平台用户的附带属性,部分平台可能没有',
+    oauth_token_secret VARCHAR(255)  DEFAULT NULL COMMENT 'Twitter平台用户的附带属性,部分平台可能没有',
+    create_org         BIGINT(20) COMMENT '创建组织机构',
+    create_by          BIGINT(20) COMMENT '创建者',
+    create_time        DATETIME COMMENT '创建时间',
+    update_by          BIGINT(20) COMMENT '更新者',
+    update_time        DATETIME COMMENT '更新时间',
+    del_flag           CHAR(1)       DEFAULT '0' COMMENT '删除标志(0代表存在 2代表删除)',
+    PRIMARY KEY (id)
+) ENGINE = innodb COMMENT = '社会化关系表'
+  AUTO_INCREMENT = 1000;
+
+-- ----------------------------
+-- 20、代码生成业务表
+-- ----------------------------
+DROP TABLE IF EXISTS gen_table;
+CREATE TABLE gen_table
+(
+    table_id          BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT '编号',
+    data_name         VARCHAR(200) DEFAULT '' COMMENT '数据源名称',
+    table_name        VARCHAR(200) DEFAULT '' COMMENT '表名称',
+    table_comment     VARCHAR(500) DEFAULT '' COMMENT '表描述',
+    sub_table_name    VARCHAR(64)  DEFAULT NULL COMMENT '关联子表的表名',
+    sub_table_fk_name VARCHAR(64)  DEFAULT NULL COMMENT '子表关联的外键名',
+    class_name        VARCHAR(100) DEFAULT '' COMMENT '实体类名称',
+    tpl_category      VARCHAR(200) DEFAULT 'crud' COMMENT '使用的模板(crud单表操作 tree树表操作)',
+    package_name      VARCHAR(100) COMMENT '生成包路径',
+    module_name       VARCHAR(30) COMMENT '生成模块名',
+    business_name     VARCHAR(30) COMMENT '生成业务名',
+    function_name     VARCHAR(50) COMMENT '生成功能名',
+    function_author   VARCHAR(50) COMMENT '生成功能作者',
+    gen_type          CHAR(1)      DEFAULT '0' COMMENT '生成代码方式(0zip压缩包 1自定义路径)',
+    gen_path          VARCHAR(200) DEFAULT '/' COMMENT '生成路径(不填默认项目路径)',
+    options           VARCHAR(1000) COMMENT '其它生成选项',
+    create_org        BIGINT(20)   DEFAULT NULL COMMENT '创建组织机构',
+    create_by         BIGINT(20)   DEFAULT NULL COMMENT '创建者',
+    create_time       DATETIME COMMENT '创建时间',
+    update_by         BIGINT(20)   DEFAULT NULL COMMENT '更新者',
+    update_time       DATETIME COMMENT '更新时间',
+    remark            VARCHAR(500) DEFAULT NULL COMMENT '备注',
+    PRIMARY KEY (table_id)
+) ENGINE = innodb COMMENT = '代码生成业务表'
+  AUTO_INCREMENT = 1000;
+
+-- ----------------------------
+-- 21、代码生成业务表字段
+-- ----------------------------
+DROP TABLE IF EXISTS gen_table_column;
+CREATE TABLE gen_table_column
+(
+    column_id      BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT '编号',
+    table_id       BIGINT(20) COMMENT '归属表编号',
+    column_name    VARCHAR(200) COMMENT '列名称',
+    column_comment VARCHAR(500) COMMENT '列描述',
+    column_type    VARCHAR(100) COMMENT '列类型',
+    java_type      VARCHAR(500) COMMENT 'JAVA类型',
+    java_field     VARCHAR(200) COMMENT 'JAVA字段名',
+    is_pk          CHAR(1) COMMENT '是否主键(1是)',
+    is_increment   CHAR(1) COMMENT '是否自增(1是)',
+    is_required    CHAR(1) COMMENT '是否必填(1是)',
+    is_insert      CHAR(1) COMMENT '是否为插入字段(1是)',
+    is_edit        CHAR(1) COMMENT '是否编辑字段(1是)',
+    is_list        CHAR(1) COMMENT '是否列表字段(1是)',
+    is_query       CHAR(1) COMMENT '是否查询字段(1是)',
+    is_sort        CHAR(1) COMMENT '是否排序字段(1是)',
+    query_type     VARCHAR(200) DEFAULT 'EQ' COMMENT '查询方式(等于、不等于、大于、小于、范围)',
+    html_type      VARCHAR(200) COMMENT '显示类型(文本框、文本域、下拉框、复选框、单选框、日期控件)',
+    dict_type      VARCHAR(200) DEFAULT '' COMMENT '字典类型',
+    sort           INT COMMENT '排序',
+    create_org     BIGINT(20)   DEFAULT NULL COMMENT '创建组织机构',
+    create_by      BIGINT(20)   DEFAULT NULL COMMENT '创建者',
+    create_time    DATETIME COMMENT '创建时间',
+    update_by      BIGINT(20)   DEFAULT NULL COMMENT '更新者',
+    update_time    DATETIME COMMENT '更新时间',
+    PRIMARY KEY (column_id)
+) ENGINE = innodb COMMENT = '代码生成业务表字段'
+  AUTO_INCREMENT = 1000;
+
+-- ----------------------------
+-- 22、租户表
+-- ----------------------------
+DROP TABLE IF EXISTS sys_tenant;
+CREATE TABLE sys_tenant
+(
+    id                BIGINT(20)  NOT NULL AUTO_INCREMENT COMMENT 'id',
+    tenant_id         VARCHAR(20) NOT NULL COMMENT '租户编号',
+    contact_user_name VARCHAR(20) COMMENT '联系人',
+    contact_phone     VARCHAR(20) COMMENT '联系电话',
+    company_name      VARCHAR(30) COMMENT '企业名称',
+    license_number    VARCHAR(30) COMMENT '统一社会信用代码',
+    address           VARCHAR(200) COMMENT '地址',
+    intro             VARCHAR(200) COMMENT '企业简介',
+    domain            VARCHAR(200) COMMENT '域名',
+    remark            VARCHAR(200) COMMENT '备注',
+    package_id        BIGINT(20) COMMENT '租户套餐编号',
+    expire_time       DATETIME COMMENT '过期时间',
+    account_count     INT     DEFAULT -1 COMMENT '用户数量(-1不限制)',
+    status            CHAR(1) DEFAULT '0' COMMENT '租户状态(0正常 1停用)',
+    del_flag          CHAR(1) DEFAULT '0' COMMENT '删除标志(0代表存在 2代表删除)',
+    create_org        BIGINT(20) COMMENT '创建组织机构',
+    create_by         BIGINT(20) COMMENT '创建者',
+    create_time       DATETIME COMMENT '创建时间',
+    update_by         BIGINT(20) COMMENT '更新者',
+    update_time       DATETIME COMMENT '更新时间',
+    PRIMARY KEY (id)
+) ENGINE = innodb COMMENT = '租户表'
+  AUTO_INCREMENT = 1000;
+
+-- ----------------------------
+-- 23、租户套餐表
+-- ----------------------------
+DROP TABLE IF EXISTS sys_tenant_package;
+CREATE TABLE sys_tenant_package
+(
+    package_id          BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT '租户套餐id',
+    package_name        VARCHAR(20) COMMENT '套餐名称',
+    menu_ids            VARCHAR(3000) COMMENT '关联菜单id',
+    remark              VARCHAR(200) COMMENT '备注',
+    menu_check_strictly TINYINT(1) DEFAULT 1 COMMENT '菜单树选择项是否关联显示',
+    status              CHAR(1) DEFAULT '0' COMMENT '状态(0正常 1停用)',
+    del_flag            CHAR(1) DEFAULT '0' COMMENT '删除标志(0代表存在 2代表删除)',
+    create_org          BIGINT(20) COMMENT '创建组织机构',
+    create_by           BIGINT(20) COMMENT '创建者',
+    create_time         DATETIME COMMENT '创建时间',
+    update_by           BIGINT(20) COMMENT '更新者',
+    update_time         DATETIME COMMENT '更新时间',
+    PRIMARY KEY (package_id)
+) ENGINE = innodb COMMENT = '租户套餐表'
+  AUTO_INCREMENT = 1000;
+
+-- ----------------------------
+-- 24、消息阅读表
+-- ----------------------------
+DROP TABLE IF EXISTS sys_notice_status;
+CREATE TABLE sys_notice_status
+(
+    user_id      BIGINT(20)  NOT NULL COMMENT '用户ID',
+    message_id   VARCHAR(50) NOT NULL COMMENT '消息ID',
+    message_type VARCHAR(50) NOT NULL COMMENT '消息类型',
+    status       CHAR(1) DEFAULT '0' COMMENT '阅读状态(0未读 1已读)',
+    PRIMARY KEY (user_id, message_id)
+) ENGINE = innodb COMMENT = '消息阅读表';
+
+-- ----------------------------
+-- 初始化数据
+-- ----------------------------
+
+-- ----------------------------
+-- 初始化-组织机构表数据
+-- ----------------------------
+INSERT INTO sys_org (org_id, tenant_id, parent_id, ancestors, org_name, org_category, order_num, leader, phone, email,
+                     status, del_flag, create_org, create_by, create_time, update_by, update_time)
+VALUES (100, '000000', 0, '0', '科技有限公司', NULL, 0, 1, '15888888888', 'vber@iwbnet.com', '0', '0', 100, 1,
+        SYSDATE(), NULL, NULL),
+       (101, '000000', 100, '0,100', '001公司', NULL, 1, 3, '15888888888', 'xxx@qq.com', '0', '0', 100, 1, SYSDATE(),
+        NULL, NULL),
+       (102, '000000', 100, '0,100', '002公司', NULL, 2, 4, '15888888888', 'xxx@qq.com', '0', '0', 100, 1, SYSDATE(),
+        NULL, NULL);
+
+-- ----------------------------
+-- 初始化-岗位信息表数据
+-- ----------------------------
+INSERT INTO sys_post (post_id, tenant_id, org_id, post_code, post_category, post_name, post_sort, status, create_org,
+                      create_by, create_time, update_by, update_time, remark)
+VALUES (1, '000000', 100, 'default', NULL, '默认岗位', 1, '0', 100, 1, SYSDATE(), NULL, NULL, '');
+
+-- ----------------------------
+-- 初始化-角色信息表数据
+-- ----------------------------
+INSERT INTO sys_role (role_id, tenant_id, role_name, role_key, role_sort, data_scope, menu_check_strictly,
+                      org_check_strictly, is_static, status, del_flag, create_org, create_by, create_time, update_by,
+                      update_time, remark)
+VALUES (1, '000000', '超级管理员', 'super_admin', 1, 1, 1, 1, 1, '0', '0', 100, 1, SYSDATE(), NULL, NULL, '超级管理员'),
+       (2, '000000', '默认角色', 'default', 2, 3, 1, 1, 1, '0', '0', 100, 1, SYSDATE(), NULL, NULL, '默认角色');
+
+-- ----------------------------
+-- 初始化-用户信息表数据
+-- ----------------------------
+INSERT INTO sys_user (user_id, tenant_id, org_id, user_name, nick_name, user_type, email, phonenumber, sex, avatar,
+                      password, status, del_flag, login_ip, login_date, create_org, create_by, create_time, update_by,
+                      update_time, remark)
+VALUES (1, '000000', 100, 'admin', 'Admin', 'sys_user', 'admin@iwbnet.com', '13812340010', '1', NULL,
+        '$2a$10$2M15Bggh98qOy7aWrGUc2OHL4yvvNij/NtbnLfkASmCN/Xwco3rq.', '0', '0', '127.0.0.1', SYSDATE(), 100, 1,
+        SYSDATE(), NULL, NULL, '超级管理员'),
+       (2, '000000', 100, 'system', 'System', 'sys_user', 'system@iwbnet.com', '13812340011', '1', NULL,
+        '$2a$10$rCiWvcYYyEIb.PTM940FweoU.qKwErcJFmFyQdopQ1ZT37q6UcaOm', '0', '0', '127.0.0.1', SYSDATE(), 100, 1,
+        SYSDATE(), NULL, NULL, '系统管理员'),
+       (3, '000000', 101, 'demo01', 'Demo01', 'sys_user', 'demo01@iwbnet.com', '13812340021', '1', NULL,
+        '$2a$10$T2u3eqjhLe04ZUTGCPcYrONPpLEt03eDbdJdCD5JW.2PQhT/LixcO', '0', '0', '127.0.0.1', SYSDATE(), 100, 1,
+        SYSDATE(), NULL, NULL, '系统管理员'),
+       (4, '000000', 102, 'demo02', 'Demo02', 'sys_user', 'demo02@iwbnet.com', '13812340022', '1', NULL,
+        '$2a$10$YpB6Bww0qTHZu31uDAlmg.MhDYTNKuOzN3KhaBEPM.PDVrJxHHuhW', '0', '0', '127.0.0.1', SYSDATE(), 100, 1,
+        SYSDATE(), NULL, NULL, '系统管理员');
+
+-- ----------------------------
+-- 初始化-菜单信息表数据
+-- ----------------------------
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query_param, is_frame, is_cache,
+                      menu_type, visible, status, perms, icon, btn_class, btn_script, create_org, create_by,
+                      create_time, update_by, update_time, remark)
+VALUES
+    -- 系统信息
+    (1, '系统信息维护', 0, 1, 'system', NULL, '', 1, 0, 'M', '0', '0', '', 'terminal', '', '', 100, 1, SYSDATE(), NULL,
+     NULL, '系统管理目录'),
+
+    (100, '用户管理', 1, 1, 'user', 'system/user/index', '', 1, 0, 'C', '0', '0', 'system:user', 'person-circle', '',
+     '', 100, 1, SYSDATE(), NULL, NULL, '用户管理菜单'),
+    (1001, '用户查询', 100, 1, '', '', '', 1, 0, 'F', '0', '0', 'system:user:query', 'eye', '', '', 100, 1, SYSDATE(),
+     NULL, NULL, ''),
+    (1002, '用户新增', 100, 2, '', '', '', 1, 0, 'F', '0', '0', 'system:user:add', 'plus-square',
+     'btn btn-light-primary', 'handleCreate', 100, 1, SYSDATE(), NULL, NULL, ''),
+    (1003, '用户修改', 100, 3, '', '', '', 1, 0, 'F', '0', '0', 'system:user:edit', 'pencil-square',
+     'btn btn-light-success', 'handleUpdate@1', 100, 1, SYSDATE(), NULL, NULL, ''),
+    (1004, '用户删除', 100, 4, '', '', '', 1, 0, 'F', '0', '0', 'system:user:remove', 'dash-square',
+     'btn btn-light-danger', 'handleDelete@0', 100, 1, SYSDATE(), NULL, NULL, ''),
+    (1005, '用户导出', 100, 5, '', '', '', 1, 0, 'F', '0', '0', 'system:user:export', 'cloud-download',
+     'btn btn-light-info', 'handleExport', 100, 1, SYSDATE(), NULL, NULL, ''),
+    (1006, '用户导入', 100, 6, '', '', '', 1, 0, 'F', '0', '0', 'system:user:import', 'cloud-upload',
+     'btn btn-light-warning', 'handleImport', 100, 1, SYSDATE(), NULL, NULL, ''),
+    (1007, '重置密码', 100, 7, '', '', '', 1, 0, 'F', '0', '0', 'system:user:resetPwd', 'file-lock2',
+     'btn btn-light-danger', 'handleResetPwd@1', 100, 1, SYSDATE(), NULL, NULL, ''),
+
+    (101, '角色管理', 1, 2, 'role', 'system/role/index', '', 1, 0, 'C', '0', '0', 'system:role', 'person-gear', '', '',
+     100, 1, SYSDATE(), NULL, NULL, '角色管理菜单'),
+    (1008, '角色查询', 101, 1, '', '', '', 1, 0, 'F', '0', '0', 'system:role:query', 'eye', '', '', 100, 1, SYSDATE(),
+     NULL, NULL, ''),
+    (1009, '角色新增', 101, 2, '', '', '', 1, 0, 'F', '0', '0', 'system:role:add', 'plus-square',
+     'btn btn-light-primary', 'handleCreate', 100, 1, SYSDATE(), NULL, NULL, ''),
+    (1010, '角色修改', 101, 3, '', '', '', 1, 0, 'F', '0', '0', 'system:role:edit', 'pencil-square',
+     'btn btn-light-success', 'handleUpdate@1', 100, 1, SYSDATE(), NULL, NULL, ''),
+    (1011, '角色删除', 101, 4, '', '', '', 1, 0, 'F', '0', '0', 'system:role:remove', 'dash-square',
+     'btn btn-light-danger', 'handleDelete@0', 100, 1, SYSDATE(), NULL, NULL, ''),
+    (1012, '角色导出', 101, 5, '', '', '', 1, 0, 'F', '0', '0', 'system:role:export', 'cloud-download',
+     'btn btn-light-info', 'handleExport', 100, 1, SYSDATE(), NULL, NULL, ''),
+
+    (102, '菜单管理', 1, 3, 'menu', 'system/menu/index', '', 1, 0, 'C', '0', '0', 'system:menu', 'list', '', '', 100, 1,
+     SYSDATE(), NULL, NULL, '菜单管理菜单'),
+    (1013, '菜单查询', 102, 1, '', '', '', 1, 0, 'F', '0', '0', 'system:menu:query', 'eye', '', '', 100, 1, SYSDATE(),
+     NULL, NULL, ''),
+    (1014, '菜单新增', 102, 2, '', '', '', 1, 0, 'F', '0', '0', 'system:menu:add', 'plus-square',
+     'btn btn-light-primary', 'handleCreate', 100, 1, SYSDATE(), NULL, NULL, ''),
+    (1015, '菜单修改', 102, 3, '', '', '', 1, 0, 'F', '0', '0', 'system:menu:edit', 'pencil-square',
+     'btn btn-light-success', 'handleUpdate@1', 100, 1, SYSDATE(), NULL, NULL, ''),
+    (1016, '菜单删除', 102, 4, '', '', '', 1, 0, 'F', '0', '0', 'system:menu:remove', 'dash-square',
+     'btn btn-light-danger', 'handleDelete@0', 100, 1, SYSDATE(), NULL, NULL, ''),
+
+    (103, '组织机构管理', 1, 4, 'org', 'system/org/index', '', 1, 0, 'C', '0', '0', 'system:org', 'card-list', '', '',
+     100, 1, SYSDATE(), NULL, NULL, '组织机构管理菜单'),
+    (1017, '组织机构查询', 103, 1, '', '', '', 1, 0, 'F', '0', '0', 'system:org:query', 'eye', '', '', 100, 1,
+     SYSDATE(), NULL, NULL, ''),
+    (1018, '组织机构新增', 103, 2, '', '', '', 1, 0, 'F', '0', '0', 'system:org:add', 'plus-square',
+     'btn btn-light-primary', 'handleCreate', 100, 1, SYSDATE(), NULL, NULL, ''),
+    (1019, '组织机构修改', 103, 3, '', '', '', 1, 0, 'F', '0', '0', 'system:org:edit', 'pencil-square',
+     'btn btn-light-success', 'handleUpdate@1', 100, 1, SYSDATE(), NULL, NULL, ''),
+    (1020, '组织机构删除', 103, 4, '', '', '', 1, 0, 'F', '0', '0', 'system:org:remove', 'dash-square',
+     'btn btn-light-danger', 'handleDelete@0', 100, 1, SYSDATE(), NULL, NULL, ''),
+
+    (104, '岗位管理', 1, 5, 'post', 'system/post/index', '', 1, 0, 'C', '0', '0', 'system:post', 'file-person', '', '',
+     100, 1, SYSDATE(), NULL, NULL, '岗位管理菜单'),
+    (1021, '岗位查询', 104, 1, '', '', '', 1, 0, 'F', '0', '0', 'system:post:query', 'eye', '', '', 100, 1, SYSDATE(),
+     NULL, NULL, ''),
+    (1022, '岗位新增', 104, 2, '', '', '', 1, 0, 'F', '0', '0', 'system:post:add', 'plus-square',
+     'btn btn-light-primary', 'handleCreate', 100, 1, SYSDATE(), NULL, NULL, ''),
+    (1023, '岗位修改', 104, 3, '', '', '', 1, 0, 'F', '0', '0', 'system:post:edit', 'pencil-square',
+     'btn btn-light-success', 'handleUpdate@1', 100, 1, SYSDATE(), NULL, NULL, ''),
+    (1024, '岗位删除', 104, 4, '', '', '', 1, 0, 'F', '0', '0', 'system:post:remove', 'dash-square',
+     'btn btn-light-danger', 'handleDelete@0', 100, 1, SYSDATE(), NULL, NULL, ''),
+    (1025, '岗位导出', 104, 5, '', '', '', 1, 0, 'F', '0', '0', 'system:post:export', 'cloud-download',
+     'btn btn-light-info', 'handleExport', 100, 1, SYSDATE(), NULL, NULL, ''),
+
+    (105, '字典管理', 1, 6, 'dict', 'system/dict/index', '', 1, 0, 'C', '0', '0', 'system:dict', 'file-earmark-medical',
+     '', '', 100, 1, SYSDATE(), NULL, NULL, '字典管理菜单'),
+    (1026, '字典查询', 105, 1, '#', '', '', 1, 0, 'F', '0', '0', 'system:dict:query', 'eye', '', '', 100, 1, SYSDATE(),
+     NULL, NULL, ''),
+    (1027, '字典新增', 105, 2, '#', '', '', 1, 0, 'F', '0', '0', 'system:dict:add', 'plus-square',
+     'btn btn-light-primary', 'handleCreate', 100, 1, SYSDATE(), NULL, NULL, ''),
+    (1028, '字典修改', 105, 3, '#', '', '', 1, 0, 'F', '0', '0', 'system:dict:edit', 'pencil-square',
+     'btn btn-light-success', 'handleUpdate@1', 100, 1, SYSDATE(), NULL, NULL, ''),
+    (1029, '字典删除', 105, 4, '#', '', '', 1, 0, 'F', '0', '0', 'system:dict:remove', 'dash-square',
+     'btn btn-light-danger', 'handleDelete@0', 100, 1, SYSDATE(), NULL, NULL, ''),
+    (1030, '字典导出', 105, 5, '#', '', '', 1, 0, 'F', '0', '0', 'system:dict:export', 'cloud-download',
+     'btn btn-light-info', 'handleExport', 100, 1, SYSDATE(), NULL, NULL, ''),
+
+    (106, '参数设置', 1, 7, 'config', 'system/config/index', '', 1, 0, 'C', '0', '0', 'system:config', 'gear', '', '',
+     100, 1, SYSDATE(), NULL, NULL, '参数设置菜单'),
+    (1031, '参数查询', 106, 1, '#', '', '', 1, 0, 'F', '0', '0', 'system:config:query', 'eye', '', '', 100, 1,
+     SYSDATE(), NULL, NULL, ''),
+    (1032, '参数新增', 106, 2, '#', '', '', 1, 1, 'F', '0', '0', 'system:config:add', 'plus-square',
+     'btn btn-light-primary', 'handleCreate', 100, 1, SYSDATE(), NULL, NULL, ''),
+    (1033, '参数修改', 106, 3, '#', '', '', 1, 0, 'F', '0', '0', 'system:config:edit', 'pencil-square',
+     'btn btn-light-success', 'handleUpdate@1', 100, 1, SYSDATE(), NULL, NULL, ''),
+    (1034, '参数删除', 106, 4, '#', '', '', 1, 0, 'F', '0', '0', 'system:config:remove', 'dash-square',
+     'btn btn-light-danger', 'handleDelete@0', 100, 1, SYSDATE(), NULL, NULL, ''),
+    (1035, '参数导出', 106, 5, '#', '', '', 1, 0, 'F', '0', '0', 'system:config:export', 'cloud-download',
+     'btn btn-light-info', 'handleExport', 100, 1, SYSDATE(), NULL, NULL, ''),
+
+    (107, '通知公告', 1, 8, 'notice', 'system/notice/index', '', 1, 0, 'C', '0', '0', 'system:notice', 'bell', '', '',
+     100, 1, SYSDATE(), NULL, NULL, '通知公告菜单'),
+    (1036, '公告查询', 107, 1, '#', '', '', 1, 0, 'F', '0', '0', 'system:notice:query', 'eye', '', '', 100, 1,
+     SYSDATE(), NULL, NULL, ''),
+    (1037, '公告新增', 107, 2, '#', '', '', 1, 0, 'F', '0', '0', 'system:notice:add', 'plus-square',
+     'btn btn-light-primary', 'handleCreate', 100, 1, SYSDATE(), NULL, NULL, ''),
+    (1038, '公告修改', 107, 3, '#', '', '', 1, 0, 'F', '0', '0', 'system:notice:edit', 'pencil-square',
+     'btn btn-light-success', 'handleUpdate@1', 100, 1, SYSDATE(), NULL, NULL, ''),
+    (1039, '公告删除', 107, 4, '#', '', '', 1, 0, 'F', '0', '0', 'system:notice:remove', 'dash-square',
+     'btn btn-light-danger', 'handleDelete@0', 100, 1, SYSDATE(), NULL, NULL, ''),
+
+    (108, '日志管理', 1, 9, 'log', '', '', 1, 0, 'M', '0', '0', '', 'file-earmark-medical', '', '', 100, 1, SYSDATE(),
+     NULL, NULL, '日志管理菜单'),
+    (109, '操作日志', 108, 1, 'operLog', 'system/log/operLog', '', 1, 0, 'C', '0', '0', 'system:operLog',
+     'file-earmark-easel', '', '', 100, 1, SYSDATE(), NULL, NULL, '操作日志菜单'),
+    (1040, '操作查询', 109, 1, '#', '', '', 1, 0, 'F', '0', '0', 'system:operLog:query', 'eye', '', '', 100, 1,
+     SYSDATE(), NULL, NULL, ''),
+    (1041, '操作删除', 109, 2, '#', '', '', 1, 0, 'F', '0', '0', 'system:operLog:remove', 'dash-square',
+     'btn btn-light-danger', 'handleDelete@0', 100, 1, SYSDATE(), NULL, NULL, ''),
+    (1042, '日志导出', 109, 4, '#', '', '', 1, 0, 'F', '0', '0', 'system:operLog:export', 'cloud-download',
+     'btn btn-light-info', 'handleExport', 100, 1, SYSDATE(), NULL, NULL, ''),
+
+    (110, '登录日志', 108, 2, 'loginLog', 'system/log/loginLog', '', 1, 0, 'C', '0', '0', 'system:loginLog',
+     'file-earmark-person', '', '', 100, 1, SYSDATE(), NULL, NULL, '登录日志菜单'),
+    (1043, '登录查询', 110, 1, '#', '', '', 1, 0, 'F', '0', '0', 'system:loginLog:query', 'eye', '', '', 100, 1,
+     SYSDATE(), NULL, NULL, ''),
+    (1044, '账户解锁', 110, 2, '#', '', '', 1, 0, 'F', '0', '0', 'system:loginLog:unlock', 'unlock-fill',
+     'btn btn-light-primary', 'handleUnlock@1', 100, 1, SYSDATE(), NULL, NULL, ''),
+    (1045, '删除日志', 110, 3, '#', '', '', 1, 0, 'F', '0', '0', 'system:loginLog:remove', 'dash-square',
+     'btn btn-light-danger', 'handleDelete@0', 100, 1, SYSDATE(), NULL, NULL, ''),
+    (1046, '日志导出', 110, 4, '#', '', '', 1, 0, 'F', '0', '0', 'system:loginLog:export', 'cloud-download',
+     'btn btn-light-info', 'handleExport', 100, 1, SYSDATE(), NULL, NULL, ''),
+
+    (111, '文件管理', 1, 10, 'oss', 'system/oss/index', '', 1, 0, 'C', '0', '0', 'system:oss', 'file-earmark-post', '',
+     '', 100, 1, SYSDATE(), NULL, NULL, '文件管理菜单'),
+    (1061, '文件查询', 111, 1, '#', '', '', 1, 0, 'F', '0', '0', 'system:oss:query', 'eye', '', '', 100, 1, SYSDATE(),
+     NULL, NULL, ''),
+    (1062, '文件上传', 111, 2, '#', '', '', 1, 0, 'F', '0', '0', 'system:oss:upload', 'cloud-upload',
+     'btn btn-light-info', 'handleUpload', 100, 1, SYSDATE(), NULL, NULL, ''),
+    (1063, '文件下载', 111, 3, '#', '', '', 1, 0, 'F', '1', '0', 'system:oss:download', 'cloud-download',
+     'btn btn-light-info', 'handleDownload', 100, 1, SYSDATE(), NULL, NULL, ''),
+    (1064, '文件删除', 111, 4, '#', '', '', 1, 0, 'F', '0', '0', 'system:oss:remove', 'dash-square',
+     'btn btn-light-danger', 'handleDelete@0', 100, 1, SYSDATE(), NULL, NULL, ''),
+    (1065, '文件服务器配置', 111, 5, '#', '', '', 1, 0, 'F', '0', '0', 'system:ossConfig', 'gear-wide-connected',
+     'btn btn-light-success', 'handleConfig', 100, 1, SYSDATE(), NULL, NULL, ''),
+    (1066, '配置查询', 1065, 1, '#', '', '', 1, 0, 'F', '1', '0', 'system:ossConfig:query', 'eye', '', '', 100, 1,
+     SYSDATE(), NULL, NULL, ''),
+    (1067, '配置添加', 1065, 2, '#', '', '', 1, 0, 'F', '0', '0', 'system:ossConfig:add', 'plus-square',
+     'btn btn-light-primary', 'handleCreate', 100, 1, SYSDATE(), NULL, NULL, ''),
+    (1068, '配置编辑', 1065, 3, '#', '', '', 1, 0, 'F', '0', '0', 'system:ossConfig:edit', 'pencil-square',
+     'btn btn-light-success', 'handleUpdate@1', 100, 1, SYSDATE(), NULL, NULL, ''),
+    (1069, '配置删除', 1065, 4, '#', '', '', 1, 0, 'F', '0', '0', 'system:ossConfig:remove', 'dash-square',
+     'btn btn-light-danger', 'handleDelete@0', 100, 1, SYSDATE(), NULL, NULL, ''),
+
+    (112, '客户端管理', 1, 11, 'client', 'system/client/index', '', 1, 0, 'C', '0', '0', 'system:client',
+     'file-earmark-medical', '', '', 100, 1, SYSDATE(), NULL, NULL, '客户端管理菜单'),
+    (1071, '客户端查询', 112, 1, '#', '', '', 1, 0, 'F', '0', '0', 'system:client:query', 'eye', '', '', 100, 1,
+     SYSDATE(), NULL, NULL, ''),
+    (1072, '客户端新增', 112, 2, '#', '', '', 1, 0, 'F', '0', '0', 'system:client:add', 'plus-square',
+     'btn btn-light-primary', 'handleCreate', 100, 1, SYSDATE(), NULL, NULL, ''),
+    (1073, '客户端修改', 112, 3, '#', '', '', 1, 0, 'F', '0', '0', 'system:client:edit', 'pencil-square',
+     'btn btn-light-success', 'handleUpdate@1', 100, 1, SYSDATE(), NULL, NULL, ''),
+    (1074, '客户端删除', 112, 4, '#', '', '', 1, 0, 'F', '0', '0', 'system:client:remove', 'dash-square',
+     'btn btn-light-danger', 'handleDelete@0', 100, 1, SYSDATE(), NULL, NULL, ''),
+    (1075, '客户端导出', 112, 5, '#', '', '', 1, 0, 'F', '0', '0', 'system:client:export', 'cloud-download',
+     'btn btn-light-info', 'handleExport', 100, 1, SYSDATE(), NULL, NULL, ''),
+
+    -- 租户
+    (2, '租户信息维护', 0, 2, 'tenant', NULL, '', 1, 0, 'M', '0', '0', '', 'house-gear', '', '', 100, 1, SYSDATE(),
+     NULL, NULL, '租户管理目录'),
+    (121, '租户管理', 2, 1, 'tenantMg', 'system/tenant/index', '', 1, 0, 'C', '0', '0', 'system:tenant', 'houses-fill',
+     '', '', 100, 1, SYSDATE(), NULL, NULL, '租户管理菜单'),
+    (1081, '租户查询', 121, 1, '#', '', '', 1, 0, 'F', '0', '0', 'system:tenant:query', 'eye', '', '', 100, 1,
+     SYSDATE(), NULL, NULL, ''),
+    (1082, '租户新增', 121, 2, '#', '', '', 1, 0, 'F', '0', '0', 'system:tenant:add', 'plus-square',
+     'btn btn-light-primary', 'handleCreate', 100, 1, SYSDATE(), NULL, NULL, ''),
+    (1083, '租户修改', 121, 3, '#', '', '', 1, 0, 'F', '0', '0', 'system:tenant:edit', 'pencil-square',
+     'btn btn-light-success', 'handleUpdate@1', 100, 1, SYSDATE(), NULL, NULL, ''),
+    (1084, '租户删除', 121, 4, '#', '', '', 1, 0, 'F', '0', '0', 'system:tenant:remove', 'dash-square',
+     'btn btn-light-danger', 'handleDelete@0', 100, 1, SYSDATE(), NULL, NULL, ''),
+    (1085, '租户导出', 121, 5, '#', '', '', 1, 0, 'F', '0', '0', 'system:tenant:export', 'cloud-download',
+     'btn btn-light-info', 'handleExport', 100, 1, SYSDATE(), NULL, NULL, ''),
+
+    (122, '租户套餐管理', 2, 2, 'tenantPackage', 'system/tenantPackage/index', '', 1, 0, 'C', '0', '0',
+     'system:tenantPackage', 'houses', '', '', 100, 1, SYSDATE(), NULL, NULL, '租户套餐管理菜单'),
+    (1086, '租户套餐查询', 122, 1, '#', '', '', 1, 0, 'F', '0', '0', 'system:tenantPackage:query', 'eye', '', '', 100,
+     1, SYSDATE(), NULL, NULL, ''),
+    (1087, '租户套餐新增', 122, 2, '#', '', '', 1, 0, 'F', '0', '0', 'system:tenantPackage:add', 'plus-square',
+     'btn btn-light-primary', 'handleCreate', 100, 1, SYSDATE(), NULL, NULL, ''),
+    (1088, '租户套餐修改', 122, 3, '#', '', '', 1, 0, 'F', '0', '0', 'system:tenantPackage:edit', 'pencil-square',
+     'btn btn-light-success', 'handleUpdate@1', 100, 1, SYSDATE(), NULL, NULL, ''),
+    (1089, '租户套餐删除', 122, 4, '#', '', '', 1, 0, 'F', '0', '0', 'system:tenantPackage:remove', 'dash-square',
+     'btn btn-light-danger', 'handleDelete@0', 100, 1, SYSDATE(), NULL, NULL, ''),
+    (1090, '租户套餐导出', 122, 5, '#', '', '', 1, 0, 'F', '0', '0', 'system:tenantPackage:export', 'cloud-download',
+     'btn btn-light-info', 'handleExport', 100, 1, SYSDATE(), NULL, NULL, ''),
+
+    -- 监控
+    (3, '系统运行监控', 0, 3, 'monitor', NULL, '', 1, 0, 'M', '0', '0', '', 'display', '', '', 100, 1, SYSDATE(), NULL,
+     NULL, '系统监控目录'),
+    (131, '在线用户', 3, 1, 'online', 'monitor/online/index', '', 1, 0, 'C', '0', '0', 'monitor:online', 'graph-up', '',
+     '', 100, 1, SYSDATE(), NULL, NULL, '在线用户菜单'),
+    (1091, '在线查询', 131, 1, '#', '', '', 1, 0, 'F', '0', '0', 'monitor:online:query', 'eye', '', '', 100, 1,
+     SYSDATE(), NULL, NULL, ''),
+    (1092, '批量强退', 131, 2, '#', '', '', 1, 0, 'F', '0', '0', 'monitor:online:batchLogout', 'box-arrow-right',
+     'btn btn-light-danger', 'handleBatchLogout', 100, 1, SYSDATE(), NULL, NULL, ''),
+    (1093, '单条强退', 131, 3, '#', '', '', 1, 0, 'F', '0', '0', 'monitor:online:forceLogout', 'arrow-bar-right',
+     'btn btn-light-danger', 'handleForceLogout', 100, 1, SYSDATE(), NULL, NULL, ''),
+
+    (132, '缓存监控', 3, 2, 'cache', 'monitor/cache/index', '', 1, 0, 'C', '0', '0', 'monitor:cache', 'file-slides', '',
+     '', 100, 1, SYSDATE(), NULL, NULL, '缓存监控菜单'),
+
+    -- 系统工具
+    (90, '系统工具', '0', 90, 'tool', NULL, '', 1, 0, 'M', '0', '0', '', 'code-slash', '', '', 100, 1, SYSDATE(), NULL,
+     NULL, '系统工具目录'),
+    (140, '代码生成', 90, 2, 'gen', 'tool/gen/index', '', 1, 0, 'C', '0', '0', 'tool:gen', 'code-square', '', '', 100,
+     1, SYSDATE(), NULL, NULL, '代码生成菜单'),
+    (1101, '生成查询', 141, 1, '#', '', '', 1, 0, 'F', '0', '0', 'tool:gen:query', 'eye', '', '', 100, 1, SYSDATE(),
+     NULL, NULL, ''),
+    (1102, '导入代码', 141, 2, '#', '', '', 1, 0, 'F', '0', '0', 'tool:gen:import', 'cloud-upload',
+     'btn btn-light-primary', 'handleImport', 100, 1, SYSDATE(), NULL, NULL, ''),
+    (1103, '生成修改', 141, 3, '#', '', '', 1, 0, 'F', '0', '0', 'tool:gen:edit', 'pencil-square',
+     'btn btn-light-success', 'handleUpdate@1', 100, 1, SYSDATE(), NULL, NULL, ''),
+    (1104, '生成删除', 141, 4, '#', '', '', 1, 0, 'F', '0', '0', 'tool:gen:remove', 'dash-square',
+     'btn btn-light-danger', 'handleDelete@0', 100, 1, SYSDATE(), NULL, NULL, ''),
+    (1105, '预览代码', 141, 5, '#', '', '', 1, 0, 'F', '1', '0', 'tool:gen:preview', 'eye', '', '', 100, 1, SYSDATE(),
+     NULL, NULL, ''),
+    (1106, '生成代码', 141, 6, '#', '', '', 1, 0, 'F', '1', '0', 'tool:gen:code', 'code-slash', '', '', 100, 1,
+     SYSDATE(), NULL, NULL, ''),
+
+    (91, '演示示例', 0, 91, 'demo', NULL, '', 1, 0, 'M', '0', '0', '', 'emoji-smile-fill', '', '', 100, 1, SYSDATE(),
+     NULL, NULL, '系统工具目录');
+
+-- ----------------------------
+-- 初始化-租户表数据
+-- ----------------------------
+INSERT INTO sys_tenant (id, tenant_id, contact_user_name, contact_phone, company_name, license_number, address, intro,
+                        domain, remark, package_id, expire_time, account_count, status, del_flag, create_org, create_by,
+                        create_time, update_by, update_time)
+VALUES (1, '000000', '管理组', '15888888888', 'XXX有限公司', NULL, NULL, '多租户通用后台管理管理系统', NULL, NULL, NULL,
+        NULL, -1, '0', '0', 100, 1, SYSDATE(), NULL, NULL);
+
+-- ----------------------------
+-- 初始化-用户和角色关联表数据
+-- ----------------------------
+INSERT INTO sys_user_role (user_id, role_id)
+VALUES ('1', '1'),
+       (2, '1');
+
+-- ----------------------------
+-- 初始化-角色和菜单关联表数据
+-- ----------------------------
+
+
+-- ----------------------------
+-- 初始化-角色和组织机构关联表数据
+-- ----------------------------
+INSERT INTO sys_role_org(role_id, org_id)
+VALUES (2, 100),
+       (2, 101),
+       (2, 102);
+
+
+
+-- ----------------------------
+-- 初始化-用户与岗位关联表数据
+-- ----------------------------
+INSERT INTO sys_user_post (user_id, post_id)
+VALUES (1, 1),
+       (2, 1);
+
+
+INSERT INTO sys_dict_type (dict_id, tenant_id, dict_name, dict_type, create_org, create_by, create_time, update_by,
+                           update_time, remark)
+VALUES (1, '000000', '用户性别', 'sys_user_sex', 100, 1, SYSDATE(), NULL, NULL, '用户性别列表'),
+       (2, '000000', '隐藏状态', 'sys_show_hide', 100, 1, SYSDATE(), NULL, NULL, '菜单隐藏状态列表(1隐藏0显示)'),
+       (3, '000000', '启用状态', 'sys_normal_disable', 100, 1, SYSDATE(), NULL, NULL, '系统启用状态列表'),
+       (6, '000000', '系统是否', 'sys_yes_no', 100, 1, SYSDATE(), NULL, NULL, '系统是否列表'),
+       (7, '000000', '通知类型', 'sys_notice_type', 100, 1, SYSDATE(), NULL, NULL, '通知类型列表'),
+       (8, '000000', '通知状态', 'sys_notice_status', 100, 1, SYSDATE(), NULL, NULL, '通知状态列表'),
+       (9, '000000', '操作类型', 'sys_oper_type', 100, 1, SYSDATE(), NULL, NULL, '操作类型列表'),
+       (10, '000000', '操作状态', 'sys_common_status', 100, 1, SYSDATE(), NULL, NULL, '操作状态列表'),
+       (11, '000000', '授权类型', 'sys_grant_type', 100, 1, SYSDATE(), NULL, NULL, '认证授权类型'),
+       (12, '000000', '设备类型', 'sys_device_type', 100, 1, SYSDATE(), NULL, NULL, '客户端设备类型');
+
+
+INSERT INTO sys_dict_data(dict_code, tenant_id, dict_sort, dict_label, dict_value, dict_type, css_class, list_class,
+                          is_default, create_org, create_by, create_time, update_by, update_time, remark)
+VALUES (1, '000000', 1, '男', '0', 'sys_user_sex', '', 'primary', 'Y', 100, 1, SYSDATE(), NULL, NULL, '性别男'),
+       (2, '000000', 2, '女', '1', 'sys_user_sex', '', 'danger', 'N', 100, 1, SYSDATE(), NULL, NULL, '性别女'),
+       (3, '000000', 3, '未知', '2', 'sys_user_sex', '', 'warning', 'N', 100, 1, SYSDATE(), NULL, NULL, '性别未知'),
+       (4, '000000', 1, '显示', '0', 'sys_show_hide', '', 'primary', 'Y', 100, 1, SYSDATE(), NULL, NULL, '显示菜单'),
+       (5, '000000', 2, '隐藏', '1', 'sys_show_hide', '', 'danger', 'N', 100, 1, SYSDATE(), NULL, NULL, '隐藏菜单'),
+       (6, '000000', 1, '正常', '0', 'sys_normal_disable', '', 'primary', 'Y', 100, 1, SYSDATE(), NULL, NULL,
+        '正常状态'),
+       (7, '000000', 2, '停用', '1', 'sys_normal_disable', '', 'danger', 'N', 100, 1, SYSDATE(), NULL, NULL,
+        '停用状态'),
+       (12, '000000', 1, '是', 'Y', 'sys_yes_no', '', 'primary', 'Y', 100, 1, SYSDATE(), NULL, NULL, '系统默认是'),
+       (13, '000000', 2, '否', 'N', 'sys_yes_no', '', 'danger', 'N', 100, 1, SYSDATE(), NULL, NULL, '系统默认否'),
+       (14, '000000', 1, '通知', '1', 'sys_notice_type', '', 'warning', 'Y', 100, 1, SYSDATE(), NULL, NULL, '通知'),
+       (15, '000000', 2, '公告', '2', 'sys_notice_type', '', 'success', 'N', 100, 1, SYSDATE(), NULL, NULL, '公告'),
+       (16, '000000', 1, '正常', '0', 'sys_notice_status', '', 'primary', 'Y', 100, 1, SYSDATE(), NULL, NULL,
+        '正常状态'),
+       (17, '000000', 2, '关闭', '1', 'sys_notice_status', '', 'danger', 'N', 100, 1, SYSDATE(), NULL, NULL,
+        '关闭状态'),
+       (29, '000000', 99, '其他', '0', 'sys_oper_type', '', 'info', 'N', 100, 1, SYSDATE(), NULL, NULL, '其他操作'),
+       (18, '000000', 1, '新增', '1', 'sys_oper_type', '', 'primary', 'N', 100, 1, SYSDATE(), NULL, NULL, '新增操作'),
+       (19, '000000', 2, '修改', '2', 'sys_oper_type', '', 'success', 'N', 100, 1, SYSDATE(), NULL, NULL, '修改操作'),
+       (20, '000000', 3, '删除', '3', 'sys_oper_type', '', 'danger', 'N', 100, 1, SYSDATE(), NULL, NULL, '删除操作'),
+       (21, '000000', 4, '授权', '4', 'sys_oper_type', '', 'primary', 'N', 100, 1, SYSDATE(), NULL, NULL, '授权操作'),
+       (22, '000000', 5, '导出', '5', 'sys_oper_type', '', 'warning', 'N', 100, 1, SYSDATE(), NULL, NULL, '导出操作'),
+       (23, '000000', 6, '导入', '6', 'sys_oper_type', '', 'warning', 'N', 100, 1, SYSDATE(), NULL, NULL, '导入操作'),
+       (24, '000000', 7, '强退', '7', 'sys_oper_type', '', 'danger', 'N', 100, 1, SYSDATE(), NULL, NULL, '强退操作'),
+       (25, '000000', 8, '生成代码', '8', 'sys_oper_type', '', 'warning', 'N', 100, 1, SYSDATE(), NULL, NULL,
+        '生成操作'),
+       (26, '000000', 9, '清空数据', '9', 'sys_oper_type', '', 'danger', 'N', 100, 1, SYSDATE(), NULL, NULL,
+        '清空操作'),
+       (27, '000000', 1, '成功', '0', 'sys_common_status', '', 'success', 'N', 100, 1, SYSDATE(), NULL, NULL,
+        '正常状态'),
+       (28, '000000', 2, '失败', '1', 'sys_common_status', '', 'danger', 'N', 100, 1, SYSDATE(), NULL, NULL,
+        '停用状态'),
+       (30, '000000', 0, '密码认证', 'password', 'sys_grant_type', '', 'primary', 'N', 100, 1, SYSDATE(), NULL, NULL,
+        '密码认证'),
+       (31, '000000', 0, '短信认证', 'sms', 'sys_grant_type', '', 'primary', 'N', 100, 1, SYSDATE(), NULL, NULL,
+        '短信认证'),
+       (32, '000000', 0, '邮件认证', 'email', 'sys_grant_type', '', 'primary', 'N', 100, 1, SYSDATE(), NULL, NULL,
+        '邮件认证'),
+       (33, '000000', 0, '小程序认证', 'xcx', 'sys_grant_type', '', 'primary', 'N', 100, 1, SYSDATE(), NULL, NULL,
+        '小程序认证'),
+       (34, '000000', 0, '三方登录认证', 'social', 'sys_grant_type', '', 'primary', 'N', 100, 1, SYSDATE(), NULL, NULL,
+        '三方登录认证'),
+       (35, '000000', 0, 'PC', 'pc', 'sys_device_type', '', 'primary', 'N', 100, 1, SYSDATE(), NULL, NULL, 'PC'),
+       (36, '000000', 0, '安卓', 'android', 'sys_device_type', '', 'primary', 'N', 100, 1, SYSDATE(), NULL, NULL,
+        '安卓'),
+       (37, '000000', 0, 'iOS', 'ios', 'sys_device_type', '', 'primary', 'N', 100, 1, SYSDATE(), NULL, NULL, 'iOS'),
+       (38, '000000', 0, '小程序', 'xcx', 'sys_device_type', '', 'primary', 'N', 100, 1, SYSDATE(), NULL, NULL,
+        '小程序');
+
+
+-- ----------------------------
+-- 初始化-参数配置表数据
+-- ----------------------------
+INSERT INTO sys_config (config_id, tenant_id, config_name, config_key, config_value, config_type, create_org, create_by,
+                        create_time, update_by, update_time, remark)
+VALUES (1, '000000', '用户管理-账号初始密码', 'sys.user.initPassword', '123456', 'Y', 100, 1, SYSDATE(), NULL, NULL,
+        '初始化密码 123456'),
+       (2, '000000', '账号自助-是否开启用户注册功能', 'sys.account.registerUser', 'false', 'Y', 100, 1, SYSDATE(), NULL,
+        NULL, '是否开启注册用户功能(true开启,false关闭)'),
+       (3, '000000', 'OSS预览列表资源开关', 'sys.oss.previewListResource', 'true', 'Y', 100, 1, SYSDATE(), NULL, NULL,
+        'true:开启, false:关闭');
+
+
+-- ----------------------------
+-- 初始化-公告信息表数据
+-- ----------------------------
+-- #
+-- INSERT INTO sys_notice (notice_id, tenant_id, notice_title, notice_type, notice_content, status, create_org, create_by, create_time, update_by, update_time, remark)
+-- # VALUES ('1', '000000', '温馨提醒:2018-07-01 新版本发布啦', 2, '新版本内容', '0', 100, 1, SYSDATE(), NULL, NULL, '管理员'),
+-- #        (2, '000000', '维护通知:2018-07-01 系统凌晨维护', '1', '维护内容', '0', 100, 1, SYSDATE(), NULL, NULL, '管理员');
+
+-- ----------------------------
+-- 初始化-文件服务配置表数据
+-- ----------------------------
+INSERT INTO sys_oss_config (oss_config_id, tenant_id, config_key, access_key, secret_key, bucket_name, prefix, endpoint,
+                            domain, is_https, region, access_policy, status, ext1, create_org, create_by, create_time,
+                            update_by, update_time, remark)
+VALUES (1, '000000', 'local', '', '', '/preview/', '', '', '', 'N', '', '1', '0', '', 100, 1, SYSDATE(), 1, SYSDATE(),
+        NULL),
+       (2, '000000', 'qiniu', 'x', 'x', 'vber', '', 's3-cn-north-1.qiniucs.com', '', 'N', '', '1', '1', '', 100, 1,
+        SYSDATE(), 1, SYSDATE(), NULL),
+       (3, '000000', 'aliyun', 'x', 'x', 'vber', '', 'oss-cn-beijing.aliyuncs.com', '', 'N', '', '1', '1', '', 100, 1,
+        SYSDATE(), 1, SYSDATE(), NULL),
+       (4, '000000', 'qcloud', 'x', 'x', 'vber-1250000000', '', 'cos.ap-beijing.myqcloud.com', '', 'N', 'ap-beijing',
+        '1', '1', '', 100, 1, SYSDATE(), 1, SYSDATE(), NULL),
+       (5, '000000', 'minio', 'vber', 'vber123', 'vber', 'image', '127.0.0.1:9000', '', 'N', '', '1', '1', '', 100, 1,
+        SYSDATE(), 1, SYSDATE(), NULL);
+
+-- ----------------------------
+-- 初始化-客户端表数据
+-- ----------------------------
+INSERT INTO sys_client (id, client_id, client_key, client_secret, grant_type, device_type, active_timeout, timeout,
+                        status, del_flag, create_org, create_by, create_time, update_by, update_time)
+VALUES (1, '9579f8780cf24ae2959d03d11482b18a', 'pc', 'iwb123', 'password,social', 'pc', 1800, 604800, 0, 0, 100, 1,
+        SYSDATE(), 1, SYSDATE()),
+       (2, '35aee70ae7224eb9a48bc527955ddedc', 'app', 'iwb123', 'password,sms,social', 'android', 1800, 604800, 0, 0,
+        100, 1, SYSDATE(), 1, SYSDATE());

+ 21 - 0
SERVER/VberAdminPlusV3/.script/docker/ui/Dockerfile

@@ -0,0 +1,21 @@
+FROM nginx:alpine
+
+# 创建目录
+RUN mkdir -p /usr/share/nginx/html
+
+# 设置工作目录
+WORKDIR /usr/share/nginx/html
+
+# 复制构建好的 dist 目录到 nginx 服务器目录
+COPY ./.data/html/ .
+
+# 复制 Nginx 配置文件
+COPY .script/docker/nginx/nginx.conf /etc/nginx/nginx.conf
+COPY .script/docker/nginx/conf/default.conf /etc/nginx/conf.d/default.conf
+
+
+# 暴露端口
+EXPOSE 80
+
+# 启动 Nginx
+CMD ["nginx", "-g", "daemon off;"]

+ 13 - 0
SERVER/VberAdminPlusV3/.script/run/DF_UI.run.xml

@@ -0,0 +1,13 @@
+<component name="ProjectRunConfigurationManager">
+  <configuration default="false" name="DF_UI" type="docker-deploy" factoryName="dockerfile" server-name="Docker">
+    <deployment type="dockerfile">
+      <settings>
+        <option name="imageTag" value="vber/vber_ui:3.0.0" />
+        <option name="buildOnly" value="true" />
+        <option name="contextFolderPath" value="." />
+        <option name="sourceFilePath" value=".script/docker/ui/Dockerfile" />
+      </settings>
+    </deployment>
+    <method v="2" />
+  </configuration>
+</component>

+ 10 - 10
SERVER/VberAdminPlusV3/.script/run/DF_VberJob.run.xml

@@ -1,12 +1,12 @@
 <component name="ProjectRunConfigurationManager">
-    <configuration default="false" name="DF_VberJob" type="docker-deploy" factoryName="dockerfile">
-        <deployment type="dockerfile">
-            <settings>
-                <option name="imageTag" value="vber/vber-job-server:3.0.0"/>
-                <option name="buildOnly" value="true"/>
-                <option name="sourceFilePath" value="vber-extend/vber-job-server/Dockerfile"/>
-            </settings>
-        </deployment>
-        <method v="2"/>
-    </configuration>
+  <configuration default="false" name="DF_VberJob" type="docker-deploy" factoryName="dockerfile" server-name="Docker">
+    <deployment type="dockerfile">
+      <settings>
+        <option name="imageTag" value="vber/vber_job-server:3.0.0" />
+        <option name="buildOnly" value="true" />
+        <option name="sourceFilePath" value="vber-extend/vber-job-admin/Dockerfile" />
+      </settings>
+    </deployment>
+    <method v="2" />
+  </configuration>
 </component>

+ 10 - 10
SERVER/VberAdminPlusV3/.script/run/DF_VberMonitor.run.xml

@@ -1,12 +1,12 @@
 <component name="ProjectRunConfigurationManager">
-    <configuration default="false" name="DF_VberMonitor" type="docker-deploy" factoryName="dockerfile">
-        <deployment type="dockerfile">
-            <settings>
-                <option name="imageTag" value="vber/vber-monitor-admin:3.0.0"/>
-                <option name="buildOnly" value="true"/>
-                <option name="sourceFilePath" value="vber-extend/vber-monitor-admin/Dockerfile"/>
-            </settings>
-        </deployment>
-        <method v="2"/>
-    </configuration>
+  <configuration default="false" name="DF_VberMonitor" type="docker-deploy" factoryName="dockerfile" server-name="Docker">
+    <deployment type="dockerfile">
+      <settings>
+        <option name="imageTag" value="vber/vber_monitor-admin:3.0.0" />
+        <option name="buildOnly" value="true" />
+        <option name="sourceFilePath" value="vber-extend/vber-monitor-admin/Dockerfile" />
+      </settings>
+    </deployment>
+    <method v="2" />
+  </configuration>
 </component>

+ 10 - 11
SERVER/VberAdminPlusV3/.script/run/DF_VberServer.run.xml

@@ -1,13 +1,12 @@
 <component name="ProjectRunConfigurationManager">
-    <configuration default="false" name="DF_VberServer" type="docker-deploy" factoryName="dockerfile"
-                   server-name="Docker">
-        <deployment type="dockerfile">
-            <settings>
-                <option name="imageTag" value="vber/vber-server:3.0.0"/>
-                <option name="buildOnly" value="true"/>
-                <option name="sourceFilePath" value="vber-admin/Dockerfile"/>
-            </settings>
-        </deployment>
-        <method v="2"/>
-    </configuration>
+  <configuration default="false" name="DF_VberServer" type="docker-deploy" factoryName="dockerfile" server-name="Docker">
+    <deployment type="dockerfile">
+      <settings>
+        <option name="imageTag" value="vber/vber_server:3.0.0" />
+        <option name="buildOnly" value="true" />
+        <option name="sourceFilePath" value="vber-admin/Dockerfile" />
+      </settings>
+    </deployment>
+    <method v="2" />
+  </configuration>
 </component>

+ 1 - 1
UI/VAP_V3.VUE/package.json

@@ -5,7 +5,7 @@
 	"type": "module",
 	"scripts": {
 		"dev": "vite",
-		"build": "vite build",
+		"build": "vite build --emptyOutDir",
 		"init": "pnpm i",
 		"preview": "vite preview",
 		"lint": "eslint \"./src/**/*.{ts,js,vue}\"",

+ 1 - 1
UI/VAP_V3.VUE/tsconfig.config.json

@@ -12,6 +12,6 @@
 		"types": [
 			"node"
 		],
-		"verbatimModuleSyntax": true
+		"verbatimModuleSyntax": false
 	}
 }

+ 2 - 1
UI/VAP_V3.VUE/vite.config.ts

@@ -15,6 +15,7 @@ export default defineConfig(({ mode, command }) => {
 			//,visualizer()
 		],
 		build: {
+			outDir: "../../SERVER/VberAdminPlusV3/.data/html",
 			minify: "terser", // 启用 terser 压缩
 			terserOptions: {
 				compress: {
@@ -124,7 +125,7 @@ export default defineConfig(({ mode, command }) => {
 			}
 		},
 		preview: {
-			port: 6666,
+			port: 5555,
 			// host: true,
 			host: "0.0.0.0",
 			// 热更新

Разница между файлами не показана из-за своего большого размера
+ 0 - 296
UI/VAP_V3.VUE/vite.config.ts.timestamp-1751524516784-ff27d13c9582a.mjs


Некоторые файлы не были показаны из-за большого количества измененных файлов