소스 검색

初始化一修哥超级管理

hmy 2 년 전
커밋
bd435ccae0
100개의 변경된 파일10830개의 추가작업 그리고 0개의 파일을 삭제
  1. 1 0
      .gitattributes
  2. 55 0
      .gitignore
  3. BIN
      .image/Java监控.jpg
  4. BIN
      .image/MySQL.jpg
  5. BIN
      .image/OA请假-列表.jpg
  6. BIN
      .image/OA请假-发起.jpg
  7. BIN
      .image/OA请假-详情.jpg
  8. BIN
      .image/Redis.jpg
  9. BIN
      .image/admin-uniapp/01.png
  10. BIN
      .image/admin-uniapp/02.png
  11. BIN
      .image/admin-uniapp/03.png
  12. BIN
      .image/admin-uniapp/04.png
  13. BIN
      .image/admin-uniapp/05.png
  14. BIN
      .image/admin-uniapp/06.png
  15. BIN
      .image/admin-uniapp/07.png
  16. BIN
      .image/admin-uniapp/08.png
  17. BIN
      .image/admin-uniapp/09.png
  18. BIN
      .image/common/mall-feature.png
  19. BIN
      .image/common/mall-preview.png
  20. BIN
      .image/common/project-vs.png
  21. BIN
      .image/common/ruoyi-vue-pro-architecture.png
  22. BIN
      .image/common/ruoyi-vue-pro-biz.png
  23. BIN
      .image/common/yudao-cloud-architecture.png
  24. BIN
      .image/common/yudao-roadmap.png
  25. BIN
      .image/个人中心.jpg
  26. BIN
      .image/代码生成.jpg
  27. BIN
      .image/令牌管理.jpg
  28. BIN
      .image/任务列表-审批.jpg
  29. BIN
      .image/任务列表-已办.jpg
  30. BIN
      .image/任务列表-待办.jpg
  31. BIN
      .image/任务日志.jpg
  32. BIN
      .image/商户信息.jpg
  33. BIN
      .image/在线用户.jpg
  34. BIN
      .image/大屏设计器-列表.jpg
  35. BIN
      .image/大屏设计器-编辑.jpg
  36. BIN
      .image/大屏设计器-预览.jpg
  37. BIN
      .image/字典数据.jpg
  38. BIN
      .image/字典类型.jpg
  39. BIN
      .image/定时任务.jpg
  40. BIN
      .image/岗位管理.jpg
  41. BIN
      .image/应用信息-列表.jpg
  42. BIN
      .image/应用信息-编辑.jpg
  43. BIN
      .image/应用管理.jpg
  44. BIN
      .image/我的流程-列表.jpg
  45. BIN
      .image/我的流程-发起.jpg
  46. BIN
      .image/我的流程-详情.jpg
  47. BIN
      .image/报表设计器-图形报表.jpg
  48. BIN
      .image/报表设计器-打印设计.jpg
  49. BIN
      .image/报表设计器-数据报表.jpg
  50. BIN
      .image/操作日志.jpg
  51. BIN
      .image/支付订单.jpg
  52. BIN
      .image/敏感词.jpg
  53. BIN
      .image/数据库文档.jpg
  54. BIN
      .image/文件管理.jpg
  55. BIN
      .image/文件管理2.jpg
  56. BIN
      .image/文件配置.jpg
  57. BIN
      .image/日志中心.jpg
  58. BIN
      .image/流程模型-列表.jpg
  59. BIN
      .image/流程模型-定义.jpg
  60. BIN
      .image/流程模型-设计.jpg
  61. BIN
      .image/流程表单.jpg
  62. BIN
      .image/生成效果.jpg
  63. BIN
      .image/用户分组.jpg
  64. BIN
      .image/用户管理.jpg
  65. BIN
      .image/登录.jpg
  66. BIN
      .image/登录日志.jpg
  67. BIN
      .image/短信日志.jpg
  68. BIN
      .image/短信模板.jpg
  69. BIN
      .image/短信渠道.jpg
  70. BIN
      .image/租户套餐.png
  71. BIN
      .image/租户管理.jpg
  72. BIN
      .image/系统接口.jpg
  73. BIN
      .image/菜单管理.jpg
  74. BIN
      .image/表单构建.jpg
  75. BIN
      .image/角色管理.jpg
  76. BIN
      .image/访问日志.jpg
  77. BIN
      .image/退款订单.jpg
  78. BIN
      .image/通知公告.jpg
  79. BIN
      .image/部门管理.jpg
  80. BIN
      .image/配置管理.jpg
  81. BIN
      .image/链路追踪.jpg
  82. BIN
      .image/错误日志.jpg
  83. BIN
      .image/错误码管理.jpg
  84. BIN
      .image/首页.jpg
  85. 49 0
      Docker-HOWTO.md
  86. 60 0
      Jenkinsfile
  87. 20 0
      LICENSE
  88. 340 0
      README.md
  89. 160 0
      bin/deploy.sh
  90. 84 0
      docker-compose.yml
  91. 25 0
      docker.env
  92. 20 0
      http-client.env.json
  93. 4 0
      lombok.config
  94. 148 0
      pom.xml
  95. 3 0
      sql/db2/README.md
  96. 3 0
      sql/dm/README.md
  97. 5798 0
      sql/dm/ruoyi-vue-pro-dm8.sql
  98. 205 0
      sql/mysql/pay_wallet.sql
  99. 3855 0
      sql/mysql/ruoyi-vue-pro.sql
  100. 0 0
      sql/oracle/ruoyi-vue-pro.sql

+ 1 - 0
.gitattributes

@@ -0,0 +1 @@
+*.sql linguist-language=java

+ 55 - 0
.gitignore

@@ -0,0 +1,55 @@
+######################################################################
+# Build Tools
+
+.gradle
+/build/
+!gradle/wrapper/gradle-wrapper.jar
+
+target/
+.gitee/
+.github
+!.mvn/wrapper/maven-wrapper.jar
+
+.flattened-pom.xml
+
+######################################################################
+# IDE
+
+### STS ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+
+### IntelliJ IDEA ###
+.idea
+*.iws
+*.iml
+*.ipr
+
+### NetBeans ###
+nbproject/private/
+build/*
+nbbuild/
+dist/
+nbdist/
+.nb-gradle/
+
+######################################################################
+# Others
+*.log
+*.xml.versionsBackup
+*.swp
+
+!*/build/*.java
+!*/build/*.html
+!*/build/*.xml
+
+### JRebel ###
+rebel.xml
+
+application-my.yaml
+
+/yudao-ui-app/unpackage/

BIN
.image/Java监控.jpg


BIN
.image/MySQL.jpg


BIN
.image/OA请假-列表.jpg


BIN
.image/OA请假-发起.jpg


BIN
.image/OA请假-详情.jpg


BIN
.image/Redis.jpg


BIN
.image/admin-uniapp/01.png


BIN
.image/admin-uniapp/02.png


BIN
.image/admin-uniapp/03.png


BIN
.image/admin-uniapp/04.png


BIN
.image/admin-uniapp/05.png


BIN
.image/admin-uniapp/06.png


BIN
.image/admin-uniapp/07.png


BIN
.image/admin-uniapp/08.png


BIN
.image/admin-uniapp/09.png


BIN
.image/common/mall-feature.png


BIN
.image/common/mall-preview.png


BIN
.image/common/project-vs.png


BIN
.image/common/ruoyi-vue-pro-architecture.png


BIN
.image/common/ruoyi-vue-pro-biz.png


BIN
.image/common/yudao-cloud-architecture.png


BIN
.image/common/yudao-roadmap.png


BIN
.image/个人中心.jpg


BIN
.image/代码生成.jpg


BIN
.image/令牌管理.jpg


BIN
.image/任务列表-审批.jpg


BIN
.image/任务列表-已办.jpg


BIN
.image/任务列表-待办.jpg


BIN
.image/任务日志.jpg


BIN
.image/商户信息.jpg


BIN
.image/在线用户.jpg


BIN
.image/大屏设计器-列表.jpg


BIN
.image/大屏设计器-编辑.jpg


BIN
.image/大屏设计器-预览.jpg


BIN
.image/字典数据.jpg


BIN
.image/字典类型.jpg


BIN
.image/定时任务.jpg


BIN
.image/岗位管理.jpg


BIN
.image/应用信息-列表.jpg


BIN
.image/应用信息-编辑.jpg


BIN
.image/应用管理.jpg


BIN
.image/我的流程-列表.jpg


BIN
.image/我的流程-发起.jpg


BIN
.image/我的流程-详情.jpg


BIN
.image/报表设计器-图形报表.jpg


BIN
.image/报表设计器-打印设计.jpg


BIN
.image/报表设计器-数据报表.jpg


BIN
.image/操作日志.jpg


BIN
.image/支付订单.jpg


BIN
.image/敏感词.jpg


BIN
.image/数据库文档.jpg


BIN
.image/文件管理.jpg


BIN
.image/文件管理2.jpg


BIN
.image/文件配置.jpg


BIN
.image/日志中心.jpg


BIN
.image/流程模型-列表.jpg


BIN
.image/流程模型-定义.jpg


BIN
.image/流程模型-设计.jpg


BIN
.image/流程表单.jpg


BIN
.image/生成效果.jpg


BIN
.image/用户分组.jpg


BIN
.image/用户管理.jpg


BIN
.image/登录.jpg


BIN
.image/登录日志.jpg


BIN
.image/短信日志.jpg


BIN
.image/短信模板.jpg


BIN
.image/短信渠道.jpg


BIN
.image/租户套餐.png


BIN
.image/租户管理.jpg


BIN
.image/系统接口.jpg


BIN
.image/菜单管理.jpg


BIN
.image/表单构建.jpg


BIN
.image/角色管理.jpg


BIN
.image/访问日志.jpg


BIN
.image/退款订单.jpg


BIN
.image/通知公告.jpg


BIN
.image/部门管理.jpg


BIN
.image/配置管理.jpg


BIN
.image/链路追踪.jpg


BIN
.image/错误日志.jpg


BIN
.image/错误码管理.jpg


BIN
.image/首页.jpg


+ 49 - 0
Docker-HOWTO.md

@@ -0,0 +1,49 @@
+# Docker Build & Up
+
+目标: 快速部署体验系统,帮助了解系统之间的依赖关系。
+依赖:docker compose v2,删除`name: yudao-system`,降低`version`版本为`3.3`以下,支持`docker-compose`。
+
+## 功能文件列表
+
+```text
+.
+├── Docker-HOWTO.md                 
+├── docker-compose.yml              
+├── docker.env                      <-- 提供docker-compose环境变量配置
+├── yudao-server
+│   └── Dockerfile
+└── yudao-ui-admin
+    ├── .dockerignore
+    ├── Dockerfile
+    └── nginx.conf                  <-- 提供基础配置,gzip压缩、api转发
+```
+
+## 构建 jar 包
+
+```shell
+# 创建maven缓存volume
+docker volume create --name yudao-maven-repo
+
+docker run -it --rm --name yudao-maven \
+    -v yudao-maven-repo:/root/.m2 \
+    -v $PWD:/usr/src/mymaven \
+    -w /usr/src/mymaven \
+    maven mvn clean install package '-Dmaven.test.skip=true'
+```
+
+## 构建启动服务
+
+```shell
+docker compose --env-file docker.env up -d
+```
+
+首次运行会自动构建容器。可以通过`docker compose build [service]`来手动构建所有或某个docker镜像
+
+`--env-file docker.env`为可选参数,只是展示了通过`.env`文件配置容器启动的环境变量,`docker-compose.yml`本身已经提供足够的默认参数来正常运行系统。
+
+## 服务器的宿主机端口映射
+
+- admin ui: http://localhost:8080
+- api server: http://localhost:48080
+- mysql: root/123456, port: 3306
+- redis: port: 6379

+ 60 - 0
Jenkinsfile

@@ -0,0 +1,60 @@
+#!groovy
+pipeline {
+
+    agent any
+
+    parameters {
+        string(name: 'TAG_NAME', defaultValue: '', description: '')
+    }
+
+    environment {
+        // DockerHub 凭证 ID(登录您的 DockerHub)
+        DOCKER_CREDENTIAL_ID = 'dockerhub-id'
+        //  GitHub 凭证 ID (推送 tag 到 GitHub 仓库)
+        GITHUB_CREDENTIAL_ID = 'github-id'
+        // kubeconfig 凭证 ID (访问接入正在运行的 Kubernetes 集群)
+        KUBECONFIG_CREDENTIAL_ID = 'demo-kubeconfig'
+        // 镜像的推送
+        REGISTRY = 'docker.io'
+        //  DockerHub 账号名
+        DOCKERHUB_NAMESPACE = 'docker_username'
+        // GitHub 账号名
+        GITHUB_ACCOUNT = 'https://gitee.com/zhijiantianya/ruoyi-vue-pro'
+        // 应用名称
+        APP_NAME = 'yudao-server'
+        // 应用部署路径
+        APP_DEPLOY_BASE_DIR = '/media/pi/KINGTON/data/work/projects/'
+    }
+
+    stages {
+        stage('检出') {
+            steps {
+                git url: "https://gitee.com/will-we/ruoyi-vue-pro.git",
+                        branch: "devops"
+            }
+        }
+
+        stage('构建') {
+            steps {
+                // TODO 解决多环境链接、密码不同配置临时方案
+                sh 'if [ ! -d "' + "${env.HOME}" + '/resources" ];then\n' +
+                        '  echo "配置文件不存在无需修改"\n' +
+                        'else\n' +
+                        '  cp  -rf  ' + "${env.HOME}" + '/resources/*.yaml ' + "${env.APP_NAME}" + '/src/main/resources\n' +
+                        '  echo "配置文件替换"\n' +
+                        'fi'
+                sh 'mvn clean package -Dmaven.test.skip=true'
+            }
+        }
+
+        stage('部署') {
+            steps {
+                sh 'cp -f ' + ' bin/deploy.sh ' + "${env.APP_DEPLOY_BASE_DIR}" + "${env.APP_NAME}"
+                sh 'cp -f ' + "${env.APP_NAME}" + '/target/*.jar ' + "${env.APP_DEPLOY_BASE_DIR}" + "${env.APP_NAME}" +'/build/'
+                archiveArtifacts "${env.APP_NAME}" + '/target/*.jar'
+                sh 'chmod +x ' + "${env.APP_DEPLOY_BASE_DIR}" + "${env.APP_NAME}" + '/deploy.sh'
+                sh 'bash ' + "${env.APP_DEPLOY_BASE_DIR}" + "${env.APP_NAME}" + '/deploy.sh'
+            }
+        }
+    }
+}

+ 20 - 0
LICENSE

@@ -0,0 +1,20 @@
+The MIT License (MIT)
+
+Copyright (c) 2021 ruoyi-vue-pro
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+the Software, and to permit persons to whom the Software is furnished to do so,
+subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 340 - 0
README.md


+ 160 - 0
bin/deploy.sh

@@ -0,0 +1,160 @@
+#!/bin/bash
+set -e
+
+DATE=$(date +%Y%m%d%H%M)
+# 基础路径
+BASE_PATH=/work/projects/yudao-server
+# 编译后 jar 的地址。部署时,Jenkins 会上传 jar 包到该目录下
+SOURCE_PATH=$BASE_PATH/build
+# 服务名称。同时约定部署服务的 jar 包名字也为它。
+SERVER_NAME=yudao-server
+# 环境
+PROFILES_ACTIVE=development
+# 健康检查 URL
+HEALTH_CHECK_URL=http://127.0.0.1:48080/actuator/health/
+
+# heapError 存放路径
+HEAP_ERROR_PATH=$BASE_PATH/heapError
+# JVM 参数
+JAVA_OPS="-Xms512m -Xmx512m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=$HEAP_ERROR_PATH"
+
+# SkyWalking Agent 配置
+#export SW_AGENT_NAME=$SERVER_NAME
+#export SW_AGENT_COLLECTOR_BACKEND_SERVICES=192.168.0.84:11800
+#export SW_GRPC_LOG_SERVER_HOST=192.168.0.84
+#export SW_AGENT_TRACE_IGNORE_PATH="Redisson/PING,/actuator/**,/admin/**"
+#export JAVA_AGENT=-javaagent:/work/skywalking/apache-skywalking-apm-bin/agent/skywalking-agent.jar
+
+# 备份
+function backup() {
+    # 如果不存在,则无需备份
+    if [ ! -f "$BASE_PATH/$SERVER_NAME.jar" ]; then
+        echo "[backup] $BASE_PATH/$SERVER_NAME.jar 不存在,跳过备份"
+    # 如果存在,则备份到 backup 目录下,使用时间作为后缀
+    else
+        echo "[backup] 开始备份 $SERVER_NAME ..."
+        cp $BASE_PATH/$SERVER_NAME.jar $BASE_PATH/backup/$SERVER_NAME-$DATE.jar
+        echo "[backup] 备份 $SERVER_NAME 完成"
+    fi
+}
+
+# 最新构建代码 移动到项目环境
+function transfer() {
+    echo "[transfer] 开始转移 $SERVER_NAME.jar"
+
+    # 删除原 jar 包
+    if [ ! -f "$BASE_PATH/$SERVER_NAME.jar" ]; then
+        echo "[transfer] $BASE_PATH/$SERVER_NAME.jar 不存在,跳过删除"
+    else
+        echo "[transfer] 移除 $BASE_PATH/$SERVER_NAME.jar 完成"
+        rm $BASE_PATH/$SERVER_NAME.jar
+    fi
+
+    # 复制新 jar 包
+    echo "[transfer] 从 $SOURCE_PATH 中获取 $SERVER_NAME.jar 并迁移至 $BASE_PATH ...."
+    cp $SOURCE_PATH/$SERVER_NAME.jar $BASE_PATH
+
+    echo "[transfer] 转移 $SERVER_NAME.jar 完成"
+}
+
+# 停止:优雅关闭之前已经启动的服务
+function stop() {
+    echo "[stop] 开始停止 $BASE_PATH/$SERVER_NAME"
+    PID=$(ps -ef | grep $BASE_PATH/$SERVER_NAME | grep -v "grep" | awk '{print $2}')
+    # 如果 Java 服务启动中,则进行关闭
+    if [ -n "$PID" ]; then
+        # 正常关闭
+        echo "[stop] $BASE_PATH/$SERVER_NAME 运行中,开始 kill [$PID]"
+        kill -15 $PID
+        # 等待最大 120 秒,直到关闭完成。
+        for ((i = 0; i < 120; i++))
+            do
+                sleep 1
+                PID=$(ps -ef | grep $BASE_PATH/$SERVER_NAME | grep -v "grep" | awk '{print $2}')
+                if [ -n "$PID" ]; then
+                    echo -e ".\c"
+                else
+                    echo '[stop] 停止 $BASE_PATH/$SERVER_NAME 成功'
+                    break
+                fi
+		    done
+
+        # 如果正常关闭失败,那么进行强制 kill -9 进行关闭
+        if [ -n "$PID" ]; then
+            echo "[stop] $BASE_PATH/$SERVER_NAME 失败,强制 kill -9 $PID"
+            kill -9 $PID
+        fi
+    # 如果 Java 服务未启动,则无需关闭
+    else
+        echo "[stop] $BASE_PATH/$SERVER_NAME 未启动,无需停止"
+    fi
+}
+
+# 启动:启动后端项目
+function start() {
+    # 开启启动前,打印启动参数
+    echo "[start] 开始启动 $BASE_PATH/$SERVER_NAME"
+    echo "[start] JAVA_OPS: $JAVA_OPS"
+    echo "[start] JAVA_AGENT: $JAVA_AGENT"
+    echo "[start] PROFILES: $PROFILES_ACTIVE"
+
+    # 开始启动
+    BUILD_ID=dontKillMe nohup java -server $JAVA_OPS $JAVA_AGENT -jar $BASE_PATH/$SERVER_NAME.jar --spring.profiles.active=$PROFILES_ACTIVE &
+    echo "[start] 启动 $BASE_PATH/$SERVER_NAME 完成"
+}
+
+# 健康检查:自动判断后端项目是否正常启动
+function healthCheck() {
+    # 如果配置健康检查,则进行健康检查
+    if [ -n "$HEALTH_CHECK_URL" ]; then
+        # 健康检查最大 120 秒,直到健康检查通过
+        echo "[healthCheck] 开始通过 $HEALTH_CHECK_URL 地址,进行健康检查";
+        for ((i = 0; i < 120; i++))
+            do
+                # 请求健康检查地址,只获取状态码。
+                result=`curl -I -m 10 -o /dev/null -s -w %{http_code} $HEALTH_CHECK_URL || echo "000"`
+                # 如果状态码为 200,则说明健康检查通过
+                if [ "$result" == "200" ]; then
+                    echo "[healthCheck] 健康检查通过";
+                    break
+                # 如果状态码非 200,则说明未通过。sleep 1 秒后,继续重试
+                else
+                    echo -e ".\c"
+                    sleep 1
+                fi
+            done
+
+        # 健康检查未通过,则异常退出 shell 脚本,不继续部署。
+        if [ ! "$result" == "200" ]; then
+            echo "[healthCheck] 健康检查不通过,可能部署失败。查看日志,自行判断是否启动成功";
+            tail -n 10 nohup.out
+            exit 1;
+        # 健康检查通过,打印最后 10 行日志,可能部署的人想看下日志。
+        else
+            tail -n 10 nohup.out
+        fi
+    # 如果未配置健康检查,则 sleep 120 秒,人工看日志是否部署成功。
+    else
+        echo "[healthCheck] HEALTH_CHECK_URL 未配置,开始 sleep 120 秒";
+        sleep 120
+        echo "[healthCheck] sleep 120 秒完成,查看日志,自行判断是否启动成功";
+        tail -n 50 nohup.out
+    fi
+}
+
+# 部署
+function deploy() {
+    cd $BASE_PATH
+    # 备份原 jar
+    backup
+    # 停止 Java 服务
+    stop
+    # 部署新 jar
+    transfer
+    # 启动 Java 服务
+    start
+    # 健康检查
+    healthCheck
+}
+
+deploy

+ 84 - 0
docker-compose.yml

@@ -0,0 +1,84 @@
+version: "3.4"
+
+name: yudao-system
+
+services:
+  mysql:
+    container_name: yudao-mysql
+    image: mysql:8
+    restart: unless-stopped
+    tty: true
+    ports:
+      - "3306:3306"
+    environment:
+      MYSQL_DATABASE: ${MYSQL_DATABASE:-ruoyi-vue-pro}
+      MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD:-123456}
+    volumes:
+      - mysql:/var/lib/mysql/
+      - ./sql/mysql/ruoyi-vue-pro.sql:/docker-entrypoint-initdb.d/ruoyi-vue-pro.sql:ro
+
+  redis:
+    container_name: yudao-redis
+    image: redis:6-alpine
+    restart: unless-stopped
+    ports:
+      - "6379:6379"
+    volumes:
+      - redis:/data
+
+  server:
+    container_name: yudao-server
+    build:
+      context: ./yudao-server/
+    image: yudao-server
+    restart: unless-stopped
+    ports:
+      - "48080:48080"
+    environment:
+      # https://github.com/polovyivan/docker-pass-configs-to-container
+      SPRING_PROFILES_ACTIVE: local
+      JAVA_OPTS:
+        ${JAVA_OPTS:-
+          -Xms512m
+          -Xmx512m
+          -Djava.security.egd=file:/dev/./urandom
+        }
+      ARGS:
+        --spring.datasource.dynamic.datasource.master.url=${MASTER_DATASOURCE_URL:-jdbc:mysql://yudao-mysql:3306/ruoyi-vue-pro?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true}
+        --spring.datasource.dynamic.datasource.master.username=${MASTER_DATASOURCE_USERNAME:-root}
+        --spring.datasource.dynamic.datasource.master.password=${MASTER_DATASOURCE_PASSWORD:-123456}
+        --spring.datasource.dynamic.datasource.slave.url=${SLAVE_DATASOURCE_URL:-jdbc:mysql://yudao-mysql:3306/ruoyi-vue-pro?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true}
+        --spring.datasource.dynamic.datasource.slave.username=${SLAVE_DATASOURCE_USERNAME:-root}
+        --spring.datasource.dynamic.datasource.slave.password=${SLAVE_DATASOURCE_PASSWORD:-123456}
+        --spring.redis.host=${REDIS_HOST:-yudao-redis}
+    depends_on:
+      - mysql
+      - redis
+
+  admin:
+    container_name: yudao-admin
+    build:
+      context: ./yudao-ui-admin
+      args:
+        NODE_ENV:
+          ENV=${NODE_ENV:-production}
+          PUBLIC_PATH=${PUBLIC_PATH:-/}
+          VUE_APP_TITLE=${VUE_APP_TITLE:-芋道管理系统}
+          VUE_APP_BASE_API=${VUE_APP_BASE_API:-/prod-api}
+          VUE_APP_APP_NAME=${VUE_APP_APP_NAME:-/}
+          VUE_APP_TENANT_ENABLE=${VUE_APP_TENANT_ENABLE:-true}
+          VUE_APP_CAPTCHA_ENABLE=${VUE_APP_CAPTCHA_ENABLE:-true}
+          VUE_APP_DOC_ENABLE=${VUE_APP_DOC_ENABLE:-true}
+          VUE_APP_BAIDU_CODE=${VUE_APP_BAIDU_CODE:-fadc1bd5db1a1d6f581df60a1807f8ab}
+    image: yudao-admin
+    restart: unless-stopped
+    ports:
+      - "8080:80"
+    depends_on:
+      - server
+
+volumes:
+  mysql:
+    driver: local
+  redis:
+    driver: local

+ 25 - 0
docker.env

@@ -0,0 +1,25 @@
+## mysql
+MYSQL_DATABASE=ruoyi-vue-pro
+MYSQL_ROOT_PASSWORD=123456
+
+## server
+JAVA_OPTS=-Xms512m -Xmx512m -Djava.security.egd=file:/dev/./urandom
+
+MASTER_DATASOURCE_URL=jdbc:mysql://yudao-mysql:3306/${MYSQL_DATABASE}?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true
+MASTER_DATASOURCE_USERNAME=root
+MASTER_DATASOURCE_PASSWORD=${MYSQL_ROOT_PASSWORD}
+SLAVE_DATASOURCE_URL=${MASTER_DATASOURCE_URL}
+SLAVE_DATASOURCE_USERNAME=${MASTER_DATASOURCE_USERNAME}
+SLAVE_DATASOURCE_PASSWORD=${MASTER_DATASOURCE_PASSWORD}
+REDIS_HOST=yudao-redis
+
+## admin
+NODE_ENV=production
+PUBLIC_PATH=/
+VUE_APP_TITLE=芋道管理系统
+VUE_APP_BASE_API=/prod-api
+VUE_APP_APP_NAME=/
+VUE_APP_TENANT_ENABLE=true
+VUE_APP_CAPTCHA_ENABLE=true
+VUE_APP_DOC_ENABLE=true
+VUE_APP_BAIDU_CODE=fadc1bd5db1a1d6f581df60a1807f8ab

+ 20 - 0
http-client.env.json

@@ -0,0 +1,20 @@
+{
+  "local": {
+    "baseUrl": "http://127.0.0.1:48080/admin-api",
+    "token": "test1",
+    "adminTenentId": "1",
+
+    "appApi": "http://127.0.0.1:48080/app-api",
+    "appToken": "test247",
+    "appTenentId": "1"
+  },
+  "gateway": {
+    "baseUrl": "http://127.0.0.1:8888/admin-api",
+    "token": "test1",
+    "adminTenentId": "1",
+
+    "appApi": "http://127.0.0.1:8888/app-api",
+    "appToken": "test1",
+    "appTenantId": "1"
+  }
+}

+ 4 - 0
lombok.config

@@ -0,0 +1,4 @@
+config.stopBubbling = true
+lombok.tostring.callsuper=CALL
+lombok.equalsandhashcode.callsuper=CALL
+lombok.accessors.chain=true

+ 148 - 0
pom.xml

@@ -0,0 +1,148 @@
+<?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>
+	<groupId>cn.iocoder.boot</groupId>
+	<artifactId>yudao</artifactId>
+	<version>${revision}</version>
+	<packaging>pom</packaging>
+	<modules>
+		<module>yudao-dependencies</module>
+		<module>yudao-framework</module>
+		<!-- Server 主项目 -->
+		<module>yudao-server</module>
+		<!-- 各种 module 拓展 -->
+		<module>yudao-module-system</module>
+		<module>yudao-module-infra</module>
+		<module>yudao-module-member</module>
+		<module>yudao-module-bpm</module>
+		<module>yudao-module-report</module>
+		<module>yudao-module-mp</module>
+		<module>yudao-module-pay</module>
+		<module>yudao-module-mall</module>
+		<!-- 示例项目 -->
+		<!-- <module>yudao-example</module> -->
+	</modules>
+
+	<name>${project.artifactId}</name>
+	<description>芋道项目基础脚手架</description>
+	<url>https://github.com/YunaiV/ruoyi-vue-pro</url>
+
+	<properties>
+		<revision>1.8.3-snapshot</revision>
+		<!-- Maven 相关 -->
+		<java.version>1.8</java.version>
+		<maven.compiler.source>${java.version}</maven.compiler.source>
+		<maven.compiler.target>${java.version}</maven.compiler.target>
+		<maven-surefire-plugin.version>3.0.0-M5</maven-surefire-plugin.version>
+		<maven-compiler-plugin.version>3.8.1</maven-compiler-plugin.version>
+		<flatten-maven-plugin.version>1.5.0</flatten-maven-plugin.version>
+		<!-- 看看咋放到 bom 里 -->
+		<lombok.version>1.18.30</lombok.version>
+		<spring.boot.version>2.7.17</spring.boot.version>
+		<mapstruct.version>1.5.5.Final</mapstruct.version>
+		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+	</properties>
+
+	<dependencyManagement>
+		<dependencies>
+			<dependency>
+				<groupId>cn.iocoder.boot</groupId>
+				<artifactId>yudao-dependencies</artifactId>
+				<version>${revision}</version>
+				<type>pom</type>
+				<scope>import</scope>
+			</dependency>
+		</dependencies>
+	</dependencyManagement>
+
+	<build>
+		<pluginManagement>
+			<plugins>
+				<!-- maven-surefire-plugin 插件,用于运行单元测试。 -->
+				<!-- 注意,需要使用 3.0.X+,因为要支持 Junit 5 版本 -->
+				<plugin>
+					<groupId>org.apache.maven.plugins</groupId>
+					<artifactId>maven-surefire-plugin</artifactId>
+					<version>${maven-surefire-plugin.version}</version>
+				</plugin>
+				<!-- maven-compiler-plugin 插件,解决 spring-boot-configuration-processor 
+					+ Lombok + MapStruct 组合 -->
+				<!-- https://stackoverflow.com/questions/33483697/re-run-spring-boot-configuration-annotation-processor-to-update-generated-metada -->
+				<plugin>
+					<groupId>org.apache.maven.plugins</groupId>
+					<artifactId>maven-compiler-plugin</artifactId>
+					<version>${maven-compiler-plugin.version}</version>
+					<configuration>
+						<annotationProcessorPaths>
+							<path>
+								<groupId>org.springframework.boot</groupId>
+								<artifactId>spring-boot-configuration-processor</artifactId>
+								<version>${spring.boot.version}</version>
+							</path>
+							<path>
+								<groupId>org.projectlombok</groupId>
+								<artifactId>lombok</artifactId>
+								<version>${lombok.version}</version>
+							</path>
+							<path>
+								<groupId>org.mapstruct</groupId>
+								<artifactId>mapstruct-processor</artifactId>
+								<version>${mapstruct.version}</version>
+							</path>
+						</annotationProcessorPaths>
+					</configuration>
+				</plugin>
+				<plugin>
+					<groupId>org.codehaus.mojo</groupId>
+					<artifactId>flatten-maven-plugin</artifactId>
+				</plugin>
+			</plugins>
+		</pluginManagement>
+
+		<plugins>
+			<!-- 统一 revision 版本 -->
+			<plugin>
+				<groupId>org.codehaus.mojo</groupId>
+				<artifactId>flatten-maven-plugin</artifactId>
+				<version>${flatten-maven-plugin.version}</version>
+				<configuration>
+					<flattenMode>resolveCiFriendliesOnly</flattenMode>
+					<updatePomFile>true</updatePomFile>
+				</configuration>
+				<executions>
+					<execution>
+						<goals>
+							<goal>flatten</goal>
+						</goals>
+						<id>flatten</id>
+						<phase>process-resources</phase>
+					</execution>
+					<execution>
+						<goals>
+							<goal>clean</goal>
+						</goals>
+						<id>flatten.clean</id>
+						<phase>clean</phase>
+					</execution>
+				</executions>
+			</plugin>
+		</plugins>
+	</build>
+
+	<!-- 使用 huawei / aliyun 的 Maven 源,提升下载速度 -->
+	<repositories>
+		<repository>
+			<id>huaweicloud</id>
+			<name>huawei</name>
+			<url>https://mirrors.huaweicloud.com/repository/maven/</url>
+		</repository>
+		<repository>
+			<id>aliyunmaven</id>
+			<name>aliyun</name>
+			<url>https://maven.aliyun.com/repository/public</url>
+		</repository>
+	</repositories>
+
+</project>

+ 3 - 0
sql/db2/README.md

@@ -0,0 +1,3 @@
+暂未适配 IBM DB2 数据库,如果你有需要,可以微信联系 wangwenbin-server 一起建设。
+
+你需要把表结构与数据导入到 DM 数据库,我来测试与适配代码。

+ 3 - 0
sql/dm/README.md

@@ -0,0 +1,3 @@
+暂未适配国产 DM 数据库,如果你有需要,可以微信联系 wangwenbin-server 一起建设。
+
+你需要把表结构与数据导入到 DM 数据库,我来测试与适配代码。

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 5798 - 0
sql/dm/ruoyi-vue-pro-dm8.sql


+ 205 - 0
sql/mysql/pay_wallet.sql

@@ -0,0 +1,205 @@
+-- ----------------------------
+-- 转账单表
+-- ----------------------------
+DROP TABLE IF EXISTS `pay_transfer`;
+CREATE TABLE `pay_transfer`
+(
+    `id`                   bigint       NOT NULL AUTO_INCREMENT COMMENT '编号',
+    `type`                 int          NOT NULL COMMENT '类型',
+    `app_id`               bigint       NOT NULL COMMENT '应用编号',
+    `merchant_order_id`    varchar(64)  NOT NULL COMMENT '商户订单编号',
+    `price`                int          NOT NULL COMMENT '转账金额,单位:分',
+    `subject`              varchar(512) NOT NULL COMMENT '转账标题',
+    `payee_info`           varchar(512) NOT NULL COMMENT '收款人信息,不同类型和渠道不同',
+    `status`               tinyint      NOT NULL COMMENT '转账状态',
+    `success_time`         datetime     NULL COMMENT '转账成功时间',
+    `extension_id`         bigint       NULL  COMMENT '转账渠道编号',
+    `no`                   varchar(64)  NULL COMMENT '转账单号',
+    `channel_id`           bigint       NULL  COMMENT '转账渠道编号',
+    `channel_code`         varchar(32)  NULL  COMMENT '转账渠道编码',
+    `creator`              varchar(64)  CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '创建者',
+    `create_time`          datetime     NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+    `updater`              varchar(64)  CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者',
+    `update_time`          datetime     NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
+    `deleted`              bit(1)       NOT NULL DEFAULT b'0' COMMENT '是否删除',
+    `tenant_id`            bigint       NOT NULL DEFAULT 0 COMMENT '租户编号',
+    PRIMARY KEY (`id`) USING BTREE
+) ENGINE=InnoDB COMMENT='转账单表';
+
+-- ----------------------------
+-- 转账扩展单
+-- ----------------------------
+DROP TABLE IF EXISTS `pay_transfer_extension`;
+CREATE TABLE `pay_transfer_extension`
+(
+    `id`                   bigint        NOT NULL AUTO_INCREMENT COMMENT '编号',
+    `no`                   varchar(64)   NOT NULL COMMENT '转账单号',
+    `transfer_id`          bigint        NOT NULL COMMENT '转账单编号',
+    `channel_id`           bigint        NOT NULL COMMENT '转账渠道编号',
+    `channel_code`         varchar(32)   NOT NULL COMMENT '转账渠道编码',
+    `channel_extras`       varchar(512)  NULL DEFAULT NULL COMMENT '支付渠道的额外参数',
+    `status`               tinyint       NOT NULL COMMENT '转账状态',
+    `channel_notify_data`  varchar(4096) NULL DEFAULT NULL COMMENT '支付渠道异步通知的内容',
+    `creator`              varchar(64)   NULL DEFAULT '' COMMENT '创建者',
+    `create_time`          datetime      NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+    `updater`              varchar(64)   NULL DEFAULT '' COMMENT '更新者',
+    `update_time`          datetime      NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
+    `deleted`              bit(1)        NOT NULL DEFAULT b'0' COMMENT '是否删除',
+    `tenant_id`            bigint        NOT NULL DEFAULT 0 COMMENT '租户编号',
+    PRIMARY KEY (`id`) USING BTREE
+) ENGINE=InnoDB COMMENT='转账拓展单表';
+
+-- ----------------------------
+-- Table structure for pay_demo_transfer
+-- ----------------------------
+DROP TABLE IF EXISTS `pay_demo_transfer`;
+CREATE TABLE `pay_demo_transfer`  (
+  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '订单编号',
+  `user_id` bigint UNSIGNED NOT NULL COMMENT '用户编号',
+  `price` int NOT NULL COMMENT '转账金额,单位:分',
+  `type`  int NOT NULL COMMENT '转账类型',
+  `payee_info` varchar(512) NOT NULL COMMENT '收款人信息,不同类型和渠道不同',
+  `transfer_status` tinyint      NOT NULL DEFAULT 0 COMMENT '转账状态',
+  `pay_transfer_id` bigint NULL DEFAULT NULL COMMENT '转账订单编号',
+  `pay_channel_code` varchar(16)  NULL DEFAULT NULL COMMENT '转账支付成功渠道',
+  `transfer_time` datetime NULL DEFAULT NULL COMMENT '转账支付时间',
+  `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT '' COMMENT '创建者',
+  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+  `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT '' COMMENT '更新者',
+  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
+  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
+  `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
+   PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB  COMMENT = '示例业务转账订单\n';
+
+
+ALTER TABLE `pay_channel`
+    MODIFY COLUMN `config` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '支付渠道配置' AFTER `app_id`;
+
+-- ----------------------------
+-- 充值套餐表
+-- ----------------------------
+DROP TABLE IF EXISTS `pay_wallet_recharge_package`;
+CREATE TABLE `pay_wallet_recharge_package`
+(
+    `id`                   bigint       NOT NULL AUTO_INCREMENT COMMENT '编号',
+    `name`                 varchar(64)  NOT NULL COMMENT '套餐名',
+    `pay_price`            int          NOT NULL COMMENT '支付金额',
+    `bonus_price`          int          NOT NULL COMMENT '赠送金额',
+    `status`               tinyint      NOT NULL COMMENT '状态',
+    `creator`              varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT '' COMMENT '创建者',
+    `create_time`          datetime     NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+    `updater`              varchar(64)  CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者',
+    `update_time`          datetime     NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
+    `deleted`              bit(1)       NOT NULL DEFAULT b'0' COMMENT '是否删除',
+    `tenant_id`            bigint       NOT NULL DEFAULT 0 COMMENT '租户编号',
+    PRIMARY KEY (`id`) USING BTREE
+) ENGINE=InnoDB COMMENT='充值套餐表';
+
+-- ----------------------------
+-- Table structure for pay_wallet_recharge
+-- ----------------------------
+DROP TABLE IF EXISTS `pay_wallet_recharge`;
+CREATE TABLE `pay_wallet_recharge`  (
+    `id` bigint(0) NOT NULL AUTO_INCREMENT COMMENT '编号',
+    `wallet_id` bigint(0) NOT NULL COMMENT '会员钱包 id',
+    `total_price` int(0) NOT NULL COMMENT '用户实际到账余额,例如充 100 送 20,则该值是 120',
+    `pay_price` int(0) NOT NULL COMMENT '实际支付金额',
+    `bonus_price` int(0) NOT NULL COMMENT '钱包赠送金额',
+    `package_id` bigint(0) DEFAULT NULL COMMENT '充值套餐编号',
+    `pay_status` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否已支付:[0:未支付 1:已经支付过]',
+    `pay_order_id` bigint(0) DEFAULT NULL COMMENT '支付订单编号',
+    `pay_channel_code` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '支付成功的支付渠道',
+    `pay_time` datetime(0) DEFAULT NULL COMMENT '订单支付时间',
+    `pay_refund_id` bigint(0) DEFAULT NULL COMMENT '支付退款单编号',
+    `refund_total_price` int(0) NOT NULL DEFAULT 0 COMMENT '退款金额,包含赠送金额',
+    `refund_pay_price` int(0) NOT NULL DEFAULT 0 COMMENT '退款支付金额',
+    `refund_bonus_price` int(0) NOT NULL DEFAULT 0 COMMENT '退款钱包赠送金额',
+    `refund_time` datetime(0) DEFAULT NULL COMMENT '退款时间',
+    `refund_status` int(0) NOT NULL DEFAULT 0 COMMENT '退款状态',
+    `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '创建者',
+    `create_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+    `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '更新者',
+    `update_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '更新时间',
+    `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
+    `tenant_id` bigint(0) NOT NULL DEFAULT 0 COMMENT '租户编号',
+    PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 9 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '会员钱包充值' ROW_FORMAT = Dynamic;
+
+-- 钱包充值套餐,钱包余额菜单脚本
+
+INSERT INTO system_menu(
+    name, permission, type, sort, parent_id,
+    path, icon, component, status, component_name
+)
+VALUES (
+           '钱包管理', '', 1, 5, 1117,
+           'wallet', 'ep:caret-right', '', 0, ''
+       );
+SELECT @parentId1 := LAST_INSERT_ID();
+
+INSERT INTO system_menu(
+    name, permission, type, sort, parent_id,
+    path, icon, component, status, component_name
+)
+VALUES (
+           '充值套餐', '', 2, 2, @parentId1,
+           'wallet-recharge-package', 'fa:leaf', 'pay/wallet/rechargePackage/index', 0, 'WalletRechargePackage'
+       );
+SELECT @parentId := LAST_INSERT_ID();
+
+-- 按钮 SQL
+INSERT INTO system_menu(
+    name, permission, type, sort, parent_id,
+    path, icon, component, status
+)
+VALUES (
+           '钱包充值套餐查询', 'pay:wallet-recharge-package:query', 3, 1, @parentId,
+           '', '', '', 0
+       );
+INSERT INTO system_menu(
+    name, permission, type, sort, parent_id,
+    path, icon, component, status
+)
+VALUES (
+           '钱包充值套餐创建', 'pay:wallet-recharge-package:create', 3, 2, @parentId,
+           '', '', '', 0
+       );
+INSERT INTO system_menu(
+    name, permission, type, sort, parent_id,
+    path, icon, component, status
+)
+VALUES (
+           '钱包充值套餐更新', 'pay:wallet-recharge-package:update', 3, 3, @parentId,
+           '', '', '', 0
+       );
+INSERT INTO system_menu(
+    name, permission, type, sort, parent_id,
+    path, icon, component, status
+)
+VALUES (
+           '钱包充值套餐删除', 'pay:wallet-recharge-package:delete', 3, 4, @parentId,
+           '', '', '', 0
+       );
+
+INSERT INTO system_menu(
+    name, permission, type, sort, parent_id,
+    path, icon, component, status, component_name
+)
+VALUES (
+           '钱包余额', '', 2, 1, @parentId1,
+           'wallet-balance', 'fa:leaf', 'pay/wallet/balance/index', 0, 'WalletBalance'
+       );
+
+SELECT @parentId := LAST_INSERT_ID();
+
+-- 按钮 SQL
+INSERT INTO system_menu(
+    name, permission, type, sort, parent_id,
+    path, icon, component, status
+)
+VALUES (
+           '钱包余额查询', 'pay:wallet:query', 3, 1, @parentId,
+           '', '', '', 0
+       );
+

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 3855 - 0
sql/mysql/ruoyi-vue-pro.sql


+ 0 - 0
sql/oracle/ruoyi-vue-pro.sql


이 변경점에서 너무 많은 파일들이 변경되어 몇몇 파일들은 표시되지 않았습니다.