Merge branch 'master' of https://gitee.com/zhijiantianya/ruoyi-vue-pro into feature/visual
This commit is contained in:
commit
b2f5900abc
2
.gitignore
vendored
2
.gitignore
vendored
@ -47,3 +47,5 @@ nbdist/
|
|||||||
rebel.xml
|
rebel.xml
|
||||||
|
|
||||||
application-my.yaml
|
application-my.yaml
|
||||||
|
|
||||||
|
/yudao-ui-app/unpackage/
|
||||||
|
102
README.md
102
README.md
@ -9,6 +9,12 @@
|
|||||||
|
|
||||||
如果这个项目让你有所收获,记得 Star 关注哦,这对我是非常不错的鼓励与支持。
|
如果这个项目让你有所收获,记得 Star 关注哦,这对我是非常不错的鼓励与支持。
|
||||||
|
|
||||||
|
## 🐶 新手必读
|
||||||
|
|
||||||
|
* 演示地址:<http://dashboard.yudao.iocoder.cn>
|
||||||
|
* 启动文档:<https://doc.iocoder.cn/quick-start/>
|
||||||
|
* 视频教程:<https://doc.iocoder.cn/video/>
|
||||||
|
|
||||||
## 🐯 平台简介
|
## 🐯 平台简介
|
||||||
|
|
||||||
**芋道**,以开发者为中心,打造中国第一流的快速开发平台,全部开源,个人与企业可 100% 免费使用。
|
**芋道**,以开发者为中心,打造中国第一流的快速开发平台,全部开源,个人与企业可 100% 免费使用。
|
||||||
@ -17,7 +23,8 @@
|
|||||||
>
|
>
|
||||||
> 😜 给项目点点 Star 吧,这对我们真的很重要!
|
> 😜 给项目点点 Star 吧,这对我们真的很重要!
|
||||||
|
|
||||||
* 前端采用 [vue-element-admin](https://github.com/PanJiaChen/vue-element-admin) ,正在支持 Vue 3 + ElementUI Plus 最新方案。
|
* 前端 Vue2 版本采用 [vue-element-admin](https://github.com/PanJiaChen/vue-element-admin)
|
||||||
|
* 前端 Vue3 版本采用 [vue-element-plus-admin](https://gitee.com/kailong110120130/vue-element-plus-admin)
|
||||||
* 后端采用 Spring Boot、MySQL + MyBatis Plus、Redis + Redisson。
|
* 后端采用 Spring Boot、MySQL + MyBatis Plus、Redis + Redisson。
|
||||||
* 数据库可使用 MySQL、Oracle、PostgreSQL、SQL Server、MariaDB、国产达梦 DM、TiDB 等
|
* 数据库可使用 MySQL、Oracle、PostgreSQL、SQL Server、MariaDB、国产达梦 DM、TiDB 等
|
||||||
* 权限认证使用 Spring Security & Token & Redis,支持多终端、多种用户的认证系统。
|
* 权限认证使用 Spring Security & Token & Redis,支持多终端、多种用户的认证系统。
|
||||||
@ -34,15 +41,6 @@
|
|||||||
| `yudao-cloud` | Spring Cloud 微服务 | **[Gitee](https://gitee.com/zhijiantianya/yudao-cloud)** [Github](https://github.com/YunaiV/yudao-cloud) |
|
| `yudao-cloud` | Spring Cloud 微服务 | **[Gitee](https://gitee.com/zhijiantianya/yudao-cloud)** [Github](https://github.com/YunaiV/yudao-cloud) |
|
||||||
| `Spring-Boot-Labs` | Spring Boot & Cloud 入门 | **[Gitee](https://gitee.com/zhijiantianya/SpringBoot-Labs)** [Github](https://github.com/YunaiV/SpringBoot-Labs) |
|
| `Spring-Boot-Labs` | Spring Boot & Cloud 入门 | **[Gitee](https://gitee.com/zhijiantianya/SpringBoot-Labs)** [Github](https://github.com/YunaiV/SpringBoot-Labs) |
|
||||||
|
|
||||||
## 🐶 在线体验
|
|
||||||
|
|
||||||
演示地址:<http://dashboard.yudao.iocoder.cn>
|
|
||||||
* 账号密码:admin/admin123
|
|
||||||
|
|
||||||
文档地址:<http://www.iocoder.cn/categories/Yudao/>
|
|
||||||
* [《如何搭建环境》](http://www.iocoder.cn/categories/Yudao/?yudao)
|
|
||||||
|
|
||||||
视频教程:<https://doc.iocoder.cn/video/>
|
|
||||||
|
|
||||||
## 🐼 内置功能
|
## 🐼 内置功能
|
||||||
|
|
||||||
@ -102,17 +100,6 @@
|
|||||||
|
|
||||||
ps:核心功能已经实现,正在对接微信小程序中...
|
ps:核心功能已经实现,正在对接微信小程序中...
|
||||||
|
|
||||||
### 商城系统
|
|
||||||
|
|
||||||
正在开发中,大体计划如下:
|
|
||||||
* 2022 Q2 => 完成对 <https://github.com/YunaiV/onemall> 的迁移,作为 onemall 的 Spring Boot 单体版本。
|
|
||||||
* 2022 Q4 => 完成对 <https://github.com/YunaiV/onemall>> 的重构,作为 onemall 的 Spring Cloud 微服务版本。
|
|
||||||
|
|
||||||
### 会员中心
|
|
||||||
|
|
||||||
正在开发中,大体计划如下:
|
|
||||||
* 2021 Q1 =》完成对 <https://github.com/YunaiV/onemall> 的迁移
|
|
||||||
|
|
||||||
### 基础设施
|
### 基础设施
|
||||||
|
|
||||||
| | 功能 | 描述 |
|
| | 功能 | 描述 |
|
||||||
@ -137,6 +124,20 @@ ps:核心功能已经实现,正在对接微信小程序中...
|
|||||||
| 🚀 | 日志服务 | 轻量级日志中心,查看远程服务器的日志 |
|
| 🚀 | 日志服务 | 轻量级日志中心,查看远程服务器的日志 |
|
||||||
| 🚀 | 单元测试 | 基于 JUnit + Mockito 实现单元测试,保证功能的正确性、代码的质量等 |
|
| 🚀 | 单元测试 | 基于 JUnit + Mockito 实现单元测试,保证功能的正确性、代码的质量等 |
|
||||||
|
|
||||||
|
### 商城系统
|
||||||
|
|
||||||
|
建设中...
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
### 会员中心
|
||||||
|
|
||||||
|
和「商城系统」一起开发
|
||||||
|
|
||||||
## 🐨 技术栈
|
## 🐨 技术栈
|
||||||
|
|
||||||
| 项目 | 说明 |
|
| 项目 | 说明 |
|
||||||
@ -155,37 +156,50 @@ ps:核心功能已经实现,正在对接微信小程序中...
|
|||||||
|
|
||||||
### 后端
|
### 后端
|
||||||
|
|
||||||
| 框架 | 说明 | 版本 | 学习指南 |
|
| 框架 | 说明 | 版本 | 学习指南 |
|
||||||
|---------------------------------------------------------------------------------------------|------------------|----------|----------------------------------------------------------------|
|
|---------------------------------------------------------------------------------------------|-----------------------|-----------|----------------------------------------------------------------|
|
||||||
| [Spring Boot](https://spring.io/projects/spring-boot) | 应用开发框架 | 2.6.8 | [文档](https://github.com/YunaiV/SpringBoot-Labs) |
|
| [Spring Boot](https://spring.io/projects/spring-boot) | 应用开发框架 | 2.6.9 | [文档](https://github.com/YunaiV/SpringBoot-Labs) |
|
||||||
| [MySQL](https://www.mysql.com/cn/) | 数据库服务器 | 5.7 | |
|
| [MySQL](https://www.mysql.com/cn/) | 数据库服务器 | 5.7 | |
|
||||||
| [Druid](https://github.com/alibaba/druid) | JDBC 连接池、监控组件 | 1.2.8 | [文档](http://www.iocoder.cn/Spring-Boot/datasource-pool/?yudao) |
|
| [Druid](https://github.com/alibaba/druid) | JDBC 连接池、监控组件 | 1.2.11 | [文档](http://www.iocoder.cn/Spring-Boot/datasource-pool/?yudao) |
|
||||||
| [MyBatis Plus](https://mp.baomidou.com/) | MyBatis 增强工具包 | 3.5.2 | [文档](http://www.iocoder.cn/Spring-Boot/MyBatis/?yudao) |
|
| [MyBatis Plus](https://mp.baomidou.com/) | MyBatis 增强工具包 | 3.5.2 | [文档](http://www.iocoder.cn/Spring-Boot/MyBatis/?yudao) |
|
||||||
| [Dynamic Datasource](https://dynamic-datasource.com/) | 动态数据源 | 3.5.0 | [文档](http://www.iocoder.cn/Spring-Boot/datasource-pool/?yudao) |
|
| [Dynamic Datasource](https://dynamic-datasource.com/) | 动态数据源 | 3.5.0 | [文档](http://www.iocoder.cn/Spring-Boot/datasource-pool/?yudao) |
|
||||||
| [Redis](https://redis.io/) | key-value 数据库 | 5.0 | |
|
| [Redis](https://redis.io/) | key-value 数据库 | 5.0 | |
|
||||||
| [Redisson](https://github.com/redisson/redisson) | Redis 客户端 | 3.17.3 | [文档](http://www.iocoder.cn/Spring-Boot/Redis/?yudao) |
|
| [Redisson](https://github.com/redisson/redisson) | Redis 客户端 | 3.17.4 | [文档](http://www.iocoder.cn/Spring-Boot/Redis/?yudao) |
|
||||||
| [Spring MVC](https://github.com/spring-projects/spring-framework/tree/master/spring-webmvc) | MVC 框架 | 5.3.20 | [文档](http://www.iocoder.cn/SpringMVC/MVC/?yudao) |
|
| [Spring MVC](https://github.com/spring-projects/spring-framework/tree/master/spring-webmvc) | MVC 框架 | 5.3.20 | [文档](http://www.iocoder.cn/SpringMVC/MVC/?yudao) |
|
||||||
| [Spring Security](https://github.com/spring-projects/spring-security) | Spring 安全框架 | 5.6.5 | [文档](http://www.iocoder.cn/Spring-Boot/Spring-Security/?yudao) |
|
| [Spring Security](https://github.com/spring-projects/spring-security) | Spring 安全框架 | 5.6.5 | [文档](http://www.iocoder.cn/Spring-Boot/Spring-Security/?yudao) |
|
||||||
| [Hibernate Validator](https://github.com/hibernate/hibernate-validator) | 参数校验组件 | 6.2.3 | [文档](http://www.iocoder.cn/Spring-Boot/Validation/?yudao) |
|
| [Hibernate Validator](https://github.com/hibernate/hibernate-validator) | 参数校验组件 | 6.2.3 | [文档](http://www.iocoder.cn/Spring-Boot/Validation/?yudao) |
|
||||||
| [Flowable](https://github.com/flowable/flowable-engine) | 工作流引擎 | 6.7.0 | [文档](https://doc.iocoder.cn/bpm/) |
|
| [Flowable](https://github.com/flowable/flowable-engine) | 工作流引擎 | 6.7.0 | [文档](https://doc.iocoder.cn/bpm/) |
|
||||||
| [Quartz](https://github.com/quartz-scheduler) | 任务调度组件 | 2.3.2 | [文档](http://www.iocoder.cn/Spring-Boot/Job/?yudao) |
|
| [Quartz](https://github.com/quartz-scheduler) | 任务调度组件 | 2.3.2 | [文档](http://www.iocoder.cn/Spring-Boot/Job/?yudao) |
|
||||||
| [Knife4j](https://gitee.com/xiaoym/knife4j) | Swagger 增强 UI 实现 | 3.0.3 | [文档](http://www.iocoder.cn/Spring-Boot/Swagger/?yudao) |
|
| [Knife4j](https://gitee.com/xiaoym/knife4j) | Swagger 增强 UI 实现 | 3.0.3 | [文档](http://www.iocoder.cn/Spring-Boot/Swagger/?yudao) |
|
||||||
| [Resilience4j](https://github.com/resilience4j/resilience4j) | 服务保障组件 | 1.7.1 | [文档](http://www.iocoder.cn/Spring-Boot/Resilience4j/?yudao) |
|
| [Resilience4j](https://github.com/resilience4j/resilience4j) | 服务保障组件 | 1.7.1 | [文档](http://www.iocoder.cn/Spring-Boot/Resilience4j/?yudao) |
|
||||||
| [SkyWalking](https://skywalking.apache.org/) | 分布式应用追踪系统 | 8.5.0 | [文档](http://www.iocoder.cn/Spring-Boot/SkyWalking/?yudao) |
|
| [SkyWalking](https://skywalking.apache.org/) | 分布式应用追踪系统 | 8.5.0 | [文档](http://www.iocoder.cn/Spring-Boot/SkyWalking/?yudao) |
|
||||||
| [Spring Boot Admin](https://github.com/codecentric/spring-boot-admin) | Spring Boot 监控平台 | 2.6.7 | [文档](http://www.iocoder.cn/Spring-Boot/Admin/?yudao) |
|
| [Spring Boot Admin](https://github.com/codecentric/spring-boot-admin) | Spring Boot 监控平台 | 2.6.7 | [文档](http://www.iocoder.cn/Spring-Boot/Admin/?yudao) |
|
||||||
| [Jackson](https://github.com/FasterXML/jackson) | JSON 工具库 | 2.13.3 | |
|
| [Jackson](https://github.com/FasterXML/jackson) | JSON 工具库 | 2.13.3 | |
|
||||||
| [MapStruct](https://mapstruct.org/) | Java Bean 转换 | 1.4.1 | [文档](http://www.iocoder.cn/Spring-Boot/MapStruct/?yudao) |
|
| [MapStruct](https://mapstruct.org/) | Java Bean 转换 | 1.4.1 | [文档](http://www.iocoder.cn/Spring-Boot/MapStruct/?yudao) |
|
||||||
| [Lombok](https://projectlombok.org/) | 消除冗长的 Java 代码 | 1.16.14 | [文档](http://www.iocoder.cn/Spring-Boot/Lombok/?yudao) |
|
| [Lombok](https://projectlombok.org/) | 消除冗长的 Java 代码 | 1.16.14 | [文档](http://www.iocoder.cn/Spring-Boot/Lombok/?yudao) |
|
||||||
| [JUnit](https://junit.org/junit5/) | Java 单元测试框架 | 5.8.2 | - |
|
| [JUnit](https://junit.org/junit5/) | Java 单元测试框架 | 5.8.2 | - |
|
||||||
| [Mockito](https://github.com/mockito/mockito) | Java Mock 框架 | 4.0.0 | - |
|
| [Mockito](https://github.com/mockito/mockito) | Java Mock 框架 | 4.0.0 | - |
|
||||||
|
|
||||||
### 前端
|
### Vue2 前端
|
||||||
|
|
||||||
| 框架 | 说明 | 版本 |
|
| 框架 | 说明 | 版本 |
|
||||||
|------------------------------------------------------------------------------|---------------|--------|
|
|------------------------------------------------------------------------------|---------------|--------|
|
||||||
| [Vue](https://cn.vuejs.org/index.html) | JavaScript 框架 | 2.6.12 |
|
| [Vue](https://cn.vuejs.org/index.html) | JavaScript 框架 | 2.6.12 |
|
||||||
| [Vue Element Admin](https://panjiachen.github.io/vue-element-admin-site/zh/) | 后台前端解决方案 | - |
|
| [Vue Element Admin](https://panjiachen.github.io/vue-element-admin-site/zh/) | 后台前端解决方案 | - |
|
||||||
|
|
||||||
|
### Vue3 前端
|
||||||
|
|
||||||
|
| 框架 | 说明 | 版本 |
|
||||||
|
|----------------------------------------------------------------------|------------------|--------|
|
||||||
|
| [Vue](https://staging-cn.vuejs.org/) | Vue 框架 | 3.2.37 |
|
||||||
|
| [Vite](https://cn.vitejs.dev//) | 开发与构建工具 | 3.0.3 |
|
||||||
|
| [Element Plus](https://element-plus.org/zh-CN/) | Element Plus | 2.2.9 |
|
||||||
|
| [TypeScript](https://www.typescriptlang.org/docs/) | TypeScript | 4.7.4 |
|
||||||
|
| [pinia](https://pinia.vuejs.org/) | Vue 存储库 替代 vuex5 | 2.0.17 |
|
||||||
|
| [vue-i18n](https://kazupon.github.io/vue-i18n/zh/introduction.html/) | 国际化 | 9.1.10 |
|
||||||
|
| [windicss](https://cn.windicss.org/) | 下一代工具优先的 CSS 框架 | 3.5.6 |
|
||||||
|
| [iconify](https://icon-sets.iconify.design/) | 在线图标库 | 2.2.1 |
|
||||||
|
|
||||||
## 🐷 演示图
|
## 🐷 演示图
|
||||||
|
|
||||||
### 系统功能
|
### 系统功能
|
||||||
|
@ -431,7 +431,6 @@ CREATE TABLE `bpm_task_ext` (
|
|||||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号',
|
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号',
|
||||||
`assignee_user_id` bigint NULL DEFAULT NULL COMMENT '任务的审批人',
|
`assignee_user_id` bigint NULL DEFAULT NULL COMMENT '任务的审批人',
|
||||||
`name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '任务的名字',
|
`name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '任务的名字',
|
||||||
`task_def_key` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '流程任务key',
|
|
||||||
`task_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '任务的编号',
|
`task_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '任务的编号',
|
||||||
`result` tinyint NOT NULL COMMENT '任务的结果',
|
`result` tinyint NOT NULL COMMENT '任务的结果',
|
||||||
`reason` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '审批建议',
|
`reason` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '审批建议',
|
||||||
|
261
sql/mysql/vue3-menu.sql
Normal file
261
sql/mysql/vue3-menu.sql
Normal file
@ -0,0 +1,261 @@
|
|||||||
|
-- ----------------------------
|
||||||
|
-- Table structure for system_menu
|
||||||
|
-- icon 不兼容
|
||||||
|
-- ----------------------------
|
||||||
|
DROP TABLE IF EXISTS `system_menu`;
|
||||||
|
CREATE TABLE `system_menu` (
|
||||||
|
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '菜单ID',
|
||||||
|
`name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '菜单名称',
|
||||||
|
`permission` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '权限标识',
|
||||||
|
`type` tinyint NOT NULL COMMENT '菜单类型',
|
||||||
|
`sort` int NOT NULL DEFAULT 0 COMMENT '显示顺序',
|
||||||
|
`parent_id` bigint NOT NULL DEFAULT 0 COMMENT '父菜单ID',
|
||||||
|
`path` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '路由地址',
|
||||||
|
`icon` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '#' COMMENT '菜单图标',
|
||||||
|
`component` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '组件路径',
|
||||||
|
`status` tinyint NOT NULL DEFAULT 0 COMMENT '菜单状态',
|
||||||
|
`visible` bit(1) NOT NULL DEFAULT b'1' COMMENT '是否可见',
|
||||||
|
`keep_alive` bit(1) NOT NULL DEFAULT b'1' 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 '是否删除',
|
||||||
|
PRIMARY KEY (`id`) USING BTREE
|
||||||
|
) ENGINE = InnoDB AUTO_INCREMENT = 1268 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '菜单权限表' ROW_FORMAT = Dynamic;
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- Records of system_menu
|
||||||
|
-- ----------------------------
|
||||||
|
INSERT INTO `system_menu` VALUES (1, '系统管理', '', 1, 10, 0, '/system', 'ep:tools', NULL, 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-07-20 13:10:54', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (2, '基础设施', '', 1, 20, 0, '/infra', 'ep:brush-filled', NULL, 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-07-20 13:11:55', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (5, 'OA 示例', '', 1, 40, 1185, 'oa', 'ep:guide', NULL, 0, b'1', b'1', 'admin', '2021-09-20 16:26:19', '1', '2022-07-20 14:51:03', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (100, '用户管理', 'system:user:list', 2, 1, 1, 'user', 'ep:avatar', 'system/user/index', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-07-20 13:13:17', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (101, '角色管理', '', 2, 2, 1, 'role', 'ep:user-filled', 'system/role/index', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-07-20 13:13:41', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (102, '菜单管理', '', 2, 3, 1, 'menu', 'ep:grid', 'system/menu/index', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-07-20 13:13:54', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (103, '部门管理', '', 2, 4, 1, 'dept', 'ep:office-building', 'system/dept/index', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-07-20 14:51:31', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (104, '岗位管理', '', 2, 5, 1, 'post', 'ep:briefcase', 'system/post/index', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-07-20 14:41:47', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (105, '字典管理', '', 2, 6, 1, 'dict', 'ep:list', 'system/dict/index', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-07-20 14:42:18', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (106, '配置管理', '', 2, 6, 2, 'config', 'ep:edit', 'infra/config/index', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-07-20 14:48:29', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (107, '通知公告', '', 2, 8, 1, 'notice', 'ep:bell-filled', 'system/notice/index', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-07-20 14:42:30', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (108, '审计日志', '', 1, 9, 1, 'log', 'ep:document-checked', '', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-07-20 14:42:52', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (109, '令牌管理', '', 2, 2, 1261, 'token', 'online', 'system/oauth2/token/index', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-05-11 23:31:42', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (110, '定时任务', '', 2, 12, 2, 'job', 'ep:alarm-clock', 'infra/job/index', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-07-20 14:49:09', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (111, 'MySQL 监控', '', 2, 9, 2, 'druid', 'ep:wind-power', 'infra/druid/index', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-07-20 14:50:06', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (112, 'Java 监控', '', 2, 11, 2, 'admin-server', 'ep:opportunity', 'infra/server/index', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-07-20 14:49:42', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (113, 'Redis 监控', '', 2, 10, 2, 'redis', 'ep:set-up', 'infra/redis/index', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-07-20 14:49:52', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (114, '表单构建', 'infra:build:list', 2, 2, 2, 'build', 'ep:calendar', 'infra/build/index', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-07-20 14:47:29', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (115, '代码生成', 'infra:codegen:query', 2, 1, 2, 'codegen', 'ep:connection', 'infra/codegen/index', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-07-20 14:46:41', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (116, '系统接口', 'infra:swagger:list', 2, 3, 2, 'swagger', 'ep:operation', 'infra/swagger/index', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-07-20 14:47:41', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (500, '操作日志', '', 2, 1, 108, 'operate-log', 'form', 'system/operatelog/index', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (501, '登录日志', '', 2, 2, 108, 'login-log', 'logininfor', 'system/loginlog/index', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1001, '用户查询', 'system:user:query', 3, 1, 100, '', '#', '', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1002, '用户新增', 'system:user:create', 3, 2, 100, '', '', '', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1003, '用户修改', 'system:user:update', 3, 3, 100, '', '', '', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1004, '用户删除', 'system:user:delete', 3, 4, 100, '', '', '', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1005, '用户导出', 'system:user:export', 3, 5, 100, '', '#', '', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1006, '用户导入', 'system:user:import', 3, 6, 100, '', '#', '', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1007, '重置密码', 'system:user:update-password', 3, 7, 100, '', '', '', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1008, '角色查询', 'system:role:query', 3, 1, 101, '', '#', '', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1009, '角色新增', 'system:role:create', 3, 2, 101, '', '', '', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1010, '角色修改', 'system:role:update', 3, 3, 101, '', '', '', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1011, '角色删除', 'system:role:delete', 3, 4, 101, '', '', '', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1012, '角色导出', 'system:role:export', 3, 5, 101, '', '#', '', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1013, '菜单查询', 'system:menu:query', 3, 1, 102, '', '#', '', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1014, '菜单新增', 'system:menu:create', 3, 2, 102, '', '#', '', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1015, '菜单修改', 'system:menu:update', 3, 3, 102, '', '#', '', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1016, '菜单删除', 'system:menu:delete', 3, 4, 102, '', '#', '', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1017, '部门查询', 'system:dept:query', 3, 1, 103, '', '#', '', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1018, '部门新增', 'system:dept:create', 3, 2, 103, '', '', '', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1019, '部门修改', 'system:dept:update', 3, 3, 103, '', '', '', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1020, '部门删除', 'system:dept:delete', 3, 4, 103, '', '', '', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1021, '岗位查询', 'system:post:query', 3, 1, 104, '', '#', '', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1022, '岗位新增', 'system:post:create', 3, 2, 104, '', '', '', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1023, '岗位修改', 'system:post:update', 3, 3, 104, '', '', '', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1024, '岗位删除', 'system:post:delete', 3, 4, 104, '', '', '', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1025, '岗位导出', 'system:post:export', 3, 5, 104, '', '#', '', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1026, '字典查询', 'system:dict:query', 3, 1, 105, '#', '#', '', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1027, '字典新增', 'system:dict:create', 3, 2, 105, '', '', '', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1028, '字典修改', 'system:dict:update', 3, 3, 105, '', '', '', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1029, '字典删除', 'system:dict:delete', 3, 4, 105, '', '', '', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1030, '字典导出', 'system:dict:export', 3, 5, 105, '#', '#', '', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1031, '配置查询', 'infra:config:query', 3, 1, 106, '', '', '', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1032, '配置新增', 'infra:config:create', 3, 2, 106, '', '', '', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1033, '配置修改', 'infra:config:update', 3, 3, 106, '', '', '', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1034, '配置删除', 'infra:config:delete', 3, 4, 106, '', '', '', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1035, '配置导出', 'infra:config:export', 3, 5, 106, '', '', '', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1036, '公告查询', 'system:notice:query', 3, 1, 107, '#', '#', '', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1037, '公告新增', 'system:notice:create', 3, 2, 107, '', '', '', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1038, '公告修改', 'system:notice:update', 3, 3, 107, '', '', '', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1039, '公告删除', 'system:notice:delete', 3, 4, 107, '', '', '', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1040, '操作查询', 'system:operate-log:query', 3, 1, 500, '', '', '', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1042, '日志导出', 'system:operate-log:export', 3, 2, 500, '', '', '', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1043, '登录查询', 'system:login-log:query', 3, 1, 501, '#', '#', '', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1045, '日志导出', 'system:login-log:export', 3, 3, 501, '#', '#', '', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1046, '令牌列表', 'system:oauth2-token:page', 3, 1, 109, '', '', '', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-05-09 23:54:42', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1048, '令牌删除', 'system:oauth2-token:delete', 3, 2, 109, '', '', '', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-05-09 23:54:53', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1050, '任务新增', 'infra:job:create', 3, 2, 110, '', '', '', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1051, '任务修改', 'infra:job:update', 3, 3, 110, '', '', '', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1052, '任务删除', 'infra:job:delete', 3, 4, 110, '', '', '', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1053, '状态修改', 'infra:job:update', 3, 5, 110, '', '', '', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1054, '任务导出', 'infra:job:export', 3, 7, 110, '', '', '', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1056, '生成修改', 'infra:codegen:update', 3, 2, 115, '', '', '', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1057, '生成删除', 'infra:codegen:delete', 3, 3, 115, '', '', '', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1058, '导入代码', 'infra:codegen:create', 3, 2, 115, '', '', '', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1059, '预览代码', 'infra:codegen:preview', 3, 4, 115, '', '', '', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1060, '生成代码', 'infra:codegen:download', 3, 5, 115, '', '', '', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1063, '设置角色菜单权限', 'system:permission:assign-role-menu', 3, 6, 101, '', '', '', 0, b'1', b'1', '', '2021-01-06 17:53:44', '', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1064, '设置角色数据权限', 'system:permission:assign-role-data-scope', 3, 7, 101, '', '', '', 0, b'1', b'1', '', '2021-01-06 17:56:31', '', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1065, '设置用户角色', 'system:permission:assign-user-role', 3, 8, 101, '', '', '', 0, b'1', b'1', '', '2021-01-07 10:23:28', '', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1066, '获得 Redis 监控信息', 'infra:redis:get-monitor-info', 3, 1, 113, '', '', '', 0, b'1', b'1', '', '2021-01-26 01:02:31', '', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1067, '获得 Redis Key 列表', 'infra:redis:get-key-list', 3, 2, 113, '', '', '', 0, b'1', b'1', '', '2021-01-26 01:02:52', '', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1070, '代码生成示例', 'infra:test-demo:query', 2, 1, 2, 'test-demo', 'ep:baseball', 'infra/testDemo/index', 0, b'1', b'1', '', '2021-02-06 12:42:49', '1', '2022-07-20 14:46:53', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1071, '测试示例表创建', 'infra:test-demo:create', 3, 1, 1070, '', '', '', 0, b'1', b'1', '', '2021-02-06 12:42:49', '1', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1072, '测试示例表更新', 'infra:test-demo:update', 3, 2, 1070, '', '', '', 0, b'1', b'1', '', '2021-02-06 12:42:49', '1', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1073, '测试示例表删除', 'infra:test-demo:delete', 3, 3, 1070, '', '', '', 0, b'1', b'1', '', '2021-02-06 12:42:49', '1', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1074, '测试示例表导出', 'infra:test-demo:export', 3, 4, 1070, '', '', '', 0, b'1', b'1', '', '2021-02-06 12:42:49', '1', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1075, '任务触发', 'infra:job:trigger', 3, 8, 110, '', '', '', 0, b'1', b'1', '', '2021-02-07 13:03:10', '', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1076, '数据库文档', '', 2, 4, 2, 'db-doc', 'ep:grid', 'infra/dbDoc/index', 0, b'1', b'1', '', '2021-02-08 01:41:47', '1', '2022-07-20 14:47:56', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1077, '监控平台', '', 2, 13, 2, 'skywalking', 'ep:aim', 'infra/skywalking/index', 0, b'1', b'1', '', '2021-02-08 20:41:31', '1', '2022-07-20 14:49:15', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1078, '访问日志', '', 2, 1, 1083, 'api-access-log', 'log', 'infra/apiAccessLog/index', 0, b'1', b'1', '', '2021-02-26 01:32:59', '1', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1082, '日志导出', 'infra:api-access-log:export', 3, 2, 1078, '', '', '', 0, b'1', b'1', '', '2021-02-26 01:32:59', '1', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1083, 'API 日志', '', 2, 8, 2, 'log', 'ep:bell', NULL, 0, b'1', b'1', '', '2021-02-26 02:18:24', '1', '2022-07-20 14:48:36', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1084, '错误日志', 'infra:api-error-log:query', 2, 2, 1083, 'api-error-log', 'log', 'infra/apiErrorLog/index', 0, b'1', b'1', '', '2021-02-26 07:53:20', '', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1085, '日志处理', 'infra:api-error-log:update-status', 3, 2, 1084, '', '', '', 0, b'1', b'1', '', '2021-02-26 07:53:20', '1', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1086, '日志导出', 'infra:api-error-log:export', 3, 3, 1084, '', '', '', 0, b'1', b'1', '', '2021-02-26 07:53:20', '1', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1087, '任务查询', 'infra:job:query', 3, 1, 110, '', '', '', 0, b'1', b'1', '1', '2021-03-10 01:26:19', '1', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1088, '日志查询', 'infra:api-access-log:query', 3, 1, 1078, '', '', '', 0, b'1', b'1', '1', '2021-03-10 01:28:04', '1', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1089, '日志查询', 'infra:api-error-log:query', 3, 1, 1084, '', '', '', 0, b'1', b'1', '1', '2021-03-10 01:29:09', '1', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1090, '文件列表', '', 2, 5, 1243, 'file-list', 'upload', 'infra/fileList/index', 0, b'1', b'1', '', '2021-03-12 20:16:20', '1', '2022-07-20 12:10:47', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1091, '文件查询', 'infra:file:query', 3, 1, 1090, '', '', '', 0, b'1', b'1', '', '2021-03-12 20:16:20', '', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1092, '文件删除', 'infra:file:delete', 3, 4, 1090, '', '', '', 0, b'1', b'1', '', '2021-03-12 20:16:20', '', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1093, '短信管理', '', 1, 11, 1, 'sms', 'ep:chat-dot-square', NULL, 0, b'1', b'1', '1', '2021-04-05 01:10:16', '1', '2022-07-20 14:43:32', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1094, '短信渠道', '', 2, 0, 1093, 'sms-channel', 'phone', 'system/sms/smsChannel', 0, b'1', b'1', '', '2021-04-01 11:07:15', '1', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1095, '短信渠道查询', 'system:sms-channel:query', 3, 1, 1094, '', '', '', 0, b'1', b'1', '', '2021-04-01 11:07:15', '', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1096, '短信渠道创建', 'system:sms-channel:create', 3, 2, 1094, '', '', '', 0, b'1', b'1', '', '2021-04-01 11:07:15', '', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1097, '短信渠道更新', 'system:sms-channel:update', 3, 3, 1094, '', '', '', 0, b'1', b'1', '', '2021-04-01 11:07:15', '', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1098, '短信渠道删除', 'system:sms-channel:delete', 3, 4, 1094, '', '', '', 0, b'1', b'1', '', '2021-04-01 11:07:15', '', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1100, '短信模板', '', 2, 1, 1093, 'sms-template', 'phone', 'system/sms/smsTemplate', 0, b'1', b'1', '', '2021-04-01 17:35:17', '1', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1101, '短信模板查询', 'system:sms-template:query', 3, 1, 1100, '', '', '', 0, b'1', b'1', '', '2021-04-01 17:35:17', '', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1102, '短信模板创建', 'system:sms-template:create', 3, 2, 1100, '', '', '', 0, b'1', b'1', '', '2021-04-01 17:35:17', '', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1103, '短信模板更新', 'system:sms-template:update', 3, 3, 1100, '', '', '', 0, b'1', b'1', '', '2021-04-01 17:35:17', '', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1104, '短信模板删除', 'system:sms-template:delete', 3, 4, 1100, '', '', '', 0, b'1', b'1', '', '2021-04-01 17:35:17', '', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1105, '短信模板导出', 'system:sms-template:export', 3, 5, 1100, '', '', '', 0, b'1', b'1', '', '2021-04-01 17:35:17', '', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1106, '发送测试短信', 'system:sms-template:send-sms', 3, 6, 1100, '', '', '', 0, b'1', b'1', '1', '2021-04-11 00:26:40', '1', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1107, '短信日志', '', 2, 2, 1093, 'sms-log', 'phone', 'system/sms/smsLog', 0, b'1', b'1', '', '2021-04-11 08:37:05', '1', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1108, '短信日志查询', 'system:sms-log:query', 3, 1, 1107, '', '', '', 0, b'1', b'1', '', '2021-04-11 08:37:05', '', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1109, '短信日志导出', 'system:sms-log:export', 3, 5, 1107, '', '', '', 0, b'1', b'1', '', '2021-04-11 08:37:05', '', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1110, '错误码管理', '', 2, 12, 1, 'error-code', 'ep:document-delete', 'system/errorCode/index', 0, b'1', b'1', '', '2021-04-13 21:46:42', '1', '2022-07-20 14:43:42', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1111, '错误码查询', 'system:error-code:query', 3, 1, 1110, '', '', '', 0, b'1', b'1', '', '2021-04-13 21:46:42', '', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1112, '错误码创建', 'system:error-code:create', 3, 2, 1110, '', '', '', 0, b'1', b'1', '', '2021-04-13 21:46:42', '', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1113, '错误码更新', 'system:error-code:update', 3, 3, 1110, '', '', '', 0, b'1', b'1', '', '2021-04-13 21:46:42', '', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1114, '错误码删除', 'system:error-code:delete', 3, 4, 1110, '', '', '', 0, b'1', b'1', '', '2021-04-13 21:46:42', '', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1115, '错误码导出', 'system:error-code:export', 3, 5, 1110, '', '', '', 0, b'1', b'1', '', '2021-04-13 21:46:42', '', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1117, '支付管理', '', 1, 11, 0, '/pay', 'ep:goods-filled', NULL, 0, b'1', b'1', '1', '2021-12-25 16:43:41', '1', '2022-07-20 13:11:45', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1118, '请假查询', '', 2, 0, 5, 'leave', 'user', 'bpm/oa/leave/index', 0, b'1', b'1', '', '2021-09-20 08:51:03', '1', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1119, '请假申请查询', 'bpm:oa-leave:query', 3, 1, 1118, '', '', '', 0, b'1', b'1', '', '2021-09-20 08:51:03', '1', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1120, '请假申请创建', 'bpm:oa-leave:create', 3, 2, 1118, '', '', '', 0, b'1', b'1', '', '2021-09-20 08:51:03', '1', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1126, '应用信息', '', 2, 1, 1117, 'app', 'ep:cellphone', 'pay/app/index', 0, b'1', b'1', '', '2021-11-10 01:13:30', '1', '2022-07-20 14:44:17', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1127, '支付应用信息查询', 'pay:app:query', 3, 1, 1126, '', '', '', 0, b'1', b'1', '', '2021-11-10 01:13:31', '', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1128, '支付应用信息创建', 'pay:app:create', 3, 2, 1126, '', '', '', 0, b'1', b'1', '', '2021-11-10 01:13:31', '', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1129, '支付应用信息更新', 'pay:app:update', 3, 3, 1126, '', '', '', 0, b'1', b'1', '', '2021-11-10 01:13:31', '', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1130, '支付应用信息删除', 'pay:app:delete', 3, 4, 1126, '', '', '', 0, b'1', b'1', '', '2021-11-10 01:13:31', '', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1131, '支付应用信息导出', 'pay:app:export', 3, 5, 1126, '', '', '', 0, b'1', b'1', '', '2021-11-10 01:13:31', '', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1132, '秘钥解析', 'pay:channel:parsing', 3, 6, 1129, '', '', '', 0, b'1', b'1', '1', '2021-11-08 15:15:47', '1', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1133, '支付商户信息查询', 'pay:merchant:query', 3, 1, 1132, '', '', '', 0, b'1', b'1', '', '2021-11-10 01:13:41', '', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1134, '支付商户信息创建', 'pay:merchant:create', 3, 2, 1132, '', '', '', 0, b'1', b'1', '', '2021-11-10 01:13:41', '', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1135, '支付商户信息更新', 'pay:merchant:update', 3, 3, 1132, '', '', '', 0, b'1', b'1', '', '2021-11-10 01:13:41', '', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1136, '支付商户信息删除', 'pay:merchant:delete', 3, 4, 1132, '', '', '', 0, b'1', b'1', '', '2021-11-10 01:13:41', '', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1137, '支付商户信息导出', 'pay:merchant:export', 3, 5, 1132, '', '', '', 0, b'1', b'1', '', '2021-11-10 01:13:41', '', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1138, '租户列表', '', 2, 0, 1224, 'list', 'peoples', 'system/tenant/index', 0, b'1', b'1', '', '2021-12-14 12:31:43', '1', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1139, '租户查询', 'system:tenant:query', 3, 1, 1138, '', '', '', 0, b'1', b'1', '', '2021-12-14 12:31:44', '', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1140, '租户创建', 'system:tenant:create', 3, 2, 1138, '', '', '', 0, b'1', b'1', '', '2021-12-14 12:31:44', '', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1141, '租户更新', 'system:tenant:update', 3, 3, 1138, '', '', '', 0, b'1', b'1', '', '2021-12-14 12:31:44', '', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1142, '租户删除', 'system:tenant:delete', 3, 4, 1138, '', '', '', 0, b'1', b'1', '', '2021-12-14 12:31:44', '', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1143, '租户导出', 'system:tenant:export', 3, 5, 1138, '', '', '', 0, b'1', b'1', '', '2021-12-14 12:31:44', '', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1150, '秘钥解析', '', 3, 6, 1129, '', '', '', 0, b'1', b'1', '1', '2021-11-08 15:15:47', '1', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1161, '退款订单', '', 2, 3, 1117, 'refund', 'ep:message-box', 'pay/refund/index', 0, b'1', b'1', '', '2021-12-25 08:29:07', '1', '2022-07-20 14:45:23', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1162, '退款订单查询', 'pay:refund:query', 3, 1, 1161, '', '', '', 0, b'1', b'1', '', '2021-12-25 08:29:07', '', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1163, '退款订单创建', 'pay:refund:create', 3, 2, 1161, '', '', '', 0, b'1', b'1', '', '2021-12-25 08:29:07', '', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1164, '退款订单更新', 'pay:refund:update', 3, 3, 1161, '', '', '', 0, b'1', b'1', '', '2021-12-25 08:29:07', '', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1165, '退款订单删除', 'pay:refund:delete', 3, 4, 1161, '', '', '', 0, b'1', b'1', '', '2021-12-25 08:29:07', '', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1166, '退款订单导出', 'pay:refund:export', 3, 5, 1161, '', '', '', 0, b'1', b'1', '', '2021-12-25 08:29:07', '', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1173, '支付订单', '', 2, 2, 1117, 'order', 'ep:histogram', 'pay/order/index', 0, b'1', b'1', '', '2021-12-25 08:49:43', '1', '2022-07-20 14:44:36', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1174, '支付订单查询', 'pay:order:query', 3, 1, 1173, '', '', '', 0, b'1', b'1', '', '2021-12-25 08:49:43', '', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1175, '支付订单创建', 'pay:order:create', 3, 2, 1173, '', '', '', 0, b'1', b'1', '', '2021-12-25 08:49:43', '', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1176, '支付订单更新', 'pay:order:update', 3, 3, 1173, '', '', '', 0, b'1', b'1', '', '2021-12-25 08:49:43', '', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1177, '支付订单删除', 'pay:order:delete', 3, 4, 1173, '', '', '', 0, b'1', b'1', '', '2021-12-25 08:49:43', '', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1178, '支付订单导出', 'pay:order:export', 3, 5, 1173, '', '', '', 0, b'1', b'1', '', '2021-12-25 08:49:43', '', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1179, '商户信息', '', 2, 0, 1117, 'merchant', 'ep:goods', 'pay/merchant/index', 0, b'1', b'1', '', '2021-12-25 09:01:44', '1', '2022-07-20 14:44:58', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1180, '支付商户信息查询', 'pay:merchant:query', 3, 1, 1179, '', '', '', 0, b'1', b'1', '', '2021-12-25 09:01:44', '', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1181, '支付商户信息创建', 'pay:merchant:create', 3, 2, 1179, '', '', '', 0, b'1', b'1', '', '2021-12-25 09:01:44', '', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1182, '支付商户信息更新', 'pay:merchant:update', 3, 3, 1179, '', '', '', 0, b'1', b'1', '', '2021-12-25 09:01:44', '', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1183, '支付商户信息删除', '', 3, 4, 1179, '', '', '', 0, b'1', b'1', '', '2021-12-25 09:01:44', '', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1184, '支付商户信息导出', 'pay:merchant:export', 3, 5, 1179, '', '', '', 0, b'1', b'1', '', '2021-12-25 09:01:44', '', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1185, '工作流程', '', 1, 50, 0, '/bpm', 'ep:checked', NULL, 0, b'1', b'1', '1', '2021-12-30 20:26:36', '1', '2022-07-20 13:12:35', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1186, '流程管理', '', 1, 10, 1185, 'manager', 'ep:collection-tag', NULL, 0, b'1', b'1', '1', '2021-12-30 20:28:30', '1', '2022-07-20 14:50:31', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1187, '流程表单', '', 2, 0, 1186, 'form', 'form', 'bpm/form/index', 0, b'1', b'1', '', '2021-12-30 12:38:22', '1', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1188, '表单查询', 'bpm:form:query', 3, 1, 1187, '', '', '', 0, b'1', b'1', '', '2021-12-30 12:38:22', '1', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1189, '表单创建', 'bpm:form:create', 3, 2, 1187, '', '', '', 0, b'1', b'1', '', '2021-12-30 12:38:22', '1', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1190, '表单更新', 'bpm:form:update', 3, 3, 1187, '', '', '', 0, b'1', b'1', '', '2021-12-30 12:38:22', '1', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1191, '表单删除', 'bpm:form:delete', 3, 4, 1187, '', '', '', 0, b'1', b'1', '', '2021-12-30 12:38:22', '1', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1192, '表单导出', 'bpm:form:export', 3, 5, 1187, '', '', '', 0, b'1', b'1', '', '2021-12-30 12:38:22', '1', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1193, '流程模型', '', 2, 5, 1186, 'model', 'guide', 'bpm/model/index', 0, b'1', b'1', '1', '2021-12-31 23:24:58', '103', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1194, '模型查询', 'bpm:model:query', 3, 1, 1193, '', '', '', 0, b'1', b'1', '1', '2022-01-03 19:01:10', '1', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1195, '模型创建', 'bpm:model:create', 3, 2, 1193, '', '', '', 0, b'1', b'1', '1', '2022-01-03 19:01:24', '1', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1196, '模型导入', 'bpm:model:import', 3, 3, 1193, '', '', '', 0, b'1', b'1', '1', '2022-01-03 19:01:35', '1', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1197, '模型更新', 'bpm:model:update', 3, 4, 1193, '', '', '', 0, b'1', b'1', '1', '2022-01-03 19:02:28', '1', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1198, '模型删除', 'bpm:model:delete', 3, 5, 1193, '', '', '', 0, b'1', b'1', '1', '2022-01-03 19:02:43', '1', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1199, '模型发布', 'bpm:model:deploy', 3, 6, 1193, '', '', '', 0, b'1', b'1', '1', '2022-01-03 19:03:24', '1', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1200, '任务管理', '', 1, 20, 1185, 'task', 'ep:calendar', NULL, 0, b'1', b'1', '1', '2022-01-07 23:51:48', '1', '2022-07-20 14:50:40', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1201, '我的流程', '', 2, 0, 1200, 'my', 'people', 'bpm/processInstance/index', 0, b'1', b'1', '', '2022-01-07 15:53:44', '1', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1202, '流程实例的查询', 'bpm:process-instance:query', 3, 1, 1201, '', '', '', 0, b'1', b'1', '', '2022-01-07 15:53:44', '1', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1207, '待办任务', '', 2, 10, 1200, 'todo', 'eye-open', 'bpm/task/todo', 0, b'1', b'1', '1', '2022-01-08 10:33:37', '1', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1208, '已办任务', '', 2, 20, 1200, 'done', 'eye', 'bpm/task/done', 0, b'1', b'1', '1', '2022-01-08 10:34:13', '1', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1209, '用户分组', '', 2, 2, 1186, 'user-group', 'people', 'bpm/group/index', 0, b'1', b'1', '', '2022-01-14 02:14:20', '103', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1210, '用户组查询', 'bpm:user-group:query', 3, 1, 1209, '', '', '', 0, b'1', b'1', '', '2022-01-14 02:14:20', '', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1211, '用户组创建', 'bpm:user-group:create', 3, 2, 1209, '', '', '', 0, b'1', b'1', '', '2022-01-14 02:14:20', '', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1212, '用户组更新', 'bpm:user-group:update', 3, 3, 1209, '', '', '', 0, b'1', b'1', '', '2022-01-14 02:14:20', '', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1213, '用户组删除', 'bpm:user-group:delete', 3, 4, 1209, '', '', '', 0, b'1', b'1', '', '2022-01-14 02:14:20', '', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1215, '流程定义查询', 'bpm:process-definition:query', 3, 10, 1193, '', '', '', 0, b'1', b'1', '1', '2022-01-23 00:21:43', '1', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1216, '流程任务分配规则查询', 'bpm:task-assign-rule:query', 3, 20, 1193, '', '', '', 0, b'1', b'1', '1', '2022-01-23 00:26:53', '1', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1217, '流程任务分配规则创建', 'bpm:task-assign-rule:create', 3, 21, 1193, '', '', '', 0, b'1', b'1', '1', '2022-01-23 00:28:15', '1', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1218, '流程任务分配规则更新', 'bpm:task-assign-rule:update', 3, 22, 1193, '', '', '', 0, b'1', b'1', '1', '2022-01-23 00:28:41', '1', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1219, '流程实例的创建', 'bpm:process-instance:create', 3, 2, 1201, '', '', '', 0, b'1', b'1', '1', '2022-01-23 00:36:15', '1', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1220, '流程实例的取消', 'bpm:process-instance:cancel', 3, 3, 1201, '', '', '', 0, b'1', b'1', '1', '2022-01-23 00:36:33', '1', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1221, '流程任务的查询', 'bpm:task:query', 3, 1, 1207, '', '', '', 0, b'1', b'1', '1', '2022-01-23 00:38:52', '1', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1222, '流程任务的更新', 'bpm:task:update', 3, 2, 1207, '', '', '', 0, b'1', b'1', '1', '2022-01-23 00:39:24', '1', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1224, '租户管理', '', 2, 0, 1, 'tenant', 'ep:cherry', NULL, 0, b'1', b'1', '1', '2022-02-20 01:41:13', '1', '2022-07-20 14:51:46', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1225, '租户套餐', '', 2, 0, 1224, 'package', 'eye', 'system/tenantPackage/index', 0, b'1', b'1', '', '2022-02-19 17:44:06', '1', '2022-04-21 01:21:25', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1226, '租户套餐查询', 'system:tenant-package:query', 3, 1, 1225, '', '', '', 0, b'1', b'1', '', '2022-02-19 17:44:06', '', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1227, '租户套餐创建', 'system:tenant-package:create', 3, 2, 1225, '', '', '', 0, b'1', b'1', '', '2022-02-19 17:44:06', '', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1228, '租户套餐更新', 'system:tenant-package:update', 3, 3, 1225, '', '', '', 0, b'1', b'1', '', '2022-02-19 17:44:06', '', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1229, '租户套餐删除', 'system:tenant-package:delete', 3, 4, 1225, '', '', '', 0, b'1', b'1', '', '2022-02-19 17:44:06', '', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1237, '文件配置', '', 2, 0, 1243, 'file-config', 'config', 'infra/fileConfig/index', 0, b'1', b'1', '', '2022-03-15 14:35:28', '1', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1238, '文件配置查询', 'infra:file-config:query', 3, 1, 1237, '', '', '', 0, b'1', b'1', '', '2022-03-15 14:35:28', '', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1239, '文件配置创建', 'infra:file-config:create', 3, 2, 1237, '', '', '', 0, b'1', b'1', '', '2022-03-15 14:35:28', '', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1240, '文件配置更新', 'infra:file-config:update', 3, 3, 1237, '', '', '', 0, b'1', b'1', '', '2022-03-15 14:35:28', '', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1241, '文件配置删除', 'infra:file-config:delete', 3, 4, 1237, '', '', '', 0, b'1', b'1', '', '2022-03-15 14:35:28', '', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1242, '文件配置导出', 'infra:file-config:export', 3, 5, 1237, '', '', '', 0, b'1', b'1', '', '2022-03-15 14:35:28', '', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1243, '文件管理', '', 2, 5, 2, 'file', 'ep:folder-opened', NULL, 0, b'1', b'1', '1', '2022-03-16 23:47:40', '1', '2022-07-20 14:48:19', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1247, '敏感词管理', '', 2, 13, 1, 'sensitive-word', 'ep:document-copy', 'system/sensitiveWord/index', 0, b'1', b'1', '', '2022-04-07 16:55:03', '1', '2022-07-20 14:43:53', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1248, '敏感词查询', 'system:sensitive-word:query', 3, 1, 1247, '', '', '', 0, b'1', b'1', '', '2022-04-07 16:55:03', '', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1249, '敏感词创建', 'system:sensitive-word:create', 3, 2, 1247, '', '', '', 0, b'1', b'1', '', '2022-04-07 16:55:03', '', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1250, '敏感词更新', 'system:sensitive-word:update', 3, 3, 1247, '', '', '', 0, b'1', b'1', '', '2022-04-07 16:55:03', '', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1251, '敏感词删除', 'system:sensitive-word:delete', 3, 4, 1247, '', '', '', 0, b'1', b'1', '', '2022-04-07 16:55:03', '', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1252, '敏感词导出', 'system:sensitive-word:export', 3, 5, 1247, '', '', '', 0, b'1', b'1', '', '2022-04-07 16:55:03', '', '2022-04-20 17:03:10', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1254, '作者动态', '', 1, 0, 0, 'https://www.iocoder.cn', 'ep:bell-filled', NULL, 0, b'1', b'1', '1', '2022-04-23 01:03:15', '1', '2022-07-20 13:12:43', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1255, '数据源配置', '', 2, 1, 2, 'data-source-config', 'ep:coin', 'infra/dataSourceConfig/index', 0, b'1', b'1', '', '2022-04-27 14:37:32', '1', '2022-07-20 14:49:01', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1256, '数据源配置查询', 'infra:data-source-config:query', 3, 1, 1255, '', '', '', 0, b'1', b'1', '', '2022-04-27 14:37:32', '', '2022-04-27 14:37:32', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1257, '数据源配置创建', 'infra:data-source-config:create', 3, 2, 1255, '', '', '', 0, b'1', b'1', '', '2022-04-27 14:37:32', '', '2022-04-27 14:37:32', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1258, '数据源配置更新', 'infra:data-source-config:update', 3, 3, 1255, '', '', '', 0, b'1', b'1', '', '2022-04-27 14:37:32', '', '2022-04-27 14:37:32', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1259, '数据源配置删除', 'infra:data-source-config:delete', 3, 4, 1255, '', '', '', 0, b'1', b'1', '', '2022-04-27 14:37:32', '', '2022-04-27 14:37:32', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1260, '数据源配置导出', 'infra:data-source-config:export', 3, 5, 1255, '', '', '', 0, b'1', b'1', '', '2022-04-27 14:37:32', '', '2022-04-27 14:37:32', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1261, '授权管理', '', 1, 10, 1, 'oauth2', 'ep:connection', NULL, 0, b'1', b'1', '1', '2022-05-09 23:38:17', '1', '2022-07-20 14:43:23', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1263, '应用管理', '', 2, 0, 1261, 'oauth2/application', 'tool', 'system/oauth2/client/index', 0, b'1', b'1', '', '2022-05-10 16:26:33', '1', '2022-05-11 23:31:36', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1264, '客户端查询', 'system:oauth2-client:query', 3, 1, 1263, '', '', '', 0, b'1', b'1', '', '2022-05-10 16:26:33', '1', '2022-05-11 00:31:06', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1265, '客户端创建', 'system:oauth2-client:create', 3, 2, 1263, '', '', '', 0, b'1', b'1', '', '2022-05-10 16:26:33', '1', '2022-05-11 00:31:23', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1266, '客户端更新', 'system:oauth2-client:update', 3, 3, 1263, '', '', '', 0, b'1', b'1', '', '2022-05-10 16:26:33', '1', '2022-05-11 00:31:28', b'0');
|
||||||
|
INSERT INTO `system_menu` VALUES (1267, '客户端删除', 'system:oauth2-client:delete', 3, 4, 1263, '', '', '', 0, b'1', b'1', '', '2022-05-10 16:26:33', '1', '2022-05-11 00:31:33', b'0');
|
||||||
|
|
||||||
|
SET FOREIGN_KEY_CHECKS = 1;
|
@ -16,20 +16,19 @@
|
|||||||
<properties>
|
<properties>
|
||||||
<revision>1.6.2-snapshot</revision>
|
<revision>1.6.2-snapshot</revision>
|
||||||
<!-- 统一依赖管理 -->
|
<!-- 统一依赖管理 -->
|
||||||
<spring.boot.version>2.6.8</spring.boot.version>
|
<spring.boot.version>2.6.10</spring.boot.version>
|
||||||
<!-- Web 相关 -->
|
<!-- Web 相关 -->
|
||||||
<knife4j.version>3.0.3</knife4j.version>
|
<knife4j.version>3.0.3</knife4j.version>
|
||||||
<swagger-annotations.version>1.6.6</swagger-annotations.version>
|
<swagger-annotations.version>1.6.6</swagger-annotations.version>
|
||||||
<servlet.versoin>2.5</servlet.versoin>
|
<servlet.versoin>2.5</servlet.versoin>
|
||||||
<!-- DB 相关 -->
|
<!-- DB 相关 -->
|
||||||
<druid.version>1.2.8</druid.version>
|
<druid.version>1.2.11</druid.version>
|
||||||
<mybatis-plus.version>3.5.2</mybatis-plus.version>
|
<mybatis-plus.version>3.5.2</mybatis-plus.version>
|
||||||
<mybatis-plus-generator.version>3.5.2</mybatis-plus-generator.version>
|
<mybatis-plus-generator.version>3.5.2</mybatis-plus-generator.version>
|
||||||
<dynamic-datasource.version>3.5.0</dynamic-datasource.version>
|
<dynamic-datasource.version>3.5.0</dynamic-datasource.version>
|
||||||
<redisson.version>3.17.3</redisson.version>
|
<redisson.version>3.17.4</redisson.version>
|
||||||
<!-- Config 配置中心相关 -->
|
<!-- Config 配置中心相关 -->
|
||||||
<apollo.version>1.9.2</apollo.version>
|
<apollo.version>1.9.2</apollo.version>
|
||||||
<!-- Job 定时任务相关 -->
|
|
||||||
<!-- 服务保障相关 -->
|
<!-- 服务保障相关 -->
|
||||||
<lock4j.version>2.2.0</lock4j.version>
|
<lock4j.version>2.2.0</lock4j.version>
|
||||||
<resilience4j.version>1.7.1</resilience4j.version>
|
<resilience4j.version>1.7.1</resilience4j.version>
|
||||||
@ -48,8 +47,8 @@
|
|||||||
<jasypt-spring-boot-starter.version>3.0.4</jasypt-spring-boot-starter.version>
|
<jasypt-spring-boot-starter.version>3.0.4</jasypt-spring-boot-starter.version>
|
||||||
<lombok.version>1.18.20</lombok.version>
|
<lombok.version>1.18.20</lombok.version>
|
||||||
<mapstruct.version>1.4.1.Final</mapstruct.version>
|
<mapstruct.version>1.4.1.Final</mapstruct.version>
|
||||||
<hutool.version>5.6.1</hutool.version>
|
<hutool.version>5.7.22</hutool.version>
|
||||||
<easyexcel.verion>2.2.7</easyexcel.verion>
|
<easyexcel.verion>3.1.1</easyexcel.verion>
|
||||||
<velocity.version>2.2</velocity.version>
|
<velocity.version>2.2</velocity.version>
|
||||||
<screw.version>1.0.5</screw.version>
|
<screw.version>1.0.5</screw.version>
|
||||||
<fastjson.version>2.0.5</fastjson.version>
|
<fastjson.version>2.0.5</fastjson.version>
|
||||||
@ -419,7 +418,7 @@
|
|||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.flowable</groupId>
|
<groupId>org.flowable</groupId>
|
||||||
<artifactId>flowable-spring-boot-starter-basic</artifactId>
|
<artifactId>flowable-spring-boot-starter-process</artifactId>
|
||||||
<version>${flowable.version}</version>
|
<version>${flowable.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
|
@ -2,14 +2,8 @@ package cn.iocoder.yudao.framework.common.util.collection;
|
|||||||
|
|
||||||
import cn.hutool.core.collection.CollectionUtil;
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
import cn.hutool.core.util.ArrayUtil;
|
import cn.hutool.core.util.ArrayUtil;
|
||||||
import cn.hutool.core.util.TypeUtil;
|
|
||||||
import org.springframework.cglib.core.TypeUtils;
|
|
||||||
|
|
||||||
import java.lang.reflect.Array;
|
|
||||||
import java.lang.reflect.ParameterizedType;
|
|
||||||
import java.lang.reflect.Type;
|
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.List;
|
|
||||||
import java.util.function.Consumer;
|
import java.util.function.Consumer;
|
||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
|
|
||||||
@ -53,4 +47,11 @@ public class ArrayUtils {
|
|||||||
return ArrayUtil.toArray(from, (Class<T>) CollectionUtil.getElementType(from.iterator()));
|
return ArrayUtil.toArray(from, (Class<T>) CollectionUtil.getElementType(from.iterator()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static <T> T get(T[] array, int index) {
|
||||||
|
if (null == array || index >= array.length) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return array[index];
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -51,6 +51,10 @@ public class JsonUtils {
|
|||||||
return objectMapper.writeValueAsBytes(object);
|
return objectMapper.writeValueAsBytes(object);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SneakyThrows
|
||||||
|
public static String toJsonPrettyString(Object object) {
|
||||||
|
return objectMapper.writerWithDefaultPrettyPrinter().writeValueAsString(object);
|
||||||
|
}
|
||||||
|
|
||||||
public static <T> T parseObject(String text, Class<T> clazz) {
|
public static <T> T parseObject(String text, Class<T> clazz) {
|
||||||
if (StrUtil.isEmpty(text)) {
|
if (StrUtil.isEmpty(text)) {
|
||||||
@ -132,7 +136,7 @@ public class JsonUtils {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static boolean isJson(String text) {
|
public static boolean isJson(String text) {
|
||||||
return JSONUtil.isJson(text);
|
return JSONUtil.isTypeJSON(text);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -38,6 +38,12 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.xkcoding.justauth</groupId>
|
<groupId>com.xkcoding.justauth</groupId>
|
||||||
<artifactId>justauth-spring-boot-starter</artifactId>
|
<artifactId>justauth-spring-boot-starter</artifactId>
|
||||||
|
<exclusions>
|
||||||
|
<exclusion>
|
||||||
|
<groupId>cn.hutool</groupId>
|
||||||
|
<artifactId>hutool-core</artifactId>
|
||||||
|
</exclusion>
|
||||||
|
</exclusions>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>cn.iocoder.boot</groupId>
|
<groupId>cn.iocoder.boot</groupId>
|
||||||
|
@ -3,6 +3,7 @@ package cn.iocoder.yudao.framework.tenant.config;
|
|||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import org.springframework.boot.context.properties.ConfigurationProperties;
|
import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||||
|
|
||||||
|
import java.util.Collections;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -29,13 +30,13 @@ public class TenantProperties {
|
|||||||
*
|
*
|
||||||
* 默认情况下,每个请求需要带上 tenant-id 的请求头。但是,部分请求是无需带上的,例如说短信回调、支付回调等 Open API!
|
* 默认情况下,每个请求需要带上 tenant-id 的请求头。但是,部分请求是无需带上的,例如说短信回调、支付回调等 Open API!
|
||||||
*/
|
*/
|
||||||
private Set<String> ignoreUrls;
|
private Set<String> ignoreUrls = Collections.emptySet();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 需要忽略多租户的表
|
* 需要忽略多租户的表
|
||||||
*
|
*
|
||||||
* 即默认所有表都开启多租户的功能,所以记得添加对应的 tenant_id 字段哟
|
* 即默认所有表都开启多租户的功能,所以记得添加对应的 tenant_id 字段哟
|
||||||
*/
|
*/
|
||||||
private Set<String> ignoreTables;
|
private Set<String> ignoreTables = Collections.emptySet();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -14,6 +14,7 @@
|
|||||||
<name>${project.artifactId}</name>
|
<name>${project.artifactId}</name>
|
||||||
<description>微信拓展
|
<description>微信拓展
|
||||||
1. 基于 weixin-java-mp 库,对接微信公众号平台。目前主要解决微信公众号的支付场景。
|
1. 基于 weixin-java-mp 库,对接微信公众号平台。目前主要解决微信公众号的支付场景。
|
||||||
|
2. 基于 weixin-java-miniapp 库,对接微信小程序。目前主要解决微信小程序的一键登录场景。
|
||||||
</description>
|
</description>
|
||||||
<url>https://github.com/YunaiV/ruoyi-vue-pro</url>
|
<url>https://github.com/YunaiV/ruoyi-vue-pro</url>
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@ import com.ctrip.framework.apollo.tracer.Tracer;
|
|||||||
import com.ctrip.framework.apollo.util.ConfigUtil;
|
import com.ctrip.framework.apollo.util.ConfigUtil;
|
||||||
import com.ctrip.framework.apollo.util.factory.DefaultPropertiesFactory;
|
import com.ctrip.framework.apollo.util.factory.DefaultPropertiesFactory;
|
||||||
import com.ctrip.framework.apollo.util.factory.PropertiesFactory;
|
import com.ctrip.framework.apollo.util.factory.PropertiesFactory;
|
||||||
import com.ctrip.framework.apollo.util.http.HttpUtil;
|
import com.ctrip.framework.apollo.util.http.DefaultHttpClient;
|
||||||
import com.ctrip.framework.apollo.util.yaml.YamlParser;
|
import com.ctrip.framework.apollo.util.yaml.YamlParser;
|
||||||
import com.google.inject.AbstractModule;
|
import com.google.inject.AbstractModule;
|
||||||
import com.google.inject.Guice;
|
import com.google.inject.Guice;
|
||||||
@ -63,7 +63,7 @@ public class DefaultXInjector implements Injector {
|
|||||||
bind(ConfigFactory.class).to(DBConfigFactory.class).in(Singleton.class);
|
bind(ConfigFactory.class).to(DBConfigFactory.class).in(Singleton.class);
|
||||||
|
|
||||||
bind(ConfigUtil.class).in(Singleton.class);
|
bind(ConfigUtil.class).in(Singleton.class);
|
||||||
bind(HttpUtil.class).in(Singleton.class);
|
bind(DefaultHttpClient.class).in(Singleton.class);
|
||||||
bind(ConfigServiceLocator.class).in(Singleton.class);
|
bind(ConfigServiceLocator.class).in(Singleton.class);
|
||||||
bind(RemoteConfigLongPollService.class).in(Singleton.class);
|
bind(RemoteConfigLongPollService.class).in(Singleton.class);
|
||||||
bind(YamlParser.class).in(Singleton.class);
|
bind(YamlParser.class).in(Singleton.class);
|
||||||
|
@ -5,8 +5,9 @@ import cn.iocoder.yudao.framework.dict.core.util.DictFrameworkUtils;
|
|||||||
import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
|
import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
|
||||||
import com.alibaba.excel.converters.Converter;
|
import com.alibaba.excel.converters.Converter;
|
||||||
import com.alibaba.excel.enums.CellDataTypeEnum;
|
import com.alibaba.excel.enums.CellDataTypeEnum;
|
||||||
import com.alibaba.excel.metadata.CellData;
|
|
||||||
import com.alibaba.excel.metadata.GlobalConfiguration;
|
import com.alibaba.excel.metadata.GlobalConfiguration;
|
||||||
|
import com.alibaba.excel.metadata.data.ReadCellData;
|
||||||
|
import com.alibaba.excel.metadata.data.WriteCellData;
|
||||||
import com.alibaba.excel.metadata.property.ExcelContentProperty;
|
import com.alibaba.excel.metadata.property.ExcelContentProperty;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
|
||||||
@ -29,11 +30,11 @@ public class DictConvert implements Converter<Object> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Object convertToJavaData(CellData cellData, ExcelContentProperty contentProperty,
|
public Object convertToJavaData(ReadCellData readCellData, ExcelContentProperty contentProperty,
|
||||||
GlobalConfiguration globalConfiguration) {
|
GlobalConfiguration globalConfiguration) {
|
||||||
// 使用字典解析
|
// 使用字典解析
|
||||||
String type = getType(contentProperty);
|
String type = getType(contentProperty);
|
||||||
String label = cellData.getStringValue();
|
String label = readCellData.getStringValue();
|
||||||
String value = DictFrameworkUtils.parseDictDataValue(type, label);
|
String value = DictFrameworkUtils.parseDictDataValue(type, label);
|
||||||
if (value == null) {
|
if (value == null) {
|
||||||
log.error("[convertToJavaData][type({}) 解析不掉 label({})]", type, label);
|
log.error("[convertToJavaData][type({}) 解析不掉 label({})]", type, label);
|
||||||
@ -45,11 +46,11 @@ public class DictConvert implements Converter<Object> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public CellData<String> convertToExcelData(Object object, ExcelContentProperty contentProperty,
|
public WriteCellData<String> convertToExcelData(Object object, ExcelContentProperty contentProperty,
|
||||||
GlobalConfiguration globalConfiguration) {
|
GlobalConfiguration globalConfiguration) {
|
||||||
// 空时,返回空
|
// 空时,返回空
|
||||||
if (object == null) {
|
if (object == null) {
|
||||||
return new CellData<>("");
|
return new WriteCellData<>("");
|
||||||
}
|
}
|
||||||
|
|
||||||
// 使用字典格式化
|
// 使用字典格式化
|
||||||
@ -58,10 +59,10 @@ public class DictConvert implements Converter<Object> {
|
|||||||
String label = DictFrameworkUtils.getDictDataLabel(type, value);
|
String label = DictFrameworkUtils.getDictDataLabel(type, value);
|
||||||
if (label == null) {
|
if (label == null) {
|
||||||
log.error("[convertToExcelData][type({}) 转换不了 label({})]", type, value);
|
log.error("[convertToExcelData][type({}) 转换不了 label({})]", type, value);
|
||||||
return new CellData<>("");
|
return new WriteCellData<>("");
|
||||||
}
|
}
|
||||||
// 生成 Excel 小表格
|
// 生成 Excel 小表格
|
||||||
return new CellData<>(label);
|
return new WriteCellData<>(label);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static String getType(ExcelContentProperty contentProperty) {
|
private static String getType(ExcelContentProperty contentProperty) {
|
||||||
|
@ -3,8 +3,8 @@ package cn.iocoder.yudao.framework.excel.core.convert;
|
|||||||
import cn.iocoder.yudao.framework.common.util.json.JsonUtils;
|
import cn.iocoder.yudao.framework.common.util.json.JsonUtils;
|
||||||
import com.alibaba.excel.converters.Converter;
|
import com.alibaba.excel.converters.Converter;
|
||||||
import com.alibaba.excel.enums.CellDataTypeEnum;
|
import com.alibaba.excel.enums.CellDataTypeEnum;
|
||||||
import com.alibaba.excel.metadata.CellData;
|
|
||||||
import com.alibaba.excel.metadata.GlobalConfiguration;
|
import com.alibaba.excel.metadata.GlobalConfiguration;
|
||||||
|
import com.alibaba.excel.metadata.data.WriteCellData;
|
||||||
import com.alibaba.excel.metadata.property.ExcelContentProperty;
|
import com.alibaba.excel.metadata.property.ExcelContentProperty;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -25,15 +25,10 @@ public class JsonConvert implements Converter<Object> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Object convertToJavaData(CellData cellData, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) {
|
public WriteCellData<String> convertToExcelData(Object value, ExcelContentProperty contentProperty,
|
||||||
throw new UnsupportedOperationException("暂不支持,也不需要");
|
GlobalConfiguration globalConfiguration) {
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public CellData<String> convertToExcelData(Object value, ExcelContentProperty contentProperty,
|
|
||||||
GlobalConfiguration globalConfiguration) {
|
|
||||||
// 生成 Excel 小表格
|
// 生成 Excel 小表格
|
||||||
return new CellData<>(JsonUtils.toJsonString(value));
|
return new WriteCellData<>(JsonUtils.toJsonString(value));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -26,7 +26,7 @@
|
|||||||
<!-- flowable 工作流相关 -->
|
<!-- flowable 工作流相关 -->
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.flowable</groupId>
|
<groupId>org.flowable</groupId>
|
||||||
<artifactId>flowable-spring-boot-starter-basic</artifactId>
|
<artifactId>flowable-spring-boot-starter-process</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.flowable</groupId>
|
<groupId>org.flowable</groupId>
|
||||||
|
@ -38,7 +38,7 @@ public class BizTraceAspect {
|
|||||||
String operationName = getOperationName(joinPoint, trace);
|
String operationName = getOperationName(joinPoint, trace);
|
||||||
Span span = tracer.buildSpan(operationName)
|
Span span = tracer.buildSpan(operationName)
|
||||||
.withTag(Tags.COMPONENT.getKey(), "biz")
|
.withTag(Tags.COMPONENT.getKey(), "biz")
|
||||||
.startManual();
|
.start();
|
||||||
try {
|
try {
|
||||||
// 执行原有方法
|
// 执行原有方法
|
||||||
return joinPoint.proceed();
|
return joinPoint.proceed();
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
package cn.iocoder.yudao.framework.mybatis.core.query;
|
package cn.iocoder.yudao.framework.mybatis.core.query;
|
||||||
|
|
||||||
|
import cn.hutool.core.util.ArrayUtil;
|
||||||
|
import cn.iocoder.yudao.framework.common.util.collection.ArrayUtils;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
||||||
import com.baomidou.mybatisplus.core.toolkit.ArrayUtils;
|
|
||||||
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
||||||
import com.baomidou.mybatisplus.core.toolkit.support.SFunction;
|
import com.baomidou.mybatisplus.core.toolkit.support.SFunction;
|
||||||
import org.springframework.util.StringUtils;
|
import org.springframework.util.StringUtils;
|
||||||
@ -33,7 +33,7 @@ public class LambdaQueryWrapperX<T> extends LambdaQueryWrapper<T> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public LambdaQueryWrapperX<T> inIfPresent(SFunction<T, ?> column, Object... values) {
|
public LambdaQueryWrapperX<T> inIfPresent(SFunction<T, ?> column, Object... values) {
|
||||||
if (!ArrayUtils.isEmpty(values)) {
|
if (!ArrayUtil.isEmpty(values)) {
|
||||||
return (LambdaQueryWrapperX<T>) super.in(column, values);
|
return (LambdaQueryWrapperX<T>) super.in(column, values);
|
||||||
}
|
}
|
||||||
return this;
|
return this;
|
||||||
@ -94,6 +94,12 @@ public class LambdaQueryWrapperX<T> extends LambdaQueryWrapper<T> {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public LambdaQueryWrapperX<T> betweenIfPresent(SFunction<T, ?> column, Object[] values) {
|
||||||
|
Object val1 = ArrayUtils.get(values, 0);
|
||||||
|
Object val2 = ArrayUtils.get(values, 1);
|
||||||
|
return betweenIfPresent(column, val1, val2);
|
||||||
|
}
|
||||||
|
|
||||||
// ========== 重写父类方法,方便链式调用 ==========
|
// ========== 重写父类方法,方便链式调用 ==========
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -94,6 +94,19 @@ public class QueryWrapperX<T> extends QueryWrapper<T> {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public QueryWrapperX<T> betweenIfPresent(String column, Object[] values) {
|
||||||
|
if (values!= null && values.length != 0 && values[0] != null && values[1] != null) {
|
||||||
|
return (QueryWrapperX<T>) super.between(column, values[0], values[1]);
|
||||||
|
}
|
||||||
|
if (values!= null && values.length != 0 && values[0] != null) {
|
||||||
|
return (QueryWrapperX<T>) ge(column, values[0]);
|
||||||
|
}
|
||||||
|
if (values!= null && values.length != 0 && values[1] != null) {
|
||||||
|
return (QueryWrapperX<T>) le(column, values[1]);
|
||||||
|
}
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
// ========== 重写父类方法,方便链式调用 ==========
|
// ========== 重写父类方法,方便链式调用 ==========
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -118,16 +118,16 @@ public class YudaoWebSecurityConfigurerAdapter extends WebSecurityConfigurerAdap
|
|||||||
httpSecurity
|
httpSecurity
|
||||||
// ①:全局共享规则
|
// ①:全局共享规则
|
||||||
.authorizeRequests()
|
.authorizeRequests()
|
||||||
// 静态资源,可匿名访问
|
// 1.1 静态资源,可匿名访问
|
||||||
.antMatchers(HttpMethod.GET, "/*.html", "/**/*.html", "/**/*.css", "/**/*.js").permitAll()
|
.antMatchers(HttpMethod.GET, "/*.html", "/**/*.html", "/**/*.css", "/**/*.js").permitAll()
|
||||||
// 设置 @PermitAll 无需认证
|
// 1.2 设置 @PermitAll 无需认证
|
||||||
.antMatchers(HttpMethod.GET, permitAllUrls.get(HttpMethod.GET).toArray(new String[0])).permitAll()
|
.antMatchers(HttpMethod.GET, permitAllUrls.get(HttpMethod.GET).toArray(new String[0])).permitAll()
|
||||||
.antMatchers(HttpMethod.POST, permitAllUrls.get(HttpMethod.POST).toArray(new String[0])).permitAll()
|
.antMatchers(HttpMethod.POST, permitAllUrls.get(HttpMethod.POST).toArray(new String[0])).permitAll()
|
||||||
.antMatchers(HttpMethod.PUT, permitAllUrls.get(HttpMethod.PUT).toArray(new String[0])).permitAll()
|
.antMatchers(HttpMethod.PUT, permitAllUrls.get(HttpMethod.PUT).toArray(new String[0])).permitAll()
|
||||||
.antMatchers(HttpMethod.DELETE, permitAllUrls.get(HttpMethod.DELETE).toArray(new String[0])).permitAll()
|
.antMatchers(HttpMethod.DELETE, permitAllUrls.get(HttpMethod.DELETE).toArray(new String[0])).permitAll()
|
||||||
// 基于 yudao.security.permit-all-urls 无需认证
|
// 1.3 基于 yudao.security.permit-all-urls 无需认证
|
||||||
.antMatchers(securityProperties.getPermitAllUrls().toArray(new String[0])).permitAll()
|
.antMatchers(securityProperties.getPermitAllUrls().toArray(new String[0])).permitAll()
|
||||||
// 设置 App API 无需认证
|
// 1.4 设置 App API 无需认证
|
||||||
.antMatchers(buildAppApi("/**")).permitAll()
|
.antMatchers(buildAppApi("/**")).permitAll()
|
||||||
// ②:每个项目的自定义规则
|
// ②:每个项目的自定义规则
|
||||||
.and().authorizeRequests(registry -> // 下面,循环设置自定义规则
|
.and().authorizeRequests(registry -> // 下面,循环设置自定义规则
|
||||||
@ -137,7 +137,7 @@ public class YudaoWebSecurityConfigurerAdapter extends WebSecurityConfigurerAdap
|
|||||||
.anyRequest().authenticated()
|
.anyRequest().authenticated()
|
||||||
;
|
;
|
||||||
|
|
||||||
// 添加 JWT Filter
|
// 添加 Token Filter
|
||||||
httpSecurity.addFilterBefore(authenticationTokenFilter, UsernamePasswordAuthenticationFilter.class);
|
httpSecurity.addFilterBefore(authenticationTokenFilter, UsernamePasswordAuthenticationFilter.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -40,7 +40,7 @@ public class RandomUtils {
|
|||||||
// Integer
|
// Integer
|
||||||
PODAM_FACTORY.getStrategy().addOrReplaceTypeManufacturer(Integer.class, (dataProviderStrategy, attributeMetadata, map) -> {
|
PODAM_FACTORY.getStrategy().addOrReplaceTypeManufacturer(Integer.class, (dataProviderStrategy, attributeMetadata, map) -> {
|
||||||
// 如果是 status 的字段,返回 0 或 1
|
// 如果是 status 的字段,返回 0 或 1
|
||||||
if (attributeMetadata.getAttributeName().equals("status")) {
|
if ("status".equals(attributeMetadata.getAttributeName())) {
|
||||||
return RandomUtil.randomEle(CommonStatusEnum.values()).getStatus();
|
return RandomUtil.randomEle(CommonStatusEnum.values()).getStatus();
|
||||||
}
|
}
|
||||||
// 如果是 type、status 结尾的字段,返回 tinyint 范围
|
// 如果是 type、status 结尾的字段,返回 tinyint 范围
|
||||||
@ -53,7 +53,7 @@ public class RandomUtils {
|
|||||||
// Boolean
|
// Boolean
|
||||||
PODAM_FACTORY.getStrategy().addOrReplaceTypeManufacturer(Boolean.class, (dataProviderStrategy, attributeMetadata, map) -> {
|
PODAM_FACTORY.getStrategy().addOrReplaceTypeManufacturer(Boolean.class, (dataProviderStrategy, attributeMetadata, map) -> {
|
||||||
// 如果是 deleted 的字段,返回非删除
|
// 如果是 deleted 的字段,返回非删除
|
||||||
if (attributeMetadata.getAttributeName().equals("deleted")) {
|
if ("deleted".equals(attributeMetadata.getAttributeName())) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
return RandomUtil.randomBoolean();
|
return RandomUtil.randomBoolean();
|
||||||
|
@ -95,7 +95,7 @@ public class YudaoSwaggerAutoConfiguration {
|
|||||||
return Collections.singletonList(SecurityContext.builder()
|
return Collections.singletonList(SecurityContext.builder()
|
||||||
.securityReferences(securityReferences())
|
.securityReferences(securityReferences())
|
||||||
// 通过 PathSelectors.regex("^(?!auth).*$"),排除包含 "auth" 的接口不需要使用securitySchemes
|
// 通过 PathSelectors.regex("^(?!auth).*$"),排除包含 "auth" 的接口不需要使用securitySchemes
|
||||||
.forPaths(PathSelectors.regex("^(?!auth).*$"))
|
.operationSelector(o -> o.requestMappingPattern().matches("^(?!auth).*$"))
|
||||||
.build());
|
.build());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -26,11 +26,6 @@
|
|||||||
<artifactId>yudao-module-system-api</artifactId>
|
<artifactId>yudao-module-system-api</artifactId>
|
||||||
<version>${revision}</version>
|
<version>${revision}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
|
||||||
<groupId>cn.iocoder.boot</groupId>
|
|
||||||
<artifactId>yudao-module-system-biz</artifactId>
|
|
||||||
<version>${revision}</version>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<!-- 业务组件 -->
|
<!-- 业务组件 -->
|
||||||
<dependency>
|
<dependency>
|
||||||
|
@ -24,11 +24,7 @@ public class BpmUserGroupPageReqVO extends PageParam {
|
|||||||
private Integer status;
|
private Integer status;
|
||||||
|
|
||||||
@DateTimeFormat(pattern = DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
@DateTimeFormat(pattern = DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||||
@ApiModelProperty(value = "开始创建时间")
|
@ApiModelProperty(value = "创建时间")
|
||||||
private Date beginCreateTime;
|
private Date[] createTime;
|
||||||
|
|
||||||
@DateTimeFormat(pattern = DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
|
||||||
@ApiModelProperty(value = "结束创建时间")
|
|
||||||
private Date endCreateTime;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -24,11 +24,7 @@ public class BpmOALeavePageReqVO extends PageParam {
|
|||||||
private String reason;
|
private String reason;
|
||||||
|
|
||||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||||
@ApiModelProperty(value = "开始申请时间")
|
@ApiModelProperty(value = "申请时间")
|
||||||
private Date beginCreateTime;
|
private Date[] createTime;
|
||||||
|
|
||||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
|
||||||
@ApiModelProperty(value = "结束申请时间")
|
|
||||||
private Date endCreateTime;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -22,6 +22,7 @@ import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUti
|
|||||||
@RequestMapping("/bpm/process-instance")
|
@RequestMapping("/bpm/process-instance")
|
||||||
@Validated
|
@Validated
|
||||||
public class BpmProcessInstanceController {
|
public class BpmProcessInstanceController {
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private BpmProcessInstanceService processInstanceService;
|
private BpmProcessInstanceService processInstanceService;
|
||||||
|
|
||||||
|
@ -33,12 +33,8 @@ public class BpmProcessInstanceMyPageReqVO extends PageParam {
|
|||||||
@ApiModelProperty(value = "流程分类", notes = "参见 bpm_model_category 数据字典", example = "1")
|
@ApiModelProperty(value = "流程分类", notes = "参见 bpm_model_category 数据字典", example = "1")
|
||||||
private String category;
|
private String category;
|
||||||
|
|
||||||
@ApiModelProperty(value = "开始的创建时间")
|
@ApiModelProperty(value = "创建时间")
|
||||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||||
private Date beginCreateTime;
|
private Date[] createTime;
|
||||||
|
|
||||||
@ApiModelProperty(value = "结束的创建时间")
|
|
||||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
|
||||||
private Date endCreateTime;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -12,7 +12,7 @@ import java.util.Date;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Bpm 流程任务的拓展表
|
* Bpm 流程任务的拓展表
|
||||||
* 主要解决 Activiti Task 和 HistoricTaskInstance 不支持拓展字段,所以新建拓展表
|
* 主要解决 Flowable Task 和 HistoricTaskInstance 不支持拓展字段,所以新建拓展表
|
||||||
*
|
*
|
||||||
* @author 芋道源码
|
* @author 芋道源码
|
||||||
*/
|
*/
|
||||||
|
@ -21,7 +21,7 @@ public interface BpmUserGroupMapper extends BaseMapperX<BpmUserGroupDO> {
|
|||||||
return selectPage(reqVO, new LambdaQueryWrapperX<BpmUserGroupDO>()
|
return selectPage(reqVO, new LambdaQueryWrapperX<BpmUserGroupDO>()
|
||||||
.likeIfPresent(BpmUserGroupDO::getName, reqVO.getName())
|
.likeIfPresent(BpmUserGroupDO::getName, reqVO.getName())
|
||||||
.eqIfPresent(BpmUserGroupDO::getStatus, reqVO.getStatus())
|
.eqIfPresent(BpmUserGroupDO::getStatus, reqVO.getStatus())
|
||||||
.betweenIfPresent(BpmUserGroupDO::getCreateTime, reqVO.getBeginCreateTime(), reqVO.getEndCreateTime())
|
.betweenIfPresent(BpmUserGroupDO::getCreateTime, reqVO.getCreateTime())
|
||||||
.orderByDesc(BpmUserGroupDO::getId));
|
.orderByDesc(BpmUserGroupDO::getId));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -22,7 +22,7 @@ public interface BpmOALeaveMapper extends BaseMapperX<BpmOALeaveDO> {
|
|||||||
.eqIfPresent(BpmOALeaveDO::getResult, reqVO.getResult())
|
.eqIfPresent(BpmOALeaveDO::getResult, reqVO.getResult())
|
||||||
.eqIfPresent(BpmOALeaveDO::getType, reqVO.getType())
|
.eqIfPresent(BpmOALeaveDO::getType, reqVO.getType())
|
||||||
.likeIfPresent(BpmOALeaveDO::getReason, reqVO.getReason())
|
.likeIfPresent(BpmOALeaveDO::getReason, reqVO.getReason())
|
||||||
.betweenIfPresent(BpmOALeaveDO::getCreateTime, reqVO.getBeginCreateTime(), reqVO.getEndCreateTime())
|
.betweenIfPresent(BpmOALeaveDO::getCreateTime, reqVO.getCreateTime())
|
||||||
.orderByDesc(BpmOALeaveDO::getId));
|
.orderByDesc(BpmOALeaveDO::getId));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,35 +1,34 @@
|
|||||||
package cn.iocoder.yudao.module.bpm.dal.mysql.task;
|
package cn.iocoder.yudao.module.bpm.dal.mysql.task;
|
||||||
|
|
||||||
import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.instance.BpmProcessInstanceMyPageReqVO;
|
|
||||||
import cn.iocoder.yudao.module.bpm.dal.dataobject.task.BpmProcessInstanceExtDO;
|
|
||||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
|
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
|
||||||
import cn.iocoder.yudao.framework.mybatis.core.query.QueryWrapperX;
|
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.instance.BpmProcessInstanceMyPageReqVO;
|
||||||
|
import cn.iocoder.yudao.module.bpm.dal.dataobject.task.BpmProcessInstanceExtDO;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
|
||||||
@Mapper
|
@Mapper
|
||||||
public interface BpmProcessInstanceExtMapper extends BaseMapperX<BpmProcessInstanceExtDO> {
|
public interface BpmProcessInstanceExtMapper extends BaseMapperX<BpmProcessInstanceExtDO> {
|
||||||
|
|
||||||
default PageResult<BpmProcessInstanceExtDO> selectPage(Long userId, BpmProcessInstanceMyPageReqVO reqVO) {
|
default PageResult<BpmProcessInstanceExtDO> selectPage(Long userId, BpmProcessInstanceMyPageReqVO reqVO) {
|
||||||
return selectPage(reqVO, new QueryWrapperX<BpmProcessInstanceExtDO>()
|
return selectPage(reqVO, new LambdaQueryWrapperX<BpmProcessInstanceExtDO>()
|
||||||
.eqIfPresent("start_user_id", userId)
|
.eqIfPresent(BpmProcessInstanceExtDO::getStartUserId, userId)
|
||||||
.likeIfPresent("name", reqVO.getName())
|
.likeIfPresent(BpmProcessInstanceExtDO::getName, reqVO.getName())
|
||||||
.eqIfPresent("process_definition_id", reqVO.getProcessDefinitionId())
|
.eqIfPresent(BpmProcessInstanceExtDO::getProcessDefinitionId, reqVO.getProcessDefinitionId())
|
||||||
.eqIfPresent("category", reqVO.getCategory())
|
.eqIfPresent(BpmProcessInstanceExtDO::getCategory, reqVO.getCategory())
|
||||||
.eqIfPresent("status", reqVO.getStatus())
|
.eqIfPresent(BpmProcessInstanceExtDO::getStatus, reqVO.getStatus())
|
||||||
.eqIfPresent("result", reqVO.getResult())
|
.eqIfPresent(BpmProcessInstanceExtDO::getResult, reqVO.getResult())
|
||||||
.betweenIfPresent("create_time", reqVO.getBeginCreateTime(), reqVO.getEndCreateTime())
|
.betweenIfPresent(BpmProcessInstanceExtDO::getCreateTime, reqVO.getCreateTime())
|
||||||
.orderByDesc("id"));
|
.orderByDesc(BpmProcessInstanceExtDO::getId));
|
||||||
}
|
}
|
||||||
|
|
||||||
default BpmProcessInstanceExtDO selectByProcessInstanceId(String processDefinitionId) {
|
default BpmProcessInstanceExtDO selectByProcessInstanceId(String processInstanceId) {
|
||||||
return selectOne("process_instance_id", processDefinitionId);
|
return selectOne(BpmProcessInstanceExtDO::getProcessInstanceId, processInstanceId);
|
||||||
}
|
}
|
||||||
|
|
||||||
default void updateByProcessInstanceId(BpmProcessInstanceExtDO updateObj) {
|
default void updateByProcessInstanceId(BpmProcessInstanceExtDO updateObj) {
|
||||||
update(updateObj, new QueryWrapper<BpmProcessInstanceExtDO>()
|
update(updateObj, new LambdaQueryWrapperX<BpmProcessInstanceExtDO>()
|
||||||
.eq("process_instance_id", updateObj.getProcessInstanceId()));
|
.eq(BpmProcessInstanceExtDO::getProcessInstanceId, updateObj.getProcessInstanceId()));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -7,13 +7,13 @@ import org.flowable.common.engine.api.delegate.event.FlowableEngineEntityEvent;
|
|||||||
import org.flowable.common.engine.api.delegate.event.FlowableEngineEventType;
|
import org.flowable.common.engine.api.delegate.event.FlowableEngineEventType;
|
||||||
import org.flowable.engine.delegate.event.AbstractFlowableEngineEventListener;
|
import org.flowable.engine.delegate.event.AbstractFlowableEngineEventListener;
|
||||||
import org.flowable.engine.delegate.event.FlowableCancelledEvent;
|
import org.flowable.engine.delegate.event.FlowableCancelledEvent;
|
||||||
import org.flowable.engine.delegate.event.FlowableProcessStartedEvent;
|
|
||||||
import org.flowable.engine.runtime.ProcessInstance;
|
import org.flowable.engine.runtime.ProcessInstance;
|
||||||
import org.springframework.context.annotation.Lazy;
|
import org.springframework.context.annotation.Lazy;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 监听 {@link ProcessInstance} 的开始与完成,创建与更新对应的 {@link BpmProcessInstanceExtDO} 记录
|
* 监听 {@link ProcessInstance} 的开始与完成,创建与更新对应的 {@link BpmProcessInstanceExtDO} 记录
|
||||||
*
|
*
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package cn.iocoder.yudao.module.bpm.framework.flowable.core.listener;
|
package cn.iocoder.yudao.module.bpm.framework.flowable.core.listener;
|
||||||
|
|
||||||
|
import cn.hutool.core.collection.CollUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import cn.iocoder.yudao.module.bpm.dal.dataobject.task.BpmTaskExtDO;
|
import cn.iocoder.yudao.module.bpm.dal.dataobject.task.BpmTaskExtDO;
|
||||||
import cn.iocoder.yudao.module.bpm.service.task.BpmActivityService;
|
import cn.iocoder.yudao.module.bpm.service.task.BpmActivityService;
|
||||||
@ -16,6 +17,7 @@ import org.springframework.context.annotation.Lazy;
|
|||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
|
import java.util.List;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -63,15 +65,18 @@ public class BpmTaskEventListener extends AbstractFlowableEngineEventListener {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void activityCancelled(FlowableActivityCancelledEvent event) {
|
protected void activityCancelled(FlowableActivityCancelledEvent event) {
|
||||||
HistoricActivityInstance activity = activityService.getHistoricActivityByExecutionId(event.getExecutionId());
|
List<HistoricActivityInstance> activityList = activityService.getHistoricActivityListByExecutionId(event.getExecutionId());
|
||||||
if (activity == null) {
|
if (CollUtil.isEmpty(activityList)) {
|
||||||
log.error("[activityCancelled][使用 executionId({}) 查找不到对应的活动实例]", event.getExecutionId());
|
log.error("[activityCancelled][使用 executionId({}) 查找不到对应的活动实例]", event.getExecutionId());
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (StrUtil.isEmpty(activity.getTaskId())) {
|
// 遍历处理
|
||||||
return;
|
activityList.forEach(activity -> {
|
||||||
}
|
if (StrUtil.isEmpty(activity.getTaskId())) {
|
||||||
taskService.updateTaskExtCancel(activity.getTaskId());
|
return;
|
||||||
|
}
|
||||||
|
taskService.updateTaskExtCancel(activity.getTaskId());
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
package cn.iocoder.yudao.module.bpm.service.definition;
|
package cn.iocoder.yudao.module.bpm.service.definition;
|
||||||
|
|
||||||
import cn.hutool.core.lang.Assert;
|
import cn.hutool.core.lang.Assert;
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
|
import cn.iocoder.yudao.framework.common.util.json.JsonUtils;
|
||||||
import cn.iocoder.yudao.framework.common.util.validation.ValidationUtils;
|
import cn.iocoder.yudao.framework.common.util.validation.ValidationUtils;
|
||||||
import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.form.BpmFormCreateReqVO;
|
import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.form.BpmFormCreateReqVO;
|
||||||
import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.form.BpmFormPageReqVO;
|
import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.form.BpmFormPageReqVO;
|
||||||
@ -11,9 +13,6 @@ import cn.iocoder.yudao.module.bpm.dal.mysql.definition.BpmFormMapper;
|
|||||||
import cn.iocoder.yudao.module.bpm.enums.ErrorCodeConstants;
|
import cn.iocoder.yudao.module.bpm.enums.ErrorCodeConstants;
|
||||||
import cn.iocoder.yudao.module.bpm.enums.definition.BpmModelFormTypeEnum;
|
import cn.iocoder.yudao.module.bpm.enums.definition.BpmModelFormTypeEnum;
|
||||||
import cn.iocoder.yudao.module.bpm.service.definition.dto.BpmFormFieldRespDTO;
|
import cn.iocoder.yudao.module.bpm.service.definition.dto.BpmFormFieldRespDTO;
|
||||||
import cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil;
|
|
||||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
|
||||||
import cn.iocoder.yudao.framework.common.util.json.JsonUtils;
|
|
||||||
import cn.iocoder.yudao.module.bpm.service.definition.dto.BpmModelMetaInfoRespDTO;
|
import cn.iocoder.yudao.module.bpm.service.definition.dto.BpmModelMetaInfoRespDTO;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
@ -66,7 +65,7 @@ public class BpmFormServiceImpl implements BpmFormService {
|
|||||||
|
|
||||||
private void validateFormExists(Long id) {
|
private void validateFormExists(Long id) {
|
||||||
if (formMapper.selectById(id) == null) {
|
if (formMapper.selectById(id) == null) {
|
||||||
throw ServiceExceptionUtil.exception(ErrorCodeConstants.FORM_NOT_EXISTS);
|
throw exception(ErrorCodeConstants.FORM_NOT_EXISTS);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -129,7 +128,7 @@ public class BpmFormServiceImpl implements BpmFormService {
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
// 如果存在,则报错
|
// 如果存在,则报错
|
||||||
throw ServiceExceptionUtil.exception(ErrorCodeConstants.FORM_FIELD_REPEAT, oldLabel, fieldDTO.getLabel(), fieldDTO.getVModel());
|
throw exception(ErrorCodeConstants.FORM_FIELD_REPEAT, oldLabel, fieldDTO.getLabel(), fieldDTO.getVModel());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -99,7 +99,7 @@ public class BpmModelServiceImpl implements BpmModelService {
|
|||||||
public String createModel(@Valid BpmModelCreateReqVO createReqVO, String bpmnXml) {
|
public String createModel(@Valid BpmModelCreateReqVO createReqVO, String bpmnXml) {
|
||||||
checkKeyNCName(createReqVO.getKey());
|
checkKeyNCName(createReqVO.getKey());
|
||||||
// 校验流程标识已经存在
|
// 校验流程标识已经存在
|
||||||
Model keyModel = this.getModelByKey(createReqVO.getKey());
|
Model keyModel = getModelByKey(createReqVO.getKey());
|
||||||
if (keyModel != null) {
|
if (keyModel != null) {
|
||||||
throw exception(MODEL_KEY_EXISTS, createReqVO.getKey());
|
throw exception(MODEL_KEY_EXISTS, createReqVO.getKey());
|
||||||
}
|
}
|
||||||
@ -151,42 +151,43 @@ public class BpmModelServiceImpl implements BpmModelService {
|
|||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class) // 因为进行多个操作,所以开启事务
|
@Transactional(rollbackFor = Exception.class) // 因为进行多个操作,所以开启事务
|
||||||
public void deployModel(String id) {
|
public void deployModel(String id) {
|
||||||
// 校验流程模型存在
|
// 1.1 校验流程模型存在
|
||||||
Model model = repositoryService.getModel(id);
|
Model model = repositoryService.getModel(id);
|
||||||
if (ObjectUtils.isEmpty(model)) {
|
if (ObjectUtils.isEmpty(model)) {
|
||||||
throw exception(MODEL_NOT_EXISTS);
|
throw exception(MODEL_NOT_EXISTS);
|
||||||
}
|
}
|
||||||
// 校验流程图
|
// 1.2 校验流程图
|
||||||
|
// TODO 芋艿:校验流程图的有效性;例如说,是否有开始的元素,是否有结束的元素;
|
||||||
byte[] bpmnBytes = repositoryService.getModelEditorSource(model.getId());
|
byte[] bpmnBytes = repositoryService.getModelEditorSource(model.getId());
|
||||||
if (bpmnBytes == null) {
|
if (bpmnBytes == null) {
|
||||||
throw exception(MODEL_NOT_EXISTS);
|
throw exception(MODEL_NOT_EXISTS);
|
||||||
}
|
}
|
||||||
// TODO 芋艿:校验流程图的有效性;例如说,是否有开始的元素,是否有结束的元素;
|
// 1.3 校验表单已配
|
||||||
// 校验表单已配
|
|
||||||
BpmFormDO form = checkFormConfig(model.getMetaInfo());
|
BpmFormDO form = checkFormConfig(model.getMetaInfo());
|
||||||
//校验任务分配规则已配置
|
// 1.4 校验任务分配规则已配置
|
||||||
taskAssignRuleService.checkTaskAssignRuleAllConfig(id);
|
taskAssignRuleService.checkTaskAssignRuleAllConfig(id);
|
||||||
|
|
||||||
|
// 1.5 校验模型是否发生修改。如果未修改,则不允许创建
|
||||||
BpmProcessDefinitionCreateReqDTO definitionCreateReqDTO = BpmModelConvert.INSTANCE.convert2(model, form).setBpmnBytes(bpmnBytes);
|
BpmProcessDefinitionCreateReqDTO definitionCreateReqDTO = BpmModelConvert.INSTANCE.convert2(model, form).setBpmnBytes(bpmnBytes);
|
||||||
//校验模型是否发生修改。如果未修改,则不允许创建
|
|
||||||
if (processDefinitionService.isProcessDefinitionEquals(definitionCreateReqDTO)) { // 流程定义的信息相等
|
if (processDefinitionService.isProcessDefinitionEquals(definitionCreateReqDTO)) { // 流程定义的信息相等
|
||||||
ProcessDefinition oldProcessInstance = processDefinitionService.getProcessDefinitionByDeploymentId(model.getDeploymentId());
|
ProcessDefinition oldProcessDefinition = processDefinitionService.getProcessDefinitionByDeploymentId(model.getDeploymentId());
|
||||||
if (oldProcessInstance != null && taskAssignRuleService.isTaskAssignRulesEquals(model.getId(), oldProcessInstance.getId())) {
|
if (oldProcessDefinition != null && taskAssignRuleService.isTaskAssignRulesEquals(model.getId(), oldProcessDefinition.getId())) {
|
||||||
throw exception(MODEL_DEPLOY_FAIL_TASK_INFO_EQUALS);
|
throw exception(MODEL_DEPLOY_FAIL_TASK_INFO_EQUALS);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// 创建流程定义
|
|
||||||
|
// 2.1 创建流程定义
|
||||||
String definitionId = processDefinitionService.createProcessDefinition(definitionCreateReqDTO);
|
String definitionId = processDefinitionService.createProcessDefinition(definitionCreateReqDTO);
|
||||||
|
|
||||||
// 将老的流程定义进行挂起。也就是说,只有最新部署的流程定义,才可以发起任务。
|
// 2.2 将老的流程定义进行挂起。也就是说,只有最新部署的流程定义,才可以发起任务。
|
||||||
updateProcessDefinitionSuspended(model.getDeploymentId());
|
updateProcessDefinitionSuspended(model.getDeploymentId());
|
||||||
|
|
||||||
// 更新 model 的 deploymentId,进行关联
|
// 2.3 更新 model 的 deploymentId,进行关联
|
||||||
ProcessDefinition definition = processDefinitionService.getProcessDefinition(definitionId);
|
ProcessDefinition definition = processDefinitionService.getProcessDefinition(definitionId);
|
||||||
model.setDeploymentId(definition.getDeploymentId());
|
model.setDeploymentId(definition.getDeploymentId());
|
||||||
repositoryService.saveModel(model);
|
repositoryService.saveModel(model);
|
||||||
|
|
||||||
//复制任务分配规则
|
// 2.4 复制任务分配规则
|
||||||
taskAssignRuleService.copyTaskAssignRules(id, definition.getId());
|
taskAssignRuleService.copyTaskAssignRules(id, definition.getId());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -127,7 +127,8 @@ public class BpmProcessDefinitionServiceImpl implements BpmProcessDefinitionServ
|
|||||||
.deploy();
|
.deploy();
|
||||||
|
|
||||||
// 设置 ProcessDefinition 的 category 分类
|
// 设置 ProcessDefinition 的 category 分类
|
||||||
ProcessDefinition definition = repositoryService.createProcessDefinitionQuery().deploymentId(deploy.getId()).singleResult();
|
ProcessDefinition definition = repositoryService.createProcessDefinitionQuery()
|
||||||
|
.deploymentId(deploy.getId()).singleResult();
|
||||||
repositoryService.setProcessDefinitionCategory(definition.getId(), createReqDTO.getCategory());
|
repositoryService.setProcessDefinitionCategory(definition.getId(), createReqDTO.getCategory());
|
||||||
// 注意 1,ProcessDefinition 的 key 和 name 是通过 BPMN 中的 <bpmn2:process /> 的 id 和 name 决定
|
// 注意 1,ProcessDefinition 的 key 和 name 是通过 BPMN 中的 <bpmn2:process /> 的 id 和 name 决定
|
||||||
// 注意 2,目前该项目的设计上,需要保证 Model、Deployment、ProcessDefinition 使用相同的 key,保证关联性。
|
// 注意 2,目前该项目的设计上,需要保证 Model、Deployment、ProcessDefinition 使用相同的 key,保证关联性。
|
||||||
@ -198,7 +199,7 @@ public class BpmProcessDefinitionServiceImpl implements BpmProcessDefinitionServ
|
|||||||
// 校验 BPMN XML 信息
|
// 校验 BPMN XML 信息
|
||||||
BpmnModel newModel = buildBpmnModel(createReqDTO.getBpmnBytes());
|
BpmnModel newModel = buildBpmnModel(createReqDTO.getBpmnBytes());
|
||||||
BpmnModel oldModel = getBpmnModel(oldProcessDefinition.getId());
|
BpmnModel oldModel = getBpmnModel(oldProcessDefinition.getId());
|
||||||
//TODO 貌似 flowable 不修改这个也不同。需要看看。 sourceSystemId 不同
|
// TODO 貌似 flowable 不修改这个也不同。需要看看。 sourceSystemId 不同
|
||||||
if (FlowableUtils.equals(oldModel, newModel)) {
|
if (FlowableUtils.equals(oldModel, newModel)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -218,8 +219,6 @@ public class BpmProcessDefinitionServiceImpl implements BpmProcessDefinitionServ
|
|||||||
return converter.convertToBpmnModel(new BytesStreamSource(bpmnBytes), true, true);
|
return converter.convertToBpmnModel(new BytesStreamSource(bpmnBytes), true, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public BpmProcessDefinitionExtDO getProcessDefinitionExt(String id) {
|
public BpmProcessDefinitionExtDO getProcessDefinitionExt(String id) {
|
||||||
return processDefinitionMapper.selectByProcessDefinitionId(id);
|
return processDefinitionMapper.selectByProcessDefinitionId(id);
|
||||||
|
@ -26,6 +26,6 @@ public interface BpmActivityService {
|
|||||||
* @param executionId 执行编号
|
* @param executionId 执行编号
|
||||||
* @return 活动实例
|
* @return 活动实例
|
||||||
*/
|
*/
|
||||||
HistoricActivityInstance getHistoricActivityByExecutionId(String executionId);
|
List<HistoricActivityInstance> getHistoricActivityListByExecutionId(String executionId);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -2,7 +2,6 @@ package cn.iocoder.yudao.module.bpm.service.task;
|
|||||||
|
|
||||||
import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.activity.BpmActivityRespVO;
|
import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.activity.BpmActivityRespVO;
|
||||||
import cn.iocoder.yudao.module.bpm.convert.task.BpmActivityConvert;
|
import cn.iocoder.yudao.module.bpm.convert.task.BpmActivityConvert;
|
||||||
import cn.iocoder.yudao.module.bpm.dal.mysql.task.BpmActivityMapper;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.flowable.engine.HistoryService;
|
import org.flowable.engine.HistoryService;
|
||||||
import org.flowable.engine.history.HistoricActivityInstance;
|
import org.flowable.engine.history.HistoricActivityInstance;
|
||||||
@ -25,8 +24,6 @@ public class BpmActivityServiceImpl implements BpmActivityService {
|
|||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private HistoryService historyService;
|
private HistoryService historyService;
|
||||||
@Resource
|
|
||||||
private BpmActivityMapper bpmActivityMapper;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<BpmActivityRespVO> getActivityListByProcessInstanceId(String processInstanceId) {
|
public List<BpmActivityRespVO> getActivityListByProcessInstanceId(String processInstanceId) {
|
||||||
@ -36,8 +33,8 @@ public class BpmActivityServiceImpl implements BpmActivityService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public HistoricActivityInstance getHistoricActivityByExecutionId(String executionId) {
|
public List<HistoricActivityInstance> getHistoricActivityListByExecutionId(String executionId) {
|
||||||
return historyService.createHistoricActivityInstanceQuery().executionId(executionId).singleResult();
|
return historyService.createHistoricActivityInstanceQuery().executionId(executionId).list();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -144,5 +144,4 @@ public interface BpmProcessInstanceService {
|
|||||||
*/
|
*/
|
||||||
void updateProcessInstanceExtReject(String id, String reason);
|
void updateProcessInstanceExtReject(String id, String reason);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
File diff suppressed because one or more lines are too long
@ -7,10 +7,7 @@ import cn.iocoder.yudao.framework.common.util.number.NumberUtils;
|
|||||||
import cn.iocoder.yudao.framework.common.util.object.PageUtils;
|
import cn.iocoder.yudao.framework.common.util.object.PageUtils;
|
||||||
import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.task.*;
|
import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.task.*;
|
||||||
import cn.iocoder.yudao.module.bpm.convert.task.BpmTaskConvert;
|
import cn.iocoder.yudao.module.bpm.convert.task.BpmTaskConvert;
|
||||||
import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmTaskAssignRuleDO;
|
|
||||||
import cn.iocoder.yudao.module.bpm.dal.dataobject.task.BpmTaskExtDO;
|
import cn.iocoder.yudao.module.bpm.dal.dataobject.task.BpmTaskExtDO;
|
||||||
import cn.iocoder.yudao.module.bpm.dal.mysql.definition.BpmTaskAssignRuleMapper;
|
|
||||||
import cn.iocoder.yudao.module.bpm.dal.mysql.task.BpmActivityMapper;
|
|
||||||
import cn.iocoder.yudao.module.bpm.dal.mysql.task.BpmTaskExtMapper;
|
import cn.iocoder.yudao.module.bpm.dal.mysql.task.BpmTaskExtMapper;
|
||||||
import cn.iocoder.yudao.module.bpm.enums.task.BpmProcessInstanceDeleteReasonEnum;
|
import cn.iocoder.yudao.module.bpm.enums.task.BpmProcessInstanceDeleteReasonEnum;
|
||||||
import cn.iocoder.yudao.module.bpm.enums.task.BpmProcessInstanceResultEnum;
|
import cn.iocoder.yudao.module.bpm.enums.task.BpmProcessInstanceResultEnum;
|
||||||
@ -67,10 +64,6 @@ public class BpmTaskServiceImpl implements BpmTaskService {
|
|||||||
private BpmTaskExtMapper taskExtMapper;
|
private BpmTaskExtMapper taskExtMapper;
|
||||||
@Resource
|
@Resource
|
||||||
private BpmMessageService messageService;
|
private BpmMessageService messageService;
|
||||||
@Resource
|
|
||||||
private BpmTaskAssignRuleMapper taskAssignRuleMapper;
|
|
||||||
@Resource
|
|
||||||
private BpmActivityMapper bpmActivityMapper;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public PageResult<BpmTaskTodoPageItemRespVO> getTodoTaskPage(Long userId, BpmTaskTodoPageReqVO pageVO) {
|
public PageResult<BpmTaskTodoPageItemRespVO> getTodoTaskPage(Long userId, BpmTaskTodoPageReqVO pageVO) {
|
||||||
@ -194,10 +187,6 @@ public class BpmTaskServiceImpl implements BpmTaskService {
|
|||||||
taskExtMapper.updateByTaskId(
|
taskExtMapper.updateByTaskId(
|
||||||
new BpmTaskExtDO().setTaskId(task.getId()).setResult(BpmProcessInstanceResultEnum.APPROVE.getResult())
|
new BpmTaskExtDO().setTaskId(task.getId()).setResult(BpmProcessInstanceResultEnum.APPROVE.getResult())
|
||||||
.setReason(reqVO.getReason()));
|
.setReason(reqVO.getReason()));
|
||||||
// 判断任务是否为或签,或签时删除其余不用审批的任务
|
|
||||||
List<BpmTaskAssignRuleDO> bpmTaskAssignRuleList =
|
|
||||||
taskAssignRuleMapper.selectListByProcessDefinitionId(task.getProcessDefinitionId(),
|
|
||||||
task.getTaskDefinitionKey());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -216,7 +205,7 @@ public class BpmTaskServiceImpl implements BpmTaskService {
|
|||||||
// 更新任务拓展表为不通过
|
// 更新任务拓展表为不通过
|
||||||
taskExtMapper.updateByTaskId(
|
taskExtMapper.updateByTaskId(
|
||||||
new BpmTaskExtDO().setTaskId(task.getId()).setResult(BpmProcessInstanceResultEnum.REJECT.getResult())
|
new BpmTaskExtDO().setTaskId(task.getId()).setResult(BpmProcessInstanceResultEnum.REJECT.getResult())
|
||||||
.setReason(reqVO.getReason()));
|
.setEndTime(new Date()).setReason(reqVO.getReason()));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -17,6 +17,9 @@ import org.springframework.context.annotation.Import;
|
|||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.buildTime;
|
||||||
import static cn.iocoder.yudao.framework.common.util.object.ObjectUtils.cloneIgnoreId;
|
import static cn.iocoder.yudao.framework.common.util.object.ObjectUtils.cloneIgnoreId;
|
||||||
import static cn.iocoder.yudao.module.bpm.enums.ErrorCodeConstants.USER_GROUP_NOT_EXISTS;
|
import static cn.iocoder.yudao.module.bpm.enums.ErrorCodeConstants.USER_GROUP_NOT_EXISTS;
|
||||||
|
|
||||||
@ -116,8 +119,7 @@ public class BpmUserGroupServiceTest extends BaseDbUnitTest {
|
|||||||
BpmUserGroupPageReqVO reqVO = new BpmUserGroupPageReqVO();
|
BpmUserGroupPageReqVO reqVO = new BpmUserGroupPageReqVO();
|
||||||
reqVO.setName("源码");
|
reqVO.setName("源码");
|
||||||
reqVO.setStatus(CommonStatusEnum.ENABLE.getStatus());
|
reqVO.setStatus(CommonStatusEnum.ENABLE.getStatus());
|
||||||
reqVO.setBeginCreateTime(DateUtils.buildTime(2021, 11, 10));
|
reqVO.setCreateTime((new Date[]{buildTime(2021, 11, 10),buildTime(2021, 11, 12)}));
|
||||||
reqVO.setEndCreateTime(DateUtils.buildTime(2021, 11, 12));
|
|
||||||
|
|
||||||
// 调用
|
// 调用
|
||||||
PageResult<BpmUserGroupDO> pageResult = userGroupService.getUserGroupPage(reqVO);
|
PageResult<BpmUserGroupDO> pageResult = userGroupService.getUserGroupPage(reqVO);
|
||||||
|
@ -24,12 +24,8 @@ public class CodegenTablePageReqVO extends PageParam {
|
|||||||
@ApiModelProperty(value = "表描述", example = "芋道", notes = "模糊匹配")
|
@ApiModelProperty(value = "表描述", example = "芋道", notes = "模糊匹配")
|
||||||
private String tableComment;
|
private String tableComment;
|
||||||
|
|
||||||
@ApiModelProperty(value = "开始创建时间", example = "2020-10-24 00:00:00")
|
@ApiModelProperty(value = "创建时间", example = "[2022-07-01 00:00:00,2022-07-01 23:59:59]")
|
||||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||||
private Date beginCreateTime;
|
private Date[] createTime;
|
||||||
|
|
||||||
@ApiModelProperty(value = "结束创建时间", example = "2020-10-24 23:59:59")
|
|
||||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
|
||||||
private Date endCreateTime;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -22,12 +22,8 @@ public class ConfigExportReqVO {
|
|||||||
@ApiModelProperty(value = "参数类型", example = "1", notes = "参见 SysConfigTypeEnum 枚举")
|
@ApiModelProperty(value = "参数类型", example = "1", notes = "参见 SysConfigTypeEnum 枚举")
|
||||||
private Integer type;
|
private Integer type;
|
||||||
|
|
||||||
@ApiModelProperty(value = "开始时间", example = "2020-10-24 00:00:00")
|
@ApiModelProperty(value = "创建时间", example = "[2022-07-01 00:00:00,2022-07-01 23:59:59]")
|
||||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||||
private Date beginTime;
|
private Date[] createTime;
|
||||||
|
|
||||||
@ApiModelProperty(value = "结束时间", example = "2020-10-24 23:59:59")
|
|
||||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
|
||||||
private Date endTime;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -27,12 +27,8 @@ public class ConfigPageReqVO extends PageParam {
|
|||||||
@ApiModelProperty(value = "参数类型", example = "1", notes = "参见 SysConfigTypeEnum 枚举")
|
@ApiModelProperty(value = "参数类型", example = "1", notes = "参见 SysConfigTypeEnum 枚举")
|
||||||
private Integer type;
|
private Integer type;
|
||||||
|
|
||||||
@ApiModelProperty(value = "开始时间", example = "2020-10-24 00:00:00")
|
@ApiModelProperty(value = "创建时间", example = "[2022-07-01 00:00:00,2022-07-01 23:59:59]")
|
||||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||||
private Date beginTime;
|
private Date[] createTime;
|
||||||
|
|
||||||
@ApiModelProperty(value = "结束时间", example = "2020-10-24 23:59:59")
|
|
||||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
|
||||||
private Date endTime;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -25,11 +25,7 @@ public class FileConfigPageReqVO extends PageParam {
|
|||||||
private Integer storage;
|
private Integer storage;
|
||||||
|
|
||||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||||
@ApiModelProperty(value = "开始创建时间")
|
@ApiModelProperty(value = "创建时间")
|
||||||
private Date beginCreateTime;
|
private Date[] createTime;
|
||||||
|
|
||||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
|
||||||
@ApiModelProperty(value = "结束创建时间")
|
|
||||||
private Date endCreateTime;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -25,11 +25,7 @@ public class FilePageReqVO extends PageParam {
|
|||||||
private String type;
|
private String type;
|
||||||
|
|
||||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||||
@ApiModelProperty(value = "开始创建时间")
|
@ApiModelProperty(value = "创建时间")
|
||||||
private Date beginCreateTime;
|
private Date[] createTime;
|
||||||
|
|
||||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
|
||||||
@ApiModelProperty(value = "结束创建时间")
|
|
||||||
private Date endCreateTime;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -26,12 +26,8 @@ public class ApiAccessLogExportReqVO {
|
|||||||
private String requestUrl;
|
private String requestUrl;
|
||||||
|
|
||||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||||
@ApiModelProperty(value = "开始开始请求时间")
|
@ApiModelProperty(value = "开始请求时间")
|
||||||
private Date beginBeginTime;
|
private Date[] beginTime;
|
||||||
|
|
||||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
|
||||||
@ApiModelProperty(value = "结束开始请求时间")
|
|
||||||
private Date endBeginTime;
|
|
||||||
|
|
||||||
@ApiModelProperty(value = "执行时长", example = "100", notes = "大于等于,单位:毫秒")
|
@ApiModelProperty(value = "执行时长", example = "100", notes = "大于等于,单位:毫秒")
|
||||||
private Integer duration;
|
private Integer duration;
|
||||||
|
@ -31,12 +31,8 @@ public class ApiAccessLogPageReqVO extends PageParam {
|
|||||||
private String requestUrl;
|
private String requestUrl;
|
||||||
|
|
||||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||||
@ApiModelProperty(value = "开始开始请求时间")
|
@ApiModelProperty(value = "开始请求时间")
|
||||||
private Date beginBeginTime;
|
private Date[] beginTime;
|
||||||
|
|
||||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
|
||||||
@ApiModelProperty(value = "结束开始请求时间")
|
|
||||||
private Date endBeginTime;
|
|
||||||
|
|
||||||
@ApiModelProperty(value = "执行时长", example = "100", notes = "大于等于,单位:毫秒")
|
@ApiModelProperty(value = "执行时长", example = "100", notes = "大于等于,单位:毫秒")
|
||||||
private Integer duration;
|
private Integer duration;
|
||||||
|
@ -26,12 +26,8 @@ public class ApiErrorLogExportReqVO {
|
|||||||
private String requestUrl;
|
private String requestUrl;
|
||||||
|
|
||||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||||
@ApiModelProperty(value = "开始异常发生时间")
|
@ApiModelProperty(value = "异常发生时间")
|
||||||
private Date beginExceptionTime;
|
private Date[] exceptionTime;
|
||||||
|
|
||||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
|
||||||
@ApiModelProperty(value = "结束异常发生时间")
|
|
||||||
private Date endExceptionTime;
|
|
||||||
|
|
||||||
@ApiModelProperty(value = "处理状态", example = "0")
|
@ApiModelProperty(value = "处理状态", example = "0")
|
||||||
private Integer processStatus;
|
private Integer processStatus;
|
||||||
|
@ -31,12 +31,8 @@ public class ApiErrorLogPageReqVO extends PageParam {
|
|||||||
private String requestUrl;
|
private String requestUrl;
|
||||||
|
|
||||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||||
@ApiModelProperty(value = "开始异常发生时间")
|
@ApiModelProperty(value = "异常发生时间")
|
||||||
private Date beginExceptionTime;
|
private Date[] exceptionTime;
|
||||||
|
|
||||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
|
||||||
@ApiModelProperty(value = "结束异常发生时间")
|
|
||||||
private Date endExceptionTime;
|
|
||||||
|
|
||||||
@ApiModelProperty(value = "处理状态", example = "0")
|
@ApiModelProperty(value = "处理状态", example = "0")
|
||||||
private Integer processStatus;
|
private Integer processStatus;
|
||||||
|
@ -28,11 +28,7 @@ public class TestDemoExportReqVO {
|
|||||||
private String remark;
|
private String remark;
|
||||||
|
|
||||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||||
@ApiModelProperty(value = "开始创建时间")
|
@ApiModelProperty(value = "创建时间")
|
||||||
private Date beginCreateTime;
|
private Date[] createTime;
|
||||||
|
|
||||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
|
||||||
@ApiModelProperty(value = "结束创建时间")
|
|
||||||
private Date endCreateTime;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -30,11 +30,7 @@ public class TestDemoPageReqVO extends PageParam {
|
|||||||
private String remark;
|
private String remark;
|
||||||
|
|
||||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||||
@ApiModelProperty(value = "开始创建时间")
|
@ApiModelProperty(value = "创建时间")
|
||||||
private Date beginCreateTime;
|
private Date[] createTime;
|
||||||
|
|
||||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
|
||||||
@ApiModelProperty(value = "结束创建时间")
|
|
||||||
private Date endCreateTime;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -21,7 +21,7 @@ public interface CodegenTableMapper extends BaseMapperX<CodegenTableDO> {
|
|||||||
return selectPage(pageReqVO, new LambdaQueryWrapperX<CodegenTableDO>()
|
return selectPage(pageReqVO, new LambdaQueryWrapperX<CodegenTableDO>()
|
||||||
.likeIfPresent(CodegenTableDO::getTableName, pageReqVO.getTableName())
|
.likeIfPresent(CodegenTableDO::getTableName, pageReqVO.getTableName())
|
||||||
.likeIfPresent(CodegenTableDO::getTableComment, pageReqVO.getTableComment())
|
.likeIfPresent(CodegenTableDO::getTableComment, pageReqVO.getTableComment())
|
||||||
.betweenIfPresent(CodegenTableDO::getCreateTime, pageReqVO.getBeginCreateTime(), pageReqVO.getEndCreateTime()));
|
.betweenIfPresent(CodegenTableDO::getCreateTime, pageReqVO.getCreateTime()));
|
||||||
}
|
}
|
||||||
|
|
||||||
default List<CodegenTableDO> selectListByDataSourceConfigId(Long dataSourceConfigId) {
|
default List<CodegenTableDO> selectListByDataSourceConfigId(Long dataSourceConfigId) {
|
||||||
|
@ -22,7 +22,7 @@ public interface ConfigMapper extends BaseMapperX<ConfigDO> {
|
|||||||
.likeIfPresent(ConfigDO::getName, reqVO.getName())
|
.likeIfPresent(ConfigDO::getName, reqVO.getName())
|
||||||
.likeIfPresent(ConfigDO::getConfigKey, reqVO.getKey())
|
.likeIfPresent(ConfigDO::getConfigKey, reqVO.getKey())
|
||||||
.eqIfPresent(ConfigDO::getType, reqVO.getType())
|
.eqIfPresent(ConfigDO::getType, reqVO.getType())
|
||||||
.betweenIfPresent(ConfigDO::getCreateTime, reqVO.getBeginTime(), reqVO.getEndTime()));
|
.betweenIfPresent(ConfigDO::getCreateTime, reqVO.getCreateTime()));
|
||||||
}
|
}
|
||||||
|
|
||||||
default List<ConfigDO> selectList(ConfigExportReqVO reqVO) {
|
default List<ConfigDO> selectList(ConfigExportReqVO reqVO) {
|
||||||
@ -30,7 +30,7 @@ public interface ConfigMapper extends BaseMapperX<ConfigDO> {
|
|||||||
.likeIfPresent(ConfigDO::getName, reqVO.getName())
|
.likeIfPresent(ConfigDO::getName, reqVO.getName())
|
||||||
.likeIfPresent(ConfigDO::getConfigKey, reqVO.getKey())
|
.likeIfPresent(ConfigDO::getConfigKey, reqVO.getKey())
|
||||||
.eqIfPresent(ConfigDO::getType, reqVO.getType())
|
.eqIfPresent(ConfigDO::getType, reqVO.getType())
|
||||||
.betweenIfPresent(ConfigDO::getCreateTime, reqVO.getBeginTime(), reqVO.getEndTime()));
|
.betweenIfPresent(ConfigDO::getCreateTime, reqVO.getCreateTime()));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -22,7 +22,7 @@ public interface FileConfigMapper extends BaseMapperX<FileConfigDO> {
|
|||||||
return selectPage(reqVO, new LambdaQueryWrapperX<FileConfigDO>()
|
return selectPage(reqVO, new LambdaQueryWrapperX<FileConfigDO>()
|
||||||
.likeIfPresent(FileConfigDO::getName, reqVO.getName())
|
.likeIfPresent(FileConfigDO::getName, reqVO.getName())
|
||||||
.eqIfPresent(FileConfigDO::getStorage, reqVO.getStorage())
|
.eqIfPresent(FileConfigDO::getStorage, reqVO.getStorage())
|
||||||
.betweenIfPresent(FileConfigDO::getCreateTime, reqVO.getBeginCreateTime(), reqVO.getEndCreateTime())
|
.betweenIfPresent(FileConfigDO::getCreateTime, reqVO.getCreateTime())
|
||||||
.orderByDesc(FileConfigDO::getId));
|
.orderByDesc(FileConfigDO::getId));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -19,7 +19,7 @@ public interface FileMapper extends BaseMapperX<FileDO> {
|
|||||||
return selectPage(reqVO, new LambdaQueryWrapperX<FileDO>()
|
return selectPage(reqVO, new LambdaQueryWrapperX<FileDO>()
|
||||||
.likeIfPresent(FileDO::getPath, reqVO.getPath())
|
.likeIfPresent(FileDO::getPath, reqVO.getPath())
|
||||||
.likeIfPresent(FileDO::getType, reqVO.getType())
|
.likeIfPresent(FileDO::getType, reqVO.getType())
|
||||||
.betweenIfPresent(FileDO::getCreateTime, reqVO.getBeginCreateTime(), reqVO.getEndCreateTime())
|
.betweenIfPresent(FileDO::getCreateTime, reqVO.getCreateTime())
|
||||||
.orderByDesc(FileDO::getId));
|
.orderByDesc(FileDO::getId));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
package cn.iocoder.yudao.module.infra.dal.mysql.logger;
|
package cn.iocoder.yudao.module.infra.dal.mysql.logger;
|
||||||
|
|
||||||
import cn.iocoder.yudao.module.infra.controller.admin.logger.vo.apiaccesslog.ApiAccessLogExportReqVO;
|
|
||||||
import cn.iocoder.yudao.module.infra.controller.admin.logger.vo.apiaccesslog.ApiAccessLogPageReqVO;
|
|
||||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
|
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
|
||||||
import cn.iocoder.yudao.framework.mybatis.core.query.QueryWrapperX;
|
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||||
|
import cn.iocoder.yudao.module.infra.controller.admin.logger.vo.apiaccesslog.ApiAccessLogExportReqVO;
|
||||||
|
import cn.iocoder.yudao.module.infra.controller.admin.logger.vo.apiaccesslog.ApiAccessLogPageReqVO;
|
||||||
import cn.iocoder.yudao.module.infra.dal.dataobject.logger.ApiAccessLogDO;
|
import cn.iocoder.yudao.module.infra.dal.dataobject.logger.ApiAccessLogDO;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
|
||||||
@ -19,28 +19,28 @@ import java.util.List;
|
|||||||
public interface ApiAccessLogMapper extends BaseMapperX<ApiAccessLogDO> {
|
public interface ApiAccessLogMapper extends BaseMapperX<ApiAccessLogDO> {
|
||||||
|
|
||||||
default PageResult<ApiAccessLogDO> selectPage(ApiAccessLogPageReqVO reqVO) {
|
default PageResult<ApiAccessLogDO> selectPage(ApiAccessLogPageReqVO reqVO) {
|
||||||
return selectPage(reqVO, new QueryWrapperX<ApiAccessLogDO>()
|
return selectPage(reqVO, new LambdaQueryWrapperX<ApiAccessLogDO>()
|
||||||
.eqIfPresent("user_id", reqVO.getUserId())
|
.eqIfPresent(ApiAccessLogDO::getUserId, reqVO.getUserId())
|
||||||
.eqIfPresent("user_type", reqVO.getUserType())
|
.eqIfPresent(ApiAccessLogDO::getUserType, reqVO.getUserType())
|
||||||
.eqIfPresent("application_name", reqVO.getApplicationName())
|
.eqIfPresent(ApiAccessLogDO::getApplicationName, reqVO.getApplicationName())
|
||||||
.likeIfPresent("request_url", reqVO.getRequestUrl())
|
.likeIfPresent(ApiAccessLogDO::getRequestUrl, reqVO.getRequestUrl())
|
||||||
.betweenIfPresent("begin_time", reqVO.getBeginBeginTime(), reqVO.getEndBeginTime())
|
.betweenIfPresent(ApiAccessLogDO::getBeginTime, reqVO.getBeginTime())
|
||||||
.geIfPresent("duration", reqVO.getDuration())
|
.geIfPresent(ApiAccessLogDO::getDuration, reqVO.getDuration())
|
||||||
.eqIfPresent("result_code", reqVO.getResultCode())
|
.eqIfPresent(ApiAccessLogDO::getResultCode, reqVO.getResultCode())
|
||||||
.orderByDesc("id")
|
.orderByDesc(ApiAccessLogDO::getId)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
default List<ApiAccessLogDO> selectList(ApiAccessLogExportReqVO reqVO) {
|
default List<ApiAccessLogDO> selectList(ApiAccessLogExportReqVO reqVO) {
|
||||||
return selectList(new QueryWrapperX<ApiAccessLogDO>()
|
return selectList(new LambdaQueryWrapperX<ApiAccessLogDO>()
|
||||||
.eqIfPresent("user_id", reqVO.getUserId())
|
.eqIfPresent(ApiAccessLogDO::getUserId, reqVO.getUserId())
|
||||||
.eqIfPresent("user_type", reqVO.getUserType())
|
.eqIfPresent(ApiAccessLogDO::getUserType, reqVO.getUserType())
|
||||||
.eqIfPresent("application_name", reqVO.getApplicationName())
|
.eqIfPresent(ApiAccessLogDO::getApplicationName, reqVO.getApplicationName())
|
||||||
.likeIfPresent("request_url", reqVO.getRequestUrl())
|
.likeIfPresent(ApiAccessLogDO::getRequestUrl, reqVO.getRequestUrl())
|
||||||
.betweenIfPresent("begin_time", reqVO.getBeginBeginTime(), reqVO.getEndBeginTime())
|
.betweenIfPresent(ApiAccessLogDO::getBeginTime, reqVO.getBeginTime())
|
||||||
.geIfPresent("duration", reqVO.getDuration())
|
.geIfPresent(ApiAccessLogDO::getDuration, reqVO.getDuration())
|
||||||
.eqIfPresent("result_code", reqVO.getResultCode())
|
.eqIfPresent(ApiAccessLogDO::getResultCode, reqVO.getResultCode())
|
||||||
.orderByDesc("id")
|
.orderByDesc(ApiAccessLogDO::getId)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@ package cn.iocoder.yudao.module.infra.dal.mysql.logger;
|
|||||||
|
|
||||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
|
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
|
||||||
import cn.iocoder.yudao.framework.mybatis.core.query.QueryWrapperX;
|
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||||
import cn.iocoder.yudao.module.infra.controller.admin.logger.vo.apierrorlog.ApiErrorLogExportReqVO;
|
import cn.iocoder.yudao.module.infra.controller.admin.logger.vo.apierrorlog.ApiErrorLogExportReqVO;
|
||||||
import cn.iocoder.yudao.module.infra.controller.admin.logger.vo.apierrorlog.ApiErrorLogPageReqVO;
|
import cn.iocoder.yudao.module.infra.controller.admin.logger.vo.apierrorlog.ApiErrorLogPageReqVO;
|
||||||
import cn.iocoder.yudao.module.infra.dal.dataobject.logger.ApiErrorLogDO;
|
import cn.iocoder.yudao.module.infra.dal.dataobject.logger.ApiErrorLogDO;
|
||||||
@ -19,26 +19,26 @@ import java.util.List;
|
|||||||
public interface ApiErrorLogMapper extends BaseMapperX<ApiErrorLogDO> {
|
public interface ApiErrorLogMapper extends BaseMapperX<ApiErrorLogDO> {
|
||||||
|
|
||||||
default PageResult<ApiErrorLogDO> selectPage(ApiErrorLogPageReqVO reqVO) {
|
default PageResult<ApiErrorLogDO> selectPage(ApiErrorLogPageReqVO reqVO) {
|
||||||
return selectPage(reqVO, new QueryWrapperX<ApiErrorLogDO>()
|
return selectPage(reqVO, new LambdaQueryWrapperX<ApiErrorLogDO>()
|
||||||
.eqIfPresent("user_id", reqVO.getUserId())
|
.eqIfPresent(ApiErrorLogDO::getUserId, reqVO.getUserId())
|
||||||
.eqIfPresent("user_type", reqVO.getUserType())
|
.eqIfPresent(ApiErrorLogDO::getUserType, reqVO.getUserType())
|
||||||
.eqIfPresent("application_name", reqVO.getApplicationName())
|
.eqIfPresent(ApiErrorLogDO::getApplicationName, reqVO.getApplicationName())
|
||||||
.likeIfPresent("request_url", reqVO.getRequestUrl())
|
.likeIfPresent(ApiErrorLogDO::getRequestUrl, reqVO.getRequestUrl())
|
||||||
.betweenIfPresent("exception_time", reqVO.getBeginExceptionTime(), reqVO.getEndExceptionTime())
|
.betweenIfPresent(ApiErrorLogDO::getExceptionTime, reqVO.getExceptionTime())
|
||||||
.eqIfPresent("process_status", reqVO.getProcessStatus())
|
.eqIfPresent(ApiErrorLogDO::getProcessStatus, reqVO.getProcessStatus())
|
||||||
.orderByDesc("id")
|
.orderByDesc(ApiErrorLogDO::getId)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
default List<ApiErrorLogDO> selectList(ApiErrorLogExportReqVO reqVO) {
|
default List<ApiErrorLogDO> selectList(ApiErrorLogExportReqVO reqVO) {
|
||||||
return selectList(new QueryWrapperX<ApiErrorLogDO>()
|
return selectList(new LambdaQueryWrapperX<ApiErrorLogDO>()
|
||||||
.eqIfPresent("user_id", reqVO.getUserId())
|
.eqIfPresent(ApiErrorLogDO::getUserId, reqVO.getUserId())
|
||||||
.eqIfPresent("user_type", reqVO.getUserType())
|
.eqIfPresent(ApiErrorLogDO::getUserType, reqVO.getUserType())
|
||||||
.eqIfPresent("application_name", reqVO.getApplicationName())
|
.eqIfPresent(ApiErrorLogDO::getApplicationName, reqVO.getApplicationName())
|
||||||
.likeIfPresent("request_url", reqVO.getRequestUrl())
|
.likeIfPresent(ApiErrorLogDO::getRequestUrl, reqVO.getRequestUrl())
|
||||||
.betweenIfPresent("exception_time", reqVO.getBeginExceptionTime(), reqVO.getEndExceptionTime())
|
.betweenIfPresent(ApiErrorLogDO::getExceptionTime, reqVO.getExceptionTime())
|
||||||
.eqIfPresent("process_status", reqVO.getProcessStatus())
|
.eqIfPresent(ApiErrorLogDO::getProcessStatus, reqVO.getProcessStatus())
|
||||||
.orderByDesc("id")
|
.orderByDesc(ApiErrorLogDO::getId)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -25,7 +25,7 @@ public interface TestDemoMapper extends BaseMapperX<TestDemoDO> {
|
|||||||
.eqIfPresent(TestDemoDO::getType, reqVO.getType())
|
.eqIfPresent(TestDemoDO::getType, reqVO.getType())
|
||||||
.eqIfPresent(TestDemoDO::getCategory, reqVO.getCategory())
|
.eqIfPresent(TestDemoDO::getCategory, reqVO.getCategory())
|
||||||
.eqIfPresent(TestDemoDO::getRemark, reqVO.getRemark())
|
.eqIfPresent(TestDemoDO::getRemark, reqVO.getRemark())
|
||||||
.betweenIfPresent(TestDemoDO::getCreateTime, reqVO.getBeginCreateTime(), reqVO.getEndCreateTime())
|
.betweenIfPresent(TestDemoDO::getCreateTime, reqVO.getCreateTime())
|
||||||
.orderByDesc(TestDemoDO::getId));
|
.orderByDesc(TestDemoDO::getId));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -36,7 +36,7 @@ public interface TestDemoMapper extends BaseMapperX<TestDemoDO> {
|
|||||||
.eqIfPresent(TestDemoDO::getType, reqVO.getType())
|
.eqIfPresent(TestDemoDO::getType, reqVO.getType())
|
||||||
.eqIfPresent(TestDemoDO::getCategory, reqVO.getCategory())
|
.eqIfPresent(TestDemoDO::getCategory, reqVO.getCategory())
|
||||||
.eqIfPresent(TestDemoDO::getRemark, reqVO.getRemark())
|
.eqIfPresent(TestDemoDO::getRemark, reqVO.getRemark())
|
||||||
.betweenIfPresent(TestDemoDO::getCreateTime, reqVO.getBeginCreateTime(), reqVO.getEndCreateTime())
|
.betweenIfPresent(TestDemoDO::getCreateTime, reqVO.getCreateTime())
|
||||||
.orderByDesc(TestDemoDO::getId));
|
.orderByDesc(TestDemoDO::getId));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -79,11 +79,20 @@ public class CodegenEngine {
|
|||||||
javaModuleImplTestFilePath("service/${table.businessName}/${table.className}ServiceImplTest"))
|
javaModuleImplTestFilePath("service/${table.businessName}/${table.className}ServiceImplTest"))
|
||||||
// Java module-api Main
|
// Java module-api Main
|
||||||
.put(javaTemplatePath("enums/errorcode"), javaModuleApiMainFilePath("enums/ErrorCodeConstants_手动操作"))
|
.put(javaTemplatePath("enums/errorcode"), javaModuleApiMainFilePath("enums/ErrorCodeConstants_手动操作"))
|
||||||
// Vue
|
// Vue2
|
||||||
.put(vueTemplatePath("views/index.vue"),
|
.put(vueTemplatePath("views/index.vue"),
|
||||||
vueFilePath("views/${table.moduleName}/${classNameVar}/index.vue"))
|
vueFilePath("views/${table.moduleName}/${classNameVar}/index.vue"))
|
||||||
.put(vueTemplatePath("api/api.js"),
|
.put(vueTemplatePath("api/api.js"),
|
||||||
vueFilePath("api/${table.moduleName}/${classNameVar}.js"))
|
vueFilePath("api/${table.moduleName}/${classNameVar}.js"))
|
||||||
|
// Vue3
|
||||||
|
.put(vue3TemplatePath("views/index.vue"),
|
||||||
|
vue3FilePath("views/${table.moduleName}/${classNameVar}/index.vue"))
|
||||||
|
.put(vue3TemplatePath("views/data.ts"),
|
||||||
|
vue3FilePath("views/${table.moduleName}/${classNameVar}/${classNameVar}.data.ts"))
|
||||||
|
.put(vue3TemplatePath("api/api.ts"),
|
||||||
|
vue3FilePath("api/${table.moduleName}/${classNameVar}/index.ts"))
|
||||||
|
.put(vue3TemplatePath("api/types.ts"),
|
||||||
|
vue3FilePath("api/${table.moduleName}/${classNameVar}/types.ts"))
|
||||||
// SQL
|
// SQL
|
||||||
.put("codegen/sql/sql.vm", "sql/sql.sql")
|
.put("codegen/sql/sql.vm", "sql/sql.sql")
|
||||||
.put("codegen/sql/h2.vm", "sql/h2.sql")
|
.put("codegen/sql/h2.vm", "sql/h2.sql")
|
||||||
@ -228,5 +237,12 @@ public class CodegenEngine {
|
|||||||
return "yudao-ui-${sceneEnum.basePackage}/" + // 顶级目录
|
return "yudao-ui-${sceneEnum.basePackage}/" + // 顶级目录
|
||||||
"src/" + path;
|
"src/" + path;
|
||||||
}
|
}
|
||||||
|
private static String vue3TemplatePath(String path) {
|
||||||
|
return "codegen/vue3/" + path + ".vm";
|
||||||
|
}
|
||||||
|
|
||||||
|
private static String vue3FilePath(String path) {
|
||||||
|
return "yudao-ui-${sceneEnum.basePackage}-vue3/" + // 顶级目录
|
||||||
|
"src/" + path;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -15,9 +15,6 @@ import static ${DateUtilsClassName}.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
|
|||||||
#end
|
#end
|
||||||
## 字段模板
|
## 字段模板
|
||||||
#macro(columnTpl $prefix $prefixStr)
|
#macro(columnTpl $prefix $prefixStr)
|
||||||
#if (${column.javaType} == "Date")## 时间类型
|
|
||||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
|
||||||
#end
|
|
||||||
@ApiModelProperty(value = "${prefixStr}${column.columnComment}"#if ("$!column.example" != ""), example = "${column.example}"#end)
|
@ApiModelProperty(value = "${prefixStr}${column.columnComment}"#if ("$!column.example" != ""), example = "${column.example}"#end)
|
||||||
private ${column.javaType}#if ("$!prefix" != "") ${prefix}${JavaField}#else ${column.javaField}#end;
|
private ${column.javaType}#if ("$!prefix" != "") ${prefix}${JavaField}#else ${column.javaField}#end;
|
||||||
#end
|
#end
|
||||||
@ -27,12 +24,11 @@ import static ${DateUtilsClassName}.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
|
|||||||
public class ${sceneEnum.prefixClass}${table.className}ExportReqVO {
|
public class ${sceneEnum.prefixClass}${table.className}ExportReqVO {
|
||||||
|
|
||||||
#foreach ($column in $columns)
|
#foreach ($column in $columns)
|
||||||
#set ($JavaField = $column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})##首字母大写
|
|
||||||
#if (${column.listOperation})##查询操作
|
#if (${column.listOperation})##查询操作
|
||||||
#if (${column.listOperationCondition} == "BETWEEN")## 情况一,Between 的时候
|
#if (${column.listOperationCondition} == "BETWEEN")## 情况一,Between 的时候
|
||||||
#columnTpl('begin', '开始')
|
@ApiModelProperty(value = "${column.columnComment}"#if ("$!column.example" != ""), example = "${column.example}"#end)
|
||||||
|
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||||
#columnTpl('end', '结束')
|
private ${column.javaType}[] ${column.javaField};
|
||||||
#else##情况二,非 Between 的时间
|
#else##情况二,非 Between 的时间
|
||||||
#columnTpl('', '')
|
#columnTpl('', '')
|
||||||
#end
|
#end
|
||||||
|
@ -15,9 +15,6 @@ import static ${DateUtilsClassName}.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
|
|||||||
#end
|
#end
|
||||||
## 字段模板
|
## 字段模板
|
||||||
#macro(columnTpl $prefix $prefixStr)
|
#macro(columnTpl $prefix $prefixStr)
|
||||||
#if (${column.javaType} == "Date")## 时间类型
|
|
||||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
|
||||||
#end
|
|
||||||
@ApiModelProperty(value = "${prefixStr}${column.columnComment}"#if ("$!column.example" != ""), example = "${column.example}"#end)
|
@ApiModelProperty(value = "${prefixStr}${column.columnComment}"#if ("$!column.example" != ""), example = "${column.example}"#end)
|
||||||
private ${column.javaType}#if ("$!prefix" != "") ${prefix}${JavaField}#else ${column.javaField}#end;
|
private ${column.javaType}#if ("$!prefix" != "") ${prefix}${JavaField}#else ${column.javaField}#end;
|
||||||
#end
|
#end
|
||||||
@ -29,12 +26,11 @@ import static ${DateUtilsClassName}.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
|
|||||||
public class ${sceneEnum.prefixClass}${table.className}PageReqVO extends PageParam {
|
public class ${sceneEnum.prefixClass}${table.className}PageReqVO extends PageParam {
|
||||||
|
|
||||||
#foreach ($column in $columns)
|
#foreach ($column in $columns)
|
||||||
#set ($JavaField = $column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})##首字母大写
|
|
||||||
#if (${column.listOperation})##查询操作
|
#if (${column.listOperation})##查询操作
|
||||||
#if (${column.listOperationCondition} == "BETWEEN")## 情况一,Between 的时候
|
#if (${column.listOperationCondition} == "BETWEEN")## 情况一,Between 的时候
|
||||||
#columnTpl('begin', '开始')
|
@ApiModelProperty(value = "${column.columnComment}"#if ("$!column.example" != ""), example = "${column.example}"#end)
|
||||||
|
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||||
#columnTpl('end', '结束')
|
private ${column.javaType}[] ${column.javaField};
|
||||||
#else##情况二,非 Between 的时间
|
#else##情况二,非 Between 的时间
|
||||||
#columnTpl('', '')
|
#columnTpl('', '')
|
||||||
#end
|
#end
|
||||||
|
@ -36,7 +36,7 @@ import ${basePackage}.module.${table.moduleName}.controller.${sceneEnum.basePack
|
|||||||
.likeIfPresent(${table.className}DO::get${JavaField}, reqVO.get${JavaField}())
|
.likeIfPresent(${table.className}DO::get${JavaField}, reqVO.get${JavaField}())
|
||||||
#end
|
#end
|
||||||
#if (${column.listOperationCondition} == "BETWEEN")##情况八,Between 的时候
|
#if (${column.listOperationCondition} == "BETWEEN")##情况八,Between 的时候
|
||||||
.betweenIfPresent(${table.className}DO::get${JavaField}, reqVO.getBegin${JavaField}(), reqVO.getEnd${JavaField}())
|
.betweenIfPresent(${table.className}DO::get${JavaField}, reqVO.get${JavaField}())
|
||||||
#end
|
#end
|
||||||
#end
|
#end
|
||||||
#end
|
#end
|
||||||
|
@ -51,8 +51,7 @@ import static org.mockito.Mockito.*;
|
|||||||
#if (${column.listOperation})
|
#if (${column.listOperation})
|
||||||
#set ($JavaField = $column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})##首字母大写
|
#set ($JavaField = $column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})##首字母大写
|
||||||
#if (${column.listOperationCondition} == "BETWEEN")## BETWEEN 的情况
|
#if (${column.listOperationCondition} == "BETWEEN")## BETWEEN 的情况
|
||||||
reqVO.setBegin${JavaField}(null);
|
reqVO.set${JavaField}((new Date[]{}));
|
||||||
reqVO.setEnd${JavaField}(null);
|
|
||||||
#else
|
#else
|
||||||
reqVO.set$JavaField(null);
|
reqVO.set$JavaField(null);
|
||||||
#end
|
#end
|
||||||
|
@ -30,9 +30,9 @@
|
|||||||
<el-date-picker clearable v-model="queryParams.${javaField}" type="date" value-format="yyyy-MM-dd" placeholder="选择${comment}" />
|
<el-date-picker clearable v-model="queryParams.${javaField}" type="date" value-format="yyyy-MM-dd" placeholder="选择${comment}" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
#else## 范围
|
#else## 范围
|
||||||
<el-form-item label="${comment}">
|
<el-form-item label="${comment}" prop="${javaField}">
|
||||||
<el-date-picker v-model="dateRange${AttrName}" style="width: 240px" value-format="yyyy-MM-dd"
|
<el-date-picker v-model="queryParams.${javaField}" style="width: 240px" value-format="yyyy-MM-dd HH:mm:ss" type="daterange"
|
||||||
type="daterange" range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期" />
|
range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期" :default-time="['00:00:00', '23:59:59']" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
#end
|
#end
|
||||||
#end
|
#end
|
||||||
@ -219,22 +219,19 @@ export default {
|
|||||||
title: "",
|
title: "",
|
||||||
// 是否显示弹出层
|
// 是否显示弹出层
|
||||||
open: false,
|
open: false,
|
||||||
#foreach ($column in $columns)## 时间范围
|
|
||||||
#if ($column.listOperation)
|
|
||||||
#if ($column.htmlType == "datetime" && $column.listOperationCondition == "BETWEEN")
|
|
||||||
#set ($AttrName = $column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})
|
|
||||||
dateRange${AttrName}: [],
|
|
||||||
#end
|
|
||||||
#end
|
|
||||||
#end
|
|
||||||
// 查询参数
|
// 查询参数
|
||||||
queryParams: {
|
queryParams: {
|
||||||
pageNo: 1,
|
pageNo: 1,
|
||||||
pageSize: 10,
|
pageSize: 10,
|
||||||
#foreach ($column in $columns)
|
#foreach ($column in $columns)
|
||||||
#if ($column.listOperation && $column.listOperationCondition != 'BETWEEN')
|
#if ($column.listOperation)
|
||||||
|
#if ($column.listOperationCondition != 'BETWEEN')
|
||||||
$column.javaField: null,
|
$column.javaField: null,
|
||||||
#end
|
#end
|
||||||
|
#if ($column.htmlType == "datetime" || $column.listOperationCondition == "BETWEEN")
|
||||||
|
$column.javaField: [],
|
||||||
|
#end
|
||||||
|
#end
|
||||||
#end
|
#end
|
||||||
},
|
},
|
||||||
// 表单参数
|
// 表单参数
|
||||||
@ -257,18 +254,8 @@ export default {
|
|||||||
/** 查询列表 */
|
/** 查询列表 */
|
||||||
getList() {
|
getList() {
|
||||||
this.loading = true;
|
this.loading = true;
|
||||||
// 处理查询参数
|
|
||||||
let params = {...this.queryParams};
|
|
||||||
#foreach ($column in $columns)
|
|
||||||
#if ($column.listOperation)
|
|
||||||
#if ($column.htmlType == "datetime" && $column.listOperationCondition == "BETWEEN")
|
|
||||||
#set ($AttrName = $column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})
|
|
||||||
this.addBeginAndEndTime(params, this.dateRange${AttrName}, '${column.javaField}');
|
|
||||||
#end
|
|
||||||
#end
|
|
||||||
#end
|
|
||||||
// 执行查询
|
// 执行查询
|
||||||
get${simpleClassName}Page(params).then(response => {
|
get${simpleClassName}Page(this.queryParams).then(response => {
|
||||||
this.list = response.data.list;
|
this.list = response.data.list;
|
||||||
this.total = response.data.total;
|
this.total = response.data.total;
|
||||||
this.loading = false;
|
this.loading = false;
|
||||||
@ -301,14 +288,6 @@ export default {
|
|||||||
},
|
},
|
||||||
/** 重置按钮操作 */
|
/** 重置按钮操作 */
|
||||||
resetQuery() {
|
resetQuery() {
|
||||||
#foreach ($column in $columns)
|
|
||||||
#if ($column.listOperation)
|
|
||||||
#if ($column.htmlType == "datetime" && $column.listOperationCondition == "BETWEEN")
|
|
||||||
#set ($AttrName = $column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})
|
|
||||||
this.dateRange${AttrName} = [];
|
|
||||||
#end
|
|
||||||
#end
|
|
||||||
#end
|
|
||||||
this.resetForm("queryForm");
|
this.resetForm("queryForm");
|
||||||
this.handleQuery();
|
this.handleQuery();
|
||||||
},
|
},
|
||||||
@ -377,15 +356,6 @@ export default {
|
|||||||
let params = {...this.queryParams};
|
let params = {...this.queryParams};
|
||||||
params.pageNo = undefined;
|
params.pageNo = undefined;
|
||||||
params.pageSize = undefined;
|
params.pageSize = undefined;
|
||||||
#foreach ($column in $columns)
|
|
||||||
#if ($column.listOperation)
|
|
||||||
#if ($column.htmlType == "datetime" && $column.listOperationCondition == "BETWEEN")
|
|
||||||
#set ($AttrName = $column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})
|
|
||||||
this.addBeginAndEndTime(params, this.dateRange${AttrName}, '${column.javaField}');
|
|
||||||
#end
|
|
||||||
#end
|
|
||||||
#end
|
|
||||||
// 执行导出
|
|
||||||
this.#[[$modal]]#.confirm('是否确认导出所有${table.classComment}数据项?').then(() => {
|
this.#[[$modal]]#.confirm('是否确认导出所有${table.classComment}数据项?').then(() => {
|
||||||
this.exportLoading = true;
|
this.exportLoading = true;
|
||||||
return export${simpleClassName}Excel(params);
|
return export${simpleClassName}Excel(params);
|
||||||
|
@ -0,0 +1,35 @@
|
|||||||
|
import { useAxios } from '@/hooks/web/useAxios'
|
||||||
|
import { ${simpleClassName}VO,${simpleClassName}PageReqVO,${simpleClassName}ExcelReqVO } from './types'
|
||||||
|
|
||||||
|
const request = useAxios()
|
||||||
|
|
||||||
|
#set ($baseURL = "/${table.moduleName}/${simpleClassName_strikeCase}")
|
||||||
|
// 查询${table.classComment}列表
|
||||||
|
export const getPostPageApi = async (params: ${simpleClassName}PageReqVO) => {
|
||||||
|
return await request.get({ url: '${baseURL}/page', params })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查询${table.classComment}详情
|
||||||
|
export const getPostApi = async (id: number) => {
|
||||||
|
return await request.get({ url: '${baseURL}/get?id=' + id })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 新增${table.classComment}
|
||||||
|
export const createPostApi = async (data: ${simpleClassName}VO) => {
|
||||||
|
return await request.post({ url: '${baseURL}/create', data })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 修改${table.classComment}
|
||||||
|
export const updatePostApi = async (data: ${simpleClassName}VO) => {
|
||||||
|
return await request.put({ url: '${baseURL}/update', data })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 删除${table.classComment}
|
||||||
|
export const deletePostApi = async (id: number) => {
|
||||||
|
return await request.delete({ url: '${baseURL}/delete?id=' + id })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 导出${table.classComment} Excel
|
||||||
|
export const exportPostApi = async (params: ${simpleClassName}ExcelReqVO) => {
|
||||||
|
return await request.download({ url: '${baseURL}/export-excel', params })
|
||||||
|
}
|
@ -0,0 +1,35 @@
|
|||||||
|
export type ${simpleClassName}VO = {
|
||||||
|
#foreach ($column in $columns)
|
||||||
|
#if ($column.createOperation || $column.updateOperation)
|
||||||
|
#if(${column.javaType.toLowerCase()} == "long" || ${column.javaType.toLowerCase()} == "integer")
|
||||||
|
${column.javaField}: number
|
||||||
|
#else
|
||||||
|
${column.javaField}: ${column.javaType.toLowerCase()}
|
||||||
|
#end
|
||||||
|
#end
|
||||||
|
#end
|
||||||
|
}
|
||||||
|
|
||||||
|
export type ${simpleClassName}PageReqVO = {
|
||||||
|
#foreach ($column in $columns)
|
||||||
|
#if (${column.listOperation})##查询操作
|
||||||
|
#if(${column.javaType.toLowerCase()} == "long" || ${column.javaType.toLowerCase()} == "integer")
|
||||||
|
${column.javaField}: number
|
||||||
|
#else
|
||||||
|
${column.javaField}: ${column.javaType.toLowerCase()}
|
||||||
|
#end
|
||||||
|
#end
|
||||||
|
#end
|
||||||
|
}
|
||||||
|
|
||||||
|
export type ${simpleClassName}ExcelReqVO = {
|
||||||
|
#foreach ($column in $columns)
|
||||||
|
#if (${column.listOperation})##查询操作
|
||||||
|
#if(${column.javaType.toLowerCase()} == "long" || ${column.javaType.toLowerCase()} == "integer")
|
||||||
|
${column.javaField}: number
|
||||||
|
#else
|
||||||
|
${column.javaField}: ${column.javaType.toLowerCase()}
|
||||||
|
#end
|
||||||
|
#end
|
||||||
|
#end
|
||||||
|
}
|
@ -0,0 +1,111 @@
|
|||||||
|
import { reactive } from 'vue'
|
||||||
|
import { useI18n } from '@/hooks/web/useI18n'
|
||||||
|
import { CrudSchema, useCrudSchemas } from '@/hooks/web/useCrudSchemas'
|
||||||
|
import { DICT_TYPE } from '@/utils/dict'
|
||||||
|
const { t } = useI18n() // 国际化
|
||||||
|
// 表单校验
|
||||||
|
export const rules = reactive({
|
||||||
|
#foreach ($column in $columns)
|
||||||
|
#if (($column.createOperation || $column.updateOperation) && !$column.nullable && !${column.primaryKey})## 创建或者更新操作 && 要求非空 && 非主键
|
||||||
|
#set($comment=$column.columnComment)
|
||||||
|
$column.javaField: [{ required: true, message: "${comment}不能为空", trigger: #if($column.htmlType == "select")"change"#else"blur"#end }],
|
||||||
|
#end
|
||||||
|
#end
|
||||||
|
})
|
||||||
|
// CrudSchema
|
||||||
|
const crudSchemas = reactive<CrudSchema[]>([
|
||||||
|
#foreach($column in $columns)
|
||||||
|
#if ($column.listOperation || $column.listOperationResult || $column.createOperation || $column.updateOperation)
|
||||||
|
#set ($dictType = $column.dictType)
|
||||||
|
{
|
||||||
|
label: '${column.columnComment}',
|
||||||
|
field: '${column.javaField}',
|
||||||
|
#if ("" != $dictType)## 有数据字典
|
||||||
|
dictType: DICT_TYPE.$dictType.toUpperCase(),
|
||||||
|
#end
|
||||||
|
#if($column.primaryKey)
|
||||||
|
type: 'index',
|
||||||
|
form: {
|
||||||
|
show: false
|
||||||
|
},
|
||||||
|
detail: {
|
||||||
|
show: false
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
#if (!$column.createOperation && !$column.updateOperation)
|
||||||
|
form: {
|
||||||
|
false
|
||||||
|
},
|
||||||
|
#elseif(!("" != $column.dictType))
|
||||||
|
form: {
|
||||||
|
show: true,
|
||||||
|
#if ($column.htmlType == "datetime")## 时间框
|
||||||
|
component: 'DatePicker',
|
||||||
|
componentProps: {
|
||||||
|
type: 'datetime',
|
||||||
|
valueFormat: 'YYYY-MM-DD HH:mm:ss'
|
||||||
|
}
|
||||||
|
#elseif($column.htmlType == "editor")## 文本编辑器
|
||||||
|
component: 'Editor',
|
||||||
|
colProps: {
|
||||||
|
span: 24
|
||||||
|
},
|
||||||
|
componentProps: {
|
||||||
|
valueHtml: ''
|
||||||
|
}
|
||||||
|
#elseif($column.htmlType == "textarea")## 文本框
|
||||||
|
component: 'Input',
|
||||||
|
componentProps: {
|
||||||
|
type: 'textarea',
|
||||||
|
rows: 4
|
||||||
|
},
|
||||||
|
colProps: {
|
||||||
|
span: 24
|
||||||
|
}
|
||||||
|
#end
|
||||||
|
},
|
||||||
|
#end
|
||||||
|
#if ($column.listOperationResult)
|
||||||
|
search: {
|
||||||
|
#if($column.htmlType == "input")
|
||||||
|
show: true
|
||||||
|
#else
|
||||||
|
#if($column.htmlType == "datetime")
|
||||||
|
show: true,
|
||||||
|
component: 'DatePicker',
|
||||||
|
componentProps: {
|
||||||
|
type: 'datetimerange',
|
||||||
|
valueFormat: 'YYYY-MM-DD HH:mm:ss'
|
||||||
|
}
|
||||||
|
#elseif($column.htmlType == "select" || $column.htmlType == "radio")
|
||||||
|
#if ("" == $dictType)## 没有数据字典
|
||||||
|
show: true,
|
||||||
|
component: 'Select',
|
||||||
|
componentProps: {
|
||||||
|
option: [{'','请选择字典生成'}]
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
show: true
|
||||||
|
#end
|
||||||
|
#end
|
||||||
|
#end
|
||||||
|
}
|
||||||
|
#end
|
||||||
|
#end
|
||||||
|
},
|
||||||
|
#end
|
||||||
|
#end
|
||||||
|
{
|
||||||
|
label: t('table.action'),
|
||||||
|
field: 'action',
|
||||||
|
width: '240px',
|
||||||
|
form: {
|
||||||
|
show: false
|
||||||
|
},
|
||||||
|
detail: {
|
||||||
|
show: false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
])
|
||||||
|
|
||||||
|
export const { allSchemas } = useCrudSchemas(crudSchemas)
|
@ -0,0 +1,214 @@
|
|||||||
|
<script setup lang="ts">
|
||||||
|
import { ref, unref } from 'vue'
|
||||||
|
import dayjs from 'dayjs'
|
||||||
|
import { ElMessage } from 'element-plus'
|
||||||
|
import { DICT_TYPE } from '@/utils/dict'
|
||||||
|
import { useTable } from '@/hooks/web/useTable'
|
||||||
|
import { useI18n } from '@/hooks/web/useI18n'
|
||||||
|
import { FormExpose } from '@/components/Form'
|
||||||
|
import type { ${simpleClassName}VO } from '@/api/system/post/types'
|
||||||
|
import { rules, allSchemas } from './post.data'
|
||||||
|
import * as ${simpleClassName}Api from '@/api/system/post'
|
||||||
|
const { t } = useI18n() // 国际化
|
||||||
|
|
||||||
|
// ========== 列表相关 ==========
|
||||||
|
const { register, tableObject, methods } = useTable<${simpleClassName}VO>({
|
||||||
|
getListApi: ${simpleClassName}Api.get${simpleClassName}PageApi,
|
||||||
|
delListApi: ${simpleClassName}Api.delete${simpleClassName}Api,
|
||||||
|
exportListApi: ${simpleClassName}Api.export${simpleClassName}Api
|
||||||
|
})
|
||||||
|
const { getList, setSearchParams, delList, exportList } = methods
|
||||||
|
|
||||||
|
// 导出操作
|
||||||
|
const handleExport = async () => {
|
||||||
|
await exportList('数据.xls')
|
||||||
|
}
|
||||||
|
|
||||||
|
// ========== CRUD 相关 ==========
|
||||||
|
const actionLoading = ref(false) // 遮罩层
|
||||||
|
const actionType = ref('') // 操作按钮的类型
|
||||||
|
const dialogVisible = ref(false) // 是否显示弹出层
|
||||||
|
const dialogTitle = ref('edit') // 弹出层标题
|
||||||
|
const formRef = ref<FormExpose>() // 表单 Ref
|
||||||
|
|
||||||
|
// 设置标题
|
||||||
|
const setDialogTile = (type: string) => {
|
||||||
|
dialogTitle.value = t('action.' + type)
|
||||||
|
actionType.value = type
|
||||||
|
dialogVisible.value = true
|
||||||
|
}
|
||||||
|
|
||||||
|
// 新增操作
|
||||||
|
const handleCreate = () => {
|
||||||
|
setDialogTile('create')
|
||||||
|
// 重置表单
|
||||||
|
unref(formRef)?.getElFormRef()?.resetFields()
|
||||||
|
}
|
||||||
|
|
||||||
|
// 修改操作
|
||||||
|
const handleUpdate = async (row: ${simpleClassName}VO) => {
|
||||||
|
setDialogTile('update')
|
||||||
|
// 设置数据
|
||||||
|
const res = await ${simpleClassName}Api.get${simpleClassName}Api(row.id)
|
||||||
|
unref(formRef)?.setValues(res)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 提交按钮
|
||||||
|
const submitForm = async () => {
|
||||||
|
actionLoading.value = true
|
||||||
|
// 提交请求
|
||||||
|
try {
|
||||||
|
const data = unref(formRef)?.formModel as ${simpleClassName}VO
|
||||||
|
if (actionType.value === 'create') {
|
||||||
|
await ${simpleClassName}Api.create${simpleClassName}Api(data)
|
||||||
|
ElMessage.success(t('common.createSuccess'))
|
||||||
|
} else {
|
||||||
|
await ${simpleClassName}Api.update${simpleClassName}Api(data)
|
||||||
|
ElMessage.success(t('common.updateSuccess'))
|
||||||
|
}
|
||||||
|
// 操作成功,重新加载列表
|
||||||
|
dialogVisible.value = false
|
||||||
|
await getList()
|
||||||
|
} finally {
|
||||||
|
actionLoading.value = false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 删除操作
|
||||||
|
const handleDelete = (row: ${simpleClassName}VO) => {
|
||||||
|
delList(row.id, false)
|
||||||
|
}
|
||||||
|
|
||||||
|
// ========== 详情相关 ==========
|
||||||
|
const detailRef = ref() // 详情 Ref
|
||||||
|
|
||||||
|
// 详情操作
|
||||||
|
const handleDetail = async (row: ${simpleClassName}VO) => {
|
||||||
|
// 设置数据
|
||||||
|
detailRef.value = row
|
||||||
|
setDialogTile('detail')
|
||||||
|
}
|
||||||
|
|
||||||
|
// ========== 初始化 ==========
|
||||||
|
getList()
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<!-- 搜索工作区 -->
|
||||||
|
<ContentWrap>
|
||||||
|
<Search :schema="allSchemas.searchSchema" @search="setSearchParams" @reset="setSearchParams" />
|
||||||
|
</ContentWrap>
|
||||||
|
<ContentWrap>
|
||||||
|
<!-- 操作工具栏 -->
|
||||||
|
<div class="mb-10px">
|
||||||
|
<el-button type="primary" v-hasPermi="['${permissionPrefix}:create']" @click="handleCreate">
|
||||||
|
<Icon icon="ep:zoom-in" class="mr-5px" /> {{ t('action.add') }}
|
||||||
|
</el-button>
|
||||||
|
<el-button
|
||||||
|
type="warning"
|
||||||
|
v-hasPermi="['${permissionPrefix}:export']"
|
||||||
|
:loading="tableObject.exportLoading"
|
||||||
|
@click="handleExport"
|
||||||
|
>
|
||||||
|
<Icon icon="ep:download" class="mr-5px" /> {{ t('action.export') }}
|
||||||
|
</el-button>
|
||||||
|
</div>
|
||||||
|
<!-- 列表 -->
|
||||||
|
<Table
|
||||||
|
:columns="allSchemas.tableColumns"
|
||||||
|
:selection="false"
|
||||||
|
:data="tableObject.tableList"
|
||||||
|
:loading="tableObject.loading"
|
||||||
|
:pagination="{
|
||||||
|
total: tableObject.total
|
||||||
|
}"
|
||||||
|
v-model:pageSize="tableObject.pageSize"
|
||||||
|
v-model:currentPage="tableObject.currentPage"
|
||||||
|
@register="register"
|
||||||
|
>
|
||||||
|
#foreach($column in $columns)
|
||||||
|
#if ($column.listOperationResult)
|
||||||
|
#set ($dictType=$column.dictType)
|
||||||
|
#if ($column.javaType == "Date")## 时间类型
|
||||||
|
<template #${column.javaField}="{ row }">
|
||||||
|
<span>{{ dayjs(row.${column.javaField}).format('YYYY-MM-DD HH:mm:ss') }}</span>
|
||||||
|
</template>
|
||||||
|
#elseif("" != $column.dictType)## 数据字典
|
||||||
|
<template #${column.javaField}="{ row }">
|
||||||
|
<DictTag :type="DICT_TYPE.$dictType.toUpperCase()" :value="row.${column.javaField}" />
|
||||||
|
</template>
|
||||||
|
#end
|
||||||
|
#end
|
||||||
|
#end
|
||||||
|
<template #action="{ row }">
|
||||||
|
<el-button
|
||||||
|
link
|
||||||
|
type="primary"
|
||||||
|
v-hasPermi="['${permissionPrefix}:update']"
|
||||||
|
@click="handleUpdate(row)"
|
||||||
|
>
|
||||||
|
<Icon icon="ep:edit" class="mr-1px" /> {{ t('action.edit') }}
|
||||||
|
</el-button>
|
||||||
|
<el-button
|
||||||
|
link
|
||||||
|
type="primary"
|
||||||
|
v-hasPermi="['${permissionPrefix}:update']"
|
||||||
|
@click="handleDetail(row)"
|
||||||
|
>
|
||||||
|
<Icon icon="ep:view" class="mr-1px" /> {{ t('action.detail') }}
|
||||||
|
</el-button>
|
||||||
|
<el-button
|
||||||
|
link
|
||||||
|
type="primary"
|
||||||
|
v-hasPermi="['${permissionPrefix}:delete']"
|
||||||
|
@click="handleDelete(row)"
|
||||||
|
>
|
||||||
|
<Icon icon="ep:delete" class="mr-1px" /> {{ t('action.del') }}
|
||||||
|
</el-button>
|
||||||
|
</template>
|
||||||
|
</Table>
|
||||||
|
</ContentWrap>
|
||||||
|
|
||||||
|
<Dialog v-model="dialogVisible" :title="dialogTitle">
|
||||||
|
<!-- 对话框(添加 / 修改) -->
|
||||||
|
<Form
|
||||||
|
v-if="['create', 'update'].includes(actionType)"
|
||||||
|
:schema="allSchemas.formSchema"
|
||||||
|
:rules="rules"
|
||||||
|
ref="formRef"
|
||||||
|
/>
|
||||||
|
<!-- 对话框(详情) -->
|
||||||
|
<Descriptions
|
||||||
|
v-if="actionType === 'detail'"
|
||||||
|
:schema="allSchemas.detailSchema"
|
||||||
|
:data="detailRef"
|
||||||
|
>
|
||||||
|
#foreach($column in $columns)
|
||||||
|
#if ($column.listOperationResult)
|
||||||
|
#set ($dictType=$column.dictType)
|
||||||
|
#if ($column.javaType == "Date")## 时间类型
|
||||||
|
<template #${column.javaField}="{ row }">
|
||||||
|
<span>{{ dayjs(row.${column.javaField}).format('YYYY-MM-DD HH:mm:ss') }}</span>
|
||||||
|
</template>
|
||||||
|
#elseif("" != $column.dictType)## 数据字典
|
||||||
|
<template #${column.javaField}="{ row }">
|
||||||
|
<DictTag :type="DICT_TYPE.$dictType.toUpperCase()" :value="row.${column.javaField}" />
|
||||||
|
</template>
|
||||||
|
#end
|
||||||
|
#end
|
||||||
|
#end
|
||||||
|
</Descriptions>
|
||||||
|
<!-- 操作按钮 -->
|
||||||
|
<template #footer>
|
||||||
|
<el-button
|
||||||
|
v-if="['create', 'update'].includes(actionType)"
|
||||||
|
type="primary"
|
||||||
|
:loading="actionLoading"
|
||||||
|
@click="submitForm"
|
||||||
|
>
|
||||||
|
{{ t('action.save') }}
|
||||||
|
</el-button>
|
||||||
|
<el-button @click="dialogVisible = false">{{ t('dialog.close') }}</el-button>
|
||||||
|
</template>
|
||||||
|
</Dialog>
|
||||||
|
</template>
|
@ -19,6 +19,7 @@ import org.springframework.boot.test.mock.mockito.MockBean;
|
|||||||
import org.springframework.context.annotation.Import;
|
import org.springframework.context.annotation.Import;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.function.Consumer;
|
import java.util.function.Consumer;
|
||||||
|
|
||||||
@ -180,8 +181,7 @@ public class ConfigServiceTest extends BaseDbUnitTest {
|
|||||||
reqVO.setName("艿");
|
reqVO.setName("艿");
|
||||||
reqVO.setKey("nai");
|
reqVO.setKey("nai");
|
||||||
reqVO.setType(ConfigTypeEnum.SYSTEM.getType());
|
reqVO.setType(ConfigTypeEnum.SYSTEM.getType());
|
||||||
reqVO.setBeginTime(buildTime(2021, 1, 15));
|
reqVO.setCreateTime((new Date[]{buildTime(2021, 1, 15),buildTime(2021, 2, 15)}));
|
||||||
reqVO.setEndTime(buildTime(2021, 2, 15));
|
|
||||||
|
|
||||||
// 调用
|
// 调用
|
||||||
PageResult<ConfigDO> pageResult = configService.getConfigPage(reqVO);
|
PageResult<ConfigDO> pageResult = configService.getConfigPage(reqVO);
|
||||||
@ -214,8 +214,7 @@ public class ConfigServiceTest extends BaseDbUnitTest {
|
|||||||
reqVO.setName("艿");
|
reqVO.setName("艿");
|
||||||
reqVO.setKey("nai");
|
reqVO.setKey("nai");
|
||||||
reqVO.setType(ConfigTypeEnum.SYSTEM.getType());
|
reqVO.setType(ConfigTypeEnum.SYSTEM.getType());
|
||||||
reqVO.setBeginTime(buildTime(2021, 1, 15));
|
reqVO.setCreateTime((new Date[]{buildTime(2021, 1, 15),buildTime(2021, 2, 15)}));
|
||||||
reqVO.setEndTime(buildTime(2021, 2, 15));
|
|
||||||
|
|
||||||
// 调用
|
// 调用
|
||||||
List<ConfigDO> list = configService.getConfigList(reqVO);
|
List<ConfigDO> list = configService.getConfigList(reqVO);
|
||||||
|
@ -22,6 +22,7 @@ import org.springframework.context.annotation.Import;
|
|||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import javax.validation.Validator;
|
import javax.validation.Validator;
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
import java.util.Date;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import static cn.hutool.core.util.RandomUtil.randomEle;
|
import static cn.hutool.core.util.RandomUtil.randomEle;
|
||||||
@ -216,8 +217,7 @@ public class FileConfigServiceImplTest extends BaseDbUnitTest {
|
|||||||
FileConfigPageReqVO reqVO = new FileConfigPageReqVO();
|
FileConfigPageReqVO reqVO = new FileConfigPageReqVO();
|
||||||
reqVO.setName("芋道");
|
reqVO.setName("芋道");
|
||||||
reqVO.setStorage(FileStorageEnum.LOCAL.getStorage());
|
reqVO.setStorage(FileStorageEnum.LOCAL.getStorage());
|
||||||
reqVO.setBeginCreateTime(buildTime(2022, 11, 10));
|
reqVO.setCreateTime((new Date[]{buildTime(2022, 11, 10),buildTime(2022, 11, 12)}));
|
||||||
reqVO.setEndCreateTime(buildTime(2022, 11, 12));
|
|
||||||
|
|
||||||
// 调用
|
// 调用
|
||||||
PageResult<FileConfigDO> pageResult = fileConfigService.getFileConfigPage(reqVO);
|
PageResult<FileConfigDO> pageResult = fileConfigService.getFileConfigPage(reqVO);
|
||||||
|
@ -15,6 +15,8 @@ import org.springframework.context.annotation.Import;
|
|||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.buildTime;
|
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.buildTime;
|
||||||
import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertServiceException;
|
import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertServiceException;
|
||||||
import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.*;
|
import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.*;
|
||||||
@ -58,8 +60,7 @@ public class FileServiceTest extends BaseDbUnitTest {
|
|||||||
FilePageReqVO reqVO = new FilePageReqVO();
|
FilePageReqVO reqVO = new FilePageReqVO();
|
||||||
reqVO.setPath("yunai");
|
reqVO.setPath("yunai");
|
||||||
reqVO.setType("jp");
|
reqVO.setType("jp");
|
||||||
reqVO.setBeginCreateTime(buildTime(2021, 1, 10));
|
reqVO.setCreateTime((new Date[]{buildTime(2021, 1, 10), buildTime(2021, 1, 20)}));
|
||||||
reqVO.setEndCreateTime(buildTime(2021, 1, 20));
|
|
||||||
|
|
||||||
// 调用
|
// 调用
|
||||||
PageResult<FileDO> pageResult = fileService.getFilePage(reqVO);
|
PageResult<FileDO> pageResult = fileService.getFilePage(reqVO);
|
||||||
|
@ -77,8 +77,7 @@ public class ApiAccessLogServiceImplTest extends BaseDbUnitTest {
|
|||||||
reqVO.setUserType(userType);
|
reqVO.setUserType(userType);
|
||||||
reqVO.setApplicationName(applicationName);
|
reqVO.setApplicationName(applicationName);
|
||||||
reqVO.setRequestUrl(requestUrl);
|
reqVO.setRequestUrl(requestUrl);
|
||||||
reqVO.setBeginBeginTime(buildTime(2021, 3, 12));
|
reqVO.setBeginTime((new Date[]{buildTime(2021, 3, 12),buildTime(2021, 3, 14)}));
|
||||||
reqVO.setEndBeginTime(buildTime(2021, 3, 14));
|
|
||||||
reqVO.setDuration(duration);
|
reqVO.setDuration(duration);
|
||||||
reqVO.setResultCode(resultCode);
|
reqVO.setResultCode(resultCode);
|
||||||
|
|
||||||
@ -135,8 +134,7 @@ public class ApiAccessLogServiceImplTest extends BaseDbUnitTest {
|
|||||||
reqVO.setUserType(userType);
|
reqVO.setUserType(userType);
|
||||||
reqVO.setApplicationName(applicationName);
|
reqVO.setApplicationName(applicationName);
|
||||||
reqVO.setRequestUrl(requestUrl);
|
reqVO.setRequestUrl(requestUrl);
|
||||||
reqVO.setBeginBeginTime(buildTime(2021, 3, 12));
|
reqVO.setBeginTime((new Date[]{buildTime(2021, 3, 12),buildTime(2021, 3, 14)}));
|
||||||
reqVO.setEndBeginTime(buildTime(2021, 3, 14));
|
|
||||||
reqVO.setDuration(duration);
|
reqVO.setDuration(duration);
|
||||||
reqVO.setResultCode(resultCode);
|
reqVO.setResultCode(resultCode);
|
||||||
|
|
||||||
|
@ -77,8 +77,7 @@ public class ApiErrorLogServiceImplTest extends BaseDbUnitTest {
|
|||||||
reqVO.setUserType(userType);
|
reqVO.setUserType(userType);
|
||||||
reqVO.setApplicationName(applicationName);
|
reqVO.setApplicationName(applicationName);
|
||||||
reqVO.setRequestUrl(requestUrl);
|
reqVO.setRequestUrl(requestUrl);
|
||||||
reqVO.setBeginExceptionTime(buildTime(2021, 3, 12));
|
reqVO.setExceptionTime((new Date[]{buildTime(2021, 3, 12),buildTime(2021, 3, 14)}));
|
||||||
reqVO.setEndExceptionTime(buildTime(2021, 3, 14));
|
|
||||||
reqVO.setProcessStatus(progressStatus);
|
reqVO.setProcessStatus(progressStatus);
|
||||||
|
|
||||||
// 调用service方法
|
// 调用service方法
|
||||||
@ -130,8 +129,7 @@ public class ApiErrorLogServiceImplTest extends BaseDbUnitTest {
|
|||||||
reqVO.setUserType(userType);
|
reqVO.setUserType(userType);
|
||||||
reqVO.setApplicationName(applicationName);
|
reqVO.setApplicationName(applicationName);
|
||||||
reqVO.setRequestUrl(requestUrl);
|
reqVO.setRequestUrl(requestUrl);
|
||||||
reqVO.setBeginExceptionTime(buildTime(2021, 3, 12));
|
reqVO.setExceptionTime((new Date[]{buildTime(2021, 3, 12),buildTime(2021, 3, 14)}));
|
||||||
reqVO.setEndExceptionTime(buildTime(2021, 3, 14));
|
|
||||||
reqVO.setProcessStatus(progressStatus);
|
reqVO.setProcessStatus(progressStatus);
|
||||||
|
|
||||||
// 调用service方法
|
// 调用service方法
|
||||||
|
@ -14,8 +14,10 @@ import org.junit.jupiter.api.Test;
|
|||||||
import org.springframework.context.annotation.Import;
|
import org.springframework.context.annotation.Import;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.buildTime;
|
||||||
import static cn.iocoder.yudao.framework.common.util.object.ObjectUtils.cloneIgnoreId;
|
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.assertPojoEquals;
|
||||||
import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertServiceException;
|
import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertServiceException;
|
||||||
@ -132,8 +134,7 @@ public class TestDemoServiceImplTest extends BaseDbUnitTest {
|
|||||||
reqVO.setType(1);
|
reqVO.setType(1);
|
||||||
reqVO.setCategory(2);
|
reqVO.setCategory(2);
|
||||||
reqVO.setRemark("哈哈哈");
|
reqVO.setRemark("哈哈哈");
|
||||||
reqVO.setBeginCreateTime(DateUtils.buildTime(2021, 11, 10));
|
reqVO.setCreateTime((new Date[]{buildTime(2021, 11, 10),buildTime(2021, 11, 12)}));
|
||||||
reqVO.setEndCreateTime(DateUtils.buildTime(2021, 11, 12));
|
|
||||||
|
|
||||||
// 调用
|
// 调用
|
||||||
PageResult<TestDemoDO> pageResult = testDemoService.getTestDemoPage(reqVO);
|
PageResult<TestDemoDO> pageResult = testDemoService.getTestDemoPage(reqVO);
|
||||||
@ -174,8 +175,7 @@ public class TestDemoServiceImplTest extends BaseDbUnitTest {
|
|||||||
reqVO.setType(1);
|
reqVO.setType(1);
|
||||||
reqVO.setCategory(2);
|
reqVO.setCategory(2);
|
||||||
reqVO.setRemark("哈哈哈");
|
reqVO.setRemark("哈哈哈");
|
||||||
reqVO.setBeginCreateTime(DateUtils.buildTime(2021, 11, 10));
|
reqVO.setCreateTime((new Date[]{buildTime(2021, 11, 10),buildTime(2021, 11, 12)}));
|
||||||
reqVO.setEndCreateTime(DateUtils.buildTime(2021, 11, 12));
|
|
||||||
|
|
||||||
// 调用
|
// 调用
|
||||||
List<TestDemoDO> list = testDemoService.getTestDemoList(reqVO);
|
List<TestDemoDO> list = testDemoService.getTestDemoList(reqVO);
|
||||||
|
@ -29,36 +29,20 @@ public class ActivityPageReqVO extends PageParam {
|
|||||||
private Integer status;
|
private Integer status;
|
||||||
|
|
||||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||||
@ApiModelProperty(value = "开始开始时间")
|
@ApiModelProperty(value = "开始时间")
|
||||||
private Date beginStartTime;
|
private Date[] startTime;
|
||||||
|
|
||||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||||
@ApiModelProperty(value = "结束开始时间")
|
@ApiModelProperty(value = "结束时间")
|
||||||
private Date endStartTime;
|
private Date[] endTime;
|
||||||
|
|
||||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||||
@ApiModelProperty(value = "开始结束时间")
|
@ApiModelProperty(value = "失效时间")
|
||||||
private Date beginEndTime;
|
private Date[] invalidTime;
|
||||||
|
|
||||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||||
@ApiModelProperty(value = "结束结束时间")
|
@ApiModelProperty(value = "删除时间")
|
||||||
private Date endEndTime;
|
private Date[] deleteTime;
|
||||||
|
|
||||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
|
||||||
@ApiModelProperty(value = "开始失效时间")
|
|
||||||
private Date beginInvalidTime;
|
|
||||||
|
|
||||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
|
||||||
@ApiModelProperty(value = "结束失效时间")
|
|
||||||
private Date endInvalidTime;
|
|
||||||
|
|
||||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
|
||||||
@ApiModelProperty(value = "开始删除时间")
|
|
||||||
private Date beginDeleteTime;
|
|
||||||
|
|
||||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
|
||||||
@ApiModelProperty(value = "结束删除时间")
|
|
||||||
private Date endDeleteTime;
|
|
||||||
|
|
||||||
@ApiModelProperty(value = "限制折扣字符串,使用 JSON 序列化成字符串存储")
|
@ApiModelProperty(value = "限制折扣字符串,使用 JSON 序列化成字符串存储")
|
||||||
private String timeLimitedDiscount;
|
private String timeLimitedDiscount;
|
||||||
@ -67,11 +51,7 @@ public class ActivityPageReqVO extends PageParam {
|
|||||||
private String fullPrivilege;
|
private String fullPrivilege;
|
||||||
|
|
||||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||||
@ApiModelProperty(value = "开始创建时间")
|
@ApiModelProperty(value = "创建时间")
|
||||||
private Date beginCreateTime;
|
private Date[] createTime;
|
||||||
|
|
||||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
|
||||||
@ApiModelProperty(value = "结束创建时间")
|
|
||||||
private Date endCreateTime;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -32,11 +32,7 @@ public class BannerPageReqVO extends PageParam {
|
|||||||
private Integer status;
|
private Integer status;
|
||||||
|
|
||||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||||
@ApiModelProperty(value = "开始创建时间")
|
@ApiModelProperty(value = "创建时间")
|
||||||
private Date beginCreateTime;
|
private Date[] createTime;
|
||||||
|
|
||||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
|
||||||
@ApiModelProperty(value = "结束创建时间")
|
|
||||||
private Date endCreateTime;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -22,13 +22,13 @@ public interface ActivityMapper extends BaseMapperX<ActivityDO> {
|
|||||||
.eqIfPresent(ActivityDO::getTitle, reqVO.getTitle())
|
.eqIfPresent(ActivityDO::getTitle, reqVO.getTitle())
|
||||||
.eqIfPresent(ActivityDO::getActivityType, reqVO.getActivityType())
|
.eqIfPresent(ActivityDO::getActivityType, reqVO.getActivityType())
|
||||||
.eqIfPresent(ActivityDO::getStatus, reqVO.getStatus())
|
.eqIfPresent(ActivityDO::getStatus, reqVO.getStatus())
|
||||||
.betweenIfPresent(ActivityDO::getStartTime, reqVO.getBeginStartTime(), reqVO.getEndStartTime())
|
.betweenIfPresent(ActivityDO::getStartTime, reqVO.getStartTime())
|
||||||
.betweenIfPresent(ActivityDO::getEndTime, reqVO.getBeginEndTime(), reqVO.getEndEndTime())
|
.betweenIfPresent(ActivityDO::getEndTime, reqVO.getEndTime())
|
||||||
.betweenIfPresent(ActivityDO::getInvalidTime, reqVO.getBeginInvalidTime(), reqVO.getEndInvalidTime())
|
.betweenIfPresent(ActivityDO::getInvalidTime, reqVO.getInvalidTime())
|
||||||
.betweenIfPresent(ActivityDO::getDeleteTime, reqVO.getBeginDeleteTime(), reqVO.getEndDeleteTime())
|
.betweenIfPresent(ActivityDO::getDeleteTime, reqVO.getDeleteTime())
|
||||||
.eqIfPresent(ActivityDO::getTimeLimitedDiscount, reqVO.getTimeLimitedDiscount())
|
.eqIfPresent(ActivityDO::getTimeLimitedDiscount, reqVO.getTimeLimitedDiscount())
|
||||||
.eqIfPresent(ActivityDO::getFullPrivilege, reqVO.getFullPrivilege())
|
.eqIfPresent(ActivityDO::getFullPrivilege, reqVO.getFullPrivilege())
|
||||||
.betweenIfPresent(ActivityDO::getCreateTime, reqVO.getBeginCreateTime(), reqVO.getEndCreateTime())
|
.betweenIfPresent(ActivityDO::getCreateTime, reqVO.getCreateTime())
|
||||||
.orderByDesc(ActivityDO::getId));
|
.orderByDesc(ActivityDO::getId));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -19,8 +19,7 @@ public interface BannerMapper extends BaseMapperX<BannerDO> {
|
|||||||
return selectPage(reqVO, new LambdaQueryWrapperX<BannerDO>()
|
return selectPage(reqVO, new LambdaQueryWrapperX<BannerDO>()
|
||||||
.likeIfPresent(BannerDO::getTitle, reqVO.getTitle())
|
.likeIfPresent(BannerDO::getTitle, reqVO.getTitle())
|
||||||
.eqIfPresent(BannerDO::getStatus, reqVO.getStatus())
|
.eqIfPresent(BannerDO::getStatus, reqVO.getStatus())
|
||||||
.betweenIfPresent(BannerDO::getCreateTime, reqVO.getBeginCreateTime(), reqVO.getEndCreateTime())
|
.betweenIfPresent(BannerDO::getCreateTime, reqVO.getCreateTime())
|
||||||
.betweenIfPresent(BannerDO::getCreateTime, reqVO.getBeginCreateTime(), reqVO.getEndCreateTime())
|
|
||||||
.orderByDesc(BannerDO::getSort));
|
.orderByDesc(BannerDO::getSort));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -139,18 +139,13 @@ public class ActivityServiceImplTest extends BaseDbUnitTest {
|
|||||||
reqVO.setTitle(null);
|
reqVO.setTitle(null);
|
||||||
reqVO.setActivityType(null);
|
reqVO.setActivityType(null);
|
||||||
reqVO.setStatus(null);
|
reqVO.setStatus(null);
|
||||||
reqVO.setBeginStartTime(null);
|
reqVO.setStartTime(null);
|
||||||
reqVO.setEndStartTime(null);
|
reqVO.setEndTime(null);
|
||||||
reqVO.setBeginEndTime(null);
|
reqVO.setInvalidTime(null);
|
||||||
reqVO.setEndEndTime(null);
|
reqVO.setDeleteTime(null);
|
||||||
reqVO.setBeginInvalidTime(null);
|
|
||||||
reqVO.setEndInvalidTime(null);
|
|
||||||
reqVO.setBeginDeleteTime(null);
|
|
||||||
reqVO.setEndDeleteTime(null);
|
|
||||||
reqVO.setTimeLimitedDiscount(null);
|
reqVO.setTimeLimitedDiscount(null);
|
||||||
reqVO.setFullPrivilege(null);
|
reqVO.setFullPrivilege(null);
|
||||||
reqVO.setBeginCreateTime(null);
|
reqVO.setCreateTime(null);
|
||||||
reqVO.setEndCreateTime(null);
|
|
||||||
|
|
||||||
// 调用
|
// 调用
|
||||||
PageResult<ActivityDO> pageResult = activityService.getActivityPage(reqVO);
|
PageResult<ActivityDO> pageResult = activityService.getActivityPage(reqVO);
|
||||||
|
@ -22,11 +22,7 @@ public class BrandExportReqVO {
|
|||||||
private Integer status;
|
private Integer status;
|
||||||
|
|
||||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||||
@ApiModelProperty(value = "开始创建时间")
|
@ApiModelProperty(value = "创建时间")
|
||||||
private Date beginCreateTime;
|
private Date[] createTime;
|
||||||
|
|
||||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
|
||||||
@ApiModelProperty(value = "结束创建时间")
|
|
||||||
private Date endCreateTime;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -24,11 +24,7 @@ public class BrandPageReqVO extends PageParam {
|
|||||||
private Integer status;
|
private Integer status;
|
||||||
|
|
||||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||||
@ApiModelProperty(value = "开始创建时间")
|
@ApiModelProperty(value = "创建时间")
|
||||||
private Date beginCreateTime;
|
private Date[] createTime;
|
||||||
|
|
||||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
|
||||||
@ApiModelProperty(value = "结束创建时间")
|
|
||||||
private Date endCreateTime;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -20,11 +20,7 @@ public class CategoryExportReqVO {
|
|||||||
private Integer status;
|
private Integer status;
|
||||||
|
|
||||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||||
@ApiModelProperty(value = "开始创建时间")
|
@ApiModelProperty(value = "创建时间")
|
||||||
private Date beginCreateTime;
|
private Date[] createTime;
|
||||||
|
|
||||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
|
||||||
@ApiModelProperty(value = "结束创建时间")
|
|
||||||
private Date endCreateTime;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -25,11 +25,7 @@ public class CategoryPageReqVO extends PageParam {
|
|||||||
private Integer status;
|
private Integer status;
|
||||||
|
|
||||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||||
@ApiModelProperty(value = "开始创建时间")
|
@ApiModelProperty(value = "创建时间")
|
||||||
private Date beginCreateTime;
|
private Date[] createTime;
|
||||||
|
|
||||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
|
||||||
@ApiModelProperty(value = "结束创建时间")
|
|
||||||
private Date endCreateTime;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -20,10 +20,6 @@ public class CategoryTreeListReqVO extends CategoryExportReqVO {
|
|||||||
private Integer status;
|
private Integer status;
|
||||||
|
|
||||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||||
@ApiModelProperty(value = "开始创建时间")
|
@ApiModelProperty(value = "创建时间")
|
||||||
private Date beginCreateTime;
|
private Date[] createTime;
|
||||||
|
|
||||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
|
||||||
@ApiModelProperty(value = "结束创建时间")
|
|
||||||
private Date endCreateTime;
|
|
||||||
}
|
}
|
||||||
|
@ -19,11 +19,7 @@ public class ProductPropertyExportReqVO {
|
|||||||
private Integer status;
|
private Integer status;
|
||||||
|
|
||||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||||
@ApiModelProperty(value = "开始创建时间")
|
@ApiModelProperty(value = "创建时间")
|
||||||
private Date beginCreateTime;
|
private Date[] createTime;
|
||||||
|
|
||||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
|
||||||
@ApiModelProperty(value = "结束创建时间")
|
|
||||||
private Date endCreateTime;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -21,11 +21,7 @@ public class ProductPropertyPageReqVO extends PageParam {
|
|||||||
private Integer status;
|
private Integer status;
|
||||||
|
|
||||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||||
@ApiModelProperty(value = "开始创建时间")
|
@ApiModelProperty(value = "创建时间")
|
||||||
private Date beginCreateTime;
|
private Date[] createTime;
|
||||||
|
|
||||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
|
||||||
@ApiModelProperty(value = "结束创建时间")
|
|
||||||
private Date endCreateTime;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -37,11 +37,7 @@ public class ProductSkuExportReqVO {
|
|||||||
private Integer status;
|
private Integer status;
|
||||||
|
|
||||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||||
@ApiModelProperty(value = "开始创建时间")
|
@ApiModelProperty(value = "创建时间")
|
||||||
private Date beginCreateTime;
|
private Date[] createTime;
|
||||||
|
|
||||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
|
||||||
@ApiModelProperty(value = "结束创建时间")
|
|
||||||
private Date endCreateTime;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -39,11 +39,7 @@ public class ProductSkuPageReqVO extends PageParam {
|
|||||||
private Integer status;
|
private Integer status;
|
||||||
|
|
||||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||||
@ApiModelProperty(value = "开始创建时间")
|
@ApiModelProperty(value = "创建时间")
|
||||||
private Date beginCreateTime;
|
private Date[] createTime;
|
||||||
|
|
||||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
|
||||||
@ApiModelProperty(value = "结束创建时间")
|
|
||||||
private Date endCreateTime;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -43,11 +43,7 @@ public class SpuExportReqVO {
|
|||||||
private Boolean status;
|
private Boolean status;
|
||||||
|
|
||||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||||
@ApiModelProperty(value = "开始创建时间")
|
@ApiModelProperty(value = "创建时间")
|
||||||
private Date beginCreateTime;
|
private Date[] createTime;
|
||||||
|
|
||||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
|
||||||
@ApiModelProperty(value = "结束创建时间")
|
|
||||||
private Date endCreateTime;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -45,11 +45,7 @@ public class SpuPageReqVO extends PageParam {
|
|||||||
private Boolean status;
|
private Boolean status;
|
||||||
|
|
||||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||||
@ApiModelProperty(value = "开始创建时间")
|
@ApiModelProperty(value = "创建时间")
|
||||||
private Date beginCreateTime;
|
private Date[] createTime;
|
||||||
|
|
||||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
|
||||||
@ApiModelProperty(value = "结束创建时间")
|
|
||||||
private Date endCreateTime;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -22,7 +22,7 @@ public interface BrandMapper extends BaseMapperX<BrandDO> {
|
|||||||
.eqIfPresent(BrandDO::getCategoryId, reqVO.getCategoryId())
|
.eqIfPresent(BrandDO::getCategoryId, reqVO.getCategoryId())
|
||||||
.likeIfPresent(BrandDO::getName, reqVO.getName())
|
.likeIfPresent(BrandDO::getName, reqVO.getName())
|
||||||
.eqIfPresent(BrandDO::getStatus, reqVO.getStatus())
|
.eqIfPresent(BrandDO::getStatus, reqVO.getStatus())
|
||||||
.betweenIfPresent(BrandDO::getCreateTime, reqVO.getBeginCreateTime(), reqVO.getEndCreateTime())
|
.betweenIfPresent(BrandDO::getCreateTime, reqVO.getCreateTime())
|
||||||
.orderByDesc(BrandDO::getId));
|
.orderByDesc(BrandDO::getId));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -31,7 +31,7 @@ public interface BrandMapper extends BaseMapperX<BrandDO> {
|
|||||||
.eqIfPresent(BrandDO::getCategoryId, reqVO.getCategoryId())
|
.eqIfPresent(BrandDO::getCategoryId, reqVO.getCategoryId())
|
||||||
.likeIfPresent(BrandDO::getName, reqVO.getName())
|
.likeIfPresent(BrandDO::getName, reqVO.getName())
|
||||||
.eqIfPresent(BrandDO::getStatus, reqVO.getStatus())
|
.eqIfPresent(BrandDO::getStatus, reqVO.getStatus())
|
||||||
.betweenIfPresent(BrandDO::getCreateTime, reqVO.getBeginCreateTime(), reqVO.getEndCreateTime())
|
.betweenIfPresent(BrandDO::getCreateTime, reqVO.getCreateTime())
|
||||||
.orderByDesc(BrandDO::getId));
|
.orderByDesc(BrandDO::getId));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -22,7 +22,7 @@ public interface CategoryMapper extends BaseMapperX<CategoryDO> {
|
|||||||
return selectPage(reqVO, new LambdaQueryWrapperX<CategoryDO>()
|
return selectPage(reqVO, new LambdaQueryWrapperX<CategoryDO>()
|
||||||
.likeIfPresent(CategoryDO::getName, reqVO.getName())
|
.likeIfPresent(CategoryDO::getName, reqVO.getName())
|
||||||
.eqIfPresent(CategoryDO::getStatus, reqVO.getStatus())
|
.eqIfPresent(CategoryDO::getStatus, reqVO.getStatus())
|
||||||
.betweenIfPresent(CategoryDO::getCreateTime, reqVO.getBeginCreateTime(), reqVO.getEndCreateTime())
|
.betweenIfPresent(CategoryDO::getCreateTime, reqVO.getCreateTime())
|
||||||
.orderByDesc(CategoryDO::getId));
|
.orderByDesc(CategoryDO::getId));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -30,7 +30,7 @@ public interface CategoryMapper extends BaseMapperX<CategoryDO> {
|
|||||||
return selectList(new LambdaQueryWrapperX<CategoryDO>()
|
return selectList(new LambdaQueryWrapperX<CategoryDO>()
|
||||||
.likeIfPresent(CategoryDO::getName, reqVO.getName())
|
.likeIfPresent(CategoryDO::getName, reqVO.getName())
|
||||||
.eqIfPresent(CategoryDO::getStatus, reqVO.getStatus())
|
.eqIfPresent(CategoryDO::getStatus, reqVO.getStatus())
|
||||||
.betweenIfPresent(CategoryDO::getCreateTime, reqVO.getBeginCreateTime(), reqVO.getEndCreateTime())
|
.betweenIfPresent(CategoryDO::getCreateTime, reqVO.getCreateTime())
|
||||||
.orderByDesc(CategoryDO::getId));
|
.orderByDesc(CategoryDO::getId));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -21,7 +21,7 @@ public interface ProductPropertyMapper extends BaseMapperX<ProductPropertyDO> {
|
|||||||
return selectPage(reqVO, new LambdaQueryWrapperX<ProductPropertyDO>()
|
return selectPage(reqVO, new LambdaQueryWrapperX<ProductPropertyDO>()
|
||||||
.likeIfPresent(ProductPropertyDO::getName, reqVO.getName())
|
.likeIfPresent(ProductPropertyDO::getName, reqVO.getName())
|
||||||
.eqIfPresent(ProductPropertyDO::getStatus, reqVO.getStatus())
|
.eqIfPresent(ProductPropertyDO::getStatus, reqVO.getStatus())
|
||||||
.betweenIfPresent(ProductPropertyDO::getCreateTime, reqVO.getBeginCreateTime(), reqVO.getEndCreateTime())
|
.betweenIfPresent(ProductPropertyDO::getCreateTime, reqVO.getCreateTime())
|
||||||
.orderByDesc(ProductPropertyDO::getId));
|
.orderByDesc(ProductPropertyDO::getId));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -29,7 +29,7 @@ public interface ProductPropertyMapper extends BaseMapperX<ProductPropertyDO> {
|
|||||||
return selectList(new LambdaQueryWrapperX<ProductPropertyDO>()
|
return selectList(new LambdaQueryWrapperX<ProductPropertyDO>()
|
||||||
.likeIfPresent(ProductPropertyDO::getName, reqVO.getName())
|
.likeIfPresent(ProductPropertyDO::getName, reqVO.getName())
|
||||||
.eqIfPresent(ProductPropertyDO::getStatus, reqVO.getStatus())
|
.eqIfPresent(ProductPropertyDO::getStatus, reqVO.getStatus())
|
||||||
.betweenIfPresent(ProductPropertyDO::getCreateTime, reqVO.getBeginCreateTime(), reqVO.getEndCreateTime())
|
.betweenIfPresent(ProductPropertyDO::getCreateTime, reqVO.getCreateTime())
|
||||||
.orderByDesc(ProductPropertyDO::getId));
|
.orderByDesc(ProductPropertyDO::getId));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -28,7 +28,7 @@ public interface ProductSkuMapper extends BaseMapperX<ProductSkuDO> {
|
|||||||
.eqIfPresent(ProductSkuDO::getBarCode, reqVO.getBarCode())
|
.eqIfPresent(ProductSkuDO::getBarCode, reqVO.getBarCode())
|
||||||
.eqIfPresent(ProductSkuDO::getPicUrl, reqVO.getPicUrl())
|
.eqIfPresent(ProductSkuDO::getPicUrl, reqVO.getPicUrl())
|
||||||
.eqIfPresent(ProductSkuDO::getStatus, reqVO.getStatus())
|
.eqIfPresent(ProductSkuDO::getStatus, reqVO.getStatus())
|
||||||
.betweenIfPresent(ProductSkuDO::getCreateTime, reqVO.getBeginCreateTime(), reqVO.getEndCreateTime())
|
.betweenIfPresent(ProductSkuDO::getCreateTime, reqVO.getCreateTime())
|
||||||
.orderByDesc(ProductSkuDO::getId));
|
.orderByDesc(ProductSkuDO::getId));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -42,7 +42,7 @@ public interface ProductSkuMapper extends BaseMapperX<ProductSkuDO> {
|
|||||||
.eqIfPresent(ProductSkuDO::getBarCode, reqVO.getBarCode())
|
.eqIfPresent(ProductSkuDO::getBarCode, reqVO.getBarCode())
|
||||||
.eqIfPresent(ProductSkuDO::getPicUrl, reqVO.getPicUrl())
|
.eqIfPresent(ProductSkuDO::getPicUrl, reqVO.getPicUrl())
|
||||||
.eqIfPresent(ProductSkuDO::getStatus, reqVO.getStatus())
|
.eqIfPresent(ProductSkuDO::getStatus, reqVO.getStatus())
|
||||||
.betweenIfPresent(ProductSkuDO::getCreateTime, reqVO.getBeginCreateTime(), reqVO.getEndCreateTime())
|
.betweenIfPresent(ProductSkuDO::getCreateTime, reqVO.getCreateTime())
|
||||||
.orderByDesc(ProductSkuDO::getId));
|
.orderByDesc(ProductSkuDO::getId));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -29,7 +29,7 @@ public interface ProductSpuMapper extends BaseMapperX<ProductSpuDO> {
|
|||||||
.eqIfPresent(ProductSpuDO::getPrice, reqVO.getPrice())
|
.eqIfPresent(ProductSpuDO::getPrice, reqVO.getPrice())
|
||||||
.eqIfPresent(ProductSpuDO::getQuantity, reqVO.getQuantity())
|
.eqIfPresent(ProductSpuDO::getQuantity, reqVO.getQuantity())
|
||||||
.eqIfPresent(ProductSpuDO::getStatus, reqVO.getStatus())
|
.eqIfPresent(ProductSpuDO::getStatus, reqVO.getStatus())
|
||||||
.betweenIfPresent(ProductSpuDO::getCreateTime, reqVO.getBeginCreateTime(), reqVO.getEndCreateTime())
|
.betweenIfPresent(ProductSpuDO::getCreateTime, reqVO.getCreateTime())
|
||||||
.orderByDesc(ProductSpuDO::getId));
|
.orderByDesc(ProductSpuDO::getId));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -45,7 +45,7 @@ public interface ProductSpuMapper extends BaseMapperX<ProductSpuDO> {
|
|||||||
.eqIfPresent(ProductSpuDO::getPrice, reqVO.getPrice())
|
.eqIfPresent(ProductSpuDO::getPrice, reqVO.getPrice())
|
||||||
.eqIfPresent(ProductSpuDO::getQuantity, reqVO.getQuantity())
|
.eqIfPresent(ProductSpuDO::getQuantity, reqVO.getQuantity())
|
||||||
.eqIfPresent(ProductSpuDO::getStatus, reqVO.getStatus())
|
.eqIfPresent(ProductSpuDO::getStatus, reqVO.getStatus())
|
||||||
.betweenIfPresent(ProductSpuDO::getCreateTime, reqVO.getBeginCreateTime(), reqVO.getEndCreateTime())
|
.betweenIfPresent(ProductSpuDO::getCreateTime, reqVO.getCreateTime())
|
||||||
.orderByDesc(ProductSpuDO::getId));
|
.orderByDesc(ProductSpuDO::getId));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -127,8 +127,7 @@ public class BrandServiceImplTest extends BaseDbUnitTest {
|
|||||||
reqVO.setCategoryId(null);
|
reqVO.setCategoryId(null);
|
||||||
reqVO.setName(null);
|
reqVO.setName(null);
|
||||||
reqVO.setStatus(null);
|
reqVO.setStatus(null);
|
||||||
reqVO.setBeginCreateTime(null);
|
reqVO.setCreateTime((new Date[]{}));
|
||||||
reqVO.setEndCreateTime(null);
|
|
||||||
|
|
||||||
// 调用
|
// 调用
|
||||||
PageResult<BrandDO> pageResult = brandService.getBrandPage(reqVO);
|
PageResult<BrandDO> pageResult = brandService.getBrandPage(reqVO);
|
||||||
@ -162,8 +161,7 @@ public class BrandServiceImplTest extends BaseDbUnitTest {
|
|||||||
reqVO.setCategoryId(null);
|
reqVO.setCategoryId(null);
|
||||||
reqVO.setName(null);
|
reqVO.setName(null);
|
||||||
reqVO.setStatus(null);
|
reqVO.setStatus(null);
|
||||||
reqVO.setBeginCreateTime(null);
|
reqVO.setCreateTime((new Date[]{}));
|
||||||
reqVO.setEndCreateTime(null);
|
|
||||||
|
|
||||||
// 调用
|
// 调用
|
||||||
List<BrandDO> list = brandService.getBrandList(reqVO);
|
List<BrandDO> list = brandService.getBrandList(reqVO);
|
||||||
|
@ -135,8 +135,7 @@ public class CategoryServiceImplTest extends BaseDbUnitTest {
|
|||||||
CategoryPageReqVO reqVO = new CategoryPageReqVO();
|
CategoryPageReqVO reqVO = new CategoryPageReqVO();
|
||||||
reqVO.setName(null);
|
reqVO.setName(null);
|
||||||
reqVO.setStatus(null);
|
reqVO.setStatus(null);
|
||||||
reqVO.setBeginCreateTime(null);
|
reqVO.setCreateTime(null);
|
||||||
reqVO.setEndCreateTime(null);
|
|
||||||
|
|
||||||
// 调用
|
// 调用
|
||||||
PageResult<CategoryDO> pageResult = categoryService.getCategoryPage(reqVO);
|
PageResult<CategoryDO> pageResult = categoryService.getCategoryPage(reqVO);
|
||||||
@ -181,8 +180,7 @@ public class CategoryServiceImplTest extends BaseDbUnitTest {
|
|||||||
CategoryExportReqVO reqVO = new CategoryExportReqVO();
|
CategoryExportReqVO reqVO = new CategoryExportReqVO();
|
||||||
reqVO.setName(null);
|
reqVO.setName(null);
|
||||||
reqVO.setStatus(null);
|
reqVO.setStatus(null);
|
||||||
reqVO.setBeginCreateTime(null);
|
reqVO.setCreateTime(null);
|
||||||
reqVO.setEndCreateTime(null);
|
|
||||||
|
|
||||||
// 调用
|
// 调用
|
||||||
List<CategoryDO> list = categoryService.getCategoryList(reqVO);
|
List<CategoryDO> list = categoryService.getCategoryList(reqVO);
|
||||||
|
@ -147,8 +147,7 @@ public class SkuServiceImplTest extends BaseDbUnitTest {
|
|||||||
reqVO.setBarCode(null);
|
reqVO.setBarCode(null);
|
||||||
reqVO.setPicUrl(null);
|
reqVO.setPicUrl(null);
|
||||||
reqVO.setStatus(null);
|
reqVO.setStatus(null);
|
||||||
reqVO.setBeginCreateTime(null);
|
reqVO.setCreateTime(null);
|
||||||
reqVO.setEndCreateTime(null);
|
|
||||||
|
|
||||||
// 调用
|
// 调用
|
||||||
PageResult<ProductSkuDO> pageResult = ProductSkuService.getSkuPage(reqVO);
|
PageResult<ProductSkuDO> pageResult = ProductSkuService.getSkuPage(reqVO);
|
||||||
@ -202,8 +201,7 @@ public class SkuServiceImplTest extends BaseDbUnitTest {
|
|||||||
reqVO.setBarCode(null);
|
reqVO.setBarCode(null);
|
||||||
reqVO.setPicUrl(null);
|
reqVO.setPicUrl(null);
|
||||||
reqVO.setStatus(null);
|
reqVO.setStatus(null);
|
||||||
reqVO.setBeginCreateTime(null);
|
reqVO.setCreateTime(null);
|
||||||
reqVO.setEndCreateTime(null);
|
|
||||||
|
|
||||||
// 调用
|
// 调用
|
||||||
List<ProductSkuDO> list = ProductSkuService.getSkuList(reqVO);
|
List<ProductSkuDO> list = ProductSkuService.getSkuList(reqVO);
|
||||||
|
@ -155,8 +155,7 @@ public class ProductSpuServiceImplTest extends BaseDbUnitTest {
|
|||||||
reqVO.setPrice(null);
|
reqVO.setPrice(null);
|
||||||
reqVO.setQuantity(null);
|
reqVO.setQuantity(null);
|
||||||
reqVO.setStatus(null);
|
reqVO.setStatus(null);
|
||||||
reqVO.setBeginCreateTime(null);
|
reqVO.setCreateTime(null);
|
||||||
reqVO.setEndCreateTime(null);
|
|
||||||
|
|
||||||
// 调用
|
// 调用
|
||||||
PageResult<SpuRespVO> pageResult = spuService.getSpuPage(reqVO);
|
PageResult<SpuRespVO> pageResult = spuService.getSpuPage(reqVO);
|
||||||
@ -218,8 +217,7 @@ public class ProductSpuServiceImplTest extends BaseDbUnitTest {
|
|||||||
reqVO.setPrice(null);
|
reqVO.setPrice(null);
|
||||||
reqVO.setQuantity(null);
|
reqVO.setQuantity(null);
|
||||||
reqVO.setStatus(null);
|
reqVO.setStatus(null);
|
||||||
reqVO.setBeginCreateTime(null);
|
reqVO.setCreateTime(null);
|
||||||
reqVO.setEndCreateTime(null);
|
|
||||||
|
|
||||||
// 调用
|
// 调用
|
||||||
List<ProductSpuDO> list = spuService.getSpuList(reqVO);
|
List<ProductSpuDO> list = spuService.getSpuList(reqVO);
|
||||||
|
@ -31,11 +31,7 @@ public class PayAppExportReqVO {
|
|||||||
private String merchantName;
|
private String merchantName;
|
||||||
|
|
||||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||||
@ApiModelProperty(value = "开始创建时间")
|
@ApiModelProperty(value = "创建时间")
|
||||||
private Date beginCreateTime;
|
private Date[] createTime;
|
||||||
|
|
||||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
|
||||||
@ApiModelProperty(value = "结束创建时间")
|
|
||||||
private Date endCreateTime;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user