Commit f2adb441cdb67bff8e4ac7f49786257ac2b40a3a
Merge remote-tracking branch 'origin/master' into feature/springdoc
# Conflicts: # yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserSimpleRespVO.java
Showing
193 changed files
with
15055 additions
and
676 deletions
Too many changes.
To preserve performance only 100 of 193 files are displayed.
README.md
| @@ -68,6 +68,7 @@ | @@ -68,6 +68,7 @@ | ||
| 68 | * 会员中心 | 68 | * 会员中心 |
| 69 | * 数据报表 | 69 | * 数据报表 |
| 70 | * 商城系统 | 70 | * 商城系统 |
| 71 | +* 微信公众号 | ||
| 71 | 72 | ||
| 72 | > 友情提示:本项目基于 RuoYi-Vue 修改,**重构优化**后端的代码,**美化**前端的界面。 | 73 | > 友情提示:本项目基于 RuoYi-Vue 修改,**重构优化**后端的代码,**美化**前端的界面。 |
| 73 | > | 74 | > |
| @@ -152,6 +153,21 @@ ps:核心功能已经实现,正在对接微信小程序中... | @@ -152,6 +153,21 @@ ps:核心功能已经实现,正在对接微信小程序中... | ||
| 152 | | 🚀 | 报表设计器 | 支持数据报表、图形报表、打印设计等 | | 153 | | 🚀 | 报表设计器 | 支持数据报表、图形报表、打印设计等 | |
| 153 | | 🚀 | 大屏设计器 | 建设中... 拖拽式实现可视化数据大屏 | | 154 | | 🚀 | 大屏设计器 | 建设中... 拖拽式实现可视化数据大屏 | |
| 154 | 155 | ||
| 156 | +### 微信公众号 | ||
| 157 | + | ||
| 158 | +| | 功能 | 描述 | | ||
| 159 | +|-----|--------|-------------------------------| | ||
| 160 | +| 🚀 | 账号管理 | 配置接入的微信公众号,可支持多个公众号 | | ||
| 161 | +| 🚀 | 数据统计 | 统计公众号的用户增减、累计用户、消息概况、接口分析等数据 | | ||
| 162 | +| 🚀 | 粉丝管理 | 查看已关注、取关的粉丝列表,可对粉丝进行同步、打标签等操作 | | ||
| 163 | +| 🚀 | 消息管理 | 查看粉丝发送的消息列表,可主动回复粉丝消息 | | ||
| 164 | +| 🚀 | 自动回复 | 自动回复粉丝发送的消息,支持关注回复、消息回复、关键字回复 | | ||
| 165 | +| 🚀 | 标签管理 | 对公众号的标签进行创建、查询、修改、删除等操作 | | ||
| 166 | +| 🚀 | 菜单管理 | 自定义公众号的菜单,也可以从公众号同步菜单 | | ||
| 167 | +| 🚀 | 素材管理 | 管理公众号的图片、语音、视频等素材,支持在线播放语音、视频 | | ||
| 168 | +| 🚀 | 图文草稿箱 | 新增常用的图文素材到草稿箱,可发布到公众号 | | ||
| 169 | +| 🚀 | 图文发表记录 | 查看已发布成功的图文素材,支持删除操作 | | ||
| 170 | + | ||
| 155 | ### 商城系统 | 171 | ### 商城系统 |
| 156 | 172 | ||
| 157 | 建设中... | 173 | 建设中... |
| @@ -182,6 +198,8 @@ ps:核心功能已经实现,正在对接微信小程序中... | @@ -182,6 +198,8 @@ ps:核心功能已经实现,正在对接微信小程序中... | ||
| 182 | | `yudao-module-infra` | 基础设施的 Module 模块 | | 198 | | `yudao-module-infra` | 基础设施的 Module 模块 | |
| 183 | | `yudao-module-bpm` | 工作流程的 Module 模块 | | 199 | | `yudao-module-bpm` | 工作流程的 Module 模块 | |
| 184 | | `yudao-module-pay` | 支付系统的 Module 模块 | | 200 | | `yudao-module-pay` | 支付系统的 Module 模块 | |
| 201 | +| `yudao-module-mall` | 商城系统的 Module 模块 | | ||
| 202 | +| `yudao-module-mp` | 微信公众号的 Module 模块 | | ||
| 185 | | `yudao-module-visualization` | 大屏报表 Module 模块 | | 203 | | `yudao-module-visualization` | 大屏报表 Module 模块 | |
| 186 | 204 | ||
| 187 | ### 后端 | 205 | ### 后端 |
http-client.env.json
pom.xml
| @@ -18,8 +18,9 @@ | @@ -18,8 +18,9 @@ | ||
| 18 | <module>yudao-module-infra</module> | 18 | <module>yudao-module-infra</module> |
| 19 | <module>yudao-module-pay</module> | 19 | <module>yudao-module-pay</module> |
| 20 | <!-- <module>yudao-module-bpm</module>--> | 20 | <!-- <module>yudao-module-bpm</module>--> |
| 21 | - <module>yudao-module-visualization</module> | ||
| 22 | -<!-- <module>yudao-module-mall</module>--> | 21 | +<!-- <module>yudao-module-visualization</module>--> |
| 22 | +<!-- <module>yudao-module-mp</module>--> | ||
| 23 | + <!-- <module>yudao-module-mall</module>--> | ||
| 23 | <!-- 示例项目 --> | 24 | <!-- 示例项目 --> |
| 24 | <module>yudao-example</module> | 25 | <module>yudao-example</module> |
| 25 | </modules> | 26 | </modules> |
sql/optional/visualization/jimureport.mysql5.7.create.sql renamed to sql/mysql/optional/jimureport.mysql5.7.create.sql
sql/mysql/optional/mp.sql
0 → 100644
| 1 | +/* | ||
| 2 | + Navicat Premium Data Transfer | ||
| 3 | + | ||
| 4 | + Source Server : 127.0.0.1 MySQL | ||
| 5 | + Source Server Type : MySQL | ||
| 6 | + Source Server Version : 80026 | ||
| 7 | + Source Host : localhost:3306 | ||
| 8 | + Source Schema : ruoyi-vue-pro | ||
| 9 | + | ||
| 10 | + Target Server Type : MySQL | ||
| 11 | + Target Server Version : 80026 | ||
| 12 | + File Encoding : 65001 | ||
| 13 | + | ||
| 14 | + Date: 17/01/2023 23:50:17 | ||
| 15 | +*/ | ||
| 16 | + | ||
| 17 | +SET NAMES utf8mb4; | ||
| 18 | +SET FOREIGN_KEY_CHECKS = 0; | ||
| 19 | + | ||
| 20 | +-- ---------------------------- | ||
| 21 | +-- Table structure for mp_account | ||
| 22 | +-- ---------------------------- | ||
| 23 | +DROP TABLE IF EXISTS `mp_account`; | ||
| 24 | +CREATE TABLE `mp_account` ( | ||
| 25 | + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号', | ||
| 26 | + `name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '公众号名称', | ||
| 27 | + `account` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '公众号账号', | ||
| 28 | + `app_id` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '公众号appid', | ||
| 29 | + `app_secret` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '公众号密钥', | ||
| 30 | + `url` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '公众号url', | ||
| 31 | + `token` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '公众号token', | ||
| 32 | + `aes_key` varchar(300) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '加密密钥', | ||
| 33 | + `qr_code_url` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '二维码图片URL', | ||
| 34 | + `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '备注', | ||
| 35 | + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '创建者', | ||
| 36 | + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', | ||
| 37 | + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者', | ||
| 38 | + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', | ||
| 39 | + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', | ||
| 40 | + `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', | ||
| 41 | + PRIMARY KEY (`id`) USING BTREE | ||
| 42 | +) ENGINE = InnoDB AUTO_INCREMENT = 5 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '公众号账号表'; | ||
| 43 | + | ||
| 44 | +-- ---------------------------- | ||
| 45 | +-- Records of mp_account | ||
| 46 | +-- ---------------------------- | ||
| 47 | +BEGIN; | ||
| 48 | +INSERT INTO `mp_account` (`id`, `name`, `account`, `app_id`, `app_secret`, `url`, `token`, `aes_key`, `qr_code_url`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2, '1', '2', '3', '4', NULL, '5', NULL, NULL, NULL, '1', '2023-01-07 17:30:30', '1', '2023-01-07 10:05:49', b'1', 1), (3, '1', '2', '3', '4', NULL, '5', NULL, NULL, NULL, '1', '2023-01-08 00:34:35', '1', '2023-01-14 01:15:56', b'1', 1); | ||
| 49 | +COMMIT; | ||
| 50 | + | ||
| 51 | +-- ---------------------------- | ||
| 52 | +-- Table structure for mp_auto_reply | ||
| 53 | +-- ---------------------------- | ||
| 54 | +DROP TABLE IF EXISTS `mp_auto_reply`; | ||
| 55 | +CREATE TABLE `mp_auto_reply` ( | ||
| 56 | + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键', | ||
| 57 | + `account_id` bigint NOT NULL COMMENT '公众号账号的编号', | ||
| 58 | + `app_id` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '公众号 appId', | ||
| 59 | + `type` tinyint NOT NULL COMMENT '回复类型', | ||
| 60 | + `request_keyword` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '请求的关键字', | ||
| 61 | + `request_match` tinyint NULL DEFAULT NULL COMMENT '请求的关键字的匹配', | ||
| 62 | + `request_message_type` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '请求的消息类型', | ||
| 63 | + `response_message_type` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '回复的消息类型', | ||
| 64 | + `response_content` varchar(1024) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '回复的消息内容', | ||
| 65 | + `response_media_id` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '回复的媒体文件 id', | ||
| 66 | + `response_media_url` varchar(1024) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '回复的媒体文件 URL', | ||
| 67 | + `response_title` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '回复的标题', | ||
| 68 | + `response_description` varchar(256) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '回复的描述', | ||
| 69 | + `response_thumb_media_id` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '回复的缩略图的媒体 id', | ||
| 70 | + `response_thumb_media_url` varchar(1024) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '回复的缩略图的媒体 URL', | ||
| 71 | + `response_articles` varchar(1024) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '回复的图文消息数组', | ||
| 72 | + `response_music_url` varchar(1024) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '回复的音乐链接', | ||
| 73 | + `response_hq_music_url` varchar(1024) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '回复的高质量音乐链接', | ||
| 74 | + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '创建者', | ||
| 75 | + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', | ||
| 76 | + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者', | ||
| 77 | + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', | ||
| 78 | + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', | ||
| 79 | + `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', | ||
| 80 | + PRIMARY KEY (`id`) USING BTREE | ||
| 81 | +) ENGINE = InnoDB AUTO_INCREMENT = 53 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '公众号消息自动回复表'; | ||
| 82 | + | ||
| 83 | +-- ---------------------------- | ||
| 84 | +-- Records of mp_auto_reply | ||
| 85 | +-- ---------------------------- | ||
| 86 | +BEGIN; | ||
| 87 | +INSERT INTO `mp_auto_reply` (`id`, `account_id`, `app_id`, `type`, `request_keyword`, `request_match`, `request_message_type`, `response_message_type`, `response_content`, `response_media_id`, `response_media_url`, `response_title`, `response_description`, `response_thumb_media_id`, `response_thumb_media_url`, `response_articles`, `response_music_url`, `response_hq_music_url`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (44, 1, 'wx5b23ba7a5589ecbb', 3, '你猜', 1, 'text', 'voice', '', 't1E3ss-niBf29tpzShjljxwaiBoXV_61ln2hzZGDlvAcT3hqLbC9dvl39YwiBWg9', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '', '2023-01-04 04:40:55', '', '2023-01-16 16:55:48', b'1', 1); | ||
| 88 | +COMMIT; | ||
| 89 | + | ||
| 90 | +-- ---------------------------- | ||
| 91 | +-- Table structure for mp_material | ||
| 92 | +-- ---------------------------- | ||
| 93 | +DROP TABLE IF EXISTS `mp_material`; | ||
| 94 | +CREATE TABLE `mp_material` ( | ||
| 95 | + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键', | ||
| 96 | + `account_id` bigint NOT NULL COMMENT '公众号账号的编号', | ||
| 97 | + `app_id` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '公众号 appId', | ||
| 98 | + `media_id` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '公众号素材 id', | ||
| 99 | + `type` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '文件类型', | ||
| 100 | + `permanent` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否永久', | ||
| 101 | + `url` varchar(1024) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '文件服务器的 URL', | ||
| 102 | + `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '名字', | ||
| 103 | + `mp_url` varchar(1024) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '公众号文件 URL', | ||
| 104 | + `title` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '视频素材的标题', | ||
| 105 | + `introduction` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '视频素材的描述', | ||
| 106 | + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '创建者', | ||
| 107 | + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', | ||
| 108 | + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者', | ||
| 109 | + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', | ||
| 110 | + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', | ||
| 111 | + `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', | ||
| 112 | + PRIMARY KEY (`id`) USING BTREE | ||
| 113 | +) ENGINE = InnoDB AUTO_INCREMENT = 98 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '公众号素材表'; | ||
| 114 | + | ||
| 115 | +-- ---------------------------- | ||
| 116 | +-- Records of mp_material | ||
| 117 | +-- ---------------------------- | ||
| 118 | +BEGIN; | ||
| 119 | +INSERT INTO `mp_material` (`id`, `account_id`, `app_id`, `media_id`, `type`, `permanent`, `url`, `name`, `mp_url`, `title`, `introduction`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (80, 1, 'wx5b23ba7a5589ecbb', 'r6ryvl6LrxBU0miaST4Y-tlQmcl3RdC-Jcgns6IQtf7zenGy3b86WLT7GzUcrb1T', 'image', b'1', 'http://test.yudao.iocoder.cn/r6ryvl6LrxBU0miaST4Y-tlQmcl3RdC-Jcgns6IQtf7zenGy3b86WLT7GzUcrb1T.png', 'file', 'http://mmbiz.qpic.cn/mmbiz_png/btUmCVHwbJUoicwBiacjVeQbu6QxgBVrukfSJXz509boa21SpH8OVHAqXCJiaiaAaHQJNxwwsa0gHRXVr0G5EZYamw/0?wx_fmt=png', '', '', '1', '2023-01-14 00:56:06', '1', '2023-01-14 07:45:41', b'1', 1), (81, 1, 'wx5b23ba7a5589ecbb', 'r6ryvl6LrxBU0miaST4Y-pWqXoCgpdNp1fvSv7c6zoTnCsW6BGAVFNJ-E9hkAIXO', 'image', b'1', 'http://test.yudao.iocoder.cn/r6ryvl6LrxBU0miaST4Y-pWqXoCgpdNp1fvSv7c6zoTnCsW6BGAVFNJ-E9hkAIXO.jpg', 'file', 'http://mmbiz.qpic.cn/mmbiz_jpg/btUmCVHwbJUoicwBiacjVeQbu6QxgBVrukzCJPJRkia5cQviaDTbLMc614uobiblN4Au4UApLYOShXNDNjdndjPVswg/0?wx_fmt=jpeg', '', '', '1', '2023-01-14 01:30:49', '1', '2023-01-14 07:31:02', b'1', 1), (82, 1, 'wx5b23ba7a5589ecbb', 'r6ryvl6LrxBU0miaST4Y-vNzhGc_1b37nxAvj0Zt8iuGACe-mC9_a5OhVFIzt0DX', 'image', b'1', 'http://test.yudao.iocoder.cn/r6ryvl6LrxBU0miaST4Y-vNzhGc_1b37nxAvj0Zt8iuGACe-mC9_a5OhVFIzt0DX.png', 'file', 'http://mmbiz.qpic.cn/mmbiz_png/btUmCVHwbJVkZaoiatUmOpaGalzHIVxhUNOGPaZfZUSfKzpS8bPShaicSyErHn2mEzthXochM7GE3tIDAt5FNrUg/0?wx_fmt=png', NULL, NULL, '1', '2023-01-14 08:20:53', '1', '2023-01-14 07:30:59', b'1', 1), (88, 4, 'wx01b971b269525c69', 'rdp2FpJLZJb_Z771EZCE0sdggkEkJ9BXy1wIiory8puv2L0sRYeBBVztrxmjjT_P', 'voice', b'1', 'http://test.yudao.iocoder.cn/rdp2FpJLZJb_Z771EZCE0sdggkEkJ9BXy1wIiory8puv2L0sRYeBBVztrxmjjT_P.amr', 'file', NULL, '', '', '1', '2023-01-14 16:28:53', '1', '2023-01-14 08:29:36', b'1', 1), (89, 4, 'wx01b971b269525c69', 'rdp2FpJLZJb_Z771EZCE0jlwnElym7bDUZUQI6t36O9xlh-wQWZpdDEVNHj_-Zo3', 'video', b'1', 'http://test.yudao.iocoder.cn/rdp2FpJLZJb_Z771EZCE0jlwnElym7bDUZUQI6t36O9xlh-wQWZpdDEVNHj_-Zo3.mp4', 'file', NULL, '1', '2', '1', '2023-01-14 16:53:53', '1', '2023-01-14 08:54:45', b'1', 1), (90, 4, 'wx01b971b269525c69', 'rdp2FpJLZJb_Z771EZCE0nKJFlsOPjLkDApXEgRjaGydiFVTsC0zMq8-x5V6-rG4', 'video', b'1', 'http://test.yudao.iocoder.cn/rdp2FpJLZJb_Z771EZCE0nKJFlsOPjLkDApXEgRjaGydiFVTsC0zMq8-x5V6-rG4.mp4', 'file', NULL, '12', '34', '1', '2023-01-14 16:55:02', '1', '2023-01-14 08:55:06', b'1', 1); | ||
| 120 | +COMMIT; | ||
| 121 | + | ||
| 122 | +-- ---------------------------- | ||
| 123 | +-- Table structure for mp_menu | ||
| 124 | +-- ---------------------------- | ||
| 125 | +DROP TABLE IF EXISTS `mp_menu`; | ||
| 126 | +CREATE TABLE `mp_menu` ( | ||
| 127 | + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键', | ||
| 128 | + `account_id` bigint NOT NULL COMMENT '微信公众号ID', | ||
| 129 | + `app_id` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '微信公众号 appid', | ||
| 130 | + `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '菜单名称', | ||
| 131 | + `menu_key` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '菜单标识', | ||
| 132 | + `parent_id` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '父ID', | ||
| 133 | + `type` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '按钮类型', | ||
| 134 | + `url` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '网页链接', | ||
| 135 | + `mini_program_app_id` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '小程序appid', | ||
| 136 | + `mini_program_page_path` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '小程序页面路径', | ||
| 137 | + `article_id` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '跳转图文的媒体编号', | ||
| 138 | + `reply_message_type` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '消息类型', | ||
| 139 | + `reply_content` varchar(1024) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '回复的消息内容', | ||
| 140 | + `reply_media_id` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '回复的媒体文件 id', | ||
| 141 | + `reply_media_url` varchar(1024) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '回复的媒体文件 URL', | ||
| 142 | + `reply_title` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '回复的标题', | ||
| 143 | + `reply_description` varchar(256) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '回复的描述', | ||
| 144 | + `reply_thumb_media_id` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '回复的缩略图的媒体 id', | ||
| 145 | + `reply_thumb_media_url` varchar(1024) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '回复的缩略图的媒体 URL', | ||
| 146 | + `reply_articles` varchar(1024) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '回复的图文消息数组', | ||
| 147 | + `reply_music_url` varchar(1024) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '回复的音乐链接', | ||
| 148 | + `reply_hq_music_url` varchar(1024) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '回复的高质量音乐链接', | ||
| 149 | + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '创建者', | ||
| 150 | + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', | ||
| 151 | + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者', | ||
| 152 | + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', | ||
| 153 | + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', | ||
| 154 | + `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', | ||
| 155 | + PRIMARY KEY (`id`) USING BTREE | ||
| 156 | +) ENGINE = InnoDB AUTO_INCREMENT = 169 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '公众号菜单表'; | ||
| 157 | + | ||
| 158 | +-- ---------------------------- | ||
| 159 | +-- Records of mp_menu | ||
| 160 | +-- ---------------------------- | ||
| 161 | +BEGIN; | ||
| 162 | +INSERT INTO `mp_menu` (`id`, `account_id`, `app_id`, `name`, `menu_key`, `parent_id`, `type`, `url`, `mini_program_app_id`, `mini_program_page_path`, `article_id`, `reply_message_type`, `reply_content`, `reply_media_id`, `reply_media_url`, `reply_title`, `reply_description`, `reply_thumb_media_id`, `reply_thumb_media_url`, `reply_articles`, `reply_music_url`, `reply_hq_music_url`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1, 1, 'wx5b23ba7a5589ecbb', '今日歌曲', 'V1001_TODAY_MUSIC', '0', 'click', NULL, NULL, NULL, NULL, 'text', '幸会幸会', NULL, NULL, NULL, NULL, NULL, NULL, NULL, '', '', '', '2023-01-07 02:51:58', '', '2023-01-14 15:44:49', b'1', 1), (2, 1, 'wx5b23ba7a5589ecbb', '搜索', '', '0', 'view', 'http://www.soso.com/', NULL, NULL, NULL, 'text', '幸会幸会', NULL, NULL, NULL, NULL, NULL, NULL, NULL, '', '', '', '2023-01-07 02:51:58', '', '2023-01-14 13:22:13', b'1', 1), (3, 1, 'wx5b23ba7a5589ecbb', '父按钮', '', '0', '', '', NULL, NULL, NULL, 'text', '幸会幸会', NULL, NULL, NULL, NULL, NULL, NULL, NULL, '', '', '', '2023-01-07 02:51:58', '', '2023-01-14 15:44:49', b'1', 1), (4, 1, 'wx5b23ba7a5589ecbb', '归去来兮', 'MUSIC', '3', 'click', NULL, NULL, NULL, NULL, 'text', '幸会幸会', NULL, NULL, NULL, NULL, NULL, NULL, NULL, '', '', '', '2023-01-07 02:51:58', '', '2023-01-14 15:44:49', b'1', 1), (5, 1, 'wx5b23ba7a5589ecbb', '不说', '', '3', 'view', 'http://www.soso.com/', NULL, NULL, NULL, 'text', '幸会幸会', NULL, NULL, NULL, NULL, NULL, NULL, NULL, '', '', '', '2023-01-07 02:51:58', '', '2023-01-14 15:44:49', b'1', 1), (26, 1, 'wx5b23ba7a5589ecbb', '今日歌曲', NULL, NULL, '', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '', '', '1', '2023-01-14 23:44:50', '1', '2023-01-14 16:35:05', b'1', 1), (27, 1, 'wx5b23ba7a5589ecbb', '搜索', NULL, NULL, '', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '', '', '1', '2023-01-14 23:44:50', '1', '2023-01-14 16:35:05', b'1', 1), (28, 1, 'wx5b23ba7a5589ecbb', '父按钮', NULL, NULL, '', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '', '', '1', '2023-01-14 23:44:50', '1', '2023-01-14 16:35:05', b'1', 1), (29, 1, 'wx5b23ba7a5589ecbb', '归去来兮', NULL, NULL, '', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '', '', '1', '2023-01-14 23:44:50', '1', '2023-01-14 16:35:05', b'1', 1), (30, 1, 'wx5b23ba7a5589ecbb', '不说', NULL, NULL, '', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '', '', '1', '2023-01-14 23:44:50', '1', '2023-01-14 16:35:05', b'1', 1), (31, 1, 'wx5b23ba7a5589ecbb', '123', NULL, NULL, '', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '', '', '1', '2023-01-15 00:35:05', '1', '2023-01-14 16:35:43', b'1', 1), (32, 1, 'wx5b23ba7a5589ecbb', '123', NULL, NULL, '', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '', '', '1', '2023-01-15 00:35:43', '1', '2023-01-14 16:39:10', b'1', 1), (33, 1, 'wx5b23ba7a5589ecbb', '嘿嘿', NULL, '0', 'view', 'https://www.iocoder.cn', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '', '', '1', '2023-01-15 00:39:10', '1', '2023-01-14 16:40:09', b'1', 1), (38, 1, 'wx5b23ba7a5589ecbb', '顶级1', NULL, '0', 'view', 'https://www.iocoder.cn', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '', '', '1', '2023-01-15 00:42:54', '1', '2023-01-14 16:51:35', b'1', 1), (39, 1, 'wx5b23ba7a5589ecbb', '明星', NULL, '0', '', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '', '', '1', '2023-01-15 00:42:54', '1', '2023-01-14 16:51:35', b'1', 1), (40, 1, 'wx5b23ba7a5589ecbb', '喊个', NULL, '39', 'view', 'https://www.iocoder.cn', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '', '', '1', '2023-01-15 00:42:54', '1', '2023-01-14 16:51:35', b'1', 1), (41, 1, 'wx5b23ba7a5589ecbb', 'haha', NULL, '39', 'view', 'http://soso.com', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '', '', '1', '2023-01-15 00:42:54', '1', '2023-01-14 16:51:35', b'1', 1), (42, 1, 'wx5b23ba7a5589ecbb', '顶级1', NULL, '0', 'view', 'https://www.iocoder.cn', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '', '', '1', '2023-01-15 00:51:35', '1', '2023-01-14 16:51:53', b'1', 1), (43, 1, 'wx5b23ba7a5589ecbb', '明星', NULL, '0', '', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '', '', '1', '2023-01-15 00:51:35', '1', '2023-01-14 16:51:53', b'1', 1), (44, 1, 'wx5b23ba7a5589ecbb', '喊个', NULL, '43', 'view', 'https://www.iocoder.cn', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '', '', '1', '2023-01-15 00:51:35', '1', '2023-01-14 16:51:53', b'1', 1), (45, 1, 'wx5b23ba7a5589ecbb', 'haha', NULL, '43', 'view', 'http://soso.com', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '', '', '1', '2023-01-15 00:51:35', '1', '2023-01-14 16:51:53', b'1', 1), (46, 1, 'wx5b23ba7a5589ecbb', '测试菜单', NULL, '0', '', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '', '', '1', '2023-01-15 11:32:17', '1', '2023-01-15 04:39:11', b'1', 1), (47, 1, 'wx5b23ba7a5589ecbb', '跳转网页', NULL, '46', 'view', 'https://www.iocoder.cn', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '', '', '1', '2023-01-15 11:32:17', '1', '2023-01-15 04:39:11', b'1', 1), (48, 1, 'wx5b23ba7a5589ecbb', '点击回复', '123', '0', 'click', NULL, NULL, NULL, NULL, 'text', '123', NULL, NULL, NULL, NULL, NULL, NULL, NULL, '', '', '1', '2023-01-15 12:39:12', '1', '2023-01-15 09:19:01', b'1', 1), (49, 1, 'wx5b23ba7a5589ecbb', '点击回复', '123', '0', 'click', NULL, NULL, NULL, NULL, 'image', '', 'r6ryvl6LrxBU0miaST4Y-pgFtUNLu1foMSAMkoOsrQrTZ8EtTMssBLfTtzP0dfjG', 'http://test.yudao.iocoder.cn/r6ryvl6LrxBU0miaST4Y-pgFtUNLu1foMSAMkoOsrQrTZ8EtTMssBLfTtzP0dfjG.png', '', '', NULL, NULL, NULL, '', '', '1', '2023-01-15 17:19:02', '1', '2023-01-15 09:26:50', b'1', 1), (50, 1, 'wx5b23ba7a5589ecbb', '点击回复', '123', '0', 'click', NULL, NULL, NULL, NULL, 'voice', '', 'a6kOoewXIbX57gB0kCb_Gz-Yg8hVk5OgQ6iWZU_KSOEhpQ31JmkGh0JYPKgi9ebKPthnsckQbQVWfiN58VLrfg', 'http://test.yudao.iocoder.cn/a6kOoewXIbX57gB0kCb_Gz-Yg8hVk5OgQ6iWZU_KSOEhpQ31JmkGh0JYPKgi9ebKPthnsckQbQVWfiN58VLrfg.mp3', '', '', NULL, NULL, NULL, '', '', '1', '2023-01-15 17:26:51', '1', '2023-01-15 09:27:39', b'1', 1), (51, 1, 'wx5b23ba7a5589ecbb', '点击回复', '123', '0', 'click', NULL, NULL, NULL, NULL, 'video', '', 'XQockIDz-7p8wHuI0wxzd2dZvhKWrQnxM5pPXvaW8Qsid2hLjVxk90wM47ZsYERT', 'http://test.yudao.iocoder.cn/XQockIDz-7p8wHuI0wxzd2dZvhKWrQnxM5pPXvaW8Qsid2hLjVxk90wM47ZsYERT.mp4', '奥特曼', '奥特快', NULL, NULL, NULL, '', '', '1', '2023-01-15 17:27:40', '1', '2023-01-15 09:28:20', b'1', 1), (52, 1, 'wx5b23ba7a5589ecbb', '点击回复', '123', '0', 'click', NULL, NULL, NULL, NULL, 'video', '', 'XQockIDz-7p8wHuI0wxzd2dZvhKWrQnxM5pPXvaW8Qsid2hLjVxk90wM47ZsYERT', 'http://test.yudao.iocoder.cn/XQockIDz-7p8wHuI0wxzd2dZvhKWrQnxM5pPXvaW8Qsid2hLjVxk90wM47ZsYERT.mp4', NULL, '奥特快', NULL, NULL, NULL, '', '', '1', '2023-01-15 17:28:21', '1', '2023-01-15 09:29:21', b'1', 1), (53, 1, 'wx5b23ba7a5589ecbb', '点击回复', '123', '0', 'click', NULL, NULL, NULL, NULL, 'video', '', 'XQockIDz-7p8wHuI0wxzd2dZvhKWrQnxM5pPXvaW8Qsid2hLjVxk90wM47ZsYERT', 'http://test.yudao.iocoder.cn/XQockIDz-7p8wHuI0wxzd2dZvhKWrQnxM5pPXvaW8Qsid2hLjVxk90wM47ZsYERT.mp4', NULL, '奥特快', NULL, NULL, NULL, '', '', '1', '2023-01-15 17:29:22', '1', '2023-01-15 09:32:49', b'1', 1), (54, 1, 'wx5b23ba7a5589ecbb', '回复图片', '01', '0', 'click', NULL, NULL, NULL, NULL, 'image', '', 'r6ryvl6LrxBU0miaST4Y-pgFtUNLu1foMSAMkoOsrQrTZ8EtTMssBLfTtzP0dfjG', 'http://test.yudao.iocoder.cn/r6ryvl6LrxBU0miaST4Y-pgFtUNLu1foMSAMkoOsrQrTZ8EtTMssBLfTtzP0dfjG.png', '', '', NULL, NULL, NULL, '', '', '1', '2023-01-15 17:29:22', '1', '2023-01-15 09:32:49', b'1', 1), (55, 1, 'wx5b23ba7a5589ecbb', '回复图片', 'image', '0', 'click', NULL, NULL, NULL, NULL, 'image', '', 'r6ryvl6LrxBU0miaST4Y-jVixJGgnBnkBPRbuVptOW0CHYuQFyiOVNtamctS8xU8', 'http://test.yudao.iocoder.cn/r6ryvl6LrxBU0miaST4Y-jVixJGgnBnkBPRbuVptOW0CHYuQFyiOVNtamctS8xU8.jpg', '', '', NULL, NULL, NULL, '', '', '1', '2023-01-15 17:33:06', '1', '2023-01-15 09:33:45', b'1', 1), (56, 1, 'wx5b23ba7a5589ecbb', '回复图片', 'image', '0', 'click', NULL, NULL, NULL, NULL, 'image', '', 'r6ryvl6LrxBU0miaST4Y-jVixJGgnBnkBPRbuVptOW0CHYuQFyiOVNtamctS8xU8', 'http://test.yudao.iocoder.cn/r6ryvl6LrxBU0miaST4Y-jVixJGgnBnkBPRbuVptOW0CHYuQFyiOVNtamctS8xU8.jpg', NULL, '', NULL, NULL, NULL, '', '', '1', '2023-01-15 17:33:45', '1', '2023-01-15 09:33:55', b'1', 1), (57, 1, 'wx5b23ba7a5589ecbb', '回复语音', 'aoteman', '0', 'click', NULL, NULL, NULL, NULL, 'voice', '', 'a6kOoewXIbX57gB0kCb_Gz-Yg8hVk5OgQ6iWZU_KSOEhpQ31JmkGh0JYPKgi9ebKPthnsckQbQVWfiN58VLrfg', 'http://test.yudao.iocoder.cn/a6kOoewXIbX57gB0kCb_Gz-Yg8hVk5OgQ6iWZU_KSOEhpQ31JmkGh0JYPKgi9ebKPthnsckQbQVWfiN58VLrfg.mp3', '', '', NULL, NULL, NULL, '', '', '1', '2023-01-15 17:33:45', '1', '2023-01-15 09:33:55', b'1', 1), (58, 1, 'wx5b23ba7a5589ecbb', '回复图片', 'image', '0', 'click', NULL, NULL, NULL, NULL, 'image', '', 'r6ryvl6LrxBU0miaST4Y-jVixJGgnBnkBPRbuVptOW0CHYuQFyiOVNtamctS8xU8', 'http://test.yudao.iocoder.cn/r6ryvl6LrxBU0miaST4Y-jVixJGgnBnkBPRbuVptOW0CHYuQFyiOVNtamctS8xU8.jpg', NULL, '', NULL, NULL, NULL, '', '', '1', '2023-01-15 17:33:56', '1', '2023-01-15 09:34:02', b'1', 1), (59, 1, 'wx5b23ba7a5589ecbb', '回复语音', 'aoteman', '0', 'click', NULL, NULL, NULL, NULL, 'voice', '', 'a6kOoewXIbX57gB0kCb_Gz-Yg8hVk5OgQ6iWZU_KSOEhpQ31JmkGh0JYPKgi9ebKPthnsckQbQVWfiN58VLrfg', 'http://test.yudao.iocoder.cn/a6kOoewXIbX57gB0kCb_Gz-Yg8hVk5OgQ6iWZU_KSOEhpQ31JmkGh0JYPKgi9ebKPthnsckQbQVWfiN58VLrfg.mp3', NULL, '', NULL, NULL, NULL, '', '', '1', '2023-01-15 17:33:56', '1', '2023-01-15 09:34:02', b'1', 1), (60, 1, 'wx5b23ba7a5589ecbb', '回复图片', 'image', '0', 'click', NULL, NULL, NULL, NULL, 'image', '', 'r6ryvl6LrxBU0miaST4Y-jVixJGgnBnkBPRbuVptOW0CHYuQFyiOVNtamctS8xU8', 'http://test.yudao.iocoder.cn/r6ryvl6LrxBU0miaST4Y-jVixJGgnBnkBPRbuVptOW0CHYuQFyiOVNtamctS8xU8.jpg', NULL, '', NULL, NULL, NULL, '', '', '1', '2023-01-15 17:34:02', '1', '2023-01-15 09:34:44', b'1', 1), (61, 1, 'wx5b23ba7a5589ecbb', '回复语音', 'aoteman', '0', 'click', NULL, NULL, NULL, NULL, 'voice', '', 'a6kOoewXIbX57gB0kCb_Gz-Yg8hVk5OgQ6iWZU_KSOEhpQ31JmkGh0JYPKgi9ebKPthnsckQbQVWfiN58VLrfg', 'http://test.yudao.iocoder.cn/a6kOoewXIbX57gB0kCb_Gz-Yg8hVk5OgQ6iWZU_KSOEhpQ31JmkGh0JYPKgi9ebKPthnsckQbQVWfiN58VLrfg.mp3', NULL, '', NULL, NULL, NULL, '', '', '1', '2023-01-15 17:34:02', '1', '2023-01-15 09:34:44', b'1', 1), (62, 1, 'wx5b23ba7a5589ecbb', '回复语音', 'aoteman', '0', 'click', NULL, NULL, NULL, NULL, 'voice', '', 'a6kOoewXIbX57gB0kCb_Gz-Yg8hVk5OgQ6iWZU_KSOEhpQ31JmkGh0JYPKgi9ebKPthnsckQbQVWfiN58VLrfg', 'http://test.yudao.iocoder.cn/a6kOoewXIbX57gB0kCb_Gz-Yg8hVk5OgQ6iWZU_KSOEhpQ31JmkGh0JYPKgi9ebKPthnsckQbQVWfiN58VLrfg.mp3', NULL, '', NULL, NULL, NULL, '', '', '1', '2023-01-15 17:34:45', '1', '2023-01-15 09:36:27', b'1', 1), (63, 1, 'wx5b23ba7a5589ecbb', '回复语音', 'aoteman', '0', 'click', NULL, NULL, NULL, NULL, 'voice', '', 'a6kOoewXIbX57gB0kCb_Gz-Yg8hVk5OgQ6iWZU_KSOEhpQ31JmkGh0JYPKgi9ebKPthnsckQbQVWfiN58VLrfg', 'http://test.yudao.iocoder.cn/a6kOoewXIbX57gB0kCb_Gz-Yg8hVk5OgQ6iWZU_KSOEhpQ31JmkGh0JYPKgi9ebKPthnsckQbQVWfiN58VLrfg.mp3', NULL, '', NULL, NULL, NULL, '', '', '1', '2023-01-15 17:36:28', '1', '2023-01-15 09:37:20', b'1', 1), (64, 1, 'wx5b23ba7a5589ecbb', '回复语音', 'aoteman', '0', 'click', NULL, NULL, NULL, NULL, 'voice', '', 'a6kOoewXIbX57gB0kCb_Gz-Yg8hVk5OgQ6iWZU_KSOEhpQ31JmkGh0JYPKgi9ebKPthnsckQbQVWfiN58VLrfg', 'http://test.yudao.iocoder.cn/a6kOoewXIbX57gB0kCb_Gz-Yg8hVk5OgQ6iWZU_KSOEhpQ31JmkGh0JYPKgi9ebKPthnsckQbQVWfiN58VLrfg.mp3', NULL, '', NULL, NULL, NULL, '', '', '1', '2023-01-15 17:37:21', '1', '2023-01-15 09:40:13', b'1', 1), (65, 1, 'wx5b23ba7a5589ecbb', '回复语音', 'aoteman', '0', 'click', NULL, NULL, NULL, NULL, 'voice', '', 'a6kOoewXIbX57gB0kCb_Gz-Yg8hVk5OgQ6iWZU_KSOEhpQ31JmkGh0JYPKgi9ebKPthnsckQbQVWfiN58VLrfg', 'http://test.yudao.iocoder.cn/a6kOoewXIbX57gB0kCb_Gz-Yg8hVk5OgQ6iWZU_KSOEhpQ31JmkGh0JYPKgi9ebKPthnsckQbQVWfiN58VLrfg.mp3', NULL, '', NULL, NULL, NULL, '', '', '1', '2023-01-15 17:40:14', '1', '2023-01-15 09:40:24', b'1', 1), (66, 1, 'wx5b23ba7a5589ecbb', '回复语音', 'aoteman', '0', 'click', NULL, NULL, NULL, NULL, 'voice', '', 'a6kOoewXIbX57gB0kCb_Gz-Yg8hVk5OgQ6iWZU_KSOEhpQ31JmkGh0JYPKgi9ebKPthnsckQbQVWfiN58VLrfg', 'http://test.yudao.iocoder.cn/a6kOoewXIbX57gB0kCb_Gz-Yg8hVk5OgQ6iWZU_KSOEhpQ31JmkGh0JYPKgi9ebKPthnsckQbQVWfiN58VLrfg.mp3', NULL, '', NULL, NULL, NULL, '', '', '1', '2023-01-15 17:40:24', '1', '2023-01-15 09:41:12', b'1', 1), (67, 1, 'wx5b23ba7a5589ecbb', '回复语音', 'aoteman', '0', 'click', NULL, NULL, NULL, NULL, 'video', '', 'a6kOoewXIbX57gB0kCb_Gz-Yg8hVk5OgQ6iWZU_KSOEhpQ31JmkGh0JYPKgi9ebKPthnsckQbQVWfiN58VLrfg', 'http://test.yudao.iocoder.cn/a6kOoewXIbX57gB0kCb_Gz-Yg8hVk5OgQ6iWZU_KSOEhpQ31JmkGh0JYPKgi9ebKPthnsckQbQVWfiN58VLrfg.mp3', '', '', NULL, NULL, NULL, '', '', '1', '2023-01-15 17:41:13', '1', '2023-01-15 09:43:32', b'1', 1), (68, 1, 'wx5b23ba7a5589ecbb', '回复视频', '123', '0', 'click', NULL, NULL, NULL, NULL, 'video', '', 'r6ryvl6LrxBU0miaST4Y-v2-X9sD87sdZ8qoWWgu9QgP2NEjlTvDJ47KfF2xhyiU', 'http://test.yudao.iocoder.cn/r6ryvl6LrxBU0miaST4Y-v2-X9sD87sdZ8qoWWgu9QgP2NEjlTvDJ47KfF2xhyiU.mp4', '我是视频', '我真的是视频', NULL, NULL, NULL, '', '', '1', '2023-01-15 17:41:13', '1', '2023-01-15 09:43:32', b'1', 1), (69, 1, 'wx5b23ba7a5589ecbb', '回复语音', 'aoteman', '0', 'click', NULL, NULL, NULL, NULL, 'video', '', 'a6kOoewXIbX57gB0kCb_Gz-Yg8hVk5OgQ6iWZU_KSOEhpQ31JmkGh0JYPKgi9ebKPthnsckQbQVWfiN58VLrfg', 'http://test.yudao.iocoder.cn/a6kOoewXIbX57gB0kCb_Gz-Yg8hVk5OgQ6iWZU_KSOEhpQ31JmkGh0JYPKgi9ebKPthnsckQbQVWfiN58VLrfg.mp3', NULL, '', NULL, NULL, NULL, '', '', '1', '2023-01-15 17:43:33', '1', '2023-01-15 10:06:28', b'1', 1), (70, 1, 'wx5b23ba7a5589ecbb', '回复视频', '123', '0', 'click', NULL, NULL, NULL, NULL, 'video', '', 'r6ryvl6LrxBU0miaST4Y-v2-X9sD87sdZ8qoWWgu9QgP2NEjlTvDJ47KfF2xhyiU', 'http://test.yudao.iocoder.cn/r6ryvl6LrxBU0miaST4Y-v2-X9sD87sdZ8qoWWgu9QgP2NEjlTvDJ47KfF2xhyiU.mp4', NULL, '我真的是视频', NULL, NULL, NULL, '', '', '1', '2023-01-15 17:43:33', '1', '2023-01-15 10:06:28', b'1', 1), (71, 1, 'wx5b23ba7a5589ecbb', '回复音乐', 'ao11', '0', 'click', NULL, NULL, NULL, NULL, 'music', '', NULL, NULL, '1', '2', NULL, NULL, NULL, '', '', '1', '2023-01-15 17:43:33', '1', '2023-01-15 10:06:28', b'1', 1), (72, 1, 'wx5b23ba7a5589ecbb', '回复音乐', '01', '0', 'click', NULL, NULL, NULL, NULL, 'music', '', NULL, NULL, '1', '2', 'wBnOlFbeYaWXb7AVX5Ha_Uy373JHA2EoS0FUziAhkwP0r6Hv43PeQHXKY4GADfbl', 'http://test.yudao.iocoder.cn/wBnOlFbeYaWXb7AVX5Ha_Uy373JHA2EoS0FUziAhkwP0r6Hv43PeQHXKY4GADfbl.png', NULL, 'https://www.iocoder.cn/1.mp3', 'https://www.iocoder.cn/2.mp3', '1', '2023-01-15 18:16:12', '1', '2023-01-15 10:21:13', b'1', 1), (73, 1, 'wx5b23ba7a5589ecbb', '回复音乐', '01', '0', 'click', NULL, NULL, NULL, NULL, 'music', '', NULL, NULL, '1', '2', 'wBnOlFbeYaWXb7AVX5Ha_Uy373JHA2EoS0FUziAhkwP0r6Hv43PeQHXKY4GADfbl', 'http://test.yudao.iocoder.cn/wBnOlFbeYaWXb7AVX5Ha_Uy373JHA2EoS0FUziAhkwP0r6Hv43PeQHXKY4GADfbl.png', NULL, 'https://www.iocoder.cn/1.mp3', 'https://www.iocoder.cn/2.mp3', '1', '2023-01-15 18:21:14', '1', '2023-01-15 10:21:36', b'1', 1), (74, 1, 'wx5b23ba7a5589ecbb', '回复音乐', '01', '0', 'click', NULL, NULL, NULL, NULL, 'music', '', NULL, NULL, '1', '2', 'wBnOlFbeYaWXb7AVX5Ha_Uy373JHA2EoS0FUziAhkwP0r6Hv43PeQHXKY4GADfbl', 'http://test.yudao.iocoder.cn/wBnOlFbeYaWXb7AVX5Ha_Uy373JHA2EoS0FUziAhkwP0r6Hv43PeQHXKY4GADfbl.png', NULL, 'https://www.iocoder.cn/1.mp3', 'https://www.iocoder.cn/2.mp3', '1', '2023-01-15 18:21:36', '1', '2023-01-15 10:21:59', b'1', 1), (75, 1, 'wx5b23ba7a5589ecbb', '回复图文', 'music', '0', 'click', NULL, NULL, NULL, NULL, 'news', '', NULL, NULL, '', '', NULL, NULL, '[{\"title\":\"我是标题\",\"description\":null,\"picUrl\":\"http://test.yudao.iocoder.cn/r6ryvl6LrxBU0miaST4Y-pIcmK-zAAId-9TGgy-DrSLhjVuWbuT3ZBjk9K1yQ0Dn.png\",\"url\":\"http://mp.weixin.qq.com/s?__biz=MzA3NjM4MzQzOQ==&mid=2247483662&idx=1&sn=dadf5d7e9aa594b58666fb2013fdf215&chksm=9f6354aea814ddb8fde13b17a34acbe86987b5c3403c6bd47e1e94977f6988b62653f6ab55e6#rd\"},{\"title\":\"我是标题 2\",\"description\":null,\"picUrl\":\"http://test.yudao.iocoder.cn/r6ryvl6LrxBU0miaST4Y-pIcmK-zAAId-9TGgy-DrSLhjVuWbuT3ZBjk9K1yQ0Dn.png\",\"url\":\"http://mp.weixin.qq.com/s?__biz=MzA3NjM4MzQzOQ==&mid=2247483662&idx=2&sn=c8041e2fc639c07d73bbbb6f80cf1784&chksm=9f6354aea814ddb8f48d7b330252c0374878014feb45a8fd4c22aaa0483c062f20ba15463368#rd\"}]', NULL, NULL, '1', '2023-01-15 18:23:23', '1', '2023-01-15 10:23:53', b'1', 1), (76, 1, 'wx5b23ba7a5589ecbb', '回复图文', 'music', '0', 'click', NULL, NULL, NULL, NULL, 'text', '123', NULL, NULL, '', '', NULL, NULL, '[{\"title\":\"我是标题\",\"description\":null,\"picUrl\":\"http://test.yudao.iocoder.cn/r6ryvl6LrxBU0miaST4Y-pIcmK-zAAId-9TGgy-DrSLhjVuWbuT3ZBjk9K1yQ0Dn.png\",\"url\":\"http://mp.weixin.qq.com/s?__biz=MzA3NjM4MzQzOQ==&mid=2247483662&idx=1&sn=dadf5d7e9aa594b58666fb2013fdf215&chksm=9f6354aea814ddb8fde13b17a34acbe86987b5c3403c6bd47e1e94977f6988b62653f6ab55e6#rd\"},{\"title\":\"我是标题 2\",\"description\":null,\"picUrl\":\"http://test.yudao.iocoder.cn/r6ryvl6LrxBU0miaST4Y-pIcmK-zAAId-9TGgy-DrSLhjVuWbuT3ZBjk9K1yQ0Dn.png\",\"url\":\"http://mp.weixin.qq.com/s?__biz=MzA3NjM4MzQzOQ==&mid=2247483662&idx=2&sn=c8041e2fc639c07d73bbbb6f80cf1784&chksm=9f6354aea814ddb8f48d7b330252c0374878014feb45a8fd4c22aaa0483c062f20ba15463368#rd\"}]', NULL, NULL, '1', '2023-01-15 18:23:54', '1', '2023-01-15 11:13:21', b'1', 1), (77, 1, 'wx5b23ba7a5589ecbb', '回复图文', NULL, '0', '', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:13:21', '1', '2023-01-15 11:13:36', b'1', 1), (78, 1, 'wx5b23ba7a5589ecbb', '文本', 't1', '77', 'click', NULL, NULL, NULL, NULL, 'text', '123', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:13:21', '1', '2023-01-15 11:13:36', b'1', 1), (79, 1, 'wx5b23ba7a5589ecbb', '回复图文', NULL, '0', '', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:13:36', '1', '2023-01-15 11:13:49', b'1', 1), (80, 1, 'wx5b23ba7a5589ecbb', '文本', 't1', '79', 'click', NULL, NULL, NULL, NULL, 'text', '123', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:13:36', '1', '2023-01-15 11:13:49', b'1', 1), (81, 1, 'wx5b23ba7a5589ecbb', '图片', 'pic', '79', 'click', NULL, NULL, NULL, NULL, 'image', '', 'r6ryvl6LrxBU0miaST4Y-pgFtUNLu1foMSAMkoOsrQrTZ8EtTMssBLfTtzP0dfjG', 'http://test.yudao.iocoder.cn/r6ryvl6LrxBU0miaST4Y-pgFtUNLu1foMSAMkoOsrQrTZ8EtTMssBLfTtzP0dfjG.png', '', '', NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:13:36', '1', '2023-01-15 11:13:49', b'1', 1), (82, 1, 'wx5b23ba7a5589ecbb', '回复图文', NULL, '0', '', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:13:49', '1', '2023-01-15 11:14:06', b'1', 1), (83, 1, 'wx5b23ba7a5589ecbb', '文本', 't1', '82', 'click', NULL, NULL, NULL, NULL, 'text', '123', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:13:49', '1', '2023-01-15 11:14:06', b'1', 1), (84, 1, 'wx5b23ba7a5589ecbb', '图片', 'pic', '82', 'click', NULL, NULL, NULL, NULL, 'image', '', 'r6ryvl6LrxBU0miaST4Y-pgFtUNLu1foMSAMkoOsrQrTZ8EtTMssBLfTtzP0dfjG', 'http://test.yudao.iocoder.cn/r6ryvl6LrxBU0miaST4Y-pgFtUNLu1foMSAMkoOsrQrTZ8EtTMssBLfTtzP0dfjG.png', '', '', NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:13:49', '1', '2023-01-15 11:14:06', b'1', 1), (85, 1, 'wx5b23ba7a5589ecbb', '语音', 'v3', '82', 'click', NULL, NULL, NULL, NULL, 'voice', '', 'a6kOoewXIbX57gB0kCb_G0h41eeCLWXi-DiMGrPG1iQwjuxGoAoDZCqt6J7IrUrjYwTfa9dGyTJ7qbQ-8TlNrA', 'http://test.yudao.iocoder.cn/a6kOoewXIbX57gB0kCb_G0h41eeCLWXi-DiMGrPG1iQwjuxGoAoDZCqt6J7IrUrjYwTfa9dGyTJ7qbQ-8TlNrA.mp3', '', '', NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:13:49', '1', '2023-01-15 11:14:06', b'1', 1), (86, 1, 'wx5b23ba7a5589ecbb', '回复图文', NULL, '0', '', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:14:07', '1', '2023-01-15 11:14:35', b'1', 1), (87, 1, 'wx5b23ba7a5589ecbb', '文本', 't1', '86', 'click', NULL, NULL, NULL, NULL, 'text', '123', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:14:07', '1', '2023-01-15 11:14:35', b'1', 1), (88, 1, 'wx5b23ba7a5589ecbb', '图片', 'pic', '86', 'click', NULL, NULL, NULL, NULL, 'image', '', 'r6ryvl6LrxBU0miaST4Y-pgFtUNLu1foMSAMkoOsrQrTZ8EtTMssBLfTtzP0dfjG', 'http://test.yudao.iocoder.cn/r6ryvl6LrxBU0miaST4Y-pgFtUNLu1foMSAMkoOsrQrTZ8EtTMssBLfTtzP0dfjG.png', '', '', NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:14:07', '1', '2023-01-15 11:14:35', b'1', 1), (89, 1, 'wx5b23ba7a5589ecbb', '语音', 'v3', '86', 'click', NULL, NULL, NULL, NULL, 'voice', '', 'a6kOoewXIbX57gB0kCb_G0h41eeCLWXi-DiMGrPG1iQwjuxGoAoDZCqt6J7IrUrjYwTfa9dGyTJ7qbQ-8TlNrA', 'http://test.yudao.iocoder.cn/a6kOoewXIbX57gB0kCb_G0h41eeCLWXi-DiMGrPG1iQwjuxGoAoDZCqt6J7IrUrjYwTfa9dGyTJ7qbQ-8TlNrA.mp3', '', '', NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:14:07', '1', '2023-01-15 11:14:35', b'1', 1), (90, 1, 'wx5b23ba7a5589ecbb', '子菜单名称', 'o', '86', 'click', NULL, NULL, NULL, NULL, 'video', '', 'r6ryvl6LrxBU0miaST4Y-v2-X9sD87sdZ8qoWWgu9QgP2NEjlTvDJ47KfF2xhyiU', 'http://test.yudao.iocoder.cn/r6ryvl6LrxBU0miaST4Y-v2-X9sD87sdZ8qoWWgu9QgP2NEjlTvDJ47KfF2xhyiU.mp4', '我是视频', '我真的是视频', NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:14:07', '1', '2023-01-15 11:14:35', b'1', 1), (91, 1, 'wx5b23ba7a5589ecbb', '回复图文', NULL, '0', '', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:14:35', '1', '2023-01-15 11:18:13', b'1', 1), (92, 1, 'wx5b23ba7a5589ecbb', '文本', 't1', '91', 'click', NULL, NULL, NULL, NULL, 'text', '123', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:14:35', '1', '2023-01-15 11:18:13', b'1', 1), (93, 1, 'wx5b23ba7a5589ecbb', '图片', 'pic', '91', 'click', NULL, NULL, NULL, NULL, 'image', '', 'r6ryvl6LrxBU0miaST4Y-pgFtUNLu1foMSAMkoOsrQrTZ8EtTMssBLfTtzP0dfjG', 'http://test.yudao.iocoder.cn/r6ryvl6LrxBU0miaST4Y-pgFtUNLu1foMSAMkoOsrQrTZ8EtTMssBLfTtzP0dfjG.png', '', '', NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:14:35', '1', '2023-01-15 11:18:13', b'1', 1), (94, 1, 'wx5b23ba7a5589ecbb', '语音', 'v3', '91', 'click', NULL, NULL, NULL, NULL, 'voice', '', 'a6kOoewXIbX57gB0kCb_G0h41eeCLWXi-DiMGrPG1iQwjuxGoAoDZCqt6J7IrUrjYwTfa9dGyTJ7qbQ-8TlNrA', 'http://test.yudao.iocoder.cn/a6kOoewXIbX57gB0kCb_G0h41eeCLWXi-DiMGrPG1iQwjuxGoAoDZCqt6J7IrUrjYwTfa9dGyTJ7qbQ-8TlNrA.mp3', '', '', NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:14:35', '1', '2023-01-15 11:18:13', b'1', 1), (95, 1, 'wx5b23ba7a5589ecbb', '视频', 'o', '91', 'click', NULL, NULL, NULL, NULL, 'video', '', 'r6ryvl6LrxBU0miaST4Y-v2-X9sD87sdZ8qoWWgu9QgP2NEjlTvDJ47KfF2xhyiU', 'http://test.yudao.iocoder.cn/r6ryvl6LrxBU0miaST4Y-v2-X9sD87sdZ8qoWWgu9QgP2NEjlTvDJ47KfF2xhyiU.mp4', '我是视频', '我真的是视频', NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:14:35', '1', '2023-01-15 11:18:13', b'1', 1), (96, 1, 'wx5b23ba7a5589ecbb', '图文', 'wx', '91', 'click', NULL, NULL, NULL, NULL, 'news', '', NULL, NULL, '', '', NULL, NULL, '[{\"title\":\"我是标题\",\"description\":null,\"picUrl\":\"http://test.yudao.iocoder.cn/r6ryvl6LrxBU0miaST4Y-pIcmK-zAAId-9TGgy-DrSLhjVuWbuT3ZBjk9K1yQ0Dn.png\",\"url\":\"http://mp.weixin.qq.com/s?__biz=MzA3NjM4MzQzOQ==&mid=2247483662&idx=1&sn=dadf5d7e9aa594b58666fb2013fdf215&chksm=9f6354aea814ddb8fde13b17a34acbe86987b5c3403c6bd47e1e94977f6988b62653f6ab55e6#rd\"},{\"title\":\"我是标题 2\",\"description\":null,\"picUrl\":\"http://test.yudao.iocoder.cn/r6ryvl6LrxBU0miaST4Y-pIcmK-zAAId-9TGgy-DrSLhjVuWbuT3ZBjk9K1yQ0Dn.png\",\"url\":\"http://mp.weixin.qq.com/s?__biz=MzA3NjM4MzQzOQ==&mid=2247483662&idx=2&sn=c8041e2fc639c07d73bbbb6f80cf1784&chksm=9f6354aea814ddb8f48d7b330252c0374878014feb45a8fd4c22aaa0483c062f20ba15463368#rd\"}]', NULL, NULL, '1', '2023-01-15 19:14:35', '1', '2023-01-15 11:18:13', b'1', 1), (97, 1, 'wx5b23ba7a5589ecbb', '回复图文', NULL, '0', '', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:18:14', '1', '2023-01-15 11:26:07', b'1', 1), (98, 1, 'wx5b23ba7a5589ecbb', '文本', 't1', '97', 'click', NULL, NULL, NULL, NULL, 'text', '123', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:18:14', '1', '2023-01-15 11:26:07', b'1', 1), (99, 1, 'wx5b23ba7a5589ecbb', '图片', 'pic', '97', 'click', NULL, NULL, NULL, NULL, 'image', '', 'r6ryvl6LrxBU0miaST4Y-pgFtUNLu1foMSAMkoOsrQrTZ8EtTMssBLfTtzP0dfjG', 'http://test.yudao.iocoder.cn/r6ryvl6LrxBU0miaST4Y-pgFtUNLu1foMSAMkoOsrQrTZ8EtTMssBLfTtzP0dfjG.png', '', '', NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:18:14', '1', '2023-01-15 11:26:07', b'1', 1), (100, 1, 'wx5b23ba7a5589ecbb', '语音', 'v3', '97', 'click', NULL, NULL, NULL, NULL, 'voice', '', 'a6kOoewXIbX57gB0kCb_G0h41eeCLWXi-DiMGrPG1iQwjuxGoAoDZCqt6J7IrUrjYwTfa9dGyTJ7qbQ-8TlNrA', 'http://test.yudao.iocoder.cn/a6kOoewXIbX57gB0kCb_G0h41eeCLWXi-DiMGrPG1iQwjuxGoAoDZCqt6J7IrUrjYwTfa9dGyTJ7qbQ-8TlNrA.mp3', '', '', NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:18:14', '1', '2023-01-15 11:26:07', b'1', 1), (101, 1, 'wx5b23ba7a5589ecbb', '视频', 'o', '97', 'click', NULL, NULL, NULL, NULL, 'video', '', 'r6ryvl6LrxBU0miaST4Y-v2-X9sD87sdZ8qoWWgu9QgP2NEjlTvDJ47KfF2xhyiU', 'http://test.yudao.iocoder.cn/r6ryvl6LrxBU0miaST4Y-v2-X9sD87sdZ8qoWWgu9QgP2NEjlTvDJ47KfF2xhyiU.mp4', '我是视频', '我真的是视频', NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:18:14', '1', '2023-01-15 11:26:07', b'1', 1), (102, 1, 'wx5b23ba7a5589ecbb', '图文', 'wx', '97', 'click', NULL, NULL, NULL, NULL, 'news', '', NULL, NULL, '', '', NULL, NULL, '[{\"title\":\"我是标题\",\"description\":null,\"picUrl\":\"http://test.yudao.iocoder.cn/r6ryvl6LrxBU0miaST4Y-pIcmK-zAAId-9TGgy-DrSLhjVuWbuT3ZBjk9K1yQ0Dn.png\",\"url\":\"http://mp.weixin.qq.com/s?__biz=MzA3NjM4MzQzOQ==&mid=2247483662&idx=1&sn=dadf5d7e9aa594b58666fb2013fdf215&chksm=9f6354aea814ddb8fde13b17a34acbe86987b5c3403c6bd47e1e94977f6988b62653f6ab55e6#rd\"},{\"title\":\"我是标题 2\",\"description\":null,\"picUrl\":\"http://test.yudao.iocoder.cn/r6ryvl6LrxBU0miaST4Y-pIcmK-zAAId-9TGgy-DrSLhjVuWbuT3ZBjk9K1yQ0Dn.png\",\"url\":\"http://mp.weixin.qq.com/s?__biz=MzA3NjM4MzQzOQ==&mid=2247483662&idx=2&sn=c8041e2fc639c07d73bbbb6f80cf1784&chksm=9f6354aea814ddb8f48d7b330252c0374878014feb45a8fd4c22aaa0483c062f20ba15463368#rd\"}]', NULL, NULL, '1', '2023-01-15 19:18:14', '1', '2023-01-15 11:26:07', b'1', 1), (103, 1, 'wx5b23ba7a5589ecbb', '测试', NULL, '0', '', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:18:14', '1', '2023-01-15 11:26:07', b'1', 1), (104, 1, 'wx5b23ba7a5589ecbb', '跳转网页', NULL, '103', 'view', 'https://www.iocoder.cn', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:18:14', '1', '2023-01-15 11:26:07', b'1', 1), (105, 1, 'wx5b23ba7a5589ecbb', '回复图文', NULL, '0', '', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:26:08', '1', '2023-01-15 11:33:57', b'1', 1), (106, 1, 'wx5b23ba7a5589ecbb', '文本', 't1', '105', 'click', NULL, NULL, NULL, NULL, 'text', '123', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:26:08', '1', '2023-01-15 11:33:57', b'1', 1), (107, 1, 'wx5b23ba7a5589ecbb', '图片', 'pic', '105', 'click', NULL, NULL, NULL, NULL, 'image', '', 'r6ryvl6LrxBU0miaST4Y-pgFtUNLu1foMSAMkoOsrQrTZ8EtTMssBLfTtzP0dfjG', 'http://test.yudao.iocoder.cn/r6ryvl6LrxBU0miaST4Y-pgFtUNLu1foMSAMkoOsrQrTZ8EtTMssBLfTtzP0dfjG.png', '', '', NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:26:08', '1', '2023-01-15 11:33:57', b'1', 1), (108, 1, 'wx5b23ba7a5589ecbb', '语音', 'v3', '105', 'click', NULL, NULL, NULL, NULL, 'voice', '', 'a6kOoewXIbX57gB0kCb_G0h41eeCLWXi-DiMGrPG1iQwjuxGoAoDZCqt6J7IrUrjYwTfa9dGyTJ7qbQ-8TlNrA', 'http://test.yudao.iocoder.cn/a6kOoewXIbX57gB0kCb_G0h41eeCLWXi-DiMGrPG1iQwjuxGoAoDZCqt6J7IrUrjYwTfa9dGyTJ7qbQ-8TlNrA.mp3', '', '', NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:26:08', '1', '2023-01-15 11:33:57', b'1', 1), (109, 1, 'wx5b23ba7a5589ecbb', '视频', 'o', '105', 'click', NULL, NULL, NULL, NULL, 'video', '', 'r6ryvl6LrxBU0miaST4Y-v2-X9sD87sdZ8qoWWgu9QgP2NEjlTvDJ47KfF2xhyiU', 'http://test.yudao.iocoder.cn/r6ryvl6LrxBU0miaST4Y-v2-X9sD87sdZ8qoWWgu9QgP2NEjlTvDJ47KfF2xhyiU.mp4', '我是视频', '我真的是视频', NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:26:08', '1', '2023-01-15 11:33:57', b'1', 1), (110, 1, 'wx5b23ba7a5589ecbb', '图文', 'wx', '105', 'click', NULL, NULL, NULL, NULL, 'news', '', NULL, NULL, '', '', NULL, NULL, '[{\"title\":\"我是标题\",\"description\":null,\"picUrl\":\"http://test.yudao.iocoder.cn/r6ryvl6LrxBU0miaST4Y-pIcmK-zAAId-9TGgy-DrSLhjVuWbuT3ZBjk9K1yQ0Dn.png\",\"url\":\"http://mp.weixin.qq.com/s?__biz=MzA3NjM4MzQzOQ==&mid=2247483662&idx=1&sn=dadf5d7e9aa594b58666fb2013fdf215&chksm=9f6354aea814ddb8fde13b17a34acbe86987b5c3403c6bd47e1e94977f6988b62653f6ab55e6#rd\"},{\"title\":\"我是标题 2\",\"description\":null,\"picUrl\":\"http://test.yudao.iocoder.cn/r6ryvl6LrxBU0miaST4Y-pIcmK-zAAId-9TGgy-DrSLhjVuWbuT3ZBjk9K1yQ0Dn.png\",\"url\":\"http://mp.weixin.qq.com/s?__biz=MzA3NjM4MzQzOQ==&mid=2247483662&idx=2&sn=c8041e2fc639c07d73bbbb6f80cf1784&chksm=9f6354aea814ddb8f48d7b330252c0374878014feb45a8fd4c22aaa0483c062f20ba15463368#rd\"}]', NULL, NULL, '1', '2023-01-15 19:26:08', '1', '2023-01-15 11:33:57', b'1', 1), (111, 1, 'wx5b23ba7a5589ecbb', '测试', NULL, '0', '', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:26:08', '1', '2023-01-15 11:33:57', b'1', 1), (112, 1, 'wx5b23ba7a5589ecbb', '跳转网页', NULL, '111', 'view', 'https://www.iocoder.cn', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:26:08', '1', '2023-01-15 11:33:57', b'1', 1), (113, 1, 'wx5b23ba7a5589ecbb', '扫码回复', 'test_02', '111', 'scancode_waitmsg', NULL, NULL, NULL, NULL, 'text', '123', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:26:08', '1', '2023-01-15 11:33:57', b'1', 1), (114, 1, 'wx5b23ba7a5589ecbb', '回复图文', NULL, '0', '', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:33:58', '1', '2023-01-15 11:44:54', b'1', 1), (115, 1, 'wx5b23ba7a5589ecbb', '文本', 't1', '114', 'click', NULL, NULL, NULL, NULL, 'text', '123', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:33:58', '1', '2023-01-15 11:44:54', b'1', 1), (116, 1, 'wx5b23ba7a5589ecbb', '图片', 'pic', '114', 'click', NULL, NULL, NULL, NULL, 'image', '', 'r6ryvl6LrxBU0miaST4Y-pgFtUNLu1foMSAMkoOsrQrTZ8EtTMssBLfTtzP0dfjG', 'http://test.yudao.iocoder.cn/r6ryvl6LrxBU0miaST4Y-pgFtUNLu1foMSAMkoOsrQrTZ8EtTMssBLfTtzP0dfjG.png', '', '', NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:33:58', '1', '2023-01-15 11:44:54', b'1', 1), (117, 1, 'wx5b23ba7a5589ecbb', '语音', 'v3', '114', 'click', NULL, NULL, NULL, NULL, 'voice', '', 'a6kOoewXIbX57gB0kCb_G0h41eeCLWXi-DiMGrPG1iQwjuxGoAoDZCqt6J7IrUrjYwTfa9dGyTJ7qbQ-8TlNrA', 'http://test.yudao.iocoder.cn/a6kOoewXIbX57gB0kCb_G0h41eeCLWXi-DiMGrPG1iQwjuxGoAoDZCqt6J7IrUrjYwTfa9dGyTJ7qbQ-8TlNrA.mp3', '', '', NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:33:58', '1', '2023-01-15 11:44:54', b'1', 1), (118, 1, 'wx5b23ba7a5589ecbb', '视频', 'o', '114', 'click', NULL, NULL, NULL, NULL, 'video', '', 'r6ryvl6LrxBU0miaST4Y-v2-X9sD87sdZ8qoWWgu9QgP2NEjlTvDJ47KfF2xhyiU', 'http://test.yudao.iocoder.cn/r6ryvl6LrxBU0miaST4Y-v2-X9sD87sdZ8qoWWgu9QgP2NEjlTvDJ47KfF2xhyiU.mp4', '我是视频', '我真的是视频', NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:33:58', '1', '2023-01-15 11:44:54', b'1', 1), (119, 1, 'wx5b23ba7a5589ecbb', '图文', 'wx', '114', 'click', NULL, NULL, NULL, NULL, 'news', '', NULL, NULL, '', '', NULL, NULL, '[{\"title\":\"我是标题\",\"description\":null,\"picUrl\":\"http://test.yudao.iocoder.cn/r6ryvl6LrxBU0miaST4Y-pIcmK-zAAId-9TGgy-DrSLhjVuWbuT3ZBjk9K1yQ0Dn.png\",\"url\":\"http://mp.weixin.qq.com/s?__biz=MzA3NjM4MzQzOQ==&mid=2247483662&idx=1&sn=dadf5d7e9aa594b58666fb2013fdf215&chksm=9f6354aea814ddb8fde13b17a34acbe86987b5c3403c6bd47e1e94977f6988b62653f6ab55e6#rd\"},{\"title\":\"我是标题 2\",\"description\":null,\"picUrl\":\"http://test.yudao.iocoder.cn/r6ryvl6LrxBU0miaST4Y-pIcmK-zAAId-9TGgy-DrSLhjVuWbuT3ZBjk9K1yQ0Dn.png\",\"url\":\"http://mp.weixin.qq.com/s?__biz=MzA3NjM4MzQzOQ==&mid=2247483662&idx=2&sn=c8041e2fc639c07d73bbbb6f80cf1784&chksm=9f6354aea814ddb8f48d7b330252c0374878014feb45a8fd4c22aaa0483c062f20ba15463368#rd\"}]', NULL, NULL, '1', '2023-01-15 19:33:58', '1', '2023-01-15 11:44:54', b'1', 1), (120, 1, 'wx5b23ba7a5589ecbb', '测试', NULL, '0', '', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:33:58', '1', '2023-01-15 11:44:54', b'1', 1), (121, 1, 'wx5b23ba7a5589ecbb', '跳转网页', NULL, '120', 'view', 'https://www.iocoder.cn', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:33:58', '1', '2023-01-15 11:44:54', b'1', 1), (122, 1, 'wx5b23ba7a5589ecbb', '扫码回复', 'test_02', '120', 'scancode_waitmsg', NULL, NULL, NULL, NULL, 'text', '123', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:33:58', '1', '2023-01-15 11:44:54', b'1', 1), (123, 1, 'wx5b23ba7a5589ecbb', '扫码直接回结果', '2344455', '120', 'scancode_push', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:33:58', '1', '2023-01-15 11:44:54', b'1', 1), (124, 1, 'wx5b23ba7a5589ecbb', '回复图文', NULL, '0', '', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:44:55', '1', '2023-01-15 11:52:04', b'1', 1), (125, 1, 'wx5b23ba7a5589ecbb', '文本', 't1', '124', 'click', NULL, NULL, NULL, NULL, 'text', '123', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:44:55', '1', '2023-01-15 11:52:04', b'1', 1), (126, 1, 'wx5b23ba7a5589ecbb', '图片', 'pic', '124', 'click', NULL, NULL, NULL, NULL, 'image', '', 'r6ryvl6LrxBU0miaST4Y-pgFtUNLu1foMSAMkoOsrQrTZ8EtTMssBLfTtzP0dfjG', 'http://test.yudao.iocoder.cn/r6ryvl6LrxBU0miaST4Y-pgFtUNLu1foMSAMkoOsrQrTZ8EtTMssBLfTtzP0dfjG.png', '', '', NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:44:55', '1', '2023-01-15 11:52:04', b'1', 1), (127, 1, 'wx5b23ba7a5589ecbb', '语音', 'v3', '124', 'click', NULL, NULL, NULL, NULL, 'voice', '', 'a6kOoewXIbX57gB0kCb_G0h41eeCLWXi-DiMGrPG1iQwjuxGoAoDZCqt6J7IrUrjYwTfa9dGyTJ7qbQ-8TlNrA', 'http://test.yudao.iocoder.cn/a6kOoewXIbX57gB0kCb_G0h41eeCLWXi-DiMGrPG1iQwjuxGoAoDZCqt6J7IrUrjYwTfa9dGyTJ7qbQ-8TlNrA.mp3', '', '', NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:44:55', '1', '2023-01-15 11:52:04', b'1', 1), (128, 1, 'wx5b23ba7a5589ecbb', '视频', 'o', '124', 'click', NULL, NULL, NULL, NULL, 'video', '', 'r6ryvl6LrxBU0miaST4Y-v2-X9sD87sdZ8qoWWgu9QgP2NEjlTvDJ47KfF2xhyiU', 'http://test.yudao.iocoder.cn/r6ryvl6LrxBU0miaST4Y-v2-X9sD87sdZ8qoWWgu9QgP2NEjlTvDJ47KfF2xhyiU.mp4', '我是视频', '我真的是视频', NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:44:55', '1', '2023-01-15 11:52:04', b'1', 1), (129, 1, 'wx5b23ba7a5589ecbb', '图文', 'wx', '124', 'click', NULL, NULL, NULL, NULL, 'news', '', NULL, NULL, '', '', NULL, NULL, '[{\"title\":\"我是标题\",\"description\":null,\"picUrl\":\"http://test.yudao.iocoder.cn/r6ryvl6LrxBU0miaST4Y-pIcmK-zAAId-9TGgy-DrSLhjVuWbuT3ZBjk9K1yQ0Dn.png\",\"url\":\"http://mp.weixin.qq.com/s?__biz=MzA3NjM4MzQzOQ==&mid=2247483662&idx=1&sn=dadf5d7e9aa594b58666fb2013fdf215&chksm=9f6354aea814ddb8fde13b17a34acbe86987b5c3403c6bd47e1e94977f6988b62653f6ab55e6#rd\"},{\"title\":\"我是标题 2\",\"description\":null,\"picUrl\":\"http://test.yudao.iocoder.cn/r6ryvl6LrxBU0miaST4Y-pIcmK-zAAId-9TGgy-DrSLhjVuWbuT3ZBjk9K1yQ0Dn.png\",\"url\":\"http://mp.weixin.qq.com/s?__biz=MzA3NjM4MzQzOQ==&mid=2247483662&idx=2&sn=c8041e2fc639c07d73bbbb6f80cf1784&chksm=9f6354aea814ddb8f48d7b330252c0374878014feb45a8fd4c22aaa0483c062f20ba15463368#rd\"}]', NULL, NULL, '1', '2023-01-15 19:44:55', '1', '2023-01-15 11:52:04', b'1', 1), (130, 1, 'wx5b23ba7a5589ecbb', '测试', NULL, '0', '', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:44:55', '1', '2023-01-15 11:52:04', b'1', 1), (131, 1, 'wx5b23ba7a5589ecbb', '跳转网页', NULL, '130', 'view', 'https://www.iocoder.cn', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:44:55', '1', '2023-01-15 11:52:04', b'1', 1), (132, 1, 'wx5b23ba7a5589ecbb', '扫码回复', 'test_02', '130', 'scancode_waitmsg', NULL, NULL, NULL, NULL, 'text', '123', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:44:55', '1', '2023-01-15 11:52:04', b'1', 1), (133, 1, 'wx5b23ba7a5589ecbb', '扫码直接回结果', '2344455', '130', 'scancode_push', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:44:55', '1', '2023-01-15 11:52:04', b'1', 1), (134, 1, 'wx5b23ba7a5589ecbb', '系统拍照', '0x0', '130', 'pic_sysphoto', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:44:55', '1', '2023-01-15 11:52:04', b'1', 1), (135, 1, 'wx5b23ba7a5589ecbb', '拍照或相册', '0x3', '130', 'pic_photo_or_album', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:44:55', '1', '2023-01-15 11:52:04', b'1', 1), (136, 1, 'wx5b23ba7a5589ecbb', '测试2', NULL, '0', '', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:44:55', '1', '2023-01-15 11:52:04', b'1', 1), (137, 1, 'wx5b23ba7a5589ecbb', '微信相册', 'ppp2222', '136', 'pic_weixin', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:44:55', '1', '2023-01-15 11:52:04', b'1', 1), (138, 1, 'wx5b23ba7a5589ecbb', '回复图文', NULL, '0', '', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:52:04', '1', '2023-01-15 13:20:22', b'1', 1), (139, 1, 'wx5b23ba7a5589ecbb', '文本', 't1', '138', 'click', NULL, NULL, NULL, NULL, 'text', '123', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:52:04', '1', '2023-01-15 13:20:22', b'1', 1), (140, 1, 'wx5b23ba7a5589ecbb', '图片', 'pic', '138', 'click', NULL, NULL, NULL, NULL, 'image', '', 'r6ryvl6LrxBU0miaST4Y-pgFtUNLu1foMSAMkoOsrQrTZ8EtTMssBLfTtzP0dfjG', 'http://test.yudao.iocoder.cn/r6ryvl6LrxBU0miaST4Y-pgFtUNLu1foMSAMkoOsrQrTZ8EtTMssBLfTtzP0dfjG.png', '', '', NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:52:04', '1', '2023-01-15 13:20:22', b'1', 1), (141, 1, 'wx5b23ba7a5589ecbb', '语音', 'v3', '138', 'click', NULL, NULL, NULL, NULL, 'voice', '', 'a6kOoewXIbX57gB0kCb_G0h41eeCLWXi-DiMGrPG1iQwjuxGoAoDZCqt6J7IrUrjYwTfa9dGyTJ7qbQ-8TlNrA', 'http://test.yudao.iocoder.cn/a6kOoewXIbX57gB0kCb_G0h41eeCLWXi-DiMGrPG1iQwjuxGoAoDZCqt6J7IrUrjYwTfa9dGyTJ7qbQ-8TlNrA.mp3', '', '', NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:52:04', '1', '2023-01-15 13:20:22', b'1', 1), (142, 1, 'wx5b23ba7a5589ecbb', '视频', 'o', '138', 'click', NULL, NULL, NULL, NULL, 'video', '', 'r6ryvl6LrxBU0miaST4Y-v2-X9sD87sdZ8qoWWgu9QgP2NEjlTvDJ47KfF2xhyiU', 'http://test.yudao.iocoder.cn/r6ryvl6LrxBU0miaST4Y-v2-X9sD87sdZ8qoWWgu9QgP2NEjlTvDJ47KfF2xhyiU.mp4', '我是视频', '我真的是视频', NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:52:04', '1', '2023-01-15 13:20:22', b'1', 1), (143, 1, 'wx5b23ba7a5589ecbb', '图文', 'wx', '138', 'click', NULL, NULL, NULL, NULL, 'news', '', NULL, NULL, '', '', NULL, NULL, '[{\"title\":\"我是标题\",\"description\":null,\"picUrl\":\"http://test.yudao.iocoder.cn/r6ryvl6LrxBU0miaST4Y-pIcmK-zAAId-9TGgy-DrSLhjVuWbuT3ZBjk9K1yQ0Dn.png\",\"url\":\"http://mp.weixin.qq.com/s?__biz=MzA3NjM4MzQzOQ==&mid=2247483662&idx=1&sn=dadf5d7e9aa594b58666fb2013fdf215&chksm=9f6354aea814ddb8fde13b17a34acbe86987b5c3403c6bd47e1e94977f6988b62653f6ab55e6#rd\"},{\"title\":\"我是标题 2\",\"description\":null,\"picUrl\":\"http://test.yudao.iocoder.cn/r6ryvl6LrxBU0miaST4Y-pIcmK-zAAId-9TGgy-DrSLhjVuWbuT3ZBjk9K1yQ0Dn.png\",\"url\":\"http://mp.weixin.qq.com/s?__biz=MzA3NjM4MzQzOQ==&mid=2247483662&idx=2&sn=c8041e2fc639c07d73bbbb6f80cf1784&chksm=9f6354aea814ddb8f48d7b330252c0374878014feb45a8fd4c22aaa0483c062f20ba15463368#rd\"}]', NULL, NULL, '1', '2023-01-15 19:52:04', '1', '2023-01-15 13:20:22', b'1', 1), (144, 1, 'wx5b23ba7a5589ecbb', '测试', NULL, '0', '', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:52:04', '1', '2023-01-15 13:20:22', b'1', 1), (145, 1, 'wx5b23ba7a5589ecbb', '跳转网页', NULL, '144', 'view', 'https://www.iocoder.cn', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:52:04', '1', '2023-01-15 13:20:22', b'1', 1), (146, 1, 'wx5b23ba7a5589ecbb', '扫码回复', 'test_02', '144', 'scancode_waitmsg', NULL, NULL, NULL, NULL, 'text', '123', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:52:04', '1', '2023-01-15 13:20:22', b'1', 1), (147, 1, 'wx5b23ba7a5589ecbb', '扫码直接回结果', '2344455', '144', 'scancode_push', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:52:04', '1', '2023-01-15 13:20:22', b'1', 1), (148, 1, 'wx5b23ba7a5589ecbb', '系统拍照', '0x0', '144', 'pic_sysphoto', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:52:04', '1', '2023-01-15 13:20:22', b'1', 1), (149, 1, 'wx5b23ba7a5589ecbb', '拍照或相册', '0x3', '144', 'pic_photo_or_album', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:52:04', '1', '2023-01-15 13:20:22', b'1', 1), (150, 1, 'wx5b23ba7a5589ecbb', '测试2', NULL, '0', '', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:52:04', '1', '2023-01-15 13:20:22', b'1', 1), (151, 1, 'wx5b23ba7a5589ecbb', '微信相册', 'ppp2222', '150', 'pic_weixin', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:52:04', '1', '2023-01-15 13:20:22', b'1', 1), (152, 1, 'wx5b23ba7a5589ecbb', '选择地理位置', 'lll2', '150', 'location_select', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '2023-01-15 19:52:04', '1', '2023-01-15 13:20:22', b'1', 1); | ||
| 163 | +COMMIT; | ||
| 164 | + | ||
| 165 | +-- ---------------------------- | ||
| 166 | +-- Table structure for mp_message | ||
| 167 | +-- ---------------------------- | ||
| 168 | +DROP TABLE IF EXISTS `mp_message`; | ||
| 169 | +CREATE TABLE `mp_message` ( | ||
| 170 | + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键', | ||
| 171 | + `msg_id` bigint NULL DEFAULT NULL COMMENT '微信公众号的消息编号', | ||
| 172 | + `account_id` bigint NOT NULL COMMENT '公众号账号的编号', | ||
| 173 | + `app_id` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '公众号 appId', | ||
| 174 | + `user_id` bigint NOT NULL COMMENT '公众号粉丝的编号', | ||
| 175 | + `openid` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '公众号粉丝标志', | ||
| 176 | + `type` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '消息类型', | ||
| 177 | + `send_from` tinyint NOT NULL COMMENT '消息来源', | ||
| 178 | + `content` varchar(1024) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '消息内容', | ||
| 179 | + `media_id` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '媒体文件 id', | ||
| 180 | + `media_url` varchar(1024) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '媒体文件 URL', | ||
| 181 | + `recognition` varchar(1024) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '语音识别后文本', | ||
| 182 | + `format` varchar(16) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '语音格式', | ||
| 183 | + `title` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '标题', | ||
| 184 | + `description` varchar(256) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '描述', | ||
| 185 | + `thumb_media_id` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '缩略图的媒体 id', | ||
| 186 | + `thumb_media_url` varchar(1024) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '缩略图的媒体 URL', | ||
| 187 | + `url` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '点击图文消息跳转链接', | ||
| 188 | + `location_x` double NULL DEFAULT NULL COMMENT '地理位置维度', | ||
| 189 | + `location_y` double NULL DEFAULT NULL COMMENT '地理位置经度', | ||
| 190 | + `scale` double NULL DEFAULT NULL COMMENT '地图缩放大小', | ||
| 191 | + `label` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '详细地址', | ||
| 192 | + `articles` varchar(1024) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '图文消息数组', | ||
| 193 | + `music_url` varchar(1024) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '音乐链接', | ||
| 194 | + `hq_music_url` varchar(1024) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '高质量音乐链接', | ||
| 195 | + `event` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '事件类型', | ||
| 196 | + `event_key` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '事件 Key', | ||
| 197 | + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '创建者', | ||
| 198 | + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', | ||
| 199 | + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者', | ||
| 200 | + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', | ||
| 201 | + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', | ||
| 202 | + `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', | ||
| 203 | + PRIMARY KEY (`id`) USING BTREE | ||
| 204 | +) ENGINE = InnoDB AUTO_INCREMENT = 407 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '公众号消息表 '; | ||
| 205 | + | ||
| 206 | +-- ---------------------------- | ||
| 207 | +-- Records of mp_message | ||
| 208 | +-- ---------------------------- | ||
| 209 | +BEGIN; | ||
| 210 | +COMMIT; | ||
| 211 | + | ||
| 212 | +-- ---------------------------- | ||
| 213 | +-- Table structure for mp_tag | ||
| 214 | +-- ---------------------------- | ||
| 215 | +DROP TABLE IF EXISTS `mp_tag`; | ||
| 216 | +CREATE TABLE `mp_tag` ( | ||
| 217 | + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键', | ||
| 218 | + `tag_id` bigint NULL DEFAULT NULL COMMENT '公众号标签 id', | ||
| 219 | + `name` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '标签名称', | ||
| 220 | + `count` int NULL DEFAULT 0 COMMENT '粉丝数量', | ||
| 221 | + `account_id` bigint NOT NULL COMMENT '公众号账号的编号', | ||
| 222 | + `app_id` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '公众号 appId', | ||
| 223 | + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '创建者', | ||
| 224 | + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', | ||
| 225 | + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者', | ||
| 226 | + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', | ||
| 227 | + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', | ||
| 228 | + `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', | ||
| 229 | + PRIMARY KEY (`id`) USING BTREE | ||
| 230 | +) ENGINE = InnoDB AUTO_INCREMENT = 10 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '公众号标签表'; | ||
| 231 | + | ||
| 232 | +-- ---------------------------- | ||
| 233 | +-- Records of mp_tag | ||
| 234 | +-- ---------------------------- | ||
| 235 | +BEGIN; | ||
| 236 | +INSERT INTO `mp_tag` (`id`, `tag_id`, `name`, `count`, `account_id`, `app_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (3, 100, '测试标签啦', 0, 1, 'wx5b23ba7a5589ecbb', '1', '2023-01-01 20:33:28', '1', '2023-01-08 03:23:53', b'1', 1), (4, 101, '测试', 0, 1, 'wx5b23ba7a5589ecbb', '1', '2023-01-01 20:33:28', '1', '2023-01-08 03:21:00', b'1', 1), (7, 102, '搞起来', 0, 1, 'wx5b23ba7a5589ecbb', '1', '2023-01-01 20:33:28', '1', '2023-01-08 04:03:00', b'1', 1); | ||
| 237 | +COMMIT; | ||
| 238 | + | ||
| 239 | +-- ---------------------------- | ||
| 240 | +-- Table structure for mp_user | ||
| 241 | +-- ---------------------------- | ||
| 242 | +DROP TABLE IF EXISTS `mp_user`; | ||
| 243 | +CREATE TABLE `mp_user` ( | ||
| 244 | + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号', | ||
| 245 | + `openid` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '用户标识', | ||
| 246 | + `subscribe_status` tinyint NOT NULL COMMENT '关注状态', | ||
| 247 | + `subscribe_time` datetime NOT NULL COMMENT '关注时间', | ||
| 248 | + `nickname` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '昵称', | ||
| 249 | + `head_image_url` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '头像地址', | ||
| 250 | + `unsubscribe_time` datetime NULL DEFAULT NULL COMMENT '取消关注时间', | ||
| 251 | + `language` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '语言', | ||
| 252 | + `country` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '国家', | ||
| 253 | + `province` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '省份', | ||
| 254 | + `city` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '城市', | ||
| 255 | + `remark` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '备注', | ||
| 256 | + `tag_ids` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '标签编号数组', | ||
| 257 | + `account_id` bigint NOT NULL COMMENT '微信公众号ID', | ||
| 258 | + `app_id` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '微信公众号 appid', | ||
| 259 | + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '创建者', | ||
| 260 | + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', | ||
| 261 | + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者', | ||
| 262 | + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', | ||
| 263 | + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', | ||
| 264 | + `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', | ||
| 265 | + PRIMARY KEY (`id`) USING BTREE | ||
| 266 | +) ENGINE = InnoDB AUTO_INCREMENT = 6 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '公众号粉丝表'; | ||
| 267 | + | ||
| 268 | +-- ---------------------------- | ||
| 269 | +-- Records of mp_user | ||
| 270 | +-- ---------------------------- | ||
| 271 | +BEGIN; | ||
| 272 | +COMMIT; | ||
| 273 | + | ||
| 274 | +SET FOREIGN_KEY_CHECKS = 1; |
sql/mysql/ruoyi-vue-pro.sql
| @@ -11,7 +11,7 @@ | @@ -11,7 +11,7 @@ | ||
| 11 | Target Server Version : 80026 | 11 | Target Server Version : 80026 |
| 12 | File Encoding : 65001 | 12 | File Encoding : 65001 |
| 13 | 13 | ||
| 14 | - Date: 20/12/2022 00:33:25 | 14 | + Date: 17/01/2023 23:47:35 |
| 15 | */ | 15 | */ |
| 16 | 16 | ||
| 17 | SET NAMES utf8mb4; | 17 | SET NAMES utf8mb4; |
| @@ -185,7 +185,7 @@ CREATE TABLE `QRTZ_SCHEDULER_STATE` ( | @@ -185,7 +185,7 @@ CREATE TABLE `QRTZ_SCHEDULER_STATE` ( | ||
| 185 | -- Records of QRTZ_SCHEDULER_STATE | 185 | -- Records of QRTZ_SCHEDULER_STATE |
| 186 | -- ---------------------------- | 186 | -- ---------------------------- |
| 187 | BEGIN; | 187 | BEGIN; |
| 188 | -INSERT INTO `QRTZ_SCHEDULER_STATE` (`SCHED_NAME`, `INSTANCE_NAME`, `LAST_CHECKIN_TIME`, `CHECKIN_INTERVAL`) VALUES ('schedulerName', 'Yunai.local1635571630493', 1635572537879, 15000); | 188 | +INSERT INTO `QRTZ_SCHEDULER_STATE` (`SCHED_NAME`, `INSTANCE_NAME`, `LAST_CHECKIN_TIME`, `CHECKIN_INTERVAL`) VALUES ('schedulerName', 'Yunai.local1672315990077', 1672316007352, 15000); |
| 189 | COMMIT; | 189 | COMMIT; |
| 190 | 190 | ||
| 191 | -- ---------------------------- | 191 | -- ---------------------------- |
| @@ -279,7 +279,7 @@ CREATE TABLE `QRTZ_TRIGGERS` ( | @@ -279,7 +279,7 @@ CREATE TABLE `QRTZ_TRIGGERS` ( | ||
| 279 | -- Records of QRTZ_TRIGGERS | 279 | -- Records of QRTZ_TRIGGERS |
| 280 | -- ---------------------------- | 280 | -- ---------------------------- |
| 281 | BEGIN; | 281 | BEGIN; |
| 282 | -INSERT INTO `QRTZ_TRIGGERS` (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`, `JOB_NAME`, `JOB_GROUP`, `DESCRIPTION`, `NEXT_FIRE_TIME`, `PREV_FIRE_TIME`, `PRIORITY`, `TRIGGER_STATE`, `TRIGGER_TYPE`, `START_TIME`, `END_TIME`, `CALENDAR_NAME`, `MISFIRE_INSTR`, `JOB_DATA`) VALUES ('schedulerName', 'payNotifyJob', 'DEFAULT', 'payNotifyJob', 'DEFAULT', NULL, 1635572540000, 1635572539000, 5, 'WAITING', 'CRON', 1635294882000, 0, NULL, 0, 0xACED0005737200156F72672E71756172747A2E4A6F62446174614D61709FB083E8BFA9B0CB020000787200266F72672E71756172747A2E7574696C732E537472696E674B65794469727479466C61674D61708208E8C3FBC55D280200015A0013616C6C6F77735472616E7369656E74446174617872001D6F72672E71756172747A2E7574696C732E4469727479466C61674D617013E62EAD28760ACE0200025A000564697274794C00036D617074000F4C6A6176612F7574696C2F4D61703B787001737200116A6176612E7574696C2E486173684D61700507DAC1C31660D103000246000A6C6F6164466163746F724900097468726573686F6C6478703F4000000000000C770800000010000000037400114A4F425F48414E444C45525F504152414D707400124A4F425F52455452595F494E54455256414C737200116A6176612E6C616E672E496E746567657212E2A0A4F781873802000149000576616C7565787200106A6176612E6C616E672E4E756D62657286AC951D0B94E08B02000078700000000074000F4A4F425F52455452595F434F554E5471007E000B7800); | 282 | +INSERT INTO `QRTZ_TRIGGERS` (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`, `JOB_NAME`, `JOB_GROUP`, `DESCRIPTION`, `NEXT_FIRE_TIME`, `PREV_FIRE_TIME`, `PRIORITY`, `TRIGGER_STATE`, `TRIGGER_TYPE`, `START_TIME`, `END_TIME`, `CALENDAR_NAME`, `MISFIRE_INSTR`, `JOB_DATA`) VALUES ('schedulerName', 'payNotifyJob', 'DEFAULT', 'payNotifyJob', 'DEFAULT', NULL, 1672316013000, 1672316012000, 5, 'WAITING', 'CRON', 1635294882000, 0, NULL, 0, 0xACED0005737200156F72672E71756172747A2E4A6F62446174614D61709FB083E8BFA9B0CB020000787200266F72672E71756172747A2E7574696C732E537472696E674B65794469727479466C61674D61708208E8C3FBC55D280200015A0013616C6C6F77735472616E7369656E74446174617872001D6F72672E71756172747A2E7574696C732E4469727479466C61674D617013E62EAD28760ACE0200025A000564697274794C00036D617074000F4C6A6176612F7574696C2F4D61703B787001737200116A6176612E7574696C2E486173684D61700507DAC1C31660D103000246000A6C6F6164466163746F724900097468726573686F6C6478703F4000000000000C770800000010000000037400114A4F425F48414E444C45525F504152414D707400124A4F425F52455452595F494E54455256414C737200116A6176612E6C616E672E496E746567657212E2A0A4F781873802000149000576616C7565787200106A6176612E6C616E672E4E756D62657286AC951D0B94E08B02000078700000000074000F4A4F425F52455452595F434F554E5471007E000B7800); |
| 283 | COMMIT; | 283 | COMMIT; |
| 284 | 284 | ||
| 285 | -- ---------------------------- | 285 | -- ---------------------------- |
| @@ -300,7 +300,7 @@ CREATE TABLE `bpm_form` ( | @@ -300,7 +300,7 @@ CREATE TABLE `bpm_form` ( | ||
| 300 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', | 300 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', |
| 301 | `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', | 301 | `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', |
| 302 | PRIMARY KEY (`id`) USING BTREE | 302 | PRIMARY KEY (`id`) USING BTREE |
| 303 | -) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '工作流的表单定义'; | 303 | +) ENGINE = InnoDB AUTO_INCREMENT = 20 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '工作流的表单定义'; |
| 304 | 304 | ||
| 305 | -- ---------------------------- | 305 | -- ---------------------------- |
| 306 | -- Records of bpm_form | 306 | -- Records of bpm_form |
| @@ -329,7 +329,7 @@ CREATE TABLE `bpm_oa_leave` ( | @@ -329,7 +329,7 @@ CREATE TABLE `bpm_oa_leave` ( | ||
| 329 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', | 329 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', |
| 330 | `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', | 330 | `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', |
| 331 | PRIMARY KEY (`id`) USING BTREE | 331 | PRIMARY KEY (`id`) USING BTREE |
| 332 | -) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = 'OA 请假申请表'; | 332 | +) ENGINE = InnoDB AUTO_INCREMENT = 33 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = 'OA 请假申请表'; |
| 333 | 333 | ||
| 334 | -- ---------------------------- | 334 | -- ---------------------------- |
| 335 | -- Records of bpm_oa_leave | 335 | -- Records of bpm_oa_leave |
| @@ -359,7 +359,7 @@ CREATE TABLE `bpm_process_definition_ext` ( | @@ -359,7 +359,7 @@ CREATE TABLE `bpm_process_definition_ext` ( | ||
| 359 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', | 359 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', |
| 360 | `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', | 360 | `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', |
| 361 | PRIMARY KEY (`id`) USING BTREE | 361 | PRIMARY KEY (`id`) USING BTREE |
| 362 | -) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = 'Bpm 流程定义的拓展表\n'; | 362 | +) ENGINE = InnoDB AUTO_INCREMENT = 135 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = 'Bpm 流程定义的拓展表\n'; |
| 363 | 363 | ||
| 364 | -- ---------------------------- | 364 | -- ---------------------------- |
| 365 | -- Records of bpm_process_definition_ext | 365 | -- Records of bpm_process_definition_ext |
| @@ -389,7 +389,7 @@ CREATE TABLE `bpm_process_instance_ext` ( | @@ -389,7 +389,7 @@ CREATE TABLE `bpm_process_instance_ext` ( | ||
| 389 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', | 389 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', |
| 390 | `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', | 390 | `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', |
| 391 | PRIMARY KEY (`id`) USING BTREE | 391 | PRIMARY KEY (`id`) USING BTREE |
| 392 | -) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '工作流的流程实例的拓展'; | 392 | +) ENGINE = InnoDB AUTO_INCREMENT = 290 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '工作流的流程实例的拓展'; |
| 393 | 393 | ||
| 394 | -- ---------------------------- | 394 | -- ---------------------------- |
| 395 | -- Records of bpm_process_instance_ext | 395 | -- Records of bpm_process_instance_ext |
| @@ -415,7 +415,7 @@ CREATE TABLE `bpm_task_assign_rule` ( | @@ -415,7 +415,7 @@ CREATE TABLE `bpm_task_assign_rule` ( | ||
| 415 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', | 415 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', |
| 416 | `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', | 416 | `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', |
| 417 | PRIMARY KEY (`id`) USING BTREE | 417 | PRIMARY KEY (`id`) USING BTREE |
| 418 | -) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = 'Bpm 任务规则表'; | 418 | +) ENGINE = InnoDB AUTO_INCREMENT = 265 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = 'Bpm 任务规则表'; |
| 419 | 419 | ||
| 420 | -- ---------------------------- | 420 | -- ---------------------------- |
| 421 | -- Records of bpm_task_assign_rule | 421 | -- Records of bpm_task_assign_rule |
| @@ -444,7 +444,7 @@ CREATE TABLE `bpm_task_ext` ( | @@ -444,7 +444,7 @@ CREATE TABLE `bpm_task_ext` ( | ||
| 444 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', | 444 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', |
| 445 | `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', | 445 | `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', |
| 446 | PRIMARY KEY (`id`) USING BTREE | 446 | PRIMARY KEY (`id`) USING BTREE |
| 447 | -) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '工作流的流程任务的拓展表'; | 447 | +) ENGINE = InnoDB AUTO_INCREMENT = 341 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '工作流的流程任务的拓展表'; |
| 448 | 448 | ||
| 449 | -- ---------------------------- | 449 | -- ---------------------------- |
| 450 | -- Records of bpm_task_ext | 450 | -- Records of bpm_task_ext |
| @@ -469,7 +469,7 @@ CREATE TABLE `bpm_user_group` ( | @@ -469,7 +469,7 @@ CREATE TABLE `bpm_user_group` ( | ||
| 469 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', | 469 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', |
| 470 | `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', | 470 | `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', |
| 471 | PRIMARY KEY (`id`) USING BTREE | 471 | PRIMARY KEY (`id`) USING BTREE |
| 472 | -) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '用户组'; | 472 | +) ENGINE = InnoDB AUTO_INCREMENT = 111 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '用户组'; |
| 473 | 473 | ||
| 474 | -- ---------------------------- | 474 | -- ---------------------------- |
| 475 | -- Records of bpm_user_group | 475 | -- Records of bpm_user_group |
| @@ -504,7 +504,7 @@ CREATE TABLE `infra_api_access_log` ( | @@ -504,7 +504,7 @@ CREATE TABLE `infra_api_access_log` ( | ||
| 504 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', | 504 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', |
| 505 | `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', | 505 | `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', |
| 506 | PRIMARY KEY (`id`) USING BTREE | 506 | PRIMARY KEY (`id`) USING BTREE |
| 507 | -) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = 'API 访问日志表'; | 507 | +) ENGINE = InnoDB AUTO_INCREMENT = 35832 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = 'API 访问日志表'; |
| 508 | 508 | ||
| 509 | -- ---------------------------- | 509 | -- ---------------------------- |
| 510 | -- Records of infra_api_access_log | 510 | -- Records of infra_api_access_log |
| @@ -546,7 +546,7 @@ CREATE TABLE `infra_api_error_log` ( | @@ -546,7 +546,7 @@ CREATE TABLE `infra_api_error_log` ( | ||
| 546 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', | 546 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', |
| 547 | `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', | 547 | `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', |
| 548 | PRIMARY KEY (`id`) USING BTREE | 548 | PRIMARY KEY (`id`) USING BTREE |
| 549 | -) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '系统异常日志'; | 549 | +) ENGINE = InnoDB AUTO_INCREMENT = 931 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '系统异常日志'; |
| 550 | 550 | ||
| 551 | -- ---------------------------- | 551 | -- ---------------------------- |
| 552 | -- Records of infra_api_error_log | 552 | -- Records of infra_api_error_log |
| @@ -584,7 +584,7 @@ CREATE TABLE `infra_codegen_column` ( | @@ -584,7 +584,7 @@ CREATE TABLE `infra_codegen_column` ( | ||
| 584 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', | 584 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', |
| 585 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', | 585 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', |
| 586 | PRIMARY KEY (`id`) USING BTREE | 586 | PRIMARY KEY (`id`) USING BTREE |
| 587 | -) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '代码生成表字段定义'; | 587 | +) ENGINE = InnoDB AUTO_INCREMENT = 1533 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '代码生成表字段定义'; |
| 588 | 588 | ||
| 589 | -- ---------------------------- | 589 | -- ---------------------------- |
| 590 | -- Records of infra_codegen_column | 590 | -- Records of infra_codegen_column |
| @@ -616,7 +616,7 @@ CREATE TABLE `infra_codegen_table` ( | @@ -616,7 +616,7 @@ CREATE TABLE `infra_codegen_table` ( | ||
| 616 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', | 616 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', |
| 617 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', | 617 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', |
| 618 | PRIMARY KEY (`id`) USING BTREE | 618 | PRIMARY KEY (`id`) USING BTREE |
| 619 | -) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '代码生成表定义'; | 619 | +) ENGINE = InnoDB AUTO_INCREMENT = 119 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '代码生成表定义'; |
| 620 | 620 | ||
| 621 | -- ---------------------------- | 621 | -- ---------------------------- |
| 622 | -- Records of infra_codegen_table | 622 | -- Records of infra_codegen_table |
| @@ -643,7 +643,7 @@ CREATE TABLE `infra_config` ( | @@ -643,7 +643,7 @@ CREATE TABLE `infra_config` ( | ||
| 643 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', | 643 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', |
| 644 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', | 644 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', |
| 645 | PRIMARY KEY (`id`) USING BTREE | 645 | PRIMARY KEY (`id`) USING BTREE |
| 646 | -) ENGINE = InnoDB AUTO_INCREMENT = 8 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '参数配置表'; | 646 | +) ENGINE = InnoDB AUTO_INCREMENT = 7 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '参数配置表'; |
| 647 | 647 | ||
| 648 | -- ---------------------------- | 648 | -- ---------------------------- |
| 649 | -- Records of infra_config | 649 | -- Records of infra_config |
| @@ -654,7 +654,7 @@ INSERT INTO `infra_config` (`id`, `category`, `type`, `name`, `config_key`, `val | @@ -654,7 +654,7 @@ INSERT INTO `infra_config` (`id`, `category`, `type`, `name`, `config_key`, `val | ||
| 654 | INSERT INTO `infra_config` (`id`, `category`, `type`, `name`, `config_key`, `value`, `visible`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (3, 'ui', 1, '主框架页-侧边栏主题', 'sys.index.sideTheme', 'theme-dark', b'0', '深色主题theme-dark,浅色主题theme-light', 'admin', '2021-01-05 17:03:48', '', '2021-01-19 03:05:21', b'0'); | 654 | INSERT INTO `infra_config` (`id`, `category`, `type`, `name`, `config_key`, `value`, `visible`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (3, 'ui', 1, '主框架页-侧边栏主题', 'sys.index.sideTheme', 'theme-dark', b'0', '深色主题theme-dark,浅色主题theme-light', 'admin', '2021-01-05 17:03:48', '', '2021-01-19 03:05:21', b'0'); |
| 655 | INSERT INTO `infra_config` (`id`, `category`, `type`, `name`, `config_key`, `value`, `visible`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (4, '1', 2, 'xxx', 'demo.test', '10', b'0', '5', '', '2021-01-19 03:10:26', '', '2021-01-20 09:25:55', b'0'); | 655 | INSERT INTO `infra_config` (`id`, `category`, `type`, `name`, `config_key`, `value`, `visible`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (4, '1', 2, 'xxx', 'demo.test', '10', b'0', '5', '', '2021-01-19 03:10:26', '', '2021-01-20 09:25:55', b'0'); |
| 656 | INSERT INTO `infra_config` (`id`, `category`, `type`, `name`, `config_key`, `value`, `visible`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (5, 'xxx', 2, 'xxx', 'xxx', 'xxx', b'1', 'xxx', '', '2021-02-09 20:06:47', '', '2021-02-09 20:06:47', b'0'); | 656 | INSERT INTO `infra_config` (`id`, `category`, `type`, `name`, `config_key`, `value`, `visible`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (5, 'xxx', 2, 'xxx', 'xxx', 'xxx', b'1', 'xxx', '', '2021-02-09 20:06:47', '', '2021-02-09 20:06:47', b'0'); |
| 657 | -INSERT INTO `infra_config` (`id`, `category`, `type`, `name`, `config_key`, `value`, `visible`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (6, 'biz', 2, '登陆验证码的开关', 'yudao.captcha.enable', 'true', b'1', NULL, '1', '2022-02-17 00:03:11', '1', '2022-04-04 12:51:40', b'0'); | 657 | +INSERT INTO `infra_config` (`id`, `category`, `type`, `name`, `config_key`, `value`, `visible`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (6, 'biz', 2, '登陆验证码的开关', 'yudao.captcha.enable', 'false', b'1', NULL, '1', '2022-02-17 00:03:11', '1', '2022-09-04 04:23:35', b'0'); |
| 658 | COMMIT; | 658 | COMMIT; |
| 659 | 659 | ||
| 660 | -- ---------------------------- | 660 | -- ---------------------------- |
| @@ -673,7 +673,7 @@ CREATE TABLE `infra_data_source_config` ( | @@ -673,7 +673,7 @@ CREATE TABLE `infra_data_source_config` ( | ||
| 673 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', | 673 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', |
| 674 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', | 674 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', |
| 675 | PRIMARY KEY (`id`) USING BTREE | 675 | PRIMARY KEY (`id`) USING BTREE |
| 676 | -) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '数据源配置表'; | 676 | +) ENGINE = InnoDB AUTO_INCREMENT = 12 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '数据源配置表'; |
| 677 | 677 | ||
| 678 | -- ---------------------------- | 678 | -- ---------------------------- |
| 679 | -- Records of infra_data_source_config | 679 | -- Records of infra_data_source_config |
| @@ -699,7 +699,7 @@ CREATE TABLE `infra_file` ( | @@ -699,7 +699,7 @@ CREATE TABLE `infra_file` ( | ||
| 699 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', | 699 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', |
| 700 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', | 700 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', |
| 701 | PRIMARY KEY (`id`) USING BTREE | 701 | PRIMARY KEY (`id`) USING BTREE |
| 702 | -) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '文件表'; | 702 | +) ENGINE = InnoDB AUTO_INCREMENT = 355 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '文件表'; |
| 703 | 703 | ||
| 704 | -- ---------------------------- | 704 | -- ---------------------------- |
| 705 | -- Records of infra_file | 705 | -- Records of infra_file |
| @@ -781,13 +781,14 @@ CREATE TABLE `infra_job` ( | @@ -781,13 +781,14 @@ CREATE TABLE `infra_job` ( | ||
| 781 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', | 781 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', |
| 782 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', | 782 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', |
| 783 | PRIMARY KEY (`id`) USING BTREE | 783 | PRIMARY KEY (`id`) USING BTREE |
| 784 | -) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '定时任务表'; | 784 | +) ENGINE = InnoDB AUTO_INCREMENT = 17 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '定时任务表'; |
| 785 | 785 | ||
| 786 | -- ---------------------------- | 786 | -- ---------------------------- |
| 787 | -- Records of infra_job | 787 | -- Records of infra_job |
| 788 | -- ---------------------------- | 788 | -- ---------------------------- |
| 789 | BEGIN; | 789 | BEGIN; |
| 790 | -INSERT INTO `infra_job` (`id`, `name`, `status`, `handler_name`, `handler_param`, `cron_expression`, `retry_count`, `retry_interval`, `monitor_timeout`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1, '支付通知 Job', 2, 'payNotifyJob', NULL, '* * * * * ?', 0, 0, 0, '1', '2021-10-27 08:34:42', '1', '2022-04-03 20:35:25', b'0'); | 790 | +INSERT INTO `infra_job` (`id`, `name`, `status`, `handler_name`, `handler_param`, `cron_expression`, `retry_count`, `retry_interval`, `monitor_timeout`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (5, '支付通知 Job', 1, 'payNotifyJob', NULL, '* * * * * ?', 0, 0, 0, '1', '2021-10-27 08:34:42', '1', '2022-11-24 23:01:35', b'0'); |
| 791 | +INSERT INTO `infra_job` (`id`, `name`, `status`, `handler_name`, `handler_param`, `cron_expression`, `retry_count`, `retry_interval`, `monitor_timeout`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (16, 'Job 示例', 1, 'demoJob', NULL, '* * * L * ?', 1, 1, 0, '1', '2022-09-24 22:31:41', '1', '2022-09-24 22:31:42', b'0'); | ||
| 791 | COMMIT; | 792 | COMMIT; |
| 792 | 793 | ||
| 793 | -- ---------------------------- | 794 | -- ---------------------------- |
| @@ -811,7 +812,7 @@ CREATE TABLE `infra_job_log` ( | @@ -811,7 +812,7 @@ CREATE TABLE `infra_job_log` ( | ||
| 811 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', | 812 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', |
| 812 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', | 813 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', |
| 813 | PRIMARY KEY (`id`) USING BTREE | 814 | PRIMARY KEY (`id`) USING BTREE |
| 814 | -) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '定时任务日志表'; | 815 | +) ENGINE = InnoDB AUTO_INCREMENT = 60489 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '定时任务日志表'; |
| 815 | 816 | ||
| 816 | -- ---------------------------- | 817 | -- ---------------------------- |
| 817 | -- Records of infra_job_log | 818 | -- Records of infra_job_log |
| @@ -866,7 +867,7 @@ CREATE TABLE `member_user` ( | @@ -866,7 +867,7 @@ CREATE TABLE `member_user` ( | ||
| 866 | `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', | 867 | `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', |
| 867 | PRIMARY KEY (`id`) USING BTREE, | 868 | PRIMARY KEY (`id`) USING BTREE, |
| 868 | UNIQUE INDEX `uk_mobile`(`mobile` ASC) USING BTREE COMMENT '手机号' | 869 | UNIQUE INDEX `uk_mobile`(`mobile` ASC) USING BTREE COMMENT '手机号' |
| 869 | -) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '用户'; | 870 | +) ENGINE = InnoDB AUTO_INCREMENT = 248 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '用户'; |
| 870 | 871 | ||
| 871 | -- ---------------------------- | 872 | -- ---------------------------- |
| 872 | -- Records of member_user | 873 | -- Records of member_user |
| @@ -893,7 +894,7 @@ CREATE TABLE `pay_app` ( | @@ -893,7 +894,7 @@ CREATE TABLE `pay_app` ( | ||
| 893 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', | 894 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', |
| 894 | `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', | 895 | `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', |
| 895 | PRIMARY KEY (`id`) USING BTREE | 896 | PRIMARY KEY (`id`) USING BTREE |
| 896 | -) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '支付应用信息'; | 897 | +) ENGINE = InnoDB AUTO_INCREMENT = 7 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '支付应用信息'; |
| 897 | 898 | ||
| 898 | -- ---------------------------- | 899 | -- ---------------------------- |
| 899 | -- Records of pay_app | 900 | -- Records of pay_app |
| @@ -921,7 +922,7 @@ CREATE TABLE `pay_channel` ( | @@ -921,7 +922,7 @@ CREATE TABLE `pay_channel` ( | ||
| 921 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', | 922 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', |
| 922 | `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', | 923 | `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', |
| 923 | PRIMARY KEY (`id`) USING BTREE | 924 | PRIMARY KEY (`id`) USING BTREE |
| 924 | -) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '支付渠道\n'; | 925 | +) ENGINE = InnoDB AUTO_INCREMENT = 18 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '支付渠道\n'; |
| 925 | 926 | ||
| 926 | -- ---------------------------- | 927 | -- ---------------------------- |
| 927 | -- Records of pay_channel | 928 | -- Records of pay_channel |
| @@ -947,7 +948,7 @@ CREATE TABLE `pay_merchant` ( | @@ -947,7 +948,7 @@ CREATE TABLE `pay_merchant` ( | ||
| 947 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', | 948 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', |
| 948 | `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', | 949 | `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', |
| 949 | PRIMARY KEY (`id`) USING BTREE | 950 | PRIMARY KEY (`id`) USING BTREE |
| 950 | -) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '支付商户信息'; | 951 | +) ENGINE = InnoDB AUTO_INCREMENT = 6 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '支付商户信息'; |
| 951 | 952 | ||
| 952 | -- ---------------------------- | 953 | -- ---------------------------- |
| 953 | -- Records of pay_merchant | 954 | -- Records of pay_merchant |
| @@ -972,7 +973,7 @@ CREATE TABLE `pay_notify_log` ( | @@ -972,7 +973,7 @@ CREATE TABLE `pay_notify_log` ( | ||
| 972 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', | 973 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', |
| 973 | `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', | 974 | `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', |
| 974 | PRIMARY KEY (`id`) USING BTREE | 975 | PRIMARY KEY (`id`) USING BTREE |
| 975 | -) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '支付通知 App 的日志'; | 976 | +) ENGINE = InnoDB AUTO_INCREMENT = 363051 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '支付通知 App 的日志'; |
| 976 | 977 | ||
| 977 | -- ---------------------------- | 978 | -- ---------------------------- |
| 978 | -- Records of pay_notify_log | 979 | -- Records of pay_notify_log |
| @@ -1004,7 +1005,7 @@ CREATE TABLE `pay_notify_task` ( | @@ -1004,7 +1005,7 @@ CREATE TABLE `pay_notify_task` ( | ||
| 1004 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', | 1005 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', |
| 1005 | `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', | 1006 | `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', |
| 1006 | PRIMARY KEY (`id`) USING BTREE | 1007 | PRIMARY KEY (`id`) USING BTREE |
| 1007 | -) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '商户支付、退款等的通知\n'; | 1008 | +) ENGINE = InnoDB AUTO_INCREMENT = 112 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '商户支付、退款等的通知\n'; |
| 1008 | 1009 | ||
| 1009 | -- ---------------------------- | 1010 | -- ---------------------------- |
| 1010 | -- Records of pay_notify_task | 1011 | -- Records of pay_notify_task |
| @@ -1048,7 +1049,7 @@ CREATE TABLE `pay_order` ( | @@ -1048,7 +1049,7 @@ CREATE TABLE `pay_order` ( | ||
| 1048 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', | 1049 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', |
| 1049 | `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', | 1050 | `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', |
| 1050 | PRIMARY KEY (`id`) USING BTREE | 1051 | PRIMARY KEY (`id`) USING BTREE |
| 1051 | -) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '支付订单\n'; | 1052 | +) ENGINE = InnoDB AUTO_INCREMENT = 125 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '支付订单\n'; |
| 1052 | 1053 | ||
| 1053 | -- ---------------------------- | 1054 | -- ---------------------------- |
| 1054 | -- Records of pay_order | 1055 | -- Records of pay_order |
| @@ -1077,7 +1078,7 @@ CREATE TABLE `pay_order_extension` ( | @@ -1077,7 +1078,7 @@ CREATE TABLE `pay_order_extension` ( | ||
| 1077 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', | 1078 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', |
| 1078 | `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', | 1079 | `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', |
| 1079 | PRIMARY KEY (`id`) USING BTREE | 1080 | PRIMARY KEY (`id`) USING BTREE |
| 1080 | -) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '支付订单\n'; | 1081 | +) ENGINE = InnoDB AUTO_INCREMENT = 124 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '支付订单\n'; |
| 1081 | 1082 | ||
| 1082 | -- ---------------------------- | 1083 | -- ---------------------------- |
| 1083 | -- Records of pay_order_extension | 1084 | -- Records of pay_order_extension |
| @@ -1166,6 +1167,8 @@ INSERT INTO `system_dept` (`id`, `name`, `parent_id`, `sort`, `leader_user_id`, | @@ -1166,6 +1167,8 @@ INSERT INTO `system_dept` (`id`, `name`, `parent_id`, `sort`, `leader_user_id`, | ||
| 1166 | INSERT INTO `system_dept` (`id`, `name`, `parent_id`, `sort`, `leader_user_id`, `phone`, `email`, `status`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (107, '运维部门', 101, 5, NULL, '15888888888', 'ry@qq.com', 0, 'admin', '2021-01-05 17:03:47', '', '2021-12-15 05:01:33', b'0', 1); | 1167 | INSERT INTO `system_dept` (`id`, `name`, `parent_id`, `sort`, `leader_user_id`, `phone`, `email`, `status`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (107, '运维部门', 101, 5, NULL, '15888888888', 'ry@qq.com', 0, 'admin', '2021-01-05 17:03:47', '', '2021-12-15 05:01:33', b'0', 1); |
| 1167 | INSERT INTO `system_dept` (`id`, `name`, `parent_id`, `sort`, `leader_user_id`, `phone`, `email`, `status`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (108, '市场部门', 102, 1, NULL, '15888888888', 'ry@qq.com', 0, 'admin', '2021-01-05 17:03:47', '1', '2022-02-16 08:35:45', b'0', 1); | 1168 | INSERT INTO `system_dept` (`id`, `name`, `parent_id`, `sort`, `leader_user_id`, `phone`, `email`, `status`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (108, '市场部门', 102, 1, NULL, '15888888888', 'ry@qq.com', 0, 'admin', '2021-01-05 17:03:47', '1', '2022-02-16 08:35:45', b'0', 1); |
| 1168 | INSERT INTO `system_dept` (`id`, `name`, `parent_id`, `sort`, `leader_user_id`, `phone`, `email`, `status`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (109, '财务部门', 102, 2, NULL, '15888888888', 'ry@qq.com', 0, 'admin', '2021-01-05 17:03:47', '', '2021-12-15 05:01:29', b'0', 1); | 1169 | INSERT INTO `system_dept` (`id`, `name`, `parent_id`, `sort`, `leader_user_id`, `phone`, `email`, `status`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (109, '财务部门', 102, 2, NULL, '15888888888', 'ry@qq.com', 0, 'admin', '2021-01-05 17:03:47', '', '2021-12-15 05:01:29', b'0', 1); |
| 1170 | +INSERT INTO `system_dept` (`id`, `name`, `parent_id`, `sort`, `leader_user_id`, `phone`, `email`, `status`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (110, '新部门', 0, 1, NULL, NULL, NULL, 0, '110', '2022-02-23 20:46:30', '110', '2022-02-23 20:46:30', b'0', 121); | ||
| 1171 | +INSERT INTO `system_dept` (`id`, `name`, `parent_id`, `sort`, `leader_user_id`, `phone`, `email`, `status`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (111, '顶级部门', 0, 1, NULL, NULL, NULL, 0, '113', '2022-03-07 21:44:50', '113', '2022-03-07 21:44:50', b'0', 122); | ||
| 1169 | COMMIT; | 1172 | COMMIT; |
| 1170 | 1173 | ||
| 1171 | -- ---------------------------- | 1174 | -- ---------------------------- |
| @@ -1188,7 +1191,7 @@ CREATE TABLE `system_dict_data` ( | @@ -1188,7 +1191,7 @@ CREATE TABLE `system_dict_data` ( | ||
| 1188 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', | 1191 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', |
| 1189 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', | 1192 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', |
| 1190 | PRIMARY KEY (`id`) USING BTREE | 1193 | PRIMARY KEY (`id`) USING BTREE |
| 1191 | -) ENGINE = InnoDB AUTO_INCREMENT = 1162 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '字典数据表'; | 1194 | +) ENGINE = InnoDB AUTO_INCREMENT = 1213 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '字典数据表'; |
| 1192 | 1195 | ||
| 1193 | -- ---------------------------- | 1196 | -- ---------------------------- |
| 1194 | -- Records of system_dict_data | 1197 | -- Records of system_dict_data |
| @@ -1327,72 +1330,150 @@ INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `st | @@ -1327,72 +1330,150 @@ INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `st | ||
| 1327 | INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1158, 3, 'implicit', 'implicit', 'system_oauth2_grant_type', 0, 'success', '', '简化模式', '1', '2022-05-12 00:23:40', '1', '2022-05-11 16:26:05', b'0'); | 1330 | INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1158, 3, 'implicit', 'implicit', 'system_oauth2_grant_type', 0, 'success', '', '简化模式', '1', '2022-05-12 00:23:40', '1', '2022-05-11 16:26:05', b'0'); |
| 1328 | INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1159, 4, 'client_credentials', 'client_credentials', 'system_oauth2_grant_type', 0, 'default', '', '客户端模式', '1', '2022-05-12 00:23:51', '1', '2022-05-11 16:26:08', b'0'); | 1331 | INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1159, 4, 'client_credentials', 'client_credentials', 'system_oauth2_grant_type', 0, 'default', '', '客户端模式', '1', '2022-05-12 00:23:51', '1', '2022-05-11 16:26:08', b'0'); |
| 1329 | INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1160, 5, 'refresh_token', 'refresh_token', 'system_oauth2_grant_type', 0, 'info', '', '刷新模式', '1', '2022-05-12 00:24:02', '1', '2022-05-11 16:26:11', b'0'); | 1332 | INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1160, 5, 'refresh_token', 'refresh_token', 'system_oauth2_grant_type', 0, 'info', '', '刷新模式', '1', '2022-05-12 00:24:02', '1', '2022-05-11 16:26:11', b'0'); |
| 1333 | +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1162, 1, '销售中', '1', 'product_spu_status', 0, 'success', '', '商品 SPU 状态 - 销售中', '1', '2022-10-24 21:19:47', '1', '2022-10-24 21:20:38', b'0'); | ||
| 1334 | +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1163, 0, '仓库中', '0', 'product_spu_status', 0, 'info', '', '商品 SPU 状态 - 仓库中', '1', '2022-10-24 21:20:54', '1', '2022-10-24 21:21:22', b'0'); | ||
| 1335 | +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1164, 0, '回收站', '-1', 'product_spu_status', 0, 'default', '', '商品 SPU 状态 - 回收站', '1', '2022-10-24 21:21:11', '1', '2022-10-24 21:21:11', b'0'); | ||
| 1336 | +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1165, 1, '满减', '1', 'promotion_discount_type', 0, 'success', '', '优惠类型 - 满减', '1', '2022-11-01 12:46:41', '1', '2022-11-01 12:50:11', b'0'); | ||
| 1337 | +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1166, 2, '折扣', '2', 'promotion_discount_type', 0, 'primary', '', '优惠类型 - 折扣', '1', '2022-11-01 12:46:51', '1', '2022-11-01 12:50:08', b'0'); | ||
| 1338 | +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1167, 1, '固定日期', '1', 'promotion_coupon_template_validity_type', 0, 'default', '', '优惠劵模板的有限期类型 - 固定日期', '1', '2022-11-02 00:07:34', '1', '2022-11-04 00:07:49', b'0'); | ||
| 1339 | +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1168, 2, '领取之后', '2', 'promotion_coupon_template_validity_type', 0, 'default', '', '优惠劵模板的有限期类型 - 领取之后', '1', '2022-11-02 00:07:54', '1', '2022-11-04 00:07:52', b'0'); | ||
| 1340 | +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1169, 1, '全部商品参与', '1', 'promotion_product_scope', 0, 'default', '', '营销的商品范围 - 全部商品参与', '1', '2022-11-02 00:28:22', '1', '2022-11-02 00:28:22', b'0'); | ||
| 1341 | +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1170, 2, '指定商品参与', '2', 'promotion_product_scope', 0, 'default', '', '营销的商品范围 - 指定商品参与', '1', '2022-11-02 00:28:34', '1', '2022-11-02 00:28:40', b'0'); | ||
| 1342 | +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1171, 1, '已领取', '1', 'promotion_coupon_status', 0, 'primary', '', '优惠劵的状态 - 已领取', '1', '2022-11-04 00:15:08', '1', '2022-11-04 19:16:04', b'0'); | ||
| 1343 | +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1172, 2, '已使用', '2', 'promotion_coupon_status', 0, 'success', '', '优惠劵的状态 - 已使用', '1', '2022-11-04 00:15:21', '1', '2022-11-04 19:16:08', b'0'); | ||
| 1344 | +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1173, 3, '已过期', '3', 'promotion_coupon_status', 0, 'info', '', '优惠劵的状态 - 已过期', '1', '2022-11-04 00:15:43', '1', '2022-11-04 19:16:12', b'0'); | ||
| 1345 | +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1174, 1, '直接领取', '1', 'promotion_coupon_take_type', 0, 'primary', '', '优惠劵的领取方式 - 直接领取', '1', '2022-11-04 19:13:00', '1', '2022-11-04 19:13:25', b'0'); | ||
| 1346 | +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1175, 2, '指定发放', '2', 'promotion_coupon_take_type', 0, 'success', '', '优惠劵的领取方式 - 指定发放', '1', '2022-11-04 19:13:13', '1', '2022-11-04 19:14:48', b'0'); | ||
| 1347 | +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1176, 10, '未开始', '10', 'promotion_activity_status', 0, 'primary', '', '促销活动的状态枚举 - 未开始', '1', '2022-11-04 22:54:49', '1', '2022-11-04 22:55:53', b'0'); | ||
| 1348 | +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1177, 20, '进行中', '20', 'promotion_activity_status', 0, 'success', '', '促销活动的状态枚举 - 进行中', '1', '2022-11-04 22:55:06', '1', '2022-11-04 22:55:20', b'0'); | ||
| 1349 | +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1178, 30, '已结束', '30', 'promotion_activity_status', 0, 'info', '', '促销活动的状态枚举 - 已结束', '1', '2022-11-04 22:55:41', '1', '2022-11-04 22:55:41', b'0'); | ||
| 1350 | +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1179, 40, '已关闭', '40', 'promotion_activity_status', 0, 'warning', '', '促销活动的状态枚举 - 已关闭', '1', '2022-11-04 22:56:10', '1', '2022-11-04 22:56:18', b'0'); | ||
| 1351 | +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1180, 10, '满 N 元', '10', 'promotion_condition_type', 0, 'primary', '', '营销的条件类型 - 满 N 元', '1', '2022-11-04 22:59:45', '1', '2022-11-04 22:59:45', b'0'); | ||
| 1352 | +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1181, 20, '满 N 件', '20', 'promotion_condition_type', 0, 'success', '', '营销的条件类型 - 满 N 件', '1', '2022-11-04 23:00:02', '1', '2022-11-04 23:00:02', b'0'); | ||
| 1353 | +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1182, 10, '申请售后', '10', 'trade_after_sale_status', 0, 'primary', '', '交易售后状态 - 申请售后', '1', '2022-11-19 20:53:33', '1', '2022-11-19 20:54:42', b'0'); | ||
| 1354 | +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1183, 20, '商品待退货', '20', 'trade_after_sale_status', 0, 'primary', '', '交易售后状态 - 商品待退货', '1', '2022-11-19 20:54:36', '1', '2022-11-19 20:58:58', b'0'); | ||
| 1355 | +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1184, 30, '商家待收货', '30', 'trade_after_sale_status', 0, 'primary', '', '交易售后状态 - 商家待收货', '1', '2022-11-19 20:56:56', '1', '2022-11-19 20:59:20', b'0'); | ||
| 1356 | +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1185, 40, '等待退款', '40', 'trade_after_sale_status', 0, 'primary', '', '交易售后状态 - 等待退款', '1', '2022-11-19 20:59:54', '1', '2022-11-19 21:00:01', b'0'); | ||
| 1357 | +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1186, 50, '退款成功', '50', 'trade_after_sale_status', 0, 'default', '', '交易售后状态 - 退款成功', '1', '2022-11-19 21:00:33', '1', '2022-11-19 21:00:33', b'0'); | ||
| 1358 | +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1187, 61, '买家取消', '61', 'trade_after_sale_status', 0, 'info', '', '交易售后状态 - 买家取消', '1', '2022-11-19 21:01:29', '1', '2022-11-19 21:01:29', b'0'); | ||
| 1359 | +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1188, 62, '商家拒绝', '62', 'trade_after_sale_status', 0, 'info', '', '交易售后状态 - 商家拒绝', '1', '2022-11-19 21:02:17', '1', '2022-11-19 21:02:17', b'0'); | ||
| 1360 | +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1189, 63, '商家拒收货', '63', 'trade_after_sale_status', 0, 'info', '', '交易售后状态 - 商家拒收货', '1', '2022-11-19 21:02:37', '1', '2022-11-19 21:03:07', b'0'); | ||
| 1361 | +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1190, 10, '售中退款', '10', 'trade_after_sale_type', 0, 'success', '', '交易售后的类型 - 售中退款', '1', '2022-11-19 21:05:05', '1', '2022-11-19 21:38:23', b'0'); | ||
| 1362 | +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1191, 20, '售后退款', '20', 'trade_after_sale_type', 0, 'primary', '', '交易售后的类型 - 售后退款', '1', '2022-11-19 21:05:32', '1', '2022-11-19 21:38:32', b'0'); | ||
| 1363 | +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1192, 10, '仅退款', '10', 'trade_after_sale_way', 0, 'primary', '', '交易售后的方式 - 仅退款', '1', '2022-11-19 21:39:19', '1', '2022-11-19 21:39:19', b'0'); | ||
| 1364 | +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1193, 20, '退货退款', '20', 'trade_after_sale_way', 0, 'success', '', '交易售后的方式 - 退货退款', '1', '2022-11-19 21:39:38', '1', '2022-11-19 21:39:49', b'0'); | ||
| 1365 | +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1194, 10, '微信小程序', '10', 'terminal', 0, 'default', '', '终端 - 微信小程序', '1', '2022-12-10 10:51:11', '1', '2022-12-10 10:51:57', b'0'); | ||
| 1366 | +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1195, 20, 'H5 网页', '20', 'terminal', 0, 'default', '', '终端 - H5 网页', '1', '2022-12-10 10:51:30', '1', '2022-12-10 10:51:59', b'0'); | ||
| 1367 | +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1196, 11, '微信公众号', '11', 'terminal', 0, 'default', '', '终端 - 微信公众号', '1', '2022-12-10 10:54:16', '1', '2022-12-10 10:52:01', b'0'); | ||
| 1368 | +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1197, 31, '苹果 App', '31', 'terminal', 0, 'default', '', '终端 - 苹果 App', '1', '2022-12-10 10:54:42', '1', '2022-12-10 10:52:18', b'0'); | ||
| 1369 | +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1198, 32, '安卓 App', '32', 'terminal', 0, 'default', '', '终端 - 安卓 App', '1', '2022-12-10 10:55:02', '1', '2022-12-10 10:59:17', b'0'); | ||
| 1370 | +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1199, 0, '普通订单', '0', 'trade_order_type', 0, 'default', '', '交易订单的类型 - 普通订单', '1', '2022-12-10 16:34:14', '1', '2022-12-10 16:34:14', b'0'); | ||
| 1371 | +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1200, 1, '秒杀订单', '1', 'trade_order_type', 0, 'default', '', '交易订单的类型 - 秒杀订单', '1', '2022-12-10 16:34:26', '1', '2022-12-10 16:34:26', b'0'); | ||
| 1372 | +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1201, 2, '拼团订单', '2', 'trade_order_type', 0, 'default', '', '交易订单的类型 - 拼团订单', '1', '2022-12-10 16:34:36', '1', '2022-12-10 16:34:36', b'0'); | ||
| 1373 | +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1202, 3, '砍价订单', '3', 'trade_order_type', 0, 'default', '', '交易订单的类型 - 砍价订单', '1', '2022-12-10 16:34:48', '1', '2022-12-10 16:34:48', b'0'); | ||
| 1374 | +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1203, 0, '待支付', '0', 'trade_order_status', 0, 'default', '', '交易订单状态 - 待支付', '1', '2022-12-10 16:49:29', '1', '2022-12-10 16:49:29', b'0'); | ||
| 1375 | +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1204, 10, '待发货', '10', 'trade_order_status', 0, 'primary', '', '交易订单状态 - 待发货', '1', '2022-12-10 16:49:53', '1', '2022-12-10 16:51:17', b'0'); | ||
| 1376 | +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1205, 20, '已发货', '20', 'trade_order_status', 0, 'primary', '', '交易订单状态 - 已发货', '1', '2022-12-10 16:50:13', '1', '2022-12-10 16:51:31', b'0'); | ||
| 1377 | +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1206, 30, '已完成', '30', 'trade_order_status', 0, 'success', '', '交易订单状态 - 已完成', '1', '2022-12-10 16:50:30', '1', '2022-12-10 16:51:06', b'0'); | ||
| 1378 | +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1207, 40, '已取消', '40', 'trade_order_status', 0, 'danger', '', '交易订单状态 - 已取消', '1', '2022-12-10 16:50:50', '1', '2022-12-10 16:51:00', b'0'); | ||
| 1379 | +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1208, 0, '未售后', '0', 'trade_order_item_after_sale_status', 0, 'info', '', '交易订单项的售后状态 - 未售后', '1', '2022-12-10 20:58:42', '1', '2022-12-10 20:59:29', b'0'); | ||
| 1380 | +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1209, 1, '售后中', '1', 'trade_order_item_after_sale_status', 0, 'primary', '', '交易订单项的售后状态 - 售后中', '1', '2022-12-10 20:59:21', '1', '2022-12-10 20:59:21', b'0'); | ||
| 1381 | +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1210, 2, '已退款', '2', 'trade_order_item_after_sale_status', 0, 'success', '', '交易订单项的售后状态 - 已退款', '1', '2022-12-10 20:59:46', '1', '2022-12-10 20:59:46', b'0'); | ||
| 1382 | +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1211, 1, '完全匹配', '1', 'mp_auto_reply_request_match', 0, 'primary', '', '公众号自动回复的请求关键字匹配模式 - 完全匹配', '1', '2023-01-16 23:30:39', '1', '2023-01-16 23:31:00', b'0'); | ||
| 1383 | +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1212, 2, '半匹配', '2', 'mp_auto_reply_request_match', 0, 'success', '', '公众号自动回复的请求关键字匹配模式 - 半匹配', '1', '2023-01-16 23:30:55', '1', '2023-01-16 23:31:10', b'0'); | ||
| 1384 | +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1213, 1, '文本', 'text', 'mp_message_type', 0, 'default', '', '公众号的消息类型 - 文本', '1', '2023-01-17 22:17:32', '1', '2023-01-17 22:17:39', b'0'); | ||
| 1385 | +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1214, 2, '图片', 'image', 'mp_message_type', 0, 'default', '', '公众号的消息类型 - 图片', '1', '2023-01-17 22:17:32', '1', '2023-01-17 14:19:47', b'0'); | ||
| 1386 | +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1215, 3, '语音', 'voice', 'mp_message_type', 0, 'default', '', '公众号的消息类型 - 语音', '1', '2023-01-17 22:17:32', '1', '2023-01-17 14:20:08', b'0'); | ||
| 1387 | +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1216, 4, '视频', 'video', 'mp_message_type', 0, 'default', '', '公众号的消息类型 - 视频', '1', '2023-01-17 22:17:32', '1', '2023-01-17 14:21:08', b'0'); | ||
| 1388 | +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1217, 5, '小视频', 'shortvideo', 'mp_message_type', 0, 'default', '', '公众号的消息类型 - 小视频', '1', '2023-01-17 22:17:32', '1', '2023-01-17 14:19:59', b'0'); | ||
| 1389 | +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1218, 6, '图文', 'news', 'mp_message_type', 0, 'default', '', '公众号的消息类型 - 图文', '1', '2023-01-17 22:17:32', '1', '2023-01-17 14:22:54', b'0'); | ||
| 1390 | +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1219, 7, '音乐', 'music', 'mp_message_type', 0, 'default', '', '公众号的消息类型 - 音乐', '1', '2023-01-17 22:17:32', '1', '2023-01-17 14:22:54', b'0'); | ||
| 1391 | +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1220, 8, '地理位置', 'location', 'mp_message_type', 0, 'default', '', '公众号的消息类型 - 地理位置', '1', '2023-01-17 22:17:32', '1', '2023-01-17 14:23:51', b'0'); | ||
| 1392 | +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1221, 9, '链接', 'link', 'mp_message_type', 0, 'default', '', '公众号的消息类型 - 链接', '1', '2023-01-17 22:17:32', '1', '2023-01-17 14:24:49', b'0'); | ||
| 1393 | +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1222, 10, '事件', 'event', 'mp_message_type', 0, 'default', '', '公众号的消息类型 - 事件', '1', '2023-01-17 22:17:32', '1', '2023-01-17 14:24:49', b'0'); | ||
| 1330 | COMMIT; | 1394 | COMMIT; |
| 1331 | 1395 | ||
| 1332 | -- ---------------------------- | 1396 | -- ---------------------------- |
| 1333 | -- Table structure for system_dict_type | 1397 | -- Table structure for system_dict_type |
| 1334 | -- ---------------------------- | 1398 | -- ---------------------------- |
| 1335 | DROP TABLE IF EXISTS `system_dict_type`; | 1399 | DROP TABLE IF EXISTS `system_dict_type`; |
| 1336 | -CREATE TABLE `system_dict_type`( | ||
| 1337 | - `id` bigint NOT NULL AUTO_INCREMENT COMMENT '字典主键', | ||
| 1338 | - `name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '字典名称', | ||
| 1339 | - `type` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '字典类型', | ||
| 1340 | - `status` tinyint NOT NULL DEFAULT 0 COMMENT '状态(0正常 1停用)', | ||
| 1341 | - `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '备注', | ||
| 1342 | - `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '创建者', | ||
| 1343 | - `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', | ||
| 1344 | - `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者', | ||
| 1345 | - `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', | ||
| 1346 | - `deleted_time` datetime DEFAULT NULL COMMENT '删除时间', | ||
| 1347 | - `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', | ||
| 1348 | - PRIMARY KEY (`id`) USING BTREE, | ||
| 1349 | - UNIQUE INDEX `dict_type`(`type` ASC,`deleted_time` ASC) USING BTREE | ||
| 1350 | -) ENGINE = InnoDB AUTO_INCREMENT = 149 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '字典类型表'; | 1400 | +CREATE TABLE `system_dict_type` ( |
| 1401 | + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '字典主键', | ||
| 1402 | + `name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '字典名称', | ||
| 1403 | + `type` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '字典类型', | ||
| 1404 | + `status` tinyint NOT NULL DEFAULT 0 COMMENT '状态(0正常 1停用)', | ||
| 1405 | + `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '备注', | ||
| 1406 | + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '创建者', | ||
| 1407 | + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', | ||
| 1408 | + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者', | ||
| 1409 | + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', | ||
| 1410 | + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', | ||
| 1411 | + `deleted_time` datetime NULL DEFAULT NULL COMMENT '删除时间', | ||
| 1412 | + PRIMARY KEY (`id`) USING BTREE, | ||
| 1413 | + UNIQUE INDEX `dict_type`(`type` ASC) USING BTREE | ||
| 1414 | +) ENGINE = InnoDB AUTO_INCREMENT = 165 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '字典类型表'; | ||
| 1351 | 1415 | ||
| 1352 | -- ---------------------------- | 1416 | -- ---------------------------- |
| 1353 | -- Records of system_dict_type | 1417 | -- Records of system_dict_type |
| 1354 | -- ---------------------------- | 1418 | -- ---------------------------- |
| 1355 | BEGIN; | 1419 | BEGIN; |
| 1356 | -INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1, '用户性别', 'system_user_sex', 0, NULL, 'admin', '2021-01-05 17:03:48', '1', '2022-05-16 20:29:32', b'0'); | ||
| 1357 | -INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (6, '参数类型', 'infra_config_type', 0, NULL, 'admin', '2021-01-05 17:03:48', '', '2022-02-01 16:36:54', b'0'); | ||
| 1358 | -INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (7, '通知类型', 'system_notice_type', 0, NULL, 'admin', '2021-01-05 17:03:48', '', '2022-02-01 16:35:26', b'0'); | ||
| 1359 | -INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (9, '操作类型', 'system_operate_type', 0, NULL, 'admin', '2021-01-05 17:03:48', '1', '2022-02-16 09:32:21', b'0'); | ||
| 1360 | -INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (10, '系统状态', 'common_status', 0, NULL, 'admin', '2021-01-05 17:03:48', '', '2022-02-01 16:21:28', b'0'); | ||
| 1361 | -INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (11, 'Boolean 是否类型', 'infra_boolean_string', 0, 'boolean 转是否', '', '2021-01-19 03:20:08', '', '2022-02-01 16:37:10', b'0'); | ||
| 1362 | -INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (104, '登陆结果', 'system_login_result', 0, '登陆结果', '', '2021-01-18 06:17:11', '', '2022-02-01 16:36:00', b'0'); | ||
| 1363 | -INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (105, 'Redis 超时类型', 'infra_redis_timeout_type', 0, 'RedisKeyDefine.TimeoutTypeEnum', '', '2021-01-26 00:52:50', '', '2022-02-01 16:50:29', b'0'); | ||
| 1364 | -INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (106, '代码生成模板类型', 'infra_codegen_template_type', 0, NULL, '', '2021-02-05 07:08:06', '1', '2022-05-16 20:26:50', b'0'); | ||
| 1365 | -INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (107, '定时任务状态', 'infra_job_status', 0, NULL, '', '2021-02-07 07:44:16', '', '2022-02-01 16:51:11', b'0'); | ||
| 1366 | -INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (108, '定时任务日志状态', 'infra_job_log_status', 0, NULL, '', '2021-02-08 10:03:51', '', '2022-02-01 16:50:43', b'0'); | ||
| 1367 | -INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (109, '用户类型', 'user_type', 0, NULL, '', '2021-02-26 00:15:51', '', '2021-02-26 00:15:51', b'0'); | ||
| 1368 | -INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (110, 'API 异常数据的处理状态', 'infra_api_error_log_process_status', 0, NULL, '', '2021-02-26 07:07:01', '', '2022-02-01 16:50:53', b'0'); | ||
| 1369 | -INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (111, '短信渠道编码', 'system_sms_channel_code', 0, NULL, '1', '2021-04-05 01:04:50', '1', '2022-02-16 02:09:08', b'0'); | ||
| 1370 | -INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (112, '短信模板的类型', 'system_sms_template_type', 0, NULL, '1', '2021-04-05 21:50:43', '1', '2022-02-01 16:35:06', b'0'); | ||
| 1371 | -INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (113, '短信发送状态', 'system_sms_send_status', 0, NULL, '1', '2021-04-11 20:18:03', '1', '2022-02-01 16:35:09', b'0'); | ||
| 1372 | -INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (114, '短信接收状态', 'system_sms_receive_status', 0, NULL, '1', '2021-04-11 20:27:14', '1', '2022-02-01 16:35:14', b'0'); | ||
| 1373 | -INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (115, '错误码的类型', 'system_error_code_type', 0, NULL, '1', '2021-04-21 00:06:30', '1', '2022-02-01 16:36:49', b'0'); | ||
| 1374 | -INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (116, '登陆日志的类型', 'system_login_type', 0, '登陆日志的类型', '1', '2021-10-06 00:50:46', '1', '2022-02-01 16:35:56', b'0'); | ||
| 1375 | -INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (117, 'OA 请假类型', 'bpm_oa_leave_type', 0, NULL, '1', '2021-09-21 22:34:33', '1', '2022-01-22 10:41:37', b'0'); | ||
| 1376 | -INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (122, '支付渠道微信版本', 'pay_channel_wechat_version', 0, '支付渠道微信版本', '1', '2021-11-08 17:00:26', '1', '2021-11-08 17:00:26', b'0'); | ||
| 1377 | -INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (127, '支付渠道支付宝算法类型', 'pay_channel_alipay_sign_type', 0, '支付渠道支付宝算法类型', '1', '2021-11-18 15:39:09', '1', '2021-11-18 15:39:09', b'0'); | ||
| 1378 | -INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (128, '支付渠道支付宝公钥类型', 'pay_channel_alipay_mode', 0, '支付渠道支付宝公钥类型', '1', '2021-11-18 15:44:28', '1', '2021-11-18 15:44:28', b'0'); | ||
| 1379 | -INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (129, '支付宝网关地址', 'pay_channel_alipay_server_type', 0, '支付宝网关地址', '1', '2021-11-18 16:58:55', '1', '2021-11-18 17:01:34', b'0'); | ||
| 1380 | -INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (130, '支付渠道编码类型', 'pay_channel_code_type', 0, '支付渠道的编码', '1', '2021-12-03 10:35:08', '1', '2021-12-03 10:35:08', b'0'); | ||
| 1381 | -INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (131, '支付订单回调状态', 'pay_order_notify_status', 0, '支付订单回调状态', '1', '2021-12-03 10:53:29', '1', '2021-12-03 10:53:29', b'0'); | ||
| 1382 | -INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (132, '支付订单状态', 'pay_order_status', 0, '支付订单状态', '1', '2021-12-03 11:17:50', '1', '2021-12-03 11:17:50', b'0'); | ||
| 1383 | -INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (133, '支付订单退款状态', 'pay_order_refund_status', 0, '支付订单退款状态', '1', '2021-12-03 11:27:31', '1', '2021-12-03 11:27:31', b'0'); | ||
| 1384 | -INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (134, '退款订单状态', 'pay_refund_order_status', 0, '退款订单状态', '1', '2021-12-10 16:42:50', '1', '2021-12-10 16:42:50', b'0'); | ||
| 1385 | -INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (135, '退款订单类别', 'pay_refund_order_type', 0, '退款订单类别', '1', '2021-12-10 17:14:53', '1', '2021-12-10 17:14:53', b'0'); | ||
| 1386 | -INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (138, '流程分类', 'bpm_model_category', 0, '流程分类', '1', '2022-01-02 08:40:45', '1', '2022-01-02 08:40:45', b'0'); | ||
| 1387 | -INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (139, '流程实例的状态', 'bpm_process_instance_status', 0, '流程实例的状态', '1', '2022-01-07 23:46:42', '1', '2022-01-07 23:46:42', b'0'); | ||
| 1388 | -INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (140, '流程实例的结果', 'bpm_process_instance_result', 0, '流程实例的结果', '1', '2022-01-07 23:48:10', '1', '2022-01-07 23:48:10', b'0'); | ||
| 1389 | -INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (141, '流程的表单类型', 'bpm_model_form_type', 0, '流程的表单类型', '103', '2022-01-11 23:50:45', '103', '2022-01-11 23:50:45', b'0'); | ||
| 1390 | -INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (142, '任务分配规则的类型', 'bpm_task_assign_rule_type', 0, '任务分配规则的类型', '103', '2022-01-12 23:21:04', '103', '2022-01-12 15:46:10', b'0'); | ||
| 1391 | -INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (143, '任务分配自定义脚本', 'bpm_task_assign_script', 0, '任务分配自定义脚本', '103', '2022-01-15 00:10:35', '103', '2022-01-15 00:10:35', b'0'); | ||
| 1392 | -INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (144, '代码生成的场景枚举', 'infra_codegen_scene', 0, '代码生成的场景枚举', '1', '2022-02-02 13:14:45', '1', '2022-03-10 16:33:46', b'0'); | ||
| 1393 | -INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (145, '角色类型', 'system_role_type', 0, '角色类型', '1', '2022-02-16 13:01:46', '1', '2022-02-16 13:01:46', b'0'); | ||
| 1394 | -INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (146, '文件存储器', 'infra_file_storage', 0, '文件存储器', '1', '2022-03-15 00:24:38', '1', '2022-03-15 00:24:38', b'0'); | ||
| 1395 | -INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (147, 'OAuth 2.0 授权类型', 'system_oauth2_grant_type', 0, 'OAuth 2.0 授权类型(模式)', '1', '2022-05-12 00:20:52', '1', '2022-05-11 16:25:49', b'0'); | 1420 | +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (1, '用户性别', 'system_user_sex', 0, NULL, 'admin', '2021-01-05 17:03:48', '1', '2022-05-16 20:29:32', b'0', NULL); |
| 1421 | +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (6, '参数类型', 'infra_config_type', 0, NULL, 'admin', '2021-01-05 17:03:48', '', '2022-02-01 16:36:54', b'0', NULL); | ||
| 1422 | +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (7, '通知类型', 'system_notice_type', 0, NULL, 'admin', '2021-01-05 17:03:48', '', '2022-02-01 16:35:26', b'0', NULL); | ||
| 1423 | +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (9, '操作类型', 'system_operate_type', 0, NULL, 'admin', '2021-01-05 17:03:48', '1', '2022-02-16 09:32:21', b'0', NULL); | ||
| 1424 | +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (10, '系统状态', 'common_status', 0, NULL, 'admin', '2021-01-05 17:03:48', '', '2022-02-01 16:21:28', b'0', NULL); | ||
| 1425 | +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (11, 'Boolean 是否类型', 'infra_boolean_string', 0, 'boolean 转是否', '', '2021-01-19 03:20:08', '', '2022-02-01 16:37:10', b'0', NULL); | ||
| 1426 | +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (104, '登陆结果', 'system_login_result', 0, '登陆结果', '', '2021-01-18 06:17:11', '', '2022-02-01 16:36:00', b'0', NULL); | ||
| 1427 | +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (105, 'Redis 超时类型', 'infra_redis_timeout_type', 0, 'RedisKeyDefine.TimeoutTypeEnum', '', '2021-01-26 00:52:50', '', '2022-02-01 16:50:29', b'0', NULL); | ||
| 1428 | +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (106, '代码生成模板类型', 'infra_codegen_template_type', 0, NULL, '', '2021-02-05 07:08:06', '1', '2022-05-16 20:26:50', b'0', NULL); | ||
| 1429 | +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (107, '定时任务状态', 'infra_job_status', 0, NULL, '', '2021-02-07 07:44:16', '', '2022-02-01 16:51:11', b'0', NULL); | ||
| 1430 | +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (108, '定时任务日志状态', 'infra_job_log_status', 0, NULL, '', '2021-02-08 10:03:51', '', '2022-02-01 16:50:43', b'0', NULL); | ||
| 1431 | +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (109, '用户类型', 'user_type', 0, NULL, '', '2021-02-26 00:15:51', '', '2021-02-26 00:15:51', b'0', NULL); | ||
| 1432 | +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (110, 'API 异常数据的处理状态', 'infra_api_error_log_process_status', 0, NULL, '', '2021-02-26 07:07:01', '', '2022-02-01 16:50:53', b'0', NULL); | ||
| 1433 | +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (111, '短信渠道编码', 'system_sms_channel_code', 0, NULL, '1', '2021-04-05 01:04:50', '1', '2022-02-16 02:09:08', b'0', NULL); | ||
| 1434 | +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (112, '短信模板的类型', 'system_sms_template_type', 0, NULL, '1', '2021-04-05 21:50:43', '1', '2022-02-01 16:35:06', b'0', NULL); | ||
| 1435 | +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (113, '短信发送状态', 'system_sms_send_status', 0, NULL, '1', '2021-04-11 20:18:03', '1', '2022-02-01 16:35:09', b'0', NULL); | ||
| 1436 | +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (114, '短信接收状态', 'system_sms_receive_status', 0, NULL, '1', '2021-04-11 20:27:14', '1', '2022-02-01 16:35:14', b'0', NULL); | ||
| 1437 | +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (115, '错误码的类型', 'system_error_code_type', 0, NULL, '1', '2021-04-21 00:06:30', '1', '2022-02-01 16:36:49', b'0', NULL); | ||
| 1438 | +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (116, '登陆日志的类型', 'system_login_type', 0, '登陆日志的类型', '1', '2021-10-06 00:50:46', '1', '2022-02-01 16:35:56', b'0', NULL); | ||
| 1439 | +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (117, 'OA 请假类型', 'bpm_oa_leave_type', 0, NULL, '1', '2021-09-21 22:34:33', '1', '2022-01-22 10:41:37', b'0', NULL); | ||
| 1440 | +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (122, '支付渠道微信版本', 'pay_channel_wechat_version', 0, '支付渠道微信版本', '1', '2021-11-08 17:00:26', '1', '2021-11-08 17:00:26', b'0', NULL); | ||
| 1441 | +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (127, '支付渠道支付宝算法类型', 'pay_channel_alipay_sign_type', 0, '支付渠道支付宝算法类型', '1', '2021-11-18 15:39:09', '1', '2021-11-18 15:39:09', b'0', NULL); | ||
| 1442 | +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (128, '支付渠道支付宝公钥类型', 'pay_channel_alipay_mode', 0, '支付渠道支付宝公钥类型', '1', '2021-11-18 15:44:28', '1', '2021-11-18 15:44:28', b'0', NULL); | ||
| 1443 | +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (129, '支付宝网关地址', 'pay_channel_alipay_server_type', 0, '支付宝网关地址', '1', '2021-11-18 16:58:55', '1', '2021-11-18 17:01:34', b'0', NULL); | ||
| 1444 | +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (130, '支付渠道编码类型', 'pay_channel_code_type', 0, '支付渠道的编码', '1', '2021-12-03 10:35:08', '1', '2021-12-03 10:35:08', b'0', NULL); | ||
| 1445 | +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (131, '支付订单回调状态', 'pay_order_notify_status', 0, '支付订单回调状态', '1', '2021-12-03 10:53:29', '1', '2021-12-03 10:53:29', b'0', NULL); | ||
| 1446 | +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (132, '支付订单状态', 'pay_order_status', 0, '支付订单状态', '1', '2021-12-03 11:17:50', '1', '2021-12-03 11:17:50', b'0', NULL); | ||
| 1447 | +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (133, '支付订单退款状态', 'pay_order_refund_status', 0, '支付订单退款状态', '1', '2021-12-03 11:27:31', '1', '2021-12-03 11:27:31', b'0', NULL); | ||
| 1448 | +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (134, '退款订单状态', 'pay_refund_order_status', 0, '退款订单状态', '1', '2021-12-10 16:42:50', '1', '2021-12-10 16:42:50', b'0', NULL); | ||
| 1449 | +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (135, '退款订单类别', 'pay_refund_order_type', 0, '退款订单类别', '1', '2021-12-10 17:14:53', '1', '2021-12-10 17:14:53', b'0', NULL); | ||
| 1450 | +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (138, '流程分类', 'bpm_model_category', 0, '流程分类', '1', '2022-01-02 08:40:45', '1', '2022-01-02 08:40:45', b'0', NULL); | ||
| 1451 | +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (139, '流程实例的状态', 'bpm_process_instance_status', 0, '流程实例的状态', '1', '2022-01-07 23:46:42', '1', '2022-01-07 23:46:42', b'0', NULL); | ||
| 1452 | +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (140, '流程实例的结果', 'bpm_process_instance_result', 0, '流程实例的结果', '1', '2022-01-07 23:48:10', '1', '2022-01-07 23:48:10', b'0', NULL); | ||
| 1453 | +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (141, '流程的表单类型', 'bpm_model_form_type', 0, '流程的表单类型', '103', '2022-01-11 23:50:45', '103', '2022-01-11 23:50:45', b'0', NULL); | ||
| 1454 | +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (142, '任务分配规则的类型', 'bpm_task_assign_rule_type', 0, '任务分配规则的类型', '103', '2022-01-12 23:21:04', '103', '2022-01-12 15:46:10', b'0', NULL); | ||
| 1455 | +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (143, '任务分配自定义脚本', 'bpm_task_assign_script', 0, '任务分配自定义脚本', '103', '2022-01-15 00:10:35', '103', '2022-01-15 00:10:35', b'0', NULL); | ||
| 1456 | +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (144, '代码生成的场景枚举', 'infra_codegen_scene', 0, '代码生成的场景枚举', '1', '2022-02-02 13:14:45', '1', '2022-03-10 16:33:46', b'0', NULL); | ||
| 1457 | +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (145, '角色类型', 'system_role_type', 0, '角色类型', '1', '2022-02-16 13:01:46', '1', '2022-02-16 13:01:46', b'0', NULL); | ||
| 1458 | +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (146, '文件存储器', 'infra_file_storage', 0, '文件存储器', '1', '2022-03-15 00:24:38', '1', '2022-03-15 00:24:38', b'0', NULL); | ||
| 1459 | +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (147, 'OAuth 2.0 授权类型', 'system_oauth2_grant_type', 0, 'OAuth 2.0 授权类型(模式)', '1', '2022-05-12 00:20:52', '1', '2022-05-11 16:25:49', b'0', NULL); | ||
| 1460 | +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (149, '商品 SPU 状态', 'product_spu_status', 0, '商品 SPU 状态', '1', '2022-10-24 21:19:04', '1', '2022-10-24 21:19:08', b'0', NULL); | ||
| 1461 | +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (150, '优惠类型', 'promotion_discount_type', 0, '优惠类型', '1', '2022-11-01 12:46:06', '1', '2022-11-01 12:46:06', b'0', NULL); | ||
| 1462 | +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (151, '优惠劵模板的有限期类型', 'promotion_coupon_template_validity_type', 0, '优惠劵模板的有限期类型', '1', '2022-11-02 00:06:20', '1', '2022-11-04 00:08:26', b'0', NULL); | ||
| 1463 | +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (152, '营销的商品范围', 'promotion_product_scope', 0, '营销的商品范围', '1', '2022-11-02 00:28:01', '1', '2022-11-02 00:28:01', b'0', NULL); | ||
| 1464 | +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (153, '优惠劵的状态', 'promotion_coupon_status', 0, '优惠劵的状态', '1', '2022-11-04 00:14:49', '1', '2022-11-04 00:14:49', b'0', NULL); | ||
| 1465 | +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (154, '优惠劵的领取方式', 'promotion_coupon_take_type', 0, '优惠劵的领取方式', '1', '2022-11-04 19:12:27', '1', '2022-11-04 19:12:27', b'0', NULL); | ||
| 1466 | +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (155, '促销活动的状态', 'promotion_activity_status', 0, '促销活动的状态', '1', '2022-11-04 22:54:23', '1', '2022-11-04 22:54:23', b'0', NULL); | ||
| 1467 | +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (156, '营销的条件类型', 'promotion_condition_type', 0, '营销的条件类型', '1', '2022-11-04 22:59:23', '1', '2022-11-04 22:59:23', b'0', NULL); | ||
| 1468 | +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (157, '交易售后状态', 'trade_after_sale_status', 0, '交易售后状态', '1', '2022-11-19 20:52:56', '1', '2022-11-19 20:52:56', b'0', NULL); | ||
| 1469 | +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (158, '交易售后的类型', 'trade_after_sale_type', 0, '交易售后的类型', '1', '2022-11-19 21:04:09', '1', '2022-11-19 21:04:09', b'0', NULL); | ||
| 1470 | +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (159, '交易售后的方式', 'trade_after_sale_way', 0, '交易售后的方式', '1', '2022-11-19 21:39:04', '1', '2022-11-19 21:39:04', b'0', NULL); | ||
| 1471 | +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (160, '终端', 'terminal', 0, '终端', '1', '2022-12-10 10:50:50', '1', '2022-12-10 10:53:11', b'0', NULL); | ||
| 1472 | +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (161, '交易订单的类型', 'trade_order_type', 0, '交易订单的类型', '1', '2022-12-10 16:33:54', '1', '2022-12-10 16:33:54', b'0', NULL); | ||
| 1473 | +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (162, '交易订单的状态', 'trade_order_status', 0, '交易订单的状态', '1', '2022-12-10 16:48:44', '1', '2022-12-10 16:48:44', b'0', NULL); | ||
| 1474 | +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (163, '交易订单项的售后状态', 'trade_order_item_after_sale_status', 0, '交易订单项的售后状态', '1', '2022-12-10 20:58:08', '1', '2022-12-10 20:58:08', b'0', NULL); | ||
| 1475 | +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (164, '公众号自动回复的请求关键字匹配模式', 'mp_auto_reply_request_match', 0, '公众号自动回复的请求关键字匹配模式', '1', '2023-01-16 23:29:56', '1', '2023-01-16 23:29:56', b'0', '1970-01-01 00:00:00'); | ||
| 1476 | +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (165, '公众号的消息类型', 'mp_message_type', 0, '公众号的消息类型', '1', '2023-01-17 22:17:09', '1', '2023-01-17 22:17:09', b'0', '1970-01-01 00:00:00'); | ||
| 1396 | COMMIT; | 1477 | COMMIT; |
| 1397 | 1478 | ||
| 1398 | -- ---------------------------- | 1479 | -- ---------------------------- |
| @@ -1412,7 +1493,7 @@ CREATE TABLE `system_error_code` ( | @@ -1412,7 +1493,7 @@ CREATE TABLE `system_error_code` ( | ||
| 1412 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', | 1493 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', |
| 1413 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', | 1494 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', |
| 1414 | PRIMARY KEY (`id`) USING BTREE | 1495 | PRIMARY KEY (`id`) USING BTREE |
| 1415 | -) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '错误码表'; | 1496 | +) ENGINE = InnoDB AUTO_INCREMENT = 5833 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '错误码表'; |
| 1416 | 1497 | ||
| 1417 | -- ---------------------------- | 1498 | -- ---------------------------- |
| 1418 | -- Records of system_error_code | 1499 | -- Records of system_error_code |
| @@ -1441,7 +1522,7 @@ CREATE TABLE `system_login_log` ( | @@ -1441,7 +1522,7 @@ CREATE TABLE `system_login_log` ( | ||
| 1441 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', | 1522 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', |
| 1442 | `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', | 1523 | `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', |
| 1443 | PRIMARY KEY (`id`) USING BTREE | 1524 | PRIMARY KEY (`id`) USING BTREE |
| 1444 | -) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '系统访问记录'; | 1525 | +) ENGINE = InnoDB AUTO_INCREMENT = 1963 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '系统访问记录'; |
| 1445 | 1526 | ||
| 1446 | -- ---------------------------- | 1527 | -- ---------------------------- |
| 1447 | -- Records of system_login_log | 1528 | -- Records of system_login_log |
| @@ -1472,7 +1553,7 @@ CREATE TABLE `system_menu` ( | @@ -1472,7 +1553,7 @@ CREATE TABLE `system_menu` ( | ||
| 1472 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', | 1553 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', |
| 1473 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', | 1554 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', |
| 1474 | PRIMARY KEY (`id`) USING BTREE | 1555 | PRIMARY KEY (`id`) USING BTREE |
| 1475 | -) ENGINE = InnoDB AUTO_INCREMENT = 1283 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '菜单权限表'; | 1556 | +) ENGINE = InnoDB AUTO_INCREMENT = 2125 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '菜单权限表'; |
| 1476 | 1557 | ||
| 1477 | -- ---------------------------- | 1558 | -- ---------------------------- |
| 1478 | -- Records of system_menu | 1559 | -- Records of system_menu |
| @@ -1602,7 +1683,7 @@ INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_i | @@ -1602,7 +1683,7 @@ INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_i | ||
| 1602 | INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) 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'); | 1683 | INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) 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'); |
| 1603 | INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) 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'); | 1684 | INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) 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'); |
| 1604 | INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) 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'); | 1685 | INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) 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'); |
| 1605 | -INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1117, '支付管理', '', 1, 11, 0, '/pay', 'money', NULL, 0, b'1', b'1', '1', '2021-12-25 16:43:41', '1', '2022-04-20 17:03:10', b'0'); | 1686 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1117, '支付管理', '', 1, 30, 0, '/pay', 'money', NULL, 0, b'1', b'1', '1', '2021-12-25 16:43:41', '1', '2022-12-10 16:33:19', b'0'); |
| 1606 | INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) 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'); | 1687 | INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) 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'); |
| 1607 | INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) 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'); | 1688 | INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) 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'); |
| 1608 | INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) 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'); | 1689 | INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) 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'); |
| @@ -1708,10 +1789,125 @@ INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_i | @@ -1708,10 +1789,125 @@ INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_i | ||
| 1708 | INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) 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'); | 1789 | INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) 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'); |
| 1709 | INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) 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'); | 1790 | INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) 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'); |
| 1710 | INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) 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'); | 1791 | INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) 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'); |
| 1711 | -INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1281, '可视化报表', '', 1, 12, 0, '/visualization', 'chart', NULL, 0, b'1', b'1', '1', '2022-07-10 20:22:15', '1', '2022-07-10 20:33:30', b'0'); | ||
| 1712 | -INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1282, '积木报表', '', 2, 1, 1281, 'jimu-report', 'example', 'visualization/jmreport/index', 0, b'1', b'1', '1', '2022-07-10 20:26:36', '1', '2022-07-28 21:17:34', b'0'); | ||
| 1713 | -INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1283, 'webSocket连接', '', 2, 14, 2, 'webSocket', 'message', 'infra/webSocket/index', 0, b'1', b'1', '1', '2023-01-01 11:43:04', '1', '2023-01-01 11:43:04', b'0'); | ||
| 1714 | - | 1792 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1281, '报表管理', '', 1, 40, 0, '/visualization', 'chart', NULL, 0, b'1', b'1', '1', '2022-07-10 20:22:15', '1', '2022-12-10 16:33:13', b'0'); |
| 1793 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1282, '报表设计器', '', 2, 1, 1281, 'jimu-report', 'example', 'visualization/jmreport/index', 0, b'1', b'1', '1', '2022-07-10 20:26:36', '1', '2022-07-29 12:48:05', b'0'); | ||
| 1794 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2000, '商品中心', '', 1, 60, 0, '/product', 'merchant', NULL, 0, b'1', b'1', '', '2022-07-29 15:53:53', '1', '2022-07-30 22:26:19', b'0'); | ||
| 1795 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2002, '商品分类', '', 2, 2, 2000, 'category', 'dict', 'mall/product/category/index', 0, b'1', b'1', '', '2022-07-29 15:53:53', '1', '2022-07-30 22:23:37', b'0'); | ||
| 1796 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2003, '分类查询', 'product:category:query', 3, 1, 2002, '', '', '', 0, b'1', b'1', '', '2022-07-29 15:53:53', '', '2022-07-29 15:53:53', b'0'); | ||
| 1797 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2004, '分类创建', 'product:category:create', 3, 2, 2002, '', '', '', 0, b'1', b'1', '', '2022-07-29 15:53:53', '', '2022-07-29 15:53:53', b'0'); | ||
| 1798 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2005, '分类更新', 'product:category:update', 3, 3, 2002, '', '', '', 0, b'1', b'1', '', '2022-07-29 15:53:53', '', '2022-07-29 15:53:53', b'0'); | ||
| 1799 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2006, '分类删除', 'product:category:delete', 3, 4, 2002, '', '', '', 0, b'1', b'1', '', '2022-07-29 15:53:53', '', '2022-07-29 15:53:53', b'0'); | ||
| 1800 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2008, '商品品牌', '', 2, 3, 2000, 'brand', 'dashboard', 'mall/product/brand/index', 0, b'1', b'1', '', '2022-07-30 13:52:44', '1', '2022-10-24 22:29:30', b'0'); | ||
| 1801 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2009, '品牌查询', 'product:brand:query', 3, 1, 2008, '', '', '', 0, b'1', b'1', '', '2022-07-30 13:52:44', '', '2022-07-30 13:52:44', b'0'); | ||
| 1802 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2010, '品牌创建', 'product:brand:create', 3, 2, 2008, '', '', '', 0, b'1', b'1', '', '2022-07-30 13:52:44', '', '2022-07-30 13:52:44', b'0'); | ||
| 1803 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2011, '品牌更新', 'product:brand:update', 3, 3, 2008, '', '', '', 0, b'1', b'1', '', '2022-07-30 13:52:44', '', '2022-07-30 13:52:44', b'0'); | ||
| 1804 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2012, '品牌删除', 'product:brand:delete', 3, 4, 2008, '', '', '', 0, b'1', b'1', '', '2022-07-30 13:52:44', '', '2022-07-30 13:52:44', b'0'); | ||
| 1805 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2014, '商品列表', '', 2, 1, 2000, 'spu', 'list', 'mall/product/spu/index', 0, b'1', b'1', '', '2022-07-30 14:22:58', '1', '2022-10-24 22:29:25', b'0'); | ||
| 1806 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2015, '商品查询', 'product:spu:query', 3, 1, 2014, '', '', '', 0, b'1', b'1', '', '2022-07-30 14:22:58', '', '2022-07-30 14:22:58', b'0'); | ||
| 1807 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2016, '商品创建', 'product:spu:create', 3, 2, 2014, '', '', '', 0, b'1', b'1', '', '2022-07-30 14:22:58', '', '2022-07-30 14:22:58', b'0'); | ||
| 1808 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2017, '商品更新', 'product:spu:update', 3, 3, 2014, '', '', '', 0, b'1', b'1', '', '2022-07-30 14:22:58', '', '2022-07-30 14:22:58', b'0'); | ||
| 1809 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2018, '商品删除', 'product:spu:delete', 3, 4, 2014, '', '', '', 0, b'1', b'1', '', '2022-07-30 14:22:58', '', '2022-07-30 14:22:58', b'0'); | ||
| 1810 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2019, '商品属性', '', 2, 3, 2000, 'property', 'eye', 'mall/product/property/index', 0, b'1', b'1', '', '2022-08-01 14:55:35', '1', '2022-12-12 20:58:06', b'0'); | ||
| 1811 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2020, '规格查询', 'product:property:query', 3, 1, 2019, '', '', '', 0, b'1', b'1', '', '2022-08-01 14:55:35', '', '2022-12-12 20:26:24', b'0'); | ||
| 1812 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2021, '规格创建', 'product:property:create', 3, 2, 2019, '', '', '', 0, b'1', b'1', '', '2022-08-01 14:55:35', '', '2022-12-12 20:26:30', b'0'); | ||
| 1813 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2022, '规格更新', 'product:property:update', 3, 3, 2019, '', '', '', 0, b'1', b'1', '', '2022-08-01 14:55:35', '', '2022-12-12 20:26:33', b'0'); | ||
| 1814 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2023, '规格删除', 'product:property:delete', 3, 4, 2019, '', '', '', 0, b'1', b'1', '', '2022-08-01 14:55:35', '', '2022-12-12 20:26:37', b'0'); | ||
| 1815 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2025, 'Banner管理', '', 2, 100, 2000, 'banner', '', 'mall/market/banner/index', 0, b'1', b'1', '', '2022-08-01 14:56:14', '1', '2022-10-24 22:29:39', b'0'); | ||
| 1816 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2026, 'Banner查询', 'market:banner:query', 3, 1, 2025, '', '', '', 0, b'1', b'1', '', '2022-08-01 14:56:14', '', '2022-08-01 14:56:14', b'0'); | ||
| 1817 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2027, 'Banner创建', 'market:banner:create', 3, 2, 2025, '', '', '', 0, b'1', b'1', '', '2022-08-01 14:56:14', '', '2022-08-01 14:56:14', b'0'); | ||
| 1818 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2028, 'Banner更新', 'market:banner:update', 3, 3, 2025, '', '', '', 0, b'1', b'1', '', '2022-08-01 14:56:14', '', '2022-08-01 14:56:14', b'0'); | ||
| 1819 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2029, 'Banner删除', 'market:banner:delete', 3, 4, 2025, '', '', '', 0, b'1', b'1', '', '2022-08-01 14:56:14', '', '2022-08-01 14:56:14', b'0'); | ||
| 1820 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2030, '营销中心', '', 1, 70, 0, '/promotion', 'rate', NULL, 0, b'1', b'1', '1', '2022-10-31 21:25:09', '1', '2022-10-31 21:25:09', b'0'); | ||
| 1821 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2032, '优惠劵', '', 2, 2, 2030, 'coupon-template', 'textarea', 'mall/promotion/couponTemplate/index', 0, b'1', b'1', '', '2022-10-31 22:27:14', '1', '2022-11-05 12:27:34', b'0'); | ||
| 1822 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2033, '优惠劵模板查询', 'promotion:coupon-template:query', 3, 1, 2032, '', '', '', 0, b'1', b'1', '', '2022-10-31 22:27:14', '', '2022-10-31 22:27:14', b'0'); | ||
| 1823 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2034, '优惠劵模板创建', 'promotion:coupon-template:create', 3, 2, 2032, '', '', '', 0, b'1', b'1', '', '2022-10-31 22:27:14', '', '2022-10-31 22:27:14', b'0'); | ||
| 1824 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2035, '优惠劵模板更新', 'promotion:coupon-template:update', 3, 3, 2032, '', '', '', 0, b'1', b'1', '', '2022-10-31 22:27:14', '', '2022-10-31 22:27:14', b'0'); | ||
| 1825 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2036, '优惠劵模板删除', 'promotion:coupon-template:delete', 3, 4, 2032, '', '', '', 0, b'1', b'1', '', '2022-10-31 22:27:14', '', '2022-10-31 22:27:14', b'0'); | ||
| 1826 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2038, '会员优惠劵', '', 2, 2, 2030, 'coupon', '', 'mall/promotion/coupon/index', 0, b'0', b'1', '', '2022-11-03 23:21:31', '1', '2022-11-05 12:27:45', b'0'); | ||
| 1827 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2039, '优惠劵查询', 'promotion:coupon:query', 3, 1, 2038, '', '', '', 0, b'1', b'1', '', '2022-11-03 23:21:31', '', '2022-11-03 23:21:31', b'0'); | ||
| 1828 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2040, '优惠劵删除', 'promotion:coupon:delete', 3, 4, 2038, '', '', '', 0, b'1', b'1', '', '2022-11-03 23:21:31', '', '2022-11-03 23:21:31', b'0'); | ||
| 1829 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2041, '满减送活动', '', 2, 10, 2030, 'reward-activity', 'radio', 'mall/promotion/rewardActivity/index', 0, b'1', b'1', '', '2022-11-04 23:47:49', '1', '2022-11-05 12:27:56', b'0'); | ||
| 1830 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2042, '满减送活动查询', 'promotion:reward-activity:query', 3, 1, 2041, '', '', '', 0, b'1', b'1', '', '2022-11-04 23:47:49', '', '2022-11-04 23:47:49', b'0'); | ||
| 1831 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2043, '满减送活动创建', 'promotion:reward-activity:create', 3, 2, 2041, '', '', '', 0, b'1', b'1', '', '2022-11-04 23:47:49', '', '2022-11-04 23:47:49', b'0'); | ||
| 1832 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2044, '满减送活动更新', 'promotion:reward-activity:update', 3, 3, 2041, '', '', '', 0, b'1', b'1', '', '2022-11-04 23:47:50', '', '2022-11-04 23:47:50', b'0'); | ||
| 1833 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2045, '满减送活动删除', 'promotion:reward-activity:delete', 3, 4, 2041, '', '', '', 0, b'1', b'1', '', '2022-11-04 23:47:50', '', '2022-11-04 23:47:50', b'0'); | ||
| 1834 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2046, '满减送活动关闭', 'promotion:reward-activity:close', 3, 5, 2041, '', '', '', 0, b'1', b'1', '1', '2022-11-05 10:42:53', '1', '2022-11-05 10:42:53', b'0'); | ||
| 1835 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2047, '限时折扣活动', '', 2, 7, 2030, 'discount-activity', 'time', 'mall/promotion/discountActivity/index', 0, b'1', b'1', '', '2022-11-05 17:12:15', '1', '2022-11-29 22:14:56', b'0'); | ||
| 1836 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2048, '限时折扣活动查询', 'promotion:discount-activity:query', 3, 1, 2047, '', '', '', 0, b'1', b'1', '', '2022-11-05 17:12:15', '', '2022-11-05 17:12:15', b'0'); | ||
| 1837 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2049, '限时折扣活动创建', 'promotion:discount-activity:create', 3, 2, 2047, '', '', '', 0, b'1', b'1', '', '2022-11-05 17:12:15', '', '2022-11-05 17:12:15', b'0'); | ||
| 1838 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2050, '限时折扣活动更新', 'promotion:discount-activity:update', 3, 3, 2047, '', '', '', 0, b'1', b'1', '', '2022-11-05 17:12:16', '', '2022-11-05 17:12:16', b'0'); | ||
| 1839 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2051, '限时折扣活动删除', 'promotion:discount-activity:delete', 3, 4, 2047, '', '', '', 0, b'1', b'1', '', '2022-11-05 17:12:16', '', '2022-11-05 17:12:16', b'0'); | ||
| 1840 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2052, '限时折扣活动关闭', 'promotion:discount-activity:close', 3, 5, 2047, '', '', '', 0, b'1', b'1', '', '2022-11-05 17:12:16', '', '2022-11-05 17:12:16', b'0'); | ||
| 1841 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2059, '秒杀活动管理', '', 2, 0, 2030, 'seckill-activity', 'time-range', 'mall/promotion/seckill/seckillActivity/index', 0, b'1', b'1', '', '2022-11-06 22:24:49', '1', '2022-11-29 22:24:39', b'0'); | ||
| 1842 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2060, '秒杀活动查询', 'promotion:seckill-activity:query', 3, 1, 2059, '', '', '', 0, b'1', b'1', '', '2022-11-06 22:24:49', '', '2022-11-06 22:24:49', b'0'); | ||
| 1843 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2061, '秒杀活动创建', 'promotion:seckill-activity:create', 3, 2, 2059, '', '', '', 0, b'1', b'1', '', '2022-11-06 22:24:49', '', '2022-11-06 22:24:49', b'0'); | ||
| 1844 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2062, '秒杀活动更新', 'promotion:seckill-activity:update', 3, 3, 2059, '', '', '', 0, b'1', b'1', '', '2022-11-06 22:24:49', '', '2022-11-06 22:24:49', b'0'); | ||
| 1845 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2063, '秒杀活动删除', 'promotion:seckill-activity:delete', 3, 4, 2059, '', '', '', 0, b'1', b'1', '', '2022-11-06 22:24:49', '', '2022-11-06 22:24:49', b'0'); | ||
| 1846 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2064, '秒杀活动导出', 'promotion:seckill-activity:export', 3, 5, 2059, '', '', '', 0, b'1', b'1', '', '2022-11-06 22:24:49', '', '2022-11-06 22:24:49', b'0'); | ||
| 1847 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2066, '秒杀时段管理', '', 2, 0, 2030, 'seckill-time', '', 'mall/promotion/seckill/seckillTime/index', 0, b'0', b'1', '', '2022-11-15 19:46:50', '1', '2022-11-29 22:09:03', b'0'); | ||
| 1848 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2067, '秒杀时段查询', 'promotion:seckill-time:query', 3, 1, 2066, '', '', '', 0, b'1', b'1', '', '2022-11-15 19:46:51', '', '2022-11-15 19:46:51', b'0'); | ||
| 1849 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2068, '秒杀时段创建', 'promotion:seckill-time:create', 3, 2, 2066, '', '', '', 0, b'1', b'1', '', '2022-11-15 19:46:51', '', '2022-11-15 19:46:51', b'0'); | ||
| 1850 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2069, '秒杀时段更新', 'promotion:seckill-time:update', 3, 3, 2066, '', '', '', 0, b'1', b'1', '', '2022-11-15 19:46:51', '', '2022-11-15 19:46:51', b'0'); | ||
| 1851 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2070, '秒杀时段删除', 'promotion:seckill-time:delete', 3, 4, 2066, '', '', '', 0, b'1', b'1', '', '2022-11-15 19:46:51', '', '2022-11-15 19:46:51', b'0'); | ||
| 1852 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2071, '秒杀时段导出', 'promotion:seckill-time:export', 3, 5, 2066, '', '', '', 0, b'1', b'1', '', '2022-11-15 19:46:51', '', '2022-11-15 19:46:51', b'0'); | ||
| 1853 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2072, '订单中心', '', 1, 65, 0, '/trade', 'order', NULL, 0, b'1', b'1', '1', '2022-11-19 18:57:19', '1', '2022-12-10 16:32:57', b'0'); | ||
| 1854 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2073, '售后退款', '', 2, 1, 2072, 'trade/after-sale', 'education', 'mall/trade/afterSale/index', 0, b'1', b'1', '', '2022-11-19 20:15:32', '1', '2022-12-10 21:11:02', b'0'); | ||
| 1855 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2074, '售后查询', 'trade:after-sale:query', 3, 1, 2073, '', '', '', 0, b'1', b'1', '', '2022-11-19 20:15:33', '1', '2022-12-10 21:04:29', b'0'); | ||
| 1856 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2075, '秒杀活动关闭', 'promotion:sekill-activity:close', 3, 6, 2059, '', '', '', 0, b'1', b'1', '1', '2022-11-28 20:20:15', '1', '2022-11-28 20:20:15', b'0'); | ||
| 1857 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2076, '订单列表', '', 2, 0, 2072, 'trade/order', 'list', 'mall/trade/order/index', 0, b'1', b'1', '1', '2022-12-10 21:05:44', '1', '2022-12-10 21:08:44', b'0'); | ||
| 1858 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2077, '物流公司管理管理', '', 2, 0, 2072, 'express-company', '', 'mall/trade/expressCompany/index', 0, b'1', b'1', '', '2022-12-20 23:27:55', '1', '2022-12-20 23:36:20', b'0'); | ||
| 1859 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2078, '物流公司管理查询', 'trade:express-company:query', 3, 1, 2077, '', '', '', 0, b'1', b'1', '', '2022-12-20 23:27:55', '', '2022-12-20 23:27:55', b'0'); | ||
| 1860 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2079, '物流公司管理创建', 'trade:express-company:create', 3, 2, 2077, '', '', '', 0, b'1', b'1', '', '2022-12-20 23:27:55', '', '2022-12-20 23:27:55', b'0'); | ||
| 1861 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2080, '物流公司管理更新', 'trade:express-company:update', 3, 3, 2077, '', '', '', 0, b'1', b'1', '', '2022-12-20 23:27:55', '', '2022-12-20 23:27:55', b'0'); | ||
| 1862 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2081, '物流公司管理删除', 'trade:express-company:delete', 3, 4, 2077, '', '', '', 0, b'1', b'1', '', '2022-12-20 23:27:55', '', '2022-12-20 23:27:55', b'0'); | ||
| 1863 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2082, '物流公司管理导出', 'trade:express-company:export', 3, 5, 2077, '', '', '', 0, b'1', b'1', '', '2022-12-20 23:27:55', '', '2022-12-20 23:27:55', b'0'); | ||
| 1864 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2083, '地区管理', '', 2, 14, 1, 'area', 'row', 'system/area/index', 0, b'1', b'1', '1', '2022-12-23 17:35:05', '1', '2022-12-23 17:35:48', b'0'); | ||
| 1865 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2084, '公众号管理', '', 1, 100, 0, '/mp', 'wechat', NULL, 0, b'1', b'1', '1', '2023-01-01 20:11:04', '1', '2023-01-15 11:28:57', b'0'); | ||
| 1866 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2085, '账号管理', 'mp:account:query', 2, 1, 2084, 'account', 'phone', 'mp/account/index', 0, b'1', b'1', '1', '2023-01-01 20:13:31', '1', '2023-01-01 20:14:39', b'0'); | ||
| 1867 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2086, '新增账号', 'mp:account:create', 3, 1, 2085, '', '', '', 0, b'1', b'1', '1', '2023-01-01 20:21:40', '1', '2023-01-07 17:32:53', b'0'); | ||
| 1868 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2087, '修改账号', 'mp:account:update', 3, 2, 2085, '', '', '', 0, b'1', b'1', '1', '2023-01-07 17:32:46', '1', '2023-01-07 17:32:46', b'0'); | ||
| 1869 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2088, '查询账号', 'mp:account:query', 3, 0, 2085, '', '', '', 0, b'1', b'1', '1', '2023-01-07 17:33:07', '1', '2023-01-07 17:33:07', b'0'); | ||
| 1870 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2089, '删除账号', 'mp:account:delete', 3, 3, 2085, '', '', '', 0, b'1', b'1', '1', '2023-01-07 17:33:21', '1', '2023-01-07 17:33:21', b'0'); | ||
| 1871 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2090, '生成二维码', 'mp:account:qr-code', 3, 4, 2085, '', '', '', 0, b'1', b'1', '1', '2023-01-07 17:33:58', '1', '2023-01-07 17:33:58', b'0'); | ||
| 1872 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2091, '清空 API 配额', 'mp:account:clear-quota', 3, 5, 2085, '', '', '', 0, b'1', b'1', '1', '2023-01-07 18:20:32', '1', '2023-01-07 18:20:59', b'0'); | ||
| 1873 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2092, '数据统计', 'mp:statistics:query', 2, 2, 2084, 'statistics', 'chart', 'mp/statistics/index', 0, b'1', b'1', '1', '2023-01-07 20:17:36', '1', '2023-01-07 20:17:36', b'0'); | ||
| 1874 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2093, '标签管理', '', 2, 3, 2084, 'tag', 'rate', 'mp/tag/index', 0, b'1', b'1', '1', '2023-01-08 11:37:32', '1', '2023-01-08 11:37:40', b'0'); | ||
| 1875 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2094, '查询标签', 'mp:tag:query', 3, 0, 2093, '', '', '', 0, b'1', b'1', '1', '2023-01-08 11:59:03', '1', '2023-01-08 11:59:03', b'0'); | ||
| 1876 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2095, '新增标签', 'mp:tag:create', 3, 1, 2093, '', '', '', 0, b'1', b'1', '1', '2023-01-08 11:59:23', '1', '2023-01-08 11:59:23', b'0'); | ||
| 1877 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2096, '修改标签', 'mp:tag:update', 3, 2, 2093, '', '', '', 0, b'1', b'1', '1', '2023-01-08 11:59:41', '1', '2023-01-08 11:59:41', b'0'); | ||
| 1878 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2097, '删除标签', 'mp:tag:delete', 3, 3, 2093, '', '', '', 0, b'1', b'1', '1', '2023-01-08 12:00:04', '1', '2023-01-08 12:00:13', b'0'); | ||
| 1879 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2098, '同步标签', 'mp:tag:sync', 3, 4, 2093, '', '', '', 0, b'1', b'1', '1', '2023-01-08 12:00:29', '1', '2023-01-08 12:00:29', b'0'); | ||
| 1880 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2099, '粉丝管理', '', 2, 4, 2084, 'user', 'people', 'mp/user/index', 0, b'1', b'1', '1', '2023-01-08 16:51:20', '1', '2023-01-08 16:56:19', b'0'); | ||
| 1881 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2100, '查询粉丝', 'mp:user:query', 3, 0, 2099, '', '', '', 0, b'1', b'1', '1', '2023-01-08 17:16:59', '1', '2023-01-08 17:17:23', b'0'); | ||
| 1882 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2101, '修改粉丝', 'mp:user:update', 3, 1, 2099, '', '', '', 0, b'1', b'1', '1', '2023-01-08 17:17:11', '1', '2023-01-08 17:17:11', b'0'); | ||
| 1883 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2102, '同步粉丝', 'mp:user:sync', 3, 2, 2099, '', '', '', 0, b'1', b'1', '1', '2023-01-08 17:17:40', '1', '2023-01-08 17:17:40', b'0'); | ||
| 1884 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2103, '消息管理', '', 2, 5, 2084, 'message', 'email', 'mp/message/index', 0, b'1', b'1', '1', '2023-01-08 18:44:19', '1', '2023-01-08 18:44:19', b'0'); | ||
| 1885 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2104, '图文发表记录', '', 2, 10, 2084, 'free-publish', 'education', 'mp/freePublish/index', 0, b'1', b'1', '1', '2023-01-13 00:30:50', '1', '2023-01-13 00:30:50', b'0'); | ||
| 1886 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2105, '查询发布列表', 'mp:free-publish:query', 3, 1, 2104, '', '', '', 0, b'1', b'1', '1', '2023-01-13 07:19:17', '1', '2023-01-13 07:19:17', b'0'); | ||
| 1887 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2106, '发布草稿', 'mp:free-publish:submit', 3, 2, 2104, '', '', '', 0, b'1', b'1', '1', '2023-01-13 07:19:46', '1', '2023-01-13 07:19:46', b'0'); | ||
| 1888 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2107, '删除发布记录', 'mp:free-publish:delete', 3, 3, 2104, '', '', '', 0, b'1', b'1', '1', '2023-01-13 07:20:01', '1', '2023-01-13 07:20:01', b'0'); | ||
| 1889 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2108, '图文草稿箱', '', 2, 9, 2084, 'draft', 'edit', 'mp/draft/index', 0, b'1', b'1', '1', '2023-01-13 07:40:21', '1', '2023-01-13 07:40:21', b'0'); | ||
| 1890 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2109, '新建草稿', 'mp:draft:create', 3, 1, 2108, '', '', '', 0, b'1', b'1', '1', '2023-01-13 23:15:30', '1', '2023-01-13 23:15:44', b'0'); | ||
| 1891 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2110, '修改草稿', 'mp:draft:update', 3, 2, 2108, '', '', '', 0, b'1', b'1', '1', '2023-01-14 10:08:47', '1', '2023-01-14 10:08:47', b'0'); | ||
| 1892 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2111, '查询草稿', 'mp:draft:query', 3, 0, 2108, '', '', '', 0, b'1', b'1', '1', '2023-01-14 10:09:01', '1', '2023-01-14 10:09:01', b'0'); | ||
| 1893 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2112, '删除草稿', 'mp:draft:delete', 3, 3, 2108, '', '', '', 0, b'1', b'1', '1', '2023-01-14 10:09:19', '1', '2023-01-14 10:09:19', b'0'); | ||
| 1894 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2113, '素材管理', '', 2, 8, 2084, 'material', 'skill', 'mp/material/index', 0, b'1', b'1', '1', '2023-01-14 14:12:07', '1', '2023-01-14 14:13:03', b'0'); | ||
| 1895 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2114, '上传临时素材', 'mp:material:upload-temporary', 3, 1, 2113, '', '', '', 0, b'1', b'1', '1', '2023-01-14 15:33:55', '1', '2023-01-14 15:33:55', b'0'); | ||
| 1896 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2115, '上传永久素材', 'mp:material:upload-permanent', 3, 2, 2113, '', '', '', 0, b'1', b'1', '1', '2023-01-14 15:34:14', '1', '2023-01-14 15:34:14', b'0'); | ||
| 1897 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2116, '删除素材', 'mp:material:delete', 3, 3, 2113, '', '', '', 0, b'1', b'1', '1', '2023-01-14 15:35:37', '1', '2023-01-14 15:35:37', b'0'); | ||
| 1898 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2117, '上传图文图片', 'mp:material:upload-news-image', 3, 4, 2113, '', '', '', 0, b'1', b'1', '1', '2023-01-14 15:36:31', '1', '2023-01-14 15:36:31', b'0'); | ||
| 1899 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2118, '查询素材', 'mp:material:query', 3, 5, 2113, '', '', '', 0, b'1', b'1', '1', '2023-01-14 15:39:22', '1', '2023-01-14 15:39:22', b'0'); | ||
| 1900 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2119, '菜单管理', '', 2, 6, 2084, 'menu', 'button', 'mp/menu/index', 0, b'1', b'1', '1', '2023-01-14 17:43:54', '1', '2023-01-14 17:43:54', b'0'); | ||
| 1901 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2120, '自动回复', '', 2, 7, 2084, 'auto-reply', 'eye', 'mp/autoReply/index', 0, b'1', b'1', '1', '2023-01-15 22:13:09', '1', '2023-01-15 22:13:09', b'0'); | ||
| 1902 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2121, '查询回复', 'mp:auto-reply:query', 3, 0, 2120, '', '', '', 0, b'1', b'1', '1', '2023-01-16 22:28:41', '1', '2023-01-16 22:28:41', b'0'); | ||
| 1903 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2122, '新增回复', 'mp:auto-reply:create', 3, 1, 2120, '', '', '', 0, b'1', b'1', '1', '2023-01-16 22:28:54', '1', '2023-01-16 22:28:54', b'0'); | ||
| 1904 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2123, '修改回复', 'mp:auto-reply:update', 3, 2, 2120, '', '', '', 0, b'1', b'1', '1', '2023-01-16 22:29:05', '1', '2023-01-16 22:29:05', b'0'); | ||
| 1905 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2124, '删除回复', 'mp:auto-reply:delete', 3, 3, 2120, '', '', '', 0, b'1', b'1', '1', '2023-01-16 22:29:34', '1', '2023-01-16 22:29:34', b'0'); | ||
| 1906 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2125, '查询菜单', 'mp:menu:query', 3, 0, 2119, '', '', '', 0, b'1', b'1', '1', '2023-01-17 23:05:41', '1', '2023-01-17 23:05:41', b'0'); | ||
| 1907 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2126, '保存菜单', 'mp:menu:save', 3, 1, 2119, '', '', '', 0, b'1', b'1', '1', '2023-01-17 23:06:01', '1', '2023-01-17 23:06:01', b'0'); | ||
| 1908 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2127, '删除菜单', 'mp:menu:delete', 3, 2, 2119, '', '', '', 0, b'1', b'1', '1', '2023-01-17 23:06:16', '1', '2023-01-17 23:06:16', b'0'); | ||
| 1909 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2128, '查询消息', 'mp:message:query', 3, 0, 2103, '', '', '', 0, b'1', b'1', '1', '2023-01-17 23:07:14', '1', '2023-01-17 23:07:14', b'0'); | ||
| 1910 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2129, '发送消息', 'mp:message:send', 3, 1, 2103, '', '', '', 0, b'1', b'1', '1', '2023-01-17 23:07:26', '1', '2023-01-17 23:07:26', b'0'); | ||
| 1715 | COMMIT; | 1911 | COMMIT; |
| 1716 | 1912 | ||
| 1717 | -- ---------------------------- | 1913 | -- ---------------------------- |
| @@ -1762,7 +1958,7 @@ CREATE TABLE `system_oauth2_access_token` ( | @@ -1762,7 +1958,7 @@ CREATE TABLE `system_oauth2_access_token` ( | ||
| 1762 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', | 1958 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', |
| 1763 | `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', | 1959 | `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', |
| 1764 | PRIMARY KEY (`id`) USING BTREE | 1960 | PRIMARY KEY (`id`) USING BTREE |
| 1765 | -) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = 'OAuth2 访问令牌'; | 1961 | +) ENGINE = InnoDB AUTO_INCREMENT = 1083 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = 'OAuth2 访问令牌'; |
| 1766 | 1962 | ||
| 1767 | -- ---------------------------- | 1963 | -- ---------------------------- |
| 1768 | -- Records of system_oauth2_access_token | 1964 | -- Records of system_oauth2_access_token |
| @@ -1789,7 +1985,7 @@ CREATE TABLE `system_oauth2_approve` ( | @@ -1789,7 +1985,7 @@ CREATE TABLE `system_oauth2_approve` ( | ||
| 1789 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', | 1985 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', |
| 1790 | `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', | 1986 | `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', |
| 1791 | PRIMARY KEY (`id`) USING BTREE | 1987 | PRIMARY KEY (`id`) USING BTREE |
| 1792 | -) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = 'OAuth2 批准表'; | 1988 | +) ENGINE = InnoDB AUTO_INCREMENT = 82 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = 'OAuth2 批准表'; |
| 1793 | 1989 | ||
| 1794 | -- ---------------------------- | 1990 | -- ---------------------------- |
| 1795 | -- Records of system_oauth2_approve | 1991 | -- Records of system_oauth2_approve |
| @@ -1824,7 +2020,7 @@ CREATE TABLE `system_oauth2_client` ( | @@ -1824,7 +2020,7 @@ CREATE TABLE `system_oauth2_client` ( | ||
| 1824 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', | 2020 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', |
| 1825 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', | 2021 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', |
| 1826 | PRIMARY KEY (`id`) USING BTREE | 2022 | PRIMARY KEY (`id`) USING BTREE |
| 1827 | -) ENGINE = InnoDB AUTO_INCREMENT = 41 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = 'OAuth2 客户端表'; | 2023 | +) ENGINE = InnoDB AUTO_INCREMENT = 43 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = 'OAuth2 客户端表'; |
| 1828 | 2024 | ||
| 1829 | -- ---------------------------- | 2025 | -- ---------------------------- |
| 1830 | -- Records of system_oauth2_client | 2026 | -- Records of system_oauth2_client |
| @@ -1832,6 +2028,8 @@ CREATE TABLE `system_oauth2_client` ( | @@ -1832,6 +2028,8 @@ CREATE TABLE `system_oauth2_client` ( | ||
| 1832 | BEGIN; | 2028 | BEGIN; |
| 1833 | INSERT INTO `system_oauth2_client` (`id`, `client_id`, `secret`, `name`, `logo`, `description`, `status`, `access_token_validity_seconds`, `refresh_token_validity_seconds`, `redirect_uris`, `authorized_grant_types`, `scopes`, `auto_approve_scopes`, `authorities`, `resource_ids`, `additional_information`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1, 'default', 'admin123', '芋道源码', 'http://test.yudao.iocoder.cn/a5e2e244368878a366b516805a4aabf1.png', '我是描述', 0, 1800, 43200, '[\"https://www.iocoder.cn\",\"https://doc.iocoder.cn\"]', '[\"password\",\"authorization_code\",\"implicit\",\"refresh_token\"]', '[\"user.read\",\"user.write\"]', '[]', '[\"user.read\",\"user.write\"]', '[]', '{}', '1', '2022-05-11 21:47:12', '1', '2022-07-05 16:23:52', b'0'); | 2029 | INSERT INTO `system_oauth2_client` (`id`, `client_id`, `secret`, `name`, `logo`, `description`, `status`, `access_token_validity_seconds`, `refresh_token_validity_seconds`, `redirect_uris`, `authorized_grant_types`, `scopes`, `auto_approve_scopes`, `authorities`, `resource_ids`, `additional_information`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1, 'default', 'admin123', '芋道源码', 'http://test.yudao.iocoder.cn/a5e2e244368878a366b516805a4aabf1.png', '我是描述', 0, 1800, 43200, '[\"https://www.iocoder.cn\",\"https://doc.iocoder.cn\"]', '[\"password\",\"authorization_code\",\"implicit\",\"refresh_token\"]', '[\"user.read\",\"user.write\"]', '[]', '[\"user.read\",\"user.write\"]', '[]', '{}', '1', '2022-05-11 21:47:12', '1', '2022-07-05 16:23:52', b'0'); |
| 1834 | INSERT INTO `system_oauth2_client` (`id`, `client_id`, `secret`, `name`, `logo`, `description`, `status`, `access_token_validity_seconds`, `refresh_token_validity_seconds`, `redirect_uris`, `authorized_grant_types`, `scopes`, `auto_approve_scopes`, `authorities`, `resource_ids`, `additional_information`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (40, 'test', 'test2', 'biubiu', 'http://test.yudao.iocoder.cn/277a899d573723f1fcdfb57340f00379.png', NULL, 0, 1800, 43200, '[\"https://www.iocoder.cn\"]', '[\"password\",\"authorization_code\",\"implicit\"]', '[\"user_info\",\"projects\"]', '[\"user_info\"]', '[]', '[]', '{}', '1', '2022-05-12 00:28:20', '1', '2022-06-19 00:26:13', b'0'); | 2030 | INSERT INTO `system_oauth2_client` (`id`, `client_id`, `secret`, `name`, `logo`, `description`, `status`, `access_token_validity_seconds`, `refresh_token_validity_seconds`, `redirect_uris`, `authorized_grant_types`, `scopes`, `auto_approve_scopes`, `authorities`, `resource_ids`, `additional_information`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (40, 'test', 'test2', 'biubiu', 'http://test.yudao.iocoder.cn/277a899d573723f1fcdfb57340f00379.png', NULL, 0, 1800, 43200, '[\"https://www.iocoder.cn\"]', '[\"password\",\"authorization_code\",\"implicit\"]', '[\"user_info\",\"projects\"]', '[\"user_info\"]', '[]', '[]', '{}', '1', '2022-05-12 00:28:20', '1', '2022-06-19 00:26:13', b'0'); |
| 2031 | +INSERT INTO `system_oauth2_client` (`id`, `client_id`, `secret`, `name`, `logo`, `description`, `status`, `access_token_validity_seconds`, `refresh_token_validity_seconds`, `redirect_uris`, `authorized_grant_types`, `scopes`, `auto_approve_scopes`, `authorities`, `resource_ids`, `additional_information`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (41, 'yudao-sso-demo-by-code', 'test', '基于授权码模式,如何实现 SSO 单点登录?', 'http://test.yudao.iocoder.cn/fe4ed36596adad5120036ef61a6d0153654544d44af8dd4ad3ffe8f759933d6f.png', NULL, 0, 1800, 43200, '[\"http://127.0.0.1:18080\"]', '[\"authorization_code\",\"refresh_token\"]', '[\"user.read\",\"user.write\"]', '[]', '[]', '[]', NULL, '1', '2022-09-29 13:28:31', '1', '2022-09-29 13:28:31', b'0'); | ||
| 2032 | +INSERT INTO `system_oauth2_client` (`id`, `client_id`, `secret`, `name`, `logo`, `description`, `status`, `access_token_validity_seconds`, `refresh_token_validity_seconds`, `redirect_uris`, `authorized_grant_types`, `scopes`, `auto_approve_scopes`, `authorities`, `resource_ids`, `additional_information`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (42, 'yudao-sso-demo-by-password', 'test', '基于密码模式,如何实现 SSO 单点登录?', 'http://test.yudao.iocoder.cn/604bdc695e13b3b22745be704d1f2aa8ee05c5f26f9fead6d1ca49005afbc857.jpeg', NULL, 0, 1800, 43200, '[\"http://127.0.0.1:18080\"]', '[\"password\",\"refresh_token\"]', '[\"user.read\",\"user.write\"]', '[]', '[]', '[]', NULL, '1', '2022-10-04 17:40:16', '1', '2022-10-04 20:31:21', b'0'); | ||
| 1835 | COMMIT; | 2033 | COMMIT; |
| 1836 | 2034 | ||
| 1837 | -- ---------------------------- | 2035 | -- ---------------------------- |
| @@ -1855,7 +2053,7 @@ CREATE TABLE `system_oauth2_code` ( | @@ -1855,7 +2053,7 @@ CREATE TABLE `system_oauth2_code` ( | ||
| 1855 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', | 2053 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', |
| 1856 | `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', | 2054 | `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', |
| 1857 | PRIMARY KEY (`id`) USING BTREE | 2055 | PRIMARY KEY (`id`) USING BTREE |
| 1858 | -) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = 'OAuth2 授权码表'; | 2056 | +) ENGINE = InnoDB AUTO_INCREMENT = 143 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = 'OAuth2 授权码表'; |
| 1859 | 2057 | ||
| 1860 | -- ---------------------------- | 2058 | -- ---------------------------- |
| 1861 | -- Records of system_oauth2_code | 2059 | -- Records of system_oauth2_code |
| @@ -1882,7 +2080,7 @@ CREATE TABLE `system_oauth2_refresh_token` ( | @@ -1882,7 +2080,7 @@ CREATE TABLE `system_oauth2_refresh_token` ( | ||
| 1882 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', | 2080 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', |
| 1883 | `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', | 2081 | `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', |
| 1884 | PRIMARY KEY (`id`) USING BTREE | 2082 | PRIMARY KEY (`id`) USING BTREE |
| 1885 | -) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '刷新令牌'; | 2083 | +) ENGINE = InnoDB AUTO_INCREMENT = 571 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = 'OAuth2 刷新令牌'; |
| 1886 | 2084 | ||
| 1887 | -- ---------------------------- | 2085 | -- ---------------------------- |
| 1888 | -- Records of system_oauth2_refresh_token | 2086 | -- Records of system_oauth2_refresh_token |
| @@ -1922,7 +2120,7 @@ CREATE TABLE `system_operate_log` ( | @@ -1922,7 +2120,7 @@ CREATE TABLE `system_operate_log` ( | ||
| 1922 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', | 2120 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', |
| 1923 | `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', | 2121 | `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', |
| 1924 | PRIMARY KEY (`id`) USING BTREE | 2122 | PRIMARY KEY (`id`) USING BTREE |
| 1925 | -) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '操作日志记录'; | 2123 | +) ENGINE = InnoDB AUTO_INCREMENT = 4018 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '操作日志记录'; |
| 1926 | 2124 | ||
| 1927 | -- ---------------------------- | 2125 | -- ---------------------------- |
| 1928 | -- Records of system_operate_log | 2126 | -- Records of system_operate_log |
| @@ -1980,7 +2178,7 @@ CREATE TABLE `system_role` ( | @@ -1980,7 +2178,7 @@ CREATE TABLE `system_role` ( | ||
| 1980 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', | 2178 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', |
| 1981 | `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', | 2179 | `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', |
| 1982 | PRIMARY KEY (`id`) USING BTREE | 2180 | PRIMARY KEY (`id`) USING BTREE |
| 1983 | -) ENGINE = InnoDB AUTO_INCREMENT = 114 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '角色信息表'; | 2181 | +) ENGINE = InnoDB AUTO_INCREMENT = 119 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '角色信息表'; |
| 1984 | 2182 | ||
| 1985 | -- ---------------------------- | 2183 | -- ---------------------------- |
| 1986 | -- Records of system_role | 2184 | -- Records of system_role |
| @@ -1988,11 +2186,15 @@ CREATE TABLE `system_role` ( | @@ -1988,11 +2186,15 @@ CREATE TABLE `system_role` ( | ||
| 1988 | BEGIN; | 2186 | BEGIN; |
| 1989 | INSERT INTO `system_role` (`id`, `name`, `code`, `sort`, `data_scope`, `data_scope_dept_ids`, `status`, `type`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1, '超级管理员', 'super_admin', 1, 1, '', 0, 1, '超级管理员', 'admin', '2021-01-05 17:03:48', '', '2022-02-22 05:08:21', b'0', 1); | 2187 | INSERT INTO `system_role` (`id`, `name`, `code`, `sort`, `data_scope`, `data_scope_dept_ids`, `status`, `type`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1, '超级管理员', 'super_admin', 1, 1, '', 0, 1, '超级管理员', 'admin', '2021-01-05 17:03:48', '', '2022-02-22 05:08:21', b'0', 1); |
| 1990 | INSERT INTO `system_role` (`id`, `name`, `code`, `sort`, `data_scope`, `data_scope_dept_ids`, `status`, `type`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2, '普通角色', 'common', 2, 2, '', 0, 1, '普通角色', 'admin', '2021-01-05 17:03:48', '', '2022-02-22 05:08:20', b'0', 1); | 2188 | INSERT INTO `system_role` (`id`, `name`, `code`, `sort`, `data_scope`, `data_scope_dept_ids`, `status`, `type`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2, '普通角色', 'common', 2, 2, '', 0, 1, '普通角色', 'admin', '2021-01-05 17:03:48', '', '2022-02-22 05:08:20', b'0', 1); |
| 1991 | -INSERT INTO `system_role` (`id`, `name`, `code`, `sort`, `data_scope`, `data_scope_dept_ids`, `status`, `type`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (101, '测试账号', 'test', 0, 1, '[]', 0, 2, '132', '', '2021-01-06 13:49:35', '1', '2022-06-18 23:59:29', b'0', 1); | 2189 | +INSERT INTO `system_role` (`id`, `name`, `code`, `sort`, `data_scope`, `data_scope_dept_ids`, `status`, `type`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (101, '测试账号', 'test', 0, 1, '[]', 0, 2, '132', '', '2021-01-06 13:49:35', '1', '2022-09-25 12:09:38', b'0', 1); |
| 1992 | INSERT INTO `system_role` (`id`, `name`, `code`, `sort`, `data_scope`, `data_scope_dept_ids`, `status`, `type`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (109, '租户管理员', 'tenant_admin', 0, 1, '', 0, 1, '系统自动生成', '1', '2022-02-22 00:56:14', '1', '2022-02-22 00:56:14', b'0', 121); | 2190 | INSERT INTO `system_role` (`id`, `name`, `code`, `sort`, `data_scope`, `data_scope_dept_ids`, `status`, `type`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (109, '租户管理员', 'tenant_admin', 0, 1, '', 0, 1, '系统自动生成', '1', '2022-02-22 00:56:14', '1', '2022-02-22 00:56:14', b'0', 121); |
| 1993 | INSERT INTO `system_role` (`id`, `name`, `code`, `sort`, `data_scope`, `data_scope_dept_ids`, `status`, `type`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (110, '测试角色', 'test', 0, 1, '[]', 0, 2, '嘿嘿', '110', '2022-02-23 00:14:34', '110', '2022-02-23 13:14:58', b'0', 121); | 2191 | INSERT INTO `system_role` (`id`, `name`, `code`, `sort`, `data_scope`, `data_scope_dept_ids`, `status`, `type`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (110, '测试角色', 'test', 0, 1, '[]', 0, 2, '嘿嘿', '110', '2022-02-23 00:14:34', '110', '2022-02-23 13:14:58', b'0', 121); |
| 1994 | INSERT INTO `system_role` (`id`, `name`, `code`, `sort`, `data_scope`, `data_scope_dept_ids`, `status`, `type`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (111, '租户管理员', 'tenant_admin', 0, 1, '', 0, 1, '系统自动生成', '1', '2022-03-07 21:37:58', '1', '2022-03-07 21:37:58', b'0', 122); | 2192 | INSERT INTO `system_role` (`id`, `name`, `code`, `sort`, `data_scope`, `data_scope_dept_ids`, `status`, `type`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (111, '租户管理员', 'tenant_admin', 0, 1, '', 0, 1, '系统自动生成', '1', '2022-03-07 21:37:58', '1', '2022-03-07 21:37:58', b'0', 122); |
| 1995 | INSERT INTO `system_role` (`id`, `name`, `code`, `sort`, `data_scope`, `data_scope_dept_ids`, `status`, `type`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (113, '租户管理员', 'tenant_admin', 0, 1, '', 0, 1, '系统自动生成', '1', '2022-05-17 10:07:10', '1', '2022-05-17 10:07:10', b'0', 124); | 2193 | INSERT INTO `system_role` (`id`, `name`, `code`, `sort`, `data_scope`, `data_scope_dept_ids`, `status`, `type`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (113, '租户管理员', 'tenant_admin', 0, 1, '', 0, 1, '系统自动生成', '1', '2022-05-17 10:07:10', '1', '2022-05-17 10:07:10', b'0', 124); |
| 2194 | +INSERT INTO `system_role` (`id`, `name`, `code`, `sort`, `data_scope`, `data_scope_dept_ids`, `status`, `type`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (114, '租户管理员', 'tenant_admin', 0, 1, '', 0, 1, '系统自动生成', '1', '2022-12-30 11:32:03', '1', '2022-12-30 11:32:03', b'0', 125); | ||
| 2195 | +INSERT INTO `system_role` (`id`, `name`, `code`, `sort`, `data_scope`, `data_scope_dept_ids`, `status`, `type`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (115, '租户管理员', 'tenant_admin', 0, 1, '', 0, 1, '系统自动生成', '1', '2022-12-30 11:33:42', '1', '2022-12-30 11:33:42', b'0', 126); | ||
| 2196 | +INSERT INTO `system_role` (`id`, `name`, `code`, `sort`, `data_scope`, `data_scope_dept_ids`, `status`, `type`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (116, '租户管理员', 'tenant_admin', 0, 1, '', 0, 1, '系统自动生成', '1', '2022-12-30 11:33:48', '1', '2022-12-30 11:33:48', b'0', 127); | ||
| 2197 | +INSERT INTO `system_role` (`id`, `name`, `code`, `sort`, `data_scope`, `data_scope_dept_ids`, `status`, `type`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (118, '租户管理员', 'tenant_admin', 0, 1, '', 0, 1, '系统自动生成', '1', '2022-12-30 11:47:52', '1', '2022-12-30 11:47:52', b'0', 129); | ||
| 1996 | COMMIT; | 2198 | COMMIT; |
| 1997 | 2199 | ||
| 1998 | -- ---------------------------- | 2200 | -- ---------------------------- |
| @@ -2010,7 +2212,7 @@ CREATE TABLE `system_role_menu` ( | @@ -2010,7 +2212,7 @@ CREATE TABLE `system_role_menu` ( | ||
| 2010 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', | 2212 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', |
| 2011 | `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', | 2213 | `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', |
| 2012 | PRIMARY KEY (`id`) USING BTREE | 2214 | PRIMARY KEY (`id`) USING BTREE |
| 2013 | -) ENGINE = InnoDB AUTO_INCREMENT = 1729 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '角色和菜单关联表'; | 2215 | +) ENGINE = InnoDB AUTO_INCREMENT = 1991 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '角色和菜单关联表'; |
| 2014 | 2216 | ||
| 2015 | -- ---------------------------- | 2217 | -- ---------------------------- |
| 2016 | -- Records of system_role_menu | 2218 | -- Records of system_role_menu |
| @@ -2051,8 +2253,6 @@ INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_t | @@ -2051,8 +2253,6 @@ INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_t | ||
| 2051 | INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (706, 2, 112, '1', '2022-02-22 13:16:57', '1', '2022-02-22 13:16:57', b'0', 1); | 2253 | INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (706, 2, 112, '1', '2022-02-22 13:16:57', '1', '2022-02-22 13:16:57', b'0', 1); |
| 2052 | INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (707, 2, 113, '1', '2022-02-22 13:16:57', '1', '2022-02-22 13:16:57', b'0', 1); | 2254 | INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (707, 2, 113, '1', '2022-02-22 13:16:57', '1', '2022-02-22 13:16:57', b'0', 1); |
| 2053 | INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1296, 110, 1, '110', '2022-02-23 00:23:55', '110', '2022-02-23 00:23:55', b'0', 121); | 2255 | INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1296, 110, 1, '110', '2022-02-23 00:23:55', '110', '2022-02-23 00:23:55', b'0', 121); |
| 2054 | -INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1486, 109, 103, '1', '2022-02-23 19:32:14', '1', '2022-02-23 19:32:14', b'0', 121); | ||
| 2055 | -INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1487, 109, 104, '1', '2022-02-23 19:32:14', '1', '2022-02-23 19:32:14', b'0', 121); | ||
| 2056 | INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1489, 1, 1, '1', '2022-02-23 20:03:57', '1', '2022-02-23 20:03:57', b'0', 1); | 2256 | INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1489, 1, 1, '1', '2022-02-23 20:03:57', '1', '2022-02-23 20:03:57', b'0', 1); |
| 2057 | INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1490, 1, 2, '1', '2022-02-23 20:03:57', '1', '2022-02-23 20:03:57', b'0', 1); | 2257 | INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1490, 1, 2, '1', '2022-02-23 20:03:57', '1', '2022-02-23 20:03:57', b'0', 1); |
| 2058 | INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1494, 1, 1077, '1', '2022-02-23 20:03:57', '1', '2022-02-23 20:03:57', b'0', 1); | 2258 | INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1494, 1, 1077, '1', '2022-02-23 20:03:57', '1', '2022-02-23 20:03:57', b'0', 1); |
| @@ -2086,37 +2286,7 @@ INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_t | @@ -2086,37 +2286,7 @@ INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_t | ||
| 2086 | INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1526, 1, 1225, '1', '2022-02-23 20:03:57', '1', '2022-02-23 20:03:57', b'0', 1); | 2286 | INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1526, 1, 1225, '1', '2022-02-23 20:03:57', '1', '2022-02-23 20:03:57', b'0', 1); |
| 2087 | INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1527, 1, 500, '1', '2022-02-23 20:03:57', '1', '2022-02-23 20:03:57', b'0', 1); | 2287 | INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1527, 1, 500, '1', '2022-02-23 20:03:57', '1', '2022-02-23 20:03:57', b'0', 1); |
| 2088 | INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1528, 1, 501, '1', '2022-02-23 20:03:57', '1', '2022-02-23 20:03:57', b'0', 1); | 2288 | INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1528, 1, 501, '1', '2022-02-23 20:03:57', '1', '2022-02-23 20:03:57', b'0', 1); |
| 2089 | -INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1529, 109, 1024, '1', '2022-02-23 20:30:14', '1', '2022-02-23 20:30:14', b'0', 121); | ||
| 2090 | -INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1530, 109, 1025, '1', '2022-02-23 20:30:14', '1', '2022-02-23 20:30:14', b'0', 121); | ||
| 2091 | -INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1536, 109, 1017, '1', '2022-02-23 20:30:14', '1', '2022-02-23 20:30:14', b'0', 121); | ||
| 2092 | -INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1537, 109, 1018, '1', '2022-02-23 20:30:14', '1', '2022-02-23 20:30:14', b'0', 121); | ||
| 2093 | -INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1538, 109, 1019, '1', '2022-02-23 20:30:14', '1', '2022-02-23 20:30:14', b'0', 121); | ||
| 2094 | -INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1539, 109, 1020, '1', '2022-02-23 20:30:14', '1', '2022-02-23 20:30:14', b'0', 121); | ||
| 2095 | -INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1540, 109, 1021, '1', '2022-02-23 20:30:14', '1', '2022-02-23 20:30:14', b'0', 121); | ||
| 2096 | -INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1541, 109, 1022, '1', '2022-02-23 20:30:14', '1', '2022-02-23 20:30:14', b'0', 121); | ||
| 2097 | -INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1542, 109, 1023, '1', '2022-02-23 20:30:14', '1', '2022-02-23 20:30:14', b'0', 121); | ||
| 2098 | -INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1576, 111, 1024, '1', '2022-03-07 21:37:58', '1', '2022-03-07 21:37:58', b'0', 122); | ||
| 2099 | -INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1577, 111, 1025, '1', '2022-03-07 21:37:58', '1', '2022-03-07 21:37:58', b'0', 122); | ||
| 2100 | INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1578, 111, 1, '1', '2022-03-07 21:37:58', '1', '2022-03-07 21:37:58', b'0', 122); | 2289 | INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1578, 111, 1, '1', '2022-03-07 21:37:58', '1', '2022-03-07 21:37:58', b'0', 122); |
| 2101 | -INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1584, 111, 103, '1', '2022-03-07 21:37:58', '1', '2022-03-07 21:37:58', b'0', 122); | ||
| 2102 | -INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1585, 111, 104, '1', '2022-03-07 21:37:58', '1', '2022-03-07 21:37:58', b'0', 122); | ||
| 2103 | -INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1587, 111, 1017, '1', '2022-03-07 21:37:58', '1', '2022-03-07 21:37:58', b'0', 122); | ||
| 2104 | -INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1588, 111, 1018, '1', '2022-03-07 21:37:58', '1', '2022-03-07 21:37:58', b'0', 122); | ||
| 2105 | -INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1589, 111, 1019, '1', '2022-03-07 21:37:58', '1', '2022-03-07 21:37:58', b'0', 122); | ||
| 2106 | -INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1590, 111, 1020, '1', '2022-03-07 21:37:58', '1', '2022-03-07 21:37:58', b'0', 122); | ||
| 2107 | -INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1591, 111, 1021, '1', '2022-03-07 21:37:58', '1', '2022-03-07 21:37:58', b'0', 122); | ||
| 2108 | -INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1592, 111, 1022, '1', '2022-03-07 21:37:58', '1', '2022-03-07 21:37:58', b'0', 122); | ||
| 2109 | -INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1593, 111, 1023, '1', '2022-03-07 21:37:58', '1', '2022-03-07 21:37:58', b'0', 122); | ||
| 2110 | -INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1594, 109, 102, '1', '2022-03-19 18:39:13', '1', '2022-03-19 18:39:13', b'0', 121); | ||
| 2111 | -INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1595, 109, 1013, '1', '2022-03-19 18:39:13', '1', '2022-03-19 18:39:13', b'0', 121); | ||
| 2112 | -INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1596, 109, 1014, '1', '2022-03-19 18:39:13', '1', '2022-03-19 18:39:13', b'0', 121); | ||
| 2113 | -INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1597, 109, 1015, '1', '2022-03-19 18:39:13', '1', '2022-03-19 18:39:13', b'0', 121); | ||
| 2114 | -INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1598, 109, 1016, '1', '2022-03-19 18:39:13', '1', '2022-03-19 18:39:13', b'0', 121); | ||
| 2115 | -INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1599, 111, 102, '1', '2022-03-19 18:39:13', '1', '2022-03-19 18:39:13', b'0', 122); | ||
| 2116 | -INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1600, 111, 1013, '1', '2022-03-19 18:39:13', '1', '2022-03-19 18:39:13', b'0', 122); | ||
| 2117 | -INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1601, 111, 1014, '1', '2022-03-19 18:39:13', '1', '2022-03-19 18:39:13', b'0', 122); | ||
| 2118 | -INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1602, 111, 1015, '1', '2022-03-19 18:39:13', '1', '2022-03-19 18:39:13', b'0', 122); | ||
| 2119 | -INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1603, 111, 1016, '1', '2022-03-19 18:39:13', '1', '2022-03-19 18:39:13', b'0', 122); | ||
| 2120 | INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1604, 101, 1216, '1', '2022-03-19 21:45:52', '1', '2022-03-19 21:45:52', b'0', 1); | 2290 | INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1604, 101, 1216, '1', '2022-03-19 21:45:52', '1', '2022-03-19 21:45:52', b'0', 1); |
| 2121 | INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1605, 101, 1217, '1', '2022-03-19 21:45:52', '1', '2022-03-19 21:45:52', b'0', 1); | 2291 | INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1605, 101, 1217, '1', '2022-03-19 21:45:52', '1', '2022-03-19 21:45:52', b'0', 1); |
| 2122 | INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1606, 101, 1218, '1', '2022-03-19 21:45:52', '1', '2022-03-19 21:45:52', b'0', 1); | 2292 | INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1606, 101, 1218, '1', '2022-03-19 21:45:52', '1', '2022-03-19 21:45:52', b'0', 1); |
| @@ -2224,6 +2394,240 @@ INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_t | @@ -2224,6 +2394,240 @@ INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_t | ||
| 2224 | INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1726, 113, 1021, '1', '2022-05-17 10:07:10', '1', '2022-05-17 10:07:10', b'0', 124); | 2394 | INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1726, 113, 1021, '1', '2022-05-17 10:07:10', '1', '2022-05-17 10:07:10', b'0', 124); |
| 2225 | INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1727, 113, 1022, '1', '2022-05-17 10:07:10', '1', '2022-05-17 10:07:10', b'0', 124); | 2395 | INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1727, 113, 1022, '1', '2022-05-17 10:07:10', '1', '2022-05-17 10:07:10', b'0', 124); |
| 2226 | INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1728, 113, 1023, '1', '2022-05-17 10:07:10', '1', '2022-05-17 10:07:10', b'0', 124); | 2396 | INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1728, 113, 1023, '1', '2022-05-17 10:07:10', '1', '2022-05-17 10:07:10', b'0', 124); |
| 2397 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1729, 109, 100, '1', '2022-09-21 22:08:51', '1', '2022-09-21 22:08:51', b'0', 121); | ||
| 2398 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1730, 109, 101, '1', '2022-09-21 22:08:51', '1', '2022-09-21 22:08:51', b'0', 121); | ||
| 2399 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1731, 109, 1063, '1', '2022-09-21 22:08:51', '1', '2022-09-21 22:08:51', b'0', 121); | ||
| 2400 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1732, 109, 1064, '1', '2022-09-21 22:08:51', '1', '2022-09-21 22:08:51', b'0', 121); | ||
| 2401 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1733, 109, 1001, '1', '2022-09-21 22:08:51', '1', '2022-09-21 22:08:51', b'0', 121); | ||
| 2402 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1734, 109, 1065, '1', '2022-09-21 22:08:51', '1', '2022-09-21 22:08:51', b'0', 121); | ||
| 2403 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1735, 109, 1002, '1', '2022-09-21 22:08:51', '1', '2022-09-21 22:08:51', b'0', 121); | ||
| 2404 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1736, 109, 1003, '1', '2022-09-21 22:08:51', '1', '2022-09-21 22:08:51', b'0', 121); | ||
| 2405 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1737, 109, 1004, '1', '2022-09-21 22:08:51', '1', '2022-09-21 22:08:51', b'0', 121); | ||
| 2406 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1738, 109, 1005, '1', '2022-09-21 22:08:51', '1', '2022-09-21 22:08:51', b'0', 121); | ||
| 2407 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1739, 109, 1006, '1', '2022-09-21 22:08:51', '1', '2022-09-21 22:08:51', b'0', 121); | ||
| 2408 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1740, 109, 1007, '1', '2022-09-21 22:08:51', '1', '2022-09-21 22:08:51', b'0', 121); | ||
| 2409 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1741, 109, 1008, '1', '2022-09-21 22:08:51', '1', '2022-09-21 22:08:51', b'0', 121); | ||
| 2410 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1742, 109, 1009, '1', '2022-09-21 22:08:51', '1', '2022-09-21 22:08:51', b'0', 121); | ||
| 2411 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1743, 109, 1010, '1', '2022-09-21 22:08:51', '1', '2022-09-21 22:08:51', b'0', 121); | ||
| 2412 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1744, 109, 1011, '1', '2022-09-21 22:08:51', '1', '2022-09-21 22:08:51', b'0', 121); | ||
| 2413 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1745, 109, 1012, '1', '2022-09-21 22:08:51', '1', '2022-09-21 22:08:51', b'0', 121); | ||
| 2414 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1746, 111, 100, '1', '2022-09-21 22:08:52', '1', '2022-09-21 22:08:52', b'0', 122); | ||
| 2415 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1747, 111, 101, '1', '2022-09-21 22:08:52', '1', '2022-09-21 22:08:52', b'0', 122); | ||
| 2416 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1748, 111, 1063, '1', '2022-09-21 22:08:52', '1', '2022-09-21 22:08:52', b'0', 122); | ||
| 2417 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1749, 111, 1064, '1', '2022-09-21 22:08:52', '1', '2022-09-21 22:08:52', b'0', 122); | ||
| 2418 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1750, 111, 1001, '1', '2022-09-21 22:08:52', '1', '2022-09-21 22:08:52', b'0', 122); | ||
| 2419 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1751, 111, 1065, '1', '2022-09-21 22:08:52', '1', '2022-09-21 22:08:52', b'0', 122); | ||
| 2420 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1752, 111, 1002, '1', '2022-09-21 22:08:52', '1', '2022-09-21 22:08:52', b'0', 122); | ||
| 2421 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1753, 111, 1003, '1', '2022-09-21 22:08:52', '1', '2022-09-21 22:08:52', b'0', 122); | ||
| 2422 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1754, 111, 1004, '1', '2022-09-21 22:08:52', '1', '2022-09-21 22:08:52', b'0', 122); | ||
| 2423 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1755, 111, 1005, '1', '2022-09-21 22:08:52', '1', '2022-09-21 22:08:52', b'0', 122); | ||
| 2424 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1756, 111, 1006, '1', '2022-09-21 22:08:52', '1', '2022-09-21 22:08:52', b'0', 122); | ||
| 2425 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1757, 111, 1007, '1', '2022-09-21 22:08:52', '1', '2022-09-21 22:08:52', b'0', 122); | ||
| 2426 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1758, 111, 1008, '1', '2022-09-21 22:08:52', '1', '2022-09-21 22:08:52', b'0', 122); | ||
| 2427 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1759, 111, 1009, '1', '2022-09-21 22:08:52', '1', '2022-09-21 22:08:52', b'0', 122); | ||
| 2428 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1760, 111, 1010, '1', '2022-09-21 22:08:52', '1', '2022-09-21 22:08:52', b'0', 122); | ||
| 2429 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1761, 111, 1011, '1', '2022-09-21 22:08:52', '1', '2022-09-21 22:08:52', b'0', 122); | ||
| 2430 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1762, 111, 1012, '1', '2022-09-21 22:08:52', '1', '2022-09-21 22:08:52', b'0', 122); | ||
| 2431 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1763, 109, 100, '1', '2022-09-21 22:08:53', '1', '2022-09-21 22:08:53', b'0', 121); | ||
| 2432 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1764, 109, 101, '1', '2022-09-21 22:08:53', '1', '2022-09-21 22:08:53', b'0', 121); | ||
| 2433 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1765, 109, 1063, '1', '2022-09-21 22:08:53', '1', '2022-09-21 22:08:53', b'0', 121); | ||
| 2434 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1766, 109, 1064, '1', '2022-09-21 22:08:53', '1', '2022-09-21 22:08:53', b'0', 121); | ||
| 2435 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1767, 109, 1001, '1', '2022-09-21 22:08:53', '1', '2022-09-21 22:08:53', b'0', 121); | ||
| 2436 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1768, 109, 1065, '1', '2022-09-21 22:08:53', '1', '2022-09-21 22:08:53', b'0', 121); | ||
| 2437 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1769, 109, 1002, '1', '2022-09-21 22:08:53', '1', '2022-09-21 22:08:53', b'0', 121); | ||
| 2438 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1770, 109, 1003, '1', '2022-09-21 22:08:53', '1', '2022-09-21 22:08:53', b'0', 121); | ||
| 2439 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1771, 109, 1004, '1', '2022-09-21 22:08:53', '1', '2022-09-21 22:08:53', b'0', 121); | ||
| 2440 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1772, 109, 1005, '1', '2022-09-21 22:08:53', '1', '2022-09-21 22:08:53', b'0', 121); | ||
| 2441 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1773, 109, 1006, '1', '2022-09-21 22:08:53', '1', '2022-09-21 22:08:53', b'0', 121); | ||
| 2442 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1774, 109, 1007, '1', '2022-09-21 22:08:53', '1', '2022-09-21 22:08:53', b'0', 121); | ||
| 2443 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1775, 109, 1008, '1', '2022-09-21 22:08:53', '1', '2022-09-21 22:08:53', b'0', 121); | ||
| 2444 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1776, 109, 1009, '1', '2022-09-21 22:08:53', '1', '2022-09-21 22:08:53', b'0', 121); | ||
| 2445 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1777, 109, 1010, '1', '2022-09-21 22:08:53', '1', '2022-09-21 22:08:53', b'0', 121); | ||
| 2446 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1778, 109, 1011, '1', '2022-09-21 22:08:53', '1', '2022-09-21 22:08:53', b'0', 121); | ||
| 2447 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1779, 109, 1012, '1', '2022-09-21 22:08:53', '1', '2022-09-21 22:08:53', b'0', 121); | ||
| 2448 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1780, 111, 100, '1', '2022-09-21 22:08:54', '1', '2022-09-21 22:08:54', b'0', 122); | ||
| 2449 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1781, 111, 101, '1', '2022-09-21 22:08:54', '1', '2022-09-21 22:08:54', b'0', 122); | ||
| 2450 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1782, 111, 1063, '1', '2022-09-21 22:08:54', '1', '2022-09-21 22:08:54', b'0', 122); | ||
| 2451 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1783, 111, 1064, '1', '2022-09-21 22:08:54', '1', '2022-09-21 22:08:54', b'0', 122); | ||
| 2452 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1784, 111, 1001, '1', '2022-09-21 22:08:54', '1', '2022-09-21 22:08:54', b'0', 122); | ||
| 2453 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1785, 111, 1065, '1', '2022-09-21 22:08:54', '1', '2022-09-21 22:08:54', b'0', 122); | ||
| 2454 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1786, 111, 1002, '1', '2022-09-21 22:08:54', '1', '2022-09-21 22:08:54', b'0', 122); | ||
| 2455 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1787, 111, 1003, '1', '2022-09-21 22:08:54', '1', '2022-09-21 22:08:54', b'0', 122); | ||
| 2456 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1788, 111, 1004, '1', '2022-09-21 22:08:54', '1', '2022-09-21 22:08:54', b'0', 122); | ||
| 2457 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1789, 111, 1005, '1', '2022-09-21 22:08:54', '1', '2022-09-21 22:08:54', b'0', 122); | ||
| 2458 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1790, 111, 1006, '1', '2022-09-21 22:08:54', '1', '2022-09-21 22:08:54', b'0', 122); | ||
| 2459 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1791, 111, 1007, '1', '2022-09-21 22:08:54', '1', '2022-09-21 22:08:54', b'0', 122); | ||
| 2460 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1792, 111, 1008, '1', '2022-09-21 22:08:54', '1', '2022-09-21 22:08:54', b'0', 122); | ||
| 2461 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1793, 111, 1009, '1', '2022-09-21 22:08:54', '1', '2022-09-21 22:08:54', b'0', 122); | ||
| 2462 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1794, 111, 1010, '1', '2022-09-21 22:08:54', '1', '2022-09-21 22:08:54', b'0', 122); | ||
| 2463 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1795, 111, 1011, '1', '2022-09-21 22:08:54', '1', '2022-09-21 22:08:54', b'0', 122); | ||
| 2464 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1796, 111, 1012, '1', '2022-09-21 22:08:54', '1', '2022-09-21 22:08:54', b'0', 122); | ||
| 2465 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1797, 109, 100, '1', '2022-09-21 22:08:55', '1', '2022-09-21 22:08:55', b'0', 121); | ||
| 2466 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1798, 109, 101, '1', '2022-09-21 22:08:55', '1', '2022-09-21 22:08:55', b'0', 121); | ||
| 2467 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1799, 109, 1063, '1', '2022-09-21 22:08:55', '1', '2022-09-21 22:08:55', b'0', 121); | ||
| 2468 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1800, 109, 1064, '1', '2022-09-21 22:08:55', '1', '2022-09-21 22:08:55', b'0', 121); | ||
| 2469 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1801, 109, 1001, '1', '2022-09-21 22:08:55', '1', '2022-09-21 22:08:55', b'0', 121); | ||
| 2470 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1802, 109, 1065, '1', '2022-09-21 22:08:55', '1', '2022-09-21 22:08:55', b'0', 121); | ||
| 2471 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1803, 109, 1002, '1', '2022-09-21 22:08:55', '1', '2022-09-21 22:08:55', b'0', 121); | ||
| 2472 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1804, 109, 1003, '1', '2022-09-21 22:08:55', '1', '2022-09-21 22:08:55', b'0', 121); | ||
| 2473 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1805, 109, 1004, '1', '2022-09-21 22:08:55', '1', '2022-09-21 22:08:55', b'0', 121); | ||
| 2474 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1806, 109, 1005, '1', '2022-09-21 22:08:55', '1', '2022-09-21 22:08:55', b'0', 121); | ||
| 2475 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1807, 109, 1006, '1', '2022-09-21 22:08:55', '1', '2022-09-21 22:08:55', b'0', 121); | ||
| 2476 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1808, 109, 1007, '1', '2022-09-21 22:08:55', '1', '2022-09-21 22:08:55', b'0', 121); | ||
| 2477 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1809, 109, 1008, '1', '2022-09-21 22:08:55', '1', '2022-09-21 22:08:55', b'0', 121); | ||
| 2478 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1810, 109, 1009, '1', '2022-09-21 22:08:55', '1', '2022-09-21 22:08:55', b'0', 121); | ||
| 2479 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1811, 109, 1010, '1', '2022-09-21 22:08:55', '1', '2022-09-21 22:08:55', b'0', 121); | ||
| 2480 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1812, 109, 1011, '1', '2022-09-21 22:08:55', '1', '2022-09-21 22:08:55', b'0', 121); | ||
| 2481 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1813, 109, 1012, '1', '2022-09-21 22:08:55', '1', '2022-09-21 22:08:55', b'0', 121); | ||
| 2482 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1814, 111, 100, '1', '2022-09-21 22:08:56', '1', '2022-09-21 22:08:56', b'0', 122); | ||
| 2483 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1815, 111, 101, '1', '2022-09-21 22:08:56', '1', '2022-09-21 22:08:56', b'0', 122); | ||
| 2484 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1816, 111, 1063, '1', '2022-09-21 22:08:56', '1', '2022-09-21 22:08:56', b'0', 122); | ||
| 2485 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1817, 111, 1064, '1', '2022-09-21 22:08:56', '1', '2022-09-21 22:08:56', b'0', 122); | ||
| 2486 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1818, 111, 1001, '1', '2022-09-21 22:08:56', '1', '2022-09-21 22:08:56', b'0', 122); | ||
| 2487 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1819, 111, 1065, '1', '2022-09-21 22:08:56', '1', '2022-09-21 22:08:56', b'0', 122); | ||
| 2488 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1820, 111, 1002, '1', '2022-09-21 22:08:56', '1', '2022-09-21 22:08:56', b'0', 122); | ||
| 2489 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1821, 111, 1003, '1', '2022-09-21 22:08:56', '1', '2022-09-21 22:08:56', b'0', 122); | ||
| 2490 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1822, 111, 1004, '1', '2022-09-21 22:08:56', '1', '2022-09-21 22:08:56', b'0', 122); | ||
| 2491 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1823, 111, 1005, '1', '2022-09-21 22:08:56', '1', '2022-09-21 22:08:56', b'0', 122); | ||
| 2492 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1824, 111, 1006, '1', '2022-09-21 22:08:56', '1', '2022-09-21 22:08:56', b'0', 122); | ||
| 2493 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1825, 111, 1007, '1', '2022-09-21 22:08:56', '1', '2022-09-21 22:08:56', b'0', 122); | ||
| 2494 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1826, 111, 1008, '1', '2022-09-21 22:08:56', '1', '2022-09-21 22:08:56', b'0', 122); | ||
| 2495 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1827, 111, 1009, '1', '2022-09-21 22:08:56', '1', '2022-09-21 22:08:56', b'0', 122); | ||
| 2496 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1828, 111, 1010, '1', '2022-09-21 22:08:56', '1', '2022-09-21 22:08:56', b'0', 122); | ||
| 2497 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1829, 111, 1011, '1', '2022-09-21 22:08:56', '1', '2022-09-21 22:08:56', b'0', 122); | ||
| 2498 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1830, 111, 1012, '1', '2022-09-21 22:08:56', '1', '2022-09-21 22:08:56', b'0', 122); | ||
| 2499 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1831, 109, 103, '1', '2022-09-21 22:43:23', '1', '2022-09-21 22:43:23', b'0', 121); | ||
| 2500 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1832, 109, 1017, '1', '2022-09-21 22:43:23', '1', '2022-09-21 22:43:23', b'0', 121); | ||
| 2501 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1833, 109, 1018, '1', '2022-09-21 22:43:23', '1', '2022-09-21 22:43:23', b'0', 121); | ||
| 2502 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1834, 109, 1019, '1', '2022-09-21 22:43:23', '1', '2022-09-21 22:43:23', b'0', 121); | ||
| 2503 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1835, 109, 1020, '1', '2022-09-21 22:43:23', '1', '2022-09-21 22:43:23', b'0', 121); | ||
| 2504 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1836, 111, 103, '1', '2022-09-21 22:43:24', '1', '2022-09-21 22:43:24', b'0', 122); | ||
| 2505 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1837, 111, 1017, '1', '2022-09-21 22:43:24', '1', '2022-09-21 22:43:24', b'0', 122); | ||
| 2506 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1838, 111, 1018, '1', '2022-09-21 22:43:24', '1', '2022-09-21 22:43:24', b'0', 122); | ||
| 2507 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1839, 111, 1019, '1', '2022-09-21 22:43:24', '1', '2022-09-21 22:43:24', b'0', 122); | ||
| 2508 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1840, 111, 1020, '1', '2022-09-21 22:43:24', '1', '2022-09-21 22:43:24', b'0', 122); | ||
| 2509 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1841, 109, 1036, '1', '2022-09-21 22:48:13', '1', '2022-09-21 22:48:13', b'0', 121); | ||
| 2510 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1842, 109, 1037, '1', '2022-09-21 22:48:13', '1', '2022-09-21 22:48:13', b'0', 121); | ||
| 2511 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1843, 109, 1038, '1', '2022-09-21 22:48:13', '1', '2022-09-21 22:48:13', b'0', 121); | ||
| 2512 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1844, 109, 1039, '1', '2022-09-21 22:48:13', '1', '2022-09-21 22:48:13', b'0', 121); | ||
| 2513 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1845, 109, 107, '1', '2022-09-21 22:48:13', '1', '2022-09-21 22:48:13', b'0', 121); | ||
| 2514 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1846, 111, 1036, '1', '2022-09-21 22:48:13', '1', '2022-09-21 22:48:13', b'0', 122); | ||
| 2515 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1847, 111, 1037, '1', '2022-09-21 22:48:13', '1', '2022-09-21 22:48:13', b'0', 122); | ||
| 2516 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1848, 111, 1038, '1', '2022-09-21 22:48:13', '1', '2022-09-21 22:48:13', b'0', 122); | ||
| 2517 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1849, 111, 1039, '1', '2022-09-21 22:48:13', '1', '2022-09-21 22:48:13', b'0', 122); | ||
| 2518 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1850, 111, 107, '1', '2022-09-21 22:48:13', '1', '2022-09-21 22:48:13', b'0', 122); | ||
| 2519 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1851, 114, 1, '1', '2022-12-30 11:32:03', '1', '2022-12-30 11:32:03', b'0', 125); | ||
| 2520 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1852, 114, 1036, '1', '2022-12-30 11:32:03', '1', '2022-12-30 11:32:03', b'0', 125); | ||
| 2521 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1853, 114, 1037, '1', '2022-12-30 11:32:03', '1', '2022-12-30 11:32:03', b'0', 125); | ||
| 2522 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1854, 114, 1038, '1', '2022-12-30 11:32:03', '1', '2022-12-30 11:32:03', b'0', 125); | ||
| 2523 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1855, 114, 1039, '1', '2022-12-30 11:32:03', '1', '2022-12-30 11:32:03', b'0', 125); | ||
| 2524 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1856, 114, 100, '1', '2022-12-30 11:32:03', '1', '2022-12-30 11:32:03', b'0', 125); | ||
| 2525 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1857, 114, 101, '1', '2022-12-30 11:32:03', '1', '2022-12-30 11:32:03', b'0', 125); | ||
| 2526 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1858, 114, 1063, '1', '2022-12-30 11:32:03', '1', '2022-12-30 11:32:03', b'0', 125); | ||
| 2527 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1859, 114, 103, '1', '2022-12-30 11:32:03', '1', '2022-12-30 11:32:03', b'0', 125); | ||
| 2528 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1860, 114, 1064, '1', '2022-12-30 11:32:03', '1', '2022-12-30 11:32:03', b'0', 125); | ||
| 2529 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1861, 114, 1001, '1', '2022-12-30 11:32:03', '1', '2022-12-30 11:32:03', b'0', 125); | ||
| 2530 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1862, 114, 1065, '1', '2022-12-30 11:32:03', '1', '2022-12-30 11:32:03', b'0', 125); | ||
| 2531 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1863, 114, 1002, '1', '2022-12-30 11:32:03', '1', '2022-12-30 11:32:03', b'0', 125); | ||
| 2532 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1864, 114, 1003, '1', '2022-12-30 11:32:03', '1', '2022-12-30 11:32:03', b'0', 125); | ||
| 2533 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1865, 114, 107, '1', '2022-12-30 11:32:03', '1', '2022-12-30 11:32:03', b'0', 125); | ||
| 2534 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1866, 114, 1004, '1', '2022-12-30 11:32:03', '1', '2022-12-30 11:32:03', b'0', 125); | ||
| 2535 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1867, 114, 1005, '1', '2022-12-30 11:32:03', '1', '2022-12-30 11:32:03', b'0', 125); | ||
| 2536 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1868, 114, 1006, '1', '2022-12-30 11:32:03', '1', '2022-12-30 11:32:03', b'0', 125); | ||
| 2537 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1869, 114, 1007, '1', '2022-12-30 11:32:03', '1', '2022-12-30 11:32:03', b'0', 125); | ||
| 2538 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1870, 114, 1008, '1', '2022-12-30 11:32:03', '1', '2022-12-30 11:32:03', b'0', 125); | ||
| 2539 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1871, 114, 1009, '1', '2022-12-30 11:32:03', '1', '2022-12-30 11:32:03', b'0', 125); | ||
| 2540 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1872, 114, 1010, '1', '2022-12-30 11:32:03', '1', '2022-12-30 11:32:03', b'0', 125); | ||
| 2541 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1873, 114, 1011, '1', '2022-12-30 11:32:03', '1', '2022-12-30 11:32:03', b'0', 125); | ||
| 2542 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1874, 114, 1012, '1', '2022-12-30 11:32:03', '1', '2022-12-30 11:32:03', b'0', 125); | ||
| 2543 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1875, 114, 1017, '1', '2022-12-30 11:32:03', '1', '2022-12-30 11:32:03', b'0', 125); | ||
| 2544 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1876, 114, 1018, '1', '2022-12-30 11:32:03', '1', '2022-12-30 11:32:03', b'0', 125); | ||
| 2545 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1877, 114, 1019, '1', '2022-12-30 11:32:03', '1', '2022-12-30 11:32:03', b'0', 125); | ||
| 2546 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1878, 114, 1020, '1', '2022-12-30 11:32:03', '1', '2022-12-30 11:32:03', b'0', 125); | ||
| 2547 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1879, 115, 1, '1', '2022-12-30 11:33:42', '1', '2022-12-30 11:33:42', b'0', 126); | ||
| 2548 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1880, 115, 1036, '1', '2022-12-30 11:33:42', '1', '2022-12-30 11:33:42', b'0', 126); | ||
| 2549 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1881, 115, 1037, '1', '2022-12-30 11:33:42', '1', '2022-12-30 11:33:42', b'0', 126); | ||
| 2550 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1882, 115, 1038, '1', '2022-12-30 11:33:42', '1', '2022-12-30 11:33:42', b'0', 126); | ||
| 2551 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1883, 115, 1039, '1', '2022-12-30 11:33:42', '1', '2022-12-30 11:33:42', b'0', 126); | ||
| 2552 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1884, 115, 100, '1', '2022-12-30 11:33:42', '1', '2022-12-30 11:33:42', b'0', 126); | ||
| 2553 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1885, 115, 101, '1', '2022-12-30 11:33:42', '1', '2022-12-30 11:33:42', b'0', 126); | ||
| 2554 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1886, 115, 1063, '1', '2022-12-30 11:33:42', '1', '2022-12-30 11:33:42', b'0', 126); | ||
| 2555 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1887, 115, 103, '1', '2022-12-30 11:33:42', '1', '2022-12-30 11:33:42', b'0', 126); | ||
| 2556 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1888, 115, 1064, '1', '2022-12-30 11:33:42', '1', '2022-12-30 11:33:42', b'0', 126); | ||
| 2557 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1889, 115, 1001, '1', '2022-12-30 11:33:42', '1', '2022-12-30 11:33:42', b'0', 126); | ||
| 2558 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1890, 115, 1065, '1', '2022-12-30 11:33:42', '1', '2022-12-30 11:33:42', b'0', 126); | ||
| 2559 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1891, 115, 1002, '1', '2022-12-30 11:33:42', '1', '2022-12-30 11:33:42', b'0', 126); | ||
| 2560 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1892, 115, 1003, '1', '2022-12-30 11:33:42', '1', '2022-12-30 11:33:42', b'0', 126); | ||
| 2561 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1893, 115, 107, '1', '2022-12-30 11:33:42', '1', '2022-12-30 11:33:42', b'0', 126); | ||
| 2562 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1894, 115, 1004, '1', '2022-12-30 11:33:42', '1', '2022-12-30 11:33:42', b'0', 126); | ||
| 2563 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1895, 115, 1005, '1', '2022-12-30 11:33:42', '1', '2022-12-30 11:33:42', b'0', 126); | ||
| 2564 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1896, 115, 1006, '1', '2022-12-30 11:33:42', '1', '2022-12-30 11:33:42', b'0', 126); | ||
| 2565 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1897, 115, 1007, '1', '2022-12-30 11:33:42', '1', '2022-12-30 11:33:42', b'0', 126); | ||
| 2566 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1898, 115, 1008, '1', '2022-12-30 11:33:42', '1', '2022-12-30 11:33:42', b'0', 126); | ||
| 2567 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1899, 115, 1009, '1', '2022-12-30 11:33:42', '1', '2022-12-30 11:33:42', b'0', 126); | ||
| 2568 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1900, 115, 1010, '1', '2022-12-30 11:33:42', '1', '2022-12-30 11:33:42', b'0', 126); | ||
| 2569 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1901, 115, 1011, '1', '2022-12-30 11:33:42', '1', '2022-12-30 11:33:42', b'0', 126); | ||
| 2570 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1902, 115, 1012, '1', '2022-12-30 11:33:42', '1', '2022-12-30 11:33:42', b'0', 126); | ||
| 2571 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1903, 115, 1017, '1', '2022-12-30 11:33:42', '1', '2022-12-30 11:33:42', b'0', 126); | ||
| 2572 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1904, 115, 1018, '1', '2022-12-30 11:33:42', '1', '2022-12-30 11:33:42', b'0', 126); | ||
| 2573 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1905, 115, 1019, '1', '2022-12-30 11:33:42', '1', '2022-12-30 11:33:42', b'0', 126); | ||
| 2574 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1906, 115, 1020, '1', '2022-12-30 11:33:42', '1', '2022-12-30 11:33:42', b'0', 126); | ||
| 2575 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1907, 116, 1, '1', '2022-12-30 11:33:48', '1', '2022-12-30 11:33:48', b'0', 127); | ||
| 2576 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1908, 116, 1036, '1', '2022-12-30 11:33:48', '1', '2022-12-30 11:33:48', b'0', 127); | ||
| 2577 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1909, 116, 1037, '1', '2022-12-30 11:33:48', '1', '2022-12-30 11:33:48', b'0', 127); | ||
| 2578 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1910, 116, 1038, '1', '2022-12-30 11:33:48', '1', '2022-12-30 11:33:48', b'0', 127); | ||
| 2579 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1911, 116, 1039, '1', '2022-12-30 11:33:48', '1', '2022-12-30 11:33:48', b'0', 127); | ||
| 2580 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1912, 116, 100, '1', '2022-12-30 11:33:48', '1', '2022-12-30 11:33:48', b'0', 127); | ||
| 2581 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1913, 116, 101, '1', '2022-12-30 11:33:48', '1', '2022-12-30 11:33:48', b'0', 127); | ||
| 2582 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1914, 116, 1063, '1', '2022-12-30 11:33:48', '1', '2022-12-30 11:33:48', b'0', 127); | ||
| 2583 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1915, 116, 103, '1', '2022-12-30 11:33:48', '1', '2022-12-30 11:33:48', b'0', 127); | ||
| 2584 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1916, 116, 1064, '1', '2022-12-30 11:33:48', '1', '2022-12-30 11:33:48', b'0', 127); | ||
| 2585 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1917, 116, 1001, '1', '2022-12-30 11:33:48', '1', '2022-12-30 11:33:48', b'0', 127); | ||
| 2586 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1918, 116, 1065, '1', '2022-12-30 11:33:48', '1', '2022-12-30 11:33:48', b'0', 127); | ||
| 2587 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1919, 116, 1002, '1', '2022-12-30 11:33:48', '1', '2022-12-30 11:33:48', b'0', 127); | ||
| 2588 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1920, 116, 1003, '1', '2022-12-30 11:33:48', '1', '2022-12-30 11:33:48', b'0', 127); | ||
| 2589 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1921, 116, 107, '1', '2022-12-30 11:33:48', '1', '2022-12-30 11:33:48', b'0', 127); | ||
| 2590 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1922, 116, 1004, '1', '2022-12-30 11:33:48', '1', '2022-12-30 11:33:48', b'0', 127); | ||
| 2591 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1923, 116, 1005, '1', '2022-12-30 11:33:48', '1', '2022-12-30 11:33:48', b'0', 127); | ||
| 2592 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1924, 116, 1006, '1', '2022-12-30 11:33:48', '1', '2022-12-30 11:33:48', b'0', 127); | ||
| 2593 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1925, 116, 1007, '1', '2022-12-30 11:33:48', '1', '2022-12-30 11:33:48', b'0', 127); | ||
| 2594 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1926, 116, 1008, '1', '2022-12-30 11:33:48', '1', '2022-12-30 11:33:48', b'0', 127); | ||
| 2595 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1927, 116, 1009, '1', '2022-12-30 11:33:48', '1', '2022-12-30 11:33:48', b'0', 127); | ||
| 2596 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1928, 116, 1010, '1', '2022-12-30 11:33:48', '1', '2022-12-30 11:33:48', b'0', 127); | ||
| 2597 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1929, 116, 1011, '1', '2022-12-30 11:33:48', '1', '2022-12-30 11:33:48', b'0', 127); | ||
| 2598 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1930, 116, 1012, '1', '2022-12-30 11:33:48', '1', '2022-12-30 11:33:48', b'0', 127); | ||
| 2599 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1931, 116, 1017, '1', '2022-12-30 11:33:48', '1', '2022-12-30 11:33:48', b'0', 127); | ||
| 2600 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1932, 116, 1018, '1', '2022-12-30 11:33:48', '1', '2022-12-30 11:33:48', b'0', 127); | ||
| 2601 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1933, 116, 1019, '1', '2022-12-30 11:33:48', '1', '2022-12-30 11:33:48', b'0', 127); | ||
| 2602 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1934, 116, 1020, '1', '2022-12-30 11:33:48', '1', '2022-12-30 11:33:48', b'0', 127); | ||
| 2603 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1963, 118, 1, '1', '2022-12-30 11:47:52', '1', '2022-12-30 11:47:52', b'0', 129); | ||
| 2604 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1964, 118, 1036, '1', '2022-12-30 11:47:52', '1', '2022-12-30 11:47:52', b'0', 129); | ||
| 2605 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1965, 118, 1037, '1', '2022-12-30 11:47:52', '1', '2022-12-30 11:47:52', b'0', 129); | ||
| 2606 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1966, 118, 1038, '1', '2022-12-30 11:47:52', '1', '2022-12-30 11:47:52', b'0', 129); | ||
| 2607 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1967, 118, 1039, '1', '2022-12-30 11:47:52', '1', '2022-12-30 11:47:52', b'0', 129); | ||
| 2608 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1968, 118, 100, '1', '2022-12-30 11:47:52', '1', '2022-12-30 11:47:52', b'0', 129); | ||
| 2609 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1969, 118, 101, '1', '2022-12-30 11:47:52', '1', '2022-12-30 11:47:52', b'0', 129); | ||
| 2610 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1970, 118, 1063, '1', '2022-12-30 11:47:52', '1', '2022-12-30 11:47:52', b'0', 129); | ||
| 2611 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1971, 118, 103, '1', '2022-12-30 11:47:52', '1', '2022-12-30 11:47:52', b'0', 129); | ||
| 2612 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1972, 118, 1064, '1', '2022-12-30 11:47:52', '1', '2022-12-30 11:47:52', b'0', 129); | ||
| 2613 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1973, 118, 1001, '1', '2022-12-30 11:47:52', '1', '2022-12-30 11:47:52', b'0', 129); | ||
| 2614 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1974, 118, 1065, '1', '2022-12-30 11:47:52', '1', '2022-12-30 11:47:52', b'0', 129); | ||
| 2615 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1975, 118, 1002, '1', '2022-12-30 11:47:52', '1', '2022-12-30 11:47:52', b'0', 129); | ||
| 2616 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1976, 118, 1003, '1', '2022-12-30 11:47:52', '1', '2022-12-30 11:47:52', b'0', 129); | ||
| 2617 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1977, 118, 107, '1', '2022-12-30 11:47:52', '1', '2022-12-30 11:47:52', b'0', 129); | ||
| 2618 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1978, 118, 1004, '1', '2022-12-30 11:47:52', '1', '2022-12-30 11:47:52', b'0', 129); | ||
| 2619 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1979, 118, 1005, '1', '2022-12-30 11:47:52', '1', '2022-12-30 11:47:52', b'0', 129); | ||
| 2620 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1980, 118, 1006, '1', '2022-12-30 11:47:52', '1', '2022-12-30 11:47:52', b'0', 129); | ||
| 2621 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1981, 118, 1007, '1', '2022-12-30 11:47:52', '1', '2022-12-30 11:47:52', b'0', 129); | ||
| 2622 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1982, 118, 1008, '1', '2022-12-30 11:47:52', '1', '2022-12-30 11:47:52', b'0', 129); | ||
| 2623 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1983, 118, 1009, '1', '2022-12-30 11:47:52', '1', '2022-12-30 11:47:52', b'0', 129); | ||
| 2624 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1984, 118, 1010, '1', '2022-12-30 11:47:52', '1', '2022-12-30 11:47:52', b'0', 129); | ||
| 2625 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1985, 118, 1011, '1', '2022-12-30 11:47:52', '1', '2022-12-30 11:47:52', b'0', 129); | ||
| 2626 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1986, 118, 1012, '1', '2022-12-30 11:47:52', '1', '2022-12-30 11:47:52', b'0', 129); | ||
| 2627 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1987, 118, 1017, '1', '2022-12-30 11:47:52', '1', '2022-12-30 11:47:52', b'0', 129); | ||
| 2628 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1988, 118, 1018, '1', '2022-12-30 11:47:52', '1', '2022-12-30 11:47:52', b'0', 129); | ||
| 2629 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1989, 118, 1019, '1', '2022-12-30 11:47:52', '1', '2022-12-30 11:47:52', b'0', 129); | ||
| 2630 | +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1990, 118, 1020, '1', '2022-12-30 11:47:52', '1', '2022-12-30 11:47:52', b'0', 129); | ||
| 2227 | COMMIT; | 2631 | COMMIT; |
| 2228 | 2632 | ||
| 2229 | -- ---------------------------- | 2633 | -- ---------------------------- |
| @@ -2242,7 +2646,7 @@ CREATE TABLE `system_sensitive_word` ( | @@ -2242,7 +2646,7 @@ CREATE TABLE `system_sensitive_word` ( | ||
| 2242 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', | 2646 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', |
| 2243 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', | 2647 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', |
| 2244 | PRIMARY KEY (`id`) USING BTREE | 2648 | PRIMARY KEY (`id`) USING BTREE |
| 2245 | -) ENGINE = InnoDB AUTO_INCREMENT = 5 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '敏感词'; | 2649 | +) ENGINE = InnoDB AUTO_INCREMENT = 6 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '敏感词'; |
| 2246 | 2650 | ||
| 2247 | -- ---------------------------- | 2651 | -- ---------------------------- |
| 2248 | -- Records of system_sensitive_word | 2652 | -- Records of system_sensitive_word |
| @@ -2250,6 +2654,7 @@ CREATE TABLE `system_sensitive_word` ( | @@ -2250,6 +2654,7 @@ CREATE TABLE `system_sensitive_word` ( | ||
| 2250 | BEGIN; | 2654 | BEGIN; |
| 2251 | INSERT INTO `system_sensitive_word` (`id`, `name`, `description`, `tags`, `status`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (3, '土豆', '好呀', '蔬菜,短信', 0, '1', '2022-04-08 21:07:12', '1', '2022-04-09 10:28:14', b'0'); | 2655 | INSERT INTO `system_sensitive_word` (`id`, `name`, `description`, `tags`, `status`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (3, '土豆', '好呀', '蔬菜,短信', 0, '1', '2022-04-08 21:07:12', '1', '2022-04-09 10:28:14', b'0'); |
| 2252 | INSERT INTO `system_sensitive_word` (`id`, `name`, `description`, `tags`, `status`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (4, 'XXX', NULL, '短信', 0, '1', '2022-04-08 21:27:49', '1', '2022-06-19 00:36:50', b'0'); | 2656 | INSERT INTO `system_sensitive_word` (`id`, `name`, `description`, `tags`, `status`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (4, 'XXX', NULL, '短信', 0, '1', '2022-04-08 21:27:49', '1', '2022-06-19 00:36:50', b'0'); |
| 2657 | +INSERT INTO `system_sensitive_word` (`id`, `name`, `description`, `tags`, `status`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (5, '白痴', NULL, '测试', 0, '1', '2022-12-31 19:08:25', '1', '2022-12-31 19:08:25', b'0'); | ||
| 2253 | COMMIT; | 2658 | COMMIT; |
| 2254 | 2659 | ||
| 2255 | -- ---------------------------- | 2660 | -- ---------------------------- |
| @@ -2304,7 +2709,7 @@ CREATE TABLE `system_sms_code` ( | @@ -2304,7 +2709,7 @@ CREATE TABLE `system_sms_code` ( | ||
| 2304 | `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', | 2709 | `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', |
| 2305 | PRIMARY KEY (`id`) USING BTREE, | 2710 | PRIMARY KEY (`id`) USING BTREE, |
| 2306 | INDEX `idx_mobile`(`mobile` ASC) USING BTREE COMMENT '手机号' | 2711 | INDEX `idx_mobile`(`mobile` ASC) USING BTREE COMMENT '手机号' |
| 2307 | -) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '手机验证码'; | 2712 | +) ENGINE = InnoDB AUTO_INCREMENT = 484 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '手机验证码'; |
| 2308 | 2713 | ||
| 2309 | -- ---------------------------- | 2714 | -- ---------------------------- |
| 2310 | -- Records of system_sms_code | 2715 | -- Records of system_sms_code |
| @@ -2347,7 +2752,7 @@ CREATE TABLE `system_sms_log` ( | @@ -2347,7 +2752,7 @@ CREATE TABLE `system_sms_log` ( | ||
| 2347 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', | 2752 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', |
| 2348 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', | 2753 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', |
| 2349 | PRIMARY KEY (`id`) USING BTREE | 2754 | PRIMARY KEY (`id`) USING BTREE |
| 2350 | -) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '短信日志'; | 2755 | +) ENGINE = InnoDB AUTO_INCREMENT = 339 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '短信日志'; |
| 2351 | 2756 | ||
| 2352 | -- ---------------------------- | 2757 | -- ---------------------------- |
| 2353 | -- Records of system_sms_log | 2758 | -- Records of system_sms_log |
| @@ -2383,16 +2788,16 @@ CREATE TABLE `system_sms_template` ( | @@ -2383,16 +2788,16 @@ CREATE TABLE `system_sms_template` ( | ||
| 2383 | -- Records of system_sms_template | 2788 | -- Records of system_sms_template |
| 2384 | -- ---------------------------- | 2789 | -- ---------------------------- |
| 2385 | BEGIN; | 2790 | BEGIN; |
| 2386 | -INSERT INTO `system_sms_template` (`id`, `type`, `status`, `code`, `name`, `content`, `params`, `remark`, `api_template_id`, `channel_id`, `channel_code`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2, 1, 0, 'test_01', '测试验证码短信', '正在进行登录操作{operation},您的验证码是{code}', '[\"operation\",\"code\"]', NULL, '4383920', 1, 'YUN_PIAN', '', '2021-03-31 10:49:38', '1', '2021-04-10 01:22:00', b'0'); | 2791 | +INSERT INTO `system_sms_template` (`id`, `type`, `status`, `code`, `name`, `content`, `params`, `remark`, `api_template_id`, `channel_id`, `channel_code`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2, 1, 0, 'test_01', '测试验证码短信', '正在进行登录操作{operation},您的验证码是{code}', '[\"operation\",\"code\"]', NULL, '4383920', 6, 'DEBUG_DING_TALK', '', '2021-03-31 10:49:38', '1', '2022-12-10 21:26:20', b'0'); |
| 2387 | INSERT INTO `system_sms_template` (`id`, `type`, `status`, `code`, `name`, `content`, `params`, `remark`, `api_template_id`, `channel_id`, `channel_code`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (3, 1, 0, 'test_02', '公告通知', '您的验证码{code},该验证码5分钟内有效,请勿泄漏于他人!', '[\"code\"]', NULL, 'SMS_207945135', 2, 'ALIYUN', '', '2021-03-31 11:56:30', '1', '2021-04-10 01:22:02', b'0'); | 2792 | INSERT INTO `system_sms_template` (`id`, `type`, `status`, `code`, `name`, `content`, `params`, `remark`, `api_template_id`, `channel_id`, `channel_code`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (3, 1, 0, 'test_02', '公告通知', '您的验证码{code},该验证码5分钟内有效,请勿泄漏于他人!', '[\"code\"]', NULL, 'SMS_207945135', 2, 'ALIYUN', '', '2021-03-31 11:56:30', '1', '2021-04-10 01:22:02', b'0'); |
| 2388 | -INSERT INTO `system_sms_template` (`id`, `type`, `status`, `code`, `name`, `content`, `params`, `remark`, `api_template_id`, `channel_id`, `channel_code`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (6, 3, 0, 'test-01', '测试模板', '哈哈哈 {name}', '[\"name\"]', 'f哈哈哈', '4383920', 1, 'YUN_PIAN', '1', '2021-04-10 01:07:21', '1', '2021-04-10 01:22:05', b'0'); | 2793 | +INSERT INTO `system_sms_template` (`id`, `type`, `status`, `code`, `name`, `content`, `params`, `remark`, `api_template_id`, `channel_id`, `channel_code`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (6, 3, 0, 'test-01', '测试模板', '哈哈哈 {name}', '[\"name\"]', 'f哈哈哈', '4383920', 6, 'DEBUG_DING_TALK', '1', '2021-04-10 01:07:21', '1', '2022-12-10 21:26:09', b'0'); |
| 2389 | INSERT INTO `system_sms_template` (`id`, `type`, `status`, `code`, `name`, `content`, `params`, `remark`, `api_template_id`, `channel_id`, `channel_code`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (7, 3, 0, 'test-04', '测试下', '老鸡{name},牛逼{code}', '[\"name\",\"code\"]', NULL, 'suibian', 4, 'DEBUG_DING_TALK', '1', '2021-04-13 00:29:53', '1', '2021-04-14 00:30:38', b'0'); | 2794 | INSERT INTO `system_sms_template` (`id`, `type`, `status`, `code`, `name`, `content`, `params`, `remark`, `api_template_id`, `channel_id`, `channel_code`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (7, 3, 0, 'test-04', '测试下', '老鸡{name},牛逼{code}', '[\"name\",\"code\"]', NULL, 'suibian', 4, 'DEBUG_DING_TALK', '1', '2021-04-13 00:29:53', '1', '2021-04-14 00:30:38', b'0'); |
| 2390 | -INSERT INTO `system_sms_template` (`id`, `type`, `status`, `code`, `name`, `content`, `params`, `remark`, `api_template_id`, `channel_id`, `channel_code`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (8, 1, 0, 'user-sms-login', '前台用户短信登录', '您的验证码是{code}', '[\"code\"]', NULL, '4372216', 1, 'YUN_PIAN', '1', '2021-10-11 08:10:00', '1', '2021-10-11 08:10:00', b'0'); | 2795 | +INSERT INTO `system_sms_template` (`id`, `type`, `status`, `code`, `name`, `content`, `params`, `remark`, `api_template_id`, `channel_id`, `channel_code`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (8, 1, 0, 'user-sms-login', '前台用户短信登录', '您的验证码是{code}', '[\"code\"]', NULL, '4372216', 6, 'DEBUG_DING_TALK', '1', '2021-10-11 08:10:00', '1', '2022-12-10 21:25:59', b'0'); |
| 2391 | INSERT INTO `system_sms_template` (`id`, `type`, `status`, `code`, `name`, `content`, `params`, `remark`, `api_template_id`, `channel_id`, `channel_code`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (9, 2, 0, 'bpm_task_assigned', '【工作流】任务被分配', '您收到了一条新的待办任务:{processInstanceName}-{taskName},申请人:{startUserNickname},处理链接:{detailUrl}', '[\"processInstanceName\",\"taskName\",\"startUserNickname\",\"detailUrl\"]', NULL, 'suibian', 4, 'DEBUG_DING_TALK', '1', '2022-01-21 22:31:19', '1', '2022-01-22 00:03:36', b'0'); | 2796 | INSERT INTO `system_sms_template` (`id`, `type`, `status`, `code`, `name`, `content`, `params`, `remark`, `api_template_id`, `channel_id`, `channel_code`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (9, 2, 0, 'bpm_task_assigned', '【工作流】任务被分配', '您收到了一条新的待办任务:{processInstanceName}-{taskName},申请人:{startUserNickname},处理链接:{detailUrl}', '[\"processInstanceName\",\"taskName\",\"startUserNickname\",\"detailUrl\"]', NULL, 'suibian', 4, 'DEBUG_DING_TALK', '1', '2022-01-21 22:31:19', '1', '2022-01-22 00:03:36', b'0'); |
| 2392 | INSERT INTO `system_sms_template` (`id`, `type`, `status`, `code`, `name`, `content`, `params`, `remark`, `api_template_id`, `channel_id`, `channel_code`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (10, 2, 0, 'bpm_process_instance_reject', '【工作流】流程被不通过', '您的流程被审批不通过:{processInstanceName},原因:{reason},查看链接:{detailUrl}', '[\"processInstanceName\",\"reason\",\"detailUrl\"]', NULL, 'suibian', 4, 'DEBUG_DING_TALK', '1', '2022-01-22 00:03:31', '1', '2022-05-01 12:33:14', b'0'); | 2797 | INSERT INTO `system_sms_template` (`id`, `type`, `status`, `code`, `name`, `content`, `params`, `remark`, `api_template_id`, `channel_id`, `channel_code`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (10, 2, 0, 'bpm_process_instance_reject', '【工作流】流程被不通过', '您的流程被审批不通过:{processInstanceName},原因:{reason},查看链接:{detailUrl}', '[\"processInstanceName\",\"reason\",\"detailUrl\"]', NULL, 'suibian', 4, 'DEBUG_DING_TALK', '1', '2022-01-22 00:03:31', '1', '2022-05-01 12:33:14', b'0'); |
| 2393 | INSERT INTO `system_sms_template` (`id`, `type`, `status`, `code`, `name`, `content`, `params`, `remark`, `api_template_id`, `channel_id`, `channel_code`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (11, 2, 0, 'bpm_process_instance_approve', '【工作流】流程被通过', '您的流程被审批通过:{processInstanceName},查看链接:{detailUrl}', '[\"processInstanceName\",\"detailUrl\"]', NULL, 'suibian', 4, 'DEBUG_DING_TALK', '1', '2022-01-22 00:04:31', '1', '2022-03-27 20:32:21', b'0'); | 2798 | INSERT INTO `system_sms_template` (`id`, `type`, `status`, `code`, `name`, `content`, `params`, `remark`, `api_template_id`, `channel_id`, `channel_code`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (11, 2, 0, 'bpm_process_instance_approve', '【工作流】流程被通过', '您的流程被审批通过:{processInstanceName},查看链接:{detailUrl}', '[\"processInstanceName\",\"detailUrl\"]', NULL, 'suibian', 4, 'DEBUG_DING_TALK', '1', '2022-01-22 00:04:31', '1', '2022-03-27 20:32:21', b'0'); |
| 2394 | INSERT INTO `system_sms_template` (`id`, `type`, `status`, `code`, `name`, `content`, `params`, `remark`, `api_template_id`, `channel_id`, `channel_code`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (12, 2, 0, 'demo', '演示模板', '我就是测试一下下', '[]', NULL, 'biubiubiu', 6, 'DEBUG_DING_TALK', '1', '2022-04-10 23:22:49', '1', '2022-04-10 23:22:49', b'0'); | 2799 | INSERT INTO `system_sms_template` (`id`, `type`, `status`, `code`, `name`, `content`, `params`, `remark`, `api_template_id`, `channel_id`, `channel_code`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (12, 2, 0, 'demo', '演示模板', '我就是测试一下下', '[]', NULL, 'biubiubiu', 6, 'DEBUG_DING_TALK', '1', '2022-04-10 23:22:49', '1', '2022-04-10 23:22:49', b'0'); |
| 2395 | -INSERT INTO `system_sms_template` (`id`, `type`, `status`, `code`, `name`, `content`, `params`, `remark`, `api_template_id`, `channel_id`, `channel_code`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (13, 1, 0, 'admin-sms-login', '后台用户短信登录', '您的验证码是{code}', '[\"code\"]', '', '4372216', 1, 'YUN_PIAN', '1', '2021-10-11 08:10:00', '1', '2022-06-19 00:34:18', b'0'); | 2800 | +INSERT INTO `system_sms_template` (`id`, `type`, `status`, `code`, `name`, `content`, `params`, `remark`, `api_template_id`, `channel_id`, `channel_code`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (13, 1, 0, 'admin-sms-login', '后台用户短信登录', '您的验证码是{code}', '[\"code\"]', '', '4372216', 6, 'DEBUG_DING_TALK', '1', '2021-10-11 08:10:00', '1', '2022-12-10 21:25:51', b'0'); |
| 2396 | COMMIT; | 2801 | COMMIT; |
| 2397 | 2802 | ||
| 2398 | -- ---------------------------- | 2803 | -- ---------------------------- |
| @@ -2417,7 +2822,7 @@ CREATE TABLE `system_social_user` ( | @@ -2417,7 +2822,7 @@ CREATE TABLE `system_social_user` ( | ||
| 2417 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', | 2822 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', |
| 2418 | `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', | 2823 | `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', |
| 2419 | PRIMARY KEY (`id`) USING BTREE | 2824 | PRIMARY KEY (`id`) USING BTREE |
| 2420 | -) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '社交用户表'; | 2825 | +) ENGINE = InnoDB AUTO_INCREMENT = 20 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '社交用户表'; |
| 2421 | 2826 | ||
| 2422 | -- ---------------------------- | 2827 | -- ---------------------------- |
| 2423 | -- Records of system_social_user | 2828 | -- Records of system_social_user |
| @@ -2442,7 +2847,7 @@ CREATE TABLE `system_social_user_bind` ( | @@ -2442,7 +2847,7 @@ CREATE TABLE `system_social_user_bind` ( | ||
| 2442 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', | 2847 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', |
| 2443 | `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', | 2848 | `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', |
| 2444 | PRIMARY KEY (`id`) USING BTREE | 2849 | PRIMARY KEY (`id`) USING BTREE |
| 2445 | -) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '社交绑定表'; | 2850 | +) ENGINE = InnoDB AUTO_INCREMENT = 39 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '社交绑定表'; |
| 2446 | 2851 | ||
| 2447 | -- ---------------------------- | 2852 | -- ---------------------------- |
| 2448 | -- Records of system_social_user_bind | 2853 | -- Records of system_social_user_bind |
| @@ -2471,7 +2876,7 @@ CREATE TABLE `system_tenant` ( | @@ -2471,7 +2876,7 @@ CREATE TABLE `system_tenant` ( | ||
| 2471 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', | 2876 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', |
| 2472 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', | 2877 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', |
| 2473 | PRIMARY KEY (`id`) USING BTREE | 2878 | PRIMARY KEY (`id`) USING BTREE |
| 2474 | -) ENGINE = InnoDB AUTO_INCREMENT = 125 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '租户表'; | 2879 | +) ENGINE = InnoDB AUTO_INCREMENT = 130 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '租户表'; |
| 2475 | 2880 | ||
| 2476 | -- ---------------------------- | 2881 | -- ---------------------------- |
| 2477 | -- Records of system_tenant | 2882 | -- Records of system_tenant |
| @@ -2480,6 +2885,10 @@ BEGIN; | @@ -2480,6 +2885,10 @@ BEGIN; | ||
| 2480 | INSERT INTO `system_tenant` (`id`, `name`, `contact_user_id`, `contact_name`, `contact_mobile`, `status`, `domain`, `package_id`, `expire_time`, `account_count`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1, '芋道源码', NULL, '芋艿', '17321315478', 0, 'https://www.iocoder.cn', 0, '2099-02-19 17:14:16', 9999, '1', '2021-01-05 17:03:47', '1', '2022-02-23 12:15:11', b'0'); | 2885 | INSERT INTO `system_tenant` (`id`, `name`, `contact_user_id`, `contact_name`, `contact_mobile`, `status`, `domain`, `package_id`, `expire_time`, `account_count`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1, '芋道源码', NULL, '芋艿', '17321315478', 0, 'https://www.iocoder.cn', 0, '2099-02-19 17:14:16', 9999, '1', '2021-01-05 17:03:47', '1', '2022-02-23 12:15:11', b'0'); |
| 2481 | INSERT INTO `system_tenant` (`id`, `name`, `contact_user_id`, `contact_name`, `contact_mobile`, `status`, `domain`, `package_id`, `expire_time`, `account_count`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (121, '小租户', 110, '小王2', '15601691300', 0, 'http://www.iocoder.cn', 111, '2024-03-11 00:00:00', 20, '1', '2022-02-22 00:56:14', '1', '2022-05-17 10:03:59', b'0'); | 2886 | INSERT INTO `system_tenant` (`id`, `name`, `contact_user_id`, `contact_name`, `contact_mobile`, `status`, `domain`, `package_id`, `expire_time`, `account_count`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (121, '小租户', 110, '小王2', '15601691300', 0, 'http://www.iocoder.cn', 111, '2024-03-11 00:00:00', 20, '1', '2022-02-22 00:56:14', '1', '2022-05-17 10:03:59', b'0'); |
| 2482 | INSERT INTO `system_tenant` (`id`, `name`, `contact_user_id`, `contact_name`, `contact_mobile`, `status`, `domain`, `package_id`, `expire_time`, `account_count`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (122, '测试租户', 113, '芋道', '15601691300', 0, 'https://www.iocoder.cn', 111, '2022-04-30 00:00:00', 50, '1', '2022-03-07 21:37:58', '1', '2022-03-07 21:37:58', b'0'); | 2887 | INSERT INTO `system_tenant` (`id`, `name`, `contact_user_id`, `contact_name`, `contact_mobile`, `status`, `domain`, `package_id`, `expire_time`, `account_count`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (122, '测试租户', 113, '芋道', '15601691300', 0, 'https://www.iocoder.cn', 111, '2022-04-30 00:00:00', 50, '1', '2022-03-07 21:37:58', '1', '2022-03-07 21:37:58', b'0'); |
| 2888 | +INSERT INTO `system_tenant` (`id`, `name`, `contact_user_id`, `contact_name`, `contact_mobile`, `status`, `domain`, `package_id`, `expire_time`, `account_count`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (125, '测试', 119, '12', NULL, 0, 'http://www.iocoder.cn', 111, '2022-12-22 00:00:00', 1, '1', '2022-12-30 11:32:03', '1', '2022-12-30 11:32:04', b'0'); | ||
| 2889 | +INSERT INTO `system_tenant` (`id`, `name`, `contact_user_id`, `contact_name`, `contact_mobile`, `status`, `domain`, `package_id`, `expire_time`, `account_count`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (126, '测试', 120, '12', NULL, 0, 'http://www.iocoder.cn', 111, '2022-12-22 00:00:00', 1, '1', '2022-12-30 11:33:42', '1', '2022-12-30 11:33:42', b'0'); | ||
| 2890 | +INSERT INTO `system_tenant` (`id`, `name`, `contact_user_id`, `contact_name`, `contact_mobile`, `status`, `domain`, `package_id`, `expire_time`, `account_count`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (127, '测试', 121, '12', NULL, 0, 'http://www.iocoder.cn', 111, '2022-12-22 00:00:00', 1, '1', '2022-12-30 11:33:48', '1', '2022-12-30 11:33:49', b'0'); | ||
| 2891 | +INSERT INTO `system_tenant` (`id`, `name`, `contact_user_id`, `contact_name`, `contact_mobile`, `status`, `domain`, `package_id`, `expire_time`, `account_count`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (129, '测试', 122, '12', NULL, 0, 'http://www.iocoder.cn', 111, '2022-12-22 00:00:00', 1, '1', '2022-12-30 11:47:52', '1', '2022-12-30 11:47:53', b'0'); | ||
| 2483 | COMMIT; | 2892 | COMMIT; |
| 2484 | 2893 | ||
| 2485 | -- ---------------------------- | 2894 | -- ---------------------------- |
| @@ -2504,7 +2913,7 @@ CREATE TABLE `system_tenant_package` ( | @@ -2504,7 +2913,7 @@ CREATE TABLE `system_tenant_package` ( | ||
| 2504 | -- Records of system_tenant_package | 2913 | -- Records of system_tenant_package |
| 2505 | -- ---------------------------- | 2914 | -- ---------------------------- |
| 2506 | BEGIN; | 2915 | BEGIN; |
| 2507 | -INSERT INTO `system_tenant_package` (`id`, `name`, `status`, `remark`, `menu_ids`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (111, '普通套餐', 0, '小功能', '[1024,1025,1,102,103,104,1013,1014,1015,1016,1017,1018,1019,1020,1021,1022,1023]', '1', '2022-02-22 00:54:00', '1', '2022-03-19 18:39:13', b'0'); | 2916 | +INSERT INTO `system_tenant_package` (`id`, `name`, `status`, `remark`, `menu_ids`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (111, '普通套餐', 0, '小功能', '[1,1036,1037,1038,1039,100,101,1063,103,1064,1001,1065,1002,1003,107,1004,1005,1006,1007,1008,1009,1010,1011,1012,1017,1018,1019,1020]', '1', '2022-02-22 00:54:00', '1', '2022-09-21 22:48:12', b'0'); |
| 2508 | COMMIT; | 2917 | COMMIT; |
| 2509 | 2918 | ||
| 2510 | -- ---------------------------- | 2919 | -- ---------------------------- |
| @@ -2528,7 +2937,12 @@ CREATE TABLE `system_user_post` ( | @@ -2528,7 +2937,12 @@ CREATE TABLE `system_user_post` ( | ||
| 2528 | -- Records of system_user_post | 2937 | -- Records of system_user_post |
| 2529 | -- ---------------------------- | 2938 | -- ---------------------------- |
| 2530 | BEGIN; | 2939 | BEGIN; |
| 2531 | -INSERT INTO `system_user_post` (`id`, `user_id`, `post_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1, 1, 1, 'admin', '2022-05-02 07:25:24', 'admin', '2022-05-02 07:25:24', b'0', 1); | 2940 | +INSERT INTO `system_user_post` (`id`, `user_id`, `post_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (112, 1, 1, 'admin', '2022-05-02 07:25:24', 'admin', '2022-05-02 07:25:24', b'0', 1); |
| 2941 | +INSERT INTO `system_user_post` (`id`, `user_id`, `post_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (113, 100, 1, 'admin', '2022-05-02 07:25:24', 'admin', '2022-05-02 07:25:24', b'0', 1); | ||
| 2942 | +INSERT INTO `system_user_post` (`id`, `user_id`, `post_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (114, 114, 3, 'admin', '2022-05-02 07:25:24', 'admin', '2022-05-02 07:25:24', b'0', 1); | ||
| 2943 | +INSERT INTO `system_user_post` (`id`, `user_id`, `post_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (115, 104, 1, '1', '2022-05-16 19:36:28', '1', '2022-05-16 19:36:28', b'0', 1); | ||
| 2944 | +INSERT INTO `system_user_post` (`id`, `user_id`, `post_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (116, 117, 2, '1', '2022-07-09 17:40:26', '1', '2022-07-09 17:40:26', b'0', 1); | ||
| 2945 | +INSERT INTO `system_user_post` (`id`, `user_id`, `post_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (117, 118, 1, '1', '2022-07-09 17:44:44', '1', '2022-07-09 17:44:44', b'0', 1); | ||
| 2532 | COMMIT; | 2946 | COMMIT; |
| 2533 | 2947 | ||
| 2534 | -- ---------------------------- | 2948 | -- ---------------------------- |
| @@ -2546,7 +2960,7 @@ CREATE TABLE `system_user_role` ( | @@ -2546,7 +2960,7 @@ CREATE TABLE `system_user_role` ( | ||
| 2546 | `deleted` bit(1) NULL DEFAULT b'0' COMMENT '是否删除', | 2960 | `deleted` bit(1) NULL DEFAULT b'0' COMMENT '是否删除', |
| 2547 | `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', | 2961 | `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', |
| 2548 | PRIMARY KEY (`id`) USING BTREE | 2962 | PRIMARY KEY (`id`) USING BTREE |
| 2549 | -) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '用户和角色关联表'; | 2963 | +) ENGINE = InnoDB AUTO_INCREMENT = 27 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '用户和角色关联表'; |
| 2550 | 2964 | ||
| 2551 | -- ---------------------------- | 2965 | -- ---------------------------- |
| 2552 | -- Records of system_user_role | 2966 | -- Records of system_user_role |
| @@ -2554,6 +2968,25 @@ CREATE TABLE `system_user_role` ( | @@ -2554,6 +2968,25 @@ CREATE TABLE `system_user_role` ( | ||
| 2554 | BEGIN; | 2968 | BEGIN; |
| 2555 | INSERT INTO `system_user_role` (`id`, `user_id`, `role_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1, 1, 1, '', '2022-01-11 13:19:45', '', '2022-05-12 12:35:17', b'0', 1); | 2969 | INSERT INTO `system_user_role` (`id`, `user_id`, `role_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1, 1, 1, '', '2022-01-11 13:19:45', '', '2022-05-12 12:35:17', b'0', 1); |
| 2556 | INSERT INTO `system_user_role` (`id`, `user_id`, `role_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2, 2, 2, '', '2022-01-11 13:19:45', '', '2022-05-12 12:35:13', b'0', 1); | 2970 | INSERT INTO `system_user_role` (`id`, `user_id`, `role_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2, 2, 2, '', '2022-01-11 13:19:45', '', '2022-05-12 12:35:13', b'0', 1); |
| 2971 | +INSERT INTO `system_user_role` (`id`, `user_id`, `role_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (4, 100, 101, '', '2022-01-11 13:19:45', '', '2022-05-12 12:35:13', b'0', 1); | ||
| 2972 | +INSERT INTO `system_user_role` (`id`, `user_id`, `role_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (5, 100, 1, '', '2022-01-11 13:19:45', '', '2022-05-12 12:35:12', b'0', 1); | ||
| 2973 | +INSERT INTO `system_user_role` (`id`, `user_id`, `role_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (6, 100, 2, '', '2022-01-11 13:19:45', '', '2022-05-12 12:35:11', b'0', 1); | ||
| 2974 | +INSERT INTO `system_user_role` (`id`, `user_id`, `role_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (10, 103, 1, '1', '2022-01-11 13:19:45', '1', '2022-01-11 13:19:45', b'0', 1); | ||
| 2975 | +INSERT INTO `system_user_role` (`id`, `user_id`, `role_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (11, 107, 106, '1', '2022-02-20 22:59:33', '1', '2022-02-20 22:59:33', b'0', 118); | ||
| 2976 | +INSERT INTO `system_user_role` (`id`, `user_id`, `role_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (12, 108, 107, '1', '2022-02-20 23:00:50', '1', '2022-02-20 23:00:50', b'0', 119); | ||
| 2977 | +INSERT INTO `system_user_role` (`id`, `user_id`, `role_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (13, 109, 108, '1', '2022-02-20 23:11:50', '1', '2022-02-20 23:11:50', b'0', 120); | ||
| 2978 | +INSERT INTO `system_user_role` (`id`, `user_id`, `role_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (14, 110, 109, '1', '2022-02-22 00:56:14', '1', '2022-02-22 00:56:14', b'0', 121); | ||
| 2979 | +INSERT INTO `system_user_role` (`id`, `user_id`, `role_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (15, 111, 110, '110', '2022-02-23 13:14:38', '110', '2022-02-23 13:14:38', b'0', 121); | ||
| 2980 | +INSERT INTO `system_user_role` (`id`, `user_id`, `role_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (16, 113, 111, '1', '2022-03-07 21:37:58', '1', '2022-03-07 21:37:58', b'0', 122); | ||
| 2981 | +INSERT INTO `system_user_role` (`id`, `user_id`, `role_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (17, 114, 101, '1', '2022-03-19 21:51:13', '1', '2022-03-19 21:51:13', b'0', 1); | ||
| 2982 | +INSERT INTO `system_user_role` (`id`, `user_id`, `role_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (18, 1, 2, '1', '2022-05-12 20:39:29', '1', '2022-05-12 20:39:29', b'0', 1); | ||
| 2983 | +INSERT INTO `system_user_role` (`id`, `user_id`, `role_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (19, 116, 113, '1', '2022-05-17 10:07:10', '1', '2022-05-17 10:07:10', b'0', 124); | ||
| 2984 | +INSERT INTO `system_user_role` (`id`, `user_id`, `role_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (20, 104, 101, '1', '2022-05-28 15:43:57', '1', '2022-05-28 15:43:57', b'0', 1); | ||
| 2985 | +INSERT INTO `system_user_role` (`id`, `user_id`, `role_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (22, 115, 2, '1', '2022-07-21 22:08:30', '1', '2022-07-21 22:08:30', b'0', 1); | ||
| 2986 | +INSERT INTO `system_user_role` (`id`, `user_id`, `role_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (23, 119, 114, '1', '2022-12-30 11:32:04', '1', '2022-12-30 11:32:04', b'0', 125); | ||
| 2987 | +INSERT INTO `system_user_role` (`id`, `user_id`, `role_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (24, 120, 115, '1', '2022-12-30 11:33:42', '1', '2022-12-30 11:33:42', b'0', 126); | ||
| 2988 | +INSERT INTO `system_user_role` (`id`, `user_id`, `role_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (25, 121, 116, '1', '2022-12-30 11:33:49', '1', '2022-12-30 11:33:49', b'0', 127); | ||
| 2989 | +INSERT INTO `system_user_role` (`id`, `user_id`, `role_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (26, 122, 118, '1', '2022-12-30 11:47:53', '1', '2022-12-30 11:47:53', b'0', 129); | ||
| 2557 | COMMIT; | 2990 | COMMIT; |
| 2558 | 2991 | ||
| 2559 | -- ---------------------------- | 2992 | -- ---------------------------- |
| @@ -2611,20 +3044,20 @@ CREATE TABLE `system_users` ( | @@ -2611,20 +3044,20 @@ CREATE TABLE `system_users` ( | ||
| 2611 | `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', | 3044 | `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', |
| 2612 | PRIMARY KEY (`id`) USING BTREE, | 3045 | PRIMARY KEY (`id`) USING BTREE, |
| 2613 | UNIQUE INDEX `idx_username`(`username` ASC, `update_time` ASC, `tenant_id` ASC) USING BTREE | 3046 | UNIQUE INDEX `idx_username`(`username` ASC, `update_time` ASC, `tenant_id` ASC) USING BTREE |
| 2614 | -) ENGINE = InnoDB AUTO_INCREMENT = 119 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '用户信息表'; | 3047 | +) ENGINE = InnoDB AUTO_INCREMENT = 123 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '用户信息表'; |
| 2615 | 3048 | ||
| 2616 | -- ---------------------------- | 3049 | -- ---------------------------- |
| 2617 | -- Records of system_users | 3050 | -- Records of system_users |
| 2618 | -- ---------------------------- | 3051 | -- ---------------------------- |
| 2619 | BEGIN; | 3052 | BEGIN; |
| 2620 | -INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`, `dept_id`, `post_ids`, `email`, `mobile`, `sex`, `avatar`, `status`, `login_ip`, `login_date`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1, 'admin', '$2a$10$0acJOIk2D25/oC87nyclE..0lzeu9DtQ/n3geP4fkun/zIVRhHJIO', '芋道源码', '管理员', 103, '[1]', 'aoteman@126.com', '15612345678', 1, 'http://test.yudao.iocoder.cn/a4224a33cf8d509f97aabc5d1ef67ba81959ec471f021f30e361faf7378962ba.jpg', 0, '127.0.0.1', '2022-07-28 01:37:56', 'admin', '2021-01-05 17:03:47', NULL, '2022-07-28 01:37:56', b'0', 1); | 3053 | +INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`, `dept_id`, `post_ids`, `email`, `mobile`, `sex`, `avatar`, `status`, `login_ip`, `login_date`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1, 'admin', '$2a$10$mRMIYLDtRHlf6.9ipiqH1.Z.bh/R9dO9d5iHiGYPigi6r5KOoR2Wm', '芋道源码', '管理员', 103, '[1]', 'aoteman@126.com', '15612345678', 1, 'http://test.yudao.iocoder.cn/e1fdd7271685ec143a0900681606406621717a666ad0b2798b096df41422b32f.png', 0, '127.0.0.1', '2023-01-17 12:33:07', 'admin', '2021-01-05 17:03:47', NULL, '2023-01-17 12:33:07', b'0', 1); |
| 2621 | INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`, `dept_id`, `post_ids`, `email`, `mobile`, `sex`, `avatar`, `status`, `login_ip`, `login_date`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (100, 'yudao', '$2a$10$11U48RhyJ5pSBYWSn12AD./ld671.ycSzJHbyrtpeoMeYiw31eo8a', '芋道', '不要吓我', 104, '[1]', 'yudao@iocoder.cn', '15601691300', 1, '', 1, '127.0.0.1', '2022-07-09 23:03:33', '', '2021-01-07 09:07:17', NULL, '2022-07-09 23:03:33', b'0', 1); | 3054 | INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`, `dept_id`, `post_ids`, `email`, `mobile`, `sex`, `avatar`, `status`, `login_ip`, `login_date`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (100, 'yudao', '$2a$10$11U48RhyJ5pSBYWSn12AD./ld671.ycSzJHbyrtpeoMeYiw31eo8a', '芋道', '不要吓我', 104, '[1]', 'yudao@iocoder.cn', '15601691300', 1, '', 1, '127.0.0.1', '2022-07-09 23:03:33', '', '2021-01-07 09:07:17', NULL, '2022-07-09 23:03:33', b'0', 1); |
| 2622 | INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`, `dept_id`, `post_ids`, `email`, `mobile`, `sex`, `avatar`, `status`, `login_ip`, `login_date`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (103, 'yuanma', '$2a$10$YMpimV4T6BtDhIaA8jSW.u8UTGBeGhc/qwXP4oxoMr4mOw9.qttt6', '源码', NULL, 106, NULL, 'yuanma@iocoder.cn', '15601701300', 0, '', 0, '127.0.0.1', '2022-07-08 01:26:27', '', '2021-01-13 23:50:35', NULL, '2022-07-08 01:26:27', b'0', 1); | 3055 | INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`, `dept_id`, `post_ids`, `email`, `mobile`, `sex`, `avatar`, `status`, `login_ip`, `login_date`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (103, 'yuanma', '$2a$10$YMpimV4T6BtDhIaA8jSW.u8UTGBeGhc/qwXP4oxoMr4mOw9.qttt6', '源码', NULL, 106, NULL, 'yuanma@iocoder.cn', '15601701300', 0, '', 0, '127.0.0.1', '2022-07-08 01:26:27', '', '2021-01-13 23:50:35', NULL, '2022-07-08 01:26:27', b'0', 1); |
| 2623 | INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`, `dept_id`, `post_ids`, `email`, `mobile`, `sex`, `avatar`, `status`, `login_ip`, `login_date`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (104, 'test', '$2a$10$GP8zvqHB//TekuzYZSBYAuBQJiNq1.fxQVDYJ.uBCOnWCtDVKE4H6', '测试号', NULL, 107, '[1,2]', '111@qq.com', '15601691200', 1, '', 0, '127.0.0.1', '2022-05-28 15:43:17', '', '2021-01-21 02:13:53', NULL, '2022-07-09 09:00:33', b'0', 1); | 3056 | INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`, `dept_id`, `post_ids`, `email`, `mobile`, `sex`, `avatar`, `status`, `login_ip`, `login_date`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (104, 'test', '$2a$10$GP8zvqHB//TekuzYZSBYAuBQJiNq1.fxQVDYJ.uBCOnWCtDVKE4H6', '测试号', NULL, 107, '[1,2]', '111@qq.com', '15601691200', 1, '', 0, '127.0.0.1', '2022-05-28 15:43:17', '', '2021-01-21 02:13:53', NULL, '2022-07-09 09:00:33', b'0', 1); |
| 2624 | INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`, `dept_id`, `post_ids`, `email`, `mobile`, `sex`, `avatar`, `status`, `login_ip`, `login_date`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (107, 'admin107', '$2a$10$dYOOBKMO93v/.ReCqzyFg.o67Tqk.bbc2bhrpyBGkIw9aypCtr2pm', '芋艿', NULL, NULL, NULL, '', '15601691300', 0, '', 0, '', NULL, '1', '2022-02-20 22:59:33', '1', '2022-02-27 08:26:51', b'0', 118); | 3057 | INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`, `dept_id`, `post_ids`, `email`, `mobile`, `sex`, `avatar`, `status`, `login_ip`, `login_date`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (107, 'admin107', '$2a$10$dYOOBKMO93v/.ReCqzyFg.o67Tqk.bbc2bhrpyBGkIw9aypCtr2pm', '芋艿', NULL, NULL, NULL, '', '15601691300', 0, '', 0, '', NULL, '1', '2022-02-20 22:59:33', '1', '2022-02-27 08:26:51', b'0', 118); |
| 2625 | INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`, `dept_id`, `post_ids`, `email`, `mobile`, `sex`, `avatar`, `status`, `login_ip`, `login_date`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (108, 'admin108', '$2a$10$y6mfvKoNYL1GXWak8nYwVOH.kCWqjactkzdoIDgiKl93WN3Ejg.Lu', '芋艿', NULL, NULL, NULL, '', '15601691300', 0, '', 0, '', NULL, '1', '2022-02-20 23:00:50', '1', '2022-02-27 08:26:53', b'0', 119); | 3058 | INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`, `dept_id`, `post_ids`, `email`, `mobile`, `sex`, `avatar`, `status`, `login_ip`, `login_date`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (108, 'admin108', '$2a$10$y6mfvKoNYL1GXWak8nYwVOH.kCWqjactkzdoIDgiKl93WN3Ejg.Lu', '芋艿', NULL, NULL, NULL, '', '15601691300', 0, '', 0, '', NULL, '1', '2022-02-20 23:00:50', '1', '2022-02-27 08:26:53', b'0', 119); |
| 2626 | INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`, `dept_id`, `post_ids`, `email`, `mobile`, `sex`, `avatar`, `status`, `login_ip`, `login_date`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (109, 'admin109', '$2a$10$JAqvH0tEc0I7dfDVBI7zyuB4E3j.uH6daIjV53.vUS6PknFkDJkuK', '芋艿', NULL, NULL, NULL, '', '15601691300', 0, '', 0, '', NULL, '1', '2022-02-20 23:11:50', '1', '2022-02-27 08:26:56', b'0', 120); | 3059 | INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`, `dept_id`, `post_ids`, `email`, `mobile`, `sex`, `avatar`, `status`, `login_ip`, `login_date`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (109, 'admin109', '$2a$10$JAqvH0tEc0I7dfDVBI7zyuB4E3j.uH6daIjV53.vUS6PknFkDJkuK', '芋艿', NULL, NULL, NULL, '', '15601691300', 0, '', 0, '', NULL, '1', '2022-02-20 23:11:50', '1', '2022-02-27 08:26:56', b'0', 120); |
| 2627 | -INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`, `dept_id`, `post_ids`, `email`, `mobile`, `sex`, `avatar`, `status`, `login_ip`, `login_date`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (110, 'admin110', '$2a$10$qYxoXs0ogPHgYllyEneYde9xcCW5hZgukrxeXZ9lmLhKse8TK6IwW', '小王', NULL, NULL, NULL, '', '15601691300', 0, '', 0, '127.0.0.1', '2022-02-23 19:36:28', '1', '2022-02-22 00:56:14', NULL, '2022-02-27 08:26:59', b'0', 121); | 3060 | +INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`, `dept_id`, `post_ids`, `email`, `mobile`, `sex`, `avatar`, `status`, `login_ip`, `login_date`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (110, 'admin110', '$2a$10$mRMIYLDtRHlf6.9ipiqH1.Z.bh/R9dO9d5iHiGYPigi6r5KOoR2Wm', '小王', NULL, NULL, NULL, '', '15601691300', 0, '', 0, '127.0.0.1', '2022-09-25 22:47:33', '1', '2022-02-22 00:56:14', NULL, '2022-09-25 22:47:33', b'0', 121); |
| 2628 | INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`, `dept_id`, `post_ids`, `email`, `mobile`, `sex`, `avatar`, `status`, `login_ip`, `login_date`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (111, 'test', '$2a$10$mExveopHUx9Q4QiLtAzhDeH3n4/QlNLzEsM4AqgxKrU.ciUZDXZCy', '测试用户', NULL, NULL, '[]', '', '', 0, '', 0, '', NULL, '110', '2022-02-23 13:14:33', '110', '2022-02-23 13:14:33', b'0', 121); | 3061 | INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`, `dept_id`, `post_ids`, `email`, `mobile`, `sex`, `avatar`, `status`, `login_ip`, `login_date`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (111, 'test', '$2a$10$mExveopHUx9Q4QiLtAzhDeH3n4/QlNLzEsM4AqgxKrU.ciUZDXZCy', '测试用户', NULL, NULL, '[]', '', '', 0, '', 0, '', NULL, '110', '2022-02-23 13:14:33', '110', '2022-02-23 13:14:33', b'0', 121); |
| 2629 | INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`, `dept_id`, `post_ids`, `email`, `mobile`, `sex`, `avatar`, `status`, `login_ip`, `login_date`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (112, 'newobject', '$2a$10$jh5MsR.ud/gKe3mVeUp5t.nEXGDSmHyv5OYjWQwHO8wlGmMSI9Twy', '新对象', NULL, NULL, '[]', '', '', 0, '', 0, '', NULL, '1', '2022-02-23 19:08:03', '1', '2022-02-23 19:08:03', b'0', 1); | 3062 | INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`, `dept_id`, `post_ids`, `email`, `mobile`, `sex`, `avatar`, `status`, `login_ip`, `login_date`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (112, 'newobject', '$2a$10$jh5MsR.ud/gKe3mVeUp5t.nEXGDSmHyv5OYjWQwHO8wlGmMSI9Twy', '新对象', NULL, NULL, '[]', '', '', 0, '', 0, '', NULL, '1', '2022-02-23 19:08:03', '1', '2022-02-23 19:08:03', b'0', 1); |
| 2630 | INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`, `dept_id`, `post_ids`, `email`, `mobile`, `sex`, `avatar`, `status`, `login_ip`, `login_date`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (113, 'aoteman', '$2a$10$0acJOIk2D25/oC87nyclE..0lzeu9DtQ/n3geP4fkun/zIVRhHJIO', '芋道', NULL, NULL, NULL, '', '15601691300', 0, '', 0, '127.0.0.1', '2022-03-19 18:38:51', '1', '2022-03-07 21:37:58', NULL, '2022-03-19 18:38:51', b'0', 122); | 3063 | INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`, `dept_id`, `post_ids`, `email`, `mobile`, `sex`, `avatar`, `status`, `login_ip`, `login_date`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (113, 'aoteman', '$2a$10$0acJOIk2D25/oC87nyclE..0lzeu9DtQ/n3geP4fkun/zIVRhHJIO', '芋道', NULL, NULL, NULL, '', '15601691300', 0, '', 0, '127.0.0.1', '2022-03-19 18:38:51', '1', '2022-03-07 21:37:58', NULL, '2022-03-19 18:38:51', b'0', 122); |
| @@ -2632,7 +3065,11 @@ INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`, | @@ -2632,7 +3065,11 @@ INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`, | ||
| 2632 | INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`, `dept_id`, `post_ids`, `email`, `mobile`, `sex`, `avatar`, `status`, `login_ip`, `login_date`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (115, 'aotemane', '$2a$10$/WCwGHu1eq0wOVDd/u8HweJ0gJCHyLS6T7ndCqI8UXZAQom1etk2e', '1', '11', 101, '[]', '', '', 1, '', 0, '', NULL, '1', '2022-04-30 02:55:43', '1', '2022-06-22 13:34:58', b'0', 1); | 3065 | INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`, `dept_id`, `post_ids`, `email`, `mobile`, `sex`, `avatar`, `status`, `login_ip`, `login_date`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (115, 'aotemane', '$2a$10$/WCwGHu1eq0wOVDd/u8HweJ0gJCHyLS6T7ndCqI8UXZAQom1etk2e', '1', '11', 101, '[]', '', '', 1, '', 0, '', NULL, '1', '2022-04-30 02:55:43', '1', '2022-06-22 13:34:58', b'0', 1); |
| 2633 | INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`, `dept_id`, `post_ids`, `email`, `mobile`, `sex`, `avatar`, `status`, `login_ip`, `login_date`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (116, '15601691302', '$2a$10$L5C4S0U6adBWMvFv1Wwl4.DI/NwYS3WIfLj5Q.Naqr5II8CmqsDZ6', '小豆', NULL, NULL, NULL, '', '', 0, '', 0, '', NULL, '1', '2022-05-17 10:07:10', '1', '2022-05-17 10:07:10', b'0', 124); | 3066 | INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`, `dept_id`, `post_ids`, `email`, `mobile`, `sex`, `avatar`, `status`, `login_ip`, `login_date`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (116, '15601691302', '$2a$10$L5C4S0U6adBWMvFv1Wwl4.DI/NwYS3WIfLj5Q.Naqr5II8CmqsDZ6', '小豆', NULL, NULL, NULL, '', '', 0, '', 0, '', NULL, '1', '2022-05-17 10:07:10', '1', '2022-05-17 10:07:10', b'0', 124); |
| 2634 | INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`, `dept_id`, `post_ids`, `email`, `mobile`, `sex`, `avatar`, `status`, `login_ip`, `login_date`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (117, 'admin123', '$2a$10$WI8Gg/lpZQIrOEZMHqka7OdFaD4Nx.B/qY8ZGTTUKrOJwaHFqibaC', '测试号', '1111', 100, '[2]', '', '15601691234', 1, '', 0, '', NULL, '1', '2022-07-09 17:40:26', '1', '2022-07-09 17:40:26', b'0', 1); | 3067 | INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`, `dept_id`, `post_ids`, `email`, `mobile`, `sex`, `avatar`, `status`, `login_ip`, `login_date`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (117, 'admin123', '$2a$10$WI8Gg/lpZQIrOEZMHqka7OdFaD4Nx.B/qY8ZGTTUKrOJwaHFqibaC', '测试号', '1111', 100, '[2]', '', '15601691234', 1, '', 0, '', NULL, '1', '2022-07-09 17:40:26', '1', '2022-07-09 17:40:26', b'0', 1); |
| 2635 | -INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`, `dept_id`, `post_ids`, `email`, `mobile`, `sex`, `avatar`, `status`, `login_ip`, `login_date`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (118, 'goudan', '$2a$10$Lrb71muL.s5/AFjQ2IHkzOFlAFwUToH.zQL7bnghvTDt/QptjGgF6', '狗蛋', NULL, 103, '[1]', '', '', 2, '', 0, '', NULL, '1', '2022-07-09 17:44:43', '1', '2022-07-09 17:44:43', b'0', 1); | 3068 | +INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`, `dept_id`, `post_ids`, `email`, `mobile`, `sex`, `avatar`, `status`, `login_ip`, `login_date`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (118, 'goudan', '$2a$10$Lrb71muL.s5/AFjQ2IHkzOFlAFwUToH.zQL7bnghvTDt/QptjGgF6', '狗蛋', NULL, 103, '[1]', '', '', 2, '', 0, '', NULL, '1', '2022-07-09 17:44:43', '1', '2022-12-31 17:29:13', b'0', 1); |
| 3069 | +INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`, `dept_id`, `post_ids`, `email`, `mobile`, `sex`, `avatar`, `status`, `login_ip`, `login_date`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (119, 'admin', '$2a$10$AheSOpxeWQYhEO/gGZhDz.oifdX5zt.kprWNHptPiiStUx4mXmHb.', '12', NULL, NULL, NULL, '', '', 0, '', 0, '', NULL, '1', '2022-12-30 11:32:04', '1', '2022-12-30 11:32:04', b'0', 125); | ||
| 3070 | +INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`, `dept_id`, `post_ids`, `email`, `mobile`, `sex`, `avatar`, `status`, `login_ip`, `login_date`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (120, 'admin', '$2a$10$D.xFtcgma/NJ3SyYlUj3bORcs0mwOD6Zu.4I7GCI/8/25/QSn4qJC', '12', NULL, NULL, NULL, '', '', 0, '', 0, '', NULL, '1', '2022-12-30 11:33:42', '1', '2022-12-30 11:33:42', b'0', 126); | ||
| 3071 | +INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`, `dept_id`, `post_ids`, `email`, `mobile`, `sex`, `avatar`, `status`, `login_ip`, `login_date`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (121, 'admin', '$2a$10$R2guBf7TyERjjW9lm0Pd0Osut6vt7NuH2Vx6fkOI5.VgSvJK2Xb82', '12', NULL, NULL, NULL, '', '', 0, '', 0, '', NULL, '1', '2022-12-30 11:33:49', '1', '2022-12-30 11:33:49', b'0', 127); | ||
| 3072 | +INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`, `dept_id`, `post_ids`, `email`, `mobile`, `sex`, `avatar`, `status`, `login_ip`, `login_date`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (122, 'admin', '$2a$10$pwxqUUza61HBgx3FTjp2d.Mc2UKalikXxP91wUdP4bFe7Hl.lfmeq', '12', NULL, NULL, NULL, '', '', 0, '', 0, '', NULL, '1', '2022-12-30 11:47:52', '1', '2022-12-30 11:47:52', b'0', 129); | ||
| 2636 | COMMIT; | 3073 | COMMIT; |
| 2637 | 3074 | ||
| 2638 | SET FOREIGN_KEY_CHECKS = 1; | 3075 | SET FOREIGN_KEY_CHECKS = 1; |
sql/optional/mall/coupon.sql deleted
| 1 | -DROP TABLE IF EXISTS `coupon`; | ||
| 2 | -CREATE TABLE `coupon` | ||
| 3 | -( | ||
| 4 | - `id` bigint NOT NULL AUTO_INCREMENT COMMENT '用户ID', | ||
| 5 | - `type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '优惠券类型 reward-满减 discount-折扣 random-随机', | ||
| 6 | - `name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '优惠券名称', | ||
| 7 | - `coupon_type_id` bigint UNSIGNED DEFAULT 0 COMMENT '优惠券类型id', | ||
| 8 | - `coupon_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '优惠券编码', | ||
| 9 | - `member_id` bigint UNSIGNED NOT NULL DEFAULT 0 COMMENT '领用人', | ||
| 10 | - `use_order_id` bigint UNSIGNED NOT NULL DEFAULT 0 COMMENT '优惠券使用订单id', | ||
| 11 | - `goods_type` tinyint(1) UNSIGNED NOT NULL DEFAULT 0 COMMENT '适用商品类型1-全部商品可用;2-指定商品可用;3-指定商品不可用', | ||
| 12 | - `goods_ids` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '适用商品id', | ||
| 13 | - `at_least` decimal(10, 2) UNSIGNED NOT NULL DEFAULT 0 COMMENT '最小金额', | ||
| 14 | - `money` decimal(10, 2) UNSIGNED NOT NULL DEFAULT 0 COMMENT '面额', | ||
| 15 | - `discount` decimal(10, 2) UNSIGNED NOT NULL DEFAULT 0 COMMENT '1 =< 折扣 <= 9.9 当type为discount时需要添加', | ||
| 16 | - `discount_limit` decimal(10, 2) UNSIGNED NOT NULL DEFAULT 0 COMMENT '最多折扣金额 当type为discount时可选择性添加', | ||
| 17 | - `whether_forbid_preference` tinyint(1) UNSIGNED NOT NULL DEFAULT 0 COMMENT '优惠叠加 0-不限制 1- 优惠券仅原价购买商品时可用', | ||
| 18 | - `whether_expire_notice` tinyint(1) UNSIGNED NOT NULL DEFAULT 0 COMMENT '是否开启过期提醒0-不开启 1-开启', | ||
| 19 | - `expire_notice_fixed_term` int(11) UNSIGNED NOT NULL DEFAULT 0 COMMENT '过期前N天提醒', | ||
| 20 | - `whether_noticed` tinyint(1) UNSIGNED NOT NULL DEFAULT 0 COMMENT '是否已提醒', | ||
| 21 | - `state` tinyint(4) UNSIGNED NOT NULL DEFAULT 0 COMMENT '优惠券状态 1已领用(未使用) 2已使用 3已过期', | ||
| 22 | - `get_type` tinyint(1) UNSIGNED NOT NULL DEFAULT 0 COMMENT '获取方式1订单2.直接领取3.活动领取 4转赠 5分享获取', | ||
| 23 | - `fetch_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '领取时间', | ||
| 24 | - `use_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '使用时间', | ||
| 25 | - `start_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '可使用的开始时间', | ||
| 26 | - `end_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '有效期结束时间', | ||
| 27 | - `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '创建者', | ||
| 28 | - `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', | ||
| 29 | - `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者', | ||
| 30 | - `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', | ||
| 31 | - `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', | ||
| 32 | - `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', | ||
| 33 | - PRIMARY KEY (`id`) USING BTREE | ||
| 34 | -) ENGINE = InnoDB | ||
| 35 | - AUTO_INCREMENT = 119 | ||
| 36 | - CHARACTER SET = utf8mb4 | ||
| 37 | - COLLATE = utf8mb4_unicode_ci COMMENT = '优惠券'; | ||
| 38 | - | ||
| 39 | -DROP TABLE IF EXISTS `coupon_templete`; | ||
| 40 | -CREATE TABLE `coupon_templete` | ||
| 41 | -( | ||
| 42 | - `id` bigint NOT NULL AUTO_INCREMENT COMMENT '用户ID', | ||
| 43 | - `type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '优惠券类型 reward-满减 discount-折扣 random-随机', | ||
| 44 | - `name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '优惠券名称', | ||
| 45 | - `coupon_name_remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '名称备注', | ||
| 46 | - `image` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '优惠券图片', | ||
| 47 | - `count` int(11) NOT NULL DEFAULT 0 COMMENT '发放数量', | ||
| 48 | - `lead_count` int(11) NOT NULL DEFAULT 0 COMMENT '已领取数量', | ||
| 49 | - `used_count` int(11) UNSIGNED NOT NULL DEFAULT 0 COMMENT '已使用数量', | ||
| 50 | - `goods_type` tinyint(1) UNSIGNED NOT NULL DEFAULT 1 COMMENT '适用商品类型1-全部商品可用;2-指定商品可用;3-指定商品不可用', | ||
| 51 | - `product_ids` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '适用商品id', | ||
| 52 | - `has_use_limit` tinyint(1) UNSIGNED NOT NULL DEFAULT 0 COMMENT '使用门槛0-无门槛 1-有门槛', | ||
| 53 | - `at_least` decimal(10, 2) NOT NULL DEFAULT 0 COMMENT '满多少元使用 0代表无限制', | ||
| 54 | - `money` decimal(10, 2) NOT NULL DEFAULT 0 COMMENT '发放面额 当type为reward时需要添加', | ||
| 55 | - `discount` decimal(10, 2) UNSIGNED NOT NULL DEFAULT 0 COMMENT '1 =< 折扣 <= 9.9 当type为discount时需要添加', | ||
| 56 | - `discount_limit` decimal(10, 2) NOT NULL DEFAULT 0 COMMENT '最多折扣金额 当type为discount时可选择性添加', | ||
| 57 | - `min_money` decimal(10, 2) UNSIGNED NOT NULL DEFAULT 0 COMMENT '最低金额 当type为radom时需要添加', | ||
| 58 | - `max_money` decimal(10, 2) UNSIGNED NOT NULL DEFAULT 0 COMMENT '最大金额 当type为radom时需要添加', | ||
| 59 | - `validity_type` tinyint(1) UNSIGNED NOT NULL DEFAULT 0 COMMENT '过期类型1-时间范围过期 2-领取之日固定日期后过期 3-领取次日固定日期后过期', | ||
| 60 | - `start_use_time` datetime COMMENT '使用开始日期 过期类型1时必填', | ||
| 61 | - `end_use_time` datetime COMMENT '使用结束日期 过期类型1时必填', | ||
| 62 | - `fixed_term` int(11) UNSIGNED NOT NULL DEFAULT 0 COMMENT '当validity_type为2或者3时需要添加 领取之日起或者次日N天内有效', | ||
| 63 | - `whether_limitless` tinyint(1) UNSIGNED NOT NULL DEFAULT 0 COMMENT '是否无限制0-否 1是', | ||
| 64 | - `max_fetch` int(11) UNSIGNED NOT NULL DEFAULT 0 COMMENT '每人最大领取个数', | ||
| 65 | - `whether_expire_notice` tinyint(1) UNSIGNED NOT NULL DEFAULT 0 COMMENT '是否开启过期提醒0-不开启 1-开启', | ||
| 66 | - `expire_notice_fixed_term` int(11) UNSIGNED NOT NULL DEFAULT 0 COMMENT '过期前N天提醒', | ||
| 67 | - `whether_forbid_preference` tinyint(1) UNSIGNED NOT NULL DEFAULT 0 COMMENT '优惠叠加 0-不限制 1- 优惠券仅原价购买商品时可用', | ||
| 68 | - `whether_show` int(11) UNSIGNED NOT NULL DEFAULT 0 COMMENT '是否显示', | ||
| 69 | - `discount_order_money` decimal(10, 2) UNSIGNED NOT NULL DEFAULT 0 COMMENT '订单的优惠总金额', | ||
| 70 | - `order_money` decimal(10, 2) UNSIGNED NOT NULL DEFAULT 0 COMMENT '用券总成交额', | ||
| 71 | - `whether_forbidden` tinyint(1) UNSIGNED NOT NULL DEFAULT 0 COMMENT '是否禁止发放0-否 1-是', | ||
| 72 | - `order_goods_num` int(11) UNSIGNED NOT NULL DEFAULT 0 COMMENT '使用优惠券购买的商品数量', | ||
| 73 | - `status` tinyint(11) NOT NULL DEFAULT 0 COMMENT '状态(1进行中2已结束-1已关闭)', | ||
| 74 | - `end_time` datetime COMMENT '有效日期结束时间', | ||
| 75 | - `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '创建者', | ||
| 76 | - `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', | ||
| 77 | - `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者', | ||
| 78 | - `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', | ||
| 79 | - `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', | ||
| 80 | - `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', | ||
| 81 | - PRIMARY KEY (`id`) USING BTREE | ||
| 82 | -) ENGINE = InnoDB | ||
| 83 | - AUTO_INCREMENT = 119 | ||
| 84 | - CHARACTER SET = utf8mb4 | ||
| 85 | - COLLATE = utf8mb4_unicode_ci COMMENT = '优惠券模板'; | ||
| 86 | \ No newline at end of file | 0 | \ No newline at end of file |
sql/optional/mall/mall.sql deleted
| 1 | -/* | ||
| 2 | - Navicat Premium Data Transfer | ||
| 3 | - | ||
| 4 | - Source Server : 127.0.0.1 MySQL | ||
| 5 | - Source Server Type : MySQL | ||
| 6 | - Source Server Version : 80026 | ||
| 7 | - Source Host : localhost:3306 | ||
| 8 | - Source Schema : ruoyi-vue-pro | ||
| 9 | - | ||
| 10 | - Target Server Type : MySQL | ||
| 11 | - Target Server Version : 80026 | ||
| 12 | - File Encoding : 65001 | ||
| 13 | - | ||
| 14 | - Date: 01/08/2022 23:01:36 | ||
| 15 | -*/ | ||
| 16 | - | ||
| 17 | -SET NAMES utf8mb4; | ||
| 18 | -SET FOREIGN_KEY_CHECKS = 0; | ||
| 19 | - | ||
| 20 | --- ---------------------------- | ||
| 21 | --- Table structure for market_activity | ||
| 22 | --- ---------------------------- | ||
| 23 | -DROP TABLE IF EXISTS `market_activity`; | ||
| 24 | -CREATE TABLE `market_activity` ( | ||
| 25 | - `id` bigint NOT NULL AUTO_INCREMENT COMMENT '活动编号', | ||
| 26 | - `title` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '活动标题', | ||
| 27 | - `activity_type` tinyint NOT NULL COMMENT '活动类型', | ||
| 28 | - `status` tinyint NOT NULL DEFAULT -1 COMMENT '活动状态', | ||
| 29 | - `start_time` datetime NOT NULL COMMENT '开始时间', | ||
| 30 | - `end_time` datetime NOT NULL COMMENT '结束时间', | ||
| 31 | - `invalid_time` datetime NULL DEFAULT NULL COMMENT '失效时间', | ||
| 32 | - `delete_time` datetime NULL DEFAULT NULL COMMENT '删除时间', | ||
| 33 | - `time_limited_discount` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '限制折扣字符串,使用 JSON 序列化成字符串存储', | ||
| 34 | - `full_privilege` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '限制折扣字符串,使用 JSON 序列化成字符串存储', | ||
| 35 | - `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '创建者', | ||
| 36 | - `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', | ||
| 37 | - `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者', | ||
| 38 | - `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', | ||
| 39 | - `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', | ||
| 40 | - `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', | ||
| 41 | - PRIMARY KEY (`id`) USING BTREE | ||
| 42 | -) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '促销活动'; | ||
| 43 | - | ||
| 44 | --- ---------------------------- | ||
| 45 | --- Records of market_activity | ||
| 46 | --- ---------------------------- | ||
| 47 | -BEGIN; | ||
| 48 | -COMMIT; | ||
| 49 | - | ||
| 50 | --- ---------------------------- | ||
| 51 | --- Table structure for market_banner | ||
| 52 | --- ---------------------------- | ||
| 53 | -DROP TABLE IF EXISTS `market_banner`; | ||
| 54 | -CREATE TABLE `market_banner` ( | ||
| 55 | - `id` bigint NOT NULL AUTO_INCREMENT COMMENT 'Banner编号', | ||
| 56 | - `title` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT 'Banner标题', | ||
| 57 | - `pic_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '图片URL', | ||
| 58 | - `status` tinyint NOT NULL DEFAULT -1 COMMENT '活动状态', | ||
| 59 | - `url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '跳转地址', | ||
| 60 | - `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '创建者', | ||
| 61 | - `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', | ||
| 62 | - `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者', | ||
| 63 | - `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', | ||
| 64 | - `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', | ||
| 65 | - `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', | ||
| 66 | - `sort` tinyint NULL DEFAULT NULL COMMENT '排序', | ||
| 67 | - `memo` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '描述', | ||
| 68 | - PRIMARY KEY (`id`) USING BTREE | ||
| 69 | -) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = 'Banner管理'; | ||
| 70 | - | ||
| 71 | --- ---------------------------- | ||
| 72 | --- Records of market_banner | ||
| 73 | --- ---------------------------- | ||
| 74 | -BEGIN; | ||
| 75 | -COMMIT; | ||
| 76 | - | ||
| 77 | --- ---------------------------- | ||
| 78 | --- Table structure for member_address | ||
| 79 | --- ---------------------------- | ||
| 80 | -DROP TABLE IF EXISTS `member_address`; | ||
| 81 | -CREATE TABLE `member_address` ( | ||
| 82 | - `id` bigint NOT NULL AUTO_INCREMENT COMMENT '收件地址编号', | ||
| 83 | - `user_id` bigint NOT NULL COMMENT '用户编号', | ||
| 84 | - `name` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '收件人名称', | ||
| 85 | - `mobile` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '手机号', | ||
| 86 | - `area_id` bigint NOT NULL COMMENT '地区编码', | ||
| 87 | - `post_code` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '邮编', | ||
| 88 | - `detail_address` varchar(250) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '收件详细地址', | ||
| 89 | - `defaulted` bit(1) NOT NULL COMMENT '是否默认', | ||
| 90 | - `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '创建者', | ||
| 91 | - `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', | ||
| 92 | - `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者', | ||
| 93 | - `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', | ||
| 94 | - `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', | ||
| 95 | - `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', | ||
| 96 | - PRIMARY KEY (`id`) USING BTREE, | ||
| 97 | - INDEX `idx_userId`(`user_id` ASC) USING BTREE | ||
| 98 | -) ENGINE = InnoDB AUTO_INCREMENT = 21 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '用户收件地址'; | ||
| 99 | - | ||
| 100 | --- ---------------------------- | ||
| 101 | --- Records of member_address | ||
| 102 | --- ---------------------------- | ||
| 103 | -BEGIN; | ||
| 104 | -INSERT INTO `member_address` (`id`, `user_id`, `name`, `mobile`, `area_id`, `post_code`, `detail_address`, `defaulted`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (21, 1, 'yunai', '15601691300', 610632, '200000', '芋道源码 233 号 666 室', b'1', '1', '2022-08-01 22:46:35', '1', '2022-08-01 22:46:35', b'0', 1); | ||
| 105 | -COMMIT; | ||
| 106 | - | ||
| 107 | --- ---------------------------- | ||
| 108 | --- Table structure for product_brand | ||
| 109 | --- ---------------------------- | ||
| 110 | -DROP TABLE IF EXISTS `product_brand`; | ||
| 111 | -CREATE TABLE `product_brand` ( | ||
| 112 | - `id` bigint NOT NULL AUTO_INCREMENT COMMENT '品牌编号', | ||
| 113 | - `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '品牌名称', | ||
| 114 | - `pic_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '品牌图片', | ||
| 115 | - `sort` int NULL DEFAULT 0 COMMENT '品牌排序', | ||
| 116 | - `description` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '品牌描述', | ||
| 117 | - `status` tinyint NOT NULL COMMENT '状态', | ||
| 118 | - `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '创建者', | ||
| 119 | - `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', | ||
| 120 | - `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者', | ||
| 121 | - `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', | ||
| 122 | - `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', | ||
| 123 | - `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', | ||
| 124 | - PRIMARY KEY (`id`) USING BTREE | ||
| 125 | -) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '商品品牌'; | ||
| 126 | - | ||
| 127 | --- ---------------------------- | ||
| 128 | --- Records of product_brand | ||
| 129 | --- ---------------------------- | ||
| 130 | -BEGIN; | ||
| 131 | -INSERT INTO `product_brand` (`id`, `name`, `pic_url`, `sort`, `description`, `status`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1, '苹果', 'http://test.yudao.iocoder.cn/e3726713fa56db5717c78c011762fcc7a251db12735c3581470638b8e1fa17e2.jpeg', 0, '是上市', 0, '1', '2022-07-30 22:12:18', '1', '2022-07-30 22:13:55', b'0', 1); | ||
| 132 | -COMMIT; | ||
| 133 | - | ||
| 134 | --- ---------------------------- | ||
| 135 | --- Table structure for product_category | ||
| 136 | --- ---------------------------- | ||
| 137 | -DROP TABLE IF EXISTS `product_category`; | ||
| 138 | -CREATE TABLE `product_category` ( | ||
| 139 | - `id` bigint NOT NULL AUTO_INCREMENT COMMENT '分类编号', | ||
| 140 | - `parent_id` bigint NOT NULL COMMENT '父分类编号', | ||
| 141 | - `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '分类名称', | ||
| 142 | - `pic_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '分类图片', | ||
| 143 | - `sort` int NULL DEFAULT 0 COMMENT '分类排序', | ||
| 144 | - `description` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '分类描述', | ||
| 145 | - `status` tinyint NOT NULL COMMENT '开启状态', | ||
| 146 | - `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '创建者', | ||
| 147 | - `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', | ||
| 148 | - `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者', | ||
| 149 | - `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', | ||
| 150 | - `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', | ||
| 151 | - `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', | ||
| 152 | - PRIMARY KEY (`id`) USING BTREE | ||
| 153 | -) ENGINE = InnoDB AUTO_INCREMENT = 8 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '商品分类'; | ||
| 154 | - | ||
| 155 | --- ---------------------------- | ||
| 156 | --- Records of product_category | ||
| 157 | --- ---------------------------- | ||
| 158 | -BEGIN; | ||
| 159 | -INSERT INTO `product_category` (`id`, `parent_id`, `name`, `pic_url`, `sort`, `description`, `status`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1, 0, '电脑办公', 'http://test.yudao.iocoder.cn/122d548e1b3cd5dec72fe8075c6977a70f9cc13541a684ab3685f1b5df42f6bd.jpeg', 1, '1234', 0, '1', '2022-07-30 16:36:35', '1', '2022-07-30 20:27:16', b'0', 1), (2, 1, '笔记本', 'http://test.yudao.iocoder.cn/72713ac7b947600a019a18786ed0e6562e8692e253dbd35110a0a85c2469bbec.jpg', 1, '<p>测试一下</p>', 0, '1', '2022-07-30 16:38:09', '1', '2022-07-30 16:38:09', b'0', 1), (3, 1, '游戏本', 'http://test.yudao.iocoder.cn/287c50dd9f5f575f57329a0c57b2095be6d1aeba83867b905fe549f54a296feb.jpg', 2, '<p>测试一下</p>', 0, '1', '2022-07-30 16:39:09', '1', '2022-07-30 20:26:59', b'0', 1), (4, 0, '手机', 'http://test.yudao.iocoder.cn/e1b63900c78dbb661b3e383960cee5cfea7e1dd2fb22cff2e317ff025faaf8b2.jpeg', 2, '<p>123</p>', 0, '1', '2022-07-30 16:40:00', '1', '2022-07-30 16:40:09', b'0', 1), (5, 4, '5G手机', 'http://test.yudao.iocoder.cn/3af6557ac7def6423f046f5b2e920b644793420b466959aaa996a2e19068bbde.jpeg', 1, '<p><br></p>', 0, '1', '2022-07-30 16:43:00', '1', '2022-07-30 16:43:00', b'0', 1), (6, 4, '游戏手机', 'http://test.yudao.iocoder.cn/964fe9ccd1710d64ede261dc36d231918a017641986c15293c367f9f66d94d05.jpeg', 2, NULL, 0, '1', '2022-07-30 16:43:44', '1', '2022-07-30 16:43:44', b'0', 1), (7, 5, '厉害的 5G 手机', 'http://test.yudao.iocoder.cn/b287122f277838e8de368769b96217918605743bc45f3a29bda3cc7359dc66e1.png', 0, '123', 0, '1', '2022-07-30 20:38:09', '1', '2022-07-30 20:38:09', b'0', 1); | ||
| 160 | -COMMIT; | ||
| 161 | - | ||
| 162 | --- ---------------------------- | ||
| 163 | --- Table structure for product_property | ||
| 164 | --- ---------------------------- | ||
| 165 | -DROP TABLE IF EXISTS `product_property`; | ||
| 166 | -CREATE TABLE `product_property` ( | ||
| 167 | - `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键', | ||
| 168 | - `name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '规格名称', | ||
| 169 | - `status` tinyint NULL DEFAULT NULL COMMENT '状态: 0 开启 ,1 禁用', | ||
| 170 | - `create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', | ||
| 171 | - `update_time` datetime NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', | ||
| 172 | - `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建人', | ||
| 173 | - `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '更新人', | ||
| 174 | - `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', | ||
| 175 | - `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', | ||
| 176 | - PRIMARY KEY (`id`) USING BTREE, | ||
| 177 | - INDEX `idx_name`(`name`(32) ASC) USING BTREE COMMENT '规格名称索引' | ||
| 178 | -) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '规格名称'; | ||
| 179 | - | ||
| 180 | --- ---------------------------- | ||
| 181 | --- Records of product_property | ||
| 182 | --- ---------------------------- | ||
| 183 | -BEGIN; | ||
| 184 | -COMMIT; | ||
| 185 | - | ||
| 186 | --- ---------------------------- | ||
| 187 | --- Table structure for product_property_value | ||
| 188 | --- ---------------------------- | ||
| 189 | -DROP TABLE IF EXISTS `product_property_value`; | ||
| 190 | -CREATE TABLE `product_property_value` ( | ||
| 191 | - `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键', | ||
| 192 | - `property_id` bigint NULL DEFAULT NULL COMMENT '规格键id', | ||
| 193 | - `name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '规格值名字', | ||
| 194 | - `status` tinyint NULL DEFAULT NULL COMMENT '状态: 1 开启 ,2 禁用', | ||
| 195 | - `create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', | ||
| 196 | - `update_time` datetime NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', | ||
| 197 | - `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建人', | ||
| 198 | - `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '更新人', | ||
| 199 | - `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', | ||
| 200 | - `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', | ||
| 201 | - PRIMARY KEY (`id`) USING BTREE | ||
| 202 | -) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '规格值'; | ||
| 203 | - | ||
| 204 | --- ---------------------------- | ||
| 205 | --- Records of product_property_value | ||
| 206 | --- ---------------------------- | ||
| 207 | -BEGIN; | ||
| 208 | -COMMIT; | ||
| 209 | - | ||
| 210 | --- ---------------------------- | ||
| 211 | --- Table structure for product_sku | ||
| 212 | --- ---------------------------- | ||
| 213 | -DROP TABLE IF EXISTS `product_sku`; | ||
| 214 | -CREATE TABLE `product_sku` ( | ||
| 215 | - `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键', | ||
| 216 | - `spu_id` bigint NOT NULL COMMENT 'spu编号', | ||
| 217 | - `tenant_id` bigint NOT NULL DEFAULT '0' COMMENT '租户编号', | ||
| 218 | - `name` varchar(128) DEFAULT NULL COMMENT '商品 SKU 名字', | ||
| 219 | - `properties` varchar(128) DEFAULT NULL COMMENT '规格值数组-json格式, [{propertId: , valueId: }, {propertId: , valueId: }]', | ||
| 220 | - `price` int NOT NULL DEFAULT '-1' COMMENT '销售价格,单位:分', | ||
| 221 | - `market_price` int DEFAULT NULL COMMENT '市场价', | ||
| 222 | - `cost_price` int NOT NULL DEFAULT '-1' COMMENT '成本价,单位: 分', | ||
| 223 | - `pic_url` varchar(128) NOT NULL COMMENT '图片地址', | ||
| 224 | - `stock` int DEFAULT NULL COMMENT '库存', | ||
| 225 | - `warn_stock` int DEFAULT NULL COMMENT '预警库存', | ||
| 226 | - `volume` double DEFAULT NULL COMMENT '商品体积', | ||
| 227 | - `weight` double DEFAULT NULL COMMENT '商品重量', | ||
| 228 | - `bar_code` varchar(64) DEFAULT NULL COMMENT '条形码', | ||
| 229 | - `status` tinyint DEFAULT NULL COMMENT '状态: 0-正常 1-禁用', | ||
| 230 | - `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', | ||
| 231 | - `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', | ||
| 232 | - `creator` varchar(64) DEFAULT NULL COMMENT '创建人', | ||
| 233 | - `updater` double(64,0) DEFAULT NULL COMMENT '更新人', | ||
| 234 | -`deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', | ||
| 235 | -PRIMARY KEY (`id`) USING BTREE | ||
| 236 | -) ENGINE=InnoDB COMMENT='商品sku'; | ||
| 237 | - | ||
| 238 | --- ---------------------------- | ||
| 239 | --- Records of product_sku | ||
| 240 | --- ---------------------------- | ||
| 241 | -BEGIN; | ||
| 242 | -COMMIT; | ||
| 243 | - | ||
| 244 | --- ---------------------------- | ||
| 245 | --- Table structure for product_spu | ||
| 246 | --- ---------------------------- | ||
| 247 | -DROP TABLE IF EXISTS `product_spu`; | ||
| 248 | -CREATE TABLE `product_spu` ( | ||
| 249 | - `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键', | ||
| 250 | - `tenant_id` bigint NOT NULL DEFAULT '0' COMMENT '租户编号', | ||
| 251 | - `brand_id` bigint DEFAULT NULL COMMENT '商品品牌编号', | ||
| 252 | - `category_id` bigint NOT NULL COMMENT '分类id', | ||
| 253 | - `spec_type` int NOT NULL COMMENT '规格类型:0 单规格 1 多规格', | ||
| 254 | - `code` varchar(128) DEFAULT NULL COMMENT '商品编码', | ||
| 255 | - `name` varchar(128) NOT NULL COMMENT '商品名称', | ||
| 256 | - `sell_point` varchar(128) DEFAULT NULL COMMENT '卖点', | ||
| 257 | - `description` text COMMENT '描述', | ||
| 258 | - `pic_urls` varchar(1024) DEFAULT '' COMMENT '商品轮播图地址\n 数组,以逗号分隔\n 最多上传15张', | ||
| 259 | - `video_url` varchar(128) DEFAULT NULL COMMENT '商品视频', | ||
| 260 | - `market_price` int DEFAULT NULL COMMENT '市场价,单位使用:分', | ||
| 261 | - `min_price` int DEFAULT NULL COMMENT '最小价格,单位使用:分', | ||
| 262 | - `max_price` int DEFAULT NULL COMMENT '最大价格,单位使用:分', | ||
| 263 | - `total_stock` int NOT NULL DEFAULT '0' COMMENT '总库存', | ||
| 264 | - `show_stock` int DEFAULT '0' COMMENT '是否展示库存', | ||
| 265 | - `sales_count` int DEFAULT '0' COMMENT '商品销量', | ||
| 266 | - `virtual_sales_count` int DEFAULT '0' COMMENT '虚拟销量', | ||
| 267 | - `click_count` int DEFAULT '0' COMMENT '商品点击量', | ||
| 268 | - `status` bit(1) DEFAULT NULL COMMENT '上下架状态: 0 上架(开启) 1 下架(禁用)-1 回收', | ||
| 269 | - `sort` int NOT NULL DEFAULT '0' COMMENT '排序字段', | ||
| 270 | - `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', | ||
| 271 | - `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', | ||
| 272 | - `creator` varchar(64) DEFAULT NULL COMMENT '创建人', | ||
| 273 | - `updater` varchar(64) DEFAULT NULL COMMENT '更新人', | ||
| 274 | - `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', | ||
| 275 | - PRIMARY KEY (`id`) USING BTREE | ||
| 276 | -) ENGINE=InnoDB COMMENT='商品spu'; | ||
| 277 | - | ||
| 278 | --- ---------------------------- | ||
| 279 | --- Records of product_spu | ||
| 280 | --- ---------------------------- | ||
| 281 | -BEGIN; | ||
| 282 | -COMMIT; | ||
| 283 | - | ||
| 284 | -SET FOREIGN_KEY_CHECKS = 1; | ||
| 285 | - | ||
| 286 | -INSERT INTO `ruoyi-vue-pro`.`system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2000, '商品中心', '', 1, 60, 0, '/product', 'merchant', NULL, 0, b'1', b'1', '', '2022-07-29 15:53:53', '1', '2022-07-30 22:26:19', b'0'); | ||
| 287 | -INSERT INTO `ruoyi-vue-pro`.`system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2002, '商品分类', '', 2, 2, 2000, 'category', 'dict', 'mall/product/category/index', 0, b'1', b'1', '', '2022-07-29 15:53:53', '1', '2022-07-30 22:23:37', b'0'); | ||
| 288 | -INSERT INTO `ruoyi-vue-pro`.`system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2003, '分类查询', 'product:category:query', 3, 1, 2002, '', '', '', 0, b'1', b'1', '', '2022-07-29 15:53:53', '', '2022-07-29 15:53:53', b'0'); | ||
| 289 | -INSERT INTO `ruoyi-vue-pro`.`system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2004, '分类创建', 'product:category:create', 3, 2, 2002, '', '', '', 0, b'1', b'1', '', '2022-07-29 15:53:53', '', '2022-07-29 15:53:53', b'0'); | ||
| 290 | -INSERT INTO `ruoyi-vue-pro`.`system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2005, '分类更新', 'product:category:update', 3, 3, 2002, '', '', '', 0, b'1', b'1', '', '2022-07-29 15:53:53', '', '2022-07-29 15:53:53', b'0'); | ||
| 291 | -INSERT INTO `ruoyi-vue-pro`.`system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2006, '分类删除', 'product:category:delete', 3, 4, 2002, '', '', '', 0, b'1', b'1', '', '2022-07-29 15:53:53', '', '2022-07-29 15:53:53', b'0'); | ||
| 292 | -INSERT INTO `ruoyi-vue-pro`.`system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2007, '分类导出', 'product:category:export', 3, 5, 2002, '', '', '', 0, b'1', b'1', '', '2022-07-29 15:53:53', '', '2022-07-30 13:52:13', b'1'); | ||
| 293 | -INSERT INTO `ruoyi-vue-pro`.`system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2008, '商品品牌', '', 2, 1, 2000, 'brand', 'dashboard', 'mall/product/brand/index', 0, b'1', b'1', '', '2022-07-30 13:52:44', '1', '2022-07-30 22:23:43', b'0'); | ||
| 294 | -INSERT INTO `ruoyi-vue-pro`.`system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2009, '品牌查询', 'product:brand:query', 3, 1, 2008, '', '', '', 0, b'1', b'1', '', '2022-07-30 13:52:44', '', '2022-07-30 13:52:44', b'0'); | ||
| 295 | -INSERT INTO `ruoyi-vue-pro`.`system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2010, '品牌创建', 'product:brand:create', 3, 2, 2008, '', '', '', 0, b'1', b'1', '', '2022-07-30 13:52:44', '', '2022-07-30 13:52:44', b'0'); | ||
| 296 | -INSERT INTO `ruoyi-vue-pro`.`system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2011, '品牌更新', 'product:brand:update', 3, 3, 2008, '', '', '', 0, b'1', b'1', '', '2022-07-30 13:52:44', '', '2022-07-30 13:52:44', b'0'); | ||
| 297 | -INSERT INTO `ruoyi-vue-pro`.`system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2012, '品牌删除', 'product:brand:delete', 3, 4, 2008, '', '', '', 0, b'1', b'1', '', '2022-07-30 13:52:44', '', '2022-07-30 13:52:44', b'0'); | ||
| 298 | -INSERT INTO `ruoyi-vue-pro`.`system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2013, '品牌导出', 'product:brand:export', 3, 5, 2008, '', '', '', 0, b'1', b'1', '', '2022-07-30 13:52:44', '', '2022-07-30 14:15:00', b'1'); | ||
| 299 | -INSERT INTO `ruoyi-vue-pro`.`system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2014, '商品管理', '', 2, 0, 2000, 'spu', 'link', 'mall/product/spu/index', 0, b'1', b'1', '', '2022-07-30 14:22:58', '1', '2022-07-30 22:26:35', b'0'); | ||
| 300 | -INSERT INTO `ruoyi-vue-pro`.`system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2015, '商品查询', 'product:spu:query', 3, 1, 2014, '', '', '', 0, b'1', b'1', '', '2022-07-30 14:22:58', '', '2022-07-30 14:22:58', b'0'); | ||
| 301 | -INSERT INTO `ruoyi-vue-pro`.`system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2016, '商品创建', 'product:spu:create', 3, 2, 2014, '', '', '', 0, b'1', b'1', '', '2022-07-30 14:22:58', '', '2022-07-30 14:22:58', b'0'); | ||
| 302 | -INSERT INTO `ruoyi-vue-pro`.`system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2017, '商品更新', 'product:spu:update', 3, 3, 2014, '', '', '', 0, b'1', b'1', '', '2022-07-30 14:22:58', '', '2022-07-30 14:22:58', b'0'); | ||
| 303 | -INSERT INTO `ruoyi-vue-pro`.`system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2018, '商品删除', 'product:spu:delete', 3, 4, 2014, '', '', '', 0, b'1', b'1', '', '2022-07-30 14:22:58', '', '2022-07-30 14:22:58', b'0'); | ||
| 304 | -INSERT INTO `ruoyi-vue-pro`.`system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2019, '规格管理', '', 2, 3, 2000, 'property', '', 'mall/product/property/index', 0, b'1', b'1', '', '2022-08-01 14:55:35', '', '2022-08-01 14:55:35', b'0'); | ||
| 305 | -INSERT INTO `ruoyi-vue-pro`.`system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2020, '规格查询', 'product:property:query', 3, 1, 2019, '', '', '', 0, b'1', b'1', '', '2022-08-01 14:55:35', '', '2022-08-01 14:55:35', b'0'); | ||
| 306 | -INSERT INTO `ruoyi-vue-pro`.`system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2021, '规格创建', 'product:property:create', 3, 2, 2019, '', '', '', 0, b'1', b'1', '', '2022-08-01 14:55:35', '', '2022-08-01 14:55:35', b'0'); | ||
| 307 | -INSERT INTO `ruoyi-vue-pro`.`system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2022, '规格更新', 'product:property:update', 3, 3, 2019, '', '', '', 0, b'1', b'1', '', '2022-08-01 14:55:35', '', '2022-08-01 14:55:35', b'0'); | ||
| 308 | -INSERT INTO `ruoyi-vue-pro`.`system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2023, '规格删除', 'product:property:delete', 3, 4, 2019, '', '', '', 0, b'1', b'1', '', '2022-08-01 14:55:35', '', '2022-08-01 14:55:35', b'0'); | ||
| 309 | -INSERT INTO `ruoyi-vue-pro`.`system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2024, '规格导出', 'product:property:export', 3, 5, 2019, '', '', '', 0, b'1', b'1', '', '2022-08-01 14:55:35', '', '2022-08-01 14:55:35', b'0'); | ||
| 310 | -INSERT INTO `ruoyi-vue-pro`.`system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2025, 'Banner管理', '', 2, 1, 2000, 'banner', '', 'mall/market/banner/index', 0, b'1', b'1', '', '2022-08-01 14:56:14', '', '2022-08-01 14:56:14', b'0'); | ||
| 311 | -INSERT INTO `ruoyi-vue-pro`.`system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2026, 'Banner查询', 'market:banner:query', 3, 1, 2025, '', '', '', 0, b'1', b'1', '', '2022-08-01 14:56:14', '', '2022-08-01 14:56:14', b'0'); | ||
| 312 | -INSERT INTO `ruoyi-vue-pro`.`system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2027, 'Banner创建', 'market:banner:create', 3, 2, 2025, '', '', '', 0, b'1', b'1', '', '2022-08-01 14:56:14', '', '2022-08-01 14:56:14', b'0'); | ||
| 313 | -INSERT INTO `ruoyi-vue-pro`.`system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2028, 'Banner更新', 'market:banner:update', 3, 3, 2025, '', '', '', 0, b'1', b'1', '', '2022-08-01 14:56:14', '', '2022-08-01 14:56:14', b'0'); | ||
| 314 | -INSERT INTO `ruoyi-vue-pro`.`system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2029, 'Banner删除', 'market:banner:delete', 3, 4, 2025, '', '', '', 0, b'1', b'1', '', '2022-08-01 14:56:14', '', '2022-08-01 14:56:14', b'0'); | ||
| 315 | - |
sql/optional/mall/order.sql deleted
| 1 | -/**todo cancelType 设置默认值 0?*/ | ||
| 2 | -DROP TABLE IF EXISTS `trade_order`; | ||
| 3 | -CREATE TABLE `trade_order` | ||
| 4 | -( | ||
| 5 | - `id` bigint NOT NULL AUTO_INCREMENT COMMENT '用户ID', | ||
| 6 | - `sn` varchar(32) NOT NULL COMMENT '订单流水号', | ||
| 7 | - `type` int NOT NULL DEFAULT '0' COMMENT '订单类型:[0:普通订单 1:秒杀订单 2:拼团订单 3:砍价订单]', | ||
| 8 | - `terminal` int NOT NULL COMMENT '订单来源终端:[1:小程序 2:H5 3:iOS 4:安卓]', | ||
| 9 | - `user_id` bigint unsigned NOT NULL COMMENT '用户编号', | ||
| 10 | - `user_ip` varchar(30) NOT NULL DEFAULT '' COMMENT '用户 IP', | ||
| 11 | - `user_remark` varchar(200) DEFAULT NULL COMMENT '用户备注', | ||
| 12 | - `status` int NOT NULL DEFAULT '0' COMMENT '订单状态:[0:待付款 1:待发货 2:待收货 3:已完成 4:已关闭]', | ||
| 13 | - `product_count` int NOT NULL COMMENT '购买的商品数量', | ||
| 14 | - `cancel_type` int DEFAULT NULL COMMENT '取消类型:[10:超时未支付 20:退款关闭 30:买家取消 40:已通过货到付款交易]', | ||
| 15 | - `remark` varchar(200) DEFAULT NULL COMMENT '商家备注', | ||
| 16 | - `payed` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否已支付:[0:未支付 1:已经支付过]', | ||
| 17 | - `pay_time` datetime DEFAULT NULL COMMENT '订单支付时间', | ||
| 18 | - `finish_time` datetime DEFAULT NULL COMMENT '订单完成时间', | ||
| 19 | - `cancel_time` datetime DEFAULT NULL COMMENT '订单取消时间', | ||
| 20 | - `sku_original_price` int NOT NULL DEFAULT '0' COMMENT '商品原价(总),单位:分', | ||
| 21 | - `sku_promotion_price` int NOT NULL DEFAULT '0' COMMENT '商品优惠(总),单位:分', | ||
| 22 | - `order_promotion_price` int NOT NULL DEFAULT '0' COMMENT '订单优惠(总),单位:分', | ||
| 23 | - `delivery_price` int NOT NULL DEFAULT '0' COMMENT '运费金额,单位:分', | ||
| 24 | - `pay_price` int NOT NULL DEFAULT '0' COMMENT '应付金额(总),单位:分', | ||
| 25 | - `pay_order_id` int DEFAULT NULL COMMENT '支付订单编号', | ||
| 26 | - `pay_channel` int DEFAULT NULL COMMENT '支付成功的支付渠道', | ||
| 27 | - `delivery_type` int DEFAULT NULL DEFAULT '1' COMMENT '配送方式:[1:快递发货 2:自提]', | ||
| 28 | - `actual_delivery_type` int DEFAULT NULL DEFAULT '1' COMMENT '实际的配送方式:[1:快递发货 2:自提]', | ||
| 29 | - `delivery_template_id` int DEFAULT NULL COMMENT '配置模板的编号', | ||
| 30 | - `express_no` int DEFAULT NULL COMMENT '物流公司单号', | ||
| 31 | - `delivery_status` bit(1) NOT NULL DEFAULT b'0' COMMENT '发货状态[0:未发货 1:已发货]', | ||
| 32 | - `delivery_time` datetime DEFAULT NULL COMMENT '发货时间', | ||
| 33 | - `receive_time` datetime DEFAULT NULL COMMENT '收货时间', | ||
| 34 | - `receiver_name` varchar(20) NOT NULL COMMENT '收件人名称', | ||
| 35 | - `receiver_mobile` varchar(20) NOT NULL COMMENT '收件人手机', | ||
| 36 | - `receiver_area_id` int NOT NULL COMMENT '收件人地区编号', | ||
| 37 | - `receiver_post_code` int DEFAULT NULL COMMENT '收件人邮编', | ||
| 38 | - `receiver_detail_address` varchar(255) NOT NULL COMMENT '收件人详细地址', | ||
| 39 | - `refund_status` int NOT NULL DEFAULT '0' COMMENT '订单状态:[0:未退款 1:部分退款 2:全部退款]', | ||
| 40 | - `refund_price` int NOT NULL DEFAULT '0' COMMENT '退款金额,单位:分', | ||
| 41 | - `coupon_id` bigint unsigned NOT NULL COMMENT '优惠劵编号', | ||
| 42 | - `creator` varchar(64) DEFAULT '' COMMENT '创建者', | ||
| 43 | - `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', | ||
| 44 | - `updater` varchar(64) DEFAULT '' COMMENT '更新者', | ||
| 45 | - `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', | ||
| 46 | - `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', | ||
| 47 | - PRIMARY KEY (`id`) USING BTREE | ||
| 48 | -) ENGINE = InnoDB COMMENT ='交易订单表'; | ||
| 49 | - | ||
| 50 | - | ||
| 51 | -DROP TABLE IF EXISTS `trade_order_item`; | ||
| 52 | -CREATE TABLE `trade_order_item` | ||
| 53 | -( | ||
| 54 | - `id` bigint NOT NULL AUTO_INCREMENT COMMENT '用户ID', | ||
| 55 | - `user_id` bigint unsigned NOT NULL COMMENT '用户编号', | ||
| 56 | - `order_Id` bigint unsigned NOT NULL COMMENT '订单编号', | ||
| 57 | - `spu_id` bigint unsigned NOT NULL COMMENT '商品 SPU 编号', | ||
| 58 | - `sku_id` bigint unsigned NOT NULL COMMENT '商品 SKU 编号', | ||
| 59 | - `properties` json DEFAULT NULL COMMENT '规格值数组,JSON 格式', | ||
| 60 | - `name` varchar(128) NOT NULL DEFAULT '' COMMENT '商品名称', | ||
| 61 | - `pic_url` varchar(200) DEFAULT NULL COMMENT '商品图片', | ||
| 62 | - `count` int NOT NULL COMMENT '购买数量', | ||
| 63 | - `commented` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否评论:[0:未评论 1:已评论]', | ||
| 64 | - `original_price` int NOT NULL DEFAULT '0' COMMENT '商品原价(单),单位:分', | ||
| 65 | - `total_original_price` int NOT NULL DEFAULT '0' COMMENT '商品原价(总),单位:分', | ||
| 66 | - `total_promotion_price` int NOT NULL DEFAULT '0' COMMENT '商品级优惠(总),单位:分', | ||
| 67 | - `present_price` int NOT NULL DEFAULT '0' COMMENT '最终购买金额(单),单位:分。', | ||
| 68 | - `total_present_price` int NOT NULL DEFAULT '0' COMMENT '最终购买金额(总),单位:分。', | ||
| 69 | - `total_pay_price` int NOT NULL DEFAULT '0' COMMENT '应付金额(总),单位:分', | ||
| 70 | - `refund_status` int NOT NULL DEFAULT '0' COMMENT '退款状态:[0:未申请退款 1:申请退款 2:等待退款 3:退款成功]', | ||
| 71 | - `refund_total` int NOT NULL DEFAULT '0' COMMENT '退款总金额,单位:分', | ||
| 72 | - `creator` varchar(64) DEFAULT '' COMMENT '创建者', | ||
| 73 | - `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', | ||
| 74 | - `updater` varchar(64) DEFAULT '' COMMENT '更新者', | ||
| 75 | - `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', | ||
| 76 | - `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', | ||
| 77 | - PRIMARY KEY (`id`) USING BTREE | ||
| 78 | -) ENGINE = InnoDB COMMENT ='交易订单明细表'; |
yudao-dependencies/pom.xml
| @@ -68,6 +68,7 @@ | @@ -68,6 +68,7 @@ | ||
| 68 | <justauth.version>1.4.0</justauth.version> | 68 | <justauth.version>1.4.0</justauth.version> |
| 69 | <jimureport.version>1.5.6</jimureport.version> | 69 | <jimureport.version>1.5.6</jimureport.version> |
| 70 | <xercesImpl.version>2.12.2</xercesImpl.version> | 70 | <xercesImpl.version>2.12.2</xercesImpl.version> |
| 71 | + <wx-java-mp.version>4.3.0</wx-java-mp.version> | ||
| 71 | </properties> | 72 | </properties> |
| 72 | 73 | ||
| 73 | <dependencyManagement> | 74 | <dependencyManagement> |
| @@ -571,6 +572,12 @@ | @@ -571,6 +572,12 @@ | ||
| 571 | <version>${justauth.version}</version> | 572 | <version>${justauth.version}</version> |
| 572 | </dependency> | 573 | </dependency> |
| 573 | 574 | ||
| 575 | + <dependency> | ||
| 576 | + <groupId>com.github.binarywang</groupId> | ||
| 577 | + <artifactId>wx-java-mp-spring-boot-starter</artifactId> | ||
| 578 | + <version>${wx-java-mp.version}</version> | ||
| 579 | + </dependency> | ||
| 580 | + | ||
| 574 | <!-- 积木报表--> | 581 | <!-- 积木报表--> |
| 575 | <dependency> | 582 | <dependency> |
| 576 | <groupId>org.jeecgframework.jimureport</groupId> | 583 | <groupId>org.jeecgframework.jimureport</groupId> |
yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/util/TenantUtils.java
| @@ -3,6 +3,7 @@ package cn.iocoder.yudao.framework.tenant.core.util; | @@ -3,6 +3,7 @@ package cn.iocoder.yudao.framework.tenant.core.util; | ||
| 3 | import cn.iocoder.yudao.framework.tenant.core.context.TenantContextHolder; | 3 | import cn.iocoder.yudao.framework.tenant.core.context.TenantContextHolder; |
| 4 | 4 | ||
| 5 | import java.util.Map; | 5 | import java.util.Map; |
| 6 | +import java.util.concurrent.Callable; | ||
| 6 | 7 | ||
| 7 | import static cn.iocoder.yudao.framework.web.core.util.WebFrameworkUtils.HEADER_TENANT_ID; | 8 | import static cn.iocoder.yudao.framework.web.core.util.WebFrameworkUtils.HEADER_TENANT_ID; |
| 8 | 9 | ||
| @@ -37,6 +38,31 @@ public class TenantUtils { | @@ -37,6 +38,31 @@ public class TenantUtils { | ||
| 37 | } | 38 | } |
| 38 | 39 | ||
| 39 | /** | 40 | /** |
| 41 | + * 使用指定租户,执行对应的逻辑 | ||
| 42 | + * | ||
| 43 | + * 注意,如果当前是忽略租户的情况下,会被强制设置成不忽略租户 | ||
| 44 | + * 当然,执行完成后,还是会恢复回去 | ||
| 45 | + * | ||
| 46 | + * @param tenantId 租户编号 | ||
| 47 | + * @param callable 逻辑 | ||
| 48 | + */ | ||
| 49 | + public static <V> V execute(Long tenantId, Callable<V> callable) { | ||
| 50 | + Long oldTenantId = TenantContextHolder.getTenantId(); | ||
| 51 | + Boolean oldIgnore = TenantContextHolder.isIgnore(); | ||
| 52 | + try { | ||
| 53 | + TenantContextHolder.setTenantId(tenantId); | ||
| 54 | + TenantContextHolder.setIgnore(false); | ||
| 55 | + // 执行逻辑 | ||
| 56 | + return callable.call(); | ||
| 57 | + } catch (Exception e) { | ||
| 58 | + throw new RuntimeException(e); | ||
| 59 | + } finally { | ||
| 60 | + TenantContextHolder.setTenantId(oldTenantId); | ||
| 61 | + TenantContextHolder.setIgnore(oldIgnore); | ||
| 62 | + } | ||
| 63 | + } | ||
| 64 | + | ||
| 65 | + /** | ||
| 40 | * 忽略租户,执行对应的逻辑 | 66 | * 忽略租户,执行对应的逻辑 |
| 41 | * | 67 | * |
| 42 | * @param runnable 逻辑 | 68 | * @param runnable 逻辑 |
yudao-framework/yudao-spring-boot-starter-biz-weixin/pom.xml
| @@ -34,6 +34,7 @@ | @@ -34,6 +34,7 @@ | ||
| 34 | <!-- 三方云服务相关 --> | 34 | <!-- 三方云服务相关 --> |
| 35 | <dependency> | 35 | <dependency> |
| 36 | <groupId>com.github.binarywang</groupId> | 36 | <groupId>com.github.binarywang</groupId> |
| 37 | +<!-- <artifactId>weixin-java-mp</artifactId>--> | ||
| 37 | <artifactId>wx-java-mp-spring-boot-starter</artifactId> | 38 | <artifactId>wx-java-mp-spring-boot-starter</artifactId> |
| 38 | <version>4.4.0</version> | 39 | <version>4.4.0</version> |
| 39 | </dependency> | 40 | </dependency> |
yudao-module-mp/pom.xml
0 → 100644
| 1 | +<?xml version="1.0" encoding="UTF-8"?> | ||
| 2 | +<project xmlns="http://maven.apache.org/POM/4.0.0" | ||
| 3 | + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | ||
| 4 | + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> | ||
| 5 | + <parent> | ||
| 6 | + <artifactId>yudao</artifactId> | ||
| 7 | + <groupId>cn.iocoder.boot</groupId> | ||
| 8 | + <version>${revision}</version> | ||
| 9 | + </parent> | ||
| 10 | + <modelVersion>4.0.0</modelVersion> | ||
| 11 | + | ||
| 12 | + <artifactId>yudao-module-mp</artifactId> | ||
| 13 | + <packaging>pom</packaging> | ||
| 14 | + | ||
| 15 | + <description> | ||
| 16 | + wechat 模块,主要实现微信平台的相关业务。 | ||
| 17 | + 例如:微信公众号、企业微信 SCRM 等 | ||
| 18 | + </description> | ||
| 19 | + <modules> | ||
| 20 | + <module>yudao-module-mp-api</module> | ||
| 21 | + <module>yudao-module-mp-biz</module> | ||
| 22 | + </modules> | ||
| 23 | + | ||
| 24 | +</project> |
yudao-module-mp/yudao-module-mp-api/pom.xml
0 → 100644
| 1 | +<?xml version="1.0" encoding="UTF-8"?> | ||
| 2 | +<project xmlns="http://maven.apache.org/POM/4.0.0" | ||
| 3 | + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | ||
| 4 | + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> | ||
| 5 | + <parent> | ||
| 6 | + <artifactId>yudao-module-mp</artifactId> | ||
| 7 | + <groupId>cn.iocoder.boot</groupId> | ||
| 8 | + <version>${revision}</version> | ||
| 9 | + </parent> | ||
| 10 | + <modelVersion>4.0.0</modelVersion> | ||
| 11 | + <artifactId>yudao-module-mp-api</artifactId> | ||
| 12 | + <packaging>jar</packaging> | ||
| 13 | + | ||
| 14 | + <name>${project.artifactId}</name> | ||
| 15 | + <description> | ||
| 16 | + mp 模块 API,暴露给其它模块调用 | ||
| 17 | + </description> | ||
| 18 | + | ||
| 19 | + <dependencies> | ||
| 20 | + <dependency> | ||
| 21 | + <groupId>cn.iocoder.boot</groupId> | ||
| 22 | + <artifactId>yudao-common</artifactId> | ||
| 23 | + </dependency> | ||
| 24 | + </dependencies> | ||
| 25 | + | ||
| 26 | +</project> |
yudao-module-mp/yudao-module-mp-api/src/main/java/cn/iocoder/yudao/module/mp/enums/ErrorCodeConstants.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.mp.enums; | ||
| 2 | + | ||
| 3 | +import cn.iocoder.yudao.framework.common.exception.ErrorCode; | ||
| 4 | + | ||
| 5 | +/** | ||
| 6 | + * Mp 错误码枚举类 | ||
| 7 | + * | ||
| 8 | + * mp 系统,使用 1-006-000-000 段 | ||
| 9 | + */ | ||
| 10 | +public interface ErrorCodeConstants { | ||
| 11 | + | ||
| 12 | + // ========== 公众号账号 1006000000============ | ||
| 13 | + ErrorCode ACCOUNT_NOT_EXISTS = new ErrorCode(1006000000, "公众号账号不存在"); | ||
| 14 | + ErrorCode ACCOUNT_GENERATE_QR_CODE_FAIL = new ErrorCode(1006000001, "生成公众号二维码失败,原因:{}"); | ||
| 15 | + ErrorCode ACCOUNT_CLEAR_QUOTA_FAIL = new ErrorCode(1006000001, "清空公众号的 API 配额失败,原因:{}"); | ||
| 16 | + | ||
| 17 | + // ========== 公众号统计 1006001000============ | ||
| 18 | + ErrorCode STATISTICS_GET_USER_SUMMARY_FAIL = new ErrorCode(1006001000, "获取粉丝增减数据失败,原因:{}"); | ||
| 19 | + ErrorCode STATISTICS_GET_USER_CUMULATE_FAIL = new ErrorCode(1006001001, "获得粉丝累计数据失败,原因:{}"); | ||
| 20 | + ErrorCode STATISTICS_GET_UPSTREAM_MESSAGE_FAIL = new ErrorCode(1006001002, "获得消息发送概况数据失败,原因:{}"); | ||
| 21 | + ErrorCode STATISTICS_GET_INTERFACE_SUMMARY_FAIL = new ErrorCode(1006001003, "获得接口分析数据失败,原因:{}"); | ||
| 22 | + | ||
| 23 | + // ========== 公众号标签 1006002000============ | ||
| 24 | + ErrorCode TAG_NOT_EXISTS = new ErrorCode(1006002000, "标签不存在"); | ||
| 25 | + ErrorCode TAG_CREATE_FAIL = new ErrorCode(1006002001, "创建标签失败,原因:{}"); | ||
| 26 | + ErrorCode TAG_UPDATE_FAIL = new ErrorCode(1006002001, "更新标签失败,原因:{}"); | ||
| 27 | + ErrorCode TAG_DELETE_FAIL = new ErrorCode(1006002001, "删除标签失败,原因:{}"); | ||
| 28 | + ErrorCode TAG_GET_FAIL = new ErrorCode(1006002001, "获得标签失败,原因:{}"); | ||
| 29 | + | ||
| 30 | + // ========== 公众号粉丝 1006003000============ | ||
| 31 | + ErrorCode USER_NOT_EXISTS = new ErrorCode(1006003000, "粉丝不存在"); | ||
| 32 | + ErrorCode USER_UPDATE_TAG_FAIL = new ErrorCode(1006003001, "更新粉丝标签失败,原因:{}"); | ||
| 33 | + | ||
| 34 | + // ========== 公众号素材 1006004000============ | ||
| 35 | + ErrorCode MATERIAL_NOT_EXISTS = new ErrorCode(1006004000, "素材不存在"); | ||
| 36 | + ErrorCode MATERIAL_UPLOAD_FAIL = new ErrorCode(1006004001, "上传素材失败,原因:{}"); | ||
| 37 | + ErrorCode MATERIAL_IMAGE_UPLOAD_FAIL = new ErrorCode(1006004002, "上传图片失败,原因:{}"); | ||
| 38 | + ErrorCode MATERIAL_DELETE_FAIL = new ErrorCode(1006004003, "删除素材失败,原因:{}"); | ||
| 39 | + | ||
| 40 | + // ========== 公众号消息 1006005000============ | ||
| 41 | + ErrorCode MESSAGE_SEND_FAIL = new ErrorCode(1006005000, "发送消息失败,原因:{}"); | ||
| 42 | + | ||
| 43 | + // ========== 公众号发布能力 1006006000============ | ||
| 44 | + ErrorCode FREE_PUBLISH_LIST_FAIL = new ErrorCode(1006006000, "获得已成功发布列表失败,原因:{}"); | ||
| 45 | + ErrorCode FREE_PUBLISH_SUBMIT_FAIL = new ErrorCode(1006006001, "提交发布失败,原因:{}"); | ||
| 46 | + ErrorCode FREE_PUBLISH_DELETE_FAIL = new ErrorCode(1006006001, "删除发布失败,原因:{}"); | ||
| 47 | + | ||
| 48 | + // ========== 公众号草稿 1006007000============ | ||
| 49 | + ErrorCode DRAFT_LIST_FAIL = new ErrorCode(1006007000, "获得草稿列表失败,原因:{}"); | ||
| 50 | + ErrorCode DRAFT_CREATE_FAIL = new ErrorCode(1006007001, "创建草稿失败,原因:{}"); | ||
| 51 | + ErrorCode DRAFT_UPDATE_FAIL = new ErrorCode(1006007002, "更新草稿失败,原因:{}"); | ||
| 52 | + ErrorCode DRAFT_DELETE_FAIL = new ErrorCode(1006007002, "删除草稿失败,原因:{}"); | ||
| 53 | + | ||
| 54 | + // ========== 公众号菜单 1006008000============ | ||
| 55 | + ErrorCode MENU_SAVE_FAIL = new ErrorCode(1006008000, "创建菜单失败,原因:{}"); | ||
| 56 | + ErrorCode MENU_DELETE_FAIL = new ErrorCode(1006008001, "删除菜单失败,原因:{}"); | ||
| 57 | + | ||
| 58 | + // ========== 公众号自动回复 1006009000============ | ||
| 59 | + ErrorCode AUTO_REPLY_NOT_EXISTS = new ErrorCode(1006009000, "自动回复不存在"); | ||
| 60 | + ErrorCode AUTO_REPLY_ADD_SUBSCRIBE_FAIL_EXISTS = new ErrorCode(1006009001, "操作失败,原因:已存在关注时的回复"); | ||
| 61 | + ErrorCode AUTO_REPLY_ADD_MESSAGE_FAIL_EXISTS = new ErrorCode(1006009002, "操作失败,原因:已存在该消息类型的回复"); | ||
| 62 | + ErrorCode AUTO_REPLY_ADD_KEYWORD_FAIL_EXISTS = new ErrorCode(1006009003, "操作失败,原因:已关在该关键字的回复"); | ||
| 63 | + | ||
| 64 | +} |
yudao-module-mp/yudao-module-mp-api/src/main/java/cn/iocoder/yudao/module/mp/enums/message/MpAutoReplyMatchEnum.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.mp.enums.message; | ||
| 2 | + | ||
| 3 | +import lombok.AllArgsConstructor; | ||
| 4 | +import lombok.Getter; | ||
| 5 | + | ||
| 6 | +/** | ||
| 7 | + * 公众号消息自动回复的匹配模式 | ||
| 8 | + * | ||
| 9 | + * @author 芋道源码 | ||
| 10 | + */ | ||
| 11 | +@Getter | ||
| 12 | +@AllArgsConstructor | ||
| 13 | +public enum MpAutoReplyMatchEnum { | ||
| 14 | + | ||
| 15 | + ALL(1, "完全匹配"), | ||
| 16 | + LIKE(2, "半匹配"), | ||
| 17 | + ; | ||
| 18 | + | ||
| 19 | + /** | ||
| 20 | + * 匹配 | ||
| 21 | + */ | ||
| 22 | + private final Integer match; | ||
| 23 | + /** | ||
| 24 | + * 匹配的名字 | ||
| 25 | + */ | ||
| 26 | + private final String name; | ||
| 27 | + | ||
| 28 | +} |
yudao-module-mp/yudao-module-mp-api/src/main/java/cn/iocoder/yudao/module/mp/enums/message/MpAutoReplyTypeEnum.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.mp.enums.message; | ||
| 2 | + | ||
| 3 | +import lombok.AllArgsConstructor; | ||
| 4 | +import lombok.Getter; | ||
| 5 | + | ||
| 6 | +/** | ||
| 7 | + * 公众号消息自动回复的类型 | ||
| 8 | + * | ||
| 9 | + * @author 芋道源码 | ||
| 10 | + */ | ||
| 11 | +@Getter | ||
| 12 | +@AllArgsConstructor | ||
| 13 | +public enum MpAutoReplyTypeEnum { | ||
| 14 | + | ||
| 15 | + SUBSCRIBE(1, "关注时回复"), | ||
| 16 | + MESSAGE(2, "收到消息回复"), | ||
| 17 | + KEYWORD(3, "关键词回复"), | ||
| 18 | + ; | ||
| 19 | + | ||
| 20 | + /** | ||
| 21 | + * 来源 | ||
| 22 | + */ | ||
| 23 | + private final Integer type; | ||
| 24 | + /** | ||
| 25 | + * 类型的名字 | ||
| 26 | + */ | ||
| 27 | + private final String name; | ||
| 28 | + | ||
| 29 | +} |
yudao-module-mp/yudao-module-mp-api/src/main/java/cn/iocoder/yudao/module/mp/enums/message/MpMessageSendFromEnum.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.mp.enums.message; | ||
| 2 | + | ||
| 3 | +import lombok.AllArgsConstructor; | ||
| 4 | +import lombok.Getter; | ||
| 5 | + | ||
| 6 | +/** | ||
| 7 | + * 微信公众号消息的发送来源 | ||
| 8 | + * | ||
| 9 | + * @author 芋道源码 | ||
| 10 | + */ | ||
| 11 | +@Getter | ||
| 12 | +@AllArgsConstructor | ||
| 13 | +public enum MpMessageSendFromEnum { | ||
| 14 | + | ||
| 15 | + USER_TO_MP(1, "粉丝发送给公众号"), | ||
| 16 | + MP_TO_USER(2, "公众号发给粉丝"), | ||
| 17 | + ; | ||
| 18 | + | ||
| 19 | + /** | ||
| 20 | + * 来源 | ||
| 21 | + */ | ||
| 22 | + private final Integer from; | ||
| 23 | + /** | ||
| 24 | + * 来源的名字 | ||
| 25 | + */ | ||
| 26 | + private final String name; | ||
| 27 | + | ||
| 28 | +} |
yudao-module-mp/yudao-module-mp-api/src/main/java/cn/iocoder/yudao/module/mp/package-info.java
0 → 100644
yudao-module-mp/yudao-module-mp-biz/pom.xml
0 → 100644
| 1 | +<?xml version="1.0" encoding="UTF-8"?> | ||
| 2 | +<project xmlns="http://maven.apache.org/POM/4.0.0" | ||
| 3 | + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | ||
| 4 | + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> | ||
| 5 | + <parent> | ||
| 6 | + <artifactId>yudao-module-mp</artifactId> | ||
| 7 | + <groupId>cn.iocoder.boot</groupId> | ||
| 8 | + <version>${revision}</version> | ||
| 9 | + </parent> | ||
| 10 | + <modelVersion>4.0.0</modelVersion> | ||
| 11 | + <artifactId>yudao-module-mp-biz</artifactId> | ||
| 12 | + <packaging>jar</packaging> | ||
| 13 | + | ||
| 14 | + <name>${project.artifactId}</name> | ||
| 15 | + <description> | ||
| 16 | + mp 模块,我们放微信微信公众号。 | ||
| 17 | + 例如说:提供微信公众号的账号、菜单、粉丝、标签、消息、自动回复、素材、模板通知、运营数据等功能 | ||
| 18 | + </description> | ||
| 19 | + | ||
| 20 | + <dependencies> | ||
| 21 | + <dependency> | ||
| 22 | + <groupId>cn.iocoder.boot</groupId> | ||
| 23 | + <artifactId>yudao-module-mp-api</artifactId> | ||
| 24 | + <version>${revision}</version> | ||
| 25 | + </dependency> | ||
| 26 | + <dependency> | ||
| 27 | + <groupId>cn.iocoder.boot</groupId> | ||
| 28 | + <artifactId>yudao-module-system-api</artifactId> | ||
| 29 | + <version>${revision}</version> | ||
| 30 | + </dependency> | ||
| 31 | + <dependency> | ||
| 32 | + <groupId>cn.iocoder.boot</groupId> | ||
| 33 | + <artifactId>yudao-module-infra-api</artifactId> | ||
| 34 | + <version>${revision}</version> | ||
| 35 | + </dependency> | ||
| 36 | + | ||
| 37 | + <!-- 业务组件 --> | ||
| 38 | + <dependency> | ||
| 39 | + <groupId>cn.iocoder.boot</groupId> | ||
| 40 | + <artifactId>yudao-spring-boot-starter-biz-operatelog</artifactId> | ||
| 41 | + </dependency> | ||
| 42 | + <dependency> | ||
| 43 | + <groupId>cn.iocoder.boot</groupId> | ||
| 44 | + <artifactId>yudao-spring-boot-starter-biz-weixin</artifactId> | ||
| 45 | + </dependency> | ||
| 46 | + <dependency> | ||
| 47 | + <groupId>cn.iocoder.boot</groupId> | ||
| 48 | + <artifactId>yudao-spring-boot-starter-biz-tenant</artifactId> | ||
| 49 | + </dependency> | ||
| 50 | + | ||
| 51 | + <!-- Web 相关 --> | ||
| 52 | + <dependency> | ||
| 53 | + <groupId>cn.iocoder.boot</groupId> | ||
| 54 | + <artifactId>yudao-spring-boot-starter-security</artifactId> | ||
| 55 | + </dependency> | ||
| 56 | + | ||
| 57 | + <!-- DB 相关 --> | ||
| 58 | + <dependency> | ||
| 59 | + <groupId>cn.iocoder.boot</groupId> | ||
| 60 | + <artifactId>yudao-spring-boot-starter-mybatis</artifactId> | ||
| 61 | + </dependency> | ||
| 62 | + | ||
| 63 | + <dependency> | ||
| 64 | + <groupId>cn.iocoder.boot</groupId> | ||
| 65 | + <artifactId>yudao-spring-boot-starter-redis</artifactId> | ||
| 66 | + </dependency> | ||
| 67 | + | ||
| 68 | + <!-- 消息队列相关 --> | ||
| 69 | + <dependency> | ||
| 70 | + <groupId>cn.iocoder.boot</groupId> | ||
| 71 | + <artifactId>yudao-spring-boot-starter-mq</artifactId> | ||
| 72 | + </dependency> | ||
| 73 | + | ||
| 74 | + <!-- Test 测试相关 --> | ||
| 75 | + <dependency> | ||
| 76 | + <groupId>cn.iocoder.boot</groupId> | ||
| 77 | + <artifactId>yudao-spring-boot-starter-test</artifactId> | ||
| 78 | + <scope>test</scope> | ||
| 79 | + </dependency> | ||
| 80 | + | ||
| 81 | + <!-- 工具类相关 --> | ||
| 82 | + <dependency> | ||
| 83 | + <groupId>cn.iocoder.boot</groupId> | ||
| 84 | + <artifactId>yudao-spring-boot-starter-excel</artifactId> | ||
| 85 | + </dependency> | ||
| 86 | + | ||
| 87 | + </dependencies> | ||
| 88 | + | ||
| 89 | +</project> |
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/account/MpAccountController.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.mp.controller.admin.account; | ||
| 2 | + | ||
| 3 | +import cn.iocoder.yudao.framework.common.pojo.CommonResult; | ||
| 4 | +import cn.iocoder.yudao.framework.common.pojo.PageResult; | ||
| 5 | +import cn.iocoder.yudao.module.mp.controller.admin.account.vo.*; | ||
| 6 | +import cn.iocoder.yudao.module.mp.convert.account.MpAccountConvert; | ||
| 7 | +import cn.iocoder.yudao.module.mp.dal.dataobject.account.MpAccountDO; | ||
| 8 | +import cn.iocoder.yudao.module.mp.service.account.MpAccountService; | ||
| 9 | +import io.swagger.annotations.Api; | ||
| 10 | +import io.swagger.annotations.ApiImplicitParam; | ||
| 11 | +import io.swagger.annotations.ApiOperation; | ||
| 12 | +import org.springframework.security.access.prepost.PreAuthorize; | ||
| 13 | +import org.springframework.validation.annotation.Validated; | ||
| 14 | +import org.springframework.web.bind.annotation.*; | ||
| 15 | + | ||
| 16 | +import javax.annotation.Resource; | ||
| 17 | +import javax.validation.Valid; | ||
| 18 | +import java.util.List; | ||
| 19 | + | ||
| 20 | +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; | ||
| 21 | + | ||
| 22 | +@Api(tags = "管理后台 - 公众号账号") | ||
| 23 | +@RestController | ||
| 24 | +@RequestMapping("/mp/account") | ||
| 25 | +@Validated | ||
| 26 | +public class MpAccountController { | ||
| 27 | + | ||
| 28 | + @Resource | ||
| 29 | + private MpAccountService mpAccountService; | ||
| 30 | + | ||
| 31 | + @PostMapping("/create") | ||
| 32 | + @ApiOperation("创建公众号账号") | ||
| 33 | + @PreAuthorize("@ss.hasPermission('mp:account:create')") | ||
| 34 | + public CommonResult<Long> createAccount(@Valid @RequestBody MpAccountCreateReqVO createReqVO) { | ||
| 35 | + return success(mpAccountService.createAccount(createReqVO)); | ||
| 36 | + } | ||
| 37 | + | ||
| 38 | + @PutMapping("/update") | ||
| 39 | + @ApiOperation("更新公众号账号") | ||
| 40 | + @PreAuthorize("@ss.hasPermission('mp:account:update')") | ||
| 41 | + public CommonResult<Boolean> updateAccount(@Valid @RequestBody MpAccountUpdateReqVO updateReqVO) { | ||
| 42 | + mpAccountService.updateAccount(updateReqVO); | ||
| 43 | + return success(true); | ||
| 44 | + } | ||
| 45 | + | ||
| 46 | + @DeleteMapping("/delete") | ||
| 47 | + @ApiOperation("删除公众号账号") | ||
| 48 | + @ApiImplicitParam(name = "id", value = "编号", required = true, dataTypeClass = Long.class) | ||
| 49 | + @PreAuthorize("@ss.hasPermission('mp:account:delete')") | ||
| 50 | + public CommonResult<Boolean> deleteAccount(@RequestParam("id") Long id) { | ||
| 51 | + mpAccountService.deleteAccount(id); | ||
| 52 | + return success(true); | ||
| 53 | + } | ||
| 54 | + | ||
| 55 | + @GetMapping("/get") | ||
| 56 | + @ApiOperation("获得公众号账号") | ||
| 57 | + @ApiImplicitParam(name = "id", value = "编号", required = true, example = "1024", dataTypeClass = Long.class) | ||
| 58 | + @PreAuthorize("@ss.hasPermission('mp:account:query')") | ||
| 59 | + public CommonResult<MpAccountRespVO> getAccount(@RequestParam("id") Long id) { | ||
| 60 | + MpAccountDO wxAccount = mpAccountService.getAccount(id); | ||
| 61 | + return success(MpAccountConvert.INSTANCE.convert(wxAccount)); | ||
| 62 | + } | ||
| 63 | + | ||
| 64 | + @GetMapping("/page") | ||
| 65 | + @ApiOperation("获得公众号账号分页") | ||
| 66 | + @PreAuthorize("@ss.hasPermission('mp:account:query')") | ||
| 67 | + public CommonResult<PageResult<MpAccountRespVO>> getAccountPage(@Valid MpAccountPageReqVO pageVO) { | ||
| 68 | + PageResult<MpAccountDO> pageResult = mpAccountService.getAccountPage(pageVO); | ||
| 69 | + return success(MpAccountConvert.INSTANCE.convertPage(pageResult)); | ||
| 70 | + } | ||
| 71 | + | ||
| 72 | + @GetMapping("/list-all-simple") | ||
| 73 | + @ApiOperation(value = "获取公众号账号精简信息列表") | ||
| 74 | + @PreAuthorize("@ss.hasPermission('mp:account:query')") | ||
| 75 | + public CommonResult<List<MpAccountSimpleRespVO>> getSimpleAccounts() { | ||
| 76 | + List<MpAccountDO> list = mpAccountService.getAccountList(); | ||
| 77 | + return success(MpAccountConvert.INSTANCE.convertList02(list)); | ||
| 78 | + } | ||
| 79 | + | ||
| 80 | + @PutMapping("/generate-qr-code") | ||
| 81 | + @ApiOperation("生成公众号二维码") | ||
| 82 | + @ApiImplicitParam(name = "id", value = "编号", required = true, dataTypeClass = Long.class) | ||
| 83 | + @PreAuthorize("@ss.hasPermission('mp:account:qr-code')") | ||
| 84 | + public CommonResult<Boolean> generateAccountQrCode(@RequestParam("id") Long id) { | ||
| 85 | + mpAccountService.generateAccountQrCode(id); | ||
| 86 | + return success(true); | ||
| 87 | + } | ||
| 88 | + | ||
| 89 | + @PutMapping("/clear-quota") | ||
| 90 | + @ApiOperation("清空公众号 API 配额") | ||
| 91 | + @ApiImplicitParam(name = "id", value = "编号", required = true, dataTypeClass = Long.class) | ||
| 92 | + @PreAuthorize("@ss.hasPermission('mp:account:clear-quota')") | ||
| 93 | + public CommonResult<Boolean> clearAccountQuota(@RequestParam("id") Long id) { | ||
| 94 | + mpAccountService.clearAccountQuota(id); | ||
| 95 | + return success(true); | ||
| 96 | + } | ||
| 97 | + | ||
| 98 | +} |
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/account/vo/MpAccountBaseVO.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.mp.controller.admin.account.vo; | ||
| 2 | + | ||
| 3 | +import io.swagger.annotations.ApiModelProperty; | ||
| 4 | +import lombok.Data; | ||
| 5 | + | ||
| 6 | +import javax.validation.constraints.NotEmpty; | ||
| 7 | + | ||
| 8 | +/** | ||
| 9 | + * 公众号账号 Base VO,提供给添加、修改、详细的子 VO 使用 | ||
| 10 | + * 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成 | ||
| 11 | + * | ||
| 12 | + * @author fengdan | ||
| 13 | + */ | ||
| 14 | +@Data | ||
| 15 | +public class MpAccountBaseVO { | ||
| 16 | + | ||
| 17 | + @ApiModelProperty(value = "公众号名称", required = true, example = "芋道源码") | ||
| 18 | + @NotEmpty(message = "公众号名称不能为空") | ||
| 19 | + private String name; | ||
| 20 | + | ||
| 21 | + @ApiModelProperty(value = "公众号微信号", required = true, example = "yudaoyuanma") | ||
| 22 | + @NotEmpty(message = "公众号微信号不能为空") | ||
| 23 | + private String account; | ||
| 24 | + | ||
| 25 | + @ApiModelProperty(value = "公众号 appId", required = true, example = "wx5b23ba7a5589ecbb") | ||
| 26 | + @NotEmpty(message = "公众号 appId 不能为空") | ||
| 27 | + private String appId; | ||
| 28 | + | ||
| 29 | + @ApiModelProperty(value = "公众号密钥", required = true, example = "3a7b3b20c537e52e74afd395eb85f61f") | ||
| 30 | + @NotEmpty(message = "公众号密钥不能为空") | ||
| 31 | + private String appSecret; | ||
| 32 | + | ||
| 33 | + @ApiModelProperty(value = "公众号 token", required = true, example = "kangdayuzhen") | ||
| 34 | + @NotEmpty(message = "公众号 token 不能为空") | ||
| 35 | + private String token; | ||
| 36 | + | ||
| 37 | + @ApiModelProperty(value = "加密密钥", example = "gjN+Ksei") | ||
| 38 | + private String aesKey; | ||
| 39 | + | ||
| 40 | + @ApiModelProperty(value = "备注", example = "请关注芋道源码,学习技术") | ||
| 41 | + private String remark; | ||
| 42 | + | ||
| 43 | +} |
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/account/vo/MpAccountCreateReqVO.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.mp.controller.admin.account.vo; | ||
| 2 | + | ||
| 3 | +import io.swagger.annotations.ApiModel; | ||
| 4 | +import lombok.Data; | ||
| 5 | +import lombok.EqualsAndHashCode; | ||
| 6 | +import lombok.ToString; | ||
| 7 | + | ||
| 8 | +@ApiModel("管理后台 - 公众号账号创建 Request VO") | ||
| 9 | +@Data | ||
| 10 | +@EqualsAndHashCode(callSuper = true) | ||
| 11 | +@ToString(callSuper = true) | ||
| 12 | +public class MpAccountCreateReqVO extends MpAccountBaseVO { | ||
| 13 | + | ||
| 14 | +} |
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/account/vo/MpAccountPageReqVO.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.mp.controller.admin.account.vo; | ||
| 2 | + | ||
| 3 | +import lombok.*; | ||
| 4 | +import io.swagger.annotations.*; | ||
| 5 | +import cn.iocoder.yudao.framework.common.pojo.PageParam; | ||
| 6 | + | ||
| 7 | +@ApiModel("管理后台 - 公众号账号分页 Request VO") | ||
| 8 | +@Data | ||
| 9 | +@EqualsAndHashCode(callSuper = true) | ||
| 10 | +@ToString(callSuper = true) | ||
| 11 | +public class MpAccountPageReqVO extends PageParam { | ||
| 12 | + | ||
| 13 | + @ApiModelProperty(value = "公众号名称", notes = "模糊匹配") | ||
| 14 | + private String name; | ||
| 15 | + | ||
| 16 | + @ApiModelProperty(value = "公众号账号", notes = "模糊匹配") | ||
| 17 | + private String account; | ||
| 18 | + | ||
| 19 | + @ApiModelProperty(value = "公众号 appid", notes = "模糊匹配") | ||
| 20 | + private String appId; | ||
| 21 | + | ||
| 22 | +} |
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/account/vo/MpAccountRespVO.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.mp.controller.admin.account.vo; | ||
| 2 | + | ||
| 3 | +import io.swagger.annotations.ApiModel; | ||
| 4 | +import io.swagger.annotations.ApiModelProperty; | ||
| 5 | +import lombok.Data; | ||
| 6 | +import lombok.EqualsAndHashCode; | ||
| 7 | +import lombok.ToString; | ||
| 8 | + | ||
| 9 | +import java.util.Date; | ||
| 10 | + | ||
| 11 | +@ApiModel("管理后台 - 公众号账号 Response VO") | ||
| 12 | +@Data | ||
| 13 | +@EqualsAndHashCode(callSuper = true) | ||
| 14 | +@ToString(callSuper = true) | ||
| 15 | +public class MpAccountRespVO extends MpAccountBaseVO { | ||
| 16 | + | ||
| 17 | + @ApiModelProperty(value = "编号", required = true, example = "1024") | ||
| 18 | + private Long id; | ||
| 19 | + | ||
| 20 | + @ApiModelProperty(value = "二维码图片URL", example = "https://www.iocoder.cn/1024.png") | ||
| 21 | + private String qrCodeUrl; | ||
| 22 | + | ||
| 23 | + @ApiModelProperty(value = "创建时间", required = true) | ||
| 24 | + private Date createTime; | ||
| 25 | + | ||
| 26 | +} |
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/account/vo/MpAccountSimpleRespVO.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.mp.controller.admin.account.vo; | ||
| 2 | + | ||
| 3 | +import io.swagger.annotations.ApiModel; | ||
| 4 | +import io.swagger.annotations.ApiModelProperty; | ||
| 5 | +import lombok.Data; | ||
| 6 | + | ||
| 7 | +@ApiModel("管理后台 - 公众号账号精简信息 Response VO") | ||
| 8 | +@Data | ||
| 9 | +public class MpAccountSimpleRespVO { | ||
| 10 | + | ||
| 11 | + @ApiModelProperty(value = "编号", required = true, example = "1024") | ||
| 12 | + private Long id; | ||
| 13 | + | ||
| 14 | + @ApiModelProperty(value = "公众号名称", required = true, example = "芋道源码") | ||
| 15 | + private String name; | ||
| 16 | + | ||
| 17 | +} |
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/account/vo/MpAccountUpdateReqVO.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.mp.controller.admin.account.vo; | ||
| 2 | + | ||
| 3 | +import lombok.*; | ||
| 4 | +import io.swagger.annotations.*; | ||
| 5 | +import javax.validation.constraints.*; | ||
| 6 | + | ||
| 7 | +@ApiModel("管理后台 - 公众号账号更新 Request VO") | ||
| 8 | +@Data | ||
| 9 | +@EqualsAndHashCode(callSuper = true) | ||
| 10 | +@ToString(callSuper = true) | ||
| 11 | +public class MpAccountUpdateReqVO extends MpAccountBaseVO { | ||
| 12 | + | ||
| 13 | + @ApiModelProperty(value = "编号", required = true, example = "1024") | ||
| 14 | + @NotNull(message = "编号不能为空") | ||
| 15 | + private Long id; | ||
| 16 | + | ||
| 17 | +} |
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/material/MpMaterialController.http
0 → 100644
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/material/MpMaterialController.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.mp.controller.admin.material; | ||
| 2 | + | ||
| 3 | +import cn.iocoder.yudao.framework.common.pojo.CommonResult; | ||
| 4 | +import cn.iocoder.yudao.framework.common.pojo.PageResult; | ||
| 5 | +import cn.iocoder.yudao.module.mp.controller.admin.material.vo.*; | ||
| 6 | +import cn.iocoder.yudao.module.mp.convert.material.MpMaterialConvert; | ||
| 7 | +import cn.iocoder.yudao.module.mp.dal.dataobject.material.MpMaterialDO; | ||
| 8 | +import cn.iocoder.yudao.module.mp.service.material.MpMaterialService; | ||
| 9 | +import io.swagger.annotations.Api; | ||
| 10 | +import io.swagger.annotations.ApiImplicitParam; | ||
| 11 | +import io.swagger.annotations.ApiOperation; | ||
| 12 | +import org.springframework.security.access.prepost.PreAuthorize; | ||
| 13 | +import org.springframework.validation.annotation.Validated; | ||
| 14 | +import org.springframework.web.bind.annotation.*; | ||
| 15 | + | ||
| 16 | +import javax.annotation.Resource; | ||
| 17 | +import javax.validation.Valid; | ||
| 18 | +import java.io.IOException; | ||
| 19 | + | ||
| 20 | +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; | ||
| 21 | + | ||
| 22 | +@Api(tags = "管理后台 - 公众号素材") | ||
| 23 | +@RestController | ||
| 24 | +@RequestMapping("/mp/material") | ||
| 25 | +@Validated | ||
| 26 | +public class MpMaterialController { | ||
| 27 | + | ||
| 28 | + @Resource | ||
| 29 | + private MpMaterialService mpMaterialService; | ||
| 30 | + | ||
| 31 | + @ApiOperation("上传临时素材") | ||
| 32 | + @PostMapping("/upload-temporary") | ||
| 33 | + @PreAuthorize("@ss.hasPermission('mp:material:upload-temporary')") | ||
| 34 | + public CommonResult<MpMaterialUploadRespVO> uploadTemporaryMaterial( | ||
| 35 | + @Valid MpMaterialUploadTemporaryReqVO reqVO) throws IOException { | ||
| 36 | + MpMaterialDO material = mpMaterialService.uploadTemporaryMaterial(reqVO); | ||
| 37 | + return success(MpMaterialConvert.INSTANCE.convert(material)); | ||
| 38 | + } | ||
| 39 | + | ||
| 40 | + @ApiOperation("上传永久素材") | ||
| 41 | + @PostMapping("/upload-permanent") | ||
| 42 | + @PreAuthorize("@ss.hasPermission('mp:material:upload-permanent')") | ||
| 43 | + public CommonResult<MpMaterialUploadRespVO> uploadPermanentMaterial( | ||
| 44 | + @Valid MpMaterialUploadPermanentReqVO reqVO) throws IOException { | ||
| 45 | + MpMaterialDO material = mpMaterialService.uploadPermanentMaterial(reqVO); | ||
| 46 | + return success(MpMaterialConvert.INSTANCE.convert(material)); | ||
| 47 | + } | ||
| 48 | + | ||
| 49 | + @ApiOperation("删除素材") | ||
| 50 | + @DeleteMapping("/delete-permanent") | ||
| 51 | + @ApiImplicitParam(name = "id", value = "编号", required = true, example = "1024", dataTypeClass = Long.class) | ||
| 52 | + @PreAuthorize("@ss.hasPermission('mp:material:delete')") | ||
| 53 | + public CommonResult<Boolean> deleteMaterial(@RequestParam("id") Long id) { | ||
| 54 | + mpMaterialService.deleteMaterial(id); | ||
| 55 | + return success(true); | ||
| 56 | + } | ||
| 57 | + | ||
| 58 | + @ApiOperation("上传图文内容中的图片") | ||
| 59 | + @PostMapping("/upload-news-image") | ||
| 60 | + @PreAuthorize("@ss.hasPermission('mp:material:upload-news-image')") | ||
| 61 | + public CommonResult<String> uploadNewsImage(@Valid MpMaterialUploadNewsImageReqVO reqVO) | ||
| 62 | + throws IOException { | ||
| 63 | + return success(mpMaterialService.uploadNewsImage(reqVO)); | ||
| 64 | + } | ||
| 65 | + | ||
| 66 | + @ApiOperation("获得素材分页") | ||
| 67 | + @GetMapping("/page") | ||
| 68 | + @PreAuthorize("@ss.hasPermission('mp:material:query')") | ||
| 69 | + public CommonResult<PageResult<MpMaterialRespVO>> getMaterialPage(@Valid MpMaterialPageReqVO pageReqVO) { | ||
| 70 | + PageResult<MpMaterialDO> pageResult = mpMaterialService.getMaterialPage(pageReqVO); | ||
| 71 | + return success(MpMaterialConvert.INSTANCE.convertPage(pageResult)); | ||
| 72 | + } | ||
| 73 | + | ||
| 74 | +} |
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/material/vo/MpMaterialPageReqVO.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.mp.controller.admin.material.vo; | ||
| 2 | + | ||
| 3 | +import cn.iocoder.yudao.framework.common.pojo.PageParam; | ||
| 4 | +import io.swagger.annotations.ApiModel; | ||
| 5 | +import io.swagger.annotations.ApiModelProperty; | ||
| 6 | +import lombok.Data; | ||
| 7 | +import lombok.EqualsAndHashCode; | ||
| 8 | +import lombok.ToString; | ||
| 9 | + | ||
| 10 | +import javax.validation.constraints.NotNull; | ||
| 11 | + | ||
| 12 | +@ApiModel("管理后台 - 公众号素材的分页 Request VO") | ||
| 13 | +@Data | ||
| 14 | +@EqualsAndHashCode(callSuper = true) | ||
| 15 | +@ToString(callSuper = true) | ||
| 16 | +public class MpMaterialPageReqVO extends PageParam { | ||
| 17 | + | ||
| 18 | + @ApiModelProperty(value = "公众号账号的编号", required = true, example = "2048") | ||
| 19 | + @NotNull(message = "公众号账号的编号不能为空") | ||
| 20 | + private Long accountId; | ||
| 21 | + | ||
| 22 | + @ApiModelProperty(value = "是否永久", example = "true") | ||
| 23 | + private Boolean permanent; | ||
| 24 | + | ||
| 25 | + @ApiModelProperty(value = "文件类型", example = "image", notes = "参见 WxConsts.MediaFileType 枚举") | ||
| 26 | + private String type; | ||
| 27 | + | ||
| 28 | +} |
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/material/vo/MpMaterialRespVO.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.mp.controller.admin.material.vo; | ||
| 2 | + | ||
| 3 | +import io.swagger.annotations.ApiModel; | ||
| 4 | +import io.swagger.annotations.ApiModelProperty; | ||
| 5 | +import lombok.Data; | ||
| 6 | + | ||
| 7 | +import java.util.Date; | ||
| 8 | + | ||
| 9 | +@ApiModel("管理后台 - 公众号素材 Response VO") | ||
| 10 | +@Data | ||
| 11 | +public class MpMaterialRespVO { | ||
| 12 | + | ||
| 13 | + @ApiModelProperty(value = "主键", required = true, example = "1024") | ||
| 14 | + private Long id; | ||
| 15 | + | ||
| 16 | + @ApiModelProperty(value = "公众号账号的编号", required = true, example = "1") | ||
| 17 | + private Long accountId; | ||
| 18 | + @ApiModelProperty(value = "公众号账号的 appId", required = true, example = "wx1234567890") | ||
| 19 | + private String appId; | ||
| 20 | + | ||
| 21 | + @ApiModelProperty(value = "素材的 media_id", required = true, example = "123") | ||
| 22 | + private String mediaId; | ||
| 23 | + | ||
| 24 | + @ApiModelProperty(value = "文件类型", required = true, example = "image", notes = "参见 WxConsts.MediaFileType 枚举") | ||
| 25 | + private String type; | ||
| 26 | + | ||
| 27 | + @ApiModelProperty(value = "是否永久", required = true, example = "true", notes = "true - 永久;false - 临时") | ||
| 28 | + private Boolean permanent; | ||
| 29 | + | ||
| 30 | + @ApiModelProperty(value = "素材的 URL", required = true, example = "https://www.iocoder.cn/1.png") | ||
| 31 | + private String url; | ||
| 32 | + | ||
| 33 | + | ||
| 34 | + @ApiModelProperty(value = "名字", example = "yunai.png") | ||
| 35 | + private String name; | ||
| 36 | + | ||
| 37 | + @ApiModelProperty(value = "公众号文件 URL", example = "https://mmbiz.qpic.cn/xxx.mp3", notes = "只有【永久素材】使用") | ||
| 38 | + private String mpUrl; | ||
| 39 | + | ||
| 40 | + @ApiModelProperty(value = "视频素材的标题", example = "我是标题", notes = "只有【永久素材】使用") | ||
| 41 | + private String title; | ||
| 42 | + @ApiModelProperty(value = "视频素材的描述", example = "我是介绍", notes = "只有【永久素材】使用") | ||
| 43 | + private String introduction; | ||
| 44 | + | ||
| 45 | + @ApiModelProperty(value = "创建时间", required = true) | ||
| 46 | + private Date createTime; | ||
| 47 | + | ||
| 48 | +} |
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/material/vo/MpMaterialUploadNewsImageReqVO.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.mp.controller.admin.material.vo; | ||
| 2 | + | ||
| 3 | +import com.fasterxml.jackson.annotation.JsonIgnore; | ||
| 4 | +import io.swagger.annotations.ApiModel; | ||
| 5 | +import io.swagger.annotations.ApiModelProperty; | ||
| 6 | +import lombok.Data; | ||
| 7 | +import org.springframework.web.multipart.MultipartFile; | ||
| 8 | + | ||
| 9 | +import javax.validation.constraints.NotNull; | ||
| 10 | + | ||
| 11 | +@ApiModel("管理后台 - 公众号素材上传图文内容中的图片 Request VO") | ||
| 12 | +@Data | ||
| 13 | +public class MpMaterialUploadNewsImageReqVO { | ||
| 14 | + | ||
| 15 | + @ApiModelProperty(value = "公众号账号的编号", required = true, example = "2048") | ||
| 16 | + @NotNull(message = "公众号账号的编号不能为空") | ||
| 17 | + private Long accountId; | ||
| 18 | + | ||
| 19 | + @ApiModelProperty(value = "文件附件", required = true) | ||
| 20 | + @NotNull(message = "文件不能为空") | ||
| 21 | + @JsonIgnore // 避免被操作日志,进行序列化,导致报错 | ||
| 22 | + private MultipartFile file; | ||
| 23 | + | ||
| 24 | +} |
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/material/vo/MpMaterialUploadPermanentReqVO.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.mp.controller.admin.material.vo; | ||
| 2 | + | ||
| 3 | +import cn.hutool.core.util.ObjectUtil; | ||
| 4 | +import com.fasterxml.jackson.annotation.JsonIgnore; | ||
| 5 | +import io.swagger.annotations.ApiModel; | ||
| 6 | +import io.swagger.annotations.ApiModelProperty; | ||
| 7 | +import lombok.Data; | ||
| 8 | +import me.chanjar.weixin.common.api.WxConsts; | ||
| 9 | +import org.springframework.web.multipart.MultipartFile; | ||
| 10 | + | ||
| 11 | +import javax.validation.constraints.AssertTrue; | ||
| 12 | +import javax.validation.constraints.NotEmpty; | ||
| 13 | +import javax.validation.constraints.NotNull; | ||
| 14 | + | ||
| 15 | +@ApiModel("管理后台 - 公众号素材上传永久 Request VO") | ||
| 16 | +@Data | ||
| 17 | +public class MpMaterialUploadPermanentReqVO { | ||
| 18 | + | ||
| 19 | + @ApiModelProperty(value = "公众号账号的编号", required = true, example = "2048") | ||
| 20 | + @NotNull(message = "公众号账号的编号不能为空") | ||
| 21 | + private Long accountId; | ||
| 22 | + | ||
| 23 | + @ApiModelProperty(value = "文件类型", required = true, example = "image", notes = "参见 WxConsts.MediaFileType 枚举") | ||
| 24 | + @NotEmpty(message = "文件类型不能为空") | ||
| 25 | + private String type; | ||
| 26 | + | ||
| 27 | + @ApiModelProperty(value = "文件附件", required = true) | ||
| 28 | + @NotNull(message = "文件不能为空") | ||
| 29 | + @JsonIgnore // 避免被操作日志,进行序列化,导致报错 | ||
| 30 | + private MultipartFile file; | ||
| 31 | + | ||
| 32 | + @ApiModelProperty(value = "名字", example = "wechat.mp", notes = "如果 name 为空,则使用 file 文件名") | ||
| 33 | + private String name; | ||
| 34 | + | ||
| 35 | + @ApiModelProperty(value = "视频素材的标题", example = "视频素材的标题", notes = "文件类型为 video 时,必填") | ||
| 36 | + private String title; | ||
| 37 | + @ApiModelProperty(value = "视频素材的描述", example = "视频素材的描述", notes = "文件类型为 video 时,必填") | ||
| 38 | + private String introduction; | ||
| 39 | + | ||
| 40 | + @AssertTrue(message = "标题不能为空") | ||
| 41 | + public boolean isTitleValid() { | ||
| 42 | + // 生成场景为管理后台时,必须设置上级菜单,不然生成的菜单 SQL 是无父级菜单的 | ||
| 43 | + return ObjectUtil.notEqual(type, WxConsts.MediaFileType.VIDEO) | ||
| 44 | + || title != null; | ||
| 45 | + } | ||
| 46 | + | ||
| 47 | + @AssertTrue(message = "描述不能为空") | ||
| 48 | + public boolean isIntroductionValid() { | ||
| 49 | + // 生成场景为管理后台时,必须设置上级菜单,不然生成的菜单 SQL 是无父级菜单的 | ||
| 50 | + return ObjectUtil.notEqual(type, WxConsts.MediaFileType.VIDEO) | ||
| 51 | + || introduction != null; | ||
| 52 | + } | ||
| 53 | + | ||
| 54 | +} |
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/material/vo/MpMaterialUploadRespVO.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.mp.controller.admin.material.vo; | ||
| 2 | + | ||
| 3 | +import io.swagger.annotations.ApiModel; | ||
| 4 | +import io.swagger.annotations.ApiModelProperty; | ||
| 5 | +import lombok.Data; | ||
| 6 | + | ||
| 7 | +@ApiModel("管理后台 - 公众号素材上传结果 Response VO") | ||
| 8 | +@Data | ||
| 9 | +public class MpMaterialUploadRespVO { | ||
| 10 | + | ||
| 11 | + @ApiModelProperty(value = "素材的 media_id", required = true, example = "123") | ||
| 12 | + private String mediaId; | ||
| 13 | + | ||
| 14 | + @ApiModelProperty(value = "素材的 URL", required = true, example = "https://www.iocoder.cn/1.png") | ||
| 15 | + private String url; | ||
| 16 | + | ||
| 17 | +} |
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/material/vo/MpMaterialUploadTemporaryReqVO.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.mp.controller.admin.material.vo; | ||
| 2 | + | ||
| 3 | +import com.fasterxml.jackson.annotation.JsonIgnore; | ||
| 4 | +import io.swagger.annotations.ApiModel; | ||
| 5 | +import io.swagger.annotations.ApiModelProperty; | ||
| 6 | +import lombok.Data; | ||
| 7 | +import org.springframework.web.multipart.MultipartFile; | ||
| 8 | + | ||
| 9 | +import javax.validation.constraints.NotEmpty; | ||
| 10 | +import javax.validation.constraints.NotNull; | ||
| 11 | + | ||
| 12 | +@ApiModel("管理后台 - 公众号素材上传临时 Request VO") | ||
| 13 | +@Data | ||
| 14 | +public class MpMaterialUploadTemporaryReqVO { | ||
| 15 | + | ||
| 16 | + @ApiModelProperty(value = "公众号账号的编号", required = true, example = "2048") | ||
| 17 | + @NotNull(message = "公众号账号的编号不能为空") | ||
| 18 | + private Long accountId; | ||
| 19 | + | ||
| 20 | + @ApiModelProperty(value = "文件类型", required = true, example = "image", notes = "参见 WxConsts.MediaFileType 枚举") | ||
| 21 | + @NotEmpty(message = "文件类型不能为空") | ||
| 22 | + private String type; | ||
| 23 | + | ||
| 24 | + @ApiModelProperty(value = "文件附件", required = true) | ||
| 25 | + @NotNull(message = "文件不能为空") | ||
| 26 | + @JsonIgnore // 避免被操作日志,进行序列化,导致报错 | ||
| 27 | + private MultipartFile file; | ||
| 28 | + | ||
| 29 | +} |
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/menu/MpMenuController.http
0 → 100644
| 1 | +### 请求 /mp/menu/save 接口 => 成功 | ||
| 2 | +POST {{baseUrl}}/mp/menu/save | ||
| 3 | +Content-Type: application/json | ||
| 4 | +Authorization: Bearer {{token}} | ||
| 5 | +tenant-id: {{adminTenentId}} | ||
| 6 | + | ||
| 7 | +{ | ||
| 8 | + "accountId": "1", | ||
| 9 | + "menus": [ | ||
| 10 | + { | ||
| 11 | + "type":"click", | ||
| 12 | + "name":"今日歌曲", | ||
| 13 | + "menuKey":"V1001_TODAY_MUSIC" | ||
| 14 | + }, | ||
| 15 | + { | ||
| 16 | + "name":"搜索", | ||
| 17 | + "type":"view", | ||
| 18 | + "url":"https://www.soso.com/" | ||
| 19 | + }, | ||
| 20 | + { | ||
| 21 | + "name": "父按钮", | ||
| 22 | + "children": [ | ||
| 23 | + { | ||
| 24 | + "type":"click", | ||
| 25 | + "name":"归去来兮", | ||
| 26 | + "menuKey":"MUSIC" | ||
| 27 | + }, | ||
| 28 | + { | ||
| 29 | + "name":"不说", | ||
| 30 | + "type":"view", | ||
| 31 | + "url":"https://www.soso.com/" | ||
| 32 | + }] | ||
| 33 | + }] | ||
| 34 | +} | ||
| 35 | + | ||
| 36 | +### 请求 /mp/menu/save 接口 => 成功(清空) | ||
| 37 | +POST {{baseUrl}}/mp/menu/save | ||
| 38 | +Content-Type: application/json | ||
| 39 | +Authorization: Bearer {{token}} | ||
| 40 | +tenant-id: {{adminTenentId}} | ||
| 41 | + | ||
| 42 | +{ | ||
| 43 | + "accountId": "1", | ||
| 44 | + "menus": [] | ||
| 45 | +} | ||
| 46 | + | ||
| 47 | +### 请求 /mp/menu/list 接口 => 成功 | ||
| 48 | +GET {{baseUrl}}/mp/menu/list?accountId=1 | ||
| 49 | +Authorization: Bearer {{token}} | ||
| 50 | +tenant-id: {{adminTenentId}} |
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/menu/MpMenuController.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.mp.controller.admin.menu; | ||
| 2 | + | ||
| 3 | +import cn.iocoder.yudao.framework.common.pojo.CommonResult; | ||
| 4 | +import cn.iocoder.yudao.module.mp.controller.admin.menu.vo.MpMenuRespVO; | ||
| 5 | +import cn.iocoder.yudao.module.mp.controller.admin.menu.vo.MpMenuSaveReqVO; | ||
| 6 | +import cn.iocoder.yudao.module.mp.convert.menu.MpMenuConvert; | ||
| 7 | +import cn.iocoder.yudao.module.mp.dal.dataobject.menu.MpMenuDO; | ||
| 8 | +import cn.iocoder.yudao.module.mp.service.menu.MpMenuService; | ||
| 9 | +import io.swagger.annotations.Api; | ||
| 10 | +import io.swagger.annotations.ApiImplicitParam; | ||
| 11 | +import io.swagger.annotations.ApiOperation; | ||
| 12 | +import org.springframework.security.access.prepost.PreAuthorize; | ||
| 13 | +import org.springframework.validation.annotation.Validated; | ||
| 14 | +import org.springframework.web.bind.annotation.*; | ||
| 15 | + | ||
| 16 | +import javax.annotation.Resource; | ||
| 17 | +import javax.validation.Valid; | ||
| 18 | +import java.util.List; | ||
| 19 | + | ||
| 20 | +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; | ||
| 21 | + | ||
| 22 | +@Api(tags = "管理后台 - 公众号菜单") | ||
| 23 | +@RestController | ||
| 24 | +@RequestMapping("/mp/menu") | ||
| 25 | +@Validated | ||
| 26 | +public class MpMenuController { | ||
| 27 | + | ||
| 28 | + @Resource | ||
| 29 | + private MpMenuService mpMenuService; | ||
| 30 | + | ||
| 31 | + @PostMapping("/save") | ||
| 32 | + @ApiOperation("保存公众号菜单") | ||
| 33 | + @PreAuthorize("@ss.hasPermission('mp:menu:save')") | ||
| 34 | + public CommonResult<Boolean> saveMenu(@Valid @RequestBody MpMenuSaveReqVO createReqVO) { | ||
| 35 | + mpMenuService.saveMenu(createReqVO); | ||
| 36 | + return success(true); | ||
| 37 | + } | ||
| 38 | + | ||
| 39 | + @DeleteMapping("/delete") | ||
| 40 | + @ApiOperation("删除公众号菜单") | ||
| 41 | + @ApiImplicitParam(name = "accountId", value = "公众号账号的编号", required = true, example = "10", dataTypeClass = Long.class) | ||
| 42 | + @PreAuthorize("@ss.hasPermission('mp:menu:delete')") | ||
| 43 | + public CommonResult<Boolean> deleteMenu(@RequestParam("accountId") Long accountId) { | ||
| 44 | + mpMenuService.deleteMenuByAccountId(accountId); | ||
| 45 | + return success(true); | ||
| 46 | + } | ||
| 47 | + | ||
| 48 | + @GetMapping("/list") | ||
| 49 | + @ApiOperation("获得公众号菜单列表") | ||
| 50 | + @ApiImplicitParam(name = "accountId", value = "公众号账号的编号", required = true, example = "10", dataTypeClass = Long.class) | ||
| 51 | + @PreAuthorize("@ss.hasPermission('mp:menu:query')") | ||
| 52 | + public CommonResult<List<MpMenuRespVO>> getMenuList(@RequestParam("accountId") Long accountId) { | ||
| 53 | + List<MpMenuDO> list = mpMenuService.getMenuListByAccountId(accountId); | ||
| 54 | + return success(MpMenuConvert.INSTANCE.convertList(list)); | ||
| 55 | + } | ||
| 56 | + | ||
| 57 | +} |
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/menu/vo/MpMenuBaseVO.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.mp.controller.admin.menu.vo; | ||
| 2 | + | ||
| 3 | +import cn.iocoder.yudao.module.mp.dal.dataobject.message.MpMessageDO; | ||
| 4 | +import io.swagger.annotations.ApiModelProperty; | ||
| 5 | +import lombok.Data; | ||
| 6 | +import me.chanjar.weixin.common.api.WxConsts; | ||
| 7 | +import org.hibernate.validator.constraints.URL; | ||
| 8 | + | ||
| 9 | +import javax.validation.Valid; | ||
| 10 | +import javax.validation.constraints.NotEmpty; | ||
| 11 | +import javax.validation.constraints.NotNull; | ||
| 12 | +import java.util.List; | ||
| 13 | + | ||
| 14 | +import static cn.iocoder.yudao.module.mp.framework.mp.core.util.MpUtils.*; | ||
| 15 | + | ||
| 16 | +/** | ||
| 17 | + * 公众号菜单 Base VO,提供给添加、修改、详细的子 VO 使用 | ||
| 18 | + * 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成 | ||
| 19 | + */ | ||
| 20 | +@Data | ||
| 21 | +public class MpMenuBaseVO { | ||
| 22 | + | ||
| 23 | + /** | ||
| 24 | + * 菜单名称 | ||
| 25 | + */ | ||
| 26 | + private String name; | ||
| 27 | + /** | ||
| 28 | + * 菜单标识 | ||
| 29 | + * | ||
| 30 | + * 支持多 DB 类型时,无法直接使用 key + @TableField("menuKey") 来实现转换,原因是 "menuKey" AS key 而存在报错 | ||
| 31 | + */ | ||
| 32 | + private String menuKey; | ||
| 33 | + /** | ||
| 34 | + * 父菜单编号 | ||
| 35 | + */ | ||
| 36 | + private Long parentId; | ||
| 37 | + | ||
| 38 | + // ========== 按钮操作 ========== | ||
| 39 | + | ||
| 40 | + /** | ||
| 41 | + * 按钮类型 | ||
| 42 | + * | ||
| 43 | + * 枚举 {@link WxConsts.MenuButtonType} | ||
| 44 | + */ | ||
| 45 | + private String type; | ||
| 46 | + | ||
| 47 | + @ApiModelProperty(value = "网页链接", example = "https://www.iocoder.cn/") | ||
| 48 | + @NotEmpty(message = "网页链接不能为空", groups = {ViewButtonGroup.class, MiniProgramButtonGroup.class}) | ||
| 49 | + @URL(message = "网页链接必须是 URL 格式") | ||
| 50 | + private String url; | ||
| 51 | + | ||
| 52 | + @ApiModelProperty(value = "小程序的 appId", example = "wx1234567890") | ||
| 53 | + @NotEmpty(message = "小程序的 appId 不能为空", groups = MiniProgramButtonGroup.class) | ||
| 54 | + private String miniProgramAppId; | ||
| 55 | + | ||
| 56 | + @ApiModelProperty(value = "小程序的页面路径", example = "pages/index/index") | ||
| 57 | + @NotEmpty(message = "小程序的页面路径不能为空", groups = MiniProgramButtonGroup.class) | ||
| 58 | + private String miniProgramPagePath; | ||
| 59 | + | ||
| 60 | + @ApiModelProperty(value ="跳转图文的媒体编号", example = "jCQk93AIIgp8ixClWcW_NXXqBKInNWNmq2XnPeDZl7IMVqWiNeL4FfELtggRXd83") | ||
| 61 | + @NotEmpty(message = "跳转图文的媒体编号不能为空", groups = ViewLimitedButtonGroup.class) | ||
| 62 | + private String articleId; | ||
| 63 | + | ||
| 64 | + // ========== 消息内容 ========== | ||
| 65 | + | ||
| 66 | + @ApiModelProperty(value = "回复的消息类型", example = "text", | ||
| 67 | + notes = "枚举 TEXT、IMAGE、VOICE、VIDEO、NEWS、MUSIC") | ||
| 68 | + @NotEmpty(message = "回复的消息类型不能为空", groups = {ClickButtonGroup.class, ScanCodeWaitMsgButtonGroup.class}) | ||
| 69 | + private String replyMessageType; | ||
| 70 | + | ||
| 71 | + @ApiModelProperty(value = "回复的消息内容", example = "欢迎关注") | ||
| 72 | + @NotEmpty(message = "回复的消息内容不能为空", groups = TextMessageGroup.class) | ||
| 73 | + private String replyContent; | ||
| 74 | + | ||
| 75 | + @ApiModelProperty(value = "回复的媒体 id", example = "123456") | ||
| 76 | + @NotEmpty(message = "回复的消息 mediaId 不能为空", | ||
| 77 | + groups = {ImageMessageGroup.class, VoiceMessageGroup.class, VideoMessageGroup.class}) | ||
| 78 | + private String replyMediaId; | ||
| 79 | + @ApiModelProperty(value = "回复的媒体 URL", example = "https://www.iocoder.cn/xxx.jpg") | ||
| 80 | + @NotEmpty(message = "回复的消息 mediaId 不能为空", | ||
| 81 | + groups = {ImageMessageGroup.class, VoiceMessageGroup.class, VideoMessageGroup.class}) | ||
| 82 | + private String replyMediaUrl; | ||
| 83 | + | ||
| 84 | + @ApiModelProperty(value = "缩略图的媒体 id", example = "123456") | ||
| 85 | + @NotEmpty(message = "回复的消息 thumbMediaId 不能为空", groups = {MusicMessageGroup.class}) | ||
| 86 | + private String replyThumbMediaId; | ||
| 87 | + @ApiModelProperty(value = "缩略图的媒体 URL",example = "https://www.iocoder.cn/xxx.jpg") | ||
| 88 | + @NotEmpty(message = "回复的消息 thumbMedia 地址不能为空", groups = {MusicMessageGroup.class}) | ||
| 89 | + private String replyThumbMediaUrl; | ||
| 90 | + | ||
| 91 | + @ApiModelProperty(value = "回复的标题", example = "视频标题") | ||
| 92 | + @NotEmpty(message = "回复的消息标题不能为空", groups = VideoMessageGroup.class) | ||
| 93 | + private String replyTitle; | ||
| 94 | + @ApiModelProperty(value = "回复的描述", example = "视频描述") | ||
| 95 | + @NotEmpty(message = "消息描述不能为空", groups = VideoMessageGroup.class) | ||
| 96 | + private String replyDescription; | ||
| 97 | + | ||
| 98 | + /** | ||
| 99 | + * 回复的图文消息数组 | ||
| 100 | + * | ||
| 101 | + * 消息类型为 {@link WxConsts.XmlMsgType} 的 NEWS | ||
| 102 | + */ | ||
| 103 | + @NotNull(message = "回复的图文消息不能为空", groups = {NewsMessageGroup.class, ViewLimitedButtonGroup.class}) | ||
| 104 | + @Valid | ||
| 105 | + private List<MpMessageDO.Article> replyArticles; | ||
| 106 | + | ||
| 107 | + @ApiModelProperty(value = "回复的音乐链接", example = "https://www.iocoder.cn/xxx.mp3") | ||
| 108 | + @NotEmpty(message = "回复的音乐链接不能为空", groups = MusicMessageGroup.class) | ||
| 109 | + @URL(message = "回复的高质量音乐链接格式不正确", groups = MusicMessageGroup.class) | ||
| 110 | + private String replyMusicUrl; | ||
| 111 | + @ApiModelProperty(value = "高质量音乐链接", example = "https://www.iocoder.cn/xxx.mp3") | ||
| 112 | + @NotEmpty(message = "回复的高质量音乐链接不能为空", groups = MusicMessageGroup.class) | ||
| 113 | + @URL(message = "回复的高质量音乐链接格式不正确", groups = MusicMessageGroup.class) | ||
| 114 | + private String replyHqMusicUrl; | ||
| 115 | + | ||
| 116 | +} |
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/menu/vo/MpMenuRespVO.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.mp.controller.admin.menu.vo; | ||
| 2 | + | ||
| 3 | +import io.swagger.annotations.ApiModel; | ||
| 4 | +import io.swagger.annotations.ApiModelProperty; | ||
| 5 | +import lombok.Data; | ||
| 6 | +import lombok.EqualsAndHashCode; | ||
| 7 | +import lombok.ToString; | ||
| 8 | + | ||
| 9 | +import java.util.Date; | ||
| 10 | + | ||
| 11 | +@ApiModel("管理后台 - 公众号菜单 Response VO") | ||
| 12 | +@Data | ||
| 13 | +@EqualsAndHashCode(callSuper = true) | ||
| 14 | +@ToString(callSuper = true) | ||
| 15 | +public class MpMenuRespVO extends MpMenuBaseVO { | ||
| 16 | + | ||
| 17 | + @ApiModelProperty(value = "主键", required = true, example = "1024") | ||
| 18 | + private Long id; | ||
| 19 | + | ||
| 20 | + @ApiModelProperty(value = "公众号账号的编号", required = true, example = "2048") | ||
| 21 | + private Long accountId; | ||
| 22 | + | ||
| 23 | + @ApiModelProperty(value = "公众号 appId", required = true, example = "wx1234567890ox") | ||
| 24 | + private String appId; | ||
| 25 | + | ||
| 26 | + @ApiModelProperty(value = "创建时间", required = true) | ||
| 27 | + private Date createTime; | ||
| 28 | + | ||
| 29 | +} |
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/menu/vo/MpMenuSaveReqVO.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.mp.controller.admin.menu.vo; | ||
| 2 | + | ||
| 3 | +import io.swagger.annotations.ApiModel; | ||
| 4 | +import io.swagger.annotations.ApiModelProperty; | ||
| 5 | +import lombok.Data; | ||
| 6 | + | ||
| 7 | +import javax.validation.Valid; | ||
| 8 | +import javax.validation.constraints.NotEmpty; | ||
| 9 | +import javax.validation.constraints.NotNull; | ||
| 10 | +import java.util.List; | ||
| 11 | + | ||
| 12 | +@ApiModel("管理后台 - 公众号菜单保存 Request VO") | ||
| 13 | +@Data | ||
| 14 | +public class MpMenuSaveReqVO { | ||
| 15 | + | ||
| 16 | + @ApiModelProperty(value = "公众号账号的编号", required = true, example = "2048") | ||
| 17 | + @NotNull(message = "公众号账号的编号不能为空") | ||
| 18 | + private Long accountId; | ||
| 19 | + | ||
| 20 | + @NotEmpty(message = "菜单不能为空") | ||
| 21 | + @Valid | ||
| 22 | + private List<Menu> menus; | ||
| 23 | + | ||
| 24 | + @ApiModel("管理后台 - 公众号菜单保存时的每个菜单") | ||
| 25 | + @Data | ||
| 26 | + public static class Menu extends MpMenuBaseVO { | ||
| 27 | + | ||
| 28 | + /** | ||
| 29 | + * 子菜单数组 | ||
| 30 | + */ | ||
| 31 | + private List<Menu> children; | ||
| 32 | + | ||
| 33 | + } | ||
| 34 | + | ||
| 35 | +} |
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/message/MpAutoReplyController.http
0 → 100644
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/message/MpAutoReplyController.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.mp.controller.admin.message; | ||
| 2 | + | ||
| 3 | +import cn.iocoder.yudao.framework.common.pojo.CommonResult; | ||
| 4 | +import cn.iocoder.yudao.framework.common.pojo.PageResult; | ||
| 5 | +import cn.iocoder.yudao.module.mp.controller.admin.message.vo.autoreply.MpAutoReplyCreateReqVO; | ||
| 6 | +import cn.iocoder.yudao.module.mp.controller.admin.message.vo.autoreply.MpAutoReplyRespVO; | ||
| 7 | +import cn.iocoder.yudao.module.mp.controller.admin.message.vo.autoreply.MpAutoReplyUpdateReqVO; | ||
| 8 | +import cn.iocoder.yudao.module.mp.controller.admin.message.vo.message.MpMessagePageReqVO; | ||
| 9 | +import cn.iocoder.yudao.module.mp.convert.message.MpAutoReplyConvert; | ||
| 10 | +import cn.iocoder.yudao.module.mp.dal.dataobject.message.MpAutoReplyDO; | ||
| 11 | +import cn.iocoder.yudao.module.mp.service.message.MpAutoReplyService; | ||
| 12 | +import io.swagger.annotations.Api; | ||
| 13 | +import io.swagger.annotations.ApiImplicitParam; | ||
| 14 | +import io.swagger.annotations.ApiOperation; | ||
| 15 | +import org.springframework.security.access.prepost.PreAuthorize; | ||
| 16 | +import org.springframework.validation.annotation.Validated; | ||
| 17 | +import org.springframework.web.bind.annotation.*; | ||
| 18 | + | ||
| 19 | +import javax.annotation.Resource; | ||
| 20 | +import javax.validation.Valid; | ||
| 21 | + | ||
| 22 | +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; | ||
| 23 | + | ||
| 24 | +@Api(tags = "管理后台 - 公众号自动回复") | ||
| 25 | +@RestController | ||
| 26 | +@RequestMapping("/mp/auto-reply") | ||
| 27 | +@Validated | ||
| 28 | +public class MpAutoReplyController { | ||
| 29 | + | ||
| 30 | + @Resource | ||
| 31 | + private MpAutoReplyService mpAutoReplyService; | ||
| 32 | + | ||
| 33 | + @GetMapping("/page") | ||
| 34 | + @ApiOperation("获得公众号自动回复分页") | ||
| 35 | + @PreAuthorize("@ss.hasPermission('mp:auto-reply:query')") | ||
| 36 | + public CommonResult<PageResult<MpAutoReplyRespVO>> getAutoReplyPage(@Valid MpMessagePageReqVO pageVO) { | ||
| 37 | + PageResult<MpAutoReplyDO> pageResult = mpAutoReplyService.getAutoReplyPage(pageVO); | ||
| 38 | + return success(MpAutoReplyConvert.INSTANCE.convertPage(pageResult)); | ||
| 39 | + } | ||
| 40 | + | ||
| 41 | + @GetMapping("/get") | ||
| 42 | + @ApiOperation("获得公众号自动回复") | ||
| 43 | + @ApiImplicitParam(name = "id", value = "编号", required = true, example = "1024", dataTypeClass = Long.class) | ||
| 44 | + @PreAuthorize("@ss.hasPermission('mp:auto-reply:query')") | ||
| 45 | + public CommonResult<MpAutoReplyRespVO> getAutoReply(@RequestParam("id") Long id) { | ||
| 46 | + MpAutoReplyDO autoReply = mpAutoReplyService.getAutoReply(id); | ||
| 47 | + return success(MpAutoReplyConvert.INSTANCE.convert(autoReply)); | ||
| 48 | + } | ||
| 49 | + | ||
| 50 | + @PostMapping("/create") | ||
| 51 | + @ApiOperation("创建公众号自动回复") | ||
| 52 | + @PreAuthorize("@ss.hasPermission('mp:auto-reply:create')") | ||
| 53 | + public CommonResult<Long> createAutoReply(@Valid @RequestBody MpAutoReplyCreateReqVO createReqVO) { | ||
| 54 | + return success(mpAutoReplyService.createAutoReply(createReqVO)); | ||
| 55 | + } | ||
| 56 | + | ||
| 57 | + @PutMapping("/update") | ||
| 58 | + @ApiOperation("更新公众号自动回复") | ||
| 59 | + @PreAuthorize("@ss.hasPermission('mp:auto-reply:update')") | ||
| 60 | + public CommonResult<Boolean> updateAutoReply(@Valid @RequestBody MpAutoReplyUpdateReqVO updateReqVO) { | ||
| 61 | + mpAutoReplyService.updateAutoReply(updateReqVO); | ||
| 62 | + return success(true); | ||
| 63 | + } | ||
| 64 | + | ||
| 65 | + @DeleteMapping("/delete") | ||
| 66 | + @ApiOperation("删除公众号自动回复") | ||
| 67 | + @ApiImplicitParam(name = "id", value = "编号", required = true, dataTypeClass = Long.class) | ||
| 68 | + @PreAuthorize("@ss.hasPermission('mp:auto-reply:delete')") | ||
| 69 | + public CommonResult<Boolean> deleteAutoReply(@RequestParam("id") Long id) { | ||
| 70 | + mpAutoReplyService.deleteAutoReply(id); | ||
| 71 | + return success(true); | ||
| 72 | + } | ||
| 73 | + | ||
| 74 | +} |
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/message/MpMessageController.http
0 → 100644
| 1 | +### 请求 /mp/message/page 接口 => 成功 | ||
| 2 | +GET {{baseUrl}}/mp/message/page?accountId=1&pageNo=1&pageSize=10 | ||
| 3 | +Content-Type: application/json | ||
| 4 | +Authorization: Bearer {{token}} | ||
| 5 | +tenant-id: {{adminTenentId}} | ||
| 6 | + | ||
| 7 | +### 请求 /mp/message/send 接口 => 成功(文本) | ||
| 8 | +POST {{baseUrl}}/mp/message/send | ||
| 9 | +Content-Type: application/json | ||
| 10 | +Authorization: Bearer {{token}} | ||
| 11 | +tenant-id: {{adminTenentId}} | ||
| 12 | + | ||
| 13 | +{ | ||
| 14 | + "userId": 3, | ||
| 15 | + "type": "text", | ||
| 16 | + "content": "测试消息" | ||
| 17 | +} | ||
| 18 | + | ||
| 19 | +### 请求 /mp/message/send 接口 => 成功(音乐) | ||
| 20 | +POST {{baseUrl}}/mp/message/send | ||
| 21 | +Content-Type: application/json | ||
| 22 | +Authorization: Bearer {{token}} | ||
| 23 | +tenant-id: {{adminTenentId}} | ||
| 24 | + | ||
| 25 | +{ | ||
| 26 | + "userId": 3, | ||
| 27 | + "type": "music", | ||
| 28 | + "title": "测试音乐标题", | ||
| 29 | + "description": "测试音乐内容", | ||
| 30 | + "musicUrl": "https://www.iocoder.cn/xx.mp3", | ||
| 31 | + "hqMusicUrl": "https://www.iocoder.cn/xx_high.mp3", | ||
| 32 | + "thumbMediaId": "s98Iveeg9vDVFwa9q0u8-zSfdKe3xIzAm7wCrFE4WKGPIo4d9qAhtC-n6qvnyWyH" | ||
| 33 | +} |
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/message/MpMessageController.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.mp.controller.admin.message; | ||
| 2 | + | ||
| 3 | +import cn.iocoder.yudao.framework.common.pojo.CommonResult; | ||
| 4 | +import cn.iocoder.yudao.framework.common.pojo.PageResult; | ||
| 5 | +import cn.iocoder.yudao.module.mp.controller.admin.message.vo.message.MpMessagePageReqVO; | ||
| 6 | +import cn.iocoder.yudao.module.mp.controller.admin.message.vo.message.MpMessageRespVO; | ||
| 7 | +import cn.iocoder.yudao.module.mp.controller.admin.message.vo.message.MpMessageSendReqVO; | ||
| 8 | +import cn.iocoder.yudao.module.mp.convert.message.MpMessageConvert; | ||
| 9 | +import cn.iocoder.yudao.module.mp.dal.dataobject.message.MpMessageDO; | ||
| 10 | +import cn.iocoder.yudao.module.mp.service.message.MpMessageService; | ||
| 11 | +import io.swagger.annotations.Api; | ||
| 12 | +import io.swagger.annotations.ApiOperation; | ||
| 13 | +import org.springframework.security.access.prepost.PreAuthorize; | ||
| 14 | +import org.springframework.validation.annotation.Validated; | ||
| 15 | +import org.springframework.web.bind.annotation.*; | ||
| 16 | + | ||
| 17 | +import javax.annotation.Resource; | ||
| 18 | +import javax.validation.Valid; | ||
| 19 | + | ||
| 20 | +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; | ||
| 21 | + | ||
| 22 | +@Api(tags = "管理后台 - 公众号消息") | ||
| 23 | +@RestController | ||
| 24 | +@RequestMapping("/mp/message") | ||
| 25 | +@Validated | ||
| 26 | +public class MpMessageController { | ||
| 27 | + | ||
| 28 | + @Resource | ||
| 29 | + private MpMessageService mpMessageService; | ||
| 30 | + | ||
| 31 | + @GetMapping("/page") | ||
| 32 | + @ApiOperation("获得公众号消息分页") | ||
| 33 | + @PreAuthorize("@ss.hasPermission('mp:message:query')") | ||
| 34 | + public CommonResult<PageResult<MpMessageRespVO>> getMessagePage(@Valid MpMessagePageReqVO pageVO) { | ||
| 35 | + PageResult<MpMessageDO> pageResult = mpMessageService.getMessagePage(pageVO); | ||
| 36 | + return success(MpMessageConvert.INSTANCE.convertPage(pageResult)); | ||
| 37 | + } | ||
| 38 | + | ||
| 39 | + @PostMapping("/send") | ||
| 40 | + @ApiOperation("给粉丝发送消息") | ||
| 41 | + @PreAuthorize("@ss.hasPermission('mp:message:send')") | ||
| 42 | + public CommonResult<MpMessageRespVO> sendMessage(@Valid @RequestBody MpMessageSendReqVO reqVO) { | ||
| 43 | + MpMessageDO message = mpMessageService.sendKefuMessage(reqVO); | ||
| 44 | + return success(MpMessageConvert.INSTANCE.convert(message)); | ||
| 45 | + } | ||
| 46 | + | ||
| 47 | +} |
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/message/vo/autoreply/MpAutoReplyBaseVO.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.mp.controller.admin.message.vo.autoreply; | ||
| 2 | + | ||
| 3 | +import cn.hutool.core.util.ObjectUtil; | ||
| 4 | +import cn.iocoder.yudao.module.mp.dal.dataobject.message.MpMessageDO; | ||
| 5 | +import cn.iocoder.yudao.module.mp.enums.message.MpAutoReplyTypeEnum; | ||
| 6 | +import cn.iocoder.yudao.module.mp.framework.mp.core.util.MpUtils.*; | ||
| 7 | +import io.swagger.annotations.ApiModelProperty; | ||
| 8 | +import lombok.Data; | ||
| 9 | +import me.chanjar.weixin.common.api.WxConsts; | ||
| 10 | +import org.hibernate.validator.constraints.URL; | ||
| 11 | + | ||
| 12 | +import javax.validation.Valid; | ||
| 13 | +import javax.validation.constraints.AssertTrue; | ||
| 14 | +import javax.validation.constraints.NotEmpty; | ||
| 15 | +import javax.validation.constraints.NotNull; | ||
| 16 | +import java.util.List; | ||
| 17 | + | ||
| 18 | +/** | ||
| 19 | + * 公众号自动回复 Base VO,提供给添加、修改、详细的子 VO 使用 | ||
| 20 | + * 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成 | ||
| 21 | + */ | ||
| 22 | +@Data | ||
| 23 | +public class MpAutoReplyBaseVO { | ||
| 24 | + | ||
| 25 | + @ApiModelProperty(value = "回复类型", example = "1", notes = "参见 MpAutoReplyTypeEnum 枚举") | ||
| 26 | + @NotNull(message = "回复类型不能为空") | ||
| 27 | + private Integer type; | ||
| 28 | + | ||
| 29 | + // ==================== 请求消息 ==================== | ||
| 30 | + | ||
| 31 | + @ApiModelProperty(value = "请求的关键字", example = "关键字", notes = "当 type 为 MpAutoReplyTypeEnum#KEYWORD 时,必填") | ||
| 32 | + private String requestKeyword; | ||
| 33 | + @ApiModelProperty(value = "请求的匹配方式", example = "1", notes = "当 type 为 MpAutoReplyTypeEnum#KEYWORD 时,必填") | ||
| 34 | + private Integer requestMatch; | ||
| 35 | + | ||
| 36 | + @ApiModelProperty(value = "请求的消息类型", example = "text", notes = "当 type 为 MpAutoReplyTypeEnum#MESSAGE 时,必填") | ||
| 37 | + private String requestMessageType; | ||
| 38 | + | ||
| 39 | + // ==================== 响应消息 ==================== | ||
| 40 | + | ||
| 41 | + @ApiModelProperty(value = "回复的消息类型", example = "text", | ||
| 42 | + notes = "枚举 TEXT、IMAGE、VOICE、VIDEO、NEWS、MUSIC") | ||
| 43 | + @NotEmpty(message = "回复的消息类型不能为空") | ||
| 44 | + private String responseMessageType; | ||
| 45 | + | ||
| 46 | + @ApiModelProperty(value = "回复的消息内容", example = "欢迎关注") | ||
| 47 | + @NotEmpty(message = "回复的消息内容不能为空", groups = TextMessageGroup.class) | ||
| 48 | + private String responseContent; | ||
| 49 | + | ||
| 50 | + @ApiModelProperty(value = "回复的媒体 id", example = "123456") | ||
| 51 | + @NotEmpty(message = "回复的消息 mediaId 不能为空", | ||
| 52 | + groups = {ImageMessageGroup.class, VoiceMessageGroup.class, VideoMessageGroup.class}) | ||
| 53 | + private String responseMediaId; | ||
| 54 | + @ApiModelProperty(value = "回复的媒体 URL", example = "https://www.iocoder.cn/xxx.jpg") | ||
| 55 | + @NotEmpty(message = "回复的消息 mediaId 不能为空", | ||
| 56 | + groups = {ImageMessageGroup.class, VoiceMessageGroup.class, VideoMessageGroup.class}) | ||
| 57 | + private String responseMediaUrl; | ||
| 58 | + | ||
| 59 | + @ApiModelProperty(value = "缩略图的媒体 id", example = "123456") | ||
| 60 | + @NotEmpty(message = "回复的消息 thumbMediaId 不能为空", groups = {MusicMessageGroup.class}) | ||
| 61 | + private String responseThumbMediaId; | ||
| 62 | + @ApiModelProperty(value = "缩略图的媒体 URL",example = "https://www.iocoder.cn/xxx.jpg") | ||
| 63 | + @NotEmpty(message = "回复的消息 thumbMedia 地址不能为空", groups = {MusicMessageGroup.class}) | ||
| 64 | + private String responseThumbMediaUrl; | ||
| 65 | + | ||
| 66 | + @ApiModelProperty(value = "回复的标题", example = "视频标题") | ||
| 67 | + @NotEmpty(message = "回复的消息标题不能为空", groups = VideoMessageGroup.class) | ||
| 68 | + private String responseTitle; | ||
| 69 | + @ApiModelProperty(value = "回复的描述", example = "视频描述") | ||
| 70 | + @NotEmpty(message = "消息描述不能为空", groups = VideoMessageGroup.class) | ||
| 71 | + private String responseDescription; | ||
| 72 | + | ||
| 73 | + /** | ||
| 74 | + * 回复的图文消息 | ||
| 75 | + * | ||
| 76 | + * 消息类型为 {@link WxConsts.XmlMsgType} 的 NEWS | ||
| 77 | + */ | ||
| 78 | + @NotNull(message = "回复的图文消息不能为空", groups = {NewsMessageGroup.class, ViewLimitedButtonGroup.class}) | ||
| 79 | + @Valid | ||
| 80 | + private List<MpMessageDO.Article> responseArticles; | ||
| 81 | + | ||
| 82 | + @ApiModelProperty(value = "回复的音乐链接", example = "https://www.iocoder.cn/xxx.mp3") | ||
| 83 | + @NotEmpty(message = "回复的音乐链接不能为空", groups = MusicMessageGroup.class) | ||
| 84 | + @URL(message = "回复的高质量音乐链接格式不正确", groups = MusicMessageGroup.class) | ||
| 85 | + private String responseMusicUrl; | ||
| 86 | + @ApiModelProperty(value = "高质量音乐链接", example = "https://www.iocoder.cn/xxx.mp3") | ||
| 87 | + @NotEmpty(message = "回复的高质量音乐链接不能为空", groups = MusicMessageGroup.class) | ||
| 88 | + @URL(message = "回复的高质量音乐链接格式不正确", groups = MusicMessageGroup.class) | ||
| 89 | + private String responseHqMusicUrl; | ||
| 90 | + | ||
| 91 | + @AssertTrue(message = "请求的关键字不能为空") | ||
| 92 | + public boolean isRequestKeywordValid() { | ||
| 93 | + return ObjectUtil.notEqual(type, MpAutoReplyTypeEnum.KEYWORD) | ||
| 94 | + || requestKeyword != null; | ||
| 95 | + } | ||
| 96 | + | ||
| 97 | + @AssertTrue(message = "请求的关键字的匹配不能为空") | ||
| 98 | + public boolean isRequestMatchValid() { | ||
| 99 | + return ObjectUtil.notEqual(type, MpAutoReplyTypeEnum.KEYWORD) | ||
| 100 | + || requestMatch != null; | ||
| 101 | + } | ||
| 102 | + | ||
| 103 | + @AssertTrue(message = "请求的消息类型不能为空") | ||
| 104 | + public boolean isRequestMessageTypeValid() { | ||
| 105 | + return ObjectUtil.notEqual(type, MpAutoReplyTypeEnum.MESSAGE) | ||
| 106 | + || requestMessageType != null; | ||
| 107 | + } | ||
| 108 | + | ||
| 109 | + | ||
| 110 | +} |
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/message/vo/autoreply/MpAutoReplyCreateReqVO.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.mp.controller.admin.message.vo.autoreply; | ||
| 2 | + | ||
| 3 | +import io.swagger.annotations.ApiModel; | ||
| 4 | +import io.swagger.annotations.ApiModelProperty; | ||
| 5 | +import lombok.Data; | ||
| 6 | +import lombok.EqualsAndHashCode; | ||
| 7 | +import lombok.ToString; | ||
| 8 | + | ||
| 9 | +import javax.validation.constraints.NotNull; | ||
| 10 | + | ||
| 11 | +@ApiModel("管理后台 - 公众号自动回复的创建 Request VO") | ||
| 12 | +@Data | ||
| 13 | +@EqualsAndHashCode(callSuper = true) | ||
| 14 | +@ToString(callSuper = true) | ||
| 15 | +public class MpAutoReplyCreateReqVO extends MpAutoReplyBaseVO { | ||
| 16 | + | ||
| 17 | + @ApiModelProperty(value = "公众号账号的编号", required = true, example = "1024") | ||
| 18 | + @NotNull(message = "公众号账号的编号不能为空") | ||
| 19 | + private Long accountId; | ||
| 20 | + | ||
| 21 | +} |
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/message/vo/autoreply/MpAutoReplyPageReqVO.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.mp.controller.admin.message.vo.autoreply; | ||
| 2 | + | ||
| 3 | +import cn.iocoder.yudao.framework.common.pojo.PageParam; | ||
| 4 | +import io.swagger.annotations.ApiModel; | ||
| 5 | +import io.swagger.annotations.ApiModelProperty; | ||
| 6 | +import lombok.Data; | ||
| 7 | +import lombok.EqualsAndHashCode; | ||
| 8 | +import lombok.ToString; | ||
| 9 | + | ||
| 10 | +import javax.validation.constraints.NotNull; | ||
| 11 | + | ||
| 12 | +@ApiModel("管理后台 - 公众号自动回复的分页 Request VO") | ||
| 13 | +@Data | ||
| 14 | +@EqualsAndHashCode(callSuper = true) | ||
| 15 | +@ToString(callSuper = true) | ||
| 16 | +public class MpAutoReplyPageReqVO extends PageParam { | ||
| 17 | + | ||
| 18 | + @ApiModelProperty(value = "公众号账号的编号", required = true, example = "1") | ||
| 19 | + @NotNull(message = "公众号账号的编号不能为空") | ||
| 20 | + private Long accountId; | ||
| 21 | + | ||
| 22 | +} |
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/message/vo/autoreply/MpAutoReplyRespVO.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.mp.controller.admin.message.vo.autoreply; | ||
| 2 | + | ||
| 3 | +import io.swagger.annotations.ApiModel; | ||
| 4 | +import io.swagger.annotations.ApiModelProperty; | ||
| 5 | +import lombok.Data; | ||
| 6 | +import lombok.EqualsAndHashCode; | ||
| 7 | +import lombok.ToString; | ||
| 8 | + | ||
| 9 | +import java.util.Date; | ||
| 10 | + | ||
| 11 | +@ApiModel("管理后台 - 公众号自动回复 Response VO") | ||
| 12 | +@Data | ||
| 13 | +@EqualsAndHashCode(callSuper = true) | ||
| 14 | +@ToString(callSuper = true) | ||
| 15 | +public class MpAutoReplyRespVO extends MpAutoReplyBaseVO { | ||
| 16 | + | ||
| 17 | + @ApiModelProperty(value = "主键", required = true, example = "1024") | ||
| 18 | + private Long id; | ||
| 19 | + | ||
| 20 | + @ApiModelProperty(value = "公众号账号的编号", required = true, example = "1024") | ||
| 21 | + private Long accountId; | ||
| 22 | + @ApiModelProperty(value = "公众号 appId", required = true, example = "wx1234567890") | ||
| 23 | + private String appId; | ||
| 24 | + | ||
| 25 | + @ApiModelProperty(value = "创建时间", required = true) | ||
| 26 | + private Date createTime; | ||
| 27 | + | ||
| 28 | +} |
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/message/vo/autoreply/MpAutoReplyUpdateReqVO.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.mp.controller.admin.message.vo.autoreply; | ||
| 2 | + | ||
| 3 | +import io.swagger.annotations.ApiModel; | ||
| 4 | +import io.swagger.annotations.ApiModelProperty; | ||
| 5 | +import lombok.Data; | ||
| 6 | +import lombok.EqualsAndHashCode; | ||
| 7 | +import lombok.ToString; | ||
| 8 | + | ||
| 9 | +import javax.validation.constraints.NotNull; | ||
| 10 | + | ||
| 11 | +@ApiModel("管理后台 - 公众号自动回复的更新 Request VO") | ||
| 12 | +@Data | ||
| 13 | +@EqualsAndHashCode(callSuper = true) | ||
| 14 | +@ToString(callSuper = true) | ||
| 15 | +public class MpAutoReplyUpdateReqVO extends MpAutoReplyBaseVO { | ||
| 16 | + | ||
| 17 | + @ApiModelProperty(value = "主键", required = true, example = "1024") | ||
| 18 | + @NotNull(message = "主键不能为空") | ||
| 19 | + private Long id; | ||
| 20 | + | ||
| 21 | +} |
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/message/vo/message/MpMessagePageReqVO.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.mp.controller.admin.message.vo.message; | ||
| 2 | + | ||
| 3 | +import lombok.*; | ||
| 4 | + | ||
| 5 | +import io.swagger.annotations.*; | ||
| 6 | +import cn.iocoder.yudao.framework.common.pojo.PageParam; | ||
| 7 | +import org.springframework.format.annotation.DateTimeFormat; | ||
| 8 | + | ||
| 9 | +import javax.validation.constraints.NotNull; | ||
| 10 | +import java.time.LocalDateTime; | ||
| 11 | + | ||
| 12 | +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; | ||
| 13 | + | ||
| 14 | +@ApiModel("管理后台 - 公众号消息分页 Request VO") | ||
| 15 | +@Data | ||
| 16 | +@EqualsAndHashCode(callSuper = true) | ||
| 17 | +@ToString(callSuper = true) | ||
| 18 | +public class MpMessagePageReqVO extends PageParam { | ||
| 19 | + | ||
| 20 | + @ApiModelProperty(value = "公众号账号的编号", required = true, example = "1024") | ||
| 21 | + @NotNull(message = "公众号账号的编号不能为空") | ||
| 22 | + private Long accountId; | ||
| 23 | + | ||
| 24 | + @ApiModelProperty(value = "消息类型", example = "text", notes = "参见 WxConsts.XmlMsgType 枚举") | ||
| 25 | + private String type; | ||
| 26 | + | ||
| 27 | + @ApiModelProperty(value = "公众号粉丝标识", example = "o6_bmjrPTlm6_2sgVt7hMZOPfL2M") | ||
| 28 | + private String openid; | ||
| 29 | + | ||
| 30 | + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) | ||
| 31 | + @ApiModelProperty(value = "创建时间") | ||
| 32 | + private LocalDateTime[] createTime; | ||
| 33 | + | ||
| 34 | +} |
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/message/vo/message/MpMessageRespVO.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.mp.controller.admin.message.vo.message; | ||
| 2 | + | ||
| 3 | +import cn.iocoder.yudao.module.mp.dal.dataobject.message.MpMessageDO; | ||
| 4 | +import com.baomidou.mybatisplus.annotation.TableField; | ||
| 5 | +import io.swagger.annotations.ApiModel; | ||
| 6 | +import io.swagger.annotations.ApiModelProperty; | ||
| 7 | +import lombok.Data; | ||
| 8 | +import me.chanjar.weixin.common.api.WxConsts; | ||
| 9 | + | ||
| 10 | +import java.util.Date; | ||
| 11 | +import java.util.List; | ||
| 12 | + | ||
| 13 | +@ApiModel("管理后台 - 公众号消息 Response VO") | ||
| 14 | +@Data | ||
| 15 | +public class MpMessageRespVO { | ||
| 16 | + | ||
| 17 | + @ApiModelProperty(value = "主键", required = true, example = "1024") | ||
| 18 | + private Integer id; | ||
| 19 | + | ||
| 20 | + @ApiModelProperty(value = "微信公众号消息 id", required = true, example = "23953173569869169") | ||
| 21 | + private Long msgId; | ||
| 22 | + | ||
| 23 | + @ApiModelProperty(value = "公众号账号的编号", required = true, example = "1") | ||
| 24 | + private Long accountId; | ||
| 25 | + @ApiModelProperty(value = "公众号账号的 appid", required = true, example = "wx1234567890") | ||
| 26 | + private String appId; | ||
| 27 | + | ||
| 28 | + @ApiModelProperty(value = "公众号粉丝编号", required = true, example = "2048") | ||
| 29 | + private Long userId; | ||
| 30 | + @ApiModelProperty(value = "公众号粉丝标志", required = true, example = "o6_bmjrPTlm6_2sgVt7hMZOPfL2M") | ||
| 31 | + private String openid; | ||
| 32 | + | ||
| 33 | + @ApiModelProperty(value = "消息类型", required = true, example = "text", notes = "参见 WxConsts.XmlMsgType 枚举") | ||
| 34 | + private String type; | ||
| 35 | + @ApiModelProperty(value = "消息来源", required = true, example = "1", notes = "参见 MpMessageSendFromEnum 枚举") | ||
| 36 | + private Integer sendFrom; | ||
| 37 | + | ||
| 38 | + // ========= 普通消息内容 https://developers.weixin.qq.com/doc/offiaccount/Message_Management/Receiving_standard_messages.html | ||
| 39 | + | ||
| 40 | + @ApiModelProperty(value = "消息内容", example = "你好呀", notes = "消息类型为 text 时,才有值") | ||
| 41 | + private String content; | ||
| 42 | + | ||
| 43 | + @ApiModelProperty(value = "媒体素材的编号", example = "1234567890", notes = "消息类型为 image、voice、video 时,才有值") | ||
| 44 | + private String mediaId; | ||
| 45 | + @ApiModelProperty(value = "媒体文件的 URL", example = "https://www.iocoder.cn/xxx.png", | ||
| 46 | + notes = "消息类型为 image、voice、video 时,才有值") | ||
| 47 | + private String mediaUrl; | ||
| 48 | + | ||
| 49 | + @ApiModelProperty(value = "语音识别后文本", example = "语音识别后文本", notes = "消息类型为 voice 时,才有值") | ||
| 50 | + private String recognition; | ||
| 51 | + @ApiModelProperty(value = "语音格式", example = "amr", notes = "消息类型为 voice 时,才有值") | ||
| 52 | + private String format; | ||
| 53 | + | ||
| 54 | + @ApiModelProperty(value = "标题", example = "我是标题", notes = "消息类型为 video、music、link 时,才有值") | ||
| 55 | + private String title; | ||
| 56 | + | ||
| 57 | + @ApiModelProperty(value = "描述", example = "我是描述", notes = "消息类型为 video、music 时,才有值") | ||
| 58 | + private String description; | ||
| 59 | + | ||
| 60 | + @ApiModelProperty(value = "缩略图的媒体 id", example = "1234567890", notes = "消息类型为 video、music 时,才有值") | ||
| 61 | + private String thumbMediaId; | ||
| 62 | + @ApiModelProperty(value = "缩略图的媒体 URL", example = "https://www.iocoder.cn/xxx.png", | ||
| 63 | + notes = "消息类型为 video、music 时,才有值") | ||
| 64 | + private String thumbMediaUrl; | ||
| 65 | + | ||
| 66 | + @ApiModelProperty(value = "点击图文消息跳转链接", example = "https://www.iocoder.cn", notes = "消息类型为 link 时,才有值") | ||
| 67 | + private String url; | ||
| 68 | + | ||
| 69 | + @ApiModelProperty(value = "地理位置维度", example = "23.137466", notes = "消息类型为 location 时,才有值") | ||
| 70 | + private Double locationX; | ||
| 71 | + | ||
| 72 | + @ApiModelProperty(value = "地理位置经度", example = "113.352425", notes = "消息类型为 location 时,才有值") | ||
| 73 | + private Double locationY; | ||
| 74 | + | ||
| 75 | + @ApiModelProperty(value = "地图缩放大小", example = "13", notes = "消息类型为 location 时,才有值") | ||
| 76 | + private Double scale; | ||
| 77 | + | ||
| 78 | + @ApiModelProperty(value = "详细地址", example = "杨浦区黄兴路 221-4 号临", notes = "消息类型为 location 时,才有值") | ||
| 79 | + private String label; | ||
| 80 | + | ||
| 81 | + /** | ||
| 82 | + * 图文消息数组 | ||
| 83 | + * | ||
| 84 | + * 消息类型为 {@link WxConsts.XmlMsgType} 的 NEWS | ||
| 85 | + */ | ||
| 86 | + @TableField(typeHandler = MpMessageDO.ArticleTypeHandler.class) | ||
| 87 | + private List<MpMessageDO.Article> articles; | ||
| 88 | + | ||
| 89 | + @ApiModelProperty(value = "音乐链接", example = "https://www.iocoder.cn/xxx.mp3", notes = "消息类型为 music 时,才有值") | ||
| 90 | + private String musicUrl; | ||
| 91 | + @ApiModelProperty(value = "高质量音乐链接", example = "https://www.iocoder.cn/xxx.mp3", notes = "消息类型为 music 时,才有值") | ||
| 92 | + private String hqMusicUrl; | ||
| 93 | + | ||
| 94 | + // ========= 事件推送 https://developers.weixin.qq.com/doc/offiaccount/Message_Management/Receiving_event_pushes.html | ||
| 95 | + | ||
| 96 | + @ApiModelProperty(value = "事件类型", example = "subscribe", notes = "参见 WxConsts.EventType 枚举") | ||
| 97 | + private String event; | ||
| 98 | + @ApiModelProperty(value = "事件 Key", example = "qrscene_123456", notes = "参见 WxConsts.EventType 枚举") | ||
| 99 | + private String eventKey; | ||
| 100 | + | ||
| 101 | + @ApiModelProperty(value = "创建时间", required = true) | ||
| 102 | + private Date createTime; | ||
| 103 | + | ||
| 104 | +} |
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/message/vo/message/MpMessageSendReqVO.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.mp.controller.admin.message.vo.message; | ||
| 2 | + | ||
| 3 | +import cn.iocoder.yudao.module.mp.dal.dataobject.message.MpMessageDO; | ||
| 4 | +import cn.iocoder.yudao.module.mp.framework.mp.core.util.MpUtils.*; | ||
| 5 | +import io.swagger.annotations.ApiModel; | ||
| 6 | +import io.swagger.annotations.ApiModelProperty; | ||
| 7 | +import lombok.Data; | ||
| 8 | + | ||
| 9 | +import javax.validation.Valid; | ||
| 10 | +import javax.validation.constraints.NotEmpty; | ||
| 11 | +import javax.validation.constraints.NotNull; | ||
| 12 | +import java.util.List; | ||
| 13 | + | ||
| 14 | +@ApiModel("管理后台 - 公众号消息发送 Request VO") | ||
| 15 | +@Data | ||
| 16 | +public class MpMessageSendReqVO { | ||
| 17 | + | ||
| 18 | + @ApiModelProperty(value = "公众号粉丝的编号", required = true, example = "1024") | ||
| 19 | + @NotNull(message = "公众号粉丝的编号不能为空") | ||
| 20 | + private Long userId; | ||
| 21 | + | ||
| 22 | + // ========== 消息内容 ========== | ||
| 23 | + | ||
| 24 | + @ApiModelProperty(value = "消息类型", required = true, example = "text", notes = "TEXT/IMAGE/VOICE/VIDEO/NEWS") | ||
| 25 | + @NotEmpty(message = "消息类型不能为空") | ||
| 26 | + public String type; | ||
| 27 | + | ||
| 28 | + @ApiModelProperty(value = "消息内容", required = true, example = "你好呀") | ||
| 29 | + @NotEmpty(message = "消息内容不能为空", groups = TextMessageGroup.class) | ||
| 30 | + private String content; | ||
| 31 | + | ||
| 32 | + @ApiModelProperty(value = "媒体 ID", required = true, example = "qqc_2Fot30Jse-HDoZmo5RrUDijz2nGUkP") | ||
| 33 | + @NotEmpty(message = "消息内容不能为空", groups = {ImageMessageGroup.class, VoiceMessageGroup.class, VideoMessageGroup.class}) | ||
| 34 | + private String mediaId; | ||
| 35 | + | ||
| 36 | + @ApiModelProperty(value = "标题", required = true, example = "没有标题") | ||
| 37 | + @NotEmpty(message = "消息内容不能为空", groups = VideoMessageGroup.class) | ||
| 38 | + private String title; | ||
| 39 | + | ||
| 40 | + @ApiModelProperty(value = "描述", required = true, example = "你猜") | ||
| 41 | + @NotEmpty(message = "消息描述不能为空", groups = VideoMessageGroup.class) | ||
| 42 | + private String description; | ||
| 43 | + | ||
| 44 | + @ApiModelProperty(value = "缩略图的媒体 id", required = true, example = "qqc_2Fot30Jse-HDoZmo5RrUDijz2nGUkP") | ||
| 45 | + @NotEmpty(message = "缩略图的媒体 id 不能为空", groups = MusicMessageGroup.class) | ||
| 46 | + private String thumbMediaId; | ||
| 47 | + | ||
| 48 | + @ApiModelProperty(value = "图文消息", required = true) | ||
| 49 | + @Valid | ||
| 50 | + @NotNull(message = "图文消息不能为空", groups = NewsMessageGroup.class) | ||
| 51 | + private List<MpMessageDO.Article> articles; | ||
| 52 | + | ||
| 53 | + @ApiModelProperty(value = "音乐链接", example = "https://www.iocoder.cn/music.mp3", notes = "消息类型为 MUSIC 时") | ||
| 54 | + private String musicUrl; | ||
| 55 | + | ||
| 56 | + @ApiModelProperty(value = "高质量音乐链接", example = "https://www.iocoder.cn/music.mp3", notes = "消息类型为 MUSIC 时") | ||
| 57 | + private String hqMusicUrl; | ||
| 58 | + | ||
| 59 | +} |
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/news/MpDraftController.http
0 → 100644
| 1 | +### 请求 /mp/draft/page 接口 => 成功 | ||
| 2 | +GET {{baseUrl}}/mp/draft/page?accountId=1&pageNo=1&pageSize=10 | ||
| 3 | +Content-Type: application/json | ||
| 4 | +Authorization: Bearer {{token}} | ||
| 5 | +tenant-id: {{adminTenentId}} | ||
| 6 | + | ||
| 7 | +### 请求 /mp/draft/create 接口 => 成功 | ||
| 8 | +POST {{baseUrl}}/mp/draft/create?accountId=1 | ||
| 9 | +Content-Type: application/json | ||
| 10 | +Authorization: Bearer {{token}} | ||
| 11 | +tenant-id: {{adminTenentId}} | ||
| 12 | + | ||
| 13 | +{ | ||
| 14 | + "articles": [ | ||
| 15 | + { | ||
| 16 | + "title": "我是标题", | ||
| 17 | + "author": "我是作者", | ||
| 18 | + "digest": "我是摘要", | ||
| 19 | + "content": "我是内容", | ||
| 20 | + "contentSourceUrl": "https://www.iocoder.cn", | ||
| 21 | + "thumbMediaId": "r6ryvl6LrxBU0miaST4Y-pIcmK-zAAId-9TGgy-DrSLhjVuWbuT3ZBjk9K1yQ0Dn" | ||
| 22 | + }, | ||
| 23 | + { | ||
| 24 | + "title": "我是标题 2", | ||
| 25 | + "author": "我是作者 2", | ||
| 26 | + "digest": "我是摘要 2", | ||
| 27 | + "content": "我是内容 2", | ||
| 28 | + "contentSourceUrl": "https://www.iocoder.cn", | ||
| 29 | + "thumbMediaId": "r6ryvl6LrxBU0miaST4Y-pIcmK-zAAId-9TGgy-DrSLhjVuWbuT3ZBjk9K1yQ0Dn" | ||
| 30 | + } | ||
| 31 | + ] | ||
| 32 | +} | ||
| 33 | + | ||
| 34 | +### 请求 /mp/draft/create 接口 => 成功 | ||
| 35 | +PUT {{baseUrl}}/mp/draft/update?accountId=1&mediaId=r6ryvl6LrxBU0miaST4Y-q-G9pdsmZw0OYG4FzHQkKfpLfEwIH51wy2bxisx8PvW | ||
| 36 | +Content-Type: application/json | ||
| 37 | +Authorization: Bearer {{token}} | ||
| 38 | +tenant-id: {{adminTenentId}} | ||
| 39 | + | ||
| 40 | +[{ | ||
| 41 | + "title": "我是标题(OOO)", | ||
| 42 | + "author": "我是作者", | ||
| 43 | + "digest": "我是摘要", | ||
| 44 | + "content": "我是内容", | ||
| 45 | + "contentSourceUrl": "https://www.iocoder.cn", | ||
| 46 | + "thumbMediaId": "r6ryvl6LrxBU0miaST4Y-pIcmK-zAAId-9TGgy-DrSLhjVuWbuT3ZBjk9K1yQ0Dn" | ||
| 47 | +}, { | ||
| 48 | + "title": "我是标题(XXX)", | ||
| 49 | + "author": "我是作者", | ||
| 50 | + "digest": "我是摘要", | ||
| 51 | + "content": "我是内容", | ||
| 52 | + "contentSourceUrl": "https://www.iocoder.cn", | ||
| 53 | + "thumbMediaId": "r6ryvl6LrxBU0miaST4Y-pIcmK-zAAId-9TGgy-DrSLhjVuWbuT3ZBjk9K1yQ0Dn" | ||
| 54 | +}] |
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/news/MpDraftController.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.mp.controller.admin.news; | ||
| 2 | + | ||
| 3 | +import cn.hutool.core.collection.CollUtil; | ||
| 4 | +import cn.iocoder.yudao.framework.common.pojo.CommonResult; | ||
| 5 | +import cn.iocoder.yudao.framework.common.pojo.PageResult; | ||
| 6 | +import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; | ||
| 7 | +import cn.iocoder.yudao.framework.common.util.object.PageUtils; | ||
| 8 | +import cn.iocoder.yudao.module.mp.controller.admin.news.vo.MpDraftPageReqVO; | ||
| 9 | +import cn.iocoder.yudao.module.mp.dal.dataobject.material.MpMaterialDO; | ||
| 10 | +import cn.iocoder.yudao.module.mp.framework.mp.core.MpServiceFactory; | ||
| 11 | +import cn.iocoder.yudao.module.mp.service.material.MpMaterialService; | ||
| 12 | +import io.swagger.annotations.Api; | ||
| 13 | +import io.swagger.annotations.ApiImplicitParam; | ||
| 14 | +import io.swagger.annotations.ApiImplicitParams; | ||
| 15 | +import io.swagger.annotations.ApiOperation; | ||
| 16 | +import me.chanjar.weixin.common.error.WxErrorException; | ||
| 17 | +import me.chanjar.weixin.mp.api.WxMpService; | ||
| 18 | +import me.chanjar.weixin.mp.bean.draft.*; | ||
| 19 | +import org.springframework.security.access.prepost.PreAuthorize; | ||
| 20 | +import org.springframework.validation.annotation.Validated; | ||
| 21 | +import org.springframework.web.bind.annotation.*; | ||
| 22 | + | ||
| 23 | +import javax.annotation.Resource; | ||
| 24 | +import java.util.HashSet; | ||
| 25 | +import java.util.List; | ||
| 26 | +import java.util.Map; | ||
| 27 | +import java.util.Set; | ||
| 28 | + | ||
| 29 | +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; | ||
| 30 | +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; | ||
| 31 | +import static cn.iocoder.yudao.framework.common.util.collection.MapUtils.findAndThen; | ||
| 32 | +import static cn.iocoder.yudao.module.mp.enums.ErrorCodeConstants.*; | ||
| 33 | + | ||
| 34 | +@Api(tags = "管理后台 - 公众号草稿") | ||
| 35 | +@RestController | ||
| 36 | +@RequestMapping("/mp/draft") | ||
| 37 | +@Validated | ||
| 38 | +public class MpDraftController { | ||
| 39 | + | ||
| 40 | + @Resource | ||
| 41 | + private MpServiceFactory mpServiceFactory; | ||
| 42 | + | ||
| 43 | + @Resource | ||
| 44 | + private MpMaterialService mpMaterialService; | ||
| 45 | + | ||
| 46 | + @GetMapping("/page") | ||
| 47 | + @ApiOperation("获得草稿分页") | ||
| 48 | + @PreAuthorize("@ss.hasPermission('mp:draft:query')") | ||
| 49 | + public CommonResult<PageResult<WxMpDraftItem>> getDraftPage(MpDraftPageReqVO reqVO) { | ||
| 50 | + // 从公众号查询草稿箱 | ||
| 51 | + WxMpService mpService = mpServiceFactory.getRequiredMpService(reqVO.getAccountId()); | ||
| 52 | + WxMpDraftList draftList; | ||
| 53 | + try { | ||
| 54 | + draftList = mpService.getDraftService().listDraft(PageUtils.getStart(reqVO), reqVO.getPageSize()); | ||
| 55 | + } catch (WxErrorException e) { | ||
| 56 | + throw exception(DRAFT_LIST_FAIL, e.getError().getErrorMsg()); | ||
| 57 | + } | ||
| 58 | + // 查询对应的图片地址。目的:解决公众号的图片链接无法在我们后台展示 | ||
| 59 | + setDraftThumbUrl(draftList.getItems()); | ||
| 60 | + | ||
| 61 | + // 返回分页 | ||
| 62 | + return success(new PageResult<>(draftList.getItems(), draftList.getTotalCount().longValue())); | ||
| 63 | + } | ||
| 64 | + | ||
| 65 | + private void setDraftThumbUrl(List<WxMpDraftItem> items) { | ||
| 66 | + // 1.1 获得 mediaId 数组 | ||
| 67 | + Set<String> mediaIds = new HashSet<>(); | ||
| 68 | + items.forEach(item -> item.getContent().getNewsItem().forEach(newsItem -> mediaIds.add(newsItem.getThumbMediaId()))); | ||
| 69 | + if (CollUtil.isEmpty(mediaIds)) { | ||
| 70 | + return; | ||
| 71 | + } | ||
| 72 | + // 1.2 批量查询对应的 Media 素材 | ||
| 73 | + Map<String, MpMaterialDO> materials = CollectionUtils.convertMap(mpMaterialService.getMaterialListByMediaId(mediaIds), | ||
| 74 | + MpMaterialDO::getMediaId); | ||
| 75 | + | ||
| 76 | + // 2. 设置回 WxMpDraftItem 记录 | ||
| 77 | + items.forEach(item -> item.getContent().getNewsItem().forEach(newsItem -> | ||
| 78 | + findAndThen(materials, newsItem.getThumbMediaId(), material -> newsItem.setThumbUrl(material.getUrl())))); | ||
| 79 | + } | ||
| 80 | + | ||
| 81 | + @PostMapping("/create") | ||
| 82 | + @ApiOperation("创建草稿") | ||
| 83 | + @ApiImplicitParam(name = "accountId", value = "公众号账号的编号", required = true, | ||
| 84 | + example = "1024", dataTypeClass = Long.class) | ||
| 85 | + @PreAuthorize("@ss.hasPermission('mp:draft:create')") | ||
| 86 | + public CommonResult<String> deleteDraft(@RequestParam("accountId") Long accountId, | ||
| 87 | + @RequestBody WxMpAddDraft draft) { | ||
| 88 | + WxMpService mpService = mpServiceFactory.getRequiredMpService(accountId); | ||
| 89 | + try { | ||
| 90 | + String mediaId = mpService.getDraftService().addDraft(draft); | ||
| 91 | + return success(mediaId); | ||
| 92 | + } catch (WxErrorException e) { | ||
| 93 | + throw exception(DRAFT_CREATE_FAIL, e.getError().getErrorMsg()); | ||
| 94 | + } | ||
| 95 | + } | ||
| 96 | + | ||
| 97 | + @PutMapping("/update") | ||
| 98 | + @ApiOperation("更新草稿") | ||
| 99 | + @ApiImplicitParams({ | ||
| 100 | + @ApiImplicitParam(name = "accountId", value = "公众号账号的编号", required = true, | ||
| 101 | + example = "1024", dataTypeClass = Long.class), | ||
| 102 | + @ApiImplicitParam(name = "mediaId", value = "草稿素材的编号", required = true, | ||
| 103 | + example = "xxx", dataTypeClass = String.class), | ||
| 104 | + }) | ||
| 105 | + @PreAuthorize("@ss.hasPermission('mp:draft:update')") | ||
| 106 | + public CommonResult<Boolean> deleteDraft(@RequestParam("accountId") Long accountId, | ||
| 107 | + @RequestParam("mediaId") String mediaId, | ||
| 108 | + @RequestBody List<WxMpDraftArticles> articles) { | ||
| 109 | + WxMpService mpService = mpServiceFactory.getRequiredMpService(accountId); | ||
| 110 | + try { | ||
| 111 | + for (int i = 0; i < articles.size(); i++) { | ||
| 112 | + WxMpDraftArticles article = articles.get(i); | ||
| 113 | + mpService.getDraftService().updateDraft(new WxMpUpdateDraft(mediaId, i, article)); | ||
| 114 | + } | ||
| 115 | + return success(true); | ||
| 116 | + } catch (WxErrorException e) { | ||
| 117 | + throw exception(DRAFT_UPDATE_FAIL, e.getError().getErrorMsg()); | ||
| 118 | + } | ||
| 119 | + } | ||
| 120 | + | ||
| 121 | + @DeleteMapping("/delete") | ||
| 122 | + @ApiOperation("删除草稿") | ||
| 123 | + @ApiImplicitParams({ | ||
| 124 | + @ApiImplicitParam(name = "accountId", value = "公众号账号的编号", required = true, | ||
| 125 | + example = "1024", dataTypeClass = Long.class), | ||
| 126 | + @ApiImplicitParam(name = "mediaId", value = "草稿素材的编号", required = true, | ||
| 127 | + example = "xxx", dataTypeClass = String.class), | ||
| 128 | + }) | ||
| 129 | + @PreAuthorize("@ss.hasPermission('mp:draft:delete')") | ||
| 130 | + public CommonResult<Boolean> deleteDraft(@RequestParam("accountId") Long accountId, | ||
| 131 | + @RequestParam("mediaId") String mediaId) { | ||
| 132 | + WxMpService mpService = mpServiceFactory.getRequiredMpService(accountId); | ||
| 133 | + try { | ||
| 134 | + mpService.getDraftService().delDraft(mediaId); | ||
| 135 | + return success(true); | ||
| 136 | + } catch (WxErrorException e) { | ||
| 137 | + throw exception(DRAFT_DELETE_FAIL, e.getError().getErrorMsg()); | ||
| 138 | + } | ||
| 139 | + } | ||
| 140 | + | ||
| 141 | +} |
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/news/MpFreePublishController.http
0 → 100644
| 1 | +### 请求 /mp/free-publish/page 接口 => 成功 | ||
| 2 | +GET {{baseUrl}}/mp/free-publish/page?accountId=1&pageNo=1&pageSize=10 | ||
| 3 | +Content-Type: application/json | ||
| 4 | +Authorization: Bearer {{token}} | ||
| 5 | +tenant-id: {{adminTenentId}} | ||
| 6 | + | ||
| 7 | +### 请求 /mp/free-publish/submit 接口 => 成功 | ||
| 8 | +POST {{baseUrl}}/mp/free-publish/submit?accountId=1&mediaId=r6ryvl6LrxBU0miaST4Y-vilmd7iS51D8IPddxflWrau0hIQ2ovY8YanO5jlgUcM | ||
| 9 | +Content-Type: application/json | ||
| 10 | +Authorization: Bearer {{token}} | ||
| 11 | +tenant-id: {{adminTenentId}} | ||
| 12 | + | ||
| 13 | +{} |
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/news/MpFreePublishController.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.mp.controller.admin.news; | ||
| 2 | + | ||
| 3 | +import cn.hutool.core.collection.CollUtil; | ||
| 4 | +import cn.iocoder.yudao.framework.common.pojo.CommonResult; | ||
| 5 | +import cn.iocoder.yudao.framework.common.pojo.PageResult; | ||
| 6 | +import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; | ||
| 7 | +import cn.iocoder.yudao.framework.common.util.object.PageUtils; | ||
| 8 | +import cn.iocoder.yudao.module.mp.controller.admin.news.vo.MpFreePublishPageReqVO; | ||
| 9 | +import cn.iocoder.yudao.module.mp.dal.dataobject.material.MpMaterialDO; | ||
| 10 | +import cn.iocoder.yudao.module.mp.framework.mp.core.MpServiceFactory; | ||
| 11 | +import cn.iocoder.yudao.module.mp.service.material.MpMaterialService; | ||
| 12 | +import io.swagger.annotations.Api; | ||
| 13 | +import io.swagger.annotations.ApiImplicitParam; | ||
| 14 | +import io.swagger.annotations.ApiImplicitParams; | ||
| 15 | +import io.swagger.annotations.ApiOperation; | ||
| 16 | +import me.chanjar.weixin.common.error.WxErrorException; | ||
| 17 | +import me.chanjar.weixin.mp.api.WxMpService; | ||
| 18 | +import me.chanjar.weixin.mp.bean.freepublish.WxMpFreePublishItem; | ||
| 19 | +import me.chanjar.weixin.mp.bean.freepublish.WxMpFreePublishList; | ||
| 20 | +import org.springframework.security.access.prepost.PreAuthorize; | ||
| 21 | +import org.springframework.validation.annotation.Validated; | ||
| 22 | +import org.springframework.web.bind.annotation.*; | ||
| 23 | + | ||
| 24 | +import javax.annotation.Resource; | ||
| 25 | +import java.util.HashSet; | ||
| 26 | +import java.util.List; | ||
| 27 | +import java.util.Map; | ||
| 28 | +import java.util.Set; | ||
| 29 | + | ||
| 30 | +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; | ||
| 31 | +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; | ||
| 32 | +import static cn.iocoder.yudao.framework.common.util.collection.MapUtils.findAndThen; | ||
| 33 | +import static cn.iocoder.yudao.module.mp.enums.ErrorCodeConstants.*; | ||
| 34 | + | ||
| 35 | +@Api(tags = "管理后台 - 公众号发布能力") | ||
| 36 | +@RestController | ||
| 37 | +@RequestMapping("/mp/free-publish") | ||
| 38 | +@Validated | ||
| 39 | +public class MpFreePublishController { | ||
| 40 | + | ||
| 41 | + @Resource | ||
| 42 | + private MpServiceFactory mpServiceFactory; | ||
| 43 | + | ||
| 44 | + @Resource | ||
| 45 | + private MpMaterialService mpMaterialService; | ||
| 46 | + | ||
| 47 | + @GetMapping("/page") | ||
| 48 | + @ApiOperation("获得已发布的图文分页") | ||
| 49 | + @PreAuthorize("@ss.hasPermission('mp:free-publish:query')") | ||
| 50 | + public CommonResult<PageResult<WxMpFreePublishItem>> getFreePublishPage(MpFreePublishPageReqVO reqVO) { | ||
| 51 | + // 从公众号查询已发布的图文列表 | ||
| 52 | + WxMpService mpService = mpServiceFactory.getRequiredMpService(reqVO.getAccountId()); | ||
| 53 | + WxMpFreePublishList publicationRecords; | ||
| 54 | + try { | ||
| 55 | + publicationRecords = mpService.getFreePublishService().getPublicationRecords( | ||
| 56 | + PageUtils.getStart(reqVO), reqVO.getPageSize()); | ||
| 57 | + } catch (WxErrorException e) { | ||
| 58 | + throw exception(FREE_PUBLISH_LIST_FAIL, e.getError().getErrorMsg()); | ||
| 59 | + } | ||
| 60 | + // 查询对应的图片地址。目的:解决公众号的图片链接无法在我们后台展示 | ||
| 61 | + setFreePublishThumbUrl(publicationRecords.getItems()); | ||
| 62 | + | ||
| 63 | + // 返回分页 | ||
| 64 | + return success(new PageResult<>(publicationRecords.getItems(), publicationRecords.getTotalCount().longValue())); | ||
| 65 | + } | ||
| 66 | + | ||
| 67 | + private void setFreePublishThumbUrl(List<WxMpFreePublishItem> items) { | ||
| 68 | + // 1.1 获得 mediaId 数组 | ||
| 69 | + Set<String> mediaIds = new HashSet<>(); | ||
| 70 | + items.forEach(item -> item.getContent().getNewsItem().forEach(newsItem -> mediaIds.add(newsItem.getThumbMediaId()))); | ||
| 71 | + if (CollUtil.isEmpty(mediaIds)) { | ||
| 72 | + return; | ||
| 73 | + } | ||
| 74 | + // 1.2 批量查询对应的 Media 素材 | ||
| 75 | + Map<String, MpMaterialDO> materials = CollectionUtils.convertMap(mpMaterialService.getMaterialListByMediaId(mediaIds), | ||
| 76 | + MpMaterialDO::getMediaId); | ||
| 77 | + | ||
| 78 | + // 2. 设置回 WxMpFreePublishItem 记录 | ||
| 79 | + items.forEach(item -> item.getContent().getNewsItem().forEach(newsItem -> | ||
| 80 | + findAndThen(materials, newsItem.getThumbMediaId(), material -> newsItem.setThumbUrl(material.getUrl())))); | ||
| 81 | + } | ||
| 82 | + | ||
| 83 | + @PostMapping("/submit") | ||
| 84 | + @ApiOperation("发布草稿") | ||
| 85 | + @ApiImplicitParams({ | ||
| 86 | + @ApiImplicitParam(name = "accountId", value = "公众号账号的编号", required = true, | ||
| 87 | + example = "1024", dataTypeClass = Long.class), | ||
| 88 | + @ApiImplicitParam(name = "mediaId", value = "要发布的草稿的 media_id", required = true, | ||
| 89 | + example = "2048", dataTypeClass = String.class) | ||
| 90 | + }) | ||
| 91 | + @PreAuthorize("@ss.hasPermission('mp:free-publish:submit')") | ||
| 92 | + public CommonResult<String> submitFreePublish(@RequestParam("accountId") Long accountId, | ||
| 93 | + @RequestParam("mediaId") String mediaId) { | ||
| 94 | + WxMpService mpService = mpServiceFactory.getRequiredMpService(accountId); | ||
| 95 | + try { | ||
| 96 | + String publishId = mpService.getFreePublishService().submit(mediaId); | ||
| 97 | + return success(publishId); | ||
| 98 | + } catch (WxErrorException e) { | ||
| 99 | + throw exception(FREE_PUBLISH_SUBMIT_FAIL, e.getError().getErrorMsg()); | ||
| 100 | + } | ||
| 101 | + } | ||
| 102 | + | ||
| 103 | + @DeleteMapping("/delete") | ||
| 104 | + @ApiOperation("删除草稿") | ||
| 105 | + @ApiImplicitParams({ | ||
| 106 | + @ApiImplicitParam(name = "accountId", value = "公众号账号的编号", required = true, | ||
| 107 | + example = "1024", dataTypeClass = Long.class), | ||
| 108 | + @ApiImplicitParam(name = "articleId", value = "发布记录的编号", required = true, | ||
| 109 | + example = "2048", dataTypeClass = String.class) | ||
| 110 | + }) | ||
| 111 | + @PreAuthorize("@ss.hasPermission('mp:free-publish:delete')") | ||
| 112 | + public CommonResult<Boolean> deleteFreePublish(@RequestParam("accountId") Long accountId, | ||
| 113 | + @RequestParam("articleId") String articleId) { | ||
| 114 | + WxMpService mpService = mpServiceFactory.getRequiredMpService(accountId); | ||
| 115 | + try { | ||
| 116 | + mpService.getFreePublishService().deletePushAllArticle(articleId); | ||
| 117 | + return success(true); | ||
| 118 | + } catch (WxErrorException e) { | ||
| 119 | + throw exception(FREE_PUBLISH_DELETE_FAIL, e.getError().getErrorMsg()); | ||
| 120 | + } | ||
| 121 | + } | ||
| 122 | + | ||
| 123 | +} |
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/news/vo/MpDraftPageReqVO.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.mp.controller.admin.news.vo; | ||
| 2 | + | ||
| 3 | +import cn.iocoder.yudao.framework.common.pojo.PageParam; | ||
| 4 | +import io.swagger.annotations.ApiModel; | ||
| 5 | +import io.swagger.annotations.ApiModelProperty; | ||
| 6 | +import lombok.Data; | ||
| 7 | +import lombok.EqualsAndHashCode; | ||
| 8 | +import lombok.ToString; | ||
| 9 | + | ||
| 10 | +import javax.validation.constraints.NotNull; | ||
| 11 | + | ||
| 12 | +@ApiModel("管理后台 - 公众号草稿的分页 Request VO") | ||
| 13 | +@Data | ||
| 14 | +@EqualsAndHashCode(callSuper = true) | ||
| 15 | +@ToString(callSuper = true) | ||
| 16 | +public class MpDraftPageReqVO extends PageParam { | ||
| 17 | + | ||
| 18 | + @ApiModelProperty(value = "公众号账号的编号", required = true, example = "1024") | ||
| 19 | + @NotNull(message = "公众号账号的编号不能为空") | ||
| 20 | + private Long accountId; | ||
| 21 | + | ||
| 22 | +} |
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/news/vo/MpFreePublishPageReqVO.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.mp.controller.admin.news.vo; | ||
| 2 | + | ||
| 3 | +import cn.iocoder.yudao.framework.common.pojo.PageParam; | ||
| 4 | +import io.swagger.annotations.ApiModel; | ||
| 5 | +import io.swagger.annotations.ApiModelProperty; | ||
| 6 | +import lombok.Data; | ||
| 7 | +import lombok.EqualsAndHashCode; | ||
| 8 | +import lombok.ToString; | ||
| 9 | + | ||
| 10 | +import javax.validation.constraints.NotNull; | ||
| 11 | + | ||
| 12 | +@ApiModel("管理后台 - 公众号已发布列表的分页 Request VO") | ||
| 13 | +@Data | ||
| 14 | +@EqualsAndHashCode(callSuper = true) | ||
| 15 | +@ToString(callSuper = true) | ||
| 16 | +public class MpFreePublishPageReqVO extends PageParam { | ||
| 17 | + | ||
| 18 | + @ApiModelProperty(value = "公众号账号的编号", required = true, example = "1024") | ||
| 19 | + @NotNull(message = "公众号账号的编号不能为空") | ||
| 20 | + private Long accountId; | ||
| 21 | + | ||
| 22 | +} |
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/open/MpOpenController.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.mp.controller.admin.open; | ||
| 2 | + | ||
| 3 | +import cn.hutool.core.lang.Assert; | ||
| 4 | +import cn.hutool.core.util.StrUtil; | ||
| 5 | +import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog; | ||
| 6 | +import cn.iocoder.yudao.framework.tenant.core.util.TenantUtils; | ||
| 7 | +import cn.iocoder.yudao.module.mp.controller.admin.open.vo.MpOpenCheckSignatureReqVO; | ||
| 8 | +import cn.iocoder.yudao.module.mp.controller.admin.open.vo.MpOpenHandleMessageReqVO; | ||
| 9 | +import cn.iocoder.yudao.module.mp.dal.dataobject.account.MpAccountDO; | ||
| 10 | +import cn.iocoder.yudao.module.mp.framework.mp.core.MpServiceFactory; | ||
| 11 | +import cn.iocoder.yudao.module.mp.framework.mp.core.context.MpContextHolder; | ||
| 12 | +import cn.iocoder.yudao.module.mp.service.account.MpAccountService; | ||
| 13 | +import io.swagger.annotations.Api; | ||
| 14 | +import io.swagger.annotations.ApiOperation; | ||
| 15 | +import lombok.extern.slf4j.Slf4j; | ||
| 16 | +import me.chanjar.weixin.mp.api.WxMpMessageRouter; | ||
| 17 | +import me.chanjar.weixin.mp.api.WxMpService; | ||
| 18 | +import me.chanjar.weixin.mp.bean.message.WxMpXmlMessage; | ||
| 19 | +import me.chanjar.weixin.mp.bean.message.WxMpXmlOutMessage; | ||
| 20 | +import org.springframework.validation.annotation.Validated; | ||
| 21 | +import org.springframework.web.bind.annotation.*; | ||
| 22 | + | ||
| 23 | +import javax.annotation.Resource; | ||
| 24 | +import java.util.Objects; | ||
| 25 | + | ||
| 26 | +@Api(tags = "管理后台 - 公众号回调") | ||
| 27 | +@RestController | ||
| 28 | +@RequestMapping("/mp/open") | ||
| 29 | +@Validated | ||
| 30 | +@Slf4j | ||
| 31 | +public class MpOpenController { | ||
| 32 | + | ||
| 33 | + @Resource | ||
| 34 | + private MpServiceFactory mpServiceFactory; | ||
| 35 | + | ||
| 36 | + @Resource | ||
| 37 | + private MpAccountService mpAccountService; | ||
| 38 | + | ||
| 39 | + /** | ||
| 40 | + * 接收微信公众号的校验签名 | ||
| 41 | + * | ||
| 42 | + * 对应 <a href="https://developers.weixin.qq.com/doc/offiaccount/Basic_Information/Access_Overview.html">文档</a> | ||
| 43 | + */ | ||
| 44 | + @ApiOperation("校验签名") // 参见 | ||
| 45 | + @GetMapping(value = "/{appId}", produces = "text/plain;charset=utf-8") | ||
| 46 | + public String checkSignature(@PathVariable("appId") String appId, | ||
| 47 | + MpOpenCheckSignatureReqVO reqVO) { | ||
| 48 | + log.info("[checkSignature][appId({}) 接收到来自微信服务器的认证消息({})]", appId, reqVO); | ||
| 49 | + // 校验请求签名 | ||
| 50 | + WxMpService wxMpService = mpServiceFactory.getRequiredMpService(appId); | ||
| 51 | + // 校验通过 | ||
| 52 | + if (wxMpService.checkSignature(reqVO.getTimestamp(), reqVO.getNonce(), reqVO.getSignature())) { | ||
| 53 | + return reqVO.getEchostr(); | ||
| 54 | + } | ||
| 55 | + // 校验不通过 | ||
| 56 | + return "非法请求"; | ||
| 57 | + } | ||
| 58 | + | ||
| 59 | + /** | ||
| 60 | + * 接收微信公众号的消息推送 | ||
| 61 | + * | ||
| 62 | + * <a href="https://developers.weixin.qq.com/doc/offiaccount/Message_Management/Receiving_standard_messages.html">文档</a> | ||
| 63 | + */ | ||
| 64 | + @ApiOperation("处理消息") | ||
| 65 | + @PostMapping(value = "/{appId}", produces = "application/xml; charset=UTF-8") | ||
| 66 | + @OperateLog(enable = false) // 回调地址,无需记录操作日志 | ||
| 67 | + public String handleMessage(@PathVariable("appId") String appId, | ||
| 68 | + @RequestBody String content, | ||
| 69 | + MpOpenHandleMessageReqVO reqVO) { | ||
| 70 | + log.info("[handleMessage][appId({}) 推送消息,参数({}) 内容({})]", appId, reqVO, content); | ||
| 71 | + | ||
| 72 | + // 处理 appId + 多租户的上下文 | ||
| 73 | + MpAccountDO account = mpAccountService.getAccountFromCache(appId); | ||
| 74 | + Assert.notNull(account, "公众号 appId({}) 不存在", appId); | ||
| 75 | + try { | ||
| 76 | + MpContextHolder.setAppId(appId); | ||
| 77 | + return TenantUtils.execute(account.getTenantId(), | ||
| 78 | + () -> handleMessage0(appId, content, reqVO)); | ||
| 79 | + } finally { | ||
| 80 | + MpContextHolder.clear(); | ||
| 81 | + } | ||
| 82 | + } | ||
| 83 | + | ||
| 84 | + private String handleMessage0(String appId, String content, MpOpenHandleMessageReqVO reqVO) { | ||
| 85 | + // 校验请求签名 | ||
| 86 | + WxMpService mppService = mpServiceFactory.getRequiredMpService(appId); | ||
| 87 | + Assert.isTrue(mppService.checkSignature(reqVO.getTimestamp(), reqVO.getNonce(), reqVO.getSignature()), | ||
| 88 | + "非法请求"); | ||
| 89 | + | ||
| 90 | + // 第一步,解析消息 | ||
| 91 | + WxMpXmlMessage inMessage = null; | ||
| 92 | + if (StrUtil.isBlank(reqVO.getEncrypt_type())) { // 明文模式 | ||
| 93 | + inMessage = WxMpXmlMessage.fromXml(content); | ||
| 94 | + } else if (Objects.equals(reqVO.getEncrypt_type(), MpOpenHandleMessageReqVO.ENCRYPT_TYPE_AES)) { // AES 加密模式 | ||
| 95 | + inMessage = WxMpXmlMessage.fromEncryptedXml(content, mppService.getWxMpConfigStorage(), | ||
| 96 | + reqVO.getTimestamp(), reqVO.getNonce(), reqVO.getMsg_signature()); | ||
| 97 | + } | ||
| 98 | + Assert.notNull(inMessage, "消息解析失败,原因:消息为空"); | ||
| 99 | + | ||
| 100 | + // 第二步,处理消息 | ||
| 101 | + WxMpMessageRouter mpMessageRouter = mpServiceFactory.getRequiredMpMessageRouter(appId); | ||
| 102 | + WxMpXmlOutMessage outMessage = mpMessageRouter.route(inMessage); | ||
| 103 | + if (outMessage == null) { | ||
| 104 | + return ""; | ||
| 105 | + } | ||
| 106 | + | ||
| 107 | + // 第三步,返回消息 | ||
| 108 | + if (StrUtil.isBlank(reqVO.getEncrypt_type())) { // 明文模式 | ||
| 109 | + return outMessage.toXml(); | ||
| 110 | + } else if (Objects.equals(reqVO.getEncrypt_type(), MpOpenHandleMessageReqVO.ENCRYPT_TYPE_AES)) { // AES 加密模式 | ||
| 111 | + return outMessage.toEncryptedXml(mppService.getWxMpConfigStorage()); | ||
| 112 | + } | ||
| 113 | + return ""; | ||
| 114 | + } | ||
| 115 | + | ||
| 116 | +} |
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/open/vo/MpOpenCheckSignatureReqVO.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.mp.controller.admin.open.vo; | ||
| 2 | + | ||
| 3 | + | ||
| 4 | +import io.swagger.annotations.ApiModel; | ||
| 5 | +import io.swagger.annotations.ApiModelProperty; | ||
| 6 | +import lombok.Data; | ||
| 7 | +import lombok.EqualsAndHashCode; | ||
| 8 | +import lombok.ToString; | ||
| 9 | +import org.springframework.web.bind.annotation.RequestParam; | ||
| 10 | + | ||
| 11 | +import javax.validation.constraints.NotEmpty; | ||
| 12 | + | ||
| 13 | +@ApiModel("管理后台 - 公众号校验签名 Request VO") | ||
| 14 | +@Data | ||
| 15 | +public class MpOpenCheckSignatureReqVO { | ||
| 16 | + | ||
| 17 | + @ApiModelProperty(value = "微信加密签名", required = true, example = "490eb57f448b87bd5f20ccef58aa4de46aa1908e") | ||
| 18 | + @NotEmpty(message = "微信加密签名不能为空") | ||
| 19 | + private String signature; | ||
| 20 | + | ||
| 21 | + @ApiModelProperty(value = "时间戳", required = true, example = "1672587863") | ||
| 22 | + @NotEmpty(message = "时间戳不能为空") | ||
| 23 | + private String timestamp; | ||
| 24 | + | ||
| 25 | + @ApiModelProperty(value = "随机数", required = true, example = "1827365808") | ||
| 26 | + @NotEmpty(message = "随机数不能为空") | ||
| 27 | + private String nonce; | ||
| 28 | + | ||
| 29 | + @ApiModelProperty(value = "随机字符串", required = true, example = "2721154047828672511") | ||
| 30 | + @NotEmpty(message = "随机字符串不能为空") | ||
| 31 | + @SuppressWarnings("SpellCheckingInspection") | ||
| 32 | + private String echostr; | ||
| 33 | + | ||
| 34 | +} |
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/open/vo/MpOpenHandleMessageReqVO.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.mp.controller.admin.open.vo; | ||
| 2 | + | ||
| 3 | + | ||
| 4 | +import io.swagger.annotations.ApiModel; | ||
| 5 | +import io.swagger.annotations.ApiModelProperty; | ||
| 6 | +import lombok.Data; | ||
| 7 | + | ||
| 8 | +import javax.validation.constraints.NotEmpty; | ||
| 9 | + | ||
| 10 | +@ApiModel("管理后台 - 公众号处理消息 Request VO") | ||
| 11 | +@Data | ||
| 12 | +public class MpOpenHandleMessageReqVO { | ||
| 13 | + | ||
| 14 | + public static final String ENCRYPT_TYPE_AES = "aes"; | ||
| 15 | + | ||
| 16 | + @ApiModelProperty(value = "微信加密签名", required = true, example = "490eb57f448b87bd5f20ccef58aa4de46aa1908e") | ||
| 17 | + @NotEmpty(message = "微信加密签名不能为空") | ||
| 18 | + private String signature; | ||
| 19 | + | ||
| 20 | + @ApiModelProperty(value = "时间戳", required = true, example = "1672587863") | ||
| 21 | + @NotEmpty(message = "时间戳不能为空") | ||
| 22 | + private String timestamp; | ||
| 23 | + | ||
| 24 | + @ApiModelProperty(value = "随机数", required = true, example = "1827365808") | ||
| 25 | + @NotEmpty(message = "随机数不能为空") | ||
| 26 | + private String nonce; | ||
| 27 | + | ||
| 28 | + @ApiModelProperty(value = "粉丝 openid", required = true, example = "oz-Jdtyn-WGm4C4I5Z-nvBMO_ZfY") | ||
| 29 | + @NotEmpty(message = "粉丝 openid 不能为空") | ||
| 30 | + private String openid; | ||
| 31 | + | ||
| 32 | + @ApiModelProperty(value = "消息加密类型", example = "aes") | ||
| 33 | + private String encrypt_type; | ||
| 34 | + | ||
| 35 | + @ApiModelProperty(value = "微信签名", example = "QW5kcm9pZCBUaGUgQmFzZTY0IGlzIGEgZ2VuZXJhdGVkIHN0cmluZw==") | ||
| 36 | + private String msg_signature; | ||
| 37 | + | ||
| 38 | +} |
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/statistics/MpStatisticsController.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.mp.controller.admin.statistics; | ||
| 2 | + | ||
| 3 | +import cn.iocoder.yudao.framework.common.pojo.CommonResult; | ||
| 4 | +import cn.iocoder.yudao.module.mp.controller.admin.statistics.vo.*; | ||
| 5 | +import cn.iocoder.yudao.module.mp.convert.statistics.MpStatisticsConvert; | ||
| 6 | +import cn.iocoder.yudao.module.mp.service.statistics.MpStatisticsService; | ||
| 7 | +import io.swagger.annotations.Api; | ||
| 8 | +import io.swagger.annotations.ApiOperation; | ||
| 9 | +import me.chanjar.weixin.mp.bean.datacube.WxDataCubeInterfaceResult; | ||
| 10 | +import me.chanjar.weixin.mp.bean.datacube.WxDataCubeMsgResult; | ||
| 11 | +import me.chanjar.weixin.mp.bean.datacube.WxDataCubeUserCumulate; | ||
| 12 | +import me.chanjar.weixin.mp.bean.datacube.WxDataCubeUserSummary; | ||
| 13 | +import org.springframework.security.access.prepost.PreAuthorize; | ||
| 14 | +import org.springframework.validation.annotation.Validated; | ||
| 15 | +import org.springframework.web.bind.annotation.GetMapping; | ||
| 16 | +import org.springframework.web.bind.annotation.RequestMapping; | ||
| 17 | +import org.springframework.web.bind.annotation.RestController; | ||
| 18 | + | ||
| 19 | +import javax.annotation.Resource; | ||
| 20 | +import java.util.List; | ||
| 21 | + | ||
| 22 | +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; | ||
| 23 | + | ||
| 24 | +@Api(tags = "管理后台 - 公众号统计") | ||
| 25 | +@RestController | ||
| 26 | +@RequestMapping("/mp/statistics") | ||
| 27 | +@Validated | ||
| 28 | +public class MpStatisticsController { | ||
| 29 | + | ||
| 30 | + @Resource | ||
| 31 | + private MpStatisticsService mpStatisticsService; | ||
| 32 | + | ||
| 33 | + @GetMapping("/user-summary") | ||
| 34 | + @ApiOperation("获得粉丝增减数据") | ||
| 35 | + @PreAuthorize("@ss.hasPermission('mp:statistics:query')") | ||
| 36 | + public CommonResult<List<MpStatisticsUserSummaryRespVO>> getUserSummary(MpStatisticsGetReqVO getReqVO) { | ||
| 37 | + List<WxDataCubeUserSummary> list = mpStatisticsService.getUserSummary( | ||
| 38 | + getReqVO.getAccountId(), getReqVO.getDate()); | ||
| 39 | + return success(MpStatisticsConvert.INSTANCE.convertList01(list)); | ||
| 40 | + } | ||
| 41 | + | ||
| 42 | + @GetMapping("/user-cumulate") | ||
| 43 | + @ApiOperation("获得粉丝累计数据") | ||
| 44 | + @PreAuthorize("@ss.hasPermission('mp:statistics:query')") | ||
| 45 | + public CommonResult<List<MpStatisticsUserCumulateRespVO>> getUserCumulate(MpStatisticsGetReqVO getReqVO) { | ||
| 46 | + List<WxDataCubeUserCumulate> list = mpStatisticsService.getUserCumulate( | ||
| 47 | + getReqVO.getAccountId(), getReqVO.getDate()); | ||
| 48 | + return success(MpStatisticsConvert.INSTANCE.convertList02(list)); | ||
| 49 | + } | ||
| 50 | + | ||
| 51 | + @GetMapping("/upstream-message") | ||
| 52 | + @ApiOperation("获取消息发送概况数据") | ||
| 53 | + @PreAuthorize("@ss.hasPermission('mp:statistics:query')") | ||
| 54 | + public CommonResult<List<MpStatisticsUpstreamMessageRespVO>> getUpstreamMessage(MpStatisticsGetReqVO getReqVO) { | ||
| 55 | + List<WxDataCubeMsgResult> list = mpStatisticsService.getUpstreamMessage( | ||
| 56 | + getReqVO.getAccountId(), getReqVO.getDate()); | ||
| 57 | + return success(MpStatisticsConvert.INSTANCE.convertList03(list)); | ||
| 58 | + } | ||
| 59 | + | ||
| 60 | + @GetMapping("/interface-summary") | ||
| 61 | + @ApiOperation("获取消息发送概况数据") | ||
| 62 | + @PreAuthorize("@ss.hasPermission('mp:statistics:query')") | ||
| 63 | + public CommonResult<List<MpStatisticsInterfaceSummaryRespVO>> getInterfaceSummary(MpStatisticsGetReqVO getReqVO) { | ||
| 64 | + List<WxDataCubeInterfaceResult> list = mpStatisticsService.getInterfaceSummary( | ||
| 65 | + getReqVO.getAccountId(), getReqVO.getDate()); | ||
| 66 | + return success(MpStatisticsConvert.INSTANCE.convertList04(list)); | ||
| 67 | + } | ||
| 68 | +} |
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/statistics/vo/MpStatisticsGetReqVO.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.mp.controller.admin.statistics.vo; | ||
| 2 | + | ||
| 3 | +import io.swagger.annotations.ApiModel; | ||
| 4 | +import io.swagger.annotations.ApiModelProperty; | ||
| 5 | +import lombok.Data; | ||
| 6 | +import org.springframework.format.annotation.DateTimeFormat; | ||
| 7 | + | ||
| 8 | +import javax.validation.constraints.NotNull; | ||
| 9 | +import java.time.LocalDateTime; | ||
| 10 | + | ||
| 11 | +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; | ||
| 12 | + | ||
| 13 | +@ApiModel("管理后台 - 获得统计数据 Request VO") | ||
| 14 | +@Data | ||
| 15 | +public class MpStatisticsGetReqVO { | ||
| 16 | + | ||
| 17 | + @ApiModelProperty(value = "公众号账号的编号", required = true, example = "1024") | ||
| 18 | + @NotNull(message = "公众号账号的编号不能为空") | ||
| 19 | + private Long accountId; | ||
| 20 | + | ||
| 21 | + @ApiModelProperty(value = "查询时间范围") | ||
| 22 | + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) | ||
| 23 | + @NotNull(message = "查询时间范围不能为空") | ||
| 24 | + private LocalDateTime[] date; | ||
| 25 | + | ||
| 26 | +} |
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/statistics/vo/MpStatisticsInterfaceSummaryRespVO.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.mp.controller.admin.statistics.vo; | ||
| 2 | + | ||
| 3 | +import io.swagger.annotations.ApiModel; | ||
| 4 | +import io.swagger.annotations.ApiModelProperty; | ||
| 5 | +import lombok.Data; | ||
| 6 | + | ||
| 7 | +import java.util.Date; | ||
| 8 | + | ||
| 9 | +@ApiModel("管理后台 - 某一天的接口分析数据 Response VO") | ||
| 10 | +@Data | ||
| 11 | +public class MpStatisticsInterfaceSummaryRespVO { | ||
| 12 | + | ||
| 13 | + @ApiModelProperty(value = "日期", required = true) | ||
| 14 | + private Date refDate; | ||
| 15 | + | ||
| 16 | + @ApiModelProperty(value = "通过服务器配置地址获得消息后,被动回复粉丝消息的次数", required = true, example = "10") | ||
| 17 | + private Integer callbackCount; | ||
| 18 | + | ||
| 19 | + @ApiModelProperty(value = "上述动作的失败次数", required = true, example = "20") | ||
| 20 | + private Integer failCount; | ||
| 21 | + | ||
| 22 | + @ApiModelProperty(value = "总耗时,除以 callback_count 即为平均耗时", required = true, example = "30") | ||
| 23 | + private Integer totalTimeCost; | ||
| 24 | + | ||
| 25 | + @ApiModelProperty(value = "最大耗时", required = true, example = "40") | ||
| 26 | + private Integer maxTimeCost; | ||
| 27 | + | ||
| 28 | +} |
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/statistics/vo/MpStatisticsUpstreamMessageRespVO.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.mp.controller.admin.statistics.vo; | ||
| 2 | + | ||
| 3 | +import io.swagger.annotations.ApiModel; | ||
| 4 | +import io.swagger.annotations.ApiModelProperty; | ||
| 5 | +import lombok.Data; | ||
| 6 | + | ||
| 7 | +import java.util.Date; | ||
| 8 | + | ||
| 9 | +@ApiModel("管理后台 - 某一天的粉丝增减数据 Response VO") | ||
| 10 | +@Data | ||
| 11 | +public class MpStatisticsUpstreamMessageRespVO { | ||
| 12 | + | ||
| 13 | + @ApiModelProperty(value = "日期", required = true) | ||
| 14 | + private Date refDate; | ||
| 15 | + | ||
| 16 | + @ApiModelProperty(value = "上行发送了(向公众号发送了)消息的粉丝数", required = true, example = "10") | ||
| 17 | + private Integer messageUser; | ||
| 18 | + | ||
| 19 | + @ApiModelProperty(value = "上行发送了消息的消息总数", required = true, example = "20") | ||
| 20 | + private Integer messageCount; | ||
| 21 | + | ||
| 22 | +} |
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/statistics/vo/MpStatisticsUserCumulateRespVO.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.mp.controller.admin.statistics.vo; | ||
| 2 | + | ||
| 3 | +import io.swagger.annotations.ApiModel; | ||
| 4 | +import io.swagger.annotations.ApiModelProperty; | ||
| 5 | +import lombok.Data; | ||
| 6 | + | ||
| 7 | +import java.util.Date; | ||
| 8 | + | ||
| 9 | +@ApiModel("管理后台 - 某一天的消息发送概况数据 Response VO") | ||
| 10 | +@Data | ||
| 11 | +public class MpStatisticsUserCumulateRespVO { | ||
| 12 | + | ||
| 13 | + @ApiModelProperty(value = "日期", required = true) | ||
| 14 | + private Date refDate; | ||
| 15 | + | ||
| 16 | + @ApiModelProperty(value = "累计粉丝量", required = true, example = "10") | ||
| 17 | + private Integer cumulateUser; | ||
| 18 | + | ||
| 19 | +} |
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/statistics/vo/MpStatisticsUserSummaryRespVO.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.mp.controller.admin.statistics.vo; | ||
| 2 | + | ||
| 3 | +import io.swagger.annotations.ApiModel; | ||
| 4 | +import io.swagger.annotations.ApiModelProperty; | ||
| 5 | +import lombok.Data; | ||
| 6 | + | ||
| 7 | +import java.util.Date; | ||
| 8 | + | ||
| 9 | +@ApiModel("管理后台 - 某一天的粉丝增减数据 Response VO") | ||
| 10 | +@Data | ||
| 11 | +public class MpStatisticsUserSummaryRespVO { | ||
| 12 | + | ||
| 13 | + @ApiModelProperty(value = "日期", required = true) | ||
| 14 | + private Date refDate; | ||
| 15 | + | ||
| 16 | + @ApiModelProperty(value = "粉丝来源", required = true, example = "0") | ||
| 17 | + private Integer userSource; | ||
| 18 | + | ||
| 19 | + @ApiModelProperty(value = "新关注的粉丝数量", required = true, example = "10") | ||
| 20 | + private Integer newUser; | ||
| 21 | + | ||
| 22 | + @ApiModelProperty(value = "取消关注的粉丝数量", required = true, example = "20") | ||
| 23 | + private Integer cancelUser; | ||
| 24 | + | ||
| 25 | +} |
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/tag/MpTagController.http
0 → 100644
| 1 | +### 请求 /mp/tag/create 接口 => 成功 | ||
| 2 | +POST {{baseUrl}}/mp/tag/create | ||
| 3 | +Content-Type: application/json | ||
| 4 | +Authorization: Bearer {{token}} | ||
| 5 | +tenant-id: {{adminTenentId}} | ||
| 6 | + | ||
| 7 | +{ | ||
| 8 | + "accountId": "1", | ||
| 9 | + "name": "测试" | ||
| 10 | +} | ||
| 11 | + | ||
| 12 | +### 请求 /mp/tag/update 接口 => 成功 | ||
| 13 | +PUT {{baseUrl}}/mp/tag/update | ||
| 14 | +Content-Type: application/json | ||
| 15 | +Authorization: Bearer {{token}} | ||
| 16 | +tenant-id: {{adminTenentId}} | ||
| 17 | + | ||
| 18 | +{ | ||
| 19 | + "id": "3", | ||
| 20 | + "name": "测试标签啦" | ||
| 21 | +} | ||
| 22 | + | ||
| 23 | +### 请求 /mp/tag/delete 接口 => 成功 | ||
| 24 | +DELETE {{baseUrl}}/mp/tag/delete?id=3 | ||
| 25 | +Content-Type: application/json | ||
| 26 | +Authorization: Bearer {{token}} | ||
| 27 | +tenant-id: {{adminTenentId}} | ||
| 28 | + | ||
| 29 | +### 请求 /mp/tag/page 接口 => 成功 | ||
| 30 | +GET {{baseUrl}}/mp/tag/page?accountId=1&pageNo=1&pageSize=10 | ||
| 31 | +Content-Type: application/json | ||
| 32 | +Authorization: Bearer {{token}} | ||
| 33 | +tenant-id: {{adminTenentId}} | ||
| 34 | + | ||
| 35 | +### 请求 /mp/tag/sync 接口 => 成功 | ||
| 36 | +POST {{baseUrl}}/mp/tag/sync?accountId=1 | ||
| 37 | +Content-Type: application/json | ||
| 38 | +Authorization: Bearer {{token}} | ||
| 39 | +tenant-id: {{adminTenentId}} |
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/tag/MpTagController.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.mp.controller.admin.tag; | ||
| 2 | + | ||
| 3 | +import cn.iocoder.yudao.framework.common.pojo.CommonResult; | ||
| 4 | +import cn.iocoder.yudao.framework.common.pojo.PageResult; | ||
| 5 | +import cn.iocoder.yudao.module.mp.controller.admin.tag.vo.*; | ||
| 6 | +import cn.iocoder.yudao.module.mp.convert.tag.MpTagConvert; | ||
| 7 | +import cn.iocoder.yudao.module.mp.dal.dataobject.tag.MpTagDO; | ||
| 8 | +import cn.iocoder.yudao.module.mp.service.tag.MpTagService; | ||
| 9 | +import io.swagger.annotations.Api; | ||
| 10 | +import io.swagger.annotations.ApiImplicitParam; | ||
| 11 | +import io.swagger.annotations.ApiOperation; | ||
| 12 | +import org.springframework.security.access.prepost.PreAuthorize; | ||
| 13 | +import org.springframework.validation.annotation.Validated; | ||
| 14 | +import org.springframework.web.bind.annotation.*; | ||
| 15 | + | ||
| 16 | +import javax.annotation.Resource; | ||
| 17 | +import javax.validation.Valid; | ||
| 18 | +import java.util.List; | ||
| 19 | + | ||
| 20 | +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; | ||
| 21 | + | ||
| 22 | +@Api(tags = "管理后台 - 公众号标签") | ||
| 23 | +@RestController | ||
| 24 | +@RequestMapping("/mp/tag") | ||
| 25 | +@Validated | ||
| 26 | +public class MpTagController { | ||
| 27 | + | ||
| 28 | + @Resource | ||
| 29 | + private MpTagService mpTagService; | ||
| 30 | + | ||
| 31 | + @PostMapping("/create") | ||
| 32 | + @ApiOperation("创建公众号标签") | ||
| 33 | + @PreAuthorize("@ss.hasPermission('mp:tag:create')") | ||
| 34 | + public CommonResult<Long> createTag(@Valid @RequestBody MpTagCreateReqVO createReqVO) { | ||
| 35 | + return success(mpTagService.createTag(createReqVO)); | ||
| 36 | + } | ||
| 37 | + | ||
| 38 | + @PutMapping("/update") | ||
| 39 | + @ApiOperation("更新公众号标签") | ||
| 40 | + @PreAuthorize("@ss.hasPermission('mp:tag:update')") | ||
| 41 | + public CommonResult<Boolean> updateTag(@Valid @RequestBody MpTagUpdateReqVO updateReqVO) { | ||
| 42 | + mpTagService.updateTag(updateReqVO); | ||
| 43 | + return success(true); | ||
| 44 | + } | ||
| 45 | + | ||
| 46 | + @DeleteMapping("/delete") | ||
| 47 | + @ApiOperation("删除公众号标签") | ||
| 48 | + @ApiImplicitParam(name = "id", value = "编号", required = true, dataTypeClass = Long.class) | ||
| 49 | + @PreAuthorize("@ss.hasPermission('mp:tag:delete')") | ||
| 50 | + public CommonResult<Boolean> deleteTag(@RequestParam("id") Long id) { | ||
| 51 | + mpTagService.deleteTag(id); | ||
| 52 | + return success(true); | ||
| 53 | + } | ||
| 54 | + | ||
| 55 | + @GetMapping("/page") | ||
| 56 | + @ApiOperation("获取公众号标签分页") | ||
| 57 | + @PreAuthorize("@ss.hasPermission('mp:tag:query')") | ||
| 58 | + public CommonResult<PageResult<MpTagRespVO>> getTagPage(MpTagPageReqVO pageReqVO) { | ||
| 59 | + PageResult<MpTagDO> pageResult = mpTagService.getTagPage(pageReqVO); | ||
| 60 | + return success(MpTagConvert.INSTANCE.convertPage(pageResult)); | ||
| 61 | + } | ||
| 62 | + | ||
| 63 | + @GetMapping("/list-all-simple") | ||
| 64 | + @ApiOperation(value = "获取公众号账号精简信息列表") | ||
| 65 | + @PreAuthorize("@ss.hasPermission('mp:account:query')") | ||
| 66 | + public CommonResult<List<MpTagSimpleRespVO>> getSimpleTags() { | ||
| 67 | + List<MpTagDO> list = mpTagService.getTagList(); | ||
| 68 | + return success(MpTagConvert.INSTANCE.convertList02(list)); | ||
| 69 | + } | ||
| 70 | + | ||
| 71 | + @PostMapping("/sync") | ||
| 72 | + @ApiOperation("同步公众号标签") | ||
| 73 | + @ApiImplicitParam(name = "accountId", value = "公众号账号的编号", required = true, dataTypeClass = Long.class) | ||
| 74 | + @PreAuthorize("@ss.hasPermission('mp:tag:sync')") | ||
| 75 | + public CommonResult<Boolean> syncTag(@RequestParam("accountId") Long accountId) { | ||
| 76 | + mpTagService.syncTag(accountId); | ||
| 77 | + return success(true); | ||
| 78 | + } | ||
| 79 | + | ||
| 80 | +} |
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/tag/vo/MpTagBaseVO.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.mp.controller.admin.tag.vo; | ||
| 2 | + | ||
| 3 | +import io.swagger.annotations.ApiModelProperty; | ||
| 4 | +import lombok.Data; | ||
| 5 | + | ||
| 6 | +import javax.validation.constraints.NotEmpty; | ||
| 7 | + | ||
| 8 | +/** | ||
| 9 | + * 公众号标签 Base VO,提供给添加、修改、详细的子 VO 使用 | ||
| 10 | + * 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成 | ||
| 11 | + * | ||
| 12 | + * @author fengdan | ||
| 13 | + */ | ||
| 14 | +@Data | ||
| 15 | +public class MpTagBaseVO { | ||
| 16 | + | ||
| 17 | + @ApiModelProperty(value = "标签名", required = true, example = "土豆") | ||
| 18 | + @NotEmpty(message = "标签名不能为空") | ||
| 19 | + private String name; | ||
| 20 | + | ||
| 21 | +} |
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/tag/vo/MpTagCreateReqVO.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.mp.controller.admin.tag.vo; | ||
| 2 | + | ||
| 3 | +import io.swagger.annotations.ApiModel; | ||
| 4 | +import io.swagger.annotations.ApiModelProperty; | ||
| 5 | +import lombok.Data; | ||
| 6 | +import lombok.EqualsAndHashCode; | ||
| 7 | +import lombok.ToString; | ||
| 8 | + | ||
| 9 | +import javax.validation.constraints.NotNull; | ||
| 10 | + | ||
| 11 | +@ApiModel("管理后台 - 公众号标签创建 Request VO") | ||
| 12 | +@Data | ||
| 13 | +@EqualsAndHashCode(callSuper = true) | ||
| 14 | +@ToString(callSuper = true) | ||
| 15 | +public class MpTagCreateReqVO extends MpTagBaseVO { | ||
| 16 | + | ||
| 17 | + @ApiModelProperty(value = "公众号账号的编号", required = true, example = "2048") | ||
| 18 | + @NotNull(message = "公众号账号的编号不能为空") | ||
| 19 | + private Long accountId; | ||
| 20 | + | ||
| 21 | +} |
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/tag/vo/MpTagPageReqVO.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.mp.controller.admin.tag.vo; | ||
| 2 | + | ||
| 3 | +import cn.iocoder.yudao.framework.common.pojo.PageParam; | ||
| 4 | +import io.swagger.annotations.ApiModel; | ||
| 5 | +import io.swagger.annotations.ApiModelProperty; | ||
| 6 | +import lombok.Data; | ||
| 7 | +import lombok.EqualsAndHashCode; | ||
| 8 | +import lombok.ToString; | ||
| 9 | + | ||
| 10 | +import javax.validation.constraints.NotEmpty; | ||
| 11 | + | ||
| 12 | +@ApiModel("管理后台 - 公众号标签分页 Request VO") | ||
| 13 | +@Data | ||
| 14 | +@EqualsAndHashCode(callSuper = true) | ||
| 15 | +@ToString(callSuper = true) | ||
| 16 | +public class MpTagPageReqVO extends PageParam { | ||
| 17 | + | ||
| 18 | + @ApiModelProperty(value = "公众号账号的编号", required = true, example = "2048") | ||
| 19 | + @NotEmpty(message = "公众号账号的编号不能为空") | ||
| 20 | + private Long accountId; | ||
| 21 | + | ||
| 22 | + @ApiModelProperty(value = "标签名", example = "哈哈", notes = "模糊匹配") | ||
| 23 | + private String name; | ||
| 24 | + | ||
| 25 | +} |
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/tag/vo/MpTagRespVO.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.mp.controller.admin.tag.vo; | ||
| 2 | + | ||
| 3 | +import io.swagger.annotations.ApiModel; | ||
| 4 | +import io.swagger.annotations.ApiModelProperty; | ||
| 5 | +import lombok.Data; | ||
| 6 | +import lombok.EqualsAndHashCode; | ||
| 7 | +import lombok.ToString; | ||
| 8 | + | ||
| 9 | +import java.util.Date; | ||
| 10 | + | ||
| 11 | +@ApiModel("管理后台 - 公众号标签 Response VO") | ||
| 12 | +@Data | ||
| 13 | +@EqualsAndHashCode(callSuper = true) | ||
| 14 | +@ToString(callSuper = true) | ||
| 15 | +public class MpTagRespVO extends MpTagBaseVO { | ||
| 16 | + | ||
| 17 | + @ApiModelProperty(value = "编号", required = true, example = "1024") | ||
| 18 | + private Long id; | ||
| 19 | + | ||
| 20 | + @ApiModelProperty(value = "此标签下粉丝数量", required = true, example = "0") | ||
| 21 | + private Integer count; | ||
| 22 | + | ||
| 23 | + @ApiModelProperty(value = "创建时间", required = true) | ||
| 24 | + private Date createTime; | ||
| 25 | + | ||
| 26 | +} |
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/tag/vo/MpTagSimpleRespVO.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.mp.controller.admin.tag.vo; | ||
| 2 | + | ||
| 3 | +import io.swagger.annotations.ApiModel; | ||
| 4 | +import io.swagger.annotations.ApiModelProperty; | ||
| 5 | +import lombok.Data; | ||
| 6 | + | ||
| 7 | +@ApiModel("管理后台 - 公众号标签精简信息 Response VO") | ||
| 8 | +@Data | ||
| 9 | +public class MpTagSimpleRespVO { | ||
| 10 | + | ||
| 11 | + @ApiModelProperty(value = "编号", required = true, example = "1024") | ||
| 12 | + private Long id; | ||
| 13 | + | ||
| 14 | + @ApiModelProperty(value = "公众号的标签编号", required = true, example = "2048") | ||
| 15 | + private Long tagId; | ||
| 16 | + | ||
| 17 | + @ApiModelProperty(value = "标签名称", required = true, example = "快乐") | ||
| 18 | + private String name; | ||
| 19 | + | ||
| 20 | +} |
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/tag/vo/MpTagUpdateReqVO.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.mp.controller.admin.tag.vo; | ||
| 2 | + | ||
| 3 | +import lombok.*; | ||
| 4 | +import io.swagger.annotations.*; | ||
| 5 | + | ||
| 6 | +import javax.validation.constraints.*; | ||
| 7 | + | ||
| 8 | +@ApiModel("管理后台 - 公众号标签更新 Request VO") | ||
| 9 | +@Data | ||
| 10 | +@EqualsAndHashCode(callSuper = true) | ||
| 11 | +@ToString(callSuper = true) | ||
| 12 | +public class MpTagUpdateReqVO extends MpTagBaseVO { | ||
| 13 | + | ||
| 14 | + @ApiModelProperty(value = "编号", required = true) | ||
| 15 | + @NotNull(message = "编号不能为空") | ||
| 16 | + private Long id; | ||
| 17 | + | ||
| 18 | +} |
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/user/MpUserController.http
0 → 100644
| 1 | +### 请求 /mp/user/sync 接口 => 成功 | ||
| 2 | +POST {{baseUrl}}/mp/user/sync?accountId=1 | ||
| 3 | +Content-Type: application/json | ||
| 4 | +Authorization: Bearer {{token}} | ||
| 5 | +tenant-id: {{adminTenentId}} | ||
| 6 | + | ||
| 7 | +### 请求 /mp/user/update 接口 => 成功 | ||
| 8 | +PUT {{baseUrl}}/mp/user/update | ||
| 9 | +Content-Type: application/json | ||
| 10 | +Authorization: Bearer {{token}} | ||
| 11 | +tenant-id: {{adminTenentId}} | ||
| 12 | + | ||
| 13 | +{ | ||
| 14 | + "id": "3", | ||
| 15 | + "nickname": "test", | ||
| 16 | + "remark": "测试备注", | ||
| 17 | + "tagIds": [103, 104] | ||
| 18 | +} |
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/user/MpUserController.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.mp.controller.admin.user; | ||
| 2 | + | ||
| 3 | +import cn.iocoder.yudao.framework.common.pojo.CommonResult; | ||
| 4 | +import cn.iocoder.yudao.framework.common.pojo.PageResult; | ||
| 5 | +import cn.iocoder.yudao.module.mp.controller.admin.user.vo.MpUserPageReqVO; | ||
| 6 | +import cn.iocoder.yudao.module.mp.controller.admin.user.vo.MpUserRespVO; | ||
| 7 | +import cn.iocoder.yudao.module.mp.controller.admin.user.vo.MpUserUpdateReqVO; | ||
| 8 | +import cn.iocoder.yudao.module.mp.convert.user.MpUserConvert; | ||
| 9 | +import cn.iocoder.yudao.module.mp.dal.dataobject.user.MpUserDO; | ||
| 10 | +import cn.iocoder.yudao.module.mp.service.user.MpUserService; | ||
| 11 | +import io.swagger.annotations.Api; | ||
| 12 | +import io.swagger.annotations.ApiImplicitParam; | ||
| 13 | +import io.swagger.annotations.ApiOperation; | ||
| 14 | +import org.springframework.security.access.prepost.PreAuthorize; | ||
| 15 | +import org.springframework.validation.annotation.Validated; | ||
| 16 | +import org.springframework.web.bind.annotation.*; | ||
| 17 | + | ||
| 18 | +import javax.annotation.Resource; | ||
| 19 | +import javax.validation.Valid; | ||
| 20 | + | ||
| 21 | +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; | ||
| 22 | + | ||
| 23 | +@Api(tags = "管理后台 - 公众号粉丝") | ||
| 24 | +@RestController | ||
| 25 | +@RequestMapping("/mp/user") | ||
| 26 | +@Validated | ||
| 27 | +public class MpUserController { | ||
| 28 | + | ||
| 29 | + @Resource | ||
| 30 | + private MpUserService mpUserService; | ||
| 31 | + | ||
| 32 | + @GetMapping("/page") | ||
| 33 | + @ApiOperation("获得公众号粉丝分页") | ||
| 34 | + @PreAuthorize("@ss.hasPermission('mp:user:query')") | ||
| 35 | + public CommonResult<PageResult<MpUserRespVO>> getUserPage(@Valid MpUserPageReqVO pageVO) { | ||
| 36 | + PageResult<MpUserDO> pageResult = mpUserService.getUserPage(pageVO); | ||
| 37 | + return success(MpUserConvert.INSTANCE.convertPage(pageResult)); | ||
| 38 | + } | ||
| 39 | + | ||
| 40 | + @GetMapping("/get") | ||
| 41 | + @ApiOperation("获得公众号粉丝") | ||
| 42 | + @ApiImplicitParam(name = "id", value = "编号", required = true, example = "1024", dataTypeClass = Long.class) | ||
| 43 | + @PreAuthorize("@ss.hasPermission('mp:user:query')") | ||
| 44 | + public CommonResult<MpUserRespVO> getUser(@RequestParam("id") Long id) { | ||
| 45 | + return success(MpUserConvert.INSTANCE.convert(mpUserService.getUser(id))); | ||
| 46 | + } | ||
| 47 | + | ||
| 48 | + @PutMapping("/update") | ||
| 49 | + @ApiOperation("更新公众号粉丝") | ||
| 50 | + @PreAuthorize("@ss.hasPermission('mp:user:update')") | ||
| 51 | + public CommonResult<Boolean> updateUser(@Valid @RequestBody MpUserUpdateReqVO updateReqVO) { | ||
| 52 | + mpUserService.updateUser(updateReqVO); | ||
| 53 | + return success(true); | ||
| 54 | + } | ||
| 55 | + | ||
| 56 | + @PostMapping("/sync") | ||
| 57 | + @ApiOperation("同步公众号粉丝") | ||
| 58 | + @ApiImplicitParam(name = "accountId", value = "公众号账号的编号", required = true, dataTypeClass = Long.class) | ||
| 59 | + @PreAuthorize("@ss.hasPermission('mp:user:sync')") | ||
| 60 | + public CommonResult<Boolean> syncUser(@RequestParam("accountId") Long accountId) { | ||
| 61 | + mpUserService.syncUser(accountId); | ||
| 62 | + return success(true); | ||
| 63 | + } | ||
| 64 | + | ||
| 65 | +} |
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/user/vo/MpUserPageReqVO.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.mp.controller.admin.user.vo; | ||
| 2 | + | ||
| 3 | +import cn.iocoder.yudao.framework.common.pojo.PageParam; | ||
| 4 | +import io.swagger.annotations.ApiModel; | ||
| 5 | +import io.swagger.annotations.ApiModelProperty; | ||
| 6 | +import lombok.Data; | ||
| 7 | +import lombok.EqualsAndHashCode; | ||
| 8 | +import lombok.ToString; | ||
| 9 | + | ||
| 10 | +import javax.validation.constraints.NotNull; | ||
| 11 | + | ||
| 12 | +@ApiModel("管理后台 - 公众号粉丝分页 Request VO") | ||
| 13 | +@Data | ||
| 14 | +@EqualsAndHashCode(callSuper = true) | ||
| 15 | +@ToString(callSuper = true) | ||
| 16 | +public class MpUserPageReqVO extends PageParam { | ||
| 17 | + | ||
| 18 | + @ApiModelProperty(value = "公众号账号的编号", required = true, example = "2048") | ||
| 19 | + @NotNull(message = "公众号账号的编号不能为空") | ||
| 20 | + private Long accountId; | ||
| 21 | + | ||
| 22 | + @ApiModelProperty(value = "公众号粉丝标识", example = "o6_bmjrPTlm6_2sgVt7hMZOPfL2M", notes = "模糊匹配") | ||
| 23 | + private String openid; | ||
| 24 | + | ||
| 25 | + @ApiModelProperty(value = "公众号粉丝昵称", example = "芋艿", notes = "模糊匹配") | ||
| 26 | + private String nickname; | ||
| 27 | + | ||
| 28 | +} |
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/user/vo/MpUserRespVO.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.mp.controller.admin.user.vo; | ||
| 2 | + | ||
| 3 | +import io.swagger.annotations.ApiModel; | ||
| 4 | +import io.swagger.annotations.ApiModelProperty; | ||
| 5 | +import lombok.Data; | ||
| 6 | + | ||
| 7 | +import java.time.LocalDateTime; | ||
| 8 | +import java.util.Date; | ||
| 9 | +import java.util.List; | ||
| 10 | + | ||
| 11 | +@ApiModel("管理后台 - 公众号粉丝 Response VO") | ||
| 12 | +@Data | ||
| 13 | +public class MpUserRespVO { | ||
| 14 | + | ||
| 15 | + @ApiModelProperty(value = "编号", required = true, example = "1024") | ||
| 16 | + private Long id; | ||
| 17 | + | ||
| 18 | + @ApiModelProperty(value = "公众号粉丝标识", required = true, example = "o6_bmjrPTlm6_2sgVt7hMZOPfL2M") | ||
| 19 | + private String openid; | ||
| 20 | + | ||
| 21 | + @ApiModelProperty(value = "关注状态", required = true, example = "1", notes = "参见 CommonStatusEnum 枚举") | ||
| 22 | + private Integer subscribeStatus; | ||
| 23 | + @ApiModelProperty(value = "关注时间", required = true) | ||
| 24 | + private LocalDateTime subscribeTime; | ||
| 25 | + @ApiModelProperty(value = "取消关注时间") | ||
| 26 | + private LocalDateTime unsubscribeTime; | ||
| 27 | + | ||
| 28 | + @ApiModelProperty(value = "昵称", example = "芋道") | ||
| 29 | + private String nickname; | ||
| 30 | + @ApiModelProperty(value = "头像地址", example = "https://www.iocoder.cn/1.png") | ||
| 31 | + private String headImageUrl; | ||
| 32 | + @ApiModelProperty(value = "语言", example = "zh_CN") | ||
| 33 | + private String language; | ||
| 34 | + @ApiModelProperty(value = "国家", example = "中国") | ||
| 35 | + private String country; | ||
| 36 | + @ApiModelProperty(value = "省份", example = "广东省") | ||
| 37 | + private String province; | ||
| 38 | + @ApiModelProperty(value = "城市", example = "广州市") | ||
| 39 | + private String city; | ||
| 40 | + @ApiModelProperty(value = "备注", example = "你是一个芋头嘛") | ||
| 41 | + private String remark; | ||
| 42 | + | ||
| 43 | + @ApiModelProperty(value = "标签编号数组", example = "1,2,3") | ||
| 44 | + private List<Long> tagIds; | ||
| 45 | + | ||
| 46 | + @ApiModelProperty(value = "公众号账号的编号", required = true, example = "1") | ||
| 47 | + private Long accountId; | ||
| 48 | + @ApiModelProperty(value = "公众号账号的 appId", required = true, example = "wx1234567890") | ||
| 49 | + private String appId; | ||
| 50 | + | ||
| 51 | + @ApiModelProperty(value = "创建时间", required = true) | ||
| 52 | + private Date createTime; | ||
| 53 | + | ||
| 54 | +} |
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/user/vo/MpUserUpdateReqVO.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.mp.controller.admin.user.vo; | ||
| 2 | + | ||
| 3 | +import io.swagger.annotations.ApiModel; | ||
| 4 | +import io.swagger.annotations.ApiModelProperty; | ||
| 5 | +import lombok.Data; | ||
| 6 | + | ||
| 7 | +import javax.validation.constraints.NotNull; | ||
| 8 | +import java.util.List; | ||
| 9 | + | ||
| 10 | +@ApiModel("管理后台 - 公众号粉丝更新 Request VO") | ||
| 11 | +@Data | ||
| 12 | +public class MpUserUpdateReqVO { | ||
| 13 | + | ||
| 14 | + @ApiModelProperty(value = "编号", required = true, example = "1024") | ||
| 15 | + @NotNull(message = "编号不能为空") | ||
| 16 | + private Long id; | ||
| 17 | + | ||
| 18 | + @ApiModelProperty(value = "昵称", example = "芋道") | ||
| 19 | + private String nickname; | ||
| 20 | + | ||
| 21 | + @ApiModelProperty(value = "备注", example = "你是一个芋头嘛") | ||
| 22 | + private String remark; | ||
| 23 | + | ||
| 24 | + @ApiModelProperty(value = "标签编号数组", example = "1,2,3") | ||
| 25 | + private List<Long> tagIds; | ||
| 26 | + | ||
| 27 | +} |
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/package-info.java
0 → 100644
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/convert/account/MpAccountConvert.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.mp.convert.account; | ||
| 2 | + | ||
| 3 | +import cn.iocoder.yudao.framework.common.pojo.PageResult; | ||
| 4 | +import cn.iocoder.yudao.module.mp.controller.admin.account.vo.MpAccountCreateReqVO; | ||
| 5 | +import cn.iocoder.yudao.module.mp.controller.admin.account.vo.MpAccountRespVO; | ||
| 6 | +import cn.iocoder.yudao.module.mp.controller.admin.account.vo.MpAccountSimpleRespVO; | ||
| 7 | +import cn.iocoder.yudao.module.mp.controller.admin.account.vo.MpAccountUpdateReqVO; | ||
| 8 | +import cn.iocoder.yudao.module.mp.dal.dataobject.account.MpAccountDO; | ||
| 9 | +import org.mapstruct.Mapper; | ||
| 10 | +import org.mapstruct.factory.Mappers; | ||
| 11 | + | ||
| 12 | +import java.util.List; | ||
| 13 | + | ||
| 14 | +@Mapper | ||
| 15 | +public interface MpAccountConvert { | ||
| 16 | + | ||
| 17 | + MpAccountConvert INSTANCE = Mappers.getMapper(MpAccountConvert.class); | ||
| 18 | + | ||
| 19 | + MpAccountDO convert(MpAccountCreateReqVO bean); | ||
| 20 | + | ||
| 21 | + MpAccountDO convert(MpAccountUpdateReqVO bean); | ||
| 22 | + | ||
| 23 | + MpAccountRespVO convert(MpAccountDO bean); | ||
| 24 | + | ||
| 25 | + List<MpAccountRespVO> convertList(List<MpAccountDO> list); | ||
| 26 | + | ||
| 27 | + PageResult<MpAccountRespVO> convertPage(PageResult<MpAccountDO> page); | ||
| 28 | + | ||
| 29 | + List<MpAccountSimpleRespVO> convertList02(List<MpAccountDO> list); | ||
| 30 | + | ||
| 31 | +} |
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/convert/material/MpMaterialConvert.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.mp.convert.material; | ||
| 2 | + | ||
| 3 | +import cn.iocoder.yudao.framework.common.pojo.PageResult; | ||
| 4 | +import cn.iocoder.yudao.module.mp.controller.admin.material.vo.MpMaterialRespVO; | ||
| 5 | +import cn.iocoder.yudao.module.mp.controller.admin.material.vo.MpMaterialUploadRespVO; | ||
| 6 | +import cn.iocoder.yudao.module.mp.dal.dataobject.account.MpAccountDO; | ||
| 7 | +import cn.iocoder.yudao.module.mp.dal.dataobject.material.MpMaterialDO; | ||
| 8 | +import me.chanjar.weixin.mp.bean.material.WxMpMaterial; | ||
| 9 | +import org.mapstruct.Mapper; | ||
| 10 | +import org.mapstruct.Mapping; | ||
| 11 | +import org.mapstruct.Mappings; | ||
| 12 | +import org.mapstruct.factory.Mappers; | ||
| 13 | + | ||
| 14 | +import java.io.File; | ||
| 15 | + | ||
| 16 | +@Mapper | ||
| 17 | +public interface MpMaterialConvert { | ||
| 18 | + | ||
| 19 | + MpMaterialConvert INSTANCE = Mappers.getMapper(MpMaterialConvert.class); | ||
| 20 | + | ||
| 21 | + @Mappings({ | ||
| 22 | + @Mapping(target = "id", ignore = true), | ||
| 23 | + @Mapping(source = "account.id", target = "accountId"), | ||
| 24 | + @Mapping(source = "account.appId", target = "appId"), | ||
| 25 | + @Mapping(source = "name", target = "name") | ||
| 26 | + }) | ||
| 27 | + MpMaterialDO convert(String mediaId, String type, String url, MpAccountDO account, | ||
| 28 | + String name); | ||
| 29 | + | ||
| 30 | + @Mappings({ | ||
| 31 | + @Mapping(target = "id", ignore = true), | ||
| 32 | + @Mapping(source = "account.id", target = "accountId"), | ||
| 33 | + @Mapping(source = "account.appId", target = "appId"), | ||
| 34 | + @Mapping(source = "name", target = "name") | ||
| 35 | + }) | ||
| 36 | + MpMaterialDO convert(String mediaId, String type, String url, MpAccountDO account, | ||
| 37 | + String name, String title, String introduction, String mpUrl); | ||
| 38 | + | ||
| 39 | + MpMaterialUploadRespVO convert(MpMaterialDO bean); | ||
| 40 | + | ||
| 41 | + default WxMpMaterial convert(String name, File file, String title, String introduction) { | ||
| 42 | + return new WxMpMaterial(name, file, title, introduction); | ||
| 43 | + } | ||
| 44 | + | ||
| 45 | + PageResult<MpMaterialRespVO> convertPage(PageResult<MpMaterialDO> page); | ||
| 46 | + | ||
| 47 | +} |
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/convert/menu/MpMenuConvert.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.mp.convert.menu; | ||
| 2 | + | ||
| 3 | +import cn.iocoder.yudao.module.mp.controller.admin.menu.vo.MpMenuRespVO; | ||
| 4 | +import cn.iocoder.yudao.module.mp.controller.admin.menu.vo.MpMenuSaveReqVO; | ||
| 5 | +import cn.iocoder.yudao.module.mp.dal.dataobject.menu.MpMenuDO; | ||
| 6 | +import cn.iocoder.yudao.module.mp.service.message.bo.MpMessageSendOutReqBO; | ||
| 7 | +import me.chanjar.weixin.common.bean.menu.WxMenuButton; | ||
| 8 | +import org.mapstruct.Mapper; | ||
| 9 | +import org.mapstruct.Mapping; | ||
| 10 | +import org.mapstruct.Mappings; | ||
| 11 | +import org.mapstruct.factory.Mappers; | ||
| 12 | + | ||
| 13 | +import java.util.List; | ||
| 14 | + | ||
| 15 | +@Mapper | ||
| 16 | +public interface MpMenuConvert { | ||
| 17 | + | ||
| 18 | + MpMenuConvert INSTANCE = Mappers.getMapper(MpMenuConvert.class); | ||
| 19 | + | ||
| 20 | + MpMenuRespVO convert(MpMenuDO bean); | ||
| 21 | + | ||
| 22 | + List<MpMenuRespVO> convertList(List<MpMenuDO> list); | ||
| 23 | + | ||
| 24 | + @Mappings({ | ||
| 25 | + @Mapping(source = "menu.appId", target = "appId"), | ||
| 26 | + @Mapping(source = "menu.replyMessageType", target = "type"), | ||
| 27 | + @Mapping(source = "menu.replyContent", target = "content"), | ||
| 28 | + @Mapping(source = "menu.replyMediaId", target = "mediaId"), | ||
| 29 | + @Mapping(source = "menu.replyThumbMediaId", target = "thumbMediaId"), | ||
| 30 | + @Mapping(source = "menu.replyTitle", target = "title"), | ||
| 31 | + @Mapping(source = "menu.replyDescription", target = "description"), | ||
| 32 | + @Mapping(source = "menu.replyArticles", target = "articles"), | ||
| 33 | + @Mapping(source = "menu.replyMusicUrl", target = "musicUrl"), | ||
| 34 | + @Mapping(source = "menu.replyHqMusicUrl", target = "hqMusicUrl"), | ||
| 35 | + }) | ||
| 36 | + MpMessageSendOutReqBO convert(String openid, MpMenuDO menu); | ||
| 37 | + | ||
| 38 | + List<WxMenuButton> convert(List<MpMenuSaveReqVO.Menu> list); | ||
| 39 | + | ||
| 40 | + @Mappings({ | ||
| 41 | + @Mapping(source = "menuKey", target = "key"), | ||
| 42 | + @Mapping(source = "children", target = "subButtons"), | ||
| 43 | + }) | ||
| 44 | + WxMenuButton convert(MpMenuSaveReqVO.Menu bean); | ||
| 45 | + | ||
| 46 | + MpMenuDO convert02(MpMenuSaveReqVO.Menu menu); | ||
| 47 | + | ||
| 48 | +} |
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/convert/message/MpAutoReplyConvert.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.mp.convert.message; | ||
| 2 | + | ||
| 3 | +import cn.iocoder.yudao.framework.common.pojo.PageResult; | ||
| 4 | +import cn.iocoder.yudao.module.mp.controller.admin.message.vo.autoreply.MpAutoReplyCreateReqVO; | ||
| 5 | +import cn.iocoder.yudao.module.mp.controller.admin.message.vo.autoreply.MpAutoReplyRespVO; | ||
| 6 | +import cn.iocoder.yudao.module.mp.controller.admin.message.vo.autoreply.MpAutoReplyUpdateReqVO; | ||
| 7 | +import cn.iocoder.yudao.module.mp.dal.dataobject.message.MpAutoReplyDO; | ||
| 8 | +import cn.iocoder.yudao.module.mp.service.message.bo.MpMessageSendOutReqBO; | ||
| 9 | +import org.mapstruct.Mapper; | ||
| 10 | +import org.mapstruct.Mapping; | ||
| 11 | +import org.mapstruct.Mappings; | ||
| 12 | +import org.mapstruct.factory.Mappers; | ||
| 13 | + | ||
| 14 | +@Mapper | ||
| 15 | +public interface MpAutoReplyConvert { | ||
| 16 | + | ||
| 17 | + MpAutoReplyConvert INSTANCE = Mappers.getMapper(MpAutoReplyConvert.class); | ||
| 18 | + | ||
| 19 | + @Mappings({ | ||
| 20 | + @Mapping(source = "reply.appId", target = "appId"), | ||
| 21 | + @Mapping(source = "reply.responseMessageType", target = "type"), | ||
| 22 | + @Mapping(source = "reply.responseContent", target = "content"), | ||
| 23 | + @Mapping(source = "reply.responseMediaId", target = "mediaId"), | ||
| 24 | + @Mapping(source = "reply.responseTitle", target = "title"), | ||
| 25 | + @Mapping(source = "reply.responseDescription", target = "description"), | ||
| 26 | + @Mapping(source = "reply.responseArticles", target = "articles"), | ||
| 27 | + }) | ||
| 28 | + MpMessageSendOutReqBO convert(String openid, MpAutoReplyDO reply); | ||
| 29 | + | ||
| 30 | + PageResult<MpAutoReplyRespVO> convertPage(PageResult<MpAutoReplyDO> page); | ||
| 31 | + | ||
| 32 | + MpAutoReplyRespVO convert(MpAutoReplyDO bean); | ||
| 33 | + | ||
| 34 | + MpAutoReplyDO convert(MpAutoReplyCreateReqVO bean); | ||
| 35 | + | ||
| 36 | + MpAutoReplyDO convert(MpAutoReplyUpdateReqVO bean); | ||
| 37 | +} |
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/convert/message/MpMessageConvert.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.mp.convert.message; | ||
| 2 | + | ||
| 3 | +import cn.iocoder.yudao.framework.common.pojo.PageResult; | ||
| 4 | +import cn.iocoder.yudao.module.mp.controller.admin.message.vo.message.MpMessageRespVO; | ||
| 5 | +import cn.iocoder.yudao.module.mp.controller.admin.message.vo.message.MpMessageSendReqVO; | ||
| 6 | +import cn.iocoder.yudao.module.mp.dal.dataobject.account.MpAccountDO; | ||
| 7 | +import cn.iocoder.yudao.module.mp.dal.dataobject.message.MpMessageDO; | ||
| 8 | +import cn.iocoder.yudao.module.mp.dal.dataobject.user.MpUserDO; | ||
| 9 | +import cn.iocoder.yudao.module.mp.service.message.bo.MpMessageSendOutReqBO; | ||
| 10 | +import me.chanjar.weixin.common.api.WxConsts; | ||
| 11 | +import me.chanjar.weixin.mp.bean.kefu.WxMpKefuMessage; | ||
| 12 | +import me.chanjar.weixin.mp.bean.message.WxMpXmlMessage; | ||
| 13 | +import me.chanjar.weixin.mp.bean.message.WxMpXmlOutMessage; | ||
| 14 | +import me.chanjar.weixin.mp.bean.message.WxMpXmlOutNewsMessage; | ||
| 15 | +import me.chanjar.weixin.mp.builder.outxml.BaseBuilder; | ||
| 16 | +import org.mapstruct.Mapper; | ||
| 17 | +import org.mapstruct.Mapping; | ||
| 18 | +import org.mapstruct.Mappings; | ||
| 19 | +import org.mapstruct.factory.Mappers; | ||
| 20 | + | ||
| 21 | +import java.util.List; | ||
| 22 | + | ||
| 23 | +@Mapper | ||
| 24 | +public interface MpMessageConvert { | ||
| 25 | + | ||
| 26 | + MpMessageConvert INSTANCE = Mappers.getMapper(MpMessageConvert.class); | ||
| 27 | + | ||
| 28 | + MpMessageRespVO convert(MpMessageDO bean); | ||
| 29 | + | ||
| 30 | + List<MpMessageRespVO> convertList(List<MpMessageDO> list); | ||
| 31 | + | ||
| 32 | + PageResult<MpMessageRespVO> convertPage(PageResult<MpMessageDO> page); | ||
| 33 | + | ||
| 34 | + default MpMessageDO convert(WxMpXmlMessage wxMessage, MpAccountDO account, MpUserDO user) { | ||
| 35 | + MpMessageDO message = convert(wxMessage); | ||
| 36 | + if (account != null) { | ||
| 37 | + message.setAccountId(account.getId()).setAppId(account.getAppId()); | ||
| 38 | + } | ||
| 39 | + if (user != null) { | ||
| 40 | + message.setUserId(user.getId()).setOpenid(user.getOpenid()); | ||
| 41 | + } | ||
| 42 | + return message; | ||
| 43 | + } | ||
| 44 | + @Mappings(value = { | ||
| 45 | + @Mapping(source = "msgType", target = "type"), | ||
| 46 | + @Mapping(target = "createTime", ignore = true), | ||
| 47 | + }) | ||
| 48 | + MpMessageDO convert(WxMpXmlMessage bean); | ||
| 49 | + | ||
| 50 | + default MpMessageDO convert(MpMessageSendOutReqBO sendReqBO, MpAccountDO account, MpUserDO user) { | ||
| 51 | + // 构建消息 | ||
| 52 | + MpMessageDO message = new MpMessageDO(); | ||
| 53 | + message.setType(sendReqBO.getType()); | ||
| 54 | + switch (sendReqBO.getType()) { | ||
| 55 | + case WxConsts.XmlMsgType.TEXT: // 1. 文本 | ||
| 56 | + message.setContent(sendReqBO.getContent()); | ||
| 57 | + break; | ||
| 58 | + case WxConsts.XmlMsgType.IMAGE: // 2. 图片 | ||
| 59 | + case WxConsts.XmlMsgType.VOICE: // 3. 语音 | ||
| 60 | + message.setMediaId(sendReqBO.getMediaId()); | ||
| 61 | + break; | ||
| 62 | + case WxConsts.XmlMsgType.VIDEO: // 4. 视频 | ||
| 63 | + message.setMediaId(sendReqBO.getMediaId()) | ||
| 64 | + .setTitle(sendReqBO.getTitle()).setDescription(sendReqBO.getDescription()); | ||
| 65 | + break; | ||
| 66 | + case WxConsts.XmlMsgType.NEWS: // 5. 图文 | ||
| 67 | + message.setArticles(sendReqBO.getArticles()); | ||
| 68 | + case WxConsts.XmlMsgType.MUSIC: // 6. 音乐 | ||
| 69 | + message.setTitle(sendReqBO.getTitle()).setDescription(sendReqBO.getDescription()) | ||
| 70 | + .setMusicUrl(sendReqBO.getMusicUrl()).setHqMusicUrl(sendReqBO.getHqMusicUrl()) | ||
| 71 | + .setThumbMediaId(sendReqBO.getThumbMediaId()); | ||
| 72 | + break; | ||
| 73 | + default: | ||
| 74 | + throw new IllegalArgumentException("不支持的消息类型:" + message.getType()); | ||
| 75 | + } | ||
| 76 | + | ||
| 77 | + // 其它字段 | ||
| 78 | + if (account != null) { | ||
| 79 | + message.setAccountId(account.getId()).setAppId(account.getAppId()); | ||
| 80 | + } | ||
| 81 | + if (user != null) { | ||
| 82 | + message.setUserId(user.getId()).setOpenid(user.getOpenid()); | ||
| 83 | + } | ||
| 84 | + return message; | ||
| 85 | + } | ||
| 86 | + | ||
| 87 | + default WxMpXmlOutMessage convert02(MpMessageDO message, MpAccountDO account) { | ||
| 88 | + BaseBuilder<?, ? extends WxMpXmlOutMessage> builder; | ||
| 89 | + // 个性化字段 | ||
| 90 | + switch (message.getType()) { | ||
| 91 | + case WxConsts.XmlMsgType.TEXT: | ||
| 92 | + builder = WxMpXmlOutMessage.TEXT().content(message.getContent()); | ||
| 93 | + break; | ||
| 94 | + case WxConsts.XmlMsgType.IMAGE: | ||
| 95 | + builder = WxMpXmlOutMessage.IMAGE().mediaId(message.getMediaId()); | ||
| 96 | + break; | ||
| 97 | + case WxConsts.XmlMsgType.VOICE: | ||
| 98 | + builder = WxMpXmlOutMessage.VOICE().mediaId(message.getMediaId()); | ||
| 99 | + break; | ||
| 100 | + case WxConsts.XmlMsgType.VIDEO: | ||
| 101 | + builder = WxMpXmlOutMessage.VIDEO().mediaId(message.getMediaId()) | ||
| 102 | + .title(message.getTitle()).description(message.getDescription()); | ||
| 103 | + break; | ||
| 104 | + case WxConsts.XmlMsgType.NEWS: | ||
| 105 | + builder = WxMpXmlOutMessage.NEWS().articles(convertList02(message.getArticles())); | ||
| 106 | + break; | ||
| 107 | + case WxConsts.XmlMsgType.MUSIC: | ||
| 108 | + builder = WxMpXmlOutMessage.MUSIC().title(message.getTitle()).description(message.getDescription()) | ||
| 109 | + .musicUrl(message.getMusicUrl()).hqMusicUrl(message.getHqMusicUrl()) | ||
| 110 | + .thumbMediaId(message.getThumbMediaId()); | ||
| 111 | + break; | ||
| 112 | + default: | ||
| 113 | + throw new IllegalArgumentException("不支持的消息类型:" + message.getType()); | ||
| 114 | + } | ||
| 115 | + // 通用字段 | ||
| 116 | + builder.fromUser(account.getAccount()); | ||
| 117 | + builder.toUser(message.getOpenid()); | ||
| 118 | + return builder.build(); | ||
| 119 | + } | ||
| 120 | + List<WxMpXmlOutNewsMessage.Item> convertList02(List<MpMessageDO.Article> list); | ||
| 121 | + | ||
| 122 | + default WxMpKefuMessage convert(MpMessageSendReqVO sendReqVO, MpUserDO user) { | ||
| 123 | + me.chanjar.weixin.mp.builder.kefu.BaseBuilder<?> builder; | ||
| 124 | + // 个性化字段 | ||
| 125 | + switch (sendReqVO.getType()) { | ||
| 126 | + case WxConsts.KefuMsgType.TEXT: | ||
| 127 | + builder = WxMpKefuMessage.TEXT().content(sendReqVO.getContent()); | ||
| 128 | + break; | ||
| 129 | + case WxConsts.KefuMsgType.IMAGE: | ||
| 130 | + builder = WxMpKefuMessage.IMAGE().mediaId(sendReqVO.getMediaId()); | ||
| 131 | + break; | ||
| 132 | + case WxConsts.KefuMsgType.VOICE: | ||
| 133 | + builder = WxMpKefuMessage.VOICE().mediaId(sendReqVO.getMediaId()); | ||
| 134 | + break; | ||
| 135 | + case WxConsts.KefuMsgType.VIDEO: | ||
| 136 | + builder = WxMpKefuMessage.VIDEO().mediaId(sendReqVO.getMediaId()) | ||
| 137 | + .title(sendReqVO.getTitle()).description(sendReqVO.getDescription()); | ||
| 138 | + break; | ||
| 139 | + case WxConsts.KefuMsgType.NEWS: | ||
| 140 | + builder = WxMpKefuMessage.NEWS().articles(convertList03(sendReqVO.getArticles())); | ||
| 141 | + break; | ||
| 142 | + case WxConsts.KefuMsgType.MUSIC: | ||
| 143 | + builder = WxMpKefuMessage.MUSIC().title(sendReqVO.getTitle()).description(sendReqVO.getDescription()) | ||
| 144 | + .thumbMediaId(sendReqVO.getThumbMediaId()) | ||
| 145 | + .musicUrl(sendReqVO.getMusicUrl()).hqMusicUrl(sendReqVO.getHqMusicUrl()); | ||
| 146 | + break; | ||
| 147 | + default: | ||
| 148 | + throw new IllegalArgumentException("不支持的消息类型:" + sendReqVO.getType()); | ||
| 149 | + } | ||
| 150 | + // 通用字段 | ||
| 151 | + builder.toUser(user.getOpenid()); | ||
| 152 | + return builder.build(); | ||
| 153 | + } | ||
| 154 | + List<WxMpKefuMessage.WxArticle> convertList03(List<MpMessageDO.Article> list); | ||
| 155 | + | ||
| 156 | + default MpMessageDO convert(WxMpKefuMessage wxMessage, MpAccountDO account, MpUserDO user) { | ||
| 157 | + MpMessageDO message = convert(wxMessage); | ||
| 158 | + if (account != null) { | ||
| 159 | + message.setAccountId(account.getId()).setAppId(account.getAppId()); | ||
| 160 | + } | ||
| 161 | + if (user != null) { | ||
| 162 | + message.setUserId(user.getId()).setOpenid(user.getOpenid()); | ||
| 163 | + } | ||
| 164 | + return message; | ||
| 165 | + } | ||
| 166 | + @Mappings(value = { | ||
| 167 | + @Mapping(source = "msgType", target = "type"), | ||
| 168 | + @Mapping(target = "createTime", ignore = true), | ||
| 169 | + }) | ||
| 170 | + MpMessageDO convert(WxMpKefuMessage bean); | ||
| 171 | + | ||
| 172 | +} |
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/convert/statistics/MpStatisticsConvert.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.mp.convert.statistics; | ||
| 2 | + | ||
| 3 | +import cn.iocoder.yudao.module.mp.controller.admin.statistics.vo.MpStatisticsInterfaceSummaryRespVO; | ||
| 4 | +import cn.iocoder.yudao.module.mp.controller.admin.statistics.vo.MpStatisticsUpstreamMessageRespVO; | ||
| 5 | +import cn.iocoder.yudao.module.mp.controller.admin.statistics.vo.MpStatisticsUserCumulateRespVO; | ||
| 6 | +import cn.iocoder.yudao.module.mp.controller.admin.statistics.vo.MpStatisticsUserSummaryRespVO; | ||
| 7 | +import me.chanjar.weixin.mp.bean.datacube.WxDataCubeInterfaceResult; | ||
| 8 | +import me.chanjar.weixin.mp.bean.datacube.WxDataCubeMsgResult; | ||
| 9 | +import me.chanjar.weixin.mp.bean.datacube.WxDataCubeUserCumulate; | ||
| 10 | +import me.chanjar.weixin.mp.bean.datacube.WxDataCubeUserSummary; | ||
| 11 | +import org.mapstruct.Mapper; | ||
| 12 | +import org.mapstruct.Mapping; | ||
| 13 | +import org.mapstruct.Mappings; | ||
| 14 | +import org.mapstruct.factory.Mappers; | ||
| 15 | + | ||
| 16 | +import java.util.List; | ||
| 17 | + | ||
| 18 | +@Mapper | ||
| 19 | +public interface MpStatisticsConvert { | ||
| 20 | + | ||
| 21 | + MpStatisticsConvert INSTANCE = Mappers.getMapper(MpStatisticsConvert.class); | ||
| 22 | + | ||
| 23 | + List<MpStatisticsUserSummaryRespVO> convertList01(List<WxDataCubeUserSummary> list); | ||
| 24 | + | ||
| 25 | + List<MpStatisticsUserCumulateRespVO> convertList02(List<WxDataCubeUserCumulate> list); | ||
| 26 | + | ||
| 27 | + List<MpStatisticsUpstreamMessageRespVO> convertList03(List<WxDataCubeMsgResult> list); | ||
| 28 | + | ||
| 29 | + @Mappings({ | ||
| 30 | + @Mapping(source = "refDate", target = "refDate", dateFormat = "yyyy-MM-dd"), | ||
| 31 | + @Mapping(source = "msgUser", target = "messageUser"), | ||
| 32 | + @Mapping(source = "msgCount", target = "messageCount"), | ||
| 33 | + }) | ||
| 34 | + MpStatisticsUpstreamMessageRespVO convert(WxDataCubeMsgResult bean); | ||
| 35 | + | ||
| 36 | + List<MpStatisticsInterfaceSummaryRespVO> convertList04(List<WxDataCubeInterfaceResult> list); | ||
| 37 | + | ||
| 38 | + @Mapping(source = "refDate", target = "refDate", dateFormat = "yyyy-MM-dd") | ||
| 39 | + MpStatisticsInterfaceSummaryRespVO convert(WxDataCubeInterfaceResult bean); | ||
| 40 | +} |
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/convert/tag/MpTagConvert.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.mp.convert.tag; | ||
| 2 | + | ||
| 3 | +import cn.iocoder.yudao.framework.common.pojo.PageResult; | ||
| 4 | +import cn.iocoder.yudao.module.mp.controller.admin.tag.vo.MpTagRespVO; | ||
| 5 | +import cn.iocoder.yudao.module.mp.controller.admin.tag.vo.MpTagSimpleRespVO; | ||
| 6 | +import cn.iocoder.yudao.module.mp.controller.admin.tag.vo.MpTagUpdateReqVO; | ||
| 7 | +import cn.iocoder.yudao.module.mp.dal.dataobject.account.MpAccountDO; | ||
| 8 | +import cn.iocoder.yudao.module.mp.dal.dataobject.tag.MpTagDO; | ||
| 9 | +import me.chanjar.weixin.mp.bean.tag.WxUserTag; | ||
| 10 | +import org.mapstruct.Mapper; | ||
| 11 | +import org.mapstruct.Mapping; | ||
| 12 | +import org.mapstruct.Mappings; | ||
| 13 | +import org.mapstruct.factory.Mappers; | ||
| 14 | + | ||
| 15 | +import java.util.List; | ||
| 16 | + | ||
| 17 | +@Mapper | ||
| 18 | +public interface MpTagConvert { | ||
| 19 | + | ||
| 20 | + MpTagConvert INSTANCE = Mappers.getMapper(MpTagConvert.class); | ||
| 21 | + | ||
| 22 | + WxUserTag convert(MpTagUpdateReqVO bean); | ||
| 23 | + | ||
| 24 | + MpTagRespVO convert(WxUserTag bean); | ||
| 25 | + | ||
| 26 | + List<MpTagRespVO> convertList(List<WxUserTag> list); | ||
| 27 | + | ||
| 28 | + PageResult<MpTagRespVO> convertPage(PageResult<MpTagDO> page); | ||
| 29 | + | ||
| 30 | + @Mappings({ | ||
| 31 | + @Mapping(target = "id", ignore = true), | ||
| 32 | + @Mapping(source = "tag.id", target = "tagId"), | ||
| 33 | + @Mapping(source = "tag.name", target = "name"), | ||
| 34 | + @Mapping(source = "tag.count", target = "count"), | ||
| 35 | + @Mapping(source = "account.id", target = "accountId"), | ||
| 36 | + @Mapping(source = "account.appId", target = "appId"), | ||
| 37 | + }) | ||
| 38 | + MpTagDO convert(WxUserTag tag, MpAccountDO account); | ||
| 39 | + | ||
| 40 | + List<MpTagSimpleRespVO> convertList02(List<MpTagDO> list); | ||
| 41 | + | ||
| 42 | +} |
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/convert/user/MpUserConvert.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.mp.convert.user; | ||
| 2 | + | ||
| 3 | +import cn.hutool.core.date.LocalDateTimeUtil; | ||
| 4 | +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; | ||
| 5 | +import cn.iocoder.yudao.framework.common.pojo.PageResult; | ||
| 6 | +import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; | ||
| 7 | +import cn.iocoder.yudao.module.mp.controller.admin.user.vo.MpUserRespVO; | ||
| 8 | +import cn.iocoder.yudao.module.mp.controller.admin.user.vo.MpUserUpdateReqVO; | ||
| 9 | +import cn.iocoder.yudao.module.mp.dal.dataobject.account.MpAccountDO; | ||
| 10 | +import cn.iocoder.yudao.module.mp.dal.dataobject.user.MpUserDO; | ||
| 11 | +import me.chanjar.weixin.mp.bean.result.WxMpUser; | ||
| 12 | +import org.mapstruct.Mapper; | ||
| 13 | +import org.mapstruct.Mapping; | ||
| 14 | +import org.mapstruct.Mappings; | ||
| 15 | +import org.mapstruct.factory.Mappers; | ||
| 16 | + | ||
| 17 | +import java.util.List; | ||
| 18 | + | ||
| 19 | +@Mapper | ||
| 20 | +public interface MpUserConvert { | ||
| 21 | + | ||
| 22 | + MpUserConvert INSTANCE = Mappers.getMapper(MpUserConvert.class); | ||
| 23 | + | ||
| 24 | + MpUserRespVO convert(MpUserDO bean); | ||
| 25 | + | ||
| 26 | + List<MpUserRespVO> convertList(List<MpUserDO> list); | ||
| 27 | + | ||
| 28 | + PageResult<MpUserRespVO> convertPage(PageResult<MpUserDO> page); | ||
| 29 | + | ||
| 30 | + @Mappings(value = { | ||
| 31 | + @Mapping(source = "openId", target = "openid"), | ||
| 32 | + @Mapping(source = "headImgUrl", target = "headImageUrl"), | ||
| 33 | + @Mapping(target = "subscribeTime", ignore = true), // 单独转换 | ||
| 34 | + }) | ||
| 35 | + MpUserDO convert(WxMpUser wxMpUser); | ||
| 36 | + | ||
| 37 | + default MpUserDO convert(MpAccountDO account, WxMpUser wxMpUser) { | ||
| 38 | + MpUserDO user = convert(wxMpUser); | ||
| 39 | + user.setSubscribeStatus(wxMpUser.getSubscribe() ? CommonStatusEnum.ENABLE.getStatus() | ||
| 40 | + : CommonStatusEnum.DISABLE.getStatus()); | ||
| 41 | + user.setSubscribeTime(LocalDateTimeUtil.of(wxMpUser.getSubscribeTime() * 1000L)); | ||
| 42 | + if (account != null) { | ||
| 43 | + user.setAccountId(account.getId()); | ||
| 44 | + user.setAppId(account.getAppId()); | ||
| 45 | + } | ||
| 46 | + return user; | ||
| 47 | + } | ||
| 48 | + | ||
| 49 | + default List<MpUserDO> convertList(MpAccountDO account, List<WxMpUser> wxUsers) { | ||
| 50 | + return CollectionUtils.convertList(wxUsers, wxUser -> convert(account, wxUser)); | ||
| 51 | + } | ||
| 52 | + | ||
| 53 | + MpUserDO convert(MpUserUpdateReqVO bean); | ||
| 54 | + | ||
| 55 | +} |
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/dal/dataobject/account/MpAccountDO.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.mp.dal.dataobject.account; | ||
| 2 | + | ||
| 3 | +import cn.iocoder.yudao.framework.tenant.core.db.TenantBaseDO; | ||
| 4 | +import com.baomidou.mybatisplus.annotation.KeySequence; | ||
| 5 | +import com.baomidou.mybatisplus.annotation.TableId; | ||
| 6 | +import com.baomidou.mybatisplus.annotation.TableName; | ||
| 7 | +import lombok.*; | ||
| 8 | + | ||
| 9 | +/** | ||
| 10 | + * 公众号账号 DO | ||
| 11 | + * | ||
| 12 | + * @author 芋道源码 | ||
| 13 | + */ | ||
| 14 | +@TableName("mp_account") | ||
| 15 | +@KeySequence("mp_account_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 | ||
| 16 | +@Data | ||
| 17 | +@EqualsAndHashCode(callSuper = true) | ||
| 18 | +@ToString(callSuper = true) | ||
| 19 | +@Builder | ||
| 20 | +@NoArgsConstructor | ||
| 21 | +@AllArgsConstructor | ||
| 22 | +public class MpAccountDO extends TenantBaseDO { | ||
| 23 | + | ||
| 24 | + /** | ||
| 25 | + * 编号 | ||
| 26 | + */ | ||
| 27 | + @TableId | ||
| 28 | + private Long id; | ||
| 29 | + /** | ||
| 30 | + * 公众号名称 | ||
| 31 | + */ | ||
| 32 | + private String name; | ||
| 33 | + /** | ||
| 34 | + * 公众号账号 | ||
| 35 | + */ | ||
| 36 | + private String account; | ||
| 37 | + /** | ||
| 38 | + * 公众号 appid | ||
| 39 | + */ | ||
| 40 | + private String appId; | ||
| 41 | + /** | ||
| 42 | + * 公众号密钥 | ||
| 43 | + */ | ||
| 44 | + private String appSecret; | ||
| 45 | + /** | ||
| 46 | + * 公众号token | ||
| 47 | + */ | ||
| 48 | + private String token; | ||
| 49 | + /** | ||
| 50 | + * 消息加解密密钥 | ||
| 51 | + */ | ||
| 52 | + private String aesKey; | ||
| 53 | + /** | ||
| 54 | + * 二维码图片 URL | ||
| 55 | + */ | ||
| 56 | + private String qrCodeUrl; | ||
| 57 | + /** | ||
| 58 | + * 备注 | ||
| 59 | + */ | ||
| 60 | + private String remark; | ||
| 61 | + | ||
| 62 | +} |
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/dal/dataobject/material/MpMaterialDO.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.mp.dal.dataobject.material; | ||
| 2 | + | ||
| 3 | +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; | ||
| 4 | +import cn.iocoder.yudao.module.mp.dal.dataobject.account.MpAccountDO; | ||
| 5 | +import com.baomidou.mybatisplus.annotation.KeySequence; | ||
| 6 | +import com.baomidou.mybatisplus.annotation.TableId; | ||
| 7 | +import com.baomidou.mybatisplus.annotation.TableName; | ||
| 8 | +import lombok.*; | ||
| 9 | +import me.chanjar.weixin.common.api.WxConsts; | ||
| 10 | + | ||
| 11 | +/** | ||
| 12 | + * 公众号素材 DO | ||
| 13 | + * | ||
| 14 | + * 1. <a href="https://developers.weixin.qq.com/doc/offiaccount/Asset_Management/New_temporary_materials.html">临时素材</a> | ||
| 15 | + * 2. <a href="https://developers.weixin.qq.com/doc/offiaccount/Asset_Management/Adding_Permanent_Assets.html">永久素材</a> | ||
| 16 | + * | ||
| 17 | + * @author 芋道源码 | ||
| 18 | + */ | ||
| 19 | +@TableName("mp_material") | ||
| 20 | +@KeySequence("mp_material_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 | ||
| 21 | +@Data | ||
| 22 | +@EqualsAndHashCode(callSuper = true) | ||
| 23 | +@ToString(callSuper = true) | ||
| 24 | +@Builder | ||
| 25 | +@NoArgsConstructor | ||
| 26 | +@AllArgsConstructor | ||
| 27 | +public class MpMaterialDO extends BaseDO { | ||
| 28 | + | ||
| 29 | + /** | ||
| 30 | + * 主键 | ||
| 31 | + */ | ||
| 32 | + @TableId | ||
| 33 | + private Long id; | ||
| 34 | + /** | ||
| 35 | + * 公众号账号的编号 | ||
| 36 | + * | ||
| 37 | + * 关联 {@link MpAccountDO#getId()} | ||
| 38 | + */ | ||
| 39 | + private Long accountId; | ||
| 40 | + /** | ||
| 41 | + * 公众号 appId | ||
| 42 | + * | ||
| 43 | + * 冗余 {@link MpAccountDO#getAppId()} | ||
| 44 | + */ | ||
| 45 | + private String appId; | ||
| 46 | + | ||
| 47 | + /** | ||
| 48 | + * 公众号素材 id | ||
| 49 | + */ | ||
| 50 | + private String mediaId; | ||
| 51 | + /** | ||
| 52 | + * 文件类型 | ||
| 53 | + * | ||
| 54 | + * 枚举 {@link WxConsts.MediaFileType} | ||
| 55 | + */ | ||
| 56 | + private String type; | ||
| 57 | + /** | ||
| 58 | + * 是否永久 | ||
| 59 | + * | ||
| 60 | + * true - 永久素材 | ||
| 61 | + * false - 临时素材 | ||
| 62 | + */ | ||
| 63 | + private Boolean permanent; | ||
| 64 | + /** | ||
| 65 | + * 文件服务器的 URL | ||
| 66 | + */ | ||
| 67 | + private String url; | ||
| 68 | + | ||
| 69 | + /** | ||
| 70 | + * 名字 | ||
| 71 | + * | ||
| 72 | + * 永久素材:非空 | ||
| 73 | + * 临时素材:可能为空。 | ||
| 74 | + * 1. 为空的情况:粉丝主动发送的图片、语音等 | ||
| 75 | + * 2. 非空的情况:主动发送给粉丝的图片、语音等 | ||
| 76 | + */ | ||
| 77 | + private String name; | ||
| 78 | + | ||
| 79 | + /** | ||
| 80 | + * 公众号文件 URL | ||
| 81 | + * | ||
| 82 | + * 只有【永久素材】使用 | ||
| 83 | + */ | ||
| 84 | + private String mpUrl; | ||
| 85 | + | ||
| 86 | + /** | ||
| 87 | + * 视频素材的标题 | ||
| 88 | + * | ||
| 89 | + * 只有【永久素材】使用 | ||
| 90 | + */ | ||
| 91 | + private String title; | ||
| 92 | + /** | ||
| 93 | + * 视频素材的描述 | ||
| 94 | + * | ||
| 95 | + * 只有【永久素材】使用 | ||
| 96 | + */ | ||
| 97 | + private String introduction; | ||
| 98 | + | ||
| 99 | +} |
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/dal/dataobject/menu/MpMenuDO.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.mp.dal.dataobject.menu; | ||
| 2 | + | ||
| 3 | +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; | ||
| 4 | +import cn.iocoder.yudao.module.mp.dal.dataobject.account.MpAccountDO; | ||
| 5 | +import cn.iocoder.yudao.module.mp.dal.dataobject.message.MpMessageDO; | ||
| 6 | +import com.baomidou.mybatisplus.annotation.KeySequence; | ||
| 7 | +import com.baomidou.mybatisplus.annotation.TableField; | ||
| 8 | +import com.baomidou.mybatisplus.annotation.TableId; | ||
| 9 | +import com.baomidou.mybatisplus.annotation.TableName; | ||
| 10 | +import lombok.Data; | ||
| 11 | +import lombok.EqualsAndHashCode; | ||
| 12 | +import lombok.ToString; | ||
| 13 | +import me.chanjar.weixin.common.api.WxConsts; | ||
| 14 | +import me.chanjar.weixin.common.api.WxConsts.MenuButtonType; | ||
| 15 | + | ||
| 16 | +import java.util.List; | ||
| 17 | + | ||
| 18 | +/** | ||
| 19 | + * 公众号菜单 DO | ||
| 20 | + * | ||
| 21 | + * @author 芋道源码 | ||
| 22 | + */ | ||
| 23 | +@TableName(value = "mp_menu", autoResultMap = true) | ||
| 24 | +@KeySequence("mp_menu_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 | ||
| 25 | +@Data | ||
| 26 | +@EqualsAndHashCode(callSuper = true) | ||
| 27 | +@ToString(callSuper = true) | ||
| 28 | +public class MpMenuDO extends BaseDO { | ||
| 29 | + | ||
| 30 | + /** | ||
| 31 | + * 编号 - 顶级菜单 | ||
| 32 | + */ | ||
| 33 | + public static final Long ID_ROOT = 0L; | ||
| 34 | + | ||
| 35 | + /** | ||
| 36 | + * 编号 | ||
| 37 | + */ | ||
| 38 | + @TableId | ||
| 39 | + private Long id; | ||
| 40 | + /** | ||
| 41 | + * 公众号账号的编号 | ||
| 42 | + * | ||
| 43 | + * 关联 {@link MpAccountDO#getId()} | ||
| 44 | + */ | ||
| 45 | + private Long accountId; | ||
| 46 | + /** | ||
| 47 | + * 公众号 appId | ||
| 48 | + * | ||
| 49 | + * 冗余 {@link MpAccountDO#getAppId()} | ||
| 50 | + */ | ||
| 51 | + private String appId; | ||
| 52 | + | ||
| 53 | + /** | ||
| 54 | + * 菜单名称 | ||
| 55 | + */ | ||
| 56 | + private String name; | ||
| 57 | + /** | ||
| 58 | + * 菜单标识 | ||
| 59 | + * | ||
| 60 | + * 支持多 DB 类型时,无法直接使用 key + @TableField("menuKey") 来实现转换,原因是 "menuKey" AS key 而存在报错 | ||
| 61 | + */ | ||
| 62 | + private String menuKey; | ||
| 63 | + /** | ||
| 64 | + * 父菜单编号 | ||
| 65 | + */ | ||
| 66 | + private Long parentId; | ||
| 67 | + | ||
| 68 | + // ========== 按钮操作 ========== | ||
| 69 | + | ||
| 70 | + /** | ||
| 71 | + * 按钮类型 | ||
| 72 | + * | ||
| 73 | + * 枚举 {@link MenuButtonType} | ||
| 74 | + */ | ||
| 75 | + private String type; | ||
| 76 | + | ||
| 77 | + /** | ||
| 78 | + * 网页链接 | ||
| 79 | + * | ||
| 80 | + * 粉丝点击菜单可打开链接,不超过 1024 字节 | ||
| 81 | + * | ||
| 82 | + * 类型为 {@link WxConsts.XmlMsgType} 的 VIEW、MINIPROGRAM | ||
| 83 | + */ | ||
| 84 | + private String url; | ||
| 85 | + | ||
| 86 | + /** | ||
| 87 | + * 小程序的 appId | ||
| 88 | + * | ||
| 89 | + * 类型为 {@link MenuButtonType} 的 MINIPROGRAM | ||
| 90 | + */ | ||
| 91 | + private String miniProgramAppId; | ||
| 92 | + /** | ||
| 93 | + * 小程序的页面路径 | ||
| 94 | + * | ||
| 95 | + * 类型为 {@link MenuButtonType} 的 MINIPROGRAM | ||
| 96 | + */ | ||
| 97 | + private String miniProgramPagePath; | ||
| 98 | + | ||
| 99 | + /** | ||
| 100 | + * 跳转图文的媒体编号 | ||
| 101 | + */ | ||
| 102 | + private String articleId; | ||
| 103 | + | ||
| 104 | + // ========== 消息内容 ========== | ||
| 105 | + | ||
| 106 | + /** | ||
| 107 | + * 消息类型 | ||
| 108 | + * | ||
| 109 | + * 当 {@link #type} 为 CLICK、SCANCODE_WAITMSG | ||
| 110 | + * | ||
| 111 | + * 枚举 {@link WxConsts.XmlMsgType} 中的 TEXT、IMAGE、VOICE、VIDEO、NEWS、MUSIC | ||
| 112 | + */ | ||
| 113 | + private String replyMessageType; | ||
| 114 | + | ||
| 115 | + /** | ||
| 116 | + * 回复的消息内容 | ||
| 117 | + * | ||
| 118 | + * 消息类型为 {@link WxConsts.XmlMsgType} 的 TEXT | ||
| 119 | + */ | ||
| 120 | + private String replyContent; | ||
| 121 | + | ||
| 122 | + /** | ||
| 123 | + * 回复的媒体 id | ||
| 124 | + * | ||
| 125 | + * 消息类型为 {@link WxConsts.XmlMsgType} 的 IMAGE、VOICE、VIDEO | ||
| 126 | + */ | ||
| 127 | + private String replyMediaId; | ||
| 128 | + /** | ||
| 129 | + * 回复的媒体 URL | ||
| 130 | + * | ||
| 131 | + * 消息类型为 {@link WxConsts.XmlMsgType} 的 IMAGE、VOICE、VIDEO | ||
| 132 | + */ | ||
| 133 | + private String replyMediaUrl; | ||
| 134 | + | ||
| 135 | + /** | ||
| 136 | + * 回复的标题 | ||
| 137 | + * | ||
| 138 | + * 消息类型为 {@link WxConsts.XmlMsgType} 的 VIDEO | ||
| 139 | + */ | ||
| 140 | + private String replyTitle; | ||
| 141 | + /** | ||
| 142 | + * 回复的描述 | ||
| 143 | + * | ||
| 144 | + * 消息类型为 {@link WxConsts.XmlMsgType} 的 VIDEO | ||
| 145 | + */ | ||
| 146 | + private String replyDescription; | ||
| 147 | + | ||
| 148 | + /** | ||
| 149 | + * 回复的缩略图的媒体 id,通过素材管理中的接口上传多媒体文件,得到的 id | ||
| 150 | + * | ||
| 151 | + * 消息类型为 {@link WxConsts.XmlMsgType} 的 MUSIC、VIDEO | ||
| 152 | + */ | ||
| 153 | + private String replyThumbMediaId; | ||
| 154 | + /** | ||
| 155 | + * 回复的缩略图的媒体 URL | ||
| 156 | + * | ||
| 157 | + * 消息类型为 {@link WxConsts.XmlMsgType} 的 MUSIC、VIDEO | ||
| 158 | + */ | ||
| 159 | + private String replyThumbMediaUrl; | ||
| 160 | + | ||
| 161 | + /** | ||
| 162 | + * 回复的图文消息数组 | ||
| 163 | + * | ||
| 164 | + * 消息类型为 {@link WxConsts.XmlMsgType} 的 NEWS | ||
| 165 | + */ | ||
| 166 | + @TableField(typeHandler = MpMessageDO.ArticleTypeHandler.class) | ||
| 167 | + private List<MpMessageDO.Article> replyArticles; | ||
| 168 | + | ||
| 169 | + /** | ||
| 170 | + * 回复的音乐链接 | ||
| 171 | + * | ||
| 172 | + * 消息类型为 {@link WxConsts.XmlMsgType} 的 MUSIC | ||
| 173 | + */ | ||
| 174 | + private String replyMusicUrl; | ||
| 175 | + /** | ||
| 176 | + * 回复的高质量音乐链接 | ||
| 177 | + * | ||
| 178 | + * WIFI 环境优先使用该链接播放音乐 | ||
| 179 | + * | ||
| 180 | + * 消息类型为 {@link WxConsts.XmlMsgType} 的 MUSIC | ||
| 181 | + */ | ||
| 182 | + private String replyHqMusicUrl; | ||
| 183 | + | ||
| 184 | +} |
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/dal/dataobject/message/MpAutoReplyDO.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.mp.dal.dataobject.message; | ||
| 2 | + | ||
| 3 | +import cn.iocoder.yudao.framework.common.util.collection.SetUtils; | ||
| 4 | +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; | ||
| 5 | +import cn.iocoder.yudao.module.mp.dal.dataobject.account.MpAccountDO; | ||
| 6 | +import cn.iocoder.yudao.module.mp.enums.message.MpAutoReplyMatchEnum; | ||
| 7 | +import cn.iocoder.yudao.module.mp.enums.message.MpAutoReplyTypeEnum; | ||
| 8 | +import com.baomidou.mybatisplus.annotation.KeySequence; | ||
| 9 | +import com.baomidou.mybatisplus.annotation.TableField; | ||
| 10 | +import com.baomidou.mybatisplus.annotation.TableId; | ||
| 11 | +import com.baomidou.mybatisplus.annotation.TableName; | ||
| 12 | +import lombok.Data; | ||
| 13 | +import lombok.EqualsAndHashCode; | ||
| 14 | +import lombok.ToString; | ||
| 15 | +import me.chanjar.weixin.common.api.WxConsts; | ||
| 16 | +import me.chanjar.weixin.common.api.WxConsts.XmlMsgType; | ||
| 17 | + | ||
| 18 | +import java.util.List; | ||
| 19 | +import java.util.Set; | ||
| 20 | + | ||
| 21 | +/** | ||
| 22 | + * 公众号消息自动回复 DO | ||
| 23 | + * | ||
| 24 | + * @author 芋道源码 | ||
| 25 | + */ | ||
| 26 | +@TableName(value = "mp_auto_reply", autoResultMap = true) | ||
| 27 | +@KeySequence("mp_auto_reply_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 | ||
| 28 | +@Data | ||
| 29 | +@EqualsAndHashCode(callSuper = true) | ||
| 30 | +@ToString(callSuper = true) | ||
| 31 | +public class MpAutoReplyDO extends BaseDO { | ||
| 32 | + | ||
| 33 | + public static Set<String> REQUEST_MESSAGE_TYPE = SetUtils.asSet(WxConsts.XmlMsgType.TEXT, WxConsts.XmlMsgType.IMAGE, | ||
| 34 | + WxConsts.XmlMsgType.VOICE, WxConsts.XmlMsgType.VIDEO, WxConsts.XmlMsgType.SHORTVIDEO, | ||
| 35 | + WxConsts.XmlMsgType.LOCATION, WxConsts.XmlMsgType.LINK); | ||
| 36 | + | ||
| 37 | + /** | ||
| 38 | + * 主键 | ||
| 39 | + */ | ||
| 40 | + @TableId | ||
| 41 | + private Long id; | ||
| 42 | + /** | ||
| 43 | + * 公众号账号的编号 | ||
| 44 | + * | ||
| 45 | + * 关联 {@link MpAccountDO#getId()} | ||
| 46 | + */ | ||
| 47 | + private Long accountId; | ||
| 48 | + /** | ||
| 49 | + * 公众号 appId | ||
| 50 | + * | ||
| 51 | + * 冗余 {@link MpAccountDO#getAppId()} | ||
| 52 | + */ | ||
| 53 | + private String appId; | ||
| 54 | + | ||
| 55 | + /** | ||
| 56 | + * 回复类型 | ||
| 57 | + * | ||
| 58 | + * 枚举 {@link MpAutoReplyTypeEnum} | ||
| 59 | + */ | ||
| 60 | + private Integer type; | ||
| 61 | + | ||
| 62 | + // ==================== 请求消息 ==================== | ||
| 63 | + | ||
| 64 | + /** | ||
| 65 | + * 请求的关键字 | ||
| 66 | + * | ||
| 67 | + * 当 {@link #type} 为 {@link MpAutoReplyTypeEnum#KEYWORD} | ||
| 68 | + */ | ||
| 69 | + private String requestKeyword; | ||
| 70 | + /** | ||
| 71 | + * 请求的关键字的匹配 | ||
| 72 | + * | ||
| 73 | + * 当 {@link #type} 为 {@link MpAutoReplyTypeEnum#KEYWORD} | ||
| 74 | + * | ||
| 75 | + * 枚举 {@link MpAutoReplyMatchEnum} | ||
| 76 | + */ | ||
| 77 | + private Integer requestMatch; | ||
| 78 | + | ||
| 79 | + /** | ||
| 80 | + * 请求的消息类型 | ||
| 81 | + * | ||
| 82 | + * 当 {@link #type} 为 {@link MpAutoReplyTypeEnum#MESSAGE} | ||
| 83 | + * | ||
| 84 | + * 枚举 {@link XmlMsgType} 中的 {@link #REQUEST_MESSAGE_TYPE} | ||
| 85 | + */ | ||
| 86 | + private String requestMessageType; | ||
| 87 | + | ||
| 88 | + // ==================== 响应消息 ==================== | ||
| 89 | + | ||
| 90 | + /** | ||
| 91 | + * 回复的消息类型 | ||
| 92 | + * | ||
| 93 | + * 枚举 {@link XmlMsgType} 中的 TEXT、IMAGE、VOICE、VIDEO、NEWS | ||
| 94 | + */ | ||
| 95 | + private String responseMessageType; | ||
| 96 | + | ||
| 97 | + /** | ||
| 98 | + * 回复的消息内容 | ||
| 99 | + * | ||
| 100 | + * 消息类型为 {@link WxConsts.XmlMsgType} 的 TEXT | ||
| 101 | + */ | ||
| 102 | + private String responseContent; | ||
| 103 | + | ||
| 104 | + /** | ||
| 105 | + * 回复的媒体 id | ||
| 106 | + * | ||
| 107 | + * 消息类型为 {@link WxConsts.XmlMsgType} 的 IMAGE、VOICE、VIDEO | ||
| 108 | + */ | ||
| 109 | + private String responseMediaId; | ||
| 110 | + /** | ||
| 111 | + * 回复的媒体 URL | ||
| 112 | + */ | ||
| 113 | + private String responseMediaUrl; | ||
| 114 | + | ||
| 115 | + /** | ||
| 116 | + * 回复的标题 | ||
| 117 | + * | ||
| 118 | + * 消息类型为 {@link WxConsts.XmlMsgType} 的 VIDEO | ||
| 119 | + */ | ||
| 120 | + private String responseTitle; | ||
| 121 | + /** | ||
| 122 | + * 回复的描述 | ||
| 123 | + * | ||
| 124 | + * 消息类型为 {@link WxConsts.XmlMsgType} 的 VIDEO | ||
| 125 | + */ | ||
| 126 | + private String responseDescription; | ||
| 127 | + | ||
| 128 | + /** | ||
| 129 | + * 回复的缩略图的媒体 id,通过素材管理中的接口上传多媒体文件,得到的 id | ||
| 130 | + * | ||
| 131 | + * 消息类型为 {@link WxConsts.XmlMsgType} 的 MUSIC、VIDEO | ||
| 132 | + */ | ||
| 133 | + private String responseThumbMediaId; | ||
| 134 | + /** | ||
| 135 | + * 回复的缩略图的媒体 URL | ||
| 136 | + * | ||
| 137 | + * 消息类型为 {@link WxConsts.XmlMsgType} 的 MUSIC、VIDEO | ||
| 138 | + */ | ||
| 139 | + private String responseThumbMediaUrl; | ||
| 140 | + | ||
| 141 | + /** | ||
| 142 | + * 回复的图文消息 | ||
| 143 | + * | ||
| 144 | + * 消息类型为 {@link WxConsts.XmlMsgType} 的 NEWS | ||
| 145 | + */ | ||
| 146 | + @TableField(typeHandler = MpMessageDO.ArticleTypeHandler.class) | ||
| 147 | + private List<MpMessageDO.Article> responseArticles; | ||
| 148 | + | ||
| 149 | + /** | ||
| 150 | + * 回复的音乐链接 | ||
| 151 | + * | ||
| 152 | + * 消息类型为 {@link WxConsts.XmlMsgType} 的 MUSIC | ||
| 153 | + */ | ||
| 154 | + private String responseMusicUrl; | ||
| 155 | + /** | ||
| 156 | + * 回复的高质量音乐链接 | ||
| 157 | + * | ||
| 158 | + * WIFI 环境优先使用该链接播放音乐 | ||
| 159 | + * | ||
| 160 | + * 消息类型为 {@link WxConsts.XmlMsgType} 的 MUSIC | ||
| 161 | + */ | ||
| 162 | + private String responseHqMusicUrl; | ||
| 163 | + | ||
| 164 | +} |
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/dal/dataobject/message/MpMessageDO.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.mp.dal.dataobject.message; | ||
| 2 | + | ||
| 3 | +import cn.iocoder.yudao.framework.common.util.json.JsonUtils; | ||
| 4 | +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; | ||
| 5 | +import cn.iocoder.yudao.module.mp.dal.dataobject.account.MpAccountDO; | ||
| 6 | +import cn.iocoder.yudao.module.mp.dal.dataobject.user.MpUserDO; | ||
| 7 | +import cn.iocoder.yudao.module.mp.enums.message.MpMessageSendFromEnum; | ||
| 8 | +import com.baomidou.mybatisplus.annotation.KeySequence; | ||
| 9 | +import com.baomidou.mybatisplus.annotation.TableField; | ||
| 10 | +import com.baomidou.mybatisplus.annotation.TableId; | ||
| 11 | +import com.baomidou.mybatisplus.annotation.TableName; | ||
| 12 | +import com.baomidou.mybatisplus.extension.handlers.AbstractJsonTypeHandler; | ||
| 13 | +import lombok.*; | ||
| 14 | +import me.chanjar.weixin.common.api.WxConsts; | ||
| 15 | +import me.chanjar.weixin.mp.builder.kefu.NewsBuilder; | ||
| 16 | + | ||
| 17 | +import javax.validation.constraints.NotEmpty; | ||
| 18 | +import java.io.Serializable; | ||
| 19 | +import java.util.List; | ||
| 20 | + | ||
| 21 | +/** | ||
| 22 | + * 公众号消息 DO | ||
| 23 | + * | ||
| 24 | + * @author 芋道源码 | ||
| 25 | + */ | ||
| 26 | +@TableName(value = "mp_message", autoResultMap = true) | ||
| 27 | +@KeySequence("mp_message_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 | ||
| 28 | +@Data | ||
| 29 | +@EqualsAndHashCode(callSuper = true) | ||
| 30 | +@ToString(callSuper = true) | ||
| 31 | +public class MpMessageDO extends BaseDO { | ||
| 32 | + | ||
| 33 | + /** | ||
| 34 | + * 主键 | ||
| 35 | + */ | ||
| 36 | + @TableId | ||
| 37 | + private Long id; | ||
| 38 | + /** | ||
| 39 | + * 微信公众号消息 id | ||
| 40 | + */ | ||
| 41 | + private Long msgId; | ||
| 42 | + /** | ||
| 43 | + * 公众号账号的 ID | ||
| 44 | + * | ||
| 45 | + * 关联 {@link MpAccountDO#getId()} | ||
| 46 | + */ | ||
| 47 | + private Long accountId; | ||
| 48 | + /** | ||
| 49 | + * 公众号 appid | ||
| 50 | + * | ||
| 51 | + * 冗余 {@link MpAccountDO#getAppId()} | ||
| 52 | + */ | ||
| 53 | + private String appId; | ||
| 54 | + /** | ||
| 55 | + * 公众号粉丝的编号 | ||
| 56 | + * | ||
| 57 | + * 关联 {@link MpUserDO#getId()} | ||
| 58 | + */ | ||
| 59 | + private Long userId; | ||
| 60 | + /** | ||
| 61 | + * 公众号粉丝标志 | ||
| 62 | + * | ||
| 63 | + * 冗余 {@link MpUserDO#getOpenid()} | ||
| 64 | + */ | ||
| 65 | + private String openid; | ||
| 66 | + | ||
| 67 | + /** | ||
| 68 | + * 消息类型 | ||
| 69 | + * | ||
| 70 | + * 枚举 {@link WxConsts.XmlMsgType} | ||
| 71 | + */ | ||
| 72 | + private String type; | ||
| 73 | + /** | ||
| 74 | + * 消息来源 | ||
| 75 | + * | ||
| 76 | + * 枚举 {@link MpMessageSendFromEnum} | ||
| 77 | + */ | ||
| 78 | + private Integer sendFrom; | ||
| 79 | + | ||
| 80 | + // ========= 普通消息内容 https://developers.weixin.qq.com/doc/offiaccount/Message_Management/Receiving_standard_messages.html | ||
| 81 | + | ||
| 82 | + /** | ||
| 83 | + * 消息内容 | ||
| 84 | + * | ||
| 85 | + * 消息类型为 {@link WxConsts.XmlMsgType} 的 TEXT | ||
| 86 | + */ | ||
| 87 | + private String content; | ||
| 88 | + | ||
| 89 | + /** | ||
| 90 | + * 媒体文件的编号 | ||
| 91 | + * | ||
| 92 | + * 消息类型为 {@link WxConsts.XmlMsgType} 的 IMAGE、VOICE、VIDEO | ||
| 93 | + */ | ||
| 94 | + private String mediaId; | ||
| 95 | + /** | ||
| 96 | + * 媒体文件的 URL | ||
| 97 | + */ | ||
| 98 | + private String mediaUrl; | ||
| 99 | + /** | ||
| 100 | + * 语音识别后文本 | ||
| 101 | + * | ||
| 102 | + * 消息类型为 {@link WxConsts.XmlMsgType} 的 VOICE | ||
| 103 | + */ | ||
| 104 | + private String recognition; | ||
| 105 | + /** | ||
| 106 | + * 语音格式,如 amr,speex 等 | ||
| 107 | + * | ||
| 108 | + * 消息类型为 {@link WxConsts.XmlMsgType} 的 VOICE | ||
| 109 | + */ | ||
| 110 | + private String format; | ||
| 111 | + /** | ||
| 112 | + * 标题 | ||
| 113 | + * | ||
| 114 | + * 消息类型为 {@link WxConsts.XmlMsgType} 的 VIDEO、MUSIC、LINK | ||
| 115 | + */ | ||
| 116 | + private String title; | ||
| 117 | + /** | ||
| 118 | + * 描述 | ||
| 119 | + * | ||
| 120 | + * 消息类型为 {@link WxConsts.XmlMsgType} 的 VIDEO、MUSIC | ||
| 121 | + */ | ||
| 122 | + private String description; | ||
| 123 | + | ||
| 124 | + /** | ||
| 125 | + * 缩略图的媒体 id,通过素材管理中的接口上传多媒体文件,得到的 id | ||
| 126 | + * | ||
| 127 | + * 消息类型为 {@link WxConsts.XmlMsgType} 的 MUSIC、VIDEO | ||
| 128 | + */ | ||
| 129 | + private String thumbMediaId; | ||
| 130 | + /** | ||
| 131 | + * 缩略图的媒体 URL | ||
| 132 | + * | ||
| 133 | + * 消息类型为 {@link WxConsts.XmlMsgType} 的 MUSIC、VIDEO | ||
| 134 | + */ | ||
| 135 | + private String thumbMediaUrl; | ||
| 136 | + | ||
| 137 | + /** | ||
| 138 | + * 点击图文消息跳转链接 | ||
| 139 | + * | ||
| 140 | + * 消息类型为 {@link WxConsts.XmlMsgType} 的 LINK | ||
| 141 | + */ | ||
| 142 | + private String url; | ||
| 143 | + | ||
| 144 | + /** | ||
| 145 | + * 地理位置维度 | ||
| 146 | + * | ||
| 147 | + * 消息类型为 {@link WxConsts.XmlMsgType} 的 LOCATION | ||
| 148 | + */ | ||
| 149 | + private Double locationX; | ||
| 150 | + /** | ||
| 151 | + * 地理位置经度 | ||
| 152 | + * | ||
| 153 | + * 消息类型为 {@link WxConsts.XmlMsgType} 的 LOCATION | ||
| 154 | + */ | ||
| 155 | + private Double locationY; | ||
| 156 | + /** | ||
| 157 | + * 地图缩放大小 | ||
| 158 | + * | ||
| 159 | + * 消息类型为 {@link WxConsts.XmlMsgType} 的 LOCATION | ||
| 160 | + */ | ||
| 161 | + private Double scale; | ||
| 162 | + /** | ||
| 163 | + * 详细地址 | ||
| 164 | + * | ||
| 165 | + * 消息类型为 {@link WxConsts.XmlMsgType} 的 LOCATION | ||
| 166 | + * | ||
| 167 | + * 例如说杨浦区黄兴路 221-4 号临 | ||
| 168 | + */ | ||
| 169 | + private String label; | ||
| 170 | + | ||
| 171 | + /** | ||
| 172 | + * 图文消息数组 | ||
| 173 | + * | ||
| 174 | + * 消息类型为 {@link WxConsts.XmlMsgType} 的 NEWS | ||
| 175 | + */ | ||
| 176 | + @TableField(typeHandler = ArticleTypeHandler.class) | ||
| 177 | + private List<Article> articles; | ||
| 178 | + | ||
| 179 | + /** | ||
| 180 | + * 音乐链接 | ||
| 181 | + * | ||
| 182 | + * 消息类型为 {@link WxConsts.XmlMsgType} 的 MUSIC | ||
| 183 | + */ | ||
| 184 | + private String musicUrl; | ||
| 185 | + /** | ||
| 186 | + * 高质量音乐链接 | ||
| 187 | + * | ||
| 188 | + * WIFI 环境优先使用该链接播放音乐 | ||
| 189 | + * | ||
| 190 | + * 消息类型为 {@link WxConsts.XmlMsgType} 的 MUSIC | ||
| 191 | + */ | ||
| 192 | + private String hqMusicUrl; | ||
| 193 | + | ||
| 194 | + // ========= 事件推送 https://developers.weixin.qq.com/doc/offiaccount/Message_Management/Receiving_event_pushes.html | ||
| 195 | + | ||
| 196 | + /** | ||
| 197 | + * 事件类型 | ||
| 198 | + * | ||
| 199 | + * 枚举 {@link WxConsts.EventType} | ||
| 200 | + */ | ||
| 201 | + private String event; | ||
| 202 | + /** | ||
| 203 | + * 事件 Key | ||
| 204 | + * | ||
| 205 | + * 1. {@link WxConsts.EventType} 的 SCAN:qrscene_ 为前缀,后面为二维码的参数值 | ||
| 206 | + * 2. {@link WxConsts.EventType} 的 CLICK:与自定义菜单接口中 KEY 值对应 | ||
| 207 | + */ | ||
| 208 | + private String eventKey; | ||
| 209 | + | ||
| 210 | + /** | ||
| 211 | + * 文章 | ||
| 212 | + */ | ||
| 213 | + @Data | ||
| 214 | + public static class Article implements Serializable { | ||
| 215 | + | ||
| 216 | + /** | ||
| 217 | + * 图文消息标题 | ||
| 218 | + */ | ||
| 219 | + @NotEmpty(message = "图文消息标题不能为空", groups = NewsBuilder.class) | ||
| 220 | + private String title; | ||
| 221 | + /** | ||
| 222 | + * 图文消息描述 | ||
| 223 | + */ | ||
| 224 | + @NotEmpty(message = "图文消息描述不能为空", groups = NewsBuilder.class) | ||
| 225 | + private String description; | ||
| 226 | + /** | ||
| 227 | + * 图片链接 | ||
| 228 | + * | ||
| 229 | + * 支持 JPG、PNG 格式,较好的效果为大图 360*200,小图 200*200 | ||
| 230 | + */ | ||
| 231 | + @NotEmpty(message = "图片链接不能为空", groups = NewsBuilder.class) | ||
| 232 | + private String picUrl; | ||
| 233 | + /** | ||
| 234 | + * 点击图文消息跳转链接 | ||
| 235 | + */ | ||
| 236 | + @NotEmpty(message = "点击图文消息跳转链接不能为空", groups = NewsBuilder.class) | ||
| 237 | + private String url; | ||
| 238 | + | ||
| 239 | + } | ||
| 240 | + | ||
| 241 | + // TODO @芋艿:可以找一些新的思路 | ||
| 242 | + public static class ArticleTypeHandler extends AbstractJsonTypeHandler<List<Article>> { | ||
| 243 | + | ||
| 244 | + @Override | ||
| 245 | + protected List<Article> parse(String json) { | ||
| 246 | + return JsonUtils.parseArray(json, Article.class); | ||
| 247 | + } | ||
| 248 | + | ||
| 249 | + @Override | ||
| 250 | + protected String toJson(List<Article> obj) { | ||
| 251 | + return JsonUtils.toJsonString(obj); | ||
| 252 | + } | ||
| 253 | + | ||
| 254 | + } | ||
| 255 | +} |
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/dal/dataobject/tag/MpTagDO.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.mp.dal.dataobject.tag; | ||
| 2 | + | ||
| 3 | +import cn.iocoder.yudao.module.mp.dal.dataobject.account.MpAccountDO; | ||
| 4 | +import lombok.*; | ||
| 5 | + | ||
| 6 | +import com.baomidou.mybatisplus.annotation.*; | ||
| 7 | +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; | ||
| 8 | +import me.chanjar.weixin.mp.bean.tag.WxUserTag; | ||
| 9 | + | ||
| 10 | +/** | ||
| 11 | + * 公众号标签 DO | ||
| 12 | + * | ||
| 13 | + * @author 芋道源码 | ||
| 14 | + */ | ||
| 15 | +@TableName("mp_tag") | ||
| 16 | +@KeySequence("mp_tag_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 | ||
| 17 | +@Data | ||
| 18 | +@EqualsAndHashCode(callSuper = true) | ||
| 19 | +@ToString(callSuper = true) | ||
| 20 | +@Builder | ||
| 21 | +@NoArgsConstructor | ||
| 22 | +@AllArgsConstructor | ||
| 23 | +public class MpTagDO extends BaseDO { | ||
| 24 | + | ||
| 25 | + /** | ||
| 26 | + * 主键 | ||
| 27 | + */ | ||
| 28 | + @TableId(type = IdType.INPUT) | ||
| 29 | + private Long id; | ||
| 30 | + /** | ||
| 31 | + * 公众号标签 id | ||
| 32 | + */ | ||
| 33 | + private Long tagId; | ||
| 34 | + /** | ||
| 35 | + * 标签名 | ||
| 36 | + */ | ||
| 37 | + private String name; | ||
| 38 | + /** | ||
| 39 | + * 此标签下粉丝数 | ||
| 40 | + * | ||
| 41 | + * 冗余:{@link WxUserTag#getCount()} 字段,需要管理员点击【同步】后,更新该字段 | ||
| 42 | + */ | ||
| 43 | + private Integer count; | ||
| 44 | + | ||
| 45 | + /** | ||
| 46 | + * 公众号账号的编号 | ||
| 47 | + * | ||
| 48 | + * 关联 {@link MpAccountDO#getId()} | ||
| 49 | + */ | ||
| 50 | + private Long accountId; | ||
| 51 | + /** | ||
| 52 | + * 公众号 appId | ||
| 53 | + * | ||
| 54 | + * 冗余 {@link MpAccountDO#getAppId()} | ||
| 55 | + */ | ||
| 56 | + private String appId; | ||
| 57 | + | ||
| 58 | +} |
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/dal/dataobject/user/MpUserDO.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.mp.dal.dataobject.user; | ||
| 2 | + | ||
| 3 | +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; | ||
| 4 | +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; | ||
| 5 | +import cn.iocoder.yudao.framework.mybatis.core.type.LongListTypeHandler; | ||
| 6 | +import cn.iocoder.yudao.module.mp.dal.dataobject.account.MpAccountDO; | ||
| 7 | +import cn.iocoder.yudao.module.mp.dal.dataobject.tag.MpTagDO; | ||
| 8 | +import com.baomidou.mybatisplus.annotation.KeySequence; | ||
| 9 | +import com.baomidou.mybatisplus.annotation.TableField; | ||
| 10 | +import com.baomidou.mybatisplus.annotation.TableId; | ||
| 11 | +import com.baomidou.mybatisplus.annotation.TableName; | ||
| 12 | +import lombok.*; | ||
| 13 | + | ||
| 14 | +import java.time.LocalDateTime; | ||
| 15 | +import java.util.List; | ||
| 16 | + | ||
| 17 | +/** | ||
| 18 | + * 微信公众号粉丝 DO | ||
| 19 | + * | ||
| 20 | + * @author 芋道源码 | ||
| 21 | + */ | ||
| 22 | +@TableName(value = "mp_user", autoResultMap = true) | ||
| 23 | +@KeySequence("mp_user_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 | ||
| 24 | +@Data | ||
| 25 | +@EqualsAndHashCode(callSuper = true) | ||
| 26 | +@ToString(callSuper = true) | ||
| 27 | +@Builder | ||
| 28 | +@NoArgsConstructor | ||
| 29 | +@AllArgsConstructor | ||
| 30 | +public class MpUserDO extends BaseDO { | ||
| 31 | + | ||
| 32 | + /** | ||
| 33 | + * 编号 | ||
| 34 | + */ | ||
| 35 | + @TableId | ||
| 36 | + private Long id; | ||
| 37 | + /** | ||
| 38 | + * 粉丝标识 | ||
| 39 | + */ | ||
| 40 | + private String openid; | ||
| 41 | + /** | ||
| 42 | + * 关注状态 | ||
| 43 | + * | ||
| 44 | + * 枚举 {@link CommonStatusEnum} | ||
| 45 | + * 1. 开启 - 已关注 | ||
| 46 | + * 2. 禁用 - 取消关注 | ||
| 47 | + */ | ||
| 48 | + private Integer subscribeStatus; | ||
| 49 | + /** | ||
| 50 | + * 关注时间 | ||
| 51 | + */ | ||
| 52 | + private LocalDateTime subscribeTime; | ||
| 53 | + /** | ||
| 54 | + * 取消关注时间 | ||
| 55 | + */ | ||
| 56 | + private LocalDateTime unsubscribeTime; | ||
| 57 | + /** | ||
| 58 | + * 昵称 | ||
| 59 | + * | ||
| 60 | + * 注意,2021-12-27 公众号接口不再返回头像和昵称,只能通过微信公众号的网页登录获取 | ||
| 61 | + */ | ||
| 62 | + private String nickname; | ||
| 63 | + /** | ||
| 64 | + * 头像地址 | ||
| 65 | + * | ||
| 66 | + * 注意,2021-12-27 公众号接口不再返回头像和昵称,只能通过微信公众号的网页登录获取 | ||
| 67 | + */ | ||
| 68 | + private String headImageUrl; | ||
| 69 | + /** | ||
| 70 | + * 语言 | ||
| 71 | + */ | ||
| 72 | + private String language; | ||
| 73 | + /** | ||
| 74 | + * 国家 | ||
| 75 | + */ | ||
| 76 | + private String country; | ||
| 77 | + /** | ||
| 78 | + * 省份 | ||
| 79 | + */ | ||
| 80 | + private String province; | ||
| 81 | + /** | ||
| 82 | + * 城市 | ||
| 83 | + */ | ||
| 84 | + private String city; | ||
| 85 | + /** | ||
| 86 | + * 备注 | ||
| 87 | + */ | ||
| 88 | + private String remark; | ||
| 89 | + /** | ||
| 90 | + * 标签编号数组 | ||
| 91 | + * | ||
| 92 | + * 注意,对应的是 {@link MpTagDO#getTagId()} 字段 | ||
| 93 | + */ | ||
| 94 | + @TableField(typeHandler = LongListTypeHandler.class) | ||
| 95 | + private List<Long> tagIds; | ||
| 96 | + | ||
| 97 | + /** | ||
| 98 | + * 公众号账号的编号 | ||
| 99 | + * | ||
| 100 | + * 关联 {@link MpAccountDO#getId()} | ||
| 101 | + */ | ||
| 102 | + private Long accountId; | ||
| 103 | + /** | ||
| 104 | + * 公众号 appId | ||
| 105 | + * | ||
| 106 | + * 冗余 {@link MpAccountDO#getAppId()} | ||
| 107 | + */ | ||
| 108 | + private String appId; | ||
| 109 | + | ||
| 110 | +} |
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/dal/mysql/account/MpAccountMapper.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.mp.dal.mysql.account; | ||
| 2 | + | ||
| 3 | +import cn.iocoder.yudao.framework.common.pojo.PageResult; | ||
| 4 | +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; | ||
| 5 | +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; | ||
| 6 | +import cn.iocoder.yudao.module.mp.controller.admin.account.vo.MpAccountPageReqVO; | ||
| 7 | +import cn.iocoder.yudao.module.mp.dal.dataobject.account.MpAccountDO; | ||
| 8 | +import org.apache.ibatis.annotations.Mapper; | ||
| 9 | + | ||
| 10 | +@Mapper | ||
| 11 | +public interface MpAccountMapper extends BaseMapperX<MpAccountDO> { | ||
| 12 | + | ||
| 13 | + default PageResult<MpAccountDO> selectPage(MpAccountPageReqVO reqVO) { | ||
| 14 | + return selectPage(reqVO, new LambdaQueryWrapperX<MpAccountDO>() | ||
| 15 | + .likeIfPresent(MpAccountDO::getName, reqVO.getName()) | ||
| 16 | + .likeIfPresent(MpAccountDO::getAccount, reqVO.getAccount()) | ||
| 17 | + .likeIfPresent(MpAccountDO::getAppId, reqVO.getAppId()) | ||
| 18 | + .orderByDesc(MpAccountDO::getId)); | ||
| 19 | + } | ||
| 20 | + | ||
| 21 | + default MpAccountDO selectByAppId(String appId) { | ||
| 22 | + return selectOne(MpAccountDO::getAppId, appId); | ||
| 23 | + } | ||
| 24 | + | ||
| 25 | +} |
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/dal/mysql/material/MpMaterialMapper.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.mp.dal.mysql.material; | ||
| 2 | + | ||
| 3 | +import cn.iocoder.yudao.framework.common.pojo.PageResult; | ||
| 4 | +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; | ||
| 5 | +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; | ||
| 6 | +import cn.iocoder.yudao.module.mp.controller.admin.material.vo.MpMaterialPageReqVO; | ||
| 7 | +import cn.iocoder.yudao.module.mp.dal.dataobject.material.MpMaterialDO; | ||
| 8 | +import org.apache.ibatis.annotations.Mapper; | ||
| 9 | + | ||
| 10 | +import java.util.Collection; | ||
| 11 | +import java.util.List; | ||
| 12 | + | ||
| 13 | +@Mapper | ||
| 14 | +public interface MpMaterialMapper extends BaseMapperX<MpMaterialDO> { | ||
| 15 | + | ||
| 16 | + default MpMaterialDO selectByAccountIdAndMediaId(Long accountId, String mediaId) { | ||
| 17 | + return selectOne(MpMaterialDO::getAccountId, accountId, | ||
| 18 | + MpMaterialDO::getMediaId, mediaId); | ||
| 19 | + } | ||
| 20 | + | ||
| 21 | + default PageResult<MpMaterialDO> selectPage(MpMaterialPageReqVO pageReqVO) { | ||
| 22 | + return selectPage(pageReqVO, new LambdaQueryWrapperX<MpMaterialDO>() | ||
| 23 | + .eq(MpMaterialDO::getAccountId, pageReqVO.getAccountId()) | ||
| 24 | + .eqIfPresent(MpMaterialDO::getPermanent, pageReqVO.getPermanent()) | ||
| 25 | + .eqIfPresent(MpMaterialDO::getType, pageReqVO.getType()) | ||
| 26 | + .orderByDesc(MpMaterialDO::getId)); | ||
| 27 | + } | ||
| 28 | + | ||
| 29 | + default List<MpMaterialDO> selectListByMediaId(Collection<String> mediaIds) { | ||
| 30 | + return selectList(MpMaterialDO::getMediaId, mediaIds); | ||
| 31 | + } | ||
| 32 | + | ||
| 33 | +} |
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/dal/mysql/menu/MpMenuMapper.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.mp.dal.mysql.menu; | ||
| 2 | + | ||
| 3 | +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; | ||
| 4 | +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; | ||
| 5 | +import cn.iocoder.yudao.module.mp.dal.dataobject.menu.MpMenuDO; | ||
| 6 | +import org.apache.ibatis.annotations.Mapper; | ||
| 7 | + | ||
| 8 | +import java.util.List; | ||
| 9 | + | ||
| 10 | +@Mapper | ||
| 11 | +public interface MpMenuMapper extends BaseMapperX<MpMenuDO> { | ||
| 12 | + | ||
| 13 | + default MpMenuDO selectByAppIdAndMenuKey(String appId, String menuKey) { | ||
| 14 | + return selectOne(MpMenuDO::getAppId, appId, | ||
| 15 | + MpMenuDO::getMenuKey, menuKey); | ||
| 16 | + } | ||
| 17 | + | ||
| 18 | + default List<MpMenuDO> selectListByAccountId(Long accountId) { | ||
| 19 | + return selectList(MpMenuDO::getAccountId, accountId); | ||
| 20 | + } | ||
| 21 | + | ||
| 22 | + default void deleteByAccountId(Long accountId) { | ||
| 23 | + delete(new LambdaQueryWrapperX<MpMenuDO>().eq(MpMenuDO::getAccountId, accountId)); | ||
| 24 | + } | ||
| 25 | +} |
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/dal/mysql/message/MpAutoReplyMapper.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.mp.dal.mysql.message; | ||
| 2 | + | ||
| 3 | +import cn.iocoder.yudao.framework.common.pojo.PageResult; | ||
| 4 | +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; | ||
| 5 | +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; | ||
| 6 | +import cn.iocoder.yudao.module.mp.controller.admin.message.vo.message.MpMessagePageReqVO; | ||
| 7 | +import cn.iocoder.yudao.module.mp.dal.dataobject.message.MpAutoReplyDO; | ||
| 8 | +import cn.iocoder.yudao.module.mp.enums.message.MpAutoReplyMatchEnum; | ||
| 9 | +import cn.iocoder.yudao.module.mp.enums.message.MpAutoReplyTypeEnum; | ||
| 10 | +import org.apache.ibatis.annotations.Mapper; | ||
| 11 | + | ||
| 12 | +import java.util.List; | ||
| 13 | + | ||
| 14 | +@Mapper | ||
| 15 | +public interface MpAutoReplyMapper extends BaseMapperX<MpAutoReplyDO> { | ||
| 16 | + | ||
| 17 | + default PageResult<MpAutoReplyDO> selectPage(MpMessagePageReqVO pageVO) { | ||
| 18 | + return selectPage(pageVO, new LambdaQueryWrapperX<MpAutoReplyDO>() | ||
| 19 | + .eq(MpAutoReplyDO::getAccountId, pageVO.getAccountId()) | ||
| 20 | + .eqIfPresent(MpAutoReplyDO::getType, pageVO.getType())); | ||
| 21 | + } | ||
| 22 | + | ||
| 23 | + default List<MpAutoReplyDO> selectListByAppIdAndKeywordAll(String appId, String requestKeyword) { | ||
| 24 | + return selectList(new LambdaQueryWrapperX<MpAutoReplyDO>() | ||
| 25 | + .eq(MpAutoReplyDO::getAppId, appId) | ||
| 26 | + .eq(MpAutoReplyDO::getType, MpAutoReplyTypeEnum.KEYWORD.getType()) | ||
| 27 | + .eq(MpAutoReplyDO::getRequestMatch, MpAutoReplyMatchEnum.ALL.getMatch()) | ||
| 28 | + .eq(MpAutoReplyDO::getRequestKeyword, requestKeyword)); | ||
| 29 | + } | ||
| 30 | + | ||
| 31 | + default List<MpAutoReplyDO> selectListByAppIdAndKeywordLike(String appId, String requestKeyword) { | ||
| 32 | + return selectList(new LambdaQueryWrapperX<MpAutoReplyDO>() | ||
| 33 | + .eq(MpAutoReplyDO::getAppId, appId) | ||
| 34 | + .eq(MpAutoReplyDO::getType, MpAutoReplyTypeEnum.KEYWORD.getType()) | ||
| 35 | + .eq(MpAutoReplyDO::getRequestMatch, MpAutoReplyMatchEnum.LIKE.getMatch()) | ||
| 36 | + .like(MpAutoReplyDO::getRequestKeyword, requestKeyword)); | ||
| 37 | + } | ||
| 38 | + | ||
| 39 | + default List<MpAutoReplyDO> selectListByAppIdAndMessage(String appId, String requestMessageType) { | ||
| 40 | + return selectList(new LambdaQueryWrapperX<MpAutoReplyDO>() | ||
| 41 | + .eq(MpAutoReplyDO::getAppId, appId) | ||
| 42 | + .eq(MpAutoReplyDO::getType, MpAutoReplyTypeEnum.MESSAGE.getType()) | ||
| 43 | + .eq(MpAutoReplyDO::getRequestMessageType, requestMessageType)); | ||
| 44 | + } | ||
| 45 | + | ||
| 46 | + default List<MpAutoReplyDO> selectListByAppIdAndSubscribe(String appId) { | ||
| 47 | + return selectList(new LambdaQueryWrapperX<MpAutoReplyDO>() | ||
| 48 | + .eq(MpAutoReplyDO::getAppId, appId) | ||
| 49 | + .eq(MpAutoReplyDO::getType, MpAutoReplyTypeEnum.SUBSCRIBE.getType())); | ||
| 50 | + } | ||
| 51 | + | ||
| 52 | + default MpAutoReplyDO selectByAccountIdAndSubscribe(Long accountId) { | ||
| 53 | + return selectOne(MpAutoReplyDO::getAccountId, accountId, | ||
| 54 | + MpAutoReplyDO::getType, MpAutoReplyTypeEnum.SUBSCRIBE.getType()); | ||
| 55 | + } | ||
| 56 | + | ||
| 57 | + default MpAutoReplyDO selectByAccountIdAndMessage(Long accountId, String requestMessageType) { | ||
| 58 | + return selectOne(new LambdaQueryWrapperX<MpAutoReplyDO>() | ||
| 59 | + .eq(MpAutoReplyDO::getAccountId, accountId) | ||
| 60 | + .eq(MpAutoReplyDO::getType, MpAutoReplyTypeEnum.MESSAGE.getType()) | ||
| 61 | + .eq(MpAutoReplyDO::getRequestMessageType, requestMessageType)); | ||
| 62 | + } | ||
| 63 | + | ||
| 64 | + default MpAutoReplyDO selectByAccountIdAndKeyword(Long accountId, String requestKeyword) { | ||
| 65 | + return selectOne(new LambdaQueryWrapperX<MpAutoReplyDO>() | ||
| 66 | + .eq(MpAutoReplyDO::getAccountId, accountId) | ||
| 67 | + .eq(MpAutoReplyDO::getType, MpAutoReplyTypeEnum.KEYWORD.getType()) | ||
| 68 | + .eq(MpAutoReplyDO::getRequestKeyword, requestKeyword)); | ||
| 69 | + } | ||
| 70 | +} |