diff --git a/Docker-HOWTO.md b/Docker-HOWTO.md new file mode 100644 index 000000000..87b4a4a02 --- /dev/null +++ b/Docker-HOWTO.md @@ -0,0 +1,60 @@ +# Docker Build & Up + +目标: 快速部署体验系统,帮助了解系统之间的依赖关系。 + +## 功能文件列表 + +```text +. +├── Docker-HOWTO.md +├── docker-compose.yml +├── docker.env +├── yudao-server +│ ├── Dockerfile +│ └── nginx.conf +└── yudao-ui-admin + ├── .dockerignore + └── Dockerfile +``` + +## Maven build (Optional) + +```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' +``` + +## Docker Compose Build + +```shell +docker compose --env-file docker.env build +``` + +## Docker Compose Up + +```shell +docker compose --env-file docker.env up -d +``` + +第一次执行,由于数据库未初始化,因此yudao-server容器会运行失败。执行如下命令初始化数据库: + +```shell +docker exec -i yudao-mysql \ + sh -c 'exec mysql -uroot -p"$MYSQL_ROOT_PASSWORD" ruoyi-vue-pro' \ + < ./sql/mysql/ruoyi-vue-pro.sql +``` + +注意:这里用docker compose exec 会出现 `the input device is not a TTY` 报错 + +## Server:Port + +- admin: http://localhost:8080 +- API: http://localhost:48080 +- mysql: root/123456, port: 3308 +- redis: port: 6379 diff --git a/README.md b/README.md index 86b8317a3..4feb387d2 100644 --- a/README.md +++ b/README.md @@ -10,6 +10,7 @@ ## 🐶 新手必读 * 演示地址【Vue3 + element-plus】: +* 演示地址【Vue3 + vben(ant-design-vue)】: * 演示地址【Vue2 + element-ui】: * 启动文档: * 视频教程: @@ -24,8 +25,8 @@ ![架构图](https://static.iocoder.cn/ruoyi-vue-pro-architecture.png?imageView2/2/format/webp) -* 管理后台的 Vue3 版本采用 [vue-element-plus-admin](https://gitee.com/kailong110120130/vue-element-plus-admin) ,Vue2 版本采用 [vue-element-admin](https://github.com/PanJiaChen/vue-element-admin) -* 管理后台的移动端采用 [uni-app](https://github.com/dcloudio/uni-app) 方案,一份代码多终端适配,同时支持 APP、小程序、H5! +* 管理后台的电脑端:Vue3 提供 [element-plus](https://gitee.com/yudaocode/yudao-ui-admin-vue3)、[vben(ant-design-vue)](https://gitee.com/yudaocode/yudao-ui-admin-vben) 两个版本,Vue2 提供 [element-ui](https://gitee.com/zhijiantianya/ruoyi-vue-pro/tree/master/yudao-ui-admin) 版本 +* 管理后台的移动端:采用 [uni-app](https://github.com/dcloudio/uni-app) 方案,一份代码多终端适配,同时支持 APP、小程序、H5! * 后端采用 Spring Boot 多模块架构、MySQL + MyBatis Plus、Redis + Redisson * 数据库可使用 MySQL、Oracle、PostgreSQL、SQL Server、MariaDB、国产达梦 DM、TiDB 等 * 权限认证使用 Spring Security & Token & Redis,支持多终端、多种用户的认证系统,支持 SSO 单点登录 @@ -248,7 +249,7 @@ ps:核心功能已经实现,正在对接微信小程序中... | 框架 | 说明 | 版本 | 学习指南 | |---------------------------------------------------------------------------------------------|------------------|-------------|----------------------------------------------------------------| -| [Spring Boot](https://spring.io/projects/spring-boot) | 应用开发框架 | 2.7.10 | [文档](https://github.com/YunaiV/SpringBoot-Labs) | +| [Spring Boot](https://spring.io/projects/spring-boot) | 应用开发框架 | 2.7.11 | [文档](https://github.com/YunaiV/SpringBoot-Labs) | | [MySQL](https://www.mysql.com/cn/) | 数据库服务器 | 5.7 / 8.0+ | | | [Druid](https://github.com/alibaba/druid) | JDBC 连接池、监控组件 | 1.2.16 | [文档](http://www.iocoder.cn/Spring-Boot/datasource-pool/?yudao) | | [MyBatis Plus](https://mp.baomidou.com/) | MyBatis 增强工具包 | 3.5.3.1 | [文档](http://www.iocoder.cn/Spring-Boot/MyBatis/?yudao) | @@ -265,7 +266,7 @@ ps:核心功能已经实现,正在对接微信小程序中... | [SkyWalking](https://skywalking.apache.org/) | 分布式应用追踪系统 | 8.12.0 | [文档](http://www.iocoder.cn/Spring-Boot/SkyWalking/?yudao) | | [Spring Boot Admin](https://github.com/codecentric/spring-boot-admin) | Spring Boot 监控平台 | 2.7.10 | [文档](http://www.iocoder.cn/Spring-Boot/Admin/?yudao) | | [Jackson](https://github.com/FasterXML/jackson) | JSON 工具库 | 2.13.3 | | -| [MapStruct](https://mapstruct.org/) | Java Bean 转换 | 1.5.3.Final | [文档](http://www.iocoder.cn/Spring-Boot/MapStruct/?yudao) | +| [MapStruct](https://mapstruct.org/) | Java Bean 转换 | 1.5.5.Final | [文档](http://www.iocoder.cn/Spring-Boot/MapStruct/?yudao) | | [Lombok](https://projectlombok.org/) | 消除冗长的 Java 代码 | 1.18.26 | [文档](http://www.iocoder.cn/Spring-Boot/Lombok/?yudao) | | [JUnit](https://junit.org/junit5/) | Java 单元测试框架 | 5.8.2 | - | | [Mockito](https://github.com/mockito/mockito) | Java Mock 框架 | 4.8.0 | - | diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 000000000..cec84d55a --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,95 @@ +version: "3.8" + +name: yudao-system + +services: + mysql: + container_name: yudao-mysql + image: mysql:8 + restart: unless-stopped + tty: true + ports: + - 13306:3306 + environment: + MYSQL_DATABASE: ${MYSQL_DATABASE:-ruoyi-vue-pro} + MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD:-123456} + volumes: + - mysql:/var/lib/mysql/ + networks: + - yudao-network + + redis: + container_name: yudao-redis + image: redis:6-alpine + restart: unless-stopped + ports: + - 16379:6379 + volumes: + - redis:/data + networks: + - yudao-network + + 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} + networks: + - yudao-network + 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 + networks: + - yudao-network + depends_on: + - server + +networks: + yudao-network: + driver: bridge + +volumes: + mysql: + driver: local + redis: + driver: local diff --git a/docker.env b/docker.env new file mode 100644 index 000000000..0bf6e997e --- /dev/null +++ b/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 diff --git a/pom.xml b/pom.xml index b3651b59a..cc2b7432e 100644 --- a/pom.xml +++ b/pom.xml @@ -30,7 +30,7 @@ https://github.com/YunaiV/ruoyi-vue-pro - 1.7.1-snapshot + 1.7.3-snapshot 1.8 ${java.version} @@ -39,8 +39,8 @@ 3.8.1 1.18.26 - 2.7.10 - 1.5.3.Final + 2.7.11 + 1.5.5.Final UTF-8 diff --git a/sql/dm/ruoyi-vue-pro-dm8.sql b/sql/dm/ruoyi-vue-pro-dm8.sql new file mode 100644 index 000000000..8128c647e --- /dev/null +++ b/sql/dm/ruoyi-vue-pro-dm8.sql @@ -0,0 +1,5798 @@ +CREATE TABLE "RUOYI_VUE_PRO"."BPM_FORM" +( + "ID" BIGINT IDENTITY(24,1) NOT NULL, + "NAME" VARCHAR(64) NOT NULL, + "STATUS" TINYINT NOT NULL, + "CONF" VARCHAR(1000) NOT NULL, + "FIELDS" VARCHAR(5000) NOT NULL, + "REMARK" VARCHAR(255) NULL, + "CREATOR" VARCHAR(64) DEFAULT '' + NULL, + "CREATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "UPDATER" VARCHAR(64) DEFAULT '' + NULL, + "UPDATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "DELETED" BIT DEFAULT '0' + NOT NULL, + "TENANT_ID" BIGINT DEFAULT 0 + NOT NULL +); +CREATE TABLE "RUOYI_VUE_PRO"."BPM_OA_LEAVE" +( + "ID" BIGINT IDENTITY(35,1) NOT NULL, + "USER_ID" BIGINT NOT NULL, + "TYPE" TINYINT NOT NULL, + "REASON" VARCHAR(200) NOT NULL, + "START_TIME" TIMESTAMP(0) NOT NULL, + "END_TIME" TIMESTAMP(0) NOT NULL, + "DAY" TINYINT NOT NULL, + "RESULT" TINYINT NOT NULL, + "PROCESS_INSTANCE_ID" VARCHAR(64) NULL, + "CREATOR" VARCHAR(64) DEFAULT '' + NULL, + "CREATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "UPDATER" VARCHAR(64) DEFAULT '' + NULL, + "UPDATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "DELETED" BIT DEFAULT '0' + NOT NULL, + "TENANT_ID" BIGINT DEFAULT 0 + NOT NULL +); +CREATE TABLE "RUOYI_VUE_PRO"."BPM_PROCESS_DEFINITION_EXT" +( + "ID" BIGINT IDENTITY(141,1) NOT NULL, + "PROCESS_DEFINITION_ID" VARCHAR(64) NOT NULL, + "MODEL_ID" VARCHAR(64) NOT NULL, + "DESCRIPTION" VARCHAR(255) NULL, + "FORM_TYPE" TINYINT NOT NULL, + "FORM_ID" BIGINT NULL, + "FORM_CONF" VARCHAR(1000) NULL, + "FORM_FIELDS" VARCHAR(5000) NULL, + "FORM_CUSTOM_CREATE_PATH" VARCHAR(255) NULL, + "FORM_CUSTOM_VIEW_PATH" VARCHAR(255) NULL, + "CREATOR" VARCHAR(64) DEFAULT '' + NULL, + "CREATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "UPDATER" VARCHAR(64) DEFAULT '' + NULL, + "UPDATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "DELETED" BIT DEFAULT '0' + NOT NULL, + "TENANT_ID" BIGINT DEFAULT 0 + NOT NULL +); +CREATE TABLE "RUOYI_VUE_PRO"."BPM_PROCESS_INSTANCE_EXT" +( + "ID" BIGINT IDENTITY(296,1) NOT NULL, + "START_USER_ID" BIGINT NOT NULL, + "NAME" VARCHAR(64) NULL, + "PROCESS_INSTANCE_ID" VARCHAR(64) NOT NULL, + "PROCESS_DEFINITION_ID" VARCHAR(64) NOT NULL, + "CATEGORY" VARCHAR(64) NULL, + "STATUS" TINYINT NOT NULL, + "RESULT" TINYINT NOT NULL, + "END_TIME" TIMESTAMP(0) NULL, + "FORM_VARIABLES" VARCHAR(5000) NULL, + "CREATOR" VARCHAR(64) DEFAULT '' + NULL, + "CREATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "UPDATER" VARCHAR(64) DEFAULT '' + NULL, + "UPDATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "DELETED" BIT DEFAULT '0' + NOT NULL, + "TENANT_ID" BIGINT DEFAULT 0 + NOT NULL +); +CREATE TABLE "RUOYI_VUE_PRO"."BPM_TASK_ASSIGN_RULE" +( + "ID" BIGINT IDENTITY(275,1) NOT NULL, + "MODEL_ID" VARCHAR(64) NOT NULL, + "PROCESS_DEFINITION_ID" VARCHAR(64) NOT NULL, + "TASK_DEFINITION_KEY" VARCHAR(64) NOT NULL, + "TYPE" TINYINT NOT NULL, + "OPTIONS" VARCHAR(1024) NOT NULL, + "CREATOR" VARCHAR(64) DEFAULT '' + NULL, + "CREATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "UPDATER" VARCHAR(64) DEFAULT '' + NULL, + "UPDATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "DELETED" BIT DEFAULT '0' + NOT NULL, + "TENANT_ID" BIGINT DEFAULT 0 + NOT NULL +); +CREATE TABLE "RUOYI_VUE_PRO"."BPM_TASK_EXT" +( + "ID" BIGINT IDENTITY(351,1) NOT NULL, + "ASSIGNEE_USER_ID" BIGINT NULL, + "NAME" VARCHAR(64) NULL, + "TASK_ID" VARCHAR(64) NOT NULL, + "RESULT" TINYINT NOT NULL, + "REASON" VARCHAR(255) NULL, + "END_TIME" TIMESTAMP(0) NULL, + "PROCESS_INSTANCE_ID" VARCHAR(64) NOT NULL, + "PROCESS_DEFINITION_ID" VARCHAR(64) NOT NULL, + "CREATOR" VARCHAR(64) DEFAULT '' + NULL, + "CREATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "UPDATER" VARCHAR(64) DEFAULT '' + NULL, + "UPDATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "DELETED" BIT DEFAULT '0' + NOT NULL, + "TENANT_ID" BIGINT DEFAULT 0 + NOT NULL +); +CREATE TABLE "RUOYI_VUE_PRO"."BPM_USER_GROUP" +( + "ID" BIGINT IDENTITY(113,1) NOT NULL, + "NAME" VARCHAR(30) DEFAULT '' + NOT NULL, + "DESCRIPTION" VARCHAR(255) DEFAULT '' + NOT NULL, + "MEMBER_USER_IDS" VARCHAR(1024) DEFAULT '0' + NOT NULL, + "STATUS" TINYINT NOT NULL, + "CREATOR" VARCHAR(64) DEFAULT '' + NULL, + "CREATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "UPDATER" VARCHAR(64) DEFAULT '' + NULL, + "UPDATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "DELETED" BIT DEFAULT '0' + NOT NULL, + "TENANT_ID" BIGINT DEFAULT 0 + NOT NULL +); +CREATE TABLE "RUOYI_VUE_PRO"."INFRA_API_ACCESS_LOG" +( + "ID" BIGINT IDENTITY(35832,1) NOT NULL, + "TRACE_ID" VARCHAR(64) DEFAULT '' + NOT NULL, + "USER_ID" BIGINT DEFAULT 0 + NOT NULL, + "USER_TYPE" TINYINT DEFAULT 0 + NOT NULL, + "APPLICATION_NAME" VARCHAR(50) NOT NULL, + "REQUEST_METHOD" VARCHAR(16) DEFAULT '' + NOT NULL, + "REQUEST_URL" VARCHAR(255) DEFAULT '' + NOT NULL, + "REQUEST_PARAMS" VARCHAR(8000) DEFAULT '' + NOT NULL, + "USER_IP" VARCHAR(50) NOT NULL, + "USER_AGENT" VARCHAR(512) NOT NULL, + "BEGIN_TIME" TIMESTAMP(0) NOT NULL, + "END_TIME" TIMESTAMP(0) NOT NULL, + "DURATION" INT NOT NULL, + "RESULT_CODE" INT DEFAULT 0 + NOT NULL, + "RESULT_MSG" VARCHAR(512) DEFAULT '' + NULL, + "CREATOR" VARCHAR(64) DEFAULT '' + NULL, + "CREATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "UPDATER" VARCHAR(64) DEFAULT '' + NULL, + "UPDATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "DELETED" BIT DEFAULT '0' + NOT NULL, + "TENANT_ID" BIGINT DEFAULT 0 + NOT NULL +); +CREATE TABLE "RUOYI_VUE_PRO"."INFRA_API_ERROR_LOG" +( + "ID" INT IDENTITY(1110,1) NOT NULL, + "TRACE_ID" VARCHAR(64) NOT NULL, + "USER_ID" INT DEFAULT 0 + NOT NULL, + "USER_TYPE" TINYINT DEFAULT 0 + NOT NULL, + "APPLICATION_NAME" VARCHAR(50) NOT NULL, + "REQUEST_METHOD" VARCHAR(16) NOT NULL, + "REQUEST_URL" VARCHAR(255) NOT NULL, + "REQUEST_PARAMS" VARCHAR(8000) NOT NULL, + "USER_IP" VARCHAR(50) NOT NULL, + "USER_AGENT" VARCHAR(512) NOT NULL, + "EXCEPTION_TIME" TIMESTAMP(0) NOT NULL, + "EXCEPTION_NAME" VARCHAR(128) DEFAULT '' + NOT NULL, + "EXCEPTION_MESSAGE" TEXT NOT NULL, + "EXCEPTION_ROOT_CAUSE_MESSAGE" TEXT NOT NULL, + "EXCEPTION_STACK_TRACE" TEXT NOT NULL, + "EXCEPTION_CLASS_NAME" VARCHAR(512) NOT NULL, + "EXCEPTION_FILE_NAME" VARCHAR(512) NOT NULL, + "EXCEPTION_METHOD_NAME" VARCHAR(512) NOT NULL, + "EXCEPTION_LINE_NUMBER" INT NOT NULL, + "PROCESS_STATUS" TINYINT NOT NULL, + "PROCESS_TIME" TIMESTAMP(0) NULL, + "PROCESS_USER_ID" INT DEFAULT 0 + NULL, + "CREATOR" VARCHAR(64) DEFAULT '' + NULL, + "CREATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "UPDATER" VARCHAR(64) DEFAULT '' + NULL, + "UPDATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "DELETED" BIT DEFAULT '0' + NOT NULL, + "TENANT_ID" BIGINT DEFAULT 0 + NOT NULL +); +CREATE TABLE "RUOYI_VUE_PRO"."INFRA_CODEGEN_COLUMN" +( + "ID" BIGINT IDENTITY(1688,1) NOT NULL, + "TABLE_ID" BIGINT NOT NULL, + "COLUMN_NAME" VARCHAR(200) NOT NULL, + "DATA_TYPE" VARCHAR(100) NOT NULL, + "COLUMN_COMMENT" VARCHAR(500) NOT NULL, + "NULLABLE" BIT NOT NULL, + "PRIMARY_KEY" BIT NOT NULL, + "AUTO_INCREMENT" CHAR(1) NOT NULL, + "ORDINAL_POSITION" INT NOT NULL, + "JAVA_TYPE" VARCHAR(32) NOT NULL, + "JAVA_FIELD" VARCHAR(64) NOT NULL, + "DICT_TYPE" VARCHAR(200) DEFAULT '' + NULL, + "EXAMPLE" VARCHAR(64) NULL, + "CREATE_OPERATION" BIT NOT NULL, + "UPDATE_OPERATION" BIT NOT NULL, + "LIST_OPERATION" BIT NOT NULL, + "LIST_OPERATION_CONDITION" VARCHAR(32) DEFAULT '=' + NOT NULL, + "LIST_OPERATION_RESULT" BIT NOT NULL, + "HTML_TYPE" VARCHAR(32) NOT NULL, + "CREATOR" VARCHAR(64) DEFAULT '' + NULL, + "CREATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "UPDATER" VARCHAR(64) DEFAULT '' + NULL, + "UPDATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "DELETED" BIT DEFAULT '0' + NOT NULL +); +CREATE TABLE "RUOYI_VUE_PRO"."INFRA_CODEGEN_TABLE" +( + "ID" BIGINT IDENTITY(131,1) NOT NULL, + "DATA_SOURCE_CONFIG_ID" BIGINT NOT NULL, + "SCENE" TINYINT DEFAULT 1 + NOT NULL, + "TABLE_NAME" VARCHAR(200) DEFAULT '' + NOT NULL, + "TABLE_COMMENT" VARCHAR(500) DEFAULT '' + NOT NULL, + "REMARK" VARCHAR(500) NULL, + "MODULE_NAME" VARCHAR(30) NOT NULL, + "BUSINESS_NAME" VARCHAR(30) NOT NULL, + "CLASS_NAME" VARCHAR(100) DEFAULT '' + NOT NULL, + "CLASS_COMMENT" VARCHAR(50) NOT NULL, + "AUTHOR" VARCHAR(50) NOT NULL, + "TEMPLATE_TYPE" TINYINT DEFAULT 1 + NOT NULL, + "FRONT_TYPE" TINYINT NOT NULL, + "PARENT_MENU_ID" BIGINT NULL, + "CREATOR" VARCHAR(64) DEFAULT '' + NULL, + "CREATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "UPDATER" VARCHAR(64) DEFAULT '' + NULL, + "UPDATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "DELETED" BIT DEFAULT '0' + NOT NULL +); +CREATE TABLE "RUOYI_VUE_PRO"."INFRA_CONFIG" +( + "ID" INT IDENTITY(11,1) NOT NULL, + "CATEGORY" VARCHAR(50) NOT NULL, + "TYPE" TINYINT NOT NULL, + "NAME" VARCHAR(100) DEFAULT '' + NOT NULL, + "CONFIG_KEY" VARCHAR(100) DEFAULT '' + NOT NULL, + "VALUE" VARCHAR(500) DEFAULT '' + NOT NULL, + "VISIBLE" BIT NOT NULL, + "REMARK" VARCHAR(500) NULL, + "CREATOR" VARCHAR(64) DEFAULT '' + NULL, + "CREATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "UPDATER" VARCHAR(64) DEFAULT '' + NULL, + "UPDATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "DELETED" BIT DEFAULT '0' + NOT NULL +); +CREATE TABLE "RUOYI_VUE_PRO"."INFRA_DATA_SOURCE_CONFIG" +( + "ID" BIGINT IDENTITY(13,1) NOT NULL, + "NAME" VARCHAR(100) DEFAULT '' + NOT NULL, + "URL" VARCHAR(1024) NOT NULL, + "USERNAME" VARCHAR(255) NOT NULL, + "PASSWORD" VARCHAR(255) DEFAULT '' + NOT NULL, + "CREATOR" VARCHAR(64) DEFAULT '' + NULL, + "CREATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "UPDATER" VARCHAR(64) DEFAULT '' + NULL, + "UPDATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "DELETED" BIT DEFAULT '0' + NOT NULL +); +CREATE TABLE "RUOYI_VUE_PRO"."INFRA_FILE" +( + "ID" BIGINT IDENTITY(912,1) NOT NULL, + "CONFIG_ID" BIGINT NULL, + "NAME" VARCHAR(256) NULL, + "PATH" VARCHAR(512) NOT NULL, + "URL" VARCHAR(1024) NOT NULL, + "TYPE" VARCHAR(128) NULL, + "SIZE" INT NOT NULL, + "CREATOR" VARCHAR(64) DEFAULT '' + NULL, + "CREATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "UPDATER" VARCHAR(64) DEFAULT '' + NULL, + "UPDATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "DELETED" BIT DEFAULT '0' + NOT NULL +); +CREATE TABLE "RUOYI_VUE_PRO"."INFRA_FILE_CONFIG" +( + "ID" BIGINT IDENTITY(18,1) NOT NULL, + "NAME" VARCHAR(63) NOT NULL, + "STORAGE" TINYINT NOT NULL, + "REMARK" VARCHAR(255) NULL, + "MASTER" BIT NOT NULL, + "CONFIG" VARCHAR(4096) NOT NULL, + "CREATOR" VARCHAR(64) DEFAULT '' + NULL, + "CREATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "UPDATER" VARCHAR(64) DEFAULT '' + NULL, + "UPDATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "DELETED" BIT DEFAULT '0' + NOT NULL +); +CREATE TABLE "RUOYI_VUE_PRO"."INFRA_FILE_CONTENT" +( + "ID" BIGINT IDENTITY(3,1) NOT NULL, + "CONFIG_ID" BIGINT NOT NULL, + "PATH" VARCHAR(512) NOT NULL, + "CONTENT" BLOB NOT NULL, + "CREATOR" VARCHAR(64) DEFAULT '' + NULL, + "CREATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "UPDATER" VARCHAR(64) DEFAULT '' + NULL, + "UPDATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "DELETED" BIT DEFAULT '0' + NOT NULL +); +CREATE TABLE "RUOYI_VUE_PRO"."INFRA_JOB" +( + "ID" BIGINT IDENTITY(17,1) NOT NULL, + "NAME" VARCHAR(32) NOT NULL, + "STATUS" TINYINT NOT NULL, + "HANDLER_NAME" VARCHAR(64) NOT NULL, + "HANDLER_PARAM" VARCHAR(255) NULL, + "CRON_EXPRESSION" VARCHAR(32) NOT NULL, + "RETRY_COUNT" INT DEFAULT 0 + NOT NULL, + "RETRY_INTERVAL" INT DEFAULT 0 + NOT NULL, + "MONITOR_TIMEOUT" INT DEFAULT 0 + NOT NULL, + "CREATOR" VARCHAR(64) DEFAULT '' + NULL, + "CREATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "UPDATER" VARCHAR(64) DEFAULT '' + NULL, + "UPDATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "DELETED" BIT DEFAULT '0' + NOT NULL +); +CREATE TABLE "RUOYI_VUE_PRO"."INFRA_JOB_LOG" +( + "ID" BIGINT IDENTITY(168767,1) NOT NULL, + "JOB_ID" BIGINT NOT NULL, + "HANDLER_NAME" VARCHAR(64) NOT NULL, + "HANDLER_PARAM" VARCHAR(255) NULL, + "EXECUTE_INDEX" TINYINT DEFAULT 1 + NOT NULL, + "BEGIN_TIME" TIMESTAMP(0) NOT NULL, + "END_TIME" TIMESTAMP(0) NULL, + "DURATION" INT NULL, + "STATUS" TINYINT NOT NULL, + "RESULT" VARCHAR(4000) DEFAULT '' + NULL, + "CREATOR" VARCHAR(64) DEFAULT '' + NULL, + "CREATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "UPDATER" VARCHAR(64) DEFAULT '' + NULL, + "UPDATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "DELETED" BIT DEFAULT '0' + NOT NULL +); +CREATE TABLE "RUOYI_VUE_PRO"."INFRA_TEST_DEMO" +( + "ID" BIGINT IDENTITY(1,1) NOT NULL, + "NAME" VARCHAR(100) DEFAULT '' + NOT NULL, + "STATUS" TINYINT DEFAULT 0 + NOT NULL, + "TYPE" TINYINT NOT NULL, + "CATEGORY" TINYINT NOT NULL, + "REMARK" VARCHAR(500) NULL, + "CREATOR" VARCHAR(64) DEFAULT '' + NULL, + "CREATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "UPDATER" VARCHAR(64) DEFAULT '' + NULL, + "UPDATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "DELETED" BIT DEFAULT '0' + NOT NULL +); +CREATE TABLE "RUOYI_VUE_PRO"."MEMBER_USER" +( + "ID" BIGINT IDENTITY(247,1) NOT NULL, + "NICKNAME" VARCHAR(30) DEFAULT '' + NOT NULL, + "AVATAR" VARCHAR(255) DEFAULT '' + NOT NULL, + "STATUS" TINYINT NOT NULL, + "MOBILE" VARCHAR(11) NOT NULL, + "PASSWORD" VARCHAR(100) DEFAULT '' + NOT NULL, + "REGISTER_IP" VARCHAR(32) NOT NULL, + "LOGIN_IP" VARCHAR(50) DEFAULT '' + NULL, + "LOGIN_DATE" TIMESTAMP(0) NULL, + "CREATOR" VARCHAR(64) DEFAULT '' + NULL, + "CREATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "UPDATER" VARCHAR(64) DEFAULT '' + NULL, + "UPDATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "DELETED" BIT DEFAULT '0' + NOT NULL, + "TENANT_ID" BIGINT DEFAULT 0 + NOT NULL +); +CREATE TABLE "RUOYI_VUE_PRO"."PAY_APP" +( + "ID" BIGINT IDENTITY(7,1) NOT NULL, + "NAME" VARCHAR(64) NOT NULL, + "STATUS" TINYINT NOT NULL, + "REMARK" VARCHAR(255) NULL, + "PAY_NOTIFY_URL" VARCHAR(1024) NOT NULL, + "REFUND_NOTIFY_URL" VARCHAR(1024) NOT NULL, + "MERCHANT_ID" BIGINT NOT NULL, + "CREATOR" VARCHAR(64) DEFAULT '' + NULL, + "CREATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "UPDATER" VARCHAR(64) DEFAULT '' + NULL, + "UPDATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "DELETED" BIT DEFAULT '0' + NOT NULL, + "TENANT_ID" BIGINT DEFAULT 0 + NOT NULL +); +CREATE TABLE "RUOYI_VUE_PRO"."PAY_CHANNEL" +( + "ID" BIGINT IDENTITY(22,1) NOT NULL, + "CODE" VARCHAR(32) NOT NULL, + "STATUS" TINYINT NOT NULL, + "REMARK" VARCHAR(255) NULL, + "FEE_RATE" NUMBER(22,0) DEFAULT 0 + NOT NULL, + "MERCHANT_ID" BIGINT NOT NULL, + "APP_ID" BIGINT NOT NULL, + "CONFIG" VARCHAR(4096) NOT NULL, + "CREATOR" VARCHAR(64) DEFAULT '' + NULL, + "CREATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "UPDATER" VARCHAR(64) DEFAULT '' + NULL, + "UPDATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "DELETED" BIT DEFAULT '0' + NOT NULL, + "TENANT_ID" BIGINT DEFAULT 0 + NOT NULL +); +CREATE TABLE "RUOYI_VUE_PRO"."PAY_DEMO_ORDER" +( + "ID" BIGINT IDENTITY(72,1) NOT NULL, + "USER_ID" DECIMAL(20,0) NOT NULL, + "SPU_ID" BIGINT NOT NULL, + "SPU_NAME" VARCHAR(255) NOT NULL, + "PRICE" INT NOT NULL, + "PAYED" BIT DEFAULT '0' + NOT NULL, + "PAY_ORDER_ID" BIGINT NULL, + "PAY_CHANNEL_CODE" VARCHAR(16) NULL, + "PAY_TIME" TIMESTAMP(0) NULL, + "PAY_REFUND_ID" BIGINT NULL, + "REFUND_PRICE" INT DEFAULT 0 + NOT NULL, + "REFUND_TIME" TIMESTAMP(0) NULL, + "CREATOR" VARCHAR(64) DEFAULT '' + NULL, + "CREATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "UPDATER" VARCHAR(64) DEFAULT '' + NULL, + "UPDATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "DELETED" BIT DEFAULT '0' + NOT NULL, + "TENANT_ID" BIGINT DEFAULT 0 + NOT NULL +); +CREATE TABLE "RUOYI_VUE_PRO"."PAY_MERCHANT" +( + "ID" BIGINT IDENTITY(6,1) NOT NULL, + "NO" VARCHAR(32) NOT NULL, + "NAME" VARCHAR(64) NOT NULL, + "SHORT_NAME" VARCHAR(64) NOT NULL, + "STATUS" TINYINT NOT NULL, + "REMARK" VARCHAR(255) NULL, + "CREATOR" VARCHAR(64) DEFAULT '' + NULL, + "CREATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "UPDATER" VARCHAR(64) DEFAULT '' + NULL, + "UPDATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "DELETED" BIT DEFAULT '0' + NOT NULL, + "TENANT_ID" BIGINT DEFAULT 0 + NOT NULL +); +CREATE TABLE "RUOYI_VUE_PRO"."PAY_NOTIFY_LOG" +( + "ID" BIGINT IDENTITY(371964,1) NOT NULL, + "TASK_ID" BIGINT NOT NULL, + "NOTIFY_TIMES" TINYINT NOT NULL, + "RESPONSE" VARCHAR(2048) NOT NULL, + "STATUS" TINYINT NOT NULL, + "CREATOR" VARCHAR(64) DEFAULT '' + NULL, + "CREATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "UPDATER" VARCHAR(64) DEFAULT '' + NULL, + "UPDATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "DELETED" BIT DEFAULT '0' + NOT NULL, + "TENANT_ID" BIGINT DEFAULT 0 + NOT NULL +); +CREATE TABLE "RUOYI_VUE_PRO"."PAY_NOTIFY_TASK" +( + "ID" BIGINT IDENTITY(151,1) NOT NULL, + "MERCHANT_ID" BIGINT NOT NULL, + "APP_ID" BIGINT NOT NULL, + "TYPE" TINYINT NOT NULL, + "DATA_ID" BIGINT NOT NULL, + "STATUS" TINYINT NOT NULL, + "MERCHANT_ORDER_ID" VARCHAR(64) NOT NULL, + "NEXT_NOTIFY_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "LAST_EXECUTE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "NOTIFY_TIMES" TINYINT NOT NULL, + "MAX_NOTIFY_TIMES" TINYINT NOT NULL, + "NOTIFY_URL" VARCHAR(1024) NOT NULL, + "CREATOR" VARCHAR(64) DEFAULT '' + NULL, + "CREATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "UPDATER" VARCHAR(64) DEFAULT '' + NULL, + "UPDATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "DELETED" BIT DEFAULT '0' + NOT NULL, + "TENANT_ID" BIGINT DEFAULT 0 + NOT NULL +); +CREATE TABLE "RUOYI_VUE_PRO"."PAY_ORDER" +( + "ID" BIGINT IDENTITY(171,1) NOT NULL, + "MERCHANT_ID" BIGINT NOT NULL, + "APP_ID" BIGINT NOT NULL, + "CHANNEL_ID" BIGINT NULL, + "CHANNEL_CODE" VARCHAR(32) NULL, + "MERCHANT_ORDER_ID" VARCHAR(64) NOT NULL, + "SUBJECT" VARCHAR(32) NOT NULL, + "BODY" VARCHAR(128) NOT NULL, + "NOTIFY_URL" VARCHAR(1024) NOT NULL, + "NOTIFY_STATUS" TINYINT NOT NULL, + "AMOUNT" BIGINT NOT NULL, + "CHANNEL_FEE_RATE" NUMBER(22,0) DEFAULT 0 + NULL, + "CHANNEL_FEE_AMOUNT" BIGINT DEFAULT 0 + NULL, + "STATUS" TINYINT NOT NULL, + "USER_IP" VARCHAR(50) NOT NULL, + "EXPIRE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "SUCCESS_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NULL, + "NOTIFY_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NULL, + "SUCCESS_EXTENSION_ID" BIGINT NULL, + "REFUND_STATUS" TINYINT NOT NULL, + "REFUND_TIMES" TINYINT NOT NULL, + "REFUND_AMOUNT" BIGINT NOT NULL, + "CHANNEL_USER_ID" VARCHAR(255) NULL, + "CHANNEL_ORDER_NO" VARCHAR(64) NULL, + "CREATOR" VARCHAR(64) DEFAULT '' + NULL, + "CREATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "UPDATER" VARCHAR(64) DEFAULT '' + NULL, + "UPDATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "DELETED" BIT DEFAULT '0' + NOT NULL, + "TENANT_ID" BIGINT DEFAULT 0 + NOT NULL +); +CREATE TABLE "RUOYI_VUE_PRO"."PAY_ORDER_EXTENSION" +( + "ID" BIGINT IDENTITY(383,1) NOT NULL, + "NO" VARCHAR(64) NOT NULL, + "ORDER_ID" BIGINT NOT NULL, + "CHANNEL_ID" BIGINT NOT NULL, + "CHANNEL_CODE" VARCHAR(32) NOT NULL, + "USER_IP" VARCHAR(50) NOT NULL, + "STATUS" TINYINT NOT NULL, + "CHANNEL_EXTRAS" VARCHAR(256) NULL, + "CHANNEL_NOTIFY_DATA" VARCHAR(4096) NULL, + "CREATOR" VARCHAR(64) DEFAULT '' + NULL, + "CREATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "UPDATER" VARCHAR(64) DEFAULT '' + NULL, + "UPDATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "DELETED" BIT DEFAULT '0' + NOT NULL, + "TENANT_ID" BIGINT DEFAULT 0 + NOT NULL +); +CREATE TABLE "RUOYI_VUE_PRO"."PAY_REFUND" +( + "ID" BIGINT IDENTITY(26,1) NOT NULL, + "MERCHANT_ID" BIGINT NOT NULL, + "APP_ID" BIGINT NOT NULL, + "CHANNEL_ID" BIGINT NOT NULL, + "CHANNEL_CODE" VARCHAR(32) NOT NULL, + "ORDER_ID" BIGINT NOT NULL, + "TRADE_NO" VARCHAR(64) NOT NULL, + "MERCHANT_ORDER_ID" VARCHAR(64) NOT NULL, + "MERCHANT_REFUND_NO" VARCHAR(64) NOT NULL, + "NOTIFY_URL" VARCHAR(1024) NOT NULL, + "NOTIFY_STATUS" TINYINT NOT NULL, + "STATUS" TINYINT NOT NULL, + "TYPE" TINYINT NOT NULL, + "PAY_AMOUNT" BIGINT NOT NULL, + "REFUND_AMOUNT" BIGINT NOT NULL, + "REASON" VARCHAR(256) NOT NULL, + "USER_IP" VARCHAR(50) NULL, + "CHANNEL_ORDER_NO" VARCHAR(64) NOT NULL, + "CHANNEL_REFUND_NO" VARCHAR(64) NULL, + "CHANNEL_ERROR_CODE" VARCHAR(128) NULL, + "CHANNEL_ERROR_MSG" VARCHAR(256) NULL, + "CHANNEL_EXTRAS" VARCHAR(1024) NULL, + "EXPIRE_TIME" TIMESTAMP(0) NULL, + "SUCCESS_TIME" TIMESTAMP(0) NULL, + "NOTIFY_TIME" TIMESTAMP(0) NULL, + "CREATOR" VARCHAR(64) DEFAULT '' + NULL, + "CREATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "UPDATER" VARCHAR(64) DEFAULT '' + NULL, + "UPDATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "DELETED" BIT DEFAULT '0' + NOT NULL, + "TENANT_ID" BIGINT DEFAULT 0 + NOT NULL +); +CREATE TABLE "RUOYI_VUE_PRO"."QRTZ_BLOB_TRIGGERS" +( + "SCHED_NAME" VARCHAR(120) NOT NULL, + "TRIGGER_NAME" VARCHAR(190) NOT NULL, + "TRIGGER_GROUP" VARCHAR(190) NOT NULL, + "BLOB_DATA" BLOB NULL +); +CREATE TABLE "RUOYI_VUE_PRO"."QRTZ_CALENDARS" +( + "SCHED_NAME" VARCHAR(120) NOT NULL, + "CALENDAR_NAME" VARCHAR(190) NOT NULL, + "CALENDAR" BLOB NOT NULL +); +CREATE TABLE "RUOYI_VUE_PRO"."QRTZ_CRON_TRIGGERS" +( + "SCHED_NAME" VARCHAR(120) NOT NULL, + "TRIGGER_NAME" VARCHAR(190) NOT NULL, + "TRIGGER_GROUP" VARCHAR(190) NOT NULL, + "CRON_EXPRESSION" VARCHAR(120) NOT NULL, + "TIME_ZONE_ID" VARCHAR(80) NULL +); +CREATE TABLE "RUOYI_VUE_PRO"."QRTZ_FIRED_TRIGGERS" +( + "SCHED_NAME" VARCHAR(120) NOT NULL, + "ENTRY_ID" VARCHAR(95) NOT NULL, + "TRIGGER_NAME" VARCHAR(190) NOT NULL, + "TRIGGER_GROUP" VARCHAR(190) NOT NULL, + "INSTANCE_NAME" VARCHAR(190) NOT NULL, + "FIRED_TIME" BIGINT NOT NULL, + "SCHED_TIME" BIGINT NOT NULL, + "PRIORITY" INT NOT NULL, + "STATE" VARCHAR(16) NOT NULL, + "JOB_NAME" VARCHAR(190) NULL, + "JOB_GROUP" VARCHAR(190) NULL, + "IS_NONCONCURRENT" VARCHAR(1) NULL, + "REQUESTS_RECOVERY" VARCHAR(1) NULL +); +CREATE TABLE "RUOYI_VUE_PRO"."QRTZ_JOB_DETAILS" +( + "SCHED_NAME" VARCHAR(120) NOT NULL, + "JOB_NAME" VARCHAR(190) NOT NULL, + "JOB_GROUP" VARCHAR(190) NOT NULL, + "DESCRIPTION" VARCHAR(250) NULL, + "JOB_CLASS_NAME" VARCHAR(250) NOT NULL, + "IS_DURABLE" VARCHAR(1) NOT NULL, + "IS_NONCONCURRENT" VARCHAR(1) NOT NULL, + "IS_UPDATE_DATA" VARCHAR(1) NOT NULL, + "REQUESTS_RECOVERY" VARCHAR(1) NOT NULL, + "JOB_DATA" BLOB NULL +); +CREATE TABLE "RUOYI_VUE_PRO"."QRTZ_LOCKS" +( + "SCHED_NAME" VARCHAR(120) NOT NULL, + "LOCK_NAME" VARCHAR(40) NOT NULL +); +CREATE TABLE "RUOYI_VUE_PRO"."QRTZ_PAUSED_TRIGGER_GRPS" +( + "SCHED_NAME" VARCHAR(120) NOT NULL, + "TRIGGER_GROUP" VARCHAR(190) NOT NULL +); +CREATE TABLE "RUOYI_VUE_PRO"."QRTZ_SCHEDULER_STATE" +( + "SCHED_NAME" VARCHAR(120) NOT NULL, + "INSTANCE_NAME" VARCHAR(190) NOT NULL, + "LAST_CHECKIN_TIME" BIGINT NOT NULL, + "CHECKIN_INTERVAL" BIGINT NOT NULL +); +CREATE TABLE "RUOYI_VUE_PRO"."QRTZ_SIMPLE_TRIGGERS" +( + "SCHED_NAME" VARCHAR(120) NOT NULL, + "TRIGGER_NAME" VARCHAR(190) NOT NULL, + "TRIGGER_GROUP" VARCHAR(190) NOT NULL, + "REPEAT_COUNT" BIGINT NOT NULL, + "REPEAT_INTERVAL" BIGINT NOT NULL, + "TIMES_TRIGGERED" BIGINT NOT NULL +); +CREATE TABLE "RUOYI_VUE_PRO"."QRTZ_SIMPROP_TRIGGERS" +( + "SCHED_NAME" VARCHAR(120) NOT NULL, + "TRIGGER_NAME" VARCHAR(190) NOT NULL, + "TRIGGER_GROUP" VARCHAR(190) NOT NULL, + "STR_PROP_1" VARCHAR(512) NULL, + "STR_PROP_2" VARCHAR(512) NULL, + "STR_PROP_3" VARCHAR(512) NULL, + "INT_PROP_1" INT NULL, + "INT_PROP_2" INT NULL, + "LONG_PROP_1" BIGINT NULL, + "LONG_PROP_2" BIGINT NULL, + "DEC_PROP_1" DEC(13,4) NULL, + "DEC_PROP_2" DEC(13,4) NULL, + "BOOL_PROP_1" VARCHAR(1) NULL, + "BOOL_PROP_2" VARCHAR(1) NULL +); +CREATE TABLE "RUOYI_VUE_PRO"."QRTZ_TRIGGERS" +( + "SCHED_NAME" VARCHAR(120) NOT NULL, + "TRIGGER_NAME" VARCHAR(190) NOT NULL, + "TRIGGER_GROUP" VARCHAR(190) NOT NULL, + "JOB_NAME" VARCHAR(190) NOT NULL, + "JOB_GROUP" VARCHAR(190) NOT NULL, + "DESCRIPTION" VARCHAR(250) NULL, + "NEXT_FIRE_TIME" BIGINT NULL, + "PREV_FIRE_TIME" BIGINT NULL, + "PRIORITY" INT NULL, + "TRIGGER_STATE" VARCHAR(16) NOT NULL, + "TRIGGER_TYPE" VARCHAR(8) NOT NULL, + "START_TIME" BIGINT NOT NULL, + "END_TIME" BIGINT NULL, + "CALENDAR_NAME" VARCHAR(190) NULL, + "MISFIRE_INSTR" SMALLINT NULL, + "JOB_DATA" BLOB NULL +); +CREATE TABLE "RUOYI_VUE_PRO"."SYSTEM_DEPT" +( + "ID" BIGINT IDENTITY(112,1) NOT NULL, + "NAME" VARCHAR(30) DEFAULT '' + NOT NULL, + "PARENT_ID" BIGINT DEFAULT 0 + NOT NULL, + "SORT" INT DEFAULT 0 + NOT NULL, + "LEADER_USER_ID" BIGINT NULL, + "PHONE" VARCHAR(11) NULL, + "EMAIL" VARCHAR(50) NULL, + "STATUS" TINYINT NOT NULL, + "CREATOR" VARCHAR(64) DEFAULT '' + NULL, + "CREATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "UPDATER" VARCHAR(64) DEFAULT '' + NULL, + "UPDATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "DELETED" BIT DEFAULT '0' + NOT NULL, + "TENANT_ID" BIGINT DEFAULT 0 + NOT NULL +); +CREATE TABLE "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA" +( + "ID" BIGINT IDENTITY(1235,1) NOT NULL, + "SORT" INT DEFAULT 0 + NOT NULL, + "LABEL" VARCHAR(100) DEFAULT '' + NOT NULL, + "VALUE" VARCHAR(100) DEFAULT '' + NOT NULL, + "DICT_TYPE" VARCHAR(100) DEFAULT '' + NOT NULL, + "STATUS" TINYINT DEFAULT 0 + NOT NULL, + "COLOR_TYPE" VARCHAR(100) DEFAULT '' + NULL, + "CSS_CLASS" VARCHAR(100) DEFAULT '' + NULL, + "REMARK" VARCHAR(500) NULL, + "CREATOR" VARCHAR(64) DEFAULT '' + NULL, + "CREATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "UPDATER" VARCHAR(64) DEFAULT '' + NULL, + "UPDATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "DELETED" BIT DEFAULT '0' + NOT NULL +); +CREATE TABLE "RUOYI_VUE_PRO"."SYSTEM_DICT_TYPE" +( + "ID" BIGINT IDENTITY(169,1) NOT NULL, + "NAME" VARCHAR(100) DEFAULT '' + NOT NULL, + "TYPE" VARCHAR(100) DEFAULT '' + NOT NULL, + "STATUS" TINYINT DEFAULT 0 + NOT NULL, + "REMARK" VARCHAR(500) NULL, + "CREATOR" VARCHAR(64) DEFAULT '' + NULL, + "CREATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "UPDATER" VARCHAR(64) DEFAULT '' + NULL, + "UPDATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "DELETED" BIT DEFAULT '0' + NOT NULL, + "DELETED_TIME" TIMESTAMP(0) NULL +); +CREATE TABLE "RUOYI_VUE_PRO"."SYSTEM_ERROR_CODE" +( + "ID" BIGINT IDENTITY(5832,1) NOT NULL, + "TYPE" TINYINT DEFAULT 0 + NOT NULL, + "APPLICATION_NAME" VARCHAR(50) NOT NULL, + "CODE" INT DEFAULT 0 + NOT NULL, + "MESSAGE" VARCHAR(512) DEFAULT '' + NOT NULL, + "MEMO" VARCHAR(512) DEFAULT '' + NULL, + "CREATOR" VARCHAR(64) DEFAULT '' + NULL, + "CREATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "UPDATER" VARCHAR(64) DEFAULT '' + NULL, + "UPDATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "DELETED" BIT DEFAULT '0' + NOT NULL +); +CREATE TABLE "RUOYI_VUE_PRO"."SYSTEM_LOGIN_LOG" +( + "ID" BIGINT IDENTITY(2163,1) NOT NULL, + "LOG_TYPE" BIGINT NOT NULL, + "TRACE_ID" VARCHAR(64) DEFAULT '' + NOT NULL, + "USER_ID" BIGINT DEFAULT 0 + NOT NULL, + "USER_TYPE" TINYINT DEFAULT 0 + NOT NULL, + "USERNAME" VARCHAR(50) DEFAULT '' + NOT NULL, + "RESULT" TINYINT NOT NULL, + "USER_IP" VARCHAR(50) NOT NULL, + "USER_AGENT" VARCHAR(512) NOT NULL, + "CREATOR" VARCHAR(64) DEFAULT '' + NULL, + "CREATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "UPDATER" VARCHAR(64) DEFAULT '' + NULL, + "UPDATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "DELETED" BIT DEFAULT '0' + NOT NULL, + "TENANT_ID" BIGINT DEFAULT 0 + NOT NULL +); +CREATE TABLE "RUOYI_VUE_PRO"."SYSTEM_MAIL_ACCOUNT" +( + "ID" BIGINT IDENTITY(5,1) NOT NULL, + "MAIL" VARCHAR(255) NOT NULL, + "USERNAME" VARCHAR(255) NOT NULL, + "PASSWORD" VARCHAR(255) NOT NULL, + "HOST" VARCHAR(255) NOT NULL, + "PORT" INT NOT NULL, + "SSL_ENABLE" BIT DEFAULT '0' + NOT NULL, + "CREATOR" VARCHAR(64) DEFAULT '' + NULL, + "CREATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "UPDATER" VARCHAR(64) DEFAULT '' + NULL, + "UPDATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "DELETED" BIT DEFAULT '0' + NOT NULL +); +CREATE TABLE "RUOYI_VUE_PRO"."SYSTEM_MAIL_LOG" +( + "ID" BIGINT IDENTITY(354,1) NOT NULL, + "USER_ID" BIGINT NULL, + "USER_TYPE" TINYINT NULL, + "TO_MAIL" VARCHAR(255) NOT NULL, + "ACCOUNT_ID" BIGINT NOT NULL, + "FROM_MAIL" VARCHAR(255) NOT NULL, + "TEMPLATE_ID" BIGINT NOT NULL, + "TEMPLATE_CODE" VARCHAR(63) NOT NULL, + "TEMPLATE_NICKNAME" VARCHAR(255) NULL, + "TEMPLATE_TITLE" VARCHAR(255) NOT NULL, + "TEMPLATE_CONTENT" VARCHAR(10240) NOT NULL, + "TEMPLATE_PARAMS" VARCHAR(255) NOT NULL, + "SEND_STATUS" TINYINT DEFAULT 0 + NOT NULL, + "SEND_TIME" TIMESTAMP(0) NULL, + "SEND_MESSAGE_ID" VARCHAR(255) NULL, + "SEND_EXCEPTION" VARCHAR(4096) NULL, + "CREATOR" VARCHAR(64) DEFAULT '' + NULL, + "CREATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "UPDATER" VARCHAR(64) DEFAULT '' + NULL, + "UPDATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "DELETED" BIT DEFAULT '0' + NOT NULL +); +CREATE TABLE "RUOYI_VUE_PRO"."SYSTEM_MAIL_TEMPLATE" +( + "ID" BIGINT IDENTITY(16,1) NOT NULL, + "NAME" VARCHAR(63) NOT NULL, + "CODE" VARCHAR(63) NOT NULL, + "ACCOUNT_ID" BIGINT NOT NULL, + "NICKNAME" VARCHAR(255) NULL, + "TITLE" VARCHAR(255) NOT NULL, + "CONTENT" VARCHAR(10240) NOT NULL, + "PARAMS" VARCHAR(255) NOT NULL, + "STATUS" TINYINT NOT NULL, + "REMARK" VARCHAR(255) NULL, + "CREATOR" VARCHAR(64) DEFAULT '' + NULL, + "CREATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "UPDATER" VARCHAR(64) DEFAULT '' + NULL, + "UPDATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "DELETED" BIT DEFAULT '0' + NOT NULL +); +CREATE TABLE "RUOYI_VUE_PRO"."SYSTEM_MENU" +( + "ID" BIGINT IDENTITY(2162,1) NOT NULL, + "NAME" VARCHAR(50) NOT NULL, + "PERMISSION" VARCHAR(100) DEFAULT '' + NOT NULL, + "TYPE" TINYINT NOT NULL, + "SORT" INT DEFAULT 0 + NOT NULL, + "PARENT_ID" BIGINT DEFAULT 0 + NOT NULL, + "PATH" VARCHAR(200) DEFAULT '' + NULL, + "ICON" VARCHAR(100) DEFAULT '#' + NULL, + "COMPONENT" VARCHAR(255) NULL, + "COMPONENT_NAME" VARCHAR(255) NULL, + "STATUS" TINYINT DEFAULT 0 + NOT NULL, + "VISIBLE" BIT DEFAULT '1' + NOT NULL, + "KEEP_ALIVE" BIT DEFAULT '1' + NOT NULL, + "ALWAYS_SHOW" BIT DEFAULT '1' + NOT NULL, + "CREATOR" VARCHAR(64) DEFAULT '' + NULL, + "CREATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "UPDATER" VARCHAR(64) DEFAULT '' + NULL, + "UPDATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "DELETED" BIT DEFAULT '0' + NOT NULL +); +CREATE TABLE "RUOYI_VUE_PRO"."SYSTEM_NOTICE" +( + "ID" BIGINT IDENTITY(5,1) NOT NULL, + "TITLE" VARCHAR(50) NOT NULL, + "CONTENT" TEXT NOT NULL, + "TYPE" TINYINT NOT NULL, + "STATUS" TINYINT DEFAULT 0 + NOT NULL, + "CREATOR" VARCHAR(64) DEFAULT '' + NULL, + "CREATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "UPDATER" VARCHAR(64) DEFAULT '' + NULL, + "UPDATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "DELETED" BIT DEFAULT '0' + NOT NULL, + "TENANT_ID" BIGINT DEFAULT 0 + NOT NULL +); +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."BPM_FORM" ON; +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."BPM_FORM" OFF; +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."BPM_OA_LEAVE" ON; +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."BPM_OA_LEAVE" OFF; +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."BPM_PROCESS_DEFINITION_EXT" ON; +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."BPM_PROCESS_DEFINITION_EXT" OFF; +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."BPM_PROCESS_INSTANCE_EXT" ON; +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."BPM_PROCESS_INSTANCE_EXT" OFF; +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."BPM_TASK_ASSIGN_RULE" ON; +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."BPM_TASK_ASSIGN_RULE" OFF; +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."BPM_TASK_EXT" ON; +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."BPM_TASK_EXT" OFF; +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."BPM_USER_GROUP" ON; +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."BPM_USER_GROUP" OFF; +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."INFRA_API_ACCESS_LOG" ON; +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."INFRA_API_ACCESS_LOG" OFF; +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."INFRA_API_ERROR_LOG" ON; +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."INFRA_API_ERROR_LOG" OFF; +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."INFRA_CODEGEN_COLUMN" ON; +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."INFRA_CODEGEN_COLUMN" OFF; +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."INFRA_CODEGEN_TABLE" ON; +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."INFRA_CODEGEN_TABLE" OFF; +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."INFRA_CONFIG" ON; +INSERT INTO "RUOYI_VUE_PRO"."INFRA_CONFIG"("ID","CATEGORY","TYPE","NAME","CONFIG_KEY","VALUE","VISIBLE","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2,'biz',1,'用户管理-账号初始密码','sys.user.init-password','123456',0,'初始化密码 123456','admin','2021-01-05 17:03:48','1','2022-03-20 02:25:51',0); +INSERT INTO "RUOYI_VUE_PRO"."INFRA_CONFIG"("ID","CATEGORY","TYPE","NAME","CONFIG_KEY","VALUE","VISIBLE","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(7,'url',2,'MySQL 监控的地址','url.druid','',1,'','1','2023-04-07 13:41:16','1','2023-04-07 14:33:38',0); +INSERT INTO "RUOYI_VUE_PRO"."INFRA_CONFIG"("ID","CATEGORY","TYPE","NAME","CONFIG_KEY","VALUE","VISIBLE","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(8,'url',2,'SkyWalking 监控的地址','url.skywalking','',1,'','1','2023-04-07 13:41:16','1','2023-04-07 14:57:03',0); +INSERT INTO "RUOYI_VUE_PRO"."INFRA_CONFIG"("ID","CATEGORY","TYPE","NAME","CONFIG_KEY","VALUE","VISIBLE","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(9,'url',2,'Spring Boot Admin 监控的地址','url.spring-boot-admin','',1,'','1','2023-04-07 13:41:16','1','2023-04-07 14:52:07',0); +INSERT INTO "RUOYI_VUE_PRO"."INFRA_CONFIG"("ID","CATEGORY","TYPE","NAME","CONFIG_KEY","VALUE","VISIBLE","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(10,'url',2,'Swagger 接口文档的地址','url.swagger','',1,'','1','2023-04-07 13:41:16','1','2023-04-07 14:59:00',0); + +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."INFRA_CONFIG" OFF; +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."INFRA_DATA_SOURCE_CONFIG" ON; +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."INFRA_DATA_SOURCE_CONFIG" OFF; +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."INFRA_FILE" ON; +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."INFRA_FILE" OFF; +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."INFRA_FILE_CONFIG" ON; +INSERT INTO "RUOYI_VUE_PRO"."INFRA_FILE_CONFIG"("ID","NAME","STORAGE","REMARK","MASTER","CONFIG","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(4,'数据库',1,'我是数据库',1,'{"@class":"cn.iocoder.yudao.framework.file.core.client.db.DBFileClientConfig","domain":"http://127.0.0.1:48080"}','1','2022-03-15 23:56:24','1','2023-04-08 09:44:47',0); +INSERT INTO "RUOYI_VUE_PRO"."INFRA_FILE_CONFIG"("ID","NAME","STORAGE","REMARK","MASTER","CONFIG","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(5,'本地磁盘',10,'测试下本地存储',0,'{"@class":"cn.iocoder.yudao.framework.file.core.client.local.LocalFileClientConfig","basePath":"/Users/yunai/file_test","domain":"http://127.0.0.1:48080"}','1','2022-03-15 23:57:00','1','2023-04-08 09:44:47',0); +INSERT INTO "RUOYI_VUE_PRO"."INFRA_FILE_CONFIG"("ID","NAME","STORAGE","REMARK","MASTER","CONFIG","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(11,'S3 - 七牛云',20,null,0,'{"@class":"cn.iocoder.yudao.framework.file.core.client.s3.S3FileClientConfig","endpoint":"s3-cn-south-1.qiniucs.com","domain":"http://test.yudao.iocoder.cn","bucket":"ruoyi-vue-pro","accessKey":"b7yvuhBSAGjmtPhMFcn9iMOxUOY_I06cA_p0ZUx8","accessSecret":"kXM1l5ia1RvSX3QaOEcwI3RLz3Y2rmNszWonKZtP"}','1','2022-03-19 18:00:03','1','2023-04-08 09:44:47',0); +INSERT INTO "RUOYI_VUE_PRO"."INFRA_FILE_CONFIG"("ID","NAME","STORAGE","REMARK","MASTER","CONFIG","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(15,'S3 - 七牛云',20,'',0,'{"@class":"cn.iocoder.yudao.framework.file.core.client.s3.S3FileClientConfig","endpoint":"s3-cn-south-1.qiniucs.com","domain":"http://test.yudao.iocoder.cn","bucket":"ruoyi-vue-pro","accessKey":"b7yvuhBSAGjmtPhMFcn9iMOxUOY_I06cA_p0ZUx8","accessSecret":"kXM1l5ia1RvSX3QaOEcwI3RLz3Y2rmNszWonKZtP"}','1','2022-06-10 20:50:41','1','2023-04-08 09:44:47',0); +INSERT INTO "RUOYI_VUE_PRO"."INFRA_FILE_CONFIG"("ID","NAME","STORAGE","REMARK","MASTER","CONFIG","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(16,'S3 - 七牛云',20,'',0,'{"@class":"cn.iocoder.yudao.framework.file.core.client.s3.S3FileClientConfig","endpoint":"s3-cn-south-1.qiniucs.com","domain":"http://test.yudao.iocoder.cn","bucket":"ruoyi-vue-pro","accessKey":"b7yvuhBSAGjmtPhMFcn9iMOxUOY_I06cA_p0ZUx8","accessSecret":"kXM1l5ia1RvSX3QaOEcwI3RLz3Y2rmNszWonKZtP"}','1','2022-06-11 20:32:08','1','2023-04-08 09:44:47',0); +INSERT INTO "RUOYI_VUE_PRO"."INFRA_FILE_CONFIG"("ID","NAME","STORAGE","REMARK","MASTER","CONFIG","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(17,'S3 - 七牛云',20,'',0,'{"@class":"cn.iocoder.yudao.framework.file.core.client.s3.S3FileClientConfig","endpoint":"s3-cn-south-1.qiniucs.com","domain":"http://test.yudao.iocoder.cn","bucket":"ruoyi-vue-pro","accessKey":"b7yvuhBSAGjmtPhMFcn9iMOxUOY_I06cA_p0ZUx8","accessSecret":"kXM1l5ia1RvSX3QaOEcwI3RLz3Y2rmNszWonKZtP"}','1','2022-06-11 20:32:47','1','2023-04-08 09:44:47',0); + +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."INFRA_FILE_CONFIG" OFF; +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."INFRA_FILE_CONTENT" ON; +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."INFRA_FILE_CONTENT" OFF; +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."INFRA_JOB" ON; +INSERT INTO "RUOYI_VUE_PRO"."INFRA_JOB"("ID","NAME","STATUS","HANDLER_NAME","HANDLER_PARAM","CRON_EXPRESSION","RETRY_COUNT","RETRY_INTERVAL","MONITOR_TIMEOUT","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(5,'支付通知 Job',1,'payNotifyJob',null,'* * * * * ?',0,0,0,'1','2021-10-27 08:34:42','1','2022-11-24 23:01:35',0); +INSERT INTO "RUOYI_VUE_PRO"."INFRA_JOB"("ID","NAME","STATUS","HANDLER_NAME","HANDLER_PARAM","CRON_EXPRESSION","RETRY_COUNT","RETRY_INTERVAL","MONITOR_TIMEOUT","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(16,'Job 示例',1,'demoJob',null,'* * * L * ?',1,1,0,'1','2022-09-24 22:31:41','1','2022-09-24 22:31:42',0); + +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."INFRA_JOB" OFF; +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."INFRA_JOB_LOG" ON; +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."INFRA_JOB_LOG" OFF; +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."INFRA_TEST_DEMO" ON; +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."INFRA_TEST_DEMO" OFF; +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."MEMBER_USER" ON; +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."MEMBER_USER" OFF; +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."PAY_APP" ON; +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."PAY_APP" OFF; +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."PAY_CHANNEL" ON; +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."PAY_CHANNEL" OFF; +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."PAY_DEMO_ORDER" ON; +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."PAY_DEMO_ORDER" OFF; +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."PAY_MERCHANT" ON; +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."PAY_MERCHANT" OFF; +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."PAY_NOTIFY_LOG" ON; +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."PAY_NOTIFY_LOG" OFF; +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."PAY_NOTIFY_TASK" ON; +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."PAY_NOTIFY_TASK" OFF; +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."PAY_ORDER" ON; +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."PAY_ORDER" OFF; +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."PAY_ORDER_EXTENSION" ON; +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."PAY_ORDER_EXTENSION" OFF; +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."PAY_REFUND" ON; +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."PAY_REFUND" OFF; +INSERT INTO "RUOYI_VUE_PRO"."QRTZ_CRON_TRIGGERS"("SCHED_NAME","TRIGGER_NAME","TRIGGER_GROUP","CRON_EXPRESSION","TIME_ZONE_ID") VALUES('schedulerName','payNotifyJob','DEFAULT','* * * * * ?','Asia/Shanghai'); + +INSERT INTO "RUOYI_VUE_PRO"."QRTZ_JOB_DETAILS"("SCHED_NAME","JOB_NAME","JOB_GROUP","DESCRIPTION","JOB_CLASS_NAME","IS_DURABLE","IS_NONCONCURRENT","IS_UPDATE_DATA","REQUESTS_RECOVERY","JOB_DATA") VALUES('schedulerName','payNotifyJob','DEFAULT',null,'cn.iocoder.yudao.framework.quartz.core.handler.JobHandlerInvoker','0','1','1','0',0xACED0005737200156F72672E71756172747A2E4A6F62446174614D61709FB083E8BFA9B0CB020000787200266F72672E71756172747A2E7574696C732E537472696E674B65794469727479466C61674D61708208E8C3FBC55D280200015A0013616C6C6F77735472616E7369656E74446174617872001D6F72672E71756172747A2E7574696C732E4469727479466C61674D617013E62EAD28760ACE0200025A000564697274794C00036D617074000F4C6A6176612F7574696C2F4D61703B787001737200116A6176612E7574696C2E486173684D61700507DAC1C31660D103000246000A6C6F6164466163746F724900097468726573686F6C6478703F4000000000000C770800000010000000027400064A4F425F49447372000E6A6176612E6C616E672E4C6F6E673B8BE490CC8F23DF0200014A000576616C7565787200106A6176612E6C616E672E4E756D62657286AC951D0B94E08B020000787000000000000000057400104A4F425F48414E444C45525F4E414D4574000C7061794E6F746966794A6F627800); + +INSERT INTO "RUOYI_VUE_PRO"."QRTZ_LOCKS"("SCHED_NAME","LOCK_NAME") VALUES('schedulerName','STATE_ACCESS'); +INSERT INTO "RUOYI_VUE_PRO"."QRTZ_LOCKS"("SCHED_NAME","LOCK_NAME") VALUES('schedulerName','TRIGGER_ACCESS'); + +INSERT INTO "RUOYI_VUE_PRO"."QRTZ_SCHEDULER_STATE"("SCHED_NAME","INSTANCE_NAME","LAST_CHECKIN_TIME","CHECKIN_INTERVAL") VALUES('schedulerName','Yunai1677076619095',1677076631456,15000); + +INSERT INTO "RUOYI_VUE_PRO"."QRTZ_TRIGGERS"("SCHED_NAME","TRIGGER_NAME","TRIGGER_GROUP","JOB_NAME","JOB_GROUP","DESCRIPTION","NEXT_FIRE_TIME","PREV_FIRE_TIME","PRIORITY","TRIGGER_STATE","TRIGGER_TYPE","START_TIME","END_TIME","CALENDAR_NAME","MISFIRE_INSTR","JOB_DATA") VALUES('schedulerName','payNotifyJob','DEFAULT','payNotifyJob','DEFAULT',null,1677076638000,1677076637000,5,'WAITING','CRON',1635294882000,0,null,0,0xACED0005737200156F72672E71756172747A2E4A6F62446174614D61709FB083E8BFA9B0CB020000787200266F72672E71756172747A2E7574696C732E537472696E674B65794469727479466C61674D61708208E8C3FBC55D280200015A0013616C6C6F77735472616E7369656E74446174617872001D6F72672E71756172747A2E7574696C732E4469727479466C61674D617013E62EAD28760ACE0200025A000564697274794C00036D617074000F4C6A6176612F7574696C2F4D61703B787001737200116A6176612E7574696C2E486173684D61700507DAC1C31660D103000246000A6C6F6164466163746F724900097468726573686F6C6478703F4000000000000C770800000010000000037400114A4F425F48414E444C45525F504152414D707400124A4F425F52455452595F494E54455256414C737200116A6176612E6C616E672E496E746567657212E2A0A4F781873802000149000576616C7565787200106A6176612E6C616E672E4E756D62657286AC951D0B94E08B02000078700000000074000F4A4F425F52455452595F434F554E5471007E000B7800); + +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."SYSTEM_DEPT" ON; +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DEPT"("ID","NAME","PARENT_ID","SORT","LEADER_USER_ID","PHONE","EMAIL","STATUS","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(100,'芋道源码',0,0,1,'15888888888','ry@qq.com',0,'admin','2021-01-05 17:03:47','1','2022-06-19 00:29:10',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DEPT"("ID","NAME","PARENT_ID","SORT","LEADER_USER_ID","PHONE","EMAIL","STATUS","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(101,'深圳总公司',100,1,104,'15888888888','ry@qq.com',0,'admin','2021-01-05 17:03:47','1','2022-05-16 20:25:23',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DEPT"("ID","NAME","PARENT_ID","SORT","LEADER_USER_ID","PHONE","EMAIL","STATUS","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(102,'长沙分公司',100,2,null,'15888888888','ry@qq.com',0,'admin','2021-01-05 17:03:47','','2021-12-15 05:01:40',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DEPT"("ID","NAME","PARENT_ID","SORT","LEADER_USER_ID","PHONE","EMAIL","STATUS","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(103,'研发部门',101,1,104,'15888888888','ry@qq.com',0,'admin','2021-01-05 17:03:47','103','2022-01-14 01:04:14',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DEPT"("ID","NAME","PARENT_ID","SORT","LEADER_USER_ID","PHONE","EMAIL","STATUS","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(104,'市场部门',101,2,null,'15888888888','ry@qq.com',0,'admin','2021-01-05 17:03:47','','2021-12-15 05:01:38',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DEPT"("ID","NAME","PARENT_ID","SORT","LEADER_USER_ID","PHONE","EMAIL","STATUS","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(105,'测试部门',101,3,null,'15888888888','ry@qq.com',0,'admin','2021-01-05 17:03:47','1','2022-05-16 20:25:15',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DEPT"("ID","NAME","PARENT_ID","SORT","LEADER_USER_ID","PHONE","EMAIL","STATUS","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(106,'财务部门',101,4,103,'15888888888','ry@qq.com',0,'admin','2021-01-05 17:03:47','103','2022-01-15 21:32:22',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DEPT"("ID","NAME","PARENT_ID","SORT","LEADER_USER_ID","PHONE","EMAIL","STATUS","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(107,'运维部门',101,5,null,'15888888888','ry@qq.com',0,'admin','2021-01-05 17:03:47','','2021-12-15 05:01:33',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DEPT"("ID","NAME","PARENT_ID","SORT","LEADER_USER_ID","PHONE","EMAIL","STATUS","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(108,'市场部门',102,1,null,'15888888888','ry@qq.com',0,'admin','2021-01-05 17:03:47','1','2022-02-16 08:35:45',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DEPT"("ID","NAME","PARENT_ID","SORT","LEADER_USER_ID","PHONE","EMAIL","STATUS","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(109,'财务部门',102,2,null,'15888888888','ry@qq.com',0,'admin','2021-01-05 17:03:47','','2021-12-15 05:01:29',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DEPT"("ID","NAME","PARENT_ID","SORT","LEADER_USER_ID","PHONE","EMAIL","STATUS","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(110,'新部门',0,1,null,null,null,0,'110','2022-02-23 20:46:30','110','2022-02-23 20:46:30',0,121); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DEPT"("ID","NAME","PARENT_ID","SORT","LEADER_USER_ID","PHONE","EMAIL","STATUS","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(111,'顶级部门',0,1,null,null,null,0,'113','2022-03-07 21:44:50','113','2022-03-07 21:44:50',0,122); + +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."SYSTEM_DEPT" OFF; +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA" ON; +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1,1,'男','1','system_user_sex',0,'default','A','性别男','admin','2021-01-05 17:03:48','1','2022-03-29 00:14:39',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2,2,'女','2','system_user_sex',1,'success','','性别女','admin','2021-01-05 17:03:48','1','2022-02-16 01:30:51',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(8,1,'正常','1','infra_job_status',0,'success','','正常状态','admin','2021-01-05 17:03:48','1','2022-02-16 19:33:38',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(9,2,'暂停','2','infra_job_status',0,'danger','','停用状态','admin','2021-01-05 17:03:48','1','2022-02-16 19:33:45',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(12,1,'系统内置','1','infra_config_type',0,'danger','','参数类型 - 系统内置','admin','2021-01-05 17:03:48','1','2022-02-16 19:06:02',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(13,2,'自定义','2','infra_config_type',0,'primary','','参数类型 - 自定义','admin','2021-01-05 17:03:48','1','2022-02-16 19:06:07',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(14,1,'通知','1','system_notice_type',0,'success','','通知','admin','2021-01-05 17:03:48','1','2022-02-16 13:05:57',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(15,2,'公告','2','system_notice_type',0,'info','','公告','admin','2021-01-05 17:03:48','1','2022-02-16 13:06:01',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(16,0,'其它','0','system_operate_type',0,'default','','其它操作','admin','2021-01-05 17:03:48','1','2022-02-16 09:32:46',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(17,1,'查询','1','system_operate_type',0,'info','','查询操作','admin','2021-01-05 17:03:48','1','2022-02-16 09:33:16',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(18,2,'新增','2','system_operate_type',0,'primary','','新增操作','admin','2021-01-05 17:03:48','1','2022-02-16 09:33:13',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(19,3,'修改','3','system_operate_type',0,'warning','','修改操作','admin','2021-01-05 17:03:48','1','2022-02-16 09:33:22',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(20,4,'删除','4','system_operate_type',0,'danger','','删除操作','admin','2021-01-05 17:03:48','1','2022-02-16 09:33:27',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(22,5,'导出','5','system_operate_type',0,'default','','导出操作','admin','2021-01-05 17:03:48','1','2022-02-16 09:33:32',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(23,6,'导入','6','system_operate_type',0,'default','','导入操作','admin','2021-01-05 17:03:48','1','2022-02-16 09:33:35',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(27,1,'开启','0','common_status',0,'primary','','开启状态','admin','2021-01-05 17:03:48','1','2022-02-16 08:00:39',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(28,2,'关闭','1','common_status',0,'info','','关闭状态','admin','2021-01-05 17:03:48','1','2022-02-16 08:00:44',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(29,1,'目录','1','system_menu_type',0,'','','目录','admin','2021-01-05 17:03:48','','2022-02-01 16:43:45',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(30,2,'菜单','2','system_menu_type',0,'','','菜单','admin','2021-01-05 17:03:48','','2022-02-01 16:43:41',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(31,3,'按钮','3','system_menu_type',0,'','','按钮','admin','2021-01-05 17:03:48','','2022-02-01 16:43:39',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(32,1,'内置','1','system_role_type',0,'danger','','内置角色','admin','2021-01-05 17:03:48','1','2022-02-16 13:02:08',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(33,2,'自定义','2','system_role_type',0,'primary','','自定义角色','admin','2021-01-05 17:03:48','1','2022-02-16 13:02:12',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(34,1,'全部数据权限','1','system_data_scope',0,'','','全部数据权限','admin','2021-01-05 17:03:48','','2022-02-01 16:47:17',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(35,2,'指定部门数据权限','2','system_data_scope',0,'','','指定部门数据权限','admin','2021-01-05 17:03:48','','2022-02-01 16:47:18',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(36,3,'本部门数据权限','3','system_data_scope',0,'','','本部门数据权限','admin','2021-01-05 17:03:48','','2022-02-01 16:47:16',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(37,4,'本部门及以下数据权限','4','system_data_scope',0,'','','本部门及以下数据权限','admin','2021-01-05 17:03:48','','2022-02-01 16:47:21',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(38,5,'仅本人数据权限','5','system_data_scope',0,'','','仅本人数据权限','admin','2021-01-05 17:03:48','','2022-02-01 16:47:23',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(39,0,'成功','0','system_login_result',0,'success','','登陆结果 - 成功','','2021-01-18 06:17:36','1','2022-02-16 13:23:49',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(40,10,'账号或密码不正确','10','system_login_result',0,'primary','','登陆结果 - 账号或密码不正确','','2021-01-18 06:17:54','1','2022-02-16 13:24:27',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(41,20,'用户被禁用','20','system_login_result',0,'warning','','登陆结果 - 用户被禁用','','2021-01-18 06:17:54','1','2022-02-16 13:23:57',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(42,30,'验证码不存在','30','system_login_result',0,'info','','登陆结果 - 验证码不存在','','2021-01-18 06:17:54','1','2022-02-16 13:24:07',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(43,31,'验证码不正确','31','system_login_result',0,'info','','登陆结果 - 验证码不正确','','2021-01-18 06:17:54','1','2022-02-16 13:24:11',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(44,100,'未知异常','100','system_login_result',0,'danger','','登陆结果 - 未知异常','','2021-01-18 06:17:54','1','2022-02-16 13:24:23',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(45,1,'是','true','infra_boolean_string',0,'danger','','Boolean 是否类型 - 是','','2021-01-19 03:20:55','1','2022-03-15 23:01:45',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(46,1,'否','false','infra_boolean_string',0,'info','','Boolean 是否类型 - 否','','2021-01-19 03:20:55','1','2022-03-15 23:09:45',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(47,1,'永不超时','1','infra_redis_timeout_type',0,'primary','','Redis 未设置超时的情况','','2021-01-26 00:53:17','1','2022-02-16 19:03:35',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(48,1,'动态超时','2','infra_redis_timeout_type',0,'info','','程序里动态传入超时时间,无法固定','','2021-01-26 00:55:00','1','2022-02-16 19:03:41',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(49,3,'固定超时','3','infra_redis_timeout_type',0,'success','','Redis 设置了过期时间','','2021-01-26 00:55:26','1','2022-02-16 19:03:45',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(50,1,'单表(增删改查)','1','infra_codegen_template_type',0,'','',null,'','2021-02-05 07:09:06','','2022-03-10 16:33:15',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(51,2,'树表(增删改查)','2','infra_codegen_template_type',0,'','',null,'','2021-02-05 07:14:46','','2022-03-10 16:33:19',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(53,0,'初始化中','0','infra_job_status',0,'primary','',null,'','2021-02-07 07:46:49','1','2022-02-16 19:33:29',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(57,0,'运行中','0','infra_job_log_status',0,'primary','','RUNNING','','2021-02-08 10:04:24','1','2022-02-16 19:07:48',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(58,1,'成功','1','infra_job_log_status',0,'success','',null,'','2021-02-08 10:06:57','1','2022-02-16 19:07:52',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(59,2,'失败','2','infra_job_log_status',0,'warning','','失败','','2021-02-08 10:07:38','1','2022-02-16 19:07:56',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(60,1,'会员','1','user_type',0,'primary','',null,'','2021-02-26 00:16:27','1','2022-02-16 10:22:19',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(61,2,'管理员','2','user_type',0,'success','',null,'','2021-02-26 00:16:34','1','2022-02-16 10:22:22',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(62,0,'未处理','0','infra_api_error_log_process_status',0,'primary','',null,'','2021-02-26 07:07:19','1','2022-02-16 20:14:17',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(63,1,'已处理','1','infra_api_error_log_process_status',0,'success','',null,'','2021-02-26 07:07:26','1','2022-02-16 20:14:08',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(64,2,'已忽略','2','infra_api_error_log_process_status',0,'danger','',null,'','2021-02-26 07:07:34','1','2022-02-16 20:14:14',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(66,2,'阿里云','ALIYUN','system_sms_channel_code',0,'primary','',null,'1','2021-04-05 01:05:26','1','2022-02-16 10:09:52',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(67,1,'验证码','1','system_sms_template_type',0,'warning','',null,'1','2021-04-05 21:50:57','1','2022-02-16 12:48:30',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(68,2,'通知','2','system_sms_template_type',0,'primary','',null,'1','2021-04-05 21:51:08','1','2022-02-16 12:48:27',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(69,0,'营销','3','system_sms_template_type',0,'danger','',null,'1','2021-04-05 21:51:15','1','2022-02-16 12:48:22',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(70,0,'初始化','0','system_sms_send_status',0,'primary','',null,'1','2021-04-11 20:18:33','1','2022-02-16 10:26:07',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(71,1,'发送成功','10','system_sms_send_status',0,'success','',null,'1','2021-04-11 20:18:43','1','2022-02-16 10:25:56',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(72,2,'发送失败','20','system_sms_send_status',0,'danger','',null,'1','2021-04-11 20:18:49','1','2022-02-16 10:26:03',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(73,3,'不发送','30','system_sms_send_status',0,'info','',null,'1','2021-04-11 20:19:44','1','2022-02-16 10:26:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(74,0,'等待结果','0','system_sms_receive_status',0,'primary','',null,'1','2021-04-11 20:27:43','1','2022-02-16 10:28:24',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(75,1,'接收成功','10','system_sms_receive_status',0,'success','',null,'1','2021-04-11 20:29:25','1','2022-02-16 10:28:28',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(76,2,'接收失败','20','system_sms_receive_status',0,'danger','',null,'1','2021-04-11 20:29:31','1','2022-02-16 10:28:32',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(77,0,'调试(钉钉)','DEBUG_DING_TALK','system_sms_channel_code',0,'info','',null,'1','2021-04-13 00:20:37','1','2022-02-16 10:10:00',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(78,1,'自动生成','1','system_error_code_type',0,'warning','',null,'1','2021-04-21 00:06:48','1','2022-02-16 13:57:20',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(79,2,'手动编辑','2','system_error_code_type',0,'primary','',null,'1','2021-04-21 00:07:14','1','2022-02-16 13:57:24',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(80,100,'账号登录','100','system_login_type',0,'primary','','账号登录','1','2021-10-06 00:52:02','1','2022-02-16 13:11:34',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(81,101,'社交登录','101','system_login_type',0,'info','','社交登录','1','2021-10-06 00:52:17','1','2022-02-16 13:11:40',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(83,200,'主动登出','200','system_login_type',0,'primary','','主动登出','1','2021-10-06 00:52:58','1','2022-02-16 13:11:49',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(85,202,'强制登出','202','system_login_type',0,'danger','','强制退出','1','2021-10-06 00:53:41','1','2022-02-16 13:11:57',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(86,0,'病假','1','bpm_oa_leave_type',0,'primary','',null,'1','2021-09-21 22:35:28','1','2022-02-16 10:00:41',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(87,1,'事假','2','bpm_oa_leave_type',0,'info','',null,'1','2021-09-21 22:36:11','1','2022-02-16 10:00:49',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(88,2,'婚假','3','bpm_oa_leave_type',0,'warning','',null,'1','2021-09-21 22:36:38','1','2022-02-16 10:00:53',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(98,1,'v2','v2','pay_channel_wechat_version',0,'','','v2版本','1','2021-11-08 17:00:58','1','2021-11-08 17:00:58',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(99,2,'v3','v3','pay_channel_wechat_version',0,'','','v3版本','1','2021-11-08 17:01:07','1','2021-11-08 17:01:07',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(108,1,'RSA2','RSA2','pay_channel_alipay_sign_type',0,'','','RSA2','1','2021-11-18 15:39:29','1','2021-11-18 15:39:29',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(109,1,'公钥模式','1','pay_channel_alipay_mode',0,'','','公钥模式:privateKey + alipayPublicKey','1','2021-11-18 15:45:23','1','2021-11-18 15:45:23',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(110,2,'证书模式','2','pay_channel_alipay_mode',0,'','','证书模式:appCertContent + alipayPublicCertContent + rootCertContent','1','2021-11-18 15:45:40','1','2021-11-18 15:45:40',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(111,1,'线上','https://openapi.alipay.com/gateway.do','pay_channel_alipay_server_type',0,'','','网关地址 - 线上','1','2021-11-18 16:59:32','1','2021-11-21 17:37:29',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(112,2,'沙箱','https://openapi.alipaydev.com/gateway.do','pay_channel_alipay_server_type',0,'','','网关地址 - 沙箱','1','2021-11-18 16:59:48','1','2021-11-21 17:37:39',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(113,1,'微信 JSAPI 支付','wx_pub','pay_channel_code_type',0,'','','微信 JSAPI(公众号) 支付','1','2021-12-03 10:40:24','1','2021-12-04 16:41:00',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(114,2,'微信小程序支付','wx_lite','pay_channel_code_type',0,'','','微信小程序支付','1','2021-12-03 10:41:06','1','2021-12-03 10:41:06',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(115,3,'微信 App 支付','wx_app','pay_channel_code_type',0,'','','微信 App 支付','1','2021-12-03 10:41:20','1','2021-12-03 10:41:20',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(116,4,'支付宝 PC 网站支付','alipay_pc','pay_channel_code_type',0,'','','支付宝 PC 网站支付','1','2021-12-03 10:42:09','1','2021-12-03 10:42:09',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(117,5,'支付宝 Wap 网站支付','alipay_wap','pay_channel_code_type',0,'','','支付宝 Wap 网站支付','1','2021-12-03 10:42:26','1','2021-12-03 10:42:26',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(118,6,'支付宝App 支付','alipay_app','pay_channel_code_type',0,'','','支付宝App 支付','1','2021-12-03 10:42:55','1','2021-12-03 10:42:55',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(119,7,'支付宝扫码支付','alipay_qr','pay_channel_code_type',0,'','','支付宝扫码支付','1','2021-12-03 10:43:10','1','2021-12-03 10:43:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(120,1,'通知成功','10','pay_order_notify_status',0,'success','','通知成功','1','2021-12-03 11:02:41','1','2022-02-16 13:59:13',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(121,2,'通知失败','20','pay_order_notify_status',0,'danger','','通知失败','1','2021-12-03 11:02:59','1','2022-02-16 13:59:17',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(122,3,'未通知','0','pay_order_notify_status',0,'info','','未通知','1','2021-12-03 11:03:10','1','2022-02-16 13:59:23',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(123,1,'支付成功','10','pay_order_status',0,'success','','支付成功','1','2021-12-03 11:18:29','1','2022-02-16 15:24:25',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(124,2,'支付关闭','20','pay_order_status',0,'danger','','支付关闭','1','2021-12-03 11:18:42','1','2022-02-16 15:24:31',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(125,3,'未支付','0','pay_order_status',0,'info','','未支付','1','2021-12-03 11:18:18','1','2022-02-16 15:24:35',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(126,1,'未退款','0','pay_order_refund_status',0,'','','未退款','1','2021-12-03 11:30:35','1','2021-12-03 11:34:05',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(127,2,'部分退款','10','pay_order_refund_status',0,'','','部分退款','1','2021-12-03 11:30:44','1','2021-12-03 11:34:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(128,3,'全部退款','20','pay_order_refund_status',0,'','','全部退款','1','2021-12-03 11:30:52','1','2021-12-03 11:34:14',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1117,1,'退款订单生成','0','pay_refund_order_status',0,'primary','','退款订单生成','1','2021-12-10 16:44:44','1','2022-02-16 14:05:24',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1118,2,'退款成功','1','pay_refund_order_status',0,'success','','退款成功','1','2021-12-10 16:44:59','1','2022-02-16 14:05:28',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1119,3,'退款失败','2','pay_refund_order_status',0,'danger','','退款失败','1','2021-12-10 16:45:10','1','2022-02-16 14:05:34',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1124,8,'退款关闭','99','pay_refund_order_status',0,'info','','退款关闭','1','2021-12-10 16:46:26','1','2022-02-16 14:05:40',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1125,0,'默认','1','bpm_model_category',0,'primary','','流程分类 - 默认','1','2022-01-02 08:41:11','1','2022-02-16 20:01:42',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1126,0,'OA','2','bpm_model_category',0,'success','','流程分类 - OA','1','2022-01-02 08:41:22','1','2022-02-16 20:01:50',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1127,0,'进行中','1','bpm_process_instance_status',0,'primary','','流程实例的状态 - 进行中','1','2022-01-07 23:47:22','1','2022-02-16 20:07:49',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1128,2,'已完成','2','bpm_process_instance_status',0,'success','','流程实例的状态 - 已完成','1','2022-01-07 23:47:49','1','2022-02-16 20:07:54',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1129,1,'处理中','1','bpm_process_instance_result',0,'primary','','流程实例的结果 - 处理中','1','2022-01-07 23:48:32','1','2022-02-16 09:53:26',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1130,2,'通过','2','bpm_process_instance_result',0,'success','','流程实例的结果 - 通过','1','2022-01-07 23:48:45','1','2022-02-16 09:53:31',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1131,3,'不通过','3','bpm_process_instance_result',0,'danger','','流程实例的结果 - 不通过','1','2022-01-07 23:48:55','1','2022-02-16 09:53:38',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1132,4,'已取消','4','bpm_process_instance_result',0,'info','','流程实例的结果 - 撤销','1','2022-01-07 23:49:06','1','2022-02-16 09:53:42',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1133,10,'流程表单','10','bpm_model_form_type',0,'','','流程的表单类型 - 流程表单','103','2022-01-11 23:51:30','103','2022-01-11 23:51:30',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1134,20,'业务表单','20','bpm_model_form_type',0,'','','流程的表单类型 - 业务表单','103','2022-01-11 23:51:47','103','2022-01-11 23:51:47',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1135,10,'角色','10','bpm_task_assign_rule_type',0,'info','','任务分配规则的类型 - 角色','103','2022-01-12 23:21:22','1','2022-02-16 20:06:14',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1136,20,'部门的成员','20','bpm_task_assign_rule_type',0,'primary','','任务分配规则的类型 - 部门的成员','103','2022-01-12 23:21:47','1','2022-02-16 20:05:28',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1137,21,'部门的负责人','21','bpm_task_assign_rule_type',0,'primary','','任务分配规则的类型 - 部门的负责人','103','2022-01-12 23:33:36','1','2022-02-16 20:05:31',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1138,30,'用户','30','bpm_task_assign_rule_type',0,'info','','任务分配规则的类型 - 用户','103','2022-01-12 23:34:02','1','2022-02-16 20:05:50',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1139,40,'用户组','40','bpm_task_assign_rule_type',0,'warning','','任务分配规则的类型 - 用户组','103','2022-01-12 23:34:21','1','2022-02-16 20:05:57',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1140,50,'自定义脚本','50','bpm_task_assign_rule_type',0,'danger','','任务分配规则的类型 - 自定义脚本','103','2022-01-12 23:34:43','1','2022-02-16 20:06:01',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1141,22,'岗位','22','bpm_task_assign_rule_type',0,'success','','任务分配规则的类型 - 岗位','103','2022-01-14 18:41:55','1','2022-02-16 20:05:39',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1142,10,'流程发起人','10','bpm_task_assign_script',0,'','','任务分配自定义脚本 - 流程发起人','103','2022-01-15 00:10:57','103','2022-01-15 21:24:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1143,20,'流程发起人的一级领导','20','bpm_task_assign_script',0,'','','任务分配自定义脚本 - 流程发起人的一级领导','103','2022-01-15 21:24:31','103','2022-01-15 21:24:31',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1144,21,'流程发起人的二级领导','21','bpm_task_assign_script',0,'','','任务分配自定义脚本 - 流程发起人的二级领导','103','2022-01-15 21:24:46','103','2022-01-15 21:24:57',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1145,1,'管理后台','1','infra_codegen_scene',0,'','','代码生成的场景枚举 - 管理后台','1','2022-02-02 13:15:06','1','2022-03-10 16:32:59',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1146,2,'用户 APP','2','infra_codegen_scene',0,'','','代码生成的场景枚举 - 用户 APP','1','2022-02-02 13:15:19','1','2022-03-10 16:33:03',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1147,0,'未退款','0','pay_refund_order_type',0,'info','','退款类型 - 未退款','1','2022-02-16 14:09:01','1','2022-02-16 14:09:01',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1148,10,'部分退款','10','pay_refund_order_type',0,'success','','退款类型 - 部分退款','1','2022-02-16 14:09:25','1','2022-02-16 14:11:38',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1149,20,'全部退款','20','pay_refund_order_type',0,'warning','','退款类型 - 全部退款','1','2022-02-16 14:11:33','1','2022-02-16 14:11:33',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1150,1,'数据库','1','infra_file_storage',0,'default','',null,'1','2022-03-15 00:25:28','1','2022-03-15 00:25:28',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1151,10,'本地磁盘','10','infra_file_storage',0,'default','',null,'1','2022-03-15 00:25:41','1','2022-03-15 00:25:56',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1152,11,'FTP 服务器','11','infra_file_storage',0,'default','',null,'1','2022-03-15 00:26:06','1','2022-03-15 00:26:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1153,12,'SFTP 服务器','12','infra_file_storage',0,'default','',null,'1','2022-03-15 00:26:22','1','2022-03-15 00:26:22',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1154,20,'S3 对象存储','20','infra_file_storage',0,'default','',null,'1','2022-03-15 00:26:31','1','2022-03-15 00:26:45',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1155,103,'短信登录','103','system_login_type',0,'default','',null,'1','2022-05-09 23:57:58','1','2022-05-09 23:58:09',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1156,1,'password','password','system_oauth2_grant_type',0,'default','','密码模式','1','2022-05-12 00:22:05','1','2022-05-11 16:26:01',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1157,2,'authorization_code','authorization_code','system_oauth2_grant_type',0,'primary','','授权码模式','1','2022-05-12 00:22:59','1','2022-05-11 16:26:02',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1158,3,'implicit','implicit','system_oauth2_grant_type',0,'success','','简化模式','1','2022-05-12 00:23:40','1','2022-05-11 16:26:05',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1159,4,'client_credentials','client_credentials','system_oauth2_grant_type',0,'default','','客户端模式','1','2022-05-12 00:23:51','1','2022-05-11 16:26:08',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1160,5,'refresh_token','refresh_token','system_oauth2_grant_type',0,'info','','刷新模式','1','2022-05-12 00:24:02','1','2022-05-11 16:26:11',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1162,1,'销售中','1','product_spu_status',0,'success','','商品 SPU 状态 - 销售中','1','2022-10-24 21:19:47','1','2022-10-24 21:20:38',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1163,0,'仓库中','0','product_spu_status',0,'info','','商品 SPU 状态 - 仓库中','1','2022-10-24 21:20:54','1','2022-10-24 21:21:22',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1164,0,'回收站','-1','product_spu_status',0,'default','','商品 SPU 状态 - 回收站','1','2022-10-24 21:21:11','1','2022-10-24 21:21:11',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1165,1,'满减','1','promotion_discount_type',0,'success','','优惠类型 - 满减','1','2022-11-01 12:46:41','1','2022-11-01 12:50:11',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1166,2,'折扣','2','promotion_discount_type',0,'primary','','优惠类型 - 折扣','1','2022-11-01 12:46:51','1','2022-11-01 12:50:08',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1167,1,'固定日期','1','promotion_coupon_template_validity_type',0,'default','','优惠劵模板的有限期类型 - 固定日期','1','2022-11-02 00:07:34','1','2022-11-04 00:07:49',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1168,2,'领取之后','2','promotion_coupon_template_validity_type',0,'default','','优惠劵模板的有限期类型 - 领取之后','1','2022-11-02 00:07:54','1','2022-11-04 00:07:52',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1169,1,'全部商品参与','1','promotion_product_scope',0,'default','','营销的商品范围 - 全部商品参与','1','2022-11-02 00:28:22','1','2022-11-02 00:28:22',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1170,2,'指定商品参与','2','promotion_product_scope',0,'default','','营销的商品范围 - 指定商品参与','1','2022-11-02 00:28:34','1','2022-11-02 00:28:40',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1171,1,'已领取','1','promotion_coupon_status',0,'primary','','优惠劵的状态 - 已领取','1','2022-11-04 00:15:08','1','2022-11-04 19:16:04',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1172,2,'已使用','2','promotion_coupon_status',0,'success','','优惠劵的状态 - 已使用','1','2022-11-04 00:15:21','1','2022-11-04 19:16:08',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1173,3,'已过期','3','promotion_coupon_status',0,'info','','优惠劵的状态 - 已过期','1','2022-11-04 00:15:43','1','2022-11-04 19:16:12',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1174,1,'直接领取','1','promotion_coupon_take_type',0,'primary','','优惠劵的领取方式 - 直接领取','1','2022-11-04 19:13:00','1','2022-11-04 19:13:25',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1175,2,'指定发放','2','promotion_coupon_take_type',0,'success','','优惠劵的领取方式 - 指定发放','1','2022-11-04 19:13:13','1','2022-11-04 19:14:48',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1176,10,'未开始','10','promotion_activity_status',0,'primary','','促销活动的状态枚举 - 未开始','1','2022-11-04 22:54:49','1','2022-11-04 22:55:53',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1177,20,'进行中','20','promotion_activity_status',0,'success','','促销活动的状态枚举 - 进行中','1','2022-11-04 22:55:06','1','2022-11-04 22:55:20',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1178,30,'已结束','30','promotion_activity_status',0,'info','','促销活动的状态枚举 - 已结束','1','2022-11-04 22:55:41','1','2022-11-04 22:55:41',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1179,40,'已关闭','40','promotion_activity_status',0,'warning','','促销活动的状态枚举 - 已关闭','1','2022-11-04 22:56:10','1','2022-11-04 22:56:18',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1180,10,'满 N 元','10','promotion_condition_type',0,'primary','','营销的条件类型 - 满 N 元','1','2022-11-04 22:59:45','1','2022-11-04 22:59:45',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1181,20,'满 N 件','20','promotion_condition_type',0,'success','','营销的条件类型 - 满 N 件','1','2022-11-04 23:00:02','1','2022-11-04 23:00:02',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1182,10,'申请售后','10','trade_after_sale_status',0,'primary','','交易售后状态 - 申请售后','1','2022-11-19 20:53:33','1','2022-11-19 20:54:42',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1183,20,'商品待退货','20','trade_after_sale_status',0,'primary','','交易售后状态 - 商品待退货','1','2022-11-19 20:54:36','1','2022-11-19 20:58:58',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1184,30,'商家待收货','30','trade_after_sale_status',0,'primary','','交易售后状态 - 商家待收货','1','2022-11-19 20:56:56','1','2022-11-19 20:59:20',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1185,40,'等待退款','40','trade_after_sale_status',0,'primary','','交易售后状态 - 等待退款','1','2022-11-19 20:59:54','1','2022-11-19 21:00:01',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1186,50,'退款成功','50','trade_after_sale_status',0,'default','','交易售后状态 - 退款成功','1','2022-11-19 21:00:33','1','2022-11-19 21:00:33',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1187,61,'买家取消','61','trade_after_sale_status',0,'info','','交易售后状态 - 买家取消','1','2022-11-19 21:01:29','1','2022-11-19 21:01:29',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1188,62,'商家拒绝','62','trade_after_sale_status',0,'info','','交易售后状态 - 商家拒绝','1','2022-11-19 21:02:17','1','2022-11-19 21:02:17',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1189,63,'商家拒收货','63','trade_after_sale_status',0,'info','','交易售后状态 - 商家拒收货','1','2022-11-19 21:02:37','1','2022-11-19 21:03:07',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1190,10,'售中退款','10','trade_after_sale_type',0,'success','','交易售后的类型 - 售中退款','1','2022-11-19 21:05:05','1','2022-11-19 21:38:23',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1191,20,'售后退款','20','trade_after_sale_type',0,'primary','','交易售后的类型 - 售后退款','1','2022-11-19 21:05:32','1','2022-11-19 21:38:32',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1192,10,'仅退款','10','trade_after_sale_way',0,'primary','','交易售后的方式 - 仅退款','1','2022-11-19 21:39:19','1','2022-11-19 21:39:19',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1193,20,'退货退款','20','trade_after_sale_way',0,'success','','交易售后的方式 - 退货退款','1','2022-11-19 21:39:38','1','2022-11-19 21:39:49',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1194,10,'微信小程序','10','terminal',0,'default','','终端 - 微信小程序','1','2022-12-10 10:51:11','1','2022-12-10 10:51:57',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1195,20,'H5 网页','20','terminal',0,'default','','终端 - H5 网页','1','2022-12-10 10:51:30','1','2022-12-10 10:51:59',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1196,11,'微信公众号','11','terminal',0,'default','','终端 - 微信公众号','1','2022-12-10 10:54:16','1','2022-12-10 10:52:01',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1197,31,'苹果 App','31','terminal',0,'default','','终端 - 苹果 App','1','2022-12-10 10:54:42','1','2022-12-10 10:52:18',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1198,32,'安卓 App','32','terminal',0,'default','','终端 - 安卓 App','1','2022-12-10 10:55:02','1','2022-12-10 10:59:17',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1199,0,'普通订单','0','trade_order_type',0,'default','','交易订单的类型 - 普通订单','1','2022-12-10 16:34:14','1','2022-12-10 16:34:14',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1200,1,'秒杀订单','1','trade_order_type',0,'default','','交易订单的类型 - 秒杀订单','1','2022-12-10 16:34:26','1','2022-12-10 16:34:26',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1201,2,'拼团订单','2','trade_order_type',0,'default','','交易订单的类型 - 拼团订单','1','2022-12-10 16:34:36','1','2022-12-10 16:34:36',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1202,3,'砍价订单','3','trade_order_type',0,'default','','交易订单的类型 - 砍价订单','1','2022-12-10 16:34:48','1','2022-12-10 16:34:48',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1203,0,'待支付','0','trade_order_status',0,'default','','交易订单状态 - 待支付','1','2022-12-10 16:49:29','1','2022-12-10 16:49:29',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1204,10,'待发货','10','trade_order_status',0,'primary','','交易订单状态 - 待发货','1','2022-12-10 16:49:53','1','2022-12-10 16:51:17',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1205,20,'已发货','20','trade_order_status',0,'primary','','交易订单状态 - 已发货','1','2022-12-10 16:50:13','1','2022-12-10 16:51:31',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1206,30,'已完成','30','trade_order_status',0,'success','','交易订单状态 - 已完成','1','2022-12-10 16:50:30','1','2022-12-10 16:51:06',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1207,40,'已取消','40','trade_order_status',0,'danger','','交易订单状态 - 已取消','1','2022-12-10 16:50:50','1','2022-12-10 16:51:00',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1208,0,'未售后','0','trade_order_item_after_sale_status',0,'info','','交易订单项的售后状态 - 未售后','1','2022-12-10 20:58:42','1','2022-12-10 20:59:29',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1209,1,'售后中','1','trade_order_item_after_sale_status',0,'primary','','交易订单项的售后状态 - 售后中','1','2022-12-10 20:59:21','1','2022-12-10 20:59:21',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1210,2,'已退款','2','trade_order_item_after_sale_status',0,'success','','交易订单项的售后状态 - 已退款','1','2022-12-10 20:59:46','1','2022-12-10 20:59:46',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1211,1,'完全匹配','1','mp_auto_reply_request_match',0,'primary','','公众号自动回复的请求关键字匹配模式 - 完全匹配','1','2023-01-16 23:30:39','1','2023-01-16 23:31:00',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1212,2,'半匹配','2','mp_auto_reply_request_match',0,'success','','公众号自动回复的请求关键字匹配模式 - 半匹配','1','2023-01-16 23:30:55','1','2023-01-16 23:31:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1213,1,'文本','text','mp_message_type',0,'default','','公众号的消息类型 - 文本','1','2023-01-17 22:17:32','1','2023-01-17 22:17:39',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1214,2,'图片','image','mp_message_type',0,'default','','公众号的消息类型 - 图片','1','2023-01-17 22:17:32','1','2023-01-17 14:19:47',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1215,3,'语音','voice','mp_message_type',0,'default','','公众号的消息类型 - 语音','1','2023-01-17 22:17:32','1','2023-01-17 14:20:08',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1216,4,'视频','video','mp_message_type',0,'default','','公众号的消息类型 - 视频','1','2023-01-17 22:17:32','1','2023-01-17 14:21:08',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1217,5,'小视频','shortvideo','mp_message_type',0,'default','','公众号的消息类型 - 小视频','1','2023-01-17 22:17:32','1','2023-01-17 14:19:59',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1218,6,'图文','news','mp_message_type',0,'default','','公众号的消息类型 - 图文','1','2023-01-17 22:17:32','1','2023-01-17 14:22:54',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1219,7,'音乐','music','mp_message_type',0,'default','','公众号的消息类型 - 音乐','1','2023-01-17 22:17:32','1','2023-01-17 14:22:54',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1220,8,'地理位置','location','mp_message_type',0,'default','','公众号的消息类型 - 地理位置','1','2023-01-17 22:17:32','1','2023-01-17 14:23:51',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1221,9,'链接','link','mp_message_type',0,'default','','公众号的消息类型 - 链接','1','2023-01-17 22:17:32','1','2023-01-17 14:24:49',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1222,10,'事件','event','mp_message_type',0,'default','','公众号的消息类型 - 事件','1','2023-01-17 22:17:32','1','2023-01-17 14:24:49',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1223,0,'初始化','0','system_mail_send_status',0,'primary','','邮件发送状态 - 初始化 +','1','2023-01-26 09:53:49','1','2023-01-26 16:36:14',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1224,10,'发送成功','10','system_mail_send_status',0,'success','','邮件发送状态 - 发送成功','1','2023-01-26 09:54:28','1','2023-01-26 16:36:22',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1225,20,'发送失败','20','system_mail_send_status',0,'danger','','邮件发送状态 - 发送失败','1','2023-01-26 09:54:50','1','2023-01-26 16:36:26',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1226,30,'不发送','30','system_mail_send_status',0,'info','','邮件发送状态 - 不发送','1','2023-01-26 09:55:06','1','2023-01-26 16:36:36',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1227,1,'通知公告','1','system_notify_template_type',0,'primary','','站内信模版的类型 - 通知公告','1','2023-01-28 10:35:59','1','2023-01-28 10:35:59',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1228,2,'系统消息','2','system_notify_template_type',0,'success','','站内信模版的类型 - 系统消息','1','2023-01-28 10:36:20','1','2023-01-28 10:36:25',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1229,0,'模拟支付','mock','pay_channel_code_type',0,'default','',null,'1','2023-02-12 21:50:22','1','2023-02-12 21:50:22',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1230,8,'支付宝条码支付','alipay_bar','pay_channel_code_type',0,'default','',null,'1','2023-02-18 23:32:24','1','2023-02-18 23:32:32',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1231,10,'Vue2 Element UI 标准模版','10','infra_codegen_front_type',0,'','','','1','2023-04-13 00:03:55','1','2023-04-13 00:03:55',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1232,20,'Vue3 Element Plus 标准模版','20','infra_codegen_front_type',0,'','','','1','2023-04-13 00:04:08','1','2023-04-13 00:04:08',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1233,21,'Vue3 Element Plus Schema 模版','21','infra_codegen_front_type',0,'','','','1','2023-04-13 00:04:26','1','2023-04-13 00:04:26',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"("ID","SORT","LABEL","VALUE","DICT_TYPE","STATUS","COLOR_TYPE","CSS_CLASS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1234,30,'Vue3 vben 模版','30','infra_codegen_front_type',0,'','','','1','2023-04-13 00:04:26','1','2023-04-13 00:04:26',0); + +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA" OFF; +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."SYSTEM_DICT_TYPE" ON; +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_TYPE"("ID","NAME","TYPE","STATUS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","DELETED_TIME") VALUES(1,'用户性别','system_user_sex',0,null,'admin','2021-01-05 17:03:48','1','2022-05-16 20:29:32',0,null); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_TYPE"("ID","NAME","TYPE","STATUS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","DELETED_TIME") VALUES(6,'参数类型','infra_config_type',0,null,'admin','2021-01-05 17:03:48','','2022-02-01 16:36:54',0,null); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_TYPE"("ID","NAME","TYPE","STATUS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","DELETED_TIME") VALUES(7,'通知类型','system_notice_type',0,null,'admin','2021-01-05 17:03:48','','2022-02-01 16:35:26',0,null); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_TYPE"("ID","NAME","TYPE","STATUS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","DELETED_TIME") VALUES(9,'操作类型','system_operate_type',0,null,'admin','2021-01-05 17:03:48','1','2022-02-16 09:32:21',0,null); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_TYPE"("ID","NAME","TYPE","STATUS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","DELETED_TIME") VALUES(10,'系统状态','common_status',0,null,'admin','2021-01-05 17:03:48','','2022-02-01 16:21:28',0,null); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_TYPE"("ID","NAME","TYPE","STATUS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","DELETED_TIME") VALUES(11,'Boolean 是否类型','infra_boolean_string',0,'boolean 转是否','','2021-01-19 03:20:08','','2022-02-01 16:37:10',0,null); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_TYPE"("ID","NAME","TYPE","STATUS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","DELETED_TIME") VALUES(104,'登陆结果','system_login_result',0,'登陆结果','','2021-01-18 06:17:11','','2022-02-01 16:36:00',0,null); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_TYPE"("ID","NAME","TYPE","STATUS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","DELETED_TIME") VALUES(105,'Redis 超时类型','infra_redis_timeout_type',0,'RedisKeyDefine.TimeoutTypeEnum','','2021-01-26 00:52:50','','2022-02-01 16:50:29',0,null); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_TYPE"("ID","NAME","TYPE","STATUS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","DELETED_TIME") VALUES(106,'代码生成模板类型','infra_codegen_template_type',0,null,'','2021-02-05 07:08:06','1','2022-05-16 20:26:50',0,null); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_TYPE"("ID","NAME","TYPE","STATUS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","DELETED_TIME") VALUES(107,'定时任务状态','infra_job_status',0,null,'','2021-02-07 07:44:16','','2022-02-01 16:51:11',0,null); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_TYPE"("ID","NAME","TYPE","STATUS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","DELETED_TIME") VALUES(108,'定时任务日志状态','infra_job_log_status',0,null,'','2021-02-08 10:03:51','','2022-02-01 16:50:43',0,null); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_TYPE"("ID","NAME","TYPE","STATUS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","DELETED_TIME") VALUES(109,'用户类型','user_type',0,null,'','2021-02-26 00:15:51','','2021-02-26 00:15:51',0,null); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_TYPE"("ID","NAME","TYPE","STATUS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","DELETED_TIME") VALUES(110,'API 异常数据的处理状态','infra_api_error_log_process_status',0,null,'','2021-02-26 07:07:01','','2022-02-01 16:50:53',0,null); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_TYPE"("ID","NAME","TYPE","STATUS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","DELETED_TIME") VALUES(111,'短信渠道编码','system_sms_channel_code',0,null,'1','2021-04-05 01:04:50','1','2022-02-16 02:09:08',0,null); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_TYPE"("ID","NAME","TYPE","STATUS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","DELETED_TIME") VALUES(112,'短信模板的类型','system_sms_template_type',0,null,'1','2021-04-05 21:50:43','1','2022-02-01 16:35:06',0,null); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_TYPE"("ID","NAME","TYPE","STATUS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","DELETED_TIME") VALUES(113,'短信发送状态','system_sms_send_status',0,null,'1','2021-04-11 20:18:03','1','2022-02-01 16:35:09',0,null); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_TYPE"("ID","NAME","TYPE","STATUS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","DELETED_TIME") VALUES(114,'短信接收状态','system_sms_receive_status',0,null,'1','2021-04-11 20:27:14','1','2022-02-01 16:35:14',0,null); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_TYPE"("ID","NAME","TYPE","STATUS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","DELETED_TIME") VALUES(115,'错误码的类型','system_error_code_type',0,null,'1','2021-04-21 00:06:30','1','2022-02-01 16:36:49',0,null); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_TYPE"("ID","NAME","TYPE","STATUS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","DELETED_TIME") VALUES(116,'登陆日志的类型','system_login_type',0,'登陆日志的类型','1','2021-10-06 00:50:46','1','2022-02-01 16:35:56',0,null); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_TYPE"("ID","NAME","TYPE","STATUS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","DELETED_TIME") VALUES(117,'OA 请假类型','bpm_oa_leave_type',0,null,'1','2021-09-21 22:34:33','1','2022-01-22 10:41:37',0,null); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_TYPE"("ID","NAME","TYPE","STATUS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","DELETED_TIME") VALUES(122,'支付渠道微信版本','pay_channel_wechat_version',0,'支付渠道微信版本','1','2021-11-08 17:00:26','1','2021-11-08 17:00:26',0,null); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_TYPE"("ID","NAME","TYPE","STATUS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","DELETED_TIME") VALUES(127,'支付渠道支付宝算法类型','pay_channel_alipay_sign_type',0,'支付渠道支付宝算法类型','1','2021-11-18 15:39:09','1','2021-11-18 15:39:09',0,null); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_TYPE"("ID","NAME","TYPE","STATUS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","DELETED_TIME") VALUES(128,'支付渠道支付宝公钥类型','pay_channel_alipay_mode',0,'支付渠道支付宝公钥类型','1','2021-11-18 15:44:28','1','2021-11-18 15:44:28',0,null); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_TYPE"("ID","NAME","TYPE","STATUS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","DELETED_TIME") VALUES(129,'支付宝网关地址','pay_channel_alipay_server_type',0,'支付宝网关地址','1','2021-11-18 16:58:55','1','2021-11-18 17:01:34',0,null); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_TYPE"("ID","NAME","TYPE","STATUS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","DELETED_TIME") VALUES(130,'支付渠道编码类型','pay_channel_code_type',0,'支付渠道的编码','1','2021-12-03 10:35:08','1','2021-12-03 10:35:08',0,null); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_TYPE"("ID","NAME","TYPE","STATUS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","DELETED_TIME") VALUES(131,'支付订单回调状态','pay_order_notify_status',0,'支付订单回调状态','1','2021-12-03 10:53:29','1','2021-12-03 10:53:29',0,null); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_TYPE"("ID","NAME","TYPE","STATUS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","DELETED_TIME") VALUES(132,'支付订单状态','pay_order_status',0,'支付订单状态','1','2021-12-03 11:17:50','1','2021-12-03 11:17:50',0,null); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_TYPE"("ID","NAME","TYPE","STATUS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","DELETED_TIME") VALUES(133,'支付订单退款状态','pay_order_refund_status',0,'支付订单退款状态','1','2021-12-03 11:27:31','1','2021-12-03 11:27:31',0,null); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_TYPE"("ID","NAME","TYPE","STATUS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","DELETED_TIME") VALUES(134,'退款订单状态','pay_refund_order_status',0,'退款订单状态','1','2021-12-10 16:42:50','1','2021-12-10 16:42:50',0,null); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_TYPE"("ID","NAME","TYPE","STATUS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","DELETED_TIME") VALUES(135,'退款订单类别','pay_refund_order_type',0,'退款订单类别','1','2021-12-10 17:14:53','1','2021-12-10 17:14:53',0,null); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_TYPE"("ID","NAME","TYPE","STATUS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","DELETED_TIME") VALUES(138,'流程分类','bpm_model_category',0,'流程分类','1','2022-01-02 08:40:45','1','2022-01-02 08:40:45',0,null); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_TYPE"("ID","NAME","TYPE","STATUS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","DELETED_TIME") VALUES(139,'流程实例的状态','bpm_process_instance_status',0,'流程实例的状态','1','2022-01-07 23:46:42','1','2022-01-07 23:46:42',0,null); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_TYPE"("ID","NAME","TYPE","STATUS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","DELETED_TIME") VALUES(140,'流程实例的结果','bpm_process_instance_result',0,'流程实例的结果','1','2022-01-07 23:48:10','1','2022-01-07 23:48:10',0,null); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_TYPE"("ID","NAME","TYPE","STATUS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","DELETED_TIME") VALUES(141,'流程的表单类型','bpm_model_form_type',0,'流程的表单类型','103','2022-01-11 23:50:45','103','2022-01-11 23:50:45',0,null); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_TYPE"("ID","NAME","TYPE","STATUS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","DELETED_TIME") VALUES(142,'任务分配规则的类型','bpm_task_assign_rule_type',0,'任务分配规则的类型','103','2022-01-12 23:21:04','103','2022-01-12 15:46:10',0,null); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_TYPE"("ID","NAME","TYPE","STATUS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","DELETED_TIME") VALUES(143,'任务分配自定义脚本','bpm_task_assign_script',0,'任务分配自定义脚本','103','2022-01-15 00:10:35','103','2022-01-15 00:10:35',0,null); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_TYPE"("ID","NAME","TYPE","STATUS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","DELETED_TIME") VALUES(144,'代码生成的场景枚举','infra_codegen_scene',0,'代码生成的场景枚举','1','2022-02-02 13:14:45','1','2022-03-10 16:33:46',0,null); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_TYPE"("ID","NAME","TYPE","STATUS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","DELETED_TIME") VALUES(145,'角色类型','system_role_type',0,'角色类型','1','2022-02-16 13:01:46','1','2022-02-16 13:01:46',0,null); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_TYPE"("ID","NAME","TYPE","STATUS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","DELETED_TIME") VALUES(146,'文件存储器','infra_file_storage',0,'文件存储器','1','2022-03-15 00:24:38','1','2022-03-15 00:24:38',0,null); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_TYPE"("ID","NAME","TYPE","STATUS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","DELETED_TIME") VALUES(147,'OAuth 2.0 授权类型','system_oauth2_grant_type',0,'OAuth 2.0 授权类型(模式)','1','2022-05-12 00:20:52','1','2022-05-11 16:25:49',0,null); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_TYPE"("ID","NAME","TYPE","STATUS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","DELETED_TIME") VALUES(149,'商品 SPU 状态','product_spu_status',0,'商品 SPU 状态','1','2022-10-24 21:19:04','1','2022-10-24 21:19:08',0,null); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_TYPE"("ID","NAME","TYPE","STATUS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","DELETED_TIME") VALUES(150,'优惠类型','promotion_discount_type',0,'优惠类型','1','2022-11-01 12:46:06','1','2022-11-01 12:46:06',0,null); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_TYPE"("ID","NAME","TYPE","STATUS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","DELETED_TIME") VALUES(151,'优惠劵模板的有限期类型','promotion_coupon_template_validity_type',0,'优惠劵模板的有限期类型','1','2022-11-02 00:06:20','1','2022-11-04 00:08:26',0,null); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_TYPE"("ID","NAME","TYPE","STATUS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","DELETED_TIME") VALUES(152,'营销的商品范围','promotion_product_scope',0,'营销的商品范围','1','2022-11-02 00:28:01','1','2022-11-02 00:28:01',0,null); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_TYPE"("ID","NAME","TYPE","STATUS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","DELETED_TIME") VALUES(153,'优惠劵的状态','promotion_coupon_status',0,'优惠劵的状态','1','2022-11-04 00:14:49','1','2022-11-04 00:14:49',0,null); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_TYPE"("ID","NAME","TYPE","STATUS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","DELETED_TIME") VALUES(154,'优惠劵的领取方式','promotion_coupon_take_type',0,'优惠劵的领取方式','1','2022-11-04 19:12:27','1','2022-11-04 19:12:27',0,null); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_TYPE"("ID","NAME","TYPE","STATUS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","DELETED_TIME") VALUES(155,'促销活动的状态','promotion_activity_status',0,'促销活动的状态','1','2022-11-04 22:54:23','1','2022-11-04 22:54:23',0,null); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_TYPE"("ID","NAME","TYPE","STATUS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","DELETED_TIME") VALUES(156,'营销的条件类型','promotion_condition_type',0,'营销的条件类型','1','2022-11-04 22:59:23','1','2022-11-04 22:59:23',0,null); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_TYPE"("ID","NAME","TYPE","STATUS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","DELETED_TIME") VALUES(157,'交易售后状态','trade_after_sale_status',0,'交易售后状态','1','2022-11-19 20:52:56','1','2022-11-19 20:52:56',0,null); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_TYPE"("ID","NAME","TYPE","STATUS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","DELETED_TIME") VALUES(158,'交易售后的类型','trade_after_sale_type',0,'交易售后的类型','1','2022-11-19 21:04:09','1','2022-11-19 21:04:09',0,null); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_TYPE"("ID","NAME","TYPE","STATUS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","DELETED_TIME") VALUES(159,'交易售后的方式','trade_after_sale_way',0,'交易售后的方式','1','2022-11-19 21:39:04','1','2022-11-19 21:39:04',0,null); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_TYPE"("ID","NAME","TYPE","STATUS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","DELETED_TIME") VALUES(160,'终端','terminal',0,'终端','1','2022-12-10 10:50:50','1','2022-12-10 10:53:11',0,null); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_TYPE"("ID","NAME","TYPE","STATUS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","DELETED_TIME") VALUES(161,'交易订单的类型','trade_order_type',0,'交易订单的类型','1','2022-12-10 16:33:54','1','2022-12-10 16:33:54',0,null); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_TYPE"("ID","NAME","TYPE","STATUS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","DELETED_TIME") VALUES(162,'交易订单的状态','trade_order_status',0,'交易订单的状态','1','2022-12-10 16:48:44','1','2022-12-10 16:48:44',0,null); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_TYPE"("ID","NAME","TYPE","STATUS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","DELETED_TIME") VALUES(163,'交易订单项的售后状态','trade_order_item_after_sale_status',0,'交易订单项的售后状态','1','2022-12-10 20:58:08','1','2022-12-10 20:58:08',0,null); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_TYPE"("ID","NAME","TYPE","STATUS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","DELETED_TIME") VALUES(164,'公众号自动回复的请求关键字匹配模式','mp_auto_reply_request_match',0,'公众号自动回复的请求关键字匹配模式','1','2023-01-16 23:29:56','1','2023-01-16 23:29:56',0,'1970-01-01 00:00:00'); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_TYPE"("ID","NAME","TYPE","STATUS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","DELETED_TIME") VALUES(165,'公众号的消息类型','mp_message_type',0,'公众号的消息类型','1','2023-01-17 22:17:09','1','2023-01-17 22:17:09',0,'1970-01-01 00:00:00'); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_TYPE"("ID","NAME","TYPE","STATUS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","DELETED_TIME") VALUES(166,'邮件发送状态','system_mail_send_status',0,'邮件发送状态','1','2023-01-26 09:53:13','1','2023-01-26 09:53:13',0,'1970-01-01 00:00:00'); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_TYPE"("ID","NAME","TYPE","STATUS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","DELETED_TIME") VALUES(167,'站内信模版的类型','system_notify_template_type',0,'站内信模版的类型','1','2023-01-28 10:35:10','1','2023-01-28 10:35:10',0,'1970-01-01 00:00:00'); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_DICT_TYPE"("ID","NAME","TYPE","STATUS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","DELETED_TIME") VALUES(168,'代码生成的前端类型','infra_codegen_front_type',0,'','1','2023-04-12 23:57:52','1','2023-04-12 23:57:52',0,'1970-01-01 00:00:00'); + +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."SYSTEM_DICT_TYPE" OFF; +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."SYSTEM_ERROR_CODE" ON; +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."SYSTEM_ERROR_CODE" OFF; +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."SYSTEM_LOGIN_LOG" ON; +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."SYSTEM_LOGIN_LOG" OFF; +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."SYSTEM_MAIL_ACCOUNT" ON; +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MAIL_ACCOUNT"("ID","MAIL","USERNAME","PASSWORD","HOST","PORT","SSL_ENABLE","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1,'7684413@qq.com','7684413@qq.com','123457','127.0.0.1',8080,0,'1','2023-01-25 17:39:52','1','2023-04-12 23:04:49',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MAIL_ACCOUNT"("ID","MAIL","USERNAME","PASSWORD","HOST","PORT","SSL_ENABLE","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2,'ydym_test@163.com','ydym_test@163.com','WBZTEINMIFVRYSOE','smtp.163.com',465,1,'1','2023-01-26 01:26:03','1','2023-04-12 22:39:38',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MAIL_ACCOUNT"("ID","MAIL","USERNAME","PASSWORD","HOST","PORT","SSL_ENABLE","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(3,'76854114@qq.com','3335','11234','yunai1.cn',466,0,'1','2023-01-27 15:06:38','1','2023-01-27 07:08:36',1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MAIL_ACCOUNT"("ID","MAIL","USERNAME","PASSWORD","HOST","PORT","SSL_ENABLE","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(4,'7685413x@qq.com','2','3','4',5,1,'1','2023-04-12 23:05:06','1','2023-04-12 15:05:11',1); + +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."SYSTEM_MAIL_ACCOUNT" OFF; +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."SYSTEM_MAIL_LOG" ON; +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."SYSTEM_MAIL_LOG" OFF; +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."SYSTEM_MAIL_TEMPLATE" ON; +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MAIL_TEMPLATE"("ID","NAME","CODE","ACCOUNT_ID","NICKNAME","TITLE","CONTENT","PARAMS","STATUS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(13,'后台用户短信登录','admin-sms-login',1,'奥特曼','你猜我猜','

您的验证码是{code},名字是{name}

','["code","name"]',0,'3','1','2021-10-11 08:10:00','1','2023-01-26 23:22:05',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MAIL_TEMPLATE"("ID","NAME","CODE","ACCOUNT_ID","NICKNAME","TITLE","CONTENT","PARAMS","STATUS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(14,'测试模版','test_01',2,'芋艿','一个标题','

你是 {key01} 吗?


是的话,赶紧 {key02} 一下!

','["key01","key02"]',0,null,'1','2023-01-26 01:27:40','1','2023-01-27 10:32:16',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MAIL_TEMPLATE"("ID","NAME","CODE","ACCOUNT_ID","NICKNAME","TITLE","CONTENT","PARAMS","STATUS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(15,'3','2',2,'7','4','

45

','[]',1,'80','1','2023-01-27 15:50:35','1','2023-01-27 16:34:49',0); + +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."SYSTEM_MAIL_TEMPLATE" OFF; +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."SYSTEM_MENU" ON; +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1,'系统管理','',1,10,0,'/system','system',null,null,0,1,1,1,'admin','2021-01-05 17:03:48','1','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2,'基础设施','',1,20,0,'/infra','monitor',null,null,0,1,1,1,'admin','2021-01-05 17:03:48','1','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(5,'OA 示例','',1,40,1185,'oa','people',null,null,0,1,1,1,'admin','2021-09-20 16:26:19','1','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(100,'用户管理','system:user:list',2,1,1,'user','user','system/user/index','SystemUser',0,1,1,1,'admin','2021-01-05 17:03:48','1','2023-04-08 08:31:59',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(101,'角色管理','',2,2,1,'role','peoples','system/role/index','SystemRole',0,1,1,1,'admin','2021-01-05 17:03:48','1','2023-04-08 08:33:59',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(102,'菜单管理','',2,3,1,'menu','tree-table','system/menu/index','SystemMenu',0,1,1,1,'admin','2021-01-05 17:03:48','1','2023-04-08 08:34:32',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(103,'部门管理','',2,4,1,'dept','tree','system/dept/index','SystemDept',0,1,1,1,'admin','2021-01-05 17:03:48','1','2023-04-08 08:35:32',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(104,'岗位管理','',2,5,1,'post','post','system/post/index','SystemPost',0,1,1,1,'admin','2021-01-05 17:03:48','1','2023-04-08 08:36:21',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(105,'字典管理','',2,6,1,'dict','dict','system/dict/index','SystemDictType',0,1,1,1,'admin','2021-01-05 17:03:48','1','2023-04-08 08:36:45',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(106,'配置管理','',2,6,2,'config','edit','infra/config/index','InfraConfig',0,1,1,1,'admin','2021-01-05 17:03:48','1','2023-04-08 10:31:17',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(107,'通知公告','',2,8,1,'notice','message','system/notice/index','SystemNotice',0,1,1,1,'admin','2021-01-05 17:03:48','1','2023-04-08 08:45:06',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(108,'审计日志','',1,9,1,'log','log','',null,0,1,1,1,'admin','2021-01-05 17:03:48','1','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(109,'令牌管理','',2,2,1261,'token','online','system/oauth2/token/index','SystemTokenClient',0,1,1,1,'admin','2021-01-05 17:03:48','1','2023-04-08 08:47:41',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(110,'定时任务','',2,12,2,'job','job','infra/job/index','InfraJob',0,1,1,1,'admin','2021-01-05 17:03:48','1','2023-04-08 10:36:49',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(111,'MySQL 监控','',2,9,2,'druid','druid','infra/druid/index','InfraDruid',0,1,1,1,'admin','2021-01-05 17:03:48','1','2023-04-08 09:09:30',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(112,'Java 监控','',2,11,2,'admin-server','server','infra/server/index','InfraAdminServer',0,1,1,1,'admin','2021-01-05 17:03:48','1','2023-04-08 10:34:08',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(113,'Redis 监控','',2,10,2,'redis','redis','infra/redis/index','InfraRedis',0,1,1,1,'admin','2021-01-05 17:03:48','1','2023-04-08 10:33:30',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(114,'表单构建','infra:build:list',2,2,2,'build','build','infra/build/index','InfraBuild',0,1,1,1,'admin','2021-01-05 17:03:48','1','2023-04-08 09:06:12',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(115,'代码生成','infra:codegen:query',2,1,2,'codegen','code','infra/codegen/index','InfraCodegen',0,1,1,1,'admin','2021-01-05 17:03:48','1','2023-04-08 09:02:24',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(116,'系统接口','infra:swagger:list',2,3,2,'swagger','swagger','infra/swagger/index','InfraSwagger',0,1,1,1,'admin','2021-01-05 17:03:48','1','2023-04-08 09:11:28',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(500,'操作日志','',2,1,108,'operate-log','form','system/operatelog/index','SystemOperateLog',0,1,1,1,'admin','2021-01-05 17:03:48','1','2023-04-08 08:47:00',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(501,'登录日志','',2,2,108,'login-log','logininfor','system/loginlog/index','SystemLoginLog',0,1,1,1,'admin','2021-01-05 17:03:48','1','2023-04-08 08:46:18',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1001,'用户查询','system:user:query',3,1,100,'','#','',null,0,1,1,1,'admin','2021-01-05 17:03:48','','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1002,'用户新增','system:user:create',3,2,100,'','','',null,0,1,1,1,'admin','2021-01-05 17:03:48','1','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1003,'用户修改','system:user:update',3,3,100,'','','',null,0,1,1,1,'admin','2021-01-05 17:03:48','1','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1004,'用户删除','system:user:delete',3,4,100,'','','',null,0,1,1,1,'admin','2021-01-05 17:03:48','1','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1005,'用户导出','system:user:export',3,5,100,'','#','',null,0,1,1,1,'admin','2021-01-05 17:03:48','','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1006,'用户导入','system:user:import',3,6,100,'','#','',null,0,1,1,1,'admin','2021-01-05 17:03:48','','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1007,'重置密码','system:user:update-password',3,7,100,'','','',null,0,1,1,1,'admin','2021-01-05 17:03:48','1','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1008,'角色查询','system:role:query',3,1,101,'','#','',null,0,1,1,1,'admin','2021-01-05 17:03:48','','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1009,'角色新增','system:role:create',3,2,101,'','','',null,0,1,1,1,'admin','2021-01-05 17:03:48','1','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1010,'角色修改','system:role:update',3,3,101,'','','',null,0,1,1,1,'admin','2021-01-05 17:03:48','1','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1011,'角色删除','system:role:delete',3,4,101,'','','',null,0,1,1,1,'admin','2021-01-05 17:03:48','1','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1012,'角色导出','system:role:export',3,5,101,'','#','',null,0,1,1,1,'admin','2021-01-05 17:03:48','','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1013,'菜单查询','system:menu:query',3,1,102,'','#','',null,0,1,1,1,'admin','2021-01-05 17:03:48','','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1014,'菜单新增','system:menu:create',3,2,102,'','#','',null,0,1,1,1,'admin','2021-01-05 17:03:48','','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1015,'菜单修改','system:menu:update',3,3,102,'','#','',null,0,1,1,1,'admin','2021-01-05 17:03:48','','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1016,'菜单删除','system:menu:delete',3,4,102,'','#','',null,0,1,1,1,'admin','2021-01-05 17:03:48','','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1017,'部门查询','system:dept:query',3,1,103,'','#','',null,0,1,1,1,'admin','2021-01-05 17:03:48','','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1018,'部门新增','system:dept:create',3,2,103,'','','',null,0,1,1,1,'admin','2021-01-05 17:03:48','1','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1019,'部门修改','system:dept:update',3,3,103,'','','',null,0,1,1,1,'admin','2021-01-05 17:03:48','1','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1020,'部门删除','system:dept:delete',3,4,103,'','','',null,0,1,1,1,'admin','2021-01-05 17:03:48','1','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1021,'岗位查询','system:post:query',3,1,104,'','#','',null,0,1,1,1,'admin','2021-01-05 17:03:48','','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1022,'岗位新增','system:post:create',3,2,104,'','','',null,0,1,1,1,'admin','2021-01-05 17:03:48','1','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1023,'岗位修改','system:post:update',3,3,104,'','','',null,0,1,1,1,'admin','2021-01-05 17:03:48','1','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1024,'岗位删除','system:post:delete',3,4,104,'','','',null,0,1,1,1,'admin','2021-01-05 17:03:48','1','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1025,'岗位导出','system:post:export',3,5,104,'','#','',null,0,1,1,1,'admin','2021-01-05 17:03:48','','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1026,'字典查询','system:dict:query',3,1,105,'#','#','',null,0,1,1,1,'admin','2021-01-05 17:03:48','','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1027,'字典新增','system:dict:create',3,2,105,'','','',null,0,1,1,1,'admin','2021-01-05 17:03:48','1','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1028,'字典修改','system:dict:update',3,3,105,'','','',null,0,1,1,1,'admin','2021-01-05 17:03:48','1','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1029,'字典删除','system:dict:delete',3,4,105,'','','',null,0,1,1,1,'admin','2021-01-05 17:03:48','1','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1030,'字典导出','system:dict:export',3,5,105,'#','#','',null,0,1,1,1,'admin','2021-01-05 17:03:48','','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1031,'配置查询','infra:config:query',3,1,106,'','','',null,0,1,1,1,'admin','2021-01-05 17:03:48','','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1032,'配置新增','infra:config:create',3,2,106,'','','',null,0,1,1,1,'admin','2021-01-05 17:03:48','1','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1033,'配置修改','infra:config:update',3,3,106,'','','',null,0,1,1,1,'admin','2021-01-05 17:03:48','1','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1034,'配置删除','infra:config:delete',3,4,106,'','','',null,0,1,1,1,'admin','2021-01-05 17:03:48','1','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1035,'配置导出','infra:config:export',3,5,106,'','','',null,0,1,1,1,'admin','2021-01-05 17:03:48','','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1036,'公告查询','system:notice:query',3,1,107,'#','#','',null,0,1,1,1,'admin','2021-01-05 17:03:48','','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1037,'公告新增','system:notice:create',3,2,107,'','','',null,0,1,1,1,'admin','2021-01-05 17:03:48','1','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1038,'公告修改','system:notice:update',3,3,107,'','','',null,0,1,1,1,'admin','2021-01-05 17:03:48','1','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1039,'公告删除','system:notice:delete',3,4,107,'','','',null,0,1,1,1,'admin','2021-01-05 17:03:48','1','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1040,'操作查询','system:operate-log:query',3,1,500,'','','',null,0,1,1,1,'admin','2021-01-05 17:03:48','','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1042,'日志导出','system:operate-log:export',3,2,500,'','','',null,0,1,1,1,'admin','2021-01-05 17:03:48','','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1043,'登录查询','system:login-log:query',3,1,501,'#','#','',null,0,1,1,1,'admin','2021-01-05 17:03:48','','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1045,'日志导出','system:login-log:export',3,3,501,'#','#','',null,0,1,1,1,'admin','2021-01-05 17:03:48','','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1046,'令牌列表','system:oauth2-token:page',3,1,109,'','','',null,0,1,1,1,'admin','2021-01-05 17:03:48','1','2022-05-09 23:54:42',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1048,'令牌删除','system:oauth2-token:delete',3,2,109,'','','',null,0,1,1,1,'admin','2021-01-05 17:03:48','1','2022-05-09 23:54:53',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1050,'任务新增','infra:job:create',3,2,110,'','','',null,0,1,1,1,'admin','2021-01-05 17:03:48','','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1051,'任务修改','infra:job:update',3,3,110,'','','',null,0,1,1,1,'admin','2021-01-05 17:03:48','','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1052,'任务删除','infra:job:delete',3,4,110,'','','',null,0,1,1,1,'admin','2021-01-05 17:03:48','','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1053,'状态修改','infra:job:update',3,5,110,'','','',null,0,1,1,1,'admin','2021-01-05 17:03:48','','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1054,'任务导出','infra:job:export',3,7,110,'','','',null,0,1,1,1,'admin','2021-01-05 17:03:48','','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1056,'生成修改','infra:codegen:update',3,2,115,'','','',null,0,1,1,1,'admin','2021-01-05 17:03:48','1','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1057,'生成删除','infra:codegen:delete',3,3,115,'','','',null,0,1,1,1,'admin','2021-01-05 17:03:48','1','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1058,'导入代码','infra:codegen:create',3,2,115,'','','',null,0,1,1,1,'admin','2021-01-05 17:03:48','1','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1059,'预览代码','infra:codegen:preview',3,4,115,'','','',null,0,1,1,1,'admin','2021-01-05 17:03:48','1','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1060,'生成代码','infra:codegen:download',3,5,115,'','','',null,0,1,1,1,'admin','2021-01-05 17:03:48','1','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1063,'设置角色菜单权限','system:permission:assign-role-menu',3,6,101,'','','',null,0,1,1,1,'','2021-01-06 17:53:44','','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1064,'设置角色数据权限','system:permission:assign-role-data-scope',3,7,101,'','','',null,0,1,1,1,'','2021-01-06 17:56:31','','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1065,'设置用户角色','system:permission:assign-user-role',3,8,101,'','','',null,0,1,1,1,'','2021-01-07 10:23:28','','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1066,'获得 Redis 监控信息','infra:redis:get-monitor-info',3,1,113,'','','',null,0,1,1,1,'','2021-01-26 01:02:31','','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1067,'获得 Redis Key 列表','infra:redis:get-key-list',3,2,113,'','','',null,0,1,1,1,'','2021-01-26 01:02:52','','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1070,'代码生成示例','infra:test-demo:query',2,1,2,'test-demo','validCode','infra/testDemo/index',null,0,1,1,1,'','2021-02-06 12:42:49','1','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1071,'测试示例表创建','infra:test-demo:create',3,1,1070,'','','',null,0,1,1,1,'','2021-02-06 12:42:49','1','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1072,'测试示例表更新','infra:test-demo:update',3,2,1070,'','','',null,0,1,1,1,'','2021-02-06 12:42:49','1','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1073,'测试示例表删除','infra:test-demo:delete',3,3,1070,'','','',null,0,1,1,1,'','2021-02-06 12:42:49','1','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1074,'测试示例表导出','infra:test-demo:export',3,4,1070,'','','',null,0,1,1,1,'','2021-02-06 12:42:49','1','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1075,'任务触发','infra:job:trigger',3,8,110,'','','',null,0,1,1,1,'','2021-02-07 13:03:10','','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1076,'数据库文档','',2,4,2,'db-doc','table','infra/dbDoc/index','InfraDBDoc',0,1,1,1,'','2021-02-08 01:41:47','1','2023-04-08 09:13:38',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1077,'监控平台','',2,13,2,'skywalking','eye-open','infra/skywalking/index','InfraSkyWalking',0,1,1,1,'','2021-02-08 20:41:31','1','2023-04-08 10:39:06',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1078,'访问日志','',2,1,1083,'api-access-log','log','infra/apiAccessLog/index','InfraApiAccessLog',0,1,1,1,'','2021-02-26 01:32:59','1','2023-04-08 10:31:34',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1082,'日志导出','infra:api-access-log:export',3,2,1078,'','','',null,0,1,1,1,'','2021-02-26 01:32:59','1','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1083,'API 日志','',2,8,2,'log','log',null,null,0,1,1,1,'','2021-02-26 02:18:24','1','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1084,'错误日志','infra:api-error-log:query',2,2,1083,'api-error-log','log','infra/apiErrorLog/index','InfraApiErrorLog',0,1,1,1,'','2021-02-26 07:53:20','1','2023-04-08 10:32:25',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1085,'日志处理','infra:api-error-log:update-status',3,2,1084,'','','',null,0,1,1,1,'','2021-02-26 07:53:20','1','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1086,'日志导出','infra:api-error-log:export',3,3,1084,'','','',null,0,1,1,1,'','2021-02-26 07:53:20','1','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1087,'任务查询','infra:job:query',3,1,110,'','','',null,0,1,1,1,'1','2021-03-10 01:26:19','1','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1088,'日志查询','infra:api-access-log:query',3,1,1078,'','','',null,0,1,1,1,'1','2021-03-10 01:28:04','1','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1089,'日志查询','infra:api-error-log:query',3,1,1084,'','','',null,0,1,1,1,'1','2021-03-10 01:29:09','1','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1090,'文件列表','',2,5,1243,'file','upload','infra/file/index','InfraFile',0,1,1,1,'','2021-03-12 20:16:20','1','2023-04-08 09:21:31',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1091,'文件查询','infra:file:query',3,1,1090,'','','',null,0,1,1,1,'','2021-03-12 20:16:20','','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1092,'文件删除','infra:file:delete',3,4,1090,'','','',null,0,1,1,1,'','2021-03-12 20:16:20','','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1093,'短信管理','',1,11,1,'sms','validCode',null,null,0,1,1,1,'1','2021-04-05 01:10:16','1','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1094,'短信渠道','',2,0,1093,'sms-channel','phone','system/sms/channel/index','SystemSmsChannel',0,1,1,1,'','2021-04-01 11:07:15','1','2023-04-08 08:50:41',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1095,'短信渠道查询','system:sms-channel:query',3,1,1094,'','','',null,0,1,1,1,'','2021-04-01 11:07:15','','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1096,'短信渠道创建','system:sms-channel:create',3,2,1094,'','','',null,0,1,1,1,'','2021-04-01 11:07:15','','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1097,'短信渠道更新','system:sms-channel:update',3,3,1094,'','','',null,0,1,1,1,'','2021-04-01 11:07:15','','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1098,'短信渠道删除','system:sms-channel:delete',3,4,1094,'','','',null,0,1,1,1,'','2021-04-01 11:07:15','','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1100,'短信模板','',2,1,1093,'sms-template','phone','system/sms/template/index','SystemSmsTemplate',0,1,1,1,'','2021-04-01 17:35:17','1','2023-04-08 08:50:50',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1101,'短信模板查询','system:sms-template:query',3,1,1100,'','','',null,0,1,1,1,'','2021-04-01 17:35:17','','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1102,'短信模板创建','system:sms-template:create',3,2,1100,'','','',null,0,1,1,1,'','2021-04-01 17:35:17','','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1103,'短信模板更新','system:sms-template:update',3,3,1100,'','','',null,0,1,1,1,'','2021-04-01 17:35:17','','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1104,'短信模板删除','system:sms-template:delete',3,4,1100,'','','',null,0,1,1,1,'','2021-04-01 17:35:17','','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1105,'短信模板导出','system:sms-template:export',3,5,1100,'','','',null,0,1,1,1,'','2021-04-01 17:35:17','','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1106,'发送测试短信','system:sms-template:send-sms',3,6,1100,'','','',null,0,1,1,1,'1','2021-04-11 00:26:40','1','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1107,'短信日志','',2,2,1093,'sms-log','phone','system/sms/log/index','SystemSmsLog',0,1,1,1,'','2021-04-11 08:37:05','1','2023-04-08 08:50:58',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1108,'短信日志查询','system:sms-log:query',3,1,1107,'','','',null,0,1,1,1,'','2021-04-11 08:37:05','','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1109,'短信日志导出','system:sms-log:export',3,5,1107,'','','',null,0,1,1,1,'','2021-04-11 08:37:05','','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1110,'错误码管理','',2,12,1,'error-code','code','system/errorCode/index','SystemErrorCode',0,1,1,1,'','2021-04-13 21:46:42','1','2023-04-08 09:01:15',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1111,'错误码查询','system:error-code:query',3,1,1110,'','','',null,0,1,1,1,'','2021-04-13 21:46:42','','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1112,'错误码创建','system:error-code:create',3,2,1110,'','','',null,0,1,1,1,'','2021-04-13 21:46:42','','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1113,'错误码更新','system:error-code:update',3,3,1110,'','','',null,0,1,1,1,'','2021-04-13 21:46:42','','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1114,'错误码删除','system:error-code:delete',3,4,1110,'','','',null,0,1,1,1,'','2021-04-13 21:46:42','','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1115,'错误码导出','system:error-code:export',3,5,1110,'','','',null,0,1,1,1,'','2021-04-13 21:46:42','','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1117,'支付管理','',1,30,0,'/pay','money',null,null,0,1,1,1,'1','2021-12-25 16:43:41','1','2022-12-10 16:33:19',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1118,'请假查询','',2,0,5,'leave','user','bpm/oa/leave/index','BpmOALeave',0,1,1,1,'','2021-09-20 08:51:03','1','2023-04-08 11:30:40',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1119,'请假申请查询','bpm:oa-leave:query',3,1,1118,'','','',null,0,1,1,1,'','2021-09-20 08:51:03','1','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1120,'请假申请创建','bpm:oa-leave:create',3,2,1118,'','','',null,0,1,1,1,'','2021-09-20 08:51:03','1','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1126,'应用信息','',2,1,1117,'app','table','pay/app/index','PayMerchant',0,1,1,1,'','2021-11-10 01:13:30','1','2023-04-08 10:43:14',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1127,'支付应用信息查询','pay:app:query',3,1,1126,'','','',null,0,1,1,1,'','2021-11-10 01:13:31','','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1128,'支付应用信息创建','pay:app:create',3,2,1126,'','','',null,0,1,1,1,'','2021-11-10 01:13:31','','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1129,'支付应用信息更新','pay:app:update',3,3,1126,'','','',null,0,1,1,1,'','2021-11-10 01:13:31','','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1130,'支付应用信息删除','pay:app:delete',3,4,1126,'','','',null,0,1,1,1,'','2021-11-10 01:13:31','','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1131,'支付应用信息导出','pay:app:export',3,5,1126,'','','',null,0,1,1,1,'','2021-11-10 01:13:31','','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1132,'秘钥解析','pay:channel:parsing',3,6,1129,'','','',null,0,1,1,1,'1','2021-11-08 15:15:47','1','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1133,'支付商户信息查询','pay:merchant:query',3,1,1132,'','','',null,0,1,1,1,'','2021-11-10 01:13:41','','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1134,'支付商户信息创建','pay:merchant:create',3,2,1132,'','','',null,0,1,1,1,'','2021-11-10 01:13:41','','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1135,'支付商户信息更新','pay:merchant:update',3,3,1132,'','','',null,0,1,1,1,'','2021-11-10 01:13:41','','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1136,'支付商户信息删除','pay:merchant:delete',3,4,1132,'','','',null,0,1,1,1,'','2021-11-10 01:13:41','','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1137,'支付商户信息导出','pay:merchant:export',3,5,1132,'','','',null,0,1,1,1,'','2021-11-10 01:13:41','','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1138,'租户列表','',2,0,1224,'list','peoples','system/tenant/index','SystemTenant',0,1,1,1,'','2021-12-14 12:31:43','1','2023-04-08 08:29:08',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1139,'租户查询','system:tenant:query',3,1,1138,'','','',null,0,1,1,1,'','2021-12-14 12:31:44','','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1140,'租户创建','system:tenant:create',3,2,1138,'','','',null,0,1,1,1,'','2021-12-14 12:31:44','','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1141,'租户更新','system:tenant:update',3,3,1138,'','','',null,0,1,1,1,'','2021-12-14 12:31:44','','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1142,'租户删除','system:tenant:delete',3,4,1138,'','','',null,0,1,1,1,'','2021-12-14 12:31:44','','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1143,'租户导出','system:tenant:export',3,5,1138,'','','',null,0,1,1,1,'','2021-12-14 12:31:44','','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1150,'秘钥解析','',3,6,1129,'','','',null,0,1,1,1,'1','2021-11-08 15:15:47','1','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1161,'退款订单','',2,3,1117,'refund','order','pay/refund/index','PayRefund',0,1,1,1,'','2021-12-25 08:29:07','1','2023-04-08 10:46:02',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1162,'退款订单查询','pay:refund:query',3,1,1161,'','','',null,0,1,1,1,'','2021-12-25 08:29:07','','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1163,'退款订单创建','pay:refund:create',3,2,1161,'','','',null,0,1,1,1,'','2021-12-25 08:29:07','','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1164,'退款订单更新','pay:refund:update',3,3,1161,'','','',null,0,1,1,1,'','2021-12-25 08:29:07','','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1165,'退款订单删除','pay:refund:delete',3,4,1161,'','','',null,0,1,1,1,'','2021-12-25 08:29:07','','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1166,'退款订单导出','pay:refund:export',3,5,1161,'','','',null,0,1,1,1,'','2021-12-25 08:29:07','','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1173,'支付订单','',2,2,1117,'order','pay','pay/order/index','PayOrder',0,1,1,1,'','2021-12-25 08:49:43','1','2023-04-08 10:43:37',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1174,'支付订单查询','pay:order:query',3,1,1173,'','','',null,0,1,1,1,'','2021-12-25 08:49:43','','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1175,'支付订单创建','pay:order:create',3,2,1173,'','','',null,0,1,1,1,'','2021-12-25 08:49:43','','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1176,'支付订单更新','pay:order:update',3,3,1173,'','','',null,0,1,1,1,'','2021-12-25 08:49:43','','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1177,'支付订单删除','pay:order:delete',3,4,1173,'','','',null,0,1,1,1,'','2021-12-25 08:49:43','','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1178,'支付订单导出','pay:order:export',3,5,1173,'','','',null,0,1,1,1,'','2021-12-25 08:49:43','','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1179,'商户信息','',2,0,1117,'merchant','merchant','pay/merchant/index','PayApp',0,1,1,1,'','2021-12-25 09:01:44','1','2023-04-08 10:42:32',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1180,'支付商户信息查询','pay:merchant:query',3,1,1179,'','','',null,0,1,1,1,'','2021-12-25 09:01:44','','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1181,'支付商户信息创建','pay:merchant:create',3,2,1179,'','','',null,0,1,1,1,'','2021-12-25 09:01:44','','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1182,'支付商户信息更新','pay:merchant:update',3,3,1179,'','','',null,0,1,1,1,'','2021-12-25 09:01:44','','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1183,'支付商户信息删除','',3,4,1179,'','','',null,0,1,1,1,'','2021-12-25 09:01:44','','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1184,'支付商户信息导出','pay:merchant:export',3,5,1179,'','','',null,0,1,1,1,'','2021-12-25 09:01:44','','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1185,'工作流程','',1,50,0,'/bpm','tool',null,null,0,1,1,1,'1','2021-12-30 20:26:36','103','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1186,'流程管理','',1,10,1185,'manager','nested',null,null,0,1,1,1,'1','2021-12-30 20:28:30','1','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1187,'流程表单','',2,0,1186,'form','form','bpm/form/index','BpmForm',0,1,1,1,'','2021-12-30 12:38:22','1','2023-04-08 10:50:37',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1188,'表单查询','bpm:form:query',3,1,1187,'','','',null,0,1,1,1,'','2021-12-30 12:38:22','1','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1189,'表单创建','bpm:form:create',3,2,1187,'','','',null,0,1,1,1,'','2021-12-30 12:38:22','1','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1190,'表单更新','bpm:form:update',3,3,1187,'','','',null,0,1,1,1,'','2021-12-30 12:38:22','1','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1191,'表单删除','bpm:form:delete',3,4,1187,'','','',null,0,1,1,1,'','2021-12-30 12:38:22','1','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1192,'表单导出','bpm:form:export',3,5,1187,'','','',null,0,1,1,1,'','2021-12-30 12:38:22','1','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1193,'流程模型','',2,5,1186,'model','guide','bpm/model/index','BpmModel',0,1,1,1,'1','2021-12-31 23:24:58','1','2023-04-08 10:53:38',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1194,'模型查询','bpm:model:query',3,1,1193,'','','',null,0,1,1,1,'1','2022-01-03 19:01:10','1','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1195,'模型创建','bpm:model:create',3,2,1193,'','','',null,0,1,1,1,'1','2022-01-03 19:01:24','1','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1196,'模型导入','bpm:model:import',3,3,1193,'','','',null,0,1,1,1,'1','2022-01-03 19:01:35','1','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1197,'模型更新','bpm:model:update',3,4,1193,'','','',null,0,1,1,1,'1','2022-01-03 19:02:28','1','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1198,'模型删除','bpm:model:delete',3,5,1193,'','','',null,0,1,1,1,'1','2022-01-03 19:02:43','1','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1199,'模型发布','bpm:model:deploy',3,6,1193,'','','',null,0,1,1,1,'1','2022-01-03 19:03:24','1','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1200,'任务管理','',1,20,1185,'task','cascader',null,null,0,1,1,1,'1','2022-01-07 23:51:48','1','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1201,'我的流程','',2,0,1200,'my','people','bpm/processInstance/index','BpmProcessInstance',0,1,1,1,'','2022-01-07 15:53:44','1','2023-04-08 11:16:55',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1202,'流程实例的查询','bpm:process-instance:query',3,1,1201,'','','',null,0,1,1,1,'','2022-01-07 15:53:44','1','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1207,'待办任务','',2,10,1200,'todo','eye-open','bpm/task/todo/index','BpmTodoTask',0,1,1,1,'1','2022-01-08 10:33:37','1','2023-04-08 11:29:08',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1208,'已办任务','',2,20,1200,'done','eye','bpm/task/done/index','BpmDoneTask',0,1,1,1,'1','2022-01-08 10:34:13','1','2023-04-08 11:29:00',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1209,'用户分组','',2,2,1186,'user-group','people','bpm/group/index','BpmUserGroup',0,1,1,1,'','2022-01-14 02:14:20','1','2023-04-08 10:51:06',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1210,'用户组查询','bpm:user-group:query',3,1,1209,'','','',null,0,1,1,1,'','2022-01-14 02:14:20','','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1211,'用户组创建','bpm:user-group:create',3,2,1209,'','','',null,0,1,1,1,'','2022-01-14 02:14:20','','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1212,'用户组更新','bpm:user-group:update',3,3,1209,'','','',null,0,1,1,1,'','2022-01-14 02:14:20','','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1213,'用户组删除','bpm:user-group:delete',3,4,1209,'','','',null,0,1,1,1,'','2022-01-14 02:14:20','','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1215,'流程定义查询','bpm:process-definition:query',3,10,1193,'','','',null,0,1,1,1,'1','2022-01-23 00:21:43','1','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1216,'流程任务分配规则查询','bpm:task-assign-rule:query',3,20,1193,'','','',null,0,1,1,1,'1','2022-01-23 00:26:53','1','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1217,'流程任务分配规则创建','bpm:task-assign-rule:create',3,21,1193,'','','',null,0,1,1,1,'1','2022-01-23 00:28:15','1','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1218,'流程任务分配规则更新','bpm:task-assign-rule:update',3,22,1193,'','','',null,0,1,1,1,'1','2022-01-23 00:28:41','1','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1219,'流程实例的创建','bpm:process-instance:create',3,2,1201,'','','',null,0,1,1,1,'1','2022-01-23 00:36:15','1','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1220,'流程实例的取消','bpm:process-instance:cancel',3,3,1201,'','','',null,0,1,1,1,'1','2022-01-23 00:36:33','1','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1221,'流程任务的查询','bpm:task:query',3,1,1207,'','','',null,0,1,1,1,'1','2022-01-23 00:38:52','1','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1222,'流程任务的更新','bpm:task:update',3,2,1207,'','','',null,0,1,1,1,'1','2022-01-23 00:39:24','1','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1224,'租户管理','',2,0,1,'tenant','peoples',null,null,0,1,1,1,'1','2022-02-20 01:41:13','1','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1225,'租户套餐','',2,0,1224,'package','eye','system/tenantPackage/index','SystemTenantPackage',0,1,1,1,'','2022-02-19 17:44:06','1','2023-04-08 08:17:08',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1226,'租户套餐查询','system:tenant-package:query',3,1,1225,'','','',null,0,1,1,1,'','2022-02-19 17:44:06','','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1227,'租户套餐创建','system:tenant-package:create',3,2,1225,'','','',null,0,1,1,1,'','2022-02-19 17:44:06','','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1228,'租户套餐更新','system:tenant-package:update',3,3,1225,'','','',null,0,1,1,1,'','2022-02-19 17:44:06','','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1229,'租户套餐删除','system:tenant-package:delete',3,4,1225,'','','',null,0,1,1,1,'','2022-02-19 17:44:06','','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1237,'文件配置','',2,0,1243,'file-config','config','infra/fileConfig/index','InfraFileConfig',0,1,1,1,'','2022-03-15 14:35:28','1','2023-04-08 09:16:05',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1238,'文件配置查询','infra:file-config:query',3,1,1237,'','','',null,0,1,1,1,'','2022-03-15 14:35:28','','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1239,'文件配置创建','infra:file-config:create',3,2,1237,'','','',null,0,1,1,1,'','2022-03-15 14:35:28','','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1240,'文件配置更新','infra:file-config:update',3,3,1237,'','','',null,0,1,1,1,'','2022-03-15 14:35:28','','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1241,'文件配置删除','infra:file-config:delete',3,4,1237,'','','',null,0,1,1,1,'','2022-03-15 14:35:28','','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1242,'文件配置导出','infra:file-config:export',3,5,1237,'','','',null,0,1,1,1,'','2022-03-15 14:35:28','','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1243,'文件管理','',2,5,2,'file','download',null,'',0,1,1,1,'1','2022-03-16 23:47:40','1','2023-02-10 13:47:46',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1247,'敏感词管理','',2,13,1,'sensitive-word','education','system/sensitiveWord/index','SystemSensitiveWord',0,1,1,1,'','2022-04-07 16:55:03','1','2023-04-08 09:00:40',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1248,'敏感词查询','system:sensitive-word:query',3,1,1247,'','','',null,0,1,1,1,'','2022-04-07 16:55:03','','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1249,'敏感词创建','system:sensitive-word:create',3,2,1247,'','','',null,0,1,1,1,'','2022-04-07 16:55:03','','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1250,'敏感词更新','system:sensitive-word:update',3,3,1247,'','','',null,0,1,1,1,'','2022-04-07 16:55:03','','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1251,'敏感词删除','system:sensitive-word:delete',3,4,1247,'','','',null,0,1,1,1,'','2022-04-07 16:55:03','','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1252,'敏感词导出','system:sensitive-word:export',3,5,1247,'','','',null,0,1,1,1,'','2022-04-07 16:55:03','','2022-04-20 17:03:10',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1254,'作者动态','',1,0,0,'https://www.iocoder.cn','people',null,null,0,1,1,1,'1','2022-04-23 01:03:15','1','2023-02-10 00:06:52',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1255,'数据源配置','',2,1,2,'data-source-config','rate','infra/dataSourceConfig/index','InfraDataSourceConfig',0,1,1,1,'','2022-04-27 14:37:32','1','2023-04-08 09:05:21',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1256,'数据源配置查询','infra:data-source-config:query',3,1,1255,'','','',null,0,1,1,1,'','2022-04-27 14:37:32','','2022-04-27 14:37:32',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1257,'数据源配置创建','infra:data-source-config:create',3,2,1255,'','','',null,0,1,1,1,'','2022-04-27 14:37:32','','2022-04-27 14:37:32',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1258,'数据源配置更新','infra:data-source-config:update',3,3,1255,'','','',null,0,1,1,1,'','2022-04-27 14:37:32','','2022-04-27 14:37:32',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1259,'数据源配置删除','infra:data-source-config:delete',3,4,1255,'','','',null,0,1,1,1,'','2022-04-27 14:37:32','','2022-04-27 14:37:32',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1260,'数据源配置导出','infra:data-source-config:export',3,5,1255,'','','',null,0,1,1,1,'','2022-04-27 14:37:32','','2022-04-27 14:37:32',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1261,'OAuth 2.0','',1,10,1,'oauth2','people',null,null,0,1,1,1,'1','2022-05-09 23:38:17','1','2022-05-11 23:51:46',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1263,'应用管理','',2,0,1261,'oauth2/application','tool','system/oauth2/client/index','SystemOAuth2Client',0,1,1,1,'','2022-05-10 16:26:33','1','2023-04-08 08:47:31',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1264,'客户端查询','system:oauth2-client:query',3,1,1263,'','','',null,0,1,1,1,'','2022-05-10 16:26:33','1','2022-05-11 00:31:06',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1265,'客户端创建','system:oauth2-client:create',3,2,1263,'','','',null,0,1,1,1,'','2022-05-10 16:26:33','1','2022-05-11 00:31:23',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1266,'客户端更新','system:oauth2-client:update',3,3,1263,'','','',null,0,1,1,1,'','2022-05-10 16:26:33','1','2022-05-11 00:31:28',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1267,'客户端删除','system:oauth2-client:delete',3,4,1263,'','','',null,0,1,1,1,'','2022-05-10 16:26:33','1','2022-05-11 00:31:33',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1281,'报表管理','',1,40,0,'/report','chart',null,null,0,1,1,1,'1','2022-07-10 20:22:15','1','2023-02-07 17:16:40',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1282,'报表设计器','',2,1,1281,'jimu-report','example','report/jmreport/index','GoView',0,1,1,1,'1','2022-07-10 20:26:36','1','2023-04-08 10:47:59',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2000,'商品中心','',1,60,0,'/product','merchant',null,null,0,1,1,1,'','2022-07-29 15:53:53','1','2022-07-30 22:26:19',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2002,'商品分类','',2,2,2000,'category','dict','mall/product/category/index','ProductCategory',0,1,1,1,'','2022-07-29 15:53:53','1','2023-04-08 11:34:59',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2003,'分类查询','product:category:query',3,1,2002,'','','',null,0,1,1,1,'','2022-07-29 15:53:53','','2022-07-29 15:53:53',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2004,'分类创建','product:category:create',3,2,2002,'','','',null,0,1,1,1,'','2022-07-29 15:53:53','','2022-07-29 15:53:53',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2005,'分类更新','product:category:update',3,3,2002,'','','',null,0,1,1,1,'','2022-07-29 15:53:53','','2022-07-29 15:53:53',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2006,'分类删除','product:category:delete',3,4,2002,'','','',null,0,1,1,1,'','2022-07-29 15:53:53','','2022-07-29 15:53:53',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2008,'商品品牌','',2,3,2000,'brand','dashboard','mall/product/brand/index','ProductBrand',0,1,1,1,'','2022-07-30 13:52:44','1','2023-04-08 11:35:29',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2009,'品牌查询','product:brand:query',3,1,2008,'','','',null,0,1,1,1,'','2022-07-30 13:52:44','','2022-07-30 13:52:44',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2010,'品牌创建','product:brand:create',3,2,2008,'','','',null,0,1,1,1,'','2022-07-30 13:52:44','','2022-07-30 13:52:44',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2011,'品牌更新','product:brand:update',3,3,2008,'','','',null,0,1,1,1,'','2022-07-30 13:52:44','','2022-07-30 13:52:44',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2012,'品牌删除','product:brand:delete',3,4,2008,'','','',null,0,1,1,1,'','2022-07-30 13:52:44','','2022-07-30 13:52:44',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2014,'商品列表','',2,1,2000,'spu','list','mall/product/spu/index','ProductSpu',0,1,1,1,'','2022-07-30 14:22:58','1','2023-04-08 11:34:47',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2015,'商品查询','product:spu:query',3,1,2014,'','','',null,0,1,1,1,'','2022-07-30 14:22:58','','2022-07-30 14:22:58',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2016,'商品创建','product:spu:create',3,2,2014,'','','',null,0,1,1,1,'','2022-07-30 14:22:58','','2022-07-30 14:22:58',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2017,'商品更新','product:spu:update',3,3,2014,'','','',null,0,1,1,1,'','2022-07-30 14:22:58','','2022-07-30 14:22:58',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2018,'商品删除','product:spu:delete',3,4,2014,'','','',null,0,1,1,1,'','2022-07-30 14:22:58','','2022-07-30 14:22:58',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2019,'商品属性','',2,3,2000,'property','eye','mall/product/property/index','ProductProperty',0,1,1,1,'','2022-08-01 14:55:35','1','2023-04-08 11:35:15',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2020,'规格查询','product:property:query',3,1,2019,'','','',null,0,1,1,1,'','2022-08-01 14:55:35','','2022-12-12 20:26:24',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2021,'规格创建','product:property:create',3,2,2019,'','','',null,0,1,1,1,'','2022-08-01 14:55:35','','2022-12-12 20:26:30',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2022,'规格更新','product:property:update',3,3,2019,'','','',null,0,1,1,1,'','2022-08-01 14:55:35','','2022-12-12 20:26:33',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2023,'规格删除','product:property:delete',3,4,2019,'','','',null,0,1,1,1,'','2022-08-01 14:55:35','','2022-12-12 20:26:37',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2025,'Banner管理','',2,100,2000,'banner','','mall/market/banner/index',null,0,1,1,1,'','2022-08-01 14:56:14','1','2022-10-24 22:29:39',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2026,'Banner查询','market:banner:query',3,1,2025,'','','',null,0,1,1,1,'','2022-08-01 14:56:14','','2022-08-01 14:56:14',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2027,'Banner创建','market:banner:create',3,2,2025,'','','',null,0,1,1,1,'','2022-08-01 14:56:14','','2022-08-01 14:56:14',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2028,'Banner更新','market:banner:update',3,3,2025,'','','',null,0,1,1,1,'','2022-08-01 14:56:14','','2022-08-01 14:56:14',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2029,'Banner删除','market:banner:delete',3,4,2025,'','','',null,0,1,1,1,'','2022-08-01 14:56:14','','2022-08-01 14:56:14',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2030,'营销中心','',1,70,0,'/promotion','rate',null,null,0,1,1,1,'1','2022-10-31 21:25:09','1','2022-10-31 21:25:09',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2032,'优惠劵','',2,2,2030,'coupon-template','textarea','mall/promotion/couponTemplate/index','PromotionCouponTemplate',0,1,1,1,'','2022-10-31 22:27:14','1','2023-04-08 11:44:23',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2033,'优惠劵模板查询','promotion:coupon-template:query',3,1,2032,'','','',null,0,1,1,1,'','2022-10-31 22:27:14','','2022-10-31 22:27:14',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2034,'优惠劵模板创建','promotion:coupon-template:create',3,2,2032,'','','',null,0,1,1,1,'','2022-10-31 22:27:14','','2022-10-31 22:27:14',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2035,'优惠劵模板更新','promotion:coupon-template:update',3,3,2032,'','','',null,0,1,1,1,'','2022-10-31 22:27:14','','2022-10-31 22:27:14',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2036,'优惠劵模板删除','promotion:coupon-template:delete',3,4,2032,'','','',null,0,1,1,1,'','2022-10-31 22:27:14','','2022-10-31 22:27:14',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2038,'会员优惠劵','',2,2,2030,'coupon','','mall/promotion/coupon/index','PromotionCoupon',0,0,1,1,'','2022-11-03 23:21:31','1','2023-04-08 11:44:17',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2039,'优惠劵查询','promotion:coupon:query',3,1,2038,'','','',null,0,1,1,1,'','2022-11-03 23:21:31','','2022-11-03 23:21:31',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2040,'优惠劵删除','promotion:coupon:delete',3,4,2038,'','','',null,0,1,1,1,'','2022-11-03 23:21:31','','2022-11-03 23:21:31',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2041,'满减送活动','',2,10,2030,'reward-activity','radio','mall/promotion/rewardActivity/index','PromotionRewardActivity',0,1,1,1,'','2022-11-04 23:47:49','1','2023-04-08 11:45:35',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2042,'满减送活动查询','promotion:reward-activity:query',3,1,2041,'','','',null,0,1,1,1,'','2022-11-04 23:47:49','','2022-11-04 23:47:49',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2043,'满减送活动创建','promotion:reward-activity:create',3,2,2041,'','','',null,0,1,1,1,'','2022-11-04 23:47:49','','2022-11-04 23:47:49',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2044,'满减送活动更新','promotion:reward-activity:update',3,3,2041,'','','',null,0,1,1,1,'','2022-11-04 23:47:50','','2022-11-04 23:47:50',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2045,'满减送活动删除','promotion:reward-activity:delete',3,4,2041,'','','',null,0,1,1,1,'','2022-11-04 23:47:50','','2022-11-04 23:47:50',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2046,'满减送活动关闭','promotion:reward-activity:close',3,5,2041,'','','',null,0,1,1,1,'1','2022-11-05 10:42:53','1','2022-11-05 10:42:53',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2047,'限时折扣活动','',2,7,2030,'discount-activity','time','mall/promotion/discountActivity/index','PromotionDiscountActivity',0,1,1,1,'','2022-11-05 17:12:15','1','2023-04-08 11:45:44',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2048,'限时折扣活动查询','promotion:discount-activity:query',3,1,2047,'','','',null,0,1,1,1,'','2022-11-05 17:12:15','','2022-11-05 17:12:15',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID", "NAME", "PERMISSION", "TYPE", "SORT", "PARENT_ID", "PATH", "ICON", + "COMPONENT", "COMPONENT_NAME", "STATUS", "VISIBLE", "KEEP_ALIVE", + "ALWAYS_SHOW", "CREATOR", "CREATE_TIME", "UPDATER", "UPDATE_TIME", "DELETED") +VALUES (2049, '限时折扣活动创建', 'promotion:discount-activity:create', 3, 2, 2047, '', '', '', null, 0, 1, 1, 1, '', + '2022-11-05 17:12:15', '', '2022-11-05 17:12:15', 0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID", "NAME", "PERMISSION", "TYPE", "SORT", "PARENT_ID", "PATH", "ICON", + "COMPONENT", "COMPONENT_NAME", "STATUS", "VISIBLE", "KEEP_ALIVE", + "ALWAYS_SHOW", "CREATOR", "CREATE_TIME", "UPDATER", "UPDATE_TIME", "DELETED") +VALUES (2050, '限时折扣活动更新', 'promotion:discount-activity:update', 3, 3, 2047, '', '', '', null, 0, 1, 1, 1, '', + '2022-11-05 17:12:16', '', '2022-11-05 17:12:16', 0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID", "NAME", "PERMISSION", "TYPE", "SORT", "PARENT_ID", "PATH", "ICON", + "COMPONENT", "COMPONENT_NAME", "STATUS", "VISIBLE", "KEEP_ALIVE", + "ALWAYS_SHOW", "CREATOR", "CREATE_TIME", "UPDATER", "UPDATE_TIME", "DELETED") +VALUES (2051, '限时折扣活动删除', 'promotion:discount-activity:delete', 3, 4, 2047, '', '', '', null, 0, 1, 1, 1, '', + '2022-11-05 17:12:16', '', '2022-11-05 17:12:16', 0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID", "NAME", "PERMISSION", "TYPE", "SORT", "PARENT_ID", "PATH", "ICON", + "COMPONENT", "COMPONENT_NAME", "STATUS", "VISIBLE", "KEEP_ALIVE", + "ALWAYS_SHOW", "CREATOR", "CREATE_TIME", "UPDATER", "UPDATE_TIME", "DELETED") +VALUES (2052, '限时折扣活动关闭', 'promotion:discount-activity:close', 3, 5, 2047, '', '', '', null, 0, 1, 1, 1, '', + '2022-11-05 17:12:16', '', '2022-11-05 17:12:16', 0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID", "NAME", "PERMISSION", "TYPE", "SORT", "PARENT_ID", "PATH", "ICON", + "COMPONENT", "COMPONENT_NAME", "STATUS", "VISIBLE", "KEEP_ALIVE", + "ALWAYS_SHOW", "CREATOR", "CREATE_TIME", "UPDATER", "UPDATE_TIME", "DELETED") +VALUES (2059, '秒杀活动管理', '', 2, 0, 2030, 'seckill-activity', 'time-range', + 'mall/promotion/seckill/seckillActivity/index', 'PromotionSeckillActivity', 0, 1, 1, 1, '', + '2022-11-06 22:24:49', '1', '2023-04-08 11:46:02', 0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID", "NAME", "PERMISSION", "TYPE", "SORT", "PARENT_ID", "PATH", "ICON", + "COMPONENT", "COMPONENT_NAME", "STATUS", "VISIBLE", "KEEP_ALIVE", + "ALWAYS_SHOW", "CREATOR", "CREATE_TIME", "UPDATER", "UPDATE_TIME", "DELETED") +VALUES (2060, '秒杀活动查询', 'promotion:seckill-activity:query', 3, 1, 2059, '', '', '', null, 0, 1, 1, 1, '', + '2022-11-06 22:24:49', '', '2022-11-06 22:24:49', 0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID", "NAME", "PERMISSION", "TYPE", "SORT", "PARENT_ID", "PATH", "ICON", + "COMPONENT", "COMPONENT_NAME", "STATUS", "VISIBLE", "KEEP_ALIVE", + "ALWAYS_SHOW", "CREATOR", "CREATE_TIME", "UPDATER", "UPDATE_TIME", "DELETED") +VALUES (2061, '秒杀活动创建', 'promotion:seckill-activity:create', 3, 2, 2059, '', '', '', null, 0, 1, 1, 1, '', + '2022-11-06 22:24:49', '', '2022-11-06 22:24:49', 0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID", "NAME", "PERMISSION", "TYPE", "SORT", "PARENT_ID", "PATH", "ICON", + "COMPONENT", "COMPONENT_NAME", "STATUS", "VISIBLE", "KEEP_ALIVE", + "ALWAYS_SHOW", "CREATOR", "CREATE_TIME", "UPDATER", "UPDATE_TIME", "DELETED") +VALUES (2062, '秒杀活动更新', 'promotion:seckill-activity:update', 3, 3, 2059, '', '', '', null, 0, 1, 1, 1, '', + '2022-11-06 22:24:49', '', '2022-11-06 22:24:49', 0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID", "NAME", "PERMISSION", "TYPE", "SORT", "PARENT_ID", "PATH", "ICON", + "COMPONENT", "COMPONENT_NAME", "STATUS", "VISIBLE", "KEEP_ALIVE", + "ALWAYS_SHOW", "CREATOR", "CREATE_TIME", "UPDATER", "UPDATE_TIME", "DELETED") +VALUES (2063, '秒杀活动删除', 'promotion:seckill-activity:delete', 3, 4, 2059, '', '', '', null, 0, 1, 1, 1, '', + '2022-11-06 22:24:49', '', '2022-11-06 22:24:49', 0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID", "NAME", "PERMISSION", "TYPE", "SORT", "PARENT_ID", "PATH", "ICON", + "COMPONENT", "COMPONENT_NAME", "STATUS", "VISIBLE", "KEEP_ALIVE", + "ALWAYS_SHOW", "CREATOR", "CREATE_TIME", "UPDATER", "UPDATE_TIME", "DELETED") +VALUES (2064, '秒杀活动导出', 'promotion:seckill-activity:export', 3, 5, 2059, '', '', '', null, 0, 1, 1, 1, '', + '2022-11-06 22:24:49', '', '2022-11-06 22:24:49', 0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID", "NAME", "PERMISSION", "TYPE", "SORT", "PARENT_ID", "PATH", "ICON", + "COMPONENT", "COMPONENT_NAME", "STATUS", "VISIBLE", "KEEP_ALIVE", + "ALWAYS_SHOW", "CREATOR", "CREATE_TIME", "UPDATER", "UPDATE_TIME", "DELETED") +VALUES (2066, '秒杀时段管理', '', 2, 0, 2030, 'seckill-time', '', 'mall/promotion/seckill/SeckillConfig/index', + 'PromotionSeckillConfig', 0, 0, 1, 1, '', '2022-11-15 19:46:50', '1', '2023-04-08 11:46:17', 0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID", "NAME", "PERMISSION", "TYPE", "SORT", "PARENT_ID", "PATH", "ICON", + "COMPONENT", "COMPONENT_NAME", "STATUS", "VISIBLE", "KEEP_ALIVE", + "ALWAYS_SHOW", "CREATOR", "CREATE_TIME", "UPDATER", "UPDATE_TIME", "DELETED") +VALUES (2067, '秒杀时段查询', 'promotion:seckill-time:query', 3, 1, 2066, '', '', '', null, 0, 1, 1, 1, '', + '2022-11-15 19:46:51', '', '2022-11-15 19:46:51', 0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID", "NAME", "PERMISSION", "TYPE", "SORT", "PARENT_ID", "PATH", "ICON", + "COMPONENT", "COMPONENT_NAME", "STATUS", "VISIBLE", "KEEP_ALIVE", + "ALWAYS_SHOW", "CREATOR", "CREATE_TIME", "UPDATER", "UPDATE_TIME", "DELETED") +VALUES (2068, '秒杀时段创建', 'promotion:seckill-time:create', 3, 2, 2066, '', '', '', null, 0, 1, 1, 1, '', + '2022-11-15 19:46:51', '', '2022-11-15 19:46:51', 0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID", "NAME", "PERMISSION", "TYPE", "SORT", "PARENT_ID", "PATH", "ICON", + "COMPONENT", "COMPONENT_NAME", "STATUS", "VISIBLE", "KEEP_ALIVE", + "ALWAYS_SHOW", "CREATOR", "CREATE_TIME", "UPDATER", "UPDATE_TIME", "DELETED") +VALUES (2069, '秒杀时段更新', 'promotion:seckill-time:update', 3, 3, 2066, '', '', '', null, 0, 1, 1, 1, '', + '2022-11-15 19:46:51', '', '2022-11-15 19:46:51', 0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID", "NAME", "PERMISSION", "TYPE", "SORT", "PARENT_ID", "PATH", "ICON", + "COMPONENT", "COMPONENT_NAME", "STATUS", "VISIBLE", "KEEP_ALIVE", + "ALWAYS_SHOW", "CREATOR", "CREATE_TIME", "UPDATER", "UPDATE_TIME", "DELETED") +VALUES (2070, '秒杀时段删除', 'promotion:seckill-time:delete', 3, 4, 2066, '', '', '', null, 0, 1, 1, 1, '', + '2022-11-15 19:46:51', '', '2022-11-15 19:46:51', 0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID", "NAME", "PERMISSION", "TYPE", "SORT", "PARENT_ID", "PATH", "ICON", + "COMPONENT", "COMPONENT_NAME", "STATUS", "VISIBLE", "KEEP_ALIVE", + "ALWAYS_SHOW", "CREATOR", "CREATE_TIME", "UPDATER", "UPDATE_TIME", "DELETED") +VALUES (2071, '秒杀时段导出', 'promotion:seckill-time:export', 3, 5, 2066, '', '', '', null, 0, 1, 1, 1, '', + '2022-11-15 19:46:51', '', '2022-11-15 19:46:51', 0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID", "NAME", "PERMISSION", "TYPE", "SORT", "PARENT_ID", "PATH", "ICON", + "COMPONENT", "COMPONENT_NAME", "STATUS", "VISIBLE", "KEEP_ALIVE", + "ALWAYS_SHOW", "CREATOR", "CREATE_TIME", "UPDATER", "UPDATE_TIME", "DELETED") +VALUES (2072, '订单中心', '', 1, 65, 0, '/trade', 'order', null, null, 0, 1, 1, 1, '1', '2022-11-19 18:57:19', '1', + '2022-12-10 16:32:57', 0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID", "NAME", "PERMISSION", "TYPE", "SORT", "PARENT_ID", "PATH", "ICON", + "COMPONENT", "COMPONENT_NAME", "STATUS", "VISIBLE", "KEEP_ALIVE", + "ALWAYS_SHOW", "CREATOR", "CREATE_TIME", "UPDATER", "UPDATE_TIME", "DELETED") +VALUES (2073, '售后退款', '', 2, 1, 2072, 'trade/after-sale', 'education', 'mall/trade/afterSale/index', + 'TradeAfterSale', 0, 1, 1, 1, '', '2022-11-19 20:15:32', '1', '2023-04-08 11:43:19', 0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID", "NAME", "PERMISSION", "TYPE", "SORT", "PARENT_ID", "PATH", "ICON", + "COMPONENT", "COMPONENT_NAME", "STATUS", "VISIBLE", "KEEP_ALIVE", + "ALWAYS_SHOW", "CREATOR", "CREATE_TIME", "UPDATER", "UPDATE_TIME", "DELETED") +VALUES (2074, '售后查询', 'trade:after-sale:query', 3, 1, 2073, '', '', '', null, 0, 1, 1, 1, '', '2022-11-19 20:15:33', + '1', '2022-12-10 21:04:29', 0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID", "NAME", "PERMISSION", "TYPE", "SORT", "PARENT_ID", "PATH", "ICON", + "COMPONENT", "COMPONENT_NAME", "STATUS", "VISIBLE", "KEEP_ALIVE", + "ALWAYS_SHOW", "CREATOR", "CREATE_TIME", "UPDATER", "UPDATE_TIME", "DELETED") +VALUES (2075, '秒杀活动关闭', 'promotion:sekill-activity:close', 3, 6, 2059, '', '', '', null, 0, 1, 1, 1, '1', + '2022-11-28 20:20:15', '1', '2022-11-28 20:20:15', 0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID", "NAME", "PERMISSION", "TYPE", "SORT", "PARENT_ID", "PATH", "ICON", + "COMPONENT", "COMPONENT_NAME", "STATUS", "VISIBLE", "KEEP_ALIVE", + "ALWAYS_SHOW", "CREATOR", "CREATE_TIME", "UPDATER", "UPDATE_TIME", "DELETED") +VALUES (2076, '订单列表', '', 2, 0, 2072, 'trade/order', 'list', 'mall/trade/order/index', 'TradeOrder', 0, 1, 1, 1, + '1', '2022-12-10 21:05:44', '1', '2023-04-08 11:42:23', 0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2077,'物流公司管理管理','',2,0,2072,'express-company','','mall/trade/expressCompany/index',null,0,1,1,1,'','2022-12-20 23:27:55','1','2022-12-20 23:36:20',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2078,'物流公司管理查询','trade:express-company:query',3,1,2077,'','','',null,0,1,1,1,'','2022-12-20 23:27:55','','2022-12-20 23:27:55',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2079,'物流公司管理创建','trade:express-company:create',3,2,2077,'','','',null,0,1,1,1,'','2022-12-20 23:27:55','','2022-12-20 23:27:55',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2080,'物流公司管理更新','trade:express-company:update',3,3,2077,'','','',null,0,1,1,1,'','2022-12-20 23:27:55','','2022-12-20 23:27:55',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2081,'物流公司管理删除','trade:express-company:delete',3,4,2077,'','','',null,0,1,1,1,'','2022-12-20 23:27:55','','2022-12-20 23:27:55',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2082,'物流公司管理导出','trade:express-company:export',3,5,2077,'','','',null,0,1,1,1,'','2022-12-20 23:27:55','','2022-12-20 23:27:55',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2083,'地区管理','',2,14,1,'area','row','system/area/index','SystemArea',0,1,1,1,'1','2022-12-23 17:35:05','1','2023-04-08 09:01:37',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2084,'公众号管理','',1,100,0,'/mp','wechat',null,null,0,1,1,1,'1','2023-01-01 20:11:04','1','2023-01-15 11:28:57',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2085,'账号管理','',2,1,2084,'account','phone','mp/account/index','MpAccount',0,1,1,1,'1','2023-01-01 20:13:31','1','2023-02-09 23:56:39',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2086,'新增账号','mp:account:create',3,1,2085,'','','',null,0,1,1,1,'1','2023-01-01 20:21:40','1','2023-01-07 17:32:53',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2087,'修改账号','mp:account:update',3,2,2085,'','','',null,0,1,1,1,'1','2023-01-07 17:32:46','1','2023-01-07 17:32:46',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2088,'查询账号','mp:account:query',3,0,2085,'','','',null,0,1,1,1,'1','2023-01-07 17:33:07','1','2023-01-07 17:33:07',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2089,'删除账号','mp:account:delete',3,3,2085,'','','',null,0,1,1,1,'1','2023-01-07 17:33:21','1','2023-01-07 17:33:21',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2090,'生成二维码','mp:account:qr-code',3,4,2085,'','','',null,0,1,1,1,'1','2023-01-07 17:33:58','1','2023-01-07 17:33:58',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2091,'清空 API 配额','mp:account:clear-quota',3,5,2085,'','','',null,0,1,1,1,'1','2023-01-07 18:20:32','1','2023-01-07 18:20:59',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2092,'数据统计','mp:statistics:query',2,2,2084,'statistics','chart','mp/statistics/index','MpStatistics',0,1,1,1,'1','2023-01-07 20:17:36','1','2023-02-09 23:58:34',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2093,'标签管理','',2,3,2084,'tag','rate','mp/tag/index','MpTag',0,1,1,1,'1','2023-01-08 11:37:32','1','2023-02-09 23:58:47',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2094,'查询标签','mp:tag:query',3,0,2093,'','','',null,0,1,1,1,'1','2023-01-08 11:59:03','1','2023-01-08 11:59:03',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2095,'新增标签','mp:tag:create',3,1,2093,'','','',null,0,1,1,1,'1','2023-01-08 11:59:23','1','2023-01-08 11:59:23',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2096,'修改标签','mp:tag:update',3,2,2093,'','','',null,0,1,1,1,'1','2023-01-08 11:59:41','1','2023-01-08 11:59:41',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2097,'删除标签','mp:tag:delete',3,3,2093,'','','',null,0,1,1,1,'1','2023-01-08 12:00:04','1','2023-01-08 12:00:13',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2098,'同步标签','mp:tag:sync',3,4,2093,'','','',null,0,1,1,1,'1','2023-01-08 12:00:29','1','2023-01-08 12:00:29',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2099,'粉丝管理','',2,4,2084,'user','people','mp/user/index','MpUser',0,1,1,1,'1','2023-01-08 16:51:20','1','2023-02-09 23:58:21',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2100,'查询粉丝','mp:user:query',3,0,2099,'','','',null,0,1,1,1,'1','2023-01-08 17:16:59','1','2023-01-08 17:17:23',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2101,'修改粉丝','mp:user:update',3,1,2099,'','','',null,0,1,1,1,'1','2023-01-08 17:17:11','1','2023-01-08 17:17:11',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2102,'同步粉丝','mp:user:sync',3,2,2099,'','','',null,0,1,1,1,'1','2023-01-08 17:17:40','1','2023-01-08 17:17:40',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2103,'消息管理','',2,5,2084,'message','email','mp/message/index','MpMessage',0,1,1,1,'1','2023-01-08 18:44:19','1','2023-02-09 23:58:02',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2104,'图文发表记录','',2,10,2084,'free-publish','education','mp/freePublish/index','MpFreePublish',0,1,1,1,'1','2023-01-13 00:30:50','1','2023-02-09 23:57:22',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2105,'查询发布列表','mp:free-publish:query',3,1,2104,'','','',null,0,1,1,1,'1','2023-01-13 07:19:17','1','2023-01-13 07:19:17',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2106,'发布草稿','mp:free-publish:submit',3,2,2104,'','','',null,0,1,1,1,'1','2023-01-13 07:19:46','1','2023-01-13 07:19:46',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2107,'删除发布记录','mp:free-publish:delete',3,3,2104,'','','',null,0,1,1,1,'1','2023-01-13 07:20:01','1','2023-01-13 07:20:01',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2108,'图文草稿箱','',2,9,2084,'draft','edit','mp/draft/index','MpDraft',0,1,1,1,'1','2023-01-13 07:40:21','1','2023-02-09 23:56:58',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2109,'新建草稿','mp:draft:create',3,1,2108,'','','',null,0,1,1,1,'1','2023-01-13 23:15:30','1','2023-01-13 23:15:44',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2110,'修改草稿','mp:draft:update',3,2,2108,'','','',null,0,1,1,1,'1','2023-01-14 10:08:47','1','2023-01-14 10:08:47',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2111,'查询草稿','mp:draft:query',3,0,2108,'','','',null,0,1,1,1,'1','2023-01-14 10:09:01','1','2023-01-14 10:09:01',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2112,'删除草稿','mp:draft:delete',3,3,2108,'','','',null,0,1,1,1,'1','2023-01-14 10:09:19','1','2023-01-14 10:09:19',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2113,'素材管理','',2,8,2084,'material','skill','mp/material/index','MpMaterial',0,1,1,1,'1','2023-01-14 14:12:07','1','2023-02-09 23:57:36',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2114,'上传临时素材','mp:material:upload-temporary',3,1,2113,'','','',null,0,1,1,1,'1','2023-01-14 15:33:55','1','2023-01-14 15:33:55',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2115,'上传永久素材','mp:material:upload-permanent',3,2,2113,'','','',null,0,1,1,1,'1','2023-01-14 15:34:14','1','2023-01-14 15:34:14',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2116,'删除素材','mp:material:delete',3,3,2113,'','','',null,0,1,1,1,'1','2023-01-14 15:35:37','1','2023-01-14 15:35:37',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2117,'上传图文图片','mp:material:upload-news-image',3,4,2113,'','','',null,0,1,1,1,'1','2023-01-14 15:36:31','1','2023-01-14 15:36:31',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2118,'查询素材','mp:material:query',3,5,2113,'','','',null,0,1,1,1,'1','2023-01-14 15:39:22','1','2023-01-14 15:39:22',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2119,'菜单管理','',2,6,2084,'menu','button','mp/menu/index','MpMenu',0,1,1,1,'1','2023-01-14 17:43:54','1','2023-02-09 23:57:50',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2120,'自动回复','',2,7,2084,'auto-reply','eye','mp/autoReply/index','MpAutoReply',0,1,1,1,'1','2023-01-15 22:13:09','1','2023-02-09 23:56:28',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2121,'查询回复','mp:auto-reply:query',3,0,2120,'','','',null,0,1,1,1,'1','2023-01-16 22:28:41','1','2023-01-16 22:28:41',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2122,'新增回复','mp:auto-reply:create',3,1,2120,'','','',null,0,1,1,1,'1','2023-01-16 22:28:54','1','2023-01-16 22:28:54',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2123,'修改回复','mp:auto-reply:update',3,2,2120,'','','',null,0,1,1,1,'1','2023-01-16 22:29:05','1','2023-01-16 22:29:05',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2124,'删除回复','mp:auto-reply:delete',3,3,2120,'','','',null,0,1,1,1,'1','2023-01-16 22:29:34','1','2023-01-16 22:29:34',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2125,'查询菜单','mp:menu:query',3,0,2119,'','','',null,0,1,1,1,'1','2023-01-17 23:05:41','1','2023-01-17 23:05:41',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2126,'保存菜单','mp:menu:save',3,1,2119,'','','',null,0,1,1,1,'1','2023-01-17 23:06:01','1','2023-01-17 23:06:01',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2127,'删除菜单','mp:menu:delete',3,2,2119,'','','',null,0,1,1,1,'1','2023-01-17 23:06:16','1','2023-01-17 23:06:16',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2128,'查询消息','mp:message:query',3,0,2103,'','','',null,0,1,1,1,'1','2023-01-17 23:07:14','1','2023-01-17 23:07:14',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2129,'发送消息','mp:message:send',3,1,2103,'','','',null,0,1,1,1,'1','2023-01-17 23:07:26','1','2023-01-17 23:07:26',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2130,'邮箱管理','',2,11,1,'mail','email',null,null,0,1,1,1,'1','2023-01-25 17:27:44','1','2023-01-25 17:27:44',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2131,'邮箱账号','',2,0,2130,'mail-account','user','system/mail/account/index','SystemMailAccount',0,1,1,1,'','2023-01-25 09:33:48','1','2023-04-08 08:53:43',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2132,'账号查询','system:mail-account:query',3,1,2131,'','','',null,0,1,1,1,'','2023-01-25 09:33:48','','2023-01-25 09:33:48',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2133,'账号创建','system:mail-account:create',3,2,2131,'','','',null,0,1,1,1,'','2023-01-25 09:33:48','','2023-01-25 09:33:48',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2134,'账号更新','system:mail-account:update',3,3,2131,'','','',null,0,1,1,1,'','2023-01-25 09:33:48','','2023-01-25 09:33:48',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2135,'账号删除','system:mail-account:delete',3,4,2131,'','','',null,0,1,1,1,'','2023-01-25 09:33:48','','2023-01-25 09:33:48',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2136,'邮件模版','',2,0,2130,'mail-template','education','system/mail/template/index','SystemMailTemplate',0,1,1,1,'','2023-01-25 12:05:31','1','2023-04-08 08:53:34',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2137,'模版查询','system:mail-template:query',3,1,2136,'','','',null,0,1,1,1,'','2023-01-25 12:05:31','','2023-01-25 12:05:31',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2138,'模版创建','system:mail-template:create',3,2,2136,'','','',null,0,1,1,1,'','2023-01-25 12:05:31','','2023-01-25 12:05:31',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2139,'模版更新','system:mail-template:update',3,3,2136,'','','',null,0,1,1,1,'','2023-01-25 12:05:31','','2023-01-25 12:05:31',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2140,'模版删除','system:mail-template:delete',3,4,2136,'','','',null,0,1,1,1,'','2023-01-25 12:05:31','','2023-01-25 12:05:31',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2141,'邮件记录','',2,0,2130,'mail-log','log','system/mail/log/index','SystemMailLog',0,1,1,1,'','2023-01-26 02:16:50','1','2023-04-08 08:53:49',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2142,'日志查询','system:mail-log:query',3,1,2141,'','','',null,0,1,1,1,'','2023-01-26 02:16:50','','2023-01-26 02:16:50',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2143,'发送测试邮件','system:mail-template:send-mail',3,5,2136,'','','',null,0,1,1,1,'1','2023-01-26 23:29:15','1','2023-01-26 23:29:15',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2144,'站内信管理','',1,11,1,'notify','message',null,null,0,1,1,1,'1','2023-01-28 10:25:18','1','2023-01-28 10:25:46',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2145,'模板管理','',2,0,2144,'notify-template','education','system/notify/template/index','SystemNotifyTemplate',0,1,1,1,'','2023-01-28 02:26:42','1','2023-04-08 08:54:39',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2146,'站内信模板查询','system:notify-template:query',3,1,2145,'','','',null,0,1,1,1,'','2023-01-28 02:26:42','','2023-01-28 02:26:42',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2147,'站内信模板创建','system:notify-template:create',3,2,2145,'','','',null,0,1,1,1,'','2023-01-28 02:26:42','','2023-01-28 02:26:42',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2148,'站内信模板更新','system:notify-template:update',3,3,2145,'','','',null,0,1,1,1,'','2023-01-28 02:26:42','','2023-01-28 02:26:42',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2149,'站内信模板删除','system:notify-template:delete',3,4,2145,'','','',null,0,1,1,1,'','2023-01-28 02:26:42','','2023-01-28 02:26:42',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2150,'发送测试站内信','system:notify-template:send-notify',3,5,2145,'','','',null,0,1,1,1,'1','2023-01-28 10:54:43','1','2023-01-28 10:54:43',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2151,'消息记录','',2,0,2144,'notify-message','edit','system/notify/message/index','SystemNotifyMessage',0,1,1,1,'','2023-01-28 04:28:22','1','2023-04-08 08:54:11',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2152,'站内信消息查询','system:notify-message:query',3,1,2151,'','','',null,0,1,1,1,'','2023-01-28 04:28:22','','2023-01-28 04:28:22',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2153,'大屏设计器','',2,2,1281,'go-view','dashboard','report/goview/index','JimuReport',0,1,1,1,'1','2023-02-07 00:03:19','1','2023-04-08 10:48:15',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2154,'创建项目','report:go-view-project:create',3,1,2153,'','','',null,0,1,1,1,'1','2023-02-07 19:25:14','1','2023-02-07 19:25:14',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2155,'更新项目','report:go-view-project:delete',3,2,2153,'','','',null,0,1,1,1,'1','2023-02-07 19:25:34','1','2023-02-07 19:25:34',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2156,'查询项目','report:go-view-project:query',3,0,2153,'','','',null,0,1,1,1,'1','2023-02-07 19:25:53','1','2023-02-07 19:25:53',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2157,'使用 SQL 查询数据','report:go-view-data:get-by-sql',3,3,2153,'','','',null,0,1,1,1,'1','2023-02-07 19:26:15','1','2023-02-07 19:26:15',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2158,'使用 HTTP 查询数据','report:go-view-data:get-by-http',3,4,2153,'','','',null,0,1,1,1,'1','2023-02-07 19:26:35','1','2023-02-07 19:26:35',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2159,'Boot 开发文档','',1,1,0,'https://doc.iocoder.cn/','education',null,null,0,1,1,1,'1','2023-02-10 22:46:28','1','2023-02-10 22:46:28',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2160,'Cloud 开发文档','',1,2,0,'https://cloud.iocoder.cn','documentation',null,null,0,1,1,1,'1','2023-02-10 22:47:07','1','2023-02-10 22:47:07',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_MENU"("ID","NAME","PERMISSION","TYPE","SORT","PARENT_ID","PATH","ICON","COMPONENT","COMPONENT_NAME","STATUS","VISIBLE","KEEP_ALIVE","ALWAYS_SHOW","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2161,'接入示例','',2,99,1117,'demo-order','drag','pay/demo/index',null,0,1,1,1,'','2023-02-11 14:21:42','1','2023-02-11 22:26:35',0); + +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."SYSTEM_MENU" OFF; +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."SYSTEM_NOTICE" ON; +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_NOTICE"("ID","TITLE","CONTENT","TYPE","STATUS","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1,'芋道的公众','

新版本内容133

',1,0,'admin','2021-01-05 17:03:48','1','2022-05-04 21:00:20',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_NOTICE"("ID","TITLE","CONTENT","TYPE","STATUS","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2,'维护通知:2018-07-01 若依系统凌晨维护','

维护内容

',2,1,'admin','2021-01-05 17:03:48','1','2022-05-11 12:34:24',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_NOTICE"("ID","TITLE","CONTENT","TYPE","STATUS","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(4,'我是测试标题','

哈哈哈哈123

',1,0,'110','2022-02-22 01:01:25','110','2022-02-22 01:01:46',0,121); + +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."SYSTEM_NOTICE" OFF; +ALTER TABLE "RUOYI_VUE_PRO"."BPM_FORM" ADD CONSTRAINT PRIMARY KEY("ID") ; + +ALTER TABLE "RUOYI_VUE_PRO"."BPM_OA_LEAVE" ADD CONSTRAINT PRIMARY KEY("ID") ; + +ALTER TABLE "RUOYI_VUE_PRO"."BPM_PROCESS_DEFINITION_EXT" ADD CONSTRAINT PRIMARY KEY("ID") ; + +ALTER TABLE "RUOYI_VUE_PRO"."BPM_PROCESS_INSTANCE_EXT" ADD CONSTRAINT PRIMARY KEY("ID") ; + +ALTER TABLE "RUOYI_VUE_PRO"."BPM_TASK_ASSIGN_RULE" ADD CONSTRAINT PRIMARY KEY("ID") ; + +ALTER TABLE "RUOYI_VUE_PRO"."BPM_TASK_EXT" ADD CONSTRAINT PRIMARY KEY("ID") ; + +ALTER TABLE "RUOYI_VUE_PRO"."BPM_USER_GROUP" ADD CONSTRAINT PRIMARY KEY("ID") ; + +ALTER TABLE "RUOYI_VUE_PRO"."INFRA_API_ACCESS_LOG" ADD CONSTRAINT PRIMARY KEY("ID") ; + +ALTER TABLE "RUOYI_VUE_PRO"."INFRA_API_ERROR_LOG" ADD CONSTRAINT PRIMARY KEY("ID") ; + +ALTER TABLE "RUOYI_VUE_PRO"."INFRA_CODEGEN_COLUMN" ADD CONSTRAINT PRIMARY KEY("ID") ; + +ALTER TABLE "RUOYI_VUE_PRO"."INFRA_CODEGEN_TABLE" ADD CONSTRAINT PRIMARY KEY("ID") ; + +ALTER TABLE "RUOYI_VUE_PRO"."INFRA_CONFIG" ADD CONSTRAINT PRIMARY KEY("ID") ; + +ALTER TABLE "RUOYI_VUE_PRO"."INFRA_DATA_SOURCE_CONFIG" ADD CONSTRAINT PRIMARY KEY("ID") ; + +ALTER TABLE "RUOYI_VUE_PRO"."INFRA_FILE" ADD CONSTRAINT PRIMARY KEY("ID") ; + +ALTER TABLE "RUOYI_VUE_PRO"."INFRA_FILE_CONFIG" ADD CONSTRAINT PRIMARY KEY("ID") ; + +ALTER TABLE "RUOYI_VUE_PRO"."INFRA_FILE_CONTENT" ADD CONSTRAINT PRIMARY KEY("ID") ; + +ALTER TABLE "RUOYI_VUE_PRO"."INFRA_JOB" ADD CONSTRAINT PRIMARY KEY("ID") ; + +ALTER TABLE "RUOYI_VUE_PRO"."INFRA_JOB_LOG" ADD CONSTRAINT PRIMARY KEY("ID") ; + +ALTER TABLE "RUOYI_VUE_PRO"."INFRA_TEST_DEMO" ADD CONSTRAINT PRIMARY KEY("ID") ; + +ALTER TABLE "RUOYI_VUE_PRO"."MEMBER_USER" ADD CONSTRAINT PRIMARY KEY("ID") ; + +ALTER TABLE "RUOYI_VUE_PRO"."PAY_APP" ADD CONSTRAINT PRIMARY KEY("ID") ; + +ALTER TABLE "RUOYI_VUE_PRO"."PAY_CHANNEL" ADD CONSTRAINT PRIMARY KEY("ID") ; + +ALTER TABLE "RUOYI_VUE_PRO"."PAY_DEMO_ORDER" ADD CONSTRAINT PRIMARY KEY("ID") ; + +ALTER TABLE "RUOYI_VUE_PRO"."PAY_MERCHANT" ADD CONSTRAINT PRIMARY KEY("ID") ; + +ALTER TABLE "RUOYI_VUE_PRO"."PAY_NOTIFY_LOG" ADD CONSTRAINT PRIMARY KEY("ID") ; + +ALTER TABLE "RUOYI_VUE_PRO"."PAY_NOTIFY_TASK" ADD CONSTRAINT PRIMARY KEY("ID") ; + +ALTER TABLE "RUOYI_VUE_PRO"."PAY_ORDER" ADD CONSTRAINT PRIMARY KEY("ID") ; + +ALTER TABLE "RUOYI_VUE_PRO"."PAY_ORDER_EXTENSION" ADD CONSTRAINT PRIMARY KEY("ID") ; + +ALTER TABLE "RUOYI_VUE_PRO"."PAY_REFUND" ADD CONSTRAINT PRIMARY KEY("ID") ; + +ALTER TABLE "RUOYI_VUE_PRO"."QRTZ_BLOB_TRIGGERS" ADD CONSTRAINT PRIMARY KEY("SCHED_NAME","TRIGGER_NAME","TRIGGER_GROUP") ; + +ALTER TABLE "RUOYI_VUE_PRO"."QRTZ_CALENDARS" ADD CONSTRAINT PRIMARY KEY("SCHED_NAME","CALENDAR_NAME") ; + +ALTER TABLE "RUOYI_VUE_PRO"."QRTZ_CRON_TRIGGERS" ADD CONSTRAINT PRIMARY KEY("SCHED_NAME","TRIGGER_NAME","TRIGGER_GROUP") ; + +ALTER TABLE "RUOYI_VUE_PRO"."QRTZ_FIRED_TRIGGERS" ADD CONSTRAINT PRIMARY KEY("SCHED_NAME","ENTRY_ID") ; + +ALTER TABLE "RUOYI_VUE_PRO"."QRTZ_JOB_DETAILS" ADD CONSTRAINT PRIMARY KEY("SCHED_NAME","JOB_NAME","JOB_GROUP") ; + +ALTER TABLE "RUOYI_VUE_PRO"."QRTZ_LOCKS" ADD CONSTRAINT PRIMARY KEY("SCHED_NAME","LOCK_NAME") ; + +ALTER TABLE "RUOYI_VUE_PRO"."QRTZ_PAUSED_TRIGGER_GRPS" ADD CONSTRAINT PRIMARY KEY("SCHED_NAME","TRIGGER_GROUP") ; + +ALTER TABLE "RUOYI_VUE_PRO"."QRTZ_SCHEDULER_STATE" ADD CONSTRAINT PRIMARY KEY("SCHED_NAME","INSTANCE_NAME") ; + +ALTER TABLE "RUOYI_VUE_PRO"."QRTZ_SIMPLE_TRIGGERS" ADD CONSTRAINT PRIMARY KEY("SCHED_NAME","TRIGGER_NAME","TRIGGER_GROUP") ; + +ALTER TABLE "RUOYI_VUE_PRO"."QRTZ_SIMPROP_TRIGGERS" ADD CONSTRAINT PRIMARY KEY("SCHED_NAME","TRIGGER_NAME","TRIGGER_GROUP") ; + +ALTER TABLE "RUOYI_VUE_PRO"."QRTZ_TRIGGERS" ADD CONSTRAINT PRIMARY KEY("SCHED_NAME","TRIGGER_NAME","TRIGGER_GROUP") ; + +ALTER TABLE "RUOYI_VUE_PRO"."SYSTEM_DEPT" ADD CONSTRAINT PRIMARY KEY("ID") ; + +ALTER TABLE "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA" ADD CONSTRAINT PRIMARY KEY("ID") ; + +ALTER TABLE "RUOYI_VUE_PRO"."SYSTEM_DICT_TYPE" ADD CONSTRAINT PRIMARY KEY("ID") ; + +ALTER TABLE "RUOYI_VUE_PRO"."SYSTEM_ERROR_CODE" ADD CONSTRAINT PRIMARY KEY("ID") ; + +ALTER TABLE "RUOYI_VUE_PRO"."SYSTEM_LOGIN_LOG" ADD CONSTRAINT PRIMARY KEY("ID") ; + +ALTER TABLE "RUOYI_VUE_PRO"."SYSTEM_MAIL_ACCOUNT" ADD CONSTRAINT PRIMARY KEY("ID") ; + +ALTER TABLE "RUOYI_VUE_PRO"."SYSTEM_MAIL_LOG" ADD CONSTRAINT PRIMARY KEY("ID") ; + +ALTER TABLE "RUOYI_VUE_PRO"."SYSTEM_MAIL_TEMPLATE" ADD CONSTRAINT PRIMARY KEY("ID") ; + +ALTER TABLE "RUOYI_VUE_PRO"."SYSTEM_MENU" ADD CONSTRAINT PRIMARY KEY("ID") ; + +ALTER TABLE "RUOYI_VUE_PRO"."SYSTEM_NOTICE" ADD CONSTRAINT PRIMARY KEY("ID") ; + +CREATE INDEX "SCHED_NAME" +ON "RUOYI_VUE_PRO"."QRTZ_BLOB_TRIGGERS"("SCHED_NAME","TRIGGER_NAME","TRIGGER_GROUP"); + +CREATE INDEX "IDX_QRTZ_FT_INST_JOB_REQ_RCVRY" +ON "RUOYI_VUE_PRO"."QRTZ_FIRED_TRIGGERS"("SCHED_NAME","INSTANCE_NAME","REQUESTS_RECOVERY"); + +CREATE INDEX "IDX_QRTZ_FT_JG" +ON "RUOYI_VUE_PRO"."QRTZ_FIRED_TRIGGERS"("SCHED_NAME","JOB_GROUP"); + +CREATE INDEX "IDX_QRTZ_FT_J_G" +ON "RUOYI_VUE_PRO"."QRTZ_FIRED_TRIGGERS"("SCHED_NAME","JOB_NAME","JOB_GROUP"); + +CREATE INDEX "IDX_QRTZ_FT_TG" +ON "RUOYI_VUE_PRO"."QRTZ_FIRED_TRIGGERS"("SCHED_NAME","TRIGGER_GROUP"); + +CREATE INDEX "IDX_QRTZ_FT_TRIG_INST_NAME" +ON "RUOYI_VUE_PRO"."QRTZ_FIRED_TRIGGERS"("SCHED_NAME","INSTANCE_NAME"); + +CREATE INDEX "IDX_QRTZ_FT_T_G" +ON "RUOYI_VUE_PRO"."QRTZ_FIRED_TRIGGERS"("SCHED_NAME","TRIGGER_NAME","TRIGGER_GROUP"); + +CREATE INDEX "IDX_QRTZ_J_GRP" +ON "RUOYI_VUE_PRO"."QRTZ_JOB_DETAILS"("SCHED_NAME","JOB_GROUP"); + +CREATE INDEX "IDX_QRTZ_J_REQ_RECOVERY" +ON "RUOYI_VUE_PRO"."QRTZ_JOB_DETAILS"("SCHED_NAME","REQUESTS_RECOVERY"); + +CREATE INDEX "IDX_QRTZ_T_C" +ON "RUOYI_VUE_PRO"."QRTZ_TRIGGERS"("SCHED_NAME","CALENDAR_NAME"); + +CREATE INDEX "IDX_QRTZ_T_G" +ON "RUOYI_VUE_PRO"."QRTZ_TRIGGERS"("SCHED_NAME","TRIGGER_GROUP"); + +CREATE INDEX "IDX_QRTZ_T_J" +ON "RUOYI_VUE_PRO"."QRTZ_TRIGGERS"("SCHED_NAME","JOB_NAME","JOB_GROUP"); + +CREATE INDEX "IDX_QRTZ_T_JG" +ON "RUOYI_VUE_PRO"."QRTZ_TRIGGERS"("SCHED_NAME","JOB_GROUP"); + +CREATE INDEX "IDX_QRTZ_T_NEXT_FIRE_TIME" +ON "RUOYI_VUE_PRO"."QRTZ_TRIGGERS"("SCHED_NAME","NEXT_FIRE_TIME"); + +CREATE INDEX "IDX_QRTZ_T_NFT_MISFIRE" +ON "RUOYI_VUE_PRO"."QRTZ_TRIGGERS"("SCHED_NAME","MISFIRE_INSTR","NEXT_FIRE_TIME"); + +CREATE INDEX "IDX_QRTZ_T_NFT_ST" +ON "RUOYI_VUE_PRO"."QRTZ_TRIGGERS"("SCHED_NAME","TRIGGER_STATE","NEXT_FIRE_TIME"); + +CREATE INDEX "IDX_QRTZ_T_NFT_ST_MISFIRE" +ON "RUOYI_VUE_PRO"."QRTZ_TRIGGERS"("SCHED_NAME","MISFIRE_INSTR","NEXT_FIRE_TIME","TRIGGER_STATE"); + +CREATE INDEX "IDX_QRTZ_T_NFT_ST_MISFIRE_GRP" +ON "RUOYI_VUE_PRO"."QRTZ_TRIGGERS"("SCHED_NAME","MISFIRE_INSTR","NEXT_FIRE_TIME","TRIGGER_GROUP","TRIGGER_STATE"); + +CREATE INDEX "IDX_QRTZ_T_N_G_STATE" +ON "RUOYI_VUE_PRO"."QRTZ_TRIGGERS"("SCHED_NAME","TRIGGER_GROUP","TRIGGER_STATE"); + +CREATE INDEX "IDX_QRTZ_T_N_STATE" +ON "RUOYI_VUE_PRO"."QRTZ_TRIGGERS"("SCHED_NAME","TRIGGER_NAME","TRIGGER_GROUP","TRIGGER_STATE"); + +CREATE INDEX "IDX_QRTZ_T_STATE" +ON "RUOYI_VUE_PRO"."QRTZ_TRIGGERS"("SCHED_NAME","TRIGGER_STATE"); + +ALTER TABLE "RUOYI_VUE_PRO"."PAY_DEMO_ORDER" ADD CHECK("USER_ID" >= 0) ENABLE ; + +ALTER TABLE "RUOYI_VUE_PRO"."MEMBER_USER" ADD CONSTRAINT "UK_MOBILE" UNIQUE("MOBILE") ; + +ALTER TABLE "RUOYI_VUE_PRO"."SYSTEM_DICT_TYPE" ADD CONSTRAINT "DICT_TYPE" UNIQUE("TYPE") ; + +COMMENT ON TABLE "RUOYI_VUE_PRO"."BPM_FORM" IS '工作流的表单定义'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."BPM_FORM"."ID" IS '编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."BPM_FORM"."NAME" IS '表单名'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."BPM_FORM"."STATUS" IS '开启状态'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."BPM_FORM"."CONF" IS '表单的配置'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."BPM_FORM"."FIELDS" IS '表单项的数组'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."BPM_FORM"."REMARK" IS '备注'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."BPM_FORM"."CREATOR" IS '创建者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."BPM_FORM"."CREATE_TIME" IS '创建时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."BPM_FORM"."UPDATER" IS '更新者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."BPM_FORM"."UPDATE_TIME" IS '更新时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."BPM_FORM"."DELETED" IS '是否删除'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."BPM_FORM"."TENANT_ID" IS '租户编号'; + +COMMENT ON TABLE "RUOYI_VUE_PRO"."BPM_OA_LEAVE" IS 'OA 请假申请表'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."BPM_OA_LEAVE"."ID" IS '请假表单主键'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."BPM_OA_LEAVE"."USER_ID" IS '申请人的用户编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."BPM_OA_LEAVE"."TYPE" IS '请假类型'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."BPM_OA_LEAVE"."REASON" IS '请假原因'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."BPM_OA_LEAVE"."START_TIME" IS '开始时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."BPM_OA_LEAVE"."END_TIME" IS '结束时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."BPM_OA_LEAVE"."DAY" IS '请假天数'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."BPM_OA_LEAVE"."RESULT" IS '请假结果'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."BPM_OA_LEAVE"."PROCESS_INSTANCE_ID" IS '流程实例的编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."BPM_OA_LEAVE"."CREATOR" IS '创建者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."BPM_OA_LEAVE"."CREATE_TIME" IS '创建时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."BPM_OA_LEAVE"."UPDATER" IS '更新者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."BPM_OA_LEAVE"."UPDATE_TIME" IS '更新时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."BPM_OA_LEAVE"."DELETED" IS '是否删除'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."BPM_OA_LEAVE"."TENANT_ID" IS '租户编号'; + +COMMENT ON TABLE "RUOYI_VUE_PRO"."BPM_PROCESS_DEFINITION_EXT" IS 'Bpm 流程定义的拓展表 +'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."BPM_PROCESS_DEFINITION_EXT"."ID" IS '编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."BPM_PROCESS_DEFINITION_EXT"."PROCESS_DEFINITION_ID" IS '流程定义的编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."BPM_PROCESS_DEFINITION_EXT"."MODEL_ID" IS '流程模型的编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."BPM_PROCESS_DEFINITION_EXT"."DESCRIPTION" IS '描述'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."BPM_PROCESS_DEFINITION_EXT"."FORM_TYPE" IS '表单类型'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."BPM_PROCESS_DEFINITION_EXT"."FORM_ID" IS '表单编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."BPM_PROCESS_DEFINITION_EXT"."FORM_CONF" IS '表单的配置'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."BPM_PROCESS_DEFINITION_EXT"."FORM_FIELDS" IS '表单项的数组'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."BPM_PROCESS_DEFINITION_EXT"."FORM_CUSTOM_CREATE_PATH" IS '自定义表单的提交路径'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."BPM_PROCESS_DEFINITION_EXT"."FORM_CUSTOM_VIEW_PATH" IS '自定义表单的查看路径'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."BPM_PROCESS_DEFINITION_EXT"."CREATOR" IS '创建者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."BPM_PROCESS_DEFINITION_EXT"."CREATE_TIME" IS '创建时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."BPM_PROCESS_DEFINITION_EXT"."UPDATER" IS '更新者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."BPM_PROCESS_DEFINITION_EXT"."UPDATE_TIME" IS '更新时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."BPM_PROCESS_DEFINITION_EXT"."DELETED" IS '是否删除'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."BPM_PROCESS_DEFINITION_EXT"."TENANT_ID" IS '租户编号'; + +COMMENT ON TABLE "RUOYI_VUE_PRO"."BPM_PROCESS_INSTANCE_EXT" IS '工作流的流程实例的拓展'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."BPM_PROCESS_INSTANCE_EXT"."ID" IS '编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."BPM_PROCESS_INSTANCE_EXT"."START_USER_ID" IS '发起流程的用户编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."BPM_PROCESS_INSTANCE_EXT"."NAME" IS '流程实例的名字'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."BPM_PROCESS_INSTANCE_EXT"."PROCESS_INSTANCE_ID" IS '流程实例的编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."BPM_PROCESS_INSTANCE_EXT"."PROCESS_DEFINITION_ID" IS '流程定义的编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."BPM_PROCESS_INSTANCE_EXT"."CATEGORY" IS '流程分类'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."BPM_PROCESS_INSTANCE_EXT"."STATUS" IS '流程实例的状态'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."BPM_PROCESS_INSTANCE_EXT"."RESULT" IS '流程实例的结果'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."BPM_PROCESS_INSTANCE_EXT"."END_TIME" IS '结束时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."BPM_PROCESS_INSTANCE_EXT"."FORM_VARIABLES" IS '表单值'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."BPM_PROCESS_INSTANCE_EXT"."CREATOR" IS '创建者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."BPM_PROCESS_INSTANCE_EXT"."CREATE_TIME" IS '创建时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."BPM_PROCESS_INSTANCE_EXT"."UPDATER" IS '更新者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."BPM_PROCESS_INSTANCE_EXT"."UPDATE_TIME" IS '更新时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."BPM_PROCESS_INSTANCE_EXT"."DELETED" IS '是否删除'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."BPM_PROCESS_INSTANCE_EXT"."TENANT_ID" IS '租户编号'; + +COMMENT ON TABLE "RUOYI_VUE_PRO"."BPM_TASK_ASSIGN_RULE" IS 'Bpm 任务规则表'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."BPM_TASK_ASSIGN_RULE"."ID" IS '编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."BPM_TASK_ASSIGN_RULE"."MODEL_ID" IS '流程模型的编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."BPM_TASK_ASSIGN_RULE"."PROCESS_DEFINITION_ID" IS '流程定义的编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."BPM_TASK_ASSIGN_RULE"."TASK_DEFINITION_KEY" IS '流程任务定义的 key'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."BPM_TASK_ASSIGN_RULE"."TYPE" IS '规则类型'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."BPM_TASK_ASSIGN_RULE"."OPTIONS" IS '规则值,JSON 数组'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."BPM_TASK_ASSIGN_RULE"."CREATOR" IS '创建者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."BPM_TASK_ASSIGN_RULE"."CREATE_TIME" IS '创建时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."BPM_TASK_ASSIGN_RULE"."UPDATER" IS '更新者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."BPM_TASK_ASSIGN_RULE"."UPDATE_TIME" IS '更新时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."BPM_TASK_ASSIGN_RULE"."DELETED" IS '是否删除'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."BPM_TASK_ASSIGN_RULE"."TENANT_ID" IS '租户编号'; + +COMMENT ON TABLE "RUOYI_VUE_PRO"."BPM_TASK_EXT" IS '工作流的流程任务的拓展表'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."BPM_TASK_EXT"."ID" IS '编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."BPM_TASK_EXT"."ASSIGNEE_USER_ID" IS '任务的审批人'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."BPM_TASK_EXT"."NAME" IS '任务的名字'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."BPM_TASK_EXT"."TASK_ID" IS '任务的编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."BPM_TASK_EXT"."RESULT" IS '任务的结果'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."BPM_TASK_EXT"."REASON" IS '审批建议'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."BPM_TASK_EXT"."END_TIME" IS '任务的结束时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."BPM_TASK_EXT"."PROCESS_INSTANCE_ID" IS '流程实例的编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."BPM_TASK_EXT"."PROCESS_DEFINITION_ID" IS '流程定义的编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."BPM_TASK_EXT"."CREATOR" IS '创建者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."BPM_TASK_EXT"."CREATE_TIME" IS '创建时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."BPM_TASK_EXT"."UPDATER" IS '更新者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."BPM_TASK_EXT"."UPDATE_TIME" IS '更新时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."BPM_TASK_EXT"."DELETED" IS '是否删除'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."BPM_TASK_EXT"."TENANT_ID" IS '租户编号'; + +COMMENT ON TABLE "RUOYI_VUE_PRO"."BPM_USER_GROUP" IS '用户组'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."BPM_USER_GROUP"."ID" IS '编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."BPM_USER_GROUP"."NAME" IS '组名'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."BPM_USER_GROUP"."DESCRIPTION" IS '描述'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."BPM_USER_GROUP"."MEMBER_USER_IDS" IS '成员编号数组'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."BPM_USER_GROUP"."STATUS" IS '状态(0正常 1停用)'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."BPM_USER_GROUP"."CREATOR" IS '创建者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."BPM_USER_GROUP"."CREATE_TIME" IS '创建时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."BPM_USER_GROUP"."UPDATER" IS '更新者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."BPM_USER_GROUP"."UPDATE_TIME" IS '更新时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."BPM_USER_GROUP"."DELETED" IS '是否删除'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."BPM_USER_GROUP"."TENANT_ID" IS '租户编号'; + +COMMENT ON TABLE "RUOYI_VUE_PRO"."INFRA_API_ACCESS_LOG" IS 'API 访问日志表'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_API_ACCESS_LOG"."ID" IS '日志主键'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_API_ACCESS_LOG"."TRACE_ID" IS '链路追踪编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_API_ACCESS_LOG"."USER_ID" IS '用户编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_API_ACCESS_LOG"."USER_TYPE" IS '用户类型'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_API_ACCESS_LOG"."APPLICATION_NAME" IS '应用名'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_API_ACCESS_LOG"."REQUEST_METHOD" IS '请求方法名'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_API_ACCESS_LOG"."REQUEST_URL" IS '请求地址'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_API_ACCESS_LOG"."REQUEST_PARAMS" IS '请求参数'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_API_ACCESS_LOG"."USER_IP" IS '用户 IP'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_API_ACCESS_LOG"."USER_AGENT" IS '浏览器 UA'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_API_ACCESS_LOG"."BEGIN_TIME" IS '开始请求时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_API_ACCESS_LOG"."END_TIME" IS '结束请求时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_API_ACCESS_LOG"."DURATION" IS '执行时长'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_API_ACCESS_LOG"."RESULT_CODE" IS '结果码'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_API_ACCESS_LOG"."RESULT_MSG" IS '结果提示'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_API_ACCESS_LOG"."CREATOR" IS '创建者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_API_ACCESS_LOG"."CREATE_TIME" IS '创建时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_API_ACCESS_LOG"."UPDATER" IS '更新者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_API_ACCESS_LOG"."UPDATE_TIME" IS '更新时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_API_ACCESS_LOG"."DELETED" IS '是否删除'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_API_ACCESS_LOG"."TENANT_ID" IS '租户编号'; + +COMMENT ON TABLE "RUOYI_VUE_PRO"."INFRA_API_ERROR_LOG" IS '系统异常日志'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_API_ERROR_LOG"."ID" IS '编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_API_ERROR_LOG"."TRACE_ID" IS '链路追踪编号 + * + * 一般来说,通过链路追踪编号,可以将访问日志,错误日志,链路追踪日志,logger 打印日志等,结合在一起,从而进行排错。'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_API_ERROR_LOG"."USER_ID" IS '用户编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_API_ERROR_LOG"."USER_TYPE" IS '用户类型'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_API_ERROR_LOG"."APPLICATION_NAME" IS '应用名 + * + * 目前读取 spring.application.name'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_API_ERROR_LOG"."REQUEST_METHOD" IS '请求方法名'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_API_ERROR_LOG"."REQUEST_URL" IS '请求地址'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_API_ERROR_LOG"."REQUEST_PARAMS" IS '请求参数'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_API_ERROR_LOG"."USER_IP" IS '用户 IP'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_API_ERROR_LOG"."USER_AGENT" IS '浏览器 UA'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_API_ERROR_LOG"."EXCEPTION_TIME" IS '异常发生时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_API_ERROR_LOG"."EXCEPTION_NAME" IS '异常名 + * + * {@link Throwable#getClass()} 的类全名'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_API_ERROR_LOG"."EXCEPTION_MESSAGE" IS '异常导致的消息 + * + * {@link cn.iocoder.common.framework.util.ExceptionUtil#getMessage(Throwable)}'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_API_ERROR_LOG"."EXCEPTION_ROOT_CAUSE_MESSAGE" IS '异常导致的根消息 + * + * {@link cn.iocoder.common.framework.util.ExceptionUtil#getRootCauseMessage(Throwable)}'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_API_ERROR_LOG"."EXCEPTION_STACK_TRACE" IS '异常的栈轨迹 + * + * {@link cn.iocoder.common.framework.util.ExceptionUtil#getServiceException(Exception)}'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_API_ERROR_LOG"."EXCEPTION_CLASS_NAME" IS '异常发生的类全名 + * + * {@link StackTraceElement#getClassName()}'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_API_ERROR_LOG"."EXCEPTION_FILE_NAME" IS '异常发生的类文件 + * + * {@link StackTraceElement#getFileName()}'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_API_ERROR_LOG"."EXCEPTION_METHOD_NAME" IS '异常发生的方法名 + * + * {@link StackTraceElement#getMethodName()}'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_API_ERROR_LOG"."EXCEPTION_LINE_NUMBER" IS '异常发生的方法所在行 + * + * {@link StackTraceElement#getLineNumber()}'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_API_ERROR_LOG"."PROCESS_STATUS" IS '处理状态'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_API_ERROR_LOG"."PROCESS_TIME" IS '处理时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_API_ERROR_LOG"."PROCESS_USER_ID" IS '处理用户编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_API_ERROR_LOG"."CREATOR" IS '创建者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_API_ERROR_LOG"."CREATE_TIME" IS '创建时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_API_ERROR_LOG"."UPDATER" IS '更新者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_API_ERROR_LOG"."UPDATE_TIME" IS '更新时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_API_ERROR_LOG"."DELETED" IS '是否删除'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_API_ERROR_LOG"."TENANT_ID" IS '租户编号'; + +COMMENT ON TABLE "RUOYI_VUE_PRO"."INFRA_CODEGEN_COLUMN" IS '代码生成表字段定义'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_CODEGEN_COLUMN"."ID" IS '编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_CODEGEN_COLUMN"."TABLE_ID" IS '表编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_CODEGEN_COLUMN"."COLUMN_NAME" IS '字段名'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_CODEGEN_COLUMN"."DATA_TYPE" IS '字段类型'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_CODEGEN_COLUMN"."COLUMN_COMMENT" IS '字段描述'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_CODEGEN_COLUMN"."NULLABLE" IS '是否允许为空'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_CODEGEN_COLUMN"."PRIMARY_KEY" IS '是否主键'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_CODEGEN_COLUMN"."AUTO_INCREMENT" IS '是否自增'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_CODEGEN_COLUMN"."ORDINAL_POSITION" IS '排序'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_CODEGEN_COLUMN"."JAVA_TYPE" IS 'Java 属性类型'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_CODEGEN_COLUMN"."JAVA_FIELD" IS 'Java 属性名'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_CODEGEN_COLUMN"."DICT_TYPE" IS '字典类型'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_CODEGEN_COLUMN"."EXAMPLE" IS '数据示例'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_CODEGEN_COLUMN"."CREATE_OPERATION" IS '是否为 Create 创建操作的字段'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_CODEGEN_COLUMN"."UPDATE_OPERATION" IS '是否为 Update 更新操作的字段'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_CODEGEN_COLUMN"."LIST_OPERATION" IS '是否为 List 查询操作的字段'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_CODEGEN_COLUMN"."LIST_OPERATION_CONDITION" IS 'List 查询操作的条件类型'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_CODEGEN_COLUMN"."LIST_OPERATION_RESULT" IS '是否为 List 查询操作的返回字段'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_CODEGEN_COLUMN"."HTML_TYPE" IS '显示类型'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_CODEGEN_COLUMN"."CREATOR" IS '创建者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_CODEGEN_COLUMN"."CREATE_TIME" IS '创建时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_CODEGEN_COLUMN"."UPDATER" IS '更新者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_CODEGEN_COLUMN"."UPDATE_TIME" IS '更新时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_CODEGEN_COLUMN"."DELETED" IS '是否删除'; + +COMMENT ON TABLE "RUOYI_VUE_PRO"."INFRA_CODEGEN_TABLE" IS '代码生成表定义'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_CODEGEN_TABLE"."ID" IS '编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_CODEGEN_TABLE"."DATA_SOURCE_CONFIG_ID" IS '数据源配置的编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_CODEGEN_TABLE"."SCENE" IS '生成场景'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_CODEGEN_TABLE"."TABLE_NAME" IS '表名称'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_CODEGEN_TABLE"."TABLE_COMMENT" IS '表描述'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_CODEGEN_TABLE"."REMARK" IS '备注'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_CODEGEN_TABLE"."MODULE_NAME" IS '模块名'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_CODEGEN_TABLE"."BUSINESS_NAME" IS '业务名'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_CODEGEN_TABLE"."CLASS_NAME" IS '类名称'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_CODEGEN_TABLE"."CLASS_COMMENT" IS '类描述'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_CODEGEN_TABLE"."AUTHOR" IS '作者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_CODEGEN_TABLE"."TEMPLATE_TYPE" IS '模板类型'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_CODEGEN_TABLE"."FRONT_TYPE" IS '前端类型'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_CODEGEN_TABLE"."PARENT_MENU_ID" IS '父菜单编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_CODEGEN_TABLE"."CREATOR" IS '创建者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_CODEGEN_TABLE"."CREATE_TIME" IS '创建时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_CODEGEN_TABLE"."UPDATER" IS '更新者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_CODEGEN_TABLE"."UPDATE_TIME" IS '更新时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_CODEGEN_TABLE"."DELETED" IS '是否删除'; + +COMMENT ON TABLE "RUOYI_VUE_PRO"."INFRA_CONFIG" IS '参数配置表'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_CONFIG"."ID" IS '参数主键'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_CONFIG"."CATEGORY" IS '参数分组'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_CONFIG"."TYPE" IS '参数类型'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_CONFIG"."NAME" IS '参数名称'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_CONFIG"."CONFIG_KEY" IS '参数键名'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_CONFIG"."VALUE" IS '参数键值'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_CONFIG"."VISIBLE" IS '是否可见'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_CONFIG"."REMARK" IS '备注'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_CONFIG"."CREATOR" IS '创建者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_CONFIG"."CREATE_TIME" IS '创建时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_CONFIG"."UPDATER" IS '更新者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_CONFIG"."UPDATE_TIME" IS '更新时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_CONFIG"."DELETED" IS '是否删除'; + +COMMENT ON TABLE "RUOYI_VUE_PRO"."INFRA_DATA_SOURCE_CONFIG" IS '数据源配置表'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_DATA_SOURCE_CONFIG"."ID" IS '主键编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_DATA_SOURCE_CONFIG"."NAME" IS '参数名称'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_DATA_SOURCE_CONFIG"."URL" IS '数据源连接'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_DATA_SOURCE_CONFIG"."USERNAME" IS '用户名'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_DATA_SOURCE_CONFIG"."PASSWORD" IS '密码'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_DATA_SOURCE_CONFIG"."CREATOR" IS '创建者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_DATA_SOURCE_CONFIG"."CREATE_TIME" IS '创建时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_DATA_SOURCE_CONFIG"."UPDATER" IS '更新者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_DATA_SOURCE_CONFIG"."UPDATE_TIME" IS '更新时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_DATA_SOURCE_CONFIG"."DELETED" IS '是否删除'; + +COMMENT ON TABLE "RUOYI_VUE_PRO"."INFRA_FILE" IS '文件表'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_FILE"."ID" IS '文件编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_FILE"."CONFIG_ID" IS '配置编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_FILE"."NAME" IS '文件名'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_FILE"."PATH" IS '文件路径'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_FILE"."URL" IS '文件 URL'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_FILE"."TYPE" IS '文件类型'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_FILE"."SIZE" IS '文件大小'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_FILE"."CREATOR" IS '创建者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_FILE"."CREATE_TIME" IS '创建时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_FILE"."UPDATER" IS '更新者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_FILE"."UPDATE_TIME" IS '更新时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_FILE"."DELETED" IS '是否删除'; + +COMMENT ON TABLE "RUOYI_VUE_PRO"."INFRA_FILE_CONFIG" IS '文件配置表'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_FILE_CONFIG"."ID" IS '编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_FILE_CONFIG"."NAME" IS '配置名'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_FILE_CONFIG"."STORAGE" IS '存储器'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_FILE_CONFIG"."REMARK" IS '备注'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_FILE_CONFIG"."MASTER" IS '是否为主配置'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_FILE_CONFIG"."CONFIG" IS '存储配置'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_FILE_CONFIG"."CREATOR" IS '创建者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_FILE_CONFIG"."CREATE_TIME" IS '创建时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_FILE_CONFIG"."UPDATER" IS '更新者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_FILE_CONFIG"."UPDATE_TIME" IS '更新时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_FILE_CONFIG"."DELETED" IS '是否删除'; + +COMMENT ON TABLE "RUOYI_VUE_PRO"."INFRA_FILE_CONTENT" IS '文件表'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_FILE_CONTENT"."ID" IS '编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_FILE_CONTENT"."CONFIG_ID" IS '配置编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_FILE_CONTENT"."PATH" IS '文件路径'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_FILE_CONTENT"."CONTENT" IS '文件内容'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_FILE_CONTENT"."CREATOR" IS '创建者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_FILE_CONTENT"."CREATE_TIME" IS '创建时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_FILE_CONTENT"."UPDATER" IS '更新者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_FILE_CONTENT"."UPDATE_TIME" IS '更新时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_FILE_CONTENT"."DELETED" IS '是否删除'; + +COMMENT ON TABLE "RUOYI_VUE_PRO"."INFRA_JOB" IS '定时任务表'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_JOB"."ID" IS '任务编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_JOB"."NAME" IS '任务名称'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_JOB"."STATUS" IS '任务状态'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_JOB"."HANDLER_NAME" IS '处理器的名字'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_JOB"."HANDLER_PARAM" IS '处理器的参数'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_JOB"."CRON_EXPRESSION" IS 'CRON 表达式'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_JOB"."RETRY_COUNT" IS '重试次数'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_JOB"."RETRY_INTERVAL" IS '重试间隔'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_JOB"."MONITOR_TIMEOUT" IS '监控超时时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_JOB"."CREATOR" IS '创建者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_JOB"."CREATE_TIME" IS '创建时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_JOB"."UPDATER" IS '更新者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_JOB"."UPDATE_TIME" IS '更新时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_JOB"."DELETED" IS '是否删除'; + +COMMENT ON TABLE "RUOYI_VUE_PRO"."INFRA_JOB_LOG" IS '定时任务日志表'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_JOB_LOG"."ID" IS '日志编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_JOB_LOG"."JOB_ID" IS '任务编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_JOB_LOG"."HANDLER_NAME" IS '处理器的名字'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_JOB_LOG"."HANDLER_PARAM" IS '处理器的参数'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_JOB_LOG"."EXECUTE_INDEX" IS '第几次执行'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_JOB_LOG"."BEGIN_TIME" IS '开始执行时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_JOB_LOG"."END_TIME" IS '结束执行时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_JOB_LOG"."DURATION" IS '执行时长'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_JOB_LOG"."STATUS" IS '任务状态'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_JOB_LOG"."RESULT" IS '结果数据'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_JOB_LOG"."CREATOR" IS '创建者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_JOB_LOG"."CREATE_TIME" IS '创建时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_JOB_LOG"."UPDATER" IS '更新者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_JOB_LOG"."UPDATE_TIME" IS '更新时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_JOB_LOG"."DELETED" IS '是否删除'; + +COMMENT ON TABLE "RUOYI_VUE_PRO"."INFRA_TEST_DEMO" IS '字典类型表'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_TEST_DEMO"."ID" IS '编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_TEST_DEMO"."NAME" IS '名字'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_TEST_DEMO"."STATUS" IS '状态'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_TEST_DEMO"."TYPE" IS '类型'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_TEST_DEMO"."CATEGORY" IS '分类'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_TEST_DEMO"."REMARK" IS '备注'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_TEST_DEMO"."CREATOR" IS '创建者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_TEST_DEMO"."CREATE_TIME" IS '创建时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_TEST_DEMO"."UPDATER" IS '更新者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_TEST_DEMO"."UPDATE_TIME" IS '更新时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."INFRA_TEST_DEMO"."DELETED" IS '是否删除'; + +COMMENT ON TABLE "RUOYI_VUE_PRO"."MEMBER_USER" IS '用户'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."MEMBER_USER"."ID" IS '编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."MEMBER_USER"."NICKNAME" IS '用户昵称'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."MEMBER_USER"."AVATAR" IS '头像'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."MEMBER_USER"."STATUS" IS '状态'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."MEMBER_USER"."MOBILE" IS '手机号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."MEMBER_USER"."PASSWORD" IS '密码'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."MEMBER_USER"."REGISTER_IP" IS '注册 IP'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."MEMBER_USER"."LOGIN_IP" IS '最后登录IP'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."MEMBER_USER"."LOGIN_DATE" IS '最后登录时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."MEMBER_USER"."CREATOR" IS '创建者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."MEMBER_USER"."CREATE_TIME" IS '创建时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."MEMBER_USER"."UPDATER" IS '更新者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."MEMBER_USER"."UPDATE_TIME" IS '更新时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."MEMBER_USER"."DELETED" IS '是否删除'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."MEMBER_USER"."TENANT_ID" IS '租户编号'; + +COMMENT ON TABLE "RUOYI_VUE_PRO"."PAY_APP" IS '支付应用信息'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_APP"."ID" IS '应用编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_APP"."NAME" IS '应用名'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_APP"."STATUS" IS '开启状态'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_APP"."REMARK" IS '备注'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_APP"."PAY_NOTIFY_URL" IS '支付结果的回调地址'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_APP"."REFUND_NOTIFY_URL" IS '退款结果的回调地址'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_APP"."MERCHANT_ID" IS '商户编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_APP"."CREATOR" IS '创建者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_APP"."CREATE_TIME" IS '创建时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_APP"."UPDATER" IS '更新者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_APP"."UPDATE_TIME" IS '更新时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_APP"."DELETED" IS '是否删除'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_APP"."TENANT_ID" IS '租户编号'; + +COMMENT ON TABLE "RUOYI_VUE_PRO"."PAY_CHANNEL" IS '支付渠道 +'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_CHANNEL"."ID" IS '商户编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_CHANNEL"."CODE" IS '渠道编码'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_CHANNEL"."STATUS" IS '开启状态'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_CHANNEL"."REMARK" IS '备注'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_CHANNEL"."FEE_RATE" IS '渠道费率,单位:百分比'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_CHANNEL"."MERCHANT_ID" IS '商户编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_CHANNEL"."APP_ID" IS '应用编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_CHANNEL"."CONFIG" IS '支付渠道配置'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_CHANNEL"."CREATOR" IS '创建者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_CHANNEL"."CREATE_TIME" IS '创建时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_CHANNEL"."UPDATER" IS '更新者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_CHANNEL"."UPDATE_TIME" IS '更新时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_CHANNEL"."DELETED" IS '是否删除'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_CHANNEL"."TENANT_ID" IS '租户编号'; + +COMMENT ON TABLE "RUOYI_VUE_PRO"."PAY_DEMO_ORDER" IS '示例订单 +'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_DEMO_ORDER"."ID" IS '订单编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_DEMO_ORDER"."USER_ID" IS '用户编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_DEMO_ORDER"."SPU_ID" IS '商品编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_DEMO_ORDER"."SPU_NAME" IS '商品名字'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_DEMO_ORDER"."PRICE" IS '价格,单位:分'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_DEMO_ORDER"."PAYED" IS '是否已支付:[0:未支付 1:已经支付过]'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_DEMO_ORDER"."PAY_ORDER_ID" IS '支付订单编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_DEMO_ORDER"."PAY_CHANNEL_CODE" IS '支付成功的支付渠道'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_DEMO_ORDER"."PAY_TIME" IS '订单支付时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_DEMO_ORDER"."PAY_REFUND_ID" IS '退款订单编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_DEMO_ORDER"."REFUND_PRICE" IS '退款金额,单位:分'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_DEMO_ORDER"."REFUND_TIME" IS '退款时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_DEMO_ORDER"."CREATOR" IS '创建者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_DEMO_ORDER"."CREATE_TIME" IS '创建时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_DEMO_ORDER"."UPDATER" IS '更新者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_DEMO_ORDER"."UPDATE_TIME" IS '更新时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_DEMO_ORDER"."DELETED" IS '是否删除'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_DEMO_ORDER"."TENANT_ID" IS '租户编号'; + +COMMENT ON TABLE "RUOYI_VUE_PRO"."PAY_MERCHANT" IS '支付商户信息'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_MERCHANT"."ID" IS '商户编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_MERCHANT"."NO" IS '商户号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_MERCHANT"."NAME" IS '商户全称'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_MERCHANT"."SHORT_NAME" IS '商户简称'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_MERCHANT"."STATUS" IS '开启状态'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_MERCHANT"."REMARK" IS '备注'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_MERCHANT"."CREATOR" IS '创建者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_MERCHANT"."CREATE_TIME" IS '创建时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_MERCHANT"."UPDATER" IS '更新者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_MERCHANT"."UPDATE_TIME" IS '更新时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_MERCHANT"."DELETED" IS '是否删除'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_MERCHANT"."TENANT_ID" IS '租户编号'; + +COMMENT ON TABLE "RUOYI_VUE_PRO"."PAY_NOTIFY_LOG" IS '支付通知 App 的日志'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_NOTIFY_LOG"."ID" IS '日志编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_NOTIFY_LOG"."TASK_ID" IS '通知任务编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_NOTIFY_LOG"."NOTIFY_TIMES" IS '第几次被通知'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_NOTIFY_LOG"."RESPONSE" IS '请求参数'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_NOTIFY_LOG"."STATUS" IS '通知状态'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_NOTIFY_LOG"."CREATOR" IS '创建者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_NOTIFY_LOG"."CREATE_TIME" IS '创建时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_NOTIFY_LOG"."UPDATER" IS '更新者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_NOTIFY_LOG"."UPDATE_TIME" IS '更新时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_NOTIFY_LOG"."DELETED" IS '是否删除'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_NOTIFY_LOG"."TENANT_ID" IS '租户编号'; + +COMMENT ON TABLE "RUOYI_VUE_PRO"."PAY_NOTIFY_TASK" IS '商户支付、退款等的通知 +'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_NOTIFY_TASK"."ID" IS '任务编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_NOTIFY_TASK"."MERCHANT_ID" IS '商户编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_NOTIFY_TASK"."APP_ID" IS '应用编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_NOTIFY_TASK"."TYPE" IS '通知类型'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_NOTIFY_TASK"."DATA_ID" IS '数据编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_NOTIFY_TASK"."STATUS" IS '通知状态'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_NOTIFY_TASK"."MERCHANT_ORDER_ID" IS '商户订单编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_NOTIFY_TASK"."NEXT_NOTIFY_TIME" IS '下一次通知时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_NOTIFY_TASK"."LAST_EXECUTE_TIME" IS '最后一次执行时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_NOTIFY_TASK"."NOTIFY_TIMES" IS '当前通知次数'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_NOTIFY_TASK"."MAX_NOTIFY_TIMES" IS '最大可通知次数'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_NOTIFY_TASK"."NOTIFY_URL" IS '异步通知地址'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_NOTIFY_TASK"."CREATOR" IS '创建者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_NOTIFY_TASK"."CREATE_TIME" IS '创建时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_NOTIFY_TASK"."UPDATER" IS '更新者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_NOTIFY_TASK"."UPDATE_TIME" IS '更新时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_NOTIFY_TASK"."DELETED" IS '是否删除'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_NOTIFY_TASK"."TENANT_ID" IS '租户编号'; + +COMMENT ON TABLE "RUOYI_VUE_PRO"."PAY_ORDER" IS '支付订单 +'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_ORDER"."ID" IS '支付订单编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_ORDER"."MERCHANT_ID" IS '商户编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_ORDER"."APP_ID" IS '应用编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_ORDER"."CHANNEL_ID" IS '渠道编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_ORDER"."CHANNEL_CODE" IS '渠道编码'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_ORDER"."MERCHANT_ORDER_ID" IS '商户订单编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_ORDER"."SUBJECT" IS '商品标题'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_ORDER"."BODY" IS '商品描述'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_ORDER"."NOTIFY_URL" IS '异步通知地址'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_ORDER"."NOTIFY_STATUS" IS '通知商户支付结果的回调状态'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_ORDER"."AMOUNT" IS '支付金额,单位:分'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_ORDER"."CHANNEL_FEE_RATE" IS '渠道手续费,单位:百分比'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_ORDER"."CHANNEL_FEE_AMOUNT" IS '渠道手续金额,单位:分'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_ORDER"."STATUS" IS '支付状态'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_ORDER"."USER_IP" IS '用户 IP'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_ORDER"."EXPIRE_TIME" IS '订单失效时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_ORDER"."SUCCESS_TIME" IS '订单支付成功时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_ORDER"."NOTIFY_TIME" IS '订单支付通知时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_ORDER"."SUCCESS_EXTENSION_ID" IS '支付成功的订单拓展单编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_ORDER"."REFUND_STATUS" IS '退款状态'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_ORDER"."REFUND_TIMES" IS '退款次数'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_ORDER"."REFUND_AMOUNT" IS '退款总金额,单位:分'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_ORDER"."CHANNEL_USER_ID" IS '渠道用户编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_ORDER"."CHANNEL_ORDER_NO" IS '渠道订单号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_ORDER"."CREATOR" IS '创建者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_ORDER"."CREATE_TIME" IS '创建时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_ORDER"."UPDATER" IS '更新者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_ORDER"."UPDATE_TIME" IS '更新时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_ORDER"."DELETED" IS '是否删除'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_ORDER"."TENANT_ID" IS '租户编号'; + +COMMENT ON TABLE "RUOYI_VUE_PRO"."PAY_ORDER_EXTENSION" IS '支付订单 +'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_ORDER_EXTENSION"."ID" IS '支付订单编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_ORDER_EXTENSION"."NO" IS '支付订单号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_ORDER_EXTENSION"."ORDER_ID" IS '支付订单编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_ORDER_EXTENSION"."CHANNEL_ID" IS '渠道编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_ORDER_EXTENSION"."CHANNEL_CODE" IS '渠道编码'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_ORDER_EXTENSION"."USER_IP" IS '用户 IP'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_ORDER_EXTENSION"."STATUS" IS '支付状态'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_ORDER_EXTENSION"."CHANNEL_EXTRAS" IS '支付渠道的额外参数'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_ORDER_EXTENSION"."CHANNEL_NOTIFY_DATA" IS '支付渠道异步通知的内容'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_ORDER_EXTENSION"."CREATOR" IS '创建者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_ORDER_EXTENSION"."CREATE_TIME" IS '创建时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_ORDER_EXTENSION"."UPDATER" IS '更新者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_ORDER_EXTENSION"."UPDATE_TIME" IS '更新时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_ORDER_EXTENSION"."DELETED" IS '是否删除'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_ORDER_EXTENSION"."TENANT_ID" IS '租户编号'; + +COMMENT ON TABLE "RUOYI_VUE_PRO"."PAY_REFUND" IS '退款订单'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_REFUND"."ID" IS '支付退款编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_REFUND"."MERCHANT_ID" IS '商户编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_REFUND"."APP_ID" IS '应用编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_REFUND"."CHANNEL_ID" IS '渠道编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_REFUND"."CHANNEL_CODE" IS '渠道编码'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_REFUND"."ORDER_ID" IS '支付订单编号 pay_order 表id'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_REFUND"."TRADE_NO" IS '交易订单号 pay_extension 表no 字段'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_REFUND"."MERCHANT_ORDER_ID" IS '商户订单编号(商户系统生成)'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_REFUND"."MERCHANT_REFUND_NO" IS '商户退款订单号(商户系统生成)'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_REFUND"."NOTIFY_URL" IS '异步通知商户地址'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_REFUND"."NOTIFY_STATUS" IS '通知商户退款结果的回调状态'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_REFUND"."STATUS" IS '退款状态'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_REFUND"."TYPE" IS '退款类型(部分退款,全部退款)'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_REFUND"."PAY_AMOUNT" IS '支付金额,单位分'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_REFUND"."REFUND_AMOUNT" IS '退款金额,单位分'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_REFUND"."REASON" IS '退款原因'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_REFUND"."USER_IP" IS '用户 IP'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_REFUND"."CHANNEL_ORDER_NO" IS '渠道订单号,pay_order 中的channel_order_no 对应'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_REFUND"."CHANNEL_REFUND_NO" IS '渠道退款单号,渠道返回'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_REFUND"."CHANNEL_ERROR_CODE" IS '渠道调用报错时,错误码'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_REFUND"."CHANNEL_ERROR_MSG" IS '渠道调用报错时,错误信息'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_REFUND"."CHANNEL_EXTRAS" IS '支付渠道的额外参数'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_REFUND"."EXPIRE_TIME" IS '退款失效时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_REFUND"."SUCCESS_TIME" IS '退款成功时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_REFUND"."NOTIFY_TIME" IS '退款通知时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_REFUND"."CREATOR" IS '创建者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_REFUND"."CREATE_TIME" IS '创建时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_REFUND"."UPDATER" IS '更新者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_REFUND"."UPDATE_TIME" IS '更新时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_REFUND"."DELETED" IS '是否删除'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."PAY_REFUND"."TENANT_ID" IS '租户编号'; + +COMMENT ON TABLE "RUOYI_VUE_PRO"."SYSTEM_DEPT" IS '部门表'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_DEPT"."ID" IS '部门id'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_DEPT"."NAME" IS '部门名称'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_DEPT"."PARENT_ID" IS '父部门id'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_DEPT"."SORT" IS '显示顺序'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_DEPT"."LEADER_USER_ID" IS '负责人'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_DEPT"."PHONE" IS '联系电话'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_DEPT"."EMAIL" IS '邮箱'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_DEPT"."STATUS" IS '部门状态(0正常 1停用)'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_DEPT"."CREATOR" IS '创建者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_DEPT"."CREATE_TIME" IS '创建时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_DEPT"."UPDATER" IS '更新者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_DEPT"."UPDATE_TIME" IS '更新时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_DEPT"."DELETED" IS '是否删除'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_DEPT"."TENANT_ID" IS '租户编号'; + +COMMENT ON TABLE "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA" IS '字典数据表'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"."ID" IS '字典编码'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"."SORT" IS '字典排序'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"."LABEL" IS '字典标签'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"."VALUE" IS '字典键值'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"."DICT_TYPE" IS '字典类型'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"."STATUS" IS '状态(0正常 1停用)'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"."COLOR_TYPE" IS '颜色类型'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"."CSS_CLASS" IS 'css 样式'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"."REMARK" IS '备注'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"."CREATOR" IS '创建者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"."CREATE_TIME" IS '创建时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"."UPDATER" IS '更新者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"."UPDATE_TIME" IS '更新时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_DICT_DATA"."DELETED" IS '是否删除'; + +COMMENT ON TABLE "RUOYI_VUE_PRO"."SYSTEM_DICT_TYPE" IS '字典类型表'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_DICT_TYPE"."ID" IS '字典主键'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_DICT_TYPE"."NAME" IS '字典名称'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_DICT_TYPE"."TYPE" IS '字典类型'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_DICT_TYPE"."STATUS" IS '状态(0正常 1停用)'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_DICT_TYPE"."REMARK" IS '备注'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_DICT_TYPE"."CREATOR" IS '创建者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_DICT_TYPE"."CREATE_TIME" IS '创建时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_DICT_TYPE"."UPDATER" IS '更新者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_DICT_TYPE"."UPDATE_TIME" IS '更新时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_DICT_TYPE"."DELETED" IS '是否删除'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_DICT_TYPE"."DELETED_TIME" IS '删除时间'; + +COMMENT ON TABLE "RUOYI_VUE_PRO"."SYSTEM_ERROR_CODE" IS '错误码表'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_ERROR_CODE"."ID" IS '错误码编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_ERROR_CODE"."TYPE" IS '错误码类型'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_ERROR_CODE"."APPLICATION_NAME" IS '应用名'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_ERROR_CODE"."CODE" IS '错误码编码'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_ERROR_CODE"."MESSAGE" IS '错误码错误提示'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_ERROR_CODE"."MEMO" IS '备注'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_ERROR_CODE"."CREATOR" IS '创建者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_ERROR_CODE"."CREATE_TIME" IS '创建时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_ERROR_CODE"."UPDATER" IS '更新者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_ERROR_CODE"."UPDATE_TIME" IS '更新时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_ERROR_CODE"."DELETED" IS '是否删除'; + +COMMENT ON TABLE "RUOYI_VUE_PRO"."SYSTEM_LOGIN_LOG" IS '系统访问记录'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_LOGIN_LOG"."ID" IS '访问ID'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_LOGIN_LOG"."LOG_TYPE" IS '日志类型'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_LOGIN_LOG"."TRACE_ID" IS '链路追踪编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_LOGIN_LOG"."USER_ID" IS '用户编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_LOGIN_LOG"."USER_TYPE" IS '用户类型'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_LOGIN_LOG"."USERNAME" IS '用户账号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_LOGIN_LOG"."RESULT" IS '登陆结果'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_LOGIN_LOG"."USER_IP" IS '用户 IP'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_LOGIN_LOG"."USER_AGENT" IS '浏览器 UA'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_LOGIN_LOG"."CREATOR" IS '创建者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_LOGIN_LOG"."CREATE_TIME" IS '创建时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_LOGIN_LOG"."UPDATER" IS '更新者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_LOGIN_LOG"."UPDATE_TIME" IS '更新时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_LOGIN_LOG"."DELETED" IS '是否删除'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_LOGIN_LOG"."TENANT_ID" IS '租户编号'; + +COMMENT ON TABLE "RUOYI_VUE_PRO"."SYSTEM_MAIL_ACCOUNT" IS '邮箱账号表'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_MAIL_ACCOUNT"."ID" IS '主键'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_MAIL_ACCOUNT"."MAIL" IS '邮箱'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_MAIL_ACCOUNT"."USERNAME" IS '用户名'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_MAIL_ACCOUNT"."PASSWORD" IS '密码'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_MAIL_ACCOUNT"."HOST" IS 'SMTP 服务器域名'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_MAIL_ACCOUNT"."PORT" IS 'SMTP 服务器端口'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_MAIL_ACCOUNT"."SSL_ENABLE" IS '是否开启 SSL'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_MAIL_ACCOUNT"."CREATOR" IS '创建者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_MAIL_ACCOUNT"."CREATE_TIME" IS '创建时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_MAIL_ACCOUNT"."UPDATER" IS '更新者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_MAIL_ACCOUNT"."UPDATE_TIME" IS '更新时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_MAIL_ACCOUNT"."DELETED" IS '是否删除'; + +COMMENT ON TABLE "RUOYI_VUE_PRO"."SYSTEM_MAIL_LOG" IS '邮件日志表'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_MAIL_LOG"."ID" IS '编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_MAIL_LOG"."USER_ID" IS '用户编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_MAIL_LOG"."USER_TYPE" IS '用户类型'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_MAIL_LOG"."TO_MAIL" IS '接收邮箱地址'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_MAIL_LOG"."ACCOUNT_ID" IS '邮箱账号编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_MAIL_LOG"."FROM_MAIL" IS '发送邮箱地址'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_MAIL_LOG"."TEMPLATE_ID" IS '模板编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_MAIL_LOG"."TEMPLATE_CODE" IS '模板编码'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_MAIL_LOG"."TEMPLATE_NICKNAME" IS '模版发送人名称'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_MAIL_LOG"."TEMPLATE_TITLE" IS '邮件标题'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_MAIL_LOG"."TEMPLATE_CONTENT" IS '邮件内容'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_MAIL_LOG"."TEMPLATE_PARAMS" IS '邮件参数'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_MAIL_LOG"."SEND_STATUS" IS '发送状态'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_MAIL_LOG"."SEND_TIME" IS '发送时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_MAIL_LOG"."SEND_MESSAGE_ID" IS '发送返回的消息 ID'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_MAIL_LOG"."SEND_EXCEPTION" IS '发送异常'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_MAIL_LOG"."CREATOR" IS '创建者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_MAIL_LOG"."CREATE_TIME" IS '创建时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_MAIL_LOG"."UPDATER" IS '更新者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_MAIL_LOG"."UPDATE_TIME" IS '更新时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_MAIL_LOG"."DELETED" IS '是否删除'; + +COMMENT ON TABLE "RUOYI_VUE_PRO"."SYSTEM_MAIL_TEMPLATE" IS '邮件模版表'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_MAIL_TEMPLATE"."ID" IS '编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_MAIL_TEMPLATE"."NAME" IS '模板名称'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_MAIL_TEMPLATE"."CODE" IS '模板编码'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_MAIL_TEMPLATE"."ACCOUNT_ID" IS '发送的邮箱账号编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_MAIL_TEMPLATE"."NICKNAME" IS '发送人名称'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_MAIL_TEMPLATE"."TITLE" IS '模板标题'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_MAIL_TEMPLATE"."CONTENT" IS '模板内容'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_MAIL_TEMPLATE"."PARAMS" IS '参数数组'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_MAIL_TEMPLATE"."STATUS" IS '开启状态'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_MAIL_TEMPLATE"."REMARK" IS '备注'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_MAIL_TEMPLATE"."CREATOR" IS '创建者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_MAIL_TEMPLATE"."CREATE_TIME" IS '创建时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_MAIL_TEMPLATE"."UPDATER" IS '更新者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_MAIL_TEMPLATE"."UPDATE_TIME" IS '更新时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_MAIL_TEMPLATE"."DELETED" IS '是否删除'; + +COMMENT ON TABLE "RUOYI_VUE_PRO"."SYSTEM_MENU" IS '菜单权限表'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_MENU"."ID" IS '菜单ID'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_MENU"."NAME" IS '菜单名称'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_MENU"."PERMISSION" IS '权限标识'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_MENU"."TYPE" IS '菜单类型'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_MENU"."SORT" IS '显示顺序'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_MENU"."PARENT_ID" IS '父菜单ID'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_MENU"."PATH" IS '路由地址'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_MENU"."ICON" IS '菜单图标'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_MENU"."COMPONENT" IS '组件路径'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_MENU"."COMPONENT_NAME" IS '组件名'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_MENU"."STATUS" IS '菜单状态'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_MENU"."VISIBLE" IS '是否可见'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_MENU"."KEEP_ALIVE" IS '是否缓存'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_MENU"."ALWAYS_SHOW" IS '是否总是显示'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_MENU"."CREATOR" IS '创建者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_MENU"."CREATE_TIME" IS '创建时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_MENU"."UPDATER" IS '更新者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_MENU"."UPDATE_TIME" IS '更新时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_MENU"."DELETED" IS '是否删除'; + +COMMENT ON TABLE "RUOYI_VUE_PRO"."SYSTEM_NOTICE" IS '通知公告表'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_NOTICE"."ID" IS '公告ID'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_NOTICE"."TITLE" IS '公告标题'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_NOTICE"."CONTENT" IS '公告内容'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_NOTICE"."TYPE" IS '公告类型(1通知 2公告)'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_NOTICE"."STATUS" IS '公告状态(0正常 1关闭)'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_NOTICE"."CREATOR" IS '创建者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_NOTICE"."CREATE_TIME" IS '创建时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_NOTICE"."UPDATER" IS '更新者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_NOTICE"."UPDATE_TIME" IS '更新时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_NOTICE"."DELETED" IS '是否删除'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_NOTICE"."TENANT_ID" IS '租户编号'; + +CREATE TABLE "RUOYI_VUE_PRO"."SYSTEM_NOTIFY_MESSAGE" +( + "ID" BIGINT IDENTITY(9,1) NOT NULL, + "USER_ID" BIGINT NOT NULL, + "USER_TYPE" TINYINT NOT NULL, + "TEMPLATE_ID" BIGINT NOT NULL, + "TEMPLATE_CODE" VARCHAR(64) NOT NULL, + "TEMPLATE_NICKNAME" VARCHAR(63) NOT NULL, + "TEMPLATE_CONTENT" VARCHAR(1024) NOT NULL, + "TEMPLATE_TYPE" INT NOT NULL, + "TEMPLATE_PARAMS" VARCHAR(255) NOT NULL, + "READ_STATUS" BIT NOT NULL, + "READ_TIME" TIMESTAMP(0) NULL, + "CREATOR" VARCHAR(64) DEFAULT '' + NULL, + "CREATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "UPDATER" VARCHAR(64) DEFAULT '' + NULL, + "UPDATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "DELETED" BIT DEFAULT '0' + NOT NULL, + "TENANT_ID" BIGINT DEFAULT 0 + NOT NULL +); +CREATE TABLE "RUOYI_VUE_PRO"."SYSTEM_NOTIFY_TEMPLATE" +( + "ID" BIGINT IDENTITY(4,1) NOT NULL, + "NAME" VARCHAR(63) NOT NULL, + "CODE" VARCHAR(64) NOT NULL, + "NICKNAME" VARCHAR(255) NOT NULL, + "CONTENT" VARCHAR(1024) NOT NULL, + "TYPE" TINYINT NOT NULL, + "PARAMS" VARCHAR(255) NULL, + "STATUS" TINYINT NOT NULL, + "REMARK" VARCHAR(255) NULL, + "CREATOR" VARCHAR(64) DEFAULT '' + NULL, + "CREATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "UPDATER" VARCHAR(64) DEFAULT '' + NULL, + "UPDATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "DELETED" BIT DEFAULT '0' + NOT NULL +); +CREATE TABLE "RUOYI_VUE_PRO"."SYSTEM_OAUTH2_ACCESS_TOKEN" +( + "ID" BIGINT IDENTITY(1785,1) NOT NULL, + "USER_ID" BIGINT NOT NULL, + "USER_TYPE" TINYINT NOT NULL, + "ACCESS_TOKEN" VARCHAR(255) NOT NULL, + "REFRESH_TOKEN" VARCHAR(32) NOT NULL, + "CLIENT_ID" VARCHAR(255) NOT NULL, + "SCOPES" VARCHAR(255) NULL, + "EXPIRES_TIME" TIMESTAMP(0) NOT NULL, + "CREATOR" VARCHAR(64) DEFAULT '' + NULL, + "CREATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "UPDATER" VARCHAR(64) DEFAULT '' + NULL, + "UPDATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "DELETED" BIT DEFAULT '0' + NOT NULL, + "TENANT_ID" BIGINT DEFAULT 0 + NOT NULL +); +CREATE TABLE "RUOYI_VUE_PRO"."SYSTEM_OAUTH2_APPROVE" +( + "ID" BIGINT IDENTITY(82,1) NOT NULL, + "USER_ID" BIGINT NOT NULL, + "USER_TYPE" TINYINT NOT NULL, + "CLIENT_ID" VARCHAR(255) NOT NULL, + "SCOPE" VARCHAR(255) DEFAULT '' + NOT NULL, + "APPROVED" BIT DEFAULT '0' + NOT NULL, + "EXPIRES_TIME" TIMESTAMP(0) NOT NULL, + "CREATOR" VARCHAR(64) DEFAULT '' + NULL, + "CREATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "UPDATER" VARCHAR(64) DEFAULT '' + NULL, + "UPDATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "DELETED" BIT DEFAULT '0' + NOT NULL, + "TENANT_ID" BIGINT DEFAULT 0 + NOT NULL +); +CREATE TABLE "RUOYI_VUE_PRO"."SYSTEM_OAUTH2_CLIENT" +( + "ID" BIGINT IDENTITY(43,1) NOT NULL, + "CLIENT_ID" VARCHAR(255) NOT NULL, + "SECRET" VARCHAR(255) NOT NULL, + "NAME" VARCHAR(255) NOT NULL, + "LOGO" VARCHAR(255) NOT NULL, + "DESCRIPTION" VARCHAR(255) NULL, + "STATUS" TINYINT NOT NULL, + "ACCESS_TOKEN_VALIDITY_SECONDS" INT NOT NULL, + "REFRESH_TOKEN_VALIDITY_SECONDS" INT NOT NULL, + "REDIRECT_URIS" VARCHAR(255) NOT NULL, + "AUTHORIZED_GRANT_TYPES" VARCHAR(255) NOT NULL, + "SCOPES" VARCHAR(255) NULL, + "AUTO_APPROVE_SCOPES" VARCHAR(255) NULL, + "AUTHORITIES" VARCHAR(255) NULL, + "RESOURCE_IDS" VARCHAR(255) NULL, + "ADDITIONAL_INFORMATION" VARCHAR(4096) NULL, + "CREATOR" VARCHAR(64) DEFAULT '' + NULL, + "CREATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "UPDATER" VARCHAR(64) DEFAULT '' + NULL, + "UPDATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "DELETED" BIT DEFAULT '0' + NOT NULL +); +CREATE TABLE "RUOYI_VUE_PRO"."SYSTEM_OAUTH2_CODE" +( + "ID" BIGINT IDENTITY(147,1) NOT NULL, + "USER_ID" BIGINT NOT NULL, + "USER_TYPE" TINYINT NOT NULL, + "CODE" VARCHAR(32) NOT NULL, + "CLIENT_ID" VARCHAR(255) NOT NULL, + "SCOPES" VARCHAR(255) DEFAULT '' + NULL, + "EXPIRES_TIME" TIMESTAMP(0) NOT NULL, + "REDIRECT_URI" VARCHAR(255) NULL, + "STATE" VARCHAR(255) DEFAULT '' + NOT NULL, + "CREATOR" VARCHAR(64) DEFAULT '' + NULL, + "CREATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "UPDATER" VARCHAR(64) DEFAULT '' + NULL, + "UPDATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "DELETED" BIT DEFAULT '0' + NOT NULL, + "TENANT_ID" BIGINT DEFAULT 0 + NOT NULL +); +CREATE TABLE "RUOYI_VUE_PRO"."SYSTEM_OAUTH2_REFRESH_TOKEN" +( + "ID" BIGINT IDENTITY(738,1) NOT NULL, + "USER_ID" BIGINT NOT NULL, + "REFRESH_TOKEN" VARCHAR(32) NOT NULL, + "USER_TYPE" TINYINT NOT NULL, + "CLIENT_ID" VARCHAR(255) NOT NULL, + "SCOPES" VARCHAR(255) NULL, + "EXPIRES_TIME" TIMESTAMP(0) NOT NULL, + "CREATOR" VARCHAR(64) DEFAULT '' + NULL, + "CREATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "UPDATER" VARCHAR(64) DEFAULT '' + NULL, + "UPDATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "DELETED" BIT DEFAULT '0' + NOT NULL, + "TENANT_ID" BIGINT DEFAULT 0 + NOT NULL +); +CREATE TABLE "RUOYI_VUE_PRO"."SYSTEM_OPERATE_LOG" +( + "ID" BIGINT IDENTITY(6440,1) NOT NULL, + "TRACE_ID" VARCHAR(64) DEFAULT '' + NOT NULL, + "USER_ID" BIGINT NOT NULL, + "USER_TYPE" TINYINT DEFAULT 0 + NOT NULL, + "MODULE" VARCHAR(50) NOT NULL, + "NAME" VARCHAR(50) NOT NULL, + "TYPE" BIGINT DEFAULT 0 + NOT NULL, + "CONTENT" VARCHAR(2000) DEFAULT '' + NOT NULL, + "EXTS" VARCHAR(512) DEFAULT '' + NOT NULL, + "REQUEST_METHOD" VARCHAR(16) DEFAULT '' + NULL, + "REQUEST_URL" VARCHAR(255) DEFAULT '' + NULL, + "USER_IP" VARCHAR(50) NULL, + "USER_AGENT" VARCHAR(200) NULL, + "JAVA_METHOD" VARCHAR(512) DEFAULT '' + NOT NULL, + "JAVA_METHOD_ARGS" VARCHAR(8000) DEFAULT '' + NULL, + "START_TIME" TIMESTAMP(0) NOT NULL, + "DURATION" INT NOT NULL, + "RESULT_CODE" INT DEFAULT 0 + NOT NULL, + "RESULT_MSG" VARCHAR(512) DEFAULT '' + NULL, + "RESULT_DATA" VARCHAR(4000) DEFAULT '' + NULL, + "CREATOR" VARCHAR(64) DEFAULT '' + NULL, + "CREATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "UPDATER" VARCHAR(64) DEFAULT '' + NULL, + "UPDATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "DELETED" BIT DEFAULT '0' + NOT NULL, + "TENANT_ID" BIGINT DEFAULT 0 + NOT NULL +); +CREATE TABLE "RUOYI_VUE_PRO"."SYSTEM_POST" +( + "ID" BIGINT IDENTITY(5,1) NOT NULL, + "CODE" VARCHAR(64) NOT NULL, + "NAME" VARCHAR(50) NOT NULL, + "SORT" INT NOT NULL, + "STATUS" TINYINT NOT NULL, + "REMARK" VARCHAR(500) NULL, + "CREATOR" VARCHAR(64) DEFAULT '' + NULL, + "CREATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "UPDATER" VARCHAR(64) DEFAULT '' + NULL, + "UPDATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "DELETED" BIT DEFAULT '0' + NOT NULL, + "TENANT_ID" BIGINT DEFAULT 0 + NOT NULL +); +CREATE TABLE "RUOYI_VUE_PRO"."SYSTEM_ROLE" +( + "ID" BIGINT IDENTITY(139,1) NOT NULL, + "NAME" VARCHAR(30) NOT NULL, + "CODE" VARCHAR(100) NOT NULL, + "SORT" INT NOT NULL, + "DATA_SCOPE" TINYINT DEFAULT 1 + NOT NULL, + "DATA_SCOPE_DEPT_IDS" VARCHAR(500) DEFAULT '' + NOT NULL, + "STATUS" TINYINT NOT NULL, + "TYPE" TINYINT NOT NULL, + "REMARK" VARCHAR(500) NULL, + "CREATOR" VARCHAR(64) DEFAULT '' + NULL, + "CREATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "UPDATER" VARCHAR(64) DEFAULT '' + NULL, + "UPDATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "DELETED" BIT DEFAULT '0' + NOT NULL, + "TENANT_ID" BIGINT DEFAULT 0 + NOT NULL +); +CREATE TABLE "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU" +( + "ID" BIGINT IDENTITY(2873,1) NOT NULL, + "ROLE_ID" BIGINT NOT NULL, + "MENU_ID" BIGINT NOT NULL, + "CREATOR" VARCHAR(64) DEFAULT '' + NULL, + "CREATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "UPDATER" VARCHAR(64) DEFAULT '' + NULL, + "UPDATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "DELETED" BIT DEFAULT '0' + NOT NULL, + "TENANT_ID" BIGINT DEFAULT 0 + NOT NULL +); +CREATE TABLE "RUOYI_VUE_PRO"."SYSTEM_SENSITIVE_WORD" +( + "ID" BIGINT IDENTITY(6,1) NOT NULL, + "NAME" VARCHAR(255) NOT NULL, + "DESCRIPTION" VARCHAR(512) NULL, + "TAGS" VARCHAR(255) NULL, + "STATUS" TINYINT NOT NULL, + "CREATOR" VARCHAR(64) DEFAULT '' + NULL, + "CREATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "UPDATER" VARCHAR(64) DEFAULT '' + NULL, + "UPDATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "DELETED" BIT DEFAULT '0' + NOT NULL +); +CREATE TABLE "RUOYI_VUE_PRO"."SYSTEM_SMS_CHANNEL" +( + "ID" BIGINT IDENTITY(7,1) NOT NULL, + "SIGNATURE" VARCHAR(12) NOT NULL, + "CODE" VARCHAR(63) NOT NULL, + "STATUS" TINYINT NOT NULL, + "REMARK" VARCHAR(255) NULL, + "API_KEY" VARCHAR(128) NOT NULL, + "API_SECRET" VARCHAR(128) NULL, + "CALLBACK_URL" VARCHAR(255) NULL, + "CREATOR" VARCHAR(64) DEFAULT '' + NULL, + "CREATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "UPDATER" VARCHAR(64) DEFAULT '' + NULL, + "UPDATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "DELETED" BIT DEFAULT '0' + NOT NULL +); +CREATE TABLE "RUOYI_VUE_PRO"."SYSTEM_SMS_CODE" +( + "ID" BIGINT IDENTITY(484,1) NOT NULL, + "MOBILE" VARCHAR(11) NOT NULL, + "CODE" VARCHAR(6) NOT NULL, + "CREATE_IP" VARCHAR(15) NOT NULL, + "SCENE" TINYINT NOT NULL, + "TODAY_INDEX" TINYINT NOT NULL, + "USED" TINYINT NOT NULL, + "USED_TIME" TIMESTAMP(0) NULL, + "USED_IP" VARCHAR(255) NULL, + "CREATOR" VARCHAR(64) DEFAULT '' + NULL, + "CREATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "UPDATER" VARCHAR(64) DEFAULT '' + NULL, + "UPDATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "DELETED" BIT DEFAULT '0' + NOT NULL, + "TENANT_ID" BIGINT DEFAULT 0 + NOT NULL +); +CREATE TABLE "RUOYI_VUE_PRO"."SYSTEM_SMS_LOG" +( + "ID" BIGINT IDENTITY(349,1) NOT NULL, + "CHANNEL_ID" BIGINT NOT NULL, + "CHANNEL_CODE" VARCHAR(63) NOT NULL, + "TEMPLATE_ID" BIGINT NOT NULL, + "TEMPLATE_CODE" VARCHAR(63) NOT NULL, + "TEMPLATE_TYPE" TINYINT NOT NULL, + "TEMPLATE_CONTENT" VARCHAR(255) NOT NULL, + "TEMPLATE_PARAMS" VARCHAR(255) NOT NULL, + "API_TEMPLATE_ID" VARCHAR(63) NOT NULL, + "MOBILE" VARCHAR(11) NOT NULL, + "USER_ID" BIGINT NULL, + "USER_TYPE" TINYINT NULL, + "SEND_STATUS" TINYINT DEFAULT 0 + NOT NULL, + "SEND_TIME" TIMESTAMP(0) NULL, + "SEND_CODE" INT NULL, + "SEND_MSG" VARCHAR(255) NULL, + "API_SEND_CODE" VARCHAR(63) NULL, + "API_SEND_MSG" VARCHAR(255) NULL, + "API_REQUEST_ID" VARCHAR(255) NULL, + "API_SERIAL_NO" VARCHAR(255) NULL, + "RECEIVE_STATUS" TINYINT DEFAULT 0 + NOT NULL, + "RECEIVE_TIME" TIMESTAMP(0) NULL, + "API_RECEIVE_CODE" VARCHAR(63) NULL, + "API_RECEIVE_MSG" VARCHAR(255) NULL, + "CREATOR" VARCHAR(64) DEFAULT '' + NULL, + "CREATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "UPDATER" VARCHAR(64) DEFAULT '' + NULL, + "UPDATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "DELETED" BIT DEFAULT '0' + NOT NULL +); +CREATE TABLE "RUOYI_VUE_PRO"."SYSTEM_SMS_TEMPLATE" +( + "ID" BIGINT IDENTITY(14,1) NOT NULL, + "TYPE" TINYINT NOT NULL, + "STATUS" TINYINT NOT NULL, + "CODE" VARCHAR(63) NOT NULL, + "NAME" VARCHAR(63) NOT NULL, + "CONTENT" VARCHAR(255) NOT NULL, + "PARAMS" VARCHAR(255) NOT NULL, + "REMARK" VARCHAR(255) NULL, + "API_TEMPLATE_ID" VARCHAR(63) NOT NULL, + "CHANNEL_ID" BIGINT NOT NULL, + "CHANNEL_CODE" VARCHAR(63) NOT NULL, + "CREATOR" VARCHAR(64) DEFAULT '' + NULL, + "CREATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "UPDATER" VARCHAR(64) DEFAULT '' + NULL, + "UPDATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "DELETED" BIT DEFAULT '0' + NOT NULL +); +CREATE TABLE "RUOYI_VUE_PRO"."SYSTEM_SOCIAL_USER" +( + "ID" BIGINT IDENTITY(20,1) NOT NULL, + "TYPE" TINYINT NOT NULL, + "OPENID" VARCHAR(32) NOT NULL, + "TOKEN" VARCHAR(256) NULL, + "RAW_TOKEN_INFO" VARCHAR(1024) NOT NULL, + "NICKNAME" VARCHAR(32) NOT NULL, + "AVATAR" VARCHAR(255) NULL, + "RAW_USER_INFO" VARCHAR(1024) NOT NULL, + "CODE" VARCHAR(256) NOT NULL, + "STATE" VARCHAR(256) NULL, + "CREATOR" VARCHAR(64) DEFAULT '' + NULL, + "CREATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "UPDATER" VARCHAR(64) DEFAULT '' + NULL, + "UPDATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "DELETED" BIT DEFAULT '0' + NOT NULL, + "TENANT_ID" BIGINT DEFAULT 0 + NOT NULL +); +CREATE TABLE "RUOYI_VUE_PRO"."SYSTEM_SOCIAL_USER_BIND" +( + "ID" BIGINT IDENTITY(39,1) NOT NULL, + "USER_ID" BIGINT NOT NULL, + "USER_TYPE" TINYINT NOT NULL, + "SOCIAL_TYPE" TINYINT NOT NULL, + "SOCIAL_USER_ID" BIGINT NOT NULL, + "CREATOR" VARCHAR(64) DEFAULT '' + NULL, + "CREATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "UPDATER" VARCHAR(64) DEFAULT '' + NULL, + "UPDATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "DELETED" BIT DEFAULT '0' + NOT NULL, + "TENANT_ID" BIGINT DEFAULT 0 + NOT NULL +); +CREATE TABLE "RUOYI_VUE_PRO"."SYSTEM_TENANT" +( + "ID" BIGINT IDENTITY(150,1) NOT NULL, + "NAME" VARCHAR(30) NOT NULL, + "CONTACT_USER_ID" BIGINT NULL, + "CONTACT_NAME" VARCHAR(30) NOT NULL, + "CONTACT_MOBILE" VARCHAR(500) NULL, + "STATUS" TINYINT DEFAULT 0 + NOT NULL, + "DOMAIN" VARCHAR(256) DEFAULT '' + NULL, + "PACKAGE_ID" BIGINT NOT NULL, + "EXPIRE_TIME" TIMESTAMP(0) NOT NULL, + "ACCOUNT_COUNT" INT NOT NULL, + "CREATOR" VARCHAR(64) DEFAULT '' + NOT NULL, + "CREATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "UPDATER" VARCHAR(64) DEFAULT '' + NULL, + "UPDATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "DELETED" BIT DEFAULT '0' + NOT NULL +); +CREATE TABLE "RUOYI_VUE_PRO"."SYSTEM_TENANT_PACKAGE" +( + "ID" BIGINT IDENTITY(112,1) NOT NULL, + "NAME" VARCHAR(30) NOT NULL, + "STATUS" TINYINT DEFAULT 0 + NOT NULL, + "REMARK" VARCHAR(256) DEFAULT '' + NULL, + "MENU_IDS" VARCHAR(2048) NOT NULL, + "CREATOR" VARCHAR(64) DEFAULT '' + NOT NULL, + "CREATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "UPDATER" VARCHAR(64) DEFAULT '' + NULL, + "UPDATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "DELETED" BIT DEFAULT '0' + NOT NULL +); +CREATE TABLE "RUOYI_VUE_PRO"."SYSTEM_USERS" +( + "ID" BIGINT IDENTITY(126,1) NOT NULL, + "USERNAME" VARCHAR(30) NOT NULL, + "PASSWORD" VARCHAR(100) DEFAULT '' + NOT NULL, + "NICKNAME" VARCHAR(30) NOT NULL, + "REMARK" VARCHAR(500) NULL, + "DEPT_ID" BIGINT NULL, + "POST_IDS" VARCHAR(255) NULL, + "EMAIL" VARCHAR(50) DEFAULT '' + NULL, + "MOBILE" VARCHAR(11) DEFAULT '' + NULL, + "SEX" TINYINT DEFAULT 0 + NULL, + "AVATAR" VARCHAR(512) DEFAULT '' + NULL, + "STATUS" TINYINT DEFAULT 0 + NOT NULL, + "LOGIN_IP" VARCHAR(50) DEFAULT '' + NULL, + "LOGIN_DATE" TIMESTAMP(0) NULL, + "CREATOR" VARCHAR(64) DEFAULT '' + NULL, + "CREATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "UPDATER" VARCHAR(64) DEFAULT '' + NULL, + "UPDATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "DELETED" BIT DEFAULT '0' + NOT NULL, + "TENANT_ID" BIGINT DEFAULT 0 + NOT NULL +); +CREATE TABLE "RUOYI_VUE_PRO"."SYSTEM_USER_POST" +( + "ID" BIGINT IDENTITY(118,1) NOT NULL, + "USER_ID" BIGINT DEFAULT 0 + NOT NULL, + "POST_ID" BIGINT DEFAULT 0 + NOT NULL, + "CREATOR" VARCHAR(64) DEFAULT '' + NULL, + "CREATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "UPDATER" VARCHAR(64) DEFAULT '' + NULL, + "UPDATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NOT NULL, + "DELETED" BIT DEFAULT '0' + NOT NULL, + "TENANT_ID" BIGINT DEFAULT 0 + NOT NULL +); +CREATE TABLE "RUOYI_VUE_PRO"."SYSTEM_USER_ROLE" +( + "ID" BIGINT IDENTITY(31,1) NOT NULL, + "USER_ID" BIGINT NOT NULL, + "ROLE_ID" BIGINT NOT NULL, + "CREATOR" VARCHAR(64) DEFAULT '' + NULL, + "CREATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NULL, + "UPDATER" VARCHAR(64) DEFAULT '' + NULL, + "UPDATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NULL, + "DELETED" BIT DEFAULT '0' + NULL, + "TENANT_ID" BIGINT DEFAULT 0 + NOT NULL +); +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."SYSTEM_NOTIFY_MESSAGE" ON; +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_NOTIFY_MESSAGE"("ID","USER_ID","USER_TYPE","TEMPLATE_ID","TEMPLATE_CODE","TEMPLATE_NICKNAME","TEMPLATE_CONTENT","TEMPLATE_TYPE","TEMPLATE_PARAMS","READ_STATUS","READ_TIME","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2,1,2,1,'test','123','我是 1,我开始 2 了',1,'{"name":"1","what":"2"}',1,'2023-02-10 00:47:04','1','2023-01-28 11:44:08','1','2023-02-10 00:47:04',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_NOTIFY_MESSAGE"("ID","USER_ID","USER_TYPE","TEMPLATE_ID","TEMPLATE_CODE","TEMPLATE_NICKNAME","TEMPLATE_CONTENT","TEMPLATE_TYPE","TEMPLATE_PARAMS","READ_STATUS","READ_TIME","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(3,1,2,1,'test','123','我是 1,我开始 2 了',1,'{"name":"1","what":"2"}',1,'2023-02-10 00:47:04','1','2023-01-28 11:45:04','1','2023-02-10 00:47:04',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_NOTIFY_MESSAGE"("ID","USER_ID","USER_TYPE","TEMPLATE_ID","TEMPLATE_CODE","TEMPLATE_NICKNAME","TEMPLATE_CONTENT","TEMPLATE_TYPE","TEMPLATE_PARAMS","READ_STATUS","READ_TIME","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(4,103,2,2,'register','系统消息','你好,欢迎 哈哈 加入大家庭!',2,'{"name":"哈哈"}',0,null,'1','2023-01-28 21:02:20','1','2023-01-28 21:02:20',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_NOTIFY_MESSAGE"("ID","USER_ID","USER_TYPE","TEMPLATE_ID","TEMPLATE_CODE","TEMPLATE_NICKNAME","TEMPLATE_CONTENT","TEMPLATE_TYPE","TEMPLATE_PARAMS","READ_STATUS","READ_TIME","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(5,1,2,1,'test','123','我是 芋艿,我开始 写代码 了',1,'{"name":"芋艿","what":"写代码"}',1,'2023-02-10 00:47:04','1','2023-01-28 22:21:42','1','2023-02-10 00:47:04',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_NOTIFY_MESSAGE"("ID","USER_ID","USER_TYPE","TEMPLATE_ID","TEMPLATE_CODE","TEMPLATE_NICKNAME","TEMPLATE_CONTENT","TEMPLATE_TYPE","TEMPLATE_PARAMS","READ_STATUS","READ_TIME","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(6,1,2,1,'test','123','我是 芋艿,我开始 写代码 了',1,'{"name":"芋艿","what":"写代码"}',1,'2023-01-29 10:52:06','1','2023-01-28 22:22:07','1','2023-01-29 10:52:06',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_NOTIFY_MESSAGE"("ID","USER_ID","USER_TYPE","TEMPLATE_ID","TEMPLATE_CODE","TEMPLATE_NICKNAME","TEMPLATE_CONTENT","TEMPLATE_TYPE","TEMPLATE_PARAMS","READ_STATUS","READ_TIME","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(7,1,2,1,'test','123','我是 2,我开始 3 了',1,'{"name":"2","what":"3"}',1,'2023-01-29 10:52:06','1','2023-01-28 23:45:21','1','2023-01-29 10:52:06',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_NOTIFY_MESSAGE"("ID","USER_ID","USER_TYPE","TEMPLATE_ID","TEMPLATE_CODE","TEMPLATE_NICKNAME","TEMPLATE_CONTENT","TEMPLATE_TYPE","TEMPLATE_PARAMS","READ_STATUS","READ_TIME","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(8,1,2,2,'register','系统消息','你好,欢迎 123 加入大家庭!',2,'{"name":"123"}',1,'2023-01-29 10:52:06','1','2023-01-28 23:50:21','1','2023-01-29 10:52:06',0,1); + +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."SYSTEM_NOTIFY_MESSAGE" OFF; +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."SYSTEM_NOTIFY_TEMPLATE" ON; +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."SYSTEM_NOTIFY_TEMPLATE" OFF; +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."SYSTEM_OAUTH2_ACCESS_TOKEN" ON; +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."SYSTEM_OAUTH2_ACCESS_TOKEN" OFF; +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."SYSTEM_OAUTH2_APPROVE" ON; +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."SYSTEM_OAUTH2_APPROVE" OFF; +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."SYSTEM_OAUTH2_CLIENT" ON; +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_OAUTH2_CLIENT"("ID","CLIENT_ID","SECRET","NAME","LOGO","DESCRIPTION","STATUS","ACCESS_TOKEN_VALIDITY_SECONDS","REFRESH_TOKEN_VALIDITY_SECONDS","REDIRECT_URIS","AUTHORIZED_GRANT_TYPES","SCOPES","AUTO_APPROVE_SCOPES","AUTHORITIES","RESOURCE_IDS","ADDITIONAL_INFORMATION","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1,'default','admin123','芋道源码','http://test.yudao.iocoder.cn/a5e2e244368878a366b516805a4aabf1.png','我是描述',0,1800,43200,'["https://www.iocoder.cn","https://doc.iocoder.cn"]','["password","authorization_code","implicit","refresh_token"]','["user.read","user.write"]','[]','["user.read","user.write"]','[]','{}','1','2022-05-11 21:47:12','1','2022-07-05 16:23:52',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_OAUTH2_CLIENT"("ID","CLIENT_ID","SECRET","NAME","LOGO","DESCRIPTION","STATUS","ACCESS_TOKEN_VALIDITY_SECONDS","REFRESH_TOKEN_VALIDITY_SECONDS","REDIRECT_URIS","AUTHORIZED_GRANT_TYPES","SCOPES","AUTO_APPROVE_SCOPES","AUTHORITIES","RESOURCE_IDS","ADDITIONAL_INFORMATION","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(40,'test','test2','biubiu','http://test.yudao.iocoder.cn/277a899d573723f1fcdfb57340f00379.png',null,0,1800,43200,'["https://www.iocoder.cn"]','["password","authorization_code","implicit"]','["user_info","projects"]','["user_info"]','[]','[]','{}','1','2022-05-12 00:28:20','1','2022-06-19 00:26:13',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_OAUTH2_CLIENT"("ID","CLIENT_ID","SECRET","NAME","LOGO","DESCRIPTION","STATUS","ACCESS_TOKEN_VALIDITY_SECONDS","REFRESH_TOKEN_VALIDITY_SECONDS","REDIRECT_URIS","AUTHORIZED_GRANT_TYPES","SCOPES","AUTO_APPROVE_SCOPES","AUTHORITIES","RESOURCE_IDS","ADDITIONAL_INFORMATION","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(41,'yudao-sso-demo-by-code','test','基于授权码模式,如何实现 SSO 单点登录?','http://test.yudao.iocoder.cn/fe4ed36596adad5120036ef61a6d0153654544d44af8dd4ad3ffe8f759933d6f.png',null,0,1800,43200,'["http://127.0.0.1:18080"]','["authorization_code","refresh_token"]','["user.read","user.write"]','[]','[]','[]',null,'1','2022-09-29 13:28:31','1','2022-09-29 13:28:31',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_OAUTH2_CLIENT"("ID","CLIENT_ID","SECRET","NAME","LOGO","DESCRIPTION","STATUS","ACCESS_TOKEN_VALIDITY_SECONDS","REFRESH_TOKEN_VALIDITY_SECONDS","REDIRECT_URIS","AUTHORIZED_GRANT_TYPES","SCOPES","AUTO_APPROVE_SCOPES","AUTHORITIES","RESOURCE_IDS","ADDITIONAL_INFORMATION","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(42,'yudao-sso-demo-by-password','test','基于密码模式,如何实现 SSO 单点登录?','http://test.yudao.iocoder.cn/604bdc695e13b3b22745be704d1f2aa8ee05c5f26f9fead6d1ca49005afbc857.jpeg',null,0,1800,43200,'["http://127.0.0.1:18080"]','["password","refresh_token"]','["user.read","user.write"]','[]','[]','[]',null,'1','2022-10-04 17:40:16','1','2022-10-04 20:31:21',0); + +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."SYSTEM_OAUTH2_CLIENT" OFF; +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."SYSTEM_OAUTH2_CODE" ON; +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."SYSTEM_OAUTH2_CODE" OFF; +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."SYSTEM_OAUTH2_REFRESH_TOKEN" ON; +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."SYSTEM_OAUTH2_REFRESH_TOKEN" OFF; +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."SYSTEM_OPERATE_LOG" ON; +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."SYSTEM_OPERATE_LOG" OFF; +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."SYSTEM_POST" ON; +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_POST"("ID","CODE","NAME","SORT","STATUS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1,'ceo','董事长',1,0,'','admin','2021-01-06 17:03:48','1','2023-02-11 15:19:04',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_POST"("ID","CODE","NAME","SORT","STATUS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2,'se','项目经理',2,0,'','admin','2021-01-05 17:03:48','1','2021-12-12 10:47:47',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_POST"("ID","CODE","NAME","SORT","STATUS","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(4,'user','普通员工',4,0,'111','admin','2021-01-05 17:03:48','1','2023-02-11 15:19:00',0,1); + +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."SYSTEM_POST" OFF; +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."SYSTEM_ROLE" ON; +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE"("ID","NAME","CODE","SORT","DATA_SCOPE","DATA_SCOPE_DEPT_IDS","STATUS","TYPE","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1,'超级管理员','super_admin',1,1,'',0,1,'超级管理员','admin','2021-01-05 17:03:48','','2022-02-22 05:08:21',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE"("ID","NAME","CODE","SORT","DATA_SCOPE","DATA_SCOPE_DEPT_IDS","STATUS","TYPE","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2,'普通角色','common',2,2,'',0,1,'普通角色','admin','2021-01-05 17:03:48','','2022-02-22 05:08:20',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE"("ID","NAME","CODE","SORT","DATA_SCOPE","DATA_SCOPE_DEPT_IDS","STATUS","TYPE","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(101,'测试账号','test',0,1,'[]',0,2,'132','','2021-01-06 13:49:35','1','2022-09-25 12:09:38',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE"("ID","NAME","CODE","SORT","DATA_SCOPE","DATA_SCOPE_DEPT_IDS","STATUS","TYPE","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(109,'租户管理员','tenant_admin',0,1,'',0,1,'系统自动生成','1','2022-02-22 00:56:14','1','2022-02-22 00:56:14',0,121); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE"("ID","NAME","CODE","SORT","DATA_SCOPE","DATA_SCOPE_DEPT_IDS","STATUS","TYPE","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(110,'测试角色','test',0,1,'[]',0,2,'嘿嘿','110','2022-02-23 00:14:34','110','2022-02-23 13:14:58',0,121); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE"("ID","NAME","CODE","SORT","DATA_SCOPE","DATA_SCOPE_DEPT_IDS","STATUS","TYPE","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(111,'租户管理员','tenant_admin',0,1,'',0,1,'系统自动生成','1','2022-03-07 21:37:58','1','2022-03-07 21:37:58',0,122); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE"("ID","NAME","CODE","SORT","DATA_SCOPE","DATA_SCOPE_DEPT_IDS","STATUS","TYPE","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(113,'租户管理员','tenant_admin',0,1,'',0,1,'系统自动生成','1','2022-05-17 10:07:10','1','2022-05-17 10:07:10',0,124); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE"("ID","NAME","CODE","SORT","DATA_SCOPE","DATA_SCOPE_DEPT_IDS","STATUS","TYPE","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(114,'租户管理员','tenant_admin',0,1,'',0,1,'系统自动生成','1','2022-12-30 11:32:03','1','2022-12-30 11:32:03',0,125); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE"("ID","NAME","CODE","SORT","DATA_SCOPE","DATA_SCOPE_DEPT_IDS","STATUS","TYPE","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(115,'租户管理员','tenant_admin',0,1,'',0,1,'系统自动生成','1','2022-12-30 11:33:42','1','2022-12-30 11:33:42',0,126); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE"("ID","NAME","CODE","SORT","DATA_SCOPE","DATA_SCOPE_DEPT_IDS","STATUS","TYPE","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(116,'租户管理员','tenant_admin',0,1,'',0,1,'系统自动生成','1','2022-12-30 11:33:48','1','2022-12-30 11:33:48',0,127); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE"("ID","NAME","CODE","SORT","DATA_SCOPE","DATA_SCOPE_DEPT_IDS","STATUS","TYPE","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(118,'租户管理员','tenant_admin',0,1,'',0,1,'系统自动生成','1','2022-12-30 11:47:52','1','2022-12-30 11:47:52',0,129); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE"("ID","NAME","CODE","SORT","DATA_SCOPE","DATA_SCOPE_DEPT_IDS","STATUS","TYPE","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(136,'租户管理员','tenant_admin',0,1,'',0,1,'系统自动生成','1','2023-03-05 21:23:32','1','2023-03-05 21:23:32',0,147); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE"("ID","NAME","CODE","SORT","DATA_SCOPE","DATA_SCOPE_DEPT_IDS","STATUS","TYPE","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(137,'租户管理员','tenant_admin',0,1,'',0,1,'系统自动生成','1','2023-03-05 21:42:27','1','2023-03-05 21:42:27',0,148); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE"("ID","NAME","CODE","SORT","DATA_SCOPE","DATA_SCOPE_DEPT_IDS","STATUS","TYPE","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(138,'租户管理员','tenant_admin',0,1,'',0,1,'系统自动生成','1','2023-03-05 21:59:02','1','2023-03-05 21:59:02',0,149); + +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."SYSTEM_ROLE" OFF; +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU" ON; +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(263,109,1,'1','2022-02-22 00:56:14','1','2022-02-22 00:56:14',0,121); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(434,2,1,'1','2022-02-22 13:09:12','1','2022-02-22 13:09:12',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(454,2,1093,'1','2022-02-22 13:09:12','1','2022-02-22 13:09:12',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(455,2,1094,'1','2022-02-22 13:09:12','1','2022-02-22 13:09:12',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(460,2,1100,'1','2022-02-22 13:09:12','1','2022-02-22 13:09:12',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(467,2,1107,'1','2022-02-22 13:09:12','1','2022-02-22 13:09:12',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(470,2,1110,'1','2022-02-22 13:09:12','1','2022-02-22 13:09:12',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(476,2,1117,'1','2022-02-22 13:09:12','1','2022-02-22 13:09:12',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(477,2,100,'1','2022-02-22 13:09:12','1','2022-02-22 13:09:12',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(478,2,101,'1','2022-02-22 13:09:12','1','2022-02-22 13:09:12',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(479,2,102,'1','2022-02-22 13:09:12','1','2022-02-22 13:09:12',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(480,2,1126,'1','2022-02-22 13:09:12','1','2022-02-22 13:09:12',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(481,2,103,'1','2022-02-22 13:09:12','1','2022-02-22 13:09:12',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(483,2,104,'1','2022-02-22 13:09:12','1','2022-02-22 13:09:12',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(485,2,105,'1','2022-02-22 13:09:12','1','2022-02-22 13:09:12',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(488,2,107,'1','2022-02-22 13:09:12','1','2022-02-22 13:09:12',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(490,2,108,'1','2022-02-22 13:09:12','1','2022-02-22 13:09:12',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(492,2,109,'1','2022-02-22 13:09:12','1','2022-02-22 13:09:12',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(498,2,1138,'1','2022-02-22 13:09:12','1','2022-02-22 13:09:12',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(523,2,1224,'1','2022-02-22 13:09:12','1','2022-02-22 13:09:12',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(524,2,1225,'1','2022-02-22 13:09:12','1','2022-02-22 13:09:12',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(541,2,500,'1','2022-02-22 13:09:12','1','2022-02-22 13:09:12',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(543,2,501,'1','2022-02-22 13:09:12','1','2022-02-22 13:09:12',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(675,2,2,'1','2022-02-22 13:16:57','1','2022-02-22 13:16:57',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(689,2,1077,'1','2022-02-22 13:16:57','1','2022-02-22 13:16:57',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(690,2,1078,'1','2022-02-22 13:16:57','1','2022-02-22 13:16:57',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(692,2,1083,'1','2022-02-22 13:16:57','1','2022-02-22 13:16:57',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(693,2,1084,'1','2022-02-22 13:16:57','1','2022-02-22 13:16:57',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(699,2,1090,'1','2022-02-22 13:16:57','1','2022-02-22 13:16:57',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(703,2,106,'1','2022-02-22 13:16:57','1','2022-02-22 13:16:57',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(704,2,110,'1','2022-02-22 13:16:57','1','2022-02-22 13:16:57',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(705,2,111,'1','2022-02-22 13:16:57','1','2022-02-22 13:16:57',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(706,2,112,'1','2022-02-22 13:16:57','1','2022-02-22 13:16:57',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(707,2,113,'1','2022-02-22 13:16:57','1','2022-02-22 13:16:57',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1296,110,1,'110','2022-02-23 00:23:55','110','2022-02-23 00:23:55',0,121); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1489,1,1,'1','2022-02-23 20:03:57','1','2022-02-23 20:03:57',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1490,1,2,'1','2022-02-23 20:03:57','1','2022-02-23 20:03:57',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1494,1,1077,'1','2022-02-23 20:03:57','1','2022-02-23 20:03:57',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1495,1,1078,'1','2022-02-23 20:03:57','1','2022-02-23 20:03:57',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1496,1,1083,'1','2022-02-23 20:03:57','1','2022-02-23 20:03:57',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1497,1,1084,'1','2022-02-23 20:03:57','1','2022-02-23 20:03:57',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1498,1,1090,'1','2022-02-23 20:03:57','1','2022-02-23 20:03:57',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1499,1,1093,'1','2022-02-23 20:03:57','1','2022-02-23 20:03:57',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1500,1,1094,'1','2022-02-23 20:03:57','1','2022-02-23 20:03:57',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1501,1,1100,'1','2022-02-23 20:03:57','1','2022-02-23 20:03:57',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1502,1,1107,'1','2022-02-23 20:03:57','1','2022-02-23 20:03:57',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1503,1,1110,'1','2022-02-23 20:03:57','1','2022-02-23 20:03:57',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1505,1,1117,'1','2022-02-23 20:03:57','1','2022-02-23 20:03:57',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1506,1,100,'1','2022-02-23 20:03:57','1','2022-02-23 20:03:57',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1507,1,101,'1','2022-02-23 20:03:57','1','2022-02-23 20:03:57',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1508,1,102,'1','2022-02-23 20:03:57','1','2022-02-23 20:03:57',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1509,1,1126,'1','2022-02-23 20:03:57','1','2022-02-23 20:03:57',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1510,1,103,'1','2022-02-23 20:03:57','1','2022-02-23 20:03:57',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1511,1,104,'1','2022-02-23 20:03:57','1','2022-02-23 20:03:57',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1512,1,105,'1','2022-02-23 20:03:57','1','2022-02-23 20:03:57',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1513,1,106,'1','2022-02-23 20:03:57','1','2022-02-23 20:03:57',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1514,1,107,'1','2022-02-23 20:03:57','1','2022-02-23 20:03:57',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1515,1,108,'1','2022-02-23 20:03:57','1','2022-02-23 20:03:57',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1516,1,109,'1','2022-02-23 20:03:57','1','2022-02-23 20:03:57',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1517,1,110,'1','2022-02-23 20:03:57','1','2022-02-23 20:03:57',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1518,1,111,'1','2022-02-23 20:03:57','1','2022-02-23 20:03:57',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1519,1,112,'1','2022-02-23 20:03:57','1','2022-02-23 20:03:57',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1520,1,113,'1','2022-02-23 20:03:57','1','2022-02-23 20:03:57',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1522,1,1138,'1','2022-02-23 20:03:57','1','2022-02-23 20:03:57',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1525,1,1224,'1','2022-02-23 20:03:57','1','2022-02-23 20:03:57',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1526,1,1225,'1','2022-02-23 20:03:57','1','2022-02-23 20:03:57',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1527,1,500,'1','2022-02-23 20:03:57','1','2022-02-23 20:03:57',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1528,1,501,'1','2022-02-23 20:03:57','1','2022-02-23 20:03:57',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1578,111,1,'1','2022-03-07 21:37:58','1','2022-03-07 21:37:58',0,122); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1604,101,1216,'1','2022-03-19 21:45:52','1','2022-03-19 21:45:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1605,101,1217,'1','2022-03-19 21:45:52','1','2022-03-19 21:45:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1606,101,1218,'1','2022-03-19 21:45:52','1','2022-03-19 21:45:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1607,101,1219,'1','2022-03-19 21:45:52','1','2022-03-19 21:45:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1608,101,1220,'1','2022-03-19 21:45:52','1','2022-03-19 21:45:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1609,101,1221,'1','2022-03-19 21:45:52','1','2022-03-19 21:45:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1610,101,5,'1','2022-03-19 21:45:52','1','2022-03-19 21:45:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1611,101,1222,'1','2022-03-19 21:45:52','1','2022-03-19 21:45:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1612,101,1118,'1','2022-03-19 21:45:52','1','2022-03-19 21:45:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1613,101,1119,'1','2022-03-19 21:45:52','1','2022-03-19 21:45:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1614,101,1120,'1','2022-03-19 21:45:52','1','2022-03-19 21:45:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1615,101,1185,'1','2022-03-19 21:45:52','1','2022-03-19 21:45:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1616,101,1186,'1','2022-03-19 21:45:52','1','2022-03-19 21:45:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1617,101,1187,'1','2022-03-19 21:45:52','1','2022-03-19 21:45:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1618,101,1188,'1','2022-03-19 21:45:52','1','2022-03-19 21:45:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1619,101,1189,'1','2022-03-19 21:45:52','1','2022-03-19 21:45:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1620,101,1190,'1','2022-03-19 21:45:52','1','2022-03-19 21:45:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1621,101,1191,'1','2022-03-19 21:45:52','1','2022-03-19 21:45:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1622,101,1192,'1','2022-03-19 21:45:52','1','2022-03-19 21:45:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1623,101,1193,'1','2022-03-19 21:45:52','1','2022-03-19 21:45:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1624,101,1194,'1','2022-03-19 21:45:52','1','2022-03-19 21:45:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1625,101,1195,'1','2022-03-19 21:45:52','1','2022-03-19 21:45:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1626,101,1196,'1','2022-03-19 21:45:52','1','2022-03-19 21:45:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1627,101,1197,'1','2022-03-19 21:45:52','1','2022-03-19 21:45:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1628,101,1198,'1','2022-03-19 21:45:52','1','2022-03-19 21:45:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1629,101,1199,'1','2022-03-19 21:45:52','1','2022-03-19 21:45:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1630,101,1200,'1','2022-03-19 21:45:52','1','2022-03-19 21:45:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1631,101,1201,'1','2022-03-19 21:45:52','1','2022-03-19 21:45:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1632,101,1202,'1','2022-03-19 21:45:52','1','2022-03-19 21:45:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1633,101,1207,'1','2022-03-19 21:45:52','1','2022-03-19 21:45:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1634,101,1208,'1','2022-03-19 21:45:52','1','2022-03-19 21:45:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1635,101,1209,'1','2022-03-19 21:45:52','1','2022-03-19 21:45:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1636,101,1210,'1','2022-03-19 21:45:52','1','2022-03-19 21:45:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1637,101,1211,'1','2022-03-19 21:45:52','1','2022-03-19 21:45:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1638,101,1212,'1','2022-03-19 21:45:52','1','2022-03-19 21:45:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1639,101,1213,'1','2022-03-19 21:45:52','1','2022-03-19 21:45:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1640,101,1215,'1','2022-03-19 21:45:52','1','2022-03-19 21:45:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1641,101,2,'1','2022-04-01 22:21:24','1','2022-04-01 22:21:24',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1642,101,1031,'1','2022-04-01 22:21:37','1','2022-04-01 22:21:37',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1643,101,1032,'1','2022-04-01 22:21:37','1','2022-04-01 22:21:37',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1644,101,1033,'1','2022-04-01 22:21:37','1','2022-04-01 22:21:37',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1645,101,1034,'1','2022-04-01 22:21:37','1','2022-04-01 22:21:37',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1646,101,1035,'1','2022-04-01 22:21:37','1','2022-04-01 22:21:37',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1647,101,1050,'1','2022-04-01 22:21:37','1','2022-04-01 22:21:37',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1648,101,1051,'1','2022-04-01 22:21:37','1','2022-04-01 22:21:37',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1649,101,1052,'1','2022-04-01 22:21:37','1','2022-04-01 22:21:37',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1650,101,1053,'1','2022-04-01 22:21:37','1','2022-04-01 22:21:37',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1651,101,1054,'1','2022-04-01 22:21:37','1','2022-04-01 22:21:37',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1652,101,1056,'1','2022-04-01 22:21:37','1','2022-04-01 22:21:37',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1653,101,1057,'1','2022-04-01 22:21:37','1','2022-04-01 22:21:37',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1654,101,1058,'1','2022-04-01 22:21:37','1','2022-04-01 22:21:37',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1655,101,1059,'1','2022-04-01 22:21:37','1','2022-04-01 22:21:37',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1656,101,1060,'1','2022-04-01 22:21:37','1','2022-04-01 22:21:37',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1657,101,1066,'1','2022-04-01 22:21:37','1','2022-04-01 22:21:37',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1658,101,1067,'1','2022-04-01 22:21:37','1','2022-04-01 22:21:37',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1659,101,1070,'1','2022-04-01 22:21:37','1','2022-04-01 22:21:37',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1660,101,1071,'1','2022-04-01 22:21:37','1','2022-04-01 22:21:37',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1661,101,1072,'1','2022-04-01 22:21:37','1','2022-04-01 22:21:37',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1662,101,1073,'1','2022-04-01 22:21:37','1','2022-04-01 22:21:37',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1663,101,1074,'1','2022-04-01 22:21:37','1','2022-04-01 22:21:37',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1664,101,1075,'1','2022-04-01 22:21:37','1','2022-04-01 22:21:37',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1665,101,1076,'1','2022-04-01 22:21:37','1','2022-04-01 22:21:37',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1666,101,1077,'1','2022-04-01 22:21:37','1','2022-04-01 22:21:37',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1667,101,1078,'1','2022-04-01 22:21:37','1','2022-04-01 22:21:37',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1668,101,1082,'1','2022-04-01 22:21:37','1','2022-04-01 22:21:37',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1669,101,1083,'1','2022-04-01 22:21:37','1','2022-04-01 22:21:37',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1670,101,1084,'1','2022-04-01 22:21:37','1','2022-04-01 22:21:37',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1671,101,1085,'1','2022-04-01 22:21:37','1','2022-04-01 22:21:37',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1672,101,1086,'1','2022-04-01 22:21:37','1','2022-04-01 22:21:37',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1673,101,1087,'1','2022-04-01 22:21:37','1','2022-04-01 22:21:37',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1674,101,1088,'1','2022-04-01 22:21:37','1','2022-04-01 22:21:37',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1675,101,1089,'1','2022-04-01 22:21:37','1','2022-04-01 22:21:37',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1679,101,1237,'1','2022-04-01 22:21:37','1','2022-04-01 22:21:37',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1680,101,1238,'1','2022-04-01 22:21:37','1','2022-04-01 22:21:37',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1681,101,1239,'1','2022-04-01 22:21:37','1','2022-04-01 22:21:37',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1682,101,1240,'1','2022-04-01 22:21:37','1','2022-04-01 22:21:37',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1683,101,1241,'1','2022-04-01 22:21:37','1','2022-04-01 22:21:37',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1684,101,1242,'1','2022-04-01 22:21:37','1','2022-04-01 22:21:37',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1685,101,1243,'1','2022-04-01 22:21:37','1','2022-04-01 22:21:37',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1687,101,106,'1','2022-04-01 22:21:37','1','2022-04-01 22:21:37',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1688,101,110,'1','2022-04-01 22:21:37','1','2022-04-01 22:21:37',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1689,101,111,'1','2022-04-01 22:21:37','1','2022-04-01 22:21:37',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1690,101,112,'1','2022-04-01 22:21:37','1','2022-04-01 22:21:37',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1691,101,113,'1','2022-04-01 22:21:37','1','2022-04-01 22:21:37',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1692,101,114,'1','2022-04-01 22:21:37','1','2022-04-01 22:21:37',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1693,101,115,'1','2022-04-01 22:21:37','1','2022-04-01 22:21:37',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1694,101,116,'1','2022-04-01 22:21:37','1','2022-04-01 22:21:37',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1712,113,1024,'1','2022-05-17 10:07:10','1','2022-05-17 10:07:10',0,124); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1713,113,1025,'1','2022-05-17 10:07:10','1','2022-05-17 10:07:10',0,124); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1714,113,1,'1','2022-05-17 10:07:10','1','2022-05-17 10:07:10',0,124); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1715,113,102,'1','2022-05-17 10:07:10','1','2022-05-17 10:07:10',0,124); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1716,113,103,'1','2022-05-17 10:07:10','1','2022-05-17 10:07:10',0,124); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1717,113,104,'1','2022-05-17 10:07:10','1','2022-05-17 10:07:10',0,124); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1718,113,1013,'1','2022-05-17 10:07:10','1','2022-05-17 10:07:10',0,124); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1719,113,1014,'1','2022-05-17 10:07:10','1','2022-05-17 10:07:10',0,124); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1720,113,1015,'1','2022-05-17 10:07:10','1','2022-05-17 10:07:10',0,124); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1721,113,1016,'1','2022-05-17 10:07:10','1','2022-05-17 10:07:10',0,124); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1722,113,1017,'1','2022-05-17 10:07:10','1','2022-05-17 10:07:10',0,124); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1723,113,1018,'1','2022-05-17 10:07:10','1','2022-05-17 10:07:10',0,124); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1724,113,1019,'1','2022-05-17 10:07:10','1','2022-05-17 10:07:10',0,124); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1725,113,1020,'1','2022-05-17 10:07:10','1','2022-05-17 10:07:10',0,124); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1726,113,1021,'1','2022-05-17 10:07:10','1','2022-05-17 10:07:10',0,124); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1727,113,1022,'1','2022-05-17 10:07:10','1','2022-05-17 10:07:10',0,124); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1728,113,1023,'1','2022-05-17 10:07:10','1','2022-05-17 10:07:10',0,124); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1729,109,100,'1','2022-09-21 22:08:51','1','2022-09-21 22:08:51',0,121); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1730,109,101,'1','2022-09-21 22:08:51','1','2022-09-21 22:08:51',0,121); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1731,109,1063,'1','2022-09-21 22:08:51','1','2022-09-21 22:08:51',0,121); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1732,109,1064,'1','2022-09-21 22:08:51','1','2022-09-21 22:08:51',0,121); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1733,109,1001,'1','2022-09-21 22:08:51','1','2022-09-21 22:08:51',0,121); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1734,109,1065,'1','2022-09-21 22:08:51','1','2022-09-21 22:08:51',0,121); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1735,109,1002,'1','2022-09-21 22:08:51','1','2022-09-21 22:08:51',0,121); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1736,109,1003,'1','2022-09-21 22:08:51','1','2022-09-21 22:08:51',0,121); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1737,109,1004,'1','2022-09-21 22:08:51','1','2022-09-21 22:08:51',0,121); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1738,109,1005,'1','2022-09-21 22:08:51','1','2022-09-21 22:08:51',0,121); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1739,109,1006,'1','2022-09-21 22:08:51','1','2022-09-21 22:08:51',0,121); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1740,109,1007,'1','2022-09-21 22:08:51','1','2022-09-21 22:08:51',0,121); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1741,109,1008,'1','2022-09-21 22:08:51','1','2022-09-21 22:08:51',0,121); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1742,109,1009,'1','2022-09-21 22:08:51','1','2022-09-21 22:08:51',0,121); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1743,109,1010,'1','2022-09-21 22:08:51','1','2022-09-21 22:08:51',0,121); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1744,109,1011,'1','2022-09-21 22:08:51','1','2022-09-21 22:08:51',0,121); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1745,109,1012,'1','2022-09-21 22:08:51','1','2022-09-21 22:08:51',0,121); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1746,111,100,'1','2022-09-21 22:08:52','1','2022-09-21 22:08:52',0,122); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1747,111,101,'1','2022-09-21 22:08:52','1','2022-09-21 22:08:52',0,122); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1748,111,1063,'1','2022-09-21 22:08:52','1','2022-09-21 22:08:52',0,122); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1749,111,1064,'1','2022-09-21 22:08:52','1','2022-09-21 22:08:52',0,122); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1750,111,1001,'1','2022-09-21 22:08:52','1','2022-09-21 22:08:52',0,122); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1751,111,1065,'1','2022-09-21 22:08:52','1','2022-09-21 22:08:52',0,122); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1752,111,1002,'1','2022-09-21 22:08:52','1','2022-09-21 22:08:52',0,122); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1753,111,1003,'1','2022-09-21 22:08:52','1','2022-09-21 22:08:52',0,122); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1754,111,1004,'1','2022-09-21 22:08:52','1','2022-09-21 22:08:52',0,122); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1755,111,1005,'1','2022-09-21 22:08:52','1','2022-09-21 22:08:52',0,122); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1756,111,1006,'1','2022-09-21 22:08:52','1','2022-09-21 22:08:52',0,122); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1757,111,1007,'1','2022-09-21 22:08:52','1','2022-09-21 22:08:52',0,122); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1758,111,1008,'1','2022-09-21 22:08:52','1','2022-09-21 22:08:52',0,122); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1759,111,1009,'1','2022-09-21 22:08:52','1','2022-09-21 22:08:52',0,122); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1760,111,1010,'1','2022-09-21 22:08:52','1','2022-09-21 22:08:52',0,122); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1761,111,1011,'1','2022-09-21 22:08:52','1','2022-09-21 22:08:52',0,122); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1762,111,1012,'1','2022-09-21 22:08:52','1','2022-09-21 22:08:52',0,122); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1763,109,100,'1','2022-09-21 22:08:53','1','2022-09-21 22:08:53',0,121); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1764,109,101,'1','2022-09-21 22:08:53','1','2022-09-21 22:08:53',0,121); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1765,109,1063,'1','2022-09-21 22:08:53','1','2022-09-21 22:08:53',0,121); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1766,109,1064,'1','2022-09-21 22:08:53','1','2022-09-21 22:08:53',0,121); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1767,109,1001,'1','2022-09-21 22:08:53','1','2022-09-21 22:08:53',0,121); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1768,109,1065,'1','2022-09-21 22:08:53','1','2022-09-21 22:08:53',0,121); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1769,109,1002,'1','2022-09-21 22:08:53','1','2022-09-21 22:08:53',0,121); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1770,109,1003,'1','2022-09-21 22:08:53','1','2022-09-21 22:08:53',0,121); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1771,109,1004,'1','2022-09-21 22:08:53','1','2022-09-21 22:08:53',0,121); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1772,109,1005,'1','2022-09-21 22:08:53','1','2022-09-21 22:08:53',0,121); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1773,109,1006,'1','2022-09-21 22:08:53','1','2022-09-21 22:08:53',0,121); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1774,109,1007,'1','2022-09-21 22:08:53','1','2022-09-21 22:08:53',0,121); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1775,109,1008,'1','2022-09-21 22:08:53','1','2022-09-21 22:08:53',0,121); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1776,109,1009,'1','2022-09-21 22:08:53','1','2022-09-21 22:08:53',0,121); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1777,109,1010,'1','2022-09-21 22:08:53','1','2022-09-21 22:08:53',0,121); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1778,109,1011,'1','2022-09-21 22:08:53','1','2022-09-21 22:08:53',0,121); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1779,109,1012,'1','2022-09-21 22:08:53','1','2022-09-21 22:08:53',0,121); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1780,111,100,'1','2022-09-21 22:08:54','1','2022-09-21 22:08:54',0,122); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1781,111,101,'1','2022-09-21 22:08:54','1','2022-09-21 22:08:54',0,122); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1782,111,1063,'1','2022-09-21 22:08:54','1','2022-09-21 22:08:54',0,122); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1783,111,1064,'1','2022-09-21 22:08:54','1','2022-09-21 22:08:54',0,122); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1784,111,1001,'1','2022-09-21 22:08:54','1','2022-09-21 22:08:54',0,122); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1785,111,1065,'1','2022-09-21 22:08:54','1','2022-09-21 22:08:54',0,122); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1786,111,1002,'1','2022-09-21 22:08:54','1','2022-09-21 22:08:54',0,122); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1787,111,1003,'1','2022-09-21 22:08:54','1','2022-09-21 22:08:54',0,122); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1788,111,1004,'1','2022-09-21 22:08:54','1','2022-09-21 22:08:54',0,122); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1789,111,1005,'1','2022-09-21 22:08:54','1','2022-09-21 22:08:54',0,122); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1790,111,1006,'1','2022-09-21 22:08:54','1','2022-09-21 22:08:54',0,122); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1791,111,1007,'1','2022-09-21 22:08:54','1','2022-09-21 22:08:54',0,122); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1792,111,1008,'1','2022-09-21 22:08:54','1','2022-09-21 22:08:54',0,122); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1793,111,1009,'1','2022-09-21 22:08:54','1','2022-09-21 22:08:54',0,122); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1794,111,1010,'1','2022-09-21 22:08:54','1','2022-09-21 22:08:54',0,122); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1795,111,1011,'1','2022-09-21 22:08:54','1','2022-09-21 22:08:54',0,122); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1796,111,1012,'1','2022-09-21 22:08:54','1','2022-09-21 22:08:54',0,122); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1797,109,100,'1','2022-09-21 22:08:55','1','2022-09-21 22:08:55',0,121); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1798,109,101,'1','2022-09-21 22:08:55','1','2022-09-21 22:08:55',0,121); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1799,109,1063,'1','2022-09-21 22:08:55','1','2022-09-21 22:08:55',0,121); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1800,109,1064,'1','2022-09-21 22:08:55','1','2022-09-21 22:08:55',0,121); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1801,109,1001,'1','2022-09-21 22:08:55','1','2022-09-21 22:08:55',0,121); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1802,109,1065,'1','2022-09-21 22:08:55','1','2022-09-21 22:08:55',0,121); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1803,109,1002,'1','2022-09-21 22:08:55','1','2022-09-21 22:08:55',0,121); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1804,109,1003,'1','2022-09-21 22:08:55','1','2022-09-21 22:08:55',0,121); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1805,109,1004,'1','2022-09-21 22:08:55','1','2022-09-21 22:08:55',0,121); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1806,109,1005,'1','2022-09-21 22:08:55','1','2022-09-21 22:08:55',0,121); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1807,109,1006,'1','2022-09-21 22:08:55','1','2022-09-21 22:08:55',0,121); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1808,109,1007,'1','2022-09-21 22:08:55','1','2022-09-21 22:08:55',0,121); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1809,109,1008,'1','2022-09-21 22:08:55','1','2022-09-21 22:08:55',0,121); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1810,109,1009,'1','2022-09-21 22:08:55','1','2022-09-21 22:08:55',0,121); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1811,109,1010,'1','2022-09-21 22:08:55','1','2022-09-21 22:08:55',0,121); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1812,109,1011,'1','2022-09-21 22:08:55','1','2022-09-21 22:08:55',0,121); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1813,109,1012,'1','2022-09-21 22:08:55','1','2022-09-21 22:08:55',0,121); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1814,111,100,'1','2022-09-21 22:08:56','1','2022-09-21 22:08:56',0,122); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1815,111,101,'1','2022-09-21 22:08:56','1','2022-09-21 22:08:56',0,122); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1816,111,1063,'1','2022-09-21 22:08:56','1','2022-09-21 22:08:56',0,122); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1817,111,1064,'1','2022-09-21 22:08:56','1','2022-09-21 22:08:56',0,122); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1818,111,1001,'1','2022-09-21 22:08:56','1','2022-09-21 22:08:56',0,122); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1819,111,1065,'1','2022-09-21 22:08:56','1','2022-09-21 22:08:56',0,122); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1820,111,1002,'1','2022-09-21 22:08:56','1','2022-09-21 22:08:56',0,122); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1821,111,1003,'1','2022-09-21 22:08:56','1','2022-09-21 22:08:56',0,122); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1822,111,1004,'1','2022-09-21 22:08:56','1','2022-09-21 22:08:56',0,122); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1823,111,1005,'1','2022-09-21 22:08:56','1','2022-09-21 22:08:56',0,122); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1824,111,1006,'1','2022-09-21 22:08:56','1','2022-09-21 22:08:56',0,122); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1825,111,1007,'1','2022-09-21 22:08:56','1','2022-09-21 22:08:56',0,122); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1826,111,1008,'1','2022-09-21 22:08:56','1','2022-09-21 22:08:56',0,122); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1827,111,1009,'1','2022-09-21 22:08:56','1','2022-09-21 22:08:56',0,122); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1828,111,1010,'1','2022-09-21 22:08:56','1','2022-09-21 22:08:56',0,122); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1829,111,1011,'1','2022-09-21 22:08:56','1','2022-09-21 22:08:56',0,122); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1830,111,1012,'1','2022-09-21 22:08:56','1','2022-09-21 22:08:56',0,122); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1831,109,103,'1','2022-09-21 22:43:23','1','2022-09-21 22:43:23',0,121); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1832,109,1017,'1','2022-09-21 22:43:23','1','2022-09-21 22:43:23',0,121); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1833,109,1018,'1','2022-09-21 22:43:23','1','2022-09-21 22:43:23',0,121); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1834,109,1019,'1','2022-09-21 22:43:23','1','2022-09-21 22:43:23',0,121); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1835,109,1020,'1','2022-09-21 22:43:23','1','2022-09-21 22:43:23',0,121); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1836,111,103,'1','2022-09-21 22:43:24','1','2022-09-21 22:43:24',0,122); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1837,111,1017,'1','2022-09-21 22:43:24','1','2022-09-21 22:43:24',0,122); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1838,111,1018,'1','2022-09-21 22:43:24','1','2022-09-21 22:43:24',0,122); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1839,111,1019,'1','2022-09-21 22:43:24','1','2022-09-21 22:43:24',0,122); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1840,111,1020,'1','2022-09-21 22:43:24','1','2022-09-21 22:43:24',0,122); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1841,109,1036,'1','2022-09-21 22:48:13','1','2022-09-21 22:48:13',0,121); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1842,109,1037,'1','2022-09-21 22:48:13','1','2022-09-21 22:48:13',0,121); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1843,109,1038,'1','2022-09-21 22:48:13','1','2022-09-21 22:48:13',0,121); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1844,109,1039,'1','2022-09-21 22:48:13','1','2022-09-21 22:48:13',0,121); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1845,109,107,'1','2022-09-21 22:48:13','1','2022-09-21 22:48:13',0,121); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1846,111,1036,'1','2022-09-21 22:48:13','1','2022-09-21 22:48:13',0,122); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1847,111,1037,'1','2022-09-21 22:48:13','1','2022-09-21 22:48:13',0,122); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1848,111,1038,'1','2022-09-21 22:48:13','1','2022-09-21 22:48:13',0,122); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1849,111,1039,'1','2022-09-21 22:48:13','1','2022-09-21 22:48:13',0,122); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1850,111,107,'1','2022-09-21 22:48:13','1','2022-09-21 22:48:13',0,122); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1851,114,1,'1','2022-12-30 11:32:03','1','2022-12-30 11:32:03',0,125); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1852,114,1036,'1','2022-12-30 11:32:03','1','2022-12-30 11:32:03',0,125); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1853,114,1037,'1','2022-12-30 11:32:03','1','2022-12-30 11:32:03',0,125); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1854,114,1038,'1','2022-12-30 11:32:03','1','2022-12-30 11:32:03',0,125); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1855,114,1039,'1','2022-12-30 11:32:03','1','2022-12-30 11:32:03',0,125); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1856,114,100,'1','2022-12-30 11:32:03','1','2022-12-30 11:32:03',0,125); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1857,114,101,'1','2022-12-30 11:32:03','1','2022-12-30 11:32:03',0,125); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1858,114,1063,'1','2022-12-30 11:32:03','1','2022-12-30 11:32:03',0,125); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1859,114,103,'1','2022-12-30 11:32:03','1','2022-12-30 11:32:03',0,125); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1860,114,1064,'1','2022-12-30 11:32:03','1','2022-12-30 11:32:03',0,125); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1861,114,1001,'1','2022-12-30 11:32:03','1','2022-12-30 11:32:03',0,125); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1862,114,1065,'1','2022-12-30 11:32:03','1','2022-12-30 11:32:03',0,125); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1863,114,1002,'1','2022-12-30 11:32:03','1','2022-12-30 11:32:03',0,125); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1864,114,1003,'1','2022-12-30 11:32:03','1','2022-12-30 11:32:03',0,125); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1865,114,107,'1','2022-12-30 11:32:03','1','2022-12-30 11:32:03',0,125); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1866,114,1004,'1','2022-12-30 11:32:03','1','2022-12-30 11:32:03',0,125); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1867,114,1005,'1','2022-12-30 11:32:03','1','2022-12-30 11:32:03',0,125); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1868,114,1006,'1','2022-12-30 11:32:03','1','2022-12-30 11:32:03',0,125); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1869,114,1007,'1','2022-12-30 11:32:03','1','2022-12-30 11:32:03',0,125); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1870,114,1008,'1','2022-12-30 11:32:03','1','2022-12-30 11:32:03',0,125); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1871,114,1009,'1','2022-12-30 11:32:03','1','2022-12-30 11:32:03',0,125); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1872,114,1010,'1','2022-12-30 11:32:03','1','2022-12-30 11:32:03',0,125); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1873,114,1011,'1','2022-12-30 11:32:03','1','2022-12-30 11:32:03',0,125); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1874,114,1012,'1','2022-12-30 11:32:03','1','2022-12-30 11:32:03',0,125); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1875,114,1017,'1','2022-12-30 11:32:03','1','2022-12-30 11:32:03',0,125); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1876,114,1018,'1','2022-12-30 11:32:03','1','2022-12-30 11:32:03',0,125); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1877,114,1019,'1','2022-12-30 11:32:03','1','2022-12-30 11:32:03',0,125); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1878,114,1020,'1','2022-12-30 11:32:03','1','2022-12-30 11:32:03',0,125); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1879,115,1,'1','2022-12-30 11:33:42','1','2022-12-30 11:33:42',0,126); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1880,115,1036,'1','2022-12-30 11:33:42','1','2022-12-30 11:33:42',0,126); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1881,115,1037,'1','2022-12-30 11:33:42','1','2022-12-30 11:33:42',0,126); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1882,115,1038,'1','2022-12-30 11:33:42','1','2022-12-30 11:33:42',0,126); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1883,115,1039,'1','2022-12-30 11:33:42','1','2022-12-30 11:33:42',0,126); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1884,115,100,'1','2022-12-30 11:33:42','1','2022-12-30 11:33:42',0,126); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1885,115,101,'1','2022-12-30 11:33:42','1','2022-12-30 11:33:42',0,126); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1886,115,1063,'1','2022-12-30 11:33:42','1','2022-12-30 11:33:42',0,126); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1887,115,103,'1','2022-12-30 11:33:42','1','2022-12-30 11:33:42',0,126); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1888,115,1064,'1','2022-12-30 11:33:42','1','2022-12-30 11:33:42',0,126); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1889,115,1001,'1','2022-12-30 11:33:42','1','2022-12-30 11:33:42',0,126); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1890,115,1065,'1','2022-12-30 11:33:42','1','2022-12-30 11:33:42',0,126); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1891,115,1002,'1','2022-12-30 11:33:42','1','2022-12-30 11:33:42',0,126); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1892,115,1003,'1','2022-12-30 11:33:42','1','2022-12-30 11:33:42',0,126); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1893,115,107,'1','2022-12-30 11:33:42','1','2022-12-30 11:33:42',0,126); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1894,115,1004,'1','2022-12-30 11:33:42','1','2022-12-30 11:33:42',0,126); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1895,115,1005,'1','2022-12-30 11:33:42','1','2022-12-30 11:33:42',0,126); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1896,115,1006,'1','2022-12-30 11:33:42','1','2022-12-30 11:33:42',0,126); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1897,115,1007,'1','2022-12-30 11:33:42','1','2022-12-30 11:33:42',0,126); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1898,115,1008,'1','2022-12-30 11:33:42','1','2022-12-30 11:33:42',0,126); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1899,115,1009,'1','2022-12-30 11:33:42','1','2022-12-30 11:33:42',0,126); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1900,115,1010,'1','2022-12-30 11:33:42','1','2022-12-30 11:33:42',0,126); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1901,115,1011,'1','2022-12-30 11:33:42','1','2022-12-30 11:33:42',0,126); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1902,115,1012,'1','2022-12-30 11:33:42','1','2022-12-30 11:33:42',0,126); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1903,115,1017,'1','2022-12-30 11:33:42','1','2022-12-30 11:33:42',0,126); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1904,115,1018,'1','2022-12-30 11:33:42','1','2022-12-30 11:33:42',0,126); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1905,115,1019,'1','2022-12-30 11:33:42','1','2022-12-30 11:33:42',0,126); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1906,115,1020,'1','2022-12-30 11:33:42','1','2022-12-30 11:33:42',0,126); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1907,116,1,'1','2022-12-30 11:33:48','1','2022-12-30 11:33:48',0,127); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1908,116,1036,'1','2022-12-30 11:33:48','1','2022-12-30 11:33:48',0,127); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1909,116,1037,'1','2022-12-30 11:33:48','1','2022-12-30 11:33:48',0,127); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1910,116,1038,'1','2022-12-30 11:33:48','1','2022-12-30 11:33:48',0,127); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1911,116,1039,'1','2022-12-30 11:33:48','1','2022-12-30 11:33:48',0,127); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1912,116,100,'1','2022-12-30 11:33:48','1','2022-12-30 11:33:48',0,127); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1913,116,101,'1','2022-12-30 11:33:48','1','2022-12-30 11:33:48',0,127); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1914,116,1063,'1','2022-12-30 11:33:48','1','2022-12-30 11:33:48',0,127); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1915,116,103,'1','2022-12-30 11:33:48','1','2022-12-30 11:33:48',0,127); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1916,116,1064,'1','2022-12-30 11:33:48','1','2022-12-30 11:33:48',0,127); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1917,116,1001,'1','2022-12-30 11:33:48','1','2022-12-30 11:33:48',0,127); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1918,116,1065,'1','2022-12-30 11:33:48','1','2022-12-30 11:33:48',0,127); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1919,116,1002,'1','2022-12-30 11:33:48','1','2022-12-30 11:33:48',0,127); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1920,116,1003,'1','2022-12-30 11:33:48','1','2022-12-30 11:33:48',0,127); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1921,116,107,'1','2022-12-30 11:33:48','1','2022-12-30 11:33:48',0,127); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1922,116,1004,'1','2022-12-30 11:33:48','1','2022-12-30 11:33:48',0,127); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1923,116,1005,'1','2022-12-30 11:33:48','1','2022-12-30 11:33:48',0,127); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1924,116,1006,'1','2022-12-30 11:33:48','1','2022-12-30 11:33:48',0,127); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1925,116,1007,'1','2022-12-30 11:33:48','1','2022-12-30 11:33:48',0,127); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1926,116,1008,'1','2022-12-30 11:33:48','1','2022-12-30 11:33:48',0,127); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1927,116,1009,'1','2022-12-30 11:33:48','1','2022-12-30 11:33:48',0,127); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1928,116,1010,'1','2022-12-30 11:33:48','1','2022-12-30 11:33:48',0,127); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1929,116,1011,'1','2022-12-30 11:33:48','1','2022-12-30 11:33:48',0,127); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1930,116,1012,'1','2022-12-30 11:33:48','1','2022-12-30 11:33:48',0,127); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1931,116,1017,'1','2022-12-30 11:33:48','1','2022-12-30 11:33:48',0,127); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1932,116,1018,'1','2022-12-30 11:33:48','1','2022-12-30 11:33:48',0,127); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1933,116,1019,'1','2022-12-30 11:33:48','1','2022-12-30 11:33:48',0,127); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1934,116,1020,'1','2022-12-30 11:33:48','1','2022-12-30 11:33:48',0,127); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1963,118,1,'1','2022-12-30 11:47:52','1','2022-12-30 11:47:52',0,129); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1964,118,1036,'1','2022-12-30 11:47:52','1','2022-12-30 11:47:52',0,129); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1965,118,1037,'1','2022-12-30 11:47:52','1','2022-12-30 11:47:52',0,129); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1966,118,1038,'1','2022-12-30 11:47:52','1','2022-12-30 11:47:52',0,129); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1967,118,1039,'1','2022-12-30 11:47:52','1','2022-12-30 11:47:52',0,129); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1968,118,100,'1','2022-12-30 11:47:52','1','2022-12-30 11:47:52',0,129); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1969,118,101,'1','2022-12-30 11:47:52','1','2022-12-30 11:47:52',0,129); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1970,118,1063,'1','2022-12-30 11:47:52','1','2022-12-30 11:47:52',0,129); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1971,118,103,'1','2022-12-30 11:47:52','1','2022-12-30 11:47:52',0,129); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1972,118,1064,'1','2022-12-30 11:47:52','1','2022-12-30 11:47:52',0,129); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1973,118,1001,'1','2022-12-30 11:47:52','1','2022-12-30 11:47:52',0,129); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1974,118,1065,'1','2022-12-30 11:47:52','1','2022-12-30 11:47:52',0,129); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1975,118,1002,'1','2022-12-30 11:47:52','1','2022-12-30 11:47:52',0,129); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1976,118,1003,'1','2022-12-30 11:47:52','1','2022-12-30 11:47:52',0,129); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1977,118,107,'1','2022-12-30 11:47:52','1','2022-12-30 11:47:52',0,129); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1978,118,1004,'1','2022-12-30 11:47:52','1','2022-12-30 11:47:52',0,129); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1979,118,1005,'1','2022-12-30 11:47:52','1','2022-12-30 11:47:52',0,129); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1980,118,1006,'1','2022-12-30 11:47:52','1','2022-12-30 11:47:52',0,129); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1981,118,1007,'1','2022-12-30 11:47:52','1','2022-12-30 11:47:52',0,129); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1982,118,1008,'1','2022-12-30 11:47:52','1','2022-12-30 11:47:52',0,129); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1983,118,1009,'1','2022-12-30 11:47:52','1','2022-12-30 11:47:52',0,129); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1984,118,1010,'1','2022-12-30 11:47:52','1','2022-12-30 11:47:52',0,129); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1985,118,1011,'1','2022-12-30 11:47:52','1','2022-12-30 11:47:52',0,129); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1986,118,1012,'1','2022-12-30 11:47:52','1','2022-12-30 11:47:52',0,129); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1987,118,1017,'1','2022-12-30 11:47:52','1','2022-12-30 11:47:52',0,129); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1988,118,1018,'1','2022-12-30 11:47:52','1','2022-12-30 11:47:52',0,129); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1989,118,1019,'1','2022-12-30 11:47:52','1','2022-12-30 11:47:52',0,129); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1990,118,1020,'1','2022-12-30 11:47:52','1','2022-12-30 11:47:52',0,129); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1991,2,1024,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1992,2,1025,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1993,2,1026,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1994,2,1027,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1995,2,1028,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1996,2,1029,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1997,2,1030,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1998,2,1031,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1999,2,1032,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2000,2,1033,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2001,2,1034,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2002,2,1035,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2003,2,1036,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2004,2,1037,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2005,2,1038,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2006,2,1039,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2007,2,1040,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2008,2,1042,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2009,2,1043,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2010,2,1045,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2011,2,1046,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2012,2,1048,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2013,2,1050,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2014,2,1051,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2015,2,1052,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2016,2,1053,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2017,2,1054,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2018,2,1056,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2019,2,1057,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2020,2,1058,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2021,2,2083,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2022,2,1059,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2023,2,1060,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2024,2,1063,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2025,2,1064,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2026,2,1065,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2027,2,1066,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2028,2,1067,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2029,2,1070,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2030,2,1071,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2031,2,1072,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2032,2,1073,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2033,2,1074,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2034,2,1075,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2035,2,1076,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2036,2,1082,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2037,2,1085,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2038,2,1086,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2039,2,1087,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2040,2,1088,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2041,2,1089,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2042,2,1091,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2043,2,1092,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2044,2,1095,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2045,2,1096,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2046,2,1097,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2047,2,1098,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2048,2,1101,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2049,2,1102,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2050,2,1103,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2051,2,1104,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2052,2,1105,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2053,2,1106,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2054,2,1108,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2055,2,1109,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2056,2,1111,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2057,2,1112,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2058,2,1113,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2059,2,1114,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2060,2,1115,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2061,2,1127,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2062,2,1128,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2063,2,1129,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2064,2,1130,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2065,2,1131,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2066,2,1132,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2067,2,1133,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2068,2,1134,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2069,2,1135,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2070,2,1136,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2071,2,1137,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2072,2,114,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2073,2,1139,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2074,2,115,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2075,2,1140,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2076,2,116,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2077,2,1141,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2078,2,1142,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2079,2,1143,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2080,2,1150,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2081,2,1161,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2082,2,1162,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2083,2,1163,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2084,2,1164,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2085,2,1165,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2086,2,1166,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2087,2,1173,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2088,2,1174,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2089,2,1175,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2090,2,1176,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2091,2,1177,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2092,2,1178,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2093,2,1179,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2094,2,1180,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2095,2,1181,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2096,2,1182,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2097,2,1183,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2098,2,1184,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2099,2,1226,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2100,2,1227,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2101,2,1228,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2102,2,1229,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2103,2,1237,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2104,2,1238,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2105,2,1239,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2106,2,1240,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2107,2,1241,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2108,2,1242,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2109,2,1243,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2110,2,1247,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2111,2,1248,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2112,2,1249,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2113,2,1250,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2114,2,1251,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2115,2,1252,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2116,2,1254,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2117,2,1255,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2118,2,1256,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2119,2,1257,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2120,2,1258,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2121,2,1259,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2122,2,1260,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2123,2,1261,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2124,2,1263,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2125,2,1264,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2126,2,1265,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2127,2,1266,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2128,2,1267,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2129,2,1001,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2130,2,1002,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2131,2,1003,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2132,2,1004,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2133,2,1005,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2134,2,1006,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2135,2,1007,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2136,2,1008,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2137,2,1009,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2138,2,1010,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2139,2,1011,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2140,2,1012,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2141,2,1013,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2142,2,1014,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2143,2,1015,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2144,2,1016,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2145,2,1017,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2146,2,1018,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2147,2,1019,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2148,2,1020,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2149,2,1021,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2150,2,1022,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2151,2,1023,'1','2023-01-25 08:42:52','1','2023-01-25 08:42:52',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2152,2,1281,'1','2023-01-25 08:42:58','1','2023-01-25 08:42:58',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2153,2,1282,'1','2023-01-25 08:42:58','1','2023-01-25 08:42:58',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2154,2,2000,'1','2023-01-25 08:42:58','1','2023-01-25 08:42:58',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2155,2,2002,'1','2023-01-25 08:42:58','1','2023-01-25 08:42:58',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2156,2,2003,'1','2023-01-25 08:42:58','1','2023-01-25 08:42:58',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2157,2,2004,'1','2023-01-25 08:42:58','1','2023-01-25 08:42:58',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2158,2,2005,'1','2023-01-25 08:42:58','1','2023-01-25 08:42:58',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2159,2,2006,'1','2023-01-25 08:42:58','1','2023-01-25 08:42:58',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2160,2,2008,'1','2023-01-25 08:42:58','1','2023-01-25 08:42:58',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2161,2,2009,'1','2023-01-25 08:42:58','1','2023-01-25 08:42:58',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2162,2,2010,'1','2023-01-25 08:42:58','1','2023-01-25 08:42:58',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2163,2,2011,'1','2023-01-25 08:42:58','1','2023-01-25 08:42:58',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2164,2,2012,'1','2023-01-25 08:42:58','1','2023-01-25 08:42:58',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2170,2,2019,'1','2023-01-25 08:42:58','1','2023-01-25 08:42:58',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2171,2,2020,'1','2023-01-25 08:42:58','1','2023-01-25 08:42:58',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2172,2,2021,'1','2023-01-25 08:42:58','1','2023-01-25 08:42:58',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2173,2,2022,'1','2023-01-25 08:42:58','1','2023-01-25 08:42:58',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2174,2,2023,'1','2023-01-25 08:42:58','1','2023-01-25 08:42:58',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2175,2,2025,'1','2023-01-25 08:42:58','1','2023-01-25 08:42:58',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2177,2,2027,'1','2023-01-25 08:42:58','1','2023-01-25 08:42:58',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2178,2,2028,'1','2023-01-25 08:42:58','1','2023-01-25 08:42:58',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2179,2,2029,'1','2023-01-25 08:42:58','1','2023-01-25 08:42:58',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2180,2,2014,'1','2023-01-25 08:43:12','1','2023-01-25 08:43:12',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2181,2,2015,'1','2023-01-25 08:43:12','1','2023-01-25 08:43:12',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2182,2,2016,'1','2023-01-25 08:43:12','1','2023-01-25 08:43:12',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2183,2,2017,'1','2023-01-25 08:43:12','1','2023-01-25 08:43:12',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2184,2,2018,'1','2023-01-25 08:43:12','1','2023-01-25 08:43:12',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2188,101,1024,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2189,101,1,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2190,101,1025,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2191,101,1026,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2192,101,1027,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2193,101,1028,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2194,101,1029,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2195,101,1030,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2196,101,1036,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2197,101,1037,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2198,101,1038,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2199,101,1039,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2200,101,1040,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2201,101,1042,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2202,101,1043,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2203,101,1045,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2204,101,1046,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2205,101,1048,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2206,101,2083,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2207,101,1063,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2208,101,1064,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2209,101,1065,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2210,101,1093,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2211,101,1094,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2212,101,1095,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2213,101,1096,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2214,101,1097,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2215,101,1098,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2216,101,1100,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2217,101,1101,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2218,101,1102,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2219,101,1103,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2220,101,1104,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2221,101,1105,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2222,101,1106,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2223,101,2130,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2224,101,1107,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2225,101,2131,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2226,101,1108,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2227,101,2132,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2228,101,1109,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2229,101,2133,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2230,101,2134,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2231,101,1110,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2232,101,2135,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2233,101,1111,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2234,101,2136,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2235,101,1112,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2236,101,2137,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2237,101,1113,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2238,101,2138,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2239,101,1114,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2240,101,2139,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2241,101,1115,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2242,101,2140,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2243,101,2141,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2244,101,2142,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2245,101,2143,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2246,101,2144,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2247,101,2145,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2248,101,2146,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2249,101,2147,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2250,101,100,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2251,101,2148,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2252,101,101,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2253,101,2149,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2254,101,102,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2255,101,2150,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2256,101,103,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2257,101,2151,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2258,101,104,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2259,101,2152,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2260,101,105,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2261,101,107,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2262,101,108,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2263,101,109,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2264,101,1138,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2265,101,1139,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2266,101,1140,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2267,101,1141,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2268,101,1142,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2269,101,1143,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2270,101,1224,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2271,101,1225,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2272,101,1226,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2273,101,1227,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2274,101,1228,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2275,101,1229,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2276,101,1247,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2277,101,1248,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2278,101,1249,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2279,101,1250,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2280,101,1251,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2281,101,1252,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2282,101,1261,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2283,101,1263,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2284,101,1264,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2285,101,1265,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2286,101,1266,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2287,101,1267,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2288,101,1001,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2289,101,1002,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2290,101,1003,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2291,101,1004,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2292,101,1005,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2293,101,1006,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2294,101,1007,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2295,101,1008,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2296,101,1009,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2297,101,1010,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2298,101,1011,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2299,101,1012,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2300,101,500,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2301,101,1013,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2302,101,501,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2303,101,1014,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2304,101,1015,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2305,101,1016,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2306,101,1017,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2307,101,1018,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2308,101,1019,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2309,101,1020,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2310,101,1021,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2311,101,1022,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2312,101,1023,'1','2023-02-09 23:49:46','1','2023-02-09 23:49:46',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2789,136,1,'1','2023-03-05 21:23:32','1','2023-03-05 21:23:32',0,147); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2790,136,1036,'1','2023-03-05 21:23:32','1','2023-03-05 21:23:32',0,147); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2791,136,1037,'1','2023-03-05 21:23:32','1','2023-03-05 21:23:32',0,147); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2792,136,1038,'1','2023-03-05 21:23:32','1','2023-03-05 21:23:32',0,147); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2793,136,1039,'1','2023-03-05 21:23:32','1','2023-03-05 21:23:32',0,147); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2794,136,100,'1','2023-03-05 21:23:32','1','2023-03-05 21:23:32',0,147); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2795,136,101,'1','2023-03-05 21:23:32','1','2023-03-05 21:23:32',0,147); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2796,136,1063,'1','2023-03-05 21:23:32','1','2023-03-05 21:23:32',0,147); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2797,136,103,'1','2023-03-05 21:23:32','1','2023-03-05 21:23:32',0,147); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2798,136,1064,'1','2023-03-05 21:23:32','1','2023-03-05 21:23:32',0,147); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2799,136,1001,'1','2023-03-05 21:23:32','1','2023-03-05 21:23:32',0,147); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2800,136,1065,'1','2023-03-05 21:23:32','1','2023-03-05 21:23:32',0,147); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2801,136,1002,'1','2023-03-05 21:23:32','1','2023-03-05 21:23:32',0,147); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2802,136,1003,'1','2023-03-05 21:23:32','1','2023-03-05 21:23:32',0,147); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2803,136,107,'1','2023-03-05 21:23:32','1','2023-03-05 21:23:32',0,147); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2804,136,1004,'1','2023-03-05 21:23:32','1','2023-03-05 21:23:32',0,147); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2805,136,1005,'1','2023-03-05 21:23:32','1','2023-03-05 21:23:32',0,147); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2806,136,1006,'1','2023-03-05 21:23:32','1','2023-03-05 21:23:32',0,147); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2807,136,1007,'1','2023-03-05 21:23:32','1','2023-03-05 21:23:32',0,147); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2808,136,1008,'1','2023-03-05 21:23:32','1','2023-03-05 21:23:32',0,147); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2809,136,1009,'1','2023-03-05 21:23:32','1','2023-03-05 21:23:32',0,147); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2810,136,1010,'1','2023-03-05 21:23:32','1','2023-03-05 21:23:32',0,147); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2811,136,1011,'1','2023-03-05 21:23:32','1','2023-03-05 21:23:32',0,147); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2812,136,1012,'1','2023-03-05 21:23:32','1','2023-03-05 21:23:32',0,147); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2813,136,1017,'1','2023-03-05 21:23:32','1','2023-03-05 21:23:32',0,147); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2814,136,1018,'1','2023-03-05 21:23:32','1','2023-03-05 21:23:32',0,147); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2815,136,1019,'1','2023-03-05 21:23:32','1','2023-03-05 21:23:32',0,147); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2816,136,1020,'1','2023-03-05 21:23:32','1','2023-03-05 21:23:32',0,147); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2817,137,1,'1','2023-03-05 21:42:27','1','2023-03-05 21:42:27',0,148); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2818,137,1036,'1','2023-03-05 21:42:27','1','2023-03-05 21:42:27',0,148); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2819,137,1037,'1','2023-03-05 21:42:27','1','2023-03-05 21:42:27',0,148); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2820,137,1038,'1','2023-03-05 21:42:27','1','2023-03-05 21:42:27',0,148); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2821,137,1039,'1','2023-03-05 21:42:27','1','2023-03-05 21:42:27',0,148); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2822,137,100,'1','2023-03-05 21:42:27','1','2023-03-05 21:42:27',0,148); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2823,137,101,'1','2023-03-05 21:42:27','1','2023-03-05 21:42:27',0,148); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2824,137,1063,'1','2023-03-05 21:42:27','1','2023-03-05 21:42:27',0,148); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2825,137,103,'1','2023-03-05 21:42:27','1','2023-03-05 21:42:27',0,148); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2826,137,1064,'1','2023-03-05 21:42:27','1','2023-03-05 21:42:27',0,148); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2827,137,1001,'1','2023-03-05 21:42:27','1','2023-03-05 21:42:27',0,148); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2828,137,1065,'1','2023-03-05 21:42:27','1','2023-03-05 21:42:27',0,148); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2829,137,1002,'1','2023-03-05 21:42:27','1','2023-03-05 21:42:27',0,148); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2830,137,1003,'1','2023-03-05 21:42:27','1','2023-03-05 21:42:27',0,148); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2831,137,107,'1','2023-03-05 21:42:27','1','2023-03-05 21:42:27',0,148); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2832,137,1004,'1','2023-03-05 21:42:27','1','2023-03-05 21:42:27',0,148); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2833,137,1005,'1','2023-03-05 21:42:27','1','2023-03-05 21:42:27',0,148); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2834,137,1006,'1','2023-03-05 21:42:27','1','2023-03-05 21:42:27',0,148); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2835,137,1007,'1','2023-03-05 21:42:27','1','2023-03-05 21:42:27',0,148); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2836,137,1008,'1','2023-03-05 21:42:27','1','2023-03-05 21:42:27',0,148); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2837,137,1009,'1','2023-03-05 21:42:27','1','2023-03-05 21:42:27',0,148); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2838,137,1010,'1','2023-03-05 21:42:27','1','2023-03-05 21:42:27',0,148); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2839,137,1011,'1','2023-03-05 21:42:27','1','2023-03-05 21:42:27',0,148); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2840,137,1012,'1','2023-03-05 21:42:27','1','2023-03-05 21:42:27',0,148); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2841,137,1017,'1','2023-03-05 21:42:27','1','2023-03-05 21:42:27',0,148); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2842,137,1018,'1','2023-03-05 21:42:27','1','2023-03-05 21:42:27',0,148); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2843,137,1019,'1','2023-03-05 21:42:27','1','2023-03-05 21:42:27',0,148); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2844,137,1020,'1','2023-03-05 21:42:27','1','2023-03-05 21:42:27',0,148); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2845,138,1,'1','2023-03-05 21:59:02','1','2023-03-05 21:59:02',0,149); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2846,138,1036,'1','2023-03-05 21:59:02','1','2023-03-05 21:59:02',0,149); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2847,138,1037,'1','2023-03-05 21:59:02','1','2023-03-05 21:59:02',0,149); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2848,138,1038,'1','2023-03-05 21:59:02','1','2023-03-05 21:59:02',0,149); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2849,138,1039,'1','2023-03-05 21:59:02','1','2023-03-05 21:59:02',0,149); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2850,138,100,'1','2023-03-05 21:59:02','1','2023-03-05 21:59:02',0,149); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2851,138,101,'1','2023-03-05 21:59:02','1','2023-03-05 21:59:02',0,149); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2852,138,1063,'1','2023-03-05 21:59:02','1','2023-03-05 21:59:02',0,149); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2853,138,103,'1','2023-03-05 21:59:02','1','2023-03-05 21:59:02',0,149); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2854,138,1064,'1','2023-03-05 21:59:02','1','2023-03-05 21:59:02',0,149); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2855,138,1001,'1','2023-03-05 21:59:02','1','2023-03-05 21:59:02',0,149); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2856,138,1065,'1','2023-03-05 21:59:02','1','2023-03-05 21:59:02',0,149); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2857,138,1002,'1','2023-03-05 21:59:02','1','2023-03-05 21:59:02',0,149); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2858,138,1003,'1','2023-03-05 21:59:02','1','2023-03-05 21:59:02',0,149); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2859,138,107,'1','2023-03-05 21:59:02','1','2023-03-05 21:59:02',0,149); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2860,138,1004,'1','2023-03-05 21:59:02','1','2023-03-05 21:59:02',0,149); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2861,138,1005,'1','2023-03-05 21:59:02','1','2023-03-05 21:59:02',0,149); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2862,138,1006,'1','2023-03-05 21:59:02','1','2023-03-05 21:59:02',0,149); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2863,138,1007,'1','2023-03-05 21:59:02','1','2023-03-05 21:59:02',0,149); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2864,138,1008,'1','2023-03-05 21:59:02','1','2023-03-05 21:59:02',0,149); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2865,138,1009,'1','2023-03-05 21:59:02','1','2023-03-05 21:59:02',0,149); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2866,138,1010,'1','2023-03-05 21:59:02','1','2023-03-05 21:59:02',0,149); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2867,138,1011,'1','2023-03-05 21:59:02','1','2023-03-05 21:59:02',0,149); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2868,138,1012,'1','2023-03-05 21:59:02','1','2023-03-05 21:59:02',0,149); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2869,138,1017,'1','2023-03-05 21:59:02','1','2023-03-05 21:59:02',0,149); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2870,138,1018,'1','2023-03-05 21:59:02','1','2023-03-05 21:59:02',0,149); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2871,138,1019,'1','2023-03-05 21:59:02','1','2023-03-05 21:59:02',0,149); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"("ID","ROLE_ID","MENU_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2872,138,1020,'1','2023-03-05 21:59:02','1','2023-03-05 21:59:02',0,149); + +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU" OFF; +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."SYSTEM_SENSITIVE_WORD" ON; +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_SENSITIVE_WORD"("ID","NAME","DESCRIPTION","TAGS","STATUS","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(3,'土豆','好呀','蔬菜,短信',0,'1','2022-04-08 21:07:12','1','2022-04-09 10:28:14',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_SENSITIVE_WORD"("ID","NAME","DESCRIPTION","TAGS","STATUS","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(4,'XXX',null,'短信',0,'1','2022-04-08 21:27:49','1','2022-06-19 00:36:50',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_SENSITIVE_WORD"("ID","NAME","DESCRIPTION","TAGS","STATUS","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(5,'白痴',null,'测试',0,'1','2022-12-31 19:08:25','1','2022-12-31 19:08:25',0); + +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."SYSTEM_SENSITIVE_WORD" OFF; +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."SYSTEM_SMS_CHANNEL" ON; +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_SMS_CHANNEL"("ID","SIGNATURE","CODE","STATUS","REMARK","API_KEY","API_SECRET","CALLBACK_URL","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2,'Ballcat','ALIYUN',0,'啦啦啦','LTAI5tCnKso2uG3kJ5gRav88','fGJ5SNXL7P1NHNRmJ7DJaMJGPyE55C',null,'','2021-03-31 11:53:10','1','2021-04-14 00:08:37',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_SMS_CHANNEL"("ID","SIGNATURE","CODE","STATUS","REMARK","API_KEY","API_SECRET","CALLBACK_URL","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(4,'测试渠道','DEBUG_DING_TALK',0,'123','696b5d8ead48071237e4aa5861ff08dbadb2b4ded1c688a7b7c9afc615579859','SEC5c4e5ff888bc8a9923ae47f59e7ccd30af1f14d93c55b4e2c9cb094e35aeed67',null,'1','2021-04-13 00:23:14','1','2022-03-27 20:29:49',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_SMS_CHANNEL"("ID","SIGNATURE","CODE","STATUS","REMARK","API_KEY","API_SECRET","CALLBACK_URL","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(6,'测试演示','DEBUG_DING_TALK',0,null,'696b5d8ead48071237e4aa5861ff08dbadb2b4ded1c688a7b7c9afc615579859','SEC5c4e5ff888bc8a9923ae47f59e7ccd30af1f14d93c55b4e2c9cb094e35aeed67',null,'1','2022-04-10 23:07:59','1','2022-06-19 00:33:54',0); + +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."SYSTEM_SMS_CHANNEL" OFF; +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."SYSTEM_SMS_CODE" ON; +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."SYSTEM_SMS_CODE" OFF; +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."SYSTEM_SMS_LOG" ON; +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."SYSTEM_SMS_LOG" OFF; +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."SYSTEM_SMS_TEMPLATE" ON; +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_SMS_TEMPLATE"("ID","TYPE","STATUS","CODE","NAME","CONTENT","PARAMS","REMARK","API_TEMPLATE_ID","CHANNEL_ID","CHANNEL_CODE","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(2,1,0,'test_01','测试验证码短信','正在进行登录操作{operation},您的验证码是{code}','["operation","code"]',null,'4383920',6,'DEBUG_DING_TALK','','2021-03-31 10:49:38','1','2022-12-10 21:26:20',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_SMS_TEMPLATE"("ID","TYPE","STATUS","CODE","NAME","CONTENT","PARAMS","REMARK","API_TEMPLATE_ID","CHANNEL_ID","CHANNEL_CODE","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(3,1,0,'test_02','公告通知','您的验证码{code},该验证码5分钟内有效,请勿泄漏于他人!','["code"]',null,'SMS_207945135',2,'ALIYUN','','2021-03-31 11:56:30','1','2021-04-10 01:22:02',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_SMS_TEMPLATE"("ID","TYPE","STATUS","CODE","NAME","CONTENT","PARAMS","REMARK","API_TEMPLATE_ID","CHANNEL_ID","CHANNEL_CODE","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(6,3,0,'test-01','测试模板','哈哈哈 {name}','["name"]','f哈哈哈','4383920',6,'DEBUG_DING_TALK','1','2021-04-10 01:07:21','1','2022-12-10 21:26:09',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_SMS_TEMPLATE"("ID","TYPE","STATUS","CODE","NAME","CONTENT","PARAMS","REMARK","API_TEMPLATE_ID","CHANNEL_ID","CHANNEL_CODE","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(7,3,0,'test-04','测试下','老鸡{name},牛逼{code}','["name","code"]',null,'suibian',4,'DEBUG_DING_TALK','1','2021-04-13 00:29:53','1','2021-04-14 00:30:38',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_SMS_TEMPLATE"("ID","TYPE","STATUS","CODE","NAME","CONTENT","PARAMS","REMARK","API_TEMPLATE_ID","CHANNEL_ID","CHANNEL_CODE","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(8,1,0,'user-sms-login','前台用户短信登录','您的验证码是{code}','["code"]',null,'4372216',6,'DEBUG_DING_TALK','1','2021-10-11 08:10:00','1','2022-12-10 21:25:59',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_SMS_TEMPLATE"("ID","TYPE","STATUS","CODE","NAME","CONTENT","PARAMS","REMARK","API_TEMPLATE_ID","CHANNEL_ID","CHANNEL_CODE","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(9,2,0,'bpm_task_assigned','【工作流】任务被分配','您收到了一条新的待办任务:{processInstanceName}-{taskName},申请人:{startUserNickname},处理链接:{detailUrl}','["processInstanceName","taskName","startUserNickname","detailUrl"]',null,'suibian',4,'DEBUG_DING_TALK','1','2022-01-21 22:31:19','1','2022-01-22 00:03:36',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_SMS_TEMPLATE"("ID","TYPE","STATUS","CODE","NAME","CONTENT","PARAMS","REMARK","API_TEMPLATE_ID","CHANNEL_ID","CHANNEL_CODE","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(10,2,0,'bpm_process_instance_reject','【工作流】流程被不通过','您的流程被审批不通过:{processInstanceName},原因:{reason},查看链接:{detailUrl}','["processInstanceName","reason","detailUrl"]',null,'suibian',4,'DEBUG_DING_TALK','1','2022-01-22 00:03:31','1','2022-05-01 12:33:14',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_SMS_TEMPLATE"("ID","TYPE","STATUS","CODE","NAME","CONTENT","PARAMS","REMARK","API_TEMPLATE_ID","CHANNEL_ID","CHANNEL_CODE","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(11,2,0,'bpm_process_instance_approve','【工作流】流程被通过','您的流程被审批通过:{processInstanceName},查看链接:{detailUrl}','["processInstanceName","detailUrl"]',null,'suibian',4,'DEBUG_DING_TALK','1','2022-01-22 00:04:31','1','2022-03-27 20:32:21',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_SMS_TEMPLATE"("ID","TYPE","STATUS","CODE","NAME","CONTENT","PARAMS","REMARK","API_TEMPLATE_ID","CHANNEL_ID","CHANNEL_CODE","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(12,2,0,'demo','演示模板','我就是测试一下下','[]',null,'biubiubiu',6,'DEBUG_DING_TALK','1','2022-04-10 23:22:49','1','2023-03-24 23:45:07',0); + +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."SYSTEM_SMS_TEMPLATE" OFF; +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."SYSTEM_SOCIAL_USER" ON; +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."SYSTEM_SOCIAL_USER" OFF; +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."SYSTEM_SOCIAL_USER_BIND" ON; +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."SYSTEM_SOCIAL_USER_BIND" OFF; +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."SYSTEM_TENANT" ON; +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_TENANT"("ID","NAME","CONTACT_USER_ID","CONTACT_NAME","CONTACT_MOBILE","STATUS","DOMAIN","PACKAGE_ID","EXPIRE_TIME","ACCOUNT_COUNT","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(1,'芋道源码',null,'芋艿','17321315478',0,'https://www.iocoder.cn',0,'2099-02-19 17:14:16',9999,'1','2021-01-05 17:03:47','1','2022-02-23 12:15:11',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_TENANT"("ID","NAME","CONTACT_USER_ID","CONTACT_NAME","CONTACT_MOBILE","STATUS","DOMAIN","PACKAGE_ID","EXPIRE_TIME","ACCOUNT_COUNT","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(121,'小租户',110,'小王2','15601691300',0,'http://www.iocoder.cn',111,'2024-03-11 00:00:00',20,'1','2022-02-22 00:56:14','1','2022-05-17 10:03:59',0); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_TENANT"("ID","NAME","CONTACT_USER_ID","CONTACT_NAME","CONTACT_MOBILE","STATUS","DOMAIN","PACKAGE_ID","EXPIRE_TIME","ACCOUNT_COUNT","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(122,'测试租户',113,'芋道','15601691300',0,'https://www.iocoder.cn',111,'2022-04-30 00:00:00',50,'1','2022-03-07 21:37:58','1','2022-03-07 21:37:58',0); + +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."SYSTEM_TENANT" OFF; +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."SYSTEM_TENANT_PACKAGE" ON; +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_TENANT_PACKAGE"("ID","NAME","STATUS","REMARK","MENU_IDS","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED") VALUES(111,'普通套餐',0,'小功能','[1,1036,1037,1038,1039,100,101,1063,103,1064,1001,1065,1002,1003,107,1004,1005,1006,1007,1008,1009,1010,1011,1012,1017,1018,1019,1020]','1','2022-02-22 00:54:00','1','2022-09-21 22:48:12',0); + +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."SYSTEM_TENANT_PACKAGE" OFF; +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."SYSTEM_USERS" ON; +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_USERS"("ID","USERNAME","PASSWORD","NICKNAME","REMARK","DEPT_ID","POST_IDS","EMAIL","MOBILE","SEX","AVATAR","STATUS","LOGIN_IP","LOGIN_DATE","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1,'admin','$2a$10$mRMIYLDtRHlf6.9ipiqH1.Z.bh/R9dO9d5iHiGYPigi6r5KOoR2Wm','芋道源码','管理员',103,'[1]','aoteman@126.com','15612345678',1,'http://test.yudao.iocoder.cn/e1fdd7271685ec143a0900681606406621717a666ad0b2798b096df41422b32f.png',0,'0:0:0:0:0:0:0:1','2023-04-13 23:09:16','admin','2021-01-05 17:03:47',null,'2023-04-13 23:09:16',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_USERS"("ID","USERNAME","PASSWORD","NICKNAME","REMARK","DEPT_ID","POST_IDS","EMAIL","MOBILE","SEX","AVATAR","STATUS","LOGIN_IP","LOGIN_DATE","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(100,'yudao','$2a$10$11U48RhyJ5pSBYWSn12AD./ld671.ycSzJHbyrtpeoMeYiw31eo8a','芋道','不要吓我',104,'[1]','yudao@iocoder.cn','15601691300',1,'',1,'127.0.0.1','2022-07-09 23:03:33','','2021-01-07 09:07:17',null,'2022-07-09 23:03:33',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_USERS"("ID","USERNAME","PASSWORD","NICKNAME","REMARK","DEPT_ID","POST_IDS","EMAIL","MOBILE","SEX","AVATAR","STATUS","LOGIN_IP","LOGIN_DATE","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(103,'yuanma','$2a$10$YMpimV4T6BtDhIaA8jSW.u8UTGBeGhc/qwXP4oxoMr4mOw9.qttt6','源码',null,106,null,'yuanma@iocoder.cn','15601701300',0,'',0,'127.0.0.1','2022-07-08 01:26:27','','2021-01-13 23:50:35',null,'2022-07-08 01:26:27',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_USERS"("ID","USERNAME","PASSWORD","NICKNAME","REMARK","DEPT_ID","POST_IDS","EMAIL","MOBILE","SEX","AVATAR","STATUS","LOGIN_IP","LOGIN_DATE","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(104,'test','$2a$10$GP8zvqHB//TekuzYZSBYAuBQJiNq1.fxQVDYJ.uBCOnWCtDVKE4H6','测试号',null,107,'[1,2]','111@qq.com','15601691200',1,'',0,'127.0.0.1','2022-05-28 15:43:17','','2021-01-21 02:13:53',null,'2022-07-09 09:00:33',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_USERS"("ID","USERNAME","PASSWORD","NICKNAME","REMARK","DEPT_ID","POST_IDS","EMAIL","MOBILE","SEX","AVATAR","STATUS","LOGIN_IP","LOGIN_DATE","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(107,'admin107','$2a$10$dYOOBKMO93v/.ReCqzyFg.o67Tqk.bbc2bhrpyBGkIw9aypCtr2pm','芋艿',null,null,null,'','15601691300',0,'',0,'',null,'1','2022-02-20 22:59:33','1','2022-02-27 08:26:51',0,118); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_USERS"("ID","USERNAME","PASSWORD","NICKNAME","REMARK","DEPT_ID","POST_IDS","EMAIL","MOBILE","SEX","AVATAR","STATUS","LOGIN_IP","LOGIN_DATE","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(108,'admin108','$2a$10$y6mfvKoNYL1GXWak8nYwVOH.kCWqjactkzdoIDgiKl93WN3Ejg.Lu','芋艿',null,null,null,'','15601691300',0,'',0,'',null,'1','2022-02-20 23:00:50','1','2022-02-27 08:26:53',0,119); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_USERS"("ID","USERNAME","PASSWORD","NICKNAME","REMARK","DEPT_ID","POST_IDS","EMAIL","MOBILE","SEX","AVATAR","STATUS","LOGIN_IP","LOGIN_DATE","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(109,'admin109','$2a$10$JAqvH0tEc0I7dfDVBI7zyuB4E3j.uH6daIjV53.vUS6PknFkDJkuK','芋艿',null,null,null,'','15601691300',0,'',0,'',null,'1','2022-02-20 23:11:50','1','2022-02-27 08:26:56',0,120); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_USERS"("ID","USERNAME","PASSWORD","NICKNAME","REMARK","DEPT_ID","POST_IDS","EMAIL","MOBILE","SEX","AVATAR","STATUS","LOGIN_IP","LOGIN_DATE","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(110,'admin110','$2a$10$mRMIYLDtRHlf6.9ipiqH1.Z.bh/R9dO9d5iHiGYPigi6r5KOoR2Wm','小王',null,null,null,'','15601691300',0,'',0,'127.0.0.1','2022-09-25 22:47:33','1','2022-02-22 00:56:14',null,'2022-09-25 22:47:33',0,121); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_USERS"("ID","USERNAME","PASSWORD","NICKNAME","REMARK","DEPT_ID","POST_IDS","EMAIL","MOBILE","SEX","AVATAR","STATUS","LOGIN_IP","LOGIN_DATE","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(111,'test','$2a$10$mExveopHUx9Q4QiLtAzhDeH3n4/QlNLzEsM4AqgxKrU.ciUZDXZCy','测试用户',null,null,'[]','','',0,'',0,'',null,'110','2022-02-23 13:14:33','110','2022-02-23 13:14:33',0,121); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_USERS"("ID","USERNAME","PASSWORD","NICKNAME","REMARK","DEPT_ID","POST_IDS","EMAIL","MOBILE","SEX","AVATAR","STATUS","LOGIN_IP","LOGIN_DATE","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(112,'newobject','$2a$10$3alwklxqfq8/hKoW6oUV0OJp0IdQpBDauLy4633SpUjrRsStl6kMa','新对象',null,100,'[]','','',1,'',0,'0:0:0:0:0:0:0:1','2023-02-10 13:48:13','1','2022-02-23 19:08:03',null,'2023-02-10 13:48:13',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_USERS"("ID","USERNAME","PASSWORD","NICKNAME","REMARK","DEPT_ID","POST_IDS","EMAIL","MOBILE","SEX","AVATAR","STATUS","LOGIN_IP","LOGIN_DATE","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(113,'aoteman','$2a$10$0acJOIk2D25/oC87nyclE..0lzeu9DtQ/n3geP4fkun/zIVRhHJIO','芋道',null,null,null,'','15601691300',0,'',0,'127.0.0.1','2022-03-19 18:38:51','1','2022-03-07 21:37:58',null,'2022-03-19 18:38:51',0,122); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_USERS"("ID","USERNAME","PASSWORD","NICKNAME","REMARK","DEPT_ID","POST_IDS","EMAIL","MOBILE","SEX","AVATAR","STATUS","LOGIN_IP","LOGIN_DATE","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(114,'hrmgr','$2a$10$TR4eybBioGRhBmDBWkqWLO6NIh3mzYa8KBKDDB5woiGYFVlRAi.fu','hr 小姐姐',null,null,'[3]','','',0,'',0,'127.0.0.1','2022-03-19 22:15:43','1','2022-03-19 21:50:58',null,'2022-03-19 22:15:43',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_USERS"("ID","USERNAME","PASSWORD","NICKNAME","REMARK","DEPT_ID","POST_IDS","EMAIL","MOBILE","SEX","AVATAR","STATUS","LOGIN_IP","LOGIN_DATE","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(115,'aotemane','$2a$10$/WCwGHu1eq0wOVDd/u8HweJ0gJCHyLS6T7ndCqI8UXZAQom1etk2e','1','11',101,'[]','','',1,'',0,'',null,'1','2022-04-30 02:55:43','1','2022-06-22 13:34:58',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_USERS"("ID","USERNAME","PASSWORD","NICKNAME","REMARK","DEPT_ID","POST_IDS","EMAIL","MOBILE","SEX","AVATAR","STATUS","LOGIN_IP","LOGIN_DATE","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(116,'15601691302','$2a$10$L5C4S0U6adBWMvFv1Wwl4.DI/NwYS3WIfLj5Q.Naqr5II8CmqsDZ6','小豆',null,null,null,'','',0,'',0,'',null,'1','2022-05-17 10:07:10','1','2022-05-17 10:07:10',0,124); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_USERS"("ID","USERNAME","PASSWORD","NICKNAME","REMARK","DEPT_ID","POST_IDS","EMAIL","MOBILE","SEX","AVATAR","STATUS","LOGIN_IP","LOGIN_DATE","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(117,'admin123','$2a$10$WI8Gg/lpZQIrOEZMHqka7OdFaD4Nx.B/qY8ZGTTUKrOJwaHFqibaC','测试号','1111',100,'[2]','','15601691234',1,'',0,'',null,'1','2022-07-09 17:40:26','1','2022-07-09 17:40:26',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_USERS"("ID","USERNAME","PASSWORD","NICKNAME","REMARK","DEPT_ID","POST_IDS","EMAIL","MOBILE","SEX","AVATAR","STATUS","LOGIN_IP","LOGIN_DATE","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(118,'goudan','$2a$10$Lrb71muL.s5/AFjQ2IHkzOFlAFwUToH.zQL7bnghvTDt/QptjGgF6','狗蛋',null,103,'[1]','','',2,'',0,'',null,'1','2022-07-09 17:44:43','1','2022-12-31 17:29:13',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_USERS"("ID","USERNAME","PASSWORD","NICKNAME","REMARK","DEPT_ID","POST_IDS","EMAIL","MOBILE","SEX","AVATAR","STATUS","LOGIN_IP","LOGIN_DATE","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(119,'admin','$2a$10$AheSOpxeWQYhEO/gGZhDz.oifdX5zt.kprWNHptPiiStUx4mXmHb.','12',null,null,null,'','',0,'',0,'',null,'1','2022-12-30 11:32:04','1','2022-12-30 11:32:04',0,125); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_USERS"("ID","USERNAME","PASSWORD","NICKNAME","REMARK","DEPT_ID","POST_IDS","EMAIL","MOBILE","SEX","AVATAR","STATUS","LOGIN_IP","LOGIN_DATE","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(120,'admin','$2a$10$D.xFtcgma/NJ3SyYlUj3bORcs0mwOD6Zu.4I7GCI/8/25/QSn4qJC','12',null,null,null,'','',0,'',0,'',null,'1','2022-12-30 11:33:42','1','2022-12-30 11:33:42',0,126); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_USERS"("ID","USERNAME","PASSWORD","NICKNAME","REMARK","DEPT_ID","POST_IDS","EMAIL","MOBILE","SEX","AVATAR","STATUS","LOGIN_IP","LOGIN_DATE","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(121,'admin','$2a$10$R2guBf7TyERjjW9lm0Pd0Osut6vt7NuH2Vx6fkOI5.VgSvJK2Xb82','12',null,null,null,'','',0,'',0,'',null,'1','2022-12-30 11:33:49','1','2022-12-30 11:33:49',0,127); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_USERS"("ID","USERNAME","PASSWORD","NICKNAME","REMARK","DEPT_ID","POST_IDS","EMAIL","MOBILE","SEX","AVATAR","STATUS","LOGIN_IP","LOGIN_DATE","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(122,'admin','$2a$10$pwxqUUza61HBgx3FTjp2d.Mc2UKalikXxP91wUdP4bFe7Hl.lfmeq','12',null,null,null,'','',0,'',0,'',null,'1','2022-12-30 11:47:52','1','2022-12-30 11:47:52',0,129); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_USERS"("ID","USERNAME","PASSWORD","NICKNAME","REMARK","DEPT_ID","POST_IDS","EMAIL","MOBILE","SEX","AVATAR","STATUS","LOGIN_IP","LOGIN_DATE","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(123,'tudou','$2a$10$m33ROHSPa9lshwQIaiVlFeoG1TZjCoQmfvExn4QWS8r5X59AEsTz2','15601691234',null,null,null,'','',0,'',0,'',null,'1','2023-03-05 21:23:35','1','2023-03-05 21:23:35',0,147); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_USERS"("ID","USERNAME","PASSWORD","NICKNAME","REMARK","DEPT_ID","POST_IDS","EMAIL","MOBILE","SEX","AVATAR","STATUS","LOGIN_IP","LOGIN_DATE","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(124,'tudou','$2a$10$1pzAJAEIRf/vYyMy8FTFiOzX40Q/NnozXixun/ExPZwv8A/CQkR4q','15601691234',null,null,null,'','',0,'',0,'',null,'1','2023-03-05 21:42:27','1','2023-03-05 21:42:27',0,148); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_USERS"("ID","USERNAME","PASSWORD","NICKNAME","REMARK","DEPT_ID","POST_IDS","EMAIL","MOBILE","SEX","AVATAR","STATUS","LOGIN_IP","LOGIN_DATE","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(125,'admin','$2a$10$E49momkI6Uf9v6pkfjoRP.dHzK4RjDIK39AWHz9eXRmqUR5sbJpoy','秃头',null,null,null,'','',0,'',0,'',null,'1','2023-03-05 21:59:03','1','2023-03-05 21:59:03',0,149); + +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."SYSTEM_USERS" OFF; +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."SYSTEM_USER_POST" ON; +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_USER_POST"("ID","USER_ID","POST_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(112,1,1,'admin','2022-05-02 07:25:24','admin','2022-05-02 07:25:24',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_USER_POST"("ID","USER_ID","POST_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(113,100,1,'admin','2022-05-02 07:25:24','admin','2022-05-02 07:25:24',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_USER_POST"("ID","USER_ID","POST_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(114,114,3,'admin','2022-05-02 07:25:24','admin','2022-05-02 07:25:24',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_USER_POST"("ID","USER_ID","POST_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(115,104,1,'1','2022-05-16 19:36:28','1','2022-05-16 19:36:28',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_USER_POST"("ID","USER_ID","POST_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(116,117,2,'1','2022-07-09 17:40:26','1','2022-07-09 17:40:26',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_USER_POST"("ID","USER_ID","POST_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(117,118,1,'1','2022-07-09 17:44:44','1','2022-07-09 17:44:44',0,1); + +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."SYSTEM_USER_POST" OFF; +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."SYSTEM_USER_ROLE" ON; +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_USER_ROLE"("ID","USER_ID","ROLE_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(1,1,1,'','2022-01-11 13:19:45','','2022-05-12 12:35:17',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_USER_ROLE"("ID","USER_ID","ROLE_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(2,2,2,'','2022-01-11 13:19:45','','2022-05-12 12:35:13',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_USER_ROLE"("ID","USER_ID","ROLE_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(4,100,101,'','2022-01-11 13:19:45','','2022-05-12 12:35:13',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_USER_ROLE"("ID","USER_ID","ROLE_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(5,100,1,'','2022-01-11 13:19:45','','2022-05-12 12:35:12',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_USER_ROLE"("ID","USER_ID","ROLE_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(6,100,2,'','2022-01-11 13:19:45','','2022-05-12 12:35:11',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_USER_ROLE"("ID","USER_ID","ROLE_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(10,103,1,'1','2022-01-11 13:19:45','1','2022-01-11 13:19:45',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_USER_ROLE"("ID","USER_ID","ROLE_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(11,107,106,'1','2022-02-20 22:59:33','1','2022-02-20 22:59:33',0,118); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_USER_ROLE"("ID","USER_ID","ROLE_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(12,108,107,'1','2022-02-20 23:00:50','1','2022-02-20 23:00:50',0,119); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_USER_ROLE"("ID","USER_ID","ROLE_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(13,109,108,'1','2022-02-20 23:11:50','1','2022-02-20 23:11:50',0,120); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_USER_ROLE"("ID","USER_ID","ROLE_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(14,110,109,'1','2022-02-22 00:56:14','1','2022-02-22 00:56:14',0,121); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_USER_ROLE"("ID","USER_ID","ROLE_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(15,111,110,'110','2022-02-23 13:14:38','110','2022-02-23 13:14:38',0,121); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_USER_ROLE"("ID","USER_ID","ROLE_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(16,113,111,'1','2022-03-07 21:37:58','1','2022-03-07 21:37:58',0,122); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_USER_ROLE"("ID","USER_ID","ROLE_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(17,114,101,'1','2022-03-19 21:51:13','1','2022-03-19 21:51:13',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_USER_ROLE"("ID","USER_ID","ROLE_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(18,1,2,'1','2022-05-12 20:39:29','1','2022-05-12 20:39:29',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_USER_ROLE"("ID","USER_ID","ROLE_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(19,116,113,'1','2022-05-17 10:07:10','1','2022-05-17 10:07:10',0,124); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_USER_ROLE"("ID","USER_ID","ROLE_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(20,104,101,'1','2022-05-28 15:43:57','1','2022-05-28 15:43:57',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_USER_ROLE"("ID","USER_ID","ROLE_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(22,115,2,'1','2022-07-21 22:08:30','1','2022-07-21 22:08:30',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_USER_ROLE"("ID","USER_ID","ROLE_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(23,119,114,'1','2022-12-30 11:32:04','1','2022-12-30 11:32:04',0,125); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_USER_ROLE"("ID","USER_ID","ROLE_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(24,120,115,'1','2022-12-30 11:33:42','1','2022-12-30 11:33:42',0,126); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_USER_ROLE"("ID","USER_ID","ROLE_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(25,121,116,'1','2022-12-30 11:33:49','1','2022-12-30 11:33:49',0,127); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_USER_ROLE"("ID","USER_ID","ROLE_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(26,122,118,'1','2022-12-30 11:47:53','1','2022-12-30 11:47:53',0,129); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_USER_ROLE"("ID","USER_ID","ROLE_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(27,112,101,'1','2023-02-09 23:18:51','1','2023-02-09 23:18:51',0,1); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_USER_ROLE"("ID","USER_ID","ROLE_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(28,123,136,'1','2023-03-05 21:23:35','1','2023-03-05 21:23:35',0,147); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_USER_ROLE"("ID","USER_ID","ROLE_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(29,124,137,'1','2023-03-05 21:42:27','1','2023-03-05 21:42:27',0,148); +INSERT INTO "RUOYI_VUE_PRO"."SYSTEM_USER_ROLE"("ID","USER_ID","ROLE_ID","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED","TENANT_ID") VALUES(30,125,138,'1','2023-03-05 21:59:03','1','2023-03-05 21:59:03',0,149); + +SET IDENTITY_INSERT "RUOYI_VUE_PRO"."SYSTEM_USER_ROLE" OFF; +ALTER TABLE "RUOYI_VUE_PRO"."SYSTEM_NOTIFY_MESSAGE" ADD CONSTRAINT PRIMARY KEY("ID") ; + +ALTER TABLE "RUOYI_VUE_PRO"."SYSTEM_NOTIFY_TEMPLATE" ADD CONSTRAINT PRIMARY KEY("ID") ; + +ALTER TABLE "RUOYI_VUE_PRO"."SYSTEM_OAUTH2_ACCESS_TOKEN" ADD CONSTRAINT PRIMARY KEY("ID") ; + +ALTER TABLE "RUOYI_VUE_PRO"."SYSTEM_OAUTH2_APPROVE" ADD CONSTRAINT PRIMARY KEY("ID") ; + +ALTER TABLE "RUOYI_VUE_PRO"."SYSTEM_OAUTH2_CLIENT" ADD CONSTRAINT PRIMARY KEY("ID") ; + +ALTER TABLE "RUOYI_VUE_PRO"."SYSTEM_OAUTH2_CODE" ADD CONSTRAINT PRIMARY KEY("ID") ; + +ALTER TABLE "RUOYI_VUE_PRO"."SYSTEM_OAUTH2_REFRESH_TOKEN" ADD CONSTRAINT PRIMARY KEY("ID") ; + +ALTER TABLE "RUOYI_VUE_PRO"."SYSTEM_OPERATE_LOG" ADD CONSTRAINT PRIMARY KEY("ID") ; + +ALTER TABLE "RUOYI_VUE_PRO"."SYSTEM_POST" ADD CONSTRAINT PRIMARY KEY("ID") ; + +ALTER TABLE "RUOYI_VUE_PRO"."SYSTEM_ROLE" ADD CONSTRAINT PRIMARY KEY("ID") ; + +ALTER TABLE "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU" ADD CONSTRAINT PRIMARY KEY("ID") ; + +ALTER TABLE "RUOYI_VUE_PRO"."SYSTEM_SENSITIVE_WORD" ADD CONSTRAINT PRIMARY KEY("ID") ; + +ALTER TABLE "RUOYI_VUE_PRO"."SYSTEM_SMS_CHANNEL" ADD CONSTRAINT PRIMARY KEY("ID") ; + +ALTER TABLE "RUOYI_VUE_PRO"."SYSTEM_SMS_CODE" ADD CONSTRAINT PRIMARY KEY("ID") ; + +ALTER TABLE "RUOYI_VUE_PRO"."SYSTEM_SMS_LOG" ADD CONSTRAINT PRIMARY KEY("ID") ; + +ALTER TABLE "RUOYI_VUE_PRO"."SYSTEM_SMS_TEMPLATE" ADD CONSTRAINT PRIMARY KEY("ID") ; + +ALTER TABLE "RUOYI_VUE_PRO"."SYSTEM_SOCIAL_USER" ADD CONSTRAINT PRIMARY KEY("ID") ; + +ALTER TABLE "RUOYI_VUE_PRO"."SYSTEM_SOCIAL_USER_BIND" ADD CONSTRAINT PRIMARY KEY("ID") ; + +ALTER TABLE "RUOYI_VUE_PRO"."SYSTEM_TENANT" ADD CONSTRAINT PRIMARY KEY("ID") ; + +ALTER TABLE "RUOYI_VUE_PRO"."SYSTEM_TENANT_PACKAGE" ADD CONSTRAINT PRIMARY KEY("ID") ; + +ALTER TABLE "RUOYI_VUE_PRO"."SYSTEM_USERS" ADD CONSTRAINT PRIMARY KEY("ID") ; + +ALTER TABLE "RUOYI_VUE_PRO"."SYSTEM_USER_POST" ADD CONSTRAINT PRIMARY KEY("ID") ; + +ALTER TABLE "RUOYI_VUE_PRO"."SYSTEM_USER_ROLE" ADD CONSTRAINT PRIMARY KEY("ID") ; + +CREATE INDEX "IDX_MOBILE" +ON "RUOYI_VUE_PRO"."SYSTEM_SMS_CODE"("MOBILE"); + +ALTER TABLE "RUOYI_VUE_PRO"."SYSTEM_USERS" ADD CONSTRAINT "IDX_USERNAME" UNIQUE("USERNAME","UPDATE_TIME","TENANT_ID") ; + +COMMENT ON TABLE "RUOYI_VUE_PRO"."SYSTEM_NOTIFY_MESSAGE" IS '站内信消息表'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_NOTIFY_MESSAGE"."ID" IS '用户ID'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_NOTIFY_MESSAGE"."USER_ID" IS '用户id'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_NOTIFY_MESSAGE"."USER_TYPE" IS '用户类型'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_NOTIFY_MESSAGE"."TEMPLATE_ID" IS '模版编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_NOTIFY_MESSAGE"."TEMPLATE_CODE" IS '模板编码'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_NOTIFY_MESSAGE"."TEMPLATE_NICKNAME" IS '模版发送人名称'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_NOTIFY_MESSAGE"."TEMPLATE_CONTENT" IS '模版内容'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_NOTIFY_MESSAGE"."TEMPLATE_TYPE" IS '模版类型'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_NOTIFY_MESSAGE"."TEMPLATE_PARAMS" IS '模版参数'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_NOTIFY_MESSAGE"."READ_STATUS" IS '是否已读'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_NOTIFY_MESSAGE"."READ_TIME" IS '阅读时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_NOTIFY_MESSAGE"."CREATOR" IS '创建者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_NOTIFY_MESSAGE"."CREATE_TIME" IS '创建时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_NOTIFY_MESSAGE"."UPDATER" IS '更新者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_NOTIFY_MESSAGE"."UPDATE_TIME" IS '更新时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_NOTIFY_MESSAGE"."DELETED" IS '是否删除'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_NOTIFY_MESSAGE"."TENANT_ID" IS '租户编号'; + +COMMENT ON TABLE "RUOYI_VUE_PRO"."SYSTEM_NOTIFY_TEMPLATE" IS '站内信模板表'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_NOTIFY_TEMPLATE"."ID" IS '主键'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_NOTIFY_TEMPLATE"."NAME" IS '模板名称'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_NOTIFY_TEMPLATE"."CODE" IS '模版编码'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_NOTIFY_TEMPLATE"."NICKNAME" IS '发送人名称'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_NOTIFY_TEMPLATE"."CONTENT" IS '模版内容'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_NOTIFY_TEMPLATE"."TYPE" IS '类型'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_NOTIFY_TEMPLATE"."PARAMS" IS '参数数组'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_NOTIFY_TEMPLATE"."STATUS" IS '状态'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_NOTIFY_TEMPLATE"."REMARK" IS '备注'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_NOTIFY_TEMPLATE"."CREATOR" IS '创建者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_NOTIFY_TEMPLATE"."CREATE_TIME" IS '创建时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_NOTIFY_TEMPLATE"."UPDATER" IS '更新者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_NOTIFY_TEMPLATE"."UPDATE_TIME" IS '更新时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_NOTIFY_TEMPLATE"."DELETED" IS '是否删除'; + +COMMENT ON TABLE "RUOYI_VUE_PRO"."SYSTEM_OAUTH2_ACCESS_TOKEN" IS 'OAuth2 访问令牌'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_OAUTH2_ACCESS_TOKEN"."ID" IS '编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_OAUTH2_ACCESS_TOKEN"."USER_ID" IS '用户编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_OAUTH2_ACCESS_TOKEN"."USER_TYPE" IS '用户类型'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_OAUTH2_ACCESS_TOKEN"."ACCESS_TOKEN" IS '访问令牌'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_OAUTH2_ACCESS_TOKEN"."REFRESH_TOKEN" IS '刷新令牌'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_OAUTH2_ACCESS_TOKEN"."CLIENT_ID" IS '客户端编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_OAUTH2_ACCESS_TOKEN"."SCOPES" IS '授权范围'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_OAUTH2_ACCESS_TOKEN"."EXPIRES_TIME" IS '过期时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_OAUTH2_ACCESS_TOKEN"."CREATOR" IS '创建者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_OAUTH2_ACCESS_TOKEN"."CREATE_TIME" IS '创建时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_OAUTH2_ACCESS_TOKEN"."UPDATER" IS '更新者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_OAUTH2_ACCESS_TOKEN"."UPDATE_TIME" IS '更新时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_OAUTH2_ACCESS_TOKEN"."DELETED" IS '是否删除'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_OAUTH2_ACCESS_TOKEN"."TENANT_ID" IS '租户编号'; + +COMMENT ON TABLE "RUOYI_VUE_PRO"."SYSTEM_OAUTH2_APPROVE" IS 'OAuth2 批准表'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_OAUTH2_APPROVE"."ID" IS '编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_OAUTH2_APPROVE"."USER_ID" IS '用户编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_OAUTH2_APPROVE"."USER_TYPE" IS '用户类型'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_OAUTH2_APPROVE"."CLIENT_ID" IS '客户端编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_OAUTH2_APPROVE"."SCOPE" IS '授权范围'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_OAUTH2_APPROVE"."APPROVED" IS '是否接受'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_OAUTH2_APPROVE"."EXPIRES_TIME" IS '过期时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_OAUTH2_APPROVE"."CREATOR" IS '创建者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_OAUTH2_APPROVE"."CREATE_TIME" IS '创建时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_OAUTH2_APPROVE"."UPDATER" IS '更新者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_OAUTH2_APPROVE"."UPDATE_TIME" IS '更新时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_OAUTH2_APPROVE"."DELETED" IS '是否删除'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_OAUTH2_APPROVE"."TENANT_ID" IS '租户编号'; + +COMMENT ON TABLE "RUOYI_VUE_PRO"."SYSTEM_OAUTH2_CLIENT" IS 'OAuth2 客户端表'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_OAUTH2_CLIENT"."ID" IS '编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_OAUTH2_CLIENT"."CLIENT_ID" IS '客户端编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_OAUTH2_CLIENT"."SECRET" IS '客户端密钥'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_OAUTH2_CLIENT"."NAME" IS '应用名'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_OAUTH2_CLIENT"."LOGO" IS '应用图标'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_OAUTH2_CLIENT"."DESCRIPTION" IS '应用描述'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_OAUTH2_CLIENT"."STATUS" IS '状态'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_OAUTH2_CLIENT"."ACCESS_TOKEN_VALIDITY_SECONDS" IS '访问令牌的有效期'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_OAUTH2_CLIENT"."REFRESH_TOKEN_VALIDITY_SECONDS" IS '刷新令牌的有效期'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_OAUTH2_CLIENT"."REDIRECT_URIS" IS '可重定向的 URI 地址'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_OAUTH2_CLIENT"."AUTHORIZED_GRANT_TYPES" IS '授权类型'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_OAUTH2_CLIENT"."SCOPES" IS '授权范围'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_OAUTH2_CLIENT"."AUTO_APPROVE_SCOPES" IS '自动通过的授权范围'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_OAUTH2_CLIENT"."AUTHORITIES" IS '权限'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_OAUTH2_CLIENT"."RESOURCE_IDS" IS '资源'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_OAUTH2_CLIENT"."ADDITIONAL_INFORMATION" IS '附加信息'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_OAUTH2_CLIENT"."CREATOR" IS '创建者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_OAUTH2_CLIENT"."CREATE_TIME" IS '创建时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_OAUTH2_CLIENT"."UPDATER" IS '更新者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_OAUTH2_CLIENT"."UPDATE_TIME" IS '更新时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_OAUTH2_CLIENT"."DELETED" IS '是否删除'; + +COMMENT ON TABLE "RUOYI_VUE_PRO"."SYSTEM_OAUTH2_CODE" IS 'OAuth2 授权码表'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_OAUTH2_CODE"."ID" IS '编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_OAUTH2_CODE"."USER_ID" IS '用户编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_OAUTH2_CODE"."USER_TYPE" IS '用户类型'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_OAUTH2_CODE"."CODE" IS '授权码'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_OAUTH2_CODE"."CLIENT_ID" IS '客户端编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_OAUTH2_CODE"."SCOPES" IS '授权范围'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_OAUTH2_CODE"."EXPIRES_TIME" IS '过期时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_OAUTH2_CODE"."REDIRECT_URI" IS '可重定向的 URI 地址'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_OAUTH2_CODE"."STATE" IS '状态'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_OAUTH2_CODE"."CREATOR" IS '创建者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_OAUTH2_CODE"."CREATE_TIME" IS '创建时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_OAUTH2_CODE"."UPDATER" IS '更新者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_OAUTH2_CODE"."UPDATE_TIME" IS '更新时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_OAUTH2_CODE"."DELETED" IS '是否删除'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_OAUTH2_CODE"."TENANT_ID" IS '租户编号'; + +COMMENT ON TABLE "RUOYI_VUE_PRO"."SYSTEM_OAUTH2_REFRESH_TOKEN" IS 'OAuth2 刷新令牌'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_OAUTH2_REFRESH_TOKEN"."ID" IS '编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_OAUTH2_REFRESH_TOKEN"."USER_ID" IS '用户编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_OAUTH2_REFRESH_TOKEN"."REFRESH_TOKEN" IS '刷新令牌'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_OAUTH2_REFRESH_TOKEN"."USER_TYPE" IS '用户类型'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_OAUTH2_REFRESH_TOKEN"."CLIENT_ID" IS '客户端编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_OAUTH2_REFRESH_TOKEN"."SCOPES" IS '授权范围'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_OAUTH2_REFRESH_TOKEN"."EXPIRES_TIME" IS '过期时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_OAUTH2_REFRESH_TOKEN"."CREATOR" IS '创建者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_OAUTH2_REFRESH_TOKEN"."CREATE_TIME" IS '创建时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_OAUTH2_REFRESH_TOKEN"."UPDATER" IS '更新者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_OAUTH2_REFRESH_TOKEN"."UPDATE_TIME" IS '更新时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_OAUTH2_REFRESH_TOKEN"."DELETED" IS '是否删除'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_OAUTH2_REFRESH_TOKEN"."TENANT_ID" IS '租户编号'; + +COMMENT ON TABLE "RUOYI_VUE_PRO"."SYSTEM_OPERATE_LOG" IS '操作日志记录'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_OPERATE_LOG"."ID" IS '日志主键'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_OPERATE_LOG"."TRACE_ID" IS '链路追踪编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_OPERATE_LOG"."USER_ID" IS '用户编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_OPERATE_LOG"."USER_TYPE" IS '用户类型'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_OPERATE_LOG"."MODULE" IS '模块标题'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_OPERATE_LOG"."NAME" IS '操作名'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_OPERATE_LOG"."TYPE" IS '操作分类'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_OPERATE_LOG"."CONTENT" IS '操作内容'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_OPERATE_LOG"."EXTS" IS '拓展字段'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_OPERATE_LOG"."REQUEST_METHOD" IS '请求方法名'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_OPERATE_LOG"."REQUEST_URL" IS '请求地址'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_OPERATE_LOG"."USER_IP" IS '用户 IP'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_OPERATE_LOG"."USER_AGENT" IS '浏览器 UA'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_OPERATE_LOG"."JAVA_METHOD" IS 'Java 方法名'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_OPERATE_LOG"."JAVA_METHOD_ARGS" IS 'Java 方法的参数'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_OPERATE_LOG"."START_TIME" IS '操作时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_OPERATE_LOG"."DURATION" IS '执行时长'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_OPERATE_LOG"."RESULT_CODE" IS '结果码'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_OPERATE_LOG"."RESULT_MSG" IS '结果提示'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_OPERATE_LOG"."RESULT_DATA" IS '结果数据'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_OPERATE_LOG"."CREATOR" IS '创建者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_OPERATE_LOG"."CREATE_TIME" IS '创建时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_OPERATE_LOG"."UPDATER" IS '更新者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_OPERATE_LOG"."UPDATE_TIME" IS '更新时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_OPERATE_LOG"."DELETED" IS '是否删除'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_OPERATE_LOG"."TENANT_ID" IS '租户编号'; + +COMMENT ON TABLE "RUOYI_VUE_PRO"."SYSTEM_POST" IS '岗位信息表'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_POST"."ID" IS '岗位ID'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_POST"."CODE" IS '岗位编码'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_POST"."NAME" IS '岗位名称'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_POST"."SORT" IS '显示顺序'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_POST"."STATUS" IS '状态(0正常 1停用)'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_POST"."REMARK" IS '备注'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_POST"."CREATOR" IS '创建者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_POST"."CREATE_TIME" IS '创建时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_POST"."UPDATER" IS '更新者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_POST"."UPDATE_TIME" IS '更新时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_POST"."DELETED" IS '是否删除'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_POST"."TENANT_ID" IS '租户编号'; + +COMMENT ON TABLE "RUOYI_VUE_PRO"."SYSTEM_ROLE" IS '角色信息表'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_ROLE"."ID" IS '角色ID'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_ROLE"."NAME" IS '角色名称'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_ROLE"."CODE" IS '角色权限字符串'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_ROLE"."SORT" IS '显示顺序'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_ROLE"."DATA_SCOPE" IS '数据范围(1:全部数据权限 2:自定数据权限 3:本部门数据权限 4:本部门及以下数据权限)'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_ROLE"."DATA_SCOPE_DEPT_IDS" IS '数据范围(指定部门数组)'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_ROLE"."STATUS" IS '角色状态(0正常 1停用)'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_ROLE"."TYPE" IS '角色类型'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_ROLE"."REMARK" IS '备注'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_ROLE"."CREATOR" IS '创建者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_ROLE"."CREATE_TIME" IS '创建时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_ROLE"."UPDATER" IS '更新者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_ROLE"."UPDATE_TIME" IS '更新时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_ROLE"."DELETED" IS '是否删除'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_ROLE"."TENANT_ID" IS '租户编号'; + +COMMENT ON TABLE "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU" IS '角色和菜单关联表'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"."ID" IS '自增编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"."ROLE_ID" IS '角色ID'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"."MENU_ID" IS '菜单ID'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"."CREATOR" IS '创建者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"."CREATE_TIME" IS '创建时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"."UPDATER" IS '更新者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"."UPDATE_TIME" IS '更新时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"."DELETED" IS '是否删除'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_ROLE_MENU"."TENANT_ID" IS '租户编号'; + +COMMENT ON TABLE "RUOYI_VUE_PRO"."SYSTEM_SENSITIVE_WORD" IS '敏感词'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_SENSITIVE_WORD"."ID" IS '编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_SENSITIVE_WORD"."NAME" IS '敏感词'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_SENSITIVE_WORD"."DESCRIPTION" IS '描述'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_SENSITIVE_WORD"."TAGS" IS '标签数组'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_SENSITIVE_WORD"."STATUS" IS '状态'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_SENSITIVE_WORD"."CREATOR" IS '创建者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_SENSITIVE_WORD"."CREATE_TIME" IS '创建时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_SENSITIVE_WORD"."UPDATER" IS '更新者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_SENSITIVE_WORD"."UPDATE_TIME" IS '更新时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_SENSITIVE_WORD"."DELETED" IS '是否删除'; + +COMMENT ON TABLE "RUOYI_VUE_PRO"."SYSTEM_SMS_CHANNEL" IS '短信渠道'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_SMS_CHANNEL"."ID" IS '编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_SMS_CHANNEL"."SIGNATURE" IS '短信签名'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_SMS_CHANNEL"."CODE" IS '渠道编码'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_SMS_CHANNEL"."STATUS" IS '开启状态'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_SMS_CHANNEL"."REMARK" IS '备注'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_SMS_CHANNEL"."API_KEY" IS '短信 API 的账号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_SMS_CHANNEL"."API_SECRET" IS '短信 API 的秘钥'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_SMS_CHANNEL"."CALLBACK_URL" IS '短信发送回调 URL'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_SMS_CHANNEL"."CREATOR" IS '创建者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_SMS_CHANNEL"."CREATE_TIME" IS '创建时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_SMS_CHANNEL"."UPDATER" IS '更新者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_SMS_CHANNEL"."UPDATE_TIME" IS '更新时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_SMS_CHANNEL"."DELETED" IS '是否删除'; + +COMMENT ON TABLE "RUOYI_VUE_PRO"."SYSTEM_SMS_CODE" IS '手机验证码'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_SMS_CODE"."ID" IS '编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_SMS_CODE"."MOBILE" IS '手机号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_SMS_CODE"."CODE" IS '验证码'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_SMS_CODE"."CREATE_IP" IS '创建 IP'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_SMS_CODE"."SCENE" IS '发送场景'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_SMS_CODE"."TODAY_INDEX" IS '今日发送的第几条'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_SMS_CODE"."USED" IS '是否使用'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_SMS_CODE"."USED_TIME" IS '使用时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_SMS_CODE"."USED_IP" IS '使用 IP'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_SMS_CODE"."CREATOR" IS '创建者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_SMS_CODE"."CREATE_TIME" IS '创建时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_SMS_CODE"."UPDATER" IS '更新者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_SMS_CODE"."UPDATE_TIME" IS '更新时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_SMS_CODE"."DELETED" IS '是否删除'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_SMS_CODE"."TENANT_ID" IS '租户编号'; + +COMMENT ON TABLE "RUOYI_VUE_PRO"."SYSTEM_SMS_LOG" IS '短信日志'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_SMS_LOG"."ID" IS '编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_SMS_LOG"."CHANNEL_ID" IS '短信渠道编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_SMS_LOG"."CHANNEL_CODE" IS '短信渠道编码'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_SMS_LOG"."TEMPLATE_ID" IS '模板编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_SMS_LOG"."TEMPLATE_CODE" IS '模板编码'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_SMS_LOG"."TEMPLATE_TYPE" IS '短信类型'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_SMS_LOG"."TEMPLATE_CONTENT" IS '短信内容'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_SMS_LOG"."TEMPLATE_PARAMS" IS '短信参数'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_SMS_LOG"."API_TEMPLATE_ID" IS '短信 API 的模板编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_SMS_LOG"."MOBILE" IS '手机号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_SMS_LOG"."USER_ID" IS '用户编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_SMS_LOG"."USER_TYPE" IS '用户类型'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_SMS_LOG"."SEND_STATUS" IS '发送状态'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_SMS_LOG"."SEND_TIME" IS '发送时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_SMS_LOG"."SEND_CODE" IS '发送结果的编码'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_SMS_LOG"."SEND_MSG" IS '发送结果的提示'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_SMS_LOG"."API_SEND_CODE" IS '短信 API 发送结果的编码'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_SMS_LOG"."API_SEND_MSG" IS '短信 API 发送失败的提示'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_SMS_LOG"."API_REQUEST_ID" IS '短信 API 发送返回的唯一请求 ID'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_SMS_LOG"."API_SERIAL_NO" IS '短信 API 发送返回的序号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_SMS_LOG"."RECEIVE_STATUS" IS '接收状态'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_SMS_LOG"."RECEIVE_TIME" IS '接收时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_SMS_LOG"."API_RECEIVE_CODE" IS 'API 接收结果的编码'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_SMS_LOG"."API_RECEIVE_MSG" IS 'API 接收结果的说明'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_SMS_LOG"."CREATOR" IS '创建者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_SMS_LOG"."CREATE_TIME" IS '创建时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_SMS_LOG"."UPDATER" IS '更新者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_SMS_LOG"."UPDATE_TIME" IS '更新时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_SMS_LOG"."DELETED" IS '是否删除'; + +COMMENT ON TABLE "RUOYI_VUE_PRO"."SYSTEM_SMS_TEMPLATE" IS '短信模板'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_SMS_TEMPLATE"."ID" IS '编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_SMS_TEMPLATE"."TYPE" IS '短信签名'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_SMS_TEMPLATE"."STATUS" IS '开启状态'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_SMS_TEMPLATE"."CODE" IS '模板编码'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_SMS_TEMPLATE"."NAME" IS '模板名称'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_SMS_TEMPLATE"."CONTENT" IS '模板内容'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_SMS_TEMPLATE"."PARAMS" IS '参数数组'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_SMS_TEMPLATE"."REMARK" IS '备注'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_SMS_TEMPLATE"."API_TEMPLATE_ID" IS '短信 API 的模板编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_SMS_TEMPLATE"."CHANNEL_ID" IS '短信渠道编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_SMS_TEMPLATE"."CHANNEL_CODE" IS '短信渠道编码'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_SMS_TEMPLATE"."CREATOR" IS '创建者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_SMS_TEMPLATE"."CREATE_TIME" IS '创建时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_SMS_TEMPLATE"."UPDATER" IS '更新者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_SMS_TEMPLATE"."UPDATE_TIME" IS '更新时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_SMS_TEMPLATE"."DELETED" IS '是否删除'; + +COMMENT ON TABLE "RUOYI_VUE_PRO"."SYSTEM_SOCIAL_USER" IS '社交用户表'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_SOCIAL_USER"."ID" IS '主键(自增策略)'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_SOCIAL_USER"."TYPE" IS '社交平台的类型'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_SOCIAL_USER"."OPENID" IS '社交 openid'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_SOCIAL_USER"."TOKEN" IS '社交 token'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_SOCIAL_USER"."RAW_TOKEN_INFO" IS '原始 Token 数据,一般是 JSON 格式'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_SOCIAL_USER"."NICKNAME" IS '用户昵称'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_SOCIAL_USER"."AVATAR" IS '用户头像'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_SOCIAL_USER"."RAW_USER_INFO" IS '原始用户数据,一般是 JSON 格式'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_SOCIAL_USER"."CODE" IS '最后一次的认证 code'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_SOCIAL_USER"."STATE" IS '最后一次的认证 state'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_SOCIAL_USER"."CREATOR" IS '创建者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_SOCIAL_USER"."CREATE_TIME" IS '创建时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_SOCIAL_USER"."UPDATER" IS '更新者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_SOCIAL_USER"."UPDATE_TIME" IS '更新时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_SOCIAL_USER"."DELETED" IS '是否删除'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_SOCIAL_USER"."TENANT_ID" IS '租户编号'; + +COMMENT ON TABLE "RUOYI_VUE_PRO"."SYSTEM_SOCIAL_USER_BIND" IS '社交绑定表'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_SOCIAL_USER_BIND"."ID" IS '主键(自增策略)'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_SOCIAL_USER_BIND"."USER_ID" IS '用户编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_SOCIAL_USER_BIND"."USER_TYPE" IS '用户类型'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_SOCIAL_USER_BIND"."SOCIAL_TYPE" IS '社交平台的类型'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_SOCIAL_USER_BIND"."SOCIAL_USER_ID" IS '社交用户的编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_SOCIAL_USER_BIND"."CREATOR" IS '创建者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_SOCIAL_USER_BIND"."CREATE_TIME" IS '创建时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_SOCIAL_USER_BIND"."UPDATER" IS '更新者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_SOCIAL_USER_BIND"."UPDATE_TIME" IS '更新时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_SOCIAL_USER_BIND"."DELETED" IS '是否删除'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_SOCIAL_USER_BIND"."TENANT_ID" IS '租户编号'; + +COMMENT ON TABLE "RUOYI_VUE_PRO"."SYSTEM_TENANT" IS '租户表'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_TENANT"."ID" IS '租户编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_TENANT"."NAME" IS '租户名'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_TENANT"."CONTACT_USER_ID" IS '联系人的用户编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_TENANT"."CONTACT_NAME" IS '联系人'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_TENANT"."CONTACT_MOBILE" IS '联系手机'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_TENANT"."STATUS" IS '租户状态(0正常 1停用)'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_TENANT"."DOMAIN" IS '绑定域名'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_TENANT"."PACKAGE_ID" IS '租户套餐编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_TENANT"."EXPIRE_TIME" IS '过期时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_TENANT"."ACCOUNT_COUNT" IS '账号数量'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_TENANT"."CREATOR" IS '创建者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_TENANT"."CREATE_TIME" IS '创建时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_TENANT"."UPDATER" IS '更新者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_TENANT"."UPDATE_TIME" IS '更新时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_TENANT"."DELETED" IS '是否删除'; + +COMMENT ON TABLE "RUOYI_VUE_PRO"."SYSTEM_TENANT_PACKAGE" IS '租户套餐表'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_TENANT_PACKAGE"."ID" IS '套餐编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_TENANT_PACKAGE"."NAME" IS '套餐名'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_TENANT_PACKAGE"."STATUS" IS '租户状态(0正常 1停用)'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_TENANT_PACKAGE"."REMARK" IS '备注'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_TENANT_PACKAGE"."MENU_IDS" IS '关联的菜单编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_TENANT_PACKAGE"."CREATOR" IS '创建者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_TENANT_PACKAGE"."CREATE_TIME" IS '创建时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_TENANT_PACKAGE"."UPDATER" IS '更新者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_TENANT_PACKAGE"."UPDATE_TIME" IS '更新时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_TENANT_PACKAGE"."DELETED" IS '是否删除'; + +COMMENT ON TABLE "RUOYI_VUE_PRO"."SYSTEM_USERS" IS '用户信息表'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_USERS"."ID" IS '用户ID'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_USERS"."USERNAME" IS '用户账号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_USERS"."PASSWORD" IS '密码'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_USERS"."NICKNAME" IS '用户昵称'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_USERS"."REMARK" IS '备注'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_USERS"."DEPT_ID" IS '部门ID'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_USERS"."POST_IDS" IS '岗位编号数组'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_USERS"."EMAIL" IS '用户邮箱'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_USERS"."MOBILE" IS '手机号码'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_USERS"."SEX" IS '用户性别'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_USERS"."AVATAR" IS '头像地址'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_USERS"."STATUS" IS '帐号状态(0正常 1停用)'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_USERS"."LOGIN_IP" IS '最后登录IP'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_USERS"."LOGIN_DATE" IS '最后登录时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_USERS"."CREATOR" IS '创建者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_USERS"."CREATE_TIME" IS '创建时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_USERS"."UPDATER" IS '更新者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_USERS"."UPDATE_TIME" IS '更新时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_USERS"."DELETED" IS '是否删除'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_USERS"."TENANT_ID" IS '租户编号'; + +COMMENT ON TABLE "RUOYI_VUE_PRO"."SYSTEM_USER_POST" IS '用户岗位表'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_USER_POST"."ID" IS 'id'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_USER_POST"."USER_ID" IS '用户ID'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_USER_POST"."POST_ID" IS '岗位ID'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_USER_POST"."CREATOR" IS '创建者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_USER_POST"."CREATE_TIME" IS '创建时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_USER_POST"."UPDATER" IS '更新者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_USER_POST"."UPDATE_TIME" IS '更新时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_USER_POST"."DELETED" IS '是否删除'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_USER_POST"."TENANT_ID" IS '租户编号'; + +COMMENT ON TABLE "RUOYI_VUE_PRO"."SYSTEM_USER_ROLE" IS '用户和角色关联表'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_USER_ROLE"."ID" IS '自增编号'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_USER_ROLE"."USER_ID" IS '用户ID'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_USER_ROLE"."ROLE_ID" IS '角色ID'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_USER_ROLE"."CREATOR" IS '创建者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_USER_ROLE"."CREATE_TIME" IS '创建时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_USER_ROLE"."UPDATER" IS '更新者'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_USER_ROLE"."UPDATE_TIME" IS '更新时间'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_USER_ROLE"."DELETED" IS '是否删除'; + +COMMENT ON COLUMN "RUOYI_VUE_PRO"."SYSTEM_USER_ROLE"."TENANT_ID" IS '租户编号'; + diff --git a/sql/mysql/optional/mall.sql b/sql/mysql/optional/mall.sql index 9bad4993a..655c03073 100644 --- a/sql/mysql/optional/mall.sql +++ b/sql/mysql/optional/mall.sql @@ -447,6 +447,25 @@ CREATE TABLE `trade_delivery_express` ( PRIMARY KEY (`id`) USING BTREE ) ENGINE=InnoDB COMMENT='快递公司'; +-- ---------------------------- +-- 页面装修表 +-- ---------------------------- +DROP TABLE IF EXISTS `promotion_decorate_component`; +CREATE TABLE `promotion_decorate_component` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号', + `page_id` int NOT NULL COMMENT '所属页面id', + `code` varchar(64) NOT NULL COMMENT '组件编码', + `value` json NOT NULL COMMENT '组件值:json 格式。包含配置和数据', + `status` tinyint NOT NULL DEFAULT 0 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='页面装修表'; + SET FOREIGN_KEY_CHECKS = 1; BEGIN; diff --git a/sql/mysql/ruoyi-vue-pro.sql b/sql/mysql/ruoyi-vue-pro.sql index 65e94c88d..a5d6982fd 100644 --- a/sql/mysql/ruoyi-vue-pro.sql +++ b/sql/mysql/ruoyi-vue-pro.sql @@ -1980,27 +1980,112 @@ INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_i INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2046, '满减送活动关闭', 'promotion:reward-activity:close', 3, 5, 2041, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2022-11-05 10:42:53', '1', '2022-11-05 10:42:53', b'0'); INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2047, '限时折扣活动', '', 2, 7, 2030, 'discount-activity', 'time', 'mall/promotion/discountActivity/index', 'PromotionDiscountActivity', 0, b'1', b'1', b'1', '', '2022-11-05 17:12:15', '1', '2023-04-08 11:45:44', b'0'); INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2048, '限时折扣活动查询', 'promotion:discount-activity:query', 3, 1, 2047, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-11-05 17:12:15', '', '2022-11-05 17:12:15', b'0'); -INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2049, '限时折扣活动创建', 'promotion:discount-activity:create', 3, 2, 2047, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-11-05 17:12:15', '', '2022-11-05 17:12:15', b'0'); -INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2050, '限时折扣活动更新', 'promotion:discount-activity:update', 3, 3, 2047, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-11-05 17:12:16', '', '2022-11-05 17:12:16', b'0'); -INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2051, '限时折扣活动删除', 'promotion:discount-activity:delete', 3, 4, 2047, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-11-05 17:12:16', '', '2022-11-05 17:12:16', b'0'); -INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2052, '限时折扣活动关闭', 'promotion:discount-activity:close', 3, 5, 2047, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-11-05 17:12:16', '', '2022-11-05 17:12:16', b'0'); -INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2059, '秒杀活动管理', '', 2, 0, 2030, 'seckill-activity', 'time-range', 'mall/promotion/seckill/seckillActivity/index', 'PromotionSeckillActivity', 0, b'1', b'1', b'1', '', '2022-11-06 22:24:49', '1', '2023-04-08 11:46:02', b'0'); -INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2060, '秒杀活动查询', 'promotion:seckill-activity:query', 3, 1, 2059, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-11-06 22:24:49', '', '2022-11-06 22:24:49', b'0'); -INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2061, '秒杀活动创建', 'promotion:seckill-activity:create', 3, 2, 2059, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-11-06 22:24:49', '', '2022-11-06 22:24:49', b'0'); -INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2062, '秒杀活动更新', 'promotion:seckill-activity:update', 3, 3, 2059, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-11-06 22:24:49', '', '2022-11-06 22:24:49', b'0'); -INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2063, '秒杀活动删除', 'promotion:seckill-activity:delete', 3, 4, 2059, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-11-06 22:24:49', '', '2022-11-06 22:24:49', b'0'); -INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2064, '秒杀活动导出', 'promotion:seckill-activity:export', 3, 5, 2059, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-11-06 22:24:49', '', '2022-11-06 22:24:49', b'0'); -INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2066, '秒杀时段管理', '', 2, 0, 2030, 'seckill-time', '', 'mall/promotion/seckill/seckillTime/index', 'PromotionSeckillTime', 0, b'0', b'1', b'1', '', '2022-11-15 19:46:50', '1', '2023-04-08 11:46:17', b'0'); -INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2067, '秒杀时段查询', 'promotion:seckill-time:query', 3, 1, 2066, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-11-15 19:46:51', '', '2022-11-15 19:46:51', b'0'); -INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2068, '秒杀时段创建', 'promotion:seckill-time:create', 3, 2, 2066, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-11-15 19:46:51', '', '2022-11-15 19:46:51', b'0'); -INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2069, '秒杀时段更新', 'promotion:seckill-time:update', 3, 3, 2066, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-11-15 19:46:51', '', '2022-11-15 19:46:51', b'0'); -INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2070, '秒杀时段删除', 'promotion:seckill-time:delete', 3, 4, 2066, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-11-15 19:46:51', '', '2022-11-15 19:46:51', b'0'); -INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2071, '秒杀时段导出', 'promotion:seckill-time:export', 3, 5, 2066, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-11-15 19:46:51', '', '2022-11-15 19:46:51', b'0'); -INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2072, '订单中心', '', 1, 65, 0, '/trade', 'order', NULL, NULL, 0, b'1', b'1', b'1', '1', '2022-11-19 18:57:19', '1', '2022-12-10 16:32:57', b'0'); -INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2073, '售后退款', '', 2, 1, 2072, 'trade/after-sale', 'education', 'mall/trade/afterSale/index', 'TradeAfterSale', 0, b'1', b'1', b'1', '', '2022-11-19 20:15:32', '1', '2023-04-08 11:43:19', b'0'); -INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2074, '售后查询', 'trade:after-sale:query', 3, 1, 2073, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-11-19 20:15:33', '1', '2022-12-10 21:04:29', b'0'); -INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2075, '秒杀活动关闭', 'promotion:sekill-activity:close', 3, 6, 2059, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2022-11-28 20:20:15', '1', '2022-11-28 20:20:15', b'0'); -INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2076, '订单列表', '', 2, 0, 2072, 'trade/order', 'list', 'mall/trade/order/index', 'TradeOrder', 0, b'1', b'1', b'1', '1', '2022-12-10 21:05:44', '1', '2023-04-08 11:42:23', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, + `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, + `updater`, `update_time`, `deleted`) +VALUES (2049, '限时折扣活动创建', 'promotion:discount-activity:create', 3, 2, 2047, '', '', '', NULL, 0, b'1', b'1', + b'1', '', '2022-11-05 17:12:15', '', '2022-11-05 17:12:15', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, + `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, + `updater`, `update_time`, `deleted`) +VALUES (2050, '限时折扣活动更新', 'promotion:discount-activity:update', 3, 3, 2047, '', '', '', NULL, 0, b'1', b'1', + b'1', '', '2022-11-05 17:12:16', '', '2022-11-05 17:12:16', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, + `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, + `updater`, `update_time`, `deleted`) +VALUES (2051, '限时折扣活动删除', 'promotion:discount-activity:delete', 3, 4, 2047, '', '', '', NULL, 0, b'1', b'1', + b'1', '', '2022-11-05 17:12:16', '', '2022-11-05 17:12:16', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, + `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, + `updater`, `update_time`, `deleted`) +VALUES (2052, '限时折扣活动关闭', 'promotion:discount-activity:close', 3, 5, 2047, '', '', '', NULL, 0, b'1', b'1', + b'1', '', '2022-11-05 17:12:16', '', '2022-11-05 17:12:16', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, + `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, + `updater`, `update_time`, `deleted`) +VALUES (2059, '秒杀活动管理', '', 2, 0, 2030, 'seckill-activity', 'time-range', + 'mall/promotion/seckill/seckillActivity/index', 'PromotionSeckillActivity', 0, b'1', b'1', b'1', '', + '2022-11-06 22:24:49', '1', '2023-04-08 11:46:02', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, + `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, + `updater`, `update_time`, `deleted`) +VALUES (2060, '秒杀活动查询', 'promotion:seckill-activity:query', 3, 1, 2059, '', '', '', NULL, 0, b'1', b'1', b'1', '', + '2022-11-06 22:24:49', '', '2022-11-06 22:24:49', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, + `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, + `updater`, `update_time`, `deleted`) +VALUES (2061, '秒杀活动创建', 'promotion:seckill-activity:create', 3, 2, 2059, '', '', '', NULL, 0, b'1', b'1', b'1', + '', '2022-11-06 22:24:49', '', '2022-11-06 22:24:49', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, + `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, + `updater`, `update_time`, `deleted`) +VALUES (2062, '秒杀活动更新', 'promotion:seckill-activity:update', 3, 3, 2059, '', '', '', NULL, 0, b'1', b'1', b'1', + '', '2022-11-06 22:24:49', '', '2022-11-06 22:24:49', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, + `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, + `updater`, `update_time`, `deleted`) +VALUES (2063, '秒杀活动删除', 'promotion:seckill-activity:delete', 3, 4, 2059, '', '', '', NULL, 0, b'1', b'1', b'1', + '', '2022-11-06 22:24:49', '', '2022-11-06 22:24:49', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, + `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, + `updater`, `update_time`, `deleted`) +VALUES (2064, '秒杀活动导出', 'promotion:seckill-activity:export', 3, 5, 2059, '', '', '', NULL, 0, b'1', b'1', b'1', + '', '2022-11-06 22:24:49', '', '2022-11-06 22:24:49', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, + `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, + `updater`, `update_time`, `deleted`) +VALUES (2066, '秒杀时段管理', '', 2, 0, 2030, 'seckill-time', '', 'mall/promotion/seckill/SeckillConfig/index', + 'PromotionSeckillConfig', 0, b'0', b'1', b'1', '', '2022-11-15 19:46:50', '1', '2023-04-08 11:46:17', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, + `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, + `updater`, `update_time`, `deleted`) +VALUES (2067, '秒杀时段查询', 'promotion:seckill-time:query', 3, 1, 2066, '', '', '', NULL, 0, b'1', b'1', b'1', '', + '2022-11-15 19:46:51', '', '2022-11-15 19:46:51', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, + `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, + `updater`, `update_time`, `deleted`) +VALUES (2068, '秒杀时段创建', 'promotion:seckill-time:create', 3, 2, 2066, '', '', '', NULL, 0, b'1', b'1', b'1', '', + '2022-11-15 19:46:51', '', '2022-11-15 19:46:51', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, + `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, + `updater`, `update_time`, `deleted`) +VALUES (2069, '秒杀时段更新', 'promotion:seckill-time:update', 3, 3, 2066, '', '', '', NULL, 0, b'1', b'1', b'1', '', + '2022-11-15 19:46:51', '', '2022-11-15 19:46:51', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, + `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, + `updater`, `update_time`, `deleted`) +VALUES (2070, '秒杀时段删除', 'promotion:seckill-time:delete', 3, 4, 2066, '', '', '', NULL, 0, b'1', b'1', b'1', '', + '2022-11-15 19:46:51', '', '2022-11-15 19:46:51', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, + `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, + `updater`, `update_time`, `deleted`) +VALUES (2071, '秒杀时段导出', 'promotion:seckill-time:export', 3, 5, 2066, '', '', '', NULL, 0, b'1', b'1', b'1', '', + '2022-11-15 19:46:51', '', '2022-11-15 19:46:51', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, + `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, + `updater`, `update_time`, `deleted`) +VALUES (2072, '订单中心', '', 1, 65, 0, '/trade', 'order', NULL, NULL, 0, b'1', b'1', b'1', '1', '2022-11-19 18:57:19', + '1', '2022-12-10 16:32:57', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, + `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, + `updater`, `update_time`, `deleted`) +VALUES (2073, '售后退款', '', 2, 1, 2072, 'trade/after-sale', 'education', 'mall/trade/afterSale/index', + 'TradeAfterSale', 0, b'1', b'1', b'1', '', '2022-11-19 20:15:32', '1', '2023-04-08 11:43:19', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, + `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, + `updater`, `update_time`, `deleted`) +VALUES (2074, '售后查询', 'trade:after-sale:query', 3, 1, 2073, '', '', '', NULL, 0, b'1', b'1', b'1', '', + '2022-11-19 20:15:33', '1', '2022-12-10 21:04:29', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, + `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, + `updater`, `update_time`, `deleted`) +VALUES (2075, '秒杀活动关闭', 'promotion:sekill-activity:close', 3, 6, 2059, '', '', '', NULL, 0, b'1', b'1', b'1', '1', + '2022-11-28 20:20:15', '1', '2022-11-28 20:20:15', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, + `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, + `updater`, `update_time`, `deleted`) +VALUES (2076, '订单列表', '', 2, 0, 2072, 'trade/order', 'list', 'mall/trade/order/index', 'TradeOrder', 0, b'1', b'1', + b'1', '1', '2022-12-10 21:05:44', '1', '2023-04-08 11:42:23', b'0'); INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2077, '物流公司管理管理', '', 2, 0, 2072, 'express-company', '', 'mall/trade/expressCompany/index', NULL, 0, b'1', b'1', b'1', '', '2022-12-20 23:27:55', '1', '2022-12-20 23:36:20', b'0'); INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2078, '物流公司管理查询', 'trade:express-company:query', 3, 1, 2077, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-12-20 23:27:55', '', '2022-12-20 23:27:55', b'0'); INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2079, '物流公司管理创建', 'trade:express-company:create', 3, 2, 2077, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-12-20 23:27:55', '', '2022-12-20 23:27:55', b'0'); diff --git a/yudao-dependencies/pom.xml b/yudao-dependencies/pom.xml index b536514a4..92b914c97 100644 --- a/yudao-dependencies/pom.xml +++ b/yudao-dependencies/pom.xml @@ -14,9 +14,9 @@ https://github.com/YunaiV/ruoyi-vue-pro - 1.7.1-snapshot + 1.7.3-snapshot - 2.7.10 + 2.7.11 1.6.15 4.1.0 @@ -28,6 +28,7 @@ 3.6.1 1.4.3.2 3.18.0 + 8.1.2.141 2.2.3 1.7.1 @@ -45,9 +46,9 @@ 1.0.2 1.15.4 1.18.26 - 1.5.3.Final - 5.8.15 - 3.2.1 + 1.5.5.Final + 5.8.18 + 3.3.1 2.3 1.0.5 1.2.83 @@ -62,6 +63,7 @@ 3.0.0 4.10.0 + 2.11.0 8.5.2 4.6.3 2.2.1 @@ -94,6 +96,11 @@ yudao-spring-boot-starter-biz-operatelog ${revision} + + cn.iocoder.boot + yudao-spring-boot-starter-biz-trade + ${revision} + cn.iocoder.boot yudao-spring-boot-starter-biz-dict @@ -228,6 +235,12 @@ ${redisson.version} + + com.dameng + DmJdbcDriver18 + ${dm8.jdbc.version} + + cn.iocoder.boot @@ -437,7 +450,11 @@ easyexcel ${easyexcel.verion} - + + commons-io + commons-io + ${commons-io.version} + org.apache.tika tika-core diff --git a/yudao-example/yudao-sso-demo-by-code/pom.xml b/yudao-example/yudao-sso-demo-by-code/pom.xml index 2f8648374..e49b573a2 100644 --- a/yudao-example/yudao-sso-demo-by-code/pom.xml +++ b/yudao-example/yudao-sso-demo-by-code/pom.xml @@ -21,7 +21,7 @@ 8 UTF-8 - 2.7.10 + 2.7.11 @@ -52,7 +52,7 @@ cn.hutool hutool-all - 5.8.15 + 5.8.18 diff --git a/yudao-example/yudao-sso-demo-by-password/pom.xml b/yudao-example/yudao-sso-demo-by-password/pom.xml index bc805ff69..556d2b6c3 100644 --- a/yudao-example/yudao-sso-demo-by-password/pom.xml +++ b/yudao-example/yudao-sso-demo-by-password/pom.xml @@ -21,7 +21,7 @@ 8 UTF-8 - 2.7.10 + 2.7.11 @@ -52,7 +52,7 @@ cn.hutool hutool-all - 5.8.15 + 5.8.18 diff --git a/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/pojo/PageParam.java b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/pojo/PageParam.java index 9c553055a..5738ded67 100644 --- a/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/pojo/PageParam.java +++ b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/pojo/PageParam.java @@ -15,12 +15,12 @@ public class PageParam implements Serializable { private static final Integer PAGE_NO = 1; private static final Integer PAGE_SIZE = 10; - @Schema(description = "页码,从 1 开始", required = true,example = "1") + @Schema(description = "页码,从 1 开始", requiredMode = Schema.RequiredMode.REQUIRED,example = "1") @NotNull(message = "页码不能为空") @Min(value = 1, message = "页码最小值为 1") private Integer pageNo = PAGE_NO; - @Schema(description = "每页条数,最大值为 100", required = true, example = "10") + @Schema(description = "每页条数,最大值为 100", requiredMode = Schema.RequiredMode.REQUIRED, example = "10") @NotNull(message = "每页条数不能为空") @Min(value = 1, message = "每页条数最小值为 1") @Max(value = 100, message = "每页条数最大值为 100") diff --git a/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/pojo/PageResult.java b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/pojo/PageResult.java index ff167d149..ff9087a81 100644 --- a/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/pojo/PageResult.java +++ b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/pojo/PageResult.java @@ -11,10 +11,10 @@ import java.util.List; @Data public final class PageResult implements Serializable { - @Schema(description = "数据", required = true) + @Schema(description = "数据", requiredMode = Schema.RequiredMode.REQUIRED) private List list; - @Schema(description = "总量", required = true) + @Schema(description = "总量", requiredMode = Schema.RequiredMode.REQUIRED) private Long total; public PageResult() { diff --git a/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/collection/SetUtils.java b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/collection/SetUtils.java index bc5bc5cb8..e8eba6624 100644 --- a/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/collection/SetUtils.java +++ b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/collection/SetUtils.java @@ -1,7 +1,7 @@ package cn.iocoder.yudao.framework.common.util.collection; -import java.util.Arrays; -import java.util.HashSet; +import cn.hutool.core.collection.CollUtil; + import java.util.Set; /** @@ -13,7 +13,7 @@ public class SetUtils { @SafeVarargs public static Set asSet(T... objs) { - return new HashSet<>(Arrays.asList(objs)); + return CollUtil.newHashSet(objs); } } diff --git a/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/date/DateUtils.java b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/date/DateUtils.java index a329fb177..c2d069a59 100644 --- a/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/date/DateUtils.java +++ b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/date/DateUtils.java @@ -55,7 +55,6 @@ public class DateUtils { return LocalDateTime.ofInstant(instant, ZoneId.systemDefault()); } - @Deprecated public static Date addTime(Duration duration) { return new Date(System.currentTimeMillis() + duration.toMillis()); } diff --git a/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/json/JsonUtils.java b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/json/JsonUtils.java index 86d220638..c0c812c53 100644 --- a/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/json/JsonUtils.java +++ b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/json/JsonUtils.java @@ -4,6 +4,7 @@ import cn.hutool.core.util.ArrayUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.json.JSONUtil; import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.SerializationFeature; @@ -13,6 +14,7 @@ import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; import java.io.IOException; +import java.lang.reflect.Type; import java.util.ArrayList; import java.util.List; @@ -29,6 +31,7 @@ public class JsonUtils { static { objectMapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false); + objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); objectMapper.registerModules(new JavaTimeModule()); // 解决 LocalDateTime 的序列化 } @@ -70,6 +73,18 @@ public class JsonUtils { } } + public static T parseObject(String text, Type type) { + if (StrUtil.isEmpty(text)) { + return null; + } + try { + return objectMapper.readValue(text, objectMapper.getTypeFactory().constructType(type)); + } catch (IOException e) { + log.error("json parse err,json:{}", text, e); + throw new RuntimeException(e); + } + } + /** * 将字符串解析成指定类型的对象 * 使用 {@link #parseObject(String, Class)} 时,在@JsonTypeInfo(use = JsonTypeInfo.Id.CLASS) 的场景下, diff --git a/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/spring/SpringExpressionUtils.java b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/spring/SpringExpressionUtils.java index 659053da7..5e82d5e3b 100644 --- a/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/spring/SpringExpressionUtils.java +++ b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/spring/SpringExpressionUtils.java @@ -3,6 +3,7 @@ package cn.iocoder.yudao.framework.common.util.spring; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.map.MapUtil; import cn.hutool.core.util.ArrayUtil; +import org.aspectj.lang.JoinPoint; import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.reflect.MethodSignature; import org.springframework.core.DefaultParameterNameDiscoverer; @@ -24,7 +25,13 @@ import java.util.Map; */ public class SpringExpressionUtils { + /** + * spel表达式解析器 + */ private static final ExpressionParser EXPRESSION_PARSER = new SpelExpressionParser(); + /** + * 参数名发现器 + */ private static final ParameterNameDiscoverer PARAMETER_NAME_DISCOVERER = new DefaultParameterNameDiscoverer(); private SpringExpressionUtils() { @@ -33,7 +40,7 @@ public class SpringExpressionUtils { /** * 从切面中,单个解析 EL 表达式的结果 * - * @param joinPoint 切面点 + * @param joinPoint 切面点 * @param expressionString EL 表达式数组 * @return 执行界面 */ @@ -45,7 +52,7 @@ public class SpringExpressionUtils { /** * 从切面中,批量解析 EL 表达式的结果 * - * @param joinPoint 切面点 + * @param joinPoint 切面点 * @param expressionStrings EL 表达式数组 * @return 结果,key 为表达式,value 为对应值 */ @@ -79,4 +86,48 @@ public class SpringExpressionUtils { }); return result; } + + /** + * JoinPoint 切面 批量解析 EL 表达式,转换 jspl参数 + * + * @param joinPoint 切面点 + * @param info 返回值 + * @param expressionStrings EL 表达式数组 + * @return Map 结果 + * @author 陈賝 + * @since 2023/6/18 11:20 + */ + // TODO @chenchen: 这个方法,和 parseExpressions 比较接近,是不是可以合并下; + public static Map parseExpression(JoinPoint joinPoint, Object info, List expressionStrings) { + // 如果为空,则不进行解析 + if (CollUtil.isEmpty(expressionStrings)) { + return MapUtil.newHashMap(); + } + + // 第一步,构建解析的上下文 EvaluationContext + // 通过 joinPoint 获取被注解方法 + MethodSignature signature = (MethodSignature) joinPoint.getSignature(); + Method method = signature.getMethod(); + // 使用 spring 的 ParameterNameDiscoverer 获取方法形参名数组 + String[] parameterNames = PARAMETER_NAME_DISCOVERER.getParameterNames(method); + // Spring 的表达式上下文对象 + EvaluationContext context = new StandardEvaluationContext(); + if (ArrayUtil.isNotEmpty(parameterNames)) { + //获取方法参数值 + Object[] args = joinPoint.getArgs(); + for (int i = 0; i < args.length; i++) { + // 替换 SP EL 里的变量值为实际值, 比如 #user --> user对象 + context.setVariable(parameterNames[i], args[i]); + } + context.setVariable("info", info); + } + // 第二步,逐个参数解析 + Map result = MapUtil.newHashMap(expressionStrings.size(), true); + expressionStrings.forEach(key -> { + Object value = EXPRESSION_PARSER.parseExpression(key).getValue(context); + result.put(key, value); + }); + return result; + } + } diff --git a/yudao-framework/yudao-spring-boot-starter-biz-operatelog/pom.xml b/yudao-framework/yudao-spring-boot-starter-biz-operatelog/pom.xml index 01deef06f..5792b4cb4 100644 --- a/yudao-framework/yudao-spring-boot-starter-biz-operatelog/pom.xml +++ b/yudao-framework/yudao-spring-boot-starter-biz-operatelog/pom.xml @@ -37,7 +37,7 @@ cn.iocoder.boot - yudao-module-system-api + yudao-module-system-api ${revision} diff --git a/yudao-framework/yudao-spring-boot-starter-biz-pay/src/test/java/cn.iocoder.yudao.framework.pay.core.client.impl/PayClientFactoryImplIntegrationTest.java b/yudao-framework/yudao-spring-boot-starter-biz-pay/src/test/java/cn/iocoder/yudao/framework/pay/core/client/impl/PayClientFactoryImplIntegrationTest.java similarity index 100% rename from yudao-framework/yudao-spring-boot-starter-biz-pay/src/test/java/cn.iocoder.yudao.framework.pay.core.client.impl/PayClientFactoryImplIntegrationTest.java rename to yudao-framework/yudao-spring-boot-starter-biz-pay/src/test/java/cn/iocoder/yudao/framework/pay/core/client/impl/PayClientFactoryImplIntegrationTest.java diff --git a/yudao-framework/yudao-spring-boot-starter-biz-pay/src/test/java/cn.iocoder.yudao.framework.pay.core.client.impl/alipay/AlipayQrPayClientTest.java b/yudao-framework/yudao-spring-boot-starter-biz-pay/src/test/java/cn/iocoder/yudao/framework/pay/core/client/impl/alipay/AlipayQrPayClientTest.java similarity index 100% rename from yudao-framework/yudao-spring-boot-starter-biz-pay/src/test/java/cn.iocoder.yudao.framework.pay.core.client.impl/alipay/AlipayQrPayClientTest.java rename to yudao-framework/yudao-spring-boot-starter-biz-pay/src/test/java/cn/iocoder/yudao/framework/pay/core/client/impl/alipay/AlipayQrPayClientTest.java diff --git a/yudao-framework/yudao-spring-boot-starter-biz-weixin/src/main/java/cn/iocoder/yudao/framework/weixin/package-info.java b/yudao-framework/yudao-spring-boot-starter-biz-weixin/src/main/java/cn/iocoder/yudao/framework/weixin/package-info.java new file mode 100644 index 000000000..cf15f39bf --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-biz-weixin/src/main/java/cn/iocoder/yudao/framework/weixin/package-info.java @@ -0,0 +1,7 @@ +/** + * 微信拓展 + * 1. 基于 weixin-java-mp 库,对接微信公众号平台。目前主要解决微信公众号的支付场景。 + * 2. 基于 weixin-java-miniapp 库,对接微信小程序。目前主要解决微信小程序的一键登录场景。 + */ +package cn.iocoder.yudao.framework.weixin; + diff --git a/yudao-framework/yudao-spring-boot-starter-mybatis/pom.xml b/yudao-framework/yudao-spring-boot-starter-mybatis/pom.xml index 4424c72b6..14a7eaf30 100644 --- a/yudao-framework/yudao-spring-boot-starter-mybatis/pom.xml +++ b/yudao-framework/yudao-spring-boot-starter-mybatis/pom.xml @@ -45,7 +45,10 @@ com.microsoft.sqlserver mssql-jdbc - + + com.dameng + DmJdbcDriver18 + com.alibaba druid-spring-boot-starter diff --git a/yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/mybatis/config/YudaoMybatisAutoConfiguration.java b/yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/mybatis/config/YudaoMybatisAutoConfiguration.java index 78ee259c8..d5ea3069a 100644 --- a/yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/mybatis/config/YudaoMybatisAutoConfiguration.java +++ b/yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/mybatis/config/YudaoMybatisAutoConfiguration.java @@ -5,10 +5,7 @@ import cn.iocoder.yudao.framework.mybatis.core.handler.DefaultDBFieldHandler; import com.baomidou.mybatisplus.annotation.DbType; import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler; import com.baomidou.mybatisplus.core.incrementer.IKeyGenerator; -import com.baomidou.mybatisplus.extension.incrementer.H2KeyGenerator; -import com.baomidou.mybatisplus.extension.incrementer.KingbaseKeyGenerator; -import com.baomidou.mybatisplus.extension.incrementer.OracleKeyGenerator; -import com.baomidou.mybatisplus.extension.incrementer.PostgreKeyGenerator; +import com.baomidou.mybatisplus.extension.incrementer.*; import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor; import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor; import org.apache.ibatis.annotations.Mapper; @@ -55,6 +52,8 @@ public class YudaoMybatisAutoConfiguration { return new H2KeyGenerator(); case KINGBASE_ES: return new KingbaseKeyGenerator(); + case DM: + return new DmKeyGenerator(); } } // 找不到合适的 IKeyGenerator 实现类 diff --git a/yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/mybatis/core/mapper/BaseMapperX.java b/yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/mybatis/core/mapper/BaseMapperX.java index 5dee2ba00..614469e92 100644 --- a/yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/mybatis/core/mapper/BaseMapperX.java +++ b/yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/mybatis/core/mapper/BaseMapperX.java @@ -113,7 +113,6 @@ public interface BaseMapperX extends MPJBaseMapper { Db.saveBatch(entities, size); } - // @芋艿 是不是叫 updateByDo 或者 updateByEntity 更合适;回复:因为是使用实体作为条件去批量更新,所以没加 ByEntity,保持和 mybatis plus 风格一致 default void updateBatch(T update) { update(update, new QueryWrapper<>()); } @@ -131,4 +130,13 @@ public interface BaseMapperX extends MPJBaseMapper { Db.updateBatchById(entities, size); } + /** + * 批量修改插入, 会根据实体的主键是否为空,更新还是修改。默认为 1000 + * + * @param entities 实体们 + */ + default void saveOrUpdateBatch(Collection entities){ + Db.saveOrUpdateBatch(entities); + } + } diff --git a/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/web/config/YudaoWebAutoConfiguration.java b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/web/config/YudaoWebAutoConfiguration.java index b20565eca..e47619df3 100644 --- a/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/web/config/YudaoWebAutoConfiguration.java +++ b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/web/config/YudaoWebAutoConfiguration.java @@ -10,11 +10,14 @@ import cn.iocoder.yudao.framework.web.core.util.WebFrameworkUtils; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.autoconfigure.AutoConfiguration; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; +import org.springframework.boot.autoconfigure.web.client.RestTemplateAutoConfiguration; import org.springframework.boot.context.properties.EnableConfigurationProperties; +import org.springframework.boot.web.client.RestTemplateBuilder; import org.springframework.boot.web.servlet.FilterRegistrationBean; import org.springframework.context.annotation.Bean; import org.springframework.util.AntPathMatcher; import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.client.RestTemplate; import org.springframework.web.cors.CorsConfiguration; import org.springframework.web.cors.UrlBasedCorsConfigurationSource; import org.springframework.web.filter.CorsFilter; @@ -113,4 +116,13 @@ public class YudaoWebAutoConfiguration implements WebMvcConfigurer { return bean; } + /** + * 创建 RestTemplate 实例 + * + * @param restTemplateBuilder {@link RestTemplateAutoConfiguration#restTemplateBuilder} + */ + @Bean + public RestTemplate restTemplate(RestTemplateBuilder restTemplateBuilder) { + return restTemplateBuilder.build(); + } } diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/form/BpmFormBaseVO.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/form/BpmFormBaseVO.java index c51984f0c..50dfd40d8 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/form/BpmFormBaseVO.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/form/BpmFormBaseVO.java @@ -10,11 +10,11 @@ import javax.validation.constraints.*; @Data public class BpmFormBaseVO { - @Schema(description = "表单名称", required = true, example = "芋道") + @Schema(description = "表单名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道") @NotNull(message = "表单名称不能为空") private String name; - @Schema(description = "表单状态-参见 CommonStatusEnum 枚举", required = true, example = "1") + @Schema(description = "表单状态-参见 CommonStatusEnum 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotNull(message = "表单状态不能为空") private Integer status; diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/form/BpmFormCreateReqVO.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/form/BpmFormCreateReqVO.java index 5a096667a..d2f743c5b 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/form/BpmFormCreateReqVO.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/form/BpmFormCreateReqVO.java @@ -11,11 +11,11 @@ import java.util.List; @ToString(callSuper = true) public class BpmFormCreateReqVO extends BpmFormBaseVO { - @Schema(description = "表单的配置-JSON 字符串", required = true) + @Schema(description = "表单的配置-JSON 字符串", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "表单的配置不能为空") private String conf; - @Schema(description = "表单项的数组-JSON 字符串的数组", required = true) + @Schema(description = "表单项的数组-JSON 字符串的数组", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "表单项的数组不能为空") private List fields; diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/form/BpmFormRespVO.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/form/BpmFormRespVO.java index 5d7f4e765..102f64cf4 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/form/BpmFormRespVO.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/form/BpmFormRespVO.java @@ -14,18 +14,18 @@ import java.util.List; @ToString(callSuper = true) public class BpmFormRespVO extends BpmFormBaseVO { - @Schema(description = "表单编号", required = true, example = "1024") + @Schema(description = "表单编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private Long id; - @Schema(description = "表单的配置-JSON 字符串", required = true) + @Schema(description = "表单的配置-JSON 字符串", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "表单的配置不能为空") private String conf; - @Schema(description = "表单项的数组-JSON 字符串的数组", required = true) + @Schema(description = "表单项的数组-JSON 字符串的数组", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "表单项的数组不能为空") private List fields; - @Schema(description = "创建时间", required = true) + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) private LocalDateTime createTime; } diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/form/BpmFormSimpleRespVO.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/form/BpmFormSimpleRespVO.java index 2e19f441c..71d8a1f80 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/form/BpmFormSimpleRespVO.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/form/BpmFormSimpleRespVO.java @@ -7,10 +7,10 @@ import lombok.Data; @Data public class BpmFormSimpleRespVO { - @Schema(description = "表单编号", required = true, example = "1024") + @Schema(description = "表单编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private Long id; - @Schema(description = "表单名称", required = true, example = "芋道") + @Schema(description = "表单名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道") private String name; } diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/form/BpmFormUpdateReqVO.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/form/BpmFormUpdateReqVO.java index e315ef370..1ff105df3 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/form/BpmFormUpdateReqVO.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/form/BpmFormUpdateReqVO.java @@ -10,15 +10,15 @@ import java.util.List; @ToString(callSuper = true) public class BpmFormUpdateReqVO extends BpmFormBaseVO { - @Schema(description = "表单编号", required = true, example = "1024") + @Schema(description = "表单编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") @NotNull(message = "表单编号不能为空") private Long id; - @Schema(description = "表单的配置-JSON 字符串", required = true) + @Schema(description = "表单的配置-JSON 字符串", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "表单的配置不能为空") private String conf; - @Schema(description = "表单项的数组-JSON 字符串的数组", required = true) + @Schema(description = "表单项的数组-JSON 字符串的数组", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "表单项的数组不能为空") private List fields; diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/group/BpmUserGroupBaseVO.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/group/BpmUserGroupBaseVO.java index d78d3c02d..8e3e9be08 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/group/BpmUserGroupBaseVO.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/group/BpmUserGroupBaseVO.java @@ -1,8 +1,10 @@ package cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.group; + import io.swagger.v3.oas.annotations.media.Schema; -import lombok.*; -import java.util.*; -import javax.validation.constraints.*; +import lombok.Data; + +import javax.validation.constraints.NotNull; +import java.util.Set; /** * 用户组 Base VO,提供给添加、修改、详细的子 VO 使用 @@ -11,19 +13,19 @@ import javax.validation.constraints.*; @Data public class BpmUserGroupBaseVO { - @Schema(description = "组名", required = true, example = "芋道") + @Schema(description = "组名", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道") @NotNull(message = "组名不能为空") private String name; - @Schema(description = "描述", required = true, example = "芋道源码") + @Schema(description = "描述", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道源码") @NotNull(message = "描述不能为空") private String description; - @Schema(description = "成员编号数组", required = true, example = "1,2,3") + @Schema(description = "成员编号数组", requiredMode = Schema.RequiredMode.REQUIRED, example = "1,2,3") @NotNull(message = "成员编号数组不能为空") private Set memberUserIds; - @Schema(description = "状态", required = true, example = "1") + @Schema(description = "状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotNull(message = "状态不能为空") private Integer status; diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/group/BpmUserGroupRespVO.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/group/BpmUserGroupRespVO.java index 2a390a9cf..0f89e9538 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/group/BpmUserGroupRespVO.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/group/BpmUserGroupRespVO.java @@ -1,20 +1,20 @@ package cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.group; + import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; import java.time.LocalDateTime; - @Schema(description = "管理后台 - 用户组 Response VO") @Data @EqualsAndHashCode(callSuper = true) @ToString(callSuper = true) public class BpmUserGroupRespVO extends BpmUserGroupBaseVO { - @Schema(description = "编号", required = true, example = "1024") + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private Long id; - @Schema(description = "创建时间", required = true) + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) private LocalDateTime createTime; } diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/group/BpmUserGroupSimpleRespVO.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/group/BpmUserGroupSimpleRespVO.java index aedd100f3..e5e2060bb 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/group/BpmUserGroupSimpleRespVO.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/group/BpmUserGroupSimpleRespVO.java @@ -11,10 +11,10 @@ import lombok.NoArgsConstructor; @AllArgsConstructor public class BpmUserGroupSimpleRespVO { - @Schema(description = "用户组编号", required = true, example = "1024") + @Schema(description = "用户组编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private Long id; - @Schema(description = "用户组名字", required = true, example = "芋道") + @Schema(description = "用户组名字", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道") private String name; } diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/group/BpmUserGroupUpdateReqVO.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/group/BpmUserGroupUpdateReqVO.java index 81db5649d..0b2a9f11b 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/group/BpmUserGroupUpdateReqVO.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/group/BpmUserGroupUpdateReqVO.java @@ -1,4 +1,5 @@ package cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.group; + import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; import javax.validation.constraints.*; @@ -9,7 +10,7 @@ import javax.validation.constraints.*; @ToString(callSuper = true) public class BpmUserGroupUpdateReqVO extends BpmUserGroupBaseVO { - @Schema(description = "编号", required = true, example = "1024") + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") @NotNull(message = "编号不能为空") private Long id; diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/model/BpmModeImportReqVO.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/model/BpmModeImportReqVO.java index 007cfed10..7f5858e79 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/model/BpmModeImportReqVO.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/model/BpmModeImportReqVO.java @@ -14,7 +14,7 @@ import javax.validation.constraints.NotNull; @ToString(callSuper = true) public class BpmModeImportReqVO extends BpmModelCreateReqVO { - @Schema(description = "BPMN 文件", required = true) + @Schema(description = "BPMN 文件", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "BPMN 文件不能为空") private MultipartFile bpmnFile; diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/model/BpmModelBaseVO.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/model/BpmModelBaseVO.java index 8750ad913..5ae2d3950 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/model/BpmModelBaseVO.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/model/BpmModelBaseVO.java @@ -11,11 +11,11 @@ import javax.validation.constraints.NotEmpty; @Data public class BpmModelBaseVO { - @Schema(description = "流程标识", required = true, example = "process_yudao") + @Schema(description = "流程标识", requiredMode = Schema.RequiredMode.REQUIRED, example = "process_yudao") @NotEmpty(message = "流程标识不能为空") private String key; - @Schema(description = "流程名称", required = true, example = "芋道") + @Schema(description = "流程名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道") @NotEmpty(message = "流程名称不能为空") private String name; diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/model/BpmModelCreateReqVO.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/model/BpmModelCreateReqVO.java index 5b77bc2de..39e4844f7 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/model/BpmModelCreateReqVO.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/model/BpmModelCreateReqVO.java @@ -11,11 +11,11 @@ import javax.validation.constraints.NotEmpty; @Data public class BpmModelCreateReqVO { - @Schema(description = "流程标识", required = true, example = "process_yudao") + @Schema(description = "流程标识", requiredMode = Schema.RequiredMode.REQUIRED, example = "process_yudao") @NotEmpty(message = "流程标识不能为空") private String key; - @Schema(description = "流程名称", required = true, example = "芋道") + @Schema(description = "流程名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道") @NotEmpty(message = "流程名称不能为空") private String name; diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/model/BpmModelPageItemRespVO.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/model/BpmModelPageItemRespVO.java index 9edc119c9..4fc5b61d4 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/model/BpmModelPageItemRespVO.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/model/BpmModelPageItemRespVO.java @@ -13,13 +13,13 @@ import java.time.LocalDateTime; @ToString(callSuper = true) public class BpmModelPageItemRespVO extends BpmModelBaseVO { - @Schema(description = "编号", required = true, example = "1024") + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private String id; @Schema(description = "表单名字", example = "请假表单") private String formName; - @Schema(description = "创建时间", required = true) + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) private LocalDateTime createTime; /** @@ -31,16 +31,16 @@ public class BpmModelPageItemRespVO extends BpmModelBaseVO { @Data public static class ProcessDefinition { - @Schema(description = "编号", required = true, example = "1024") + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private String id; - @Schema(description = "版本", required = true, example = "1") + @Schema(description = "版本", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Integer version; - @Schema(description = "部署时间", required = true) + @Schema(description = "部署时间", requiredMode = Schema.RequiredMode.REQUIRED) private LocalDateTime deploymentTime; - @Schema(description = "中断状态-参见 SuspensionState 枚举", required = true, example = "1") + @Schema(description = "中断状态-参见 SuspensionState 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Integer suspensionState; } diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/model/BpmModelRespVO.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/model/BpmModelRespVO.java index 26bc2f9a6..df4abf750 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/model/BpmModelRespVO.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/model/BpmModelRespVO.java @@ -13,13 +13,13 @@ import java.time.LocalDateTime; @ToString(callSuper = true) public class BpmModelRespVO extends BpmModelBaseVO { - @Schema(description = "编号", required = true, example = "1024") + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private String id; - @Schema(description = "BPMN XML", required = true) + @Schema(description = "BPMN XML", requiredMode = Schema.RequiredMode.REQUIRED) private String bpmnXml; - @Schema(description = "创建时间", required = true) + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) private LocalDateTime createTime; } diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/model/BpmModelUpdateReqVO.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/model/BpmModelUpdateReqVO.java index 94271034b..ac8bedd2d 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/model/BpmModelUpdateReqVO.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/model/BpmModelUpdateReqVO.java @@ -9,7 +9,7 @@ import javax.validation.constraints.NotEmpty; @Data public class BpmModelUpdateReqVO { - @Schema(description = "编号", required = true, example = "1024") + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") @NotEmpty(message = "编号不能为空") private String id; @@ -22,7 +22,7 @@ public class BpmModelUpdateReqVO { @Schema(description = "流程分类-参见 bpm_model_category 数据字典", example = "1") private String category; - @Schema(description = "BPMN XML", required = true) + @Schema(description = "BPMN XML", requiredMode = Schema.RequiredMode.REQUIRED) private String bpmnXml; @Schema(description = "表单类型-参见 bpm_model_form_type 数据字典", example = "1") diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/model/BpmModelUpdateStateReqVO.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/model/BpmModelUpdateStateReqVO.java index e59cc32fb..ac8602787 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/model/BpmModelUpdateStateReqVO.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/model/BpmModelUpdateStateReqVO.java @@ -9,11 +9,11 @@ import javax.validation.constraints.NotNull; @Data public class BpmModelUpdateStateReqVO { - @Schema(description = "编号", required = true, example = "1024") + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") @NotNull(message = "编号不能为空") private String id; - @Schema(description = "状态-见 SuspensionState 枚举", required = true, example = "1") + @Schema(description = "状态-见 SuspensionState 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotNull(message = "状态不能为空") private Integer state; diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/process/BpmProcessDefinitionPageItemRespVO.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/process/BpmProcessDefinitionPageItemRespVO.java index 26bc79c80..901c8aa77 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/process/BpmProcessDefinitionPageItemRespVO.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/process/BpmProcessDefinitionPageItemRespVO.java @@ -16,7 +16,7 @@ public class BpmProcessDefinitionPageItemRespVO extends BpmProcessDefinitionResp @Schema(description = "表单名字", example = "请假表单") private String formName; - @Schema(description = "部署时间", required = true) + @Schema(description = "部署时间", requiredMode = Schema.RequiredMode.REQUIRED) private LocalDateTime deploymentTime; } diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/process/BpmProcessDefinitionRespVO.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/process/BpmProcessDefinitionRespVO.java index 5fee0dd4e..9df317f50 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/process/BpmProcessDefinitionRespVO.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/process/BpmProcessDefinitionRespVO.java @@ -4,20 +4,19 @@ import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import javax.validation.constraints.NotEmpty; -import javax.validation.constraints.NotNull; import java.util.List; @Schema(description = "管理后台 - 流程定义 Response VO") @Data public class BpmProcessDefinitionRespVO { - @Schema(description = "编号", required = true, example = "1024") + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private String id; - @Schema(description = "版本", required = true, example = "1") + @Schema(description = "版本", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Integer version; - @Schema(description = "流程名称", required = true, example = "芋道") + @Schema(description = "流程名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道") @NotEmpty(message = "流程名称不能为空") private String name; @@ -32,9 +31,9 @@ public class BpmProcessDefinitionRespVO { private Integer formType; @Schema(description = "表单编号-在表单类型为 {@link BpmModelFormTypeEnum#CUSTOM} 时,必须非空", example = "1024") private Long formId; - @Schema(description = "表单的配置-JSON 字符串。在表单类型为 {@link BpmModelFormTypeEnum#CUSTOM} 时,必须非空", required = true) + @Schema(description = "表单的配置-JSON 字符串。在表单类型为 {@link BpmModelFormTypeEnum#CUSTOM} 时,必须非空", requiredMode = Schema.RequiredMode.REQUIRED) private String formConf; - @Schema(description = "表单项的数组-JSON 字符串的数组。在表单类型为 {@link BpmModelFormTypeEnum#CUSTOM} 时,必须非空", required = true) + @Schema(description = "表单项的数组-JSON 字符串的数组。在表单类型为 {@link BpmModelFormTypeEnum#CUSTOM} 时,必须非空", requiredMode = Schema.RequiredMode.REQUIRED) private List formFields; @Schema(description = "自定义表单的提交路径,使用 Vue 的路由地址-在表单类型为 {@link BpmModelFormTypeEnum#CUSTOM} 时,必须非空", example = "/bpm/oa/leave/create") @@ -43,7 +42,7 @@ public class BpmProcessDefinitionRespVO { example = "/bpm/oa/leave/view") private String formCustomViewPath; - @Schema(description = "中断状态-参见 SuspensionState 枚举", required = true, example = "1") + @Schema(description = "中断状态-参见 SuspensionState 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Integer suspensionState; } diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/rule/BpmTaskAssignRuleBaseVO.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/rule/BpmTaskAssignRuleBaseVO.java index 7efb1c312..31c1c947a 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/rule/BpmTaskAssignRuleBaseVO.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/rule/BpmTaskAssignRuleBaseVO.java @@ -1,8 +1,8 @@ package cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.rule; + import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; -import javax.validation.constraints.NotEmpty; import javax.validation.constraints.NotNull; import java.util.Set; @@ -13,11 +13,11 @@ import java.util.Set; @Data public class BpmTaskAssignRuleBaseVO { - @Schema(description = "规则类型", required = true, example = "bpm_task_assign_rule_type") + @Schema(description = "规则类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "bpm_task_assign_rule_type") @NotNull(message = "规则类型不能为空") private Integer type; - @Schema(description = "规则值数组", required = true, example = "1,2,3") + @Schema(description = "规则值数组", requiredMode = Schema.RequiredMode.REQUIRED, example = "1,2,3") @NotNull(message = "规则值数组不能为空") private Set options; diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/rule/BpmTaskAssignRuleCreateReqVO.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/rule/BpmTaskAssignRuleCreateReqVO.java index 97bb2de8f..3461126a5 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/rule/BpmTaskAssignRuleCreateReqVO.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/rule/BpmTaskAssignRuleCreateReqVO.java @@ -13,11 +13,11 @@ import javax.validation.constraints.NotEmpty; @ToString(callSuper = true) public class BpmTaskAssignRuleCreateReqVO extends BpmTaskAssignRuleBaseVO { - @Schema(description = "流程模型的编号", required = true, example = "1024") + @Schema(description = "流程模型的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") @NotEmpty(message = "流程模型的编号不能为空") private String modelId; - @Schema(description = "流程任务定义的编号", required = true, example = "2048") + @Schema(description = "流程任务定义的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "2048") @NotEmpty(message = "流程任务定义的编号不能为空") private String taskDefinitionKey; diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/rule/BpmTaskAssignRuleRespVO.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/rule/BpmTaskAssignRuleRespVO.java index 50626edc7..ac4f85e78 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/rule/BpmTaskAssignRuleRespVO.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/rule/BpmTaskAssignRuleRespVO.java @@ -11,18 +11,18 @@ import lombok.ToString; @ToString(callSuper = true) public class BpmTaskAssignRuleRespVO extends BpmTaskAssignRuleBaseVO { - @Schema(description = "任务分配规则的编号", required = true, example = "1024") + @Schema(description = "任务分配规则的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private Long id; - @Schema(description = "流程模型的编号", required = true, example = "2048") + @Schema(description = "流程模型的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "2048") private String modelId; - @Schema(description = "流程定义的编号", required = true, example = "4096") + @Schema(description = "流程定义的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "4096") private String processDefinitionId; - @Schema(description = "流程任务定义的编号", required = true, example = "2048") + @Schema(description = "流程任务定义的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "2048") private String taskDefinitionKey; - @Schema(description = "流程任务定义的名字", required = true, example = "关注芋道") + @Schema(description = "流程任务定义的名字", requiredMode = Schema.RequiredMode.REQUIRED, example = "关注芋道") private String taskDefinitionName; } diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/rule/BpmTaskAssignRuleUpdateReqVO.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/rule/BpmTaskAssignRuleUpdateReqVO.java index 5799f139f..47bfb6aeb 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/rule/BpmTaskAssignRuleUpdateReqVO.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/rule/BpmTaskAssignRuleUpdateReqVO.java @@ -13,7 +13,7 @@ import javax.validation.constraints.NotNull; @ToString(callSuper = true) public class BpmTaskAssignRuleUpdateReqVO extends BpmTaskAssignRuleBaseVO { - @Schema(description = "任务分配规则的编号", required = true, example = "1024") + @Schema(description = "任务分配规则的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") @NotNull(message = "任务分配规则的编号不能为空") private Long id; diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/BpmOALeaveBaseVO.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/BpmOALeaveBaseVO.java index 2ce0b1c52..d61cdc3e9 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/BpmOALeaveBaseVO.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/BpmOALeaveBaseVO.java @@ -1,4 +1,5 @@ package cn.iocoder.yudao.module.bpm.controller.admin.oa.vo; + import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; import java.time.LocalDateTime; @@ -14,19 +15,19 @@ import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_ @Data public class BpmOALeaveBaseVO { - @Schema(description = "请假的开始时间", required = true) + @Schema(description = "请假的开始时间", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "开始时间不能为空") @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) private LocalDateTime startTime; - @Schema(description = "请假的结束时间", required = true) + @Schema(description = "请假的结束时间", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "结束时间不能为空") @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) private LocalDateTime endTime; - @Schema(description = "请假类型-参见 bpm_oa_type 枚举", required = true, example = "1") + @Schema(description = "请假类型-参见 bpm_oa_type 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Integer type; - @Schema(description = "原因", required = true, example = "阅读芋道源码") + @Schema(description = "原因", requiredMode = Schema.RequiredMode.REQUIRED, example = "阅读芋道源码") private String reason; } diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/BpmOALeaveRespVO.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/BpmOALeaveRespVO.java index d79dac7d3..886211755 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/BpmOALeaveRespVO.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/BpmOALeaveRespVO.java @@ -1,4 +1,5 @@ package cn.iocoder.yudao.module.bpm.controller.admin.oa.vo; + import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; import org.springframework.format.annotation.DateTimeFormat; @@ -14,13 +15,13 @@ import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_ @ToString(callSuper = true) public class BpmOALeaveRespVO extends BpmOALeaveBaseVO { - @Schema(description = "请假表单主键", required = true, example = "1024") + @Schema(description = "请假表单主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private Long id; - @Schema(description = "状态-参见 bpm_process_instance_result 枚举", required = true, example = "1") + @Schema(description = "状态-参见 bpm_process_instance_result 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Integer result; - @Schema(description = "申请时间", required = true) + @Schema(description = "申请时间", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "申请时间不能为空") @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) private LocalDateTime createTime; diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/activity/BpmActivityRespVO.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/activity/BpmActivityRespVO.java index 1958fc739..ab6468204 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/activity/BpmActivityRespVO.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/activity/BpmActivityRespVO.java @@ -9,14 +9,14 @@ import java.time.LocalDateTime; @Data public class BpmActivityRespVO { - @Schema(description = "流程活动的标识", required = true, example = "1024") + @Schema(description = "流程活动的标识", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private String key; - @Schema(description = "流程活动的类型", required = true, example = "StartEvent") + @Schema(description = "流程活动的类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "StartEvent") private String type; - @Schema(description = "流程活动的开始时间", required = true) + @Schema(description = "流程活动的开始时间", requiredMode = Schema.RequiredMode.REQUIRED) private LocalDateTime startTime; - @Schema(description = "流程活动的结束时间", required = true) + @Schema(description = "流程活动的结束时间", requiredMode = Schema.RequiredMode.REQUIRED) private LocalDateTime endTime; @Schema(description = "关联的流程任务的编号-关联的流程任务,只有 UserTask 等类型才有", example = "2048") diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/instance/BpmProcessInstanceCancelReqVO.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/instance/BpmProcessInstanceCancelReqVO.java index c0903279b..496c72c61 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/instance/BpmProcessInstanceCancelReqVO.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/instance/BpmProcessInstanceCancelReqVO.java @@ -4,18 +4,16 @@ import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import javax.validation.constraints.NotEmpty; -import javax.validation.constraints.NotNull; -import java.util.Map; @Schema(description = "管理后台 - 流程实例的取消 Request VO") @Data public class BpmProcessInstanceCancelReqVO { - @Schema(description = "流程实例的编号", required = true, example = "1024") + @Schema(description = "流程实例的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") @NotEmpty(message = "流程实例的编号不能为空") private String id; - @Schema(description = "取消原因", required = true, example = "不请假了!") + @Schema(description = "取消原因", requiredMode = Schema.RequiredMode.REQUIRED, example = "不请假了!") @NotEmpty(message = "取消原因不能为空") private String reason; diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/instance/BpmProcessInstanceCreateReqVO.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/instance/BpmProcessInstanceCreateReqVO.java index 48becaad2..8fc544ef4 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/instance/BpmProcessInstanceCreateReqVO.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/instance/BpmProcessInstanceCreateReqVO.java @@ -10,7 +10,7 @@ import java.util.Map; @Data public class BpmProcessInstanceCreateReqVO { - @Schema(description = "流程定义的编号", required = true, example = "1024") + @Schema(description = "流程定义的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") @NotEmpty(message = "流程定义编号不能为空") private String processDefinitionId; diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/instance/BpmProcessInstancePageItemRespVO.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/instance/BpmProcessInstancePageItemRespVO.java index c38274138..6bb269f1d 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/instance/BpmProcessInstancePageItemRespVO.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/instance/BpmProcessInstancePageItemRespVO.java @@ -10,28 +10,28 @@ import java.util.List; @Data public class BpmProcessInstancePageItemRespVO { - @Schema(description = "流程实例的编号", required = true, example = "1024") + @Schema(description = "流程实例的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private String id; - @Schema(description = "流程名称", required = true, example = "芋道") + @Schema(description = "流程名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道") private String name; - @Schema(description = "流程定义的编号", required = true, example = "2048") + @Schema(description = "流程定义的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "2048") private String processDefinitionId; - @Schema(description = "流程分类-参见 bpm_model_category 数据字典", required = true, example = "1") + @Schema(description = "流程分类-参见 bpm_model_category 数据字典", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private String category; - @Schema(description = "流程实例的状态-参见 bpm_process_instance_status", required = true, example = "1") + @Schema(description = "流程实例的状态-参见 bpm_process_instance_status", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Integer status; - @Schema(description = "流程实例的结果-参见 bpm_process_instance_result", required = true, example = "2") + @Schema(description = "流程实例的结果-参见 bpm_process_instance_result", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") private Integer result; - @Schema(description = "提交时间", required = true) + @Schema(description = "提交时间", requiredMode = Schema.RequiredMode.REQUIRED) private LocalDateTime createTime; - @Schema(description = "结束时间", required = true) + @Schema(description = "结束时间", requiredMode = Schema.RequiredMode.REQUIRED) private LocalDateTime endTime; /** @@ -43,10 +43,10 @@ public class BpmProcessInstancePageItemRespVO { @Data public static class Task { - @Schema(description = "流程任务的编号", required = true, example = "1024") + @Schema(description = "流程任务的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private String id; - @Schema(description = "任务名称", required = true, example = "芋道") + @Schema(description = "任务名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道") private String name; } diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/instance/BpmProcessInstanceRespVO.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/instance/BpmProcessInstanceRespVO.java index 5c6d381a0..a9cc810f7 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/instance/BpmProcessInstanceRespVO.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/instance/BpmProcessInstanceRespVO.java @@ -11,28 +11,28 @@ import java.util.Map; @Data public class BpmProcessInstanceRespVO { - @Schema(description = "流程实例的编号", required = true, example = "1024") + @Schema(description = "流程实例的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private String id; - @Schema(description = "流程名称", required = true, example = "芋道") + @Schema(description = "流程名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道") private String name; - @Schema(description = "流程分类-参见 bpm_model_category 数据字典", required = true, example = "1") + @Schema(description = "流程分类-参见 bpm_model_category 数据字典", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private String category; - @Schema(description = "流程实例的状态-参见 bpm_process_instance_status", required = true, example = "1") + @Schema(description = "流程实例的状态-参见 bpm_process_instance_status", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Integer status; - @Schema(description = "流程实例的结果-参见 bpm_process_instance_result", required = true, example = "2") + @Schema(description = "流程实例的结果-参见 bpm_process_instance_result", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") private Integer result; - @Schema(description = "提交时间", required = true) + @Schema(description = "提交时间", requiredMode = Schema.RequiredMode.REQUIRED) private LocalDateTime createTime; - @Schema(description = "结束时间", required = true) + @Schema(description = "结束时间", requiredMode = Schema.RequiredMode.REQUIRED) private LocalDateTime endTime; - @Schema(description = "提交的表单值", required = true) + @Schema(description = "提交的表单值", requiredMode = Schema.RequiredMode.REQUIRED) private Map formVariables; @Schema(description = "业务的唯一标识-例如说,请假申请的编号", example = "1") @@ -52,14 +52,14 @@ public class BpmProcessInstanceRespVO { @Data public static class User { - @Schema(description = "用户编号", required = true, example = "1") + @Schema(description = "用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Long id; - @Schema(description = "用户昵称", required = true, example = "芋艿") + @Schema(description = "用户昵称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿") private String nickname; - @Schema(description = "部门编号", required = true, example = "1") + @Schema(description = "部门编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Long deptId; - @Schema(description = "部门名称", required = true, example = "研发部") + @Schema(description = "部门名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "研发部") private String deptName; } @@ -68,16 +68,16 @@ public class BpmProcessInstanceRespVO { @Data public static class ProcessDefinition { - @Schema(description = "编号", required = true, example = "1024") + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private String id; @Schema(description = "表单类型-参见 bpm_model_form_type 数据字典", example = "1") private Integer formType; @Schema(description = "表单编号-在表单类型为 {@link BpmModelFormTypeEnum#CUSTOM} 时,必须非空", example = "1024") private Long formId; - @Schema(description = "表单的配置-JSON 字符串。在表单类型为 {@link BpmModelFormTypeEnum#CUSTOM} 时,必须非空", required = true) + @Schema(description = "表单的配置-JSON 字符串。在表单类型为 {@link BpmModelFormTypeEnum#CUSTOM} 时,必须非空", requiredMode = Schema.RequiredMode.REQUIRED) private String formConf; - @Schema(description = "表单项的数组-JSON 字符串的数组。在表单类型为 {@link BpmModelFormTypeEnum#CUSTOM} 时,必须非空", required = true) + @Schema(description = "表单项的数组-JSON 字符串的数组。在表单类型为 {@link BpmModelFormTypeEnum#CUSTOM} 时,必须非空", requiredMode = Schema.RequiredMode.REQUIRED) private List formFields; @Schema(description = "自定义表单的提交路径,使用 Vue 的路由地址-在表单类型为 {@link BpmModelFormTypeEnum#CUSTOM} 时,必须非空", example = "/bpm/oa/leave/create") @@ -86,7 +86,7 @@ public class BpmProcessInstanceRespVO { example = "/bpm/oa/leave/view") private String formCustomViewPath; - @Schema(description = "BPMN XML", required = true) + @Schema(description = "BPMN XML", requiredMode = Schema.RequiredMode.REQUIRED) private String bpmnXml; } diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/task/BpmTaskApproveReqVO.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/task/BpmTaskApproveReqVO.java index 5214f4650..82850e833 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/task/BpmTaskApproveReqVO.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/task/BpmTaskApproveReqVO.java @@ -9,11 +9,11 @@ import javax.validation.constraints.NotEmpty; @Data public class BpmTaskApproveReqVO { - @Schema(description = "任务编号", required = true, example = "1024") + @Schema(description = "任务编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") @NotEmpty(message = "任务编号不能为空") private String id; - @Schema(description = "审批意见", required = true, example = "不错不错!") + @Schema(description = "审批意见", requiredMode = Schema.RequiredMode.REQUIRED, example = "不错不错!") @NotEmpty(message = "审批意见不能为空") private String reason; diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/task/BpmTaskDonePageItemRespVO.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/task/BpmTaskDonePageItemRespVO.java index 12fa019d9..8f5144158 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/task/BpmTaskDonePageItemRespVO.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/task/BpmTaskDonePageItemRespVO.java @@ -13,14 +13,14 @@ import java.time.LocalDateTime; @ToString(callSuper = true) public class BpmTaskDonePageItemRespVO extends BpmTaskTodoPageItemRespVO { - @Schema(description = "结束时间", required = true) + @Schema(description = "结束时间", requiredMode = Schema.RequiredMode.REQUIRED) private LocalDateTime endTime; - @Schema(description = "持续时间", required = true, example = "1000") + @Schema(description = "持续时间", requiredMode = Schema.RequiredMode.REQUIRED, example = "1000") private Long durationInMillis; - @Schema(description = "任务结果-参见 bpm_process_instance_result", required = true, example = "2") + @Schema(description = "任务结果-参见 bpm_process_instance_result", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") private Integer result; - @Schema(description = "审批建议", required = true, example = "不请假了!") + @Schema(description = "审批建议", requiredMode = Schema.RequiredMode.REQUIRED, example = "不请假了!") private String reason; } diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/task/BpmTaskRejectReqVO.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/task/BpmTaskRejectReqVO.java index f51a69185..ebbc0fdaa 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/task/BpmTaskRejectReqVO.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/task/BpmTaskRejectReqVO.java @@ -9,11 +9,11 @@ import javax.validation.constraints.NotEmpty; @Data public class BpmTaskRejectReqVO { - @Schema(description = "任务编号", required = true, example = "1024") + @Schema(description = "任务编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") @NotEmpty(message = "任务编号不能为空") private String id; - @Schema(description = "审批意见", required = true, example = "不错不错!") + @Schema(description = "审批意见", requiredMode = Schema.RequiredMode.REQUIRED, example = "不错不错!") @NotEmpty(message = "审批意见不能为空") private String reason; diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/task/BpmTaskRespVO.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/task/BpmTaskRespVO.java index 9459c30c1..3c404678f 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/task/BpmTaskRespVO.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/task/BpmTaskRespVO.java @@ -11,7 +11,7 @@ import lombok.ToString; @ToString(callSuper = true) public class BpmTaskRespVO extends BpmTaskDonePageItemRespVO { - @Schema(description = "任务定义的标识", required = true, example = "user-001") + @Schema(description = "任务定义的标识", requiredMode = Schema.RequiredMode.REQUIRED, example = "user-001") private String definitionKey; /** @@ -23,14 +23,14 @@ public class BpmTaskRespVO extends BpmTaskDonePageItemRespVO { @Data public static class User { - @Schema(description = "用户编号", required = true, example = "1") + @Schema(description = "用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Long id; - @Schema(description = "用户昵称", required = true, example = "芋艿") + @Schema(description = "用户昵称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿") private String nickname; - @Schema(description = "部门编号", required = true, example = "1") + @Schema(description = "部门编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Long deptId; - @Schema(description = "部门名称", required = true, example = "研发部") + @Schema(description = "部门名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "研发部") private String deptName; } diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/task/BpmTaskTodoPageItemRespVO.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/task/BpmTaskTodoPageItemRespVO.java index cc71e1b2f..4b57f4777 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/task/BpmTaskTodoPageItemRespVO.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/task/BpmTaskTodoPageItemRespVO.java @@ -9,19 +9,19 @@ import java.time.LocalDateTime; @Data public class BpmTaskTodoPageItemRespVO { - @Schema(description = "任务编号", required = true, example = "1024") + @Schema(description = "任务编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private String id; - @Schema(description = "任务名字", required = true, example = "芋道") + @Schema(description = "任务名字", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道") private String name; - @Schema(description = "接收时间", required = true) + @Schema(description = "接收时间", requiredMode = Schema.RequiredMode.REQUIRED) private LocalDateTime claimTime; - @Schema(description = "创建时间", required = true) + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) private LocalDateTime createTime; - @Schema(description = "激活状态-参见 SuspensionState 枚举", required = true, example = "1") + @Schema(description = "激活状态-参见 SuspensionState 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Integer suspensionState; /** @@ -33,19 +33,19 @@ public class BpmTaskTodoPageItemRespVO { @Schema(description = "流程实例") public static class ProcessInstance { - @Schema(description = "流程实例编号", required = true, example = "1024") + @Schema(description = "流程实例编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private String id; - @Schema(description = "流程实例名称", required = true, example = "芋道") + @Schema(description = "流程实例名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道") private String name; - @Schema(description = "发起人的用户编号", required = true, example = "1024") + @Schema(description = "发起人的用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private Long startUserId; - @Schema(description = "发起人的用户昵称", required = true, example = "芋艿") + @Schema(description = "发起人的用户昵称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿") private String startUserNickname; - @Schema(description = "流程定义的编号", required = true, example = "2048") + @Schema(description = "流程定义的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "2048") private String processDefinitionId; } diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/task/BpmTaskUpdateAssigneeReqVO.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/task/BpmTaskUpdateAssigneeReqVO.java index d0990a142..dfc5fbb93 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/task/BpmTaskUpdateAssigneeReqVO.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/task/BpmTaskUpdateAssigneeReqVO.java @@ -2,9 +2,6 @@ package cn.iocoder.yudao.module.bpm.controller.admin.task.vo.task; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.ToString; -import net.bytebuddy.implementation.bind.annotation.Empty; import javax.validation.constraints.NotEmpty; import javax.validation.constraints.NotNull; @@ -13,11 +10,11 @@ import javax.validation.constraints.NotNull; @Data public class BpmTaskUpdateAssigneeReqVO { - @Schema(description = "任务编号", required = true, example = "1024") + @Schema(description = "任务编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") @NotEmpty(message = "任务编号不能为空") private String id; - @Schema(description = "新审批人的用户编号", required = true, example = "2048") + @Schema(description = "新审批人的用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "2048") @NotNull(message = "新审批人的用户编号不能为空") private Long assigneeUserId; diff --git a/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/codegen/vo/CodegenCreateListReqVO.java b/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/codegen/vo/CodegenCreateListReqVO.java index da9e2c674..efce9ed58 100644 --- a/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/codegen/vo/CodegenCreateListReqVO.java +++ b/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/codegen/vo/CodegenCreateListReqVO.java @@ -10,11 +10,11 @@ import java.util.List; @Data public class CodegenCreateListReqVO { - @Schema(description = "数据源配置的编号", required = true, example = "1") + @Schema(description = "数据源配置的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotNull(message = "数据源配置的编号不能为空") private Long dataSourceConfigId; - @Schema(description = "表名数组", required = true, example = "[1, 2, 3]") + @Schema(description = "表名数组", requiredMode = Schema.RequiredMode.REQUIRED, example = "[1, 2, 3]") @NotNull(message = "表名数组不能为空") private List tableNames; diff --git a/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/codegen/vo/CodegenPreviewRespVO.java b/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/codegen/vo/CodegenPreviewRespVO.java index 89e98e6c0..b349b1769 100644 --- a/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/codegen/vo/CodegenPreviewRespVO.java +++ b/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/codegen/vo/CodegenPreviewRespVO.java @@ -7,10 +7,10 @@ import lombok.Data; @Data public class CodegenPreviewRespVO { - @Schema(description = "文件路径", required = true, example = "java/cn/iocoder/yudao/adminserver/modules/system/controller/test/SysTestDemoController.java") + @Schema(description = "文件路径", requiredMode = Schema.RequiredMode.REQUIRED, example = "java/cn/iocoder/yudao/adminserver/modules/system/controller/test/SysTestDemoController.java") private String filePath; - @Schema(description = "代码", required = true, example = "Hello World") + @Schema(description = "代码", requiredMode = Schema.RequiredMode.REQUIRED, example = "Hello World") private String code; } diff --git a/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/codegen/vo/CodegenUpdateReqVO.java b/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/codegen/vo/CodegenUpdateReqVO.java index cbbb2a008..2531fd768 100644 --- a/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/codegen/vo/CodegenUpdateReqVO.java +++ b/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/codegen/vo/CodegenUpdateReqVO.java @@ -33,7 +33,7 @@ public class CodegenUpdateReqVO { @Valid public static class Table extends CodegenTableBaseVO { - @Schema(description = "编号", required = true, example = "1") + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Long id; @AssertTrue(message = "上级菜单不能为空,请前往 [修改生成配置 -> 生成信息] 界面,设置“上级菜单”字段") @@ -51,7 +51,7 @@ public class CodegenUpdateReqVO { @ToString(callSuper = true) public static class Column extends CodegenColumnBaseVO { - @Schema(description = "编号", required = true, example = "1") + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Long id; } diff --git a/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/codegen/vo/column/CodegenColumnBaseVO.java b/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/codegen/vo/column/CodegenColumnBaseVO.java index abbb30983..d0b2d046a 100644 --- a/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/codegen/vo/column/CodegenColumnBaseVO.java +++ b/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/codegen/vo/column/CodegenColumnBaseVO.java @@ -1,4 +1,5 @@ package cn.iocoder.yudao.module.infra.controller.admin.codegen.vo.column; + import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; @@ -11,43 +12,43 @@ import javax.validation.constraints.NotNull; @Data public class CodegenColumnBaseVO { - @Schema(description = "表编号", required = true, example = "1") + @Schema(description = "表编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotNull(message = "表编号不能为空") private Long tableId; - @Schema(description = "字段名", required = true, example = "user_age") + @Schema(description = "字段名", requiredMode = Schema.RequiredMode.REQUIRED, example = "user_age") @NotNull(message = "字段名不能为空") private String columnName; - @Schema(description = "字段类型", required = true, example = "int(11)") + @Schema(description = "字段类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "int(11)") @NotNull(message = "字段类型不能为空") private String dataType; - @Schema(description = "字段描述", required = true, example = "年龄") + @Schema(description = "字段描述", requiredMode = Schema.RequiredMode.REQUIRED, example = "年龄") @NotNull(message = "字段描述不能为空") private String columnComment; - @Schema(description = "是否允许为空", required = true, example = "true") + @Schema(description = "是否允许为空", requiredMode = Schema.RequiredMode.REQUIRED, example = "true") @NotNull(message = "是否允许为空不能为空") private Boolean nullable; - @Schema(description = "是否主键", required = true, example = "false") + @Schema(description = "是否主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "false") @NotNull(message = "是否主键不能为空") private Boolean primaryKey; - @Schema(description = "是否自增", required = true, example = "true") + @Schema(description = "是否自增", requiredMode = Schema.RequiredMode.REQUIRED, example = "true") @NotNull(message = "是否自增不能为空") private String autoIncrement; - @Schema(description = "排序", required = true, example = "10") + @Schema(description = "排序", requiredMode = Schema.RequiredMode.REQUIRED, example = "10") @NotNull(message = "排序不能为空") private Integer ordinalPosition; - @Schema(description = "Java 属性类型", required = true, example = "userAge") + @Schema(description = "Java 属性类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "userAge") @NotNull(message = "Java 属性类型不能为空") private String javaType; - @Schema(description = "Java 属性名", required = true, example = "Integer") + @Schema(description = "Java 属性名", requiredMode = Schema.RequiredMode.REQUIRED, example = "Integer") @NotNull(message = "Java 属性名不能为空") private String javaField; @@ -57,27 +58,27 @@ public class CodegenColumnBaseVO { @Schema(description = "数据示例", example = "1024") private String example; - @Schema(description = "是否为 Create 创建操作的字段", required = true, example = "true") + @Schema(description = "是否为 Create 创建操作的字段", requiredMode = Schema.RequiredMode.REQUIRED, example = "true") @NotNull(message = "是否为 Create 创建操作的字段不能为空") private Boolean createOperation; - @Schema(description = "是否为 Update 更新操作的字段", required = true, example = "false") + @Schema(description = "是否为 Update 更新操作的字段", requiredMode = Schema.RequiredMode.REQUIRED, example = "false") @NotNull(message = "是否为 Update 更新操作的字段不能为空") private Boolean updateOperation; - @Schema(description = "是否为 List 查询操作的字段", required = true, example = "true") + @Schema(description = "是否为 List 查询操作的字段", requiredMode = Schema.RequiredMode.REQUIRED, example = "true") @NotNull(message = "是否为 List 查询操作的字段不能为空") private Boolean listOperation; - @Schema(description = "List 查询操作的条件类型,参见 CodegenColumnListConditionEnum 枚举", required = true, example = "LIKE") + @Schema(description = "List 查询操作的条件类型,参见 CodegenColumnListConditionEnum 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "LIKE") @NotNull(message = "List 查询操作的条件类型不能为空") private String listOperationCondition; - @Schema(description = "是否为 List 查询操作的返回字段", required = true, example = "true") + @Schema(description = "是否为 List 查询操作的返回字段", requiredMode = Schema.RequiredMode.REQUIRED, example = "true") @NotNull(message = "是否为 List 查询操作的返回字段不能为空") private Boolean listOperationResult; - @Schema(description = "显示类型", required = true, example = "input") + @Schema(description = "显示类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "input") @NotNull(message = "显示类型不能为空") private String htmlType; diff --git a/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/codegen/vo/column/CodegenColumnRespVO.java b/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/codegen/vo/column/CodegenColumnRespVO.java index 1ef17b0ea..57f2c359b 100644 --- a/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/codegen/vo/column/CodegenColumnRespVO.java +++ b/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/codegen/vo/column/CodegenColumnRespVO.java @@ -13,10 +13,10 @@ import java.time.LocalDateTime; @ToString(callSuper = true) public class CodegenColumnRespVO extends CodegenColumnBaseVO { - @Schema(description = "编号", required = true, example = "1") + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Long id; - @Schema(description = "创建时间", required = true) + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) private LocalDateTime createTime; } diff --git a/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/codegen/vo/table/CodegenTableBaseVO.java b/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/codegen/vo/table/CodegenTableBaseVO.java index ed1b1e290..76c8d6844 100644 --- a/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/codegen/vo/table/CodegenTableBaseVO.java +++ b/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/codegen/vo/table/CodegenTableBaseVO.java @@ -1,56 +1,57 @@ package cn.iocoder.yudao.module.infra.controller.admin.codegen.vo.table; + import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import javax.validation.constraints.NotNull; /** - * 代码生成 Base VO,提供给添加、修改、详细的子 VO 使用 - * 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成 - */ + * 代码生成 Base VO,提供给添加、修改、详细的子 VO 使用 + * 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成 + */ @Data public class CodegenTableBaseVO { - @Schema(description = "生成场景,参见 CodegenSceneEnum 枚举", required = true, example = "1") + @Schema(description = "生成场景,参见 CodegenSceneEnum 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotNull(message = "导入类型不能为空") private Integer scene; - @Schema(description = "表名称", required = true, example = "yudao") + @Schema(description = "表名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "yudao") @NotNull(message = "表名称不能为空") private String tableName; - @Schema(description = "表描述", required = true, example = "芋道") + @Schema(description = "表描述", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道") @NotNull(message = "表描述不能为空") private String tableComment; @Schema(description = "备注", example = "我是备注") private String remark; - @Schema(description = "模块名", required = true, example = "system") + @Schema(description = "模块名", requiredMode = Schema.RequiredMode.REQUIRED, example = "system") @NotNull(message = "模块名不能为空") private String moduleName; - @Schema(description = "业务名", required = true, example = "codegen") + @Schema(description = "业务名", requiredMode = Schema.RequiredMode.REQUIRED, example = "codegen") @NotNull(message = "业务名不能为空") private String businessName; - @Schema(description = "类名称", required = true, example = "CodegenTable") + @Schema(description = "类名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "CodegenTable") @NotNull(message = "类名称不能为空") private String className; - @Schema(description = "类描述", required = true, example = "代码生成器的表定义") + @Schema(description = "类描述", requiredMode = Schema.RequiredMode.REQUIRED, example = "代码生成器的表定义") @NotNull(message = "类描述不能为空") private String classComment; - @Schema(description = "作者", required = true, example = "芋道源码") + @Schema(description = "作者", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道源码") @NotNull(message = "作者不能为空") private String author; - @Schema(description = "模板类型,参见 CodegenTemplateTypeEnum 枚举", required = true, example = "1") + @Schema(description = "模板类型,参见 CodegenTemplateTypeEnum 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotNull(message = "模板类型不能为空") private Integer templateType; - @Schema(description = "前端类型,参见 CodegenFrontTypeEnum 枚举", required = true, example = "20") + @Schema(description = "前端类型,参见 CodegenFrontTypeEnum 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "20") @NotNull(message = "前端类型不能为空") private Integer frontType; diff --git a/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/codegen/vo/table/CodegenTableRespVO.java b/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/codegen/vo/table/CodegenTableRespVO.java index af45018bd..b979ccd14 100644 --- a/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/codegen/vo/table/CodegenTableRespVO.java +++ b/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/codegen/vo/table/CodegenTableRespVO.java @@ -13,16 +13,16 @@ import java.time.LocalDateTime; @ToString(callSuper = true) public class CodegenTableRespVO extends CodegenTableBaseVO { - @Schema(description = "编号", required = true, example = "1") + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Long id; - @Schema(description = "主键编号", required = true, example = "1024") + @Schema(description = "主键编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private Integer dataSourceConfigId; - @Schema(description = "创建时间", required = true) + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) private LocalDateTime createTime; - @Schema(description = "更新时间", required = true) + @Schema(description = "更新时间", requiredMode = Schema.RequiredMode.REQUIRED) private LocalDateTime updateTime; } diff --git a/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/codegen/vo/table/DatabaseTableRespVO.java b/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/codegen/vo/table/DatabaseTableRespVO.java index 61668db15..a1f683c25 100644 --- a/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/codegen/vo/table/DatabaseTableRespVO.java +++ b/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/codegen/vo/table/DatabaseTableRespVO.java @@ -7,10 +7,10 @@ import lombok.Data; @Data public class DatabaseTableRespVO { - @Schema(description = "表名称", required = true, example = "yuanma") + @Schema(description = "表名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "yuanma") private String name; - @Schema(description = "表描述", required = true, example = "芋道源码") + @Schema(description = "表描述", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道源码") private String comment; } diff --git a/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/config/vo/ConfigBaseVO.java b/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/config/vo/ConfigBaseVO.java index 53ca02d12..acd3beee6 100644 --- a/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/config/vo/ConfigBaseVO.java +++ b/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/config/vo/ConfigBaseVO.java @@ -1,4 +1,5 @@ package cn.iocoder.yudao.module.infra.controller.admin.config.vo; + import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; @@ -14,22 +15,22 @@ import javax.validation.constraints.Size; @Data public class ConfigBaseVO { - @Schema(description = "参数分组", required = true, example = "biz") + @Schema(description = "参数分组", requiredMode = Schema.RequiredMode.REQUIRED, example = "biz") @NotEmpty(message = "参数分组不能为空") @Size(max = 50, message = "参数名称不能超过50个字符") private String category; - @Schema(description = "参数名称", required = true, example = "数据库名") + @Schema(description = "参数名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "数据库名") @NotBlank(message = "参数名称不能为空") @Size(max = 100, message = "参数名称不能超过100个字符") private String name; - @Schema(description = "参数键值", required = true, example = "1024") + @Schema(description = "参数键值", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") @NotBlank(message = "参数键值不能为空") @Size(max = 500, message = "参数键值长度不能超过500个字符") private String value; - @Schema(description = "是否可见", required = true, example = "true") + @Schema(description = "是否可见", requiredMode = Schema.RequiredMode.REQUIRED, example = "true") @NotNull(message = "是否可见不能为空") private Boolean visible; diff --git a/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/config/vo/ConfigCreateReqVO.java b/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/config/vo/ConfigCreateReqVO.java index 186629b0f..ebbdf67fc 100644 --- a/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/config/vo/ConfigCreateReqVO.java +++ b/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/config/vo/ConfigCreateReqVO.java @@ -12,7 +12,7 @@ import javax.validation.constraints.Size; @EqualsAndHashCode(callSuper = true) public class ConfigCreateReqVO extends ConfigBaseVO { - @Schema(description = "参数键名", required = true, example = "yunai.db.username") + @Schema(description = "参数键名", requiredMode = Schema.RequiredMode.REQUIRED, example = "yunai.db.username") @NotBlank(message = "参数键名长度不能为空") @Size(max = 100, message = "参数键名长度不能超过100个字符") private String key; diff --git a/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/config/vo/ConfigRespVO.java b/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/config/vo/ConfigRespVO.java index 738cd6481..cf8b1e3ac 100644 --- a/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/config/vo/ConfigRespVO.java +++ b/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/config/vo/ConfigRespVO.java @@ -13,18 +13,18 @@ import java.time.LocalDateTime; @EqualsAndHashCode(callSuper = true) public class ConfigRespVO extends ConfigBaseVO { - @Schema(description = "参数配置序号", required = true, example = "1024") + @Schema(description = "参数配置序号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private Long id; - @Schema(description = "参数键名", required = true, example = "yunai.db.username") + @Schema(description = "参数键名", requiredMode = Schema.RequiredMode.REQUIRED, example = "yunai.db.username") @NotBlank(message = "参数键名长度不能为空") @Size(max = 100, message = "参数键名长度不能超过100个字符") private String key; - @Schema(description = "参数类型,参见 SysConfigTypeEnum 枚举", required = true, example = "1") + @Schema(description = "参数类型,参见 SysConfigTypeEnum 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Integer type; - @Schema(description = "创建时间", required = true, example = "时间戳格式") + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED, example = "时间戳格式") private LocalDateTime createTime; } diff --git a/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/config/vo/ConfigUpdateReqVO.java b/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/config/vo/ConfigUpdateReqVO.java index efa689d42..b2497b1cd 100644 --- a/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/config/vo/ConfigUpdateReqVO.java +++ b/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/config/vo/ConfigUpdateReqVO.java @@ -13,7 +13,7 @@ import javax.validation.constraints.NotNull; @ToString(callSuper = true) public class ConfigUpdateReqVO extends ConfigBaseVO { - @Schema(description = "参数配置序号", required = true, example = "1024") + @Schema(description = "参数配置序号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") @NotNull(message = "参数配置编号不能为空") private Long id; diff --git a/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/db/vo/DataSourceConfigBaseVO.java b/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/db/vo/DataSourceConfigBaseVO.java index a757b0882..800227e3c 100755 --- a/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/db/vo/DataSourceConfigBaseVO.java +++ b/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/db/vo/DataSourceConfigBaseVO.java @@ -10,15 +10,15 @@ import javax.validation.constraints.*; @Data public class DataSourceConfigBaseVO { - @Schema(description = "数据源名称", required = true, example = "test") + @Schema(description = "数据源名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "test") @NotNull(message = "数据源名称不能为空") private String name; - @Schema(description = "数据源连接", required = true, example = "jdbc:mysql://127.0.0.1:3306/ruoyi-vue-pro") + @Schema(description = "数据源连接", requiredMode = Schema.RequiredMode.REQUIRED, example = "jdbc:mysql://127.0.0.1:3306/ruoyi-vue-pro") @NotNull(message = "数据源连接不能为空") private String url; - @Schema(description = "用户名", required = true, example = "root") + @Schema(description = "用户名", requiredMode = Schema.RequiredMode.REQUIRED, example = "root") @NotNull(message = "用户名不能为空") private String username; diff --git a/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/db/vo/DataSourceConfigCreateReqVO.java b/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/db/vo/DataSourceConfigCreateReqVO.java index e8f4cc97d..598bda81b 100755 --- a/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/db/vo/DataSourceConfigCreateReqVO.java +++ b/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/db/vo/DataSourceConfigCreateReqVO.java @@ -1,4 +1,5 @@ package cn.iocoder.yudao.module.infra.controller.admin.db.vo; + import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; import javax.validation.constraints.*; @@ -9,7 +10,7 @@ import javax.validation.constraints.*; @ToString(callSuper = true) public class DataSourceConfigCreateReqVO extends DataSourceConfigBaseVO { - @Schema(description = "密码", required = true, example = "123456") + @Schema(description = "密码", requiredMode = Schema.RequiredMode.REQUIRED, example = "123456") @NotNull(message = "密码不能为空") private String password; diff --git a/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/db/vo/DataSourceConfigRespVO.java b/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/db/vo/DataSourceConfigRespVO.java index 02bdff415..77ecef56c 100755 --- a/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/db/vo/DataSourceConfigRespVO.java +++ b/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/db/vo/DataSourceConfigRespVO.java @@ -1,4 +1,5 @@ package cn.iocoder.yudao.module.infra.controller.admin.db.vo; + import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; @@ -10,10 +11,10 @@ import java.time.LocalDateTime; @ToString(callSuper = true) public class DataSourceConfigRespVO extends DataSourceConfigBaseVO { - @Schema(description = "主键编号", required = true, example = "1024") + @Schema(description = "主键编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private Integer id; - @Schema(description = "创建时间", required = true) + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) private LocalDateTime createTime; } diff --git a/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/db/vo/DataSourceConfigUpdateReqVO.java b/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/db/vo/DataSourceConfigUpdateReqVO.java index 5fac798ea..5cc31eab6 100755 --- a/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/db/vo/DataSourceConfigUpdateReqVO.java +++ b/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/db/vo/DataSourceConfigUpdateReqVO.java @@ -1,4 +1,5 @@ package cn.iocoder.yudao.module.infra.controller.admin.db.vo; + import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; import javax.validation.constraints.*; @@ -9,11 +10,11 @@ import javax.validation.constraints.*; @ToString(callSuper = true) public class DataSourceConfigUpdateReqVO extends DataSourceConfigBaseVO { - @Schema(description = "主键编号", required = true, example = "1024") + @Schema(description = "主键编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") @NotNull(message = "主键编号不能为空") private Long id; - @Schema(description = "密码", required = true, example = "123456") + @Schema(description = "密码", requiredMode = Schema.RequiredMode.REQUIRED, example = "123456") @NotNull(message = "密码不能为空") private String password; diff --git a/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/file/vo/config/FileConfigBaseVO.java b/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/file/vo/config/FileConfigBaseVO.java index d7bc42d73..eccbd4bb1 100755 --- a/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/file/vo/config/FileConfigBaseVO.java +++ b/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/file/vo/config/FileConfigBaseVO.java @@ -1,4 +1,5 @@ package cn.iocoder.yudao.module.infra.controller.admin.file.vo.config; + import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; @@ -11,7 +12,7 @@ import javax.validation.constraints.NotNull; @Data public class FileConfigBaseVO { - @Schema(description = "配置名", required = true, example = "S3 - 阿里云") + @Schema(description = "配置名", requiredMode = Schema.RequiredMode.REQUIRED, example = "S3 - 阿里云") @NotNull(message = "配置名不能为空") private String name; diff --git a/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/file/vo/config/FileConfigCreateReqVO.java b/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/file/vo/config/FileConfigCreateReqVO.java index db64205f4..f3132e970 100755 --- a/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/file/vo/config/FileConfigCreateReqVO.java +++ b/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/file/vo/config/FileConfigCreateReqVO.java @@ -14,11 +14,11 @@ import java.util.Map; @ToString(callSuper = true) public class FileConfigCreateReqVO extends FileConfigBaseVO { - @Schema(description = "存储器,参见 FileStorageEnum 枚举类参见 FileStorageEnum 枚举类", required = true, example = "1") + @Schema(description = "存储器,参见 FileStorageEnum 枚举类参见 FileStorageEnum 枚举类", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotNull(message = "存储器不能为空") private Integer storage; - @Schema(description = "存储配置,配置是动态参数,所以使用 Map 接收", required = true) + @Schema(description = "存储配置,配置是动态参数,所以使用 Map 接收", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "存储配置不能为空") private Map config; diff --git a/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/file/vo/config/FileConfigRespVO.java b/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/file/vo/config/FileConfigRespVO.java index ae194cd31..178317126 100755 --- a/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/file/vo/config/FileConfigRespVO.java +++ b/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/file/vo/config/FileConfigRespVO.java @@ -15,21 +15,21 @@ import java.time.LocalDateTime; @ToString(callSuper = true) public class FileConfigRespVO extends FileConfigBaseVO { - @Schema(description = "编号", required = true, example = "1") + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Long id; - @Schema(description = "存储器,参见 FileStorageEnum 枚举类", required = true, example = "1") + @Schema(description = "存储器,参见 FileStorageEnum 枚举类", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotNull(message = "存储器不能为空") private Integer storage; - @Schema(description = "是否为主配置", required = true, example = "true") + @Schema(description = "是否为主配置", requiredMode = Schema.RequiredMode.REQUIRED, example = "true") @NotNull(message = "是否为主配置不能为空") private Boolean master; - @Schema(description = "存储配置", required = true) + @Schema(description = "存储配置", requiredMode = Schema.RequiredMode.REQUIRED) private FileClientConfig config; - @Schema(description = "创建时间", required = true) + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) private LocalDateTime createTime; } diff --git a/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/file/vo/config/FileConfigUpdateReqVO.java b/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/file/vo/config/FileConfigUpdateReqVO.java index cd0c10802..ba599d424 100755 --- a/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/file/vo/config/FileConfigUpdateReqVO.java +++ b/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/file/vo/config/FileConfigUpdateReqVO.java @@ -14,11 +14,11 @@ import java.util.Map; @ToString(callSuper = true) public class FileConfigUpdateReqVO extends FileConfigBaseVO { - @Schema(description = "编号", required = true, example = "1") + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotNull(message = "编号不能为空") private Long id; - @Schema(description = "存储配置,配置是动态参数,所以使用 Map 接收", required = true) + @Schema(description = "存储配置,配置是动态参数,所以使用 Map 接收", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "存储配置不能为空") private Map config; diff --git a/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/file/vo/file/FileRespVO.java b/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/file/vo/file/FileRespVO.java index 80607d8d0..a0357da15 100644 --- a/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/file/vo/file/FileRespVO.java +++ b/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/file/vo/file/FileRespVO.java @@ -9,28 +9,28 @@ import java.time.LocalDateTime; @Data public class FileRespVO { - @Schema(description = "文件编号", required = true, example = "1024") + @Schema(description = "文件编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private Long id; - @Schema(description = "配置编号", required = true, example = "11") + @Schema(description = "配置编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "11") private Long configId; - @Schema(description = "文件路径", required = true, example = "yudao.jpg") + @Schema(description = "文件路径", requiredMode = Schema.RequiredMode.REQUIRED, example = "yudao.jpg") private String path; - @Schema(description = "原文件名", required = true, example = "yudao.jpg") + @Schema(description = "原文件名", requiredMode = Schema.RequiredMode.REQUIRED, example = "yudao.jpg") private String name; - @Schema(description = "文件 URL", required = true, example = "https://www.iocoder.cn/yudao.jpg") + @Schema(description = "文件 URL", requiredMode = Schema.RequiredMode.REQUIRED, example = "https://www.iocoder.cn/yudao.jpg") private String url; @Schema(description = "文件MIME类型", example = "application/octet-stream") private String type; - @Schema(description = "文件大小", example = "2048", required = true) + @Schema(description = "文件大小", example = "2048", requiredMode = Schema.RequiredMode.REQUIRED) private Integer size; - @Schema(description = "创建时间", required = true) + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) private LocalDateTime createTime; } diff --git a/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/file/vo/file/FileUploadReqVO.java b/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/file/vo/file/FileUploadReqVO.java index 7a4dcb1c2..b60b9a180 100644 --- a/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/file/vo/file/FileUploadReqVO.java +++ b/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/file/vo/file/FileUploadReqVO.java @@ -10,7 +10,7 @@ import javax.validation.constraints.NotNull; @Data public class FileUploadReqVO { - @Schema(description = "文件附件", required = true) + @Schema(description = "文件附件", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "文件附件不能为空") private MultipartFile file; diff --git a/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/job/vo/job/JobBaseVO.java b/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/job/vo/job/JobBaseVO.java index e5927fe14..9d14846b2 100644 --- a/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/job/vo/job/JobBaseVO.java +++ b/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/job/vo/job/JobBaseVO.java @@ -1,4 +1,5 @@ package cn.iocoder.yudao.module.infra.controller.admin.job.vo.job; + import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; @@ -11,22 +12,22 @@ import javax.validation.constraints.NotNull; @Data public class JobBaseVO { - @Schema(description = "任务名称", required = true, example = "测试任务") + @Schema(description = "任务名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "测试任务") @NotNull(message = "任务名称不能为空") private String name; @Schema(description = "处理器的参数", example = "yudao") private String handlerParam; - @Schema(description = "CRON 表达式", required = true, example = "0/10 * * * * ? *") + @Schema(description = "CRON 表达式", requiredMode = Schema.RequiredMode.REQUIRED, example = "0/10 * * * * ? *") @NotNull(message = "CRON 表达式不能为空") private String cronExpression; - @Schema(description = "重试次数", required = true, example = "3") + @Schema(description = "重试次数", requiredMode = Schema.RequiredMode.REQUIRED, example = "3") @NotNull(message = "重试次数不能为空") private Integer retryCount; - @Schema(description = "重试间隔", required = true, example = "1000") + @Schema(description = "重试间隔", requiredMode = Schema.RequiredMode.REQUIRED, example = "1000") @NotNull(message = "重试间隔不能为空") private Integer retryInterval; diff --git a/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/job/vo/job/JobCreateReqVO.java b/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/job/vo/job/JobCreateReqVO.java index 528392b52..be9914532 100644 --- a/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/job/vo/job/JobCreateReqVO.java +++ b/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/job/vo/job/JobCreateReqVO.java @@ -13,7 +13,7 @@ import javax.validation.constraints.NotNull; @ToString(callSuper = true) public class JobCreateReqVO extends JobBaseVO { - @Schema(description = "处理器的名字", required = true, example = "sysUserSessionTimeoutJob") + @Schema(description = "处理器的名字", requiredMode = Schema.RequiredMode.REQUIRED, example = "sysUserSessionTimeoutJob") @NotNull(message = "处理器的名字不能为空") private String handlerName; diff --git a/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/job/vo/job/JobRespVO.java b/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/job/vo/job/JobRespVO.java index be73b1a06..b0e18a796 100644 --- a/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/job/vo/job/JobRespVO.java +++ b/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/job/vo/job/JobRespVO.java @@ -14,17 +14,17 @@ import java.time.LocalDateTime; @ToString(callSuper = true) public class JobRespVO extends JobBaseVO { - @Schema(description = "任务编号", required = true, example = "1024") + @Schema(description = "任务编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private Long id; - @Schema(description = "任务状态", required = true, example = "1") + @Schema(description = "任务状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Integer status; - @Schema(description = "处理器的名字", required = true, example = "sysUserSessionTimeoutJob") + @Schema(description = "处理器的名字", requiredMode = Schema.RequiredMode.REQUIRED, example = "sysUserSessionTimeoutJob") @NotNull(message = "处理器的名字不能为空") private String handlerName; - @Schema(description = "创建时间", required = true) + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) private LocalDateTime createTime; } diff --git a/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/job/vo/job/JobUpdateReqVO.java b/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/job/vo/job/JobUpdateReqVO.java index 9587888b6..df1435669 100644 --- a/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/job/vo/job/JobUpdateReqVO.java +++ b/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/job/vo/job/JobUpdateReqVO.java @@ -13,7 +13,7 @@ import javax.validation.constraints.NotNull; @ToString(callSuper = true) public class JobUpdateReqVO extends JobBaseVO { - @Schema(description = "任务编号", required = true, example = "1024") + @Schema(description = "任务编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") @NotNull(message = "任务编号不能为空") private Long id; diff --git a/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/job/vo/log/JobLogBaseVO.java b/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/job/vo/log/JobLogBaseVO.java index de95ca38d..1119c7daf 100644 --- a/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/job/vo/log/JobLogBaseVO.java +++ b/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/job/vo/log/JobLogBaseVO.java @@ -1,4 +1,5 @@ package cn.iocoder.yudao.module.infra.controller.admin.job.vo.log; + import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; @@ -15,22 +16,22 @@ import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_ @Data public class JobLogBaseVO { - @Schema(description = "任务编号", required = true, example = "1024") + @Schema(description = "任务编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") @NotNull(message = "任务编号不能为空") private Long jobId; - @Schema(description = "处理器的名字", required = true, example = "sysUserSessionTimeoutJob") + @Schema(description = "处理器的名字", requiredMode = Schema.RequiredMode.REQUIRED, example = "sysUserSessionTimeoutJob") @NotNull(message = "处理器的名字不能为空") private String handlerName; @Schema(description = "处理器的参数", example = "yudao") private String handlerParam; - @Schema(description = "第几次执行", required = true, example = "1") + @Schema(description = "第几次执行", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotNull(message = "第几次执行不能为空") private Integer executeIndex; - @Schema(description = "开始执行时间", required = true) + @Schema(description = "开始执行时间", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "开始执行时间不能为空") @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) private LocalDateTime beginTime; @@ -42,7 +43,7 @@ public class JobLogBaseVO { @Schema(description = "执行时长", example = "123") private Integer duration; - @Schema(description = "任务状态,参见 JobLogStatusEnum 枚举", required = true, example = "1") + @Schema(description = "任务状态,参见 JobLogStatusEnum 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotNull(message = "任务状态不能为空") private Integer status; diff --git a/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/job/vo/log/JobLogRespVO.java b/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/job/vo/log/JobLogRespVO.java index 79cce519b..4da31956a 100644 --- a/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/job/vo/log/JobLogRespVO.java +++ b/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/job/vo/log/JobLogRespVO.java @@ -13,10 +13,10 @@ import java.time.LocalDateTime; @ToString(callSuper = true) public class JobLogRespVO extends JobLogBaseVO { - @Schema(description = "日志编号", required = true, example = "1024") + @Schema(description = "日志编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private Long id; - @Schema(description = "创建时间", required = true) + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) private LocalDateTime createTime; } diff --git a/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/logger/vo/apiaccesslog/ApiAccessLogBaseVO.java b/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/logger/vo/apiaccesslog/ApiAccessLogBaseVO.java index ec2a8e377..5830193ba 100644 --- a/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/logger/vo/apiaccesslog/ApiAccessLogBaseVO.java +++ b/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/logger/vo/apiaccesslog/ApiAccessLogBaseVO.java @@ -1,4 +1,5 @@ package cn.iocoder.yudao.module.infra.controller.admin.logger.vo.apiaccesslog; + import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; @@ -15,56 +16,56 @@ import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_ @Data public class ApiAccessLogBaseVO { - @Schema(description = "链路追踪编号", required = true, example = "66600cb6-7852-11eb-9439-0242ac130002") + @Schema(description = "链路追踪编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "66600cb6-7852-11eb-9439-0242ac130002") @NotNull(message = "链路追踪编号不能为空") private String traceId; - @Schema(description = "用户编号", required = true, example = "666") + @Schema(description = "用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "666") @NotNull(message = "用户编号不能为空") private Long userId; - @Schema(description = "用户类型,参见 UserTypeEnum 枚举", required = true, example = "2") + @Schema(description = "用户类型,参见 UserTypeEnum 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") @NotNull(message = "用户类型不能为空") private Integer userType; - @Schema(description = "应用名", required = true, example = "dashboard") + @Schema(description = "应用名", requiredMode = Schema.RequiredMode.REQUIRED, example = "dashboard") @NotNull(message = "应用名不能为空") private String applicationName; - @Schema(description = "请求方法名", required = true, example = "GET") + @Schema(description = "请求方法名", requiredMode = Schema.RequiredMode.REQUIRED, example = "GET") @NotNull(message = "请求方法名不能为空") private String requestMethod; - @Schema(description = "请求地址", required = true, example = "/xxx/yyy") + @Schema(description = "请求地址", requiredMode = Schema.RequiredMode.REQUIRED, example = "/xxx/yyy") @NotNull(message = "请求地址不能为空") private String requestUrl; @Schema(description = "请求参数") private String requestParams; - @Schema(description = "用户 IP", required = true, example = "127.0.0.1") + @Schema(description = "用户 IP", requiredMode = Schema.RequiredMode.REQUIRED, example = "127.0.0.1") @NotNull(message = "用户 IP不能为空") private String userIp; - @Schema(description = "浏览器 UA", required = true, example = "Mozilla/5.0") + @Schema(description = "浏览器 UA", requiredMode = Schema.RequiredMode.REQUIRED, example = "Mozilla/5.0") @NotNull(message = "浏览器 UA不能为空") private String userAgent; - @Schema(description = "开始请求时间", required = true) + @Schema(description = "开始请求时间", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "开始请求时间不能为空") @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) private LocalDateTime beginTime; - @Schema(description = "结束请求时间", required = true) + @Schema(description = "结束请求时间", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "结束请求时间不能为空") @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) private LocalDateTime endTime; - @Schema(description = "执行时长", required = true, example = "100") + @Schema(description = "执行时长", requiredMode = Schema.RequiredMode.REQUIRED, example = "100") @NotNull(message = "执行时长不能为空") private Integer duration; - @Schema(description = "结果码", required = true, example = "0") + @Schema(description = "结果码", requiredMode = Schema.RequiredMode.REQUIRED, example = "0") @NotNull(message = "结果码不能为空") private Integer resultCode; diff --git a/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/logger/vo/apiaccesslog/ApiAccessLogRespVO.java b/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/logger/vo/apiaccesslog/ApiAccessLogRespVO.java index 52bbb3184..4a6ec8ae5 100644 --- a/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/logger/vo/apiaccesslog/ApiAccessLogRespVO.java +++ b/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/logger/vo/apiaccesslog/ApiAccessLogRespVO.java @@ -13,10 +13,10 @@ import java.time.LocalDateTime; @ToString(callSuper = true) public class ApiAccessLogRespVO extends ApiAccessLogBaseVO { - @Schema(description = "日志主键", required = true, example = "1024") + @Schema(description = "日志主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private Long id; - @Schema(description = "创建时间", required = true) + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) private LocalDateTime createTime; } diff --git a/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/logger/vo/apierrorlog/ApiErrorLogBaseVO.java b/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/logger/vo/apierrorlog/ApiErrorLogBaseVO.java index 6045e903e..92fd9751d 100644 --- a/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/logger/vo/apierrorlog/ApiErrorLogBaseVO.java +++ b/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/logger/vo/apierrorlog/ApiErrorLogBaseVO.java @@ -15,80 +15,80 @@ import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_ @Data public class ApiErrorLogBaseVO { - @Schema(description = "链路追踪编号", required = true, example = "66600cb6-7852-11eb-9439-0242ac130002") + @Schema(description = "链路追踪编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "66600cb6-7852-11eb-9439-0242ac130002") @NotNull(message = "链路追踪编号不能为空") private String traceId; - @Schema(description = "用户编号", required = true, example = "666") + @Schema(description = "用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "666") @NotNull(message = "用户编号不能为空") private Integer userId; - @Schema(description = "用户类型", required = true, example = "1") + @Schema(description = "用户类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotNull(message = "用户类型不能为空") private Integer userType; - @Schema(description = "应用名", required = true, example = "dashboard") + @Schema(description = "应用名", requiredMode = Schema.RequiredMode.REQUIRED, example = "dashboard") @NotNull(message = "应用名不能为空") private String applicationName; - @Schema(description = "请求方法名", required = true, example = "GET") + @Schema(description = "请求方法名", requiredMode = Schema.RequiredMode.REQUIRED, example = "GET") @NotNull(message = "请求方法名不能为空") private String requestMethod; - @Schema(description = "请求地址", required = true, example = "/xx/yy") + @Schema(description = "请求地址", requiredMode = Schema.RequiredMode.REQUIRED, example = "/xx/yy") @NotNull(message = "请求地址不能为空") private String requestUrl; - @Schema(description = "请求参数", required = true) + @Schema(description = "请求参数", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "请求参数不能为空") private String requestParams; - @Schema(description = "用户 IP", required = true, example = "127.0.0.1") + @Schema(description = "用户 IP", requiredMode = Schema.RequiredMode.REQUIRED, example = "127.0.0.1") @NotNull(message = "用户 IP不能为空") private String userIp; - @Schema(description = "浏览器 UA", required = true, example = "Mozilla/5.0") + @Schema(description = "浏览器 UA", requiredMode = Schema.RequiredMode.REQUIRED, example = "Mozilla/5.0") @NotNull(message = "浏览器 UA不能为空") private String userAgent; - @Schema(description = "异常发生时间", required = true) + @Schema(description = "异常发生时间", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "异常发生时间不能为空") @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) private LocalDateTime exceptionTime; - @Schema(description = "异常名", required = true) + @Schema(description = "异常名", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "异常名不能为空") private String exceptionName; - @Schema(description = "异常导致的消息", required = true) + @Schema(description = "异常导致的消息", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "异常导致的消息不能为空") private String exceptionMessage; - @Schema(description = "异常导致的根消息", required = true) + @Schema(description = "异常导致的根消息", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "异常导致的根消息不能为空") private String exceptionRootCauseMessage; - @Schema(description = "异常的栈轨迹", required = true) + @Schema(description = "异常的栈轨迹", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "异常的栈轨迹不能为空") private String exceptionStackTrace; - @Schema(description = "异常发生的类全名", required = true) + @Schema(description = "异常发生的类全名", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "异常发生的类全名不能为空") private String exceptionClassName; - @Schema(description = "异常发生的类文件", required = true) + @Schema(description = "异常发生的类文件", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "异常发生的类文件不能为空") private String exceptionFileName; - @Schema(description = "异常发生的方法名", required = true) + @Schema(description = "异常发生的方法名", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "异常发生的方法名不能为空") private String exceptionMethodName; - @Schema(description = "异常发生的方法所在行", required = true) + @Schema(description = "异常发生的方法所在行", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "异常发生的方法所在行不能为空") private Integer exceptionLineNumber; - @Schema(description = "处理状态", required = true, example = "0") + @Schema(description = "处理状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "0") @NotNull(message = "处理状态不能为空") private Integer processStatus; diff --git a/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/logger/vo/apierrorlog/ApiErrorLogRespVO.java b/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/logger/vo/apierrorlog/ApiErrorLogRespVO.java index c4ce8faf6..5b2c8f8c3 100644 --- a/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/logger/vo/apierrorlog/ApiErrorLogRespVO.java +++ b/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/logger/vo/apierrorlog/ApiErrorLogRespVO.java @@ -13,13 +13,13 @@ import java.time.LocalDateTime; @ToString(callSuper = true) public class ApiErrorLogRespVO extends ApiErrorLogBaseVO { - @Schema(description = "编号", required = true, example = "1024") + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private Integer id; - @Schema(description = "创建时间", required = true) + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) private LocalDateTime createTime; - @Schema(description = "处理时间", required = true) + @Schema(description = "处理时间", requiredMode = Schema.RequiredMode.REQUIRED) private LocalDateTime processTime; @Schema(description = "处理用户编号", example = "233") diff --git a/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/redis/vo/RedisKeyDefineRespVO.java b/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/redis/vo/RedisKeyDefineRespVO.java index f30ebb623..07864e0bb 100644 --- a/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/redis/vo/RedisKeyDefineRespVO.java +++ b/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/redis/vo/RedisKeyDefineRespVO.java @@ -14,22 +14,22 @@ import java.time.Duration; @AllArgsConstructor public class RedisKeyDefineRespVO { - @Schema(description = "Key 模板", required = true, example = "login_user:%s") + @Schema(description = "Key 模板", requiredMode = Schema.RequiredMode.REQUIRED, example = "login_user:%s") private String keyTemplate; - @Schema(description = "Key 类型的枚举", required = true, example = "String") + @Schema(description = "Key 类型的枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "String") private RedisKeyDefine.KeyTypeEnum keyType; - @Schema(description = "Value 类型", required = true, example = "java.lang.String") + @Schema(description = "Value 类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "java.lang.String") private Class valueType; - @Schema(description = "超时类型", required = true, example = "1") + @Schema(description = "超时类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private RedisKeyDefine.TimeoutTypeEnum timeoutType; - @Schema(description = "过期时间,单位:毫秒", required = true, example = "1024") + @Schema(description = "过期时间,单位:毫秒", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private Duration timeout; - @Schema(description = "备注", required = true, example = "啦啦啦啦~") + @Schema(description = "备注", requiredMode = Schema.RequiredMode.REQUIRED, example = "啦啦啦啦~") private String memo; } diff --git a/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/redis/vo/RedisKeyValueRespVO.java b/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/redis/vo/RedisKeyValueRespVO.java index 9dc893da0..393e2d199 100644 --- a/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/redis/vo/RedisKeyValueRespVO.java +++ b/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/redis/vo/RedisKeyValueRespVO.java @@ -9,10 +9,10 @@ import lombok.Data; @AllArgsConstructor public class RedisKeyValueRespVO { - @Schema(description = "c5f6990767804a928f4bb96ca249febf", required = true, example = "String") + @Schema(description = "c5f6990767804a928f4bb96ca249febf", requiredMode = Schema.RequiredMode.REQUIRED, example = "String") private String key; - @Schema(required = true, example = "String") + @Schema(requiredMode = Schema.RequiredMode.REQUIRED, example = "String") private String value; } diff --git a/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/redis/vo/RedisMonitorRespVO.java b/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/redis/vo/RedisMonitorRespVO.java index 15d054282..cc0aa277d 100644 --- a/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/redis/vo/RedisMonitorRespVO.java +++ b/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/redis/vo/RedisMonitorRespVO.java @@ -14,13 +14,13 @@ import java.util.Properties; @AllArgsConstructor public class RedisMonitorRespVO { - @Schema(description = "Redis info 指令结果,具体字段,查看 Redis 文档", required = true) + @Schema(description = "Redis info 指令结果,具体字段,查看 Redis 文档", requiredMode = Schema.RequiredMode.REQUIRED) private Properties info; - @Schema(description = "Redis key 数量", required = true, example = "1024") + @Schema(description = "Redis key 数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private Long dbSize; - @Schema(description = "CommandStat 数组", required = true) + @Schema(description = "CommandStat 数组", requiredMode = Schema.RequiredMode.REQUIRED) private List commandStats; @Schema(description = "Redis 命令统计结果") @@ -29,13 +29,13 @@ public class RedisMonitorRespVO { @AllArgsConstructor public static class CommandStat { - @Schema(description = "Redis 命令", required = true, example = "get") + @Schema(description = "Redis 命令", requiredMode = Schema.RequiredMode.REQUIRED, example = "get") private String command; - @Schema(description = "调用次数", required = true, example = "1024") + @Schema(description = "调用次数", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private Long calls; - @Schema(description = "消耗 CPU 秒数", required = true, example = "666") + @Schema(description = "消耗 CPU 秒数", requiredMode = Schema.RequiredMode.REQUIRED, example = "666") private Long usec; } diff --git a/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/test/vo/TestDemoBaseVO.java b/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/test/vo/TestDemoBaseVO.java index a0216683d..660c31c78 100755 --- a/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/test/vo/TestDemoBaseVO.java +++ b/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/test/vo/TestDemoBaseVO.java @@ -10,19 +10,19 @@ import javax.validation.constraints.*; @Data public class TestDemoBaseVO { - @Schema(description = "名字", required = true) + @Schema(description = "名字", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "名字不能为空") private String name; - @Schema(description = "状态", required = true) + @Schema(description = "状态", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "状态不能为空") private Integer status; - @Schema(description = "类型", required = true) + @Schema(description = "类型", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "类型不能为空") private Integer type; - @Schema(description = "分类", required = true) + @Schema(description = "分类", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "分类不能为空") private Integer category; diff --git a/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/test/vo/TestDemoRespVO.java b/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/test/vo/TestDemoRespVO.java index 312a5eb98..eaef24df3 100755 --- a/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/test/vo/TestDemoRespVO.java +++ b/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/test/vo/TestDemoRespVO.java @@ -10,10 +10,10 @@ import java.time.LocalDateTime; @ToString(callSuper = true) public class TestDemoRespVO extends TestDemoBaseVO { - @Schema(description = "编号", required = true) + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED) private Long id; - @Schema(description = "创建时间", required = true) + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) private LocalDateTime createTime; } diff --git a/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/test/vo/TestDemoUpdateReqVO.java b/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/test/vo/TestDemoUpdateReqVO.java index 6df36addb..25af58ed7 100755 --- a/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/test/vo/TestDemoUpdateReqVO.java +++ b/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/test/vo/TestDemoUpdateReqVO.java @@ -9,7 +9,7 @@ import javax.validation.constraints.*; @ToString(callSuper = true) public class TestDemoUpdateReqVO extends TestDemoBaseVO { - @Schema(description = "编号", required = true) + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "编号不能为空") private Long id; diff --git a/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/java/controller/vo/_column.vm b/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/java/controller/vo/_column.vm index 89a8e348f..98b09f272 100644 --- a/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/java/controller/vo/_column.vm +++ b/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/java/controller/vo/_column.vm @@ -1,5 +1,5 @@ ## 提供给 baseVO、createVO、updateVO 生成字段 - @Schema(description = "${column.columnComment}"#if (!${column.nullable}), required = true#end#if ("$!column.example" != ""), example = "${column.example}"#end) + @Schema(description = "${column.columnComment}"#if (!${column.nullable}), requiredMode = Schema.RequiredMode.REQUIRED#end#if ("$!column.example" != ""), example = "${column.example}"#end) #if (!${column.nullable})## 判断 @NotEmpty 和 @NotNull 注解 #if (${field.fieldType} == 'String') @NotEmpty(message = "${column.columnComment}不能为空") diff --git a/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/java/controller/vo/baseVO.vm b/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/java/controller/vo/baseVO.vm index e2c1f0b39..cc612e337 100644 --- a/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/java/controller/vo/baseVO.vm +++ b/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/java/controller/vo/baseVO.vm @@ -24,9 +24,9 @@ import static ${DateUtilsClassName}.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; #end /** -* ${table.classComment} Base VO,提供给添加、修改、详细的子 VO 使用 -* 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成 -*/ + * ${table.classComment} Base VO,提供给添加、修改、详细的子 VO 使用 + * 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成 + */ @Data public class ${sceneEnum.prefixClass}${table.className}BaseVO { diff --git a/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/java/controller/vo/respVO.vm b/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/java/controller/vo/respVO.vm index 2288ceee8..517d8bcd5 100644 --- a/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/java/controller/vo/respVO.vm +++ b/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/java/controller/vo/respVO.vm @@ -17,7 +17,7 @@ public class ${sceneEnum.prefixClass}${table.className}RespVO extends ${sceneEnu #foreach ($column in $columns) #if (${column.listOperationResult} && (!${column.createOperation} || !${column.updateOperation}))##不是通用字段 - @Schema(description = "${column.columnComment}"#if (!${column.nullable}), required = true#end#if ("$!column.example" != ""), example = "${column.example}"#end) + @Schema(description = "${column.columnComment}"#if (!${column.nullable}), requiredMode = Schema.RequiredMode.REQUIRED#end#if ("$!column.example" != ""), example = "${column.example}"#end) private ${column.javaType} ${column.javaField}; #end diff --git a/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/java/test/serviceTest.vm b/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/java/test/serviceTest.vm index 4d9a5e572..ec1b45a96 100644 --- a/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/java/test/serviceTest.vm +++ b/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/java/test/serviceTest.vm @@ -61,10 +61,10 @@ import static org.mockito.Mockito.*; #end #end /** -* {@link ${table.className}ServiceImpl} 的单元测试类 -* -* @author ${table.author} -*/ + * {@link ${table.className}ServiceImpl} 的单元测试类 + * + * @author ${table.author} + */ @Import(${table.className}ServiceImpl.class) public class ${table.className}ServiceImplTest extends BaseDbUnitTest { diff --git a/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3/api/api.ts.vm b/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3/api/api.ts.vm index eaab40703..401796db8 100644 --- a/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3/api/api.ts.vm +++ b/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3/api/api.ts.vm @@ -1,9 +1,10 @@ import request from '@/config/axios' +#set ($baseURL = "/${table.moduleName}/${simpleClassName_strikeCase}") export interface ${simpleClassName}VO { #foreach ($column in $columns) #if ($column.createOperation || $column.updateOperation) -#if(${column.javaType.toLowerCase()} == "long" || ${column.javaType.toLowerCase()} == "integer" || ${column.javaType.toLowerCase()} == "double" || ${column.javaType.toLowerCase()} == "bigdecimal") +#if(${column.javaType.toLowerCase()} == "long" || ${column.javaType.toLowerCase()} == "integer" || ${column.javaType.toLowerCase()} == "short" || ${column.javaType.toLowerCase()} == "double" || ${column.javaType.toLowerCase()} == "bigdecimal") ${column.javaField}: number #elseif(${column.javaType.toLowerCase()} == "date" || ${column.javaType.toLowerCase()} == "localdatetime") ${column.javaField}: Date @@ -15,31 +16,31 @@ export interface ${simpleClassName}VO { } // 查询${table.classComment}列表 -export const get${simpleClassName}Page = async (params: ${simpleClassName}PageReqVO) => { - return await request.get({ url: '${baseURL}/page', params }) +export const get${simpleClassName}Page = async (params) => { + return await request.get({ url: `${baseURL}/page`, params }) } // 查询${table.classComment}详情 export const get${simpleClassName} = async (id: number) => { - return await request.get({ url: '${baseURL}/get?id=' + id }) + return await request.get({ url: `${baseURL}/get?id=` + id }) } // 新增${table.classComment} export const create${simpleClassName} = async (data: ${simpleClassName}VO) => { - return await request.post({ url: '${baseURL}/create', data }) + return await request.post({ url: `${baseURL}/create`, data }) } // 修改${table.classComment} export const update${simpleClassName} = async (data: ${simpleClassName}VO) => { - return await request.put({ url: '${baseURL}/update', data }) + return await request.put({ url: `${baseURL}/update`, data }) } // 删除${table.classComment} export const delete${simpleClassName} = async (id: number) => { - return await request.delete({ url: '${baseURL}/delete?id=' + id }) + return await request.delete({ url: `${baseURL}/delete?id=` + id }) } // 导出${table.classComment} Excel -export const export${simpleClassName}Api = async (params) => { - return await request.download({ url: '${baseURL}/export-excel', params }) +export const export${simpleClassName} = async (params) => { + return await request.download({ url: `${baseURL}/export-excel`, params }) } diff --git a/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3/views/form.vue.vm b/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3/views/form.vue.vm index 99cce39f2..6604263ea 100644 --- a/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3/views/form.vue.vm +++ b/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3/views/form.vue.vm @@ -102,7 +102,7 @@ diff --git a/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3/views/index.vue.vm b/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3/views/index.vue.vm index f396dde32..58bc69bc7 100644 --- a/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3/views/index.vue.vm +++ b/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3/views/index.vue.vm @@ -66,7 +66,7 @@ { +export const get${simpleClassName}Page = async (params) => { return await request.get({ url: '${baseURL}/page', params }) } diff --git a/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3_vben/api/api.ts.vm b/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3_vben/api/api.ts.vm index d8c28cfe9..c0a53ee43 100644 --- a/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3_vben/api/api.ts.vm +++ b/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3_vben/api/api.ts.vm @@ -1,5 +1,5 @@ import { defHttp } from '@/utils/http/axios' - +#set ($baseURL = "/${table.moduleName}/${simpleClassName_strikeCase}") // 查询${table.classComment}列表 export function get${simpleClassName}Page(params) { diff --git a/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3_vben/views/data.ts.vm b/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3_vben/views/data.ts.vm index cf130155f..0724d5c57 100644 --- a/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3_vben/views/data.ts.vm +++ b/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3_vben/views/data.ts.vm @@ -1,5 +1,5 @@ import { BasicColumn, FormSchema, useRender } from '@/components/Table' -import { DICT_TYPE, getIntDictOptions } from '@/utils/dict' +import { DICT_TYPE, getDictOptions } from '@/utils/dict' export const columns: BasicColumn[] = [ #foreach($column in $columns) @@ -53,7 +53,7 @@ export const searchFormSchema: FormSchema[] = [ component: 'Select', componentProps: { #if ("" != $dictType)## 设置了 dictType 数据字典的情况 - options: getIntDictOptions(DICT_TYPE.$dictType.toUpperCase()) + options: getDictOptions(DICT_TYPE.$dictType.toUpperCase()) #else## 未设置 dictType 数据字典的情况 options: [] #end @@ -67,7 +67,7 @@ export const searchFormSchema: FormSchema[] = [ #end ] -export const formSchema: FormSchema[] = [ +export const createFormSchema: FormSchema[] = [ { label: '编号', field: 'id', @@ -75,7 +75,7 @@ export const formSchema: FormSchema[] = [ component: 'Input' }, #foreach($column in $columns) -#if ($column.createOperation || $column.updateOperation) +#if ($column.createOperation) #set ($dictType = $column.dictType) #set ($javaField = $column.javaField) #set ($AttrName = $column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)}) @@ -90,16 +90,24 @@ export const formSchema: FormSchema[] = [ #if ($column.htmlType == "input") component: 'Input' #elseif($column.htmlType == "imageUpload")## 图片上传 - component: 'Upload' + component: 'FileUpload', + componentProps: { + fileType: 'file', + maxCount: 1 + } #elseif($column.htmlType == "fileUpload")## 文件上传 - component: 'Upload' + component: 'FileUpload', + componentProps: { + fileType: 'image', + maxCount: 1 + } #elseif($column.htmlType == "editor")## 文本编辑器 - component: 'InputTextArea' + component: 'Editor' #elseif($column.htmlType == "select")## 下拉框 component: 'Select', componentProps: { #if ("" != $dictType)## 有数据字典 - options: getIntDictOptions(DICT_TYPE.COMMON_STATUS) + options: getDictOptions(DICT_TYPE.$dictType.toUpperCase(), 'number') #else##没数据字典 options:[] #end @@ -108,7 +116,7 @@ export const formSchema: FormSchema[] = [ component: 'Checkbox', componentProps: { #if ("" != $dictType)## 有数据字典 - options: getIntDictOptions(DICT_TYPE.COMMON_STATUS) + options: getDictOptions(DICT_TYPE.$dictType.toUpperCase(), 'number') #else##没数据字典 options:[] #end @@ -117,7 +125,7 @@ export const formSchema: FormSchema[] = [ component: 'Radio', componentProps: { #if ("" != $dictType)## 有数据字典 - options: getIntDictOptions(DICT_TYPE.COMMON_STATUS) + options: getDictOptions(DICT_TYPE.$dictType.toUpperCase(), 'number') #else##没数据字典 options:[] #end @@ -132,3 +140,69 @@ export const formSchema: FormSchema[] = [ #end #end ] + +export const updateFormSchema: FormSchema[] = [ + { + label: '编号', + field: 'id', + show: false, + component: 'Input' + }, +#foreach($column in $columns) +#if ($column.updateOperation) +#set ($dictType = $column.dictType) +#set ($javaField = $column.javaField) +#set ($AttrName = $column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)}) +#set ($comment = $column.columnComment) +#if (!$column.primaryKey)## 忽略主键,不用在表单里 + { + label: '${comment}', + field: '${javaField}', + #if (($column.createOperation || $column.updateOperation) && !$column.nullable && !${column.primaryKey})## 创建或者更新操作 && 要求非空 && 非主键 + required: true, + #end + #if ($column.htmlType == "input") + component: 'Input' + #elseif($column.htmlType == "imageUpload")## 图片上传 + component: 'Upload' + #elseif($column.htmlType == "fileUpload")## 文件上传 + component: 'Upload' + #elseif($column.htmlType == "editor")## 文本编辑器 + component: 'Editor' + #elseif($column.htmlType == "select")## 下拉框 + component: 'Select', + componentProps: { + #if ("" != $dictType)## 有数据字典 + options: getDictOptions(DICT_TYPE.$dictType.toUpperCase(), 'number') + #else##没数据字典 + options:[] + #end + } + #elseif($column.htmlType == "checkbox")## 多选框 + component: 'Checkbox', + componentProps: { + #if ("" != $dictType)## 有数据字典 + options: getDictOptions(DICT_TYPE.$dictType.toUpperCase(), 'number') + #else##没数据字典 + options:[] + #end + } + #elseif($column.htmlType == "radio")## 单选框 + component: 'Radio', + componentProps: { + #if ("" != $dictType)## 有数据字典 + options: getDictOptions(DICT_TYPE.$dictType.toUpperCase(), 'number') + #else##没数据字典 + options:[] + #end + } + #elseif($column.htmlType == "datetime")## 时间框 + component: 'DatePicker' + #elseif($column.htmlType == "textarea")## 文本域 + component: 'InputTextArea' + #end + }, +#end +#end +#end +] \ No newline at end of file diff --git a/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3_vben/views/form.vue.vm b/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3_vben/views/form.vue.vm index 2d69b5147..5815a4daa 100644 --- a/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3_vben/views/form.vue.vm +++ b/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3_vben/views/form.vue.vm @@ -1,49 +1,56 @@ - diff --git a/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3_vben/views/index.vue.vm b/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3_vben/views/index.vue.vm index 9130ec9b3..e5faddd29 100644 --- a/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3_vben/views/index.vue.vm +++ b/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3_vben/views/index.vue.vm @@ -33,58 +33,60 @@ <${simpleClassName}Modal @register="registerModal" @success="reload()" /> - diff --git a/yudao-module-infra/yudao-module-infra-biz/src/main/resources/mapper/占位 b/yudao-module-infra/yudao-module-infra-biz/src/main/resources/mapper/null/.gitkeep similarity index 100% rename from yudao-module-infra/yudao-module-infra-biz/src/main/resources/mapper/占位 rename to yudao-module-infra/yudao-module-infra-biz/src/main/resources/mapper/null/.gitkeep diff --git a/yudao-module-infra/yudao-module-infra-biz/src/main/resources/mapper/test/TestDemoMapper.xml b/yudao-module-infra/yudao-module-infra-biz/src/main/resources/mapper/test/TestDemoMapper.xml index d65f2136f..287f58d82 100644 --- a/yudao-module-infra/yudao-module-infra-biz/src/main/resources/mapper/test/TestDemoMapper.xml +++ b/yudao-module-infra/yudao-module-infra-biz/src/main/resources/mapper/test/TestDemoMapper.xml @@ -9,7 +9,7 @@ 文档可见:https://www.iocoder.cn/MyBatis/x-plugins/ --> - SELECT * FROM infra_test_demo diff --git a/yudao-module-mall/yudao-module-product-api/src/main/java/cn/iocoder/yudao/module/product/api/comment/ProductCommentApi.java b/yudao-module-mall/yudao-module-product-api/src/main/java/cn/iocoder/yudao/module/product/api/comment/ProductCommentApi.java new file mode 100644 index 000000000..b0ba1f7fe --- /dev/null +++ b/yudao-module-mall/yudao-module-product-api/src/main/java/cn/iocoder/yudao/module/product/api/comment/ProductCommentApi.java @@ -0,0 +1,20 @@ +package cn.iocoder.yudao.module.product.api.comment; + +import cn.iocoder.yudao.module.product.api.comment.dto.ProductCommentCreateReqDTO; + +/** + * 产品评论 API 接口 + * + * @author HUIHUI + */ +public interface ProductCommentApi { + + /** + * 创建评论 + * + * @param createReqDTO 评论参数 + * @return 返回评论创建后的 id + */ + Long createComment(ProductCommentCreateReqDTO createReqDTO); + +} diff --git a/yudao-module-mall/yudao-module-product-api/src/main/java/cn/iocoder/yudao/module/product/api/comment/dto/ProductCommentCreateReqDTO.java b/yudao-module-mall/yudao-module-product-api/src/main/java/cn/iocoder/yudao/module/product/api/comment/dto/ProductCommentCreateReqDTO.java new file mode 100644 index 000000000..aff7fbd27 --- /dev/null +++ b/yudao-module-mall/yudao-module-product-api/src/main/java/cn/iocoder/yudao/module/product/api/comment/dto/ProductCommentCreateReqDTO.java @@ -0,0 +1,59 @@ +package cn.iocoder.yudao.module.product.api.comment.dto; + +import lombok.Data; + +import java.util.List; + +/** + * 评论创建请求 DTO + * + * @author HUIHUI + */ +@Data +public class ProductCommentCreateReqDTO { + + /** + * 商品 SKU 编号 + */ + private Long skuId; + /** + * 订单编号 + */ + private Long orderId; + /** + * 交易订单项编号 + */ + private Long orderItemId; + + /** + * 评分星级 1-5 分 + */ + private Integer scores; + /** + * 描述星级 1-5 分 + */ + private Integer descriptionScores; + /** + * 服务星级 1-5 分 + */ + private Integer benefitScores; + /** + * 评论内容 + */ + private String content; + /** + * 评论图片地址数组,以逗号分隔最多上传 9 张 + */ + private List picUrls; + + /** + * 是否匿名 + */ + private Boolean anonymous; + /** + * 评价人 + */ + private Long userId; + + +} diff --git a/yudao-module-mall/yudao-module-product-api/src/main/java/cn/iocoder/yudao/module/product/api/sku/ProductSkuApi.java b/yudao-module-mall/yudao-module-product-api/src/main/java/cn/iocoder/yudao/module/product/api/sku/ProductSkuApi.java index d5d93dc37..21fcf7d96 100644 --- a/yudao-module-mall/yudao-module-product-api/src/main/java/cn/iocoder/yudao/module/product/api/sku/ProductSkuApi.java +++ b/yudao-module-mall/yudao-module-product-api/src/main/java/cn/iocoder/yudao/module/product/api/sku/ProductSkuApi.java @@ -1,7 +1,7 @@ package cn.iocoder.yudao.module.product.api.sku; -import cn.iocoder.yudao.module.product.api.sku.dto.ProductSkuUpdateStockReqDTO; import cn.iocoder.yudao.module.product.api.sku.dto.ProductSkuRespDTO; +import cn.iocoder.yudao.module.product.api.sku.dto.ProductSkuUpdateStockReqDTO; import java.util.Collection; import java.util.List; @@ -30,6 +30,15 @@ public interface ProductSkuApi { */ List getSkuList(Collection ids); + // TODO puhui999:入参用 Collection 更通用 + /** + * 批量查询 SKU 数组 + * + * @param spuIds SPU 编号列表 + * @return SKU 数组 + */ + List getSkuListBySpuId(List spuIds); + /** * 更新 SKU 库存 * diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/api/comment/ProductCommentApiImpl.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/api/comment/ProductCommentApiImpl.java new file mode 100644 index 000000000..919c22c90 --- /dev/null +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/api/comment/ProductCommentApiImpl.java @@ -0,0 +1,27 @@ +package cn.iocoder.yudao.module.product.api.comment; + +import cn.iocoder.yudao.module.product.api.comment.dto.ProductCommentCreateReqDTO; +import cn.iocoder.yudao.module.product.service.comment.ProductCommentService; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +import javax.annotation.Resource; + +/** + * 商品评论 API 实现类 + * + * @author HUIHUI + */ +@Service +@Validated +public class ProductCommentApiImpl implements ProductCommentApi { + + @Resource + private ProductCommentService productCommentService; + + @Override + public Long createComment(ProductCommentCreateReqDTO createReqDTO) { + return productCommentService.createComment(createReqDTO); + } + +} diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/api/sku/ProductSkuApiImpl.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/api/sku/ProductSkuApiImpl.java index 6bec2a74c..4a8425f61 100644 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/api/sku/ProductSkuApiImpl.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/api/sku/ProductSkuApiImpl.java @@ -42,6 +42,15 @@ public class ProductSkuApiImpl implements ProductSkuApi { return ProductSkuConvert.INSTANCE.convertList04(skus); } + @Override + public List getSkuListBySpuId(List spuIds) { + if (CollUtil.isEmpty(spuIds)) { + return Collections.emptyList(); + } + List skus = productSkuService.getSkuListBySpuId(spuIds); + return ProductSkuConvert.INSTANCE.convertList04(skus); + } + @Override public void updateSkuStock(ProductSkuUpdateStockReqDTO updateStockReqDTO) { productSkuService.updateSkuStock(updateStockReqDTO); diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/api/spu/ProductSpuApiImpl.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/api/spu/ProductSpuApiImpl.java index 4d880e662..6823e0a57 100644 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/api/spu/ProductSpuApiImpl.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/api/spu/ProductSpuApiImpl.java @@ -1,6 +1,6 @@ package cn.iocoder.yudao.module.product.api.spu; -import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; +import cn.hutool.core.collection.CollectionUtil; import cn.iocoder.yudao.module.product.api.spu.dto.ProductSpuRespDTO; import cn.iocoder.yudao.module.product.convert.spu.ProductSpuConvert; import cn.iocoder.yudao.module.product.dal.dataobject.spu.ProductSpuDO; @@ -14,7 +14,7 @@ import java.util.Collections; import java.util.List; /** - * TODO LeeYan9: 类注释; + * 商品 SPU API 接口实现类 * * @author LeeYan9 * @since 2022-09-06 @@ -28,11 +28,11 @@ public class ProductSpuApiImpl implements ProductSpuApi { @Override public List getSpuList(Collection spuIds) { - // TODO TODO LeeYan9: AllEmpty? - if (CollectionUtils.isAnyEmpty(spuIds)) { + if (CollectionUtil.isEmpty(spuIds)) { return Collections.emptyList(); } List productSpuDOList = productSpuMapper.selectBatchIds(spuIds); return ProductSpuConvert.INSTANCE.convertList2(productSpuDOList); } + } diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/brand/vo/ProductBrandBaseVO.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/brand/vo/ProductBrandBaseVO.java index 4336c3cc8..a148d52de 100644 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/brand/vo/ProductBrandBaseVO.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/brand/vo/ProductBrandBaseVO.java @@ -12,22 +12,22 @@ import javax.validation.constraints.NotNull; @Data public class ProductBrandBaseVO { - @Schema(description = "品牌名称", required = true, example = "苹果") + @Schema(description = "品牌名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "苹果") @NotNull(message = "品牌名称不能为空") private String name; - @Schema(description = "品牌图片", required = true) + @Schema(description = "品牌图片", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "品牌图片不能为空") private String picUrl; - @Schema(description = "品牌排序", required = true, example = "1") + @Schema(description = "品牌排序", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotNull(message = "品牌排序不能为空") private Integer sort; @Schema(description = "品牌描述", example = "描述") private String description; - @Schema(description = "状态", required = true, example = "0") + @Schema(description = "状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "0") @NotNull(message = "状态不能为空") private Integer status; diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/brand/vo/ProductBrandRespVO.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/brand/vo/ProductBrandRespVO.java index b68fbc5be..486fe764b 100644 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/brand/vo/ProductBrandRespVO.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/brand/vo/ProductBrandRespVO.java @@ -13,10 +13,10 @@ import java.time.LocalDateTime; @ToString(callSuper = true) public class ProductBrandRespVO extends ProductBrandBaseVO { - @Schema(description = "品牌编号", required = true, example = "1") + @Schema(description = "品牌编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Long id; - @Schema(description = "创建时间", required = true) + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) private LocalDateTime createTime; } diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/brand/vo/ProductBrandSimpleRespVO.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/brand/vo/ProductBrandSimpleRespVO.java index 14e74b946..6379a5fb1 100644 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/brand/vo/ProductBrandSimpleRespVO.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/brand/vo/ProductBrandSimpleRespVO.java @@ -5,17 +5,16 @@ import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; -// TODO @puhui999:class 类的开始和结束,都要有一个空行哈。 @Schema(description = "管理后台 - 品牌精简信息 Response VO") @Data @NoArgsConstructor @AllArgsConstructor public class ProductBrandSimpleRespVO { - @Schema(description = "品牌编号", required = true, example = "1024") + @Schema(description = "品牌编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private Long id; - @Schema(description = "品牌名称", required = true, example = "苹果") + @Schema(description = "品牌名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "苹果") private String name; } diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/brand/vo/ProductBrandUpdateReqVO.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/brand/vo/ProductBrandUpdateReqVO.java index c01c3c4b7..a39a6830d 100644 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/brand/vo/ProductBrandUpdateReqVO.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/brand/vo/ProductBrandUpdateReqVO.java @@ -13,7 +13,7 @@ import javax.validation.constraints.NotNull; @ToString(callSuper = true) public class ProductBrandUpdateReqVO extends ProductBrandBaseVO { - @Schema(description = "品牌编号", required = true, example = "1") + @Schema(description = "品牌编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotNull(message = "品牌编号不能为空") private Long id; diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/category/vo/ProductCategoryBaseVO.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/category/vo/ProductCategoryBaseVO.java index 880657da7..5a8363167 100644 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/category/vo/ProductCategoryBaseVO.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/category/vo/ProductCategoryBaseVO.java @@ -13,25 +13,25 @@ import javax.validation.constraints.NotNull; @Data public class ProductCategoryBaseVO { - @Schema(description = "父分类编号", required = true, example = "1") + @Schema(description = "父分类编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotNull(message = "父分类编号不能为空") private Long parentId; - @Schema(description = "分类名称", required = true, example = "办公文具") + @Schema(description = "分类名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "办公文具") @NotBlank(message = "分类名称不能为空") private String name; - @Schema(description = "移动端分类图", required = true) + @Schema(description = "移动端分类图", requiredMode = Schema.RequiredMode.REQUIRED) @NotBlank(message = "移动端分类图不能为空") private String picUrl; @Schema(description = "PC 端分类图") private String bigPicUrl; - @Schema(description = "分类排序", required = true, example = "1") + @Schema(description = "分类排序", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Integer sort; - @Schema(description = "开启状态", required = true, example = "0") + @Schema(description = "开启状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "0") @NotNull(message = "开启状态不能为空") private Integer status; diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/category/vo/ProductCategoryRespVO.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/category/vo/ProductCategoryRespVO.java index 484e0e51e..8f46ff60f 100644 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/category/vo/ProductCategoryRespVO.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/category/vo/ProductCategoryRespVO.java @@ -13,10 +13,10 @@ import java.time.LocalDateTime; @ToString(callSuper = true) public class ProductCategoryRespVO extends ProductCategoryBaseVO { - @Schema(description = "分类编号", required = true, example = "2") + @Schema(description = "分类编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") private Long id; - @Schema(description = "创建时间", required = true) + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) private LocalDateTime createTime; } diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/category/vo/ProductCategoryUpdateReqVO.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/category/vo/ProductCategoryUpdateReqVO.java index 2dee40d22..ffcdc3f5c 100644 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/category/vo/ProductCategoryUpdateReqVO.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/category/vo/ProductCategoryUpdateReqVO.java @@ -14,7 +14,7 @@ import javax.validation.constraints.NotNull; @ToString(callSuper = true) public class ProductCategoryUpdateReqVO extends ProductCategoryBaseVO { - @Schema(description = "分类编号", required = true, example = "2") + @Schema(description = "分类编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") @NotNull(message = "分类编号不能为空") private Long id; diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/comment/ProductCommentController.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/comment/ProductCommentController.java index fb8f8fe34..91020a51c 100644 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/comment/ProductCommentController.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/comment/ProductCommentController.java @@ -35,8 +35,7 @@ public class ProductCommentController { return success(ProductCommentConvert.INSTANCE.convertPage(pageResult)); } - // TODO @puhui999:update-visible - @PutMapping("/update/visible") + @PutMapping("/update-visible") @Operation(summary = "显示 / 隐藏评论") @PreAuthorize("@ss.hasPermission('product:comment:update')") public CommonResult updateCommentVisible(@Valid @RequestBody ProductCommentUpdateVisibleReqVO updateReqVO) { @@ -47,8 +46,8 @@ public class ProductCommentController { @PutMapping("/reply") @Operation(summary = "商家回复") @PreAuthorize("@ss.hasPermission('product:comment:update')") - public CommonResult commentReply(@Valid @RequestBody ProductCommentReplyVO replyVO) { - productCommentService.commentReply(replyVO, getLoginUserId()); + public CommonResult commentReply(@Valid @RequestBody ProductCommentReplyReqVO replyVO) { + productCommentService.replyComment(replyVO, getLoginUserId()); return success(true); } @@ -56,8 +55,7 @@ public class ProductCommentController { @Operation(summary = "添加自评") @PreAuthorize("@ss.hasPermission('product:comment:update')") public CommonResult createComment(@Valid @RequestBody ProductCommentCreateReqVO createReqVO) { - // TODO @puhui999:不用 ProductCommentConvert.INSTANCE.convert(createReqVO) 哈;多写一个 create 方法即可; - productCommentService.createComment(ProductCommentConvert.INSTANCE.convert(createReqVO), Boolean.TRUE); + productCommentService.createComment(createReqVO); return success(true); } diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/comment/vo/ProductCommentBaseVO.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/comment/vo/ProductCommentBaseVO.java index 775801bbc..c2e791a44 100644 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/comment/vo/ProductCommentBaseVO.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/comment/vo/ProductCommentBaseVO.java @@ -10,46 +10,53 @@ import java.util.List; @Data public class ProductCommentBaseVO { - // TODO @puhui999:把 example 补充下 + @Schema(description = "评价人", requiredMode = Schema.RequiredMode.REQUIRED, example = "16868") + @NotNull(message = "评价人不能为空") + private Long userId; - @Schema(description = "评价人名称", required = true, example = "张三") + @Schema(description = "评价订单项", requiredMode = Schema.RequiredMode.REQUIRED, example = "19292") + @NotNull(message = "评价订单项不能为空") + private Long orderItemId; + + @Schema(description = "评价人名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "小姑凉") @NotNull(message = "评价人名称不能为空") private String userNickname; - @Schema(description = "评价人头像", required = true) + @Schema(description = "评价人头像", requiredMode = Schema.RequiredMode.REQUIRED, example = "https://www.iocoder.cn/xx.png") @NotNull(message = "评价人头像不能为空") private String userAvatar; - @Schema(description = "商品 SPU 编号", required = true, example = "29502") + // TODO @puhui:spuId、spuName 是不是只有 ProductCommentRespVO 有呀。 + @Schema(description = "商品 SPU 编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "清凉丝滑透气小短袖") @NotNull(message = "商品 SPU 编号不能为空") private Long spuId; - @Schema(description = "商品 SPU 名称", required = true, example = "赵六") + @Schema(description = "商品 SPU 名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "赵六") @NotNull(message = "商品 SPU 名称不能为空") private String spuName; - @Schema(description = "商品 SKU 编号", required = true, example = "3082") + @Schema(description = "商品 SKU 编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotNull(message = "商品 SKU 编号不能为空") private Long skuId; - @Schema(description = "评分星级 1-5分", required = true) + @Schema(description = "评分星级 1-5 分", requiredMode = Schema.RequiredMode.REQUIRED, example = "5") @NotNull(message = "评分星级不能为空") private Integer scores; - @Schema(description = "描述星级 1-5分", required = true) + @Schema(description = "描述星级 1-5 分", requiredMode = Schema.RequiredMode.REQUIRED, example = "5") @NotNull(message = "描述星级不能为空") private Integer descriptionScores; - @Schema(description = "服务星级 1-5分", required = true) + @Schema(description = "服务星级 1-5 分", requiredMode = Schema.RequiredMode.REQUIRED, example = "5") @NotNull(message = "服务星级分不能为空") private Integer benefitScores; - @Schema(description = "评论内容", required = true) + @Schema(description = "评论内容", requiredMode = Schema.RequiredMode.REQUIRED, example = "穿起来非常丝滑凉快") @NotNull(message = "评论内容不能为空") private String content; - @Schema(description = "评论图片地址数组,以逗号分隔最多上传9张", required = true) - @Size(max = 9, message = "评论图片地址数组长度不能超过9张") + @Schema(description = "评论图片地址数组,以逗号分隔最多上传 9 张", requiredMode = Schema.RequiredMode.REQUIRED, example = "[https://www.iocoder.cn/xx.png]") + @Size(max = 9, message = "评论图片地址数组长度不能超过 9 张") private List picUrls; } diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/comment/vo/ProductCommentCreateReqVO.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/comment/vo/ProductCommentCreateReqVO.java index 8fd0e7099..f976b756d 100644 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/comment/vo/ProductCommentCreateReqVO.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/comment/vo/ProductCommentCreateReqVO.java @@ -1,7 +1,9 @@ package cn.iocoder.yudao.module.product.controller.admin.comment.vo; -import lombok.*; import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; @Schema(description = "管理后台 - 商品评价创建 Request VO") @Data diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/comment/vo/ProductCommentPageReqVO.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/comment/vo/ProductCommentPageReqVO.java index 5a90d1c20..f6e913fea 100644 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/comment/vo/ProductCommentPageReqVO.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/comment/vo/ProductCommentPageReqVO.java @@ -31,11 +31,12 @@ public class ProductCommentPageReqVO extends PageParam { @Schema(description = "商品SPU名称", example = "感冒药") private String spuName; - @Schema(description = "评分星级 1-5分") + @Schema(description = "评分星级 1-5 分", example = "5") @InEnum(ProductCommentScoresEnum.class) private Integer scores; - @Schema(description = "商家是否回复") + // TODO @puhui999:replyStatus 哈 + @Schema(description = "商家是否回复", example = "true") private Boolean replied; @Schema(description = "创建时间") diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/comment/vo/ProductCommentReplyVO.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/comment/vo/ProductCommentReplyReqVO.java similarity index 57% rename from yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/comment/vo/ProductCommentReplyVO.java rename to yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/comment/vo/ProductCommentReplyReqVO.java index a935108dc..97ad39d7a 100644 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/comment/vo/ProductCommentReplyVO.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/comment/vo/ProductCommentReplyReqVO.java @@ -7,17 +7,16 @@ import lombok.ToString; import javax.validation.constraints.NotEmpty; import javax.validation.constraints.NotNull; -// TODO @puhui999:ReqVO -@Schema(description = "管理后台 - 商品评价可见修改 Request VO") +@Schema(description = "管理后台 - 商品评价的商家回复 Request VO") @Data @ToString(callSuper = true) -public class ProductCommentReplyVO { +public class ProductCommentReplyReqVO { - @Schema(description = "评价编号", required = true, example = "15721") + @Schema(description = "评价编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "15721") @NotNull(message = "评价编号不能为空") private Long id; - @Schema(description = "商家回复内容", required = true, example = "谢谢亲") + @Schema(description = "商家回复内容", requiredMode = Schema.RequiredMode.REQUIRED, example = "谢谢亲") @NotEmpty(message = "商家回复内容不能为空") private String replyContent; diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/comment/vo/ProductCommentRespVO.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/comment/vo/ProductCommentRespVO.java index 400630afd..a75e9ec0c 100644 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/comment/vo/ProductCommentRespVO.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/comment/vo/ProductCommentRespVO.java @@ -13,37 +13,31 @@ import java.time.LocalDateTime; @ToString(callSuper = true) public class ProductCommentRespVO extends ProductCommentBaseVO { - @Schema(description = "订单项编号", required = true, example = "24965") + @Schema(description = "订单项编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "24965") private Long id; - @Schema(description = "是否匿名:[false:不匿名 true:匿名]", required = true) + @Schema(description = "是否匿名", requiredMode = Schema.RequiredMode.REQUIRED, example = "false") private Boolean anonymous; - @Schema(description = "交易订单编号", required = true, example = "24428") + @Schema(description = "交易订单编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "24428") private Long orderId; - @Schema(description = "评价人 用户编号", required = true, example = "15721") - private Long userId; - - @Schema(description = "交易订单项编号", required = true, example = "8233") - private Long orderItemId; - - @Schema(description = "是否可见:[true:显示 false:隐藏]", required = true) + @Schema(description = "是否可见:[true:显示 false:隐藏]", requiredMode = Schema.RequiredMode.REQUIRED) private Boolean visible; - @Schema(description = "商家是否回复:[1:回复 0:未回复]", required = true) + @Schema(description = "商家是否回复:[1:回复 0:未回复]", requiredMode = Schema.RequiredMode.REQUIRED) private Boolean replyStatus; - @Schema(description = "回复管理员编号", example = "22212") + @Schema(description = "回复管理员编号", example = "9527") private Long replyUserId; - @Schema(description = "商家回复内容") + @Schema(description = "商家回复内容", example = "感谢好评哦亲(づ ̄3 ̄)づ╭❤~") private String replyContent; - @Schema(description = "商家回复时间") + @Schema(description = "商家回复时间", example = "2023-08-08 12:20:55") private LocalDateTime replyTime; - @Schema(description = "创建时间", required = true) + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) private LocalDateTime createTime; } diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/comment/vo/ProductCommentUpdateVisibleReqVO.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/comment/vo/ProductCommentUpdateVisibleReqVO.java index 77c085995..c88fbaf34 100644 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/comment/vo/ProductCommentUpdateVisibleReqVO.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/comment/vo/ProductCommentUpdateVisibleReqVO.java @@ -11,11 +11,11 @@ import javax.validation.constraints.NotNull; @ToString(callSuper = true) public class ProductCommentUpdateVisibleReqVO { - @Schema(description = "评价编号", required = true, example = "15721") + @Schema(description = "评价编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "15721") @NotNull(message = "评价编号不能为空") private Long id; - @Schema(description = "是否可见", required = true, example = "false") + @Schema(description = "是否可见", requiredMode = Schema.RequiredMode.REQUIRED, example = "false") @NotNull(message = "是否可见不能为空") private Boolean visible; diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/property/ProductPropertyAndValueRespVO.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/property/ProductPropertyAndValueRespVO.java index 4be1bad18..6ef051451 100644 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/property/ProductPropertyAndValueRespVO.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/property/ProductPropertyAndValueRespVO.java @@ -9,10 +9,10 @@ import java.util.List; @Data public class ProductPropertyAndValueRespVO { - @Schema(description = "属性项的编号", required = true, example = "1024") + @Schema(description = "属性项的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private Long id; - @Schema(description = "属性项的名称", required = true, example = "颜色") + @Schema(description = "属性项的名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "颜色") private String name; /** @@ -24,10 +24,10 @@ public class ProductPropertyAndValueRespVO { @Data public static class Value { - @Schema(description = "属性值的编号", required = true, example = "2048") + @Schema(description = "属性值的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "2048") private Long id; - @Schema(description = "属性值的名称", required = true, example = "红色") + @Schema(description = "属性值的名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "红色") private String name; } diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/property/ProductPropertyBaseVO.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/property/ProductPropertyBaseVO.java index 1f05af4b2..0006bd7b3 100644 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/property/ProductPropertyBaseVO.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/property/ProductPropertyBaseVO.java @@ -12,7 +12,7 @@ import javax.validation.constraints.NotBlank; @Data public class ProductPropertyBaseVO { - @Schema(description = "名称", required = true, example = "颜色") + @Schema(description = "名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "颜色") @NotBlank(message = "名称不能为空") private String name; diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/property/ProductPropertyPageReqVO.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/property/ProductPropertyPageReqVO.java index d729880f0..97b959d6a 100644 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/property/ProductPropertyPageReqVO.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/property/ProductPropertyPageReqVO.java @@ -20,7 +20,7 @@ public class ProductPropertyPageReqVO extends PageParam { @Schema(description = "名称", example = "颜色") private String name; - @Schema(description = "状态", required = true, example = "1") + @Schema(description = "状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Integer status; @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/property/ProductPropertyRespVO.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/property/ProductPropertyRespVO.java index b33e615fc..5f541230a 100644 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/property/ProductPropertyRespVO.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/property/ProductPropertyRespVO.java @@ -13,10 +13,10 @@ import java.time.LocalDateTime; @ToString(callSuper = true) public class ProductPropertyRespVO extends ProductPropertyBaseVO { - @Schema(description = "编号", required = true, example = "1024") + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private Long id; - @Schema(description = "创建时间", required = true) + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) private LocalDateTime createTime; } diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/property/ProductPropertyUpdateReqVO.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/property/ProductPropertyUpdateReqVO.java index 33ba8f2c1..9319f7cf2 100644 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/property/ProductPropertyUpdateReqVO.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/property/ProductPropertyUpdateReqVO.java @@ -13,7 +13,7 @@ import javax.validation.constraints.NotNull; @ToString(callSuper = true) public class ProductPropertyUpdateReqVO extends ProductPropertyBaseVO { - @Schema(description = "主键", required = true, example = "1") + @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotNull(message = "主键不能为空") private Long id; diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/value/ProductPropertyValueBaseVO.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/value/ProductPropertyValueBaseVO.java index da3bf5068..d46b66b3d 100644 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/value/ProductPropertyValueBaseVO.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/value/ProductPropertyValueBaseVO.java @@ -13,11 +13,11 @@ import javax.validation.constraints.NotNull; @Data public class ProductPropertyValueBaseVO { - @Schema(description = "属性项的编号", required = true, example = "1024") + @Schema(description = "属性项的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") @NotNull(message = "属性项的编号不能为空") private Long propertyId; - @Schema(description = "名称", required = true, example = "红色") + @Schema(description = "名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "红色") @NotEmpty(message = "名称名字不能为空") private String name; diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/value/ProductPropertyValueDetailRespVO.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/value/ProductPropertyValueDetailRespVO.java index 56801cc7d..4d22f0dbf 100644 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/value/ProductPropertyValueDetailRespVO.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/value/ProductPropertyValueDetailRespVO.java @@ -7,16 +7,16 @@ import lombok.Data; @Data public class ProductPropertyValueDetailRespVO { - @Schema(description = "属性的编号", required = true, example = "1") + @Schema(description = "属性的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Long propertyId; - @Schema(description = "属性的名称", required = true, example = "颜色") + @Schema(description = "属性的名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "颜色") private String propertyName; - @Schema(description = "属性值的编号", required = true, example = "1024") + @Schema(description = "属性值的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private Long valueId; - @Schema(description = "属性值的名称", required = true, example = "红色") + @Schema(description = "属性值的名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "红色") private String valueName; } diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/value/ProductPropertyValuePageReqVO.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/value/ProductPropertyValuePageReqVO.java index a6088deb9..ff0c32614 100644 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/value/ProductPropertyValuePageReqVO.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/value/ProductPropertyValuePageReqVO.java @@ -18,7 +18,7 @@ public class ProductPropertyValuePageReqVO extends PageParam { @Schema(description = "名称", example = "红色") private String name; - @Schema(description = "状态", required = true, example = "1") + @Schema(description = "状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Integer status; } diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/value/ProductPropertyValueRespVO.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/value/ProductPropertyValueRespVO.java index dac075b86..6ef17c32e 100644 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/value/ProductPropertyValueRespVO.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/value/ProductPropertyValueRespVO.java @@ -13,7 +13,7 @@ import java.time.LocalDateTime; @ToString(callSuper = true) public class ProductPropertyValueRespVO extends ProductPropertyValueBaseVO { - @Schema(description = "编号", required = true, example = "10") + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "10") private Long id; @Schema(description = "创建时间") diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/value/ProductPropertyValueUpdateReqVO.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/value/ProductPropertyValueUpdateReqVO.java index 474a980b8..d0e0d9382 100644 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/value/ProductPropertyValueUpdateReqVO.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/value/ProductPropertyValueUpdateReqVO.java @@ -13,7 +13,7 @@ import javax.validation.constraints.NotNull; @ToString(callSuper = true) public class ProductPropertyValueUpdateReqVO extends ProductPropertyValueBaseVO { - @Schema(description = "主键", required = true, example = "1024") + @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") @NotNull(message = "主键不能为空") private Long id; diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/sku/vo/ProductSkuBaseVO.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/sku/vo/ProductSkuBaseVO.java index 518428ca6..13da82214 100755 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/sku/vo/ProductSkuBaseVO.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/sku/vo/ProductSkuBaseVO.java @@ -16,11 +16,11 @@ import java.util.List; @Data public class ProductSkuBaseVO { - @Schema(description = "商品 SKU 名字", required = true, example = "清凉小短袖") + @Schema(description = "商品 SKU 名字", requiredMode = Schema.RequiredMode.REQUIRED, example = "清凉小短袖") @NotEmpty(message = "商品 SKU 名字不能为空") private String name; - @Schema(description = "销售价格,单位:分", required = true, example = "1999") + @Schema(description = "销售价格,单位:分", requiredMode = Schema.RequiredMode.REQUIRED, example = "1999") @NotNull(message = "销售价格,单位:分不能为空") private Integer price; @@ -33,11 +33,11 @@ public class ProductSkuBaseVO { @Schema(description = "条形码", example = "15156165456") private String barCode; - @Schema(description = "图片地址", required = true, example = "https://www.iocoder.cn/xx.png") + @Schema(description = "图片地址", requiredMode = Schema.RequiredMode.REQUIRED, example = "https://www.iocoder.cn/xx.png") @NotNull(message = "图片地址不能为空") private String picUrl; - @Schema(description = "库存", required = true, example = "200") + @Schema(description = "库存", requiredMode = Schema.RequiredMode.REQUIRED, example = "200") @NotNull(message = "库存不能为空") private Integer stock; diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/sku/vo/ProductSkuOptionRespVO.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/sku/vo/ProductSkuOptionRespVO.java index 861454795..f06ecc358 100644 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/sku/vo/ProductSkuOptionRespVO.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/sku/vo/ProductSkuOptionRespVO.java @@ -7,24 +7,24 @@ import lombok.Data; @Data public class ProductSkuOptionRespVO { - @Schema(description = "主键", required = true, example = "1024") + @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private Long id; @Schema(description = "商品 SKU 名字", example = "红色") private String name; - @Schema(description = "销售价格", required = true, example = "100") + @Schema(description = "销售价格", requiredMode = Schema.RequiredMode.REQUIRED, example = "100") private String price; - @Schema(description = "库存", required = true, example = "100") + @Schema(description = "库存", requiredMode = Schema.RequiredMode.REQUIRED, example = "100") private Integer stock; // ========== 商品 SPU 信息 ========== - @Schema(description = "商品 SPU 编号", required = true, example = "1") + @Schema(description = "商品 SPU 编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Long spuId; - @Schema(description = "商品 SPU 名字", required = true, example = "iPhone 11") + @Schema(description = "商品 SPU 名字", requiredMode = Schema.RequiredMode.REQUIRED, example = "iPhone 11") private String spuName; } diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/sku/vo/ProductSkuRespVO.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/sku/vo/ProductSkuRespVO.java index 27c66a295..42d72e00e 100755 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/sku/vo/ProductSkuRespVO.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/sku/vo/ProductSkuRespVO.java @@ -12,7 +12,7 @@ import java.util.List; @ToString(callSuper = true) public class ProductSkuRespVO extends ProductSkuBaseVO { - @Schema(description = "主键", required = true, example = "1024") + @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private Long id; } diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/spu/vo/ProductSpuBaseVO.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/spu/vo/ProductSpuBaseVO.java index 409a74518..23c2467f8 100755 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/spu/vo/ProductSpuBaseVO.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/spu/vo/ProductSpuBaseVO.java @@ -16,90 +16,90 @@ import java.util.List; @Data public class ProductSpuBaseVO { - @Schema(description = "商品名称", required = true, example = "清凉小短袖") + @Schema(description = "商品名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "清凉小短袖") @NotEmpty(message = "商品名称不能为空") private String name; - @Schema(description = "关键字", required = true, example = "清凉丝滑不出汗") + @Schema(description = "关键字", requiredMode = Schema.RequiredMode.REQUIRED, example = "清凉丝滑不出汗") @NotEmpty(message = "商品关键字不能为空") private String keyword; - @Schema(description = "商品简介", required = true, example = "清凉小短袖简介") + @Schema(description = "商品简介", requiredMode = Schema.RequiredMode.REQUIRED, example = "清凉小短袖简介") @NotEmpty(message = "商品简介不能为空") private String introduction; - @Schema(description = "商品详情", required = true, example = "清凉小短袖详情") + @Schema(description = "商品详情", requiredMode = Schema.RequiredMode.REQUIRED, example = "清凉小短袖详情") @NotEmpty(message = "商品详情不能为空") private String description; - @Schema(description = "商品分类编号", required = true, example = "1") + @Schema(description = "商品分类编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotNull(message = "商品分类不能为空") private Long categoryId; - @Schema(description = "商品品牌编号", required = true, example = "1") + @Schema(description = "商品品牌编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotNull(message = "商品品牌不能为空") private Long brandId; - @Schema(description = "商品封面图", required = true, example = "https://www.iocoder.cn/xx.png") + @Schema(description = "商品封面图", requiredMode = Schema.RequiredMode.REQUIRED, example = "https://www.iocoder.cn/xx.png") @NotEmpty(message = "商品封面图不能为空") private String picUrl; - @Schema(description = "商品轮播图", required = true, example = "[https://www.iocoder.cn/xx.png, https://www.iocoder.cn/xxx.png]") + @Schema(description = "商品轮播图", requiredMode = Schema.RequiredMode.REQUIRED, example = "[https://www.iocoder.cn/xx.png, https://www.iocoder.cn/xxx.png]") private List sliderPicUrls; @Schema(description = "商品视频", example = "https://www.iocoder.cn/xx.mp4") private String videoUrl; - @Schema(description = "单位", required = true, example = "1") + @Schema(description = "单位", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotNull(message = "商品单位不能为空") private Integer unit; - @Schema(description = "排序字段", required = true, example = "1") + @Schema(description = "排序字段", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotNull(message = "商品排序字段不能为空") private Integer sort; // ========== SKU 相关字段 ========= - @Schema(description = "规格类型", required = true, example = "true") + @Schema(description = "规格类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "true") @NotNull(message = "商品规格类型不能为空") private Boolean specType; // ========== 物流相关字段 ========= - @Schema(description = "物流配置模板编号", required = true, example = "111") + @Schema(description = "物流配置模板编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "111") @NotNull(message = "物流配置模板编号不能为空") private Long deliveryTemplateId; // ========== 营销相关字段 ========= - @Schema(description = "是否热卖推荐", required = true, example = "true") + @Schema(description = "是否热卖推荐", requiredMode = Schema.RequiredMode.REQUIRED, example = "true") @NotNull(message = "商品推荐不能为空") private Boolean recommendHot; - @Schema(description = "是否优惠推荐", required = true, example = "true") + @Schema(description = "是否优惠推荐", requiredMode = Schema.RequiredMode.REQUIRED, example = "true") @NotNull(message = "商品推荐不能为空") private Boolean recommendBenefit; - @Schema(description = "是否精品推荐", required = true, example = "true") + @Schema(description = "是否精品推荐", requiredMode = Schema.RequiredMode.REQUIRED, example = "true") @NotNull(message = "商品推荐不能为空") private Boolean recommendBest; - @Schema(description = "是否新品推荐", required = true, example = "true") + @Schema(description = "是否新品推荐", requiredMode = Schema.RequiredMode.REQUIRED, example = "true") @NotNull(message = "商品推荐不能为空") private Boolean recommendNew; - @Schema(description = "是否优品推荐", required = true, example = "true") + @Schema(description = "是否优品推荐", requiredMode = Schema.RequiredMode.REQUIRED, example = "true") @NotNull(message = "商品推荐不能为空") private Boolean recommendGood; - @Schema(description = "赠送积分", required = true, example = "111") + @Schema(description = "赠送积分", requiredMode = Schema.RequiredMode.REQUIRED, example = "111") @NotNull(message = "商品赠送积分不能为空") private Integer giveIntegral; @Schema(description = "赠送的优惠劵编号的数组", example = "[1, 10]") // TODO 这块前端还未实现 private List giveCouponTemplateIds; - @Schema(description = "分销类型", required = true, example = "true") + @Schema(description = "分销类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "true") @NotNull(message = "商品分销类型不能为空") private Boolean subCommissionType; diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/spu/vo/ProductSpuDetailRespVO.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/spu/vo/ProductSpuDetailRespVO.java index 0c63e43b1..eff229c9d 100644 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/spu/vo/ProductSpuDetailRespVO.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/spu/vo/ProductSpuDetailRespVO.java @@ -20,16 +20,16 @@ import java.util.List; @ToString(callSuper = true) public class ProductSpuDetailRespVO extends ProductSpuBaseVO { - @Schema(description = "商品 SPU 编号", required = true, example = "1212") + @Schema(description = "商品 SPU 编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1212") private Long id; - @Schema(description = "商品销量", required = true, example = "10000") + @Schema(description = "商品销量", requiredMode = Schema.RequiredMode.REQUIRED, example = "10000") private Integer salesCount; - @Schema(description = "浏览量", required = true, example = "20000") + @Schema(description = "浏览量", requiredMode = Schema.RequiredMode.REQUIRED, example = "20000") private Integer browseCount; - @Schema(description = "商品状态", required = true, example = "1") + @Schema(description = "商品状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Integer status; // ========== SKU 相关字段 ========= diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/spu/vo/ProductSpuExcelVO.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/spu/vo/ProductSpuExcelVO.java index 62da2747b..38cbd8472 100644 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/spu/vo/ProductSpuExcelVO.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/spu/vo/ProductSpuExcelVO.java @@ -44,9 +44,6 @@ public class ProductSpuExcelVO { @ExcelProperty("商品封面图") private String picUrl; - @ExcelProperty("商品轮播图地址") - private String sliderPicUrls; - @ExcelProperty("商品视频") private String videoUrl; @@ -97,15 +94,9 @@ public class ProductSpuExcelVO { @ExcelProperty("赠送积分") private Integer giveIntegral; - @ExcelProperty("赠送的优惠劵编号的数组") - private String giveCouponTemplateIds; - @ExcelProperty("分销类型") private Boolean subCommissionType; - @ExcelProperty("活动显示排序") - private String activityOrders; - @ExcelProperty("商品销量") private Integer salesCount; diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/spu/vo/ProductSpuPageReqVO.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/spu/vo/ProductSpuPageReqVO.java index cff3bf17c..d428164dd 100755 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/spu/vo/ProductSpuPageReqVO.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/spu/vo/ProductSpuPageReqVO.java @@ -1,7 +1,6 @@ package cn.iocoder.yudao.module.product.controller.admin.spu.vo; import cn.iocoder.yudao.framework.common.pojo.PageParam; -import cn.iocoder.yudao.framework.common.validation.InEnum; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; @@ -51,7 +50,7 @@ public class ProductSpuPageReqVO extends PageParam { @Schema(description = "商品名称", example = "清凉小短袖") private String name; - @Schema(description = "前端请求的tab类型", required = true, example = "1") + @Schema(description = "前端请求的tab类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Integer tabType; @Schema(description = "商品分类编号", example = "1") diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/spu/vo/ProductSpuRespVO.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/spu/vo/ProductSpuRespVO.java index 45736563c..346614ad0 100755 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/spu/vo/ProductSpuRespVO.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/spu/vo/ProductSpuRespVO.java @@ -18,28 +18,28 @@ import java.time.LocalDateTime; @ToString(callSuper = true) public class ProductSpuRespVO extends ProductSpuBaseVO { - @Schema(description = "spuId", required = true, example = "111") + @Schema(description = "spuId", requiredMode = Schema.RequiredMode.REQUIRED, example = "111") private Long id; - @Schema(description = "商品价格", required = true, example = "1999") + @Schema(description = "商品价格", requiredMode = Schema.RequiredMode.REQUIRED, example = "1999") private Integer price; - @Schema(description = "商品销量", required = true, example = "2000") + @Schema(description = "商品销量", requiredMode = Schema.RequiredMode.REQUIRED, example = "2000") private Integer salesCount; - @Schema(description = "市场价,单位使用:分", required = true, example = "199") + @Schema(description = "市场价,单位使用:分", requiredMode = Schema.RequiredMode.REQUIRED, example = "199") private Integer marketPrice; - @Schema(description = "成本价,单位使用:分", required = true, example = "19") + @Schema(description = "成本价,单位使用:分", requiredMode = Schema.RequiredMode.REQUIRED, example = "19") private Integer costPrice; - @Schema(description = "商品库存", required = true, example = "10000") + @Schema(description = "商品库存", requiredMode = Schema.RequiredMode.REQUIRED, example = "10000") private Integer stock; - @Schema(description = "商品创建时间", required = true, example = "2023-05-24 00:00:00") + @Schema(description = "商品创建时间", requiredMode = Schema.RequiredMode.REQUIRED, example = "2023-05-24 00:00:00") private LocalDateTime createTime; - @Schema(description = "商品状态", required = true, example = "1") + @Schema(description = "商品状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Integer status; } diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/spu/vo/ProductSpuSimpleRespVO.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/spu/vo/ProductSpuSimpleRespVO.java index 4ab766129..1c943a912 100755 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/spu/vo/ProductSpuSimpleRespVO.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/spu/vo/ProductSpuSimpleRespVO.java @@ -14,33 +14,33 @@ import lombok.ToString; @ToString(callSuper = true) public class ProductSpuSimpleRespVO { - @Schema(description = "主键", required = true, example = "213") + @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "213") private Long id; - @Schema(description = "商品名称", required = true, example = "清凉小短袖") + @Schema(description = "商品名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "清凉小短袖") private String name; - @Schema(description = "商品价格,单位使用:分", required = true, example = "1999") + @Schema(description = "商品价格,单位使用:分", requiredMode = Schema.RequiredMode.REQUIRED, example = "1999") private Integer price; - @Schema(description = "商品市场价,单位使用:分", required = true, example = "199") + @Schema(description = "商品市场价,单位使用:分", requiredMode = Schema.RequiredMode.REQUIRED, example = "199") private Integer marketPrice; - @Schema(description = "商品成本价,单位使用:分", required = true, example = "19") + @Schema(description = "商品成本价,单位使用:分", requiredMode = Schema.RequiredMode.REQUIRED, example = "19") private Integer costPrice; - @Schema(description = "商品库存", required = true, example = "2000") + @Schema(description = "商品库存", requiredMode = Schema.RequiredMode.REQUIRED, example = "2000") private Integer stock; // ========== 统计相关字段 ========= - @Schema(description = "商品销量", required = true, example = "200") + @Schema(description = "商品销量", requiredMode = Schema.RequiredMode.REQUIRED, example = "200") private Integer salesCount; - @Schema(description = "商品虚拟销量", required = true, example = "20000") + @Schema(description = "商品虚拟销量", requiredMode = Schema.RequiredMode.REQUIRED, example = "20000") private Integer virtualSalesCount; - @Schema(description = "商品浏览量", required = true, example = "2000") + @Schema(description = "商品浏览量", requiredMode = Schema.RequiredMode.REQUIRED, example = "2000") private Integer browseCount; } diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/spu/vo/ProductSpuUpdateReqVO.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/spu/vo/ProductSpuUpdateReqVO.java index f4bd3cdae..c7c424fa0 100755 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/spu/vo/ProductSpuUpdateReqVO.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/spu/vo/ProductSpuUpdateReqVO.java @@ -23,17 +23,17 @@ import java.util.List; @ToString(callSuper = true) public class ProductSpuUpdateReqVO extends ProductSpuBaseVO { - @Schema(description = "商品编号", required = true, example = "1") + @Schema(description = "商品编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotNull(message = "商品编号不能为空") private Long id; - @Schema(description = "商品销量", required = true, example = "1999") + @Schema(description = "商品销量", requiredMode = Schema.RequiredMode.REQUIRED, example = "1999") private Integer salesCount; - @Schema(description = "浏览量", required = true, example = "1999") + @Schema(description = "浏览量", requiredMode = Schema.RequiredMode.REQUIRED, example = "1999") private Integer browseCount; - @Schema(description = "商品状态", required = true, example = "1") + @Schema(description = "商品状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @InEnum(ProductSpuStatusEnum.class) private Integer status; diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/spu/vo/ProductSpuUpdateStatusReqVO.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/spu/vo/ProductSpuUpdateStatusReqVO.java index e5a52419e..57bda636c 100644 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/spu/vo/ProductSpuUpdateStatusReqVO.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/spu/vo/ProductSpuUpdateStatusReqVO.java @@ -1,16 +1,11 @@ package cn.iocoder.yudao.module.product.controller.admin.spu.vo; import cn.iocoder.yudao.framework.common.validation.InEnum; -import cn.iocoder.yudao.module.product.controller.admin.sku.vo.ProductSkuCreateOrUpdateReqVO; import cn.iocoder.yudao.module.product.enums.spu.ProductSpuStatusEnum; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.ToString; -import javax.validation.Valid; import javax.validation.constraints.NotNull; -import java.util.List; /** * 商品 SPU Status 更新 Request VO @@ -21,11 +16,11 @@ import java.util.List; @Data public class ProductSpuUpdateStatusReqVO{ - @Schema(description = "商品编号", required = true, example = "1") + @Schema(description = "商品编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotNull(message = "商品编号不能为空") private Long id; - @Schema(description = "商品状态", required = true, example = "1") + @Schema(description = "商品状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotNull(message = "商品状态不能为空") @InEnum(ProductSpuStatusEnum.class) private Integer status; diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/app/category/vo/AppCategoryRespVO.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/app/category/vo/AppCategoryRespVO.java index 1dca05a3a..02e5f171a 100644 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/app/category/vo/AppCategoryRespVO.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/app/category/vo/AppCategoryRespVO.java @@ -10,18 +10,18 @@ import javax.validation.constraints.NotNull; @Schema(description = "用户 APP - 商品分类 Response VO") public class AppCategoryRespVO { - @Schema(description = "分类编号", required = true, example = "2") + @Schema(description = "分类编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") private Long id; - @Schema(description = "父分类编号", required = true, example = "1") + @Schema(description = "父分类编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotNull(message = "父分类编号不能为空") private Long parentId; - @Schema(description = "分类名称", required = true, example = "办公文具") + @Schema(description = "分类名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "办公文具") @NotBlank(message = "分类名称不能为空") private String name; - @Schema(description = "分类图片", required = true) + @Schema(description = "分类图片", requiredMode = Schema.RequiredMode.REQUIRED) @NotBlank(message = "分类图片不能为空") private String picUrl; diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/app/comment/AppCommentController.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/app/comment/AppCommentController.java deleted file mode 100644 index 3c9359412..000000000 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/app/comment/AppCommentController.java +++ /dev/null @@ -1,130 +0,0 @@ -package cn.iocoder.yudao.module.product.controller.app.comment; - -import cn.hutool.core.map.MapUtil; -import cn.iocoder.yudao.framework.common.pojo.CommonResult; -import cn.iocoder.yudao.framework.common.pojo.PageResult; -import cn.iocoder.yudao.module.member.api.user.MemberUserApi; -import cn.iocoder.yudao.module.member.api.user.dto.MemberUserRespDTO; -import cn.iocoder.yudao.module.product.controller.app.comment.vo.AppCommentCreateReqVO; -import cn.iocoder.yudao.module.product.controller.app.comment.vo.AppCommentPageReqVO; -import cn.iocoder.yudao.module.product.controller.app.comment.vo.AppCommentRespVO; -import cn.iocoder.yudao.module.product.controller.app.property.vo.value.AppProductPropertyValueDetailRespVO; -import cn.iocoder.yudao.module.product.convert.comment.ProductCommentConvert; -import cn.iocoder.yudao.module.product.service.comment.ProductCommentService; -import io.swagger.v3.oas.annotations.Operation; -import io.swagger.v3.oas.annotations.Parameter; -import io.swagger.v3.oas.annotations.Parameters; -import io.swagger.v3.oas.annotations.tags.Tag; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.*; - -import javax.annotation.Resource; -import javax.validation.Valid; -import java.time.LocalDateTime; -import java.util.*; - -import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; -import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId; - -// TODO @puhui999:AppCommentController =》 AppProductCommentController -@Tag(name = "用户 APP - 商品评价") -@RestController -@RequestMapping("/product/comment") -@Validated -public class AppCommentController { - - @Resource - private ProductCommentService productCommentService; - - @Resource - private MemberUserApi memberUserApi; - - @GetMapping("/list") - @Operation(summary = "获得最近的 n 条商品评价") - @Parameters({ - @Parameter(name = "spuId", description = "商品 SPU 编号", required = true, example = "1024"), - @Parameter(name = "count", description = "数量", required = true, example = "10") - }) - public CommonResult> getCommentList(@RequestParam("spuId") Long spuId, - @RequestParam(value = "count", defaultValue = "10") Integer count) { - - List list = new ArrayList<>(); - - AppProductPropertyValueDetailRespVO item1 = new AppProductPropertyValueDetailRespVO(); - item1.setPropertyId(1L); - item1.setPropertyName("颜色"); - item1.setValueId(1024L); - item1.setValueName("红色"); - list.add(item1); - - AppProductPropertyValueDetailRespVO item2 = new AppProductPropertyValueDetailRespVO(); - item2.setPropertyId(2L); - item2.setPropertyName("尺寸"); - item2.setValueId(2048L); - item2.setValueName("大号"); - list.add(item2); - - AppProductPropertyValueDetailRespVO item3 = new AppProductPropertyValueDetailRespVO(); - item3.setPropertyId(3L); - item3.setPropertyName("重量"); - item3.setValueId(3072L); - item3.setValueName("500克"); - list.add(item3); - - // TODO 生成 mock 的数据 - AppCommentRespVO appCommentRespVO = new AppCommentRespVO(); - appCommentRespVO.setUserId((long) (new Random().nextInt(100000) + 10000)); - appCommentRespVO.setUserNickname("用户" + new Random().nextInt(100)); - appCommentRespVO.setUserAvatar("https://demo26.crmeb.net/uploads/attach/2021/11/15/a79f5d2ea6bf0c3c11b2127332dfe2df.jpg"); - appCommentRespVO.setId((long) (new Random().nextInt(100000) + 10000)); - appCommentRespVO.setAnonymous(new Random().nextBoolean()); - appCommentRespVO.setOrderId((long) (new Random().nextInt(100000) + 10000)); - appCommentRespVO.setOrderItemId((long) (new Random().nextInt(100000) + 10000)); - appCommentRespVO.setReplyStatus(new Random().nextBoolean()); - appCommentRespVO.setReplyUserId((long) (new Random().nextInt(100000) + 10000)); - appCommentRespVO.setReplyContent("回复内容" + new Random().nextInt(100)); - appCommentRespVO.setReplyTime(LocalDateTime.now().minusDays(new Random().nextInt(30))); - appCommentRespVO.setCreateTime(LocalDateTime.now().minusDays(new Random().nextInt(30))); - appCommentRespVO.setFinalScore(new Random().nextInt(5) + 1); - appCommentRespVO.setSpuId((long) (new Random().nextInt(100000) + 10000)); - appCommentRespVO.setSpuName("商品" + new Random().nextInt(100)); - appCommentRespVO.setSkuId((long) (new Random().nextInt(100000) + 10000)); - appCommentRespVO.setSkuProperties(list); - appCommentRespVO.setScores(new Random().nextInt(5) + 1); - appCommentRespVO.setDescriptionScores(new Random().nextInt(5) + 1); - appCommentRespVO.setBenefitScores(new Random().nextInt(5) + 1); - appCommentRespVO.setContent("评论内容" + new Random().nextInt(100)); - appCommentRespVO.setPicUrls(Arrays.asList("https://demo26.crmeb.net/uploads/attach/2021/11/15/a79f5d2ea6bf0c3c11b2127332dfe2df.jpg")); - - return success(Arrays.asList(appCommentRespVO)); - } - - @GetMapping("/page") - @Operation(summary = "获得商品评价分页") - public CommonResult> getCommentPage(@Valid AppCommentPageReqVO pageVO) { - return success(productCommentService.getCommentPage(pageVO, Boolean.TRUE)); - } - - // TODO @puhui999:方法名改成 getCommentStatistics?然后搞个对应的 vo?想了下,这样更优雅 - @GetMapping("/statistics") - @Operation(summary = "获得商品的评价统计") // TODO @puhui999:@RequestParam 哈,针对 spuId - public CommonResult> getCommentStatistics(@Valid Long spuId) { - // TODO 生成 mock 的数据 - if (true) { - return success(MapUtil.builder("allCount", 10L).put("goodPercent", "10.33").build()); - } - return null; -// return success(productCommentService.getCommentPageTabsCount(spuId, Boolean.TRUE)); - } - - @PostMapping(value = "/create") - @Operation(summary = "创建商品评价") - public CommonResult createComment(@RequestBody AppCommentCreateReqVO createReqVO) { - // TODO: 2023/3/20 要不要判断订单、商品是否存在 - // TODO @ouhui999:这个接口,搞到交易那比较合适; - MemberUserRespDTO user = memberUserApi.getUser(getLoginUserId()); - productCommentService.createComment(ProductCommentConvert.INSTANCE.convert(user, createReqVO), Boolean.FALSE); - return success(true); - } - -} diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/app/comment/AppProductCommentController.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/app/comment/AppProductCommentController.java new file mode 100644 index 000000000..f13ab1e9e --- /dev/null +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/app/comment/AppProductCommentController.java @@ -0,0 +1,94 @@ +package cn.iocoder.yudao.module.product.controller.app.comment; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.product.controller.app.comment.vo.AppCommentPageReqVO; +import cn.iocoder.yudao.module.product.controller.app.comment.vo.AppCommentStatisticsRespVO; +import cn.iocoder.yudao.module.product.controller.app.comment.vo.AppProductCommentRespVO; +import cn.iocoder.yudao.module.product.controller.app.property.vo.value.AppProductPropertyValueDetailRespVO; +import cn.iocoder.yudao.module.product.convert.comment.ProductCommentConvert; +import cn.iocoder.yudao.module.product.dal.dataobject.comment.ProductCommentDO; +import cn.iocoder.yudao.module.product.dal.dataobject.sku.ProductSkuDO; +import cn.iocoder.yudao.module.product.service.comment.ProductCommentService; +import cn.iocoder.yudao.module.product.service.sku.ProductSkuService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Parameters; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.context.annotation.Lazy; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import javax.validation.Valid; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.stream.Collectors; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +@Tag(name = "用户 APP - 商品评价") +@RestController +@RequestMapping("/product/comment") +@Validated +public class AppProductCommentController { + + @Resource + private ProductCommentService productCommentService; + + @Resource + @Lazy + private ProductSkuService productSkuService; + + @GetMapping("/list") + @Operation(summary = "获得最近的 n 条商品评价") + @Parameters({ + @Parameter(name = "spuId", description = "商品 SPU 编号", required = true, example = "1024"), + @Parameter(name = "count", description = "数量", required = true, example = "10") + }) + public CommonResult> getCommentList(@RequestParam("spuId") Long spuId, + @RequestParam(value = "count", defaultValue = "10") Integer count) { + return success(productCommentService.getCommentList(spuId, count)); + } + + @GetMapping("/page") + @Operation(summary = "获得商品评价分页") + public CommonResult> getCommentPage(@Valid AppCommentPageReqVO pageVO) { + PageResult page = productCommentService.getCommentPage(pageVO, Boolean.TRUE); + // TODO @puhui CollUtils 有简化 convertmap 和 list 的方法 + Set skuIds = page.getList().stream().map(AppProductCommentRespVO::getSkuId).collect(Collectors.toSet()); + List skuList = productSkuService.getSkuList(skuIds); + Map skuDOMap = new HashMap<>(skuIds.size()); + if (CollUtil.isNotEmpty(skuList)) { + skuDOMap.putAll(skuList.stream().collect(Collectors.toMap(ProductSkuDO::getId, c -> c))); + } + // TODO @puihui999:下面也可以放到 convert 里哈 + page.getList().forEach(item -> { + // 判断用户是否选择匿名 + if (ObjectUtil.equal(item.getAnonymous(), true)) { + item.setUserNickname(ProductCommentDO.NICKNAME_ANONYMOUS); + } + ProductSkuDO productSkuDO = skuDOMap.get(item.getSkuId()); + if (productSkuDO != null) { + List skuProperties = ProductCommentConvert.INSTANCE.convertList01(productSkuDO.getProperties()); + item.setSkuProperties(skuProperties); + } + }); + return success(page); + } + + // TODO 芋艿:需要搞下 + @GetMapping("/getCommentStatistics") + @Operation(summary = "获得商品的评价统计") + public CommonResult getCommentStatistics(@Valid @RequestParam("spuId") Long spuId) { + return success(productCommentService.getCommentStatistics(spuId, Boolean.TRUE)); + } + +} diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/app/comment/vo/AppCommentBaseVO.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/app/comment/vo/AppCommentBaseVO.java deleted file mode 100644 index 12910f25e..000000000 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/app/comment/vo/AppCommentBaseVO.java +++ /dev/null @@ -1,50 +0,0 @@ -package cn.iocoder.yudao.module.product.controller.app.comment.vo; - -import cn.iocoder.yudao.module.product.controller.app.property.vo.value.AppProductPropertyValueDetailRespVO; -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.Data; - -import javax.validation.constraints.NotNull; -import javax.validation.constraints.Size; -import java.util.List; - -// TODO @puhui999:C 端可以不要 base 哈。 -@Data -public class AppCommentBaseVO { - - @Schema(description = "商品SPU编号", required = true, example = "29502") - @NotNull(message = "商品SPU编号不能为空") - private Long spuId; - - @Schema(description = "商品SPU名称", required = true, example = "赵六") - @NotNull(message = "商品SPU名称不能为空") - private String spuName; - - @Schema(description = "商品SKU编号", required = true, example = "3082") - @NotNull(message = "商品SKU编号不能为空") - private Long skuId; - - @Schema(description = "商品 SKU 属性", required = true) - private List skuProperties; // TODO puhui999:这个需要从数据库查询哈 - - @Schema(description = "评分星级 1-5分", required = true) - @NotNull(message = "评分星级 1-5分不能为空") - private Integer scores; - - @Schema(description = "描述星级 1-5分", required = true) - @NotNull(message = "描述星级 1-5分不能为空") - private Integer descriptionScores; - - @Schema(description = "服务星级 1-5分", required = true) - @NotNull(message = "服务星级 1-5分不能为空") - private Integer benefitScores; - - @Schema(description = "评论内容", required = true) - @NotNull(message = "评论内容不能为空") - private String content; - - @Schema(description = "评论图片地址数组,以逗号分隔最多上传9张", required = true) - @Size(max = 9, message = "评论图片地址数组长度不能超过9张") - private List picUrls; - -} diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/app/comment/vo/AppCommentCreateReqVO.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/app/comment/vo/AppCommentCreateReqVO.java deleted file mode 100644 index 6eb8e89e3..000000000 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/app/comment/vo/AppCommentCreateReqVO.java +++ /dev/null @@ -1,31 +0,0 @@ -package cn.iocoder.yudao.module.product.controller.app.comment.vo; - -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.ToString; - -import javax.validation.constraints.NotNull; - -// TODO @puhui999:不应该继承 AppCommentCreateReqVO -@Schema(description = "用户APP - 商品评价创建 Request VO") -@Data -@EqualsAndHashCode(callSuper = true) -@ToString(callSuper = true) -public class AppCommentCreateReqVO extends AppCommentBaseVO { - - @Schema(description = "是否匿名", required = true, example = "true") - @NotNull(message = "是否匿名不能为空") - private Boolean anonymous; - - // TODO @puhui999:不应该传递 orderId - - @Schema(description = "交易订单编号", required = true, example = "12312") - @NotNull(message = "交易订单编号不能为空") - private Long orderId; - - @Schema(description = "交易订单项编号", required = true, example = "2312312") - @NotNull(message = "交易订单项编号不能为空") - private Long orderItemId; - -} diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/app/comment/vo/AppCommentPageReqVO.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/app/comment/vo/AppCommentPageReqVO.java index d2bf4ef99..a81dcc3eb 100644 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/app/comment/vo/AppCommentPageReqVO.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/app/comment/vo/AppCommentPageReqVO.java @@ -8,61 +8,25 @@ import lombok.ToString; import javax.validation.constraints.NotNull; -@Schema(description = "用户APP - 商品评价分页 Request VO") +@Schema(description = "用户 App - 商品评价分页 Request VO") @Data @EqualsAndHashCode(callSuper = true) @ToString(callSuper = true) public class AppCommentPageReqVO extends PageParam { - // TODO @puhui999:不传递就是 all; - /** - * 所有 - */ - public static final Integer ALL = 0; - - /** - * 所有数量 key - */ - public static final String ALL_COUNT = "allCount"; - - // TODO @puhui999:good 好评; /** * 好评 */ - public static final Integer FAVOURABLE_COMMENT = 1; - - // TODO @puhui999:medium 中评;然后 mediumCount 就好啦; - /** - * 好评数量 key - */ - public static final String FAVOURABLE_COMMENT_COUNT = "favourableCommentCount"; - + public static final Integer GOOD_COMMENT = 1; /** * 中评 */ public static final Integer MEDIOCRE_COMMENT = 2; - - /** - * 中评数量 key - */ - public static final String MEDIOCRE_COMMENT_COUNT = "mediocreCommentCount"; - /** * 差评 */ public static final Integer NEGATIVE_COMMENT = 3; - /** - * 差评数量 key - */ - public static final String NEGATIVE_COMMENT_COUNT = "negativeCommentCount"; - - // TODO @puhui999:这个挪到 DO 那没问题的哈;NICKNAME_ANONYMOUS - /** - * 默认匿名昵称 - */ - public static final String ANONYMOUS_NICKNAME = "匿名用户"; - @Schema(description = "商品SPU编号", example = "29502") @NotNull(message = "商品SPU编号不能为空") private Long spuId; diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/app/comment/vo/AppCommentRespVO.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/app/comment/vo/AppCommentRespVO.java deleted file mode 100644 index 69456030b..000000000 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/app/comment/vo/AppCommentRespVO.java +++ /dev/null @@ -1,57 +0,0 @@ -package cn.iocoder.yudao.module.product.controller.app.comment.vo; - -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.ToString; - -import java.time.LocalDateTime; - -@Schema(description = "用户APP - 商品评价 Response VO") -@Data -@EqualsAndHashCode(callSuper = true) -@ToString(callSuper = true) -public class AppCommentRespVO extends AppCommentBaseVO { - - // TODO puhui999:把 example 也补充下哈 - - @Schema(description = "评价人的用户编号", required = true, example = "15721") - private Long userId; - - @Schema(description = "评价人名称", required = true, example = "张三") - private String userNickname; - - @Schema(description = "评价人头像", required = true) - private String userAvatar; - - @Schema(description = "订单项编号", required = true, example = "24965") - private Long id; - - @Schema(description = "是否匿名", required = true) - private Boolean anonymous; - - @Schema(description = "交易订单编号", required = true, example = "24428") - private Long orderId; - - @Schema(description = "交易订单项编号", required = true, example = "8233") - private Long orderItemId; - - @Schema(description = "商家是否回复", required = true) - private Boolean replyStatus; - - @Schema(description = "回复管理员编号", example = "22212") - private Long replyUserId; - - @Schema(description = "商家回复内容") - private String replyContent; - - @Schema(description = "商家回复时间") - private LocalDateTime replyTime; - - @Schema(description = "创建时间", required = true) - private LocalDateTime createTime; - - @Schema(description = "最终评分", required = true) - private Integer finalScore; - -} diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/app/comment/vo/AppCommentStatisticsRespVO.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/app/comment/vo/AppCommentStatisticsRespVO.java new file mode 100644 index 000000000..4e2a14a8d --- /dev/null +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/app/comment/vo/AppCommentStatisticsRespVO.java @@ -0,0 +1,24 @@ +package cn.iocoder.yudao.module.product.controller.app.comment.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.ToString; + +@Schema(description = "APP - 商品评价页评论分类数统计 Response VO") +@Data +@ToString(callSuper = true) +public class AppCommentStatisticsRespVO { + + @Schema(description = "所有评论数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "15721") + private Long allCount; + + @Schema(description = "好评数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "15721") + private Long goodCount; + + @Schema(description = "中评数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "15721") + private Long mediocreCount; + + @Schema(description = "差评数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "15721") + private Long negativeCount; + +} diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/app/comment/vo/AppProductCommentRespVO.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/app/comment/vo/AppProductCommentRespVO.java new file mode 100644 index 000000000..d13a2b0ac --- /dev/null +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/app/comment/vo/AppProductCommentRespVO.java @@ -0,0 +1,103 @@ +package cn.iocoder.yudao.module.product.controller.app.comment.vo; + +import cn.iocoder.yudao.module.product.controller.app.property.vo.value.AppProductPropertyValueDetailRespVO; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.ToString; + +import javax.validation.constraints.NotNull; +import javax.validation.constraints.Size; +import java.time.LocalDateTime; +import java.util.List; + +/** + * 用户 App - 商品评价详情 Response VO + * + * @author HUIHUI + */ +@Schema(description = "用户 App - 商品评价详情 Response VO") +@Data +@ToString(callSuper = true) +public class AppProductCommentRespVO { + + @Schema(description = "评价人的用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "15721") + private Long userId; + + @Schema(description = "评价人名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三") + private String userNickname; + + @Schema(description = "评价人头像", requiredMode = Schema.RequiredMode.REQUIRED, example = "https://www.iocoder.cn/xx.png") + private String userAvatar; + + @Schema(description = "订单项编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "24965") + private Long id; + + @Schema(description = "是否匿名", requiredMode = Schema.RequiredMode.REQUIRED, example = "false") + private Boolean anonymous; + + @Schema(description = "交易订单编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "24428") + private Long orderId; + + @Schema(description = "交易订单项编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "8233") + private Long orderItemId; + + @Schema(description = "商家是否回复", requiredMode = Schema.RequiredMode.REQUIRED, example = "true") + private Boolean replyStatus; + + @Schema(description = "回复管理员编号", example = "22212") + private Long replyUserId; + + @Schema(description = "商家回复内容", example = "亲,你的好评就是我的动力(*^▽^*)") + private String replyContent; + + @Schema(description = "商家回复时间") + private LocalDateTime replyTime; + + @Schema(description = "追加评价内容", example = "穿了很久都很丝滑诶") + private String additionalContent; + + @Schema(description = "追评评价图片地址数组,以逗号分隔最多上传 9 张", example = "[https://www.iocoder.cn/xx.png, https://www.iocoder.cn/xxx.png]") + private List additionalPicUrls; + + @Schema(description = "追加评价时间") + private LocalDateTime additionalTime; + + @Schema(description = "创建时间") + private LocalDateTime createTime; + + @Schema(description = "商品 SPU 编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "91192") + @NotNull(message = "商品 SPU 编号不能为空") + private Long spuId; + + @Schema(description = "商品 SPU 名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "清凉丝滑小短袖") + @NotNull(message = "商品 SPU 名称不能为空") + private String spuName; + + @Schema(description = "商品 SKU 编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "81192") + @NotNull(message = "商品 SKU 编号不能为空") + private Long skuId; + + @Schema(description = "商品 SKU 属性", requiredMode = Schema.RequiredMode.REQUIRED) + private List skuProperties; + + @Schema(description = "评分星级 1-5 分", requiredMode = Schema.RequiredMode.REQUIRED, example = "5") + @NotNull(message = "评分星级 1-5 分不能为空") + private Integer scores; + + @Schema(description = "描述星级 1-5 分", requiredMode = Schema.RequiredMode.REQUIRED, example = "5") + @NotNull(message = "描述星级 1-5 分不能为空") + private Integer descriptionScores; + + @Schema(description = "服务星级 1-5 分", requiredMode = Schema.RequiredMode.REQUIRED, example = "5") + @NotNull(message = "服务星级 1-5 分不能为空") + private Integer benefitScores; + + @Schema(description = "评论内容", requiredMode = Schema.RequiredMode.REQUIRED, example = "哇,真的很丝滑凉快诶,好评") + @NotNull(message = "评论内容不能为空") + private String content; + + @Schema(description = "评论图片地址数组,以逗号分隔最多上传 9 张", requiredMode = Schema.RequiredMode.REQUIRED, example = "[https://www.iocoder.cn/xx.png]") + @Size(max = 9, message = "评论图片地址数组长度不能超过 9 张") + private List picUrls; + +} diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/app/favorite/vo/AppFavoritePageReqVO.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/app/favorite/vo/AppFavoritePageReqVO.java index cdf8257c3..2aacc3e54 100644 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/app/favorite/vo/AppFavoritePageReqVO.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/app/favorite/vo/AppFavoritePageReqVO.java @@ -4,7 +4,7 @@ import cn.iocoder.yudao.framework.common.pojo.PageParam; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; -@Schema(description = "用户APP - 商品收藏分页查询 Request VO") +@Schema(description = "用户 App - 商品收藏分页查询 Request VO") @Data public class AppFavoritePageReqVO extends PageParam { } diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/app/favorite/vo/AppFavoriteRespVO.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/app/favorite/vo/AppFavoriteRespVO.java index 399e1fb0a..db2ea90a4 100644 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/app/favorite/vo/AppFavoriteRespVO.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/app/favorite/vo/AppFavoriteRespVO.java @@ -4,7 +4,7 @@ import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import static io.swagger.v3.oas.annotations.media.Schema.RequiredMode.REQUIRED; -@Schema(description = "用户APP - 商品收藏 Response VO") +@Schema(description = "用户 App - 商品收藏 Response VO") @Data public class AppFavoriteRespVO { diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/app/property/vo/value/AppProductPropertyValueDetailRespVO.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/app/property/vo/value/AppProductPropertyValueDetailRespVO.java index ac687e547..5cac09143 100644 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/app/property/vo/value/AppProductPropertyValueDetailRespVO.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/app/property/vo/value/AppProductPropertyValueDetailRespVO.java @@ -7,16 +7,16 @@ import lombok.Data; @Data public class AppProductPropertyValueDetailRespVO { - @Schema(description = "属性的编号", required = true, example = "1") + @Schema(description = "属性的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Long propertyId; - @Schema(description = "属性的名称", required = true, example = "颜色") + @Schema(description = "属性的名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "颜色") private String propertyName; - @Schema(description = "属性值的编号", required = true, example = "1024") + @Schema(description = "属性值的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private Long valueId; - @Schema(description = "属性值的名称", required = true, example = "红色") + @Schema(description = "属性值的名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "红色") private String valueName; } diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/app/spu/vo/AppProductSpuDetailRespVO.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/app/spu/vo/AppProductSpuDetailRespVO.java index 60f1c6c57..c890a7961 100644 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/app/spu/vo/AppProductSpuDetailRespVO.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/app/spu/vo/AppProductSpuDetailRespVO.java @@ -10,55 +10,55 @@ import java.util.List; @Data public class AppProductSpuDetailRespVO { - @Schema(description = "商品 SPU 编号", required = true, example = "1") + @Schema(description = "商品 SPU 编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Long id; // ========== 基本信息 ========= - @Schema(description = "商品名称", required = true, example = "芋道") + @Schema(description = "商品名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道") private String name; - @Schema(description = "商品简介", required = true, example = "我是一个快乐简介") + @Schema(description = "商品简介", requiredMode = Schema.RequiredMode.REQUIRED, example = "我是一个快乐简介") private String introduction; - @Schema(description = "商品详情", required = true, example = "我是商品描述") + @Schema(description = "商品详情", requiredMode = Schema.RequiredMode.REQUIRED, example = "我是商品描述") private String description; - @Schema(description = "商品分类编号", required = true, example = "1") + @Schema(description = "商品分类编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Long categoryId; - @Schema(description = "商品封面图", required = true) + @Schema(description = "商品封面图", requiredMode = Schema.RequiredMode.REQUIRED) private String picUrl; - @Schema(description = "商品轮播图", required = true) + @Schema(description = "商品轮播图", requiredMode = Schema.RequiredMode.REQUIRED) private List sliderPicUrls; - @Schema(description = "商品视频", required = true) + @Schema(description = "商品视频", requiredMode = Schema.RequiredMode.REQUIRED) private String videoUrl; - @Schema(description = "单位名", required = true, example = "个") + @Schema(description = "单位名", requiredMode = Schema.RequiredMode.REQUIRED, example = "个") private String unitName; // ========== 营销相关字段 ========= - @Schema(description = "活动排序数组", required = true, example = "1024") + @Schema(description = "活动排序数组", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private List activityOrders; // ========== SKU 相关字段 ========= - @Schema(description = "规格类型", required = true, example = "true") + @Schema(description = "规格类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "true") private Boolean specType; - @Schema(description = "商品价格,单位使用:分", required = true, example = "1024") + @Schema(description = "商品价格,单位使用:分", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private Integer price; - @Schema(description = "市场价,单位使用:分", required = true, example = "1024") + @Schema(description = "市场价,单位使用:分", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private Integer marketPrice; - @Schema(description = "VIP 价格,单位使用:分", required = true, example = "968") // 通过会员等级,计算出折扣后价格 + @Schema(description = "VIP 价格,单位使用:分", requiredMode = Schema.RequiredMode.REQUIRED, example = "968") // 通过会员等级,计算出折扣后价格 private Integer vipPrice; - @Schema(description = "库存", required = true, example = "666") + @Schema(description = "库存", requiredMode = Schema.RequiredMode.REQUIRED, example = "666") private Integer stock; /** @@ -68,7 +68,7 @@ public class AppProductSpuDetailRespVO { // ========== 统计相关字段 ========= - @Schema(description = "商品销量", required = true, example = "1024") + @Schema(description = "商品销量", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private Integer salesCount; @Schema(description = "用户 App - 商品 SPU 明细的 SKU 信息") @@ -83,19 +83,19 @@ public class AppProductSpuDetailRespVO { */ private List properties; - @Schema(description = "销售价格,单位:分", required = true, example = "1024") + @Schema(description = "销售价格,单位:分", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private Integer price; - @Schema(description = "市场价,单位使用:分", required = true, example = "1024") + @Schema(description = "市场价,单位使用:分", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private Integer marketPrice; - @Schema(description = "VIP 价格,单位使用:分", required = true, example = "968") // 通过会员等级,计算出折扣后价格 + @Schema(description = "VIP 价格,单位使用:分", requiredMode = Schema.RequiredMode.REQUIRED, example = "968") // 通过会员等级,计算出折扣后价格 private Integer vipPrice; - @Schema(description = "图片地址", required = true, example = "https://www.iocoder.cn/xx.png") + @Schema(description = "图片地址", requiredMode = Schema.RequiredMode.REQUIRED, example = "https://www.iocoder.cn/xx.png") private String picUrl; - @Schema(description = "库存", required = true, example = "1") + @Schema(description = "库存", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Integer stock; @Schema(description = "商品重量", example = "1") // 单位:kg 千克 diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/app/spu/vo/AppProductSpuPageReqVO.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/app/spu/vo/AppProductSpuPageReqVO.java index 653ca5215..30a545b37 100644 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/app/spu/vo/AppProductSpuPageReqVO.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/app/spu/vo/AppProductSpuPageReqVO.java @@ -20,6 +20,9 @@ public class AppProductSpuPageReqVO extends PageParam { public static final String SORT_FIELD_SALES_COUNT = "salesCount"; public static final String RECOMMEND_TYPE_HOT = "hot"; + public static final String RECOMMEND_TYPE_BENEFIT = "benefit"; + public static final String RECOMMEND_TYPE_BEST = "best"; + public static final String RECOMMEND_TYPE_NEW = "new"; public static final String RECOMMEND_TYPE_GOOD = "good"; @Schema(description = "分类编号", example = "1") diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/app/spu/vo/AppProductSpuPageRespVO.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/app/spu/vo/AppProductSpuPageRespVO.java index 85658b0e7..c4a66afd2 100644 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/app/spu/vo/AppProductSpuPageRespVO.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/app/spu/vo/AppProductSpuPageRespVO.java @@ -9,40 +9,49 @@ import java.util.List; @Data public class AppProductSpuPageRespVO { - @Schema(description = "商品 SPU 编号", required = true, example = "1") + @Schema(description = "商品 SPU 编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Long id; - @Schema(description = "商品名称", required = true, example = "芋道") + @Schema(description = "商品名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道") private String name; - @Schema(description = "分类编号", required = true) + @Schema(description = "分类编号", requiredMode = Schema.RequiredMode.REQUIRED) private Long categoryId; - @Schema(description = "商品封面图", required = true) + @Schema(description = "商品封面图", requiredMode = Schema.RequiredMode.REQUIRED) private String picUrl; - @Schema(description = "商品轮播图", required = true) + @Schema(description = "商品轮播图", requiredMode = Schema.RequiredMode.REQUIRED) private List sliderPicUrls; + @Schema(description = "单位名", requiredMode = Schema.RequiredMode.REQUIRED, example = "个") + private String unitName; + // ========== SKU 相关字段 ========= - @Schema(description = "规格类型", required = true, example = "true") + @Schema(description = "规格类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "true") private Boolean specType; - @Schema(description = "商品价格,单位使用:分", required = true, example = "1024") + @Schema(description = "商品价格,单位使用:分", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private Integer price; - @Schema(description = "库存", required = true, example = "666") + @Schema(description = "市场价,单位使用:分", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + private Integer marketPrice; + + @Schema(description = "VIP 价格,单位使用:分", requiredMode = Schema.RequiredMode.REQUIRED, example = "968") // 通过会员等级,计算出折扣后价格 + private Integer vipPrice; + + @Schema(description = "库存", requiredMode = Schema.RequiredMode.REQUIRED, example = "666") private Integer stock; // ========== 营销相关字段 ========= - @Schema(description = "活动排序数组", required = true, example = "1024") + @Schema(description = "活动排序数组", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private List activityOrders; // ========== 统计相关字段 ========= - @Schema(description = "商品销量", required = true, example = "1024") + @Schema(description = "商品销量", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private Integer salesCount; } diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/convert/comment/ProductCommentConvert.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/convert/comment/ProductCommentConvert.java index 77f208214..14cc34e6a 100644 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/convert/comment/ProductCommentConvert.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/convert/comment/ProductCommentConvert.java @@ -2,14 +2,22 @@ package cn.iocoder.yudao.module.product.convert.comment; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.module.member.api.user.dto.MemberUserRespDTO; +import cn.iocoder.yudao.module.product.api.comment.dto.ProductCommentCreateReqDTO; import cn.iocoder.yudao.module.product.controller.admin.comment.vo.ProductCommentCreateReqVO; import cn.iocoder.yudao.module.product.controller.admin.comment.vo.ProductCommentRespVO; -import cn.iocoder.yudao.module.product.controller.app.comment.vo.AppCommentCreateReqVO; -import cn.iocoder.yudao.module.product.controller.app.comment.vo.AppCommentRespVO; +import cn.iocoder.yudao.module.product.controller.app.comment.vo.AppCommentStatisticsRespVO; +import cn.iocoder.yudao.module.product.controller.app.comment.vo.AppProductCommentRespVO; +import cn.iocoder.yudao.module.product.controller.app.property.vo.value.AppProductPropertyValueDetailRespVO; import cn.iocoder.yudao.module.product.dal.dataobject.comment.ProductCommentDO; +import cn.iocoder.yudao.module.product.dal.dataobject.sku.ProductSkuDO; +import cn.iocoder.yudao.module.product.dal.dataobject.spu.ProductSpuDO; import org.mapstruct.Mapper; +import org.mapstruct.Mapping; +import org.mapstruct.Named; import org.mapstruct.factory.Mappers; +import java.math.BigDecimal; +import java.math.RoundingMode; import java.util.List; /** @@ -24,50 +32,56 @@ public interface ProductCommentConvert { ProductCommentRespVO convert(ProductCommentDO bean); + // TODO @puhui999:这里貌似字段对上,就不用 mapping 了;可以测试下看看哈 + @Mapping(target = "allCount", source = "allCount") + @Mapping(target = "goodCount", source = "goodCount") + @Mapping(target = "mediocreCount", source = "mediocreCount") + @Mapping(target = "negativeCount", source = "negativeCount") + AppCommentStatisticsRespVO convert(Long allCount, Long goodCount, Long mediocreCount, Long negativeCount); + List convertList(List list); + List convertList01(List properties); + PageResult convertPage(PageResult page); - PageResult convertPage02(PageResult pageResult); + PageResult convertPage02(PageResult pageResult); - // TODO @puhui999:用 mapstruct 的映射 - default ProductCommentDO convert(MemberUserRespDTO user, AppCommentCreateReqVO createReqVO) { - ProductCommentDO productComment = new ProductCommentDO(); - productComment.setUserId(user.getId()); - productComment.setUserNickname(user.getNickname()); - productComment.setUserAvatar(user.getAvatar()); - productComment.setAnonymous(createReqVO.getAnonymous()); - productComment.setOrderId(createReqVO.getOrderId()); - productComment.setOrderItemId(createReqVO.getOrderItemId()); - productComment.setSpuId(createReqVO.getSpuId()); - productComment.setSpuName(createReqVO.getSpuName()); - productComment.setSkuId(createReqVO.getSkuId()); - productComment.setScores(createReqVO.getScores()); - productComment.setDescriptionScores(createReqVO.getDescriptionScores()); - productComment.setBenefitScores(createReqVO.getBenefitScores()); - productComment.setContent(createReqVO.getContent()); - productComment.setPicUrls(createReqVO.getPicUrls()); - return productComment; + /** + * 计算综合评分 + * + * @param descriptionScores 描述星级 + * @param benefitScores 服务星级 + * @return 综合评分 + */ + @Named("convertScores") + default Integer convertScores(Integer descriptionScores, Integer benefitScores) { + // 计算评价最终综合评分 最终星数 = (商品评星 + 服务评星) / 2 + BigDecimal sumScore = new BigDecimal(descriptionScores + benefitScores); + BigDecimal divide = sumScore.divide(BigDecimal.valueOf(2L), 0, RoundingMode.DOWN); + return divide.intValue(); } - // TODO @puhui999:用 mapstruct 的映射 - default ProductCommentDO convert(ProductCommentCreateReqVO createReq) { - ProductCommentDO productComment = new ProductCommentDO(); - productComment.setUserId(0L); - productComment.setUserNickname(createReq.getUserNickname()); - productComment.setUserAvatar(createReq.getUserAvatar()); - productComment.setAnonymous(Boolean.FALSE); - productComment.setOrderId(0L); - productComment.setOrderItemId(0L); - productComment.setSpuId(createReq.getSpuId()); - productComment.setSpuName(createReq.getSpuName()); - productComment.setSkuId(createReq.getSkuId()); - productComment.setScores(createReq.getScores()); - productComment.setDescriptionScores(createReq.getDescriptionScores()); - productComment.setBenefitScores(createReq.getBenefitScores()); - productComment.setContent(createReq.getContent()); - productComment.setPicUrls(createReq.getPicUrls()); - return productComment; + ProductCommentDO convert(ProductCommentCreateReqDTO createReqDTO); + + @Mapping(target = "scores", expression = "java(convertScores(createReqDTO.getDescriptionScores(), createReqDTO.getBenefitScores()))") + default ProductCommentDO convert(ProductCommentCreateReqDTO createReqDTO, ProductSpuDO spuDO, MemberUserRespDTO user) { + ProductCommentDO commentDO = convert(createReqDTO); + commentDO.setUserId(user.getId()); + commentDO.setUserNickname(user.getNickname()); + commentDO.setUserAvatar(user.getAvatar()); + commentDO.setSpuId(spuDO.getId()); + commentDO.setSpuName(spuDO.getName()); + return commentDO; } + @Mapping(target = "userId", constant = "0L") + @Mapping(target = "orderId", constant = "0L") + @Mapping(target = "orderItemId", constant = "0L") + @Mapping(target = "anonymous", expression = "java(Boolean.FALSE)") + @Mapping(target = "scores", expression = "java(convertScores(createReq.getDescriptionScores(), createReq.getBenefitScores()))") + ProductCommentDO convert(ProductCommentCreateReqVO createReq); + + List convertList02(List list); + } diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/convert/spu/ProductSpuConvert.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/convert/spu/ProductSpuConvert.java index f525f3134..aaad240a4 100755 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/convert/spu/ProductSpuConvert.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/convert/spu/ProductSpuConvert.java @@ -1,13 +1,12 @@ package cn.iocoder.yudao.module.product.convert.spu; -import cn.hutool.core.util.StrUtil; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.dict.core.util.DictFrameworkUtils; import cn.iocoder.yudao.module.product.api.spu.dto.ProductSpuRespDTO; import cn.iocoder.yudao.module.product.controller.admin.spu.vo.*; import cn.iocoder.yudao.module.product.controller.app.spu.vo.AppProductSpuDetailRespVO; -import cn.iocoder.yudao.module.product.controller.app.spu.vo.AppProductSpuPageRespVO; import cn.iocoder.yudao.module.product.controller.app.spu.vo.AppProductSpuPageReqVO; +import cn.iocoder.yudao.module.product.controller.app.spu.vo.AppProductSpuPageRespVO; import cn.iocoder.yudao.module.product.convert.sku.ProductSkuConvert; import cn.iocoder.yudao.module.product.dal.dataobject.sku.ProductSkuDO; import cn.iocoder.yudao.module.product.dal.dataobject.spu.ProductSpuDO; @@ -46,20 +45,6 @@ public interface ProductSpuConvert { List convertList02(List list); - /** - * 列表转字符串 - * - * @param list 列表 - * @return 字符串 - */ - @Named("convertListToString") - default String convertListToString(List list) { - return StrUtil.toString(list); - } - - @Mapping(source = "sliderPicUrls", target = "sliderPicUrls", qualifiedByName = "convertListToString") - @Mapping(source = "giveCouponTemplateIds", target = "giveCouponTemplateIds", qualifiedByName = "convertListToString") - @Mapping(source = "activityOrders", target = "activityOrders", qualifiedByName = "convertListToString") @Mapping(target = "price", expression = "java(spu.getPrice() / 100)") @Mapping(target = "marketPrice", expression = "java(spu.getMarketPrice() / 100)") @Mapping(target = "costPrice", expression = "java(spu.getCostPrice() / 100)") @@ -83,7 +68,16 @@ public interface ProductSpuConvert { default List convertListForGetSpuList(List list) { // 处理虚拟销量 list.forEach(spu -> spu.setSalesCount(spu.getSalesCount() + spu.getVirtualSalesCount())); - return convertListForGetSpuList0(list); + // 处理 VO 字段 + List voList = convertListForGetSpuList0(list); + for (int i = 0; i < list.size(); i++) { + ProductSpuDO spu = list.get(i); + AppProductSpuPageRespVO spuVO = voList.get(i); + spuVO.setUnitName(DictFrameworkUtils.getDictDataLabel(DictTypeConstants.PRODUCT_UNIT, spu.getUnit())); + // 计算 vip 价格 TODO 芋艿:临时的逻辑,等 vip 支持后 + spuVO.setVipPrice((int) (spuVO.getPrice() * 0.9)); + } + return voList; } @Named("convertListForGetSpuList0") List convertListForGetSpuList0(List list); diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/dataobject/comment/ProductCommentDO.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/dataobject/comment/ProductCommentDO.java index 5082b2da9..366b237a2 100644 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/dataobject/comment/ProductCommentDO.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/dataobject/comment/ProductCommentDO.java @@ -28,6 +28,11 @@ import java.util.List; @AllArgsConstructor public class ProductCommentDO extends BaseDO { + /** + * 默认匿名昵称 + */ + public static final String NICKNAME_ANONYMOUS = "匿名用户"; + /** * 评论编号,主键自增 */ @@ -92,7 +97,7 @@ public class ProductCommentDO extends BaseDO { /** * 评分星级 * - * 1-5分 + * 1-5 分 */ private Integer scores; /** diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/mysql/comment/ProductCommentMapper.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/mysql/comment/ProductCommentMapper.java index 796a790f4..1426073a5 100644 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/mysql/comment/ProductCommentMapper.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/mysql/comment/ProductCommentMapper.java @@ -2,18 +2,15 @@ package cn.iocoder.yudao.module.product.dal.mysql.comment; import cn.hutool.core.util.ObjectUtil; +import cn.iocoder.yudao.framework.common.pojo.PageParam; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; import cn.iocoder.yudao.module.product.controller.admin.comment.vo.ProductCommentPageReqVO; -import cn.iocoder.yudao.module.product.controller.admin.comment.vo.ProductCommentReplyVO; import cn.iocoder.yudao.module.product.controller.app.comment.vo.AppCommentPageReqVO; import cn.iocoder.yudao.module.product.dal.dataobject.comment.ProductCommentDO; -import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import org.apache.ibatis.annotations.Mapper; -import java.time.LocalDateTime; - @Mapper public interface ProductCommentMapper extends BaseMapperX { @@ -28,19 +25,18 @@ public interface ProductCommentMapper extends BaseMapperX { .orderByDesc(ProductCommentDO::getId)); } - // TODO 芋艿:在看看这块 static void appendTabQuery(LambdaQueryWrapperX queryWrapper, Integer type) { - // 构建好评查询语句:好评计算 (商品评分星级+服务评分星级) >= 8 - if (ObjectUtil.equal(type, AppCommentPageReqVO.FAVOURABLE_COMMENT)) { - queryWrapper.apply("(scores + benefit_scores) >= 8"); + // 构建好评查询语句:好评计算 总评 >= 4 + if (ObjectUtil.equal(type, AppCommentPageReqVO.GOOD_COMMENT)) { + queryWrapper.apply("scores >= 4"); } - // 构建中评查询语句:中评计算 (商品评分星级+服务评分星级) > 4 且 (商品评分星级+服务评分星级) < 8 + // 构建中评查询语句:中评计算 总评 >= 3 且 总评 < 4 if (ObjectUtil.equal(type, AppCommentPageReqVO.MEDIOCRE_COMMENT)) { - queryWrapper.apply("(scores + benefit_scores) > 4 and (scores + benefit_scores) < 8"); + queryWrapper.apply("scores >=3 and scores < 4"); } - // 构建差评查询语句:差评计算 (商品评分星级+服务评分星级) <= 4 + // 构建差评查询语句:差评计算 总评 < 3 if (ObjectUtil.equal(type, AppCommentPageReqVO.NEGATIVE_COMMENT)) { - queryWrapper.apply("(scores + benefit_scores) <= 4"); + queryWrapper.apply("scores < 3"); } } @@ -55,33 +51,14 @@ public interface ProductCommentMapper extends BaseMapperX { return selectPage(reqVO, queryWrapper); } - default void updateCommentVisible(Long id, Boolean visible) { - LambdaUpdateWrapper lambdaUpdateWrapper = new LambdaUpdateWrapper() - .set(ProductCommentDO::getVisible, visible) - .eq(ProductCommentDO::getId, id); - update(null, lambdaUpdateWrapper); - } - - default void commentReply(ProductCommentReplyVO replyVO, Long loginUserId) { - LambdaUpdateWrapper lambdaUpdateWrapper = new LambdaUpdateWrapper() - .set(ProductCommentDO::getReplyStatus, Boolean.TRUE) - .set(ProductCommentDO::getReplyTime, LocalDateTime.now()) - .set(ProductCommentDO::getReplyUserId, loginUserId) - .set(ProductCommentDO::getReplyContent, replyVO.getReplyContent()) - .eq(ProductCommentDO::getId, replyVO.getId()); - update(null, lambdaUpdateWrapper); - } - - // TODO @puhui999:使用 select 替代 find - default ProductCommentDO findByUserIdAndOrderIdAndSpuId(Long userId, Long orderId, Long spuId) { + default ProductCommentDO selectByUserIdAndOrderItemIdAndSpuId(Long userId, Long orderItemId, Long spuId) { return selectOne(new LambdaQueryWrapperX() .eq(ProductCommentDO::getUserId, userId) - .eq(ProductCommentDO::getOrderId, orderId) + .eq(ProductCommentDO::getOrderItemId, orderItemId) .eq(ProductCommentDO::getSpuId, spuId)); } - // TODO @puhui999:selectCountBySpuId 即可 - default Long selectTabCount(Long spuId, Boolean visible, Integer type) { + default Long selectCountBySpuId(Long spuId, Boolean visible, Integer type) { LambdaQueryWrapperX queryWrapper = new LambdaQueryWrapperX() .eqIfPresent(ProductCommentDO::getSpuId, spuId) .eqIfPresent(ProductCommentDO::getVisible, visible); @@ -90,4 +67,12 @@ public interface ProductCommentMapper extends BaseMapperX { return selectCount(queryWrapper); } + default PageResult selectCommentList(Long spuId, Integer count) { + // 构建分页查询条件 + return selectPage(new PageParam().setPageSize(count), new LambdaQueryWrapperX() + .eqIfPresent(ProductCommentDO::getSpuId, spuId) + .orderByDesc(ProductCommentDO::getCreateTime) + ); + } + } diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/mysql/spu/ProductSpuMapper.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/mysql/spu/ProductSpuMapper.java index 9c237fa9f..0448381fa 100755 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/mysql/spu/ProductSpuMapper.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/mysql/spu/ProductSpuMapper.java @@ -67,6 +67,12 @@ public interface ProductSpuMapper extends BaseMapperX { // 推荐类型的过滤条件 if (ObjUtil.equal(pageReqVO.getRecommendType(), AppProductSpuPageReqVO.RECOMMEND_TYPE_HOT)) { query.eq(ProductSpuDO::getRecommendHot, true); + } else if (ObjUtil.equal(pageReqVO.getRecommendType(), AppProductSpuPageReqVO.RECOMMEND_TYPE_BENEFIT)) { + query.eq(ProductSpuDO::getRecommendBenefit, true); + } else if (ObjUtil.equal(pageReqVO.getRecommendType(), AppProductSpuPageReqVO.RECOMMEND_TYPE_BEST)) { + query.eq(ProductSpuDO::getRecommendBest, true); + } else if (ObjUtil.equal(pageReqVO.getRecommendType(), AppProductSpuPageReqVO.RECOMMEND_TYPE_NEW)) { + query.eq(ProductSpuDO::getRecommendNew, true); } else if (ObjUtil.equal(pageReqVO.getRecommendType(), AppProductSpuPageReqVO.RECOMMEND_TYPE_GOOD)) { query.eq(ProductSpuDO::getRecommendGood, true); } diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/comment/ProductCommentService.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/comment/ProductCommentService.java index 7bf9ccb36..7f615677c 100644 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/comment/ProductCommentService.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/comment/ProductCommentService.java @@ -1,16 +1,19 @@ package cn.iocoder.yudao.module.product.service.comment; import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.product.api.comment.dto.ProductCommentCreateReqDTO; +import cn.iocoder.yudao.module.product.controller.admin.comment.vo.ProductCommentCreateReqVO; import cn.iocoder.yudao.module.product.controller.admin.comment.vo.ProductCommentPageReqVO; -import cn.iocoder.yudao.module.product.controller.admin.comment.vo.ProductCommentReplyVO; +import cn.iocoder.yudao.module.product.controller.admin.comment.vo.ProductCommentReplyReqVO; import cn.iocoder.yudao.module.product.controller.admin.comment.vo.ProductCommentUpdateVisibleReqVO; import cn.iocoder.yudao.module.product.controller.app.comment.vo.AppCommentPageReqVO; -import cn.iocoder.yudao.module.product.controller.app.comment.vo.AppCommentRespVO; +import cn.iocoder.yudao.module.product.controller.app.comment.vo.AppCommentStatisticsRespVO; +import cn.iocoder.yudao.module.product.controller.app.comment.vo.AppProductCommentRespVO; import cn.iocoder.yudao.module.product.dal.dataobject.comment.ProductCommentDO; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; -import java.util.Map; +import java.util.List; /** * 商品评论 Service 接口 @@ -36,14 +39,13 @@ public interface ProductCommentService { */ void updateCommentVisible(ProductCommentUpdateVisibleReqVO updateReqVO); - // TODO @puhui999:replyComment /** * 商家回复 * * @param replyVO 商家回复 * @param loginUserId 管理后台商家登陆人 ID */ - void commentReply(ProductCommentReplyVO replyVO, Long loginUserId); + void replyComment(ProductCommentReplyReqVO replyVO, Long loginUserId); /** * 获得商品评价分页 @@ -52,15 +54,24 @@ public interface ProductCommentService { * @param visible 是否可见 * @return 商品评价分页 */ - PageResult getCommentPage(AppCommentPageReqVO pageVO, Boolean visible); + PageResult getCommentPage(AppCommentPageReqVO pageVO, Boolean visible); /** * 创建商品评论 + * 后台管理员创建评论使用 * - * @param productComment 创建实体 - * @param system 是否系统评价 + * @param createReqVO 商品评价创建 Request VO 对象 */ - void createComment(ProductCommentDO productComment, Boolean system); + void createComment(ProductCommentCreateReqVO createReqVO); + + /** + * 创建评论 + * 创建商品评论 APP 端创建商品评论使用 + * + * @param createReqDTO 创建请求 dto + * @return 返回评论 id + */ + Long createComment(ProductCommentCreateReqDTO createReqDTO); /** * 获得商品的评价统计 @@ -69,6 +80,15 @@ public interface ProductCommentService { * @param visible 是否可见 * @return 评价统计 */ - Map getCommentPageTabsCount(Long spuId, Boolean visible); + AppCommentStatisticsRespVO getCommentStatistics(Long spuId, Boolean visible); + + /** + * 得到评论列表 + * + * @param spuId 商品 id + * @param count 数量 + * @return {@link Object} + */ + List getCommentList(Long spuId, Integer count); } diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/comment/ProductCommentServiceImpl.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/comment/ProductCommentServiceImpl.java index 1f1156e1c..d35d7ce20 100644 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/comment/ProductCommentServiceImpl.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/comment/ProductCommentServiceImpl.java @@ -1,31 +1,34 @@ package cn.iocoder.yudao.module.product.service.comment; -import cn.hutool.core.util.ObjectUtil; import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.member.api.user.MemberUserApi; +import cn.iocoder.yudao.module.member.api.user.dto.MemberUserRespDTO; +import cn.iocoder.yudao.module.product.api.comment.dto.ProductCommentCreateReqDTO; +import cn.iocoder.yudao.module.product.controller.admin.comment.vo.ProductCommentCreateReqVO; import cn.iocoder.yudao.module.product.controller.admin.comment.vo.ProductCommentPageReqVO; -import cn.iocoder.yudao.module.product.controller.admin.comment.vo.ProductCommentReplyVO; +import cn.iocoder.yudao.module.product.controller.admin.comment.vo.ProductCommentReplyReqVO; import cn.iocoder.yudao.module.product.controller.admin.comment.vo.ProductCommentUpdateVisibleReqVO; import cn.iocoder.yudao.module.product.controller.app.comment.vo.AppCommentPageReqVO; -import cn.iocoder.yudao.module.product.controller.app.comment.vo.AppCommentRespVO; +import cn.iocoder.yudao.module.product.controller.app.comment.vo.AppCommentStatisticsRespVO; +import cn.iocoder.yudao.module.product.controller.app.comment.vo.AppProductCommentRespVO; import cn.iocoder.yudao.module.product.convert.comment.ProductCommentConvert; import cn.iocoder.yudao.module.product.dal.dataobject.comment.ProductCommentDO; +import cn.iocoder.yudao.module.product.dal.dataobject.sku.ProductSkuDO; import cn.iocoder.yudao.module.product.dal.dataobject.spu.ProductSpuDO; import cn.iocoder.yudao.module.product.dal.mysql.comment.ProductCommentMapper; +import cn.iocoder.yudao.module.product.service.sku.ProductSkuService; import cn.iocoder.yudao.module.product.service.spu.ProductSpuService; -import cn.iocoder.yudao.module.trade.api.order.TradeOrderApi; -import cn.iocoder.yudao.module.trade.api.order.dto.TradeOrderRespDTO; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; import javax.annotation.Resource; -import java.math.BigDecimal; -import java.math.RoundingMode; -import java.util.HashMap; -import java.util.Map; +import java.time.LocalDateTime; +import java.util.List; import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; import static cn.iocoder.yudao.module.product.enums.ErrorCodeConstants.*; -import static cn.iocoder.yudao.module.trade.enums.ErrorCodeConstants.ORDER_NOT_FOUND; /** * 商品评论 Service 实现类 @@ -40,100 +43,128 @@ public class ProductCommentServiceImpl implements ProductCommentService { private ProductCommentMapper productCommentMapper; @Resource - private TradeOrderApi tradeOrderApi; + private ProductSpuService productSpuService; @Resource - private ProductSpuService productSpuService; + @Lazy + private ProductSkuService productSkuService; + + @Resource + private MemberUserApi memberUserApi; + + @Override + @Transactional(rollbackFor = Exception.class) + public void updateCommentVisible(ProductCommentUpdateVisibleReqVO updateReqVO) { + // 校验评论是否存在 + ProductCommentDO productCommentDO = validateCommentExists(updateReqVO.getId()); + productCommentDO.setVisible(updateReqVO.getVisible()); + + // 更新可见状态 + productCommentMapper.updateById(productCommentDO); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void replyComment(ProductCommentReplyReqVO replyVO, Long loginUserId) { + // 校验评论是否存在 + ProductCommentDO productCommentDO = validateCommentExists(replyVO.getId()); + productCommentDO.setReplyTime(LocalDateTime.now()); + productCommentDO.setReplyUserId(loginUserId); + productCommentDO.setReplyStatus(Boolean.TRUE); + productCommentDO.setReplyContent(replyVO.getReplyContent()); + + // 回复评论 + productCommentMapper.updateById(productCommentDO); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void createComment(ProductCommentCreateReqVO createReqVO) { + // 校验评论 + validateComment(createReqVO.getSpuId(), createReqVO.getUserId(), createReqVO.getOrderItemId()); + + ProductCommentDO commentDO = ProductCommentConvert.INSTANCE.convert(createReqVO); + productCommentMapper.insert(commentDO); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public Long createComment(ProductCommentCreateReqDTO createReqDTO) { + // 通过 sku ID 拿到 spu 相关信息 + ProductSkuDO sku = productSkuService.getSku(createReqDTO.getSkuId()); + if (sku == null) { + throw exception(SKU_NOT_EXISTS); + } + // 校验 spu 如果存在返回详情 + ProductSpuDO spuDO = validateSpu(sku.getSpuId()); + // 校验评论 + validateComment(spuDO.getId(), createReqDTO.getUserId(), createReqDTO.getOrderId()); + // 获取用户详细信息 + MemberUserRespDTO user = memberUserApi.getUser(createReqDTO.getUserId()); + + // 创建评论 + ProductCommentDO commentDO = ProductCommentConvert.INSTANCE.convert(createReqDTO, spuDO, user); + productCommentMapper.insert(commentDO); + return commentDO.getId(); + } + + private void validateComment(Long spuId, Long userId, Long orderItemId) { + // 判断当前订单的当前商品用户是否评价过 + ProductCommentDO exist = productCommentMapper.selectByUserIdAndOrderItemIdAndSpuId(userId, orderItemId, spuId); + if (null != exist) { + throw exception(ORDER_SPU_COMMENT_EXISTS); + } + } + + private ProductSpuDO validateSpu(Long spuId) { + ProductSpuDO spu = productSpuService.getSpu(spuId); + if (null == spu) { + throw exception(SPU_NOT_EXISTS); + } + return spu; + } + + private ProductCommentDO validateCommentExists(Long id) { + ProductCommentDO productComment = productCommentMapper.selectById(id); + if (productComment == null) { + throw exception(COMMENT_NOT_EXISTS); + } + return productComment; + } + + @Override + public AppCommentStatisticsRespVO getCommentStatistics(Long spuId, Boolean visible) { + return ProductCommentConvert.INSTANCE.convert( + // 查询商品 id = spuId 的所有评论数量 + productCommentMapper.selectCountBySpuId(spuId, visible, null), + // 查询商品 id = spuId 的所有好评数量 + productCommentMapper.selectCountBySpuId(spuId, visible, AppCommentPageReqVO.GOOD_COMMENT), + // 查询商品 id = spuId 的所有中评数量 + productCommentMapper.selectCountBySpuId(spuId, visible, AppCommentPageReqVO.MEDIOCRE_COMMENT), + // 查询商品 id = spuId 的所有差评数量 + productCommentMapper.selectCountBySpuId(spuId, visible, AppCommentPageReqVO.NEGATIVE_COMMENT) + ); + } + + @Override + public List getCommentList(Long spuId, Integer count) { + // 校验商品 spu 是否存在 + // TODO @puhui 这里校验可以去掉哈。 + ProductSpuDO spuDO = validateSpu(spuId); + return ProductCommentConvert.INSTANCE.convertList02(productCommentMapper.selectCommentList(spuDO.getId(), count).getList()); + } + + // TODO @puhui 可以放到 controller 去 convert 哈 + @Override + public PageResult getCommentPage(AppCommentPageReqVO pageVO, Boolean visible) { + // TODO @puhui 可以放到 controller 去 convert 哈 + return ProductCommentConvert.INSTANCE.convertPage02( + productCommentMapper.selectPage(pageVO, visible)); + } @Override public PageResult getCommentPage(ProductCommentPageReqVO pageReqVO) { return productCommentMapper.selectPage(pageReqVO); } - @Override - public void updateCommentVisible(ProductCommentUpdateVisibleReqVO updateReqVO) { - // 校验评论是否存在 - validateCommentExists(updateReqVO.getId()); - - // 更新可见状态 - // TODO @puhui999:直接使用 update 操作 - productCommentMapper.updateCommentVisible(updateReqVO.getId(), updateReqVO.getVisible()); - } - - @Override - public void commentReply(ProductCommentReplyVO replyVO, Long loginUserId) { - // 校验评论是否存在 - validateCommentExists(replyVO.getId()); - - // 回复评论 - // TODO @puhui999:直接使用 update 操作 - productCommentMapper.commentReply(replyVO, loginUserId); - } - - @Override - public Map getCommentPageTabsCount(Long spuId, Boolean visible) { - Map countMap = new HashMap<>(4); - // 查询商品 id = spuId 的所有评论数量 - countMap.put(AppCommentPageReqVO.ALL_COUNT, - productCommentMapper.selectTabCount(spuId, visible, AppCommentPageReqVO.ALL)); - // 查询商品 id = spuId 的所有好评数量 - countMap.put(AppCommentPageReqVO.FAVOURABLE_COMMENT_COUNT, - productCommentMapper.selectTabCount(spuId, visible, AppCommentPageReqVO.FAVOURABLE_COMMENT)); - // 查询商品 id = spuId 的所有中评数量 - countMap.put(AppCommentPageReqVO.MEDIOCRE_COMMENT_COUNT, - productCommentMapper.selectTabCount(spuId, visible, AppCommentPageReqVO.MEDIOCRE_COMMENT)); - // 查询商品 id = spuId 的所有差评数量 - countMap.put(AppCommentPageReqVO.NEGATIVE_COMMENT_COUNT, - productCommentMapper.selectTabCount(spuId, visible, AppCommentPageReqVO.NEGATIVE_COMMENT)); - return countMap; - } - - @Override - public PageResult getCommentPage(AppCommentPageReqVO pageVO, Boolean visible) { - // TODO @puhui999:逻辑可以在 controller 做哈。让 service 简介一点;因为是 view 需要不展示昵称 - PageResult result = ProductCommentConvert.INSTANCE.convertPage02(productCommentMapper.selectPage(pageVO, visible)); - result.getList().forEach(item -> { - // 判断用户是否选择匿名 - if (ObjectUtil.equal(item.getAnonymous(), true)) { - item.setUserNickname(AppCommentPageReqVO.ANONYMOUS_NICKNAME); - } - // TODO @puhui999:直接插入的时候,计算到 scores 字段里;这样就去掉 finalScore 字段哈 - // 计算评价最终综合评分 最终星数 = (商品评星 + 服务评星) / 2 - BigDecimal sumScore = new BigDecimal(item.getScores() + item.getBenefitScores()); - BigDecimal divide = sumScore.divide(BigDecimal.valueOf(2L), 0, RoundingMode.DOWN); - item.setFinalScore(divide.intValue()); - }); - return result; - } - - @Override - public void createComment(ProductCommentDO productComment, Boolean system) { - // TODO @puhui999:这里不区分是否为 system;直接都校验 - if (!system) { - // TODO 判断订单是否存在 fix; - // TODO @puhui999:改成 order 那有个 comment 接口,哪里校验下;商品评论这里不校验订单是否存在哈 - TradeOrderRespDTO order = tradeOrderApi.getOrder(productComment.getOrderId()); - if (null == order) { - throw exception(ORDER_NOT_FOUND); - } - ProductSpuDO spu = productSpuService.getSpu(productComment.getSpuId()); - if (null == spu) { - throw exception(SPU_NOT_EXISTS); - } - // 判断当前订单的当前商品用户是否评价过 - ProductCommentDO exist = productCommentMapper.findByUserIdAndOrderIdAndSpuId(productComment.getId(), productComment.getOrderId(), productComment.getSpuId()); - if (null != exist) { - throw exception(ORDER_SPU_COMMENT_EXISTS); - } - } - productCommentMapper.insert(productComment); - } - - private void validateCommentExists(Long id) { - ProductCommentDO productComment = productCommentMapper.selectById(id); - if (productComment == null) { - throw exception(COMMENT_NOT_EXISTS); - } - } - } diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/sku/ProductSkuService.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/sku/ProductSkuService.java index 9ee2c00a2..4c106d1bc 100755 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/sku/ProductSkuService.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/sku/ProductSkuService.java @@ -55,7 +55,7 @@ public interface ProductSkuService { * 批量创建 SKU * * @param spuId 商品 SPU 编号 - * @param list SKU 对象集合 + * @param list SKU 对象集合 */ void createSkuList(Long spuId, List list); @@ -63,13 +63,13 @@ public interface ProductSkuService { * 根据 SPU 编号,批量更新它的 SKU 信息 * * @param spuId SPU 编码 - * @param skus SKU 的集合 + * @param skus SKU 的集合 */ void updateSkuList(Long spuId, List skus); /** * 更新 SKU 库存(增量) - * + *

* 如果更新的库存不足,会抛出异常 * * @param updateStockReqDTO 更行请求 @@ -88,7 +88,7 @@ public interface ProductSkuService { * 获得 spu 对应的 SKU 集合 * * @param spuIds spu 编码集合 - * @return 商品 sku 集合 + * @return 商品 sku 集合 */ List getSkuListBySpuId(List spuIds); @@ -123,4 +123,5 @@ public interface ProductSkuService { * @return int 影响的行数 */ int updateSkuPropertyValue(Long propertyValueId, String propertyValueName); + } diff --git a/yudao-module-mall/yudao-module-product-biz/src/test/java/cn/iocoder/yudao/module/product/service/comment/ProductCommentServiceImplTest.java b/yudao-module-mall/yudao-module-product-biz/src/test/java/cn/iocoder/yudao/module/product/service/comment/ProductCommentServiceImplTest.java index 520555141..7684def99 100644 --- a/yudao-module-mall/yudao-module-product-biz/src/test/java/cn/iocoder/yudao/module/product/service/comment/ProductCommentServiceImplTest.java +++ b/yudao-module-mall/yudao-module-product-biz/src/test/java/cn/iocoder/yudao/module/product/service/comment/ProductCommentServiceImplTest.java @@ -5,15 +5,17 @@ import cn.hutool.core.util.RandomUtil; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest; import cn.iocoder.yudao.module.product.controller.admin.comment.vo.ProductCommentPageReqVO; -import cn.iocoder.yudao.module.product.controller.admin.comment.vo.ProductCommentReplyVO; +import cn.iocoder.yudao.module.product.controller.admin.comment.vo.ProductCommentReplyReqVO; import cn.iocoder.yudao.module.product.controller.admin.comment.vo.ProductCommentRespVO; import cn.iocoder.yudao.module.product.controller.admin.comment.vo.ProductCommentUpdateVisibleReqVO; import cn.iocoder.yudao.module.product.controller.app.comment.vo.AppCommentPageReqVO; -import cn.iocoder.yudao.module.product.controller.app.comment.vo.AppCommentRespVO; +import cn.iocoder.yudao.module.product.controller.app.comment.vo.AppCommentStatisticsRespVO; +import cn.iocoder.yudao.module.product.controller.app.comment.vo.AppProductCommentRespVO; import cn.iocoder.yudao.module.product.convert.comment.ProductCommentConvert; import cn.iocoder.yudao.module.product.dal.dataobject.comment.ProductCommentDO; import cn.iocoder.yudao.module.product.dal.mysql.comment.ProductCommentMapper; import cn.iocoder.yudao.module.product.enums.comment.ProductCommentScoresEnum; +import cn.iocoder.yudao.module.product.service.sku.ProductSkuService; import cn.iocoder.yudao.module.product.service.spu.ProductSpuService; import cn.iocoder.yudao.module.trade.api.order.TradeOrderApi; import org.junit.jupiter.api.Test; @@ -24,7 +26,6 @@ import org.springframework.context.annotation.Lazy; import javax.annotation.Resource; import java.time.LocalDateTime; import java.util.Date; -import java.util.Map; import static cn.iocoder.yudao.framework.common.util.object.ObjectUtils.cloneIgnoreId; import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEquals; @@ -52,6 +53,8 @@ public class ProductCommentServiceImplTest extends BaseDbUnitTest { private TradeOrderApi tradeOrderApi; @MockBean private ProductSpuService productSpuService; + @MockBean + private ProductSkuService productSkuService; public String generateNo() { return DateUtil.format(new Date(), "yyyyMMddHHmmss") + RandomUtil.randomInt(100000, 999999); @@ -135,23 +138,23 @@ public class ProductCommentServiceImplTest extends BaseDbUnitTest { assertEquals(8, all.getTotal()); // 测试获取所有商品分页评论数据 - PageResult result1 = productCommentService.getCommentPage(new AppCommentPageReqVO(), Boolean.TRUE); + PageResult result1 = productCommentService.getCommentPage(new AppCommentPageReqVO(), Boolean.TRUE); assertEquals(7, result1.getTotal()); // 测试获取所有商品分页中评数据 - PageResult result2 = productCommentService.getCommentPage(new AppCommentPageReqVO().setType(AppCommentPageReqVO.MEDIOCRE_COMMENT), Boolean.TRUE); + PageResult result2 = productCommentService.getCommentPage(new AppCommentPageReqVO().setType(AppCommentPageReqVO.MEDIOCRE_COMMENT), Boolean.TRUE); assertEquals(2, result2.getTotal()); // 测试获取指定 spuId 商品分页中评数据 - PageResult result3 = productCommentService.getCommentPage(new AppCommentPageReqVO().setSpuId(spuId).setType(AppCommentPageReqVO.MEDIOCRE_COMMENT), Boolean.TRUE); + PageResult result3 = productCommentService.getCommentPage(new AppCommentPageReqVO().setSpuId(spuId).setType(AppCommentPageReqVO.MEDIOCRE_COMMENT), Boolean.TRUE); assertEquals(2, result3.getTotal()); // 测试分页 tab count - Map tabsCount = productCommentService.getCommentPageTabsCount(spuId, Boolean.TRUE); - assertEquals(6, tabsCount.get(AppCommentPageReqVO.ALL_COUNT)); - assertEquals(4, tabsCount.get(AppCommentPageReqVO.FAVOURABLE_COMMENT_COUNT)); - assertEquals(2, tabsCount.get(AppCommentPageReqVO.MEDIOCRE_COMMENT_COUNT)); - assertEquals(0, tabsCount.get(AppCommentPageReqVO.NEGATIVE_COMMENT_COUNT)); + AppCommentStatisticsRespVO tabsCount = productCommentService.getCommentStatistics(spuId, Boolean.TRUE); + assertEquals(6, tabsCount.getAllCount()); + assertEquals(4, tabsCount.getGoodCount()); + assertEquals(2, tabsCount.getMediocreCount()); + assertEquals(0, tabsCount.getNegativeCount()); } @@ -183,10 +186,10 @@ public class ProductCommentServiceImplTest extends BaseDbUnitTest { Long productCommentId = productComment.getId(); - ProductCommentReplyVO replyVO = new ProductCommentReplyVO(); + ProductCommentReplyReqVO replyVO = new ProductCommentReplyReqVO(); replyVO.setId(productCommentId); replyVO.setReplyContent("测试"); - productCommentService.commentReply(replyVO, 1L); + productCommentService.replyComment(replyVO, 1L); ProductCommentDO productCommentDO = productCommentMapper.selectById(productCommentId); assertEquals("测试", productCommentDO.getReplyContent()); diff --git a/yudao-module-mall/yudao-module-product-biz/src/test/resources/sql/create_tables.sql b/yudao-module-mall/yudao-module-product-biz/src/test/resources/sql/create_tables.sql index 983aee740..f0f0c70ee 100644 --- a/yudao-module-mall/yudao-module-product-biz/src/test/resources/sql/create_tables.sql +++ b/yudao-module-mall/yudao-module-product-biz/src/test/resources/sql/create_tables.sql @@ -126,36 +126,32 @@ CREATE TABLE IF NOT EXISTS `product_property_value` ( PRIMARY KEY("id") ) COMMENT '规格值'; -CREATE TABLE IF NOT EXISTS `product_comment` ( - `id` bigint NOT NULL AUTO_INCREMENT COMMENT '评价编号', - `user_id` bigint NOT NULL COMMENT ' 评价ID 用户编号', - `user_nickname` varchar(128) NOT NULL COMMENT '评价人名称', - `user_avatar` varchar(255) NOT NULL COMMENT '评价人头像', - `anonymous` bit(1) NOT NULL DEFAULT 0 COMMENT '是否匿名 0:不匿名 1:匿名', - `order_id` bigint NOT NULL COMMENT '交易订单编号', - `order_item_id` bigint NOT NULL COMMENT '交易订单项编号', - `spu_id` bigint NOT NULL COMMENT '商品SPU编号', - `spu_name` varchar NOT NULL COMMENT '商品SPU名称', - `sku_id` bigint NOT NULL COMMENT '商品SKU编号', - `visible` bit(1) NOT NULL DEFAULT 1 COMMENT '是否可见 true:显示 false:隐藏', - `scores` int NOT NULL COMMENT '评分星级 1-5分', - `description_scores` int NOT NULL COMMENT '描述星级 1-5分', - `benefit_scores` int NOT NULL COMMENT '服务星级 1-5分', - `delivery_scores` int NOT NULL COMMENT '配送星级 1-5分', - `content` varchar(2000) NOT NULL COMMENT '评论内容', - `pic_urls` varchar(1024) DEFAULT '' COMMENT '评论图片地址数组,以逗号分隔最多上传9张', - `replied` bit(1) NOT NULL DEFAULT 0 COMMENT '商家是否回复 1:回复 0:未回复', - `reply_user_id` bigint COMMENT '回复管理员编号', - `reply_content` varchar(2000) COMMENT '商家回复内容', - `reply_time` datetime COMMENT '商家回复时间', - `additional_content` varchar(2000) COMMENT '追加评价内容', - `additional_pic_urls` varchar(1024) COMMENT '追评评价图片地址数组,以逗号分隔最多上传9张', - `additional_time` datetime COMMENT '追加评价时间', - "creator" varchar(64) DEFAULT '', - "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, - "updater" varchar(64) DEFAULT '', - "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, - "deleted" bit NOT NULL DEFAULT FALSE, - "tenant_id" bigint not null default '0', - PRIMARY KEY (`id`) -) COMMENT '商品评价'; \ No newline at end of file +DROP TABLE IF EXISTS `product_comment` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '评论编号,主键自增', + `user_id` bigint DEFAULT NULL COMMENT '评价人的用户编号关联 MemberUserDO 的 id 编号', + `user_nickname` varchar(255) DEFAULT NULL COMMENT '评价人名称', + `user_avatar` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '评价人头像', + `anonymous` bit(1) DEFAULT NULL COMMENT '是否匿名', + `order_id` bigint DEFAULT NULL COMMENT '交易订单编号关联 TradeOrderDO 的 id 编号', + `order_item_id` bigint DEFAULT NULL COMMENT '交易订单项编号关联 TradeOrderItemDO 的 id 编号', + `spu_id` bigint DEFAULT NULL COMMENT '商品 SPU 编号关联 ProductSpuDO 的 id', + `spu_name` varchar(255) DEFAULT NULL COMMENT '商品 SPU 名称', + `sku_id` bigint DEFAULT NULL COMMENT '商品 SKU 编号关联 ProductSkuDO 的 id 编号', + `visible` bit(1) DEFAULT NULL COMMENT '是否可见true:显示false:隐藏', + `scores` tinyint DEFAULT NULL COMMENT '评分星级1-5分', + `description_scores` tinyint DEFAULT NULL COMMENT '描述星级1-5 星', + `benefit_scores` tinyint DEFAULT NULL COMMENT '服务星级1-5 星', + `content` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '评论内容', + `pic_urls` varchar(4096) DEFAULT NULL COMMENT '评论图片地址数组', + `reply_status` bit(1) DEFAULT NULL COMMENT '商家是否回复', + `reply_user_id` bigint DEFAULT NULL COMMENT '回复管理员编号关联 AdminUserDO 的 id 编号', + `reply_content` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '商家回复内容', + `reply_time` datetime DEFAULT NULL COMMENT '商家回复时间', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci 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 AUTO_INCREMENT = 26 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '商品评论'; \ No newline at end of file diff --git a/yudao-module-mall/yudao-module-promotion-api/pom.xml b/yudao-module-mall/yudao-module-promotion-api/pom.xml index 510b17bee..5949ed997 100644 --- a/yudao-module-mall/yudao-module-promotion-api/pom.xml +++ b/yudao-module-mall/yudao-module-promotion-api/pom.xml @@ -28,6 +28,13 @@ spring-boot-starter-validation true + + + + com.fasterxml.jackson.core + jackson-databind + true + diff --git a/yudao-module-mall/yudao-module-promotion-api/src/main/java/cn/iocoder/yudao/module/promotion/enums/ErrorCodeConstants.java b/yudao-module-mall/yudao-module-promotion-api/src/main/java/cn/iocoder/yudao/module/promotion/enums/ErrorCodeConstants.java index 308966c22..945709697 100644 --- a/yudao-module-mall/yudao-module-promotion-api/src/main/java/cn/iocoder/yudao/module/promotion/enums/ErrorCodeConstants.java +++ b/yudao-module-mall/yudao-module-promotion-api/src/main/java/cn/iocoder/yudao/module/promotion/enums/ErrorCodeConstants.java @@ -56,5 +56,7 @@ public interface ErrorCodeConstants { // ========== 秒杀时段 1013009000 ========== ErrorCode SECKILL_TIME_NOT_EXISTS = new ErrorCode(1013009000, "秒杀时段不存在"); ErrorCode SECKILL_TIME_CONFLICTS = new ErrorCode(1013009001, "秒杀时段冲突"); + ErrorCode SECKILL_TIME_EQUAL = new ErrorCode(1013009002, "秒杀时段开始时间和结束时间不能相等"); + ErrorCode SECKILL_START_TIME_BEFORE_END_TIME = new ErrorCode(1013009003, "秒杀时段开始时间不能在结束时间之后"); } diff --git a/yudao-module-mall/yudao-module-promotion-api/src/main/java/cn/iocoder/yudao/module/promotion/enums/decorate/DecorateComponentEnum.java b/yudao-module-mall/yudao-module-promotion-api/src/main/java/cn/iocoder/yudao/module/promotion/enums/decorate/DecorateComponentEnum.java new file mode 100644 index 000000000..e9b9a902b --- /dev/null +++ b/yudao-module-mall/yudao-module-promotion-api/src/main/java/cn/iocoder/yudao/module/promotion/enums/decorate/DecorateComponentEnum.java @@ -0,0 +1,32 @@ +package cn.iocoder.yudao.module.promotion.enums.decorate; + +import lombok.Getter; + +/** + * 页面组件枚举 + * + * @author jason + */ +@Getter +public enum DecorateComponentEnum { + + NAV_MENU("nav-menu", "导航菜单"), + ROLLING_BANNER("rolling-banner", "滚动横幅广告"), + PRODUCT_CATEGORY("product-category", "商品分类"); + + /** + * 页面组件代码 + */ + private final String code; + + /** + * 页面组件说明 + */ + private final String desc; + + DecorateComponentEnum(String code, String desc) { + this.code = code; + this.desc = desc; + } + +} diff --git a/yudao-module-mall/yudao-module-promotion-api/src/main/java/cn/iocoder/yudao/module/promotion/enums/decorate/DecoratePageEnum.java b/yudao-module-mall/yudao-module-promotion-api/src/main/java/cn/iocoder/yudao/module/promotion/enums/decorate/DecoratePageEnum.java new file mode 100644 index 000000000..7e6ae2122 --- /dev/null +++ b/yudao-module-mall/yudao-module-promotion-api/src/main/java/cn/iocoder/yudao/module/promotion/enums/decorate/DecoratePageEnum.java @@ -0,0 +1,36 @@ +package cn.iocoder.yudao.module.promotion.enums.decorate; + +import cn.iocoder.yudao.framework.common.core.IntArrayValuable; +import lombok.AllArgsConstructor; +import lombok.Getter; + +import java.util.Arrays; + +/** + * 装修页面枚举 + * + * @author jason + */ +@AllArgsConstructor +@Getter +public enum DecoratePageEnum implements IntArrayValuable { + + INDEX(1, "首页"); + + private static final int[] ARRAYS = Arrays.stream(values()).mapToInt(DecoratePageEnum::getId).toArray(); + + /** + * 页面 id + */ + private final Integer id; + /** + * 页面名称 + */ + private final String name; + + @Override + public int[] array() { + return ARRAYS; + } + +} diff --git a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/banner/vo/BannerBaseVO.java b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/banner/vo/BannerBaseVO.java index 6c72155f4..ff90cb7a0 100644 --- a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/banner/vo/BannerBaseVO.java +++ b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/banner/vo/BannerBaseVO.java @@ -15,23 +15,23 @@ import javax.validation.constraints.NotNull; @Data public class BannerBaseVO { - @Schema(description = "标题", required = true) + @Schema(description = "标题", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "标题不能为空") private String title; - @Schema(description = "跳转链接", required = true) + @Schema(description = "跳转链接", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "跳转链接不能为空") private String url; - @Schema(description = "图片地址", required = true) + @Schema(description = "图片地址", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "图片地址不能为空") private String picUrl; - @Schema(description = "排序", required = true) + @Schema(description = "排序", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "排序不能为空") private Integer sort; - @Schema(description = "状态", required = true) + @Schema(description = "状态", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "状态不能为空") @InEnum(CommonStatusEnum.class) private Integer status; diff --git a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/banner/vo/BannerRespVO.java b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/banner/vo/BannerRespVO.java index fb0010669..b1ea6c207 100644 --- a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/banner/vo/BannerRespVO.java +++ b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/banner/vo/BannerRespVO.java @@ -4,22 +4,12 @@ import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.ToString; -import javax.validation.constraints.NotNull; -import java.time.LocalDateTime; - -/** - * @author xia - */ @Schema(description = "管理后台 - Banner Response VO") @Data @ToString(callSuper = true) public class BannerRespVO extends BannerBaseVO { - @Schema(description = "banner编号", required = true) - @NotNull(message = "banner编号不能为空") + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED) private Long id; - @Schema(description = "创建时间", required = true) - private LocalDateTime createTime; - } diff --git a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/banner/vo/BannerUpdateReqVO.java b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/banner/vo/BannerUpdateReqVO.java index 033b6054d..266f28c1b 100644 --- a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/banner/vo/BannerUpdateReqVO.java +++ b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/banner/vo/BannerUpdateReqVO.java @@ -16,7 +16,7 @@ import javax.validation.constraints.NotNull; @ToString(callSuper = true) public class BannerUpdateReqVO extends BannerBaseVO { - @Schema(description = "banner 编号", required = true) + @Schema(description = "banner 编号", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "banner 编号不能为空") private Long id; diff --git a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/coupon/vo/coupon/CouponBaseVO.java b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/coupon/vo/coupon/CouponBaseVO.java index 2609c0a2c..742c10cc7 100755 --- a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/coupon/vo/coupon/CouponBaseVO.java +++ b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/coupon/vo/coupon/CouponBaseVO.java @@ -24,31 +24,31 @@ import static cn.iocoder.yudao.framework.common.util.date.DateUtils.TIME_ZONE_DE public class CouponBaseVO { // ========== 基本信息 BEGIN ========== - @Schema(description = "优惠劵模板编号", required = true, example = "1024") + @Schema(description = "优惠劵模板编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") @NotNull(message = "优惠劵模板编号不能为空") private Integer templateId; - @Schema(description = "优惠劵名", required = true, example = "春节送送送") + @Schema(description = "优惠劵名", requiredMode = Schema.RequiredMode.REQUIRED, example = "春节送送送") @NotNull(message = "优惠劵名不能为空") private String name; - @Schema(description = "优惠码状态", required = true, example = "1") + @Schema(description = "优惠码状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Integer status; // ========== 基本信息 END ========== // ========== 领取情况 BEGIN ========== - @Schema(description = "用户编号", required = true, example = "1") + @Schema(description = "用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotNull(message = "用户编号不能为空") private Long userId; - @Schema(description = "领取方式", required = true, example = "1") + @Schema(description = "领取方式", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotNull(message = "领取方式不能为空") private Integer takeType; // ========== 领取情况 END ========== // ========== 使用规则 BEGIN ========== - @Schema(description = "是否设置满多少金额可用", required = true, example = "100") // 单位:分;0 - 不限制 + @Schema(description = "是否设置满多少金额可用", requiredMode = Schema.RequiredMode.REQUIRED, example = "100") // 单位:分;0 - 不限制 @NotNull(message = "是否设置满多少金额可用不能为空") private Integer usePrice; @@ -62,7 +62,7 @@ public class CouponBaseVO { @JsonFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND, timezone = TIME_ZONE_DEFAULT) private LocalDateTime validEndTime; - @Schema(description = "商品范围", required = true, example = "1") + @Schema(description = "商品范围", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotNull(message = "商品范围不能为空") @InEnum(PromotionProductScopeEnum.class) private Integer productScope; @@ -72,7 +72,7 @@ public class CouponBaseVO { // ========== 使用规则 END ========== // ========== 使用效果 BEGIN ========== - @Schema(description = "优惠类型", required = true, example = "1") + @Schema(description = "优惠类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotNull(message = "优惠类型不能为空") @InEnum(PromotionDiscountTypeEnum.class) private Integer discountType; diff --git a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/coupon/vo/coupon/CouponRespVO.java b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/coupon/vo/coupon/CouponRespVO.java index 68f0bc44e..7c0fa6c86 100755 --- a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/coupon/vo/coupon/CouponRespVO.java +++ b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/coupon/vo/coupon/CouponRespVO.java @@ -13,10 +13,10 @@ import java.time.LocalDateTime; @ToString(callSuper = true) public class CouponRespVO extends CouponBaseVO { - @Schema(description = "优惠劵编号", required = true, example = "1024") + @Schema(description = "优惠劵编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private Long id; - @Schema(description = "创建时间", required = true) + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) private LocalDateTime createTime; } diff --git a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/coupon/vo/template/CouponTemplateBaseVO.java b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/coupon/vo/template/CouponTemplateBaseVO.java index d63d447cc..7c1855d38 100755 --- a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/coupon/vo/template/CouponTemplateBaseVO.java +++ b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/coupon/vo/template/CouponTemplateBaseVO.java @@ -29,27 +29,27 @@ import static cn.iocoder.yudao.framework.common.util.date.DateUtils.TIME_ZONE_DE @Data public class CouponTemplateBaseVO { - @Schema(description = "优惠劵名", required = true, example = "春节送送送") + @Schema(description = "优惠劵名", requiredMode = Schema.RequiredMode.REQUIRED, example = "春节送送送") @NotNull(message = "优惠劵名不能为空") private String name; - @Schema(description = "发行总量", required = true, example = "1024") // -1 - 则表示不限制发放数量 + @Schema(description = "发行总量", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") // -1 - 则表示不限制发放数量 @NotNull(message = "发行总量不能为空") private Integer totalCount; - @Schema(description = "每人限领个数", required = true, example = "66") // -1 - 则表示不限制 + @Schema(description = "每人限领个数", requiredMode = Schema.RequiredMode.REQUIRED, example = "66") // -1 - 则表示不限制 @NotNull(message = "每人限领个数不能为空") private Integer takeLimitCount; - @Schema(description = "领取方式", required = true, example = "1") + @Schema(description = "领取方式", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotNull(message = "领取方式不能为空") private Integer takeType; - @Schema(description = "是否设置满多少金额可用", required = true, example = "100") // 单位:分;0 - 不限制 + @Schema(description = "是否设置满多少金额可用", requiredMode = Schema.RequiredMode.REQUIRED, example = "100") // 单位:分;0 - 不限制 @NotNull(message = "是否设置满多少金额可用不能为空") private Integer usePrice; - @Schema(description = "商品范围", required = true, example = "1") + @Schema(description = "商品范围", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotNull(message = "商品范围不能为空") @InEnum(PromotionProductScopeEnum.class) private Integer productScope; @@ -57,7 +57,7 @@ public class CouponTemplateBaseVO { @Schema(description = "商品 SPU 编号的数组", example = "1,3") private List productSpuIds; - @Schema(description = "生效日期类型", required = true, example = "1") + @Schema(description = "生效日期类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotNull(message = "生效日期类型不能为空") @InEnum(CouponTemplateValidityTypeEnum.class) private Integer validityType; @@ -80,7 +80,7 @@ public class CouponTemplateBaseVO { @Min(value = 1L, message = "开始天数必须大于 1") private Integer fixedEndTerm; - @Schema(description = "优惠类型", required = true, example = "1") + @Schema(description = "优惠类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotNull(message = "优惠类型不能为空") @InEnum(PromotionDiscountTypeEnum.class) private Integer discountType; diff --git a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/coupon/vo/template/CouponTemplateRespVO.java b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/coupon/vo/template/CouponTemplateRespVO.java index b90407b43..d2c9d710a 100755 --- a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/coupon/vo/template/CouponTemplateRespVO.java +++ b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/coupon/vo/template/CouponTemplateRespVO.java @@ -15,20 +15,20 @@ import java.time.LocalDateTime; @ToString(callSuper = true) public class CouponTemplateRespVO extends CouponTemplateBaseVO { - @Schema(description = "模板编号", required = true, example = "1024") + @Schema(description = "模板编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private Long id; - @Schema(description = "状态", required = true, example = "1") + @Schema(description = "状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @InEnum(CommonStatusEnum.class) private Integer status; - @Schema(description = "领取优惠券的数量", required = true, example = "1024") + @Schema(description = "领取优惠券的数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private Integer takeCount; - @Schema(description = "使用优惠券的次数", required = true, example = "2048") + @Schema(description = "使用优惠券的次数", requiredMode = Schema.RequiredMode.REQUIRED, example = "2048") private Integer useCount; - @Schema(description = "创建时间", required = true) + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) private LocalDateTime createTime; } diff --git a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/coupon/vo/template/CouponTemplateUpdateReqVO.java b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/coupon/vo/template/CouponTemplateUpdateReqVO.java index 922e4f057..e57bf6209 100755 --- a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/coupon/vo/template/CouponTemplateUpdateReqVO.java +++ b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/coupon/vo/template/CouponTemplateUpdateReqVO.java @@ -13,7 +13,7 @@ import javax.validation.constraints.NotNull; @ToString(callSuper = true) public class CouponTemplateUpdateReqVO extends CouponTemplateBaseVO { - @Schema(description = "模板编号", required = true, example = "1024") + @Schema(description = "模板编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") @NotNull(message = "模板编号不能为空") private Long id; diff --git a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/coupon/vo/template/CouponTemplateUpdateStatusReqVO.java b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/coupon/vo/template/CouponTemplateUpdateStatusReqVO.java index 630f91fea..a2234e3c5 100644 --- a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/coupon/vo/template/CouponTemplateUpdateStatusReqVO.java +++ b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/coupon/vo/template/CouponTemplateUpdateStatusReqVO.java @@ -11,11 +11,11 @@ import javax.validation.constraints.NotNull; @Data public class CouponTemplateUpdateStatusReqVO { - @Schema(description = "优惠劵模板编号", required = true, example = "1024") + @Schema(description = "优惠劵模板编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") @NotNull(message = "优惠劵模板编号不能为空") private Long id; - @Schema(description = "状态", required = true, example = "1") + @Schema(description = "状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotNull(message = "状态不能为空") @InEnum(value = CommonStatusEnum.class, message = "修改状态必须是 {value}") private Integer status; diff --git a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/decorate/DecorateComponentController.java b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/decorate/DecorateComponentController.java new file mode 100644 index 000000000..9536df7f0 --- /dev/null +++ b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/decorate/DecorateComponentController.java @@ -0,0 +1,46 @@ +package cn.iocoder.yudao.module.promotion.controller.admin.decorate; + +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.validation.InEnum; +import cn.iocoder.yudao.module.promotion.controller.admin.decorate.vo.DecorateComponentSaveReqVO; +import cn.iocoder.yudao.module.promotion.controller.admin.decorate.vo.DecorateComponentRespVO; +import cn.iocoder.yudao.module.promotion.enums.decorate.DecoratePageEnum; +import cn.iocoder.yudao.module.promotion.service.decorate.DecorateComponentService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.validation.Valid; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; +import static cn.iocoder.yudao.module.promotion.convert.decorate.DecorateComponentConvert.INSTANCE; + +@Tag(name = "管理后台 - 店铺页面装修") +@RestController +@RequestMapping("/promotion/decorate") +@Validated +public class DecorateComponentController { + @Resource + private DecorateComponentService decorateComponentService; + + @PostMapping("/page-save") + @Operation(summary = "保存页面装修") + // TODO 加权限 + public CommonResult savePageComponents(@Valid @RequestBody DecorateComponentSaveReqVO reqVO) { + decorateComponentService.savePageComponents(reqVO); + return success(true); + } + + @GetMapping("/get-page-components") + @Operation(summary = "获取装修页面组件") + @Parameter(name = "pageId", description = "页面 id", required = true) + // TODO 加权限 + public CommonResult getPageComponents( + @RequestParam("pageId") @InEnum(DecoratePageEnum.class) Integer pageId) { + return success(INSTANCE.convert2(pageId, decorateComponentService.getPageComponents(pageId))); + } + +} diff --git a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/decorate/vo/DecorateComponentRespVO.java b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/decorate/vo/DecorateComponentRespVO.java new file mode 100644 index 000000000..5928034a4 --- /dev/null +++ b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/decorate/vo/DecorateComponentRespVO.java @@ -0,0 +1,33 @@ +package cn.iocoder.yudao.module.promotion.controller.admin.decorate.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.List; + +@Schema(description = "管理后台 - 页面装修 Resp VO") +@Data +public class DecorateComponentRespVO { + + @Schema(description = "页面 id ", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + private Integer pageId; + + @Schema(description = "页面组件", requiredMode = Schema.RequiredMode.REQUIRED, example = "TODO") + private List components; + + @Schema(description = "管理后台 - 页面组件 Resp VO") + @Data + public static class ComponentRespVO { + + @Schema(description = "组件编码", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + private Long id; + + @Schema(description = "组件编码", requiredMode = Schema.RequiredMode.REQUIRED, example = "nav-menu") + private String code; + + @Schema(description = "组件的内容配置项", requiredMode = Schema.RequiredMode.NOT_REQUIRED, example = "TODO") + private String value; + + } + +} diff --git a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/decorate/vo/DecorateComponentSaveReqVO.java b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/decorate/vo/DecorateComponentSaveReqVO.java new file mode 100644 index 000000000..f3838a763 --- /dev/null +++ b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/decorate/vo/DecorateComponentSaveReqVO.java @@ -0,0 +1,44 @@ +package cn.iocoder.yudao.module.promotion.controller.admin.decorate.vo; + +import cn.iocoder.yudao.framework.common.validation.InEnum; +import cn.iocoder.yudao.module.promotion.enums.decorate.DecoratePageEnum; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import javax.validation.Valid; +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; +import java.util.List; + +@Schema(description = "管理后台 - 页面装修的保存 Request VO ") +@Data +public class DecorateComponentSaveReqVO { + + @Schema(description = "页面 id ", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @NotNull(message = "页面 id 不能为空") + @InEnum(DecoratePageEnum.class) + private Integer pageId; + + @Schema(description = "页面组件列表", requiredMode = Schema.RequiredMode.REQUIRED, example = "TODO") + @NotEmpty(message = "页面组件列表不能为空") + @Valid + private List components; + + @Schema(description = "管理后台 - 页面装修组件 Request VO") + @Data + public static class ComponentReqVO { + + @Schema(description = "组件编码", example = "1") + private Long id; + + @Schema(description = "组件编码", requiredMode = Schema.RequiredMode.REQUIRED, example = "nav-menu") + @NotEmpty(message = "组件编码不能为空") + private String code; + + @Schema(description = "组件对应值, json 字符串, 含内容配置,具体数据", requiredMode = Schema.RequiredMode.REQUIRED, example = "TODO") + @NotEmpty(message = "组件值为空") + private String value; + + } + +} diff --git a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/discount/vo/DiscountActivityBaseVO.java b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/discount/vo/DiscountActivityBaseVO.java index 1f0d6e066..a72990531 100755 --- a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/discount/vo/DiscountActivityBaseVO.java +++ b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/discount/vo/DiscountActivityBaseVO.java @@ -22,16 +22,16 @@ import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_ @Data public class DiscountActivityBaseVO { - @Schema(description = "活动标题", required = true, example = "一个标题") + @Schema(description = "活动标题", requiredMode = Schema.RequiredMode.REQUIRED, example = "一个标题") @NotNull(message = "活动标题不能为空") private String name; - @Schema(description = "开始时间", required = true) + @Schema(description = "开始时间", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "开始时间不能为空") @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) private LocalDateTime startTime; - @Schema(description = "结束时间", required = true) + @Schema(description = "结束时间", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "结束时间不能为空") @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) private LocalDateTime endTime; @@ -43,15 +43,15 @@ public class DiscountActivityBaseVO { @Data public static class Product { - @Schema(description = "商品 SPU 编号", required = true, example = "1") + @Schema(description = "商品 SPU 编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotNull(message = "商品 SPU 编号不能为空") private Long spuId; - @Schema(description = "商品 SKU 编号", required = true, example = "1") + @Schema(description = "商品 SKU 编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotNull(message = "商品 SKU 编号不能为空") private Long skuId; - @Schema(description = "优惠类型", required = true, example = "1") + @Schema(description = "优惠类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotNull(message = "优惠类型不能为空") @InEnum(PromotionDiscountTypeEnum.class) private Integer discountType; diff --git a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/discount/vo/DiscountActivityRespVO.java b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/discount/vo/DiscountActivityRespVO.java index b552c56ed..92fae75a2 100755 --- a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/discount/vo/DiscountActivityRespVO.java +++ b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/discount/vo/DiscountActivityRespVO.java @@ -14,14 +14,14 @@ import java.time.LocalDateTime; @ToString(callSuper = true) public class DiscountActivityRespVO extends DiscountActivityBaseVO { - @Schema(description = "活动编号", required = true, example = "1024") + @Schema(description = "活动编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private Long id; - @Schema(description = "活动状态", required = true, example = "1") + @Schema(description = "活动状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotNull(message = "活动状态不能为空") private Integer status; - @Schema(description = "创建时间", required = true) + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) private LocalDateTime createTime; } diff --git a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/discount/vo/DiscountActivityUpdateReqVO.java b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/discount/vo/DiscountActivityUpdateReqVO.java index f9bf48c06..83ff6d1e1 100755 --- a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/discount/vo/DiscountActivityUpdateReqVO.java +++ b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/discount/vo/DiscountActivityUpdateReqVO.java @@ -16,7 +16,7 @@ import java.util.List; @ToString(callSuper = true) public class DiscountActivityUpdateReqVO extends DiscountActivityBaseVO { - @Schema(description = "活动编号", required = true, example = "1024") + @Schema(description = "活动编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") @NotNull(message = "活动编号不能为空") private Long id; diff --git a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/reward/vo/RewardActivityBaseVO.java b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/reward/vo/RewardActivityBaseVO.java index 2cd7c7240..3cb3109f3 100755 --- a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/reward/vo/RewardActivityBaseVO.java +++ b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/reward/vo/RewardActivityBaseVO.java @@ -25,16 +25,16 @@ import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_ @Data public class RewardActivityBaseVO { - @Schema(description = "活动标题", required = true, example = "满啦满啦") + @Schema(description = "活动标题", requiredMode = Schema.RequiredMode.REQUIRED, example = "满啦满啦") @NotNull(message = "活动标题不能为空") private String name; - @Schema(description = "开始时间", required = true) + @Schema(description = "开始时间", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "开始时间不能为空") @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) private LocalDateTime startTime; - @Schema(description = "结束时间", required = true) + @Schema(description = "结束时间", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "结束时间不能为空") @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) @Future(message = "结束时间必须大于当前时间") @@ -43,12 +43,12 @@ public class RewardActivityBaseVO { @Schema(description = "备注", example = "biubiubiu") private String remark; - @Schema(description = "条件类型", required = true, example = "1") + @Schema(description = "条件类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotNull(message = "条件类型不能为空") @InEnum(value = PromotionConditionTypeEnum.class, message = "条件类型必须是 {value}") private Integer conditionType; - @Schema(description = "商品范围", required = true, example = "1") + @Schema(description = "商品范围", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotNull(message = "商品范围不能为空") @InEnum(value = PromotionConditionTypeEnum.class, message = "商品范围必须是 {value}") private Integer productScope; @@ -66,18 +66,18 @@ public class RewardActivityBaseVO { @Data public static class Rule { - @Schema(description = "优惠门槛", required = true, example = "100") // 1. 满 N 元,单位:分; 2. 满 N 件 + @Schema(description = "优惠门槛", requiredMode = Schema.RequiredMode.REQUIRED, example = "100") // 1. 满 N 元,单位:分; 2. 满 N 件 @Min(value = 1L, message = "优惠门槛必须大于等于 1") private Integer limit; - @Schema(description = "优惠价格", required = true, example = "100") + @Schema(description = "优惠价格", requiredMode = Schema.RequiredMode.REQUIRED, example = "100") @Min(value = 1L, message = "优惠价格必须大于等于 1") private Integer discountPrice; - @Schema(description = "是否包邮", required = true, example = "true") + @Schema(description = "是否包邮", requiredMode = Schema.RequiredMode.REQUIRED, example = "true") private Boolean freeDelivery; - @Schema(description = "赠送的积分", required = true, example = "100") + @Schema(description = "赠送的积分", requiredMode = Schema.RequiredMode.REQUIRED, example = "100") @Min(value = 1L, message = "赠送的积分必须大于等于 1") private Integer point; diff --git a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/reward/vo/RewardActivityRespVO.java b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/reward/vo/RewardActivityRespVO.java index 8ad93cb59..67bf12153 100755 --- a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/reward/vo/RewardActivityRespVO.java +++ b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/reward/vo/RewardActivityRespVO.java @@ -13,13 +13,13 @@ import java.time.LocalDateTime; @ToString(callSuper = true) public class RewardActivityRespVO extends RewardActivityBaseVO { - @Schema(description = "活动编号", required = true, example = "1024") + @Schema(description = "活动编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private Integer id; - @Schema(description = "活动状态", required = true, example = "1") + @Schema(description = "活动状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Integer status; - @Schema(description = "创建时间", required = true) + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) private LocalDateTime createTime; } diff --git a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/reward/vo/RewardActivityUpdateReqVO.java b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/reward/vo/RewardActivityUpdateReqVO.java index 66d9c02ba..3185ec81d 100755 --- a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/reward/vo/RewardActivityUpdateReqVO.java +++ b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/reward/vo/RewardActivityUpdateReqVO.java @@ -13,7 +13,7 @@ import javax.validation.constraints.NotNull; @ToString(callSuper = true) public class RewardActivityUpdateReqVO extends RewardActivityBaseVO { - @Schema(description = "活动编号", required = true, example = "1024") + @Schema(description = "活动编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") @NotNull(message = "活动编号不能为空") private Long id; diff --git a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/seckill/SeckillConfigController.java b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/seckill/SeckillConfigController.java new file mode 100644 index 000000000..628c6d1c2 --- /dev/null +++ b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/seckill/SeckillConfigController.java @@ -0,0 +1,99 @@ +package cn.iocoder.yudao.module.promotion.controller.admin.seckill; + +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.config.*; +import cn.iocoder.yudao.module.promotion.convert.seckill.seckillconfig.SeckillConfigConvert; +import cn.iocoder.yudao.module.promotion.dal.dataobject.seckill.seckillconfig.SeckillConfigDO; +import cn.iocoder.yudao.module.promotion.service.seckill.seckillconfig.SeckillConfigService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.validation.Valid; +import java.util.List; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +/** + * 管理后台 - 秒杀时段相关接口 + * + * @author HUIHUI + */ +@Tag(name = "管理后台 - 秒杀时段") +@RestController +@RequestMapping("/promotion/seckill-config") +@Validated +public class SeckillConfigController { + + @Resource + private SeckillConfigService seckillConfigService; + + @PostMapping("/create") + @Operation(summary = "创建秒杀时段") + @PreAuthorize("@ss.hasPermission('promotion:seckill-config:create')") + public CommonResult createSeckillConfig(@Valid @RequestBody SeckillConfigCreateReqVO createReqVO) { + return success(seckillConfigService.createSeckillConfig(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新秒杀时段") + @PreAuthorize("@ss.hasPermission('promotion:seckill-config:update')") + public CommonResult updateSeckillConfig(@Valid @RequestBody SeckillConfigUpdateReqVO updateReqVO) { + seckillConfigService.updateSeckillConfig(updateReqVO); + return success(true); + } + + @PutMapping("/update-status") + @Operation(summary = "修改时段配置状态") + @PreAuthorize("@ss.hasPermission('system:seckill-config:update')") + public CommonResult updateSeckillConfigStatus(@Valid @RequestBody SeckillConfigUpdateStatusReqVo reqVO) { + seckillConfigService.updateSeckillConfigStatus(reqVO.getId(), reqVO.getStatus()); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除秒杀时段") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('promotion:seckill-config:delete')") + public CommonResult deleteSeckillConfig(@RequestParam("id") Long id) { + seckillConfigService.deleteSeckillConfig(id); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得秒杀时段") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('promotion:seckill-config:query')") + public CommonResult getSeckillConfig(@RequestParam("id") Long id) { + SeckillConfigDO seckillConfig = seckillConfigService.getSeckillConfig(id); + return success(SeckillConfigConvert.INSTANCE.convert(seckillConfig)); + } + + @GetMapping("/list") + @Operation(summary = "获得所有秒杀时段列表") + @PreAuthorize("@ss.hasPermission('promotion:seckill-config:query')") + public CommonResult> getSeckillConfigList() { + List list = seckillConfigService.getSeckillConfigList(); + return success(SeckillConfigConvert.INSTANCE.convertList(list)); + } + + @GetMapping("/list-all-simple") + @Operation(summary = "获得所有开启状态的秒杀时段精简列表", description = "主要用于前端的下拉选项") + public CommonResult> getListAllSimple() { + List list = seckillConfigService.getListAllSimple(); + return success(SeckillConfigConvert.INSTANCE.convertList1(list)); + } + + @GetMapping("/page") + @Operation(summary = "获得秒杀活动分页") + @PreAuthorize("@ss.hasPermission('promotion:seckill-config:query')") + public CommonResult> getSeckillActivityPage(@Valid SeckillConfigPageReqVO pageVO) { + PageResult pageResult = seckillConfigService.getSeckillConfigPage(pageVO); + return success(SeckillConfigConvert.INSTANCE.convertPage(pageResult)); + } +} diff --git a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/seckill/SeckillTimeController.java b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/seckill/SeckillTimeController.java deleted file mode 100644 index 992f34ab9..000000000 --- a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/seckill/SeckillTimeController.java +++ /dev/null @@ -1,72 +0,0 @@ -package cn.iocoder.yudao.module.promotion.controller.admin.seckill; - -import cn.iocoder.yudao.framework.common.pojo.CommonResult; -import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.time.SeckillTimeCreateReqVO; -import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.time.SeckillTimeRespVO; -import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.time.SeckillTimeUpdateReqVO; -import cn.iocoder.yudao.module.promotion.convert.seckill.seckilltime.SeckillTimeConvert; -import cn.iocoder.yudao.module.promotion.dal.dataobject.seckill.seckilltime.SeckillTimeDO; -import cn.iocoder.yudao.module.promotion.service.seckill.seckilltime.SeckillTimeService; -import io.swagger.v3.oas.annotations.Operation; -import io.swagger.v3.oas.annotations.Parameter; -import io.swagger.v3.oas.annotations.tags.Tag; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.*; - -import javax.annotation.Resource; -import javax.validation.Valid; -import java.util.List; - -import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; - -@Tag(name = "管理后台 - 秒杀时段") -@RestController -@RequestMapping("/promotion/seckill-time") -@Validated -public class SeckillTimeController { - - @Resource - private SeckillTimeService seckillTimeService; - - @PostMapping("/create") - @Operation(summary = "创建秒杀时段") - @PreAuthorize("@ss.hasPermission('promotion:seckill-time:create')") - public CommonResult createSeckillTime(@Valid @RequestBody SeckillTimeCreateReqVO createReqVO) { - return success(seckillTimeService.createSeckillTime(createReqVO)); - } - - @PutMapping("/update") - @Operation(summary = "更新秒杀时段") - @PreAuthorize("@ss.hasPermission('promotion:seckill-time:update')") - public CommonResult updateSeckillTime(@Valid @RequestBody SeckillTimeUpdateReqVO updateReqVO) { - seckillTimeService.updateSeckillTime(updateReqVO); - return success(true); - } - - @DeleteMapping("/delete") - @Operation(summary = "删除秒杀时段") - @Parameter(name = "id", description = "编号", required = true) - @PreAuthorize("@ss.hasPermission('promotion:seckill-time:delete')") - public CommonResult deleteSeckillTime(@RequestParam("id") Long id) { - seckillTimeService.deleteSeckillTime(id); - return success(true); - } - - @GetMapping("/get") - @Operation(summary = "获得秒杀时段") - @Parameter(name = "id", description = "编号", required = true, example = "1024") - @PreAuthorize("@ss.hasPermission('promotion:seckill-time:query')") - public CommonResult getSeckillTime(@RequestParam("id") Long id) { - SeckillTimeDO seckillTime = seckillTimeService.getSeckillTime(id); - return success(SeckillTimeConvert.INSTANCE.convert(seckillTime)); - } - - @GetMapping("/list") - @Operation(summary = "获得所有秒杀时段列表") - @PreAuthorize("@ss.hasPermission('promotion:seckill-time:query')") - public CommonResult> getSeckillTimeList() { - List list = seckillTimeService.getSeckillTimeList(); - return success(SeckillTimeConvert.INSTANCE.convertList(list)); - } -} diff --git a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/seckill/vo/activity/SeckillActivityBaseVO.java b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/seckill/vo/activity/SeckillActivityBaseVO.java index 1fa803f71..ac1126d8c 100644 --- a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/seckill/vo/activity/SeckillActivityBaseVO.java +++ b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/seckill/vo/activity/SeckillActivityBaseVO.java @@ -1,65 +1,63 @@ package cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.activity; -import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; -import javax.validation.constraints.Min; import javax.validation.constraints.NotNull; import java.time.LocalDateTime; +import java.util.List; import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; -import static cn.iocoder.yudao.framework.common.util.date.DateUtils.TIME_ZONE_DEFAULT; /** + * 秒杀活动基地签证官 * 秒杀活动 Base VO,提供给添加、修改、详细的子 VO 使用 * 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成 + * + * @author HUIHUI */ @Data public class SeckillActivityBaseVO { - @Schema(description = "秒杀活动名称", required = true, example = "晚九点限时秒杀") + // TODO @puhui999:对应单 spuId 哈 + @Schema(description = "秒杀活动商品id", requiredMode = Schema.RequiredMode.REQUIRED, example = "[121,1212]") + @NotNull(message = "秒杀活动商品不能为空") + private List spuIds; + + @Schema(description = "秒杀活动名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "618大促") @NotNull(message = "秒杀活动名称不能为空") private String name; - @Schema(description = "活动开始时间", required = true) + @Schema(description = "备注", example = "清仓大甩卖割韭菜") + private String remark; + + @Schema(description = "活动开始时间", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "活动开始时间不能为空") @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) - @JsonFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND, timezone = TIME_ZONE_DEFAULT) private LocalDateTime startTime; - @Schema(description = "活动结束时间", required = true) + @Schema(description = "活动结束时间", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "活动结束时间不能为空") @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) - @JsonFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND, timezone = TIME_ZONE_DEFAULT) private LocalDateTime endTime; + @Schema(description = "排序", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "排序不能为空") + private Integer sort; - @Schema(description = "商品") - @Data - public static class Product { + @Schema(description = "秒杀时段 id", requiredMode = Schema.RequiredMode.REQUIRED, example = "[1,2,3]") + @NotNull(message = "秒杀时段不能为空") + private List configIds; - @Schema(description = "商品 SPU 编号", required = true, example = "1") - @NotNull(message = "商品 SPU 编号不能为空") - private Long spuId; + @Schema(description = "总限购数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "12877") + private Integer totalLimitCount; - @Schema(description = "商品 SKU 编号", required = true, example = "1") - @NotNull(message = "商品 SKU 编号不能为空") - private Long skuId; + @Schema(description = "单次限够数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "31683") + private Integer singleLimitCount; - @Schema(description = "秒杀金额", required = true, example = "12.00") - @NotNull(message = "秒杀金额不能为空") - private Integer seckillPrice; - - @Schema(description = "秒杀库存", example = "80") - @Min(value = 0, message = "秒杀库存需要大于等于 0") - private Integer stock; - - @Schema(description = "每人限购", example = "10") // 如果为 0 则不限购 - @Min(value = 0, message = "每人限购需要大于等于 0") - private Integer limitBuyCount; - - } + // TODO @puhui999:这个应该是计算出来的字段,只返回,create 和 update 不用哈 + @Schema(description = "秒杀总库存", requiredMode = Schema.RequiredMode.REQUIRED, example = "0") + private Integer totalStock; } diff --git a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/seckill/vo/activity/SeckillActivityCreateReqVO.java b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/seckill/vo/activity/SeckillActivityCreateReqVO.java index 37adfc7e4..46a58b565 100644 --- a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/seckill/vo/activity/SeckillActivityCreateReqVO.java +++ b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/seckill/vo/activity/SeckillActivityCreateReqVO.java @@ -1,13 +1,12 @@ package cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.activity; + +import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.product.SeckillProductCreateReqVO; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString; -import javax.validation.Valid; -import javax.validation.constraints.NotEmpty; -import javax.validation.constraints.NotNull; import java.util.List; @Schema(description = "管理后台 - 秒杀活动创建 Request VO") @@ -16,22 +15,7 @@ import java.util.List; @ToString(callSuper = true) public class SeckillActivityCreateReqVO extends SeckillActivityBaseVO { - @Schema(description = "备注", example = "限时秒杀活动") - private String remark; - - @Schema(description = "排序", required = true, example = "1") - @NotNull(message = "排序不能为空") - private Integer sort; - - @Schema(description = "秒杀时段id", required = true, example = "1,3") - @NotEmpty(message = "参与场次不能为空") - private List timeIds; - - /** - * 商品列表 - */ - @NotEmpty(message = "商品列表不能为空") - @Valid - private List products; + @Schema(description = "秒杀商品", requiredMode = Schema.RequiredMode.REQUIRED) + private List products; } diff --git a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/seckill/vo/activity/SeckillActivityDetailRespVO.java b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/seckill/vo/activity/SeckillActivityDetailRespVO.java index 14b32c324..c3cc2ebf0 100644 --- a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/seckill/vo/activity/SeckillActivityDetailRespVO.java +++ b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/seckill/vo/activity/SeckillActivityDetailRespVO.java @@ -1,21 +1,21 @@ package cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.activity; +import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.product.SeckillProductRespVO; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; -import lombok.EqualsAndHashCode; import lombok.ToString; import java.util.List; @Schema(description = "管理后台 - 秒杀活动的详细 Response VO") @Data -@EqualsAndHashCode(callSuper = true) @ToString(callSuper = true) -public class SeckillActivityDetailRespVO extends SeckillActivityRespVO { +public class SeckillActivityDetailRespVO extends SeckillActivityBaseVO{ - /** - * 商品列表 - */ - private List products; + @Schema(description = "秒杀活动id", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + private Long id; + + @Schema(description = "秒杀商品", requiredMode = Schema.RequiredMode.REQUIRED) + private List products; } diff --git a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/seckill/vo/activity/SeckillActivityPageReqVO.java b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/seckill/vo/activity/SeckillActivityPageReqVO.java index f0299377d..ac634a7b2 100644 --- a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/seckill/vo/activity/SeckillActivityPageReqVO.java +++ b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/seckill/vo/activity/SeckillActivityPageReqVO.java @@ -26,7 +26,7 @@ public class SeckillActivityPageReqVO extends PageParam { private Integer status; @Schema(description = "秒杀时段id", example = "1") - private Long timeId; + private Long configId; @Schema(description = "创建时间") @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) diff --git a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/seckill/vo/activity/SeckillActivityRespVO.java b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/seckill/vo/activity/SeckillActivityRespVO.java index e898a0d4f..64f5c301a 100644 --- a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/seckill/vo/activity/SeckillActivityRespVO.java +++ b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/seckill/vo/activity/SeckillActivityRespVO.java @@ -1,41 +1,31 @@ package cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.activity; +import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.product.SeckillProductRespVO; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString; -import java.time.LocalDateTime; import java.util.List; +/** + * 管理后台 - 秒杀活动 Response VO + * + * @author HUIHUI + */ @Schema(description = "管理后台 - 秒杀活动 Response VO") @Data @EqualsAndHashCode(callSuper = true) @ToString(callSuper = true) public class SeckillActivityRespVO extends SeckillActivityBaseVO { - @Schema(description = "秒杀活动id", required = true, example = "1") + @Schema(description = "秒杀活动id", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Long id; - @Schema(description = "付款订单数", required = true, example = "1") - private Integer orderCount; + @Schema(description = "秒杀商品", requiredMode = Schema.RequiredMode.REQUIRED) + private List products; // TODO puhui: 考虑是否去除 - @Schema(description = "付款人数", required = true, example = "1") - private Integer userCount; - - @Schema(description = "创建时间", required = true) - private LocalDateTime createTime; - - @Schema(description = "秒杀时段id", required = true, example = "1,3") - private List timeIds; - - @Schema(description = "排序", required = true, example = "1") - private Integer sort; - - @Schema(description = "备注", example = "限时秒杀活动") - private String remark; - - @Schema(description = "活动状态", example = "进行中") + @Schema(description = "活动状态 开启:0 禁用:1", requiredMode = Schema.RequiredMode.REQUIRED, example = "0") private Integer status; } diff --git a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/seckill/vo/activity/SeckillActivityUpdateReqVO.java b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/seckill/vo/activity/SeckillActivityUpdateReqVO.java index 3787d619c..3fdf4ed6e 100644 --- a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/seckill/vo/activity/SeckillActivityUpdateReqVO.java +++ b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/seckill/vo/activity/SeckillActivityUpdateReqVO.java @@ -1,13 +1,11 @@ package cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.activity; +import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.product.SeckillProductUpdateReqVO; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString; -import javax.validation.Valid; -import javax.validation.constraints.NotEmpty; -import javax.validation.constraints.NotNull; import java.util.List; @Schema(description = "管理后台 - 秒杀活动更新 Request VO") @@ -16,26 +14,10 @@ import java.util.List; @ToString(callSuper = true) public class SeckillActivityUpdateReqVO extends SeckillActivityBaseVO { - @Schema(description = "秒杀活动编号", required = true, example = "224") - @NotNull(message = "秒杀活动编号不能为空") + @Schema(description = "秒杀活动id", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Long id; - @Schema(description = "备注", example = "限时秒杀活动") - private String remark; - - @Schema(description = "排序", required = true, example = "1") - @NotNull(message = "排序不能为空") - private Integer sort; - - @Schema(description = "秒杀时段id", required = true, example = "1,3") - @NotEmpty(message = "秒杀时段id不能为空") - private List timeIds; - - /** - * 商品列表 - */ - @NotEmpty(message = "商品列表不能为空") - @Valid - private List products; + @Schema(description = "秒杀商品", requiredMode = Schema.RequiredMode.REQUIRED) + private List products; } diff --git a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/seckill/vo/config/SeckillConfigBaseVO.java b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/seckill/vo/config/SeckillConfigBaseVO.java new file mode 100644 index 000000000..27b69b2b1 --- /dev/null +++ b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/seckill/vo/config/SeckillConfigBaseVO.java @@ -0,0 +1,37 @@ +package cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.config; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import javax.validation.constraints.NotNull; + +/** + * 秒杀时段 Base VO,提供给添加、修改、详细的子 VO 使用 + * 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成 + * + * @author HUIHUI + */ +@Data +public class SeckillConfigBaseVO { + + @Schema(description = "秒杀时段名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "早上场") + @NotNull(message = "秒杀时段名称不能为空") + private String name; + + @Schema(description = "开始时间点", requiredMode = Schema.RequiredMode.REQUIRED, example = "09:00:00") + @NotNull(message = "开始时间点不能为空") + private String startTime; + + @Schema(description = "结束时间点", requiredMode = Schema.RequiredMode.REQUIRED, example = "16:00:00") + @NotNull(message = "结束时间点不能为空") + private String endTime; + + @Schema(description = "秒杀主图", requiredMode = Schema.RequiredMode.REQUIRED, example = "https://www.iocoder.cn") + @NotNull(message = "秒杀主图不能为空") + private String picUrl; + + @Schema(description = "状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "0") + @NotNull(message = "状态不能为空") + private Integer status; + +} diff --git a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/seckill/vo/time/SeckillTimeCreateReqVO.java b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/seckill/vo/config/SeckillConfigCreateReqVO.java similarity index 80% rename from yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/seckill/vo/time/SeckillTimeCreateReqVO.java rename to yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/seckill/vo/config/SeckillConfigCreateReqVO.java index 4d3ccd092..979ee699d 100644 --- a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/seckill/vo/time/SeckillTimeCreateReqVO.java +++ b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/seckill/vo/config/SeckillConfigCreateReqVO.java @@ -1,4 +1,4 @@ -package cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.time; +package cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.config; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; @@ -9,6 +9,6 @@ import lombok.ToString; @Data @EqualsAndHashCode(callSuper = true) @ToString(callSuper = true) -public class SeckillTimeCreateReqVO extends SeckillTimeBaseVO { +public class SeckillConfigCreateReqVO extends SeckillConfigBaseVO { } diff --git a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/seckill/vo/time/SeckillTimePageReqVO.java b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/seckill/vo/config/SeckillConfigPageReqVO.java similarity index 52% rename from yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/seckill/vo/time/SeckillTimePageReqVO.java rename to yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/seckill/vo/config/SeckillConfigPageReqVO.java index 36853a0e0..e49a02837 100644 --- a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/seckill/vo/time/SeckillTimePageReqVO.java +++ b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/seckill/vo/config/SeckillConfigPageReqVO.java @@ -1,29 +1,27 @@ -package cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.time; +package cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.config; import cn.iocoder.yudao.framework.common.pojo.PageParam; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString; -import org.springframework.format.annotation.DateTimeFormat; - -import java.time.LocalTime; +// TODO @puhui:VO 上不写注释,已经有注解啦。 +/** + * 管理后台 - 秒杀时段分页 Request VO + * + * @author HUIHUI + */ @Schema(description = "管理后台 - 秒杀时段分页 Request VO") @Data @EqualsAndHashCode(callSuper = true) @ToString(callSuper = true) -public class SeckillTimePageReqVO extends PageParam { +public class SeckillConfigPageReqVO extends PageParam { @Schema(description = "秒杀时段名称", example = "上午场") private String name; - @Schema(description = "开始时间点", example = "16:30:40") - @DateTimeFormat(pattern = "HH:mm:ss") - private LocalTime startTime; - - @Schema(description = "结束时间点", example = "16:30:40") - @DateTimeFormat(pattern = "HH:mm:ss") - private LocalTime endTime; + @Schema(description = "状态", example = "0") + private Integer status; } diff --git a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/seckill/vo/time/SeckillTimeRespVO.java b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/seckill/vo/config/SeckillConfigRespVO.java similarity index 55% rename from yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/seckill/vo/time/SeckillTimeRespVO.java rename to yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/seckill/vo/config/SeckillConfigRespVO.java index 8e8c41406..5411536c9 100644 --- a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/seckill/vo/time/SeckillTimeRespVO.java +++ b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/seckill/vo/config/SeckillConfigRespVO.java @@ -1,4 +1,4 @@ -package cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.time; +package cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.config; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; @@ -11,15 +11,15 @@ import java.time.LocalDateTime; @Data @EqualsAndHashCode(callSuper = true) @ToString(callSuper = true) -public class SeckillTimeRespVO extends SeckillTimeBaseVO { +public class SeckillConfigRespVO extends SeckillConfigBaseVO { - @Schema(description = "编号", required = true, example = "1") + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Long id; - @Schema(description = "秒杀活动数量", required = true, example = "1") + @Schema(description = "秒杀活动数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "100") private Integer seckillActivityCount; - @Schema(description = "创建时间", required = true) + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) private LocalDateTime createTime; } diff --git a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/seckill/vo/config/SeckillConfigSimpleRespVO.java b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/seckill/vo/config/SeckillConfigSimpleRespVO.java new file mode 100644 index 000000000..a9079e7b0 --- /dev/null +++ b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/seckill/vo/config/SeckillConfigSimpleRespVO.java @@ -0,0 +1,24 @@ +package cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.config; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import javax.validation.constraints.NotNull; + +@Schema(description = "管理后台 - 秒杀时段配置精简信息 Response VO") +@Data +@NoArgsConstructor +@AllArgsConstructor +public class SeckillConfigSimpleRespVO { + + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @NotNull(message = "编号不能为空") + private Long id; + + @Schema(description = "秒杀时段名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "早上场") + @NotNull(message = "秒杀时段名称不能为空") + private String name; + +} diff --git a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/seckill/vo/time/SeckillTimeUpdateReqVO.java b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/seckill/vo/config/SeckillConfigUpdateReqVO.java similarity index 71% rename from yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/seckill/vo/time/SeckillTimeUpdateReqVO.java rename to yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/seckill/vo/config/SeckillConfigUpdateReqVO.java index 3ef8db3e3..5b11dc4fc 100644 --- a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/seckill/vo/time/SeckillTimeUpdateReqVO.java +++ b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/seckill/vo/config/SeckillConfigUpdateReqVO.java @@ -1,4 +1,4 @@ -package cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.time; +package cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.config; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; @@ -11,9 +11,9 @@ import javax.validation.constraints.NotNull; @Data @EqualsAndHashCode(callSuper = true) @ToString(callSuper = true) -public class SeckillTimeUpdateReqVO extends SeckillTimeBaseVO { +public class SeckillConfigUpdateReqVO extends SeckillConfigBaseVO { - @Schema(description = "编号", required = true, example = "1") + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotNull(message = "编号不能为空") private Long id; diff --git a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/seckill/vo/config/SeckillConfigUpdateStatusReqVo.java b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/seckill/vo/config/SeckillConfigUpdateStatusReqVo.java new file mode 100644 index 000000000..0547cb1de --- /dev/null +++ b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/seckill/vo/config/SeckillConfigUpdateStatusReqVo.java @@ -0,0 +1,23 @@ +package cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.config; + +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; +import cn.iocoder.yudao.framework.common.validation.InEnum; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import javax.validation.constraints.NotNull; + +@Schema(description = "管理后台 - 修改时段配置状态 Request VO") +@Data +public class SeckillConfigUpdateStatusReqVo { + + @Schema(description = "时段配置编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + @NotNull(message = "时段配置编号不能为空") + private Long id; + + @Schema(description = "状态,见 CommonStatusEnum 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @NotNull(message = "状态不能为空") + @InEnum(value = CommonStatusEnum.class, message = "修改状态必须是 {value}") + private Integer status; + +} diff --git a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/seckill/vo/product/SeckillProductBaseVO.java b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/seckill/vo/product/SeckillProductBaseVO.java new file mode 100644 index 000000000..4dba74fe1 --- /dev/null +++ b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/seckill/vo/product/SeckillProductBaseVO.java @@ -0,0 +1,35 @@ +package cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.product; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import javax.validation.constraints.NotNull; + +/** + * 秒杀参与商品 Base VO,提供给添加、修改、详细的子 VO 使用 + * 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成 + * + * @author HUIHUI + */ +@Data +public class SeckillProductBaseVO { + + // TODO @puhui:spuId 不用传递;因为一个秒杀活动只对应一个 SPU 哈; + @Schema(description = "商品spu_id", requiredMode = Schema.RequiredMode.REQUIRED, example = "30563") + @NotNull(message = "商品spu_id不能为空") + private Long spuId; + + @Schema(description = "商品sku_id", requiredMode = Schema.RequiredMode.REQUIRED, example = "30563") + @NotNull(message = "商品sku_id不能为空") + private Long skuId; + + @Schema(description = "秒杀金额,单位:分", requiredMode = Schema.RequiredMode.REQUIRED, example = "6689") + @NotNull(message = "秒杀金额,单位:分不能为空") + private Integer seckillPrice; + + @Schema(description = "秒杀库存", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "秒杀库存不能为空") + private Integer stock; + + +} diff --git a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/seckill/vo/product/SeckillProductCreateReqVO.java b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/seckill/vo/product/SeckillProductCreateReqVO.java new file mode 100644 index 000000000..9b06f98f6 --- /dev/null +++ b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/seckill/vo/product/SeckillProductCreateReqVO.java @@ -0,0 +1,20 @@ +package cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.product; + +import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.product.SeckillProductBaseVO; +import lombok.*; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import javax.validation.constraints.*; + +/** + * 管理后台 - 秒杀参与商品创建 Request VO + * + * @author HUIHUI + */ +@Schema(description = "管理后台 - 秒杀参与商品创建 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class SeckillProductCreateReqVO extends SeckillProductBaseVO { + +} diff --git a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/seckill/vo/product/SeckillProductRespVO.java b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/seckill/vo/product/SeckillProductRespVO.java new file mode 100644 index 000000000..bb33fab58 --- /dev/null +++ b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/seckill/vo/product/SeckillProductRespVO.java @@ -0,0 +1,24 @@ +package cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.product; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.time.LocalDateTime; + +/** + * 管理后台 - 秒杀参与商品 Response VO + * + * @author HUIHUI + */ +@Schema(description = "管理后台 - 秒杀参与商品 Response VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class SeckillProductRespVO extends SeckillProductBaseVO { + + @Schema(description = "秒杀参与商品编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "256") + private Long id; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + private LocalDateTime createTime; + +} diff --git a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/seckill/vo/product/SeckillProductUpdateReqVO.java b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/seckill/vo/product/SeckillProductUpdateReqVO.java new file mode 100644 index 000000000..3f964255a --- /dev/null +++ b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/seckill/vo/product/SeckillProductUpdateReqVO.java @@ -0,0 +1,22 @@ +package cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.product; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import javax.validation.constraints.*; + +/** + * 管理后台 - 秒杀参与商品更新 Request VO + * + * @author HUIHUI + */ +@Schema(description = "管理后台 - 秒杀参与商品更新 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class SeckillProductUpdateReqVO extends SeckillProductBaseVO { + + @Schema(description = "秒杀参与商品编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "256") + @NotNull(message = "秒杀参与商品编号不能为空") + private Long id; + +} diff --git a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/seckill/vo/time/SeckillTimeBaseVO.java b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/seckill/vo/time/SeckillTimeBaseVO.java deleted file mode 100644 index c15854da6..000000000 --- a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/seckill/vo/time/SeckillTimeBaseVO.java +++ /dev/null @@ -1,28 +0,0 @@ -package cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.time; - -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.Data; - -import javax.validation.constraints.NotNull; -import java.time.LocalTime; - -/** - * 秒杀时段 Base VO,提供给添加、修改、详细的子 VO 使用 - * 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成 - */ -@Data -public class SeckillTimeBaseVO { - - @Schema(description = "秒杀时段名称", required = true, example = "上午场") - @NotNull(message = "秒杀时段名称不能为空") - private String name; - - @Schema(description = "开始时间点", required = true, example = "16:30:40") - @NotNull(message = "开始时间点不能为空") - private LocalTime startTime; - - @Schema(description = "结束时间点", required = true, example = "16:30:40") - @NotNull(message = "结束时间点不能为空") - private LocalTime endTime; - -} diff --git a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/activity/AppActivityController.java b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/activity/AppActivityController.java index a616bfeda..037a24956 100644 --- a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/activity/AppActivityController.java +++ b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/activity/AppActivityController.java @@ -59,6 +59,7 @@ public class AppActivityController { } Map> map = new HashMap<>(); map.put(109L, randomList); + map.put(2L, randomList); return success(map); } diff --git a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/activity/vo/AppActivityRespVO.java b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/activity/vo/AppActivityRespVO.java index 064cc21a2..b168e17e8 100644 --- a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/activity/vo/AppActivityRespVO.java +++ b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/activity/vo/AppActivityRespVO.java @@ -9,19 +9,20 @@ import java.time.LocalDateTime; @Data public class AppActivityRespVO { - @Schema(description = "活动编号", required = true, example = "1024") + @Schema(description = "活动编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private Long id; - @Schema(description = "活动类型", required = true, example = "1") // 对应 PromotionTypeEnum 枚举 + @Schema(description = "活动类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + // 对应 PromotionTypeEnum 枚举 private Integer type; - @Schema(description = "活动名称", required = true, example = "618 大促") + @Schema(description = "活动名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "618 大促") private String name; - @Schema(description = "活动开始时间", required = true) + @Schema(description = "活动开始时间", requiredMode = Schema.RequiredMode.REQUIRED) private LocalDateTime startTime; - @Schema(description = "活动结束时间", required = true) + @Schema(description = "活动结束时间", requiredMode = Schema.RequiredMode.REQUIRED) private LocalDateTime endTime; } diff --git a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/banner/AppBannerController.java b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/banner/AppBannerController.java index 4bc094598..3a4ff8a78 100644 --- a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/banner/AppBannerController.java +++ b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/banner/AppBannerController.java @@ -1,42 +1,42 @@ package cn.iocoder.yudao.module.promotion.controller.app.banner; import cn.iocoder.yudao.framework.common.pojo.CommonResult; -import cn.iocoder.yudao.module.promotion.controller.admin.banner.vo.BannerRespVO; -import cn.iocoder.yudao.module.promotion.convert.banner.BannerConvert; -import cn.iocoder.yudao.module.promotion.dal.dataobject.banner.BannerDO; -import cn.iocoder.yudao.module.promotion.service.banner.BannerService; +import cn.iocoder.yudao.module.promotion.controller.app.banner.vo.AppBannerRespVO; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; -import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; -import javax.annotation.Resource; +import java.util.ArrayList; import java.util.List; import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; -/** - * @author: XIA - */ @RestController -@RequestMapping("/market/banner") -@Tag(name = "用户APP- 首页Banner") +@RequestMapping("/promotion/banner") +@Tag(name = "用户 APP - 首页 Banner") @Validated public class AppBannerController { - @Resource - private BannerService bannerService; - - // TODO @xia:新建一个 AppBannerRespVO,只返回必要的字段。status 要过滤下。然后 sort 下结果 @GetMapping("/list") - @Operation(summary = "获得banner列表") - @PreAuthorize("@ss.hasPermission('market:banner:query')") - public CommonResult> getBannerList() { - List list = bannerService.getBannerList(); - return success(BannerConvert.INSTANCE.convertList(list)); + @Operation(summary = "获得 banner 列表") + // todo @芋艿:swagger 注解,待补全 + // TODO @芋艿:可以增加缓存,提升性能 + // TODO @芋艿:position = 1 时,首页;position = 10 时,拼团活动页 + public CommonResult> getBannerList(@RequestParam("position") Integer position) { + List bannerList = new ArrayList<>(); + AppBannerRespVO banner1 = new AppBannerRespVO(); + banner1.setUrl("https://www.example.com/link1"); + banner1.setPicUrl("https://api.java.crmeb.net/crmebimage/public/content/2022/08/04/0f78716213f64bfa83f191d51a832cbf73f6axavoy.jpg"); + bannerList.add(banner1); + AppBannerRespVO banner2 = new AppBannerRespVO(); + banner2.setUrl("https://www.example.com/link2"); + banner2.setPicUrl("https://api.java.crmeb.net/crmebimage/public/content/2023/01/11/be09e755268b43ee90b0db3a3e1b7132r7a6t2wvsm.jpg"); + bannerList.add(banner2); + return success(bannerList); } } diff --git a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/banner/vo/AppBannerRespVO.java b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/banner/vo/AppBannerRespVO.java new file mode 100644 index 000000000..7656a431d --- /dev/null +++ b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/banner/vo/AppBannerRespVO.java @@ -0,0 +1,20 @@ +package cn.iocoder.yudao.module.promotion.controller.app.banner.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import javax.validation.constraints.NotNull; + +@Schema(description = "用户 App - Banner Response VO") +@Data +public class AppBannerRespVO { + + @Schema(description = "跳转链接", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "跳转链接不能为空") + private String url; + + @Schema(description = "图片地址", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "图片地址不能为空") + private String picUrl; + +} diff --git a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/bargain/AppBargainActivityController.java b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/bargain/AppBargainActivityController.java new file mode 100644 index 000000000..537350aed --- /dev/null +++ b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/bargain/AppBargainActivityController.java @@ -0,0 +1,110 @@ +package cn.iocoder.yudao.module.promotion.controller.app.bargain; + +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.date.LocalDateTimeUtils; +import cn.iocoder.yudao.module.promotion.controller.app.bargain.vo.activity.AppBargainActivityDetailRespVO; +import cn.iocoder.yudao.module.promotion.controller.app.bargain.vo.activity.AppBargainActivityRespVO; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import java.time.Duration; +import java.util.ArrayList; +import java.util.List; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +@Tag(name = "用户 App - 砍价活动") +@RestController +@RequestMapping("/promotion/bargain-activity") +@Validated +public class AppBargainActivityController { + + @GetMapping("/page") + @Operation(summary = "获得砍价活动活动") // TODO 芋艿:只查询进行中,且在时间范围内的 + // TODO 芋艿:缺少 swagger 注解 + public CommonResult> getBargainActivityPage(PageParam pageReqVO) { + List activityList = new ArrayList<>(); + AppBargainActivityRespVO activity1 = new AppBargainActivityRespVO(); + activity1.setId(1L); + activity1.setName("618 大砍价"); + activity1.setSpuId(2048L); + activity1.setPicUrl("https://demo26.crmeb.net/uploads/attach/2021/11/15/a79f5d2ea6bf0c3c11b2127332dfe2df.jpg"); + activity1.setMarketPrice(50); + activity1.setBargainPrice(100); + activity1.setStartTime(LocalDateTimeUtils.addTime(Duration.ofDays(-2))); + activity1.setEndTime(LocalDateTimeUtils.addTime(Duration.ofDays(1))); + activity1.setStock(10); + activityList.add(activity1); + + AppBargainActivityRespVO activity2 = new AppBargainActivityRespVO(); + activity2.setId(2L); + activity2.setName("双十一砍价"); + activity2.setSpuId(4096L); + activity2.setPicUrl("https://thirdwx.qlogo.cn/mmopen/vi_32/Q0j4TwGTfTKXMYJOomfp7cebz3cIeb8sHk3GGSIJtWEgREe3j7J1WoAbTvIOicpcNdFkWAziatBSMod8b5RyS4CQ/132"); + activity2.setMarketPrice(100); + activity2.setBargainPrice(200); + activity2.setStartTime(LocalDateTimeUtils.addTime(Duration.ofDays(-2))); + activity2.setEndTime(LocalDateTimeUtils.addTime(Duration.ofDays(1))); + activity2.setStock(0); + activityList.add(activity2); + + return success(new PageResult<>(activityList, 10L)); + } + + @GetMapping("/list") + @Operation(summary = "获得砍价活动列表", description = "用于小程序首页") + // TODO 芋艿:增加 Spring Cache + // TODO 芋艿:缺少 swagger 注解 + public CommonResult> getBargainActivityList( + @RequestParam(name = "count", defaultValue = "6") Integer count) { + List activityList = new ArrayList<>(); + AppBargainActivityRespVO activity1 = new AppBargainActivityRespVO(); + activity1.setId(1L); + activity1.setName("618 大砍价"); + activity1.setSpuId(2048L); + activity1.setPicUrl("https://demo26.crmeb.net/uploads/attach/2021/11/15/a79f5d2ea6bf0c3c11b2127332dfe2df.jpg"); + activity1.setMarketPrice(50); + activity1.setBargainPrice(100); + activityList.add(activity1); + + AppBargainActivityRespVO activity2 = new AppBargainActivityRespVO(); + activity2.setId(2L); + activity2.setName("双十一砍价"); + activity2.setSpuId(4096L); + activity2.setPicUrl("https://thirdwx.qlogo.cn/mmopen/vi_32/Q0j4TwGTfTKXMYJOomfp7cebz3cIeb8sHk3GGSIJtWEgREe3j7J1WoAbTvIOicpcNdFkWAziatBSMod8b5RyS4CQ/132"); + activity2.setMarketPrice(100); + activity2.setBargainPrice(200); + activityList.add(activity2); + + return success(activityList); + } + + @GetMapping("/get-detail") + @Operation(summary = "获得砍价活动详情") + // TODO 芋艿:缺少 swagger 注解 + public CommonResult getBargainActivityDetail(@RequestParam("id") Long id) { + AppBargainActivityDetailRespVO activity = new AppBargainActivityDetailRespVO(); + activity.setId(2L); + activity.setName("618 大砍价"); + activity.setSpuId(2048L); + activity.setPicUrl("https://demo26.crmeb.net/uploads/attach/2021/11/15/a79f5d2ea6bf0c3c11b2127332dfe2df.jpg"); + activity.setMarketPrice(50); + activity.setBargainPrice(100); + activity.setStock(10); + activity.setUnitName("件"); + activity.setPrice(40); + activity.setStartTime(LocalDateTimeUtils.addTime(Duration.ofDays(-2))); + activity.setEndTime(LocalDateTimeUtils.addTime(Duration.ofDays(-10))); + activity.setDescription("我吃西红柿"); + activity.setSuccessCount(10); + return success(activity); + } + +} diff --git a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/bargain/AppBargainHelpController.java b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/bargain/AppBargainHelpController.java new file mode 100644 index 000000000..6c05122a8 --- /dev/null +++ b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/bargain/AppBargainHelpController.java @@ -0,0 +1,45 @@ +package cn.iocoder.yudao.module.promotion.controller.app.bargain; + +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.module.promotion.controller.app.bargain.vo.help.AppBargainHelpCreateReqVO; +import cn.iocoder.yudao.module.promotion.controller.app.bargain.vo.help.AppBargainHelpRespVO; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.List; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +@Tag(name = "用户 App - 砍价助力") +@RestController +@RequestMapping("/promotion/bargain-help") +@Validated +public class AppBargainHelpController { + + @PostMapping("/create") + @Operation(summary = "创建砍价助力", description = "给拼团记录砍一刀") // 返回结果为砍价金额,单位:分 + public CommonResult createBargainHelp(@RequestBody AppBargainHelpCreateReqVO reqVO) { + return success(20L); + } + + @GetMapping("/list") + @Operation(summary = "获得砍价助力列表") + // TODO 芋艿:swagger + public CommonResult> getBargainHelpList(@RequestParam("recordId") Long recordId) { + List list = new ArrayList<>(); + for (int i = 0; i < 10; i++) { + AppBargainHelpRespVO vo = new AppBargainHelpRespVO(); + vo.setNickname("用户" + i); + vo.setAvatar("https://www.iocoder.cn/avatar/" + i + ".jpg"); + vo.setReducePrice((i + 1) * 100); + vo.setCreateTime(LocalDateTime.now()); + list.add(vo); + } + return success(list); + } + +} diff --git a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/bargain/AppBargainRecordController.java b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/bargain/AppBargainRecordController.java new file mode 100644 index 000000000..0df8db49a --- /dev/null +++ b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/bargain/AppBargainRecordController.java @@ -0,0 +1,145 @@ +package cn.iocoder.yudao.module.promotion.controller.app.bargain; + +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.date.LocalDateTimeUtils; +import cn.iocoder.yudao.module.promotion.controller.app.bargain.vo.record.AppBargainRecordCreateReqVO; +import cn.iocoder.yudao.module.promotion.controller.app.bargain.vo.record.AppBargainRecordDetailRespVO; +import cn.iocoder.yudao.module.promotion.controller.app.bargain.vo.record.AppBargainRecordRespVO; +import cn.iocoder.yudao.module.promotion.controller.app.bargain.vo.record.AppBargainRecordSummaryRespVO; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.time.Duration; +import java.util.ArrayList; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +@Tag(name = "用户 App - 砍价记录") +@RestController +@RequestMapping("/promotion/bargain-record") +@Validated +public class AppBargainRecordController { + + @GetMapping("/get-summary") + @Operation(summary = "获得砍价记录的概要信息", description = "用于小程序首页") + // TODO 芋艿:增加 @Cache 缓存,1 分钟过期 + public CommonResult getBargainRecordSummary() { + AppBargainRecordSummaryRespVO summary = new AppBargainRecordSummaryRespVO(); + summary.setUserCount(1024); + summary.setSuccessRecords(new ArrayList<>()); + AppBargainRecordSummaryRespVO.Record record1 = new AppBargainRecordSummaryRespVO.Record(); + record1.setNickname("王**"); + record1.setAvatar("https://www.iocoder.cn/xxx.jpg"); + record1.setActivityName("天蚕土豆"); + AppBargainRecordSummaryRespVO.Record record2 = new AppBargainRecordSummaryRespVO.Record(); + record2.setNickname("张**"); + record2.setAvatar("https://www.iocoder.cn/yyy.jpg"); + record2.setActivityName("斗罗大陆"); + summary.getSuccessRecords().add(record1); + summary.getSuccessRecords().add(record2); + return success(summary); + } + + @GetMapping("/get-detail") + @Operation(summary = "获得砍价记录的明细") + // TODO 芋艿:swagger;id 和 activityId 二选一 + public CommonResult getBargainRecordDetail( + @RequestParam(value = "id", required = false) Long id, + @RequestParam(value = "activityId", required = false) Long activityId) { + AppBargainRecordDetailRespVO detail = new AppBargainRecordDetailRespVO(); + detail.setId(1L); + detail.setUserId(1L); + detail.setSpuId(1L); + detail.setSkuId(1L); + detail.setPrice(500); + detail.setActivityId(1L); + detail.setBargainPrice(150); + detail.setPrice(200); + detail.setPayPrice(180); + detail.setStatus(1); + detail.setExpireTime(LocalDateTimeUtils.addTime(Duration.ofDays(2))); + return success(detail); + } + + @GetMapping("/page") + @Operation(summary = "获得砍价记录的分页") + public CommonResult> getBargainRecordPage(PageParam pageParam) { + PageResult page = new PageResult<>(); + page.setList(new ArrayList<>()); + AppBargainRecordRespVO record1 = new AppBargainRecordRespVO(); + record1.setId(1L); + record1.setUserId(1L); + record1.setSpuId(1L); + record1.setSkuId(1L); + record1.setPrice(500); + record1.setActivityId(1L); + record1.setBargainPrice(150); + record1.setPrice(200); + record1.setPayPrice(180); + record1.setStatus(1); + record1.setPicUrl("https://demo26.crmeb.net/uploads/attach/2021/11/15/a79f5d2ea6bf0c3c11b2127332dfe2df.jpg"); + record1.setExpireTime(LocalDateTimeUtils.addTime(Duration.ofDays(2))); + page.getList().add(record1); + + AppBargainRecordRespVO record2 = new AppBargainRecordRespVO(); + record2.setId(1L); + record2.setUserId(1L); + record2.setSpuId(1L); + record2.setSkuId(1L); + record2.setPrice(500); + record2.setActivityId(1L); + record2.setBargainPrice(150); + record2.setPrice(200); + record2.setPayPrice(280); + record2.setStatus(2); + record2.setPicUrl("https://demo26.crmeb.net/uploads/attach/2021/11/15/a79f5d2ea6bf0c3c11b2127332dfe2df.jpg"); + record2.setExpireTime(LocalDateTimeUtils.addTime(Duration.ofDays(2))); + page.getList().add(record2); + + AppBargainRecordRespVO record3 = new AppBargainRecordRespVO(); + record3.setId(1L); + record3.setUserId(1L); + record3.setSpuId(1L); + record3.setSkuId(1L); + record3.setPrice(500); + record3.setActivityId(1L); + record3.setBargainPrice(150); + record3.setPrice(200); + record3.setPayPrice(380); + record3.setStatus(2); + record3.setPicUrl("https://demo26.crmeb.net/uploads/attach/2021/11/15/a79f5d2ea6bf0c3c11b2127332dfe2df.jpg"); + record3.setExpireTime(LocalDateTimeUtils.addTime(Duration.ofDays(2))); + record3.setOrderId(100L); + page.getList().add(record3); + + AppBargainRecordRespVO record4 = new AppBargainRecordRespVO(); + record4.setId(1L); + record4.setUserId(1L); + record4.setSpuId(1L); + record4.setSkuId(1L); + record4.setPrice(500); + record4.setActivityId(1L); + record4.setBargainPrice(150); + record4.setPrice(200); + record4.setPayPrice(380); + record4.setStatus(3); + record4.setPicUrl("https://demo26.crmeb.net/uploads/attach/2021/11/15/a79f5d2ea6bf0c3c11b2127332dfe2df.jpg"); + record4.setExpireTime(LocalDateTimeUtils.addTime(Duration.ofDays(2))); + record4.setOrderId(100L); + page.getList().add(record4); + + page.setTotal(1L); + return success(page); + } + + @PostMapping("/create") + @Operation(summary = "创建砍价记录", description = "参与拼团活动") + public CommonResult createBargainRecord(@RequestBody AppBargainRecordCreateReqVO reqVO) { + return success(1L); + } + +} diff --git a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/bargain/vo/activity/AppBargainActivityDetailRespVO.java b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/bargain/vo/activity/AppBargainActivityDetailRespVO.java new file mode 100644 index 000000000..fcff0c86e --- /dev/null +++ b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/bargain/vo/activity/AppBargainActivityDetailRespVO.java @@ -0,0 +1,54 @@ +package cn.iocoder.yudao.module.promotion.controller.app.bargain.vo.activity; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.time.LocalDateTime; + +@Schema(description = "用户 App - 砍价活动的明细 Response VO") +@Data +public class AppBargainActivityDetailRespVO { + + @Schema(description = "砍价活动编号", required = true, example = "1024") + private Long id; + + @Schema(description = "砍价活动名称", required = true, example = "618 大砍价") + private String name; + + @Schema(description = "活动开始时间", required = true) + private LocalDateTime startTime; + + @Schema(description = "活动结束时间", required = true) + private LocalDateTime endTime; + + @Schema(description = "商品 SPU 编号", required = true, example = "2048") + private Long spuId; + + @Schema(description = "商品 SKU 编号", required = true, example = "1024") + private Long skuId; + + @Schema(description = "商品价格,单位:分", required = true, example = "100") + private Integer price; + + @Schema(description = "商品描述", required = true, example = "我要吃西红柿") + private String description; + + @Schema(description = "砍价库存", required = true, example = "512") + private Integer stock; + + @Schema(description = "商品图片", required = true, example = "4096") // 从 SPU 的 picUrl 读取 + private String picUrl; + + @Schema(description = "商品市场价,单位:分", required = true, example = "50") // 从 SPU 的 marketPrice 读取 + private Integer marketPrice; + + @Schema(description = "商品单位", required = true, example = "个") // 从 SPU 的 unit 读取,然后转换 + private String unitName; + + @Schema(description = "砍价最低金额,单位:分", required = true, example = "100") // 从砍价商品里取最低价 + private Integer bargainPrice; + + @Schema(description = "砍价成功数量", required = true, example = "100") + private Integer successCount; + +} diff --git a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/bargain/vo/activity/AppBargainActivityRespVO.java b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/bargain/vo/activity/AppBargainActivityRespVO.java new file mode 100644 index 000000000..50778b53d --- /dev/null +++ b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/bargain/vo/activity/AppBargainActivityRespVO.java @@ -0,0 +1,42 @@ +package cn.iocoder.yudao.module.promotion.controller.app.bargain.vo.activity; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.time.LocalDateTime; + +@Schema(description = "用户 App - 砍价活动 Response VO") +@Data +public class AppBargainActivityRespVO { + + @Schema(description = "砍价活动编号", required = true, example = "1024") + private Long id; + + @Schema(description = "砍价活动名称", required = true, example = "618 大砍价") + private String name; + + @Schema(description = "活动开始时间", required = true) + private LocalDateTime startTime; + + @Schema(description = "活动结束时间", required = true) + private LocalDateTime endTime; + + @Schema(description = "商品 SPU 编号", required = true, example = "2048") + private Long spuId; + + @Schema(description = "商品 SKU 编号", required = true, example = "1024") + private Long skuId; + + @Schema(description = "砍价库存", required = true, example = "512") + private Integer stock; + + @Schema(description = "商品图片", required = true, example = "4096") // 从 SPU 的 picUrl 读取 + private String picUrl; + + @Schema(description = "商品市场价,单位:分", required = true, example = "50") // 从 SPU 的 marketPrice 读取 + private Integer marketPrice; + + @Schema(description = "砍价最低金额,单位:分", required = true, example = "100") // 从砍价商品里取最低价 + private Integer bargainPrice; + +} diff --git a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/bargain/vo/help/AppBargainHelpCreateReqVO.java b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/bargain/vo/help/AppBargainHelpCreateReqVO.java new file mode 100644 index 000000000..5ce588c5c --- /dev/null +++ b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/bargain/vo/help/AppBargainHelpCreateReqVO.java @@ -0,0 +1,16 @@ +package cn.iocoder.yudao.module.promotion.controller.app.bargain.vo.help; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import javax.validation.constraints.NotNull; + +@Schema(description = "用户 App - 砍价助力的创建 Request VO") +@Data +public class AppBargainHelpCreateReqVO { + + @Schema(description = "砍价记录编号", required = true, example = "1024") + @NotNull(message = "砍价记录编号不能为空") + private Long recordId; + +} diff --git a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/bargain/vo/help/AppBargainHelpRespVO.java b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/bargain/vo/help/AppBargainHelpRespVO.java new file mode 100644 index 000000000..d13dbaaf9 --- /dev/null +++ b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/bargain/vo/help/AppBargainHelpRespVO.java @@ -0,0 +1,24 @@ +package cn.iocoder.yudao.module.promotion.controller.app.bargain.vo.help; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.time.LocalDateTime; + +@Schema(description = "用户 App - 砍价助力 Response VO") +@Data +public class AppBargainHelpRespVO { + + @Schema(description = "助力用户的昵称", required = true, example = "1024") + private String nickname; + + @Schema(description = "助力用户的头像", required = true, example = "1024") + private String avatar; + + @Schema(description = "助力用户的砍价金额", required = true, example = "1024") + private Integer reducePrice; + + @Schema(description = "创建时间", required = true, example = "1024") + private LocalDateTime createTime; + +} diff --git a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/bargain/vo/record/AppBargainRecordCreateReqVO.java b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/bargain/vo/record/AppBargainRecordCreateReqVO.java new file mode 100644 index 000000000..e20482bb3 --- /dev/null +++ b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/bargain/vo/record/AppBargainRecordCreateReqVO.java @@ -0,0 +1,16 @@ +package cn.iocoder.yudao.module.promotion.controller.app.bargain.vo.record; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import javax.validation.constraints.NotNull; + +@Schema(description = "用户 App - 砍价记录的创建 Request VO") +@Data +public class AppBargainRecordCreateReqVO { + + @Schema(description = "砍价活动编号", required = true, example = "1024") + @NotNull(message = "砍价活动编号不能为空") + private Long activityId; + +} diff --git a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/bargain/vo/record/AppBargainRecordDetailRespVO.java b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/bargain/vo/record/AppBargainRecordDetailRespVO.java new file mode 100644 index 000000000..17997015d --- /dev/null +++ b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/bargain/vo/record/AppBargainRecordDetailRespVO.java @@ -0,0 +1,33 @@ +package cn.iocoder.yudao.module.promotion.controller.app.bargain.vo.record; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.time.LocalDateTime; + +@Schema(description = "用户 App - 砍价记录的明细 Response VO") +@Data +public class AppBargainRecordDetailRespVO { + + public static final int HELP_ACTION_NONE = 1; // 帮砍动作 - 未帮砍,可以帮砍 + public static final int HELP_ACTION_FULL = 2; // 帮砍动作 - 未帮砍,无法帮砍(可帮砍次数已满) + public static final int HELP_ACTION_SUCCESS = 3; // 帮砍动作 - 已帮砍 + + private Long id; + private Long userId; + private Long spuId; + private Long skuId; + private Long activityId; + private Integer bargainPrice; + private Integer price; + private Integer payPrice; + private Integer status; + + private LocalDateTime expireTime; + + private Long orderId; + private Boolean payStatus; + + private Integer helpAction; + +} diff --git a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/bargain/vo/record/AppBargainRecordRespVO.java b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/bargain/vo/record/AppBargainRecordRespVO.java new file mode 100644 index 000000000..73f2a713e --- /dev/null +++ b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/bargain/vo/record/AppBargainRecordRespVO.java @@ -0,0 +1,32 @@ +package cn.iocoder.yudao.module.promotion.controller.app.bargain.vo.record; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.time.LocalDateTime; + +@Schema(description = "用户 App - 砍价记录的 Response VO") +@Data +public class AppBargainRecordRespVO { + + // TODO @芋艿:status;如果砍价对应的订单支付超时,算失败么?砍价的支付时间,以 expireTime 为准么? + + private Long id; + private Long userId; + private Long spuId; + private Long skuId; + private Long activityId; + private Integer bargainPrice; + private Integer price; + private Integer payPrice; + private Integer status; + private LocalDateTime expireTime; + + private Long orderId; + private Boolean payStatus; + private Long payOrderId; + + private String activityName; + private String picUrl; + +} diff --git a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/bargain/vo/record/AppBargainRecordSummaryRespVO.java b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/bargain/vo/record/AppBargainRecordSummaryRespVO.java new file mode 100644 index 000000000..05439fb26 --- /dev/null +++ b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/bargain/vo/record/AppBargainRecordSummaryRespVO.java @@ -0,0 +1,33 @@ +package cn.iocoder.yudao.module.promotion.controller.app.bargain.vo.record; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.List; + +@Schema(description = "用户 App - 砍价记录的简要概括 Response VO") +@Data +public class AppBargainRecordSummaryRespVO { + + @Schema(description = "砍价用户数量", required = true, example = "1024") + private Integer userCount; + + @Schema(description = "成功砍价的记录", required = true) // 只返回最近的 7 个 + private List successRecords; + + @Schema(description = "成功砍价记录") + @Data + public static class Record { + + @Schema(description = "用户昵称", required = true, example = "王**") + private String nickname; + + @Schema(description = "用户头像", required = true, example = "https://www.iocoder.cn/xxx.jpg") + private String avatar; + + @Schema(description = "活动名称", required = true, example = "天蚕土豆") + private String activityName; + + } + +} diff --git a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/combination/AppCombinationActivityController.java b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/combination/AppCombinationActivityController.java new file mode 100644 index 000000000..216ec5285 --- /dev/null +++ b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/combination/AppCombinationActivityController.java @@ -0,0 +1,129 @@ +package cn.iocoder.yudao.module.promotion.controller.app.combination; + +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.promotion.controller.app.combination.vo.activity.AppCombinationActivityDetailRespVO; +import cn.iocoder.yudao.module.promotion.controller.app.combination.vo.activity.AppCombinationActivityRespVO; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.List; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +@Tag(name = "用户 APP - 拼团活动") +@RestController +@RequestMapping("/promotion/combination-activity") +@Validated +public class AppCombinationActivityController { + + @GetMapping("/list") + @Operation(summary = "获得拼团活动列表", description = "用于小程序首页") + // TODO 芋艿:增加 Spring Cache + // TODO 芋艿:缺少 swagger 注解 + public CommonResult> getCombinationActivityList( + @RequestParam(name = "count", defaultValue = "6") Integer count) { + List activityList = new ArrayList<>(); + AppCombinationActivityRespVO activity1 = new AppCombinationActivityRespVO(); + activity1.setId(1L); + activity1.setName("618 大拼团"); + activity1.setUserSize(3); + activity1.setSpuId(2048L); + activity1.setPicUrl("https://demo26.crmeb.net/uploads/attach/2021/11/15/a79f5d2ea6bf0c3c11b2127332dfe2df.jpg"); + activity1.setMarketPrice(50); + activity1.setCombinationPrice(100); + activityList.add(activity1); + + AppCombinationActivityRespVO activity2 = new AppCombinationActivityRespVO(); + activity2.setId(2L); + activity2.setName("双十一拼团"); + activity2.setUserSize(5); + activity2.setSpuId(4096L); + activity2.setPicUrl("https://thirdwx.qlogo.cn/mmopen/vi_32/Q0j4TwGTfTKXMYJOomfp7cebz3cIeb8sHk3GGSIJtWEgREe3j7J1WoAbTvIOicpcNdFkWAziatBSMod8b5RyS4CQ/132"); + activity2.setMarketPrice(100); + activity2.setCombinationPrice(200); + activityList.add(activity2); + + return success(activityList); + } + + @GetMapping("/page") + @Operation(summary = "获得拼团活动分页") + public CommonResult> getCombinationActivityPage(PageParam pageParam) { + List activityList = new ArrayList<>(); + AppCombinationActivityRespVO activity1 = new AppCombinationActivityRespVO(); + activity1.setId(1L); + activity1.setName("618 大拼团"); + activity1.setUserSize(3); + activity1.setSpuId(2048L); + activity1.setPicUrl("商品图片地址"); + activity1.setMarketPrice(50); + activity1.setCombinationPrice(100); + activityList.add(activity1); + + AppCombinationActivityRespVO activity2 = new AppCombinationActivityRespVO(); + activity2.setId(2L); + activity2.setName("双十一拼团"); + activity2.setUserSize(5); + activity2.setSpuId(4096L); + activity2.setPicUrl("商品图片地址"); + activity2.setMarketPrice(100); + activity2.setCombinationPrice(200); + activityList.add(activity2); + + return success(new PageResult<>(activityList, 2L)); + } + + @GetMapping("/get-detail") + @Operation(summary = "获得拼团活动明细") + @Parameter(name = "id", description = "活动编号", required = true, example = "1024") + public CommonResult getCombinationActivityDetail(@RequestParam("id") Long id) { + // TODO 芋艿:如果禁用的时候,需要抛出异常; + AppCombinationActivityDetailRespVO obj = new AppCombinationActivityDetailRespVO(); + // 设置其属性的值 + obj.setId(id); + obj.setName("晚九点限时秒杀"); + obj.setStatus(1); + obj.setStartTime(LocalDateTime.of(2023, 6, 15, 0, 0, 0)); + obj.setEndTime(LocalDateTime.of(2023, 6, 20, 23, 59, 0)); + obj.setUserSize(2); + obj.setSuccessCount(100); + obj.setSpuId(633L); + obj.setSingleLimitCount(2); + obj.setTotalLimitCount(3); + + // 创建一个Product对象的列表 + List productList = new ArrayList<>(); + // 创建三个新的Product对象并设置其属性的值 + AppCombinationActivityDetailRespVO.Product product1 = new AppCombinationActivityDetailRespVO.Product(); + product1.setSkuId(1L); + product1.setCombinationPrice(100); + // 将第一个Product对象添加到列表中 + productList.add(product1); + // 创建第二个Product对象并设置其属性的值 + AppCombinationActivityDetailRespVO.Product product2 = new AppCombinationActivityDetailRespVO.Product(); + product2.setSkuId(2L); + product2.setCombinationPrice(200); + // 将第二个Product对象添加到列表中 + productList.add(product2); + // 创建第三个Product对象并设置其属性的值 + AppCombinationActivityDetailRespVO.Product product3 = new AppCombinationActivityDetailRespVO.Product(); + product3.setSkuId(3L); + product3.setCombinationPrice(300); + // 将第三个Product对象添加到列表中 + productList.add(product3); + // 将Product列表设置为对象的属性值 + obj.setProducts(productList); + return success(obj); + } + +} diff --git a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/combination/AppCombinationRecordController.java b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/combination/AppCombinationRecordController.java new file mode 100644 index 000000000..74cd39c5a --- /dev/null +++ b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/combination/AppCombinationRecordController.java @@ -0,0 +1,109 @@ +package cn.iocoder.yudao.module.promotion.controller.app.combination; + +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.util.date.DateUtils; +import cn.iocoder.yudao.module.promotion.controller.app.combination.vo.record.AppCombinationRecordDetailRespVO; +import cn.iocoder.yudao.module.promotion.controller.app.combination.vo.record.AppCombinationRecordRespVO; +import cn.iocoder.yudao.module.promotion.controller.app.combination.vo.record.AppCombinationRecordSummaryRespVO; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.validation.constraints.Max; +import java.time.Duration; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +@Tag(name = "用户 APP - 拼团活动") +@RestController +@RequestMapping("/promotion/combination-record") +@Validated +public class AppCombinationRecordController { + + @GetMapping("/get-summary") + @Operation(summary = "获得拼团记录的概要信息", description = "用于小程序首页") + // TODO 芋艿:增加 @Cache 缓存,1 分钟过期 + public CommonResult getCombinationRecordSummary() { + AppCombinationRecordSummaryRespVO summary = new AppCombinationRecordSummaryRespVO(); + summary.setUserCount(1024); + summary.setAvatars(new ArrayList<>()); + summary.getAvatars().add("https://thirdwx.qlogo.cn/mmopen/vi_32/Q0j4TwGTfTLjFK35Wvia9lJKHoXfQuHhk0qZbvpPNxrAiaEKF7aL2k4I8kuqrdTWwliamdPHeyAA7DjAg725X2GIQ/132"); + summary.getAvatars().add("https://thirdwx.qlogo.cn/mmopen/vi_32/Q0j4TwGTfTK1pXgdj5DvBMwrbe8v3tFibSWeQATEsAibt3fllD8XwJ460P2r6KS3WCQvDefuv1bVpDhNCle6CTCA/132"); + summary.getAvatars().add("https://thirdwx.qlogo.cn/mmopen/vi_32/Q0j4TwGTfTL7KRGHBE62N0awFyBesmmxiaCicf1fJ7E7UCh6zA8GWlT1QC1zT01gG4OxI7BWDESkdPZ5o7tno4hA/132"); + summary.getAvatars().add("https://thirdwx.qlogo.cn/mmopen/vi_32/ouwtwJycbic2JrCoZjETict0klxd1uRuicRneKk00ewMcCClxVcVHQT91Sh9MJGtwibf1fOicD1WpwSP4icJM6eQq1AA/132"); + summary.getAvatars().add("https://thirdwx.qlogo.cn/mmopen/vi_32/RpUrhwens58qc99OcGs993xL4M5QPOe05ekqF9Eia440kRicAlicicIdQWicHBmy2bzLgHzHguWEzHHxnIgeictL7bLA/132"); + summary.getAvatars().add("https://thirdwx.qlogo.cn/mmopen/vi_32/S4tfqmxc8GZGsKc1K4mnhpvtG16gtMrLnTQfDibhr7jJich9LRI5RQKZDoqEjZM3azMib5nic7F4ZXKMEgYyLO08KA/132"); + summary.getAvatars().add("https://thirdwx.qlogo.cn/mmopen/vi_32/Q0j4TwGTfTKXMYJOomfp7cebz3cIeb8sHk3GGSIJtWEgREe3j7J1WoAbTvIOicpcNdFkWAziatBSMod8b5RyS4CQ/132"); + return success(summary); + } + + @GetMapping("/get-head-list") + @Operation(summary = "获得最近 n 条拼团记录(团长发起的)") + // TODO @芋艿:注解要补全 + public CommonResult> getHeadCombinationRecordList( + @RequestParam(value = "activityId", required = false) Long activityId, + @RequestParam("status") Integer status, + @RequestParam(value = "count", defaultValue = "20") @Max(20) Integer count) { + List list = new ArrayList<>(); + for (int i = 1; i <= count; i++) { + AppCombinationRecordRespVO record = new AppCombinationRecordRespVO(); + record.setId((long) i); + record.setNickname("用户" + i); + record.setAvatar("头像" + i); + record.setExpireTime(new Date()); + record.setUserSize(10); + record.setUserCount(i); + record.setPicUrl("https://demo26.crmeb.net/uploads/attach/2021/11/15/a79f5d2ea6bf0c3c11b2127332dfe2df.jpg"); + record.setActivityId(1L); + record.setSpuName("活动:" + i); + list.add(record); + } + return success(list); + } + + @GetMapping("/get-detail") + @Operation(summary = "获得拼团记录明细") + @Parameter(name = "id", description = "拼团记录编号", required = true, example = "1024") + public CommonResult getCombinationRecordDetail(@RequestParam("id") Long id) { + AppCombinationRecordDetailRespVO detail = new AppCombinationRecordDetailRespVO(); + // 团长 + AppCombinationRecordRespVO headRecord = new AppCombinationRecordRespVO(); + headRecord.setId(1L); + headRecord.setNickname("用户" + 1); + headRecord.setAvatar("头像" + 1); + headRecord.setExpireTime(DateUtils.addTime(Duration.ofDays(1))); + headRecord.setUserSize(10); + headRecord.setUserCount(3); + headRecord.setStatus(1); + headRecord.setActivityId(10L); + headRecord.setPicUrl("https://demo26.crmeb.net/uploads/attach/2021/11/15/a79f5d2ea6bf0c3c11b2127332dfe2df.jpg"); + headRecord.setCombinationPrice(100); + detail.setHeadRecord(headRecord); + // 团员 + List list = new ArrayList<>(); + for (int i = 1; i <= 2; i++) { + AppCombinationRecordRespVO record = new AppCombinationRecordRespVO(); + record.setId((long) i); + record.setNickname("用户" + i); + record.setAvatar("头像" + i); + record.setExpireTime(new Date()); + record.setUserSize(10); + record.setUserCount(i); + record.setStatus(1); + list.add(record); + } + detail.setMemberRecords(list); + // 订单编号 + detail.setOrderId(100L); + return success(detail); + } + +} diff --git a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/combination/vo/activity/AppCombinationActivityDetailRespVO.java b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/combination/vo/activity/AppCombinationActivityDetailRespVO.java new file mode 100644 index 000000000..e2996b89b --- /dev/null +++ b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/combination/vo/activity/AppCombinationActivityDetailRespVO.java @@ -0,0 +1,58 @@ +package cn.iocoder.yudao.module.promotion.controller.app.combination.vo.activity; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.time.LocalDateTime; +import java.util.List; + +@Schema(description = "用户 App - 拼团活动明细 Response VO") +@Data +public class AppCombinationActivityDetailRespVO { + + @Schema(description = "拼团活动编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + private Long id; + + @Schema(description = "拼团活动名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "618 大拼团") + private String name; + + @Schema(description = "活动状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + private Integer status; + + @Schema(description = "活动开始时间", requiredMode = Schema.RequiredMode.REQUIRED) + private LocalDateTime startTime; + + @Schema(description = "活动结束时间", requiredMode = Schema.RequiredMode.REQUIRED) + private LocalDateTime endTime; + + @Schema(description = "拼团人数", requiredMode = Schema.RequiredMode.REQUIRED, example = "3") + private Integer userSize; + + @Schema(description = "成功的拼团数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "100") + private Integer successCount; + + @Schema(description = "商品 SPU 编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "2048") + private Long spuId; + + @Schema(description = "总共限购数量", example = "10") + private Integer totalLimitCount; + + @Schema(description = "单次限购数量", example = "5") + private Integer singleLimitCount; + + @Schema(description = "商品信息数组", requiredMode = Schema.RequiredMode.REQUIRED) + private List products; + + @Schema(description = "商品信息") + @Data + public static class Product { + + @Schema(description = "商品 SKU 编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "4096") + private Long skuId; + + @Schema(description = "拼团金额,单位:分", requiredMode = Schema.RequiredMode.REQUIRED, example = "100") + private Integer combinationPrice; + + } + +} diff --git a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/combination/vo/activity/AppCombinationActivityRespVO.java b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/combination/vo/activity/AppCombinationActivityRespVO.java new file mode 100644 index 000000000..b536e8abe --- /dev/null +++ b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/combination/vo/activity/AppCombinationActivityRespVO.java @@ -0,0 +1,34 @@ +package cn.iocoder.yudao.module.promotion.controller.app.combination.vo.activity; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Schema(description = "用户 App - 拼团活动 Response VO") +@Data +public class AppCombinationActivityRespVO { + + @Schema(description = "拼团活动编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + private Long id; + + @Schema(description = "拼团活动名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "618 大拼团") + private String name; + + @Schema(description = "拼团人数", requiredMode = Schema.RequiredMode.REQUIRED, example = "3") + private Integer userSize; + + @Schema(description = "商品 SPU 编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "2048") + private Long spuId; + + @Schema(description = "商品图片", requiredMode = Schema.RequiredMode.REQUIRED, example = "4096") + // 从 SPU 的 picUrl 读取 + private String picUrl; + + @Schema(description = "商品市场价,单位:分", requiredMode = Schema.RequiredMode.REQUIRED, example = "50") + // 从 SPU 的 marketPrice 读取 + private Integer marketPrice; + + @Schema(description = "拼团金额,单位:分", requiredMode = Schema.RequiredMode.REQUIRED, example = "100") + // 从拼团商品里取最低价 + private Integer combinationPrice; + +} diff --git a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/combination/vo/record/AppCombinationRecordDetailRespVO.java b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/combination/vo/record/AppCombinationRecordDetailRespVO.java new file mode 100644 index 000000000..07f989d7f --- /dev/null +++ b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/combination/vo/record/AppCombinationRecordDetailRespVO.java @@ -0,0 +1,22 @@ +package cn.iocoder.yudao.module.promotion.controller.app.combination.vo.record; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.List; + +@Schema(description = "用户 App - 拼团记录详细 Response VO") +@Data +public class AppCombinationRecordDetailRespVO { + + @Schema(description = "团长的拼团记录", requiredMode = Schema.RequiredMode.REQUIRED) + private AppCombinationRecordRespVO headRecord; + + @Schema(description = "成员的拼团记录", requiredMode = Schema.RequiredMode.REQUIRED) + private List memberRecords; + + @Schema(description = "当前用户参团记录对应的订单编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + // 如果没参团,返回 null + private Long orderId; + +} diff --git a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/combination/vo/record/AppCombinationRecordRespVO.java b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/combination/vo/record/AppCombinationRecordRespVO.java new file mode 100644 index 000000000..1a3469769 --- /dev/null +++ b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/combination/vo/record/AppCombinationRecordRespVO.java @@ -0,0 +1,45 @@ +package cn.iocoder.yudao.module.promotion.controller.app.combination.vo.record; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.Date; + +@Schema(description = "用户 App - 拼团记录 Response VO") +@Data +public class AppCombinationRecordRespVO { + + @Schema(description = "拼团记录编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + private Long id; + + @Schema(description = "拼团活动编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + private Long activityId; + + @Schema(description = "用户昵称", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + private String nickname; + + @Schema(description = "用户头像", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + private String avatar; + + @Schema(description = "过期时间", requiredMode = Schema.RequiredMode.REQUIRED) + private Date expireTime; + + @Schema(description = "可参团人数", requiredMode = Schema.RequiredMode.REQUIRED, example = "10") + private Integer userSize; + + @Schema(description = "已参团人数", requiredMode = Schema.RequiredMode.REQUIRED, example = "5") + private Integer userCount; + + @Schema(description = "拼团状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + private Integer status; + + @Schema(description = "商品名字", requiredMode = Schema.RequiredMode.REQUIRED, example = "我是大黄豆") + private String spuName; + + @Schema(description = "商品图片", requiredMode = Schema.RequiredMode.REQUIRED, example = "https://www.iocoder.cn/1.png") + private String picUrl; + + @Schema(description = "拼团金额,单位:分", requiredMode = Schema.RequiredMode.REQUIRED, example = "100") + private Integer combinationPrice; + +} diff --git a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/combination/vo/record/AppCombinationRecordSummaryRespVO.java b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/combination/vo/record/AppCombinationRecordSummaryRespVO.java new file mode 100644 index 000000000..ef81e9282 --- /dev/null +++ b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/combination/vo/record/AppCombinationRecordSummaryRespVO.java @@ -0,0 +1,18 @@ +package cn.iocoder.yudao.module.promotion.controller.app.combination.vo.record; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.List; + +@Schema(description = "用户 App - 拼团记录的简要概括 Response VO") +@Data +public class AppCombinationRecordSummaryRespVO { + + @Schema(description = "拼团用户数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + private Integer userCount; + + @Schema(description = "拼团用户头像列表", requiredMode = Schema.RequiredMode.REQUIRED) // 只返回最近的 7 个 + private List avatars; + +} diff --git a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/coupon/AppCouponController.java b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/coupon/AppCouponController.java index a0804079b..481ced4b4 100755 --- a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/coupon/AppCouponController.java +++ b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/coupon/AppCouponController.java @@ -20,7 +20,7 @@ public class AppCouponController { // TODO 芋艿:待实现 @PostMapping("/take") - @Operation(description = "领取优惠劵") + @Operation(summary = "领取优惠劵") public CommonResult takeCoupon(@RequestBody AppCouponTemplatePageReqVO pageReqVO) { return success(1L); } diff --git a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/coupon/AppCouponTemplateController.java b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/coupon/AppCouponTemplateController.java index f08bd0d74..8c6521803 100755 --- a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/coupon/AppCouponTemplateController.java +++ b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/coupon/AppCouponTemplateController.java @@ -34,7 +34,7 @@ public class AppCouponTemplateController { // TODO 芋艿:待实现 @GetMapping("/list") - @Operation(description = "获得优惠劵模版列表") // 目前主要给商品详情使用 + @Operation(summary = "获得优惠劵模版列表") // 目前主要给商品详情使用 @Parameters({ @Parameter(name = "spuId", description = "商品 SPU 编号", required = true), @Parameter(name = "useType", description = "使用类型"), @@ -76,7 +76,7 @@ public class AppCouponTemplateController { // TODO 芋艿:待实现 @GetMapping("/page") - @Operation(description = "获得优惠劵模版分页") + @Operation(summary = "获得优惠劵模版分页") public CommonResult> getCouponTemplatePage(AppCouponTemplatePageReqVO pageReqVO) { return null; } diff --git a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/coupon/vo/template/AppCouponTemplateRespVO.java b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/coupon/vo/template/AppCouponTemplateRespVO.java index 5e8aa86ef..83410fd89 100755 --- a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/coupon/vo/template/AppCouponTemplateRespVO.java +++ b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/coupon/vo/template/AppCouponTemplateRespVO.java @@ -10,27 +10,28 @@ import java.time.LocalDateTime; @Data public class AppCouponTemplateRespVO { - @Schema(description = "优惠劵模板编号", required = true, example = "1") + @Schema(description = "优惠劵模板编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Long id; - @Schema(description = "优惠劵名", required = true, example = "春节送送送") + @Schema(description = "优惠劵名", requiredMode = Schema.RequiredMode.REQUIRED, example = "春节送送送") private String name; - @Schema(description = "每人限领个数", required = true, example = "66") // -1 - 则表示不限制 + @Schema(description = "每人限领个数", requiredMode = Schema.RequiredMode.REQUIRED, example = "66") // -1 - 则表示不限制 private Integer takeLimitCount; - @Schema(description = "是否设置满多少金额可用", required = true, example = "100") // 单位:分;0 - 不限制 + @Schema(description = "是否设置满多少金额可用", requiredMode = Schema.RequiredMode.REQUIRED, example = "100") + // 单位:分;0 - 不限制 private Integer usePrice; // TODO 芋艿:这两要改的 -// @Schema(description = "商品范围", required = true, example = "1") +// @Schema(description = "商品范围", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") // @InEnum(PromotionProductScopeEnum.class) // private Integer productScope; // // @Schema(description = "商品 SPU 编号的数组", example = "1,3") // private List productSpuIds; - @Schema(description = "生效日期类型", required = true, example = "1") + @Schema(description = "生效日期类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Integer validityType; @Schema(description = "固定日期 - 生效开始时间") @@ -47,7 +48,7 @@ public class AppCouponTemplateRespVO { @Min(value = 1L, message = "开始天数必须大于 1") private Integer fixedEndTerm; - @Schema(description = "优惠类型", required = true, example = "1") + @Schema(description = "优惠类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Integer discountType; @Schema(description = "折扣百分比", example = "80") // 例如说,80% 为 80 @@ -62,7 +63,7 @@ public class AppCouponTemplateRespVO { // ========== 用户相关字段 ========== - @Schema(description = "是否已领取", required = true, example = "true") + @Schema(description = "是否已领取", requiredMode = Schema.RequiredMode.REQUIRED, example = "true") private Boolean takeStatus; } diff --git a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/decorate/AppDecorateController.java b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/decorate/AppDecorateController.java new file mode 100644 index 000000000..1f5e64b19 --- /dev/null +++ b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/decorate/AppDecorateController.java @@ -0,0 +1,39 @@ +package cn.iocoder.yudao.module.promotion.controller.app.decorate; + +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.validation.InEnum; +import cn.iocoder.yudao.module.promotion.controller.app.decorate.vo.AppDecorateComponentRespVO; +import cn.iocoder.yudao.module.promotion.enums.decorate.DecoratePageEnum; +import cn.iocoder.yudao.module.promotion.service.decorate.DecorateComponentService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; +import static cn.iocoder.yudao.module.promotion.convert.decorate.DecorateComponentConvert.INSTANCE; + +@Tag(name = "用户 APP - 店铺装修") +@RestController +@RequestMapping("/promotion/decorate") +@Validated +public class AppDecorateController { + + @Resource + private DecorateComponentService decorateComponentService; + + @GetMapping("/get-page-components") + @Operation(summary = "获取装修页面组件") + @Parameter(name = "pageId", description = "页面 id", required = true) + public CommonResult getPageComponents( + @RequestParam("pageId") @InEnum(DecoratePageEnum.class) Integer pageId) { + return success(INSTANCE.appConvert(pageId, decorateComponentService.getPageComponents(pageId))); + } + +} diff --git a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/decorate/vo/AppDecorateComponentRespVO.java b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/decorate/vo/AppDecorateComponentRespVO.java new file mode 100644 index 000000000..9f52f5923 --- /dev/null +++ b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/decorate/vo/AppDecorateComponentRespVO.java @@ -0,0 +1,30 @@ +package cn.iocoder.yudao.module.promotion.controller.app.decorate.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.List; + +@Schema(description = "用户 App - 页面装修 Resp VO") +@Data +public class AppDecorateComponentRespVO { + + @Schema(description = "页面 id ", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + private Integer pageId; + + @Schema(description = "页面组件", requiredMode = Schema.RequiredMode.REQUIRED, example = "TODO") + private List components; + + @Schema(description = "用户 App - 页面组件 Resp VO") + @Data + public static class AppComponentRespVO { + + @Schema(description = "组件编码", requiredMode = Schema.RequiredMode.REQUIRED, example = "nav-menu") + private String code; + + @Schema(description = "组件的内容配置项", requiredMode = Schema.RequiredMode.NOT_REQUIRED, example = "TODO") + private String value; + + } + +} diff --git a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/seckill/AppSeckillActivityController.java b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/seckill/AppSeckillActivityController.java new file mode 100644 index 000000000..7c4fd9ee2 --- /dev/null +++ b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/seckill/AppSeckillActivityController.java @@ -0,0 +1,136 @@ +package cn.iocoder.yudao.module.promotion.controller.app.seckill; + +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.promotion.controller.app.seckill.vo.activity.AppSeckillActivityDetailRespVO; +import cn.iocoder.yudao.module.promotion.controller.app.seckill.vo.activity.AppSeckillActivityNowRespVO; +import cn.iocoder.yudao.module.promotion.controller.app.seckill.vo.activity.AppSeckillActivityPageReqVO; +import cn.iocoder.yudao.module.promotion.controller.app.seckill.vo.activity.AppSeckillActivityRespVO; +import cn.iocoder.yudao.module.promotion.controller.app.seckill.vo.config.AppSeckillConfigRespVO; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.List; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +@Tag(name = "用户 App - 秒杀活动") +@RestController +@RequestMapping("/promotion/seckill-activity") +@Validated +public class AppSeckillActivityController { + + @GetMapping("/get-now") + @Operation(summary = "获得当前秒杀活动") // 提供给首页使用 + // TODO 芋艿:需要增加 spring cache + public CommonResult getNowSeckillActivity() { + AppSeckillActivityNowRespVO respVO = new AppSeckillActivityNowRespVO(); + respVO.setConfig(new AppSeckillConfigRespVO().setId(10L).setStartTime("01:00").setEndTime("09:59")); + List activityList = new ArrayList<>(); + AppSeckillActivityRespVO activity1 = new AppSeckillActivityRespVO(); + activity1.setId(1L); + activity1.setName("618 大秒杀"); + activity1.setSpuId(2048L); + activity1.setPicUrl("https://demo26.crmeb.net/uploads/attach/2021/11/15/a79f5d2ea6bf0c3c11b2127332dfe2df.jpg"); + activity1.setMarketPrice(50); + activity1.setSeckillPrice(100); + activityList.add(activity1); + + AppSeckillActivityRespVO activity2 = new AppSeckillActivityRespVO(); + activity2.setId(2L); + activity2.setName("双十一大秒杀"); + activity2.setSpuId(4096L); + activity2.setPicUrl("https://thirdwx.qlogo.cn/mmopen/vi_32/Q0j4TwGTfTKXMYJOomfp7cebz3cIeb8sHk3GGSIJtWEgREe3j7J1WoAbTvIOicpcNdFkWAziatBSMod8b5RyS4CQ/132"); + activity2.setMarketPrice(100); + activity2.setSeckillPrice(200); + activityList.add(activity2); + respVO.setActivities(activityList); + return success(respVO); + } + + @GetMapping("/page") + @Operation(summary = "获得秒杀活动分页") + // TODO @芋艿:分页参数 + public CommonResult> getSeckillActivityPage(AppSeckillActivityPageReqVO pageReqVO) { + List activityList = new ArrayList<>(); + AppSeckillActivityRespVO activity1 = new AppSeckillActivityRespVO(); + activity1.setId(1L); + activity1.setName("618 大秒杀"); + activity1.setSpuId(2048L); + activity1.setPicUrl("https://demo26.crmeb.net/uploads/attach/2021/11/15/a79f5d2ea6bf0c3c11b2127332dfe2df.jpg"); + activity1.setMarketPrice(50); + activity1.setSeckillPrice(100); + activity1.setUnitName("个"); + activity1.setStock(1); + activity1.setTotalStock(2); + activityList.add(activity1); + + AppSeckillActivityRespVO activity2 = new AppSeckillActivityRespVO(); + activity2.setId(2L); + activity2.setName("双十一大秒杀"); + activity2.setSpuId(4096L); + activity2.setPicUrl("https://thirdwx.qlogo.cn/mmopen/vi_32/Q0j4TwGTfTKXMYJOomfp7cebz3cIeb8sHk3GGSIJtWEgREe3j7J1WoAbTvIOicpcNdFkWAziatBSMod8b5RyS4CQ/132"); + activity2.setMarketPrice(100); + activity2.setSeckillPrice(200); + activity2.setUnitName("套"); + activity2.setStock(2); + activity2.setTotalStock(3); + activityList.add(activity2); + return success(new PageResult<>(activityList, 100L)); + } + + @GetMapping("/get-detail") + @Operation(summary = "获得秒杀活动明细") + @Parameter(name = "id", description = "活动编号", required = true, example = "1024") + public CommonResult getSeckillActivity(@RequestParam("id") Long id) { + // TODO 芋艿:如果禁用的时候,需要抛出异常; + AppSeckillActivityDetailRespVO obj = new AppSeckillActivityDetailRespVO(); + // 设置其属性的值 + obj.setId(id); + obj.setName("晚九点限时秒杀"); + obj.setStatus(1); + obj.setStartTime(LocalDateTime.of(2023, 6, 16, 0, 0, 0)); + obj.setEndTime(LocalDateTime.of(2023, 6, 20, 23, 59, 0)); + obj.setSpuId(633L); + obj.setSingleLimitCount(2); + obj.setTotalLimitCount(3); + obj.setStock(100); + obj.setTotalStock(200); + + // 创建一个Product对象的列表 + List productList = new ArrayList<>(); + // 创建三个新的Product对象并设置其属性的值 + AppSeckillActivityDetailRespVO.Product product1 = new AppSeckillActivityDetailRespVO.Product(); + product1.setSkuId(1L); + product1.setSeckillPrice(100); + product1.setStock(50); + // 将第一个Product对象添加到列表中 + productList.add(product1); + // 创建第二个Product对象并设置其属性的值 + AppSeckillActivityDetailRespVO.Product product2 = new AppSeckillActivityDetailRespVO.Product(); + product2.setSkuId(2L); + product2.setSeckillPrice(200); + product2.setStock(100); + // 将第二个Product对象添加到列表中 + productList.add(product2); + // 创建第三个Product对象并设置其属性的值 + AppSeckillActivityDetailRespVO.Product product3 = new AppSeckillActivityDetailRespVO.Product(); + product3.setSkuId(3L); + product3.setSeckillPrice(300); + product3.setStock(150); + // 将第三个Product对象添加到列表中 + productList.add(product3); + // 将Product列表设置为对象的属性值 + obj.setProducts(productList); + return success(obj); + } + +} diff --git a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/seckill/AppSeckillConfigController.java b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/seckill/AppSeckillConfigController.java new file mode 100644 index 000000000..23a5aa4bc --- /dev/null +++ b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/seckill/AppSeckillConfigController.java @@ -0,0 +1,36 @@ +package cn.iocoder.yudao.module.promotion.controller.app.seckill; + +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.module.promotion.controller.app.seckill.vo.config.AppSeckillConfigRespVO; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.Arrays; +import java.util.List; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +@Tag(name = "用户 App - 秒杀时间段") +@RestController +@RequestMapping("/promotion/seckill-config") +@Validated +public class AppSeckillConfigController { + + @GetMapping("/list") + @Operation(summary = "获得秒杀时间段列表") + public CommonResult> getSeckillConfigList() { + return success(Arrays.asList( + new AppSeckillConfigRespVO().setId(1L).setStartTime("00:00").setEndTime("09:59") + .setSliderPicUrls(Arrays.asList("https://demo26.crmeb.net/uploads/attach/2021/11/15/a79f5d2ea6bf0c3c11b2127332dfe2df.jpg", + "https://thirdwx.qlogo.cn/mmopen/vi_32/Q0j4TwGTfTKXMYJOomfp7cebz3cIeb8sHk3GGSIJtWEgREe3j7J1WoAbTvIOicpcNdFkWAziatBSMod8b5RyS4CQ/132")), + new AppSeckillConfigRespVO().setId(2L).setStartTime("10:00").setEndTime("12:59"), + new AppSeckillConfigRespVO().setId(2L).setStartTime("13:00").setEndTime("22:59"), + new AppSeckillConfigRespVO().setId(2L).setStartTime("23:00").setEndTime("23:59") + )); + } + +} diff --git a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/seckill/vo/activity/AppSeckillActivityDetailRespVO.java b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/seckill/vo/activity/AppSeckillActivityDetailRespVO.java new file mode 100644 index 000000000..46fa4fbbd --- /dev/null +++ b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/seckill/vo/activity/AppSeckillActivityDetailRespVO.java @@ -0,0 +1,63 @@ +package cn.iocoder.yudao.module.promotion.controller.app.seckill.vo.activity; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.time.LocalDateTime; +import java.util.List; + +@Schema(description = "用户 App - 秒杀活动的详细 Response VO") +@Data +public class AppSeckillActivityDetailRespVO { + + @Schema(description = "秒杀活动编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + private Long id; + + @Schema(description = "秒杀活动名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "晚九点限时秒杀") + private String name; + + @Schema(description = "活动状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + private Integer status; + + // TODO @芋艿:开始时间、结束时间,要和场次结合起来;就是要算到当前场次,是几点哈; + + @Schema(description = "活动开始时间", requiredMode = Schema.RequiredMode.REQUIRED) + private LocalDateTime startTime; + + @Schema(description = "活动结束时间", requiredMode = Schema.RequiredMode.REQUIRED) + private LocalDateTime endTime; + + @Schema(description = "商品 SPU 编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "2048") + private Long spuId; + + @Schema(description = "总共限购数量", example = "10") + private Integer totalLimitCount; + + @Schema(description = "单次限购数量", example = "5") + private Integer singleLimitCount; + + @Schema(description = "秒杀库存(剩余)", requiredMode = Schema.RequiredMode.REQUIRED, example = "50") + private Integer stock; + + @Schema(description = "秒杀库存(总计)", requiredMode = Schema.RequiredMode.REQUIRED, example = "100") + private Integer totalStock; + + @Schema(description = "商品信息数组", requiredMode = Schema.RequiredMode.REQUIRED) + private List products; + + @Schema(description = "商品信息") + @Data + public static class Product { + + @Schema(description = "商品 SKU 编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "4096") + private Long skuId; + + @Schema(description = "秒杀金额,单位:分", requiredMode = Schema.RequiredMode.REQUIRED, example = "100") + private Integer seckillPrice; + + @Schema(description = "秒杀限量库存", requiredMode = Schema.RequiredMode.REQUIRED, example = "50") + private Integer stock; + + } + +} diff --git a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/seckill/vo/activity/AppSeckillActivityNowRespVO.java b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/seckill/vo/activity/AppSeckillActivityNowRespVO.java new file mode 100644 index 000000000..5dad12904 --- /dev/null +++ b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/seckill/vo/activity/AppSeckillActivityNowRespVO.java @@ -0,0 +1,19 @@ +package cn.iocoder.yudao.module.promotion.controller.app.seckill.vo.activity; + +import cn.iocoder.yudao.module.promotion.controller.app.seckill.vo.config.AppSeckillConfigRespVO; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.List; + +@Schema(description = "用户 App - 当前秒杀活动 Response VO") +@Data +public class AppSeckillActivityNowRespVO { + + @Schema(description = "秒杀时间段", requiredMode = Schema.RequiredMode.REQUIRED) + private AppSeckillConfigRespVO config; + + @Schema(description = "秒杀活动数组", requiredMode = Schema.RequiredMode.REQUIRED) + private List activities; + +} diff --git a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/seckill/vo/activity/AppSeckillActivityPageReqVO.java b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/seckill/vo/activity/AppSeckillActivityPageReqVO.java new file mode 100644 index 000000000..158f11fd3 --- /dev/null +++ b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/seckill/vo/activity/AppSeckillActivityPageReqVO.java @@ -0,0 +1,18 @@ +package cn.iocoder.yudao.module.promotion.controller.app.seckill.vo.activity; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +@Schema(description = "用户 App - 商品评价分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class AppSeckillActivityPageReqVO extends PageParam { + + @Schema(description = "秒杀配置编号", example = "1024") + private Long configId; + +} diff --git a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/seckill/vo/activity/AppSeckillActivityRespVO.java b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/seckill/vo/activity/AppSeckillActivityRespVO.java new file mode 100644 index 000000000..2797f9a1b --- /dev/null +++ b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/seckill/vo/activity/AppSeckillActivityRespVO.java @@ -0,0 +1,37 @@ +package cn.iocoder.yudao.module.promotion.controller.app.seckill.vo.activity; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Schema(description = "用户 App - 秒杀活动 Response VO") +@Data +public class AppSeckillActivityRespVO { + + @Schema(description = "秒杀活动编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + private Long id; + + @Schema(description = "秒杀活动名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "晚九点限时秒杀") + private String name; + + @Schema(description = "商品 SPU 编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "2048") + private Long spuId; + + @Schema(description = "商品图片", requiredMode = Schema.RequiredMode.REQUIRED, example = "4096") + // 从 SPU 的 picUrl 读取 + private String picUrl; + @Schema(description = "单位名", requiredMode = Schema.RequiredMode.REQUIRED, example = "个") + private String unitName; + @Schema(description = "商品市场价,单位:分", requiredMode = Schema.RequiredMode.REQUIRED, example = "50") + // 从 SPU 的 marketPrice 读取 + private Integer marketPrice; + + @Schema(description = "秒杀库存(剩余)", requiredMode = Schema.RequiredMode.REQUIRED, example = "100") + private Integer stock; + @Schema(description = "秒杀库存(总共)", requiredMode = Schema.RequiredMode.REQUIRED, example = "200") + private Integer totalStock; + + @Schema(description = "秒杀金额,单位:分", requiredMode = Schema.RequiredMode.REQUIRED, example = "100") + // 从秒杀商品里取最低价 + private Integer seckillPrice; + +} diff --git a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/seckill/vo/config/AppSeckillConfigRespVO.java b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/seckill/vo/config/AppSeckillConfigRespVO.java new file mode 100644 index 000000000..c981f8429 --- /dev/null +++ b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/seckill/vo/config/AppSeckillConfigRespVO.java @@ -0,0 +1,23 @@ +package cn.iocoder.yudao.module.promotion.controller.app.seckill.vo.config; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.List; + +@Schema(description = "用户 App - 秒杀时间段 Response VO") +@Data +public class AppSeckillConfigRespVO { + + @Schema(description = "秒杀时间段编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + private Long id; + + @Schema(description = "开始时间点", requiredMode = Schema.RequiredMode.REQUIRED, example = "09:00") + private String startTime; + @Schema(description = "结束时间点", requiredMode = Schema.RequiredMode.REQUIRED, example = "09:59") + private String endTime; + + @Schema(description = "轮播图", requiredMode = Schema.RequiredMode.REQUIRED) + private List sliderPicUrls; + +} diff --git a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/convert/decorate/DecorateComponentConvert.java b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/convert/decorate/DecorateComponentConvert.java new file mode 100644 index 000000000..c815220ee --- /dev/null +++ b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/convert/decorate/DecorateComponentConvert.java @@ -0,0 +1,42 @@ +package cn.iocoder.yudao.module.promotion.convert.decorate; + +import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; +import cn.iocoder.yudao.module.promotion.controller.admin.decorate.vo.DecorateComponentSaveReqVO; +import cn.iocoder.yudao.module.promotion.controller.admin.decorate.vo.DecorateComponentRespVO; +import cn.iocoder.yudao.module.promotion.controller.app.decorate.vo.AppDecorateComponentRespVO; +import cn.iocoder.yudao.module.promotion.dal.dataobject.decorate.DecorateComponentDO; +import org.mapstruct.Mapper; +import org.mapstruct.factory.Mappers; + +import java.util.List; + +import static cn.iocoder.yudao.module.promotion.controller.admin.decorate.vo.DecorateComponentRespVO.*; +import static cn.iocoder.yudao.module.promotion.controller.app.decorate.vo.AppDecorateComponentRespVO.*; + +@Mapper +public interface DecorateComponentConvert { + + DecorateComponentConvert INSTANCE = Mappers.getMapper(DecorateComponentConvert.class); + + default List convertList(Integer pageId, List components) { + return CollectionUtils.convertList(components, c -> convert(pageId, c)); + } + + default DecorateComponentRespVO convert2(Integer pageId, List list) { + List components = CollectionUtils.convertList(list, this::convert3); + return new DecorateComponentRespVO().setPageId(pageId).setComponents(components); + } + + DecorateComponentDO convert(Integer pageId, DecorateComponentSaveReqVO.ComponentReqVO reqVO); + + ComponentRespVO convert3(DecorateComponentDO componentDO); + + // ========== App convert ========== + default AppDecorateComponentRespVO appConvert(Integer pageId, List list) { + List components = CollectionUtils.convertList(list, this::appConvert2); + return new AppDecorateComponentRespVO().setPageId(pageId).setComponents(components); + } + + AppComponentRespVO appConvert2(DecorateComponentDO bean); + +} diff --git a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/convert/seckill/seckillactivity/SeckillActivityConvert.java b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/convert/seckill/seckillactivity/SeckillActivityConvert.java index 1a00fdeb6..7d62b4f2d 100644 --- a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/convert/seckill/seckillactivity/SeckillActivityConvert.java +++ b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/convert/seckill/seckillactivity/SeckillActivityConvert.java @@ -1,16 +1,19 @@ package cn.iocoder.yudao.module.promotion.convert.seckill.seckillactivity; import cn.hutool.core.util.ObjectUtil; +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; import cn.iocoder.yudao.framework.common.pojo.PageResult; -import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; -import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.activity.*; +import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.activity.SeckillActivityCreateReqVO; +import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.activity.SeckillActivityDetailRespVO; +import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.activity.SeckillActivityRespVO; +import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.activity.SeckillActivityUpdateReqVO; +import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.product.SeckillProductCreateReqVO; import cn.iocoder.yudao.module.promotion.dal.dataobject.seckill.seckillactivity.SeckillActivityDO; import cn.iocoder.yudao.module.promotion.dal.dataobject.seckill.seckillactivity.SeckillProductDO; import org.mapstruct.Mapper; -import org.mapstruct.Mapping; -import org.mapstruct.Mappings; import org.mapstruct.factory.Mappers; +import java.util.ArrayList; import java.util.List; /** @@ -23,15 +26,10 @@ public interface SeckillActivityConvert { SeckillActivityConvert INSTANCE = Mappers.getMapper(SeckillActivityConvert.class); - SeckillProductDO convert(SeckillActivityBaseVO.Product product); - + SeckillProductDO convert(SeckillProductCreateReqVO product); SeckillActivityDO convert(SeckillActivityCreateReqVO bean); - default String map(Long[] value) { - return value.toString(); - } - SeckillActivityDO convert(SeckillActivityUpdateReqVO bean); SeckillActivityRespVO convert(SeckillActivityDO bean); @@ -40,7 +38,6 @@ public interface SeckillActivityConvert { PageResult convertPage(PageResult page); - @Mappings({@Mapping(target = "products", source = "seckillProducts")}) SeckillActivityDetailRespVO convert(SeckillActivityDO seckillActivity, List seckillProducts); @@ -51,12 +48,12 @@ public interface SeckillActivityConvert { * @param productVO 前端传入的商品 * @return 是否匹配 */ - default boolean isEquals(SeckillProductDO productDO, SeckillActivityBaseVO.Product productVO) { - return ObjectUtil.equals(productDO.getSpuId(), productVO.getSpuId()) + default boolean isEquals(SeckillProductDO productDO, SeckillProductCreateReqVO productVO) { + return ObjectUtil.equals(productDO.getSpuId(), 1) // TODO puhui:再看看 && ObjectUtil.equals(productDO.getSkuId(), productVO.getSkuId()) - && ObjectUtil.equals(productDO.getSeckillPrice(), productVO.getSeckillPrice()) - && ObjectUtil.equals(productDO.getStock(), productVO.getStock()) - && ObjectUtil.equals(productDO.getLimitBuyCount(), productVO.getLimitBuyCount()); + && ObjectUtil.equals(productDO.getSeckillPrice(), productVO.getSeckillPrice()); + //&& ObjectUtil.equals(productDO.getQuota(), productVO.getQuota()) + //&& ObjectUtil.equals(productDO.getLimitCount(), productVO.getLimitCount()); } /** @@ -69,15 +66,25 @@ public interface SeckillActivityConvert { default boolean isEquals(SeckillProductDO productDO, SeckillProductDO productVO) { return ObjectUtil.equals(productDO.getSpuId(), productVO.getSpuId()) && ObjectUtil.equals(productDO.getSkuId(), productVO.getSkuId()) - && ObjectUtil.equals(productDO.getSeckillPrice(), productVO.getSeckillPrice()) - && ObjectUtil.equals(productDO.getStock(), productVO.getStock()) - && ObjectUtil.equals(productDO.getLimitBuyCount(), productVO.getLimitBuyCount()); - + && ObjectUtil.equals(productDO.getSeckillPrice(), productVO.getSeckillPrice()); + //&& ObjectUtil.equals(productDO.getQuota(), productVO.getQuota()) + //&& ObjectUtil.equals(productDO.getLimitCount(), productVO.getLimitCount()); } - default List convertList(List products, SeckillActivityDO seckillActivity) { - return CollectionUtils.convertList(products, product -> convert(product) - .setActivityId(seckillActivity.getId()).setTimeIds(seckillActivity.getTimeIds())); + default List convertList(SeckillActivityDO seckillActivity, List products) { + List list = new ArrayList<>(); + products.forEach(sku -> { + SeckillProductDO productDO = new SeckillProductDO(); + productDO.setActivityId(seckillActivity.getId()); + productDO.setConfigIds(seckillActivity.getConfigIds()); + productDO.setSpuId(sku.getSpuId()); + productDO.setSkuId(sku.getSkuId()); + productDO.setSeckillPrice(sku.getSeckillPrice()); + productDO.setStock(sku.getStock()); + productDO.setActivityStatus(CommonStatusEnum.ENABLE.getStatus()); + productDO.setActivityStartTime(seckillActivity.getStartTime()); + productDO.setActivityEndTime(seckillActivity.getEndTime()); + }); + return list; } - } diff --git a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/convert/seckill/seckillconfig/SeckillConfigConvert.java b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/convert/seckill/seckillconfig/SeckillConfigConvert.java new file mode 100644 index 000000000..b1e827019 --- /dev/null +++ b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/convert/seckill/seckillconfig/SeckillConfigConvert.java @@ -0,0 +1,36 @@ +package cn.iocoder.yudao.module.promotion.convert.seckill.seckillconfig; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.config.SeckillConfigCreateReqVO; +import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.config.SeckillConfigRespVO; +import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.config.SeckillConfigSimpleRespVO; +import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.config.SeckillConfigUpdateReqVO; +import cn.iocoder.yudao.module.promotion.dal.dataobject.seckill.seckillconfig.SeckillConfigDO; +import org.mapstruct.Mapper; +import org.mapstruct.factory.Mappers; + +import java.util.List; + +/** + * 秒杀时段 Convert + * + * @author 芋道源码 + */ +@Mapper +public interface SeckillConfigConvert { + + SeckillConfigConvert INSTANCE = Mappers.getMapper(SeckillConfigConvert.class); + + SeckillConfigDO convert(SeckillConfigCreateReqVO bean); + + SeckillConfigDO convert(SeckillConfigUpdateReqVO bean); + + SeckillConfigRespVO convert(SeckillConfigDO bean); + + List convertList(List list); + + List convertList1(List list); + + PageResult convertPage(PageResult page); + +} diff --git a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/convert/seckill/seckilltime/SeckillTimeConvert.java b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/convert/seckill/seckilltime/SeckillTimeConvert.java deleted file mode 100644 index 4cea7a91c..000000000 --- a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/convert/seckill/seckilltime/SeckillTimeConvert.java +++ /dev/null @@ -1,34 +0,0 @@ -package cn.iocoder.yudao.module.promotion.convert.seckill.seckilltime; - -import java.util.*; - -import cn.iocoder.yudao.framework.common.pojo.PageResult; - -import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.time.SeckillTimeCreateReqVO; -import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.time.SeckillTimeRespVO; -import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.time.SeckillTimeUpdateReqVO; -import org.mapstruct.Mapper; -import org.mapstruct.factory.Mappers; -import cn.iocoder.yudao.module.promotion.dal.dataobject.seckill.seckilltime.SeckillTimeDO; - -/** - * 秒杀时段 Convert - * - * @author 芋道源码 - */ -@Mapper -public interface SeckillTimeConvert { - - SeckillTimeConvert INSTANCE = Mappers.getMapper(SeckillTimeConvert.class); - - SeckillTimeDO convert(SeckillTimeCreateReqVO bean); - - SeckillTimeDO convert(SeckillTimeUpdateReqVO bean); - - SeckillTimeRespVO convert(SeckillTimeDO bean); - - List convertList(List list); - - PageResult convertPage(PageResult page); - -} diff --git a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/dal/dataobject/decorate/DecorateComponentDO.java b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/dal/dataobject/decorate/DecorateComponentDO.java new file mode 100644 index 000000000..f33401c77 --- /dev/null +++ b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/dal/dataobject/decorate/DecorateComponentDO.java @@ -0,0 +1,50 @@ +package cn.iocoder.yudao.module.promotion.dal.dataobject.decorate; + +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; +import cn.iocoder.yudao.module.promotion.enums.decorate.DecoratePageEnum; +import cn.iocoder.yudao.module.promotion.enums.decorate.DecorateComponentEnum; +import com.baomidou.mybatisplus.annotation.*; + +import lombok.Data; + +/** + * 页面装修组件 DO, 一个页面由多个组件构成 + * + * @author jason + */ +@TableName(value ="promotion_decorate_component") +@KeySequence("promotion_decorate_component_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +public class DecorateComponentDO extends BaseDO { + + /** + * 编号 + */ + @TableId + private Long id; + + /** + * 所属页面 id + * 枚举 {@link DecoratePageEnum#getId()} + */ + private Integer pageId; + + /** + * 组件编码 + * 枚举 {@link DecorateComponentEnum#getCode()} + */ + private String code; + + /** + * 组件值:json 格式。包含配置和数据 + */ + private String value; + + /** + * 状态 + * + * 枚举 {@link CommonStatusEnum} + */ + private Integer status; +} diff --git a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/dal/dataobject/seckill/seckillactivity/SeckillActivityDO.java b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/dal/dataobject/seckill/seckillactivity/SeckillActivityDO.java index 1d3b6da27..be6663592 100644 --- a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/dal/dataobject/seckill/seckillactivity/SeckillActivityDO.java +++ b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/dal/dataobject/seckill/seckillactivity/SeckillActivityDO.java @@ -1,8 +1,8 @@ package cn.iocoder.yudao.module.promotion.dal.dataobject.seckill.seckillactivity; +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; import cn.iocoder.yudao.framework.mybatis.core.type.LongListTypeHandler; -import cn.iocoder.yudao.module.promotion.enums.common.PromotionActivityStatusEnum; import com.baomidou.mybatisplus.annotation.KeySequence; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; @@ -31,14 +31,19 @@ public class SeckillActivityDO extends BaseDO { */ @TableId private Long id; + /** + * 秒杀活动商品 + */ + @TableField(typeHandler = LongListTypeHandler.class) + private List spuIds; /** * 秒杀活动名称 */ private String name; /** * 活动状态 - *

- * 枚举 {@link PromotionActivityStatusEnum 对应的类} + * + * 枚举 {@link CommonStatusEnum 对应的类} */ private Integer status; /** @@ -61,9 +66,9 @@ public class SeckillActivityDO extends BaseDO { * 秒杀时段 id */ @TableField(typeHandler = LongListTypeHandler.class) - private List timeIds; + private List configIds; /** - * 付款订单数 + * 新增订单数 */ private Integer orderCount; /** @@ -74,5 +79,21 @@ public class SeckillActivityDO extends BaseDO { * 订单实付金额,单位:分 */ private Long totalPrice; + /** + * 总限购数量 + */ + private Integer totalLimitCount; + /** + * 单次限够数量 + */ + private Integer singleLimitCount; + /** + * 秒杀库存 + */ + private Integer stock; + /** + * 秒杀总库存 + */ + private Integer totalStock; } diff --git a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/dal/dataobject/seckill/seckillactivity/SeckillProductDO.java b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/dal/dataobject/seckill/seckillactivity/SeckillProductDO.java index 3783d6dda..cdf206bd9 100644 --- a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/dal/dataobject/seckill/seckillactivity/SeckillProductDO.java +++ b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/dal/dataobject/seckill/seckillactivity/SeckillProductDO.java @@ -1,65 +1,81 @@ package cn.iocoder.yudao.module.promotion.dal.dataobject.seckill.seckillactivity; +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; import cn.iocoder.yudao.framework.mybatis.core.type.LongListTypeHandler; -import com.baomidou.mybatisplus.annotation.*; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.ToString; +import cn.iocoder.yudao.module.promotion.dal.dataobject.seckill.seckillconfig.SeckillConfigDO; +import com.baomidou.mybatisplus.annotation.KeySequence; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.*; +import java.time.LocalDateTime; import java.util.List; /** - * 秒杀参与商品 + * 秒杀参与商品 DO * - * @author halfninety - * @TableName promotion_seckill_product + * @author HUIHUI */ -@TableName(value = "promotion_seckill_product", autoResultMap = true) +@TableName("promotion_seckill_product") @KeySequence("promotion_seckill_product_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 @Data @EqualsAndHashCode(callSuper = true) @ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor public class SeckillProductDO extends BaseDO { + /** * 秒杀参与商品编号 */ - @TableId(type = IdType.AUTO) + @TableId private Long id; - /** - * 秒杀活动id + * 秒杀活动 id + * + * 关联 {@link SeckillActivityDO#getId()} */ private Long activityId; - /** - * 秒杀时段id + * 秒杀时段 id + * + * 关联 {@link SeckillConfigDO#getId()} */ @TableField(typeHandler = LongListTypeHandler.class) - private List timeIds; - + private List configIds; /** - * 商品id + * 商品 spu_id */ private Long spuId; - /** - * 商品sku_id + * 商品 sku_id */ private Long skuId; - /** - * 秒杀金额 + * 秒杀金额,单位:分 */ private Integer seckillPrice; - /** * 秒杀库存 */ private Integer stock; /** - * 每人限购 + * 秒杀商品状态 + * + * 枚举 {@link CommonStatusEnum 对应的类} */ - private Integer limitBuyCount; -} \ No newline at end of file + private Integer activityStatus; + /** + * 活动开始时间点 + */ + private LocalDateTime activityStartTime; + /** + * 活动结束时间点 + */ + private LocalDateTime activityEndTime; + +} diff --git a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/dal/dataobject/seckill/seckilltime/SeckillTimeDO.java b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/dal/dataobject/seckill/seckillconfig/SeckillConfigDO.java similarity index 53% rename from yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/dal/dataobject/seckill/seckilltime/SeckillTimeDO.java rename to yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/dal/dataobject/seckill/seckillconfig/SeckillConfigDO.java index df338c0e6..f8fe41a18 100644 --- a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/dal/dataobject/seckill/seckilltime/SeckillTimeDO.java +++ b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/dal/dataobject/seckill/seckillconfig/SeckillConfigDO.java @@ -1,5 +1,6 @@ -package cn.iocoder.yudao.module.promotion.dal.dataobject.seckill.seckilltime; +package cn.iocoder.yudao.module.promotion.dal.dataobject.seckill.seckillconfig; +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; import com.baomidou.mybatisplus.annotation.KeySequence; import com.baomidou.mybatisplus.annotation.TableId; @@ -8,19 +9,17 @@ import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString; -import java.time.LocalTime; - /** * 秒杀时段 DO * * @author 芋道源码 */ -@TableName("promotion_seckill_time") -@KeySequence("promotion_seckill_time_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@TableName("promotion_seckill_config") +@KeySequence("promotion_seckill_config_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 @Data @EqualsAndHashCode(callSuper = true) @ToString(callSuper = true) -public class SeckillTimeDO extends BaseDO { +public class SeckillConfigDO extends BaseDO { /** * 编号 @@ -34,14 +33,21 @@ public class SeckillTimeDO extends BaseDO { /** * 开始时间点 */ - private LocalTime startTime; + private String startTime; /** * 结束时间点 */ - private LocalTime endTime; + private String endTime; + // TODO puhui999:应该是轮播图; private List sliderPicUrls; /** - * 秒杀活动数量 + * 秒杀主图 */ - private Integer seckillActivityCount; + private String picUrl; + /** + * 状态 + * + * 枚举 {@link CommonStatusEnum 对应的类} + */ + private Integer status; } diff --git a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/dal/mysql/decorate/DecorateComponentMapper.java b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/dal/mysql/decorate/DecorateComponentMapper.java new file mode 100644 index 000000000..4773d40bc --- /dev/null +++ b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/dal/mysql/decorate/DecorateComponentMapper.java @@ -0,0 +1,20 @@ +package cn.iocoder.yudao.module.promotion.dal.mysql.decorate; + +import cn.iocoder.yudao.module.promotion.dal.dataobject.decorate.DecorateComponentDO; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +@Mapper +public interface DecorateComponentMapper extends BaseMapperX { + + default List selectByPage(Integer pageId){ + return selectList(DecorateComponentDO::getPageId, pageId); + } + +} + + + + diff --git a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/dal/mysql/seckill/seckillactivity/SeckillActivityMapper.java b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/dal/mysql/seckill/seckillactivity/SeckillActivityMapper.java index c01676c2a..70fe79d53 100644 --- a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/dal/mysql/seckill/seckillactivity/SeckillActivityMapper.java +++ b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/dal/mysql/seckill/seckillactivity/SeckillActivityMapper.java @@ -8,6 +8,8 @@ import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.activity.Se import cn.iocoder.yudao.module.promotion.dal.dataobject.seckill.seckillactivity.SeckillActivityDO; import org.apache.ibatis.annotations.Mapper; +import java.util.List; + /** * 秒杀活动 Mapper * @@ -15,12 +17,19 @@ import org.apache.ibatis.annotations.Mapper; */ @Mapper public interface SeckillActivityMapper extends BaseMapperX { + default PageResult selectPage(SeckillActivityPageReqVO reqVO) { return selectPage(reqVO, new LambdaQueryWrapperX() .likeIfPresent(SeckillActivityDO::getName, reqVO.getName()) .eqIfPresent(SeckillActivityDO::getStatus, reqVO.getStatus()) .betweenIfPresent(SeckillActivityDO::getCreateTime, reqVO.getCreateTime()) - .apply(ObjectUtil.isNotNull(reqVO.getTimeId()),"FIND_IN_SET(" + reqVO.getTimeId() + ",time_ids) > 0") + .apply(ObjectUtil.isNotNull(reqVO.getConfigId()), "FIND_IN_SET(" + reqVO.getConfigId() + ",time_ids) > 0") .orderByDesc(SeckillActivityDO::getId)); } + + default List selectListByStatus(Integer status) { + return selectList(new LambdaQueryWrapperX() + .eqIfPresent(SeckillActivityDO::getStatus, status)); + } + } diff --git a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/dal/mysql/seckill/seckillactivity/SeckillProductMapper.java b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/dal/mysql/seckill/seckillactivity/SeckillProductMapper.java index a590de1a5..fd6d87bdf 100644 --- a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/dal/mysql/seckill/seckillactivity/SeckillProductMapper.java +++ b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/dal/mysql/seckill/seckillactivity/SeckillProductMapper.java @@ -27,7 +27,7 @@ public interface SeckillProductMapper extends BaseMapperX { default void updateTimeIdsByActivityId(Long id, List timeIds) { new LambdaUpdateChainWrapper<>(this) - .set(SeckillProductDO::getTimeIds, CollUtil.join(timeIds, ",")) + .set(SeckillProductDO::getConfigIds, CollUtil.join(timeIds, ",")) .eq(SeckillProductDO::getActivityId, id) .update(); } diff --git a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/dal/mysql/seckill/seckillconfig/SeckillConfigMapper.java b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/dal/mysql/seckill/seckillconfig/SeckillConfigMapper.java new file mode 100644 index 000000000..e94c61949 --- /dev/null +++ b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/dal/mysql/seckill/seckillconfig/SeckillConfigMapper.java @@ -0,0 +1,20 @@ +package cn.iocoder.yudao.module.promotion.dal.mysql.seckill.seckillconfig; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.config.SeckillConfigPageReqVO; +import cn.iocoder.yudao.module.promotion.dal.dataobject.seckill.seckillconfig.SeckillConfigDO; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface SeckillConfigMapper extends BaseMapperX { + + default PageResult selectPage(SeckillConfigPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .likeIfPresent(SeckillConfigDO::getName, reqVO.getName()) + .eqIfPresent(SeckillConfigDO::getStatus, reqVO.getStatus()) + .orderByDesc(SeckillConfigDO::getId)); + } + +} diff --git a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/dal/mysql/seckill/seckilltime/SeckillTimeMapper.java b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/dal/mysql/seckill/seckilltime/SeckillTimeMapper.java deleted file mode 100644 index 46cfe5d3a..000000000 --- a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/dal/mysql/seckill/seckilltime/SeckillTimeMapper.java +++ /dev/null @@ -1,32 +0,0 @@ -package cn.iocoder.yudao.module.promotion.dal.mysql.seckill.seckilltime; - -import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; -import cn.iocoder.yudao.module.promotion.dal.dataobject.seckill.seckilltime.SeckillTimeDO; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper; -import org.apache.ibatis.annotations.Mapper; - -import java.time.LocalTime; -import java.util.Collection; -import java.util.List; - -@Mapper -public interface SeckillTimeMapper extends BaseMapperX { - - default List selectListByTime(LocalTime time) { - return selectList(SeckillTimeDO::getStartTime, SeckillTimeDO::getEndTime, time); - } - - default List selectListByTime(LocalTime startTime, LocalTime endTime) { - return selectList(new LambdaQueryWrapper() - .ge(SeckillTimeDO::getStartTime, startTime) - .le(SeckillTimeDO::getEndTime, endTime)); - } - - default void updateActivityCount(Collection ids, String type, Integer count) { - new LambdaUpdateChainWrapper<>(this) - .in(SeckillTimeDO::getId, ids) - .setSql("`seckill_activity_count` = `seckill_activity_count` " + type + count) - .update(); - } -} diff --git a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/service/decorate/DecorateComponentService.java b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/service/decorate/DecorateComponentService.java new file mode 100644 index 000000000..cf1431fe8 --- /dev/null +++ b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/service/decorate/DecorateComponentService.java @@ -0,0 +1,30 @@ +package cn.iocoder.yudao.module.promotion.service.decorate; + +import cn.iocoder.yudao.module.promotion.controller.admin.decorate.vo.DecorateComponentSaveReqVO; +import cn.iocoder.yudao.module.promotion.dal.dataobject.decorate.DecorateComponentDO; +import cn.iocoder.yudao.module.promotion.enums.decorate.DecoratePageEnum; + +import java.util.List; + +/** + * 装修组件 Service 接口 + * + * @author jason + */ +public interface DecorateComponentService { + + /** + * 店铺装修页面保存 + * + * @param reqVO 请求 VO + */ + void savePageComponents(DecorateComponentSaveReqVO reqVO); + + /** + * 根据页面 id。获取页面的组件信息 + * + * @param pageId 页面类型 {@link DecoratePageEnum#getId()} + */ + List getPageComponents(Integer pageId); + +} diff --git a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/service/decorate/DecorateComponentServiceImpl.java b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/service/decorate/DecorateComponentServiceImpl.java new file mode 100644 index 000000000..73256922a --- /dev/null +++ b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/service/decorate/DecorateComponentServiceImpl.java @@ -0,0 +1,48 @@ +package cn.iocoder.yudao.module.promotion.service.decorate; + +import cn.hutool.core.collection.CollUtil; +import cn.iocoder.yudao.module.promotion.controller.admin.decorate.vo.DecorateComponentSaveReqVO; +import cn.iocoder.yudao.module.promotion.controller.admin.decorate.vo.DecorateComponentSaveReqVO.ComponentReqVO; +import cn.iocoder.yudao.module.promotion.dal.dataobject.decorate.DecorateComponentDO; +import cn.iocoder.yudao.module.promotion.dal.mysql.decorate.DecorateComponentMapper; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; +import java.util.Objects; +import java.util.Set; + +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet; +import static cn.iocoder.yudao.module.promotion.convert.decorate.DecorateComponentConvert.INSTANCE; + +/** + * 装修组件 Service 实现 + * + * @author jason + */ +@Service +public class DecorateComponentServiceImpl implements DecorateComponentService { + + @Resource + private DecorateComponentMapper decorateComponentMapper; + + @Override + public void savePageComponents(DecorateComponentSaveReqVO reqVO) { + // 1.新增或修改页面组件 + List oldList = decorateComponentMapper.selectByPage(reqVO.getPageId()); + + decorateComponentMapper.saveOrUpdateBatch(INSTANCE.convertList(reqVO.getPageId(), reqVO.getComponents())); + // 2.删除相关组件 + Set deleteIds = convertSet(oldList, DecorateComponentDO::getId); + deleteIds.removeAll(convertSet(reqVO.getComponents(), ComponentReqVO::getId, vo->Objects.nonNull(vo.getId()))); + if (CollUtil.isNotEmpty(deleteIds)) { + decorateComponentMapper.deleteBatchIds(deleteIds); + } + } + + @Override + public List getPageComponents(Integer pageId) { + return decorateComponentMapper.selectByPage(pageId); + } + +} diff --git a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/service/discount/DiscountActivityServiceImpl.java b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/service/discount/DiscountActivityServiceImpl.java index 97d70491b..4c628ed83 100644 --- a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/service/discount/DiscountActivityServiceImpl.java +++ b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/service/discount/DiscountActivityServiceImpl.java @@ -52,7 +52,7 @@ public class DiscountActivityServiceImpl implements DiscountActivityService { // 插入活动 DiscountActivityDO discountActivity = DiscountActivityConvert.INSTANCE.convert(createReqVO) - .setStatus(PromotionUtils.calculateActivityStatus(createReqVO.getStartTime(), createReqVO.getEndTime())); + .setStatus(PromotionUtils.calculateActivityStatus(createReqVO.getEndTime())); discountActivityMapper.insert(discountActivity); // 插入商品 List discountProducts = convertList(createReqVO.getProducts(), @@ -74,7 +74,7 @@ public class DiscountActivityServiceImpl implements DiscountActivityService { // 更新活动 DiscountActivityDO updateObj = DiscountActivityConvert.INSTANCE.convert(updateReqVO) - .setStatus(PromotionUtils.calculateActivityStatus(updateReqVO.getStartTime(), updateReqVO.getEndTime())); + .setStatus(PromotionUtils.calculateActivityStatus(updateReqVO.getEndTime())); discountActivityMapper.updateById(updateObj); // 更新商品 updateDiscountProduct(updateReqVO); diff --git a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/service/reward/RewardActivityServiceImpl.java b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/service/reward/RewardActivityServiceImpl.java index cdb73853c..3dd112f72 100755 --- a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/service/reward/RewardActivityServiceImpl.java +++ b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/service/reward/RewardActivityServiceImpl.java @@ -41,7 +41,7 @@ public class RewardActivityServiceImpl implements RewardActivityService { // 插入 RewardActivityDO rewardActivity = RewardActivityConvert.INSTANCE.convert(createReqVO) - .setStatus(PromotionUtils.calculateActivityStatus(createReqVO.getStartTime(), createReqVO.getEndTime())); + .setStatus(PromotionUtils.calculateActivityStatus(createReqVO.getEndTime())); rewardActivityMapper.insert(rewardActivity); // 返回 return rewardActivity.getId(); @@ -59,7 +59,7 @@ public class RewardActivityServiceImpl implements RewardActivityService { // 更新 RewardActivityDO updateObj = RewardActivityConvert.INSTANCE.convert(updateReqVO) - .setStatus(PromotionUtils.calculateActivityStatus(updateReqVO.getStartTime(), updateReqVO.getEndTime())); + .setStatus(PromotionUtils.calculateActivityStatus(updateReqVO.getEndTime())); rewardActivityMapper.updateById(updateObj); } diff --git a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/service/seckill/seckillactivity/SeckillActivityService.java b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/service/seckill/seckillactivity/SeckillActivityService.java index a0ff74dc8..1c3ed38fe 100644 --- a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/service/seckill/seckillactivity/SeckillActivityService.java +++ b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/service/seckill/seckillactivity/SeckillActivityService.java @@ -1,15 +1,16 @@ package cn.iocoder.yudao.module.promotion.service.seckill.seckillactivity; -import java.util.*; -import javax.validation.*; - +import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.activity.SeckillActivityCreateReqVO; import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.activity.SeckillActivityPageReqVO; import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.activity.SeckillActivityUpdateReqVO; import cn.iocoder.yudao.module.promotion.dal.dataobject.seckill.seckillactivity.SeckillActivityDO; -import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.module.promotion.dal.dataobject.seckill.seckillactivity.SeckillProductDO; +import javax.validation.Valid; +import java.util.Collection; +import java.util.List; + /** * 秒杀活动 Service 接口 * @@ -77,4 +78,5 @@ public interface SeckillActivityService { * @return 活动商品列表 */ List getSeckillProductListByActivityId(Long id); + } diff --git a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/service/seckill/seckillactivity/SeckillActivityServiceImpl.java b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/service/seckill/seckillactivity/SeckillActivityServiceImpl.java index 45581d825..e95449649 100644 --- a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/service/seckill/seckillactivity/SeckillActivityServiceImpl.java +++ b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/service/seckill/seckillactivity/SeckillActivityServiceImpl.java @@ -1,19 +1,26 @@ package cn.iocoder.yudao.module.promotion.service.seckill.seckillactivity; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.ArrayUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; -import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.activity.SeckillActivityBaseVO; +import cn.iocoder.yudao.module.product.api.sku.ProductSkuApi; +import cn.iocoder.yudao.module.product.api.sku.dto.ProductSkuRespDTO; +import cn.iocoder.yudao.module.product.api.spu.ProductSpuApi; +import cn.iocoder.yudao.module.product.api.spu.dto.ProductSpuRespDTO; import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.activity.SeckillActivityCreateReqVO; import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.activity.SeckillActivityPageReqVO; import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.activity.SeckillActivityUpdateReqVO; +import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.product.SeckillProductBaseVO; import cn.iocoder.yudao.module.promotion.convert.seckill.seckillactivity.SeckillActivityConvert; import cn.iocoder.yudao.module.promotion.dal.dataobject.seckill.seckillactivity.SeckillActivityDO; import cn.iocoder.yudao.module.promotion.dal.dataobject.seckill.seckillactivity.SeckillProductDO; import cn.iocoder.yudao.module.promotion.dal.mysql.seckill.seckillactivity.SeckillActivityMapper; import cn.iocoder.yudao.module.promotion.dal.mysql.seckill.seckillactivity.SeckillProductMapper; import cn.iocoder.yudao.module.promotion.enums.common.PromotionActivityStatusEnum; -import cn.iocoder.yudao.module.promotion.service.seckill.seckilltime.SeckillTimeService; +import cn.iocoder.yudao.module.promotion.service.seckill.seckillconfig.SeckillConfigService; import cn.iocoder.yudao.module.promotion.util.PromotionUtils; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; @@ -21,8 +28,12 @@ import org.springframework.validation.annotation.Validated; import javax.annotation.Resource; import java.util.Collection; import java.util.List; +import java.util.Set; +import java.util.stream.Collectors; import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.module.product.enums.ErrorCodeConstants.SKU_NOT_EXISTS; +import static cn.iocoder.yudao.module.product.enums.ErrorCodeConstants.SPU_NOT_EXISTS; import static cn.iocoder.yudao.module.promotion.enums.ErrorCodeConstants.*; import static java.util.Arrays.asList; @@ -34,75 +45,106 @@ import static java.util.Arrays.asList; @Service @Validated public class SeckillActivityServiceImpl implements SeckillActivityService { + @Resource private SeckillActivityMapper seckillActivityMapper; @Resource private SeckillProductMapper seckillProductMapper; @Resource - private SeckillTimeService seckillTimeService; + private SeckillConfigService seckillConfigService; + @Resource + private ProductSpuApi productSpuApi; + @Resource + private ProductSkuApi productSkuApi; @Override public Long createSeckillActivity(SeckillActivityCreateReqVO createReqVO) { - // 校验商品是否冲突 - validateSeckillActivityProductConflicts(null, createReqVO.getProducts()); - // 校验秒杀时段是否存在 - seckillTimeService.validateSeckillTimeExists(createReqVO.getTimeIds()); + // 校验商品秒秒杀时段是否冲突 + validateProductSpuSeckillConflict(createReqVO.getConfigIds(), createReqVO.getSpuIds()); + // 校验商品 sku 是否存在 + validateProductSkuExistence(createReqVO.getSpuIds(), createReqVO.getProducts()); // 插入秒杀活动 - SeckillActivityDO seckillActivity = SeckillActivityConvert.INSTANCE.convert(createReqVO) - .setStatus(PromotionUtils.calculateActivityStatus(createReqVO.getStartTime(), createReqVO.getEndTime())); - seckillActivityMapper.insert(seckillActivity); + SeckillActivityDO activity = SeckillActivityConvert.INSTANCE.convert(createReqVO) + .setStatus(PromotionUtils.calculateActivityStatus(createReqVO.getEndTime())); + seckillActivityMapper.insert(activity); // 插入商品 - List productDOS = SeckillActivityConvert.INSTANCE.convertList(createReqVO.getProducts(), seckillActivity); - seckillProductMapper.insertBatch(productDOS); - // 更新秒杀时段的秒杀活动数量 - seckillTimeService.sekillActivityCountIncr(createReqVO.getTimeIds()); - return seckillActivity.getId(); + List product = SeckillActivityConvert.INSTANCE.convertList(activity, createReqVO.getProducts()); + seckillProductMapper.insertBatch(product); + return activity.getId(); + } + + private void validateProductSkuExistence(List spuIds, List products) { + // 校验 spu 个数是否相等 + // TODO @puhui999:不用校验 SPU 哈,只校验 sku 对应的 spuId 是否一致; + Set convertedSpuIds = CollectionUtils.convertSet(products, T::getSpuId); + if (ObjectUtil.notEqual(spuIds.size(), convertedSpuIds.size())) { + throw exception(SKU_NOT_EXISTS); + } + // 获取所选 spu下的所有 sku + // TODO @puhui999:变量可以简单一点;skus + List skuRespDTOs = productSkuApi.getSkuListBySpuId(spuIds); + // 校验 sku 个数是否一致 + Set skuIdsSet = CollectionUtils.convertSet(products, T::getSkuId); + Set skuIdsSet1 = CollectionUtils.convertSet(skuRespDTOs, ProductSkuRespDTO::getId); + if (ObjectUtil.notEqual(skuIdsSet.size(), skuIdsSet1.size())) { + throw exception(SKU_NOT_EXISTS); + } + // 校验 skuId 是否存在 + if (!skuIdsSet1.containsAll(skuIdsSet) || !skuIdsSet.containsAll(skuIdsSet1)) { + throw exception(SKU_NOT_EXISTS); + } + } + + private void validateProductSpuSeckillConflict(List configIds, List spuIds) { + // 校验秒杀时段是否存在 + seckillConfigService.validateSeckillConfigExists(configIds); + // 校验商品 spu 是否存在 + List spuList = productSpuApi.getSpuList(spuIds); + if (ObjectUtil.notEqual(spuIds.size(), spuList.size())) { + throw exception(SPU_NOT_EXISTS); + } + // 查询所有开启的秒杀活动 + List activityDOs = seckillActivityMapper.selectListByStatus(CommonStatusEnum.ENABLE.getStatus()); + // 过滤出所有 spuIds 有交集的活动 + List doList = activityDOs.stream().filter(s -> { + // 判断 spu 是否有交集 + List spuIdsClone = ArrayUtil.clone(s.getSpuIds()); + spuIdsClone.retainAll(spuIds); + if (CollUtil.isEmpty(spuIdsClone)) { + return false; + } + // 判断秒杀时段是否有交集 + List configIdsClone = ArrayUtil.clone(s.getConfigIds()); + configIdsClone.retainAll(configIds); + return CollUtil.isNotEmpty(configIdsClone); + }).collect(Collectors.toList()); + if (CollUtil.isNotEmpty(doList)) { + throw exception(SECKILL_ACTIVITY_SPU_CONFLICTS); + } } @Override public void updateSeckillActivity(SeckillActivityUpdateReqVO updateReqVO) { // 校验存在 SeckillActivityDO seckillActivity = validateSeckillActivityExists(updateReqVO.getId()); - if (PromotionActivityStatusEnum.CLOSE.getStatus().equals(seckillActivity.getStatus())) { + if (CommonStatusEnum.ENABLE.getStatus().equals(seckillActivity.getStatus())) { throw exception(SECKILL_ACTIVITY_UPDATE_FAIL_STATUS_CLOSED); } // 校验商品是否冲突 - validateSeckillActivityProductConflicts(updateReqVO.getId(), updateReqVO.getProducts()); + validateProductSpuSeckillConflict(updateReqVO.getConfigIds(), updateReqVO.getSpuIds()); + // 校验商品 sku 是否存在 + validateProductSkuExistence(updateReqVO.getSpuIds(), updateReqVO.getProducts()); // 更新活动 SeckillActivityDO updateObj = SeckillActivityConvert.INSTANCE.convert(updateReqVO) - .setStatus(PromotionUtils.calculateActivityStatus(updateReqVO.getStartTime(), updateReqVO.getEndTime())); + .setStatus(PromotionUtils.calculateActivityStatus(updateReqVO.getEndTime())); seckillActivityMapper.updateById(updateObj); // 更新商品 - updateSeckillProduct(updateReqVO); - // 更新秒杀时段的秒杀活动数量 - updateSeckillTimeActivityCount(seckillActivity, updateReqVO.getTimeIds()); + //updateSeckillProduct(updateReqVO); } - /** - * 更新秒杀时段的秒杀活动数量 - * - * @param seckillActivity 查询出的秒杀活动 - * @param updateTimeIds 更新后的秒杀时段id列表 - */ - private void updateSeckillTimeActivityCount(SeckillActivityDO seckillActivity, List updateTimeIds) { - // 查询出 timeIds - List existsTimeIds = seckillActivity.getTimeIds(); - // 需要减少的时间段 - Collection reduceIds = CollUtil.filterNew(existsTimeIds, existsTimeId -> !updateTimeIds.contains(existsTimeId)); - // 需要添加的时间段 - updateTimeIds.removeIf(existsTimeIds::contains); - // 更新减少时间段和增加时间段 - if (CollUtil.isNotEmpty(updateTimeIds)) { - seckillTimeService.sekillActivityCountIncr(updateTimeIds); - } - if (CollUtil.isNotEmpty(reduceIds)) { - seckillTimeService.sekillActivityCountDecr(reduceIds); - } - } - /** * 更新秒杀商品 * 后台查出的数据和前台查出的数据进行遍历, @@ -113,57 +155,30 @@ public class SeckillActivityServiceImpl implements SeckillActivityService { * @param updateReqVO 更新的请求VO */ private void updateSeckillProduct(SeckillActivityUpdateReqVO updateReqVO) { - List seckillProductDOS = seckillProductMapper.selectListByActivityId(updateReqVO.getId()); - List products = updateReqVO.getProducts(); + // TODO puhui999:要不这里简单一点;删除原本的,插入新增的;不做的这么细致 + // TODO puhui999:后续完善 + //List seckillProductDOs = seckillProductMapper.selectListByActivityId(updateReqVO.getId()); + //List products = updateReqVO.getProducts(); - // 计算需要删除的数据 - List deleteIds = CollectionUtils.convertList(seckillProductDOS, SeckillProductDO::getId, - seckillProductDO -> products.stream() - .noneMatch(product -> SeckillActivityConvert.INSTANCE.isEquals(seckillProductDO, product))); - if (CollUtil.isNotEmpty(deleteIds)) { - seckillProductMapper.deleteBatchIds(deleteIds); - } - - // 计算需要新增的数据 - List newSeckillProductDOs = CollectionUtils.convertList(products, - product -> SeckillActivityConvert.INSTANCE.convert(product).setActivityId(updateReqVO.getId())); - newSeckillProductDOs.removeIf(product -> seckillProductDOS.stream() - .anyMatch(seckillProduct -> SeckillActivityConvert.INSTANCE.isEquals(seckillProduct, product))); - if (CollUtil.isNotEmpty(newSeckillProductDOs)) { - seckillProductMapper.insertBatch(newSeckillProductDOs); - } + ////计算需要删除的数据 + //List deleteIds = CollectionUtils.convertList(seckillProductDOs, SeckillProductDO::getId, + // seckillProductDO -> products.stream() + // .noneMatch(product -> SeckillActivityConvert.INSTANCE.isEquals(seckillProductDO, product))); + //if (CollUtil.isNotEmpty(deleteIds)) { + // seckillProductMapper.deleteBatchIds(deleteIds); + //} + // + //// 计算需要新增的数据 + //List newSeckillProductDOs = CollectionUtils.convertList(products, + // product -> SeckillActivityConvert.INSTANCE.convert(product).setActivityId(updateReqVO.getId())); + //newSeckillProductDOs.removeIf(product -> seckillProductDOs.stream() + // .anyMatch(seckillProduct -> SeckillActivityConvert.INSTANCE.isEquals(seckillProduct, product))); + //if (CollUtil.isNotEmpty(newSeckillProductDOs)) { + // seckillProductMapper.insertBatch(newSeckillProductDOs); + //} //全量更新当前活动商品的秒杀时段id列表(timeIds) - seckillProductMapper.updateTimeIdsByActivityId(updateReqVO.getId(), updateReqVO.getTimeIds()); - } - - /** - * 校验商品是否冲突 - * - * @param id 秒杀活动编号 - * @param products 商品列表 - */ - private void validateSeckillActivityProductConflicts(Long id, List products) { - if (CollUtil.isEmpty(products)) { - return; - } - List seckillProductDOS = seckillProductMapper - .selectListBySkuIds(CollectionUtils.convertSet(products, SeckillActivityBaseVO.Product::getSkuId)); - if (CollUtil.isEmpty(seckillProductDOS)) { - return; - } - List seckillActivityDOS = seckillActivityMapper - .selectBatchIds(CollectionUtils.convertSet(seckillProductDOS, SeckillProductDO::getActivityId)); - if (id != null) { // 排除自己这个活动 - seckillActivityDOS.removeIf(item -> id.equals(item.getId())); - } - // 排除不满足 status 的活动 - List statuses = asList(PromotionActivityStatusEnum.WAIT.getStatus(), PromotionActivityStatusEnum.RUN.getStatus()); - seckillActivityDOS.removeIf(item -> !statuses.contains(item.getStatus())); - // 如果非空,则说明冲突 - if (CollUtil.isNotEmpty(seckillActivityDOS)) { - throw exception(SECKILL_ACTIVITY_SPU_CONFLICTS); - } + seckillProductMapper.updateTimeIdsByActivityId(updateReqVO.getId(), updateReqVO.getConfigIds()); } @Override @@ -189,8 +204,7 @@ public class SeckillActivityServiceImpl implements SeckillActivityService { if (!statuses.contains(seckillActivity.getStatus())) { throw exception(SECKILL_ACTIVITY_DELETE_FAIL_STATUS_NOT_CLOSED_OR_END); } - // 更新秒杀时段的秒杀活动数量 - seckillTimeService.sekillActivityCountDecr(seckillActivity.getTimeIds()); + // 删除 seckillActivityMapper.deleteById(id); } diff --git a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/service/seckill/seckillconfig/SeckillConfigService.java b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/service/seckill/seckillconfig/SeckillConfigService.java new file mode 100644 index 000000000..2fb9f5dc9 --- /dev/null +++ b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/service/seckill/seckillconfig/SeckillConfigService.java @@ -0,0 +1,87 @@ +package cn.iocoder.yudao.module.promotion.service.seckill.seckillconfig; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.config.SeckillConfigCreateReqVO; +import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.config.SeckillConfigPageReqVO; +import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.config.SeckillConfigUpdateReqVO; +import cn.iocoder.yudao.module.promotion.dal.dataobject.seckill.seckillconfig.SeckillConfigDO; + +import javax.validation.Valid; +import java.util.Collection; +import java.util.List; + +/** + * 秒杀时段 Service 接口 + * + * @author halfninety + */ +public interface SeckillConfigService { + + /** + * 创建秒杀时段 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createSeckillConfig(@Valid SeckillConfigCreateReqVO createReqVO); + + /** + * 更新秒杀时段 + * + * @param updateReqVO 更新信息 + */ + void updateSeckillConfig(@Valid SeckillConfigUpdateReqVO updateReqVO); + + /** + * 删除秒杀时段 + * + * @param id 编号 + */ + void deleteSeckillConfig(Long id); + + /** + * 获得秒杀时段 + * + * @param id 编号 + * @return 秒杀时段 + */ + SeckillConfigDO getSeckillConfig(Long id); + + /** + * 获得所有秒杀时段列表 + * + * @return 所有秒杀时段列表 + */ + List getSeckillConfigList(); + + /** + * 校验秒杀时段是否存在 + * + * @param timeIds 秒杀时段id集合 + */ + void validateSeckillConfigExists(Collection timeIds); + + + /** + * 获得秒杀时间段配置分页数据 + * + * @param pageVO 分页请求参数 + * @return 秒杀时段分页列表 + */ + PageResult getSeckillConfigPage(SeckillConfigPageReqVO pageVO); + + /** + * 获得所有正常状态的时段配置列表 + * + * @return 秒杀时段列表 + */ + List getListAllSimple(); + + /** + * 更新秒杀时段配置状态 + * + * @param id id + * @param status 状态 + */ + void updateSeckillConfigStatus(Long id, Integer status); +} diff --git a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/service/seckill/seckillconfig/SeckillConfigServiceImpl.java b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/service/seckill/seckillconfig/SeckillConfigServiceImpl.java new file mode 100644 index 000000000..599973d5b --- /dev/null +++ b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/service/seckill/seckillconfig/SeckillConfigServiceImpl.java @@ -0,0 +1,160 @@ +package cn.iocoder.yudao.module.promotion.service.seckill.seckillconfig; + +import cn.hutool.core.collection.CollUtil; +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.config.SeckillConfigCreateReqVO; +import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.config.SeckillConfigPageReqVO; +import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.config.SeckillConfigUpdateReqVO; +import cn.iocoder.yudao.module.promotion.convert.seckill.seckillconfig.SeckillConfigConvert; +import cn.iocoder.yudao.module.promotion.dal.dataobject.seckill.seckillconfig.SeckillConfigDO; +import cn.iocoder.yudao.module.promotion.dal.mysql.seckill.seckillconfig.SeckillConfigMapper; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +import javax.annotation.Resource; +import java.time.LocalTime; +import java.util.Collection; +import java.util.List; +import java.util.Set; +import java.util.stream.Collectors; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.module.promotion.enums.ErrorCodeConstants.*; + +/** + * 秒杀时段 Service 实现类 + * + * @author halfninety + */ +@Service +@Validated +public class SeckillConfigServiceImpl implements SeckillConfigService { + + @Resource + private SeckillConfigMapper seckillConfigMapper; + + @Override + public Long createSeckillConfig(SeckillConfigCreateReqVO createReqVO) { + // 校验时间段是否冲突 + validateSeckillConfigConflict(createReqVO.getStartTime(), createReqVO.getEndTime()); + + // 插入 + SeckillConfigDO seckillConfig = SeckillConfigConvert.INSTANCE.convert(createReqVO); + seckillConfigMapper.insert(seckillConfig); + // 返回 + return seckillConfig.getId(); + } + + @Override + public void updateSeckillConfig(SeckillConfigUpdateReqVO updateReqVO) { + // 校验存在 + validateSeckillConfigExists(updateReqVO.getId()); + // 校验时间段是否冲突 + validateSeckillConfigConflict(updateReqVO.getStartTime(), updateReqVO.getEndTime()); + + // 更新 + SeckillConfigDO updateObj = SeckillConfigConvert.INSTANCE.convert(updateReqVO); + seckillConfigMapper.updateById(updateObj); + } + + @Override + public void deleteSeckillConfig(Long id) { + // 校验存在 + validateSeckillConfigExists(id); + + // 删除 + seckillConfigMapper.deleteById(id); + } + + private void validateSeckillConfigExists(Long id) { + if (seckillConfigMapper.selectById(id) == null) { + throw exception(SECKILL_TIME_NOT_EXISTS); + } + } + + /** + * 校验时间是否存在冲突 + * + * @param startTime 开始时间 + * @param endTime 结束时间 + */ + private void validateSeckillConfigConflict(String startTime, String endTime) { + LocalTime startTime1 = LocalTime.parse(startTime); + LocalTime endTime1 = LocalTime.parse(endTime); + // TODO @puhui999: 这个可以用 validator 里的 assertTrue 去做哈; + // 检查选择的时间是否相等 + if (startTime1.equals(endTime1)) { + throw exception(SECKILL_TIME_EQUAL); + } + // 检查开始时间是否在结束时间之前 + if (startTime1.isAfter(endTime1)) { + throw exception(SECKILL_START_TIME_BEFORE_END_TIME); + } + // 查询出所有的时段配置 + List configDOs = seckillConfigMapper.selectList(); + // 过滤出重叠的时段 ids + // TODO @puhui999:感觉 findOne 就可以了? + Set ids = configDOs.stream().filter((config) -> { + LocalTime startTime2 = LocalTime.parse(config.getStartTime()); + LocalTime endTime2 = LocalTime.parse(config.getEndTime()); + // 判断时间是否重叠 + // 开始时间在已配置时段的结束时间之前 且 结束时间在已配置时段的开始时间之后 [] + // todo @puhui999:LocalDateUtils 可以写个工具类?是否是有重叠的时间?感觉别的场景,可能也会有需要 + return startTime1.isBefore(endTime2) && endTime1.isAfter(startTime2) + // 开始时间在已配置时段的开始时间之前 且 结束时间在已配置时段的开始时间之后 (] 或 () + || startTime1.isBefore(startTime2) && endTime1.isAfter(startTime2) + // 开始时间在已配置时段的结束时间之前 且 结束时间在已配值时段的结束时间之后 [) 或 () + || startTime1.isBefore(endTime2) && endTime1.isAfter(endTime2); + }).map(SeckillConfigDO::getId).collect(Collectors.toSet()); + if (CollUtil.isNotEmpty(ids)) { + throw exception(SECKILL_TIME_CONFLICTS); + } + } + + @Override + public SeckillConfigDO getSeckillConfig(Long id) { + return seckillConfigMapper.selectById(id); + } + + @Override + public List getSeckillConfigList() { + return seckillConfigMapper.selectList(); + } + + @Override + public void validateSeckillConfigExists(Collection configIds) { + if (CollUtil.isEmpty(configIds)) { + throw exception(SECKILL_TIME_NOT_EXISTS); + } + if (seckillConfigMapper.selectBatchIds(configIds).size() != configIds.size()) { + throw exception(SECKILL_TIME_NOT_EXISTS); + } + // TODO @puhui999:应该要校验个 status 哈;如果有禁用的,也不行 + } + + @Override + public PageResult getSeckillConfigPage(SeckillConfigPageReqVO pageVO) { + return seckillConfigMapper.selectPage(pageVO); + } + + // TODO @puhui999:写个查询状态的; 尽可能通用哈 + @Override + public List getListAllSimple() { + return seckillConfigMapper.selectList(SeckillConfigDO::getStatus, CommonStatusEnum.ENABLE.getStatus()); + } + + // TODO @puhui999: 这个要不合并到更新操作里? 不单独有个操作咧; + @Override + public void updateSeckillConfigStatus(Long id, Integer status) { + // 校验秒杀时段是否存在 + validateSeckillConfigExists(id); + + SeckillConfigDO seckillConfigDO = new SeckillConfigDO(); + seckillConfigDO.setId(id); + seckillConfigDO.setStatus(status); + // 更新状态 + seckillConfigMapper.updateById(seckillConfigDO); + } + +} diff --git a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/service/seckill/seckilltime/SeckillTimeService.java b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/service/seckill/seckilltime/SeckillTimeService.java deleted file mode 100644 index 2e9c21249..000000000 --- a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/service/seckill/seckilltime/SeckillTimeService.java +++ /dev/null @@ -1,76 +0,0 @@ -package cn.iocoder.yudao.module.promotion.service.seckill.seckilltime; - -import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.time.SeckillTimeCreateReqVO; -import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.time.SeckillTimeUpdateReqVO; -import cn.iocoder.yudao.module.promotion.dal.dataobject.seckill.seckilltime.SeckillTimeDO; - -import javax.validation.Valid; -import java.util.Collection; -import java.util.List; - -/** - * 秒杀时段 Service 接口 - * - * @author halfninety - */ -public interface SeckillTimeService { - - /** - * 创建秒杀时段 - * - * @param createReqVO 创建信息 - * @return 编号 - */ - Long createSeckillTime(@Valid SeckillTimeCreateReqVO createReqVO); - - /** - * 更新秒杀时段 - * - * @param updateReqVO 更新信息 - */ - void updateSeckillTime(@Valid SeckillTimeUpdateReqVO updateReqVO); - - /** - * 删除秒杀时段 - * - * @param id 编号 - */ - void deleteSeckillTime(Long id); - - /** - * 获得秒杀时段 - * - * @param id 编号 - * @return 秒杀时段 - */ - SeckillTimeDO getSeckillTime(Long id); - - /** - * 获得所有秒杀时段列表 - * - * @return 所有秒杀时段列表 - */ - List getSeckillTimeList(); - - /** - * 校验秒杀时段是否存在 - * - * @param timeIds 秒杀时段id集合 - */ - void validateSeckillTimeExists(Collection timeIds); - - /** - * 秒杀时段列表的秒杀活动数量加 1 - * - * @param ids 秒杀时段id列表 - */ - void sekillActivityCountIncr(Collection ids); - - - /** - * 秒杀时段列表的秒杀活动数量减 1 - * - * @param ids 秒杀时段id列表 - */ - void sekillActivityCountDecr(Collection ids); -} diff --git a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/service/seckill/seckilltime/SeckillTimeServiceImpl.java b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/service/seckill/seckilltime/SeckillTimeServiceImpl.java deleted file mode 100644 index d38183860..000000000 --- a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/service/seckill/seckilltime/SeckillTimeServiceImpl.java +++ /dev/null @@ -1,124 +0,0 @@ -package cn.iocoder.yudao.module.promotion.service.seckill.seckilltime; - -import cn.hutool.core.collection.CollUtil; -import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.time.SeckillTimeCreateReqVO; -import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.time.SeckillTimeUpdateReqVO; -import cn.iocoder.yudao.module.promotion.convert.seckill.seckilltime.SeckillTimeConvert; -import cn.iocoder.yudao.module.promotion.dal.dataobject.seckill.seckilltime.SeckillTimeDO; -import cn.iocoder.yudao.module.promotion.dal.mysql.seckill.seckilltime.SeckillTimeMapper; -import org.springframework.stereotype.Service; -import org.springframework.validation.annotation.Validated; - -import javax.annotation.Resource; -import java.time.LocalTime; -import java.util.Collection; -import java.util.List; -import java.util.Objects; - -import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; -import static cn.iocoder.yudao.module.promotion.enums.ErrorCodeConstants.SECKILL_TIME_CONFLICTS; -import static cn.iocoder.yudao.module.promotion.enums.ErrorCodeConstants.SECKILL_TIME_NOT_EXISTS; - -/** - * 秒杀时段 Service 实现类 - * - * @author halfninety - */ -@Service -@Validated -public class SeckillTimeServiceImpl implements SeckillTimeService { - - @Resource - private SeckillTimeMapper seckillTimeMapper; - - @Override - public Long createSeckillTime(SeckillTimeCreateReqVO createReqVO) { - // 校验时间段是否冲突 - validateSeckillTimeConflict(null, createReqVO.getStartTime(), createReqVO.getEndTime()); - // 插入 - SeckillTimeDO seckillTime = SeckillTimeConvert.INSTANCE.convert(createReqVO); - seckillTimeMapper.insert(seckillTime); - // 返回 - return seckillTime.getId(); - } - - @Override - public void updateSeckillTime(SeckillTimeUpdateReqVO updateReqVO) { - // 校验存在 - this.validateSeckillTimeExists(updateReqVO.getId()); - // 校验时间段是否冲突 - validateSeckillTimeConflict(updateReqVO.getId(), updateReqVO.getStartTime(), updateReqVO.getEndTime()); - // 更新 - SeckillTimeDO updateObj = SeckillTimeConvert.INSTANCE.convert(updateReqVO); - seckillTimeMapper.updateById(updateObj); - } - - @Override - public void deleteSeckillTime(Long id) { - // 校验存在 - this.validateSeckillTimeExists(id); - // 删除 - seckillTimeMapper.deleteById(id); - } - - private void validateSeckillTimeExists(Long id) { - if (seckillTimeMapper.selectById(id) == null) { - throw exception(SECKILL_TIME_NOT_EXISTS); - } - } - - /** - * 校验时间是否存在冲突 - * - * @param startTime 开始时间 - * @param endTime 结束时间 - */ - private void validateSeckillTimeConflict(Long id, LocalTime startTime, LocalTime endTime) { - //查询开始时间,结束时间,是否在别人的时间段内 - List startTimeList = seckillTimeMapper.selectListByTime(startTime); - List endTimeList = seckillTimeMapper.selectListByTime(endTime); - //查询自己时间段内是否有时间段 - List startEndTimeList = seckillTimeMapper.selectListByTime(startTime, endTime); - if (id != null) { - //移除自己 - startTimeList.removeIf(seckillTime -> Objects.equals(seckillTime.getId(), id)); - endTimeList.removeIf(seckillTime -> Objects.equals(seckillTime.getId(), id)); - startEndTimeList.removeIf(seckillTime -> Objects.equals(seckillTime.getId(), id)); - } - if (CollUtil.isNotEmpty(startTimeList) || CollUtil.isNotEmpty(endTimeList) - || CollUtil.isNotEmpty(startEndTimeList)) { - throw exception(SECKILL_TIME_CONFLICTS); - } - } - - @Override - public SeckillTimeDO getSeckillTime(Long id) { - return seckillTimeMapper.selectById(id); - } - - @Override - public List getSeckillTimeList() { - return seckillTimeMapper.selectList(); - } - - @Override - public void validateSeckillTimeExists(Collection timeIds) { - if (CollUtil.isEmpty(timeIds)) { - throw exception(SECKILL_TIME_NOT_EXISTS); - } - if (seckillTimeMapper.selectBatchIds(timeIds).size() != timeIds.size()) { - throw exception(SECKILL_TIME_NOT_EXISTS); - } - } - - @Override - public void sekillActivityCountIncr(Collection ids) { - seckillTimeMapper.updateActivityCount(ids, "+", 1); - } - - @Override - public void sekillActivityCountDecr(Collection ids) { - seckillTimeMapper.updateActivityCount(ids, "-", 1); - } - -} diff --git a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/util/PromotionUtils.java b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/util/PromotionUtils.java index fc8ca16cf..2ad362fe2 100644 --- a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/util/PromotionUtils.java +++ b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/util/PromotionUtils.java @@ -1,7 +1,7 @@ package cn.iocoder.yudao.module.promotion.util; +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; import cn.iocoder.yudao.framework.common.util.date.LocalDateTimeUtils; -import cn.iocoder.yudao.module.promotion.enums.common.PromotionActivityStatusEnum; import java.time.LocalDateTime; @@ -15,18 +15,11 @@ public class PromotionUtils { /** * 根据时间,计算活动状态 * - * @param startTime 开始时间 * @param endTime 结束时间 * @return 活动状态 */ - public static Integer calculateActivityStatus(LocalDateTime startTime, LocalDateTime endTime) { - if (LocalDateTimeUtils.beforeNow(endTime)) { - return PromotionActivityStatusEnum.END.getStatus(); - } - if (LocalDateTimeUtils.afterNow(startTime)) { - return PromotionActivityStatusEnum.WAIT.getStatus(); - } - return PromotionActivityStatusEnum.RUN.getStatus(); + public static Integer calculateActivityStatus(LocalDateTime endTime) { + return LocalDateTimeUtils.beforeNow(endTime) ? CommonStatusEnum.DISABLE.getStatus() : CommonStatusEnum.ENABLE.getStatus(); } } diff --git a/yudao-module-mall/yudao-module-promotion-biz/src/test/java/cn/iocoder/yudao/module/promotion/service/decorate/DecorateComponentServiceImplTest.java b/yudao-module-mall/yudao-module-promotion-biz/src/test/java/cn/iocoder/yudao/module/promotion/service/decorate/DecorateComponentServiceImplTest.java new file mode 100644 index 000000000..067397905 --- /dev/null +++ b/yudao-module-mall/yudao-module-promotion-biz/src/test/java/cn/iocoder/yudao/module/promotion/service/decorate/DecorateComponentServiceImplTest.java @@ -0,0 +1,46 @@ +package cn.iocoder.yudao.module.promotion.service.decorate; + +import cn.iocoder.yudao.framework.test.core.ut.BaseMockitoUnitTest; +import cn.iocoder.yudao.module.promotion.dal.dataobject.decorate.DecorateComponentDO; +import cn.iocoder.yudao.module.promotion.dal.mysql.decorate.DecorateComponentMapper; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.Mockito; + +import java.util.ArrayList; +import java.util.List; + +import static cn.iocoder.yudao.module.promotion.enums.decorate.DecorateComponentEnum.ROLLING_BANNER; +import static cn.iocoder.yudao.module.promotion.enums.decorate.DecoratePageEnum.INDEX; +import static org.mockito.ArgumentMatchers.eq; + +// TODO @芋艿:后续 review 下 +/** + * @author jason + */ +public class DecorateComponentServiceImplTest extends BaseMockitoUnitTest { + + @InjectMocks + private DecorateComponentServiceImpl decoratePageService; + + @Mock + private DecorateComponentMapper decorateComponentMapper; + + @BeforeEach + public void init(){ + + } + + @Test + void testResp(){ + List list = new ArrayList<>(1); + DecorateComponentDO decorateDO = new DecorateComponentDO() + .setPageId(INDEX.getId()).setValue("") + .setCode(ROLLING_BANNER.getCode()).setId(1L); + list.add(decorateDO); + //mock 方法 + Mockito.when(decorateComponentMapper.selectByPage(eq(1))).thenReturn(list); + } +} diff --git a/yudao-module-mall/yudao-module-promotion-biz/src/test/java/cn/iocoder/yudao/module/promotion/service/seckillactivity/SeckillActivityServiceImplTest.java b/yudao-module-mall/yudao-module-promotion-biz/src/test/java/cn/iocoder/yudao/module/promotion/service/seckillactivity/SeckillActivityServiceImplTest.java index 5ce68e346..e24c9d3ce 100644 --- a/yudao-module-mall/yudao-module-promotion-biz/src/test/java/cn/iocoder/yudao/module/promotion/service/seckillactivity/SeckillActivityServiceImplTest.java +++ b/yudao-module-mall/yudao-module-promotion-biz/src/test/java/cn/iocoder/yudao/module/promotion/service/seckillactivity/SeckillActivityServiceImplTest.java @@ -108,31 +108,31 @@ public class SeckillActivityServiceImplTest extends BaseDbUnitTest { SeckillActivityDO dbSeckillActivity = randomPojo(SeckillActivityDO.class, o -> { // 等会查询到 o.setName(null); o.setStatus(null); - o.setTimeIds(null); + o.setConfigIds(null); o.setCreateTime(null); }); seckillActivityMapper.insert(dbSeckillActivity); // 测试 name 不匹配 - seckillActivityMapper.insert(cloneIgnoreId(dbSeckillActivity, o -> o.setName(null))); - // 测试 status 不匹配 - seckillActivityMapper.insert(cloneIgnoreId(dbSeckillActivity, o -> o.setStatus(null))); - // 测试 timeId 不匹配 - seckillActivityMapper.insert(cloneIgnoreId(dbSeckillActivity, o -> o.setTimeIds(null))); - // 测试 createTime 不匹配 - seckillActivityMapper.insert(cloneIgnoreId(dbSeckillActivity, o -> o.setCreateTime(null))); - // 准备参数 - SeckillActivityPageReqVO reqVO = new SeckillActivityPageReqVO(); - reqVO.setName(null); - reqVO.setStatus(null); - reqVO.setTimeId(null); - reqVO.setCreateTime((new LocalDateTime[]{})); + seckillActivityMapper.insert(cloneIgnoreId(dbSeckillActivity, o -> o.setName(null))); + // 测试 status 不匹配 + seckillActivityMapper.insert(cloneIgnoreId(dbSeckillActivity, o -> o.setStatus(null))); + // 测试 timeId 不匹配 + seckillActivityMapper.insert(cloneIgnoreId(dbSeckillActivity, o -> o.setConfigIds(null))); + // 测试 createTime 不匹配 + seckillActivityMapper.insert(cloneIgnoreId(dbSeckillActivity, o -> o.setCreateTime(null))); + // 准备参数 + SeckillActivityPageReqVO reqVO = new SeckillActivityPageReqVO(); + reqVO.setName(null); + reqVO.setStatus(null); + reqVO.setConfigId(null); + reqVO.setCreateTime((new LocalDateTime[]{})); - // 调用 - PageResult pageResult = seckillActivityService.getSeckillActivityPage(reqVO); - // 断言 - assertEquals(1, pageResult.getTotal()); - assertEquals(1, pageResult.getList().size()); - assertPojoEquals(dbSeckillActivity, pageResult.getList().get(0)); + // 调用 + PageResult pageResult = seckillActivityService.getSeckillActivityPage(reqVO); + // 断言 + assertEquals(1, pageResult.getTotal()); + assertEquals(1, pageResult.getList().size()); + assertPojoEquals(dbSeckillActivity, pageResult.getList().get(0)); } @Test @@ -142,7 +142,7 @@ public class SeckillActivityServiceImplTest extends BaseDbUnitTest { SeckillActivityDO dbSeckillActivity = randomPojo(SeckillActivityDO.class, o -> { // 等会查询到 o.setName(null); o.setStatus(null); - o.setTimeIds(null); + o.setConfigIds(null); o.setCreateTime(null); }); seckillActivityMapper.insert(dbSeckillActivity); @@ -151,7 +151,7 @@ public class SeckillActivityServiceImplTest extends BaseDbUnitTest { // 测试 status 不匹配 seckillActivityMapper.insert(cloneIgnoreId(dbSeckillActivity, o -> o.setStatus(null))); // 测试 timeId 不匹配 - seckillActivityMapper.insert(cloneIgnoreId(dbSeckillActivity, o -> o.setTimeIds(null))); + seckillActivityMapper.insert(cloneIgnoreId(dbSeckillActivity, o -> o.setConfigIds(null))); // 测试 createTime 不匹配 seckillActivityMapper.insert(cloneIgnoreId(dbSeckillActivity, o -> o.setCreateTime(null))); // 准备参数 diff --git a/yudao-module-mall/yudao-module-promotion-biz/src/test/java/cn/iocoder/yudao/module/promotion/service/seckillconfig/SeckillConfigServiceImplTest.java b/yudao-module-mall/yudao-module-promotion-biz/src/test/java/cn/iocoder/yudao/module/promotion/service/seckillconfig/SeckillConfigServiceImplTest.java new file mode 100644 index 000000000..d6d5e90df --- /dev/null +++ b/yudao-module-mall/yudao-module-promotion-biz/src/test/java/cn/iocoder/yudao/module/promotion/service/seckillconfig/SeckillConfigServiceImplTest.java @@ -0,0 +1,190 @@ +package cn.iocoder.yudao.module.promotion.service.seckillconfig; + +import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest; +import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.config.SeckillConfigCreateReqVO; +import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.config.SeckillConfigUpdateReqVO; +import cn.iocoder.yudao.module.promotion.dal.dataobject.seckill.seckillconfig.SeckillConfigDO; +import cn.iocoder.yudao.module.promotion.dal.mysql.seckill.seckillconfig.SeckillConfigMapper; +import cn.iocoder.yudao.module.promotion.service.seckill.seckillconfig.SeckillConfigServiceImpl; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; +import org.springframework.context.annotation.Import; + +import javax.annotation.Resource; + +import static cn.iocoder.yudao.framework.common.util.object.ObjectUtils.cloneIgnoreId; +import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEquals; +import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertServiceException; +import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomLongId; +import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomPojo; +import static cn.iocoder.yudao.module.promotion.enums.ErrorCodeConstants.SECKILL_TIME_NOT_EXISTS; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertNull; + +/** + * {@link SeckillConfigServiceImpl} 的单元测试类 + * + * @author 芋道源码 + */ +@Import(SeckillConfigServiceImpl.class) +@Disabled // TODO 芋艿:未来开启;后续要 review 下 +public class SeckillConfigServiceImplTest extends BaseDbUnitTest { + + @Resource + private SeckillConfigServiceImpl SeckillConfigService; + + @Resource + private SeckillConfigMapper seckillConfigMapper; + + @Resource + private ObjectMapper objectMapper; + + @Test + public void testJacksonSerializ() { + + // 准备参数 + SeckillConfigCreateReqVO reqVO = randomPojo(SeckillConfigCreateReqVO.class); +// ObjectMapper objectMapper = new ObjectMapper(); + try { + String string = objectMapper.writeValueAsString(reqVO); + System.out.println(string); + } catch (JsonProcessingException e) { + e.printStackTrace(); + } + + + } + + @Test + public void testCreateSeckillConfig_success() { + // 准备参数 + SeckillConfigCreateReqVO reqVO = randomPojo(SeckillConfigCreateReqVO.class); + + // 调用 + Long SeckillConfigId = SeckillConfigService.createSeckillConfig(reqVO); + // 断言 + assertNotNull(SeckillConfigId); + // 校验记录的属性是否正确 + SeckillConfigDO SeckillConfig = seckillConfigMapper.selectById(SeckillConfigId); + assertPojoEquals(reqVO, SeckillConfig); + } + + @Test + public void testUpdateSeckillConfig_success() { + // mock 数据 + SeckillConfigDO dbSeckillConfig = randomPojo(SeckillConfigDO.class); + seckillConfigMapper.insert(dbSeckillConfig);// @Sql: 先插入出一条存在的数据 + // 准备参数 + SeckillConfigUpdateReqVO reqVO = randomPojo(SeckillConfigUpdateReqVO.class, o -> { + o.setId(dbSeckillConfig.getId()); // 设置更新的 ID + }); + + // 调用 + SeckillConfigService.updateSeckillConfig(reqVO); + // 校验是否更新正确 + SeckillConfigDO SeckillConfig = seckillConfigMapper.selectById(reqVO.getId()); // 获取最新的 + assertPojoEquals(reqVO, SeckillConfig); + } + + @Test + public void testUpdateSeckillConfig_notExists() { + // 准备参数 + SeckillConfigUpdateReqVO reqVO = randomPojo(SeckillConfigUpdateReqVO.class); + + // 调用, 并断言异常 + assertServiceException(() -> SeckillConfigService.updateSeckillConfig(reqVO), SECKILL_TIME_NOT_EXISTS); + } + + @Test + public void testDeleteSeckillConfig_success() { + // mock 数据 + SeckillConfigDO dbSeckillConfig = randomPojo(SeckillConfigDO.class); + seckillConfigMapper.insert(dbSeckillConfig);// @Sql: 先插入出一条存在的数据 + // 准备参数 + Long id = dbSeckillConfig.getId(); + + // 调用 + SeckillConfigService.deleteSeckillConfig(id); + // 校验数据不存在了 + assertNull(seckillConfigMapper.selectById(id)); + } + + @Test + public void testDeleteSeckillConfig_notExists() { + // 准备参数 + Long id = randomLongId(); + + // 调用, 并断言异常 + assertServiceException(() -> SeckillConfigService.deleteSeckillConfig(id), SECKILL_TIME_NOT_EXISTS); + } + + @Test + @Disabled // TODO 请修改 null 为需要的值,然后删除 @Disabled 注解 + public void testGetSeckillConfigPage() { + // mock 数据 +// SeckillConfigDO dbSeckillConfig = randomPojo(SeckillConfigDO.class, o -> { // 等会查询到 +// o.setName(null); +// o.setStartTime(null); +// o.setEndTime(null); +// o.setCreateTime(null); +// }); +// seckillConfigMapper.insert(dbSeckillConfig); +// // 测试 name 不匹配 +// seckillConfigMapper.insert(cloneIgnoreId(dbSeckillConfig, o -> o.setName(null))); +// // 测试 startTime 不匹配 +// seckillConfigMapper.insert(cloneIgnoreId(dbSeckillConfig, o -> o.setStartTime(null))); +// // 测试 endTime 不匹配 +// seckillConfigMapper.insert(cloneIgnoreId(dbSeckillConfig, o -> o.setEndTime(null))); +// // 测试 createTime 不匹配 +// seckillConfigMapper.insert(cloneIgnoreId(dbSeckillConfig, o -> o.setCreateTime(null))); +// // 准备参数 +// SeckillConfigPageReqVO reqVO = new SeckillConfigPageReqVO(); +// reqVO.setName(null); +//// reqVO.setStartTime((new LocalTime())); +//// reqVO.setEndTime((new LocalTime[]{})); +//// reqVO.setCreateTime((new Date[]{})); +// +// // 调用 +// PageResult pageResult = SeckillConfigService.getSeckillConfigPage(reqVO); +// // 断言 +// assertEquals(1, pageResult.getTotal()); +// assertEquals(1, pageResult.getList().size()); +// assertPojoEquals(dbSeckillConfig, pageResult.getList().get(0)); + } + + @Test + @Disabled // TODO 请修改 null 为需要的值,然后删除 @Disabled 注解 + public void testGetSeckillConfigList() { + // mock 数据 + SeckillConfigDO dbSeckillConfig = randomPojo(SeckillConfigDO.class, o -> { // 等会查询到 + o.setName(null); + o.setStartTime(null); + o.setEndTime(null); + o.setCreateTime(null); + }); + seckillConfigMapper.insert(dbSeckillConfig); + // 测试 name 不匹配 + seckillConfigMapper.insert(cloneIgnoreId(dbSeckillConfig, o -> o.setName(null))); + // 测试 startTime 不匹配 + seckillConfigMapper.insert(cloneIgnoreId(dbSeckillConfig, o -> o.setStartTime(null))); + // 测试 endTime 不匹配 + seckillConfigMapper.insert(cloneIgnoreId(dbSeckillConfig, o -> o.setEndTime(null))); + // 测试 createTime 不匹配 + seckillConfigMapper.insert(cloneIgnoreId(dbSeckillConfig, o -> o.setCreateTime(null))); + // 准备参数 +// SeckillConfigExportReqVO reqVO = new SeckillConfigExportReqVO(); +// reqVO.setName(null); +// reqVO.setStartTime((new LocalTime[]{})); +// reqVO.setEndTime((new LocalTime[]{})); +// reqVO.setCreateTime((new Date[]{})); +// +// // 调用 +// List list = SeckillConfigService.getSeckillConfigList(reqVO); +// // 断言 +// assertEquals(1, list.size()); +// assertPojoEquals(dbSeckillConfig, list.get(0)); + } + +} diff --git a/yudao-module-mall/yudao-module-promotion-biz/src/test/java/cn/iocoder/yudao/module/promotion/service/seckilltime/SeckillTimeServiceImplTest.java b/yudao-module-mall/yudao-module-promotion-biz/src/test/java/cn/iocoder/yudao/module/promotion/service/seckilltime/SeckillTimeServiceImplTest.java deleted file mode 100644 index b6d7246d7..000000000 --- a/yudao-module-mall/yudao-module-promotion-biz/src/test/java/cn/iocoder/yudao/module/promotion/service/seckilltime/SeckillTimeServiceImplTest.java +++ /dev/null @@ -1,190 +0,0 @@ -package cn.iocoder.yudao.module.promotion.service.seckilltime; - -import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.time.SeckillTimeCreateReqVO; -import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.time.SeckillTimeUpdateReqVO; -import cn.iocoder.yudao.module.promotion.service.seckill.seckilltime.SeckillTimeServiceImpl; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; -import org.junit.jupiter.api.Disabled; -import org.junit.jupiter.api.Test; - -import javax.annotation.Resource; - -import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest; - -import cn.iocoder.yudao.module.promotion.dal.dataobject.seckill.seckilltime.SeckillTimeDO; -import cn.iocoder.yudao.module.promotion.dal.mysql.seckill.seckilltime.SeckillTimeMapper; - -import org.springframework.context.annotation.Import; - -import static cn.iocoder.yudao.module.promotion.enums.ErrorCodeConstants.*; -import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.*; -import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.*; -import static cn.iocoder.yudao.framework.common.util.object.ObjectUtils.*; -import static org.junit.jupiter.api.Assertions.*; - -/** -* {@link SeckillTimeServiceImpl} 的单元测试类 -* -* @author 芋道源码 -*/ -@Import(SeckillTimeServiceImpl.class) -@Disabled // TODO 芋艿:未来开启 -public class SeckillTimeServiceImplTest extends BaseDbUnitTest { - - @Resource - private SeckillTimeServiceImpl seckillTimeService; - - @Resource - private SeckillTimeMapper seckillTimeMapper; - - @Resource - private ObjectMapper objectMapper; - - @Test - public void testJacksonSerializ(){ - - // 准备参数 - SeckillTimeCreateReqVO reqVO = randomPojo(SeckillTimeCreateReqVO.class); -// ObjectMapper objectMapper = new ObjectMapper(); - try { - String string = objectMapper.writeValueAsString(reqVO); - System.out.println(string); - } catch (JsonProcessingException e) { - e.printStackTrace(); - } - - - } - - @Test - public void testCreateSeckillTime_success() { - // 准备参数 - SeckillTimeCreateReqVO reqVO = randomPojo(SeckillTimeCreateReqVO.class); - - // 调用 - Long seckillTimeId = seckillTimeService.createSeckillTime(reqVO); - // 断言 - assertNotNull(seckillTimeId); - // 校验记录的属性是否正确 - SeckillTimeDO seckillTime = seckillTimeMapper.selectById(seckillTimeId); - assertPojoEquals(reqVO, seckillTime); - } - - @Test - public void testUpdateSeckillTime_success() { - // mock 数据 - SeckillTimeDO dbSeckillTime = randomPojo(SeckillTimeDO.class); - seckillTimeMapper.insert(dbSeckillTime);// @Sql: 先插入出一条存在的数据 - // 准备参数 - SeckillTimeUpdateReqVO reqVO = randomPojo(SeckillTimeUpdateReqVO.class, o -> { - o.setId(dbSeckillTime.getId()); // 设置更新的 ID - }); - - // 调用 - seckillTimeService.updateSeckillTime(reqVO); - // 校验是否更新正确 - SeckillTimeDO seckillTime = seckillTimeMapper.selectById(reqVO.getId()); // 获取最新的 - assertPojoEquals(reqVO, seckillTime); - } - - @Test - public void testUpdateSeckillTime_notExists() { - // 准备参数 - SeckillTimeUpdateReqVO reqVO = randomPojo(SeckillTimeUpdateReqVO.class); - - // 调用, 并断言异常 - assertServiceException(() -> seckillTimeService.updateSeckillTime(reqVO), SECKILL_TIME_NOT_EXISTS); - } - - @Test - public void testDeleteSeckillTime_success() { - // mock 数据 - SeckillTimeDO dbSeckillTime = randomPojo(SeckillTimeDO.class); - seckillTimeMapper.insert(dbSeckillTime);// @Sql: 先插入出一条存在的数据 - // 准备参数 - Long id = dbSeckillTime.getId(); - - // 调用 - seckillTimeService.deleteSeckillTime(id); - // 校验数据不存在了 - assertNull(seckillTimeMapper.selectById(id)); - } - - @Test - public void testDeleteSeckillTime_notExists() { - // 准备参数 - Long id = randomLongId(); - - // 调用, 并断言异常 - assertServiceException(() -> seckillTimeService.deleteSeckillTime(id), SECKILL_TIME_NOT_EXISTS); - } - - @Test - @Disabled // TODO 请修改 null 为需要的值,然后删除 @Disabled 注解 - public void testGetSeckillTimePage() { - // mock 数据 -// SeckillTimeDO dbSeckillTime = randomPojo(SeckillTimeDO.class, o -> { // 等会查询到 -// o.setName(null); -// o.setStartTime(null); -// o.setEndTime(null); -// o.setCreateTime(null); -// }); -// seckillTimeMapper.insert(dbSeckillTime); -// // 测试 name 不匹配 -// seckillTimeMapper.insert(cloneIgnoreId(dbSeckillTime, o -> o.setName(null))); -// // 测试 startTime 不匹配 -// seckillTimeMapper.insert(cloneIgnoreId(dbSeckillTime, o -> o.setStartTime(null))); -// // 测试 endTime 不匹配 -// seckillTimeMapper.insert(cloneIgnoreId(dbSeckillTime, o -> o.setEndTime(null))); -// // 测试 createTime 不匹配 -// seckillTimeMapper.insert(cloneIgnoreId(dbSeckillTime, o -> o.setCreateTime(null))); -// // 准备参数 -// SeckillTimePageReqVO reqVO = new SeckillTimePageReqVO(); -// reqVO.setName(null); -//// reqVO.setStartTime((new LocalTime())); -//// reqVO.setEndTime((new LocalTime[]{})); -//// reqVO.setCreateTime((new Date[]{})); -// -// // 调用 -// PageResult pageResult = seckillTimeService.getSeckillTimePage(reqVO); -// // 断言 -// assertEquals(1, pageResult.getTotal()); -// assertEquals(1, pageResult.getList().size()); -// assertPojoEquals(dbSeckillTime, pageResult.getList().get(0)); - } - - @Test - @Disabled // TODO 请修改 null 为需要的值,然后删除 @Disabled 注解 - public void testGetSeckillTimeList() { - // mock 数据 - SeckillTimeDO dbSeckillTime = randomPojo(SeckillTimeDO.class, o -> { // 等会查询到 - o.setName(null); - o.setStartTime(null); - o.setEndTime(null); - o.setCreateTime(null); - }); - seckillTimeMapper.insert(dbSeckillTime); - // 测试 name 不匹配 - seckillTimeMapper.insert(cloneIgnoreId(dbSeckillTime, o -> o.setName(null))); - // 测试 startTime 不匹配 - seckillTimeMapper.insert(cloneIgnoreId(dbSeckillTime, o -> o.setStartTime(null))); - // 测试 endTime 不匹配 - seckillTimeMapper.insert(cloneIgnoreId(dbSeckillTime, o -> o.setEndTime(null))); - // 测试 createTime 不匹配 - seckillTimeMapper.insert(cloneIgnoreId(dbSeckillTime, o -> o.setCreateTime(null))); - // 准备参数 -// SeckillTimeExportReqVO reqVO = new SeckillTimeExportReqVO(); -// reqVO.setName(null); -// reqVO.setStartTime((new LocalTime[]{})); -// reqVO.setEndTime((new LocalTime[]{})); -// reqVO.setCreateTime((new Date[]{})); -// -// // 调用 -// List list = seckillTimeService.getSeckillTimeList(reqVO); -// // 断言 -// assertEquals(1, list.size()); -// assertPojoEquals(dbSeckillTime, list.get(0)); - } - -} diff --git a/yudao-module-mall/yudao-module-promotion-biz/src/test/resources/sql/clean.sql b/yudao-module-mall/yudao-module-promotion-biz/src/test/resources/sql/clean.sql index d3f8e3718..d848bf556 100644 --- a/yudao-module-mall/yudao-module-promotion-biz/src/test/resources/sql/clean.sql +++ b/yudao-module-mall/yudao-module-promotion-biz/src/test/resources/sql/clean.sql @@ -4,3 +4,4 @@ DELETE FROM "promotion_coupon"; DELETE FROM "promotion_reward_activity"; DELETE FROM "promotion_discount_activity"; DELETE FROM "promotion_discount_product"; +DELETE FROM "promotion_seckill_config"; diff --git a/yudao-module-mall/yudao-module-promotion-biz/src/test/resources/sql/create_tables.sql b/yudao-module-mall/yudao-module-promotion-biz/src/test/resources/sql/create_tables.sql index 7ff1a7239..33b6edc48 100644 --- a/yudao-module-mall/yudao-module-promotion-biz/src/test/resources/sql/create_tables.sql +++ b/yudao-module-mall/yudao-module-promotion-biz/src/test/resources/sql/create_tables.sql @@ -107,18 +107,45 @@ CREATE TABLE IF NOT EXISTS "promotion_discount_activity" ( PRIMARY KEY ("id") ) COMMENT '限时折扣活动'; -CREATE TABLE IF NOT EXISTS "promotion_discount_product" ( - "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, - "activity_id" bigint NOT NULL, - "spu_id" bigint NOT NULL, - "sku_id" bigint NOT NULL, - "discount_type" int NOT NULL, - "discount_percent" int, - "discount_price" int, - "creator" varchar DEFAULT '', - "create_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, - "updater" varchar DEFAULT '', - "update_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - "deleted" bit NOT NULL DEFAULT FALSE, - PRIMARY KEY ("id") -) COMMENT '限时折扣活动'; +-- 将该建表 SQL 语句,添加到 yudao-module-promotion-biz 模块的 test/resources/sql/create_tables.sql 文件里 +CREATE TABLE IF NOT EXISTS "promotion_seckill_activity" ( + "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, + "spu_id" bigint NOT NULL, + "name" varchar NOT NULL, + "status" int NOT NULL, + "remark" varchar, + "start_time" varchar NOT NULL, + "end_time" varchar NOT NULL, + "sort" int NOT NULL, + "config_ids" varchar NOT NULL, + "order_count" int NOT NULL, + "user_count" int NOT NULL, + "total_price" int NOT NULL, + "total_limit_count" int, + "single_limit_count" int, + "stock" int, + "total_stock" int, + "creator" varchar DEFAULT '', + "create_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updater" varchar DEFAULT '', + "update_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + "deleted" bit NOT NULL DEFAULT FALSE, + "tenant_id" bigint NOT NULL, + PRIMARY KEY ("id") +) COMMENT '秒杀活动'; + +CREATE TABLE IF NOT EXISTS "promotion_seckill_config" ( + "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, + "name" varchar NOT NULL, + "start_time" varchar NOT NULL, + "end_time" varchar NOT NULL, + "pic_url" varchar NOT NULL, + "status" int NOT NULL, + "creator" varchar DEFAULT '', + "create_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updater" varchar DEFAULT '', + "update_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + "deleted" bit NOT NULL DEFAULT FALSE, + "tenant_id" bigint NOT NULL, + PRIMARY KEY ("id") +) COMMENT '秒杀时段配置'; diff --git a/yudao-module-mall/yudao-module-trade-api/src/main/java/cn/iocoder/yudao/module/trade/api/order/TradeOrderApi.java b/yudao-module-mall/yudao-module-trade-api/src/main/java/cn/iocoder/yudao/module/trade/api/order/TradeOrderApi.java index 8dc2aaced..5f98073d1 100644 --- a/yudao-module-mall/yudao-module-trade-api/src/main/java/cn/iocoder/yudao/module/trade/api/order/TradeOrderApi.java +++ b/yudao-module-mall/yudao-module-trade-api/src/main/java/cn/iocoder/yudao/module/trade/api/order/TradeOrderApi.java @@ -1,7 +1,5 @@ package cn.iocoder.yudao.module.trade.api.order; -import cn.iocoder.yudao.module.trade.api.order.dto.TradeOrderRespDTO; - /** * 订单 API 接口 * @@ -10,11 +8,12 @@ import cn.iocoder.yudao.module.trade.api.order.dto.TradeOrderRespDTO; public interface TradeOrderApi { /** - * 获取订单通过订单 id + * 验证订单 * - * @param id id - * @return 订单信息 Response DTO + * @param userId 用户 id + * @param orderItemId 订单项 id + * @return 校验通过返回订单 id */ - TradeOrderRespDTO getOrder(Long id); + Long validateOrder(Long userId, Long orderItemId); } diff --git a/yudao-module-mall/yudao-module-trade-api/src/main/java/cn/iocoder/yudao/module/trade/enums/ErrorCodeConstants.java b/yudao-module-mall/yudao-module-trade-api/src/main/java/cn/iocoder/yudao/module/trade/enums/ErrorCodeConstants.java index 43a9d62e6..1b3c73c30 100644 --- a/yudao-module-mall/yudao-module-trade-api/src/main/java/cn/iocoder/yudao/module/trade/enums/ErrorCodeConstants.java +++ b/yudao-module-mall/yudao-module-trade-api/src/main/java/cn/iocoder/yudao/module/trade/enums/ErrorCodeConstants.java @@ -45,17 +45,26 @@ public interface ErrorCodeConstants { // ========== Cart 模块 1011002000 ========== ErrorCode CARD_ITEM_NOT_FOUND = new ErrorCode(1011002000, "购物车项不存在"); - // ========== 物流配送模块 1011003000 ========== - ErrorCode DELIVERY_EXPRESS_NOT_EXISTS = new ErrorCode(1011003000, "快递公司不存在"); - // TODO @jason:最好每个模块一段哈。express 一个;exmpresstemplate 一个;pickup 一个 - ErrorCode EXPRESS_CODE_DUPLICATE = new ErrorCode(1011003001, "已经存在该编码的快递公司"); - ErrorCode EXPRESS_TEMPLATE_NOT_EXISTS = new ErrorCode(1011003002, "运费模板不存在"); - ErrorCode EXPRESS_TEMPLATE_NAME_DUPLICATE = new ErrorCode(1011003003, "已经存在该运费模板名"); - ErrorCode DELIVERY_EXPRESS_USER_ADDRESS_IS_EMPTY = new ErrorCode(1011003004, "计算快递运费时,收件人地址编号为空"); - ErrorCode PRODUCT_EXPRESS_TEMPLATE_NOT_FOUND = new ErrorCode(1011003005, "找不到到商品对应的运费模板"); - ErrorCode PICK_UP_STORE_NOT_EXISTS = new ErrorCode(1011003006, "自提门店不存在"); + // ========== Price 相关 1011003000 ============ + ErrorCode PRICE_CALCULATE_PAY_PRICE_ILLEGAL = new ErrorCode(1011003000, "支付价格计算异常,原因:价格小于等于 0"); + ErrorCode PRICE_CALCULATE_DELIVERY_PRICE_USER_ADDR_IS_EMPTY = new ErrorCode(1011003001, "计算快递运费异常,收件人地址编号为空"); + ErrorCode PRICE_CALCULATE_DELIVERY_PRICE_TEMPLATE_NOT_FOUND = new ErrorCode(1011003002, "计算快递运费异常,找不到对应的运费模板"); + + // ========== 物流 Express 模块 1011004000 ========== + ErrorCode EXPRESS_NOT_EXISTS = new ErrorCode(1011004000, "快递公司不存在"); + ErrorCode EXPRESS_CODE_DUPLICATE = new ErrorCode(1011004001, "已经存在该编码的快递公司"); + ErrorCode EXPRESS_CLIENT_NOT_PROVIDE = new ErrorCode(1011004002, "需要接入快递服务商,比如【快递100】"); + + ErrorCode EXPRESS_API_QUERY_ERROR = new ErrorCode(1011004101, "快递查询接口异常"); + ErrorCode EXPRESS_API_QUERY_FAILED = new ErrorCode(1011004102, "快递查询返回失败,原因:{}"); + + // ========== 物流 Template 模块 1011005000 ========== + ErrorCode EXPRESS_TEMPLATE_NAME_DUPLICATE = new ErrorCode(1011005000, "已经存在该运费模板名"); + ErrorCode EXPRESS_TEMPLATE_NOT_EXISTS = new ErrorCode(1011005001, "运费模板不存在"); + + // ========== 物流 PICK_UP 模块 1011006000 ========== + + ErrorCode PICK_UP_STORE_NOT_EXISTS = new ErrorCode(1011006000, "自提门店不存在"); - // ========== Price 相关 1011004000 ============ - ErrorCode PRICE_CALCULATE_PAY_PRICE_ILLEGAL = new ErrorCode(1011004000, "支付价格计算异常,原因:价格小于等于 0"); } diff --git a/yudao-module-mall/yudao-module-trade-api/src/main/java/cn/iocoder/yudao/module/trade/enums/aftersale/AfterSaleOperateTypeEnum.java b/yudao-module-mall/yudao-module-trade-api/src/main/java/cn/iocoder/yudao/module/trade/enums/aftersale/AfterSaleOperateTypeEnum.java new file mode 100644 index 000000000..da41c2b93 --- /dev/null +++ b/yudao-module-mall/yudao-module-trade-api/src/main/java/cn/iocoder/yudao/module/trade/enums/aftersale/AfterSaleOperateTypeEnum.java @@ -0,0 +1,28 @@ +package cn.iocoder.yudao.module.trade.enums.aftersale; + +/** + * 售后操作类型的枚举 + * + * @author 陈賝 + * @since 2023/6/13 13:53 + */ +// TODO @chenchen:可以 lombok 简化构造方法,和 get 方法 +public enum AfterSaleOperateTypeEnum { + + /** + * 用户申请 + */ + APPLY("用户申请"), + ; + + private final String description; + + AfterSaleOperateTypeEnum(String description) { + this.description = description; + } + + public String description() { + return description; + } + +} diff --git a/yudao-module-mall/yudao-module-trade-api/src/main/java/cn/iocoder/yudao/module/trade/enums/aftersale/TradeAfterSaleStatusEnum.java b/yudao-module-mall/yudao-module-trade-api/src/main/java/cn/iocoder/yudao/module/trade/enums/aftersale/TradeAfterSaleStatusEnum.java index 88ea5230c..102eff32b 100644 --- a/yudao-module-mall/yudao-module-trade-api/src/main/java/cn/iocoder/yudao/module/trade/enums/aftersale/TradeAfterSaleStatusEnum.java +++ b/yudao-module-mall/yudao-module-trade-api/src/main/java/cn/iocoder/yudao/module/trade/enums/aftersale/TradeAfterSaleStatusEnum.java @@ -19,23 +19,38 @@ import static cn.hutool.core.util.ArrayUtil.firstMatch; @Getter public enum TradeAfterSaleStatusEnum implements IntArrayValuable { - APPLY(10,"申请中", // 【申请售后】 - "会员申请退款"), - SELLER_AGREE(20, "卖家通过", // 卖家通过售后;【商品待退货】 - "商家同意退款"), - BUYER_DELIVERY(30,"待卖家收货", // 买家已退货,等待卖家收货;【商家待收货】 - "会员填写退货物流信息"), - WAIT_REFUND(40, "等待平台退款", // 卖家已收货,等待平台退款;等待退款【等待退款】 - "商家收货"), - COMPLETE(50, "完成", // 完成退款【退款成功】 - "商家确认退款"), - - BUYER_CANCEL(61, "买家取消售后", // 【买家取消】 - "会员取消退款"), - SELLER_DISAGREE(62,"卖家拒绝", // 卖家拒绝售后;商家拒绝【商家拒绝】 - "商家拒绝退款"), - SELLER_REFUSE(63,"卖家拒绝收货", // 卖家拒绝收货,终止售后;【商家拒收货】 - "商家拒绝收货"), + /** + * 【申请售后】 + */ + APPLY(10,"申请中", "会员申请退款"), + /** + * 卖家通过售后;【商品待退货】 + */ + SELLER_AGREE(20, "卖家通过", "商家同意退款"), + /** + * 买家已退货,等待卖家收货;【商家待收货】 + */ + BUYER_DELIVERY(30,"待卖家收货", "会员填写退货物流信息"), + /** + * 卖家已收货,等待平台退款;等待退款【等待退款】 + */ + WAIT_REFUND(40, "等待平台退款", "商家收货"), + /** + * 完成退款【退款成功】 + */ + COMPLETE(50, "完成", "商家确认退款"), + /** + * 【买家取消】 + */ + BUYER_CANCEL(61, "买家取消售后", "会员取消退款"), + /** + * 卖家拒绝售后;商家拒绝【商家拒绝】 + */ + SELLER_DISAGREE(62,"卖家拒绝", "商家拒绝退款"), + /** + * 卖家拒绝收货,终止售后;【商家拒收货】 + */ + SELLER_REFUSE(63,"卖家拒绝收货", "商家拒绝收货"), ; public static final int[] ARRAYS = Arrays.stream(values()).mapToInt(TradeAfterSaleStatusEnum::getStatus).toArray(); diff --git a/yudao-module-mall/yudao-module-trade-biz/pom.xml b/yudao-module-mall/yudao-module-trade-biz/pom.xml index 24b2097ba..a6f122a78 100644 --- a/yudao-module-mall/yudao-module-trade-biz/pom.xml +++ b/yudao-module-mall/yudao-module-trade-biz/pom.xml @@ -93,6 +93,7 @@ cn.iocoder.boot yudao-spring-boot-starter-excel + diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/api/order/TradeOrderApiImpl.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/api/order/TradeOrderApiImpl.java index 3abdb2a9d..1909f71ca 100644 --- a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/api/order/TradeOrderApiImpl.java +++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/api/order/TradeOrderApiImpl.java @@ -1,13 +1,15 @@ package cn.iocoder.yudao.module.trade.api.order; -import cn.iocoder.yudao.module.trade.api.order.dto.TradeOrderRespDTO; -import cn.iocoder.yudao.module.trade.convert.order.TradeOrderConvert; +import cn.iocoder.yudao.module.trade.dal.dataobject.order.TradeOrderItemDO; import cn.iocoder.yudao.module.trade.service.order.TradeOrderService; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; import javax.annotation.Resource; +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.module.trade.enums.ErrorCodeConstants.ORDER_ITEM_NOT_FOUND; + /** * 订单 API 接口实现类 * @@ -21,8 +23,13 @@ public class TradeOrderApiImpl implements TradeOrderApi { private TradeOrderService tradeOrderService; @Override - public TradeOrderRespDTO getOrder(Long id) { - return TradeOrderConvert.INSTANCE.convert(tradeOrderService.getOrder(id)); + public Long validateOrder(Long userId, Long orderItemId) { + // 校验订单项,订单项存在订单就存在 + TradeOrderItemDO item = tradeOrderService.getOrderItem(userId, orderItemId); + if (item == null) { + throw exception(ORDER_ITEM_NOT_FOUND); + } + return item.getOrderId(); } } diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/aftersale/vo/TradeAfterSaleBaseVO.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/aftersale/vo/TradeAfterSaleBaseVO.java index a008619a0..456fa1810 100644 --- a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/aftersale/vo/TradeAfterSaleBaseVO.java +++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/aftersale/vo/TradeAfterSaleBaseVO.java @@ -17,27 +17,27 @@ import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_ @Data public class TradeAfterSaleBaseVO { - @Schema(description = "售后流水号", required = true, example = "202211190847450020500077") + @Schema(description = "售后流水号", requiredMode = Schema.RequiredMode.REQUIRED, example = "202211190847450020500077") @NotNull(message = "售后流水号不能为空") private String no; - @Schema(description = "售后状态", required = true, example = "10") + @Schema(description = "售后状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "10") @NotNull(message = "售后状态不能为空") private Integer status; - @Schema(description = "售后类型", required = true, example = "20") + @Schema(description = "售后类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "20") @NotNull(message = "售后类型不能为空") private Integer type; - @Schema(description = "售后方式", required = true, example = "10") + @Schema(description = "售后方式", requiredMode = Schema.RequiredMode.REQUIRED, example = "10") @NotNull(message = "售后方式不能为空") private Integer way; - @Schema(description = "用户编号", required = true, example = "30337") + @Schema(description = "用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "30337") @NotNull(message = "用户编号不能为空") private Long userId; - @Schema(description = "申请原因", required = true, example = "不喜欢") + @Schema(description = "申请原因", requiredMode = Schema.RequiredMode.REQUIRED, example = "不喜欢") @NotNull(message = "申请原因不能为空") private String applyReason; @@ -47,34 +47,34 @@ public class TradeAfterSaleBaseVO { @Schema(description = "补充凭证图片", example = "https://www.iocoder.cn/1.png") private List applyPicUrls; - @Schema(description = "订单编号", required = true, example = "18078") + @Schema(description = "订单编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "18078") @NotNull(message = "订单编号不能为空") private Long orderId; - @Schema(description = "订单流水号", required = true, example = "2022111917190001") + @Schema(description = "订单流水号", requiredMode = Schema.RequiredMode.REQUIRED, example = "2022111917190001") @NotNull(message = "订单流水号不能为空") private Long orderNo; - @Schema(description = "订单项编号", required = true, example = "572") + @Schema(description = "订单项编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "572") @NotNull(message = "订单项编号不能为空") private Long orderItemId; - @Schema(description = "商品 SPU 编号", required = true, example = "2888") + @Schema(description = "商品 SPU 编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "2888") @NotNull(message = "商品 SPU 编号不能为空") private Long spuId; - @Schema(description = "商品 SPU 名称", required = true, example = "李四") + @Schema(description = "商品 SPU 名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "李四") @NotNull(message = "商品 SPU 名称不能为空") private String spuName; - @Schema(description = "商品 SKU 编号", required = true, example = "15657") + @Schema(description = "商品 SKU 编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "15657") @NotNull(message = "商品 SKU 编号不能为空") private Long skuId; @Schema(description = "商品图片", example = "https://www.iocoder.cn/2.png") private String picUrl; - @Schema(description = "购买数量", required = true, example = "20012") + @Schema(description = "购买数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "20012") @NotNull(message = "购买数量不能为空") private Integer count; @@ -88,7 +88,7 @@ public class TradeAfterSaleBaseVO { @Schema(description = "审批备注", example = "不香") private String auditReason; - @Schema(description = "退款金额,单位:分", required = true, example = "18077") + @Schema(description = "退款金额,单位:分", requiredMode = Schema.RequiredMode.REQUIRED, example = "18077") @NotNull(message = "退款金额,单位:分不能为空") private Integer refundPrice; diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/aftersale/vo/TradeAfterSaleDisagreeReqVO.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/aftersale/vo/TradeAfterSaleDisagreeReqVO.java index 2ef43f4ce..906728afd 100644 --- a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/aftersale/vo/TradeAfterSaleDisagreeReqVO.java +++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/aftersale/vo/TradeAfterSaleDisagreeReqVO.java @@ -10,11 +10,11 @@ import javax.validation.constraints.NotNull; @Data public class TradeAfterSaleDisagreeReqVO { - @Schema(description = "售后编号", required = true, example = "1024") + @Schema(description = "售后编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") @NotNull(message = "售后编号不能为空") private Long id; - @Schema(description = "审批备注", required = true, example = "你猜") + @Schema(description = "审批备注", requiredMode = Schema.RequiredMode.REQUIRED, example = "你猜") @NotEmpty(message = "审批备注不能为空") private String auditReason; diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/aftersale/vo/TradeAfterSaleRefuseReqVO.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/aftersale/vo/TradeAfterSaleRefuseReqVO.java index a9db6a1a5..e82610060 100644 --- a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/aftersale/vo/TradeAfterSaleRefuseReqVO.java +++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/aftersale/vo/TradeAfterSaleRefuseReqVO.java @@ -9,11 +9,11 @@ import javax.validation.constraints.NotNull; @Data public class TradeAfterSaleRefuseReqVO { - @Schema(description = "售后编号", required = true, example = "1024") + @Schema(description = "售后编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") @NotNull(message = "售后编号不能为空") private Long id; - @Schema(description = "收货备注", required = true, example = "你猜") + @Schema(description = "收货备注", requiredMode = Schema.RequiredMode.REQUIRED, example = "你猜") @NotNull(message = "收货备注不能为空") private String refuseMemo; diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/aftersale/vo/TradeAfterSaleRespPageItemVO.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/aftersale/vo/TradeAfterSaleRespPageItemVO.java index 29180dcaf..b5af865cc 100644 --- a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/aftersale/vo/TradeAfterSaleRespPageItemVO.java +++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/aftersale/vo/TradeAfterSaleRespPageItemVO.java @@ -16,10 +16,10 @@ import java.util.List; @ToString(callSuper = true) public class TradeAfterSaleRespPageItemVO extends TradeAfterSaleBaseVO { - @Schema(description = "售后编号", required = true, example = "27630") + @Schema(description = "售后编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "27630") private Long id; - @Schema(description = "创建时间", required = true) + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) private LocalDateTime createTime; /** diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/aftersale/vo/log/TradeAfterSaleLogRespVO.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/aftersale/vo/log/TradeAfterSaleLogRespVO.java index 10b3cecbb..d7a1940df 100644 --- a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/aftersale/vo/log/TradeAfterSaleLogRespVO.java +++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/aftersale/vo/log/TradeAfterSaleLogRespVO.java @@ -10,41 +10,41 @@ import java.time.LocalDateTime; @Data public class TradeAfterSaleLogRespVO { - @Schema(description = "编号", required = true, example = "20669") + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "20669") private Long id; - @Schema(description = "用户编号", required = true, example = "22634") + @Schema(description = "用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "22634") @NotNull(message = "用户编号不能为空") private Long userId; - @Schema(description = "用户类型", required = true, example = "2") + @Schema(description = "用户类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") @NotNull(message = "用户类型不能为空") private Integer userType; - @Schema(description = "售后编号", required = true, example = "3023") + @Schema(description = "售后编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "3023") @NotNull(message = "售后编号不能为空") private Long afterSaleId; - @Schema(description = "订单编号", required = true, example = "25870") + @Schema(description = "订单编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "25870") @NotNull(message = "订单编号不能为空") private Long orderId; - @Schema(description = "订单项编号", required = true, example = "23154") + @Schema(description = "订单项编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "23154") @NotNull(message = "订单项编号不能为空") private Long orderItemId; @Schema(description = "售后状态(之前)", example = "2") private Integer beforeStatus; - @Schema(description = "售后状态(之后)", required = true, example = "1") + @Schema(description = "售后状态(之后)", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotNull(message = "售后状态(之后)不能为空") private Integer afterStatus; - @Schema(description = "操作明细", required = true, example = "维权完成,退款金额:¥37776.00") + @Schema(description = "操作明细", requiredMode = Schema.RequiredMode.REQUIRED, example = "维权完成,退款金额:¥37776.00") @NotNull(message = "操作明细不能为空") private String content; - @Schema(description = "创建时间", required = true) + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) private LocalDateTime createTime; } diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/base/member/user/MemberUserRespVO.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/base/member/user/MemberUserRespVO.java index 4177b1c01..2d7c3512d 100644 --- a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/base/member/user/MemberUserRespVO.java +++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/base/member/user/MemberUserRespVO.java @@ -7,10 +7,10 @@ import lombok.Data; @Data public class MemberUserRespVO { - @Schema(description = "用户 ID", required = true, example = "1") + @Schema(description = "用户 ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Long id; - @Schema(description = "用户昵称", required = true, example = "芋道源码") + @Schema(description = "用户昵称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道源码") private String nickname; @Schema(description = "用户头像", example = "https://www.iocoder.cn/xxx.png") diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/base/product/property/ProductPropertyValueDetailRespVO.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/base/product/property/ProductPropertyValueDetailRespVO.java index 9b8fe88eb..3d6d3b061 100644 --- a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/base/product/property/ProductPropertyValueDetailRespVO.java +++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/base/product/property/ProductPropertyValueDetailRespVO.java @@ -7,16 +7,16 @@ import lombok.Data; @Data public class ProductPropertyValueDetailRespVO { - @Schema(description = "属性的编号", required = true, example = "1") + @Schema(description = "属性的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Long propertyId; - @Schema(description = "属性的名称", required = true, example = "颜色") + @Schema(description = "属性的名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "颜色") private String propertyName; - @Schema(description = "属性值的编号", required = true, example = "1024") + @Schema(description = "属性值的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private Long valueId; - @Schema(description = "属性值的名称", required = true, example = "红色") + @Schema(description = "属性值的名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "红色") private String valueName; } diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/delivery/vo/express/DeliveryExpressBaseVO.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/delivery/vo/express/DeliveryExpressBaseVO.java index b92faccdb..cc7b8bedd 100644 --- a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/delivery/vo/express/DeliveryExpressBaseVO.java +++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/delivery/vo/express/DeliveryExpressBaseVO.java @@ -12,22 +12,22 @@ import javax.validation.constraints.NotNull; @Data public class DeliveryExpressBaseVO { - @Schema(description = "快递公司编码", required = true) + @Schema(description = "快递公司编码", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "快递公司编码不能为空") private String code; - @Schema(description = "快递公司名称", required = true, example = "李四") + @Schema(description = "快递公司名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "李四") @NotNull(message = "快递公司名称不能为空") private String name; @Schema(description = "快递公司logo") private String logo; - @Schema(description = "排序", required = true) + @Schema(description = "排序", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "排序不能为空") private Integer sort; - @Schema(description = "状态", required = true, example = "1") + @Schema(description = "状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotNull(message = "状态不能为空") private Integer status; diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/delivery/vo/express/DeliveryExpressRespVO.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/delivery/vo/express/DeliveryExpressRespVO.java index 34fd06a53..cc314d105 100644 --- a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/delivery/vo/express/DeliveryExpressRespVO.java +++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/delivery/vo/express/DeliveryExpressRespVO.java @@ -1,7 +1,10 @@ package cn.iocoder.yudao.module.trade.controller.admin.delivery.vo.express; import io.swagger.v3.oas.annotations.media.Schema; -import lombok.*; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + import java.time.LocalDateTime; @Schema(description = "管理后台 - 快递公司 Response VO") @@ -10,10 +13,10 @@ import java.time.LocalDateTime; @ToString(callSuper = true) public class DeliveryExpressRespVO extends DeliveryExpressBaseVO { - @Schema(description = "编号", required = true, example = "6592") + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "6592") private Long id; - @Schema(description = "创建时间", required = true) + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) private LocalDateTime createTime; } diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/delivery/vo/express/DeliveryExpressUpdateReqVO.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/delivery/vo/express/DeliveryExpressUpdateReqVO.java index f8bf33f5c..e51366ded 100644 --- a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/delivery/vo/express/DeliveryExpressUpdateReqVO.java +++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/delivery/vo/express/DeliveryExpressUpdateReqVO.java @@ -13,7 +13,7 @@ import javax.validation.constraints.NotNull; @ToString(callSuper = true) public class DeliveryExpressUpdateReqVO extends DeliveryExpressBaseVO { - @Schema(description = "编号", required = true, example = "6592") + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "6592") @NotNull(message = "编号不能为空") private Long id; diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/delivery/vo/expresstemplate/DeliveryExpressTemplateBaseVO.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/delivery/vo/expresstemplate/DeliveryExpressTemplateBaseVO.java index 7e84f962e..3be8ffc3b 100644 --- a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/delivery/vo/expresstemplate/DeliveryExpressTemplateBaseVO.java +++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/delivery/vo/expresstemplate/DeliveryExpressTemplateBaseVO.java @@ -12,15 +12,15 @@ import javax.validation.constraints.NotNull; @Data public class DeliveryExpressTemplateBaseVO { - @Schema(description = "模板名称", required = true, example = "王五") + @Schema(description = "模板名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五") @NotNull(message = "模板名称不能为空") private String name; - @Schema(description = "配送计费方式 1:按件 2:按重量 3:按体积", required = true) + @Schema(description = "配送计费方式 1:按件 2:按重量 3:按体积", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "配送计费方式 1:按件 2:按重量 3:按体积不能为空") private Integer chargeMode; - @Schema(description = "排序", required = true) + @Schema(description = "排序", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "排序不能为空") private Integer sort; diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/delivery/vo/expresstemplate/DeliveryExpressTemplateRespVO.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/delivery/vo/expresstemplate/DeliveryExpressTemplateRespVO.java index 222cab9fd..19a8c1621 100644 --- a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/delivery/vo/expresstemplate/DeliveryExpressTemplateRespVO.java +++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/delivery/vo/expresstemplate/DeliveryExpressTemplateRespVO.java @@ -1,7 +1,10 @@ package cn.iocoder.yudao.module.trade.controller.admin.delivery.vo.expresstemplate; import io.swagger.v3.oas.annotations.media.Schema; -import lombok.*; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + import java.time.LocalDateTime; @Schema(description = "管理后台 - 快递运费模板 Response VO") @@ -10,10 +13,10 @@ import java.time.LocalDateTime; @ToString(callSuper = true) public class DeliveryExpressTemplateRespVO extends DeliveryExpressTemplateBaseVO { - @Schema(description = "编号,自增", required = true, example = "371") + @Schema(description = "编号,自增", requiredMode = Schema.RequiredMode.REQUIRED, example = "371") private Long id; - @Schema(description = "创建时间", required = true) + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) private LocalDateTime createTime; } diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/delivery/vo/expresstemplate/DeliveryExpressTemplateSimpleRespVO.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/delivery/vo/expresstemplate/DeliveryExpressTemplateSimpleRespVO.java index 37abbd06d..074cc5337 100644 --- a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/delivery/vo/expresstemplate/DeliveryExpressTemplateSimpleRespVO.java +++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/delivery/vo/expresstemplate/DeliveryExpressTemplateSimpleRespVO.java @@ -12,10 +12,10 @@ import lombok.NoArgsConstructor; @AllArgsConstructor public class DeliveryExpressTemplateSimpleRespVO { - @Schema(description = "模版编号", required = true, example = "1024") + @Schema(description = "模版编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private Long id; - @Schema(description = "模板名称", required = true, example = "测试模版") + @Schema(description = "模板名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "测试模版") private String name; } diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/delivery/vo/expresstemplate/DeliveryExpressTemplateUpdateReqVO.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/delivery/vo/expresstemplate/DeliveryExpressTemplateUpdateReqVO.java index d059e3200..b8b372271 100644 --- a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/delivery/vo/expresstemplate/DeliveryExpressTemplateUpdateReqVO.java +++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/delivery/vo/expresstemplate/DeliveryExpressTemplateUpdateReqVO.java @@ -15,7 +15,7 @@ import java.util.List; @ToString(callSuper = true) public class DeliveryExpressTemplateUpdateReqVO extends DeliveryExpressTemplateBaseVO { - @Schema(description = "编号", required = true, example = "371") + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "371") @NotNull(message = "编号不能为空") private Long id; diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/delivery/vo/pickup/DeliveryPickUpStoreBaseVO.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/delivery/vo/pickup/DeliveryPickUpStoreBaseVO.java index 45c07177d..6a4ab1141 100644 --- a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/delivery/vo/pickup/DeliveryPickUpStoreBaseVO.java +++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/delivery/vo/pickup/DeliveryPickUpStoreBaseVO.java @@ -18,49 +18,49 @@ import java.time.LocalTime; @Data public class DeliveryPickUpStoreBaseVO { - @Schema(description = "门店名称", required = true, example = "李四") + @Schema(description = "门店名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "李四") @NotBlank(message = "门店名称不能为空") private String name; @Schema(description = "门店简介", example = "我是门店简介") private String introduction; - @Schema(description = "门店手机", required = true, example = "15601892312") + @Schema(description = "门店手机", requiredMode = Schema.RequiredMode.REQUIRED, example = "15601892312") @NotBlank(message = "门店手机不能为空") @Mobile private String phone; - @Schema(description = "区域编号", required = true, example = "18733") + @Schema(description = "区域编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "18733") @NotNull(message = "区域编号不能为空") private Integer areaId; - @Schema(description = "门店详细地址", required = true, example = "复旦大学路 188 号") + @Schema(description = "门店详细地址", requiredMode = Schema.RequiredMode.REQUIRED, example = "复旦大学路 188 号") @NotBlank(message = "门店详细地址不能为空") private String detailAddress; - @Schema(description = "门店 logo", required = true, example = "https://www.iocoder.cn/1.png") + @Schema(description = "门店 logo", requiredMode = Schema.RequiredMode.REQUIRED, example = "https://www.iocoder.cn/1.png") @NotBlank(message = "门店 logo 不能为空") private String logo; - @Schema(description = "营业开始时间", required = true) + @Schema(description = "营业开始时间", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "营业开始时间不能为空") @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "HH:mm") private LocalTime openingTime; - @Schema(description = "营业结束时间", required = true) + @Schema(description = "营业结束时间", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "营业结束时间不能为空") @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "HH:mm") private LocalTime closingTime; - @Schema(description = "纬度", required = true, example = "5.88") + @Schema(description = "纬度", requiredMode = Schema.RequiredMode.REQUIRED, example = "5.88") @NotNull(message = "纬度不能为空") private Double latitude; - @Schema(description = "经度", required = true, example = "6.99") + @Schema(description = "经度", requiredMode = Schema.RequiredMode.REQUIRED, example = "6.99") @NotNull(message = "经度不能为空") private Double longitude; - @Schema(description = "门店状态", required = true, example = "1") + @Schema(description = "门店状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotNull(message = "门店状态不能为空") @InEnum(CommonStatusEnum.class) private Integer status; diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/delivery/vo/pickup/DeliveryPickUpStoreRespVO.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/delivery/vo/pickup/DeliveryPickUpStoreRespVO.java index db0ffc0e8..5b5bd0d0c 100644 --- a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/delivery/vo/pickup/DeliveryPickUpStoreRespVO.java +++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/delivery/vo/pickup/DeliveryPickUpStoreRespVO.java @@ -1,7 +1,10 @@ package cn.iocoder.yudao.module.trade.controller.admin.delivery.vo.pickup; import io.swagger.v3.oas.annotations.media.Schema; -import lombok.*; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + import java.time.LocalDateTime; @Schema(description = "管理后台 - 自提门店 Response VO") @@ -10,10 +13,10 @@ import java.time.LocalDateTime; @ToString(callSuper = true) public class DeliveryPickUpStoreRespVO extends DeliveryPickUpStoreBaseVO { - @Schema(description = "编号", required = true, example = "23128") + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "23128") private Long id; - @Schema(description = "创建时间", required = true) + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) private LocalDateTime createTime; } diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/delivery/vo/pickup/DeliveryPickUpStoreUpdateReqVO.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/delivery/vo/pickup/DeliveryPickUpStoreUpdateReqVO.java index 21a750075..2b0548d9d 100644 --- a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/delivery/vo/pickup/DeliveryPickUpStoreUpdateReqVO.java +++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/delivery/vo/pickup/DeliveryPickUpStoreUpdateReqVO.java @@ -1,9 +1,11 @@ package cn.iocoder.yudao.module.trade.controller.admin.delivery.vo.pickup; import io.swagger.v3.oas.annotations.media.Schema; -import lombok.*; -import java.util.*; -import javax.validation.constraints.*; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +import javax.validation.constraints.NotNull; @Schema(description = "管理后台 - 自提门店更新 Request VO") @Data @@ -11,7 +13,7 @@ import javax.validation.constraints.*; @ToString(callSuper = true) public class DeliveryPickUpStoreUpdateReqVO extends DeliveryPickUpStoreBaseVO { - @Schema(description = "编号", required = true, example = "23128") + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "23128") @NotNull(message = "编号不能为空") private Long id; diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/order/TradeOrderController.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/order/TradeOrderController.java index 75f05ff86..6dc8f2b7b 100644 --- a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/order/TradeOrderController.java +++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/order/TradeOrderController.java @@ -25,6 +25,7 @@ import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.util.List; +import java.util.Map; import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet; @@ -54,6 +55,9 @@ public class TradeOrderController { if (CollUtil.isEmpty(pageResult.getList())) { return success(PageResult.empty()); } + + // 查询用户信息 + Map userMap = memberUserApi.getUserMap(convertSet(pageResult.getList(), TradeOrderDO::getUserId));; // 查询订单项 List orderItems = tradeOrderService.getOrderItemListByOrderId( convertSet(pageResult.getList(), TradeOrderDO::getId)); @@ -61,7 +65,7 @@ public class TradeOrderController { List propertyValueDetails = productPropertyValueApi .getPropertyValueDetailList(TradeOrderConvert.INSTANCE.convertPropertyValueIds(orderItems)); // 最终组合 - return success(TradeOrderConvert.INSTANCE.convertPage(pageResult, orderItems, propertyValueDetails)); + return success(TradeOrderConvert.INSTANCE.convertPage(pageResult, orderItems, propertyValueDetails, userMap)); } @GetMapping("/get-detail") diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/order/vo/TradeOrderBaseVO.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/order/vo/TradeOrderBaseVO.java index 3453a3c2e..ce53126e6 100755 --- a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/order/vo/TradeOrderBaseVO.java +++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/order/vo/TradeOrderBaseVO.java @@ -14,34 +14,34 @@ public class TradeOrderBaseVO { // ========== 订单基本信息 ========== - @Schema(description = "订单编号", required = true, example = "1024") + @Schema(description = "订单编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private Long id; - @Schema(description = "订单流水号", required = true, example = "1146347329394184195") + @Schema(description = "订单流水号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1146347329394184195") private String no; - @Schema(description = "下单时间", required = true) + @Schema(description = "下单时间", requiredMode = Schema.RequiredMode.REQUIRED) private LocalDateTime createTime; - @Schema(description = "订单类型", required = true, example = "1") + @Schema(description = "订单类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Integer type; - @Schema(description = "订单来源", required = true, example = "1") + @Schema(description = "订单来源", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Integer terminal; - @Schema(description = "用户编号", required = true, example = "2048") + @Schema(description = "用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "2048") private Long userId; - @Schema(description = "用户 IP", required = true, example = "127.0.0.1") + @Schema(description = "用户 IP", requiredMode = Schema.RequiredMode.REQUIRED, example = "127.0.0.1") private String userIp; - @Schema(description = "用户备注", required = true, example = "你猜") + @Schema(description = "用户备注", requiredMode = Schema.RequiredMode.REQUIRED, example = "你猜") private String userRemark; - @Schema(description = "订单状态", required = true, example = "1") + @Schema(description = "订单状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Integer status; - @Schema(description = "购买的商品数量", required = true, example = "10") + @Schema(description = "购买的商品数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "10") private Integer productCount; @Schema(description = "订单完成时间") @@ -58,31 +58,31 @@ public class TradeOrderBaseVO { // ========== 价格 + 支付基本信息 ========== - @Schema(description = "支付订单编号", required = true, example = "1024") + @Schema(description = "支付订单编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private Long payOrderId; - @Schema(description = "是否已支付", required = true, example = "true") + @Schema(description = "是否已支付", requiredMode = Schema.RequiredMode.REQUIRED, example = "true") private Boolean payed; @Schema(description = "付款时间") private LocalDateTime payTime; - @Schema(description = "支付渠道", required = true, example = "wx_lite") + @Schema(description = "支付渠道", requiredMode = Schema.RequiredMode.REQUIRED, example = "wx_lite") private String payChannelCode; - @Schema(description = "商品原价(总)", required = true, example = "1000") - private Integer originalPrice; + @Schema(description = "商品原价(总)", requiredMode = Schema.RequiredMode.REQUIRED, example = "1000") + private Integer totalPrice; - @Schema(description = "订单优惠(总)", required = true, example = "100") + @Schema(description = "订单优惠(总)", requiredMode = Schema.RequiredMode.REQUIRED, example = "100") private Integer discountPrice; - @Schema(description = "运费金额", required = true, example = "100") + @Schema(description = "运费金额", requiredMode = Schema.RequiredMode.REQUIRED, example = "100") private Integer deliveryPrice; - @Schema(description = "订单调价(总)", required = true, example = "100") + @Schema(description = "订单调价(总)", requiredMode = Schema.RequiredMode.REQUIRED, example = "100") private Integer adjustPrice; - @Schema(description = "应付金额(总)", required = true, example = "1000") + @Schema(description = "应付金额(总)", requiredMode = Schema.RequiredMode.REQUIRED, example = "1000") private Integer payPrice; // ========== 收件 + 物流基本信息 ========== @@ -96,7 +96,7 @@ public class TradeOrderBaseVO { @Schema(description = "发货物流单号", example = "1024") private String logisticsNo; - @Schema(description = "发货状态", required = true, example = "1") + @Schema(description = "发货状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Integer deliveryStatus; @Schema(description = "发货时间") @@ -105,16 +105,16 @@ public class TradeOrderBaseVO { @Schema(description = "收货时间") private LocalDateTime receiveTime; - @Schema(description = "收件人名称", required = true, example = "张三") + @Schema(description = "收件人名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三") private String receiverName; - @Schema(description = "收件人手机", required = true, example = "13800138000") + @Schema(description = "收件人手机", requiredMode = Schema.RequiredMode.REQUIRED, example = "13800138000") private String receiverMobile; - @Schema(description = "收件人地区编号", required = true, example = "110000") + @Schema(description = "收件人地区编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "110000") private Integer receiverAreaId; - @Schema(description = "收件人详细地址", required = true, example = "中关村大街 1 号") + @Schema(description = "收件人详细地址", requiredMode = Schema.RequiredMode.REQUIRED, example = "中关村大街 1 号") private String receiverDetailAddress; // ========== 售后基本信息 ========== @@ -122,7 +122,7 @@ public class TradeOrderBaseVO { @Schema(description = "售后状态", example = "1") private Integer afterSaleStatus; - @Schema(description = "退款金额", required = true, example = "100") + @Schema(description = "退款金额", requiredMode = Schema.RequiredMode.REQUIRED, example = "100") private Integer refundPrice; // ========== 营销基本信息 ========== @@ -130,9 +130,9 @@ public class TradeOrderBaseVO { @Schema(description = "优惠劵编号", example = "1024") private Long couponId; - @Schema(description = "优惠劵减免金额", required = true, example = "100") + @Schema(description = "优惠劵减免金额", requiredMode = Schema.RequiredMode.REQUIRED, example = "100") private Integer couponPrice; - @Schema(description = "积分抵扣的金额", required = true, example = "100") + @Schema(description = "积分抵扣的金额", requiredMode = Schema.RequiredMode.REQUIRED, example = "100") private Integer pointPrice; } diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/order/vo/TradeOrderDeliveryReqVO.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/order/vo/TradeOrderDeliveryReqVO.java index 8cb16f89f..039fb2f09 100644 --- a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/order/vo/TradeOrderDeliveryReqVO.java +++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/order/vo/TradeOrderDeliveryReqVO.java @@ -10,15 +10,15 @@ import javax.validation.constraints.NotNull; @Data public class TradeOrderDeliveryReqVO { - @Schema(description = "订单编号", required = true, example = "1024") + @Schema(description = "订单编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") @NotNull(message = "订单编号不能为空") private Long id; - @Schema(description = "发货物流公司编号", required = true, example = "1") + @Schema(description = "发货物流公司编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotNull(message = "发货物流公司编号不能为空") private Long logisticsId; - @Schema(description = "发货物流单号", required = true, example = "SF123456789") + @Schema(description = "发货物流单号", requiredMode = Schema.RequiredMode.REQUIRED, example = "SF123456789") @NotEmpty(message = "发货物流单号不能为空") private String logisticsNo; diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/order/vo/TradeOrderDetailRespVO.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/order/vo/TradeOrderDetailRespVO.java index f24716e16..ae135c95e 100644 --- a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/order/vo/TradeOrderDetailRespVO.java +++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/order/vo/TradeOrderDetailRespVO.java @@ -11,7 +11,7 @@ import java.util.List; @Data public class TradeOrderDetailRespVO extends TradeOrderBaseVO { - @Schema(description = "收件人地区名字", required = true, example = "上海 上海市 普陀区") + @Schema(description = "收件人地区名字", requiredMode = Schema.RequiredMode.REQUIRED, example = "上海 上海市 普陀区") private String receiverAreaName; /** diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/order/vo/TradeOrderItemBaseVO.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/order/vo/TradeOrderItemBaseVO.java index 351d5a787..ded1fe7a1 100644 --- a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/order/vo/TradeOrderItemBaseVO.java +++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/order/vo/TradeOrderItemBaseVO.java @@ -12,47 +12,47 @@ public class TradeOrderItemBaseVO { // ========== 订单项基本信息 ========== - @Schema(description = "编号", required = true, example = "1") + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Long id; - @Schema(description = "用户编号", required = true, example = "1") + @Schema(description = "用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Long userId; - @Schema(description = "订单编号", required = true, example = "1") + @Schema(description = "订单编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Long orderId; // ========== 商品基本信息 ========== - @Schema(description = "商品 SPU 编号", required = true, example = "1") + @Schema(description = "商品 SPU 编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Long spuId; - @Schema(description = "商品 SPU 名称", required = true, example = "芋道源码") + @Schema(description = "商品 SPU 名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道源码") private String spuName; - @Schema(description = "商品 SKU 编号", required = true, example = "1") + @Schema(description = "商品 SKU 编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Long skuId; - @Schema(description = "商品图片", required = true, example = "https://www.iocoder.cn/1.png") + @Schema(description = "商品图片", requiredMode = Schema.RequiredMode.REQUIRED, example = "https://www.iocoder.cn/1.png") private String picUrl; - @Schema(description = "购买数量", required = true, example = "1") + @Schema(description = "购买数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Integer count; // ========== 价格 + 支付基本信息 ========== - @Schema(description = "商品原价(单)", required = true, example = "100") + @Schema(description = "商品原价(单)", requiredMode = Schema.RequiredMode.REQUIRED, example = "100") private Integer price; - @Schema(description = "商品优惠(总)", required = true, example = "100") + @Schema(description = "商品优惠(总)", requiredMode = Schema.RequiredMode.REQUIRED, example = "100") private Integer discountPrice; - @Schema(description = "商品实付金额(总)", required = true, example = "100") + @Schema(description = "商品实付金额(总)", requiredMode = Schema.RequiredMode.REQUIRED, example = "100") private Integer payPrice; - @Schema(description = "子订单分摊金额(总)", required = true, example = "100") + @Schema(description = "子订单分摊金额(总)", requiredMode = Schema.RequiredMode.REQUIRED, example = "100") private Integer orderPartPrice; - @Schema(description = "分摊后子订单实付金额(总)", required = true, example = "100") + @Schema(description = "分摊后子订单实付金额(总)", requiredMode = Schema.RequiredMode.REQUIRED, example = "100") private Integer orderDividePrice; // ========== 营销基本信息 ========== @@ -61,7 +61,7 @@ public class TradeOrderItemBaseVO { // ========== 售后基本信息 ========== - @Schema(description = "售后状态", required = true, example = "1") + @Schema(description = "售后状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Integer afterSaleStatus; } diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/order/vo/TradeOrderPageItemRespVO.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/order/vo/TradeOrderPageItemRespVO.java index fc02acbc5..b0def5a83 100644 --- a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/order/vo/TradeOrderPageItemRespVO.java +++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/order/vo/TradeOrderPageItemRespVO.java @@ -1,5 +1,6 @@ package cn.iocoder.yudao.module.trade.controller.admin.order.vo; +import cn.iocoder.yudao.module.member.api.user.dto.MemberUserRespDTO; import cn.iocoder.yudao.module.trade.controller.admin.base.product.property.ProductPropertyValueDetailRespVO; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; @@ -10,7 +11,7 @@ import java.util.List; @Data public class TradeOrderPageItemRespVO extends TradeOrderBaseVO { - @Schema(description = "收件人地区名字", required = true, example = "上海 上海市 普陀区") + @Schema(description = "收件人地区名字", requiredMode = Schema.RequiredMode.REQUIRED, example = "上海 上海市 普陀区") private String receiverAreaName; /** @@ -18,6 +19,12 @@ public class TradeOrderPageItemRespVO extends TradeOrderBaseVO { */ private List items; + // TODO @xiaobai:使用 MemberUserRespVO 返回哈;DTO 不直接给前端 + /** + * 用户信息 + */ + private MemberUserRespDTO user; + @Schema(description = "管理后台 - 交易订单的分页项的订单项目") @Data public static class Item extends TradeOrderItemBaseVO { diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/order/vo/TradeOrderPageReqVO.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/order/vo/TradeOrderPageReqVO.java index a09e15271..9b0b577cf 100644 --- a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/order/vo/TradeOrderPageReqVO.java +++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/order/vo/TradeOrderPageReqVO.java @@ -1,5 +1,6 @@ package cn.iocoder.yudao.module.trade.controller.admin.order.vo; +import cn.iocoder.yudao.framework.common.enums.TerminalEnum; import cn.iocoder.yudao.framework.common.pojo.PageParam; import cn.iocoder.yudao.framework.common.validation.InEnum; import cn.iocoder.yudao.framework.common.validation.Mobile; @@ -50,4 +51,8 @@ public class TradeOrderPageReqVO extends PageParam { @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) private LocalDateTime[] createTime; + @Schema(description = "订单来源", example = "10") + @InEnum(value = TerminalEnum.class, message = "订单来源 {value}") + private Integer terminal; + } diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/aftersale/AppTradeAfterSaleController.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/aftersale/AppTradeAfterSaleController.java index 1982a9bdd..004f6e68a 100644 --- a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/aftersale/AppTradeAfterSaleController.java +++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/aftersale/AppTradeAfterSaleController.java @@ -6,6 +6,8 @@ import cn.iocoder.yudao.module.trade.controller.app.aftersale.vo.AppTradeAfterSa import cn.iocoder.yudao.module.trade.controller.app.aftersale.vo.AppTradeAfterSaleDeliveryReqVO; import cn.iocoder.yudao.module.trade.controller.app.aftersale.vo.AppTradeAfterSalePageItemRespVO; import cn.iocoder.yudao.module.trade.controller.app.base.property.AppProductPropertyValueDetailRespVO; +import cn.iocoder.yudao.module.trade.enums.aftersale.AfterSaleOperateTypeEnum; +import cn.iocoder.yudao.module.trade.framework.aftersalelog.core.annotations.AfterSaleLog; import cn.iocoder.yudao.module.trade.service.aftersale.TradeAfterSaleService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; @@ -78,6 +80,7 @@ public class AppTradeAfterSaleController { @PostMapping(value = "/create") @Operation(summary = "申请售后") + @AfterSaleLog(id = "#info.data", content = "'申请售后:售后编号['+#info.data+'],订单编号['+#createReqVO.orderItemId+'], '", operateType = AfterSaleOperateTypeEnum.APPLY) public CommonResult createAfterSale(@RequestBody AppTradeAfterSaleCreateReqVO createReqVO) { return success(afterSaleService.createAfterSale(getLoginUserId(), createReqVO)); } diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/aftersale/vo/AppTradeAfterSaleCreateReqVO.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/aftersale/vo/AppTradeAfterSaleCreateReqVO.java index d668005e3..3bf8dd944 100644 --- a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/aftersale/vo/AppTradeAfterSaleCreateReqVO.java +++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/aftersale/vo/AppTradeAfterSaleCreateReqVO.java @@ -13,21 +13,21 @@ import java.util.List; @Data public class AppTradeAfterSaleCreateReqVO { - @Schema(description = "订单项编号", required = true, example = "1024") + @Schema(description = "订单项编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") @NotNull(message = "订单项编号不能为空") private Long orderItemId; - @Schema(description = "售后方式", required = true, example = "1") + @Schema(description = "售后方式", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotNull(message = "售后方式不能为空") @InEnum(value = TradeAfterSaleWayEnum.class, message = "售后方式必须是 {value}") private Integer way; - @Schema(description = "退款金额", required = true, example = "100") + @Schema(description = "退款金额", requiredMode = Schema.RequiredMode.REQUIRED, example = "100") @NotNull(message = "退款金额不能为空") @Min(value = 1, message = "退款金额必须大于 0") private Integer refundPrice; - @Schema(description = "申请原因", required = true, example = "1") + @Schema(description = "申请原因", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotNull(message = "申请原因不能为空") private String applyReason; diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/aftersale/vo/AppTradeAfterSaleDeliveryReqVO.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/aftersale/vo/AppTradeAfterSaleDeliveryReqVO.java index 9266d38d1..625542a57 100644 --- a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/aftersale/vo/AppTradeAfterSaleDeliveryReqVO.java +++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/aftersale/vo/AppTradeAfterSaleDeliveryReqVO.java @@ -11,19 +11,19 @@ import java.time.LocalDateTime; @Data public class AppTradeAfterSaleDeliveryReqVO { - @Schema(description = "售后编号", required = true, example = "1024") + @Schema(description = "售后编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") @NotNull(message = "售后编号不能为空") private Long id; - @Schema(description = "退货物流公司编号", required = true, example = "1") + @Schema(description = "退货物流公司编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotNull(message = "退货物流公司编号不能为空") private Long logisticsId; - @Schema(description = "退货物流单号", required = true, example = "SF123456789") + @Schema(description = "退货物流单号", requiredMode = Schema.RequiredMode.REQUIRED, example = "SF123456789") @NotNull(message = "退货物流单号不能为空") private String logisticsNo; - @Schema(description = "退货时间", required = true) + @Schema(description = "退货时间", requiredMode = Schema.RequiredMode.REQUIRED) @NotEmpty(message = "退货时间不能为空") private LocalDateTime deliveryTime; diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/aftersale/vo/AppTradeAfterSalePageItemRespVO.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/aftersale/vo/AppTradeAfterSalePageItemRespVO.java index 31cb2e231..6a21a9ea1 100644 --- a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/aftersale/vo/AppTradeAfterSalePageItemRespVO.java +++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/aftersale/vo/AppTradeAfterSalePageItemRespVO.java @@ -11,48 +11,48 @@ import java.util.List; @Data public class AppTradeAfterSalePageItemRespVO { - @Schema(description = "售后编号", required = true, example = "1024") + @Schema(description = "售后编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private Long id; - @Schema(description = "售后流水号", required = true, example = "1146347329394184195") + @Schema(description = "售后流水号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1146347329394184195") private String no; - @Schema(description = "售后状态", required = true, example = "1") + @Schema(description = "售后状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Integer status; - @Schema(description = "售后方式", required = true, example = "1") + @Schema(description = "售后方式", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Integer way; - @Schema(description = "售后类型", required = true, example = "1") + @Schema(description = "售后类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Integer type; - @Schema(description = "申请原因", required = true, example = "1") + @Schema(description = "申请原因", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private String applyReason; - @Schema(description = "补充描述", required = true, example = "1") + @Schema(description = "补充描述", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private String applyDescription; - @Schema(description = "补充凭证图片", required = true, example = "1") + @Schema(description = "补充凭证图片", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private List applyPicUrls; // ========== 交易订单相关 ========== - @Schema(description = "交易订单编号", required = true, example = "1") + @Schema(description = "交易订单编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Long orderId; - @Schema(description = "交易订单流水号", required = true, example = "1") + @Schema(description = "交易订单流水号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private String orderNo; - @Schema(description = "交易订单项编号", required = true, example = "1") + @Schema(description = "交易订单项编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Long orderItemId; - @Schema(description = "商品 SPU 编号", required = true, example = "1") + @Schema(description = "商品 SPU 编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Long spuId; - @Schema(description = "商品 SPU 名称", required = true, example = "1") + @Schema(description = "商品 SPU 名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private String spuName; - @Schema(description = "商品 SKU 编号", required = true, example = "1") + @Schema(description = "商品 SKU 编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Long skuId; /** @@ -60,10 +60,10 @@ public class AppTradeAfterSalePageItemRespVO { */ private List properties; - @Schema(description = "商品图片", required = true, example = "https://www.iocoder.cn/01.jpg") + @Schema(description = "商品图片", requiredMode = Schema.RequiredMode.REQUIRED, example = "https://www.iocoder.cn/01.jpg") private String picUrl; - @Schema(description = "退货商品数量", required = true, example = "1") + @Schema(description = "退货商品数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Integer count; // ========== 审批相关 ========== diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/base/property/AppProductPropertyValueDetailRespVO.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/base/property/AppProductPropertyValueDetailRespVO.java index 22dda6a71..750f16bf3 100644 --- a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/base/property/AppProductPropertyValueDetailRespVO.java +++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/base/property/AppProductPropertyValueDetailRespVO.java @@ -7,16 +7,16 @@ import lombok.Data; @Data public class AppProductPropertyValueDetailRespVO { - @Schema(description = "属性的编号", required = true, example = "1") + @Schema(description = "属性的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Long propertyId; - @Schema(description = "属性的名称", required = true, example = "颜色") + @Schema(description = "属性的名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "颜色") private String propertyName; - @Schema(description = "属性值的编号", required = true, example = "1024") + @Schema(description = "属性值的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private Long valueId; - @Schema(description = "属性值的名称", required = true, example = "红色") + @Schema(description = "属性值的名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "红色") private String valueName; } diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/base/sku/AppProductSkuBaseRespVO.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/base/sku/AppProductSkuBaseRespVO.java index bb2c60482..ac0c0ee6b 100644 --- a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/base/sku/AppProductSkuBaseRespVO.java +++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/base/sku/AppProductSkuBaseRespVO.java @@ -14,16 +14,16 @@ import java.util.List; @Data public class AppProductSkuBaseRespVO { - @Schema(description = "主键", required = true, example = "1024") + @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private Long id; @Schema(description = "图片地址", example = "https://www.iocoder.cn/xx.png") private String picUrl; - @Schema(description = "销售价格,单位:分", required = true, example = "100") + @Schema(description = "销售价格,单位:分", requiredMode = Schema.RequiredMode.REQUIRED, example = "100") private Integer price; - @Schema(description = "库存", required = true, example = "1") + @Schema(description = "库存", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Integer stock; /** diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/base/spu/AppProductSpuBaseRespVO.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/base/spu/AppProductSpuBaseRespVO.java index 04359c810..a0e1bc670 100644 --- a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/base/spu/AppProductSpuBaseRespVO.java +++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/base/spu/AppProductSpuBaseRespVO.java @@ -13,10 +13,10 @@ import java.util.List; @Data public class AppProductSpuBaseRespVO { - @Schema(description = "主键", required = true, example = "1024") + @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private Long id; - @Schema(description = "商品 SPU 名字", required = true, example = "芋道") + @Schema(description = "商品 SPU 名字", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道") private String name; @Schema(description = "商品主图地址", example = "https://www.iocoder.cn/xx.png") diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/cart/vo/AppTradeCartAddReqVO.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/cart/vo/AppTradeCartAddReqVO.java index 1018ec9a2..8ea754849 100644 --- a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/cart/vo/AppTradeCartAddReqVO.java +++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/cart/vo/AppTradeCartAddReqVO.java @@ -9,15 +9,15 @@ import javax.validation.constraints.NotNull; @Data public class AppTradeCartAddReqVO { - @Schema(description = "商品 SKU 编号", required = true,example = "1024") + @Schema(description = "商品 SKU 编号", requiredMode = Schema.RequiredMode.REQUIRED,example = "1024") @NotNull(message = "商品 SKU 编号不能为空") private Long skuId; - @Schema(description = "新增商品数量", required = true, example = "1") + @Schema(description = "新增商品数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotNull(message = "数量不能为空") private Integer count; - @Schema(description = "是否添加到购物车", required = true, example = "true") + @Schema(description = "是否添加到购物车", requiredMode = Schema.RequiredMode.REQUIRED, example = "true") @NotNull(message = "是否添加购物车不能为空") private Boolean addStatus; diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/cart/vo/AppTradeCartDetailRespVO.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/cart/vo/AppTradeCartDetailRespVO.java new file mode 100644 index 000000000..cd68edbbc --- /dev/null +++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/cart/vo/AppTradeCartDetailRespVO.java @@ -0,0 +1,117 @@ +package cn.iocoder.yudao.module.trade.controller.app.cart.vo; + +import cn.iocoder.yudao.module.trade.controller.app.base.sku.AppProductSkuBaseRespVO; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.List; + +@Schema(description = "用户 App - 用户的购物车明细 Response VO") +@Data +public class AppTradeCartDetailRespVO { + + /** + * 商品分组数组 + */ + private List itemGroups; + + /** + * 费用 + */ + private Order order; + + @Schema(description = "商品分组") // 多个商品,参加同一个活动,从而形成分组 + @Data + public static class ItemGroup { + + /** + * 商品数组 + */ + private List items; + /** + * 营销活动,订单级别 + */ + private Promotion promotion; + + } + + @Schema(description = "商品 SKU") + @Data + public static class Sku extends AppProductSkuBaseRespVO { + + /** + * SPU 信息 + */ + private AppProductSkuBaseRespVO spu; + + // ========== 购物车相关的字段 ========== + + @Schema(description = "商品数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + private Integer count; + @Schema(description = "是否选中", requiredMode = Schema.RequiredMode.REQUIRED, example = "true") + private Boolean selected; + + // ========== 价格相关的字段,对应 PriceCalculateRespDTO.OrderItem 的属性 ========== + + // TODO 芋艿:后续可以去除一些无用的字段 + + @Schema(description = "商品原价(单)", requiredMode = Schema.RequiredMode.REQUIRED, example = "100") + private Integer originalPrice; + @Schema(description = "商品原价(总)", requiredMode = Schema.RequiredMode.REQUIRED, example = "200") + private Integer totalOriginalPrice; + @Schema(description = "商品级优惠(总)", requiredMode = Schema.RequiredMode.REQUIRED, example = "300") + private Integer totalPromotionPrice; + @Schema(description = "最终购买金额(总)", requiredMode = Schema.RequiredMode.REQUIRED, example = "400") + private Integer totalPresentPrice; + @Schema(description = "最终购买金额(单)", requiredMode = Schema.RequiredMode.REQUIRED, example = "500") + private Integer presentPrice; + @Schema(description = "应付金额(总)", requiredMode = Schema.RequiredMode.REQUIRED, example = "600") + private Integer totalPayPrice; + + // ========== 营销相关的字段 ========== + /** + * 营销活动,商品级别 + */ + private Promotion promotion; + + } + + @Schema(description = "订单") // 对应 PriceCalculateRespDTO.Order 类,用于费用(合计) + @Data + public static class Order { + + // TODO 芋艿:后续可以去除一些无用的字段 + + @Schema(description = "商品原价(总)", requiredMode = Schema.RequiredMode.REQUIRED, example = "100") + private Integer skuOriginalPrice; + @Schema(description = "商品优惠(总)", requiredMode = Schema.RequiredMode.REQUIRED, example = "200") + private Integer skuPromotionPrice; + @Schema(description = "订单优惠(总)", requiredMode = Schema.RequiredMode.REQUIRED, example = "300") + private Integer orderPromotionPrice; + @Schema(description = "运费金额", requiredMode = Schema.RequiredMode.REQUIRED, example = "400") + private Integer deliveryPrice; + @Schema(description = "应付金额(总)", requiredMode = Schema.RequiredMode.REQUIRED, example = "500") + private Integer payPrice; + + } + + @Schema(description = "营销活动") // 对应 PriceCalculateRespDTO.Promotion 类的属性 + @Data + public static class Promotion { + + @Schema(description = "营销编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") // 营销活动的编号、优惠劵的编号 + private Long id; + @Schema(description = "营销名字", requiredMode = Schema.RequiredMode.REQUIRED, example = "xx 活动") + private String name; + @Schema(description = "营销类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + private Integer type; + + // ========== 匹配情况 ========== + @Schema(description = "是否满足优惠条件", requiredMode = Schema.RequiredMode.REQUIRED, example = "true") + private Boolean meet; + @Schema(description = "满足条件的提示", requiredMode = Schema.RequiredMode.REQUIRED, example = "圣诞价:省 150.00 元") + private String meetTip; + + } + +} diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/cart/vo/AppTradeCartItemUpdateSelectedReqVO.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/cart/vo/AppTradeCartItemUpdateSelectedReqVO.java new file mode 100644 index 000000000..adf213b93 --- /dev/null +++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/cart/vo/AppTradeCartItemUpdateSelectedReqVO.java @@ -0,0 +1,21 @@ +package cn.iocoder.yudao.module.trade.controller.app.cart.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import javax.validation.constraints.NotNull; +import java.util.Collection; + +@Schema(description = "用户 App - 购物车更新是否选中 Request VO") +@Data +public class AppTradeCartItemUpdateSelectedReqVO { + + @Schema(description = "商品 SKU 编号列表", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024,2048") + @NotNull(message = "商品 SKU 编号列表不能为空") + private Collection skuIds; + + @Schema(description = "是否选中", requiredMode = Schema.RequiredMode.REQUIRED, example = "true") + @NotNull(message = "是否选中不能为空") + private Boolean selected; + +} diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/cart/vo/AppTradeCartListRespVO.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/cart/vo/AppTradeCartListRespVO.java index 5f33ece55..3f6dfe104 100644 --- a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/cart/vo/AppTradeCartListRespVO.java +++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/cart/vo/AppTradeCartListRespVO.java @@ -25,10 +25,10 @@ public class AppTradeCartListRespVO { @Data public static class Cart { - @Schema(description = "购物项的编号", required = true, example = "1024") + @Schema(description = "购物项的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private Long id; - @Schema(description = "商品数量", required = true, example = "1") + @Schema(description = "商品数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Integer count; /** diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/cart/vo/AppTradeCartResetReqVO.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/cart/vo/AppTradeCartResetReqVO.java index eb8a81c80..81c7b0bf3 100644 --- a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/cart/vo/AppTradeCartResetReqVO.java +++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/cart/vo/AppTradeCartResetReqVO.java @@ -10,15 +10,15 @@ import javax.validation.constraints.NotNull; @Data public class AppTradeCartResetReqVO { - @Schema(description = "编号", required = true, example = "1024") + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") @NotNull(message = "编号不能为空") private Long id; - @Schema(description = "商品 SKU 编号", required = true,example = "1024") + @Schema(description = "商品 SKU 编号", requiredMode = Schema.RequiredMode.REQUIRED,example = "1024") @NotNull(message = "商品 SKU 编号不能为空") private Long skuId; - @Schema(description = "商品数量", required = true, example = "1") + @Schema(description = "商品数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotNull(message = "数量不能为空") @Min(message = "数量必须大于 0", value = 1L) private Integer count; diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/cart/vo/AppTradeCartUpdateReqVO.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/cart/vo/AppTradeCartUpdateReqVO.java index 4cf72bbf1..d0d2fff02 100644 --- a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/cart/vo/AppTradeCartUpdateReqVO.java +++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/cart/vo/AppTradeCartUpdateReqVO.java @@ -10,11 +10,11 @@ import javax.validation.constraints.NotNull; @Data public class AppTradeCartUpdateReqVO { - @Schema(description = "编号", required = true, example = "1024") + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") @NotNull(message = "编号不能为空") private Long id; - @Schema(description = "商品数量", required = true, example = "1") + @Schema(description = "商品数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotNull(message = "数量不能为空") @Min(message = "数量必须大于 0", value = 1L) private Integer count; diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/order/AppTradeOrderController.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/order/AppTradeOrderController.java index e3008fdd6..2d97c990d 100644 --- a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/order/AppTradeOrderController.java +++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/order/AppTradeOrderController.java @@ -4,9 +4,12 @@ import cn.iocoder.yudao.framework.common.pojo.CommonResult; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.security.core.annotations.PreAuthenticated; import cn.iocoder.yudao.module.pay.api.notify.dto.PayOrderNotifyReqDTO; +import cn.iocoder.yudao.module.product.api.comment.ProductCommentApi; +import cn.iocoder.yudao.module.product.api.comment.dto.ProductCommentCreateReqDTO; import cn.iocoder.yudao.module.product.api.property.ProductPropertyValueApi; import cn.iocoder.yudao.module.product.api.property.dto.ProductPropertyValueDetailRespDTO; import cn.iocoder.yudao.module.trade.controller.app.order.vo.*; +import cn.iocoder.yudao.module.trade.controller.app.order.vo.item.AppTradeOrderItemCommentCreateReqVO; import cn.iocoder.yudao.module.trade.controller.app.order.vo.item.AppTradeOrderItemRespVO; import cn.iocoder.yudao.module.trade.convert.order.TradeOrderConvert; import cn.iocoder.yudao.module.trade.dal.dataobject.order.TradeOrderDO; @@ -14,6 +17,7 @@ import cn.iocoder.yudao.module.trade.dal.dataobject.order.TradeOrderItemDO; import cn.iocoder.yudao.module.trade.enums.order.TradeOrderStatusEnum; import cn.iocoder.yudao.module.trade.framework.order.config.TradeOrderProperties; import cn.iocoder.yudao.module.trade.service.order.TradeOrderService; +import com.google.common.collect.Maps; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; @@ -23,14 +27,16 @@ import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.validation.Valid; -import java.util.HashMap; import java.util.List; import java.util.Map; +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet; import static cn.iocoder.yudao.framework.common.util.servlet.ServletUtils.getClientIP; import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId; +import static cn.iocoder.yudao.module.trade.enums.ErrorCodeConstants.ORDER_ITEM_NOT_FOUND; +import static cn.iocoder.yudao.module.trade.enums.ErrorCodeConstants.ORDER_NOT_FOUND; @Tag(name = "用户 App - 交易订单") @RestController @@ -44,6 +50,8 @@ public class AppTradeOrderController { @Resource private ProductPropertyValueApi productPropertyValueApi; + @Resource + private ProductCommentApi productCommentApi; @Resource private TradeOrderProperties tradeOrderProperties; @@ -64,7 +72,7 @@ public class AppTradeOrderController { } @PostMapping("/update-paid") - @Operation(description = "更新订单为已支付") // 由 pay-module 支付服务,进行回调,可见 PayNotifyJob + @Operation(summary = "更新订单为已支付") // 由 pay-module 支付服务,进行回调,可见 PayNotifyJob public CommonResult updateOrderPaid(@RequestBody PayOrderNotifyReqDTO notifyReqDTO) { tradeOrderService.updateOrderPaid(Long.valueOf(notifyReqDTO.getMerchantOrderId()), notifyReqDTO.getPayOrderId()); @@ -105,7 +113,7 @@ public class AppTradeOrderController { @GetMapping("/get-count") @Operation(summary = "获得交易订单数量") public CommonResult> getOrderCount() { - Map orderCount = new HashMap<>(); + Map orderCount = Maps.newLinkedHashMapWithExpectedSize(5); // 全部 orderCount.put("allCount", tradeOrderService.getOrderCount(getLoginUserId(), null, null)); // 待付款(未支付) @@ -129,11 +137,25 @@ public class AppTradeOrderController { return success(TradeOrderConvert.INSTANCE.convert03(item)); } - // TODO 芋艿:待实现 @PostMapping("/item/create-comment") @Operation(summary = "创建交易订单项的评价") - public CommonResult createOrderItemComment() { - return success(0L); + public CommonResult createOrderItemComment(@RequestBody AppTradeOrderItemCommentCreateReqVO createReqVO) { + // TODO @puhui999:这个逻辑,最好写到 service 哈; + Long loginUserId = getLoginUserId(); + // 先通过订单项 ID 查询订单项是否存在 + TradeOrderItemDO orderItemDO = tradeOrderService.getOrderItemByIdAndUserId(createReqVO.getOrderItemId(), loginUserId); + if (orderItemDO == null) { + throw exception(ORDER_ITEM_NOT_FOUND); + } + // 校验订单 + TradeOrderDO orderDO = tradeOrderService.getOrderByIdAndUserId(orderItemDO.getOrderId(), loginUserId); + if (orderDO == null) { + throw exception(ORDER_NOT_FOUND); + } + // TODO @puhui999:要校验订单已完成,但是未评价; + + ProductCommentCreateReqDTO productCommentCreateReqDTO = TradeOrderConvert.INSTANCE.convert04(createReqVO, orderItemDO); + return success(productCommentApi.createComment(productCommentCreateReqDTO)); } } diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/order/vo/AppTradeOrderDetailRespVO.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/order/vo/AppTradeOrderDetailRespVO.java index 647ea2638..5a6feb07c 100644 --- a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/order/vo/AppTradeOrderDetailRespVO.java +++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/order/vo/AppTradeOrderDetailRespVO.java @@ -14,22 +14,22 @@ public class AppTradeOrderDetailRespVO { // ========== 订单基本信息 ========== - @Schema(description = "订单编号", required = true, example = "1024") + @Schema(description = "订单编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private Long id; - @Schema(description = "订单流水号", required = true, example = "1146347329394184195") + @Schema(description = "订单流水号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1146347329394184195") private String no; - @Schema(description = "下单时间", required = true) + @Schema(description = "下单时间", requiredMode = Schema.RequiredMode.REQUIRED) private Date createTime; - @Schema(description = "用户备注", required = true, example = "你猜") + @Schema(description = "用户备注", requiredMode = Schema.RequiredMode.REQUIRED, example = "你猜") private String userRemark; - @Schema(description = "订单状态", required = true, example = "1") + @Schema(description = "订单状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Integer status; - @Schema(description = "购买的商品数量", required = true, example = "10") + @Schema(description = "购买的商品数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "10") private Integer productCount; @Schema(description = "订单完成时间") @@ -38,44 +38,44 @@ public class AppTradeOrderDetailRespVO { @Schema(description = "订单取消时间") private LocalDateTime cancelTime; - @Schema(description = "是否评价", required = true, example = "true") + @Schema(description = "是否评价", requiredMode = Schema.RequiredMode.REQUIRED, example = "true") private Boolean commentStatus; // ========== 价格 + 支付基本信息 ========== - @Schema(description = "是否已支付", required = true, example = "true") + @Schema(description = "是否已支付", requiredMode = Schema.RequiredMode.REQUIRED, example = "true") private Boolean payed; - @Schema(description = "支付订单编号", required = true, example = "1024") + @Schema(description = "支付订单编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private Long payOrderId; @Schema(description = "付款时间") private LocalDateTime payTime; - @Schema(description = "付款超时时间", required = true) + @Schema(description = "付款超时时间", requiredMode = Schema.RequiredMode.REQUIRED) private LocalDateTime payExpireTime; - @Schema(description = "支付渠道", required = true, example = "wx_lite_pay") + @Schema(description = "支付渠道", requiredMode = Schema.RequiredMode.REQUIRED, example = "wx_lite_pay") private String payChannelCode; - @Schema(description = "商品原价(总)", required = true, example = "1000") + @Schema(description = "商品原价(总)", requiredMode = Schema.RequiredMode.REQUIRED, example = "1000") private Integer totalPrice; - @Schema(description = "订单优惠(总)", required = true, example = "100") + @Schema(description = "订单优惠(总)", requiredMode = Schema.RequiredMode.REQUIRED, example = "100") private Integer discountPrice; - @Schema(description = "运费金额", required = true, example = "100") + @Schema(description = "运费金额", requiredMode = Schema.RequiredMode.REQUIRED, example = "100") private Integer deliveryPrice; - @Schema(description = "订单调价(总)", required = true, example = "100") + @Schema(description = "订单调价(总)", requiredMode = Schema.RequiredMode.REQUIRED, example = "100") private Integer adjustPrice; - @Schema(description = "应付金额(总)", required = true, example = "1000") + @Schema(description = "应付金额(总)", requiredMode = Schema.RequiredMode.REQUIRED, example = "1000") private Integer payPrice; // ========== 收件 + 物流基本信息 ========== - @Schema(description = "配送方式", required = true, example = "1") + @Schema(description = "配送方式", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Integer deliveryType; @Schema(description = "发货物流单号", example = "1024") @@ -87,19 +87,19 @@ public class AppTradeOrderDetailRespVO { @Schema(description = "收货时间") private LocalDateTime receiveTime; - @Schema(description = "收件人名称", required = true, example = "张三") + @Schema(description = "收件人名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三") private String receiverName; - @Schema(description = "收件人手机", required = true, example = "13800138000") + @Schema(description = "收件人手机", requiredMode = Schema.RequiredMode.REQUIRED, example = "13800138000") private String receiverMobile; - @Schema(description = "收件人地区编号", required = true, example = "110000") + @Schema(description = "收件人地区编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "110000") private Integer receiverAreaId; - @Schema(description = "收件人地区名字", required = true, example = "上海 上海市 普陀区") + @Schema(description = "收件人地区名字", requiredMode = Schema.RequiredMode.REQUIRED, example = "上海 上海市 普陀区") private String receiverAreaName; - @Schema(description = "收件人详细地址", required = true, example = "中关村大街 1 号") + @Schema(description = "收件人详细地址", requiredMode = Schema.RequiredMode.REQUIRED, example = "中关村大街 1 号") private String receiverDetailAddress; // ========== 售后基本信息 ========== @@ -109,10 +109,10 @@ public class AppTradeOrderDetailRespVO { @Schema(description = "优惠劵编号", example = "1024") private Long couponId; - @Schema(description = "优惠劵减免金额", required = true, example = "100") + @Schema(description = "优惠劵减免金额", requiredMode = Schema.RequiredMode.REQUIRED, example = "100") private Integer couponPrice; - @Schema(description = "积分抵扣的金额", required = true, example = "100") + @Schema(description = "积分抵扣的金额", requiredMode = Schema.RequiredMode.REQUIRED, example = "100") private Integer pointPrice; /** diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/order/vo/AppTradeOrderGetCreateInfoRespVO.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/order/vo/AppTradeOrderGetCreateInfoRespVO.java new file mode 100644 index 000000000..d7df6863a --- /dev/null +++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/order/vo/AppTradeOrderGetCreateInfoRespVO.java @@ -0,0 +1,168 @@ +package cn.iocoder.yudao.module.trade.controller.app.order.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Data; + +import java.util.List; + +@Schema(description = "用户 App - 订单获得创建信息 Response VO") +@Data +public class AppTradeOrderGetCreateInfoRespVO { + + /** + * 商品分组数组 + */ + private List itemGroups; + /** + * 费用 + */ + private Fee fee; + +// /** +// * 优惠劵列表 TODO 芋艿,后续改改 +// */ +// private List coupons; + + @Schema(description = "商品分组") // 多个商品,参加同一个活动,从而形成分组 + @Data + public static class ItemGroup { + +// /** +// * 优惠活动 +// */ +// private PromotionActivityRespDTO activity; // TODO 芋艿,偷懒 + /** + * 商品 SKU 数组 + */ + private List items; + + } + + @Schema(description = "商品 SKU") + @Data + public static class Sku { + + // SKU 自带信息 + @Schema(description = "SKU 编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + private Integer id; + /** + * SPU 信息 + */ + private Spu spu; + /** + * 图片地址 + */ + private String picURL; +// /** +// * 属性数组 +// */ +// private List attrs; // TODO 后面改下 + /** + * 价格,单位:分 + */ + private Integer price; + /** + * 库存数量 + */ + private Integer stock; + + // 非 SKU 自带信息 + + /** + * 购买数量 + */ + private Integer buyQuantity; +// /** +// * 优惠活动 +// */ +// private PromotionActivityRespDTO activity; // TODO 芋艿,偷懒 + /** + * 原始单价,单位:分。 + */ + private Integer originPrice; + /** + * 购买单价,单位:分 + */ + private Integer buyPrice; + /** + * 最终价格,单位:分。 + */ + private Integer presentPrice; + /** + * 购买总金额,单位:分 + * + * 用途类似 {@link #presentTotal} + */ + private Integer buyTotal; + /** + * 优惠总金额,单位:分。 + */ + private Integer discountTotal; + /** + * 最终总金额,单位:分。 + * + * 注意,presentPrice * quantity 不一定等于 presentTotal 。 + * 因为,存在无法整除的情况。 + * 举个例子,presentPrice = 8.33 ,quantity = 3 的情况,presentTotal 有可能是 24.99 ,也可能是 25 。 + * 所以,需要存储一个该字段。 + */ + private Integer presentTotal; + + } + + @Data + public static class Spu { + + /** + * SPU 编号 + */ + private Integer id; + + // ========== 基本信息 ========= + /** + * SPU 名字 + */ + private String name; + /** + * 分类编号 + */ + private Integer cid; + /** + * 商品主图地址 + * + * 数组,以逗号分隔 + * + * 建议尺寸:800*800像素,你可以拖拽图片调整顺序,最多上传15张 + */ + private List picUrls; + + } + + @Schema(description = "费用(合计)") + @Data + @AllArgsConstructor + public static class Fee { + + @Schema(description = "购买总价", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + private Integer buyPrice; + /** + * 优惠总价 + * + * 注意,满多少元包邮,不算在优惠中。 + */ + private Integer discountTotal; + /** + * 邮费 + */ + private Integer postageTotal; + /** + * 最终价格 + * + * 计算公式 = 总价 - 优惠总价 + 邮费 + */ + private Integer presentTotal; + + } + +} diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/order/vo/AppTradeOrderPageItemRespVO.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/order/vo/AppTradeOrderPageItemRespVO.java index 969dcbb6d..f0f0b2c3c 100644 --- a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/order/vo/AppTradeOrderPageItemRespVO.java +++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/order/vo/AppTradeOrderPageItemRespVO.java @@ -11,35 +11,35 @@ import java.util.List; @Data public class AppTradeOrderPageItemRespVO { - @Schema(description = "订单编号", required = true, example = "1024") + @Schema(description = "订单编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private Long id; - @Schema(description = "订单流水号", required = true, example = "1146347329394184195") + @Schema(description = "订单流水号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1146347329394184195") private String no; - @Schema(description = "订单类型", required = true, example = "0") + @Schema(description = "订单类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "0") private Integer type; - @Schema(description = "订单状态", required = true, example = "1") + @Schema(description = "订单状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Integer status; - @Schema(description = "购买的商品数量", required = true, example = "10") + @Schema(description = "购买的商品数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "10") private Integer productCount; - @Schema(description = "是否评价", required = true, example = "true") + @Schema(description = "是否评价", requiredMode = Schema.RequiredMode.REQUIRED, example = "true") private Boolean commentStatus; - @Schema(description = "创建时间", required = true) + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) private Date createTime; // ========== 价格 + 支付基本信息 ========== - @Schema(description = "应付金额,单位:分", required = true, example = "1000") + @Schema(description = "应付金额,单位:分", requiredMode = Schema.RequiredMode.REQUIRED, example = "1000") private Integer payPrice; // ========== 收件 + 物流基本信息 ========== - @Schema(description = "配送方式", required = true, example = "1") + @Schema(description = "配送方式", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Integer deliveryType; /** diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/order/vo/AppTradeOrderSettlementReqVO.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/order/vo/AppTradeOrderSettlementReqVO.java index 0324b492b..c0acfce04 100644 --- a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/order/vo/AppTradeOrderSettlementReqVO.java +++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/order/vo/AppTradeOrderSettlementReqVO.java @@ -18,9 +18,10 @@ public class AppTradeOrderSettlementReqVO { @NotNull(message = "交易类型不能为空") @InEnum(value = TradeOrderTypeEnum.class, message = "交易类型必须是 {value}") + @Deprecated // TODO 芋艿:后续干掉这个字段,对于前端不需要关注这个 private Integer type; - @Schema(description = "商品项数组", required = true) + @Schema(description = "商品项数组", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "商品不能为空") private List items; @@ -30,6 +31,17 @@ public class AppTradeOrderSettlementReqVO { @Schema(description = "优惠劵编号", example = "1024") private Long couponId; + // ========== 秒杀活动相关字段 ========== + @Schema(description = "秒杀活动编号", example = "1024") + private Long seckillActivityId; + + // ========== 拼团活动相关字段 ========== + @Schema(description = "拼团活动编号", example = "1024") + private Long combinationActivityId; + + @Schema(description = "拼团团长编号", example = "2048") + private Long combinationHeadId; + @Data @Schema(description = "用户 App - 商品项") @Valid diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/order/vo/AppTradeOrderSettlementRespVO.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/order/vo/AppTradeOrderSettlementRespVO.java index aaa059ef1..5c3854035 100644 --- a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/order/vo/AppTradeOrderSettlementRespVO.java +++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/order/vo/AppTradeOrderSettlementRespVO.java @@ -12,13 +12,13 @@ import java.util.List; @Data public class AppTradeOrderSettlementRespVO { - @Schema(description = "购物项数组", required = true) + @Schema(description = "购物项数组", requiredMode = Schema.RequiredMode.REQUIRED) private List items; - @Schema(description = "费用", required = true) + @Schema(description = "费用", requiredMode = Schema.RequiredMode.REQUIRED) private Price price; - @Schema(description = "收件地址", required = true) + @Schema(description = "收件地址", requiredMode = Schema.RequiredMode.REQUIRED) private Address address; @Schema(description = "购物项") @@ -27,29 +27,29 @@ public class AppTradeOrderSettlementRespVO { // ========== SPU 信息 ========== - @Schema(description = "SPU 编号", required = true, example = "2048") + @Schema(description = "SPU 编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "2048") private Long spuId; - @Schema(description = "SPU 名字", required = true, example = "Apple iPhone 12") + @Schema(description = "SPU 名字", requiredMode = Schema.RequiredMode.REQUIRED, example = "Apple iPhone 12") private String spuName; // ========== SKU 信息 ========== - @Schema(description = "SKU 编号", required = true, example = "1024") + @Schema(description = "SKU 编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private Integer skuId; - @Schema(description = "价格,单位:分", required = true, example = "100") + @Schema(description = "价格,单位:分", requiredMode = Schema.RequiredMode.REQUIRED, example = "100") private Integer price; - @Schema(description = "图片地址", required = true, example = "https://www.iocoder.cn/1.png") + @Schema(description = "图片地址", requiredMode = Schema.RequiredMode.REQUIRED, example = "https://www.iocoder.cn/1.png") private String picUrl; - @Schema(description = "属性数组", required = true, example = "100") + @Schema(description = "属性数组", requiredMode = Schema.RequiredMode.REQUIRED, example = "100") private List properties; // ========== 购物车信息 ========== - @Schema(description = "购物车编号", required = true, example = "100") + @Schema(description = "购物车编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "100") private Long cartId; - @Schema(description = "购买数量", required = true, example = "1") + @Schema(description = "购买数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Integer count; } @@ -60,19 +60,19 @@ public class AppTradeOrderSettlementRespVO { @AllArgsConstructor public static class Price { - @Schema(description = "商品原价(总),单位:分", required = true, example = "500") + @Schema(description = "商品原价(总),单位:分", requiredMode = Schema.RequiredMode.REQUIRED, example = "500") private Integer totalPrice; - @Schema(description = "运费金额,单位:分", required = true, example = "50") + @Schema(description = "运费金额,单位:分", requiredMode = Schema.RequiredMode.REQUIRED, example = "50") private Integer deliveryPrice; - @Schema(description = "优惠劵减免金额,单位:分", required = true, example = "100") + @Schema(description = "优惠劵减免金额,单位:分", requiredMode = Schema.RequiredMode.REQUIRED, example = "100") private Integer couponPrice; - @Schema(description = "积分抵扣的金额,单位:分", required = true, example = "50") + @Schema(description = "积分抵扣的金额,单位:分", requiredMode = Schema.RequiredMode.REQUIRED, example = "50") private Integer pointPrice; - @Schema(description = "实际支付金额(总),单位:分", required = true, example = "450") + @Schema(description = "实际支付金额(总),单位:分", requiredMode = Schema.RequiredMode.REQUIRED, example = "450") private Integer payPrice; } @@ -81,34 +81,34 @@ public class AppTradeOrderSettlementRespVO { @Data public static class Address { - @Schema(description = "编号", required = true, example = "1") + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Long id; - @Schema(description = "收件人名称", required = true, example = "小王") + @Schema(description = "收件人名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "小王") private String name; - @Schema(description = "手机号", required = true, example = "15601691300") + @Schema(description = "手机号", requiredMode = Schema.RequiredMode.REQUIRED, example = "15601691300") private String mobile; - @Schema(description = "省份编号", required = true, example = "1") + @Schema(description = "省份编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Integer provinceId; - @Schema(description = "省份名字", required = true, example = "北京") + @Schema(description = "省份名字", requiredMode = Schema.RequiredMode.REQUIRED, example = "北京") private String provinceName; - @Schema(description = "城市编号", required = true, example = "1") + @Schema(description = "城市编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Integer cityId; - @Schema(description = "城市名字", required = true, example = "北京") + @Schema(description = "城市名字", requiredMode = Schema.RequiredMode.REQUIRED, example = "北京") private String cityName; - @Schema(description = "地区编号", required = true, example = "1") + @Schema(description = "地区编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Integer districtId; - @Schema(description = "地区名字", required = true, example = "朝阳区") + @Schema(description = "地区名字", requiredMode = Schema.RequiredMode.REQUIRED, example = "朝阳区") private String districtName; - @Schema(description = "详细地址", required = true, example = "望京悠乐汇 A 座") + @Schema(description = "详细地址", requiredMode = Schema.RequiredMode.REQUIRED, example = "望京悠乐汇 A 座") private String detailAddress; - @Schema(description = "是否默认收件地址", required = true, example = "true") + @Schema(description = "是否默认收件地址", requiredMode = Schema.RequiredMode.REQUIRED, example = "true") private Boolean defaulted; } diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/order/vo/item/AppTradeOrderItemCommentCreateReqVO.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/order/vo/item/AppTradeOrderItemCommentCreateReqVO.java new file mode 100644 index 000000000..349b071d5 --- /dev/null +++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/order/vo/item/AppTradeOrderItemCommentCreateReqVO.java @@ -0,0 +1,44 @@ +package cn.iocoder.yudao.module.trade.controller.app.order.vo.item; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import javax.validation.constraints.NotNull; +import javax.validation.constraints.Size; +import java.util.List; + +@Schema(description = "用户 App - 商品评价创建 Request VO") +@Data +public class AppTradeOrderItemCommentCreateReqVO { + + @Schema(description = "是否匿名", requiredMode = Schema.RequiredMode.REQUIRED, example = "true") + @NotNull(message = "是否匿名不能为空") + private Boolean anonymous; + + @Schema(description = "交易订单项编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "2312312") + @NotNull(message = "交易订单项编号不能为空") + private Long orderItemId; + + // TODO @puhui999:貌似不用这个字段哈; + @Schema(description = "评分星级 1-5 分", requiredMode = Schema.RequiredMode.REQUIRED, example = "5") + @NotNull(message = "评分星级 1-5 分不能为空") + private Integer scores; + + @Schema(description = "描述星级 1-5 分", requiredMode = Schema.RequiredMode.REQUIRED, example = "5") + @NotNull(message = "描述星级 1-5 分不能为空") + private Integer descriptionScores; + + @Schema(description = "服务星级 1-5 分", requiredMode = Schema.RequiredMode.REQUIRED, example = "5") + @NotNull(message = "服务星级 1-5 分不能为空") + private Integer benefitScores; + + @Schema(description = "评论内容", requiredMode = Schema.RequiredMode.REQUIRED, example = "穿身上很漂亮诶(*^▽^*)") + @NotNull(message = "评论内容不能为空") + private String content; + + @Schema(description = "评论图片地址数组,以逗号分隔最多上传 9 张", requiredMode = Schema.RequiredMode.REQUIRED, example = "[https://www.iocoder.cn/xx.png]") + @Size(max = 9, message = "评论图片地址数组长度不能超过 9 张") + private List picUrls; + + +} diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/order/vo/item/AppTradeOrderItemRespVO.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/order/vo/item/AppTradeOrderItemRespVO.java index cc673a407..872d47468 100644 --- a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/order/vo/item/AppTradeOrderItemRespVO.java +++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/order/vo/item/AppTradeOrderItemRespVO.java @@ -10,15 +10,15 @@ import java.util.List; @Data public class AppTradeOrderItemRespVO { - @Schema(description = "编号", required = true, example = "1") + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Long id; - @Schema(description = "商品 SPU 编号", required = true, example = "1") + @Schema(description = "商品 SPU 编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Long spuId; - @Schema(description = "商品 SPU 名称", required = true, example = "芋道源码") + @Schema(description = "商品 SPU 名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道源码") private String spuName; - @Schema(description = "商品 SKU 编号", required = true, example = "1") + @Schema(description = "商品 SKU 编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Long skuId; /** @@ -26,18 +26,18 @@ public class AppTradeOrderItemRespVO { */ private List properties; - @Schema(description = "商品图片", required = true, example = "https://www.iocoder.cn/1.png") + @Schema(description = "商品图片", requiredMode = Schema.RequiredMode.REQUIRED, example = "https://www.iocoder.cn/1.png") private String picUrl; - @Schema(description = "购买数量", required = true, example = "1") + @Schema(description = "购买数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Integer count; - @Schema(description = "是否评价", required = true, example = "true") + @Schema(description = "是否评价", requiredMode = Schema.RequiredMode.REQUIRED, example = "true") private Boolean commentStatus; // ========== 价格 + 支付基本信息 ========== - @Schema(description = "商品原价(单)", required = true, example = "100") + @Schema(description = "商品原价(单)", requiredMode = Schema.RequiredMode.REQUIRED, example = "100") private Integer price; // ========== 营销基本信息 ========== @@ -46,7 +46,7 @@ public class AppTradeOrderItemRespVO { // ========== 售后基本信息 ========== - @Schema(description = "售后状态", required = true, example = "1") + @Schema(description = "售后状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Integer afterSaleStatus; } diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/convert/delivery/DeliveryExpressTemplateConvert.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/convert/delivery/DeliveryExpressTemplateConvert.java index 6ac562658..665dc787d 100644 --- a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/convert/delivery/DeliveryExpressTemplateConvert.java +++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/convert/delivery/DeliveryExpressTemplateConvert.java @@ -6,12 +6,16 @@ import cn.iocoder.yudao.module.trade.controller.admin.delivery.vo.expresstemplat import cn.iocoder.yudao.module.trade.dal.dataobject.delivery.DeliveryExpressTemplateChargeDO; import cn.iocoder.yudao.module.trade.dal.dataobject.delivery.DeliveryExpressTemplateDO; import cn.iocoder.yudao.module.trade.dal.dataobject.delivery.DeliveryExpressTemplateFreeDO; -import cn.iocoder.yudao.module.trade.service.delivery.bo.DeliveryExpressTemplateChargeBO; -import cn.iocoder.yudao.module.trade.service.delivery.bo.DeliveryExpressTemplateFreeBO; +import cn.iocoder.yudao.module.trade.service.delivery.bo.DeliveryExpressTemplateRespBO; +import com.google.common.collect.Maps; import org.mapstruct.Mapper; import org.mapstruct.factory.Mappers; import java.util.List; +import java.util.Map; + +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertMultiMap; +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.findFirst; @Mapper public interface DeliveryExpressTemplateConvert { @@ -49,7 +53,7 @@ public interface DeliveryExpressTemplateConvert { DeliveryExpressTemplateChargeDO convertTemplateCharge(DeliveryExpressTemplateUpdateReqVO.ExpressTemplateChargeUpdateVO vo); - DeliveryExpressTemplateChargeBO convertTemplateCharge(DeliveryExpressTemplateChargeDO bean); + DeliveryExpressTemplateRespBO.Charge convertTemplateCharge(DeliveryExpressTemplateChargeDO bean); default List convertTemplateChargeList(Long templateId, Integer chargeMode, List list) { return CollectionUtils.convertList(list, vo -> convertTemplateCharge(templateId, chargeMode, vo)); @@ -61,7 +65,7 @@ public interface DeliveryExpressTemplateConvert { DeliveryExpressTemplateFreeDO convertTemplateFree(DeliveryExpressTemplateUpdateReqVO.ExpressTemplateFreeUpdateVO vo); - DeliveryExpressTemplateFreeBO convertTemplateFree(DeliveryExpressTemplateFreeDO bean); + DeliveryExpressTemplateRespBO.Free convertTemplateFree(DeliveryExpressTemplateFreeDO bean); List convertTemplateChargeList(List list); @@ -71,4 +75,22 @@ public interface DeliveryExpressTemplateConvert { return CollectionUtils.convertList(list, vo -> convertTemplateFree(templateId, vo)); } + default Map convertMap(Integer areaId, List templateList, + List chargeList, + List freeList) { + Map> templateIdChargeMap = convertMultiMap(chargeList, + DeliveryExpressTemplateChargeDO::getTemplateId); + Map> templateIdFreeMap = convertMultiMap(freeList, + DeliveryExpressTemplateFreeDO::getTemplateId); + // 组合运费模板配置 RespBO + Map result = Maps.newHashMapWithExpectedSize(templateList.size()); + templateList.forEach(template -> { + DeliveryExpressTemplateRespBO bo = new DeliveryExpressTemplateRespBO() + .setChargeMode(template.getChargeMode()) + .setCharge(convertTemplateCharge(findFirst(templateIdChargeMap.get(template.getId()), charge -> charge.getAreaIds().contains(areaId)))) + .setFree(convertTemplateFree(findFirst(templateIdFreeMap.get(template.getId()), free -> free.getAreaIds().contains(areaId)))); + result.put(template.getId(), bo); + }); + return result; + } } diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/convert/order/TradeOrderConvert.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/convert/order/TradeOrderConvert.java index 8c5501b53..f4c0d3736 100644 --- a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/convert/order/TradeOrderConvert.java +++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/convert/order/TradeOrderConvert.java @@ -8,6 +8,7 @@ import cn.iocoder.yudao.framework.ip.core.utils.AreaUtils; import cn.iocoder.yudao.module.member.api.address.dto.AddressRespDTO; import cn.iocoder.yudao.module.member.api.user.dto.MemberUserRespDTO; import cn.iocoder.yudao.module.pay.api.order.dto.PayOrderCreateReqDTO; +import cn.iocoder.yudao.module.product.api.comment.dto.ProductCommentCreateReqDTO; import cn.iocoder.yudao.module.product.api.property.dto.ProductPropertyValueDetailRespDTO; import cn.iocoder.yudao.module.product.api.sku.dto.ProductSkuUpdateStockReqDTO; import cn.iocoder.yudao.module.promotion.api.price.dto.PriceCalculateReqDTO; @@ -18,6 +19,7 @@ import cn.iocoder.yudao.module.trade.controller.admin.order.vo.TradeOrderDetailR import cn.iocoder.yudao.module.trade.controller.admin.order.vo.TradeOrderPageItemRespVO; import cn.iocoder.yudao.module.trade.controller.app.base.property.AppProductPropertyValueDetailRespVO; import cn.iocoder.yudao.module.trade.controller.app.order.vo.*; +import cn.iocoder.yudao.module.trade.controller.app.order.vo.item.AppTradeOrderItemCommentCreateReqVO; import cn.iocoder.yudao.module.trade.controller.app.order.vo.item.AppTradeOrderItemRespVO; import cn.iocoder.yudao.module.trade.dal.dataobject.cart.TradeCartDO; import cn.iocoder.yudao.module.trade.dal.dataobject.order.TradeOrderDO; @@ -75,9 +77,10 @@ public interface TradeOrderConvert { return orderItem; }); } + TradeOrderItemDO convert(TradePriceCalculateRespBO.OrderItem item); - @Mapping(source = "userId" , target = "userId") + @Mapping(source = "userId", target = "userId") PriceCalculateReqDTO convert(AppTradeOrderCreateReqVO createReqVO, Long userId); @Mappings({ @@ -85,6 +88,7 @@ public interface TradeOrderConvert { @Mapping(source = "count", target = "incrCount"), }) ProductSkuUpdateStockReqDTO.Item convert(TradeOrderItemDO bean); + List convertList(List list); default PayOrderCreateReqDTO convert(TradeOrderDO order, List orderItems, @@ -116,7 +120,8 @@ public interface TradeOrderConvert { // TODO 芋艿:可简化 default PageResult convertPage(PageResult pageResult, List orderItems, - List propertyValueDetails) { + List propertyValueDetails, + Map memberUserRespDTOMap) { Map> orderItemMap = convertMultiMap(orderItems, TradeOrderItemDO::getOrderId); Map propertyValueDetailMap = convertMap(propertyValueDetails, ProductPropertyValueDetailRespDTO::getValueId); // 转化 List @@ -136,7 +141,7 @@ public interface TradeOrderConvert { properties.forEach(property -> { ProductPropertyValueDetailRespDTO propertyValueDetail = propertyValueDetailMap.get(property.getValueId()); if (propertyValueDetail == null) { - return; + return; } item.getProperties().add(convert(propertyValueDetail)); }); @@ -144,11 +149,15 @@ public interface TradeOrderConvert { } // 处理收货地址 orderVO.setReceiverAreaName(AreaUtils.format(order.getReceiverAreaId())); + // 增加用户昵称 + orderVO.setUser(memberUserRespDTOMap.get(orderVO.getUserId())); return orderVO; }); return new PageResult<>(orderVOs, pageResult.getTotal()); } + TradeOrderPageItemRespVO convert(TradeOrderDO order, List items); + ProductPropertyValueDetailRespVO convert(ProductPropertyValueDetailRespDTO bean); // TODO 芋艿:可简化 @@ -179,7 +188,9 @@ public interface TradeOrderConvert { orderVO.setUser(convert(user)); return orderVO; } + TradeOrderDetailRespVO convert2(TradeOrderDO order, List items); + MemberUserRespVO convert(MemberUserRespDTO bean); // TODO 芋艿:可简化 @@ -214,9 +225,12 @@ public interface TradeOrderConvert { }); return new PageResult<>(orderVOs, pageResult.getTotal()); } + AppTradeOrderPageItemRespVO convert02(TradeOrderDO order, List items); + AppProductPropertyValueDetailRespVO convert02(ProductPropertyValueDetailRespDTO bean); + // TODO 芋艿:可简化 default AppTradeOrderDetailRespVO convert02(TradeOrderDO order, List orderItems, List propertyValueDetails, TradeOrderProperties tradeOrderProperties) { AppTradeOrderDetailRespVO orderVO = convert3(order, orderItems); @@ -243,10 +257,23 @@ public interface TradeOrderConvert { orderVO.setReceiverAreaName(AreaUtils.format(order.getReceiverAreaId())); return orderVO; } + AppTradeOrderDetailRespVO convert3(TradeOrderDO order, List items); AppTradeOrderItemRespVO convert03(TradeOrderItemDO bean); + @Mapping(target = "skuId", source = "tradeOrderItemDO.skuId") + @Mapping(target = "orderId", source = "tradeOrderItemDO.orderId") + @Mapping(target = "orderItemId", source = "tradeOrderItemDO.id") + @Mapping(target = "scores", source = "createReqVO.scores") + @Mapping(target = "descriptionScores", source = "createReqVO.descriptionScores") + @Mapping(target = "benefitScores", source = "createReqVO.benefitScores") + @Mapping(target = "content", source = "createReqVO.content") + @Mapping(target = "picUrls", source = "createReqVO.picUrls") + @Mapping(target = "anonymous", source = "createReqVO.anonymous") + @Mapping(target = "userId", source = "tradeOrderItemDO.userId") + ProductCommentCreateReqDTO convert04(AppTradeOrderItemCommentCreateReqVO createReqVO, TradeOrderItemDO tradeOrderItemDO); + default TradePriceCalculateReqBO convert(Long userId, AppTradeOrderSettlementReqVO settlementReqVO, List cartList) { TradePriceCalculateReqBO reqBO = new TradePriceCalculateReqBO(); @@ -286,6 +313,7 @@ public interface TradeOrderConvert { } return respVO; } + AppTradeOrderSettlementRespVO convert0(TradePriceCalculateRespBO calculate, AddressRespDTO address); } diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/dataobject/aftersale/TradeAfterSaleLogDO.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/dataobject/aftersale/TradeAfterSaleLogDO.java index 5aa627403..56a0f0f32 100644 --- a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/dataobject/aftersale/TradeAfterSaleLogDO.java +++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/dataobject/aftersale/TradeAfterSaleLogDO.java @@ -2,9 +2,7 @@ package cn.iocoder.yudao.module.trade.dal.dataobject.aftersale; import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; -import cn.iocoder.yudao.module.trade.dal.dataobject.order.TradeOrderDO; -import cn.iocoder.yudao.module.trade.dal.dataobject.order.TradeOrderItemDO; -import cn.iocoder.yudao.module.trade.enums.aftersale.TradeAfterSaleStatusEnum; +import cn.iocoder.yudao.module.trade.enums.aftersale.AfterSaleOperateTypeEnum; import com.baomidou.mybatisplus.annotation.KeySequence; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; @@ -51,30 +49,13 @@ public class TradeAfterSaleLogDO extends BaseDO { * 关联 {@link TradeAfterSaleDO#getId()} */ private Long afterSaleId; + // todo @CHENCHEN: 改成 Integer 哈;主要未来改文案,不好洗 log 存的字段; /** - * 订单编号 + * 操作类型 * - * 关联 {@link TradeOrderDO#getId()} + * 枚举 {@link AfterSaleOperateTypeEnum} */ - private Long orderId; - /** - * 订单项编号 - * - * 关联 {@link TradeOrderItemDO#getId()} - */ - private Long orderItemId; - /** - * 售后状态(之前) - * - * 枚举 {@link TradeAfterSaleStatusEnum} - */ - private Integer beforeStatus; - /** - * 售后状态(之后) - * - * 枚举 {@link TradeAfterSaleStatusEnum} - */ - private Integer afterStatus; + private String operateType; /** * 操作明细 */ diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/mysql/delivery/DeliveryExpressTemplateChargeMapper.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/mysql/delivery/DeliveryExpressTemplateChargeMapper.java index dc96b24f2..a2403f019 100644 --- a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/mysql/delivery/DeliveryExpressTemplateChargeMapper.java +++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/mysql/delivery/DeliveryExpressTemplateChargeMapper.java @@ -2,13 +2,11 @@ package cn.iocoder.yudao.module.trade.dal.mysql.delivery; import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; -import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; import cn.iocoder.yudao.module.trade.dal.dataobject.delivery.DeliveryExpressTemplateChargeDO; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.apache.ibatis.annotations.Mapper; -import org.springframework.stereotype.Repository; +import java.util.Collection; import java.util.List; @Mapper @@ -23,6 +21,11 @@ public interface DeliveryExpressTemplateChargeMapper extends BaseMapperX() .eq(DeliveryExpressTemplateChargeDO::getTemplateId, templateId)); } + + default List selectByTemplateIds(Collection templateIds) { + return selectList(DeliveryExpressTemplateChargeDO::getTemplateId, templateIds); + } + } diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/mysql/delivery/DeliveryExpressTemplateFreeMapper.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/mysql/delivery/DeliveryExpressTemplateFreeMapper.java index 58caaf9af..b64a3c979 100644 --- a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/mysql/delivery/DeliveryExpressTemplateFreeMapper.java +++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/mysql/delivery/DeliveryExpressTemplateFreeMapper.java @@ -1,14 +1,11 @@ package cn.iocoder.yudao.module.trade.dal.mysql.delivery; import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; -import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; -import cn.iocoder.yudao.module.trade.dal.dataobject.delivery.DeliveryExpressTemplateChargeDO; import cn.iocoder.yudao.module.trade.dal.dataobject.delivery.DeliveryExpressTemplateFreeDO; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.apache.ibatis.annotations.Mapper; -import org.springframework.stereotype.Repository; +import java.util.Collection; import java.util.List; @Mapper @@ -23,6 +20,10 @@ public interface DeliveryExpressTemplateFreeMapper extends BaseMapperX() .eq(DeliveryExpressTemplateFreeDO::getTemplateId, templateId)); } + + default List selectListByTemplateIds(Collection templateIds) { + return selectList(DeliveryExpressTemplateFreeDO::getTemplateId, templateIds); + } } diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/mysql/order/TradeOrderItemMapper.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/mysql/order/TradeOrderItemMapper.java index edb45fb62..62cccf0f7 100644 --- a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/mysql/order/TradeOrderItemMapper.java +++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/mysql/order/TradeOrderItemMapper.java @@ -1,6 +1,7 @@ package cn.iocoder.yudao.module.trade.dal.mysql.order; import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; import cn.iocoder.yudao.module.trade.dal.dataobject.order.TradeOrderItemDO; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import org.apache.ibatis.annotations.Mapper; @@ -24,4 +25,9 @@ public interface TradeOrderItemMapper extends BaseMapperX { return selectList(TradeOrderItemDO::getOrderId, orderIds); } + default TradeOrderItemDO selectOrderItemByIdAndUserId(Long orderItemId, Long loginUserId) { + return selectOne(new LambdaQueryWrapperX() + .eq(TradeOrderItemDO::getId, orderItemId) + .eq(TradeOrderItemDO::getUserId, loginUserId)); + } } diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/mysql/order/TradeOrderMapper.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/mysql/order/TradeOrderMapper.java index 265450fbd..dadb762f9 100644 --- a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/mysql/order/TradeOrderMapper.java +++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/mysql/order/TradeOrderMapper.java @@ -33,6 +33,7 @@ public interface TradeOrderMapper extends BaseMapperX { .eqIfPresent(TradeOrderDO::getType, reqVO.getType()) .eqIfPresent(TradeOrderDO::getStatus, reqVO.getStatus()) .eqIfPresent(TradeOrderDO::getPayChannelCode, reqVO.getPayChannelCode()) + .eqIfPresent(TradeOrderDO::getTerminal,reqVO.getTerminal()) .betweenIfPresent(TradeOrderDO::getCreateTime, reqVO.getCreateTime())); } @@ -50,4 +51,10 @@ public interface TradeOrderMapper extends BaseMapperX { .eqIfPresent(TradeOrderDO::getStatus, status) .eqIfPresent(TradeOrderDO::getCommentStatus, commentStatus)); } + + default TradeOrderDO selectOrderByIdAndUserId(Long orderId, Long loginUserId) { + return selectOne(new LambdaQueryWrapperX() + .eq(TradeOrderDO::getId, orderId) + .eq(TradeOrderDO::getUserId, loginUserId)); + } } diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/framework/aftersalelog/config/AfterSaleLogConfiguration.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/framework/aftersalelog/config/AfterSaleLogConfiguration.java new file mode 100644 index 000000000..1c382d24f --- /dev/null +++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/framework/aftersalelog/config/AfterSaleLogConfiguration.java @@ -0,0 +1,22 @@ +package cn.iocoder.yudao.module.trade.framework.aftersalelog.config; + +import cn.iocoder.yudao.module.trade.framework.aftersalelog.core.aop.AfterSaleLogAspect; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +// TODO @chenchen:改成 aftersale 好点哈; +/** + * trade 模块的 afterSaleLog 组件的 Configuration + * + * @author 陈賝 + * @since 2023/6/18 11:09 + */ +@Configuration(proxyBeanMethods = false) +public class AfterSaleLogConfiguration { + + @Bean + public AfterSaleLogAspect afterSaleLogAspect() { + return new AfterSaleLogAspect(); + } + +} diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/framework/aftersalelog/core/annotations/AfterSaleLog.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/framework/aftersalelog/core/annotations/AfterSaleLog.java new file mode 100644 index 000000000..ebfdd7522 --- /dev/null +++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/framework/aftersalelog/core/annotations/AfterSaleLog.java @@ -0,0 +1,36 @@ +package cn.iocoder.yudao.module.trade.framework.aftersalelog.core.annotations; + +import cn.iocoder.yudao.module.trade.enums.aftersale.AfterSaleOperateTypeEnum; + +import java.lang.annotation.*; + +/** + * 售后日志的注解 + * + * 写在方法上时,会自动记录售后日志 + * + * @author 陈賝 + * @since 2023/6/8 17:04 + * @see cn.iocoder.yudao.module.trade.framework.aftersalelog.core.aop.AfterSaleLogAspect + */ +@Target({ElementType.METHOD, ElementType.TYPE}) +@Retention(RetentionPolicy.RUNTIME) +@Documented +public @interface AfterSaleLog { + + /** + * 售后 ID + */ + String id(); + + /** + * 操作类型 + */ + AfterSaleOperateTypeEnum operateType(); + + /** + * 日志内容 + */ + String content() default ""; + +} diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/framework/aftersalelog/core/aop/AfterSaleLogAspect.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/framework/aftersalelog/core/aop/AfterSaleLogAspect.java new file mode 100644 index 000000000..93186edf1 --- /dev/null +++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/framework/aftersalelog/core/aop/AfterSaleLogAspect.java @@ -0,0 +1,88 @@ +package cn.iocoder.yudao.module.trade.framework.aftersalelog.core.aop; + +import cn.hutool.core.map.MapUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.iocoder.yudao.framework.common.util.spring.SpringExpressionUtils; +import cn.iocoder.yudao.framework.web.core.util.WebFrameworkUtils; +import cn.iocoder.yudao.module.trade.framework.aftersalelog.core.annotations.AfterSaleLog; +import cn.iocoder.yudao.module.trade.framework.aftersalelog.core.dto.TradeAfterSaleLogCreateReqDTO; +import cn.iocoder.yudao.module.trade.framework.aftersalelog.core.service.AfterSaleLogService; +import com.google.common.collect.Maps; +import lombok.extern.slf4j.Slf4j; +import org.aspectj.lang.JoinPoint; +import org.aspectj.lang.annotation.AfterReturning; +import org.aspectj.lang.annotation.Aspect; +import org.aspectj.lang.reflect.MethodSignature; + +import javax.annotation.Resource; +import java.util.HashMap; +import java.util.Map; + +import static cn.iocoder.yudao.framework.common.util.json.JsonUtils.toJsonString; +import static java.util.Arrays.asList; + +/** + * 记录售后日志的 AOP 切面 + * + * @author 陈賝 + * @since 2023/6/13 13:54 + */ +@Slf4j +@Aspect +public class AfterSaleLogAspect { + + @Resource + private AfterSaleLogService afterSaleLogService; + + // TODO chenchen: 这个分 3 行把; + private final static String OPERATE_TYPE = "operateType", ID = "id", CONTENT = "content"; + + /** + * 切面存入日志 + */ + @AfterReturning(pointcut = "@annotation(afterSaleLog)", returning = "info") + public void doAfterReturning(JoinPoint joinPoint, AfterSaleLog afterSaleLog, Object info) { + try { + // 日志对象拼接 + Integer userType = WebFrameworkUtils.getLoginUserType(); + Long id = WebFrameworkUtils.getLoginUserId(); + Map formatObj = spelFormat(joinPoint, info); + TradeAfterSaleLogCreateReqDTO dto = new TradeAfterSaleLogCreateReqDTO() + .setUserId(id) + .setUserType(userType) + .setAfterSaleId(MapUtil.getLong(formatObj, ID)) + .setOperateType(MapUtil.getStr(formatObj, OPERATE_TYPE)) + .setContent(MapUtil.getStr(formatObj, CONTENT)); + // 异步存入数据库 + afterSaleLogService.createLog(dto); + } catch (Exception exception) { + log.error("[doAfterReturning][afterSaleLog({}) 日志记录错误]", toJsonString(afterSaleLog), exception); + } + } + + /** + * 获取描述信息 + */ + public static Map spelFormat(JoinPoint joinPoint, Object info) { + MethodSignature signature = (MethodSignature) joinPoint.getSignature(); + AfterSaleLog afterSaleLogPoint = signature.getMethod().getAnnotation(AfterSaleLog.class); + HashMap result = Maps.newHashMapWithExpectedSize(2); + Map spelMap = SpringExpressionUtils.parseExpression(joinPoint, info, + asList(afterSaleLogPoint.id(), afterSaleLogPoint.content())); + // TODO @chenchen:是不是抽成 3 个方法好点;毕竟 map 太抽象了;; + // 售后ID + String id = MapUtil.getStr(spelMap, afterSaleLogPoint.id()); + result.put(ID, id); + // 操作类型 + String operateType = afterSaleLogPoint.operateType().description(); + result.put(OPERATE_TYPE, operateType); + // 日志内容 + String content = MapUtil.getStr(spelMap, afterSaleLogPoint.content()); + if (ObjectUtil.isNotNull(afterSaleLogPoint.operateType())) { + content += operateType; + } + result.put(CONTENT, content); + return result; + } + +} diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/framework/aftersalelog/core/dto/TradeAfterSaleLogCreateReqDTO.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/framework/aftersalelog/core/dto/TradeAfterSaleLogCreateReqDTO.java new file mode 100644 index 000000000..7beac68cf --- /dev/null +++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/framework/aftersalelog/core/dto/TradeAfterSaleLogCreateReqDTO.java @@ -0,0 +1,46 @@ +package cn.iocoder.yudao.module.trade.framework.aftersalelog.core.dto; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 售后日志的创建 Request DTO + * + * @author 陈賝 + * @since 2023/6/19 09:54 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +public class TradeAfterSaleLogCreateReqDTO { + + /** + * 编号 + */ + private Long id; + /** + * 用户编号 + * + * 关联 1:AdminUserDO 的 id 字段 + * 关联 2:MemberUserDO 的 id 字段 + */ + private Long userId; + /** + * 用户类型 + */ + private Integer userType; + /** + * 售后编号 + */ + private Long afterSaleId; + /** + * 操作类型 + */ + private String operateType; + /** + * 操作明细 + */ + private String content; + +} diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/framework/aftersalelog/core/service/AfterSaleLogService.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/framework/aftersalelog/core/service/AfterSaleLogService.java new file mode 100644 index 000000000..ccea309f4 --- /dev/null +++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/framework/aftersalelog/core/service/AfterSaleLogService.java @@ -0,0 +1,23 @@ +package cn.iocoder.yudao.module.trade.framework.aftersalelog.core.service; + + +import cn.iocoder.yudao.module.trade.framework.aftersalelog.core.dto.TradeAfterSaleLogCreateReqDTO; + +/** + * 交易售后日志 Service 接口 + * + * @author 陈賝 + * @since 2023/6/12 14:18 + */ +public interface AfterSaleLogService { + + /** + * 创建售后日志 + * + * @param logDTO 日志记录 + * @author 陈賝 + * @since 2023/6/12 14:18 + */ + void createLog(TradeAfterSaleLogCreateReqDTO logDTO); + +} diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/framework/delivery/config/ExpressClientConfig.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/framework/delivery/config/ExpressClientConfig.java new file mode 100644 index 000000000..2799c3f1c --- /dev/null +++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/framework/delivery/config/ExpressClientConfig.java @@ -0,0 +1,32 @@ +package cn.iocoder.yudao.module.trade.framework.delivery.config; + +import cn.iocoder.yudao.module.trade.framework.delivery.core.client.ExpressClient; +import cn.iocoder.yudao.module.trade.framework.delivery.core.client.ExpressClientFactory; +import cn.iocoder.yudao.module.trade.framework.delivery.core.client.impl.ExpressClientFactoryImpl; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.client.RestTemplate; + +/** + * 快递客户端端配置类: + * + * 1. 快递客户端工厂 {@link ExpressClientFactory} + * 2. 默认的快递客户端实现 {@link ExpressClient} + * + * @author jason + */ +@Configuration(proxyBeanMethods = false) +public class ExpressClientConfig { + + @Bean + public ExpressClientFactory expressClientFactory(TradeExpressProperties tradeExpressProperties, + RestTemplate restTemplate) { + return new ExpressClientFactoryImpl(tradeExpressProperties, restTemplate); + } + + @Bean + public ExpressClient defaultExpressClient(ExpressClientFactory expressClientFactory) { + return expressClientFactory.getDefaultExpressClient(); + } + +} diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/framework/delivery/config/TradeExpressProperties.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/framework/delivery/config/TradeExpressProperties.java new file mode 100644 index 000000000..795af0dee --- /dev/null +++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/framework/delivery/config/TradeExpressProperties.java @@ -0,0 +1,80 @@ +package cn.iocoder.yudao.module.trade.framework.delivery.config; + +import cn.iocoder.yudao.module.trade.framework.delivery.core.enums.ExpressClientEnum; +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.stereotype.Component; +import org.springframework.validation.annotation.Validated; + +import javax.validation.Valid; +import javax.validation.constraints.NotEmpty; + +// TODO @芋艿:未来要不要放数据库中?考虑 saas 多租户时,不同租户使用不同的配置? +/** + * 交易运费快递的配置项 + * + * @author jason + */ +@Component +@ConfigurationProperties(prefix = "yudao.trade.express") +@Data +@Validated +public class TradeExpressProperties { + + /** + * 快递客户端 + * + * 默认不提供,需要提醒用户配置一个快递服务商。 + */ + private ExpressClientEnum client = ExpressClientEnum.NOT_PROVIDE; + + /** + * 快递鸟配置 + */ + @Valid + private KdNiaoConfig kdNiao; + /** + * 快递 100 配置 + */ + @Valid + private Kd100Config kd100; + + /** + * 快递鸟配置项目 + */ + @Data + public static class KdNiaoConfig { + + /** + * 快递鸟用户 ID + */ + @NotEmpty(message = "快递鸟用户 ID 配置项不能为空") + private String businessId; + /** + * 快递鸟 API Key + */ + @NotEmpty(message = "快递鸟 Api Key 配置项不能为空") + private String apiKey; + + } + + /** + * 快递100 配置项 + */ + @Data + public static class Kd100Config { + + /** + * 快递 100 授权码 + */ + @NotEmpty(message = "快递 100 授权码配置项不能为空") + private String customer; + /** + * 快递 100 授权 key + */ + @NotEmpty(message = "快递 100 授权 Key 配置项不能为空") + private String key; + + } + +} diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/framework/delivery/core/client/ExpressClient.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/framework/delivery/core/client/ExpressClient.java new file mode 100644 index 000000000..76b361c3f --- /dev/null +++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/framework/delivery/core/client/ExpressClient.java @@ -0,0 +1,23 @@ +package cn.iocoder.yudao.module.trade.framework.delivery.core.client; + +import cn.iocoder.yudao.module.trade.framework.delivery.core.client.dto.ExpressTrackQueryReqDTO; +import cn.iocoder.yudao.module.trade.framework.delivery.core.client.dto.ExpressTrackRespDTO; + +import java.util.List; + +/** + * 快递客户端接口 + * + * @author jason + */ +public interface ExpressClient { + + /** + * 快递实时查询 + * + * @param reqDTO 查询请求参数 + */ + // TODO @jason:返回字段可以参考 https://doc.youzanyun.com/detail/API/0/5 响应的 data + List getExpressTrackList(ExpressTrackQueryReqDTO reqDTO); + +} diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/framework/delivery/core/client/ExpressClientFactory.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/framework/delivery/core/client/ExpressClientFactory.java new file mode 100644 index 000000000..5e457092f --- /dev/null +++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/framework/delivery/core/client/ExpressClientFactory.java @@ -0,0 +1,24 @@ +package cn.iocoder.yudao.module.trade.framework.delivery.core.client; + +import cn.iocoder.yudao.module.trade.framework.delivery.core.enums.ExpressClientEnum; + +/** + * 快递客户端工厂接口:用于创建和缓存快递客户端 + * + * @author jason + */ +public interface ExpressClientFactory { + + /** + * 获取默认的快递客户端 + */ + ExpressClient getDefaultExpressClient(); + + /** + * 通过枚举获取快递客户端,如果不存在,就创建一个对应快递客户端 + * + * @param clientEnum 快递客户端枚举 + */ + ExpressClient getOrCreateExpressClient(ExpressClientEnum clientEnum); + +} diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/framework/delivery/core/client/convert/ExpressQueryConvert.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/framework/delivery/core/client/convert/ExpressQueryConvert.java new file mode 100644 index 000000000..1c8f76d73 --- /dev/null +++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/framework/delivery/core/client/convert/ExpressQueryConvert.java @@ -0,0 +1,27 @@ +package cn.iocoder.yudao.module.trade.framework.delivery.core.client.convert; + +import cn.iocoder.yudao.module.trade.framework.delivery.core.client.dto.ExpressTrackQueryReqDTO; +import cn.iocoder.yudao.module.trade.framework.delivery.core.client.dto.ExpressTrackRespDTO; +import cn.iocoder.yudao.module.trade.framework.delivery.core.client.dto.kd100.Kd100ExpressQueryReqDTO; +import cn.iocoder.yudao.module.trade.framework.delivery.core.client.dto.kd100.Kd100ExpressQueryRespDTO; +import cn.iocoder.yudao.module.trade.framework.delivery.core.client.dto.kdniao.KdNiaoExpressQueryReqDTO; +import cn.iocoder.yudao.module.trade.framework.delivery.core.client.dto.kdniao.KdNiaoExpressQueryRespDTO; +import org.mapstruct.Mapper; +import org.mapstruct.factory.Mappers; + +import java.util.List; + +@Mapper +public interface ExpressQueryConvert { + + ExpressQueryConvert INSTANCE = Mappers.getMapper(ExpressQueryConvert.class); + + List convertList(List expressTrackList); + + List convertList2(List expressTrackList); + + KdNiaoExpressQueryReqDTO convert(ExpressTrackQueryReqDTO dto); + + Kd100ExpressQueryReqDTO convert2(ExpressTrackQueryReqDTO dto); + +} diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/framework/delivery/core/client/dto/ExpressTrackQueryReqDTO.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/framework/delivery/core/client/dto/ExpressTrackQueryReqDTO.java new file mode 100644 index 000000000..34ad0128d --- /dev/null +++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/framework/delivery/core/client/dto/ExpressTrackQueryReqDTO.java @@ -0,0 +1,31 @@ +package cn.iocoder.yudao.module.trade.framework.delivery.core.client.dto; + +import cn.iocoder.yudao.module.trade.dal.dataobject.delivery.DeliveryExpressDO; +import lombok.Data; + +/** + * 快递轨迹的查询 Req DTO + * + * @author jason + */ +@Data +public class ExpressTrackQueryReqDTO { + + /** + * 快递公司编码 + * + * 对应 {@link DeliveryExpressDO#getCode()} + */ + private String expressCode; + + /** + * 发货快递单号 + */ + private String logisticsNo; + + /** + * 收、寄件人的电话号码 + */ + private String phone; + +} diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/framework/delivery/core/client/dto/ExpressTrackRespDTO.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/framework/delivery/core/client/dto/ExpressTrackRespDTO.java new file mode 100644 index 000000000..b6463ef1d --- /dev/null +++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/framework/delivery/core/client/dto/ExpressTrackRespDTO.java @@ -0,0 +1,24 @@ +package cn.iocoder.yudao.module.trade.framework.delivery.core.client.dto; + +import lombok.Data; + +/** + * 快递查询 Resp DTO + * + * @author jason + */ +@Data +public class ExpressTrackRespDTO { + + // TODO @jason:LocalDateTime + /** + * 发生时间 + */ + private String time; + // TODO @jason:其它字段可能要补充下 + /** + * 快递状态 + */ + private String state; + +} diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/framework/delivery/core/client/dto/kd100/Kd100ExpressQueryReqDTO.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/framework/delivery/core/client/dto/kd100/Kd100ExpressQueryReqDTO.java new file mode 100644 index 000000000..78bdada31 --- /dev/null +++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/framework/delivery/core/client/dto/kd100/Kd100ExpressQueryReqDTO.java @@ -0,0 +1,48 @@ +package cn.iocoder.yudao.module.trade.framework.delivery.core.client.dto.kd100; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; + +/** + * 快递 100 快递查询 Req DTO + * + * @author jason + */ +@Data +@JsonInclude(JsonInclude.Include.NON_NULL) +public class Kd100ExpressQueryReqDTO { + + /** + * 快递公司编码 + */ + @JsonProperty("com") + private String expressCode; + + /** + * 快递单号 + */ + @JsonProperty("num") + private String logisticsNo; + + /** + * 收、寄件人的电话号码 + */ + private String phone; + /** + * 出发地城市 + */ + private String from; + /** + * 目的地城市,到达目的地后会加大监控频率 + */ + private String to; + + /** + * 返回结果排序 + * + * desc 降序(默认), asc 升序 + */ + private String order; + +} diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/framework/delivery/core/client/dto/kd100/Kd100ExpressQueryRespDTO.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/framework/delivery/core/client/dto/kd100/Kd100ExpressQueryRespDTO.java new file mode 100644 index 000000000..6a301f4e4 --- /dev/null +++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/framework/delivery/core/client/dto/kd100/Kd100ExpressQueryRespDTO.java @@ -0,0 +1,59 @@ +package cn.iocoder.yudao.module.trade.framework.delivery.core.client.dto.kd100; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; + +import java.util.List; + +/** + * 快递 100 实时快递查询 Resp DTO 参见 快递 100 文档 + * + * @author jason + */ +@Data +public class Kd100ExpressQueryRespDTO { + + /** + * 快递公司编码 + */ + @JsonProperty("com") + private String expressCompanyCode; + /** + * 快递单号 + */ + @JsonProperty("nu") + private String logisticsNo; + /** + * 快递单当前状态 + */ + private String state; + + /** + * 查询结果 + * + * 失败返回 "false" + */ + private String result; + /** + * 查询结果失败时的错误信息 + */ + private String message; + + @JsonProperty("data") + private List tracks; + + @Data + public static class ExpressTrack { + /** + * 轨迹发生时间 + */ + @JsonProperty("time") + private String time; + /** + * 轨迹描述 + */ + @JsonProperty("context") + private String state; + } + +} diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/framework/delivery/core/client/dto/kdniao/KdNiaoExpressQueryReqDTO.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/framework/delivery/core/client/dto/kdniao/KdNiaoExpressQueryReqDTO.java new file mode 100644 index 000000000..bcb6e3353 --- /dev/null +++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/framework/delivery/core/client/dto/kdniao/KdNiaoExpressQueryReqDTO.java @@ -0,0 +1,32 @@ +package cn.iocoder.yudao.module.trade.framework.delivery.core.client.dto.kdniao; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; + +/** + * 快递鸟快递查询 Req DTO + * + * @author jason + */ +@Data +@JsonInclude(JsonInclude.Include.NON_NULL) +public class KdNiaoExpressQueryReqDTO { + + /** + * 快递公司编码 + */ + @JsonProperty("ShipperCode") + private String expressCode; + /** + * 快递单号 + */ + @JsonProperty("LogisticCode") + private String logisticsNo; + /** + * 订单编号 + */ + @JsonProperty("OrderCode") + private String orderNo; + +} diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/framework/delivery/core/client/dto/kdniao/KdNiaoExpressQueryRespDTO.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/framework/delivery/core/client/dto/kdniao/KdNiaoExpressQueryRespDTO.java new file mode 100644 index 000000000..877b1206d --- /dev/null +++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/framework/delivery/core/client/dto/kdniao/KdNiaoExpressQueryRespDTO.java @@ -0,0 +1,75 @@ +package cn.iocoder.yudao.module.trade.framework.delivery.core.client.dto.kdniao; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; + +import java.util.List; + +/** + * 快递鸟快递查询 Resp DTO 参见 快递鸟接口文档 + * + * @author jason + */ +@Data +public class KdNiaoExpressQueryRespDTO { + + /** + * 快递公司编码 + */ + @JsonProperty("ShipperCode") + private String expressCompanyCode; + + /** + * 快递单号 + */ + @JsonProperty("LogisticCode") + private String logisticsNo; + + /** + * 订单编号 + */ + @JsonProperty("OrderCode") + private String orderNo; + + @JsonProperty("EBusinessID") + private String businessId; + @JsonProperty("State") + private String state; + /** + * 成功与否 + */ + @JsonProperty("Success") + private Boolean success; + /** + * 失败原因 + */ + @JsonProperty("Reason") + private String reason; + + @JsonProperty("Traces") + private List tracks; + + @Data + public static class ExpressTrack { + /** + * 轨迹发生时间 + */ + @JsonProperty("AcceptTime") + private String time; + /** + * 轨迹描述 + */ + @JsonProperty("AcceptStation") + private String state; + } + +// { +// "EBusinessID": "1237100", +// "Traces": [], +// "State": "0", +// "ShipperCode": "STO", +// "LogisticCode": "638650888018", +// "Success": true, +// "Reason": "暂无轨迹信息" +// } +} diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/framework/delivery/core/client/impl/ExpressClientFactoryImpl.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/framework/delivery/core/client/impl/ExpressClientFactoryImpl.java new file mode 100644 index 000000000..d4432b264 --- /dev/null +++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/framework/delivery/core/client/impl/ExpressClientFactoryImpl.java @@ -0,0 +1,54 @@ +package cn.iocoder.yudao.module.trade.framework.delivery.core.client.impl; + +import cn.hutool.core.lang.Assert; +import cn.iocoder.yudao.module.trade.framework.delivery.config.TradeExpressProperties; +import cn.iocoder.yudao.module.trade.framework.delivery.core.client.ExpressClient; +import cn.iocoder.yudao.module.trade.framework.delivery.core.client.impl.kd100.Kd100ExpressClient; +import cn.iocoder.yudao.module.trade.framework.delivery.core.client.impl.kdniao.KdNiaoExpressClient; +import cn.iocoder.yudao.module.trade.framework.delivery.core.enums.ExpressClientEnum; +import cn.iocoder.yudao.module.trade.framework.delivery.core.client.ExpressClientFactory; +import lombok.AllArgsConstructor; +import org.springframework.web.client.RestTemplate; + +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; + +/** + * 快递客户端工厂实现类 + * + * @author jason + */ +@AllArgsConstructor +public class ExpressClientFactoryImpl implements ExpressClientFactory { + + private final Map clientMap = new ConcurrentHashMap<>(8); + + private final TradeExpressProperties tradeExpressProperties; + private final RestTemplate restTemplate; + + @Override + public ExpressClient getDefaultExpressClient() { + ExpressClient defaultClient = getOrCreateExpressClient(tradeExpressProperties.getClient()); + Assert.notNull("默认的快递客户端不能为空"); + return defaultClient; + } + + @Override + public ExpressClient getOrCreateExpressClient(ExpressClientEnum clientEnum) { + return clientMap.computeIfAbsent(clientEnum, + client -> createExpressClient(client, tradeExpressProperties)); + } + + private ExpressClient createExpressClient(ExpressClientEnum queryProviderEnum, + TradeExpressProperties tradeExpressProperties) { + switch (queryProviderEnum) { + case NOT_PROVIDE: + return new NoProvideExpressClient(); + case KD_NIAO: + return new KdNiaoExpressClient(restTemplate, tradeExpressProperties.getKdNiao()); + case KD_100: + return new Kd100ExpressClient(restTemplate, tradeExpressProperties.getKd100()); + } + return null; + } +} diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/framework/delivery/core/client/impl/NoProvideExpressClient.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/framework/delivery/core/client/impl/NoProvideExpressClient.java new file mode 100644 index 000000000..7289710f6 --- /dev/null +++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/framework/delivery/core/client/impl/NoProvideExpressClient.java @@ -0,0 +1,24 @@ +package cn.iocoder.yudao.module.trade.framework.delivery.core.client.impl; + +import cn.iocoder.yudao.module.trade.framework.delivery.core.client.ExpressClient; +import cn.iocoder.yudao.module.trade.framework.delivery.core.client.dto.ExpressTrackQueryReqDTO; +import cn.iocoder.yudao.module.trade.framework.delivery.core.client.dto.ExpressTrackRespDTO; + +import java.util.List; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.module.trade.enums.ErrorCodeConstants.EXPRESS_CLIENT_NOT_PROVIDE; + +/** + * 未实现的快递客户端,用来提醒用户需要接入快递服务商, + * + * @author jason + */ +public class NoProvideExpressClient implements ExpressClient { + + @Override + public List getExpressTrackList(ExpressTrackQueryReqDTO reqDTO) { + throw exception(EXPRESS_CLIENT_NOT_PROVIDE); + } + +} diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/framework/delivery/core/client/impl/kd100/Kd100ExpressClient.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/framework/delivery/core/client/impl/kd100/Kd100ExpressClient.java new file mode 100644 index 000000000..0b7e1dcbd --- /dev/null +++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/framework/delivery/core/client/impl/kd100/Kd100ExpressClient.java @@ -0,0 +1,102 @@ +package cn.iocoder.yudao.module.trade.framework.delivery.core.client.impl.kd100; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.HexUtil; +import cn.hutool.crypto.digest.DigestUtil; +import cn.iocoder.yudao.framework.common.util.json.JsonUtils; +import cn.iocoder.yudao.module.trade.framework.delivery.config.TradeExpressProperties; +import cn.iocoder.yudao.module.trade.framework.delivery.core.client.ExpressClient; +import cn.iocoder.yudao.module.trade.framework.delivery.core.client.dto.ExpressTrackQueryReqDTO; +import cn.iocoder.yudao.module.trade.framework.delivery.core.client.dto.ExpressTrackRespDTO; +import cn.iocoder.yudao.module.trade.framework.delivery.core.client.dto.kd100.Kd100ExpressQueryReqDTO; +import cn.iocoder.yudao.module.trade.framework.delivery.core.client.dto.kd100.Kd100ExpressQueryRespDTO; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.http.*; +import org.springframework.util.LinkedMultiValueMap; +import org.springframework.util.MultiValueMap; +import org.springframework.web.client.RestTemplate; + +import java.util.Collections; +import java.util.List; +import java.util.Objects; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.module.trade.enums.ErrorCodeConstants.EXPRESS_API_QUERY_ERROR; +import static cn.iocoder.yudao.module.trade.enums.ErrorCodeConstants.EXPRESS_API_QUERY_FAILED; +import static cn.iocoder.yudao.module.trade.framework.delivery.core.client.convert.ExpressQueryConvert.INSTANCE; + +/** + * 快递 100 客户端 + * + * @author jason + */ +@Slf4j +@AllArgsConstructor +public class Kd100ExpressClient implements ExpressClient { + + private static final String REAL_TIME_QUERY_URL = "https://poll.kuaidi100.com/poll/query.do"; + + private final RestTemplate restTemplate; + private final TradeExpressProperties.Kd100Config config; + + @Override + public List getExpressTrackList(ExpressTrackQueryReqDTO reqDTO) { + // 发起查询 + Kd100ExpressQueryReqDTO kd100ReqParam = INSTANCE.convert2(reqDTO); + kd100ReqParam.setExpressCode(kd100ReqParam.getExpressCode().toLowerCase()); // 快递公司编码需要转成小写 + Kd100ExpressQueryRespDTO respDTO = requestExpressQuery(REAL_TIME_QUERY_URL, kd100ReqParam, + Kd100ExpressQueryRespDTO.class); + log.debug("[getExpressTrackList][快递 100 接口 查询接口返回 {}]", respDTO); + + // 处理结果 + if (Objects.equals("false", respDTO.getResult())) { + log.error("[getExpressTrackList][快递 100 接口 返回失败 {}]", respDTO.getMessage()); + throw exception(EXPRESS_API_QUERY_FAILED, respDTO.getMessage()); + } + if (CollUtil.isEmpty(respDTO.getTracks())) { + return Collections.emptyList(); + } + return INSTANCE.convertList2(respDTO.getTracks()); + } + + /** + * 发送快递 100 实时快递查询请求,可以作为通用快递 100 通用请求接口。 目前没有其它场景需要使用。暂时放这里 + * + * @param url 请求 url + * @param req 对应请求的请求参数 + * @param respClass 对应请求的响应 class + * @param 每个请求的请求结构 Req DTO + * @param 每个请求的响应结构 Resp DTO + */ + private Resp requestExpressQuery(String url, Req req, Class respClass) { + // 请求头 + HttpHeaders headers = new HttpHeaders(); + headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED); + // 生成签名 + String param = JsonUtils.toJsonString(req); + String sign = generateReqSign(param, config.getKey(), config.getCustomer()); + // 请求体 + MultiValueMap requestBody = new LinkedMultiValueMap<>(); + requestBody.add("customer", config.getCustomer()); + requestBody.add("sign", sign); + requestBody.add("param", param); + log.debug("[sendExpressQueryReq][快递 100 接口的请求参数: {}]", requestBody); + // 发送请求 + HttpEntity> requestEntity = new HttpEntity<>(requestBody, headers); + ResponseEntity responseEntity = restTemplate.exchange(url, HttpMethod.POST, requestEntity, String.class); + log.debug("[sendExpressQueryReq][快递 100 接口响应结果 {}]", responseEntity); + + // 处理响应 + if (!responseEntity.getStatusCode().is2xxSuccessful()) { + throw exception(EXPRESS_API_QUERY_ERROR); + } + return JsonUtils.parseObject(responseEntity.getBody(), respClass); + } + + private String generateReqSign(String param, String key, String customer) { + String plainText = String.format("%s%s%s", param, key, customer); + return HexUtil.encodeHexStr(DigestUtil.md5(plainText), false); + } + +} diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/framework/delivery/core/client/impl/kdniao/KdNiaoExpressClient.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/framework/delivery/core/client/impl/kdniao/KdNiaoExpressClient.java new file mode 100644 index 000000000..52ebf72da --- /dev/null +++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/framework/delivery/core/client/impl/kdniao/KdNiaoExpressClient.java @@ -0,0 +1,118 @@ +package cn.iocoder.yudao.module.trade.framework.delivery.core.client.impl.kdniao; + +import cn.hutool.core.codec.Base64; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.net.URLEncodeUtil; +import cn.hutool.crypto.digest.DigestUtil; +import cn.iocoder.yudao.framework.common.util.json.JsonUtils; +import cn.iocoder.yudao.module.trade.framework.delivery.config.TradeExpressProperties; +import cn.iocoder.yudao.module.trade.framework.delivery.core.client.ExpressClient; +import cn.iocoder.yudao.module.trade.framework.delivery.core.client.dto.ExpressTrackQueryReqDTO; +import cn.iocoder.yudao.module.trade.framework.delivery.core.client.dto.ExpressTrackRespDTO; +import cn.iocoder.yudao.module.trade.framework.delivery.core.client.dto.kdniao.KdNiaoExpressQueryReqDTO; +import cn.iocoder.yudao.module.trade.framework.delivery.core.client.dto.kdniao.KdNiaoExpressQueryRespDTO; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.http.*; +import org.springframework.util.LinkedMultiValueMap; +import org.springframework.util.MultiValueMap; +import org.springframework.web.client.RestTemplate; + +import java.util.Collections; +import java.util.List; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.module.trade.enums.ErrorCodeConstants.EXPRESS_API_QUERY_FAILED; +import static cn.iocoder.yudao.module.trade.enums.ErrorCodeConstants.EXPRESS_API_QUERY_ERROR; +import static cn.iocoder.yudao.module.trade.framework.delivery.core.client.convert.ExpressQueryConvert.INSTANCE; + +/** + * 快递鸟客户端 + * + * @author jason + */ +@Slf4j +@AllArgsConstructor +public class KdNiaoExpressClient implements ExpressClient { + + private static final String REAL_TIME_QUERY_URL = "https://api.kdniao.com/Ebusiness/EbusinessOrderHandle.aspx"; + + /** + * 快递鸟即时查询免费版 RequestType + */ + private static final String REAL_TIME_FREE_REQ_TYPE = "1002"; + private final RestTemplate restTemplate; + private final TradeExpressProperties.KdNiaoConfig config; + + /** + * 快递鸟即时查询免费版本 + * + * @see 快递鸟接口文档 + * @param reqDTO 查询请求参数 + */ + @Override + public List getExpressTrackList(ExpressTrackQueryReqDTO reqDTO) { + KdNiaoExpressQueryReqDTO kdNiaoReqData = INSTANCE.convert(reqDTO); + // 快递公司编码需要转成大写 + kdNiaoReqData.setExpressCode(reqDTO.getExpressCode().toUpperCase()); + KdNiaoExpressQueryRespDTO respDTO = requestKdNiaoApi(REAL_TIME_QUERY_URL, REAL_TIME_FREE_REQ_TYPE, + kdNiaoReqData, KdNiaoExpressQueryRespDTO.class); + log.debug("[getExpressTrackList][快递鸟即时查询接口返回 {}]", respDTO); + + // 处理结果 + if (respDTO == null || !respDTO.getSuccess()) { + throw exception(EXPRESS_API_QUERY_FAILED, respDTO == null ? "" : respDTO.getReason()); + } + if (CollUtil.isNotEmpty(respDTO.getTracks())) { + return Collections.emptyList(); + } + return INSTANCE.convertList(respDTO.getTracks()); + } + + /** + * 快递鸟 通用的 API 请求,暂时没有其他应用场景, 暂时放这里 + * + * @param url 请求 url + * @param requestType 对应的请求指令 (快递鸟的RequestType) + * @param req 对应请求的请求参数 + * @param respClass 对应请求的响应 class + * @param 每个请求的请求结构 Req DTO + * @param 每个请求的响应结构 Resp DTO + */ + private Resp requestKdNiaoApi(String url, String requestType, Req req, + Class respClass){ + // 请求头 + HttpHeaders headers = new HttpHeaders(); + headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED); + // 请求体 + String reqData = JsonUtils.toJsonString(req); + String dataSign = generateDataSign(reqData, config.getApiKey()); + MultiValueMap requestBody = new LinkedMultiValueMap<>(); + requestBody.add("RequestData", reqData); + requestBody.add("DataType", "2"); + requestBody.add("EBusinessID", config.getBusinessId()); + requestBody.add("DataSign", dataSign); + requestBody.add("RequestType", requestType); + log.debug("[requestKdNiaoApi][快递鸟接口 RequestType : {}, 的请求参数 {}]", requestType, requestBody); + // 发送请求 + HttpEntity> requestEntity = new HttpEntity<>(requestBody, headers); + ResponseEntity responseEntity = restTemplate.exchange(url, HttpMethod.POST, requestEntity, String.class); + log.debug("快递鸟接口 RequestType : {}, 的响应结果 {}", requestType, responseEntity); + // 处理响应 + if (!responseEntity.getStatusCode().is2xxSuccessful()) { + throw exception(EXPRESS_API_QUERY_ERROR); + } + return JsonUtils.parseObject(responseEntity.getBody(), respClass); + } + + /** + * 快递鸟生成请求签名 参见 签名说明 + * @param reqData 请求实体 + * @param apiKey api Key + */ + private String generateDataSign(String reqData, String apiKey) { + String plainText = String.format("%s%s", reqData, apiKey); + return URLEncodeUtil.encode(Base64.encode(DigestUtil.md5Hex(plainText))); + } + +} diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/framework/delivery/core/enums/ExpressClientEnum.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/framework/delivery/core/enums/ExpressClientEnum.java new file mode 100644 index 000000000..81b96184c --- /dev/null +++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/framework/delivery/core/enums/ExpressClientEnum.java @@ -0,0 +1,28 @@ +package cn.iocoder.yudao.module.trade.framework.delivery.core.enums; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * 快递客户端枚举 + * + * @author jason + */ +@Getter +@AllArgsConstructor +public enum ExpressClientEnum { + + NOT_PROVIDE("not-provide","未提供"), + KD_NIAO("kd-niao", "快递鸟"), + KD_100("kd-100", "快递100"); + + /** + * 快递服务商唯一编码 + */ + private final String code; + /** + * 快递服务商名称 + */ + private final String name; + +} diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/aftersale/TradeAfterSaleServiceImpl.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/aftersale/TradeAfterSaleServiceImpl.java index 374af0a16..fc86f230a 100644 --- a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/aftersale/TradeAfterSaleServiceImpl.java +++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/aftersale/TradeAfterSaleServiceImpl.java @@ -24,8 +24,12 @@ import cn.iocoder.yudao.module.trade.enums.aftersale.TradeAfterSaleTypeEnum; import cn.iocoder.yudao.module.trade.enums.aftersale.TradeAfterSaleWayEnum; import cn.iocoder.yudao.module.trade.enums.order.TradeOrderItemAfterSaleStatusEnum; import cn.iocoder.yudao.module.trade.enums.order.TradeOrderStatusEnum; +import cn.iocoder.yudao.module.trade.framework.aftersalelog.core.dto.TradeAfterSaleLogCreateReqDTO; +import cn.iocoder.yudao.module.trade.framework.aftersalelog.core.service.AfterSaleLogService; import cn.iocoder.yudao.module.trade.framework.order.config.TradeOrderProperties; import cn.iocoder.yudao.module.trade.service.order.TradeOrderService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.support.TransactionSynchronization; @@ -36,6 +40,7 @@ import javax.annotation.Resource; import java.time.LocalDateTime; import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.framework.common.util.json.JsonUtils.toJsonString; import static cn.iocoder.yudao.module.trade.enums.ErrorCodeConstants.*; /** @@ -43,9 +48,10 @@ import static cn.iocoder.yudao.module.trade.enums.ErrorCodeConstants.*; * * @author 芋道源码 */ +@Slf4j @Service @Validated -public class TradeAfterSaleServiceImpl implements TradeAfterSaleService { +public class TradeAfterSaleServiceImpl implements TradeAfterSaleService, AfterSaleLogService { @Resource private TradeOrderService tradeOrderService; @@ -80,7 +86,7 @@ public class TradeAfterSaleServiceImpl implements TradeAfterSaleService { /** * 校验交易订单项是否可以申请售后 * - * @param userId 用户编号 + * @param userId 用户编号 * @param createReqVO 售后创建信息 * @return 交易订单项 */ @@ -117,7 +123,7 @@ public class TradeAfterSaleServiceImpl implements TradeAfterSaleService { } // 如果是【退货退款】的情况,需要额外校验是否发货 if (createReqVO.getWay().equals(TradeAfterSaleWayEnum.RETURN_AND_REFUND.getWay()) - && !TradeOrderStatusEnum.haveDelivered(order.getStatus())) { + && !TradeOrderStatusEnum.haveDelivered(order.getStatus())) { throw exception(AFTER_SALE_CREATE_FAIL_ORDER_STATUS_NO_DELIVERED); } return orderItem; @@ -133,7 +139,7 @@ public class TradeAfterSaleServiceImpl implements TradeAfterSaleService { TradeOrderDO order = tradeOrderService.getOrder(orderItem.getUserId(), orderItem.getOrderId()); afterSale.setOrderNo(order.getNo()); // 记录 orderNo 订单流水,方便后续检索 afterSale.setType(TradeOrderStatusEnum.isCompleted(order.getStatus()) - ? TradeAfterSaleTypeEnum.AFTER_SALE.getType() : TradeAfterSaleTypeEnum.IN_SALE.getType()); + ? TradeAfterSaleTypeEnum.AFTER_SALE.getType() : TradeAfterSaleTypeEnum.IN_SALE.getType()); // TODO 退还积分 tradeAfterSaleMapper.insert(afterSale); @@ -380,13 +386,40 @@ public class TradeAfterSaleServiceImpl implements TradeAfterSaleService { TradeOrderItemAfterSaleStatusEnum.NONE.getStatus(), null); } + @Deprecated private void createAfterSaleLog(Long userId, Integer userType, TradeAfterSaleDO afterSale, Integer beforeStatus, Integer afterStatus) { - TradeAfterSaleLogDO afterSaleLog = new TradeAfterSaleLogDO().setUserId(userId).setUserType(userType) - .setAfterSaleId(afterSale.getId()).setOrderId(afterSale.getOrderId()) - .setOrderItemId(afterSale.getOrderItemId()).setBeforeStatus(beforeStatus).setAfterStatus(afterStatus) - .setContent(TradeAfterSaleStatusEnum.valueOf(afterStatus).getContent()); - tradeAfterSaleLogMapper.insert(afterSaleLog); + TradeAfterSaleLogCreateReqDTO logDTO = new TradeAfterSaleLogCreateReqDTO() + .setUserId(userId) + .setUserType(userType) + .setAfterSaleId(afterSale.getId()) + .setOperateType(afterStatus.toString()); + // TODO 废弃,待删除 + this.createLog(logDTO); } + // TODO @CHENCHEN:这个注释,写在接口就好了,补充重复写哈;@date 应该是 @since + /** + * 日志记录 + * + * @param logDTO 日志记录 + * @author 陈賝 + * @date 2023/6/12 14:18 + */ + @Override + @Async + public void createLog(TradeAfterSaleLogCreateReqDTO logDTO) { + try { + TradeAfterSaleLogDO afterSaleLog = new TradeAfterSaleLogDO() + .setUserId(logDTO.getUserId()) + .setUserType(logDTO.getUserType()) + .setAfterSaleId(logDTO.getAfterSaleId()) + .setOperateType(logDTO.getOperateType()) + .setContent(logDTO.getContent()); + tradeAfterSaleLogMapper.insert(afterSaleLog); + // TODO @CHENCHEN:代码排版哈;空格要正确 + }catch (Exception exception){ + log.error("[createLog][request({}) 日志记录错误]", toJsonString(logDTO), exception); + } + } } diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/delivery/DeliveryExpressServiceImpl.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/delivery/DeliveryExpressServiceImpl.java index a396a389a..2f08b0b3f 100644 --- a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/delivery/DeliveryExpressServiceImpl.java +++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/delivery/DeliveryExpressServiceImpl.java @@ -75,7 +75,7 @@ public class DeliveryExpressServiceImpl implements DeliveryExpressService { } private void validateDeliveryExpressExists(Long id) { if (deliveryExpressMapper.selectById(id) == null) { - throw exception(DELIVERY_EXPRESS_NOT_EXISTS); + throw exception(EXPRESS_NOT_EXISTS); } } diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/delivery/DeliveryExpressTemplateService.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/delivery/DeliveryExpressTemplateService.java index e037dbc29..c455701b2 100644 --- a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/delivery/DeliveryExpressTemplateService.java +++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/delivery/DeliveryExpressTemplateService.java @@ -6,7 +6,7 @@ import cn.iocoder.yudao.module.trade.controller.admin.delivery.vo.expresstemplat import cn.iocoder.yudao.module.trade.controller.admin.delivery.vo.expresstemplate.DeliveryExpressTemplatePageReqVO; import cn.iocoder.yudao.module.trade.controller.admin.delivery.vo.expresstemplate.DeliveryExpressTemplateUpdateReqVO; import cn.iocoder.yudao.module.trade.dal.dataobject.delivery.DeliveryExpressTemplateDO; -import cn.iocoder.yudao.module.trade.service.delivery.bo.SpuDeliveryExpressTemplateRespBO; +import cn.iocoder.yudao.module.trade.service.delivery.bo.DeliveryExpressTemplateRespBO; import javax.validation.Valid; import java.util.Collection; @@ -75,7 +75,7 @@ public interface DeliveryExpressTemplateService { /** * 校验快递运费模板 - *

+ * * 如果校验不通过,抛出 {@link cn.iocoder.yudao.framework.common.exception.ServiceException} 异常 * * @param templateId 模板编号 @@ -84,12 +84,12 @@ public interface DeliveryExpressTemplateService { DeliveryExpressTemplateDO validateDeliveryExpressTemplate(Long templateId); /** - * 基于指定的 SPU 编号数组和收件人地址区域编号. 获取匹配运费模板 + * 基于运费模板编号数组和收件人地址区域编号,获取匹配运费模板 * - * @param spuIds SPU 编号列表 + * @param ids 编号列表 * @param areaId 区域编号 - * @return Map (spuId -> 运费模板设置) + * @return Map (templateId -> 运费模板设置) */ - Map getExpressTemplateMapBySpuIdsAndArea(Collection spuIds, Integer areaId); + Map getExpressTemplateMapByIdsAndArea(Collection ids, Integer areaId); } diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/delivery/DeliveryExpressTemplateServiceImpl.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/delivery/DeliveryExpressTemplateServiceImpl.java index 7aa591388..0cfe5e815 100644 --- a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/delivery/DeliveryExpressTemplateServiceImpl.java +++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/delivery/DeliveryExpressTemplateServiceImpl.java @@ -3,8 +3,6 @@ package cn.iocoder.yudao.module.trade.service.delivery; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.lang.Assert; import cn.iocoder.yudao.framework.common.pojo.PageResult; -import cn.iocoder.yudao.module.product.api.spu.ProductSpuApi; -import cn.iocoder.yudao.module.product.api.spu.dto.ProductSpuRespDTO; import cn.iocoder.yudao.module.trade.controller.admin.delivery.vo.expresstemplate.DeliveryExpressTemplateCreateReqVO; import cn.iocoder.yudao.module.trade.controller.admin.delivery.vo.expresstemplate.DeliveryExpressTemplateDetailRespVO; import cn.iocoder.yudao.module.trade.controller.admin.delivery.vo.expresstemplate.DeliveryExpressTemplatePageReqVO; @@ -15,9 +13,7 @@ import cn.iocoder.yudao.module.trade.dal.dataobject.delivery.DeliveryExpressTemp import cn.iocoder.yudao.module.trade.dal.mysql.delivery.DeliveryExpressTemplateChargeMapper; import cn.iocoder.yudao.module.trade.dal.mysql.delivery.DeliveryExpressTemplateFreeMapper; import cn.iocoder.yudao.module.trade.dal.mysql.delivery.DeliveryExpressTemplateMapper; -import cn.iocoder.yudao.module.trade.service.delivery.bo.DeliveryExpressTemplateChargeBO; -import cn.iocoder.yudao.module.trade.service.delivery.bo.DeliveryExpressTemplateFreeBO; -import cn.iocoder.yudao.module.trade.service.delivery.bo.SpuDeliveryExpressTemplateRespBO; +import cn.iocoder.yudao.module.trade.service.delivery.bo.DeliveryExpressTemplateRespBO; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; @@ -46,8 +42,6 @@ public class DeliveryExpressTemplateServiceImpl implements DeliveryExpressTempla private DeliveryExpressTemplateChargeMapper expressTemplateChargeMapper; @Resource private DeliveryExpressTemplateFreeMapper expressTemplateFreeMapper; - @Resource - private ProductSpuApi productSpuApi; @Override @Transactional(rollbackFor = Exception.class) @@ -228,42 +222,30 @@ public class DeliveryExpressTemplateServiceImpl implements DeliveryExpressTempla } @Override - public Map getExpressTemplateMapBySpuIdsAndArea(Collection spuIds, Integer areaId) { + public Map getExpressTemplateMapByIdsAndArea(Collection ids, Integer areaId) { Assert.notNull(areaId, "区域编号 {} 不能为空", areaId); - List spuList = productSpuApi.getSpuList(spuIds); - if (CollUtil.isEmpty(spuList)) { + // 查询 template 数组 + if (CollUtil.isEmpty(ids)) { return Collections.emptyMap(); } - Map spuMap = convertMap(spuList, ProductSpuRespDTO::getDeliveryTemplateId); - List templateList = expressTemplateMapper.selectBatchIds(spuMap.keySet()); - Map result = new HashMap<>(templateList.size()); - templateList.forEach(item -> { - ProductSpuRespDTO spu = spuMap.get(item.getId()); - if (spu == null) { - return; - } - SpuDeliveryExpressTemplateRespBO bo = new SpuDeliveryExpressTemplateRespBO() - .setChargeMode(item.getChargeMode()) - // TODO @jason:是不是只要查询到一个,就不用查询下一个了;TemplateCharge 和 TemplateFree - // @芋艿 包邮的优先级> 费用的优先级 所以两个都要查询 - .setTemplateCharge(findMatchExpressTemplateCharge(item.getId(), areaId)) - .setTemplateFree(findMatchExpressTemplateFree(item.getId(), areaId)); - result.put(spu.getId(), bo); - }); - return result; + List templateList = expressTemplateMapper.selectBatchIds(ids); + // 查询 templateCharge 数组 + List chargeList = expressTemplateChargeMapper.selectByTemplateIds(ids); + // 查询 templateFree 数组 + List freeList = expressTemplateFreeMapper.selectListByTemplateIds(ids); + + // 组合运费模板配置 RespBO + return INSTANCE.convertMap(areaId, templateList, chargeList, freeList); } - private DeliveryExpressTemplateChargeBO findMatchExpressTemplateCharge(Long templateId, Integer areaId) { - return INSTANCE.convertTemplateCharge(findFirst( - expressTemplateChargeMapper.selectListByTemplateId(templateId), item -> item.getAreaIds().contains(areaId) - ) - ); + private DeliveryExpressTemplateRespBO.Charge findMatchExpressTemplateCharge( + List templateChargeList, Integer areaId) { + return INSTANCE.convertTemplateCharge(findFirst(templateChargeList, item -> item.getAreaIds().contains(areaId))); } - private DeliveryExpressTemplateFreeBO findMatchExpressTemplateFree(Long templateId, Integer areaId) { - return INSTANCE.convertTemplateFree(findFirst( - expressTemplateFreeMapper.selectListByTemplateId(templateId), item -> item.getAreaIds().contains(areaId) - )); + private DeliveryExpressTemplateRespBO.Free findMatchExpressTemplateFree( + List templateFreeList, Integer areaId) { + return INSTANCE.convertTemplateFree(findFirst(templateFreeList, item -> item.getAreaIds().contains(areaId))); } } diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/delivery/bo/DeliveryExpressTemplateChargeBO.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/delivery/bo/DeliveryExpressTemplateChargeBO.java deleted file mode 100644 index 9dd908c41..000000000 --- a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/delivery/bo/DeliveryExpressTemplateChargeBO.java +++ /dev/null @@ -1,29 +0,0 @@ -package cn.iocoder.yudao.module.trade.service.delivery.bo; - -import lombok.Data; - -/** - * 快递运费模板费用配置 BO - * - * @author jason - */ -@Data -public class DeliveryExpressTemplateChargeBO { - - /** - * 首件数量(件数,重量,或体积) - */ - private Double startCount; - /** - * 起步价,单位:分 - */ - private Integer startPrice; - /** - * 续件数量(件, 重量,或体积) - */ - private Double extraCount; - /** - * 额外价,单位:分 - */ - private Integer extraPrice; -} diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/delivery/bo/DeliveryExpressTemplateFreeBO.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/delivery/bo/DeliveryExpressTemplateFreeBO.java deleted file mode 100644 index 6bccb038e..000000000 --- a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/delivery/bo/DeliveryExpressTemplateFreeBO.java +++ /dev/null @@ -1,26 +0,0 @@ -package cn.iocoder.yudao.module.trade.service.delivery.bo; - -import lombok.Data; - -/** - * 快递运费模板包邮配置 BO - * - * @author jason - */ -@Data -public class DeliveryExpressTemplateFreeBO { - - /** - * 包邮金额,单位:分 - * - * 订单总金额 > 包邮金额时,才免运费 - */ - private Integer freePrice; - - /** - * 包邮件数 - * - * 订单总件数 > 包邮件数时,才免运费 - */ - private Integer freeCount; -} diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/delivery/bo/DeliveryExpressTemplateRespBO.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/delivery/bo/DeliveryExpressTemplateRespBO.java new file mode 100644 index 000000000..db0af04eb --- /dev/null +++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/delivery/bo/DeliveryExpressTemplateRespBO.java @@ -0,0 +1,80 @@ +package cn.iocoder.yudao.module.trade.service.delivery.bo; + +import cn.iocoder.yudao.module.trade.enums.delivery.DeliveryExpressChargeModeEnum; +import lombok.Data; + +/** + * 运费模板配置 Resp BO + * + * @author jason + */ +@Data +public class DeliveryExpressTemplateRespBO { + + /** + * 配送计费方式 + * + * 枚举 {@link DeliveryExpressChargeModeEnum} + */ + private Integer chargeMode; + + /** + * 运费模板快递运费设置 + */ + private Charge charge; + + /** + * 运费模板包邮设置 + */ + private Free free; + + /** + * 快递运费模板费用配置 BO + * + * @author jason + */ + @Data + public static class Charge { + + /** + * 首件数量(件数,重量,或体积) + */ + private Double startCount; + /** + * 起步价,单位:分 + */ + private Integer startPrice; + /** + * 续件数量(件, 重量,或体积) + */ + private Double extraCount; + /** + * 额外价,单位:分 + */ + private Integer extraPrice; + } + + /** + * 快递运费模板包邮配置 BO + * + * @author jason + */ + @Data + public static class Free { + + /** + * 包邮金额,单位:分 + * + * 订单总金额 > 包邮金额时,才免运费 + */ + private Integer freePrice; + + /** + * 包邮件数 + * + * 订单总件数 > 包邮件数时,才免运费 + */ + private Integer freeCount; + } + +} diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/delivery/bo/SpuDeliveryExpressTemplateRespBO.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/delivery/bo/SpuDeliveryExpressTemplateRespBO.java deleted file mode 100644 index 5fd11f030..000000000 --- a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/delivery/bo/SpuDeliveryExpressTemplateRespBO.java +++ /dev/null @@ -1,31 +0,0 @@ -package cn.iocoder.yudao.module.trade.service.delivery.bo; - -import cn.iocoder.yudao.module.trade.enums.delivery.DeliveryExpressChargeModeEnum; -import lombok.Data; - -/** - * SPU 运费模板配置 Resp BO - * - * @author jason - */ -@Data -public class SpuDeliveryExpressTemplateRespBO { - - /** - * 配送计费方式 - * - * 枚举 {@link DeliveryExpressChargeModeEnum} - */ - private Integer chargeMode; - - /** - * 运费模板快递运费设置 - */ - private DeliveryExpressTemplateChargeBO templateCharge; - - /** - * 运费模板包邮设置 - */ - private DeliveryExpressTemplateFreeBO templateFree; - -} diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/order/TradeOrderService.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/order/TradeOrderService.java index 97e548521..9ecdfaea1 100644 --- a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/order/TradeOrderService.java +++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/order/TradeOrderService.java @@ -160,4 +160,21 @@ public interface TradeOrderService { */ List getOrderItemListByOrderId(Collection orderIds); + /** + * 得到订单项通过 订单项 id 和用户 id + * + * @param orderItemId 订单项 id + * @param loginUserId 登录用户 id + * @return 得到订单项 + */ + TradeOrderItemDO getOrderItemByIdAndUserId(Long orderItemId, Long loginUserId); + + /** + * 得到订单通过 id 和 用户 id + * + * @param orderId 订单 id + * @param loginUserId 登录用户 id + * @return 得到订单 + */ + TradeOrderDO getOrderByIdAndUserId(Long orderId, Long loginUserId); } diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/order/TradeOrderServiceImpl.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/order/TradeOrderServiceImpl.java index 7cd6fe87b..b324c8a21 100644 --- a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/order/TradeOrderServiceImpl.java +++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/order/TradeOrderServiceImpl.java @@ -6,9 +6,7 @@ import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import cn.iocoder.yudao.framework.common.core.KeyValue; -import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; import cn.iocoder.yudao.framework.common.enums.TerminalEnum; -import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.util.json.JsonUtils; import cn.iocoder.yudao.module.member.api.address.AddressApi; @@ -25,9 +23,7 @@ import cn.iocoder.yudao.module.promotion.api.coupon.CouponApi; import cn.iocoder.yudao.module.promotion.api.coupon.dto.CouponUseReqDTO; import cn.iocoder.yudao.module.system.api.notify.NotifyMessageSendApi; import cn.iocoder.yudao.module.system.api.notify.dto.NotifySendSingleToUserReqDTO; -import cn.iocoder.yudao.module.system.api.notify.dto.NotifyTemplateReqDTO; import cn.iocoder.yudao.module.system.api.user.AdminUserApi; -import cn.iocoder.yudao.module.system.enums.notify.NotifyTemplateTypeEnum; import cn.iocoder.yudao.module.trade.controller.admin.order.vo.TradeOrderDeliveryReqVO; import cn.iocoder.yudao.module.trade.controller.admin.order.vo.TradeOrderPageReqVO; import cn.iocoder.yudao.module.trade.controller.app.order.vo.AppTradeOrderCreateReqVO; @@ -342,7 +338,7 @@ public class TradeOrderServiceImpl implements TradeOrderService { // TODO 芋艿:logisticsId 校验存在 发货物流公司 fix DeliveryExpressDO deliveryExpress = deliveryExpressService.getDeliveryExpress(deliveryReqVO.getLogisticsId()); if (deliveryExpress == null) { - throw exception(DELIVERY_EXPRESS_NOT_EXISTS); + throw exception(EXPRESS_NOT_EXISTS); } // 更新 TradeOrderDO 状态为已发货,等待收货 @@ -357,28 +353,12 @@ public class TradeOrderServiceImpl implements TradeOrderService { // TODO 芋艿:发送订单变化的消息 // TODO 芋艿:发送站内信 fix - // TODO @puhui999:使用 sendSingleMessageToMember 呀;走模版;不用判断模版是否存在哈 - // 1、获取模版编码为 order_delivery 的模版,判断是否存在 存在放回 true - if (!notifyMessageSendApi.validateNotifyTemplate("order_delivery")) { - // 1、1 站内信模版不存在则创建模版 - NotifyTemplateReqDTO templateReqDTO = new NotifyTemplateReqDTO(); - templateReqDTO.setName("订单发货通知模版"); - templateReqDTO.setCode("order_delivery"); - templateReqDTO.setType(NotifyTemplateTypeEnum.NOTIFICATION_MESSAGE.getType()); // 系统消息 - // 获取操作用户 - // AdminUserRespDTO user = adminUserApi.getUser(userId); - // templateReqDTO.setNickname(user.getNickname()); - templateReqDTO.setNickname(UserTypeEnum.ADMIN.getName()); - templateReqDTO.setContent("订单:{orderId}{msg}"); - templateReqDTO.setStatus(CommonStatusEnum.ENABLE.getStatus()); - notifyMessageSendApi.createNotifyTemplate(templateReqDTO); - } - // 2、构造消息 + // 1、构造消息 Map msgMap = new HashMap<>(); msgMap.put("orderId", deliveryReqVO.getId()); msgMap.put("msg", TradeOrderStatusEnum.DELIVERED.getStatus()); // 2、发送站内信 - notifyMessageSendApi.sendSingleMessageToAdmin( + notifyMessageSendApi.sendSingleMessageToMember( new NotifySendSingleToUserReqDTO() .setUserId(userId) .setTemplateCode("order_delivery") @@ -565,6 +545,16 @@ public class TradeOrderServiceImpl implements TradeOrderService { return tradeOrderItemMapper.selectListByOrderId(orderIds); } + @Override + public TradeOrderItemDO getOrderItemByIdAndUserId(Long orderItemId, Long loginUserId) { + return tradeOrderItemMapper.selectOrderItemByIdAndUserId(orderItemId, loginUserId); + } + + @Override + public TradeOrderDO getOrderByIdAndUserId(Long orderId, Long loginUserId) { + return tradeOrderMapper.selectOrderByIdAndUserId(orderId, loginUserId); + } + /** * 判断指定订单的所有订单项,是不是都售后成功 * diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/price/bo/TradePriceCalculateRespBO.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/price/bo/TradePriceCalculateRespBO.java index 5a6a762a9..76fb68c1f 100644 --- a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/price/bo/TradePriceCalculateRespBO.java +++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/price/bo/TradePriceCalculateRespBO.java @@ -164,16 +164,7 @@ public class TradePriceCalculateRespBO { */ private Integer payPrice; - /** - * 商品重量,单位:kg 千克 - */ - private Double weight; - /** - * 商品体积,单位:m^3 平米 - */ - private Double volume; - - // ========== 商品信息 ========== + // ========== 商品 SPU 信息 ========== /** * 商品名 */ @@ -189,6 +180,21 @@ public class TradePriceCalculateRespBO { */ private Long categoryId; + /** + * 运费模板 Id + */ + private Long deliveryTemplateId; + + // ========== 商品 SKU 信息 ========== + /** + * 商品重量,单位:kg 千克 + */ + private Double weight; + /** + * 商品体积,单位:m^3 平米 + */ + private Double volume; + /** * 商品属性数组 */ diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/price/calculator/TradeDeliveryPriceCalculator.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/price/calculator/TradeDeliveryPriceCalculator.java index 222acab9e..35a3cb92a 100644 --- a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/price/calculator/TradeDeliveryPriceCalculator.java +++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/price/calculator/TradeDeliveryPriceCalculator.java @@ -7,9 +7,7 @@ import cn.iocoder.yudao.module.member.api.address.dto.AddressRespDTO; import cn.iocoder.yudao.module.trade.enums.delivery.DeliveryExpressChargeModeEnum; import cn.iocoder.yudao.module.trade.enums.delivery.DeliveryTypeEnum; import cn.iocoder.yudao.module.trade.service.delivery.DeliveryExpressTemplateService; -import cn.iocoder.yudao.module.trade.service.delivery.bo.DeliveryExpressTemplateChargeBO; -import cn.iocoder.yudao.module.trade.service.delivery.bo.DeliveryExpressTemplateFreeBO; -import cn.iocoder.yudao.module.trade.service.delivery.bo.SpuDeliveryExpressTemplateRespBO; +import cn.iocoder.yudao.module.trade.service.delivery.bo.DeliveryExpressTemplateRespBO; import cn.iocoder.yudao.module.trade.service.price.bo.TradePriceCalculateReqBO; import cn.iocoder.yudao.module.trade.service.price.bo.TradePriceCalculateRespBO; import cn.iocoder.yudao.module.trade.service.price.bo.TradePriceCalculateRespBO.OrderItem; @@ -24,8 +22,8 @@ import java.util.Set; import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.*; -import static cn.iocoder.yudao.module.trade.enums.ErrorCodeConstants.DELIVERY_EXPRESS_USER_ADDRESS_IS_EMPTY; -import static cn.iocoder.yudao.module.trade.enums.ErrorCodeConstants.PRODUCT_EXPRESS_TEMPLATE_NOT_FOUND; +import static cn.iocoder.yudao.module.trade.enums.ErrorCodeConstants.PRICE_CALCULATE_DELIVERY_PRICE_USER_ADDR_IS_EMPTY; +import static cn.iocoder.yudao.module.trade.enums.ErrorCodeConstants.PRICE_CALCULATE_DELIVERY_PRICE_TEMPLATE_NOT_FOUND; /** * 运费的 {@link TradePriceCalculator} 实现类 @@ -49,7 +47,7 @@ public class TradeDeliveryPriceCalculator implements TradePriceCalculator { return; } if (param.getAddressId() == null) { - throw exception(DELIVERY_EXPRESS_USER_ADDRESS_IS_EMPTY); + throw exception(PRICE_CALCULATE_DELIVERY_PRICE_USER_ADDR_IS_EMPTY); } // 1.2 得到收件地址区域 AddressRespDTO address = addressApi.getAddress(param.getAddressId(), param.getUserId()); @@ -57,29 +55,29 @@ public class TradeDeliveryPriceCalculator implements TradePriceCalculator { // 2. 过滤出已选中的商品SKU List selectedItem = filterList(result.getItems(), OrderItem::getSelected); - Set spuIds = convertSet(selectedItem, OrderItem::getSpuId); - Map spuExpressTemplateMap = - deliveryExpressTemplateService.getExpressTemplateMapBySpuIdsAndArea(spuIds, address.getAreaId()); + Set deliveryTemplateIds = convertSet(selectedItem, OrderItem::getDeliveryTemplateId); + Map expressTemplateMap = + deliveryExpressTemplateService.getExpressTemplateMapByIdsAndArea(deliveryTemplateIds, address.getAreaId()); // 3. 计算配送费用 - if (CollUtil.isEmpty(spuExpressTemplateMap)) { - log.error("找不到商品 SPU ID {}, area Id {} ,对应的运费模板", spuIds, address.getAreaId()); - throw exception(PRODUCT_EXPRESS_TEMPLATE_NOT_FOUND); + if (CollUtil.isEmpty(expressTemplateMap)) { + log.error("[calculate][找不到商品 templateIds {} areaId{} 对应的运费模板]", deliveryTemplateIds, address.getAreaId()); + throw exception(PRICE_CALCULATE_DELIVERY_PRICE_TEMPLATE_NOT_FOUND); } - calculateDeliveryPrice(selectedItem, spuExpressTemplateMap, result); + calculateDeliveryPrice(selectedItem, expressTemplateMap, result); } private void calculateDeliveryPrice(List selectedSkus, - Map spuExpressTemplateMap, + Map expressTemplateMap, TradePriceCalculateRespBO result) { - // 按 SPU 来计算商品的运费:一个 spuId 可能对应多条订单商品 SKU - Map> spuIdItemMap = convertMultiMap(selectedSkus, OrderItem::getSpuId); - // 依次计算每个 SPU 的快递运费 - for (Map.Entry> entry : spuIdItemMap.entrySet()) { - Long spuId = entry.getKey(); + // 按商品运费模板来计算商品的运费:相同的运费模板可能对应多条订单商品 SKU + Map> tplIdItemMap = convertMultiMap(selectedSkus, OrderItem::getDeliveryTemplateId); + // 依次计算快递运费 + for (Map.Entry> entry : tplIdItemMap.entrySet()) { + Long templateId = entry.getKey(); List orderItems = entry.getValue(); - SpuDeliveryExpressTemplateRespBO templateBO = spuExpressTemplateMap.get(spuId); + DeliveryExpressTemplateRespBO templateBO = expressTemplateMap.get(templateId); if (templateBO == null) { - log.error("不能计算快递运费。不能找到 spuId : {}. 对应的运费模板配置 Resp BO", spuId); + log.error("[calculateDeliveryPrice][不能计算快递运费,找不到 templateId({}) 对应的运费模板配置]", templateId); continue; } // 总件数, 总金额, 总重量, 总体积 @@ -95,12 +93,12 @@ public class TradeDeliveryPriceCalculator implements TradePriceCalculator { } // 优先判断是否包邮. 如果包邮不计算快递运费 if (isExpressFree(templateBO.getChargeMode(), totalCount, totalWeight, - totalVolume, totalPrice, templateBO.getTemplateFree())) { + totalVolume, totalPrice, templateBO.getFree())) { continue; } // 计算快递运费 calculateExpressFeeByChargeMode(totalCount, totalWeight, totalVolume, - templateBO.getChargeMode(), templateBO.getTemplateCharge(), orderItems); + templateBO.getChargeMode(), templateBO.getCharge(), orderItems); } TradePriceCalculatorHelper.recountAllPrice(result); @@ -117,10 +115,10 @@ public class TradeDeliveryPriceCalculator implements TradePriceCalculator { * @param orderItems SKU 商品项目 */ private void calculateExpressFeeByChargeMode(double totalCount, double totalWeight, double totalVolume, - int chargeMode, DeliveryExpressTemplateChargeBO templateCharge, + int chargeMode, DeliveryExpressTemplateRespBO.Charge templateCharge, List orderItems) { if (templateCharge == null) { - log.error("计算快递运费时,不能找到对应的快递运费模板费用配置。无法计算以下商品 SKU 项目运费: {}", orderItems); + log.error("[calculateExpressFeeByChargeMode][计算快递运费时,找不到 SKU({}) 对应的运费模版]", orderItems); return; } DeliveryExpressChargeModeEnum chargeModeEnum = DeliveryExpressChargeModeEnum.valueOf(chargeMode); @@ -147,7 +145,7 @@ public class TradeDeliveryPriceCalculator implements TradePriceCalculator { * @param templateCharge 快递运费配置 * @param orderItems SKU 商品项目 */ - private void calculateExpressFee(double total, DeliveryExpressTemplateChargeBO templateCharge, List orderItems) { + private void calculateExpressFee(double total, DeliveryExpressTemplateRespBO.Charge templateCharge, List orderItems) { int deliveryPrice; if (total <= templateCharge.getStartCount()) { deliveryPrice = templateCharge.getStartPrice(); @@ -170,12 +168,12 @@ public class TradeDeliveryPriceCalculator implements TradePriceCalculator { */ private void divideDeliveryPrice(int deliveryPrice, List orderItems) { // TODO @jason:分摊的话,是不是要按照比例呀?重量、价格、数量等等, - // 按比例是不是有点复杂。后面看看是否需要 + // 按比例是不是有点复杂。后面看看是否需要; + // TODO 可以看看别的项目怎么搞的哈。 int dividePrice = deliveryPrice / orderItems.size(); for (OrderItem item : orderItems) { // 更新快递运费 item.setDeliveryPrice(dividePrice); - TradePriceCalculatorHelper.recountPayPrice(item); } } @@ -191,7 +189,7 @@ public class TradeDeliveryPriceCalculator implements TradePriceCalculator { * @param templateFree 包邮配置 */ private boolean isExpressFree(Integer chargeMode, int totalCount, double totalWeight, - double totalVolume, int totalPrice, DeliveryExpressTemplateFreeBO templateFree) { + double totalVolume, int totalPrice, DeliveryExpressTemplateRespBO.Free templateFree) { if (templateFree == null) { return false; } @@ -207,6 +205,7 @@ public class TradeDeliveryPriceCalculator implements TradePriceCalculator { // freeCount 是不是应该是 double ?? // TODO @jason:要不配置的时候,把它的单位和商品对齐?到底是 kg、还是斤 // TODO @芋艿 目前 包邮 件数/重量/体积 都用的是这个字段 + // TODO @jason:那要不快递模版也改成 kg?这样是不是就不用 double ? if (totalWeight >= templateFree.getFreeCount() && totalPrice >= templateFree.getFreePrice()) { return true; diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/price/calculator/TradePriceCalculatorHelper.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/price/calculator/TradePriceCalculatorHelper.java index 7945c72eb..bd3d3b5be 100644 --- a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/price/calculator/TradePriceCalculatorHelper.java +++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/price/calculator/TradePriceCalculatorHelper.java @@ -56,7 +56,8 @@ public class TradePriceCalculatorHelper { orderItem.setPicUrl(sku.getPicUrl()).setProperties(sku.getProperties()) .setWeight(sku.getWeight()).setVolume(sku.getVolume()); // spu 信息 - orderItem.setSpuName(spu.getName()).setCategoryId(spu.getCategoryId()); + orderItem.setSpuName(spu.getName()).setCategoryId(spu.getCategoryId()) + .setDeliveryTemplateId(spu.getDeliveryTemplateId()); if (orderItem.getPicUrl() == null) { orderItem.setPicUrl(spu.getPicUrl()); } diff --git a/yudao-module-mall/yudao-module-trade-biz/src/test/java/cn/iocoder/yudao/module/trade/framework/delivery/core/client/impl/Kd100ExpressClientTest.java b/yudao-module-mall/yudao-module-trade-biz/src/test/java/cn/iocoder/yudao/module/trade/framework/delivery/core/client/impl/Kd100ExpressClientTest.java new file mode 100644 index 000000000..21b615dd0 --- /dev/null +++ b/yudao-module-mall/yudao-module-trade-biz/src/test/java/cn/iocoder/yudao/module/trade/framework/delivery/core/client/impl/Kd100ExpressClientTest.java @@ -0,0 +1,59 @@ +package cn.iocoder.yudao.module.trade.framework.delivery.core.client.impl; + +import cn.iocoder.yudao.framework.common.exception.ServiceException; +import cn.iocoder.yudao.module.trade.framework.delivery.config.TradeExpressProperties; +import cn.iocoder.yudao.module.trade.framework.delivery.core.client.dto.ExpressTrackQueryReqDTO; +import cn.iocoder.yudao.module.trade.framework.delivery.core.client.impl.kd100.Kd100ExpressClient; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; +import org.springframework.boot.autoconfigure.web.client.RestTemplateAutoConfiguration; +import org.springframework.boot.context.properties.EnableConfigurationProperties; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.boot.web.client.RestTemplateBuilder; +import org.springframework.context.annotation.Import; +import org.springframework.test.context.ActiveProfiles; + +import javax.annotation.Resource; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertThrows; + +// TODO @jason:可以参考 AliyunSmsClientTest 写,纯 mockito,无需启动 spring 容器 +/** + * @author jason + */ +@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.NONE, classes = Kd100ExpressClientTest.Application.class) +@ActiveProfiles("unit-test") // 设置使用 trade-delivery-query 配置文件 +public class Kd100ExpressClientTest { + + @Resource + private RestTemplateBuilder builder; + @Resource + private TradeExpressProperties expressQueryProperties; + + private Kd100ExpressClient kd100ExpressClient; + + @BeforeEach + public void init(){ + kd100ExpressClient = new Kd100ExpressClient(builder.build(),expressQueryProperties.getKd100()); + } + @Test + @Disabled("需要 授权 key. 暂时忽略") + void testRealTimeQueryExpressFailed() { + ServiceException t = assertThrows(ServiceException.class, () -> { + ExpressTrackQueryReqDTO reqDTO = new ExpressTrackQueryReqDTO(); + reqDTO.setExpressCode("yto"); + reqDTO.setLogisticsNo("YT9383342193097"); + kd100ExpressClient.getExpressTrackList(reqDTO); + }); + assertEquals(1011003005, t.getCode()); + } + + @Import({ + RestTemplateAutoConfiguration.class + }) + @EnableConfigurationProperties(TradeExpressProperties.class) + public static class Application { + } +} diff --git a/yudao-module-mall/yudao-module-trade-biz/src/test/java/cn/iocoder/yudao/module/trade/framework/delivery/core/client/impl/KdNiaoExpressClientTest.java b/yudao-module-mall/yudao-module-trade-biz/src/test/java/cn/iocoder/yudao/module/trade/framework/delivery/core/client/impl/KdNiaoExpressClientTest.java new file mode 100644 index 000000000..fc7c6a953 --- /dev/null +++ b/yudao-module-mall/yudao-module-trade-biz/src/test/java/cn/iocoder/yudao/module/trade/framework/delivery/core/client/impl/KdNiaoExpressClientTest.java @@ -0,0 +1,59 @@ +package cn.iocoder.yudao.module.trade.framework.delivery.core.client.impl; + +import cn.iocoder.yudao.framework.common.exception.ServiceException; +import cn.iocoder.yudao.module.trade.framework.delivery.config.TradeExpressProperties; +import cn.iocoder.yudao.module.trade.framework.delivery.core.client.dto.ExpressTrackQueryReqDTO; +import cn.iocoder.yudao.module.trade.framework.delivery.core.client.impl.kdniao.KdNiaoExpressClient; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; +import org.springframework.boot.autoconfigure.web.client.RestTemplateAutoConfiguration; +import org.springframework.boot.context.properties.EnableConfigurationProperties; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.boot.web.client.RestTemplateBuilder; +import org.springframework.context.annotation.Import; +import org.springframework.test.context.ActiveProfiles; + +import javax.annotation.Resource; + +import static org.junit.jupiter.api.Assertions.assertThrows; + +// TODO @jason:可以参考 AliyunSmsClientTest 写,纯 mockito,无需启动 spring 容器 +/** + * {@link KdNiaoExpressClient} 的单元测试 + * + * @author jason + */ +@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.NONE, classes = KdNiaoExpressClientTest.Application.class) +@ActiveProfiles("unit-test") +public class KdNiaoExpressClientTest { + + @Resource + private RestTemplateBuilder builder; + @Resource + private TradeExpressProperties expressQueryProperties; + + private KdNiaoExpressClient kdNiaoExpressClient; + + @BeforeEach + public void init(){ + kdNiaoExpressClient = new KdNiaoExpressClient(builder.build(),expressQueryProperties.getKdNiao()); + } + @Test + @Disabled("需要 授权 key. 暂时忽略") + void testRealTimeQueryExpressFailed() { + assertThrows(ServiceException.class,() ->{ + ExpressTrackQueryReqDTO reqDTO = new ExpressTrackQueryReqDTO(); + reqDTO.setExpressCode("yy"); + reqDTO.setLogisticsNo("YT9383342193097"); + kdNiaoExpressClient.getExpressTrackList(reqDTO); + }); + } + + @Import({ + RestTemplateAutoConfiguration.class + }) + @EnableConfigurationProperties(TradeExpressProperties.class) + public static class Application { + } +} diff --git a/yudao-module-mall/yudao-module-trade-biz/src/test/java/cn/iocoder/yudao/module/trade/framework/delivery/core/client/impl/NoProvideExpressClientTest.java b/yudao-module-mall/yudao-module-trade-biz/src/test/java/cn/iocoder/yudao/module/trade/framework/delivery/core/client/impl/NoProvideExpressClientTest.java new file mode 100644 index 000000000..3b60f3645 --- /dev/null +++ b/yudao-module-mall/yudao-module-trade-biz/src/test/java/cn/iocoder/yudao/module/trade/framework/delivery/core/client/impl/NoProvideExpressClientTest.java @@ -0,0 +1,53 @@ +package cn.iocoder.yudao.module.trade.framework.delivery.core.client.impl; + +import cn.iocoder.yudao.framework.common.exception.ServiceException; +import cn.iocoder.yudao.module.trade.framework.delivery.config.ExpressClientConfig; +import cn.iocoder.yudao.module.trade.framework.delivery.config.TradeExpressProperties; +import cn.iocoder.yudao.module.trade.framework.delivery.core.client.ExpressClient; +import org.junit.jupiter.api.Test; +import org.springframework.boot.autoconfigure.web.client.RestTemplateAutoConfiguration; +import org.springframework.boot.context.properties.EnableConfigurationProperties; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.boot.web.client.RestTemplateBuilder; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Import; +import org.springframework.test.context.ActiveProfiles; +import org.springframework.web.client.RestTemplate; + +import javax.annotation.Resource; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertThrows; + +// TODO @jason:可以参考 AliyunSmsClientTest 写,纯 mockito,无需启动 spring 容器 +/** + * @author jason + */ +@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.NONE, classes = NoProvideExpressClientTest.Application.class) +@ActiveProfiles("unit-test") // 设置使用 trade-delivery-query 配置文件 +@Import({ExpressClientConfig.class}) +public class NoProvideExpressClientTest { + + @Resource + private ExpressClient expressClient; + + @Test + void getExpressTrackList() { + ServiceException t = assertThrows(ServiceException.class, () -> { + expressClient.getExpressTrackList(null); + }); + assertEquals(1011003006, t.getCode()); + } + + @Import({ + RestTemplateAutoConfiguration.class, + }) + @EnableConfigurationProperties(TradeExpressProperties.class) + public static class Application { + + @Bean + private RestTemplate restTemplate(RestTemplateBuilder builder) { + return builder.build(); + } + } +} diff --git a/yudao-module-mall/yudao-module-trade-biz/src/test/java/cn/iocoder/yudao/module/trade/service/aftersale/TradeAfterSaleServiceTest.java b/yudao-module-mall/yudao-module-trade-biz/src/test/java/cn/iocoder/yudao/module/trade/service/aftersale/TradeAfterSaleServiceTest.java index 0602c6649..68efd67a7 100644 --- a/yudao-module-mall/yudao-module-trade-biz/src/test/java/cn/iocoder/yudao/module/trade/service/aftersale/TradeAfterSaleServiceTest.java +++ b/yudao-module-mall/yudao-module-trade-biz/src/test/java/cn/iocoder/yudao/module/trade/service/aftersale/TradeAfterSaleServiceTest.java @@ -102,8 +102,6 @@ public class TradeAfterSaleServiceTest extends BaseDbUnitTest { assertEquals(afterSaleLog.getUserType(), UserTypeEnum.MEMBER.getValue()); assertEquals(afterSaleLog.getAfterSaleId(), afterSaleId); assertPojoEquals(afterSale, orderItem, "id", "creator", "createTime", "updater", "updateTime"); - assertNull(afterSaleLog.getBeforeStatus()); - assertEquals(afterSaleLog.getAfterStatus(), TradeAfterSaleStatusEnum.APPLY.getStatus()); assertEquals(afterSaleLog.getContent(), TradeAfterSaleStatusEnum.APPLY.getContent()); } diff --git a/yudao-module-mall/yudao-module-trade-biz/src/test/java/cn/iocoder/yudao/module/trade/service/price/calculator/TradeDeliveryPriceCalculatorTest.java b/yudao-module-mall/yudao-module-trade-biz/src/test/java/cn/iocoder/yudao/module/trade/service/price/calculator/TradeDeliveryPriceCalculatorTest.java index e6af92430..1f408cf47 100644 --- a/yudao-module-mall/yudao-module-trade-biz/src/test/java/cn/iocoder/yudao/module/trade/service/price/calculator/TradeDeliveryPriceCalculatorTest.java +++ b/yudao-module-mall/yudao-module-trade-biz/src/test/java/cn/iocoder/yudao/module/trade/service/price/calculator/TradeDeliveryPriceCalculatorTest.java @@ -1,12 +1,13 @@ package cn.iocoder.yudao.module.trade.service.price.calculator; +import cn.hutool.core.map.MapUtil; import cn.iocoder.yudao.framework.test.core.ut.BaseMockitoUnitTest; import cn.iocoder.yudao.module.member.api.address.AddressApi; import cn.iocoder.yudao.module.member.api.address.dto.AddressRespDTO; +import cn.iocoder.yudao.module.trade.enums.delivery.DeliveryExpressChargeModeEnum; +import cn.iocoder.yudao.module.trade.enums.delivery.DeliveryTypeEnum; import cn.iocoder.yudao.module.trade.service.delivery.DeliveryExpressTemplateService; -import cn.iocoder.yudao.module.trade.service.delivery.bo.DeliveryExpressTemplateChargeBO; -import cn.iocoder.yudao.module.trade.service.delivery.bo.DeliveryExpressTemplateFreeBO; -import cn.iocoder.yudao.module.trade.service.delivery.bo.SpuDeliveryExpressTemplateRespBO; +import cn.iocoder.yudao.module.trade.service.delivery.bo.DeliveryExpressTemplateRespBO; import cn.iocoder.yudao.module.trade.service.price.bo.TradePriceCalculateReqBO; import cn.iocoder.yudao.module.trade.service.price.bo.TradePriceCalculateRespBO; import org.junit.jupiter.api.BeforeEach; @@ -16,20 +17,17 @@ import org.mockito.InjectMocks; import org.mockito.Mock; import java.util.ArrayList; -import java.util.HashMap; -import java.util.Map; import static cn.iocoder.yudao.framework.common.util.collection.SetUtils.asSet; import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomPojo; -import static cn.iocoder.yudao.module.trade.enums.delivery.DeliveryExpressChargeModeEnum.PIECE; -import static cn.iocoder.yudao.module.trade.enums.delivery.DeliveryTypeEnum.EXPRESS; import static java.util.Arrays.asList; +import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.when; -import static org.assertj.core.api.Assertions.assertThat; - /** + * {@link TradeDeliveryPriceCalculator} 的单元测试 + * * @author jason */ public class TradeDeliveryPriceCalculatorTest extends BaseMockitoUnitTest { @@ -43,49 +41,52 @@ public class TradeDeliveryPriceCalculatorTest extends BaseMockitoUnitTest { private TradePriceCalculateReqBO reqBO; private TradePriceCalculateRespBO resultBO; - private AddressRespDTO addressResp; - private DeliveryExpressTemplateChargeBO chargeBO; - private DeliveryExpressTemplateFreeBO freeBO; - private SpuDeliveryExpressTemplateRespBO spuTemplateRespBO; + + private DeliveryExpressTemplateRespBO templateRespBO; + private DeliveryExpressTemplateRespBO.Charge chargeBO; + private DeliveryExpressTemplateRespBO.Free freeBO; @BeforeEach public void init(){ // 准备参数 reqBO = new TradePriceCalculateReqBO() - .setDeliveryType(EXPRESS.getMode()) + .setDeliveryType(DeliveryTypeEnum.EXPRESS.getMode()) .setAddressId(10L) .setUserId(1L) .setItems(asList( new TradePriceCalculateReqBO.Item().setSkuId(10L).setCount(2).setSelected(true), new TradePriceCalculateReqBO.Item().setSkuId(20L).setCount(10).setSelected(true), - new TradePriceCalculateReqBO.Item().setSkuId(30L).setCount(4).setSelected(false) + new TradePriceCalculateReqBO.Item().setSkuId(30L).setCount(4).setSelected(false) // 未选中 )); resultBO = new TradePriceCalculateRespBO() .setPrice(new TradePriceCalculateRespBO.Price()) .setPromotions(new ArrayList<>()) .setItems(asList( - new TradePriceCalculateRespBO.OrderItem().setSpuId(1L).setSkuId(10L).setCount(2).setSelected(true) + new TradePriceCalculateRespBO.OrderItem().setDeliveryTemplateId(1L).setSkuId(10L).setCount(2).setSelected(true) .setWeight(10d).setVolume(10d).setPrice(100), - new TradePriceCalculateRespBO.OrderItem().setSpuId(1L).setSkuId(20L).setCount(10).setSelected(true) + new TradePriceCalculateRespBO.OrderItem().setDeliveryTemplateId(1L).setSkuId(20L).setCount(10).setSelected(true) .setWeight(10d).setVolume(10d).setPrice(200), - new TradePriceCalculateRespBO.OrderItem().setSpuId(1L).setSkuId(30L).setCount(1).setSelected(false) + new TradePriceCalculateRespBO.OrderItem().setDeliveryTemplateId(1L).setSkuId(30L).setCount(1).setSelected(false) .setWeight(10d).setVolume(10d).setPrice(300) )); // 保证价格被初始化上 TradePriceCalculatorHelper.recountPayPrice(resultBO.getItems()); TradePriceCalculatorHelper.recountAllPrice(resultBO); + // 准备收件地址数据 - addressResp = randomPojo(AddressRespDTO.class, item -> item.setAreaId(10)); + AddressRespDTO addressResp = randomPojo(AddressRespDTO.class, item -> item.setAreaId(10)); + when(addressApi.getAddress(eq(10L), eq(1L))).thenReturn(addressResp); + // 准备运费模板费用配置数据 - chargeBO = randomPojo(DeliveryExpressTemplateChargeBO.class, + chargeBO = randomPojo(DeliveryExpressTemplateRespBO.Charge.class, item -> item.setStartCount(10D).setStartPrice(1000).setExtraCount(10D).setExtraPrice(2000)); - // 准备运费模板包邮配置数据 订单总件数 < 包邮件数时 12 < 20 - freeBO = randomPojo(DeliveryExpressTemplateFreeBO.class, + // 准备运费模板包邮配置数据:订单总件数 < 包邮件数时 12 < 20 + freeBO = randomPojo(DeliveryExpressTemplateRespBO.Free.class, item -> item.setFreeCount(20).setFreePrice(100)); - // 准备 SP 运费模板 数据 - spuTemplateRespBO = randomPojo(SpuDeliveryExpressTemplateRespBO.class, - item -> item.setChargeMode(PIECE.getType()) - .setTemplateCharge(chargeBO).setTemplateFree(freeBO)); + // 准备 SP 运费模板数据 + templateRespBO = randomPojo(DeliveryExpressTemplateRespBO.class, + item -> item.setChargeMode(DeliveryExpressChargeModeEnum.PIECE.getType()) + .setCharge(chargeBO).setFree(freeBO)); } @Test @@ -94,32 +95,27 @@ public class TradeDeliveryPriceCalculatorTest extends BaseMockitoUnitTest { // SKU 1 : 100 * 2 = 200 // SKU 2 :200 * 10 = 2000 // 运费 首件 1000 + 续件 2000 = 3000 - Map respMap = new HashMap<>(); - respMap.put(1L, spuTemplateRespBO); - // mock 方法 - when(addressApi.getAddress(eq(10L), eq(1L))).thenReturn(addressResp); - when(deliveryExpressTemplateService.getExpressTemplateMapBySpuIdsAndArea(eq(asSet(1L)), eq(10))) - .thenReturn(respMap); + when(deliveryExpressTemplateService.getExpressTemplateMapByIdsAndArea(eq(asSet(1L)), eq(10))) + .thenReturn(MapUtil.of(1L, templateRespBO)); + // 调用 calculator.calculate(reqBO, resultBO); - + // 断言 TradePriceCalculateRespBO.Price price = resultBO.getPrice(); - assertThat(price) .extracting("totalPrice","discountPrice","couponPrice","pointPrice","deliveryPrice","payPrice") .containsExactly(2200, 0, 0, 0, 3000, 5200); - // 断言:SKU assertThat(resultBO.getItems()).hasSize(3); - // SKU1 + // 断言:SKU1 assertThat(resultBO.getItems().get(0)) .extracting("price", "count","discountPrice" ,"couponPrice", "pointPrice","deliveryPrice","payPrice") .containsExactly(100, 2, 0, 0, 0, 1500, 1700); - // SKU2 + // 断言:SKU2 assertThat(resultBO.getItems().get(1)) .extracting("price", "count","discountPrice" ,"couponPrice", "pointPrice","deliveryPrice","payPrice") .containsExactly(200, 10, 0, 0, 0, 1500, 3500); - // SKU3 未选中 + // 断言:SKU3 未选中 assertThat(resultBO.getItems().get(2)) .extracting("price", "count","discountPrice" ,"couponPrice", "pointPrice","deliveryPrice","payPrice") .containsExactly(300, 1, 0, 0, 0, 0, 300); @@ -131,38 +127,33 @@ public class TradeDeliveryPriceCalculatorTest extends BaseMockitoUnitTest { // SKU 1 : 100 * 2 = 200 // SKU 2 :200 * 10 = 2000 // 运费 0 - Map respMap = new HashMap<>(); - respMap.put(1L, spuTemplateRespBO); - // 准备运费模板包邮配置数据 包邮 订单总件数 > 包邮件数时 12 > 10 - freeBO = randomPojo(DeliveryExpressTemplateFreeBO.class, - item -> item.setFreeCount(10).setFreePrice(1000)); - spuTemplateRespBO.setTemplateFree(freeBO); // mock 方法 - when(addressApi.getAddress(eq(10L), eq(1L))).thenReturn(addressResp); - when(deliveryExpressTemplateService.getExpressTemplateMapBySpuIdsAndArea(eq(asSet(1L)), eq(10))) - .thenReturn(respMap); + // 准备运费模板包邮配置数据 包邮 订单总件数 > 包邮件数时 12 > 10 + templateRespBO.setFree(randomPojo(DeliveryExpressTemplateRespBO.Free.class, + item -> item.setFreeCount(10).setFreePrice(1000))); + when(deliveryExpressTemplateService.getExpressTemplateMapByIdsAndArea(eq(asSet(1L)), eq(10))) + .thenReturn(MapUtil.of(1L, templateRespBO)); + // 调用 calculator.calculate(reqBO, resultBO); - + // 断言 TradePriceCalculateRespBO.Price price = resultBO.getPrice(); - - // 断言price assertThat(price) .extracting("totalPrice","discountPrice","couponPrice","pointPrice","deliveryPrice","payPrice") .containsExactly(2200, 0, 0, 0, 0, 2200); - // 断言:SKU assertThat(resultBO.getItems()).hasSize(3); - // SKU1 + // 断言:SKU1 assertThat(resultBO.getItems().get(0)) .extracting("price", "count","discountPrice" ,"couponPrice", "pointPrice","deliveryPrice","payPrice") .containsExactly(100, 2, 0, 0, 0, 0, 200); - // SKU2 + // 断言:SKU2 assertThat(resultBO.getItems().get(1)) .extracting("price", "count","discountPrice" ,"couponPrice", "pointPrice","deliveryPrice","payPrice") .containsExactly(200, 10, 0, 0, 0, 0, 2000); - // SKU3 未选中 + // 断言:SKU3 未选中 assertThat(resultBO.getItems().get(2)) .extracting("price", "count","discountPrice" ,"couponPrice", "pointPrice","deliveryPrice","payPrice") .containsExactly(300, 1, 0, 0, 0, 0, 300); } -} \ No newline at end of file + +} diff --git a/yudao-module-mall/yudao-module-trade-biz/src/test/resources/application-unit-test.yaml b/yudao-module-mall/yudao-module-trade-biz/src/test/resources/application-unit-test.yaml index 19dd0e97b..b548da6a3 100644 --- a/yudao-module-mall/yudao-module-trade-biz/src/test/resources/application-unit-test.yaml +++ b/yudao-module-mall/yudao-module-trade-biz/src/test/resources/application-unit-test.yaml @@ -51,3 +51,11 @@ yudao: order: app-id: 1 merchant-order-id: 1 + express: + kd-niao: + api-key: xxxx + business-id: xxxxx + kd100: + customer: xxxxx + key: xxxxx + client: not_provide \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/point/MemberPointConfigController.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/point/MemberPointConfigController.java new file mode 100644 index 000000000..f0e6d0ee2 --- /dev/null +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/point/MemberPointConfigController.java @@ -0,0 +1,45 @@ +package cn.iocoder.yudao.module.member.controller.admin.point; + +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.module.member.controller.admin.point.vo.config.MemberPointConfigRespVO; +import cn.iocoder.yudao.module.member.controller.admin.point.vo.config.MemberPointConfigSaveReqVO; +import cn.iocoder.yudao.module.member.convert.point.MemberPointConfigConvert; +import cn.iocoder.yudao.module.member.dal.dataobject.point.MemberPointConfigDO; +import cn.iocoder.yudao.module.member.service.point.MemberPointConfigService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.validation.Valid; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +@Tag(name = "管理后台 - 会员积分设置") +@RestController +@RequestMapping("/point/config") +@Validated +public class MemberPointConfigController { + + @Resource + private MemberPointConfigService memberPointConfigService; + + @PutMapping("/update") + @Operation(summary = "保存会员积分配置") + @PreAuthorize("@ss.hasPermission('member:point-config:save')") + public CommonResult updateConfig(@Valid @RequestBody MemberPointConfigSaveReqVO saveReqVO) { + memberPointConfigService.saveConfig(saveReqVO); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得会员积分配置") + @PreAuthorize("@ss.hasPermission('member:point-config:query')") + public CommonResult getConfig() { + MemberPointConfigDO config = memberPointConfigService.getConfig(); + return success(MemberPointConfigConvert.INSTANCE.convert(config)); + } + +} diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/point/vo/config/MemberPointConfigBaseVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/point/vo/config/MemberPointConfigBaseVO.java new file mode 100644 index 000000000..46ad58321 --- /dev/null +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/point/vo/config/MemberPointConfigBaseVO.java @@ -0,0 +1,27 @@ +package cn.iocoder.yudao.module.member.controller.admin.point.vo.config; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.math.BigDecimal; + +/** + * 会员积分配置 Base VO,提供给添加、修改、详细的子 VO 使用 + * 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成 + */ +@Data +public class MemberPointConfigBaseVO { + + @Schema(description = "积分抵扣开关", required = true, example = "true") + private Boolean tradeDeductEnable; + + @Schema(description = "积分抵扣,单位:分", example = "13506") + private BigDecimal tradeDeductUnitPrice; + + @Schema(description = "积分抵扣最大值", example = "32428") + private Long tradeDeductMaxPrice; + + @Schema(description = "1 元赠送多少分") + private Long tradeGivePoint; + +} diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/point/vo/config/MemberPointConfigRespVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/point/vo/config/MemberPointConfigRespVO.java new file mode 100644 index 000000000..36ace83e7 --- /dev/null +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/point/vo/config/MemberPointConfigRespVO.java @@ -0,0 +1,13 @@ +package cn.iocoder.yudao.module.member.controller.admin.point.vo.config; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +@Schema(description = "管理后台 - 会员积分配置 Response VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class MemberPointConfigRespVO extends MemberPointConfigBaseVO { +} diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/point/vo/config/MemberPointConfigSaveReqVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/point/vo/config/MemberPointConfigSaveReqVO.java new file mode 100644 index 000000000..729ab74b6 --- /dev/null +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/point/vo/config/MemberPointConfigSaveReqVO.java @@ -0,0 +1,13 @@ +package cn.iocoder.yudao.module.member.controller.admin.point.vo.config; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +@Schema(description = "管理后台 - 会员积分配置保存 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class MemberPointConfigSaveReqVO extends MemberPointConfigBaseVO { +} diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/point/vo/recrod/package-info.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/point/vo/recrod/package-info.java new file mode 100644 index 000000000..284e2178b --- /dev/null +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/point/vo/recrod/package-info.java @@ -0,0 +1 @@ +package cn.iocoder.yudao.module.member.controller.admin.point.vo.recrod; diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/address/vo/AppAddressBaseVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/address/vo/AppAddressBaseVO.java index 480403271..841947b64 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/address/vo/AppAddressBaseVO.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/address/vo/AppAddressBaseVO.java @@ -1,8 +1,8 @@ package cn.iocoder.yudao.module.member.controller.app.address.vo; - import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; +import javax.validation.constraints.NotEmpty; import javax.validation.constraints.NotNull; // TODO 芋艿:example 缺失 @@ -13,23 +13,23 @@ import javax.validation.constraints.NotNull; @Data public class AppAddressBaseVO { - @Schema(description = "收件人名称", required = true) + @Schema(description = "收件人名称", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "收件人名称不能为空") private String name; - @Schema(description = "手机号", required = true) + @Schema(description = "手机号", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "手机号不能为空") private String mobile; - @Schema(description = "地区编号", required = true) + @Schema(description = "地区编号", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "地区编号不能为空") private Long areaId; - @Schema(description = "收件详细地址", required = true) + @Schema(description = "收件详细地址", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "收件详细地址不能为空") private String detailAddress; - @Schema(description = "是否默认地址", required = true) + @Schema(description = "是否默认地址", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "是否默认地址不能为空") private Boolean defaulted; diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/address/vo/AppAddressRespVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/address/vo/AppAddressRespVO.java index 4e9df9912..72ceeecd8 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/address/vo/AppAddressRespVO.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/address/vo/AppAddressRespVO.java @@ -9,10 +9,10 @@ import java.time.LocalDateTime; @ToString(callSuper = true) public class AppAddressRespVO extends AppAddressBaseVO { - @Schema(description = "编号", required = true) + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED) private Long id; - @Schema(description = "创建时间", required = true) + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) private LocalDateTime createTime; } diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/address/vo/AppAddressUpdateReqVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/address/vo/AppAddressUpdateReqVO.java index f94197ece..aae8d405b 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/address/vo/AppAddressUpdateReqVO.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/address/vo/AppAddressUpdateReqVO.java @@ -9,7 +9,7 @@ import javax.validation.constraints.*; @ToString(callSuper = true) public class AppAddressUpdateReqVO extends AppAddressBaseVO { - @Schema(description = "编号", required = true) + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "编号不能为空") private Long id; diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/auth/vo/AppAuthCheckCodeReqVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/auth/vo/AppAuthCheckCodeReqVO.java index 170ffa504..eee7062cb 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/auth/vo/AppAuthCheckCodeReqVO.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/auth/vo/AppAuthCheckCodeReqVO.java @@ -27,7 +27,7 @@ public class AppAuthCheckCodeReqVO { @Mobile private String mobile; - @Schema(description = "手机验证码", required = true, example = "1024") + @Schema(description = "手机验证码", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") @NotBlank(message = "手机验证码不能为空") @Length(min = 4, max = 6, message = "手机验证码长度为 4-6 位") @Pattern(regexp = "^[0-9]+$", message = "手机验证码必须都是数字") diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/auth/vo/AppAuthLoginReqVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/auth/vo/AppAuthLoginReqVO.java index 237cd15dc..fa5d77956 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/auth/vo/AppAuthLoginReqVO.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/auth/vo/AppAuthLoginReqVO.java @@ -21,26 +21,26 @@ import javax.validation.constraints.NotEmpty; @Builder public class AppAuthLoginReqVO { - @Schema(description = "手机号", required = true, example = "15601691300") + @Schema(description = "手机号", requiredMode = Schema.RequiredMode.REQUIRED, example = "15601691300") @NotEmpty(message = "手机号不能为空") @Mobile private String mobile; - @Schema(description = "密码", required = true, example = "buzhidao") + @Schema(description = "密码", requiredMode = Schema.RequiredMode.REQUIRED, example = "buzhidao") @NotEmpty(message = "密码不能为空") @Length(min = 4, max = 16, message = "密码长度为 4-16 位") private String password; // ========== 绑定社交登录时,需要传递如下参数 ========== - @Schema(description = "社交平台的类型,参见 SysUserSocialTypeEnum 枚举值", required = true, example = "10") + @Schema(description = "社交平台的类型,参见 SysUserSocialTypeEnum 枚举值", requiredMode = Schema.RequiredMode.REQUIRED, example = "10") @InEnum(SocialTypeEnum.class) private Integer socialType; - @Schema(description = "授权码", required = true, example = "1024") + @Schema(description = "授权码", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private String socialCode; - @Schema(description = "state", required = true, example = "9b2ffbc1-7425-4155-9894-9d5c08541d62") + @Schema(description = "state", requiredMode = Schema.RequiredMode.REQUIRED, example = "9b2ffbc1-7425-4155-9894-9d5c08541d62") private String socialState; @AssertTrue(message = "授权码不能为空") diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/auth/vo/AppAuthLoginRespVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/auth/vo/AppAuthLoginRespVO.java index 3794b1f4c..41318fe59 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/auth/vo/AppAuthLoginRespVO.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/auth/vo/AppAuthLoginRespVO.java @@ -15,16 +15,16 @@ import java.time.LocalDateTime; @Builder public class AppAuthLoginRespVO { - @Schema(description = "用户编号", required = true, example = "1024") + @Schema(description = "用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private Long userId; - @Schema(description = "访问令牌", required = true, example = "happy") + @Schema(description = "访问令牌", requiredMode = Schema.RequiredMode.REQUIRED, example = "happy") private String accessToken; - @Schema(description = "刷新令牌", required = true, example = "nice") + @Schema(description = "刷新令牌", requiredMode = Schema.RequiredMode.REQUIRED, example = "nice") private String refreshToken; - @Schema(description = "过期时间", required = true) + @Schema(description = "过期时间", requiredMode = Schema.RequiredMode.REQUIRED) private LocalDateTime expiresTime; } diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/auth/vo/AppAuthResetPasswordReqVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/auth/vo/AppAuthResetPasswordReqVO.java index e25139a31..9543714d9 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/auth/vo/AppAuthResetPasswordReqVO.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/auth/vo/AppAuthResetPasswordReqVO.java @@ -20,18 +20,18 @@ import javax.validation.constraints.Pattern; @Builder public class AppAuthResetPasswordReqVO { - @Schema(description = "新密码", required = true, example = "buzhidao") + @Schema(description = "新密码", requiredMode = Schema.RequiredMode.REQUIRED, example = "buzhidao") @NotEmpty(message = "新密码不能为空") @Length(min = 4, max = 16, message = "密码长度为 4-16 位") private String password; - @Schema(description = "手机验证码", required = true, example = "1024") + @Schema(description = "手机验证码", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") @NotEmpty(message = "手机验证码不能为空") @Length(min = 4, max = 6, message = "手机验证码长度为 4-6 位") @Pattern(regexp = "^[0-9]+$", message = "手机验证码必须都是数字") private String code; - @Schema(description = "手机号",required = true,example = "15878962356") + @Schema(description = "手机号",requiredMode = Schema.RequiredMode.REQUIRED,example = "15878962356") @NotBlank(message = "手机号不能为空") @Mobile private String mobile; diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/auth/vo/AppAuthSmsLoginReqVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/auth/vo/AppAuthSmsLoginReqVO.java index c4fb20528..fb0f8a2ee 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/auth/vo/AppAuthSmsLoginReqVO.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/auth/vo/AppAuthSmsLoginReqVO.java @@ -22,12 +22,12 @@ import javax.validation.constraints.Pattern; @Builder public class AppAuthSmsLoginReqVO { - @Schema(description = "手机号", required = true, example = "15601691300") + @Schema(description = "手机号", requiredMode = Schema.RequiredMode.REQUIRED, example = "15601691300") @NotEmpty(message = "手机号不能为空") @Mobile private String mobile; - @Schema(description = "手机验证码", required = true, example = "1024") + @Schema(description = "手机验证码", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") @NotEmpty(message = "手机验证码不能为空") @Length(min = 4, max = 6, message = "手机验证码长度为 4-6 位") @Pattern(regexp = "^[0-9]+$", message = "手机验证码必须都是数字") @@ -35,14 +35,14 @@ public class AppAuthSmsLoginReqVO { // ========== 绑定社交登录时,需要传递如下参数 ========== - @Schema(description = "社交平台的类型,参见 SysUserSocialTypeEnum 枚举值", required = true, example = "10") + @Schema(description = "社交平台的类型,参见 SysUserSocialTypeEnum 枚举值", requiredMode = Schema.RequiredMode.REQUIRED, example = "10") @InEnum(SocialTypeEnum.class) private Integer socialType; - @Schema(description = "授权码", required = true, example = "1024") + @Schema(description = "授权码", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private String socialCode; - @Schema(description = "state", required = true, example = "9b2ffbc1-7425-4155-9894-9d5c08541d62") + @Schema(description = "state", requiredMode = Schema.RequiredMode.REQUIRED, example = "9b2ffbc1-7425-4155-9894-9d5c08541d62") private String socialState; @AssertTrue(message = "授权码不能为空") diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/auth/vo/AppAuthSocialLoginReqVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/auth/vo/AppAuthSocialLoginReqVO.java index 21d328064..c05fcb4f8 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/auth/vo/AppAuthSocialLoginReqVO.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/auth/vo/AppAuthSocialLoginReqVO.java @@ -18,16 +18,16 @@ import javax.validation.constraints.NotNull; @Builder public class AppAuthSocialLoginReqVO { - @Schema(description = "社交平台的类型,参见 SysUserSocialTypeEnum 枚举值", required = true, example = "10") + @Schema(description = "社交平台的类型,参见 SysUserSocialTypeEnum 枚举值", requiredMode = Schema.RequiredMode.REQUIRED, example = "10") @InEnum(SocialTypeEnum.class) @NotNull(message = "社交平台的类型不能为空") private Integer type; - @Schema(description = "授权码", required = true, example = "1024") + @Schema(description = "授权码", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") @NotEmpty(message = "授权码不能为空") private String code; - @Schema(description = "state", required = true, example = "9b2ffbc1-7425-4155-9894-9d5c08541d62") + @Schema(description = "state", requiredMode = Schema.RequiredMode.REQUIRED, example = "9b2ffbc1-7425-4155-9894-9d5c08541d62") @NotEmpty(message = "state 不能为空") private String state; diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/auth/vo/AppAuthUpdatePasswordReqVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/auth/vo/AppAuthUpdatePasswordReqVO.java index e2a2d25be..62e21cb23 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/auth/vo/AppAuthUpdatePasswordReqVO.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/auth/vo/AppAuthUpdatePasswordReqVO.java @@ -18,12 +18,12 @@ import javax.validation.constraints.NotEmpty; @Builder public class AppAuthUpdatePasswordReqVO { - @Schema(description = "用户旧密码", required = true, example = "123456") + @Schema(description = "用户旧密码", requiredMode = Schema.RequiredMode.REQUIRED, example = "123456") @NotBlank(message = "旧密码不能为空") @Length(min = 4, max = 16, message = "密码长度为 4-16 位") private String oldPassword; - @Schema(description = "新密码", required = true, example = "buzhidao") + @Schema(description = "新密码", requiredMode = Schema.RequiredMode.REQUIRED, example = "buzhidao") @NotEmpty(message = "新密码不能为空") @Length(min = 4, max = 16, message = "密码长度为 4-16 位") private String password; diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/auth/vo/AppAuthWeixinMiniAppLoginReqVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/auth/vo/AppAuthWeixinMiniAppLoginReqVO.java index 66475d013..11dcdf957 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/auth/vo/AppAuthWeixinMiniAppLoginReqVO.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/auth/vo/AppAuthWeixinMiniAppLoginReqVO.java @@ -15,11 +15,11 @@ import javax.validation.constraints.NotEmpty; @Builder public class AppAuthWeixinMiniAppLoginReqVO { - @Schema(description = "手机 code,小程序通过 wx.getPhoneNumber 方法获得", required = true, example = "hello") + @Schema(description = "手机 code,小程序通过 wx.getPhoneNumber 方法获得", requiredMode = Schema.RequiredMode.REQUIRED, example = "hello") @NotEmpty(message = "手机 code 不能为空") private String phoneCode; - @Schema(description = "登录 code,小程序通过 wx.login 方法获得", required = true, example = "word") + @Schema(description = "登录 code,小程序通过 wx.login 方法获得", requiredMode = Schema.RequiredMode.REQUIRED, example = "word") @NotEmpty(message = "登录 code 不能为空") private String loginCode; diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/social/vo/AppSocialUserBindReqVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/social/vo/AppSocialUserBindReqVO.java index bd57ae155..a5f43fcb8 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/social/vo/AppSocialUserBindReqVO.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/social/vo/AppSocialUserBindReqVO.java @@ -18,16 +18,16 @@ import javax.validation.constraints.NotNull; @Builder public class AppSocialUserBindReqVO { - @Schema(description = "社交平台的类型,参见 SysUserSocialTypeEnum 枚举值", required = true, example = "10") + @Schema(description = "社交平台的类型,参见 SysUserSocialTypeEnum 枚举值", requiredMode = Schema.RequiredMode.REQUIRED, example = "10") @InEnum(SocialTypeEnum.class) @NotNull(message = "社交平台的类型不能为空") private Integer type; - @Schema(description = "授权码", required = true, example = "1024") + @Schema(description = "授权码", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") @NotEmpty(message = "授权码不能为空") private String code; - @Schema(description = "state", required = true, example = "9b2ffbc1-7425-4155-9894-9d5c08541d62") + @Schema(description = "state", requiredMode = Schema.RequiredMode.REQUIRED, example = "9b2ffbc1-7425-4155-9894-9d5c08541d62") @NotEmpty(message = "state 不能为空") private String state; diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/social/vo/AppSocialUserUnbindReqVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/social/vo/AppSocialUserUnbindReqVO.java index 7182643e6..c5337f984 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/social/vo/AppSocialUserUnbindReqVO.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/social/vo/AppSocialUserUnbindReqVO.java @@ -18,12 +18,12 @@ import javax.validation.constraints.NotNull; @Builder public class AppSocialUserUnbindReqVO { - @Schema(description = "社交平台的类型,参见 SysUserSocialTypeEnum 枚举值", required = true, example = "10") + @Schema(description = "社交平台的类型,参见 SysUserSocialTypeEnum 枚举值", requiredMode = Schema.RequiredMode.REQUIRED, example = "10") @InEnum(SocialTypeEnum.class) @NotNull(message = "社交平台的类型不能为空") private Integer type; - @Schema(description = "社交用户的 openid", required = true, example = "IPRmJ0wvBptiPIlGEZiPewGwiEiE") + @Schema(description = "社交用户的 openid", requiredMode = Schema.RequiredMode.REQUIRED, example = "IPRmJ0wvBptiPIlGEZiPewGwiEiE") @NotEmpty(message = "社交用户的 openid 不能为空") private String openid; diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/user/vo/AppUserInfoRespVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/user/vo/AppUserInfoRespVO.java index ef0c3193b..fc7b59f87 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/user/vo/AppUserInfoRespVO.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/user/vo/AppUserInfoRespVO.java @@ -11,12 +11,12 @@ import lombok.NoArgsConstructor; @AllArgsConstructor public class AppUserInfoRespVO { - @Schema(description = "用户昵称", required = true, example = "芋艿") + @Schema(description = "用户昵称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿") private String nickname; - @Schema(description = "用户头像", required = true, example = "/infra/file/get/35a12e57-4297-4faa-bf7d-7ed2f211c952") + @Schema(description = "用户头像", requiredMode = Schema.RequiredMode.REQUIRED, example = "/infra/file/get/35a12e57-4297-4faa-bf7d-7ed2f211c952") private String avatar; - @Schema(description = "用户手机号", required = true, example = "15601691300") + @Schema(description = "用户手机号", requiredMode = Schema.RequiredMode.REQUIRED, example = "15601691300") private String mobile; } diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/user/vo/AppUserUpdateMobileReqVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/user/vo/AppUserUpdateMobileReqVO.java index d6edf48b9..c6ec7a90c 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/user/vo/AppUserUpdateMobileReqVO.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/user/vo/AppUserUpdateMobileReqVO.java @@ -19,19 +19,19 @@ import javax.validation.constraints.Pattern; @Builder public class AppUserUpdateMobileReqVO { - @Schema(description = "手机验证码", required = true, example = "1024") + @Schema(description = "手机验证码", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") @NotEmpty(message = "手机验证码不能为空") @Length(min = 4, max = 6, message = "手机验证码长度为 4-6 位") @Pattern(regexp = "^[0-9]+$", message = "手机验证码必须都是数字") private String code; - @Schema(description = "手机号",required = true,example = "15823654487") + @Schema(description = "手机号",requiredMode = Schema.RequiredMode.REQUIRED,example = "15823654487") @NotBlank(message = "手机号不能为空") @Length(min = 8, max = 11, message = "手机号码长度为 8-11 位") @Mobile private String mobile; - @Schema(description = "原手机验证码", required = true, example = "1024") + @Schema(description = "原手机验证码", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") @NotEmpty(message = "原手机验证码不能为空") @Length(min = 4, max = 6, message = "手机验证码长度为 4-6 位") @Pattern(regexp = "^[0-9]+$", message = "手机验证码必须都是数字") @@ -39,7 +39,7 @@ public class AppUserUpdateMobileReqVO { // TODO @芋艿:oldMobile 应该不用传递 - @Schema(description = "原手机号",required = true,example = "15823654487") + @Schema(description = "原手机号",requiredMode = Schema.RequiredMode.REQUIRED,example = "15823654487") @NotBlank(message = "手机号不能为空") @Length(min = 8, max = 11, message = "手机号码长度为 8-11 位") @Mobile diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/convert/point/MemberPointConfigConvert.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/convert/point/MemberPointConfigConvert.java new file mode 100644 index 000000000..cf49d2951 --- /dev/null +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/convert/point/MemberPointConfigConvert.java @@ -0,0 +1,20 @@ +package cn.iocoder.yudao.module.member.convert.point; + +import cn.iocoder.yudao.module.member.controller.admin.point.vo.config.MemberPointConfigRespVO; +import cn.iocoder.yudao.module.member.dal.dataobject.point.MemberPointConfigDO; +import org.mapstruct.Mapper; +import org.mapstruct.factory.Mappers; + +/** + * 会员积分配置 Convert + * + * @author QingX + */ +@Mapper +public interface MemberPointConfigConvert { + + MemberPointConfigConvert INSTANCE = Mappers.getMapper(MemberPointConfigConvert.class); + + MemberPointConfigRespVO convert(MemberPointConfigDO bean); + +} diff --git a/yudao-module-point/yudao-module-point-biz/src/main/java/cn/iocoder/yudao/module/point/dal/dataobject/pointconfig/PointConfigDO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/point/MemberPointConfigDO.java similarity index 53% rename from yudao-module-point/yudao-module-point-biz/src/main/java/cn/iocoder/yudao/module/point/dal/dataobject/pointconfig/PointConfigDO.java rename to yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/point/MemberPointConfigDO.java index ee30a27d1..a7d54219f 100644 --- a/yudao-module-point/yudao-module-point-biz/src/main/java/cn/iocoder/yudao/module/point/dal/dataobject/pointconfig/PointConfigDO.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/point/MemberPointConfigDO.java @@ -1,15 +1,15 @@ -package cn.iocoder.yudao.module.point.dal.dataobject.pointconfig; +package cn.iocoder.yudao.module.member.dal.dataobject.point; -import lombok.*; -import java.util.*; -import java.math.BigDecimal; -import java.time.LocalDateTime; -import java.time.LocalDateTime; -import com.baomidou.mybatisplus.annotation.*; import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; +import com.baomidou.mybatisplus.annotation.KeySequence; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.*; + +import java.math.BigDecimal; /** - * 积分设置 DO + * 会员积分配置 DO * * @author QingX */ @@ -21,7 +21,7 @@ import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; @Builder @NoArgsConstructor @AllArgsConstructor -public class PointConfigDO extends BaseDO { +public class MemberPointConfigDO extends BaseDO { /** * 自增主键 @@ -29,23 +29,22 @@ public class PointConfigDO extends BaseDO { @TableId private Integer id; /** - * 1 开启积分抵扣 -0 关闭积分抵扣 - * - * 枚举 {@link TODO infra_boolean_string 对应的类} + * 积分抵扣开关 */ - private Integer tradeDeductEnable; + private Boolean tradeDeductEnable; /** - * 积分抵扣,抵扣最低为分 以0.01表示 1积分抵扣0.01元(单位:元) + * 积分抵扣,单位:分 + * + * 1 积分抵扣多少分 */ private BigDecimal tradeDeductUnitPrice; /** * 积分抵扣最大值 */ - private Long tradeDeductMaxPrice; + private Integer tradeDeductMaxPrice; /** - * 1元赠送多少分 + * 1 元赠送多少分 */ - private Long tradeGivePoint; + private Integer tradeGivePoint; } diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/point/MemberPointConfigMapper.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/point/MemberPointConfigMapper.java new file mode 100644 index 000000000..e099c1714 --- /dev/null +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/point/MemberPointConfigMapper.java @@ -0,0 +1,14 @@ +package cn.iocoder.yudao.module.member.dal.mysql.point; + +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.module.member.dal.dataobject.point.MemberPointConfigDO; +import org.apache.ibatis.annotations.Mapper; + +/** + * 积分设置 Mapper + * + * @author QingX + */ +@Mapper +public interface MemberPointConfigMapper extends BaseMapperX { +} diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/point/MemberPointConfigService.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/point/MemberPointConfigService.java new file mode 100644 index 000000000..4becacd36 --- /dev/null +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/point/MemberPointConfigService.java @@ -0,0 +1,29 @@ +package cn.iocoder.yudao.module.member.service.point; + +import cn.iocoder.yudao.module.member.controller.admin.point.vo.config.MemberPointConfigSaveReqVO; +import cn.iocoder.yudao.module.member.dal.dataobject.point.MemberPointConfigDO; + +import javax.validation.Valid; + +/** + * 会员积分配置 Service 接口 + * + * @author QingX + */ +public interface MemberPointConfigService { + + /** + * 保存会员积分配置 + * + * @param saveReqVO 更新信息 + */ + void saveConfig(@Valid MemberPointConfigSaveReqVO saveReqVO); + + /** + * 获得会员积分配置 + * + * @return 积分配置 + */ + MemberPointConfigDO getConfig(); + +} diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/point/MemberPointConfigServiceImpl.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/point/MemberPointConfigServiceImpl.java new file mode 100644 index 000000000..181537d55 --- /dev/null +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/point/MemberPointConfigServiceImpl.java @@ -0,0 +1,33 @@ +package cn.iocoder.yudao.module.member.service.point; + +import cn.iocoder.yudao.module.member.controller.admin.point.vo.config.MemberPointConfigSaveReqVO; +import cn.iocoder.yudao.module.member.dal.dataobject.point.MemberPointConfigDO; +import cn.iocoder.yudao.module.member.dal.mysql.point.MemberPointConfigMapper; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +import javax.annotation.Resource; + +/** + * 会员积分配置 Service 实现类 + * + * @author QingX + */ +@Service +@Validated +public class MemberPointConfigServiceImpl implements MemberPointConfigService { + + @Resource + private MemberPointConfigMapper memberPointConfigMapper; + + @Override + public void saveConfig(MemberPointConfigSaveReqVO saveReqVO) { + // TODO qingx:配置存在,则 update;不存在则 insert + } + + @Override + public MemberPointConfigDO getConfig() { + // TODO qingx:直接查询到一条; + return null; + } +} diff --git a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/account/vo/MpAccountBaseVO.java b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/account/vo/MpAccountBaseVO.java index cda7ec629..8f688309d 100644 --- a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/account/vo/MpAccountBaseVO.java +++ b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/account/vo/MpAccountBaseVO.java @@ -14,23 +14,23 @@ import javax.validation.constraints.NotEmpty; @Data public class MpAccountBaseVO { - @Schema(description = "公众号名称", required = true, example = "芋道源码") + @Schema(description = "公众号名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道源码") @NotEmpty(message = "公众号名称不能为空") private String name; - @Schema(description = "公众号微信号", required = true, example = "yudaoyuanma") + @Schema(description = "公众号微信号", requiredMode = Schema.RequiredMode.REQUIRED, example = "yudaoyuanma") @NotEmpty(message = "公众号微信号不能为空") private String account; - @Schema(description = "公众号 appId", required = true, example = "wx5b23ba7a5589ecbb") + @Schema(description = "公众号 appId", requiredMode = Schema.RequiredMode.REQUIRED, example = "wx5b23ba7a5589ecbb") @NotEmpty(message = "公众号 appId 不能为空") private String appId; - @Schema(description = "公众号密钥", required = true, example = "3a7b3b20c537e52e74afd395eb85f61f") + @Schema(description = "公众号密钥", requiredMode = Schema.RequiredMode.REQUIRED, example = "3a7b3b20c537e52e74afd395eb85f61f") @NotEmpty(message = "公众号密钥不能为空") private String appSecret; - @Schema(description = "公众号 token", required = true, example = "kangdayuzhen") + @Schema(description = "公众号 token", requiredMode = Schema.RequiredMode.REQUIRED, example = "kangdayuzhen") @NotEmpty(message = "公众号 token 不能为空") private String token; diff --git a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/account/vo/MpAccountRespVO.java b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/account/vo/MpAccountRespVO.java index 9914494ce..cb37bb2de 100644 --- a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/account/vo/MpAccountRespVO.java +++ b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/account/vo/MpAccountRespVO.java @@ -13,13 +13,13 @@ import java.util.Date; @ToString(callSuper = true) public class MpAccountRespVO extends MpAccountBaseVO { - @Schema(description = "编号", required = true, example = "1024") + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private Long id; @Schema(description = "二维码图片URL", example = "https://www.iocoder.cn/1024.png") private String qrCodeUrl; - @Schema(description = "创建时间", required = true) + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) private Date createTime; } diff --git a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/account/vo/MpAccountSimpleRespVO.java b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/account/vo/MpAccountSimpleRespVO.java index 6d63f0ef7..db4594f6d 100644 --- a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/account/vo/MpAccountSimpleRespVO.java +++ b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/account/vo/MpAccountSimpleRespVO.java @@ -7,10 +7,10 @@ import lombok.Data; @Data public class MpAccountSimpleRespVO { - @Schema(description = "编号", required = true, example = "1024") + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private Long id; - @Schema(description = "公众号名称", required = true, example = "芋道源码") + @Schema(description = "公众号名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道源码") private String name; } diff --git a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/account/vo/MpAccountUpdateReqVO.java b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/account/vo/MpAccountUpdateReqVO.java index c19e0acac..e93123e6c 100644 --- a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/account/vo/MpAccountUpdateReqVO.java +++ b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/account/vo/MpAccountUpdateReqVO.java @@ -13,7 +13,7 @@ import javax.validation.constraints.NotNull; @ToString(callSuper = true) public class MpAccountUpdateReqVO extends MpAccountBaseVO { - @Schema(description = "编号", required = true, example = "1024") + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") @NotNull(message = "编号不能为空") private Long id; diff --git a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/material/vo/MpMaterialPageReqVO.java b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/material/vo/MpMaterialPageReqVO.java index ce3b0f9e7..8a2b60ff6 100644 --- a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/material/vo/MpMaterialPageReqVO.java +++ b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/material/vo/MpMaterialPageReqVO.java @@ -14,7 +14,7 @@ import javax.validation.constraints.NotNull; @ToString(callSuper = true) public class MpMaterialPageReqVO extends PageParam { - @Schema(description = "公众号账号的编号", required = true, example = "2048") + @Schema(description = "公众号账号的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "2048") @NotNull(message = "公众号账号的编号不能为空") private Long accountId; diff --git a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/material/vo/MpMaterialRespVO.java b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/material/vo/MpMaterialRespVO.java index a93dfd994..222a4225b 100644 --- a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/material/vo/MpMaterialRespVO.java +++ b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/material/vo/MpMaterialRespVO.java @@ -9,24 +9,24 @@ import java.util.Date; @Data public class MpMaterialRespVO { - @Schema(description = "主键", required = true, example = "1024") + @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private Long id; - @Schema(description = "公众号账号的编号", required = true, example = "1") + @Schema(description = "公众号账号的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Long accountId; - @Schema(description = "公众号账号的 appId", required = true, example = "wx1234567890") + @Schema(description = "公众号账号的 appId", requiredMode = Schema.RequiredMode.REQUIRED, example = "wx1234567890") private String appId; - @Schema(description = "素材的 media_id", required = true, example = "123") + @Schema(description = "素材的 media_id", requiredMode = Schema.RequiredMode.REQUIRED, example = "123") private String mediaId; - @Schema(description = "文件类型 参见 WxConsts.MediaFileType 枚举", required = true, example = "image") + @Schema(description = "文件类型 参见 WxConsts.MediaFileType 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "image") private String type; - @Schema(description = "是否永久 true - 永久;false - 临时", required = true, example = "true") + @Schema(description = "是否永久 true - 永久;false - 临时", requiredMode = Schema.RequiredMode.REQUIRED, example = "true") private Boolean permanent; - @Schema(description = "素材的 URL", required = true, example = "https://www.iocoder.cn/1.png") + @Schema(description = "素材的 URL", requiredMode = Schema.RequiredMode.REQUIRED, example = "https://www.iocoder.cn/1.png") private String url; @@ -41,7 +41,7 @@ public class MpMaterialRespVO { @Schema(description = "视频素材的描述 只有【永久素材】使用", example = "我是介绍") private String introduction; - @Schema(description = "创建时间", required = true) + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) private Date createTime; } diff --git a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/material/vo/MpMaterialUploadNewsImageReqVO.java b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/material/vo/MpMaterialUploadNewsImageReqVO.java index 5dd689a68..6ede4c5eb 100644 --- a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/material/vo/MpMaterialUploadNewsImageReqVO.java +++ b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/material/vo/MpMaterialUploadNewsImageReqVO.java @@ -11,11 +11,11 @@ import javax.validation.constraints.NotNull; @Data public class MpMaterialUploadNewsImageReqVO { - @Schema(description = "公众号账号的编号", required = true, example = "2048") + @Schema(description = "公众号账号的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "2048") @NotNull(message = "公众号账号的编号不能为空") private Long accountId; - @Schema(description = "文件附件", required = true) + @Schema(description = "文件附件", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "文件不能为空") @JsonIgnore // 避免被操作日志,进行序列化,导致报错 private MultipartFile file; diff --git a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/material/vo/MpMaterialUploadPermanentReqVO.java b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/material/vo/MpMaterialUploadPermanentReqVO.java index 93d0a863e..9ca8a4ad8 100644 --- a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/material/vo/MpMaterialUploadPermanentReqVO.java +++ b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/material/vo/MpMaterialUploadPermanentReqVO.java @@ -15,15 +15,15 @@ import javax.validation.constraints.NotNull; @Data public class MpMaterialUploadPermanentReqVO { - @Schema(description = "公众号账号的编号", required = true, example = "2048") + @Schema(description = "公众号账号的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "2048") @NotNull(message = "公众号账号的编号不能为空") private Long accountId; - @Schema(description = "文件类型 参见 WxConsts.MediaFileType 枚举", required = true, example = "image") + @Schema(description = "文件类型 参见 WxConsts.MediaFileType 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "image") @NotEmpty(message = "文件类型不能为空") private String type; - @Schema(description = "文件附件", required = true) + @Schema(description = "文件附件", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "文件不能为空") @JsonIgnore // 避免被操作日志,进行序列化,导致报错 private MultipartFile file; diff --git a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/material/vo/MpMaterialUploadRespVO.java b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/material/vo/MpMaterialUploadRespVO.java index d6a257e03..0174cbcc2 100644 --- a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/material/vo/MpMaterialUploadRespVO.java +++ b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/material/vo/MpMaterialUploadRespVO.java @@ -7,10 +7,10 @@ import lombok.Data; @Data public class MpMaterialUploadRespVO { - @Schema(description = "素材的 media_id", required = true, example = "123") + @Schema(description = "素材的 media_id", requiredMode = Schema.RequiredMode.REQUIRED, example = "123") private String mediaId; - @Schema(description = "素材的 URL", required = true, example = "https://www.iocoder.cn/1.png") + @Schema(description = "素材的 URL", requiredMode = Schema.RequiredMode.REQUIRED, example = "https://www.iocoder.cn/1.png") private String url; } diff --git a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/material/vo/MpMaterialUploadTemporaryReqVO.java b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/material/vo/MpMaterialUploadTemporaryReqVO.java index 5d0f7cafe..abd6d06d1 100644 --- a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/material/vo/MpMaterialUploadTemporaryReqVO.java +++ b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/material/vo/MpMaterialUploadTemporaryReqVO.java @@ -12,15 +12,15 @@ import javax.validation.constraints.NotNull; @Data public class MpMaterialUploadTemporaryReqVO { - @Schema(description = "公众号账号的编号", required = true, example = "2048") + @Schema(description = "公众号账号的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "2048") @NotNull(message = "公众号账号的编号不能为空") private Long accountId; - @Schema(description = "文件类型 参见 WxConsts.MediaFileType 枚举", required = true, example = "image") + @Schema(description = "文件类型 参见 WxConsts.MediaFileType 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "image") @NotEmpty(message = "文件类型不能为空") private String type; - @Schema(description = "文件附件", required = true) + @Schema(description = "文件附件", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "文件不能为空") @JsonIgnore // 避免被操作日志,进行序列化,导致报错 private MultipartFile file; diff --git a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/menu/vo/MpMenuRespVO.java b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/menu/vo/MpMenuRespVO.java index 0d51b1064..253e2d117 100644 --- a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/menu/vo/MpMenuRespVO.java +++ b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/menu/vo/MpMenuRespVO.java @@ -13,16 +13,16 @@ import java.util.Date; @ToString(callSuper = true) public class MpMenuRespVO extends MpMenuBaseVO { - @Schema(description = "主键", required = true, example = "1024") + @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private Long id; - @Schema(description = "公众号账号的编号", required = true, example = "2048") + @Schema(description = "公众号账号的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "2048") private Long accountId; - @Schema(description = "公众号 appId", required = true, example = "wx1234567890ox") + @Schema(description = "公众号 appId", requiredMode = Schema.RequiredMode.REQUIRED, example = "wx1234567890ox") private String appId; - @Schema(description = "创建时间", required = true) + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) private Date createTime; } diff --git a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/menu/vo/MpMenuSaveReqVO.java b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/menu/vo/MpMenuSaveReqVO.java index 43b7ff733..580e62845 100644 --- a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/menu/vo/MpMenuSaveReqVO.java +++ b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/menu/vo/MpMenuSaveReqVO.java @@ -12,7 +12,7 @@ import java.util.List; @Data public class MpMenuSaveReqVO { - @Schema(description = "公众号账号的编号", required = true, example = "2048") + @Schema(description = "公众号账号的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "2048") @NotNull(message = "公众号账号的编号不能为空") private Long accountId; diff --git a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/message/vo/autoreply/MpAutoReplyCreateReqVO.java b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/message/vo/autoreply/MpAutoReplyCreateReqVO.java index 1e2694886..5eafb3693 100644 --- a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/message/vo/autoreply/MpAutoReplyCreateReqVO.java +++ b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/message/vo/autoreply/MpAutoReplyCreateReqVO.java @@ -13,7 +13,7 @@ import javax.validation.constraints.NotNull; @ToString(callSuper = true) public class MpAutoReplyCreateReqVO extends MpAutoReplyBaseVO { - @Schema(description = "公众号账号的编号", required = true, example = "1024") + @Schema(description = "公众号账号的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") @NotNull(message = "公众号账号的编号不能为空") private Long accountId; diff --git a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/message/vo/autoreply/MpAutoReplyPageReqVO.java b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/message/vo/autoreply/MpAutoReplyPageReqVO.java index ee3794f56..a68029e92 100644 --- a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/message/vo/autoreply/MpAutoReplyPageReqVO.java +++ b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/message/vo/autoreply/MpAutoReplyPageReqVO.java @@ -14,7 +14,7 @@ import javax.validation.constraints.NotNull; @ToString(callSuper = true) public class MpAutoReplyPageReqVO extends PageParam { - @Schema(description = "公众号账号的编号", required = true, example = "1") + @Schema(description = "公众号账号的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotNull(message = "公众号账号的编号不能为空") private Long accountId; diff --git a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/message/vo/autoreply/MpAutoReplyRespVO.java b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/message/vo/autoreply/MpAutoReplyRespVO.java index 9bd1aaaa7..65e0c4522 100644 --- a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/message/vo/autoreply/MpAutoReplyRespVO.java +++ b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/message/vo/autoreply/MpAutoReplyRespVO.java @@ -13,15 +13,15 @@ import java.util.Date; @ToString(callSuper = true) public class MpAutoReplyRespVO extends MpAutoReplyBaseVO { - @Schema(description = "主键", required = true, example = "1024") + @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private Long id; - @Schema(description = "公众号账号的编号", required = true, example = "1024") + @Schema(description = "公众号账号的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private Long accountId; - @Schema(description = "公众号 appId", required = true, example = "wx1234567890") + @Schema(description = "公众号 appId", requiredMode = Schema.RequiredMode.REQUIRED, example = "wx1234567890") private String appId; - @Schema(description = "创建时间", required = true) + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) private Date createTime; } diff --git a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/message/vo/autoreply/MpAutoReplyUpdateReqVO.java b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/message/vo/autoreply/MpAutoReplyUpdateReqVO.java index 5478c687b..92095d773 100644 --- a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/message/vo/autoreply/MpAutoReplyUpdateReqVO.java +++ b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/message/vo/autoreply/MpAutoReplyUpdateReqVO.java @@ -13,7 +13,7 @@ import javax.validation.constraints.NotNull; @ToString(callSuper = true) public class MpAutoReplyUpdateReqVO extends MpAutoReplyBaseVO { - @Schema(description = "主键", required = true, example = "1024") + @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") @NotNull(message = "主键不能为空") private Long id; diff --git a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/message/vo/message/MpMessagePageReqVO.java b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/message/vo/message/MpMessagePageReqVO.java index b4ead5705..3ca643ca6 100644 --- a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/message/vo/message/MpMessagePageReqVO.java +++ b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/message/vo/message/MpMessagePageReqVO.java @@ -18,7 +18,7 @@ import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_ @ToString(callSuper = true) public class MpMessagePageReqVO extends PageParam { - @Schema(description = "公众号账号的编号", required = true, example = "1024") + @Schema(description = "公众号账号的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") @NotNull(message = "公众号账号的编号不能为空") private Long accountId; diff --git a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/message/vo/message/MpMessageRespVO.java b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/message/vo/message/MpMessageRespVO.java index 3e2bfef60..ac2c49c9f 100644 --- a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/message/vo/message/MpMessageRespVO.java +++ b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/message/vo/message/MpMessageRespVO.java @@ -13,25 +13,25 @@ import java.util.List; @Data public class MpMessageRespVO { - @Schema(description = "主键", required = true, example = "1024") + @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private Integer id; - @Schema(description = "微信公众号消息 id", required = true, example = "23953173569869169") + @Schema(description = "微信公众号消息 id", requiredMode = Schema.RequiredMode.REQUIRED, example = "23953173569869169") private Long msgId; - @Schema(description = "公众号账号的编号", required = true, example = "1") + @Schema(description = "公众号账号的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Long accountId; - @Schema(description = "公众号账号的 appid", required = true, example = "wx1234567890") + @Schema(description = "公众号账号的 appid", requiredMode = Schema.RequiredMode.REQUIRED, example = "wx1234567890") private String appId; - @Schema(description = "公众号粉丝编号", required = true, example = "2048") + @Schema(description = "公众号粉丝编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "2048") private Long userId; - @Schema(description = "公众号粉丝标志", required = true, example = "o6_bmjrPTlm6_2sgVt7hMZOPfL2M") + @Schema(description = "公众号粉丝标志", requiredMode = Schema.RequiredMode.REQUIRED, example = "o6_bmjrPTlm6_2sgVt7hMZOPfL2M") private String openid; - @Schema(description = "消息类型 参见 WxConsts.XmlMsgType 枚举", required = true, example = "text") + @Schema(description = "消息类型 参见 WxConsts.XmlMsgType 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "text") private String type; - @Schema(description = "消息来源 参见 MpMessageSendFromEnum 枚举", required = true, example = "1") + @Schema(description = "消息来源 参见 MpMessageSendFromEnum 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Integer sendFrom; // ========= 普通消息内容 https://developers.weixin.qq.com/doc/offiaccount/Message_Management/Receiving_standard_messages.html @@ -95,7 +95,7 @@ public class MpMessageRespVO { @Schema(description = "事件 Key 参见 WxConsts.EventType 枚举", example = "qrscene_123456") private String eventKey; - @Schema(description = "创建时间", required = true) + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) private Date createTime; } diff --git a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/message/vo/message/MpMessageSendReqVO.java b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/message/vo/message/MpMessageSendReqVO.java index 465cbff60..8e833d443 100644 --- a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/message/vo/message/MpMessageSendReqVO.java +++ b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/message/vo/message/MpMessageSendReqVO.java @@ -14,37 +14,37 @@ import java.util.List; @Data public class MpMessageSendReqVO { - @Schema(description = "公众号粉丝的编号", required = true, example = "1024") + @Schema(description = "公众号粉丝的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") @NotNull(message = "公众号粉丝的编号不能为空") private Long userId; // ========== 消息内容 ========== - @Schema(description = "消息类型 TEXT/IMAGE/VOICE/VIDEO/NEWS", required = true, example = "text") + @Schema(description = "消息类型 TEXT/IMAGE/VOICE/VIDEO/NEWS", requiredMode = Schema.RequiredMode.REQUIRED, example = "text") @NotEmpty(message = "消息类型不能为空") public String type; - @Schema(description = "消息内容", required = true, example = "你好呀") + @Schema(description = "消息内容", requiredMode = Schema.RequiredMode.REQUIRED, example = "你好呀") @NotEmpty(message = "消息内容不能为空", groups = TextMessageGroup.class) private String content; - @Schema(description = "媒体 ID", required = true, example = "qqc_2Fot30Jse-HDoZmo5RrUDijz2nGUkP") + @Schema(description = "媒体 ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "qqc_2Fot30Jse-HDoZmo5RrUDijz2nGUkP") @NotEmpty(message = "消息内容不能为空", groups = {ImageMessageGroup.class, VoiceMessageGroup.class, VideoMessageGroup.class}) private String mediaId; - @Schema(description = "标题", required = true, example = "没有标题") + @Schema(description = "标题", requiredMode = Schema.RequiredMode.REQUIRED, example = "没有标题") @NotEmpty(message = "消息内容不能为空", groups = VideoMessageGroup.class) private String title; - @Schema(description = "描述", required = true, example = "你猜") + @Schema(description = "描述", requiredMode = Schema.RequiredMode.REQUIRED, example = "你猜") @NotEmpty(message = "消息描述不能为空", groups = VideoMessageGroup.class) private String description; - @Schema(description = "缩略图的媒体 id", required = true, example = "qqc_2Fot30Jse-HDoZmo5RrUDijz2nGUkP") + @Schema(description = "缩略图的媒体 id", requiredMode = Schema.RequiredMode.REQUIRED, example = "qqc_2Fot30Jse-HDoZmo5RrUDijz2nGUkP") @NotEmpty(message = "缩略图的媒体 id 不能为空", groups = MusicMessageGroup.class) private String thumbMediaId; - @Schema(description = "图文消息", required = true) + @Schema(description = "图文消息", requiredMode = Schema.RequiredMode.REQUIRED) @Valid @NotNull(message = "图文消息不能为空", groups = NewsMessageGroup.class) private List articles; diff --git a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/news/vo/MpDraftPageReqVO.java b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/news/vo/MpDraftPageReqVO.java index 5c285f627..62bc6f8e5 100644 --- a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/news/vo/MpDraftPageReqVO.java +++ b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/news/vo/MpDraftPageReqVO.java @@ -14,7 +14,7 @@ import javax.validation.constraints.NotNull; @ToString(callSuper = true) public class MpDraftPageReqVO extends PageParam { - @Schema(description = "公众号账号的编号", required = true, example = "1024") + @Schema(description = "公众号账号的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") @NotNull(message = "公众号账号的编号不能为空") private Long accountId; diff --git a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/news/vo/MpFreePublishPageReqVO.java b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/news/vo/MpFreePublishPageReqVO.java index 51f2c6c74..da36248f0 100644 --- a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/news/vo/MpFreePublishPageReqVO.java +++ b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/news/vo/MpFreePublishPageReqVO.java @@ -14,7 +14,7 @@ import javax.validation.constraints.NotNull; @ToString(callSuper = true) public class MpFreePublishPageReqVO extends PageParam { - @Schema(description = "公众号账号的编号", required = true, example = "1024") + @Schema(description = "公众号账号的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") @NotNull(message = "公众号账号的编号不能为空") private Long accountId; diff --git a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/open/vo/MpOpenCheckSignatureReqVO.java b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/open/vo/MpOpenCheckSignatureReqVO.java index 67dfa6232..c0c73a8ed 100644 --- a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/open/vo/MpOpenCheckSignatureReqVO.java +++ b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/open/vo/MpOpenCheckSignatureReqVO.java @@ -9,19 +9,19 @@ import javax.validation.constraints.NotEmpty; @Data public class MpOpenCheckSignatureReqVO { - @Schema(description = "微信加密签名", required = true, example = "490eb57f448b87bd5f20ccef58aa4de46aa1908e") + @Schema(description = "微信加密签名", requiredMode = Schema.RequiredMode.REQUIRED, example = "490eb57f448b87bd5f20ccef58aa4de46aa1908e") @NotEmpty(message = "微信加密签名不能为空") private String signature; - @Schema(description = "时间戳", required = true, example = "1672587863") + @Schema(description = "时间戳", requiredMode = Schema.RequiredMode.REQUIRED, example = "1672587863") @NotEmpty(message = "时间戳不能为空") private String timestamp; - @Schema(description = "随机数", required = true, example = "1827365808") + @Schema(description = "随机数", requiredMode = Schema.RequiredMode.REQUIRED, example = "1827365808") @NotEmpty(message = "随机数不能为空") private String nonce; - @Schema(description = "随机字符串", required = true, example = "2721154047828672511") + @Schema(description = "随机字符串", requiredMode = Schema.RequiredMode.REQUIRED, example = "2721154047828672511") @NotEmpty(message = "随机字符串不能为空") @SuppressWarnings("SpellCheckingInspection") private String echostr; diff --git a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/open/vo/MpOpenHandleMessageReqVO.java b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/open/vo/MpOpenHandleMessageReqVO.java index 4f9e51699..cb8f9abf2 100644 --- a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/open/vo/MpOpenHandleMessageReqVO.java +++ b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/open/vo/MpOpenHandleMessageReqVO.java @@ -12,19 +12,19 @@ public class MpOpenHandleMessageReqVO { public static final String ENCRYPT_TYPE_AES = "aes"; - @Schema(description = "微信加密签名", required = true, example = "490eb57f448b87bd5f20ccef58aa4de46aa1908e") + @Schema(description = "微信加密签名", requiredMode = Schema.RequiredMode.REQUIRED, example = "490eb57f448b87bd5f20ccef58aa4de46aa1908e") @NotEmpty(message = "微信加密签名不能为空") private String signature; - @Schema(description = "时间戳", required = true, example = "1672587863") + @Schema(description = "时间戳", requiredMode = Schema.RequiredMode.REQUIRED, example = "1672587863") @NotEmpty(message = "时间戳不能为空") private String timestamp; - @Schema(description = "随机数", required = true, example = "1827365808") + @Schema(description = "随机数", requiredMode = Schema.RequiredMode.REQUIRED, example = "1827365808") @NotEmpty(message = "随机数不能为空") private String nonce; - @Schema(description = "粉丝 openid", required = true, example = "oz-Jdtyn-WGm4C4I5Z-nvBMO_ZfY") + @Schema(description = "粉丝 openid", requiredMode = Schema.RequiredMode.REQUIRED, example = "oz-Jdtyn-WGm4C4I5Z-nvBMO_ZfY") @NotEmpty(message = "粉丝 openid 不能为空") private String openid; diff --git a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/statistics/vo/MpStatisticsGetReqVO.java b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/statistics/vo/MpStatisticsGetReqVO.java index 19b8537e6..904c5d13e 100644 --- a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/statistics/vo/MpStatisticsGetReqVO.java +++ b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/statistics/vo/MpStatisticsGetReqVO.java @@ -13,7 +13,7 @@ import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_ @Data public class MpStatisticsGetReqVO { - @Schema(description = "公众号账号的编号", required = true, example = "1024") + @Schema(description = "公众号账号的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") @NotNull(message = "公众号账号的编号不能为空") private Long accountId; diff --git a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/statistics/vo/MpStatisticsInterfaceSummaryRespVO.java b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/statistics/vo/MpStatisticsInterfaceSummaryRespVO.java index 78db7666c..c0db71a83 100644 --- a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/statistics/vo/MpStatisticsInterfaceSummaryRespVO.java +++ b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/statistics/vo/MpStatisticsInterfaceSummaryRespVO.java @@ -9,19 +9,19 @@ import java.util.Date; @Data public class MpStatisticsInterfaceSummaryRespVO { - @Schema(description = "日期", required = true) + @Schema(description = "日期", requiredMode = Schema.RequiredMode.REQUIRED) private Date refDate; - @Schema(description = "通过服务器配置地址获得消息后,被动回复粉丝消息的次数", required = true, example = "10") + @Schema(description = "通过服务器配置地址获得消息后,被动回复粉丝消息的次数", requiredMode = Schema.RequiredMode.REQUIRED, example = "10") private Integer callbackCount; - @Schema(description = "上述动作的失败次数", required = true, example = "20") + @Schema(description = "上述动作的失败次数", requiredMode = Schema.RequiredMode.REQUIRED, example = "20") private Integer failCount; - @Schema(description = "总耗时,除以 callback_count 即为平均耗时", required = true, example = "30") + @Schema(description = "总耗时,除以 callback_count 即为平均耗时", requiredMode = Schema.RequiredMode.REQUIRED, example = "30") private Integer totalTimeCost; - @Schema(description = "最大耗时", required = true, example = "40") + @Schema(description = "最大耗时", requiredMode = Schema.RequiredMode.REQUIRED, example = "40") private Integer maxTimeCost; } diff --git a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/statistics/vo/MpStatisticsUpstreamMessageRespVO.java b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/statistics/vo/MpStatisticsUpstreamMessageRespVO.java index 0f2a71916..4c05a82e7 100644 --- a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/statistics/vo/MpStatisticsUpstreamMessageRespVO.java +++ b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/statistics/vo/MpStatisticsUpstreamMessageRespVO.java @@ -9,13 +9,13 @@ import java.util.Date; @Data public class MpStatisticsUpstreamMessageRespVO { - @Schema(description = "日期", required = true) + @Schema(description = "日期", requiredMode = Schema.RequiredMode.REQUIRED) private Date refDate; - @Schema(description = "上行发送了(向公众号发送了)消息的粉丝数", required = true, example = "10") + @Schema(description = "上行发送了(向公众号发送了)消息的粉丝数", requiredMode = Schema.RequiredMode.REQUIRED, example = "10") private Integer messageUser; - @Schema(description = "上行发送了消息的消息总数", required = true, example = "20") + @Schema(description = "上行发送了消息的消息总数", requiredMode = Schema.RequiredMode.REQUIRED, example = "20") private Integer messageCount; } diff --git a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/statistics/vo/MpStatisticsUserCumulateRespVO.java b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/statistics/vo/MpStatisticsUserCumulateRespVO.java index 630c193b5..300b29ce4 100644 --- a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/statistics/vo/MpStatisticsUserCumulateRespVO.java +++ b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/statistics/vo/MpStatisticsUserCumulateRespVO.java @@ -9,10 +9,10 @@ import java.util.Date; @Data public class MpStatisticsUserCumulateRespVO { - @Schema(description = "日期", required = true) + @Schema(description = "日期", requiredMode = Schema.RequiredMode.REQUIRED) private Date refDate; - @Schema(description = "累计粉丝量", required = true, example = "10") + @Schema(description = "累计粉丝量", requiredMode = Schema.RequiredMode.REQUIRED, example = "10") private Integer cumulateUser; } diff --git a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/statistics/vo/MpStatisticsUserSummaryRespVO.java b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/statistics/vo/MpStatisticsUserSummaryRespVO.java index b99f554ab..4e957a601 100644 --- a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/statistics/vo/MpStatisticsUserSummaryRespVO.java +++ b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/statistics/vo/MpStatisticsUserSummaryRespVO.java @@ -9,16 +9,16 @@ import java.util.Date; @Data public class MpStatisticsUserSummaryRespVO { - @Schema(description = "日期", required = true) + @Schema(description = "日期", requiredMode = Schema.RequiredMode.REQUIRED) private Date refDate; - @Schema(description = "粉丝来源", required = true, example = "0") + @Schema(description = "粉丝来源", requiredMode = Schema.RequiredMode.REQUIRED, example = "0") private Integer userSource; - @Schema(description = "新关注的粉丝数量", required = true, example = "10") + @Schema(description = "新关注的粉丝数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "10") private Integer newUser; - @Schema(description = "取消关注的粉丝数量", required = true, example = "20") + @Schema(description = "取消关注的粉丝数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "20") private Integer cancelUser; } diff --git a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/tag/vo/MpTagBaseVO.java b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/tag/vo/MpTagBaseVO.java index f9cc47c35..dc034e3e8 100644 --- a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/tag/vo/MpTagBaseVO.java +++ b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/tag/vo/MpTagBaseVO.java @@ -14,7 +14,7 @@ import javax.validation.constraints.NotEmpty; @Data public class MpTagBaseVO { - @Schema(description = "标签名", required = true, example = "土豆") + @Schema(description = "标签名", requiredMode = Schema.RequiredMode.REQUIRED, example = "土豆") @NotEmpty(message = "标签名不能为空") private String name; diff --git a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/tag/vo/MpTagCreateReqVO.java b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/tag/vo/MpTagCreateReqVO.java index 25fc2093e..ba56a0271 100644 --- a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/tag/vo/MpTagCreateReqVO.java +++ b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/tag/vo/MpTagCreateReqVO.java @@ -13,7 +13,7 @@ import javax.validation.constraints.NotNull; @ToString(callSuper = true) public class MpTagCreateReqVO extends MpTagBaseVO { - @Schema(description = "公众号账号的编号", required = true, example = "2048") + @Schema(description = "公众号账号的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "2048") @NotNull(message = "公众号账号的编号不能为空") private Long accountId; diff --git a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/tag/vo/MpTagPageReqVO.java b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/tag/vo/MpTagPageReqVO.java index b2e3a8643..08cc0531b 100644 --- a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/tag/vo/MpTagPageReqVO.java +++ b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/tag/vo/MpTagPageReqVO.java @@ -14,7 +14,7 @@ import javax.validation.constraints.NotEmpty; @ToString(callSuper = true) public class MpTagPageReqVO extends PageParam { - @Schema(description = "公众号账号的编号", required = true, example = "2048") + @Schema(description = "公众号账号的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "2048") @NotEmpty(message = "公众号账号的编号不能为空") private Long accountId; diff --git a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/tag/vo/MpTagRespVO.java b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/tag/vo/MpTagRespVO.java index 3a9a1cd9e..19bf82583 100644 --- a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/tag/vo/MpTagRespVO.java +++ b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/tag/vo/MpTagRespVO.java @@ -13,13 +13,13 @@ import java.util.Date; @ToString(callSuper = true) public class MpTagRespVO extends MpTagBaseVO { - @Schema(description = "编号", required = true, example = "1024") + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private Long id; - @Schema(description = "此标签下粉丝数量", required = true, example = "0") + @Schema(description = "此标签下粉丝数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "0") private Integer count; - @Schema(description = "创建时间", required = true) + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) private Date createTime; } diff --git a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/tag/vo/MpTagSimpleRespVO.java b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/tag/vo/MpTagSimpleRespVO.java index 9918ef563..ca23be1c8 100644 --- a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/tag/vo/MpTagSimpleRespVO.java +++ b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/tag/vo/MpTagSimpleRespVO.java @@ -7,13 +7,13 @@ import lombok.Data; @Data public class MpTagSimpleRespVO { - @Schema(description = "编号", required = true, example = "1024") + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private Long id; - @Schema(description = "公众号的标签编号", required = true, example = "2048") + @Schema(description = "公众号的标签编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "2048") private Long tagId; - @Schema(description = "标签名称", required = true, example = "快乐") + @Schema(description = "标签名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "快乐") private String name; } diff --git a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/tag/vo/MpTagUpdateReqVO.java b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/tag/vo/MpTagUpdateReqVO.java index c8032ca96..cb61f1afb 100644 --- a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/tag/vo/MpTagUpdateReqVO.java +++ b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/tag/vo/MpTagUpdateReqVO.java @@ -13,7 +13,7 @@ import javax.validation.constraints.NotNull; @ToString(callSuper = true) public class MpTagUpdateReqVO extends MpTagBaseVO { - @Schema(description = "编号", required = true) + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "编号不能为空") private Long id; diff --git a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/user/vo/MpUserPageReqVO.java b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/user/vo/MpUserPageReqVO.java index c6ef1fad3..814a4dbb8 100644 --- a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/user/vo/MpUserPageReqVO.java +++ b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/user/vo/MpUserPageReqVO.java @@ -14,7 +14,7 @@ import javax.validation.constraints.NotNull; @ToString(callSuper = true) public class MpUserPageReqVO extends PageParam { - @Schema(description = "公众号账号的编号", required = true, example = "2048") + @Schema(description = "公众号账号的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "2048") @NotNull(message = "公众号账号的编号不能为空") private Long accountId; diff --git a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/user/vo/MpUserRespVO.java b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/user/vo/MpUserRespVO.java index af2b1de74..a0adcd0a5 100644 --- a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/user/vo/MpUserRespVO.java +++ b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/user/vo/MpUserRespVO.java @@ -11,15 +11,15 @@ import java.util.List; @Data public class MpUserRespVO { - @Schema(description = "编号", required = true, example = "1024") + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private Long id; - @Schema(description = "公众号粉丝标识", required = true, example = "o6_bmjrPTlm6_2sgVt7hMZOPfL2M") + @Schema(description = "公众号粉丝标识", requiredMode = Schema.RequiredMode.REQUIRED, example = "o6_bmjrPTlm6_2sgVt7hMZOPfL2M") private String openid; - @Schema(description = "关注状态 参见 CommonStatusEnum 枚举", required = true, example = "1") + @Schema(description = "关注状态 参见 CommonStatusEnum 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Integer subscribeStatus; - @Schema(description = "关注时间", required = true) + @Schema(description = "关注时间", requiredMode = Schema.RequiredMode.REQUIRED) private LocalDateTime subscribeTime; @Schema(description = "取消关注时间") private LocalDateTime unsubscribeTime; @@ -42,12 +42,12 @@ public class MpUserRespVO { @Schema(description = "标签编号数组", example = "1,2,3") private List tagIds; - @Schema(description = "公众号账号的编号", required = true, example = "1") + @Schema(description = "公众号账号的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Long accountId; - @Schema(description = "公众号账号的 appId", required = true, example = "wx1234567890") + @Schema(description = "公众号账号的 appId", requiredMode = Schema.RequiredMode.REQUIRED, example = "wx1234567890") private String appId; - @Schema(description = "创建时间", required = true) + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) private Date createTime; } diff --git a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/user/vo/MpUserUpdateReqVO.java b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/user/vo/MpUserUpdateReqVO.java index 6174f6c4c..3089ed3d3 100644 --- a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/user/vo/MpUserUpdateReqVO.java +++ b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/user/vo/MpUserUpdateReqVO.java @@ -10,7 +10,7 @@ import java.util.List; @Data public class MpUserUpdateReqVO { - @Schema(description = "编号", required = true, example = "1024") + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") @NotNull(message = "编号不能为空") private Long id; diff --git a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/demo/vo/PayDemoOrderCreateReqVO.java b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/demo/vo/PayDemoOrderCreateReqVO.java index 8b129ce8a..9960ada48 100644 --- a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/demo/vo/PayDemoOrderCreateReqVO.java +++ b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/demo/vo/PayDemoOrderCreateReqVO.java @@ -10,7 +10,7 @@ import javax.validation.constraints.NotNull; @Data public class PayDemoOrderCreateReqVO { - @Schema(description = "商品编号", required = true, example = "17682") + @Schema(description = "商品编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "17682") @NotNull(message = "商品编号不能为空") private Long spuId; diff --git a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/demo/vo/PayDemoOrderRespVO.java b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/demo/vo/PayDemoOrderRespVO.java index fa56d4a84..d825cd18a 100644 --- a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/demo/vo/PayDemoOrderRespVO.java +++ b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/demo/vo/PayDemoOrderRespVO.java @@ -12,22 +12,22 @@ import java.time.LocalDateTime; @Data public class PayDemoOrderRespVO { - @Schema(description = "订单编号", required = true, example = "1024") + @Schema(description = "订单编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private Long id; - @Schema(description = "用户编号", required = true, example = "23199") + @Schema(description = "用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "23199") private Long userId; - @Schema(description = "商品编号", required = true, example = "17682") + @Schema(description = "商品编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "17682") private Long spuId; @Schema(description = "商家备注", example = "李四") private String spuName; - @Schema(description = "价格,单位:分", required = true, example = "30381") + @Schema(description = "价格,单位:分", requiredMode = Schema.RequiredMode.REQUIRED, example = "30381") private Integer price; - @Schema(description = "是否已支付", required = true) + @Schema(description = "是否已支付", requiredMode = Schema.RequiredMode.REQUIRED) private Boolean payed; @Schema(description = "支付订单编号", example = "16863") @@ -42,13 +42,13 @@ public class PayDemoOrderRespVO { @Schema(description = "支付退款编号", example = "23366") private Long payRefundId; - @Schema(description = "退款金额,单位:分", required = true, example = "14039") + @Schema(description = "退款金额,单位:分", requiredMode = Schema.RequiredMode.REQUIRED, example = "14039") private Integer refundPrice; @Schema(description = "退款时间") private LocalDateTime refundTime; - @Schema(description = "创建时间", required = true) + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) private LocalDateTime createTime; } diff --git a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/app/PayAppBaseVO.java b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/app/PayAppBaseVO.java index 54e62320d..86ea5dce7 100644 --- a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/app/PayAppBaseVO.java +++ b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/app/PayAppBaseVO.java @@ -10,26 +10,26 @@ import javax.validation.constraints.*; @Data public class PayAppBaseVO { - @Schema(description = "应用名", required = true) + @Schema(description = "应用名", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "应用名不能为空") private String name; - @Schema(description = "开启状态", required = true) + @Schema(description = "开启状态", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "开启状态不能为空") private Integer status; @Schema(description = "备注") private String remark; - @Schema(description = "支付结果的回调地址", required = true) + @Schema(description = "支付结果的回调地址", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "支付结果的回调地址不能为空") private String payNotifyUrl; - @Schema(description = "退款结果的回调地址", required = true) + @Schema(description = "退款结果的回调地址", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "退款结果的回调地址不能为空") private String refundNotifyUrl; - @Schema(description = "商户编号", required = true) + @Schema(description = "商户编号", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "商户编号不能为空") private Long merchantId; diff --git a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/app/PayAppPageItemRespVO.java b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/app/PayAppPageItemRespVO.java index 72655db05..99c095a32 100644 --- a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/app/PayAppPageItemRespVO.java +++ b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/app/PayAppPageItemRespVO.java @@ -14,10 +14,10 @@ import java.util.Set; @ToString(callSuper = true) public class PayAppPageItemRespVO extends PayAppBaseVO { - @Schema(description = "应用编号", required = true) + @Schema(description = "应用编号", requiredMode = Schema.RequiredMode.REQUIRED) private Long id; - @Schema(description = "创建时间", required = true) + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) private LocalDateTime createTime; /** @@ -29,15 +29,15 @@ public class PayAppPageItemRespVO extends PayAppBaseVO { @Data public static class PayMerchant { - @Schema(description = "商户编号", required = true, example = "1") + @Schema(description = "商户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Long id; - @Schema(description = "商户名称", required = true, example = "研发部") + @Schema(description = "商户名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "研发部") private String name; } - @Schema(description = "渠道编码集合", required = true, example = "alipay_pc,alipay_wap...") + @Schema(description = "渠道编码集合", requiredMode = Schema.RequiredMode.REQUIRED, example = "alipay_pc,alipay_wap...") private Set channelCodes; diff --git a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/app/PayAppRespVO.java b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/app/PayAppRespVO.java index 0bb0c5563..78e6b20b0 100644 --- a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/app/PayAppRespVO.java +++ b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/app/PayAppRespVO.java @@ -10,10 +10,10 @@ import java.time.LocalDateTime; @ToString(callSuper = true) public class PayAppRespVO extends PayAppBaseVO { - @Schema(description = "应用编号", required = true) + @Schema(description = "应用编号", requiredMode = Schema.RequiredMode.REQUIRED) private Long id; - @Schema(description = "创建时间", required = true) + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) private LocalDateTime createTime; } diff --git a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/app/PayAppUpdateReqVO.java b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/app/PayAppUpdateReqVO.java index 2d940d5c2..66f865acb 100644 --- a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/app/PayAppUpdateReqVO.java +++ b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/app/PayAppUpdateReqVO.java @@ -9,7 +9,7 @@ import javax.validation.constraints.*; @ToString(callSuper = true) public class PayAppUpdateReqVO extends PayAppBaseVO { - @Schema(description = "应用编号", required = true) + @Schema(description = "应用编号", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "应用编号不能为空") private Long id; diff --git a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/app/PayAppUpdateStatusReqVO.java b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/app/PayAppUpdateStatusReqVO.java index 8454f5f2a..5ab4a53e3 100644 --- a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/app/PayAppUpdateStatusReqVO.java +++ b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/app/PayAppUpdateStatusReqVO.java @@ -9,11 +9,11 @@ import javax.validation.constraints.NotNull; @Data public class PayAppUpdateStatusReqVO { - @Schema(description = "商户编号", required = true, example = "1024") + @Schema(description = "商户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") @NotNull(message = "商户编号不能为空") private Long id; - @Schema(description = "状态,见 SysCommonStatusEnum 枚举", required = true, example = "1") + @Schema(description = "状态,见 SysCommonStatusEnum 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotNull(message = "状态不能为空") private Integer status; diff --git a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/channel/PayChannelBaseVO.java b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/channel/PayChannelBaseVO.java index a8f0c1ec9..155066f01 100644 --- a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/channel/PayChannelBaseVO.java +++ b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/channel/PayChannelBaseVO.java @@ -10,26 +10,26 @@ import javax.validation.constraints.*; @Data public class PayChannelBaseVO { - @Schema(description = "渠道编码", required = true) + @Schema(description = "渠道编码", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "渠道编码不能为空") private String code; - @Schema(description = "开启状态", required = true) + @Schema(description = "开启状态", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "开启状态不能为空") private Integer status; @Schema(description = "备注") private String remark; - @Schema(description = "渠道费率,单位:百分比", required = true) + @Schema(description = "渠道费率,单位:百分比", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "渠道费率,单位:百分比不能为空") private Double feeRate; - @Schema(description = "商户编号", required = true) + @Schema(description = "商户编号", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "商户编号不能为空") private Long merchantId; - @Schema(description = "应用编号", required = true) + @Schema(description = "应用编号", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "应用编号不能为空") private Long appId; diff --git a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/channel/PayChannelRespVO.java b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/channel/PayChannelRespVO.java index 5fa189e18..3defb466c 100644 --- a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/channel/PayChannelRespVO.java +++ b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/channel/PayChannelRespVO.java @@ -10,12 +10,12 @@ import java.time.LocalDateTime; @ToString(callSuper = true) public class PayChannelRespVO extends PayChannelBaseVO { - @Schema(description = "商户编号", required = true) + @Schema(description = "商户编号", requiredMode = Schema.RequiredMode.REQUIRED) private Long id; - @Schema(description = "创建时间", required = true) + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) private LocalDateTime createTime; - @Schema(description = "配置", required = true) + @Schema(description = "配置", requiredMode = Schema.RequiredMode.REQUIRED) private String config; } diff --git a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/channel/PayChannelUpdateReqVO.java b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/channel/PayChannelUpdateReqVO.java index 959c069b4..fc078dc70 100644 --- a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/channel/PayChannelUpdateReqVO.java +++ b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/channel/PayChannelUpdateReqVO.java @@ -9,7 +9,7 @@ import javax.validation.constraints.*; @ToString(callSuper = true) public class PayChannelUpdateReqVO extends PayChannelBaseVO { - @Schema(description = "商户编号", required = true) + @Schema(description = "商户编号", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "商户编号不能为空") private Long id; diff --git a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/merchant/PayMerchantBaseVO.java b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/merchant/PayMerchantBaseVO.java index dd8b3eddc..e2692ec85 100644 --- a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/merchant/PayMerchantBaseVO.java +++ b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/merchant/PayMerchantBaseVO.java @@ -11,15 +11,15 @@ import javax.validation.constraints.NotNull; @Data public class PayMerchantBaseVO { - @Schema(description = "商户全称", required = true) + @Schema(description = "商户全称", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "商户全称不能为空") private String name; - @Schema(description = "商户简称", required = true) + @Schema(description = "商户简称", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "商户简称不能为空") private String shortName; - @Schema(description = "开启状态", required = true) + @Schema(description = "开启状态", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "开启状态不能为空") private Integer status; diff --git a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/merchant/PayMerchantRespVO.java b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/merchant/PayMerchantRespVO.java index 3e150f71c..ca8d51884 100644 --- a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/merchant/PayMerchantRespVO.java +++ b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/merchant/PayMerchantRespVO.java @@ -13,13 +13,13 @@ import java.time.LocalDateTime; @ToString(callSuper = true) public class PayMerchantRespVO extends PayMerchantBaseVO { - @Schema(description = "商户编号", required = true) + @Schema(description = "商户编号", requiredMode = Schema.RequiredMode.REQUIRED) private Long id; - @Schema(description = "创建时间", required = true) + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) private LocalDateTime createTime; - @Schema(description = "商户号", required = true, example = "M233666999") + @Schema(description = "商户号", requiredMode = Schema.RequiredMode.REQUIRED, example = "M233666999") private String no; } diff --git a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/merchant/PayMerchantUpdateReqVO.java b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/merchant/PayMerchantUpdateReqVO.java index 2fd70e2d9..103c3d5a9 100644 --- a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/merchant/PayMerchantUpdateReqVO.java +++ b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/merchant/PayMerchantUpdateReqVO.java @@ -9,7 +9,7 @@ import javax.validation.constraints.*; @ToString(callSuper = true) public class PayMerchantUpdateReqVO extends PayMerchantBaseVO { - @Schema(description = "商户编号", required = true) + @Schema(description = "商户编号", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "商户编号不能为空") private Long id; diff --git a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/merchant/PayMerchantUpdateStatusReqVO.java b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/merchant/PayMerchantUpdateStatusReqVO.java index b42cd61f3..eb3e8f1cf 100644 --- a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/merchant/PayMerchantUpdateStatusReqVO.java +++ b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/merchant/PayMerchantUpdateStatusReqVO.java @@ -9,11 +9,11 @@ import javax.validation.constraints.NotNull; @Data public class PayMerchantUpdateStatusReqVO { - @Schema(description = "商户编号", required = true, example = "1024") + @Schema(description = "商户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") @NotNull(message = "商户编号不能为空") private Long id; - @Schema(description = "状态,见 SysCommonStatusEnum 枚举", required = true, example = "1") + @Schema(description = "状态,见 SysCommonStatusEnum 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotNull(message = "状态不能为空") private Integer status; diff --git a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/order/vo/PayOrderBaseVO.java b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/order/vo/PayOrderBaseVO.java index 123a119f8..e2c22aeed 100755 --- a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/order/vo/PayOrderBaseVO.java +++ b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/order/vo/PayOrderBaseVO.java @@ -17,11 +17,11 @@ import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_ @Data public class PayOrderBaseVO { - @Schema(description = "商户编号", required = true) + @Schema(description = "商户编号", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "商户编号不能为空") private Long merchantId; - @Schema(description = "应用编号", required = true) + @Schema(description = "应用编号", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "应用编号不能为空") private Long appId; @@ -31,27 +31,27 @@ public class PayOrderBaseVO { @Schema(description = "渠道编码") private String channelCode; - @Schema(description = "商户订单编号", required = true) + @Schema(description = "商户订单编号", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "商户订单编号不能为空") private String merchantOrderId; - @Schema(description = "商品标题", required = true) + @Schema(description = "商品标题", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "商品标题不能为空") private String subject; - @Schema(description = "商品描述", required = true) + @Schema(description = "商品描述", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "商品描述不能为空") private String body; - @Schema(description = "异步通知地址", required = true) + @Schema(description = "异步通知地址", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "异步通知地址不能为空") private String notifyUrl; - @Schema(description = "通知商户支付结果的回调状态", required = true) + @Schema(description = "通知商户支付结果的回调状态", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "通知商户支付结果的回调状态不能为空") private Integer notifyStatus; - @Schema(description = "支付金额,单位:分", required = true) + @Schema(description = "支付金额,单位:分", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "支付金额,单位:分不能为空") private Long amount; @@ -65,15 +65,15 @@ public class PayOrderBaseVO { @Schema(description = "渠道手续金额,单位:分") private Long channelFeeAmount; - @Schema(description = "支付状态", required = true) + @Schema(description = "支付状态", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "支付状态不能为空") private Integer status; - @Schema(description = "用户 IP", required = true) + @Schema(description = "用户 IP", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "用户 IP不能为空") private String userIp; - @Schema(description = "订单失效时间", required = true) + @Schema(description = "订单失效时间", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "订单失效时间不能为空") @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) private LocalDateTime expireTime; @@ -89,15 +89,15 @@ public class PayOrderBaseVO { @Schema(description = "支付成功的订单拓展单编号") private Long successExtensionId; - @Schema(description = "退款状态", required = true) + @Schema(description = "退款状态", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "退款状态不能为空") private Integer refundStatus; - @Schema(description = "退款次数", required = true) + @Schema(description = "退款次数", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "退款次数不能为空") private Integer refundTimes; - @Schema(description = "退款总金额,单位:分", required = true) + @Schema(description = "退款总金额,单位:分", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "退款总金额,单位:分不能为空") private Long refundAmount; diff --git a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/order/vo/PayOrderPageItemRespVO.java b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/order/vo/PayOrderPageItemRespVO.java index 8ca5f2162..53ceb13d2 100755 --- a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/order/vo/PayOrderPageItemRespVO.java +++ b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/order/vo/PayOrderPageItemRespVO.java @@ -13,10 +13,10 @@ import java.time.LocalDateTime; @ToString(callSuper = true) public class PayOrderPageItemRespVO extends PayOrderBaseVO { - @Schema(description = "支付订单编号", required = true) + @Schema(description = "支付订单编号", requiredMode = Schema.RequiredMode.REQUIRED) private Long id; - @Schema(description = "创建时间", required = true) + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) private LocalDateTime createTime; @Schema(description = "商户名称") diff --git a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/order/vo/PayOrderRespVO.java b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/order/vo/PayOrderRespVO.java index 57794982d..d48a4db08 100755 --- a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/order/vo/PayOrderRespVO.java +++ b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/order/vo/PayOrderRespVO.java @@ -13,10 +13,10 @@ import java.time.LocalDateTime; @ToString(callSuper = true) public class PayOrderRespVO extends PayOrderBaseVO { - @Schema(description = "支付订单编号", required = true) + @Schema(description = "支付订单编号", requiredMode = Schema.RequiredMode.REQUIRED) private Long id; - @Schema(description = "创建时间", required = true) + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) private LocalDateTime createTime; } diff --git a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/order/vo/PayOrderSubmitReqVO.java b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/order/vo/PayOrderSubmitReqVO.java index dac965aa0..09ac7381e 100644 --- a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/order/vo/PayOrderSubmitReqVO.java +++ b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/order/vo/PayOrderSubmitReqVO.java @@ -13,11 +13,11 @@ import java.util.Map; @Data public class PayOrderSubmitReqVO { - @Schema(description = "支付单编号", required = true, example = "1024") + @Schema(description = "支付单编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") @NotNull(message = "支付单编号不能为空") private Long id; - @Schema(description = "支付渠道", required = true, example = "wx_pub") + @Schema(description = "支付渠道", requiredMode = Schema.RequiredMode.REQUIRED, example = "wx_pub") @NotEmpty(message = "支付渠道不能为空") private String channelCode; diff --git a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/order/vo/PayOrderSubmitRespVO.java b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/order/vo/PayOrderSubmitRespVO.java index 162569626..8122b9667 100644 --- a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/order/vo/PayOrderSubmitRespVO.java +++ b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/order/vo/PayOrderSubmitRespVO.java @@ -11,10 +11,10 @@ import lombok.experimental.Accessors; @Data public class PayOrderSubmitRespVO { - @Schema(description = "展示模式", required = true, example = "url") // 参见 PayDisplayModeEnum 枚举 + @Schema(description = "展示模式", requiredMode = Schema.RequiredMode.REQUIRED, example = "url") // 参见 PayDisplayModeEnum 枚举 private String displayMode; - @Schema(description = "展示内容", required = true) + @Schema(description = "展示内容", requiredMode = Schema.RequiredMode.REQUIRED) private String displayContent; } diff --git a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/refund/vo/PayRefundBaseVO.java b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/refund/vo/PayRefundBaseVO.java index 54ac525d5..222c10bc6 100755 --- a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/refund/vo/PayRefundBaseVO.java +++ b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/refund/vo/PayRefundBaseVO.java @@ -15,70 +15,70 @@ import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_ @Data public class PayRefundBaseVO { - @Schema(description = "商户编号", required = true) + @Schema(description = "商户编号", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "商户编号不能为空") private Long merchantId; - @Schema(description = "应用编号", required = true) + @Schema(description = "应用编号", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "应用编号不能为空") private Long appId; - @Schema(description = "渠道编号", required = true) + @Schema(description = "渠道编号", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "渠道编号不能为空") private Long channelId; - @Schema(description = "渠道编码", required = true) + @Schema(description = "渠道编码", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "渠道编码不能为空") private String channelCode; - @Schema(description = "支付订单编号 pay_order 表id", required = true) + @Schema(description = "支付订单编号 pay_order 表id", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "支付订单编号 pay_order 表id不能为空") private Long orderId; - @Schema(description = "交易订单号 pay_extension 表no 字段", required = true) + @Schema(description = "交易订单号 pay_extension 表no 字段", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "交易订单号 pay_extension 表no 字段不能为空") private String tradeNo; - @Schema(description = "商户订单编号(商户系统生成)", required = true) + @Schema(description = "商户订单编号(商户系统生成)", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "商户订单编号(商户系统生成)不能为空") private String merchantOrderId; - @Schema(description = "商户退款订单号(商户系统生成)", required = true) + @Schema(description = "商户退款订单号(商户系统生成)", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "商户退款订单号(商户系统生成)不能为空") private String merchantRefundNo; - @Schema(description = "异步通知商户地址", required = true) + @Schema(description = "异步通知商户地址", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "异步通知商户地址不能为空") private String notifyUrl; - @Schema(description = "通知商户退款结果的回调状态", required = true) + @Schema(description = "通知商户退款结果的回调状态", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "通知商户退款结果的回调状态不能为空") private Integer notifyStatus; - @Schema(description = "退款状态", required = true) + @Schema(description = "退款状态", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "退款状态不能为空") private Integer status; - @Schema(description = "退款类型(部分退款,全部退款)", required = true) + @Schema(description = "退款类型(部分退款,全部退款)", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "退款类型(部分退款,全部退款)不能为空") private Integer type; - @Schema(description = "支付金额,单位分", required = true) + @Schema(description = "支付金额,单位分", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "支付金额,单位分不能为空") private Long payAmount; - @Schema(description = "退款金额,单位分", required = true) + @Schema(description = "退款金额,单位分", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "退款金额,单位分不能为空") private Long refundAmount; - @Schema(description = "退款原因", required = true) + @Schema(description = "退款原因", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "退款原因不能为空") private String reason; @Schema(description = "用户 IP") private String userIp; - @Schema(description = "渠道订单号,pay_order 中的channel_order_no 对应", required = true) + @Schema(description = "渠道订单号,pay_order 中的channel_order_no 对应", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "渠道订单号,pay_order 中的channel_order_no 对应不能为空") private String channelOrderNo; diff --git a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/refund/vo/PayRefundDetailsRespVO.java b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/refund/vo/PayRefundDetailsRespVO.java index a02099946..4f21dc1ef 100755 --- a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/refund/vo/PayRefundDetailsRespVO.java +++ b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/refund/vo/PayRefundDetailsRespVO.java @@ -14,7 +14,7 @@ import java.time.LocalDateTime; @ToString(callSuper = true) public class PayRefundDetailsRespVO extends PayRefundBaseVO { - @Schema(description = "支付退款编号", required = true) + @Schema(description = "支付退款编号", requiredMode = Schema.RequiredMode.REQUIRED) private Long id; @Schema(description = "商户名称") diff --git a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/refund/vo/PayRefundPageItemRespVO.java b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/refund/vo/PayRefundPageItemRespVO.java index df2d0aadd..be719565a 100755 --- a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/refund/vo/PayRefundPageItemRespVO.java +++ b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/refund/vo/PayRefundPageItemRespVO.java @@ -13,7 +13,7 @@ import java.time.LocalDateTime; @ToString(callSuper = true) public class PayRefundPageItemRespVO extends PayRefundBaseVO { - @Schema(description = "支付订单编号", required = true) + @Schema(description = "支付订单编号", requiredMode = Schema.RequiredMode.REQUIRED) private Long id; @Schema(description = "商户名称") @@ -25,7 +25,7 @@ public class PayRefundPageItemRespVO extends PayRefundBaseVO { @Schema(description = "渠道名称") private String channelCodeName; - @Schema(description = "创建时间", required = true) + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) private LocalDateTime createTime; } diff --git a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/refund/vo/PayRefundRespVO.java b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/refund/vo/PayRefundRespVO.java index 1374074e8..d3ee9f455 100755 --- a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/refund/vo/PayRefundRespVO.java +++ b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/refund/vo/PayRefundRespVO.java @@ -13,10 +13,10 @@ import java.time.LocalDateTime; @ToString(callSuper = true) public class PayRefundRespVO extends PayRefundBaseVO { - @Schema(description = "支付退款编号", required = true) + @Schema(description = "支付退款编号", requiredMode = Schema.RequiredMode.REQUIRED) private Long id; - @Schema(description = "创建时间", required = true) + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) private LocalDateTime createTime; } diff --git a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/refund/vo/PayRefundUpdateReqVO.java b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/refund/vo/PayRefundUpdateReqVO.java index bb28fe2d0..cf5b0be1f 100755 --- a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/refund/vo/PayRefundUpdateReqVO.java +++ b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/refund/vo/PayRefundUpdateReqVO.java @@ -9,7 +9,7 @@ import javax.validation.constraints.*; @ToString(callSuper = true) public class PayRefundUpdateReqVO extends PayRefundBaseVO { - @Schema(description = "支付退款编号", required = true) + @Schema(description = "支付退款编号", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "支付退款编号不能为空") private Long id; diff --git a/yudao-module-point/yudao-module-point-biz/src/main/java/cn/iocoder/yudao/module/point/controller/admin/pointconfig/PointConfigController.java b/yudao-module-point/yudao-module-point-biz/src/main/java/cn/iocoder/yudao/module/point/controller/admin/pointconfig/PointConfigController.java deleted file mode 100644 index 137d03050..000000000 --- a/yudao-module-point/yudao-module-point-biz/src/main/java/cn/iocoder/yudao/module/point/controller/admin/pointconfig/PointConfigController.java +++ /dev/null @@ -1,102 +0,0 @@ -package cn.iocoder.yudao.module.point.controller.admin.pointconfig; - -import org.springframework.web.bind.annotation.*; -import javax.annotation.Resource; -import org.springframework.validation.annotation.Validated; -import org.springframework.security.access.prepost.PreAuthorize; -import io.swagger.v3.oas.annotations.tags.Tag; -import io.swagger.v3.oas.annotations.Parameter; -import io.swagger.v3.oas.annotations.Operation; - -import javax.validation.constraints.*; -import javax.validation.*; -import javax.servlet.http.*; -import java.util.*; -import java.io.IOException; - -import cn.iocoder.yudao.framework.common.pojo.PageResult; -import cn.iocoder.yudao.framework.common.pojo.CommonResult; -import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; - -import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; - -import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog; -import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.*; - -import cn.iocoder.yudao.module.point.controller.admin.pointconfig.vo.*; -import cn.iocoder.yudao.module.point.dal.dataobject.pointconfig.PointConfigDO; -import cn.iocoder.yudao.module.point.convert.pointconfig.PointConfigConvert; -import cn.iocoder.yudao.module.point.service.pointconfig.PointConfigService; - -@Tag(name = "管理后台 - 积分设置") -@RestController -@RequestMapping("/point/config") -@Validated -public class PointConfigController { - - @Resource - private PointConfigService configService; - - @PostMapping("/create") - @Operation(summary = "创建积分设置") - @PreAuthorize("@ss.hasPermission('point:config:create')") - public CommonResult createConfig(@Valid @RequestBody PointConfigCreateReqVO createReqVO) { - return success(configService.createConfig(createReqVO)); - } - - @PutMapping("/update") - @Operation(summary = "更新积分设置") - @PreAuthorize("@ss.hasPermission('point:config:update')") - public CommonResult updateConfig(@Valid @RequestBody PointConfigUpdateReqVO updateReqVO) { - configService.updateConfig(updateReqVO); - return success(true); - } - - @DeleteMapping("/delete") - @Operation(summary = "删除积分设置") - @Parameter(name = "id", description = "编号", required = true) - @PreAuthorize("@ss.hasPermission('point:config:delete')") - public CommonResult deleteConfig(@RequestParam("id") Integer id) { - configService.deleteConfig(id); - return success(true); - } - - @GetMapping("/get") - @Operation(summary = "获得积分设置") - @Parameter(name = "id", description = "编号", required = true, example = "1024") - @PreAuthorize("@ss.hasPermission('point:config:query')") - public CommonResult getConfig(@RequestParam("id") Integer id) { - PointConfigDO config = configService.getConfig(id); - return success(PointConfigConvert.INSTANCE.convert(config)); - } - - @GetMapping("/list") - @Operation(summary = "获得积分设置列表") - @Parameter(name = "ids", description = "编号列表", required = true, example = "1024,2048") - @PreAuthorize("@ss.hasPermission('point:config:query')") - public CommonResult> getConfigList(@RequestParam("ids") Collection ids) { - List list = configService.getConfigList(ids); - return success(PointConfigConvert.INSTANCE.convertList(list)); - } - - @GetMapping("/page") - @Operation(summary = "获得积分设置分页") - @PreAuthorize("@ss.hasPermission('point:config:query')") - public CommonResult> getConfigPage(@Valid PointConfigPageReqVO pageVO) { - PageResult pageResult = configService.getConfigPage(pageVO); - return success(PointConfigConvert.INSTANCE.convertPage(pageResult)); - } - - @GetMapping("/export-excel") - @Operation(summary = "导出积分设置 Excel") - @PreAuthorize("@ss.hasPermission('point:config:export')") - @OperateLog(type = EXPORT) - public void exportConfigExcel(@Valid PointConfigExportReqVO exportReqVO, - HttpServletResponse response) throws IOException { - List list = configService.getConfigList(exportReqVO); - // 导出 Excel - List datas = PointConfigConvert.INSTANCE.convertList02(list); - ExcelUtils.write(response, "积分设置.xls", "数据", PointConfigExcelVO.class, datas); - } - -} diff --git a/yudao-module-point/yudao-module-point-biz/src/main/java/cn/iocoder/yudao/module/point/controller/admin/pointconfig/vo/PointConfigBaseVO.java b/yudao-module-point/yudao-module-point-biz/src/main/java/cn/iocoder/yudao/module/point/controller/admin/pointconfig/vo/PointConfigBaseVO.java deleted file mode 100644 index d1e900cc2..000000000 --- a/yudao-module-point/yudao-module-point-biz/src/main/java/cn/iocoder/yudao/module/point/controller/admin/pointconfig/vo/PointConfigBaseVO.java +++ /dev/null @@ -1,30 +0,0 @@ -package cn.iocoder.yudao.module.point.controller.admin.pointconfig.vo; - -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.*; -import java.util.*; -import java.math.BigDecimal; -import java.time.LocalDateTime; -import java.time.LocalDateTime; -import javax.validation.constraints.*; - -/** - * 积分设置 Base VO,提供给添加、修改、详细的子 VO 使用 - * 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成 - */ -@Data -public class PointConfigBaseVO { - - @Schema(description = "1 开启积分抵扣 0 关闭积分抵扣", example = "1") - private Integer tradeDeductEnable; - - @Schema(description = "积分抵扣,抵扣最低为分 以0.01表示 1积分抵扣0.01元(单位:元)", example = "13506") - private BigDecimal tradeDeductUnitPrice; - - @Schema(description = "积分抵扣最大值", example = "32428") - private Long tradeDeductMaxPrice; - - @Schema(description = "1元赠送多少分") - private Long tradeGivePoint; - -} diff --git a/yudao-module-point/yudao-module-point-biz/src/main/java/cn/iocoder/yudao/module/point/controller/admin/pointconfig/vo/PointConfigCreateReqVO.java b/yudao-module-point/yudao-module-point-biz/src/main/java/cn/iocoder/yudao/module/point/controller/admin/pointconfig/vo/PointConfigCreateReqVO.java deleted file mode 100644 index 4284f5e34..000000000 --- a/yudao-module-point/yudao-module-point-biz/src/main/java/cn/iocoder/yudao/module/point/controller/admin/pointconfig/vo/PointConfigCreateReqVO.java +++ /dev/null @@ -1,14 +0,0 @@ -package cn.iocoder.yudao.module.point.controller.admin.pointconfig.vo; - -import lombok.*; -import java.util.*; -import io.swagger.v3.oas.annotations.media.Schema; -import javax.validation.constraints.*; - -@Schema(description = "管理后台 - 积分设置创建 Request VO") -@Data -@EqualsAndHashCode(callSuper = true) -@ToString(callSuper = true) -public class PointConfigCreateReqVO extends PointConfigBaseVO { - -} diff --git a/yudao-module-point/yudao-module-point-biz/src/main/java/cn/iocoder/yudao/module/point/controller/admin/pointconfig/vo/PointConfigExcelVO.java b/yudao-module-point/yudao-module-point-biz/src/main/java/cn/iocoder/yudao/module/point/controller/admin/pointconfig/vo/PointConfigExcelVO.java deleted file mode 100644 index 0d01c7a5c..000000000 --- a/yudao-module-point/yudao-module-point-biz/src/main/java/cn/iocoder/yudao/module/point/controller/admin/pointconfig/vo/PointConfigExcelVO.java +++ /dev/null @@ -1,45 +0,0 @@ -package cn.iocoder.yudao.module.point.controller.admin.pointconfig.vo; - -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.*; -import java.util.*; -import java.math.BigDecimal; -import java.time.LocalDateTime; -import java.time.LocalDateTime; - -import com.alibaba.excel.annotation.ExcelProperty; -import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat; -import cn.iocoder.yudao.framework.excel.core.convert.DictConvert; - - -/** - * 积分设置 Excel VO - * - * @author QingX - */ -@Data -public class PointConfigExcelVO { - - @ExcelProperty("自增主键") - private Integer id; - - @ExcelProperty(value = "1 开启积分抵扣 0 关闭积分抵扣", converter = DictConvert.class) - @DictFormat("infra_boolean_string") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中 - private Integer tradeDeductEnable; - - @ExcelProperty("积分抵扣,抵扣最低为分 以0.01表示 1积分抵扣0.01元(单位:元)") - private BigDecimal tradeDeductUnitPrice; - - @ExcelProperty("积分抵扣最大值") - private Long tradeDeductMaxPrice; - - @ExcelProperty("1元赠送多少分") - private Long tradeGivePoint; - - @ExcelProperty("创建时间") - private LocalDateTime createTime; - - @ExcelProperty("变更时间") - private LocalDateTime updateTime; - -} diff --git a/yudao-module-point/yudao-module-point-biz/src/main/java/cn/iocoder/yudao/module/point/controller/admin/pointconfig/vo/PointConfigExportReqVO.java b/yudao-module-point/yudao-module-point-biz/src/main/java/cn/iocoder/yudao/module/point/controller/admin/pointconfig/vo/PointConfigExportReqVO.java deleted file mode 100644 index bcc712d29..000000000 --- a/yudao-module-point/yudao-module-point-biz/src/main/java/cn/iocoder/yudao/module/point/controller/admin/pointconfig/vo/PointConfigExportReqVO.java +++ /dev/null @@ -1,15 +0,0 @@ -package cn.iocoder.yudao.module.point.controller.admin.pointconfig.vo; - -import lombok.*; -import java.util.*; -import io.swagger.v3.oas.annotations.media.Schema; -import cn.iocoder.yudao.framework.common.pojo.PageParam; - -@Schema(description = "管理后台 - 积分设置 Excel 导出 Request VO,参数和 PointConfigPageReqVO 是一致的") -@Data -public class PointConfigExportReqVO { - - @Schema(description = "1 开启积分抵扣 0 关闭积分抵扣", example = "1") - private Integer tradeDeductEnable; - -} diff --git a/yudao-module-point/yudao-module-point-biz/src/main/java/cn/iocoder/yudao/module/point/controller/admin/pointconfig/vo/PointConfigPageReqVO.java b/yudao-module-point/yudao-module-point-biz/src/main/java/cn/iocoder/yudao/module/point/controller/admin/pointconfig/vo/PointConfigPageReqVO.java deleted file mode 100644 index cc994837c..000000000 --- a/yudao-module-point/yudao-module-point-biz/src/main/java/cn/iocoder/yudao/module/point/controller/admin/pointconfig/vo/PointConfigPageReqVO.java +++ /dev/null @@ -1,17 +0,0 @@ -package cn.iocoder.yudao.module.point.controller.admin.pointconfig.vo; - -import lombok.*; -import java.util.*; -import io.swagger.v3.oas.annotations.media.Schema; -import cn.iocoder.yudao.framework.common.pojo.PageParam; - -@Schema(description = "管理后台 - 积分设置分页 Request VO") -@Data -@EqualsAndHashCode(callSuper = true) -@ToString(callSuper = true) -public class PointConfigPageReqVO extends PageParam { - - @Schema(description = "1 开启积分抵扣 0 关闭积分抵扣", example = "1") - private Integer tradeDeductEnable; - -} diff --git a/yudao-module-point/yudao-module-point-biz/src/main/java/cn/iocoder/yudao/module/point/controller/admin/pointconfig/vo/PointConfigRespVO.java b/yudao-module-point/yudao-module-point-biz/src/main/java/cn/iocoder/yudao/module/point/controller/admin/pointconfig/vo/PointConfigRespVO.java deleted file mode 100644 index a8efe57b4..000000000 --- a/yudao-module-point/yudao-module-point-biz/src/main/java/cn/iocoder/yudao/module/point/controller/admin/pointconfig/vo/PointConfigRespVO.java +++ /dev/null @@ -1,22 +0,0 @@ -package cn.iocoder.yudao.module.point.controller.admin.pointconfig.vo; - -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.*; -import java.time.LocalDateTime; - -@Schema(description = "管理后台 - 积分设置 Response VO") -@Data -@EqualsAndHashCode(callSuper = true) -@ToString(callSuper = true) -public class PointConfigRespVO extends PointConfigBaseVO { - - @Schema(description = "自增主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "20937") - private Integer id; - - @Schema(description = "创建时间") - private LocalDateTime createTime; - - @Schema(description = "变更时间") - private LocalDateTime updateTime; - -} diff --git a/yudao-module-point/yudao-module-point-biz/src/main/java/cn/iocoder/yudao/module/point/controller/admin/pointconfig/vo/PointConfigUpdateReqVO.java b/yudao-module-point/yudao-module-point-biz/src/main/java/cn/iocoder/yudao/module/point/controller/admin/pointconfig/vo/PointConfigUpdateReqVO.java deleted file mode 100644 index 9b50f259d..000000000 --- a/yudao-module-point/yudao-module-point-biz/src/main/java/cn/iocoder/yudao/module/point/controller/admin/pointconfig/vo/PointConfigUpdateReqVO.java +++ /dev/null @@ -1,18 +0,0 @@ -package cn.iocoder.yudao.module.point.controller.admin.pointconfig.vo; - -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.*; -import java.util.*; -import javax.validation.constraints.*; - -@Schema(description = "管理后台 - 积分设置更新 Request VO") -@Data -@EqualsAndHashCode(callSuper = true) -@ToString(callSuper = true) -public class PointConfigUpdateReqVO extends PointConfigBaseVO { - - @Schema(description = "自增主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "20937") - @NotNull(message = "自增主键不能为空") - private Integer id; - -} diff --git a/yudao-module-point/yudao-module-point-biz/src/main/java/cn/iocoder/yudao/module/point/convert/pointconfig/PointConfigConvert.java b/yudao-module-point/yudao-module-point-biz/src/main/java/cn/iocoder/yudao/module/point/convert/pointconfig/PointConfigConvert.java deleted file mode 100644 index 56b96cf75..000000000 --- a/yudao-module-point/yudao-module-point-biz/src/main/java/cn/iocoder/yudao/module/point/convert/pointconfig/PointConfigConvert.java +++ /dev/null @@ -1,34 +0,0 @@ -package cn.iocoder.yudao.module.point.convert.pointconfig; - -import java.util.*; - -import cn.iocoder.yudao.framework.common.pojo.PageResult; - -import org.mapstruct.Mapper; -import org.mapstruct.factory.Mappers; -import cn.iocoder.yudao.module.point.controller.admin.pointconfig.vo.*; -import cn.iocoder.yudao.module.point.dal.dataobject.pointconfig.PointConfigDO; - -/** - * 积分设置 Convert - * - * @author QingX - */ -@Mapper -public interface PointConfigConvert { - - PointConfigConvert INSTANCE = Mappers.getMapper(PointConfigConvert.class); - - PointConfigDO convert(PointConfigCreateReqVO bean); - - PointConfigDO convert(PointConfigUpdateReqVO bean); - - PointConfigRespVO convert(PointConfigDO bean); - - List convertList(List list); - - PageResult convertPage(PageResult page); - - List convertList02(List list); - -} diff --git a/yudao-module-point/yudao-module-point-biz/src/main/java/cn/iocoder/yudao/module/point/dal/mysql/pointconfig/PointConfigMapper.java b/yudao-module-point/yudao-module-point-biz/src/main/java/cn/iocoder/yudao/module/point/dal/mysql/pointconfig/PointConfigMapper.java deleted file mode 100644 index 5d11f9b5b..000000000 --- a/yudao-module-point/yudao-module-point-biz/src/main/java/cn/iocoder/yudao/module/point/dal/mysql/pointconfig/PointConfigMapper.java +++ /dev/null @@ -1,32 +0,0 @@ -package cn.iocoder.yudao.module.point.dal.mysql.pointconfig; - -import java.util.*; - -import cn.iocoder.yudao.framework.common.pojo.PageResult; -import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; -import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; -import cn.iocoder.yudao.module.point.dal.dataobject.pointconfig.PointConfigDO; -import org.apache.ibatis.annotations.Mapper; -import cn.iocoder.yudao.module.point.controller.admin.pointconfig.vo.*; - -/** - * 积分设置 Mapper - * - * @author QingX - */ -@Mapper -public interface PointConfigMapper extends BaseMapperX { - - default PageResult selectPage(PointConfigPageReqVO reqVO) { - return selectPage(reqVO, new LambdaQueryWrapperX() - .eqIfPresent(PointConfigDO::getTradeDeductEnable, reqVO.getTradeDeductEnable()) - .orderByDesc(PointConfigDO::getId)); - } - - default List selectList(PointConfigExportReqVO reqVO) { - return selectList(new LambdaQueryWrapperX() - .eqIfPresent(PointConfigDO::getTradeDeductEnable, reqVO.getTradeDeductEnable()) - .orderByDesc(PointConfigDO::getId)); - } - -} diff --git a/yudao-module-point/yudao-module-point-biz/src/main/java/cn/iocoder/yudao/module/point/service/pointconfig/PointConfigService.java b/yudao-module-point/yudao-module-point-biz/src/main/java/cn/iocoder/yudao/module/point/service/pointconfig/PointConfigService.java deleted file mode 100644 index d579b7b9d..000000000 --- a/yudao-module-point/yudao-module-point-biz/src/main/java/cn/iocoder/yudao/module/point/service/pointconfig/PointConfigService.java +++ /dev/null @@ -1,70 +0,0 @@ -package cn.iocoder.yudao.module.point.service.pointconfig; - -import java.util.*; -import javax.validation.*; -import cn.iocoder.yudao.module.point.controller.admin.pointconfig.vo.*; -import cn.iocoder.yudao.module.point.dal.dataobject.pointconfig.PointConfigDO; -import cn.iocoder.yudao.framework.common.pojo.PageResult; - -/** - * 积分设置 Service 接口 - * - * @author QingX - */ -public interface PointConfigService { - - /** - * 创建积分设置 - * - * @param createReqVO 创建信息 - * @return 编号 - */ - Integer createConfig(@Valid PointConfigCreateReqVO createReqVO); - - /** - * 更新积分设置 - * - * @param updateReqVO 更新信息 - */ - void updateConfig(@Valid PointConfigUpdateReqVO updateReqVO); - - /** - * 删除积分设置 - * - * @param id 编号 - */ - void deleteConfig(Integer id); - - /** - * 获得积分设置 - * - * @param id 编号 - * @return 积分设置 - */ - PointConfigDO getConfig(Integer id); - - /** - * 获得积分设置列表 - * - * @param ids 编号 - * @return 积分设置列表 - */ - List getConfigList(Collection ids); - - /** - * 获得积分设置分页 - * - * @param pageReqVO 分页查询 - * @return 积分设置分页 - */ - PageResult getConfigPage(PointConfigPageReqVO pageReqVO); - - /** - * 获得积分设置列表, 用于 Excel 导出 - * - * @param exportReqVO 查询条件 - * @return 积分设置列表 - */ - List getConfigList(PointConfigExportReqVO exportReqVO); - -} diff --git a/yudao-module-point/yudao-module-point-biz/src/main/java/cn/iocoder/yudao/module/point/service/pointconfig/PointConfigServiceImpl.java b/yudao-module-point/yudao-module-point-biz/src/main/java/cn/iocoder/yudao/module/point/service/pointconfig/PointConfigServiceImpl.java deleted file mode 100644 index 5cc8185d8..000000000 --- a/yudao-module-point/yudao-module-point-biz/src/main/java/cn/iocoder/yudao/module/point/service/pointconfig/PointConfigServiceImpl.java +++ /dev/null @@ -1,92 +0,0 @@ -package cn.iocoder.yudao.module.point.service.pointconfig; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import javax.annotation.Resource; -import org.springframework.validation.annotation.Validated; - -import java.util.*; -import cn.iocoder.yudao.module.point.controller.admin.pointconfig.vo.*; -import cn.iocoder.yudao.module.point.dal.dataobject.pointconfig.PointConfigDO; -import cn.iocoder.yudao.framework.common.pojo.PageResult; - -import cn.iocoder.yudao.module.point.convert.pointconfig.PointConfigConvert; -import cn.iocoder.yudao.module.point.dal.mysql.pointconfig.PointConfigMapper; - -import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; -import static cn.iocoder.yudao.module.point.enums.ErrorCodeConstants.*; - -/** - * 积分设置 Service 实现类 - * - * @author QingX - */ -@Service -@Validated -public class PointConfigServiceImpl implements PointConfigService { - - @Autowired - private PointConfigMapper configMapper; - - @Override - public Integer createConfig(PointConfigCreateReqVO createReqVO) { - // 插入 - PointConfigDO config = PointConfigConvert.INSTANCE.convert(createReqVO); - //每个租户只允许存在一条记录 - validateConfigExistsOne(); - - configMapper.insert(config); - // 返回 - return config.getId(); - } - - @Override - public void updateConfig(PointConfigUpdateReqVO updateReqVO) { - // 校验存在 - validateConfigExists(updateReqVO.getId()); - // 更新 - PointConfigDO updateObj = PointConfigConvert.INSTANCE.convert(updateReqVO); - configMapper.updateById(updateObj); - } - - @Override - public void deleteConfig(Integer id) { - // 校验存在 - validateConfigExists(id); - // 删除 - configMapper.deleteById(id); - } - - private void validateConfigExists(Integer id) { - if (configMapper.selectById(id) == null) { - throw exception(CONFIG_NOT_EXISTS); - } - } - - private void validateConfigExistsOne() { - if (configMapper.selectCount() > 0) { - throw exception(CONFIG_EXISTS); - } - } - - @Override - public PointConfigDO getConfig(Integer id) { - return configMapper.selectById(id); - } - - @Override - public List getConfigList(Collection ids) { - return configMapper.selectBatchIds(ids); - } - - @Override - public PageResult getConfigPage(PointConfigPageReqVO pageReqVO) { - return configMapper.selectPage(pageReqVO); - } - - @Override - public List getConfigList(PointConfigExportReqVO exportReqVO) { - return configMapper.selectList(exportReqVO); - } - -} diff --git a/yudao-module-point/yudao-module-point-biz/src/main/resources/mapper/pointconfig/PointConfigMapper.xml b/yudao-module-point/yudao-module-point-biz/src/main/resources/mapper/pointconfig/PointConfigMapper.xml deleted file mode 100644 index 963afd6c8..000000000 --- a/yudao-module-point/yudao-module-point-biz/src/main/resources/mapper/pointconfig/PointConfigMapper.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - diff --git a/yudao-module-point/yudao-module-point-biz/src/main/resources/mapper/pointrecord/PointRecordMapper.xml b/yudao-module-point/yudao-module-point-biz/src/main/resources/mapper/pointrecord/PointRecordMapper.xml deleted file mode 100644 index cc09cce4b..000000000 --- a/yudao-module-point/yudao-module-point-biz/src/main/resources/mapper/pointrecord/PointRecordMapper.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - diff --git a/yudao-module-point/yudao-module-point-biz/src/main/resources/mapper/signinconfig/SignInConfigMapper.xml b/yudao-module-point/yudao-module-point-biz/src/main/resources/mapper/signinconfig/SignInConfigMapper.xml deleted file mode 100644 index 2e665c01a..000000000 --- a/yudao-module-point/yudao-module-point-biz/src/main/resources/mapper/signinconfig/SignInConfigMapper.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - diff --git a/yudao-module-point/yudao-module-point-biz/src/main/resources/mapper/signinrecord/SignInRecordMapper.xml b/yudao-module-point/yudao-module-point-biz/src/main/resources/mapper/signinrecord/SignInRecordMapper.xml deleted file mode 100644 index bd9d58976..000000000 --- a/yudao-module-point/yudao-module-point-biz/src/main/resources/mapper/signinrecord/SignInRecordMapper.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - diff --git a/yudao-module-report/yudao-module-report-biz/src/main/java/cn/iocoder/yudao/module/report/controller/admin/goview/vo/data/GoViewDataGetBySqlReqVO.java b/yudao-module-report/yudao-module-report-biz/src/main/java/cn/iocoder/yudao/module/report/controller/admin/goview/vo/data/GoViewDataGetBySqlReqVO.java index 598d7539f..785a4c5e0 100644 --- a/yudao-module-report/yudao-module-report-biz/src/main/java/cn/iocoder/yudao/module/report/controller/admin/goview/vo/data/GoViewDataGetBySqlReqVO.java +++ b/yudao-module-report/yudao-module-report-biz/src/main/java/cn/iocoder/yudao/module/report/controller/admin/goview/vo/data/GoViewDataGetBySqlReqVO.java @@ -9,7 +9,7 @@ import javax.validation.constraints.NotEmpty; @Data public class GoViewDataGetBySqlReqVO { - @Schema(description = "SQL 语句", required = true, example = "SELECT * FROM user") + @Schema(description = "SQL 语句", requiredMode = Schema.RequiredMode.REQUIRED, example = "SELECT * FROM user") @NotEmpty(message = "SQL 语句不能为空") private String sql; diff --git a/yudao-module-report/yudao-module-report-biz/src/main/java/cn/iocoder/yudao/module/report/controller/admin/goview/vo/data/GoViewDataRespVO.java b/yudao-module-report/yudao-module-report-biz/src/main/java/cn/iocoder/yudao/module/report/controller/admin/goview/vo/data/GoViewDataRespVO.java index 0d7b86138..38251ddfa 100644 --- a/yudao-module-report/yudao-module-report-biz/src/main/java/cn/iocoder/yudao/module/report/controller/admin/goview/vo/data/GoViewDataRespVO.java +++ b/yudao-module-report/yudao-module-report-biz/src/main/java/cn/iocoder/yudao/module/report/controller/admin/goview/vo/data/GoViewDataRespVO.java @@ -10,10 +10,10 @@ import java.util.Map; @Data public class GoViewDataRespVO { - @Schema(description = "数据维度", required = true, example = "['product', 'data1', 'data2']") + @Schema(description = "数据维度", requiredMode = Schema.RequiredMode.REQUIRED, example = "['product', 'data1', 'data2']") private List dimensions; - @Schema(description = "数据明细列表", required = true) + @Schema(description = "数据明细列表", requiredMode = Schema.RequiredMode.REQUIRED) private List> source; } diff --git a/yudao-module-report/yudao-module-report-biz/src/main/java/cn/iocoder/yudao/module/report/controller/admin/goview/vo/project/GoViewProjectCreateReqVO.java b/yudao-module-report/yudao-module-report-biz/src/main/java/cn/iocoder/yudao/module/report/controller/admin/goview/vo/project/GoViewProjectCreateReqVO.java index ac5c21019..dce5d9227 100644 --- a/yudao-module-report/yudao-module-report-biz/src/main/java/cn/iocoder/yudao/module/report/controller/admin/goview/vo/project/GoViewProjectCreateReqVO.java +++ b/yudao-module-report/yudao-module-report-biz/src/main/java/cn/iocoder/yudao/module/report/controller/admin/goview/vo/project/GoViewProjectCreateReqVO.java @@ -8,7 +8,7 @@ import javax.validation.constraints.*; @Data public class GoViewProjectCreateReqVO { - @Schema(description = "项目名称", required = true, example = "王五") + @Schema(description = "项目名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五") @NotEmpty(message = "项目名称不能为空") private String name; diff --git a/yudao-module-report/yudao-module-report-biz/src/main/java/cn/iocoder/yudao/module/report/controller/admin/goview/vo/project/GoViewProjectRespVO.java b/yudao-module-report/yudao-module-report-biz/src/main/java/cn/iocoder/yudao/module/report/controller/admin/goview/vo/project/GoViewProjectRespVO.java index 8c1be5844..3197d995c 100644 --- a/yudao-module-report/yudao-module-report-biz/src/main/java/cn/iocoder/yudao/module/report/controller/admin/goview/vo/project/GoViewProjectRespVO.java +++ b/yudao-module-report/yudao-module-report-biz/src/main/java/cn/iocoder/yudao/module/report/controller/admin/goview/vo/project/GoViewProjectRespVO.java @@ -9,13 +9,13 @@ import java.time.LocalDateTime; @Data public class GoViewProjectRespVO { - @Schema(description = "编号", required = true, example = "18993") + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "18993") private Long id; - @Schema(description = "项目名称", required = true, example = "王五") + @Schema(description = "项目名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五") private String name; - @Schema(description = "发布状态", required = true, example = "1") + @Schema(description = "发布状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Integer status; @Schema(description = "报表内容") // JSON 格式 @@ -27,10 +27,10 @@ public class GoViewProjectRespVO { @Schema(description = "项目备注", example = "你猜") private String remark; - @Schema(description = "创建人编号", required = true, example = "1024") + @Schema(description = "创建人编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private String creator; - @Schema(description = "创建时间", required = true) + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) private LocalDateTime createTime; } diff --git a/yudao-module-report/yudao-module-report-biz/src/main/java/cn/iocoder/yudao/module/report/controller/admin/goview/vo/project/GoViewProjectUpdateReqVO.java b/yudao-module-report/yudao-module-report-biz/src/main/java/cn/iocoder/yudao/module/report/controller/admin/goview/vo/project/GoViewProjectUpdateReqVO.java index d8bda04f0..f5c20046b 100644 --- a/yudao-module-report/yudao-module-report-biz/src/main/java/cn/iocoder/yudao/module/report/controller/admin/goview/vo/project/GoViewProjectUpdateReqVO.java +++ b/yudao-module-report/yudao-module-report-biz/src/main/java/cn/iocoder/yudao/module/report/controller/admin/goview/vo/project/GoViewProjectUpdateReqVO.java @@ -11,14 +11,14 @@ import javax.validation.constraints.*; @Data public class GoViewProjectUpdateReqVO { - @Schema(description = "编号", required = true, example = "18993") + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "18993") @NotNull(message = "编号不能为空") private Long id; - @Schema(description = "项目名称", required = true, example = "王五") + @Schema(description = "项目名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五") private String name; - @Schema(description = "发布状态", required = true, example = "1") + @Schema(description = "发布状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @InEnum(value = CommonStatusEnum.class, message = "发布状态必须是 {value}") private Integer status; diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthLoginReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthLoginReqVO.java index 757e7aef5..7b2629c93 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthLoginReqVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthLoginReqVO.java @@ -21,34 +21,34 @@ import javax.validation.constraints.Pattern; @Builder public class AuthLoginReqVO { - @Schema(description = "账号", required = true, example = "yudaoyuanma") + @Schema(description = "账号", requiredMode = Schema.RequiredMode.REQUIRED, example = "yudaoyuanma") @NotEmpty(message = "登录账号不能为空") @Length(min = 4, max = 16, message = "账号长度为 4-16 位") @Pattern(regexp = "^[A-Za-z0-9]+$", message = "账号格式为数字以及字母") private String username; - @Schema(description = "密码", required = true, example = "buzhidao") + @Schema(description = "密码", requiredMode = Schema.RequiredMode.REQUIRED, example = "buzhidao") @NotEmpty(message = "密码不能为空") @Length(min = 4, max = 16, message = "密码长度为 4-16 位") private String password; // ========== 图片验证码相关 ========== - @Schema(description = "验证码,验证码开启时,需要传递", required = true, + @Schema(description = "验证码,验证码开启时,需要传递", requiredMode = Schema.RequiredMode.REQUIRED, example = "PfcH6mgr8tpXuMWFjvW6YVaqrswIuwmWI5dsVZSg7sGpWtDCUbHuDEXl3cFB1+VvCC/rAkSwK8Fad52FSuncVg==") @NotEmpty(message = "验证码不能为空", groups = CodeEnableGroup.class) private String captchaVerification; // ========== 绑定社交登录时,需要传递如下参数 ========== - @Schema(description = "社交平台的类型,参见 SysUserSocialTypeEnum 枚举值", required = true, example = "10") + @Schema(description = "社交平台的类型,参见 SysUserSocialTypeEnum 枚举值", requiredMode = Schema.RequiredMode.REQUIRED, example = "10") @InEnum(SocialTypeEnum.class) private Integer socialType; - @Schema(description = "授权码", required = true, example = "1024") + @Schema(description = "授权码", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private String socialCode; - @Schema(description = "state", required = true, example = "9b2ffbc1-7425-4155-9894-9d5c08541d62") + @Schema(description = "state", requiredMode = Schema.RequiredMode.REQUIRED, example = "9b2ffbc1-7425-4155-9894-9d5c08541d62") private String socialState; /** diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthLoginRespVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthLoginRespVO.java index 79f745208..1720d073b 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthLoginRespVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthLoginRespVO.java @@ -15,16 +15,16 @@ import java.time.LocalDateTime; @Builder public class AuthLoginRespVO { - @Schema(description = "用户编号", required = true, example = "1024") + @Schema(description = "用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private Long userId; - @Schema(description = "访问令牌", required = true, example = "happy") + @Schema(description = "访问令牌", requiredMode = Schema.RequiredMode.REQUIRED, example = "happy") private String accessToken; - @Schema(description = "刷新令牌", required = true, example = "nice") + @Schema(description = "刷新令牌", requiredMode = Schema.RequiredMode.REQUIRED, example = "nice") private String refreshToken; - @Schema(description = "过期时间", required = true) + @Schema(description = "过期时间", requiredMode = Schema.RequiredMode.REQUIRED) private LocalDateTime expiresTime; } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthMenuRespVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthMenuRespVO.java index 9f681de46..d310bded0 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthMenuRespVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthMenuRespVO.java @@ -15,13 +15,13 @@ import java.util.List; @Builder public class AuthMenuRespVO { - @Schema(description = "菜单名称", required = true, example = "芋道") + @Schema(description = "菜单名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道") private Long id; - @Schema(description = "父菜单 ID", required = true, example = "1024") + @Schema(description = "父菜单 ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private Long parentId; - @Schema(description = "菜单名称", required = true, example = "芋道") + @Schema(description = "菜单名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道") private String name; @Schema(description = "路由地址,仅菜单类型为菜单或者目录时,才需要传", example = "post") @@ -36,10 +36,10 @@ public class AuthMenuRespVO { @Schema(description = "菜单图标,仅菜单类型为菜单或者目录时,才需要传", example = "/menu/list") private String icon; - @Schema(description = "是否可见", required = true, example = "false") + @Schema(description = "是否可见", requiredMode = Schema.RequiredMode.REQUIRED, example = "false") private Boolean visible; - @Schema(description = "是否缓存", required = true, example = "false") + @Schema(description = "是否缓存", requiredMode = Schema.RequiredMode.REQUIRED, example = "false") private Boolean keepAlive; @Schema(description = "是否总是显示", example = "false") diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthPermissionInfoRespVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthPermissionInfoRespVO.java index 957ca4b47..f5fd6da69 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthPermissionInfoRespVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthPermissionInfoRespVO.java @@ -15,13 +15,13 @@ import java.util.Set; @Builder public class AuthPermissionInfoRespVO { - @Schema(description = "用户信息", required = true) + @Schema(description = "用户信息", requiredMode = Schema.RequiredMode.REQUIRED) private UserVO user; - @Schema(description = "角色标识数组", required = true) + @Schema(description = "角色标识数组", requiredMode = Schema.RequiredMode.REQUIRED) private Set roles; - @Schema(description = "操作权限数组", required = true) + @Schema(description = "操作权限数组", requiredMode = Schema.RequiredMode.REQUIRED) private Set permissions; @Schema(description = "用户信息 VO") @@ -31,13 +31,13 @@ public class AuthPermissionInfoRespVO { @Builder public static class UserVO { - @Schema(description = "用户编号", required = true, example = "1024") + @Schema(description = "用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private Long id; - @Schema(description = "用户昵称", required = true, example = "芋道源码") + @Schema(description = "用户昵称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道源码") private String nickname; - @Schema(description = "用户头像", required = true, example = "http://www.iocoder.cn/xx.jpg") + @Schema(description = "用户头像", requiredMode = Schema.RequiredMode.REQUIRED, example = "http://www.iocoder.cn/xx.jpg") private String avatar; } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthSmsLoginReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthSmsLoginReqVO.java index 5245b2f05..51aba6787 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthSmsLoginReqVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthSmsLoginReqVO.java @@ -16,12 +16,12 @@ import javax.validation.constraints.NotEmpty; @Builder public class AuthSmsLoginReqVO { - @Schema(description = "手机号", required = true, example = "yudaoyuanma") + @Schema(description = "手机号", requiredMode = Schema.RequiredMode.REQUIRED, example = "yudaoyuanma") @NotEmpty(message = "手机号不能为空") @Mobile private String mobile; - @Schema(description = "短信验证码", required = true, example = "1024") + @Schema(description = "短信验证码", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") @NotEmpty(message = "验证码不能为空") private String code; diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthSmsSendReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthSmsSendReqVO.java index 0f8ce8343..18bdc8170 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthSmsSendReqVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthSmsSendReqVO.java @@ -19,12 +19,12 @@ import javax.validation.constraints.NotNull; @Builder public class AuthSmsSendReqVO { - @Schema(description = "手机号", required = true, example = "yudaoyuanma") + @Schema(description = "手机号", requiredMode = Schema.RequiredMode.REQUIRED, example = "yudaoyuanma") @NotEmpty(message = "手机号不能为空") @Mobile private String mobile; - @Schema(description = "短信场景", required = true, example = "1") + @Schema(description = "短信场景", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotNull(message = "发送场景不能为空") @InEnum(SmsSceneEnum.class) private Integer scene; diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthSocialLoginReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthSocialLoginReqVO.java index 9de058c12..f98a4c894 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthSocialLoginReqVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthSocialLoginReqVO.java @@ -18,16 +18,16 @@ import javax.validation.constraints.NotNull; @Builder public class AuthSocialLoginReqVO { - @Schema(description = "社交平台的类型,参见 UserSocialTypeEnum 枚举值", required = true, example = "10") + @Schema(description = "社交平台的类型,参见 UserSocialTypeEnum 枚举值", requiredMode = Schema.RequiredMode.REQUIRED, example = "10") @InEnum(SocialTypeEnum.class) @NotNull(message = "社交平台的类型不能为空") private Integer type; - @Schema(description = "授权码", required = true, example = "1024") + @Schema(description = "授权码", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") @NotEmpty(message = "授权码不能为空") private String code; - @Schema(description = "state", required = true, example = "9b2ffbc1-7425-4155-9894-9d5c08541d62") + @Schema(description = "state", requiredMode = Schema.RequiredMode.REQUIRED, example = "9b2ffbc1-7425-4155-9894-9d5c08541d62") @NotEmpty(message = "state 不能为空") private String state; diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/vo/dept/DeptBaseVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/vo/dept/DeptBaseVO.java index 25f32c21a..5d3a4b6d7 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/vo/dept/DeptBaseVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/vo/dept/DeptBaseVO.java @@ -1,4 +1,5 @@ package cn.iocoder.yudao.module.system.controller.admin.dept.vo.dept; + import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; @@ -14,7 +15,7 @@ import javax.validation.constraints.Size; @Data public class DeptBaseVO { - @Schema(description = "菜单名称", required = true, example = "芋道") + @Schema(description = "菜单名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道") @NotBlank(message = "部门名称不能为空") @Size(max = 30, message = "部门名称长度不能超过30个字符") private String name; @@ -22,7 +23,7 @@ public class DeptBaseVO { @Schema(description = "父菜单 ID", example = "1024") private Long parentId; - @Schema(description = "显示顺序不能为空", required = true, example = "1024") + @Schema(description = "显示顺序不能为空", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") @NotNull(message = "显示顺序不能为空") private Integer sort; @@ -38,7 +39,7 @@ public class DeptBaseVO { @Size(max = 50, message = "邮箱长度不能超过50个字符") private String email; - @Schema(description = "状态,见 CommonStatusEnum 枚举", required = true, example = "1") + @Schema(description = "状态,见 CommonStatusEnum 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotNull(message = "状态不能为空") // @InEnum(value = CommonStatusEnum.class, message = "修改状态必须是 {value}") private Integer status; diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/vo/dept/DeptRespVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/vo/dept/DeptRespVO.java index 7d8933a0c..aa062ec7b 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/vo/dept/DeptRespVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/vo/dept/DeptRespVO.java @@ -11,13 +11,13 @@ import java.time.LocalDateTime; @EqualsAndHashCode(callSuper = true) public class DeptRespVO extends DeptBaseVO { - @Schema(description = "部门编号", required = true, example = "1024") + @Schema(description = "部门编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private Long id; - @Schema(description = "状态,参见 CommonStatusEnum 枚举类", required = true, example = "1") + @Schema(description = "状态,参见 CommonStatusEnum 枚举类", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Integer status; - @Schema(description = "创建时间", required = true, example = "时间戳格式") + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED, example = "时间戳格式") private LocalDateTime createTime; } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/vo/dept/DeptSimpleRespVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/vo/dept/DeptSimpleRespVO.java index 582eaae51..31c15d56b 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/vo/dept/DeptSimpleRespVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/vo/dept/DeptSimpleRespVO.java @@ -11,13 +11,13 @@ import lombok.NoArgsConstructor; @AllArgsConstructor public class DeptSimpleRespVO { - @Schema(description = "部门编号", required = true, example = "1024") + @Schema(description = "部门编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private Long id; - @Schema(description = "部门名称", required = true, example = "芋道") + @Schema(description = "部门名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道") private String name; - @Schema(description = "父部门 ID", required = true, example = "1024") + @Schema(description = "父部门 ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private Long parentId; } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/vo/dept/DeptUpdateReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/vo/dept/DeptUpdateReqVO.java index 18d002438..b63f79d85 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/vo/dept/DeptUpdateReqVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/vo/dept/DeptUpdateReqVO.java @@ -11,7 +11,7 @@ import javax.validation.constraints.NotNull; @EqualsAndHashCode(callSuper = true) public class DeptUpdateReqVO extends DeptBaseVO { - @Schema(description = "部门编号", required = true, example = "1024") + @Schema(description = "部门编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") @NotNull(message = "部门编号不能为空") private Long id; diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/vo/post/PostBaseVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/vo/post/PostBaseVO.java index df3f10ec5..c447cbc45 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/vo/post/PostBaseVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/vo/post/PostBaseVO.java @@ -13,21 +13,21 @@ import javax.validation.constraints.Size; @Data public class PostBaseVO { - @Schema(description = "岗位名称", required = true, example = "小博主") + @Schema(description = "岗位名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "小博主") @NotBlank(message = "岗位名称不能为空") @Size(max = 50, message = "岗位名称长度不能超过50个字符") private String name; - @Schema(description = "岗位编码", required = true, example = "yudao") + @Schema(description = "岗位编码", requiredMode = Schema.RequiredMode.REQUIRED, example = "yudao") @NotBlank(message = "岗位编码不能为空") @Size(max = 64, message = "岗位编码长度不能超过64个字符") private String code; - @Schema(description = "显示顺序不能为空", required = true, example = "1024") + @Schema(description = "显示顺序不能为空", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") @NotNull(message = "显示顺序不能为空") private Integer sort; - @Schema(description = "状态,参见 CommonStatusEnum 枚举类", required = true, example = "1") + @Schema(description = "状态,参见 CommonStatusEnum 枚举类", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Integer status; @Schema(description = "备注", example = "快乐的备注") diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/vo/post/PostRespVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/vo/post/PostRespVO.java index 807abadeb..db39fff88 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/vo/post/PostRespVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/vo/post/PostRespVO.java @@ -11,10 +11,10 @@ import java.time.LocalDateTime; @EqualsAndHashCode(callSuper = true) public class PostRespVO extends PostBaseVO { - @Schema(description = "岗位序号", required = true, example = "1024") + @Schema(description = "岗位序号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private Long id; - @Schema(description = "创建时间", required = true, example = "时间戳格式") + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED, example = "时间戳格式") private LocalDateTime createTime; } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/vo/post/PostSimpleRespVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/vo/post/PostSimpleRespVO.java index eeb613b40..a4698df16 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/vo/post/PostSimpleRespVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/vo/post/PostSimpleRespVO.java @@ -11,10 +11,10 @@ import lombok.NoArgsConstructor; @AllArgsConstructor public class PostSimpleRespVO { - @Schema(description = "岗位编号", required = true, example = "1024") + @Schema(description = "岗位编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private Long id; - @Schema(description = "岗位名称", required = true, example = "芋道") + @Schema(description = "岗位名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道") private String name; } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/vo/post/PostUpdateReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/vo/post/PostUpdateReqVO.java index e78c8160f..c17685a71 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/vo/post/PostUpdateReqVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/vo/post/PostUpdateReqVO.java @@ -11,7 +11,7 @@ import javax.validation.constraints.NotNull; @EqualsAndHashCode(callSuper = true) public class PostUpdateReqVO extends PostBaseVO { - @Schema(description = "岗位编号", required = true, example = "1024") + @Schema(description = "岗位编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") @NotNull(message = "岗位编号不能为空") private Long id; diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/data/DictDataBaseVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/data/DictDataBaseVO.java index 90b5b9fea..f1aecc42c 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/data/DictDataBaseVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/data/DictDataBaseVO.java @@ -14,26 +14,26 @@ import javax.validation.constraints.Size; @Data public class DictDataBaseVO { - @Schema(description = "显示顺序不能为空", required = true, example = "1024") + @Schema(description = "显示顺序不能为空", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") @NotNull(message = "显示顺序不能为空") private Integer sort; - @Schema(description = "字典标签", required = true, example = "芋道") + @Schema(description = "字典标签", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道") @NotBlank(message = "字典标签不能为空") @Size(max = 100, message = "字典标签长度不能超过100个字符") private String label; - @Schema(description = "字典值", required = true, example = "iocoder") + @Schema(description = "字典值", requiredMode = Schema.RequiredMode.REQUIRED, example = "iocoder") @NotBlank(message = "字典键值不能为空") @Size(max = 100, message = "字典键值长度不能超过100个字符") private String value; - @Schema(description = "字典类型", required = true, example = "sys_common_sex") + @Schema(description = "字典类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "sys_common_sex") @NotBlank(message = "字典类型不能为空") @Size(max = 100, message = "字典类型长度不能超过100个字符") private String dictType; - @Schema(description = "状态,见 CommonStatusEnum 枚举", required = true, example = "1") + @Schema(description = "状态,见 CommonStatusEnum 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotNull(message = "状态不能为空") // @InEnum(value = CommonStatusEnum.class, message = "修改状态必须是 {value}") private Integer status; diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/data/DictDataRespVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/data/DictDataRespVO.java index b3afef470..d9786c903 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/data/DictDataRespVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/data/DictDataRespVO.java @@ -15,10 +15,10 @@ import java.time.LocalDateTime; @EqualsAndHashCode(callSuper = true) public class DictDataRespVO extends DictDataBaseVO { - @Schema(description = "字典数据编号", required = true, example = "1024") + @Schema(description = "字典数据编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private Long id; - @Schema(description = "创建时间", required = true, example = "时间戳格式") + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED, example = "时间戳格式") private LocalDateTime createTime; } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/data/DictDataSimpleRespVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/data/DictDataSimpleRespVO.java index 31256e68d..1debf7ece 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/data/DictDataSimpleRespVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/data/DictDataSimpleRespVO.java @@ -7,13 +7,13 @@ import lombok.Data; @Data public class DictDataSimpleRespVO { - @Schema(description = "字典类型", required = true, example = "gender") + @Schema(description = "字典类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "gender") private String dictType; - @Schema(description = "字典键值", required = true, example = "1") + @Schema(description = "字典键值", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private String value; - @Schema(description = "字典标签", required = true, example = "男") + @Schema(description = "字典标签", requiredMode = Schema.RequiredMode.REQUIRED, example = "男") private String label; @Schema(description = "颜色类型,default、primary、success、info、warning、danger", example = "default") diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/data/DictDataUpdateReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/data/DictDataUpdateReqVO.java index ddbe8d734..226029f81 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/data/DictDataUpdateReqVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/data/DictDataUpdateReqVO.java @@ -11,7 +11,7 @@ import javax.validation.constraints.NotNull; @EqualsAndHashCode(callSuper = true) public class DictDataUpdateReqVO extends DictDataBaseVO { - @Schema(description = "字典数据编号", required = true, example = "1024") + @Schema(description = "字典数据编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") @NotNull(message = "字典数据编号不能为空") private Long id; diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/type/DictTypeBaseVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/type/DictTypeBaseVO.java index 876eb8842..9270ab834 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/type/DictTypeBaseVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/type/DictTypeBaseVO.java @@ -14,12 +14,12 @@ import javax.validation.constraints.Size; @Data public class DictTypeBaseVO { - @Schema(description = "字典名称", required = true, example = "性别") + @Schema(description = "字典名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "性别") @NotBlank(message = "字典名称不能为空") @Size(max = 100, message = "字典类型名称长度不能超过100个字符") private String name; - @Schema(description = "状态,参见 CommonStatusEnum 枚举类", required = true, example = "1") + @Schema(description = "状态,参见 CommonStatusEnum 枚举类", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotNull(message = "状态不能为空") private Integer status; diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/type/DictTypeCreateReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/type/DictTypeCreateReqVO.java index fc91e9197..59e9ecc78 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/type/DictTypeCreateReqVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/type/DictTypeCreateReqVO.java @@ -12,7 +12,7 @@ import javax.validation.constraints.Size; @EqualsAndHashCode(callSuper = true) public class DictTypeCreateReqVO extends DictTypeBaseVO { - @Schema(description = "字典类型", required = true, example = "sys_common_sex") + @Schema(description = "字典类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "sys_common_sex") @NotNull(message = "字典类型不能为空") @Size(max = 100, message = "字典类型类型长度不能超过100个字符") private String type; diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/type/DictTypeRespVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/type/DictTypeRespVO.java index 06aeb469b..0dcba7007 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/type/DictTypeRespVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/type/DictTypeRespVO.java @@ -15,13 +15,13 @@ import java.time.LocalDateTime; @EqualsAndHashCode(callSuper = true) public class DictTypeRespVO extends DictTypeBaseVO { - @Schema(description = "字典类型编号", required = true, example = "1024") + @Schema(description = "字典类型编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private Long id; - @Schema(description = "字典类型", required = true, example = "sys_common_sex") + @Schema(description = "字典类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "sys_common_sex") private String type; - @Schema(description = "创建时间", required = true, example = "时间戳格式") + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED, example = "时间戳格式") private LocalDateTime createTime; } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/type/DictTypeSimpleRespVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/type/DictTypeSimpleRespVO.java index 61ca6a7c9..2d8133b75 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/type/DictTypeSimpleRespVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/type/DictTypeSimpleRespVO.java @@ -11,13 +11,13 @@ import lombok.NoArgsConstructor; @AllArgsConstructor public class DictTypeSimpleRespVO { - @Schema(description = "字典类型编号", required = true, example = "1024") + @Schema(description = "字典类型编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private Long id; - @Schema(description = "字典类型名称", required = true, example = "芋道") + @Schema(description = "字典类型名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道") private String name; - @Schema(description = "字典类型", required = true, example = "sys_common_sex") + @Schema(description = "字典类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "sys_common_sex") private String type; } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/type/DictTypeUpdateReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/type/DictTypeUpdateReqVO.java index 0a3120770..9209317ba 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/type/DictTypeUpdateReqVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/type/DictTypeUpdateReqVO.java @@ -11,7 +11,7 @@ import javax.validation.constraints.NotNull; @EqualsAndHashCode(callSuper = true) public class DictTypeUpdateReqVO extends DictTypeBaseVO { - @Schema(description = "字典类型编号", required = true, example = "1024") + @Schema(description = "字典类型编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") @NotNull(message = "字典类型编号不能为空") private Long id; diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/errorcode/vo/ErrorCodeBaseVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/errorcode/vo/ErrorCodeBaseVO.java index 6425e106c..3e222a070 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/errorcode/vo/ErrorCodeBaseVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/errorcode/vo/ErrorCodeBaseVO.java @@ -12,15 +12,15 @@ import javax.validation.constraints.NotNull; @Data public class ErrorCodeBaseVO { - @Schema(description = "应用名", required = true, example = "dashboard") + @Schema(description = "应用名", requiredMode = Schema.RequiredMode.REQUIRED, example = "dashboard") @NotNull(message = "应用名不能为空") private String applicationName; - @Schema(description = "错误码编码", required = true, example = "1234") + @Schema(description = "错误码编码", requiredMode = Schema.RequiredMode.REQUIRED, example = "1234") @NotNull(message = "错误码编码不能为空") private Integer code; - @Schema(description = "错误码错误提示", required = true, example = "帅气") + @Schema(description = "错误码错误提示", requiredMode = Schema.RequiredMode.REQUIRED, example = "帅气") @NotNull(message = "错误码错误提示不能为空") private String message; diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/errorcode/vo/ErrorCodeRespVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/errorcode/vo/ErrorCodeRespVO.java index 9fe447f90..de616a3e4 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/errorcode/vo/ErrorCodeRespVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/errorcode/vo/ErrorCodeRespVO.java @@ -13,13 +13,13 @@ import java.time.LocalDateTime; @ToString(callSuper = true) public class ErrorCodeRespVO extends ErrorCodeBaseVO { - @Schema(description = "错误码编号", required = true, example = "1024") + @Schema(description = "错误码编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private Long id; - @Schema(description = "错误码类型,参见 ErrorCodeTypeEnum 枚举类", required = true, example = "1") + @Schema(description = "错误码类型,参见 ErrorCodeTypeEnum 枚举类", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Integer type; - @Schema(description = "创建时间", required = true) + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) private LocalDateTime createTime; } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/errorcode/vo/ErrorCodeUpdateReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/errorcode/vo/ErrorCodeUpdateReqVO.java index 64622acd2..5b17591f0 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/errorcode/vo/ErrorCodeUpdateReqVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/errorcode/vo/ErrorCodeUpdateReqVO.java @@ -13,7 +13,7 @@ import javax.validation.constraints.NotNull; @ToString(callSuper = true) public class ErrorCodeUpdateReqVO extends ErrorCodeBaseVO { - @Schema(description = "错误码编号", required = true, example = "1024") + @Schema(description = "错误码编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") @NotNull(message = "错误码编号不能为空") private Long id; diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/ip/vo/AreaNodeRespVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/ip/vo/AreaNodeRespVO.java index 614b84fe0..1360ec66d 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/ip/vo/AreaNodeRespVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/ip/vo/AreaNodeRespVO.java @@ -9,10 +9,10 @@ import java.util.List; @Data public class AreaNodeRespVO { - @Schema(description = "编号", required = true, example = "110000") + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "110000") private Integer id; - @Schema(description = "名字", required = true, example = "北京") + @Schema(description = "名字", requiredMode = Schema.RequiredMode.REQUIRED, example = "北京") private String name; /** diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/logger/vo/loginlog/LoginLogBaseVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/logger/vo/loginlog/LoginLogBaseVO.java index d5769c597..477315946 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/logger/vo/loginlog/LoginLogBaseVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/logger/vo/loginlog/LoginLogBaseVO.java @@ -15,7 +15,7 @@ import javax.validation.constraints.Size; @Data public class LoginLogBaseVO { - @Schema(description = "日志类型,参见 LoginLogTypeEnum 枚举类", required = true, example = "1") + @Schema(description = "日志类型,参见 LoginLogTypeEnum 枚举类", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotNull(message = "日志类型不能为空") private Integer logType; @@ -23,16 +23,16 @@ public class LoginLogBaseVO { @NotEmpty(message = "链路追踪编号不能为空") private String traceId; - @Schema(description = "用户账号", required = true, example = "yudao") + @Schema(description = "用户账号", requiredMode = Schema.RequiredMode.REQUIRED, example = "yudao") @NotBlank(message = "用户账号不能为空") @Size(max = 30, message = "用户账号长度不能超过30个字符") private String username; - @Schema(description = "登录结果,参见 LoginResultEnum 枚举类", required = true, example = "1") + @Schema(description = "登录结果,参见 LoginResultEnum 枚举类", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotNull(message = "登录结果不能为空") private Integer result; - @Schema(description = "用户 IP", required = true, example = "127.0.0.1") + @Schema(description = "用户 IP", requiredMode = Schema.RequiredMode.REQUIRED, example = "127.0.0.1") @NotEmpty(message = "用户 IP 不能为空") private String userIp; diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/logger/vo/loginlog/LoginLogRespVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/logger/vo/loginlog/LoginLogRespVO.java index a67d871ea..a9f4f2acb 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/logger/vo/loginlog/LoginLogRespVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/logger/vo/loginlog/LoginLogRespVO.java @@ -14,17 +14,17 @@ import java.time.LocalDateTime; @ToString(callSuper = true) public class LoginLogRespVO extends LoginLogBaseVO { - @Schema(description = "日志编号", required = true, example = "1024") + @Schema(description = "日志编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private Long id; @Schema(description = "用户编号", example = "666") private Long userId; - @Schema(description = "用户类型,参见 UserTypeEnum 枚举", required = true, example = "2") + @Schema(description = "用户类型,参见 UserTypeEnum 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") @NotNull(message = "用户类型不能为空") private Integer userType; - @Schema(description = "登录时间", required = true) + @Schema(description = "登录时间", requiredMode = Schema.RequiredMode.REQUIRED) private LocalDateTime createTime; } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/logger/vo/operatelog/OperateLogBaseVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/logger/vo/operatelog/OperateLogBaseVO.java index e3187b0d5..dde84ee58 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/logger/vo/operatelog/OperateLogBaseVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/logger/vo/operatelog/OperateLogBaseVO.java @@ -15,23 +15,23 @@ import java.util.Map; @Data public class OperateLogBaseVO { - @Schema(description = "链路追踪编号", required = true, example = "89aca178-a370-411c-ae02-3f0d672be4ab") + @Schema(description = "链路追踪编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "89aca178-a370-411c-ae02-3f0d672be4ab") @NotEmpty(message = "链路追踪编号不能为空") private String traceId; - @Schema(description = "用户编号", required = true, example = "1024") + @Schema(description = "用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") @NotNull(message = "用户编号不能为空") private Long userId; - @Schema(description = "操作模块", required = true, example = "订单") + @Schema(description = "操作模块", requiredMode = Schema.RequiredMode.REQUIRED, example = "订单") @NotEmpty(message = "操作模块不能为空") private String module; - @Schema(description = "操作名", required = true, example = "创建订单") + @Schema(description = "操作名", requiredMode = Schema.RequiredMode.REQUIRED, example = "创建订单") @NotEmpty(message = "操作名") private String name; - @Schema(description = "操作分类,参见 OperateLogTypeEnum 枚举类", required = true, example = "1") + @Schema(description = "操作分类,参见 OperateLogTypeEnum 枚举类", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotNull(message = "操作分类不能为空") private Integer type; @@ -41,38 +41,38 @@ public class OperateLogBaseVO { @Schema(description = "拓展字段", example = "{'orderId': 1}") private Map exts; - @Schema(description = "请求方法名", required = true, example = "GET") + @Schema(description = "请求方法名", requiredMode = Schema.RequiredMode.REQUIRED, example = "GET") @NotEmpty(message = "请求方法名不能为空") private String requestMethod; - @Schema(description = "请求地址", required = true, example = "/xxx/yyy") + @Schema(description = "请求地址", requiredMode = Schema.RequiredMode.REQUIRED, example = "/xxx/yyy") @NotEmpty(message = "请求地址不能为空") private String requestUrl; - @Schema(description = "用户 IP", required = true, example = "127.0.0.1") + @Schema(description = "用户 IP", requiredMode = Schema.RequiredMode.REQUIRED, example = "127.0.0.1") @NotEmpty(message = "用户 IP 不能为空") private String userIp; - @Schema(description = "浏览器 UserAgent", required = true, example = "Mozilla/5.0") + @Schema(description = "浏览器 UserAgent", requiredMode = Schema.RequiredMode.REQUIRED, example = "Mozilla/5.0") @NotEmpty(message = "浏览器 UserAgent 不能为空") private String userAgent; - @Schema(description = "Java 方法名", required = true, example = "cn.iocoder.yudao.adminserver.UserController.save(...)") + @Schema(description = "Java 方法名", requiredMode = Schema.RequiredMode.REQUIRED, example = "cn.iocoder.yudao.adminserver.UserController.save(...)") @NotEmpty(message = "Java 方法名不能为空") private String javaMethod; @Schema(description = "Java 方法的参数") private String javaMethodArgs; - @Schema(description = "开始时间", required = true) + @Schema(description = "开始时间", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "开始时间不能为空") private LocalDateTime startTime; - @Schema(description = "执行时长,单位:毫秒", required = true) + @Schema(description = "执行时长,单位:毫秒", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "执行时长不能为空") private Integer duration; - @Schema(description = "结果码", required = true) + @Schema(description = "结果码", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "结果码不能为空") private Integer resultCode; diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/logger/vo/operatelog/OperateLogRespVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/logger/vo/operatelog/OperateLogRespVO.java index 1e88408ff..5ed6ae948 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/logger/vo/operatelog/OperateLogRespVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/logger/vo/operatelog/OperateLogRespVO.java @@ -11,10 +11,10 @@ import lombok.ToString; @ToString(callSuper = true) public class OperateLogRespVO extends OperateLogBaseVO { - @Schema(description = "日志编号", required = true, example = "1024") + @Schema(description = "日志编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private Long id; - @Schema(description = "用户昵称", required = true, example = "芋艿") + @Schema(description = "用户昵称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿") private String userNickname; } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/account/MailAccountBaseVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/account/MailAccountBaseVO.java index 2778234a0..799342e58 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/account/MailAccountBaseVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/account/MailAccountBaseVO.java @@ -13,28 +13,28 @@ import javax.validation.constraints.NotNull; @Data public class MailAccountBaseVO { - @Schema(description = "邮箱", required = true, example = "yudaoyuanma@123.com") + @Schema(description = "邮箱", requiredMode = Schema.RequiredMode.REQUIRED, example = "yudaoyuanma@123.com") @NotNull(message = "邮箱不能为空") @Email(message = "必须是 Email 格式") private String mail; - @Schema(description = "用户名", required = true, example = "yudao") + @Schema(description = "用户名", requiredMode = Schema.RequiredMode.REQUIRED, example = "yudao") @NotNull(message = "用户名不能为空") private String username; - @Schema(description = "密码", required = true, example = "123456") + @Schema(description = "密码", requiredMode = Schema.RequiredMode.REQUIRED, example = "123456") @NotNull(message = "密码必填") private String password; - @Schema(description = "SMTP 服务器域名", required = true, example = "www.iocoder.cn") + @Schema(description = "SMTP 服务器域名", requiredMode = Schema.RequiredMode.REQUIRED, example = "www.iocoder.cn") @NotNull(message = "SMTP 服务器域名不能为空") private String host; - @Schema(description = "SMTP 服务器端口", required = true, example = "80") + @Schema(description = "SMTP 服务器端口", requiredMode = Schema.RequiredMode.REQUIRED, example = "80") @NotNull(message = "SMTP 服务器端口不能为空") private Integer port; - @Schema(description = "是否开启 ssl", required = true, example = "true") + @Schema(description = "是否开启 ssl", requiredMode = Schema.RequiredMode.REQUIRED, example = "true") @NotNull(message = "是否开启 ssl 必填") private Boolean sslEnable; diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/account/MailAccountPageReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/account/MailAccountPageReqVO.java index ae420d1d2..9de195dd2 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/account/MailAccountPageReqVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/account/MailAccountPageReqVO.java @@ -12,10 +12,10 @@ import lombok.ToString; @ToString(callSuper = true) public class MailAccountPageReqVO extends PageParam { - @Schema(description = "邮箱", required = true, example = "yudaoyuanma@123.com") + @Schema(description = "邮箱", requiredMode = Schema.RequiredMode.REQUIRED, example = "yudaoyuanma@123.com") private String mail; - @Schema(description = "用户名" , required = true , example = "yudao") + @Schema(description = "用户名" , requiredMode = Schema.RequiredMode.REQUIRED , example = "yudao") private String username; } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/account/MailAccountRespVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/account/MailAccountRespVO.java index 2067d6470..c8065d5b8 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/account/MailAccountRespVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/account/MailAccountRespVO.java @@ -14,11 +14,11 @@ import java.time.LocalDateTime; @ToString(callSuper = true) public class MailAccountRespVO extends MailAccountBaseVO { - @Schema(description = "编号", required = true, example = "1024") + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") @NotNull(message = "编号不能为空") private Long id; - @Schema(description = "创建时间", required = true) + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) private LocalDateTime createTime; } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/account/MailAccountSimpleRespVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/account/MailAccountSimpleRespVO.java index dd6093ffa..0600633d5 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/account/MailAccountSimpleRespVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/account/MailAccountSimpleRespVO.java @@ -7,10 +7,10 @@ import lombok.Data; @Data public class MailAccountSimpleRespVO { - @Schema(description = "邮箱编号", required = true, example = "1024") + @Schema(description = "邮箱编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private Long id; - @Schema(description = "邮箱", required = true, example = "768541388@qq.com") + @Schema(description = "邮箱", requiredMode = Schema.RequiredMode.REQUIRED, example = "768541388@qq.com") private String mail; } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/account/MailAccountUpdateReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/account/MailAccountUpdateReqVO.java index c6ced00d6..e961cc70a 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/account/MailAccountUpdateReqVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/account/MailAccountUpdateReqVO.java @@ -13,7 +13,7 @@ import javax.validation.constraints.NotNull; @ToString(callSuper = true) public class MailAccountUpdateReqVO extends MailAccountBaseVO { - @Schema(description = "编号", required = true, example = "1024") + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") @NotNull(message = "编号不能为空") private Long id; diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/log/MailLogBaseVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/log/MailLogBaseVO.java index a7b972af1..a07958817 100755 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/log/MailLogBaseVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/log/MailLogBaseVO.java @@ -1,12 +1,13 @@ package cn.iocoder.yudao.module.system.controller.admin.mail.vo.log; import io.swagger.v3.oas.annotations.media.Schema; -import lombok.*; -import java.util.*; -import java.time.LocalDateTime; -import javax.validation.constraints.*; +import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; +import javax.validation.constraints.NotNull; +import java.time.LocalDateTime; +import java.util.Map; + import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; /** @@ -22,42 +23,42 @@ public class MailLogBaseVO { @Schema(description = "用户类型 - 参见 UserTypeEnum 枚举", example = "2") private Byte userType; - @Schema(description = "接收邮箱地址", required = true, example = "76854@qq.com") + @Schema(description = "接收邮箱地址", requiredMode = Schema.RequiredMode.REQUIRED, example = "76854@qq.com") @NotNull(message = "接收邮箱地址不能为空") private String toMail; - @Schema(description = "邮箱账号编号", required = true, example = "18107") + @Schema(description = "邮箱账号编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "18107") @NotNull(message = "邮箱账号编号不能为空") private Long accountId; - @Schema(description = "发送邮箱地址", required = true, example = "85757@qq.com") + @Schema(description = "发送邮箱地址", requiredMode = Schema.RequiredMode.REQUIRED, example = "85757@qq.com") @NotNull(message = "发送邮箱地址不能为空") private String fromMail; - @Schema(description = "模板编号", required = true, example = "5678") + @Schema(description = "模板编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "5678") @NotNull(message = "模板编号不能为空") private Long templateId; - @Schema(description = "模板编码", required = true, example = "test_01") + @Schema(description = "模板编码", requiredMode = Schema.RequiredMode.REQUIRED, example = "test_01") @NotNull(message = "模板编码不能为空") private String templateCode; @Schema(description = "模版发送人名称", example = "李四") private String templateNickname; - @Schema(description = "邮件标题", required = true, example = "测试标题") + @Schema(description = "邮件标题", requiredMode = Schema.RequiredMode.REQUIRED, example = "测试标题") @NotNull(message = "邮件标题不能为空") private String templateTitle; - @Schema(description = "邮件内容", required = true, example = "测试内容") + @Schema(description = "邮件内容", requiredMode = Schema.RequiredMode.REQUIRED, example = "测试内容") @NotNull(message = "邮件内容不能为空") private String templateContent; - @Schema(description = "邮件参数", required = true) + @Schema(description = "邮件参数", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "邮件参数不能为空") private Map templateParams; - @Schema(description = "发送状态 - 参见 MailSendStatusEnum 枚举", required = true, example = "1") + @Schema(description = "发送状态 - 参见 MailSendStatusEnum 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotNull(message = "发送状态不能为空") private Byte sendStatus; diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/log/MailLogRespVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/log/MailLogRespVO.java index cf1ecb2a1..25d8498fe 100755 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/log/MailLogRespVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/log/MailLogRespVO.java @@ -10,10 +10,10 @@ import java.time.LocalDateTime; @ToString(callSuper = true) public class MailLogRespVO extends MailLogBaseVO { - @Schema(description = "编号", required = true, example = "31020") + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "31020") private Long id; - @Schema(description = "创建时间", required = true) + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) private LocalDateTime createTime; } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/template/MailTemplateBaseVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/template/MailTemplateBaseVO.java index 0b90b2712..73eeb8ac8 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/template/MailTemplateBaseVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/template/MailTemplateBaseVO.java @@ -13,30 +13,30 @@ import javax.validation.constraints.NotNull; @Data public class MailTemplateBaseVO { - @Schema(description = "模版名称", required = true, example = "测试名字") + @Schema(description = "模版名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "测试名字") @NotNull(message = "名称不能为空") private String name; - @Schema(description = "模版编号", required = true, example = "test") + @Schema(description = "模版编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "test") @NotNull(message = "模版编号不能为空") private String code; - @Schema(description = "发送的邮箱账号编号", required = true, example = "1") + @Schema(description = "发送的邮箱账号编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotNull(message = "发送的邮箱账号编号不能为空") private Long accountId; @Schema(description = "发送人名称", example = "芋头") private String nickname; - @Schema(description = "标题", required = true, example = "注册成功") + @Schema(description = "标题", requiredMode = Schema.RequiredMode.REQUIRED, example = "注册成功") @NotEmpty(message = "标题不能为空") private String title; - @Schema(description = "内容", required = true, example = "你好,注册成功啦") + @Schema(description = "内容", requiredMode = Schema.RequiredMode.REQUIRED, example = "你好,注册成功啦") @NotEmpty(message = "内容不能为空") private String content; - @Schema(description = "状态 - 参见 CommonStatusEnum 枚举", required = true, example = "1") + @Schema(description = "状态 - 参见 CommonStatusEnum 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotNull(message = "状态不能为空") private Integer status; diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/template/MailTemplateRespVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/template/MailTemplateRespVO.java index 561512cd7..c003b0059 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/template/MailTemplateRespVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/template/MailTemplateRespVO.java @@ -14,13 +14,13 @@ import java.util.List; @ToString(callSuper = true) public class MailTemplateRespVO extends MailTemplateBaseVO { - @Schema(description = "编号", required = true, example = "1024") + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private Long id; @Schema(description = "参数数组", example = "name,code") private List params; - @Schema(description = "创建时间", required = true) + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) private LocalDateTime createTime; } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/template/MailTemplateSendReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/template/MailTemplateSendReqVO.java index 5d1d9a00d..8dd0887ed 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/template/MailTemplateSendReqVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/template/MailTemplateSendReqVO.java @@ -11,11 +11,11 @@ import java.util.Map; @Data public class MailTemplateSendReqVO { - @Schema(description = "接收邮箱", required = true, example = "7685413@qq.com") + @Schema(description = "接收邮箱", requiredMode = Schema.RequiredMode.REQUIRED, example = "7685413@qq.com") @NotEmpty(message = "接收邮箱不能为空") private String mail; - @Schema(description = "模板编码", required = true, example = "test_01") + @Schema(description = "模板编码", requiredMode = Schema.RequiredMode.REQUIRED, example = "test_01") @NotNull(message = "模板编码不能为空") private String templateCode; diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/template/MailTemplateSimpleRespVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/template/MailTemplateSimpleRespVO.java index 3146e8546..29833ffb7 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/template/MailTemplateSimpleRespVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/template/MailTemplateSimpleRespVO.java @@ -7,10 +7,10 @@ import lombok.Data; @Data public class MailTemplateSimpleRespVO { - @Schema(description = "模版编号", required = true, example = "1024") + @Schema(description = "模版编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private Long id; - @Schema(description = "模版名字", required = true, example = "哒哒哒") + @Schema(description = "模版名字", requiredMode = Schema.RequiredMode.REQUIRED, example = "哒哒哒") private String name; } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/template/MailTemplateUpdateReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/template/MailTemplateUpdateReqVO.java index 1f50821ba..bc99db508 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/template/MailTemplateUpdateReqVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/template/MailTemplateUpdateReqVO.java @@ -13,7 +13,7 @@ import javax.validation.constraints.NotNull; @ToString(callSuper = true) public class MailTemplateUpdateReqVO extends MailTemplateBaseVO { - @Schema(description = "编号", required = true, example = "1024") + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") @NotNull(message = "编号不能为空") private Long id; diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notice/vo/NoticeBaseVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notice/vo/NoticeBaseVO.java index 0b90841be..359c3c5b2 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notice/vo/NoticeBaseVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notice/vo/NoticeBaseVO.java @@ -14,19 +14,19 @@ import javax.validation.constraints.Size; @Data public class NoticeBaseVO { - @Schema(description = "公告标题", required = true, example = "小博主") + @Schema(description = "公告标题", requiredMode = Schema.RequiredMode.REQUIRED, example = "小博主") @NotBlank(message = "公告标题不能为空") @Size(max = 50, message = "公告标题不能超过50个字符") private String title; - @Schema(description = "公告类型", required = true, example = "小博主") + @Schema(description = "公告类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "小博主") @NotNull(message = "公告类型不能为空") private Integer type; - @Schema(description = "公告内容", required = true, example = "半生编码") + @Schema(description = "公告内容", requiredMode = Schema.RequiredMode.REQUIRED, example = "半生编码") private String content; - @Schema(description = "状态,参见 CommonStatusEnum 枚举类", required = true, example = "1") + @Schema(description = "状态,参见 CommonStatusEnum 枚举类", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Integer status; } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notice/vo/NoticeRespVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notice/vo/NoticeRespVO.java index 7b83d9d15..621c1d301 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notice/vo/NoticeRespVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notice/vo/NoticeRespVO.java @@ -11,10 +11,10 @@ import java.time.LocalDateTime; @EqualsAndHashCode(callSuper = true) public class NoticeRespVO extends NoticeBaseVO { - @Schema(description = "通知公告序号", required = true, example = "1024") + @Schema(description = "通知公告序号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private Long id; - @Schema(description = "创建时间", required = true, example = "时间戳格式") + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED, example = "时间戳格式") private LocalDateTime createTime; } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notice/vo/NoticeUpdateReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notice/vo/NoticeUpdateReqVO.java index af1d53ed1..695bd2863 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notice/vo/NoticeUpdateReqVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notice/vo/NoticeUpdateReqVO.java @@ -11,7 +11,7 @@ import javax.validation.constraints.NotNull; @EqualsAndHashCode(callSuper = true) public class NoticeUpdateReqVO extends NoticeBaseVO { - @Schema(description = "岗位公告编号", required = true, example = "1024") + @Schema(description = "岗位公告编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") @NotNull(message = "岗位公告编号不能为空") private Long id; diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/vo/message/NotifyMessageBaseVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/vo/message/NotifyMessageBaseVO.java index 5cb1e0b45..8e4b3fd03 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/vo/message/NotifyMessageBaseVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/vo/message/NotifyMessageBaseVO.java @@ -17,39 +17,39 @@ import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_ @Data public class NotifyMessageBaseVO { - @Schema(description = "用户编号", required = true, example = "25025") + @Schema(description = "用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "25025") @NotNull(message = "用户编号不能为空") private Long userId; - @Schema(description = "用户类型 - 参见 UserTypeEnum 枚举", required = true, example = "1") + @Schema(description = "用户类型 - 参见 UserTypeEnum 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotNull(message = "用户类型不能为空") private Byte userType; - @Schema(description = "模版编号", required = true, example = "13013") + @Schema(description = "模版编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "13013") @NotNull(message = "模版编号不能为空") private Long templateId; - @Schema(description = "模板编码", required = true, example = "test_01") + @Schema(description = "模板编码", requiredMode = Schema.RequiredMode.REQUIRED, example = "test_01") @NotNull(message = "模板编码不能为空") private String templateCode; - @Schema(description = "模版发送人名称", required = true, example = "芋艿") + @Schema(description = "模版发送人名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿") @NotNull(message = "模版发送人名称不能为空") private String templateNickname; - @Schema(description = "模版内容", required = true, example = "测试内容") + @Schema(description = "模版内容", requiredMode = Schema.RequiredMode.REQUIRED, example = "测试内容") @NotNull(message = "模版内容不能为空") private String templateContent; - @Schema(description = "模版类型", required = true, example = "2") + @Schema(description = "模版类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") @NotNull(message = "模版类型不能为空") private Integer templateType; - @Schema(description = "模版参数", required = true) + @Schema(description = "模版参数", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "模版参数不能为空") private Map templateParams; - @Schema(description = "是否已读", required = true, example = "true") + @Schema(description = "是否已读", requiredMode = Schema.RequiredMode.REQUIRED, example = "true") @NotNull(message = "是否已读不能为空") private Boolean readStatus; diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/vo/message/NotifyMessageRespVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/vo/message/NotifyMessageRespVO.java index f109c36fb..285970945 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/vo/message/NotifyMessageRespVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/vo/message/NotifyMessageRespVO.java @@ -10,10 +10,10 @@ import java.util.*; @ToString(callSuper = true) public class NotifyMessageRespVO extends NotifyMessageBaseVO { - @Schema(description = "ID", required = true, example = "1024") + @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private Long id; - @Schema(description = "创建时间", required = true) + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) private Date createTime; } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/vo/template/NotifyTemplateBaseVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/vo/template/NotifyTemplateBaseVO.java index 1e8762ca0..1af2ec128 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/vo/template/NotifyTemplateBaseVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/vo/template/NotifyTemplateBaseVO.java @@ -15,27 +15,27 @@ import javax.validation.constraints.NotNull; @Data public class NotifyTemplateBaseVO { - @Schema(description = "模版名称", required = true, example = "测试模版") + @Schema(description = "模版名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "测试模版") @NotEmpty(message = "模版名称不能为空") private String name; - @Schema(description = "模版编码", required = true, example = "SEND_TEST") + @Schema(description = "模版编码", requiredMode = Schema.RequiredMode.REQUIRED, example = "SEND_TEST") @NotNull(message = "模版编码不能为空") private String code; - @Schema(description = "模版类型 - 对应 system_notify_template_type 字典", required = true, example = "1") + @Schema(description = "模版类型 - 对应 system_notify_template_type 字典", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotNull(message = "模版类型不能为空") private Integer type; - @Schema(description = "发送人名称", required = true, example = "土豆") + @Schema(description = "发送人名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "土豆") @NotEmpty(message = "发送人名称不能为空") private String nickname; - @Schema(description = "模版内容", required = true, example = "我是模版内容") + @Schema(description = "模版内容", requiredMode = Schema.RequiredMode.REQUIRED, example = "我是模版内容") @NotEmpty(message = "模版内容不能为空") private String content; - @Schema(description = "状态 - 参见 CommonStatusEnum 枚举", required = true, example = "1") + @Schema(description = "状态 - 参见 CommonStatusEnum 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotNull(message = "状态不能为空") @InEnum(value = CommonStatusEnum.class, message = "状态必须是 {value}") private Integer status; diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/vo/template/NotifyTemplateRespVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/vo/template/NotifyTemplateRespVO.java index acfed3013..a0dd095b3 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/vo/template/NotifyTemplateRespVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/vo/template/NotifyTemplateRespVO.java @@ -10,13 +10,13 @@ import java.util.*; @ToString(callSuper = true) public class NotifyTemplateRespVO extends NotifyTemplateBaseVO { - @Schema(description = "ID", required = true, example = "1024") + @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private Long id; @Schema(description = "参数数组", example = "name,code") private List params; - @Schema(description = "创建时间", required = true) + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) private Date createTime; } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/vo/template/NotifyTemplateSendReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/vo/template/NotifyTemplateSendReqVO.java index adb73b00c..d04c609f5 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/vo/template/NotifyTemplateSendReqVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/vo/template/NotifyTemplateSendReqVO.java @@ -11,11 +11,11 @@ import java.util.Map; @Data public class NotifyTemplateSendReqVO { - @Schema(description = "用户id", required = true, example = "01") + @Schema(description = "用户id", requiredMode = Schema.RequiredMode.REQUIRED, example = "01") @NotNull(message = "用户id不能为空") private Long userId; - @Schema(description = "模板编码", required = true, example = "01") + @Schema(description = "模板编码", requiredMode = Schema.RequiredMode.REQUIRED, example = "01") @NotEmpty(message = "模板编码不能为空") private String templateCode; diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/vo/template/NotifyTemplateUpdateReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/vo/template/NotifyTemplateUpdateReqVO.java index cdbeade2d..17927a1e2 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/vo/template/NotifyTemplateUpdateReqVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/vo/template/NotifyTemplateUpdateReqVO.java @@ -10,7 +10,7 @@ import javax.validation.constraints.*; @ToString(callSuper = true) public class NotifyTemplateUpdateReqVO extends NotifyTemplateBaseVO { - @Schema(description = "ID", required = true, example = "1024") + @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") @NotNull(message = "ID 不能为空") private Long id; diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/client/OAuth2ClientBaseVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/client/OAuth2ClientBaseVO.java index c0056ed3d..cd38f8b17 100755 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/client/OAuth2ClientBaseVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/client/OAuth2ClientBaseVO.java @@ -18,19 +18,19 @@ import java.util.List; @Data public class OAuth2ClientBaseVO { - @Schema(description = "客户端编号", required = true, example = "tudou") + @Schema(description = "客户端编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "tudou") @NotNull(message = "客户端编号不能为空") private String clientId; - @Schema(description = "客户端密钥", required = true, example = "fan") + @Schema(description = "客户端密钥", requiredMode = Schema.RequiredMode.REQUIRED, example = "fan") @NotNull(message = "客户端密钥不能为空") private String secret; - @Schema(description = "应用名", required = true, example = "土豆") + @Schema(description = "应用名", requiredMode = Schema.RequiredMode.REQUIRED, example = "土豆") @NotNull(message = "应用名不能为空") private String name; - @Schema(description = "应用图标", required = true, example = "https://www.iocoder.cn/xx.png") + @Schema(description = "应用图标", requiredMode = Schema.RequiredMode.REQUIRED, example = "https://www.iocoder.cn/xx.png") @NotNull(message = "应用图标不能为空") @URL(message = "应用图标的地址不正确") private String logo; @@ -38,24 +38,24 @@ public class OAuth2ClientBaseVO { @Schema(description = "应用描述", example = "我是一个应用") private String description; - @Schema(description = "状态,参见 CommonStatusEnum 枚举", required = true, example = "1") + @Schema(description = "状态,参见 CommonStatusEnum 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotNull(message = "状态不能为空") private Integer status; - @Schema(description = "访问令牌的有效期", required = true, example = "8640") + @Schema(description = "访问令牌的有效期", requiredMode = Schema.RequiredMode.REQUIRED, example = "8640") @NotNull(message = "访问令牌的有效期不能为空") private Integer accessTokenValiditySeconds; - @Schema(description = "刷新令牌的有效期", required = true, example = "8640000") + @Schema(description = "刷新令牌的有效期", requiredMode = Schema.RequiredMode.REQUIRED, example = "8640000") @NotNull(message = "刷新令牌的有效期不能为空") private Integer refreshTokenValiditySeconds; - @Schema(description = "可重定向的 URI 地址", required = true, example = "https://www.iocoder.cn") + @Schema(description = "可重定向的 URI 地址", requiredMode = Schema.RequiredMode.REQUIRED, example = "https://www.iocoder.cn") @NotNull(message = "可重定向的 URI 地址不能为空") private List<@NotEmpty(message = "重定向的 URI 不能为空") @URL(message = "重定向的 URI 格式不正确") String> redirectUris; - @Schema(description = "授权类型,参见 OAuth2GrantTypeEnum 枚举", required = true, example = "password") + @Schema(description = "授权类型,参见 OAuth2GrantTypeEnum 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "password") @NotNull(message = "授权类型不能为空") private List authorizedGrantTypes; diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/client/OAuth2ClientRespVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/client/OAuth2ClientRespVO.java index 28aff686c..7a106fd97 100755 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/client/OAuth2ClientRespVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/client/OAuth2ClientRespVO.java @@ -13,10 +13,10 @@ import java.time.LocalDateTime; @ToString(callSuper = true) public class OAuth2ClientRespVO extends OAuth2ClientBaseVO { - @Schema(description = "编号", required = true, example = "1024") + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private Long id; - @Schema(description = "创建时间", required = true) + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) private LocalDateTime createTime; } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/client/OAuth2ClientUpdateReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/client/OAuth2ClientUpdateReqVO.java index ba76eaeb9..8f7d9a095 100755 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/client/OAuth2ClientUpdateReqVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/client/OAuth2ClientUpdateReqVO.java @@ -13,7 +13,7 @@ import javax.validation.constraints.NotNull; @ToString(callSuper = true) public class OAuth2ClientUpdateReqVO extends OAuth2ClientBaseVO { - @Schema(description = "编号", required = true, example = "1024") + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") @NotNull(message = "编号不能为空") private Long id; diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/open/OAuth2OpenAccessTokenRespVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/open/OAuth2OpenAccessTokenRespVO.java index 745095403..1cdc6cb02 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/open/OAuth2OpenAccessTokenRespVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/open/OAuth2OpenAccessTokenRespVO.java @@ -12,19 +12,19 @@ import lombok.NoArgsConstructor; @AllArgsConstructor public class OAuth2OpenAccessTokenRespVO { - @Schema(description = "访问令牌", required = true, example = "tudou") + @Schema(description = "访问令牌", requiredMode = Schema.RequiredMode.REQUIRED, example = "tudou") @JsonProperty("access_token") private String accessToken; - @Schema(description = "刷新令牌", required = true, example = "nice") + @Schema(description = "刷新令牌", requiredMode = Schema.RequiredMode.REQUIRED, example = "nice") @JsonProperty("refresh_token") private String refreshToken; - @Schema(description = "令牌类型", required = true, example = "bearer") + @Schema(description = "令牌类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "bearer") @JsonProperty("token_type") private String tokenType; - @Schema(description = "过期时间,单位:秒", required = true, example = "42430") + @Schema(description = "过期时间,单位:秒", requiredMode = Schema.RequiredMode.REQUIRED, example = "42430") @JsonProperty("expires_in") private Long expiresIn; diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/open/OAuth2OpenAuthorizeInfoRespVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/open/OAuth2OpenAuthorizeInfoRespVO.java index 984f87916..2aa3d77c1 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/open/OAuth2OpenAuthorizeInfoRespVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/open/OAuth2OpenAuthorizeInfoRespVO.java @@ -19,7 +19,7 @@ public class OAuth2OpenAuthorizeInfoRespVO { */ private Client client; - @Schema(description = "scope 的选中信息,使用 List 保证有序性,Key 是 scope,Value 为是否选中", required = true) + @Schema(description = "scope 的选中信息,使用 List 保证有序性,Key 是 scope,Value 为是否选中", requiredMode = Schema.RequiredMode.REQUIRED) private List> scopes; @Data @@ -27,10 +27,10 @@ public class OAuth2OpenAuthorizeInfoRespVO { @AllArgsConstructor public static class Client { - @Schema(description = "应用名", required = true, example = "土豆") + @Schema(description = "应用名", requiredMode = Schema.RequiredMode.REQUIRED, example = "土豆") private String name; - @Schema(description = "应用图标", required = true, example = "https://www.iocoder.cn/xx.png") + @Schema(description = "应用图标", requiredMode = Schema.RequiredMode.REQUIRED, example = "https://www.iocoder.cn/xx.png") private String logo; } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/open/OAuth2OpenCheckTokenRespVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/open/OAuth2OpenCheckTokenRespVO.java index d2dc8eb46..fd74f336c 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/open/OAuth2OpenCheckTokenRespVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/open/OAuth2OpenCheckTokenRespVO.java @@ -14,27 +14,27 @@ import java.util.List; @AllArgsConstructor public class OAuth2OpenCheckTokenRespVO { - @Schema(description = "用户编号", required = true, example = "666") + @Schema(description = "用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "666") @JsonProperty("user_id") private Long userId; - @Schema(description = "用户类型,参见 UserTypeEnum 枚举", required = true, example = "2") + @Schema(description = "用户类型,参见 UserTypeEnum 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") @JsonProperty("user_type") private Integer userType; - @Schema(description = "租户编号", required = true, example = "1024") + @Schema(description = "租户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") @JsonProperty("tenant_id") private Long tenantId; - @Schema(description = "客户端编号", required = true, example = "car") + @Schema(description = "客户端编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "car") @JsonProperty("client_id") private String clientId; - @Schema(description = "授权范围", required = true, example = "user_info") + @Schema(description = "授权范围", requiredMode = Schema.RequiredMode.REQUIRED, example = "user_info") private List scopes; - @Schema(description = "访问令牌", required = true, example = "tudou") + @Schema(description = "访问令牌", requiredMode = Schema.RequiredMode.REQUIRED, example = "tudou") @JsonProperty("access_token") private String accessToken; - @Schema(description = "过期时间,时间戳 / 1000,即单位:秒", required = true, example = "1593092157") + @Schema(description = "过期时间,时间戳 / 1000,即单位:秒", requiredMode = Schema.RequiredMode.REQUIRED, example = "1593092157") private Long exp; } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/token/OAuth2AccessTokenPageReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/token/OAuth2AccessTokenPageReqVO.java index 1a54fdcb6..4e4a6af7a 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/token/OAuth2AccessTokenPageReqVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/token/OAuth2AccessTokenPageReqVO.java @@ -10,13 +10,13 @@ import lombok.EqualsAndHashCode; @EqualsAndHashCode(callSuper = true) public class OAuth2AccessTokenPageReqVO extends PageParam { - @Schema(description = "用户编号", required = true, example = "666") + @Schema(description = "用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "666") private Long userId; - @Schema(description = "用户类型,参见 UserTypeEnum 枚举", required = true, example = "2") + @Schema(description = "用户类型,参见 UserTypeEnum 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") private Integer userType; - @Schema(description = "客户端编号", required = true, example = "2") + @Schema(description = "客户端编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") private String clientId; } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/token/OAuth2AccessTokenRespVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/token/OAuth2AccessTokenRespVO.java index 125e37f46..e0f93d954 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/token/OAuth2AccessTokenRespVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/token/OAuth2AccessTokenRespVO.java @@ -13,28 +13,28 @@ import java.time.LocalDateTime; @AllArgsConstructor public class OAuth2AccessTokenRespVO { - @Schema(description = "编号", required = true, example = "1024") + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private Long id; - @Schema(description = "访问令牌", required = true, example = "tudou") + @Schema(description = "访问令牌", requiredMode = Schema.RequiredMode.REQUIRED, example = "tudou") private String accessToken; - @Schema(description = "刷新令牌", required = true, example = "nice") + @Schema(description = "刷新令牌", requiredMode = Schema.RequiredMode.REQUIRED, example = "nice") private String refreshToken; - @Schema(description = "用户编号", required = true, example = "666") + @Schema(description = "用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "666") private Long userId; - @Schema(description = "用户类型,参见 UserTypeEnum 枚举", required = true, example = "2") + @Schema(description = "用户类型,参见 UserTypeEnum 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") private Integer userType; - @Schema(description = "客户端编号", required = true, example = "2") + @Schema(description = "客户端编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") private String clientId; - @Schema(description = "创建时间", required = true) + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) private LocalDateTime createTime; - @Schema(description = "过期时间", required = true) + @Schema(description = "过期时间", requiredMode = Schema.RequiredMode.REQUIRED) private LocalDateTime expiresTime; } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/user/OAuth2UserInfoRespVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/user/OAuth2UserInfoRespVO.java index 0a1002f7c..ff19b2b65 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/user/OAuth2UserInfoRespVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/user/OAuth2UserInfoRespVO.java @@ -13,13 +13,13 @@ import java.util.List; @AllArgsConstructor public class OAuth2UserInfoRespVO { - @Schema(description = "用户编号", required = true, example = "1") + @Schema(description = "用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Long id; - @Schema(description = "用户账号", required = true, example = "芋艿") + @Schema(description = "用户账号", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿") private String username; - @Schema(description = "用户昵称", required = true, example = "芋道") + @Schema(description = "用户昵称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道") private String nickname; @Schema(description = "用户邮箱", example = "yudao@iocoder.cn") @@ -47,10 +47,10 @@ public class OAuth2UserInfoRespVO { @Data public static class Dept { - @Schema(description = "部门编号", required = true, example = "1") + @Schema(description = "部门编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Long id; - @Schema(description = "部门名称", required = true, example = "研发部") + @Schema(description = "部门名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "研发部") private String name; } @@ -59,10 +59,10 @@ public class OAuth2UserInfoRespVO { @Data public static class Post { - @Schema(description = "岗位编号", required = true, example = "1") + @Schema(description = "岗位编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Long id; - @Schema(description = "岗位名称", required = true, example = "开发") + @Schema(description = "岗位名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "开发") private String name; } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/user/OAuth2UserUpdateReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/user/OAuth2UserUpdateReqVO.java index 739b12d6b..b9970741a 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/user/OAuth2UserUpdateReqVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/user/OAuth2UserUpdateReqVO.java @@ -15,7 +15,7 @@ import javax.validation.constraints.Size; @AllArgsConstructor public class OAuth2UserUpdateReqVO { - @Schema(description = "用户昵称", required = true, example = "芋艿") + @Schema(description = "用户昵称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿") @Size(max = 30, message = "用户昵称长度不能超过 30 个字符") private String nickname; diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/menu/MenuBaseVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/menu/MenuBaseVO.java index ddaf16c5a..a1d2e022e 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/menu/MenuBaseVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/menu/MenuBaseVO.java @@ -14,7 +14,7 @@ import javax.validation.constraints.Size; @Data public class MenuBaseVO { - @Schema(description = "菜单名称", required = true, example = "芋道") + @Schema(description = "菜单名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道") @NotBlank(message = "菜单名称不能为空") @Size(max = 50, message = "菜单名称长度不能超过50个字符") private String name; @@ -23,15 +23,15 @@ public class MenuBaseVO { @Size(max = 100) private String permission; - @Schema(description = "类型,参见 MenuTypeEnum 枚举类", required = true, example = "1") + @Schema(description = "类型,参见 MenuTypeEnum 枚举类", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotNull(message = "菜单类型不能为空") private Integer type; - @Schema(description = "显示顺序不能为空", required = true, example = "1024") + @Schema(description = "显示顺序不能为空", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") @NotNull(message = "显示顺序不能为空") private Integer sort; - @Schema(description = "父菜单 ID", required = true, example = "1024") + @Schema(description = "父菜单 ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") @NotNull(message = "父菜单 ID 不能为空") private Long parentId; @@ -49,7 +49,7 @@ public class MenuBaseVO { @Schema(description = "组件名", example = "SystemUser") private String componentName; - @Schema(description = "状态,见 CommonStatusEnum 枚举", required = true, example = "1") + @Schema(description = "状态,见 CommonStatusEnum 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotNull(message = "状态不能为空") private Integer status; diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/menu/MenuRespVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/menu/MenuRespVO.java index f85532639..5d149feb6 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/menu/MenuRespVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/menu/MenuRespVO.java @@ -15,13 +15,13 @@ import java.time.LocalDateTime; @EqualsAndHashCode(callSuper = true) public class MenuRespVO extends MenuBaseVO { - @Schema(description = "菜单编号", required = true, example = "1024") + @Schema(description = "菜单编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private Long id; - @Schema(description = "状态,参见 CommonStatusEnum 枚举类", required = true, example = "1") + @Schema(description = "状态,参见 CommonStatusEnum 枚举类", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Integer status; - @Schema(description = "创建时间", required = true, example = "时间戳格式") + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED, example = "时间戳格式") private LocalDateTime createTime; } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/menu/MenuSimpleRespVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/menu/MenuSimpleRespVO.java index bc8665ec1..9e27dc925 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/menu/MenuSimpleRespVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/menu/MenuSimpleRespVO.java @@ -13,16 +13,16 @@ import javax.validation.constraints.NotNull; @AllArgsConstructor public class MenuSimpleRespVO { - @Schema(description = "菜单编号", required = true, example = "1024") + @Schema(description = "菜单编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private Long id; - @Schema(description = "菜单名称", required = true, example = "芋道") + @Schema(description = "菜单名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道") private String name; - @Schema(description = "父菜单 ID", required = true, example = "1024") + @Schema(description = "父菜单 ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private Long parentId; - @Schema(description = "类型,参见 MenuTypeEnum 枚举类", required = true, example = "1") + @Schema(description = "类型,参见 MenuTypeEnum 枚举类", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Integer type; } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/menu/MenuUpdateReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/menu/MenuUpdateReqVO.java index 9346be045..a931f16e4 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/menu/MenuUpdateReqVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/menu/MenuUpdateReqVO.java @@ -10,7 +10,7 @@ import javax.validation.constraints.NotNull; @EqualsAndHashCode(callSuper = true) public class MenuUpdateReqVO extends MenuBaseVO { - @Schema(description = "菜单编号", required = true, example = "1024") + @Schema(description = "菜单编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") @NotNull(message = "菜单编号不能为空") private Long id; diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/permission/PermissionAssignRoleDataScopeReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/permission/PermissionAssignRoleDataScopeReqVO.java index 3d6449c99..1311faf7a 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/permission/PermissionAssignRoleDataScopeReqVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/permission/PermissionAssignRoleDataScopeReqVO.java @@ -11,11 +11,11 @@ import java.util.Set; @Data public class PermissionAssignRoleDataScopeReqVO { - @Schema(description = "角色编号", required = true, example = "1") + @Schema(description = "角色编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotNull(message = "角色编号不能为空") private Long roleId; - @Schema(description = "数据范围,参见 DataScopeEnum 枚举类", required = true, example = "1") + @Schema(description = "数据范围,参见 DataScopeEnum 枚举类", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotNull(message = "数据范围不能为空") // TODO 这里要多一个枚举校验 private Integer dataScope; diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/permission/PermissionAssignRoleMenuReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/permission/PermissionAssignRoleMenuReqVO.java index 393ab47b2..28ae7e4af 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/permission/PermissionAssignRoleMenuReqVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/permission/PermissionAssignRoleMenuReqVO.java @@ -11,7 +11,7 @@ import java.util.Set; @Data public class PermissionAssignRoleMenuReqVO { - @Schema(description = "角色编号", required = true, example = "1") + @Schema(description = "角色编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotNull(message = "角色编号不能为空") private Long roleId; diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/permission/PermissionAssignUserRoleReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/permission/PermissionAssignUserRoleReqVO.java index 74971401f..9ca43f943 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/permission/PermissionAssignUserRoleReqVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/permission/PermissionAssignUserRoleReqVO.java @@ -11,7 +11,7 @@ import java.util.Set; @Data public class PermissionAssignUserRoleReqVO { - @Schema(description = "用户编号", required = true, example = "1") + @Schema(description = "用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotNull(message = "用户编号不能为空") private Long userId; diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/role/RoleBaseVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/role/RoleBaseVO.java index 84acfad92..f03ac05e1 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/role/RoleBaseVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/role/RoleBaseVO.java @@ -14,17 +14,17 @@ import javax.validation.constraints.Size; @Data public class RoleBaseVO { - @Schema(description = "角色名称", required = true, example = "管理员") + @Schema(description = "角色名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "管理员") @NotBlank(message = "角色名称不能为空") @Size(max = 30, message = "角色名称长度不能超过30个字符") private String name; @NotBlank(message = "角色标志不能为空") @Size(max = 100, message = "角色标志长度不能超过100个字符") - @Schema(description = "角色编码", required = true, example = "ADMIN") + @Schema(description = "角色编码", requiredMode = Schema.RequiredMode.REQUIRED, example = "ADMIN") private String code; - @Schema(description = "显示顺序不能为空", required = true, example = "1024") + @Schema(description = "显示顺序不能为空", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") @NotNull(message = "显示顺序不能为空") private Integer sort; diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/role/RoleRespVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/role/RoleRespVO.java index b4090f40e..d6b4dcf44 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/role/RoleRespVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/role/RoleRespVO.java @@ -16,22 +16,22 @@ import java.util.Set; @EqualsAndHashCode(callSuper = true) public class RoleRespVO extends RoleBaseVO { - @Schema(description = "角色编号", required = true, example = "1") + @Schema(description = "角色编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Long id; - @Schema(description = "数据范围,参见 DataScopeEnum 枚举类", required = true, example = "1") + @Schema(description = "数据范围,参见 DataScopeEnum 枚举类", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Integer dataScope; @Schema(description = "数据范围(指定部门数组)", example = "1") private Set dataScopeDeptIds; - @Schema(description = "状态,参见 CommonStatusEnum 枚举类", required = true, example = "1") + @Schema(description = "状态,参见 CommonStatusEnum 枚举类", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Integer status; - @Schema(description = "角色类型,参见 RoleTypeEnum 枚举类", required = true, example = "1") + @Schema(description = "角色类型,参见 RoleTypeEnum 枚举类", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Integer type; - @Schema(description = "创建时间", required = true, example = "时间戳格式") + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED, example = "时间戳格式") private LocalDateTime createTime; } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/role/RoleSimpleRespVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/role/RoleSimpleRespVO.java index d0404da61..bd177148e 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/role/RoleSimpleRespVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/role/RoleSimpleRespVO.java @@ -11,10 +11,10 @@ import lombok.NoArgsConstructor; @AllArgsConstructor public class RoleSimpleRespVO { - @Schema(description = "角色编号", required = true, example = "1024") + @Schema(description = "角色编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private Long id; - @Schema(description = "角色名称", required = true, example = "芋道") + @Schema(description = "角色名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道") private String name; } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/role/RoleUpdateReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/role/RoleUpdateReqVO.java index 367fcf943..713989c19 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/role/RoleUpdateReqVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/role/RoleUpdateReqVO.java @@ -11,7 +11,7 @@ import javax.validation.constraints.NotNull; @EqualsAndHashCode(callSuper = true) public class RoleUpdateReqVO extends RoleBaseVO { - @Schema(description = "角色编号", required = true, example = "1024") + @Schema(description = "角色编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") @NotNull(message = "角色编号不能为空") private Long id; diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/role/RoleUpdateStatusReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/role/RoleUpdateStatusReqVO.java index 5f51b5757..f11e56980 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/role/RoleUpdateStatusReqVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/role/RoleUpdateStatusReqVO.java @@ -11,11 +11,11 @@ import javax.validation.constraints.NotNull; @Data public class RoleUpdateStatusReqVO { - @Schema(description = "角色编号", required = true, example = "1024") + @Schema(description = "角色编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") @NotNull(message = "角色编号不能为空") private Long id; - @Schema(description = "状态,见 CommonStatusEnum 枚举", required = true, example = "1") + @Schema(description = "状态,见 CommonStatusEnum 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotNull(message = "状态不能为空") @InEnum(value = CommonStatusEnum.class, message = "修改状态必须是 {value}") private Integer status; diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sensitiveword/vo/SensitiveWordBaseVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sensitiveword/vo/SensitiveWordBaseVO.java index 408e952de..906c168ac 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sensitiveword/vo/SensitiveWordBaseVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sensitiveword/vo/SensitiveWordBaseVO.java @@ -13,15 +13,15 @@ import java.util.List; @Data public class SensitiveWordBaseVO { - @Schema(description = "敏感词", required = true, example = "敏感词") + @Schema(description = "敏感词", requiredMode = Schema.RequiredMode.REQUIRED, example = "敏感词") @NotNull(message = "敏感词不能为空") private String name; - @Schema(description = "标签", required = true, example = "短信,评论") + @Schema(description = "标签", requiredMode = Schema.RequiredMode.REQUIRED, example = "短信,评论") @NotNull(message = "标签不能为空") private List tags; - @Schema(description = "状态,参见 CommonStatusEnum 枚举类", required = true, example = "1") + @Schema(description = "状态,参见 CommonStatusEnum 枚举类", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotNull(message = "状态不能为空") private Integer status; diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sensitiveword/vo/SensitiveWordRespVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sensitiveword/vo/SensitiveWordRespVO.java index 28849b408..750d733cf 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sensitiveword/vo/SensitiveWordRespVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sensitiveword/vo/SensitiveWordRespVO.java @@ -13,10 +13,10 @@ import java.time.LocalDateTime; @ToString(callSuper = true) public class SensitiveWordRespVO extends SensitiveWordBaseVO { - @Schema(description = "编号", required = true, example = "1") + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Long id; - @Schema(description = "创建时间", required = true) + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) private LocalDateTime createTime; } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sensitiveword/vo/SensitiveWordUpdateReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sensitiveword/vo/SensitiveWordUpdateReqVO.java index 58828115e..7c8100383 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sensitiveword/vo/SensitiveWordUpdateReqVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sensitiveword/vo/SensitiveWordUpdateReqVO.java @@ -13,7 +13,7 @@ import javax.validation.constraints.NotNull; @ToString(callSuper = true) public class SensitiveWordUpdateReqVO extends SensitiveWordBaseVO { - @Schema(description = "编号", required = true, example = "1") + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotNull(message = "编号不能为空") private Long id; diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/channel/SmsChannelBaseVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/channel/SmsChannelBaseVO.java index 6c97f06de..56f503998 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/channel/SmsChannelBaseVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/channel/SmsChannelBaseVO.java @@ -12,18 +12,18 @@ import javax.validation.constraints.NotNull; @Data public class SmsChannelBaseVO { - @Schema(description = "短信签名", required = true, example = "芋道源码") + @Schema(description = "短信签名", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道源码") @NotNull(message = "短信签名不能为空") private String signature; - @Schema(description = "启用状态", required = true, example = "1") + @Schema(description = "启用状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotNull(message = "启用状态不能为空") private Integer status; @Schema(description = "备注", example = "好吃!") private String remark; - @Schema(description = "短信 API 的账号", required = true, example = "yudao") + @Schema(description = "短信 API 的账号", requiredMode = Schema.RequiredMode.REQUIRED, example = "yudao") @NotNull(message = "短信 API 的账号不能为空") private String apiKey; diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/channel/SmsChannelCreateReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/channel/SmsChannelCreateReqVO.java index 31671a572..d1dde92fd 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/channel/SmsChannelCreateReqVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/channel/SmsChannelCreateReqVO.java @@ -13,7 +13,7 @@ import javax.validation.constraints.NotNull; @ToString(callSuper = true) public class SmsChannelCreateReqVO extends SmsChannelBaseVO { - @Schema(description = "渠道编码,参见 SmsChannelEnum 枚举类", required = true, example = "YUN_PIAN") + @Schema(description = "渠道编码,参见 SmsChannelEnum 枚举类", requiredMode = Schema.RequiredMode.REQUIRED, example = "YUN_PIAN") @NotNull(message = "渠道编码不能为空") private String code; diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/channel/SmsChannelRespVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/channel/SmsChannelRespVO.java index 27b09d60b..8623c085d 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/channel/SmsChannelRespVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/channel/SmsChannelRespVO.java @@ -13,13 +13,13 @@ import java.time.LocalDateTime; @ToString(callSuper = true) public class SmsChannelRespVO extends SmsChannelBaseVO { - @Schema(description = "编号", required = true, example = "1024") + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private Long id; - @Schema(description = "渠道编码,参见 SmsChannelEnum 枚举类", required = true, example = "YUN_PIAN") + @Schema(description = "渠道编码,参见 SmsChannelEnum 枚举类", requiredMode = Schema.RequiredMode.REQUIRED, example = "YUN_PIAN") private String code; - @Schema(description = "创建时间", required = true) + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) private LocalDateTime createTime; } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/channel/SmsChannelSimpleRespVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/channel/SmsChannelSimpleRespVO.java index b9a3f46c0..9d3cffda9 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/channel/SmsChannelSimpleRespVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/channel/SmsChannelSimpleRespVO.java @@ -9,15 +9,15 @@ import javax.validation.constraints.NotNull; @Data public class SmsChannelSimpleRespVO { - @Schema(description = "编号", required = true, example = "1024") + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") @NotNull(message = "编号不能为空") private Long id; - @Schema(description = "短信签名", required = true, example = "芋道源码") + @Schema(description = "短信签名", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道源码") @NotNull(message = "短信签名不能为空") private String signature; - @Schema(description = "渠道编码,参见 SmsChannelEnum 枚举类", required = true, example = "YUN_PIAN") + @Schema(description = "渠道编码,参见 SmsChannelEnum 枚举类", requiredMode = Schema.RequiredMode.REQUIRED, example = "YUN_PIAN") private String code; } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/channel/SmsChannelUpdateReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/channel/SmsChannelUpdateReqVO.java index 3379649f1..594854705 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/channel/SmsChannelUpdateReqVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/channel/SmsChannelUpdateReqVO.java @@ -13,7 +13,7 @@ import javax.validation.constraints.NotNull; @ToString(callSuper = true) public class SmsChannelUpdateReqVO extends SmsChannelBaseVO { - @Schema(description = "编号", required = true, example = "1024") + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") @NotNull(message = "编号不能为空") private Long id; diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/log/SmsLogRespVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/log/SmsLogRespVO.java index 2780b5de1..6f31e6d04 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/log/SmsLogRespVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/log/SmsLogRespVO.java @@ -10,34 +10,34 @@ import java.util.Map; @Data public class SmsLogRespVO { - @Schema(description = "编号", required = true, example = "1024") + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private Long id; - @Schema(description = "短信渠道编号", required = true, example = "10") + @Schema(description = "短信渠道编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "10") private Long channelId; - @Schema(description = "短信渠道编码", required = true, example = "ALIYUN") + @Schema(description = "短信渠道编码", requiredMode = Schema.RequiredMode.REQUIRED, example = "ALIYUN") private String channelCode; - @Schema(description = "模板编号", required = true, example = "20") + @Schema(description = "模板编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "20") private Long templateId; - @Schema(description = "模板编码", required = true, example = "test-01") + @Schema(description = "模板编码", requiredMode = Schema.RequiredMode.REQUIRED, example = "test-01") private String templateCode; - @Schema(description = "短信类型", required = true, example = "1") + @Schema(description = "短信类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Integer templateType; - @Schema(description = "短信内容", required = true, example = "你好,你的验证码是 1024") + @Schema(description = "短信内容", requiredMode = Schema.RequiredMode.REQUIRED, example = "你好,你的验证码是 1024") private String templateContent; - @Schema(description = "短信参数", required = true, example = "name,code") + @Schema(description = "短信参数", requiredMode = Schema.RequiredMode.REQUIRED, example = "name,code") private Map templateParams; - @Schema(description = "短信 API 的模板编号", required = true, example = "SMS_207945135") + @Schema(description = "短信 API 的模板编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "SMS_207945135") private String apiTemplateId; - @Schema(description = "手机号", required = true, example = "15601691300") + @Schema(description = "手机号", requiredMode = Schema.RequiredMode.REQUIRED, example = "15601691300") private String mobile; @Schema(description = "用户编号", example = "10") @@ -46,7 +46,7 @@ public class SmsLogRespVO { @Schema(description = "用户类型", example = "1") private Integer userType; - @Schema(description = "发送状态", required = true, example = "1") + @Schema(description = "发送状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Integer sendStatus; @Schema(description = "发送时间") @@ -70,7 +70,7 @@ public class SmsLogRespVO { @Schema(description = "短信 API 发送返回的序号", example = "62923244790") private String apiSerialNo; - @Schema(description = "接收状态", required = true, example = "0") + @Schema(description = "接收状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "0") private Integer receiveStatus; @Schema(description = "接收时间") @@ -82,7 +82,7 @@ public class SmsLogRespVO { @Schema(description = "API 接收结果的说明", example = "用户接收成功") private String apiReceiveMsg; - @Schema(description = "创建时间", required = true) + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) private LocalDateTime createTime; } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/template/SmsTemplateBaseVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/template/SmsTemplateBaseVO.java index dc33b45c0..6ea78bbc6 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/template/SmsTemplateBaseVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/template/SmsTemplateBaseVO.java @@ -11,34 +11,34 @@ import javax.validation.constraints.NotNull; @Data public class SmsTemplateBaseVO { - @Schema(description = "短信类型,参见 SmsTemplateTypeEnum 枚举类", required = true, example = "1") + @Schema(description = "短信类型,参见 SmsTemplateTypeEnum 枚举类", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotNull(message = "短信类型不能为空") private Integer type; - @Schema(description = "开启状态,参见 CommonStatusEnum 枚举类", required = true, example = "1") + @Schema(description = "开启状态,参见 CommonStatusEnum 枚举类", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotNull(message = "开启状态不能为空") private Integer status; - @Schema(description = "模板编码", required = true, example = "test_01") + @Schema(description = "模板编码", requiredMode = Schema.RequiredMode.REQUIRED, example = "test_01") @NotNull(message = "模板编码不能为空") private String code; - @Schema(description = "模板名称", required = true, example = "yudao") + @Schema(description = "模板名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "yudao") @NotNull(message = "模板名称不能为空") private String name; - @Schema(description = "模板内容", required = true, example = "你好,{name}。你长的太{like}啦!") + @Schema(description = "模板内容", requiredMode = Schema.RequiredMode.REQUIRED, example = "你好,{name}。你长的太{like}啦!") @NotNull(message = "模板内容不能为空") private String content; @Schema(description = "备注", example = "哈哈哈") private String remark; - @Schema(description = "短信 API 的模板编号", required = true, example = "4383920") + @Schema(description = "短信 API 的模板编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "4383920") @NotNull(message = "短信 API 的模板编号不能为空") private String apiTemplateId; - @Schema(description = "短信渠道编号", required = true, example = "10") + @Schema(description = "短信渠道编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "10") @NotNull(message = "短信渠道编号不能为空") private Long channelId; diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/template/SmsTemplateRespVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/template/SmsTemplateRespVO.java index e1874ce67..3139d20dc 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/template/SmsTemplateRespVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/template/SmsTemplateRespVO.java @@ -14,16 +14,16 @@ import java.util.List; @ToString(callSuper = true) public class SmsTemplateRespVO extends SmsTemplateBaseVO { - @Schema(description = "编号", required = true, example = "1024") + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private Long id; - @Schema(description = "短信渠道编码", required = true, example = "ALIYUN") + @Schema(description = "短信渠道编码", requiredMode = Schema.RequiredMode.REQUIRED, example = "ALIYUN") private String channelCode; @Schema(description = "参数数组", example = "name,code") private List params; - @Schema(description = "创建时间", required = true) + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) private LocalDateTime createTime; } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/template/SmsTemplateSendReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/template/SmsTemplateSendReqVO.java index 11561fae9..e42096641 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/template/SmsTemplateSendReqVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/template/SmsTemplateSendReqVO.java @@ -10,11 +10,11 @@ import java.util.Map; @Data public class SmsTemplateSendReqVO { - @Schema(description = "手机号", required = true, example = "15601691300") + @Schema(description = "手机号", requiredMode = Schema.RequiredMode.REQUIRED, example = "15601691300") @NotNull(message = "手机号不能为空") private String mobile; - @Schema(description = "模板编码", required = true, example = "test_01") + @Schema(description = "模板编码", requiredMode = Schema.RequiredMode.REQUIRED, example = "test_01") @NotNull(message = "模板编码不能为空") private String templateCode; diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/template/SmsTemplateUpdateReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/template/SmsTemplateUpdateReqVO.java index 6cfcdfe5f..d347f6950 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/template/SmsTemplateUpdateReqVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/template/SmsTemplateUpdateReqVO.java @@ -13,7 +13,7 @@ import javax.validation.constraints.NotNull; @ToString(callSuper = true) public class SmsTemplateUpdateReqVO extends SmsTemplateBaseVO { - @Schema(description = "编号", required = true, example = "1024") + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") @NotNull(message = "编号不能为空") private Long id; diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/socail/vo/SocialUserBindReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/socail/vo/SocialUserBindReqVO.java index c4d36e986..d91173958 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/socail/vo/SocialUserBindReqVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/socail/vo/SocialUserBindReqVO.java @@ -18,16 +18,16 @@ import javax.validation.constraints.NotNull; @Builder public class SocialUserBindReqVO { - @Schema(description = "社交平台的类型,参见 UserSocialTypeEnum 枚举值", required = true, example = "10") + @Schema(description = "社交平台的类型,参见 UserSocialTypeEnum 枚举值", requiredMode = Schema.RequiredMode.REQUIRED, example = "10") @InEnum(SocialTypeEnum.class) @NotNull(message = "社交平台的类型不能为空") private Integer type; - @Schema(description = "授权码", required = true, example = "1024") + @Schema(description = "授权码", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") @NotEmpty(message = "授权码不能为空") private String code; - @Schema(description = "state", required = true, example = "9b2ffbc1-7425-4155-9894-9d5c08541d62") + @Schema(description = "state", requiredMode = Schema.RequiredMode.REQUIRED, example = "9b2ffbc1-7425-4155-9894-9d5c08541d62") @NotEmpty(message = "state 不能为空") private String state; diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/socail/vo/SocialUserUnbindReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/socail/vo/SocialUserUnbindReqVO.java index aa293ca5c..9a1e841fb 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/socail/vo/SocialUserUnbindReqVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/socail/vo/SocialUserUnbindReqVO.java @@ -18,12 +18,12 @@ import javax.validation.constraints.NotNull; @Builder public class SocialUserUnbindReqVO { - @Schema(description = "社交平台的类型,参见 UserSocialTypeEnum 枚举值", required = true, example = "10") + @Schema(description = "社交平台的类型,参见 UserSocialTypeEnum 枚举值", requiredMode = Schema.RequiredMode.REQUIRED, example = "10") @InEnum(SocialTypeEnum.class) @NotNull(message = "社交平台的类型不能为空") private Integer type; - @Schema(description = "社交用户的 openid", required = true, example = "IPRmJ0wvBptiPIlGEZiPewGwiEiE") + @Schema(description = "社交用户的 openid", requiredMode = Schema.RequiredMode.REQUIRED, example = "IPRmJ0wvBptiPIlGEZiPewGwiEiE") @NotEmpty(message = "社交用户的 openid 不能为空") private String openid; diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/packages/TenantPackageBaseVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/packages/TenantPackageBaseVO.java index 53adc072f..d8f14f6f0 100755 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/packages/TenantPackageBaseVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/packages/TenantPackageBaseVO.java @@ -13,18 +13,18 @@ import java.util.Set; @Data public class TenantPackageBaseVO { - @Schema(description = "套餐名", required = true, example = "VIP") + @Schema(description = "套餐名", requiredMode = Schema.RequiredMode.REQUIRED, example = "VIP") @NotNull(message = "套餐名不能为空") private String name; - @Schema(description = "状态,参见 CommonStatusEnum 枚举", required = true, example = "1") + @Schema(description = "状态,参见 CommonStatusEnum 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotNull(message = "状态不能为空") private Integer status; @Schema(description = "备注", example = "好") private String remark; - @Schema(description = "关联的菜单编号", required = true) + @Schema(description = "关联的菜单编号", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "关联的菜单编号不能为空") private Set menuIds; diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/packages/TenantPackageRespVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/packages/TenantPackageRespVO.java index f1a0d2f46..29b985df6 100755 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/packages/TenantPackageRespVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/packages/TenantPackageRespVO.java @@ -13,10 +13,10 @@ import java.time.LocalDateTime; @ToString(callSuper = true) public class TenantPackageRespVO extends TenantPackageBaseVO { - @Schema(description = "套餐编号", required = true, example = "1024") + @Schema(description = "套餐编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private Long id; - @Schema(description = "创建时间", required = true) + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) private LocalDateTime createTime; } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/packages/TenantPackageSimpleRespVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/packages/TenantPackageSimpleRespVO.java index feeff1fe8..bc3d62ae8 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/packages/TenantPackageSimpleRespVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/packages/TenantPackageSimpleRespVO.java @@ -9,11 +9,11 @@ import javax.validation.constraints.NotNull; @Data public class TenantPackageSimpleRespVO { - @Schema(description = "套餐编号", required = true, example = "1024") + @Schema(description = "套餐编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") @NotNull(message = "套餐编号不能为空") private Long id; - @Schema(description = "套餐名", required = true, example = "VIP") + @Schema(description = "套餐名", requiredMode = Schema.RequiredMode.REQUIRED, example = "VIP") @NotNull(message = "套餐名不能为空") private String name; diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/packages/TenantPackageUpdateReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/packages/TenantPackageUpdateReqVO.java index a91f2fb3d..0d7e74c25 100755 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/packages/TenantPackageUpdateReqVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/packages/TenantPackageUpdateReqVO.java @@ -10,7 +10,7 @@ import javax.validation.constraints.*; @ToString(callSuper = true) public class TenantPackageUpdateReqVO extends TenantPackageBaseVO { - @Schema(description = "套餐编号", required = true, example = "1024") + @Schema(description = "套餐编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") @NotNull(message = "套餐编号不能为空") private Long id; diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/tenant/TenantBaseVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/tenant/TenantBaseVO.java index 4673e2990..76899be85 100755 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/tenant/TenantBaseVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/tenant/TenantBaseVO.java @@ -13,33 +13,33 @@ import java.time.LocalDateTime; @Data public class TenantBaseVO { - @Schema(description = "租户名", required = true, example = "芋道") + @Schema(description = "租户名", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道") @NotNull(message = "租户名不能为空") private String name; - @Schema(description = "联系人", required = true, example = "芋艿") + @Schema(description = "联系人", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿") @NotNull(message = "联系人不能为空") private String contactName; @Schema(description = "联系手机", example = "15601691300") private String contactMobile; - @Schema(description = "租户状态", required = true, example = "1") + @Schema(description = "租户状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotNull(message = "租户状态") private Integer status; @Schema(description = "绑定域名", example = "https://www.iocoder.cn") private String domain; - @Schema(description = "租户套餐编号", required = true, example = "1024") + @Schema(description = "租户套餐编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") @NotNull(message = "租户套餐编号不能为空") private Long packageId; - @Schema(description = "过期时间", required = true) + @Schema(description = "过期时间", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "过期时间不能为空") private LocalDateTime expireTime; - @Schema(description = "账号数量", required = true, example = "1024") + @Schema(description = "账号数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") @NotNull(message = "账号数量不能为空") private Integer accountCount; diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/tenant/TenantCreateReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/tenant/TenantCreateReqVO.java index 8db44c2c1..b45ac59ba 100755 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/tenant/TenantCreateReqVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/tenant/TenantCreateReqVO.java @@ -15,13 +15,13 @@ import javax.validation.constraints.Size; @ToString(callSuper = true) public class TenantCreateReqVO extends TenantBaseVO { - @Schema(description = "用户账号", required = true, example = "yudao") + @Schema(description = "用户账号", requiredMode = Schema.RequiredMode.REQUIRED, example = "yudao") @NotBlank(message = "用户账号不能为空") @Pattern(regexp = "^[a-zA-Z0-9]{4,30}$", message = "用户账号由 数字、字母 组成") @Size(min = 4, max = 30, message = "用户账号长度为 4-30 个字符") private String username; - @Schema(description = "密码", required = true, example = "123456") + @Schema(description = "密码", requiredMode = Schema.RequiredMode.REQUIRED, example = "123456") @NotEmpty(message = "密码不能为空") @Length(min = 4, max = 16, message = "密码长度为 4-16 位") private String password; diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/tenant/TenantRespVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/tenant/TenantRespVO.java index 10e1aa552..13754d669 100755 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/tenant/TenantRespVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/tenant/TenantRespVO.java @@ -11,10 +11,10 @@ import java.time.LocalDateTime; @ToString(callSuper = true) public class TenantRespVO extends TenantBaseVO { - @Schema(description = "租户编号", required = true, example = "1024") + @Schema(description = "租户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private Long id; - @Schema(description = "创建时间", required = true) + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) private LocalDateTime createTime; } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/tenant/TenantUpdateReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/tenant/TenantUpdateReqVO.java index 1969fe302..6555bcec0 100755 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/tenant/TenantUpdateReqVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/tenant/TenantUpdateReqVO.java @@ -10,7 +10,7 @@ import javax.validation.constraints.*; @ToString(callSuper = true) public class TenantUpdateReqVO extends TenantBaseVO { - @Schema(description = "租户编号", required = true, example = "1024") + @Schema(description = "租户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") @NotNull(message = "租户编号不能为空") private Long id; diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/profile/UserProfileRespVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/profile/UserProfileRespVO.java index 9e8298f45..fd1c26eac 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/profile/UserProfileRespVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/profile/UserProfileRespVO.java @@ -18,19 +18,19 @@ import java.util.List; @Schema(description = "管理后台 - 用户个人中心信息 Response VO") public class UserProfileRespVO extends UserBaseVO { - @Schema(description = "用户编号", required = true, example = "1") + @Schema(description = "用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Long id; - @Schema(description = "状态,参见 CommonStatusEnum 枚举类", required = true, example = "1") + @Schema(description = "状态,参见 CommonStatusEnum 枚举类", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Integer status; - @Schema(description = "最后登录 IP", required = true, example = "192.168.1.1") + @Schema(description = "最后登录 IP", requiredMode = Schema.RequiredMode.REQUIRED, example = "192.168.1.1") private String loginIp; - @Schema(description = "最后登录时间", required = true, example = "时间戳格式") + @Schema(description = "最后登录时间", requiredMode = Schema.RequiredMode.REQUIRED, example = "时间戳格式") private LocalDateTime loginDate; - @Schema(description = "创建时间", required = true, example = "时间戳格式") + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED, example = "时间戳格式") private LocalDateTime createTime; /** @@ -56,10 +56,10 @@ public class UserProfileRespVO extends UserBaseVO { @Data public static class Role { - @Schema(description = "角色编号", required = true, example = "1") + @Schema(description = "角色编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Long id; - @Schema(description = "角色名称", required = true, example = "普通角色") + @Schema(description = "角色名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "普通角色") private String name; } @@ -68,10 +68,10 @@ public class UserProfileRespVO extends UserBaseVO { @Data public static class Dept { - @Schema(description = "部门编号", required = true, example = "1") + @Schema(description = "部门编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Long id; - @Schema(description = "部门名称", required = true, example = "研发部") + @Schema(description = "部门名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "研发部") private String name; } @@ -80,10 +80,10 @@ public class UserProfileRespVO extends UserBaseVO { @Data public static class Post { - @Schema(description = "岗位编号", required = true, example = "1") + @Schema(description = "岗位编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Long id; - @Schema(description = "岗位名称", required = true, example = "开发") + @Schema(description = "岗位名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "开发") private String name; } @@ -92,10 +92,10 @@ public class UserProfileRespVO extends UserBaseVO { @Data public static class SocialUser { - @Schema(description = "社交平台的类型,参见 SocialTypeEnum 枚举类", required = true, example = "10") + @Schema(description = "社交平台的类型,参见 SocialTypeEnum 枚举类", requiredMode = Schema.RequiredMode.REQUIRED, example = "10") private Integer type; - @Schema(description = "社交用户的 openid", required = true, example = "IPRmJ0wvBptiPIlGEZiPewGwiEiE") + @Schema(description = "社交用户的 openid", requiredMode = Schema.RequiredMode.REQUIRED, example = "IPRmJ0wvBptiPIlGEZiPewGwiEiE") private String openid; } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/profile/UserProfileUpdatePasswordReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/profile/UserProfileUpdatePasswordReqVO.java index d784537cf..e7312082a 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/profile/UserProfileUpdatePasswordReqVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/profile/UserProfileUpdatePasswordReqVO.java @@ -10,12 +10,12 @@ import javax.validation.constraints.NotEmpty; @Data public class UserProfileUpdatePasswordReqVO { - @Schema(description = "旧密码", required = true, example = "123456") + @Schema(description = "旧密码", requiredMode = Schema.RequiredMode.REQUIRED, example = "123456") @NotEmpty(message = "旧密码不能为空") @Length(min = 4, max = 16, message = "密码长度为 4-16 位") private String oldPassword; - @Schema(description = "新密码", required = true, example = "654321") + @Schema(description = "新密码", requiredMode = Schema.RequiredMode.REQUIRED, example = "654321") @NotEmpty(message = "新密码不能为空") @Length(min = 4, max = 16, message = "密码长度为 4-16 位") private String newPassword; diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/profile/UserProfileUpdateReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/profile/UserProfileUpdateReqVO.java index 727f28178..8abc07af6 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/profile/UserProfileUpdateReqVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/profile/UserProfileUpdateReqVO.java @@ -11,7 +11,7 @@ import javax.validation.constraints.Size; @Data public class UserProfileUpdateReqVO { - @Schema(description = "用户昵称", required = true, example = "芋艿") + @Schema(description = "用户昵称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿") @Size(max = 30, message = "用户昵称长度不能超过 30 个字符") private String nickname; diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserBaseVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserBaseVO.java index 93467b2ab..ce3af1302 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserBaseVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserBaseVO.java @@ -17,13 +17,13 @@ import java.util.Set; @Data public class UserBaseVO { - @Schema(description = "用户账号", required = true, example = "yudao") + @Schema(description = "用户账号", requiredMode = Schema.RequiredMode.REQUIRED, example = "yudao") @NotBlank(message = "用户账号不能为空") @Pattern(regexp = "^[a-zA-Z0-9]{4,30}$", message = "用户账号由 数字、字母 组成") @Size(min = 4, max = 30, message = "用户账号长度为 4-30 个字符") private String username; - @Schema(description = "用户昵称", required = true, example = "芋艿") + @Schema(description = "用户昵称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿") @Size(max = 30, message = "用户昵称长度不能超过30个字符") private String nickname; diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserCreateReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserCreateReqVO.java index 1a80ac2d0..8b84685f1 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserCreateReqVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserCreateReqVO.java @@ -12,7 +12,7 @@ import javax.validation.constraints.NotEmpty; @EqualsAndHashCode(callSuper = true) public class UserCreateReqVO extends UserBaseVO { - @Schema(description = "密码", required = true, example = "123456") + @Schema(description = "密码", requiredMode = Schema.RequiredMode.REQUIRED, example = "123456") @NotEmpty(message = "密码不能为空") @Length(min = 4, max = 16, message = "密码长度为 4-16 位") private String password; diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserImportRespVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserImportRespVO.java index c0dcd09aa..6843ef5c3 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserImportRespVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserImportRespVO.java @@ -12,13 +12,13 @@ import java.util.Map; @Builder public class UserImportRespVO { - @Schema(description = "创建成功的用户名数组", required = true) + @Schema(description = "创建成功的用户名数组", requiredMode = Schema.RequiredMode.REQUIRED) private List createUsernames; - @Schema(description = "更新成功的用户名数组", required = true) + @Schema(description = "更新成功的用户名数组", requiredMode = Schema.RequiredMode.REQUIRED) private List updateUsernames; - @Schema(description = "导入失败的用户集合,key 为用户名,value 为失败原因", required = true) + @Schema(description = "导入失败的用户集合,key 为用户名,value 为失败原因", requiredMode = Schema.RequiredMode.REQUIRED) private Map failureUsernames; } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserPageItemRespVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserPageItemRespVO.java index 52ae7b7ea..4f609de46 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserPageItemRespVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserPageItemRespVO.java @@ -22,10 +22,10 @@ public class UserPageItemRespVO extends UserRespVO { @Data public static class Dept { - @Schema(description = "部门编号", required = true, example = "1") + @Schema(description = "部门编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Long id; - @Schema(description = "部门名称", required = true, example = "研发部") + @Schema(description = "部门名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "研发部") private String name; } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserRespVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserRespVO.java index 93a53b74e..4859b520d 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserRespVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserRespVO.java @@ -13,19 +13,19 @@ import java.time.LocalDateTime; @EqualsAndHashCode(callSuper = true) public class UserRespVO extends UserBaseVO { - @Schema(description = "用户编号", required = true, example = "1") + @Schema(description = "用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Long id; - @Schema(description = "状态,参见 CommonStatusEnum 枚举类", required = true, example = "1") + @Schema(description = "状态,参见 CommonStatusEnum 枚举类", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Integer status; - @Schema(description = "最后登录 IP", required = true, example = "192.168.1.1") + @Schema(description = "最后登录 IP", requiredMode = Schema.RequiredMode.REQUIRED, example = "192.168.1.1") private String loginIp; - @Schema(description = "最后登录时间", required = true, example = "时间戳格式") + @Schema(description = "最后登录时间", requiredMode = Schema.RequiredMode.REQUIRED, example = "时间戳格式") private LocalDateTime loginDate; - @Schema(description = "创建时间", required = true, example = "时间戳格式") + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED, example = "时间戳格式") private LocalDateTime createTime; } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserSimpleRespVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserSimpleRespVO.java index f08e8c132..f021d7213 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserSimpleRespVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserSimpleRespVO.java @@ -11,10 +11,10 @@ import lombok.NoArgsConstructor; @AllArgsConstructor public class UserSimpleRespVO { - @Schema(description = "用户编号", required = true, example = "1024") + @Schema(description = "用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private Long id; - @Schema(description = "用户昵称", required = true, example = "芋道") + @Schema(description = "用户昵称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道") private String nickname; } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserUpdatePasswordReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserUpdatePasswordReqVO.java index 786fca8ca..42d8c5d7d 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserUpdatePasswordReqVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserUpdatePasswordReqVO.java @@ -11,11 +11,11 @@ import javax.validation.constraints.NotNull; @Data public class UserUpdatePasswordReqVO { - @Schema(description = "用户编号", required = true, example = "1024") + @Schema(description = "用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") @NotNull(message = "用户编号不能为空") private Long id; - @Schema(description = "密码", required = true, example = "123456") + @Schema(description = "密码", requiredMode = Schema.RequiredMode.REQUIRED, example = "123456") @NotEmpty(message = "密码不能为空") @Length(min = 4, max = 16, message = "密码长度为 4-16 位") private String password; diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserUpdateReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserUpdateReqVO.java index d11a6e493..2267c506f 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserUpdateReqVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserUpdateReqVO.java @@ -11,7 +11,7 @@ import javax.validation.constraints.NotNull; @EqualsAndHashCode(callSuper = true) public class UserUpdateReqVO extends UserBaseVO { - @Schema(description = "用户编号", required = true, example = "1024") + @Schema(description = "用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") @NotNull(message = "用户编号不能为空") private Long id; diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserUpdateStatusReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserUpdateStatusReqVO.java index 0f8e21d0c..af1b73cdb 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserUpdateStatusReqVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserUpdateStatusReqVO.java @@ -9,11 +9,11 @@ import javax.validation.constraints.NotNull; @Data public class UserUpdateStatusReqVO { - @Schema(description = "用户编号", required = true, example = "1024") + @Schema(description = "用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") @NotNull(message = "角色编号不能为空") private Long id; - @Schema(description = "状态,见 CommonStatusEnum 枚举", required = true, example = "1") + @Schema(description = "状态,见 CommonStatusEnum 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotNull(message = "状态不能为空") // @InEnum(value = CommonStatusEnum.class, message = "修改状态必须是 {value}") private Integer status; diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/mail/MailLogDO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/mail/MailLogDO.java index e2b2c3cc9..0d08c7117 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/mail/MailLogDO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/mail/MailLogDO.java @@ -9,7 +9,7 @@ import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler; import lombok.*; import java.io.Serializable; -import java.util.Date; +import java.time.LocalDateTime; import java.util.Map; /** @@ -108,7 +108,7 @@ public class MailLogDO extends BaseDO implements Serializable { /** * 发送时间 */ - private Date sendTime; + private LocalDateTime sendTime; /** * 发送返回的消息 ID */ diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/mail/MailLogServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/mail/MailLogServiceImpl.java index 743c3a4c7..3e7cdc48b 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/mail/MailLogServiceImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/mail/MailLogServiceImpl.java @@ -11,6 +11,7 @@ import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; import javax.annotation.Resource; +import java.time.LocalDateTime; import java.util.Date; import java.util.Map; import java.util.Objects; @@ -65,12 +66,12 @@ public class MailLogServiceImpl implements MailLogService { public void updateMailSendResult(Long logId, String messageId, Exception exception) { // 1. 成功 if (exception == null) { - mailLogMapper.updateById(new MailLogDO().setId(logId).setSendTime(new Date()) + mailLogMapper.updateById(new MailLogDO().setId(logId).setSendTime(LocalDateTime.now()) .setSendStatus(MailSendStatusEnum.SUCCESS.getStatus()).setSendMessageId(messageId)); return; } // 2. 失败 - mailLogMapper.updateById(new MailLogDO().setId(logId).setSendTime(new Date()) + mailLogMapper.updateById(new MailLogDO().setId(logId).setSendTime(LocalDateTime.now()) .setSendStatus(MailSendStatusEnum.FAILURE.getStatus()).setSendException(getRootCauseMessage(exception))); } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/mail/MailSendServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/mail/MailSendServiceImpl.java index 72da3cf89..aa93f101a 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/mail/MailSendServiceImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/mail/MailSendServiceImpl.java @@ -89,13 +89,14 @@ public class MailSendServiceImpl implements MailSendService { // 创建发送日志。如果模板被禁用,则不发送短信,只记录日志 Boolean isSend = CommonStatusEnum.ENABLE.getStatus().equals(template.getStatus()); + String title = mailTemplateService.formatMailTemplateContent(template.getTitle(), templateParams); String content = mailTemplateService.formatMailTemplateContent(template.getContent(), templateParams); Long sendLogId = mailLogService.createMailLog(userId, userType, mail, account, template, content, templateParams, isSend); // 发送 MQ 消息,异步执行发送短信 if (isSend) { mailProducer.sendMailSendMessage(sendLogId, mail, account.getId(), - template.getNickname(), template.getTitle(), content); + template.getNickname(), title, content); } return sendLogId; } diff --git a/yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/mail/MailLogServiceImplTest.java b/yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/mail/MailLogServiceImplTest.java index 53acd0ef0..9c2a4806e 100755 --- a/yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/mail/MailLogServiceImplTest.java +++ b/yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/mail/MailLogServiceImplTest.java @@ -17,7 +17,7 @@ import javax.annotation.Resource; import java.util.Map; import static cn.hutool.core.util.RandomUtil.randomEle; -import static cn.iocoder.yudao.framework.common.util.date.DateUtils.buildTime; +import static cn.iocoder.yudao.framework.common.util.date.LocalDateTimeUtils.buildTime; import static cn.iocoder.yudao.framework.common.util.date.LocalDateTimeUtils.buildBetweenTime; import static cn.iocoder.yudao.framework.common.util.object.ObjectUtils.cloneIgnoreId; import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEquals; diff --git a/yudao-server/Dockerfile b/yudao-server/Dockerfile index 234081ad0..8fd95741f 100644 --- a/yudao-server/Dockerfile +++ b/yudao-server/Dockerfile @@ -9,11 +9,15 @@ WORKDIR /yudao-server COPY ./target/yudao-server.jar app.jar ## 设置 TZ 时区 +ENV TZ=Asia/Shanghai ## 设置 JAVA_OPTS 环境变量,可通过 docker run -e "JAVA_OPTS=" 进行覆盖 -ENV TZ=Asia/Shanghai JAVA_OPTS="-Xms512m -Xmx512m" +ENV JAVA_OPTS="-Xms512m -Xmx512m -Djava.security.egd=file:/dev/./urandom" + +## 应用参数 +ENV ARGS="" ## 暴露后端项目的 48080 端口 EXPOSE 48080 ## 启动后端项目 -CMD java ${JAVA_OPTS} -Djava.security.egd=file:/dev/./urandom -jar app.jar +CMD java ${JAVA_OPTS} -jar app.jar $ARGS diff --git a/yudao-server/pom.xml b/yudao-server/pom.xml index f38a73ce9..11cab44f4 100644 --- a/yudao-server/pom.xml +++ b/yudao-server/pom.xml @@ -54,11 +54,11 @@ - - - - - + + cn.iocoder.boot + yudao-module-pay-biz + ${revision} + @@ -68,25 +68,19 @@ - - - - - - - - - - - - - - - - cn.iocoder.boot - yudao-module-point-biz + yudao-module-promotion-biz + ${revision} + + + cn.iocoder.boot + yudao-module-product-biz + ${revision} + + + cn.iocoder.boot + yudao-module-trade-biz ${revision} diff --git a/yudao-server/src/test/java/cn/iocoder/yudao/ProjectReactor.java b/yudao-server/src/test/java/cn/iocoder/yudao/ProjectReactor.java index 41171d988..6209c08e2 100644 --- a/yudao-server/src/test/java/cn/iocoder/yudao/ProjectReactor.java +++ b/yudao-server/src/test/java/cn/iocoder/yudao/ProjectReactor.java @@ -66,7 +66,7 @@ public class ProjectReactor { // 写入文件 files.forEach(file -> { // 如果是白名单的文件类型,不进行重写,直接拷贝 - String fileType = FileTypeUtil.getType(file); + String fileType = getFileType(file); if (WHITE_FILE_TYPES.contains(fileType)) { copyFile(file, projectBaseDir, projectBaseDirNew, packageNameNew, artifactIdNew); return; @@ -106,7 +106,7 @@ public class ProjectReactor { String titleNew) { String content = FileUtil.readString(file, StandardCharsets.UTF_8); // 如果是白名单的文件类型,不进行重写 - String fileType = FileTypeUtil.getType(file); + String fileType = getFileType(file); if (WHITE_FILE_TYPES.contains(fileType)) { return content; } @@ -139,4 +139,8 @@ public class ProjectReactor { .replaceAll(StrUtil.upperFirst(ARTIFACT_ID), StrUtil.upperFirst(artifactIdNew)); } + private static String getFileType(File file) { + return file.length() > 0 ? FileTypeUtil.getType(file) : ""; + } + } diff --git a/yudao-ui-admin/.dockerignore b/yudao-ui-admin/.dockerignore new file mode 100644 index 000000000..ddc40eddb --- /dev/null +++ b/yudao-ui-admin/.dockerignore @@ -0,0 +1,3 @@ +.dockerignore +dist +node_modules diff --git a/yudao-ui-admin/Dockerfile b/yudao-ui-admin/Dockerfile new file mode 100644 index 000000000..4764e741b --- /dev/null +++ b/yudao-ui-admin/Dockerfile @@ -0,0 +1,21 @@ +FROM node:16-alpine as build-stage + +WORKDIR /admim + +COPY .npmrc package.json yarn.lock ./ +RUN --mount=type=cache,id=yarn-store,target=/root/.yarn-store \ + yarn install --frozen-lockfile + +COPY . . +ARG NODE_ENV="" +RUN env ${NODE_ENV} yarn build:prod + +## -- stage: dist => nginx -- +FROM nginx:alpine + +ENV TZ=Asia/Shanghai + +COPY ./nginx.conf /etc/nginx/conf.d/default.conf +COPY --from=build-stage /admim/dist /usr/share/nginx/html + +EXPOSE 80 diff --git a/yudao-ui-admin/nginx.conf b/yudao-ui-admin/nginx.conf new file mode 100644 index 000000000..93f261baf --- /dev/null +++ b/yudao-ui-admin/nginx.conf @@ -0,0 +1,26 @@ +server { + listen 80 default_server; + server_name _; ## 重要!!!修改成你的外网 IP/域名 + + gzip on; + gzip_min_length 1k; # 设置允许压缩的页面最小字节数 + gzip_buffers 4 16k; # 用来存储 gzip 的压缩结果 + gzip_http_version 1.1; # 识别 HTTP 协议版本 + gzip_comp_level 2; # 设置 gzip 的压缩比 1-9。1 压缩比最小但最快,而 9 相反 + gzip_types text/plain application/x-javascript text/css application/xml application/javascript; # 指定压缩类型 + gzip_proxied any; # 无论后端服务器的 headers 头返回什么信息,都无条件启用压缩 + + location / { ## 前端项目 + root /usr/share/nginx/html/; + index index.html index.htm; + try_files $uri $uri/ /index.html; + } + + location /prod-api/ { ## 后端项目 - 管理后台 + proxy_pass http://yudao-server:48080/; ## 重要!!!proxy_pass 需要设置为后端项目所在服务器的 IP + 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; + } +} diff --git a/yudao-ui-admin/package.json b/yudao-ui-admin/package.json index e15da953b..e8acd5c97 100644 --- a/yudao-ui-admin/package.json +++ b/yudao-ui-admin/package.json @@ -1,6 +1,6 @@ { "name": "yudao-ui-admin", - "version": "1.7.1-snapshot", + "version": "1.7.3-snapshot", "description": "芋道管理系统", "author": "芋道", "license": "MIT", diff --git a/yudao-ui-admin/src/api/mp/mpuser.js b/yudao-ui-admin/src/api/mp/mpuser.js index bde0bd215..200d19052 100644 --- a/yudao-ui-admin/src/api/mp/mpuser.js +++ b/yudao-ui-admin/src/api/mp/mpuser.js @@ -29,7 +29,7 @@ export function getUserPage(query) { // 同步公众号粉丝 export function syncUser(accountId) { return request({ - url: '/mp/tag/sync?accountId=' + accountId, + url: '/mp/user/sync?accountId=' + accountId, method: 'post' }) } diff --git a/yudao-ui-admin/src/components/Editor/index.vue b/yudao-ui-admin/src/components/Editor/index.vue index 61d62434e..bc14fc3a9 100644 --- a/yudao-ui-admin/src/components/Editor/index.vue +++ b/yudao-ui-admin/src/components/Editor/index.vue @@ -84,7 +84,7 @@ export default { ], }, placeholder: "请输入内容", - readOnly: this.readOnly, + readOnly: true, }, }; }, @@ -123,6 +123,13 @@ export default { init() { const editor = this.$refs.editor; this.Quill = new Quill(editor, this.options); + // 取消自动聚焦 start + this.$nextTick(()=>{ + this.Quill.blur(); + if(!this.readOnly){ + this.Quill.enable(); + } + }); // 如果设置了上传地址则自定义图片上传事件 if (this.type === 'url') { let toolbar = this.Quill.getModule("toolbar"); diff --git a/yudao-ui-admin/src/views/bpm/task/done.vue b/yudao-ui-admin/src/views/bpm/task/done/index.vue similarity index 100% rename from yudao-ui-admin/src/views/bpm/task/done.vue rename to yudao-ui-admin/src/views/bpm/task/done/index.vue diff --git a/yudao-ui-admin/src/views/bpm/task/todo.vue b/yudao-ui-admin/src/views/bpm/task/todo/index.vue similarity index 100% rename from yudao-ui-admin/src/views/bpm/task/todo.vue rename to yudao-ui-admin/src/views/bpm/task/todo/index.vue diff --git a/yudao-ui-admin/src/views/login.vue b/yudao-ui-admin/src/views/login.vue index 39b84d504..f2a1625bd 100644 --- a/yudao-ui-admin/src/views/login.vue +++ b/yudao-ui-admin/src/views/login.vue @@ -83,6 +83,14 @@ + + + + 📚开发指南 + 🔥视频教程 + ⚡面试手册 + 🤝外包咨询 + diff --git a/yudao-ui-admin/src/views/mall/promotion/seckill/seckillActivity/index.vue b/yudao-ui-admin/src/views/mall/promotion/seckill/seckillActivity/index.vue index 5616fb983..f00af26a9 100644 --- a/yudao-ui-admin/src/views/mall/promotion/seckill/seckillActivity/index.vue +++ b/yudao-ui-admin/src/views/mall/promotion/seckill/seckillActivity/index.vue @@ -17,7 +17,7 @@ - + @@ -38,8 +38,9 @@ v-hasPermi="['promotion:seckill-activity:create']">新增秒杀活动 - 管理参与场次 + 管理参与场次 + @@ -54,8 +55,8 @@ @@ -110,12 +111,13 @@ - - {{ item.name + ': { ' }} {{ item.startTime }} -- {{ item.endTime + - ' }' - }} - - + + {{ item.name + ': { ' }} {{ item.startTime }} -- {{ + item.endTime + + ' }' + }} + + @@ -186,10 +188,17 @@