Commit fbbcd2717a8c8c0428d1655cad22bbc7ef79d702
1 parent
58d368cf
短信模板的创建 Test 单元测试
Showing
7 changed files
with
305 additions
and
132 deletions
sql/ruoyi-vue-pro.sql
| 1 | /* | 1 | /* |
| 2 | Navicat Premium Data Transfer | 2 | Navicat Premium Data Transfer |
| 3 | 3 | ||
| 4 | - Source Server : 127.0.0.1 | 4 | + Source Server : local-mysql001 |
| 5 | Source Server Type : MySQL | 5 | Source Server Type : MySQL |
| 6 | Source Server Version : 50718 | 6 | Source Server Version : 50718 |
| 7 | Source Host : localhost:3306 | 7 | Source Host : localhost:3306 |
| @@ -11,7 +11,7 @@ | @@ -11,7 +11,7 @@ | ||
| 11 | Target Server Version : 50718 | 11 | Target Server Version : 50718 |
| 12 | File Encoding : 65001 | 12 | File Encoding : 65001 |
| 13 | 13 | ||
| 14 | - Date: 21/03/2021 18:53:24 | 14 | + Date: 05/04/2021 23:51:38 |
| 15 | */ | 15 | */ |
| 16 | 16 | ||
| 17 | SET NAMES utf8mb4; | 17 | SET NAMES utf8mb4; |
| @@ -43,7 +43,7 @@ CREATE TABLE `inf_api_access_log` ( | @@ -43,7 +43,7 @@ CREATE TABLE `inf_api_access_log` ( | ||
| 43 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'æ›´æ–°æ—¶é—´', | 43 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'æ›´æ–°æ—¶é—´', |
| 44 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是å¦åˆ 除', | 44 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是å¦åˆ 除', |
| 45 | PRIMARY KEY (`id`) USING BTREE | 45 | PRIMARY KEY (`id`) USING BTREE |
| 46 | -) ENGINE=InnoDB AUTO_INCREMENT=1318 DEFAULT CHARSET=utf8mb4 COMMENT='API 访问日志表'; | 46 | +) ENGINE=InnoDB AUTO_INCREMENT=1909 DEFAULT CHARSET=utf8mb4 COMMENT='API 访问日志表'; |
| 47 | 47 | ||
| 48 | -- ---------------------------- | 48 | -- ---------------------------- |
| 49 | -- Records of inf_api_access_log | 49 | -- Records of inf_api_access_log |
| @@ -84,7 +84,7 @@ CREATE TABLE `inf_api_error_log` ( | @@ -84,7 +84,7 @@ CREATE TABLE `inf_api_error_log` ( | ||
| 84 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'æ›´æ–°æ—¶é—´', | 84 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'æ›´æ–°æ—¶é—´', |
| 85 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是å¦åˆ 除', | 85 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是å¦åˆ 除', |
| 86 | PRIMARY KEY (`id`) USING BTREE | 86 | PRIMARY KEY (`id`) USING BTREE |
| 87 | -) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COMMENT='系统异常日志'; | 87 | +) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8mb4 COMMENT='系统异常日志'; |
| 88 | 88 | ||
| 89 | -- ---------------------------- | 89 | -- ---------------------------- |
| 90 | -- Records of inf_api_error_log | 90 | -- Records of inf_api_error_log |
| @@ -201,7 +201,7 @@ CREATE TABLE `inf_job_log` ( | @@ -201,7 +201,7 @@ CREATE TABLE `inf_job_log` ( | ||
| 201 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'æ›´æ–°æ—¶é—´', | 201 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'æ›´æ–°æ—¶é—´', |
| 202 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是å¦åˆ 除', | 202 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是å¦åˆ 除', |
| 203 | PRIMARY KEY (`id`) USING BTREE | 203 | PRIMARY KEY (`id`) USING BTREE |
| 204 | -) ENGINE=InnoDB AUTO_INCREMENT=627 DEFAULT CHARSET=utf8mb4 COMMENT='定时任务日志表'; | 204 | +) ENGINE=InnoDB AUTO_INCREMENT=1035 DEFAULT CHARSET=utf8mb4 COMMENT='定时任务日志表'; |
| 205 | 205 | ||
| 206 | -- ---------------------------- | 206 | -- ---------------------------- |
| 207 | -- Records of inf_job_log | 207 | -- Records of inf_job_log |
| @@ -264,7 +264,7 @@ CREATE TABLE `sys_dict_data` ( | @@ -264,7 +264,7 @@ CREATE TABLE `sys_dict_data` ( | ||
| 264 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'æ›´æ–°æ—¶é—´', | 264 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'æ›´æ–°æ—¶é—´', |
| 265 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是å¦åˆ 除', | 265 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是å¦åˆ 除', |
| 266 | PRIMARY KEY (`id`) USING BTREE | 266 | PRIMARY KEY (`id`) USING BTREE |
| 267 | -) ENGINE=InnoDB AUTO_INCREMENT=65 DEFAULT CHARSET=utf8mb4 COMMENT='å—典数æ®è¡¨'; | 267 | +) ENGINE=InnoDB AUTO_INCREMENT=70 DEFAULT CHARSET=utf8mb4 COMMENT='å—典数æ®è¡¨'; |
| 268 | 268 | ||
| 269 | -- ---------------------------- | 269 | -- ---------------------------- |
| 270 | -- Records of sys_dict_data | 270 | -- Records of sys_dict_data |
| @@ -324,6 +324,11 @@ INSERT INTO `sys_dict_data` VALUES (61, 2, '管ç†å‘˜', '2', 'user_type', 0, NUL | @@ -324,6 +324,11 @@ INSERT INTO `sys_dict_data` VALUES (61, 2, '管ç†å‘˜', '2', 'user_type', 0, NUL | ||
| 324 | INSERT INTO `sys_dict_data` VALUES (62, 0, '未处ç†', '0', 'inf_api_error_log_process_status', 0, NULL, '', '2021-02-26 07:07:19', '', '2021-02-26 08:11:23', b'0'); | 324 | INSERT INTO `sys_dict_data` VALUES (62, 0, '未处ç†', '0', 'inf_api_error_log_process_status', 0, NULL, '', '2021-02-26 07:07:19', '', '2021-02-26 08:11:23', b'0'); |
| 325 | INSERT INTO `sys_dict_data` VALUES (63, 1, '已处ç†', '1', 'inf_api_error_log_process_status', 0, NULL, '', '2021-02-26 07:07:26', '', '2021-02-26 08:11:29', b'0'); | 325 | INSERT INTO `sys_dict_data` VALUES (63, 1, '已处ç†', '1', 'inf_api_error_log_process_status', 0, NULL, '', '2021-02-26 07:07:26', '', '2021-02-26 08:11:29', b'0'); |
| 326 | INSERT INTO `sys_dict_data` VALUES (64, 2, '已忽略', '2', 'inf_api_error_log_process_status', 0, NULL, '', '2021-02-26 07:07:34', '', '2021-02-26 08:11:34', b'0'); | 326 | INSERT INTO `sys_dict_data` VALUES (64, 2, '已忽略', '2', 'inf_api_error_log_process_status', 0, NULL, '', '2021-02-26 07:07:34', '', '2021-02-26 08:11:34', b'0'); |
| 327 | +INSERT INTO `sys_dict_data` VALUES (65, 0, '云片', 'YUN_PIAN', 'sys_sms_channel_code', 0, NULL, '1', '2021-04-05 01:05:14', '1', '2021-04-05 01:05:14', b'0'); | ||
| 328 | +INSERT INTO `sys_dict_data` VALUES (66, 0, '阿里云', 'ALIYUN', 'sys_sms_channel_code', 0, NULL, '1', '2021-04-05 01:05:26', '1', '2021-04-05 01:05:26', b'0'); | ||
| 329 | +INSERT INTO `sys_dict_data` VALUES (67, 1, '验è¯ç ', '1', 'sys_sms_template_type', 0, NULL, '1', '2021-04-05 21:50:57', '1', '2021-04-05 21:50:57', b'0'); | ||
| 330 | +INSERT INTO `sys_dict_data` VALUES (68, 2, '通知', '2', 'sys_sms_template_type', 0, NULL, '1', '2021-04-05 21:51:08', '1', '2021-04-05 21:51:08', b'0'); | ||
| 331 | +INSERT INTO `sys_dict_data` VALUES (69, 0, 'è¥é”€', '3', 'sys_sms_template_type', 0, NULL, '1', '2021-04-05 21:51:15', '1', '2021-04-05 21:51:15', b'0'); | ||
| 327 | COMMIT; | 332 | COMMIT; |
| 328 | 333 | ||
| 329 | -- ---------------------------- | 334 | -- ---------------------------- |
| @@ -343,7 +348,7 @@ CREATE TABLE `sys_dict_type` ( | @@ -343,7 +348,7 @@ CREATE TABLE `sys_dict_type` ( | ||
| 343 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是å¦åˆ 除', | 348 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是å¦åˆ 除', |
| 344 | PRIMARY KEY (`id`) USING BTREE, | 349 | PRIMARY KEY (`id`) USING BTREE, |
| 345 | UNIQUE KEY `dict_type` (`type`) | 350 | UNIQUE KEY `dict_type` (`type`) |
| 346 | -) ENGINE=InnoDB AUTO_INCREMENT=111 DEFAULT CHARSET=utf8mb4 COMMENT='å—典类型表'; | 351 | +) ENGINE=InnoDB AUTO_INCREMENT=113 DEFAULT CHARSET=utf8mb4 COMMENT='å—典类型表'; |
| 347 | 352 | ||
| 348 | -- ---------------------------- | 353 | -- ---------------------------- |
| 349 | -- Records of sys_dict_type | 354 | -- Records of sys_dict_type |
| @@ -366,6 +371,8 @@ INSERT INTO `sys_dict_type` VALUES (107, '定时任务状æ€', 'inf_job_status', | @@ -366,6 +371,8 @@ INSERT INTO `sys_dict_type` VALUES (107, '定时任务状æ€', 'inf_job_status', | ||
| 366 | INSERT INTO `sys_dict_type` VALUES (108, '定时任务日志状æ€', 'inf_job_log_status', 0, NULL, '', '2021-02-08 10:03:51', '', '2021-02-08 10:03:51', b'0'); | 371 | INSERT INTO `sys_dict_type` VALUES (108, '定时任务日志状æ€', 'inf_job_log_status', 0, NULL, '', '2021-02-08 10:03:51', '', '2021-02-08 10:03:51', b'0'); |
| 367 | INSERT INTO `sys_dict_type` VALUES (109, '用户类型', 'user_type', 0, NULL, '', '2021-02-26 00:15:51', '', '2021-02-26 00:15:51', b'0'); | 372 | INSERT INTO `sys_dict_type` VALUES (109, '用户类型', 'user_type', 0, NULL, '', '2021-02-26 00:15:51', '', '2021-02-26 00:15:51', b'0'); |
| 368 | INSERT INTO `sys_dict_type` VALUES (110, 'API 异常数æ®çš„处ç†çжæ€', 'inf_api_error_log_process_status', 0, NULL, '', '2021-02-26 07:07:01', '', '2021-02-26 07:07:01', b'0'); | 373 | INSERT INTO `sys_dict_type` VALUES (110, 'API 异常数æ®çš„处ç†çжæ€', 'inf_api_error_log_process_status', 0, NULL, '', '2021-02-26 07:07:01', '', '2021-02-26 07:07:01', b'0'); |
| 374 | +INSERT INTO `sys_dict_type` VALUES (111, 'çŸä¿¡æ¸ é“ç¼–ç ', 'sys_sms_channel_code', 0, NULL, '1', '2021-04-05 01:04:50', '1', '2021-04-05 01:04:50', b'0'); | ||
| 375 | +INSERT INTO `sys_dict_type` VALUES (112, 'çŸä¿¡æ¨¡æ¿çš„类型', 'sys_sms_template_type', 0, NULL, '1', '2021-04-05 21:50:43', '1', '2021-04-05 21:50:43', b'0'); | ||
| 369 | COMMIT; | 376 | COMMIT; |
| 370 | 377 | ||
| 371 | -- ---------------------------- | 378 | -- ---------------------------- |
| @@ -386,7 +393,7 @@ CREATE TABLE `sys_login_log` ( | @@ -386,7 +393,7 @@ CREATE TABLE `sys_login_log` ( | ||
| 386 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'æ›´æ–°æ—¶é—´', | 393 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'æ›´æ–°æ—¶é—´', |
| 387 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是å¦åˆ 除', | 394 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是å¦åˆ 除', |
| 388 | PRIMARY KEY (`id`) USING BTREE | 395 | PRIMARY KEY (`id`) USING BTREE |
| 389 | -) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=utf8mb4 COMMENT='系统访问记录'; | 396 | +) ENGINE=InnoDB AUTO_INCREMENT=34 DEFAULT CHARSET=utf8mb4 COMMENT='系统访问记录'; |
| 390 | 397 | ||
| 391 | -- ---------------------------- | 398 | -- ---------------------------- |
| 392 | -- Records of sys_login_log | 399 | -- Records of sys_login_log |
| @@ -415,7 +422,7 @@ CREATE TABLE `sys_menu` ( | @@ -415,7 +422,7 @@ CREATE TABLE `sys_menu` ( | ||
| 415 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'æ›´æ–°æ—¶é—´', | 422 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'æ›´æ–°æ—¶é—´', |
| 416 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是å¦åˆ 除', | 423 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是å¦åˆ 除', |
| 417 | PRIMARY KEY (`id`) USING BTREE | 424 | PRIMARY KEY (`id`) USING BTREE |
| 418 | -) ENGINE=InnoDB AUTO_INCREMENT=1093 DEFAULT CHARSET=utf8mb4 COMMENT='èœå•æƒé™è¡¨'; | 425 | +) ENGINE=InnoDB AUTO_INCREMENT=1100 DEFAULT CHARSET=utf8mb4 COMMENT='èœå•æƒé™è¡¨'; |
| 419 | 426 | ||
| 420 | -- ---------------------------- | 427 | -- ---------------------------- |
| 421 | -- Records of sys_menu | 428 | -- Records of sys_menu |
| @@ -530,6 +537,12 @@ INSERT INTO `sys_menu` VALUES (1089, '日志查询', 'infra:api-error-log:query' | @@ -530,6 +537,12 @@ INSERT INTO `sys_menu` VALUES (1089, '日志查询', 'infra:api-error-log:query' | ||
| 530 | INSERT INTO `sys_menu` VALUES (1090, '文件管ç†', '', 2, 0, 2, 'file', 'upload', 'infra/file/index', 0, '', '2021-03-12 20:16:20', '1', '2021-03-13 11:07:05', b'0'); | 537 | INSERT INTO `sys_menu` VALUES (1090, '文件管ç†', '', 2, 0, 2, 'file', 'upload', 'infra/file/index', 0, '', '2021-03-12 20:16:20', '1', '2021-03-13 11:07:05', b'0'); |
| 531 | INSERT INTO `sys_menu` VALUES (1091, '文件查询', 'infra:file:query', 3, 1, 1090, '', '', '', 0, '', '2021-03-12 20:16:20', '', '2021-03-12 20:16:20', b'0'); | 538 | INSERT INTO `sys_menu` VALUES (1091, '文件查询', 'infra:file:query', 3, 1, 1090, '', '', '', 0, '', '2021-03-12 20:16:20', '', '2021-03-12 20:16:20', b'0'); |
| 532 | INSERT INTO `sys_menu` VALUES (1092, 'æ–‡ä»¶åˆ é™¤', 'infra:file:delete', 3, 4, 1090, '', '', '', 0, '', '2021-03-12 20:16:20', '', '2021-03-12 20:16:20', b'0'); | 539 | INSERT INTO `sys_menu` VALUES (1092, 'æ–‡ä»¶åˆ é™¤', 'infra:file:delete', 3, 4, 1090, '', '', '', 0, '', '2021-03-12 20:16:20', '', '2021-03-12 20:16:20', b'0'); |
| 540 | +INSERT INTO `sys_menu` VALUES (1093, 'çŸä¿¡ç®¡ç†', '', 1, 11, 1, 'sms', 'validCode', NULL, 0, '1', '2021-04-05 01:10:16', '1', '2021-04-05 01:11:38', b'0'); | ||
| 541 | +INSERT INTO `sys_menu` VALUES (1094, 'çŸä¿¡æ¸ é“', '', 2, 0, 1093, 'sms-channel', '', 'system/sms/smsChannel', 0, '', '2021-04-01 11:07:15', '1', '2021-04-05 20:32:53', b'0'); | ||
| 542 | +INSERT INTO `sys_menu` VALUES (1095, 'çŸä¿¡æ¸ 铿Ÿ¥è¯¢', 'system:sms-channel:query', 3, 1, 1094, '', '', '', 0, '', '2021-04-01 11:07:15', '', '2021-04-01 11:07:15', b'0'); | ||
| 543 | +INSERT INTO `sys_menu` VALUES (1096, 'çŸä¿¡æ¸ é“创建', 'system:sms-channel:create', 3, 2, 1094, '', '', '', 0, '', '2021-04-01 11:07:15', '', '2021-04-01 11:07:15', b'0'); | ||
| 544 | +INSERT INTO `sys_menu` VALUES (1097, 'çŸä¿¡æ¸ 铿›´æ–°', 'system:sms-channel:update', 3, 3, 1094, '', '', '', 0, '', '2021-04-01 11:07:15', '', '2021-04-01 11:07:15', b'0'); | ||
| 545 | +INSERT INTO `sys_menu` VALUES (1098, 'çŸä¿¡æ¸ é“åˆ é™¤', 'system:sms-channel:delete', 3, 4, 1094, '', '', '', 0, '', '2021-04-01 11:07:15', '', '2021-04-01 11:07:15', b'0'); | ||
| 533 | COMMIT; | 546 | COMMIT; |
| 534 | 547 | ||
| 535 | -- ---------------------------- | 548 | -- ---------------------------- |
| @@ -589,7 +602,7 @@ CREATE TABLE `sys_operate_log` ( | @@ -589,7 +602,7 @@ CREATE TABLE `sys_operate_log` ( | ||
| 589 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'æ›´æ–°æ—¶é—´', | 602 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'æ›´æ–°æ—¶é—´', |
| 590 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是å¦åˆ 除', | 603 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是å¦åˆ 除', |
| 591 | PRIMARY KEY (`id`) USING BTREE | 604 | PRIMARY KEY (`id`) USING BTREE |
| 592 | -) ENGINE=InnoDB AUTO_INCREMENT=65 DEFAULT CHARSET=utf8mb4 COMMENT='æ“作日志记录'; | 605 | +) ENGINE=InnoDB AUTO_INCREMENT=37 DEFAULT CHARSET=utf8mb4 COMMENT='æ“作日志记录'; |
| 593 | 606 | ||
| 594 | -- ---------------------------- | 607 | -- ---------------------------- |
| 595 | -- Records of sys_operate_log | 608 | -- Records of sys_operate_log |
| @@ -835,6 +848,118 @@ INSERT INTO `sys_role_menu` VALUES (238, 101, 1065, '', '2021-01-21 03:23:27', ' | @@ -835,6 +848,118 @@ INSERT INTO `sys_role_menu` VALUES (238, 101, 1065, '', '2021-01-21 03:23:27', ' | ||
| 835 | COMMIT; | 848 | COMMIT; |
| 836 | 849 | ||
| 837 | -- ---------------------------- | 850 | -- ---------------------------- |
| 851 | +-- Table structure for sys_sms_channel | ||
| 852 | +-- ---------------------------- | ||
| 853 | +DROP TABLE IF EXISTS `sys_sms_channel`; | ||
| 854 | +CREATE TABLE `sys_sms_channel` ( | ||
| 855 | + `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ç¼–å·', | ||
| 856 | + `signature` varchar(10) NOT NULL COMMENT 'çŸä¿¡ç¾å', | ||
| 857 | + `code` varchar(63) NOT NULL COMMENT 'æ¸ é“ç¼–ç ', | ||
| 858 | + `status` tinyint(4) NOT NULL COMMENT 'å¼€å¯çжæ€', | ||
| 859 | + `remark` varchar(255) DEFAULT NULL COMMENT '备注', | ||
| 860 | + `api_key` varchar(63) NOT NULL COMMENT 'çŸä¿¡ API 的账å·', | ||
| 861 | + `api_secret` varchar(63) DEFAULT NULL COMMENT 'çŸä¿¡ API 的秘钥', | ||
| 862 | + `callback_url` varchar(255) DEFAULT NULL COMMENT 'çŸä¿¡å‘é€å›žè°ƒ URL', | ||
| 863 | + `creator` varchar(64) DEFAULT '' COMMENT '创建者', | ||
| 864 | + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', | ||
| 865 | + `updater` varchar(64) DEFAULT '' COMMENT '更新者', | ||
| 866 | + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'æ›´æ–°æ—¶é—´', | ||
| 867 | + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是å¦åˆ 除', | ||
| 868 | + PRIMARY KEY (`id`) USING BTREE | ||
| 869 | +) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COMMENT='çŸä¿¡æ¸ é“'; | ||
| 870 | + | ||
| 871 | +-- ---------------------------- | ||
| 872 | +-- Records of sys_sms_channel | ||
| 873 | +-- ---------------------------- | ||
| 874 | +BEGIN; | ||
| 875 | +INSERT INTO `sys_sms_channel` VALUES (1, '芋é“', 'YUN_PIAN', 0, '呵呵呵哒', '1555a14277cb8a608cf45a9e6a80d510', NULL, 'http://java.nat300.top/api/system/sms/callback/sms/yunpian', '', '2021-03-31 06:12:20', '1', '2021-04-05 21:02:38', b'0'); | ||
| 876 | +INSERT INTO `sys_sms_channel` VALUES (2, 'Ballcat', 'ALIYUN', 0, '啦啦啦', 'LTAI5tCnKso2uG3kJ5gRav88', 'fGJ5SNXL7P1NHNRmJ7DJaMJGPyE55C', NULL, '', '2021-03-31 11:53:10', '1', '2021-04-05 21:02:44', b'0'); | ||
| 877 | +INSERT INTO `sys_sms_channel` VALUES (3, '测试', 'YUN_PIAN', 0, '哈哈哈', '23132', NULL, 'http://www.baidu.com', '1', '2021-04-05 21:10:34', '1', '2021-04-05 21:10:34', b'0'); | ||
| 878 | +COMMIT; | ||
| 879 | + | ||
| 880 | +-- ---------------------------- | ||
| 881 | +-- Table structure for sys_sms_log | ||
| 882 | +-- ---------------------------- | ||
| 883 | +DROP TABLE IF EXISTS `sys_sms_log`; | ||
| 884 | +CREATE TABLE `sys_sms_log` ( | ||
| 885 | + `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ç¼–å·', | ||
| 886 | + `channel_id` bigint(20) NOT NULL COMMENT 'çŸä¿¡æ¸ é“ç¼–å·', | ||
| 887 | + `channel_code` varchar(63) NOT NULL COMMENT 'çŸä¿¡æ¸ é“ç¼–ç ', | ||
| 888 | + `template_id` bigint(20) NOT NULL COMMENT '模æ¿ç¼–å·', | ||
| 889 | + `template_code` varchar(63) NOT NULL COMMENT '模æ¿ç¼–ç ', | ||
| 890 | + `template_type` tinyint(4) NOT NULL COMMENT 'çŸä¿¡ç±»åž‹', | ||
| 891 | + `template_content` varchar(255) NOT NULL COMMENT 'çŸä¿¡å†…容', | ||
| 892 | + `template_params` varchar(255) NOT NULL COMMENT 'çŸä¿¡å‚æ•°', | ||
| 893 | + `api_template_id` varchar(63) NOT NULL COMMENT 'çŸä¿¡ API 的模æ¿ç¼–å·', | ||
| 894 | + `mobile` varchar(11) NOT NULL COMMENT '手机å·', | ||
| 895 | + `user_id` bigint(20) DEFAULT '0' COMMENT '用户编å·', | ||
| 896 | + `user_type` tinyint(4) DEFAULT '0' COMMENT '用户类型', | ||
| 897 | + `send_status` tinyint(4) NOT NULL DEFAULT '0' COMMENT 'å‘é€çжæ€', | ||
| 898 | + `send_time` datetime DEFAULT NULL COMMENT 'å‘逿—¶é—´', | ||
| 899 | + `send_code` int(11) DEFAULT NULL COMMENT 'å‘é€ç»“果的编ç ', | ||
| 900 | + `send_msg` varchar(255) DEFAULT NULL COMMENT 'å‘é€ç»“果的æç¤º', | ||
| 901 | + `api_send_code` varchar(63) DEFAULT NULL COMMENT 'çŸä¿¡ API å‘é€ç»“果的编ç ', | ||
| 902 | + `api_send_msg` varchar(255) DEFAULT NULL COMMENT 'çŸä¿¡ API å‘é€å¤±è´¥çš„æç¤º', | ||
| 903 | + `api_request_id` varchar(255) DEFAULT NULL COMMENT 'çŸä¿¡ API å‘é€è¿”回的唯一请求 ID', | ||
| 904 | + `api_serial_no` varchar(255) DEFAULT NULL COMMENT 'çŸä¿¡ API å‘é€è¿”回的åºå·', | ||
| 905 | + `receive_status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '接收状æ€', | ||
| 906 | + `receive_time` datetime DEFAULT NULL COMMENT '接收时间', | ||
| 907 | + `api_receive_code` varchar(63) DEFAULT NULL COMMENT 'API 接收结果的编ç ', | ||
| 908 | + `api_receive_msg` varchar(255) DEFAULT NULL COMMENT 'API 接收结果的说明', | ||
| 909 | + `creator` varchar(64) DEFAULT '' COMMENT '创建者', | ||
| 910 | + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', | ||
| 911 | + `updater` varchar(64) DEFAULT '' COMMENT '更新者', | ||
| 912 | + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'æ›´æ–°æ—¶é—´', | ||
| 913 | + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是å¦åˆ 除', | ||
| 914 | + PRIMARY KEY (`id`) USING BTREE | ||
| 915 | +) ENGINE=InnoDB AUTO_INCREMENT=22 DEFAULT CHARSET=utf8mb4 COMMENT='çŸä¿¡moan'; | ||
| 916 | + | ||
| 917 | +-- ---------------------------- | ||
| 918 | +-- Records of sys_sms_log | ||
| 919 | +-- ---------------------------- | ||
| 920 | +BEGIN; | ||
| 921 | +INSERT INTO `sys_sms_log` VALUES (15, 1, 'YUN_PIAN', 2, 'test_01', 1, 'æ£åœ¨è¿›è¡Œç™»å½•æ“作登陆,您的验è¯ç 是1234', '{\"code\":\"1234\",\"operation\":\"登陆\"}', '4383920', '15601691399', 1, 2, 10, '2021-04-04 23:24:13', 0, 'æˆåŠŸ', '0', 'å‘逿ˆåŠŸ', NULL, '62922707786', 10, '2021-04-04 23:24:26', 'DELIVRD', 'DELIVRD', NULL, '2021-04-04 23:23:29', NULL, '2021-04-04 23:25:17', b'0'); | ||
| 922 | +INSERT INTO `sys_sms_log` VALUES (16, 2, 'ALIYUN', 3, 'test_02', 1, '您的验è¯ç 1234,该验è¯ç 5分钟内有效,请勿泄æ¼äºŽä»–人ï¼', '{\"code\":\"1234\"}', 'SMS_207945135', '15601691399', 1, 2, 20, '2021-04-05 00:08:39', 999, '未知错误,需è¦è§£æž', 'SDK.InvalidAccessKeySecret', 'SDK.InvalidAccessKeySecret : Specified Access Key Secret is not valid.\r\nRequestId : 2EA9C6A5-579F-4D21-B7D3-0AD3BA4F7741', '2EA9C6A5-579F-4D21-B7D3-0AD3BA4F7741', NULL, 0, NULL, NULL, NULL, NULL, '2021-04-05 00:08:39', NULL, '2021-04-05 00:08:39', b'0'); | ||
| 923 | +INSERT INTO `sys_sms_log` VALUES (17, 2, 'ALIYUN', 3, 'test_02', 1, '您的验è¯ç 1234,该验è¯ç 5分钟内有效,请勿泄æ¼äºŽä»–人ï¼', '{\"code\":\"1234\"}', 'SMS_207945135', '15601691399', 1, 2, 20, '2021-04-05 00:09:43', 999, '未知错误,需è¦è§£æž', 'SDK.InvalidAccessKeySecret', 'SDK.InvalidAccessKeySecret : Specified Access Key Secret is not valid.\r\nRequestId : BF766164-9C03-44FD-B6D3-ADA74118E432', 'BF766164-9C03-44FD-B6D3-ADA74118E432', NULL, 0, NULL, NULL, NULL, NULL, '2021-04-05 00:09:43', NULL, '2021-04-05 00:09:43', b'0'); | ||
| 924 | +INSERT INTO `sys_sms_log` VALUES (18, 2, 'ALIYUN', 3, 'test_02', 1, '您的验è¯ç 1234,该验è¯ç 5分钟内有效,请勿泄æ¼äºŽä»–人ï¼', '{\"code\":\"1234\"}', 'SMS_207945135', '15601691399', 1, 2, 20, '2021-04-05 00:11:13', 999, '未知错误,需è¦è§£æž', 'SDK.InvalidAccessKeySecret', 'SDK.InvalidAccessKeySecret : Specified Access Key Secret is not valid.\r\nRequestId : 2D7C0ABC-7538-45B4-BFEF-B610D591CE3D', '2D7C0ABC-7538-45B4-BFEF-B610D591CE3D', NULL, 0, NULL, NULL, NULL, NULL, '2021-04-05 00:11:12', NULL, '2021-04-05 00:11:13', b'0'); | ||
| 925 | +INSERT INTO `sys_sms_log` VALUES (19, 2, 'ALIYUN', 3, 'test_02', 1, '您的验è¯ç 1234,该验è¯ç 5分钟内有效,请勿泄æ¼äºŽä»–人ï¼', '{\"code\":\"1234\"}', 'SMS_207945135', '15601691399', 1, 2, 20, '2021-04-05 00:12:21', 999, '未知错误,需è¦è§£æž', 'SDK.InvalidAccessKeySecret', 'SDK.InvalidAccessKeySecret : Specified Access Key Secret is not valid.\r\nRequestId : 0A86DC5C-2985-474F-B076-748C9F2C5D3F', '0A86DC5C-2985-474F-B076-748C9F2C5D3F', NULL, 0, NULL, NULL, NULL, NULL, '2021-04-05 00:12:01', NULL, '2021-04-05 00:12:21', b'0'); | ||
| 926 | +INSERT INTO `sys_sms_log` VALUES (20, 1, 'YUN_PIAN', 2, 'test_01', 1, 'æ£åœ¨è¿›è¡Œç™»å½•æ“作登陆,您的验è¯ç 是1234', '{\"code\":\"1234\",\"operation\":\"登陆\"}', '4383920', '15601691399', 1, 2, 10, '2021-04-05 00:14:36', 0, 'æˆåŠŸ', '0', 'å‘逿ˆåŠŸ', NULL, '62923244790', 0, NULL, NULL, NULL, NULL, '2021-04-05 00:13:42', NULL, '2021-04-05 00:14:36', b'0'); | ||
| 927 | +INSERT INTO `sys_sms_log` VALUES (21, 2, 'ALIYUN', 3, 'test_02', 1, '您的验è¯ç 1234,该验è¯ç 5分钟内有效,请勿泄æ¼äºŽä»–人ï¼', '{\"code\":\"1234\"}', 'SMS_207945135', '15601691399', 1, 2, 20, '2021-04-05 00:19:43', 999, '未知错误,需è¦è§£æž', 'SDK.InvalidAccessKeySecret', 'SDK.InvalidAccessKeySecret : Specified Access Key Secret is not valid.\r\nRequestId : 3837C6D3-B96F-428C-BBB2-86135D4B5B99', '3837C6D3-B96F-428C-BBB2-86135D4B5B99', NULL, 0, NULL, NULL, NULL, NULL, '2021-04-05 00:15:06', NULL, '2021-04-05 00:19:44', b'0'); | ||
| 928 | +COMMIT; | ||
| 929 | + | ||
| 930 | +-- ---------------------------- | ||
| 931 | +-- Table structure for sys_sms_template | ||
| 932 | +-- ---------------------------- | ||
| 933 | +DROP TABLE IF EXISTS `sys_sms_template`; | ||
| 934 | +CREATE TABLE `sys_sms_template` ( | ||
| 935 | + `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ç¼–å·', | ||
| 936 | + `type` tinyint(4) NOT NULL COMMENT 'çŸä¿¡ç¾å', | ||
| 937 | + `status` tinyint(4) NOT NULL COMMENT 'å¼€å¯çжæ€', | ||
| 938 | + `code` varchar(63) NOT NULL COMMENT '模æ¿ç¼–ç ', | ||
| 939 | + `name` varchar(63) NOT NULL COMMENT '模æ¿åç§°', | ||
| 940 | + `content` varchar(255) NOT NULL COMMENT '模æ¿å†…容', | ||
| 941 | + `params` varchar(255) NOT NULL COMMENT '傿•°æ•°ç»„', | ||
| 942 | + `remark` varchar(255) DEFAULT NULL COMMENT '备注', | ||
| 943 | + `api_template_id` varchar(63) NOT NULL COMMENT 'çŸä¿¡ API 的模æ¿ç¼–å·', | ||
| 944 | + `channel_id` bigint(20) NOT NULL COMMENT 'çŸä¿¡æ¸ é“ç¼–å·', | ||
| 945 | + `channel_code` varchar(63) NOT NULL COMMENT 'çŸä¿¡æ¸ é“ç¼–ç ', | ||
| 946 | + `creator` varchar(64) DEFAULT '' COMMENT '创建者', | ||
| 947 | + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', | ||
| 948 | + `updater` varchar(64) DEFAULT '' COMMENT '更新者', | ||
| 949 | + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'æ›´æ–°æ—¶é—´', | ||
| 950 | + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是å¦åˆ 除', | ||
| 951 | + PRIMARY KEY (`id`) USING BTREE | ||
| 952 | +) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COMMENT='çŸä¿¡æ¨¡æ¿'; | ||
| 953 | + | ||
| 954 | +-- ---------------------------- | ||
| 955 | +-- Records of sys_sms_template | ||
| 956 | +-- ---------------------------- | ||
| 957 | +BEGIN; | ||
| 958 | +INSERT INTO `sys_sms_template` VALUES (2, 1, 0, 'test_01', '测试验è¯ç çŸä¿¡', 'æ£åœ¨è¿›è¡Œç™»å½•æ“作{operation},您的验è¯ç 是{code}', '[\"operation\",\"code\"]', NULL, '4383920', 1, 'YUN_PIAN', '', '2021-03-31 10:49:38', '', '2021-03-31 12:01:38', b'0'); | ||
| 959 | +INSERT INTO `sys_sms_template` VALUES (3, 1, 0, 'test_02', '公告通知', '您的验è¯ç {code},该验è¯ç 5分钟内有效,请勿泄æ¼äºŽä»–人ï¼', '[\"code\"]', NULL, 'SMS_207945135', 2, 'ALIYUN', '', '2021-03-31 11:56:30', '', '2021-03-31 11:56:30', b'0'); | ||
| 960 | +COMMIT; | ||
| 961 | + | ||
| 962 | +-- ---------------------------- | ||
| 838 | -- Table structure for sys_user | 963 | -- Table structure for sys_user |
| 839 | -- ---------------------------- | 964 | -- ---------------------------- |
| 840 | DROP TABLE IF EXISTS `sys_user`; | 965 | DROP TABLE IF EXISTS `sys_user`; |
| @@ -865,8 +990,8 @@ CREATE TABLE `sys_user` ( | @@ -865,8 +990,8 @@ CREATE TABLE `sys_user` ( | ||
| 865 | -- Records of sys_user | 990 | -- Records of sys_user |
| 866 | -- ---------------------------- | 991 | -- ---------------------------- |
| 867 | BEGIN; | 992 | BEGIN; |
| 868 | -INSERT INTO `sys_user` VALUES (1, 'admin', '$2a$10$0acJOIk2D25/oC87nyclE..0lzeu9DtQ/n3geP4fkun/zIVRhHJIO', '芋é“', '管ç†å‘˜', 103, '[1]', 'aoteman@126.com', '15612345678', 1, 'http://127.0.0.1:8080/api/system/file/get/add5ec1891a7d97d2cc1d60847e16294.jpg', 0, '127.0.0.1', '2021-01-05 17:03:47', 'admin', '2021-01-05 17:03:47', '1', '2021-03-21 18:16:16', b'0'); | ||
| 869 | -INSERT INTO `sys_user` VALUES (2, 'ry', '$2a$10$7JB720yubVSZvUI0rEqK/.VqGOZTH.ulu33dHOiBE8ByOhJIrdAu2', 'è‹¥ä¾', '测试员', 105, '[2]', 'ry@qq.com', '15666666666', 1, '', 0, '127.0.0.1', '2021-01-05 17:03:47', 'admin', '2021-01-05 17:03:47', '', '2021-01-05 17:03:47', b'0'); | 993 | +INSERT INTO `sys_user` VALUES (1, 'admin', '$2a$10$0acJOIk2D25/oC87nyclE..0lzeu9DtQ/n3geP4fkun/zIVRhHJIO', 'èŠ‹é“æºç ', '管ç†å‘˜', 103, '[1]', 'aoteman@126.com', '15612345678', 1, 'http://api-dashboard.yudao.iocoder.cn/api/infra/file/get/5e8609290e915c4fa8b08e67.jpg', 0, '127.0.0.1', '2021-01-05 17:03:47', 'admin', '2021-01-05 17:03:47', '1', '2021-04-05 02:16:10', b'0'); |
| 994 | +INSERT INTO `sys_user` VALUES (2, 'ry', '$2a$10$7JB720yubVSZvUI0rEqK/.VqGOZTH.ulu33dHOiBE8ByOhJIrdAu2', 'è‹¥ä¾', '测试员', 105, '[2]', 'ry@qq.com', '15666666666', 1, '', 0, '127.0.0.1', '2021-01-05 17:03:47', 'admin', '2021-01-05 17:03:47', '', '2021-04-01 04:50:36', b'1'); | ||
| 870 | INSERT INTO `sys_user` VALUES (100, 'yudao', '$2a$10$11U48RhyJ5pSBYWSn12AD./ld671.ycSzJHbyrtpeoMeYiw31eo8a', '芋é“', 'ä¸è¦å“我', 100, '[1]', 'yudao@iocoder.cn', '15601691300', 1, '', 1, '', NULL, '', '2021-01-07 09:07:17', '1', '2021-03-14 22:35:17', b'0'); | 995 | INSERT INTO `sys_user` VALUES (100, 'yudao', '$2a$10$11U48RhyJ5pSBYWSn12AD./ld671.ycSzJHbyrtpeoMeYiw31eo8a', '芋é“', 'ä¸è¦å“我', 100, '[1]', 'yudao@iocoder.cn', '15601691300', 1, '', 1, '', NULL, '', '2021-01-07 09:07:17', '1', '2021-03-14 22:35:17', b'0'); |
| 871 | INSERT INTO `sys_user` VALUES (103, 'yuanma', '', 'æºç ', NULL, 100, NULL, 'yuanma@iocoder.cn', '15601701300', 0, '', 0, '', NULL, '', '2021-01-13 23:50:35', '', '2021-01-13 23:50:35', b'0'); | 996 | INSERT INTO `sys_user` VALUES (103, 'yuanma', '', 'æºç ', NULL, 100, NULL, 'yuanma@iocoder.cn', '15601701300', 0, '', 0, '', NULL, '', '2021-01-13 23:50:35', '', '2021-01-13 23:50:35', b'0'); |
| 872 | INSERT INTO `sys_user` VALUES (104, 'test', '$2a$10$.TOFpaIiI3PzEwkGrNq0Eu6Cc3rOqJMxTb1DqeSEM8StxaGPBRKoi', '测试å·', NULL, 100, '[]', '', '15601691200', 1, '', 0, '', NULL, '', '2021-01-21 02:13:53', '1', '2021-03-14 22:36:38', b'0'); | 997 | INSERT INTO `sys_user` VALUES (104, 'test', '$2a$10$.TOFpaIiI3PzEwkGrNq0Eu6Cc3rOqJMxTb1DqeSEM8StxaGPBRKoi', '测试å·', NULL, 100, '[]', '', '15601691200', 1, '', 0, '', NULL, '', '2021-01-21 02:13:53', '1', '2021-03-14 22:36:38', b'0'); |
| @@ -924,11 +1049,17 @@ CREATE TABLE `sys_user_session` ( | @@ -924,11 +1049,17 @@ CREATE TABLE `sys_user_session` ( | ||
| 924 | -- Records of sys_user_session | 1049 | -- Records of sys_user_session |
| 925 | -- ---------------------------- | 1050 | -- ---------------------------- |
| 926 | BEGIN; | 1051 | BEGIN; |
| 1052 | +INSERT INTO `sys_user_session` VALUES ('04c6624c7bf14b1ba1a01cb976a9d876', 1, '2021-04-05 21:40:12', 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36', NULL, '2021-04-05 20:21:09', NULL, '2021-04-01 12:25:35', b'1'); | ||
| 1053 | +INSERT INTO `sys_user_session` VALUES ('0e235ce5ae7342a09b372a00bd7d1b41', 1, '2021-04-05 01:43:22', 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36', NULL, '2021-04-05 00:51:03', NULL, '2021-04-01 04:18:06', b'1'); | ||
| 1054 | +INSERT INTO `sys_user_session` VALUES ('0e6943f8ca9b4215a014843eb489ccc7', 1, '2021-04-05 22:53:22', 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36', NULL, '2021-04-05 21:43:59', NULL, '2021-04-05 22:23:22', b'0'); | ||
| 1055 | +INSERT INTO `sys_user_session` VALUES ('40d532d8900c43b791266429a7911751', 1, '2021-04-05 22:11:34', 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36', NULL, '2021-04-05 21:41:34', NULL, '2021-04-01 12:28:20', b'1'); | ||
| 927 | INSERT INTO `sys_user_session` VALUES ('505b4e7d8b0d4b40aa23bf540da81234', 1, '2021-03-14 01:25:13', 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', NULL, '2021-03-14 00:31:43', NULL, '2021-03-13 07:35:26', b'1'); | 1056 | INSERT INTO `sys_user_session` VALUES ('505b4e7d8b0d4b40aa23bf540da81234', 1, '2021-03-14 01:25:13', 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', NULL, '2021-03-14 00:31:43', NULL, '2021-03-13 07:35:26', b'1'); |
| 928 | INSERT INTO `sys_user_session` VALUES ('5a7248bf87d14e7e9f0578b05969986c', 1, '2021-03-13 10:42:50', 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', NULL, '2021-03-13 09:37:36', NULL, '2021-03-12 19:53:07', b'1'); | 1057 | INSERT INTO `sys_user_session` VALUES ('5a7248bf87d14e7e9f0578b05969986c', 1, '2021-03-13 10:42:50', 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', NULL, '2021-03-13 09:37:36', NULL, '2021-03-12 19:53:07', b'1'); |
| 1058 | +INSERT INTO `sys_user_session` VALUES ('8b3eac5e4a104a4191c8070e03d553ea', 1, '2021-04-05 02:45:12', 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36', NULL, '2021-04-05 02:15:12', NULL, '2021-04-01 11:05:25', b'1'); | ||
| 929 | INSERT INTO `sys_user_session` VALUES ('9ae27346d8b7491aad1385f51e8aa196', 1, '2021-03-13 14:02:12', 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', NULL, '2021-03-13 10:43:06', NULL, '2021-03-13 06:40:35', b'1'); | 1059 | INSERT INTO `sys_user_session` VALUES ('9ae27346d8b7491aad1385f51e8aa196', 1, '2021-03-13 14:02:12', 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', NULL, '2021-03-13 10:43:06', NULL, '2021-03-13 06:40:35', b'1'); |
| 930 | INSERT INTO `sys_user_session` VALUES ('ae9ee7452ee54e4b983d658188c15c4d', 1, '2021-03-14 21:32:57', 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', NULL, '2021-03-14 20:25:00', NULL, '2021-03-13 15:19:10', b'1'); | 1060 | INSERT INTO `sys_user_session` VALUES ('ae9ee7452ee54e4b983d658188c15c4d', 1, '2021-03-14 21:32:57', 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', NULL, '2021-03-14 20:25:00', NULL, '2021-03-13 15:19:10', b'1'); |
| 931 | -INSERT INTO `sys_user_session` VALUES ('d0adf48f82914212b947e5ab04d9fb65', 1, '2021-03-21 19:16:28', 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36', NULL, '2021-03-21 18:13:37', NULL, '2021-03-21 18:46:28', b'0'); | 1061 | +INSERT INTO `sys_user_session` VALUES ('d0adf48f82914212b947e5ab04d9fb65', 1, '2021-03-21 19:16:28', 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36', NULL, '2021-03-21 18:13:37', NULL, '2021-03-15 05:53:20', b'1'); |
| 1062 | +INSERT INTO `sys_user_session` VALUES ('e80c2400724042a2ab73732166cde8fc', 1, '2021-03-21 21:17:12', 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36', NULL, '2021-03-21 20:47:12', NULL, '2021-03-15 08:18:56', b'1'); | ||
| 932 | INSERT INTO `sys_user_session` VALUES ('e8872f5192584440a548641b83c877ef', 1, '2021-03-21 18:36:01', 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36', NULL, '2021-03-21 17:51:48', NULL, '2021-03-15 03:54:20', b'1'); | 1063 | INSERT INTO `sys_user_session` VALUES ('e8872f5192584440a548641b83c877ef', 1, '2021-03-21 18:36:01', 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36', NULL, '2021-03-21 17:51:48', NULL, '2021-03-15 03:54:20', b'1'); |
| 933 | INSERT INTO `sys_user_session` VALUES ('f1ab99b09b5a475795579ff99d60ac78', 1, '2021-03-14 23:04:31', 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', NULL, '2021-03-14 21:12:44', NULL, '2021-03-15 03:32:38', b'1'); | 1064 | INSERT INTO `sys_user_session` VALUES ('f1ab99b09b5a475795579ff99d60ac78', 1, '2021-03-14 23:04:31', 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', NULL, '2021-03-14 21:12:44', NULL, '2021-03-15 03:32:38', b'1'); |
| 934 | INSERT INTO `sys_user_session` VALUES ('f853b50d064340a581e9a49bba9411fc', 1, '2021-03-10 01:55:41', 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', NULL, '2021-03-10 01:11:53', NULL, '2021-03-12 18:37:05', b'1'); | 1065 | INSERT INTO `sys_user_session` VALUES ('f853b50d064340a581e9a49bba9411fc', 1, '2021-03-10 01:55:41', 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', NULL, '2021-03-10 01:11:53', NULL, '2021-03-12 18:37:05', b'1'); |
| @@ -964,7 +1095,7 @@ CREATE TABLE `tool_codegen_column` ( | @@ -964,7 +1095,7 @@ CREATE TABLE `tool_codegen_column` ( | ||
| 964 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'æ›´æ–°æ—¶é—´', | 1095 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'æ›´æ–°æ—¶é—´', |
| 965 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是å¦åˆ 除', | 1096 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是å¦åˆ 除', |
| 966 | PRIMARY KEY (`id`) USING BTREE | 1097 | PRIMARY KEY (`id`) USING BTREE |
| 967 | -) ENGINE=InnoDB AUTO_INCREMENT=389 DEFAULT CHARSET=utf8mb4 COMMENT='代ç 生æˆè¡¨å—段定义'; | 1098 | +) ENGINE=InnoDB AUTO_INCREMENT=418 DEFAULT CHARSET=utf8mb4 COMMENT='代ç 生æˆè¡¨å—段定义'; |
| 968 | 1099 | ||
| 969 | -- ---------------------------- | 1100 | -- ---------------------------- |
| 970 | -- Records of tool_codegen_column | 1101 | -- Records of tool_codegen_column |
| @@ -1126,6 +1257,35 @@ INSERT INTO `tool_codegen_column` VALUES (385, 33, 'create_time', 'datetime', 'å | @@ -1126,6 +1257,35 @@ INSERT INTO `tool_codegen_column` VALUES (385, 33, 'create_time', 'datetime', 'å | ||
| 1126 | INSERT INTO `tool_codegen_column` VALUES (386, 33, 'updater', 'varchar(64)', '更新者', b'1', b'0', '0', 6, 'String', 'updater', '', NULL, b'0', b'0', b'0', '=', b'0', 'input', '1', '2021-03-13 09:43:20', '1', '2021-03-13 11:27:12', b'0'); | 1257 | INSERT INTO `tool_codegen_column` VALUES (386, 33, 'updater', 'varchar(64)', '更新者', b'1', b'0', '0', 6, 'String', 'updater', '', NULL, b'0', b'0', b'0', '=', b'0', 'input', '1', '2021-03-13 09:43:20', '1', '2021-03-13 11:27:12', b'0'); |
| 1127 | INSERT INTO `tool_codegen_column` VALUES (387, 33, 'update_time', 'datetime', 'æ›´æ–°æ—¶é—´', b'0', b'0', '0', 7, 'Date', 'updateTime', '', NULL, b'0', b'0', b'0', 'BETWEEN', b'0', 'datetime', '1', '2021-03-13 09:43:20', '1', '2021-03-13 11:27:12', b'0'); | 1258 | INSERT INTO `tool_codegen_column` VALUES (387, 33, 'update_time', 'datetime', 'æ›´æ–°æ—¶é—´', b'0', b'0', '0', 7, 'Date', 'updateTime', '', NULL, b'0', b'0', b'0', 'BETWEEN', b'0', 'datetime', '1', '2021-03-13 09:43:20', '1', '2021-03-13 11:27:12', b'0'); |
| 1128 | INSERT INTO `tool_codegen_column` VALUES (388, 33, 'deleted', 'bit(1)', '是å¦åˆ 除', b'0', b'0', '0', 8, 'Boolean', 'deleted', '', NULL, b'0', b'0', b'0', '=', b'0', 'radio', '1', '2021-03-13 09:43:20', '1', '2021-03-13 11:27:12', b'0'); | 1259 | INSERT INTO `tool_codegen_column` VALUES (388, 33, 'deleted', 'bit(1)', '是å¦åˆ 除', b'0', b'0', '0', 8, 'Boolean', 'deleted', '', NULL, b'0', b'0', b'0', '=', b'0', 'radio', '1', '2021-03-13 09:43:20', '1', '2021-03-13 11:27:12', b'0'); |
| 1260 | +INSERT INTO `tool_codegen_column` VALUES (389, 34, 'id', 'bigint(20)', 'ç¼–å·', b'0', b'1', '1', 1, 'Long', 'id', '', '1024', b'0', b'1', b'0', '=', b'1', 'input', '1', '2021-04-05 00:51:34', '1', '2021-04-05 20:52:09', b'0'); | ||
| 1261 | +INSERT INTO `tool_codegen_column` VALUES (390, 34, 'signature', 'varchar(8)', 'çŸä¿¡ç¾å', b'0', b'0', '0', 2, 'String', 'signature', '', 'èŠ‹é“æºç ', b'1', b'1', b'1', '=', b'1', 'input', '1', '2021-04-05 00:51:34', '1', '2021-04-05 20:52:09', b'0'); | ||
| 1262 | +INSERT INTO `tool_codegen_column` VALUES (391, 34, 'code', 'varchar(63)', 'æ¸ é“ç¼–ç ', b'0', b'0', '0', 3, 'String', 'code', 'sys_sms_channel_code', 'YUN_PIAN', b'1', b'0', b'0', '=', b'1', 'select', '1', '2021-04-05 00:51:34', '1', '2021-04-05 20:52:09', b'0'); | ||
| 1263 | +INSERT INTO `tool_codegen_column` VALUES (392, 34, 'status', 'tinyint(4)', 'å¯ç”¨çжæ€', b'0', b'0', '0', 4, 'Integer', 'status', 'sys_common_status', '1', b'1', b'1', b'1', '=', b'1', 'radio', '1', '2021-04-05 00:51:34', '1', '2021-04-05 20:52:09', b'0'); | ||
| 1264 | +INSERT INTO `tool_codegen_column` VALUES (393, 34, 'remark', 'varchar(255)', '备注', b'1', b'0', '0', 5, 'String', 'remark', '', '好åƒï¼', b'1', b'1', b'0', '=', b'1', 'input', '1', '2021-04-05 00:51:34', '1', '2021-04-05 20:52:09', b'0'); | ||
| 1265 | +INSERT INTO `tool_codegen_column` VALUES (394, 34, 'api_key', 'varchar(63)', 'çŸä¿¡ API 的账å·', b'0', b'0', '0', 6, 'String', 'apiKey', '', 'yudao', b'1', b'1', b'0', '=', b'1', 'input', '1', '2021-04-05 00:51:34', '1', '2021-04-05 20:52:09', b'0'); | ||
| 1266 | +INSERT INTO `tool_codegen_column` VALUES (395, 34, 'api_secret', 'varchar(63)', 'çŸä¿¡ API 的秘钥', b'1', b'0', '0', 7, 'String', 'apiSecret', '', 'yuanma', b'1', b'1', b'0', '=', b'1', 'input', '1', '2021-04-05 00:51:34', '1', '2021-04-05 20:52:09', b'0'); | ||
| 1267 | +INSERT INTO `tool_codegen_column` VALUES (396, 34, 'callback_url', 'varchar(255)', 'çŸä¿¡å‘é€å›žè°ƒ URL', b'1', b'0', '0', 8, 'String', 'callbackUrl', '', 'http://www.iocoder.cn', b'1', b'1', b'0', '=', b'1', 'input', '1', '2021-04-05 00:51:34', '1', '2021-04-05 20:52:09', b'0'); | ||
| 1268 | +INSERT INTO `tool_codegen_column` VALUES (397, 34, 'creator', 'varchar(64)', '创建者', b'1', b'0', '0', 9, 'String', 'creator', '', NULL, b'0', b'0', b'0', '=', b'0', 'input', '1', '2021-04-05 00:51:34', '1', '2021-04-05 20:52:09', b'0'); | ||
| 1269 | +INSERT INTO `tool_codegen_column` VALUES (398, 34, 'create_time', 'datetime', '创建时间', b'0', b'0', '0', 10, 'Date', 'createTime', '', NULL, b'0', b'0', b'1', 'BETWEEN', b'1', 'datetime', '1', '2021-04-05 00:51:34', '1', '2021-04-05 20:52:09', b'0'); | ||
| 1270 | +INSERT INTO `tool_codegen_column` VALUES (399, 34, 'updater', 'varchar(64)', '更新者', b'1', b'0', '0', 11, 'String', 'updater', '', NULL, b'0', b'0', b'0', '=', b'0', 'input', '1', '2021-04-05 00:51:34', '1', '2021-04-05 20:52:09', b'0'); | ||
| 1271 | +INSERT INTO `tool_codegen_column` VALUES (400, 34, 'update_time', 'datetime', 'æ›´æ–°æ—¶é—´', b'0', b'0', '0', 12, 'Date', 'updateTime', '', NULL, b'0', b'0', b'0', 'BETWEEN', b'0', 'datetime', '1', '2021-04-05 00:51:34', '1', '2021-04-05 20:52:09', b'0'); | ||
| 1272 | +INSERT INTO `tool_codegen_column` VALUES (401, 34, 'deleted', 'bit(1)', '是å¦åˆ 除', b'0', b'0', '0', 13, 'Boolean', 'deleted', '', NULL, b'0', b'0', b'0', '=', b'0', 'radio', '1', '2021-04-05 00:51:34', '1', '2021-04-05 20:52:09', b'0'); | ||
| 1273 | +INSERT INTO `tool_codegen_column` VALUES (402, 35, 'id', 'bigint(20)', 'ç¼–å·', b'0', b'1', '1', 1, 'Long', 'id', '', '1024', b'0', b'1', b'0', '=', b'1', 'input', '1', '2021-04-05 21:42:22', '1', '2021-04-05 22:23:38', b'0'); | ||
| 1274 | +INSERT INTO `tool_codegen_column` VALUES (403, 35, 'type', 'tinyint(4)', 'çŸä¿¡ç¾å', b'0', b'0', '0', 2, 'Integer', 'type', 'sys_sms_template_type', '1', b'1', b'1', b'1', '=', b'1', 'select', '1', '2021-04-05 21:42:22', '1', '2021-04-05 22:23:38', b'0'); | ||
| 1275 | +INSERT INTO `tool_codegen_column` VALUES (404, 35, 'status', 'tinyint(4)', 'å¼€å¯çжæ€', b'0', b'0', '0', 3, 'Integer', 'status', 'sys_common_status', '1', b'1', b'1', b'1', '=', b'1', 'radio', '1', '2021-04-05 21:42:22', '1', '2021-04-05 22:23:38', b'0'); | ||
| 1276 | +INSERT INTO `tool_codegen_column` VALUES (405, 35, 'code', 'varchar(63)', '模æ¿ç¼–ç ', b'0', b'0', '0', 4, 'String', 'code', '', 'test_01', b'1', b'1', b'1', 'LIKE', b'1', 'input', '1', '2021-04-05 21:42:22', '1', '2021-04-05 22:23:38', b'0'); | ||
| 1277 | +INSERT INTO `tool_codegen_column` VALUES (406, 35, 'name', 'varchar(63)', '模æ¿åç§°', b'0', b'0', '0', 5, 'String', 'name', '', 'yudao', b'1', b'1', b'0', 'LIKE', b'1', 'input', '1', '2021-04-05 21:42:22', '1', '2021-04-05 22:23:38', b'0'); | ||
| 1278 | +INSERT INTO `tool_codegen_column` VALUES (407, 35, 'content', 'varchar(255)', '模æ¿å†…容', b'0', b'0', '0', 6, 'String', 'content', '', 'ä½ å¥½ï¼Œ{name}ã€‚ä½ é•¿çš„å¤ª{like}啦ï¼', b'1', b'1', b'1', 'LIKE', b'1', 'editor', '1', '2021-04-05 21:42:22', '1', '2021-04-05 22:23:38', b'0'); | ||
| 1279 | +INSERT INTO `tool_codegen_column` VALUES (408, 35, 'params', 'varchar(255)', '傿•°æ•°ç»„', b'0', b'0', '0', 7, 'String', 'params', '', 'name,code', b'0', b'0', b'0', '=', b'0', 'input', '1', '2021-04-05 21:42:22', '1', '2021-04-05 22:23:38', b'0'); | ||
| 1280 | +INSERT INTO `tool_codegen_column` VALUES (409, 35, 'remark', 'varchar(255)', '备注', b'1', b'0', '0', 8, 'String', 'remark', '', '哈哈哈', b'1', b'1', b'0', '=', b'1', 'input', '1', '2021-04-05 21:42:22', '1', '2021-04-05 22:23:38', b'0'); | ||
| 1281 | +INSERT INTO `tool_codegen_column` VALUES (410, 35, 'api_template_id', 'varchar(63)', 'çŸä¿¡ API 的模æ¿ç¼–å·', b'0', b'0', '0', 9, 'String', 'apiTemplateId', '', '4383920', b'1', b'1', b'1', 'LIKE', b'1', 'input', '1', '2021-04-05 21:42:22', '1', '2021-04-05 22:23:38', b'0'); | ||
| 1282 | +INSERT INTO `tool_codegen_column` VALUES (411, 35, 'channel_id', 'bigint(20)', 'çŸä¿¡æ¸ é“ç¼–å·', b'0', b'0', '0', 10, 'Long', 'channelId', '', '10', b'1', b'1', b'1', '=', b'1', 'select', '1', '2021-04-05 21:42:22', '1', '2021-04-05 22:23:38', b'0'); | ||
| 1283 | +INSERT INTO `tool_codegen_column` VALUES (412, 35, 'channel_code', 'varchar(63)', 'çŸä¿¡æ¸ é“ç¼–ç ', b'0', b'0', '0', 11, 'String', 'channelCode', 'sys_sms_channel_code', 'ALIYUN', b'0', b'0', b'0', '=', b'1', 'input', '1', '2021-04-05 21:42:22', '1', '2021-04-05 22:23:38', b'0'); | ||
| 1284 | +INSERT INTO `tool_codegen_column` VALUES (413, 35, 'creator', 'varchar(64)', '创建者', b'1', b'0', '0', 12, 'String', 'creator', '', NULL, b'0', b'0', b'0', '=', b'0', 'input', '1', '2021-04-05 21:42:22', '1', '2021-04-05 22:23:38', b'0'); | ||
| 1285 | +INSERT INTO `tool_codegen_column` VALUES (414, 35, 'create_time', 'datetime', '创建时间', b'0', b'0', '0', 13, 'Date', 'createTime', '', NULL, b'0', b'0', b'1', 'BETWEEN', b'1', 'datetime', '1', '2021-04-05 21:42:22', '1', '2021-04-05 22:23:38', b'0'); | ||
| 1286 | +INSERT INTO `tool_codegen_column` VALUES (415, 35, 'updater', 'varchar(64)', '更新者', b'1', b'0', '0', 14, 'String', 'updater', '', NULL, b'0', b'0', b'0', '=', b'0', 'input', '1', '2021-04-05 21:42:22', '1', '2021-04-05 22:23:38', b'0'); | ||
| 1287 | +INSERT INTO `tool_codegen_column` VALUES (416, 35, 'update_time', 'datetime', 'æ›´æ–°æ—¶é—´', b'0', b'0', '0', 15, 'Date', 'updateTime', '', NULL, b'0', b'0', b'0', 'BETWEEN', b'0', 'datetime', '1', '2021-04-05 21:42:22', '1', '2021-04-05 22:23:38', b'0'); | ||
| 1288 | +INSERT INTO `tool_codegen_column` VALUES (417, 35, 'deleted', 'bit(1)', '是å¦åˆ 除', b'0', b'0', '0', 16, 'Boolean', 'deleted', '', NULL, b'0', b'0', b'0', '=', b'0', 'radio', '1', '2021-04-05 21:42:22', '1', '2021-04-05 22:23:38', b'0'); | ||
| 1129 | COMMIT; | 1289 | COMMIT; |
| 1130 | 1290 | ||
| 1131 | -- ---------------------------- | 1291 | -- ---------------------------- |
| @@ -1151,7 +1311,7 @@ CREATE TABLE `tool_codegen_table` ( | @@ -1151,7 +1311,7 @@ CREATE TABLE `tool_codegen_table` ( | ||
| 1151 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'æ›´æ–°æ—¶é—´', | 1311 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'æ›´æ–°æ—¶é—´', |
| 1152 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是å¦åˆ 除', | 1312 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是å¦åˆ 除', |
| 1153 | PRIMARY KEY (`id`) USING BTREE | 1313 | PRIMARY KEY (`id`) USING BTREE |
| 1154 | -) ENGINE=InnoDB AUTO_INCREMENT=34 DEFAULT CHARSET=utf8mb4 COMMENT='代ç 生æˆè¡¨å®šä¹‰'; | 1314 | +) ENGINE=InnoDB AUTO_INCREMENT=36 DEFAULT CHARSET=utf8mb4 COMMENT='代ç 生æˆè¡¨å®šä¹‰'; |
| 1155 | 1315 | ||
| 1156 | -- ---------------------------- | 1316 | -- ---------------------------- |
| 1157 | -- Records of tool_codegen_table | 1317 | -- Records of tool_codegen_table |
| @@ -1169,6 +1329,8 @@ INSERT INTO `tool_codegen_table` VALUES (28, 1, 'sys_dict_type', 'å—å…¸ç±»åž‹è¡ | @@ -1169,6 +1329,8 @@ INSERT INTO `tool_codegen_table` VALUES (28, 1, 'sys_dict_type', 'å—å…¸ç±»åž‹è¡ | ||
| 1169 | INSERT INTO `tool_codegen_table` VALUES (29, 1, 'sys_dict_type', 'å—典类型表', NULL, 'system', 'dict', 'SysDictType', 'å—典类型', '芋艿', 1, NULL, '', '2021-03-06 03:52:57', '', '2021-03-06 04:03:52', b'0'); | 1329 | INSERT INTO `tool_codegen_table` VALUES (29, 1, 'sys_dict_type', 'å—典类型表', NULL, 'system', 'dict', 'SysDictType', 'å—典类型', '芋艿', 1, NULL, '', '2021-03-06 03:52:57', '', '2021-03-06 04:03:52', b'0'); |
| 1170 | INSERT INTO `tool_codegen_table` VALUES (30, 1, 'sys_dict_data', 'å—典数æ®è¡¨', NULL, 'system', 'type', 'SysDictData', 'å—典数æ®', 'èŠ‹é“æºç ', 1, NULL, '', '2021-03-06 06:48:28', '', '2021-03-06 06:50:47', b'0'); | 1330 | INSERT INTO `tool_codegen_table` VALUES (30, 1, 'sys_dict_data', 'å—典数æ®è¡¨', NULL, 'system', 'type', 'SysDictData', 'å—典数æ®', 'èŠ‹é“æºç ', 1, NULL, '', '2021-03-06 06:48:28', '', '2021-03-06 06:50:47', b'0'); |
| 1171 | INSERT INTO `tool_codegen_table` VALUES (33, 1, 'inf_file', '文件表', NULL, 'infra', 'file', 'InfFile', '文件', '芋艿', 1, 2, '1', '2021-03-13 09:43:20', '1', '2021-03-13 11:27:12', b'0'); | 1331 | INSERT INTO `tool_codegen_table` VALUES (33, 1, 'inf_file', '文件表', NULL, 'infra', 'file', 'InfFile', '文件', '芋艿', 1, 2, '1', '2021-03-13 09:43:20', '1', '2021-03-13 11:27:12', b'0'); |
| 1332 | +INSERT INTO `tool_codegen_table` VALUES (34, 1, 'sys_sms_channel', 'çŸä¿¡æ¸ é“', NULL, 'system', 'sms', 'SysSmsChannel', 'çŸä¿¡æ¸ é“', 'èŠ‹é“æºç ', 1, 1093, '1', '2021-04-03 13:39:06', '1', '2021-04-05 20:52:09', b'0'); | ||
| 1333 | +INSERT INTO `tool_codegen_table` VALUES (35, 1, 'sys_sms_template', 'çŸä¿¡æ¨¡æ¿', NULL, 'system', 'sms', 'SysSmsTemplate', 'çŸä¿¡æ¨¡æ¿', 'èŠ‹é“æºç ', 1, 1093, '1', '2021-04-03 13:58:55', '1', '2021-04-05 22:23:38', b'0'); | ||
| 1172 | COMMIT; | 1334 | COMMIT; |
| 1173 | 1335 | ||
| 1174 | -- ---------------------------- | 1336 | -- ---------------------------- |
sql/sms.sql deleted
| 1 | -/* | ||
| 2 | - --2021.02.01 by fight, sms about table info | ||
| 3 | -*/ | ||
| 4 | - | ||
| 5 | --- ---------------------------- | ||
| 6 | --- Table structure for sms_channel | ||
| 7 | --- ---------------------------- | ||
| 8 | -DROP TABLE IF EXISTS `sms_channel`; | ||
| 9 | -CREATE TABLE `sms_channel` | ||
| 10 | -( | ||
| 11 | - `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '自增编号', | ||
| 12 | - `code` varchar(50) NOT NULL COMMENT '编码(来自枚举类 阿里、华为、七牛等)', | ||
| 13 | - `api_key` varchar(100) NOT NULL COMMENT '账号id', | ||
| 14 | - `api_secret` varchar(100) NOT NULL COMMENT '账号秘钥', | ||
| 15 | - `callback_url` varchar(100) NOT NULL default '' COMMENT '回调请求路径', | ||
| 16 | - `api_signature_id` varchar(100) NOT NULL COMMENT '实际渠道签名唯一标识', | ||
| 17 | - `name` varchar(50) NOT NULL COMMENT '名称', | ||
| 18 | - `signature` varchar(50) NOT NULL COMMENT '签名值', | ||
| 19 | - `remark` varchar(200) NOT NULL COMMENT '备注', | ||
| 20 | - | ||
| 21 | - `status` tinyint(4) NOT NULL DEFAULT 0 COMMENT '启用状态(0正常 1停用)', | ||
| 22 | - `create_by` varchar(64) NOT NULL DEFAULT '' COMMENT '创建者', | ||
| 23 | - `create_time` datetime DEFAULT NULL COMMENT '创建时间', | ||
| 24 | - `update_by` varchar(64) DEFAULT '' COMMENT '更新者', | ||
| 25 | - `update_time` datetime DEFAULT NULL COMMENT '更新时间', | ||
| 26 | - `deleted` bit(1) DEFAULT b'0' COMMENT '是否删除', | ||
| 27 | - PRIMARY KEY (`id`) USING BTREE | ||
| 28 | -) ENGINE = InnoDB | ||
| 29 | - AUTO_INCREMENT = 1 | ||
| 30 | - DEFAULT CHARSET = utf8mb4 COMMENT ='短信渠道'; | ||
| 31 | -/* | ||
| 32 | - 优先级值一样时,按照id顺序取值 | ||
| 33 | -*/ | ||
| 34 | - | ||
| 35 | --- ---------------------------- | ||
| 36 | --- Table structure for sms_template | ||
| 37 | --- ---------------------------- | ||
| 38 | -DROP TABLE IF EXISTS `sms_template`; | ||
| 39 | -CREATE TABLE `sms_template` | ||
| 40 | -( | ||
| 41 | - `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '自增编号', | ||
| 42 | - `channel_code` varchar(50) NOT NULL COMMENT '短信渠道编码(来自枚举类)', | ||
| 43 | - `channel_id` bigint(20) NOT NULL COMMENT '短信渠道id (对于前端来说就是绑定一个签名)', | ||
| 44 | - `type` tinyint(4) NOT NULL DEFAULT 1 COMMENT '消息类型 [0验证码 1短信通知 2推广短信 3国际/港澳台消息]', | ||
| 45 | - `biz_code` varchar(50) NOT NULL COMMENT '业务编码(来自数据字典, 用户自定义业务场景 一个场景可以有多个模板)', | ||
| 46 | - `code` varchar(50) NOT NULL COMMENT '编码', | ||
| 47 | - `name` varchar(50) NOT NULL COMMENT '名称', | ||
| 48 | - `api_template_id` varchar(100) NOT NULL COMMENT '实际渠道模板唯一标识', | ||
| 49 | - `content` varchar(1000) NOT NULL DEFAULT '' COMMENT '内容', | ||
| 50 | - `params` varchar(200) NOT NULL DEFAULT '' COMMENT '参数数组(自动根据内容生成)', | ||
| 51 | - `remark` varchar(200) NOT NULL COMMENT '备注', | ||
| 52 | - | ||
| 53 | - `status` tinyint(4) NOT NULL DEFAULT 0 COMMENT '启用状态(0正常 1停用)', | ||
| 54 | - `create_by` varchar(64) NOT NULL DEFAULT '' COMMENT '创建者', | ||
| 55 | - `create_time` datetime DEFAULT NULL COMMENT '创建时间', | ||
| 56 | - `update_by` varchar(64) DEFAULT '' COMMENT '更新者', | ||
| 57 | - `update_time` datetime DEFAULT NULL COMMENT '更新时间', | ||
| 58 | - `deleted` bit(1) DEFAULT b'0' COMMENT '是否删除', | ||
| 59 | - PRIMARY KEY (`id`) USING BTREE | ||
| 60 | -) ENGINE = InnoDB | ||
| 61 | - AUTO_INCREMENT = 1 | ||
| 62 | - DEFAULT CHARSET = utf8mb4 COMMENT ='短信模板'; | ||
| 63 | -/* | ||
| 64 | --- ---------------------------- | ||
| 65 | --- Table structure for sms_query_log | ||
| 66 | --- ---------------------------- | ||
| 67 | -DROP TABLE IF EXISTS `sms_query_log`; | ||
| 68 | -CREATE TABLE `sms_query_log` | ||
| 69 | -( | ||
| 70 | - `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '自增编号', | ||
| 71 | - `api_id` varchar(100) NOT NULL COMMENT '第三方唯一标识', | ||
| 72 | - `channel_code` varchar(50) NOT NULL COMMENT '短信渠道编码(来自枚举类)', | ||
| 73 | - `channel_id` bigint(20) NOT NULL COMMENT '短信渠道id', | ||
| 74 | - `template_code` varchar(50) NOT NULL COMMENT '渠道编码', | ||
| 75 | - `phone` char(11) NOT NULL COMMENT '手机号', | ||
| 76 | - `content` varchar(1000) NOT NULL DEFAULT '' COMMENT '内容', | ||
| 77 | - `send_result_param` varchar(200) NOT NULL DEFAULT '' COMMENT '查询短信发送结果的参数', | ||
| 78 | - `send_status` tinyint(1) NOT NULL DEFAULT 2 COMMENT '发送状态(0本地异步中 1发送请求失败 2发送请求成功)', | ||
| 79 | - `got_result` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否获取发送结果', | ||
| 80 | - `had_callback` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否拥有回调函数', | ||
| 81 | - `create_by` varchar(64) NOT NULL DEFAULT '' COMMENT '创建者', | ||
| 82 | - `create_time` datetime DEFAULT NULL COMMENT '创建时间', | ||
| 83 | - PRIMARY KEY (`id`) USING BTREE | ||
| 84 | -) ENGINE = InnoDB | ||
| 85 | - AUTO_INCREMENT = 1 | ||
| 86 | - DEFAULT CHARSET = utf8mb4 COMMENT ='短信请求日志';*/ | ||
| 87 | - | ||
| 88 | --- ---------------------------- | ||
| 89 | --- Table structure for sms_log | ||
| 90 | --- ---------------------------- | ||
| 91 | -DROP TABLE IF EXISTS `sms_query_log`; | ||
| 92 | -CREATE TABLE `sms_query_log` | ||
| 93 | -( | ||
| 94 | - `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '自增编号', | ||
| 95 | - `api_id` varchar(100) NOT NULL COMMENT '第三方唯一标识', | ||
| 96 | - `channel_code` varchar(50) NOT NULL COMMENT '短信渠道编码(来自枚举类)', | ||
| 97 | - `channel_id` bigint(20) NOT NULL COMMENT '短信渠道id', | ||
| 98 | - `template_code` varchar(50) NOT NULL COMMENT '渠道编码', | ||
| 99 | - `phone` char(11) NOT NULL COMMENT '手机号', | ||
| 100 | - `content` varchar(1000) NOT NULL DEFAULT '' COMMENT '内容', | ||
| 101 | - `send_status` tinyint(1) NOT NULL DEFAULT 0 COMMENT '发送状态 详情见:SmsSendStatusEnum', | ||
| 102 | - `remark` varchar(200) DEFAULT NULL COMMENT '备注', | ||
| 103 | - `create_by` varchar(64) NOT NULL DEFAULT '' COMMENT '创建者', | ||
| 104 | - `create_time` datetime DEFAULT NULL COMMENT '创建时间', | ||
| 105 | - `send_time` datetime DEFAULT NULL COMMENT '发送时间', | ||
| 106 | - PRIMARY KEY (`id`) USING BTREE | ||
| 107 | -) ENGINE = InnoDB | ||
| 108 | - AUTO_INCREMENT = 1 | ||
| 109 | - DEFAULT CHARSET = utf8mb4 COMMENT ='短信发送日志'; |
src/main/java/cn/iocoder/dashboard/modules/system/dal/mysql/sms/SysSmsTemplateMapper.java
| @@ -13,7 +13,7 @@ import java.util.List; | @@ -13,7 +13,7 @@ import java.util.List; | ||
| 13 | @Mapper | 13 | @Mapper |
| 14 | public interface SysSmsTemplateMapper extends BaseMapperX<SysSmsTemplateDO> { | 14 | public interface SysSmsTemplateMapper extends BaseMapperX<SysSmsTemplateDO> { |
| 15 | 15 | ||
| 16 | - default SysSmsTemplateDO selectOneByCode(String code) { | 16 | + default SysSmsTemplateDO selectByCode(String code) { |
| 17 | return selectOne("code", code); | 17 | return selectOne("code", code); |
| 18 | } | 18 | } |
| 19 | 19 |
src/main/java/cn/iocoder/dashboard/modules/system/enums/SysErrorCodeConstants.java
| @@ -80,9 +80,11 @@ public interface SysErrorCodeConstants { | @@ -80,9 +80,11 @@ public interface SysErrorCodeConstants { | ||
| 80 | 80 | ||
| 81 | // ========== 短信渠道 1002011000 ========== | 81 | // ========== 短信渠道 1002011000 ========== |
| 82 | ErrorCode SMS_CHANNEL_NOT_EXISTS = new ErrorCode(1002011000, "短信渠道不存在"); | 82 | ErrorCode SMS_CHANNEL_NOT_EXISTS = new ErrorCode(1002011000, "短信渠道不存在"); |
| 83 | + ErrorCode SMS_CHANNEL_DISABLE = new ErrorCode(1002011001, "短信渠道不处于开启状态,不允许选择"); | ||
| 83 | 84 | ||
| 84 | // ========== 短信模板 1002011000 ========== | 85 | // ========== 短信模板 1002011000 ========== |
| 85 | ErrorCode SMS_TEMPLATE_NOT_EXISTS = new ErrorCode(1002011000, "短信模板不存在"); | 86 | ErrorCode SMS_TEMPLATE_NOT_EXISTS = new ErrorCode(1002011000, "短信模板不存在"); |
| 87 | + ErrorCode SMS_TEMPLATE_CODE_DUPLICATE = new ErrorCode(1002011001, "已经存在编码为【{}}】的短信模板"); | ||
| 86 | 88 | ||
| 87 | // ========== 短信发送 1002012000 ========== | 89 | // ========== 短信发送 1002012000 ========== |
| 88 | ErrorCode SMS_SEND_MOBILE_NOT_EXISTS = new ErrorCode(1002012000, "手机号不存在"); | 90 | ErrorCode SMS_SEND_MOBILE_NOT_EXISTS = new ErrorCode(1002012000, "手机号不存在"); |
src/main/java/cn/iocoder/dashboard/modules/system/service/sms/impl/SysSmsTemplateServiceImpl.java
| 1 | package cn.iocoder.dashboard.modules.system.service.sms.impl; | 1 | package cn.iocoder.dashboard.modules.system.service.sms.impl; |
| 2 | 2 | ||
| 3 | +import cn.hutool.core.util.ReUtil; | ||
| 3 | import cn.hutool.core.util.StrUtil; | 4 | import cn.hutool.core.util.StrUtil; |
| 5 | +import cn.iocoder.dashboard.common.enums.CommonStatusEnum; | ||
| 4 | import cn.iocoder.dashboard.common.pojo.PageResult; | 6 | import cn.iocoder.dashboard.common.pojo.PageResult; |
| 5 | import cn.iocoder.dashboard.modules.system.controller.sms.vo.template.SysSmsTemplateCreateReqVO; | 7 | import cn.iocoder.dashboard.modules.system.controller.sms.vo.template.SysSmsTemplateCreateReqVO; |
| 6 | import cn.iocoder.dashboard.modules.system.controller.sms.vo.template.SysSmsTemplateExportReqVO; | 8 | import cn.iocoder.dashboard.modules.system.controller.sms.vo.template.SysSmsTemplateExportReqVO; |
| 7 | import cn.iocoder.dashboard.modules.system.controller.sms.vo.template.SysSmsTemplatePageReqVO; | 9 | import cn.iocoder.dashboard.modules.system.controller.sms.vo.template.SysSmsTemplatePageReqVO; |
| 8 | import cn.iocoder.dashboard.modules.system.controller.sms.vo.template.SysSmsTemplateUpdateReqVO; | 10 | import cn.iocoder.dashboard.modules.system.controller.sms.vo.template.SysSmsTemplateUpdateReqVO; |
| 9 | import cn.iocoder.dashboard.modules.system.convert.sms.SysSmsTemplateConvert; | 11 | import cn.iocoder.dashboard.modules.system.convert.sms.SysSmsTemplateConvert; |
| 12 | +import cn.iocoder.dashboard.modules.system.dal.dataobject.sms.SysSmsChannelDO; | ||
| 10 | import cn.iocoder.dashboard.modules.system.dal.dataobject.sms.SysSmsTemplateDO; | 13 | import cn.iocoder.dashboard.modules.system.dal.dataobject.sms.SysSmsTemplateDO; |
| 11 | import cn.iocoder.dashboard.modules.system.dal.mysql.sms.SysSmsTemplateMapper; | 14 | import cn.iocoder.dashboard.modules.system.dal.mysql.sms.SysSmsTemplateMapper; |
| 15 | +import cn.iocoder.dashboard.modules.system.service.sms.SysSmsChannelService; | ||
| 12 | import cn.iocoder.dashboard.modules.system.service.sms.SysSmsTemplateService; | 16 | import cn.iocoder.dashboard.modules.system.service.sms.SysSmsTemplateService; |
| 17 | +import com.google.common.annotations.VisibleForTesting; | ||
| 13 | import org.springframework.stereotype.Service; | 18 | import org.springframework.stereotype.Service; |
| 14 | 19 | ||
| 15 | import javax.annotation.Resource; | 20 | import javax.annotation.Resource; |
| 16 | import java.util.Collection; | 21 | import java.util.Collection; |
| 17 | import java.util.List; | 22 | import java.util.List; |
| 18 | import java.util.Map; | 23 | import java.util.Map; |
| 24 | +import java.util.Objects; | ||
| 25 | +import java.util.regex.Pattern; | ||
| 19 | 26 | ||
| 20 | import static cn.iocoder.dashboard.common.exception.util.ServiceExceptionUtil.exception; | 27 | import static cn.iocoder.dashboard.common.exception.util.ServiceExceptionUtil.exception; |
| 21 | -import static cn.iocoder.dashboard.modules.system.enums.SysErrorCodeConstants.SMS_TEMPLATE_NOT_EXISTS; | 28 | +import static cn.iocoder.dashboard.modules.system.enums.SysErrorCodeConstants.*; |
| 22 | 29 | ||
| 23 | /** | 30 | /** |
| 24 | * 短信模板Service实现类 | 31 | * 短信模板Service实现类 |
| @@ -29,12 +36,20 @@ import static cn.iocoder.dashboard.modules.system.enums.SysErrorCodeConstants.SM | @@ -29,12 +36,20 @@ import static cn.iocoder.dashboard.modules.system.enums.SysErrorCodeConstants.SM | ||
| 29 | @Service | 36 | @Service |
| 30 | public class SysSmsTemplateServiceImpl implements SysSmsTemplateService { | 37 | public class SysSmsTemplateServiceImpl implements SysSmsTemplateService { |
| 31 | 38 | ||
| 39 | + /** | ||
| 40 | + * 正则表达式,匹配 {} 中的变量 | ||
| 41 | + */ | ||
| 42 | + private static final Pattern PATTERN_PARAMS = Pattern.compile("\\{(.*?)}"); | ||
| 43 | + | ||
| 32 | @Resource | 44 | @Resource |
| 33 | private SysSmsTemplateMapper smsTemplateMapper; | 45 | private SysSmsTemplateMapper smsTemplateMapper; |
| 34 | 46 | ||
| 47 | + @Resource | ||
| 48 | + private SysSmsChannelService smsChannelService; | ||
| 49 | + | ||
| 35 | @Override | 50 | @Override |
| 36 | public SysSmsTemplateDO getSmsTemplateByCode(String code) { | 51 | public SysSmsTemplateDO getSmsTemplateByCode(String code) { |
| 37 | - return smsTemplateMapper.selectOneByCode(code); | 52 | + return smsTemplateMapper.selectByCode(code); |
| 38 | } | 53 | } |
| 39 | 54 | ||
| 40 | @Override | 55 | @Override |
| @@ -42,13 +57,25 @@ public class SysSmsTemplateServiceImpl implements SysSmsTemplateService { | @@ -42,13 +57,25 @@ public class SysSmsTemplateServiceImpl implements SysSmsTemplateService { | ||
| 42 | return StrUtil.format(content, params); | 57 | return StrUtil.format(content, params); |
| 43 | } | 58 | } |
| 44 | 59 | ||
| 60 | + @VisibleForTesting | ||
| 61 | + public List<String> parseTemplateContentParams(String content) { | ||
| 62 | + return ReUtil.findAllGroup1(PATTERN_PARAMS, content); | ||
| 63 | + } | ||
| 64 | + | ||
| 45 | @Override | 65 | @Override |
| 46 | public Long createSmsTemplate(SysSmsTemplateCreateReqVO createReqVO) { | 66 | public Long createSmsTemplate(SysSmsTemplateCreateReqVO createReqVO) { |
| 67 | + // 校验短信渠道 | ||
| 68 | + SysSmsChannelDO channelDO = checkSmsChannel(createReqVO.getChannelId()); | ||
| 69 | + // 校验短信编码是否重复 | ||
| 70 | + checkSmsTemplateCodeDuplicate(null, createReqVO.getCode()); | ||
| 71 | + | ||
| 47 | // 插入 | 72 | // 插入 |
| 48 | - SysSmsTemplateDO smsTemplate = SysSmsTemplateConvert.INSTANCE.convert(createReqVO); | ||
| 49 | - smsTemplateMapper.insert(smsTemplate); | 73 | + SysSmsTemplateDO template = SysSmsTemplateConvert.INSTANCE.convert(createReqVO); |
| 74 | + template.setParams(parseTemplateContentParams(template.getContent())); | ||
| 75 | + template.setChannelCode(channelDO.getCode()); | ||
| 76 | + smsTemplateMapper.insert(template); | ||
| 50 | // 返回 | 77 | // 返回 |
| 51 | - return smsTemplate.getId(); | 78 | + return template.getId(); |
| 52 | } | 79 | } |
| 53 | 80 | ||
| 54 | @Override | 81 | @Override |
| @@ -94,4 +121,29 @@ public class SysSmsTemplateServiceImpl implements SysSmsTemplateService { | @@ -94,4 +121,29 @@ public class SysSmsTemplateServiceImpl implements SysSmsTemplateService { | ||
| 94 | return smsTemplateMapper.selectList(exportReqVO); | 121 | return smsTemplateMapper.selectList(exportReqVO); |
| 95 | } | 122 | } |
| 96 | 123 | ||
| 124 | + private SysSmsChannelDO checkSmsChannel(Long channelId) { | ||
| 125 | + SysSmsChannelDO channelDO = smsChannelService.getSmsChannel(channelId); | ||
| 126 | + if (channelDO == null) { | ||
| 127 | + throw exception(SMS_CHANNEL_NOT_EXISTS); | ||
| 128 | + } | ||
| 129 | + if (!Objects.equals(channelDO.getStatus(), CommonStatusEnum.ENABLE.getStatus())) { | ||
| 130 | + throw exception(SMS_CHANNEL_DISABLE); | ||
| 131 | + } | ||
| 132 | + return channelDO; | ||
| 133 | + } | ||
| 134 | + | ||
| 135 | + private void checkSmsTemplateCodeDuplicate(Long id, String code) { | ||
| 136 | + SysSmsTemplateDO template = smsTemplateMapper.selectByCode(code); | ||
| 137 | + if (template == null) { | ||
| 138 | + return; | ||
| 139 | + } | ||
| 140 | + // 如果 id 为空,说明不用比较是否为相同 id 的字典类型 | ||
| 141 | + if (id == null) { | ||
| 142 | + throw exception(SMS_TEMPLATE_CODE_DUPLICATE); | ||
| 143 | + } | ||
| 144 | + if (!template.getId().equals(id)) { | ||
| 145 | + throw exception(SMS_TEMPLATE_CODE_DUPLICATE); | ||
| 146 | + } | ||
| 147 | + } | ||
| 148 | + | ||
| 97 | } | 149 | } |
src/test/java/cn/iocoder/dashboard/modules/system/service/sms/SysSmsTemplateServiceTest.java
| 1 | package cn.iocoder.dashboard.modules.system.service.sms; | 1 | package cn.iocoder.dashboard.modules.system.service.sms; |
| 2 | 2 | ||
| 3 | import cn.iocoder.dashboard.BaseDbUnitTest; | 3 | import cn.iocoder.dashboard.BaseDbUnitTest; |
| 4 | +import cn.iocoder.dashboard.common.enums.CommonStatusEnum; | ||
| 4 | import cn.iocoder.dashboard.common.pojo.PageResult; | 5 | import cn.iocoder.dashboard.common.pojo.PageResult; |
| 5 | import cn.iocoder.dashboard.modules.system.controller.sms.vo.template.SysSmsTemplateCreateReqVO; | 6 | import cn.iocoder.dashboard.modules.system.controller.sms.vo.template.SysSmsTemplateCreateReqVO; |
| 6 | import cn.iocoder.dashboard.modules.system.controller.sms.vo.template.SysSmsTemplateExportReqVO; | 7 | import cn.iocoder.dashboard.modules.system.controller.sms.vo.template.SysSmsTemplateExportReqVO; |
| 7 | import cn.iocoder.dashboard.modules.system.controller.sms.vo.template.SysSmsTemplatePageReqVO; | 8 | import cn.iocoder.dashboard.modules.system.controller.sms.vo.template.SysSmsTemplatePageReqVO; |
| 8 | import cn.iocoder.dashboard.modules.system.controller.sms.vo.template.SysSmsTemplateUpdateReqVO; | 9 | import cn.iocoder.dashboard.modules.system.controller.sms.vo.template.SysSmsTemplateUpdateReqVO; |
| 10 | +import cn.iocoder.dashboard.modules.system.dal.dataobject.sms.SysSmsChannelDO; | ||
| 9 | import cn.iocoder.dashboard.modules.system.dal.dataobject.sms.SysSmsTemplateDO; | 11 | import cn.iocoder.dashboard.modules.system.dal.dataobject.sms.SysSmsTemplateDO; |
| 10 | import cn.iocoder.dashboard.modules.system.dal.mysql.sms.SysSmsTemplateMapper; | 12 | import cn.iocoder.dashboard.modules.system.dal.mysql.sms.SysSmsTemplateMapper; |
| 13 | +import cn.iocoder.dashboard.modules.system.enums.sms.SysSmsTemplateTypeEnum; | ||
| 11 | import cn.iocoder.dashboard.modules.system.service.sms.impl.SysSmsTemplateServiceImpl; | 14 | import cn.iocoder.dashboard.modules.system.service.sms.impl.SysSmsTemplateServiceImpl; |
| 15 | +import cn.iocoder.dashboard.util.collection.ArrayUtils; | ||
| 12 | import cn.iocoder.dashboard.util.object.ObjectUtils; | 16 | import cn.iocoder.dashboard.util.object.ObjectUtils; |
| 17 | +import com.google.common.collect.Lists; | ||
| 13 | import org.junit.jupiter.api.Test; | 18 | import org.junit.jupiter.api.Test; |
| 19 | +import org.springframework.boot.test.mock.mockito.MockBean; | ||
| 14 | import org.springframework.context.annotation.Import; | 20 | import org.springframework.context.annotation.Import; |
| 15 | 21 | ||
| 16 | import javax.annotation.Resource; | 22 | import javax.annotation.Resource; |
| 17 | import java.util.List; | 23 | import java.util.List; |
| 24 | +import java.util.function.Consumer; | ||
| 18 | 25 | ||
| 26 | +import static cn.hutool.core.util.RandomUtil.randomEle; | ||
| 19 | import static cn.iocoder.dashboard.modules.system.enums.SysErrorCodeConstants.SMS_TEMPLATE_NOT_EXISTS; | 27 | import static cn.iocoder.dashboard.modules.system.enums.SysErrorCodeConstants.SMS_TEMPLATE_NOT_EXISTS; |
| 20 | import static cn.iocoder.dashboard.util.AssertUtils.assertPojoEquals; | 28 | import static cn.iocoder.dashboard.util.AssertUtils.assertPojoEquals; |
| 21 | import static cn.iocoder.dashboard.util.AssertUtils.assertServiceException; | 29 | import static cn.iocoder.dashboard.util.AssertUtils.assertServiceException; |
| 22 | import static cn.iocoder.dashboard.util.RandomUtils.randomLongId; | 30 | import static cn.iocoder.dashboard.util.RandomUtils.randomLongId; |
| 23 | import static cn.iocoder.dashboard.util.RandomUtils.randomPojo; | 31 | import static cn.iocoder.dashboard.util.RandomUtils.randomPojo; |
| 24 | import static org.junit.jupiter.api.Assertions.*; | 32 | import static org.junit.jupiter.api.Assertions.*; |
| 33 | +import static org.mockito.ArgumentMatchers.eq; | ||
| 34 | +import static org.mockito.Mockito.when; | ||
| 25 | 35 | ||
| 26 | /** | 36 | /** |
| 27 | * {@link SysSmsTemplateServiceImpl} 的单元测试类 | 37 | * {@link SysSmsTemplateServiceImpl} 的单元测试类 |
| @@ -37,10 +47,35 @@ public class SysSmsTemplateServiceTest extends BaseDbUnitTest { | @@ -37,10 +47,35 @@ public class SysSmsTemplateServiceTest extends BaseDbUnitTest { | ||
| 37 | @Resource | 47 | @Resource |
| 38 | private SysSmsTemplateMapper smsTemplateMapper; | 48 | private SysSmsTemplateMapper smsTemplateMapper; |
| 39 | 49 | ||
| 50 | + @MockBean | ||
| 51 | + private SysSmsChannelService smsChannelService; | ||
| 52 | + | ||
| 53 | + @Test | ||
| 54 | + public void testParseTemplateContentParams() { | ||
| 55 | + // 准备参数 | ||
| 56 | + String content = "正在进行登录操作{operation},您的验证码是{code}"; | ||
| 57 | + // mock 方法 | ||
| 58 | + | ||
| 59 | + // 调用 | ||
| 60 | + List<String> params = smsTemplateService.parseTemplateContentParams(content); | ||
| 61 | + // 断言 | ||
| 62 | + assertEquals(Lists.newArrayList("operation", "code"), params); | ||
| 63 | + } | ||
| 64 | + | ||
| 40 | @Test | 65 | @Test |
| 41 | public void testCreateSmsTemplate_success() { | 66 | public void testCreateSmsTemplate_success() { |
| 42 | // 准备参数 | 67 | // 准备参数 |
| 43 | - SysSmsTemplateCreateReqVO reqVO = randomPojo(SysSmsTemplateCreateReqVO.class); | 68 | + SysSmsTemplateCreateReqVO reqVO = randomPojo(SysSmsTemplateCreateReqVO.class, o -> { |
| 69 | + o.setContent("正在进行登录操作{operation},您的验证码是{code}"); | ||
| 70 | + o.setStatus(randomEle(CommonStatusEnum.values()).getStatus()); // 保证 status 的范围 | ||
| 71 | + o.setType(randomEle(SysSmsTemplateTypeEnum.values()).getType()); // 保证 type 的泛微 | ||
| 72 | + }); | ||
| 73 | + // mock 方法 | ||
| 74 | + SysSmsChannelDO channelDO = randomPojo(SysSmsChannelDO.class, o -> { | ||
| 75 | + o.setId(reqVO.getChannelId()); | ||
| 76 | + o.setStatus(CommonStatusEnum.ENABLE.getStatus()); // 保证 status 开启,创建必须处于这个状态 | ||
| 77 | + }); | ||
| 78 | + when(smsChannelService.getSmsChannel(eq(channelDO.getId()))).thenReturn(channelDO); | ||
| 44 | 79 | ||
| 45 | // 调用 | 80 | // 调用 |
| 46 | Long smsTemplateId = smsTemplateService.createSmsTemplate(reqVO); | 81 | Long smsTemplateId = smsTemplateService.createSmsTemplate(reqVO); |
| @@ -49,6 +84,8 @@ public class SysSmsTemplateServiceTest extends BaseDbUnitTest { | @@ -49,6 +84,8 @@ public class SysSmsTemplateServiceTest extends BaseDbUnitTest { | ||
| 49 | // 校验记录的属性是否正确 | 84 | // 校验记录的属性是否正确 |
| 50 | SysSmsTemplateDO smsTemplate = smsTemplateMapper.selectById(smsTemplateId); | 85 | SysSmsTemplateDO smsTemplate = smsTemplateMapper.selectById(smsTemplateId); |
| 51 | assertPojoEquals(reqVO, smsTemplate); | 86 | assertPojoEquals(reqVO, smsTemplate); |
| 87 | + assertEquals(Lists.newArrayList("operation", "code"), smsTemplate.getParams()); | ||
| 88 | + assertEquals(channelDO.getCode(), smsTemplate.getChannelCode()); | ||
| 52 | } | 89 | } |
| 53 | 90 | ||
| 54 | @Test | 91 | @Test |
| @@ -80,7 +117,7 @@ public class SysSmsTemplateServiceTest extends BaseDbUnitTest { | @@ -80,7 +117,7 @@ public class SysSmsTemplateServiceTest extends BaseDbUnitTest { | ||
| 80 | @Test | 117 | @Test |
| 81 | public void testDeleteSmsTemplate_success() { | 118 | public void testDeleteSmsTemplate_success() { |
| 82 | // mock 数据 | 119 | // mock 数据 |
| 83 | - SysSmsTemplateDO dbSmsTemplate = randomPojo(SysSmsTemplateDO.class); | 120 | + SysSmsTemplateDO dbSmsTemplate = randomSmsTemplateDO(); |
| 84 | smsTemplateMapper.insert(dbSmsTemplate);// @Sql: 先插入出一条存在的数据 | 121 | smsTemplateMapper.insert(dbSmsTemplate);// @Sql: 先插入出一条存在的数据 |
| 85 | // 准备参数 | 122 | // 准备参数 |
| 86 | Long id = dbSmsTemplate.getId(); | 123 | Long id = dbSmsTemplate.getId(); |
| @@ -191,4 +228,13 @@ public class SysSmsTemplateServiceTest extends BaseDbUnitTest { | @@ -191,4 +228,13 @@ public class SysSmsTemplateServiceTest extends BaseDbUnitTest { | ||
| 191 | assertPojoEquals(dbSmsTemplate, list.get(0)); | 228 | assertPojoEquals(dbSmsTemplate, list.get(0)); |
| 192 | } | 229 | } |
| 193 | 230 | ||
| 231 | + @SafeVarargs | ||
| 232 | + private static SysSmsTemplateDO randomSmsTemplateDO(Consumer<SysSmsTemplateDO>... consumers) { | ||
| 233 | + Consumer<SysSmsTemplateDO> consumer = (o) -> { | ||
| 234 | + o.setStatus(randomEle(CommonStatusEnum.values()).getStatus()); // 保证 status 的范围 | ||
| 235 | + o.setType(randomEle(SysSmsTemplateTypeEnum.values()).getType()); // 保证 type 的泛微 | ||
| 236 | + }; | ||
| 237 | + return randomPojo(SysSmsTemplateDO.class, ArrayUtils.append(consumer, consumers)); | ||
| 238 | + } | ||
| 239 | + | ||
| 194 | } | 240 | } |
src/test/resources/sql/create_tables.sql
| @@ -358,3 +358,23 @@ CREATE TABLE IF NOT EXISTS "sys_sms_channel" ( | @@ -358,3 +358,23 @@ CREATE TABLE IF NOT EXISTS "sys_sms_channel" ( | ||
| 358 | "deleted" bit NOT NULL DEFAULT FALSE, | 358 | "deleted" bit NOT NULL DEFAULT FALSE, |
| 359 | PRIMARY KEY ("id") | 359 | PRIMARY KEY ("id") |
| 360 | ) COMMENT '短信渠道'; | 360 | ) COMMENT '短信渠道'; |
| 361 | + | ||
| 362 | +CREATE TABLE "sys_sms_template" ( | ||
| 363 | + "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, | ||
| 364 | + "type" tinyint NOT NULL, | ||
| 365 | + "status" tinyint NOT NULL, | ||
| 366 | + "code" varchar(63) NOT NULL, | ||
| 367 | + "name" varchar(63) NOT NULL, | ||
| 368 | + "content" varchar(255) NOT NULL, | ||
| 369 | + "params" varchar(255) NOT NULL, | ||
| 370 | + "remark" varchar(255) DEFAULT NULL, | ||
| 371 | + "api_template_id" varchar(63) NOT NULL, | ||
| 372 | + "channel_id" bigint NOT NULL, | ||
| 373 | + "channel_code" varchar(63) NOT NULL, | ||
| 374 | + "creator" varchar(64) DEFAULT '', | ||
| 375 | + "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, | ||
| 376 | + "updater" varchar(64) DEFAULT '', | ||
| 377 | + "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, | ||
| 378 | + "deleted" bit NOT NULL DEFAULT FALSE, | ||
| 379 | + PRIMARY KEY ("id") | ||
| 380 | +) COMMENT '短信模板'; |