diff --git a/README.md b/README.md
index f920f6cdac96cc63f0a1c86b69d5d2bdbb04fb68..deb66b1631dcc23929589dd7ef7d4a42110aaaf2 100644
--- a/README.md
+++ b/README.md
@@ -5,7 +5,7 @@
 <p align="center">
  <img src="https://img.shields.io/github/stars/dromara/dax-pay?style=flat&label=Github">
  <img src='https://gitee.com/bootx/dax-pay/badge/star.svg?theme=dark' alt='star'/>
- <img src="https://img.shields.io/badge/Dax%20Pay-2.0.7-success.svg" alt="Build Status"/>
+ <img src="https://img.shields.io/badge/Dax%20Pay-2.0.8-success.svg" alt="Build Status"/>
  <img src="https://img.shields.io/badge/Author-Daxpay-orange.svg" alt="Build Status"/>
  <img src="https://img.shields.io/badge/Spring%20Boot-2.7.18-blue.svg" alt="Downloads"/>
  <img src="https://img.shields.io/badge/license-Apache%20License%202.0-green.svg"/>
@@ -166,10 +166,6 @@ public class PayOrderTest {
 
 扫码加入QQ交流群
 
-交流一群
-<p>
-<img src="https://jsd.cdn.zzko.cn/gh/xxm1995/picx-images-hosting@master/connect/微信图片_20240412132238.3rb0hgrf2z.webp" width = "330" height = "500"/>
-</p>
 交流二群
 <p>
 <img src="https://jsd.cdn.zzko.cn/gh/xxm1995/picx-images-hosting@master/connect/微信图片_20240513180310.2yy68aykip.webp" width = "330" height = "500"/>
diff --git a/_config/mysql/2.0.5/2.0.5.dax-pay.backup.sql b/_config/mysql/2.0.5/2.0.5.dax-pay.backup.sql
deleted file mode 100644
index de463c6172df622e1bfbae2f50741b49314dab9f..0000000000000000000000000000000000000000
--- a/_config/mysql/2.0.5/2.0.5.dax-pay.backup.sql
+++ /dev/null
@@ -1,4202 +0,0 @@
-/*
- Navicat Premium Data Transfer
-
- Source Server Type    : MySQL
- Source Server Version : 50743
-
- Target Server Type    : MySQL
- Target Server Version : 50743
- File Encoding         : 65001
-
- Date: 18/04/2024 11:05:44
-*/
-
-SET NAMES utf8mb4;
-SET FOREIGN_KEY_CHECKS = 0;
-
--- ----------------------------
--- Table structure for base_area
--- ----------------------------
-DROP TABLE IF EXISTS `base_area`;
-CREATE TABLE `base_area`  (
-  `code` char(6) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
-  `name` varchar(60) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '区域名称',
-  `city_code` char(4) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '0' COMMENT '城市编码',
-  PRIMARY KEY (`code`) USING BTREE,
-  INDEX `inx_city_code`(`city_code`) USING BTREE COMMENT '城市'
-) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '县区表' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of base_area
--- ----------------------------
-
--- ----------------------------
--- Table structure for base_china_word
--- ----------------------------
-DROP TABLE IF EXISTS `base_china_word`;
-CREATE TABLE `base_china_word`  (
-  `id` bigint(20) NOT NULL COMMENT '主键',
-  `word` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '敏感词',
-  `type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '分类',
-  `description` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '描述',
-  `enable` bit(1) NULL DEFAULT NULL COMMENT '是否启用',
-  `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
-  `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修者ID',
-  `last_modified_time` datetime(0) NULL DEFAULT NULL COMMENT '最后修改时间',
-  `version` int(11) NOT NULL COMMENT '乐观锁',
-  `white` bit(1) NULL DEFAULT NULL,
-  PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '敏感词' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of base_china_word
--- ----------------------------
-
--- ----------------------------
--- Table structure for base_city
--- ----------------------------
-DROP TABLE IF EXISTS `base_city`;
-CREATE TABLE `base_city`  (
-  `code` char(4) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '城市编码',
-  `name` varchar(60) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '城市名称',
-  `province_code` char(2) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '0' COMMENT '省份编码',
-  PRIMARY KEY (`code`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '城市表' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of base_city
--- ----------------------------
-
--- ----------------------------
--- Table structure for base_data_result_sql
--- ----------------------------
-DROP TABLE IF EXISTS `base_data_result_sql`;
-CREATE TABLE `base_data_result_sql`  (
-  `id` bigint(20) NOT NULL COMMENT '主键',
-  `database_id` bigint(20) NULL DEFAULT NULL,
-  `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL,
-  `is_list` bit(1) NULL DEFAULT NULL,
-  `sql` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL,
-  `params` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL,
-  `fields` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL,
-  `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
-  `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修者ID',
-  `last_modified_time` datetime(0) NULL DEFAULT NULL COMMENT '最后修改时间',
-  `version` int(11) NOT NULL COMMENT '乐观锁',
-  `deleted` bit(1) NOT NULL COMMENT '删除标志',
-  PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '数据集SQL语句' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of base_data_result_sql
--- ----------------------------
-
--- ----------------------------
--- Table structure for base_dict
--- ----------------------------
-DROP TABLE IF EXISTS `base_dict`;
-CREATE TABLE `base_dict`  (
-  `id` bigint(20) NOT NULL,
-  `code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '编码',
-  `name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '名称',
-  `enable` bit(1) NOT NULL DEFAULT b'1' COMMENT '启用状态',
-  `group_tag` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '分类标签',
-  `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '备注',
-  `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建人',
-  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
-  `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '更新人',
-  `last_modified_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间',
-  `deleted` tinyint(1) NULL DEFAULT 0 COMMENT '0:未删除。1:已删除',
-  `version` int(8) NULL DEFAULT NULL COMMENT '版本',
-  PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '字典' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of base_dict
--- ----------------------------
-INSERT INTO `base_dict` VALUES (1422929378374828033, 'Sex', '性别', b'1', '基础属性', '性别', 0, '2021-08-04 22:36:15', 1399985191002447872, '2022-05-11 19:48:40', 0, 6);
-INSERT INTO `base_dict` VALUES (1425744045414772737, 'MenuType', '菜单类型', b'1', '系统属性', '菜单类型', 0, '2021-08-12 17:00:44', 1399985191002447872, '2022-05-11 19:48:44', 0, 4);
-INSERT INTO `base_dict` VALUES (1430063572491411456, 'loginType', '字典类型', b'1', '基础属性', '字典类型', 1399985191002447872, '2021-08-24 15:05:00', 1399985191002447872, '2021-08-24 15:05:00', 1, 2);
-INSERT INTO `base_dict` VALUES (1435829999592759296, 'UserStatusCode', '用户状态码', b'1', '系统属性', '用户状态码', 1399985191002447872, '2021-09-09 12:58:43', 1399985191002447872, '2022-05-11 19:48:56', 0, 2);
-INSERT INTO `base_dict` VALUES (1435838066191458304, 'LogBusinessType', '业务操作类型', b'1', '系统属性', '操作日志记录的业务操作类型', 1399985191002447872, '2021-09-09 13:30:46', 1399985191002447872, '2022-05-11 19:49:00', 0, 2);
-INSERT INTO `base_dict` VALUES (1438078864509317120, 'MailSecurityCode', '邮箱安全方式编码', b'1', '消息服务', '邮箱安全方式编码', 1399985191002447872, '2021-09-15 17:54:54', 1399985191002447872, '2022-05-11 19:49:06', 0, 2);
-INSERT INTO `base_dict` VALUES (1439961232651034624, 'MessageTemplateCode', '消息模板类型', b'1', '消息服务', '消息模板类型', 1399985191002447872, '2021-09-20 22:34:46', 1399985191002447872, '2022-05-11 19:48:34', 0, 1);
-INSERT INTO `base_dict` VALUES (1452836604783845376, 'SocialType', '三方系统类型', b'1', '系统属性', '三方系统类型', 1399985191002447872, '2021-10-26 11:16:54', 1399985191002447872, '2022-05-11 19:48:28', 0, 3);
-INSERT INTO `base_dict` VALUES (1452843488735621120, 'ParamType', '参数类型', b'1', '系统属性', '参数类型', 1399985191002447872, '2021-10-26 11:44:15', 1399985191002447872, '2022-05-11 19:48:21', 0, 2);
-INSERT INTO `base_dict` VALUES (1496024933900169216, 'Political', '政治面貌', b'1', '基础数据', '政治面貌', 1399985191002447872, '2022-02-22 15:31:54', 1399985191002447872, '2022-05-11 19:48:04', 0, 1);
-INSERT INTO `base_dict` VALUES (1556996322223968256, 'WeChatMediaType', '微信媒体类型', b'1', '微信', '微信媒体类型', 1399985191002447872, '2022-08-09 21:30:25', 1399985191002447872, '2022-08-09 21:30:26', 0, 0);
-INSERT INTO `base_dict` VALUES (1561003021674987520, 'SiteMessageReceive', '消息接收类型', b'1', '站内信', '站内信接收类型', 1399985191002447872, '2022-08-20 22:51:37', 1399985191002447872, '2022-08-20 22:51:37', 0, 0);
-INSERT INTO `base_dict` VALUES (1561003189111603200, 'SiteMessageState', '消息发布状态', b'1', '站内信', '站内信消息发布状态', 1399985191002447872, '2022-08-20 22:52:17', 1399985191002447872, '2022-08-20 22:52:17', 0, 0);
-INSERT INTO `base_dict` VALUES (1589527951317389312, 'DataScopePerm', '数据权限类型', b'1', '系统属性', '数据权限类型', 1414143554414059520, '2022-11-07 15:59:30', 1399985191002447872, '2023-11-28 23:14:24', 0, 4);
-INSERT INTO `base_dict` VALUES (1633393287952257024, 'DatabaseType', '数据库类型', b'1', '开发', '数据库类型', 1414143554414059520, '2023-03-08 17:04:41', 1414143554414059520, '2023-03-08 17:04:41', 0, 0);
-INSERT INTO `base_dict` VALUES (1688742690398617600, 'SmsChannel', '短信渠道商', b'1', '消息服务', '短信渠道商', 1414143554414059520, '2023-08-08 10:43:27', 1414143554414059520, '2023-08-12 20:24:03', 0, 1);
-INSERT INTO `base_dict` VALUES (1690338321769918464, 'GeneralTemplateUseType', '通用模板类型', b'1', '系统属性', '通用模板类型', 1414143554414059520, '2023-08-12 20:23:56', 1414143554414059520, '2023-08-12 20:24:22', 0, 1);
-INSERT INTO `base_dict` VALUES (1690338545284378624, 'GeneralTemplateState', '通用模板状态', b'1', '系统属性', '通用模板状态', 1414143554414059520, '2023-08-12 20:24:49', 1414143554414059520, '2023-08-12 20:24:49', 0, 0);
-INSERT INTO `base_dict` VALUES (1744996611615039488, 'AsyncPayChannel', '异步支付通道', b'1', '支付', '', 1399985191002447872, '2024-01-10 16:16:27', 1399985191002447872, '2024-01-10 16:16:27', 0, 0);
-INSERT INTO `base_dict` VALUES (1744996845355212800, 'PayChannel', '支付通道', b'1', '支付', '', 1399985191002447872, '2024-01-10 16:17:23', 1399985191002447872, '2024-01-10 16:17:23', 0, 0);
-INSERT INTO `base_dict` VALUES (1744996913667842048, 'PayStatus', '支付状态', b'1', '支付', '', 1399985191002447872, '2024-01-10 16:17:39', 1399985191002447872, '2024-01-10 16:17:39', 0, 0);
-INSERT INTO `base_dict` VALUES (1745086859116224512, 'PayWay', '支付方式', b'1', '支付', '', 1399985191002447872, '2024-01-10 22:15:04', 1399985191002447872, '2024-01-10 22:15:04', 0, 0);
-INSERT INTO `base_dict` VALUES (1745109350333173760, 'PayCallbackStatus', '支付回调处理状态', b'1', '支付', '', 1399985191002447872, '2024-01-10 23:44:26', 1399985191002447872, '2024-01-10 23:44:26', 0, 0);
-INSERT INTO `base_dict` VALUES (1745128986382667776, 'PayRepairSource', '支付修复来源', b'1', '支付', '', 1399985191002447872, '2024-01-11 01:02:28', 1399985191002447872, '2024-01-11 01:02:28', 0, 0);
-INSERT INTO `base_dict` VALUES (1745134438772346880, 'PayRepairWay', '支付修复方式', b'1', '支付', '', 1399985191002447872, '2024-01-11 01:24:08', 1399985191002447872, '2024-01-11 01:24:08', 0, 0);
-INSERT INTO `base_dict` VALUES (1745748188122554368, 'RefundStatus', '退款状态', b'1', '支付', '', 1399985191002447872, '2024-01-12 18:02:57', 1399985191002447872, '2024-02-09 21:22:52', 0, 1);
-INSERT INTO `base_dict` VALUES (1746208645341917184, 'PaySyncStatus', '支付同步结果', b'1', '支付', '', 1399985191002447872, '2024-01-14 00:32:39', 1399985191002447872, '2024-01-14 00:32:39', 0, 0);
-INSERT INTO `base_dict` VALUES (1749612665392541696, 'ReconcileTrade', '支付对账交易类型', b'1', '支付', '', 1399985191002447872, '2024-01-23 09:59:00', 1399985191002447872, '2024-03-01 23:31:32', 0, 1);
-INSERT INTO `base_dict` VALUES (1751603996496453632, 'PaymentType', '支付系统行为类型', b'1', '支付', '支付系统中常见的操作类型, 如支付/退款/转账等', 1399985191002447872, '2024-01-28 21:51:51', 1399985191002447872, '2024-01-28 21:51:51', 0, 0);
-INSERT INTO `base_dict` VALUES (1751613032260370432, 'PayCallbackType', '回调类型', b'1', '支付', '', 1399985191002447872, '2024-01-28 22:27:45', 1399985191002447872, '2024-01-28 22:27:45', 0, 0);
-INSERT INTO `base_dict` VALUES (1752560153120428032, 'RefundSyncStatus', '退款同步状态', b'1', '支付', '', 1399985191002447872, '2024-01-31 13:11:16', 1399985191002447872, '2024-01-31 13:11:16', 0, 0);
-INSERT INTO `base_dict` VALUES (1753047382185091072, 'RefundRepairWay', '退款修复方式', b'1', '支付', '', 1399985191002447872, '2024-02-01 21:27:21', 1399985191002447872, '2024-02-01 21:27:21', 0, 0);
-INSERT INTO `base_dict` VALUES (1758881354618220544, 'WalletStatus', '钱包状态', b'1', '支付', '', 1399985191002447872, '2024-02-17 23:49:28', 1399985191002447872, '2024-02-17 23:49:28', 0, 0);
-INSERT INTO `base_dict` VALUES (1759189874194481152, 'VoucherStatus', '储值卡状态', b'1', '支付', '', 1399985191002447872, '2024-02-18 20:15:25', 1399985191002447872, '2024-02-18 20:15:25', 0, 0);
-INSERT INTO `base_dict` VALUES (1759190066511708160, 'WalletRecordType', '钱包记录类型', b'1', '支付', '', 1399985191002447872, '2024-02-18 20:16:11', 1399985191002447872, '2024-02-18 20:16:11', 0, 0);
-INSERT INTO `base_dict` VALUES (1759190427897135104, 'VoucherRecordType', '储值卡记录类型', b'1', '支付', '', 1399985191002447872, '2024-02-18 20:17:37', 1399985191002447872, '2024-02-18 20:17:37', 0, 0);
-INSERT INTO `base_dict` VALUES (1759190780252225536, 'CashRecordType', '现金记录类型', b'1', '支付', '', 1399985191002447872, '2024-02-18 20:19:01', 1399985191002447872, '2024-02-19 22:07:09', 0, 1);
-INSERT INTO `base_dict` VALUES (1761434095349624832, 'ClientNoticeType', '客户消息通知类型', b'1', '支付', '', 1399985191002447872, '2024-02-25 00:53:09', 1399985191002447872, '2024-02-25 00:53:09', 0, 0);
-INSERT INTO `base_dict` VALUES (1761434264858226688, 'ClientNoticeSendType', '客户消息通知发送类型', b'1', '支付', '', 1399985191002447872, '2024-02-25 00:53:49', 1399985191002447872, '2024-02-25 00:53:49', 0, 0);
-INSERT INTO `base_dict` VALUES (1761581634023583744, 'AlipayRecordType', '支付宝流水记录类型', b'1', '支付', '', 1399985191002447872, '2024-02-25 10:39:25', 1399985191002447872, '2024-02-25 10:39:25', 0, 0);
-INSERT INTO `base_dict` VALUES (1761588314480300032, 'WechatPayRecordType', '微信支付流水记录类型', b'1', '支付', '', 1399985191002447872, '2024-02-25 11:05:58', 1399985191002447872, '2024-02-25 11:05:58', 0, 0);
-INSERT INTO `base_dict` VALUES (1763588034467713024, 'ReconcileDiffType', '对账差异类型', b'1', '支付', '', 1399985191002447872, '2024-03-01 23:32:08', 1399985191002447872, '2024-03-01 23:32:08', 0, 0);
-INSERT INTO `base_dict` VALUES (1766713545981153280, 'UnionPaySignType', '云闪付签名类型', b'1', '支付', '', 1399985191002447872, '2024-03-10 14:31:48', 1399985191002447872, '2024-03-10 14:31:48', 0, 0);
-INSERT INTO `base_dict` VALUES (1768206399071809536, 'UnionPayRecordType', '云闪付流水类型', b'1', '支付', '', 1399985191002447872, '2024-03-14 17:23:52', 1399985191002447872, '2024-03-14 17:23:52', 0, 0);
-INSERT INTO `base_dict` VALUES (1775112798259302400, 'AllocationReceiverType', '分账接收方类型', b'1', '支付', '', 1399985191002447872, '2024-04-02 18:47:26', 1399985191002447872, '2024-04-02 18:47:26', 0, 0);
-INSERT INTO `base_dict` VALUES (1775122632706805760, 'AllocationRelationType', '分账关系类型', b'1', '支付', '', 1399985191002447872, '2024-04-02 19:26:30', 1399985191002447872, '2024-04-02 19:26:30', 0, 0);
-INSERT INTO `base_dict` VALUES (1777697358802530304, 'AllocationOrderStatus', '分账状态', b'1', '支付', '', 1399985191002447872, '2024-04-09 21:57:33', 1399985191002447872, '2024-04-16 19:09:18', 0, 1);
-INSERT INTO `base_dict` VALUES (1780163691808391168, 'AllocationDetailResult', '支付分账明细处理结果', b'1', '支付', '', 1399985191002447872, '2024-04-16 17:17:53', 1399985191002447872, '2024-04-16 17:23:37', 0, 2);
-INSERT INTO `base_dict` VALUES (1780165499633106944, 'AllocationOrderResult', '支付分账订单处理结果', b'1', '支付', '', 1399985191002447872, '2024-04-16 17:25:04', 1399985191002447872, '2024-04-16 17:25:04', 0, 0);
-INSERT INTO `base_dict` VALUES (1780165929528295424, 'PayOrderAllocationStatus', '支付订单分账状态', b'1', '支付', '', 1399985191002447872, '2024-04-16 17:26:46', 1399985191002447872, '2024-04-16 17:26:46', 0, 0);
-
--- ----------------------------
--- Table structure for base_dict_item
--- ----------------------------
-DROP TABLE IF EXISTS `base_dict_item`;
-CREATE TABLE `base_dict_item`  (
-  `id` bigint(20) NOT NULL,
-  `dict_id` bigint(20) NOT NULL COMMENT '字典id',
-  `dict_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '字典code',
-  `code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '字典项code',
-  `name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '字典项名称',
-  `enable` bit(1) NOT NULL DEFAULT b'1' COMMENT '启用状态',
-  `sort_no` double(8, 2) NOT NULL COMMENT '排序',
-  `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '备注',
-  `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建人',
-  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
-  `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '更新人',
-  `last_modified_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间',
-  `deleted` tinyint(1) NOT NULL DEFAULT 0 COMMENT '0:未删除。1:已删除',
-  `version` int(8) NOT NULL COMMENT '版本',
-  PRIMARY KEY (`id`) USING BTREE,
-  INDEX `idx_dictionary_id`(`dict_id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '字典项' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of base_dict_item
--- ----------------------------
-INSERT INTO `base_dict_item` VALUES (1422931375807242241, 1422929378374828033, 'Sex', '1', '男', b'1', 0.00, '男性', 0, '2021-08-04 22:44:11', 0, '2021-08-04 22:44:11', 0, 2);
-INSERT INTO `base_dict_item` VALUES (1425729455402401794, 1422929378374828033, 'Sex', '2', '女', b'1', 0.00, '女性', 0, '2021-08-12 16:02:46', 0, '2021-08-12 16:02:46', 0, 1);
-INSERT INTO `base_dict_item` VALUES (1425744258544136194, 1425744045414772737, 'MenuType', '0', '顶级菜单', b'1', 0.00, '顶级菜单', 0, '2021-08-12 17:01:35', 0, '2021-08-12 17:01:35', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1425744436592340993, 1425744045414772737, 'MenuType', '1', '子菜单', b'1', 0.00, '子菜单', 0, '2021-08-12 17:02:17', 0, '2021-08-12 17:02:17', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1425744470582980610, 1425744045414772737, 'MenuType', '2', '按钮权限', b'1', 0.00, '按钮权限', 0, '2021-08-12 17:02:26', 0, '2021-08-12 17:02:26', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1430094707250413568, 1422929378374828033, 'Sex', '0', '未知', b'1', 0.00, '不确定性别', 1399985191002447872, '2021-08-24 17:08:43', 1399985191002447872, '2021-08-24 17:08:43', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1435830086406463488, 1435829999592759296, 'UserStatusCode', 'normal', '正常', b'1', 0.00, 'NORMAL', 1399985191002447872, '2021-09-09 12:59:04', 1399985191002447872, '2023-11-25 15:32:04', 0, 1);
-INSERT INTO `base_dict_item` VALUES (1435830141855162368, 1435829999592759296, 'UserStatusCode', 'lock', '锁定', b'1', 0.00, 'LOCK, 多次登录失败被锁定', 1399985191002447872, '2021-09-09 12:59:17', 1399985191002447872, '2023-11-25 15:32:14', 0, 2);
-INSERT INTO `base_dict_item` VALUES (1435830260503633920, 1435829999592759296, 'UserStatusCode', 'ban', '封禁', b'1', 0.00, 'BAN', 1399985191002447872, '2021-09-09 12:59:45', 1399985191002447872, '2023-11-25 15:32:20', 0, 1);
-INSERT INTO `base_dict_item` VALUES (1435838374749626368, 1435838066191458304, 'LogBusinessType', 'other', '其它', b'1', 0.00, '', 1399985191002447872, '2021-09-09 13:32:00', 1399985191002447872, '2021-09-09 13:32:00', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1435838414436130816, 1435838066191458304, 'LogBusinessType', 'insert', '新增', b'1', 0.00, '', 1399985191002447872, '2021-09-09 13:32:09', 1399985191002447872, '2021-09-09 13:32:09', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1435838467624099840, 1435838066191458304, 'LogBusinessType', 'update', '修改', b'1', 0.00, '', 1399985191002447872, '2021-09-09 13:32:22', 1399985191002447872, '2021-09-09 13:32:22', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1435838502755590144, 1435838066191458304, 'LogBusinessType', 'delete', '删除', b'1', 0.00, '', 1399985191002447872, '2021-09-09 13:32:30', 1399985191002447872, '2021-09-09 13:32:30', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1435838546934194176, 1435838066191458304, 'LogBusinessType', 'grant', '授权', b'1', 0.00, '', 1399985191002447872, '2021-09-09 13:32:41', 1399985191002447872, '2021-09-09 13:32:41', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1435838605537009664, 1435838066191458304, 'LogBusinessType', 'export', '导出', b'1', 0.00, '', 1399985191002447872, '2021-09-09 13:32:55', 1399985191002447872, '2021-09-09 13:32:55', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1435838705457913856, 1435838066191458304, 'LogBusinessType', 'import', '导入', b'1', 0.00, '', 1399985191002447872, '2021-09-09 13:33:19', 1399985191002447872, '2021-09-09 13:33:19', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1435838745861644288, 1435838066191458304, 'LogBusinessType', 'force', '强退', b'1', 0.00, '', 1399985191002447872, '2021-09-09 13:33:28', 1399985191002447872, '2021-09-09 13:33:28', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1435838786273763328, 1435838066191458304, 'LogBusinessType', 'clean', '清空数据', b'1', 0.00, '', 1399985191002447872, '2021-09-09 13:33:38', 1399985191002447872, '2021-09-09 13:33:38', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1438079113630003200, 1438078864509317120, 'MailSecurityCode', '1', '普通方式', b'1', 0.00, 'SECURITY_TYPE_PLAIN', 1399985191002447872, '2021-09-15 17:55:54', 1399985191002447872, '2021-09-15 17:55:54', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1438080323061755904, 1438078864509317120, 'MailSecurityCode', '2', 'TLS方式', b'1', 0.00, 'SECURITY_TYPE_TLS', 1399985191002447872, '2021-09-15 18:00:42', 1399985191002447872, '2021-09-15 18:00:42', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1438080372231581696, 1438078864509317120, 'MailSecurityCode', '3', 'SSL方式', b'1', 0.00, 'SECURITY_TYPE_SSL', 1399985191002447872, '2021-09-15 18:00:54', 1399985191002447872, '2021-09-15 18:00:54', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1439961603914047488, 1439961232651034624, 'MessageTemplateCode', '5', '微信', b'1', -10.00, 'WECHAT', 1399985191002447872, '2021-09-20 22:36:14', 1399985191002447872, '2021-09-20 22:36:14', 0, 1);
-INSERT INTO `base_dict_item` VALUES (1439961704321490944, 1439961232651034624, 'MessageTemplateCode', '4', 'Email', b'1', 0.00, 'EMAIL', 1399985191002447872, '2021-09-20 22:36:38', 1399985191002447872, '2021-09-20 22:36:38', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1439962132744478720, 1439961232651034624, 'MessageTemplateCode', '3', '短信', b'1', 0.00, 'SMS', 1399985191002447872, '2021-09-20 22:38:20', 1399985191002447872, '2021-09-20 22:38:20', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1439962205578567680, 1439961232651034624, 'MessageTemplateCode', '2', '钉钉机器人', b'1', 0.00, 'DING_TALK_ROBOT', 1399985191002447872, '2021-09-20 22:38:38', 1399985191002447872, '2021-09-20 22:38:38', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1439962267511660544, 1439961232651034624, 'MessageTemplateCode', '1', '钉钉', b'1', 0.00, 'DING_TALK', 1399985191002447872, '2021-09-20 22:38:52', 1399985191002447872, '2021-09-20 22:38:52', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1452836696873984000, 1452836604783845376, 'SocialType', 'WeChat', '微信', b'1', 0.00, '', 1399985191002447872, '2021-10-26 11:17:16', 1399985191002447872, '2021-10-26 11:17:16', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1452837435482529792, 1452836604783845376, 'SocialType', 'QQ', 'QQ', b'1', 0.00, '', 1399985191002447872, '2021-10-26 11:20:12', 1399985191002447872, '2021-10-26 11:20:12', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1452837523030237184, 1452836604783845376, 'SocialType', 'DingTalk', '钉钉', b'1', 0.00, '', 1399985191002447872, '2021-10-26 11:20:33', 1399985191002447872, '2021-10-26 11:20:33', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1452844537911406592, 1452843488735621120, 'ParamType', '1', '系统参数', b'1', 0.00, '', 1399985191002447872, '2021-10-26 11:48:25', 1399985191002447872, '2021-10-26 11:48:25', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1452844565031776256, 1452843488735621120, 'ParamType', '2', '用户参数', b'1', 0.00, '', 1399985191002447872, '2021-10-26 11:48:32', 1399985191002447872, '2021-10-26 11:48:32', 0, 2);
-INSERT INTO `base_dict_item` VALUES (1496026946344005632, 1496024933900169216, 'Political', '1', '中共党员', b'1', 1.00, '', 1399985191002447872, '2022-02-22 15:39:54', 1399985191002447872, '2022-02-22 15:39:54', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1496027004560945152, 1496024933900169216, 'Political', '2', '中共预备党员', b'1', 2.00, '', 1399985191002447872, '2022-02-22 15:40:07', 1399985191002447872, '2022-02-22 15:40:07', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1496027039264616448, 1496024933900169216, 'Political', '3', '共青团员', b'1', 3.00, '', 1399985191002447872, '2022-02-22 15:40:16', 1399985191002447872, '2022-02-22 15:40:16', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1496027077550223360, 1496024933900169216, 'Political', '4', '民革党员', b'1', 4.00, '', 1399985191002447872, '2022-02-22 15:40:25', 1399985191002447872, '2022-02-22 15:40:25', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1496027123461074944, 1496024933900169216, 'Political', '5', '民盟盟员', b'1', 5.00, '', 1399985191002447872, '2022-02-22 15:40:36', 1399985191002447872, '2022-02-22 15:40:36', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1496027197566038016, 1496024933900169216, 'Political', '6', '民建会员', b'1', 6.00, '', 1399985191002447872, '2022-02-22 15:40:53', 1399985191002447872, '2022-02-22 15:40:53', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1496027234803068928, 1496024933900169216, 'Political', '7', '民进会员', b'1', 7.00, '', 1399985191002447872, '2022-02-22 15:41:02', 1399985191002447872, '2022-02-22 15:41:02', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1496027272941875200, 1496024933900169216, 'Political', '8', '农工党党员', b'1', 8.00, '', 1399985191002447872, '2022-02-22 15:41:11', 1399985191002447872, '2022-02-22 15:41:11', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1496027306634719232, 1496024933900169216, 'Political', '9', '致公党党员', b'1', 9.00, '', 1399985191002447872, '2022-02-22 15:41:19', 1399985191002447872, '2022-02-22 15:41:19', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1496027369796743168, 1496024933900169216, 'Political', '10', '九三学社社员', b'1', 10.00, '', 1399985191002447872, '2022-02-22 15:41:34', 1399985191002447872, '2022-02-22 15:41:35', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1496027408141070336, 1496024933900169216, 'Political', '11', '台盟盟员', b'1', 11.00, '', 1399985191002447872, '2022-02-22 15:41:44', 1399985191002447872, '2022-02-22 15:41:44', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1496027456849522688, 1496024933900169216, 'Political', '12', '无党派人士', b'1', 12.00, '', 1399985191002447872, '2022-02-22 15:41:55', 1399985191002447872, '2022-02-22 15:41:55', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1496027516639326208, 1496024933900169216, 'Political', '13', '群众', b'1', 13.00, '', 1399985191002447872, '2022-02-22 15:42:09', 1399985191002447872, '2022-02-22 15:42:10', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1561003368762032128, 1561003021674987520, 'SiteMessageReceive', 'user', '指定用户', b'1', 0.00, '', 1399985191002447872, '2022-08-20 22:53:00', 1399985191002447872, '2022-08-20 22:53:00', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1561003399778910208, 1561003021674987520, 'SiteMessageReceive', 'all', '全部用户', b'1', 0.00, '', 1399985191002447872, '2022-08-20 22:53:07', 1399985191002447872, '2022-08-20 22:53:24', 0, 1);
-INSERT INTO `base_dict_item` VALUES (1561003539772194816, 1561003189111603200, 'SiteMessageState', 'sent', '已发送', b'1', 0.00, '', 1399985191002447872, '2022-08-20 22:53:41', 1399985191002447872, '2022-08-20 22:53:41', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1561003575608328192, 1561003189111603200, 'SiteMessageState', 'cancel', '撤销', b'1', 0.00, '', 1399985191002447872, '2022-08-20 22:53:49', 1399985191002447872, '2022-08-20 22:53:49', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1561245469535080448, 1561003189111603200, 'SiteMessageState', 'draft', '草稿', b'1', 0.00, '', 1399985191002447872, '2022-08-21 14:55:01', 1399985191002447872, '2022-08-21 14:55:01', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1573665422392098816, 1439961232651034624, 'MessageTemplateCode', '0', '站内信', b'1', -11.00, 'SITE', 1399985191002447872, '2022-09-24 21:27:29', 1399985191002447872, '2022-09-24 21:27:39', 0, 1);
-INSERT INTO `base_dict_item` VALUES (1589528254477488128, 1589527951317389312, 'DataScopePerm', 'self_dept_sub', '所在及下级部门', b'1', 0.00, '', 1414143554414059520, '2022-11-07 16:00:43', 1399985191002447872, '2023-11-28 23:16:02', 0, 2);
-INSERT INTO `base_dict_item` VALUES (1589528283539820544, 1589527951317389312, 'DataScopePerm', 'self_dept', '所在部门', b'1', 0.00, '', 1414143554414059520, '2022-11-07 16:00:49', 1399985191002447872, '2023-11-28 23:15:52', 0, 2);
-INSERT INTO `base_dict_item` VALUES (1589528315672383488, 1589527951317389312, 'DataScopePerm', 'all', '全部数据', b'1', 0.00, '', 1414143554414059520, '2022-11-07 16:00:57', 1399985191002447872, '2023-11-25 22:51:28', 0, 1);
-INSERT INTO `base_dict_item` VALUES (1589528340267782144, 1589527951317389312, 'DataScopePerm', 'dept_and_user', '自定义部门和用户', b'1', 0.00, '', 1414143554414059520, '2022-11-07 16:01:03', 1399985191002447872, '2023-11-29 15:25:01', 0, 3);
-INSERT INTO `base_dict_item` VALUES (1589528367228768256, 1589527951317389312, 'DataScopePerm', 'dept', '自定义部门', b'1', 0.00, '', 1414143554414059520, '2022-11-07 16:01:09', 1399985191002447872, '2023-11-29 15:24:47', 0, 2);
-INSERT INTO `base_dict_item` VALUES (1589528393292173312, 1589527951317389312, 'DataScopePerm', 'user', '指定用户', b'1', 0.00, '', 1414143554414059520, '2022-11-07 16:01:16', 1399985191002447872, '2023-11-29 15:25:16', 0, 2);
-INSERT INTO `base_dict_item` VALUES (1589528423956729856, 1589527951317389312, 'DataScopePerm', 'self', '自身数据', b'1', 0.00, '', 1414143554414059520, '2022-11-07 16:01:23', 1399985191002447872, '2023-11-25 22:50:41', 0, 1);
-INSERT INTO `base_dict_item` VALUES (1633403429028536320, 1633393287952257024, 'DatabaseType', 'mysql', 'MySQL', b'1', 1.00, '', 1414143554414059520, '2023-03-08 17:44:59', 1414143554414059520, '2023-03-08 17:44:59', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1633403459470794752, 1633393287952257024, 'DatabaseType', 'oracle', 'Oracle', b'1', 2.00, '', 1414143554414059520, '2023-03-08 17:45:07', 1414143554414059520, '2023-03-08 17:45:07', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1633403498695925760, 1633393287952257024, 'DatabaseType', 'mssql', 'SQLServer', b'1', 3.00, '', 1414143554414059520, '2023-03-08 17:45:16', 1414143554414059520, '2023-03-08 17:45:16', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1688742732891111424, 1688742690398617600, 'SmsChannel', 'alibaba', '阿里云', b'1', 0.00, '', 1414143554414059520, '2023-08-08 10:43:38', 1414143554414059520, '2023-08-08 10:43:38', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1688742768479780864, 1688742690398617600, 'SmsChannel', 'huawei', '华为云', b'1', 0.00, '', 1414143554414059520, '2023-08-08 10:43:46', 1414143554414059520, '2023-08-08 10:43:46', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1688742808027873280, 1688742690398617600, 'SmsChannel', 'yunpian', '云片', b'1', 0.00, '', 1414143554414059520, '2023-08-08 10:43:55', 1414143554414059520, '2023-08-08 10:43:56', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1688742840626003968, 1688742690398617600, 'SmsChannel', 'tencent', '腾讯云', b'1', 0.00, '', 1414143554414059520, '2023-08-08 10:44:03', 1414143554414059520, '2023-08-08 10:44:03', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1688742872506908672, 1688742690398617600, 'SmsChannel', 'uni_sms', '合一短信', b'1', 0.00, '', 1414143554414059520, '2023-08-08 10:44:11', 1414143554414059520, '2023-08-08 10:44:11', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1688742905553829888, 1688742690398617600, 'SmsChannel', 'jd_cloud', '京东云', b'1', 0.00, '', 1414143554414059520, '2023-08-08 10:44:19', 1414143554414059520, '2023-08-08 10:44:19', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1688742954715267072, 1688742690398617600, 'SmsChannel', 'cloopen', '容联云', b'1', 0.00, '', 1414143554414059520, '2023-08-08 10:44:30', 1414143554414059520, '2023-08-08 10:44:30', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1688742990446542848, 1688742690398617600, 'SmsChannel', 'emay', '亿美软通', b'1', 0.00, '', 1414143554414059520, '2023-08-08 10:44:39', 1414143554414059520, '2023-08-08 10:44:39', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1688743032297308160, 1688742690398617600, 'SmsChannel', 'ctyun', '天翼云', b'1', 0.00, '', 1414143554414059520, '2023-08-08 10:44:49', 1414143554414059520, '2023-08-08 10:44:49', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1688743065205817344, 1688742690398617600, 'SmsChannel', 'netease', '网易云信', b'1', 0.00, '', 1414143554414059520, '2023-08-08 10:44:57', 1414143554414059520, '2023-08-08 10:44:57', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1690338619024437248, 1690338321769918464, 'GeneralTemplateUseType', 'import', '导入', b'1', 0.00, '', 1414143554414059520, '2023-08-12 20:25:06', 1414143554414059520, '2023-08-12 20:25:06', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1690338653442895872, 1690338321769918464, 'GeneralTemplateUseType', 'export', '导出', b'1', 0.00, '', 1414143554414059520, '2023-08-12 20:25:15', 1414143554414059520, '2023-08-12 20:25:15', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1690338707129987072, 1690338545284378624, 'GeneralTemplateState', 'enable', '启用', b'1', 0.00, '', 1414143554414059520, '2023-08-12 20:25:27', 1414143554414059520, '2023-08-12 20:25:27', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1690338748032839680, 1690338545284378624, 'GeneralTemplateState', 'disable', '停用', b'1', 0.00, '', 1414143554414059520, '2023-08-12 20:25:37', 1414143554414059520, '2023-08-12 20:25:37', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1729519341702086656, 1589527951317389312, 'DataScopePerm', 'dept_sub', '指定部门及下级部门', b'1', 0.00, '', 1399985191002447872, '2023-11-28 23:15:19', 1399985191002447872, '2023-11-28 23:15:19', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1744997130102317056, 1744996845355212800, 'PayChannel', 'ali_pay', '支付宝', b'1', 1.00, '', 1399985191002447872, '2024-01-10 16:18:31', 1399985191002447872, '2024-01-10 16:18:31', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1744997169239367680, 1744996845355212800, 'PayChannel', 'wechat_pay', '微信支付', b'1', 2.00, '', 1399985191002447872, '2024-01-10 16:18:40', 1399985191002447872, '2024-01-10 16:18:40', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1744997213623492608, 1744996845355212800, 'PayChannel', 'union_pay', '云闪付', b'1', 3.00, '', 1399985191002447872, '2024-01-10 16:18:51', 1399985191002447872, '2024-01-10 16:18:51', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1744997258951335936, 1744996845355212800, 'PayChannel', 'cash_pay', '现金支付', b'1', 4.00, '', 1399985191002447872, '2024-01-10 16:19:02', 1399985191002447872, '2024-01-10 16:19:02', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1744997315557662720, 1744996845355212800, 'PayChannel', 'wallet_pay', '钱包支付', b'1', 5.00, '', 1399985191002447872, '2024-01-10 16:19:15', 1399985191002447872, '2024-01-10 16:19:15', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1744997364404527104, 1744996845355212800, 'PayChannel', 'voucher_pay', '储值卡支付', b'1', 6.00, '', 1399985191002447872, '2024-01-10 16:19:27', 1399985191002447872, '2024-01-10 16:19:27', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1744997501033979904, 1744996913667842048, 'PayStatus', 'progress', '支付中', b'1', 1.00, '', 1399985191002447872, '2024-01-10 16:19:59', 1399985191002447872, '2024-01-10 16:19:59', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1744997541811003392, 1744996913667842048, 'PayStatus', 'success', '成功', b'1', 2.00, '', 1399985191002447872, '2024-01-10 16:20:09', 1399985191002447872, '2024-01-10 16:20:09', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1744997578863484928, 1744996913667842048, 'PayStatus', 'close', '支付关闭', b'1', 3.00, '', 1399985191002447872, '2024-01-10 16:20:18', 1399985191002447872, '2024-01-10 16:20:18', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1744997619665674240, 1744996913667842048, 'PayStatus', 'fail', '失败', b'1', 7.00, '', 1399985191002447872, '2024-01-10 16:20:28', 1399985191002447872, '2024-01-27 00:52:05', 0, 1);
-INSERT INTO `base_dict_item` VALUES (1744997658735616000, 1744996913667842048, 'PayStatus', 'partial_refund', '部分退款', b'1', 5.00, '', 1399985191002447872, '2024-01-10 16:20:37', 1399985191002447872, '2024-01-10 16:20:44', 0, 1);
-INSERT INTO `base_dict_item` VALUES (1744997746321072128, 1744996913667842048, 'PayStatus', 'refunded', '全部退款', b'1', 6.00, '', 1399985191002447872, '2024-01-10 16:20:58', 1399985191002447872, '2024-01-10 16:20:58', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1745085949967278080, 1744996611615039488, 'AsyncPayChannel', 'ali_pay', '支付宝', b'1', 1.00, '', 1399985191002447872, '2024-01-10 22:11:27', 1399985191002447872, '2024-01-10 22:11:27', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1745085991767711744, 1744996611615039488, 'AsyncPayChannel', 'wechat_pay', '微信支付', b'1', 2.00, '', 1399985191002447872, '2024-01-10 22:11:37', 1399985191002447872, '2024-01-10 22:11:37', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1745086048852189184, 1744996611615039488, 'AsyncPayChannel', 'union_pay', '云闪付', b'1', 3.00, '', 1399985191002447872, '2024-01-10 22:11:51', 1399985191002447872, '2024-01-11 00:13:03', 0, 1);
-INSERT INTO `base_dict_item` VALUES (1745086902929924096, 1745086859116224512, 'PayWay', 'normal', '常规支付', b'1', 1.00, '', 1399985191002447872, '2024-01-10 22:15:14', 1399985191002447872, '2024-01-10 22:15:26', 0, 1);
-INSERT INTO `base_dict_item` VALUES (1745086940036931584, 1745086859116224512, 'PayWay', 'wap', 'wap支付', b'1', 2.00, '', 1399985191002447872, '2024-01-10 22:15:23', 1399985191002447872, '2024-01-10 22:15:23', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1745087004062982144, 1745086859116224512, 'PayWay', 'app', '应用支付', b'1', 3.00, '', 1399985191002447872, '2024-01-10 22:15:39', 1399985191002447872, '2024-01-10 22:15:39', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1745087058194669568, 1745086859116224512, 'PayWay', 'web', 'web支付', b'1', 4.00, '', 1399985191002447872, '2024-01-10 22:15:51', 1399985191002447872, '2024-01-10 22:15:51', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1745087104050995200, 1745086859116224512, 'PayWay', 'qrcode', '扫码支付', b'1', 5.00, '', 1399985191002447872, '2024-01-10 22:16:02', 1399985191002447872, '2024-01-10 22:16:02', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1745087163324899328, 1745086859116224512, 'PayWay', 'barcode', '付款码', b'1', 6.00, '', 1399985191002447872, '2024-01-10 22:16:17', 1399985191002447872, '2024-01-10 22:16:17', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1745087221629919232, 1745086859116224512, 'PayWay', 'jsapi', '公众号/小程序支付', b'1', 7.00, '', 1399985191002447872, '2024-01-10 22:16:30', 1399985191002447872, '2024-01-10 22:16:37', 0, 1);
-INSERT INTO `base_dict_item` VALUES (1745109413893656576, 1745109350333173760, 'PayCallbackStatus', 'success', '成功', b'1', 1.00, '', 1399985191002447872, '2024-01-10 23:44:41', 1399985191002447872, '2024-01-10 23:44:41', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1745109449050312704, 1745109350333173760, 'PayCallbackStatus', 'fail', '失败', b'1', 2.00, '', 1399985191002447872, '2024-01-10 23:44:50', 1399985191002447872, '2024-01-10 23:44:50', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1745109487289782272, 1745109350333173760, 'PayCallbackStatus', 'ignore', '忽略', b'1', 3.00, '', 1399985191002447872, '2024-01-10 23:44:59', 1399985191002447872, '2024-01-10 23:44:59', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1745109526477164544, 1745109350333173760, 'PayCallbackStatus', 'exception', '异常', b'1', 4.00, '', 1399985191002447872, '2024-01-10 23:45:08', 1399985191002447872, '2024-02-01 22:14:52', 0, 1);
-INSERT INTO `base_dict_item` VALUES (1745109571771453440, 1745109350333173760, 'PayCallbackStatus', 'not_found', '未找到', b'1', 5.00, '', 1399985191002447872, '2024-01-10 23:45:19', 1399985191002447872, '2024-01-10 23:45:19', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1745129035573465088, 1745128986382667776, 'PayRepairSource', 'sync', '同步', b'1', 1.00, '', 1399985191002447872, '2024-01-11 01:02:40', 1399985191002447872, '2024-01-11 01:02:40', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1745133530906857472, 1745128986382667776, 'PayRepairSource', 'callback', '回调', b'1', 2.00, '', 1399985191002447872, '2024-01-11 01:20:31', 1399985191002447872, '2024-01-11 01:20:31', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1745133583939637248, 1745128986382667776, 'PayRepairSource', 'reconcile', '对账', b'1', 3.00, '', 1399985191002447872, '2024-01-11 01:20:44', 1399985191002447872, '2024-01-11 01:20:44', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1745134495319953408, 1745134438772346880, 'PayRepairWay', 'pay_success', '支付成功', b'1', 1.00, '', 1399985191002447872, '2024-01-11 01:24:21', 1399985191002447872, '2024-02-01 21:29:32', 0, 1);
-INSERT INTO `base_dict_item` VALUES (1745134589926674432, 1745134438772346880, 'PayRepairWay', 'pay_close_local', '关闭本地支付', b'1', 2.00, '', 1399985191002447872, '2024-01-11 01:24:44', 1399985191002447872, '2024-02-01 21:29:36', 0, 1);
-INSERT INTO `base_dict_item` VALUES (1745134628447162368, 1745134438772346880, 'PayRepairWay', 'pay_progress', '更改为支付中', b'1', 3.00, '', 1399985191002447872, '2024-01-11 01:24:53', 1399985191002447872, '2024-02-01 22:02:53', 0, 2);
-INSERT INTO `base_dict_item` VALUES (1745134664807583744, 1745134438772346880, 'PayRepairWay', 'pay_close_gateway', '关闭网关支付', b'1', 4.00, '', 1399985191002447872, '2024-01-11 01:25:02', 1399985191002447872, '2024-02-01 21:29:43', 0, 1);
-INSERT INTO `base_dict_item` VALUES (1745134703416152064, 1745134438772346880, 'PayRepairWay', 'refund', '退款', b'1', 5.00, '', 1399985191002447872, '2024-01-11 01:25:11', 1399985191002447872, '2024-01-28 21:55:55', 1, 1);
-INSERT INTO `base_dict_item` VALUES (1745748239158845440, 1745748188122554368, 'RefundStatus', 'success', '成功', b'1', 1.00, '', 1399985191002447872, '2024-01-12 18:03:09', 1399985191002447872, '2024-01-12 18:03:09', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1745748274525216768, 1745748188122554368, 'RefundStatus', 'fail', '失败', b'1', 3.00, '', 1399985191002447872, '2024-01-12 18:03:18', 1399985191002447872, '2024-01-27 00:51:02', 0, 1);
-INSERT INTO `base_dict_item` VALUES (1746208700446683136, 1746208645341917184, 'PaySyncStatus', 'pay_fail', '支付查询失败', b'1', 1.00, '', 1399985191002447872, '2024-01-14 00:32:52', 1399985191002447872, '2024-02-01 21:59:17', 0, 1);
-INSERT INTO `base_dict_item` VALUES (1746208760488144896, 1746208645341917184, 'PaySyncStatus', 'pay_success', '支付成功', b'1', 2.00, '', 1399985191002447872, '2024-01-14 00:33:06', 1399985191002447872, '2024-02-01 21:59:23', 0, 1);
-INSERT INTO `base_dict_item` VALUES (1746208802531848192, 1746208645341917184, 'PaySyncStatus', 'pay_progress', '支付中', b'1', 3.00, '', 1399985191002447872, '2024-01-14 00:33:16', 1399985191002447872, '2024-02-01 21:59:33', 0, 1);
-INSERT INTO `base_dict_item` VALUES (1746208853882712064, 1746208645341917184, 'PaySyncStatus', 'pay_closed', '支付已关闭', b'1', 4.00, '', 1399985191002447872, '2024-01-14 00:33:28', 1399985191002447872, '2024-02-01 21:59:43', 0, 1);
-INSERT INTO `base_dict_item` VALUES (1746208898396860416, 1746208645341917184, 'PaySyncStatus', 'pay_refund', '支付退款', b'1', 5.00, '', 1399985191002447872, '2024-01-14 00:33:39', 1399985191002447872, '2024-02-01 21:59:53', 0, 2);
-INSERT INTO `base_dict_item` VALUES (1746208959721779200, 1746208645341917184, 'PaySyncStatus', 'pay_not_found', '交易不存在', b'1', 6.00, '', 1399985191002447872, '2024-01-14 00:33:54', 1399985191002447872, '2024-02-01 22:00:05', 0, 2);
-INSERT INTO `base_dict_item` VALUES (1746224281904455680, 1746208645341917184, 'PaySyncStatus', 'pay_not_found_unknown', '交易不存在(特殊)', b'1', 7.00, '未查询到订单(具体类型未知), 区别于上面的未查询到订单,有些支付方式如支付宝,发起支付后并不能查询到订单,需要用户进行操作后才能查询到订单,所以查询为了区分,增加一个未知的状态, 用于处理这种特殊情况, 然后根据业务需要,关闭订单或者进行其他操作', 1399985191002447872, '2024-01-14 01:34:47', 1399985191002447872, '2024-02-01 22:00:13', 0, 2);
-INSERT INTO `base_dict_item` VALUES (1746224432131842048, 1746208645341917184, 'PaySyncStatus', 'pay_timeout', '支付超时', b'1', 8.00, '', 1399985191002447872, '2024-01-14 01:35:23', 1399985191002447872, '2024-02-01 22:00:30', 0, 2);
-INSERT INTO `base_dict_item` VALUES (1749612708363186176, 1749612665392541696, 'ReconcileTrade', 'pay', '支付', b'1', 1.00, '', 1399985191002447872, '2024-01-23 09:59:11', 1399985191002447872, '2024-01-23 09:59:11', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1749612758531256320, 1749612665392541696, 'ReconcileTrade', 'refund', '退款', b'1', 2.00, '', 1399985191002447872, '2024-01-23 09:59:23', 1399985191002447872, '2024-01-23 09:59:23', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1749612797680889856, 1749612665392541696, 'ReconcileTrade', 'revoked', '撤销', b'1', 3.00, '', 1399985191002447872, '2024-01-23 09:59:32', 1399985191002447872, '2024-01-23 09:59:32', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1750924188674404352, 1745748188122554368, 'RefundStatus', 'progress', '退款中', b'1', 0.00, '接口调用成功不代表成功', 1399985191002447872, '2024-01-27 00:50:32', 1399985191002447872, '2024-01-27 00:50:32', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1750924286401687552, 1745748188122554368, 'RefundStatus', 'part_success', '部分成功', b'1', 2.00, '', 1399985191002447872, '2024-01-27 00:50:55', 1399985191002447872, '2024-01-27 00:50:55', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1750924518497693696, 1744996913667842048, 'PayStatus', 'refunding', '退款中', b'1', 4.00, '', 1399985191002447872, '2024-01-27 00:51:50', 1399985191002447872, '2024-01-27 00:52:10', 0, 1);
-INSERT INTO `base_dict_item` VALUES (1751528739035111424, 1751603996496453632, 'PaymentType', 'pay', '支付', b'1', 1.00, '', 1399985191002447872, '2024-01-28 16:52:48', 1399985191002447872, '2024-01-28 16:52:48', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1751528773260632064, 1751603996496453632, 'PaymentType', 'refund', '退款', b'1', 2.00, '', 1399985191002447872, '2024-01-28 16:52:56', 1399985191002447872, '2024-01-28 16:52:56', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1751613076980039680, 1751613032260370432, 'PayCallbackType', 'pay', '支付回调', b'1', 1.00, '', 1399985191002447872, '2024-01-28 22:27:56', 1399985191002447872, '2024-01-28 22:27:56', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1751613114254819328, 1751613032260370432, 'PayCallbackType', 'refund', '退款回调', b'1', 2.00, '', 1399985191002447872, '2024-01-28 22:28:04', 1399985191002447872, '2024-01-28 22:28:04', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1752216855927226368, 1745748188122554368, 'RefundStatus', 'close', '关闭', b'1', 4.00, '', 1399985191002447872, '2024-01-30 14:27:08', 1399985191002447872, '2024-01-30 14:27:08', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1752560213673594880, 1752560153120428032, 'RefundSyncStatus', 'refund_success', '退款成功', b'1', 1.00, '', 1399985191002447872, '2024-01-31 13:11:31', 1399985191002447872, '2024-02-01 21:56:59', 0, 1);
-INSERT INTO `base_dict_item` VALUES (1752560254228320256, 1752560153120428032, 'RefundSyncStatus', 'refund_fail', '退款失败', b'1', 2.00, '', 1399985191002447872, '2024-01-31 13:11:40', 1399985191002447872, '2024-02-01 21:57:07', 0, 1);
-INSERT INTO `base_dict_item` VALUES (1752560288546115584, 1752560153120428032, 'RefundSyncStatus', 'refund_progress', '退款中', b'1', 3.00, '', 1399985191002447872, '2024-01-31 13:11:48', 1399985191002447872, '2024-02-01 21:57:45', 0, 1);
-INSERT INTO `base_dict_item` VALUES (1753044707091554304, 1745128986382667776, 'PayRepairSource', 'task', '定时任务', b'1', 4.00, '', 1399985191002447872, '2024-02-01 21:16:43', 1399985191002447872, '2024-02-01 21:16:43', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1753047429014495232, 1753047382185091072, 'RefundRepairWay', 'refund_success', '退款成功', b'1', 1.00, '', 1399985191002447872, '2024-02-01 21:27:32', 1399985191002447872, '2024-02-01 21:29:13', 0, 1);
-INSERT INTO `base_dict_item` VALUES (1753047491140526080, 1753047382185091072, 'RefundRepairWay', 'refund_fail', '退款失败', b'1', 2.00, '', 1399985191002447872, '2024-02-01 21:27:47', 1399985191002447872, '2024-02-01 21:29:19', 0, 1);
-INSERT INTO `base_dict_item` VALUES (1755939895162052608, 1745134438772346880, 'PayRepairWay', 'refund_success', '退款成功', b'1', 5.00, '会更新为部分退款和全部退款', 1399985191002447872, '2024-02-09 21:01:09', 1399985191002447872, '2024-02-09 21:10:22', 0, 2);
-INSERT INTO `base_dict_item` VALUES (1755942271772139520, 1745134438772346880, 'PayRepairWay', 'refund_fail', '退款失败', b'1', 6.00, '', 1399985191002447872, '2024-02-09 21:10:36', 1399985191002447872, '2024-02-09 21:10:36', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1758881424411439104, 1758881354618220544, 'WalletStatus', 'normal', '正常', b'1', 1.00, '', 1399985191002447872, '2024-02-17 23:49:45', 1399985191002447872, '2024-02-17 23:49:45', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1758881470334873600, 1758881354618220544, 'WalletStatus', 'forbidden', '禁用', b'1', 2.00, '', 1399985191002447872, '2024-02-17 23:49:56', 1399985191002447872, '2024-02-17 23:49:56', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1759189919170002944, 1759189874194481152, 'VoucherStatus', 'normal', '正常', b'1', 1.00, '', 1399985191002447872, '2024-02-18 20:15:36', 1399985191002447872, '2024-02-18 20:15:36', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1759189962564272128, 1759189874194481152, 'VoucherStatus', 'forbidden', '禁用', b'1', 2.00, '', 1399985191002447872, '2024-02-18 20:15:46', 1399985191002447872, '2024-02-18 20:15:46', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1759190150464897024, 1759190066511708160, 'WalletRecordType', 'create', '创建', b'1', 1.00, '', 1399985191002447872, '2024-02-18 20:16:31', 1399985191002447872, '2024-02-18 20:16:31', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1759190193783668736, 1759190066511708160, 'WalletRecordType', 'pay', '支付', b'1', 2.00, '', 1399985191002447872, '2024-02-18 20:16:41', 1399985191002447872, '2024-02-18 20:16:41', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1759190227510067200, 1759190066511708160, 'WalletRecordType', 'refund', '退款', b'1', 3.00, '', 1399985191002447872, '2024-02-18 20:16:49', 1399985191002447872, '2024-02-18 20:16:56', 0, 1);
-INSERT INTO `base_dict_item` VALUES (1759190291980713984, 1759190066511708160, 'WalletRecordType', 'close_pay', '支付关闭', b'1', 4.00, '', 1399985191002447872, '2024-02-18 20:17:04', 1399985191002447872, '2024-02-18 20:17:04', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1759190340517199872, 1759190066511708160, 'WalletRecordType', 'close_refund', '退款关闭', b'1', 5.00, '', 1399985191002447872, '2024-02-18 20:17:16', 1399985191002447872, '2024-02-19 17:31:26', 1, 0);
-INSERT INTO `base_dict_item` VALUES (1759190472654553088, 1759190427897135104, 'VoucherRecordType', 'import', '导入', b'1', 1.00, '', 1399985191002447872, '2024-02-18 20:17:48', 1399985191002447872, '2024-02-18 20:17:48', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1759190506087350272, 1759190427897135104, 'VoucherRecordType', 'pay', '支付', b'1', 2.00, '', 1399985191002447872, '2024-02-18 20:17:55', 1399985191002447872, '2024-02-18 20:18:16', 0, 1);
-INSERT INTO `base_dict_item` VALUES (1759190574865547264, 1759190427897135104, 'VoucherRecordType', 'refund', '退款', b'1', 3.00, '', 1399985191002447872, '2024-02-18 20:18:12', 1399985191002447872, '2024-02-18 20:18:12', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1759190633921347584, 1759190427897135104, 'VoucherRecordType', 'close_pay', '支付关闭', b'1', 4.00, '', 1399985191002447872, '2024-02-18 20:18:26', 1399985191002447872, '2024-02-18 20:18:26', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1759190717757095936, 1759190427897135104, 'VoucherRecordType', 'close_refund', '退款关闭', b'1', 5.00, '', 1399985191002447872, '2024-02-18 20:18:46', 1399985191002447872, '2024-02-19 17:31:20', 1, 0);
-INSERT INTO `base_dict_item` VALUES (1759190820500766720, 1759190780252225536, 'CashRecordType', 'pay', '支付', b'1', 1.00, '', 1399985191002447872, '2024-02-18 20:19:10', 1399985191002447872, '2024-02-18 20:19:39', 0, 1);
-INSERT INTO `base_dict_item` VALUES (1759190850754281472, 1759190780252225536, 'CashRecordType', 'refund', '退款', b'1', 2.00, '', 1399985191002447872, '2024-02-18 20:19:18', 1399985191002447872, '2024-02-18 20:19:42', 0, 1);
-INSERT INTO `base_dict_item` VALUES (1759190884061249536, 1759190780252225536, 'CashRecordType', 'close_pay', '支付关闭', b'1', 3.00, '', 1399985191002447872, '2024-02-18 20:19:26', 1399985191002447872, '2024-02-18 20:19:46', 0, 1);
-INSERT INTO `base_dict_item` VALUES (1759190913261993984, 1759190780252225536, 'CashrRecordType', 'close_refund', '退款关闭', b'1', 4.00, '', 1399985191002447872, '2024-02-18 20:19:33', 1399985191002447872, '2024-02-19 17:31:15', 1, 1);
-INSERT INTO `base_dict_item` VALUES (1759514962507554816, 1759190066511708160, 'WalletRecordType', 'recharge', '充值', b'1', 11.00, '', 1399985191002447872, '2024-02-19 17:47:12', 1399985191002447872, '2024-02-19 17:47:12', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1759515000520531968, 1759190066511708160, 'WalletRecordType', 'deduct', '扣减', b'1', 12.00, '', 1399985191002447872, '2024-02-19 17:47:21', 1399985191002447872, '2024-02-19 17:47:21', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1761434142275497984, 1761434095349624832, 'ClientNoticeType', 'pay', '支付通知', b'1', 1.00, '', 1399985191002447872, '2024-02-25 00:53:20', 1399985191002447872, '2024-02-25 00:53:20', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1761434179445420032, 1761434095349624832, 'ClientNoticeType', 'refund', '退款通知', b'1', 2.00, '', 1399985191002447872, '2024-02-25 00:53:29', 1399985191002447872, '2024-02-25 00:53:29', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1761434308537708544, 1761434264858226688, 'ClientNoticeSendType', 'auto', '自动发送', b'1', 0.00, '', 1399985191002447872, '2024-02-25 00:54:00', 1399985191002447872, '2024-02-25 00:54:00', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1761434346206752768, 1761434264858226688, 'ClientNoticeSendType', 'manual', '手动发送', b'1', 1.00, '', 1399985191002447872, '2024-02-25 00:54:09', 1399985191002447872, '2024-02-25 00:54:09', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1761581686381080576, 1761581634023583744, 'AlipayRecordType', 'pay', '支付', b'1', 0.00, '', 1399985191002447872, '2024-02-25 10:39:37', 1399985191002447872, '2024-02-25 10:39:37', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1761581731029446656, 1761581634023583744, 'AlipayRecordType', 'refund', '退款', b'1', 1.00, '', 1399985191002447872, '2024-02-25 10:39:48', 1399985191002447872, '2024-02-25 10:39:48', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1761588368863645696, 1761588314480300032, 'WechatPayRecordType', 'pay', '支付', b'1', 0.00, '', 1399985191002447872, '2024-02-25 11:06:11', 1399985191002447872, '2024-02-25 11:06:11', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1761588397825314816, 1761588314480300032, 'WechatPayRecordType', 'refund', '退款', b'1', 0.00, '', 1399985191002447872, '2024-02-25 11:06:17', 1399985191002447872, '2024-02-25 11:06:17', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1763588081838182400, 1763588034467713024, 'ReconcileDiffType', 'local_not_exists', '本地订单不存在', b'1', 0.00, '', 1399985191002447872, '2024-03-01 23:32:19', 1399985191002447872, '2024-03-01 23:32:19', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1763588123143688192, 1763588034467713024, 'ReconcileDiffType', 'remote_not_exists', '远程订单不存在', b'1', 1.00, '', 1399985191002447872, '2024-03-01 23:32:29', 1399985191002447872, '2024-03-01 23:32:29', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1763588174695878656, 1763588034467713024, 'ReconcileDiffType', 'not_match', '订单信息不一致', b'1', 2.00, '', 1399985191002447872, '2024-03-01 23:32:41', 1399985191002447872, '2024-03-01 23:32:48', 0, 1);
-INSERT INTO `base_dict_item` VALUES (1766713657021157376, 1766713545981153280, 'UnionPaySignType', 'RSA2', 'RSA2', b'1', 0.00, '', 1399985191002447872, '2024-03-10 14:32:14', 1399985191002447872, '2024-03-10 14:32:14', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1768206502721449984, 1768206399071809536, 'UnionPayRecordType', 'pay', '支付', b'1', 1.00, '', 1399985191002447872, '2024-03-14 17:24:17', 1399985191002447872, '2024-03-14 17:24:17', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1768206547285929984, 1768206399071809536, 'UnionPayRecordType', 'refund', '退款', b'1', 0.00, '', 1399985191002447872, '2024-03-14 17:24:27', 1399985191002447872, '2024-03-14 17:24:27', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1775122126567559168, 1775112798259302400, 'AllocationReceiverType', 'wx_personal', '个人', b'1', 1.00, '', 1399985191002447872, '2024-04-02 19:24:30', 1399985191002447872, '2024-04-02 19:24:30', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1775122171861848064, 1775112798259302400, 'AllocationReceiverType', 'wx_merchant', '商户', b'1', 2.00, '', 1399985191002447872, '2024-04-02 19:24:41', 1399985191002447872, '2024-04-02 19:24:41', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1775122227956469760, 1775112798259302400, 'AllocationReceiverType', 'ali_user_id', '用户ID', b'1', 3.00, '', 1399985191002447872, '2024-04-02 19:24:54', 1399985191002447872, '2024-04-02 19:25:53', 0, 1);
-INSERT INTO `base_dict_item` VALUES (1775122278170677248, 1775112798259302400, 'AllocationReceiverType', 'ali_open_id', '登录号', b'1', 4.00, '', 1399985191002447872, '2024-04-02 19:25:06', 1399985191002447872, '2024-04-02 19:25:06', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1775122427802472448, 1775112798259302400, 'AllocationReceiverType', 'ali_login_name', '账号', b'1', 5.00, '', 1399985191002447872, '2024-04-02 19:25:42', 1399985191002447872, '2024-04-02 19:25:42', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1775122672623996928, 1775122632706805760, 'AllocationRelationType', 'SERVICE_PROVIDER', '服务商', b'1', 1.00, '', 1399985191002447872, '2024-04-02 19:26:40', 1399985191002447872, '2024-04-02 19:26:40', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1775122710884438016, 1775122632706805760, 'AllocationRelationType', 'STORE', '门店', b'1', 2.00, '', 1399985191002447872, '2024-04-02 19:26:49', 1399985191002447872, '2024-04-02 19:26:49', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1775122750612885504, 1775122632706805760, 'AllocationRelationType', 'STAFF', '员工', b'1', 3.00, '', 1399985191002447872, '2024-04-02 19:26:59', 1399985191002447872, '2024-04-02 19:26:59', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1775122847035740160, 1775122632706805760, 'AllocationRelationType', 'STORE_OWNER', '店主', b'1', 4.00, '', 1399985191002447872, '2024-04-02 19:27:22', 1399985191002447872, '2024-04-02 19:27:22', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1775122892464246784, 1775122632706805760, 'AllocationRelationType', 'PARTNER', '合作伙伴', b'1', 5.00, '', 1399985191002447872, '2024-04-02 19:27:32', 1399985191002447872, '2024-04-02 19:27:32', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1775122934138851328, 1775122632706805760, 'AllocationRelationType', 'HEADQUARTER', '总部', b'1', 6.00, '', 1399985191002447872, '2024-04-02 19:27:42', 1399985191002447872, '2024-04-02 19:27:42', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1775123560512016384, 1775122632706805760, 'AllocationRelationType', 'DISTRIBUTOR', '分销商', b'1', 7.00, '', 1399985191002447872, '2024-04-02 19:30:12', 1399985191002447872, '2024-04-02 19:30:12', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1775123607781822464, 1775122632706805760, 'AllocationRelationType', 'USER', '用户', b'1', 8.00, '', 1399985191002447872, '2024-04-02 19:30:23', 1399985191002447872, '2024-04-02 19:30:23', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1775123654527340544, 1775122632706805760, 'AllocationRelationType', 'SUPPLIER', '供应商', b'1', 9.00, '', 1399985191002447872, '2024-04-02 19:30:34', 1399985191002447872, '2024-04-02 19:30:34', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1775123705886593024, 1775122632706805760, 'AllocationRelationType', 'CUSTOM', '自定义', b'1', 10.00, '', 1399985191002447872, '2024-04-02 19:30:46', 1399985191002447872, '2024-04-02 19:30:46', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1777700713809522688, 1777697358802530304, 'AllocationOrderStatus', 'waiting', '待分账', b'1', 1.00, '', 1399985191002447872, '2024-04-09 22:10:53', 1399985191002447872, '2024-04-09 22:10:53', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1777700750744563712, 1777697358802530304, 'AllocationOrderStatus', 'allocation_processing', '分账处理中', b'1', 2.00, '', 1399985191002447872, '2024-04-09 22:11:02', 1399985191002447872, '2024-04-16 17:14:53', 0, 1);
-INSERT INTO `base_dict_item` VALUES (1777700787453112320, 1777697358802530304, 'AllocationOrderStatus', 'allocation_end', '分账完成', b'1', 3.00, '', 1399985191002447872, '2024-04-09 22:11:10', 1399985191002447872, '2024-04-16 17:36:25', 0, 2);
-INSERT INTO `base_dict_item` VALUES (1777700835826020352, 1777697358802530304, 'AllocationOrderStatus', 'allocation_failed', '分账失败', b'1', 4.00, '', 1399985191002447872, '2024-04-09 22:11:22', 1399985191002447872, '2024-04-16 17:16:34', 0, 2);
-INSERT INTO `base_dict_item` VALUES (1777700870613577728, 1777697358802530304, 'AllocationOrderStatus', 'finish', '分账完结', b'1', 5.00, '', 1399985191002447872, '2024-04-09 22:11:30', 1399985191002447872, '2024-04-16 17:17:06', 0, 1);
-INSERT INTO `base_dict_item` VALUES (1777700915450687488, 1777697358802530304, 'AllocationStatus', 'partial_failed', '部分分账失败', b'1', 6.00, '', 1399985191002447872, '2024-04-09 22:11:41', 1399985191002447872, '2024-04-16 17:16:49', 1, 1);
-INSERT INTO `base_dict_item` VALUES (1777700964087836672, 1777697358802530304, 'AllocationOrderStatus', 'finish_failed', '分账完结失败', b'1', 6.00, '', 1399985191002447872, '2024-04-09 22:11:53', 1399985191002447872, '2024-04-16 17:17:25', 0, 1);
-INSERT INTO `base_dict_item` VALUES (1777701030081015808, 1777697358802530304, 'AllocationStatus', 'closed', '分账关闭', b'1', 8.00, '', 1399985191002447872, '2024-04-09 22:12:08', 1399985191002447872, '2024-04-16 17:16:19', 1, 0);
-INSERT INTO `base_dict_item` VALUES (1777701090676125696, 1777697358802530304, 'AllocationStatus', 'unknown', '分账状态未知', b'1', 9.00, '', 1399985191002447872, '2024-04-09 22:12:23', 1399985191002447872, '2024-04-16 17:16:16', 1, 0);
-INSERT INTO `base_dict_item` VALUES (1780164864510623744, 1780163691808391168, 'AllocationDetailResult', 'pending', '待分账', b'1', 1.00, '', 1399985191002447872, '2024-04-16 17:22:32', 1399985191002447872, '2024-04-16 17:22:32', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1780164903886749696, 1780163691808391168, 'AllocationDetailResult', 'success', '分账成功', b'1', 2.00, '', 1399985191002447872, '2024-04-16 17:22:42', 1399985191002447872, '2024-04-16 17:22:42', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1780164940712738816, 1780163691808391168, 'AllocationDetailResult', 'fail', '分账失败', b'1', 0.00, '', 1399985191002447872, '2024-04-16 17:22:50', 1399985191002447872, '2024-04-16 17:22:50', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1780165545665593344, 1780165499633106944, 'AllocationOrderResult', 'all_pending', '全部成功', b'1', 0.00, '', 1399985191002447872, '2024-04-16 17:25:15', 1399985191002447872, '2024-04-16 17:25:15', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1780165581623361536, 1780165499633106944, 'AllocationOrderResult', 'all_success', '全部成功', b'1', 1.00, '', 1399985191002447872, '2024-04-16 17:25:23', 1399985191002447872, '2024-04-16 17:25:23', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1780165617413357568, 1780165499633106944, 'AllocationOrderResult', 'part_success', '部分成功', b'1', 2.00, '', 1399985191002447872, '2024-04-16 17:25:32', 1399985191002447872, '2024-04-16 17:25:32', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1780165653350154240, 1780165499633106944, 'AllocationOrderResult', 'all_failed', '全部失败', b'1', 3.00, '', 1399985191002447872, '2024-04-16 17:25:40', 1399985191002447872, '2024-04-16 17:25:40', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1780165986231091200, 1780165929528295424, 'PayOrderAllocationStatus', 'waiting', '待分账', b'1', 1.00, '', 1399985191002447872, '2024-04-16 17:27:00', 1399985191002447872, '2024-04-16 17:27:00', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1780166037149941760, 1780165929528295424, 'PayOrderAllocationStatus', 'allocation', '已分账', b'1', 2.00, '', 1399985191002447872, '2024-04-16 17:27:12', 1399985191002447872, '2024-04-16 17:27:12', 0, 0);
-
--- ----------------------------
--- Table structure for base_dynamic_data_source
--- ----------------------------
-DROP TABLE IF EXISTS `base_dynamic_data_source`;
-CREATE TABLE `base_dynamic_data_source`  (
-  `id` bigint(20) NOT NULL,
-  `code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '数据源编码',
-  `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '数据源名称',
-  `database_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '数据库类型',
-  `auto_load` bit(1) NULL DEFAULT NULL COMMENT '是否启动自动加载',
-  `db_driver` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '驱动类',
-  `db_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '数据库地址',
-  `db_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '数据库名称',
-  `db_username` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '用户名',
-  `db_password` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '密码',
-  `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '备注',
-  `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建人',
-  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
-  `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修改人',
-  `last_modified_time` datetime(0) NULL DEFAULT NULL COMMENT '最后修改时间',
-  `version` int(11) NOT NULL COMMENT '版本',
-  `deleted` tinyint(1) NOT NULL DEFAULT 0 COMMENT '0:未删除。1:已删除',
-  PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '动态数据源管理' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of base_dynamic_data_source
--- ----------------------------
-
--- ----------------------------
--- Table structure for base_dynamic_form
--- ----------------------------
-DROP TABLE IF EXISTS `base_dynamic_form`;
-CREATE TABLE `base_dynamic_form`  (
-  `id` bigint(20) NOT NULL,
-  `name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '表单名称',
-  `code` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '表单键名',
-  `value` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '表单内容',
-  `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
-  `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建人',
-  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
-  `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '更新人',
-  `last_modified_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间',
-  `deleted` tinyint(1) NOT NULL DEFAULT 0 COMMENT '0:未删除。1:已删除',
-  `version` int(8) NOT NULL COMMENT '版本',
-  PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '动态表单' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of base_dynamic_form
--- ----------------------------
-
--- ----------------------------
--- Table structure for base_general_template
--- ----------------------------
-DROP TABLE IF EXISTS `base_general_template`;
-CREATE TABLE `base_general_template`  (
-  `id` bigint(20) NOT NULL COMMENT '主键',
-  `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '模板名称',
-  `code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '模板代码',
-  `use_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '使用类型(导入/导出)',
-  `file_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '模板类型',
-  `file_suffix` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '模板后缀名',
-  `state` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '状态',
-  `file_id` bigint(20) NULL DEFAULT NULL COMMENT '文件ID',
-  `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '备注',
-  `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
-  `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修者ID',
-  `last_modified_time` datetime(0) NULL DEFAULT NULL COMMENT '最后修改时间',
-  `version` int(11) NOT NULL COMMENT '乐观锁',
-  `deleted` bit(1) NOT NULL COMMENT '删除标志',
-  PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '通用模板管理' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of base_general_template
--- ----------------------------
-
--- ----------------------------
--- Table structure for base_key_value
--- ----------------------------
-DROP TABLE IF EXISTS `base_key_value`;
-CREATE TABLE `base_key_value`  (
-  `id` bigint(20) NOT NULL,
-  `key` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '参数键名',
-  `value` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '参数值',
-  `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建人',
-  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
-  `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '更新人',
-  `last_modified_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间',
-  `deleted` tinyint(1) NOT NULL DEFAULT 0 COMMENT '0:未删除。1:已删除',
-  `version` int(8) NOT NULL COMMENT '版本',
-  PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = 'kv存储' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of base_key_value
--- ----------------------------
-
--- ----------------------------
--- Table structure for base_param
--- ----------------------------
-DROP TABLE IF EXISTS `base_param`;
-CREATE TABLE `base_param`  (
-  `id` bigint(20) NOT NULL,
-  `name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '参数名称',
-  `param_key` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '参数键名',
-  `value` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '参数值',
-  `type` int(4) NULL DEFAULT NULL COMMENT '参数类型',
-  `enable` bit(1) NOT NULL DEFAULT b'1' COMMENT '启用状态',
-  `internal` bit(1) NOT NULL COMMENT '内置参数',
-  `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
-  `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建人',
-  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
-  `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '更新人',
-  `last_modified_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间',
-  `deleted` tinyint(1) NOT NULL DEFAULT 0 COMMENT '0:未删除。1:已删除',
-  `version` int(8) NOT NULL COMMENT '版本',
-  PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '系统参数配置' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of base_param
--- ----------------------------
-INSERT INTO `base_param` VALUES (1452842684284891136, '测试', 'test.v1', '123', 1, b'1', b'0', NULL, 1399985191002447872, '2021-10-26 11:41:03', 1399985191002447872, '2024-01-07 23:31:08', 1, 0);
-INSERT INTO `base_param` VALUES (1529281530059161600, 'websocket服务器地址', 'WebsocketServerUrl', 'ws://127.0.0.1:9000', 1, b'1', b'1', '', 1399985191002447872, '2022-05-25 10:01:44', 1399985191002447872, '2024-01-07 23:31:29', 0, 3);
-INSERT INTO `base_param` VALUES (1545765299880448000, '服务器地址', 'ServerUrl', 'http://127.0.0.1:9000', 1, b'1', b'1', '优先级高于配置文件内进行的配置', 1399985191002447872, '2022-07-09 21:42:21', 1399985191002447872, '2024-01-07 23:31:20', 0, 2);
-
--- ----------------------------
--- Table structure for base_province
--- ----------------------------
-DROP TABLE IF EXISTS `base_province`;
-CREATE TABLE `base_province`  (
-  `code` char(2) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '省份编码',
-  `name` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '省份名称',
-  PRIMARY KEY (`code`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '省份表' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of base_province
--- ----------------------------
-
--- ----------------------------
--- Table structure for base_query_sql
--- ----------------------------
-DROP TABLE IF EXISTS `base_query_sql`;
-CREATE TABLE `base_query_sql`  (
-  `id` bigint(20) NOT NULL COMMENT '主键',
-  `database_id` bigint(20) NULL DEFAULT NULL COMMENT '数据源ID',
-  `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '名称',
-  `is_list` bit(1) NULL DEFAULT NULL COMMENT '是否集合',
-  `sql` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL COMMENT 'sql语句',
-  `params` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT 'SQL查询参数',
-  `fields` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT 'SQL查询结果字段',
-  `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
-  `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修者ID',
-  `last_modified_time` datetime(0) NULL DEFAULT NULL COMMENT '最后修改时间',
-  `version` int(11) NOT NULL COMMENT '乐观锁',
-  `deleted` bit(1) NOT NULL COMMENT '删除标志',
-  PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = 'SQL查询语句' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of base_query_sql
--- ----------------------------
-
--- ----------------------------
--- Table structure for base_street
--- ----------------------------
-DROP TABLE IF EXISTS `base_street`;
-CREATE TABLE `base_street`  (
-  `code` char(9) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '编码',
-  `name` varchar(60) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '街道名称',
-  `area_code` char(6) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '0' COMMENT '县区编码',
-  PRIMARY KEY (`code`) USING BTREE,
-  INDEX `inx_area_code`(`area_code`) USING BTREE COMMENT '县区'
-) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '街道表' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of base_street
--- ----------------------------
-
--- ----------------------------
--- Table structure for base_village
--- ----------------------------
-DROP TABLE IF EXISTS `base_village`;
-CREATE TABLE `base_village`  (
-  `code` char(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT '编码',
-  `name` varchar(55) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT '名称',
-  `street_code` char(9) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT '社区/乡镇编码',
-  PRIMARY KEY (`code`) USING BTREE,
-  INDEX `inx_street_code`(`street_code`) USING BTREE COMMENT '所属街道索引'
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '村庄/社区' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of base_village
--- ----------------------------
-
--- ----------------------------
--- Table structure for cash_record
--- ----------------------------
-DROP TABLE IF EXISTS `cash_record`;
-CREATE TABLE `cash_record`  (
-  `id` bigint(20) NOT NULL COMMENT '主键',
-  `title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '标题',
-  `type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '业务类型',
-  `amount` int(11) NULL DEFAULT NULL COMMENT '金额',
-  `order_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '交易订单号',
-  `ip` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '终端ip',
-  `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
-  `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
-  PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '现金记录' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of cash_record
--- ----------------------------
-
--- ----------------------------
--- Table structure for common_sequence_range
--- ----------------------------
-DROP TABLE IF EXISTS `common_sequence_range`;
-CREATE TABLE `common_sequence_range`  (
-  `id` bigint(20) NOT NULL COMMENT '主键',
-  `range_key` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '区间key',
-  `range_value` bigint(20) NOT NULL COMMENT '区间开始值',
-  `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建人',
-  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
-  `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修改人',
-  `last_modified_time` datetime(0) NULL DEFAULT NULL COMMENT '最后修改时间',
-  `version` int(11) NOT NULL COMMENT '版本',
-  `deleted` tinyint(1) NOT NULL DEFAULT 0 COMMENT '0:未删除。1:已删除',
-  PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '序列生成器队列区间管理' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of common_sequence_range
--- ----------------------------
-
--- ----------------------------
--- Table structure for ddl_history
--- ----------------------------
-DROP TABLE IF EXISTS `ddl_history`;
-CREATE TABLE `ddl_history`  (
-  `script` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '脚本',
-  `type` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '类型',
-  `version` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '版本',
-  PRIMARY KEY (`script`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = 'DDL 版本' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of ddl_history
--- ----------------------------
-
--- ----------------------------
--- Table structure for iam_client
--- ----------------------------
-DROP TABLE IF EXISTS `iam_client`;
-CREATE TABLE `iam_client`  (
-  `id` bigint(20) NOT NULL COMMENT '主键',
-  `code` varchar(21) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '编码',
-  `name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '名称',
-  `internal` bit(1) NOT NULL COMMENT '是否系统内置',
-  `enable` bit(1) NOT NULL COMMENT '是否可用',
-  `default_endow` bit(1) NULL DEFAULT NULL COMMENT '新注册的用户是否默认赋予该终端',
-  `login_type_ids` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '关联登录方式\r\n',
-  `description` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '描述',
-  `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
-  `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修者ID',
-  `last_modified_time` datetime(0) NULL DEFAULT NULL COMMENT '最后修改时间',
-  `version` int(11) NOT NULL COMMENT '乐观锁',
-  `deleted` bit(1) NOT NULL COMMENT '删除标志',
-  PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '认证终端' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of iam_client
--- ----------------------------
-INSERT INTO `iam_client` VALUES (1580487061605175296, 'dax-pay', '支付网关', b'0', b'1', b'1', '1430430071299207168,1430478946919653376,1435138582839009280,1542091599907115008,1542804450312122368,1543126042909016064', '支付网关管理端', 1399985191002447872, '2022-10-13 17:14:14', 1399985191002447872, '2023-10-19 19:58:21', 3, b'0');
-
--- ----------------------------
--- Table structure for iam_data_role
--- ----------------------------
-DROP TABLE IF EXISTS `iam_data_role`;
-CREATE TABLE `iam_data_role`  (
-  `id` bigint(20) NOT NULL COMMENT '角色ID',
-  `code` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '编码',
-  `name` varchar(150) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '名称',
-  `type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '类型',
-  `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '说明',
-  `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建人',
-  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
-  `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修改人',
-  `last_modified_time` datetime(0) NULL DEFAULT NULL COMMENT '最后修改时间',
-  `version` int(11) NOT NULL COMMENT '版本',
-  `deleted` tinyint(1) NOT NULL DEFAULT 0 COMMENT '0:未删除。1:已删除',
-  PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '数据范围权限' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of iam_data_role
--- ----------------------------
-
--- ----------------------------
--- Table structure for iam_data_role_dept
--- ----------------------------
-DROP TABLE IF EXISTS `iam_data_role_dept`;
-CREATE TABLE `iam_data_role_dept`  (
-  `id` bigint(20) NOT NULL,
-  `role_id` bigint(20) NOT NULL COMMENT '数据角色id',
-  `dept_id` bigint(20) NOT NULL COMMENT '部门id',
-  PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '数据范围部门关联配置' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of iam_data_role_dept
--- ----------------------------
-
--- ----------------------------
--- Table structure for iam_data_role_user
--- ----------------------------
-DROP TABLE IF EXISTS `iam_data_role_user`;
-CREATE TABLE `iam_data_role_user`  (
-  `id` bigint(20) NOT NULL,
-  `role_id` bigint(20) NOT NULL COMMENT '数据角色id',
-  `user_id` bigint(20) NOT NULL COMMENT '用户id',
-  PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '数据范围用户关联配置' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of iam_data_role_user
--- ----------------------------
-
--- ----------------------------
--- Table structure for iam_dept
--- ----------------------------
-DROP TABLE IF EXISTS `iam_dept`;
-CREATE TABLE `iam_dept`  (
-  `id` bigint(20) NOT NULL COMMENT 'ID',
-  `parent_id` bigint(20) NULL DEFAULT NULL COMMENT '父机构ID',
-  `dept_name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '机构/部门名称',
-  `sort_no` int(11) NOT NULL DEFAULT 0 COMMENT '排序',
-  `org_category` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '1' COMMENT '机构类别 1公司 2部门 3岗位',
-  `org_code` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '机构编码',
-  `mobile` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '手机号',
-  `fax` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '传真',
-  `address` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '地址',
-  `remark` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '备注',
-  `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建人',
-  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
-  `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修改人',
-  `last_modified_time` datetime(0) NULL DEFAULT NULL COMMENT '最后修改时间',
-  `version` int(11) NOT NULL COMMENT '版本',
-  `deleted` tinyint(1) NOT NULL DEFAULT 0 COMMENT '0:未删除。1:已删除',
-  PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '部门组织机构表' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of iam_dept
--- ----------------------------
-
--- ----------------------------
--- Table structure for iam_login_security_config
--- ----------------------------
-DROP TABLE IF EXISTS `iam_login_security_config`;
-CREATE TABLE `iam_login_security_config`  (
-  `id` bigint(20) NOT NULL COMMENT '主键',
-  `client_id` bigint(20) NULL DEFAULT NULL COMMENT '关联终端ID',
-  `require_login_change_pwd` bit(1) NULL DEFAULT NULL COMMENT '修改密码是否需要重新登录',
-  `captcha_enable` bit(1) NULL DEFAULT NULL COMMENT '默认启用验证码',
-  `max_captcha_error_count` int(11) NULL DEFAULT NULL COMMENT '出现验证码的错误次数',
-  `allow_multi_login` bit(1) NULL DEFAULT NULL COMMENT '同端是否允许同时登录',
-  `allow_multi_terminal_login` bit(1) NULL DEFAULT NULL COMMENT '多终端是否允许同时登录',
-  `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
-  `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修者ID',
-  `last_modified_time` datetime(0) NULL DEFAULT NULL COMMENT '最后修改时间',
-  `version` int(11) NOT NULL COMMENT '乐观锁',
-  `deleted` bit(1) NOT NULL COMMENT '删除标志',
-  PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '登录安全策略' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of iam_login_security_config
--- ----------------------------
-
--- ----------------------------
--- Table structure for iam_login_type
--- ----------------------------
-DROP TABLE IF EXISTS `iam_login_type`;
-CREATE TABLE `iam_login_type`  (
-  `id` bigint(20) NOT NULL COMMENT '主键',
-  `code` varchar(21) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '编码',
-  `name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '名称',
-  `type` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '类型',
-  `internal` bit(1) NOT NULL COMMENT '是否系统内置',
-  `timeout` bigint(11) NULL DEFAULT NULL COMMENT '在线时长(秒)',
-  `captcha_type` varchar(8) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '验证码类型',
-  `captcha` bit(1) NOT NULL COMMENT '启用验证码',
-  `enable` bit(1) NOT NULL COMMENT '是否可用',
-  `description` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '描述',
-  `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
-  `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修者ID',
-  `last_modified_time` datetime(0) NULL DEFAULT NULL COMMENT '最后修改时间',
-  `version` int(11) NOT NULL COMMENT '乐观锁',
-  `deleted` bit(1) NOT NULL COMMENT '删除标志',
-  PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '登录方式' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of iam_login_type
--- ----------------------------
-INSERT INTO `iam_login_type` VALUES (1430430071299207168, 'password', '账号密码登陆', 'password', b'1', 3600, '-1', b'0', b'1', NULL, 1399985191002447872, '2021-08-25 15:21:20', 1399985191002447872, '2022-11-03 22:24:53', 20, b'0');
-INSERT INTO `iam_login_type` VALUES (1435138582839009280, 'phone', '手机短信登录', 'openId', b'0', 3600, '0', b'0', b'1', NULL, 1399985191002447872, '2021-09-07 15:11:16', 1399985191002447872, '2022-07-16 12:32:19', 5, b'0');
-INSERT INTO `iam_login_type` VALUES (1542091599907115008, 'dingTalk', '钉钉', 'openId', b'0', 5, '-1', b'0', b'1', '', 1399985191002447872, '2022-06-29 18:24:23', 1399985191002447872, '2022-07-02 14:55:01', 5, b'0');
-INSERT INTO `iam_login_type` VALUES (1542804450312122368, 'weCom', '企业微信', 'openId', b'0', 5, '-1', b'0', b'1', '', 1399985191002447872, '2022-07-01 17:37:00', 1399985191002447872, '2022-07-01 17:37:00', 0, b'0');
-INSERT INTO `iam_login_type` VALUES (1543126042909016064, 'weChat', '微信登录', 'openId', b'0', 5, '-1', b'0', b'1', '', 1399985191002447872, '2022-07-02 14:54:53', 0, '2022-10-12 22:15:05', 2, b'0');
-
--- ----------------------------
--- Table structure for iam_password_change_history
--- ----------------------------
-DROP TABLE IF EXISTS `iam_password_change_history`;
-CREATE TABLE `iam_password_change_history`  (
-  `id` bigint(20) NOT NULL COMMENT '主键',
-  `user_id` bigint(20) NULL DEFAULT NULL COMMENT '用户Id',
-  `password` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '密码',
-  `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
-  PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '密码更改历史' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of iam_password_change_history
--- ----------------------------
-INSERT INTO `iam_password_change_history` VALUES (1757299138075283456, 1757299137932677120, 'f52020dca765fd3943ed40a615dc2c5c', 1399985191002447872, '2024-02-13 15:02:18');
-INSERT INTO `iam_password_change_history` VALUES (1757317256038281216, 1757317255899869184, '1e9e3c3deaa4a06d08326e82a49d1b63', 1399985191002447872, '2024-02-13 16:14:18');
-
--- ----------------------------
--- Table structure for iam_password_login_fail_record
--- ----------------------------
-DROP TABLE IF EXISTS `iam_password_login_fail_record`;
-CREATE TABLE `iam_password_login_fail_record`  (
-  `id` bigint(20) NOT NULL COMMENT '主键',
-  `user_id` bigint(20) NULL DEFAULT NULL COMMENT '用户id',
-  `fail_count` int(11) NULL DEFAULT NULL COMMENT '登录失败次数',
-  `fail_time` datetime(0) NULL DEFAULT NULL COMMENT '登录失败时间',
-  `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
-  `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修者ID',
-  `last_modified_time` datetime(0) NULL DEFAULT NULL COMMENT '最后修改时间',
-  `version` int(11) NOT NULL COMMENT '乐观锁',
-  `deleted` bit(1) NOT NULL COMMENT '删除标志',
-  PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '密码登录失败记录' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of iam_password_login_fail_record
--- ----------------------------
-
--- ----------------------------
--- Table structure for iam_password_security_config
--- ----------------------------
-DROP TABLE IF EXISTS `iam_password_security_config`;
-CREATE TABLE `iam_password_security_config`  (
-  `id` bigint(20) NOT NULL COMMENT '主键',
-  `max_pwd_error_count` int(11) NULL DEFAULT NULL COMMENT '最大密码错误数',
-  `error_lock_time` int(11) NULL DEFAULT NULL COMMENT '密码错误锁定时间(分钟)',
-  `require_change_pwd` bit(1) NULL DEFAULT NULL COMMENT '强制修改初始密码',
-  `update_frequency` int(11) NULL DEFAULT NULL COMMENT '更新频率',
-  `expire_remind` int(11) NULL DEFAULT NULL COMMENT '到期提醒(天数)',
-  `same_as_login_name` bit(1) NULL DEFAULT NULL COMMENT '与登录名相同',
-  `recent_password` int(11) NULL DEFAULT NULL COMMENT '不能与近期多少次密码相同',
-  `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
-  `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修者ID',
-  `last_modified_time` datetime(0) NULL DEFAULT NULL COMMENT '最后修改时间',
-  `version` int(11) NOT NULL COMMENT '乐观锁',
-  `deleted` bit(1) NOT NULL COMMENT '删除标志',
-  PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '密码安全策略' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of iam_password_security_config
--- ----------------------------
-INSERT INTO `iam_password_security_config` VALUES (1714844168393515008, 9999999, 10, b'1', 9999999, 14, b'0', 5, 1399985191002447872, '2023-10-19 11:21:25', 1399985191002447872, '2023-11-29 12:10:21', 2, b'0');
-
--- ----------------------------
--- Table structure for iam_perm_menu
--- ----------------------------
-DROP TABLE IF EXISTS `iam_perm_menu`;
-CREATE TABLE `iam_perm_menu`  (
-  `id` bigint(20) NOT NULL,
-  `client_code` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '终端code',
-  `parent_id` bigint(20) NULL DEFAULT NULL COMMENT '父id',
-  `title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '菜单名称',
-  `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '路由名称',
-  `perm_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '菜单权限编码',
-  `effect` bit(1) NULL DEFAULT NULL COMMENT '是否有效',
-  `icon` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '菜单图标',
-  `hidden` bit(1) NOT NULL COMMENT '是否隐藏',
-  `hide_children_in_menu` bit(1) NOT NULL COMMENT '是否隐藏子菜单',
-  `component` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '组件',
-  `component_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '组件名字',
-  `path` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '路径',
-  `redirect` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '菜单跳转地址(重定向)',
-  `sort_no` double NOT NULL COMMENT '菜单排序',
-  `menu_type` int(5) NOT NULL COMMENT '类型(0:一级菜单;1:子菜单 ;2:按钮权限)',
-  `leaf` bit(1) NULL DEFAULT NULL COMMENT '是否叶子节点',
-  `keep_alive` bit(1) NULL DEFAULT NULL COMMENT '是否缓存页面',
-  `target_outside` bit(1) NULL DEFAULT NULL COMMENT '是否外部打开方式',
-  `hidden_header_content` bit(1) NULL DEFAULT NULL COMMENT '隐藏的标题内容',
-  `admin` bit(1) NOT NULL COMMENT '系统菜单',
-  `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '描述',
-  `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建人',
-  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
-  `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修改人',
-  `last_modified_time` datetime(0) NULL DEFAULT NULL COMMENT '最后修改时间',
-  `version` int(11) NOT NULL COMMENT '版本',
-  `deleted` tinyint(1) NOT NULL DEFAULT 0 COMMENT '0:未删除。1:已删除',
-  PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '权限_菜单' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of iam_perm_menu
--- ----------------------------
-INSERT INTO `iam_perm_menu` VALUES (1580740450633101312, 'dax-pay', NULL, '系统管理', 'System', NULL, b'0', 'ant-design:setting-outlined', b'0', b'0', 'Layout', NULL, '/system', '/system1/client', -99999, 0, NULL, b'1', b'0', b'0', b'0', NULL, 1399985191002447872, '2022-10-14 10:01:07', 1414143554414059520, '2022-10-18 15:32:09', 4, 0);
-INSERT INTO `iam_perm_menu` VALUES (1580740637841666048, 'dax-pay', 1582253306356649984, '终端管理', 'ClientList', NULL, b'0', '', b'0', b'0', '/modules/system/client/ClientList.vue', NULL, '/system/client', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1399985191002447872, '2022-10-14 10:01:51', 1414143554414059520, '2022-10-18 14:13:27', 5, 0);
-INSERT INTO `iam_perm_menu` VALUES (1580740758629232640, 'dax-pay', 1582253306356649984, '登录方式', 'LoginTypeList', NULL, b'0', '', b'0', b'0', '/modules/system/loginType/LoginTypeList.vue', NULL, '/system/loginType', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1399985191002447872, '2022-10-14 10:02:20', 1414143554414059520, '2022-10-18 14:13:40', 5, 0);
-INSERT INTO `iam_perm_menu` VALUES (1580928436300337152, 'dax-pay', 1580740450633101312, '菜单管理', 'MenuList', NULL, b'0', '', b'0', b'0', '/modules/system/menu/MenuList.vue', NULL, '/system/menu', '', -99, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1399985191002447872, '2022-10-14 22:28:06', 1399985191002447872, '2022-10-14 22:28:32', 1, 0);
-INSERT INTO `iam_perm_menu` VALUES (1582249924602580992, 'dax-pay', 1580740450633101312, '权限管理', 'Permission', NULL, b'0', '', b'0', b'0', 'Layout', NULL, '/system/permission', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-18 13:59:13', 1414143554414059520, '2022-10-18 13:59:13', 0, 0);
-INSERT INTO `iam_perm_menu` VALUES (1582253011803262976, 'dax-pay', 1580740450633101312, '用户信息', 'UserAuth', NULL, b'0', '', b'0', b'0', 'Layout', NULL, '/system/user', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-18 14:11:30', 1414143554414059520, '2022-10-18 14:11:30', 0, 0);
-INSERT INTO `iam_perm_menu` VALUES (1582253152903843840, 'dax-pay', 1580740450633101312, '系统配置', 'SystemConfig', NULL, b'0', '', b'0', b'0', 'Layout', NULL, '/system/config', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-18 14:12:03', 1414143554414059520, '2022-10-18 14:12:03', 0, 0);
-INSERT INTO `iam_perm_menu` VALUES (1582253306356649984, 'dax-pay', 1580740450633101312, '认证管理', 'Auth', NULL, b'0', '', b'0', b'0', 'Layout', NULL, '/system/auth', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-18 14:12:40', 1414143554414059520, '2022-10-18 14:13:13', 1, 0);
-INSERT INTO `iam_perm_menu` VALUES (1582275875424129024, 'dax-pay', NULL, '系统监控', 'Monitor', NULL, b'0', 'ant-design:monitor-outlined', b'0', b'0', 'Layout', NULL, '/monitor', '', 0, 0, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-18 15:42:21', 1414143554414059520, '2022-10-19 17:29:29', 1, 0);
-INSERT INTO `iam_perm_menu` VALUES (1582275984849326080, 'dax-pay', NULL, '通知管理', 'Notice', NULL, b'0', 'ant-design:message-outlined', b'0', b'0', 'Layout', NULL, '/notice', '', 0, 0, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-18 15:42:47', 1414143554414059520, '2022-10-19 17:30:06', 1, 0);
-INSERT INTO `iam_perm_menu` VALUES (1582276092038959104, 'dax-pay', NULL, '第三方对接', 'Third', NULL, b'0', 'ant-design:api-twotone', b'0', b'0', 'Layout', NULL, '/third', '', 0, 0, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-18 15:43:12', 1414143554414059520, '2022-10-19 17:32:04', 1, 0);
-INSERT INTO `iam_perm_menu` VALUES (1582276341792985088, 'dax-pay', NULL, '开发管理', 'Develop', NULL, b'0', 'ant-design:apartment-outlined', b'0', b'0', 'Layout', NULL, '/develop', '', 0, 0, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-18 15:44:12', 1414143554414059520, '2022-10-19 15:24:22', 1, 0);
-INSERT INTO `iam_perm_menu` VALUES (1582277076421136384, 'dax-pay', 1582249924602580992, '角色管理', 'RoleList', NULL, b'0', '', b'0', b'0', '/modules/system/role/RoleList.vue', NULL, '/system/permission/role', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-18 15:47:07', 1414143554414059520, '2022-10-18 15:59:37', 1, 0);
-INSERT INTO `iam_perm_menu` VALUES (1582301940364308480, 'dax-pay', 1582249924602580992, '请求权限', 'PermPathList', NULL, b'0', '', b'0', b'0', '/modules/system/path/PermPathList.vue', NULL, '/system/permission/path', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-18 17:25:55', 1399985191002447872, '2023-11-29 13:57:56', 2, 0);
-INSERT INTO `iam_perm_menu` VALUES (1582302180999917568, 'dax-pay', 1582249924602580992, '数据角色', 'DataRoleList', NULL, b'0', '', b'0', b'0', '/modules/system/scope/DataRoleList.vue', NULL, '/system/permission/data', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-18 17:26:52', 1399985191002447872, '2023-11-28 21:02:57', 2, 0);
-INSERT INTO `iam_perm_menu` VALUES (1582302542955769856, 'dax-pay', 1582253011803262976, '用户管理', 'UserList', NULL, b'0', '', b'0', b'0', '/modules/system/user/UserList.vue', NULL, '/system/user/info', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-18 17:28:19', 1414143554414059520, '2022-10-18 17:28:19', 0, 0);
-INSERT INTO `iam_perm_menu` VALUES (1582302764129808384, 'dax-pay', 1582253011803262976, '部门管理', 'DeptList', NULL, b'0', '', b'0', b'0', '/modules/system/dept/DeptList.vue', NULL, '/system/user/dept', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-18 17:29:11', 1414143554414059520, '2022-10-18 17:32:26', 1, 0);
-INSERT INTO `iam_perm_menu` VALUES (1582303143110340608, 'dax-pay', 1582253152903843840, '数据字典', 'DictList', NULL, b'0', '', b'0', b'0', '/modules/system/dict/DictList.vue', NULL, '/system/config/dict', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-18 17:30:42', 1414143554414059520, '2022-10-18 17:30:42', 0, 0);
-INSERT INTO `iam_perm_menu` VALUES (1582303290070364160, 'dax-pay', 1582253152903843840, '定时任务', 'QuartzJobList', NULL, b'0', '', b'0', b'0', '/modules/baseapi/quartz/QuartzJobList.vue', NULL, '/system/config/quartz', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-18 17:31:17', 1414143554414059520, '2023-08-09 15:50:46', 2, 0);
-INSERT INTO `iam_perm_menu` VALUES (1582303447428067328, 'dax-pay', 1582253152903843840, '系统参数', 'SystemParamList', NULL, b'0', '', b'0', b'0', '/modules/system/param/SystemParamList.vue', NULL, '/system/config/param', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-18 17:31:54', 1414143554414059520, '2022-10-19 23:14:16', 1, 0);
-INSERT INTO `iam_perm_menu` VALUES (1582632873244172288, 'dax-pay', 1582276341792985088, '文件管理', 'FileUploadList', NULL, b'0', '', b'0', b'0', '/modules/develop/file/FileUploadList.vue', NULL, '/develop/file', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-19 15:20:56', 1414143554414059520, '2022-10-19 15:20:56', 0, 0);
-INSERT INTO `iam_perm_menu` VALUES (1582633196587261952, 'dax-pay', 1582276341792985088, '代码生成', 'CodeGenList', NULL, b'0', '', b'0', b'0', '/modules/develop/codegen/CodeGenList.vue', NULL, '/develop/codegen', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-19 15:22:13', 1414143554414059520, '2022-10-19 15:23:17', 1, 0);
-INSERT INTO `iam_perm_menu` VALUES (1582633307786649600, 'dax-pay', 1582276341792985088, '动态表单', 'DynamicFormList', NULL, b'0', '', b'0', b'0', '/modules/develop/dynamicform/DynamicFormList.vue', NULL, '/develop/form', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-19 15:22:39', 1414143554414059520, '2022-10-19 15:22:39', 0, 0);
-INSERT INTO `iam_perm_menu` VALUES (1582633620321017856, 'dax-pay', 1582276341792985088, '动态数据源', 'DynamicDataSourceList', NULL, b'0', '', b'0', b'0', '/modules/develop/dynamicsource/DynamicDataSourceList.vue', NULL, '/develop/source', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-19 15:23:54', 1414143554414059520, '2022-10-19 15:23:54', 0, 0);
-INSERT INTO `iam_perm_menu` VALUES (1583074308040925184, 'dax-pay', 1582275875424129024, '接口文档', 'ApiSwagger', NULL, b'0', '', b'0', b'0', '', NULL, 'http://127.0.0.1:9999/doc.html', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-20 20:35:02', 1414143554414059520, '2022-11-23 13:59:09', 2, 0);
-INSERT INTO `iam_perm_menu` VALUES (1583075229563068416, 'dax-pay', 1582275875424129024, '审计日志', 'AuditLog', NULL, b'0', '', b'0', b'0', 'Layout', NULL, '/monitor/log', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-20 20:38:42', 1414143554414059520, '2022-10-20 20:41:38', 2, 0);
-INSERT INTO `iam_perm_menu` VALUES (1583076217481043968, 'dax-pay', 1583075229563068416, '登录日志', 'LoginLogList', NULL, b'0', '', b'0', b'0', '/modules/monitor/login/LoginLogList.vue', NULL, '/monitor/log/login', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-20 20:42:37', 1414143554414059520, '2022-10-20 20:43:36', 1, 0);
-INSERT INTO `iam_perm_menu` VALUES (1583076424935514112, 'dax-pay', 1583075229563068416, '操作日志', 'OperateLogList', NULL, b'0', '', b'0', b'0', '/modules/monitor/operate/OperateLogList.vue', NULL, '/monitor/log/operate', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-20 20:43:26', 1414143554414059520, '2022-10-20 20:43:26', 0, 0);
-INSERT INTO `iam_perm_menu` VALUES (1583076670881112064, 'dax-pay', 1583075229563068416, '数据版本日志', 'DataVersionLogList', NULL, b'0', '', b'0', b'0', '/modules/monitor/data/DataVersionLogList.vue', NULL, '/monitor/log/data', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-20 20:44:25', 1414143554414059520, '2022-10-20 20:44:25', 0, 0);
-INSERT INTO `iam_perm_menu` VALUES (1583076878956339200, 'dax-pay', 1582275875424129024, 'ELK日志', 'ELK', NULL, b'0', '', b'1', b'0', '', NULL, 'http://elk.dev.bootx.cn:5601/app/discover', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-20 20:45:15', 1414143554414059520, '2023-08-12 19:26:12', 3, 0);
-INSERT INTO `iam_perm_menu` VALUES (1583077015434797056, 'dax-pay', 1582275875424129024, 'PlumeLog日志', 'PlumeLog', NULL, b'0', '', b'0', b'0', '', NULL, 'http://127.0.0.1:9999/plumelog/#/', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-20 20:45:47', 1414143554414059520, '2022-10-20 20:45:47', 0, 0);
-INSERT INTO `iam_perm_menu` VALUES (1583077198772019200, 'dax-pay', 1582275875424129024, '系统信息', 'SystemInfoMonitor', NULL, b'0', '', b'0', b'0', '/modules/monitor/system/SystemInfoMonitor.vue', NULL, '/monitor/sysinfo', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-20 20:46:31', 1414143554414059520, '2022-10-20 20:46:31', 0, 0);
-INSERT INTO `iam_perm_menu` VALUES (1583077360827342848, 'dax-pay', 1582275875424129024, 'Redis监控', 'RedisInfoMonitor', NULL, b'0', '', b'0', b'0', '/modules/monitor/redis/RedisInfoMonitor.vue', NULL, '/monitor/redis', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-20 20:47:10', 1414143554414059520, '2022-10-20 20:47:10', 0, 0);
-INSERT INTO `iam_perm_menu` VALUES (1584378294652051456, 'dax-pay', 1582275984849326080, '邮件配置', 'MailConfigList', NULL, b'0', '', b'0', b'0', '/modules/notice/mail/MailConfigList.vue', NULL, '/notice/notice', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-24 10:56:36', 1414143554414059520, '2022-10-24 16:14:34', 1, 0);
-INSERT INTO `iam_perm_menu` VALUES (1584378497824137216, 'dax-pay', 1582275984849326080, '消息模板', 'MessageTemplateList', NULL, b'0', '', b'0', b'0', '/modules/notice/template/MessageTemplateList.vue', NULL, '/notice/template', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-24 10:57:25', 1414143554414059520, '2022-10-25 22:14:14', 2, 0);
-INSERT INTO `iam_perm_menu` VALUES (1584378671266996224, 'dax-pay', 1582275984849326080, '站内信', 'SiteMessageList', NULL, b'0', '', b'0', b'0', '/modules/notice/site/sender/SiteMessageList.vue', NULL, '/notice/siteMessage', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-24 10:58:06', 1414143554414059520, '2022-10-24 10:58:06', 0, 0);
-INSERT INTO `iam_perm_menu` VALUES (1584379602188574720, 'dax-pay', 1582276092038959104, '微信', 'WeChat', NULL, b'0', '', b'0', b'0', 'Layout', NULL, '/third/wechat', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-24 11:01:48', 1414143554414059520, '2022-10-24 11:01:48', 0, 0);
-INSERT INTO `iam_perm_menu` VALUES (1584379704122744832, 'dax-pay', 1582276092038959104, '企业微信', 'WeCom', NULL, b'0', '', b'0', b'0', 'Layout', NULL, '/third/wecom', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-24 11:02:12', 1414143554414059520, '2022-10-24 11:02:12', 0, 0);
-INSERT INTO `iam_perm_menu` VALUES (1584380087805091840, 'dax-pay', 1582276092038959104, '钉钉', 'DingTalk', NULL, b'0', '', b'0', b'0', 'Layout', NULL, '/third/dingtalk', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-24 11:03:44', 1414143554414059520, '2022-10-24 11:03:44', 0, 0);
-INSERT INTO `iam_perm_menu` VALUES (1584380527829524480, 'dax-pay', 1584379602188574720, '消息模板', 'WechatTemplateList', NULL, b'0', '', b'0', b'0', '/modules/third/wechat/template/WechatTemplateList.vue', NULL, '/third/wechat/template', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-24 11:05:29', 1414143554414059520, '2022-10-26 15:58:56', 1, 0);
-INSERT INTO `iam_perm_menu` VALUES (1584380679478779904, 'dax-pay', 1584379602188574720, '自定义菜单', 'WechatMenuList', NULL, b'0', '', b'0', b'0', '/modules/third/wechat/menu/WechatMenuList.vue', NULL, '/third/wechat/menu', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-24 11:06:05', 1414143554414059520, '2022-10-27 10:15:24', 1, 0);
-INSERT INTO `iam_perm_menu` VALUES (1584380824308097024, 'dax-pay', 1584379602188574720, '素材管理', 'WechatMediaList', NULL, b'0', '', b'0', b'0', '/modules/third/wechat/media/WechatMediaList.vue', NULL, '/third/wechat/media', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-24 11:06:40', 1414143554414059520, '2022-10-27 16:38:47', 1, 0);
-INSERT INTO `iam_perm_menu` VALUES (1584381134950834176, 'dax-pay', 1584379704122744832, '企微机器人', 'WeComRobotConfigList', NULL, b'0', '', b'0', b'0', '/modules/third/wecom/robot/WecomRobotConfigList.vue', NULL, '/third/wecom/robot', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-24 11:07:54', 1414143554414059520, '2022-11-12 20:58:25', 3, 0);
-INSERT INTO `iam_perm_menu` VALUES (1584381322184564736, 'dax-pay', 1584380087805091840, '钉钉机器人', 'DingRobotConfigList', NULL, b'0', '', b'0', b'0', '/modules/third/dingtalk/robot/DingRobotConfigList.vue', NULL, '/third/dingTalk/robot', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-24 11:08:38', 1414143554414059520, '2022-11-12 20:58:37', 6, 0);
-INSERT INTO `iam_perm_menu` VALUES (1599337250200440832, 'dax-pay', NULL, '关于', '', NULL, b'0', 'ant-design:info-circle-outlined', b'0', b'0', '', NULL, '/about/index', '', 99, 0, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-12-04 17:38:09', 1399985191002447872, '2024-01-14 23:09:56', 6, 0);
-INSERT INTO `iam_perm_menu` VALUES (1623494586215579648, 'dax-pay', 1552207982510706688, '行政区划', 'ChinaRegion', NULL, b'0', '', b'1', b'0', 'develop/region/ChinaRegionList', NULL, '/develop/region', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1399985191002447872, '2023-02-09 09:30:47', 1399985191002447872, '2023-02-09 17:50:05', 1, 0);
-INSERT INTO `iam_perm_menu` VALUES (1629039360928075776, 'dax-pay', 1582276341792985088, '可视化大屏', 'ProjectInfoList', NULL, b'0', '', b'0', b'0', '/modules/develop/report/ProjectInfoList', NULL, '/develop/report', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2023-02-24 16:43:44', 1414143554414059520, '2023-02-24 16:44:17', 1, 0);
-INSERT INTO `iam_perm_menu` VALUES (1631946120891707392, 'dax-pay', 1552207982510706688, '可视化大屏', 'ProjectInfoList', NULL, b'0', '', b'0', b'0', 'develop/report/ProjectInfoList', NULL, '/develop/report', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1399985191002447872, '2023-03-04 17:14:10', 1399985191002447872, '2023-03-04 17:14:10', 0, 0);
-INSERT INTO `iam_perm_menu` VALUES (1635274568758435840, 'dax-pay', 1582276341792985088, '数据集管理', 'DataResultSqlList', NULL, b'0', '', b'0', b'0', '/modules/develop/dataresult/DataResultSqlList', NULL, '/develop/dataresult', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2023-03-13 21:40:14', 1414143554414059520, '2023-09-18 14:26:51', 3, 0);
-INSERT INTO `iam_perm_menu` VALUES (1687369862646558720, 'dax-pay', 1582275984849326080, '短信管理', 'Sms', NULL, b'0', '', b'0', b'0', 'Layout', NULL, '/notice/sms', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2023-08-04 15:48:20', 1414143554414059520, '2023-08-04 15:48:32', 1, 0);
-INSERT INTO `iam_perm_menu` VALUES (1687370142234669056, 'dax-pay', 1687369862646558720, '短信配置', 'SmsChannelConfigList', NULL, b'0', '', b'0', b'0', '/modules/notice/sms/config/SmsChannelConfigList', NULL, '/notice/sms/config', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2023-08-04 15:49:26', 1414143554414059520, '2023-08-04 15:49:26', 0, 0);
-INSERT INTO `iam_perm_menu` VALUES (1687370277496778752, 'dax-pay', 1687369862646558720, '短信模板', 'SmsTemplateList', NULL, b'0', '', b'0', b'0', '/modules/notice/sms/template/SmsTemplateList', NULL, '/notice/sms/template', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2023-08-04 15:49:59', 1414143554414059520, '2023-08-04 15:50:38', 1, 0);
-INSERT INTO `iam_perm_menu` VALUES (1689181991598997504, 'dax-pay', 1582253152903843840, '敏感词管理', 'ChinaWord', NULL, b'0', '', b'0', b'0', '/modules/baseapi/chianword/ChinaWordList.vue', NULL, '/system/config/chinaword', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2023-08-09 15:49:05', 1414143554414059520, '2023-08-09 15:49:05', 0, 0);
-INSERT INTO `iam_perm_menu` VALUES (1690324070514782208, 'dax-pay', 1582276341792985088, '通用模板', 'GeneralTemplateList', NULL, b'0', '', b'0', b'0', '/modules/develop/template/GeneralTemplateList', NULL, '/develop/template', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2023-08-12 19:27:18', 1414143554414059520, '2023-08-12 19:31:26', 3, 0);
-INSERT INTO `iam_perm_menu` VALUES (1703665090038800384, 'dax-pay', 1582276341792985088, '在线SQL', 'SqlQueryInfo', NULL, b'0', '', b'0', b'0', '/modules/develop/query/SqlQueryInfo', NULL, '/develop/sqlquery', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2023-09-18 14:59:45', 1414143554414059520, '2023-09-18 14:59:45', 0, 0);
-INSERT INTO `iam_perm_menu` VALUES (1713931084759293952, 'dax-pay', 1582253306356649984, '密码安全', 'PassowrdSecurity', NULL, b'0', '', b'0', b'0', '/modules/system/security/password/PasswordSecurityConfig.vue', NULL, '/system/config/passowrd', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1399985191002447872, '2023-10-16 22:53:09', 1399985191002447872, '2023-10-16 22:58:59', 2, 0);
-INSERT INTO `iam_perm_menu` VALUES (1733829906427682816, 'dax-pay', 1582275875424129024, '在线用户', 'OnlineUserList', NULL, b'0', '', b'0', b'0', '/modules/monitor/user/online/OnlineUserList', NULL, '/monitor/user/online', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1399985191002447872, '2023-12-10 20:43:57', 1399985191002447872, '2023-12-10 20:43:57', 0, 0);
-INSERT INTO `iam_perm_menu` VALUES (1744271715476684800, 'dax-pay', NULL, '支付配置', 'PayConfig', NULL, b'0', 'ant-design:setting-filled', b'0', b'0', 'Layout', NULL, '/pay/config', '', 0, 0, NULL, b'1', b'0', b'0', b'0', NULL, 1399985191002447872, '2024-01-08 16:15:59', 1399985191002447872, '2024-01-09 15:38:06', 1, 0);
-INSERT INTO `iam_perm_menu` VALUES (1744276101384880128, 'dax-pay', 1744271715476684800, '支付通道', 'PayChannelConfigList', NULL, b'0', '', b'0', b'0', 'payment/system/channel/PayChannelConfigList', NULL, '/pay/config/channel', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1399985191002447872, '2024-01-08 16:33:24', 1399985191002447872, '2024-01-18 14:49:15', 3, 0);
-INSERT INTO `iam_perm_menu` VALUES (1744372631231995904, 'dax-pay', 1744271715476684800, '支付方式', 'PayWayInfoList', NULL, b'0', '', b'0', b'0', 'payment/system/way/PayWayInfoList', NULL, '/pay/config/way', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1399985191002447872, '2024-01-08 22:56:59', 1399985191002447872, '2024-01-18 14:50:55', 2, 0);
-INSERT INTO `iam_perm_menu` VALUES (1744624886658318336, 'dax-pay', 1744271715476684800, '支付接口', 'PayApiConfigList', NULL, b'0', '', b'0', b'0', 'payment/system/api/PayApiConfigList', NULL, '/pay/config/api', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1399985191002447872, '2024-01-09 15:39:21', 1399985191002447872, '2024-01-10 11:52:20', 2, 0);
-INSERT INTO `iam_perm_menu` VALUES (1744642856348520448, 'dax-pay', NULL, '订单管理', 'PayOrder', NULL, b'0', 'ant-design:wallet-outlined', b'0', b'0', 'Layout', NULL, '/pay/order', '', 0, 0, NULL, b'1', b'0', b'0', b'0', NULL, 1399985191002447872, '2024-01-09 16:50:46', 1399985191002447872, '2024-01-09 16:53:35', 3, 0);
-INSERT INTO `iam_perm_menu` VALUES (1744643265142165504, 'dax-pay', NULL, '数据记录', 'PayRecord', NULL, b'0', 'ant-design:profile-outlined', b'0', b'0', 'Layout', NULL, '/pay/record', '', 0, 0, NULL, b'1', b'0', b'0', b'0', NULL, 1399985191002447872, '2024-01-09 16:52:23', 1399985191002447872, '2024-01-09 16:53:50', 1, 0);
-INSERT INTO `iam_perm_menu` VALUES (1744930046228017152, 'dax-pay', 1744643265142165504, '回调记录', 'PayCallbackRecordList', NULL, b'0', '', b'0', b'0', 'payment/record/callback/PayCallbackRecordList', NULL, '/pay/record/callback', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1399985191002447872, '2024-01-10 11:51:57', 1399985191002447872, '2024-01-10 11:59:07', 10, 0);
-INSERT INTO `iam_perm_menu` VALUES (1745126072389963776, 'dax-pay', 1744643265142165504, '关闭记录', 'PayCloseRecordList', NULL, b'0', '', b'0', b'0', 'payment/record/close/PayCloseRecordList', NULL, '/pay/record/close', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1399985191002447872, '2024-01-11 00:50:53', 1399985191002447872, '2024-01-11 00:50:53', 0, 0);
-INSERT INTO `iam_perm_menu` VALUES (1745136155962347520, 'dax-pay', 1744643265142165504, '修复记录', 'PayRepairRecordList', NULL, b'0', '', b'0', b'0', 'payment/record/repair/PayRepairRecordList', NULL, '/pay/record/repair', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1399985191002447872, '2024-01-11 01:30:57', 1399985191002447872, '2024-01-11 01:30:57', 0, 0);
-INSERT INTO `iam_perm_menu` VALUES (1745143528663781376, 'dax-pay', 1744643265142165504, '同步记录', 'PaySyncRecordList', NULL, b'0', '', b'0', b'0', 'payment/record/sync/PaySyncRecordList', NULL, '/pay/record/sync', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1399985191002447872, '2024-01-11 02:00:15', 1399985191002447872, '2024-01-11 02:00:33', 1, 0);
-INSERT INTO `iam_perm_menu` VALUES (1745457623493496832, 'dax-pay', 1744642856348520448, '支付订单', 'PayOrderList', NULL, b'0', '', b'0', b'0', 'payment/order/pay/PayOrderList', NULL, '/pay/order/pay', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1399985191002447872, '2024-01-11 22:48:21', 1399985191002447872, '2024-01-11 22:48:21', 0, 0);
-INSERT INTO `iam_perm_menu` VALUES (1745457746529210368, 'dax-pay', 1744642856348520448, '退款订单', 'RefundOrderList', NULL, b'0', '', b'0', b'0', 'payment/order/refund/RefundOrderList.vue', NULL, '/pay/order/refund', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1399985191002447872, '2024-01-11 22:48:50', 1399985191002447872, '2024-01-21 22:50:29', 2, 0);
-INSERT INTO `iam_perm_menu` VALUES (1745822093382230016, 'dax-pay', 1744271715476684800, '通道配置', 'ChannelPayConfigList', NULL, b'0', '', b'0', b'0', 'payment/channel/config/ChannelPayConfigList', NULL, '/pay/config/channelpay', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1399985191002447872, '2024-01-12 22:56:38', 1399985191002447872, '2024-02-06 14:32:08', 2, 0);
-INSERT INTO `iam_perm_menu` VALUES (1746194891925561344, 'dax-pay', 1744271715476684800, '平台配置', 'PayPlatformConfig', NULL, b'0', '', b'0', b'0', 'payment/system/platform/PayPlatformConfig', NULL, '/pay/config/platform', '', -1, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1399985191002447872, '2024-01-13 23:38:00', 1399985191002447872, '2024-01-13 23:38:00', 0, 0);
-INSERT INTO `iam_perm_menu` VALUES (1749262518385082368, 'dax-pay', 1744642856348520448, '对账订单', 'ReconcileOrderList', NULL, b'0', '', b'0', b'0', 'payment/order/reconcile/order/ReconcileOrderList.vue', NULL, '/pay/order/reconcile/list', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1399985191002447872, '2024-01-22 10:47:39', 1399985191002447872, '2024-04-16 19:11:56', 5, 0);
-INSERT INTO `iam_perm_menu` VALUES (1758860876272861184, 'dax-pay', NULL, '支付通道', 'PayChannel', NULL, b'0', 'ant-design:align-left-outlined', b'0', b'0', 'Layout', NULL, '/pay/channel', '', 0, 0, NULL, b'1', b'0', b'0', b'0', NULL, 1399985191002447872, '2024-02-17 22:28:06', 1399985191002447872, '2024-02-17 22:28:06', 0, 0);
-INSERT INTO `iam_perm_menu` VALUES (1758861129311027200, 'dax-pay', 1758860876272861184, '钱包管理', 'WalletList', NULL, b'0', '', b'0', b'0', 'payment/channel/wallet/manager/WalletList', NULL, '/pay/channel/wallet', '', -1, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1399985191002447872, '2024-02-17 22:29:06', 1399985191002447872, '2024-03-05 22:09:12', 2, 0);
-INSERT INTO `iam_perm_menu` VALUES (1759192238594949120, 'dax-pay', 1758860876272861184, '储值卡管理', 'VoucherList', NULL, b'0', '', b'0', b'0', 'payment/channel/voucher/manager/VoucherList', NULL, '/pay/channel/voucher', '', -1, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1399985191002447872, '2024-02-18 20:24:49', 1399985191002447872, '2024-03-05 22:09:30', 2, 0);
-INSERT INTO `iam_perm_menu` VALUES (1759192520611561472, 'dax-pay', 1758860876272861184, '现金流水', 'CashRecordList', NULL, b'0', '', b'0', b'0', 'payment/channel/cash/record/CashRecordList', NULL, '/pay/channel/cash', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1399985191002447872, '2024-02-18 20:25:56', 1399985191002447872, '2024-02-18 23:35:22', 1, 0);
-INSERT INTO `iam_perm_menu` VALUES (1759768820429352960, 'dax-pay', NULL, '演示模块', '', NULL, b'0', 'ant-design:crown-outlined', b'0', b'0', 'Layout', NULL, '/pay/demo', '', 9, 0, NULL, b'1', b'0', b'0', b'0', NULL, 1399985191002447872, '2024-02-20 10:35:56', 1399985191002447872, '2024-02-20 10:35:56', 0, 0);
-INSERT INTO `iam_perm_menu` VALUES (1759769092698402816, 'dax-pay', 1759768820429352960, '收银台演示', '', NULL, b'0', '', b'0', b'0', '', NULL, 'outside:///cashier', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1399985191002447872, '2024-02-20 10:37:01', 1399985191002447872, '2024-02-20 10:37:01', 0, 0);
-INSERT INTO `iam_perm_menu` VALUES (1759861648606097408, 'dax-pay', 1758860876272861184, '支付宝流水', 'AlipayRecordList', NULL, b'0', '', b'0', b'0', 'payment/channel/alipay/record/AlipayRecordList', NULL, '/pay/channel/alipay', '', -1, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1399985191002447872, '2024-02-20 16:44:48', 1399985191002447872, '2024-02-20 16:44:48', 0, 0);
-INSERT INTO `iam_perm_menu` VALUES (1759865163772485632, 'dax-pay', 1758860876272861184, '微信流水', 'WechatPayRecordList', NULL, b'0', '', b'0', b'0', 'payment/channel/wechat/record/WechatPayRecordList', NULL, '/pay/channel/wecha', '', -1, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1399985191002447872, '2024-02-20 16:58:46', 1399985191002447872, '2024-02-20 17:00:08', 1, 0);
-INSERT INTO `iam_perm_menu` VALUES (1761429304959528960, 'dax-pay', NULL, '任务记录', 'PayTask', NULL, b'0', 'ant-design:clock-circle-outlined', b'0', b'0', 'Layout', NULL, '/pay/task', '', 0, 0, NULL, b'1', b'0', b'0', b'0', NULL, 1399985191002447872, '2024-02-25 00:34:07', 1399985191002447872, '2024-02-25 00:34:30', 1, 0);
-INSERT INTO `iam_perm_menu` VALUES (1761429682618855424, 'dax-pay', 1761429304959528960, '消息通知', 'ClientNoticeTaskList', NULL, b'0', '', b'0', b'0', 'payment/task/notice/ClientNoticeTaskList', NULL, '/pay/task/notice', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1399985191002447872, '2024-02-25 00:35:37', 1399985191002447872, '2024-02-25 00:35:37', 0, 0);
-INSERT INTO `iam_perm_menu` VALUES (1764638353289027584, 'dax-pay', 1749262518385082368, '对账单', 'ReconcileOrderList', NULL, b'0', '', b'0', b'0', 'payment/order/reconcile/order/ReconcileOrderList.vue', NULL, '/pay/order/reconcile/list', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1399985191002447872, '2024-03-04 21:05:43', 1399985191002447872, '2024-04-16 19:12:02', 1, 1);
-INSERT INTO `iam_perm_menu` VALUES (1764638678821543936, 'dax-pay', 1749262518385082368, '差异单', 'ReconcileDiffList', NULL, b'0', '', b'1', b'0', 'payment/order/reconcile/diff/ReconcileDiffList.vue', NULL, '/pay/order/reconcile/diff', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1399985191002447872, '2024-03-04 21:07:01', 1399985191002447872, '2024-04-16 19:12:06', 2, 1);
-INSERT INTO `iam_perm_menu` VALUES (1768203432981655552, 'dax-pay', 1758860876272861184, '云闪付流水', 'UnionPayRecordList', NULL, b'0', '', b'0', b'0', 'payment/channel/union/record/UnionPayRecordList', NULL, '/pay/channel/union', '', -1, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1399985191002447872, '2024-03-14 17:12:05', 1399985191002447872, '2024-03-14 17:12:05', 0, 0);
-INSERT INTO `iam_perm_menu` VALUES (1775089099078553600, 'dax-pay', NULL, '分账管理', 'Allocation', NULL, b'0', 'ant-design:sliders-twotone', b'0', b'0', 'Layout', NULL, '/pay/allocation', '', 0, 0, NULL, b'1', b'0', b'0', b'0', NULL, 1399985191002447872, '2024-04-02 17:13:15', 1399985191002447872, '2024-04-02 17:13:15', 0, 0);
-INSERT INTO `iam_perm_menu` VALUES (1775089820368818176, 'dax-pay', 1775089099078553600, '分账接收者', 'AllocationReceiverList', NULL, b'0', '', b'0', b'0', 'payment/allocation/receiver/AllocationReceiverList', NULL, '/pay/allocation/receiver', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1399985191002447872, '2024-04-02 17:16:07', 1399985191002447872, '2024-04-02 17:23:13', 2, 0);
-INSERT INTO `iam_perm_menu` VALUES (1775091561835450368, 'dax-pay', 1775089099078553600, '分账组', 'AllocationGroupList', NULL, b'0', '', b'0', b'0', 'payment/allocation/group/AllocationGroupList', NULL, '/pay/allocation/group', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1399985191002447872, '2024-04-02 17:23:03', 1399985191002447872, '2024-04-02 17:23:27', 1, 0);
-INSERT INTO `iam_perm_menu` VALUES (1777688382748700672, 'dax-pay', 1744642856348520448, '分账订单', 'AllocationOrderList', NULL, b'0', '', b'0', b'0', 'payment/order/allocation/AllocationOrderList', NULL, '/pay/order/allocation', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1399985191002447872, '2024-04-09 21:21:53', 1399985191002447872, '2024-04-09 21:21:53', 0, 0);
-
--- ----------------------------
--- Table structure for iam_perm_path
--- ----------------------------
-DROP TABLE IF EXISTS `iam_perm_path`;
-CREATE TABLE `iam_perm_path`  (
-  `id` bigint(20) NOT NULL,
-  `code` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '权限标识',
-  `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '权限名称',
-  `request_type` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '请求类型',
-  `path` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '请求路径',
-  `group_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '分组名称',
-  `enable` bit(1) NOT NULL COMMENT '启用状态',
-  `generate` bit(1) NOT NULL COMMENT '是否通过系统生成的权限',
-  `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '描述',
-  `creator` bigint(20) NULL DEFAULT NULL,
-  `create_time` datetime(6) NULL DEFAULT NULL,
-  `last_modifier` bigint(20) NULL DEFAULT NULL,
-  `last_modified_time` datetime(6) NULL DEFAULT NULL,
-  `deleted` bit(1) NOT NULL,
-  `version` int(11) NOT NULL,
-  PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '权限_请求' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of iam_perm_path
--- ----------------------------
-INSERT INTO `iam_perm_path` VALUES (1757297527147974656, 'DynamicDataSourceController#existsByCode', '编码是否被使用', 'GET', '/dynamic/source/existsByCode', '动态数据源管理', b'1', b'1', '动态数据源管理 编码是否被使用', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974658, 'QuartzJobController#stop', '停止', 'POST', '/quartz/stop', '定时任务', b'1', b'1', '定时任务 停止', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974659, 'RoleController#page', '分页查询角色', 'GET', '/role/page', '角色管理', b'1', b'1', '角色管理 分页查询角色', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974660, 'DictionaryItemController#delete', '删除字典项', 'DELETE', '/dict/item/delete', '字典项', b'1', b'1', '字典项 删除字典项', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974661, 'UserAssistController#validatePhoneChangeCaptcha', '验证改/绑定手机验证码', 'GET', '/user/validatePhoneChangeCaptcha', '用户操作支撑服务', b'1', b'1', '用户操作支撑服务 验证改/绑定手机验证码', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974662, 'PayRefundOrderController#refund', '手动发起退款', 'POST', '/order/refund/refund', '支付退款控制器', b'1', b'1', '支付退款控制器 手动发起退款', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974663, 'UserDataRoleController#findDataRoleByUser', '根据用户ID获取到数据角色列表', 'GET', '/user/data/role/findDataRoleByUser', '用户数据角色配置', b'1', b'1', '用户数据角色配置 根据用户ID获取到数据角色列表', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974664, 'FIleUpLoadController#preview', '预览文件(流量会经过后端)', 'GET', '/file/preview/{id}', '文件上传', b'1', b'1', '文件上传 预览文件(流量会经过后端)', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974665, 'UserAssistController#sendPhoneForgetCaptcha', '发送找回密码手机验证码', 'POST', '/user/sendPhoneForgetCaptcha', '用户操作支撑服务', b'1', b'1', '用户操作支撑服务 发送找回密码手机验证码', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974666, 'DynamicDataSourceController#findById', '通过ID查询', 'GET', '/dynamic/source/findById', '动态数据源管理', b'1', b'1', '动态数据源管理 通过ID查询', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974667, 'GeneralTemplateController#findByCode', '通过Code查询', 'GET', '/general/template/findByCode', '通用模板管理', b'1', b'1', '通用模板管理 通过Code查询', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974668, 'AlipayConfigController#update', '更新', 'POST', '/alipay/config/update', '支付宝配置', b'1', b'1', '支付宝配置 更新', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974669, 'UniPayController#refund', '统一退款', 'POST', '/unipay/refund', '统一支付接口', b'1', b'1', '统一支付接口 统一退款', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974670, 'DynamicFormController#existsByCode', '编码是否被使用', 'GET', '/dynamic/form/existsByCode', '动态表单', b'1', b'1', '动态表单 编码是否被使用', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974671, 'TestController#wxcs', '微信回调测试', 'GET', '/test/wxcs/', '测试', b'1', b'1', '测试 微信回调测试', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-04-16 20:47:44.531000', b'1', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974672, 'TestController#wxcs', '微信回调测试', 'GET', '/test/wxcs', '测试', b'1', b'1', '测试 微信回调测试', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-04-16 20:47:44.526000', b'1', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974673, 'MessageTemplateController#page', '分页', 'GET', '/message/template/page', '消息模板', b'1', b'1', '消息模板 分页', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974674, 'GeneralTemplateController#findAll', '查询所有', 'GET', '/general/template/findAll', '通用模板管理', b'1', b'1', '通用模板管理 查询所有', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974675, 'QuartzJobLogController#findById', '单条', 'GET', '/quartz/log/findById', '定时任务执行日志', b'1', b'1', '定时任务执行日志 单条', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974676, 'UserAdminController#ban', '封禁用户', 'POST', '/user/admin/ban', '管理用户(管理员级别)', b'1', b'1', '管理用户(管理员级别) 封禁用户', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974677, 'ChinaWordController#findAll', '查询所有', 'GET', '/chinaword/findAll', '敏感词管理', b'1', b'1', '敏感词管理 查询所有', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974678, 'DeptController#deleteAndChildren', '强制级联删除', 'DELETE', '/dept/deleteAndChildren', '部门管理', b'1', b'1', '部门管理 强制级联删除', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974679, 'ChinaWordController#local', '批量导入', 'POST', '/chinaword/importBatch', '敏感词管理', b'1', b'1', '敏感词管理 批量导入', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974680, 'TokenEndpoint#logout', '退出', 'POST', '/token/logout', '认证相关', b'1', b'1', '认证相关 退出', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974681, 'UserThirdController#findById', '获取详情', 'POST', '/user/third/findById', '用户三方登录管理', b'1', b'1', '用户三方登录管理 获取详情', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974682, 'MailConfigController#existsByCode', '编码是否被使用', 'GET', '/mail/config/existsByCode', '邮箱配置', b'1', b'1', '邮箱配置 编码是否被使用', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974683, 'GeneralTemplateController#add', '添加', 'POST', '/general/template/add', '通用模板管理', b'1', b'1', '通用模板管理 添加', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974684, 'SystemParamController#delete', '删除', 'DELETE', '/system/param/delete', '系统参数', b'1', b'1', '系统参数 删除', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974685, 'QuartzJobController#add', '添加', 'POST', '/quartz/add', '定时任务', b'1', b'1', '定时任务 添加', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974686, 'PermPathController#deleteBatch', '批量删除', 'DELETE', '/perm/path/deleteBatch', '请求权限管理', b'1', b'1', '请求权限管理 批量删除', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974687, 'DictionaryItemController#findAllByEnable', '获取启用的字典项列表', 'GET', '/dict/item/findAllByEnable', '字典项', b'1', b'1', '字典项 获取启用的字典项列表', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974688, 'UserInfoController#updatePhone', '修改手机号', 'POST', '/user/updatePhone', '用户管理', b'1', b'1', '用户管理 修改手机号', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974689, 'DynamicFormController#delete', '删除', 'DELETE', '/dynamic/form/delete', '动态表单', b'1', b'1', '动态表单 删除', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974690, 'TestController#lock2', '锁测试2', 'GET', '/test/lock2', '测试', b'1', b'1', '测试 锁测试2', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974691, 'PayCloseRecordController#findById', '查询单条', 'GET', '/record/close/findById', '支付订单关闭记录', b'1', b'1', '支付订单关闭记录 查询单条', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974692, 'WeChatPayConfigController#update', '更新', 'POST', '/wechat/pay/config/update', '微信支付配置', b'1', b'1', '微信支付配置 更新', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974693, 'UserRoleController#findRolesByUser', '根据用户ID获取到角色集合', 'GET', '/user/role/findRolesByUser', '用户角色管理', b'1', b'1', '用户角色管理 根据用户ID获取到角色集合', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974694, 'WechatNoticeConfigController#update', '更新微信消息通知配置', 'POST', '/wx/notice/update', '微信消息通知配置', b'1', b'1', '微信消息通知配置 更新微信消息通知配置', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974695, 'WecomRobotConfigController#add', '新增机器人配置', 'POST', '/wecom/robot/config/add', '企业微信机器人配置', b'1', b'1', '企业微信机器人配置 新增机器人配置', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974696, 'PermMenuController#menuTree', '获取菜单树', 'GET', '/perm/menu/menuTree', '菜单和权限码', b'1', b'1', '菜单和权限码 获取菜单树', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974697, 'DataResultController#add', '新建', 'POST', '/data/result/add', 'SQL查询', b'1', b'1', 'SQL查询 新建', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974698, 'UserAdminController#unlock', '解锁用户', 'POST', '/user/admin/unlock', '管理用户(管理员级别)', b'1', b'1', '管理用户(管理员级别) 解锁用户', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974699, 'DynamicFormController#page', '分页查询', 'GET', '/dynamic/form/page', '动态表单', b'1', b'1', '动态表单 分页查询', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974700, 'UniPayController#simpleRefund', '简单退款', 'POST', '/unipay/simpleRefund', '统一支付接口', b'1', b'1', '统一支付接口 简单退款', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974701, 'DynamicDataSourceController#testConnection', '测试连接(根据参数)', 'POST', '/dynamic/source/testConnection', '动态数据源管理', b'1', b'1', '动态数据源管理 测试连接(根据参数)', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974702, 'SystemParamController#update', '更新', 'POST', '/system/param/update', '系统参数', b'1', b'1', '系统参数 更新', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974703, 'ForwardH5Controller#toH5', 'toH5', 'GET', '/h5/', 'ForwardH5Controller', b'1', b'1', 'ForwardH5Controller toH5', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974704, 'OpenApiWebMvcResource#openapiYaml', 'openapiYaml', 'GET', '/v3/api-docs.yaml', 'OpenApiWebMvcResource', b'1', b'1', 'OpenApiWebMvcResource openapiYaml', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974705, 'SmsChannelConfigController#add', '添加', 'POST', '/sms/config/add', '短信渠道配置', b'1', b'1', '短信渠道配置 添加', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974706, 'DataVersionLogController#findById', '获取', 'GET', '/log/dataVersion/findById', '数据版本日志', b'1', b'1', '数据版本日志 获取', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974707, 'MailConfigController#add', '增加新邮箱配置', 'POST', '/mail/config/add', '邮箱配置', b'1', b'1', '邮箱配置 增加新邮箱配置', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974708, 'UserInfoController#updateBaseInfo', '修改用户基础信息', 'POST', '/user/updateBaseInfo', '用户管理', b'1', b'1', '用户管理 修改用户基础信息', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974709, 'UserInfoController#bindPhone', '绑定手机', 'POST', '/user/bindPhone', '用户管理', b'1', b'1', '用户管理 绑定手机', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974710, 'NcDemoController#sendImageNotice', '企微图片消息测试', 'POST', '/nc/test/sendImageNotice', 'nc测试', b'1', b'1', 'nc测试 企微图片消息测试', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974711, 'PermPathController#batchUpdateEnable', '批量更新状态', 'POST', '/perm/path/batchUpdateEnable', '请求权限管理', b'1', b'1', '请求权限管理 批量更新状态', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974713, 'WeChatPortalController#post', 'post', 'POST', '/wechat/portal', '微信接入入口', b'1', b'1', '微信接入入口 post', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974714, 'UniPayController#simplePay', '简单下单', 'POST', '/unipay/simplePay', '统一支付接口', b'1', b'1', '统一支付接口 简单下单', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974715, 'SmsTemplateController#findAll', '查询所有', 'GET', '/sms/template/findAll', '短信模板配置', b'1', b'1', '短信模板配置 查询所有', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974716, 'MessageTemplateController#existsByCode', '编码是否被使用', 'GET', '/message/template/existsByCode', '消息模板', b'1', b'1', '消息模板 编码是否被使用', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974717, 'MailConfigController#updateMailConfig', '更新邮箱配置', 'POST', '/mail/config/update', '邮箱配置', b'1', b'1', '邮箱配置 更新邮箱配置', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974718, 'UserInfoController#updatePassword', '修改密码', 'POST', '/user/updatePassword', '用户管理', b'1', b'1', '用户管理 修改密码', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974719, 'DictionaryItemController#existsByCode', '编码是否被使用', 'GET', '/dict/item/existsByCode', '字典项', b'1', b'1', '字典项 编码是否被使用', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974720, 'SmsChannelConfigController#update', '修改', 'POST', '/sms/config/update', '短信渠道配置', b'1', b'1', '短信渠道配置 修改', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974721, 'DataRoleController#existsByName', '名称是否被使用(不包含自己)', 'GET', '/data/role/existsByNameNotId', '数据角色配置', b'1', b'1', '数据角色配置 名称是否被使用(不包含自己)', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974722, 'DeptController#add', '添加', 'POST', '/dept/add', '部门管理', b'1', b'1', '部门管理 添加', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974723, 'FIleUpLoadController#local', '上传', 'POST', '/file/upload', '文件上传', b'1', b'1', '文件上传 上传', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974724, 'PermPathController#findById', '获取详情', 'GET', '/perm/path/findById', '请求权限管理', b'1', b'1', '请求权限管理 获取详情', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974725, 'DeptController#delete', '普通删除', 'DELETE', '/dept/delete', '部门管理', b'1', b'1', '部门管理 普通删除', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974726, 'CashierController#wxAuthCallback', '微信授权回调页面', 'GET', '/demo/cashier/wxAuthCallback', '结算台演示', b'1', b'1', '结算台演示 微信授权回调页面', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974727, 'DataResultController#update', '修改', 'POST', '/data/result/update', 'SQL查询', b'1', b'1', 'SQL查询 修改', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974728, 'UserAdminController#getByEmail', '根据邮箱查询用户', 'GET', '/user/admin/getByEmail', '管理用户(管理员级别)', b'1', b'1', '管理用户(管理员级别) 根据邮箱查询用户', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974729, 'LoginTypeController#findAll', '查询所有的登录方式', 'GET', '/loginType/findAll', '登录方式管理', b'1', b'1', '登录方式管理 查询所有的登录方式', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974730, 'PayRepairRecordController#findById', '查询单条', 'GET', '/record/repair/findById', '支付修复记录', b'1', b'1', '支付修复记录 查询单条', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974731, 'UserAdminController#restartPasswordBatch', '批量重置密码', 'POST', '/user/admin/restartPasswordBatch', '管理用户(管理员级别)', b'1', b'1', '管理用户(管理员级别) 批量重置密码', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974732, 'UserInfoController#findUsernameByPhoneCaptcha', '根据手机验证码查询账号', 'GET', '/user/findUsernameByPhoneCaptcha', '用户管理', b'1', b'1', '用户管理 根据手机验证码查询账号', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974733, 'DynamicFormController#existsByCode', '编码是否被使用(不包含自己)', 'GET', '/dynamic/form/existsByCodeNotId', '动态表单', b'1', b'1', '动态表单 编码是否被使用(不包含自己)', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974734, 'ChinaWordController#add', '添加', 'POST', '/chinaword/add', '敏感词管理', b'1', b'1', '敏感词管理 添加', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974735, 'LoginTypeController#delete', '删除登录方式', 'DELETE', '/loginType/delete', '登录方式管理', b'1', b'1', '登录方式管理 删除登录方式', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974736, 'DataVersionLogController#page', '分页', 'GET', '/log/dataVersion/page', '数据版本日志', b'1', b'1', '数据版本日志 分页', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974737, 'AggregateController#createUrl', '创建聚合支付码', 'POST', '/demo/aggregate/createUrl', '聚合支付', b'1', b'1', '聚合支付 创建聚合支付码', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974738, 'MailConfigController#findById', '通过 id 获取指定邮箱配置', 'GET', '/mail/config/findById', '邮箱配置', b'1', b'1', '邮箱配置 通过 id 获取指定邮箱配置', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974739, 'UserAssistController#validateCurrentChangeEmailCaptcha', '验证当前用户发送更改邮箱验证码', 'GET', '/user/validateCurrentChangeEmailCaptcha', '用户操作支撑服务', b'1', b'1', '用户操作支撑服务 验证当前用户发送更改邮箱验证码', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974740, 'ClientController#existsByCode', '编码是否被使用', 'GET', '/client/existsByCode', '认证终端', b'1', b'1', '认证终端 编码是否被使用', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974741, 'UserAdminController#findById', '根据用户id查询用户', 'GET', '/user/admin/findById', '管理用户(管理员级别)', b'1', b'1', '管理用户(管理员级别) 根据用户id查询用户', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974742, 'PayRefundOrderController#page', '分页查询', 'GET', '/order/refund/page', '支付退款控制器', b'1', b'1', '支付退款控制器 分页查询', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974743, 'RoleMenuController#findTreeByRole', '获取当前角色下可见的菜单和权限码树(分配时用)', 'GET', '/role/menu/findTreeByRole', '角色菜单权限关系', b'1', b'1', '角色菜单权限关系 获取当前角色下可见的菜单和权限码树(分配时用)', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974744, 'WeChatPayConfigController#findPayWays', '微信支持支付方式', 'GET', '/wechat/pay/config/findPayWays', '微信支付配置', b'1', b'1', '微信支付配置 微信支持支付方式', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974745, 'AuthAssistController#sendSmsCaptcha', '发送短信验证码', 'POST', '/auth/sendSmsCaptcha', '认证支撑接口', b'1', b'1', '认证支撑接口 发送短信验证码', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974746, 'WeChatPayConfigController#toBase64', '将文件转换成base64', 'POST', '/wechat/pay/config/toBase64', '微信支付配置', b'1', b'1', '微信支付配置 将文件转换成base64', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974747, 'MailConfigController#setUpActivity', '设置启用的邮箱配置', 'POST', '/mail/config/setUpActivity', '邮箱配置', b'1', b'1', '邮箱配置 设置启用的邮箱配置', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974748, 'UserDeptController#findIdsByUser', '根据用户ID获取到部门id集合', 'GET', '/user/dept/findIdsByUser', '用户部门关联关系', b'1', b'1', '用户部门关联关系 根据用户ID获取到部门id集合', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974749, 'OperateLogController#findById', '获取', 'GET', '/log/operate/findById', '操作日志', b'1', b'1', '操作日志 获取', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974750, 'UserAdminController#getByPhone', '根据手机号查询用户', 'GET', '/user/admin/getByPhone', '管理用户(管理员级别)', b'1', b'1', '管理用户(管理员级别) 根据手机号查询用户', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974751, 'UserThirdController#getThirdBindInfo', '获取绑定详情', 'GET', '/user/third/getThirdBindInfo', '用户三方登录管理', b'1', b'1', '用户三方登录管理 获取绑定详情', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974752, 'DynamicDataSourceController#existsByCode', '编码是否被使用(不包含自己)', 'GET', '/dynamic/source/existsByCodeNotId', '动态数据源管理', b'1', b'1', '动态数据源管理 编码是否被使用(不包含自己)', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974753, 'SmsTemplateController#update', '修改', 'POST', '/sms/template/update', '短信模板配置', b'1', b'1', '短信模板配置 修改', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974754, 'RoleController#add', '添加角色(返回角色对象)', 'POST', '/role/add', '角色管理', b'1', b'1', '角色管理 添加角色(返回角色对象)', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974755, 'WechatNoticeConfigController#getConfig', '获取微信消息通知配置', 'GET', '/wx/notice/getConfig', '微信消息通知配置', b'1', b'1', '微信消息通知配置 获取微信消息通知配置', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974756, 'LoginLogController#findById', '获取', 'GET', '/log/login/findById', '登录日志', b'1', b'1', '登录日志 获取', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974757, 'UserRoleController#saveAssign', '给用户分配角色', 'POST', '/user/role/saveAssign', '用户角色管理', b'1', b'1', '用户角色管理 给用户分配角色', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974758, 'DictionaryController#findById', '根据id获取', 'GET', '/dict/findById', '字典', b'1', b'1', '字典 根据id获取', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974759, 'PermPathController#findAll', '权限列表', 'GET', '/perm/path/findAll', '请求权限管理', b'1', b'1', '请求权限管理 权限列表', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974760, 'DingRobotConfigController#existsByCode', '编码是否被使用(不包含自己)', 'GET', '/ding/robot/config/existsByCodeNotId', '钉钉机器人配置', b'1', b'1', '钉钉机器人配置 编码是否被使用(不包含自己)', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974761, 'GeneralTemplateController#deleteBatch', '批量删除', 'DELETE', '/general/template/deleteBatch', '通用模板管理', b'1', b'1', '通用模板管理 批量删除', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974762, 'UserInfoController#forgetPasswordByEmail', '通过邮箱重置密码', 'POST', '/user/forgetPasswordByEmail', '用户管理', b'1', b'1', '用户管理 通过邮箱重置密码', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974763, 'GeneralTemplateController#update', '修改', 'POST', '/general/template/update', '通用模板管理', b'1', b'1', '通用模板管理 修改', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974764, 'DictionaryItemController#update', '修改字典项(返回字典项对象)', 'POST', '/dict/item/update', '字典项', b'1', b'1', '字典项 修改字典项(返回字典项对象)', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974765, 'SystemParamController#add', '添加', 'POST', '/system/param/add', '系统参数', b'1', b'1', '系统参数 添加', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974766, 'BaseApiController#authEcho', '回声测试(必须要进行登录)', 'GET', '/auth/echo', '系统基础接口', b'1', b'1', '系统基础接口 回声测试(必须要进行登录)', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974767, 'DatabaseTableController#findColumnByTableName', '获取数据表行信息', 'GET', '/gen/table/findColumnByTableName', '数据库表信息', b'1', b'1', '数据库表信息 获取数据表行信息', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974768, 'DictionaryItemController#existsByCode', '编码是否被使用(不包含自己)', 'GET', '/dict/item/existsByCodeNotId', '字典项', b'1', b'1', '字典项 编码是否被使用(不包含自己)', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974769, 'PayApiConfigController#findAll', '获取全部', 'GET', '/pay/api/config/findAll', '支付接口配置', b'1', b'1', '支付接口配置 获取全部', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974770, 'ChinaWordController#verify', '测试敏感词效果', 'POST', '/chinaword/verify', '敏感词管理', b'1', b'1', '敏感词管理 测试敏感词效果', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974771, 'DataRoleController#page', '分页', 'GET', '/data/role/page', '数据角色配置', b'1', b'1', '数据角色配置 分页', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974772, 'UserInfoController#getUserSecurityInfo', '查询用户安全信息', 'GET', '/user/getUserSecurityInfo', '用户管理', b'1', b'1', '用户管理 查询用户安全信息', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974773, 'ChinaRegionController#findAllProvinceAndCityAndArea', ' 获取省市区县三级联动列表', 'GET', '/china/region/findAllProvinceAndCityAndArea', '中国行政区划', b'1', b'1', '中国行政区划  获取省市区县三级联动列表', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974774, 'DictionaryItemController#pageByDictionaryId', '分页查询指定字典下的字典项', 'GET', '/dict/item/pageByDictionaryId', '字典项', b'1', b'1', '字典项 分页查询指定字典下的字典项', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974775, 'WeChatMediaController#pageNews', '图文素材分页', 'GET', '/wechat/media/pageNews', '微信素材管理', b'1', b'1', '微信素材管理 图文素材分页', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974776, 'PermMenuController#resourceList', '资源(权限码)列表', 'GET', '/perm/menu/resourceList', '菜单和权限码', b'1', b'1', '菜单和权限码 资源(权限码)列表', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974777, 'WeChatPayConfigController#getConfig', '获取配置', 'GET', '/wechat/pay/config/getConfig', '微信支付配置', b'1', b'1', '微信支付配置 获取配置', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974778, 'AlipayConfigController#findPayWays', '支付宝支持支付方式', 'GET', '/alipay/config/findPayWays', '支付宝配置', b'1', b'1', '支付宝配置 支付宝支持支付方式', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974779, 'PayRefundOrderController#findChannelById', '查询通道退款订单详情', 'GET', '/order/refund/findChannelById', '支付退款控制器', b'1', b'1', '支付退款控制器 查询通道退款订单详情', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974780, 'UserInfoController#forgetPasswordByPhone', '通过手机号重置密码', 'POST', '/user/forgetPasswordByPhone', '用户管理', b'1', b'1', '用户管理 通过手机号重置密码', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974781, 'DataRoleController#saveDeptAssign', '保存关联部门', 'POST', '/data/role/saveDeptAssign', '数据角色配置', b'1', b'1', '数据角色配置 保存关联部门', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974782, 'PayOrderController#getExtraById', '查询支付订单扩展信息', 'GET', '/order/pay/getExtraById', '支付订单控制器', b'1', b'1', '支付订单控制器 查询支付订单扩展信息', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974783, 'UserInfoController#existsPhone', '手机号是否被使用(不包含自己)', 'GET', '/user/existsPhoneNotId', '用户管理', b'1', b'1', '用户管理 手机号是否被使用(不包含自己)', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974784, 'LoginTypeController#add', '添加登录方式', 'POST', '/loginType/add', '登录方式管理', b'1', b'1', '登录方式管理 添加登录方式', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974785, 'PermMenuController#delete', '删除', 'DELETE', '/perm/menu/delete', '菜单和权限码', b'1', b'1', '菜单和权限码 删除', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974786, 'RoleController#findAll', '查询所有的角色', 'GET', '/role/findAll', '角色管理', b'1', b'1', '角色管理 查询所有的角色', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974787, 'MessageTemplateController#findById', '获取详情', 'GET', '/message/template/findById', '消息模板', b'1', b'1', '消息模板 获取详情', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974788, 'DataResultController#page', '分页查询', 'GET', '/data/result/page', 'SQL查询', b'1', b'1', 'SQL查询 分页查询', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974789, 'NcDemoController#sendWeComMsg', '企微消息测试', 'POST', '/nc/test/sendWeComMsg', 'nc测试', b'1', b'1', 'nc测试 企微消息测试', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974790, 'DictionaryController#existsByCode', '编码是否被使用', 'GET', '/dict/existsByCode', '字典', b'1', b'1', '字典 编码是否被使用', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974791, 'UserInfoController#getLoginAfterUserInfo', '登录后获取用户信息', 'GET', '/user/getLoginAfterUserInfo', '用户管理', b'1', b'1', '用户管理 登录后获取用户信息', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974792, 'UserInfoController#bindEmail', '绑定邮箱', 'POST', '/user/bindEmail', '用户管理', b'1', b'1', '用户管理 绑定邮箱', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974793, 'OnlineUserController#pageByLogin', '登录用户分页', 'GET', '/online/user/pageByLogin', '在线用户', b'1', b'1', '在线用户 登录用户分页', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974794, 'PasswordSecurityConfigController#addOrUpdate', '新增或添加密码安全配置', 'POST', '/security/password/addOrUpdate', '密码安全策略', b'1', b'1', '密码安全策略 新增或添加密码安全配置', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974795, 'UserInfoController#getUserBaseInfo', '查询用户基础信息', 'GET', '/user/getUserBaseInfo', '用户管理', b'1', b'1', '用户管理 查询用户基础信息', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974796, 'DataRoleController#findUsersByDataRoleId', '获取关联的用户列表', 'GET', '/data/role/findUsersByDataRoleId', '数据角色配置', b'1', b'1', '数据角色配置 获取关联的用户列表', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.138000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527147974797, 'SiteMessageController#findById', '消息详情', 'GET', '/site/message/findById', '站内信', b'1', b'1', '站内信 消息详情', 1399985191002447872, '2024-02-13 14:55:54.138000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152168960, 'RolePathController#findPathsByRole', '获取当前用户角色下可见的请求权限列表(分配时用)', 'GET', '/role/path/findPathsByRole', '角色请求权限消息关系', b'1', b'1', '角色请求权限消息关系 获取当前用户角色下可见的请求权限列表(分配时用)', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152168961, 'UserAssistController#sendPhoneChangeCaptcha', '发送更改/绑定手机号验证码', 'POST', '/user/sendPhoneChangeCaptcha', '用户操作支撑服务', b'1', b'1', '用户操作支撑服务 发送更改/绑定手机号验证码', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152168962, 'WeChatMenuController#findAll', '查询所有', 'GET', '/wechat/menu/findAll', '微信菜单管理', b'1', b'1', '微信菜单管理 查询所有', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152168963, 'DictionaryItemController#findByDictionaryId', '查询指定字典ID下的所有字典项', 'GET', '/dict/item/findByDictionaryId', '字典项', b'1', b'1', '字典项 查询指定字典ID下的所有字典项', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152168964, 'SystemParamController#existsByKeyNotId', '判断编码是否存在(不包含自己)', 'GET', '/system/param/existsByKeyNotId', '系统参数', b'1', b'1', '系统参数 判断编码是否存在(不包含自己)', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152168965, 'MessageTemplateController#delete', '删除', 'DELETE', '/message/template/delete', '消息模板', b'1', b'1', '消息模板 删除', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152168966, 'WeChatMenuController#update', '修改', 'POST', '/wechat/menu/update', '微信菜单管理', b'1', b'1', '微信菜单管理 修改', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152168967, 'ChinaWordController#getTemplate', '获取模板', 'GET', '/chinaword/getTemplate', '敏感词管理', b'1', b'1', '敏感词管理 获取模板', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152168968, 'DynamicFormController#findById', '通过ID查询', 'GET', '/dynamic/form/findById', '动态表单', b'1', b'1', '动态表单 通过ID查询', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152168969, 'SmsChannelConfigController#findByCode', '通过Code查询', 'GET', '/sms/config/findByCode', '短信渠道配置', b'1', b'1', '短信渠道配置 通过Code查询', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152168970, 'UserInfoController#existsPhone', '手机号是否被使用', 'GET', '/user/existsPhone', '用户管理', b'1', b'1', '用户管理 手机号是否被使用', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152168971, 'DataRoleController#getDeptIds', '获取关联部门id', 'GET', '/data/role/getDeptIds', '数据角色配置', b'1', b'1', '数据角色配置 获取关联部门id', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152168972, 'PasswordSecurityConfigController#getDefault', '获取配置', 'GET', '/security/password/getDefault', '密码安全策略', b'1', b'1', '密码安全策略 获取配置', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152168973, 'ClientController#update', '修改', 'POST', '/client/update', '认证终端', b'1', b'1', '认证终端 修改', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152168974, 'AggregateController#wxAuthCallback', '微信授权回调页面', 'GET', '/demo/aggregate/wxAuthCallback', '聚合支付', b'1', b'1', '聚合支付 微信授权回调页面', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152168975, 'LoginTypeController#findById', '通过ID查询登录方式', 'GET', '/loginType/findById', '登录方式管理', b'1', b'1', '登录方式管理 通过ID查询登录方式', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152168976, 'DingRobotConfigController#findById', '获取详情', 'GET', '/ding/robot/config/findById', '钉钉机器人配置', b'1', b'1', '钉钉机器人配置 获取详情', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152168977, 'SiteMessageController#pageBySender', '发送消息分页', 'GET', '/site/message/pageBySender', '站内信', b'1', b'1', '站内信 发送消息分页', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152168978, 'ThirdLoginController#toLoginUrl', '跳转到登陆页', 'GET', '/auth/third/toLoginUrl/{loginType}', '三方登录', b'1', b'1', '三方登录 跳转到登陆页', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152168979, 'RoleMenuController#save', '保存请求权限关系', 'POST', '/role/menu/save', '角色菜单权限关系', b'1', b'1', '角色菜单权限关系 保存请求权限关系', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152168980, 'PayWayInfoController#findById', '根据ID获取', 'GET', '/pay/way/info/findById', '支付方式管理', b'1', b'1', '支付方式管理 根据ID获取', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152168981, 'UserInfoController#register', '注册账号', 'POST', '/user/register', '用户管理', b'1', b'1', '用户管理 注册账号', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152168982, 'LoginTypeController#existsByCode', '编码是否被使用(不包含自己)', 'GET', '/loginType/existsByCodeNotId', '登录方式管理', b'1', b'1', '登录方式管理 编码是否被使用(不包含自己)', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152168983, 'ChinaWordController#page', '分页查询', 'GET', '/chinaword/page', '敏感词管理', b'1', b'1', '敏感词管理 分页查询', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152168984, 'DatabaseTableController#findAll', '表列表', 'GET', '/gen/table/findAll', '数据库表信息', b'1', b'1', '数据库表信息 表列表', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152168985, 'UniPayAssistController#getWxAccessToken', '获取微信AccessToken数据', 'POST', '/unipay/assist/getWxAccessToken', '支付支撑接口', b'1', b'1', '支付支撑接口 获取微信AccessToken数据', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152168986, 'WeChatTemplateController#existsByCode', '编码是否被使用(不包含自己)', 'GET', '/wechat/template/existsByCodeNotId', '微信模板消息', b'1', b'1', '微信模板消息 编码是否被使用(不包含自己)', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152168987, 'DynamicDataSourceController#addDynamicDataSourceById', '根据id进行添加到连接池中', 'POST', '/dynamic/source/addDynamicDataSourceById', '动态数据源管理', b'1', b'1', '动态数据源管理 根据id进行添加到连接池中', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152168988, 'LoginLogController#deleteByDay', '清除指定天数之前的日志', 'DELETE', '/log/login/deleteByDay', '登录日志', b'1', b'1', '登录日志 清除指定天数之前的日志', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152168989, 'ClientController#existsByCode', '编码是否被使用(不包含自己)', 'GET', '/client/existsByCodeNotId', '认证终端', b'1', b'1', '认证终端 编码是否被使用(不包含自己)', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152168990, 'UniQueryController#queryRefundOrder', '查询退款订单', 'POST', '/uni/query/refundOrder', '统一查询接口', b'1', b'1', '统一查询接口 查询退款订单', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152168991, 'SiteMessageController#listByReceiveNotRead', '小程序获取未读的接收消息标题列表', 'GET', '/site/message/listByReceiveNotRead', '站内信', b'1', b'1', '站内信 小程序获取未读的接收消息标题列表', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152168992, 'WeChatMenuController#add', '添加', 'POST', '/wechat/menu/add', '微信菜单管理', b'1', b'1', '微信菜单管理 添加', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152168993, 'PasswordSecurityConfigController#check', '登录后检查密码相关的情况', 'GET', '/security/password/check', '密码安全策略', b'1', b'1', '密码安全策略 登录后检查密码相关的情况', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152168994, 'PayOrderController#syncById', '同步支付状态', 'POST', '/order/pay/syncById', '支付订单控制器', b'1', b'1', '支付订单控制器 同步支付状态', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152168995, 'GeneralTemplateController#existsByCode', '编码是否被使用(不包含自己)', 'GET', '/general/template/existsByCodeNotId', '通用模板管理', b'1', b'1', '通用模板管理 编码是否被使用(不包含自己)', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152168996, 'LoginTypeController#page', '分页查询登录方式', 'GET', '/loginType/page', '登录方式管理', b'1', b'1', '登录方式管理 分页查询登录方式', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152168997, 'AggregateController#aliH5Pay', '支付宝通过聚合支付码发起支付', 'POST', '/demo/aggregate/aliH5Pay', '聚合支付', b'1', b'1', '聚合支付 支付宝通过聚合支付码发起支付', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152168998, 'QuartzJobLogController#page', '分页', 'GET', '/quartz/log/page', '定时任务执行日志', b'1', b'1', '定时任务执行日志 分页', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152168999, 'PayOrderController#close', '关闭支付记录', 'POST', '/order/pay/close', '支付订单控制器', b'1', b'1', '支付订单控制器 关闭支付记录', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169000, 'DataRoleController#saveUserAssign', '保存数据角色关联用户权限', 'POST', '/data/role/saveUserAssign', '数据角色配置', b'1', b'1', '数据角色配置 保存数据角色关联用户权限', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169001, 'DictionaryItemController#add', '添加字典项(返回字典项对象)', 'POST', '/dict/item/add', '字典项', b'1', b'1', '字典项 添加字典项(返回字典项对象)', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169002, 'QuartzJobController#update', '更新', 'POST', '/quartz/update', '定时任务', b'1', b'1', '定时任务 更新', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169003, 'MailConfigController#delete', '删除', 'DELETE', '/mail/config/delete', '邮箱配置', b'1', b'1', '邮箱配置 删除', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169004, 'UserAdminController#banBatch', '批量封禁用户', 'POST', '/user/admin/banBatch', '管理用户(管理员级别)', b'1', b'1', '管理用户(管理员级别) 批量封禁用户', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169005, 'FIleUpLoadController#getFilePreviewUrl', '获取文件预览地址(流量会经过后端)', 'GET', '/file/getFilePreviewUrl', '文件上传', b'1', b'1', '文件上传 获取文件预览地址(流量会经过后端)', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169006, 'DictionaryController#delete', '根据id删除', 'DELETE', '/dict/delete', '字典', b'1', b'1', '字典 根据id删除', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169007, 'WeChatQrLoginController#getStatus', '获取扫码状态', 'GET', '/token/wechat/qr/getStatus', '微信扫码登录', b'1', b'1', '微信扫码登录 获取扫码状态', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169008, 'PermPathController#add', '添加权限', 'POST', '/perm/path/add', '请求权限管理', b'1', b'1', '请求权限管理 添加权限', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169009, 'ChinaWordController#refresh', '刷新缓存', 'POST', '/chinaword/refresh', '敏感词管理', b'1', b'1', '敏感词管理 刷新缓存', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169010, 'AlipayConfigController#getConfig', '获取配置', 'GET', '/alipay/config/getConfig', '支付宝配置', b'1', b'1', '支付宝配置 获取配置', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169011, 'PayCallbackController#wechatPayNotify', '微信支付信息回调', 'POST', '/callback/pay/wechat', '支付通道信息回调', b'1', b'1', '支付通道信息回调 微信支付信息回调', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169012, 'DataResultController#test', '测试SQL解析和执行', 'POST', '/data/result/test', 'SQL查询', b'1', b'1', 'SQL查询 测试SQL解析和执行', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169013, 'SiteMessageController#delete', '删除消息', 'DELETE', '/site/message/delete', '站内信', b'1', b'1', '站内信 删除消息', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169014, 'LoginTypeController#findByCode', '通过code查询登录方式', 'GET', '/loginType/findByCode', '登录方式管理', b'1', b'1', '登录方式管理 通过code查询登录方式', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169015, 'GeneralTemplateController#delete', '删除', 'DELETE', '/general/template/delete', '通用模板管理', b'1', b'1', '通用模板管理 删除', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169016, 'PayReconcileOrderController#findById', '订单详情', 'GET', '/order/reconcile/findById', '对账控制器', b'1', b'1', '对账控制器 订单详情', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169017, 'DynamicDataSourceController#testConnectionById', '测试连接(根据主键ID)', 'GET', '/dynamic/source/testConnectionById', '动态数据源管理', b'1', b'1', '动态数据源管理 测试连接(根据主键ID)', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169018, 'SiteMessageController#send', '发送站内信', 'POST', '/site/message/send', '站内信', b'1', b'1', '站内信 发送站内信', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169019, 'SiteMessageController#pageByReceive', '接收消息分页', 'GET', '/site/message/pageByReceive', '站内信', b'1', b'1', '站内信 接收消息分页', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169020, 'NcDemoController#sendDingFileMsg', '钉钉文件消息测试', 'POST', '/nc/test/sendDingFileMsg', 'nc测试', b'1', b'1', 'nc测试 钉钉文件消息测试', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169021, 'MultipleOpenApiWebMvcResource#openapiYaml', 'openapiYaml', 'GET', '/v3/api-docs.yaml/{group}', 'MultipleOpenApiWebMvcResource', b'1', b'1', 'MultipleOpenApiWebMvcResource openapiYaml', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169022, 'RolePathController#save', '保存角色请求权限关联关系', 'POST', '/role/path/save', '角色请求权限消息关系', b'1', b'1', '角色请求权限消息关系 保存角色请求权限关联关系', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169023, 'WeChatMenuController#importMenu', '导入微信自定义菜单到系统中', 'POST', '/wechat/menu/importMenu', '微信菜单管理', b'1', b'1', '微信菜单管理 导入微信自定义菜单到系统中', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169024, 'ChinaWordController#findById', '通过ID查询', 'GET', '/chinaword/findById', '敏感词管理', b'1', b'1', '敏感词管理 通过ID查询', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169025, 'RoleMenuController#findPermissionIdsByRole', '获取当前角色下关联权限id集合(包含权限码和菜单)', 'GET', '/role/menu/findPermissionIdsByRole', '角色菜单权限关系', b'1', b'1', '角色菜单权限关系 获取当前角色下关联权限id集合(包含权限码和菜单)', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169026, 'DictionaryItemController#findById', '根据字典项ID查询', 'GET', '/dict/item/findById', '字典项', b'1', b'1', '字典项 根据字典项ID查询', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169027, 'UserRoleController#saveAssignBatch', '给用户分配角色(批量)', 'POST', '/user/role/saveAssignBatch', '用户角色管理', b'1', b'1', '用户角色管理 给用户分配角色(批量)', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169028, 'SmsTemplateController#page', '分页查询', 'GET', '/sms/template/page', '短信模板配置', b'1', b'1', '短信模板配置 分页查询', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169029, 'DataResultController#querySql', '执行SQL查询语句', 'POST', '/data/result/querySql', 'SQL查询', b'1', b'1', 'SQL查询 执行SQL查询语句', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169030, 'PayRefundOrderController#findById', '查询单条', 'GET', '/order/refund/findById', '支付退款控制器', b'1', b'1', '支付退款控制器 查询单条', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169031, 'UserAssistController#sendCurrentEmailChangeCaptcha', '给当前用户发送更改邮箱验证码', 'POST', '/user/sendCurrentEmailChangeCaptcha', '用户操作支撑服务', b'1', b'1', '用户操作支撑服务 给当前用户发送更改邮箱验证码', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169032, 'PayCallbackRecordController#page', '分页查询', 'GET', '/record/callback/page', '支付回调信息记录', b'1', b'1', '支付回调信息记录 分页查询', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169033, 'FIleUpLoadController#getFilePreviewUrlPrefix', '获取文件预览地址前缀', 'GET', '/file/getFilePreviewUrlPrefix', '文件上传', b'1', b'1', '文件上传 获取文件预览地址前缀', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169034, 'AlipayConfigController#readPem', '读取证书文件内容', 'POST', '/alipay/config/readPem', '支付宝配置', b'1', b'1', '支付宝配置 读取证书文件内容', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169035, 'DynamicFormController#findAll', '查询所有', 'GET', '/dynamic/form/findAll', '动态表单', b'1', b'1', '动态表单 查询所有', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169036, 'PermMenuController#existsByPermCode', '编码是否被使用(不包含自己)', 'GET', '/perm/menu/existsByPermCodeNotId', '菜单和权限码', b'1', b'1', '菜单和权限码 编码是否被使用(不包含自己)', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169037, 'DataRoleController#update', '更新', 'POST', '/data/role/update', '数据角色配置', b'1', b'1', '数据角色配置 更新', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169038, 'CashierController#getPayEnv', '获取支付环境', 'GET', '/demo/cashier/getPayEnv', '结算台演示', b'1', b'1', '结算台演示 获取支付环境', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169039, 'PermPathController#delete', '删除权限', 'DELETE', '/perm/path/delete', '请求权限管理', b'1', b'1', '请求权限管理 删除权限', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169040, 'AggregateController#getWxJsapiPay', '获取微信支付调起Jsapi支付的信息', 'POST', '/demo/aggregate/getWxJsapiPay', '聚合支付', b'1', b'1', '聚合支付 获取微信支付调起Jsapi支付的信息', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169041, 'PayReconcileOrderController#downAndSave', '手动触发对账文件下载', 'POST', '/order/reconcile/downAndSave', '对账控制器', b'1', b'1', '对账控制器 手动触发对账文件下载', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169042, 'QuartzJobController#start', '启动', 'POST', '/quartz/start', '定时任务', b'1', b'1', '定时任务 启动', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169043, 'UserAssistController#validateEmailCaptcha', '验证更改/绑定邮箱验证码', 'GET', '/user/validateEmailChangeCaptcha', '用户操作支撑服务', b'1', b'1', '用户操作支撑服务 验证更改/绑定邮箱验证码', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169044, 'DynamicDataSourceController#delete', '删除', 'DELETE', '/dynamic/source/delete', '动态数据源管理', b'1', b'1', '动态数据源管理 删除', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169045, 'SystemParamController#findById', '获取单条', 'GET', '/system/param/findById', '系统参数', b'1', b'1', '系统参数 获取单条', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169046, 'WeChatMenuController#publish', '发布菜单', 'POST', '/wechat/menu/publish', '微信菜单管理', b'1', b'1', '微信菜单管理 发布菜单', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169047, 'PayCallbackController#aliPayNotify', '支付宝信息回调', 'POST', '/callback/pay/alipay', '支付通道信息回调', b'1', b'1', '支付通道信息回调 支付宝信息回调', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169048, 'DynamicDataSourceController#removeDataSourceByKey', '从数据源列表中删除指定数据源', 'DELETE', '/dynamic/source/removeDataSourceByKey', '动态数据源管理', b'1', b'1', '动态数据源管理 从数据源列表中删除指定数据源', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169049, 'QuartzJobController#execute', '立即执行', 'POST', '/quartz/execute', '定时任务', b'1', b'1', '定时任务 立即执行', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169050, 'DynamicDataSourceController#page', '分页查询', 'GET', '/dynamic/source/page', '动态数据源管理', b'1', b'1', '动态数据源管理 分页查询', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169051, 'DictionaryController#existsByCode', '编码是否被使用(不包含自己)', 'GET', '/dict/existsByCodeNotId', '字典', b'1', b'1', '字典 编码是否被使用(不包含自己)', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169052, 'PayRepairRecordController#page', '分页查询', 'GET', '/record/repair/page', '支付修复记录', b'1', b'1', '支付修复记录 分页查询', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169053, 'UserDeptController#saveAssignBatch', '给用户分配部门(批量)', 'POST', '/user/dept/saveAssignBatch', '用户部门关联关系', b'1', b'1', '用户部门关联关系 给用户分配部门(批量)', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169054, 'PayReconcileOrderController#create', '手动创建对账订单', 'POST', '/order/reconcile/create', '对账控制器', b'1', b'1', '对账控制器 手动创建支付订单', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169055, 'UserAdminController#restartPassword', '重置密码', 'POST', '/user/admin/restartPassword', '管理用户(管理员级别)', b'1', b'1', '管理用户(管理员级别) 重置密码', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169056, 'CodeGeneratorController#codeGenPreview', '预览生成代码', 'POST', '/gen/code/codeGenPreview', '代码生成', b'1', b'1', '代码生成 预览生成代码', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169057, 'NcDemoController#sendDingImageMsg', '钉钉图片消息测试', 'POST', '/nc/test/sendDingImageMsg', 'nc测试', b'1', b'1', 'nc测试 钉钉图片消息测试', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169058, 'TestController#lock1', '锁测试1', 'GET', '/test/lock1', '测试', b'1', b'1', '测试 锁测试1', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169059, 'ForwardFrontController#toH5', 'toH5', 'GET', '/front/', 'ForwardFrontController', b'1', b'1', 'ForwardFrontController toH5', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169060, 'FIleUpLoadController#delete', '删除', 'DELETE', '/file/delete', '文件上传', b'1', b'1', '文件上传 删除', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169061, 'OperateLogController#deleteByDay', '清除指定天数的日志', 'DELETE', '/log/operate/deleteByDay', '操作日志', b'1', b'1', '操作日志 清除指定天数的日志', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169062, 'AggregateController#barCodePay', '通过付款码发起支付', 'POST', '/demo/aggregate/barCodePay', '聚合支付', b'1', b'1', '聚合支付 通过付款码发起支付', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169063, 'SmsChannelConfigController#findAll', '查询所有', 'GET', '/sms/config/findAll', '短信渠道配置', b'1', b'1', '短信渠道配置 查询所有', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169064, 'MessageTemplateController#update', '更新', 'POST', '/message/template/update', '消息模板', b'1', b'1', '消息模板 更新', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169065, 'DingRobotConfigController#page', '分页', 'GET', '/ding/robot/config/page', '钉钉机器人配置', b'1', b'1', '钉钉机器人配置 分页', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169066, 'RoleController#findById', '通过ID查询角色', 'GET', '/role/findById', '角色管理', b'1', b'1', '角色管理 通过ID查询角色', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169067, 'FIleUpLoadController#download', '下载文件(流量会经过后端)', 'GET', '/file/download/{id}', '文件上传', b'1', b'1', '文件上传 下载文件(流量会经过后端)', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169068, 'RoleController#tree', '角色树', 'GET', '/role/tree', '角色管理', b'1', b'1', '角色管理 角色树', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169069, 'RoleController#dropdown', '角色下拉框', 'GET', '/role/dropdown', '角色管理', b'1', b'1', '角色管理 角色下拉框', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169070, 'WeChatPortalController#auth', 'auth', 'GET', '/wechat/portal', '微信接入入口', b'1', b'1', '微信接入入口 auth', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169071, 'UserAssistController#sendEmailForgetCaptcha', '发送找回密码邮箱验证码', 'POST', '/user/sendEmailForgetCaptcha', '用户操作支撑服务', b'1', b'1', '用户操作支撑服务 发送找回密码邮箱验证码', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169072, 'DeptController#tree', '树状展示', 'GET', '/dept/tree', '部门管理', b'1', b'1', '部门管理 树状展示', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169073, 'QuartzJobController#judgeJobClass', '判断是否是定时任务类', 'GET', '/quartz/judgeJobClass', '定时任务', b'1', b'1', '定时任务 判断是否是定时任务类', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169075, 'WeChatArticleController#page', '分页', 'GET', '/wechat/article/page', '微信文章管理', b'1', b'1', '微信文章管理 分页', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169076, 'AggregateController#qrPayPage', '聚合支付扫码跳转中间页', 'GET', '/demo/aggregate/qrPayPage/{code}', '聚合支付', b'1', b'1', '聚合支付 聚合支付扫码跳转中间页', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169077, 'UniQueryController#queryPayOrder', '查询支付订单', 'POST', '/uni/query/payOrder', '统一查询接口', b'1', b'1', '统一查询接口 查询支付订单', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169078, 'ChinaRegionController#findAllProvinceAndCity', '获取省市二级联动列表', 'GET', '/china/region/findAllProvinceAndCity', '中国行政区划', b'1', b'1', '中国行政区划 获取省市二级联动列表', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169079, 'WeChatMediaController#deleteFile', '删除素材', 'DELETE', '/wechat/media/deleteFile', '微信素材管理', b'1', b'1', '微信素材管理 删除素材', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169080, 'DataRoleController#delete', '删除', 'DELETE', '/data/role/delete', '数据角色配置', b'1', b'1', '数据角色配置 删除', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169081, 'UserDeptController#findAllByUser', '根据用户ID获取到部门集合', 'GET', '/user/dept/findAllByUser', '用户部门关联关系', b'1', b'1', '用户部门关联关系 根据用户ID获取到部门集合', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169082, 'SystemParamController#page', '分页', 'GET', '/system/param/page', '系统参数', b'1', b'1', '系统参数 分页', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169083, 'DynamicDataSourceController#findAllDataSource', '查询当前数据源列表', 'GET', '/dynamic/source/findAllDataSource', '动态数据源管理', b'1', b'1', '动态数据源管理 查询当前数据源列表', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169084, 'PayChannelConfigController#findById', '根据ID获取', 'GET', '/pay/channel/config/findById', '支付通道信息', b'1', b'1', '支付通道信息 根据ID获取', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169085, 'RoleController#delete', '删除角色', 'DELETE', '/role/delete', '角色管理', b'1', b'1', '角色管理 删除角色', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169086, 'PayOrderController#listByChannel', '查询支付订单关联支付通道订单', 'GET', '/order/pay/listByChannel', '支付订单控制器', b'1', b'1', '支付订单控制器 查询支付订单关联支付通道订单', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169087, 'UserDataRoleController#saveAssignBatch', '给用户分配权限(批量)', 'POST', '/user/data/role/saveAssignBatch', '用户数据角色配置', b'1', b'1', '用户数据角色配置 给用户分配权限(批量)', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169088, 'DeptController#findById', '获取', 'GET', '/dept/findById', '部门管理', b'1', b'1', '部门管理 获取', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169089, 'CashierController#getUniCashierUrl', '获取手机收银台链接', 'GET', '/demo/cashier/getUniCashierUrl', '结算台演示', b'1', b'1', '结算台演示 获取手机收银台链接', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169090, 'QuartzJobController#delete', '删除', 'DELETE', '/quartz/delete', '定时任务', b'1', b'1', '定时任务 删除', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169091, 'PermMenuController#update', '修改菜单权限', 'POST', '/perm/menu/update', '菜单和权限码', b'1', b'1', '菜单和权限码 修改菜单权限', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169092, 'PaySyncRecordController#findById', '查询单条', 'GET', '/record/sync/findById', '支付同步记录控制器', b'1', b'1', '支付同步记录控制器 查询单条', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169093, 'ChinaWordController#delete', '删除', 'DELETE', '/chinaword/delete', '敏感词管理', b'1', b'1', '敏感词管理 删除', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169094, 'WeChatMenuController#clearMenu', '清空微信自定义菜单', 'POST', '/wechat/menu/clearMenu', '微信菜单管理', b'1', b'1', '微信菜单管理 清空微信自定义菜单', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169095, 'UserDataRoleController#findDataRoleIdByUser', '根据用户ID获取到数据角色Id', 'GET', '/user/data/role/findDataRoleIdByUser', '用户数据角色配置', b'1', b'1', '用户数据角色配置 根据用户ID获取到数据角色Id', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169096, 'UserAssistController#sendEmailChangeCaptcha', '发送更改/绑定邮箱验证码', 'POST', '/user/sendEmailChangeCaptcha', '用户操作支撑服务', b'1', b'1', '用户操作支撑服务 发送更改/绑定邮箱验证码', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169097, 'DataRoleController#deleteUserAssigns', '批量删除数据角色关联用户', 'DELETE', '/data/role/deleteUserAssigns', '数据角色配置', b'1', b'1', '数据角色配置 批量删除数据角色关联用户', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169098, 'PayReconcileOrderController#page', '订单分页', 'GET', '/order/reconcile/page', '对账控制器', b'1', b'1', '对账控制器 订单分页', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169099, 'UniPayController#syncRefund', '退款状态同步', 'POST', '/unipay/syncRefund', '统一支付接口', b'1', b'1', '统一支付接口 退款状态同步', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169100, 'WeChatMediaController#pageFile', '非图文素材分页', 'GET', '/wechat/media/pageFile', '微信素材管理', b'1', b'1', '微信素材管理 非图文素材分页', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169101, 'SystemParamController#findByParamKey', '根据键名获取键值', 'GET', '/system/param/findByParamKey', '系统参数', b'1', b'1', '系统参数 根据键名获取键值', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169102, 'DynamicDataSourceController#existsByDataSourceKey', '是否已经添加到连接池中', 'GET', '/dynamic/source/existsByDataSourceKey', '动态数据源管理', b'1', b'1', '动态数据源管理 是否已经添加到连接池中', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169103, 'MessageTemplateController#add', '添加', 'POST', '/message/template/add', '消息模板', b'1', b'1', '消息模板 添加', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169104, 'DataRoleController#existsByCode', '编码是否被使用', 'GET', '/data/role/existsByCode', '数据角色配置', b'1', b'1', '数据角色配置 编码是否被使用', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169105, 'DynamicDataSourceController#update', '修改', 'POST', '/dynamic/source/update', '动态数据源管理', b'1', b'1', '动态数据源管理 修改', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169106, 'OperateLogController#page', '分页', 'GET', '/log/operate/page', '操作日志', b'1', b'1', '操作日志 分页', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169107, 'NcDemoController#p1', '企微机器人图片发送', 'POST', '/nc/test/p1', 'nc测试', b'1', b'1', 'nc测试 企微机器人图片发送', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169108, 'PayOrderController#findById', '查询订单详情', 'GET', '/order/pay/findById', '支付订单控制器', b'1', b'1', '支付订单控制器 查询订单详情', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169109, 'OnlineUserController#page', '分页', 'GET', '/online/user/page', '在线用户', b'1', b'1', '在线用户 分页', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169110, 'RoleController#existsByName', '名称是否被使用(不包含自己)', 'GET', '/role/existsByNameNotId', '角色管理', b'1', b'1', '角色管理 名称是否被使用(不包含自己)', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169111, 'WecomRobotConfigController#page', '分页', 'GET', '/wecom/robot/config/page', '企业微信机器人配置', b'1', b'1', '企业微信机器人配置 分页', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169112, 'DataRoleController#findById', '获取', 'GET', '/data/role/findById', '数据角色配置', b'1', b'1', '数据角色配置 获取', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169113, 'DataRoleController#findAll', '查询全部', 'GET', '/data/role/findAll', '数据角色配置', b'1', b'1', '数据角色配置 查询全部', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169114, 'OpenApiWebMvcResource#openapiJson', 'openapiJson', 'GET', '/v3/api-docs', 'OpenApiWebMvcResource', b'1', b'1', 'OpenApiWebMvcResource openapiJson', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169115, 'CaptchaController#imgCaptcha', '获取图片验证码', 'POST', '/captcha/imgCaptcha', '验证码服务', b'1', b'1', '验证码服务 获取图片验证码', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169116, 'WecomRobotConfigController#update', '修改机器人配置', 'POST', '/wecom/robot/config/update', '企业微信机器人配置', b'1', b'1', '企业微信机器人配置 修改机器人配置', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169117, 'PlatformConfigController#update', '更新平台配置项', 'POST', '/platform/config/update', '支付平台配置控制器', b'1', b'1', '支付平台配置控制器 更新平台配置项', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169118, 'ClientController#add', '添加', 'POST', '/client/add', '认证终端', b'1', b'1', '认证终端 添加', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169119, 'DatabaseTableController#findByTableName', '获取表信息', 'GET', '/gen/table/findByTableName', '数据库表信息', b'1', b'1', '数据库表信息 获取表信息', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169120, 'OnlineUserController#kickOut', '踢出用户', 'GET', '/online/user/kickOut', '在线用户', b'1', b'1', '在线用户 踢出用户', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169121, 'UserAdminController#getUserInfoWhole', '查询用户详情', 'GET', '/user/admin/getUserInfoWhole', '管理用户(管理员级别)', b'1', b'1', '管理用户(管理员级别) 查询用户详情', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169122, 'WeChatTemplateController#update', '修改', 'POST', '/wechat/template/update', '微信模板消息', b'1', b'1', '微信模板消息 修改', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169123, 'ChinaRegionController#findAllProvince', '获取一级行政区', 'GET', '/china/region/findAllProvince', '中国行政区划', b'1', b'1', '中国行政区划 获取一级行政区', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169124, 'WeChatMenuController#page', '分页查询', 'GET', '/wechat/menu/page', '微信菜单管理', b'1', b'1', '微信菜单管理 分页查询', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169125, 'DictionaryController#update', '更新', 'POST', '/dict/update', '字典', b'1', b'1', '字典 更新', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169126, 'PayChannelConfigController#findAll', '查询全部', 'GET', '/pay/channel/config/findAll', '支付通道信息', b'1', b'1', '支付通道信息 查询全部', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169127, 'UserAssistController#validateEmailForgetCaptcha', '验证找回密码邮箱验证码', 'GET', '/user/validateEmailForgetCaptcha', '用户操作支撑服务', b'1', b'1', '用户操作支撑服务 验证找回密码邮箱验证码', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169128, 'ClientController#findById', '通过ID查询', 'GET', '/client/findById', '认证终端', b'1', b'1', '认证终端 通过ID查询', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169129, 'PermMenuController#menuAndPermCodeTree', '获取菜单和权限码树', 'GET', '/perm/menu/menuAndPermCodeTree', '菜单和权限码', b'1', b'1', '菜单和权限码 获取菜单和权限码树', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169130, 'QuartzJobController#syncJobStatus', '同步定时任务状态', 'POST', '/quartz/syncJobStatus', '定时任务', b'1', b'1', '定时任务 同步定时任务状态', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169131, 'PermMenuController#add', '添加菜单权限', 'POST', '/perm/menu/add', '菜单和权限码', b'1', b'1', '菜单和权限码 添加菜单权限', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169132, 'ClientController#page', '分页查询', 'GET', '/client/page', '认证终端', b'1', b'1', '认证终端 分页查询', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169133, 'FIleUpLoadController#findById', '获取单条详情', 'GET', '/file/findById', '文件上传', b'1', b'1', '文件上传 获取单条详情', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169134, 'WeChatQrLoginController#applyQrCode', '申请登录用QR码', 'POST', '/token/wechat/qr/applyQrCode', '微信扫码登录', b'1', b'1', '微信扫码登录 申请登录用QR码', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169135, 'SiteMessageController#cancel', '撤回消息', 'POST', '/site/message/cancel', '站内信', b'1', b'1', '站内信 撤回消息', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169136, 'DataRoleController#existsByCode', '编码是否被使用(不包含自己)', 'GET', '/data/role/existsByCodeNotId', '数据角色配置', b'1', b'1', '数据角色配置 编码是否被使用(不包含自己)', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169138, 'DynamicFormController#add', '添加', 'POST', '/dynamic/form/add', '动态表单', b'1', b'1', '动态表单 添加', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169139, 'ChinaRegionController#findAllRegionByParentCode', '根据编码获取下一级行政区划的列表', 'GET', '/china/region/findAllRegionByParentCode', '中国行政区划', b'1', b'1', '中国行政区划 根据编码获取下一级行政区划的列表', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169140, 'DatabaseTableController#getTableGenParam', '获取表相关的代码生成参数信息', 'GET', '/gen/table/getTableGenParam', '数据库表信息', b'1', b'1', '数据库表信息 获取表相关的代码生成参数信息', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169141, 'UniPayController#close', '订单关闭', 'POST', '/unipay/close', '统一支付接口', b'1', b'1', '统一支付接口 订单关闭', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169142, 'LoginTypeController#superPage', '超级查询', 'POST', '/loginType/superPage', '登录方式管理', b'1', b'1', '登录方式管理 超级查询', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169143, 'DictionaryController#page', '分页', 'GET', '/dict/page', '字典', b'1', b'1', '字典 分页', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169144, 'DingRobotConfigController#update', '修改机器人配置', 'POST', '/ding/robot/config/update', '钉钉机器人配置', b'1', b'1', '钉钉机器人配置 修改机器人配置', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169145, 'PayCloseRecordController#page', '分页查询', 'GET', '/record/close/page', '支付订单关闭记录', b'1', b'1', '支付订单关闭记录 分页查询', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169146, 'PayCallbackRecordController#findById', '查询单条', 'GET', '/record/callback/findById', '支付回调信息记录', b'1', b'1', '支付回调信息记录 查询单条', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.139000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527152169147, 'MessageTemplateController#rendering', '渲染模板', 'POST', '/message/template/rendering', '消息模板', b'1', b'1', '消息模板 渲染模板', 1399985191002447872, '2024-02-13 14:55:54.139000', 1399985191002447872, '2024-02-13 14:55:54.140000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527156363264, 'NcDemoController#p2', '企微机器人文件发送', 'POST', '/nc/test/p2', 'nc测试', b'1', b'1', 'nc测试 企微机器人文件发送', 1399985191002447872, '2024-02-13 14:55:54.140000', 1399985191002447872, '2024-02-13 14:55:54.140000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527156363265, 'UserDataRoleController#saveAssign', '给用户分配数据角色', 'POST', '/user/data/role/saveAssign', '用户数据角色配置', b'1', b'1', '用户数据角色配置 给用户分配数据角色', 1399985191002447872, '2024-02-13 14:55:54.140000', 1399985191002447872, '2024-02-13 14:55:54.140000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527156363266, 'MultipleOpenApiWebMvcResource#openapiJson', 'openapiJson', 'GET', '/v3/api-docs/{group}', 'MultipleOpenApiWebMvcResource', b'1', b'1', 'MultipleOpenApiWebMvcResource openapiJson', 1399985191002447872, '2024-02-13 14:55:54.140000', 1399985191002447872, '2024-02-13 14:55:54.140000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527156363267, 'DynamicDataSourceController#add', '添加', 'POST', '/dynamic/source/add', '动态数据源管理', b'1', b'1', '动态数据源管理 添加', 1399985191002447872, '2024-02-13 14:55:54.140000', 1399985191002447872, '2024-02-13 14:55:54.140000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527156363268, 'RoleController#update', '修改角色(返回角色对象)', 'POST', '/role/update', '角色管理', b'1', b'1', '角色管理 修改角色(返回角色对象)', 1399985191002447872, '2024-02-13 14:55:54.140000', 1399985191002447872, '2024-02-13 14:55:54.140000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527156363269, 'DataResultController#exportQueryResult', '导出SQL查询的结果', 'POST', '/data/result/exportQueryResult', 'SQL查询', b'1', b'1', 'SQL查询 导出SQL查询的结果', 1399985191002447872, '2024-02-13 14:55:54.140000', 1399985191002447872, '2024-02-13 14:55:54.140000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527156363270, 'DataRoleController#existsByName', '名称是否被使用', 'GET', '/data/role/existsByName', '数据角色配置', b'1', b'1', '数据角色配置 名称是否被使用', 1399985191002447872, '2024-02-13 14:55:54.140000', 1399985191002447872, '2024-02-13 14:55:54.140000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527156363271, 'ClientController#delete', '删除', 'DELETE', '/client/delete', '认证终端', b'1', b'1', '认证终端 删除', 1399985191002447872, '2024-02-13 14:55:54.140000', 1399985191002447872, '2024-02-13 14:55:54.140000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527156363272, 'UserDeptController#saveAssign', '给用户分配部门', 'POST', '/user/dept/saveAssign', '用户部门关联关系', b'1', b'1', '用户部门关联关系 给用户分配部门', 1399985191002447872, '2024-02-13 14:55:54.140000', 1399985191002447872, '2024-02-13 14:55:54.140000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527156363273, 'UserAdminController#update', '修改用户', 'POST', '/user/admin/update', '管理用户(管理员级别)', b'1', b'1', '管理用户(管理员级别) 修改用户', 1399985191002447872, '2024-02-13 14:55:54.140000', 1399985191002447872, '2024-02-13 14:55:54.140000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527156363274, 'WecomRobotConfigController#findAll', '查询全部', 'GET', '/wecom/robot/config/findAll', '企业微信机器人配置', b'1', b'1', '企业微信机器人配置 查询全部', 1399985191002447872, '2024-02-13 14:55:54.140000', 1399985191002447872, '2024-02-13 14:55:54.140000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527156363275, 'SiteMessageController#countByReceiveNotRead', '获取未读的接收消息条数', 'GET', '/site/message/countByReceiveNotRead', '站内信', b'1', b'1', '站内信 获取未读的接收消息条数', 1399985191002447872, '2024-02-13 14:55:54.140000', 1399985191002447872, '2024-02-13 14:55:54.140000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527156363276, 'QuartzJobController#findById', '单条', 'GET', '/quartz/findById', '定时任务', b'1', b'1', '定时任务 单条', 1399985191002447872, '2024-02-13 14:55:54.140000', 1399985191002447872, '2024-02-13 14:55:54.140000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527156363277, 'SmsTemplateController#findById', '通过ID查询', 'GET', '/sms/template/findById', '短信模板配置', b'1', b'1', '短信模板配置 通过ID查询', 1399985191002447872, '2024-02-13 14:55:54.140000', 1399985191002447872, '2024-02-13 14:55:54.140000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527156363278, 'GeneralTemplateController#existsByCode', '编码是否被使用', 'GET', '/general/template/existsByCode', '通用模板管理', b'1', b'1', '通用模板管理 编码是否被使用', 1399985191002447872, '2024-02-13 14:55:54.140000', 1399985191002447872, '2024-02-13 14:55:54.140000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527156363279, 'ChinaWordController#update', '修改', 'POST', '/chinaword/update', '敏感词管理', b'1', b'1', '敏感词管理 修改', 1399985191002447872, '2024-02-13 14:55:54.140000', 1399985191002447872, '2024-02-13 14:55:54.140000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527156363280, 'ThirdLoginController#callback', '扫码后回调', 'GET', '/auth/third/callback/{loginType}', '三方登录', b'1', b'1', '三方登录 扫码后回调', 1399985191002447872, '2024-02-13 14:55:54.140000', 1399985191002447872, '2024-02-13 14:55:54.140000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527156363281, 'UserThirdController#unbind', '解绑第三方账号', 'POST', '/user/third/unbind', '用户三方登录管理', b'1', b'1', '用户三方登录管理 解绑第三方账号', 1399985191002447872, '2024-02-13 14:55:54.140000', 1399985191002447872, '2024-02-13 14:55:54.140000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527156363282, 'SmsChannelConfigController#findById', '通过ID查询', 'GET', '/sms/config/findById', '短信渠道配置', b'1', b'1', '短信渠道配置 通过ID查询', 1399985191002447872, '2024-02-13 14:55:54.140000', 1399985191002447872, '2024-02-13 14:55:54.140000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527156363283, 'WeChatMenuController#delete', '删除', 'DELETE', '/wechat/menu/delete', '微信菜单管理', b'1', b'1', '微信菜单管理 删除', 1399985191002447872, '2024-02-13 14:55:54.140000', 1399985191002447872, '2024-02-13 14:55:54.140000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527156363284, 'UserInfoController#existsEmail', '邮箱是否被使用', 'GET', '/user/existsEmail', '用户管理', b'1', b'1', '用户管理 邮箱是否被使用', 1399985191002447872, '2024-02-13 14:55:54.140000', 1399985191002447872, '2024-02-13 14:55:54.140000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527156363285, 'AggregateController#getInfo', '获取聚合支付信息', 'GET', '/demo/aggregate/getInfo', '聚合支付', b'1', b'1', '聚合支付 获取聚合支付信息', 1399985191002447872, '2024-02-13 14:55:54.140000', 1399985191002447872, '2024-02-13 14:55:54.140000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527156363286, 'DingRobotConfigController#add', '新增机器人配置', 'POST', '/ding/robot/config/add', '钉钉机器人配置', b'1', b'1', '钉钉机器人配置 新增机器人配置', 1399985191002447872, '2024-02-13 14:55:54.140000', 1399985191002447872, '2024-02-13 14:55:54.140000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527156363287, 'FIleUpLoadController#page', '分页', 'GET', '/file/page', '文件上传', b'1', b'1', '文件上传 分页', 1399985191002447872, '2024-02-13 14:55:54.140000', 1399985191002447872, '2024-02-13 14:55:54.140000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527156363288, 'MailConfigController#page', '分页', 'GET', '/mail/config/page', '邮箱配置', b'1', b'1', '邮箱配置 分页', 1399985191002447872, '2024-02-13 14:55:54.140000', 1399985191002447872, '2024-02-13 14:55:54.140000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527156363289, 'PayOrderController#getChannel', '查询支付通道订单详情', 'GET', '/order/pay/getChannel', '支付订单控制器', b'1', b'1', '支付订单控制器 查询支付通道订单详情', 1399985191002447872, '2024-02-13 14:55:54.140000', 1399985191002447872, '2024-02-13 14:55:54.140000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527156363290, 'DynamicFormController#update', '修改', 'POST', '/dynamic/form/update', '动态表单', b'1', b'1', '动态表单 修改', 1399985191002447872, '2024-02-13 14:55:54.140000', 1399985191002447872, '2024-02-13 14:55:54.140000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527156363291, 'UserInfoController#updateEmail', '修改邮箱', 'POST', '/user/updateEmail', '用户管理', b'1', b'1', '用户管理 修改邮箱', 1399985191002447872, '2024-02-13 14:55:54.140000', 1399985191002447872, '2024-02-13 14:55:54.140000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527156363292, 'WecomRobotConfigController#findById', '获取详情', 'GET', '/wecom/robot/config/findById', '企业微信机器人配置', b'1', b'1', '企业微信机器人配置 获取详情', 1399985191002447872, '2024-02-13 14:55:54.140000', 1399985191002447872, '2024-02-13 14:55:54.140000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527156363293, 'RoleMenuController#findMenuIds', '获取权限菜单id列表,不包含资源权限', 'GET', '/role/menu/findMenuIds', '角色菜单权限关系', b'1', b'1', '角色菜单权限关系 获取权限菜单id列表,不包含资源权限', 1399985191002447872, '2024-02-13 14:55:54.140000', 1399985191002447872, '2024-02-13 14:55:54.140000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527156363294, 'SiteMessageController#saveOrUpdate', '保存站内信草稿', 'POST', '/site/message/saveOrUpdate', '站内信', b'1', b'1', '站内信 保存站内信草稿', 1399985191002447872, '2024-02-13 14:55:54.140000', 1399985191002447872, '2024-02-13 14:55:54.140000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527156363295, 'PermPathController#page', '权限分页', 'GET', '/perm/path/page', '请求权限管理', b'1', b'1', '请求权限管理 权限分页', 1399985191002447872, '2024-02-13 14:55:54.140000', 1399985191002447872, '2024-02-13 14:55:54.140000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527156363296, 'PermPathController#syncSystem', '同步系统请求资源', 'POST', '/perm/path/syncSystem', '请求权限管理', b'1', b'1', '请求权限管理 同步系统请求资源', 1399985191002447872, '2024-02-13 14:55:54.140000', 1399985191002447872, '2024-02-13 14:55:54.140000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527156363297, 'PayRefundOrderController#syncById', '退款同步', 'POST', '/order/refund/syncById', '支付退款控制器', b'1', b'1', '支付退款控制器 退款同步', 1399985191002447872, '2024-02-13 14:55:54.140000', 1399985191002447872, '2024-02-13 14:55:54.140000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527156363298, 'OnlineUserController#getSessionByUserId', '获取用户链接信息', 'GET', '/online/user/getSessionByUserId', '在线用户', b'1', b'1', '在线用户 获取用户链接信息', 1399985191002447872, '2024-02-13 14:55:54.140000', 1399985191002447872, '2024-02-13 14:55:54.140000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527156363299, 'NcDemoController#sendDingMsg', '钉钉消息测试', 'POST', '/nc/test/sendDingMsg', 'nc测试', b'1', b'1', 'nc测试 钉钉消息测试', 1399985191002447872, '2024-02-13 14:55:54.140000', 1399985191002447872, '2024-02-13 14:55:54.140000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527156363300, 'UserInfoController#existsUsername', '账号是否被使用(不包含自己)', 'GET', '/user/existsUsernameNotId', '用户管理', b'1', b'1', '用户管理 账号是否被使用(不包含自己)', 1399985191002447872, '2024-02-13 14:55:54.140000', 1399985191002447872, '2024-02-13 14:55:54.140000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527156363301, 'LoginTypeController#existsByCode', '编码是否被使用', 'GET', '/loginType/existsByCode', '登录方式管理', b'1', b'1', '登录方式管理 编码是否被使用', 1399985191002447872, '2024-02-13 14:55:54.140000', 1399985191002447872, '2024-02-13 14:55:54.140000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527156363302, 'UniPayAssistController#getWxAuthUrl', '获取微信oauth2授权的url', 'POST', '/unipay/assist/getWxAuthUrl', '支付支撑接口', b'1', b'1', '支付支撑接口 获取微信oauth2授权的url', 1399985191002447872, '2024-02-13 14:55:54.140000', 1399985191002447872, '2024-02-13 14:55:54.140000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527156363303, 'RoleController#existsByCode', '编码是否被使用(不包含自己)', 'GET', '/role/existsByCodeNotId', '角色管理', b'1', b'1', '角色管理 编码是否被使用(不包含自己)', 1399985191002447872, '2024-02-13 14:55:54.140000', 1399985191002447872, '2024-02-13 14:55:54.140000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527156363304, 'CashierController#queryPayOrder', '查询支付订单', 'GET', '/demo/cashier/queryPayOrderSuccess', '结算台演示', b'1', b'1', '结算台演示 查询支付订单', 1399985191002447872, '2024-02-13 14:55:54.140000', 1399985191002447872, '2024-02-13 14:55:54.140000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527156363305, 'ClientController#findAll', '查询所有', 'GET', '/client/findAll', '认证终端', b'1', b'1', '认证终端 查询所有', 1399985191002447872, '2024-02-13 14:55:54.140000', 1399985191002447872, '2024-02-13 14:55:54.140000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527156363306, 'PayWayInfoController#update', '更新', 'POST', '/pay/way/info/update', '支付方式管理', b'1', b'1', '支付方式管理 更新', 1399985191002447872, '2024-02-13 14:55:54.140000', 1399985191002447872, '2024-02-13 14:55:54.140000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527156363307, 'LoginLogController#page', '分页', 'GET', '/log/login/page', '登录日志', b'1', b'1', '登录日志 分页', 1399985191002447872, '2024-02-13 14:55:54.140000', 1399985191002447872, '2024-02-13 14:55:54.140000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527156363308, 'PasswordSecurityConfigController#isRecentlyUsed', '查看要修改的密码是否重复', 'GET', '/security/password/isRecentlyUsed', '密码安全策略', b'1', b'1', '密码安全策略 查看要修改的密码是否重复', 1399985191002447872, '2024-02-13 14:55:54.140000', 1399985191002447872, '2024-02-13 14:55:54.140000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527156363309, 'FIleUpLoadController#getFileDownloadUrl', '获取文件下载地址(流量会经过后端)', 'GET', '/file/getFileDownloadUrl', '文件上传', b'1', b'1', '文件上传 获取文件下载地址(流量会经过后端)', 1399985191002447872, '2024-02-13 14:55:54.140000', 1399985191002447872, '2024-02-13 14:55:54.140000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527156363310, 'TokenEndpoint#login', '普通登录', 'POST', '/token/login', '认证相关', b'1', b'1', '认证相关 普通登录', 1399985191002447872, '2024-02-13 14:55:54.140000', 1399985191002447872, '2024-02-13 14:55:54.140000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527156363311, 'UserRoleController#findRoleIdsByUser', '根据用户ID获取到角色id集合', 'GET', '/user/role/findRoleIdsByUser', '用户角色管理', b'1', b'1', '用户角色管理 根据用户ID获取到角色id集合', 1399985191002447872, '2024-02-13 14:55:54.140000', 1399985191002447872, '2024-02-13 14:55:54.140000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527156363312, 'PayApiConfigController#findById', '根据ID获取', 'GET', '/pay/api/config/findById', '支付接口配置', b'1', b'1', '支付接口配置 根据ID获取', 1399985191002447872, '2024-02-13 14:55:54.140000', 1399985191002447872, '2024-02-13 14:55:54.140000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527156363313, 'RoleController#existsByName', '名称是否被使用', 'GET', '/role/existsByName', '角色管理', b'1', b'1', '角色管理 名称是否被使用', 1399985191002447872, '2024-02-13 14:55:54.140000', 1399985191002447872, '2024-02-13 14:55:54.140000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527156363314, 'GeneralTemplateController#page', '分页查询', 'GET', '/general/template/page', '通用模板管理', b'1', b'1', '通用模板管理 分页查询', 1399985191002447872, '2024-02-13 14:55:54.140000', 1399985191002447872, '2024-02-13 14:55:54.140000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527156363315, 'RolePathController#findIdsByRole', '根据角色id获取关联权限id', 'GET', '/role/path/findIdsByRole', '角色请求权限消息关系', b'1', b'1', '角色请求权限消息关系 根据角色id获取关联权限id', 1399985191002447872, '2024-02-13 14:55:54.140000', 1399985191002447872, '2024-02-13 14:55:54.140000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527156363316, 'DingRobotConfigController#delete', '删除', 'DELETE', '/ding/robot/config/delete', '钉钉机器人配置', b'1', b'1', '钉钉机器人配置 删除', 1399985191002447872, '2024-02-13 14:55:54.140000', 1399985191002447872, '2024-02-13 14:55:54.140000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527156363317, 'PermMenuController#findById', '根据id查询', 'GET', '/perm/menu/findById', '菜单和权限码', b'1', b'1', '菜单和权限码 根据id查询', 1399985191002447872, '2024-02-13 14:55:54.140000', 1399985191002447872, '2024-02-13 14:55:54.140000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527156363318, 'DingRobotConfigController#findAll', '查询全部', 'GET', '/ding/robot/config/findAll', '钉钉机器人配置', b'1', b'1', '钉钉机器人配置 查询全部', 1399985191002447872, '2024-02-13 14:55:54.140000', 1399985191002447872, '2024-02-13 14:55:54.140000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527156363319, 'RoleMenuController#getPermissions', '获取菜单和权限码(根据用户进行筛选)', 'GET', '/role/menu/getPermissions', '角色菜单权限关系', b'1', b'1', '角色菜单权限关系 获取菜单和权限码(根据用户进行筛选)', 1399985191002447872, '2024-02-13 14:55:54.140000', 1399985191002447872, '2024-02-13 14:55:54.140000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527156363320, 'SmsTemplateController#delete', '删除', 'DELETE', '/sms/template/delete', '短信模板配置', b'1', b'1', '短信模板配置 删除', 1399985191002447872, '2024-02-13 14:55:54.140000', 1399985191002447872, '2024-02-13 14:55:54.140000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527156363321, 'UserThirdController#bind', '绑定第三方账号', 'POST', '/user/third/bind', '用户三方登录管理', b'1', b'1', '用户三方登录管理 绑定第三方账号', 1399985191002447872, '2024-02-13 14:55:54.140000', 1399985191002447872, '2024-02-13 14:55:54.140000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527156363322, 'RoleController#existsByCode', '编码是否被使用', 'GET', '/role/existsByCode', '角色管理', b'1', b'1', '角色管理 编码是否被使用', 1399985191002447872, '2024-02-13 14:55:54.140000', 1399985191002447872, '2024-02-13 14:55:54.140000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527156363323, 'QuartzJobController#page', '分页', 'GET', '/quartz/page', '定时任务', b'1', b'1', '定时任务 分页', 1399985191002447872, '2024-02-13 14:55:54.140000', 1399985191002447872, '2024-02-13 14:55:54.140000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527156363324, 'DataRoleController#add', '添加', 'POST', '/data/role/add', '数据角色配置', b'1', b'1', '数据角色配置 添加', 1399985191002447872, '2024-02-13 14:55:54.140000', 1399985191002447872, '2024-02-13 14:55:54.140000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527156363325, 'SiteMessageController#read', '标为已读', 'POST', '/site/message/read', '站内信', b'1', b'1', '站内信 标为已读', 1399985191002447872, '2024-02-13 14:55:54.140000', 1399985191002447872, '2024-02-13 14:55:54.140000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527156363326, 'MessageTemplateController#existsByCode', '编码是否被使用(不包含自己)', 'GET', '/message/template/existsByCodeNotId', '消息模板', b'1', b'1', '消息模板 编码是否被使用(不包含自己)', 1399985191002447872, '2024-02-13 14:55:54.140000', 1399985191002447872, '2024-02-13 14:55:54.140000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527156363327, 'UserAssistController#validateCurrentPhoneChangeCaptcha', '验证当前用户发送更改手机号验证码', 'GET', '/user/validateCurrentPhoneChangeCaptcha', '用户操作支撑服务', b'1', b'1', '用户操作支撑服务 验证当前用户发送更改手机号验证码', 1399985191002447872, '2024-02-13 14:55:54.140000', 1399985191002447872, '2024-02-13 14:55:54.140000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527156363328, 'NcDemoController#recallNotice', '企微消息撤回', 'POST', '/nc/test/recallNotice', 'nc测试', b'1', b'1', 'nc测试 企微消息撤回', 1399985191002447872, '2024-02-13 14:55:54.140000', 1399985191002447872, '2024-02-13 14:55:54.140000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527156363329, 'WeChatMenuController#findById', '通过ID查询', 'GET', '/wechat/menu/findById', '微信菜单管理', b'1', b'1', '微信菜单管理 通过ID查询', 1399985191002447872, '2024-02-13 14:55:54.140000', 1399985191002447872, '2024-02-13 14:55:54.140000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527156363330, 'UserAdminController#add', '添加用户', 'POST', '/user/admin/add', '管理用户(管理员级别)', b'1', b'1', '管理用户(管理员级别) 添加用户', 1399985191002447872, '2024-02-13 14:55:54.140000', 1399985191002447872, '2024-02-13 14:55:54.140000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527156363331, 'UniPayController#syncPay', '支付状态同步', 'POST', '/unipay/syncPay', '统一支付接口', b'1', b'1', '统一支付接口 支付状态同步', 1399985191002447872, '2024-02-13 14:55:54.140000', 1399985191002447872, '2024-02-13 14:55:54.140000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527156363332, 'MailConfigController#existsByCode', '编码是否被使用(不包含自己)', 'GET', '/mail/config/existsByCodeNotId', '邮箱配置', b'1', b'1', '邮箱配置 编码是否被使用(不包含自己)', 1399985191002447872, '2024-02-13 14:55:54.140000', 1399985191002447872, '2024-02-13 14:55:54.140000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527156363333, 'PayWayInfoController#findAll', '获取全部', 'GET', '/pay/way/info/findAll', '支付方式管理', b'1', b'1', '支付方式管理 获取全部', 1399985191002447872, '2024-02-13 14:55:54.140000', 1399985191002447872, '2024-02-13 14:55:54.140000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527156363334, 'SwaggerWelcomeWebMvc#redirectToUi', 'redirectToUi', 'GET', '/swagger-ui.html', 'SwaggerWelcomeWebMvc', b'1', b'1', 'SwaggerWelcomeWebMvc redirectToUi', 1399985191002447872, '2024-02-13 14:55:54.140000', 1399985191002447872, '2024-02-13 14:55:54.140000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527156363335, 'WecomRobotConfigController#existsByCode', '编码是否被使用', 'GET', '/wecom/robot/config/existsByCode', '企业微信机器人配置', b'1', b'1', '企业微信机器人配置 编码是否被使用', 1399985191002447872, '2024-02-13 14:55:54.140000', 1399985191002447872, '2024-02-13 14:55:54.140000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527156363336, 'UserInfoController#existsEmail', '邮箱是否被使用(不包含自己)', 'GET', '/user/existsEmailNotId', '用户管理', b'1', b'1', '用户管理 邮箱是否被使用(不包含自己)', 1399985191002447872, '2024-02-13 14:55:54.140000', 1399985191002447872, '2024-02-13 14:55:54.140000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527156363337, 'WeChatTemplateController#findById', '通过ID查询', 'GET', '/wechat/template/findById', '微信模板消息', b'1', b'1', '微信模板消息 通过ID查询', 1399985191002447872, '2024-02-13 14:55:54.140000', 1399985191002447872, '2024-02-13 14:55:54.140000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527156363338, 'DatabaseTableController#page', '表列表分页', 'GET', '/gen/table/page', '数据库表信息', b'1', b'1', '数据库表信息 表列表分页', 1399985191002447872, '2024-02-13 14:55:54.140000', 1399985191002447872, '2024-02-13 14:55:54.140000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527156363339, 'PermMenuController#existsByPermCode', '编码是否被使用', 'GET', '/perm/menu/existsByPermCode', '菜单和权限码', b'1', b'1', '菜单和权限码 编码是否被使用', 1399985191002447872, '2024-02-13 14:55:54.140000', 1399985191002447872, '2024-02-13 14:55:54.140000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527156363340, 'PlatformConfigController#getConfig', '获取平台配置', 'GET', '/platform/config/getConfig', '支付平台配置控制器', b'1', b'1', '支付平台配置控制器 获取平台配置', 1399985191002447872, '2024-02-13 14:55:54.140000', 1399985191002447872, '2024-02-13 14:55:54.140000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527156363341, 'SmsTemplateController#add', '添加', 'POST', '/sms/template/add', '短信模板配置', b'1', b'1', '短信模板配置 添加', 1399985191002447872, '2024-02-13 14:55:54.140000', 1399985191002447872, '2024-02-13 14:55:54.140000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527156363342, 'DingRobotConfigController#existsByCode', '编码是否被使用', 'GET', '/ding/robot/config/existsByCode', '钉钉机器人配置', b'1', b'1', '钉钉机器人配置 编码是否被使用', 1399985191002447872, '2024-02-13 14:55:54.140000', 1399985191002447872, '2024-02-13 14:55:54.140000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527156363343, 'DeptController#update', '更新', 'POST', '/dept/update', '部门管理', b'1', b'1', '部门管理 更新', 1399985191002447872, '2024-02-13 14:55:54.140000', 1399985191002447872, '2024-02-13 14:55:54.140000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527156363344, 'UserThirdController#page', '分页', 'GET', '/user/third/page', '用户三方登录管理', b'1', b'1', '用户三方登录管理 分页', 1399985191002447872, '2024-02-13 14:55:54.140000', 1399985191002447872, '2024-02-13 14:55:54.140000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527156363345, 'WecomRobotConfigController#delete', '删除', 'DELETE', '/wecom/robot/config/delete', '企业微信机器人配置', b'1', b'1', '企业微信机器人配置 删除', 1399985191002447872, '2024-02-13 14:55:54.140000', 1399985191002447872, '2024-02-13 14:55:54.140000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527156363346, 'WecomRobotConfigController#existsByCode', '编码是否被使用(不包含自己)', 'GET', '/wecom/robot/config/existsByCodeNotId', '企业微信机器人配置', b'1', b'1', '企业微信机器人配置 编码是否被使用(不包含自己)', 1399985191002447872, '2024-02-13 14:55:54.140000', 1399985191002447872, '2024-02-13 14:55:54.140000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527156363347, 'WeChatTemplateController#sync', '同步消息模板数据', 'POST', '/wechat/template/sync', '微信模板消息', b'1', b'1', '微信模板消息 同步消息模板数据', 1399985191002447872, '2024-02-13 14:55:54.140000', 1399985191002447872, '2024-02-13 14:55:54.140000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527156363348, 'CashierController#simplePayCashier', '创建支付订单并发起', 'POST', '/demo/cashier/simplePayCashier', '结算台演示', b'1', b'1', '结算台演示 创建支付订单并发起', 1399985191002447872, '2024-02-13 14:55:54.140000', 1399985191002447872, '2024-02-13 14:55:54.140000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527156363349, 'LoginTypeController#update', '修改登录方式(返回登录方式对象)', 'POST', '/loginType/update', '登录方式管理', b'1', b'1', '登录方式管理 修改登录方式(返回登录方式对象)', 1399985191002447872, '2024-02-13 14:55:54.140000', 1399985191002447872, '2024-02-13 14:55:54.140000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527156363350, 'PayApiConfigController#update', '更新', 'POST', '/pay/api/config/update', '支付接口配置', b'1', b'1', '支付接口配置 更新', 1399985191002447872, '2024-02-13 14:55:54.140000', 1399985191002447872, '2024-02-13 14:55:54.140000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527156363351, 'UniPayController#pay', '统一下单', 'POST', '/unipay/pay', '统一支付接口', b'1', b'1', '统一支付接口 统一下单', 1399985191002447872, '2024-02-13 14:55:54.140000', 1399985191002447872, '2024-02-13 14:55:54.140000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527156363352, 'UserInfoController#existsUsername', '账号是否被使用', 'GET', '/user/existsUsername', '用户管理', b'1', b'1', '用户管理 账号是否被使用', 1399985191002447872, '2024-02-13 14:55:54.140000', 1399985191002447872, '2024-02-13 14:55:54.140000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527156363353, 'UserAssistController#validatePhoneForgetCaptcha', '验证找回密码手机验证码', 'GET', '/user/validatePhoneForgetCaptcha', '用户操作支撑服务', b'1', b'1', '用户操作支撑服务 验证找回密码手机验证码', 1399985191002447872, '2024-02-13 14:55:54.140000', 1399985191002447872, '2024-02-13 14:55:54.140000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527156363354, 'CodeGeneratorController#genCodeZip', '下载生成代码', 'POST', '/gen/code/genCodeZip', '代码生成', b'1', b'1', '代码生成 下载生成代码', 1399985191002447872, '2024-02-13 14:55:54.140000', 1399985191002447872, '2024-02-13 14:55:54.140000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527156363355, 'PermPathController#update', '更新权限', 'POST', '/perm/path/update', '请求权限管理', b'1', b'1', '请求权限管理 更新权限', 1399985191002447872, '2024-02-13 14:55:54.140000', 1399985191002447872, '2024-02-13 14:55:54.140000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527156363356, 'UserAdminController#unlockBatch', '批量解锁用户', 'POST', '/user/admin/unlockBatch', '管理用户(管理员级别)', b'1', b'1', '管理用户(管理员级别) 批量解锁用户', 1399985191002447872, '2024-02-13 14:55:54.140000', 1399985191002447872, '2024-02-13 14:55:54.140000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527156363357, 'BaseApiController#echo', '回声测试', 'GET', '/echo', '系统基础接口', b'1', b'1', '系统基础接口 回声测试', 1399985191002447872, '2024-02-13 14:55:54.140000', 1399985191002447872, '2024-02-13 14:55:54.140000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527156363358, 'WeChatMediaController#uploadFile', '上传素材', 'POST', '/wechat/media/uploadFile', '微信素材管理', b'1', b'1', '微信素材管理 上传素材', 1399985191002447872, '2024-02-13 14:55:54.140000', 1399985191002447872, '2024-02-13 14:55:54.140000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527156363359, 'UserAssistController#sendCurrentPhoneChangeCaptcha', '给当前用户发送更改手机号验证码', 'POST', '/user/sendCurrentPhoneChangeCaptcha', '用户操作支撑服务', b'1', b'1', '用户操作支撑服务 给当前用户发送更改手机号验证码', 1399985191002447872, '2024-02-13 14:55:54.140000', 1399985191002447872, '2024-02-13 14:55:54.140000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527156363360, 'SystemParamController#existsByKey', '判断编码是否存在', 'GET', '/system/param/existsByKey', '系统参数', b'1', b'1', '系统参数 判断编码是否存在', 1399985191002447872, '2024-02-13 14:55:54.140000', 1399985191002447872, '2024-02-13 14:55:54.140000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527156363361, 'PayOrderController#page', '分页查询', 'GET', '/order/pay/page', '支付订单控制器', b'1', b'1', '支付订单控制器 分页查询', 1399985191002447872, '2024-02-13 14:55:54.140000', 1399985191002447872, '2024-02-13 14:55:54.140000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527156363362, 'GeneralTemplateController#findById', '通过ID查询', 'GET', '/general/template/findById', '通用模板管理', b'1', b'1', '通用模板管理 通过ID查询', 1399985191002447872, '2024-02-13 14:55:54.140000', 1399985191002447872, '2024-02-13 14:55:54.140000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527156363363, 'CashierController#getWxAuthUrl', '获取微信授权链接', 'GET', '/demo/cashier/getWxAuthUrl', '结算台演示', b'1', b'1', '结算台演示 获取微信授权链接', 1399985191002447872, '2024-02-13 14:55:54.140000', 1399985191002447872, '2024-02-13 14:55:54.140000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527156363364, 'DictionaryController#findAll', '查询全部', 'GET', '/dict/findAll', '字典', b'1', b'1', '字典 查询全部', 1399985191002447872, '2024-02-13 14:55:54.140000', 1399985191002447872, '2024-02-13 14:55:54.140000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527156363365, 'NcDemoController#sendMsg', '邮件消息测试', 'POST', '/nc/test/sendMsg', 'nc测试', b'1', b'1', 'nc测试 邮件消息测试', 1399985191002447872, '2024-02-13 14:55:54.140000', 1399985191002447872, '2024-02-13 14:55:54.140000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527156363366, 'DictionaryItemController#findAll', '获取全部字典项', 'GET', '/dict/item/findAll', '字典项', b'1', b'1', '字典项 获取全部字典项', 1399985191002447872, '2024-02-13 14:55:54.140000', 1399985191002447872, '2024-02-13 14:55:54.140000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527156363367, 'PayChannelConfigController#update', '更新', 'POST', '/pay/channel/config/update', '支付通道信息', b'1', b'1', '支付通道信息 更新', 1399985191002447872, '2024-02-13 14:55:54.140000', 1399985191002447872, '2024-02-13 14:55:54.140000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527156363368, 'PayRefundOrderController#listByChannel', '通道退款订单列表查询', 'GET', '/order/refund/listByChannel', '支付退款控制器', b'1', b'1', '支付退款控制器 通道退款订单列表查询', 1399985191002447872, '2024-02-13 14:55:54.140000', 1399985191002447872, '2024-02-13 14:55:54.140000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527156363369, 'DynamicDataSourceController#findAll', '查询所有', 'GET', '/dynamic/source/findAll', '动态数据源管理', b'1', b'1', '动态数据源管理 查询所有', 1399985191002447872, '2024-02-13 14:55:54.140000', 1399985191002447872, '2024-02-13 14:55:54.140000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527156363370, 'WeChatTemplateController#page', '分页查询', 'GET', '/wechat/template/page', '微信模板消息', b'1', b'1', '微信模板消息 分页查询', 1399985191002447872, '2024-02-13 14:55:54.140000', 1399985191002447872, '2024-02-13 14:55:54.140000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527156363371, 'DictionaryController#add', '添加', 'POST', '/dict/add', '字典', b'1', b'1', '字典 添加', 1399985191002447872, '2024-02-13 14:55:54.140000', 1399985191002447872, '2024-02-13 14:55:54.140000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527156363372, 'UserAdminController#page', '分页', 'GET', '/user/admin/page', '管理用户(管理员级别)', b'1', b'1', '管理用户(管理员级别) 分页', 1399985191002447872, '2024-02-13 14:55:54.140000', 1399985191002447872, '2024-02-13 14:55:54.140000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527156363373, 'SwaggerConfigResource#openapiJson', 'openapiJson', 'GET', '/v3/api-docs/swagger-config', 'SwaggerConfigResource', b'1', b'1', 'SwaggerConfigResource openapiJson', 1399985191002447872, '2024-02-13 14:55:54.140000', 1399985191002447872, '2024-02-13 14:55:54.140000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1757297527156363374, 'PaySyncRecordController#page', '分页查询', 'GET', '/record/sync/page', '支付同步记录控制器', b'1', b'1', '支付同步记录控制器 分页查询', 1399985191002447872, '2024-02-13 14:55:54.140000', 1399985191002447872, '2024-02-13 14:55:54.140000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1762112351862206464, 'VoucherController#findById', '查询储值卡详情', 'GET', '/voucher/findById', '储值卡管理', b'1', b'1', '储值卡管理 查询储值卡详情', 1399985191002447872, '2024-02-26 21:48:17.805000', 1399985191002447872, '2024-02-26 21:48:17.805000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1762112351862206465, 'WalletConfigController#update', '更新', 'POST', '/wallet/config/update', '钱包配置', b'1', b'1', '钱包配置 更新', 1399985191002447872, '2024-02-26 21:48:17.805000', 1399985191002447872, '2024-02-26 21:48:17.805000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1762112351862206466, 'ClientNoticeTaskController#recordPage', '分页查询', 'GET', '/task/notice/record/page', '客户系统通知任务', b'1', b'1', '客户系统通知任务 分页查询', 1399985191002447872, '2024-02-26 21:48:17.805000', 1399985191002447872, '2024-02-26 21:48:17.805000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1762112351862206467, 'WalletConfigController#findPayWays', '支付宝支持支付方式', 'GET', '/wallet/config/findPayWays', '钱包配置', b'1', b'1', '钱包配置 支付宝支持支付方式', 1399985191002447872, '2024-02-26 21:48:17.805000', 1399985191002447872, '2024-02-26 21:48:17.805000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1762112351862206468, 'VoucherController#voucherImport', '导入储值卡', 'POST', '/voucher/import', '储值卡管理', b'1', b'1', '储值卡管理 导入储值卡', 1399985191002447872, '2024-02-26 21:48:17.805000', 1399985191002447872, '2024-02-26 21:48:17.805000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1762112351862206469, 'VoucherController#recordFindById', '查询记录详情', 'GET', '/voucher/record/findById', '储值卡管理', b'1', b'1', '储值卡管理 查询记录详情', 1399985191002447872, '2024-02-26 21:48:17.805000', 1399985191002447872, '2024-02-26 21:48:17.805000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1762112351862206470, 'CashController#recordPage', '记录分页', 'GET', '/cash/record/page', '现金控制器', b'1', b'1', '现金控制器 记录分页', 1399985191002447872, '2024-02-26 21:48:17.805000', 1399985191002447872, '2024-02-26 21:48:17.805000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1762112351862206471, 'AlipayController#recordPage', '记录分页', 'GET', '/alipay/record/page', '支付宝控制器', b'1', b'1', '支付宝控制器 记录分页', 1399985191002447872, '2024-02-26 21:48:17.805000', 1399985191002447872, '2024-02-26 21:48:17.805000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1762112351862206472, 'CashConfigController#getConfig', '获取配置', 'GET', '/cash/config/getConfig', '现金支付配置', b'1', b'1', '现金支付配置 获取配置', 1399985191002447872, '2024-02-26 21:48:17.805000', 1399985191002447872, '2024-02-26 21:48:17.805000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1762112351862206473, 'ClientNoticeReceiveController#pay', '支付消息(对象接收)', 'POST', '/demo/callback/payObject', '回调测试', b'1', b'1', '回调测试 支付消息(对象接收)', 1399985191002447872, '2024-02-26 21:48:17.805000', 1399985191002447872, '2024-02-26 21:48:17.805000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1762112351862206474, 'VoucherConfigController#findPayWays', '支付宝支持支付方式', 'GET', '/voucher/config/findPayWays', '储值卡支付配置', b'1', b'1', '储值卡支付配置 支付宝支持支付方式', 1399985191002447872, '2024-02-26 21:48:17.805000', 1399985191002447872, '2024-02-26 21:48:17.805000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1762112351862206475, 'ClientNoticeReceiveController#refund', '退款消息(对象)', 'POST', '/demo/callback/refundObject', '回调测试', b'1', b'1', '回调测试 退款消息(对象)', 1399985191002447872, '2024-02-26 21:48:17.805000', 1399985191002447872, '2024-02-26 21:48:17.805000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1762112351862206476, 'WalletController#recharge', '充值', 'POST', '/wallet/recharge', '钱包管理', b'1', b'1', '钱包管理 充值', 1399985191002447872, '2024-02-26 21:48:17.805000', 1399985191002447872, '2024-02-26 21:48:17.805000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1762112351866400768, 'VoucherController#page', '储值卡分页', 'GET', '/voucher/page', '储值卡管理', b'1', b'1', '储值卡管理 储值卡分页', 1399985191002447872, '2024-02-26 21:48:17.806000', 1399985191002447872, '2024-02-26 21:48:17.806000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1762112351866400769, 'PayReturnController#wechat', '微信同步通知', 'GET', '/return/pay/wechat', '支付同步通知', b'1', b'1', '支付同步通知 微信同步通知', 1399985191002447872, '2024-02-26 21:48:17.806000', 1399985191002447872, '2024-02-26 21:48:17.806000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1762112351866400770, 'WalletController#findRecordById', '查询记录详情', 'GET', '/wallet/record/findById', '钱包管理', b'1', b'1', '钱包管理 查询记录详情', 1399985191002447872, '2024-02-26 21:48:17.806000', 1399985191002447872, '2024-02-26 21:48:17.806000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1762112351866400771, 'WalletConfigController#getConfig', '获取配置', 'GET', '/wallet/config/getConfig', '钱包配置', b'1', b'1', '钱包配置 获取配置', 1399985191002447872, '2024-02-26 21:48:17.806000', 1399985191002447872, '2024-02-26 21:48:17.806000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1762112351866400772, 'WalletController#recordPage', '记录分页', 'GET', '/wallet/record/page', '钱包管理', b'1', b'1', '钱包管理 记录分页', 1399985191002447872, '2024-02-26 21:48:17.806000', 1399985191002447872, '2024-02-26 21:48:17.806000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1762112351866400773, 'VoucherController#existsByCardNo', '判断卡号是否存在', 'GET', '/voucher/existsByCardNo', '储值卡管理', b'1', b'1', '储值卡管理 判断卡号是否存在', 1399985191002447872, '2024-02-26 21:48:17.806000', 1399985191002447872, '2024-02-26 21:48:17.806000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1762112351866400774, 'WalletController#page', '钱包分页', 'GET', '/wallet/page', '钱包管理', b'1', b'1', '钱包管理 钱包分页', 1399985191002447872, '2024-02-26 21:48:17.806000', 1399985191002447872, '2024-02-26 21:48:17.806000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1762112351866400775, 'ClientNoticeTaskController#findById', '查询单条', 'GET', '/task/notice/findById', '客户系统通知任务', b'1', b'1', '客户系统通知任务 查询单条', 1399985191002447872, '2024-02-26 21:48:17.806000', 1399985191002447872, '2024-02-26 21:48:17.806000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1762112351866400776, 'CashController#findById', '查询记录详情', 'GET', '/cash/record/findById', '现金控制器', b'1', b'1', '现金控制器 查询记录详情', 1399985191002447872, '2024-02-26 21:48:17.806000', 1399985191002447872, '2024-02-26 21:48:17.806000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1762112351866400777, 'WeChatPayController#findById', '查询记录详情', 'GET', '/wechat/pay/record/findById', '微信支付控制器', b'1', b'1', '微信支付控制器 查询记录详情', 1399985191002447872, '2024-02-26 21:48:17.806000', 1399985191002447872, '2024-02-26 21:48:17.806000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1762112351866400778, 'ClientNoticeReceiveController#pay', '支付消息(map接收)', 'POST', '/demo/callback/pay', '回调测试', b'1', b'1', '回调测试 支付消息(map接收)', 1399985191002447872, '2024-02-26 21:48:17.806000', 1399985191002447872, '2024-02-26 21:48:17.806000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1762112351866400779, 'VoucherConfigController#getConfig', '获取配置', 'GET', '/voucher/config/getConfig', '储值卡支付配置', b'1', b'1', '储值卡支付配置 获取配置', 1399985191002447872, '2024-02-26 21:48:17.806000', 1399985191002447872, '2024-02-26 21:48:17.806000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1762112351866400780, 'WalletController#create', '创建钱包', 'POST', '/wallet/create', '钱包管理', b'1', b'1', '钱包管理 创建钱包', 1399985191002447872, '2024-02-26 21:48:17.806000', 1399985191002447872, '2024-02-26 21:48:17.806000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1762112351866400781, 'ClientNoticeTaskController#findRecordById', '查询单条', 'GET', '/task/notice/record/findById', '客户系统通知任务', b'1', b'1', '客户系统通知任务 查询单条', 1399985191002447872, '2024-02-26 21:48:17.806000', 1399985191002447872, '2024-02-26 21:48:17.806000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1762112351866400782, 'CashConfigController#update', '更新', 'POST', '/cash/config/update', '现金支付配置', b'1', b'1', '现金支付配置 更新', 1399985191002447872, '2024-02-26 21:48:17.806000', 1399985191002447872, '2024-02-26 21:48:17.806000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1762112351866400783, 'ClientNoticeReceiveController#refund', '退款消息', 'POST', '/demo/callback/refund', '回调测试', b'1', b'1', '回调测试 退款消息', 1399985191002447872, '2024-02-26 21:48:17.806000', 1399985191002447872, '2024-02-26 21:48:17.806000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1762112351866400784, 'WeChatPayController#recordPage', '记录分页', 'GET', '/wechat/pay/record/page', '微信支付控制器', b'1', b'1', '微信支付控制器 记录分页', 1399985191002447872, '2024-02-26 21:48:17.806000', 1399985191002447872, '2024-02-26 21:48:17.806000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1762112351866400785, 'PayReturnController#alipay', '支付宝同步跳转连接', 'GET', '/return/pay/alipay', '支付同步通知', b'1', b'1', '支付同步通知 支付宝同步跳转连接', 1399985191002447872, '2024-02-26 21:48:17.806000', 1399985191002447872, '2024-02-26 21:48:17.806000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1762112351866400786, 'WalletController#findById', '查询钱包详情', 'GET', '/wallet/findById', '钱包管理', b'1', b'1', '钱包管理 查询钱包详情', 1399985191002447872, '2024-02-26 21:48:17.806000', 1399985191002447872, '2024-02-26 21:48:17.806000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1762112351866400787, 'CashConfigController#findPayWays', '支付宝支持支付方式', 'GET', '/cash/config/findPayWays', '现金支付配置', b'1', b'1', '现金支付配置 支付宝支持支付方式', 1399985191002447872, '2024-02-26 21:48:17.806000', 1399985191002447872, '2024-02-26 21:48:17.806000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1762112351866400788, 'AlipayController#findById', '查询记录详情', 'GET', '/alipay/record/findById', '支付宝控制器', b'1', b'1', '支付宝控制器 查询记录详情', 1399985191002447872, '2024-02-26 21:48:17.806000', 1399985191002447872, '2024-02-26 21:48:17.806000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1762112351866400789, 'VoucherConfigController#update', '更新', 'POST', '/voucher/config/update', '储值卡支付配置', b'1', b'1', '储值卡支付配置 更新', 1399985191002447872, '2024-02-26 21:48:17.806000', 1399985191002447872, '2024-02-26 21:48:17.806000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1762112351866400790, 'ClientNoticeTaskController#page', '分页查询', 'GET', '/task/notice/page', '客户系统通知任务', b'1', b'1', '客户系统通知任务 分页查询', 1399985191002447872, '2024-02-26 21:48:17.806000', 1399985191002447872, '2024-02-26 21:48:17.806000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1762112351866400791, 'VoucherController#recordPage', '记录分页', 'GET', '/voucher/record/page', '储值卡管理', b'1', b'1', '储值卡管理 记录分页', 1399985191002447872, '2024-02-26 21:48:17.806000', 1399985191002447872, '2024-02-26 21:48:17.806000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1762112351866400792, 'ClientNoticeTaskController#resetSend', '重新发送消息通知', 'POST', '/task/notice/resetSend', '客户系统通知任务', b'1', b'1', '客户系统通知任务 重新发送消息通知', 1399985191002447872, '2024-02-26 21:48:17.806000', 1399985191002447872, '2024-02-26 21:48:17.806000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1762112351866400793, 'WalletController#deduct', '扣减', 'POST', '/wallet/deduct', '钱包管理', b'1', b'1', '钱包管理 扣减', 1399985191002447872, '2024-02-26 21:48:17.806000', 1399985191002447872, '2024-02-26 21:48:17.806000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1762112351866400794, 'WalletController#existsByUserId', '判断用户是否开通了钱包', 'GET', '/wallet/existsByUserId', '钱包管理', b'1', b'1', '钱包管理 判断用户是否开通了钱包', 1399985191002447872, '2024-02-26 21:48:17.806000', 1399985191002447872, '2024-02-26 21:48:17.806000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1764663810424303616, 'ReconcileOrderController#pageDiff', '对账差异分页', 'GET', '/order/reconcile/diff/page', '对账控制器', b'1', b'1', '对账控制器 对账差异分页', 1399985191002447872, '2024-03-04 22:46:52.930000', 1399985191002447872, '2024-03-04 22:46:52.930000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1764663810424303617, 'ReconcileOrderController#findDiffById', '对账差异详情', 'GET', '/order/reconcile/diff/findById', '对账控制器', b'1', b'1', '对账控制器 对账差异详情', 1399985191002447872, '2024-03-04 22:46:52.930000', 1399985191002447872, '2024-03-04 22:46:52.930000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1764663810424303618, 'ReconcileOrderController#findDetailById', '对账明细详情', 'GET', '/order/reconcile/detail/findById', '对账控制器', b'1', b'1', '对账控制器 对账明细详情', 1399985191002447872, '2024-03-04 22:46:52.930000', 1399985191002447872, '2024-03-04 22:46:52.930000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1764663810424303619, 'ReconcileOrderController#compare', '手动触发对账单比对', 'POST', '/order/reconcile/compare', '对账控制器', b'1', b'1', '对账控制器 手动触发对账单比对', 1399985191002447872, '2024-03-04 22:46:52.930000', 1399985191002447872, '2024-03-04 22:46:52.930000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1764663810424303620, 'ReconcileOrderController#pageDetail', '对账明细分页', 'GET', '/order/reconcile/detail/page', '对账控制器', b'1', b'1', '对账控制器 对账明细分页', 1399985191002447872, '2024-03-04 22:46:52.930000', 1399985191002447872, '2024-03-04 22:46:52.930000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1768219994971140096, 'RefundOrderController#resetRefund', '重新发起退款', 'POST', '/order/refund/resetRefund', '支付退款控制器', b'1', b'1', '支付退款控制器 重新发起退款', 1399985191002447872, '2024-03-14 18:17:53.396000', 1399985191002447872, '2024-03-14 18:17:53.397000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1768219994979528704, 'UnionPayConfigController#getConfig', '获取配置', 'GET', '/union/pay/config/getConfig', '云闪付配置', b'1', b'1', '云闪付配置 获取配置', 1399985191002447872, '2024-03-14 18:17:53.398000', 1399985191002447872, '2024-03-14 18:17:53.398000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1768219994979528705, 'UnionPayController#findById', '查询记录详情', 'GET', '/union/pay/record/findById', '云闪付控制器', b'1', b'1', '云闪付控制器 查询记录详情', 1399985191002447872, '2024-03-14 18:17:53.398000', 1399985191002447872, '2024-03-14 18:17:53.398000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1768219994979528706, 'UnionPayController#recordPage', '记录分页', 'GET', '/union/pay/record/page', '云闪付控制器', b'1', b'1', '云闪付控制器 记录分页', 1399985191002447872, '2024-03-14 18:17:53.398000', 1399985191002447872, '2024-03-14 18:17:53.398000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1768219994979528707, 'UnionPayConfigController#update', '更新', 'POST', '/union/pay/config/update', '云闪付配置', b'1', b'1', '云闪付配置 更新', 1399985191002447872, '2024-03-14 18:17:53.398000', 1399985191002447872, '2024-03-14 18:17:53.398000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1768219994979528708, 'PayReturnController#union', '云闪付同步通知', 'POST', '/return/pay/union', '支付同步通知', b'1', b'1', '支付同步通知 云闪付同步通知', 1399985191002447872, '2024-03-14 18:17:53.398000', 1399985191002447872, '2024-03-14 18:17:53.398000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1768219994979528709, 'PayCallbackController#unionPayNotify', '云闪付支付信息回调', 'POST', '/callback/pay/union', '支付通道信息回调', b'1', b'1', '支付通道信息回调 云闪付支付信息回调', 1399985191002447872, '2024-03-14 18:17:53.398000', 1399985191002447872, '2024-03-14 18:17:53.398000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1768219994979528710, 'UnionPayConfigController#toBase64', '读取证书文件内容', 'POST', '/union/pay/config/toBase64', '云闪付配置', b'1', b'1', '云闪付配置 读取证书文件内容', 1399985191002447872, '2024-03-14 18:17:53.398000', 1399985191002447872, '2024-03-14 18:17:53.398000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1768219994979528711, 'UnionPayConfigController#findPayWays', '支持的支付方式', 'GET', '/union/pay/config/findPayWays', '云闪付配置', b'1', b'1', '云闪付配置 支持的支付方式', 1399985191002447872, '2024-03-14 18:17:53.398000', 1399985191002447872, '2024-03-14 18:17:53.398000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1772446740356460544, 'CockpitReportController#getRefundChannelInfo', '显示通道退款订单金额和订单数', 'GET', '/report/cockpit/getRefundChannelInfo', '驾驶舱接口', b'1', b'1', '驾驶舱接口 显示通道退款订单金额和订单数', 1399985191002447872, '2024-03-26 10:13:28.025000', 1399985191002447872, '2024-03-26 10:13:28.025000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1772446740356460545, 'CockpitReportController#getRefundAmount', '退款金额(分)', 'GET', '/report/cockpit/getRefundAmount', '驾驶舱接口', b'1', b'1', '驾驶舱接口 退款金额(分)', 1399985191002447872, '2024-03-26 10:13:28.025000', 1399985191002447872, '2024-03-26 10:13:28.025000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1772446740356460546, 'CockpitReportController#getRefundOrderCount', '退款订单数量', 'GET', '/report/cockpit/getRefundOrderCount', '驾驶舱接口', b'1', b'1', '驾驶舱接口 退款订单数量', 1399985191002447872, '2024-03-26 10:13:28.025000', 1399985191002447872, '2024-03-26 10:13:28.025000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1772446740356460547, 'CockpitReportController#getPayChannelInfo', '显示通道支付订单金额和订单数', 'GET', '/report/cockpit/getPayChannelInfo', '驾驶舱接口', b'1', b'1', '驾驶舱接口 显示通道支付订单金额和订单数', 1399985191002447872, '2024-03-26 10:13:28.025000', 1399985191002447872, '2024-03-26 10:13:28.025000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1772446740356460548, 'ReconcileOrderController#upload', '手动上传对账单文件', 'POST', '/order/reconcile/upload', '对账控制器', b'1', b'1', '对账控制器 手动上传对账单文件', 1399985191002447872, '2024-03-26 10:13:28.025000', 1399985191002447872, '2024-03-26 10:13:28.025000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1772446740356460549, 'CockpitReportController#getPayAmount', '支付金额(分)', 'GET', '/report/cockpit/getPayAmount', '驾驶舱接口', b'1', b'1', '驾驶舱接口 支付金额(分)', 1399985191002447872, '2024-03-26 10:13:28.025000', 1399985191002447872, '2024-03-26 10:13:28.025000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1772446740356460550, 'CockpitReportController#getPayOrderCount', '支付订单数量', 'GET', '/report/cockpit/getPayOrderCount', '驾驶舱接口', b'1', b'1', '驾驶舱接口 支付订单数量', 1399985191002447872, '2024-03-26 10:13:28.025000', 1399985191002447872, '2024-03-26 10:13:28.025000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1780216505637138432, 'AllocationOrderController#sync', '同步分账结果', 'POST', '/order/allocation/sync', '对账订单控制器', b'1', b'1', '对账订单控制器 同步分账结果', 1399985191002447872, '2024-04-16 20:47:44.424000', 1399985191002447872, '2024-04-17 10:09:40.850000', b'1', 0);
-INSERT INTO `iam_perm_path` VALUES (1780216505637138433, 'AllocationGroupController#findReceiversByGroups', '查询分账接收方信息', 'GET', '/allocation/group/findReceiversByGroups', '分账组', b'1', b'1', '分账组 查询分账接收方信息', 1399985191002447872, '2024-04-16 20:47:44.424000', 1399985191002447872, '2024-04-16 20:47:44.424000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1780216505637138434, 'AllocationGroupController#unbindReceiver', '取消绑定接收者', 'POST', '/allocation/group/unbindReceiver', '分账组', b'1', b'1', '分账组 取消绑定接收者', 1399985191002447872, '2024-04-16 20:47:44.424000', 1399985191002447872, '2024-04-16 20:47:44.424000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1780216505637138435, 'PayOrderController#allocation', '发起分账', 'POST', '/order/pay/allocation', '支付订单控制器', b'1', b'1', '支付订单控制器 发起分账', 1399985191002447872, '2024-04-16 20:47:44.424000', 1399985191002447872, '2024-04-16 20:47:44.424000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1780216505637138436, 'AllocationReceiverController#registerByGateway', '同步到三方支付系统中', 'POST', '/allocation/receiver/registerByGateway', '对账接收方控制器', b'1', b'1', '对账接收方控制器 同步到三方支付系统中', 1399985191002447872, '2024-04-16 20:47:44.424000', 1399985191002447872, '2024-04-17 10:09:40.850000', b'1', 0);
-INSERT INTO `iam_perm_path` VALUES (1780216505637138437, 'AllocationGroupController#unbindReceivers', '批量取消绑定接收者', 'POST', '/allocation/group/unbindReceivers', '分账组', b'1', b'1', '分账组 批量取消绑定接收者', 1399985191002447872, '2024-04-16 20:47:44.424000', 1399985191002447872, '2024-04-16 20:47:44.424000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1780216505637138438, 'AllocationOrderController#findDetailById', '查询明细详情', 'GET', '/order/allocation/detail/findById', '对账订单控制器', b'1', b'1', '对账订单控制器 查询明细详情', 1399985191002447872, '2024-04-16 20:47:44.424000', 1399985191002447872, '2024-04-17 10:09:40.849000', b'1', 0);
-INSERT INTO `iam_perm_path` VALUES (1780216505637138439, 'AllocationOrderController#findChannels', '获取可以分账的通道', 'GET', '/order/allocation/findChannels', '对账订单控制器', b'1', b'1', '对账订单控制器 获取可以分账的通道', 1399985191002447872, '2024-04-16 20:47:44.424000', 1399985191002447872, '2024-04-17 10:09:40.849000', b'1', 0);
-INSERT INTO `iam_perm_path` VALUES (1780216505637138440, 'SystemMonitorController#getSystemInfo', '获取系统消息', 'GET', '/monitor/system/getSystemInfo', '系统信息监控', b'1', b'1', '系统信息监控 获取系统消息', 1399985191002447872, '2024-04-16 20:47:44.424000', 1399985191002447872, '2024-04-16 20:47:44.424000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1780216505637138441, 'AllocationReceiverController#page', '分页', 'GET', '/allocation/receiver/page', '对账接收方控制器', b'1', b'1', '对账接收方控制器 分页', 1399985191002447872, '2024-04-16 20:47:44.424000', 1399985191002447872, '2024-04-17 10:09:40.849000', b'1', 0);
-INSERT INTO `iam_perm_path` VALUES (1780216505637138442, 'AllocationGroupController#clearDefault', '清除默认分账组', 'POST', '/allocation/group/clearDefault', '分账组', b'1', b'1', '分账组 清除默认分账组', 1399985191002447872, '2024-04-16 20:47:44.424000', 1399985191002447872, '2024-04-16 20:47:44.424000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1780216505637138443, 'AllocationGroupController#create', '创建', 'POST', '/allocation/group/create', '分账组', b'1', b'1', '分账组 创建', 1399985191002447872, '2024-04-16 20:47:44.424000', 1399985191002447872, '2024-04-16 20:47:44.424000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1780216505637138444, 'AllocationOrderController#finish', '分账完结', 'POST', '/order/allocation/finish', '对账订单控制器', b'1', b'1', '对账订单控制器 分账完结', 1399985191002447872, '2024-04-16 20:47:44.424000', 1399985191002447872, '2024-04-17 10:09:40.848000', b'1', 0);
-INSERT INTO `iam_perm_path` VALUES (1780216505637138445, 'UniPayController#allocationFinish', '分账完结接口', 'POST', '/unipay/allocationFinish', '统一支付接口', b'1', b'1', '统一支付接口 分账完结接口', 1399985191002447872, '2024-04-16 20:47:44.424000', 1399985191002447872, '2024-04-16 20:47:44.424000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1780216505637138446, 'AllocationOrderController#findById', '查询详情', 'GET', '/order/allocation/findById', '对账订单控制器', b'1', b'1', '对账订单控制器 查询详情', 1399985191002447872, '2024-04-16 20:47:44.424000', 1399985191002447872, '2024-04-17 10:09:40.848000', b'1', 0);
-INSERT INTO `iam_perm_path` VALUES (1780216505637138447, 'SystemMonitorController#getRedisInfo', '获取Redis信息', 'GET', '/monitor/system/getRedisInfo', '系统信息监控', b'1', b'1', '系统信息监控 获取Redis信息', 1399985191002447872, '2024-04-16 20:47:44.424000', 1399985191002447872, '2024-04-16 20:47:44.424000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1780216505637138448, 'AllocationReceiverController#removeByGateway', '从三方支付系统中删除', 'POST', '/allocation/receiver/removeByGateway', '对账接收方控制器', b'1', b'1', '对账接收方控制器 从三方支付系统中删除', 1399985191002447872, '2024-04-16 20:47:44.424000', 1399985191002447872, '2024-04-17 10:09:40.848000', b'1', 0);
-INSERT INTO `iam_perm_path` VALUES (1780216505637138449, 'AllocationReceiverController#findReceiverTypeByChannel', '根据通道获取分账接收方类型', 'GET', '/allocation/receiver/findReceiverTypeByChannel', '对账接收方控制器', b'1', b'1', '对账接收方控制器 根据通道获取分账接收方类型', 1399985191002447872, '2024-04-16 20:47:44.424000', 1399985191002447872, '2024-04-17 10:09:40.847000', b'1', 0);
-INSERT INTO `iam_perm_path` VALUES (1780216505637138450, 'AllocationGroupController#delete', '删除', 'POST', '/allocation/group/delete', '分账组', b'1', b'1', '分账组 删除', 1399985191002447872, '2024-04-16 20:47:44.424000', 1399985191002447872, '2024-04-16 20:47:44.424000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1780216505637138451, 'AllocationGroupController#update', '修改', 'POST', '/allocation/group/update', '分账组', b'1', b'1', '分账组 修改', 1399985191002447872, '2024-04-16 20:47:44.424000', 1399985191002447872, '2024-04-16 20:47:44.424000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1780216505637138452, 'AllocationReceiverController#add', '新增', 'POST', '/allocation/receiver/add', '对账接收方控制器', b'1', b'1', '对账接收方控制器 新增', 1399985191002447872, '2024-04-16 20:47:44.424000', 1399985191002447872, '2024-04-17 10:09:40.847000', b'1', 0);
-INSERT INTO `iam_perm_path` VALUES (1780216505637138453, 'AllocationGroupController#setDefault', '设置默认分账组', 'POST', '/allocation/group/setDefault', '分账组', b'1', b'1', '分账组 设置默认分账组', 1399985191002447872, '2024-04-16 20:47:44.424000', 1399985191002447872, '2024-04-16 20:47:44.424000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1780216505637138454, 'AllocationGroupController#findById', '查询详情', 'GET', '/allocation/group/findById', '分账组', b'1', b'1', '分账组 查询详情', 1399985191002447872, '2024-04-16 20:47:44.424000', 1399985191002447872, '2024-04-16 20:47:44.424000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1780216505637138455, 'AllocationReceiverController#update', '修改', 'POST', '/allocation/receiver/update', '对账接收方控制器', b'1', b'1', '对账接收方控制器 修改', 1399985191002447872, '2024-04-16 20:47:44.424000', 1399985191002447872, '2024-04-17 10:09:40.847000', b'1', 0);
-INSERT INTO `iam_perm_path` VALUES (1780216505637138456, 'AllocationReceiverController#delete', '删除', 'POST', '/allocation/receiver/delete', '对账接收方控制器', b'1', b'1', '对账接收方控制器 删除', 1399985191002447872, '2024-04-16 20:47:44.424000', 1399985191002447872, '2024-04-17 10:09:40.846000', b'1', 0);
-INSERT INTO `iam_perm_path` VALUES (1780216505637138457, 'AllocationReceiverController#findChannels', '获取可以分账的通道', 'GET', '/allocation/receiver/findChannels', '对账接收方控制器', b'1', b'1', '对账接收方控制器 获取可以分账的通道', 1399985191002447872, '2024-04-16 20:47:44.424000', 1399985191002447872, '2024-04-17 10:09:40.846000', b'1', 0);
-INSERT INTO `iam_perm_path` VALUES (1780216505637138458, 'AllocationReceiverController#findById', '查询详情', 'GET', '/allocation/receiver/findById', '对账接收方控制器', b'1', b'1', '对账接收方控制器 查询详情', 1399985191002447872, '2024-04-16 20:47:44.424000', 1399985191002447872, '2024-04-17 10:09:40.846000', b'1', 0);
-INSERT INTO `iam_perm_path` VALUES (1780216505637138459, 'AllocationGroupController#page', '分页', 'GET', '/allocation/group/page', '分账组', b'1', b'1', '分账组 分页', 1399985191002447872, '2024-04-16 20:47:44.424000', 1399985191002447872, '2024-04-16 20:47:44.424000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1780216505637138460, 'AllocationGroupController#bindReceivers', '批量绑定接收者', 'POST', '/allocation/group/bindReceivers', '分账组', b'1', b'1', '分账组 批量绑定接收者', 1399985191002447872, '2024-04-16 20:47:44.424000', 1399985191002447872, '2024-04-16 20:47:44.424000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1780216505637138461, 'AllocationGroupController#updateRate', '修改分账比例', 'POST', '/allocation/group/updateRate', '分账组', b'1', b'1', '分账组 修改分账比例', 1399985191002447872, '2024-04-16 20:47:44.424000', 1399985191002447872, '2024-04-16 20:47:44.424000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1780216505637138462, 'UniPayController#allocation', '开启分账接口', 'POST', '/unipay/allocation', '统一支付接口', b'1', b'1', '统一支付接口 开启分账接口', 1399985191002447872, '2024-04-16 20:47:44.424000', 1399985191002447872, '2024-04-16 20:47:44.424000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1780216505637138463, 'AllocationOrderController#findDetailsByOrderId', '分账明细列表', 'GET', '/order/allocation/detail/findAll', '对账订单控制器', b'1', b'1', '对账订单控制器 分账明细列表', 1399985191002447872, '2024-04-16 20:47:44.424000', 1399985191002447872, '2024-04-17 10:09:40.846000', b'1', 0);
-INSERT INTO `iam_perm_path` VALUES (1780216505637138464, 'AllocationOrderController#retryAllocation', '分账重试', 'POST', '/order/allocation/retry', '对账订单控制器', b'1', b'1', '对账订单控制器 分账重试', 1399985191002447872, '2024-04-16 20:47:44.424000', 1399985191002447872, '2024-04-17 10:09:40.845000', b'1', 0);
-INSERT INTO `iam_perm_path` VALUES (1780216505637138465, 'AllocationOrderController#page', '分页', 'GET', '/order/allocation/page', '对账订单控制器', b'1', b'1', '对账订单控制器 分页', 1399985191002447872, '2024-04-16 20:47:44.424000', 1399985191002447872, '2024-04-17 10:09:40.839000', b'1', 0);
-INSERT INTO `iam_perm_path` VALUES (1780417658844966912, 'PayGatewayNoticeController#wechatPayNotice', '微信消息通知', 'POST', '/gateway/notice/wechat', '三方支付网关消息通知', b'1', b'1', '三方支付网关消息通知 微信消息通知', 1399985191002447872, '2024-04-17 10:07:03.086000', 1399985191002447872, '2024-04-17 10:07:03.086000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1780417658844966913, 'PayGatewayNoticeController#aliPayNotice', '支付宝消息通知', 'POST', '/gateway/notice/alipay', '三方支付网关消息通知', b'1', b'1', '三方支付网关消息通知 支付宝消息通知', 1399985191002447872, '2024-04-17 10:07:03.086000', 1399985191002447872, '2024-04-17 10:07:03.086000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1780418342852063232, 'AllocationReceiverController#page', '分页', 'GET', '/allocation/receiver/page', '分账接收方控制器', b'1', b'1', '分账接收方控制器 分页', 1399985191002447872, '2024-04-17 10:09:46.166000', 1399985191002447872, '2024-04-17 10:09:46.166000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1780418342852063233, 'AllocationOrderController#finish', '分账完结', 'POST', '/order/allocation/finish', '分账订单控制器', b'1', b'1', '分账订单控制器 分账完结', 1399985191002447872, '2024-04-17 10:09:46.166000', 1399985191002447872, '2024-04-17 10:09:46.166000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1780418342852063234, 'AllocationReceiverController#delete', '删除', 'POST', '/allocation/receiver/delete', '分账接收方控制器', b'1', b'1', '分账接收方控制器 删除', 1399985191002447872, '2024-04-17 10:09:46.166000', 1399985191002447872, '2024-04-17 10:09:46.166000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1780418342852063235, 'AllocationReceiverController#add', '新增', 'POST', '/allocation/receiver/add', '分账接收方控制器', b'1', b'1', '分账接收方控制器 新增', 1399985191002447872, '2024-04-17 10:09:46.166000', 1399985191002447872, '2024-04-17 10:09:46.166000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1780418342852063236, 'AllocationReceiverController#findById', '查询详情', 'GET', '/allocation/receiver/findById', '分账接收方控制器', b'1', b'1', '分账接收方控制器 查询详情', 1399985191002447872, '2024-04-17 10:09:46.166000', 1399985191002447872, '2024-04-17 10:09:46.166000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1780418342852063237, 'AllocationOrderController#sync', '同步分账结果', 'POST', '/order/allocation/sync', '分账订单控制器', b'1', b'1', '分账订单控制器 同步分账结果', 1399985191002447872, '2024-04-17 10:09:46.166000', 1399985191002447872, '2024-04-17 10:09:46.166000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1780418342852063238, 'AllocationReceiverController#findReceiverTypeByChannel', '根据通道获取分账接收方类型', 'GET', '/allocation/receiver/findReceiverTypeByChannel', '分账接收方控制器', b'1', b'1', '分账接收方控制器 根据通道获取分账接收方类型', 1399985191002447872, '2024-04-17 10:09:46.166000', 1399985191002447872, '2024-04-17 10:09:46.166000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1780418342852063239, 'AllocationReceiverController#removeByGateway', '从三方支付系统中删除', 'POST', '/allocation/receiver/removeByGateway', '分账接收方控制器', b'1', b'1', '分账接收方控制器 从三方支付系统中删除', 1399985191002447872, '2024-04-17 10:09:46.166000', 1399985191002447872, '2024-04-17 10:09:46.166000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1780418342852063240, 'AllocationOrderController#page', '分页', 'GET', '/order/allocation/page', '分账订单控制器', b'1', b'1', '分账订单控制器 分页', 1399985191002447872, '2024-04-17 10:09:46.166000', 1399985191002447872, '2024-04-17 10:09:46.166000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1780418342852063241, 'AllocationOrderController#findChannels', '获取可以分账的通道', 'GET', '/order/allocation/findChannels', '分账订单控制器', b'1', b'1', '分账订单控制器 获取可以分账的通道', 1399985191002447872, '2024-04-17 10:09:46.166000', 1399985191002447872, '2024-04-17 10:09:46.166000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1780418342852063242, 'AllocationOrderController#findDetailsByOrderId', '分账明细列表', 'GET', '/order/allocation/detail/findAll', '分账订单控制器', b'1', b'1', '分账订单控制器 分账明细列表', 1399985191002447872, '2024-04-17 10:09:46.166000', 1399985191002447872, '2024-04-17 10:09:46.166000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1780418342852063243, 'AllocationReceiverController#registerByGateway', '同步到三方支付系统中', 'POST', '/allocation/receiver/registerByGateway', '分账接收方控制器', b'1', b'1', '分账接收方控制器 同步到三方支付系统中', 1399985191002447872, '2024-04-17 10:09:46.166000', 1399985191002447872, '2024-04-17 10:09:46.166000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1780418342852063244, 'AllocationReceiverController#findChannels', '获取可以分账的通道', 'GET', '/allocation/receiver/findChannels', '分账接收方控制器', b'1', b'1', '分账接收方控制器 获取可以分账的通道', 1399985191002447872, '2024-04-17 10:09:46.166000', 1399985191002447872, '2024-04-17 10:09:46.166000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1780418342852063245, 'AllocationOrderController#findById', '查询详情', 'GET', '/order/allocation/findById', '分账订单控制器', b'1', b'1', '分账订单控制器 查询详情', 1399985191002447872, '2024-04-17 10:09:46.166000', 1399985191002447872, '2024-04-17 10:09:46.166000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1780418342852063246, 'AllocationOrderController#findDetailById', '查询明细详情', 'GET', '/order/allocation/detail/findById', '分账订单控制器', b'1', b'1', '分账订单控制器 查询明细详情', 1399985191002447872, '2024-04-17 10:09:46.166000', 1399985191002447872, '2024-04-17 10:09:46.166000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1780418342852063247, 'AllocationReceiverController#update', '修改', 'POST', '/allocation/receiver/update', '分账接收方控制器', b'1', b'1', '分账接收方控制器 修改', 1399985191002447872, '2024-04-17 10:09:46.166000', 1399985191002447872, '2024-04-17 10:09:46.166000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1780418342852063248, 'AllocationOrderController#retryAllocation', '分账重试', 'POST', '/order/allocation/retry', '分账订单控制器', b'1', b'1', '分账订单控制器 分账重试', 1399985191002447872, '2024-04-17 10:09:46.166000', 1399985191002447872, '2024-04-17 10:09:46.166000', b'0', 0);
-
--- ----------------------------
--- Table structure for iam_role
--- ----------------------------
-DROP TABLE IF EXISTS `iam_role`;
-CREATE TABLE `iam_role`  (
-  `id` bigint(20) NOT NULL COMMENT '角色ID',
-  `code` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '编码',
-  `pid` bigint(20) NULL DEFAULT NULL COMMENT '父ID',
-  `name` varchar(150) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '名称',
-  `internal` bit(1) NOT NULL COMMENT '是否系统内置',
-  `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '说明',
-  `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建人',
-  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
-  `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修改人',
-  `last_modified_time` datetime(0) NULL DEFAULT NULL COMMENT '最后修改时间',
-  `version` int(11) NOT NULL COMMENT '版本',
-  `deleted` tinyint(1) NOT NULL DEFAULT 0 COMMENT '0:未删除。1:已删除',
-  PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '角色' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of iam_role
--- ----------------------------
-INSERT INTO `iam_role` VALUES (1757297023118462976, 'daxpayAdmin', NULL, '支付网关管理员', b'0', '', 1399985191002447872, '2024-02-13 14:53:54', 1399985191002447872, '2024-02-13 14:53:54', 0, 0);
-INSERT INTO `iam_role` VALUES (1757298887092326400, 'daxpayDemo', 1757297023118462976, '支付演示角色', b'0', '用于进行演示的角色, 没有修改和删除的权限', 1399985191002447872, '2024-02-13 15:01:18', 1399985191002447872, '2024-02-13 15:01:18', 0, 0);
-
--- ----------------------------
--- Table structure for iam_role_menu
--- ----------------------------
-DROP TABLE IF EXISTS `iam_role_menu`;
-CREATE TABLE `iam_role_menu`  (
-  `id` bigint(20) NOT NULL,
-  `role_id` bigint(20) NOT NULL COMMENT '角色id',
-  `client_code` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '终端code',
-  `permission_id` bigint(20) NOT NULL COMMENT '菜单权限id',
-  PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '角色菜单权限表' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of iam_role_menu
--- ----------------------------
-INSERT INTO `iam_role_menu` VALUES (1757298674730520576, 1757297023118462976, 'dax-pay', 1744271715476684800);
-INSERT INTO `iam_role_menu` VALUES (1757298674730520577, 1757297023118462976, 'dax-pay', 1744642856348520448);
-INSERT INTO `iam_role_menu` VALUES (1757298674730520578, 1757297023118462976, 'dax-pay', 1745457623493496832);
-INSERT INTO `iam_role_menu` VALUES (1757298674730520579, 1757297023118462976, 'dax-pay', 1745457746529210368);
-INSERT INTO `iam_role_menu` VALUES (1757298674730520580, 1757297023118462976, 'dax-pay', 1749262518385082368);
-INSERT INTO `iam_role_menu` VALUES (1757298674730520581, 1757297023118462976, 'dax-pay', 1744930046228017152);
-INSERT INTO `iam_role_menu` VALUES (1757298674730520582, 1757297023118462976, 'dax-pay', 1744643265142165504);
-INSERT INTO `iam_role_menu` VALUES (1757298674730520583, 1757297023118462976, 'dax-pay', 1745126072389963776);
-INSERT INTO `iam_role_menu` VALUES (1757298674730520584, 1757297023118462976, 'dax-pay', 1745136155962347520);
-INSERT INTO `iam_role_menu` VALUES (1757298674730520585, 1757297023118462976, 'dax-pay', 1745143528663781376);
-INSERT INTO `iam_role_menu` VALUES (1757298674730520586, 1757297023118462976, 'dax-pay', 1745822093382230016);
-INSERT INTO `iam_role_menu` VALUES (1757298674730520587, 1757297023118462976, 'dax-pay', 1744624886658318336);
-INSERT INTO `iam_role_menu` VALUES (1757298674730520588, 1757297023118462976, 'dax-pay', 1744372631231995904);
-INSERT INTO `iam_role_menu` VALUES (1757298674730520589, 1757297023118462976, 'dax-pay', 1744276101384880128);
-INSERT INTO `iam_role_menu` VALUES (1757298674730520590, 1757297023118462976, 'dax-pay', 1746194891925561344);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059200, 1757298887092326400, 'dax-pay', 1744271715476684800);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059201, 1757298887092326400, 'dax-pay', 1746194891925561344);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059202, 1757298887092326400, 'dax-pay', 1744276101384880128);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059203, 1757298887092326400, 'dax-pay', 1744372631231995904);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059204, 1757298887092326400, 'dax-pay', 1744624886658318336);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059205, 1757298887092326400, 'dax-pay', 1745822093382230016);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059206, 1757298887092326400, 'dax-pay', 1744642856348520448);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059207, 1757298887092326400, 'dax-pay', 1745457623493496832);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059208, 1757298887092326400, 'dax-pay', 1745457746529210368);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059209, 1757298887092326400, 'dax-pay', 1749262518385082368);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059210, 1757298887092326400, 'dax-pay', 1744643265142165504);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059211, 1757298887092326400, 'dax-pay', 1744930046228017152);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059212, 1757298887092326400, 'dax-pay', 1745126072389963776);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059213, 1757298887092326400, 'dax-pay', 1745136155962347520);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059214, 1757298887092326400, 'dax-pay', 1745143528663781376);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059215, 1757298887092326400, 'dax-pay', 1744271715476684800);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059216, 1757298887092326400, 'dax-pay', 1746194891925561344);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059217, 1757298887092326400, 'dax-pay', 1744276101384880128);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059218, 1757298887092326400, 'dax-pay', 1744372631231995904);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059219, 1757298887092326400, 'dax-pay', 1744624886658318336);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059220, 1757298887092326400, 'dax-pay', 1745822093382230016);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059221, 1757298887092326400, 'dax-pay', 1744642856348520448);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059222, 1757298887092326400, 'dax-pay', 1745457623493496832);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059223, 1757298887092326400, 'dax-pay', 1745457746529210368);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059224, 1757298887092326400, 'dax-pay', 1749262518385082368);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059225, 1757298887092326400, 'dax-pay', 1744643265142165504);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059226, 1757298887092326400, 'dax-pay', 1744930046228017152);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059227, 1757298887092326400, 'dax-pay', 1745126072389963776);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059228, 1757298887092326400, 'dax-pay', 1745136155962347520);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059229, 1757298887092326400, 'dax-pay', 1745143528663781376);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059230, 1757298887092326400, 'dax-pay', 1744271715476684800);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059231, 1757298887092326400, 'dax-pay', 1746194891925561344);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059232, 1757298887092326400, 'dax-pay', 1744276101384880128);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059233, 1757298887092326400, 'dax-pay', 1744372631231995904);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059234, 1757298887092326400, 'dax-pay', 1744624886658318336);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059235, 1757298887092326400, 'dax-pay', 1745822093382230016);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059236, 1757298887092326400, 'dax-pay', 1744642856348520448);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059237, 1757298887092326400, 'dax-pay', 1745457623493496832);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059238, 1757298887092326400, 'dax-pay', 1745457746529210368);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059239, 1757298887092326400, 'dax-pay', 1749262518385082368);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059240, 1757298887092326400, 'dax-pay', 1744643265142165504);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059241, 1757298887092326400, 'dax-pay', 1744930046228017152);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059242, 1757298887092326400, 'dax-pay', 1745126072389963776);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059243, 1757298887092326400, 'dax-pay', 1745136155962347520);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059244, 1757298887092326400, 'dax-pay', 1745143528663781376);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059245, 1757298887092326400, 'dax-pay', 1744271715476684800);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059246, 1757298887092326400, 'dax-pay', 1746194891925561344);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059247, 1757298887092326400, 'dax-pay', 1744276101384880128);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059248, 1757298887092326400, 'dax-pay', 1744372631231995904);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059249, 1757298887092326400, 'dax-pay', 1744624886658318336);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059250, 1757298887092326400, 'dax-pay', 1745822093382230016);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059251, 1757298887092326400, 'dax-pay', 1744642856348520448);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059252, 1757298887092326400, 'dax-pay', 1745457623493496832);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059253, 1757298887092326400, 'dax-pay', 1745457746529210368);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059254, 1757298887092326400, 'dax-pay', 1749262518385082368);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059255, 1757298887092326400, 'dax-pay', 1744643265142165504);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059256, 1757298887092326400, 'dax-pay', 1744930046228017152);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059257, 1757298887092326400, 'dax-pay', 1745126072389963776);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059258, 1757298887092326400, 'dax-pay', 1745136155962347520);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059259, 1757298887092326400, 'dax-pay', 1745143528663781376);
-INSERT INTO `iam_role_menu` VALUES (1762112282006073344, 1757297023118462976, 'dax-pay', 1758860876272861184);
-INSERT INTO `iam_role_menu` VALUES (1762112282006073345, 1757297023118462976, 'dax-pay', 1759861648606097408);
-INSERT INTO `iam_role_menu` VALUES (1762112282006073346, 1757297023118462976, 'dax-pay', 1759865163772485632);
-INSERT INTO `iam_role_menu` VALUES (1762112282006073347, 1757297023118462976, 'dax-pay', 1758861129311027200);
-INSERT INTO `iam_role_menu` VALUES (1762112282006073348, 1757297023118462976, 'dax-pay', 1759192238594949120);
-INSERT INTO `iam_role_menu` VALUES (1762112282006073349, 1757297023118462976, 'dax-pay', 1759192520611561472);
-INSERT INTO `iam_role_menu` VALUES (1762112282006073350, 1757297023118462976, 'dax-pay', 1761429304959528960);
-INSERT INTO `iam_role_menu` VALUES (1762112282006073351, 1757297023118462976, 'dax-pay', 1761429682618855424);
-INSERT INTO `iam_role_menu` VALUES (1762112282006073352, 1757297023118462976, 'dax-pay', 1759768820429352960);
-INSERT INTO `iam_role_menu` VALUES (1762112282006073353, 1757297023118462976, 'dax-pay', 1759769092698402816);
-INSERT INTO `iam_role_menu` VALUES (1762112282232565760, 1757298887092326400, 'dax-pay', 1758860876272861184);
-INSERT INTO `iam_role_menu` VALUES (1762112282232565761, 1757298887092326400, 'dax-pay', 1759861648606097408);
-INSERT INTO `iam_role_menu` VALUES (1762112282232565762, 1757298887092326400, 'dax-pay', 1759865163772485632);
-INSERT INTO `iam_role_menu` VALUES (1762112282232565763, 1757298887092326400, 'dax-pay', 1758861129311027200);
-INSERT INTO `iam_role_menu` VALUES (1762112282232565764, 1757298887092326400, 'dax-pay', 1759192238594949120);
-INSERT INTO `iam_role_menu` VALUES (1762112282232565765, 1757298887092326400, 'dax-pay', 1759192520611561472);
-INSERT INTO `iam_role_menu` VALUES (1762112282232565766, 1757298887092326400, 'dax-pay', 1761429304959528960);
-INSERT INTO `iam_role_menu` VALUES (1762112282232565767, 1757298887092326400, 'dax-pay', 1761429682618855424);
-INSERT INTO `iam_role_menu` VALUES (1762112282232565768, 1757298887092326400, 'dax-pay', 1759768820429352960);
-INSERT INTO `iam_role_menu` VALUES (1762112282232565769, 1757298887092326400, 'dax-pay', 1759769092698402816);
-INSERT INTO `iam_role_menu` VALUES (1768220067952029696, 1757297023118462976, 'dax-pay', 1768203432981655552);
-INSERT INTO `iam_role_menu` VALUES (1768220068631506944, 1757298887092326400, 'dax-pay', 1768203432981655552);
-INSERT INTO `iam_role_menu` VALUES (1780416732268605440, 1757297023118462976, 'dax-pay', 1775089099078553600);
-INSERT INTO `iam_role_menu` VALUES (1780416732268605441, 1757297023118462976, 'dax-pay', 1775089820368818176);
-INSERT INTO `iam_role_menu` VALUES (1780416732268605442, 1757297023118462976, 'dax-pay', 1775091561835450368);
-INSERT INTO `iam_role_menu` VALUES (1780416732268605443, 1757297023118462976, 'dax-pay', 1777688382748700672);
-INSERT INTO `iam_role_menu` VALUES (1780416732574789632, 1757298887092326400, 'dax-pay', 1775089099078553600);
-INSERT INTO `iam_role_menu` VALUES (1780416732574789633, 1757298887092326400, 'dax-pay', 1775089820368818176);
-INSERT INTO `iam_role_menu` VALUES (1780416732574789634, 1757298887092326400, 'dax-pay', 1775091561835450368);
-INSERT INTO `iam_role_menu` VALUES (1780416732574789635, 1757298887092326400, 'dax-pay', 1777688382748700672);
-
--- ----------------------------
--- Table structure for iam_role_path
--- ----------------------------
-DROP TABLE IF EXISTS `iam_role_path`;
-CREATE TABLE `iam_role_path`  (
-  `id` bigint(20) NOT NULL,
-  `role_id` bigint(20) NOT NULL COMMENT '角色id',
-  `permission_id` bigint(20) NOT NULL COMMENT '请求权限id',
-  PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '角色请求权限表' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of iam_role_path
--- ----------------------------
-INSERT INTO `iam_role_path` VALUES (1757299898544541696, 1757297023118462976, 1757297527147974745);
-INSERT INTO `iam_role_path` VALUES (1757299898544541697, 1757297023118462976, 1757297527147974777);
-INSERT INTO `iam_role_path` VALUES (1757299898544541698, 1757297023118462976, 1757297527147974746);
-INSERT INTO `iam_role_path` VALUES (1757299898544541699, 1757297023118462976, 1757297527147974744);
-INSERT INTO `iam_role_path` VALUES (1757299898544541700, 1757297023118462976, 1757297527147974692);
-INSERT INTO `iam_role_path` VALUES (1757299898544541701, 1757297023118462976, 1757297527152169034);
-INSERT INTO `iam_role_path` VALUES (1757299898544541702, 1757297023118462976, 1757297527152169010);
-INSERT INTO `iam_role_path` VALUES (1757299898544541703, 1757297023118462976, 1757297527147974778);
-INSERT INTO `iam_role_path` VALUES (1757299898544541704, 1757297023118462976, 1757297527147974668);
-INSERT INTO `iam_role_path` VALUES (1757299898544541705, 1757297023118462976, 1757297527152169052);
-INSERT INTO `iam_role_path` VALUES (1757299898544541706, 1757297023118462976, 1757297527147974730);
-INSERT INTO `iam_role_path` VALUES (1757299898544541709, 1757297023118462976, 1757297527152169077);
-INSERT INTO `iam_role_path` VALUES (1757299898544541710, 1757297023118462976, 1757297527152168990);
-INSERT INTO `iam_role_path` VALUES (1757299898544541711, 1757297023118462976, 1757297527152169098);
-INSERT INTO `iam_role_path` VALUES (1757299898544541712, 1757297023118462976, 1757297527152169054);
-INSERT INTO `iam_role_path` VALUES (1757299898544541713, 1757297023118462976, 1757297527152169041);
-INSERT INTO `iam_role_path` VALUES (1757299898544541714, 1757297023118462976, 1757297527152169016);
-INSERT INTO `iam_role_path` VALUES (1757299898544541717, 1757297023118462976, 1757297527156363367);
-INSERT INTO `iam_role_path` VALUES (1757299898544541718, 1757297023118462976, 1757297527152169126);
-INSERT INTO `iam_role_path` VALUES (1757299898544541719, 1757297023118462976, 1757297527152169084);
-INSERT INTO `iam_role_path` VALUES (1757299898544541720, 1757297023118462976, 1757297527156363350);
-INSERT INTO `iam_role_path` VALUES (1757299898544541721, 1757297023118462976, 1757297527156363312);
-INSERT INTO `iam_role_path` VALUES (1757299898544541722, 1757297023118462976, 1757297527147974769);
-INSERT INTO `iam_role_path` VALUES (1757299898544541723, 1757297023118462976, 1757297527152169146);
-INSERT INTO `iam_role_path` VALUES (1757299898544541724, 1757297023118462976, 1757297527152169032);
-INSERT INTO `iam_role_path` VALUES (1757299898544541725, 1757297023118462976, 1757297527152169145);
-INSERT INTO `iam_role_path` VALUES (1757299898544541726, 1757297023118462976, 1757297527147974691);
-INSERT INTO `iam_role_path` VALUES (1757299898825560064, 1757298887092326400, 1757297527147974745);
-INSERT INTO `iam_role_path` VALUES (1757299898825560065, 1757298887092326400, 1757297527147974777);
-INSERT INTO `iam_role_path` VALUES (1757299898825560067, 1757298887092326400, 1757297527147974744);
-INSERT INTO `iam_role_path` VALUES (1757299898825560069, 1757298887092326400, 1757297527152169034);
-INSERT INTO `iam_role_path` VALUES (1757299898825560070, 1757298887092326400, 1757297527152169010);
-INSERT INTO `iam_role_path` VALUES (1757299898825560071, 1757298887092326400, 1757297527147974778);
-INSERT INTO `iam_role_path` VALUES (1757299898825560073, 1757298887092326400, 1757297527152169052);
-INSERT INTO `iam_role_path` VALUES (1757299898825560074, 1757298887092326400, 1757297527147974730);
-INSERT INTO `iam_role_path` VALUES (1757299898825560077, 1757298887092326400, 1757297527152169077);
-INSERT INTO `iam_role_path` VALUES (1757299898825560078, 1757298887092326400, 1757297527152168990);
-INSERT INTO `iam_role_path` VALUES (1757299898825560079, 1757298887092326400, 1757297527152169098);
-INSERT INTO `iam_role_path` VALUES (1757299898825560080, 1757298887092326400, 1757297527152169054);
-INSERT INTO `iam_role_path` VALUES (1757299898825560081, 1757298887092326400, 1757297527152169041);
-INSERT INTO `iam_role_path` VALUES (1757299898825560082, 1757298887092326400, 1757297527152169016);
-INSERT INTO `iam_role_path` VALUES (1757299898825560086, 1757298887092326400, 1757297527152169126);
-INSERT INTO `iam_role_path` VALUES (1757299898825560087, 1757298887092326400, 1757297527152169084);
-INSERT INTO `iam_role_path` VALUES (1757299898825560089, 1757298887092326400, 1757297527156363312);
-INSERT INTO `iam_role_path` VALUES (1757299898825560090, 1757298887092326400, 1757297527147974769);
-INSERT INTO `iam_role_path` VALUES (1757299898825560091, 1757298887092326400, 1757297527152169146);
-INSERT INTO `iam_role_path` VALUES (1757299898825560092, 1757298887092326400, 1757297527152169032);
-INSERT INTO `iam_role_path` VALUES (1757299898825560093, 1757298887092326400, 1757297527152169145);
-INSERT INTO `iam_role_path` VALUES (1757299898825560094, 1757298887092326400, 1757297527147974691);
-INSERT INTO `iam_role_path` VALUES (1757300046846742528, 1757297023118462976, 1757297527156363340);
-INSERT INTO `iam_role_path` VALUES (1757300046846742529, 1757297023118462976, 1757297527152169117);
-INSERT INTO `iam_role_path` VALUES (1757300047022903296, 1757298887092326400, 1757297527156363340);
-INSERT INTO `iam_role_path` VALUES (1757301364139216896, 1757297023118462976, 1757297527156363333);
-INSERT INTO `iam_role_path` VALUES (1757301364139216897, 1757297023118462976, 1757297527156363306);
-INSERT INTO `iam_role_path` VALUES (1757301364139216898, 1757297023118462976, 1757297527152168980);
-INSERT INTO `iam_role_path` VALUES (1757301364311183360, 1757298887092326400, 1757297527156363333);
-INSERT INTO `iam_role_path` VALUES (1757301364311183362, 1757298887092326400, 1757297527152168980);
-INSERT INTO `iam_role_path` VALUES (1757301683791319040, 1757297023118462976, 1757297527156363361);
-INSERT INTO `iam_role_path` VALUES (1757301683791319041, 1757297023118462976, 1757297527156363289);
-INSERT INTO `iam_role_path` VALUES (1757301683791319042, 1757297023118462976, 1757297527152169108);
-INSERT INTO `iam_role_path` VALUES (1757301683791319043, 1757297023118462976, 1757297527152169086);
-INSERT INTO `iam_role_path` VALUES (1757301683791319044, 1757297023118462976, 1757297527152168999);
-INSERT INTO `iam_role_path` VALUES (1757301683791319045, 1757297023118462976, 1757297527152168994);
-INSERT INTO `iam_role_path` VALUES (1757301683791319046, 1757297023118462976, 1757297527147974782);
-INSERT INTO `iam_role_path` VALUES (1757301683791319047, 1757297023118462976, 1757297527156363368);
-INSERT INTO `iam_role_path` VALUES (1757301683791319048, 1757297023118462976, 1757297527156363297);
-INSERT INTO `iam_role_path` VALUES (1757301683791319049, 1757297023118462976, 1757297527152169030);
-INSERT INTO `iam_role_path` VALUES (1757301683791319050, 1757297023118462976, 1757297527147974779);
-INSERT INTO `iam_role_path` VALUES (1757301683791319051, 1757297023118462976, 1757297527147974742);
-INSERT INTO `iam_role_path` VALUES (1757301683791319052, 1757297023118462976, 1757297527147974662);
-INSERT INTO `iam_role_path` VALUES (1757301684013617152, 1757298887092326400, 1757297527156363361);
-INSERT INTO `iam_role_path` VALUES (1757301684013617153, 1757298887092326400, 1757297527156363289);
-INSERT INTO `iam_role_path` VALUES (1757301684013617154, 1757298887092326400, 1757297527152169108);
-INSERT INTO `iam_role_path` VALUES (1757301684013617155, 1757298887092326400, 1757297527152169086);
-INSERT INTO `iam_role_path` VALUES (1757301684013617156, 1757298887092326400, 1757297527152168999);
-INSERT INTO `iam_role_path` VALUES (1757301684013617157, 1757298887092326400, 1757297527152168994);
-INSERT INTO `iam_role_path` VALUES (1757301684013617158, 1757298887092326400, 1757297527147974782);
-INSERT INTO `iam_role_path` VALUES (1757301684013617159, 1757298887092326400, 1757297527156363368);
-INSERT INTO `iam_role_path` VALUES (1757301684013617160, 1757298887092326400, 1757297527156363297);
-INSERT INTO `iam_role_path` VALUES (1757301684013617161, 1757298887092326400, 1757297527152169030);
-INSERT INTO `iam_role_path` VALUES (1757301684013617162, 1757298887092326400, 1757297527147974779);
-INSERT INTO `iam_role_path` VALUES (1757301684013617163, 1757298887092326400, 1757297527147974742);
-INSERT INTO `iam_role_path` VALUES (1757301684013617164, 1757298887092326400, 1757297527147974662);
-INSERT INTO `iam_role_path` VALUES (1757305163645964288, 1757297023118462976, 1757297527156363374);
-INSERT INTO `iam_role_path` VALUES (1757305163645964289, 1757297023118462976, 1757297527152169092);
-INSERT INTO `iam_role_path` VALUES (1757305194193080320, 1757298887092326400, 1757297527156363374);
-INSERT INTO `iam_role_path` VALUES (1757305194193080321, 1757298887092326400, 1757297527152169092);
-INSERT INTO `iam_role_path` VALUES (1762112867598020608, 1757297023118462976, 1762112351866400794);
-INSERT INTO `iam_role_path` VALUES (1762112867598020609, 1757297023118462976, 1762112351866400793);
-INSERT INTO `iam_role_path` VALUES (1762112867598020610, 1757297023118462976, 1762112351866400786);
-INSERT INTO `iam_role_path` VALUES (1762112867598020611, 1757297023118462976, 1762112351866400780);
-INSERT INTO `iam_role_path` VALUES (1762112867598020612, 1757297023118462976, 1762112351866400774);
-INSERT INTO `iam_role_path` VALUES (1762112867598020613, 1757297023118462976, 1762112351866400772);
-INSERT INTO `iam_role_path` VALUES (1762112867598020614, 1757297023118462976, 1762112351866400770);
-INSERT INTO `iam_role_path` VALUES (1762112867598020615, 1757297023118462976, 1762112351862206476);
-INSERT INTO `iam_role_path` VALUES (1762112867598020616, 1757297023118462976, 1762112351866400787);
-INSERT INTO `iam_role_path` VALUES (1762112867598020617, 1757297023118462976, 1762112351866400782);
-INSERT INTO `iam_role_path` VALUES (1762112867598020618, 1757297023118462976, 1762112351862206472);
-INSERT INTO `iam_role_path` VALUES (1762112867598020619, 1757297023118462976, 1762112351866400788);
-INSERT INTO `iam_role_path` VALUES (1762112867598020620, 1757297023118462976, 1762112351862206471);
-INSERT INTO `iam_role_path` VALUES (1762112867598020621, 1757297023118462976, 1762112351866400789);
-INSERT INTO `iam_role_path` VALUES (1762112867598020622, 1757297023118462976, 1762112351866400779);
-INSERT INTO `iam_role_path` VALUES (1762112867598020623, 1757297023118462976, 1762112351862206474);
-INSERT INTO `iam_role_path` VALUES (1762112867598020624, 1757297023118462976, 1762112351866400791);
-INSERT INTO `iam_role_path` VALUES (1762112867598020625, 1757297023118462976, 1762112351866400773);
-INSERT INTO `iam_role_path` VALUES (1762112867598020626, 1757297023118462976, 1762112351866400768);
-INSERT INTO `iam_role_path` VALUES (1762112867598020627, 1757297023118462976, 1762112351862206469);
-INSERT INTO `iam_role_path` VALUES (1762112867598020628, 1757297023118462976, 1762112351862206468);
-INSERT INTO `iam_role_path` VALUES (1762112867598020629, 1757297023118462976, 1762112351862206464);
-INSERT INTO `iam_role_path` VALUES (1762112867598020630, 1757297023118462976, 1762112351866400792);
-INSERT INTO `iam_role_path` VALUES (1762112867598020631, 1757297023118462976, 1762112351866400790);
-INSERT INTO `iam_role_path` VALUES (1762112867598020632, 1757297023118462976, 1762112351866400781);
-INSERT INTO `iam_role_path` VALUES (1762112867598020633, 1757297023118462976, 1762112351866400775);
-INSERT INTO `iam_role_path` VALUES (1762112867598020634, 1757297023118462976, 1762112351862206466);
-INSERT INTO `iam_role_path` VALUES (1762112867598020635, 1757297023118462976, 1762112351866400776);
-INSERT INTO `iam_role_path` VALUES (1762112867598020636, 1757297023118462976, 1762112351862206470);
-INSERT INTO `iam_role_path` VALUES (1762112867598020637, 1757297023118462976, 1762112351866400784);
-INSERT INTO `iam_role_path` VALUES (1762112867598020638, 1757297023118462976, 1762112351866400777);
-INSERT INTO `iam_role_path` VALUES (1762112867598020639, 1757297023118462976, 1762112351866400771);
-INSERT INTO `iam_role_path` VALUES (1762112867598020640, 1757297023118462976, 1762112351862206467);
-INSERT INTO `iam_role_path` VALUES (1762112867598020641, 1757297023118462976, 1762112351862206465);
-INSERT INTO `iam_role_path` VALUES (1762112867837095936, 1757298887092326400, 1762112351866400794);
-INSERT INTO `iam_role_path` VALUES (1762112867837095937, 1757298887092326400, 1762112351866400793);
-INSERT INTO `iam_role_path` VALUES (1762112867837095938, 1757298887092326400, 1762112351866400786);
-INSERT INTO `iam_role_path` VALUES (1762112867837095939, 1757298887092326400, 1762112351866400780);
-INSERT INTO `iam_role_path` VALUES (1762112867837095940, 1757298887092326400, 1762112351866400774);
-INSERT INTO `iam_role_path` VALUES (1762112867837095941, 1757298887092326400, 1762112351866400772);
-INSERT INTO `iam_role_path` VALUES (1762112867837095942, 1757298887092326400, 1762112351866400770);
-INSERT INTO `iam_role_path` VALUES (1762112867837095943, 1757298887092326400, 1762112351862206476);
-INSERT INTO `iam_role_path` VALUES (1762112867837095944, 1757298887092326400, 1762112351866400787);
-INSERT INTO `iam_role_path` VALUES (1762112867837095945, 1757298887092326400, 1762112351866400782);
-INSERT INTO `iam_role_path` VALUES (1762112867837095946, 1757298887092326400, 1762112351862206472);
-INSERT INTO `iam_role_path` VALUES (1762112867837095947, 1757298887092326400, 1762112351866400788);
-INSERT INTO `iam_role_path` VALUES (1762112867837095948, 1757298887092326400, 1762112351862206471);
-INSERT INTO `iam_role_path` VALUES (1762112867837095949, 1757298887092326400, 1762112351866400789);
-INSERT INTO `iam_role_path` VALUES (1762112867837095950, 1757298887092326400, 1762112351866400779);
-INSERT INTO `iam_role_path` VALUES (1762112867837095951, 1757298887092326400, 1762112351862206474);
-INSERT INTO `iam_role_path` VALUES (1762112867837095952, 1757298887092326400, 1762112351866400791);
-INSERT INTO `iam_role_path` VALUES (1762112867837095953, 1757298887092326400, 1762112351866400773);
-INSERT INTO `iam_role_path` VALUES (1762112867837095954, 1757298887092326400, 1762112351866400768);
-INSERT INTO `iam_role_path` VALUES (1762112867837095955, 1757298887092326400, 1762112351862206469);
-INSERT INTO `iam_role_path` VALUES (1762112867837095956, 1757298887092326400, 1762112351862206468);
-INSERT INTO `iam_role_path` VALUES (1762112867837095957, 1757298887092326400, 1762112351862206464);
-INSERT INTO `iam_role_path` VALUES (1762112867837095958, 1757298887092326400, 1762112351866400792);
-INSERT INTO `iam_role_path` VALUES (1762112867837095959, 1757298887092326400, 1762112351866400790);
-INSERT INTO `iam_role_path` VALUES (1762112867837095960, 1757298887092326400, 1762112351866400781);
-INSERT INTO `iam_role_path` VALUES (1762112867837095961, 1757298887092326400, 1762112351866400775);
-INSERT INTO `iam_role_path` VALUES (1762112867837095962, 1757298887092326400, 1762112351862206466);
-INSERT INTO `iam_role_path` VALUES (1762112867837095963, 1757298887092326400, 1762112351866400776);
-INSERT INTO `iam_role_path` VALUES (1762112867837095964, 1757298887092326400, 1762112351862206470);
-INSERT INTO `iam_role_path` VALUES (1762112867837095965, 1757298887092326400, 1762112351866400784);
-INSERT INTO `iam_role_path` VALUES (1762112867837095966, 1757298887092326400, 1762112351866400777);
-INSERT INTO `iam_role_path` VALUES (1762112867837095967, 1757298887092326400, 1762112351866400771);
-INSERT INTO `iam_role_path` VALUES (1762112867837095968, 1757298887092326400, 1762112351862206467);
-INSERT INTO `iam_role_path` VALUES (1762112867837095969, 1757298887092326400, 1762112351862206465);
-INSERT INTO `iam_role_path` VALUES (1764931648924622848, 1757297023118462976, 1764663810424303620);
-INSERT INTO `iam_role_path` VALUES (1764931648924622849, 1757297023118462976, 1764663810424303619);
-INSERT INTO `iam_role_path` VALUES (1764931648924622850, 1757297023118462976, 1764663810424303618);
-INSERT INTO `iam_role_path` VALUES (1764931648924622851, 1757297023118462976, 1764663810424303617);
-INSERT INTO `iam_role_path` VALUES (1764931648924622852, 1757297023118462976, 1764663810424303616);
-INSERT INTO `iam_role_path` VALUES (1768220144112201728, 1757297023118462976, 1768219994971140096);
-INSERT INTO `iam_role_path` VALUES (1768220144112201729, 1757297023118462976, 1768219994979528705);
-INSERT INTO `iam_role_path` VALUES (1768220144112201730, 1757297023118462976, 1768219994979528706);
-INSERT INTO `iam_role_path` VALUES (1768220144611323904, 1757298887092326400, 1768219994971140096);
-INSERT INTO `iam_role_path` VALUES (1768220144611323905, 1757298887092326400, 1768219994979528705);
-INSERT INTO `iam_role_path` VALUES (1768220144611323906, 1757298887092326400, 1768219994979528706);
-INSERT INTO `iam_role_path` VALUES (1772446949400571904, 1757297023118462976, 1772446740356460550);
-INSERT INTO `iam_role_path` VALUES (1772446949400571905, 1757297023118462976, 1772446740356460549);
-INSERT INTO `iam_role_path` VALUES (1772446949400571906, 1757297023118462976, 1772446740356460547);
-INSERT INTO `iam_role_path` VALUES (1772446949400571907, 1757297023118462976, 1772446740356460546);
-INSERT INTO `iam_role_path` VALUES (1772446949400571908, 1757297023118462976, 1772446740356460545);
-INSERT INTO `iam_role_path` VALUES (1772446949400571909, 1757297023118462976, 1772446740356460544);
-INSERT INTO `iam_role_path` VALUES (1772446949400571910, 1757297023118462976, 1772446740356460548);
-INSERT INTO `iam_role_path` VALUES (1772446949400571911, 1757297023118462976, 1768219994979528711);
-INSERT INTO `iam_role_path` VALUES (1772446949400571912, 1757297023118462976, 1768219994979528710);
-INSERT INTO `iam_role_path` VALUES (1772446949400571913, 1757297023118462976, 1768219994979528704);
-INSERT INTO `iam_role_path` VALUES (1772446949400571914, 1757297023118462976, 1768219994979528707);
-INSERT INTO `iam_role_path` VALUES (1772446952005234688, 1757298887092326400, 1772446740356460550);
-INSERT INTO `iam_role_path` VALUES (1772446952005234689, 1757298887092326400, 1772446740356460549);
-INSERT INTO `iam_role_path` VALUES (1772446952005234690, 1757298887092326400, 1772446740356460547);
-INSERT INTO `iam_role_path` VALUES (1772446952005234691, 1757298887092326400, 1772446740356460546);
-INSERT INTO `iam_role_path` VALUES (1772446952005234692, 1757298887092326400, 1772446740356460545);
-INSERT INTO `iam_role_path` VALUES (1772446952005234693, 1757298887092326400, 1772446740356460544);
-INSERT INTO `iam_role_path` VALUES (1772446952005234694, 1757298887092326400, 1772446740356460548);
-INSERT INTO `iam_role_path` VALUES (1772446952005234695, 1757298887092326400, 1768219994979528711);
-INSERT INTO `iam_role_path` VALUES (1772446952005234696, 1757298887092326400, 1768219994979528710);
-INSERT INTO `iam_role_path` VALUES (1772446952005234697, 1757298887092326400, 1768219994979528704);
-INSERT INTO `iam_role_path` VALUES (1772447125519396864, 1757298887092326400, 1764663810424303620);
-INSERT INTO `iam_role_path` VALUES (1772447125519396865, 1757298887092326400, 1764663810424303619);
-INSERT INTO `iam_role_path` VALUES (1772447125519396866, 1757298887092326400, 1764663810424303618);
-INSERT INTO `iam_role_path` VALUES (1772447125519396867, 1757298887092326400, 1764663810424303617);
-INSERT INTO `iam_role_path` VALUES (1772447125519396868, 1757298887092326400, 1764663810424303616);
-INSERT INTO `iam_role_path` VALUES (1780464836388855808, 1757297023118462976, 1780216505637138435);
-INSERT INTO `iam_role_path` VALUES (1780464836388855809, 1757297023118462976, 1780418342852063247);
-INSERT INTO `iam_role_path` VALUES (1780464836388855810, 1757297023118462976, 1780418342852063244);
-INSERT INTO `iam_role_path` VALUES (1780464836388855811, 1757297023118462976, 1780418342852063238);
-INSERT INTO `iam_role_path` VALUES (1780464836388855812, 1757297023118462976, 1780418342852063236);
-INSERT INTO `iam_role_path` VALUES (1780464836388855813, 1757297023118462976, 1780418342852063235);
-INSERT INTO `iam_role_path` VALUES (1780464836388855814, 1757297023118462976, 1780418342852063234);
-INSERT INTO `iam_role_path` VALUES (1780464836388855815, 1757297023118462976, 1780418342852063232);
-INSERT INTO `iam_role_path` VALUES (1780464836388855816, 1757297023118462976, 1780418342852063239);
-INSERT INTO `iam_role_path` VALUES (1780464836388855817, 1757297023118462976, 1780418342852063243);
-INSERT INTO `iam_role_path` VALUES (1780464836388855818, 1757297023118462976, 1780418342852063248);
-INSERT INTO `iam_role_path` VALUES (1780464836388855819, 1757297023118462976, 1780418342852063246);
-INSERT INTO `iam_role_path` VALUES (1780464836388855820, 1757297023118462976, 1780418342852063245);
-INSERT INTO `iam_role_path` VALUES (1780464836388855821, 1757297023118462976, 1780418342852063242);
-INSERT INTO `iam_role_path` VALUES (1780464836388855822, 1757297023118462976, 1780418342852063241);
-INSERT INTO `iam_role_path` VALUES (1780464836388855823, 1757297023118462976, 1780418342852063240);
-INSERT INTO `iam_role_path` VALUES (1780464836388855824, 1757297023118462976, 1780418342852063237);
-INSERT INTO `iam_role_path` VALUES (1780464836388855825, 1757297023118462976, 1780418342852063233);
-INSERT INTO `iam_role_path` VALUES (1780464836741177344, 1757298887092326400, 1780216505637138435);
-INSERT INTO `iam_role_path` VALUES (1780464836741177346, 1757298887092326400, 1780418342852063244);
-INSERT INTO `iam_role_path` VALUES (1780464836741177347, 1757298887092326400, 1780418342852063238);
-INSERT INTO `iam_role_path` VALUES (1780464836741177348, 1757298887092326400, 1780418342852063236);
-INSERT INTO `iam_role_path` VALUES (1780464836741177349, 1757298887092326400, 1780418342852063235);
-INSERT INTO `iam_role_path` VALUES (1780464836741177351, 1757298887092326400, 1780418342852063232);
-INSERT INTO `iam_role_path` VALUES (1780464836741177354, 1757298887092326400, 1780418342852063248);
-INSERT INTO `iam_role_path` VALUES (1780464836741177355, 1757298887092326400, 1780418342852063246);
-INSERT INTO `iam_role_path` VALUES (1780464836741177356, 1757298887092326400, 1780418342852063245);
-INSERT INTO `iam_role_path` VALUES (1780464836741177357, 1757298887092326400, 1780418342852063242);
-INSERT INTO `iam_role_path` VALUES (1780464836741177358, 1757298887092326400, 1780418342852063241);
-INSERT INTO `iam_role_path` VALUES (1780464836741177359, 1757298887092326400, 1780418342852063240);
-INSERT INTO `iam_role_path` VALUES (1780464836741177360, 1757298887092326400, 1780418342852063237);
-INSERT INTO `iam_role_path` VALUES (1780464836741177361, 1757298887092326400, 1780418342852063233);
-INSERT INTO `iam_role_path` VALUES (1780466020646395904, 1757297023118462976, 1780216505637138461);
-INSERT INTO `iam_role_path` VALUES (1780466020646395905, 1757297023118462976, 1780216505637138460);
-INSERT INTO `iam_role_path` VALUES (1780466020646395906, 1757297023118462976, 1780216505637138459);
-INSERT INTO `iam_role_path` VALUES (1780466020646395907, 1757297023118462976, 1780216505637138454);
-INSERT INTO `iam_role_path` VALUES (1780466020646395908, 1757297023118462976, 1780216505637138453);
-INSERT INTO `iam_role_path` VALUES (1780466020646395909, 1757297023118462976, 1780216505637138451);
-INSERT INTO `iam_role_path` VALUES (1780466020646395910, 1757297023118462976, 1780216505637138450);
-INSERT INTO `iam_role_path` VALUES (1780466020646395911, 1757297023118462976, 1780216505637138443);
-INSERT INTO `iam_role_path` VALUES (1780466020646395912, 1757297023118462976, 1780216505637138442);
-INSERT INTO `iam_role_path` VALUES (1780466020646395913, 1757297023118462976, 1780216505637138437);
-INSERT INTO `iam_role_path` VALUES (1780466020646395914, 1757297023118462976, 1780216505637138434);
-INSERT INTO `iam_role_path` VALUES (1780466020646395915, 1757297023118462976, 1780216505637138433);
-INSERT INTO `iam_role_path` VALUES (1780466020956774402, 1757298887092326400, 1780216505637138459);
-INSERT INTO `iam_role_path` VALUES (1780466020956774403, 1757298887092326400, 1780216505637138454);
-INSERT INTO `iam_role_path` VALUES (1780466020956774411, 1757298887092326400, 1780216505637138433);
-
--- ----------------------------
--- Table structure for iam_user_data_role
--- ----------------------------
-DROP TABLE IF EXISTS `iam_user_data_role`;
-CREATE TABLE `iam_user_data_role`  (
-  `id` bigint(20) NOT NULL COMMENT '主键',
-  `user_id` bigint(20) NOT NULL COMMENT '用户ID',
-  `role_id` bigint(20) NOT NULL COMMENT '数据角色ID',
-  PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '用户数据范围关系\r\n' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of iam_user_data_role
--- ----------------------------
-
--- ----------------------------
--- Table structure for iam_user_dept
--- ----------------------------
-DROP TABLE IF EXISTS `iam_user_dept`;
-CREATE TABLE `iam_user_dept`  (
-  `id` bigint(20) NOT NULL,
-  `user_id` bigint(20) NOT NULL COMMENT '用户id',
-  `dept_id` bigint(20) NOT NULL COMMENT '部门id',
-  PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '用户部门关联表' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of iam_user_dept
--- ----------------------------
-
--- ----------------------------
--- Table structure for iam_user_expand_info
--- ----------------------------
-DROP TABLE IF EXISTS `iam_user_expand_info`;
-CREATE TABLE `iam_user_expand_info`  (
-  `id` bigint(20) NOT NULL COMMENT '主键',
-  `sex` int(4) NULL DEFAULT NULL COMMENT '性别',
-  `birthday` date NULL DEFAULT NULL COMMENT '生日',
-  `avatar` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '头像',
-  `last_login_time` datetime(0) NULL DEFAULT NULL COMMENT '上次登录时间',
-  `current_login_time` datetime(0) NULL DEFAULT NULL COMMENT '本次登录时间',
-  `initial_password` bit(1) NOT NULL COMMENT '是否初始密码',
-  `expire_password` bit(1) NOT NULL COMMENT '密码是否过期',
-  `last_change_password_time` datetime(0) NULL DEFAULT NULL COMMENT '上次修改密码时间',
-  `register_time` datetime(0) NOT NULL COMMENT '注册时间',
-  `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
-  `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修者ID',
-  `last_modified_time` datetime(0) NULL DEFAULT NULL COMMENT '最后修改时间',
-  `version` int(11) NOT NULL COMMENT '乐观锁',
-  `deleted` bit(1) NOT NULL COMMENT '删除标志',
-  PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '用户扩展信息' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of iam_user_expand_info
--- ----------------------------
-INSERT INTO `iam_user_expand_info` VALUES (1399985191002447872, 1, '1996-12-01', NULL, '2024-02-13 14:51:40', '2024-02-13 16:13:07', b'0', b'0', '2023-10-19 14:14:08', '2021-08-01 18:52:37', 1, '2021-06-02 15:04:15', 0, '2024-02-13 16:13:07', 419, b'0');
-INSERT INTO `iam_user_expand_info` VALUES (1757299137932677120, 1, '2024-02-13', NULL, '2024-02-13 15:03:21', '2024-02-13 16:09:27', b'0', b'0', NULL, '2024-02-13 15:02:18', 1399985191002447872, '2024-02-13 15:02:18', 1757299137932677120, '2024-02-13 16:09:44', 3, b'0');
-INSERT INTO `iam_user_expand_info` VALUES (1757317255899869184, NULL, NULL, NULL, NULL, '2024-02-13 16:17:59', b'0', b'0', NULL, '2024-02-13 16:14:18', 1399985191002447872, '2024-02-13 16:14:18', 0, '2024-02-13 16:17:59', 1, b'0');
-
--- ----------------------------
--- Table structure for iam_user_info
--- ----------------------------
-DROP TABLE IF EXISTS `iam_user_info`;
-CREATE TABLE `iam_user_info`  (
-  `id` bigint(20) NOT NULL,
-  `name` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '名称',
-  `username` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '账号',
-  `password` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '密码',
-  `phone` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '手机号',
-  `email` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '邮箱',
-  `client_ids` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL COMMENT '关联终端ds',
-  `administrator` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否超级管理员',
-  `status` varchar(55) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '账号状态',
-  `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建人',
-  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
-  `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修改人',
-  `last_modified_time` datetime(0) NULL DEFAULT NULL COMMENT '最后修改时间',
-  `version` int(11) NOT NULL COMMENT '版本',
-  `deleted` tinyint(1) NOT NULL DEFAULT 0 COMMENT '0:未删除。1:已删除',
-  PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '用户信息' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of iam_user_info
--- ----------------------------
-INSERT INTO `iam_user_info` VALUES (1399985191002447872, 'Bootx', 'bootx', 'f52020dca765fd3943ed40a615dc2c5c', '13333333333', 'bootx@bootx.cn', '1430430071299207168,1430430071299207169,1626840094767714304,1580487061605175296', b'1', 'normal', 1, '2021-06-02 15:04:15', 1399985191002447872, '2024-01-16 09:26:44', 64, 0);
-INSERT INTO `iam_user_info` VALUES (1757299137932677120, 'DaxPay演示', 'daxpay', 'f52020dca765fd3943ed40a615dc2c5c', '14443332251', 'daxpay@qq.com', '1580487061605175296', b'0', 'normal', 1399985191002447872, '2024-02-13 15:02:18', 1757299137932677120, '2024-02-13 16:09:44', 2, 0);
-INSERT INTO `iam_user_info` VALUES (1757317255899869184, 'DaxPay管理员', 'daxpayadmin', '1e9e3c3deaa4a06d08326e82a49d1b63', '12222333223', 'daxpayadmin@qq.com', '1580487061605175296', b'0', 'normal', 1399985191002447872, '2024-02-13 16:14:18', 1399985191002447872, '2024-02-13 16:14:18', 0, 0);
-
--- ----------------------------
--- Table structure for iam_user_role
--- ----------------------------
-DROP TABLE IF EXISTS `iam_user_role`;
-CREATE TABLE `iam_user_role`  (
-  `id` bigint(20) NOT NULL COMMENT '主键',
-  `user_id` bigint(20) NOT NULL COMMENT '用户ID',
-  `role_id` bigint(20) NOT NULL COMMENT '角色ID',
-  PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '用户角色关系\r\n' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of iam_user_role
--- ----------------------------
-INSERT INTO `iam_user_role` VALUES (1757299293314863104, 1757299137932677120, 1757298887092326400);
-INSERT INTO `iam_user_role` VALUES (1757317495407210496, 1757317255899869184, 1757297023118462976);
-
--- ----------------------------
--- Table structure for iam_user_third
--- ----------------------------
-DROP TABLE IF EXISTS `iam_user_third`;
-CREATE TABLE `iam_user_third`  (
-  `id` bigint(20) NOT NULL COMMENT '主键',
-  `user_id` bigint(20) NULL DEFAULT NULL COMMENT '用户id',
-  `we_chat_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '微信openId',
-  `we_chat_open_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '微信开放平台id',
-  `qq_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'qqId',
-  `weibo_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '微博Id',
-  `gitee_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '码云唯一标识',
-  `ding_talk_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '钉钉唯一标识',
-  `we_com_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '企业微信唯一标识',
-  `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建人',
-  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
-  `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修改人',
-  `last_modified_time` datetime(0) NULL DEFAULT NULL COMMENT '最后修改时间',
-  `version` int(11) NOT NULL COMMENT '版本',
-  `deleted` tinyint(1) NOT NULL DEFAULT 0 COMMENT '0:未删除。1:已删除',
-  PRIMARY KEY (`id`) USING BTREE,
-  INDEX `pk_user_index`(`user_id`) USING BTREE COMMENT '用户id索引'
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '用户三方登录绑定' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of iam_user_third
--- ----------------------------
-
--- ----------------------------
--- Table structure for iam_user_third_info
--- ----------------------------
-DROP TABLE IF EXISTS `iam_user_third_info`;
-CREATE TABLE `iam_user_third_info`  (
-  `id` bigint(20) NOT NULL COMMENT '主键',
-  `user_id` bigint(20) NOT NULL COMMENT '用户id',
-  `client_code` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT '第三方终端类型',
-  `username` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '用户名',
-  `nickname` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '用户昵称',
-  `avatar` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '用户头像',
-  `third_user_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '关联第三方平台的用户id',
-  `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建人',
-  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
-  `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修改人',
-  `last_modified_time` datetime(0) NULL DEFAULT NULL COMMENT '最后修改时间',
-  `version` int(11) NOT NULL COMMENT '版本',
-  PRIMARY KEY (`id`) USING BTREE,
-  INDEX `pk_user_client`(`user_id`, `client_code`) USING BTREE COMMENT '用户id和终端code'
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '用户三方登录绑定详情' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of iam_user_third_info
--- ----------------------------
-
--- ----------------------------
--- Table structure for miniapp_feedback_info
--- ----------------------------
-DROP TABLE IF EXISTS `miniapp_feedback_info`;
-CREATE TABLE `miniapp_feedback_info`  (
-  `id` bigint(20) NOT NULL COMMENT '主键',
-  `classify` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '问题分类',
-  `time` datetime(0) NULL DEFAULT NULL COMMENT '时间',
-  `contact` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '联系方式',
-  `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '姓名',
-  `user_id` bigint(20) NULL DEFAULT NULL COMMENT '反馈用户ID',
-  `content` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '内容',
-  `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
-  `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修者ID',
-  `last_modified_time` datetime(0) NULL DEFAULT NULL COMMENT '最后修改时间',
-  `version` int(11) NOT NULL COMMENT '乐观锁',
-  `deleted` bit(1) NOT NULL COMMENT '删除标志',
-  PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '用户反馈信息' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of miniapp_feedback_info
--- ----------------------------
-
--- ----------------------------
--- Table structure for miniapp_user_protocol
--- ----------------------------
-DROP TABLE IF EXISTS `miniapp_user_protocol`;
-CREATE TABLE `miniapp_user_protocol`  (
-  `id` bigint(20) NOT NULL COMMENT '主键',
-  `code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '编码',
-  `content` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL COMMENT '内容',
-  `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
-  `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修者ID',
-  `last_modified_time` datetime(0) NULL DEFAULT NULL COMMENT '最后修改时间',
-  `version` int(11) NOT NULL COMMENT '乐观锁',
-  `deleted` bit(1) NOT NULL COMMENT '删除标志',
-  PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '用户协议' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of miniapp_user_protocol
--- ----------------------------
-
--- ----------------------------
--- Table structure for mtm_table
--- ----------------------------
-DROP TABLE IF EXISTS `mtm_table`;
-CREATE TABLE `mtm_table`  (
-  `id` bigint(20) NOT NULL COMMENT '主键',
-  `h1` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL,
-  `date` date NULL DEFAULT NULL,
-  `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
-  `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修者ID',
-  `last_modified_time` datetime(0) NULL DEFAULT NULL COMMENT '最后修改时间',
-  `version` int(11) NOT NULL COMMENT '乐观锁',
-  `deleted` bit(1) NOT NULL COMMENT '删除标志',
-  PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = 'actable测试' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of mtm_table
--- ----------------------------
-
--- ----------------------------
--- Table structure for notice_mail_config
--- ----------------------------
-DROP TABLE IF EXISTS `notice_mail_config`;
-CREATE TABLE `notice_mail_config`  (
-  `id` bigint(20) NOT NULL,
-  `code` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '编号',
-  `name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '名称',
-  `host` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '邮箱服务器host',
-  `port` int(5) NOT NULL COMMENT '邮箱服务器 port',
-  `username` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '邮箱服务器 username',
-  `password` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '邮箱服务器 password',
-  `sender` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '邮箱服务器 sender',
-  `from_` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '邮箱服务器 from',
-  `activity` tinyint(1) NULL DEFAULT 0 COMMENT '是否默认配置,0:否。1:是',
-  `security_type` int(2) NULL DEFAULT NULL COMMENT '安全传输方式 1:plain 2:tls 3:ssl',
-  `creator` bigint(18) NULL DEFAULT NULL COMMENT '创建人',
-  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
-  `last_modifier` bigint(18) NULL DEFAULT NULL COMMENT '最后修改人',
-  `last_modified_time` datetime(0) NULL DEFAULT NULL COMMENT '最后修改时间',
-  `deleted` tinyint(1) NULL DEFAULT 0 COMMENT '0:未删除。1:已删除',
-  `version` int(8) NULL DEFAULT NULL COMMENT '版本',
-  PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '邮件配置' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of notice_mail_config
--- ----------------------------
-
--- ----------------------------
--- Table structure for notice_message_template
--- ----------------------------
-DROP TABLE IF EXISTS `notice_message_template`;
-CREATE TABLE `notice_message_template`  (
-  `id` bigint(20) NOT NULL,
-  `code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '编码',
-  `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '名称',
-  `data` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '模板数据',
-  `type` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '模板类型',
-  `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
-  `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建人',
-  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
-  `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修改人',
-  `last_modified_time` datetime(0) NULL DEFAULT NULL COMMENT '最后修改时间',
-  `version` int(11) NOT NULL COMMENT '版本',
-  `deleted` tinyint(1) NOT NULL DEFAULT 0 COMMENT '0:未删除。1:已删除',
-  PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '消息模板' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of notice_message_template
--- ----------------------------
-INSERT INTO `notice_message_template` VALUES (1424936204932169730, 'cs', '测试', 'hello ${msg}6666666666666666666666666666', '1', '测试模板', 0, '2021-08-10 11:30:40', 0, '2021-08-10 11:30:40', 0, 0);
-
--- ----------------------------
--- Table structure for notice_site_message
--- ----------------------------
-DROP TABLE IF EXISTS `notice_site_message`;
-CREATE TABLE `notice_site_message`  (
-  `id` bigint(20) NOT NULL COMMENT '主键',
-  `title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '消息标题',
-  `content` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '消息内容',
-  `sender_id` bigint(20) NULL DEFAULT NULL COMMENT '发送者id',
-  `sender_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '发送者姓名',
-  `sender_time` datetime(0) NULL DEFAULT NULL COMMENT '发送时间',
-  `receive_type` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '消息类型',
-  `send_state` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '发布状态',
-  `efficient_time` datetime(0) NULL DEFAULT NULL COMMENT '截至有效期',
-  `cancel_time` datetime(0) NULL DEFAULT NULL COMMENT '撤回时间',
-  `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建人',
-  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
-  `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修改人',
-  `last_modified_time` datetime(0) NULL DEFAULT NULL COMMENT '最后修改时间',
-  `version` int(11) NOT NULL COMMENT '版本',
-  `deleted` tinyint(1) NOT NULL DEFAULT 0 COMMENT '0:未删除。1:已删除',
-  PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '站内信' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of notice_site_message
--- ----------------------------
-
--- ----------------------------
--- Table structure for notice_site_message_user
--- ----------------------------
-DROP TABLE IF EXISTS `notice_site_message_user`;
-CREATE TABLE `notice_site_message_user`  (
-  `id` bigint(20) NOT NULL COMMENT '主键',
-  `message_id` bigint(20) NOT NULL COMMENT '消息id',
-  `receive_id` bigint(20) NOT NULL COMMENT '接收者id',
-  `have_read` bit(1) NOT NULL COMMENT '已读/未读',
-  `read_time` datetime(0) NULL DEFAULT NULL COMMENT '已读时间',
-  `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建人',
-  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
-  `deleted` tinyint(1) NOT NULL DEFAULT 0 COMMENT '0:未删除。1:已删除',
-  PRIMARY KEY (`id`) USING BTREE,
-  UNIQUE INDEX `uni_receive_message`(`receive_id`, `message_id`) USING BTREE COMMENT '接收人和消息联合索引',
-  INDEX `inx_message`(`message_id`) USING BTREE COMMENT '消息索引'
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '消息用户关联' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of notice_site_message_user
--- ----------------------------
-
--- ----------------------------
--- Table structure for notice_sms_channel_config
--- ----------------------------
-DROP TABLE IF EXISTS `notice_sms_channel_config`;
-CREATE TABLE `notice_sms_channel_config`  (
-  `id` bigint(20) NOT NULL COMMENT '主键',
-  `code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '渠道类型编码',
-  `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '渠道类型名称',
-  `state` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '状态',
-  `access_key` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'AccessKey',
-  `config` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '配置字符串',
-  `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
-  `access_secret` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'AccessSecret',
-  `image` bigint(20) NULL DEFAULT NULL COMMENT '图片',
-  `sort_no` double(10, 0) NULL DEFAULT NULL COMMENT '排序',
-  `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
-  `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修者ID',
-  `last_modified_time` datetime(0) NULL DEFAULT NULL COMMENT '最后修改时间',
-  `version` int(11) NOT NULL COMMENT '乐观锁',
-  `deleted` bit(1) NOT NULL COMMENT '删除标志',
-  PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '短信渠道配置' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of notice_sms_channel_config
--- ----------------------------
-INSERT INTO `notice_sms_channel_config` VALUES (1688432603289337856, 'alibaba', '阿里云短信', 'normal', '1', '{\"accessKeyId\":\"1231231231232111\",\"accessKeySecret\":\"12312312321111\",\"signature\":\"1231\",\"templateId\":\"2312313\",\"templateName\":\"123\",\"requestUrl\":\"五千二无二\",\"action\":\"SendSms\",\"version\":\"11\",\"regionId\":\"cn-hangzhou\"}', NULL, '1', NULL, 0, 1414143554414059520, '2023-08-07 14:11:17', 1414143554414059520, '2023-08-07 15:35:34', 0, b'0');
-INSERT INTO `notice_sms_channel_config` VALUES (1688456604610953216, 'huawei', '华为云短信', 'normal', '1', '{\"appKey\":\"1231231231232\",\"appSecret\":\"1111\",\"signature\":\"1\",\"sender\":\"1\",\"templateId\":\"12\",\"statusCallBack\":\"1\",\"url\":\"1\"}', NULL, '1', NULL, 0, 1414143554414059520, '2023-08-07 15:46:39', 1414143554414059520, '2023-08-07 15:46:49', 0, b'0');
-INSERT INTO `notice_sms_channel_config` VALUES (1688461302302732288, 'yunpian', '云片短信', 'normal', '1', '{\"accessKeyId\":\"1\",\"accessKeySecret\":\"1\",\"signature\":null,\"templateId\":null,\"callbackUrl\":null,\"templateName\":null}', NULL, '1', NULL, 0, 1414143554414059520, '2023-08-07 16:05:19', 1414143554414059520, '2023-08-08 14:12:23', 0, b'0');
-INSERT INTO `notice_sms_channel_config` VALUES (1688788784751001600, 'tencent', '腾讯短信', 'normal', '1', '{\"accessKeyId\":\"1\",\"accessKeySecret\":\"1\",\"signature\":null,\"templateId\":null,\"sdkAppId\":null,\"territory\":\"ap-guangzhou\",\"connTimeout\":60,\"requestUrl\":\"sms.tencentcloudapi.com\",\"action\":\"SendSms\",\"version\":\"2021-01-11\",\"service\":\"sms\"}', NULL, '1', NULL, 0, 1414143554414059520, '2023-08-08 13:46:37', 1414143554414059520, '2023-08-08 13:46:37', 0, b'0');
-INSERT INTO `notice_sms_channel_config` VALUES (1688788807228276736, 'uni_sms', '合一短信', 'normal', '1', '{\"accessKeyId\":\"1\",\"accessKeySecret\":\"1\",\"signature\":null,\"templateId\":null,\"isSimple\":true,\"templateName\":null}', NULL, '1', NULL, 0, 1414143554414059520, '2023-08-08 13:46:42', 1414143554414059520, '2023-08-08 13:46:43', 0, b'0');
-INSERT INTO `notice_sms_channel_config` VALUES (1688788823900635136, 'netease', '网易云短信', 'normal', '1', '{\"accessKeyId\":\"1\",\"accessKeySecret\":\"1\",\"signature\":null,\"templateId\":null,\"templateName\":null,\"templateUrl\":\"https://api.netease.im/sms/sendtemplate.action\",\"codeUrl\":\"https://api.netease.im/sms/sendcode.action\",\"verifyUrl\":\"https://api.netease.im/sms/verifycode.action\",\"needUp\":null}', NULL, '1', NULL, 0, 1414143554414059520, '2023-08-08 13:46:46', 1414143554414059520, '2023-08-08 13:46:47', 0, b'0');
-INSERT INTO `notice_sms_channel_config` VALUES (1688788846944141312, 'ctyun', '天翼云短信', 'normal', '1', '{\"accessKeyId\":\"1\",\"accessKeySecret\":\"1\",\"signature\":null,\"templateId\":null,\"templateName\":null,\"requestUrl\":\"https://sms-global.ctapi.ctyun.cn/sms/api/v1\",\"action\":\"SendSms\"}', NULL, '1', NULL, 0, 1414143554414059520, '2023-08-08 13:46:52', 1414143554414059520, '2023-08-08 13:46:52', 0, b'0');
-INSERT INTO `notice_sms_channel_config` VALUES (1688788862987354112, 'emay', '亿美短信', 'normal', '1', '{\"appId\":\"1\",\"secretKey\":\"1\",\"requestUrl\":null}', NULL, '1', NULL, 0, 1414143554414059520, '2023-08-08 13:46:56', 1414143554414059520, '2023-08-08 14:03:04', 0, b'0');
-INSERT INTO `notice_sms_channel_config` VALUES (1688788885141667840, 'cloopen', '容联短信', 'normal', '1', '{\"accessKeyId\":\"1\",\"accessKeySecret\":\"1\",\"signature\":null,\"templateId\":null,\"appId\":null,\"baseUrl\":\"https://app.cloopen.com:8883/2013-12-26\",\"serverIp\":null,\"serverPort\":null}', NULL, '1', NULL, 0, 1414143554414059520, '2023-08-08 13:47:01', 1414143554414059520, '2023-08-08 13:47:01', 0, b'0');
-INSERT INTO `notice_sms_channel_config` VALUES (1688788904481603584, 'jd_cloud', '京东短信', 'normal', '1', '{\"accessKeyId\":\"1\",\"accessKeySecret\":\"1\",\"signature\":null,\"templateId\":null,\"region\":\"cn-north-1\"}', NULL, '1', NULL, 0, 1414143554414059520, '2023-08-08 13:47:06', 1414143554414059520, '2023-08-08 13:47:06', 0, b'0');
-
--- ----------------------------
--- Table structure for notice_sms_config
--- ----------------------------
-DROP TABLE IF EXISTS `notice_sms_config`;
-CREATE TABLE `notice_sms_config`  (
-  `id` bigint(18) NOT NULL,
-  `tid` bigint(18) NOT NULL COMMENT '租户id',
-  `code` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
-  `name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL,
-  `account_sid` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
-  `path_sid` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '发送号码的唯一标识(基于twillio的命名风格)',
-  `auth_token` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
-  `from_num` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
-  `is_default` tinyint(1) NULL DEFAULT 0 COMMENT '是否默认配置,0:否。1:是',
-  `creator` bigint(18) NULL DEFAULT NULL,
-  `create_time` datetime(0) NULL DEFAULT NULL,
-  `last_modifier` bigint(18) NULL DEFAULT NULL,
-  `last_modified_time` datetime(0) NULL DEFAULT NULL,
-  `version` int(10) NULL DEFAULT NULL,
-  `deleted` tinyint(1) NULL DEFAULT 0 COMMENT '0:未删除。1:已删除',
-  `secret` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL,
-  `isp` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL,
-  `reply_msg` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL,
-  PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '短信配置' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of notice_sms_config
--- ----------------------------
-
--- ----------------------------
--- Table structure for notice_sms_template
--- ----------------------------
-DROP TABLE IF EXISTS `notice_sms_template`;
-CREATE TABLE `notice_sms_template`  (
-  `id` bigint(20) NOT NULL COMMENT '主键',
-  `supplier_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '短信渠道商类型',
-  `template_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '短信渠道商类型',
-  `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '短信模板名称',
-  `content` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '短信模板内容',
-  `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
-  `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修者ID',
-  `last_modified_time` datetime(0) NULL DEFAULT NULL COMMENT '最后修改时间',
-  `version` int(11) NOT NULL COMMENT '乐观锁',
-  `deleted` bit(1) NOT NULL COMMENT '删除标志',
-  PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '短信模板配置' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of notice_sms_template
--- ----------------------------
-
--- ----------------------------
--- Table structure for notice_wechat_config
--- ----------------------------
-DROP TABLE IF EXISTS `notice_wechat_config`;
-CREATE TABLE `notice_wechat_config`  (
-  `id` bigint(18) NOT NULL,
-  `tid` bigint(18) NOT NULL COMMENT '租户id',
-  `code` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
-  `name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL,
-  `corp_id` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
-  `corp_secret` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
-  `is_default` tinyint(1) NULL DEFAULT 0 COMMENT '是否默认配置,0:否。1:是',
-  `creator` bigint(18) NULL DEFAULT NULL,
-  `create_time` datetime(0) NULL DEFAULT NULL,
-  `last_modifier` bigint(18) NULL DEFAULT NULL,
-  `last_modified_time` datetime(0) NULL DEFAULT NULL,
-  `version` int(10) NULL DEFAULT NULL,
-  `deleted` tinyint(1) NULL DEFAULT 0 COMMENT '0:未删除。1:已删除',
-  PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '微信消息配置' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of notice_wechat_config
--- ----------------------------
-
--- ----------------------------
--- Table structure for pay_alipay_config
--- ----------------------------
-DROP TABLE IF EXISTS `pay_alipay_config`;
-CREATE TABLE `pay_alipay_config`  (
-  `id` bigint(20) NOT NULL COMMENT '主键',
-  `app_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '支付宝商户appId',
-  `enable` bit(1) NULL DEFAULT NULL COMMENT '是否启用',
-  `notify_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '异步通知页面路径',
-  `return_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '同步通知页面路径',
-  `server_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '支付网关地址',
-  `auth_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '认证类型',
-  `sign_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '签名类型 RSA2',
-  `alipay_public_key` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '支付宝公钥',
-  `private_key` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '私钥',
-  `app_cert` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '应用公钥证书',
-  `alipay_cert` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '支付宝公钥证书',
-  `alipay_root_cert` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '支付宝CA根证书',
-  `sandbox` bit(1) NULL DEFAULT NULL COMMENT '是否沙箱环境',
-  `pay_ways` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '可用支付方式',
-  `alipay_user_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '合作者身份ID',
-  `single_limit` int(11) NULL DEFAULT NULL COMMENT '支付限额',
-  `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
-  `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
-  `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修者ID',
-  `last_modified_time` datetime(0) NULL DEFAULT NULL COMMENT '最后修改时间',
-  `version` int(11) NOT NULL COMMENT '乐观锁',
-  `deleted` bit(1) NOT NULL COMMENT '删除标志',
-  `allocation` bit(1) NULL DEFAULT NULL COMMENT '是否支付分账',
-  PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '支付宝支付配置' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of pay_alipay_config
--- ----------------------------
-INSERT INTO `pay_alipay_config` VALUES (0, '123456', b'1', 'ServerUrl/callback/pay/alipay', 'ServerUrl/return/pay/alipay', 'https://openapi.alipay.com/gateway.do', 'key', 'RSA2', 'ImfODRp7hnJ3DUk9fCes0Q==', 'ImfODRp7hnJ3DUk9fCes0Q==', NULL, NULL, NULL, b'0', 'wap,app,web,qrcode,barcode', NULL, 2000, '支付宝支付', 0, '2024-01-02 21:17:58', 1399985191002447872, '2024-02-13 15:43:51', 23, b'0', b'1');
-
--- ----------------------------
--- Table structure for pay_alipay_reconcile_bill_detail
--- ----------------------------
-DROP TABLE IF EXISTS `pay_alipay_reconcile_bill_detail`;
-CREATE TABLE `pay_alipay_reconcile_bill_detail`  (
-  `id` bigint(20) NOT NULL COMMENT '主键',
-  `record_order_id` bigint(20) NULL DEFAULT NULL COMMENT '关联对账订单ID',
-  `trade_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '支付宝交易号',
-  `out_trade_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商户订单号',
-  `trade_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '业务类型',
-  `subject` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商品名称',
-  `create_time` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建时间',
-  `end_time` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '完成时间',
-  `store_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '门店编号',
-  `store_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '门店名称',
-  `operator` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '操作员',
-  `terminal_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '终端号',
-  `other_account` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '对方账户',
-  `order_amount` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '订单金额(元)',
-  `real_amount` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商家实收(元)',
-  `alipay_amount` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '支付宝红包(元)',
-  `jfb_amount` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '集分宝(元)',
-  `alipay_discount_amount` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '支付宝优惠(元)',
-  `discount_amount` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商家优惠(元)',
-  `coupon_discount_amount` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '券核销金额(元)',
-  `coupon_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '券名称',
-  `coupon_amount` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商家红包消费金额(元)',
-  `card_amount` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '卡消费金额(元)',
-  `batch_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '退款批次号/请求号',
-  `service_amount` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '服务费(元)',
-  `split_amount` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '分润(元)',
-  `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
-  PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '支付宝业务明细对账单' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of pay_alipay_reconcile_bill_detail
--- ----------------------------
-
--- ----------------------------
--- Table structure for pay_alipay_reconcile_bill_total
--- ----------------------------
-DROP TABLE IF EXISTS `pay_alipay_reconcile_bill_total`;
-CREATE TABLE `pay_alipay_reconcile_bill_total`  (
-  `id` bigint(20) NOT NULL COMMENT '主键',
-  `record_order_id` bigint(20) NULL DEFAULT NULL COMMENT '关联对账订单ID',
-  `store_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '门店编号',
-  `store_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '门店名称',
-  `total_num` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '交易订单总笔数',
-  `total_refund_num` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '退款订单总笔数',
-  `total_order_amount` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '订单金额(元)',
-  `total_amount` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商家实收(元)',
-  `total_discount_amount` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '支付宝优惠(元)',
-  `total_coupon_amount` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商家优惠(元)',
-  `total_consume_amount` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '卡消费金额(元)',
-  `total_service_amount` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '服务费(元)',
-  `total_share_amount` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '分润(元)',
-  `total_net_amount` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '实收净额(元)',
-  PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '支付宝业务汇总对账单' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of pay_alipay_reconcile_bill_total
--- ----------------------------
-
--- ----------------------------
--- Table structure for pay_alipay_record
--- ----------------------------
-DROP TABLE IF EXISTS `pay_alipay_record`;
-CREATE TABLE `pay_alipay_record`  (
-  `id` bigint(20) NOT NULL COMMENT '主键',
-  `title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '标题',
-  `amount` int(11) NULL DEFAULT NULL COMMENT '金额',
-  `type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '业务类型',
-  `order_id` bigint(20) NULL DEFAULT NULL COMMENT '本地订单号',
-  `gateway_order_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '网关订单号',
-  `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
-  `gateway_time` datetime(0) NULL DEFAULT NULL COMMENT '网关完成时间',
-  PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '支付宝流水记录' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of pay_alipay_record
--- ----------------------------
-
--- ----------------------------
--- Table structure for pay_allocation_group
--- ----------------------------
-DROP TABLE IF EXISTS `pay_allocation_group`;
-CREATE TABLE `pay_allocation_group`  (
-  `id` bigint(20) NOT NULL COMMENT '主键',
-  `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '名称',
-  `channel` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '通道',
-  `total_rate` int(11) NULL DEFAULT NULL COMMENT '总分账比例(万分之多少)',
-  `default_group` bit(1) NULL DEFAULT NULL COMMENT '默认分账组',
-  `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
-  `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
-  `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修者ID',
-  `last_modified_time` datetime(0) NULL DEFAULT NULL COMMENT '最后修改时间',
-  `version` int(11) NOT NULL COMMENT '乐观锁',
-  `deleted` bit(1) NOT NULL COMMENT '删除标志',
-  PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '分账组' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of pay_allocation_group
--- ----------------------------
-
--- ----------------------------
--- Table structure for pay_allocation_group_receiver
--- ----------------------------
-DROP TABLE IF EXISTS `pay_allocation_group_receiver`;
-CREATE TABLE `pay_allocation_group_receiver`  (
-  `id` bigint(20) NOT NULL COMMENT '主键',
-  `group_id` bigint(20) NULL DEFAULT NULL COMMENT '分账组ID',
-  `receiver_id` bigint(20) NULL DEFAULT NULL COMMENT '接收者ID',
-  `rate` int(11) NULL DEFAULT NULL COMMENT '分账比例(万分之多少)',
-  `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
-  PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '分账接收组关系' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of pay_allocation_group_receiver
--- ----------------------------
-
--- ----------------------------
--- Table structure for pay_allocation_order
--- ----------------------------
-DROP TABLE IF EXISTS `pay_allocation_order`;
-CREATE TABLE `pay_allocation_order`  (
-  `id` bigint(20) NOT NULL COMMENT '主键',
-  `order_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '分账订单号',
-  `allocation_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '分账单号',
-  `payment_id` bigint(20) NULL DEFAULT NULL COMMENT '支付订单ID',
-  `title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
-  `gateway_pay_order_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '网关支付订单号',
-  `gateway_allocation_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '网关分账单号',
-  `channel` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '所属通道',
-  `amount` int(11) NULL DEFAULT NULL COMMENT '总分账金额',
-  `description` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '分账描述',
-  `status` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '状态',
-  `result` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '分账处理结果',
-  `error_msg` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '错误原因',
-  `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
-  `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修者ID',
-  `last_modified_time` datetime(0) NULL DEFAULT NULL COMMENT '最后修改时间',
-  `version` int(11) NOT NULL COMMENT '乐观锁',
-  `deleted` bit(1) NOT NULL COMMENT '删除标志',
-  PRIMARY KEY (`id`) USING BTREE,
-  UNIQUE INDEX `allocation_no`(`allocation_no`) USING BTREE COMMENT '分账单号索引'
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '分账订单' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of pay_allocation_order
--- ----------------------------
-
--- ----------------------------
--- Table structure for pay_allocation_order_detail
--- ----------------------------
-DROP TABLE IF EXISTS `pay_allocation_order_detail`;
-CREATE TABLE `pay_allocation_order_detail`  (
-  `id` bigint(20) NOT NULL COMMENT '主键',
-  `allocation_id` bigint(20) NULL DEFAULT NULL COMMENT '分账订单ID',
-  `receiver_id` bigint(20) NULL DEFAULT NULL COMMENT '接收者ID',
-  `rate` int(11) NULL DEFAULT NULL COMMENT '分账比例(万分之多少)',
-  `amount` int(11) NULL DEFAULT NULL COMMENT '分账金额',
-  `receiver_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '分账接收方类型',
-  `receiver_account` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '接收方账号',
-  `receiver_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '接收方姓名',
-  `result` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '分账结果',
-  `error_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '错误代码',
-  `error_msg` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '错误原因',
-  `finish_time` datetime(0) NULL DEFAULT NULL COMMENT '分账完成时间',
-  `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
-  `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修者ID',
-  `last_modified_time` datetime(0) NULL DEFAULT NULL COMMENT '最后修改时间',
-  `version` int(11) NOT NULL COMMENT '乐观锁',
-  `deleted` bit(1) NOT NULL COMMENT '删除标志',
-  PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '分账订单明细' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of pay_allocation_order_detail
--- ----------------------------
-
--- ----------------------------
--- Table structure for pay_allocation_receiver
--- ----------------------------
-DROP TABLE IF EXISTS `pay_allocation_receiver`;
-CREATE TABLE `pay_allocation_receiver`  (
-  `id` bigint(20) NOT NULL COMMENT '主键',
-  `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '账号别名',
-  `channel` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '所属通道',
-  `receiver_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '分账接收方类型',
-  `receiver_account` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '接收方账号',
-  `receiver_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '接收方姓名',
-  `relation_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '分账关系类型',
-  `relation_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '关系名称',
-  `sync` bit(1) NULL DEFAULT NULL COMMENT '是否已经同步到网关',
-  `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
-  `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
-  `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修者ID',
-  `last_modified_time` datetime(0) NULL DEFAULT NULL COMMENT '最后修改时间',
-  `version` int(11) NOT NULL COMMENT '乐观锁',
-  `deleted` bit(1) NOT NULL COMMENT '删除标志',
-  PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '分账接收方' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of pay_allocation_receiver
--- ----------------------------
-
--- ----------------------------
--- Table structure for pay_api_config
--- ----------------------------
-DROP TABLE IF EXISTS `pay_api_config`;
-CREATE TABLE `pay_api_config`  (
-  `id` bigint(20) NOT NULL COMMENT '主键',
-  `code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '编码',
-  `api` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '接口地址',
-  `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '名称',
-  `notice_support` bit(1) NULL DEFAULT NULL COMMENT '支持回调通知',
-  `enable` bit(1) NULL DEFAULT NULL COMMENT '是否启用',
-  `notice` bit(1) NULL DEFAULT NULL COMMENT '是否开启回调通知',
-  `notice_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '默认通知地址',
-  `req_sign` bit(1) NULL DEFAULT NULL COMMENT '请求参数是否签名',
-  `res_sign` bit(1) NULL DEFAULT NULL COMMENT '响应参数是否签名',
-  `notice_sign` bit(1) NULL DEFAULT NULL COMMENT '回调信息是否签名',
-  `record` bit(1) NULL DEFAULT NULL COMMENT '是否记录请求的信息',
-  `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
-  `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修者ID',
-  `last_modified_time` datetime(0) NULL DEFAULT NULL COMMENT '最后修改时间',
-  `version` int(11) NOT NULL COMMENT '乐观锁',
-  `deleted` bit(1) NOT NULL COMMENT '删除标志',
-  `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
-  PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '支付接口配置' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of pay_api_config
--- ----------------------------
-INSERT INTO `pay_api_config` VALUES (1, 'pay', '/uniPay/pay', '统一支付接口	', b'1', b'1', b'1', 'http://127.0.0.1:9000/demo/callback/payObject', b'1', b'0', b'1', b'0', 0, '2024-01-03 14:25:48', 1399985191002447872, '2024-02-25 15:20:41', 7, b'0', NULL);
-INSERT INTO `pay_api_config` VALUES (2, 'simplePay', '/uniPay/simplePay', '简单支付接口', b'1', b'1', b'1', 'http://127.0.0.1:9000/demo/callback/payObject', b'1', b'0', b'1', b'0', 0, '2024-01-03 14:25:48', 1399985191002447872, '2024-02-25 15:20:44', 11, b'0', NULL);
-INSERT INTO `pay_api_config` VALUES (3, 'close', '/uniPay/close', '支付关闭接口', b'0', b'1', b'1', NULL, b'1', b'0', b'0', b'0', 0, '2024-01-03 14:25:48', 0, '2024-01-03 14:25:53', 0, b'0', NULL);
-INSERT INTO `pay_api_config` VALUES (4, 'refund', '/uniPay/refund', '统一退款接口', b'1', b'1', b'1', 'http://127.0.0.1:9000/demo/callback/refundObject', b'1', b'0', b'1', b'0', 0, '2024-01-03 14:25:48', 1399985191002447872, '2024-02-25 15:20:33', 4, b'0', NULL);
-INSERT INTO `pay_api_config` VALUES (5, 'simpleRefund', '/uniPay/simpleRefund', '简单退款接口', b'1', b'1', b'1', 'http://127.0.0.1:9000/demo/callback/refundObject', b'1', b'0', b'1', b'0', 0, '2024-01-03 14:25:48', 1399985191002447872, '2024-02-25 15:20:38', 4, b'0', NULL);
-INSERT INTO `pay_api_config` VALUES (6, 'syncPay', '/uniPay/syncPay', '支付同步接口', b'0', b'1', b'1', NULL, b'1', b'0', b'0', b'0', 0, '2024-01-03 14:25:48', 0, '2024-01-03 14:25:53', 0, b'0', NULL);
-INSERT INTO `pay_api_config` VALUES (7, 'syncRefund', '/uniPay/syncRefund', '退款同步接口', b'0', b'1', b'1', NULL, b'1', b'0', b'0', b'0', 0, '2024-01-03 14:25:48', 0, '2024-01-03 14:25:53', 0, b'0', NULL);
-INSERT INTO `pay_api_config` VALUES (8, 'transfer', '/uniPay/transfer', '统一转账接口', b'1', b'1', b'1', NULL, b'1', b'0', b'0', b'0', 0, '2024-01-03 14:25:48', 0, '2024-01-03 14:25:53', 0, b'0', NULL);
-INSERT INTO `pay_api_config` VALUES (9, 'allocation', '/uniPay/allocation', '统一分账接口', b'1', b'1', b'1', NULL, b'1', b'0', b'0', b'0', 0, '2024-01-03 14:25:48', 0, '2024-01-03 14:25:53', 0, b'0', NULL);
-INSERT INTO `pay_api_config` VALUES (10, 'queryPayOrder', '/uniPay/queryPayOrder', '支付订单查询接口', b'0', b'1', b'0', NULL, b'1', b'0', b'0', b'0', 0, '2024-01-03 14:25:48', 0, '2024-01-03 14:25:53', 0, b'0', NULL);
-INSERT INTO `pay_api_config` VALUES (11, 'queryRefundOrder', '/uniPay/queryRefundOrder', '退款订单查询接口', b'0', b'1', b'0', NULL, b'1', b'0', b'0', b'0', 0, '2024-01-03 14:25:48', 0, '2024-01-03 14:25:53', 0, b'0', NULL);
-INSERT INTO `pay_api_config` VALUES (12, 'getWxAuthUrl', '/unipay/assist/getWxAuthUrl', '获取微信OAuth2授权链接', b'0', b'1', b'0', NULL, b'1', b'0', b'0', b'0', 0, '2024-01-03 14:25:48', 0, '2024-01-03 14:25:53', 0, b'0', NULL);
-INSERT INTO `pay_api_config` VALUES (13, 'getWxAccessToken', '/unipay/assist/getWxAccessToken', '获取微信AccessToken', b'0', b'1', b'0', NULL, b'1', b'0', b'0', b'0', 0, '2024-01-03 14:25:48', 0, '2024-01-03 14:25:53', 0, b'0', NULL);
-
--- ----------------------------
--- Table structure for pay_callback_record
--- ----------------------------
-DROP TABLE IF EXISTS `pay_callback_record`;
-CREATE TABLE `pay_callback_record`  (
-  `id` bigint(20) NOT NULL COMMENT '主键',
-  `order_id` bigint(20) NULL DEFAULT NULL COMMENT '本地订单id',
-  `gateway_order_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '支付网关订单号',
-  `channel` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '支付通道',
-  `callback_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '回调类型',
-  `notify_info` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '通知消息',
-  `status` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '回调处理状态',
-  `repair_order_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
-  `msg` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '提示信息',
-  `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
-  PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '网关回调通知' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of pay_callback_record
--- ----------------------------
-
--- ----------------------------
--- Table structure for pay_cash_config
--- ----------------------------
-DROP TABLE IF EXISTS `pay_cash_config`;
-CREATE TABLE `pay_cash_config`  (
-  `id` bigint(20) NOT NULL COMMENT '主键',
-  `enable` bit(1) NULL DEFAULT NULL COMMENT '是否启用',
-  `single_limit` int(11) NULL DEFAULT NULL COMMENT '单次支付最多多少金额 ',
-  `pay_ways` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '可用支付方式',
-  `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
-  `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
-  `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修者ID',
-  `last_modified_time` datetime(0) NULL DEFAULT NULL COMMENT '最后修改时间',
-  `version` int(11) NOT NULL COMMENT '乐观锁',
-  `deleted` bit(1) NOT NULL COMMENT '删除标志',
-  PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '现金支付配置' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of pay_cash_config
--- ----------------------------
-INSERT INTO `pay_cash_config` VALUES (0, b'1', 2000, 'normal', NULL, 0, '2024-02-17 14:36:28', 1399985191002447872, '2024-02-17 14:40:45', 4, b'0');
-
--- ----------------------------
--- Table structure for pay_channel_config
--- ----------------------------
-DROP TABLE IF EXISTS `pay_channel_config`;
-CREATE TABLE `pay_channel_config`  (
-  `id` bigint(20) NOT NULL COMMENT '主键',
-  `code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '代码',
-  `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '名称',
-  `icon_id` bigint(20) NULL DEFAULT NULL COMMENT 'ICON图片',
-  `bg_color` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '卡牌背景色',
-  `enable` bit(1) NULL DEFAULT NULL COMMENT '是否启用',
-  `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
-  `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
-  `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修者ID',
-  `last_modified_time` datetime(0) NULL DEFAULT NULL COMMENT '最后修改时间',
-  `version` int(11) NOT NULL COMMENT '乐观锁',
-  `deleted` bit(1) NOT NULL COMMENT '删除标志',
-  PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '支付通道配置' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of pay_channel_config
--- ----------------------------
-INSERT INTO `pay_channel_config` VALUES (1, 'ali_pay', '支付宝', NULL, NULL, b'1', '', 0, '2024-01-08 16:47:07', 1399985191002447872, '2024-02-13 15:38:21', 10, b'0');
-INSERT INTO `pay_channel_config` VALUES (2, 'wechat_pay', '微信支付', NULL, NULL, b'1', '', 0, '2024-01-08 16:47:07', 1399985191002447872, '2024-02-13 15:38:24', 7, b'0');
-INSERT INTO `pay_channel_config` VALUES (3, 'union_pay', '云闪付', NULL, NULL, b'1', NULL, 0, '2024-01-08 16:47:07', 1399985191002447872, '2024-03-10 15:04:36', 2, b'0');
-INSERT INTO `pay_channel_config` VALUES (4, 'cash_pay', '现金支付', NULL, NULL, b'1', NULL, 0, '2024-01-08 16:47:07', 0, '2024-01-08 16:47:11', 0, b'0');
-INSERT INTO `pay_channel_config` VALUES (5, 'wallet_pay', '钱包支付', NULL, NULL, b'1', NULL, 0, '2024-01-08 16:47:07', 0, '2024-01-08 16:47:11', 0, b'0');
-INSERT INTO `pay_channel_config` VALUES (6, 'voucher_pay', '储值卡支付', NULL, NULL, b'1', NULL, 0, '2024-01-08 16:47:07', 0, '2024-01-08 16:47:11', 0, b'0');
-
--- ----------------------------
--- Table structure for pay_channel_order
--- ----------------------------
-DROP TABLE IF EXISTS `pay_channel_order`;
-CREATE TABLE `pay_channel_order`  (
-  `id` bigint(20) NOT NULL COMMENT '主键',
-  `payment_id` bigint(20) NULL DEFAULT NULL COMMENT '支付id',
-  `async` bit(1) NULL DEFAULT NULL COMMENT '异步支付方式',
-  `channel` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '通道',
-  `pay_way` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '支付方式',
-  `amount` int(11) NULL DEFAULT NULL COMMENT '金额',
-  `refundable_balance` int(11) NULL DEFAULT NULL COMMENT '可退款金额',
-  `status` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '支付状态',
-  `pay_time` datetime(0) NULL DEFAULT NULL COMMENT '支付完成时间',
-  `channel_extra` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '附加支付参数',
-  `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
-  PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '支付订单关联支付时通道信息' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of pay_channel_order
--- ----------------------------
-
--- ----------------------------
--- Table structure for pay_client_notice_record
--- ----------------------------
-DROP TABLE IF EXISTS `pay_client_notice_record`;
-CREATE TABLE `pay_client_notice_record`  (
-  `id` bigint(20) NOT NULL COMMENT '主键',
-  `task_id` bigint(20) NULL DEFAULT NULL COMMENT '任务ID',
-  `req_count` int(11) NULL DEFAULT NULL COMMENT '请求次数',
-  `success` bit(1) NULL DEFAULT NULL COMMENT '发送是否成功',
-  `error_msg` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '错误信息',
-  `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
-  `send_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '发送类型',
-  PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '消息通知任务记录' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of pay_client_notice_record
--- ----------------------------
-
--- ----------------------------
--- Table structure for pay_client_notice_task
--- ----------------------------
-DROP TABLE IF EXISTS `pay_client_notice_task`;
-CREATE TABLE `pay_client_notice_task`  (
-  `id` bigint(20) NOT NULL COMMENT '主键',
-  `order_id` bigint(20) NULL DEFAULT NULL COMMENT '本地订单ID',
-  `content` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '消息内容',
-  `success` bit(1) NULL DEFAULT NULL COMMENT '是否发送成功',
-  `send_count` int(11) NULL DEFAULT NULL COMMENT '发送次数',
-  `url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '发送地址',
-  `latest_time` datetime(0) NULL DEFAULT NULL COMMENT '最后发送时间',
-  `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
-  `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修者ID',
-  `last_modified_time` datetime(0) NULL DEFAULT NULL COMMENT '最后修改时间',
-  `version` int(11) NOT NULL COMMENT '乐观锁',
-  `deleted` bit(1) NOT NULL COMMENT '删除标志',
-  `notice_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '消息类型',
-  `order_status` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '订单状态',
-  PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '消息通知任务' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of pay_client_notice_task
--- ----------------------------
-
--- ----------------------------
--- Table structure for pay_close_record
--- ----------------------------
-DROP TABLE IF EXISTS `pay_close_record`;
-CREATE TABLE `pay_close_record`  (
-  `id` bigint(20) NOT NULL COMMENT '主键',
-  `payment_id` bigint(20) NULL DEFAULT NULL COMMENT '支付记录id',
-  `business_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '业务号',
-  `async_channel` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '关闭的异步支付通道',
-  `closed` bit(1) NULL DEFAULT NULL COMMENT '是否关闭成功',
-  `error_msg` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '错误消息',
-  `client_ip` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '客户端IP',
-  `req_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '请求链路ID',
-  `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
-  PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '支付关闭记录' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of pay_close_record
--- ----------------------------
-
--- ----------------------------
--- Table structure for pay_order
--- ----------------------------
-DROP TABLE IF EXISTS `pay_order`;
-CREATE TABLE `pay_order`  (
-  `id` bigint(20) NOT NULL COMMENT '主键',
-  `business_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '关联的业务号',
-  `title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '标题',
-  `combination_pay` bit(1) NULL DEFAULT NULL COMMENT '是否是组合支付',
-  `async_pay` bit(1) NULL DEFAULT NULL COMMENT '是否是异步支付',
-  `async_channel` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '异步支付通道',
-  `gateway_order_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '网关订单号',
-  `amount` int(11) NULL DEFAULT NULL COMMENT '金额',
-  `refundable_balance` int(11) NULL DEFAULT NULL COMMENT '可退款余额',
-  `status` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '支付状态',
-  `pay_time` datetime(0) NULL DEFAULT NULL COMMENT '支付时间',
-  `close_time` datetime(0) NULL DEFAULT NULL COMMENT '关闭时间',
-  `expired_time` datetime(0) NULL DEFAULT NULL COMMENT '过期时间',
-  `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
-  `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修者ID',
-  `last_modified_time` datetime(0) NULL DEFAULT NULL COMMENT '最后修改时间',
-  `version` int(11) NOT NULL COMMENT '乐观锁',
-  `deleted` bit(1) NOT NULL COMMENT '删除标志',
-  `allocation` bit(1) NULL DEFAULT NULL COMMENT '是否需要分账',
-  `allocation_status` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '分账状态',
-  PRIMARY KEY (`id`) USING BTREE,
-  UNIQUE INDEX `business_no`(`business_no`) USING BTREE COMMENT '业务业务号索引'
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '支付订单' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of pay_order
--- ----------------------------
-
--- ----------------------------
--- Table structure for pay_order_extra
--- ----------------------------
-DROP TABLE IF EXISTS `pay_order_extra`;
-CREATE TABLE `pay_order_extra`  (
-  `id` bigint(20) NOT NULL COMMENT '主键',
-  `description` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '描述',
-  `return_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '同步跳转地址',
-  `req_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '请求链路ID',
-  `notice_sign` bit(1) NULL DEFAULT NULL COMMENT '回调通知时是否需要进行签名',
-  `notify_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '异步通知地址,以最后一次为准',
-  `attach` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商户扩展参数',
-  `req_sign_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '签名类型',
-  `req_sign` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '签名',
-  `req_time` datetime(0) NULL DEFAULT NULL COMMENT '请求时间,传输时间戳,以最后一次为准',
-  `client_ip` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '支付终端ip',
-  `error_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '错误码',
-  `error_msg` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '错误信息',
-  `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
-  `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修者ID',
-  `last_modified_time` datetime(0) NULL DEFAULT NULL COMMENT '最后修改时间',
-  `version` int(11) NOT NULL COMMENT '乐观锁',
-  `deleted` bit(1) NOT NULL COMMENT '删除标志',
-  PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '支付订单扩展信息' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of pay_order_extra
--- ----------------------------
-
--- ----------------------------
--- Table structure for pay_platform_config
--- ----------------------------
-DROP TABLE IF EXISTS `pay_platform_config`;
-CREATE TABLE `pay_platform_config`  (
-  `id` bigint(20) NOT NULL COMMENT '主键',
-  `website_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '网站地址',
-  `sign_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '签名方式',
-  `sign_secret` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '签名秘钥',
-  `notify_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '支付通知地址',
-  `return_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '同步支付跳转地址',
-  `order_timeout` int(11) NULL DEFAULT NULL COMMENT '订单默认超时时间(分钟)',
-  `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
-  `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修者ID',
-  `last_modified_time` datetime(0) NULL DEFAULT NULL COMMENT '最后修改时间',
-  `version` int(11) NOT NULL COMMENT '乐观锁',
-  `deleted` bit(1) NOT NULL COMMENT '删除标志',
-  `limit_amount` int(11) NULL DEFAULT NULL COMMENT '支付限额',
-  PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '支付平台配置' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of pay_platform_config
--- ----------------------------
-INSERT INTO `pay_platform_config` VALUES (0, 'http://127.0.0.1', 'HMAC_SHA256', '123456', 'http://127.0.0.1/h5/#/result/success', 'http://127.0.0.1/h5/#/result/success', 30, 0, '2024-01-02 20:23:19', 1757299137932677120, '2024-02-13 15:08:51', 3, b'0', 2000);
-
--- ----------------------------
--- Table structure for pay_reconcile_detail
--- ----------------------------
-DROP TABLE IF EXISTS `pay_reconcile_detail`;
-CREATE TABLE `pay_reconcile_detail`  (
-  `id` bigint(20) NOT NULL COMMENT '主键',
-  `record_order_id` bigint(20) NULL DEFAULT NULL COMMENT '关联对账订单ID',
-  `title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商品名称',
-  `amount` int(11) NULL DEFAULT NULL COMMENT '交易金额',
-  `type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '交易类型',
-  `order_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '本地订单ID',
-  `gateway_order_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '网关订单号',
-  `order_time` datetime(0) NULL DEFAULT NULL COMMENT '订单时间',
-  `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
-  PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '支付对账记录' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of pay_reconcile_detail
--- ----------------------------
-
--- ----------------------------
--- Table structure for pay_reconcile_diff_record
--- ----------------------------
-DROP TABLE IF EXISTS `pay_reconcile_diff_record`;
-CREATE TABLE `pay_reconcile_diff_record`  (
-  `id` bigint(20) NOT NULL COMMENT '主键',
-  `record_id` bigint(20) NULL DEFAULT NULL COMMENT '对账单ID',
-  `detail_id` bigint(20) NULL DEFAULT NULL COMMENT '对账单明细ID',
-  `order_id` bigint(20) NULL DEFAULT NULL COMMENT '本地订单id',
-  `title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '订单标题',
-  `order_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '订单类型',
-  `diff_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '差异类型',
-  `diffs` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '差异内容',
-  `gateway_order_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '网关订单号',
-  `amount` int(11) NULL DEFAULT NULL COMMENT '交易金额',
-  `order_time` datetime(0) NULL DEFAULT NULL COMMENT '订单时间',
-  `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
-  `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修者ID',
-  `last_modified_time` datetime(0) NULL DEFAULT NULL COMMENT '最后修改时间',
-  `version` int(11) NOT NULL COMMENT '乐观锁',
-  `deleted` bit(1) NOT NULL COMMENT '删除标志',
-  PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '对账差异单' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of pay_reconcile_diff_record
--- ----------------------------
-
--- ----------------------------
--- Table structure for pay_reconcile_order
--- ----------------------------
-DROP TABLE IF EXISTS `pay_reconcile_order`;
-CREATE TABLE `pay_reconcile_order`  (
-  `id` bigint(20) NOT NULL COMMENT '主键',
-  `batch_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '批次号',
-  `date` date NULL DEFAULT NULL COMMENT '日期',
-  `channel` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '通道',
-  `down` bit(1) NULL DEFAULT NULL COMMENT '是否下载成功',
-  `compare` bit(1) NULL DEFAULT NULL COMMENT '是否比对完成',
-  `error_msg` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '错误信息',
-  `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
-  PRIMARY KEY (`id`) USING BTREE,
-  INDEX `批次号索引`(`batch_no`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '支付对账单订单' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of pay_reconcile_order
--- ----------------------------
-
--- ----------------------------
--- Table structure for pay_refund_channel_order
--- ----------------------------
-DROP TABLE IF EXISTS `pay_refund_channel_order`;
-CREATE TABLE `pay_refund_channel_order`  (
-  `id` bigint(20) NOT NULL COMMENT '主键',
-  `refund_id` bigint(20) NULL DEFAULT NULL COMMENT '关联退款id',
-  `pay_channel_id` bigint(20) NULL DEFAULT NULL COMMENT '通道支付单id',
-  `channel` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '通道',
-  `async` bit(1) NULL DEFAULT NULL COMMENT '异步支付方式',
-  `order_amount` int(11) NULL DEFAULT NULL COMMENT '订单金额',
-  `amount` int(11) NULL DEFAULT NULL COMMENT '退款金额',
-  `refundable_amount` int(11) NULL DEFAULT NULL COMMENT '剩余可退余额',
-  `status` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '退款状态',
-  `refund_time` datetime(0) NULL DEFAULT NULL COMMENT '退款完成时间',
-  `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
-  PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '支付退款通道订单' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of pay_refund_channel_order
--- ----------------------------
-
--- ----------------------------
--- Table structure for pay_refund_order
--- ----------------------------
-DROP TABLE IF EXISTS `pay_refund_order`;
-CREATE TABLE `pay_refund_order`  (
-  `id` bigint(20) NOT NULL COMMENT '主键',
-  `payment_id` bigint(20) NULL DEFAULT NULL COMMENT '原支付id',
-  `business_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '原支付业务号',
-  `title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '原支付标题',
-  `refund_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '退款号',
-  `async_pay` bit(1) NULL DEFAULT NULL COMMENT '是否含有异步通道',
-  `async_channel` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '异步通道',
-  `gateway_order_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '网关订单号',
-  `order_amount` int(11) NULL DEFAULT NULL COMMENT '订单金额',
-  `amount` int(11) NULL DEFAULT NULL COMMENT '退款金额',
-  `refundable_balance` int(11) NULL DEFAULT NULL COMMENT '剩余可退',
-  `reason` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '退款原因',
-  `refund_time` datetime(0) NULL DEFAULT NULL COMMENT '退款完成时间',
-  `status` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '退款状态',
-  `error_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '错误码',
-  `error_msg` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '错误信息',
-  `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
-  `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修者ID',
-  `last_modified_time` datetime(0) NULL DEFAULT NULL COMMENT '最后修改时间',
-  `version` int(11) NOT NULL COMMENT '乐观锁',
-  `deleted` bit(1) NOT NULL COMMENT '删除标志',
-  PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '退款订单' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of pay_refund_order
--- ----------------------------
-
--- ----------------------------
--- Table structure for pay_refund_order_extra
--- ----------------------------
-DROP TABLE IF EXISTS `pay_refund_order_extra`;
-CREATE TABLE `pay_refund_order_extra`  (
-  `id` bigint(20) NOT NULL COMMENT '主键',
-  `notice_sign` bit(1) NULL DEFAULT NULL COMMENT '回调通知时是否需要进行签名',
-  `notify_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '异步通知地址',
-  `attach` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商户扩展参数',
-  `req_sign_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '请求签名值',
-  `req_sign` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '请求签名值',
-  `req_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '请求链路ID',
-  `req_time` datetime(0) NULL DEFAULT NULL COMMENT '请求时间,传输时间戳',
-  `client_ip` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '支付终端ip',
-  `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
-  `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修者ID',
-  `last_modified_time` datetime(0) NULL DEFAULT NULL COMMENT '最后修改时间',
-  `version` int(11) NOT NULL COMMENT '乐观锁',
-  `deleted` bit(1) NOT NULL COMMENT '删除标志',
-  PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '退款订单扩展信息' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of pay_refund_order_extra
--- ----------------------------
-
--- ----------------------------
--- Table structure for pay_repair_record
--- ----------------------------
-DROP TABLE IF EXISTS `pay_repair_record`;
-CREATE TABLE `pay_repair_record`  (
-  `id` bigint(20) NOT NULL COMMENT '主键',
-  `repair_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '修复号',
-  `order_id` bigint(20) NULL DEFAULT NULL COMMENT '本地订单ID',
-  `order_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '本地业务号',
-  `repair_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '修复类型',
-  `repair_source` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '修复来源',
-  `repair_way` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '修复方式',
-  `async_channel` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '修复的异步通道',
-  `before_status` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '修复前状态',
-  `after_status` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '修复后状态',
-  `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
-  PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '支付修复记录' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of pay_repair_record
--- ----------------------------
-
--- ----------------------------
--- Table structure for pay_sync_record
--- ----------------------------
-DROP TABLE IF EXISTS `pay_sync_record`;
-CREATE TABLE `pay_sync_record`  (
-  `id` bigint(20) NOT NULL COMMENT '主键',
-  `order_id` bigint(20) NULL DEFAULT NULL COMMENT '本地订单ID',
-  `order_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '本地业务号',
-  `gateway_order_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '网关订单号',
-  `sync_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '同步类型',
-  `async_channel` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '同步的异步通道',
-  `sync_info` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '同步消息',
-  `gateway_status` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '网关返回状态',
-  `repair_order` bit(1) NULL DEFAULT NULL COMMENT '是否进行修复',
-  `repair_order_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '修复单号',
-  `error_msg` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '错误消息',
-  `client_ip` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '客户端IP',
-  `req_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '请求链路ID',
-  `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
-  PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '支付同步订单' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of pay_sync_record
--- ----------------------------
-
--- ----------------------------
--- Table structure for pay_transfer_order
--- ----------------------------
-DROP TABLE IF EXISTS `pay_transfer_order`;
-CREATE TABLE `pay_transfer_order`  (
-  `id` bigint(20) NOT NULL COMMENT '主键',
-  `out_trade_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
-  `channel` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
-  `amount` int(11) NULL DEFAULT NULL,
-  `status` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
-  `payer` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
-  `payee` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
-  `success_time` datetime(0) NULL DEFAULT NULL,
-  `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
-  `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修者ID',
-  `last_modified_time` datetime(0) NULL DEFAULT NULL COMMENT '最后修改时间',
-  `version` int(11) NOT NULL COMMENT '乐观锁',
-  `deleted` bit(1) NOT NULL COMMENT '删除标志',
-  PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '转账订单' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of pay_transfer_order
--- ----------------------------
-
--- ----------------------------
--- Table structure for pay_union_pay_config
--- ----------------------------
-DROP TABLE IF EXISTS `pay_union_pay_config`;
-CREATE TABLE `pay_union_pay_config`  (
-  `id` bigint(20) NOT NULL COMMENT '主键',
-  `mach_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商户号',
-  `enable` bit(1) NULL DEFAULT NULL COMMENT '是否启用',
-  `server_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '支付网关地址',
-  `notify_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '异步通知路径',
-  `pay_ways` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '可用支付方式',
-  `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
-  `seller` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商户收款账号',
-  `sign_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '签名类型',
-  `cert_sign` bit(1) NULL DEFAULT NULL COMMENT '是否为证书签名',
-  `key_private_cert` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '应用私钥证书',
-  `key_private_cert_pwd` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '私钥证书对应的密码',
-  `acp_middle_cert` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '中级证书',
-  `acp_root_cert` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '根证书',
-  `sandbox` bit(1) NULL DEFAULT NULL COMMENT '是否沙箱环境',
-  `return_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '同步通知页面路径',
-  `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
-  `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修者ID',
-  `last_modified_time` datetime(0) NULL DEFAULT NULL COMMENT '最后修改时间',
-  `version` int(11) NOT NULL COMMENT '乐观锁',
-  `deleted` bit(1) NOT NULL COMMENT '删除标志',
-  `single_limit` int(11) NULL DEFAULT NULL COMMENT '支付限额',
-  PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '云闪付支付配置' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of pay_union_pay_config
--- ----------------------------
-INSERT INTO `pay_union_pay_config` VALUES (0, '123456', b'1', 'https://qra.95516.com/pay/gateway', 'ServerUrl/callback/pay/union', 'wap,app,web,qrcode,barcode,jsapi,b2b', NULL, NULL, 'RSA2', b'0', NULL, NULL, NULL, NULL, b'1', 'ServerUrl/return/pay/union', 0, '2024-03-06 22:56:22', 1399985191002447872, '2024-03-12 23:30:18', 11, b'0', 2000);
-
--- ----------------------------
--- Table structure for pay_union_pay_record
--- ----------------------------
-DROP TABLE IF EXISTS `pay_union_pay_record`;
-CREATE TABLE `pay_union_pay_record`  (
-  `id` bigint(20) NOT NULL COMMENT '主键',
-  `amount` int(11) NULL DEFAULT NULL COMMENT '金额',
-  `title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '标题',
-  `type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '业务类型',
-  `order_id` bigint(20) NULL DEFAULT NULL COMMENT '本地订单号',
-  `gateway_order_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '网关订单号',
-  `gateway_time` datetime(0) NULL DEFAULT NULL COMMENT '网关完成时间',
-  `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
-  PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '云闪付流水记录' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of pay_union_pay_record
--- ----------------------------
-
--- ----------------------------
--- Table structure for pay_union_reconcile_bill_detail
--- ----------------------------
-DROP TABLE IF EXISTS `pay_union_reconcile_bill_detail`;
-CREATE TABLE `pay_union_reconcile_bill_detail`  (
-  `record_order_id` bigint(20) NULL DEFAULT NULL COMMENT '关联对账订单ID',
-  `trade_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '交易代码',
-  `txn_time` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '交易传输时间',
-  `txn_amt` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '交易金额',
-  `query_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '查询流水号',
-  `order_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商户订单号'
-) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '云闪付业务明细对账单' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of pay_union_reconcile_bill_detail
--- ----------------------------
-
--- ----------------------------
--- Table structure for pay_voucher
--- ----------------------------
-DROP TABLE IF EXISTS `pay_voucher`;
-CREATE TABLE `pay_voucher`  (
-  `id` bigint(20) NOT NULL COMMENT '主键',
-  `card_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '卡号',
-  `face_value` int(11) NULL DEFAULT NULL COMMENT '面值',
-  `balance` int(11) NULL DEFAULT NULL COMMENT '余额',
-  `enduring` bit(1) NULL DEFAULT NULL COMMENT '是否长期有效',
-  `start_time` datetime(0) NULL DEFAULT NULL COMMENT '开始时间',
-  `end_time` datetime(0) NULL DEFAULT NULL COMMENT '结束时间',
-  `status` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '状态',
-  `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
-  `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修者ID',
-  `last_modified_time` datetime(0) NULL DEFAULT NULL COMMENT '最后修改时间',
-  `version` int(11) NOT NULL COMMENT '乐观锁',
-  `deleted` bit(1) NOT NULL COMMENT '删除标志',
-  PRIMARY KEY (`id`) USING BTREE,
-  INDEX `card_no`(`card_no`) USING BTREE COMMENT '卡号索引'
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '储值卡' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of pay_voucher
--- ----------------------------
-
--- ----------------------------
--- Table structure for pay_voucher_config
--- ----------------------------
-DROP TABLE IF EXISTS `pay_voucher_config`;
-CREATE TABLE `pay_voucher_config`  (
-  `id` bigint(20) NOT NULL COMMENT '主键',
-  `enable` bit(1) NULL DEFAULT NULL COMMENT '是否启用',
-  `single_limit` int(11) NULL DEFAULT NULL COMMENT '单次支付最多多少金额 ',
-  `pay_ways` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '可用支付方式',
-  `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
-  `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
-  `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修者ID',
-  `last_modified_time` datetime(0) NULL DEFAULT NULL COMMENT '最后修改时间',
-  `version` int(11) NOT NULL COMMENT '乐观锁',
-  `deleted` bit(1) NOT NULL COMMENT '删除标志',
-  PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '储值卡配置' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of pay_voucher_config
--- ----------------------------
-INSERT INTO `pay_voucher_config` VALUES (0, b'1', 2000, 'normal', NULL, 0, '2024-02-17 14:36:28', 1399985191002447872, '2024-02-17 17:01:25', 7, b'0');
-
--- ----------------------------
--- Table structure for pay_voucher_record
--- ----------------------------
-DROP TABLE IF EXISTS `pay_voucher_record`;
-CREATE TABLE `pay_voucher_record`  (
-  `id` bigint(20) NOT NULL COMMENT '主键',
-  `voucher_id` bigint(20) NULL DEFAULT NULL COMMENT '储值卡id',
-  `title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '标题',
-  `type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '业务类型',
-  `amount` int(11) NULL DEFAULT NULL COMMENT '金额',
-  `old_amount` int(11) NULL DEFAULT NULL COMMENT '变动之前的金额',
-  `new_amount` int(11) NULL DEFAULT NULL COMMENT '变动之后的金额',
-  `order_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '交易订单号',
-  `ip` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '终端ip',
-  `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
-  `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
-  PRIMARY KEY (`id`) USING BTREE,
-  INDEX `voucher_id`(`voucher_id`) USING BTREE COMMENT '储值卡ID'
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '储值卡记录' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of pay_voucher_record
--- ----------------------------
-
--- ----------------------------
--- Table structure for pay_wallet
--- ----------------------------
-DROP TABLE IF EXISTS `pay_wallet`;
-CREATE TABLE `pay_wallet`  (
-  `id` bigint(20) NOT NULL COMMENT '主键',
-  `user_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '关联用户id',
-  `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '钱包名称',
-  `balance` int(11) NULL DEFAULT NULL COMMENT '余额',
-  `status` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '状态',
-  `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
-  `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修者ID',
-  `last_modified_time` datetime(0) NULL DEFAULT NULL COMMENT '最后修改时间',
-  `version` int(11) NOT NULL COMMENT '乐观锁',
-  `deleted` bit(1) NOT NULL COMMENT '删除标志',
-  PRIMARY KEY (`id`) USING BTREE,
-  INDEX `用户ID索引`(`user_id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '钱包' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of pay_wallet
--- ----------------------------
-
--- ----------------------------
--- Table structure for pay_wallet_config
--- ----------------------------
-DROP TABLE IF EXISTS `pay_wallet_config`;
-CREATE TABLE `pay_wallet_config`  (
-  `id` bigint(20) NOT NULL COMMENT '主键',
-  `enable` bit(1) NULL DEFAULT NULL COMMENT '是否启用',
-  `single_limit` int(11) NULL DEFAULT NULL COMMENT '单次支付最多多少金额 ',
-  `pay_ways` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '可用支付方式',
-  `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
-  `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
-  `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修者ID',
-  `last_modified_time` datetime(0) NULL DEFAULT NULL COMMENT '最后修改时间',
-  `version` int(11) NOT NULL COMMENT '乐观锁',
-  `deleted` bit(1) NOT NULL COMMENT '删除标志',
-  PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '钱包配置' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of pay_wallet_config
--- ----------------------------
-INSERT INTO `pay_wallet_config` VALUES (0, b'1', 2000, 'normal', NULL, 0, '2024-02-17 14:36:28', 1399985191002447872, '2024-02-17 14:40:45', 4, b'0');
-
--- ----------------------------
--- Table structure for pay_wallet_record
--- ----------------------------
-DROP TABLE IF EXISTS `pay_wallet_record`;
-CREATE TABLE `pay_wallet_record`  (
-  `id` bigint(20) NOT NULL COMMENT '主键',
-  `wallet_id` bigint(20) NULL DEFAULT NULL COMMENT '钱包id',
-  `title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '标题',
-  `type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '业务类型',
-  `amount` int(11) NULL DEFAULT NULL COMMENT '金额',
-  `old_amount` int(11) NULL DEFAULT NULL COMMENT '变动之前的金额',
-  `new_amount` int(11) NULL DEFAULT NULL COMMENT '变动之后的金额',
-  `order_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '交易订单号',
-  `ip` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '终端ip',
-  `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
-  `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
-  PRIMARY KEY (`id`) USING BTREE,
-  INDEX `wallet_id`(`wallet_id`) USING BTREE COMMENT '钱包ID'
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '钱包记录' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of pay_wallet_record
--- ----------------------------
-
--- ----------------------------
--- Table structure for pay_way_info
--- ----------------------------
-DROP TABLE IF EXISTS `pay_way_info`;
-CREATE TABLE `pay_way_info`  (
-  `id` bigint(20) NOT NULL COMMENT '主键',
-  `code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '代码',
-  `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '名称',
-  `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
-  `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
-  `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修者ID',
-  `last_modified_time` datetime(0) NULL DEFAULT NULL COMMENT '最后修改时间',
-  `version` int(11) NOT NULL COMMENT '乐观锁',
-  `deleted` bit(1) NOT NULL COMMENT '删除标志',
-  PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '支付方式' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of pay_way_info
--- ----------------------------
-INSERT INTO `pay_way_info` VALUES (1, 'normal', '常规支付', '同步支付使用这个', 0, '2024-01-09 10:01:21', 1399985191002447872, '2024-02-13 15:39:16', 1, b'0');
-INSERT INTO `pay_way_info` VALUES (2, 'wap', 'wap支付', NULL, 0, '2024-01-09 10:01:21', 0, '2024-01-09 10:01:25', 0, b'0');
-INSERT INTO `pay_way_info` VALUES (3, 'app', '应用支付', NULL, 0, '2024-01-09 10:01:21', 0, '2024-01-09 10:01:25', 0, b'0');
-INSERT INTO `pay_way_info` VALUES (4, 'web', 'web支付', NULL, 0, '2024-01-09 10:01:21', 0, '2024-01-09 10:01:25', 0, b'0');
-INSERT INTO `pay_way_info` VALUES (6, 'barcode', '付款码', NULL, 0, '2024-01-09 10:01:21', 0, '2024-01-09 10:01:25', 0, b'0');
-INSERT INTO `pay_way_info` VALUES (7, 'jsapi', '公众号/小程序支付', '主要是微信使用', 0, '2024-01-09 10:01:21', 1399985191002447872, '2024-02-13 15:38:57', 1, b'0');
-
--- ----------------------------
--- Table structure for pay_wechat_notice_config
--- ----------------------------
-DROP TABLE IF EXISTS `pay_wechat_notice_config`;
-CREATE TABLE `pay_wechat_notice_config`  (
-  `id` bigint(20) NOT NULL COMMENT '主键',
-  `app_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '应用id',
-  `app_secret` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '应用秘钥',
-  `qr_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '公众号二维码',
-  `oauth2_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'OAuth2地址',
-  `verify_file_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '微信校验文件名称',
-  `verify_file_content` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '微信校验文件内容',
-  `template_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '模板消息Id',
-  `template_content` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '模板消息内容',
-  `template_remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '模板消息备注',
-  `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
-  `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修者ID',
-  `last_modified_time` datetime(0) NULL DEFAULT NULL COMMENT '最后修改时间',
-  `version` int(11) NOT NULL COMMENT '乐观锁',
-  `deleted` bit(1) NOT NULL COMMENT '删除标志',
-  PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '微信消息通知相关配置' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of pay_wechat_notice_config
--- ----------------------------
-
--- ----------------------------
--- Table structure for pay_wechat_pay_config
--- ----------------------------
-DROP TABLE IF EXISTS `pay_wechat_pay_config`;
-CREATE TABLE `pay_wechat_pay_config`  (
-  `id` bigint(20) NOT NULL COMMENT '主键',
-  `wx_mch_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '微信商户号',
-  `wx_app_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '微信应用appId',
-  `enable` bit(1) NULL DEFAULT NULL COMMENT '是否启用',
-  `notify_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '异步通知路径',
-  `return_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '同步通知路径',
-  `api_version` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '接口版本',
-  `api_key_v2` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'APIv2 密钥',
-  `api_key_v3` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'APIv3 密钥',
-  `app_secret` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'APPID对应的接口密码',
-  `p12` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT 'API证书中p12证书Base64',
-  `sandbox` bit(1) NULL DEFAULT NULL COMMENT '是否沙箱环境',
-  `pay_ways` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '可用支付方式',
-  `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
-  `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
-  `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修者ID',
-  `last_modified_time` datetime(0) NULL DEFAULT NULL COMMENT '最后修改时间',
-  `version` int(11) NOT NULL COMMENT '乐观锁',
-  `deleted` bit(1) NOT NULL COMMENT '删除标志',
-  `single_limit` int(11) NULL DEFAULT NULL COMMENT '支付限额',
-  `allocation` bit(1) NULL DEFAULT NULL COMMENT '是否支付分账',
-  PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '微信支付配置' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of pay_wechat_pay_config
--- ----------------------------
-INSERT INTO `pay_wechat_pay_config` VALUES (0, '123', '123', b'1', 'ServerUrl/callback/pay/wechat', 'ServerUrl/pay/wechat', 'apiV2', 'E0jIzPNngkpkZYL19H3vFQ==', 'E0jIzPNngkpkZYL19H3vFQ==', 'E0jIzPNngkpkZYL19H3vFQ==', 'E0jIzPNngkpkZYL19H3vFQ==', b'0', 'wap,app,jsapi,qrcode,barcode', NULL, 0, '2024-04-18 09:15:47', 1399985191002447872, '2024-04-18 09:16:22', 2025, b'0', 2000, b'1');
-
--- ----------------------------
--- Table structure for pay_wechat_pay_record
--- ----------------------------
-DROP TABLE IF EXISTS `pay_wechat_pay_record`;
-CREATE TABLE `pay_wechat_pay_record`  (
-  `id` bigint(20) NOT NULL COMMENT '主键',
-  `title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '标题',
-  `amount` int(11) NULL DEFAULT NULL COMMENT '金额',
-  `type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '业务类型',
-  `order_id` bigint(20) NULL DEFAULT NULL COMMENT '本地订单号',
-  `gateway_order_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '网关订单号',
-  `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
-  `gateway_time` datetime(0) NULL DEFAULT NULL COMMENT '网关完成时间',
-  PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '微信支付记录' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of pay_wechat_pay_record
--- ----------------------------
-
--- ----------------------------
--- Table structure for pay_wechat_reconcile_bill_detail
--- ----------------------------
-DROP TABLE IF EXISTS `pay_wechat_reconcile_bill_detail`;
-CREATE TABLE `pay_wechat_reconcile_bill_detail`  (
-  `id` bigint(20) NOT NULL COMMENT '主键',
-  `record_order_id` bigint(20) NULL DEFAULT NULL COMMENT '关联对账订单ID',
-  `transaction_time` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '交易时间',
-  `app_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '公众账号ID',
-  `merchant_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商户号',
-  `sub_merchant_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '特约商户号',
-  `wei_xin_order_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '微信订单号',
-  `mch_order_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商户订单号',
-  `user_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '用户标识',
-  `device_info` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '设备号',
-  `type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '交易类型',
-  `status` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '交易状态',
-  `bank` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '付款银行',
-  `currency` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '货币种类',
-  `amount` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '应结订单金额',
-  `envelope_amount` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '代金券金额',
-  `wx_refund_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '微信退款单号',
-  `mch_refund_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商户退款单号',
-  `refund_amount` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '退款金额',
-  `coupon_refund_amount` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '充值券退款金额',
-  `refund_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '退款类型',
-  `refund_status` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '退款状态',
-  `subject` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商品名称',
-  `mch_data_packet` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商户数据包',
-  `premium` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '手续费',
-  `rates` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '费率',
-  `order_amount` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '订单金额',
-  `apply_refund_amount` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '申请退款金额',
-  `rates_remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '费率备注',
-  PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '微信对账单明细' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of pay_wechat_reconcile_bill_detail
--- ----------------------------
-
--- ----------------------------
--- Table structure for pay_wechat_reconcile_bill_total
--- ----------------------------
-DROP TABLE IF EXISTS `pay_wechat_reconcile_bill_total`;
-CREATE TABLE `pay_wechat_reconcile_bill_total`  (
-  `id` bigint(20) NOT NULL COMMENT '主键',
-  `record_order_id` bigint(20) NULL DEFAULT NULL COMMENT '关联对账订单ID',
-  `total_num` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '总交易单数',
-  `total_amount` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '应结订单总金额',
-  `total_refund_amount` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '退款总金额',
-  `total_refund_coupon_amount` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '充值券退款总金额',
-  `total_fee` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '手续费总金额',
-  `total_order_amount` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '订单总金额',
-  `apply_total_refund_amount` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '申请退款总金额',
-  PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '微信对账单汇总' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of pay_wechat_reconcile_bill_total
--- ----------------------------
-
--- ----------------------------
--- Table structure for qrtz_blob_triggers
--- ----------------------------
-DROP TABLE IF EXISTS `qrtz_blob_triggers`;
-CREATE TABLE `qrtz_blob_triggers`  (
-  `SCHED_NAME` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
-  `TRIGGER_NAME` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
-  `TRIGGER_GROUP` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
-  `BLOB_DATA` blob NULL,
-  PRIMARY KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) USING BTREE,
-  INDEX `SCHED_NAME`(`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) USING BTREE,
-  CONSTRAINT `qrtz_blob_triggers_ibfk_1` FOREIGN KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) REFERENCES `qrtz_triggers` (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) ON DELETE NO ACTION ON UPDATE NO ACTION
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of qrtz_blob_triggers
--- ----------------------------
-
--- ----------------------------
--- Table structure for qrtz_calendars
--- ----------------------------
-DROP TABLE IF EXISTS `qrtz_calendars`;
-CREATE TABLE `qrtz_calendars`  (
-  `SCHED_NAME` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
-  `CALENDAR_NAME` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
-  `CALENDAR` blob NOT NULL,
-  PRIMARY KEY (`SCHED_NAME`, `CALENDAR_NAME`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of qrtz_calendars
--- ----------------------------
-
--- ----------------------------
--- Table structure for qrtz_cron_triggers
--- ----------------------------
-DROP TABLE IF EXISTS `qrtz_cron_triggers`;
-CREATE TABLE `qrtz_cron_triggers`  (
-  `SCHED_NAME` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
-  `TRIGGER_NAME` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
-  `TRIGGER_GROUP` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
-  `CRON_EXPRESSION` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
-  `TIME_ZONE_ID` varchar(80) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
-  PRIMARY KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) USING BTREE,
-  CONSTRAINT `qrtz_cron_triggers_ibfk_1` FOREIGN KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) REFERENCES `qrtz_triggers` (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) ON DELETE NO ACTION ON UPDATE NO ACTION
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of qrtz_cron_triggers
--- ----------------------------
-INSERT INTO `qrtz_cron_triggers` VALUES ('quartzScheduler', '1546857070483939328', 'DEFAULT', '0/5 * * * * ? *', 'Asia/Shanghai');
-
--- ----------------------------
--- Table structure for qrtz_fired_triggers
--- ----------------------------
-DROP TABLE IF EXISTS `qrtz_fired_triggers`;
-CREATE TABLE `qrtz_fired_triggers`  (
-  `SCHED_NAME` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
-  `ENTRY_ID` varchar(95) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
-  `TRIGGER_NAME` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
-  `TRIGGER_GROUP` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
-  `INSTANCE_NAME` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
-  `FIRED_TIME` bigint(13) NOT NULL,
-  `SCHED_TIME` bigint(13) NOT NULL,
-  `PRIORITY` int(11) NOT NULL,
-  `STATE` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
-  `JOB_NAME` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
-  `JOB_GROUP` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
-  `IS_NONCONCURRENT` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
-  `REQUESTS_RECOVERY` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
-  PRIMARY KEY (`SCHED_NAME`, `ENTRY_ID`) USING BTREE,
-  INDEX `IDX_QRTZ_FT_T_G`(`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) USING BTREE,
-  INDEX `IDX_QRTZ_FT_TRIG_INST_NAME`(`SCHED_NAME`, `INSTANCE_NAME`) USING BTREE,
-  INDEX `IDX_QRTZ_FT_J_G`(`SCHED_NAME`, `JOB_NAME`, `JOB_GROUP`) USING BTREE,
-  INDEX `IDX_QRTZ_FT_INST_JOB_REQ_RCVRY`(`SCHED_NAME`, `INSTANCE_NAME`, `REQUESTS_RECOVERY`) USING BTREE,
-  INDEX `IDX_QRTZ_FT_TG`(`SCHED_NAME`, `TRIGGER_GROUP`) USING BTREE,
-  INDEX `IDX_QRTZ_FT_JG`(`SCHED_NAME`, `JOB_GROUP`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of qrtz_fired_triggers
--- ----------------------------
-INSERT INTO `qrtz_fired_triggers` VALUES ('quartzScheduler', 'NON_CLUSTERED1711420949184', '1546857070483939328', 'DEFAULT', 'NON_CLUSTERED', 1711421986284, 1711421990000, 5, 'ACQUIRED', NULL, NULL, '0', '0');
-
--- ----------------------------
--- Table structure for qrtz_job_details
--- ----------------------------
-DROP TABLE IF EXISTS `qrtz_job_details`;
-CREATE TABLE `qrtz_job_details`  (
-  `SCHED_NAME` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
-  `JOB_NAME` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
-  `JOB_GROUP` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
-  `DESCRIPTION` varchar(250) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
-  `JOB_CLASS_NAME` varchar(250) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
-  `IS_DURABLE` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
-  `IS_NONCONCURRENT` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
-  `IS_UPDATE_DATA` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
-  `REQUESTS_RECOVERY` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
-  `JOB_DATA` blob NULL,
-  PRIMARY KEY (`SCHED_NAME`, `JOB_NAME`, `JOB_GROUP`) USING BTREE,
-  INDEX `IDX_QRTZ_J_GRP`(`SCHED_NAME`, `JOB_GROUP`) USING BTREE,
-  INDEX `IDX_QRTZ_J_REQ_RECOVERY`(`SCHED_NAME`, `REQUESTS_RECOVERY`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of qrtz_job_details
--- ----------------------------
-INSERT INTO `qrtz_job_details` VALUES ('quartzScheduler', '1546857070483939328', 'DEFAULT', NULL, 'cn.bootx.platform.daxpay.service.task.PayExpiredTimeTask', '0', '0', '0', '0', 0xACED0005737200156F72672E71756172747A2E4A6F62446174614D61709FB083E8BFA9B0CB020000787200266F72672E71756172747A2E7574696C732E537472696E674B65794469727479466C61674D61708208E8C3FBC55D280200015A0013616C6C6F77735472616E7369656E74446174617872001D6F72672E71756172747A2E7574696C732E4469727479466C61674D617013E62EAD28760ACE0200025A000564697274794C00036D617074000F4C6A6176612F7574696C2F4D61703B787001737200116A6176612E7574696C2E486173684D61700507DAC1C31660D103000246000A6C6F6164466163746F724900097468726573686F6C6478703F4000000000000C77080000001000000001740009706172616D65746572707800);
-
--- ----------------------------
--- Table structure for qrtz_locks
--- ----------------------------
-DROP TABLE IF EXISTS `qrtz_locks`;
-CREATE TABLE `qrtz_locks`  (
-  `SCHED_NAME` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
-  `LOCK_NAME` varchar(40) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
-  PRIMARY KEY (`SCHED_NAME`, `LOCK_NAME`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of qrtz_locks
--- ----------------------------
-INSERT INTO `qrtz_locks` VALUES ('quartzScheduler', 'TRIGGER_ACCESS');
-
--- ----------------------------
--- Table structure for qrtz_paused_trigger_grps
--- ----------------------------
-DROP TABLE IF EXISTS `qrtz_paused_trigger_grps`;
-CREATE TABLE `qrtz_paused_trigger_grps`  (
-  `SCHED_NAME` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
-  `TRIGGER_GROUP` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
-  PRIMARY KEY (`SCHED_NAME`, `TRIGGER_GROUP`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of qrtz_paused_trigger_grps
--- ----------------------------
-
--- ----------------------------
--- Table structure for qrtz_scheduler_state
--- ----------------------------
-DROP TABLE IF EXISTS `qrtz_scheduler_state`;
-CREATE TABLE `qrtz_scheduler_state`  (
-  `SCHED_NAME` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
-  `INSTANCE_NAME` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
-  `LAST_CHECKIN_TIME` bigint(13) NOT NULL,
-  `CHECKIN_INTERVAL` bigint(13) NOT NULL,
-  PRIMARY KEY (`SCHED_NAME`, `INSTANCE_NAME`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of qrtz_scheduler_state
--- ----------------------------
-
--- ----------------------------
--- Table structure for qrtz_simple_triggers
--- ----------------------------
-DROP TABLE IF EXISTS `qrtz_simple_triggers`;
-CREATE TABLE `qrtz_simple_triggers`  (
-  `SCHED_NAME` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
-  `TRIGGER_NAME` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
-  `TRIGGER_GROUP` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
-  `REPEAT_COUNT` bigint(7) NOT NULL,
-  `REPEAT_INTERVAL` bigint(12) NOT NULL,
-  `TIMES_TRIGGERED` bigint(10) NOT NULL,
-  PRIMARY KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) USING BTREE,
-  CONSTRAINT `qrtz_simple_triggers_ibfk_1` FOREIGN KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) REFERENCES `qrtz_triggers` (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) ON DELETE NO ACTION ON UPDATE NO ACTION
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of qrtz_simple_triggers
--- ----------------------------
-
--- ----------------------------
--- Table structure for qrtz_simprop_triggers
--- ----------------------------
-DROP TABLE IF EXISTS `qrtz_simprop_triggers`;
-CREATE TABLE `qrtz_simprop_triggers`  (
-  `SCHED_NAME` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
-  `TRIGGER_NAME` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
-  `TRIGGER_GROUP` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
-  `STR_PROP_1` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
-  `STR_PROP_2` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
-  `STR_PROP_3` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
-  `INT_PROP_1` int(11) NULL DEFAULT NULL,
-  `INT_PROP_2` int(11) NULL DEFAULT NULL,
-  `LONG_PROP_1` bigint(20) NULL DEFAULT NULL,
-  `LONG_PROP_2` bigint(20) NULL DEFAULT NULL,
-  `DEC_PROP_1` decimal(13, 4) NULL DEFAULT NULL,
-  `DEC_PROP_2` decimal(13, 4) NULL DEFAULT NULL,
-  `BOOL_PROP_1` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
-  `BOOL_PROP_2` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
-  PRIMARY KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) USING BTREE,
-  CONSTRAINT `qrtz_simprop_triggers_ibfk_1` FOREIGN KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) REFERENCES `qrtz_triggers` (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) ON DELETE NO ACTION ON UPDATE NO ACTION
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of qrtz_simprop_triggers
--- ----------------------------
-
--- ----------------------------
--- Table structure for qrtz_triggers
--- ----------------------------
-DROP TABLE IF EXISTS `qrtz_triggers`;
-CREATE TABLE `qrtz_triggers`  (
-  `SCHED_NAME` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
-  `TRIGGER_NAME` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
-  `TRIGGER_GROUP` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
-  `JOB_NAME` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
-  `JOB_GROUP` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
-  `DESCRIPTION` varchar(250) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
-  `NEXT_FIRE_TIME` bigint(13) NULL DEFAULT NULL,
-  `PREV_FIRE_TIME` bigint(13) NULL DEFAULT NULL,
-  `PRIORITY` int(11) NULL DEFAULT NULL,
-  `TRIGGER_STATE` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
-  `TRIGGER_TYPE` varchar(8) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
-  `START_TIME` bigint(13) NOT NULL,
-  `END_TIME` bigint(13) NULL DEFAULT NULL,
-  `CALENDAR_NAME` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
-  `MISFIRE_INSTR` smallint(2) NULL DEFAULT NULL,
-  `JOB_DATA` blob NULL,
-  PRIMARY KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) USING BTREE,
-  INDEX `IDX_QRTZ_T_NFT_ST`(`SCHED_NAME`, `TRIGGER_STATE`, `NEXT_FIRE_TIME`) USING BTREE,
-  INDEX `IDX_QRTZ_T_N_STATE`(`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`, `TRIGGER_STATE`) USING BTREE,
-  INDEX `IDX_QRTZ_T_NEXT_FIRE_TIME`(`SCHED_NAME`, `NEXT_FIRE_TIME`) USING BTREE,
-  INDEX `IDX_QRTZ_T_C`(`SCHED_NAME`, `CALENDAR_NAME`) USING BTREE,
-  INDEX `IDX_QRTZ_T_NFT_ST_MISFIRE`(`SCHED_NAME`, `MISFIRE_INSTR`, `NEXT_FIRE_TIME`, `TRIGGER_STATE`) USING BTREE,
-  INDEX `IDX_QRTZ_T_G`(`SCHED_NAME`, `TRIGGER_GROUP`) USING BTREE,
-  INDEX `IDX_QRTZ_T_J`(`SCHED_NAME`, `JOB_NAME`, `JOB_GROUP`) USING BTREE,
-  INDEX `IDX_QRTZ_T_JG`(`SCHED_NAME`, `JOB_GROUP`) USING BTREE,
-  INDEX `IDX_QRTZ_T_N_G_STATE`(`SCHED_NAME`, `TRIGGER_GROUP`, `TRIGGER_STATE`) USING BTREE,
-  INDEX `IDX_QRTZ_T_NFT_MISFIRE`(`SCHED_NAME`, `MISFIRE_INSTR`, `NEXT_FIRE_TIME`) USING BTREE,
-  INDEX `IDX_QRTZ_T_STATE`(`SCHED_NAME`, `TRIGGER_STATE`) USING BTREE,
-  INDEX `IDX_QRTZ_T_NFT_ST_MISFIRE_GRP`(`SCHED_NAME`, `MISFIRE_INSTR`, `NEXT_FIRE_TIME`, `TRIGGER_GROUP`, `TRIGGER_STATE`) USING BTREE,
-  CONSTRAINT `qrtz_triggers_ibfk_1` FOREIGN KEY (`SCHED_NAME`, `JOB_NAME`, `JOB_GROUP`) REFERENCES `qrtz_job_details` (`SCHED_NAME`, `JOB_NAME`, `JOB_GROUP`) ON DELETE NO ACTION ON UPDATE NO ACTION
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of qrtz_triggers
--- ----------------------------
-INSERT INTO `qrtz_triggers` VALUES ('quartzScheduler', '1546857070483939328', 'DEFAULT', '1546857070483939328', 'DEFAULT', NULL, 1711421995000, 1711421990000, 5, 'ACQUIRED', 'CRON', 1708844216000, 0, NULL, 0, '');
-
--- ----------------------------
--- Table structure for starter_audit_data_version
--- ----------------------------
-DROP TABLE IF EXISTS `starter_audit_data_version`;
-CREATE TABLE `starter_audit_data_version`  (
-  `id` bigint(20) NOT NULL,
-  `table_name` varchar(300) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '数据表名称',
-  `data_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '数据名称',
-  `data_id` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '数据主键',
-  `data_content` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '数据内容',
-  `change_content` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '数据更新内容',
-  `version` int(10) NOT NULL COMMENT '版本',
-  `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建人',
-  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
-  PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '数据版本日志' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of starter_audit_data_version
--- ----------------------------
-
--- ----------------------------
--- Table structure for starter_audit_login_log
--- ----------------------------
-DROP TABLE IF EXISTS `starter_audit_login_log`;
-CREATE TABLE `starter_audit_login_log`  (
-  `id` bigint(20) NOT NULL,
-  `user_id` bigint(11) NULL DEFAULT NULL COMMENT '用户id',
-  `account` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '用户名称',
-  `login` bit(1) NULL DEFAULT NULL COMMENT '登录成功状态',
-  `client` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '终端',
-  `login_type` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '登录方式',
-  `ip` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '登录IP地址',
-  `login_location` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '登录地点',
-  `os` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '操作系统',
-  `browser` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '浏览器类型',
-  `msg` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '提示消息',
-  `login_time` datetime(0) NULL DEFAULT NULL COMMENT '访问时间',
-  PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '登陆日志' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of starter_audit_login_log
--- ----------------------------
-
--- ----------------------------
--- Table structure for starter_audit_operate_log
--- ----------------------------
-DROP TABLE IF EXISTS `starter_audit_operate_log`;
-CREATE TABLE `starter_audit_operate_log`  (
-  `id` bigint(20) NOT NULL,
-  `title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '操作模块',
-  `operate_id` bigint(20) NULL DEFAULT NULL COMMENT '操作人员id',
-  `username` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '操作人员账号',
-  `business_type` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '业务类型',
-  `method` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '请求方法',
-  `request_method` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '请求方式',
-  `operate_url` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '请求url',
-  `operate_ip` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '操作ip',
-  `operate_location` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '操作地点',
-  `operate_param` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '请求参数',
-  `operate_return` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '返回参数',
-  `success` bit(1) NULL DEFAULT NULL COMMENT '是否成功',
-  `error_msg` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '错误提示',
-  `operate_time` datetime(0) NULL DEFAULT NULL COMMENT '操作时间',
-  PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '操作日志' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of starter_audit_operate_log
--- ----------------------------
-
--- ----------------------------
--- Table structure for starter_ding_media_md5
--- ----------------------------
-DROP TABLE IF EXISTS `starter_ding_media_md5`;
-CREATE TABLE `starter_ding_media_md5`  (
-  `id` bigint(20) NOT NULL,
-  `media_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '媒体id',
-  `md5` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 'md5值',
-  `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建人',
-  `create_time` datetime(6) NULL DEFAULT NULL COMMENT '创建时间',
-  PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '钉钉媒体文件MD5值关联关系' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of starter_ding_media_md5
--- ----------------------------
-
--- ----------------------------
--- Table structure for starter_ding_robot_config
--- ----------------------------
-DROP TABLE IF EXISTS `starter_ding_robot_config`;
-CREATE TABLE `starter_ding_robot_config`  (
-  `id` bigint(20) NOT NULL,
-  `name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '名称',
-  `code` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '编号',
-  `access_token` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '钉钉机器人访问token',
-  `enable_signature_check` bit(1) NOT NULL COMMENT '是否开启验签',
-  `sign_secret` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '钉钉机器人私钥',
-  `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
-  `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建人',
-  `create_time` datetime(6) NULL DEFAULT NULL COMMENT '创建时间',
-  `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修改人',
-  `last_modified_time` datetime(6) NULL DEFAULT NULL COMMENT '最后修改时间',
-  `version` int(11) NOT NULL COMMENT '版本',
-  `deleted` bit(1) NOT NULL COMMENT '0:未删除。1:已删除',
-  PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '钉钉机器人配置' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of starter_ding_robot_config
--- ----------------------------
-
--- ----------------------------
--- Table structure for starter_file_data
--- ----------------------------
-DROP TABLE IF EXISTS `starter_file_data`;
-CREATE TABLE `starter_file_data`  (
-  `id` bigint(20) NOT NULL COMMENT '主键',
-  `base64` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL COMMENT 'base64方式存储',
-  `data` longblob NULL COMMENT '数据方式存储',
-  PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '上传文件数据' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of starter_file_data
--- ----------------------------
-
--- ----------------------------
--- Table structure for starter_file_upload_info
--- ----------------------------
-DROP TABLE IF EXISTS `starter_file_upload_info`;
-CREATE TABLE `starter_file_upload_info`  (
-  `id` bigint(20) NOT NULL COMMENT '文件id',
-  `url` varchar(512) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '文件访问地址',
-  `size` bigint(20) NULL DEFAULT NULL COMMENT '文件大小,单位字节',
-  `filename` varchar(256) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '文件名称',
-  `original_filename` varchar(256) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '原始文件名',
-  `base_path` varchar(256) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '基础存储路径',
-  `path` varchar(256) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '存储路径',
-  `ext` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '文件扩展名',
-  `content_type` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT 'MIME类型',
-  `platform` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '存储平台',
-  `th_url` varchar(512) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '缩略图访问路径',
-  `th_filename` varchar(256) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '缩略图名称',
-  `th_size` bigint(20) NULL DEFAULT NULL COMMENT '缩略图大小,单位字节',
-  `th_content_type` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '缩略图MIME类型',
-  `object_id` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '文件所属对象id',
-  `object_type` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '文件所属对象类型,例如用户头像,评价图片',
-  `metadata` text CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT '文件元数据',
-  `user_metadata` text CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT '文件用户元数据',
-  `th_metadata` text CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT '缩略图元数据',
-  `th_user_metadata` text CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT '缩略图用户元数据',
-  `attr` text CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT '附加属性',
-  `file_acl` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '文件ACL',
-  `th_file_acl` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '缩略图文件ACL',
-  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
-  PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '文件记录表' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of starter_file_upload_info
--- ----------------------------
-
--- ----------------------------
--- Table structure for starter_quartz_job
--- ----------------------------
-DROP TABLE IF EXISTS `starter_quartz_job`;
-CREATE TABLE `starter_quartz_job`  (
-  `id` bigint(20) NOT NULL COMMENT '主键',
-  `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '任务名称',
-  `job_class_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '任务类名',
-  `cron` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'cron表达式',
-  `parameter` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '参数',
-  `state` int(4) NULL DEFAULT NULL COMMENT '状态',
-  `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
-  `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建人',
-  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
-  `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修改人',
-  `last_modified_time` datetime(0) NULL DEFAULT NULL COMMENT '最后修改时间',
-  `version` int(11) NOT NULL COMMENT '版本',
-  `deleted` tinyint(1) NOT NULL DEFAULT 0 COMMENT '0:未删除。1:已删除',
-  PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '定时任务' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of starter_quartz_job
--- ----------------------------
-INSERT INTO `starter_quartz_job` VALUES (1456579473573867520, '测试任务', 'cn.bootx.platform.starter.quartz.task.TestTask', '0/3 0 * * * ? *', '{\"aaa\":\"5255\"}', 0, '测试任务', 1399985191002447872, '2021-11-05 19:09:43', 1399985191002447872, '2024-02-24 23:57:57', 29, 0);
-INSERT INTO `starter_quartz_job` VALUES (1546857070483939328, '支付单超时检测', 'cn.bootx.platform.daxpay.service.task.PayExpiredTimeTask', '0/5 * * * * ? *', NULL, 1, '检测超时的支付单, 超时后调用同步事件状态修复', 1399985191002447872, '2022-07-12 22:00:39', 1399985191002447872, '2024-02-25 14:56:56', 4, 0);
-INSERT INTO `starter_quartz_job` VALUES (1761419490908958720, '客户系统通知重发任务', 'cn.bootx.platform.daxpay.service.task.ClientNoticeSendTask', '0/1 * * * * ? *', '', 1, '每秒调用一下当前需要进行通知的任务', 1399985191002447872, '2024-02-24 23:55:07', 1399985191002447872, '2024-03-05 23:05:09', 2, 0);
-INSERT INTO `starter_quartz_job` VALUES (1764664552203743232, '支付宝定时对账', 'cn.bootx.platform.daxpay.service.task.ReconcileTask', '0 0 11 * * ? *', '{\"channel\":\"ali_pay\",\"n\":1}', 1, '', 1399985191002447872, '2024-03-04 22:49:50', 1399985191002447872, '2024-03-10 11:19:17', 3, 0);
-INSERT INTO `starter_quartz_job` VALUES (1764667388106887168, '微信支付定时对账', 'cn.bootx.platform.daxpay.service.task.ReconcileTask', '0 0 11 * * ? *', '{\"channel\":\"wechat_pay\",\"n\":1}', 1, '', 1399985191002447872, '2024-03-04 23:01:06', 1399985191002447872, '2024-03-10 11:19:14', 3, 0);
-INSERT INTO `starter_quartz_job` VALUES (1767553847839141888, '退款订单定时同步', 'cn.bootx.platform.daxpay.service.task.RefundSyncTask', '0 * * * * ? *', '', 1, '', 1399985191002447872, '2024-03-12 22:10:52', 1399985191002447872, '2024-03-12 22:10:59', 1, 0);
-
--- ----------------------------
--- Table structure for starter_quartz_job_log
--- ----------------------------
-DROP TABLE IF EXISTS `starter_quartz_job_log`;
-CREATE TABLE `starter_quartz_job_log`  (
-  `id` bigint(20) NOT NULL COMMENT '主键',
-  `handler_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '处理器名称',
-  `class_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '处理器全限定名',
-  `success` bit(1) NOT NULL COMMENT '是否执行成功',
-  `error_message` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '错误信息',
-  `start_time` datetime(0) NULL DEFAULT NULL COMMENT '开始时间',
-  `end_time` datetime(0) NULL DEFAULT NULL COMMENT '结束时间',
-  `duration` bigint(255) NULL DEFAULT NULL COMMENT '执行时长',
-  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
-  PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '任务执行日志' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of starter_quartz_job_log
--- ----------------------------
-
--- ----------------------------
--- Table structure for starter_wecom_robot_config
--- ----------------------------
-DROP TABLE IF EXISTS `starter_wecom_robot_config`;
-CREATE TABLE `starter_wecom_robot_config`  (
-  `id` bigint(20) NOT NULL,
-  `name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '名称',
-  `code` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '编号',
-  `webhook_key` varchar(150) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 'webhook地址的key值',
-  `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
-  `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建人',
-  `create_time` datetime(6) NULL DEFAULT NULL COMMENT '创建时间',
-  `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修改人',
-  `last_modified_time` datetime(6) NULL DEFAULT NULL COMMENT '最后修改时间',
-  `version` int(11) NOT NULL COMMENT '版本',
-  `deleted` bit(1) NOT NULL COMMENT '0:未删除。1:已删除',
-  PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '企业微信机器人配置' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of starter_wecom_robot_config
--- ----------------------------
-
--- ----------------------------
--- Table structure for starter_wx_fans
--- ----------------------------
-DROP TABLE IF EXISTS `starter_wx_fans`;
-CREATE TABLE `starter_wx_fans`  (
-  `id` bigint(20) NOT NULL,
-  `openid` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '关联OpenId',
-  `subscribe_status` bit(1) NULL DEFAULT NULL COMMENT '订阅状态',
-  `subscribe_time` datetime(0) NULL DEFAULT NULL COMMENT '订阅时间',
-  `nickname` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '昵称',
-  `sex` varchar(3) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '性别',
-  `language` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '语言',
-  `country` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '国家',
-  `province` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '省份',
-  `city` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '城市',
-  `avatar_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '头像地址',
-  `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
-  PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '微信公众号粉丝' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of starter_wx_fans
--- ----------------------------
-
--- ----------------------------
--- Table structure for starter_wx_menu
--- ----------------------------
-DROP TABLE IF EXISTS `starter_wx_menu`;
-CREATE TABLE `starter_wx_menu`  (
-  `id` bigint(20) NOT NULL COMMENT '主键',
-  `name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '名称',
-  `menu_info` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL COMMENT '菜单信息',
-  `remark` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '备注',
-  `publish` bit(1) NOT NULL COMMENT '是否发布',
-  `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建人',
-  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
-  `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修改人',
-  `last_modified_time` datetime(0) NULL DEFAULT NULL COMMENT '最后修改时间',
-  `deleted` tinyint(1) NOT NULL DEFAULT 0 COMMENT '0:未删除。1:已删除',
-  `version` int(11) NOT NULL COMMENT '版本',
-  PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '微信自定义菜单' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of starter_wx_menu
--- ----------------------------
-
--- ----------------------------
--- Table structure for starter_wx_template
--- ----------------------------
-DROP TABLE IF EXISTS `starter_wx_template`;
-CREATE TABLE `starter_wx_template`  (
-  `id` bigint(20) NOT NULL,
-  `name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '名称',
-  `code` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '编码',
-  `enable` bit(1) NOT NULL COMMENT '是否启用',
-  `template_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '模板ID',
-  `title` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '模板标题',
-  `primary_industry` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '模板所属行业的一级行业',
-  `deputy_industry` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '模板所属行业的二级行业',
-  `content` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '模板内容',
-  `example` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '示例',
-  `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建人',
-  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
-  `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修改人',
-  `last_modified_time` datetime(0) NULL DEFAULT NULL COMMENT '最后修改时间',
-  `version` int(11) NOT NULL COMMENT '版本',
-  PRIMARY KEY (`id`) USING BTREE,
-  UNIQUE INDEX `inx_`(`template_id`) USING BTREE COMMENT '模板id'
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '微信消息模板' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of starter_wx_template
--- ----------------------------
-
-SET FOREIGN_KEY_CHECKS = 1;
diff --git a/_config/mysql/2.0.5/2.0.5.update.data.sql b/_config/mysql/2.0.5/2.0.5.update.data.sql
deleted file mode 100644
index 11b6ffd984efcbdf357841bd598825416864d25d..0000000000000000000000000000000000000000
--- a/_config/mysql/2.0.5/2.0.5.update.data.sql
+++ /dev/null
@@ -1,331 +0,0 @@
-SET FOREIGN_KEY_CHECKS = 0;
-
-INSERT INTO `base_dict`(`id`, `code`, `name`, `enable`, `group_tag`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1775112798259302400, 'AllocationReceiverType', '分账接收方类型', b'1', '支付', '', 1399985191002447872, '2024-04-02 18:47:26', 1399985191002447872, '2024-04-02 18:47:26', 0, 0);
-
-INSERT INTO `base_dict`(`id`, `code`, `name`, `enable`, `group_tag`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1775122632706805760, 'AllocationRelationType', '分账关系类型', b'1', '支付', '', 1399985191002447872, '2024-04-02 19:26:30', 1399985191002447872, '2024-04-02 19:26:30', 0, 0);
-
-INSERT INTO `base_dict`(`id`, `code`, `name`, `enable`, `group_tag`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1777697358802530304, 'AllocationOrderStatus', '分账状态', b'1', '支付', '', 1399985191002447872, '2024-04-09 21:57:33', 1399985191002447872, '2024-04-16 19:09:18', 0, 1);
-
-INSERT INTO `base_dict`(`id`, `code`, `name`, `enable`, `group_tag`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1780163691808391168, 'AllocationDetailResult', '支付分账明细处理结果', b'1', '支付', '', 1399985191002447872, '2024-04-16 17:17:53', 1399985191002447872, '2024-04-16 17:23:37', 0, 2);
-
-INSERT INTO `base_dict`(`id`, `code`, `name`, `enable`, `group_tag`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1780165499633106944, 'AllocationOrderResult', '支付分账订单处理结果', b'1', '支付', '', 1399985191002447872, '2024-04-16 17:25:04', 1399985191002447872, '2024-04-16 17:25:04', 0, 0);
-
-INSERT INTO `base_dict`(`id`, `code`, `name`, `enable`, `group_tag`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1780165929528295424, 'PayOrderAllocationStatus', '支付订单分账状态', b'1', '支付', '', 1399985191002447872, '2024-04-16 17:26:46', 1399985191002447872, '2024-04-16 17:26:46', 0, 0);
-
-INSERT INTO `base_dict_item`(`id`, `dict_id`, `dict_code`, `code`, `name`, `enable`, `sort_no`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1775122126567559168, 1775112798259302400, 'AllocationReceiverType', 'wx_personal', '个人', b'1', 1.00, '', 1399985191002447872, '2024-04-02 19:24:30', 1399985191002447872, '2024-04-02 19:24:30', 0, 0);
-
-INSERT INTO `base_dict_item`(`id`, `dict_id`, `dict_code`, `code`, `name`, `enable`, `sort_no`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1775122171861848064, 1775112798259302400, 'AllocationReceiverType', 'wx_merchant', '商户', b'1', 2.00, '', 1399985191002447872, '2024-04-02 19:24:41', 1399985191002447872, '2024-04-02 19:24:41', 0, 0);
-
-INSERT INTO `base_dict_item`(`id`, `dict_id`, `dict_code`, `code`, `name`, `enable`, `sort_no`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1775122227956469760, 1775112798259302400, 'AllocationReceiverType', 'ali_user_id', '用户ID', b'1', 3.00, '', 1399985191002447872, '2024-04-02 19:24:54', 1399985191002447872, '2024-04-02 19:25:53', 0, 1);
-
-INSERT INTO `base_dict_item`(`id`, `dict_id`, `dict_code`, `code`, `name`, `enable`, `sort_no`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1775122278170677248, 1775112798259302400, 'AllocationReceiverType', 'ali_open_id', '登录号', b'1', 4.00, '', 1399985191002447872, '2024-04-02 19:25:06', 1399985191002447872, '2024-04-02 19:25:06', 0, 0);
-
-INSERT INTO `base_dict_item`(`id`, `dict_id`, `dict_code`, `code`, `name`, `enable`, `sort_no`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1775122427802472448, 1775112798259302400, 'AllocationReceiverType', 'ali_login_name', '账号', b'1', 5.00, '', 1399985191002447872, '2024-04-02 19:25:42', 1399985191002447872, '2024-04-02 19:25:42', 0, 0);
-
-INSERT INTO `base_dict_item`(`id`, `dict_id`, `dict_code`, `code`, `name`, `enable`, `sort_no`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1775122672623996928, 1775122632706805760, 'AllocationRelationType', 'SERVICE_PROVIDER', '服务商', b'1', 1.00, '', 1399985191002447872, '2024-04-02 19:26:40', 1399985191002447872, '2024-04-02 19:26:40', 0, 0);
-
-INSERT INTO `base_dict_item`(`id`, `dict_id`, `dict_code`, `code`, `name`, `enable`, `sort_no`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1775122710884438016, 1775122632706805760, 'AllocationRelationType', 'STORE', '门店', b'1', 2.00, '', 1399985191002447872, '2024-04-02 19:26:49', 1399985191002447872, '2024-04-02 19:26:49', 0, 0);
-
-INSERT INTO `base_dict_item`(`id`, `dict_id`, `dict_code`, `code`, `name`, `enable`, `sort_no`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1775122750612885504, 1775122632706805760, 'AllocationRelationType', 'STAFF', '员工', b'1', 3.00, '', 1399985191002447872, '2024-04-02 19:26:59', 1399985191002447872, '2024-04-02 19:26:59', 0, 0);
-
-INSERT INTO `base_dict_item`(`id`, `dict_id`, `dict_code`, `code`, `name`, `enable`, `sort_no`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1775122847035740160, 1775122632706805760, 'AllocationRelationType', 'STORE_OWNER', '店主', b'1', 4.00, '', 1399985191002447872, '2024-04-02 19:27:22', 1399985191002447872, '2024-04-02 19:27:22', 0, 0);
-
-INSERT INTO `base_dict_item`(`id`, `dict_id`, `dict_code`, `code`, `name`, `enable`, `sort_no`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1775122892464246784, 1775122632706805760, 'AllocationRelationType', 'PARTNER', '合作伙伴', b'1', 5.00, '', 1399985191002447872, '2024-04-02 19:27:32', 1399985191002447872, '2024-04-02 19:27:32', 0, 0);
-
-INSERT INTO `base_dict_item`(`id`, `dict_id`, `dict_code`, `code`, `name`, `enable`, `sort_no`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1775122934138851328, 1775122632706805760, 'AllocationRelationType', 'HEADQUARTER', '总部', b'1', 6.00, '', 1399985191002447872, '2024-04-02 19:27:42', 1399985191002447872, '2024-04-02 19:27:42', 0, 0);
-
-INSERT INTO `base_dict_item`(`id`, `dict_id`, `dict_code`, `code`, `name`, `enable`, `sort_no`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1775123560512016384, 1775122632706805760, 'AllocationRelationType', 'DISTRIBUTOR', '分销商', b'1', 7.00, '', 1399985191002447872, '2024-04-02 19:30:12', 1399985191002447872, '2024-04-02 19:30:12', 0, 0);
-
-INSERT INTO `base_dict_item`(`id`, `dict_id`, `dict_code`, `code`, `name`, `enable`, `sort_no`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1775123607781822464, 1775122632706805760, 'AllocationRelationType', 'USER', '用户', b'1', 8.00, '', 1399985191002447872, '2024-04-02 19:30:23', 1399985191002447872, '2024-04-02 19:30:23', 0, 0);
-
-INSERT INTO `base_dict_item`(`id`, `dict_id`, `dict_code`, `code`, `name`, `enable`, `sort_no`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1775123654527340544, 1775122632706805760, 'AllocationRelationType', 'SUPPLIER', '供应商', b'1', 9.00, '', 1399985191002447872, '2024-04-02 19:30:34', 1399985191002447872, '2024-04-02 19:30:34', 0, 0);
-
-INSERT INTO `base_dict_item`(`id`, `dict_id`, `dict_code`, `code`, `name`, `enable`, `sort_no`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1775123705886593024, 1775122632706805760, 'AllocationRelationType', 'CUSTOM', '自定义', b'1', 10.00, '', 1399985191002447872, '2024-04-02 19:30:46', 1399985191002447872, '2024-04-02 19:30:46', 0, 0);
-
-INSERT INTO `base_dict_item`(`id`, `dict_id`, `dict_code`, `code`, `name`, `enable`, `sort_no`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1777700713809522688, 1777697358802530304, 'AllocationOrderStatus', 'waiting', '待分账', b'1', 1.00, '', 1399985191002447872, '2024-04-09 22:10:53', 1399985191002447872, '2024-04-09 22:10:53', 0, 0);
-
-INSERT INTO `base_dict_item`(`id`, `dict_id`, `dict_code`, `code`, `name`, `enable`, `sort_no`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1777700750744563712, 1777697358802530304, 'AllocationOrderStatus', 'allocation_processing', '分账处理中', b'1', 2.00, '', 1399985191002447872, '2024-04-09 22:11:02', 1399985191002447872, '2024-04-16 17:14:53', 0, 1);
-
-INSERT INTO `base_dict_item`(`id`, `dict_id`, `dict_code`, `code`, `name`, `enable`, `sort_no`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1777700787453112320, 1777697358802530304, 'AllocationOrderStatus', 'allocation_end', '分账完成', b'1', 3.00, '', 1399985191002447872, '2024-04-09 22:11:10', 1399985191002447872, '2024-04-16 17:36:25', 0, 2);
-
-INSERT INTO `base_dict_item`(`id`, `dict_id`, `dict_code`, `code`, `name`, `enable`, `sort_no`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1777700835826020352, 1777697358802530304, 'AllocationOrderStatus', 'allocation_failed', '分账失败', b'1', 4.00, '', 1399985191002447872, '2024-04-09 22:11:22', 1399985191002447872, '2024-04-16 17:16:34', 0, 2);
-
-INSERT INTO `base_dict_item`(`id`, `dict_id`, `dict_code`, `code`, `name`, `enable`, `sort_no`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1777700870613577728, 1777697358802530304, 'AllocationOrderStatus', 'finish', '分账完结', b'1', 5.00, '', 1399985191002447872, '2024-04-09 22:11:30', 1399985191002447872, '2024-04-16 17:17:06', 0, 1);
-
-INSERT INTO `base_dict_item`(`id`, `dict_id`, `dict_code`, `code`, `name`, `enable`, `sort_no`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1777700915450687488, 1777697358802530304, 'AllocationStatus', 'partial_failed', '部分分账失败', b'1', 6.00, '', 1399985191002447872, '2024-04-09 22:11:41', 1399985191002447872, '2024-04-16 17:16:49', 1, 1);
-
-INSERT INTO `base_dict_item`(`id`, `dict_id`, `dict_code`, `code`, `name`, `enable`, `sort_no`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1777700964087836672, 1777697358802530304, 'AllocationOrderStatus', 'finish_failed', '分账完结失败', b'1', 6.00, '', 1399985191002447872, '2024-04-09 22:11:53', 1399985191002447872, '2024-04-16 17:17:25', 0, 1);
-
-INSERT INTO `base_dict_item`(`id`, `dict_id`, `dict_code`, `code`, `name`, `enable`, `sort_no`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1777701030081015808, 1777697358802530304, 'AllocationStatus', 'closed', '分账关闭', b'1', 8.00, '', 1399985191002447872, '2024-04-09 22:12:08', 1399985191002447872, '2024-04-16 17:16:19', 1, 0);
-
-INSERT INTO `base_dict_item`(`id`, `dict_id`, `dict_code`, `code`, `name`, `enable`, `sort_no`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1777701090676125696, 1777697358802530304, 'AllocationStatus', 'unknown', '分账状态未知', b'1', 9.00, '', 1399985191002447872, '2024-04-09 22:12:23', 1399985191002447872, '2024-04-16 17:16:16', 1, 0);
-
-INSERT INTO `base_dict_item`(`id`, `dict_id`, `dict_code`, `code`, `name`, `enable`, `sort_no`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1780164864510623744, 1780163691808391168, 'AllocationDetailResult', 'pending', '待分账', b'1', 1.00, '', 1399985191002447872, '2024-04-16 17:22:32', 1399985191002447872, '2024-04-16 17:22:32', 0, 0);
-
-INSERT INTO `base_dict_item`(`id`, `dict_id`, `dict_code`, `code`, `name`, `enable`, `sort_no`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1780164903886749696, 1780163691808391168, 'AllocationDetailResult', 'success', '分账成功', b'1', 2.00, '', 1399985191002447872, '2024-04-16 17:22:42', 1399985191002447872, '2024-04-16 17:22:42', 0, 0);
-
-INSERT INTO `base_dict_item`(`id`, `dict_id`, `dict_code`, `code`, `name`, `enable`, `sort_no`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1780164940712738816, 1780163691808391168, 'AllocationDetailResult', 'fail', '分账失败', b'1', 0.00, '', 1399985191002447872, '2024-04-16 17:22:50', 1399985191002447872, '2024-04-16 17:22:50', 0, 0);
-
-INSERT INTO `base_dict_item`(`id`, `dict_id`, `dict_code`, `code`, `name`, `enable`, `sort_no`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1780165545665593344, 1780165499633106944, 'AllocationOrderResult', 'all_pending', '全部成功', b'1', 0.00, '', 1399985191002447872, '2024-04-16 17:25:15', 1399985191002447872, '2024-04-16 17:25:15', 0, 0);
-
-INSERT INTO `base_dict_item`(`id`, `dict_id`, `dict_code`, `code`, `name`, `enable`, `sort_no`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1780165581623361536, 1780165499633106944, 'AllocationOrderResult', 'all_success', '全部成功', b'1', 1.00, '', 1399985191002447872, '2024-04-16 17:25:23', 1399985191002447872, '2024-04-16 17:25:23', 0, 0);
-
-INSERT INTO `base_dict_item`(`id`, `dict_id`, `dict_code`, `code`, `name`, `enable`, `sort_no`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1780165617413357568, 1780165499633106944, 'AllocationOrderResult', 'part_success', '部分成功', b'1', 2.00, '', 1399985191002447872, '2024-04-16 17:25:32', 1399985191002447872, '2024-04-16 17:25:32', 0, 0);
-
-INSERT INTO `base_dict_item`(`id`, `dict_id`, `dict_code`, `code`, `name`, `enable`, `sort_no`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1780165653350154240, 1780165499633106944, 'AllocationOrderResult', 'all_failed', '全部失败', b'1', 3.00, '', 1399985191002447872, '2024-04-16 17:25:40', 1399985191002447872, '2024-04-16 17:25:40', 0, 0);
-
-INSERT INTO `base_dict_item`(`id`, `dict_id`, `dict_code`, `code`, `name`, `enable`, `sort_no`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1780165986231091200, 1780165929528295424, 'PayOrderAllocationStatus', 'waiting', '待分账', b'1', 1.00, '', 1399985191002447872, '2024-04-16 17:27:00', 1399985191002447872, '2024-04-16 17:27:00', 0, 0);
-
-INSERT INTO `base_dict_item`(`id`, `dict_id`, `dict_code`, `code`, `name`, `enable`, `sort_no`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1780166037149941760, 1780165929528295424, 'PayOrderAllocationStatus', 'allocation', '已分账', b'1', 2.00, '', 1399985191002447872, '2024-04-16 17:27:12', 1399985191002447872, '2024-04-16 17:27:12', 0, 0);
-
-INSERT INTO `iam_perm_menu`(`id`, `client_code`, `parent_id`, `title`, `name`, `perm_code`, `effect`, `icon`, `hidden`, `hide_children_in_menu`, `component`, `component_name`, `path`, `redirect`, `sort_no`, `menu_type`, `leaf`, `keep_alive`, `target_outside`, `hidden_header_content`, `admin`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `version`, `deleted`) VALUES (1775089099078553600, 'dax-pay', NULL, '分账管理', 'Allocation', NULL, b'0', 'ant-design:sliders-twotone', b'0', b'0', 'Layout', NULL, '/pay/allocation', '', 0, 0, NULL, b'1', b'0', b'0', b'0', NULL, 1399985191002447872, '2024-04-02 17:13:15', 1399985191002447872, '2024-04-02 17:13:15', 0, 0);
-
-INSERT INTO `iam_perm_menu`(`id`, `client_code`, `parent_id`, `title`, `name`, `perm_code`, `effect`, `icon`, `hidden`, `hide_children_in_menu`, `component`, `component_name`, `path`, `redirect`, `sort_no`, `menu_type`, `leaf`, `keep_alive`, `target_outside`, `hidden_header_content`, `admin`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `version`, `deleted`) VALUES (1775089820368818176, 'dax-pay', 1775089099078553600, '分账接收者', 'AllocationReceiverList', NULL, b'0', '', b'0', b'0', 'payment/allocation/receiver/AllocationReceiverList', NULL, '/pay/allocation/receiver', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1399985191002447872, '2024-04-02 17:16:07', 1399985191002447872, '2024-04-02 17:23:13', 2, 0);
-
-INSERT INTO `iam_perm_menu`(`id`, `client_code`, `parent_id`, `title`, `name`, `perm_code`, `effect`, `icon`, `hidden`, `hide_children_in_menu`, `component`, `component_name`, `path`, `redirect`, `sort_no`, `menu_type`, `leaf`, `keep_alive`, `target_outside`, `hidden_header_content`, `admin`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `version`, `deleted`) VALUES (1775091561835450368, 'dax-pay', 1775089099078553600, '分账组', 'AllocationGroupList', NULL, b'0', '', b'0', b'0', 'payment/allocation/group/AllocationGroupList', NULL, '/pay/allocation/group', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1399985191002447872, '2024-04-02 17:23:03', 1399985191002447872, '2024-04-02 17:23:27', 1, 0);
-
-INSERT INTO `iam_perm_menu`(`id`, `client_code`, `parent_id`, `title`, `name`, `perm_code`, `effect`, `icon`, `hidden`, `hide_children_in_menu`, `component`, `component_name`, `path`, `redirect`, `sort_no`, `menu_type`, `leaf`, `keep_alive`, `target_outside`, `hidden_header_content`, `admin`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `version`, `deleted`) VALUES (1777688382748700672, 'dax-pay', 1744642856348520448, '分账订单', 'AllocationOrderList', NULL, b'0', '', b'0', b'0', 'payment/order/allocation/AllocationOrderList', NULL, '/pay/order/allocation', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1399985191002447872, '2024-04-09 21:21:53', 1399985191002447872, '2024-04-09 21:21:53', 0, 0);
-
-UPDATE `iam_perm_menu` SET `client_code` = 'dax-pay', `parent_id` = 1744642856348520448, `title` = '对账订单', `name` = 'ReconcileOrderList', `perm_code` = NULL, `effect` = b'0', `icon` = '', `hidden` = b'0', `hide_children_in_menu` = b'0', `component` = 'payment/order/reconcile/order/ReconcileOrderList.vue', `component_name` = NULL, `path` = '/pay/order/reconcile/list', `redirect` = '', `sort_no` = 0, `menu_type` = 1, `leaf` = NULL, `keep_alive` = b'1', `target_outside` = b'0', `hidden_header_content` = b'0', `admin` = b'0', `remark` = NULL, `creator` = 1399985191002447872, `create_time` = '2024-01-22 10:47:39', `last_modifier` = 1399985191002447872, `last_modified_time` = '2024-04-16 19:11:56', `version` = 5, `deleted` = 0 WHERE `id` = 1749262518385082368;
-
-UPDATE `iam_perm_menu` SET `client_code` = 'dax-pay', `parent_id` = 1749262518385082368, `title` = '对账单', `name` = 'ReconcileOrderList', `perm_code` = NULL, `effect` = b'0', `icon` = '', `hidden` = b'0', `hide_children_in_menu` = b'0', `component` = 'payment/order/reconcile/order/ReconcileOrderList.vue', `component_name` = NULL, `path` = '/pay/order/reconcile/list', `redirect` = '', `sort_no` = 0, `menu_type` = 1, `leaf` = NULL, `keep_alive` = b'1', `target_outside` = b'0', `hidden_header_content` = b'0', `admin` = b'0', `remark` = NULL, `creator` = 1399985191002447872, `create_time` = '2024-03-04 21:05:43', `last_modifier` = 1399985191002447872, `last_modified_time` = '2024-04-16 19:12:02', `version` = 1, `deleted` = 1 WHERE `id` = 1764638353289027584;
-
-UPDATE `iam_perm_menu` SET `client_code` = 'dax-pay', `parent_id` = 1749262518385082368, `title` = '差异单', `name` = 'ReconcileDiffList', `perm_code` = NULL, `effect` = b'0', `icon` = '', `hidden` = b'1', `hide_children_in_menu` = b'0', `component` = 'payment/order/reconcile/diff/ReconcileDiffList.vue', `component_name` = NULL, `path` = '/pay/order/reconcile/diff', `redirect` = '', `sort_no` = 0, `menu_type` = 1, `leaf` = NULL, `keep_alive` = b'1', `target_outside` = b'0', `hidden_header_content` = b'0', `admin` = b'0', `remark` = NULL, `creator` = 1399985191002447872, `create_time` = '2024-03-04 21:07:01', `last_modifier` = 1399985191002447872, `last_modified_time` = '2024-04-16 19:12:06', `version` = 2, `deleted` = 1 WHERE `id` = 1764638678821543936;
-
-INSERT INTO `iam_perm_path`(`id`, `code`, `name`, `request_type`, `path`, `group_name`, `enable`, `generate`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1780216505637138432, 'AllocationOrderController#sync', '同步分账结果', 'POST', '/order/allocation/sync', '对账订单控制器', b'1', b'1', '对账订单控制器 同步分账结果', 1399985191002447872, '2024-04-16 20:47:44.424000', 1399985191002447872, '2024-04-17 10:09:40.850000', b'1', 0);
-
-INSERT INTO `iam_perm_path`(`id`, `code`, `name`, `request_type`, `path`, `group_name`, `enable`, `generate`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1780216505637138433, 'AllocationGroupController#findReceiversByGroups', '查询分账接收方信息', 'GET', '/allocation/group/findReceiversByGroups', '分账组', b'1', b'1', '分账组 查询分账接收方信息', 1399985191002447872, '2024-04-16 20:47:44.424000', 1399985191002447872, '2024-04-16 20:47:44.424000', b'0', 0);
-
-INSERT INTO `iam_perm_path`(`id`, `code`, `name`, `request_type`, `path`, `group_name`, `enable`, `generate`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1780216505637138434, 'AllocationGroupController#unbindReceiver', '取消绑定接收者', 'POST', '/allocation/group/unbindReceiver', '分账组', b'1', b'1', '分账组 取消绑定接收者', 1399985191002447872, '2024-04-16 20:47:44.424000', 1399985191002447872, '2024-04-16 20:47:44.424000', b'0', 0);
-
-INSERT INTO `iam_perm_path`(`id`, `code`, `name`, `request_type`, `path`, `group_name`, `enable`, `generate`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1780216505637138435, 'PayOrderController#allocation', '发起分账', 'POST', '/order/pay/allocation', '支付订单控制器', b'1', b'1', '支付订单控制器 发起分账', 1399985191002447872, '2024-04-16 20:47:44.424000', 1399985191002447872, '2024-04-16 20:47:44.424000', b'0', 0);
-
-INSERT INTO `iam_perm_path`(`id`, `code`, `name`, `request_type`, `path`, `group_name`, `enable`, `generate`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1780216505637138436, 'AllocationReceiverController#registerByGateway', '同步到三方支付系统中', 'POST', '/allocation/receiver/registerByGateway', '对账接收方控制器', b'1', b'1', '对账接收方控制器 同步到三方支付系统中', 1399985191002447872, '2024-04-16 20:47:44.424000', 1399985191002447872, '2024-04-17 10:09:40.850000', b'1', 0);
-
-INSERT INTO `iam_perm_path`(`id`, `code`, `name`, `request_type`, `path`, `group_name`, `enable`, `generate`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1780216505637138437, 'AllocationGroupController#unbindReceivers', '批量取消绑定接收者', 'POST', '/allocation/group/unbindReceivers', '分账组', b'1', b'1', '分账组 批量取消绑定接收者', 1399985191002447872, '2024-04-16 20:47:44.424000', 1399985191002447872, '2024-04-16 20:47:44.424000', b'0', 0);
-
-INSERT INTO `iam_perm_path`(`id`, `code`, `name`, `request_type`, `path`, `group_name`, `enable`, `generate`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1780216505637138438, 'AllocationOrderController#findDetailById', '查询明细详情', 'GET', '/order/allocation/detail/findById', '对账订单控制器', b'1', b'1', '对账订单控制器 查询明细详情', 1399985191002447872, '2024-04-16 20:47:44.424000', 1399985191002447872, '2024-04-17 10:09:40.849000', b'1', 0);
-
-INSERT INTO `iam_perm_path`(`id`, `code`, `name`, `request_type`, `path`, `group_name`, `enable`, `generate`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1780216505637138439, 'AllocationOrderController#findChannels', '获取可以分账的通道', 'GET', '/order/allocation/findChannels', '对账订单控制器', b'1', b'1', '对账订单控制器 获取可以分账的通道', 1399985191002447872, '2024-04-16 20:47:44.424000', 1399985191002447872, '2024-04-17 10:09:40.849000', b'1', 0);
-
-INSERT INTO `iam_perm_path`(`id`, `code`, `name`, `request_type`, `path`, `group_name`, `enable`, `generate`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1780216505637138440, 'SystemMonitorController#getSystemInfo', '获取系统消息', 'GET', '/monitor/system/getSystemInfo', '系统信息监控', b'1', b'1', '系统信息监控 获取系统消息', 1399985191002447872, '2024-04-16 20:47:44.424000', 1399985191002447872, '2024-04-16 20:47:44.424000', b'0', 0);
-
-INSERT INTO `iam_perm_path`(`id`, `code`, `name`, `request_type`, `path`, `group_name`, `enable`, `generate`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1780216505637138441, 'AllocationReceiverController#page', '分页', 'GET', '/allocation/receiver/page', '对账接收方控制器', b'1', b'1', '对账接收方控制器 分页', 1399985191002447872, '2024-04-16 20:47:44.424000', 1399985191002447872, '2024-04-17 10:09:40.849000', b'1', 0);
-
-INSERT INTO `iam_perm_path`(`id`, `code`, `name`, `request_type`, `path`, `group_name`, `enable`, `generate`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1780216505637138442, 'AllocationGroupController#clearDefault', '清除默认分账组', 'POST', '/allocation/group/clearDefault', '分账组', b'1', b'1', '分账组 清除默认分账组', 1399985191002447872, '2024-04-16 20:47:44.424000', 1399985191002447872, '2024-04-16 20:47:44.424000', b'0', 0);
-
-INSERT INTO `iam_perm_path`(`id`, `code`, `name`, `request_type`, `path`, `group_name`, `enable`, `generate`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1780216505637138443, 'AllocationGroupController#create', '创建', 'POST', '/allocation/group/create', '分账组', b'1', b'1', '分账组 创建', 1399985191002447872, '2024-04-16 20:47:44.424000', 1399985191002447872, '2024-04-16 20:47:44.424000', b'0', 0);
-
-INSERT INTO `iam_perm_path`(`id`, `code`, `name`, `request_type`, `path`, `group_name`, `enable`, `generate`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1780216505637138444, 'AllocationOrderController#finish', '分账完结', 'POST', '/order/allocation/finish', '对账订单控制器', b'1', b'1', '对账订单控制器 分账完结', 1399985191002447872, '2024-04-16 20:47:44.424000', 1399985191002447872, '2024-04-17 10:09:40.848000', b'1', 0);
-
-INSERT INTO `iam_perm_path`(`id`, `code`, `name`, `request_type`, `path`, `group_name`, `enable`, `generate`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1780216505637138445, 'UniPayController#allocationFinish', '分账完结接口', 'POST', '/unipay/allocationFinish', '统一支付接口', b'1', b'1', '统一支付接口 分账完结接口', 1399985191002447872, '2024-04-16 20:47:44.424000', 1399985191002447872, '2024-04-16 20:47:44.424000', b'0', 0);
-
-INSERT INTO `iam_perm_path`(`id`, `code`, `name`, `request_type`, `path`, `group_name`, `enable`, `generate`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1780216505637138446, 'AllocationOrderController#findById', '查询详情', 'GET', '/order/allocation/findById', '对账订单控制器', b'1', b'1', '对账订单控制器 查询详情', 1399985191002447872, '2024-04-16 20:47:44.424000', 1399985191002447872, '2024-04-17 10:09:40.848000', b'1', 0);
-
-INSERT INTO `iam_perm_path`(`id`, `code`, `name`, `request_type`, `path`, `group_name`, `enable`, `generate`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1780216505637138447, 'SystemMonitorController#getRedisInfo', '获取Redis信息', 'GET', '/monitor/system/getRedisInfo', '系统信息监控', b'1', b'1', '系统信息监控 获取Redis信息', 1399985191002447872, '2024-04-16 20:47:44.424000', 1399985191002447872, '2024-04-16 20:47:44.424000', b'0', 0);
-
-INSERT INTO `iam_perm_path`(`id`, `code`, `name`, `request_type`, `path`, `group_name`, `enable`, `generate`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1780216505637138448, 'AllocationReceiverController#removeByGateway', '从三方支付系统中删除', 'POST', '/allocation/receiver/removeByGateway', '对账接收方控制器', b'1', b'1', '对账接收方控制器 从三方支付系统中删除', 1399985191002447872, '2024-04-16 20:47:44.424000', 1399985191002447872, '2024-04-17 10:09:40.848000', b'1', 0);
-
-INSERT INTO `iam_perm_path`(`id`, `code`, `name`, `request_type`, `path`, `group_name`, `enable`, `generate`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1780216505637138449, 'AllocationReceiverController#findReceiverTypeByChannel', '根据通道获取分账接收方类型', 'GET', '/allocation/receiver/findReceiverTypeByChannel', '对账接收方控制器', b'1', b'1', '对账接收方控制器 根据通道获取分账接收方类型', 1399985191002447872, '2024-04-16 20:47:44.424000', 1399985191002447872, '2024-04-17 10:09:40.847000', b'1', 0);
-
-INSERT INTO `iam_perm_path`(`id`, `code`, `name`, `request_type`, `path`, `group_name`, `enable`, `generate`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1780216505637138450, 'AllocationGroupController#delete', '删除', 'POST', '/allocation/group/delete', '分账组', b'1', b'1', '分账组 删除', 1399985191002447872, '2024-04-16 20:47:44.424000', 1399985191002447872, '2024-04-16 20:47:44.424000', b'0', 0);
-
-INSERT INTO `iam_perm_path`(`id`, `code`, `name`, `request_type`, `path`, `group_name`, `enable`, `generate`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1780216505637138451, 'AllocationGroupController#update', '修改', 'POST', '/allocation/group/update', '分账组', b'1', b'1', '分账组 修改', 1399985191002447872, '2024-04-16 20:47:44.424000', 1399985191002447872, '2024-04-16 20:47:44.424000', b'0', 0);
-
-INSERT INTO `iam_perm_path`(`id`, `code`, `name`, `request_type`, `path`, `group_name`, `enable`, `generate`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1780216505637138452, 'AllocationReceiverController#add', '新增', 'POST', '/allocation/receiver/add', '对账接收方控制器', b'1', b'1', '对账接收方控制器 新增', 1399985191002447872, '2024-04-16 20:47:44.424000', 1399985191002447872, '2024-04-17 10:09:40.847000', b'1', 0);
-
-INSERT INTO `iam_perm_path`(`id`, `code`, `name`, `request_type`, `path`, `group_name`, `enable`, `generate`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1780216505637138453, 'AllocationGroupController#setDefault', '设置默认分账组', 'POST', '/allocation/group/setDefault', '分账组', b'1', b'1', '分账组 设置默认分账组', 1399985191002447872, '2024-04-16 20:47:44.424000', 1399985191002447872, '2024-04-16 20:47:44.424000', b'0', 0);
-
-INSERT INTO `iam_perm_path`(`id`, `code`, `name`, `request_type`, `path`, `group_name`, `enable`, `generate`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1780216505637138454, 'AllocationGroupController#findById', '查询详情', 'GET', '/allocation/group/findById', '分账组', b'1', b'1', '分账组 查询详情', 1399985191002447872, '2024-04-16 20:47:44.424000', 1399985191002447872, '2024-04-16 20:47:44.424000', b'0', 0);
-
-INSERT INTO `iam_perm_path`(`id`, `code`, `name`, `request_type`, `path`, `group_name`, `enable`, `generate`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1780216505637138455, 'AllocationReceiverController#update', '修改', 'POST', '/allocation/receiver/update', '对账接收方控制器', b'1', b'1', '对账接收方控制器 修改', 1399985191002447872, '2024-04-16 20:47:44.424000', 1399985191002447872, '2024-04-17 10:09:40.847000', b'1', 0);
-
-INSERT INTO `iam_perm_path`(`id`, `code`, `name`, `request_type`, `path`, `group_name`, `enable`, `generate`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1780216505637138456, 'AllocationReceiverController#delete', '删除', 'POST', '/allocation/receiver/delete', '对账接收方控制器', b'1', b'1', '对账接收方控制器 删除', 1399985191002447872, '2024-04-16 20:47:44.424000', 1399985191002447872, '2024-04-17 10:09:40.846000', b'1', 0);
-
-INSERT INTO `iam_perm_path`(`id`, `code`, `name`, `request_type`, `path`, `group_name`, `enable`, `generate`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1780216505637138457, 'AllocationReceiverController#findChannels', '获取可以分账的通道', 'GET', '/allocation/receiver/findChannels', '对账接收方控制器', b'1', b'1', '对账接收方控制器 获取可以分账的通道', 1399985191002447872, '2024-04-16 20:47:44.424000', 1399985191002447872, '2024-04-17 10:09:40.846000', b'1', 0);
-
-INSERT INTO `iam_perm_path`(`id`, `code`, `name`, `request_type`, `path`, `group_name`, `enable`, `generate`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1780216505637138458, 'AllocationReceiverController#findById', '查询详情', 'GET', '/allocation/receiver/findById', '对账接收方控制器', b'1', b'1', '对账接收方控制器 查询详情', 1399985191002447872, '2024-04-16 20:47:44.424000', 1399985191002447872, '2024-04-17 10:09:40.846000', b'1', 0);
-
-INSERT INTO `iam_perm_path`(`id`, `code`, `name`, `request_type`, `path`, `group_name`, `enable`, `generate`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1780216505637138459, 'AllocationGroupController#page', '分页', 'GET', '/allocation/group/page', '分账组', b'1', b'1', '分账组 分页', 1399985191002447872, '2024-04-16 20:47:44.424000', 1399985191002447872, '2024-04-16 20:47:44.424000', b'0', 0);
-
-INSERT INTO `iam_perm_path`(`id`, `code`, `name`, `request_type`, `path`, `group_name`, `enable`, `generate`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1780216505637138460, 'AllocationGroupController#bindReceivers', '批量绑定接收者', 'POST', '/allocation/group/bindReceivers', '分账组', b'1', b'1', '分账组 批量绑定接收者', 1399985191002447872, '2024-04-16 20:47:44.424000', 1399985191002447872, '2024-04-16 20:47:44.424000', b'0', 0);
-
-INSERT INTO `iam_perm_path`(`id`, `code`, `name`, `request_type`, `path`, `group_name`, `enable`, `generate`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1780216505637138461, 'AllocationGroupController#updateRate', '修改分账比例', 'POST', '/allocation/group/updateRate', '分账组', b'1', b'1', '分账组 修改分账比例', 1399985191002447872, '2024-04-16 20:47:44.424000', 1399985191002447872, '2024-04-16 20:47:44.424000', b'0', 0);
-
-INSERT INTO `iam_perm_path`(`id`, `code`, `name`, `request_type`, `path`, `group_name`, `enable`, `generate`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1780216505637138462, 'UniPayController#allocation', '开启分账接口', 'POST', '/unipay/allocation', '统一支付接口', b'1', b'1', '统一支付接口 开启分账接口', 1399985191002447872, '2024-04-16 20:47:44.424000', 1399985191002447872, '2024-04-16 20:47:44.424000', b'0', 0);
-
-INSERT INTO `iam_perm_path`(`id`, `code`, `name`, `request_type`, `path`, `group_name`, `enable`, `generate`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1780216505637138463, 'AllocationOrderController#findDetailsByOrderId', '分账明细列表', 'GET', '/order/allocation/detail/findAll', '对账订单控制器', b'1', b'1', '对账订单控制器 分账明细列表', 1399985191002447872, '2024-04-16 20:47:44.424000', 1399985191002447872, '2024-04-17 10:09:40.846000', b'1', 0);
-
-INSERT INTO `iam_perm_path`(`id`, `code`, `name`, `request_type`, `path`, `group_name`, `enable`, `generate`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1780216505637138464, 'AllocationOrderController#retryAllocation', '分账重试', 'POST', '/order/allocation/retry', '对账订单控制器', b'1', b'1', '对账订单控制器 分账重试', 1399985191002447872, '2024-04-16 20:47:44.424000', 1399985191002447872, '2024-04-17 10:09:40.845000', b'1', 0);
-
-INSERT INTO `iam_perm_path`(`id`, `code`, `name`, `request_type`, `path`, `group_name`, `enable`, `generate`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1780216505637138465, 'AllocationOrderController#page', '分页', 'GET', '/order/allocation/page', '对账订单控制器', b'1', b'1', '对账订单控制器 分页', 1399985191002447872, '2024-04-16 20:47:44.424000', 1399985191002447872, '2024-04-17 10:09:40.839000', b'1', 0);
-
-INSERT INTO `iam_perm_path`(`id`, `code`, `name`, `request_type`, `path`, `group_name`, `enable`, `generate`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1780417658844966912, 'PayGatewayNoticeController#wechatPayNotice', '微信消息通知', 'POST', '/gateway/notice/wechat', '三方支付网关消息通知', b'1', b'1', '三方支付网关消息通知 微信消息通知', 1399985191002447872, '2024-04-17 10:07:03.086000', 1399985191002447872, '2024-04-17 10:07:03.086000', b'0', 0);
-
-INSERT INTO `iam_perm_path`(`id`, `code`, `name`, `request_type`, `path`, `group_name`, `enable`, `generate`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1780417658844966913, 'PayGatewayNoticeController#aliPayNotice', '支付宝消息通知', 'POST', '/gateway/notice/alipay', '三方支付网关消息通知', b'1', b'1', '三方支付网关消息通知 支付宝消息通知', 1399985191002447872, '2024-04-17 10:07:03.086000', 1399985191002447872, '2024-04-17 10:07:03.086000', b'0', 0);
-
-INSERT INTO `iam_perm_path`(`id`, `code`, `name`, `request_type`, `path`, `group_name`, `enable`, `generate`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1780418342852063232, 'AllocationReceiverController#page', '分页', 'GET', '/allocation/receiver/page', '分账接收方控制器', b'1', b'1', '分账接收方控制器 分页', 1399985191002447872, '2024-04-17 10:09:46.166000', 1399985191002447872, '2024-04-17 10:09:46.166000', b'0', 0);
-
-INSERT INTO `iam_perm_path`(`id`, `code`, `name`, `request_type`, `path`, `group_name`, `enable`, `generate`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1780418342852063233, 'AllocationOrderController#finish', '分账完结', 'POST', '/order/allocation/finish', '分账订单控制器', b'1', b'1', '分账订单控制器 分账完结', 1399985191002447872, '2024-04-17 10:09:46.166000', 1399985191002447872, '2024-04-17 10:09:46.166000', b'0', 0);
-
-INSERT INTO `iam_perm_path`(`id`, `code`, `name`, `request_type`, `path`, `group_name`, `enable`, `generate`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1780418342852063234, 'AllocationReceiverController#delete', '删除', 'POST', '/allocation/receiver/delete', '分账接收方控制器', b'1', b'1', '分账接收方控制器 删除', 1399985191002447872, '2024-04-17 10:09:46.166000', 1399985191002447872, '2024-04-17 10:09:46.166000', b'0', 0);
-
-INSERT INTO `iam_perm_path`(`id`, `code`, `name`, `request_type`, `path`, `group_name`, `enable`, `generate`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1780418342852063235, 'AllocationReceiverController#add', '新增', 'POST', '/allocation/receiver/add', '分账接收方控制器', b'1', b'1', '分账接收方控制器 新增', 1399985191002447872, '2024-04-17 10:09:46.166000', 1399985191002447872, '2024-04-17 10:09:46.166000', b'0', 0);
-
-INSERT INTO `iam_perm_path`(`id`, `code`, `name`, `request_type`, `path`, `group_name`, `enable`, `generate`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1780418342852063236, 'AllocationReceiverController#findById', '查询详情', 'GET', '/allocation/receiver/findById', '分账接收方控制器', b'1', b'1', '分账接收方控制器 查询详情', 1399985191002447872, '2024-04-17 10:09:46.166000', 1399985191002447872, '2024-04-17 10:09:46.166000', b'0', 0);
-
-INSERT INTO `iam_perm_path`(`id`, `code`, `name`, `request_type`, `path`, `group_name`, `enable`, `generate`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1780418342852063237, 'AllocationOrderController#sync', '同步分账结果', 'POST', '/order/allocation/sync', '分账订单控制器', b'1', b'1', '分账订单控制器 同步分账结果', 1399985191002447872, '2024-04-17 10:09:46.166000', 1399985191002447872, '2024-04-17 10:09:46.166000', b'0', 0);
-
-INSERT INTO `iam_perm_path`(`id`, `code`, `name`, `request_type`, `path`, `group_name`, `enable`, `generate`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1780418342852063238, 'AllocationReceiverController#findReceiverTypeByChannel', '根据通道获取分账接收方类型', 'GET', '/allocation/receiver/findReceiverTypeByChannel', '分账接收方控制器', b'1', b'1', '分账接收方控制器 根据通道获取分账接收方类型', 1399985191002447872, '2024-04-17 10:09:46.166000', 1399985191002447872, '2024-04-17 10:09:46.166000', b'0', 0);
-
-INSERT INTO `iam_perm_path`(`id`, `code`, `name`, `request_type`, `path`, `group_name`, `enable`, `generate`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1780418342852063239, 'AllocationReceiverController#removeByGateway', '从三方支付系统中删除', 'POST', '/allocation/receiver/removeByGateway', '分账接收方控制器', b'1', b'1', '分账接收方控制器 从三方支付系统中删除', 1399985191002447872, '2024-04-17 10:09:46.166000', 1399985191002447872, '2024-04-17 10:09:46.166000', b'0', 0);
-
-INSERT INTO `iam_perm_path`(`id`, `code`, `name`, `request_type`, `path`, `group_name`, `enable`, `generate`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1780418342852063240, 'AllocationOrderController#page', '分页', 'GET', '/order/allocation/page', '分账订单控制器', b'1', b'1', '分账订单控制器 分页', 1399985191002447872, '2024-04-17 10:09:46.166000', 1399985191002447872, '2024-04-17 10:09:46.166000', b'0', 0);
-
-INSERT INTO `iam_perm_path`(`id`, `code`, `name`, `request_type`, `path`, `group_name`, `enable`, `generate`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1780418342852063241, 'AllocationOrderController#findChannels', '获取可以分账的通道', 'GET', '/order/allocation/findChannels', '分账订单控制器', b'1', b'1', '分账订单控制器 获取可以分账的通道', 1399985191002447872, '2024-04-17 10:09:46.166000', 1399985191002447872, '2024-04-17 10:09:46.166000', b'0', 0);
-
-INSERT INTO `iam_perm_path`(`id`, `code`, `name`, `request_type`, `path`, `group_name`, `enable`, `generate`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1780418342852063242, 'AllocationOrderController#findDetailsByOrderId', '分账明细列表', 'GET', '/order/allocation/detail/findAll', '分账订单控制器', b'1', b'1', '分账订单控制器 分账明细列表', 1399985191002447872, '2024-04-17 10:09:46.166000', 1399985191002447872, '2024-04-17 10:09:46.166000', b'0', 0);
-
-INSERT INTO `iam_perm_path`(`id`, `code`, `name`, `request_type`, `path`, `group_name`, `enable`, `generate`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1780418342852063243, 'AllocationReceiverController#registerByGateway', '同步到三方支付系统中', 'POST', '/allocation/receiver/registerByGateway', '分账接收方控制器', b'1', b'1', '分账接收方控制器 同步到三方支付系统中', 1399985191002447872, '2024-04-17 10:09:46.166000', 1399985191002447872, '2024-04-17 10:09:46.166000', b'0', 0);
-
-INSERT INTO `iam_perm_path`(`id`, `code`, `name`, `request_type`, `path`, `group_name`, `enable`, `generate`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1780418342852063244, 'AllocationReceiverController#findChannels', '获取可以分账的通道', 'GET', '/allocation/receiver/findChannels', '分账接收方控制器', b'1', b'1', '分账接收方控制器 获取可以分账的通道', 1399985191002447872, '2024-04-17 10:09:46.166000', 1399985191002447872, '2024-04-17 10:09:46.166000', b'0', 0);
-
-INSERT INTO `iam_perm_path`(`id`, `code`, `name`, `request_type`, `path`, `group_name`, `enable`, `generate`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1780418342852063245, 'AllocationOrderController#findById', '查询详情', 'GET', '/order/allocation/findById', '分账订单控制器', b'1', b'1', '分账订单控制器 查询详情', 1399985191002447872, '2024-04-17 10:09:46.166000', 1399985191002447872, '2024-04-17 10:09:46.166000', b'0', 0);
-
-INSERT INTO `iam_perm_path`(`id`, `code`, `name`, `request_type`, `path`, `group_name`, `enable`, `generate`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1780418342852063246, 'AllocationOrderController#findDetailById', '查询明细详情', 'GET', '/order/allocation/detail/findById', '分账订单控制器', b'1', b'1', '分账订单控制器 查询明细详情', 1399985191002447872, '2024-04-17 10:09:46.166000', 1399985191002447872, '2024-04-17 10:09:46.166000', b'0', 0);
-
-INSERT INTO `iam_perm_path`(`id`, `code`, `name`, `request_type`, `path`, `group_name`, `enable`, `generate`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1780418342852063247, 'AllocationReceiverController#update', '修改', 'POST', '/allocation/receiver/update', '分账接收方控制器', b'1', b'1', '分账接收方控制器 修改', 1399985191002447872, '2024-04-17 10:09:46.166000', 1399985191002447872, '2024-04-17 10:09:46.166000', b'0', 0);
-
-INSERT INTO `iam_perm_path`(`id`, `code`, `name`, `request_type`, `path`, `group_name`, `enable`, `generate`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1780418342852063248, 'AllocationOrderController#retryAllocation', '分账重试', 'POST', '/order/allocation/retry', '分账订单控制器', b'1', b'1', '分账订单控制器 分账重试', 1399985191002447872, '2024-04-17 10:09:46.166000', 1399985191002447872, '2024-04-17 10:09:46.166000', b'0', 0);
-
-UPDATE `iam_perm_path` SET `code` = 'TestController#wxcs', `name` = '微信回调测试', `request_type` = 'GET', `path` = '/test/wxcs/', `group_name` = '测试', `enable` = b'1', `generate` = b'1', `remark` = '测试 微信回调测试', `creator` = 1399985191002447872, `create_time` = '2024-02-13 14:55:54.138000', `last_modifier` = 1399985191002447872, `last_modified_time` = '2024-04-16 20:47:44.531000', `deleted` = b'1', `version` = 0 WHERE `id` = 1757297527147974671;
-
-UPDATE `iam_perm_path` SET `code` = 'TestController#wxcs', `name` = '微信回调测试', `request_type` = 'GET', `path` = '/test/wxcs', `group_name` = '测试', `enable` = b'1', `generate` = b'1', `remark` = '测试 微信回调测试', `creator` = 1399985191002447872, `create_time` = '2024-02-13 14:55:54.138000', `last_modifier` = 1399985191002447872, `last_modified_time` = '2024-04-16 20:47:44.526000', `deleted` = b'1', `version` = 0 WHERE `id` = 1757297527147974672;
-
-DELETE FROM `iam_role_menu` WHERE `id` = 1764945575888781312;
-
-DELETE FROM `iam_role_menu` WHERE `id` = 1764945575888781313;
-
-DELETE FROM `iam_role_menu` WHERE `id` = 1764945576350154752;
-
-DELETE FROM `iam_role_menu` WHERE `id` = 1764945576350154753;
-
-INSERT INTO `iam_role_menu`(`id`, `role_id`, `client_code`, `permission_id`) VALUES (1780416732268605440, 1757297023118462976, 'dax-pay', 1775089099078553600);
-
-INSERT INTO `iam_role_menu`(`id`, `role_id`, `client_code`, `permission_id`) VALUES (1780416732268605441, 1757297023118462976, 'dax-pay', 1775089820368818176);
-
-INSERT INTO `iam_role_menu`(`id`, `role_id`, `client_code`, `permission_id`) VALUES (1780416732268605442, 1757297023118462976, 'dax-pay', 1775091561835450368);
-
-INSERT INTO `iam_role_menu`(`id`, `role_id`, `client_code`, `permission_id`) VALUES (1780416732268605443, 1757297023118462976, 'dax-pay', 1777688382748700672);
-
-INSERT INTO `iam_role_menu`(`id`, `role_id`, `client_code`, `permission_id`) VALUES (1780416732574789632, 1757298887092326400, 'dax-pay', 1775089099078553600);
-
-INSERT INTO `iam_role_menu`(`id`, `role_id`, `client_code`, `permission_id`) VALUES (1780416732574789633, 1757298887092326400, 'dax-pay', 1775089820368818176);
-
-INSERT INTO `iam_role_menu`(`id`, `role_id`, `client_code`, `permission_id`) VALUES (1780416732574789634, 1757298887092326400, 'dax-pay', 1775091561835450368);
-
-INSERT INTO `iam_role_menu`(`id`, `role_id`, `client_code`, `permission_id`) VALUES (1780416732574789635, 1757298887092326400, 'dax-pay', 1777688382748700672);
-
-INSERT INTO `iam_role_path`(`id`, `role_id`, `permission_id`) VALUES (1780464836388855808, 1757297023118462976, 1780216505637138435);
-
-INSERT INTO `iam_role_path`(`id`, `role_id`, `permission_id`) VALUES (1780464836388855809, 1757297023118462976, 1780418342852063247);
-
-INSERT INTO `iam_role_path`(`id`, `role_id`, `permission_id`) VALUES (1780464836388855810, 1757297023118462976, 1780418342852063244);
-
-INSERT INTO `iam_role_path`(`id`, `role_id`, `permission_id`) VALUES (1780464836388855811, 1757297023118462976, 1780418342852063238);
-
-INSERT INTO `iam_role_path`(`id`, `role_id`, `permission_id`) VALUES (1780464836388855812, 1757297023118462976, 1780418342852063236);
-
-INSERT INTO `iam_role_path`(`id`, `role_id`, `permission_id`) VALUES (1780464836388855813, 1757297023118462976, 1780418342852063235);
-
-INSERT INTO `iam_role_path`(`id`, `role_id`, `permission_id`) VALUES (1780464836388855814, 1757297023118462976, 1780418342852063234);
-
-INSERT INTO `iam_role_path`(`id`, `role_id`, `permission_id`) VALUES (1780464836388855815, 1757297023118462976, 1780418342852063232);
-
-INSERT INTO `iam_role_path`(`id`, `role_id`, `permission_id`) VALUES (1780464836388855816, 1757297023118462976, 1780418342852063239);
-
-INSERT INTO `iam_role_path`(`id`, `role_id`, `permission_id`) VALUES (1780464836388855817, 1757297023118462976, 1780418342852063243);
-
-INSERT INTO `iam_role_path`(`id`, `role_id`, `permission_id`) VALUES (1780464836388855818, 1757297023118462976, 1780418342852063248);
-
-INSERT INTO `iam_role_path`(`id`, `role_id`, `permission_id`) VALUES (1780464836388855819, 1757297023118462976, 1780418342852063246);
-
-INSERT INTO `iam_role_path`(`id`, `role_id`, `permission_id`) VALUES (1780464836388855820, 1757297023118462976, 1780418342852063245);
-
-INSERT INTO `iam_role_path`(`id`, `role_id`, `permission_id`) VALUES (1780464836388855821, 1757297023118462976, 1780418342852063242);
-
-INSERT INTO `iam_role_path`(`id`, `role_id`, `permission_id`) VALUES (1780464836388855822, 1757297023118462976, 1780418342852063241);
-
-INSERT INTO `iam_role_path`(`id`, `role_id`, `permission_id`) VALUES (1780464836388855823, 1757297023118462976, 1780418342852063240);
-
-INSERT INTO `iam_role_path`(`id`, `role_id`, `permission_id`) VALUES (1780464836388855824, 1757297023118462976, 1780418342852063237);
-
-INSERT INTO `iam_role_path`(`id`, `role_id`, `permission_id`) VALUES (1780464836388855825, 1757297023118462976, 1780418342852063233);
-
-INSERT INTO `iam_role_path`(`id`, `role_id`, `permission_id`) VALUES (1780464836741177344, 1757298887092326400, 1780216505637138435);
-
-INSERT INTO `iam_role_path`(`id`, `role_id`, `permission_id`) VALUES (1780464836741177346, 1757298887092326400, 1780418342852063244);
-
-INSERT INTO `iam_role_path`(`id`, `role_id`, `permission_id`) VALUES (1780464836741177347, 1757298887092326400, 1780418342852063238);
-
-INSERT INTO `iam_role_path`(`id`, `role_id`, `permission_id`) VALUES (1780464836741177348, 1757298887092326400, 1780418342852063236);
-
-INSERT INTO `iam_role_path`(`id`, `role_id`, `permission_id`) VALUES (1780464836741177349, 1757298887092326400, 1780418342852063235);
-
-INSERT INTO `iam_role_path`(`id`, `role_id`, `permission_id`) VALUES (1780464836741177351, 1757298887092326400, 1780418342852063232);
-
-INSERT INTO `iam_role_path`(`id`, `role_id`, `permission_id`) VALUES (1780464836741177354, 1757298887092326400, 1780418342852063248);
-
-INSERT INTO `iam_role_path`(`id`, `role_id`, `permission_id`) VALUES (1780464836741177355, 1757298887092326400, 1780418342852063246);
-
-INSERT INTO `iam_role_path`(`id`, `role_id`, `permission_id`) VALUES (1780464836741177356, 1757298887092326400, 1780418342852063245);
-
-INSERT INTO `iam_role_path`(`id`, `role_id`, `permission_id`) VALUES (1780464836741177357, 1757298887092326400, 1780418342852063242);
-
-INSERT INTO `iam_role_path`(`id`, `role_id`, `permission_id`) VALUES (1780464836741177358, 1757298887092326400, 1780418342852063241);
-
-INSERT INTO `iam_role_path`(`id`, `role_id`, `permission_id`) VALUES (1780464836741177359, 1757298887092326400, 1780418342852063240);
-
-INSERT INTO `iam_role_path`(`id`, `role_id`, `permission_id`) VALUES (1780464836741177360, 1757298887092326400, 1780418342852063237);
-
-INSERT INTO `iam_role_path`(`id`, `role_id`, `permission_id`) VALUES (1780464836741177361, 1757298887092326400, 1780418342852063233);
-
-INSERT INTO `iam_role_path`(`id`, `role_id`, `permission_id`) VALUES (1780466020646395904, 1757297023118462976, 1780216505637138461);
-
-INSERT INTO `iam_role_path`(`id`, `role_id`, `permission_id`) VALUES (1780466020646395905, 1757297023118462976, 1780216505637138460);
-
-INSERT INTO `iam_role_path`(`id`, `role_id`, `permission_id`) VALUES (1780466020646395906, 1757297023118462976, 1780216505637138459);
-
-INSERT INTO `iam_role_path`(`id`, `role_id`, `permission_id`) VALUES (1780466020646395907, 1757297023118462976, 1780216505637138454);
-
-INSERT INTO `iam_role_path`(`id`, `role_id`, `permission_id`) VALUES (1780466020646395908, 1757297023118462976, 1780216505637138453);
-
-INSERT INTO `iam_role_path`(`id`, `role_id`, `permission_id`) VALUES (1780466020646395909, 1757297023118462976, 1780216505637138451);
-
-INSERT INTO `iam_role_path`(`id`, `role_id`, `permission_id`) VALUES (1780466020646395910, 1757297023118462976, 1780216505637138450);
-
-INSERT INTO `iam_role_path`(`id`, `role_id`, `permission_id`) VALUES (1780466020646395911, 1757297023118462976, 1780216505637138443);
-
-INSERT INTO `iam_role_path`(`id`, `role_id`, `permission_id`) VALUES (1780466020646395912, 1757297023118462976, 1780216505637138442);
-
-INSERT INTO `iam_role_path`(`id`, `role_id`, `permission_id`) VALUES (1780466020646395913, 1757297023118462976, 1780216505637138437);
-
-INSERT INTO `iam_role_path`(`id`, `role_id`, `permission_id`) VALUES (1780466020646395914, 1757297023118462976, 1780216505637138434);
-
-INSERT INTO `iam_role_path`(`id`, `role_id`, `permission_id`) VALUES (1780466020646395915, 1757297023118462976, 1780216505637138433);
-
-INSERT INTO `iam_role_path`(`id`, `role_id`, `permission_id`) VALUES (1780466020956774402, 1757298887092326400, 1780216505637138459);
-
-INSERT INTO `iam_role_path`(`id`, `role_id`, `permission_id`) VALUES (1780466020956774403, 1757298887092326400, 1780216505637138454);
-
-INSERT INTO `iam_role_path`(`id`, `role_id`, `permission_id`) VALUES (1780466020956774411, 1757298887092326400, 1780216505637138433);
-
-UPDATE `pay_alipay_config` SET `app_id` = '123456', `enable` = b'1', `notify_url` = 'ServerUrl/callback/pay/alipay', `return_url` = 'ServerUrl/return/pay/alipay', `server_url` = 'https://openapi.alipay.com/gateway.do', `auth_type` = 'key', `sign_type` = 'RSA2', `alipay_public_key` = 'ImfODRp7hnJ3DUk9fCes0Q==', `private_key` = 'ImfODRp7hnJ3DUk9fCes0Q==', `app_cert` = NULL, `alipay_cert` = NULL, `alipay_root_cert` = NULL, `sandbox` = b'0', `pay_ways` = 'wap,app,web,qrcode,barcode', `alipay_user_id` = NULL, `single_limit` = 2000, `allocation` = b'1', `remark` = '支付宝支付', `creator` = 0, `create_time` = '2024-01-02 21:17:58', `last_modifier` = 1399985191002447872, `last_modified_time` = '2024-02-13 15:43:51', `version` = 23, `deleted` = b'0' WHERE `id` = 0;
-
-UPDATE `pay_platform_config` SET `website_url` = 'http://127.0.0.1', `sign_type` = 'HMAC_SHA256', `sign_secret` = '123456', `notify_url` = 'http://127.0.0.1/h5/#/result/success', `return_url` = 'http://127.0.0.1/h5/#/result/success', `order_timeout` = 30, `creator` = 0, `create_time` = '2024-01-02 20:23:19', `last_modifier` = 1757299137932677120, `last_modified_time` = '2024-02-13 15:08:51', `version` = 3, `deleted` = b'0', `limit_amount` = NULL WHERE `id` = 0;
-
-UPDATE `pay_union_pay_config` SET `mach_id` = '123456', `enable` = b'1', `server_url` = 'https://qra.95516.com/pay/gateway', `notify_url` = 'ServerUrl/callback/pay/union', `pay_ways` = 'wap,app,web,qrcode,barcode,jsapi,b2b', `remark` = NULL, `seller` = NULL, `sign_type` = 'RSA2', `cert_sign` = b'0', `key_private_cert` = NULL, `key_private_cert_pwd` = NULL, `acp_middle_cert` = NULL, `acp_root_cert` = NULL, `sandbox` = b'1', `return_url` = 'ServerUrl/return/pay/union', `creator` = 0, `create_time` = '2024-03-06 22:56:22', `last_modifier` = 1399985191002447872, `last_modified_time` = '2024-03-12 23:30:18', `version` = 11, `deleted` = b'0', `single_limit` = 2000 WHERE `id` = 0;
-
-UPDATE `pay_wechat_pay_config` SET `wx_mch_id` = '123', `wx_app_id` = '123', `enable` = b'1', `notify_url` = 'ServerUrl/callback/pay/wechat', `return_url` = 'ServerUrl/pay/wechat', `api_version` = 'apiV2', `api_key_v2` = 'E0jIzPNngkpkZYL19H3vFQ==', `api_key_v3` = 'E0jIzPNngkpkZYL19H3vFQ==', `app_secret` = 'E0jIzPNngkpkZYL19H3vFQ==', `p12` = 'E0jIzPNngkpkZYL19H3vFQ==', `sandbox` = b'0', `pay_ways` = 'wap,app,jsapi,qrcode,barcode', `remark` = NULL, `creator` = 0, `create_time` = '2024-04-18 09:15:47', `last_modifier` = 1399985191002447872, `last_modified_time` = '2024-04-18 09:16:22', `version` = 2025, `deleted` = b'0', `single_limit` = 2000, `allocation` = b'1' WHERE `id` = 0;
-
-SET FOREIGN_KEY_CHECKS = 1;
diff --git a/_config/mysql/2.0.5/2.0.5.update.table.sql b/_config/mysql/2.0.5/2.0.5.update.table.sql
deleted file mode 100644
index 263f122844b03edfa90f2ca359e4d86aa71e6c1b..0000000000000000000000000000000000000000
--- a/_config/mysql/2.0.5/2.0.5.update.table.sql
+++ /dev/null
@@ -1,107 +0,0 @@
-SET FOREIGN_KEY_CHECKS=0;
-
-ALTER TABLE `pay_alipay_config` ADD COLUMN `allocation` bit(1) NULL DEFAULT NULL COMMENT '是否支付分账' AFTER `single_limit`;
-
-ALTER TABLE `pay_alipay_config` MODIFY COLUMN `alipay_user_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '合作者身份ID' AFTER `pay_ways`;
-
-ALTER TABLE `pay_alipay_config` MODIFY COLUMN `single_limit` int(11) NULL DEFAULT NULL COMMENT '支付限额' AFTER `alipay_user_id`;
-
-CREATE TABLE `pay_allocation_group`  (
-                                                     `id` bigint(20) NOT NULL COMMENT '主键',
-                                                     `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '名称',
-                                                     `channel` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '通道',
-                                                     `total_rate` int(11) NULL DEFAULT NULL COMMENT '总分账比例(万分之多少)',
-                                                     `default_group` bit(1) NULL DEFAULT NULL COMMENT '默认分账组',
-                                                     `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
-                                                     `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-                                                     `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
-                                                     `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修者ID',
-                                                     `last_modified_time` datetime(0) NULL DEFAULT NULL COMMENT '最后修改时间',
-                                                     `version` int(11) NOT NULL COMMENT '乐观锁',
-                                                     `deleted` bit(1) NOT NULL COMMENT '删除标志',
-                                                     PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '分账组' ROW_FORMAT = DYNAMIC;
-
-CREATE TABLE `pay_allocation_group_receiver`  (
-                                                              `id` bigint(20) NOT NULL COMMENT '主键',
-                                                              `group_id` bigint(20) NULL DEFAULT NULL COMMENT '分账组ID',
-                                                              `receiver_id` bigint(20) NULL DEFAULT NULL COMMENT '接收者ID',
-                                                              `rate` int(11) NULL DEFAULT NULL COMMENT '分账比例(万分之多少)',
-                                                              `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-                                                              `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
-                                                              PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '分账接收组关系' ROW_FORMAT = DYNAMIC;
-
-CREATE TABLE `pay_allocation_order`  (
-                                                     `id` bigint(20) NOT NULL COMMENT '主键',
-                                                     `order_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '分账订单号',
-                                                     `allocation_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '分账单号',
-                                                     `payment_id` bigint(20) NULL DEFAULT NULL COMMENT '支付订单ID',
-                                                     `title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
-                                                     `gateway_pay_order_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '网关支付订单号',
-                                                     `gateway_allocation_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '网关分账单号',
-                                                     `channel` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '所属通道',
-                                                     `amount` int(11) NULL DEFAULT NULL COMMENT '总分账金额',
-                                                     `description` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '分账描述',
-                                                     `status` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '状态',
-                                                     `result` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '分账处理结果',
-                                                     `error_msg` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '错误原因',
-                                                     `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-                                                     `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
-                                                     `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修者ID',
-                                                     `last_modified_time` datetime(0) NULL DEFAULT NULL COMMENT '最后修改时间',
-                                                     `version` int(11) NOT NULL COMMENT '乐观锁',
-                                                     `deleted` bit(1) NOT NULL COMMENT '删除标志',
-                                                     PRIMARY KEY (`id`) USING BTREE,
-                                                     UNIQUE INDEX `allocation_no`(`allocation_no`) USING BTREE COMMENT '分账单号索引'
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '分账订单' ROW_FORMAT = DYNAMIC;
-
-CREATE TABLE `pay_allocation_order_detail`  (
-                                                            `id` bigint(20) NOT NULL COMMENT '主键',
-                                                            `allocation_id` bigint(20) NULL DEFAULT NULL COMMENT '分账订单ID',
-                                                            `receiver_id` bigint(20) NULL DEFAULT NULL COMMENT '接收者ID',
-                                                            `rate` int(11) NULL DEFAULT NULL COMMENT '分账比例(万分之多少)',
-                                                            `amount` int(11) NULL DEFAULT NULL COMMENT '分账金额',
-                                                            `receiver_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '分账接收方类型',
-                                                            `receiver_account` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '接收方账号',
-                                                            `receiver_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '接收方姓名',
-                                                            `result` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '分账结果',
-                                                            `error_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '错误代码',
-                                                            `error_msg` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '错误原因',
-                                                            `finish_time` datetime(0) NULL DEFAULT NULL COMMENT '分账完成时间',
-                                                            `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-                                                            `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
-                                                            `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修者ID',
-                                                            `last_modified_time` datetime(0) NULL DEFAULT NULL COMMENT '最后修改时间',
-                                                            `version` int(11) NOT NULL COMMENT '乐观锁',
-                                                            `deleted` bit(1) NOT NULL COMMENT '删除标志',
-                                                            PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '分账订单明细' ROW_FORMAT = DYNAMIC;
-
-CREATE TABLE `pay_allocation_receiver`  (
-                                                        `id` bigint(20) NOT NULL COMMENT '主键',
-                                                        `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '账号别名',
-                                                        `channel` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '所属通道',
-                                                        `receiver_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '分账接收方类型',
-                                                        `receiver_account` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '接收方账号',
-                                                        `receiver_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '接收方姓名',
-                                                        `relation_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '分账关系类型',
-                                                        `relation_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '关系名称',
-                                                        `sync` bit(1) NULL DEFAULT NULL COMMENT '是否已经同步到网关',
-                                                        `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
-                                                        `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-                                                        `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
-                                                        `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修者ID',
-                                                        `last_modified_time` datetime(0) NULL DEFAULT NULL COMMENT '最后修改时间',
-                                                        `version` int(11) NOT NULL COMMENT '乐观锁',
-                                                        `deleted` bit(1) NOT NULL COMMENT '删除标志',
-                                                        PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '分账接收方' ROW_FORMAT = DYNAMIC;
-
-ALTER TABLE `pay_order` ADD COLUMN `allocation` bit(1) NULL DEFAULT NULL COMMENT '是否需要分账' AFTER `deleted`;
-
-ALTER TABLE `pay_order` ADD COLUMN `allocation_status` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '分账状态' AFTER `allocation`;
-
-ALTER TABLE `pay_wechat_pay_config` ADD COLUMN `allocation` bit(1) NULL DEFAULT NULL COMMENT '是否支付分账' AFTER `single_limit`;
-
-SET FOREIGN_KEY_CHECKS=1;
diff --git a/_config/mysql/2.0.6/2.0.6.dax-pay.backup.sql b/_config/mysql/2.0.6/2.0.6.dax-pay.backup.sql
deleted file mode 100644
index 0a480bb96609121d14a9e1e0c27adf371fd91863..0000000000000000000000000000000000000000
--- a/_config/mysql/2.0.6/2.0.6.dax-pay.backup.sql
+++ /dev/null
@@ -1,3775 +0,0 @@
-/*
- Navicat Premium Data Transfer
-
- Source Server Type    : MySQL
- Source Server Version : 50743 (5.7.43-log)
-
- Target Server Type    : MySQL
- Target Server Version : 50743 (5.7.43-log)
- File Encoding         : 65001
-
- Date: 13/05/2024 19:50:06
-*/
-
-SET NAMES utf8mb4;
-SET FOREIGN_KEY_CHECKS = 0;
-
--- ----------------------------
--- Table structure for base_area
--- ----------------------------
-DROP TABLE IF EXISTS `base_area`;
-CREATE TABLE `base_area`  (
-                              `code` char(6) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
-                              `name` varchar(60) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '区域名称',
-                              `city_code` char(4) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '0' COMMENT '城市编码',
-                              PRIMARY KEY (`code`) USING BTREE,
-                              INDEX `inx_city_code`(`city_code`) USING BTREE COMMENT '城市'
-) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '县区表' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of base_area
--- ----------------------------
-
--- ----------------------------
--- Table structure for base_china_word
--- ----------------------------
-DROP TABLE IF EXISTS `base_china_word`;
-CREATE TABLE `base_china_word`  (
-                                    `id` bigint(20) NOT NULL COMMENT '主键',
-                                    `word` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '敏感词',
-                                    `type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '分类',
-                                    `description` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '描述',
-                                    `enable` bit(1) NULL DEFAULT NULL COMMENT '是否启用',
-                                    `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-                                    `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
-                                    `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修者ID',
-                                    `last_modified_time` datetime NULL DEFAULT NULL COMMENT '最后修改时间',
-                                    `version` int(11) NOT NULL COMMENT '乐观锁',
-                                    `white` bit(1) NULL DEFAULT NULL,
-                                    PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '敏感词' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of base_china_word
--- ----------------------------
-
--- ----------------------------
--- Table structure for base_city
--- ----------------------------
-DROP TABLE IF EXISTS `base_city`;
-CREATE TABLE `base_city`  (
-                              `code` char(4) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '城市编码',
-                              `name` varchar(60) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '城市名称',
-                              `province_code` char(2) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '0' COMMENT '省份编码',
-                              PRIMARY KEY (`code`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '城市表' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of base_city
--- ----------------------------
-
--- ----------------------------
--- Table structure for base_data_result_sql
--- ----------------------------
-DROP TABLE IF EXISTS `base_data_result_sql`;
-CREATE TABLE `base_data_result_sql`  (
-                                         `id` bigint(20) NOT NULL COMMENT '主键',
-                                         `database_id` bigint(20) NULL DEFAULT NULL,
-                                         `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL,
-                                         `is_list` bit(1) NULL DEFAULT NULL,
-                                         `sql` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL,
-                                         `params` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL,
-                                         `fields` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL,
-                                         `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-                                         `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
-                                         `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修者ID',
-                                         `last_modified_time` datetime NULL DEFAULT NULL COMMENT '最后修改时间',
-                                         `version` int(11) NOT NULL COMMENT '乐观锁',
-                                         `deleted` bit(1) NOT NULL COMMENT '删除标志',
-                                         PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '数据集SQL语句' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of base_data_result_sql
--- ----------------------------
-
--- ----------------------------
--- Table structure for base_dict
--- ----------------------------
-DROP TABLE IF EXISTS `base_dict`;
-CREATE TABLE `base_dict`  (
-                              `id` bigint(20) NOT NULL,
-                              `code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '编码',
-                              `name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '名称',
-                              `enable` bit(1) NOT NULL DEFAULT b'1' COMMENT '启用状态',
-                              `group_tag` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '分类标签',
-                              `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '备注',
-                              `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建人',
-                              `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
-                              `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '更新人',
-                              `last_modified_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
-                              `deleted` tinyint(1) NULL DEFAULT 0 COMMENT '0:未删除。1:已删除',
-                              `version` int(8) NULL DEFAULT NULL COMMENT '版本',
-                              PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '字典' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of base_dict
--- ----------------------------
-INSERT INTO `base_dict` VALUES (1422929378374828033, 'Sex', '性别', b'1', '基础属性', '性别', 0, '2021-08-04 22:36:15', 1399985191002447872, '2022-05-11 19:48:40', 0, 6);
-INSERT INTO `base_dict` VALUES (1425744045414772737, 'MenuType', '菜单类型', b'1', '系统属性', '菜单类型', 0, '2021-08-12 17:00:44', 1399985191002447872, '2022-05-11 19:48:44', 0, 4);
-INSERT INTO `base_dict` VALUES (1430063572491411456, 'loginType', '字典类型', b'1', '基础属性', '字典类型', 1399985191002447872, '2021-08-24 15:05:00', 1399985191002447872, '2021-08-24 15:05:00', 1, 2);
-INSERT INTO `base_dict` VALUES (1435829999592759296, 'UserStatusCode', '用户状态码', b'1', '系统属性', '用户状态码', 1399985191002447872, '2021-09-09 12:58:43', 1399985191002447872, '2022-05-11 19:48:56', 0, 2);
-INSERT INTO `base_dict` VALUES (1435838066191458304, 'LogBusinessType', '业务操作类型', b'1', '系统属性', '操作日志记录的业务操作类型', 1399985191002447872, '2021-09-09 13:30:46', 1399985191002447872, '2022-05-11 19:49:00', 0, 2);
-INSERT INTO `base_dict` VALUES (1438078864509317120, 'MailSecurityCode', '邮箱安全方式编码', b'1', '消息服务', '邮箱安全方式编码', 1399985191002447872, '2021-09-15 17:54:54', 1399985191002447872, '2022-05-11 19:49:06', 0, 2);
-INSERT INTO `base_dict` VALUES (1439961232651034624, 'MessageTemplateCode', '消息模板类型', b'1', '消息服务', '消息模板类型', 1399985191002447872, '2021-09-20 22:34:46', 1399985191002447872, '2022-05-11 19:48:34', 0, 1);
-INSERT INTO `base_dict` VALUES (1452836604783845376, 'SocialType', '三方系统类型', b'1', '系统属性', '三方系统类型', 1399985191002447872, '2021-10-26 11:16:54', 1399985191002447872, '2022-05-11 19:48:28', 0, 3);
-INSERT INTO `base_dict` VALUES (1452843488735621120, 'ParamType', '参数类型', b'1', '系统属性', '参数类型', 1399985191002447872, '2021-10-26 11:44:15', 1399985191002447872, '2022-05-11 19:48:21', 0, 2);
-INSERT INTO `base_dict` VALUES (1496024933900169216, 'Political', '政治面貌', b'1', '基础数据', '政治面貌', 1399985191002447872, '2022-02-22 15:31:54', 1399985191002447872, '2022-05-11 19:48:04', 0, 1);
-INSERT INTO `base_dict` VALUES (1556996322223968256, 'WeChatMediaType', '微信媒体类型', b'1', '微信', '微信媒体类型', 1399985191002447872, '2022-08-09 21:30:25', 1399985191002447872, '2022-08-09 21:30:26', 0, 0);
-INSERT INTO `base_dict` VALUES (1561003021674987520, 'SiteMessageReceive', '消息接收类型', b'1', '站内信', '站内信接收类型', 1399985191002447872, '2022-08-20 22:51:37', 1399985191002447872, '2022-08-20 22:51:37', 0, 0);
-INSERT INTO `base_dict` VALUES (1561003189111603200, 'SiteMessageState', '消息发布状态', b'1', '站内信', '站内信消息发布状态', 1399985191002447872, '2022-08-20 22:52:17', 1399985191002447872, '2022-08-20 22:52:17', 0, 0);
-INSERT INTO `base_dict` VALUES (1589527951317389312, 'DataScopePerm', '数据权限类型', b'1', '系统属性', '数据权限类型', 1414143554414059520, '2022-11-07 15:59:30', 1399985191002447872, '2023-11-28 23:14:24', 0, 4);
-INSERT INTO `base_dict` VALUES (1633393287952257024, 'DatabaseType', '数据库类型', b'1', '开发', '数据库类型', 1414143554414059520, '2023-03-08 17:04:41', 1414143554414059520, '2023-03-08 17:04:41', 0, 0);
-INSERT INTO `base_dict` VALUES (1688742690398617600, 'SmsChannel', '短信渠道商', b'1', '消息服务', '短信渠道商', 1414143554414059520, '2023-08-08 10:43:27', 1414143554414059520, '2023-08-12 20:24:03', 0, 1);
-INSERT INTO `base_dict` VALUES (1690338321769918464, 'GeneralTemplateUseType', '通用模板类型', b'1', '系统属性', '通用模板类型', 1414143554414059520, '2023-08-12 20:23:56', 1414143554414059520, '2023-08-12 20:24:22', 0, 1);
-INSERT INTO `base_dict` VALUES (1690338545284378624, 'GeneralTemplateState', '通用模板状态', b'1', '系统属性', '通用模板状态', 1414143554414059520, '2023-08-12 20:24:49', 1414143554414059520, '2023-08-12 20:24:49', 0, 0);
-INSERT INTO `base_dict` VALUES (1744996611615039488, 'AsyncPayChannel', '异步支付通道', b'1', '支付', '', 1399985191002447872, '2024-01-10 16:16:27', 1399985191002447872, '2024-01-10 16:16:27', 0, 0);
-INSERT INTO `base_dict` VALUES (1744996845355212800, 'PayChannel', '支付通道', b'1', '支付', '', 1399985191002447872, '2024-01-10 16:17:23', 1399985191002447872, '2024-01-10 16:17:23', 0, 0);
-INSERT INTO `base_dict` VALUES (1744996913667842048, 'PayStatus', '支付状态', b'1', '支付', '', 1399985191002447872, '2024-01-10 16:17:39', 1399985191002447872, '2024-01-10 16:17:39', 0, 0);
-INSERT INTO `base_dict` VALUES (1745086859116224512, 'PayMethod', '支付方式', b'1', '支付', '', 1399985191002447872, '2024-01-10 22:15:04', 1399985191002447872, '2024-05-02 12:38:01', 0, 1);
-INSERT INTO `base_dict` VALUES (1745109350333173760, 'PayCallbackStatus', '支付回调处理状态', b'1', '支付', '', 1399985191002447872, '2024-01-10 23:44:26', 1399985191002447872, '2024-01-10 23:44:26', 0, 0);
-INSERT INTO `base_dict` VALUES (1745128986382667776, 'PayRepairSource', '支付修复来源', b'1', '支付', '', 1399985191002447872, '2024-01-11 01:02:28', 1399985191002447872, '2024-01-11 01:02:28', 0, 0);
-INSERT INTO `base_dict` VALUES (1745134438772346880, 'PayRepairWay', '支付修复方式', b'1', '支付', '', 1399985191002447872, '2024-01-11 01:24:08', 1399985191002447872, '2024-01-11 01:24:08', 0, 0);
-INSERT INTO `base_dict` VALUES (1745748188122554368, 'RefundStatus', '退款状态', b'1', '支付', '', 1399985191002447872, '2024-01-12 18:02:57', 1399985191002447872, '2024-02-09 21:22:52', 0, 1);
-INSERT INTO `base_dict` VALUES (1746208645341917184, 'PaySyncStatus', '支付同步结果', b'1', '支付', '', 1399985191002447872, '2024-01-14 00:32:39', 1399985191002447872, '2024-01-14 00:32:39', 0, 0);
-INSERT INTO `base_dict` VALUES (1749612665392541696, 'ReconcileTrade', '支付对账交易类型', b'1', '支付', '', 1399985191002447872, '2024-01-23 09:59:00', 1399985191002447872, '2024-03-01 23:31:32', 0, 1);
-INSERT INTO `base_dict` VALUES (1751603996496453632, 'PaymentType', '支付系统行为类型', b'1', '支付', '支付系统中常见的操作类型, 如支付/退款/转账等', 1399985191002447872, '2024-01-28 21:51:51', 1399985191002447872, '2024-01-28 21:51:51', 0, 0);
-INSERT INTO `base_dict` VALUES (1751613032260370432, 'PayCallbackType', '回调类型', b'1', '支付', '', 1399985191002447872, '2024-01-28 22:27:45', 1399985191002447872, '2024-01-28 22:27:45', 0, 0);
-INSERT INTO `base_dict` VALUES (1752560153120428032, 'RefundSyncStatus', '退款同步状态', b'1', '支付', '', 1399985191002447872, '2024-01-31 13:11:16', 1399985191002447872, '2024-01-31 13:11:16', 0, 0);
-INSERT INTO `base_dict` VALUES (1753047382185091072, 'RefundRepairWay', '退款修复方式', b'1', '支付', '', 1399985191002447872, '2024-02-01 21:27:21', 1399985191002447872, '2024-02-01 21:27:21', 0, 0);
-INSERT INTO `base_dict` VALUES (1758881354618220544, 'WalletStatus', '钱包状态', b'1', '支付', '', 1399985191002447872, '2024-02-17 23:49:28', 1399985191002447872, '2024-02-17 23:49:28', 0, 0);
-INSERT INTO `base_dict` VALUES (1759189874194481152, 'VoucherStatus', '储值卡状态', b'1', '支付', '', 1399985191002447872, '2024-02-18 20:15:25', 1399985191002447872, '2024-02-18 20:15:25', 0, 0);
-INSERT INTO `base_dict` VALUES (1759190066511708160, 'WalletRecordType', '钱包记录类型', b'1', '支付', '', 1399985191002447872, '2024-02-18 20:16:11', 1399985191002447872, '2024-02-18 20:16:11', 0, 0);
-INSERT INTO `base_dict` VALUES (1759190427897135104, 'VoucherRecordType', '储值卡记录类型', b'1', '支付', '', 1399985191002447872, '2024-02-18 20:17:37', 1399985191002447872, '2024-02-18 20:17:37', 0, 0);
-INSERT INTO `base_dict` VALUES (1759190780252225536, 'CashRecordType', '现金记录类型', b'1', '支付', '', 1399985191002447872, '2024-02-18 20:19:01', 1399985191002447872, '2024-02-19 22:07:09', 0, 1);
-INSERT INTO `base_dict` VALUES (1761434095349624832, 'ClientNoticeType', '客户消息通知类型', b'1', '支付', '', 1399985191002447872, '2024-02-25 00:53:09', 1399985191002447872, '2024-02-25 00:53:09', 0, 0);
-INSERT INTO `base_dict` VALUES (1761434264858226688, 'ClientNoticeSendType', '客户消息通知发送类型', b'1', '支付', '', 1399985191002447872, '2024-02-25 00:53:49', 1399985191002447872, '2024-02-25 00:53:49', 0, 0);
-INSERT INTO `base_dict` VALUES (1761581634023583744, 'AlipayRecordType', '支付宝流水记录类型', b'1', '支付', '', 1399985191002447872, '2024-02-25 10:39:25', 1399985191002447872, '2024-02-25 10:39:25', 0, 0);
-INSERT INTO `base_dict` VALUES (1761588314480300032, 'WechatPayRecordType', '微信支付流水记录类型', b'1', '支付', '', 1399985191002447872, '2024-02-25 11:05:58', 1399985191002447872, '2024-02-25 11:05:58', 0, 0);
-INSERT INTO `base_dict` VALUES (1763588034467713024, 'ReconcileDiffType', '对账差异类型', b'1', '支付', '', 1399985191002447872, '2024-03-01 23:32:08', 1399985191002447872, '2024-03-01 23:32:08', 0, 0);
-INSERT INTO `base_dict` VALUES (1766713545981153280, 'UnionPaySignType', '云闪付签名类型', b'1', '支付', '', 1399985191002447872, '2024-03-10 14:31:48', 1399985191002447872, '2024-03-10 14:31:48', 0, 0);
-INSERT INTO `base_dict` VALUES (1768206399071809536, 'UnionPayRecordType', '云闪付流水类型', b'1', '支付', '', 1399985191002447872, '2024-03-14 17:23:52', 1399985191002447872, '2024-03-14 17:23:52', 0, 0);
-INSERT INTO `base_dict` VALUES (1775112798259302400, 'AllocReceiverType', '分账接收方类型', b'1', '支付', '', 1399985191002447872, '2024-04-02 18:47:26', 1399985191002447872, '2024-05-14 16:40:14', 0, 1);
-INSERT INTO `base_dict` VALUES (1775122632706805760, 'AllocRelationType', '分账关系类型', b'1', '支付', '', 1399985191002447872, '2024-04-02 19:26:30', 1399985191002447872, '2024-05-14 16:40:09', 0, 1);
-INSERT INTO `base_dict` VALUES (1777697358802530304, 'AllocOrderStatus', '分账状态', b'1', '支付', '', 1399985191002447872, '2024-04-09 21:57:33', 1399985191002447872, '2024-05-14 16:40:04', 0, 2);
-INSERT INTO `base_dict` VALUES (1780163691808391168, 'AllocDetailResult', '支付分账明细处理结果', b'1', '支付', '', 1399985191002447872, '2024-04-16 17:17:53', 1399985191002447872, '2024-05-14 16:39:57', 0, 3);
-INSERT INTO `base_dict` VALUES (1780165499633106944, 'AllocOrderResult', '支付分账订单处理结果', b'1', '支付', '', 1399985191002447872, '2024-04-16 17:25:04', 1399985191002447872, '2024-05-14 16:39:36', 0, 1);
-INSERT INTO `base_dict` VALUES (1780165929528295424, 'PayOrderAllocationStatus', '支付订单分账状态', b'1', '支付', '', 1399985191002447872, '2024-04-16 17:26:46', 1399985191002447872, '2024-04-16 17:26:46', 0, 0);
-INSERT INTO `base_dict` VALUES (1786399552686465024, 'ReconcileResult', '对账结果', b'1', '支付', '', 1399985191002447872, '2024-05-03 22:16:58', 1399985191002447872, '2024-05-03 22:16:58', 0, 0);
-
--- ----------------------------
--- Table structure for base_dict_item
--- ----------------------------
-DROP TABLE IF EXISTS `base_dict_item`;
-CREATE TABLE `base_dict_item`  (
-                                   `id` bigint(20) NOT NULL,
-                                   `dict_id` bigint(20) NOT NULL COMMENT '字典id',
-                                   `dict_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '字典code',
-                                   `code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '字典项code',
-                                   `name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '字典项名称',
-                                   `enable` bit(1) NOT NULL DEFAULT b'1' COMMENT '启用状态',
-                                   `sort_no` double(8, 2) NOT NULL COMMENT '排序',
-                                   `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '备注',
-                                   `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建人',
-                                   `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
-                                   `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '更新人',
-                                   `last_modified_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
-                                   `deleted` tinyint(1) NOT NULL DEFAULT 0 COMMENT '0:未删除。1:已删除',
-                                   `version` int(8) NOT NULL COMMENT '版本',
-                                   PRIMARY KEY (`id`) USING BTREE,
-                                   INDEX `idx_dictionary_id`(`dict_id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '字典项' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of base_dict_item
--- ----------------------------
-
-INSERT INTO `base_dict_item` VALUES (1422931375807242241, 1422929378374828033, 'Sex', '1', '男', b'1', 0.00, '男性', 0, '2021-08-04 22:44:11', 0, '2021-08-04 22:44:11', 0, 2);
-INSERT INTO `base_dict_item` VALUES (1425729455402401794, 1422929378374828033, 'Sex', '2', '女', b'1', 0.00, '女性', 0, '2021-08-12 16:02:46', 0, '2021-08-12 16:02:46', 0, 1);
-INSERT INTO `base_dict_item` VALUES (1425744258544136194, 1425744045414772737, 'MenuType', '0', '顶级菜单', b'1', 0.00, '顶级菜单', 0, '2021-08-12 17:01:35', 0, '2021-08-12 17:01:35', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1425744436592340993, 1425744045414772737, 'MenuType', '1', '子菜单', b'1', 0.00, '子菜单', 0, '2021-08-12 17:02:17', 0, '2021-08-12 17:02:17', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1425744470582980610, 1425744045414772737, 'MenuType', '2', '按钮权限', b'1', 0.00, '按钮权限', 0, '2021-08-12 17:02:26', 0, '2021-08-12 17:02:26', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1430094707250413568, 1422929378374828033, 'Sex', '0', '未知', b'1', 0.00, '不确定性别', 1399985191002447872, '2021-08-24 17:08:43', 1399985191002447872, '2021-08-24 17:08:43', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1435830086406463488, 1435829999592759296, 'UserStatusCode', 'normal', '正常', b'1', 0.00, 'NORMAL', 1399985191002447872, '2021-09-09 12:59:04', 1399985191002447872, '2023-11-25 15:32:04', 0, 1);
-INSERT INTO `base_dict_item` VALUES (1435830141855162368, 1435829999592759296, 'UserStatusCode', 'lock', '锁定', b'1', 0.00, 'LOCK, 多次登录失败被锁定', 1399985191002447872, '2021-09-09 12:59:17', 1399985191002447872, '2023-11-25 15:32:14', 0, 2);
-INSERT INTO `base_dict_item` VALUES (1435830260503633920, 1435829999592759296, 'UserStatusCode', 'ban', '封禁', b'1', 0.00, 'BAN', 1399985191002447872, '2021-09-09 12:59:45', 1399985191002447872, '2023-11-25 15:32:20', 0, 1);
-INSERT INTO `base_dict_item` VALUES (1435838374749626368, 1435838066191458304, 'LogBusinessType', 'other', '其它', b'1', 0.00, '', 1399985191002447872, '2021-09-09 13:32:00', 1399985191002447872, '2021-09-09 13:32:00', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1435838414436130816, 1435838066191458304, 'LogBusinessType', 'insert', '新增', b'1', 0.00, '', 1399985191002447872, '2021-09-09 13:32:09', 1399985191002447872, '2021-09-09 13:32:09', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1435838467624099840, 1435838066191458304, 'LogBusinessType', 'update', '修改', b'1', 0.00, '', 1399985191002447872, '2021-09-09 13:32:22', 1399985191002447872, '2021-09-09 13:32:22', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1435838502755590144, 1435838066191458304, 'LogBusinessType', 'delete', '删除', b'1', 0.00, '', 1399985191002447872, '2021-09-09 13:32:30', 1399985191002447872, '2021-09-09 13:32:30', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1435838546934194176, 1435838066191458304, 'LogBusinessType', 'grant', '授权', b'1', 0.00, '', 1399985191002447872, '2021-09-09 13:32:41', 1399985191002447872, '2021-09-09 13:32:41', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1435838605537009664, 1435838066191458304, 'LogBusinessType', 'export', '导出', b'1', 0.00, '', 1399985191002447872, '2021-09-09 13:32:55', 1399985191002447872, '2021-09-09 13:32:55', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1435838705457913856, 1435838066191458304, 'LogBusinessType', 'import', '导入', b'1', 0.00, '', 1399985191002447872, '2021-09-09 13:33:19', 1399985191002447872, '2021-09-09 13:33:19', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1435838745861644288, 1435838066191458304, 'LogBusinessType', 'force', '强退', b'1', 0.00, '', 1399985191002447872, '2021-09-09 13:33:28', 1399985191002447872, '2021-09-09 13:33:28', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1435838786273763328, 1435838066191458304, 'LogBusinessType', 'clean', '清空数据', b'1', 0.00, '', 1399985191002447872, '2021-09-09 13:33:38', 1399985191002447872, '2021-09-09 13:33:38', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1438079113630003200, 1438078864509317120, 'MailSecurityCode', '1', '普通方式', b'1', 0.00, 'SECURITY_TYPE_PLAIN', 1399985191002447872, '2021-09-15 17:55:54', 1399985191002447872, '2021-09-15 17:55:54', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1438080323061755904, 1438078864509317120, 'MailSecurityCode', '2', 'TLS方式', b'1', 0.00, 'SECURITY_TYPE_TLS', 1399985191002447872, '2021-09-15 18:00:42', 1399985191002447872, '2021-09-15 18:00:42', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1438080372231581696, 1438078864509317120, 'MailSecurityCode', '3', 'SSL方式', b'1', 0.00, 'SECURITY_TYPE_SSL', 1399985191002447872, '2021-09-15 18:00:54', 1399985191002447872, '2021-09-15 18:00:54', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1439961603914047488, 1439961232651034624, 'MessageTemplateCode', '5', '微信', b'1', -10.00, 'WECHAT', 1399985191002447872, '2021-09-20 22:36:14', 1399985191002447872, '2021-09-20 22:36:14', 0, 1);
-INSERT INTO `base_dict_item` VALUES (1439961704321490944, 1439961232651034624, 'MessageTemplateCode', '4', 'Email', b'1', 0.00, 'EMAIL', 1399985191002447872, '2021-09-20 22:36:38', 1399985191002447872, '2021-09-20 22:36:38', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1439962132744478720, 1439961232651034624, 'MessageTemplateCode', '3', '短信', b'1', 0.00, 'SMS', 1399985191002447872, '2021-09-20 22:38:20', 1399985191002447872, '2021-09-20 22:38:20', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1439962205578567680, 1439961232651034624, 'MessageTemplateCode', '2', '钉钉机器人', b'1', 0.00, 'DING_TALK_ROBOT', 1399985191002447872, '2021-09-20 22:38:38', 1399985191002447872, '2021-09-20 22:38:38', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1439962267511660544, 1439961232651034624, 'MessageTemplateCode', '1', '钉钉', b'1', 0.00, 'DING_TALK', 1399985191002447872, '2021-09-20 22:38:52', 1399985191002447872, '2021-09-20 22:38:52', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1452836696873984000, 1452836604783845376, 'SocialType', 'WeChat', '微信', b'1', 0.00, '', 1399985191002447872, '2021-10-26 11:17:16', 1399985191002447872, '2021-10-26 11:17:16', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1452837435482529792, 1452836604783845376, 'SocialType', 'QQ', 'QQ', b'1', 0.00, '', 1399985191002447872, '2021-10-26 11:20:12', 1399985191002447872, '2021-10-26 11:20:12', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1452837523030237184, 1452836604783845376, 'SocialType', 'DingTalk', '钉钉', b'1', 0.00, '', 1399985191002447872, '2021-10-26 11:20:33', 1399985191002447872, '2021-10-26 11:20:33', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1452844537911406592, 1452843488735621120, 'ParamType', '1', '系统参数', b'1', 0.00, '', 1399985191002447872, '2021-10-26 11:48:25', 1399985191002447872, '2021-10-26 11:48:25', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1452844565031776256, 1452843488735621120, 'ParamType', '2', '用户参数', b'1', 0.00, '', 1399985191002447872, '2021-10-26 11:48:32', 1399985191002447872, '2021-10-26 11:48:32', 0, 2);
-INSERT INTO `base_dict_item` VALUES (1496026946344005632, 1496024933900169216, 'Political', '1', '中共党员', b'1', 1.00, '', 1399985191002447872, '2022-02-22 15:39:54', 1399985191002447872, '2022-02-22 15:39:54', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1496027004560945152, 1496024933900169216, 'Political', '2', '中共预备党员', b'1', 2.00, '', 1399985191002447872, '2022-02-22 15:40:07', 1399985191002447872, '2022-02-22 15:40:07', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1496027039264616448, 1496024933900169216, 'Political', '3', '共青团员', b'1', 3.00, '', 1399985191002447872, '2022-02-22 15:40:16', 1399985191002447872, '2022-02-22 15:40:16', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1496027077550223360, 1496024933900169216, 'Political', '4', '民革党员', b'1', 4.00, '', 1399985191002447872, '2022-02-22 15:40:25', 1399985191002447872, '2022-02-22 15:40:25', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1496027123461074944, 1496024933900169216, 'Political', '5', '民盟盟员', b'1', 5.00, '', 1399985191002447872, '2022-02-22 15:40:36', 1399985191002447872, '2022-02-22 15:40:36', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1496027197566038016, 1496024933900169216, 'Political', '6', '民建会员', b'1', 6.00, '', 1399985191002447872, '2022-02-22 15:40:53', 1399985191002447872, '2022-02-22 15:40:53', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1496027234803068928, 1496024933900169216, 'Political', '7', '民进会员', b'1', 7.00, '', 1399985191002447872, '2022-02-22 15:41:02', 1399985191002447872, '2022-02-22 15:41:02', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1496027272941875200, 1496024933900169216, 'Political', '8', '农工党党员', b'1', 8.00, '', 1399985191002447872, '2022-02-22 15:41:11', 1399985191002447872, '2022-02-22 15:41:11', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1496027306634719232, 1496024933900169216, 'Political', '9', '致公党党员', b'1', 9.00, '', 1399985191002447872, '2022-02-22 15:41:19', 1399985191002447872, '2022-02-22 15:41:19', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1496027369796743168, 1496024933900169216, 'Political', '10', '九三学社社员', b'1', 10.00, '', 1399985191002447872, '2022-02-22 15:41:34', 1399985191002447872, '2022-02-22 15:41:35', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1496027408141070336, 1496024933900169216, 'Political', '11', '台盟盟员', b'1', 11.00, '', 1399985191002447872, '2022-02-22 15:41:44', 1399985191002447872, '2022-02-22 15:41:44', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1496027456849522688, 1496024933900169216, 'Political', '12', '无党派人士', b'1', 12.00, '', 1399985191002447872, '2022-02-22 15:41:55', 1399985191002447872, '2022-02-22 15:41:55', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1496027516639326208, 1496024933900169216, 'Political', '13', '群众', b'1', 13.00, '', 1399985191002447872, '2022-02-22 15:42:09', 1399985191002447872, '2022-02-22 15:42:10', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1561003368762032128, 1561003021674987520, 'SiteMessageReceive', 'user', '指定用户', b'1', 0.00, '', 1399985191002447872, '2022-08-20 22:53:00', 1399985191002447872, '2022-08-20 22:53:00', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1561003399778910208, 1561003021674987520, 'SiteMessageReceive', 'all', '全部用户', b'1', 0.00, '', 1399985191002447872, '2022-08-20 22:53:07', 1399985191002447872, '2022-08-20 22:53:24', 0, 1);
-INSERT INTO `base_dict_item` VALUES (1561003539772194816, 1561003189111603200, 'SiteMessageState', 'sent', '已发送', b'1', 0.00, '', 1399985191002447872, '2022-08-20 22:53:41', 1399985191002447872, '2022-08-20 22:53:41', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1561003575608328192, 1561003189111603200, 'SiteMessageState', 'cancel', '撤销', b'1', 0.00, '', 1399985191002447872, '2022-08-20 22:53:49', 1399985191002447872, '2022-08-20 22:53:49', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1561245469535080448, 1561003189111603200, 'SiteMessageState', 'draft', '草稿', b'1', 0.00, '', 1399985191002447872, '2022-08-21 14:55:01', 1399985191002447872, '2022-08-21 14:55:01', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1573665422392098816, 1439961232651034624, 'MessageTemplateCode', '0', '站内信', b'1', -11.00, 'SITE', 1399985191002447872, '2022-09-24 21:27:29', 1399985191002447872, '2022-09-24 21:27:39', 0, 1);
-INSERT INTO `base_dict_item` VALUES (1589528254477488128, 1589527951317389312, 'DataScopePerm', 'self_dept_sub', '所在及下级部门', b'1', 0.00, '', 1414143554414059520, '2022-11-07 16:00:43', 1399985191002447872, '2023-11-28 23:16:02', 0, 2);
-INSERT INTO `base_dict_item` VALUES (1589528283539820544, 1589527951317389312, 'DataScopePerm', 'self_dept', '所在部门', b'1', 0.00, '', 1414143554414059520, '2022-11-07 16:00:49', 1399985191002447872, '2023-11-28 23:15:52', 0, 2);
-INSERT INTO `base_dict_item` VALUES (1589528315672383488, 1589527951317389312, 'DataScopePerm', 'all', '全部数据', b'1', 0.00, '', 1414143554414059520, '2022-11-07 16:00:57', 1399985191002447872, '2023-11-25 22:51:28', 0, 1);
-INSERT INTO `base_dict_item` VALUES (1589528340267782144, 1589527951317389312, 'DataScopePerm', 'dept_and_user', '自定义部门和用户', b'1', 0.00, '', 1414143554414059520, '2022-11-07 16:01:03', 1399985191002447872, '2023-11-29 15:25:01', 0, 3);
-INSERT INTO `base_dict_item` VALUES (1589528367228768256, 1589527951317389312, 'DataScopePerm', 'dept', '自定义部门', b'1', 0.00, '', 1414143554414059520, '2022-11-07 16:01:09', 1399985191002447872, '2023-11-29 15:24:47', 0, 2);
-INSERT INTO `base_dict_item` VALUES (1589528393292173312, 1589527951317389312, 'DataScopePerm', 'user', '指定用户', b'1', 0.00, '', 1414143554414059520, '2022-11-07 16:01:16', 1399985191002447872, '2023-11-29 15:25:16', 0, 2);
-INSERT INTO `base_dict_item` VALUES (1589528423956729856, 1589527951317389312, 'DataScopePerm', 'self', '自身数据', b'1', 0.00, '', 1414143554414059520, '2022-11-07 16:01:23', 1399985191002447872, '2023-11-25 22:50:41', 0, 1);
-INSERT INTO `base_dict_item` VALUES (1633403429028536320, 1633393287952257024, 'DatabaseType', 'mysql', 'MySQL', b'1', 1.00, '', 1414143554414059520, '2023-03-08 17:44:59', 1414143554414059520, '2023-03-08 17:44:59', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1633403459470794752, 1633393287952257024, 'DatabaseType', 'oracle', 'Oracle', b'1', 2.00, '', 1414143554414059520, '2023-03-08 17:45:07', 1414143554414059520, '2023-03-08 17:45:07', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1633403498695925760, 1633393287952257024, 'DatabaseType', 'mssql', 'SQLServer', b'1', 3.00, '', 1414143554414059520, '2023-03-08 17:45:16', 1414143554414059520, '2023-03-08 17:45:16', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1688742732891111424, 1688742690398617600, 'SmsChannel', 'alibaba', '阿里云', b'1', 0.00, '', 1414143554414059520, '2023-08-08 10:43:38', 1414143554414059520, '2023-08-08 10:43:38', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1688742768479780864, 1688742690398617600, 'SmsChannel', 'huawei', '华为云', b'1', 0.00, '', 1414143554414059520, '2023-08-08 10:43:46', 1414143554414059520, '2023-08-08 10:43:46', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1688742808027873280, 1688742690398617600, 'SmsChannel', 'yunpian', '云片', b'1', 0.00, '', 1414143554414059520, '2023-08-08 10:43:55', 1414143554414059520, '2023-08-08 10:43:56', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1688742840626003968, 1688742690398617600, 'SmsChannel', 'tencent', '腾讯云', b'1', 0.00, '', 1414143554414059520, '2023-08-08 10:44:03', 1414143554414059520, '2023-08-08 10:44:03', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1688742872506908672, 1688742690398617600, 'SmsChannel', 'uni_sms', '合一短信', b'1', 0.00, '', 1414143554414059520, '2023-08-08 10:44:11', 1414143554414059520, '2023-08-08 10:44:11', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1688742905553829888, 1688742690398617600, 'SmsChannel', 'jd_cloud', '京东云', b'1', 0.00, '', 1414143554414059520, '2023-08-08 10:44:19', 1414143554414059520, '2023-08-08 10:44:19', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1688742954715267072, 1688742690398617600, 'SmsChannel', 'cloopen', '容联云', b'1', 0.00, '', 1414143554414059520, '2023-08-08 10:44:30', 1414143554414059520, '2023-08-08 10:44:30', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1688742990446542848, 1688742690398617600, 'SmsChannel', 'emay', '亿美软通', b'1', 0.00, '', 1414143554414059520, '2023-08-08 10:44:39', 1414143554414059520, '2023-08-08 10:44:39', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1688743032297308160, 1688742690398617600, 'SmsChannel', 'ctyun', '天翼云', b'1', 0.00, '', 1414143554414059520, '2023-08-08 10:44:49', 1414143554414059520, '2023-08-08 10:44:49', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1688743065205817344, 1688742690398617600, 'SmsChannel', 'netease', '网易云信', b'1', 0.00, '', 1414143554414059520, '2023-08-08 10:44:57', 1414143554414059520, '2023-08-08 10:44:57', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1690338619024437248, 1690338321769918464, 'GeneralTemplateUseType', 'import', '导入', b'1', 0.00, '', 1414143554414059520, '2023-08-12 20:25:06', 1414143554414059520, '2023-08-12 20:25:06', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1690338653442895872, 1690338321769918464, 'GeneralTemplateUseType', 'export', '导出', b'1', 0.00, '', 1414143554414059520, '2023-08-12 20:25:15', 1414143554414059520, '2023-08-12 20:25:15', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1690338707129987072, 1690338545284378624, 'GeneralTemplateState', 'enable', '启用', b'1', 0.00, '', 1414143554414059520, '2023-08-12 20:25:27', 1414143554414059520, '2023-08-12 20:25:27', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1690338748032839680, 1690338545284378624, 'GeneralTemplateState', 'disable', '停用', b'1', 0.00, '', 1414143554414059520, '2023-08-12 20:25:37', 1414143554414059520, '2023-08-12 20:25:37', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1729519341702086656, 1589527951317389312, 'DataScopePerm', 'dept_sub', '指定部门及下级部门', b'1', 0.00, '', 1399985191002447872, '2023-11-28 23:15:19', 1399985191002447872, '2023-11-28 23:15:19', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1744997130102317056, 1744996845355212800, 'PayChannel', 'ali_pay', '支付宝', b'1', 1.00, '', 1399985191002447872, '2024-01-10 16:18:31', 1399985191002447872, '2024-01-10 16:18:31', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1744997169239367680, 1744996845355212800, 'PayChannel', 'wechat_pay', '微信支付', b'1', 2.00, '', 1399985191002447872, '2024-01-10 16:18:40', 1399985191002447872, '2024-01-10 16:18:40', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1744997213623492608, 1744996845355212800, 'PayChannel', 'union_pay', '云闪付', b'1', 3.00, '', 1399985191002447872, '2024-01-10 16:18:51', 1399985191002447872, '2024-01-10 16:18:51', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1744997258951335936, 1744996845355212800, 'PayChannel', 'cash_pay', '现金支付', b'1', 4.00, '', 1399985191002447872, '2024-01-10 16:19:02', 1399985191002447872, '2024-05-02 12:39:33', 1, 0);
-INSERT INTO `base_dict_item` VALUES (1744997315557662720, 1744996845355212800, 'PayChannel', 'wallet_pay', '钱包支付', b'1', 5.00, '', 1399985191002447872, '2024-01-10 16:19:15', 1399985191002447872, '2024-01-10 16:19:15', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1744997364404527104, 1744996845355212800, 'PayChannel', 'voucher_pay', '储值卡支付', b'1', 6.00, '', 1399985191002447872, '2024-01-10 16:19:27', 1399985191002447872, '2024-05-02 12:39:29', 1, 0);
-INSERT INTO `base_dict_item` VALUES (1744997501033979904, 1744996913667842048, 'PayStatus', 'progress', '支付中', b'1', 1.00, '', 1399985191002447872, '2024-01-10 16:19:59', 1399985191002447872, '2024-01-10 16:19:59', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1744997541811003392, 1744996913667842048, 'PayStatus', 'success', '成功', b'1', 2.00, '', 1399985191002447872, '2024-01-10 16:20:09', 1399985191002447872, '2024-01-10 16:20:09', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1744997578863484928, 1744996913667842048, 'PayStatus', 'close', '支付关闭', b'1', 3.00, '', 1399985191002447872, '2024-01-10 16:20:18', 1399985191002447872, '2024-01-10 16:20:18', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1744997619665674240, 1744996913667842048, 'PayStatus', 'fail', '失败', b'1', 7.00, '', 1399985191002447872, '2024-01-10 16:20:28', 1399985191002447872, '2024-01-27 00:52:05', 0, 1);
-INSERT INTO `base_dict_item` VALUES (1744997658735616000, 1744996913667842048, 'PayStatus', 'partial_refund', '部分退款', b'1', 5.00, '', 1399985191002447872, '2024-01-10 16:20:37', 1399985191002447872, '2024-01-10 16:20:44', 0, 1);
-INSERT INTO `base_dict_item` VALUES (1744997746321072128, 1744996913667842048, 'PayStatus', 'refunded', '全部退款', b'1', 6.00, '', 1399985191002447872, '2024-01-10 16:20:58', 1399985191002447872, '2024-01-10 16:20:58', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1745085949967278080, 1744996611615039488, 'AsyncPayChannel', 'ali_pay', '支付宝', b'1', 1.00, '', 1399985191002447872, '2024-01-10 22:11:27', 1399985191002447872, '2024-01-10 22:11:27', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1745085991767711744, 1744996611615039488, 'AsyncPayChannel', 'wechat_pay', '微信支付', b'1', 2.00, '', 1399985191002447872, '2024-01-10 22:11:37', 1399985191002447872, '2024-01-10 22:11:37', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1745086048852189184, 1744996611615039488, 'AsyncPayChannel', 'union_pay', '云闪付', b'1', 3.00, '', 1399985191002447872, '2024-01-10 22:11:51', 1399985191002447872, '2024-01-11 00:13:03', 0, 1);
-INSERT INTO `base_dict_item` VALUES (1745086902929924096, 1745086859116224512, 'PayMethod', 'normal', '常规支付', b'1', 1.00, '', 1399985191002447872, '2024-01-10 22:15:14', 1399985191002447872, '2024-01-10 22:15:26', 0, 1);
-INSERT INTO `base_dict_item` VALUES (1745086940036931584, 1745086859116224512, 'PayMethod', 'wap', 'wap支付', b'1', 2.00, '', 1399985191002447872, '2024-01-10 22:15:23', 1399985191002447872, '2024-01-10 22:15:23', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1745087004062982144, 1745086859116224512, 'PayMethod', 'app', '应用支付', b'1', 3.00, '', 1399985191002447872, '2024-01-10 22:15:39', 1399985191002447872, '2024-01-10 22:15:39', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1745087058194669568, 1745086859116224512, 'PayMethod', 'web', 'web支付', b'1', 4.00, '', 1399985191002447872, '2024-01-10 22:15:51', 1399985191002447872, '2024-01-10 22:15:51', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1745087104050995200, 1745086859116224512, 'PayMethod', 'qrcode', '扫码支付', b'1', 5.00, '', 1399985191002447872, '2024-01-10 22:16:02', 1399985191002447872, '2024-01-10 22:16:02', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1745087163324899328, 1745086859116224512, 'PayMethod', 'barcode', '付款码', b'1', 6.00, '', 1399985191002447872, '2024-01-10 22:16:17', 1399985191002447872, '2024-01-10 22:16:17', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1745087221629919232, 1745086859116224512, 'PayMethod', 'jsapi', '公众号/小程序支付', b'1', 7.00, '', 1399985191002447872, '2024-01-10 22:16:30', 1399985191002447872, '2024-01-10 22:16:37', 0, 1);
-INSERT INTO `base_dict_item` VALUES (1745109413893656576, 1745109350333173760, 'PayCallbackStatus', 'success', '成功', b'1', 1.00, '', 1399985191002447872, '2024-01-10 23:44:41', 1399985191002447872, '2024-01-10 23:44:41', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1745109449050312704, 1745109350333173760, 'PayCallbackStatus', 'fail', '失败', b'1', 2.00, '', 1399985191002447872, '2024-01-10 23:44:50', 1399985191002447872, '2024-01-10 23:44:50', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1745109487289782272, 1745109350333173760, 'PayCallbackStatus', 'ignore', '忽略', b'1', 3.00, '', 1399985191002447872, '2024-01-10 23:44:59', 1399985191002447872, '2024-01-10 23:44:59', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1745109526477164544, 1745109350333173760, 'PayCallbackStatus', 'exception', '异常', b'1', 4.00, '', 1399985191002447872, '2024-01-10 23:45:08', 1399985191002447872, '2024-02-01 22:14:52', 0, 1);
-INSERT INTO `base_dict_item` VALUES (1745109571771453440, 1745109350333173760, 'PayCallbackStatus', 'not_found', '未找到', b'1', 5.00, '', 1399985191002447872, '2024-01-10 23:45:19', 1399985191002447872, '2024-01-10 23:45:19', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1745129035573465088, 1745128986382667776, 'PayRepairSource', 'sync', '同步', b'1', 1.00, '', 1399985191002447872, '2024-01-11 01:02:40', 1399985191002447872, '2024-01-11 01:02:40', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1745133530906857472, 1745128986382667776, 'PayRepairSource', 'callback', '回调', b'1', 2.00, '', 1399985191002447872, '2024-01-11 01:20:31', 1399985191002447872, '2024-01-11 01:20:31', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1745133583939637248, 1745128986382667776, 'PayRepairSource', 'reconcile', '对账', b'1', 3.00, '', 1399985191002447872, '2024-01-11 01:20:44', 1399985191002447872, '2024-01-11 01:20:44', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1745134495319953408, 1745134438772346880, 'PayRepairWay', 'pay_success', '支付成功', b'1', 1.00, '', 1399985191002447872, '2024-01-11 01:24:21', 1399985191002447872, '2024-02-01 21:29:32', 0, 1);
-INSERT INTO `base_dict_item` VALUES (1745134589926674432, 1745134438772346880, 'PayRepairWay', 'pay_close_local', '关闭本地支付', b'1', 2.00, '', 1399985191002447872, '2024-01-11 01:24:44', 1399985191002447872, '2024-02-01 21:29:36', 0, 1);
-INSERT INTO `base_dict_item` VALUES (1745134628447162368, 1745134438772346880, 'PayRepairWay', 'pay_progress', '更改为支付中', b'1', 3.00, '', 1399985191002447872, '2024-01-11 01:24:53', 1399985191002447872, '2024-02-01 22:02:53', 0, 2);
-INSERT INTO `base_dict_item` VALUES (1745134664807583744, 1745134438772346880, 'PayRepairWay', 'pay_close_gateway', '关闭网关支付', b'1', 4.00, '', 1399985191002447872, '2024-01-11 01:25:02', 1399985191002447872, '2024-02-01 21:29:43', 0, 1);
-INSERT INTO `base_dict_item` VALUES (1745134703416152064, 1745134438772346880, 'PayRepairWay', 'refund', '退款', b'1', 5.00, '', 1399985191002447872, '2024-01-11 01:25:11', 1399985191002447872, '2024-01-28 21:55:55', 1, 1);
-INSERT INTO `base_dict_item` VALUES (1745748239158845440, 1745748188122554368, 'RefundStatus', 'success', '成功', b'1', 1.00, '', 1399985191002447872, '2024-01-12 18:03:09', 1399985191002447872, '2024-01-12 18:03:09', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1745748274525216768, 1745748188122554368, 'RefundStatus', 'fail', '失败', b'1', 3.00, '', 1399985191002447872, '2024-01-12 18:03:18', 1399985191002447872, '2024-01-27 00:51:02', 0, 1);
-INSERT INTO `base_dict_item` VALUES (1746208700446683136, 1746208645341917184, 'PaySyncStatus', 'pay_fail', '支付查询失败', b'1', 1.00, '', 1399985191002447872, '2024-01-14 00:32:52', 1399985191002447872, '2024-02-01 21:59:17', 0, 1);
-INSERT INTO `base_dict_item` VALUES (1746208760488144896, 1746208645341917184, 'PaySyncStatus', 'pay_success', '支付成功', b'1', 2.00, '', 1399985191002447872, '2024-01-14 00:33:06', 1399985191002447872, '2024-02-01 21:59:23', 0, 1);
-INSERT INTO `base_dict_item` VALUES (1746208802531848192, 1746208645341917184, 'PaySyncStatus', 'pay_progress', '支付中', b'1', 3.00, '', 1399985191002447872, '2024-01-14 00:33:16', 1399985191002447872, '2024-02-01 21:59:33', 0, 1);
-INSERT INTO `base_dict_item` VALUES (1746208853882712064, 1746208645341917184, 'PaySyncStatus', 'pay_closed', '支付已关闭', b'1', 4.00, '', 1399985191002447872, '2024-01-14 00:33:28', 1399985191002447872, '2024-02-01 21:59:43', 0, 1);
-INSERT INTO `base_dict_item` VALUES (1746208898396860416, 1746208645341917184, 'PaySyncStatus', 'pay_refund', '支付退款', b'1', 5.00, '', 1399985191002447872, '2024-01-14 00:33:39', 1399985191002447872, '2024-02-01 21:59:53', 0, 2);
-INSERT INTO `base_dict_item` VALUES (1746208959721779200, 1746208645341917184, 'PaySyncStatus', 'pay_not_found', '交易不存在', b'1', 6.00, '', 1399985191002447872, '2024-01-14 00:33:54', 1399985191002447872, '2024-02-01 22:00:05', 0, 2);
-INSERT INTO `base_dict_item` VALUES (1746224281904455680, 1746208645341917184, 'PaySyncStatus', 'pay_not_found_unknown', '交易不存在(特殊)', b'1', 7.00, '未查询到订单(具体类型未知), 区别于上面的未查询到订单,有些支付方式如支付宝,发起支付后并不能查询到订单,需要用户进行操作后才能查询到订单,所以查询为了区分,增加一个未知的状态, 用于处理这种特殊情况, 然后根据业务需要,关闭订单或者进行其他操作', 1399985191002447872, '2024-01-14 01:34:47', 1399985191002447872, '2024-02-01 22:00:13', 0, 2);
-INSERT INTO `base_dict_item` VALUES (1746224432131842048, 1746208645341917184, 'PaySyncStatus', 'pay_timeout', '支付超时', b'1', 8.00, '', 1399985191002447872, '2024-01-14 01:35:23', 1399985191002447872, '2024-02-01 22:00:30', 0, 2);
-INSERT INTO `base_dict_item` VALUES (1749612708363186176, 1749612665392541696, 'ReconcileTrade', 'pay', '支付', b'1', 1.00, '', 1399985191002447872, '2024-01-23 09:59:11', 1399985191002447872, '2024-01-23 09:59:11', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1749612758531256320, 1749612665392541696, 'ReconcileTrade', 'refund', '退款', b'1', 2.00, '', 1399985191002447872, '2024-01-23 09:59:23', 1399985191002447872, '2024-01-23 09:59:23', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1749612797680889856, 1749612665392541696, 'ReconcileTrade', 'revoked', '撤销', b'1', 3.00, '', 1399985191002447872, '2024-01-23 09:59:32', 1399985191002447872, '2024-01-23 09:59:32', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1750924188674404352, 1745748188122554368, 'RefundStatus', 'progress', '退款中', b'1', 0.00, '接口调用成功不代表成功', 1399985191002447872, '2024-01-27 00:50:32', 1399985191002447872, '2024-01-27 00:50:32', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1750924286401687552, 1745748188122554368, 'RefundStatus', 'part_success', '部分成功', b'1', 2.00, '', 1399985191002447872, '2024-01-27 00:50:55', 1399985191002447872, '2024-01-27 00:50:55', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1750924518497693696, 1744996913667842048, 'PayStatus', 'refunding', '退款中', b'1', 4.00, '', 1399985191002447872, '2024-01-27 00:51:50', 1399985191002447872, '2024-01-27 00:52:10', 0, 1);
-INSERT INTO `base_dict_item` VALUES (1751528739035111424, 1751603996496453632, 'PaymentType', 'pay', '支付', b'1', 1.00, '', 1399985191002447872, '2024-01-28 16:52:48', 1399985191002447872, '2024-01-28 16:52:48', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1751528773260632064, 1751603996496453632, 'PaymentType', 'refund', '退款', b'1', 2.00, '', 1399985191002447872, '2024-01-28 16:52:56', 1399985191002447872, '2024-01-28 16:52:56', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1751613076980039680, 1751613032260370432, 'PayCallbackType', 'pay', '支付回调', b'1', 1.00, '', 1399985191002447872, '2024-01-28 22:27:56', 1399985191002447872, '2024-01-28 22:27:56', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1751613114254819328, 1751613032260370432, 'PayCallbackType', 'refund', '退款回调', b'1', 2.00, '', 1399985191002447872, '2024-01-28 22:28:04', 1399985191002447872, '2024-01-28 22:28:04', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1752216855927226368, 1745748188122554368, 'RefundStatus', 'close', '关闭', b'1', 4.00, '', 1399985191002447872, '2024-01-30 14:27:08', 1399985191002447872, '2024-01-30 14:27:08', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1752560213673594880, 1752560153120428032, 'RefundSyncStatus', 'refund_success', '退款成功', b'1', 1.00, '', 1399985191002447872, '2024-01-31 13:11:31', 1399985191002447872, '2024-02-01 21:56:59', 0, 1);
-INSERT INTO `base_dict_item` VALUES (1752560254228320256, 1752560153120428032, 'RefundSyncStatus', 'refund_fail', '退款失败', b'1', 2.00, '', 1399985191002447872, '2024-01-31 13:11:40', 1399985191002447872, '2024-02-01 21:57:07', 0, 1);
-INSERT INTO `base_dict_item` VALUES (1752560288546115584, 1752560153120428032, 'RefundSyncStatus', 'refund_progress', '退款中', b'1', 3.00, '', 1399985191002447872, '2024-01-31 13:11:48', 1399985191002447872, '2024-02-01 21:57:45', 0, 1);
-INSERT INTO `base_dict_item` VALUES (1753044707091554304, 1745128986382667776, 'PayRepairSource', 'task', '定时任务', b'1', 4.00, '', 1399985191002447872, '2024-02-01 21:16:43', 1399985191002447872, '2024-02-01 21:16:43', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1753047429014495232, 1753047382185091072, 'RefundRepairWay', 'refund_success', '退款成功', b'1', 1.00, '', 1399985191002447872, '2024-02-01 21:27:32', 1399985191002447872, '2024-02-01 21:29:13', 0, 1);
-INSERT INTO `base_dict_item` VALUES (1753047491140526080, 1753047382185091072, 'RefundRepairWay', 'refund_fail', '退款失败', b'1', 2.00, '', 1399985191002447872, '2024-02-01 21:27:47', 1399985191002447872, '2024-02-01 21:29:19', 0, 1);
-INSERT INTO `base_dict_item` VALUES (1755939895162052608, 1745134438772346880, 'PayRepairWay', 'refund_success', '退款成功', b'1', 5.00, '会更新为部分退款和全部退款', 1399985191002447872, '2024-02-09 21:01:09', 1399985191002447872, '2024-02-09 21:10:22', 0, 2);
-INSERT INTO `base_dict_item` VALUES (1755942271772139520, 1745134438772346880, 'PayRepairWay', 'refund_fail', '退款失败', b'1', 6.00, '', 1399985191002447872, '2024-02-09 21:10:36', 1399985191002447872, '2024-02-09 21:10:36', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1758881424411439104, 1758881354618220544, 'WalletStatus', 'normal', '正常', b'1', 1.00, '', 1399985191002447872, '2024-02-17 23:49:45', 1399985191002447872, '2024-02-17 23:49:45', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1758881470334873600, 1758881354618220544, 'WalletStatus', 'forbidden', '禁用', b'1', 2.00, '', 1399985191002447872, '2024-02-17 23:49:56', 1399985191002447872, '2024-02-17 23:49:56', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1759189919170002944, 1759189874194481152, 'VoucherStatus', 'normal', '正常', b'1', 1.00, '', 1399985191002447872, '2024-02-18 20:15:36', 1399985191002447872, '2024-02-18 20:15:36', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1759189962564272128, 1759189874194481152, 'VoucherStatus', 'forbidden', '禁用', b'1', 2.00, '', 1399985191002447872, '2024-02-18 20:15:46', 1399985191002447872, '2024-02-18 20:15:46', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1759190150464897024, 1759190066511708160, 'WalletRecordType', 'create', '创建', b'1', 1.00, '', 1399985191002447872, '2024-02-18 20:16:31', 1399985191002447872, '2024-02-18 20:16:31', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1759190193783668736, 1759190066511708160, 'WalletRecordType', 'pay', '支付', b'1', 2.00, '', 1399985191002447872, '2024-02-18 20:16:41', 1399985191002447872, '2024-02-18 20:16:41', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1759190227510067200, 1759190066511708160, 'WalletRecordType', 'refund', '退款', b'1', 3.00, '', 1399985191002447872, '2024-02-18 20:16:49', 1399985191002447872, '2024-02-18 20:16:56', 0, 1);
-INSERT INTO `base_dict_item` VALUES (1759190291980713984, 1759190066511708160, 'WalletRecordType', 'close_pay', '支付关闭', b'1', 4.00, '', 1399985191002447872, '2024-02-18 20:17:04', 1399985191002447872, '2024-02-18 20:17:04', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1759190340517199872, 1759190066511708160, 'WalletRecordType', 'close_refund', '退款关闭', b'1', 5.00, '', 1399985191002447872, '2024-02-18 20:17:16', 1399985191002447872, '2024-02-19 17:31:26', 1, 0);
-INSERT INTO `base_dict_item` VALUES (1759190472654553088, 1759190427897135104, 'VoucherRecordType', 'import', '导入', b'1', 1.00, '', 1399985191002447872, '2024-02-18 20:17:48', 1399985191002447872, '2024-02-18 20:17:48', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1759190506087350272, 1759190427897135104, 'VoucherRecordType', 'pay', '支付', b'1', 2.00, '', 1399985191002447872, '2024-02-18 20:17:55', 1399985191002447872, '2024-02-18 20:18:16', 0, 1);
-INSERT INTO `base_dict_item` VALUES (1759190574865547264, 1759190427897135104, 'VoucherRecordType', 'refund', '退款', b'1', 3.00, '', 1399985191002447872, '2024-02-18 20:18:12', 1399985191002447872, '2024-02-18 20:18:12', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1759190633921347584, 1759190427897135104, 'VoucherRecordType', 'close_pay', '支付关闭', b'1', 4.00, '', 1399985191002447872, '2024-02-18 20:18:26', 1399985191002447872, '2024-02-18 20:18:26', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1759190717757095936, 1759190427897135104, 'VoucherRecordType', 'close_refund', '退款关闭', b'1', 5.00, '', 1399985191002447872, '2024-02-18 20:18:46', 1399985191002447872, '2024-02-19 17:31:20', 1, 0);
-INSERT INTO `base_dict_item` VALUES (1759190820500766720, 1759190780252225536, 'CashRecordType', 'pay', '支付', b'1', 1.00, '', 1399985191002447872, '2024-02-18 20:19:10', 1399985191002447872, '2024-02-18 20:19:39', 0, 1);
-INSERT INTO `base_dict_item` VALUES (1759190850754281472, 1759190780252225536, 'CashRecordType', 'refund', '退款', b'1', 2.00, '', 1399985191002447872, '2024-02-18 20:19:18', 1399985191002447872, '2024-02-18 20:19:42', 0, 1);
-INSERT INTO `base_dict_item` VALUES (1759190884061249536, 1759190780252225536, 'CashRecordType', 'close_pay', '支付关闭', b'1', 3.00, '', 1399985191002447872, '2024-02-18 20:19:26', 1399985191002447872, '2024-02-18 20:19:46', 0, 1);
-INSERT INTO `base_dict_item` VALUES (1759190913261993984, 1759190780252225536, 'CashrRecordType', 'close_refund', '退款关闭', b'1', 4.00, '', 1399985191002447872, '2024-02-18 20:19:33', 1399985191002447872, '2024-02-19 17:31:15', 1, 1);
-INSERT INTO `base_dict_item` VALUES (1759514962507554816, 1759190066511708160, 'WalletRecordType', 'recharge', '充值', b'1', 11.00, '', 1399985191002447872, '2024-02-19 17:47:12', 1399985191002447872, '2024-02-19 17:47:12', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1759515000520531968, 1759190066511708160, 'WalletRecordType', 'deduct', '扣减', b'1', 12.00, '', 1399985191002447872, '2024-02-19 17:47:21', 1399985191002447872, '2024-02-19 17:47:21', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1761434142275497984, 1761434095349624832, 'ClientNoticeType', 'pay', '支付通知', b'1', 1.00, '', 1399985191002447872, '2024-02-25 00:53:20', 1399985191002447872, '2024-02-25 00:53:20', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1761434179445420032, 1761434095349624832, 'ClientNoticeType', 'refund', '退款通知', b'1', 2.00, '', 1399985191002447872, '2024-02-25 00:53:29', 1399985191002447872, '2024-02-25 00:53:29', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1761434308537708544, 1761434264858226688, 'ClientNoticeSendType', 'auto', '自动发送', b'1', 0.00, '', 1399985191002447872, '2024-02-25 00:54:00', 1399985191002447872, '2024-02-25 00:54:00', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1761434346206752768, 1761434264858226688, 'ClientNoticeSendType', 'manual', '手动发送', b'1', 1.00, '', 1399985191002447872, '2024-02-25 00:54:09', 1399985191002447872, '2024-02-25 00:54:09', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1761581686381080576, 1761581634023583744, 'AlipayRecordType', 'pay', '支付', b'1', 0.00, '', 1399985191002447872, '2024-02-25 10:39:37', 1399985191002447872, '2024-02-25 10:39:37', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1761581731029446656, 1761581634023583744, 'AlipayRecordType', 'refund', '退款', b'1', 1.00, '', 1399985191002447872, '2024-02-25 10:39:48', 1399985191002447872, '2024-02-25 10:39:48', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1761588368863645696, 1761588314480300032, 'WechatPayRecordType', 'pay', '支付', b'1', 0.00, '', 1399985191002447872, '2024-02-25 11:06:11', 1399985191002447872, '2024-02-25 11:06:11', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1761588397825314816, 1761588314480300032, 'WechatPayRecordType', 'refund', '退款', b'1', 0.00, '', 1399985191002447872, '2024-02-25 11:06:17', 1399985191002447872, '2024-02-25 11:06:17', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1763588081838182400, 1763588034467713024, 'ReconcileDiffType', 'local_not_exists', '本地订单不存在', b'1', 0.00, '', 1399985191002447872, '2024-03-01 23:32:19', 1399985191002447872, '2024-03-01 23:32:19', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1763588123143688192, 1763588034467713024, 'ReconcileDiffType', 'remote_not_exists', '远程订单不存在', b'1', 1.00, '', 1399985191002447872, '2024-03-01 23:32:29', 1399985191002447872, '2024-03-01 23:32:29', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1763588174695878656, 1763588034467713024, 'ReconcileDiffType', 'not_match', '订单信息不一致', b'1', 2.00, '', 1399985191002447872, '2024-03-01 23:32:41', 1399985191002447872, '2024-03-01 23:32:48', 0, 1);
-INSERT INTO `base_dict_item` VALUES (1766713657021157376, 1766713545981153280, 'UnionPaySignType', 'RSA2', 'RSA2', b'1', 0.00, '', 1399985191002447872, '2024-03-10 14:32:14', 1399985191002447872, '2024-03-10 14:32:14', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1768206502721449984, 1768206399071809536, 'UnionPayRecordType', 'pay', '支付', b'1', 1.00, '', 1399985191002447872, '2024-03-14 17:24:17', 1399985191002447872, '2024-03-14 17:24:17', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1768206547285929984, 1768206399071809536, 'UnionPayRecordType', 'refund', '退款', b'1', 0.00, '', 1399985191002447872, '2024-03-14 17:24:27', 1399985191002447872, '2024-03-14 17:24:27', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1775122126567559168, 1775112798259302400, 'AllocReceiverType', 'wx_personal', '个人', b'1', 1.00, '', 1399985191002447872, '2024-04-02 19:24:30', 1399985191002447872, '2024-04-02 19:24:30', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1775122171861848064, 1775112798259302400, 'AllocReceiverType', 'wx_merchant', '商户', b'1', 2.00, '', 1399985191002447872, '2024-04-02 19:24:41', 1399985191002447872, '2024-04-02 19:24:41', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1775122227956469760, 1775112798259302400, 'AllocReceiverType', 'ali_user_id', '用户ID', b'1', 3.00, '', 1399985191002447872, '2024-04-02 19:24:54', 1399985191002447872, '2024-04-02 19:25:53', 0, 1);
-INSERT INTO `base_dict_item` VALUES (1775122278170677248, 1775112798259302400, 'AllocReceiverType', 'ali_open_id', '登录号', b'1', 4.00, '', 1399985191002447872, '2024-04-02 19:25:06', 1399985191002447872, '2024-04-02 19:25:06', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1775122427802472448, 1775112798259302400, 'AllocReceiverType', 'ali_login_name', '账号', b'1', 5.00, '', 1399985191002447872, '2024-04-02 19:25:42', 1399985191002447872, '2024-04-02 19:25:42', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1775122672623996928, 1775122632706805760, 'AllocRelationType', 'SERVICE_PROVIDER', '服务商', b'1', 1.00, '', 1399985191002447872, '2024-04-02 19:26:40', 1399985191002447872, '2024-04-02 19:26:40', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1775122710884438016, 1775122632706805760, 'AllocRelationType', 'STORE', '门店', b'1', 2.00, '', 1399985191002447872, '2024-04-02 19:26:49', 1399985191002447872, '2024-04-02 19:26:49', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1775122750612885504, 1775122632706805760, 'AllocRelationType', 'STAFF', '员工', b'1', 3.00, '', 1399985191002447872, '2024-04-02 19:26:59', 1399985191002447872, '2024-04-02 19:26:59', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1775122847035740160, 1775122632706805760, 'AllocRelationType', 'STORE_OWNER', '店主', b'1', 4.00, '', 1399985191002447872, '2024-04-02 19:27:22', 1399985191002447872, '2024-04-02 19:27:22', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1775122892464246784, 1775122632706805760, 'AllocRelationType', 'PARTNER', '合作伙伴', b'1', 5.00, '', 1399985191002447872, '2024-04-02 19:27:32', 1399985191002447872, '2024-04-02 19:27:32', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1775122934138851328, 1775122632706805760, 'AllocRelationType', 'HEADQUARTER', '总部', b'1', 6.00, '', 1399985191002447872, '2024-04-02 19:27:42', 1399985191002447872, '2024-04-02 19:27:42', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1775123560512016384, 1775122632706805760, 'AllocRelationType', 'DISTRIBUTOR', '分销商', b'1', 7.00, '', 1399985191002447872, '2024-04-02 19:30:12', 1399985191002447872, '2024-04-02 19:30:12', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1775123607781822464, 1775122632706805760, 'AllocRelationType', 'USER', '用户', b'1', 8.00, '', 1399985191002447872, '2024-04-02 19:30:23', 1399985191002447872, '2024-04-02 19:30:23', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1775123654527340544, 1775122632706805760, 'AllocRelationType', 'SUPPLIER', '供应商', b'1', 9.00, '', 1399985191002447872, '2024-04-02 19:30:34', 1399985191002447872, '2024-04-02 19:30:34', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1775123705886593024, 1775122632706805760, 'AllocRelationType', 'CUSTOM', '自定义', b'1', 10.00, '', 1399985191002447872, '2024-04-02 19:30:46', 1399985191002447872, '2024-04-02 19:30:46', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1777700713809522688, 1777697358802530304, 'AllocOrderStatus', 'waiting', '待分账', b'1', 1.00, '', 1399985191002447872, '2024-04-09 22:10:53', 1399985191002447872, '2024-04-09 22:10:53', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1777700750744563712, 1777697358802530304, 'AllocOrderStatus', 'allocation_processing', '分账处理中', b'1', 2.00, '', 1399985191002447872, '2024-04-09 22:11:02', 1399985191002447872, '2024-04-16 17:14:53', 0, 1);
-INSERT INTO `base_dict_item` VALUES (1777700787453112320, 1777697358802530304, 'AllocOrderStatus', 'allocation_end', '分账完成', b'1', 3.00, '', 1399985191002447872, '2024-04-09 22:11:10', 1399985191002447872, '2024-04-16 17:36:25', 0, 2);
-INSERT INTO `base_dict_item` VALUES (1777700835826020352, 1777697358802530304, 'AllocOrderStatus', 'allocation_failed', '分账失败', b'1', 4.00, '', 1399985191002447872, '2024-04-09 22:11:22', 1399985191002447872, '2024-04-16 17:16:34', 0, 2);
-INSERT INTO `base_dict_item` VALUES (1777700870613577728, 1777697358802530304, 'AllocOrderStatus', 'finish', '分账完结', b'1', 5.00, '', 1399985191002447872, '2024-04-09 22:11:30', 1399985191002447872, '2024-04-16 17:17:06', 0, 1);
-INSERT INTO `base_dict_item` VALUES (1777700915450687488, 1777697358802530304, 'AllocationStatus', 'partial_failed', '部分分账失败', b'1', 6.00, '', 1399985191002447872, '2024-04-09 22:11:41', 1399985191002447872, '2024-04-16 17:16:49', 1, 1);
-INSERT INTO `base_dict_item` VALUES (1777700964087836672, 1777697358802530304, 'AllocOrderStatus', 'finish_failed', '分账完结失败', b'1', 6.00, '', 1399985191002447872, '2024-04-09 22:11:53', 1399985191002447872, '2024-04-16 17:17:25', 0, 1);
-INSERT INTO `base_dict_item` VALUES (1777701030081015808, 1777697358802530304, 'AllocationStatus', 'closed', '分账关闭', b'1', 8.00, '', 1399985191002447872, '2024-04-09 22:12:08', 1399985191002447872, '2024-04-16 17:16:19', 1, 0);
-INSERT INTO `base_dict_item` VALUES (1777701090676125696, 1777697358802530304, 'AllocationStatus', 'unknown', '分账状态未知', b'1', 9.00, '', 1399985191002447872, '2024-04-09 22:12:23', 1399985191002447872, '2024-04-16 17:16:16', 1, 0);
-INSERT INTO `base_dict_item` VALUES (1780164864510623744, 1780163691808391168, 'AllocDetailResult', 'pending', '待分账', b'1', 1.00, '', 1399985191002447872, '2024-04-16 17:22:32', 1399985191002447872, '2024-04-16 17:22:32', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1780164903886749696, 1780163691808391168, 'AllocDetailResult', 'success', '分账成功', b'1', 2.00, '', 1399985191002447872, '2024-04-16 17:22:42', 1399985191002447872, '2024-04-16 17:22:42', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1780164940712738816, 1780163691808391168, 'AllocDetailResult', 'fail', '分账失败', b'1', 0.00, '', 1399985191002447872, '2024-04-16 17:22:50', 1399985191002447872, '2024-04-16 17:22:50', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1780165545665593344, 1780165499633106944, 'AllocOrderResult', 'all_pending', '全部处理中', b'1', 0.00, '', 1399985191002447872, '2024-04-16 17:25:15', 1399985191002447872, '2024-05-14 16:40:30', 0, 1);
-INSERT INTO `base_dict_item` VALUES (1780165581623361536, 1780165499633106944, 'AllocOrderResult', 'all_success', '全部成功', b'1', 1.00, '', 1399985191002447872, '2024-04-16 17:25:23', 1399985191002447872, '2024-04-16 17:25:23', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1780165617413357568, 1780165499633106944, 'AllocOrderResult', 'part_success', '部分成功', b'1', 2.00, '', 1399985191002447872, '2024-04-16 17:25:32', 1399985191002447872, '2024-04-16 17:25:32', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1780165653350154240, 1780165499633106944, 'AllocOrderResult', 'all_failed', '全部失败', b'1', 3.00, '', 1399985191002447872, '2024-04-16 17:25:40', 1399985191002447872, '2024-04-16 17:25:40', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1780165986231091200, 1780165929528295424, 'PayOrderAllocationStatus', 'waiting', '待分账', b'1', 1.00, '', 1399985191002447872, '2024-04-16 17:27:00', 1399985191002447872, '2024-04-16 17:27:00', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1780166037149941760, 1780165929528295424, 'PayOrderAllocationStatus', 'allocation', '已分账', b'1', 2.00, '', 1399985191002447872, '2024-04-16 17:27:12', 1399985191002447872, '2024-04-16 17:27:12', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1786399594956660736, 1786399552686465024, 'ReconcileResult', 'consistent', '一致', b'1', 0.00, '', 1399985191002447872, '2024-05-03 22:17:08', 1399985191002447872, '2024-05-03 22:17:08', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1786399681275437056, 1786399552686465024, 'ReconcileResult', 'inconsistent', '不一致', b'1', 1.00, '', 1399985191002447872, '2024-05-03 22:17:28', 1399985191002447872, '2024-05-03 22:17:28', 0, 0);
-
--- ----------------------------
--- Table structure for base_dynamic_data_source
--- ----------------------------
-DROP TABLE IF EXISTS `base_dynamic_data_source`;
-CREATE TABLE `base_dynamic_data_source`  (
-                                             `id` bigint(20) NOT NULL,
-                                             `code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '数据源编码',
-                                             `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '数据源名称',
-                                             `database_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '数据库类型',
-                                             `auto_load` bit(1) NULL DEFAULT NULL COMMENT '是否启动自动加载',
-                                             `db_driver` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '驱动类',
-                                             `db_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '数据库地址',
-                                             `db_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '数据库名称',
-                                             `db_username` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '用户名',
-                                             `db_password` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '密码',
-                                             `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '备注',
-                                             `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建人',
-                                             `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
-                                             `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修改人',
-                                             `last_modified_time` datetime NULL DEFAULT NULL COMMENT '最后修改时间',
-                                             `version` int(11) NOT NULL COMMENT '版本',
-                                             `deleted` tinyint(1) NOT NULL DEFAULT 0 COMMENT '0:未删除。1:已删除',
-                                             PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '动态数据源管理' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of base_dynamic_data_source
--- ----------------------------
-
--- ----------------------------
--- Table structure for base_key_value
--- ----------------------------
-DROP TABLE IF EXISTS `base_key_value`;
-CREATE TABLE `base_key_value`  (
-                                   `id` bigint(20) NOT NULL,
-                                   `key` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '参数键名',
-                                   `value` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '参数值',
-                                   `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建人',
-                                   `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
-                                   `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '更新人',
-                                   `last_modified_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
-                                   `deleted` tinyint(1) NOT NULL DEFAULT 0 COMMENT '0:未删除。1:已删除',
-                                   `version` int(8) NOT NULL COMMENT '版本',
-                                   PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = 'kv存储' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of base_key_value
--- ----------------------------
-
--- ----------------------------
--- Table structure for base_param
--- ----------------------------
-DROP TABLE IF EXISTS `base_param`;
-CREATE TABLE `base_param`  (
-                               `id` bigint(20) NOT NULL,
-                               `name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '参数名称',
-                               `param_key` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '参数键名',
-                               `value` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '参数值',
-                               `type` int(4) NULL DEFAULT NULL COMMENT '参数类型',
-                               `enable` bit(1) NOT NULL DEFAULT b'1' COMMENT '启用状态',
-                               `internal` bit(1) NOT NULL COMMENT '内置参数',
-                               `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
-                               `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建人',
-                               `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
-                               `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '更新人',
-                               `last_modified_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
-                               `deleted` tinyint(1) NOT NULL DEFAULT 0 COMMENT '0:未删除。1:已删除',
-                               `version` int(8) NOT NULL COMMENT '版本',
-                               PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '系统参数配置' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of base_param
--- ----------------------------
-INSERT INTO `base_param` VALUES (1452842684284891136, '测试', 'test.v1', '123', 1, b'1', b'0', NULL, 1399985191002447872, '2021-10-26 11:41:03', 1399985191002447872, '2024-01-07 23:31:08', 1, 0);
-INSERT INTO `base_param` VALUES (1529281530059161600, 'websocket服务器地址', 'WebsocketServerUrl', 'ws://127.0.0.1:9000', 1, b'1', b'1', '', 1399985191002447872, '2022-05-25 10:01:44', 1399985191002447872, '2024-02-27 13:10:12', 0, 4);
-INSERT INTO `base_param` VALUES (1545765299880448000, '服务器地址', 'ServerUrl', 'https://localhost', 1, b'1', b'1', '优先级高于配置文件内进行的配置', 1399985191002447872, '2022-07-09 21:42:21', 1399985191002447872, '2024-01-07 23:31:20', 0, 2);
-
--- ----------------------------
--- Table structure for base_province
--- ----------------------------
-DROP TABLE IF EXISTS `base_province`;
-CREATE TABLE `base_province`  (
-                                  `code` char(2) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '省份编码',
-                                  `name` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '省份名称',
-                                  PRIMARY KEY (`code`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '省份表' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of base_province
--- ----------------------------
-
--- ----------------------------
--- Table structure for base_street
--- ----------------------------
-DROP TABLE IF EXISTS `base_street`;
-CREATE TABLE `base_street`  (
-                                `code` char(9) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '编码',
-                                `name` varchar(60) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '街道名称',
-                                `area_code` char(6) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '0' COMMENT '县区编码',
-                                PRIMARY KEY (`code`) USING BTREE,
-                                INDEX `inx_area_code`(`area_code`) USING BTREE COMMENT '县区'
-) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '街道表' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of base_street
--- ----------------------------
-
--- ----------------------------
--- Table structure for base_village
--- ----------------------------
-DROP TABLE IF EXISTS `base_village`;
-CREATE TABLE `base_village`  (
-                                 `code` char(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT '编码',
-                                 `name` varchar(55) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT '名称',
-                                 `street_code` char(9) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT '社区/乡镇编码',
-                                 PRIMARY KEY (`code`) USING BTREE,
-                                 INDEX `inx_street_code`(`street_code`) USING BTREE COMMENT '所属街道索引'
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '村庄/社区' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of base_village
--- ----------------------------
-
--- ----------------------------
--- Table structure for common_sequence_range
--- ----------------------------
-DROP TABLE IF EXISTS `common_sequence_range`;
-CREATE TABLE `common_sequence_range`  (
-                                          `id` bigint(20) NOT NULL COMMENT '主键',
-                                          `range_key` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '区间key',
-                                          `range_value` bigint(20) NOT NULL COMMENT '区间开始值',
-                                          `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建人',
-                                          `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
-                                          `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修改人',
-                                          `last_modified_time` datetime NULL DEFAULT NULL COMMENT '最后修改时间',
-                                          `version` int(11) NOT NULL COMMENT '版本',
-                                          `deleted` tinyint(1) NOT NULL DEFAULT 0 COMMENT '0:未删除。1:已删除',
-                                          PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '序列生成器队列区间管理' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of common_sequence_range
--- ----------------------------
-
--- ----------------------------
--- Table structure for ddl_history
--- ----------------------------
-DROP TABLE IF EXISTS `ddl_history`;
-CREATE TABLE `ddl_history`  (
-                                `script` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '脚本',
-                                `type` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '类型',
-                                `version` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '版本',
-                                PRIMARY KEY (`script`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = 'DDL 版本' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of ddl_history
--- ----------------------------
-
--- ----------------------------
--- Table structure for iam_client
--- ----------------------------
-DROP TABLE IF EXISTS `iam_client`;
-CREATE TABLE `iam_client`  (
-                               `id` bigint(20) NOT NULL COMMENT '主键',
-                               `code` varchar(21) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '编码',
-                               `name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '名称',
-                               `internal` bit(1) NOT NULL COMMENT '是否系统内置',
-                               `enable` bit(1) NOT NULL COMMENT '是否可用',
-                               `default_endow` bit(1) NULL DEFAULT NULL COMMENT '新注册的用户是否默认赋予该终端',
-                               `login_type_ids` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '关联登录方式\r\n',
-                               `description` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '描述',
-                               `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-                               `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
-                               `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修者ID',
-                               `last_modified_time` datetime NULL DEFAULT NULL COMMENT '最后修改时间',
-                               `version` int(11) NOT NULL COMMENT '乐观锁',
-                               `deleted` bit(1) NOT NULL COMMENT '删除标志',
-                               PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '认证终端' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of iam_client
--- ----------------------------
-INSERT INTO `iam_client` VALUES (1580487061605175296, 'dax-pay', '支付网关', b'0', b'1', b'1', '1430430071299207168,1430478946919653376,1435138582839009280,1542091599907115008,1542804450312122368,1543126042909016064', '支付网关管理端', 1399985191002447872, '2022-10-13 17:14:14', 1399985191002447872, '2023-10-19 19:58:21', 3, b'0');
-
--- ----------------------------
--- Table structure for iam_data_role
--- ----------------------------
-DROP TABLE IF EXISTS `iam_data_role`;
-CREATE TABLE `iam_data_role`  (
-                                  `id` bigint(20) NOT NULL COMMENT '角色ID',
-                                  `code` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '编码',
-                                  `name` varchar(150) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '名称',
-                                  `type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '类型',
-                                  `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '说明',
-                                  `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建人',
-                                  `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
-                                  `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修改人',
-                                  `last_modified_time` datetime NULL DEFAULT NULL COMMENT '最后修改时间',
-                                  `version` int(11) NOT NULL COMMENT '版本',
-                                  `deleted` tinyint(1) NOT NULL DEFAULT 0 COMMENT '0:未删除。1:已删除',
-                                  PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '数据范围权限' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of iam_data_role
--- ----------------------------
-
--- ----------------------------
--- Table structure for iam_data_role_dept
--- ----------------------------
-DROP TABLE IF EXISTS `iam_data_role_dept`;
-CREATE TABLE `iam_data_role_dept`  (
-                                       `id` bigint(20) NOT NULL,
-                                       `role_id` bigint(20) NOT NULL COMMENT '数据角色id',
-                                       `dept_id` bigint(20) NOT NULL COMMENT '部门id',
-                                       PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '数据范围部门关联配置' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of iam_data_role_dept
--- ----------------------------
-
--- ----------------------------
--- Table structure for iam_data_role_user
--- ----------------------------
-DROP TABLE IF EXISTS `iam_data_role_user`;
-CREATE TABLE `iam_data_role_user`  (
-                                       `id` bigint(20) NOT NULL,
-                                       `role_id` bigint(20) NOT NULL COMMENT '数据角色id',
-                                       `user_id` bigint(20) NOT NULL COMMENT '用户id',
-                                       PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '数据范围用户关联配置' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of iam_data_role_user
--- ----------------------------
-
--- ----------------------------
--- Table structure for iam_dept
--- ----------------------------
-DROP TABLE IF EXISTS `iam_dept`;
-CREATE TABLE `iam_dept`  (
-                             `id` bigint(20) NOT NULL COMMENT 'ID',
-                             `parent_id` bigint(20) NULL DEFAULT NULL COMMENT '父机构ID',
-                             `dept_name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '机构/部门名称',
-                             `sort_no` int(11) NOT NULL DEFAULT 0 COMMENT '排序',
-                             `org_category` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '1' COMMENT '机构类别 1公司 2部门 3岗位',
-                             `org_code` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '机构编码',
-                             `mobile` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '手机号',
-                             `fax` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '传真',
-                             `address` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '地址',
-                             `remark` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '备注',
-                             `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建人',
-                             `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
-                             `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修改人',
-                             `last_modified_time` datetime NULL DEFAULT NULL COMMENT '最后修改时间',
-                             `version` int(11) NOT NULL COMMENT '版本',
-                             `deleted` tinyint(1) NOT NULL DEFAULT 0 COMMENT '0:未删除。1:已删除',
-                             PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '部门组织机构表' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of iam_dept
--- ----------------------------
-
--- ----------------------------
--- Table structure for iam_login_security_config
--- ----------------------------
-DROP TABLE IF EXISTS `iam_login_security_config`;
-CREATE TABLE `iam_login_security_config`  (
-                                              `id` bigint(20) NOT NULL COMMENT '主键',
-                                              `client_id` bigint(20) NULL DEFAULT NULL COMMENT '关联终端ID',
-                                              `require_login_change_pwd` bit(1) NULL DEFAULT NULL COMMENT '修改密码是否需要重新登录',
-                                              `captcha_enable` bit(1) NULL DEFAULT NULL COMMENT '默认启用验证码',
-                                              `max_captcha_error_count` int(11) NULL DEFAULT NULL COMMENT '出现验证码的错误次数',
-                                              `allow_multi_login` bit(1) NULL DEFAULT NULL COMMENT '同端是否允许同时登录',
-                                              `allow_multi_terminal_login` bit(1) NULL DEFAULT NULL COMMENT '多终端是否允许同时登录',
-                                              `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-                                              `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
-                                              `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修者ID',
-                                              `last_modified_time` datetime NULL DEFAULT NULL COMMENT '最后修改时间',
-                                              `version` int(11) NOT NULL COMMENT '乐观锁',
-                                              `deleted` bit(1) NOT NULL COMMENT '删除标志',
-                                              PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '登录安全策略' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of iam_login_security_config
--- ----------------------------
-
--- ----------------------------
--- Table structure for iam_login_type
--- ----------------------------
-DROP TABLE IF EXISTS `iam_login_type`;
-CREATE TABLE `iam_login_type`  (
-                                   `id` bigint(20) NOT NULL COMMENT '主键',
-                                   `code` varchar(21) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '编码',
-                                   `name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '名称',
-                                   `type` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '类型',
-                                   `internal` bit(1) NOT NULL COMMENT '是否系统内置',
-                                   `timeout` bigint(11) NULL DEFAULT NULL COMMENT '在线时长(秒)',
-                                   `captcha_type` varchar(8) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '验证码类型',
-                                   `captcha` bit(1) NOT NULL COMMENT '启用验证码',
-                                   `enable` bit(1) NOT NULL COMMENT '是否可用',
-                                   `description` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '描述',
-                                   `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-                                   `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
-                                   `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修者ID',
-                                   `last_modified_time` datetime NULL DEFAULT NULL COMMENT '最后修改时间',
-                                   `version` int(11) NOT NULL COMMENT '乐观锁',
-                                   `deleted` bit(1) NOT NULL COMMENT '删除标志',
-                                   PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '登录方式' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of iam_login_type
--- ----------------------------
-INSERT INTO `iam_login_type` VALUES (1430430071299207168, 'password', '账号密码登陆', 'password', b'1', 3600, '-1', b'0', b'1', NULL, 1399985191002447872, '2021-08-25 15:21:20', 1399985191002447872, '2022-11-03 22:24:53', 20, b'0');
-INSERT INTO `iam_login_type` VALUES (1435138582839009280, 'phone', '手机短信登录', 'openId', b'0', 3600, '0', b'0', b'1', NULL, 1399985191002447872, '2021-09-07 15:11:16', 1399985191002447872, '2022-07-16 12:32:19', 5, b'0');
-INSERT INTO `iam_login_type` VALUES (1542091599907115008, 'dingTalk', '钉钉', 'openId', b'0', 5, '-1', b'0', b'1', '', 1399985191002447872, '2022-06-29 18:24:23', 1399985191002447872, '2022-07-02 14:55:01', 5, b'0');
-INSERT INTO `iam_login_type` VALUES (1542804450312122368, 'weCom', '企业微信', 'openId', b'0', 5, '-1', b'0', b'1', '', 1399985191002447872, '2022-07-01 17:37:00', 1399985191002447872, '2022-07-01 17:37:00', 0, b'0');
-INSERT INTO `iam_login_type` VALUES (1543126042909016064, 'weChat', '微信登录', 'openId', b'0', 5, '-1', b'0', b'1', '', 1399985191002447872, '2022-07-02 14:54:53', 0, '2022-10-12 22:15:05', 2, b'0');
-
--- ----------------------------
--- Table structure for iam_password_change_history
--- ----------------------------
-DROP TABLE IF EXISTS `iam_password_change_history`;
-CREATE TABLE `iam_password_change_history`  (
-                                                `id` bigint(20) NOT NULL COMMENT '主键',
-                                                `user_id` bigint(20) NULL DEFAULT NULL COMMENT '用户Id',
-                                                `password` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '密码',
-                                                `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-                                                `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
-                                                PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '密码更改历史' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of iam_password_change_history
--- ----------------------------
-
--- ----------------------------
--- Table structure for iam_password_login_fail_record
--- ----------------------------
-DROP TABLE IF EXISTS `iam_password_login_fail_record`;
-CREATE TABLE `iam_password_login_fail_record`  (
-                                                   `id` bigint(20) NOT NULL COMMENT '主键',
-                                                   `user_id` bigint(20) NULL DEFAULT NULL COMMENT '用户id',
-                                                   `fail_count` int(11) NULL DEFAULT NULL COMMENT '登录失败次数',
-                                                   `fail_time` datetime NULL DEFAULT NULL COMMENT '登录失败时间',
-                                                   `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-                                                   `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
-                                                   `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修者ID',
-                                                   `last_modified_time` datetime NULL DEFAULT NULL COMMENT '最后修改时间',
-                                                   `version` int(11) NOT NULL COMMENT '乐观锁',
-                                                   `deleted` bit(1) NOT NULL COMMENT '删除标志',
-                                                   PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '密码登录失败记录' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of iam_password_login_fail_record
--- ----------------------------
-
--- ----------------------------
--- Table structure for iam_password_security_config
--- ----------------------------
-DROP TABLE IF EXISTS `iam_password_security_config`;
-CREATE TABLE `iam_password_security_config`  (
-                                                 `id` bigint(20) NOT NULL COMMENT '主键',
-                                                 `max_pwd_error_count` int(11) NULL DEFAULT NULL COMMENT '最大密码错误数',
-                                                 `error_lock_time` int(11) NULL DEFAULT NULL COMMENT '密码错误锁定时间(分钟)',
-                                                 `require_change_pwd` bit(1) NULL DEFAULT NULL COMMENT '强制修改初始密码',
-                                                 `update_frequency` int(11) NULL DEFAULT NULL COMMENT '更新频率',
-                                                 `expire_remind` int(11) NULL DEFAULT NULL COMMENT '到期提醒(天数)',
-                                                 `same_as_login_name` bit(1) NULL DEFAULT NULL COMMENT '与登录名相同',
-                                                 `recent_password` int(11) NULL DEFAULT NULL COMMENT '不能与近期多少次密码相同',
-                                                 `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-                                                 `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
-                                                 `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修者ID',
-                                                 `last_modified_time` datetime NULL DEFAULT NULL COMMENT '最后修改时间',
-                                                 `version` int(11) NOT NULL COMMENT '乐观锁',
-                                                 `deleted` bit(1) NOT NULL COMMENT '删除标志',
-                                                 PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '密码安全策略' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of iam_password_security_config
--- ----------------------------
-INSERT INTO `iam_password_security_config` VALUES (1714844168393515008, 9999999, 10, b'1', 9999999, 14, b'0', 5, 1399985191002447872, '2023-10-19 11:21:25', 1399985191002447872, '2023-11-29 12:10:21', 2, b'0');
-
--- ----------------------------
--- Table structure for iam_perm_menu
--- ----------------------------
-DROP TABLE IF EXISTS `iam_perm_menu`;
-CREATE TABLE `iam_perm_menu`  (
-                                  `id` bigint(20) NOT NULL,
-                                  `client_code` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '终端code',
-                                  `parent_id` bigint(20) NULL DEFAULT NULL COMMENT '父id',
-                                  `title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '菜单名称',
-                                  `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '路由名称',
-                                  `perm_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '菜单权限编码',
-                                  `effect` bit(1) NULL DEFAULT NULL COMMENT '是否有效',
-                                  `icon` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '菜单图标',
-                                  `hidden` bit(1) NOT NULL COMMENT '是否隐藏',
-                                  `hide_children_in_menu` bit(1) NOT NULL COMMENT '是否隐藏子菜单',
-                                  `component` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '组件',
-                                  `component_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '组件名字',
-                                  `path` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '路径',
-                                  `redirect` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '菜单跳转地址(重定向)',
-                                  `sort_no` double NOT NULL COMMENT '菜单排序',
-                                  `menu_type` int(5) NOT NULL COMMENT '类型(0:一级菜单;1:子菜单 ;2:按钮权限)',
-                                  `leaf` bit(1) NULL DEFAULT NULL COMMENT '是否叶子节点',
-                                  `keep_alive` bit(1) NULL DEFAULT NULL COMMENT '是否缓存页面',
-                                  `target_outside` bit(1) NULL DEFAULT NULL COMMENT '是否外部打开方式',
-                                  `hidden_header_content` bit(1) NULL DEFAULT NULL COMMENT '隐藏的标题内容',
-                                  `admin` bit(1) NOT NULL COMMENT '系统菜单',
-                                  `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '描述',
-                                  `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建人',
-                                  `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
-                                  `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修改人',
-                                  `last_modified_time` datetime NULL DEFAULT NULL COMMENT '最后修改时间',
-                                  `version` int(11) NOT NULL COMMENT '版本',
-                                  `deleted` tinyint(1) NOT NULL DEFAULT 0 COMMENT '0:未删除。1:已删除',
-                                  PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '权限_菜单' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of iam_perm_menu
--- ----------------------------
-INSERT INTO `iam_perm_menu` VALUES (1580740450633101312, 'dax-pay', NULL, '系统管理', 'System', NULL, b'0', 'ant-design:setting-outlined', b'0', b'0', 'Layout', NULL, '/system', '/system1/client', -99999, 0, NULL, b'1', b'0', b'0', b'0', NULL, 1399985191002447872, '2022-10-14 10:01:07', 1414143554414059520, '2022-10-18 15:32:09', 4, 0);
-INSERT INTO `iam_perm_menu` VALUES (1580740637841666048, 'dax-pay', 1582253306356649984, '终端管理', 'ClientList', NULL, b'0', '', b'0', b'0', '/modules/system/client/ClientList.vue', NULL, '/system/client', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1399985191002447872, '2022-10-14 10:01:51', 1414143554414059520, '2022-10-18 14:13:27', 5, 0);
-INSERT INTO `iam_perm_menu` VALUES (1580740758629232640, 'dax-pay', 1582253306356649984, '登录方式', 'LoginTypeList', NULL, b'0', '', b'0', b'0', '/modules/system/loginType/LoginTypeList.vue', NULL, '/system/loginType', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1399985191002447872, '2022-10-14 10:02:20', 1414143554414059520, '2022-10-18 14:13:40', 5, 0);
-INSERT INTO `iam_perm_menu` VALUES (1580928436300337152, 'dax-pay', 1580740450633101312, '菜单管理', 'MenuList', NULL, b'0', '', b'0', b'0', '/modules/system/menu/MenuList.vue', NULL, '/system/menu', '', -99, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1399985191002447872, '2022-10-14 22:28:06', 1399985191002447872, '2022-10-14 22:28:32', 1, 0);
-INSERT INTO `iam_perm_menu` VALUES (1582249924602580992, 'dax-pay', 1580740450633101312, '权限管理', 'Permission', NULL, b'0', '', b'0', b'0', 'Layout', NULL, '/system/permission', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-18 13:59:13', 1414143554414059520, '2022-10-18 13:59:13', 0, 0);
-INSERT INTO `iam_perm_menu` VALUES (1582253011803262976, 'dax-pay', 1580740450633101312, '用户信息', 'UserAuth', NULL, b'0', '', b'0', b'0', 'Layout', NULL, '/system/user', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-18 14:11:30', 1414143554414059520, '2022-10-18 14:11:30', 0, 0);
-INSERT INTO `iam_perm_menu` VALUES (1582253152903843840, 'dax-pay', 1580740450633101312, '系统配置', 'SystemConfig', NULL, b'0', '', b'0', b'0', 'Layout', NULL, '/system/config', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-18 14:12:03', 1414143554414059520, '2022-10-18 14:12:03', 0, 0);
-INSERT INTO `iam_perm_menu` VALUES (1582253306356649984, 'dax-pay', 1580740450633101312, '认证管理', 'Auth', NULL, b'0', '', b'0', b'0', 'Layout', NULL, '/system/auth', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-18 14:12:40', 1414143554414059520, '2022-10-18 14:13:13', 1, 0);
-INSERT INTO `iam_perm_menu` VALUES (1582275875424129024, 'dax-pay', NULL, '系统监控', 'Monitor', NULL, b'0', 'ant-design:monitor-outlined', b'0', b'0', 'Layout', NULL, '/monitor', '', 0, 0, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-18 15:42:21', 1414143554414059520, '2022-10-19 17:29:29', 1, 0);
-INSERT INTO `iam_perm_menu` VALUES (1582275984849326080, 'dax-pay', NULL, '通知管理', 'Notice', NULL, b'0', 'ant-design:message-outlined', b'0', b'0', 'Layout', NULL, '/notice', '', 0, 0, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-18 15:42:47', 1414143554414059520, '2022-10-19 17:30:06', 1, 0);
-INSERT INTO `iam_perm_menu` VALUES (1582276092038959104, 'dax-pay', NULL, '第三方对接', 'Third', NULL, b'0', 'ant-design:api-twotone', b'0', b'0', 'Layout', NULL, '/third', '', 0, 0, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-18 15:43:12', 1414143554414059520, '2022-10-19 17:32:04', 1, 0);
-INSERT INTO `iam_perm_menu` VALUES (1582276341792985088, 'dax-pay', NULL, '开发管理', 'Develop', NULL, b'0', 'ant-design:apartment-outlined', b'0', b'0', 'Layout', NULL, '/develop', '', 0, 0, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-18 15:44:12', 1414143554414059520, '2022-10-19 15:24:22', 1, 0);
-INSERT INTO `iam_perm_menu` VALUES (1582277076421136384, 'dax-pay', 1582249924602580992, '角色管理', 'RoleList', NULL, b'0', '', b'0', b'0', '/modules/system/role/RoleList.vue', NULL, '/system/permission/role', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-18 15:47:07', 1414143554414059520, '2022-10-18 15:59:37', 1, 0);
-INSERT INTO `iam_perm_menu` VALUES (1582301940364308480, 'dax-pay', 1582249924602580992, '请求权限', 'PermPathList', NULL, b'0', '', b'0', b'0', '/modules/system/path/PermPathList.vue', NULL, '/system/permission/path', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-18 17:25:55', 1399985191002447872, '2023-11-29 13:57:56', 2, 0);
-INSERT INTO `iam_perm_menu` VALUES (1582302180999917568, 'dax-pay', 1582249924602580992, '数据角色', 'DataRoleList', NULL, b'0', '', b'0', b'0', '/modules/system/scope/DataRoleList.vue', NULL, '/system/permission/data', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-18 17:26:52', 1399985191002447872, '2023-11-28 21:02:57', 2, 0);
-INSERT INTO `iam_perm_menu` VALUES (1582302542955769856, 'dax-pay', 1582253011803262976, '用户管理', 'UserList', NULL, b'0', '', b'0', b'0', '/modules/system/user/UserList.vue', NULL, '/system/user/info', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-18 17:28:19', 1414143554414059520, '2022-10-18 17:28:19', 0, 0);
-INSERT INTO `iam_perm_menu` VALUES (1582302764129808384, 'dax-pay', 1582253011803262976, '部门管理', 'DeptList', NULL, b'0', '', b'0', b'0', '/modules/system/dept/DeptList.vue', NULL, '/system/user/dept', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-18 17:29:11', 1414143554414059520, '2022-10-18 17:32:26', 1, 0);
-INSERT INTO `iam_perm_menu` VALUES (1582303143110340608, 'dax-pay', 1582253152903843840, '数据字典', 'DictList', NULL, b'0', '', b'0', b'0', '/modules/system/dict/DictList.vue', NULL, '/system/config/dict', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-18 17:30:42', 1414143554414059520, '2022-10-18 17:30:42', 0, 0);
-INSERT INTO `iam_perm_menu` VALUES (1582303290070364160, 'dax-pay', 1582253152903843840, '定时任务', 'QuartzJobList', NULL, b'0', '', b'0', b'0', '/modules/baseapi/quartz/QuartzJobList.vue', NULL, '/system/config/quartz', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-18 17:31:17', 1414143554414059520, '2023-08-09 15:50:46', 2, 0);
-INSERT INTO `iam_perm_menu` VALUES (1582303447428067328, 'dax-pay', 1582253152903843840, '系统参数', 'SystemParamList', NULL, b'0', '', b'0', b'0', '/modules/system/param/SystemParamList.vue', NULL, '/system/config/param', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-18 17:31:54', 1414143554414059520, '2022-10-19 23:14:16', 1, 0);
-INSERT INTO `iam_perm_menu` VALUES (1582632873244172288, 'dax-pay', 1582276341792985088, '文件管理', 'FileUploadList', NULL, b'0', '', b'0', b'0', '/modules/develop/file/FileUploadList.vue', NULL, '/develop/file', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-19 15:20:56', 1414143554414059520, '2022-10-19 15:20:56', 0, 0);
-INSERT INTO `iam_perm_menu` VALUES (1583074308040925184, 'dax-pay', 1582275875424129024, '接口文档', 'ApiSwagger', NULL, b'0', '', b'0', b'0', '', NULL, 'http://127.0.0.1:9999/doc.html', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-20 20:35:02', 1414143554414059520, '2022-11-23 13:59:09', 2, 0);
-INSERT INTO `iam_perm_menu` VALUES (1583075229563068416, 'dax-pay', 1582275875424129024, '审计日志', 'AuditLog', NULL, b'0', '', b'0', b'0', 'Layout', NULL, '/monitor/log', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-20 20:38:42', 1414143554414059520, '2022-10-20 20:41:38', 2, 0);
-INSERT INTO `iam_perm_menu` VALUES (1583076217481043968, 'dax-pay', 1583075229563068416, '登录日志', 'LoginLogList', NULL, b'0', '', b'0', b'0', '/modules/monitor/login/LoginLogList.vue', NULL, '/monitor/log/login', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-20 20:42:37', 1414143554414059520, '2022-10-20 20:43:36', 1, 0);
-INSERT INTO `iam_perm_menu` VALUES (1583076424935514112, 'dax-pay', 1583075229563068416, '操作日志', 'OperateLogList', NULL, b'0', '', b'0', b'0', '/modules/monitor/operate/OperateLogList.vue', NULL, '/monitor/log/operate', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-20 20:43:26', 1414143554414059520, '2022-10-20 20:43:26', 0, 0);
-INSERT INTO `iam_perm_menu` VALUES (1583076670881112064, 'dax-pay', 1583075229563068416, '数据版本日志', 'DataVersionLogList', NULL, b'0', '', b'0', b'0', '/modules/monitor/data/DataVersionLogList.vue', NULL, '/monitor/log/data', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-20 20:44:25', 1414143554414059520, '2022-10-20 20:44:25', 0, 0);
-INSERT INTO `iam_perm_menu` VALUES (1583076878956339200, 'dax-pay', 1582275875424129024, 'ELK日志', 'ELK', NULL, b'0', '', b'1', b'0', '', NULL, 'http://elk.dev.bootx.cn:5601/app/discover', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-20 20:45:15', 1414143554414059520, '2023-08-12 19:26:12', 3, 0);
-INSERT INTO `iam_perm_menu` VALUES (1583077015434797056, 'dax-pay', 1582275875424129024, 'PlumeLog日志', 'PlumeLog', NULL, b'0', '', b'0', b'0', '', NULL, 'http://127.0.0.1:9999/plumelog/#/', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-20 20:45:47', 1414143554414059520, '2022-10-20 20:45:47', 0, 0);
-INSERT INTO `iam_perm_menu` VALUES (1583077198772019200, 'dax-pay', 1582275875424129024, '系统信息', 'SystemInfoMonitor', NULL, b'0', '', b'0', b'0', '/modules/monitor/system/SystemInfoMonitor.vue', NULL, '/monitor/sysinfo', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-20 20:46:31', 1414143554414059520, '2022-10-20 20:46:31', 0, 0);
-INSERT INTO `iam_perm_menu` VALUES (1583077360827342848, 'dax-pay', 1582275875424129024, 'Redis监控', 'RedisInfoMonitor', NULL, b'0', '', b'0', b'0', '/modules/monitor/redis/RedisInfoMonitor.vue', NULL, '/monitor/redis', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-20 20:47:10', 1414143554414059520, '2022-10-20 20:47:10', 0, 0);
-INSERT INTO `iam_perm_menu` VALUES (1584378294652051456, 'dax-pay', 1582275984849326080, '邮件配置', 'MailConfigList', NULL, b'0', '', b'0', b'0', '/modules/notice/mail/MailConfigList.vue', NULL, '/notice/notice', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-24 10:56:36', 1414143554414059520, '2022-10-24 16:14:34', 1, 0);
-INSERT INTO `iam_perm_menu` VALUES (1584378497824137216, 'dax-pay', 1582275984849326080, '消息模板', 'MessageTemplateList', NULL, b'0', '', b'0', b'0', '/modules/notice/template/MessageTemplateList.vue', NULL, '/notice/template', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-24 10:57:25', 1414143554414059520, '2022-10-25 22:14:14', 2, 0);
-INSERT INTO `iam_perm_menu` VALUES (1584378671266996224, 'dax-pay', 1582275984849326080, '站内信', 'SiteMessageList', NULL, b'0', '', b'0', b'0', '/modules/notice/site/sender/SiteMessageList.vue', NULL, '/notice/siteMessage', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-24 10:58:06', 1414143554414059520, '2022-10-24 10:58:06', 0, 0);
-INSERT INTO `iam_perm_menu` VALUES (1584379602188574720, 'dax-pay', 1582276092038959104, '微信', 'WeChat', NULL, b'0', '', b'0', b'0', 'Layout', NULL, '/third/wechat', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-24 11:01:48', 1414143554414059520, '2022-10-24 11:01:48', 0, 0);
-INSERT INTO `iam_perm_menu` VALUES (1584379704122744832, 'dax-pay', 1582276092038959104, '企业微信', 'WeCom', NULL, b'0', '', b'0', b'0', 'Layout', NULL, '/third/wecom', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-24 11:02:12', 1414143554414059520, '2022-10-24 11:02:12', 0, 0);
-INSERT INTO `iam_perm_menu` VALUES (1584380087805091840, 'dax-pay', 1582276092038959104, '钉钉', 'DingTalk', NULL, b'0', '', b'0', b'0', 'Layout', NULL, '/third/dingtalk', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-24 11:03:44', 1414143554414059520, '2022-10-24 11:03:44', 0, 0);
-INSERT INTO `iam_perm_menu` VALUES (1584380527829524480, 'dax-pay', 1584379602188574720, '消息模板', 'WechatTemplateList', NULL, b'0', '', b'0', b'0', '/modules/third/wechat/template/WechatTemplateList.vue', NULL, '/third/wechat/template', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-24 11:05:29', 1414143554414059520, '2022-10-26 15:58:56', 1, 0);
-INSERT INTO `iam_perm_menu` VALUES (1584380679478779904, 'dax-pay', 1584379602188574720, '自定义菜单', 'WechatMenuList', NULL, b'0', '', b'0', b'0', '/modules/third/wechat/menu/WechatMenuList.vue', NULL, '/third/wechat/menu', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-24 11:06:05', 1414143554414059520, '2022-10-27 10:15:24', 1, 0);
-INSERT INTO `iam_perm_menu` VALUES (1584380824308097024, 'dax-pay', 1584379602188574720, '素材管理', 'WechatMediaList', NULL, b'0', '', b'0', b'0', '/modules/third/wechat/media/WechatMediaList.vue', NULL, '/third/wechat/media', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-24 11:06:40', 1414143554414059520, '2022-10-27 16:38:47', 1, 0);
-INSERT INTO `iam_perm_menu` VALUES (1584381134950834176, 'dax-pay', 1584379704122744832, '企微机器人', 'WeComRobotConfigList', NULL, b'0', '', b'0', b'0', '/modules/third/wecom/robot/WecomRobotConfigList.vue', NULL, '/third/wecom/robot', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-24 11:07:54', 1414143554414059520, '2022-11-12 20:58:25', 3, 0);
-INSERT INTO `iam_perm_menu` VALUES (1584381322184564736, 'dax-pay', 1584380087805091840, '钉钉机器人', 'DingRobotConfigList', NULL, b'0', '', b'0', b'0', '/modules/third/dingtalk/robot/DingRobotConfigList.vue', NULL, '/third/dingTalk/robot', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-24 11:08:38', 1414143554414059520, '2022-11-12 20:58:37', 6, 0);
-INSERT INTO `iam_perm_menu` VALUES (1599337250200440832, 'dax-pay', NULL, '关于', '', NULL, b'0', 'ant-design:info-circle-outlined', b'0', b'0', '', NULL, '/about/index', '', 99, 0, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-12-04 17:38:09', 1399985191002447872, '2024-01-14 23:09:56', 6, 0);
-INSERT INTO `iam_perm_menu` VALUES (1623494586215579648, 'dax-pay', 1552207982510706688, '行政区划', 'ChinaRegion', NULL, b'0', '', b'1', b'0', 'develop/region/ChinaRegionList', NULL, '/develop/region', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1399985191002447872, '2023-02-09 09:30:47', 1399985191002447872, '2023-02-09 17:50:05', 1, 0);
-INSERT INTO `iam_perm_menu` VALUES (1631946120891707392, 'dax-pay', 1552207982510706688, '可视化大屏', 'ProjectInfoList', NULL, b'0', '', b'0', b'0', 'develop/report/ProjectInfoList', NULL, '/develop/report', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1399985191002447872, '2023-03-04 17:14:10', 1399985191002447872, '2023-03-04 17:14:10', 0, 0);
-INSERT INTO `iam_perm_menu` VALUES (1687369862646558720, 'dax-pay', 1582275984849326080, '短信管理', 'Sms', NULL, b'0', '', b'0', b'0', 'Layout', NULL, '/notice/sms', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2023-08-04 15:48:20', 1414143554414059520, '2023-08-04 15:48:32', 1, 0);
-INSERT INTO `iam_perm_menu` VALUES (1687370142234669056, 'dax-pay', 1687369862646558720, '短信配置', 'SmsChannelConfigList', NULL, b'0', '', b'0', b'0', '/modules/notice/sms/config/SmsChannelConfigList', NULL, '/notice/sms/config', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2023-08-04 15:49:26', 1414143554414059520, '2023-08-04 15:49:26', 0, 0);
-INSERT INTO `iam_perm_menu` VALUES (1687370277496778752, 'dax-pay', 1687369862646558720, '短信模板', 'SmsTemplateList', NULL, b'0', '', b'0', b'0', '/modules/notice/sms/template/SmsTemplateList', NULL, '/notice/sms/template', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2023-08-04 15:49:59', 1414143554414059520, '2023-08-04 15:50:38', 1, 0);
-INSERT INTO `iam_perm_menu` VALUES (1713931084759293952, 'dax-pay', 1582253306356649984, '密码安全', 'PassowrdSecurity', NULL, b'0', '', b'0', b'0', '/modules/system/security/password/PasswordSecurityConfig.vue', NULL, '/system/config/passowrd', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1399985191002447872, '2023-10-16 22:53:09', 1399985191002447872, '2023-10-16 22:58:59', 2, 0);
-INSERT INTO `iam_perm_menu` VALUES (1733829906427682816, 'dax-pay', 1582275875424129024, '在线用户', 'OnlineUserList', NULL, b'0', '', b'0', b'0', '/modules/monitor/user/online/OnlineUserList', NULL, '/monitor/user/online', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1399985191002447872, '2023-12-10 20:43:57', 1399985191002447872, '2023-12-10 20:43:57', 0, 0);
-INSERT INTO `iam_perm_menu` VALUES (1744271715476684800, 'dax-pay', NULL, '支付配置', 'PayConfig', NULL, b'0', 'ant-design:setting-filled', b'0', b'0', 'Layout', NULL, '/pay/config', '', 0, 0, NULL, b'1', b'0', b'0', b'0', NULL, 1399985191002447872, '2024-01-08 16:15:59', 1399985191002447872, '2024-01-09 15:38:06', 1, 0);
-INSERT INTO `iam_perm_menu` VALUES (1744276101384880128, 'dax-pay', 1744271715476684800, '支付通道', 'PayChannelConfigList', NULL, b'0', '', b'0', b'0', 'payment/system/channel/PayChannelConfigList', NULL, '/pay/config/channel', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1399985191002447872, '2024-01-08 16:33:24', 1399985191002447872, '2024-01-18 14:49:15', 3, 0);
-INSERT INTO `iam_perm_menu` VALUES (1744372631231995904, 'dax-pay', 1744271715476684800, '支付方式', 'PayMethodInfoList', NULL, b'0', '', b'0', b'0', 'payment/system/method/PayMethodInfoList', NULL, '/pay/config/method', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1399985191002447872, '2024-01-08 22:56:59', 1399985191002447872, '2024-05-01 22:53:13', 3, 0);
-INSERT INTO `iam_perm_menu` VALUES (1744624886658318336, 'dax-pay', 1744271715476684800, '支付接口', 'PayApiConfigList', NULL, b'0', '', b'0', b'0', 'payment/system/api/PayApiConfigList', NULL, '/pay/config/api', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1399985191002447872, '2024-01-09 15:39:21', 1399985191002447872, '2024-01-10 11:52:20', 2, 0);
-INSERT INTO `iam_perm_menu` VALUES (1744642856348520448, 'dax-pay', NULL, '订单管理', 'PayOrder', NULL, b'0', 'ant-design:wallet-outlined', b'0', b'0', 'Layout', NULL, '/pay/order', '', 0, 0, NULL, b'1', b'0', b'0', b'0', NULL, 1399985191002447872, '2024-01-09 16:50:46', 1399985191002447872, '2024-01-09 16:53:35', 3, 0);
-INSERT INTO `iam_perm_menu` VALUES (1744643265142165504, 'dax-pay', NULL, '数据记录', 'PayRecord', NULL, b'0', 'ant-design:profile-outlined', b'0', b'0', 'Layout', NULL, '/pay/record', '', 0, 0, NULL, b'1', b'0', b'0', b'0', NULL, 1399985191002447872, '2024-01-09 16:52:23', 1399985191002447872, '2024-01-09 16:53:50', 1, 0);
-INSERT INTO `iam_perm_menu` VALUES (1744930046228017152, 'dax-pay', 1744643265142165504, '回调记录', 'PayCallbackRecordList', NULL, b'0', '', b'0', b'0', 'payment/record/callback/PayCallbackRecordList', NULL, '/pay/record/callback', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1399985191002447872, '2024-01-10 11:51:57', 1399985191002447872, '2024-05-01 23:15:23', 10, 0);
-INSERT INTO `iam_perm_menu` VALUES (1745126072389963776, 'dax-pay', 1744643265142165504, '关闭记录', 'PayCloseRecordList', NULL, b'0', '', b'0', b'0', 'payment/record/close/PayCloseRecordList', NULL, '/pay/record/close', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1399985191002447872, '2024-01-11 00:50:53', 1399985191002447872, '2024-01-11 00:50:53', 0, 0);
-INSERT INTO `iam_perm_menu` VALUES (1745136155962347520, 'dax-pay', 1744643265142165504, '修复记录', 'PayRepairRecordList', NULL, b'0', '', b'0', b'0', 'payment/record/repair/PayRepairRecordList', NULL, '/pay/record/repair', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1399985191002447872, '2024-01-11 01:30:57', 1399985191002447872, '2024-01-11 01:30:57', 0, 0);
-INSERT INTO `iam_perm_menu` VALUES (1745143528663781376, 'dax-pay', 1744643265142165504, '同步记录', 'PaySyncRecordList', NULL, b'0', '', b'0', b'0', 'payment/record/sync/PaySyncRecordList', NULL, '/pay/record/sync', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1399985191002447872, '2024-01-11 02:00:15', 1399985191002447872, '2024-01-11 02:00:33', 1, 0);
-INSERT INTO `iam_perm_menu` VALUES (1745457623493496832, 'dax-pay', 1744642856348520448, '支付订单', 'PayOrderList', NULL, b'0', '', b'0', b'0', 'payment/order/pay/PayOrderList', NULL, '/pay/order/pay', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1399985191002447872, '2024-01-11 22:48:21', 1399985191002447872, '2024-01-11 22:48:21', 0, 0);
-INSERT INTO `iam_perm_menu` VALUES (1745457746529210368, 'dax-pay', 1744642856348520448, '退款订单', 'RefundOrderList', NULL, b'0', '', b'0', b'0', 'payment/order/refund/RefundOrderList.vue', NULL, '/pay/order/refund', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1399985191002447872, '2024-01-11 22:48:50', 1399985191002447872, '2024-01-21 22:50:29', 2, 0);
-INSERT INTO `iam_perm_menu` VALUES (1745822093382230016, 'dax-pay', 1744271715476684800, '通道配置', 'ChannelPayConfigList', NULL, b'0', '', b'0', b'0', 'payment/channel/config/ChannelPayConfigList', NULL, '/pay/config/channelpay', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1399985191002447872, '2024-01-12 22:56:38', 1399985191002447872, '2024-02-06 14:32:08', 2, 0);
-INSERT INTO `iam_perm_menu` VALUES (1746194891925561344, 'dax-pay', 1744271715476684800, '平台配置', 'PayPlatformConfig', NULL, b'0', '', b'0', b'0', 'payment/system/platform/PayPlatformConfig', NULL, '/pay/config/platform', '', -1, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1399985191002447872, '2024-01-13 23:38:00', 1399985191002447872, '2024-01-13 23:38:00', 0, 0);
-INSERT INTO `iam_perm_menu` VALUES (1749262518385082368, 'dax-pay', 1786808188825194496, '对账单', 'ReconcileOrderList', NULL, b'0', '', b'0', b'0', 'payment/reconcile/order/ReconcileOrderList.vue', NULL, '/pay/reconcile/order', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1399985191002447872, '2024-01-22 10:47:39', 1399985191002447872, '2024-05-05 17:09:14', 9, 0);
-INSERT INTO `iam_perm_menu` VALUES (1759768820429352960, 'dax-pay', NULL, '演示模块', '', NULL, b'0', 'ant-design:crown-outlined', b'0', b'0', 'Layout', NULL, '/pay/demo', '', 9, 0, NULL, b'1', b'0', b'0', b'0', NULL, 1399985191002447872, '2024-02-20 10:35:56', 1399985191002447872, '2024-02-20 10:35:56', 0, 0);
-INSERT INTO `iam_perm_menu` VALUES (1759769092698402816, 'dax-pay', 1759768820429352960, '收银台演示', '', NULL, b'0', '', b'0', b'0', '', NULL, 'outside:///cashier', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1399985191002447872, '2024-02-20 10:37:01', 1399985191002447872, '2024-02-20 10:37:01', 0, 0);
-INSERT INTO `iam_perm_menu` VALUES (1761429304959528960, 'dax-pay', NULL, '支付通知', 'PayNotic', NULL, b'0', 'ant-design:clock-circle-outlined', b'0', b'0', 'Layout', NULL, '/pay/notice', '', 0, 0, NULL, b'1', b'0', b'0', b'0', NULL, 1399985191002447872, '2024-02-25 00:34:07', 1399985191002447872, '2024-05-08 15:31:04', 3, 0);
-INSERT INTO `iam_perm_menu` VALUES (1761429682618855424, 'dax-pay', 1761429304959528960, '通知记录', 'ClientNoticeTaskList', NULL, b'0', '', b'0', b'0', 'payment/task/notice/ClientNoticeTaskList', NULL, '/pay/notice/record', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1399985191002447872, '2024-02-25 00:35:37', 1399985191002447872, '2024-05-08 15:30:56', 1, 0);
-INSERT INTO `iam_perm_menu` VALUES (1775089099078553600, 'dax-pay', NULL, '分账管理', 'Allocation', NULL, b'0', 'ant-design:sliders-twotone', b'0', b'0', 'Layout', NULL, '/pay/allocation', '', 0, 0, NULL, b'1', b'0', b'0', b'0', NULL, 1399985191002447872, '2024-04-02 17:13:15', 1399985191002447872, '2024-04-02 17:13:15', 0, 0);
-INSERT INTO `iam_perm_menu` VALUES (1775089820368818176, 'dax-pay', 1775089099078553600, '分账接收者', 'AllocationReceiverList', NULL, b'0', '', b'0', b'0', 'payment/allocation/receiver/AllocationReceiverList', NULL, '/pay/allocation/receiver', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1399985191002447872, '2024-04-02 17:16:07', 1399985191002447872, '2024-04-02 17:23:13', 2, 0);
-INSERT INTO `iam_perm_menu` VALUES (1775091561835450368, 'dax-pay', 1775089099078553600, '分账组', 'AllocationGroupList', NULL, b'0', '', b'0', b'0', 'payment/allocation/group/AllocationGroupList', NULL, '/pay/allocation/group', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1399985191002447872, '2024-04-02 17:23:03', 1399985191002447872, '2024-04-02 17:23:27', 1, 0);
-INSERT INTO `iam_perm_menu` VALUES (1777688382748700672, 'dax-pay', 1775089099078553600, '分账订单', 'AllocationOrderList', NULL, b'0', '', b'0', b'0', 'payment/allocation/order/AllocationOrderList', NULL, '/pay/allocation/order', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1399985191002447872, '2024-04-09 21:21:53', 1399985191002447872, '2024-05-05 17:06:17', 3, 0);
-INSERT INTO `iam_perm_menu` VALUES (1786808188825194496, 'dax-pay', NULL, '对账管理', 'Reconcile', NULL, b'0', 'ant-design:arrows-alt-outlined', b'0', b'0', 'Layout', NULL, '/pay/reconcile', '', 0, 0, NULL, b'1', b'0', b'0', b'0', NULL, 1399985191002447872, '2024-05-05 01:20:44', 1399985191002447872, '2024-05-05 01:20:54', 1, 0);
-INSERT INTO `iam_perm_menu` VALUES (1786810890951020544, 'dax-pay', 1786808188825194496, '对账差异', 'ReconcileDiffList', NULL, b'0', '', b'0', b'0', 'payment/reconcile/diff/ReconcileDiffList.vue', NULL, '/pay/reconcile/diff', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1399985191002447872, '2024-05-05 01:31:28', 1399985191002447872, '2024-05-05 17:08:38', 1, 0);
-INSERT INTO `iam_perm_menu` VALUES (1786811341285052416, 'dax-pay', 1786808188825194496, '外部交易明细', 'ReconcileDetailList', NULL, b'0', '', b'1', b'0', 'payment/reconcile/detail/ReconcileDetailList.vue', NULL, '/pay/reconcile/detail', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1399985191002447872, '2024-05-05 01:33:16', 1399985191002447872, '2024-05-05 20:24:24', 2, 0);
-
--- ----------------------------
--- Table structure for iam_perm_path
--- ----------------------------
-DROP TABLE IF EXISTS `iam_perm_path`;
-CREATE TABLE `iam_perm_path`  (
-                                  `id` bigint(20) NOT NULL,
-                                  `code` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '权限标识',
-                                  `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '权限名称',
-                                  `request_type` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '请求类型',
-                                  `path` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '请求路径',
-                                  `group_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '分组名称',
-                                  `enable` bit(1) NOT NULL COMMENT '启用状态',
-                                  `generate` bit(1) NOT NULL COMMENT '是否通过系统生成的权限',
-                                  `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '描述',
-                                  `creator` bigint(20) NULL DEFAULT NULL,
-                                  `create_time` datetime(6) NULL DEFAULT NULL,
-                                  `last_modifier` bigint(20) NULL DEFAULT NULL,
-                                  `last_modified_time` datetime(6) NULL DEFAULT NULL,
-                                  `deleted` bit(1) NOT NULL,
-                                  `version` int(11) NOT NULL,
-                                  PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '权限_请求' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of iam_perm_path
--- ----------------------------
-INSERT INTO `iam_perm_path` VALUES (1789978117562556416, 'UserInfoController#existsUsername', '账号是否被使用', 'GET', '/user/existsUsername', '用户管理', b'1', b'1', '用户管理 账号是否被使用', 1399985191002447872, '2024-05-13 19:16:54.069000', 1399985191002447872, '2024-05-13 19:16:54.069000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117562556417, 'FIleUpLoadController#page', '分页', 'GET', '/file/page', '文件上传', b'1', b'1', '文件上传 分页', 1399985191002447872, '2024-05-13 19:16:54.069000', 1399985191002447872, '2024-05-13 19:16:54.069000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117562556418, 'AllocationOrderController#retryAllocation', '分账重试', 'POST', '/order/allocation/retry', '分账订单控制器', b'1', b'1', '分账订单控制器 分账重试', 1399985191002447872, '2024-05-13 19:16:54.069000', 1399985191002447872, '2024-05-13 19:16:54.069000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117562556419, 'WeChatPayConfigController#toBase64', '将文件转换成base64', 'POST', '/wechat/pay/config/toBase64', '微信支付配置', b'1', b'1', '微信支付配置 将文件转换成base64', 1399985191002447872, '2024-05-13 19:16:54.069000', 1399985191002447872, '2024-05-13 19:16:54.069000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117562556420, 'AllocationReceiverController#removeByGateway', '从三方支付系统中删除', 'POST', '/allocation/receiver/removeByGateway', '分账接收方控制器', b'1', b'1', '分账接收方控制器 从三方支付系统中删除', 1399985191002447872, '2024-05-13 19:16:54.069000', 1399985191002447872, '2024-05-13 19:16:54.069000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117562556421, 'UserThirdController#unbind', '解绑第三方账号', 'POST', '/user/third/unbind', '用户三方登录管理', b'1', b'1', '用户三方登录管理 解绑第三方账号', 1399985191002447872, '2024-05-13 19:16:54.069000', 1399985191002447872, '2024-05-13 19:16:54.069000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117562556422, 'ChinaRegionController#findAllProvince', '获取一级行政区', 'GET', '/china/region/findAllProvince', '中国行政区划', b'1', b'1', '中国行政区划 获取一级行政区', 1399985191002447872, '2024-05-13 19:16:54.069000', 1399985191002447872, '2024-05-13 19:16:54.069000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117562556423, 'AllocationGroupController#unbindReceivers', '批量取消绑定接收者', 'POST', '/allocation/group/unbindReceivers', '分账组', b'1', b'1', '分账组 批量取消绑定接收者', 1399985191002447872, '2024-05-13 19:16:54.069000', 1399985191002447872, '2024-05-13 19:16:54.069000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117562556424, 'DataRoleController#findUsersByDataRoleId', '获取关联的用户列表', 'GET', '/data/role/findUsersByDataRoleId', '数据角色配置', b'1', b'1', '数据角色配置 获取关联的用户列表', 1399985191002447872, '2024-05-13 19:16:54.069000', 1399985191002447872, '2024-05-13 19:16:54.069000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117562556425, 'AggregateController#getInfo', '获取聚合支付信息', 'GET', '/demo/aggregate/getInfo', '聚合支付', b'1', b'1', '聚合支付 获取聚合支付信息', 1399985191002447872, '2024-05-13 19:16:54.069000', 1399985191002447872, '2024-05-13 19:16:54.069000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117562556426, 'UniQueryController#queryRefundOrder', '退款订单查询接口', 'POST', '/uni/query/refundOrder', '统一查询接口', b'1', b'1', '统一查询接口 退款订单查询接口', 1399985191002447872, '2024-05-13 19:16:54.069000', 1399985191002447872, '2024-05-13 19:16:54.069000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117562556427, 'SmsTemplateController#update', '修改', 'POST', '/sms/template/update', '短信模板配置', b'1', b'1', '短信模板配置 修改', 1399985191002447872, '2024-05-13 19:16:54.069000', 1399985191002447872, '2024-05-13 19:16:54.069000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117562556428, 'AllocationReceiverController#findById', '查询详情', 'GET', '/allocation/receiver/findById', '分账接收方控制器', b'1', b'1', '分账接收方控制器 查询详情', 1399985191002447872, '2024-05-13 19:16:54.069000', 1399985191002447872, '2024-05-13 19:16:54.069000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117562556429, 'PayMethodInfoController#update', '更新', 'POST', '/pay/method/info/update', '支付方式管理', b'1', b'1', '支付方式管理 更新', 1399985191002447872, '2024-05-13 19:16:54.069000', 1399985191002447872, '2024-05-13 19:16:54.069000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117562556430, 'CashierController#getUniCashierUrl', '获取手机收银台链接', 'GET', '/demo/cashier/getUniCashierUrl', '结算台演示', b'1', b'1', '结算台演示 获取手机收银台链接', 1399985191002447872, '2024-05-13 19:16:54.069000', 1399985191002447872, '2024-05-13 19:16:54.069000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117562556431, 'ReconcileOrderController#pageDiff', '对账差异分页', 'GET', '/order/reconcile/diff/page', '对账控制器', b'1', b'1', '对账控制器 对账差异分页', 1399985191002447872, '2024-05-13 19:16:54.069000', 1399985191002447872, '2024-05-13 19:16:54.069000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117562556432, 'OnlineUserController#page', '分页', 'GET', '/online/user/page', '在线用户', b'1', b'1', '在线用户 分页', 1399985191002447872, '2024-05-13 19:16:54.069000', 1399985191002447872, '2024-05-13 19:16:54.069000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117562556433, 'UserInfoController#existsPhone', '手机号是否被使用(不包含自己)', 'GET', '/user/existsPhoneNotId', '用户管理', b'1', b'1', '用户管理 手机号是否被使用(不包含自己)', 1399985191002447872, '2024-05-13 19:16:54.069000', 1399985191002447872, '2024-05-13 19:16:54.069000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117562556434, 'DataRoleController#add', '添加', 'POST', '/data/role/add', '数据角色配置', b'1', b'1', '数据角色配置 添加', 1399985191002447872, '2024-05-13 19:16:54.069000', 1399985191002447872, '2024-05-13 19:16:54.069000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117562556435, 'PlatformConfigController#getConfig', '获取平台配置', 'GET', '/platform/config/getConfig', '支付平台配置控制器', b'1', b'1', '支付平台配置控制器 获取平台配置', 1399985191002447872, '2024-05-13 19:16:54.069000', 1399985191002447872, '2024-05-13 19:16:54.069000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117562556436, 'SmsTemplateController#delete', '删除', 'DELETE', '/sms/template/delete', '短信模板配置', b'1', b'1', '短信模板配置 删除', 1399985191002447872, '2024-05-13 19:16:54.069000', 1399985191002447872, '2024-05-13 19:16:54.069000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117562556437, 'DataRoleController#findById', '获取', 'GET', '/data/role/findById', '数据角色配置', b'1', b'1', '数据角色配置 获取', 1399985191002447872, '2024-05-13 19:16:54.069000', 1399985191002447872, '2024-05-13 19:16:54.069000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117562556438, 'DingRobotConfigController#delete', '删除', 'DELETE', '/ding/robot/config/delete', '钉钉机器人配置', b'1', b'1', '钉钉机器人配置 删除', 1399985191002447872, '2024-05-13 19:16:54.069000', 1399985191002447872, '2024-05-13 19:16:54.069000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117562556439, 'UserDataRoleController#saveAssign', '给用户分配数据角色', 'POST', '/user/data/role/saveAssign', '用户数据角色配置', b'1', b'1', '用户数据角色配置 给用户分配数据角色', 1399985191002447872, '2024-05-13 19:16:54.069000', 1399985191002447872, '2024-05-13 19:16:54.069000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117562556440, 'SiteMessageController#read', '标为已读', 'POST', '/site/message/read', '站内信', b'1', b'1', '站内信 标为已读', 1399985191002447872, '2024-05-13 19:16:54.069000', 1399985191002447872, '2024-05-13 19:16:54.069000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117562556441, 'SystemParamController#findByParamKey', '根据键名获取键值', 'GET', '/system/param/findByParamKey', '系统参数', b'1', b'1', '系统参数 根据键名获取键值', 1399985191002447872, '2024-05-13 19:16:54.069000', 1399985191002447872, '2024-05-13 19:16:54.069000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117562556442, 'UserInfoController#bindEmail', '绑定邮箱', 'POST', '/user/bindEmail', '用户管理', b'1', b'1', '用户管理 绑定邮箱', 1399985191002447872, '2024-05-13 19:16:54.069000', 1399985191002447872, '2024-05-13 19:16:54.069000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117562556443, 'RoleMenuController#save', '保存请求权限关系', 'POST', '/role/menu/save', '角色菜单权限关系', b'1', b'1', '角色菜单权限关系 保存请求权限关系', 1399985191002447872, '2024-05-13 19:16:54.069000', 1399985191002447872, '2024-05-13 19:16:54.069000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117562556444, 'RoleController#findAll', '查询所有的角色', 'GET', '/role/findAll', '角色管理', b'1', b'1', '角色管理 查询所有的角色', 1399985191002447872, '2024-05-13 19:16:54.069000', 1399985191002447872, '2024-05-13 19:16:54.069000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117562556445, 'SmsChannelConfigController#findById', '通过ID查询', 'GET', '/sms/config/findById', '短信渠道配置', b'1', b'1', '短信渠道配置 通过ID查询', 1399985191002447872, '2024-05-13 19:16:54.069000', 1399985191002447872, '2024-05-13 19:16:54.069000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117562556446, 'PermPathController#add', '添加权限', 'POST', '/perm/path/add', '请求权限管理', b'1', b'1', '请求权限管理 添加权限', 1399985191002447872, '2024-05-13 19:16:54.069000', 1399985191002447872, '2024-05-13 19:16:54.069000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117562556447, 'AuthAssistController#sendSmsCaptcha', '发送短信验证码', 'POST', '/auth/sendSmsCaptcha', '认证支撑接口', b'1', b'1', '认证支撑接口 发送短信验证码', 1399985191002447872, '2024-05-13 19:16:54.069000', 1399985191002447872, '2024-05-13 19:16:54.069000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117562556448, 'CockpitReportController#getRefundAmount', '退款金额(分)', 'GET', '/report/cockpit/getRefundAmount', '驾驶舱接口', b'1', b'1', '驾驶舱接口 退款金额(分)', 1399985191002447872, '2024-05-13 19:16:54.069000', 1399985191002447872, '2024-05-13 19:16:54.069000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117562556449, 'PermMenuController#existsByPermCode', '编码是否被使用', 'GET', '/perm/menu/existsByPermCode', '菜单和权限码', b'1', b'1', '菜单和权限码 编码是否被使用', 1399985191002447872, '2024-05-13 19:16:54.069000', 1399985191002447872, '2024-05-13 19:16:54.069000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117562556450, 'WeChatTemplateController#findById', '通过ID查询', 'GET', '/wechat/template/findById', '微信模板消息', b'1', b'1', '微信模板消息 通过ID查询', 1399985191002447872, '2024-05-13 19:16:54.069000', 1399985191002447872, '2024-05-13 19:16:54.069000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117562556451, 'UserInfoController#updateEmail', '修改邮箱', 'POST', '/user/updateEmail', '用户管理', b'1', b'1', '用户管理 修改邮箱', 1399985191002447872, '2024-05-13 19:16:54.069000', 1399985191002447872, '2024-05-13 19:16:54.069000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117562556452, 'AggregateController#createUrl', '创建聚合支付码', 'POST', '/demo/aggregate/createUrl', '聚合支付', b'1', b'1', '聚合支付 创建聚合支付码', 1399985191002447872, '2024-05-13 19:16:54.069000', 1399985191002447872, '2024-05-13 19:16:54.069000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117562556453, 'MessageTemplateController#existsByCode', '编码是否被使用(不包含自己)', 'GET', '/message/template/existsByCodeNotId', '消息模板', b'1', b'1', '消息模板 编码是否被使用(不包含自己)', 1399985191002447872, '2024-05-13 19:16:54.069000', 1399985191002447872, '2024-05-13 19:16:54.069000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117562556454, 'DingRobotConfigController#update', '修改机器人配置', 'POST', '/ding/robot/config/update', '钉钉机器人配置', b'1', b'1', '钉钉机器人配置 修改机器人配置', 1399985191002447872, '2024-05-13 19:16:54.069000', 1399985191002447872, '2024-05-13 19:16:54.069000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117562556455, 'WeChatPortalController#auth', 'auth', 'GET', '/wechat/portal', '微信接入入口', b'1', b'1', '微信接入入口 auth', 1399985191002447872, '2024-05-13 19:16:54.069000', 1399985191002447872, '2024-05-13 19:16:54.069000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117562556456, 'SystemParamController#add', '添加', 'POST', '/system/param/add', '系统参数', b'1', b'1', '系统参数 添加', 1399985191002447872, '2024-05-13 19:16:54.069000', 1399985191002447872, '2024-05-13 19:16:54.069000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117562556457, 'DingRobotConfigController#page', '分页', 'GET', '/ding/robot/config/page', '钉钉机器人配置', b'1', b'1', '钉钉机器人配置 分页', 1399985191002447872, '2024-05-13 19:16:54.069000', 1399985191002447872, '2024-05-13 19:16:54.069000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117562556458, 'QuartzJobController#findById', '单条', 'GET', '/quartz/findById', '定时任务', b'1', b'1', '定时任务 单条', 1399985191002447872, '2024-05-13 19:16:54.069000', 1399985191002447872, '2024-05-13 19:16:54.069000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117562556459, 'RoleController#existsByName', '名称是否被使用', 'GET', '/role/existsByName', '角色管理', b'1', b'1', '角色管理 名称是否被使用', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750720, 'WeChatMenuController#findById', '通过ID查询', 'GET', '/wechat/menu/findById', '微信菜单管理', b'1', b'1', '微信菜单管理 通过ID查询', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750721, 'UserInfoController#existsEmail', '邮箱是否被使用(不包含自己)', 'GET', '/user/existsEmailNotId', '用户管理', b'1', b'1', '用户管理 邮箱是否被使用(不包含自己)', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750722, 'UniPayController#syncPay', '支付同步接口', 'POST', '/unipay/syncPay', '统一支付接口', b'1', b'1', '统一支付接口 支付同步接口', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750723, 'PermPathController#page', '权限分页', 'GET', '/perm/path/page', '请求权限管理', b'1', b'1', '请求权限管理 权限分页', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750724, 'WeChatPortalController#post', 'post', 'POST', '/wechat/portal', '微信接入入口', b'1', b'1', '微信接入入口 post', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750725, 'DeptController#findById', '获取', 'GET', '/dept/findById', '部门管理', b'1', b'1', '部门管理 获取', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750726, 'PayOrderController#allocation', '发起分账', 'POST', '/order/pay/allocation', '支付订单控制器', b'1', b'1', '支付订单控制器 发起分账', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750727, 'DictionaryController#add', '添加', 'POST', '/dict/add', '字典', b'1', b'1', '字典 添加', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750728, 'RefundOrderController#getTotalAmount', '查询金额汇总', 'GET', '/order/refund/getTotalAmount', '支付退款控制器', b'1', b'1', '支付退款控制器 查询金额汇总', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750729, 'UserInfoController#getUserBaseInfo', '查询用户基础信息', 'GET', '/user/getUserBaseInfo', '用户管理', b'1', b'1', '用户管理 查询用户基础信息', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750730, 'CockpitReportController#getRefundOrderCount', '退款订单数量', 'GET', '/report/cockpit/getRefundOrderCount', '驾驶舱接口', b'1', b'1', '驾驶舱接口 退款订单数量', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750731, 'UserAdminController#update', '修改用户', 'POST', '/user/admin/update', '管理用户(管理员级别)', b'1', b'1', '管理用户(管理员级别) 修改用户', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750732, 'WeChatMenuController#importMenu', '导入微信自定义菜单到系统中', 'POST', '/wechat/menu/importMenu', '微信菜单管理', b'1', b'1', '微信菜单管理 导入微信自定义菜单到系统中', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750733, 'WalletConfigController#update', '更新', 'POST', '/wallet/config/update', '钱包配置', b'1', b'1', '钱包配置 更新', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750734, 'DeptController#deleteAndChildren', '强制级联删除', 'DELETE', '/dept/deleteAndChildren', '部门管理', b'1', b'1', '部门管理 强制级联删除', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750735, 'PermPathController#deleteBatch', '批量删除', 'DELETE', '/perm/path/deleteBatch', '请求权限管理', b'1', b'1', '请求权限管理 批量删除', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750736, 'PayGatewayNoticeController#wechatPayNotice', '微信消息通知', 'POST', '/gateway/notice/wechat', '三方支付网关消息通知', b'1', b'1', '三方支付网关消息通知 微信消息通知', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750737, 'DataRoleController#saveDeptAssign', '保存关联部门', 'POST', '/data/role/saveDeptAssign', '数据角色配置', b'1', b'1', '数据角色配置 保存关联部门', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750738, 'PayCallbackController#wechatPayNotify', '微信支付信息回调', 'POST', '/callback/pay/wechat', '支付通道信息回调', b'1', b'1', '支付通道信息回调 微信支付信息回调', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750739, 'WeChatMediaController#uploadFile', '上传素材', 'POST', '/wechat/media/uploadFile', '微信素材管理', b'1', b'1', '微信素材管理 上传素材', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750740, 'AllocationReceiverController#registerByGateway', '同步到三方支付系统中', 'POST', '/allocation/receiver/registerByGateway', '分账接收方控制器', b'1', b'1', '分账接收方控制器 同步到三方支付系统中', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750741, 'WalletController#recharge', '充值', 'POST', '/wallet/recharge', '钱包管理', b'1', b'1', '钱包管理 充值', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750742, 'UniPayAssistController#getWxAccessToken', '获取微信AccessToken', 'POST', '/unipay/assist/getWxAccessToken', '支付支撑接口', b'1', b'1', '支付支撑接口 获取微信AccessToken', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750743, 'FIleUpLoadController#getFileDownloadUrl', '获取文件下载地址(流量会经过后端)', 'GET', '/file/getFileDownloadUrl', '文件上传', b'1', b'1', '文件上传 获取文件下载地址(流量会经过后端)', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750744, 'AllocationGroupController#clearDefault', '清除默认分账组', 'POST', '/allocation/group/clearDefault', '分账组', b'1', b'1', '分账组 清除默认分账组', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750745, 'DictionaryController#findById', '根据id获取', 'GET', '/dict/findById', '字典', b'1', b'1', '字典 根据id获取', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750746, 'ReconcileOrderController#compare', '手动触发交易对账单比对', 'POST', '/order/reconcile/compare', '对账控制器', b'1', b'1', '对账控制器 手动触发交易对账单比对', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750747, 'TestController#lock1', '锁测试1', 'GET', '/test/lock1', '测试', b'1', b'1', '测试 锁测试1', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750748, 'UserInfoController#updatePhone', '修改手机号', 'POST', '/user/updatePhone', '用户管理', b'1', b'1', '用户管理 修改手机号', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750749, 'UserInfoController#getLoginAfterUserInfo', '登录后获取用户信息', 'GET', '/user/getLoginAfterUserInfo', '用户管理', b'1', b'1', '用户管理 登录后获取用户信息', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750750, 'ClientController#delete', '删除', 'DELETE', '/client/delete', '认证终端', b'1', b'1', '认证终端 删除', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750751, 'PayChannelConfigController#findAll', '查询全部', 'GET', '/pay/channel/config/findAll', '支付通道信息', b'1', b'1', '支付通道信息 查询全部', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750752, 'SmsChannelConfigController#add', '添加', 'POST', '/sms/config/add', '短信渠道配置', b'1', b'1', '短信渠道配置 添加', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750753, 'PayCloseRecordController#page', '分页查询', 'GET', '/record/close/page', '支付订单关闭记录', b'1', b'1', '支付订单关闭记录 分页查询', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750754, 'UserInfoController#bindPhone', '绑定手机', 'POST', '/user/bindPhone', '用户管理', b'1', b'1', '用户管理 绑定手机', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750755, 'DictionaryItemController#update', '修改字典项(返回字典项对象)', 'POST', '/dict/item/update', '字典项', b'1', b'1', '字典项 修改字典项(返回字典项对象)', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750756, 'WeChatMediaController#pageFile', '非图文素材分页', 'GET', '/wechat/media/pageFile', '微信素材管理', b'1', b'1', '微信素材管理 非图文素材分页', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750757, 'ChinaRegionController#findAllProvinceAndCityAndArea', ' 获取省市区县三级联动列表', 'GET', '/china/region/findAllProvinceAndCityAndArea', '中国行政区划', b'1', b'1', '中国行政区划  获取省市区县三级联动列表', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750758, 'WalletConfigController#findPayWays', '支付宝支持支付方式', 'GET', '/wallet/config/findPayWays', '钱包配置', b'1', b'1', '钱包配置 支付宝支持支付方式', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750759, 'AllocationGroupController#bindReceivers', '批量绑定接收者', 'POST', '/allocation/group/bindReceivers', '分账组', b'1', b'1', '分账组 批量绑定接收者', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750760, 'ReconcileOrderController#upload', '手动上传交易对账单文件', 'POST', '/order/reconcile/upload', '对账控制器', b'1', b'1', '对账控制器 手动上传交易对账单文件', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750761, 'SystemParamController#update', '更新', 'POST', '/system/param/update', '系统参数', b'1', b'1', '系统参数 更新', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750762, 'PayCallbackRecordController#page', '分页查询', 'GET', '/record/callback/page', '支付回调信息记录', b'1', b'1', '支付回调信息记录 分页查询', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750763, 'RefundOrderController#findByRefundNo', '查询退款订单详情', 'GET', '/order/refund/findByOrderNo', '支付退款控制器', b'1', b'1', '支付退款控制器 查询退款订单详情', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750764, 'ClientController#page', '分页查询', 'GET', '/client/page', '认证终端', b'1', b'1', '认证终端 分页查询', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750765, 'UserAssistController#sendPhoneForgetCaptcha', '发送找回密码手机验证码', 'POST', '/user/sendPhoneForgetCaptcha', '用户操作支撑服务', b'1', b'1', '用户操作支撑服务 发送找回密码手机验证码', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750766, 'CashierController#wxAuthCallback', '微信授权回调页面', 'GET', '/demo/cashier/wxAuthCallback', '结算台演示', b'1', b'1', '结算台演示 微信授权回调页面', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750767, 'UserInfoController#getUserSecurityInfo', '查询用户安全信息', 'GET', '/user/getUserSecurityInfo', '用户管理', b'1', b'1', '用户管理 查询用户安全信息', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750768, 'PaySyncRecordController#findById', '查询单条', 'GET', '/record/sync/findById', '支付同步记录控制器', b'1', b'1', '支付同步记录控制器 查询单条', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750769, 'DataRoleController#existsByCode', '编码是否被使用(不包含自己)', 'GET', '/data/role/existsByCodeNotId', '数据角色配置', b'1', b'1', '数据角色配置 编码是否被使用(不包含自己)', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750770, 'DataRoleController#existsByName', '名称是否被使用(不包含自己)', 'GET', '/data/role/existsByNameNotId', '数据角色配置', b'1', b'1', '数据角色配置 名称是否被使用(不包含自己)', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750771, 'UniQueryController#queryPayOrder', '支付订单查询接口', 'POST', '/uni/query/payOrder', '统一查询接口', b'1', b'1', '统一查询接口 支付订单查询接口', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750772, 'QuartzJobController#delete', '删除', 'DELETE', '/quartz/delete', '定时任务', b'1', b'1', '定时任务 删除', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750773, 'PermMenuController#add', '添加菜单权限', 'POST', '/perm/menu/add', '菜单和权限码', b'1', b'1', '菜单和权限码 添加菜单权限', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750774, 'ChinaRegionController#findAllProvinceAndCity', '获取省市二级联动列表', 'GET', '/china/region/findAllProvinceAndCity', '中国行政区划', b'1', b'1', '中国行政区划 获取省市二级联动列表', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750775, 'WeChatMenuController#page', '分页查询', 'GET', '/wechat/menu/page', '微信菜单管理', b'1', b'1', '微信菜单管理 分页查询', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750776, 'PermPathController#findById', '获取详情', 'GET', '/perm/path/findById', '请求权限管理', b'1', b'1', '请求权限管理 获取详情', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750777, 'QuartzJobController#stop', '停止', 'POST', '/quartz/stop', '定时任务', b'1', b'1', '定时任务 停止', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750778, 'UserAssistController#sendEmailChangeCaptcha', '发送更改/绑定邮箱验证码', 'POST', '/user/sendEmailChangeCaptcha', '用户操作支撑服务', b'1', b'1', '用户操作支撑服务 发送更改/绑定邮箱验证码', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750779, 'DictionaryController#page', '分页', 'GET', '/dict/page', '字典', b'1', b'1', '字典 分页', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750780, 'OnlineUserController#kickOut', '踢出用户', 'GET', '/online/user/kickOut', '在线用户', b'1', b'1', '在线用户 踢出用户', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750781, 'UniPayController#refund', '统一退款接口', 'POST', '/unipay/refund', '统一支付接口', b'1', b'1', '统一支付接口 统一退款接口', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750782, 'PayCallbackController#unionPayNotify', '云闪付支付信息回调', 'POST', '/callback/pay/union', '支付通道信息回调', b'1', b'1', '支付通道信息回调 云闪付支付信息回调', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750783, 'ReconcileOrderController#downLocalCsv', '下载系统对账单(CSV格式)', 'GET', '/order/reconcile/downLocalCsv', '对账控制器', b'1', b'1', '对账控制器 下载系统对账单(CSV格式)', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750784, 'DataRoleController#delete', '删除', 'DELETE', '/data/role/delete', '数据角色配置', b'1', b'1', '数据角色配置 删除', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750785, 'DataRoleController#deleteUserAssigns', '批量删除数据角色关联用户', 'DELETE', '/data/role/deleteUserAssigns', '数据角色配置', b'1', b'1', '数据角色配置 批量删除数据角色关联用户', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750786, 'ClientController#findById', '通过ID查询', 'GET', '/client/findById', '认证终端', b'1', b'1', '认证终端 通过ID查询', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750787, 'ClientController#existsByCode', '编码是否被使用', 'GET', '/client/existsByCode', '认证终端', b'1', b'1', '认证终端 编码是否被使用', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750788, 'FIleUpLoadController#local', '上传', 'POST', '/file/upload', '文件上传', b'1', b'1', '文件上传 上传', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750789, 'AllocationGroupController#findById', '查询详情', 'GET', '/allocation/group/findById', '分账组', b'1', b'1', '分账组 查询详情', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750790, 'PermMenuController#menuAndPermCodeTree', '获取菜单和权限码树', 'GET', '/perm/menu/menuAndPermCodeTree', '菜单和权限码', b'1', b'1', '菜单和权限码 获取菜单和权限码树', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750791, 'WeChatArticleController#page', '分页', 'GET', '/wechat/article/page', '微信文章管理', b'1', b'1', '微信文章管理 分页', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750792, 'UserInfoController#updatePassword', '修改密码', 'POST', '/user/updatePassword', '用户管理', b'1', b'1', '用户管理 修改密码', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750793, 'MessageTemplateController#existsByCode', '编码是否被使用', 'GET', '/message/template/existsByCode', '消息模板', b'1', b'1', '消息模板 编码是否被使用', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750794, 'LoginTypeController#superPage', '超级查询', 'POST', '/loginType/superPage', '登录方式管理', b'1', b'1', '登录方式管理 超级查询', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750795, 'WalletController#page', '钱包分页', 'GET', '/wallet/page', '钱包管理', b'1', b'1', '钱包管理 钱包分页', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750796, 'UserAdminController#getUserInfoWhole', '查询用户详情', 'GET', '/user/admin/getUserInfoWhole', '管理用户(管理员级别)', b'1', b'1', '管理用户(管理员级别) 查询用户详情', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750797, 'AlipayConfigController#update', '更新', 'POST', '/alipay/config/update', '支付宝配置', b'1', b'1', '支付宝配置 更新', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750798, 'UniPayController#syncRefund', '退款同步接口', 'POST', '/unipay/syncRefund', '统一支付接口', b'1', b'1', '统一支付接口 退款同步接口', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750799, 'QuartzJobController#add', '添加', 'POST', '/quartz/add', '定时任务', b'1', b'1', '定时任务 添加', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750800, 'OperateLogController#page', '分页', 'GET', '/log/operate/page', '操作日志', b'1', b'1', '操作日志 分页', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750801, 'ClientNoticeTaskController#findRecordById', '查询单条', 'GET', '/task/notice/record/findById', '客户系统通知任务', b'1', b'1', '客户系统通知任务 查询单条', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750802, 'OpenApiWebMvcResource#openapiYaml', 'openapiYaml', 'GET', '/v3/api-docs.yaml', 'OpenApiWebMvcResource', b'1', b'1', 'OpenApiWebMvcResource openapiYaml', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750803, 'PayOrderController#findById', '查询订单详情', 'GET', '/order/pay/findById', '支付订单控制器', b'1', b'1', '支付订单控制器 查询订单详情', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750804, 'WeChatQrLoginController#getStatus', '获取扫码状态', 'GET', '/token/wechat/qr/getStatus', '微信扫码登录', b'1', b'1', '微信扫码登录 获取扫码状态', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750805, 'DeptController#tree', '树状展示', 'GET', '/dept/tree', '部门管理', b'1', b'1', '部门管理 树状展示', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750806, 'WeChatMenuController#publish', '发布菜单', 'POST', '/wechat/menu/publish', '微信菜单管理', b'1', b'1', '微信菜单管理 发布菜单', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750807, 'AllocationGroupController#findReceiversByGroups', '查询分账接收方信息', 'GET', '/allocation/group/findReceiversByGroups', '分账组', b'1', b'1', '分账组 查询分账接收方信息', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750808, 'LoginLogController#deleteByDay', '清除指定天数之前的日志', 'DELETE', '/log/login/deleteByDay', '登录日志', b'1', b'1', '登录日志 清除指定天数之前的日志', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750809, 'PayOrderController#syncById', '同步支付状态', 'POST', '/order/pay/syncByOrderNo', '支付订单控制器', b'1', b'1', '支付订单控制器 同步支付状态', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750810, 'WeChatTemplateController#existsByCode', '编码是否被使用(不包含自己)', 'GET', '/wechat/template/existsByCodeNotId', '微信模板消息', b'1', b'1', '微信模板消息 编码是否被使用(不包含自己)', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750811, 'WeChatMenuController#add', '添加', 'POST', '/wechat/menu/add', '微信菜单管理', b'1', b'1', '微信菜单管理 添加', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750812, 'WeChatMenuController#clearMenu', '清空微信自定义菜单', 'POST', '/wechat/menu/clearMenu', '微信菜单管理', b'1', b'1', '微信菜单管理 清空微信自定义菜单', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750813, 'QuartzJobLogController#page', '分页', 'GET', '/quartz/log/page', '定时任务执行日志', b'1', b'1', '定时任务执行日志 分页', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750814, 'UserInfoController#updateBaseInfo', '修改用户基础信息', 'POST', '/user/updateBaseInfo', '用户管理', b'1', b'1', '用户管理 修改用户基础信息', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750815, 'PayCallbackController#aliPayNotify', '支付宝信息回调', 'POST', '/callback/pay/alipay', '支付通道信息回调', b'1', b'1', '支付通道信息回调 支付宝信息回调', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750816, 'DataRoleController#existsByCode', '编码是否被使用', 'GET', '/data/role/existsByCode', '数据角色配置', b'1', b'1', '数据角色配置 编码是否被使用', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750817, 'MessageTemplateController#delete', '删除', 'DELETE', '/message/template/delete', '消息模板', b'1', b'1', '消息模板 删除', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750818, 'LoginTypeController#findById', '通过ID查询登录方式', 'GET', '/loginType/findById', '登录方式管理', b'1', b'1', '登录方式管理 通过ID查询登录方式', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750819, 'ReconcileOrderController#page', '对账单分页', 'GET', '/order/reconcile/page', '对账控制器', b'1', b'1', '对账控制器 对账单分页', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750820, 'UnionPayConfigController#findPayWays', '支持的支付方式', 'GET', '/union/pay/config/findPayWays', '云闪付配置', b'1', b'1', '云闪付配置 支持的支付方式', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750821, 'DataRoleController#getDeptIds', '获取关联部门id', 'GET', '/data/role/getDeptIds', '数据角色配置', b'1', b'1', '数据角色配置 获取关联部门id', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750822, 'PayOrderController#close', '关闭支付记录', 'POST', '/order/pay/close', '支付订单控制器', b'1', b'1', '支付订单控制器 关闭支付记录', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750823, 'DingRobotConfigController#findById', '获取详情', 'GET', '/ding/robot/config/findById', '钉钉机器人配置', b'1', b'1', '钉钉机器人配置 获取详情', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750824, 'MessageTemplateController#update', '更新', 'POST', '/message/template/update', '消息模板', b'1', b'1', '消息模板 更新', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750825, 'CaptchaController#imgCaptcha', '获取图片验证码', 'POST', '/captcha/imgCaptcha', '验证码服务', b'1', b'1', '验证码服务 获取图片验证码', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750826, 'SystemParamController#delete', '删除', 'DELETE', '/system/param/delete', '系统参数', b'1', b'1', '系统参数 删除', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750827, 'UserInfoController#register', '注册账号', 'POST', '/user/register', '用户管理', b'1', b'1', '用户管理 注册账号', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750828, 'DictionaryItemController#add', '添加字典项(返回字典项对象)', 'POST', '/dict/item/add', '字典项', b'1', b'1', '字典项 添加字典项(返回字典项对象)', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750829, 'UserAdminController#restartPassword', '重置密码', 'POST', '/user/admin/restartPassword', '管理用户(管理员级别)', b'1', b'1', '管理用户(管理员级别) 重置密码', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750830, 'ClientController#update', '修改', 'POST', '/client/update', '认证终端', b'1', b'1', '认证终端 修改', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750831, 'SmsTemplateController#page', '分页查询', 'GET', '/sms/template/page', '短信模板配置', b'1', b'1', '短信模板配置 分页查询', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750832, 'MailConfigController#updateMailConfig', '更新邮箱配置', 'POST', '/mail/config/update', '邮箱配置', b'1', b'1', '邮箱配置 更新邮箱配置', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750833, 'UniPayController#allocation', '开启分账接口', 'POST', '/unipay/allocation', '统一支付接口', b'1', b'1', '统一支付接口 开启分账接口', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945024, 'ReconcileOrderController#downAndSave', '手动触发对账文件下载', 'POST', '/order/reconcile/downAndSave', '对账控制器', b'1', b'1', '对账控制器 手动触发对账文件下载', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945025, 'ForwardFrontController#toH5', 'toH5', 'GET', '/front/', 'ForwardFrontController', b'1', b'1', 'ForwardFrontController toH5', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945026, 'RoleController#page', '分页查询角色', 'GET', '/role/page', '角色管理', b'1', b'1', '角色管理 分页查询角色', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945027, 'TokenEndpoint#logout', '退出', 'POST', '/token/logout', '认证相关', b'1', b'1', '认证相关 退出', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945028, 'PayChannelConfigController#findById', '根据ID获取', 'GET', '/pay/channel/config/findById', '支付通道信息', b'1', b'1', '支付通道信息 根据ID获取', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945029, 'ReconcileOrderController#pageDetail', '对账明细分页', 'GET', '/order/reconcile/detail/page', '对账控制器', b'1', b'1', '对账控制器 对账明细分页', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945030, 'PasswordSecurityConfigController#getDefault', '获取配置', 'GET', '/security/password/getDefault', '密码安全策略', b'1', b'1', '密码安全策略 获取配置', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945031, 'DictionaryItemController#findById', '根据字典项ID查询', 'GET', '/dict/item/findById', '字典项', b'1', b'1', '字典项 根据字典项ID查询', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945032, 'DictionaryItemController#findByDictionaryId', '查询指定字典ID下的所有字典项', 'GET', '/dict/item/findByDictionaryId', '字典项', b'1', b'1', '字典项 查询指定字典ID下的所有字典项', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945033, 'ForwardH5Controller#toH5', 'toH5', 'GET', '/h5/', 'ForwardH5Controller', b'1', b'1', 'ForwardH5Controller toH5', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945034, 'SiteMessageController#findById', '消息详情', 'GET', '/site/message/findById', '站内信', b'1', b'1', '站内信 消息详情', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945035, 'DictionaryController#update', '更新', 'POST', '/dict/update', '字典', b'1', b'1', '字典 更新', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945036, 'FIleUpLoadController#download', '下载文件(流量会经过后端)', 'GET', '/file/download/{id}', '文件上传', b'1', b'1', '文件上传 下载文件(流量会经过后端)', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945037, 'SiteMessageController#pageBySender', '发送消息分页', 'GET', '/site/message/pageBySender', '站内信', b'1', b'1', '站内信 发送消息分页', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945038, 'AllocationGroupController#unbindReceiver', '取消绑定接收者', 'POST', '/allocation/group/unbindReceiver', '分账组', b'1', b'1', '分账组 取消绑定接收者', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945039, 'AlipayConfigController#readPem', '读取证书文件内容', 'POST', '/alipay/config/readPem', '支付宝配置', b'1', b'1', '支付宝配置 读取证书文件内容', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945040, 'ClientNoticeReceiveController#refund', '退款消息(对象)', 'POST', '/demo/callback/refundObject', '回调测试', b'1', b'1', '回调测试 退款消息(对象)', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945041, 'PermMenuController#update', '修改菜单权限', 'POST', '/perm/menu/update', '菜单和权限码', b'1', b'1', '菜单和权限码 修改菜单权限', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945042, 'QuartzJobController#update', '更新', 'POST', '/quartz/update', '定时任务', b'1', b'1', '定时任务 更新', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945043, 'RoleController#dropdown', '角色下拉框', 'GET', '/role/dropdown', '角色管理', b'1', b'1', '角色管理 角色下拉框', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945044, 'AggregateController#aliH5Pay', '支付宝通过聚合支付码发起支付', 'POST', '/demo/aggregate/aliH5Pay', '聚合支付', b'1', b'1', '聚合支付 支付宝通过聚合支付码发起支付', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945045, 'UserRoleController#findRolesByUser', '根据用户ID获取到角色集合', 'GET', '/user/role/findRolesByUser', '用户角色管理', b'1', b'1', '用户角色管理 根据用户ID获取到角色集合', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945046, 'UserInfoController#existsPhone', '手机号是否被使用', 'GET', '/user/existsPhone', '用户管理', b'1', b'1', '用户管理 手机号是否被使用', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945047, 'ClientNoticeReceiveController#pay', '支付消息(对象接收)', 'POST', '/demo/callback/payObject', '回调测试', b'1', b'1', '回调测试 支付消息(对象接收)', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945048, 'PayMethodInfoController#findAll', '获取全部', 'GET', '/pay/method/info/findAll', '支付方式管理', b'1', b'1', '支付方式管理 获取全部', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945049, 'LoginTypeController#page', '分页查询登录方式', 'GET', '/loginType/page', '登录方式管理', b'1', b'1', '登录方式管理 分页查询登录方式', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945050, 'DictionaryItemController#findAllByEnable', '获取启用的字典项列表', 'GET', '/dict/item/findAllByEnable', '字典项', b'1', b'1', '字典项 获取启用的字典项列表', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945051, 'RolePathController#save', '保存角色请求权限关联关系', 'POST', '/role/path/save', '角色请求权限消息关系', b'1', b'1', '角色请求权限消息关系 保存角色请求权限关联关系', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945052, 'WalletController#findById', '查询钱包详情', 'GET', '/wallet/findById', '钱包管理', b'1', b'1', '钱包管理 查询钱包详情', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945053, 'OnlineUserController#pageByLogin', '登录用户分页', 'GET', '/online/user/pageByLogin', '在线用户', b'1', b'1', '在线用户 登录用户分页', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945054, 'MailConfigController#delete', '删除', 'DELETE', '/mail/config/delete', '邮箱配置', b'1', b'1', '邮箱配置 删除', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945055, 'DictionaryController#delete', '根据id删除', 'DELETE', '/dict/delete', '字典', b'1', b'1', '字典 根据id删除', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945056, 'PayOrderController#getExtraById', '查询支付订单扩展信息', 'GET', '/order/pay/getExtraById', '支付订单控制器', b'1', b'1', '支付订单控制器 查询支付订单扩展信息', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945057, 'SiteMessageController#send', '发送站内信', 'POST', '/site/message/send', '站内信', b'1', b'1', '站内信 发送站内信', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945058, 'SiteMessageController#delete', '删除消息', 'DELETE', '/site/message/delete', '站内信', b'1', b'1', '站内信 删除消息', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945059, 'AlipayConfigController#findPayWays', '支付宝支持支付方式', 'GET', '/alipay/config/findPayWays', '支付宝配置', b'1', b'1', '支付宝配置 支付宝支持支付方式', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945060, 'SiteMessageController#listByReceiveNotRead', '小程序获取未读的接收消息标题列表', 'GET', '/site/message/listByReceiveNotRead', '站内信', b'1', b'1', '站内信 小程序获取未读的接收消息标题列表', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945061, 'ClientNoticeReceiveController#refund', '退款消息', 'POST', '/demo/callback/refund', '回调测试', b'1', b'1', '回调测试 退款消息', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945062, 'CashierController#getPayEnv', '获取支付环境', 'GET', '/demo/cashier/getPayEnv', '结算台演示', b'1', b'1', '结算台演示 获取支付环境', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945063, 'UserAdminController#banBatch', '批量封禁用户', 'POST', '/user/admin/banBatch', '管理用户(管理员级别)', b'1', b'1', '管理用户(管理员级别) 批量封禁用户', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945064, 'PayReturnController#wechat', '微信同步通知', 'GET', '/return/pay/wechat', '支付同步通知', b'1', b'1', '支付同步通知 微信同步通知', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945065, 'DictionaryItemController#existsByCode', '编码是否被使用(不包含自己)', 'GET', '/dict/item/existsByCodeNotId', '字典项', b'1', b'1', '字典项 编码是否被使用(不包含自己)', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945066, 'DictionaryItemController#pageByDictionaryId', '分页查询指定字典下的字典项', 'GET', '/dict/item/pageByDictionaryId', '字典项', b'1', b'1', '字典项 分页查询指定字典下的字典项', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945067, 'AggregateController#wxAuthCallback', '微信授权回调页面', 'GET', '/demo/aggregate/wxAuthCallback', '聚合支付', b'1', b'1', '聚合支付 微信授权回调页面', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945068, 'LoginTypeController#existsByCode', '编码是否被使用(不包含自己)', 'GET', '/loginType/existsByCodeNotId', '登录方式管理', b'1', b'1', '登录方式管理 编码是否被使用(不包含自己)', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945069, 'MessageTemplateController#page', '分页', 'GET', '/message/template/page', '消息模板', b'1', b'1', '消息模板 分页', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945070, 'FIleUpLoadController#getFilePreviewUrl', '获取文件预览地址(流量会经过后端)', 'GET', '/file/getFilePreviewUrl', '文件上传', b'1', b'1', '文件上传 获取文件预览地址(流量会经过后端)', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945071, 'LoginTypeController#findByCode', '通过code查询登录方式', 'GET', '/loginType/findByCode', '登录方式管理', b'1', b'1', '登录方式管理 通过code查询登录方式', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945072, 'PayReturnController#alipay', '支付宝同步跳转连接', 'GET', '/return/pay/alipay', '支付同步通知', b'1', b'1', '支付同步通知 支付宝同步跳转连接', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945073, 'PayOrderController#findByOrderNo', '查询订单详情', 'GET', '/order/pay/findByOrderNo', '支付订单控制器', b'1', b'1', '支付订单控制器 查询订单详情', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945074, 'ReconcileOrderController#findById', '对账单详情', 'GET', '/order/reconcile/findById', '对账控制器', b'1', b'1', '对账控制器 对账单详情', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945075, 'UserAssistController#sendPhoneChangeCaptcha', '发送更改/绑定手机号验证码', 'POST', '/user/sendPhoneChangeCaptcha', '用户操作支撑服务', b'1', b'1', '用户操作支撑服务 发送更改/绑定手机号验证码', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945076, 'MultipleOpenApiWebMvcResource#openapiYaml', 'openapiYaml', 'GET', '/v3/api-docs.yaml/{group}', 'MultipleOpenApiWebMvcResource', b'1', b'1', 'MultipleOpenApiWebMvcResource openapiYaml', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945077, 'PermMenuController#delete', '删除', 'DELETE', '/perm/menu/delete', '菜单和权限码', b'1', b'1', '菜单和权限码 删除', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945078, 'AggregateController#barCodePay', '通过付款码发起支付', 'POST', '/demo/aggregate/barCodePay', '聚合支付', b'1', b'1', '聚合支付 通过付款码发起支付', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945079, 'SiteMessageController#pageByReceive', '接收消息分页', 'GET', '/site/message/pageByReceive', '站内信', b'1', b'1', '站内信 接收消息分页', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945080, 'ReconcileOrderController#downDiffCsv', '下载对账差异单(CSV格式)', 'GET', '/order/reconcile/downDiffCsv', '对账控制器', b'1', b'1', '对账控制器 下载对账差异单(CSV格式)', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945081, 'WechatNoticeConfigController#update', '更新微信消息通知配置', 'POST', '/wx/notice/update', '微信消息通知配置', b'1', b'1', '微信消息通知配置 更新微信消息通知配置', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945082, 'AllocationReceiverController#page', '分页', 'GET', '/allocation/receiver/page', '分账接收方控制器', b'1', b'1', '分账接收方控制器 分页', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945083, 'ThirdLoginController#toLoginUrl', '跳转到登陆页', 'GET', '/auth/third/toLoginUrl/{loginType}', '三方登录', b'1', b'1', '三方登录 跳转到登陆页', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945084, 'AlipayConfigController#getConfig', '获取配置', 'GET', '/alipay/config/getConfig', '支付宝配置', b'1', b'1', '支付宝配置 获取配置', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945085, 'AllocationOrderController#findChannels', '获取可以分账的通道', 'GET', '/order/allocation/findChannels', '分账订单控制器', b'1', b'1', '分账订单控制器 获取可以分账的通道', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945086, 'MailConfigController#page', '分页', 'GET', '/mail/config/page', '邮箱配置', b'1', b'1', '邮箱配置 分页', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945087, 'CashierController#simplePayCashier', '创建支付订单并发起', 'POST', '/demo/cashier/simplePayCashier', '结算台演示', b'1', b'1', '结算台演示 创建支付订单并发起', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945088, 'ClientController#existsByCode', '编码是否被使用(不包含自己)', 'GET', '/client/existsByCodeNotId', '认证终端', b'1', b'1', '认证终端 编码是否被使用(不包含自己)', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945089, 'UserInfoController#existsEmail', '邮箱是否被使用', 'GET', '/user/existsEmail', '用户管理', b'1', b'1', '用户管理 邮箱是否被使用', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945090, 'WecomRobotConfigController#existsByCode', '编码是否被使用', 'GET', '/wecom/robot/config/existsByCode', '企业微信机器人配置', b'1', b'1', '企业微信机器人配置 编码是否被使用', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945091, 'ClientNoticeReceiveController#pay', '支付消息(map接收)', 'POST', '/demo/callback/pay', '回调测试', b'1', b'1', '回调测试 支付消息(map接收)', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945092, 'RoleMenuController#findTreeByRole', '获取当前角色下可见的菜单和权限码树(分配时用)', 'GET', '/role/menu/findTreeByRole', '角色菜单权限关系', b'1', b'1', '角色菜单权限关系 获取当前角色下可见的菜单和权限码树(分配时用)', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945093, 'MessageTemplateController#add', '添加', 'POST', '/message/template/add', '消息模板', b'1', b'1', '消息模板 添加', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945094, 'WalletConfigController#getConfig', '获取配置', 'GET', '/wallet/config/getConfig', '钱包配置', b'1', b'1', '钱包配置 获取配置', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945095, 'WechatNoticeConfigController#getConfig', '获取微信消息通知配置', 'GET', '/wx/notice/getConfig', '微信消息通知配置', b'1', b'1', '微信消息通知配置 获取微信消息通知配置', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945096, 'DictionaryController#existsByCode', '编码是否被使用', 'GET', '/dict/existsByCode', '字典', b'1', b'1', '字典 编码是否被使用', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945097, 'RoleMenuController#findMenuIds', '获取权限菜单id列表,不包含资源权限', 'GET', '/role/menu/findMenuIds', '角色菜单权限关系', b'1', b'1', '角色菜单权限关系 获取权限菜单id列表,不包含资源权限', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945098, 'PayRepairRecordController#findById', '查询单条', 'GET', '/record/repair/findById', '支付修复记录', b'1', b'1', '支付修复记录 查询单条', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945099, 'RoleController#delete', '删除角色', 'DELETE', '/role/delete', '角色管理', b'1', b'1', '角色管理 删除角色', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945100, 'AllocationGroupController#page', '分页', 'GET', '/allocation/group/page', '分账组', b'1', b'1', '分账组 分页', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945101, 'UserDeptController#findIdsByUser', '根据用户ID获取到部门id集合', 'GET', '/user/dept/findIdsByUser', '用户部门关联关系', b'1', b'1', '用户部门关联关系 根据用户ID获取到部门id集合', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945102, 'SwaggerWelcomeWebMvc#redirectToUi', 'redirectToUi', 'GET', '/swagger-ui.html', 'SwaggerWelcomeWebMvc', b'1', b'1', 'SwaggerWelcomeWebMvc redirectToUi', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945103, 'RoleController#update', '修改角色(返回角色对象)', 'POST', '/role/update', '角色管理', b'1', b'1', '角色管理 修改角色(返回角色对象)', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945104, 'UniPayAssistController#getWxAuthUrl', '获取微信OAuth2授权链接', 'POST', '/unipay/assist/getWxAuthUrl', '支付支撑接口', b'1', b'1', '支付支撑接口 获取微信OAuth2授权链接', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945105, 'PermMenuController#resourceList', '资源(权限码)列表', 'GET', '/perm/menu/resourceList', '菜单和权限码', b'1', b'1', '菜单和权限码 资源(权限码)列表', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945106, 'PasswordSecurityConfigController#addOrUpdate', '新增或添加密码安全配置', 'POST', '/security/password/addOrUpdate', '密码安全策略', b'1', b'1', '密码安全策略 新增或添加密码安全配置', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945107, 'PayGatewayNoticeController#aliPayNotice', '支付宝消息通知', 'POST', '/gateway/notice/alipay', '三方支付网关消息通知', b'1', b'1', '三方支付网关消息通知 支付宝消息通知', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945108, 'SmsTemplateController#findAll', '查询所有', 'GET', '/sms/template/findAll', '短信模板配置', b'1', b'1', '短信模板配置 查询所有', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945109, 'PasswordSecurityConfigController#check', '登录后检查密码相关的情况', 'GET', '/security/password/check', '密码安全策略', b'1', b'1', '密码安全策略 登录后检查密码相关的情况', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945110, 'SystemMonitorController#getRedisInfo', '获取Redis信息', 'GET', '/monitor/system/getRedisInfo', '系统信息监控', b'1', b'1', '系统信息监控 获取Redis信息', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945111, 'AllocationGroupController#delete', '删除', 'POST', '/allocation/group/delete', '分账组', b'1', b'1', '分账组 删除', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945112, 'SystemMonitorController#getSystemInfo', '获取系统消息', 'GET', '/monitor/system/getSystemInfo', '系统信息监控', b'1', b'1', '系统信息监控 获取系统消息', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945113, 'MailConfigController#existsByCode', '编码是否被使用(不包含自己)', 'GET', '/mail/config/existsByCodeNotId', '邮箱配置', b'1', b'1', '邮箱配置 编码是否被使用(不包含自己)', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945114, 'AllocationReceiverController#add', '新增', 'POST', '/allocation/receiver/add', '分账接收方控制器', b'1', b'1', '分账接收方控制器 新增', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945115, 'AllocationOrderController#findById', '查询详情', 'GET', '/order/allocation/findById', '分账订单控制器', b'1', b'1', '分账订单控制器 查询详情', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945116, 'AllocationOrderController#findDetailById', '查询明细详情', 'GET', '/order/allocation/detail/findById', '分账订单控制器', b'1', b'1', '分账订单控制器 查询明细详情', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945117, 'SystemParamController#existsByKeyNotId', '判断编码是否存在(不包含自己)', 'GET', '/system/param/existsByKeyNotId', '系统参数', b'1', b'1', '系统参数 判断编码是否存在(不包含自己)', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945118, 'WeChatMediaController#pageNews', '图文素材分页', 'GET', '/wechat/media/pageNews', '微信素材管理', b'1', b'1', '微信素材管理 图文素材分页', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945119, 'RoleController#existsByCode', '编码是否被使用(不包含自己)', 'GET', '/role/existsByCodeNotId', '角色管理', b'1', b'1', '角色管理 编码是否被使用(不包含自己)', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945120, 'DataRoleController#page', '分页', 'GET', '/data/role/page', '数据角色配置', b'1', b'1', '数据角色配置 分页', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945121, 'OperateLogController#deleteByDay', '清除指定天数的日志', 'DELETE', '/log/operate/deleteByDay', '操作日志', b'1', b'1', '操作日志 清除指定天数的日志', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945122, 'OnlineUserController#getSessionByUserId', '获取用户链接信息', 'GET', '/online/user/getSessionByUserId', '在线用户', b'1', b'1', '在线用户 获取用户链接信息', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945123, 'LoginTypeController#add', '添加登录方式', 'POST', '/loginType/add', '登录方式管理', b'1', b'1', '登录方式管理 添加登录方式', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945124, 'UnionPayConfigController#getConfig', '获取配置', 'GET', '/union/pay/config/getConfig', '云闪付配置', b'1', b'1', '云闪付配置 获取配置', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945125, 'WeChatMenuController#delete', '删除', 'DELETE', '/wechat/menu/delete', '微信菜单管理', b'1', b'1', '微信菜单管理 删除', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945126, 'BaseApiController#authEcho', '回声测试(必须要进行登录)', 'GET', '/auth/echo', '系统基础接口', b'1', b'1', '系统基础接口 回声测试(必须要进行登录)', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945127, 'WeChatQrLoginController#applyQrCode', '申请登录用QR码', 'POST', '/token/wechat/qr/applyQrCode', '微信扫码登录', b'1', b'1', '微信扫码登录 申请登录用QR码', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945128, 'FIleUpLoadController#delete', '删除', 'DELETE', '/file/delete', '文件上传', b'1', b'1', '文件上传 删除', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945129, 'CockpitReportController#getRefundChannelInfo', '显示通道退款订单金额和订单数', 'GET', '/report/cockpit/getRefundChannelInfo', '驾驶舱接口', b'1', b'1', '驾驶舱接口 显示通道退款订单金额和订单数', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945130, 'RoleController#add', '添加角色(返回角色对象)', 'POST', '/role/add', '角色管理', b'1', b'1', '角色管理 添加角色(返回角色对象)', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945131, 'ClientController#add', '添加', 'POST', '/client/add', '认证终端', b'1', b'1', '认证终端 添加', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945132, 'UserInfoController#forgetPasswordByPhone', '通过手机号重置密码', 'POST', '/user/forgetPasswordByPhone', '用户管理', b'1', b'1', '用户管理 通过手机号重置密码', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945133, 'RolePathController#findPathsByRole', '获取当前用户角色下可见的请求权限列表(分配时用)', 'GET', '/role/path/findPathsByRole', '角色请求权限消息关系', b'1', b'1', '角色请求权限消息关系 获取当前用户角色下可见的请求权限列表(分配时用)', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945134, 'WeChatMenuController#findAll', '查询所有', 'GET', '/wechat/menu/findAll', '微信菜单管理', b'1', b'1', '微信菜单管理 查询所有', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945135, 'ClientController#findAll', '查询所有', 'GET', '/client/findAll', '认证终端', b'1', b'1', '认证终端 查询所有', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945136, 'RefundOrderController#findExtraById', '查询扩展信息', 'GET', '/order/refund/findExtraById', '支付退款控制器', b'1', b'1', '支付退款控制器 查询扩展信息', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945137, 'UserDataRoleController#saveAssignBatch', '给用户分配权限(批量)', 'POST', '/user/data/role/saveAssignBatch', '用户数据角色配置', b'1', b'1', '用户数据角色配置 给用户分配权限(批量)', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945138, 'LoginLogController#page', '分页', 'GET', '/log/login/page', '登录日志', b'1', b'1', '登录日志 分页', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945139, 'FIleUpLoadController#findById', '获取单条详情', 'GET', '/file/findById', '文件上传', b'1', b'1', '文件上传 获取单条详情', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945140, 'MessageTemplateController#findById', '获取详情', 'GET', '/message/template/findById', '消息模板', b'1', b'1', '消息模板 获取详情', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945141, 'DataRoleController#saveUserAssign', '保存数据角色关联用户权限', 'POST', '/data/role/saveUserAssign', '数据角色配置', b'1', b'1', '数据角色配置 保存数据角色关联用户权限', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945142, 'ThirdLoginController#callback', '扫码后回调', 'GET', '/auth/third/callback/{loginType}', '三方登录', b'1', b'1', '三方登录 扫码后回调', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945143, 'SmsChannelConfigController#findByCode', '通过Code查询', 'GET', '/sms/config/findByCode', '短信渠道配置', b'1', b'1', '短信渠道配置 通过Code查询', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945144, 'PayApiConfigController#findById', '根据ID获取', 'GET', '/pay/api/config/findById', '支付接口配置', b'1', b'1', '支付接口配置 根据ID获取', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945145, 'DataVersionLogController#findById', '获取', 'GET', '/log/dataVersion/findById', '数据版本日志', b'1', b'1', '数据版本日志 获取', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945146, 'PermPathController#update', '更新权限', 'POST', '/perm/path/update', '请求权限管理', b'1', b'1', '请求权限管理 更新权限', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945147, 'MailConfigController#setUpActivity', '设置启用的邮箱配置', 'POST', '/mail/config/setUpActivity', '邮箱配置', b'1', b'1', '邮箱配置 设置启用的邮箱配置', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945148, 'SmsTemplateController#findById', '通过ID查询', 'GET', '/sms/template/findById', '短信模板配置', b'1', b'1', '短信模板配置 通过ID查询', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945149, 'DingRobotConfigController#add', '新增机器人配置', 'POST', '/ding/robot/config/add', '钉钉机器人配置', b'1', b'1', '钉钉机器人配置 新增机器人配置', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945150, 'PayCloseRecordController#findById', '查询单条', 'GET', '/record/close/findById', '支付订单关闭记录', b'1', b'1', '支付订单关闭记录 查询单条', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945151, 'DataVersionLogController#page', '分页', 'GET', '/log/dataVersion/page', '数据版本日志', b'1', b'1', '数据版本日志 分页', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945152, 'OpenApiWebMvcResource#openapiJson', 'openapiJson', 'GET', '/v3/api-docs', 'OpenApiWebMvcResource', b'1', b'1', 'OpenApiWebMvcResource openapiJson', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945153, 'PermPathController#findAll', '权限列表', 'GET', '/perm/path/findAll', '请求权限管理', b'1', b'1', '请求权限管理 权限列表', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945154, 'UserAdminController#add', '添加用户', 'POST', '/user/admin/add', '管理用户(管理员级别)', b'1', b'1', '管理用户(管理员级别) 添加用户', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945155, 'PayCallbackRecordController#findById', '查询单条', 'GET', '/record/callback/findById', '支付回调信息记录', b'1', b'1', '支付回调信息记录 查询单条', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945156, 'WecomRobotConfigController#page', '分页', 'GET', '/wecom/robot/config/page', '企业微信机器人配置', b'1', b'1', '企业微信机器人配置 分页', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945157, 'WeChatMenuController#update', '修改', 'POST', '/wechat/menu/update', '微信菜单管理', b'1', b'1', '微信菜单管理 修改', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945158, 'TestController#lock2', '锁测试2', 'GET', '/test/lock2', '测试', b'1', b'1', '测试 锁测试2', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945159, 'DataRoleController#findAll', '查询全部', 'GET', '/data/role/findAll', '数据角色配置', b'1', b'1', '数据角色配置 查询全部', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945160, 'UserInfoController#forgetPasswordByEmail', '通过邮箱重置密码', 'POST', '/user/forgetPasswordByEmail', '用户管理', b'1', b'1', '用户管理 通过邮箱重置密码', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945161, 'RefundOrderController#page', '分页查询', 'GET', '/order/refund/page', '支付退款控制器', b'1', b'1', '支付退款控制器 分页查询', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945162, 'AllocationOrderController#finish', '分账完结', 'POST', '/order/allocation/finish', '分账订单控制器', b'1', b'1', '分账订单控制器 分账完结', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945163, 'PayApiConfigController#findAll', '获取全部', 'GET', '/pay/api/config/findAll', '支付接口配置', b'1', b'1', '支付接口配置 获取全部', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945164, 'ClientNoticeTaskController#resetSend', '重新发送消息通知', 'POST', '/task/notice/resetSend', '客户系统通知任务', b'1', b'1', '客户系统通知任务 重新发送消息通知', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945165, 'PlatformConfigController#update', '更新平台配置项', 'POST', '/platform/config/update', '支付平台配置控制器', b'1', b'1', '支付平台配置控制器 更新平台配置项', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945166, 'UserRoleController#saveAssign', '给用户分配角色', 'POST', '/user/role/saveAssign', '用户角色管理', b'1', b'1', '用户角色管理 给用户分配角色', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945167, 'UniPayController#close', '支付关闭接口', 'POST', '/unipay/close', '统一支付接口', b'1', b'1', '统一支付接口 支付关闭接口', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945168, 'UserDataRoleController#findDataRoleIdByUser', '根据用户ID获取到数据角色Id', 'GET', '/user/data/role/findDataRoleIdByUser', '用户数据角色配置', b'1', b'1', '用户数据角色配置 根据用户ID获取到数据角色Id', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945169, 'MailConfigController#existsByCode', '编码是否被使用', 'GET', '/mail/config/existsByCode', '邮箱配置', b'1', b'1', '邮箱配置 编码是否被使用', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945170, 'AllocationGroupController#updateRate', '修改分账比例', 'POST', '/allocation/group/updateRate', '分账组', b'1', b'1', '分账组 修改分账比例', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945171, 'WeChatPayConfigController#getConfig', '获取配置', 'GET', '/wechat/pay/config/getConfig', '微信支付配置', b'1', b'1', '微信支付配置 获取配置', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945172, 'AllocationReceiverController#findChannels', '获取可以分账的通道', 'GET', '/allocation/receiver/findChannels', '分账接收方控制器', b'1', b'1', '分账接收方控制器 获取可以分账的通道', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945173, 'UserAssistController#validateCurrentChangeEmailCaptcha', '验证当前用户发送更改邮箱验证码', 'GET', '/user/validateCurrentChangeEmailCaptcha', '用户操作支撑服务', b'1', b'1', '用户操作支撑服务 验证当前用户发送更改邮箱验证码', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945174, 'UserRoleController#saveAssignBatch', '给用户分配角色(批量)', 'POST', '/user/role/saveAssignBatch', '用户角色管理', b'1', b'1', '用户角色管理 给用户分配角色(批量)', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945175, 'ClientNoticeTaskController#page', '分页查询', 'GET', '/task/notice/page', '客户系统通知任务', b'1', b'1', '客户系统通知任务 分页查询', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945176, 'UserAdminController#getByEmail', '根据邮箱查询用户', 'GET', '/user/admin/getByEmail', '管理用户(管理员级别)', b'1', b'1', '管理用户(管理员级别) 根据邮箱查询用户', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945177, 'RefundOrderController#syncByRefundNo', '退款同步', 'POST', '/order/refund/syncByRefundNo', '支付退款控制器', b'1', b'1', '支付退款控制器 退款同步', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945178, 'DeptController#delete', '普通删除', 'DELETE', '/dept/delete', '部门管理', b'1', b'1', '部门管理 普通删除', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945179, 'SystemParamController#page', '分页', 'GET', '/system/param/page', '系统参数', b'1', b'1', '系统参数 分页', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945180, 'DingRobotConfigController#existsByCode', '编码是否被使用(不包含自己)', 'GET', '/ding/robot/config/existsByCodeNotId', '钉钉机器人配置', b'1', b'1', '钉钉机器人配置 编码是否被使用(不包含自己)', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945181, 'AllocationReceiverController#update', '修改', 'POST', '/allocation/receiver/update', '分账接收方控制器', b'1', b'1', '分账接收方控制器 修改', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945182, 'AggregateController#qrPayPage', '聚合支付扫码跳转中间页', 'GET', '/demo/aggregate/qrPayPage/{code}', '聚合支付', b'1', b'1', '聚合支付 聚合支付扫码跳转中间页', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945183, 'UserAdminController#getByPhone', '根据手机号查询用户', 'GET', '/user/admin/getByPhone', '管理用户(管理员级别)', b'1', b'1', '管理用户(管理员级别) 根据手机号查询用户', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945184, 'AllocationOrderController#findDetailsByOrderId', '分账明细列表', 'GET', '/order/allocation/detail/findAll', '分账订单控制器', b'1', b'1', '分账订单控制器 分账明细列表', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945185, 'LoginLogController#findById', '获取', 'GET', '/log/login/findById', '登录日志', b'1', b'1', '登录日志 获取', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945186, 'WalletController#existsByUserId', '判断用户是否开通了钱包', 'GET', '/wallet/existsByUserId', '钱包管理', b'1', b'1', '钱包管理 判断用户是否开通了钱包', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945187, 'MailConfigController#add', '增加新邮箱配置', 'POST', '/mail/config/add', '邮箱配置', b'1', b'1', '邮箱配置 增加新邮箱配置', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945188, 'RoleController#existsByName', '名称是否被使用(不包含自己)', 'GET', '/role/existsByNameNotId', '角色管理', b'1', b'1', '角色管理 名称是否被使用(不包含自己)', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945189, 'PayMethodInfoController#findById', '根据ID获取', 'GET', '/pay/method/info/findById', '支付方式管理', b'1', b'1', '支付方式管理 根据ID获取', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945190, 'UserAdminController#restartPasswordBatch', '批量重置密码', 'POST', '/user/admin/restartPasswordBatch', '管理用户(管理员级别)', b'1', b'1', '管理用户(管理员级别) 批量重置密码', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945191, 'DictionaryItemController#existsByCode', '编码是否被使用', 'GET', '/dict/item/existsByCode', '字典项', b'1', b'1', '字典项 编码是否被使用', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945192, 'AllocationReceiverController#delete', '删除', 'POST', '/allocation/receiver/delete', '分账接收方控制器', b'1', b'1', '分账接收方控制器 删除', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945193, 'UserDeptController#findAllByUser', '根据用户ID获取到部门集合', 'GET', '/user/dept/findAllByUser', '用户部门关联关系', b'1', b'1', '用户部门关联关系 根据用户ID获取到部门集合', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945194, 'ClientNoticeTaskController#findById', '查询单条', 'GET', '/task/notice/findById', '客户系统通知任务', b'1', b'1', '客户系统通知任务 查询单条', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945195, 'UserThirdController#getThirdBindInfo', '获取绑定详情', 'GET', '/user/third/getThirdBindInfo', '用户三方登录管理', b'1', b'1', '用户三方登录管理 获取绑定详情', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945196, 'OperateLogController#findById', '获取', 'GET', '/log/operate/findById', '操作日志', b'1', b'1', '操作日志 获取', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945197, 'MailConfigController#findById', '通过 id 获取指定邮箱配置', 'GET', '/mail/config/findById', '邮箱配置', b'1', b'1', '邮箱配置 通过 id 获取指定邮箱配置', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945198, 'AggregateController#getWxJsapiPay', '获取微信支付调起Jsapi支付的信息', 'POST', '/demo/aggregate/getWxJsapiPay', '聚合支付', b'1', b'1', '聚合支付 获取微信支付调起Jsapi支付的信息', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945199, 'PermPathController#delete', '删除权限', 'DELETE', '/perm/path/delete', '请求权限管理', b'1', b'1', '请求权限管理 删除权限', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945200, 'WeChatPayConfigController#findPayWays', '微信支持支付方式', 'GET', '/wechat/pay/config/findPayWays', '微信支付配置', b'1', b'1', '微信支付配置 微信支持支付方式', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945201, 'UserAssistController#validatePhoneChangeCaptcha', '验证改/绑定手机验证码', 'GET', '/user/validatePhoneChangeCaptcha', '用户操作支撑服务', b'1', b'1', '用户操作支撑服务 验证改/绑定手机验证码', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945202, 'UserAssistController#validateEmailForgetCaptcha', '验证找回密码邮箱验证码', 'GET', '/user/validateEmailForgetCaptcha', '用户操作支撑服务', b'1', b'1', '用户操作支撑服务 验证找回密码邮箱验证码', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945203, 'ReconcileOrderController#downOriginal', '下载原始交易对账单文件', 'GET', '/order/reconcile/downOriginal', '对账控制器', b'1', b'1', '对账控制器 下载原始交易对账单文件', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945204, 'SmsChannelConfigController#update', '修改', 'POST', '/sms/config/update', '短信渠道配置', b'1', b'1', '短信渠道配置 修改', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945205, 'LoginTypeController#delete', '删除登录方式', 'DELETE', '/loginType/delete', '登录方式管理', b'1', b'1', '登录方式管理 删除登录方式', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945206, 'DeptController#update', '更新', 'POST', '/dept/update', '部门管理', b'1', b'1', '部门管理 更新', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945207, 'WeChatTemplateController#sync', '同步消息模板数据', 'POST', '/wechat/template/sync', '微信模板消息', b'1', b'1', '微信模板消息 同步消息模板数据', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945208, 'UserDeptController#saveAssignBatch', '给用户分配部门(批量)', 'POST', '/user/dept/saveAssignBatch', '用户部门关联关系', b'1', b'1', '用户部门关联关系 给用户分配部门(批量)', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945209, 'UserAdminController#unlockBatch', '批量解锁用户', 'POST', '/user/admin/unlockBatch', '管理用户(管理员级别)', b'1', b'1', '管理用户(管理员级别) 批量解锁用户', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945210, 'WecomRobotConfigController#existsByCode', '编码是否被使用(不包含自己)', 'GET', '/wecom/robot/config/existsByCodeNotId', '企业微信机器人配置', b'1', b'1', '企业微信机器人配置 编码是否被使用(不包含自己)', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945211, 'WeChatPayConfigController#update', '更新', 'POST', '/wechat/pay/config/update', '微信支付配置', b'1', b'1', '微信支付配置 更新', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945212, 'UserThirdController#findById', '获取详情', 'POST', '/user/third/findById', '用户三方登录管理', b'1', b'1', '用户三方登录管理 获取详情', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945213, 'RefundOrderController#resetRefund', '重新发起退款', 'POST', '/order/refund/resetRefund', '支付退款控制器', b'1', b'1', '支付退款控制器 重新发起退款', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945214, 'LoginTypeController#update', '修改登录方式(返回登录方式对象)', 'POST', '/loginType/update', '登录方式管理', b'1', b'1', '登录方式管理 修改登录方式(返回登录方式对象)', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945215, 'ReconcileOrderController#findDetailById', '对账明细详情', 'GET', '/order/reconcile/detail/findById', '对账控制器', b'1', b'1', '对账控制器 对账明细详情', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945216, 'QuartzJobController#execute', '立即执行', 'POST', '/quartz/execute', '定时任务', b'1', b'1', '定时任务 立即执行', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945217, 'QuartzJobController#start', '启动', 'POST', '/quartz/start', '定时任务', b'1', b'1', '定时任务 启动', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945218, 'DictionaryController#findAll', '查询全部', 'GET', '/dict/findAll', '字典', b'1', b'1', '字典 查询全部', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945219, 'WeChatMediaController#deleteFile', '删除素材', 'DELETE', '/wechat/media/deleteFile', '微信素材管理', b'1', b'1', '微信素材管理 删除素材', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945220, 'UniPayController#allocationFinish', '分账完结接口', 'POST', '/unipay/allocationFinish', '统一支付接口', b'1', b'1', '统一支付接口 分账完结接口', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945221, 'DataRoleController#update', '更新', 'POST', '/data/role/update', '数据角色配置', b'1', b'1', '数据角色配置 更新', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945222, 'UnionPayConfigController#toBase64', '读取证书文件内容', 'POST', '/union/pay/config/toBase64', '云闪付配置', b'1', b'1', '云闪付配置 读取证书文件内容', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945223, 'LoginTypeController#findAll', '查询所有的登录方式', 'GET', '/loginType/findAll', '登录方式管理', b'1', b'1', '登录方式管理 查询所有的登录方式', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945224, 'UserInfoController#findUsernameByPhoneCaptcha', '根据手机验证码查询账号', 'GET', '/user/findUsernameByPhoneCaptcha', '用户管理', b'1', b'1', '用户管理 根据手机验证码查询账号', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945225, 'UserAssistController#sendCurrentPhoneChangeCaptcha', '给当前用户发送更改手机号验证码', 'POST', '/user/sendCurrentPhoneChangeCaptcha', '用户操作支撑服务', b'1', b'1', '用户操作支撑服务 给当前用户发送更改手机号验证码', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945226, 'DeptController#add', '添加', 'POST', '/dept/add', '部门管理', b'1', b'1', '部门管理 添加', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945227, 'SystemParamController#findById', '获取单条', 'GET', '/system/param/findById', '系统参数', b'1', b'1', '系统参数 获取单条', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945228, 'QuartzJobLogController#findById', '单条', 'GET', '/quartz/log/findById', '定时任务执行日志', b'1', b'1', '定时任务执行日志 单条', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945229, 'RoleController#existsByCode', '编码是否被使用', 'GET', '/role/existsByCode', '角色管理', b'1', b'1', '角色管理 编码是否被使用', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945230, 'CockpitReportController#getPayChannelInfo', '显示通道支付订单金额和订单数', 'GET', '/report/cockpit/getPayChannelInfo', '驾驶舱接口', b'1', b'1', '驾驶舱接口 显示通道支付订单金额和订单数', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945231, 'AllocationReceiverController#findReceiverTypeByChannel', '根据通道获取分账接收方类型', 'GET', '/allocation/receiver/findReceiverTypeByChannel', '分账接收方控制器', b'1', b'1', '分账接收方控制器 根据通道获取分账接收方类型', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945232, 'UserAdminController#unlock', '解锁用户', 'POST', '/user/admin/unlock', '管理用户(管理员级别)', b'1', b'1', '管理用户(管理员级别) 解锁用户', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945233, 'WecomRobotConfigController#add', '新增机器人配置', 'POST', '/wecom/robot/config/add', '企业微信机器人配置', b'1', b'1', '企业微信机器人配置 新增机器人配置', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945234, 'AllocationGroupController#setDefault', '设置默认分账组', 'POST', '/allocation/group/setDefault', '分账组', b'1', b'1', '分账组 设置默认分账组', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945235, 'UserAdminController#findById', '根据用户id查询用户', 'GET', '/user/admin/findById', '管理用户(管理员级别)', b'1', b'1', '管理用户(管理员级别) 根据用户id查询用户', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945236, 'PayRepairRecordController#page', '分页查询', 'GET', '/record/repair/page', '支付修复记录', b'1', b'1', '支付修复记录 分页查询', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945237, 'AllocationOrderController#page', '分页', 'GET', '/order/allocation/page', '分账订单控制器', b'1', b'1', '分账订单控制器 分页', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945238, 'PasswordSecurityConfigController#isRecentlyUsed', '查看要修改的密码是否重复', 'GET', '/security/password/isRecentlyUsed', '密码安全策略', b'1', b'1', '密码安全策略 查看要修改的密码是否重复', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945239, 'WalletController#deduct', '扣减', 'POST', '/wallet/deduct', '钱包管理', b'1', b'1', '钱包管理 扣减', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945240, 'FIleUpLoadController#getFilePreviewUrlPrefix', '获取文件预览地址前缀', 'GET', '/file/getFilePreviewUrlPrefix', '文件上传', b'1', b'1', '文件上传 获取文件预览地址前缀', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945241, 'PermMenuController#existsByPermCode', '编码是否被使用(不包含自己)', 'GET', '/perm/menu/existsByPermCodeNotId', '菜单和权限码', b'1', b'1', '菜单和权限码 编码是否被使用(不包含自己)', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945242, 'WeChatTemplateController#update', '修改', 'POST', '/wechat/template/update', '微信模板消息', b'1', b'1', '微信模板消息 修改', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945243, 'CashierController#queryPayOrder', '查询支付订单', 'GET', '/demo/cashier/queryPayOrderSuccess', '结算台演示', b'1', b'1', '结算台演示 查询支付订单', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945244, 'ReconcileOrderController#downOriginal2Csv', '下载原始交易对账单记录(CSV格式)', 'GET', '/order/reconcile/downOriginal2Csv', '对账控制器', b'1', b'1', '对账控制器 下载原始交易对账单记录(CSV格式)', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945245, 'SmsChannelConfigController#findAll', '查询所有', 'GET', '/sms/config/findAll', '短信渠道配置', b'1', b'1', '短信渠道配置 查询所有', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945246, 'RoleMenuController#getPermissions', '获取菜单和权限码(根据用户进行筛选)', 'GET', '/role/menu/getPermissions', '角色菜单权限关系', b'1', b'1', '角色菜单权限关系 获取菜单和权限码(根据用户进行筛选)', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945247, 'UserRoleController#findRoleIdsByUser', '根据用户ID获取到角色id集合', 'GET', '/user/role/findRoleIdsByUser', '用户角色管理', b'1', b'1', '用户角色管理 根据用户ID获取到角色id集合', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945248, 'AllocationGroupController#update', '修改', 'POST', '/allocation/group/update', '分账组', b'1', b'1', '分账组 修改', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945249, 'FIleUpLoadController#preview', '预览文件(流量会经过后端)', 'GET', '/file/preview/{id}', '文件上传', b'1', b'1', '文件上传 预览文件(流量会经过后端)', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945250, 'QuartzJobController#judgeJobClass', '判断是否是定时任务类', 'GET', '/quartz/judgeJobClass', '定时任务', b'1', b'1', '定时任务 判断是否是定时任务类', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945251, 'PayOrderController#getTotalAmount', '查询金额汇总', 'GET', '/order/pay/getTotalAmount', '支付订单控制器', b'1', b'1', '支付订单控制器 查询金额汇总', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945252, 'UserAssistController#sendCurrentEmailChangeCaptcha', '给当前用户发送更改邮箱验证码', 'POST', '/user/sendCurrentEmailChangeCaptcha', '用户操作支撑服务', b'1', b'1', '用户操作支撑服务 给当前用户发送更改邮箱验证码', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945253, 'WecomRobotConfigController#update', '修改机器人配置', 'POST', '/wecom/robot/config/update', '企业微信机器人配置', b'1', b'1', '企业微信机器人配置 修改机器人配置', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945254, 'UserThirdController#bind', '绑定第三方账号', 'POST', '/user/third/bind', '用户三方登录管理', b'1', b'1', '用户三方登录管理 绑定第三方账号', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945255, 'RoleController#tree', '角色树', 'GET', '/role/tree', '角色管理', b'1', b'1', '角色管理 角色树', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945256, 'UniPayController#pay', '统一支付接口', 'POST', '/unipay/pay', '统一支付接口', b'1', b'1', '统一支付接口 统一支付接口', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945257, 'LoginTypeController#existsByCode', '编码是否被使用', 'GET', '/loginType/existsByCode', '登录方式管理', b'1', b'1', '登录方式管理 编码是否被使用', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945258, 'AllocationOrderController#sync', '同步分账结果', 'POST', '/order/allocation/sync', '分账订单控制器', b'1', b'1', '分账订单控制器 同步分账结果', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945259, 'UserAdminController#page', '分页', 'GET', '/user/admin/page', '管理用户(管理员级别)', b'1', b'1', '管理用户(管理员级别) 分页', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945260, 'RolePathController#findIdsByRole', '根据角色id获取关联权限id', 'GET', '/role/path/findIdsByRole', '角色请求权限消息关系', b'1', b'1', '角色请求权限消息关系 根据角色id获取关联权限id', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945261, 'MultipleOpenApiWebMvcResource#openapiJson', 'openapiJson', 'GET', '/v3/api-docs/{group}', 'MultipleOpenApiWebMvcResource', b'1', b'1', 'MultipleOpenApiWebMvcResource openapiJson', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945262, 'UserThirdController#page', '分页', 'GET', '/user/third/page', '用户三方登录管理', b'1', b'1', '用户三方登录管理 分页', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945263, 'RoleController#findById', '通过ID查询角色', 'GET', '/role/findById', '角色管理', b'1', b'1', '角色管理 通过ID查询角色', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945264, 'ReconcileOrderController#create', '手动创建对账订单', 'POST', '/order/reconcile/create', '对账控制器', b'1', b'1', '对账控制器 手动创建对账订单', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945265, 'PayApiConfigController#update', '更新', 'POST', '/pay/api/config/update', '支付接口配置', b'1', b'1', '支付接口配置 更新', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945266, 'PayOrderController#page', '分页查询', 'GET', '/order/pay/page', '支付订单控制器', b'1', b'1', '支付订单控制器 分页查询', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945267, 'UserInfoController#existsUsername', '账号是否被使用(不包含自己)', 'GET', '/user/existsUsernameNotId', '用户管理', b'1', b'1', '用户管理 账号是否被使用(不包含自己)', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945268, 'UserDeptController#saveAssign', '给用户分配部门', 'POST', '/user/dept/saveAssign', '用户部门关联关系', b'1', b'1', '用户部门关联关系 给用户分配部门', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945269, 'CockpitReportController#getPayOrderCount', '支付订单数量', 'GET', '/report/cockpit/getPayOrderCount', '驾驶舱接口', b'1', b'1', '驾驶舱接口 支付订单数量', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945270, 'UserAssistController#sendEmailForgetCaptcha', '发送找回密码邮箱验证码', 'POST', '/user/sendEmailForgetCaptcha', '用户操作支撑服务', b'1', b'1', '用户操作支撑服务 发送找回密码邮箱验证码', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945271, 'WecomRobotConfigController#findById', '获取详情', 'GET', '/wecom/robot/config/findById', '企业微信机器人配置', b'1', b'1', '企业微信机器人配置 获取详情', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945272, 'ClientNoticeTaskController#recordPage', '分页查询', 'GET', '/task/notice/record/page', '客户系统通知任务', b'1', b'1', '客户系统通知任务 分页查询', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945273, 'RefundOrderController#findById', '查询单条', 'GET', '/order/refund/findById', '支付退款控制器', b'1', b'1', '支付退款控制器 查询单条', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945274, 'UserDataRoleController#findDataRoleByUser', '根据用户ID获取到数据角色列表', 'GET', '/user/data/role/findDataRoleByUser', '用户数据角色配置', b'1', b'1', '用户数据角色配置 根据用户ID获取到数据角色列表', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945275, 'ChinaRegionController#findAllRegionByParentCode', '根据编码获取下一级行政区划的列表', 'GET', '/china/region/findAllRegionByParentCode', '中国行政区划', b'1', b'1', '中国行政区划 根据编码获取下一级行政区划的列表', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945276, 'DataRoleController#existsByName', '名称是否被使用', 'GET', '/data/role/existsByName', '数据角色配置', b'1', b'1', '数据角色配置 名称是否被使用', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945277, 'AllocationGroupController#create', '创建', 'POST', '/allocation/group/create', '分账组', b'1', b'1', '分账组 创建', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945278, 'UserAssistController#validatePhoneForgetCaptcha', '验证找回密码手机验证码', 'GET', '/user/validatePhoneForgetCaptcha', '用户操作支撑服务', b'1', b'1', '用户操作支撑服务 验证找回密码手机验证码', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945279, 'PayChannelConfigController#update', '更新', 'POST', '/pay/channel/config/update', '支付通道信息', b'1', b'1', '支付通道信息 更新', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945280, 'DictionaryController#existsByCode', '编码是否被使用(不包含自己)', 'GET', '/dict/existsByCodeNotId', '字典', b'1', b'1', '字典 编码是否被使用(不包含自己)', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945281, 'PermMenuController#menuTree', '获取菜单树', 'GET', '/perm/menu/menuTree', '菜单和权限码', b'1', b'1', '菜单和权限码 获取菜单树', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945282, 'DictionaryItemController#delete', '删除字典项', 'DELETE', '/dict/item/delete', '字典项', b'1', b'1', '字典项 删除字典项', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945283, 'DingRobotConfigController#existsByCode', '编码是否被使用', 'GET', '/ding/robot/config/existsByCode', '钉钉机器人配置', b'1', b'1', '钉钉机器人配置 编码是否被使用', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945284, 'SiteMessageController#countByReceiveNotRead', '获取未读的接收消息条数', 'GET', '/site/message/countByReceiveNotRead', '站内信', b'1', b'1', '站内信 获取未读的接收消息条数', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945285, 'WecomRobotConfigController#findAll', '查询全部', 'GET', '/wecom/robot/config/findAll', '企业微信机器人配置', b'1', b'1', '企业微信机器人配置 查询全部', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945286, 'PayReturnController#union', '云闪付同步通知', 'POST', '/return/pay/union', '支付同步通知', b'1', b'1', '支付同步通知 云闪付同步通知', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945287, 'UserAssistController#validateCurrentPhoneChangeCaptcha', '验证当前用户发送更改手机号验证码', 'GET', '/user/validateCurrentPhoneChangeCaptcha', '用户操作支撑服务', b'1', b'1', '用户操作支撑服务 验证当前用户发送更改手机号验证码', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945288, 'WeChatTemplateController#page', '分页查询', 'GET', '/wechat/template/page', '微信模板消息', b'1', b'1', '微信模板消息 分页查询', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945289, 'SmsTemplateController#add', '添加', 'POST', '/sms/template/add', '短信模板配置', b'1', b'1', '短信模板配置 添加', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945290, 'PermPathController#batchUpdateEnable', '批量更新状态', 'POST', '/perm/path/batchUpdateEnable', '请求权限管理', b'1', b'1', '请求权限管理 批量更新状态', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945291, 'DingRobotConfigController#findAll', '查询全部', 'GET', '/ding/robot/config/findAll', '钉钉机器人配置', b'1', b'1', '钉钉机器人配置 查询全部', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945292, 'QuartzJobController#syncJobStatus', '同步定时任务状态', 'POST', '/quartz/syncJobStatus', '定时任务', b'1', b'1', '定时任务 同步定时任务状态', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945293, 'SiteMessageController#cancel', '撤回消息', 'POST', '/site/message/cancel', '站内信', b'1', b'1', '站内信 撤回消息', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945294, 'DictionaryItemController#findAll', '获取全部字典项', 'GET', '/dict/item/findAll', '字典项', b'1', b'1', '字典项 获取全部字典项', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945295, 'UserAssistController#validateEmailCaptcha', '验证更改/绑定邮箱验证码', 'GET', '/user/validateEmailChangeCaptcha', '用户操作支撑服务', b'1', b'1', '用户操作支撑服务 验证更改/绑定邮箱验证码', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945296, 'PermMenuController#findById', '根据id查询', 'GET', '/perm/menu/findById', '菜单和权限码', b'1', b'1', '菜单和权限码 根据id查询', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945297, 'RoleMenuController#findPermissionIdsByRole', '获取当前角色下关联权限id集合(包含权限码和菜单)', 'GET', '/role/menu/findPermissionIdsByRole', '角色菜单权限关系', b'1', b'1', '角色菜单权限关系 获取当前角色下关联权限id集合(包含权限码和菜单)', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945298, 'SwaggerConfigResource#openapiJson', 'openapiJson', 'GET', '/v3/api-docs/swagger-config', 'SwaggerConfigResource', b'1', b'1', 'SwaggerConfigResource openapiJson', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945299, 'UnionPayConfigController#update', '更新', 'POST', '/union/pay/config/update', '云闪付配置', b'1', b'1', '云闪付配置 更新', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945300, 'WecomRobotConfigController#delete', '删除', 'DELETE', '/wecom/robot/config/delete', '企业微信机器人配置', b'1', b'1', '企业微信机器人配置 删除', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945301, 'TokenEndpoint#login', '普通登录', 'POST', '/token/login', '认证相关', b'1', b'1', '认证相关 普通登录', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945302, 'RefundOrderController#refund', '手动发起退款', 'POST', '/order/refund/refund', '支付退款控制器', b'1', b'1', '支付退款控制器 手动发起退款', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945303, 'QuartzJobController#page', '分页', 'GET', '/quartz/page', '定时任务', b'1', b'1', '定时任务 分页', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945304, 'CockpitReportController#getPayAmount', '支付金额(分)', 'GET', '/report/cockpit/getPayAmount', '驾驶舱接口', b'1', b'1', '驾驶舱接口 支付金额(分)', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945305, 'SiteMessageController#saveOrUpdate', '保存站内信草稿', 'POST', '/site/message/saveOrUpdate', '站内信', b'1', b'1', '站内信 保存站内信草稿', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945306, 'UserAdminController#ban', '封禁用户', 'POST', '/user/admin/ban', '管理用户(管理员级别)', b'1', b'1', '管理用户(管理员级别) 封禁用户', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945307, 'MessageTemplateController#rendering', '渲染模板', 'POST', '/message/template/rendering', '消息模板', b'1', b'1', '消息模板 渲染模板', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945308, 'WalletController#create', '创建钱包', 'POST', '/wallet/create', '钱包管理', b'1', b'1', '钱包管理 创建钱包', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945309, 'PermPathController#syncSystem', '同步系统请求资源', 'POST', '/perm/path/syncSystem', '请求权限管理', b'1', b'1', '请求权限管理 同步系统请求资源', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945310, 'SystemParamController#existsByKey', '判断编码是否存在', 'GET', '/system/param/existsByKey', '系统参数', b'1', b'1', '系统参数 判断编码是否存在', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945311, 'BaseApiController#echo', '回声测试', 'GET', '/echo', '系统基础接口', b'1', b'1', '系统基础接口 回声测试', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945312, 'ReconcileOrderController#findDiffById', '对账差异详情', 'GET', '/order/reconcile/diff/findById', '对账控制器', b'1', b'1', '对账控制器 对账差异详情', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945313, 'PaySyncRecordController#page', '分页查询', 'GET', '/record/sync/page', '支付同步记录控制器', b'1', b'1', '支付同步记录控制器 分页查询', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945314, 'CashierController#getWxAuthUrl', '获取微信授权链接', 'GET', '/demo/cashier/getWxAuthUrl', '结算台演示', b'1', b'1', '结算台演示 获取微信授权链接', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-
--- ----------------------------
--- Table structure for iam_role
--- ----------------------------
-DROP TABLE IF EXISTS `iam_role`;
-CREATE TABLE `iam_role`  (
-                             `id` bigint(20) NOT NULL COMMENT '角色ID',
-                             `code` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '编码',
-                             `pid` bigint(20) NULL DEFAULT NULL COMMENT '父ID',
-                             `name` varchar(150) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '名称',
-                             `internal` bit(1) NOT NULL COMMENT '是否系统内置',
-                             `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '说明',
-                             `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建人',
-                             `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
-                             `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修改人',
-                             `last_modified_time` datetime NULL DEFAULT NULL COMMENT '最后修改时间',
-                             `version` int(11) NOT NULL COMMENT '版本',
-                             `deleted` tinyint(1) NOT NULL DEFAULT 0 COMMENT '0:未删除。1:已删除',
-                             PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '角色' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of iam_role
--- ----------------------------
-INSERT INTO `iam_role` VALUES (1757297023118462976, 'daxpayAdmin', NULL, '支付网关管理员', b'0', '', 1399985191002447872, '2024-02-13 14:53:54', 1399985191002447872, '2024-02-13 14:53:54', 0, 0);
-INSERT INTO `iam_role` VALUES (1757298887092326400, 'daxpayDemo', 1757297023118462976, '支付演示角色', b'0', '用于进行演示的角色, 没有修改和删除的权限', 1399985191002447872, '2024-02-13 15:01:18', 1399985191002447872, '2024-02-13 15:01:18', 0, 0);
-
--- ----------------------------
--- Table structure for iam_role_menu
--- ----------------------------
-DROP TABLE IF EXISTS `iam_role_menu`;
-CREATE TABLE `iam_role_menu`  (
-                                  `id` bigint(20) NOT NULL,
-                                  `role_id` bigint(20) NOT NULL COMMENT '角色id',
-                                  `client_code` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '终端code',
-                                  `permission_id` bigint(20) NOT NULL COMMENT '菜单权限id',
-                                  PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '角色菜单权限表' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of iam_role_menu
--- ----------------------------
-INSERT INTO `iam_role_menu` VALUES (1757298674730520576, 1757297023118462976, 'dax-pay', 1744271715476684800);
-INSERT INTO `iam_role_menu` VALUES (1757298674730520577, 1757297023118462976, 'dax-pay', 1744642856348520448);
-INSERT INTO `iam_role_menu` VALUES (1757298674730520578, 1757297023118462976, 'dax-pay', 1745457623493496832);
-INSERT INTO `iam_role_menu` VALUES (1757298674730520579, 1757297023118462976, 'dax-pay', 1745457746529210368);
-INSERT INTO `iam_role_menu` VALUES (1757298674730520580, 1757297023118462976, 'dax-pay', 1749262518385082368);
-INSERT INTO `iam_role_menu` VALUES (1757298674730520582, 1757297023118462976, 'dax-pay', 1744643265142165504);
-INSERT INTO `iam_role_menu` VALUES (1757298674730520583, 1757297023118462976, 'dax-pay', 1745126072389963776);
-INSERT INTO `iam_role_menu` VALUES (1757298674730520584, 1757297023118462976, 'dax-pay', 1745136155962347520);
-INSERT INTO `iam_role_menu` VALUES (1757298674730520585, 1757297023118462976, 'dax-pay', 1745143528663781376);
-INSERT INTO `iam_role_menu` VALUES (1757298674730520586, 1757297023118462976, 'dax-pay', 1745822093382230016);
-INSERT INTO `iam_role_menu` VALUES (1757298674730520587, 1757297023118462976, 'dax-pay', 1744624886658318336);
-INSERT INTO `iam_role_menu` VALUES (1757298674730520588, 1757297023118462976, 'dax-pay', 1744372631231995904);
-INSERT INTO `iam_role_menu` VALUES (1757298674730520589, 1757297023118462976, 'dax-pay', 1744276101384880128);
-INSERT INTO `iam_role_menu` VALUES (1757298674730520590, 1757297023118462976, 'dax-pay', 1746194891925561344);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059200, 1757298887092326400, 'dax-pay', 1744271715476684800);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059201, 1757298887092326400, 'dax-pay', 1746194891925561344);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059202, 1757298887092326400, 'dax-pay', 1744276101384880128);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059203, 1757298887092326400, 'dax-pay', 1744372631231995904);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059204, 1757298887092326400, 'dax-pay', 1744624886658318336);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059205, 1757298887092326400, 'dax-pay', 1745822093382230016);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059206, 1757298887092326400, 'dax-pay', 1744642856348520448);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059207, 1757298887092326400, 'dax-pay', 1745457623493496832);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059208, 1757298887092326400, 'dax-pay', 1745457746529210368);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059209, 1757298887092326400, 'dax-pay', 1749262518385082368);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059210, 1757298887092326400, 'dax-pay', 1744643265142165504);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059212, 1757298887092326400, 'dax-pay', 1745126072389963776);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059213, 1757298887092326400, 'dax-pay', 1745136155962347520);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059214, 1757298887092326400, 'dax-pay', 1745143528663781376);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059215, 1757298887092326400, 'dax-pay', 1744271715476684800);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059216, 1757298887092326400, 'dax-pay', 1746194891925561344);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059217, 1757298887092326400, 'dax-pay', 1744276101384880128);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059218, 1757298887092326400, 'dax-pay', 1744372631231995904);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059219, 1757298887092326400, 'dax-pay', 1744624886658318336);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059220, 1757298887092326400, 'dax-pay', 1745822093382230016);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059221, 1757298887092326400, 'dax-pay', 1744642856348520448);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059222, 1757298887092326400, 'dax-pay', 1745457623493496832);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059223, 1757298887092326400, 'dax-pay', 1745457746529210368);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059224, 1757298887092326400, 'dax-pay', 1749262518385082368);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059225, 1757298887092326400, 'dax-pay', 1744643265142165504);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059227, 1757298887092326400, 'dax-pay', 1745126072389963776);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059228, 1757298887092326400, 'dax-pay', 1745136155962347520);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059229, 1757298887092326400, 'dax-pay', 1745143528663781376);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059230, 1757298887092326400, 'dax-pay', 1744271715476684800);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059231, 1757298887092326400, 'dax-pay', 1746194891925561344);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059232, 1757298887092326400, 'dax-pay', 1744276101384880128);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059233, 1757298887092326400, 'dax-pay', 1744372631231995904);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059234, 1757298887092326400, 'dax-pay', 1744624886658318336);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059235, 1757298887092326400, 'dax-pay', 1745822093382230016);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059236, 1757298887092326400, 'dax-pay', 1744642856348520448);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059237, 1757298887092326400, 'dax-pay', 1745457623493496832);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059238, 1757298887092326400, 'dax-pay', 1745457746529210368);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059239, 1757298887092326400, 'dax-pay', 1749262518385082368);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059240, 1757298887092326400, 'dax-pay', 1744643265142165504);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059242, 1757298887092326400, 'dax-pay', 1745126072389963776);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059243, 1757298887092326400, 'dax-pay', 1745136155962347520);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059244, 1757298887092326400, 'dax-pay', 1745143528663781376);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059245, 1757298887092326400, 'dax-pay', 1744271715476684800);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059246, 1757298887092326400, 'dax-pay', 1746194891925561344);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059247, 1757298887092326400, 'dax-pay', 1744276101384880128);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059248, 1757298887092326400, 'dax-pay', 1744372631231995904);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059249, 1757298887092326400, 'dax-pay', 1744624886658318336);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059250, 1757298887092326400, 'dax-pay', 1745822093382230016);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059251, 1757298887092326400, 'dax-pay', 1744642856348520448);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059252, 1757298887092326400, 'dax-pay', 1745457623493496832);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059253, 1757298887092326400, 'dax-pay', 1745457746529210368);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059254, 1757298887092326400, 'dax-pay', 1749262518385082368);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059255, 1757298887092326400, 'dax-pay', 1744643265142165504);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059257, 1757298887092326400, 'dax-pay', 1745126072389963776);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059258, 1757298887092326400, 'dax-pay', 1745136155962347520);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059259, 1757298887092326400, 'dax-pay', 1745143528663781376);
-INSERT INTO `iam_role_menu` VALUES (1762112282006073350, 1757297023118462976, 'dax-pay', 1761429304959528960);
-INSERT INTO `iam_role_menu` VALUES (1762112282006073351, 1757297023118462976, 'dax-pay', 1761429682618855424);
-INSERT INTO `iam_role_menu` VALUES (1762112282006073352, 1757297023118462976, 'dax-pay', 1759768820429352960);
-INSERT INTO `iam_role_menu` VALUES (1762112282006073353, 1757297023118462976, 'dax-pay', 1759769092698402816);
-INSERT INTO `iam_role_menu` VALUES (1762112282232565766, 1757298887092326400, 'dax-pay', 1761429304959528960);
-INSERT INTO `iam_role_menu` VALUES (1762112282232565767, 1757298887092326400, 'dax-pay', 1761429682618855424);
-INSERT INTO `iam_role_menu` VALUES (1762112282232565768, 1757298887092326400, 'dax-pay', 1759768820429352960);
-INSERT INTO `iam_role_menu` VALUES (1762112282232565769, 1757298887092326400, 'dax-pay', 1759769092698402816);
-INSERT INTO `iam_role_menu` VALUES (1780416732268605440, 1757297023118462976, 'dax-pay', 1775089099078553600);
-INSERT INTO `iam_role_menu` VALUES (1780416732268605441, 1757297023118462976, 'dax-pay', 1775089820368818176);
-INSERT INTO `iam_role_menu` VALUES (1780416732268605442, 1757297023118462976, 'dax-pay', 1775091561835450368);
-INSERT INTO `iam_role_menu` VALUES (1780416732268605443, 1757297023118462976, 'dax-pay', 1777688382748700672);
-INSERT INTO `iam_role_menu` VALUES (1780416732574789632, 1757298887092326400, 'dax-pay', 1775089099078553600);
-INSERT INTO `iam_role_menu` VALUES (1780416732574789633, 1757298887092326400, 'dax-pay', 1775089820368818176);
-INSERT INTO `iam_role_menu` VALUES (1780416732574789634, 1757298887092326400, 'dax-pay', 1775091561835450368);
-INSERT INTO `iam_role_menu` VALUES (1780416732574789635, 1757298887092326400, 'dax-pay', 1777688382748700672);
-INSERT INTO `iam_role_menu` VALUES (1789979742020689920, 1757297023118462976, 'dax-pay', 1786808188825194496);
-INSERT INTO `iam_role_menu` VALUES (1789979742020689921, 1757297023118462976, 'dax-pay', 1786810890951020544);
-INSERT INTO `iam_role_menu` VALUES (1789979742020689922, 1757297023118462976, 'dax-pay', 1744930046228017152);
-INSERT INTO `iam_role_menu` VALUES (1789979742314291200, 1757298887092326400, 'dax-pay', 1786808188825194496);
-INSERT INTO `iam_role_menu` VALUES (1789979742314291201, 1757298887092326400, 'dax-pay', 1786810890951020544);
-INSERT INTO `iam_role_menu` VALUES (1789979742314291202, 1757298887092326400, 'dax-pay', 1744930046228017152);
-
--- ----------------------------
--- Table structure for iam_role_path
--- ----------------------------
-DROP TABLE IF EXISTS `iam_role_path`;
-CREATE TABLE `iam_role_path`  (
-                                  `id` bigint(20) NOT NULL,
-                                  `role_id` bigint(20) NOT NULL COMMENT '角色id',
-                                  `permission_id` bigint(20) NOT NULL COMMENT '请求权限id',
-                                  PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '角色请求权限表' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of iam_role_path
--- ----------------------------
-INSERT INTO `iam_role_path` VALUES (1789979321814343680, 1757297023118462976, 1789978117570945313);
-INSERT INTO `iam_role_path` VALUES (1789979321814343681, 1757297023118462976, 1789978117566750768);
-INSERT INTO `iam_role_path` VALUES (1789979321814343682, 1757297023118462976, 1789978117570945312);
-INSERT INTO `iam_role_path` VALUES (1789979321814343683, 1757297023118462976, 1789978117570945264);
-INSERT INTO `iam_role_path` VALUES (1789979321814343684, 1757297023118462976, 1789978117570945244);
-INSERT INTO `iam_role_path` VALUES (1789979321814343685, 1757297023118462976, 1789978117570945215);
-INSERT INTO `iam_role_path` VALUES (1789979321814343686, 1757297023118462976, 1789978117570945203);
-INSERT INTO `iam_role_path` VALUES (1789979321814343687, 1757297023118462976, 1789978117570945080);
-INSERT INTO `iam_role_path` VALUES (1789979321814343688, 1757297023118462976, 1789978117570945074);
-INSERT INTO `iam_role_path` VALUES (1789979321814343689, 1757297023118462976, 1789978117570945029);
-INSERT INTO `iam_role_path` VALUES (1789979321814343690, 1757297023118462976, 1789978117570945024);
-INSERT INTO `iam_role_path` VALUES (1789979321814343691, 1757297023118462976, 1789978117566750819);
-INSERT INTO `iam_role_path` VALUES (1789979321814343692, 1757297023118462976, 1789978117566750783);
-INSERT INTO `iam_role_path` VALUES (1789979321814343693, 1757297023118462976, 1789978117566750760);
-INSERT INTO `iam_role_path` VALUES (1789979321814343694, 1757297023118462976, 1789978117566750746);
-INSERT INTO `iam_role_path` VALUES (1789979321814343695, 1757297023118462976, 1789978117562556431);
-INSERT INTO `iam_role_path` VALUES (1789979321814343696, 1757297023118462976, 1789978117570945311);
-INSERT INTO `iam_role_path` VALUES (1789979321814343697, 1757297023118462976, 1789978117570945126);
-INSERT INTO `iam_role_path` VALUES (1789979321814343698, 1757297023118462976, 1789978117570945304);
-INSERT INTO `iam_role_path` VALUES (1789979321814343699, 1757297023118462976, 1789978117570945269);
-INSERT INTO `iam_role_path` VALUES (1789979321814343700, 1757297023118462976, 1789978117570945230);
-INSERT INTO `iam_role_path` VALUES (1789979321814343701, 1757297023118462976, 1789978117570945129);
-INSERT INTO `iam_role_path` VALUES (1789979321814343702, 1757297023118462976, 1789978117566750730);
-INSERT INTO `iam_role_path` VALUES (1789979321814343703, 1757297023118462976, 1789978117562556448);
-INSERT INTO `iam_role_path` VALUES (1789979321814343704, 1757297023118462976, 1789978117570945302);
-INSERT INTO `iam_role_path` VALUES (1789979321814343705, 1757297023118462976, 1789978117570945273);
-INSERT INTO `iam_role_path` VALUES (1789979321814343706, 1757297023118462976, 1789978117570945213);
-INSERT INTO `iam_role_path` VALUES (1789979321814343707, 1757297023118462976, 1789978117570945177);
-INSERT INTO `iam_role_path` VALUES (1789979321814343708, 1757297023118462976, 1789978117570945161);
-INSERT INTO `iam_role_path` VALUES (1789979321814343709, 1757297023118462976, 1789978117570945136);
-INSERT INTO `iam_role_path` VALUES (1789979321814343710, 1757297023118462976, 1789978117566750763);
-INSERT INTO `iam_role_path` VALUES (1789979321814343711, 1757297023118462976, 1789978117566750728);
-INSERT INTO `iam_role_path` VALUES (1789979321814343712, 1757297023118462976, 1789978117570945299);
-INSERT INTO `iam_role_path` VALUES (1789979321814343713, 1757297023118462976, 1789978117570945222);
-INSERT INTO `iam_role_path` VALUES (1789979321814343714, 1757297023118462976, 1789978117570945124);
-INSERT INTO `iam_role_path` VALUES (1789979321814343715, 1757297023118462976, 1789978117566750820);
-INSERT INTO `iam_role_path` VALUES (1789979321814343716, 1757297023118462976, 1789978117570945286);
-INSERT INTO `iam_role_path` VALUES (1789979321814343717, 1757297023118462976, 1789978117570945072);
-INSERT INTO `iam_role_path` VALUES (1789979321814343718, 1757297023118462976, 1789978117570945064);
-INSERT INTO `iam_role_path` VALUES (1789979321814343719, 1757297023118462976, 1789978117570945279);
-INSERT INTO `iam_role_path` VALUES (1789979321814343720, 1757297023118462976, 1789978117570945028);
-INSERT INTO `iam_role_path` VALUES (1789979321814343721, 1757297023118462976, 1789978117566750751);
-INSERT INTO `iam_role_path` VALUES (1789979321814343722, 1757297023118462976, 1789978117570945277);
-INSERT INTO `iam_role_path` VALUES (1789979321814343723, 1757297023118462976, 1789978117570945248);
-INSERT INTO `iam_role_path` VALUES (1789979321814343724, 1757297023118462976, 1789978117570945234);
-INSERT INTO `iam_role_path` VALUES (1789979321814343725, 1757297023118462976, 1789978117570945170);
-INSERT INTO `iam_role_path` VALUES (1789979321814343726, 1757297023118462976, 1789978117570945111);
-INSERT INTO `iam_role_path` VALUES (1789979321814343727, 1757297023118462976, 1789978117570945100);
-INSERT INTO `iam_role_path` VALUES (1789979321814343728, 1757297023118462976, 1789978117570945038);
-INSERT INTO `iam_role_path` VALUES (1789979321814343729, 1757297023118462976, 1789978117566750807);
-INSERT INTO `iam_role_path` VALUES (1789979321814343730, 1757297023118462976, 1789978117566750789);
-INSERT INTO `iam_role_path` VALUES (1789979321814343731, 1757297023118462976, 1789978117566750759);
-INSERT INTO `iam_role_path` VALUES (1789979321814343732, 1757297023118462976, 1789978117566750744);
-INSERT INTO `iam_role_path` VALUES (1789979321814343733, 1757297023118462976, 1789978117562556423);
-INSERT INTO `iam_role_path` VALUES (1789979321814343734, 1757297023118462976, 1789978117570945266);
-INSERT INTO `iam_role_path` VALUES (1789979321814343735, 1757297023118462976, 1789978117570945251);
-INSERT INTO `iam_role_path` VALUES (1789979321814343736, 1757297023118462976, 1789978117570945073);
-INSERT INTO `iam_role_path` VALUES (1789979321814343737, 1757297023118462976, 1789978117570945056);
-INSERT INTO `iam_role_path` VALUES (1789979321814343738, 1757297023118462976, 1789978117566750822);
-INSERT INTO `iam_role_path` VALUES (1789979321814343739, 1757297023118462976, 1789978117566750809);
-INSERT INTO `iam_role_path` VALUES (1789979321814343740, 1757297023118462976, 1789978117566750803);
-INSERT INTO `iam_role_path` VALUES (1789979321814343741, 1757297023118462976, 1789978117566750726);
-INSERT INTO `iam_role_path` VALUES (1789979321814343742, 1757297023118462976, 1789978117570945265);
-INSERT INTO `iam_role_path` VALUES (1789979321814343743, 1757297023118462976, 1789978117570945163);
-INSERT INTO `iam_role_path` VALUES (1789979321814343744, 1757297023118462976, 1789978117570945144);
-INSERT INTO `iam_role_path` VALUES (1789979321814343745, 1757297023118462976, 1789978117570945258);
-INSERT INTO `iam_role_path` VALUES (1789979321814343746, 1757297023118462976, 1789978117570945237);
-INSERT INTO `iam_role_path` VALUES (1789979321814343747, 1757297023118462976, 1789978117570945184);
-INSERT INTO `iam_role_path` VALUES (1789979321814343748, 1757297023118462976, 1789978117570945162);
-INSERT INTO `iam_role_path` VALUES (1789979321814343749, 1757297023118462976, 1789978117570945116);
-INSERT INTO `iam_role_path` VALUES (1789979321814343750, 1757297023118462976, 1789978117570945115);
-INSERT INTO `iam_role_path` VALUES (1789979321814343751, 1757297023118462976, 1789978117570945085);
-INSERT INTO `iam_role_path` VALUES (1789979321814343752, 1757297023118462976, 1789978117562556418);
-INSERT INTO `iam_role_path` VALUES (1789979321814343753, 1757297023118462976, 1789978117570945236);
-INSERT INTO `iam_role_path` VALUES (1789979321814343754, 1757297023118462976, 1789978117570945098);
-INSERT INTO `iam_role_path` VALUES (1789979321814343755, 1757297023118462976, 1789978117570945231);
-INSERT INTO `iam_role_path` VALUES (1789979321814343756, 1757297023118462976, 1789978117570945192);
-INSERT INTO `iam_role_path` VALUES (1789979321814343757, 1757297023118462976, 1789978117570945181);
-INSERT INTO `iam_role_path` VALUES (1789979321814343758, 1757297023118462976, 1789978117570945172);
-INSERT INTO `iam_role_path` VALUES (1789979321814343759, 1757297023118462976, 1789978117570945114);
-INSERT INTO `iam_role_path` VALUES (1789979321814343760, 1757297023118462976, 1789978117570945082);
-INSERT INTO `iam_role_path` VALUES (1789979321814343761, 1757297023118462976, 1789978117566750740);
-INSERT INTO `iam_role_path` VALUES (1789979321814343762, 1757297023118462976, 1789978117562556428);
-INSERT INTO `iam_role_path` VALUES (1789979321814343763, 1757297023118462976, 1789978117562556420);
-INSERT INTO `iam_role_path` VALUES (1789979321814343764, 1757297023118462976, 1789978117570945198);
-INSERT INTO `iam_role_path` VALUES (1789979321814343765, 1757297023118462976, 1789978117570945182);
-INSERT INTO `iam_role_path` VALUES (1789979321814343766, 1757297023118462976, 1789978117570945078);
-INSERT INTO `iam_role_path` VALUES (1789979321814343767, 1757297023118462976, 1789978117570945067);
-INSERT INTO `iam_role_path` VALUES (1789979321814343768, 1757297023118462976, 1789978117570945044);
-INSERT INTO `iam_role_path` VALUES (1789979321814343769, 1757297023118462976, 1789978117562556452);
-INSERT INTO `iam_role_path` VALUES (1789979321814343770, 1757297023118462976, 1789978117562556425);
-INSERT INTO `iam_role_path` VALUES (1789979321814343771, 1757297023118462976, 1789978117570945211);
-INSERT INTO `iam_role_path` VALUES (1789979321814343772, 1757297023118462976, 1789978117570945200);
-INSERT INTO `iam_role_path` VALUES (1789979321814343773, 1757297023118462976, 1789978117570945171);
-INSERT INTO `iam_role_path` VALUES (1789979321814343774, 1757297023118462976, 1789978117562556419);
-INSERT INTO `iam_role_path` VALUES (1789979321814343775, 1757297023118462976, 1789978117570945189);
-INSERT INTO `iam_role_path` VALUES (1789979321814343776, 1757297023118462976, 1789978117570945048);
-INSERT INTO `iam_role_path` VALUES (1789979321814343777, 1757297023118462976, 1789978117562556429);
-INSERT INTO `iam_role_path` VALUES (1789979321814343778, 1757297023118462976, 1789978117570945165);
-INSERT INTO `iam_role_path` VALUES (1789979321814343779, 1757297023118462976, 1789978117562556435);
-INSERT INTO `iam_role_path` VALUES (1789979321814343780, 1757297023118462976, 1789978117570945155);
-INSERT INTO `iam_role_path` VALUES (1789979321814343781, 1757297023118462976, 1789978117566750762);
-INSERT INTO `iam_role_path` VALUES (1789979321814343782, 1757297023118462976, 1789978117570945150);
-INSERT INTO `iam_role_path` VALUES (1789979321814343783, 1757297023118462976, 1789978117566750753);
-INSERT INTO `iam_role_path` VALUES (1789979321814343784, 1757297023118462976, 1789978117570945107);
-INSERT INTO `iam_role_path` VALUES (1789979321814343785, 1757297023118462976, 1789978117566750736);
-INSERT INTO `iam_role_path` VALUES (1789979321814343786, 1757297023118462976, 1789978117570945104);
-INSERT INTO `iam_role_path` VALUES (1789979321814343787, 1757297023118462976, 1789978117566750742);
-INSERT INTO `iam_role_path` VALUES (1789979322187636736, 1757298887092326400, 1789978117570945313);
-INSERT INTO `iam_role_path` VALUES (1789979322187636737, 1757298887092326400, 1789978117566750768);
-INSERT INTO `iam_role_path` VALUES (1789979322187636738, 1757298887092326400, 1789978117570945312);
-INSERT INTO `iam_role_path` VALUES (1789979322187636739, 1757298887092326400, 1789978117570945264);
-INSERT INTO `iam_role_path` VALUES (1789979322187636740, 1757298887092326400, 1789978117570945244);
-INSERT INTO `iam_role_path` VALUES (1789979322187636741, 1757298887092326400, 1789978117570945215);
-INSERT INTO `iam_role_path` VALUES (1789979322187636742, 1757298887092326400, 1789978117570945203);
-INSERT INTO `iam_role_path` VALUES (1789979322187636743, 1757298887092326400, 1789978117570945080);
-INSERT INTO `iam_role_path` VALUES (1789979322187636744, 1757298887092326400, 1789978117570945074);
-INSERT INTO `iam_role_path` VALUES (1789979322187636745, 1757298887092326400, 1789978117570945029);
-INSERT INTO `iam_role_path` VALUES (1789979322187636746, 1757298887092326400, 1789978117570945024);
-INSERT INTO `iam_role_path` VALUES (1789979322187636747, 1757298887092326400, 1789978117566750819);
-INSERT INTO `iam_role_path` VALUES (1789979322187636748, 1757298887092326400, 1789978117566750783);
-INSERT INTO `iam_role_path` VALUES (1789979322187636749, 1757298887092326400, 1789978117566750760);
-INSERT INTO `iam_role_path` VALUES (1789979322187636750, 1757298887092326400, 1789978117566750746);
-INSERT INTO `iam_role_path` VALUES (1789979322187636751, 1757298887092326400, 1789978117562556431);
-INSERT INTO `iam_role_path` VALUES (1789979322187636752, 1757298887092326400, 1789978117570945311);
-INSERT INTO `iam_role_path` VALUES (1789979322187636753, 1757298887092326400, 1789978117570945126);
-INSERT INTO `iam_role_path` VALUES (1789979322187636754, 1757298887092326400, 1789978117570945304);
-INSERT INTO `iam_role_path` VALUES (1789979322187636755, 1757298887092326400, 1789978117570945269);
-INSERT INTO `iam_role_path` VALUES (1789979322187636756, 1757298887092326400, 1789978117570945230);
-INSERT INTO `iam_role_path` VALUES (1789979322187636757, 1757298887092326400, 1789978117570945129);
-INSERT INTO `iam_role_path` VALUES (1789979322187636758, 1757298887092326400, 1789978117566750730);
-INSERT INTO `iam_role_path` VALUES (1789979322187636759, 1757298887092326400, 1789978117562556448);
-INSERT INTO `iam_role_path` VALUES (1789979322187636760, 1757298887092326400, 1789978117570945302);
-INSERT INTO `iam_role_path` VALUES (1789979322187636761, 1757298887092326400, 1789978117570945273);
-INSERT INTO `iam_role_path` VALUES (1789979322187636762, 1757298887092326400, 1789978117570945213);
-INSERT INTO `iam_role_path` VALUES (1789979322187636763, 1757298887092326400, 1789978117570945177);
-INSERT INTO `iam_role_path` VALUES (1789979322187636764, 1757298887092326400, 1789978117570945161);
-INSERT INTO `iam_role_path` VALUES (1789979322187636765, 1757298887092326400, 1789978117570945136);
-INSERT INTO `iam_role_path` VALUES (1789979322187636766, 1757298887092326400, 1789978117566750763);
-INSERT INTO `iam_role_path` VALUES (1789979322187636767, 1757298887092326400, 1789978117566750728);
-INSERT INTO `iam_role_path` VALUES (1789979322187636769, 1757298887092326400, 1789978117570945222);
-INSERT INTO `iam_role_path` VALUES (1789979322187636771, 1757298887092326400, 1789978117566750820);
-INSERT INTO `iam_role_path` VALUES (1789979322187636772, 1757298887092326400, 1789978117570945286);
-INSERT INTO `iam_role_path` VALUES (1789979322187636773, 1757298887092326400, 1789978117570945072);
-INSERT INTO `iam_role_path` VALUES (1789979322187636774, 1757298887092326400, 1789978117570945064);
-INSERT INTO `iam_role_path` VALUES (1789979322187636775, 1757298887092326400, 1789978117570945279);
-INSERT INTO `iam_role_path` VALUES (1789979322187636776, 1757298887092326400, 1789978117570945028);
-INSERT INTO `iam_role_path` VALUES (1789979322187636777, 1757298887092326400, 1789978117566750751);
-INSERT INTO `iam_role_path` VALUES (1789979322187636778, 1757298887092326400, 1789978117570945277);
-INSERT INTO `iam_role_path` VALUES (1789979322187636783, 1757298887092326400, 1789978117570945100);
-INSERT INTO `iam_role_path` VALUES (1789979322187636786, 1757298887092326400, 1789978117566750789);
-INSERT INTO `iam_role_path` VALUES (1789979322187636790, 1757298887092326400, 1789978117570945266);
-INSERT INTO `iam_role_path` VALUES (1789979322187636791, 1757298887092326400, 1789978117570945251);
-INSERT INTO `iam_role_path` VALUES (1789979322187636792, 1757298887092326400, 1789978117570945073);
-INSERT INTO `iam_role_path` VALUES (1789979322187636793, 1757298887092326400, 1789978117570945056);
-INSERT INTO `iam_role_path` VALUES (1789979322187636794, 1757298887092326400, 1789978117566750822);
-INSERT INTO `iam_role_path` VALUES (1789979322187636795, 1757298887092326400, 1789978117566750809);
-INSERT INTO `iam_role_path` VALUES (1789979322187636796, 1757298887092326400, 1789978117566750803);
-INSERT INTO `iam_role_path` VALUES (1789979322187636797, 1757298887092326400, 1789978117566750726);
-INSERT INTO `iam_role_path` VALUES (1789979322187636799, 1757298887092326400, 1789978117570945163);
-INSERT INTO `iam_role_path` VALUES (1789979322187636800, 1757298887092326400, 1789978117570945144);
-INSERT INTO `iam_role_path` VALUES (1789979322187636801, 1757298887092326400, 1789978117570945258);
-INSERT INTO `iam_role_path` VALUES (1789979322187636802, 1757298887092326400, 1789978117570945237);
-INSERT INTO `iam_role_path` VALUES (1789979322187636803, 1757298887092326400, 1789978117570945184);
-INSERT INTO `iam_role_path` VALUES (1789979322187636804, 1757298887092326400, 1789978117570945162);
-INSERT INTO `iam_role_path` VALUES (1789979322187636805, 1757298887092326400, 1789978117570945116);
-INSERT INTO `iam_role_path` VALUES (1789979322187636806, 1757298887092326400, 1789978117570945115);
-INSERT INTO `iam_role_path` VALUES (1789979322187636807, 1757298887092326400, 1789978117570945085);
-INSERT INTO `iam_role_path` VALUES (1789979322187636808, 1757298887092326400, 1789978117562556418);
-INSERT INTO `iam_role_path` VALUES (1789979322187636809, 1757298887092326400, 1789978117570945236);
-INSERT INTO `iam_role_path` VALUES (1789979322187636810, 1757298887092326400, 1789978117570945098);
-INSERT INTO `iam_role_path` VALUES (1789979322187636811, 1757298887092326400, 1789978117570945231);
-INSERT INTO `iam_role_path` VALUES (1789979322187636812, 1757298887092326400, 1789978117570945192);
-INSERT INTO `iam_role_path` VALUES (1789979322187636813, 1757298887092326400, 1789978117570945181);
-INSERT INTO `iam_role_path` VALUES (1789979322187636814, 1757298887092326400, 1789978117570945172);
-INSERT INTO `iam_role_path` VALUES (1789979322187636815, 1757298887092326400, 1789978117570945114);
-INSERT INTO `iam_role_path` VALUES (1789979322187636816, 1757298887092326400, 1789978117570945082);
-INSERT INTO `iam_role_path` VALUES (1789979322187636817, 1757298887092326400, 1789978117566750740);
-INSERT INTO `iam_role_path` VALUES (1789979322187636818, 1757298887092326400, 1789978117562556428);
-INSERT INTO `iam_role_path` VALUES (1789979322187636819, 1757298887092326400, 1789978117562556420);
-INSERT INTO `iam_role_path` VALUES (1789979322187636820, 1757298887092326400, 1789978117570945198);
-INSERT INTO `iam_role_path` VALUES (1789979322187636821, 1757298887092326400, 1789978117570945182);
-INSERT INTO `iam_role_path` VALUES (1789979322187636822, 1757298887092326400, 1789978117570945078);
-INSERT INTO `iam_role_path` VALUES (1789979322187636823, 1757298887092326400, 1789978117570945067);
-INSERT INTO `iam_role_path` VALUES (1789979322187636824, 1757298887092326400, 1789978117570945044);
-INSERT INTO `iam_role_path` VALUES (1789979322187636825, 1757298887092326400, 1789978117562556452);
-INSERT INTO `iam_role_path` VALUES (1789979322187636826, 1757298887092326400, 1789978117562556425);
-INSERT INTO `iam_role_path` VALUES (1789979322187636828, 1757298887092326400, 1789978117570945200);
-INSERT INTO `iam_role_path` VALUES (1789979322187636829, 1757298887092326400, 1789978117570945171);
-INSERT INTO `iam_role_path` VALUES (1789979322187636830, 1757298887092326400, 1789978117562556419);
-INSERT INTO `iam_role_path` VALUES (1789979322187636831, 1757298887092326400, 1789978117570945189);
-INSERT INTO `iam_role_path` VALUES (1789979322187636832, 1757298887092326400, 1789978117570945048);
-INSERT INTO `iam_role_path` VALUES (1789979322187636835, 1757298887092326400, 1789978117562556435);
-INSERT INTO `iam_role_path` VALUES (1789979322187636836, 1757298887092326400, 1789978117570945155);
-INSERT INTO `iam_role_path` VALUES (1789979322187636837, 1757298887092326400, 1789978117566750762);
-INSERT INTO `iam_role_path` VALUES (1789979322187636838, 1757298887092326400, 1789978117570945150);
-INSERT INTO `iam_role_path` VALUES (1789979322187636839, 1757298887092326400, 1789978117566750753);
-INSERT INTO `iam_role_path` VALUES (1789979322187636840, 1757298887092326400, 1789978117570945107);
-INSERT INTO `iam_role_path` VALUES (1789979322187636841, 1757298887092326400, 1789978117566750736);
-INSERT INTO `iam_role_path` VALUES (1789979322187636842, 1757298887092326400, 1789978117570945104);
-INSERT INTO `iam_role_path` VALUES (1789979322187636843, 1757298887092326400, 1789978117566750742);
-INSERT INTO `iam_role_path` VALUES (1789979908043825152, 1757297023118462976, 1789978117570945084);
-INSERT INTO `iam_role_path` VALUES (1789979908043825153, 1757297023118462976, 1789978117570945059);
-INSERT INTO `iam_role_path` VALUES (1789979908043825154, 1757297023118462976, 1789978117570945039);
-INSERT INTO `iam_role_path` VALUES (1789979908043825155, 1757297023118462976, 1789978117566750797);
-INSERT INTO `iam_role_path` VALUES (1789979908324843520, 1757298887092326400, 1789978117570945084);
-INSERT INTO `iam_role_path` VALUES (1789979908324843521, 1757298887092326400, 1789978117570945059);
-INSERT INTO `iam_role_path` VALUES (1789979908324843522, 1757298887092326400, 1789978117570945039);
-INSERT INTO `iam_role_path` VALUES (1789982023252303872, 1757297023118462976, 1789978117570945308);
-INSERT INTO `iam_role_path` VALUES (1789982023252303873, 1757297023118462976, 1789978117570945239);
-INSERT INTO `iam_role_path` VALUES (1789982023252303874, 1757297023118462976, 1789978117570945186);
-INSERT INTO `iam_role_path` VALUES (1789982023252303875, 1757297023118462976, 1789978117570945052);
-INSERT INTO `iam_role_path` VALUES (1789982023252303876, 1757297023118462976, 1789978117566750795);
-INSERT INTO `iam_role_path` VALUES (1789982023252303877, 1757297023118462976, 1789978117566750741);
-INSERT INTO `iam_role_path` VALUES (1789982023252303878, 1757297023118462976, 1789978117570945094);
-INSERT INTO `iam_role_path` VALUES (1789982023252303879, 1757297023118462976, 1789978117566750758);
-INSERT INTO `iam_role_path` VALUES (1789982023252303880, 1757297023118462976, 1789978117566750733);
-INSERT INTO `iam_role_path` VALUES (1789982023529127937, 1757298887092326400, 1789978117570945239);
-INSERT INTO `iam_role_path` VALUES (1789982023529127938, 1757298887092326400, 1789978117570945186);
-INSERT INTO `iam_role_path` VALUES (1789982023529127939, 1757298887092326400, 1789978117570945052);
-INSERT INTO `iam_role_path` VALUES (1789982023529127940, 1757298887092326400, 1789978117566750795);
-INSERT INTO `iam_role_path` VALUES (1789982023529127941, 1757298887092326400, 1789978117566750741);
-INSERT INTO `iam_role_path` VALUES (1789982023529127942, 1757298887092326400, 1789978117570945094);
-INSERT INTO `iam_role_path` VALUES (1789982023529127943, 1757298887092326400, 1789978117566750758);
-INSERT INTO `iam_role_path` VALUES (1789986071959429120, 1757298887092326400, 1789978117570945124);
-INSERT INTO `iam_role_path` VALUES (1790355320001957888, 1757297023118462976, 1789978117570945272);
-INSERT INTO `iam_role_path` VALUES (1790355320001957889, 1757297023118462976, 1789978117570945194);
-INSERT INTO `iam_role_path` VALUES (1790355320001957890, 1757297023118462976, 1789978117570945175);
-INSERT INTO `iam_role_path` VALUES (1790355320001957891, 1757297023118462976, 1789978117570945164);
-INSERT INTO `iam_role_path` VALUES (1790355320001957892, 1757297023118462976, 1789978117566750801);
-INSERT INTO `iam_role_path` VALUES (1790355320102621184, 1757298887092326400, 1789978117570945272);
-INSERT INTO `iam_role_path` VALUES (1790355320102621185, 1757298887092326400, 1789978117570945194);
-INSERT INTO `iam_role_path` VALUES (1790355320102621186, 1757298887092326400, 1789978117570945175);
-INSERT INTO `iam_role_path` VALUES (1790355320102621187, 1757298887092326400, 1789978117570945164);
-INSERT INTO `iam_role_path` VALUES (1790355320102621188, 1757298887092326400, 1789978117566750801);
-
--- ----------------------------
--- Table structure for iam_user_data_role
--- ----------------------------
-DROP TABLE IF EXISTS `iam_user_data_role`;
-CREATE TABLE `iam_user_data_role`  (
-                                       `id` bigint(20) NOT NULL COMMENT '主键',
-                                       `user_id` bigint(20) NOT NULL COMMENT '用户ID',
-                                       `role_id` bigint(20) NOT NULL COMMENT '数据角色ID',
-                                       PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '用户数据范围关系\r\n' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of iam_user_data_role
--- ----------------------------
-
--- ----------------------------
--- Table structure for iam_user_dept
--- ----------------------------
-DROP TABLE IF EXISTS `iam_user_dept`;
-CREATE TABLE `iam_user_dept`  (
-                                  `id` bigint(20) NOT NULL,
-                                  `user_id` bigint(20) NOT NULL COMMENT '用户id',
-                                  `dept_id` bigint(20) NOT NULL COMMENT '部门id',
-                                  PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '用户部门关联表' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of iam_user_dept
--- ----------------------------
-
--- ----------------------------
--- Table structure for iam_user_expand_info
--- ----------------------------
-DROP TABLE IF EXISTS `iam_user_expand_info`;
-CREATE TABLE `iam_user_expand_info`  (
-                                         `id` bigint(20) NOT NULL COMMENT '主键',
-                                         `sex` int(4) NULL DEFAULT NULL COMMENT '性别',
-                                         `birthday` date NULL DEFAULT NULL COMMENT '生日',
-                                         `avatar` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '头像',
-                                         `last_login_time` datetime NULL DEFAULT NULL COMMENT '上次登录时间',
-                                         `current_login_time` datetime NULL DEFAULT NULL COMMENT '本次登录时间',
-                                         `initial_password` bit(1) NOT NULL COMMENT '是否初始密码',
-                                         `expire_password` bit(1) NOT NULL COMMENT '密码是否过期',
-                                         `last_change_password_time` datetime NULL DEFAULT NULL COMMENT '上次修改密码时间',
-                                         `register_time` datetime NOT NULL COMMENT '注册时间',
-                                         `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-                                         `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
-                                         `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修者ID',
-                                         `last_modified_time` datetime NULL DEFAULT NULL COMMENT '最后修改时间',
-                                         `version` int(11) NOT NULL COMMENT '乐观锁',
-                                         `deleted` bit(1) NOT NULL COMMENT '删除标志',
-                                         PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '用户扩展信息' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of iam_user_expand_info
--- ----------------------------
-INSERT INTO `iam_user_expand_info` VALUES (1399985191002447872, 1, '1996-12-01', NULL, '2024-05-13 19:48:06', '2024-05-13 19:48:37', b'0', b'0', '2023-10-19 14:14:08', '2021-08-01 18:52:37', 1, '2021-06-02 15:04:15', 0, '2024-05-13 19:48:37', 453, b'0');
-INSERT INTO `iam_user_expand_info` VALUES (1757299137932677120, 1, '2024-02-13', NULL, '2024-05-13 19:32:55', '2024-05-13 19:48:45', b'0', b'0', NULL, '2024-02-13 15:02:18', 1399985191002447872, '2024-02-13 15:02:18', 0, '2024-05-13 19:48:45', 6, b'0');
-INSERT INTO `iam_user_expand_info` VALUES (1757317255899869184, NULL, NULL, NULL, '2024-04-25 22:10:31', '2024-04-26 09:22:54', b'0', b'0', NULL, '2024-02-13 16:14:18', 1399985191002447872, '2024-02-13 16:14:18', 0, '2024-04-26 09:22:54', 9, b'0');
-
--- ----------------------------
--- Table structure for iam_user_info
--- ----------------------------
-DROP TABLE IF EXISTS `iam_user_info`;
-CREATE TABLE `iam_user_info`  (
-                                  `id` bigint(20) NOT NULL,
-                                  `name` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '名称',
-                                  `username` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '账号',
-                                  `password` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '密码',
-                                  `phone` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '手机号',
-                                  `email` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '邮箱',
-                                  `client_ids` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL COMMENT '关联终端ds',
-                                  `administrator` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否超级管理员',
-                                  `status` varchar(55) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '账号状态',
-                                  `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建人',
-                                  `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
-                                  `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修改人',
-                                  `last_modified_time` datetime NULL DEFAULT NULL COMMENT '最后修改时间',
-                                  `version` int(11) NOT NULL COMMENT '版本',
-                                  `deleted` tinyint(1) NOT NULL DEFAULT 0 COMMENT '0:未删除。1:已删除',
-                                  PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '用户信息' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of iam_user_info
--- ----------------------------
-INSERT INTO `iam_user_info` VALUES (1399985191002447872, 'Bootx', 'bootx', 'f52020dca765fd3943ed40a615dc2c5c', '13333333333', 'bootx@bootx.cn', '1430430071299207168,1430430071299207169,1626840094767714304,1580487061605175296', b'1', 'normal', 1, '2021-06-02 15:04:15', 1399985191002447872, '2024-04-11 18:55:34', 65, 0);
-INSERT INTO `iam_user_info` VALUES (1757299137932677120, 'DaxPay演示', 'daxpay', 'f52020dca765fd3943ed40a615dc2c5c', '14443332251', 'daxpay@qq.com', '1580487061605175296', b'0', 'normal', 1399985191002447872, '2024-02-13 15:02:18', 1757299137932677120, '2024-02-13 16:09:44', 2, 0);
-INSERT INTO `iam_user_info` VALUES (1757317255899869184, 'DaxPay管理员', 'daxpayadmin', '1e9e3c3deaa4a06d08326e82a49d1b63', '12222333223', 'daxpayadmin@qq.com', '1580487061605175296', b'0', 'normal', 1399985191002447872, '2024-02-13 16:14:18', 1399985191002447872, '2024-02-13 16:14:18', 0, 0);
-
--- ----------------------------
--- Table structure for iam_user_role
--- ----------------------------
-DROP TABLE IF EXISTS `iam_user_role`;
-CREATE TABLE `iam_user_role`  (
-                                  `id` bigint(20) NOT NULL COMMENT '主键',
-                                  `user_id` bigint(20) NOT NULL COMMENT '用户ID',
-                                  `role_id` bigint(20) NOT NULL COMMENT '角色ID',
-                                  PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '用户角色关系\r\n' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of iam_user_role
--- ----------------------------
-INSERT INTO `iam_user_role` VALUES (1757299293314863104, 1757299137932677120, 1757298887092326400);
-INSERT INTO `iam_user_role` VALUES (1757317495407210496, 1757317255899869184, 1757297023118462976);
-
--- ----------------------------
--- Table structure for iam_user_third
--- ----------------------------
-DROP TABLE IF EXISTS `iam_user_third`;
-CREATE TABLE `iam_user_third`  (
-                                   `id` bigint(20) NOT NULL COMMENT '主键',
-                                   `user_id` bigint(20) NULL DEFAULT NULL COMMENT '用户id',
-                                   `we_chat_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '微信openId',
-                                   `we_chat_open_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '微信开放平台id',
-                                   `qq_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'qqId',
-                                   `weibo_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '微博Id',
-                                   `gitee_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '码云唯一标识',
-                                   `ding_talk_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '钉钉唯一标识',
-                                   `we_com_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '企业微信唯一标识',
-                                   `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建人',
-                                   `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
-                                   `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修改人',
-                                   `last_modified_time` datetime NULL DEFAULT NULL COMMENT '最后修改时间',
-                                   `version` int(11) NOT NULL COMMENT '版本',
-                                   `deleted` tinyint(1) NOT NULL DEFAULT 0 COMMENT '0:未删除。1:已删除',
-                                   PRIMARY KEY (`id`) USING BTREE,
-                                   INDEX `pk_user_index`(`user_id`) USING BTREE COMMENT '用户id索引'
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '用户三方登录绑定' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of iam_user_third
--- ----------------------------
-
--- ----------------------------
--- Table structure for iam_user_third_info
--- ----------------------------
-DROP TABLE IF EXISTS `iam_user_third_info`;
-CREATE TABLE `iam_user_third_info`  (
-                                        `id` bigint(20) NOT NULL COMMENT '主键',
-                                        `user_id` bigint(20) NOT NULL COMMENT '用户id',
-                                        `client_code` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT '第三方终端类型',
-                                        `username` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '用户名',
-                                        `nickname` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '用户昵称',
-                                        `avatar` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '用户头像',
-                                        `third_user_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '关联第三方平台的用户id',
-                                        `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建人',
-                                        `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
-                                        `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修改人',
-                                        `last_modified_time` datetime NULL DEFAULT NULL COMMENT '最后修改时间',
-                                        `version` int(11) NOT NULL COMMENT '版本',
-                                        PRIMARY KEY (`id`) USING BTREE,
-                                        INDEX `pk_user_client`(`user_id`, `client_code`) USING BTREE COMMENT '用户id和终端code'
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '用户三方登录绑定详情' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of iam_user_third_info
--- ----------------------------
-
--- ----------------------------
--- Table structure for notice_mail_config
--- ----------------------------
-DROP TABLE IF EXISTS `notice_mail_config`;
-CREATE TABLE `notice_mail_config`  (
-                                       `id` bigint(20) NOT NULL,
-                                       `code` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '编号',
-                                       `name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '名称',
-                                       `host` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '邮箱服务器host',
-                                       `port` int(5) NOT NULL COMMENT '邮箱服务器 port',
-                                       `username` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '邮箱服务器 username',
-                                       `password` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '邮箱服务器 password',
-                                       `sender` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '邮箱服务器 sender',
-                                       `from_` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '邮箱服务器 from',
-                                       `activity` tinyint(1) NULL DEFAULT 0 COMMENT '是否默认配置,0:否。1:是',
-                                       `security_type` int(2) NULL DEFAULT NULL COMMENT '安全传输方式 1:plain 2:tls 3:ssl',
-                                       `creator` bigint(18) NULL DEFAULT NULL COMMENT '创建人',
-                                       `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
-                                       `last_modifier` bigint(18) NULL DEFAULT NULL COMMENT '最后修改人',
-                                       `last_modified_time` datetime NULL DEFAULT NULL COMMENT '最后修改时间',
-                                       `deleted` tinyint(1) NULL DEFAULT 0 COMMENT '0:未删除。1:已删除',
-                                       `version` int(8) NULL DEFAULT NULL COMMENT '版本',
-                                       PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '邮件配置' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of notice_mail_config
--- ----------------------------
-
--- ----------------------------
--- Table structure for notice_message_template
--- ----------------------------
-DROP TABLE IF EXISTS `notice_message_template`;
-CREATE TABLE `notice_message_template`  (
-                                            `id` bigint(20) NOT NULL,
-                                            `code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '编码',
-                                            `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '名称',
-                                            `data` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '模板数据',
-                                            `type` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '模板类型',
-                                            `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
-                                            `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建人',
-                                            `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
-                                            `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修改人',
-                                            `last_modified_time` datetime NULL DEFAULT NULL COMMENT '最后修改时间',
-                                            `version` int(11) NOT NULL COMMENT '版本',
-                                            `deleted` tinyint(1) NOT NULL DEFAULT 0 COMMENT '0:未删除。1:已删除',
-                                            PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '消息模板' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of notice_message_template
--- ----------------------------
-INSERT INTO `notice_message_template` VALUES (1424936204932169730, 'cs', '测试', 'hello ${msg}6666666666666666666666666666', '1', '测试模板', 0, '2021-08-10 11:30:40', 0, '2021-08-10 11:30:40', 0, 0);
-
--- ----------------------------
--- Table structure for notice_site_message
--- ----------------------------
-DROP TABLE IF EXISTS `notice_site_message`;
-CREATE TABLE `notice_site_message`  (
-                                        `id` bigint(20) NOT NULL COMMENT '主键',
-                                        `title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '消息标题',
-                                        `content` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '消息内容',
-                                        `sender_id` bigint(20) NULL DEFAULT NULL COMMENT '发送者id',
-                                        `sender_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '发送者姓名',
-                                        `sender_time` datetime NULL DEFAULT NULL COMMENT '发送时间',
-                                        `receive_type` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '消息类型',
-                                        `send_state` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '发布状态',
-                                        `efficient_time` datetime NULL DEFAULT NULL COMMENT '截至有效期',
-                                        `cancel_time` datetime NULL DEFAULT NULL COMMENT '撤回时间',
-                                        `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建人',
-                                        `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
-                                        `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修改人',
-                                        `last_modified_time` datetime NULL DEFAULT NULL COMMENT '最后修改时间',
-                                        `version` int(11) NOT NULL COMMENT '版本',
-                                        `deleted` tinyint(1) NOT NULL DEFAULT 0 COMMENT '0:未删除。1:已删除',
-                                        PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '站内信' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of notice_site_message
--- ----------------------------
-
--- ----------------------------
--- Table structure for notice_site_message_user
--- ----------------------------
-DROP TABLE IF EXISTS `notice_site_message_user`;
-CREATE TABLE `notice_site_message_user`  (
-                                             `id` bigint(20) NOT NULL COMMENT '主键',
-                                             `message_id` bigint(20) NOT NULL COMMENT '消息id',
-                                             `receive_id` bigint(20) NOT NULL COMMENT '接收者id',
-                                             `have_read` bit(1) NOT NULL COMMENT '已读/未读',
-                                             `read_time` datetime NULL DEFAULT NULL COMMENT '已读时间',
-                                             `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建人',
-                                             `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
-                                             `deleted` tinyint(1) NOT NULL DEFAULT 0 COMMENT '0:未删除。1:已删除',
-                                             PRIMARY KEY (`id`) USING BTREE,
-                                             UNIQUE INDEX `uni_receive_message`(`receive_id`, `message_id`) USING BTREE COMMENT '接收人和消息联合索引',
-                                             INDEX `inx_message`(`message_id`) USING BTREE COMMENT '消息索引'
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '消息用户关联' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of notice_site_message_user
--- ----------------------------
-
--- ----------------------------
--- Table structure for notice_sms_channel_config
--- ----------------------------
-DROP TABLE IF EXISTS `notice_sms_channel_config`;
-CREATE TABLE `notice_sms_channel_config`  (
-                                              `id` bigint(20) NOT NULL COMMENT '主键',
-                                              `code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '渠道类型编码',
-                                              `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '渠道类型名称',
-                                              `state` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '状态',
-                                              `access_key` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'AccessKey',
-                                              `config` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '配置字符串',
-                                              `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
-                                              `access_secret` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'AccessSecret',
-                                              `image` bigint(20) NULL DEFAULT NULL COMMENT '图片',
-                                              `sort_no` double(10, 0) NULL DEFAULT NULL COMMENT '排序',
-                                              `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-                                              `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
-                                              `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修者ID',
-                                              `last_modified_time` datetime NULL DEFAULT NULL COMMENT '最后修改时间',
-                                              `version` int(11) NOT NULL COMMENT '乐观锁',
-                                              `deleted` bit(1) NOT NULL COMMENT '删除标志',
-                                              PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '短信渠道配置' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of notice_sms_channel_config
--- ----------------------------
-INSERT INTO `notice_sms_channel_config` VALUES (1688432603289337856, 'alibaba', '阿里云短信', 'normal', '1', '{\"accessKeyId\":\"1231231231232111\",\"accessKeySecret\":\"12312312321111\",\"signature\":\"1231\",\"templateId\":\"2312313\",\"templateName\":\"123\",\"requestUrl\":\"五千二无二\",\"action\":\"SendSms\",\"version\":\"11\",\"regionId\":\"cn-hangzhou\"}', NULL, '1', NULL, 0, 1414143554414059520, '2023-08-07 14:11:17', 1414143554414059520, '2023-08-07 15:35:34', 0, b'0');
-INSERT INTO `notice_sms_channel_config` VALUES (1688456604610953216, 'huawei', '华为云短信', 'normal', '1', '{\"appKey\":\"1231231231232\",\"appSecret\":\"1111\",\"signature\":\"1\",\"sender\":\"1\",\"templateId\":\"12\",\"statusCallBack\":\"1\",\"url\":\"1\"}', NULL, '1', NULL, 0, 1414143554414059520, '2023-08-07 15:46:39', 1414143554414059520, '2023-08-07 15:46:49', 0, b'0');
-INSERT INTO `notice_sms_channel_config` VALUES (1688461302302732288, 'yunpian', '云片短信', 'normal', '1', '{\"accessKeyId\":\"1\",\"accessKeySecret\":\"1\",\"signature\":null,\"templateId\":null,\"callbackUrl\":null,\"templateName\":null}', NULL, '1', NULL, 0, 1414143554414059520, '2023-08-07 16:05:19', 1414143554414059520, '2023-08-08 14:12:23', 0, b'0');
-INSERT INTO `notice_sms_channel_config` VALUES (1688788784751001600, 'tencent', '腾讯短信', 'normal', '1', '{\"accessKeyId\":\"1\",\"accessKeySecret\":\"1\",\"signature\":null,\"templateId\":null,\"sdkAppId\":null,\"territory\":\"ap-guangzhou\",\"connTimeout\":60,\"requestUrl\":\"sms.tencentcloudapi.com\",\"action\":\"SendSms\",\"version\":\"2021-01-11\",\"service\":\"sms\"}', NULL, '1', NULL, 0, 1414143554414059520, '2023-08-08 13:46:37', 1414143554414059520, '2023-08-08 13:46:37', 0, b'0');
-INSERT INTO `notice_sms_channel_config` VALUES (1688788807228276736, 'uni_sms', '合一短信', 'normal', '1', '{\"accessKeyId\":\"1\",\"accessKeySecret\":\"1\",\"signature\":null,\"templateId\":null,\"isSimple\":true,\"templateName\":null}', NULL, '1', NULL, 0, 1414143554414059520, '2023-08-08 13:46:42', 1414143554414059520, '2023-08-08 13:46:43', 0, b'0');
-INSERT INTO `notice_sms_channel_config` VALUES (1688788823900635136, 'netease', '网易云短信', 'normal', '1', '{\"accessKeyId\":\"1\",\"accessKeySecret\":\"1\",\"signature\":null,\"templateId\":null,\"templateName\":null,\"templateUrl\":\"https://api.netease.im/sms/sendtemplate.action\",\"codeUrl\":\"https://api.netease.im/sms/sendcode.action\",\"verifyUrl\":\"https://api.netease.im/sms/verifycode.action\",\"needUp\":null}', NULL, '1', NULL, 0, 1414143554414059520, '2023-08-08 13:46:46', 1414143554414059520, '2023-08-08 13:46:47', 0, b'0');
-INSERT INTO `notice_sms_channel_config` VALUES (1688788846944141312, 'ctyun', '天翼云短信', 'normal', '1', '{\"accessKeyId\":\"1\",\"accessKeySecret\":\"1\",\"signature\":null,\"templateId\":null,\"templateName\":null,\"requestUrl\":\"https://sms-global.ctapi.ctyun.cn/sms/api/v1\",\"action\":\"SendSms\"}', NULL, '1', NULL, 0, 1414143554414059520, '2023-08-08 13:46:52', 1414143554414059520, '2023-08-08 13:46:52', 0, b'0');
-INSERT INTO `notice_sms_channel_config` VALUES (1688788862987354112, 'emay', '亿美短信', 'normal', '1', '{\"appId\":\"1\",\"secretKey\":\"1\",\"requestUrl\":null}', NULL, '1', NULL, 0, 1414143554414059520, '2023-08-08 13:46:56', 1414143554414059520, '2023-08-08 14:03:04', 0, b'0');
-INSERT INTO `notice_sms_channel_config` VALUES (1688788885141667840, 'cloopen', '容联短信', 'normal', '1', '{\"accessKeyId\":\"1\",\"accessKeySecret\":\"1\",\"signature\":null,\"templateId\":null,\"appId\":null,\"baseUrl\":\"https://app.cloopen.com:8883/2013-12-26\",\"serverIp\":null,\"serverPort\":null}', NULL, '1', NULL, 0, 1414143554414059520, '2023-08-08 13:47:01', 1414143554414059520, '2023-08-08 13:47:01', 0, b'0');
-INSERT INTO `notice_sms_channel_config` VALUES (1688788904481603584, 'jd_cloud', '京东短信', 'normal', '1', '{\"accessKeyId\":\"1\",\"accessKeySecret\":\"1\",\"signature\":null,\"templateId\":null,\"region\":\"cn-north-1\"}', NULL, '1', NULL, 0, 1414143554414059520, '2023-08-08 13:47:06', 1414143554414059520, '2023-08-08 13:47:06', 0, b'0');
-
--- ----------------------------
--- Table structure for notice_sms_config
--- ----------------------------
-DROP TABLE IF EXISTS `notice_sms_config`;
-CREATE TABLE `notice_sms_config`  (
-                                      `id` bigint(18) NOT NULL,
-                                      `tid` bigint(18) NOT NULL COMMENT '租户id',
-                                      `code` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
-                                      `name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL,
-                                      `account_sid` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
-                                      `path_sid` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '发送号码的唯一标识(基于twillio的命名风格)',
-                                      `auth_token` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
-                                      `from_num` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
-                                      `is_default` tinyint(1) NULL DEFAULT 0 COMMENT '是否默认配置,0:否。1:是',
-                                      `creator` bigint(18) NULL DEFAULT NULL,
-                                      `create_time` datetime NULL DEFAULT NULL,
-                                      `last_modifier` bigint(18) NULL DEFAULT NULL,
-                                      `last_modified_time` datetime NULL DEFAULT NULL,
-                                      `version` int(10) NULL DEFAULT NULL,
-                                      `deleted` tinyint(1) NULL DEFAULT 0 COMMENT '0:未删除。1:已删除',
-                                      `secret` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL,
-                                      `isp` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL,
-                                      `reply_msg` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL,
-                                      PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '短信配置' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of notice_sms_config
--- ----------------------------
-
--- ----------------------------
--- Table structure for notice_sms_template
--- ----------------------------
-DROP TABLE IF EXISTS `notice_sms_template`;
-CREATE TABLE `notice_sms_template`  (
-                                        `id` bigint(20) NOT NULL COMMENT '主键',
-                                        `supplier_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '短信渠道商类型',
-                                        `template_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '短信渠道商类型',
-                                        `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '短信模板名称',
-                                        `content` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '短信模板内容',
-                                        `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-                                        `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
-                                        `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修者ID',
-                                        `last_modified_time` datetime NULL DEFAULT NULL COMMENT '最后修改时间',
-                                        `version` int(11) NOT NULL COMMENT '乐观锁',
-                                        `deleted` bit(1) NOT NULL COMMENT '删除标志',
-                                        PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '短信模板配置' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of notice_sms_template
--- ----------------------------
-
--- ----------------------------
--- Table structure for notice_wechat_config
--- ----------------------------
-DROP TABLE IF EXISTS `notice_wechat_config`;
-CREATE TABLE `notice_wechat_config`  (
-                                         `id` bigint(18) NOT NULL,
-                                         `tid` bigint(18) NOT NULL COMMENT '租户id',
-                                         `code` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
-                                         `name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL,
-                                         `corp_id` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
-                                         `corp_secret` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
-                                         `is_default` tinyint(1) NULL DEFAULT 0 COMMENT '是否默认配置,0:否。1:是',
-                                         `creator` bigint(18) NULL DEFAULT NULL,
-                                         `create_time` datetime NULL DEFAULT NULL,
-                                         `last_modifier` bigint(18) NULL DEFAULT NULL,
-                                         `last_modified_time` datetime NULL DEFAULT NULL,
-                                         `version` int(10) NULL DEFAULT NULL,
-                                         `deleted` tinyint(1) NULL DEFAULT 0 COMMENT '0:未删除。1:已删除',
-                                         PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '微信消息配置' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of notice_wechat_config
--- ----------------------------
-
--- ----------------------------
--- Table structure for pay_alipay_config
--- ----------------------------
-DROP TABLE IF EXISTS `pay_alipay_config`;
-CREATE TABLE `pay_alipay_config`  (
-                                      `id` bigint(20) NOT NULL COMMENT '主键',
-                                      `app_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '支付宝商户appId',
-                                      `enable` bit(1) NULL DEFAULT NULL COMMENT '是否启用',
-                                      `notify_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '异步通知页面路径',
-                                      `return_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '同步通知页面路径',
-                                      `server_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '支付网关地址',
-                                      `auth_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '认证类型',
-                                      `sign_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '签名类型 RSA2',
-                                      `alipay_public_key` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '支付宝公钥',
-                                      `private_key` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '私钥',
-                                      `app_cert` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '应用公钥证书',
-                                      `alipay_cert` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '支付宝公钥证书',
-                                      `alipay_root_cert` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '支付宝CA根证书',
-                                      `sandbox` bit(1) NULL DEFAULT NULL COMMENT '是否沙箱环境',
-                                      `single_limit` int(11) NULL DEFAULT NULL COMMENT '支付限额',
-                                      `pay_ways` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '可用支付方式',
-                                      `allocation` bit(1) NULL DEFAULT NULL COMMENT '是否支付分账',
-                                      `alipay_user_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '合作者身份ID',
-                                      `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
-                                      `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-                                      `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
-                                      `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修者ID',
-                                      `last_modified_time` datetime NULL DEFAULT NULL COMMENT '最后修改时间',
-                                      `version` int(11) NOT NULL COMMENT '乐观锁',
-                                      `deleted` bit(1) NOT NULL COMMENT '删除标志',
-                                      PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '支付宝支付配置' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of pay_alipay_config
--- ----------------------------
-INSERT INTO `pay_alipay_config` VALUES (0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'wap,web,qrcode,app,barcode', NULL, NULL, NULL, 0, '2024-01-02 21:17:58', 1399985191002447872, '2024-05-07 19:06:38', 32, b'0');
-
--- ----------------------------
--- Table structure for pay_alipay_reconcile_bill_detail
--- ----------------------------
-DROP TABLE IF EXISTS `pay_alipay_reconcile_bill_detail`;
-CREATE TABLE `pay_alipay_reconcile_bill_detail`  (
-                                                     `id` bigint(20) NOT NULL COMMENT '主键',
-                                                     `trade_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '支付宝交易号',
-                                                     `out_trade_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商户订单号',
-                                                     `trade_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '业务类型',
-                                                     `subject` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商品名称',
-                                                     `create_time` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建时间',
-                                                     `end_time` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '完成时间',
-                                                     `store_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '门店编号',
-                                                     `store_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '门店名称',
-                                                     `operator` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '操作员',
-                                                     `terminal_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '终端号',
-                                                     `other_account` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '对方账户',
-                                                     `order_amount` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '订单金额(元)',
-                                                     `real_amount` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商家实收(元)',
-                                                     `alipay_amount` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '支付宝红包(元)',
-                                                     `jfb_amount` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '集分宝(元)',
-                                                     `alipay_discount_amount` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '支付宝优惠(元)',
-                                                     `discount_amount` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商家优惠(元)',
-                                                     `coupon_discount_amount` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '券核销金额(元)',
-                                                     `coupon_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '券名称',
-                                                     `coupon_amount` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商家红包消费金额(元)',
-                                                     `card_amount` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '卡消费金额(元)',
-                                                     `batch_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '退款批次号/请求号',
-                                                     `service_amount` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '服务费(元)',
-                                                     `split_amount` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '分润(元)',
-                                                     `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
-                                                     `reconcile_id` bigint(20) NULL DEFAULT NULL COMMENT '关联对账订单ID',
-                                                     PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '支付宝业务明细对账单' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of pay_alipay_reconcile_bill_detail
--- ----------------------------
-
--- ----------------------------
--- Table structure for pay_alipay_reconcile_bill_total
--- ----------------------------
-DROP TABLE IF EXISTS `pay_alipay_reconcile_bill_total`;
-CREATE TABLE `pay_alipay_reconcile_bill_total`  (
-                                                    `id` bigint(20) NOT NULL COMMENT '主键',
-                                                    `record_order_id` bigint(20) NULL DEFAULT NULL COMMENT '关联对账订单ID',
-                                                    `store_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '门店编号',
-                                                    `store_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '门店名称',
-                                                    `total_num` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '交易订单总笔数',
-                                                    `total_refund_num` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '退款订单总笔数',
-                                                    `total_order_amount` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '订单金额(元)',
-                                                    `total_amount` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商家实收(元)',
-                                                    `total_discount_amount` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '支付宝优惠(元)',
-                                                    `total_coupon_amount` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商家优惠(元)',
-                                                    `total_consume_amount` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '卡消费金额(元)',
-                                                    `total_service_amount` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '服务费(元)',
-                                                    `total_share_amount` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '分润(元)',
-                                                    `total_net_amount` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '实收净额(元)',
-                                                    PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '支付宝业务汇总对账单' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of pay_alipay_reconcile_bill_total
--- ----------------------------
-
--- ----------------------------
--- Table structure for pay_allocation_group
--- ----------------------------
-DROP TABLE IF EXISTS `pay_allocation_group`;
-CREATE TABLE `pay_allocation_group`  (
-                                         `id` bigint(20) NOT NULL COMMENT '主键',
-                                         `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '名称',
-                                         `channel` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '通道',
-                                         `total_rate` int(11) NULL DEFAULT NULL COMMENT '总分账比例(万分之多少)',
-                                         `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
-                                         `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-                                         `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
-                                         `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修者ID',
-                                         `last_modified_time` datetime NULL DEFAULT NULL COMMENT '最后修改时间',
-                                         `version` int(11) NOT NULL COMMENT '乐观锁',
-                                         `deleted` bit(1) NOT NULL COMMENT '删除标志',
-                                         `default_group` bit(1) NULL DEFAULT NULL COMMENT '默认分账组',
-                                         PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '分账组' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of pay_allocation_group
--- ----------------------------
-
--- ----------------------------
--- Table structure for pay_allocation_group_receiver
--- ----------------------------
-DROP TABLE IF EXISTS `pay_allocation_group_receiver`;
-CREATE TABLE `pay_allocation_group_receiver`  (
-                                                  `id` bigint(20) NOT NULL COMMENT '主键',
-                                                  `group_id` bigint(20) NULL DEFAULT NULL COMMENT '分账组ID',
-                                                  `receiver_id` bigint(20) NULL DEFAULT NULL COMMENT '接收者ID',
-                                                  `rate` int(11) NULL DEFAULT NULL COMMENT '分账比例(万分之多少)',
-                                                  `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-                                                  `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
-                                                  PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '分账接收组关系' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of pay_allocation_group_receiver
--- ----------------------------
-
--- ----------------------------
--- Table structure for pay_allocation_order
--- ----------------------------
-DROP TABLE IF EXISTS `pay_allocation_order`;
-CREATE TABLE `pay_allocation_order`  (
-                                         `id` bigint(20) NOT NULL COMMENT '主键',
-                                         `allocation_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '分账单号',
-                                         `biz_allocation_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商户分账单号',
-                                         `out_allocation_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '通道分账号',
-                                         `order_id` bigint(20) NULL DEFAULT NULL COMMENT '支付订单ID',
-                                         `order_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '支付订单号',
-                                         `biz_order_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商户支付订单号',
-                                         `out_order_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '通道支付订单号',
-                                         `title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
-                                         `channel` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '所属通道',
-                                         `amount` int(11) NULL DEFAULT NULL COMMENT '总分账金额',
-                                         `description` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '分账描述',
-                                         `status` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '状态',
-                                         `result` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '分账处理结果',
-                                         `error_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '错误码',
-                                         `error_msg` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '错误原因',
-                                         `finish_time` datetime NULL DEFAULT NULL COMMENT '分账完成时间',
-                                         `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-                                         `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
-                                         `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修者ID',
-                                         `last_modified_time` datetime NULL DEFAULT NULL COMMENT '最后修改时间',
-                                         `version` int(11) NOT NULL COMMENT '乐观锁',
-                                         `deleted` bit(1) NOT NULL COMMENT '删除标志',
-                                         PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '分账订单' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of pay_allocation_order
--- ----------------------------
-
--- ----------------------------
--- Table structure for pay_allocation_order_detail
--- ----------------------------
-DROP TABLE IF EXISTS `pay_allocation_order_detail`;
-CREATE TABLE `pay_allocation_order_detail`  (
-                                                `id` bigint(20) NOT NULL COMMENT '主键',
-                                                `allocation_id` bigint(20) NULL DEFAULT NULL COMMENT '分账订单ID',
-                                                `receiver_id` bigint(20) NULL DEFAULT NULL COMMENT '接收者ID',
-                                                `rate` int(11) NULL DEFAULT NULL COMMENT '分账比例(万分之多少)',
-                                                `amount` int(11) NULL DEFAULT NULL COMMENT '分账金额',
-                                                `receiver_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '分账接收方类型',
-                                                `receiver_account` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '接收方账号',
-                                                `receiver_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '接收方姓名',
-                                                `result` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '分账结果',
-                                                `error_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '错误代码',
-                                                `error_msg` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '错误原因',
-                                                `finish_time` datetime NULL DEFAULT NULL COMMENT '分账完成时间',
-                                                `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-                                                `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
-                                                `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修者ID',
-                                                `last_modified_time` datetime NULL DEFAULT NULL COMMENT '最后修改时间',
-                                                `version` int(11) NOT NULL COMMENT '乐观锁',
-                                                `deleted` bit(1) NOT NULL COMMENT '删除标志',
-                                                PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '分账订单明细' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of pay_allocation_order_detail
--- ----------------------------
-
--- ----------------------------
--- Table structure for pay_allocation_receiver
--- ----------------------------
-DROP TABLE IF EXISTS `pay_allocation_receiver`;
-CREATE TABLE `pay_allocation_receiver`  (
-                                            `id` bigint(20) NOT NULL COMMENT '主键',
-                                            `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '账号别名',
-                                            `channel` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '所属通道',
-                                            `receiver_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '分账接收方类型',
-                                            `receiver_account` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '接收方账号',
-                                            `receiver_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '接收方姓名',
-                                            `relation_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '分账关系类型',
-                                            `relation_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '关系名称',
-                                            `sync` bit(1) NULL DEFAULT NULL COMMENT '是否已经同步到网关',
-                                            `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
-                                            `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-                                            `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
-                                            `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修者ID',
-                                            `last_modified_time` datetime NULL DEFAULT NULL COMMENT '最后修改时间',
-                                            `version` int(11) NOT NULL COMMENT '乐观锁',
-                                            `deleted` bit(1) NOT NULL COMMENT '删除标志',
-                                            PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '分账接收方' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of pay_allocation_receiver
--- ----------------------------
-
--- ----------------------------
--- Table structure for pay_api_config
--- ----------------------------
-DROP TABLE IF EXISTS `pay_api_config`;
-CREATE TABLE `pay_api_config`  (
-                                   `id` bigint(20) NOT NULL COMMENT '主键',
-                                   `code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '编码',
-                                   `api` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '接口地址',
-                                   `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '名称',
-                                   `notice_support` bit(1) NULL DEFAULT NULL COMMENT '支持回调通知',
-                                   `enable` bit(1) NULL DEFAULT NULL COMMENT '是否启用',
-                                   `notice` bit(1) NULL DEFAULT NULL COMMENT '是否开启回调通知',
-                                   `notice_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '默认通知地址',
-                                   `req_sign` bit(1) NULL DEFAULT NULL COMMENT '请求参数是否签名',
-                                   `res_sign` bit(1) NULL DEFAULT NULL COMMENT '响应参数是否签名',
-                                   `notice_sign` bit(1) NULL DEFAULT NULL COMMENT '回调信息是否签名',
-                                   `record` bit(1) NULL DEFAULT NULL COMMENT '是否记录请求的信息',
-                                   `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
-                                   `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-                                   `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
-                                   `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修者ID',
-                                   `last_modified_time` datetime NULL DEFAULT NULL COMMENT '最后修改时间',
-                                   `version` int(11) NOT NULL COMMENT '乐观锁',
-                                   `deleted` bit(1) NOT NULL COMMENT '删除标志',
-                                   PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '支付接口配置' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of pay_api_config
--- ----------------------------
-INSERT INTO `pay_api_config` VALUES (1, 'pay', '/uniPay/pay', '统一支付接口	', b'1', b'1', b'1', 'https://daxpay.demo.bootx.cn/server/demo/callback/payObject', b'1', b'0', b'1', b'0', NULL, 0, '2024-01-03 14:25:53', 0, '2024-01-03 14:25:53', 0, b'0');
-INSERT INTO `pay_api_config` VALUES (3, 'close', '/uniPay/close', '支付关闭接口', b'0', b'1', b'1', NULL, b'1', b'0', b'0', b'0', NULL, 0, '2024-01-03 14:25:53', 0, '2024-01-03 14:25:53', 0, b'0');
-INSERT INTO `pay_api_config` VALUES (4, 'refund', '/uniPay/refund', '统一退款接口', b'1', b'1', b'1', 'https://daxpay.demo.bootx.cn/server/demo/callback/refundObject', b'1', b'0', b'1', b'0', NULL, 0, '2024-01-03 14:25:53', 0, '2024-01-03 14:25:53', 0, b'0');
-INSERT INTO `pay_api_config` VALUES (6, 'syncPay', '/uniPay/syncPay', '支付同步接口', b'0', b'1', b'1', NULL, b'1', b'0', b'0', b'0', NULL, 0, '2024-01-03 14:25:53', 0, '2024-01-03 14:25:53', 0, b'0');
-INSERT INTO `pay_api_config` VALUES (7, 'syncRefund', '/uniPay/syncRefund', '退款同步接口', b'0', b'1', b'1', NULL, b'1', b'0', b'0', b'0', NULL, 0, '2024-01-03 14:25:53', 0, '2024-01-03 14:25:53', 0, b'0');
-INSERT INTO `pay_api_config` VALUES (8, 'transfer', '/uniPay/transfer', '统一转账接口', b'1', b'1', b'1', NULL, b'1', b'0', b'0', b'0', NULL, 0, '2024-01-03 14:25:53', 0, '2024-01-03 14:25:53', 0, b'0');
-INSERT INTO `pay_api_config` VALUES (9, 'allocation', '/uniPay/allocation', '统一分账接口', b'1', b'1', b'1', NULL, b'1', b'0', b'0', b'0', NULL, 0, '2024-01-03 14:25:53', 0, '2024-01-03 14:25:53', 0, b'0');
-INSERT INTO `pay_api_config` VALUES (10, 'queryPayOrder', '/uniPay/queryPayOrder', '支付订单查询接口', b'0', b'1', b'0', NULL, b'1', b'0', b'0', b'0', NULL, 0, '2024-01-03 14:25:53', 0, '2024-01-03 14:25:53', 0, b'0');
-INSERT INTO `pay_api_config` VALUES (11, 'queryRefundOrder', '/uniPay/queryRefundOrder', '退款订单查询接口', b'0', b'1', b'0', NULL, b'1', b'0', b'0', b'0', NULL, 0, '2024-01-03 14:25:53', 0, '2024-01-03 14:25:53', 0, b'0');
-INSERT INTO `pay_api_config` VALUES (12, 'getWxAuthUrl', '/unipay/assist/getWxAuthUrl', '获取微信OAuth2授权链接', b'0', b'1', b'0', NULL, b'1', b'0', b'0', b'0', NULL, 0, '2024-01-03 14:25:53', 0, '2024-01-03 14:25:53', 0, b'0');
-INSERT INTO `pay_api_config` VALUES (13, 'getWxAccessToken', '/unipay/assist/getWxAccessToken', '获取微信AccessToken', b'0', b'1', b'0', NULL, b'1', b'0', b'0', b'0', NULL, 0, '2024-01-03 14:25:53', 0, '2024-01-03 14:25:53', 0, b'0');
-
--- ----------------------------
--- Table structure for pay_callback_record
--- ----------------------------
-DROP TABLE IF EXISTS `pay_callback_record`;
-CREATE TABLE `pay_callback_record`  (
-                                        `id` bigint(20) NOT NULL COMMENT '主键',
-                                        `trade_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '本地交易号',
-                                        `out_trade_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '通道交易号',
-                                        `channel` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '支付通道',
-                                        `callback_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '回调类型',
-                                        `notify_info` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '通知消息',
-                                        `status` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '回调处理状态',
-                                        `repair_order_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
-                                        `error_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '错误码',
-                                        `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-                                        `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
-                                        `error_msg` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '提示信息',
-                                        PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '网关回调通知' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of pay_callback_record
--- ----------------------------
-
--- ----------------------------
--- Table structure for pay_channel_config
--- ----------------------------
-DROP TABLE IF EXISTS `pay_channel_config`;
-CREATE TABLE `pay_channel_config`  (
-                                       `id` bigint(20) NOT NULL COMMENT '主键',
-                                       `code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '代码',
-                                       `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '名称',
-                                       `icon_id` bigint(20) NULL DEFAULT NULL COMMENT 'ICON图片',
-                                       `bg_color` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '卡牌背景色',
-                                       `enable` bit(1) NULL DEFAULT NULL COMMENT '是否启用',
-                                       `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
-                                       `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-                                       `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
-                                       `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修者ID',
-                                       `last_modified_time` datetime NULL DEFAULT NULL COMMENT '最后修改时间',
-                                       `version` int(11) NOT NULL COMMENT '乐观锁',
-                                       `deleted` bit(1) NOT NULL COMMENT '删除标志',
-                                       PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '支付通道配置' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of pay_channel_config
--- ----------------------------
-INSERT INTO `pay_channel_config` VALUES (1, 'ali_pay', '支付宝', NULL, NULL, b'0', '', 0, '2024-01-08 16:47:07', 1757299137932677120, '2024-05-13 19:46:19', 12, b'0');
-INSERT INTO `pay_channel_config` VALUES (2, 'wechat_pay', '微信支付', NULL, NULL, b'0', '', 0, '2024-01-08 16:47:07', 1399985191002447872, '2024-02-13 15:38:24', 7, b'0');
-INSERT INTO `pay_channel_config` VALUES (3, 'union_pay', '云闪付', NULL, NULL, b'0', NULL, 0, '2024-01-08 16:47:07', 1399985191002447872, '2024-03-10 15:04:36', 2, b'0');
-INSERT INTO `pay_channel_config` VALUES (5, 'wallet_pay', '钱包支付', NULL, NULL, b'0', NULL, 0, '2024-01-08 16:47:07', 0, '2024-01-08 16:47:11', 0, b'0');
-
--- ----------------------------
--- Table structure for pay_client_notice_record
--- ----------------------------
-DROP TABLE IF EXISTS `pay_client_notice_record`;
-CREATE TABLE `pay_client_notice_record`  (
-                                             `id` bigint(20) NOT NULL COMMENT '主键',
-                                             `task_id` bigint(20) NULL DEFAULT NULL COMMENT '任务ID',
-                                             `req_count` int(11) NULL DEFAULT NULL COMMENT '请求次数',
-                                             `success` bit(1) NULL DEFAULT NULL COMMENT '发送是否成功',
-                                             `send_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '发送类型',
-                                             `error_msg` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '错误信息',
-                                             `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-                                             `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
-                                             `error_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '错误编码',
-                                             PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '消息通知任务记录' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of pay_client_notice_record
--- ----------------------------
-
--- ----------------------------
--- Table structure for pay_client_notice_task
--- ----------------------------
-DROP TABLE IF EXISTS `pay_client_notice_task`;
-CREATE TABLE `pay_client_notice_task`  (
-                                           `id` bigint(20) NOT NULL COMMENT '主键',
-                                           `content` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '消息内容',
-                                           `success` bit(1) NULL DEFAULT NULL COMMENT '是否发送成功',
-                                           `send_count` int(11) NULL DEFAULT NULL COMMENT '发送次数',
-                                           `url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '发送地址',
-                                           `latest_time` datetime NULL DEFAULT NULL COMMENT '最后发送时间',
-                                           `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-                                           `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
-                                           `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修者ID',
-                                           `last_modified_time` datetime NULL DEFAULT NULL COMMENT '最后修改时间',
-                                           `version` int(11) NOT NULL COMMENT '乐观锁',
-                                           `deleted` bit(1) NOT NULL COMMENT '删除标志',
-                                           `notice_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '消息类型',
-                                           `trade_id` bigint(20) NULL DEFAULT NULL COMMENT '本地交易ID',
-                                           `trade_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '本地交易号',
-                                           `trade_status` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '交易状态',
-                                           PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '消息通知任务' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of pay_client_notice_task
--- ----------------------------
-
--- ----------------------------
--- Table structure for pay_close_record
--- ----------------------------
-DROP TABLE IF EXISTS `pay_close_record`;
-CREATE TABLE `pay_close_record`  (
-                                     `id` bigint(20) NOT NULL COMMENT '主键',
-                                     `order_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '订单号',
-                                     `biz_order_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商户订单号',
-                                     `channel` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '关闭的支付通道',
-                                     `closed` bit(1) NULL DEFAULT NULL COMMENT '是否关闭成功',
-                                     `error_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '错误码',
-                                     `error_msg` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '错误消息',
-                                     `client_ip` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '客户端IP',
-                                     `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-                                     `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
-                                     PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '支付关闭记录' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of pay_close_record
--- ----------------------------
-
--- ----------------------------
--- Table structure for pay_method_info
--- ----------------------------
-DROP TABLE IF EXISTS `pay_method_info`;
-CREATE TABLE `pay_method_info`  (
-                                    `id` bigint(20) NOT NULL COMMENT '主键',
-                                    `code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '代码',
-                                    `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '名称',
-                                    `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
-                                    `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-                                    `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
-                                    `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修者ID',
-                                    `last_modified_time` datetime NULL DEFAULT NULL COMMENT '最后修改时间',
-                                    `version` int(11) NOT NULL COMMENT '乐观锁',
-                                    `deleted` bit(1) NOT NULL COMMENT '删除标志',
-                                    PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '支付方式' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of pay_method_info
--- ----------------------------
-INSERT INTO `pay_method_info` VALUES (1, 'normal', '常规支付', '同步支付使用这个', 0, '2024-01-09 10:01:21', 1399985191002447872, '2024-02-13 15:39:16', 1, b'0');
-INSERT INTO `pay_method_info` VALUES (2, 'wap', 'wap支付', NULL, 0, '2024-01-09 10:01:21', 0, '2024-01-09 10:01:25', 0, b'0');
-INSERT INTO `pay_method_info` VALUES (3, 'app', '应用支付', NULL, 0, '2024-01-09 10:01:21', 0, '2024-01-09 10:01:25', 0, b'0');
-INSERT INTO `pay_method_info` VALUES (4, 'web', 'web支付', NULL, 0, '2024-01-09 10:01:21', 0, '2024-01-09 10:01:25', 0, b'0');
-INSERT INTO `pay_method_info` VALUES (6, 'barcode', '付款码', NULL, 0, '2024-01-09 10:01:21', 0, '2024-01-09 10:01:25', 0, b'0');
-INSERT INTO `pay_method_info` VALUES (7, 'jsapi', '公众号/小程序支付', '主要是微信使用', 0, '2024-01-09 10:01:21', 1399985191002447872, '2024-02-13 15:38:57', 1, b'0');
-
--- ----------------------------
--- Table structure for pay_order
--- ----------------------------
-DROP TABLE IF EXISTS `pay_order`;
-CREATE TABLE `pay_order`  (
-                              `id` bigint(20) NOT NULL COMMENT '主键',
-                              `biz_order_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商户订单号',
-                              `order_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '支付订单号',
-                              `out_order_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '通道支付订单号',
-                              `title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '标题',
-                              `description` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '描述',
-                              `allocation` bit(1) NULL DEFAULT NULL COMMENT '是否需要分账',
-                              `channel` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '异步支付通道',
-                              `method` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '支付方式',
-                              `amount` int(11) NULL DEFAULT NULL COMMENT '金额',
-                              `refundable_balance` int(11) NULL DEFAULT NULL COMMENT '可退款余额',
-                              `status` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '支付状态',
-                              `allocation_status` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '分账状态',
-                              `pay_time` datetime NULL DEFAULT NULL COMMENT '支付时间',
-                              `close_time` datetime NULL DEFAULT NULL COMMENT '关闭时间',
-                              `expired_time` datetime NULL DEFAULT NULL COMMENT '过期时间',
-                              `error_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '错误码',
-                              `error_msg` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '错误信息',
-                              `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-                              `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
-                              `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修者ID',
-                              `last_modified_time` datetime NULL DEFAULT NULL COMMENT '最后修改时间',
-                              `version` int(11) NOT NULL COMMENT '乐观锁',
-                              `deleted` bit(1) NOT NULL COMMENT '删除标志',
-                              `auto_allocation` bit(1) NULL DEFAULT NULL COMMENT '自动分账',
-                              PRIMARY KEY (`id`) USING BTREE,
-                              UNIQUE INDEX `biz_order_no`(`biz_order_no`) USING BTREE COMMENT '商户订单号索引'
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '支付订单' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of pay_order
--- ----------------------------
-
--- ----------------------------
--- Table structure for pay_order_extra
--- ----------------------------
-DROP TABLE IF EXISTS `pay_order_extra`;
-CREATE TABLE `pay_order_extra`  (
-                                    `id` bigint(20) NOT NULL COMMENT '主键',
-                                    `return_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '同步跳转地址',
-                                    `notify_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '异步通知地址',
-                                    `extra_param` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '附加参数',
-                                    `attach` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商户扩展参数',
-                                    `req_time` datetime NULL DEFAULT NULL COMMENT '请求时间,传输时间戳,以最后一次为准',
-                                    `client_ip` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '支付终端ip',
-                                    `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-                                    `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
-                                    `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修者ID',
-                                    `last_modified_time` datetime NULL DEFAULT NULL COMMENT '最后修改时间',
-                                    `version` int(11) NOT NULL COMMENT '乐观锁',
-                                    `deleted` bit(1) NOT NULL COMMENT '删除标志',
-                                    PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '支付订单扩展信息' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of pay_order_extra
--- ----------------------------
-
--- ----------------------------
--- Table structure for pay_platform_config
--- ----------------------------
-DROP TABLE IF EXISTS `pay_platform_config`;
-CREATE TABLE `pay_platform_config`  (
-                                        `id` bigint(20) NOT NULL COMMENT '主键',
-                                        `website_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '网站地址',
-                                        `sign_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '签名方式',
-                                        `sign_secret` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '签名秘钥',
-                                        `notify_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '支付通知地址',
-                                        `return_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '同步支付跳转地址',
-                                        `order_timeout` int(11) NULL DEFAULT NULL COMMENT '订单默认超时时间(分钟)',
-                                        `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-                                        `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
-                                        `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修者ID',
-                                        `last_modified_time` datetime NULL DEFAULT NULL COMMENT '最后修改时间',
-                                        `version` int(11) NOT NULL COMMENT '乐观锁',
-                                        `deleted` bit(1) NOT NULL COMMENT '删除标志',
-                                        `limit_amount` int(11) NULL DEFAULT NULL COMMENT '支付限额',
-                                        PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '支付平台配置' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of pay_platform_config
--- ----------------------------
-INSERT INTO `pay_platform_config` VALUES (0, 'http://localhost/', 'HMAC_SHA256', '123456', 'http://localhost/h5/#/result/success', 'http://localhost/h5/#/result/success', 30, 0, '2024-01-02 20:23:19', 1399985191002447872, '2024-03-24 11:34:20', 13, b'0', 20000);
-
--- ----------------------------
--- Table structure for pay_reconcile_detail
--- ----------------------------
-DROP TABLE IF EXISTS `pay_reconcile_detail`;
-CREATE TABLE `pay_reconcile_detail`  (
-                                         `id` bigint(20) NOT NULL COMMENT '主键',
-                                         `title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商品名称',
-                                         `amount` int(11) NULL DEFAULT NULL COMMENT '交易金额',
-                                         `type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '交易类型',
-                                         `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-                                         `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
-                                         `reconcile_id` bigint(20) NULL DEFAULT NULL COMMENT '关联对账订单ID',
-                                         `trade_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '本地交易号',
-                                         `out_trade_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '外部交易号',
-                                         `trade_time` datetime NULL DEFAULT NULL COMMENT '交易时间',
-                                         PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '支付对账记录' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of pay_reconcile_detail
--- ----------------------------
-
--- ----------------------------
--- Table structure for pay_reconcile_diff_record
--- ----------------------------
-DROP TABLE IF EXISTS `pay_reconcile_diff_record`;
-CREATE TABLE `pay_reconcile_diff_record`  (
-                                              `id` bigint(20) NOT NULL COMMENT '主键',
-                                              `detail_id` bigint(20) NULL DEFAULT NULL COMMENT '对账单明细ID',
-                                              `title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '订单标题',
-                                              `diff_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '差异类型',
-                                              `diffs` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '差异内容',
-                                              `amount` int(11) NULL DEFAULT NULL COMMENT '本地交易金额',
-                                              `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-                                              `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
-                                              `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修者ID',
-                                              `last_modified_time` datetime NULL DEFAULT NULL COMMENT '最后修改时间',
-                                              `version` int(11) NOT NULL COMMENT '乐观锁',
-                                              `deleted` bit(1) NOT NULL COMMENT '删除标志',
-                                              `reconcile_id` bigint(20) NULL DEFAULT NULL COMMENT '对账单ID',
-                                              `trade_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '本地交易号',
-                                              `trade_time` datetime NULL DEFAULT NULL COMMENT '交易时间',
-                                              `out_amount` int(11) NULL DEFAULT NULL COMMENT '通道交易金额',
-                                              `reconcile_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '对账号',
-                                              `reconcile_date` date NULL DEFAULT NULL COMMENT '对账日期',
-                                              `trade_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '交易类型',
-                                              `channel` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '通道',
-                                              `out_trade_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '通道交易号',
-                                              PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '对账差异单' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of pay_reconcile_diff_record
--- ----------------------------
-
--- ----------------------------
--- Table structure for pay_reconcile_file
--- ----------------------------
-DROP TABLE IF EXISTS `pay_reconcile_file`;
-CREATE TABLE `pay_reconcile_file`  (
-                                       `id` bigint(20) NOT NULL COMMENT '主键',
-                                       `reconcile_id` bigint(20) NULL DEFAULT NULL COMMENT '对账单ID',
-                                       `type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '类型',
-                                       `file_id` bigint(20) NULL DEFAULT NULL COMMENT '对账单文件',
-                                       PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '原始对账单文件,' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of pay_reconcile_file
--- ----------------------------
-
--- ----------------------------
--- Table structure for pay_reconcile_order
--- ----------------------------
-DROP TABLE IF EXISTS `pay_reconcile_order`;
-CREATE TABLE `pay_reconcile_order`  (
-                                        `id` bigint(20) NOT NULL COMMENT '主键',
-                                        `date` date NULL DEFAULT NULL COMMENT '日期',
-                                        `channel` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '通道',
-                                        `compare` bit(1) NULL DEFAULT NULL COMMENT '明细对账单比对',
-                                        `error_msg` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '错误信息',
-                                        `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-                                        `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
-                                        `reconcile_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '对账号',
-                                        `result` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '对账结果',
-                                        `error_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '错误码',
-                                        `down_or_upload` bit(1) NULL DEFAULT NULL COMMENT '明细对账单下载',
-                                        PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '支付对账单订单' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of pay_reconcile_order
--- ----------------------------
-
--- ----------------------------
--- Table structure for pay_reconcile_trade_detail
--- ----------------------------
-DROP TABLE IF EXISTS `pay_reconcile_trade_detail`;
-CREATE TABLE `pay_reconcile_trade_detail`  (
-                                               `id` bigint(20) NOT NULL COMMENT '主键',
-                                               `reconcile_id` bigint(20) NULL DEFAULT NULL COMMENT '关联对账订单ID',
-                                               `title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商品名称',
-                                               `amount` int(11) NULL DEFAULT NULL COMMENT '交易金额',
-                                               `type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '交易类型',
-                                               `trade_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '本地交易号',
-                                               `out_trade_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '通道交易号',
-                                               `trade_time` datetime NULL DEFAULT NULL COMMENT '交易时间',
-                                               `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-                                               `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
-                                               PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '对账-第三方交易明细' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of pay_reconcile_trade_detail
--- ----------------------------
-
--- ----------------------------
--- Table structure for pay_refund_order
--- ----------------------------
-DROP TABLE IF EXISTS `pay_refund_order`;
-CREATE TABLE `pay_refund_order`  (
-                                     `id` bigint(20) NOT NULL COMMENT '主键',
-                                     `order_id` bigint(20) NULL DEFAULT NULL COMMENT '支付订单ID',
-                                     `order_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '支付订单号',
-                                     `biz_order_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商户支付订单号',
-                                     `title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '支付标题',
-                                     `refund_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '退款号',
-                                     `biz_refund_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商户退款号',
-                                     `out_refund_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '三方支付系统退款交易号',
-                                     `channel` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '支付通道',
-                                     `order_amount` int(11) NULL DEFAULT NULL COMMENT '订单金额',
-                                     `amount` int(11) NULL DEFAULT NULL COMMENT '退款金额',
-                                     `reason` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '退款原因',
-                                     `finish_time` datetime NULL DEFAULT NULL COMMENT '退款完成时间',
-                                     `status` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '退款状态',
-                                     `error_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '错误码',
-                                     `error_msg` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '错误信息',
-                                     `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-                                     `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
-                                     `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修者ID',
-                                     `last_modified_time` datetime NULL DEFAULT NULL COMMENT '最后修改时间',
-                                     `version` int(11) NOT NULL COMMENT '乐观锁',
-                                     `deleted` bit(1) NOT NULL COMMENT '删除标志',
-                                     `out_order_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商户支付订单号',
-                                     PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '退款订单' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of pay_refund_order
--- ----------------------------
-
--- ----------------------------
--- Table structure for pay_refund_order_extra
--- ----------------------------
-DROP TABLE IF EXISTS `pay_refund_order_extra`;
-CREATE TABLE `pay_refund_order_extra`  (
-                                           `id` bigint(20) NOT NULL COMMENT '主键',
-                                           `notify_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '异步通知地址',
-                                           `attach` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商户扩展参数',
-                                           `extra_param` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '附加参数',
-                                           `req_time` datetime NULL DEFAULT NULL COMMENT '请求时间,传输时间戳',
-                                           `client_ip` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '支付终端ip',
-                                           `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-                                           `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
-                                           `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修者ID',
-                                           `last_modified_time` datetime NULL DEFAULT NULL COMMENT '最后修改时间',
-                                           `version` int(11) NOT NULL COMMENT '乐观锁',
-                                           `deleted` bit(1) NOT NULL COMMENT '删除标志',
-                                           PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '退款订单扩展信息' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of pay_refund_order_extra
--- ----------------------------
-
--- ----------------------------
--- Table structure for pay_repair_record
--- ----------------------------
-DROP TABLE IF EXISTS `pay_repair_record`;
-CREATE TABLE `pay_repair_record`  (
-                                      `id` bigint(20) NOT NULL COMMENT '主键',
-                                      `repair_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '修复号',
-                                      `trade_id` bigint(20) NULL DEFAULT NULL COMMENT '本地订单ID',
-                                      `trade_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '本地业务号',
-                                      `repair_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '修复类型',
-                                      `repair_source` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '修复来源',
-                                      `repair_way` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '修复方式',
-                                      `channel` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '修复的通道',
-                                      `before_status` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '修复前状态',
-                                      `after_status` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '修复后状态',
-                                      `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-                                      `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
-                                      PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '支付修复记录' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of pay_repair_record
--- ----------------------------
-
--- ----------------------------
--- Table structure for pay_sync_record
--- ----------------------------
-DROP TABLE IF EXISTS `pay_sync_record`;
-CREATE TABLE `pay_sync_record`  (
-                                    `id` bigint(20) NOT NULL COMMENT '主键',
-                                    `trade_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '本地交易号',
-                                    `biz_trade_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商户交易号',
-                                    `out_trade_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '通道交易号',
-                                    `out_trade_status` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '网关返回状态',
-                                    `sync_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '同步类型',
-                                    `channel` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '同步的异步通道',
-                                    `sync_info` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '同步消息',
-                                    `repair` bit(1) NULL DEFAULT NULL COMMENT '是否进行修复',
-                                    `repair_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '修复单号',
-                                    `error_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '错误码',
-                                    `error_msg` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '错误消息',
-                                    `client_ip` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '客户端IP',
-                                    `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-                                    `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
-                                    PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '支付同步订单' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of pay_sync_record
--- ----------------------------
-
--- ----------------------------
--- Table structure for pay_transfer_order
--- ----------------------------
-DROP TABLE IF EXISTS `pay_transfer_order`;
-CREATE TABLE `pay_transfer_order`  (
-                                       `id` bigint(20) NOT NULL COMMENT '主键',
-                                       `out_trade_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
-                                       `channel` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
-                                       `amount` int(11) NULL DEFAULT NULL,
-                                       `status` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
-                                       `payer` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
-                                       `payee` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
-                                       `success_time` datetime NULL DEFAULT NULL,
-                                       `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-                                       `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
-                                       `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修者ID',
-                                       `last_modified_time` datetime NULL DEFAULT NULL COMMENT '最后修改时间',
-                                       `version` int(11) NOT NULL COMMENT '乐观锁',
-                                       `deleted` bit(1) NOT NULL COMMENT '删除标志',
-                                       PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '转账订单' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of pay_transfer_order
--- ----------------------------
-
--- ----------------------------
--- Table structure for pay_union_pay_config
--- ----------------------------
-DROP TABLE IF EXISTS `pay_union_pay_config`;
-CREATE TABLE `pay_union_pay_config`  (
-                                         `id` bigint(20) NOT NULL COMMENT '主键',
-                                         `mach_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商户号',
-                                         `enable` bit(1) NULL DEFAULT NULL COMMENT '是否启用',
-                                         `server_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '支付网关地址',
-                                         `notify_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '异步通知路径',
-                                         `pay_ways` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '可用支付方式',
-                                         `single_limit` int(11) NULL DEFAULT NULL COMMENT '支付限额',
-                                         `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
-                                         `seller` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商户收款账号',
-                                         `sign_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '签名类型',
-                                         `cert_sign` bit(1) NULL DEFAULT NULL COMMENT '是否为证书签名',
-                                         `key_private_cert` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '应用私钥证书',
-                                         `key_private_cert_pwd` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '私钥证书对应的密码',
-                                         `acp_middle_cert` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '中级证书',
-                                         `acp_root_cert` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '根证书',
-                                         `sandbox` bit(1) NULL DEFAULT NULL COMMENT '是否沙箱环境',
-                                         `return_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '同步通知页面路径',
-                                         `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-                                         `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
-                                         `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修者ID',
-                                         `last_modified_time` datetime NULL DEFAULT NULL COMMENT '最后修改时间',
-                                         `version` int(11) NOT NULL COMMENT '乐观锁',
-                                         `deleted` bit(1) NOT NULL COMMENT '删除标志',
-                                         PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '云闪付支付配置' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of pay_union_pay_config
--- ----------------------------
-INSERT INTO `pay_union_pay_config` VALUES (0, NULL, NULL, NULL, NULL, 'wap,web,qrcode,app,barcode', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, '2024-03-06 22:56:22', 1399985191002447872, '2024-03-23 23:15:20', 12, b'0');
-
--- ----------------------------
--- Table structure for pay_union_reconcile_bill_detail
--- ----------------------------
-DROP TABLE IF EXISTS `pay_union_reconcile_bill_detail`;
-CREATE TABLE `pay_union_reconcile_bill_detail`  (
-                                                    `trade_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '交易代码',
-                                                    `txn_time` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '交易传输时间',
-                                                    `txn_amt` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '交易金额',
-                                                    `query_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '查询流水号',
-                                                    `order_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商户订单号',
-                                                    `reconcile_id` bigint(20) NULL DEFAULT NULL COMMENT '关联对账订单ID'
-) ENGINE = InnoDB AUTO_INCREMENT = 128 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '云闪付业务明细对账单' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of pay_union_reconcile_bill_detail
--- ----------------------------
-
--- ----------------------------
--- Table structure for pay_wallet
--- ----------------------------
-DROP TABLE IF EXISTS `pay_wallet`;
-CREATE TABLE `pay_wallet`  (
-                               `id` bigint(20) NOT NULL COMMENT '主键',
-                               `user_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '关联用户id',
-                               `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '钱包名称',
-                               `balance` int(11) NULL DEFAULT NULL COMMENT '余额',
-                               `status` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '状态',
-                               `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-                               `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
-                               `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修者ID',
-                               `last_modified_time` datetime NULL DEFAULT NULL COMMENT '最后修改时间',
-                               `version` int(11) NOT NULL COMMENT '乐观锁',
-                               `deleted` bit(1) NOT NULL COMMENT '删除标志',
-                               PRIMARY KEY (`id`) USING BTREE,
-                               INDEX `用户ID索引`(`user_id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '钱包' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of pay_wallet
--- ----------------------------
-
--- ----------------------------
--- Table structure for pay_wallet_config
--- ----------------------------
-DROP TABLE IF EXISTS `pay_wallet_config`;
-CREATE TABLE `pay_wallet_config`  (
-                                      `id` bigint(20) NOT NULL COMMENT '主键',
-                                      `enable` bit(1) NULL DEFAULT NULL COMMENT '是否启用',
-                                      `single_limit` int(11) NULL DEFAULT NULL COMMENT '单次支付最多多少金额 ',
-                                      `pay_ways` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '可用支付方式',
-                                      `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
-                                      `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-                                      `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
-                                      `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修者ID',
-                                      `last_modified_time` datetime NULL DEFAULT NULL COMMENT '最后修改时间',
-                                      `version` int(11) NOT NULL COMMENT '乐观锁',
-                                      `deleted` bit(1) NOT NULL COMMENT '删除标志',
-                                      PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '钱包配置' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of pay_wallet_config
--- ----------------------------
-INSERT INTO `pay_wallet_config` VALUES (0, b'0', 2000, 'normal', NULL, 0, '2024-02-17 14:36:28', 1399985191002447872, '2024-02-17 14:40:45', 4, b'0');
-
--- ----------------------------
--- Table structure for pay_wallet_record
--- ----------------------------
-DROP TABLE IF EXISTS `pay_wallet_record`;
-CREATE TABLE `pay_wallet_record`  (
-                                      `id` bigint(20) NOT NULL COMMENT '主键',
-                                      `wallet_id` bigint(20) NULL DEFAULT NULL COMMENT '钱包id',
-                                      `title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '标题',
-                                      `type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '业务类型',
-                                      `amount` int(11) NULL DEFAULT NULL COMMENT '金额',
-                                      `old_amount` int(11) NULL DEFAULT NULL COMMENT '变动之前的金额',
-                                      `new_amount` int(11) NULL DEFAULT NULL COMMENT '变动之后的金额',
-                                      `order_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '交易订单号',
-                                      `ip` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '终端ip',
-                                      `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
-                                      `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-                                      `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
-                                      PRIMARY KEY (`id`) USING BTREE,
-                                      INDEX `wallet_id`(`wallet_id`) USING BTREE COMMENT '钱包ID'
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '钱包记录' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of pay_wallet_record
--- ----------------------------
-
--- ----------------------------
--- Table structure for pay_wechat_notice_config
--- ----------------------------
-DROP TABLE IF EXISTS `pay_wechat_notice_config`;
-CREATE TABLE `pay_wechat_notice_config`  (
-                                             `id` bigint(20) NOT NULL COMMENT '主键',
-                                             `app_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '应用id',
-                                             `app_secret` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '应用秘钥',
-                                             `qr_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '公众号二维码',
-                                             `oauth2_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'OAuth2地址',
-                                             `verify_file_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '微信校验文件名称',
-                                             `verify_file_content` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '微信校验文件内容',
-                                             `template_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '模板消息Id',
-                                             `template_content` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '模板消息内容',
-                                             `template_remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '模板消息备注',
-                                             `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-                                             `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
-                                             `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修者ID',
-                                             `last_modified_time` datetime NULL DEFAULT NULL COMMENT '最后修改时间',
-                                             `version` int(11) NOT NULL COMMENT '乐观锁',
-                                             `deleted` bit(1) NOT NULL COMMENT '删除标志',
-                                             PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '微信消息通知相关配置' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of pay_wechat_notice_config
--- ----------------------------
-
--- ----------------------------
--- Table structure for pay_wechat_pay_config
--- ----------------------------
-DROP TABLE IF EXISTS `pay_wechat_pay_config`;
-CREATE TABLE `pay_wechat_pay_config`  (
-                                          `id` bigint(20) NOT NULL COMMENT '主键',
-                                          `wx_mch_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '微信商户号',
-                                          `wx_app_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '微信应用appId',
-                                          `enable` bit(1) NULL DEFAULT NULL COMMENT '是否启用',
-                                          `notify_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '异步通知路径',
-                                          `return_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '同步通知路径',
-                                          `allocation` bit(1) NULL DEFAULT NULL COMMENT '是否支付分账',
-                                          `single_limit` int(11) NULL DEFAULT NULL COMMENT '支付限额',
-                                          `api_version` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '接口版本',
-                                          `api_key_v2` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'APIv2 密钥',
-                                          `api_key_v3` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'APIv3 密钥',
-                                          `app_secret` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'APPID对应的接口密码',
-                                          `p12` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT 'API证书中p12证书Base64',
-                                          `sandbox` bit(1) NULL DEFAULT NULL COMMENT '是否沙箱环境',
-                                          `pay_ways` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '可用支付方式',
-                                          `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
-                                          `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-                                          `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
-                                          `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修者ID',
-                                          `last_modified_time` datetime NULL DEFAULT NULL COMMENT '最后修改时间',
-                                          `version` int(11) NOT NULL COMMENT '乐观锁',
-                                          `deleted` bit(1) NOT NULL COMMENT '删除标志',
-                                          PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '微信支付配置' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of pay_wechat_pay_config
--- ----------------------------
-INSERT INTO `pay_wechat_pay_config` VALUES (0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'wap,app,jsapi,qrcode,barcode', NULL, 0, '2024-01-03 23:13:11', 1399985191002447872, '2024-04-02 17:07:37', 23, b'0');
-
--- ----------------------------
--- Table structure for pay_wechat_pay_record
--- ----------------------------
-DROP TABLE IF EXISTS `pay_wechat_pay_record`;
-CREATE TABLE `pay_wechat_pay_record`  (
-                                          `id` bigint(20) NOT NULL COMMENT '主键',
-                                          `title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '标题',
-                                          `amount` int(11) NULL DEFAULT NULL COMMENT '金额',
-                                          `type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '业务类型',
-                                          `order_id` bigint(20) NULL DEFAULT NULL COMMENT '本地订单号',
-                                          `gateway_order_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '网关订单号',
-                                          `gateway_time` datetime NULL DEFAULT NULL COMMENT '网关完成时间',
-                                          `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-                                          `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
-                                          PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '微信支付记录' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of pay_wechat_pay_record
--- ----------------------------
-
--- ----------------------------
--- Table structure for pay_wechat_reconcile_bill_detail
--- ----------------------------
-DROP TABLE IF EXISTS `pay_wechat_reconcile_bill_detail`;
-CREATE TABLE `pay_wechat_reconcile_bill_detail`  (
-                                                     `id` bigint(20) NOT NULL COMMENT '主键',
-                                                     `record_order_id` bigint(20) NULL DEFAULT NULL COMMENT '关联对账订单ID',
-                                                     `transaction_time` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '交易时间',
-                                                     `app_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '公众账号ID',
-                                                     `merchant_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商户号',
-                                                     `sub_merchant_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '特约商户号',
-                                                     `wei_xin_order_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '微信订单号',
-                                                     `mch_order_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商户订单号',
-                                                     `user_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '用户标识',
-                                                     `device_info` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '设备号',
-                                                     `type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '交易类型',
-                                                     `status` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '交易状态',
-                                                     `bank` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '付款银行',
-                                                     `currency` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '货币种类',
-                                                     `amount` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '应结订单金额',
-                                                     `envelope_amount` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '代金券金额',
-                                                     `wx_refund_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '微信退款单号',
-                                                     `mch_refund_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商户退款单号',
-                                                     `refund_amount` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '退款金额',
-                                                     `coupon_refund_amount` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '充值券退款金额',
-                                                     `refund_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '退款类型',
-                                                     `refund_status` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '退款状态',
-                                                     `subject` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商品名称',
-                                                     `mch_data_packet` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商户数据包',
-                                                     `premium` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '手续费',
-                                                     `rates` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '费率',
-                                                     `order_amount` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '订单金额',
-                                                     `apply_refund_amount` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '申请退款金额',
-                                                     `rates_remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '费率备注',
-                                                     PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '微信对账单明细' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of pay_wechat_reconcile_bill_detail
--- ----------------------------
-
--- ----------------------------
--- Table structure for pay_wechat_reconcile_bill_total
--- ----------------------------
-DROP TABLE IF EXISTS `pay_wechat_reconcile_bill_total`;
-CREATE TABLE `pay_wechat_reconcile_bill_total`  (
-                                                    `id` bigint(20) NOT NULL COMMENT '主键',
-                                                    `record_order_id` bigint(20) NULL DEFAULT NULL COMMENT '关联对账订单ID',
-                                                    `total_num` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '总交易单数',
-                                                    `total_amount` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '应结订单总金额',
-                                                    `total_refund_amount` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '退款总金额',
-                                                    `total_refund_coupon_amount` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '充值券退款总金额',
-                                                    `total_fee` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '手续费总金额',
-                                                    `total_order_amount` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '订单总金额',
-                                                    `apply_total_refund_amount` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '申请退款总金额',
-                                                    PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '微信对账单汇总' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of pay_wechat_reconcile_bill_total
--- ----------------------------
-
--- ----------------------------
--- Table structure for qrtz_blob_triggers
--- ----------------------------
-DROP TABLE IF EXISTS `qrtz_blob_triggers`;
-CREATE TABLE `qrtz_blob_triggers`  (
-                                       `SCHED_NAME` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
-                                       `TRIGGER_NAME` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
-                                       `TRIGGER_GROUP` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
-                                       `BLOB_DATA` blob NULL,
-                                       PRIMARY KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) USING BTREE,
-                                       INDEX `SCHED_NAME`(`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) USING BTREE,
-                                       CONSTRAINT `qrtz_blob_triggers_ibfk_1` FOREIGN KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) REFERENCES `qrtz_triggers` (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) ON DELETE NO ACTION ON UPDATE NO ACTION
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of qrtz_blob_triggers
--- ----------------------------
-
--- ----------------------------
--- Table structure for qrtz_calendars
--- ----------------------------
-DROP TABLE IF EXISTS `qrtz_calendars`;
-CREATE TABLE `qrtz_calendars`  (
-                                   `SCHED_NAME` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
-                                   `CALENDAR_NAME` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
-                                   `CALENDAR` blob NOT NULL,
-                                   PRIMARY KEY (`SCHED_NAME`, `CALENDAR_NAME`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of qrtz_calendars
--- ----------------------------
-
--- ----------------------------
--- Table structure for qrtz_cron_triggers
--- ----------------------------
-DROP TABLE IF EXISTS `qrtz_cron_triggers`;
-CREATE TABLE `qrtz_cron_triggers`  (
-                                       `SCHED_NAME` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
-                                       `TRIGGER_NAME` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
-                                       `TRIGGER_GROUP` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
-                                       `CRON_EXPRESSION` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
-                                       `TIME_ZONE_ID` varchar(80) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
-                                       PRIMARY KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) USING BTREE,
-                                       CONSTRAINT `qrtz_cron_triggers_ibfk_1` FOREIGN KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) REFERENCES `qrtz_triggers` (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) ON DELETE NO ACTION ON UPDATE NO ACTION
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of qrtz_cron_triggers
--- ----------------------------
-
--- ----------------------------
--- Table structure for qrtz_fired_triggers
--- ----------------------------
-DROP TABLE IF EXISTS `qrtz_fired_triggers`;
-CREATE TABLE `qrtz_fired_triggers`  (
-                                        `SCHED_NAME` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
-                                        `ENTRY_ID` varchar(95) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
-                                        `TRIGGER_NAME` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
-                                        `TRIGGER_GROUP` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
-                                        `INSTANCE_NAME` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
-                                        `FIRED_TIME` bigint(13) NOT NULL,
-                                        `SCHED_TIME` bigint(13) NOT NULL,
-                                        `PRIORITY` int(11) NOT NULL,
-                                        `STATE` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
-                                        `JOB_NAME` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
-                                        `JOB_GROUP` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
-                                        `IS_NONCONCURRENT` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
-                                        `REQUESTS_RECOVERY` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
-                                        PRIMARY KEY (`SCHED_NAME`, `ENTRY_ID`) USING BTREE,
-                                        INDEX `IDX_QRTZ_FT_T_G`(`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) USING BTREE,
-                                        INDEX `IDX_QRTZ_FT_TRIG_INST_NAME`(`SCHED_NAME`, `INSTANCE_NAME`) USING BTREE,
-                                        INDEX `IDX_QRTZ_FT_J_G`(`SCHED_NAME`, `JOB_NAME`, `JOB_GROUP`) USING BTREE,
-                                        INDEX `IDX_QRTZ_FT_INST_JOB_REQ_RCVRY`(`SCHED_NAME`, `INSTANCE_NAME`, `REQUESTS_RECOVERY`) USING BTREE,
-                                        INDEX `IDX_QRTZ_FT_TG`(`SCHED_NAME`, `TRIGGER_GROUP`) USING BTREE,
-                                        INDEX `IDX_QRTZ_FT_JG`(`SCHED_NAME`, `JOB_GROUP`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of qrtz_fired_triggers
--- ----------------------------
-
--- ----------------------------
--- Table structure for qrtz_job_details
--- ----------------------------
-DROP TABLE IF EXISTS `qrtz_job_details`;
-CREATE TABLE `qrtz_job_details`  (
-                                     `SCHED_NAME` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
-                                     `JOB_NAME` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
-                                     `JOB_GROUP` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
-                                     `DESCRIPTION` varchar(250) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
-                                     `JOB_CLASS_NAME` varchar(250) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
-                                     `IS_DURABLE` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
-                                     `IS_NONCONCURRENT` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
-                                     `IS_UPDATE_DATA` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
-                                     `REQUESTS_RECOVERY` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
-                                     `JOB_DATA` blob NULL,
-                                     PRIMARY KEY (`SCHED_NAME`, `JOB_NAME`, `JOB_GROUP`) USING BTREE,
-                                     INDEX `IDX_QRTZ_J_GRP`(`SCHED_NAME`, `JOB_GROUP`) USING BTREE,
-                                     INDEX `IDX_QRTZ_J_REQ_RECOVERY`(`SCHED_NAME`, `REQUESTS_RECOVERY`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of qrtz_job_details
--- ----------------------------
-
--- ----------------------------
--- Table structure for qrtz_locks
--- ----------------------------
-DROP TABLE IF EXISTS `qrtz_locks`;
-CREATE TABLE `qrtz_locks`  (
-                               `SCHED_NAME` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
-                               `LOCK_NAME` varchar(40) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
-                               PRIMARY KEY (`SCHED_NAME`, `LOCK_NAME`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of qrtz_locks
--- ----------------------------
-INSERT INTO `qrtz_locks` VALUES ('quartzScheduler', 'TRIGGER_ACCESS');
-
--- ----------------------------
--- Table structure for qrtz_paused_trigger_grps
--- ----------------------------
-DROP TABLE IF EXISTS `qrtz_paused_trigger_grps`;
-CREATE TABLE `qrtz_paused_trigger_grps`  (
-                                             `SCHED_NAME` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
-                                             `TRIGGER_GROUP` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
-                                             PRIMARY KEY (`SCHED_NAME`, `TRIGGER_GROUP`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of qrtz_paused_trigger_grps
--- ----------------------------
-
--- ----------------------------
--- Table structure for qrtz_scheduler_state
--- ----------------------------
-DROP TABLE IF EXISTS `qrtz_scheduler_state`;
-CREATE TABLE `qrtz_scheduler_state`  (
-                                         `SCHED_NAME` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
-                                         `INSTANCE_NAME` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
-                                         `LAST_CHECKIN_TIME` bigint(13) NOT NULL,
-                                         `CHECKIN_INTERVAL` bigint(13) NOT NULL,
-                                         PRIMARY KEY (`SCHED_NAME`, `INSTANCE_NAME`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of qrtz_scheduler_state
--- ----------------------------
-
--- ----------------------------
--- Table structure for qrtz_simple_triggers
--- ----------------------------
-DROP TABLE IF EXISTS `qrtz_simple_triggers`;
-CREATE TABLE `qrtz_simple_triggers`  (
-                                         `SCHED_NAME` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
-                                         `TRIGGER_NAME` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
-                                         `TRIGGER_GROUP` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
-                                         `REPEAT_COUNT` bigint(7) NOT NULL,
-                                         `REPEAT_INTERVAL` bigint(12) NOT NULL,
-                                         `TIMES_TRIGGERED` bigint(10) NOT NULL,
-                                         PRIMARY KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) USING BTREE,
-                                         CONSTRAINT `qrtz_simple_triggers_ibfk_1` FOREIGN KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) REFERENCES `qrtz_triggers` (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) ON DELETE NO ACTION ON UPDATE NO ACTION
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of qrtz_simple_triggers
--- ----------------------------
-
--- ----------------------------
--- Table structure for qrtz_simprop_triggers
--- ----------------------------
-DROP TABLE IF EXISTS `qrtz_simprop_triggers`;
-CREATE TABLE `qrtz_simprop_triggers`  (
-                                          `SCHED_NAME` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
-                                          `TRIGGER_NAME` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
-                                          `TRIGGER_GROUP` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
-                                          `STR_PROP_1` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
-                                          `STR_PROP_2` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
-                                          `STR_PROP_3` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
-                                          `INT_PROP_1` int(11) NULL DEFAULT NULL,
-                                          `INT_PROP_2` int(11) NULL DEFAULT NULL,
-                                          `LONG_PROP_1` bigint(20) NULL DEFAULT NULL,
-                                          `LONG_PROP_2` bigint(20) NULL DEFAULT NULL,
-                                          `DEC_PROP_1` decimal(13, 4) NULL DEFAULT NULL,
-                                          `DEC_PROP_2` decimal(13, 4) NULL DEFAULT NULL,
-                                          `BOOL_PROP_1` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
-                                          `BOOL_PROP_2` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
-                                          PRIMARY KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) USING BTREE,
-                                          CONSTRAINT `qrtz_simprop_triggers_ibfk_1` FOREIGN KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) REFERENCES `qrtz_triggers` (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) ON DELETE NO ACTION ON UPDATE NO ACTION
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of qrtz_simprop_triggers
--- ----------------------------
-
--- ----------------------------
--- Table structure for qrtz_triggers
--- ----------------------------
-DROP TABLE IF EXISTS `qrtz_triggers`;
-CREATE TABLE `qrtz_triggers`  (
-                                  `SCHED_NAME` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
-                                  `TRIGGER_NAME` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
-                                  `TRIGGER_GROUP` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
-                                  `JOB_NAME` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
-                                  `JOB_GROUP` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
-                                  `DESCRIPTION` varchar(250) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
-                                  `NEXT_FIRE_TIME` bigint(13) NULL DEFAULT NULL,
-                                  `PREV_FIRE_TIME` bigint(13) NULL DEFAULT NULL,
-                                  `PRIORITY` int(11) NULL DEFAULT NULL,
-                                  `TRIGGER_STATE` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
-                                  `TRIGGER_TYPE` varchar(8) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
-                                  `START_TIME` bigint(13) NOT NULL,
-                                  `END_TIME` bigint(13) NULL DEFAULT NULL,
-                                  `CALENDAR_NAME` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
-                                  `MISFIRE_INSTR` smallint(2) NULL DEFAULT NULL,
-                                  `JOB_DATA` blob NULL,
-                                  PRIMARY KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) USING BTREE,
-                                  INDEX `IDX_QRTZ_T_NFT_ST`(`SCHED_NAME`, `TRIGGER_STATE`, `NEXT_FIRE_TIME`) USING BTREE,
-                                  INDEX `IDX_QRTZ_T_N_STATE`(`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`, `TRIGGER_STATE`) USING BTREE,
-                                  INDEX `IDX_QRTZ_T_NEXT_FIRE_TIME`(`SCHED_NAME`, `NEXT_FIRE_TIME`) USING BTREE,
-                                  INDEX `IDX_QRTZ_T_C`(`SCHED_NAME`, `CALENDAR_NAME`) USING BTREE,
-                                  INDEX `IDX_QRTZ_T_NFT_ST_MISFIRE`(`SCHED_NAME`, `MISFIRE_INSTR`, `NEXT_FIRE_TIME`, `TRIGGER_STATE`) USING BTREE,
-                                  INDEX `IDX_QRTZ_T_G`(`SCHED_NAME`, `TRIGGER_GROUP`) USING BTREE,
-                                  INDEX `IDX_QRTZ_T_J`(`SCHED_NAME`, `JOB_NAME`, `JOB_GROUP`) USING BTREE,
-                                  INDEX `IDX_QRTZ_T_JG`(`SCHED_NAME`, `JOB_GROUP`) USING BTREE,
-                                  INDEX `IDX_QRTZ_T_N_G_STATE`(`SCHED_NAME`, `TRIGGER_GROUP`, `TRIGGER_STATE`) USING BTREE,
-                                  INDEX `IDX_QRTZ_T_NFT_MISFIRE`(`SCHED_NAME`, `MISFIRE_INSTR`, `NEXT_FIRE_TIME`) USING BTREE,
-                                  INDEX `IDX_QRTZ_T_STATE`(`SCHED_NAME`, `TRIGGER_STATE`) USING BTREE,
-                                  INDEX `IDX_QRTZ_T_NFT_ST_MISFIRE_GRP`(`SCHED_NAME`, `MISFIRE_INSTR`, `NEXT_FIRE_TIME`, `TRIGGER_GROUP`, `TRIGGER_STATE`) USING BTREE,
-                                  CONSTRAINT `qrtz_triggers_ibfk_1` FOREIGN KEY (`SCHED_NAME`, `JOB_NAME`, `JOB_GROUP`) REFERENCES `qrtz_job_details` (`SCHED_NAME`, `JOB_NAME`, `JOB_GROUP`) ON DELETE NO ACTION ON UPDATE NO ACTION
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of qrtz_triggers
--- ----------------------------
-
--- ----------------------------
--- Table structure for starter_audit_data_version
--- ----------------------------
-DROP TABLE IF EXISTS `starter_audit_data_version`;
-CREATE TABLE `starter_audit_data_version`  (
-                                               `id` bigint(20) NOT NULL,
-                                               `table_name` varchar(300) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '数据表名称',
-                                               `data_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '数据名称',
-                                               `data_id` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '数据主键',
-                                               `data_content` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '数据内容',
-                                               `change_content` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '数据更新内容',
-                                               `version` int(10) NOT NULL COMMENT '版本',
-                                               `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建人',
-                                               `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
-                                               PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '数据版本日志' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of starter_audit_data_version
--- ----------------------------
-
--- ----------------------------
--- Table structure for starter_audit_login_log
--- ----------------------------
-DROP TABLE IF EXISTS `starter_audit_login_log`;
-CREATE TABLE `starter_audit_login_log`  (
-                                            `id` bigint(20) NOT NULL,
-                                            `user_id` bigint(11) NULL DEFAULT NULL COMMENT '用户id',
-                                            `account` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '用户名称',
-                                            `login` bit(1) NULL DEFAULT NULL COMMENT '登录成功状态',
-                                            `client` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '终端',
-                                            `login_type` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '登录方式',
-                                            `ip` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '登录IP地址',
-                                            `login_location` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '登录地点',
-                                            `os` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '操作系统',
-                                            `browser` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '浏览器类型',
-                                            `msg` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '提示消息',
-                                            `login_time` datetime NULL DEFAULT NULL COMMENT '访问时间',
-                                            PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '登陆日志' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of starter_audit_login_log
--- ----------------------------
-INSERT INTO `starter_audit_login_log` VALUES (1789981400523988992, 1757299137932677120, 'daxpay', b'1', 'dax-pay', 'password', '0:0:0:0:0:0:0:1', '未知', 'Windows 10 or Windows Server 2016', 'Chrome 122.0.6261.95', NULL, '2024-05-13 19:29:57');
-INSERT INTO `starter_audit_login_log` VALUES (1789981854330904576, 1399985191002447872, 'bootx', b'1', 'dax-pay', 'password', '0:0:0:0:0:0:0:1', '未知', 'Windows 10 or Windows Server 2016', 'Chrome 122.0.6261.95', NULL, '2024-05-13 19:31:45');
-INSERT INTO `starter_audit_login_log` VALUES (1789982145977638912, 1757299137932677120, 'daxpay', b'1', 'dax-pay', 'password', '0:0:0:0:0:0:0:1', '未知', 'Windows 10 or Windows Server 2016', 'Chrome 122.0.6261.95', NULL, '2024-05-13 19:32:55');
-INSERT INTO `starter_audit_login_log` VALUES (1789985967902941184, 1399985191002447872, 'bootx', b'1', 'dax-pay', 'password', '0:0:0:0:0:0:0:1', '未知', 'Windows 10 or Windows Server 2016', 'Chrome 122.0.6261.95', NULL, '2024-05-13 19:48:06');
-INSERT INTO `starter_audit_login_log` VALUES (1789986099583115264, 1399985191002447872, 'bootx', b'1', 'dax-pay', 'password', '0:0:0:0:0:0:0:1', '未知', 'Windows 10 or Windows Server 2016', 'Chrome 122.0.6261.95', NULL, '2024-05-13 19:48:37');
-INSERT INTO `starter_audit_login_log` VALUES (1789986131078144000, 1757299137932677120, 'daxpay', b'1', 'dax-pay', 'password', '0:0:0:0:0:0:0:1', '未知', 'Windows 10 or Windows Server 2016', 'Chrome 122.0.6261.95', NULL, '2024-05-13 19:48:45');
-
--- ----------------------------
--- Table structure for starter_audit_operate_log
--- ----------------------------
-DROP TABLE IF EXISTS `starter_audit_operate_log`;
-CREATE TABLE `starter_audit_operate_log`  (
-                                              `id` bigint(20) NOT NULL,
-                                              `title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '操作模块',
-                                              `operate_id` bigint(20) NULL DEFAULT NULL COMMENT '操作人员id',
-                                              `username` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '操作人员账号',
-                                              `business_type` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '业务类型',
-                                              `method` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '请求方法',
-                                              `request_method` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '请求方式',
-                                              `operate_url` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '请求url',
-                                              `operate_ip` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '操作ip',
-                                              `operate_location` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '操作地点',
-                                              `operate_param` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '请求参数',
-                                              `operate_return` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '返回参数',
-                                              `success` bit(1) NULL DEFAULT NULL COMMENT '是否成功',
-                                              `error_msg` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '错误提示',
-                                              `operate_time` datetime NULL DEFAULT NULL COMMENT '操作时间',
-                                              PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '操作日志' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of starter_audit_operate_log
--- ----------------------------
-INSERT INTO `starter_audit_operate_log` VALUES (1764663811019894784, '同步系统请求资源', 1399985191002447872, 'bootx', 'other', 'cn.bootx.platform.iam.core.permission.service.PermPathService#syncSystem', 'POST', '/perm/path/syncSystem', '未知', '未知', NULL, NULL, b'1', NULL, '2024-03-04 22:46:53');
-INSERT INTO `starter_audit_operate_log` VALUES (1764932301155672064, '同步系统请求资源', 1399985191002447872, 'bootx', 'other', 'cn.bootx.platform.iam.core.permission.service.PermPathService#syncSystem', 'POST', '/perm/path/syncSystem', '未知', '未知', NULL, NULL, b'1', NULL, '2024-03-05 16:33:46');
-INSERT INTO `starter_audit_operate_log` VALUES (1764932527790702592, '同步系统请求资源', 1399985191002447872, 'bootx', 'other', 'cn.bootx.platform.iam.core.permission.service.PermPathService#syncSystem', 'POST', '/perm/path/syncSystem', '未知', '未知', NULL, NULL, b'1', NULL, '2024-03-05 16:34:39');
-INSERT INTO `starter_audit_operate_log` VALUES (1764933649263722496, '同步系统请求资源', 1399985191002447872, 'bootx', 'other', 'cn.bootx.platform.iam.core.permission.service.PermPathService#syncSystem', 'POST', '/perm/path/syncSystem', '未知', '未知', NULL, NULL, b'1', NULL, '2024-03-05 16:39:06');
-INSERT INTO `starter_audit_operate_log` VALUES (1768219996095213568, '同步系统请求资源', 1399985191002447872, 'bootx', 'other', 'cn.bootx.platform.iam.core.permission.service.PermPathService#syncSystem', 'POST', '/perm/path/syncSystem', '未知', '未知', NULL, NULL, b'1', NULL, '2024-03-14 18:17:54');
-INSERT INTO `starter_audit_operate_log` VALUES (1772446742462001152, '同步系统请求资源', 1399985191002447872, 'bootx', 'other', 'cn.bootx.platform.iam.core.permission.service.PermPathService#syncSystem', 'POST', '/perm/path/syncSystem', '未知', '未知', NULL, NULL, b'1', NULL, '2024-03-26 10:13:29');
-INSERT INTO `starter_audit_operate_log` VALUES (1780216506568273920, '同步系统请求资源', 1399985191002447872, 'bootx', 'other', 'cn.bootx.platform.iam.core.permission.service.PermPathService#syncSystem', 'POST', '/perm/path/syncSystem', '未知', '未知', NULL, NULL, b'1', NULL, '2024-04-16 20:47:45');
-INSERT INTO `starter_audit_operate_log` VALUES (1780417659281174528, '同步系统请求资源', 1399985191002447872, 'bootx', 'other', 'cn.bootx.platform.iam.core.permission.service.PermPathService#syncSystem', 'POST', '/perm/path/syncSystem', '未知', '未知', NULL, NULL, b'1', NULL, '2024-04-17 10:07:03');
-INSERT INTO `starter_audit_operate_log` VALUES (1780417857529147392, '同步系统请求资源', 1399985191002447872, 'bootx', 'other', 'cn.bootx.platform.iam.core.permission.service.PermPathService#syncSystem', 'POST', '/perm/path/syncSystem', '未知', '未知', NULL, NULL, b'1', NULL, '2024-04-17 10:07:50');
-INSERT INTO `starter_audit_operate_log` VALUES (1780418146982260736, '同步系统请求资源', 1399985191002447872, 'bootx', 'other', 'cn.bootx.platform.iam.core.permission.service.PermPathService#syncSystem', 'POST', '/perm/path/syncSystem', '未知', '未知', NULL, NULL, b'1', NULL, '2024-04-17 10:08:59');
-INSERT INTO `starter_audit_operate_log` VALUES (1780418343170830336, '同步系统请求资源', 1399985191002447872, 'bootx', 'other', 'cn.bootx.platform.iam.core.permission.service.PermPathService#syncSystem', 'POST', '/perm/path/syncSystem', '未知', '未知', NULL, NULL, b'1', NULL, '2024-04-17 10:09:46');
-INSERT INTO `starter_audit_operate_log` VALUES (1789978119609376768, '同步系统请求资源', 1399985191002447872, 'bootx', 'other', 'cn.bootx.platform.iam.core.permission.service.PermPathService#syncSystem', 'POST', '/perm/path/syncSystem', '未知', '未知', NULL, NULL, b'1', NULL, '2024-05-13 19:16:55');
-
--- ----------------------------
--- Table structure for starter_ding_media_md5
--- ----------------------------
-DROP TABLE IF EXISTS `starter_ding_media_md5`;
-CREATE TABLE `starter_ding_media_md5`  (
-                                           `id` bigint(20) NOT NULL,
-                                           `media_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '媒体id',
-                                           `md5` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 'md5值',
-                                           `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建人',
-                                           `create_time` datetime(6) NULL DEFAULT NULL COMMENT '创建时间',
-                                           PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '钉钉媒体文件MD5值关联关系' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of starter_ding_media_md5
--- ----------------------------
-
--- ----------------------------
--- Table structure for starter_ding_robot_config
--- ----------------------------
-DROP TABLE IF EXISTS `starter_ding_robot_config`;
-CREATE TABLE `starter_ding_robot_config`  (
-                                              `id` bigint(20) NOT NULL,
-                                              `name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '名称',
-                                              `code` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '编号',
-                                              `access_token` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '钉钉机器人访问token',
-                                              `enable_signature_check` bit(1) NOT NULL COMMENT '是否开启验签',
-                                              `sign_secret` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '钉钉机器人私钥',
-                                              `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
-                                              `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建人',
-                                              `create_time` datetime(6) NULL DEFAULT NULL COMMENT '创建时间',
-                                              `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修改人',
-                                              `last_modified_time` datetime(6) NULL DEFAULT NULL COMMENT '最后修改时间',
-                                              `version` int(11) NOT NULL COMMENT '版本',
-                                              `deleted` bit(1) NOT NULL COMMENT '0:未删除。1:已删除',
-                                              PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '钉钉机器人配置' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of starter_ding_robot_config
--- ----------------------------
-
--- ----------------------------
--- Table structure for starter_file_data
--- ----------------------------
-DROP TABLE IF EXISTS `starter_file_data`;
-CREATE TABLE `starter_file_data`  (
-                                      `id` bigint(20) NOT NULL COMMENT '主键',
-                                      `base64` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL COMMENT 'base64方式存储',
-                                      `data` longblob NULL COMMENT '数据方式存储',
-                                      PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '上传文件数据' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of starter_file_data
--- ----------------------------
-
--- ----------------------------
--- Table structure for starter_file_upload_info
--- ----------------------------
-DROP TABLE IF EXISTS `starter_file_upload_info`;
-CREATE TABLE `starter_file_upload_info`  (
-                                             `id` bigint(20) NOT NULL COMMENT '文件id',
-                                             `url` varchar(512) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '文件访问地址',
-                                             `size` bigint(20) NULL DEFAULT NULL COMMENT '文件大小,单位字节',
-                                             `filename` varchar(256) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '文件名称',
-                                             `original_filename` varchar(256) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '原始文件名',
-                                             `base_path` varchar(256) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '基础存储路径',
-                                             `path` varchar(256) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '存储路径',
-                                             `ext` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '文件扩展名',
-                                             `content_type` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT 'MIME类型',
-                                             `platform` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '存储平台',
-                                             `th_url` varchar(512) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '缩略图访问路径',
-                                             `th_filename` varchar(256) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '缩略图名称',
-                                             `th_size` bigint(20) NULL DEFAULT NULL COMMENT '缩略图大小,单位字节',
-                                             `th_content_type` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '缩略图MIME类型',
-                                             `object_id` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '文件所属对象id',
-                                             `object_type` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '文件所属对象类型,例如用户头像,评价图片',
-                                             `metadata` text CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT '文件元数据',
-                                             `user_metadata` text CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT '文件用户元数据',
-                                             `th_metadata` text CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT '缩略图元数据',
-                                             `th_user_metadata` text CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT '缩略图用户元数据',
-                                             `attr` text CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT '附加属性',
-                                             `file_acl` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '文件ACL',
-                                             `th_file_acl` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '缩略图文件ACL',
-                                             `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
-                                             PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '文件记录表' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of starter_file_upload_info
--- ----------------------------
-
--- ----------------------------
--- Table structure for starter_quartz_job
--- ----------------------------
-DROP TABLE IF EXISTS `starter_quartz_job`;
-CREATE TABLE `starter_quartz_job`  (
-                                       `id` bigint(20) NOT NULL COMMENT '主键',
-                                       `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '任务名称',
-                                       `job_class_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '任务类名',
-                                       `cron` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'cron表达式',
-                                       `parameter` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '参数',
-                                       `state` int(4) NULL DEFAULT NULL COMMENT '状态',
-                                       `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
-                                       `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建人',
-                                       `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
-                                       `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修改人',
-                                       `last_modified_time` datetime NULL DEFAULT NULL COMMENT '最后修改时间',
-                                       `version` int(11) NOT NULL COMMENT '版本',
-                                       `deleted` tinyint(1) NOT NULL DEFAULT 0 COMMENT '0:未删除。1:已删除',
-                                       PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '定时任务' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of starter_quartz_job
--- ----------------------------
-INSERT INTO `starter_quartz_job` VALUES (1456579473573867520, '测试任务', 'cn.bootx.platform.starter.quartz.task.TestTask', '0/3 0 * * * ? *', '{\"aaa\":\"5255\"}', 0, '测试任务', 1399985191002447872, '2021-11-05 19:09:43', 1399985191002447872, '2024-02-24 23:57:57', 29, 0);
-INSERT INTO `starter_quartz_job` VALUES (1546857070483939328, '支付单超时检测', 'cn.daxpay.single.service.task.PayExpiredTimeTask', '0/5 * * * * ? *', NULL, 0, '检测超时的支付单, 超时后调用同步事件状态修复', 1399985191002447872, '2022-07-12 22:00:39', 1399985191002447872, '2024-05-09 17:13:10', 7, 0);
-INSERT INTO `starter_quartz_job` VALUES (1761419490908958720, '客户系统通知重发任务', 'cn.daxpay.single.service.task.ClientNoticeSendTask', '0/1 * * * * ? *', '', 0, '每秒调用一下当前需要进行通知的任务', 1399985191002447872, '2024-02-24 23:55:07', 1399985191002447872, '2024-05-09 17:13:10', 5, 0);
-INSERT INTO `starter_quartz_job` VALUES (1764664552203743232, '支付宝定时对账', 'cn.daxpay.single.service.task.ReconcileTask', '0 0 11 * * ? *', '{\"channel\":\"ali_pay\",\"n\":1}', 0, '', 1399985191002447872, '2024-03-04 22:49:50', 1399985191002447872, '2024-05-09 17:13:10', 6, 0);
-INSERT INTO `starter_quartz_job` VALUES (1764667388106887168, '微信支付定时对账', 'cn.daxpay.single.service.task.ReconcileTask', '0 0 11 * * ? *', '{\"channel\":\"wechat_pay\",\"n\":1}', 0, '', 1399985191002447872, '2024-03-04 23:01:06', 1399985191002447872, '2024-05-09 17:13:10', 6, 0);
-INSERT INTO `starter_quartz_job` VALUES (1767553847839141888, '退款订单定时同步', 'cn.daxpay.single.service.task.RefundSyncTask', '0 * * * * ? *', '', 0, '', 1399985191002447872, '2024-03-12 22:10:52', 1399985191002447872, '2024-05-09 17:13:10', 4, 0);
-INSERT INTO `starter_quartz_job` VALUES (1787464504578744320, '自动分账定时任务', 'cn.daxpay.single.service.task.AllocationAutoStartTask', '0/10 * * * * ? *', '', 0, '', 1399985191002447872, '2024-05-06 20:48:42', 1399985191002447872, '2024-05-09 17:13:10', 2, 0);
-INSERT INTO `starter_quartz_job` VALUES (1787470450809954304, '自动分账信息同步和完结接口', 'cn.daxpay.single.service.task.AllocationSyncTask', '0/10 * * * * ? *', '', 0, '', 1399985191002447872, '2024-05-06 21:12:20', 1399985191002447872, '2024-05-09 17:13:10', 2, 0);
-
--- ----------------------------
--- Table structure for starter_quartz_job_log
--- ----------------------------
-DROP TABLE IF EXISTS `starter_quartz_job_log`;
-CREATE TABLE `starter_quartz_job_log`  (
-                                           `id` bigint(20) NOT NULL COMMENT '主键',
-                                           `handler_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '处理器名称',
-                                           `class_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '处理器全限定名',
-                                           `success` bit(1) NOT NULL COMMENT '是否执行成功',
-                                           `error_message` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '错误信息',
-                                           `start_time` datetime NULL DEFAULT NULL COMMENT '开始时间',
-                                           `end_time` datetime NULL DEFAULT NULL COMMENT '结束时间',
-                                           `duration` bigint(255) NULL DEFAULT NULL COMMENT '执行时长',
-                                           `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
-                                           PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '任务执行日志' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of starter_quartz_job_log
--- ----------------------------
-
--- ----------------------------
--- Table structure for starter_wecom_robot_config
--- ----------------------------
-DROP TABLE IF EXISTS `starter_wecom_robot_config`;
-CREATE TABLE `starter_wecom_robot_config`  (
-                                               `id` bigint(20) NOT NULL,
-                                               `name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '名称',
-                                               `code` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '编号',
-                                               `webhook_key` varchar(150) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 'webhook地址的key值',
-                                               `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
-                                               `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建人',
-                                               `create_time` datetime(6) NULL DEFAULT NULL COMMENT '创建时间',
-                                               `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修改人',
-                                               `last_modified_time` datetime(6) NULL DEFAULT NULL COMMENT '最后修改时间',
-                                               `version` int(11) NOT NULL COMMENT '版本',
-                                               `deleted` bit(1) NOT NULL COMMENT '0:未删除。1:已删除',
-                                               PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '企业微信机器人配置' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of starter_wecom_robot_config
--- ----------------------------
-
--- ----------------------------
--- Table structure for starter_wx_fans
--- ----------------------------
-DROP TABLE IF EXISTS `starter_wx_fans`;
-CREATE TABLE `starter_wx_fans`  (
-                                    `id` bigint(20) NOT NULL,
-                                    `openid` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '关联OpenId',
-                                    `subscribe_status` bit(1) NULL DEFAULT NULL COMMENT '订阅状态',
-                                    `subscribe_time` datetime NULL DEFAULT NULL COMMENT '订阅时间',
-                                    `nickname` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '昵称',
-                                    `sex` varchar(3) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '性别',
-                                    `language` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '语言',
-                                    `country` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '国家',
-                                    `province` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '省份',
-                                    `city` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '城市',
-                                    `avatar_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '头像地址',
-                                    `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
-                                    PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '微信公众号粉丝' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of starter_wx_fans
--- ----------------------------
-
--- ----------------------------
--- Table structure for starter_wx_menu
--- ----------------------------
-DROP TABLE IF EXISTS `starter_wx_menu`;
-CREATE TABLE `starter_wx_menu`  (
-                                    `id` bigint(20) NOT NULL COMMENT '主键',
-                                    `name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '名称',
-                                    `menu_info` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL COMMENT '菜单信息',
-                                    `remark` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '备注',
-                                    `publish` bit(1) NOT NULL COMMENT '是否发布',
-                                    `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建人',
-                                    `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
-                                    `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修改人',
-                                    `last_modified_time` datetime NULL DEFAULT NULL COMMENT '最后修改时间',
-                                    `deleted` tinyint(1) NOT NULL DEFAULT 0 COMMENT '0:未删除。1:已删除',
-                                    `version` int(11) NOT NULL COMMENT '版本',
-                                    PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '微信自定义菜单' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of starter_wx_menu
--- ----------------------------
-
--- ----------------------------
--- Table structure for starter_wx_template
--- ----------------------------
-DROP TABLE IF EXISTS `starter_wx_template`;
-CREATE TABLE `starter_wx_template`  (
-                                        `id` bigint(20) NOT NULL,
-                                        `name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '名称',
-                                        `code` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '编码',
-                                        `enable` bit(1) NOT NULL COMMENT '是否启用',
-                                        `template_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '模板ID',
-                                        `title` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '模板标题',
-                                        `primary_industry` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '模板所属行业的一级行业',
-                                        `deputy_industry` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '模板所属行业的二级行业',
-                                        `content` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '模板内容',
-                                        `example` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '示例',
-                                        `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建人',
-                                        `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
-                                        `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修改人',
-                                        `last_modified_time` datetime NULL DEFAULT NULL COMMENT '最后修改时间',
-                                        `version` int(11) NOT NULL COMMENT '版本',
-                                        PRIMARY KEY (`id`) USING BTREE,
-                                        UNIQUE INDEX `inx_`(`template_id`) USING BTREE COMMENT '模板id'
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '微信消息模板' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of starter_wx_template
--- ----------------------------
-
-SET FOREIGN_KEY_CHECKS = 1;
diff --git a/_config/mysql/2.0.6/2.0.6.update.data.sql b/_config/mysql/2.0.6/2.0.6.update.data.sql
deleted file mode 100644
index 57626726c70b7e4496e2ebb1bdca860ba81554fa..0000000000000000000000000000000000000000
--- a/_config/mysql/2.0.6/2.0.6.update.data.sql
+++ /dev/null
@@ -1,287 +0,0 @@
-SET FOREIGN_KEY_CHECKS = 0;
-
-INSERT INTO `base_dict` (`id`, `code`, `name`, `enable`, `group_tag`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1797179034383134720, 'TradeFlowRecordType', '交易流水记录类型', b'1', '支付', '', 1399985191002447872, '2024-06-02 16:10:46', 1399985191002447872, '2024-06-02 16:10:46', 0, 0);
-
-INSERT INTO `base_dict_item` (`id`, `dict_id`, `dict_code`, `code`, `name`, `enable`, `sort_no`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1795722875761156096, 1780163691808391168, 'AllocDetailResult', 'ignore', '忽略分账', b'1', 3.00, '', 1399985191002447872, '2024-05-29 15:44:31', 1399985191002447872, '2024-05-29 15:44:31', 0, 0);
-
-INSERT INTO `base_dict_item` (`id`, `dict_id`, `dict_code`, `code`, `name`, `enable`, `sort_no`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1795722956774137856, 1777697358802530304, 'AllocOrderStatus', 'ignore', '忽略分账', b'1', 7.00, '', 1399985191002447872, '2024-05-29 15:44:50', 1399985191002447872, '2024-05-29 15:44:50', 0, 0);
-
-INSERT INTO `base_dict_item` (`id`, `dict_id`, `dict_code`, `code`, `name`, `enable`, `sort_no`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1795730634367918080, 1751603996496453632, 'PaymentType', 'transfer', '转账', b'1', 3.00, '', 1399985191002447872, '2024-05-29 16:15:21', 1399985191002447872, '2024-05-29 16:15:21', 0, 0);
-
-INSERT INTO `base_dict_item` (`id`, `dict_id`, `dict_code`, `code`, `name`, `enable`, `sort_no`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1795730676084465664, 1751603996496453632, 'PaymentType', 'allocation', '分账', b'1', 4.00, '', 1399985191002447872, '2024-05-29 16:15:31', 1399985191002447872, '2024-05-29 16:15:31', 0, 0);
-
-INSERT INTO `base_dict_item` (`id`, `dict_id`, `dict_code`, `code`, `name`, `enable`, `sort_no`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1797179153430065152, 1797179034383134720, 'TradeFlowRecordType', 'pay', '支付', b'1', 0.00, '', 1399985191002447872, '2024-06-02 16:11:15', 1399985191002447872, '2024-06-02 16:11:15', 0, 0);
-
-INSERT INTO `base_dict_item` (`id`, `dict_id`, `dict_code`, `code`, `name`, `enable`, `sort_no`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1797179194613936128, 1797179034383134720, 'TradeFlowRecordType', 'refund', '退款', b'1', 1.00, '', 1399985191002447872, '2024-06-02 16:11:25', 1399985191002447872, '2024-06-02 16:11:25', 0, 0);
-
-INSERT INTO `base_dict_item` (`id`, `dict_id`, `dict_code`, `code`, `name`, `enable`, `sort_no`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1797524426741882880, 1761434095349624832, 'ClientNoticeType', 'allocation', '分账', b'1', 3.00, '', 1399985191002447872, '2024-06-03 15:03:14', 1399985191002447872, '2024-06-03 15:03:14', 0, 0);
-
-UPDATE `base_dict_item` SET `dict_id` = 1777697358802530304, `dict_code` = 'AllocOrderStatus', `code` = 'waiting', `name` = '待分账', `enable` = b'1', `sort_no` = 1.00, `remark` = '', `creator` = 1399985191002447872, `create_time` = '2024-04-09 22:10:53', `last_modifier` = 1399985191002447872, `last_modified_time` = '2024-05-29 15:45:15', `deleted` = 1, `version` = 0 WHERE `id` = 1777700713809522688;
-
-UPDATE `base_dict_item` SET `dict_id` = 1777697358802530304, `dict_code` = 'AllocOrderStatus', `code` = 'finish', `name` = '完结', `enable` = b'1', `sort_no` = 5.00, `remark` = '', `creator` = 1399985191002447872, `create_time` = '2024-04-09 22:11:30', `last_modifier` = 1399985191002447872, `last_modified_time` = '2024-05-29 15:46:08', `deleted` = 0, `version` = 2 WHERE `id` = 1777700870613577728;
-
-UPDATE `base_dict_item` SET `dict_id` = 1777697358802530304, `dict_code` = 'AllocOrderStatus', `code` = 'finish_failed', `name` = '完结失败', `enable` = b'1', `sort_no` = 6.00, `remark` = '', `creator` = 1399985191002447872, `create_time` = '2024-04-09 22:11:53', `last_modifier` = 1399985191002447872, `last_modified_time` = '2024-05-29 15:45:51', `deleted` = 0, `version` = 2 WHERE `id` = 1777700964087836672;
-
-INSERT INTO `iam_perm_menu` (`id`, `client_code`, `parent_id`, `title`, `name`, `perm_code`, `effect`, `icon`, `hidden`, `hide_children_in_menu`, `component`, `component_name`, `path`, `redirect`, `sort_no`, `menu_type`, `leaf`, `keep_alive`, `target_outside`, `hidden_header_content`, `internal`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `version`, `deleted`) VALUES (1582633196587261952, 'dax-pay', 1582276341792985088, '代码生成', 'CodeGenList', NULL, b'0', '', b'0', b'0', '/modules/develop/codegen/CodeGenList.vue', NULL, '/develop/codegen', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-19 15:22:13', 1414143554414059520, '2022-10-19 15:23:17', 1, 0);
-
-INSERT INTO `iam_perm_menu` (`id`, `client_code`, `parent_id`, `title`, `name`, `perm_code`, `effect`, `icon`, `hidden`, `hide_children_in_menu`, `component`, `component_name`, `path`, `redirect`, `sort_no`, `menu_type`, `leaf`, `keep_alive`, `target_outside`, `hidden_header_content`, `internal`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `version`, `deleted`) VALUES (1582633307786649600, 'dax-pay', 1582276341792985088, '动态表单', 'DynamicFormList', NULL, b'0', '', b'0', b'0', '/modules/develop/dynamicform/DynamicFormList.vue', NULL, '/develop/form', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-19 15:22:39', 1414143554414059520, '2022-10-19 15:22:39', 0, 0);
-
-INSERT INTO `iam_perm_menu` (`id`, `client_code`, `parent_id`, `title`, `name`, `perm_code`, `effect`, `icon`, `hidden`, `hide_children_in_menu`, `component`, `component_name`, `path`, `redirect`, `sort_no`, `menu_type`, `leaf`, `keep_alive`, `target_outside`, `hidden_header_content`, `internal`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `version`, `deleted`) VALUES (1582633620321017856, 'dax-pay', 1582276341792985088, '动态数据源', 'DynamicDataSourceList', NULL, b'0', '', b'0', b'0', '/modules/develop/dynamicsource/DynamicDataSourceList.vue', NULL, '/develop/source', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-19 15:23:54', 1414143554414059520, '2022-10-19 15:23:54', 0, 0);
-
-INSERT INTO `iam_perm_menu` (`id`, `client_code`, `parent_id`, `title`, `name`, `perm_code`, `effect`, `icon`, `hidden`, `hide_children_in_menu`, `component`, `component_name`, `path`, `redirect`, `sort_no`, `menu_type`, `leaf`, `keep_alive`, `target_outside`, `hidden_header_content`, `internal`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `version`, `deleted`) VALUES (1629039360928075776, 'dax-pay', 1582276341792985088, '可视化大屏', 'ProjectInfoList', NULL, b'0', '', b'0', b'0', '/modules/develop/report/ProjectInfoList', NULL, '/develop/report', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2023-02-24 16:43:44', 1399985191002447872, '2024-05-09 19:26:57', 1, 1);
-
-INSERT INTO `iam_perm_menu` (`id`, `client_code`, `parent_id`, `title`, `name`, `perm_code`, `effect`, `icon`, `hidden`, `hide_children_in_menu`, `component`, `component_name`, `path`, `redirect`, `sort_no`, `menu_type`, `leaf`, `keep_alive`, `target_outside`, `hidden_header_content`, `internal`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `version`, `deleted`) VALUES (1635274568758435840, 'dax-pay', 1582276341792985088, '数据集管理', 'DataResultSqlList', NULL, b'0', '', b'0', b'0', '/modules/develop/dataresult/DataResultSqlList', NULL, '/develop/dataresult', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2023-03-13 21:40:14', 1399985191002447872, '2024-05-09 19:27:24', 3, 1);
-
-INSERT INTO `iam_perm_menu` (`id`, `client_code`, `parent_id`, `title`, `name`, `perm_code`, `effect`, `icon`, `hidden`, `hide_children_in_menu`, `component`, `component_name`, `path`, `redirect`, `sort_no`, `menu_type`, `leaf`, `keep_alive`, `target_outside`, `hidden_header_content`, `internal`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `version`, `deleted`) VALUES (1689181991598997504, 'dax-pay', 1582253152903843840, '敏感词管理', 'ChinaWord', NULL, b'0', '', b'0', b'0', '/modules/baseapi/chianword/ChinaWordList.vue', NULL, '/system/config/chinaword', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2023-08-09 15:49:05', 1414143554414059520, '2023-08-09 15:49:05', 0, 0);
-
-INSERT INTO `iam_perm_menu` (`id`, `client_code`, `parent_id`, `title`, `name`, `perm_code`, `effect`, `icon`, `hidden`, `hide_children_in_menu`, `component`, `component_name`, `path`, `redirect`, `sort_no`, `menu_type`, `leaf`, `keep_alive`, `target_outside`, `hidden_header_content`, `internal`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `version`, `deleted`) VALUES (1690324070514782208, 'dax-pay', 1582276341792985088, '通用模板', 'GeneralTemplateList', NULL, b'0', '', b'0', b'0', '/modules/develop/template/GeneralTemplateList', NULL, '/develop/template', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2023-08-12 19:27:18', 1414143554414059520, '2023-08-12 19:31:26', 3, 0);
-
-INSERT INTO `iam_perm_menu` (`id`, `client_code`, `parent_id`, `title`, `name`, `perm_code`, `effect`, `icon`, `hidden`, `hide_children_in_menu`, `component`, `component_name`, `path`, `redirect`, `sort_no`, `menu_type`, `leaf`, `keep_alive`, `target_outside`, `hidden_header_content`, `internal`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `version`, `deleted`) VALUES (1703665090038800384, 'dax-pay', 1582276341792985088, '在线SQL', 'SqlQueryInfo', NULL, b'0', '', b'0', b'0', '/modules/develop/query/SqlQueryInfo', NULL, '/develop/sqlquery', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2023-09-18 14:59:45', 1399985191002447872, '2024-05-09 19:27:29', 0, 1);
-
-INSERT INTO `iam_perm_menu` (`id`, `client_code`, `parent_id`, `title`, `name`, `perm_code`, `effect`, `icon`, `hidden`, `hide_children_in_menu`, `component`, `component_name`, `path`, `redirect`, `sort_no`, `menu_type`, `leaf`, `keep_alive`, `target_outside`, `hidden_header_content`, `internal`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `version`, `deleted`) VALUES (1797178029448867840, 'dax-pay', 1744643265142165504, '交易流水', 'TradeFlowRecordList', NULL, b'0', '', b'0', b'0', 'payment/record/flow/TradeFlowRecordList', NULL, '/pay/record/flow', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1399985191002447872, '2024-06-02 16:06:47', 1399985191002447872, '2024-06-02 16:06:47', 0, 0);
-
-UPDATE `iam_perm_menu` SET `client_code` = 'dax-pay', `parent_id` = 1775089099078553600, `title` = '分账订单', `name` = 'AllocationOrderList', `perm_code` = NULL, `effect` = b'0', `icon` = '', `hidden` = b'0', `hide_children_in_menu` = b'0', `component` = 'payment/allocation/order/AllocationOrderList', `component_name` = NULL, `path` = '/pay/allocation/order', `redirect` = '', `sort_no` = -1, `menu_type` = 1, `leaf` = NULL, `keep_alive` = b'1', `target_outside` = b'0', `hidden_header_content` = b'0', `internal` = b'0', `remark` = NULL, `creator` = 1399985191002447872, `create_time` = '2024-04-09 21:21:53', `last_modifier` = 1399985191002447872, `last_modified_time` = '2024-05-31 11:16:55', `version` = 5, `deleted` = 0 WHERE `id` = 1777688382748700672;
-
-INSERT INTO `iam_perm_path` (`id`, `code`, `name`, `request_type`, `path`, `group_name`, `enable`, `generate`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1797521957446066176, 'PayNoticeReceiverController#wechatPayNotice', '微信消息通知', 'POST', '/callback/notice/wechat', '执法通道网关消息通知', b'1', b'1', '执法通道网关消息通知 微信消息通知', 1399985191002447872, '2024-06-03 14:53:25.655000', 1399985191002447872, '2024-06-03 14:53:25.655000', b'0', 0);
-
-INSERT INTO `iam_perm_path` (`id`, `code`, `name`, `request_type`, `path`, `group_name`, `enable`, `generate`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1797521957446066177, 'AllocationReceiverController#existsByReceiverNo', '编码是否存在', 'GET', '/allocation/receiver/existsByReceiverNo', '分账接收方控制器', b'1', b'1', '分账接收方控制器 编码是否存在', 1399985191002447872, '2024-06-03 14:53:25.655000', 1399985191002447872, '2024-06-03 14:53:25.655000', b'0', 0);
-
-INSERT INTO `iam_perm_path` (`id`, `code`, `name`, `request_type`, `path`, `group_name`, `enable`, `generate`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1797521957446066178, 'UniAllocationController#start', '发起分账接口', 'POST', '/unipay/allocation/start', '分账控制器', b'1', b'1', '分账控制器 发起分账接口', 1399985191002447872, '2024-06-03 14:53:25.655000', 1399985191002447872, '2024-06-03 14:53:25.655000', b'0', 0);
-
-INSERT INTO `iam_perm_path` (`id`, `code`, `name`, `request_type`, `path`, `group_name`, `enable`, `generate`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1797521957446066179, 'UniPayController#transfer', '统一转账接口', 'POST', '/unipay/transfer', '统一支付接口', b'1', b'1', '统一支付接口 统一转账接口', 1399985191002447872, '2024-06-03 14:53:25.655000', 1399985191002447872, '2024-06-03 14:53:25.655000', b'0', 0);
-
-INSERT INTO `iam_perm_path` (`id`, `code`, `name`, `request_type`, `path`, `group_name`, `enable`, `generate`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1797521957446066180, 'UniQueryController#transferOrder', '转账订单查询接口', 'POST', '/unipay/query/transferOrder', '统一查询接口', b'1', b'1', '统一查询接口 转账订单查询接口', 1399985191002447872, '2024-06-03 14:53:25.655000', 1399985191002447872, '2024-06-03 14:53:25.655000', b'0', 0);
-
-INSERT INTO `iam_perm_path` (`id`, `code`, `name`, `request_type`, `path`, `group_name`, `enable`, `generate`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1797521957446066181, 'AllocationGroupController#existsByGroupNo', '编码是否存在', 'GET', '/allocation/group/existsByGroupNo', '分账组', b'1', b'1', '分账组 编码是否存在', 1399985191002447872, '2024-06-03 14:53:25.655000', 1399985191002447872, '2024-06-03 14:53:25.655000', b'0', 0);
-
-INSERT INTO `iam_perm_path` (`id`, `code`, `name`, `request_type`, `path`, `group_name`, `enable`, `generate`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1797521957446066182, 'UniQueryController#queryPayOrder', '支付订单查询接口', 'POST', '/unipay/query/payOrder', '统一查询接口', b'1', b'1', '统一查询接口 支付订单查询接口', 1399985191002447872, '2024-06-03 14:53:25.655000', 1399985191002447872, '2024-06-03 14:53:25.655000', b'0', 0);
-
-INSERT INTO `iam_perm_path` (`id`, `code`, `name`, `request_type`, `path`, `group_name`, `enable`, `generate`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1797521957446066183, 'UniQueryController#queryAllocationOrder', '分账订单查询接口', 'POST', '/unipay/query/allocationOrder', '统一查询接口', b'1', b'1', '统一查询接口 分账订单查询接口', 1399985191002447872, '2024-06-03 14:53:25.655000', 1399985191002447872, '2024-06-03 14:53:25.655000', b'0', 0);
-
-INSERT INTO `iam_perm_path` (`id`, `code`, `name`, `request_type`, `path`, `group_name`, `enable`, `generate`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1797521957446066184, 'AllocationOrderController#findByAllocNo', '查询扩展信息', 'GET', '/order/allocation/findByAllocNo', '分账订单控制器', b'1', b'1', '分账订单控制器 查询扩展信息', 1399985191002447872, '2024-06-03 14:53:25.655000', 1399985191002447872, '2024-06-03 14:53:25.655000', b'0', 0);
-
-INSERT INTO `iam_perm_path` (`id`, `code`, `name`, `request_type`, `path`, `group_name`, `enable`, `generate`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1797521957446066185, 'UniAllocationController#receiverAdd', '分账接收方添加接口', 'POST', '/unipay/allocation/receiver/add', '分账控制器', b'1', b'1', '分账控制器 分账接收方添加接口', 1399985191002447872, '2024-06-03 14:53:25.655000', 1399985191002447872, '2024-06-03 14:53:25.655000', b'0', 0);
-
-INSERT INTO `iam_perm_path` (`id`, `code`, `name`, `request_type`, `path`, `group_name`, `enable`, `generate`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1797521957446066186, 'UniPaySyncController#allocation', '分账同步接口', 'POST', '/unipay/sync/allocation', '统一同步接口', b'1', b'1', '统一同步接口 分账同步接口', 1399985191002447872, '2024-06-03 14:53:25.655000', 1399985191002447872, '2024-06-03 14:53:25.655000', b'0', 0);
-
-INSERT INTO `iam_perm_path` (`id`, `code`, `name`, `request_type`, `path`, `group_name`, `enable`, `generate`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1797521957446066187, 'UniReconcileController#down', '下载指定日期的资金流水', 'POST', '/unipay/reconcile/pay', '对账接口处理器', b'1', b'1', '对账接口处理器 下载指定日期的资金流水', 1399985191002447872, '2024-06-03 14:53:25.655000', 1399985191002447872, '2024-06-03 14:53:25.655000', b'0', 0);
-
-INSERT INTO `iam_perm_path` (`id`, `code`, `name`, `request_type`, `path`, `group_name`, `enable`, `generate`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1797521957446066188, 'RefundOrderController#findByRefundNo', '查询退款订单详情', 'GET', '/order/refund/findByRefundNo', '支付退款控制器', b'1', b'1', '支付退款控制器 查询退款订单详情', 1399985191002447872, '2024-06-03 14:53:25.655000', 1399985191002447872, '2024-06-03 14:53:25.655000', b'0', 0);
-
-INSERT INTO `iam_perm_path` (`id`, `code`, `name`, `request_type`, `path`, `group_name`, `enable`, `generate`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1797521957446066189, 'TradeFlowRecordController#findById', '查询单条', 'GET', '/record/flow/findById', '交易流水记录控制器', b'1', b'1', '交易流水记录控制器 查询单条', 1399985191002447872, '2024-06-03 14:53:25.655000', 1399985191002447872, '2024-06-03 14:53:25.655000', b'0', 0);
-
-INSERT INTO `iam_perm_path` (`id`, `code`, `name`, `request_type`, `path`, `group_name`, `enable`, `generate`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1797521957446066190, 'ClientNoticeReceiveController#allocation', '分账消息(对象)', 'POST', '/demo/callback/allocationObject', '回调测试', b'1', b'1', '回调测试 分账消息(对象)', 1399985191002447872, '2024-06-03 14:53:25.655000', 1399985191002447872, '2024-06-03 14:53:25.655000', b'0', 0);
-
-INSERT INTO `iam_perm_path` (`id`, `code`, `name`, `request_type`, `path`, `group_name`, `enable`, `generate`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1797521957446066191, 'UniPaySyncController#pay', '支付同步接口', 'POST', '/unipay/sync/pay', '统一同步接口', b'1', b'1', '统一同步接口 支付同步接口', 1399985191002447872, '2024-06-03 14:53:25.655000', 1399985191002447872, '2024-06-03 14:53:25.655000', b'0', 0);
-
-INSERT INTO `iam_perm_path` (`id`, `code`, `name`, `request_type`, `path`, `group_name`, `enable`, `generate`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1797521957446066192, 'UniPaySyncController#refund', '退款同步接口', 'POST', '/unipay/sync/refund', '统一同步接口', b'1', b'1', '统一同步接口 退款同步接口', 1399985191002447872, '2024-06-03 14:53:25.655000', 1399985191002447872, '2024-06-03 14:53:25.655000', b'0', 0);
-
-INSERT INTO `iam_perm_path` (`id`, `code`, `name`, `request_type`, `path`, `group_name`, `enable`, `generate`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1797521957446066193, 'UniPaySyncController#transfer', '转账同步接口', 'POST', '/unipay/sync/transfer', '统一同步接口', b'1', b'1', '统一同步接口 转账同步接口', 1399985191002447872, '2024-06-03 14:53:25.655000', 1399985191002447872, '2024-06-03 14:53:25.655000', b'0', 0);
-
-INSERT INTO `iam_perm_path` (`id`, `code`, `name`, `request_type`, `path`, `group_name`, `enable`, `generate`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1797521957446066194, 'ClientNoticeReceiveController#allocation', '分账消息', 'POST', '/demo/callback/allocation', '回调测试', b'1', b'1', '回调测试 分账消息', 1399985191002447872, '2024-06-03 14:53:25.655000', 1399985191002447872, '2024-06-03 14:53:25.655000', b'0', 0);
-
-INSERT INTO `iam_perm_path` (`id`, `code`, `name`, `request_type`, `path`, `group_name`, `enable`, `generate`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1797521957446066195, 'UniQueryController#queryAllocReceive', '分账接收方查询接口', 'POST', '/unipay/query/allocationReceiver', '统一查询接口', b'1', b'1', '统一查询接口 分账接收方查询接口', 1399985191002447872, '2024-06-03 14:53:25.655000', 1399985191002447872, '2024-06-03 14:53:25.655000', b'0', 0);
-
-INSERT INTO `iam_perm_path` (`id`, `code`, `name`, `request_type`, `path`, `group_name`, `enable`, `generate`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1797521957446066196, 'UniAllocationController#finish', '分账完结接口', 'POST', '/unipay/allocation/finish', '分账控制器', b'1', b'1', '分账控制器 分账完结接口', 1399985191002447872, '2024-06-03 14:53:25.655000', 1399985191002447872, '2024-06-03 14:53:25.655000', b'0', 0);
-
-INSERT INTO `iam_perm_path` (`id`, `code`, `name`, `request_type`, `path`, `group_name`, `enable`, `generate`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1797521957446066197, 'PayNoticeReceiverController#aliPayNotice', '支付宝消息通知', 'POST', '/callback/notice/alipay', '执法通道网关消息通知', b'1', b'1', '执法通道网关消息通知 支付宝消息通知', 1399985191002447872, '2024-06-03 14:53:25.655000', 1399985191002447872, '2024-06-03 14:53:25.655000', b'0', 0);
-
-INSERT INTO `iam_perm_path` (`id`, `code`, `name`, `request_type`, `path`, `group_name`, `enable`, `generate`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1797521957446066198, 'UniQueryController#queryRefundOrder', '退款订单查询接口', 'POST', '/unipay/query/refundOrder', '统一查询接口', b'1', b'1', '统一查询接口 退款订单查询接口', 1399985191002447872, '2024-06-03 14:53:25.655000', 1399985191002447872, '2024-06-03 14:53:25.655000', b'0', 0);
-
-INSERT INTO `iam_perm_path` (`id`, `code`, `name`, `request_type`, `path`, `group_name`, `enable`, `generate`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1797521957446066199, 'TradeFlowRecordController#page', '分页查询', 'GET', '/record/flow/page', '交易流水记录控制器', b'1', b'1', '交易流水记录控制器 分页查询', 1399985191002447872, '2024-06-03 14:53:25.655000', 1399985191002447872, '2024-06-03 14:53:25.655000', b'0', 0);
-
-INSERT INTO `iam_perm_path` (`id`, `code`, `name`, `request_type`, `path`, `group_name`, `enable`, `generate`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `deleted`, `version`) VALUES (1797521957446066200, 'UniAllocationController#receiverRemove', '分账接收方删除接口', 'POST', '/unipay/allocation/receiver/remove', '分账控制器', b'1', b'1', '分账控制器 分账接收方删除接口', 1399985191002447872, '2024-06-03 14:53:25.655000', 1399985191002447872, '2024-06-03 14:53:25.655000', b'0', 0);
-
-UPDATE `iam_perm_path` SET `code` = 'AllocationReceiverController#removeByGateway', `name` = '从三方支付系统中删除', `request_type` = 'POST', `path` = '/allocation/receiver/removeByGateway', `group_name` = '分账接收方控制器', `enable` = b'1', `generate` = b'1', `remark` = '分账接收方控制器 从三方支付系统中删除', `creator` = 1399985191002447872, `create_time` = '2024-05-13 19:16:54.069000', `last_modifier` = 1399985191002447872, `last_modified_time` = '2024-06-03 14:53:25.723000', `deleted` = b'1', `version` = 0 WHERE `id` = 1789978117562556420;
-
-UPDATE `iam_perm_path` SET `code` = 'UniQueryController#queryRefundOrder', `name` = '退款订单查询接口', `request_type` = 'POST', `path` = '/uni/query/refundOrder', `group_name` = '统一查询接口', `enable` = b'1', `generate` = b'1', `remark` = '统一查询接口 退款订单查询接口', `creator` = 1399985191002447872, `create_time` = '2024-05-13 19:16:54.069000', `last_modifier` = 1399985191002447872, `last_modified_time` = '2024-06-03 14:53:25.723000', `deleted` = b'1', `version` = 0 WHERE `id` = 1789978117562556426;
-
-UPDATE `iam_perm_path` SET `code` = 'UniPayController#syncPay', `name` = '支付同步接口', `request_type` = 'POST', `path` = '/unipay/syncPay', `group_name` = '统一支付接口', `enable` = b'1', `generate` = b'1', `remark` = '统一支付接口 支付同步接口', `creator` = 1399985191002447872, `create_time` = '2024-05-13 19:16:54.070000', `last_modifier` = 1399985191002447872, `last_modified_time` = '2024-06-03 14:53:25.723000', `deleted` = b'1', `version` = 0 WHERE `id` = 1789978117566750722;
-
-UPDATE `iam_perm_path` SET `code` = 'PayGatewayNoticeController#wechatPayNotice', `name` = '微信消息通知', `request_type` = 'POST', `path` = '/gateway/notice/wechat', `group_name` = '三方支付网关消息通知', `enable` = b'1', `generate` = b'1', `remark` = '三方支付网关消息通知 微信消息通知', `creator` = 1399985191002447872, `create_time` = '2024-05-13 19:16:54.070000', `last_modifier` = 1399985191002447872, `last_modified_time` = '2024-06-03 14:53:25.723000', `deleted` = b'1', `version` = 0 WHERE `id` = 1789978117566750736;
-
-UPDATE `iam_perm_path` SET `code` = 'AllocationReceiverController#registerByGateway', `name` = '同步到三方支付系统中', `request_type` = 'POST', `path` = '/allocation/receiver/registerByGateway', `group_name` = '分账接收方控制器', `enable` = b'1', `generate` = b'1', `remark` = '分账接收方控制器 同步到三方支付系统中', `creator` = 1399985191002447872, `create_time` = '2024-05-13 19:16:54.070000', `last_modifier` = 1399985191002447872, `last_modified_time` = '2024-06-03 14:53:25.723000', `deleted` = b'1', `version` = 0 WHERE `id` = 1789978117566750740;
-
-UPDATE `iam_perm_path` SET `code` = 'RefundOrderController#findByRefundNo', `name` = '查询退款订单详情', `request_type` = 'GET', `path` = '/order/refund/findByOrderNo', `group_name` = '支付退款控制器', `enable` = b'1', `generate` = b'1', `remark` = '支付退款控制器 查询退款订单详情', `creator` = 1399985191002447872, `create_time` = '2024-05-13 19:16:54.070000', `last_modifier` = 1399985191002447872, `last_modified_time` = '2024-06-03 14:53:25.723000', `deleted` = b'1', `version` = 0 WHERE `id` = 1789978117566750763;
-
-UPDATE `iam_perm_path` SET `code` = 'UniQueryController#queryPayOrder', `name` = '支付订单查询接口', `request_type` = 'POST', `path` = '/uni/query/payOrder', `group_name` = '统一查询接口', `enable` = b'1', `generate` = b'1', `remark` = '统一查询接口 支付订单查询接口', `creator` = 1399985191002447872, `create_time` = '2024-05-13 19:16:54.070000', `last_modifier` = 1399985191002447872, `last_modified_time` = '2024-06-03 14:53:25.723000', `deleted` = b'1', `version` = 0 WHERE `id` = 1789978117566750771;
-
-UPDATE `iam_perm_path` SET `code` = 'UniPayController#syncRefund', `name` = '退款同步接口', `request_type` = 'POST', `path` = '/unipay/syncRefund', `group_name` = '统一支付接口', `enable` = b'1', `generate` = b'1', `remark` = '统一支付接口 退款同步接口', `creator` = 1399985191002447872, `create_time` = '2024-05-13 19:16:54.070000', `last_modifier` = 1399985191002447872, `last_modified_time` = '2024-06-03 14:53:25.723000', `deleted` = b'1', `version` = 0 WHERE `id` = 1789978117566750798;
-
-UPDATE `iam_perm_path` SET `code` = 'UniPayController#allocation', `name` = '开启分账接口', `request_type` = 'POST', `path` = '/unipay/allocation', `group_name` = '统一支付接口', `enable` = b'1', `generate` = b'1', `remark` = '统一支付接口 开启分账接口', `creator` = 1399985191002447872, `create_time` = '2024-05-13 19:16:54.070000', `last_modifier` = 1399985191002447872, `last_modified_time` = '2024-06-03 14:53:25.722000', `deleted` = b'1', `version` = 0 WHERE `id` = 1789978117566750833;
-
-UPDATE `iam_perm_path` SET `code` = 'PayGatewayNoticeController#aliPayNotice', `name` = '支付宝消息通知', `request_type` = 'POST', `path` = '/gateway/notice/alipay', `group_name` = '三方支付网关消息通知', `enable` = b'1', `generate` = b'1', `remark` = '三方支付网关消息通知 支付宝消息通知', `creator` = 1399985191002447872, `create_time` = '2024-05-13 19:16:54.071000', `last_modifier` = 1399985191002447872, `last_modified_time` = '2024-06-03 14:53:25.722000', `deleted` = b'1', `version` = 0 WHERE `id` = 1789978117570945107;
-
-UPDATE `iam_perm_path` SET `code` = 'AllocationReceiverController#update', `name` = '修改', `request_type` = 'POST', `path` = '/allocation/receiver/update', `group_name` = '分账接收方控制器', `enable` = b'1', `generate` = b'1', `remark` = '分账接收方控制器 修改', `creator` = 1399985191002447872, `create_time` = '2024-05-13 19:16:54.071000', `last_modifier` = 1399985191002447872, `last_modified_time` = '2024-06-03 14:53:25.722000', `deleted` = b'1', `version` = 0 WHERE `id` = 1789978117570945181;
-
-UPDATE `iam_perm_path` SET `code` = 'UniPayController#allocationFinish', `name` = '分账完结接口', `request_type` = 'POST', `path` = '/unipay/allocationFinish', `group_name` = '统一支付接口', `enable` = b'1', `generate` = b'1', `remark` = '统一支付接口 分账完结接口', `creator` = 1399985191002447872, `create_time` = '2024-05-13 19:16:54.071000', `last_modifier` = 1399985191002447872, `last_modified_time` = '2024-06-03 14:53:25.716000', `deleted` = b'1', `version` = 0 WHERE `id` = 1789978117570945220;
-
-INSERT INTO `iam_role_menu` (`id`, `role_id`, `client_code`, `permission_id`) VALUES (1797522085254897664, 1757297023118462976, 'dax-pay', 1797178029448867840);
-
-INSERT INTO `iam_role_menu` (`id`, `role_id`, `client_code`, `permission_id`) VALUES (1797522085414281216, 1757298887092326400, 'dax-pay', 1797178029448867840);
-
-DELETE FROM `iam_role_path` WHERE `id` = 1789979321814343710;
-
-DELETE FROM `iam_role_path` WHERE `id` = 1789979321814343757;
-
-DELETE FROM `iam_role_path` WHERE `id` = 1789979321814343761;
-
-DELETE FROM `iam_role_path` WHERE `id` = 1789979321814343763;
-
-DELETE FROM `iam_role_path` WHERE `id` = 1789979321814343784;
-
-DELETE FROM `iam_role_path` WHERE `id` = 1789979321814343785;
-
-DELETE FROM `iam_role_path` WHERE `id` = 1789979322187636766;
-
-DELETE FROM `iam_role_path` WHERE `id` = 1789979322187636813;
-
-DELETE FROM `iam_role_path` WHERE `id` = 1789979322187636817;
-
-DELETE FROM `iam_role_path` WHERE `id` = 1789979322187636819;
-
-DELETE FROM `iam_role_path` WHERE `id` = 1789979322187636840;
-
-DELETE FROM `iam_role_path` WHERE `id` = 1789979322187636841;
-
-DELETE FROM `iam_role_path` WHERE `id` = 1790355320001957888;
-
-DELETE FROM `iam_role_path` WHERE `id` = 1790355320001957889;
-
-DELETE FROM `iam_role_path` WHERE `id` = 1790355320001957890;
-
-DELETE FROM `iam_role_path` WHERE `id` = 1790355320001957891;
-
-DELETE FROM `iam_role_path` WHERE `id` = 1790355320001957892;
-
-DELETE FROM `iam_role_path` WHERE `id` = 1790355320102621184;
-
-DELETE FROM `iam_role_path` WHERE `id` = 1790355320102621185;
-
-DELETE FROM `iam_role_path` WHERE `id` = 1790355320102621186;
-
-DELETE FROM `iam_role_path` WHERE `id` = 1790355320102621187;
-
-DELETE FROM `iam_role_path` WHERE `id` = 1790355320102621188;
-
-INSERT INTO `iam_role_path` (`id`, `role_id`, `permission_id`) VALUES (1797522413752786944, 1757297023118462976, 1797521957446066199);
-
-INSERT INTO `iam_role_path` (`id`, `role_id`, `permission_id`) VALUES (1797522413752786945, 1757297023118462976, 1797521957446066189);
-
-INSERT INTO `iam_role_path` (`id`, `role_id`, `permission_id`) VALUES (1797522413752786946, 1757297023118462976, 1797521957446066197);
-
-INSERT INTO `iam_role_path` (`id`, `role_id`, `permission_id`) VALUES (1797522413752786947, 1757297023118462976, 1797521957446066176);
-
-INSERT INTO `iam_role_path` (`id`, `role_id`, `permission_id`) VALUES (1797522413752786948, 1757297023118462976, 1797521957446066187);
-
-INSERT INTO `iam_role_path` (`id`, `role_id`, `permission_id`) VALUES (1797522723091095552, 1757298887092326400, 1797521957446066199);
-
-INSERT INTO `iam_role_path` (`id`, `role_id`, `permission_id`) VALUES (1797522723091095553, 1757298887092326400, 1797521957446066189);
-
-INSERT INTO `iam_role_path` (`id`, `role_id`, `permission_id`) VALUES (1797522723091095554, 1757298887092326400, 1797521957446066197);
-
-INSERT INTO `iam_role_path` (`id`, `role_id`, `permission_id`) VALUES (1797522723091095555, 1757298887092326400, 1797521957446066176);
-
-INSERT INTO `iam_role_path` (`id`, `role_id`, `permission_id`) VALUES (1797522723091095556, 1757298887092326400, 1797521957446066187);
-
-INSERT INTO `iam_role_path` (`id`, `role_id`, `permission_id`) VALUES (1797523038569865216, 1757297023118462976, 1797521957446066184);
-
-INSERT INTO `iam_role_path` (`id`, `role_id`, `permission_id`) VALUES (1797523038569865217, 1757297023118462976, 1797521957446066181);
-
-INSERT INTO `iam_role_path` (`id`, `role_id`, `permission_id`) VALUES (1797523038733443072, 1757298887092326400, 1797521957446066184);
-
-INSERT INTO `iam_role_path` (`id`, `role_id`, `permission_id`) VALUES (1797523038733443073, 1757298887092326400, 1797521957446066181);
-
-INSERT INTO `iam_role_path` (`id`, `role_id`, `permission_id`) VALUES (1797523166064123904, 1757297023118462976, 1797521957446066177);
-
-INSERT INTO `iam_role_path` (`id`, `role_id`, `permission_id`) VALUES (1797523166223507456, 1757298887092326400, 1797521957446066177);
-
-INSERT INTO `iam_role_path` (`id`, `role_id`, `permission_id`) VALUES (1797523263875293184, 1757297023118462976, 1789978117570945272);
-
-INSERT INTO `iam_role_path` (`id`, `role_id`, `permission_id`) VALUES (1797523263875293185, 1757297023118462976, 1789978117570945194);
-
-INSERT INTO `iam_role_path` (`id`, `role_id`, `permission_id`) VALUES (1797523263875293186, 1757297023118462976, 1789978117570945175);
-
-INSERT INTO `iam_role_path` (`id`, `role_id`, `permission_id`) VALUES (1797523263875293187, 1757297023118462976, 1789978117570945164);
-
-INSERT INTO `iam_role_path` (`id`, `role_id`, `permission_id`) VALUES (1797523263875293188, 1757297023118462976, 1789978117566750801);
-
-INSERT INTO `iam_role_path` (`id`, `role_id`, `permission_id`) VALUES (1797523264022093824, 1757298887092326400, 1789978117570945272);
-
-INSERT INTO `iam_role_path` (`id`, `role_id`, `permission_id`) VALUES (1797523264022093825, 1757298887092326400, 1789978117570945194);
-
-INSERT INTO `iam_role_path` (`id`, `role_id`, `permission_id`) VALUES (1797523264022093826, 1757298887092326400, 1789978117570945175);
-
-INSERT INTO `iam_role_path` (`id`, `role_id`, `permission_id`) VALUES (1797523264022093827, 1757298887092326400, 1789978117570945164);
-
-INSERT INTO `iam_role_path` (`id`, `role_id`, `permission_id`) VALUES (1797523264022093828, 1757298887092326400, 1789978117566750801);
-
-INSERT INTO `iam_role_path` (`id`, `role_id`, `permission_id`) VALUES (1797523482968956928, 1757297023118462976, 1797521957446066188);
-
-INSERT INTO `iam_role_path` (`id`, `role_id`, `permission_id`) VALUES (1797523483111563264, 1757298887092326400, 1797521957446066188);
-
-DELETE FROM `pay_api_config` WHERE `id` = 1;
-
-DELETE FROM `pay_api_config` WHERE `id` = 3;
-
-DELETE FROM `pay_api_config` WHERE `id` = 4;
-
-DELETE FROM `pay_api_config` WHERE `id` = 6;
-
-DELETE FROM `pay_api_config` WHERE `id` = 7;
-
-DELETE FROM `pay_api_config` WHERE `id` = 8;
-
-DELETE FROM `pay_api_config` WHERE `id` = 9;
-
-DELETE FROM `pay_api_config` WHERE `id` = 10;
-
-DELETE FROM `pay_api_config` WHERE `id` = 11;
-
-DELETE FROM `pay_api_config` WHERE `id` = 12;
-
-DELETE FROM `pay_api_config` WHERE `id` = 13;
-
-INSERT INTO `pay_api_config` (`id`, `code`, `api`, `name`, `notice_support`, `enable`, `notice`, `notice_url`, `req_sign`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `version`, `deleted`) VALUES (100, 'pay', '/unipay/pay', '统一支付接口	', b'1', b'1', b'1', 'http://pay1.bootx.cn/server/demo/callback/payObject', b'1', NULL, 0, '2024-01-03 14:25:48', 1399985191002447872, '2024-03-11 17:31:41', 11, b'0');
-
-INSERT INTO `pay_api_config` (`id`, `code`, `api`, `name`, `notice_support`, `enable`, `notice`, `notice_url`, `req_sign`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `version`, `deleted`) VALUES (200, 'close', '/unipay/close', '支付关闭接口', b'0', b'1', b'1', NULL, b'1', NULL, 0, '2024-01-03 14:25:48', 0, '2024-01-03 14:25:53', 0, b'0');
-
-INSERT INTO `pay_api_config` (`id`, `code`, `api`, `name`, `notice_support`, `enable`, `notice`, `notice_url`, `req_sign`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `version`, `deleted`) VALUES (300, 'refund', '/unipay/refund', '统一退款接口', b'1', b'1', b'1', 'http://pay1.bootx.cn/server/demo/callback/refundObject', b'1', NULL, 0, '2024-01-03 14:25:48', 1399985191002447872, '2024-05-16 21:59:19', 7, b'0');
-
-INSERT INTO `pay_api_config` (`id`, `code`, `api`, `name`, `notice_support`, `enable`, `notice`, `notice_url`, `req_sign`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `version`, `deleted`) VALUES (400, 'allocation', '/unipay/allocation/start', '统一分账接口', b'1', b'1', b'1', 'http://pay1.bootx.cn/server/demo/callback/allocationObject', b'1', NULL, 0, '2024-01-03 14:25:48', 1399985191002447872, '2024-05-30 19:36:35', 1, b'0');
-
-INSERT INTO `pay_api_config` (`id`, `code`, `api`, `name`, `notice_support`, `enable`, `notice`, `notice_url`, `req_sign`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `version`, `deleted`) VALUES (450, 'allocationFinish', '/unipay/allocation/finish', '分账完结接口', b'0', b'1', b'1', NULL, b'1', NULL, 0, '2024-01-03 14:25:48', 0, '2024-01-03 14:25:53', 0, b'0');
-
-INSERT INTO `pay_api_config` (`id`, `code`, `api`, `name`, `notice_support`, `enable`, `notice`, `notice_url`, `req_sign`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `version`, `deleted`) VALUES (451, 'allocationReceiverAdd', '/unipay/allocation/receiver/add', '分账接收方添加接口', b'0', b'1', b'0', NULL, b'1', NULL, 0, '2024-01-03 14:25:48', 0, '2024-01-03 14:25:53', 0, b'0');
-
-INSERT INTO `pay_api_config` (`id`, `code`, `api`, `name`, `notice_support`, `enable`, `notice`, `notice_url`, `req_sign`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `version`, `deleted`) VALUES (452, 'allocationReceiverRemove', '/unipay/allocation/receiver/remove', '分账接收方删除接口', b'0', b'1', b'0', NULL, b'1', NULL, 0, '2024-01-03 14:25:48', 0, '2024-01-03 14:25:53', 0, b'0');
-
-INSERT INTO `pay_api_config` (`id`, `code`, `api`, `name`, `notice_support`, `enable`, `notice`, `notice_url`, `req_sign`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `version`, `deleted`) VALUES (500, 'transfer', '/unipay/transfer', '统一转账接口', b'1', b'1', b'1', NULL, b'1', NULL, 0, '2024-01-03 14:25:48', 0, '2024-01-03 14:25:53', 0, b'0');
-
-INSERT INTO `pay_api_config` (`id`, `code`, `api`, `name`, `notice_support`, `enable`, `notice`, `notice_url`, `req_sign`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `version`, `deleted`) VALUES (600, 'syncPay', '/unipay/sync/pay', '支付同步接口', b'0', b'1', b'1', NULL, b'1', NULL, 0, '2024-01-03 14:25:48', 0, '2024-01-03 14:25:53', 0, b'0');
-
-INSERT INTO `pay_api_config` (`id`, `code`, `api`, `name`, `notice_support`, `enable`, `notice`, `notice_url`, `req_sign`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `version`, `deleted`) VALUES (700, 'syncRefund', '/unipay/sync/refund', '退款同步接口', b'0', b'1', b'1', NULL, b'1', NULL, 0, '2024-01-03 14:25:48', 0, '2024-01-03 14:25:53', 0, b'0');
-
-INSERT INTO `pay_api_config` (`id`, `code`, `api`, `name`, `notice_support`, `enable`, `notice`, `notice_url`, `req_sign`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `version`, `deleted`) VALUES (801, 'syncTransfer', '/unipay/sync/transfer', '转账同步接口', b'0', b'1', b'1', NULL, b'1', NULL, 0, '2024-01-03 14:25:48', 0, '2024-01-03 14:25:53', 0, b'0');
-
-INSERT INTO `pay_api_config` (`id`, `code`, `api`, `name`, `notice_support`, `enable`, `notice`, `notice_url`, `req_sign`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `version`, `deleted`) VALUES (805, 'syncAllocation', '/unipay/sync/allocation', '分账同步接口', b'0', b'1', b'1', NULL, b'1', NULL, 0, '2024-01-03 14:25:48', 0, '2024-01-03 14:25:53', 0, b'0');
-
-INSERT INTO `pay_api_config` (`id`, `code`, `api`, `name`, `notice_support`, `enable`, `notice`, `notice_url`, `req_sign`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `version`, `deleted`) VALUES (1000, 'queryPayOrder', '/unipay/query/payOrder', '支付订单查询接口', b'0', b'1', b'0', NULL, b'1', NULL, 0, '2024-01-03 14:25:48', 0, '2024-01-03 14:25:53', 0, b'0');
-
-INSERT INTO `pay_api_config` (`id`, `code`, `api`, `name`, `notice_support`, `enable`, `notice`, `notice_url`, `req_sign`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `version`, `deleted`) VALUES (1100, 'queryRefundOrder', '/unipay/query/refundOrder', '退款订单查询接口', b'0', b'1', b'0', NULL, b'1', NULL, 0, '2024-01-03 14:25:48', 0, '2024-01-03 14:25:53', 0, b'0');
-
-INSERT INTO `pay_api_config` (`id`, `code`, `api`, `name`, `notice_support`, `enable`, `notice`, `notice_url`, `req_sign`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `version`, `deleted`) VALUES (1150, 'queryAllocationOrder', '/unipay/query/allocationOrder', '分账订单查询接口', b'0', b'1', b'0', NULL, b'1', NULL, 0, '2024-01-03 14:25:48', 0, '2024-01-03 14:25:53', 0, b'0');
-
-INSERT INTO `pay_api_config` (`id`, `code`, `api`, `name`, `notice_support`, `enable`, `notice`, `notice_url`, `req_sign`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `version`, `deleted`) VALUES (1175, 'queryAllocationReceiver', '/unipay/query/allocationReceiver', '分账接收方查询接口', b'0', b'1', b'0', NULL, b'1', NULL, 0, '2024-01-03 14:25:48', 0, '2024-01-03 14:25:53', 0, b'0');
-
-INSERT INTO `pay_api_config` (`id`, `code`, `api`, `name`, `notice_support`, `enable`, `notice`, `notice_url`, `req_sign`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `version`, `deleted`) VALUES (1176, 'queryTransferOrder', '/unipay/query/transferOrder', '转账订单查询接口', b'0', b'1', b'0', NULL, b'1', NULL, 0, '2024-01-03 14:25:48', 0, '2024-01-03 14:25:53', 0, b'0');
-
-INSERT INTO `pay_api_config` (`id`, `code`, `api`, `name`, `notice_support`, `enable`, `notice`, `notice_url`, `req_sign`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `version`, `deleted`) VALUES (1200, 'getWxAuthUrl', '/unipay/assist/getWxAuthUrl', '获取微信OAuth2授权链接', b'0', b'1', b'0', NULL, b'1', NULL, 0, '2024-01-03 14:25:48', 0, '2024-01-03 14:25:53', 0, b'0');
-
-INSERT INTO `pay_api_config` (`id`, `code`, `api`, `name`, `notice_support`, `enable`, `notice`, `notice_url`, `req_sign`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `version`, `deleted`) VALUES (1300, 'getWxAccessToken', '/unipay/assist/getWxAccessToken', '获取微信AccessToken', b'0', b'1', b'0', NULL, b'1', NULL, 0, '2024-01-03 14:25:48', 0, '2024-01-03 14:25:53', 0, b'0');
-
-INSERT INTO `starter_quartz_job` (`id`, `name`, `job_class_name`, `cron`, `parameter`, `state`, `remark`, `creator`, `create_time`, `last_modifier`, `last_modified_time`, `version`, `deleted`) VALUES (1797588916837670912, '支付单超时检测(数据库)', 'cn.daxpay.single.service.task.PayExpiredByDbTimeTask', '0/20 * * * * ? *', '', 0, '检测超时的支付单, 超时后调用同步事件状态修复', 1399985191002447872, '2024-06-03 19:19:30', 1399985191002447872, '2024-06-03 19:22:28', 5, 0);
-
-UPDATE `starter_quartz_job` SET `name` = '支付单超时检测(Redis)', `job_class_name` = 'cn.daxpay.single.service.task.PayExpiredTimeTask', `cron` = '0/5 * * * * ? *', `parameter` = NULL, `state` = 0, `remark` = '检测超时的支付单, 超时后调用同步事件状态修复', `creator` = 1399985191002447872, `create_time` = '2022-07-12 22:00:39', `last_modifier` = 1399985191002447872, `last_modified_time` = '2024-06-03 19:18:14', `version` = 9, `deleted` = 0 WHERE `id` = 1546857070483939328;
-
-SET FOREIGN_KEY_CHECKS = 1;
diff --git a/_config/mysql/2.0.6/2.0.6.update.table.sql b/_config/mysql/2.0.6/2.0.6.update.table.sql
deleted file mode 100644
index 5e232d57fc976ab7236a27f8f86acf90ce87f75f..0000000000000000000000000000000000000000
--- a/_config/mysql/2.0.6/2.0.6.update.table.sql
+++ /dev/null
@@ -1,85 +0,0 @@
-SET FOREIGN_KEY_CHECKS=0;
-
-ALTER TABLE `iam_perm_menu`
-    CHANGE COLUMN `admin` `internal` bit(1) NOT NULL COMMENT '系统菜单' AFTER `hidden_header_content`;
-
-ALTER TABLE `pay_allocation_group` ADD COLUMN `group_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '分账组编码' AFTER `id`;
-
-ALTER TABLE `pay_allocation_group` MODIFY COLUMN `default_group` bit(1) NULL DEFAULT NULL COMMENT '默认分账组' AFTER `channel`;
-
-ALTER TABLE `pay_allocation_order` MODIFY COLUMN `title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '支付订单标题' AFTER `out_order_no`;
-
-ALTER TABLE `pay_allocation_order` MODIFY COLUMN `result` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '处理结果' AFTER `status`;
-
-ALTER TABLE `pay_allocation_order_detail` ADD COLUMN `receiver_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '分账接收方编号' AFTER `receiver_id`;
-
-CREATE TABLE `pay_allocation_order_extra`  (
-                                                         `id` bigint(20) NOT NULL COMMENT '主键',
-                                                         `notify_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '异步通知地址',
-                                                         `attach` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商户扩展参数',
-                                                         `req_time` datetime NULL DEFAULT NULL COMMENT '请求时间,传输时间戳',
-                                                         `client_ip` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '支付终端ip',
-                                                         `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-                                                         `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
-                                                         `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修者ID',
-                                                         `last_modified_time` datetime NULL DEFAULT NULL COMMENT '最后修改时间',
-                                                         `version` int(11) NOT NULL COMMENT '乐观锁',
-                                                         `deleted` bit(1) NOT NULL COMMENT '删除标志',
-                                                         PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '分账订单扩展' ROW_FORMAT = Dynamic;
-
-ALTER TABLE `pay_allocation_receiver` ADD COLUMN `receiver_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '分账接收方编号' AFTER `id`;
-
-ALTER TABLE `pay_allocation_receiver` DROP COLUMN `name`;
-
-ALTER TABLE `pay_allocation_receiver` DROP COLUMN `sync`;
-
-ALTER TABLE `pay_allocation_receiver` DROP COLUMN `remark`;
-
-ALTER TABLE `pay_api_config` DROP COLUMN `res_sign`;
-
-ALTER TABLE `pay_api_config` DROP COLUMN `notice_sign`;
-
-ALTER TABLE `pay_api_config` DROP COLUMN `record`;
-
-CREATE TABLE `pay_reconcile_out_trade`  (
-                                                      `id` bigint(20) NOT NULL COMMENT '主键',
-                                                      `reconcile_id` bigint(20) NULL DEFAULT NULL COMMENT '关联对账订单ID',
-                                                      `title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商品名称',
-                                                      `amount` int(11) NULL DEFAULT NULL COMMENT '交易金额',
-                                                      `type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '交易类型',
-                                                      `trade_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '本地交易号',
-                                                      `out_trade_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '通道交易号',
-                                                      `trade_time` datetime NULL DEFAULT NULL COMMENT '交易时间',
-                                                      `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-                                                      `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
-                                                      PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '对账-通道交易明细' ROW_FORMAT = Dynamic;
-
-ALTER TABLE `pay_refund_order` MODIFY COLUMN `out_order_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '通道支付订单号' AFTER `biz_order_no`;
-
-ALTER TABLE `pay_refund_order` MODIFY COLUMN `out_refund_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '通道退款交易号' AFTER `biz_refund_no`;
-
-CREATE TABLE `pay_trade_flow_record`  (
-                                                    `id` bigint(20) NOT NULL COMMENT '主键',
-                                                    `title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '标题',
-                                                    `amount` int(11) NULL DEFAULT NULL COMMENT '金额',
-                                                    `type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '业务类型',
-                                                    `channel` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '支付通道',
-                                                    `trade_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '本地交易号',
-                                                    `biz_trade_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商户交易号',
-                                                    `out_trade_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '通道交易号',
-                                                    `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-                                                    `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
-                                                    PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '资金流水记录' ROW_FORMAT = Dynamic;
-
-ALTER TABLE `pay_union_pay_config` MODIFY COLUMN `single_limit` int(11) NULL DEFAULT NULL COMMENT '支付限额' AFTER `seller`;
-
-ALTER TABLE `pay_wechat_pay_config` MODIFY COLUMN `allocation` bit(1) NULL DEFAULT NULL COMMENT '是否支付分账' AFTER `sandbox`;
-
-ALTER TABLE `pay_wechat_pay_config` MODIFY COLUMN `single_limit` int(11) NULL DEFAULT NULL COMMENT '支付限额' AFTER `pay_ways`;
-
-DROP TABLE IF EXISTS `pay_reconcile_trade_detail`;
-
-SET FOREIGN_KEY_CHECKS=1;
diff --git a/_config/mysql/dax-pay.sql b/_config/mysql/dax-pay.sql
index c47f349b486e96300d0a27cdae708146a2f2d547..c6c5d176a3299b83e4d2c45896224d9065d514d4 100644
--- a/_config/mysql/dax-pay.sql
+++ b/_config/mysql/dax-pay.sql
@@ -4,14 +4,11 @@
  Source Server         : 阿里-mysql5.7
  Source Server Type    : MySQL
  Source Server Version : 50743 (5.7.43-log)
- Source Host           : mysql.dev.bootx.cn:3306
- Source Schema         : dax-pay
 
  Target Server Type    : MySQL
  Target Server Version : 50743 (5.7.43-log)
  File Encoding         : 65001
 
- Date: 03/06/2024 19:37:29
 */
 
 SET NAMES utf8mb4;
@@ -168,9 +165,14 @@ INSERT INTO `base_dict` VALUES (1775122632706805760, 'AllocRelationType', '分
 INSERT INTO `base_dict` VALUES (1777697358802530304, 'AllocOrderStatus', '分账状态', b'1', '支付', '', 1399985191002447872, '2024-04-09 21:57:33', 1399985191002447872, '2024-05-14 16:40:04', 0, 2);
 INSERT INTO `base_dict` VALUES (1780163691808391168, 'AllocDetailResult', '支付分账明细处理结果', b'1', '支付', '', 1399985191002447872, '2024-04-16 17:17:53', 1399985191002447872, '2024-05-14 16:39:57', 0, 3);
 INSERT INTO `base_dict` VALUES (1780165499633106944, 'AllocOrderResult', '支付分账订单处理结果', b'1', '支付', '', 1399985191002447872, '2024-04-16 17:25:04', 1399985191002447872, '2024-05-14 16:39:36', 0, 1);
-INSERT INTO `base_dict` VALUES (1780165929528295424, 'PayOrderAllocationStatus', '支付订单分账状态', b'1', '支付', '', 1399985191002447872, '2024-04-16 17:26:46', 1399985191002447872, '2024-04-16 17:26:46', 0, 0);
+INSERT INTO `base_dict` VALUES (1780165929528295424, 'PayOrderAllocStatus', '支付订单分账状态', b'1', '支付', '', 1399985191002447872, '2024-04-16 17:26:46', 1399985191002447872, '2024-06-08 23:19:51', 0, 1);
 INSERT INTO `base_dict` VALUES (1786399552686465024, 'ReconcileResult', '对账结果', b'1', '支付', '', 1399985191002447872, '2024-05-03 22:16:58', 1399985191002447872, '2024-05-03 22:16:58', 0, 0);
 INSERT INTO `base_dict` VALUES (1797179034383134720, 'TradeFlowRecordType', '交易流水记录类型', b'1', '支付', '', 1399985191002447872, '2024-06-02 16:10:46', 1399985191002447872, '2024-06-02 16:10:46', 0, 0);
+INSERT INTO `base_dict` VALUES (1798321710043836416, 'PayCloseType', '订单关闭类型', b'1', '支付', '', 1399985191002447872, '2024-06-05 19:51:22', 1399985191002447872, '2024-06-05 19:51:22', 0, 0);
+INSERT INTO `base_dict` VALUES (1799457546670387200, 'PayOrderRefundStatus', '退款状态', b'1', '支付', '支付订单的退款状态', 1399985191002447872, '2024-06-08 23:04:46', 1399985191002447872, '2024-06-08 23:04:46', 0, 0);
+INSERT INTO `base_dict` VALUES (1804799534471016448, 'TransferPayeeType', '转账接收方类型', b'1', '支付', '', 1399985191002447872, '2024-06-23 16:51:55', 1399985191002447872, '2024-06-23 16:51:55', 0, 0);
+INSERT INTO `base_dict` VALUES (1804800732808835072, 'TransferStatus', '转账状态', b'1', '支付', '', 1399985191002447872, '2024-06-23 16:56:41', 1399985191002447872, '2024-06-23 16:56:41', 0, 0);
+INSERT INTO `base_dict` VALUES (1804801011272871936, 'TransferType', '转账类型', b'1', '支付', '微信使用', 1399985191002447872, '2024-06-23 16:57:47', 1399985191002447872, '2024-06-23 16:57:47', 0, 0);
 
 -- ----------------------------
 -- Table structure for base_dict_item
@@ -283,8 +285,8 @@ INSERT INTO `base_dict_item` VALUES (1744997501033979904, 1744996913667842048, '
 INSERT INTO `base_dict_item` VALUES (1744997541811003392, 1744996913667842048, 'PayStatus', 'success', '成功', b'1', 2.00, '', 1399985191002447872, '2024-01-10 16:20:09', 1399985191002447872, '2024-01-10 16:20:09', 0, 0);
 INSERT INTO `base_dict_item` VALUES (1744997578863484928, 1744996913667842048, 'PayStatus', 'close', '支付关闭', b'1', 3.00, '', 1399985191002447872, '2024-01-10 16:20:18', 1399985191002447872, '2024-01-10 16:20:18', 0, 0);
 INSERT INTO `base_dict_item` VALUES (1744997619665674240, 1744996913667842048, 'PayStatus', 'fail', '失败', b'1', 7.00, '', 1399985191002447872, '2024-01-10 16:20:28', 1399985191002447872, '2024-01-27 00:52:05', 0, 1);
-INSERT INTO `base_dict_item` VALUES (1744997658735616000, 1744996913667842048, 'PayStatus', 'partial_refund', '部分退款', b'1', 5.00, '', 1399985191002447872, '2024-01-10 16:20:37', 1399985191002447872, '2024-01-10 16:20:44', 0, 1);
-INSERT INTO `base_dict_item` VALUES (1744997746321072128, 1744996913667842048, 'PayStatus', 'refunded', '全部退款', b'1', 6.00, '', 1399985191002447872, '2024-01-10 16:20:58', 1399985191002447872, '2024-01-10 16:20:58', 0, 0);
+INSERT INTO `base_dict_item` VALUES (1744997658735616000, 1744996913667842048, 'PayStatus', 'partial_refund', '部分退款', b'1', 5.00, '', 1399985191002447872, '2024-01-10 16:20:37', 1399985191002447872, '2024-06-08 23:04:15', 1, 1);
+INSERT INTO `base_dict_item` VALUES (1744997746321072128, 1744996913667842048, 'PayStatus', 'refunded', '全部退款', b'1', 6.00, '', 1399985191002447872, '2024-01-10 16:20:58', 1399985191002447872, '2024-06-08 23:04:17', 1, 0);
 INSERT INTO `base_dict_item` VALUES (1745085949967278080, 1744996611615039488, 'AsyncPayChannel', 'ali_pay', '支付宝', b'1', 1.00, '', 1399985191002447872, '2024-01-10 22:11:27', 1399985191002447872, '2024-01-10 22:11:27', 0, 0);
 INSERT INTO `base_dict_item` VALUES (1745085991767711744, 1744996611615039488, 'AsyncPayChannel', 'wechat_pay', '微信支付', b'1', 2.00, '', 1399985191002447872, '2024-01-10 22:11:37', 1399985191002447872, '2024-01-10 22:11:37', 0, 0);
 INSERT INTO `base_dict_item` VALUES (1745086048852189184, 1744996611615039488, 'AsyncPayChannel', 'union_pay', '云闪付', b'1', 3.00, '', 1399985191002447872, '2024-01-10 22:11:51', 1399985191002447872, '2024-01-11 00:13:03', 0, 1);
@@ -323,7 +325,7 @@ INSERT INTO `base_dict_item` VALUES (1749612758531256320, 1749612665392541696, '
 INSERT INTO `base_dict_item` VALUES (1749612797680889856, 1749612665392541696, 'ReconcileTrade', 'revoked', '撤销', b'1', 3.00, '', 1399985191002447872, '2024-01-23 09:59:32', 1399985191002447872, '2024-01-23 09:59:32', 0, 0);
 INSERT INTO `base_dict_item` VALUES (1750924188674404352, 1745748188122554368, 'RefundStatus', 'progress', '退款中', b'1', 0.00, '接口调用成功不代表成功', 1399985191002447872, '2024-01-27 00:50:32', 1399985191002447872, '2024-01-27 00:50:32', 0, 0);
 INSERT INTO `base_dict_item` VALUES (1750924286401687552, 1745748188122554368, 'RefundStatus', 'part_success', '部分成功', b'1', 2.00, '', 1399985191002447872, '2024-01-27 00:50:55', 1399985191002447872, '2024-01-27 00:50:55', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1750924518497693696, 1744996913667842048, 'PayStatus', 'refunding', '退款中', b'1', 4.00, '', 1399985191002447872, '2024-01-27 00:51:50', 1399985191002447872, '2024-01-27 00:52:10', 0, 1);
+INSERT INTO `base_dict_item` VALUES (1750924518497693696, 1744996913667842048, 'PayStatus', 'refunding', '退款中', b'1', 4.00, '', 1399985191002447872, '2024-01-27 00:51:50', 1399985191002447872, '2024-06-08 23:04:13', 1, 1);
 INSERT INTO `base_dict_item` VALUES (1751528739035111424, 1751603996496453632, 'PaymentType', 'pay', '支付', b'1', 1.00, '', 1399985191002447872, '2024-01-28 16:52:48', 1399985191002447872, '2024-01-28 16:52:48', 0, 0);
 INSERT INTO `base_dict_item` VALUES (1751528773260632064, 1751603996496453632, 'PaymentType', 'refund', '退款', b'1', 2.00, '', 1399985191002447872, '2024-01-28 16:52:56', 1399985191002447872, '2024-01-28 16:52:56', 0, 0);
 INSERT INTO `base_dict_item` VALUES (1751613076980039680, 1751613032260370432, 'PayCallbackType', 'pay', '支付回调', b'1', 1.00, '', 1399985191002447872, '2024-01-28 22:27:56', 1399985191002447872, '2024-01-28 22:27:56', 0, 0);
@@ -371,10 +373,10 @@ INSERT INTO `base_dict_item` VALUES (1763588174695878656, 1763588034467713024, '
 INSERT INTO `base_dict_item` VALUES (1766713657021157376, 1766713545981153280, 'UnionPaySignType', 'RSA2', 'RSA2', b'1', 0.00, '', 1399985191002447872, '2024-03-10 14:32:14', 1399985191002447872, '2024-03-10 14:32:14', 0, 0);
 INSERT INTO `base_dict_item` VALUES (1768206502721449984, 1768206399071809536, 'UnionPayRecordType', 'pay', '支付', b'1', 1.00, '', 1399985191002447872, '2024-03-14 17:24:17', 1399985191002447872, '2024-03-14 17:24:17', 0, 0);
 INSERT INTO `base_dict_item` VALUES (1768206547285929984, 1768206399071809536, 'UnionPayRecordType', 'refund', '退款', b'1', 0.00, '', 1399985191002447872, '2024-03-14 17:24:27', 1399985191002447872, '2024-03-14 17:24:27', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1775122126567559168, 1775112798259302400, 'AllocReceiverType', 'wx_personal', '个人', b'1', 1.00, '', 1399985191002447872, '2024-04-02 19:24:30', 1399985191002447872, '2024-04-02 19:24:30', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1775122171861848064, 1775112798259302400, 'AllocReceiverType', 'wx_merchant', '商户', b'1', 2.00, '', 1399985191002447872, '2024-04-02 19:24:41', 1399985191002447872, '2024-04-02 19:24:41', 0, 0);
+INSERT INTO `base_dict_item` VALUES (1775122126567559168, 1775112798259302400, 'AllocReceiverType', 'wx_personal', 'OpenId', b'1', 1.00, '', 1399985191002447872, '2024-04-02 19:24:30', 1399985191002447872, '2024-06-26 19:34:26', 0, 1);
+INSERT INTO `base_dict_item` VALUES (1775122171861848064, 1775112798259302400, 'AllocReceiverType', 'wx_merchant', '商户号', b'1', 2.00, '', 1399985191002447872, '2024-04-02 19:24:41', 1399985191002447872, '2024-06-26 19:34:18', 0, 1);
 INSERT INTO `base_dict_item` VALUES (1775122227956469760, 1775112798259302400, 'AllocReceiverType', 'ali_user_id', '用户ID', b'1', 3.00, '', 1399985191002447872, '2024-04-02 19:24:54', 1399985191002447872, '2024-04-02 19:25:53', 0, 1);
-INSERT INTO `base_dict_item` VALUES (1775122278170677248, 1775112798259302400, 'AllocReceiverType', 'ali_open_id', '登录号', b'1', 4.00, '', 1399985191002447872, '2024-04-02 19:25:06', 1399985191002447872, '2024-04-02 19:25:06', 0, 0);
+INSERT INTO `base_dict_item` VALUES (1775122278170677248, 1775112798259302400, 'AllocReceiverType', 'ali_open_id', 'OpenId', b'1', 4.00, '', 1399985191002447872, '2024-04-02 19:25:06', 1399985191002447872, '2024-06-26 19:34:37', 0, 1);
 INSERT INTO `base_dict_item` VALUES (1775122427802472448, 1775112798259302400, 'AllocReceiverType', 'ali_login_name', '账号', b'1', 5.00, '', 1399985191002447872, '2024-04-02 19:25:42', 1399985191002447872, '2024-04-02 19:25:42', 0, 0);
 INSERT INTO `base_dict_item` VALUES (1775122672623996928, 1775122632706805760, 'AllocRelationType', 'SERVICE_PROVIDER', '服务商', b'1', 1.00, '', 1399985191002447872, '2024-04-02 19:26:40', 1399985191002447872, '2024-04-02 19:26:40', 0, 0);
 INSERT INTO `base_dict_item` VALUES (1775122710884438016, 1775122632706805760, 'AllocRelationType', 'STORE', '门店', b'1', 2.00, '', 1399985191002447872, '2024-04-02 19:26:49', 1399985191002447872, '2024-04-02 19:26:49', 0, 0);
@@ -402,8 +404,8 @@ INSERT INTO `base_dict_item` VALUES (1780165545665593344, 1780165499633106944, '
 INSERT INTO `base_dict_item` VALUES (1780165581623361536, 1780165499633106944, 'AllocOrderResult', 'all_success', '全部成功', b'1', 1.00, '', 1399985191002447872, '2024-04-16 17:25:23', 1399985191002447872, '2024-04-16 17:25:23', 0, 0);
 INSERT INTO `base_dict_item` VALUES (1780165617413357568, 1780165499633106944, 'AllocOrderResult', 'part_success', '部分成功', b'1', 2.00, '', 1399985191002447872, '2024-04-16 17:25:32', 1399985191002447872, '2024-04-16 17:25:32', 0, 0);
 INSERT INTO `base_dict_item` VALUES (1780165653350154240, 1780165499633106944, 'AllocOrderResult', 'all_failed', '全部失败', b'1', 3.00, '', 1399985191002447872, '2024-04-16 17:25:40', 1399985191002447872, '2024-04-16 17:25:40', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1780165986231091200, 1780165929528295424, 'PayOrderAllocationStatus', 'waiting', '待分账', b'1', 1.00, '', 1399985191002447872, '2024-04-16 17:27:00', 1399985191002447872, '2024-04-16 17:27:00', 0, 0);
-INSERT INTO `base_dict_item` VALUES (1780166037149941760, 1780165929528295424, 'PayOrderAllocationStatus', 'allocation', '已分账', b'1', 2.00, '', 1399985191002447872, '2024-04-16 17:27:12', 1399985191002447872, '2024-04-16 17:27:12', 0, 0);
+INSERT INTO `base_dict_item` VALUES (1780165986231091200, 1780165929528295424, 'PayOrderAllocStatus', 'waiting', '待分账', b'1', 1.00, '', 1399985191002447872, '2024-04-16 17:27:00', 1399985191002447872, '2024-04-16 17:27:00', 0, 0);
+INSERT INTO `base_dict_item` VALUES (1780166037149941760, 1780165929528295424, 'PayOrderAllocStatus', 'allocation', '已分账', b'1', 2.00, '', 1399985191002447872, '2024-04-16 17:27:12', 1399985191002447872, '2024-04-16 17:27:12', 0, 0);
 INSERT INTO `base_dict_item` VALUES (1786399594956660736, 1786399552686465024, 'ReconcileResult', 'consistent', '一致', b'1', 0.00, '', 1399985191002447872, '2024-05-03 22:17:08', 1399985191002447872, '2024-05-03 22:17:08', 0, 0);
 INSERT INTO `base_dict_item` VALUES (1786399681275437056, 1786399552686465024, 'ReconcileResult', 'inconsistent', '不一致', b'1', 1.00, '', 1399985191002447872, '2024-05-03 22:17:28', 1399985191002447872, '2024-05-03 22:17:28', 0, 0);
 INSERT INTO `base_dict_item` VALUES (1795722875761156096, 1780163691808391168, 'AllocDetailResult', 'ignore', '忽略分账', b'1', 3.00, '', 1399985191002447872, '2024-05-29 15:44:31', 1399985191002447872, '2024-05-29 15:44:31', 0, 0);
@@ -413,6 +415,24 @@ INSERT INTO `base_dict_item` VALUES (1795730676084465664, 1751603996496453632, '
 INSERT INTO `base_dict_item` VALUES (1797179153430065152, 1797179034383134720, 'TradeFlowRecordType', 'pay', '支付', b'1', 0.00, '', 1399985191002447872, '2024-06-02 16:11:15', 1399985191002447872, '2024-06-02 16:11:15', 0, 0);
 INSERT INTO `base_dict_item` VALUES (1797179194613936128, 1797179034383134720, 'TradeFlowRecordType', 'refund', '退款', b'1', 1.00, '', 1399985191002447872, '2024-06-02 16:11:25', 1399985191002447872, '2024-06-02 16:11:25', 0, 0);
 INSERT INTO `base_dict_item` VALUES (1797524426741882880, 1761434095349624832, 'ClientNoticeType', 'allocation', '分账', b'1', 3.00, '', 1399985191002447872, '2024-06-03 15:03:14', 1399985191002447872, '2024-06-03 15:03:14', 0, 0);
+INSERT INTO `base_dict_item` VALUES (1798321426844430336, 1744996913667842048, 'PayStatus', 'cancel', '撤销', b'1', 4.00, '', 1399985191002447872, '2024-06-05 19:50:14', 1399985191002447872, '2024-06-08 23:04:25', 0, 1);
+INSERT INTO `base_dict_item` VALUES (1798321777865732096, 1798321710043836416, 'PayCloseType', 'close', '订单关闭', b'1', 1.00, '', 1399985191002447872, '2024-06-05 19:51:38', 1399985191002447872, '2024-06-05 19:51:38', 0, 0);
+INSERT INTO `base_dict_item` VALUES (1798321814024826880, 1798321710043836416, 'PayCloseType', 'cancel', '订单撤销', b'1', 2.00, '', 1399985191002447872, '2024-06-05 19:51:46', 1399985191002447872, '2024-06-05 19:51:46', 0, 0);
+INSERT INTO `base_dict_item` VALUES (1799457614165127168, 1799457546670387200, 'PayOrderRefundStatus', 'no_refund', '未退款', b'1', 1.00, '', 1399985191002447872, '2024-06-08 23:05:02', 1399985191002447872, '2024-06-08 23:05:02', 0, 0);
+INSERT INTO `base_dict_item` VALUES (1799457660700930048, 1799457546670387200, 'PayOrderRefundStatus', 'refunding', '退款中', b'1', 2.00, '', 1399985191002447872, '2024-06-08 23:05:13', 1399985191002447872, '2024-06-08 23:05:19', 0, 1);
+INSERT INTO `base_dict_item` VALUES (1799457731333009408, 1799457546670387200, 'PayOrderRefundStatus', 'partial_refund', '部分退款', b'1', 3.00, '', 1399985191002447872, '2024-06-08 23:05:30', 1399985191002447872, '2024-06-08 23:05:30', 0, 0);
+INSERT INTO `base_dict_item` VALUES (1799457774345596928, 1799457546670387200, 'PayOrderRefundStatus', 'refunded', '全部退款', b'1', 4.00, '', 1399985191002447872, '2024-06-08 23:05:40', 1399985191002447872, '2024-06-08 23:05:40', 0, 0);
+INSERT INTO `base_dict_item` VALUES (1804799960331284480, 1804799534471016448, 'TransferPayeeType', 'wx_personal', 'OpenId', b'1', 0.00, '微信 个人OpenId', 1399985191002447872, '2024-06-23 16:53:37', 1399985191002447872, '2024-06-23 16:53:37', 0, 0);
+INSERT INTO `base_dict_item` VALUES (1804800027989602304, 1804799534471016448, 'TransferPayeeType', 'ali_user_id', '支付宝 userId', b'1', 1.00, '支付宝 userId 以2088开头的纯16位数字', 1399985191002447872, '2024-06-23 16:53:53', 1399985191002447872, '2024-06-23 16:53:53', 0, 0);
+INSERT INTO `base_dict_item` VALUES (1804800166745567232, 1804799534471016448, 'TransferPayeeType', 'ali_open_id', 'OpenId', b'1', 2.00, '支付宝 openId', 1399985191002447872, '2024-06-23 16:54:26', 1399985191002447872, '2024-06-23 16:54:26', 0, 0);
+INSERT INTO `base_dict_item` VALUES (1804800247297175552, 1804799534471016448, 'TransferPayeeType', 'ali_login_name', '账号', b'1', 3.00, '支付宝 账号 支持邮箱和手机号格式', 1399985191002447872, '2024-06-23 16:54:45', 1399985191002447872, '2024-06-23 16:54:45', 0, 0);
+INSERT INTO `base_dict_item` VALUES (1804800779944423424, 1804800732808835072, 'TransferStatus', 'transferring', '转账中', b'1', 0.00, '', 1399985191002447872, '2024-06-23 16:56:52', 1399985191002447872, '2024-06-23 16:56:52', 0, 0);
+INSERT INTO `base_dict_item` VALUES (1804800811951157248, 1804800732808835072, 'TransferStatus', 'success', '转账成功', b'1', 1.00, '', 1399985191002447872, '2024-06-23 16:57:00', 1399985191002447872, '2024-06-23 16:57:00', 0, 0);
+INSERT INTO `base_dict_item` VALUES (1804800866774904832, 1804800732808835072, 'TransferStatus', 'fail', '转账失败', b'1', 2.00, '', 1399985191002447872, '2024-06-23 16:57:13', 1399985191002447872, '2024-06-23 16:57:13', 0, 0);
+INSERT INTO `base_dict_item` VALUES (1804802129923108864, 1804801011272871936, 'TransferType', 'user', '转账给用户', b'1', 0.00, '', 1399985191002447872, '2024-06-23 17:02:14', 1399985191002447872, '2024-06-23 17:02:14', 0, 0);
+INSERT INTO `base_dict_item` VALUES (1804802176354054144, 1804801011272871936, 'TransferType', 'employee', '转账给员工', b'1', 1.00, '', 1399985191002447872, '2024-06-23 17:02:25', 1399985191002447872, '2024-06-23 17:02:25', 0, 0);
+INSERT INTO `base_dict_item` VALUES (1804802221438627840, 1804801011272871936, 'TransferType', 'partner', '转账给合作伙', b'1', 2.00, '', 1399985191002447872, '2024-06-23 17:02:36', 1399985191002447872, '2024-06-23 17:02:36', 0, 0);
+INSERT INTO `base_dict_item` VALUES (1804802255336992768, 1804801011272871936, 'TransferType', 'other', '转账给其他对象', b'1', 0.00, '', 1399985191002447872, '2024-06-23 17:02:44', 1399985191002447872, '2024-06-23 17:02:44', 0, 0);
 
 -- ----------------------------
 -- Table structure for base_dynamic_data_source
@@ -855,8 +875,8 @@ INSERT INTO `iam_perm_menu` VALUES (1582253011803262976, 'dax-pay', 158074045063
 INSERT INTO `iam_perm_menu` VALUES (1582253152903843840, 'dax-pay', 1580740450633101312, '系统配置', 'SystemConfig', NULL, b'0', '', b'0', b'0', 'Layout', NULL, '/system/config', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-18 14:12:03', 1414143554414059520, '2022-10-18 14:12:03', 0, 0);
 INSERT INTO `iam_perm_menu` VALUES (1582253306356649984, 'dax-pay', 1580740450633101312, '认证管理', 'Auth', NULL, b'0', '', b'0', b'0', 'Layout', NULL, '/system/auth', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-18 14:12:40', 1414143554414059520, '2022-10-18 14:13:13', 1, 0);
 INSERT INTO `iam_perm_menu` VALUES (1582275875424129024, 'dax-pay', NULL, '系统监控', 'Monitor', NULL, b'0', 'ant-design:monitor-outlined', b'0', b'0', 'Layout', NULL, '/monitor', '', 0, 0, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-18 15:42:21', 1414143554414059520, '2022-10-19 17:29:29', 1, 0);
-INSERT INTO `iam_perm_menu` VALUES (1582275984849326080, 'dax-pay', NULL, '通知管理', 'Notice', NULL, b'0', 'ant-design:message-outlined', b'0', b'0', 'Layout', NULL, '/notice', '', 0, 0, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-18 15:42:47', 1414143554414059520, '2022-10-19 17:30:06', 1, 0);
-INSERT INTO `iam_perm_menu` VALUES (1582276092038959104, 'dax-pay', NULL, '第三方对接', 'Third', NULL, b'0', 'ant-design:api-twotone', b'0', b'0', 'Layout', NULL, '/third', '', 0, 0, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-18 15:43:12', 1414143554414059520, '2022-10-19 17:32:04', 1, 0);
+INSERT INTO `iam_perm_menu` VALUES (1582275984849326080, 'dax-pay', NULL, '通知管理', 'Notice', NULL, b'0', 'ant-design:message-outlined', b'0', b'0', 'Layout', NULL, '/notice', '', 0, 0, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-18 15:42:47', 1399985191002447872, '2024-06-09 15:39:07', 1, 1);
+INSERT INTO `iam_perm_menu` VALUES (1582276092038959104, 'dax-pay', NULL, '第三方对接', 'Third', NULL, b'0', 'ant-design:api-twotone', b'0', b'0', 'Layout', NULL, '/third', '', 0, 0, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-18 15:43:12', 1399985191002447872, '2024-06-09 15:39:58', 1, 1);
 INSERT INTO `iam_perm_menu` VALUES (1582276341792985088, 'dax-pay', NULL, '开发管理', 'Develop', NULL, b'0', 'ant-design:apartment-outlined', b'0', b'0', 'Layout', NULL, '/develop', '', 0, 0, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-18 15:44:12', 1414143554414059520, '2022-10-19 15:24:22', 1, 0);
 INSERT INTO `iam_perm_menu` VALUES (1582277076421136384, 'dax-pay', 1582249924602580992, '角色管理', 'RoleList', NULL, b'0', '', b'0', b'0', '/modules/system/role/RoleList.vue', NULL, '/system/permission/role', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-18 15:47:07', 1414143554414059520, '2022-10-18 15:59:37', 1, 0);
 INSERT INTO `iam_perm_menu` VALUES (1582301940364308480, 'dax-pay', 1582249924602580992, '请求权限', 'PermPathList', NULL, b'0', '', b'0', b'0', '/modules/system/path/PermPathList.vue', NULL, '/system/permission/path', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-18 17:25:55', 1399985191002447872, '2023-11-29 13:57:56', 2, 0);
@@ -867,46 +887,46 @@ INSERT INTO `iam_perm_menu` VALUES (1582303143110340608, 'dax-pay', 158225315290
 INSERT INTO `iam_perm_menu` VALUES (1582303290070364160, 'dax-pay', 1582253152903843840, '定时任务', 'QuartzJobList', NULL, b'0', '', b'0', b'0', '/modules/baseapi/quartz/QuartzJobList.vue', NULL, '/system/config/quartz', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-18 17:31:17', 1414143554414059520, '2023-08-09 15:50:46', 2, 0);
 INSERT INTO `iam_perm_menu` VALUES (1582303447428067328, 'dax-pay', 1582253152903843840, '系统参数', 'SystemParamList', NULL, b'0', '', b'0', b'0', '/modules/system/param/SystemParamList.vue', NULL, '/system/config/param', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-18 17:31:54', 1414143554414059520, '2022-10-19 23:14:16', 1, 0);
 INSERT INTO `iam_perm_menu` VALUES (1582632873244172288, 'dax-pay', 1582276341792985088, '文件管理', 'FileUploadList', NULL, b'0', '', b'0', b'0', '/modules/develop/file/FileUploadList.vue', NULL, '/develop/file', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-19 15:20:56', 1414143554414059520, '2022-10-19 15:20:56', 0, 0);
-INSERT INTO `iam_perm_menu` VALUES (1582633196587261952, 'dax-pay', 1582276341792985088, '代码生成', 'CodeGenList', NULL, b'0', '', b'0', b'0', '/modules/develop/codegen/CodeGenList.vue', NULL, '/develop/codegen', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-19 15:22:13', 1414143554414059520, '2022-10-19 15:23:17', 1, 0);
-INSERT INTO `iam_perm_menu` VALUES (1582633307786649600, 'dax-pay', 1582276341792985088, '动态表单', 'DynamicFormList', NULL, b'0', '', b'0', b'0', '/modules/develop/dynamicform/DynamicFormList.vue', NULL, '/develop/form', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-19 15:22:39', 1414143554414059520, '2022-10-19 15:22:39', 0, 0);
-INSERT INTO `iam_perm_menu` VALUES (1582633620321017856, 'dax-pay', 1582276341792985088, '动态数据源', 'DynamicDataSourceList', NULL, b'0', '', b'0', b'0', '/modules/develop/dynamicsource/DynamicDataSourceList.vue', NULL, '/develop/source', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-19 15:23:54', 1414143554414059520, '2022-10-19 15:23:54', 0, 0);
-INSERT INTO `iam_perm_menu` VALUES (1583074308040925184, 'dax-pay', 1582275875424129024, '接口文档', 'ApiSwagger', NULL, b'0', '', b'0', b'0', '', NULL, 'http://127.0.0.1:9999/doc.html', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-20 20:35:02', 1414143554414059520, '2022-11-23 13:59:09', 2, 0);
+INSERT INTO `iam_perm_menu` VALUES (1582633196587261952, 'dax-pay', 1582276341792985088, '代码生成', 'CodeGenList', NULL, b'0', '', b'0', b'0', '/modules/develop/codegen/CodeGenList.vue', NULL, '/develop/codegen', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-19 15:22:13', 1399985191002447872, '2024-06-09 15:40:38', 1, 1);
+INSERT INTO `iam_perm_menu` VALUES (1582633307786649600, 'dax-pay', 1582276341792985088, '动态表单', 'DynamicFormList', NULL, b'0', '', b'0', b'0', '/modules/develop/dynamicform/DynamicFormList.vue', NULL, '/develop/form', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-19 15:22:39', 1399985191002447872, '2024-06-09 15:40:32', 0, 1);
+INSERT INTO `iam_perm_menu` VALUES (1582633620321017856, 'dax-pay', 1582276341792985088, '动态数据源', 'DynamicDataSourceList', NULL, b'0', '', b'0', b'0', '/modules/develop/dynamicsource/DynamicDataSourceList.vue', NULL, '/develop/source', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-19 15:23:54', 1399985191002447872, '2024-06-09 15:40:28', 0, 1);
+INSERT INTO `iam_perm_menu` VALUES (1583074308040925184, 'dax-pay', 1582275875424129024, '接口文档', 'ApiSwagger', NULL, b'0', '', b'0', b'0', '', NULL, 'http://127.0.0.1:9000/doc.html', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-20 20:35:02', 1399985191002447872, '2024-06-09 15:50:45', 3, 0);
 INSERT INTO `iam_perm_menu` VALUES (1583075229563068416, 'dax-pay', 1582275875424129024, '审计日志', 'AuditLog', NULL, b'0', '', b'0', b'0', 'Layout', NULL, '/monitor/log', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-20 20:38:42', 1414143554414059520, '2022-10-20 20:41:38', 2, 0);
 INSERT INTO `iam_perm_menu` VALUES (1583076217481043968, 'dax-pay', 1583075229563068416, '登录日志', 'LoginLogList', NULL, b'0', '', b'0', b'0', '/modules/monitor/login/LoginLogList.vue', NULL, '/monitor/log/login', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-20 20:42:37', 1414143554414059520, '2022-10-20 20:43:36', 1, 0);
 INSERT INTO `iam_perm_menu` VALUES (1583076424935514112, 'dax-pay', 1583075229563068416, '操作日志', 'OperateLogList', NULL, b'0', '', b'0', b'0', '/modules/monitor/operate/OperateLogList.vue', NULL, '/monitor/log/operate', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-20 20:43:26', 1414143554414059520, '2022-10-20 20:43:26', 0, 0);
 INSERT INTO `iam_perm_menu` VALUES (1583076670881112064, 'dax-pay', 1583075229563068416, '数据版本日志', 'DataVersionLogList', NULL, b'0', '', b'0', b'0', '/modules/monitor/data/DataVersionLogList.vue', NULL, '/monitor/log/data', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-20 20:44:25', 1414143554414059520, '2022-10-20 20:44:25', 0, 0);
-INSERT INTO `iam_perm_menu` VALUES (1583076878956339200, 'dax-pay', 1582275875424129024, 'ELK日志', 'ELK', NULL, b'0', '', b'1', b'0', '', NULL, 'http://elk.dev.bootx.cn:5601/app/discover', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-20 20:45:15', 1414143554414059520, '2023-08-12 19:26:12', 3, 0);
-INSERT INTO `iam_perm_menu` VALUES (1583077015434797056, 'dax-pay', 1582275875424129024, 'PlumeLog日志', 'PlumeLog', NULL, b'0', '', b'0', b'0', '', NULL, 'http://127.0.0.1:9999/plumelog/#/', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-20 20:45:47', 1414143554414059520, '2022-10-20 20:45:47', 0, 0);
+INSERT INTO `iam_perm_menu` VALUES (1583076878956339200, 'dax-pay', 1582275875424129024, 'ELK日志', 'ELK', NULL, b'0', '', b'1', b'0', '', NULL, 'http://elk.dev.bootx.cn:5601/app/discover', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-20 20:45:15', 1399985191002447872, '2024-06-09 15:39:18', 3, 1);
+INSERT INTO `iam_perm_menu` VALUES (1583077015434797056, 'dax-pay', 1582275875424129024, 'PlumeLog日志', 'PlumeLog', NULL, b'0', '', b'0', b'0', '', NULL, 'http://127.0.0.1:9999/plumelog/#/', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-20 20:45:47', 1399985191002447872, '2024-06-09 15:39:24', 0, 1);
 INSERT INTO `iam_perm_menu` VALUES (1583077198772019200, 'dax-pay', 1582275875424129024, '系统信息', 'SystemInfoMonitor', NULL, b'0', '', b'0', b'0', '/modules/monitor/system/SystemInfoMonitor.vue', NULL, '/monitor/sysinfo', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-20 20:46:31', 1414143554414059520, '2022-10-20 20:46:31', 0, 0);
 INSERT INTO `iam_perm_menu` VALUES (1583077360827342848, 'dax-pay', 1582275875424129024, 'Redis监控', 'RedisInfoMonitor', NULL, b'0', '', b'0', b'0', '/modules/monitor/redis/RedisInfoMonitor.vue', NULL, '/monitor/redis', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-20 20:47:10', 1414143554414059520, '2022-10-20 20:47:10', 0, 0);
-INSERT INTO `iam_perm_menu` VALUES (1584378294652051456, 'dax-pay', 1582275984849326080, '邮件配置', 'MailConfigList', NULL, b'0', '', b'0', b'0', '/modules/notice/mail/MailConfigList.vue', NULL, '/notice/notice', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-24 10:56:36', 1414143554414059520, '2022-10-24 16:14:34', 1, 0);
-INSERT INTO `iam_perm_menu` VALUES (1584378497824137216, 'dax-pay', 1582275984849326080, '消息模板', 'MessageTemplateList', NULL, b'0', '', b'0', b'0', '/modules/notice/template/MessageTemplateList.vue', NULL, '/notice/template', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-24 10:57:25', 1414143554414059520, '2022-10-25 22:14:14', 2, 0);
-INSERT INTO `iam_perm_menu` VALUES (1584378671266996224, 'dax-pay', 1582275984849326080, '站内信', 'SiteMessageList', NULL, b'0', '', b'0', b'0', '/modules/notice/site/sender/SiteMessageList.vue', NULL, '/notice/siteMessage', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-24 10:58:06', 1414143554414059520, '2022-10-24 10:58:06', 0, 0);
-INSERT INTO `iam_perm_menu` VALUES (1584379602188574720, 'dax-pay', 1582276092038959104, '微信', 'WeChat', NULL, b'0', '', b'0', b'0', 'Layout', NULL, '/third/wechat', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-24 11:01:48', 1414143554414059520, '2022-10-24 11:01:48', 0, 0);
-INSERT INTO `iam_perm_menu` VALUES (1584379704122744832, 'dax-pay', 1582276092038959104, '企业微信', 'WeCom', NULL, b'0', '', b'0', b'0', 'Layout', NULL, '/third/wecom', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-24 11:02:12', 1414143554414059520, '2022-10-24 11:02:12', 0, 0);
-INSERT INTO `iam_perm_menu` VALUES (1584380087805091840, 'dax-pay', 1582276092038959104, '钉钉', 'DingTalk', NULL, b'0', '', b'0', b'0', 'Layout', NULL, '/third/dingtalk', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-24 11:03:44', 1414143554414059520, '2022-10-24 11:03:44', 0, 0);
-INSERT INTO `iam_perm_menu` VALUES (1584380527829524480, 'dax-pay', 1584379602188574720, '消息模板', 'WechatTemplateList', NULL, b'0', '', b'0', b'0', '/modules/third/wechat/template/WechatTemplateList.vue', NULL, '/third/wechat/template', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-24 11:05:29', 1414143554414059520, '2022-10-26 15:58:56', 1, 0);
-INSERT INTO `iam_perm_menu` VALUES (1584380679478779904, 'dax-pay', 1584379602188574720, '自定义菜单', 'WechatMenuList', NULL, b'0', '', b'0', b'0', '/modules/third/wechat/menu/WechatMenuList.vue', NULL, '/third/wechat/menu', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-24 11:06:05', 1414143554414059520, '2022-10-27 10:15:24', 1, 0);
-INSERT INTO `iam_perm_menu` VALUES (1584380824308097024, 'dax-pay', 1584379602188574720, '素材管理', 'WechatMediaList', NULL, b'0', '', b'0', b'0', '/modules/third/wechat/media/WechatMediaList.vue', NULL, '/third/wechat/media', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-24 11:06:40', 1414143554414059520, '2022-10-27 16:38:47', 1, 0);
-INSERT INTO `iam_perm_menu` VALUES (1584381134950834176, 'dax-pay', 1584379704122744832, '企微机器人', 'WeComRobotConfigList', NULL, b'0', '', b'0', b'0', '/modules/third/wecom/robot/WecomRobotConfigList.vue', NULL, '/third/wecom/robot', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-24 11:07:54', 1414143554414059520, '2022-11-12 20:58:25', 3, 0);
-INSERT INTO `iam_perm_menu` VALUES (1584381322184564736, 'dax-pay', 1584380087805091840, '钉钉机器人', 'DingRobotConfigList', NULL, b'0', '', b'0', b'0', '/modules/third/dingtalk/robot/DingRobotConfigList.vue', NULL, '/third/dingTalk/robot', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-24 11:08:38', 1414143554414059520, '2022-11-12 20:58:37', 6, 0);
+INSERT INTO `iam_perm_menu` VALUES (1584378294652051456, 'dax-pay', 1582275984849326080, '邮件配置', 'MailConfigList', NULL, b'0', '', b'0', b'0', '/modules/notice/mail/MailConfigList.vue', NULL, '/notice/notice', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-24 10:56:36', 1399985191002447872, '2024-06-09 15:39:05', 1, 1);
+INSERT INTO `iam_perm_menu` VALUES (1584378497824137216, 'dax-pay', 1582275984849326080, '消息模板', 'MessageTemplateList', NULL, b'0', '', b'0', b'0', '/modules/notice/template/MessageTemplateList.vue', NULL, '/notice/template', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-24 10:57:25', 1399985191002447872, '2024-06-09 15:39:03', 2, 1);
+INSERT INTO `iam_perm_menu` VALUES (1584378671266996224, 'dax-pay', 1582275984849326080, '站内信', 'SiteMessageList', NULL, b'0', '', b'0', b'0', '/modules/notice/site/sender/SiteMessageList.vue', NULL, '/notice/siteMessage', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-24 10:58:06', 1399985191002447872, '2024-06-09 15:39:00', 0, 1);
+INSERT INTO `iam_perm_menu` VALUES (1584379602188574720, 'dax-pay', 1582276092038959104, '微信', 'WeChat', NULL, b'0', '', b'0', b'0', 'Layout', NULL, '/third/wechat', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-24 11:01:48', 1399985191002447872, '2024-06-09 15:39:55', 0, 1);
+INSERT INTO `iam_perm_menu` VALUES (1584379704122744832, 'dax-pay', 1582276092038959104, '企业微信', 'WeCom', NULL, b'0', '', b'0', b'0', 'Layout', NULL, '/third/wecom', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-24 11:02:12', 1399985191002447872, '2024-06-09 15:39:46', 0, 1);
+INSERT INTO `iam_perm_menu` VALUES (1584380087805091840, 'dax-pay', 1582276092038959104, '钉钉', 'DingTalk', NULL, b'0', '', b'0', b'0', 'Layout', NULL, '/third/dingtalk', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-24 11:03:44', 1399985191002447872, '2024-06-09 15:39:40', 0, 1);
+INSERT INTO `iam_perm_menu` VALUES (1584380527829524480, 'dax-pay', 1584379602188574720, '消息模板', 'WechatTemplateList', NULL, b'0', '', b'0', b'0', '/modules/third/wechat/template/WechatTemplateList.vue', NULL, '/third/wechat/template', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-24 11:05:29', 1399985191002447872, '2024-06-09 15:39:53', 1, 1);
+INSERT INTO `iam_perm_menu` VALUES (1584380679478779904, 'dax-pay', 1584379602188574720, '自定义菜单', 'WechatMenuList', NULL, b'0', '', b'0', b'0', '/modules/third/wechat/menu/WechatMenuList.vue', NULL, '/third/wechat/menu', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-24 11:06:05', 1399985191002447872, '2024-06-09 15:39:51', 1, 1);
+INSERT INTO `iam_perm_menu` VALUES (1584380824308097024, 'dax-pay', 1584379602188574720, '素材管理', 'WechatMediaList', NULL, b'0', '', b'0', b'0', '/modules/third/wechat/media/WechatMediaList.vue', NULL, '/third/wechat/media', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-24 11:06:40', 1399985191002447872, '2024-06-09 15:39:49', 1, 1);
+INSERT INTO `iam_perm_menu` VALUES (1584381134950834176, 'dax-pay', 1584379704122744832, '企微机器人', 'WeComRobotConfigList', NULL, b'0', '', b'0', b'0', '/modules/third/wecom/robot/WecomRobotConfigList.vue', NULL, '/third/wecom/robot', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-24 11:07:54', 1399985191002447872, '2024-06-09 15:39:45', 3, 1);
+INSERT INTO `iam_perm_menu` VALUES (1584381322184564736, 'dax-pay', 1584380087805091840, '钉钉机器人', 'DingRobotConfigList', NULL, b'0', '', b'0', b'0', '/modules/third/dingtalk/robot/DingRobotConfigList.vue', NULL, '/third/dingTalk/robot', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-10-24 11:08:38', 1399985191002447872, '2024-06-09 15:39:38', 6, 1);
 INSERT INTO `iam_perm_menu` VALUES (1599337250200440832, 'dax-pay', NULL, '关于', '', NULL, b'0', 'ant-design:info-circle-outlined', b'0', b'0', '', NULL, '/about/index', '', 99, 0, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2022-12-04 17:38:09', 1399985191002447872, '2024-01-14 23:09:56', 6, 0);
 INSERT INTO `iam_perm_menu` VALUES (1623494586215579648, 'dax-pay', 1552207982510706688, '行政区划', 'ChinaRegion', NULL, b'0', '', b'1', b'0', 'develop/region/ChinaRegionList', NULL, '/develop/region', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1399985191002447872, '2023-02-09 09:30:47', 1399985191002447872, '2023-02-09 17:50:05', 1, 0);
 INSERT INTO `iam_perm_menu` VALUES (1629039360928075776, 'dax-pay', 1582276341792985088, '可视化大屏', 'ProjectInfoList', NULL, b'0', '', b'0', b'0', '/modules/develop/report/ProjectInfoList', NULL, '/develop/report', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2023-02-24 16:43:44', 1399985191002447872, '2024-05-09 19:26:57', 1, 1);
 INSERT INTO `iam_perm_menu` VALUES (1631946120891707392, 'dax-pay', 1552207982510706688, '可视化大屏', 'ProjectInfoList', NULL, b'0', '', b'0', b'0', 'develop/report/ProjectInfoList', NULL, '/develop/report', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1399985191002447872, '2023-03-04 17:14:10', 1399985191002447872, '2023-03-04 17:14:10', 0, 0);
 INSERT INTO `iam_perm_menu` VALUES (1635274568758435840, 'dax-pay', 1582276341792985088, '数据集管理', 'DataResultSqlList', NULL, b'0', '', b'0', b'0', '/modules/develop/dataresult/DataResultSqlList', NULL, '/develop/dataresult', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2023-03-13 21:40:14', 1399985191002447872, '2024-05-09 19:27:24', 3, 1);
-INSERT INTO `iam_perm_menu` VALUES (1687369862646558720, 'dax-pay', 1582275984849326080, '短信管理', 'Sms', NULL, b'0', '', b'0', b'0', 'Layout', NULL, '/notice/sms', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2023-08-04 15:48:20', 1414143554414059520, '2023-08-04 15:48:32', 1, 0);
-INSERT INTO `iam_perm_menu` VALUES (1687370142234669056, 'dax-pay', 1687369862646558720, '短信配置', 'SmsChannelConfigList', NULL, b'0', '', b'0', b'0', '/modules/notice/sms/config/SmsChannelConfigList', NULL, '/notice/sms/config', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2023-08-04 15:49:26', 1414143554414059520, '2023-08-04 15:49:26', 0, 0);
-INSERT INTO `iam_perm_menu` VALUES (1687370277496778752, 'dax-pay', 1687369862646558720, '短信模板', 'SmsTemplateList', NULL, b'0', '', b'0', b'0', '/modules/notice/sms/template/SmsTemplateList', NULL, '/notice/sms/template', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2023-08-04 15:49:59', 1414143554414059520, '2023-08-04 15:50:38', 1, 0);
-INSERT INTO `iam_perm_menu` VALUES (1689181991598997504, 'dax-pay', 1582253152903843840, '敏感词管理', 'ChinaWord', NULL, b'0', '', b'0', b'0', '/modules/baseapi/chianword/ChinaWordList.vue', NULL, '/system/config/chinaword', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2023-08-09 15:49:05', 1414143554414059520, '2023-08-09 15:49:05', 0, 0);
-INSERT INTO `iam_perm_menu` VALUES (1690324070514782208, 'dax-pay', 1582276341792985088, '通用模板', 'GeneralTemplateList', NULL, b'0', '', b'0', b'0', '/modules/develop/template/GeneralTemplateList', NULL, '/develop/template', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2023-08-12 19:27:18', 1414143554414059520, '2023-08-12 19:31:26', 3, 0);
+INSERT INTO `iam_perm_menu` VALUES (1687369862646558720, 'dax-pay', 1582275984849326080, '短信管理', 'Sms', NULL, b'0', '', b'0', b'0', 'Layout', NULL, '/notice/sms', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2023-08-04 15:48:20', 1399985191002447872, '2024-06-09 15:38:56', 1, 1);
+INSERT INTO `iam_perm_menu` VALUES (1687370142234669056, 'dax-pay', 1687369862646558720, '短信配置', 'SmsChannelConfigList', NULL, b'0', '', b'0', b'0', '/modules/notice/sms/config/SmsChannelConfigList', NULL, '/notice/sms/config', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2023-08-04 15:49:26', 1399985191002447872, '2024-06-09 15:38:55', 0, 1);
+INSERT INTO `iam_perm_menu` VALUES (1687370277496778752, 'dax-pay', 1687369862646558720, '短信模板', 'SmsTemplateList', NULL, b'0', '', b'0', b'0', '/modules/notice/sms/template/SmsTemplateList', NULL, '/notice/sms/template', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2023-08-04 15:49:59', 1399985191002447872, '2024-06-09 15:38:51', 1, 1);
+INSERT INTO `iam_perm_menu` VALUES (1689181991598997504, 'dax-pay', 1582253152903843840, '敏感词管理', 'ChinaWord', NULL, b'0', '', b'0', b'0', '/modules/baseapi/chianword/ChinaWordList.vue', NULL, '/system/config/chinaword', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2023-08-09 15:49:05', 1399985191002447872, '2024-06-05 19:49:10', 0, 1);
+INSERT INTO `iam_perm_menu` VALUES (1690324070514782208, 'dax-pay', 1582276341792985088, '通用模板', 'GeneralTemplateList', NULL, b'0', '', b'0', b'0', '/modules/develop/template/GeneralTemplateList', NULL, '/develop/template', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2023-08-12 19:27:18', 1399985191002447872, '2024-06-09 15:40:26', 3, 1);
 INSERT INTO `iam_perm_menu` VALUES (1703665090038800384, 'dax-pay', 1582276341792985088, '在线SQL', 'SqlQueryInfo', NULL, b'0', '', b'0', b'0', '/modules/develop/query/SqlQueryInfo', NULL, '/develop/sqlquery', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1414143554414059520, '2023-09-18 14:59:45', 1399985191002447872, '2024-05-09 19:27:29', 0, 1);
 INSERT INTO `iam_perm_menu` VALUES (1713931084759293952, 'dax-pay', 1582253306356649984, '密码安全', 'PassowrdSecurity', NULL, b'0', '', b'0', b'0', '/modules/system/security/password/PasswordSecurityConfig.vue', NULL, '/system/config/passowrd', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1399985191002447872, '2023-10-16 22:53:09', 1399985191002447872, '2023-10-16 22:58:59', 2, 0);
 INSERT INTO `iam_perm_menu` VALUES (1733829906427682816, 'dax-pay', 1582275875424129024, '在线用户', 'OnlineUserList', NULL, b'0', '', b'0', b'0', '/modules/monitor/user/online/OnlineUserList', NULL, '/monitor/user/online', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1399985191002447872, '2023-12-10 20:43:57', 1399985191002447872, '2023-12-10 20:43:57', 0, 0);
 INSERT INTO `iam_perm_menu` VALUES (1744271715476684800, 'dax-pay', NULL, '支付配置', 'PayConfig', NULL, b'0', 'ant-design:setting-filled', b'0', b'0', 'Layout', NULL, '/pay/config', '', 0, 0, NULL, b'1', b'0', b'0', b'0', NULL, 1399985191002447872, '2024-01-08 16:15:59', 1399985191002447872, '2024-01-09 15:38:06', 1, 0);
-INSERT INTO `iam_perm_menu` VALUES (1744276101384880128, 'dax-pay', 1744271715476684800, '支付通道', 'PayChannelConfigList', NULL, b'0', '', b'0', b'0', 'payment/system/channel/PayChannelConfigList', NULL, '/pay/config/channel', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1399985191002447872, '2024-01-08 16:33:24', 1399985191002447872, '2024-01-18 14:49:15', 3, 0);
-INSERT INTO `iam_perm_menu` VALUES (1744372631231995904, 'dax-pay', 1744271715476684800, '支付方式', 'PayMethodInfoList', NULL, b'0', '', b'0', b'0', 'payment/system/method/PayMethodInfoList', NULL, '/pay/config/method', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1399985191002447872, '2024-01-08 22:56:59', 1399985191002447872, '2024-05-01 22:53:13', 3, 0);
-INSERT INTO `iam_perm_menu` VALUES (1744624886658318336, 'dax-pay', 1744271715476684800, '支付接口', 'PayApiConfigList', NULL, b'0', '', b'0', b'0', 'payment/system/api/PayApiConfigList', NULL, '/pay/config/api', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1399985191002447872, '2024-01-09 15:39:21', 1399985191002447872, '2024-01-10 11:52:20', 2, 0);
+INSERT INTO `iam_perm_menu` VALUES (1744276101384880128, 'dax-pay', 1800350813995446272, '支付通道', 'PayChannelConfigList', NULL, b'0', '', b'0', b'0', 'payment/system/channel/PayChannelConfigList', NULL, '/pay/config/channel', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1399985191002447872, '2024-01-08 16:33:24', 1399985191002447872, '2024-06-11 10:15:06', 4, 0);
+INSERT INTO `iam_perm_menu` VALUES (1744372631231995904, 'dax-pay', 1800350813995446272, '支付方式', 'PayMethodInfoList', NULL, b'0', '', b'0', b'0', 'payment/system/method/PayMethodInfoList', NULL, '/pay/config/method', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1399985191002447872, '2024-01-08 22:56:59', 1399985191002447872, '2024-06-11 10:15:17', 4, 0);
+INSERT INTO `iam_perm_menu` VALUES (1744624886658318336, 'dax-pay', 1800350813995446272, '支付接口', 'PayApiConfigList', NULL, b'0', '', b'0', b'0', 'payment/system/api/PayApiConfigList', NULL, '/pay/config/api', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1399985191002447872, '2024-01-09 15:39:21', 1399985191002447872, '2024-06-21 17:46:36', 3, 0);
 INSERT INTO `iam_perm_menu` VALUES (1744642856348520448, 'dax-pay', NULL, '订单管理', 'PayOrder', NULL, b'0', 'ant-design:wallet-outlined', b'0', b'0', 'Layout', NULL, '/pay/order', '', 0, 0, NULL, b'1', b'0', b'0', b'0', NULL, 1399985191002447872, '2024-01-09 16:50:46', 1399985191002447872, '2024-01-09 16:53:35', 3, 0);
 INSERT INTO `iam_perm_menu` VALUES (1744643265142165504, 'dax-pay', NULL, '数据记录', 'PayRecord', NULL, b'0', 'ant-design:profile-outlined', b'0', b'0', 'Layout', NULL, '/pay/record', '', 0, 0, NULL, b'1', b'0', b'0', b'0', NULL, 1399985191002447872, '2024-01-09 16:52:23', 1399985191002447872, '2024-01-09 16:53:50', 1, 0);
 INSERT INTO `iam_perm_menu` VALUES (1744930046228017152, 'dax-pay', 1744643265142165504, '回调记录', 'PayCallbackRecordList', NULL, b'0', '', b'0', b'0', 'payment/record/callback/PayCallbackRecordList', NULL, '/pay/record/callback', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1399985191002447872, '2024-01-10 11:51:57', 1399985191002447872, '2024-05-01 23:15:23', 10, 0);
@@ -916,7 +936,7 @@ INSERT INTO `iam_perm_menu` VALUES (1745143528663781376, 'dax-pay', 174464326514
 INSERT INTO `iam_perm_menu` VALUES (1745457623493496832, 'dax-pay', 1744642856348520448, '支付订单', 'PayOrderList', NULL, b'0', '', b'0', b'0', 'payment/order/pay/PayOrderList', NULL, '/pay/order/pay', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1399985191002447872, '2024-01-11 22:48:21', 1399985191002447872, '2024-01-11 22:48:21', 0, 0);
 INSERT INTO `iam_perm_menu` VALUES (1745457746529210368, 'dax-pay', 1744642856348520448, '退款订单', 'RefundOrderList', NULL, b'0', '', b'0', b'0', 'payment/order/refund/RefundOrderList.vue', NULL, '/pay/order/refund', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1399985191002447872, '2024-01-11 22:48:50', 1399985191002447872, '2024-01-21 22:50:29', 2, 0);
 INSERT INTO `iam_perm_menu` VALUES (1745822093382230016, 'dax-pay', 1744271715476684800, '通道配置', 'ChannelPayConfigList', NULL, b'0', '', b'0', b'0', 'payment/channel/config/ChannelPayConfigList', NULL, '/pay/config/channelpay', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1399985191002447872, '2024-01-12 22:56:38', 1399985191002447872, '2024-02-06 14:32:08', 2, 0);
-INSERT INTO `iam_perm_menu` VALUES (1746194891925561344, 'dax-pay', 1744271715476684800, '平台配置', 'PayPlatformConfig', NULL, b'0', '', b'0', b'0', 'payment/system/platform/PayPlatformConfig', NULL, '/pay/config/platform', '', -1, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1399985191002447872, '2024-01-13 23:38:00', 1399985191002447872, '2024-01-13 23:38:00', 0, 0);
+INSERT INTO `iam_perm_menu` VALUES (1746194891925561344, 'dax-pay', 1744271715476684800, '平台配置', 'PayPlatformConfig', NULL, b'0', '', b'0', b'0', 'payment/system/platform/PayPlatformConfig', NULL, '/pay/config/platform', '', -1, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1399985191002447872, '2024-01-13 23:38:00', 1399985191002447872, '2024-06-11 10:15:00', 2, 0);
 INSERT INTO `iam_perm_menu` VALUES (1749262518385082368, 'dax-pay', 1786808188825194496, '对账单', 'ReconcileOrderList', NULL, b'0', '', b'0', b'0', 'payment/reconcile/order/ReconcileOrderList.vue', NULL, '/pay/reconcile/order', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1399985191002447872, '2024-01-22 10:47:39', 1399985191002447872, '2024-05-05 17:09:14', 9, 0);
 INSERT INTO `iam_perm_menu` VALUES (1759768820429352960, 'dax-pay', NULL, '演示模块', '', NULL, b'0', 'ant-design:crown-outlined', b'0', b'0', 'Layout', NULL, '/pay/demo', '', 9, 0, NULL, b'1', b'0', b'0', b'0', NULL, 1399985191002447872, '2024-02-20 10:35:56', 1399985191002447872, '2024-02-20 10:35:56', 0, 0);
 INSERT INTO `iam_perm_menu` VALUES (1759769092698402816, 'dax-pay', 1759768820429352960, '收银台演示', '', NULL, b'0', '', b'0', b'0', '', NULL, 'outside:///cashier', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1399985191002447872, '2024-02-20 10:37:01', 1399985191002447872, '2024-02-20 10:37:01', 0, 0);
@@ -930,6 +950,10 @@ INSERT INTO `iam_perm_menu` VALUES (1786808188825194496, 'dax-pay', NULL, '对
 INSERT INTO `iam_perm_menu` VALUES (1786810890951020544, 'dax-pay', 1786808188825194496, '对账差异', 'ReconcileDiffList', NULL, b'0', '', b'0', b'0', 'payment/reconcile/diff/ReconcileDiffList.vue', NULL, '/pay/reconcile/diff', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1399985191002447872, '2024-05-05 01:31:28', 1399985191002447872, '2024-05-05 17:08:38', 1, 0);
 INSERT INTO `iam_perm_menu` VALUES (1786811341285052416, 'dax-pay', 1786808188825194496, '外部交易明细', 'ReconcileDetailList', NULL, b'0', '', b'1', b'0', 'payment/reconcile/detail/ReconcileDetailList.vue', NULL, '/pay/reconcile/detail', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1399985191002447872, '2024-05-05 01:33:16', 1399985191002447872, '2024-05-05 20:24:24', 2, 0);
 INSERT INTO `iam_perm_menu` VALUES (1797178029448867840, 'dax-pay', 1744643265142165504, '交易流水', 'TradeFlowRecordList', NULL, b'0', '', b'0', b'0', 'payment/record/flow/TradeFlowRecordList', NULL, '/pay/record/flow', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1399985191002447872, '2024-06-02 16:06:47', 1399985191002447872, '2024-06-02 16:06:47', 0, 0);
+INSERT INTO `iam_perm_menu` VALUES (1800350813995446272, 'dax-pay', 1744271715476684800, '基础数据', '', NULL, b'0', '', b'0', b'0', 'Layout', NULL, '/pay/config/base', '', -2, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1399985191002447872, '2024-06-11 10:14:18', 1399985191002447872, '2024-06-11 10:14:45', 2, 0);
+INSERT INTO `iam_perm_menu` VALUES (1804041752999993344, 'dax-pay', 1759768820429352960, 'OpenId获取', 'OpenIdDemo', NULL, b'0', '', b'0', b'0', 'demo/openid/OpenIdDemo.vue', NULL, '/pay/demo/openId', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1399985191002447872, '2024-06-21 14:40:46', 1399985191002447872, '2024-06-21 14:40:46', 0, 0);
+INSERT INTO `iam_perm_menu` VALUES (1804799253230350336, 'dax-pay', 1744642856348520448, '转账订单', 'TransferOrderList', NULL, b'0', '', b'0', b'0', 'payment/order/transfer/TransferOrderList', NULL, '/pay/order/transfer', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1399985191002447872, '2024-06-23 16:50:48', 1399985191002447872, '2024-06-23 16:50:48', 0, 0);
+INSERT INTO `iam_perm_menu` VALUES (1805115884940374016, 'dax-pay', 1759768820429352960, '转账演示', 'TransferDemo', NULL, b'0', '', b'0', b'0', 'demo/transfer/TransferDemo.vue', NULL, '/pay/demo/transfer', '', 0, 1, NULL, b'1', b'0', b'0', b'0', NULL, 1399985191002447872, '2024-06-24 13:48:59', 1399985191002447872, '2024-06-24 13:48:59', 0, 0);
 
 -- ----------------------------
 -- Table structure for iam_perm_path
@@ -968,7 +992,7 @@ INSERT INTO `iam_perm_path` VALUES (1789978117562556423, 'AllocationGroupControl
 INSERT INTO `iam_perm_path` VALUES (1789978117562556424, 'DataRoleController#findUsersByDataRoleId', '获取关联的用户列表', 'GET', '/data/role/findUsersByDataRoleId', '数据角色配置', b'1', b'1', '数据角色配置 获取关联的用户列表', 1399985191002447872, '2024-05-13 19:16:54.069000', 1399985191002447872, '2024-05-13 19:16:54.069000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117562556425, 'AggregateController#getInfo', '获取聚合支付信息', 'GET', '/demo/aggregate/getInfo', '聚合支付', b'1', b'1', '聚合支付 获取聚合支付信息', 1399985191002447872, '2024-05-13 19:16:54.069000', 1399985191002447872, '2024-05-13 19:16:54.069000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117562556426, 'UniQueryController#queryRefundOrder', '退款订单查询接口', 'POST', '/uni/query/refundOrder', '统一查询接口', b'1', b'1', '统一查询接口 退款订单查询接口', 1399985191002447872, '2024-05-13 19:16:54.069000', 1399985191002447872, '2024-06-03 14:53:25.723000', b'1', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117562556427, 'SmsTemplateController#update', '修改', 'POST', '/sms/template/update', '短信模板配置', b'1', b'1', '短信模板配置 修改', 1399985191002447872, '2024-05-13 19:16:54.069000', 1399985191002447872, '2024-05-13 19:16:54.069000', b'0', 0);
+INSERT INTO `iam_perm_path` VALUES (1789978117562556427, 'SmsTemplateController#update', '修改', 'POST', '/sms/template/update', '短信模板配置', b'1', b'1', '短信模板配置 修改', 1399985191002447872, '2024-05-13 19:16:54.069000', 1399985191002447872, '2024-06-26 20:32:23.921000', b'1', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117562556428, 'AllocationReceiverController#findById', '查询详情', 'GET', '/allocation/receiver/findById', '分账接收方控制器', b'1', b'1', '分账接收方控制器 查询详情', 1399985191002447872, '2024-05-13 19:16:54.069000', 1399985191002447872, '2024-05-13 19:16:54.069000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117562556429, 'PayMethodInfoController#update', '更新', 'POST', '/pay/method/info/update', '支付方式管理', b'1', b'1', '支付方式管理 更新', 1399985191002447872, '2024-05-13 19:16:54.069000', 1399985191002447872, '2024-05-13 19:16:54.069000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117562556430, 'CashierController#getUniCashierUrl', '获取手机收银台链接', 'GET', '/demo/cashier/getUniCashierUrl', '结算台演示', b'1', b'1', '结算台演示 获取手机收银台链接', 1399985191002447872, '2024-05-13 19:16:54.069000', 1399985191002447872, '2024-05-13 19:16:54.069000', b'0', 0);
@@ -977,35 +1001,35 @@ INSERT INTO `iam_perm_path` VALUES (1789978117562556432, 'OnlineUserController#p
 INSERT INTO `iam_perm_path` VALUES (1789978117562556433, 'UserInfoController#existsPhone', '手机号是否被使用(不包含自己)', 'GET', '/user/existsPhoneNotId', '用户管理', b'1', b'1', '用户管理 手机号是否被使用(不包含自己)', 1399985191002447872, '2024-05-13 19:16:54.069000', 1399985191002447872, '2024-05-13 19:16:54.069000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117562556434, 'DataRoleController#add', '添加', 'POST', '/data/role/add', '数据角色配置', b'1', b'1', '数据角色配置 添加', 1399985191002447872, '2024-05-13 19:16:54.069000', 1399985191002447872, '2024-05-13 19:16:54.069000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117562556435, 'PlatformConfigController#getConfig', '获取平台配置', 'GET', '/platform/config/getConfig', '支付平台配置控制器', b'1', b'1', '支付平台配置控制器 获取平台配置', 1399985191002447872, '2024-05-13 19:16:54.069000', 1399985191002447872, '2024-05-13 19:16:54.069000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117562556436, 'SmsTemplateController#delete', '删除', 'DELETE', '/sms/template/delete', '短信模板配置', b'1', b'1', '短信模板配置 删除', 1399985191002447872, '2024-05-13 19:16:54.069000', 1399985191002447872, '2024-05-13 19:16:54.069000', b'0', 0);
+INSERT INTO `iam_perm_path` VALUES (1789978117562556436, 'SmsTemplateController#delete', '删除', 'DELETE', '/sms/template/delete', '短信模板配置', b'1', b'1', '短信模板配置 删除', 1399985191002447872, '2024-05-13 19:16:54.069000', 1399985191002447872, '2024-06-26 20:32:23.921000', b'1', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117562556437, 'DataRoleController#findById', '获取', 'GET', '/data/role/findById', '数据角色配置', b'1', b'1', '数据角色配置 获取', 1399985191002447872, '2024-05-13 19:16:54.069000', 1399985191002447872, '2024-05-13 19:16:54.069000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117562556438, 'DingRobotConfigController#delete', '删除', 'DELETE', '/ding/robot/config/delete', '钉钉机器人配置', b'1', b'1', '钉钉机器人配置 删除', 1399985191002447872, '2024-05-13 19:16:54.069000', 1399985191002447872, '2024-05-13 19:16:54.069000', b'0', 0);
+INSERT INTO `iam_perm_path` VALUES (1789978117562556438, 'DingRobotConfigController#delete', '删除', 'DELETE', '/ding/robot/config/delete', '钉钉机器人配置', b'1', b'1', '钉钉机器人配置 删除', 1399985191002447872, '2024-05-13 19:16:54.069000', 1399985191002447872, '2024-06-26 20:32:23.921000', b'1', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117562556439, 'UserDataRoleController#saveAssign', '给用户分配数据角色', 'POST', '/user/data/role/saveAssign', '用户数据角色配置', b'1', b'1', '用户数据角色配置 给用户分配数据角色', 1399985191002447872, '2024-05-13 19:16:54.069000', 1399985191002447872, '2024-05-13 19:16:54.069000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117562556440, 'SiteMessageController#read', '标为已读', 'POST', '/site/message/read', '站内信', b'1', b'1', '站内信 标为已读', 1399985191002447872, '2024-05-13 19:16:54.069000', 1399985191002447872, '2024-05-13 19:16:54.069000', b'0', 0);
+INSERT INTO `iam_perm_path` VALUES (1789978117562556440, 'SiteMessageController#read', '标为已读', 'POST', '/site/message/read', '站内信', b'1', b'1', '站内信 标为已读', 1399985191002447872, '2024-05-13 19:16:54.069000', 1399985191002447872, '2024-06-26 20:32:23.921000', b'1', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117562556441, 'SystemParamController#findByParamKey', '根据键名获取键值', 'GET', '/system/param/findByParamKey', '系统参数', b'1', b'1', '系统参数 根据键名获取键值', 1399985191002447872, '2024-05-13 19:16:54.069000', 1399985191002447872, '2024-05-13 19:16:54.069000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117562556442, 'UserInfoController#bindEmail', '绑定邮箱', 'POST', '/user/bindEmail', '用户管理', b'1', b'1', '用户管理 绑定邮箱', 1399985191002447872, '2024-05-13 19:16:54.069000', 1399985191002447872, '2024-05-13 19:16:54.069000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117562556443, 'RoleMenuController#save', '保存请求权限关系', 'POST', '/role/menu/save', '角色菜单权限关系', b'1', b'1', '角色菜单权限关系 保存请求权限关系', 1399985191002447872, '2024-05-13 19:16:54.069000', 1399985191002447872, '2024-05-13 19:16:54.069000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117562556444, 'RoleController#findAll', '查询所有的角色', 'GET', '/role/findAll', '角色管理', b'1', b'1', '角色管理 查询所有的角色', 1399985191002447872, '2024-05-13 19:16:54.069000', 1399985191002447872, '2024-05-13 19:16:54.069000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117562556445, 'SmsChannelConfigController#findById', '通过ID查询', 'GET', '/sms/config/findById', '短信渠道配置', b'1', b'1', '短信渠道配置 通过ID查询', 1399985191002447872, '2024-05-13 19:16:54.069000', 1399985191002447872, '2024-05-13 19:16:54.069000', b'0', 0);
+INSERT INTO `iam_perm_path` VALUES (1789978117562556445, 'SmsChannelConfigController#findById', '通过ID查询', 'GET', '/sms/config/findById', '短信渠道配置', b'1', b'1', '短信渠道配置 通过ID查询', 1399985191002447872, '2024-05-13 19:16:54.069000', 1399985191002447872, '2024-06-26 20:32:23.921000', b'1', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117562556446, 'PermPathController#add', '添加权限', 'POST', '/perm/path/add', '请求权限管理', b'1', b'1', '请求权限管理 添加权限', 1399985191002447872, '2024-05-13 19:16:54.069000', 1399985191002447872, '2024-05-13 19:16:54.069000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117562556447, 'AuthAssistController#sendSmsCaptcha', '发送短信验证码', 'POST', '/auth/sendSmsCaptcha', '认证支撑接口', b'1', b'1', '认证支撑接口 发送短信验证码', 1399985191002447872, '2024-05-13 19:16:54.069000', 1399985191002447872, '2024-05-13 19:16:54.069000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117562556448, 'CockpitReportController#getRefundAmount', '退款金额(分)', 'GET', '/report/cockpit/getRefundAmount', '驾驶舱接口', b'1', b'1', '驾驶舱接口 退款金额(分)', 1399985191002447872, '2024-05-13 19:16:54.069000', 1399985191002447872, '2024-05-13 19:16:54.069000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117562556449, 'PermMenuController#existsByPermCode', '编码是否被使用', 'GET', '/perm/menu/existsByPermCode', '菜单和权限码', b'1', b'1', '菜单和权限码 编码是否被使用', 1399985191002447872, '2024-05-13 19:16:54.069000', 1399985191002447872, '2024-05-13 19:16:54.069000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117562556450, 'WeChatTemplateController#findById', '通过ID查询', 'GET', '/wechat/template/findById', '微信模板消息', b'1', b'1', '微信模板消息 通过ID查询', 1399985191002447872, '2024-05-13 19:16:54.069000', 1399985191002447872, '2024-05-13 19:16:54.069000', b'0', 0);
+INSERT INTO `iam_perm_path` VALUES (1789978117562556450, 'WeChatTemplateController#findById', '通过ID查询', 'GET', '/wechat/template/findById', '微信模板消息', b'1', b'1', '微信模板消息 通过ID查询', 1399985191002447872, '2024-05-13 19:16:54.069000', 1399985191002447872, '2024-06-26 20:32:23.921000', b'1', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117562556451, 'UserInfoController#updateEmail', '修改邮箱', 'POST', '/user/updateEmail', '用户管理', b'1', b'1', '用户管理 修改邮箱', 1399985191002447872, '2024-05-13 19:16:54.069000', 1399985191002447872, '2024-05-13 19:16:54.069000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117562556452, 'AggregateController#createUrl', '创建聚合支付码', 'POST', '/demo/aggregate/createUrl', '聚合支付', b'1', b'1', '聚合支付 创建聚合支付码', 1399985191002447872, '2024-05-13 19:16:54.069000', 1399985191002447872, '2024-05-13 19:16:54.069000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117562556453, 'MessageTemplateController#existsByCode', '编码是否被使用(不包含自己)', 'GET', '/message/template/existsByCodeNotId', '消息模板', b'1', b'1', '消息模板 编码是否被使用(不包含自己)', 1399985191002447872, '2024-05-13 19:16:54.069000', 1399985191002447872, '2024-05-13 19:16:54.069000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117562556454, 'DingRobotConfigController#update', '修改机器人配置', 'POST', '/ding/robot/config/update', '钉钉机器人配置', b'1', b'1', '钉钉机器人配置 修改机器人配置', 1399985191002447872, '2024-05-13 19:16:54.069000', 1399985191002447872, '2024-05-13 19:16:54.069000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117562556455, 'WeChatPortalController#auth', 'auth', 'GET', '/wechat/portal', '微信接入入口', b'1', b'1', '微信接入入口 auth', 1399985191002447872, '2024-05-13 19:16:54.069000', 1399985191002447872, '2024-05-13 19:16:54.069000', b'0', 0);
+INSERT INTO `iam_perm_path` VALUES (1789978117562556453, 'MessageTemplateController#existsByCode', '编码是否被使用(不包含自己)', 'GET', '/message/template/existsByCodeNotId', '消息模板', b'1', b'1', '消息模板 编码是否被使用(不包含自己)', 1399985191002447872, '2024-05-13 19:16:54.069000', 1399985191002447872, '2024-06-26 20:32:23.921000', b'1', 0);
+INSERT INTO `iam_perm_path` VALUES (1789978117562556454, 'DingRobotConfigController#update', '修改机器人配置', 'POST', '/ding/robot/config/update', '钉钉机器人配置', b'1', b'1', '钉钉机器人配置 修改机器人配置', 1399985191002447872, '2024-05-13 19:16:54.069000', 1399985191002447872, '2024-06-26 20:32:23.921000', b'1', 0);
+INSERT INTO `iam_perm_path` VALUES (1789978117562556455, 'WeChatPortalController#auth', 'auth', 'GET', '/wechat/portal', '微信接入入口', b'1', b'1', '微信接入入口 auth', 1399985191002447872, '2024-05-13 19:16:54.069000', 1399985191002447872, '2024-06-26 20:32:23.920000', b'1', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117562556456, 'SystemParamController#add', '添加', 'POST', '/system/param/add', '系统参数', b'1', b'1', '系统参数 添加', 1399985191002447872, '2024-05-13 19:16:54.069000', 1399985191002447872, '2024-05-13 19:16:54.069000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117562556457, 'DingRobotConfigController#page', '分页', 'GET', '/ding/robot/config/page', '钉钉机器人配置', b'1', b'1', '钉钉机器人配置 分页', 1399985191002447872, '2024-05-13 19:16:54.069000', 1399985191002447872, '2024-05-13 19:16:54.069000', b'0', 0);
+INSERT INTO `iam_perm_path` VALUES (1789978117562556457, 'DingRobotConfigController#page', '分页', 'GET', '/ding/robot/config/page', '钉钉机器人配置', b'1', b'1', '钉钉机器人配置 分页', 1399985191002447872, '2024-05-13 19:16:54.069000', 1399985191002447872, '2024-06-26 20:32:23.920000', b'1', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117562556458, 'QuartzJobController#findById', '单条', 'GET', '/quartz/findById', '定时任务', b'1', b'1', '定时任务 单条', 1399985191002447872, '2024-05-13 19:16:54.069000', 1399985191002447872, '2024-05-13 19:16:54.069000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117562556459, 'RoleController#existsByName', '名称是否被使用', 'GET', '/role/existsByName', '角色管理', b'1', b'1', '角色管理 名称是否被使用', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750720, 'WeChatMenuController#findById', '通过ID查询', 'GET', '/wechat/menu/findById', '微信菜单管理', b'1', b'1', '微信菜单管理 通过ID查询', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
+INSERT INTO `iam_perm_path` VALUES (1789978117566750720, 'WeChatMenuController#findById', '通过ID查询', 'GET', '/wechat/menu/findById', '微信菜单管理', b'1', b'1', '微信菜单管理 通过ID查询', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-06-26 20:32:23.920000', b'1', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117566750721, 'UserInfoController#existsEmail', '邮箱是否被使用(不包含自己)', 'GET', '/user/existsEmailNotId', '用户管理', b'1', b'1', '用户管理 邮箱是否被使用(不包含自己)', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117566750722, 'UniPayController#syncPay', '支付同步接口', 'POST', '/unipay/syncPay', '统一支付接口', b'1', b'1', '统一支付接口 支付同步接口', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-06-03 14:53:25.723000', b'1', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117566750723, 'PermPathController#page', '权限分页', 'GET', '/perm/path/page', '请求权限管理', b'1', b'1', '请求权限管理 权限分页', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750724, 'WeChatPortalController#post', 'post', 'POST', '/wechat/portal', '微信接入入口', b'1', b'1', '微信接入入口 post', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
+INSERT INTO `iam_perm_path` VALUES (1789978117566750724, 'WeChatPortalController#post', 'post', 'POST', '/wechat/portal', '微信接入入口', b'1', b'1', '微信接入入口 post', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-06-26 20:32:23.920000', b'1', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117566750725, 'DeptController#findById', '获取', 'GET', '/dept/findById', '部门管理', b'1', b'1', '部门管理 获取', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117566750726, 'PayOrderController#allocation', '发起分账', 'POST', '/order/pay/allocation', '支付订单控制器', b'1', b'1', '支付订单控制器 发起分账', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117566750727, 'DictionaryController#add', '添加', 'POST', '/dict/add', '字典', b'1', b'1', '字典 添加', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
@@ -1013,14 +1037,14 @@ INSERT INTO `iam_perm_path` VALUES (1789978117566750728, 'RefundOrderController#
 INSERT INTO `iam_perm_path` VALUES (1789978117566750729, 'UserInfoController#getUserBaseInfo', '查询用户基础信息', 'GET', '/user/getUserBaseInfo', '用户管理', b'1', b'1', '用户管理 查询用户基础信息', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117566750730, 'CockpitReportController#getRefundOrderCount', '退款订单数量', 'GET', '/report/cockpit/getRefundOrderCount', '驾驶舱接口', b'1', b'1', '驾驶舱接口 退款订单数量', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117566750731, 'UserAdminController#update', '修改用户', 'POST', '/user/admin/update', '管理用户(管理员级别)', b'1', b'1', '管理用户(管理员级别) 修改用户', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750732, 'WeChatMenuController#importMenu', '导入微信自定义菜单到系统中', 'POST', '/wechat/menu/importMenu', '微信菜单管理', b'1', b'1', '微信菜单管理 导入微信自定义菜单到系统中', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
+INSERT INTO `iam_perm_path` VALUES (1789978117566750732, 'WeChatMenuController#importMenu', '导入微信自定义菜单到系统中', 'POST', '/wechat/menu/importMenu', '微信菜单管理', b'1', b'1', '微信菜单管理 导入微信自定义菜单到系统中', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-06-26 20:32:23.920000', b'1', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117566750733, 'WalletConfigController#update', '更新', 'POST', '/wallet/config/update', '钱包配置', b'1', b'1', '钱包配置 更新', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117566750734, 'DeptController#deleteAndChildren', '强制级联删除', 'DELETE', '/dept/deleteAndChildren', '部门管理', b'1', b'1', '部门管理 强制级联删除', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117566750735, 'PermPathController#deleteBatch', '批量删除', 'DELETE', '/perm/path/deleteBatch', '请求权限管理', b'1', b'1', '请求权限管理 批量删除', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117566750736, 'PayGatewayNoticeController#wechatPayNotice', '微信消息通知', 'POST', '/gateway/notice/wechat', '三方支付网关消息通知', b'1', b'1', '三方支付网关消息通知 微信消息通知', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-06-03 14:53:25.723000', b'1', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117566750737, 'DataRoleController#saveDeptAssign', '保存关联部门', 'POST', '/data/role/saveDeptAssign', '数据角色配置', b'1', b'1', '数据角色配置 保存关联部门', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750738, 'PayCallbackController#wechatPayNotify', '微信支付信息回调', 'POST', '/callback/pay/wechat', '支付通道信息回调', b'1', b'1', '支付通道信息回调 微信支付信息回调', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750739, 'WeChatMediaController#uploadFile', '上传素材', 'POST', '/wechat/media/uploadFile', '微信素材管理', b'1', b'1', '微信素材管理 上传素材', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
+INSERT INTO `iam_perm_path` VALUES (1789978117566750738, 'PayCallbackController#wechatPayNotify', '微信支付信息回调', 'POST', '/callback/pay/wechat', '支付通道信息回调', b'1', b'1', '支付通道信息回调 微信支付信息回调', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-06-26 20:32:23.920000', b'1', 0);
+INSERT INTO `iam_perm_path` VALUES (1789978117566750739, 'WeChatMediaController#uploadFile', '上传素材', 'POST', '/wechat/media/uploadFile', '微信素材管理', b'1', b'1', '微信素材管理 上传素材', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-06-26 20:32:23.920000', b'1', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117566750740, 'AllocationReceiverController#registerByGateway', '同步到三方支付系统中', 'POST', '/allocation/receiver/registerByGateway', '分账接收方控制器', b'1', b'1', '分账接收方控制器 同步到三方支付系统中', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-06-03 14:53:25.723000', b'1', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117566750741, 'WalletController#recharge', '充值', 'POST', '/wallet/recharge', '钱包管理', b'1', b'1', '钱包管理 充值', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117566750742, 'UniPayAssistController#getWxAccessToken', '获取微信AccessToken', 'POST', '/unipay/assist/getWxAccessToken', '支付支撑接口', b'1', b'1', '支付支撑接口 获取微信AccessToken', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
@@ -1033,11 +1057,11 @@ INSERT INTO `iam_perm_path` VALUES (1789978117566750748, 'UserInfoController#upd
 INSERT INTO `iam_perm_path` VALUES (1789978117566750749, 'UserInfoController#getLoginAfterUserInfo', '登录后获取用户信息', 'GET', '/user/getLoginAfterUserInfo', '用户管理', b'1', b'1', '用户管理 登录后获取用户信息', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117566750750, 'ClientController#delete', '删除', 'DELETE', '/client/delete', '认证终端', b'1', b'1', '认证终端 删除', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117566750751, 'PayChannelConfigController#findAll', '查询全部', 'GET', '/pay/channel/config/findAll', '支付通道信息', b'1', b'1', '支付通道信息 查询全部', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750752, 'SmsChannelConfigController#add', '添加', 'POST', '/sms/config/add', '短信渠道配置', b'1', b'1', '短信渠道配置 添加', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
+INSERT INTO `iam_perm_path` VALUES (1789978117566750752, 'SmsChannelConfigController#add', '添加', 'POST', '/sms/config/add', '短信渠道配置', b'1', b'1', '短信渠道配置 添加', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-06-26 20:32:23.920000', b'1', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117566750753, 'PayCloseRecordController#page', '分页查询', 'GET', '/record/close/page', '支付订单关闭记录', b'1', b'1', '支付订单关闭记录 分页查询', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117566750754, 'UserInfoController#bindPhone', '绑定手机', 'POST', '/user/bindPhone', '用户管理', b'1', b'1', '用户管理 绑定手机', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117566750755, 'DictionaryItemController#update', '修改字典项(返回字典项对象)', 'POST', '/dict/item/update', '字典项', b'1', b'1', '字典项 修改字典项(返回字典项对象)', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750756, 'WeChatMediaController#pageFile', '非图文素材分页', 'GET', '/wechat/media/pageFile', '微信素材管理', b'1', b'1', '微信素材管理 非图文素材分页', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
+INSERT INTO `iam_perm_path` VALUES (1789978117566750756, 'WeChatMediaController#pageFile', '非图文素材分页', 'GET', '/wechat/media/pageFile', '微信素材管理', b'1', b'1', '微信素材管理 非图文素材分页', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-06-26 20:32:23.920000', b'1', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117566750757, 'ChinaRegionController#findAllProvinceAndCityAndArea', ' 获取省市区县三级联动列表', 'GET', '/china/region/findAllProvinceAndCityAndArea', '中国行政区划', b'1', b'1', '中国行政区划  获取省市区县三级联动列表', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117566750758, 'WalletConfigController#findPayWays', '支付宝支持支付方式', 'GET', '/wallet/config/findPayWays', '钱包配置', b'1', b'1', '钱包配置 支付宝支持支付方式', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117566750759, 'AllocationGroupController#bindReceivers', '批量绑定接收者', 'POST', '/allocation/group/bindReceivers', '分账组', b'1', b'1', '分账组 批量绑定接收者', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
@@ -1056,14 +1080,14 @@ INSERT INTO `iam_perm_path` VALUES (1789978117566750771, 'UniQueryController#que
 INSERT INTO `iam_perm_path` VALUES (1789978117566750772, 'QuartzJobController#delete', '删除', 'DELETE', '/quartz/delete', '定时任务', b'1', b'1', '定时任务 删除', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117566750773, 'PermMenuController#add', '添加菜单权限', 'POST', '/perm/menu/add', '菜单和权限码', b'1', b'1', '菜单和权限码 添加菜单权限', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117566750774, 'ChinaRegionController#findAllProvinceAndCity', '获取省市二级联动列表', 'GET', '/china/region/findAllProvinceAndCity', '中国行政区划', b'1', b'1', '中国行政区划 获取省市二级联动列表', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750775, 'WeChatMenuController#page', '分页查询', 'GET', '/wechat/menu/page', '微信菜单管理', b'1', b'1', '微信菜单管理 分页查询', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
+INSERT INTO `iam_perm_path` VALUES (1789978117566750775, 'WeChatMenuController#page', '分页查询', 'GET', '/wechat/menu/page', '微信菜单管理', b'1', b'1', '微信菜单管理 分页查询', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-06-26 20:32:23.920000', b'1', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117566750776, 'PermPathController#findById', '获取详情', 'GET', '/perm/path/findById', '请求权限管理', b'1', b'1', '请求权限管理 获取详情', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117566750777, 'QuartzJobController#stop', '停止', 'POST', '/quartz/stop', '定时任务', b'1', b'1', '定时任务 停止', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117566750778, 'UserAssistController#sendEmailChangeCaptcha', '发送更改/绑定邮箱验证码', 'POST', '/user/sendEmailChangeCaptcha', '用户操作支撑服务', b'1', b'1', '用户操作支撑服务 发送更改/绑定邮箱验证码', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117566750779, 'DictionaryController#page', '分页', 'GET', '/dict/page', '字典', b'1', b'1', '字典 分页', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117566750780, 'OnlineUserController#kickOut', '踢出用户', 'GET', '/online/user/kickOut', '在线用户', b'1', b'1', '在线用户 踢出用户', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117566750781, 'UniPayController#refund', '统一退款接口', 'POST', '/unipay/refund', '统一支付接口', b'1', b'1', '统一支付接口 统一退款接口', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750782, 'PayCallbackController#unionPayNotify', '云闪付支付信息回调', 'POST', '/callback/pay/union', '支付通道信息回调', b'1', b'1', '支付通道信息回调 云闪付支付信息回调', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
+INSERT INTO `iam_perm_path` VALUES (1789978117566750782, 'PayCallbackController#unionPayNotify', '云闪付支付信息回调', 'POST', '/callback/pay/union', '支付通道信息回调', b'1', b'1', '支付通道信息回调 云闪付支付信息回调', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-06-26 20:32:23.920000', b'1', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117566750783, 'ReconcileOrderController#downLocalCsv', '下载系统对账单(CSV格式)', 'GET', '/order/reconcile/downLocalCsv', '对账控制器', b'1', b'1', '对账控制器 下载系统对账单(CSV格式)', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117566750784, 'DataRoleController#delete', '删除', 'DELETE', '/data/role/delete', '数据角色配置', b'1', b'1', '数据角色配置 删除', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117566750785, 'DataRoleController#deleteUserAssigns', '批量删除数据角色关联用户', 'DELETE', '/data/role/deleteUserAssigns', '数据角色配置', b'1', b'1', '数据角色配置 批量删除数据角色关联用户', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
@@ -1072,9 +1096,9 @@ INSERT INTO `iam_perm_path` VALUES (1789978117566750787, 'ClientController#exist
 INSERT INTO `iam_perm_path` VALUES (1789978117566750788, 'FIleUpLoadController#local', '上传', 'POST', '/file/upload', '文件上传', b'1', b'1', '文件上传 上传', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117566750789, 'AllocationGroupController#findById', '查询详情', 'GET', '/allocation/group/findById', '分账组', b'1', b'1', '分账组 查询详情', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117566750790, 'PermMenuController#menuAndPermCodeTree', '获取菜单和权限码树', 'GET', '/perm/menu/menuAndPermCodeTree', '菜单和权限码', b'1', b'1', '菜单和权限码 获取菜单和权限码树', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750791, 'WeChatArticleController#page', '分页', 'GET', '/wechat/article/page', '微信文章管理', b'1', b'1', '微信文章管理 分页', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
+INSERT INTO `iam_perm_path` VALUES (1789978117566750791, 'WeChatArticleController#page', '分页', 'GET', '/wechat/article/page', '微信文章管理', b'1', b'1', '微信文章管理 分页', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-06-26 20:32:23.920000', b'1', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117566750792, 'UserInfoController#updatePassword', '修改密码', 'POST', '/user/updatePassword', '用户管理', b'1', b'1', '用户管理 修改密码', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750793, 'MessageTemplateController#existsByCode', '编码是否被使用', 'GET', '/message/template/existsByCode', '消息模板', b'1', b'1', '消息模板 编码是否被使用', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
+INSERT INTO `iam_perm_path` VALUES (1789978117566750793, 'MessageTemplateController#existsByCode', '编码是否被使用', 'GET', '/message/template/existsByCode', '消息模板', b'1', b'1', '消息模板 编码是否被使用', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-06-26 20:32:23.920000', b'1', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117566750794, 'LoginTypeController#superPage', '超级查询', 'POST', '/loginType/superPage', '登录方式管理', b'1', b'1', '登录方式管理 超级查询', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117566750795, 'WalletController#page', '钱包分页', 'GET', '/wallet/page', '钱包管理', b'1', b'1', '钱包管理 钱包分页', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117566750796, 'UserAdminController#getUserInfoWhole', '查询用户详情', 'GET', '/user/admin/getUserInfoWhole', '管理用户(管理员级别)', b'1', b'1', '管理用户(管理员级别) 查询用户详情', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
@@ -1085,35 +1109,35 @@ INSERT INTO `iam_perm_path` VALUES (1789978117566750800, 'OperateLogController#p
 INSERT INTO `iam_perm_path` VALUES (1789978117566750801, 'ClientNoticeTaskController#findRecordById', '查询单条', 'GET', '/task/notice/record/findById', '客户系统通知任务', b'1', b'1', '客户系统通知任务 查询单条', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117566750802, 'OpenApiWebMvcResource#openapiYaml', 'openapiYaml', 'GET', '/v3/api-docs.yaml', 'OpenApiWebMvcResource', b'1', b'1', 'OpenApiWebMvcResource openapiYaml', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117566750803, 'PayOrderController#findById', '查询订单详情', 'GET', '/order/pay/findById', '支付订单控制器', b'1', b'1', '支付订单控制器 查询订单详情', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750804, 'WeChatQrLoginController#getStatus', '获取扫码状态', 'GET', '/token/wechat/qr/getStatus', '微信扫码登录', b'1', b'1', '微信扫码登录 获取扫码状态', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
+INSERT INTO `iam_perm_path` VALUES (1789978117566750804, 'WeChatQrLoginController#getStatus', '获取扫码状态', 'GET', '/token/wechat/qr/getStatus', '微信扫码登录', b'1', b'1', '微信扫码登录 获取扫码状态', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-06-26 20:32:23.920000', b'1', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117566750805, 'DeptController#tree', '树状展示', 'GET', '/dept/tree', '部门管理', b'1', b'1', '部门管理 树状展示', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750806, 'WeChatMenuController#publish', '发布菜单', 'POST', '/wechat/menu/publish', '微信菜单管理', b'1', b'1', '微信菜单管理 发布菜单', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
+INSERT INTO `iam_perm_path` VALUES (1789978117566750806, 'WeChatMenuController#publish', '发布菜单', 'POST', '/wechat/menu/publish', '微信菜单管理', b'1', b'1', '微信菜单管理 发布菜单', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-06-26 20:32:23.919000', b'1', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117566750807, 'AllocationGroupController#findReceiversByGroups', '查询分账接收方信息', 'GET', '/allocation/group/findReceiversByGroups', '分账组', b'1', b'1', '分账组 查询分账接收方信息', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117566750808, 'LoginLogController#deleteByDay', '清除指定天数之前的日志', 'DELETE', '/log/login/deleteByDay', '登录日志', b'1', b'1', '登录日志 清除指定天数之前的日志', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117566750809, 'PayOrderController#syncById', '同步支付状态', 'POST', '/order/pay/syncByOrderNo', '支付订单控制器', b'1', b'1', '支付订单控制器 同步支付状态', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750810, 'WeChatTemplateController#existsByCode', '编码是否被使用(不包含自己)', 'GET', '/wechat/template/existsByCodeNotId', '微信模板消息', b'1', b'1', '微信模板消息 编码是否被使用(不包含自己)', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750811, 'WeChatMenuController#add', '添加', 'POST', '/wechat/menu/add', '微信菜单管理', b'1', b'1', '微信菜单管理 添加', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750812, 'WeChatMenuController#clearMenu', '清空微信自定义菜单', 'POST', '/wechat/menu/clearMenu', '微信菜单管理', b'1', b'1', '微信菜单管理 清空微信自定义菜单', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
+INSERT INTO `iam_perm_path` VALUES (1789978117566750810, 'WeChatTemplateController#existsByCode', '编码是否被使用(不包含自己)', 'GET', '/wechat/template/existsByCodeNotId', '微信模板消息', b'1', b'1', '微信模板消息 编码是否被使用(不包含自己)', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-06-26 20:32:23.919000', b'1', 0);
+INSERT INTO `iam_perm_path` VALUES (1789978117566750811, 'WeChatMenuController#add', '添加', 'POST', '/wechat/menu/add', '微信菜单管理', b'1', b'1', '微信菜单管理 添加', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-06-26 20:32:23.919000', b'1', 0);
+INSERT INTO `iam_perm_path` VALUES (1789978117566750812, 'WeChatMenuController#clearMenu', '清空微信自定义菜单', 'POST', '/wechat/menu/clearMenu', '微信菜单管理', b'1', b'1', '微信菜单管理 清空微信自定义菜单', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-06-26 20:32:23.919000', b'1', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117566750813, 'QuartzJobLogController#page', '分页', 'GET', '/quartz/log/page', '定时任务执行日志', b'1', b'1', '定时任务执行日志 分页', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117566750814, 'UserInfoController#updateBaseInfo', '修改用户基础信息', 'POST', '/user/updateBaseInfo', '用户管理', b'1', b'1', '用户管理 修改用户基础信息', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750815, 'PayCallbackController#aliPayNotify', '支付宝信息回调', 'POST', '/callback/pay/alipay', '支付通道信息回调', b'1', b'1', '支付通道信息回调 支付宝信息回调', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
+INSERT INTO `iam_perm_path` VALUES (1789978117566750815, 'PayCallbackController#aliPayNotify', '支付宝信息回调', 'POST', '/callback/pay/alipay', '支付通道信息回调', b'1', b'1', '支付通道信息回调 支付宝信息回调', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-06-26 20:32:23.919000', b'1', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117566750816, 'DataRoleController#existsByCode', '编码是否被使用', 'GET', '/data/role/existsByCode', '数据角色配置', b'1', b'1', '数据角色配置 编码是否被使用', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750817, 'MessageTemplateController#delete', '删除', 'DELETE', '/message/template/delete', '消息模板', b'1', b'1', '消息模板 删除', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
+INSERT INTO `iam_perm_path` VALUES (1789978117566750817, 'MessageTemplateController#delete', '删除', 'DELETE', '/message/template/delete', '消息模板', b'1', b'1', '消息模板 删除', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-06-26 20:32:23.919000', b'1', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117566750818, 'LoginTypeController#findById', '通过ID查询登录方式', 'GET', '/loginType/findById', '登录方式管理', b'1', b'1', '登录方式管理 通过ID查询登录方式', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117566750819, 'ReconcileOrderController#page', '对账单分页', 'GET', '/order/reconcile/page', '对账控制器', b'1', b'1', '对账控制器 对账单分页', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117566750820, 'UnionPayConfigController#findPayWays', '支持的支付方式', 'GET', '/union/pay/config/findPayWays', '云闪付配置', b'1', b'1', '云闪付配置 支持的支付方式', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117566750821, 'DataRoleController#getDeptIds', '获取关联部门id', 'GET', '/data/role/getDeptIds', '数据角色配置', b'1', b'1', '数据角色配置 获取关联部门id', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117566750822, 'PayOrderController#close', '关闭支付记录', 'POST', '/order/pay/close', '支付订单控制器', b'1', b'1', '支付订单控制器 关闭支付记录', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750823, 'DingRobotConfigController#findById', '获取详情', 'GET', '/ding/robot/config/findById', '钉钉机器人配置', b'1', b'1', '钉钉机器人配置 获取详情', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750824, 'MessageTemplateController#update', '更新', 'POST', '/message/template/update', '消息模板', b'1', b'1', '消息模板 更新', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
+INSERT INTO `iam_perm_path` VALUES (1789978117566750823, 'DingRobotConfigController#findById', '获取详情', 'GET', '/ding/robot/config/findById', '钉钉机器人配置', b'1', b'1', '钉钉机器人配置 获取详情', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-06-26 20:32:23.919000', b'1', 0);
+INSERT INTO `iam_perm_path` VALUES (1789978117566750824, 'MessageTemplateController#update', '更新', 'POST', '/message/template/update', '消息模板', b'1', b'1', '消息模板 更新', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-06-26 20:32:23.919000', b'1', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117566750825, 'CaptchaController#imgCaptcha', '获取图片验证码', 'POST', '/captcha/imgCaptcha', '验证码服务', b'1', b'1', '验证码服务 获取图片验证码', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117566750826, 'SystemParamController#delete', '删除', 'DELETE', '/system/param/delete', '系统参数', b'1', b'1', '系统参数 删除', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117566750827, 'UserInfoController#register', '注册账号', 'POST', '/user/register', '用户管理', b'1', b'1', '用户管理 注册账号', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117566750828, 'DictionaryItemController#add', '添加字典项(返回字典项对象)', 'POST', '/dict/item/add', '字典项', b'1', b'1', '字典项 添加字典项(返回字典项对象)', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117566750829, 'UserAdminController#restartPassword', '重置密码', 'POST', '/user/admin/restartPassword', '管理用户(管理员级别)', b'1', b'1', '管理用户(管理员级别) 重置密码', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117566750830, 'ClientController#update', '修改', 'POST', '/client/update', '认证终端', b'1', b'1', '认证终端 修改', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750831, 'SmsTemplateController#page', '分页查询', 'GET', '/sms/template/page', '短信模板配置', b'1', b'1', '短信模板配置 分页查询', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117566750832, 'MailConfigController#updateMailConfig', '更新邮箱配置', 'POST', '/mail/config/update', '邮箱配置', b'1', b'1', '邮箱配置 更新邮箱配置', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-05-13 19:16:54.070000', b'0', 0);
+INSERT INTO `iam_perm_path` VALUES (1789978117566750831, 'SmsTemplateController#page', '分页查询', 'GET', '/sms/template/page', '短信模板配置', b'1', b'1', '短信模板配置 分页查询', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-06-26 20:32:23.919000', b'1', 0);
+INSERT INTO `iam_perm_path` VALUES (1789978117566750832, 'MailConfigController#updateMailConfig', '更新邮箱配置', 'POST', '/mail/config/update', '邮箱配置', b'1', b'1', '邮箱配置 更新邮箱配置', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-06-26 20:32:23.919000', b'1', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117566750833, 'UniPayController#allocation', '开启分账接口', 'POST', '/unipay/allocation', '统一支付接口', b'1', b'1', '统一支付接口 开启分账接口', 1399985191002447872, '2024-05-13 19:16:54.070000', 1399985191002447872, '2024-06-03 14:53:25.722000', b'1', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945024, 'ReconcileOrderController#downAndSave', '手动触发对账文件下载', 'POST', '/order/reconcile/downAndSave', '对账控制器', b'1', b'1', '对账控制器 手动触发对账文件下载', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945025, 'ForwardFrontController#toH5', 'toH5', 'GET', '/front/', 'ForwardFrontController', b'1', b'1', 'ForwardFrontController toH5', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
@@ -1124,11 +1148,11 @@ INSERT INTO `iam_perm_path` VALUES (1789978117570945029, 'ReconcileOrderControll
 INSERT INTO `iam_perm_path` VALUES (1789978117570945030, 'PasswordSecurityConfigController#getDefault', '获取配置', 'GET', '/security/password/getDefault', '密码安全策略', b'1', b'1', '密码安全策略 获取配置', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945031, 'DictionaryItemController#findById', '根据字典项ID查询', 'GET', '/dict/item/findById', '字典项', b'1', b'1', '字典项 根据字典项ID查询', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945032, 'DictionaryItemController#findByDictionaryId', '查询指定字典ID下的所有字典项', 'GET', '/dict/item/findByDictionaryId', '字典项', b'1', b'1', '字典项 查询指定字典ID下的所有字典项', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945033, 'ForwardH5Controller#toH5', 'toH5', 'GET', '/h5/', 'ForwardH5Controller', b'1', b'1', 'ForwardH5Controller toH5', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945034, 'SiteMessageController#findById', '消息详情', 'GET', '/site/message/findById', '站内信', b'1', b'1', '站内信 消息详情', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
+INSERT INTO `iam_perm_path` VALUES (1789978117570945033, 'ForwardH5Controller#toH5', 'toH5', 'GET', '/h5/', 'ForwardH5Controller', b'1', b'1', 'ForwardH5Controller toH5', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-06-26 20:32:23.919000', b'1', 0);
+INSERT INTO `iam_perm_path` VALUES (1789978117570945034, 'SiteMessageController#findById', '消息详情', 'GET', '/site/message/findById', '站内信', b'1', b'1', '站内信 消息详情', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-06-26 20:32:23.919000', b'1', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945035, 'DictionaryController#update', '更新', 'POST', '/dict/update', '字典', b'1', b'1', '字典 更新', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945036, 'FIleUpLoadController#download', '下载文件(流量会经过后端)', 'GET', '/file/download/{id}', '文件上传', b'1', b'1', '文件上传 下载文件(流量会经过后端)', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945037, 'SiteMessageController#pageBySender', '发送消息分页', 'GET', '/site/message/pageBySender', '站内信', b'1', b'1', '站内信 发送消息分页', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
+INSERT INTO `iam_perm_path` VALUES (1789978117570945037, 'SiteMessageController#pageBySender', '发送消息分页', 'GET', '/site/message/pageBySender', '站内信', b'1', b'1', '站内信 发送消息分页', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-06-26 20:32:23.919000', b'1', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945038, 'AllocationGroupController#unbindReceiver', '取消绑定接收者', 'POST', '/allocation/group/unbindReceiver', '分账组', b'1', b'1', '分账组 取消绑定接收者', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945039, 'AlipayConfigController#readPem', '读取证书文件内容', 'POST', '/alipay/config/readPem', '支付宝配置', b'1', b'1', '支付宝配置 读取证书文件内容', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945040, 'ClientNoticeReceiveController#refund', '退款消息(对象)', 'POST', '/demo/callback/refundObject', '回调测试', b'1', b'1', '回调测试 退款消息(对象)', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
@@ -1145,48 +1169,48 @@ INSERT INTO `iam_perm_path` VALUES (1789978117570945050, 'DictionaryItemControll
 INSERT INTO `iam_perm_path` VALUES (1789978117570945051, 'RolePathController#save', '保存角色请求权限关联关系', 'POST', '/role/path/save', '角色请求权限消息关系', b'1', b'1', '角色请求权限消息关系 保存角色请求权限关联关系', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945052, 'WalletController#findById', '查询钱包详情', 'GET', '/wallet/findById', '钱包管理', b'1', b'1', '钱包管理 查询钱包详情', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945053, 'OnlineUserController#pageByLogin', '登录用户分页', 'GET', '/online/user/pageByLogin', '在线用户', b'1', b'1', '在线用户 登录用户分页', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945054, 'MailConfigController#delete', '删除', 'DELETE', '/mail/config/delete', '邮箱配置', b'1', b'1', '邮箱配置 删除', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
+INSERT INTO `iam_perm_path` VALUES (1789978117570945054, 'MailConfigController#delete', '删除', 'DELETE', '/mail/config/delete', '邮箱配置', b'1', b'1', '邮箱配置 删除', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-06-26 20:32:23.919000', b'1', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945055, 'DictionaryController#delete', '根据id删除', 'DELETE', '/dict/delete', '字典', b'1', b'1', '字典 根据id删除', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945056, 'PayOrderController#getExtraById', '查询支付订单扩展信息', 'GET', '/order/pay/getExtraById', '支付订单控制器', b'1', b'1', '支付订单控制器 查询支付订单扩展信息', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945057, 'SiteMessageController#send', '发送站内信', 'POST', '/site/message/send', '站内信', b'1', b'1', '站内信 发送站内信', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945058, 'SiteMessageController#delete', '删除消息', 'DELETE', '/site/message/delete', '站内信', b'1', b'1', '站内信 删除消息', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
+INSERT INTO `iam_perm_path` VALUES (1789978117570945056, 'PayOrderController#getExtraById', '查询支付订单扩展信息', 'GET', '/order/pay/getExtraById', '支付订单控制器', b'1', b'1', '支付订单控制器 查询支付订单扩展信息', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-06-26 20:32:23.919000', b'1', 0);
+INSERT INTO `iam_perm_path` VALUES (1789978117570945057, 'SiteMessageController#send', '发送站内信', 'POST', '/site/message/send', '站内信', b'1', b'1', '站内信 发送站内信', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-06-26 20:32:23.919000', b'1', 0);
+INSERT INTO `iam_perm_path` VALUES (1789978117570945058, 'SiteMessageController#delete', '删除消息', 'DELETE', '/site/message/delete', '站内信', b'1', b'1', '站内信 删除消息', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-06-26 20:32:23.918000', b'1', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945059, 'AlipayConfigController#findPayWays', '支付宝支持支付方式', 'GET', '/alipay/config/findPayWays', '支付宝配置', b'1', b'1', '支付宝配置 支付宝支持支付方式', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945060, 'SiteMessageController#listByReceiveNotRead', '小程序获取未读的接收消息标题列表', 'GET', '/site/message/listByReceiveNotRead', '站内信', b'1', b'1', '站内信 小程序获取未读的接收消息标题列表', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
+INSERT INTO `iam_perm_path` VALUES (1789978117570945060, 'SiteMessageController#listByReceiveNotRead', '小程序获取未读的接收消息标题列表', 'GET', '/site/message/listByReceiveNotRead', '站内信', b'1', b'1', '站内信 小程序获取未读的接收消息标题列表', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-06-26 20:32:23.918000', b'1', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945061, 'ClientNoticeReceiveController#refund', '退款消息', 'POST', '/demo/callback/refund', '回调测试', b'1', b'1', '回调测试 退款消息', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945062, 'CashierController#getPayEnv', '获取支付环境', 'GET', '/demo/cashier/getPayEnv', '结算台演示', b'1', b'1', '结算台演示 获取支付环境', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945063, 'UserAdminController#banBatch', '批量封禁用户', 'POST', '/user/admin/banBatch', '管理用户(管理员级别)', b'1', b'1', '管理用户(管理员级别) 批量封禁用户', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945064, 'PayReturnController#wechat', '微信同步通知', 'GET', '/return/pay/wechat', '支付同步通知', b'1', b'1', '支付同步通知 微信同步通知', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
+INSERT INTO `iam_perm_path` VALUES (1789978117570945064, 'PayReturnController#wechat', '微信同步通知', 'GET', '/return/pay/wechat', '支付同步通知', b'1', b'1', '支付同步通知 微信同步通知', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-06-26 20:32:23.918000', b'1', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945065, 'DictionaryItemController#existsByCode', '编码是否被使用(不包含自己)', 'GET', '/dict/item/existsByCodeNotId', '字典项', b'1', b'1', '字典项 编码是否被使用(不包含自己)', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945066, 'DictionaryItemController#pageByDictionaryId', '分页查询指定字典下的字典项', 'GET', '/dict/item/pageByDictionaryId', '字典项', b'1', b'1', '字典项 分页查询指定字典下的字典项', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945067, 'AggregateController#wxAuthCallback', '微信授权回调页面', 'GET', '/demo/aggregate/wxAuthCallback', '聚合支付', b'1', b'1', '聚合支付 微信授权回调页面', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945068, 'LoginTypeController#existsByCode', '编码是否被使用(不包含自己)', 'GET', '/loginType/existsByCodeNotId', '登录方式管理', b'1', b'1', '登录方式管理 编码是否被使用(不包含自己)', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945069, 'MessageTemplateController#page', '分页', 'GET', '/message/template/page', '消息模板', b'1', b'1', '消息模板 分页', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
+INSERT INTO `iam_perm_path` VALUES (1789978117570945069, 'MessageTemplateController#page', '分页', 'GET', '/message/template/page', '消息模板', b'1', b'1', '消息模板 分页', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-06-26 20:32:23.918000', b'1', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945070, 'FIleUpLoadController#getFilePreviewUrl', '获取文件预览地址(流量会经过后端)', 'GET', '/file/getFilePreviewUrl', '文件上传', b'1', b'1', '文件上传 获取文件预览地址(流量会经过后端)', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945071, 'LoginTypeController#findByCode', '通过code查询登录方式', 'GET', '/loginType/findByCode', '登录方式管理', b'1', b'1', '登录方式管理 通过code查询登录方式', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945072, 'PayReturnController#alipay', '支付宝同步跳转连接', 'GET', '/return/pay/alipay', '支付同步通知', b'1', b'1', '支付同步通知 支付宝同步跳转连接', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
+INSERT INTO `iam_perm_path` VALUES (1789978117570945072, 'PayReturnController#alipay', '支付宝同步跳转连接', 'GET', '/return/pay/alipay', '支付同步通知', b'1', b'1', '支付同步通知 支付宝同步跳转连接', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-06-26 20:32:23.918000', b'1', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945073, 'PayOrderController#findByOrderNo', '查询订单详情', 'GET', '/order/pay/findByOrderNo', '支付订单控制器', b'1', b'1', '支付订单控制器 查询订单详情', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945074, 'ReconcileOrderController#findById', '对账单详情', 'GET', '/order/reconcile/findById', '对账控制器', b'1', b'1', '对账控制器 对账单详情', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945075, 'UserAssistController#sendPhoneChangeCaptcha', '发送更改/绑定手机号验证码', 'POST', '/user/sendPhoneChangeCaptcha', '用户操作支撑服务', b'1', b'1', '用户操作支撑服务 发送更改/绑定手机号验证码', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945076, 'MultipleOpenApiWebMvcResource#openapiYaml', 'openapiYaml', 'GET', '/v3/api-docs.yaml/{group}', 'MultipleOpenApiWebMvcResource', b'1', b'1', 'MultipleOpenApiWebMvcResource openapiYaml', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945077, 'PermMenuController#delete', '删除', 'DELETE', '/perm/menu/delete', '菜单和权限码', b'1', b'1', '菜单和权限码 删除', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945078, 'AggregateController#barCodePay', '通过付款码发起支付', 'POST', '/demo/aggregate/barCodePay', '聚合支付', b'1', b'1', '聚合支付 通过付款码发起支付', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945079, 'SiteMessageController#pageByReceive', '接收消息分页', 'GET', '/site/message/pageByReceive', '站内信', b'1', b'1', '站内信 接收消息分页', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
+INSERT INTO `iam_perm_path` VALUES (1789978117570945079, 'SiteMessageController#pageByReceive', '接收消息分页', 'GET', '/site/message/pageByReceive', '站内信', b'1', b'1', '站内信 接收消息分页', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-06-26 20:32:23.918000', b'1', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945080, 'ReconcileOrderController#downDiffCsv', '下载对账差异单(CSV格式)', 'GET', '/order/reconcile/downDiffCsv', '对账控制器', b'1', b'1', '对账控制器 下载对账差异单(CSV格式)', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945081, 'WechatNoticeConfigController#update', '更新微信消息通知配置', 'POST', '/wx/notice/update', '微信消息通知配置', b'1', b'1', '微信消息通知配置 更新微信消息通知配置', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
+INSERT INTO `iam_perm_path` VALUES (1789978117570945081, 'WechatNoticeConfigController#update', '更新微信消息通知配置', 'POST', '/wx/notice/update', '微信消息通知配置', b'1', b'1', '微信消息通知配置 更新微信消息通知配置', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-06-26 20:32:23.918000', b'1', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945082, 'AllocationReceiverController#page', '分页', 'GET', '/allocation/receiver/page', '分账接收方控制器', b'1', b'1', '分账接收方控制器 分页', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945083, 'ThirdLoginController#toLoginUrl', '跳转到登陆页', 'GET', '/auth/third/toLoginUrl/{loginType}', '三方登录', b'1', b'1', '三方登录 跳转到登陆页', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945084, 'AlipayConfigController#getConfig', '获取配置', 'GET', '/alipay/config/getConfig', '支付宝配置', b'1', b'1', '支付宝配置 获取配置', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945085, 'AllocationOrderController#findChannels', '获取可以分账的通道', 'GET', '/order/allocation/findChannels', '分账订单控制器', b'1', b'1', '分账订单控制器 获取可以分账的通道', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945086, 'MailConfigController#page', '分页', 'GET', '/mail/config/page', '邮箱配置', b'1', b'1', '邮箱配置 分页', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
+INSERT INTO `iam_perm_path` VALUES (1789978117570945086, 'MailConfigController#page', '分页', 'GET', '/mail/config/page', '邮箱配置', b'1', b'1', '邮箱配置 分页', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-06-26 20:32:23.918000', b'1', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945087, 'CashierController#simplePayCashier', '创建支付订单并发起', 'POST', '/demo/cashier/simplePayCashier', '结算台演示', b'1', b'1', '结算台演示 创建支付订单并发起', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945088, 'ClientController#existsByCode', '编码是否被使用(不包含自己)', 'GET', '/client/existsByCodeNotId', '认证终端', b'1', b'1', '认证终端 编码是否被使用(不包含自己)', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945089, 'UserInfoController#existsEmail', '邮箱是否被使用', 'GET', '/user/existsEmail', '用户管理', b'1', b'1', '用户管理 邮箱是否被使用', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945090, 'WecomRobotConfigController#existsByCode', '编码是否被使用', 'GET', '/wecom/robot/config/existsByCode', '企业微信机器人配置', b'1', b'1', '企业微信机器人配置 编码是否被使用', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
+INSERT INTO `iam_perm_path` VALUES (1789978117570945090, 'WecomRobotConfigController#existsByCode', '编码是否被使用', 'GET', '/wecom/robot/config/existsByCode', '企业微信机器人配置', b'1', b'1', '企业微信机器人配置 编码是否被使用', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-06-26 20:32:23.918000', b'1', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945091, 'ClientNoticeReceiveController#pay', '支付消息(map接收)', 'POST', '/demo/callback/pay', '回调测试', b'1', b'1', '回调测试 支付消息(map接收)', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945092, 'RoleMenuController#findTreeByRole', '获取当前角色下可见的菜单和权限码树(分配时用)', 'GET', '/role/menu/findTreeByRole', '角色菜单权限关系', b'1', b'1', '角色菜单权限关系 获取当前角色下可见的菜单和权限码树(分配时用)', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945093, 'MessageTemplateController#add', '添加', 'POST', '/message/template/add', '消息模板', b'1', b'1', '消息模板 添加', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
+INSERT INTO `iam_perm_path` VALUES (1789978117570945093, 'MessageTemplateController#add', '添加', 'POST', '/message/template/add', '消息模板', b'1', b'1', '消息模板 添加', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-06-26 20:32:23.918000', b'1', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945094, 'WalletConfigController#getConfig', '获取配置', 'GET', '/wallet/config/getConfig', '钱包配置', b'1', b'1', '钱包配置 获取配置', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945095, 'WechatNoticeConfigController#getConfig', '获取微信消息通知配置', 'GET', '/wx/notice/getConfig', '微信消息通知配置', b'1', b'1', '微信消息通知配置 获取微信消息通知配置', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
+INSERT INTO `iam_perm_path` VALUES (1789978117570945095, 'WechatNoticeConfigController#getConfig', '获取微信消息通知配置', 'GET', '/wx/notice/getConfig', '微信消息通知配置', b'1', b'1', '微信消息通知配置 获取微信消息通知配置', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-06-26 20:32:23.918000', b'1', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945096, 'DictionaryController#existsByCode', '编码是否被使用', 'GET', '/dict/existsByCode', '字典', b'1', b'1', '字典 编码是否被使用', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945097, 'RoleMenuController#findMenuIds', '获取权限菜单id列表,不包含资源权限', 'GET', '/role/menu/findMenuIds', '角色菜单权限关系', b'1', b'1', '角色菜单权限关系 获取权限菜单id列表,不包含资源权限', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945098, 'PayRepairRecordController#findById', '查询单条', 'GET', '/record/repair/findById', '支付修复记录', b'1', b'1', '支付修复记录 查询单条', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
@@ -1199,56 +1223,56 @@ INSERT INTO `iam_perm_path` VALUES (1789978117570945104, 'UniPayAssistController
 INSERT INTO `iam_perm_path` VALUES (1789978117570945105, 'PermMenuController#resourceList', '资源(权限码)列表', 'GET', '/perm/menu/resourceList', '菜单和权限码', b'1', b'1', '菜单和权限码 资源(权限码)列表', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945106, 'PasswordSecurityConfigController#addOrUpdate', '新增或添加密码安全配置', 'POST', '/security/password/addOrUpdate', '密码安全策略', b'1', b'1', '密码安全策略 新增或添加密码安全配置', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945107, 'PayGatewayNoticeController#aliPayNotice', '支付宝消息通知', 'POST', '/gateway/notice/alipay', '三方支付网关消息通知', b'1', b'1', '三方支付网关消息通知 支付宝消息通知', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-06-03 14:53:25.722000', b'1', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945108, 'SmsTemplateController#findAll', '查询所有', 'GET', '/sms/template/findAll', '短信模板配置', b'1', b'1', '短信模板配置 查询所有', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
+INSERT INTO `iam_perm_path` VALUES (1789978117570945108, 'SmsTemplateController#findAll', '查询所有', 'GET', '/sms/template/findAll', '短信模板配置', b'1', b'1', '短信模板配置 查询所有', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-06-26 20:32:23.918000', b'1', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945109, 'PasswordSecurityConfigController#check', '登录后检查密码相关的情况', 'GET', '/security/password/check', '密码安全策略', b'1', b'1', '密码安全策略 登录后检查密码相关的情况', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945110, 'SystemMonitorController#getRedisInfo', '获取Redis信息', 'GET', '/monitor/system/getRedisInfo', '系统信息监控', b'1', b'1', '系统信息监控 获取Redis信息', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945111, 'AllocationGroupController#delete', '删除', 'POST', '/allocation/group/delete', '分账组', b'1', b'1', '分账组 删除', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945112, 'SystemMonitorController#getSystemInfo', '获取系统消息', 'GET', '/monitor/system/getSystemInfo', '系统信息监控', b'1', b'1', '系统信息监控 获取系统消息', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945113, 'MailConfigController#existsByCode', '编码是否被使用(不包含自己)', 'GET', '/mail/config/existsByCodeNotId', '邮箱配置', b'1', b'1', '邮箱配置 编码是否被使用(不包含自己)', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
+INSERT INTO `iam_perm_path` VALUES (1789978117570945113, 'MailConfigController#existsByCode', '编码是否被使用(不包含自己)', 'GET', '/mail/config/existsByCodeNotId', '邮箱配置', b'1', b'1', '邮箱配置 编码是否被使用(不包含自己)', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-06-26 20:32:23.918000', b'1', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945114, 'AllocationReceiverController#add', '新增', 'POST', '/allocation/receiver/add', '分账接收方控制器', b'1', b'1', '分账接收方控制器 新增', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945115, 'AllocationOrderController#findById', '查询详情', 'GET', '/order/allocation/findById', '分账订单控制器', b'1', b'1', '分账订单控制器 查询详情', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945116, 'AllocationOrderController#findDetailById', '查询明细详情', 'GET', '/order/allocation/detail/findById', '分账订单控制器', b'1', b'1', '分账订单控制器 查询明细详情', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945117, 'SystemParamController#existsByKeyNotId', '判断编码是否存在(不包含自己)', 'GET', '/system/param/existsByKeyNotId', '系统参数', b'1', b'1', '系统参数 判断编码是否存在(不包含自己)', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945118, 'WeChatMediaController#pageNews', '图文素材分页', 'GET', '/wechat/media/pageNews', '微信素材管理', b'1', b'1', '微信素材管理 图文素材分页', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
+INSERT INTO `iam_perm_path` VALUES (1789978117570945118, 'WeChatMediaController#pageNews', '图文素材分页', 'GET', '/wechat/media/pageNews', '微信素材管理', b'1', b'1', '微信素材管理 图文素材分页', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-06-26 20:32:23.918000', b'1', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945119, 'RoleController#existsByCode', '编码是否被使用(不包含自己)', 'GET', '/role/existsByCodeNotId', '角色管理', b'1', b'1', '角色管理 编码是否被使用(不包含自己)', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945120, 'DataRoleController#page', '分页', 'GET', '/data/role/page', '数据角色配置', b'1', b'1', '数据角色配置 分页', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945121, 'OperateLogController#deleteByDay', '清除指定天数的日志', 'DELETE', '/log/operate/deleteByDay', '操作日志', b'1', b'1', '操作日志 清除指定天数的日志', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945122, 'OnlineUserController#getSessionByUserId', '获取用户链接信息', 'GET', '/online/user/getSessionByUserId', '在线用户', b'1', b'1', '在线用户 获取用户链接信息', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945123, 'LoginTypeController#add', '添加登录方式', 'POST', '/loginType/add', '登录方式管理', b'1', b'1', '登录方式管理 添加登录方式', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945124, 'UnionPayConfigController#getConfig', '获取配置', 'GET', '/union/pay/config/getConfig', '云闪付配置', b'1', b'1', '云闪付配置 获取配置', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945125, 'WeChatMenuController#delete', '删除', 'DELETE', '/wechat/menu/delete', '微信菜单管理', b'1', b'1', '微信菜单管理 删除', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
+INSERT INTO `iam_perm_path` VALUES (1789978117570945125, 'WeChatMenuController#delete', '删除', 'DELETE', '/wechat/menu/delete', '微信菜单管理', b'1', b'1', '微信菜单管理 删除', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-06-26 20:32:23.918000', b'1', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945126, 'BaseApiController#authEcho', '回声测试(必须要进行登录)', 'GET', '/auth/echo', '系统基础接口', b'1', b'1', '系统基础接口 回声测试(必须要进行登录)', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945127, 'WeChatQrLoginController#applyQrCode', '申请登录用QR码', 'POST', '/token/wechat/qr/applyQrCode', '微信扫码登录', b'1', b'1', '微信扫码登录 申请登录用QR码', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
+INSERT INTO `iam_perm_path` VALUES (1789978117570945127, 'WeChatQrLoginController#applyQrCode', '申请登录用QR码', 'POST', '/token/wechat/qr/applyQrCode', '微信扫码登录', b'1', b'1', '微信扫码登录 申请登录用QR码', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-06-26 20:32:23.918000', b'1', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945128, 'FIleUpLoadController#delete', '删除', 'DELETE', '/file/delete', '文件上传', b'1', b'1', '文件上传 删除', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945129, 'CockpitReportController#getRefundChannelInfo', '显示通道退款订单金额和订单数', 'GET', '/report/cockpit/getRefundChannelInfo', '驾驶舱接口', b'1', b'1', '驾驶舱接口 显示通道退款订单金额和订单数', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945130, 'RoleController#add', '添加角色(返回角色对象)', 'POST', '/role/add', '角色管理', b'1', b'1', '角色管理 添加角色(返回角色对象)', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945131, 'ClientController#add', '添加', 'POST', '/client/add', '认证终端', b'1', b'1', '认证终端 添加', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945132, 'UserInfoController#forgetPasswordByPhone', '通过手机号重置密码', 'POST', '/user/forgetPasswordByPhone', '用户管理', b'1', b'1', '用户管理 通过手机号重置密码', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945133, 'RolePathController#findPathsByRole', '获取当前用户角色下可见的请求权限列表(分配时用)', 'GET', '/role/path/findPathsByRole', '角色请求权限消息关系', b'1', b'1', '角色请求权限消息关系 获取当前用户角色下可见的请求权限列表(分配时用)', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945134, 'WeChatMenuController#findAll', '查询所有', 'GET', '/wechat/menu/findAll', '微信菜单管理', b'1', b'1', '微信菜单管理 查询所有', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
+INSERT INTO `iam_perm_path` VALUES (1789978117570945134, 'WeChatMenuController#findAll', '查询所有', 'GET', '/wechat/menu/findAll', '微信菜单管理', b'1', b'1', '微信菜单管理 查询所有', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-06-26 20:32:23.917000', b'1', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945135, 'ClientController#findAll', '查询所有', 'GET', '/client/findAll', '认证终端', b'1', b'1', '认证终端 查询所有', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945136, 'RefundOrderController#findExtraById', '查询扩展信息', 'GET', '/order/refund/findExtraById', '支付退款控制器', b'1', b'1', '支付退款控制器 查询扩展信息', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
+INSERT INTO `iam_perm_path` VALUES (1789978117570945136, 'RefundOrderController#findExtraById', '查询扩展信息', 'GET', '/order/refund/findExtraById', '支付退款控制器', b'1', b'1', '支付退款控制器 查询扩展信息', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-06-26 20:32:23.917000', b'1', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945137, 'UserDataRoleController#saveAssignBatch', '给用户分配权限(批量)', 'POST', '/user/data/role/saveAssignBatch', '用户数据角色配置', b'1', b'1', '用户数据角色配置 给用户分配权限(批量)', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945138, 'LoginLogController#page', '分页', 'GET', '/log/login/page', '登录日志', b'1', b'1', '登录日志 分页', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945139, 'FIleUpLoadController#findById', '获取单条详情', 'GET', '/file/findById', '文件上传', b'1', b'1', '文件上传 获取单条详情', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945140, 'MessageTemplateController#findById', '获取详情', 'GET', '/message/template/findById', '消息模板', b'1', b'1', '消息模板 获取详情', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
+INSERT INTO `iam_perm_path` VALUES (1789978117570945140, 'MessageTemplateController#findById', '获取详情', 'GET', '/message/template/findById', '消息模板', b'1', b'1', '消息模板 获取详情', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-06-26 20:32:23.917000', b'1', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945141, 'DataRoleController#saveUserAssign', '保存数据角色关联用户权限', 'POST', '/data/role/saveUserAssign', '数据角色配置', b'1', b'1', '数据角色配置 保存数据角色关联用户权限', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945142, 'ThirdLoginController#callback', '扫码后回调', 'GET', '/auth/third/callback/{loginType}', '三方登录', b'1', b'1', '三方登录 扫码后回调', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945143, 'SmsChannelConfigController#findByCode', '通过Code查询', 'GET', '/sms/config/findByCode', '短信渠道配置', b'1', b'1', '短信渠道配置 通过Code查询', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
+INSERT INTO `iam_perm_path` VALUES (1789978117570945143, 'SmsChannelConfigController#findByCode', '通过Code查询', 'GET', '/sms/config/findByCode', '短信渠道配置', b'1', b'1', '短信渠道配置 通过Code查询', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-06-26 20:32:23.917000', b'1', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945144, 'PayApiConfigController#findById', '根据ID获取', 'GET', '/pay/api/config/findById', '支付接口配置', b'1', b'1', '支付接口配置 根据ID获取', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945145, 'DataVersionLogController#findById', '获取', 'GET', '/log/dataVersion/findById', '数据版本日志', b'1', b'1', '数据版本日志 获取', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945146, 'PermPathController#update', '更新权限', 'POST', '/perm/path/update', '请求权限管理', b'1', b'1', '请求权限管理 更新权限', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945147, 'MailConfigController#setUpActivity', '设置启用的邮箱配置', 'POST', '/mail/config/setUpActivity', '邮箱配置', b'1', b'1', '邮箱配置 设置启用的邮箱配置', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945148, 'SmsTemplateController#findById', '通过ID查询', 'GET', '/sms/template/findById', '短信模板配置', b'1', b'1', '短信模板配置 通过ID查询', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945149, 'DingRobotConfigController#add', '新增机器人配置', 'POST', '/ding/robot/config/add', '钉钉机器人配置', b'1', b'1', '钉钉机器人配置 新增机器人配置', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
+INSERT INTO `iam_perm_path` VALUES (1789978117570945147, 'MailConfigController#setUpActivity', '设置启用的邮箱配置', 'POST', '/mail/config/setUpActivity', '邮箱配置', b'1', b'1', '邮箱配置 设置启用的邮箱配置', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-06-26 20:32:23.917000', b'1', 0);
+INSERT INTO `iam_perm_path` VALUES (1789978117570945148, 'SmsTemplateController#findById', '通过ID查询', 'GET', '/sms/template/findById', '短信模板配置', b'1', b'1', '短信模板配置 通过ID查询', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-06-26 20:32:23.917000', b'1', 0);
+INSERT INTO `iam_perm_path` VALUES (1789978117570945149, 'DingRobotConfigController#add', '新增机器人配置', 'POST', '/ding/robot/config/add', '钉钉机器人配置', b'1', b'1', '钉钉机器人配置 新增机器人配置', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-06-26 20:32:23.917000', b'1', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945150, 'PayCloseRecordController#findById', '查询单条', 'GET', '/record/close/findById', '支付订单关闭记录', b'1', b'1', '支付订单关闭记录 查询单条', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945151, 'DataVersionLogController#page', '分页', 'GET', '/log/dataVersion/page', '数据版本日志', b'1', b'1', '数据版本日志 分页', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945152, 'OpenApiWebMvcResource#openapiJson', 'openapiJson', 'GET', '/v3/api-docs', 'OpenApiWebMvcResource', b'1', b'1', 'OpenApiWebMvcResource openapiJson', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945153, 'PermPathController#findAll', '权限列表', 'GET', '/perm/path/findAll', '请求权限管理', b'1', b'1', '请求权限管理 权限列表', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945154, 'UserAdminController#add', '添加用户', 'POST', '/user/admin/add', '管理用户(管理员级别)', b'1', b'1', '管理用户(管理员级别) 添加用户', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945155, 'PayCallbackRecordController#findById', '查询单条', 'GET', '/record/callback/findById', '支付回调信息记录', b'1', b'1', '支付回调信息记录 查询单条', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945156, 'WecomRobotConfigController#page', '分页', 'GET', '/wecom/robot/config/page', '企业微信机器人配置', b'1', b'1', '企业微信机器人配置 分页', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945157, 'WeChatMenuController#update', '修改', 'POST', '/wechat/menu/update', '微信菜单管理', b'1', b'1', '微信菜单管理 修改', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
+INSERT INTO `iam_perm_path` VALUES (1789978117570945156, 'WecomRobotConfigController#page', '分页', 'GET', '/wecom/robot/config/page', '企业微信机器人配置', b'1', b'1', '企业微信机器人配置 分页', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-06-26 20:32:23.917000', b'1', 0);
+INSERT INTO `iam_perm_path` VALUES (1789978117570945157, 'WeChatMenuController#update', '修改', 'POST', '/wechat/menu/update', '微信菜单管理', b'1', b'1', '微信菜单管理 修改', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-06-26 20:32:23.917000', b'1', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945158, 'TestController#lock2', '锁测试2', 'GET', '/test/lock2', '测试', b'1', b'1', '测试 锁测试2', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945159, 'DataRoleController#findAll', '查询全部', 'GET', '/data/role/findAll', '数据角色配置', b'1', b'1', '数据角色配置 查询全部', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945160, 'UserInfoController#forgetPasswordByEmail', '通过邮箱重置密码', 'POST', '/user/forgetPasswordByEmail', '用户管理', b'1', b'1', '用户管理 通过邮箱重置密码', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
@@ -1260,7 +1284,7 @@ INSERT INTO `iam_perm_path` VALUES (1789978117570945165, 'PlatformConfigControll
 INSERT INTO `iam_perm_path` VALUES (1789978117570945166, 'UserRoleController#saveAssign', '给用户分配角色', 'POST', '/user/role/saveAssign', '用户角色管理', b'1', b'1', '用户角色管理 给用户分配角色', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945167, 'UniPayController#close', '支付关闭接口', 'POST', '/unipay/close', '统一支付接口', b'1', b'1', '统一支付接口 支付关闭接口', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945168, 'UserDataRoleController#findDataRoleIdByUser', '根据用户ID获取到数据角色Id', 'GET', '/user/data/role/findDataRoleIdByUser', '用户数据角色配置', b'1', b'1', '用户数据角色配置 根据用户ID获取到数据角色Id', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945169, 'MailConfigController#existsByCode', '编码是否被使用', 'GET', '/mail/config/existsByCode', '邮箱配置', b'1', b'1', '邮箱配置 编码是否被使用', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
+INSERT INTO `iam_perm_path` VALUES (1789978117570945169, 'MailConfigController#existsByCode', '编码是否被使用', 'GET', '/mail/config/existsByCode', '邮箱配置', b'1', b'1', '邮箱配置 编码是否被使用', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-06-26 20:32:23.917000', b'1', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945170, 'AllocationGroupController#updateRate', '修改分账比例', 'POST', '/allocation/group/updateRate', '分账组', b'1', b'1', '分账组 修改分账比例', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945171, 'WeChatPayConfigController#getConfig', '获取配置', 'GET', '/wechat/pay/config/getConfig', '微信支付配置', b'1', b'1', '微信支付配置 获取配置', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945172, 'AllocationReceiverController#findChannels', '获取可以分账的通道', 'GET', '/allocation/receiver/findChannels', '分账接收方控制器', b'1', b'1', '分账接收方控制器 获取可以分账的通道', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
@@ -1271,14 +1295,14 @@ INSERT INTO `iam_perm_path` VALUES (1789978117570945176, 'UserAdminController#ge
 INSERT INTO `iam_perm_path` VALUES (1789978117570945177, 'RefundOrderController#syncByRefundNo', '退款同步', 'POST', '/order/refund/syncByRefundNo', '支付退款控制器', b'1', b'1', '支付退款控制器 退款同步', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945178, 'DeptController#delete', '普通删除', 'DELETE', '/dept/delete', '部门管理', b'1', b'1', '部门管理 普通删除', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945179, 'SystemParamController#page', '分页', 'GET', '/system/param/page', '系统参数', b'1', b'1', '系统参数 分页', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945180, 'DingRobotConfigController#existsByCode', '编码是否被使用(不包含自己)', 'GET', '/ding/robot/config/existsByCodeNotId', '钉钉机器人配置', b'1', b'1', '钉钉机器人配置 编码是否被使用(不包含自己)', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
+INSERT INTO `iam_perm_path` VALUES (1789978117570945180, 'DingRobotConfigController#existsByCode', '编码是否被使用(不包含自己)', 'GET', '/ding/robot/config/existsByCodeNotId', '钉钉机器人配置', b'1', b'1', '钉钉机器人配置 编码是否被使用(不包含自己)', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-06-26 20:32:23.917000', b'1', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945181, 'AllocationReceiverController#update', '修改', 'POST', '/allocation/receiver/update', '分账接收方控制器', b'1', b'1', '分账接收方控制器 修改', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-06-03 14:53:25.722000', b'1', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945182, 'AggregateController#qrPayPage', '聚合支付扫码跳转中间页', 'GET', '/demo/aggregate/qrPayPage/{code}', '聚合支付', b'1', b'1', '聚合支付 聚合支付扫码跳转中间页', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945183, 'UserAdminController#getByPhone', '根据手机号查询用户', 'GET', '/user/admin/getByPhone', '管理用户(管理员级别)', b'1', b'1', '管理用户(管理员级别) 根据手机号查询用户', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945184, 'AllocationOrderController#findDetailsByOrderId', '分账明细列表', 'GET', '/order/allocation/detail/findAll', '分账订单控制器', b'1', b'1', '分账订单控制器 分账明细列表', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945185, 'LoginLogController#findById', '获取', 'GET', '/log/login/findById', '登录日志', b'1', b'1', '登录日志 获取', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945186, 'WalletController#existsByUserId', '判断用户是否开通了钱包', 'GET', '/wallet/existsByUserId', '钱包管理', b'1', b'1', '钱包管理 判断用户是否开通了钱包', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945187, 'MailConfigController#add', '增加新邮箱配置', 'POST', '/mail/config/add', '邮箱配置', b'1', b'1', '邮箱配置 增加新邮箱配置', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
+INSERT INTO `iam_perm_path` VALUES (1789978117570945187, 'MailConfigController#add', '增加新邮箱配置', 'POST', '/mail/config/add', '邮箱配置', b'1', b'1', '邮箱配置 增加新邮箱配置', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-06-26 20:32:23.917000', b'1', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945188, 'RoleController#existsByName', '名称是否被使用(不包含自己)', 'GET', '/role/existsByNameNotId', '角色管理', b'1', b'1', '角色管理 名称是否被使用(不包含自己)', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945189, 'PayMethodInfoController#findById', '根据ID获取', 'GET', '/pay/method/info/findById', '支付方式管理', b'1', b'1', '支付方式管理 根据ID获取', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945190, 'UserAdminController#restartPasswordBatch', '批量重置密码', 'POST', '/user/admin/restartPasswordBatch', '管理用户(管理员级别)', b'1', b'1', '管理用户(管理员级别) 批量重置密码', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
@@ -1288,20 +1312,20 @@ INSERT INTO `iam_perm_path` VALUES (1789978117570945193, 'UserDeptController#fin
 INSERT INTO `iam_perm_path` VALUES (1789978117570945194, 'ClientNoticeTaskController#findById', '查询单条', 'GET', '/task/notice/findById', '客户系统通知任务', b'1', b'1', '客户系统通知任务 查询单条', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945195, 'UserThirdController#getThirdBindInfo', '获取绑定详情', 'GET', '/user/third/getThirdBindInfo', '用户三方登录管理', b'1', b'1', '用户三方登录管理 获取绑定详情', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945196, 'OperateLogController#findById', '获取', 'GET', '/log/operate/findById', '操作日志', b'1', b'1', '操作日志 获取', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945197, 'MailConfigController#findById', '通过 id 获取指定邮箱配置', 'GET', '/mail/config/findById', '邮箱配置', b'1', b'1', '邮箱配置 通过 id 获取指定邮箱配置', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
+INSERT INTO `iam_perm_path` VALUES (1789978117570945197, 'MailConfigController#findById', '通过 id 获取指定邮箱配置', 'GET', '/mail/config/findById', '邮箱配置', b'1', b'1', '邮箱配置 通过 id 获取指定邮箱配置', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-06-26 20:32:23.917000', b'1', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945198, 'AggregateController#getWxJsapiPay', '获取微信支付调起Jsapi支付的信息', 'POST', '/demo/aggregate/getWxJsapiPay', '聚合支付', b'1', b'1', '聚合支付 获取微信支付调起Jsapi支付的信息', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945199, 'PermPathController#delete', '删除权限', 'DELETE', '/perm/path/delete', '请求权限管理', b'1', b'1', '请求权限管理 删除权限', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945200, 'WeChatPayConfigController#findPayWays', '微信支持支付方式', 'GET', '/wechat/pay/config/findPayWays', '微信支付配置', b'1', b'1', '微信支付配置 微信支持支付方式', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945201, 'UserAssistController#validatePhoneChangeCaptcha', '验证改/绑定手机验证码', 'GET', '/user/validatePhoneChangeCaptcha', '用户操作支撑服务', b'1', b'1', '用户操作支撑服务 验证改/绑定手机验证码', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945202, 'UserAssistController#validateEmailForgetCaptcha', '验证找回密码邮箱验证码', 'GET', '/user/validateEmailForgetCaptcha', '用户操作支撑服务', b'1', b'1', '用户操作支撑服务 验证找回密码邮箱验证码', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945203, 'ReconcileOrderController#downOriginal', '下载原始交易对账单文件', 'GET', '/order/reconcile/downOriginal', '对账控制器', b'1', b'1', '对账控制器 下载原始交易对账单文件', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945204, 'SmsChannelConfigController#update', '修改', 'POST', '/sms/config/update', '短信渠道配置', b'1', b'1', '短信渠道配置 修改', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
+INSERT INTO `iam_perm_path` VALUES (1789978117570945204, 'SmsChannelConfigController#update', '修改', 'POST', '/sms/config/update', '短信渠道配置', b'1', b'1', '短信渠道配置 修改', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-06-26 20:32:23.917000', b'1', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945205, 'LoginTypeController#delete', '删除登录方式', 'DELETE', '/loginType/delete', '登录方式管理', b'1', b'1', '登录方式管理 删除登录方式', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945206, 'DeptController#update', '更新', 'POST', '/dept/update', '部门管理', b'1', b'1', '部门管理 更新', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945207, 'WeChatTemplateController#sync', '同步消息模板数据', 'POST', '/wechat/template/sync', '微信模板消息', b'1', b'1', '微信模板消息 同步消息模板数据', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
+INSERT INTO `iam_perm_path` VALUES (1789978117570945207, 'WeChatTemplateController#sync', '同步消息模板数据', 'POST', '/wechat/template/sync', '微信模板消息', b'1', b'1', '微信模板消息 同步消息模板数据', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-06-26 20:32:23.917000', b'1', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945208, 'UserDeptController#saveAssignBatch', '给用户分配部门(批量)', 'POST', '/user/dept/saveAssignBatch', '用户部门关联关系', b'1', b'1', '用户部门关联关系 给用户分配部门(批量)', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945209, 'UserAdminController#unlockBatch', '批量解锁用户', 'POST', '/user/admin/unlockBatch', '管理用户(管理员级别)', b'1', b'1', '管理用户(管理员级别) 批量解锁用户', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945210, 'WecomRobotConfigController#existsByCode', '编码是否被使用(不包含自己)', 'GET', '/wecom/robot/config/existsByCodeNotId', '企业微信机器人配置', b'1', b'1', '企业微信机器人配置 编码是否被使用(不包含自己)', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
+INSERT INTO `iam_perm_path` VALUES (1789978117570945210, 'WecomRobotConfigController#existsByCode', '编码是否被使用(不包含自己)', 'GET', '/wecom/robot/config/existsByCodeNotId', '企业微信机器人配置', b'1', b'1', '企业微信机器人配置 编码是否被使用(不包含自己)', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-06-26 20:32:23.917000', b'1', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945211, 'WeChatPayConfigController#update', '更新', 'POST', '/wechat/pay/config/update', '微信支付配置', b'1', b'1', '微信支付配置 更新', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945212, 'UserThirdController#findById', '获取详情', 'POST', '/user/third/findById', '用户三方登录管理', b'1', b'1', '用户三方登录管理 获取详情', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945213, 'RefundOrderController#resetRefund', '重新发起退款', 'POST', '/order/refund/resetRefund', '支付退款控制器', b'1', b'1', '支付退款控制器 重新发起退款', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
@@ -1310,7 +1334,7 @@ INSERT INTO `iam_perm_path` VALUES (1789978117570945215, 'ReconcileOrderControll
 INSERT INTO `iam_perm_path` VALUES (1789978117570945216, 'QuartzJobController#execute', '立即执行', 'POST', '/quartz/execute', '定时任务', b'1', b'1', '定时任务 立即执行', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945217, 'QuartzJobController#start', '启动', 'POST', '/quartz/start', '定时任务', b'1', b'1', '定时任务 启动', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945218, 'DictionaryController#findAll', '查询全部', 'GET', '/dict/findAll', '字典', b'1', b'1', '字典 查询全部', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945219, 'WeChatMediaController#deleteFile', '删除素材', 'DELETE', '/wechat/media/deleteFile', '微信素材管理', b'1', b'1', '微信素材管理 删除素材', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
+INSERT INTO `iam_perm_path` VALUES (1789978117570945219, 'WeChatMediaController#deleteFile', '删除素材', 'DELETE', '/wechat/media/deleteFile', '微信素材管理', b'1', b'1', '微信素材管理 删除素材', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-06-26 20:32:23.916000', b'1', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945220, 'UniPayController#allocationFinish', '分账完结接口', 'POST', '/unipay/allocationFinish', '统一支付接口', b'1', b'1', '统一支付接口 分账完结接口', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-06-03 14:53:25.716000', b'1', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945221, 'DataRoleController#update', '更新', 'POST', '/data/role/update', '数据角色配置', b'1', b'1', '数据角色配置 更新', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945222, 'UnionPayConfigController#toBase64', '读取证书文件内容', 'POST', '/union/pay/config/toBase64', '云闪付配置', b'1', b'1', '云闪付配置 读取证书文件内容', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
@@ -1324,7 +1348,7 @@ INSERT INTO `iam_perm_path` VALUES (1789978117570945229, 'RoleController#existsB
 INSERT INTO `iam_perm_path` VALUES (1789978117570945230, 'CockpitReportController#getPayChannelInfo', '显示通道支付订单金额和订单数', 'GET', '/report/cockpit/getPayChannelInfo', '驾驶舱接口', b'1', b'1', '驾驶舱接口 显示通道支付订单金额和订单数', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945231, 'AllocationReceiverController#findReceiverTypeByChannel', '根据通道获取分账接收方类型', 'GET', '/allocation/receiver/findReceiverTypeByChannel', '分账接收方控制器', b'1', b'1', '分账接收方控制器 根据通道获取分账接收方类型', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945232, 'UserAdminController#unlock', '解锁用户', 'POST', '/user/admin/unlock', '管理用户(管理员级别)', b'1', b'1', '管理用户(管理员级别) 解锁用户', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945233, 'WecomRobotConfigController#add', '新增机器人配置', 'POST', '/wecom/robot/config/add', '企业微信机器人配置', b'1', b'1', '企业微信机器人配置 新增机器人配置', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
+INSERT INTO `iam_perm_path` VALUES (1789978117570945233, 'WecomRobotConfigController#add', '新增机器人配置', 'POST', '/wecom/robot/config/add', '企业微信机器人配置', b'1', b'1', '企业微信机器人配置 新增机器人配置', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-06-26 20:32:23.916000', b'1', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945234, 'AllocationGroupController#setDefault', '设置默认分账组', 'POST', '/allocation/group/setDefault', '分账组', b'1', b'1', '分账组 设置默认分账组', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945235, 'UserAdminController#findById', '根据用户id查询用户', 'GET', '/user/admin/findById', '管理用户(管理员级别)', b'1', b'1', '管理用户(管理员级别) 根据用户id查询用户', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945236, 'PayRepairRecordController#page', '分页查询', 'GET', '/record/repair/page', '支付修复记录', b'1', b'1', '支付修复记录 分页查询', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
@@ -1333,10 +1357,10 @@ INSERT INTO `iam_perm_path` VALUES (1789978117570945238, 'PasswordSecurityConfig
 INSERT INTO `iam_perm_path` VALUES (1789978117570945239, 'WalletController#deduct', '扣减', 'POST', '/wallet/deduct', '钱包管理', b'1', b'1', '钱包管理 扣减', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945240, 'FIleUpLoadController#getFilePreviewUrlPrefix', '获取文件预览地址前缀', 'GET', '/file/getFilePreviewUrlPrefix', '文件上传', b'1', b'1', '文件上传 获取文件预览地址前缀', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945241, 'PermMenuController#existsByPermCode', '编码是否被使用(不包含自己)', 'GET', '/perm/menu/existsByPermCodeNotId', '菜单和权限码', b'1', b'1', '菜单和权限码 编码是否被使用(不包含自己)', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945242, 'WeChatTemplateController#update', '修改', 'POST', '/wechat/template/update', '微信模板消息', b'1', b'1', '微信模板消息 修改', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
+INSERT INTO `iam_perm_path` VALUES (1789978117570945242, 'WeChatTemplateController#update', '修改', 'POST', '/wechat/template/update', '微信模板消息', b'1', b'1', '微信模板消息 修改', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-06-26 20:32:23.916000', b'1', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945243, 'CashierController#queryPayOrder', '查询支付订单', 'GET', '/demo/cashier/queryPayOrderSuccess', '结算台演示', b'1', b'1', '结算台演示 查询支付订单', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945244, 'ReconcileOrderController#downOriginal2Csv', '下载原始交易对账单记录(CSV格式)', 'GET', '/order/reconcile/downOriginal2Csv', '对账控制器', b'1', b'1', '对账控制器 下载原始交易对账单记录(CSV格式)', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945245, 'SmsChannelConfigController#findAll', '查询所有', 'GET', '/sms/config/findAll', '短信渠道配置', b'1', b'1', '短信渠道配置 查询所有', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
+INSERT INTO `iam_perm_path` VALUES (1789978117570945245, 'SmsChannelConfigController#findAll', '查询所有', 'GET', '/sms/config/findAll', '短信渠道配置', b'1', b'1', '短信渠道配置 查询所有', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-06-26 20:32:23.916000', b'1', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945246, 'RoleMenuController#getPermissions', '获取菜单和权限码(根据用户进行筛选)', 'GET', '/role/menu/getPermissions', '角色菜单权限关系', b'1', b'1', '角色菜单权限关系 获取菜单和权限码(根据用户进行筛选)', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945247, 'UserRoleController#findRoleIdsByUser', '根据用户ID获取到角色id集合', 'GET', '/user/role/findRoleIdsByUser', '用户角色管理', b'1', b'1', '用户角色管理 根据用户ID获取到角色id集合', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945248, 'AllocationGroupController#update', '修改', 'POST', '/allocation/group/update', '分账组', b'1', b'1', '分账组 修改', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
@@ -1344,7 +1368,7 @@ INSERT INTO `iam_perm_path` VALUES (1789978117570945249, 'FIleUpLoadController#p
 INSERT INTO `iam_perm_path` VALUES (1789978117570945250, 'QuartzJobController#judgeJobClass', '判断是否是定时任务类', 'GET', '/quartz/judgeJobClass', '定时任务', b'1', b'1', '定时任务 判断是否是定时任务类', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945251, 'PayOrderController#getTotalAmount', '查询金额汇总', 'GET', '/order/pay/getTotalAmount', '支付订单控制器', b'1', b'1', '支付订单控制器 查询金额汇总', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945252, 'UserAssistController#sendCurrentEmailChangeCaptcha', '给当前用户发送更改邮箱验证码', 'POST', '/user/sendCurrentEmailChangeCaptcha', '用户操作支撑服务', b'1', b'1', '用户操作支撑服务 给当前用户发送更改邮箱验证码', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945253, 'WecomRobotConfigController#update', '修改机器人配置', 'POST', '/wecom/robot/config/update', '企业微信机器人配置', b'1', b'1', '企业微信机器人配置 修改机器人配置', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
+INSERT INTO `iam_perm_path` VALUES (1789978117570945253, 'WecomRobotConfigController#update', '修改机器人配置', 'POST', '/wecom/robot/config/update', '企业微信机器人配置', b'1', b'1', '企业微信机器人配置 修改机器人配置', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-06-26 20:32:23.916000', b'1', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945254, 'UserThirdController#bind', '绑定第三方账号', 'POST', '/user/third/bind', '用户三方登录管理', b'1', b'1', '用户三方登录管理 绑定第三方账号', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945255, 'RoleController#tree', '角色树', 'GET', '/role/tree', '角色管理', b'1', b'1', '角色管理 角色树', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945256, 'UniPayController#pay', '统一支付接口', 'POST', '/unipay/pay', '统一支付接口', b'1', b'1', '统一支付接口 统一支付接口', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
@@ -1362,7 +1386,7 @@ INSERT INTO `iam_perm_path` VALUES (1789978117570945267, 'UserInfoController#exi
 INSERT INTO `iam_perm_path` VALUES (1789978117570945268, 'UserDeptController#saveAssign', '给用户分配部门', 'POST', '/user/dept/saveAssign', '用户部门关联关系', b'1', b'1', '用户部门关联关系 给用户分配部门', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945269, 'CockpitReportController#getPayOrderCount', '支付订单数量', 'GET', '/report/cockpit/getPayOrderCount', '驾驶舱接口', b'1', b'1', '驾驶舱接口 支付订单数量', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945270, 'UserAssistController#sendEmailForgetCaptcha', '发送找回密码邮箱验证码', 'POST', '/user/sendEmailForgetCaptcha', '用户操作支撑服务', b'1', b'1', '用户操作支撑服务 发送找回密码邮箱验证码', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945271, 'WecomRobotConfigController#findById', '获取详情', 'GET', '/wecom/robot/config/findById', '企业微信机器人配置', b'1', b'1', '企业微信机器人配置 获取详情', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
+INSERT INTO `iam_perm_path` VALUES (1789978117570945271, 'WecomRobotConfigController#findById', '获取详情', 'GET', '/wecom/robot/config/findById', '企业微信机器人配置', b'1', b'1', '企业微信机器人配置 获取详情', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-06-26 20:32:23.916000', b'1', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945272, 'ClientNoticeTaskController#recordPage', '分页查询', 'GET', '/task/notice/record/page', '客户系统通知任务', b'1', b'1', '客户系统通知任务 分页查询', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945273, 'RefundOrderController#findById', '查询单条', 'GET', '/order/refund/findById', '支付退款控制器', b'1', b'1', '支付退款控制器 查询单条', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945274, 'UserDataRoleController#findDataRoleByUser', '根据用户ID获取到数据角色列表', 'GET', '/user/data/role/findDataRoleByUser', '用户数据角色配置', b'1', b'1', '用户数据角色配置 根据用户ID获取到数据角色列表', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
@@ -1370,35 +1394,35 @@ INSERT INTO `iam_perm_path` VALUES (1789978117570945275, 'ChinaRegionController#
 INSERT INTO `iam_perm_path` VALUES (1789978117570945276, 'DataRoleController#existsByName', '名称是否被使用', 'GET', '/data/role/existsByName', '数据角色配置', b'1', b'1', '数据角色配置 名称是否被使用', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945277, 'AllocationGroupController#create', '创建', 'POST', '/allocation/group/create', '分账组', b'1', b'1', '分账组 创建', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945278, 'UserAssistController#validatePhoneForgetCaptcha', '验证找回密码手机验证码', 'GET', '/user/validatePhoneForgetCaptcha', '用户操作支撑服务', b'1', b'1', '用户操作支撑服务 验证找回密码手机验证码', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945279, 'PayChannelConfigController#update', '更新', 'POST', '/pay/channel/config/update', '支付通道信息', b'1', b'1', '支付通道信息 更新', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
+INSERT INTO `iam_perm_path` VALUES (1789978117570945279, 'PayChannelConfigController#update', '更新', 'POST', '/pay/channel/config/update', '支付通道信息', b'1', b'1', '支付通道信息 更新', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-06-26 20:32:23.916000', b'1', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945280, 'DictionaryController#existsByCode', '编码是否被使用(不包含自己)', 'GET', '/dict/existsByCodeNotId', '字典', b'1', b'1', '字典 编码是否被使用(不包含自己)', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945281, 'PermMenuController#menuTree', '获取菜单树', 'GET', '/perm/menu/menuTree', '菜单和权限码', b'1', b'1', '菜单和权限码 获取菜单树', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945282, 'DictionaryItemController#delete', '删除字典项', 'DELETE', '/dict/item/delete', '字典项', b'1', b'1', '字典项 删除字典项', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945283, 'DingRobotConfigController#existsByCode', '编码是否被使用', 'GET', '/ding/robot/config/existsByCode', '钉钉机器人配置', b'1', b'1', '钉钉机器人配置 编码是否被使用', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945284, 'SiteMessageController#countByReceiveNotRead', '获取未读的接收消息条数', 'GET', '/site/message/countByReceiveNotRead', '站内信', b'1', b'1', '站内信 获取未读的接收消息条数', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945285, 'WecomRobotConfigController#findAll', '查询全部', 'GET', '/wecom/robot/config/findAll', '企业微信机器人配置', b'1', b'1', '企业微信机器人配置 查询全部', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945286, 'PayReturnController#union', '云闪付同步通知', 'POST', '/return/pay/union', '支付同步通知', b'1', b'1', '支付同步通知 云闪付同步通知', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
+INSERT INTO `iam_perm_path` VALUES (1789978117570945283, 'DingRobotConfigController#existsByCode', '编码是否被使用', 'GET', '/ding/robot/config/existsByCode', '钉钉机器人配置', b'1', b'1', '钉钉机器人配置 编码是否被使用', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-06-26 20:32:23.916000', b'1', 0);
+INSERT INTO `iam_perm_path` VALUES (1789978117570945284, 'SiteMessageController#countByReceiveNotRead', '获取未读的接收消息条数', 'GET', '/site/message/countByReceiveNotRead', '站内信', b'1', b'1', '站内信 获取未读的接收消息条数', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-06-26 20:32:23.916000', b'1', 0);
+INSERT INTO `iam_perm_path` VALUES (1789978117570945285, 'WecomRobotConfigController#findAll', '查询全部', 'GET', '/wecom/robot/config/findAll', '企业微信机器人配置', b'1', b'1', '企业微信机器人配置 查询全部', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-06-26 20:32:23.916000', b'1', 0);
+INSERT INTO `iam_perm_path` VALUES (1789978117570945286, 'PayReturnController#union', '云闪付同步通知', 'POST', '/return/pay/union', '支付同步通知', b'1', b'1', '支付同步通知 云闪付同步通知', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-06-26 20:32:23.916000', b'1', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945287, 'UserAssistController#validateCurrentPhoneChangeCaptcha', '验证当前用户发送更改手机号验证码', 'GET', '/user/validateCurrentPhoneChangeCaptcha', '用户操作支撑服务', b'1', b'1', '用户操作支撑服务 验证当前用户发送更改手机号验证码', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945288, 'WeChatTemplateController#page', '分页查询', 'GET', '/wechat/template/page', '微信模板消息', b'1', b'1', '微信模板消息 分页查询', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945289, 'SmsTemplateController#add', '添加', 'POST', '/sms/template/add', '短信模板配置', b'1', b'1', '短信模板配置 添加', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
+INSERT INTO `iam_perm_path` VALUES (1789978117570945288, 'WeChatTemplateController#page', '分页查询', 'GET', '/wechat/template/page', '微信模板消息', b'1', b'1', '微信模板消息 分页查询', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-06-26 20:32:23.916000', b'1', 0);
+INSERT INTO `iam_perm_path` VALUES (1789978117570945289, 'SmsTemplateController#add', '添加', 'POST', '/sms/template/add', '短信模板配置', b'1', b'1', '短信模板配置 添加', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-06-26 20:32:23.916000', b'1', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945290, 'PermPathController#batchUpdateEnable', '批量更新状态', 'POST', '/perm/path/batchUpdateEnable', '请求权限管理', b'1', b'1', '请求权限管理 批量更新状态', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945291, 'DingRobotConfigController#findAll', '查询全部', 'GET', '/ding/robot/config/findAll', '钉钉机器人配置', b'1', b'1', '钉钉机器人配置 查询全部', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
+INSERT INTO `iam_perm_path` VALUES (1789978117570945291, 'DingRobotConfigController#findAll', '查询全部', 'GET', '/ding/robot/config/findAll', '钉钉机器人配置', b'1', b'1', '钉钉机器人配置 查询全部', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-06-26 20:32:23.915000', b'1', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945292, 'QuartzJobController#syncJobStatus', '同步定时任务状态', 'POST', '/quartz/syncJobStatus', '定时任务', b'1', b'1', '定时任务 同步定时任务状态', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945293, 'SiteMessageController#cancel', '撤回消息', 'POST', '/site/message/cancel', '站内信', b'1', b'1', '站内信 撤回消息', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
+INSERT INTO `iam_perm_path` VALUES (1789978117570945293, 'SiteMessageController#cancel', '撤回消息', 'POST', '/site/message/cancel', '站内信', b'1', b'1', '站内信 撤回消息', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-06-26 20:32:23.915000', b'1', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945294, 'DictionaryItemController#findAll', '获取全部字典项', 'GET', '/dict/item/findAll', '字典项', b'1', b'1', '字典项 获取全部字典项', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945295, 'UserAssistController#validateEmailCaptcha', '验证更改/绑定邮箱验证码', 'GET', '/user/validateEmailChangeCaptcha', '用户操作支撑服务', b'1', b'1', '用户操作支撑服务 验证更改/绑定邮箱验证码', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945296, 'PermMenuController#findById', '根据id查询', 'GET', '/perm/menu/findById', '菜单和权限码', b'1', b'1', '菜单和权限码 根据id查询', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945297, 'RoleMenuController#findPermissionIdsByRole', '获取当前角色下关联权限id集合(包含权限码和菜单)', 'GET', '/role/menu/findPermissionIdsByRole', '角色菜单权限关系', b'1', b'1', '角色菜单权限关系 获取当前角色下关联权限id集合(包含权限码和菜单)', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945298, 'SwaggerConfigResource#openapiJson', 'openapiJson', 'GET', '/v3/api-docs/swagger-config', 'SwaggerConfigResource', b'1', b'1', 'SwaggerConfigResource openapiJson', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945299, 'UnionPayConfigController#update', '更新', 'POST', '/union/pay/config/update', '云闪付配置', b'1', b'1', '云闪付配置 更新', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945300, 'WecomRobotConfigController#delete', '删除', 'DELETE', '/wecom/robot/config/delete', '企业微信机器人配置', b'1', b'1', '企业微信机器人配置 删除', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
+INSERT INTO `iam_perm_path` VALUES (1789978117570945300, 'WecomRobotConfigController#delete', '删除', 'DELETE', '/wecom/robot/config/delete', '企业微信机器人配置', b'1', b'1', '企业微信机器人配置 删除', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-06-26 20:32:23.915000', b'1', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945301, 'TokenEndpoint#login', '普通登录', 'POST', '/token/login', '认证相关', b'1', b'1', '认证相关 普通登录', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945302, 'RefundOrderController#refund', '手动发起退款', 'POST', '/order/refund/refund', '支付退款控制器', b'1', b'1', '支付退款控制器 手动发起退款', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945303, 'QuartzJobController#page', '分页', 'GET', '/quartz/page', '定时任务', b'1', b'1', '定时任务 分页', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945304, 'CockpitReportController#getPayAmount', '支付金额(分)', 'GET', '/report/cockpit/getPayAmount', '驾驶舱接口', b'1', b'1', '驾驶舱接口 支付金额(分)', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945305, 'SiteMessageController#saveOrUpdate', '保存站内信草稿', 'POST', '/site/message/saveOrUpdate', '站内信', b'1', b'1', '站内信 保存站内信草稿', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
+INSERT INTO `iam_perm_path` VALUES (1789978117570945305, 'SiteMessageController#saveOrUpdate', '保存站内信草稿', 'POST', '/site/message/saveOrUpdate', '站内信', b'1', b'1', '站内信 保存站内信草稿', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-06-26 20:32:23.914000', b'1', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945306, 'UserAdminController#ban', '封禁用户', 'POST', '/user/admin/ban', '管理用户(管理员级别)', b'1', b'1', '管理用户(管理员级别) 封禁用户', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1789978117570945307, 'MessageTemplateController#rendering', '渲染模板', 'POST', '/message/template/rendering', '消息模板', b'1', b'1', '消息模板 渲染模板', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
+INSERT INTO `iam_perm_path` VALUES (1789978117570945307, 'MessageTemplateController#rendering', '渲染模板', 'POST', '/message/template/rendering', '消息模板', b'1', b'1', '消息模板 渲染模板', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-06-26 20:32:23.914000', b'1', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945308, 'WalletController#create', '创建钱包', 'POST', '/wallet/create', '钱包管理', b'1', b'1', '钱包管理 创建钱包', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945309, 'PermPathController#syncSystem', '同步系统请求资源', 'POST', '/perm/path/syncSystem', '请求权限管理', b'1', b'1', '请求权限管理 同步系统请求资源', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945310, 'SystemParamController#existsByKey', '判断编码是否存在', 'GET', '/system/param/existsByKey', '系统参数', b'1', b'1', '系统参数 判断编码是否存在', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
@@ -1406,7 +1430,7 @@ INSERT INTO `iam_perm_path` VALUES (1789978117570945311, 'BaseApiController#echo
 INSERT INTO `iam_perm_path` VALUES (1789978117570945312, 'ReconcileOrderController#findDiffById', '对账差异详情', 'GET', '/order/reconcile/diff/findById', '对账控制器', b'1', b'1', '对账控制器 对账差异详情', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945313, 'PaySyncRecordController#page', '分页查询', 'GET', '/record/sync/page', '支付同步记录控制器', b'1', b'1', '支付同步记录控制器 分页查询', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1789978117570945314, 'CashierController#getWxAuthUrl', '获取微信授权链接', 'GET', '/demo/cashier/getWxAuthUrl', '结算台演示', b'1', b'1', '结算台演示 获取微信授权链接', 1399985191002447872, '2024-05-13 19:16:54.071000', 1399985191002447872, '2024-05-13 19:16:54.071000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1797521957446066176, 'PayNoticeReceiverController#wechatPayNotice', '微信消息通知', 'POST', '/callback/notice/wechat', '执法通道网关消息通知', b'1', b'1', '执法通道网关消息通知 微信消息通知', 1399985191002447872, '2024-06-03 14:53:25.655000', 1399985191002447872, '2024-06-03 14:53:25.655000', b'0', 0);
+INSERT INTO `iam_perm_path` VALUES (1797521957446066176, 'PayNoticeReceiverController#wechatPayNotice', '微信消息通知', 'POST', '/callback/notice/wechat', '执法通道网关消息通知', b'1', b'1', '执法通道网关消息通知 微信消息通知', 1399985191002447872, '2024-06-03 14:53:25.655000', 1399985191002447872, '2024-06-26 20:32:23.914000', b'1', 0);
 INSERT INTO `iam_perm_path` VALUES (1797521957446066177, 'AllocationReceiverController#existsByReceiverNo', '编码是否存在', 'GET', '/allocation/receiver/existsByReceiverNo', '分账接收方控制器', b'1', b'1', '分账接收方控制器 编码是否存在', 1399985191002447872, '2024-06-03 14:53:25.655000', 1399985191002447872, '2024-06-03 14:53:25.655000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1797521957446066178, 'UniAllocationController#start', '发起分账接口', 'POST', '/unipay/allocation/start', '分账控制器', b'1', b'1', '分账控制器 发起分账接口', 1399985191002447872, '2024-06-03 14:53:25.655000', 1399985191002447872, '2024-06-03 14:53:25.655000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1797521957446066179, 'UniPayController#transfer', '统一转账接口', 'POST', '/unipay/transfer', '统一支付接口', b'1', b'1', '统一支付接口 统一转账接口', 1399985191002447872, '2024-06-03 14:53:25.655000', 1399985191002447872, '2024-06-03 14:53:25.655000', b'0', 0);
@@ -1427,10 +1451,39 @@ INSERT INTO `iam_perm_path` VALUES (1797521957446066193, 'UniPaySyncController#t
 INSERT INTO `iam_perm_path` VALUES (1797521957446066194, 'ClientNoticeReceiveController#allocation', '分账消息', 'POST', '/demo/callback/allocation', '回调测试', b'1', b'1', '回调测试 分账消息', 1399985191002447872, '2024-06-03 14:53:25.655000', 1399985191002447872, '2024-06-03 14:53:25.655000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1797521957446066195, 'UniQueryController#queryAllocReceive', '分账接收方查询接口', 'POST', '/unipay/query/allocationReceiver', '统一查询接口', b'1', b'1', '统一查询接口 分账接收方查询接口', 1399985191002447872, '2024-06-03 14:53:25.655000', 1399985191002447872, '2024-06-03 14:53:25.655000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1797521957446066196, 'UniAllocationController#finish', '分账完结接口', 'POST', '/unipay/allocation/finish', '分账控制器', b'1', b'1', '分账控制器 分账完结接口', 1399985191002447872, '2024-06-03 14:53:25.655000', 1399985191002447872, '2024-06-03 14:53:25.655000', b'0', 0);
-INSERT INTO `iam_perm_path` VALUES (1797521957446066197, 'PayNoticeReceiverController#aliPayNotice', '支付宝消息通知', 'POST', '/callback/notice/alipay', '执法通道网关消息通知', b'1', b'1', '执法通道网关消息通知 支付宝消息通知', 1399985191002447872, '2024-06-03 14:53:25.655000', 1399985191002447872, '2024-06-03 14:53:25.655000', b'0', 0);
+INSERT INTO `iam_perm_path` VALUES (1797521957446066197, 'PayNoticeReceiverController#aliPayNotice', '支付宝消息通知', 'POST', '/callback/notice/alipay', '执法通道网关消息通知', b'1', b'1', '执法通道网关消息通知 支付宝消息通知', 1399985191002447872, '2024-06-03 14:53:25.655000', 1399985191002447872, '2024-06-26 20:32:23.913000', b'1', 0);
 INSERT INTO `iam_perm_path` VALUES (1797521957446066198, 'UniQueryController#queryRefundOrder', '退款订单查询接口', 'POST', '/unipay/query/refundOrder', '统一查询接口', b'1', b'1', '统一查询接口 退款订单查询接口', 1399985191002447872, '2024-06-03 14:53:25.655000', 1399985191002447872, '2024-06-03 14:53:25.655000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1797521957446066199, 'TradeFlowRecordController#page', '分页查询', 'GET', '/record/flow/page', '交易流水记录控制器', b'1', b'1', '交易流水记录控制器 分页查询', 1399985191002447872, '2024-06-03 14:53:25.655000', 1399985191002447872, '2024-06-03 14:53:25.655000', b'0', 0);
 INSERT INTO `iam_perm_path` VALUES (1797521957446066200, 'UniAllocationController#receiverRemove', '分账接收方删除接口', 'POST', '/unipay/allocation/receiver/remove', '分账控制器', b'1', b'1', '分账控制器 分账接收方删除接口', 1399985191002447872, '2024-06-03 14:53:25.655000', 1399985191002447872, '2024-06-03 14:53:25.655000', b'0', 0);
+INSERT INTO `iam_perm_path` VALUES (1805942182965153792, 'WeChatPayConfigController#generateReturnUrl', '生成同步通知地址', 'GET', '/wechat/pay/config/generateReturnUrl', '微信支付配置', b'1', b'1', '微信支付配置 生成同步通知地址', 1399985191002447872, '2024-06-26 20:32:23.859000', 1399985191002447872, '2024-06-26 20:32:23.859000', b'0', 0);
+INSERT INTO `iam_perm_path` VALUES (1805942182965153793, 'TransferOrderController#getTotalAmount', '查询金额汇总', 'GET', '/order/transfer/getTotalAmount', '转账订单控制器', b'1', b'1', '转账订单控制器 查询金额汇总', 1399985191002447872, '2024-06-26 20:32:23.859000', 1399985191002447872, '2024-06-26 20:32:23.859000', b'0', 0);
+INSERT INTO `iam_perm_path` VALUES (1805942182965153794, 'UnionPayConfigController#generateReturnUrl', '生成同步通知地址', 'GET', '/union/pay/config/generateReturnUrl', '云闪付配置', b'1', b'1', '云闪付配置 生成同步通知地址', 1399985191002447872, '2024-06-26 20:32:23.859000', 1399985191002447872, '2024-06-26 20:32:23.859000', b'0', 0);
+INSERT INTO `iam_perm_path` VALUES (1805942182965153795, 'AlipayConfigController#generateReturnUrl', '生成同步通知地址', 'GET', '/alipay/config/generateReturnUrl', '支付宝配置', b'1', b'1', '支付宝配置 生成同步通知地址', 1399985191002447872, '2024-06-26 20:32:23.859000', 1399985191002447872, '2024-06-26 20:32:23.859000', b'0', 0);
+INSERT INTO `iam_perm_path` VALUES (1805942182965153796, 'AliPayAuthController#queryOpenId', '根据标识码查询OpenId', 'GET', '/alipay/auth/queryOpenId', '支付宝认证控制器', b'1', b'1', '支付宝认证控制器 根据标识码查询OpenId', 1399985191002447872, '2024-06-26 20:32:23.859000', 1399985191002447872, '2024-06-26 20:32:23.859000', b'0', 0);
+INSERT INTO `iam_perm_path` VALUES (1805942182965153797, 'CallbackReceiverController#wechatPayNotify', '微信支付信息回调', 'POST', '/unipay/callback/wechat', '支付通道信息回调', b'1', b'1', '支付通道信息回调 微信支付信息回调', 1399985191002447872, '2024-06-26 20:32:23.859000', 1399985191002447872, '2024-06-26 20:32:23.859000', b'0', 0);
+INSERT INTO `iam_perm_path` VALUES (1805942182965153798, 'TransferOrderController#page', '分页查询', 'GET', '/order/transfer/page', '转账订单控制器', b'1', b'1', '转账订单控制器 分页查询', 1399985191002447872, '2024-06-26 20:32:23.859000', 1399985191002447872, '2024-06-26 20:32:23.859000', b'0', 0);
+INSERT INTO `iam_perm_path` VALUES (1805942182965153799, 'AlipayConfigController#generateNotifyUrl', '生成异步通知地址', 'GET', '/alipay/config/generateNotifyUrl', '支付宝配置', b'1', b'1', '支付宝配置 生成异步通知地址', 1399985191002447872, '2024-06-26 20:32:23.859000', 1399985191002447872, '2024-06-26 20:32:23.859000', b'0', 0);
+INSERT INTO `iam_perm_path` VALUES (1805942182965153800, 'UnionPayConfigController#generateNotifyUrl', '生成异步通知地址', 'GET', '/union/pay/config/generateNotifyUrl', '云闪付配置', b'1', b'1', '云闪付配置 生成异步通知地址', 1399985191002447872, '2024-06-26 20:32:23.859000', 1399985191002447872, '2024-06-26 20:32:23.859000', b'0', 0);
+INSERT INTO `iam_perm_path` VALUES (1805942182965153801, 'UniPayController#cancel', '支付撤销接口', 'POST', '/unipay/cancel', '统一支付接口', b'1', b'1', '统一支付接口 支付撤销接口', 1399985191002447872, '2024-06-26 20:32:23.859000', 1399985191002447872, '2024-06-26 20:32:23.859000', b'0', 0);
+INSERT INTO `iam_perm_path` VALUES (1805942182965153802, 'NoticeReceiverController#aliPayNotice', '支付宝消息通知', 'POST', '/unipay/notice/alipay', '支付通道网关消息通知', b'1', b'1', '支付通道网关消息通知 支付宝消息通知', 1399985191002447872, '2024-06-26 20:32:23.859000', 1399985191002447872, '2024-06-26 20:32:23.859000', b'0', 0);
+INSERT INTO `iam_perm_path` VALUES (1805942182965153803, 'WechatAuthController#generateAuthUrl', '返回获取OpenId授权页面地址和标识码', 'POST', '/wechat/auth/generateAuthUrl', '微信认证控制器', b'1', b'1', '微信认证控制器 返回获取OpenId授权页面地址和标识码', 1399985191002447872, '2024-06-26 20:32:23.859000', 1399985191002447872, '2024-06-26 20:32:23.859000', b'0', 0);
+INSERT INTO `iam_perm_path` VALUES (1805942182965153804, 'TransferOrderController#findByBizTransferNo', '根据商户转账号查询', 'GET', '/order/transfer/findByBizTransferNo', '转账订单控制器', b'1', b'1', '转账订单控制器 根据商户转账号查询', 1399985191002447872, '2024-06-26 20:32:23.859000', 1399985191002447872, '2024-06-26 20:32:23.859000', b'0', 0);
+INSERT INTO `iam_perm_path` VALUES (1805942182965153805, 'TransferOrderController#findByTransferNo', '根据转账号查询', 'GET', '/order/transfer/findByTransferNo', '转账订单控制器', b'1', b'1', '转账订单控制器 根据转账号查询', 1399985191002447872, '2024-06-26 20:32:23.859000', 1399985191002447872, '2024-06-26 20:32:23.859000', b'0', 0);
+INSERT INTO `iam_perm_path` VALUES (1805942182965153806, 'NoticeReceiverController#wechatPayNotice', '微信消息通知', 'POST', '/unipay/notice/wechat', '支付通道网关消息通知', b'1', b'1', '支付通道网关消息通知 微信消息通知', 1399985191002447872, '2024-06-26 20:32:23.859000', 1399985191002447872, '2024-06-26 20:32:23.859000', b'0', 0);
+INSERT INTO `iam_perm_path` VALUES (1805942182965153807, 'CallbackReceiverController#wechatCallback', '支付宝认证授权回调', 'GET', '/unipay/callback/alipay/auth/{code}', '支付通道信息回调', b'1', b'1', '支付通道信息回调 支付宝认证授权回调', 1399985191002447872, '2024-06-26 20:32:23.859000', 1399985191002447872, '2024-06-26 20:32:23.859000', b'0', 0);
+INSERT INTO `iam_perm_path` VALUES (1805942182965153808, 'WechatAuthController#queryOpenId', '根据标识码查询OpenId', 'GET', '/wechat/auth/queryOpenId', '微信认证控制器', b'1', b'1', '微信认证控制器 根据标识码查询OpenId', 1399985191002447872, '2024-06-26 20:32:23.859000', 1399985191002447872, '2024-06-26 20:32:23.859000', b'0', 0);
+INSERT INTO `iam_perm_path` VALUES (1805942182965153809, 'TransferOrderController#syncByTransferNo', '手动转账同步', 'POST', '/order/transfer/syncByTransferNo', '转账订单控制器', b'1', b'1', '转账订单控制器 手动转账同步', 1399985191002447872, '2024-06-26 20:32:23.859000', 1399985191002447872, '2024-06-26 20:32:23.859000', b'0', 0);
+INSERT INTO `iam_perm_path` VALUES (1805942182965153810, 'CallbackReceiverController#aliPayNotify', '支付宝信息回调', 'POST', '/unipay/callback/alipay', '支付通道信息回调', b'1', b'1', '支付通道信息回调 支付宝信息回调', 1399985191002447872, '2024-06-26 20:32:23.859000', 1399985191002447872, '2024-06-26 20:32:23.860000', b'0', 0);
+INSERT INTO `iam_perm_path` VALUES (1805942182969348096, 'CallbackReceiverController#wxAuthCallback', '微信认证授权回调', 'GET', '/unipay/callback/wechat/auth/{code}', '支付通道信息回调', b'1', b'1', '支付通道信息回调 微信认证授权回调', 1399985191002447872, '2024-06-26 20:32:23.860000', 1399985191002447872, '2024-06-26 20:32:23.860000', b'0', 0);
+INSERT INTO `iam_perm_path` VALUES (1805942182969348097, 'WeChatPayConfigController#generateNotifyUrl', '生成异步通知地址', 'GET', '/wechat/pay/config/generateNotifyUrl', '微信支付配置', b'1', b'1', '微信支付配置 生成异步通知地址', 1399985191002447872, '2024-06-26 20:32:23.860000', 1399985191002447872, '2024-06-26 20:32:23.860000', b'0', 0);
+INSERT INTO `iam_perm_path` VALUES (1805942182969348098, 'TransferOrderController#findById', '查询单条', 'GET', '/order/transfer/findById', '转账订单控制器', b'1', b'1', '转账订单控制器 查询单条', 1399985191002447872, '2024-06-26 20:32:23.860000', 1399985191002447872, '2024-06-26 20:32:23.860000', b'0', 0);
+INSERT INTO `iam_perm_path` VALUES (1805942182969348099, 'PayReturnController#union', '云闪付同步跳转通知', 'POST', '/unipay/return/pay/union', '同步通知跳转控制器', b'1', b'1', '同步通知跳转控制器 云闪付同步跳转通知', 1399985191002447872, '2024-06-26 20:32:23.860000', 1399985191002447872, '2024-06-26 20:32:23.860000', b'0', 0);
+INSERT INTO `iam_perm_path` VALUES (1805942182969348100, 'TransferOrderController#resetTransfer', '重新发起转账', 'POST', '/order/transfer/resetTransfer', '转账订单控制器', b'1', b'1', '转账订单控制器 重新发起转账', 1399985191002447872, '2024-06-26 20:32:23.860000', 1399985191002447872, '2024-06-26 20:32:23.860000', b'0', 0);
+INSERT INTO `iam_perm_path` VALUES (1805942182969348101, 'AliPayAuthController#generateAuthUrl', '返回获取OpenId授权页面地址和标识码', 'POST', '/alipay/auth/generateAuthUrl', '支付宝认证控制器', b'1', b'1', '支付宝认证控制器 返回获取OpenId授权页面地址和标识码', 1399985191002447872, '2024-06-26 20:32:23.860000', 1399985191002447872, '2024-06-26 20:32:23.860000', b'0', 0);
+INSERT INTO `iam_perm_path` VALUES (1805942182969348102, 'TransferOrderController#transfer', '手动发起转账', 'POST', '/order/transfer/transfer', '转账订单控制器', b'1', b'1', '转账订单控制器 手动发起转账', 1399985191002447872, '2024-06-26 20:32:23.860000', 1399985191002447872, '2024-06-26 20:32:23.860000', b'0', 0);
+INSERT INTO `iam_perm_path` VALUES (1805942182969348103, 'PayReturnController#wechat', '微信同步跳转通知', 'GET', '/unipay/return/pay/wechat', '同步通知跳转控制器', b'1', b'1', '同步通知跳转控制器 微信同步跳转通知', 1399985191002447872, '2024-06-26 20:32:23.860000', 1399985191002447872, '2024-06-26 20:32:23.860000', b'0', 0);
+INSERT INTO `iam_perm_path` VALUES (1805942182969348104, 'CallbackReceiverController#unionPayNotify', '云闪付支付信息回调', 'POST', '/unipay/callback/union', '支付通道信息回调', b'1', b'1', '支付通道信息回调 云闪付支付信息回调', 1399985191002447872, '2024-06-26 20:32:23.860000', 1399985191002447872, '2024-06-26 20:32:23.860000', b'0', 0);
+INSERT INTO `iam_perm_path` VALUES (1805942182969348105, 'PayReturnController#alipay', '支付宝同步跳转通知', 'GET', '/unipay/return/pay/alipay', '同步通知跳转控制器', b'1', b'1', '同步通知跳转控制器 支付宝同步跳转通知', 1399985191002447872, '2024-06-26 20:32:23.860000', 1399985191002447872, '2024-06-26 20:32:23.860000', b'0', 0);
 
 -- ----------------------------
 -- Table structure for iam_role
@@ -1484,13 +1537,9 @@ INSERT INTO `iam_role_menu` VALUES (1757298674730520584, 1757297023118462976, 'd
 INSERT INTO `iam_role_menu` VALUES (1757298674730520585, 1757297023118462976, 'dax-pay', 1745143528663781376);
 INSERT INTO `iam_role_menu` VALUES (1757298674730520586, 1757297023118462976, 'dax-pay', 1745822093382230016);
 INSERT INTO `iam_role_menu` VALUES (1757298674730520587, 1757297023118462976, 'dax-pay', 1744624886658318336);
-INSERT INTO `iam_role_menu` VALUES (1757298674730520588, 1757297023118462976, 'dax-pay', 1744372631231995904);
-INSERT INTO `iam_role_menu` VALUES (1757298674730520589, 1757297023118462976, 'dax-pay', 1744276101384880128);
 INSERT INTO `iam_role_menu` VALUES (1757298674730520590, 1757297023118462976, 'dax-pay', 1746194891925561344);
 INSERT INTO `iam_role_menu` VALUES (1757298924107059200, 1757298887092326400, 'dax-pay', 1744271715476684800);
 INSERT INTO `iam_role_menu` VALUES (1757298924107059201, 1757298887092326400, 'dax-pay', 1746194891925561344);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059202, 1757298887092326400, 'dax-pay', 1744276101384880128);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059203, 1757298887092326400, 'dax-pay', 1744372631231995904);
 INSERT INTO `iam_role_menu` VALUES (1757298924107059204, 1757298887092326400, 'dax-pay', 1744624886658318336);
 INSERT INTO `iam_role_menu` VALUES (1757298924107059205, 1757298887092326400, 'dax-pay', 1745822093382230016);
 INSERT INTO `iam_role_menu` VALUES (1757298924107059206, 1757298887092326400, 'dax-pay', 1744642856348520448);
@@ -1503,8 +1552,6 @@ INSERT INTO `iam_role_menu` VALUES (1757298924107059213, 1757298887092326400, 'd
 INSERT INTO `iam_role_menu` VALUES (1757298924107059214, 1757298887092326400, 'dax-pay', 1745143528663781376);
 INSERT INTO `iam_role_menu` VALUES (1757298924107059215, 1757298887092326400, 'dax-pay', 1744271715476684800);
 INSERT INTO `iam_role_menu` VALUES (1757298924107059216, 1757298887092326400, 'dax-pay', 1746194891925561344);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059217, 1757298887092326400, 'dax-pay', 1744276101384880128);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059218, 1757298887092326400, 'dax-pay', 1744372631231995904);
 INSERT INTO `iam_role_menu` VALUES (1757298924107059219, 1757298887092326400, 'dax-pay', 1744624886658318336);
 INSERT INTO `iam_role_menu` VALUES (1757298924107059220, 1757298887092326400, 'dax-pay', 1745822093382230016);
 INSERT INTO `iam_role_menu` VALUES (1757298924107059221, 1757298887092326400, 'dax-pay', 1744642856348520448);
@@ -1517,8 +1564,6 @@ INSERT INTO `iam_role_menu` VALUES (1757298924107059228, 1757298887092326400, 'd
 INSERT INTO `iam_role_menu` VALUES (1757298924107059229, 1757298887092326400, 'dax-pay', 1745143528663781376);
 INSERT INTO `iam_role_menu` VALUES (1757298924107059230, 1757298887092326400, 'dax-pay', 1744271715476684800);
 INSERT INTO `iam_role_menu` VALUES (1757298924107059231, 1757298887092326400, 'dax-pay', 1746194891925561344);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059232, 1757298887092326400, 'dax-pay', 1744276101384880128);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059233, 1757298887092326400, 'dax-pay', 1744372631231995904);
 INSERT INTO `iam_role_menu` VALUES (1757298924107059234, 1757298887092326400, 'dax-pay', 1744624886658318336);
 INSERT INTO `iam_role_menu` VALUES (1757298924107059235, 1757298887092326400, 'dax-pay', 1745822093382230016);
 INSERT INTO `iam_role_menu` VALUES (1757298924107059236, 1757298887092326400, 'dax-pay', 1744642856348520448);
@@ -1531,8 +1576,6 @@ INSERT INTO `iam_role_menu` VALUES (1757298924107059243, 1757298887092326400, 'd
 INSERT INTO `iam_role_menu` VALUES (1757298924107059244, 1757298887092326400, 'dax-pay', 1745143528663781376);
 INSERT INTO `iam_role_menu` VALUES (1757298924107059245, 1757298887092326400, 'dax-pay', 1744271715476684800);
 INSERT INTO `iam_role_menu` VALUES (1757298924107059246, 1757298887092326400, 'dax-pay', 1746194891925561344);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059247, 1757298887092326400, 'dax-pay', 1744276101384880128);
-INSERT INTO `iam_role_menu` VALUES (1757298924107059248, 1757298887092326400, 'dax-pay', 1744372631231995904);
 INSERT INTO `iam_role_menu` VALUES (1757298924107059249, 1757298887092326400, 'dax-pay', 1744624886658318336);
 INSERT INTO `iam_role_menu` VALUES (1757298924107059250, 1757298887092326400, 'dax-pay', 1745822093382230016);
 INSERT INTO `iam_role_menu` VALUES (1757298924107059251, 1757298887092326400, 'dax-pay', 1744642856348520448);
@@ -1567,16 +1610,31 @@ INSERT INTO `iam_role_menu` VALUES (1789979742314291201, 1757298887092326400, 'd
 INSERT INTO `iam_role_menu` VALUES (1789979742314291202, 1757298887092326400, 'dax-pay', 1744930046228017152);
 INSERT INTO `iam_role_menu` VALUES (1797522085254897664, 1757297023118462976, 'dax-pay', 1797178029448867840);
 INSERT INTO `iam_role_menu` VALUES (1797522085414281216, 1757298887092326400, 'dax-pay', 1797178029448867840);
+INSERT INTO `iam_role_menu` VALUES (1805942450893099008, 1757297023118462976, 'dax-pay', 1786811341285052416);
+INSERT INTO `iam_role_menu` VALUES (1805942450893099009, 1757297023118462976, 'dax-pay', 1804041752999993344);
+INSERT INTO `iam_role_menu` VALUES (1805942450893099010, 1757297023118462976, 'dax-pay', 1805115884940374016);
+INSERT INTO `iam_role_menu` VALUES (1805942450893099011, 1757297023118462976, 'dax-pay', 1804799253230350336);
+INSERT INTO `iam_role_menu` VALUES (1805942450893099012, 1757297023118462976, 'dax-pay', 1800350813995446272);
+INSERT INTO `iam_role_menu` VALUES (1805942450893099013, 1757297023118462976, 'dax-pay', 1744372631231995904);
+INSERT INTO `iam_role_menu` VALUES (1805942450893099014, 1757297023118462976, 'dax-pay', 1744276101384880128);
+INSERT INTO `iam_role_menu` VALUES (1805942451052482560, 1757298887092326400, 'dax-pay', 1786811341285052416);
+INSERT INTO `iam_role_menu` VALUES (1805942451052482561, 1757298887092326400, 'dax-pay', 1804041752999993344);
+INSERT INTO `iam_role_menu` VALUES (1805942451052482562, 1757298887092326400, 'dax-pay', 1805115884940374016);
+INSERT INTO `iam_role_menu` VALUES (1805942451052482563, 1757298887092326400, 'dax-pay', 1804799253230350336);
+INSERT INTO `iam_role_menu` VALUES (1805942451052482564, 1757298887092326400, 'dax-pay', 1800350813995446272);
+INSERT INTO `iam_role_menu` VALUES (1805942451052482565, 1757298887092326400, 'dax-pay', 1744372631231995904);
+INSERT INTO `iam_role_menu` VALUES (1805942451052482566, 1757298887092326400, 'dax-pay', 1744276101384880128);
+
 
 -- ----------------------------
 -- Table structure for iam_role_path
 -- ----------------------------
 DROP TABLE IF EXISTS `iam_role_path`;
 CREATE TABLE `iam_role_path`  (
-  `id` bigint(20) NOT NULL,
-  `role_id` bigint(20) NOT NULL COMMENT '角色id',
-  `permission_id` bigint(20) NOT NULL COMMENT '请求权限id',
-  PRIMARY KEY (`id`) USING BTREE
+                                  `id` bigint(20) NOT NULL,
+                                  `role_id` bigint(20) NOT NULL COMMENT '角色id',
+                                  `permission_id` bigint(20) NOT NULL COMMENT '请求权限id',
+                                  PRIMARY KEY (`id`) USING BTREE
 ) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '角色请求权限表' ROW_FORMAT = DYNAMIC;
 
 -- ----------------------------
@@ -1611,16 +1669,11 @@ INSERT INTO `iam_role_path` VALUES (1789979321814343705, 1757297023118462976, 17
 INSERT INTO `iam_role_path` VALUES (1789979321814343706, 1757297023118462976, 1789978117570945213);
 INSERT INTO `iam_role_path` VALUES (1789979321814343707, 1757297023118462976, 1789978117570945177);
 INSERT INTO `iam_role_path` VALUES (1789979321814343708, 1757297023118462976, 1789978117570945161);
-INSERT INTO `iam_role_path` VALUES (1789979321814343709, 1757297023118462976, 1789978117570945136);
 INSERT INTO `iam_role_path` VALUES (1789979321814343711, 1757297023118462976, 1789978117566750728);
 INSERT INTO `iam_role_path` VALUES (1789979321814343712, 1757297023118462976, 1789978117570945299);
 INSERT INTO `iam_role_path` VALUES (1789979321814343713, 1757297023118462976, 1789978117570945222);
 INSERT INTO `iam_role_path` VALUES (1789979321814343714, 1757297023118462976, 1789978117570945124);
 INSERT INTO `iam_role_path` VALUES (1789979321814343715, 1757297023118462976, 1789978117566750820);
-INSERT INTO `iam_role_path` VALUES (1789979321814343716, 1757297023118462976, 1789978117570945286);
-INSERT INTO `iam_role_path` VALUES (1789979321814343717, 1757297023118462976, 1789978117570945072);
-INSERT INTO `iam_role_path` VALUES (1789979321814343718, 1757297023118462976, 1789978117570945064);
-INSERT INTO `iam_role_path` VALUES (1789979321814343719, 1757297023118462976, 1789978117570945279);
 INSERT INTO `iam_role_path` VALUES (1789979321814343720, 1757297023118462976, 1789978117570945028);
 INSERT INTO `iam_role_path` VALUES (1789979321814343721, 1757297023118462976, 1789978117566750751);
 INSERT INTO `iam_role_path` VALUES (1789979321814343722, 1757297023118462976, 1789978117570945277);
@@ -1638,7 +1691,6 @@ INSERT INTO `iam_role_path` VALUES (1789979321814343733, 1757297023118462976, 17
 INSERT INTO `iam_role_path` VALUES (1789979321814343734, 1757297023118462976, 1789978117570945266);
 INSERT INTO `iam_role_path` VALUES (1789979321814343735, 1757297023118462976, 1789978117570945251);
 INSERT INTO `iam_role_path` VALUES (1789979321814343736, 1757297023118462976, 1789978117570945073);
-INSERT INTO `iam_role_path` VALUES (1789979321814343737, 1757297023118462976, 1789978117570945056);
 INSERT INTO `iam_role_path` VALUES (1789979321814343738, 1757297023118462976, 1789978117566750822);
 INSERT INTO `iam_role_path` VALUES (1789979321814343739, 1757297023118462976, 1789978117566750809);
 INSERT INTO `iam_role_path` VALUES (1789979321814343740, 1757297023118462976, 1789978117566750803);
@@ -1713,14 +1765,9 @@ INSERT INTO `iam_role_path` VALUES (1789979322187636761, 1757298887092326400, 17
 INSERT INTO `iam_role_path` VALUES (1789979322187636762, 1757298887092326400, 1789978117570945213);
 INSERT INTO `iam_role_path` VALUES (1789979322187636763, 1757298887092326400, 1789978117570945177);
 INSERT INTO `iam_role_path` VALUES (1789979322187636764, 1757298887092326400, 1789978117570945161);
-INSERT INTO `iam_role_path` VALUES (1789979322187636765, 1757298887092326400, 1789978117570945136);
 INSERT INTO `iam_role_path` VALUES (1789979322187636767, 1757298887092326400, 1789978117566750728);
 INSERT INTO `iam_role_path` VALUES (1789979322187636769, 1757298887092326400, 1789978117570945222);
 INSERT INTO `iam_role_path` VALUES (1789979322187636771, 1757298887092326400, 1789978117566750820);
-INSERT INTO `iam_role_path` VALUES (1789979322187636772, 1757298887092326400, 1789978117570945286);
-INSERT INTO `iam_role_path` VALUES (1789979322187636773, 1757298887092326400, 1789978117570945072);
-INSERT INTO `iam_role_path` VALUES (1789979322187636774, 1757298887092326400, 1789978117570945064);
-INSERT INTO `iam_role_path` VALUES (1789979322187636775, 1757298887092326400, 1789978117570945279);
 INSERT INTO `iam_role_path` VALUES (1789979322187636776, 1757298887092326400, 1789978117570945028);
 INSERT INTO `iam_role_path` VALUES (1789979322187636777, 1757298887092326400, 1789978117566750751);
 INSERT INTO `iam_role_path` VALUES (1789979322187636778, 1757298887092326400, 1789978117570945277);
@@ -1729,7 +1776,6 @@ INSERT INTO `iam_role_path` VALUES (1789979322187636786, 1757298887092326400, 17
 INSERT INTO `iam_role_path` VALUES (1789979322187636790, 1757298887092326400, 1789978117570945266);
 INSERT INTO `iam_role_path` VALUES (1789979322187636791, 1757298887092326400, 1789978117570945251);
 INSERT INTO `iam_role_path` VALUES (1789979322187636792, 1757298887092326400, 1789978117570945073);
-INSERT INTO `iam_role_path` VALUES (1789979322187636793, 1757298887092326400, 1789978117570945056);
 INSERT INTO `iam_role_path` VALUES (1789979322187636794, 1757298887092326400, 1789978117566750822);
 INSERT INTO `iam_role_path` VALUES (1789979322187636795, 1757298887092326400, 1789978117566750809);
 INSERT INTO `iam_role_path` VALUES (1789979322187636796, 1757298887092326400, 1789978117566750803);
@@ -1797,13 +1843,9 @@ INSERT INTO `iam_role_path` VALUES (1789982023529127943, 1757298887092326400, 17
 INSERT INTO `iam_role_path` VALUES (1789986071959429120, 1757298887092326400, 1789978117570945124);
 INSERT INTO `iam_role_path` VALUES (1797522413752786944, 1757297023118462976, 1797521957446066199);
 INSERT INTO `iam_role_path` VALUES (1797522413752786945, 1757297023118462976, 1797521957446066189);
-INSERT INTO `iam_role_path` VALUES (1797522413752786946, 1757297023118462976, 1797521957446066197);
-INSERT INTO `iam_role_path` VALUES (1797522413752786947, 1757297023118462976, 1797521957446066176);
 INSERT INTO `iam_role_path` VALUES (1797522413752786948, 1757297023118462976, 1797521957446066187);
 INSERT INTO `iam_role_path` VALUES (1797522723091095552, 1757298887092326400, 1797521957446066199);
 INSERT INTO `iam_role_path` VALUES (1797522723091095553, 1757298887092326400, 1797521957446066189);
-INSERT INTO `iam_role_path` VALUES (1797522723091095554, 1757298887092326400, 1797521957446066197);
-INSERT INTO `iam_role_path` VALUES (1797522723091095555, 1757298887092326400, 1797521957446066176);
 INSERT INTO `iam_role_path` VALUES (1797522723091095556, 1757298887092326400, 1797521957446066187);
 INSERT INTO `iam_role_path` VALUES (1797523038569865216, 1757297023118462976, 1797521957446066184);
 INSERT INTO `iam_role_path` VALUES (1797523038569865217, 1757297023118462976, 1797521957446066181);
@@ -1823,6 +1865,32 @@ INSERT INTO `iam_role_path` VALUES (1797523264022093827, 1757298887092326400, 17
 INSERT INTO `iam_role_path` VALUES (1797523264022093828, 1757298887092326400, 1789978117566750801);
 INSERT INTO `iam_role_path` VALUES (1797523482968956928, 1757297023118462976, 1797521957446066188);
 INSERT INTO `iam_role_path` VALUES (1797523483111563264, 1757298887092326400, 1797521957446066188);
+INSERT INTO `iam_role_path` VALUES (1805942783757258752, 1757297023118462976, 1805942182969348102);
+INSERT INTO `iam_role_path` VALUES (1805942783757258753, 1757297023118462976, 1805942182969348100);
+INSERT INTO `iam_role_path` VALUES (1805942783757258754, 1757297023118462976, 1805942182969348098);
+INSERT INTO `iam_role_path` VALUES (1805942783757258755, 1757297023118462976, 1805942182965153809);
+INSERT INTO `iam_role_path` VALUES (1805942783757258756, 1757297023118462976, 1805942182965153805);
+INSERT INTO `iam_role_path` VALUES (1805942783757258757, 1757297023118462976, 1805942182965153804);
+INSERT INTO `iam_role_path` VALUES (1805942783757258758, 1757297023118462976, 1805942182965153798);
+INSERT INTO `iam_role_path` VALUES (1805942783757258759, 1757297023118462976, 1805942182965153793);
+INSERT INTO `iam_role_path` VALUES (1805942783757258760, 1757297023118462976, 1805942182965153796);
+INSERT INTO `iam_role_path` VALUES (1805942783757258761, 1757297023118462976, 1805942182969348101);
+INSERT INTO `iam_role_path` VALUES (1805942783757258762, 1757297023118462976, 1805942182965153808);
+INSERT INTO `iam_role_path` VALUES (1805942783757258763, 1757297023118462976, 1805942182965153803);
+INSERT INTO `iam_role_path` VALUES (1805942783757258764, 1757297023118462976, 1805942182965153800);
+INSERT INTO `iam_role_path` VALUES (1805942783757258765, 1757297023118462976, 1805942182965153794);
+INSERT INTO `iam_role_path` VALUES (1805942783757258766, 1757297023118462976, 1805942182965153799);
+INSERT INTO `iam_role_path` VALUES (1805942783757258767, 1757297023118462976, 1805942182965153795);
+INSERT INTO `iam_role_path` VALUES (1806242872311390208, 1757298887092326400, 1805942182965153808);
+INSERT INTO `iam_role_path` VALUES (1806242872311390209, 1757298887092326400, 1805942182965153803);
+INSERT INTO `iam_role_path` VALUES (1806242872311390210, 1757298887092326400, 1805942182969348101);
+INSERT INTO `iam_role_path` VALUES (1806242872311390211, 1757298887092326400, 1805942182965153796);
+INSERT INTO `iam_role_path` VALUES (1806242872311390212, 1757298887092326400, 1805942182969348098);
+INSERT INTO `iam_role_path` VALUES (1806242872311390213, 1757298887092326400, 1805942182965153805);
+INSERT INTO `iam_role_path` VALUES (1806242872311390214, 1757298887092326400, 1805942182965153804);
+INSERT INTO `iam_role_path` VALUES (1806242872311390215, 1757298887092326400, 1805942182965153798);
+INSERT INTO `iam_role_path` VALUES (1806242872311390216, 1757298887092326400, 1805942182965153793);
+INSERT INTO `iam_role_path` VALUES (1806242872311390217, 1757298887092326400, 1805942182965153809);
 
 -- ----------------------------
 -- Table structure for iam_user_data_role
@@ -1985,6 +2053,27 @@ CREATE TABLE `iam_user_third_info`  (
 -- Records of iam_user_third_info
 -- ----------------------------
 
+-- ----------------------------
+-- Table structure for mtm_table
+-- ----------------------------
+DROP TABLE IF EXISTS `mtm_table`;
+CREATE TABLE `mtm_table`  (
+  `id` bigint(20) NOT NULL COMMENT '主键',
+  `h1` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL,
+  `date` date NULL DEFAULT NULL,
+  `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
+  `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
+  `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修者ID',
+  `last_modified_time` datetime NULL DEFAULT NULL COMMENT '最后修改时间',
+  `version` int(11) NOT NULL COMMENT '乐观锁',
+  `deleted` bit(1) NOT NULL COMMENT '删除标志',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = 'actable测试' ROW_FORMAT = DYNAMIC;
+
+-- ----------------------------
+-- Records of mtm_table
+-- ----------------------------
+
 -- ----------------------------
 -- Table structure for notice_mail_config
 -- ----------------------------
@@ -2205,43 +2294,41 @@ CREATE TABLE `notice_wechat_config`  (
 -- Records of notice_wechat_config
 -- ----------------------------
 
--- ----------------------------
--- Table structure for pay_alipay_config
--- ----------------------------
 DROP TABLE IF EXISTS `pay_alipay_config`;
 CREATE TABLE `pay_alipay_config`  (
-  `id` bigint(20) NOT NULL COMMENT '主键',
-  `app_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '支付宝商户appId',
-  `enable` bit(1) NULL DEFAULT NULL COMMENT '是否启用',
-  `notify_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '异步通知页面路径',
-  `return_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '同步通知页面路径',
-  `server_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '支付网关地址',
-  `auth_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '认证类型',
-  `sign_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '签名类型 RSA2',
-  `alipay_public_key` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '支付宝公钥',
-  `private_key` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '私钥',
-  `app_cert` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '应用公钥证书',
-  `alipay_cert` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '支付宝公钥证书',
-  `alipay_root_cert` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '支付宝CA根证书',
-  `sandbox` bit(1) NULL DEFAULT NULL COMMENT '是否沙箱环境',
-  `single_limit` int(11) NULL DEFAULT NULL COMMENT '支付限额',
-  `pay_ways` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '可用支付方式',
-  `allocation` bit(1) NULL DEFAULT NULL COMMENT '是否支付分账',
-  `alipay_user_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '合作者身份ID',
-  `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
-  `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-  `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
-  `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修者ID',
-  `last_modified_time` datetime NULL DEFAULT NULL COMMENT '最后修改时间',
-  `version` int(11) NOT NULL COMMENT '乐观锁',
-  `deleted` bit(1) NOT NULL COMMENT '删除标志',
-  PRIMARY KEY (`id`) USING BTREE
+                                      `id` bigint(20) NOT NULL COMMENT '主键',
+                                      `app_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '支付宝商户appId',
+                                      `enable` bit(1) NULL DEFAULT NULL COMMENT '是否启用',
+                                      `notify_url` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '异步通知接收路径',
+                                      `return_url` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '同步通知页面路径',
+                                      `server_url` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '支付网关地址',
+                                      `redirect_url` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '授权回调地址',
+                                      `auth_type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '认证类型',
+                                      `sign_type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '签名类型 RSA2',
+                                      `alipay_public_key` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '支付宝公钥',
+                                      `private_key` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '私钥',
+                                      `app_cert` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '应用公钥证书',
+                                      `alipay_cert` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '支付宝公钥证书',
+                                      `alipay_root_cert` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '支付宝CA根证书',
+                                      `sandbox` bit(1) NULL DEFAULT NULL COMMENT '是否沙箱环境',
+                                      `limit_amount` int(15) NULL DEFAULT NULL COMMENT '支付限额',
+                                      `pay_ways` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '可用支付方式',
+                                      `allocation` bit(1) NULL DEFAULT NULL COMMENT '是否支付分账',
+                                      `alipay_user_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '合作者身份ID',
+                                      `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
+                                      `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
+                                      `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
+                                      `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修者ID',
+                                      `last_modified_time` datetime NULL DEFAULT NULL COMMENT '最后修改时间',
+                                      `version` int(11) NOT NULL COMMENT '乐观锁',
+                                      `deleted` bit(1) NOT NULL COMMENT '删除标志',
+                                      PRIMARY KEY (`id`) USING BTREE
 ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '支付宝支付配置' ROW_FORMAT = DYNAMIC;
 
 -- ----------------------------
 -- Records of pay_alipay_config
 -- ----------------------------
-INSERT INTO `pay_alipay_config` VALUES (0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'wap,web,qrcode,app,barcode', NULL, NULL, NULL, 0, '2024-01-02 21:17:58', 1399985191002447872, '2024-05-07 19:06:38', 32, b'0');
+INSERT INTO `pay_alipay_config` VALUES (0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'wap,web,qrcode,app,barcode', NULL, NULL, NULL, 0, '2024-01-02 21:17:58', 1399985191002447872, '2024-05-07 19:06:38', 32, b'0');
 
 -- ----------------------------
 -- Table structure for pay_alipay_reconcile_bill_detail
@@ -2309,69 +2396,68 @@ CREATE TABLE `pay_alipay_reconcile_bill_total`  (
 -- ----------------------------
 
 -- ----------------------------
--- Table structure for pay_allocation_group
+-- Table structure for pay_alloc_order
 -- ----------------------------
-DROP TABLE IF EXISTS `pay_allocation_group`;
-CREATE TABLE `pay_allocation_group`  (
+DROP TABLE IF EXISTS `pay_alloc_order`;
+CREATE TABLE `pay_alloc_order`  (
   `id` bigint(20) NOT NULL COMMENT '主键',
-  `group_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '分账组编码',
-  `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '名称',
-  `channel` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '通道',
-  `default_group` bit(1) NULL DEFAULT NULL COMMENT '默认分账组',
-  `total_rate` int(11) NULL DEFAULT NULL COMMENT '总分账比例(万分之多少)',
-  `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
+  `alloc_no` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '分账单号',
+  `biz_alloc_no` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '商户分账单号',
+  `out_alloc_no` varchar(150) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '通道分账号',
+  `order_id` bigint(20) NOT NULL COMMENT '支付订单ID',
+  `order_no` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '支付订单号',
+  `biz_order_no` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '商户支付订单号',
+  `out_order_no` varchar(150) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '通道支付订单号',
+  `title` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '支付标题',
+  `channel` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '所属通道',
+  `amount` int(8) NOT NULL COMMENT '总分账金额',
+  `description` varchar(150) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '分账描述',
+  `status` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '状态',
+  `result` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '处理结果',
+  `finish_time` datetime NULL DEFAULT NULL COMMENT '分账完成时间',
+  `notify_url` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '异步通知地址',
+  `attach` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商户扩展参数',
+  `req_time` datetime NULL DEFAULT NULL COMMENT '请求时间,传输时间戳',
+  `client_ip` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '支付终端ip',
+  `error_code` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '错误码',
+  `error_msg` varchar(2048) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '错误信息',
   `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
   `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
   `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修者ID',
   `last_modified_time` datetime NULL DEFAULT NULL COMMENT '最后修改时间',
   `version` int(11) NOT NULL COMMENT '乐观锁',
   `deleted` bit(1) NOT NULL COMMENT '删除标志',
-  PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '分账组' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of pay_allocation_group
--- ----------------------------
-
--- ----------------------------
--- Table structure for pay_allocation_group_receiver
--- ----------------------------
-DROP TABLE IF EXISTS `pay_allocation_group_receiver`;
-CREATE TABLE `pay_allocation_group_receiver`  (
-  `id` bigint(20) NOT NULL COMMENT '主键',
-  `group_id` bigint(20) NULL DEFAULT NULL COMMENT '分账组ID',
-  `receiver_id` bigint(20) NULL DEFAULT NULL COMMENT '接收者ID',
-  `rate` int(11) NULL DEFAULT NULL COMMENT '分账比例(万分之多少)',
-  `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-  `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
-  PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '分账接收组关系' ROW_FORMAT = DYNAMIC;
+  PRIMARY KEY (`id`) USING BTREE,
+  INDEX `alloc_no`(`alloc_no`) USING BTREE COMMENT '分账单号索引',
+  INDEX `biz_alloc_no`(`biz_alloc_no`) USING BTREE COMMENT '商户分账单号索引',
+  INDEX `out_alloc_no`(`out_alloc_no`) USING BTREE COMMENT '通道分账号索引',
+  INDEX `order_id`(`order_id`) USING BTREE COMMENT '支付订单ID索引',
+  INDEX `order_no`(`order_no`) USING BTREE COMMENT '支付订单号索引',
+  INDEX `biz_order_no`(`biz_order_no`) USING BTREE COMMENT '商户支付订单号索引',
+  INDEX `out_order_no`(`out_order_no`) USING BTREE COMMENT '通道支付订单号索引'
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '分账订单' ROW_FORMAT = DYNAMIC;
 
 -- ----------------------------
--- Records of pay_allocation_group_receiver
+-- Records of pay_alloc_order
 -- ----------------------------
 
 -- ----------------------------
--- Table structure for pay_allocation_order
+-- Table structure for pay_alloc_order_detail
 -- ----------------------------
-DROP TABLE IF EXISTS `pay_allocation_order`;
-CREATE TABLE `pay_allocation_order`  (
+DROP TABLE IF EXISTS `pay_alloc_order_detail`;
+CREATE TABLE `pay_alloc_order_detail`  (
   `id` bigint(20) NOT NULL COMMENT '主键',
-  `allocation_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '分账单号',
-  `biz_allocation_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商户分账单号',
-  `out_allocation_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '通道分账号',
-  `order_id` bigint(20) NULL DEFAULT NULL COMMENT '支付订单ID',
-  `order_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '支付订单号',
-  `biz_order_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商户支付订单号',
-  `out_order_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '通道支付订单号',
-  `title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '支付订单标题',
-  `channel` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '所属通道',
-  `amount` int(11) NULL DEFAULT NULL COMMENT '总分账金额',
-  `description` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '分账描述',
-  `status` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '状态',
-  `result` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '处理结果',
-  `error_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '错误码',
-  `error_msg` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '错误原因',
+  `allocation_id` bigint(20) NOT NULL COMMENT '分账订单ID',
+  `receiver_id` bigint(20) NOT NULL COMMENT '接收者ID',
+  `receiver_no` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '分账接收方编号',
+  `rate` int(5) NOT NULL COMMENT '分账比例(万分之多少)',
+  `amount` int(8) NOT NULL COMMENT '分账金额',
+  `receiver_type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '分账接收方类型',
+  `receiver_account` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '接收方账号',
+  `receiver_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '接收方姓名',
+  `result` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '分账结果',
+  `error_code` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '错误代码',
+  `error_msg` varchar(150) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '错误原因',
   `finish_time` datetime NULL DEFAULT NULL COMMENT '分账完成时间',
   `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
   `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
@@ -2379,31 +2465,26 @@ CREATE TABLE `pay_allocation_order`  (
   `last_modified_time` datetime NULL DEFAULT NULL COMMENT '最后修改时间',
   `version` int(11) NOT NULL COMMENT '乐观锁',
   `deleted` bit(1) NOT NULL COMMENT '删除标志',
-  PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '分账订单' ROW_FORMAT = DYNAMIC;
+  PRIMARY KEY (`id`) USING BTREE,
+  INDEX `allocation_id`(`allocation_id`) USING BTREE COMMENT '分账订单ID索引'
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '分账订单明细' ROW_FORMAT = DYNAMIC;
 
 -- ----------------------------
--- Records of pay_allocation_order
+-- Records of pay_alloc_order_detail
 -- ----------------------------
 
 -- ----------------------------
--- Table structure for pay_allocation_order_detail
+-- Table structure for pay_allocation_group
 -- ----------------------------
-DROP TABLE IF EXISTS `pay_allocation_order_detail`;
-CREATE TABLE `pay_allocation_order_detail`  (
+DROP TABLE IF EXISTS `pay_allocation_group`;
+CREATE TABLE `pay_allocation_group`  (
   `id` bigint(20) NOT NULL COMMENT '主键',
-  `allocation_id` bigint(20) NULL DEFAULT NULL COMMENT '分账订单ID',
-  `receiver_id` bigint(20) NULL DEFAULT NULL COMMENT '接收者ID',
-  `receiver_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '分账接收方编号',
-  `rate` int(11) NULL DEFAULT NULL COMMENT '分账比例(万分之多少)',
-  `amount` int(11) NULL DEFAULT NULL COMMENT '分账金额',
-  `receiver_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '分账接收方类型',
-  `receiver_account` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '接收方账号',
-  `receiver_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '接收方姓名',
-  `result` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '分账结果',
-  `error_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '错误代码',
-  `error_msg` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '错误原因',
-  `finish_time` datetime NULL DEFAULT NULL COMMENT '分账完成时间',
+  `group_no` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '分账组编码',
+  `name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '名称',
+  `channel` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '通道',
+  `default_group` bit(1) NULL DEFAULT NULL COMMENT '默认分账组',
+  `total_rate` int(5) NULL DEFAULT NULL COMMENT '总分账比例(万分之多少)',
+  `remark` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
   `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
   `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
   `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修者ID',
@@ -2411,33 +2492,28 @@ CREATE TABLE `pay_allocation_order_detail`  (
   `version` int(11) NOT NULL COMMENT '乐观锁',
   `deleted` bit(1) NOT NULL COMMENT '删除标志',
   PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '分账订单明细' ROW_FORMAT = DYNAMIC;
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '分账组' ROW_FORMAT = DYNAMIC;
 
 -- ----------------------------
--- Records of pay_allocation_order_detail
+-- Records of pay_allocation_group
 -- ----------------------------
 
 -- ----------------------------
--- Table structure for pay_allocation_order_extra
+-- Table structure for pay_allocation_group_receiver
 -- ----------------------------
-DROP TABLE IF EXISTS `pay_allocation_order_extra`;
-CREATE TABLE `pay_allocation_order_extra`  (
+DROP TABLE IF EXISTS `pay_allocation_group_receiver`;
+CREATE TABLE `pay_allocation_group_receiver`  (
   `id` bigint(20) NOT NULL COMMENT '主键',
-  `notify_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '异步通知地址',
-  `attach` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商户扩展参数',
-  `req_time` datetime NULL DEFAULT NULL COMMENT '请求时间,传输时间戳',
-  `client_ip` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '支付终端ip',
+  `group_id` bigint(20) NOT NULL COMMENT '分账组ID',
+  `receiver_id` bigint(20) NOT NULL COMMENT '接收者ID',
+  `rate` int(5) NULL DEFAULT NULL COMMENT '分账比例(万分之多少)',
   `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
   `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
-  `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修者ID',
-  `last_modified_time` datetime NULL DEFAULT NULL COMMENT '最后修改时间',
-  `version` int(11) NOT NULL COMMENT '乐观锁',
-  `deleted` bit(1) NOT NULL COMMENT '删除标志',
   PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '分账订单扩展' ROW_FORMAT = DYNAMIC;
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '分账接收组关系' ROW_FORMAT = DYNAMIC;
 
 -- ----------------------------
--- Records of pay_allocation_order_extra
+-- Records of pay_allocation_group_receiver
 -- ----------------------------
 
 -- ----------------------------
@@ -2446,13 +2522,13 @@ CREATE TABLE `pay_allocation_order_extra`  (
 DROP TABLE IF EXISTS `pay_allocation_receiver`;
 CREATE TABLE `pay_allocation_receiver`  (
   `id` bigint(20) NOT NULL COMMENT '主键',
-  `receiver_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '分账接收方编号',
-  `channel` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '所属通道',
-  `receiver_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '分账接收方类型',
-  `receiver_account` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '接收方账号',
-  `receiver_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '接收方姓名',
-  `relation_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '分账关系类型',
-  `relation_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '关系名称',
+  `receiver_no` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '分账接收方编号',
+  `channel` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '所属通道',
+  `receiver_type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '分账接收方类型',
+  `receiver_account` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '接收方账号',
+  `receiver_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '接收方姓名',
+  `relation_type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '分账关系类型',
+  `relation_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '关系名称',
   `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
   `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
   `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修者ID',
@@ -2472,15 +2548,11 @@ CREATE TABLE `pay_allocation_receiver`  (
 DROP TABLE IF EXISTS `pay_api_config`;
 CREATE TABLE `pay_api_config`  (
   `id` bigint(20) NOT NULL COMMENT '主键',
-  `code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '编码',
-  `api` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '接口地址',
-  `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '名称',
-  `notice_support` bit(1) NULL DEFAULT NULL COMMENT '支持回调通知',
-  `enable` bit(1) NULL DEFAULT NULL COMMENT '是否启用',
-  `notice` bit(1) NULL DEFAULT NULL COMMENT '是否开启回调通知',
-  `notice_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '默认通知地址',
-  `req_sign` bit(1) NULL DEFAULT NULL COMMENT '请求参数是否签名',
-  `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
+  `code` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '编码',
+  `api` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '接口地址',
+  `name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '名称',
+  `enable` bit(1) NOT NULL COMMENT '是否启用',
+  `remark` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
   `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
   `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
   `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修者ID',
@@ -2493,25 +2565,26 @@ CREATE TABLE `pay_api_config`  (
 -- ----------------------------
 -- Records of pay_api_config
 -- ----------------------------
-INSERT INTO `pay_api_config` VALUES (100, 'pay', '/unipay/pay', '统一支付接口	', b'1', b'1', b'1', 'http://pay1.bootx.cn/server/demo/callback/payObject', b'1', NULL, 0, '2024-01-03 14:25:48', 1399985191002447872, '2024-03-11 17:31:41', 11, b'0');
-INSERT INTO `pay_api_config` VALUES (200, 'close', '/unipay/close', '支付关闭接口', b'0', b'1', b'1', NULL, b'1', NULL, 0, '2024-01-03 14:25:48', 0, '2024-01-03 14:25:53', 0, b'0');
-INSERT INTO `pay_api_config` VALUES (300, 'refund', '/unipay/refund', '统一退款接口', b'1', b'1', b'1', 'http://pay1.bootx.cn/server/demo/callback/refundObject', b'1', NULL, 0, '2024-01-03 14:25:48', 1399985191002447872, '2024-05-16 21:59:19', 7, b'0');
-INSERT INTO `pay_api_config` VALUES (400, 'allocation', '/unipay/allocation/start', '统一分账接口', b'1', b'1', b'1', 'http://pay1.bootx.cn/server/demo/callback/allocationObject', b'1', NULL, 0, '2024-01-03 14:25:48', 1399985191002447872, '2024-05-30 19:36:35', 1, b'0');
-INSERT INTO `pay_api_config` VALUES (450, 'allocationFinish', '/unipay/allocation/finish', '分账完结接口', b'0', b'1', b'1', NULL, b'1', NULL, 0, '2024-01-03 14:25:48', 0, '2024-01-03 14:25:53', 0, b'0');
-INSERT INTO `pay_api_config` VALUES (451, 'allocationReceiverAdd', '/unipay/allocation/receiver/add', '分账接收方添加接口', b'0', b'1', b'0', NULL, b'1', NULL, 0, '2024-01-03 14:25:48', 0, '2024-01-03 14:25:53', 0, b'0');
-INSERT INTO `pay_api_config` VALUES (452, 'allocationReceiverRemove', '/unipay/allocation/receiver/remove', '分账接收方删除接口', b'0', b'1', b'0', NULL, b'1', NULL, 0, '2024-01-03 14:25:48', 0, '2024-01-03 14:25:53', 0, b'0');
-INSERT INTO `pay_api_config` VALUES (500, 'transfer', '/unipay/transfer', '统一转账接口', b'1', b'1', b'1', NULL, b'1', NULL, 0, '2024-01-03 14:25:48', 0, '2024-01-03 14:25:53', 0, b'0');
-INSERT INTO `pay_api_config` VALUES (600, 'syncPay', '/unipay/sync/pay', '支付同步接口', b'0', b'1', b'1', NULL, b'1', NULL, 0, '2024-01-03 14:25:48', 0, '2024-01-03 14:25:53', 0, b'0');
-INSERT INTO `pay_api_config` VALUES (700, 'syncRefund', '/unipay/sync/refund', '退款同步接口', b'0', b'1', b'1', NULL, b'1', NULL, 0, '2024-01-03 14:25:48', 0, '2024-01-03 14:25:53', 0, b'0');
-INSERT INTO `pay_api_config` VALUES (801, 'syncTransfer', '/unipay/sync/transfer', '转账同步接口', b'0', b'1', b'1', NULL, b'1', NULL, 0, '2024-01-03 14:25:48', 0, '2024-01-03 14:25:53', 0, b'0');
-INSERT INTO `pay_api_config` VALUES (805, 'syncAllocation', '/unipay/sync/allocation', '分账同步接口', b'0', b'1', b'1', NULL, b'1', NULL, 0, '2024-01-03 14:25:48', 0, '2024-01-03 14:25:53', 0, b'0');
-INSERT INTO `pay_api_config` VALUES (1000, 'queryPayOrder', '/unipay/query/payOrder', '支付订单查询接口', b'0', b'1', b'0', NULL, b'1', NULL, 0, '2024-01-03 14:25:48', 0, '2024-01-03 14:25:53', 0, b'0');
-INSERT INTO `pay_api_config` VALUES (1100, 'queryRefundOrder', '/unipay/query/refundOrder', '退款订单查询接口', b'0', b'1', b'0', NULL, b'1', NULL, 0, '2024-01-03 14:25:48', 0, '2024-01-03 14:25:53', 0, b'0');
-INSERT INTO `pay_api_config` VALUES (1150, 'queryAllocationOrder', '/unipay/query/allocationOrder', '分账订单查询接口', b'0', b'1', b'0', NULL, b'1', NULL, 0, '2024-01-03 14:25:48', 0, '2024-01-03 14:25:53', 0, b'0');
-INSERT INTO `pay_api_config` VALUES (1175, 'queryAllocationReceiver', '/unipay/query/allocationReceiver', '分账接收方查询接口', b'0', b'1', b'0', NULL, b'1', NULL, 0, '2024-01-03 14:25:48', 0, '2024-01-03 14:25:53', 0, b'0');
-INSERT INTO `pay_api_config` VALUES (1176, 'queryTransferOrder', '/unipay/query/transferOrder', '转账订单查询接口', b'0', b'1', b'0', NULL, b'1', NULL, 0, '2024-01-03 14:25:48', 0, '2024-01-03 14:25:53', 0, b'0');
-INSERT INTO `pay_api_config` VALUES (1200, 'getWxAuthUrl', '/unipay/assist/getWxAuthUrl', '获取微信OAuth2授权链接', b'0', b'1', b'0', NULL, b'1', NULL, 0, '2024-01-03 14:25:48', 0, '2024-01-03 14:25:53', 0, b'0');
-INSERT INTO `pay_api_config` VALUES (1300, 'getWxAccessToken', '/unipay/assist/getWxAccessToken', '获取微信AccessToken', b'0', b'1', b'0', NULL, b'1', NULL, 0, '2024-01-03 14:25:48', 0, '2024-01-03 14:25:53', 0, b'0');
+INSERT INTO `pay_api_config` VALUES (100, 'pay', '/unipay/pay', '统一支付接口	', b'1', NULL, 0, '2024-01-03 14:25:48', 1399985191002447872, '2024-06-11 09:44:20', 17, b'0');
+INSERT INTO `pay_api_config` VALUES (200, 'close', '/unipay/close', '支付关闭接口', b'1', NULL, 0, '2024-01-03 14:25:48', 1399985191002447872, '2024-06-11 09:44:20', 10, b'0');
+INSERT INTO `pay_api_config` VALUES (250, 'cancel', '/unipay/cancel', '支付撤销接口', b'1', NULL, 0, '2024-01-03 14:25:48', 0, '2024-01-03 14:25:53', 0, b'0');
+INSERT INTO `pay_api_config` VALUES (300, 'refund', '/unipay/refund', '统一退款接口', b'1', NULL, 0, '2024-01-03 14:25:48', 1399985191002447872, '2024-06-09 16:51:19', 9, b'0');
+INSERT INTO `pay_api_config` VALUES (400, 'allocation', '/unipay/allocation/start', '统一分账接口', b'1', NULL, 0, '2024-01-03 14:25:48', 1399985191002447872, '2024-06-09 16:51:20', 3, b'0');
+INSERT INTO `pay_api_config` VALUES (500, 'allocationFinish', '/unipay/allocation/finish', '分账完结接口', b'1', NULL, 0, '2024-01-03 14:25:48', 0, '2024-01-03 14:25:53', 0, b'0');
+INSERT INTO `pay_api_config` VALUES (600, 'allocationReceiverAdd', '/unipay/allocation/receiver/add', '分账接收方添加接口', b'1', NULL, 0, '2024-01-03 14:25:48', 0, '2024-01-03 14:25:53', 0, b'0');
+INSERT INTO `pay_api_config` VALUES (700, 'allocationReceiverRemove', '/unipay/allocation/receiver/remove', '分账接收方删除接口', b'1', NULL, 0, '2024-01-03 14:25:48', 0, '2024-01-03 14:25:53', 0, b'0');
+INSERT INTO `pay_api_config` VALUES (800, 'transfer', '/unipay/transfer', '统一转账接口', b'1', NULL, 0, '2024-01-03 14:25:48', 0, '2024-01-03 14:25:53', 0, b'0');
+INSERT INTO `pay_api_config` VALUES (900, 'syncPay', '/unipay/sync/pay', '支付同步接口', b'1', NULL, 0, '2024-01-03 14:25:48', 0, '2024-01-03 14:25:53', 0, b'0');
+INSERT INTO `pay_api_config` VALUES (1000, 'syncRefund', '/unipay/sync/refund', '退款同步接口', b'1', NULL, 0, '2024-01-03 14:25:48', 0, '2024-01-03 14:25:53', 0, b'0');
+INSERT INTO `pay_api_config` VALUES (1100, 'syncTransfer', '/unipay/sync/transfer', '转账同步接口', b'1', NULL, 0, '2024-01-03 14:25:48', 0, '2024-01-03 14:25:53', 0, b'0');
+INSERT INTO `pay_api_config` VALUES (1200, 'syncAllocation', '/unipay/sync/allocation', '分账同步接口', b'1', NULL, 0, '2024-01-03 14:25:48', 0, '2024-01-03 14:25:53', 0, b'0');
+INSERT INTO `pay_api_config` VALUES (1300, 'queryPayOrder', '/unipay/query/payOrder', '支付订单查询接口', b'1', NULL, 0, '2024-01-03 14:25:48', 0, '2024-01-03 14:25:53', 0, b'0');
+INSERT INTO `pay_api_config` VALUES (1400, 'queryRefundOrder', '/unipay/query/refundOrder', '退款订单查询接口', b'1', NULL, 0, '2024-01-03 14:25:48', 0, '2024-01-03 14:25:53', 0, b'0');
+INSERT INTO `pay_api_config` VALUES (1500, 'queryAllocationOrder', '/unipay/query/allocationOrder', '分账订单查询接口', b'1', NULL, 0, '2024-01-03 14:25:48', 0, '2024-01-03 14:25:53', 0, b'0');
+INSERT INTO `pay_api_config` VALUES (1600, 'queryAllocationReceiver', '/unipay/query/allocationReceiver', '分账接收方查询接口', b'1', NULL, 0, '2024-01-03 14:25:48', 0, '2024-01-03 14:25:53', 0, b'0');
+INSERT INTO `pay_api_config` VALUES (1700, 'queryTransferOrder', '/unipay/query/transferOrder', '转账订单查询接口', b'1', NULL, 0, '2024-01-03 14:25:48', 0, '2024-01-03 14:25:53', 0, b'0');
+INSERT INTO `pay_api_config` VALUES (1800, 'getWxAuthUrl', '/unipay/assist/getWxAuthUrl', '获取微信OAuth2授权链接', b'1', NULL, 0, '2024-01-03 14:25:48', 0, '2024-01-03 14:25:53', 0, b'0');
+INSERT INTO `pay_api_config` VALUES (1900, 'getWxAccessToken', '/unipay/assist/getWxAccessToken', '获取微信AccessToken', b'1', NULL, 0, '2024-01-03 14:25:48', 0, '2024-01-03 14:25:53', 0, b'0');
 
 -- ----------------------------
 -- Table structure for pay_callback_record
@@ -2519,18 +2592,20 @@ INSERT INTO `pay_api_config` VALUES (1300, 'getWxAccessToken', '/unipay/assist/g
 DROP TABLE IF EXISTS `pay_callback_record`;
 CREATE TABLE `pay_callback_record`  (
   `id` bigint(20) NOT NULL COMMENT '主键',
-  `trade_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '本地交易号',
-  `out_trade_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '通道交易号',
-  `channel` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '支付通道',
-  `callback_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '回调类型',
-  `notify_info` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '通知消息',
-  `status` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '回调处理状态',
-  `repair_order_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
-  `error_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '错误码',
+  `trade_no` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '本地交易号',
+  `out_trade_no` varchar(150) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '通道交易号',
+  `channel` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '支付通道',
+  `callback_type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '回调类型',
+  `notify_info` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '通知消息',
+  `status` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '回调处理状态',
+  `repair_order_no` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '修复号',
+  `error_code` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '错误码',
+  `error_msg` varchar(2048) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '错误信息',
   `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
   `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
-  `error_msg` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '提示信息',
-  PRIMARY KEY (`id`) USING BTREE
+  PRIMARY KEY (`id`) USING BTREE,
+  INDEX `trade_no`(`trade_no`) USING BTREE COMMENT '本地交易号索引',
+  INDEX `out_trade_no`(`out_trade_no`) USING BTREE COMMENT '通道交易号索引'
 ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '网关回调通知' ROW_FORMAT = DYNAMIC;
 
 -- ----------------------------
@@ -2543,12 +2618,9 @@ CREATE TABLE `pay_callback_record`  (
 DROP TABLE IF EXISTS `pay_channel_config`;
 CREATE TABLE `pay_channel_config`  (
   `id` bigint(20) NOT NULL COMMENT '主键',
-  `code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '代码',
-  `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '名称',
-  `icon_id` bigint(20) NULL DEFAULT NULL COMMENT 'ICON图片',
-  `bg_color` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '卡牌背景色',
-  `enable` bit(1) NULL DEFAULT NULL COMMENT '是否启用',
-  `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
+  `code` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '代码',
+  `name` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '名称',
+  `remark` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
   `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
   `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
   `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修者ID',
@@ -2561,10 +2633,10 @@ CREATE TABLE `pay_channel_config`  (
 -- ----------------------------
 -- Records of pay_channel_config
 -- ----------------------------
-INSERT INTO `pay_channel_config` VALUES (1, 'ali_pay', '支付宝', NULL, NULL, b'0', '', 0, '2024-01-08 16:47:07', 1757299137932677120, '2024-05-13 19:46:19', 12, b'0');
-INSERT INTO `pay_channel_config` VALUES (2, 'wechat_pay', '微信支付', NULL, NULL, b'0', '', 0, '2024-01-08 16:47:07', 1399985191002447872, '2024-02-13 15:38:24', 7, b'0');
-INSERT INTO `pay_channel_config` VALUES (3, 'union_pay', '云闪付', NULL, NULL, b'0', NULL, 0, '2024-01-08 16:47:07', 1399985191002447872, '2024-03-10 15:04:36', 2, b'0');
-INSERT INTO `pay_channel_config` VALUES (5, 'wallet_pay', '钱包支付', NULL, NULL, b'0', NULL, 0, '2024-01-08 16:47:07', 0, '2024-01-08 16:47:11', 0, b'0');
+INSERT INTO `pay_channel_config` VALUES (1, 'ali_pay', '支付宝', '', 0, '2024-01-08 16:47:07', 1757299137932677120, '2024-05-13 19:46:19', 12, b'0');
+INSERT INTO `pay_channel_config` VALUES (2, 'wechat_pay', '微信支付', '', 0, '2024-01-08 16:47:07', 1399985191002447872, '2024-02-13 15:38:24', 7, b'0');
+INSERT INTO `pay_channel_config` VALUES (3, 'union_pay', '云闪付', NULL, 0, '2024-01-08 16:47:07', 1399985191002447872, '2024-03-10 15:04:36', 2, b'0');
+INSERT INTO `pay_channel_config` VALUES (5, 'wallet_pay', '钱包支付', NULL, 0, '2024-01-08 16:47:07', 0, '2024-01-08 16:47:11', 0, b'0');
 
 -- ----------------------------
 -- Table structure for pay_client_notice_record
@@ -2572,15 +2644,16 @@ INSERT INTO `pay_channel_config` VALUES (5, 'wallet_pay', '钱包支付', NULL,
 DROP TABLE IF EXISTS `pay_client_notice_record`;
 CREATE TABLE `pay_client_notice_record`  (
   `id` bigint(20) NOT NULL COMMENT '主键',
-  `task_id` bigint(20) NULL DEFAULT NULL COMMENT '任务ID',
-  `req_count` int(11) NULL DEFAULT NULL COMMENT '请求次数',
-  `success` bit(1) NULL DEFAULT NULL COMMENT '发送是否成功',
-  `send_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '发送类型',
-  `error_msg` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '错误信息',
+  `task_id` bigint(20) NOT NULL COMMENT '任务ID',
+  `req_count` int(3) NULL DEFAULT NULL COMMENT '请求次数',
+  `success` bit(1) NOT NULL COMMENT '发送是否成功',
+  `send_type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '发送类型',
+  `error_code` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '错误码',
+  `error_msg` varchar(2048) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '错误信息',
   `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
   `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
-  `error_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '错误编码',
-  PRIMARY KEY (`id`) USING BTREE
+  PRIMARY KEY (`id`) USING BTREE,
+  INDEX `task_id`(`task_id`) USING BTREE COMMENT '任务ID索引'
 ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '消息通知任务记录' ROW_FORMAT = DYNAMIC;
 
 -- ----------------------------
@@ -2593,10 +2666,14 @@ CREATE TABLE `pay_client_notice_record`  (
 DROP TABLE IF EXISTS `pay_client_notice_task`;
 CREATE TABLE `pay_client_notice_task`  (
   `id` bigint(20) NOT NULL COMMENT '主键',
-  `content` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '消息内容',
-  `success` bit(1) NULL DEFAULT NULL COMMENT '是否发送成功',
-  `send_count` int(11) NULL DEFAULT NULL COMMENT '发送次数',
-  `url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '发送地址',
+  `trade_id` bigint(20) NOT NULL COMMENT '本地交易ID',
+  `trade_no` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '本地交易号',
+  `notice_type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '消息类型',
+  `trade_status` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '交易状态',
+  `content` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '消息内容',
+  `success` bit(1) NOT NULL COMMENT '是否发送成功',
+  `send_count` int(3) NOT NULL COMMENT '发送次数',
+  `url` varchar(150) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '发送地址',
   `latest_time` datetime NULL DEFAULT NULL COMMENT '最后发送时间',
   `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
   `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
@@ -2604,11 +2681,8 @@ CREATE TABLE `pay_client_notice_task`  (
   `last_modified_time` datetime NULL DEFAULT NULL COMMENT '最后修改时间',
   `version` int(11) NOT NULL COMMENT '乐观锁',
   `deleted` bit(1) NOT NULL COMMENT '删除标志',
-  `notice_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '消息类型',
-  `trade_id` bigint(20) NULL DEFAULT NULL COMMENT '本地交易ID',
-  `trade_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '本地交易号',
-  `trade_status` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '交易状态',
-  PRIMARY KEY (`id`) USING BTREE
+  PRIMARY KEY (`id`) USING BTREE,
+  INDEX `trade_no`(`trade_no`) USING BTREE COMMENT '本地交易号索引'
 ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '消息通知任务' ROW_FORMAT = DYNAMIC;
 
 -- ----------------------------
@@ -2621,16 +2695,19 @@ CREATE TABLE `pay_client_notice_task`  (
 DROP TABLE IF EXISTS `pay_close_record`;
 CREATE TABLE `pay_close_record`  (
   `id` bigint(20) NOT NULL COMMENT '主键',
-  `order_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '订单号',
-  `biz_order_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商户订单号',
-  `channel` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '关闭的支付通道',
-  `closed` bit(1) NULL DEFAULT NULL COMMENT '是否关闭成功',
-  `error_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '错误码',
-  `error_msg` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '错误消息',
-  `client_ip` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '客户端IP',
+  `order_no` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '支付订单号',
+  `biz_order_no` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '商户支付订单号',
+  `channel` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '支付通道',
+  `close_type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '关闭类型',
+  `closed` bit(1) NOT NULL COMMENT '是否关闭成功',
+  `error_code` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '错误码',
+  `error_msg` varchar(2048) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '错误信息',
+  `client_ip` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '支付终端ip',
   `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
   `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
-  PRIMARY KEY (`id`) USING BTREE
+  PRIMARY KEY (`id`) USING BTREE,
+  INDEX `order_no`(`order_no`) USING BTREE COMMENT '支付订单号索引',
+  INDEX `biz_order_no`(`biz_order_no`) USING BTREE COMMENT '商户支付订单号索引'
 ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '支付关闭记录' ROW_FORMAT = DYNAMIC;
 
 -- ----------------------------
@@ -2643,9 +2720,9 @@ CREATE TABLE `pay_close_record`  (
 DROP TABLE IF EXISTS `pay_method_info`;
 CREATE TABLE `pay_method_info`  (
   `id` bigint(20) NOT NULL COMMENT '主键',
-  `code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '代码',
-  `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '名称',
-  `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
+  `code` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '代码',
+  `name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '名称',
+  `remark` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
   `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
   `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
   `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修者ID',
@@ -2671,111 +2748,76 @@ INSERT INTO `pay_method_info` VALUES (7, 'jsapi', '公众号/小程序支付', '
 DROP TABLE IF EXISTS `pay_order`;
 CREATE TABLE `pay_order`  (
   `id` bigint(20) NOT NULL COMMENT '主键',
-  `biz_order_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商户订单号',
-  `order_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '支付订单号',
-  `out_order_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '通道支付订单号',
-  `title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '标题',
-  `description` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '描述',
+  `biz_order_no` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '商户订单号',
+  `order_no` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '支付订单号',
+  `out_order_no` varchar(150) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '通道支付订单号',
+  `title` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '标题',
+  `description` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '描述',
   `allocation` bit(1) NULL DEFAULT NULL COMMENT '是否需要分账',
-  `channel` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '异步支付通道',
-  `method` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '支付方式',
-  `amount` int(11) NULL DEFAULT NULL COMMENT '金额',
-  `refundable_balance` int(11) NULL DEFAULT NULL COMMENT '可退款余额',
-  `status` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '支付状态',
-  `allocation_status` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '分账状态',
+  `auto_allocation` bit(1) NULL DEFAULT NULL COMMENT '自动分账',
+  `channel` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '异步支付通道',
+  `method` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '支付方式',
+  `amount` int(8) NOT NULL COMMENT '金额',
+  `refundable_balance` int(8) NOT NULL COMMENT '可退款余额',
+  `status` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '支付状态',
+  `refund_status` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '退款状态',
+  `alloc_status` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '分账状态',
   `pay_time` datetime NULL DEFAULT NULL COMMENT '支付时间',
   `close_time` datetime NULL DEFAULT NULL COMMENT '关闭时间',
   `expired_time` datetime NULL DEFAULT NULL COMMENT '过期时间',
-  `error_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '错误码',
-  `error_msg` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '错误信息',
+  `error_code` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '错误码',
+  `error_msg` varchar(2048) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '错误信息',
+  `return_url` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '同步跳转地址',
+  `notify_url` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '异步通知地址',
+  `extra_param` varchar(2048) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '附加参数',
+  `attach` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商户扩展参数',
+  `req_time` datetime NULL DEFAULT NULL COMMENT '请求时间',
+  `client_ip` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '支付终端ip',
   `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
   `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
   `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修者ID',
   `last_modified_time` datetime NULL DEFAULT NULL COMMENT '最后修改时间',
   `version` int(11) NOT NULL COMMENT '乐观锁',
   `deleted` bit(1) NOT NULL COMMENT '删除标志',
-  `auto_allocation` bit(1) NULL DEFAULT NULL COMMENT '自动分账',
   PRIMARY KEY (`id`) USING BTREE,
-  UNIQUE INDEX `biz_order_no`(`biz_order_no`) USING BTREE COMMENT '商户订单号索引'
+  INDEX `biz_order_no`(`biz_order_no`) USING BTREE COMMENT '商户订单号索引',
+  INDEX `order_no`(`order_no`) USING BTREE COMMENT '支付订单号索引',
+  INDEX `out_order_no`(`out_order_no`) USING BTREE COMMENT '通道支付订单索引'
 ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '支付订单' ROW_FORMAT = DYNAMIC;
 
 -- ----------------------------
 -- Records of pay_order
 -- ----------------------------
 
--- ----------------------------
--- Table structure for pay_order_extra
--- ----------------------------
-DROP TABLE IF EXISTS `pay_order_extra`;
-CREATE TABLE `pay_order_extra`  (
-  `id` bigint(20) NOT NULL COMMENT '主键',
-  `return_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '同步跳转地址',
-  `notify_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '异步通知地址',
-  `extra_param` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '附加参数',
-  `attach` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商户扩展参数',
-  `req_time` datetime NULL DEFAULT NULL COMMENT '请求时间,传输时间戳,以最后一次为准',
-  `client_ip` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '支付终端ip',
-  `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-  `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
-  `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修者ID',
-  `last_modified_time` datetime NULL DEFAULT NULL COMMENT '最后修改时间',
-  `version` int(11) NOT NULL COMMENT '乐观锁',
-  `deleted` bit(1) NOT NULL COMMENT '删除标志',
-  PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '支付订单扩展信息' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of pay_order_extra
--- ----------------------------
-
 -- ----------------------------
 -- Table structure for pay_platform_config
 -- ----------------------------
 DROP TABLE IF EXISTS `pay_platform_config`;
 CREATE TABLE `pay_platform_config`  (
   `id` bigint(20) NOT NULL COMMENT '主键',
-  `website_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '网站地址',
-  `sign_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '签名方式',
-  `sign_secret` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '签名秘钥',
-  `notify_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '支付通知地址',
-  `return_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '同步支付跳转地址',
-  `order_timeout` int(11) NULL DEFAULT NULL COMMENT '订单默认超时时间(分钟)',
+  `website_url` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '网站地址',
+  `sign_type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '签名方式',
+  `sign_secret` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '签名秘钥',
+  `notify_url` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '消息通知地址',
+  `return_url` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '同步支付跳转地址',
+  `order_timeout` int(8) NULL DEFAULT NULL COMMENT '订单默认超时时间(分钟)',
   `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
   `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
   `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修者ID',
   `last_modified_time` datetime NULL DEFAULT NULL COMMENT '最后修改时间',
   `version` int(11) NOT NULL COMMENT '乐观锁',
   `deleted` bit(1) NOT NULL COMMENT '删除标志',
-  `limit_amount` int(11) NULL DEFAULT NULL COMMENT '支付限额',
+  `limit_amount` int(15) NULL DEFAULT NULL COMMENT '支付限额',
+  `req_sign` bit(1) NOT NULL COMMENT '是否对请求进行验签',
+  `notify_type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '消息通知方式',
+  `req_timeout` int(10) NOT NULL COMMENT '请求有效时长(秒)',
   PRIMARY KEY (`id`) USING BTREE
 ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '支付平台配置' ROW_FORMAT = DYNAMIC;
 
 -- ----------------------------
 -- Records of pay_platform_config
 -- ----------------------------
-INSERT INTO `pay_platform_config` VALUES (0, 'http://pay1.bootx.cn/', 'HMAC_SHA256', '123456', 'http://pay1.bootx.cn/h5/#/result/success', 'http://pay1.bootx.cn/h5/#/result/success', 30, 0, '2024-01-02 20:23:19', 1399985191002447872, '2024-03-24 11:34:20', 13, b'0', 20000);
-
--- ----------------------------
--- Table structure for pay_reconcile_detail
--- ----------------------------
-DROP TABLE IF EXISTS `pay_reconcile_detail`;
-CREATE TABLE `pay_reconcile_detail`  (
-  `id` bigint(20) NOT NULL COMMENT '主键',
-  `title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商品名称',
-  `amount` int(11) NULL DEFAULT NULL COMMENT '交易金额',
-  `type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '交易类型',
-  `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-  `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
-  `reconcile_id` bigint(20) NULL DEFAULT NULL COMMENT '关联对账订单ID',
-  `trade_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '本地交易号',
-  `out_trade_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '外部交易号',
-  `trade_time` datetime NULL DEFAULT NULL COMMENT '交易时间',
-  PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '支付对账记录' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of pay_reconcile_detail
--- ----------------------------
+INSERT INTO `pay_platform_config` VALUES (0, 'http://www.daxpay.cn/server', 'HMAC_SHA256', '123456', '', '', 30, 0, '2024-01-02 20:23:19', 1399985191002447872, '2024-06-21 17:59:41', 25, b'0', 19911, b'1', NULL, 10);
 
 -- ----------------------------
 -- Table structure for pay_reconcile_diff_record
@@ -2783,26 +2825,26 @@ CREATE TABLE `pay_reconcile_detail`  (
 DROP TABLE IF EXISTS `pay_reconcile_diff_record`;
 CREATE TABLE `pay_reconcile_diff_record`  (
   `id` bigint(20) NOT NULL COMMENT '主键',
-  `detail_id` bigint(20) NULL DEFAULT NULL COMMENT '对账单明细ID',
-  `title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '订单标题',
-  `diff_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '差异类型',
+  `reconcile_id` bigint(20) NOT NULL COMMENT '对账单ID',
+  `reconcile_no` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '对账号',
+  `detail_id` bigint(20) NOT NULL COMMENT '对账单明细ID',
+  `reconcile_date` date NOT NULL COMMENT '对账日期',
+  `trade_no` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '本地交易号',
+  `out_trade_no` varchar(150) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '通道交易号',
+  `trade_time` datetime NOT NULL COMMENT '交易时间',
+  `title` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '订单标题',
+  `channel` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '通道',
+  `amount` int(15) NULL DEFAULT NULL COMMENT '本地交易金额',
+  `out_amount` int(15) NULL DEFAULT NULL COMMENT '通道交易金额',
+  `trade_type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '交易类型',
+  `diff_type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '差异类型',
   `diffs` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '差异内容',
-  `amount` int(11) NULL DEFAULT NULL COMMENT '本地交易金额',
   `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
   `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
   `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修者ID',
   `last_modified_time` datetime NULL DEFAULT NULL COMMENT '最后修改时间',
   `version` int(11) NOT NULL COMMENT '乐观锁',
   `deleted` bit(1) NOT NULL COMMENT '删除标志',
-  `reconcile_id` bigint(20) NULL DEFAULT NULL COMMENT '对账单ID',
-  `trade_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '本地交易号',
-  `trade_time` datetime NULL DEFAULT NULL COMMENT '交易时间',
-  `out_amount` int(11) NULL DEFAULT NULL COMMENT '通道交易金额',
-  `reconcile_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '对账号',
-  `reconcile_date` date NULL DEFAULT NULL COMMENT '对账日期',
-  `trade_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '交易类型',
-  `channel` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '通道',
-  `out_trade_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '通道交易号',
   PRIMARY KEY (`id`) USING BTREE
 ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '对账差异单' ROW_FORMAT = DYNAMIC;
 
@@ -2816,11 +2858,12 @@ CREATE TABLE `pay_reconcile_diff_record`  (
 DROP TABLE IF EXISTS `pay_reconcile_file`;
 CREATE TABLE `pay_reconcile_file`  (
   `id` bigint(20) NOT NULL COMMENT '主键',
-  `reconcile_id` bigint(20) NULL DEFAULT NULL COMMENT '对账单ID',
-  `type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '类型',
-  `file_id` bigint(20) NULL DEFAULT NULL COMMENT '对账单文件',
-  PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '原始对账单文件,' ROW_FORMAT = DYNAMIC;
+  `reconcile_id` bigint(20) NOT NULL COMMENT '对账单ID',
+  `type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '类型',
+  `file_id` bigint(20) NOT NULL COMMENT '对账单文件',
+  PRIMARY KEY (`id`) USING BTREE,
+  INDEX `reconcile_id`(`reconcile_id`) USING BTREE COMMENT '对账单ID索引'
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '原始对账单文件' ROW_FORMAT = DYNAMIC;
 
 -- ----------------------------
 -- Records of pay_reconcile_file
@@ -2832,17 +2875,22 @@ CREATE TABLE `pay_reconcile_file`  (
 DROP TABLE IF EXISTS `pay_reconcile_order`;
 CREATE TABLE `pay_reconcile_order`  (
   `id` bigint(20) NOT NULL COMMENT '主键',
-  `date` date NULL DEFAULT NULL COMMENT '日期',
-  `channel` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '通道',
-  `compare` bit(1) NULL DEFAULT NULL COMMENT '明细对账单比对',
-  `error_msg` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '错误信息',
+  `reconcile_no` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '对账号',
+  `date` date NOT NULL COMMENT '日期',
+  `channel` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '通道',
+  `down_or_upload` bit(1) NOT NULL COMMENT '明细对账单下载',
+  `compare` bit(1) NOT NULL COMMENT '明细对账单比对',
+  `result` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '对账结果',
+  `error_code` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '错误码',
+  `error_msg` varchar(2048) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '错误信息',
   `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
   `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
-  `reconcile_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '对账号',
-  `result` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '对账结果',
-  `error_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '错误码',
-  `down_or_upload` bit(1) NULL DEFAULT NULL COMMENT '明细对账单下载',
-  PRIMARY KEY (`id`) USING BTREE
+  `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修者ID',
+  `last_modified_time` datetime NULL DEFAULT NULL COMMENT '最后修改时间',
+  `version` int(11) NOT NULL COMMENT '乐观锁',
+  `deleted` bit(1) NOT NULL COMMENT '删除标志',
+  PRIMARY KEY (`id`) USING BTREE,
+  INDEX `reconcile_no`(`reconcile_no`) USING BTREE COMMENT '对账号索引'
 ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '支付对账单订单' ROW_FORMAT = DYNAMIC;
 
 -- ----------------------------
@@ -2855,16 +2903,17 @@ CREATE TABLE `pay_reconcile_order`  (
 DROP TABLE IF EXISTS `pay_reconcile_out_trade`;
 CREATE TABLE `pay_reconcile_out_trade`  (
   `id` bigint(20) NOT NULL COMMENT '主键',
-  `reconcile_id` bigint(20) NULL DEFAULT NULL COMMENT '关联对账订单ID',
-  `title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商品名称',
-  `amount` int(11) NULL DEFAULT NULL COMMENT '交易金额',
-  `type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '交易类型',
-  `trade_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '本地交易号',
-  `out_trade_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '通道交易号',
-  `trade_time` datetime NULL DEFAULT NULL COMMENT '交易时间',
+  `reconcile_id` bigint(20) NOT NULL COMMENT '关联对账订单ID',
+  `title` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '商品名称',
+  `amount` int(8) NOT NULL COMMENT '交易金额',
+  `type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '交易类型',
+  `trade_no` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '本地交易号',
+  `out_trade_no` varchar(150) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '通道交易号',
+  `trade_time` datetime NOT NULL COMMENT '交易时间',
   `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
   `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
-  PRIMARY KEY (`id`) USING BTREE
+  PRIMARY KEY (`id`) USING BTREE,
+  INDEX `reconcile_id`(`reconcile_id`) USING BTREE COMMENT '对账单ID索引'
 ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '对账-通道交易明细' ROW_FORMAT = DYNAMIC;
 
 -- ----------------------------
@@ -2877,77 +2926,66 @@ CREATE TABLE `pay_reconcile_out_trade`  (
 DROP TABLE IF EXISTS `pay_refund_order`;
 CREATE TABLE `pay_refund_order`  (
   `id` bigint(20) NOT NULL COMMENT '主键',
-  `order_id` bigint(20) NULL DEFAULT NULL COMMENT '支付订单ID',
-  `order_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '支付订单号',
-  `biz_order_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商户支付订单号',
-  `out_order_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '通道支付订单号',
-  `title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '支付标题',
-  `refund_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '退款号',
-  `biz_refund_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商户退款号',
-  `out_refund_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '通道退款交易号',
-  `channel` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '支付通道',
-  `order_amount` int(11) NULL DEFAULT NULL COMMENT '订单金额',
-  `amount` int(11) NULL DEFAULT NULL COMMENT '退款金额',
-  `reason` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '退款原因',
+  `order_id` bigint(20) NOT NULL COMMENT '支付订单ID',
+  `order_no` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '支付订单号',
+  `biz_order_no` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '商户支付订单号',
+  `out_order_no` varchar(150) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '通道支付订单号',
+  `title` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '支付标题',
+  `refund_no` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '退款号',
+  `biz_refund_no` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '商户退款号',
+  `out_refund_no` varchar(150) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '通道退款交易号',
+  `channel` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '支付通道',
+  `order_amount` int(8) NOT NULL COMMENT '订单金额',
+  `amount` int(8) NOT NULL COMMENT '退款金额',
+  `reason` varchar(150) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '退款原因',
   `finish_time` datetime NULL DEFAULT NULL COMMENT '退款完成时间',
-  `status` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '退款状态',
-  `error_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '错误码',
-  `error_msg` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '错误信息',
+  `status` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '退款状态',
+  `notify_url` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '异步通知地址',
+  `attach` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商户扩展参数',
+  `extra_param` varchar(2048) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '附加参数',
+  `req_time` datetime NULL DEFAULT NULL COMMENT '请求时间,传输时间戳',
+  `client_ip` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '支付终端ip',
+  `error_code` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '错误码',
+  `error_msg` varchar(2048) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '错误信息',
   `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
   `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
   `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修者ID',
   `last_modified_time` datetime NULL DEFAULT NULL COMMENT '最后修改时间',
   `version` int(11) NOT NULL COMMENT '乐观锁',
   `deleted` bit(1) NOT NULL COMMENT '删除标志',
-  PRIMARY KEY (`id`) USING BTREE
+  PRIMARY KEY (`id`) USING BTREE,
+  INDEX `order_id`(`order_id`) USING BTREE COMMENT '支付订单ID索引',
+  INDEX `order_no`(`order_no`) USING BTREE COMMENT '支付订单号索引',
+  INDEX `biz_order_no`(`biz_order_no`) USING BTREE COMMENT '商户支付订单号索引',
+  INDEX `out_order_no`(`out_order_no`) USING BTREE COMMENT '通道支付订单号索引',
+  INDEX `refund_no`(`refund_no`) USING BTREE COMMENT '退款号索引',
+  INDEX `biz_refund_no`(`biz_refund_no`) USING BTREE COMMENT '商户退款号索引',
+  INDEX `out_refund_no`(`out_refund_no`) USING BTREE COMMENT '通道退款交易号索引'
 ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '退款订单' ROW_FORMAT = DYNAMIC;
 
 -- ----------------------------
 -- Records of pay_refund_order
 -- ----------------------------
 
--- ----------------------------
--- Table structure for pay_refund_order_extra
--- ----------------------------
-DROP TABLE IF EXISTS `pay_refund_order_extra`;
-CREATE TABLE `pay_refund_order_extra`  (
-  `id` bigint(20) NOT NULL COMMENT '主键',
-  `notify_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '异步通知地址',
-  `attach` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商户扩展参数',
-  `extra_param` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '附加参数',
-  `req_time` datetime NULL DEFAULT NULL COMMENT '请求时间,传输时间戳',
-  `client_ip` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '支付终端ip',
-  `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-  `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
-  `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修者ID',
-  `last_modified_time` datetime NULL DEFAULT NULL COMMENT '最后修改时间',
-  `version` int(11) NOT NULL COMMENT '乐观锁',
-  `deleted` bit(1) NOT NULL COMMENT '删除标志',
-  PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '退款订单扩展信息' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of pay_refund_order_extra
--- ----------------------------
-
 -- ----------------------------
 -- Table structure for pay_repair_record
 -- ----------------------------
 DROP TABLE IF EXISTS `pay_repair_record`;
 CREATE TABLE `pay_repair_record`  (
   `id` bigint(20) NOT NULL COMMENT '主键',
-  `repair_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '修复号',
-  `trade_id` bigint(20) NULL DEFAULT NULL COMMENT '本地订单ID',
-  `trade_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '本地业务号',
-  `repair_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '修复类型',
-  `repair_source` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '修复来源',
-  `repair_way` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '修复方式',
-  `channel` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '修复的通道',
-  `before_status` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '修复前状态',
-  `after_status` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '修复后状态',
+  `repair_no` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '修复号',
+  `trade_id` bigint(20) NOT NULL COMMENT '本地订单ID',
+  `trade_no` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '本地交易号',
+  `repair_type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '修复类型',
+  `repair_source` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '修复来源',
+  `repair_way` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '修复方式',
+  `channel` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '修复的通道',
+  `before_status` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '修复前状态',
+  `after_status` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '修复后状态',
   `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
   `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
-  PRIMARY KEY (`id`) USING BTREE
+  PRIMARY KEY (`id`) USING BTREE,
+  INDEX `trade_no`(`trade_no`) USING BTREE COMMENT '本地交易号索引'
 ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '支付修复记录' ROW_FORMAT = DYNAMIC;
 
 -- ----------------------------
@@ -2960,21 +2998,24 @@ CREATE TABLE `pay_repair_record`  (
 DROP TABLE IF EXISTS `pay_sync_record`;
 CREATE TABLE `pay_sync_record`  (
   `id` bigint(20) NOT NULL COMMENT '主键',
-  `trade_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '本地交易号',
-  `biz_trade_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商户交易号',
-  `out_trade_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '通道交易号',
-  `out_trade_status` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '网关返回状态',
-  `sync_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '同步类型',
-  `channel` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '同步的异步通道',
-  `sync_info` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '同步消息',
-  `repair` bit(1) NULL DEFAULT NULL COMMENT '是否进行修复',
-  `repair_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '修复单号',
-  `error_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '错误码',
-  `error_msg` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '错误消息',
-  `client_ip` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '客户端IP',
+  `trade_no` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '本地交易号',
+  `biz_trade_no` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '商户交易号',
+  `out_trade_no` varchar(150) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '通道交易号',
+  `out_trade_status` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '网关返回状态',
+  `sync_type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '同步类型',
+  `channel` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '同步的异步通道',
+  `sync_info` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '同步消息',
+  `repair` bit(1) NOT NULL COMMENT '是否进行修复',
+  `repair_no` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '修复单号',
+  `error_code` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '错误码',
+  `error_msg` varchar(2048) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '错误信息',
+  `client_ip` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '支付终端ip',
   `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
   `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
-  PRIMARY KEY (`id`) USING BTREE
+  PRIMARY KEY (`id`) USING BTREE,
+  INDEX `trade_no`(`trade_no`) USING BTREE COMMENT '本地交易号索引',
+  INDEX `biz_trade_no`(`biz_trade_no`) USING BTREE COMMENT '商户交易号索引',
+  INDEX `out_trade_no`(`out_trade_no`) USING BTREE COMMENT '通道交易号索引'
 ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '支付同步订单' ROW_FORMAT = DYNAMIC;
 
 -- ----------------------------
@@ -2987,16 +3028,19 @@ CREATE TABLE `pay_sync_record`  (
 DROP TABLE IF EXISTS `pay_trade_flow_record`;
 CREATE TABLE `pay_trade_flow_record`  (
   `id` bigint(20) NOT NULL COMMENT '主键',
-  `title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '标题',
-  `amount` int(11) NULL DEFAULT NULL COMMENT '金额',
-  `type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '业务类型',
-  `channel` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '支付通道',
-  `trade_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '本地交易号',
-  `biz_trade_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商户交易号',
-  `out_trade_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '通道交易号',
+  `title` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '标题',
+  `amount` int(8) NOT NULL COMMENT '金额',
+  `type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '业务类型',
+  `channel` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '支付通道',
+  `trade_no` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '本地交易号',
+  `biz_trade_no` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '商户交易号',
+  `out_trade_no` varchar(150) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '通道交易号',
   `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
   `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
-  PRIMARY KEY (`id`) USING BTREE
+  PRIMARY KEY (`id`) USING BTREE,
+  INDEX `trade_no`(`trade_no`) USING BTREE COMMENT '本地交易号索引',
+  INDEX `biz_trade_no`(`biz_trade_no`) USING BTREE COMMENT '商户交易号索引',
+  INDEX `out_trade_no`(`out_trade_no`) USING BTREE COMMENT '通道交易号索引'
 ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '资金流水记录' ROW_FORMAT = DYNAMIC;
 
 -- ----------------------------
@@ -3009,20 +3053,35 @@ CREATE TABLE `pay_trade_flow_record`  (
 DROP TABLE IF EXISTS `pay_transfer_order`;
 CREATE TABLE `pay_transfer_order`  (
   `id` bigint(20) NOT NULL COMMENT '主键',
-  `out_trade_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
-  `channel` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
-  `amount` int(11) NULL DEFAULT NULL,
-  `status` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
-  `payer` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
-  `payee` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
-  `success_time` datetime NULL DEFAULT NULL,
+  `biz_transfer_no` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '商户转账号',
+  `transfer_no` varchar(150) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '转账号',
+  `out_transfer_no` varchar(150) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '通道转账号',
+  `channel` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '支付通道',
+  `amount` int(8) NOT NULL COMMENT '转账金额',
+  `title` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '标题',
+  `reason` varchar(150) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '转账原因/备注',
+  `transfer_type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '转账类型, 微信使用',
+  `payee_type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '收款人类型',
+  `payee_account` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '收款人账号',
+  `payee_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '收款人姓名',
+  `status` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '状态',
+  `success_time` datetime NULL DEFAULT NULL COMMENT '成功时间',
+  `notify_url` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '异步通知地址',
+  `attach` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商户扩展参数',
+  `req_time` datetime NULL DEFAULT NULL COMMENT '请求时间,传输时间戳',
+  `client_ip` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '支付终端ip',
+  `error_code` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '错误码',
+  `error_msg` varchar(2048) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '错误信息',
   `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
   `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
   `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修者ID',
   `last_modified_time` datetime NULL DEFAULT NULL COMMENT '最后修改时间',
   `version` int(11) NOT NULL COMMENT '乐观锁',
   `deleted` bit(1) NOT NULL COMMENT '删除标志',
-  PRIMARY KEY (`id`) USING BTREE
+  PRIMARY KEY (`id`) USING BTREE,
+  INDEX `biz_transfer_no`(`biz_transfer_no`) USING BTREE COMMENT '商户转账号索引',
+  INDEX `transfer_no`(`transfer_no`) USING BTREE COMMENT '转账号索引',
+  INDEX `out_transfer_no`(`out_transfer_no`) USING BTREE COMMENT '通道转账号索引'
 ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '转账订单' ROW_FORMAT = DYNAMIC;
 
 -- ----------------------------
@@ -3042,7 +3101,7 @@ CREATE TABLE `pay_union_pay_config`  (
   `pay_ways` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '可用支付方式',
   `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
   `seller` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商户收款账号',
-  `single_limit` int(11) NULL DEFAULT NULL COMMENT '支付限额',
+  `limit_amount` int(11) NULL DEFAULT NULL COMMENT '支付限额',
   `sign_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '签名类型',
   `cert_sign` bit(1) NULL DEFAULT NULL COMMENT '是否为证书签名',
   `key_private_cert` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '应用私钥证书',
@@ -3113,7 +3172,6 @@ DROP TABLE IF EXISTS `pay_wallet_config`;
 CREATE TABLE `pay_wallet_config`  (
   `id` bigint(20) NOT NULL COMMENT '主键',
   `enable` bit(1) NULL DEFAULT NULL COMMENT '是否启用',
-  `single_limit` int(11) NULL DEFAULT NULL COMMENT '单次支付最多多少金额 ',
   `pay_ways` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '可用支付方式',
   `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
   `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
@@ -3122,13 +3180,14 @@ CREATE TABLE `pay_wallet_config`  (
   `last_modified_time` datetime NULL DEFAULT NULL COMMENT '最后修改时间',
   `version` int(11) NOT NULL COMMENT '乐观锁',
   `deleted` bit(1) NOT NULL COMMENT '删除标志',
+  `limit_amount` int(11) NULL DEFAULT NULL COMMENT '单次支付最多多少金额 ',
   PRIMARY KEY (`id`) USING BTREE
 ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '钱包配置' ROW_FORMAT = DYNAMIC;
 
 -- ----------------------------
 -- Records of pay_wallet_config
 -- ----------------------------
-INSERT INTO `pay_wallet_config` VALUES (0, b'0', 2000, 'normal', NULL, 0, '2024-02-17 14:36:28', 1399985191002447872, '2024-02-17 14:40:45', 4, b'0');
+INSERT INTO `pay_wallet_config` VALUES (0, b'0', 'normal', NULL, 0, '2024-02-17 14:36:28', 1399985191002447872, '2024-02-17 14:40:45', 4, b'0', NULL);
 
 -- ----------------------------
 -- Table structure for pay_wallet_record
@@ -3155,42 +3214,14 @@ CREATE TABLE `pay_wallet_record`  (
 -- Records of pay_wallet_record
 -- ----------------------------
 
--- ----------------------------
--- Table structure for pay_wechat_notice_config
--- ----------------------------
-DROP TABLE IF EXISTS `pay_wechat_notice_config`;
-CREATE TABLE `pay_wechat_notice_config`  (
-  `id` bigint(20) NOT NULL COMMENT '主键',
-  `app_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '应用id',
-  `app_secret` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '应用秘钥',
-  `qr_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '公众号二维码',
-  `oauth2_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'OAuth2地址',
-  `verify_file_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '微信校验文件名称',
-  `verify_file_content` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '微信校验文件内容',
-  `template_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '模板消息Id',
-  `template_content` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '模板消息内容',
-  `template_remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '模板消息备注',
-  `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-  `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
-  `last_modifier` bigint(20) NULL DEFAULT NULL COMMENT '最后修者ID',
-  `last_modified_time` datetime NULL DEFAULT NULL COMMENT '最后修改时间',
-  `version` int(11) NOT NULL COMMENT '乐观锁',
-  `deleted` bit(1) NOT NULL COMMENT '删除标志',
-  PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '微信消息通知相关配置' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of pay_wechat_notice_config
--- ----------------------------
-
 -- ----------------------------
 -- Table structure for pay_wechat_pay_config
 -- ----------------------------
 DROP TABLE IF EXISTS `pay_wechat_pay_config`;
 CREATE TABLE `pay_wechat_pay_config`  (
   `id` bigint(20) NOT NULL COMMENT '主键',
-  `wx_mch_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '微信商户号',
-  `wx_app_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '微信应用appId',
+  `wx_mch_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '微信商户号',
+  `wx_app_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '微信应用appId',
   `enable` bit(1) NULL DEFAULT NULL COMMENT '是否启用',
   `notify_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '异步通知路径',
   `return_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '同步通知路径',
@@ -3202,7 +3233,7 @@ CREATE TABLE `pay_wechat_pay_config`  (
   `sandbox` bit(1) NULL DEFAULT NULL COMMENT '是否沙箱环境',
   `allocation` bit(1) NULL DEFAULT NULL COMMENT '是否支付分账',
   `pay_ways` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '可用支付方式',
-  `single_limit` int(11) NULL DEFAULT NULL COMMENT '支付限额',
+  `limit_amount` int(8) NULL DEFAULT NULL COMMENT '支付限额',
   `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
   `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
   `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
@@ -3210,34 +3241,14 @@ CREATE TABLE `pay_wechat_pay_config`  (
   `last_modified_time` datetime NULL DEFAULT NULL COMMENT '最后修改时间',
   `version` int(11) NOT NULL COMMENT '乐观锁',
   `deleted` bit(1) NOT NULL COMMENT '删除标志',
+  `redirect_url` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '授权回调地址',
   PRIMARY KEY (`id`) USING BTREE
 ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '微信支付配置' ROW_FORMAT = DYNAMIC;
 
 -- ----------------------------
 -- Records of pay_wechat_pay_config
 -- ----------------------------
-INSERT INTO `pay_wechat_pay_config` VALUES (0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'wap,app,jsapi,qrcode,barcode', NULL, NULL, 0, '2024-01-03 23:13:11', 1399985191002447872, '2024-04-02 17:07:37', 23, b'0');
-
--- ----------------------------
--- Table structure for pay_wechat_pay_record
--- ----------------------------
-DROP TABLE IF EXISTS `pay_wechat_pay_record`;
-CREATE TABLE `pay_wechat_pay_record`  (
-  `id` bigint(20) NOT NULL COMMENT '主键',
-  `title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '标题',
-  `amount` int(11) NULL DEFAULT NULL COMMENT '金额',
-  `type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '业务类型',
-  `order_id` bigint(20) NULL DEFAULT NULL COMMENT '本地订单号',
-  `gateway_order_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '网关订单号',
-  `gateway_time` datetime NULL DEFAULT NULL COMMENT '网关完成时间',
-  `creator` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
-  `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
-  PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '微信支付记录' ROW_FORMAT = DYNAMIC;
-
--- ----------------------------
--- Records of pay_wechat_pay_record
--- ----------------------------
+INSERT INTO `pay_wechat_pay_config` VALUES (0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'wap,app,jsapi,qrcode,barcode', NULL, NULL, 0, '2024-01-03 23:13:11', 1399985191002447872, '2024-04-02 17:07:37', 23, b'0', NULL);
 
 -- ----------------------------
 -- Table structure for pay_wechat_reconcile_bill_detail
diff --git a/_config/postgresql/dax-pay.sql b/_config/postgresql/dax-pay.sql
index bd740922f3560809a8f17feafb7f860ebd134325..ae46a8d52cd070c579326d36c4a0b2efbb48c539 100644
--- a/_config/postgresql/dax-pay.sql
+++ b/_config/postgresql/dax-pay.sql
@@ -3670,14 +3670,14 @@ comment on column pay_client_notice_record.error_code is '错误编码';
 INSERT INTO pay_client_notice_record (id, task_id, req_count, success, send_type, error_msg, creator, create_time, error_code) VALUES (1796526918107570176, 1796526917679751168, 1, false, 'auto', e'<!DOCTYPE html>
 <html lang="zh-CN">
   <head>
-    
+
     <meta charset="UTF-8" />
     <link
       rel="', 1399985191002447872, '2024-05-31 20:59:29.789000', null);
 INSERT INTO pay_client_notice_record (id, task_id, req_count, success, send_type, error_msg, creator, create_time, error_code) VALUES (1796528223580495872, 1796528223437889536, 1, false, 'auto', e'<!DOCTYPE html>
 <html lang="zh-CN">
   <head>
-    
+
     <meta charset="UTF-8" />
     <link
       rel="', 1399985191002447872, '2024-05-31 21:04:41.039000', null);
@@ -4769,66 +4769,6 @@ create index wallet_id
 
 comment on index wallet_id is '钱包ID';
 
-
------
-create table pay_wechat_notice_config
-(
-    id                  bigint  not null
-        primary key,
-    app_id              varchar(255),
-    app_secret          varchar(255),
-    qr_url              varchar(255),
-    oauth2_url          varchar(255),
-    verify_file_name    varchar(255),
-    verify_file_content varchar(255),
-    template_id         varchar(255),
-    template_content    varchar(255),
-    template_remark     varchar(255),
-    creator             bigint,
-    create_time         timestamp(6),
-    last_modifier       bigint,
-    last_modified_time  timestamp(6),
-    version             integer not null,
-    deleted             boolean not null
-);
-
-comment on table pay_wechat_notice_config is '微信消息通知相关配置';
-
-comment on column pay_wechat_notice_config.id is '主键';
-
-comment on column pay_wechat_notice_config.app_id is '应用id';
-
-comment on column pay_wechat_notice_config.app_secret is '应用秘钥';
-
-comment on column pay_wechat_notice_config.qr_url is '公众号二维码';
-
-comment on column pay_wechat_notice_config.oauth2_url is 'OAuth2地址';
-
-comment on column pay_wechat_notice_config.verify_file_name is '微信校验文件名称';
-
-comment on column pay_wechat_notice_config.verify_file_content is '微信校验文件内容';
-
-comment on column pay_wechat_notice_config.template_id is '模板消息Id';
-
-comment on column pay_wechat_notice_config.template_content is '模板消息内容';
-
-comment on column pay_wechat_notice_config.template_remark is '模板消息备注';
-
-comment on column pay_wechat_notice_config.creator is '创建者ID';
-
-comment on column pay_wechat_notice_config.create_time is '创建时间';
-
-comment on column pay_wechat_notice_config.last_modifier is '最后修者ID';
-
-comment on column pay_wechat_notice_config.last_modified_time is '最后修改时间';
-
-comment on column pay_wechat_notice_config.version is '乐观锁';
-
-comment on column pay_wechat_notice_config.deleted is '删除标志';
-
-
-
-
 -----
 create table pay_wechat_pay_config
 (
diff --git a/_doc/ChangeLog.md b/_doc/ChangeLog.md
index a18a1511b46b7c961e71d4e30b8eb07a28bf6126..30bc0cfa4ba268be694f5c80f01b1a7cf39d98e0 100644
--- a/_doc/ChangeLog.md
+++ b/_doc/ChangeLog.md
@@ -1,4 +1,36 @@
 # CHANGELOG
+## [v2.0.8]
+- 新增: 撤销接口
+- 新增: 转账功能
+- 新增: DEMO增加转账演示功能
+- 新增: DEMO增加获取OpenID功能
+- 新增: 支付宝支持JSAPI方式支付
+- 新增: 绑定对账接收方增加扫码获取微信OpenID和支付宝OpenId功能
+- 新增: 支付宝微信等消息通知地址支持一键生成
+- 新增: 请求IP参数增加正则校验
+- 优化: 手动发起分账重试参数修正
+- 优化: 细分各种支付异常类和编码
+- 优化: 支付宝SDK修改为官方SDK
+- 优化: 界面金额统一调整为元
+- 优化: 上下文对象进行优化精简
+- 优化: 支付接口公共参数添加随机数字段, 预防重放问题
+- 优化: 请求接口增加有效期校验, 超时后失效
+- 优化: 数据库表进行规则, 字段设置长度, 增加索引, 对应请求参数添加校验
+- 优化: 订单和扩展信息进行合并
+- 优化: 支付通道两个独立的配置进行合并为一个
+- 优化: 平台配置增加接口请求有效时长配置
+- 优化: 平台配置和接口配置删除回调地址配置
+- 优化: 接口配置删除是否验签配置和回调地址
+- 优化: 分账订单相关命名统一为Alloc
+- 优化: 支付订单拆分退款状态为单独的字段
+- 优化: 策略工厂修改为统一的通用策略工厂
+- 优化: 支付和退款达到终态不可以再回退回之前的状态
+- 优化: 优化认证授权地址配置, 拆分为支持单独配置
+- 优化: 优化各类网址配置, 兼容结尾带/和不带/
+- fix: 修复支付关闭参数名称不正确问题
+- fix: 退款回调消息字段不一致导致验签不通过问题
+- fix: 云闪付空指针问题
+
 ## [v2.0.7]
 - 新增: 资金流水记录功能
 - 新增: 分账功能支持分账组分账和自己传接收方进行分账
diff --git a/_doc/Task.md b/_doc/Task.md
index ea2506bb9ee4448e8b24d138196360453559ec9d..d2344b36acb4cfcf7818a2af146dccb84b5f530c 100644
--- a/_doc/Task.md
+++ b/_doc/Task.md
@@ -1,47 +1,30 @@
 ## 单商户
-2.0.8: 对账完善和系统优化
-- [ ] 细分各种支付异常类和编码
-- [ ] 修复功能支付/退款/对账
-- [ ] 增加转账接口功能
-- [ ] DEMO增加获取微信OpenID和支付宝OpenId功能
-- [ ] 管理端界面支持扫码绑定对账接收方功能
-- [ ] 对账提供外部接口调用
-  - [ ] 下载系统账单
-- [ ] 分账结果通知处理
-  - [ ] 支付宝通知
-  - [ ] 微信通知
-  - [ ] 通知记录保存
+
+2.0.9: 消息通知改版和系统优化
+- [ ] 增加类似支付宝应用通知的方式, 首先支持http方式通信
+- [ ] 优化前端各种状态颜色展示
+- [ ] 修复功能优化, 更改为交易调整单
+- [ ] 增加分账订单调整功能
+- [ ] 增加验签调试等功能的页面
+- [ ] 聚合支付UA在前端判断, 提高响应速度
+- [ ] 增加分账回调处理(支付宝)
+- [ ] 请求权限改版, 使用专用配置类
+- [ ] 转账同步接口
+- [ ] 支持微信V3版本支付接口
+- [ ] 平台配置拆分出接口地址配置项
+
+**任务池**
 - [ ] 增加收单收银台功能
 - [ ] 增加资金对账单功能
-- [ ] 支付通道两个独立的配置进行合并为一个
-- [ ] 支持撤销接口
-- [ ] 支付和退款达到终态不可以再回退回之前的状态, 只能添加差错单进行处理
-
-2.0.8: 转账和功能功能优化
-- [ ] 支持转账操作, 通过支付通道专有参数进行实现, 转账时只能单个通道进行操作
-- [ ] 支付成功回调后, 如果订单已超时, 则进入待退款订单中,提示进行退款,或者自动退款
 - [ ] 新增支付单预警功能, 处理支付单与网关状态不一致且无法自动修复的情况
-
-2.1.x 版本内容
 - [ ] 差错单据处理
+  - [ ] 支付成功回调订单已超时
+  - [ ] 对账单据不平
 - [ ] 特殊退款接口
 - [ ] 统计报表功能
 - [ ] 微信新增V3版本接口
-- [ ] 支付宝新增V3版本接口
 - [ ] 增加各类日志记录,例如钱包的各项操作
-- [ ] 增加撤销功能,用于处理线下支付订单的情况
-- [ ] 数据库表进行规则, 字段设置长度, 增加索引
-- [ ] 订单超时支持数据表级别触发
 - [ ] 针对同步/对账等出现脏数据导致阻塞的问题, 进行优化
     - [ ] 同步接口
     - [ ] 对账接口
-- [ ] 增加通道开通能力管理,在操作发起前的校验时提前进行拦截
-    
-**任务池**
-- [ ] 通道费率计算
-- [ ] 每日资金流水计算
-- [ ] 微信消息通知相关配置
-- [ ] 钉钉消息通知配置
-- [ ] 支付宝接口升级为V3接口
-- [ ] 增加验签调试等功能的页面
-- [ ] 请求IP参数增加正则校验
+
diff --git a/bootx-platform/bootx-common-core/pom.xml b/bootx-platform/bootx-common-core/pom.xml
index f6a2d2795701db8e89d01ac93e6923ae145065ba..7734b821f7c3748dbcf4fcb42d18dd0a94630378 100644
--- a/bootx-platform/bootx-common-core/pom.xml
+++ b/bootx-platform/bootx-common-core/pom.xml
@@ -89,6 +89,7 @@
     <build>
         <plugins>
             <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-compiler-plugin</artifactId>
                 <configuration>
                     <source>${java.version}</source>
diff --git a/bootx-platform/bootx-common-core/src/main/java/cn/bootx/platform/common/core/annotation/TableFieldConvertModel.java b/bootx-platform/bootx-common-core/src/main/java/cn/bootx/platform/common/core/annotation/TableFieldConvertModel.java
deleted file mode 100644
index 64ebf42f3c0f6e556bc536ca93042eb2bf586ed5..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-core/src/main/java/cn/bootx/platform/common/core/annotation/TableFieldConvertModel.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package cn.bootx.platform.common.core.annotation;
-
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-/**
- * 字典转换标示注解, 标注此注解会对对应对象进行字典值转换处理
- *
- * @author xxm
- * @since 2022/12/15
- */
-@Target({ ElementType.METHOD, ElementType.TYPE, ElementType.FIELD })
-@Retention(RetentionPolicy.RUNTIME)
-public @interface TableFieldConvertModel {
-
-}
diff --git a/bootx-platform/bootx-common-core/src/main/java/cn/bootx/platform/common/core/annotation/Translate.java b/bootx-platform/bootx-common-core/src/main/java/cn/bootx/platform/common/core/annotation/Translate.java
deleted file mode 100644
index b1d151b52f4ea37d6cb82fd44421525da9075529..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-core/src/main/java/cn/bootx/platform/common/core/annotation/Translate.java
+++ /dev/null
@@ -1,50 +0,0 @@
-package cn.bootx.platform.common.core.annotation;
-
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-/**
- * 翻译注解
- *
- * @author xxm
- * @since 2022/12/14
- */
-@Target(ElementType.FIELD)
-@Retention(RetentionPolicy.RUNTIME)
-public @interface Translate {
-
-    /**
-     * 翻译类型
-     */
-    Type type();
-
-    /**
-     * 字典编码
-     */
-    String dicCode() default "";
-
-    /**
-     * 来源字段 默认为自身
-     */
-    String source() default "";
-
-    /**
-     * 目标字段 默认为自身
-     */
-    String target() default "";
-
-    /**
-     * 翻译类型
-     */
-    enum Type {
-
-        /** 字典 */
-        DICT,
-        /** 数据表 暂未实现 */
-        TABLE
-
-    }
-
-}
diff --git a/bootx-platform/bootx-common-core/src/main/java/cn/bootx/platform/common/core/annotation/TranslationResult.java b/bootx-platform/bootx-common-core/src/main/java/cn/bootx/platform/common/core/annotation/TranslationResult.java
deleted file mode 100644
index 3e98d247823eddf86041a9995e7ed15f010b8e65..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-core/src/main/java/cn/bootx/platform/common/core/annotation/TranslationResult.java
+++ /dev/null
@@ -1,46 +0,0 @@
-package cn.bootx.platform.common.core.annotation;
-
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-/**
- * 字典翻译标识注解, 1. 标注在字段上, 在翻译的时候会对这个字段进行递归翻译 2. 标注在方法上, 会对返回值进行翻译转换处理, 推荐只在 Controller 层配合
- * ResResult 使用, 其他场合使用 FieldTranslationService 进行手动处理
- *
- * @author xxm
- * @since 2022/12/15
- */
-@Target({ ElementType.METHOD, ElementType.FIELD })
-@Retention(RetentionPolicy.RUNTIME)
-public @interface TranslationResult {
-
-    /**
-     * 是否启用
-     */
-    boolean enable() default true;
-
-    /**
-     * 翻译类型, 只可以用在方法上, 在字段上标注不发生效果
-     */
-    ConvertType convertType() default ConvertType.OBJECT;
-
-    /**
-     * 翻译类型
-     */
-    enum ConvertType {
-
-        /**
-         * 将目标对象转换成MAP, 限定只能使用在类似 ResResult 容器情况下, 可以处理翻译值前后类型不一致问题, 但会导致字段元信息的丢失,
-         * 导致后续的处理出问题
-         */
-        MAP,
-        /**
-         * 不对目标对象的类型进行修改, 只对字典值进行翻译, 但遇到注解标注的字段出现字典项code与name类型不一致, 会进行忽略
-         */
-        OBJECT
-
-    }
-
-}
diff --git a/bootx-platform/bootx-common-core/src/main/java/cn/bootx/platform/common/core/code/CommonErrorCode.java b/bootx-platform/bootx-common-core/src/main/java/cn/bootx/platform/common/core/code/CommonErrorCode.java
index 5d515d4bfc9a22b75d1acc712f60274398562722..752c6afed200b3062bb6b22ab235689de7e94e1c 100644
--- a/bootx-platform/bootx-common-core/src/main/java/cn/bootx/platform/common/core/code/CommonErrorCode.java
+++ b/bootx-platform/bootx-common-core/src/main/java/cn/bootx/platform/common/core/code/CommonErrorCode.java
@@ -8,9 +8,6 @@ public interface CommonErrorCode {
     /** 系统错误 */
     int SYSTEM_ERROR = 10001;
 
-    /** 远程调用错误 */
-    int REMOTE_CALL_ERROR = 10002;
-
     /** 认证失败 */
     int AUTHENTICATION_FAIL = 10004;
 
@@ -38,7 +35,4 @@ public interface CommonErrorCode {
     /** 危险SQL异常, */
     int DANGER_SQL = 10012;
 
-    // 未知异常
-    int UNKNOWN_ERROR = -1;
-
 }
diff --git a/bootx-platform/bootx-common-core/src/main/java/cn/bootx/platform/common/core/util/LocalDateTimeUtil.java b/bootx-platform/bootx-common-core/src/main/java/cn/bootx/platform/common/core/util/LocalDateTimeUtil.java
index 141ba134441361cb85087e2e37fea70f5a237e44..e1fa072797fadbac576049e190e616845a080c45 100644
--- a/bootx-platform/bootx-common-core/src/main/java/cn/bootx/platform/common/core/util/LocalDateTimeUtil.java
+++ b/bootx-platform/bootx-common-core/src/main/java/cn/bootx/platform/common/core/util/LocalDateTimeUtil.java
@@ -19,7 +19,7 @@ public class LocalDateTimeUtil extends cn.hutool.core.date.LocalDateTimeUtil {
     /**
      * 是否在指定的时间范围内
      */
-    public boolean between(LocalDateTime now, LocalDateTime start, LocalDateTime end) {
+    public boolean inBetween(LocalDateTime now, LocalDateTime start, LocalDateTime end) {
         return ge(now, start) && le(now, end);
     }
 
diff --git a/bootx-platform/bootx-common-core/src/main/java/cn/bootx/platform/common/core/annotation/TableFieldConvert.java b/bootx-platform/bootx-common-core/src/main/java/cn/bootx/platform/common/core/validation/IpAddress.java
similarity index 31%
rename from bootx-platform/bootx-common-core/src/main/java/cn/bootx/platform/common/core/annotation/TableFieldConvert.java
rename to bootx-platform/bootx-common-core/src/main/java/cn/bootx/platform/common/core/validation/IpAddress.java
index 390dc9ea1a29c75da1f4c2bf8e0bec5f9d89617f..126f5ac69ed690900e0d52c592388ebc344971f4 100644
--- a/bootx-platform/bootx-common-core/src/main/java/cn/bootx/platform/common/core/annotation/TableFieldConvert.java
+++ b/bootx-platform/bootx-common-core/src/main/java/cn/bootx/platform/common/core/validation/IpAddress.java
@@ -1,18 +1,26 @@
-package cn.bootx.platform.common.core.annotation;
+package cn.bootx.platform.common.core.validation;
 
+import javax.validation.Constraint;
+import javax.validation.Payload;
 import java.lang.annotation.ElementType;
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
 import java.lang.annotation.Target;
 
 /**
- * 数据库表字段翻译注解
  *
  * @author xxm
- * @since 2022/12/14
+ * @since 2024/6/11
  */
-@Target(ElementType.FIELD)
+@Target({ElementType.METHOD, ElementType.FIELD})
 @Retention(RetentionPolicy.RUNTIME)
-public @interface TableFieldConvert {
+// 标记由哪个类来执行校验逻辑,该类需要实现ConstraintValidator接口
+@Constraint(validatedBy = IpAddressValidator.class)
+public @interface IpAddress {
 
+    String message() default "IP地址不合法!";
+
+    Class<?>[] groups() default {};
+
+    Class<? extends Payload>[] payload() default {};
 }
diff --git a/bootx-platform/bootx-common-core/src/main/java/cn/bootx/platform/common/core/validation/IpAddressValidator.java b/bootx-platform/bootx-common-core/src/main/java/cn/bootx/platform/common/core/validation/IpAddressValidator.java
new file mode 100644
index 0000000000000000000000000000000000000000..89f8cea14694939bcc0ed149057bb3199b29b3d4
--- /dev/null
+++ b/bootx-platform/bootx-common-core/src/main/java/cn/bootx/platform/common/core/validation/IpAddressValidator.java
@@ -0,0 +1,26 @@
+package cn.bootx.platform.common.core.validation;
+
+import cn.hutool.core.lang.Validator;
+import cn.hutool.core.util.StrUtil;
+
+import javax.validation.ConstraintValidator;
+import javax.validation.ConstraintValidatorContext;
+
+/**
+ * ip地址校验器
+ * @author xxm
+ * @since 2024/6/11
+ */
+public class IpAddressValidator implements ConstraintValidator<IpAddress, String> {
+
+    /**
+     * 校验是否为IP地址。成功返回true,失败返回false
+     */
+    @Override
+    public boolean isValid(String str, ConstraintValidatorContext constraintValidatorContext) {
+        if (StrUtil.isNotBlank(str)){
+            return Validator.isIpv4(str) || Validator.isIpv6(str);
+        }
+        return true;
+    }
+}
diff --git a/bootx-platform/bootx-common-starters/common-starter-dingtalk/pom.xml b/bootx-platform/bootx-common-starters/common-starter-dingtalk/pom.xml
deleted file mode 100644
index c4b69d1518a0006e35906c107ea483917119f8d1..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-dingtalk/pom.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <parent>
-        <artifactId>bootx-common-starters</artifactId>
-        <groupId>cn.bootx.platform</groupId>
-        <version>1.3.6.2</version>
-    </parent>
-    <modelVersion>4.0.0</modelVersion>
-
-    <artifactId>common-starter-dingtalk</artifactId>
-    <description>钉钉接口</description>
-
-    <dependencies>
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-web</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>cn.bootx.platform</groupId>
-            <artifactId>common-mybatis-plus</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>cn.bootx.platform</groupId>
-            <artifactId>common-starter-data-perm</artifactId>
-        </dependency>
-    </dependencies>
-</project>
diff --git a/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/DingTalkAutoConfiguration.java b/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/DingTalkAutoConfiguration.java
deleted file mode 100644
index 48cdf45a27b03f2f2372e5211670470b83ae668a..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/DingTalkAutoConfiguration.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package cn.bootx.platform.starter.dingtalk;
-
-import org.apache.ibatis.annotations.Mapper;
-import org.mybatis.spring.annotation.MapperScan;
-import org.springframework.boot.autoconfigure.AutoConfiguration;
-import org.springframework.boot.context.properties.ConfigurationPropertiesScan;
-import org.springframework.context.annotation.ComponentScan;
-
-/**
- * 钉钉对接
- *
- * @author xxm
- * @since 2022/4/2
- */
-@ComponentScan
-@ConfigurationPropertiesScan
-@AutoConfiguration
-@MapperScan(annotationClass = Mapper.class)
-public class DingTalkAutoConfiguration {
-
-}
diff --git a/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/code/DingTalkCode.java b/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/code/DingTalkCode.java
deleted file mode 100644
index 85f12e81e54f2bb383c77c58cc9e258eede9dec0..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/code/DingTalkCode.java
+++ /dev/null
@@ -1,123 +0,0 @@
-package cn.bootx.platform.starter.dingtalk.code;
-
-/**
- * 钉钉消息类型
- *
- * @author xxm
- * @since 2020/11/30
- */
-public interface DingTalkCode {
-
-    /** 钉钉Access参数 */
-    String ACCESS_TOKEN_PARAM = "?access_token={}";
-
-    /** 内部应用获取access_token */
-    String APP_ACCESS_TOKEN_URL = "https://oapi.dingtalk.com/gettoken?appkey={appKey}&appsecret={appSecret}";
-
-    /** 带sign的机器人消息发送请求 */
-    String ROBOT_SEND_SIGN_URL = "https://oapi.dingtalk.com/robot/send?access_token={accessToken}&timestamp={timestamp}&sign={sign}";
-
-    /** 不带sign的机器人消息发送请求 */
-    String ROBOT_SEND_NOT_SIGN_URL = "https://oapi.dingtalk.com/robot/send" + ACCESS_TOKEN_PARAM;
-
-    /** 发送工作通知 */
-    String NOTICE_CORP_SEND_URL = "https://oapi.dingtalk.com/topapi/message/corpconversation/asyncsend_v2"
-            + ACCESS_TOKEN_PARAM;
-
-    /** 更新工作通知(OA消息) */
-    String NOTICE_CORP_UPDATE_URL = "https://oapi.dingtalk.com/topapi/message/corpconversation/status_bar/update"
-            + ACCESS_TOKEN_PARAM;
-
-    /** 撤回工作通知 */
-    String NOTICE_CORP_RECALL_URL = "https://oapi.dingtalk.com/topapi/message/corpconversation/recall"
-            + ACCESS_TOKEN_PARAM;
-
-    /** 发送企业群通知 */
-    String NOTICE_CHAT_URL = "https://oapi.dingtalk.com/chat/send" + ACCESS_TOKEN_PARAM;
-
-    /** 发送普通消息通知 */
-    String NOTICE_MESSAGE_URL = "https://oapi.dingtalk.com/message/send_to_conversation" + ACCESS_TOKEN_PARAM;
-
-    /** 根据unionid获取用户userid */
-    String USER_GET_URL = "https://oapi.dingtalk.com/topapi/user/getbyunionid" + ACCESS_TOKEN_PARAM;
-
-    /** 媒体文件上传 */
-    String MEDIA_UPLOAD_URL = "https://oapi.dingtalk.com/media/upload" + ACCESS_TOKEN_PARAM;
-
-    /** 钉钉字段 */
-    String ACCESS_TOKEN = "accessToken";
-
-    String SIGN = "sign";
-
-    String TIMESTAMP = "timestamp";
-
-    String APP_KEY = "appKey";
-
-    String APP_SECRET = "appSecret";
-
-    /** 应用id */
-    String CLIENT_ID = "clientId";
-
-    // 应用密钥
-    String CLIENT_SECRET = "clientSecret";
-
-    String CODE = "code";
-
-    // OAuth2.0刷新令牌,从返回结果里面获取。
-    String REFRESH_TOKEN = "refreshToken";
-
-    String GRANT_TYPE = "grantType";
-
-    String RESPONSE_TYPE = "responseType";
-
-    String SCOPE = "scope";
-
-    String REDIRECT_URI = "redirectUri";
-
-    String STATE = "state";
-
-    String PROMPT = "prompt";
-
-    /** 媒体 */
-    String MEDIA = "media";
-
-    /** 类型 */
-    String TYPE = "type";
-
-    /** 请求头参数调用服务端接口的授权凭证 */
-    String HEADER_TOKEN = "x-acs-dingtalk-access-token";
-
-    /* 认证字段 */
-    /** 授权码换token */
-    String AUTH_AUTHORIZATION_CODE = "authorization_code";
-
-    /** 刷新token换用户token */
-    String AUTH_REFRESH_TOKEN = "refresh_token";
-
-    /** openid */
-    String OPEN_ID = "openid";
-
-    /** union_id */
-    String UNION_ID = "unionid";
-
-    /* 响应值 */
-    /** 成功 */
-    int SUCCESS_CODE = 0;
-
-    /** 未找到对应员工 */
-    int NOT_FUND_STAFF = 60121;
-
-    /* 媒体类型 */
-    /** 图片 */
-    String MEDIA_IMAGE = "image";
-
-    /** 语音 */
-    String MEDIA_VOICE = "voice";
-
-    /** 视频 */
-    String MEDIA_VIDEO = "video";
-
-    /** 普通文件 */
-    String MEDIA_FILE = "file";
-
-}
diff --git a/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/code/DingTalkNoticeCode.java b/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/code/DingTalkNoticeCode.java
deleted file mode 100644
index 45e942666d68edeeebe3db63ac76b97fd5b1041c..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/code/DingTalkNoticeCode.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package cn.bootx.platform.starter.dingtalk.code;
-
-/**
- * 钉钉通知消息常量
- *
- * @author xxm
- * @since 2022/4/2
- */
-public interface DingTalkNoticeCode {
-
-    /* 消息类型 */
-    /** 文本消息 */
-    String MSG_TEXT = "text";
-
-    /** 图片消息 */
-    String MSG_IMAGE = "image";
-
-    /** 语音消息 */
-    String MSG_VOICE = "voice";
-
-    /** 文件消息 */
-    String MSG_FILE = "file";
-
-    /** 链接消息 */
-    String MSG_LINK = "link";
-
-    /** OA消息 */
-    String MSG_OA = "oa";
-
-    /** markdown消息 */
-    String MSG_MARKDOWN = "markdown";
-
-    /** 卡片消息 */
-    String MSG_ACTION_CARD = "action_card";
-
-}
diff --git a/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/configuration/DingTalkProperties.java b/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/configuration/DingTalkProperties.java
deleted file mode 100644
index ee8f4aff7e15b2df36b91c6a5eadc0c97be2bb38..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/configuration/DingTalkProperties.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package cn.bootx.platform.starter.dingtalk.configuration;
-
-import lombok.Getter;
-import lombok.Setter;
-import org.springframework.boot.context.properties.ConfigurationProperties;
-
-/**
- * 钉钉应用配置
- *
- * @author xxm
- * @since 2022/7/15
- */
-@Getter
-@Setter
-@ConfigurationProperties("bootx.starter.third.ding-talk")
-public class DingTalkProperties {
-
-    /** AppKey */
-    private String appKey;
-
-    /** AppSecret */
-    private String appSecret;
-
-    /** 应用id */
-    private Long agentId;
-
-}
diff --git a/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/controller/DingRobotConfigController.java b/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/controller/DingRobotConfigController.java
deleted file mode 100644
index 07d8806ba0481a58b3c7791f4abecf6ba44e9882..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/controller/DingRobotConfigController.java
+++ /dev/null
@@ -1,78 +0,0 @@
-package cn.bootx.platform.starter.dingtalk.controller;
-
-import cn.bootx.platform.common.core.rest.PageResult;
-import cn.bootx.platform.common.core.rest.Res;
-import cn.bootx.platform.common.core.rest.ResResult;
-import cn.bootx.platform.common.core.rest.param.PageParam;
-import cn.bootx.platform.starter.dingtalk.core.robot.service.DingRobotConfigService;
-import cn.bootx.platform.starter.dingtalk.dto.robot.DingRobotConfigDto;
-import cn.bootx.platform.starter.dingtalk.param.robot.DingRobotConfigParam;
-import io.swagger.v3.oas.annotations.Operation;
-import io.swagger.v3.oas.annotations.tags.Tag;
-import lombok.RequiredArgsConstructor;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.List;
-
-/**
- * @author xxm
- * @since 2021/9/25
- */
-@Tag(name = "钉钉机器人配置")
-@RestController
-@RequestMapping("/ding/robot/config")
-@RequiredArgsConstructor
-public class DingRobotConfigController {
-
-    private final DingRobotConfigService dingRobotConfigService;
-
-    @Operation(summary = "新增机器人配置")
-    @PostMapping("/add")
-    public ResResult<DingRobotConfigDto> add(@RequestBody DingRobotConfigParam param) {
-        return Res.ok(dingRobotConfigService.add(param));
-    }
-
-    @Operation(summary = "修改机器人配置")
-    @PostMapping("/update")
-    public ResResult<DingRobotConfigDto> update(@RequestBody DingRobotConfigParam param) {
-        return Res.ok(dingRobotConfigService.update(param));
-    }
-
-    @Operation(summary = "分页")
-    @GetMapping("/page")
-    public ResResult<PageResult<DingRobotConfigDto>> page(PageParam pageParam, DingRobotConfigParam param) {
-        return Res.ok(dingRobotConfigService.page(pageParam, param));
-    }
-
-    @Operation(summary = "查询全部")
-    @GetMapping("/findAll")
-    public ResResult<List<DingRobotConfigDto>> findAll() {
-        return Res.ok(dingRobotConfigService.findAll());
-    }
-
-    @Operation(summary = "获取详情")
-    @GetMapping("/findById")
-    public ResResult<DingRobotConfigDto> findById(Long id) {
-        return Res.ok(dingRobotConfigService.findById(id));
-    }
-
-    @Operation(summary = "删除")
-    @DeleteMapping("/delete")
-    public ResResult<Void> delete(Long id) {
-        dingRobotConfigService.delete(id);
-        return Res.ok();
-    }
-
-    @Operation(summary = "编码是否被使用")
-    @GetMapping("/existsByCode")
-    public ResResult<Boolean> existsByCode(String code) {
-        return Res.ok(dingRobotConfigService.existsByCode(code));
-    }
-
-    @Operation(summary = "编码是否被使用(不包含自己)")
-    @GetMapping("/existsByCodeNotId")
-    public ResResult<Boolean> existsByCode(String code, Long id) {
-        return Res.ok(dingRobotConfigService.existsByCode(code, id));
-    }
-
-}
diff --git a/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/core/base/result/AccessTokenResult.java b/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/core/base/result/AccessTokenResult.java
deleted file mode 100644
index a0b6f2f51dd8089d8f16727214697392e656607b..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/core/base/result/AccessTokenResult.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package cn.bootx.platform.starter.dingtalk.core.base.result;
-
-import com.fasterxml.jackson.annotation.JsonProperty;
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.experimental.Accessors;
-
-@EqualsAndHashCode(callSuper = true)
-@Data
-@Accessors(chain = true)
-@Schema(title = "AccessToken响应类")
-public class AccessTokenResult<T> extends DingTalkResult<T> {
-
-    @JsonProperty("access_token")
-    @Schema(description = "访问凭证")
-    private String accessToken;
-
-    @JsonProperty("expires_in")
-    @Schema(description = "过期时间")
-    private Integer expiresIn;
-
-}
diff --git a/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/core/base/result/DingTalkResult.java b/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/core/base/result/DingTalkResult.java
deleted file mode 100644
index ceb76aad358330e7896866f7d734ebcf8f9e4ef9..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/core/base/result/DingTalkResult.java
+++ /dev/null
@@ -1,34 +0,0 @@
-package cn.bootx.platform.starter.dingtalk.core.base.result;
-
-import com.fasterxml.jackson.annotation.JsonProperty;
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-import lombok.experimental.Accessors;
-
-import java.io.Serializable;
-
-/**
- * 钉钉响应结果
- *
- * @author xxm
- * @since 2020/11/30
- */
-@Data
-@Accessors(chain = true)
-@Schema(title = "钉钉发送响应类")
-public class DingTalkResult<T> implements Serializable {
-
-    private static final long serialVersionUID = 4298060961428118100L;
-
-    @JsonProperty("errcode")
-    @Schema(description = "错误码")
-    private Integer code;
-
-    @Schema(description = "返回数据")
-    private T result;
-
-    @JsonProperty("errmsg")
-    @Schema(description = "返回码描述")
-    private String msg;
-
-}
diff --git a/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/core/base/result/MediaResult.java b/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/core/base/result/MediaResult.java
deleted file mode 100644
index c9cc569821911e1a97f361d7503a6afe6e9bd918..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/core/base/result/MediaResult.java
+++ /dev/null
@@ -1,39 +0,0 @@
-package cn.bootx.platform.starter.dingtalk.core.base.result;
-
-import com.fasterxml.jackson.annotation.JsonProperty;
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-import lombok.experimental.Accessors;
-
-/**
- * 钉钉媒体上传返回类
- *
- * @author xxm
- * @since 2022/7/25
- */
-@Data
-@Accessors(chain = true)
-@Schema(title = "钉钉媒体上传返回类")
-public class MediaResult {
-
-    @JsonProperty("errcode")
-    @Schema(description = "错误码")
-    private Integer code;
-
-    @JsonProperty("errmsg")
-    @Schema(description = "返回码描述")
-    private String msg;
-
-    @JsonProperty("type")
-    @Schema(description = "媒体文件类型")
-    private String type;
-
-    @JsonProperty("media_id")
-    @Schema(description = "唯一标识")
-    private String mediaId;
-
-    @JsonProperty("created_at")
-    @Schema(description = "媒体文件上传时间戳")
-    private long createdAt;
-
-}
diff --git a/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/core/base/service/DingAccessService.java b/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/core/base/service/DingAccessService.java
deleted file mode 100644
index c5d658d5ec330878a95d72b8c55037c9f1e2f849..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/core/base/service/DingAccessService.java
+++ /dev/null
@@ -1,97 +0,0 @@
-package cn.bootx.platform.starter.dingtalk.core.base.service;
-
-import cn.bootx.platform.starter.dingtalk.configuration.DingTalkProperties;
-import cn.bootx.platform.common.core.exception.BizException;
-import cn.bootx.platform.common.jackson.util.JacksonUtil;
-import cn.bootx.platform.common.spring.exception.RetryableException;
-import cn.bootx.platform.starter.dingtalk.core.base.result.AccessTokenResult;
-import cn.hutool.core.util.StrUtil;
-import cn.hutool.extra.spring.SpringUtil;
-import cn.hutool.http.HttpException;
-import cn.hutool.http.HttpUtil;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.retry.annotation.Retryable;
-import org.springframework.stereotype.Service;
-
-import java.util.HashMap;
-import java.util.Map;
-import java.util.concurrent.TimeUnit;
-import java.util.concurrent.locks.Lock;
-import java.util.concurrent.locks.ReentrantLock;
-
-import static cn.bootx.platform.starter.dingtalk.code.DingTalkCode.*;
-
-/**
- * 钉钉访问凭证
- *
- * @author xxm
- * @since 2022/4/2
- */
-@Slf4j
-@Service
-@RequiredArgsConstructor
-public class DingAccessService {
-
-    private final DingTalkProperties dingTalkProperties;
-
-    private long expiresTime;
-
-    private String accessToken;
-
-    /**
-     * 企业内部应用的access_token
-     */
-    public String getAccessToken() {
-        if (System.currentTimeMillis() < expiresTime) {
-            return accessToken;
-        }
-        Lock lock = new ReentrantLock();
-        boolean locked = false;
-        try {
-            do {
-                locked = lock.tryLock(100, TimeUnit.MILLISECONDS);
-                if (System.currentTimeMillis() < expiresTime) {
-                    return accessToken;
-                }
-            }
-            while (!locked);
-            SpringUtil.getBean(getClass())
-                .getAppAccessToken(dingTalkProperties.getAppKey(), dingTalkProperties.getAppSecret());
-        }
-        catch (InterruptedException e) {
-            throw new BizException("获取钉钉应用AccessToken失败");
-        }
-        finally {
-            if (locked) {
-                lock.unlock();
-            }
-        }
-        return accessToken;
-    }
-
-    /**
-     * 企业内部应用的access_token
-     */
-    @Retryable(value = RetryableException.class)
-    public void getAppAccessToken(String appKey, String appSecret) {
-        // 获取accessToken
-        Map<String, String> map = new HashMap<>();
-        map.put(APP_KEY, appKey);
-        map.put(APP_SECRET, appSecret);
-        try {
-            String responseBody = HttpUtil.createGet(StrUtil.format(APP_ACCESS_TOKEN_URL, map)).execute().body();
-            AccessTokenResult<?> dingTalkResult = JacksonUtil.toBean(responseBody, AccessTokenResult.class);
-            if (StrUtil.isBlank(dingTalkResult.getAccessToken())) {
-                throw new RetryableException();
-            }
-            this.accessToken = dingTalkResult.getAccessToken();
-            // 设置超时时间
-            this.expiresTime = System.currentTimeMillis() + (dingTalkResult.getExpiresIn() - 200) * 1000L;
-        }
-        catch (HttpException e) {
-            throw new RetryableException();
-        }
-    }
-
-}
diff --git a/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/core/media/dao/DingMediaMd5Manager.java b/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/core/media/dao/DingMediaMd5Manager.java
deleted file mode 100644
index 1ba98a15efd6438a3b3255a3a5c3357202c80214..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/core/media/dao/DingMediaMd5Manager.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package cn.bootx.platform.starter.dingtalk.core.media.dao;
-
-import cn.bootx.platform.starter.dingtalk.core.media.entity.DingMediaMd5;
-import cn.bootx.platform.common.mybatisplus.impl.BaseManager;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Repository;
-
-import java.util.Optional;
-
-/**
- * 钉钉
- *
- * @author xxm
- * @since 2022/7/26
- */
-@Slf4j
-@Repository
-@RequiredArgsConstructor
-public class DingMediaMd5Manager extends BaseManager<DingMediaMd5Mapper, DingMediaMd5> {
-
-    /**
-     * 根据md5查询
-     */
-    public Optional<DingMediaMd5> findByMd5(String md5) {
-        return findByField(DingMediaMd5::getMd5, md5);
-    }
-
-}
diff --git a/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/core/media/dao/DingMediaMd5Mapper.java b/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/core/media/dao/DingMediaMd5Mapper.java
deleted file mode 100644
index 6d9ae7c6fd3703f6483118dce48f6e51087f2c2c..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/core/media/dao/DingMediaMd5Mapper.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package cn.bootx.platform.starter.dingtalk.core.media.dao;
-
-import cn.bootx.platform.starter.dingtalk.core.media.entity.DingMediaMd5;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import org.apache.ibatis.annotations.Mapper;
-
-/**
- * @author xxm
- * @since 2022/7/26
- */
-@Mapper
-public interface DingMediaMd5Mapper extends BaseMapper<DingMediaMd5> {
-
-}
diff --git a/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/core/media/entity/DingMediaMd5.java b/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/core/media/entity/DingMediaMd5.java
deleted file mode 100644
index 6b9800f4908fb50837db130007f7fcd4c3e72564..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/core/media/entity/DingMediaMd5.java
+++ /dev/null
@@ -1,31 +0,0 @@
-package cn.bootx.platform.starter.dingtalk.core.media.entity;
-
-import cn.bootx.platform.common.mybatisplus.base.MpCreateEntity;
-import com.baomidou.mybatisplus.annotation.TableName;
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.RequiredArgsConstructor;
-import lombok.experimental.Accessors;
-
-/**
- * 钉钉媒体文件MD5值关联关系
- *
- * @author xxm
- * @since 2022/7/26
- */
-@EqualsAndHashCode(callSuper = true)
-@Data
-@Accessors(chain = true)
-@AllArgsConstructor
-@RequiredArgsConstructor
-@TableName("starter_ding_media_md5")
-public class DingMediaMd5 extends MpCreateEntity {
-
-    /** 媒体文件id */
-    private String mediaId;
-
-    /** 媒体文件的md5值 */
-    private String md5;
-
-}
diff --git a/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/core/media/service/DingMediaService.java b/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/core/media/service/DingMediaService.java
deleted file mode 100644
index 0bd7b1dd25677d118207fc252d05985ed47976b5..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/core/media/service/DingMediaService.java
+++ /dev/null
@@ -1,91 +0,0 @@
-package cn.bootx.platform.starter.dingtalk.core.media.service;
-
-import cn.bootx.platform.common.core.exception.BizException;
-import cn.bootx.platform.common.core.util.FileUtil;
-import cn.bootx.platform.common.jackson.util.JacksonUtil;
-import cn.bootx.platform.starter.dingtalk.code.DingTalkCode;
-import cn.bootx.platform.starter.dingtalk.core.base.result.MediaResult;
-import cn.bootx.platform.starter.dingtalk.core.base.service.DingAccessService;
-import cn.bootx.platform.starter.dingtalk.core.media.dao.DingMediaMd5Manager;
-import cn.hutool.core.io.FileTypeUtil;
-import cn.hutool.core.io.IoUtil;
-import cn.hutool.core.io.file.FileNameUtil;
-import cn.hutool.core.util.IdUtil;
-import cn.hutool.core.util.StrUtil;
-import cn.hutool.http.HttpUtil;
-import lombok.RequiredArgsConstructor;
-import lombok.SneakyThrows;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Service;
-
-import java.io.ByteArrayInputStream;
-import java.io.File;
-import java.io.InputStream;
-import java.util.Objects;
-
-import static cn.bootx.platform.starter.dingtalk.code.DingTalkCode.*;
-
-/**
- * 钉钉媒体文件管理
- *
- * @author xxm
- * @since 2022/7/25
- */
-@Slf4j
-@Service
-@RequiredArgsConstructor
-public class DingMediaService {
-
-    private final DingAccessService dingAccessService;
-
-    private final DingMediaMd5Manager dingMediaMd5Manager;
-
-    /**
-     * 文件上传
-     */
-    @SneakyThrows
-    public String uploadMedia(InputStream inputStream, String fileName, String mediaType) {
-        // 判断md5是否是已经上传过的, 上传过的直接使用媒体id( 发现钉钉媒体id只能使用一次, 和文档描述不一致 )
-        byte[] bytes = IoUtil.readBytes(inputStream);
-        String filePrefix = FileNameUtil.mainName(fileName);
-        String fileType = FileTypeUtil.getType(new ByteArrayInputStream(bytes), fileName);
-        File tmpFile = FileUtil.createTempFile(new ByteArrayInputStream(bytes), filePrefix, fileType);
-        String body = HttpUtil
-            .createPost(StrUtil.format(DingTalkCode.MEDIA_UPLOAD_URL, dingAccessService.getAccessToken()))
-            .form(MEDIA, tmpFile, fileName)
-            .form(TYPE, mediaType)
-            .execute()
-            .body();
-        MediaResult mediaResult = JacksonUtil.toBean(body, MediaResult.class);
-        if (!Objects.equals(mediaResult.getCode(), SUCCESS_CODE)) {
-            throw new BizException(mediaResult.getMsg());
-        }
-        String mediaId = mediaResult.getMediaId();
-        // dingMediaMd5Manager.save(new DingMediaMd5(mediaId,md5));
-        return mediaId;
-    }
-
-    /**
-     * 文件上传
-     */
-    @SneakyThrows
-    public String uploadMedia(InputStream inputStream, String mediaType) {
-        byte[] bytes = IoUtil.readBytes(inputStream);
-
-        String fileType = FileTypeUtil.getType(new ByteArrayInputStream(bytes));
-        File tmpFile = FileUtil.createTempFile(new ByteArrayInputStream(bytes), IdUtil.getSnowflakeNextIdStr(),
-                fileType);
-        String body = HttpUtil
-            .createPost(StrUtil.format(DingTalkCode.MEDIA_UPLOAD_URL, dingAccessService.getAccessToken()))
-            .form(MEDIA, tmpFile)
-            .form(TYPE, mediaType)
-            .execute()
-            .body();
-        MediaResult mediaResult = JacksonUtil.toBean(body, MediaResult.class);
-        if (!Objects.equals(mediaResult.getCode(), SUCCESS_CODE)) {
-            throw new BizException(mediaResult.getMsg());
-        }
-        return mediaResult.getMediaId();
-    }
-
-}
diff --git a/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/core/notice/result/ChatNoticeResult.java b/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/core/notice/result/ChatNoticeResult.java
deleted file mode 100644
index 6494bc73de35b8930f4fdc163c8c2ae766dfa336..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/core/notice/result/ChatNoticeResult.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package cn.bootx.platform.starter.dingtalk.core.notice.result;
-
-import com.fasterxml.jackson.annotation.JsonProperty;
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-import lombok.experimental.Accessors;
-
-/**
- * @author xxm
- * @since 2022/7/20
- */
-@Data
-@Accessors(chain = true)
-@Schema(title = "通知消息返回值")
-public class ChatNoticeResult {
-
-    @JsonProperty("errcode")
-    @Schema(description = "错误码")
-    private Integer code;
-
-    @JsonProperty("errmsg")
-    @Schema(description = "返回码描述")
-    private String msg;
-
-    @Schema(description = "异步发送任务ID")
-    private String messageId;
-
-}
diff --git a/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/core/notice/result/CorpNoticeResult.java b/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/core/notice/result/CorpNoticeResult.java
deleted file mode 100644
index 89a42eeb3d7eb8c1734346b442b8462378bf4a36..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/core/notice/result/CorpNoticeResult.java
+++ /dev/null
@@ -1,35 +0,0 @@
-package cn.bootx.platform.starter.dingtalk.core.notice.result;
-
-import com.fasterxml.jackson.annotation.JsonProperty;
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-import lombok.experimental.Accessors;
-
-/**
- * 钉钉消息响应
- *
- * @author xxm
- * @since 2022/7/17
- */
-@Data
-@Accessors(chain = true)
-@Schema(title = "通知消息返回值")
-public class CorpNoticeResult {
-
-    @JsonProperty("errcode")
-    @Schema(description = "错误码")
-    private Integer code;
-
-    @JsonProperty("errmsg")
-    @Schema(description = "返回码描述")
-    private String msg;
-
-    @JsonProperty("task_id")
-    @Schema(description = "异步发送任务ID")
-    private Long taskId;
-
-    @JsonProperty("request_id")
-    @Schema(description = "请求ID")
-    private String requestId;
-
-}
diff --git a/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/core/notice/service/DingNoticeService.java b/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/core/notice/service/DingNoticeService.java
deleted file mode 100644
index 34d689ee3a6e567fdcdd0482956162cf9ada8ed5..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/core/notice/service/DingNoticeService.java
+++ /dev/null
@@ -1,101 +0,0 @@
-package cn.bootx.platform.starter.dingtalk.core.notice.service;
-
-import cn.bootx.platform.starter.dingtalk.param.notice.ChatNotice;
-import cn.bootx.platform.starter.dingtalk.param.notice.CorpNotice;
-import cn.bootx.platform.starter.dingtalk.param.notice.RecallCorpNotice;
-import cn.bootx.platform.starter.dingtalk.param.notice.UpdateCorpNotice;
-import cn.bootx.platform.common.jackson.util.JacksonUtil;
-import cn.bootx.platform.starter.dingtalk.core.base.service.DingAccessService;
-import cn.bootx.platform.starter.dingtalk.core.base.result.DingTalkResult;
-import cn.bootx.platform.starter.dingtalk.core.notice.result.ChatNoticeResult;
-import cn.bootx.platform.starter.dingtalk.core.notice.result.CorpNoticeResult;
-import cn.hutool.core.util.StrUtil;
-import cn.hutool.http.HttpUtil;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Service;
-
-import static cn.bootx.platform.starter.dingtalk.code.DingTalkCode.*;
-
-/**
- * 钉钉通知发送服务
- *
- * @author xxm
- * @since 2022/7/17
- */
-@Slf4j
-@Service
-@RequiredArgsConstructor
-public class DingNoticeService {
-
-    private final DingAccessService dingAccessService;
-
-    /**
-     * 发送普通消息, 支持普通群和个人会话
-     *
-     * <a href=
-     * "https://open.dingtalk.com/document/orgapp-server/send-normal-messages">...</a>
-     */
-    public void sendNotice() {
-    }
-
-    /**
-     * 发送企业群消息
-     *
-     * <a href=
-     * "https://open.dingtalk.com/document/orgapp-server/enterprise-group-message-overview">...</a>
-     */
-    public ChatNoticeResult sendChatNotice(ChatNotice param) {
-        String accessToken = dingAccessService.getAccessToken();
-        String responseBody = HttpUtil.createPost(StrUtil.format(NOTICE_CHAT_URL, accessToken))
-            .body(param.toParam())
-            .execute()
-            .body();
-        return JacksonUtil.toBean(responseBody, ChatNoticeResult.class);
-    }
-
-    /**
-     * 发送工作通知
-     *
-     * <a href=
-     * "https://open.dingtalk.com/document/orgapp-server/asynchronous-sending-of-enterprise-session-messages">...</a>
-     */
-    public CorpNoticeResult sendCorpNotice(CorpNotice param) {
-        String accessToken = dingAccessService.getAccessToken();
-        String responseBody = HttpUtil.createPost(StrUtil.format(NOTICE_CORP_SEND_URL, accessToken))
-            .body(param.toParam())
-            .execute()
-            .body();
-        return JacksonUtil.toBean(responseBody, CorpNoticeResult.class);
-    }
-
-    /**
-     * 更新工作通知状态栏
-     * @url <a href=
-     * "https://open.dingtalk.com/document/orgapp-server/update-work-notification-status-bar">...</a>
-     */
-    public CorpNoticeResult updateCorpNotice(UpdateCorpNotice param) {
-        String accessToken = dingAccessService.getAccessToken();
-        String responseBody = HttpUtil.createPost(StrUtil.format(NOTICE_CORP_UPDATE_URL, accessToken))
-            .body(param.toParam())
-            .execute()
-            .body();
-        return JacksonUtil.toBean(responseBody, CorpNoticeResult.class);
-    }
-
-    /**
-     * 撤回工作通知消息
-     * @url <a href=
-     * "https://open.dingtalk.com/document/orgapp-server/notification-of-work-withdrawal">...</a>
-     */
-    public DingTalkResult<?> recallCorpNotice(RecallCorpNotice param) {
-
-        String accessToken = dingAccessService.getAccessToken();
-        String responseBody = HttpUtil.createPost(StrUtil.format(NOTICE_CORP_RECALL_URL, accessToken))
-            .body(param.toParam())
-            .execute()
-            .body();
-        return JacksonUtil.toBean(responseBody, DingTalkResult.class);
-    }
-
-}
diff --git a/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/core/robot/convert/DingRobotConvert.java b/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/core/robot/convert/DingRobotConvert.java
deleted file mode 100644
index a6b586b6127bda620f40d9602e6d293a37b66b8b..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/core/robot/convert/DingRobotConvert.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package cn.bootx.platform.starter.dingtalk.core.robot.convert;
-
-import cn.bootx.platform.starter.dingtalk.param.robot.DingRobotConfigParam;
-import cn.bootx.platform.starter.dingtalk.core.robot.entity.DingRobotConfig;
-import cn.bootx.platform.starter.dingtalk.dto.robot.DingRobotConfigDto;
-import org.mapstruct.Mapper;
-import org.mapstruct.factory.Mappers;
-
-/**
- * 钉钉相关类转换
- *
- * @author xxm
- * @since 2021/8/5
- */
-@Mapper
-public interface DingRobotConvert {
-
-    DingRobotConvert CONVERT = Mappers.getMapper(DingRobotConvert.class);
-
-    DingRobotConfig convert(DingRobotConfigParam in);
-
-    DingRobotConfigDto convert(DingRobotConfig in);
-
-}
diff --git a/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/core/robot/dao/DingRobotConfigManager.java b/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/core/robot/dao/DingRobotConfigManager.java
deleted file mode 100644
index be0f01b21fd57fea777473e997ea46d963ed1f4e..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/core/robot/dao/DingRobotConfigManager.java
+++ /dev/null
@@ -1,47 +0,0 @@
-package cn.bootx.platform.starter.dingtalk.core.robot.dao;
-
-import cn.bootx.platform.starter.dingtalk.core.robot.entity.DingRobotConfig;
-import cn.bootx.platform.starter.dingtalk.param.robot.DingRobotConfigParam;
-import cn.bootx.platform.common.core.rest.param.PageParam;
-import cn.bootx.platform.common.mybatisplus.base.MpIdEntity;
-import cn.bootx.platform.common.mybatisplus.impl.BaseManager;
-import cn.bootx.platform.common.mybatisplus.util.MpUtil;
-import cn.hutool.core.util.StrUtil;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import lombok.RequiredArgsConstructor;
-import org.springframework.stereotype.Repository;
-
-import java.util.Optional;
-
-/**
- * 钉钉机器人
- *
- * @author xxm
- * @since 2020/11/29
- */
-@Repository
-@RequiredArgsConstructor
-public class DingRobotConfigManager extends BaseManager<DingRobotConfigMapper, DingRobotConfig> {
-
-    public Optional<DingRobotConfig> findByCode(String code) {
-        return findByField(DingRobotConfig::getCode, code);
-    }
-
-    public boolean existsByCode(String code) {
-        return existedByField(DingRobotConfig::getCode, code);
-    }
-
-    public boolean existsByCode(String code, Long id) {
-        return lambdaQuery().eq(DingRobotConfig::getCode, code).ne(MpIdEntity::getId, id).exists();
-    }
-
-    public Page<DingRobotConfig> page(PageParam pageParam, DingRobotConfigParam param) {
-        Page<DingRobotConfig> mpPage = MpUtil.getMpPage(pageParam, DingRobotConfig.class);
-        return lambdaQuery().orderByDesc(MpIdEntity::getId)
-            .like(StrUtil.isNotBlank(param.getCode()), DingRobotConfig::getCode, param.getCode())
-            .like(StrUtil.isNotBlank(param.getName()), DingRobotConfig::getName, param.getName())
-            .like(StrUtil.isNotBlank(param.getAccessToken()), DingRobotConfig::getAccessToken, param.getAccessToken())
-            .page(mpPage);
-    }
-
-}
diff --git a/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/core/robot/dao/DingRobotConfigMapper.java b/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/core/robot/dao/DingRobotConfigMapper.java
deleted file mode 100644
index f1514179172ef4623a11ac948c87a779ec15c74b..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/core/robot/dao/DingRobotConfigMapper.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package cn.bootx.platform.starter.dingtalk.core.robot.dao;
-
-import cn.bootx.platform.starter.dingtalk.core.robot.entity.DingRobotConfig;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import org.apache.ibatis.annotations.Mapper;
-
-/**
- * 钉钉机器人配置
- *
- * @author xxm
- * @since 2021/8/5
- */
-@Mapper
-public interface DingRobotConfigMapper extends BaseMapper<DingRobotConfig> {
-
-}
diff --git a/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/core/robot/entity/DingRobotConfig.java b/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/core/robot/entity/DingRobotConfig.java
deleted file mode 100644
index 2532efee002fd8bc3c03c5eca2f7cd08985c054f..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/core/robot/entity/DingRobotConfig.java
+++ /dev/null
@@ -1,52 +0,0 @@
-package cn.bootx.platform.starter.dingtalk.core.robot.entity;
-
-import cn.bootx.platform.starter.dingtalk.core.robot.convert.DingRobotConvert;
-import cn.bootx.platform.starter.dingtalk.param.robot.DingRobotConfigParam;
-import cn.bootx.platform.common.core.function.EntityBaseFunction;
-import cn.bootx.platform.common.mybatisplus.base.MpBaseEntity;
-import cn.bootx.platform.starter.dingtalk.dto.robot.DingRobotConfigDto;
-import com.baomidou.mybatisplus.annotation.TableName;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.experimental.Accessors;
-
-/**
- * 钉钉机器人配置
- *
- * @author xxm
- * @since 2020/11/29
- */
-@EqualsAndHashCode(callSuper = true)
-@Data
-@Accessors(chain = true)
-@TableName("starter_ding_robot_config")
-public class DingRobotConfig extends MpBaseEntity implements EntityBaseFunction<DingRobotConfigDto> {
-
-    /** 机器人编号编号 */
-    private String code;
-
-    /** 机器人配置名称 */
-    private String name;
-
-    /** 钉钉机器人的accessToken */
-    private String accessToken;
-
-    /** 是否开启验签 */
-    private boolean enableSignatureCheck;
-
-    /** 验签秘钥 */
-    private String signSecret;
-
-    /** 备注 */
-    private String remark;
-
-    public static DingRobotConfig init(DingRobotConfigParam in) {
-        return DingRobotConvert.CONVERT.convert(in);
-    }
-
-    @Override
-    public DingRobotConfigDto toDto() {
-        return DingRobotConvert.CONVERT.convert(this);
-    }
-
-}
diff --git a/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/core/robot/service/DingRobotConfigService.java b/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/core/robot/service/DingRobotConfigService.java
deleted file mode 100644
index 72d4781e99896082725021ab9fa8cf71e18a0684..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/core/robot/service/DingRobotConfigService.java
+++ /dev/null
@@ -1,102 +0,0 @@
-package cn.bootx.platform.starter.dingtalk.core.robot.service;
-
-import cn.bootx.platform.starter.dingtalk.param.robot.DingRobotConfigParam;
-import cn.bootx.platform.common.core.exception.BizException;
-import cn.bootx.platform.common.core.exception.DataNotExistException;
-import cn.bootx.platform.common.core.rest.PageResult;
-import cn.bootx.platform.common.core.rest.param.PageParam;
-import cn.bootx.platform.common.core.util.ResultConvertUtil;
-import cn.bootx.platform.common.mybatisplus.util.MpUtil;
-import cn.bootx.platform.starter.dingtalk.core.robot.dao.DingRobotConfigManager;
-import cn.bootx.platform.starter.dingtalk.core.robot.entity.DingRobotConfig;
-import cn.bootx.platform.starter.dingtalk.dto.robot.DingRobotConfigDto;
-import cn.hutool.core.bean.BeanUtil;
-import cn.hutool.core.bean.copier.CopyOptions;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-
-import java.util.List;
-
-/**
- * 钉钉机器人消息发送
- *
- * @author xxm
- * @since 2020/11/29
- */
-@Slf4j
-@Service
-@RequiredArgsConstructor
-public class DingRobotConfigService {
-
-    private final DingRobotConfigManager robotConfigManager;
-
-    /**
-     * 添加新配置
-     */
-    @Transactional(rollbackFor = Exception.class)
-    public DingRobotConfigDto add(DingRobotConfigParam param) {
-        if (robotConfigManager.existsByCode(param.getCode())) {
-            throw new BizException("code重复");
-        }
-
-        DingRobotConfig dingRobotConfig = DingRobotConfig.init(param);
-
-        return robotConfigManager.save(dingRobotConfig).toDto();
-    }
-
-    /**
-     * 更新钉钉机器人配置
-     */
-    @Transactional(rollbackFor = Exception.class)
-    public DingRobotConfigDto update(DingRobotConfigParam param) {
-        DingRobotConfig dingRobotConfig = robotConfigManager.findById(param.getId())
-            .orElseThrow(DataNotExistException::new);
-        BeanUtil.copyProperties(param, dingRobotConfig, CopyOptions.create().ignoreNullValue());
-        return robotConfigManager.updateById(dingRobotConfig).toDto();
-    }
-
-    /**
-     * 获取所有配置
-     */
-    public List<DingRobotConfigDto> findAll() {
-        return ResultConvertUtil.dtoListConvert(robotConfigManager.findAll());
-    }
-
-    /**
-     * 获取所有配置
-     */
-    public PageResult<DingRobotConfigDto> page(PageParam pageParam, DingRobotConfigParam param) {
-        return MpUtil.convert2DtoPageResult(robotConfigManager.page(pageParam, param));
-    }
-
-    /**
-     * 根据 id 获取相应的配置
-     */
-    public DingRobotConfigDto findById(Long id) {
-        return ResultConvertUtil.dtoConvert(robotConfigManager.findById(id));
-    }
-
-    /**
-     * 根据 id 删除相应的机器人配置
-     */
-    public void delete(Long id) {
-        robotConfigManager.deleteById(id);
-    }
-
-    /**
-     * 编码是否已经存在
-     */
-    public boolean existsByCode(String code) {
-        return robotConfigManager.existsByCode(code);
-    }
-
-    /**
-     * 编码是否已经存在(不包含自身)
-     */
-    public boolean existsByCode(String code, Long id) {
-        return robotConfigManager.existsByCode(code, id);
-    }
-
-}
diff --git a/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/core/robot/service/DingRobotSendService.java b/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/core/robot/service/DingRobotSendService.java
deleted file mode 100644
index 3cf1278438c233eddf2b167a872f5a91c92a2830..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/core/robot/service/DingRobotSendService.java
+++ /dev/null
@@ -1,68 +0,0 @@
-package cn.bootx.platform.starter.dingtalk.core.robot.service;
-
-import cn.bootx.platform.starter.dingtalk.param.notice.msg.Msg;
-import cn.bootx.platform.starter.dingtalk.util.DingTalkUtil;
-import cn.bootx.platform.common.core.exception.DataNotExistException;
-import cn.bootx.platform.common.jackson.util.JacksonUtil;
-import cn.bootx.platform.starter.dingtalk.code.DingTalkCode;
-import cn.bootx.platform.starter.dingtalk.core.robot.dao.DingRobotConfigManager;
-import cn.bootx.platform.starter.dingtalk.core.robot.entity.DingRobotConfig;
-import cn.bootx.platform.starter.dingtalk.core.base.result.DingTalkResult;
-import cn.hutool.core.util.StrUtil;
-import cn.hutool.http.HttpUtil;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Service;
-
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Objects;
-
-import static cn.bootx.platform.starter.dingtalk.code.DingTalkCode.SUCCESS_CODE;
-
-/**
- * 钉钉机器人消息发送
- *
- * @author xxm
- * @since 2020/11/29
- */
-@Slf4j
-@Service
-@RequiredArgsConstructor
-public class DingRobotSendService {
-
-    private final DingRobotConfigManager dingRobotConfigManager;
-
-    /**
-     * 发送钉钉机器人消息
-     */
-    public void sendNotice(String code, Msg body) {
-        DingRobotConfig dingRobotConfig = dingRobotConfigManager.findByCode(code)
-            .orElseThrow(() -> new DataNotExistException("钉钉机器人配置不存在"));
-        long timestamp = System.currentTimeMillis();
-
-        Map<String, Object> map = new HashMap<>(3);
-        map.put(DingTalkCode.ACCESS_TOKEN, dingRobotConfig.getAccessToken());
-        String url;
-        // 验签
-        if (dingRobotConfig.isEnableSignatureCheck()) {
-            url = DingTalkCode.ROBOT_SEND_SIGN_URL;
-            map.put(DingTalkCode.SIGN, DingTalkUtil.generateSign(timestamp, dingRobotConfig.getSignSecret()));
-            map.put(DingTalkCode.TIMESTAMP, timestamp);
-        }
-        else {
-            url = DingTalkCode.ROBOT_SEND_NOT_SIGN_URL;
-        }
-
-        // 请求消息
-        String responseBody = HttpUtil.createPost(StrUtil.format(url, map))
-            .body(JacksonUtil.toJson(body))
-            .execute()
-            .body();
-        DingTalkResult<?> dingTalkResult = JacksonUtil.toBean(responseBody, DingTalkResult.class);
-        if (!Objects.equals(SUCCESS_CODE, dingTalkResult.getCode())) {
-            log.error("钉钉机器人发送消息失败: {}", dingTalkResult.getMsg());
-        }
-    }
-
-}
diff --git a/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/core/user/entity/UserIdResult.java b/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/core/user/entity/UserIdResult.java
deleted file mode 100644
index 82bb8f8644b94589bd933a274e7b9df045fce02d..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/core/user/entity/UserIdResult.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package cn.bootx.platform.starter.dingtalk.core.user.entity;
-
-import com.fasterxml.jackson.annotation.JsonProperty;
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-import lombok.experimental.Accessors;
-
-/**
- * @author xxm
- * @since 2022/7/21
- */
-@Data
-@Accessors(chain = true)
-@Schema(title = "钉钉id消息")
-public class UserIdResult {
-
-    @JsonProperty("contact_type")
-    @Schema(description = "联系类型")
-    private String contactType;
-
-    @JsonProperty("userid")
-    @Schema(description = "用户id")
-    private String userId;
-
-}
diff --git a/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/core/user/service/DingUserService.java b/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/core/user/service/DingUserService.java
deleted file mode 100644
index 83a409027fb7c4bb81f138b2ec1b4cf13663047e..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/core/user/service/DingUserService.java
+++ /dev/null
@@ -1,60 +0,0 @@
-package cn.bootx.platform.starter.dingtalk.core.user.service;
-
-import cn.bootx.platform.common.core.exception.BizException;
-import cn.bootx.platform.common.jackson.util.JacksonUtil;
-import cn.bootx.platform.starter.dingtalk.core.base.result.DingTalkResult;
-import cn.bootx.platform.starter.dingtalk.core.base.service.DingAccessService;
-import cn.bootx.platform.starter.dingtalk.core.user.entity.UserIdResult;
-import cn.hutool.core.util.StrUtil;
-import cn.hutool.http.HttpUtil;
-import com.fasterxml.jackson.core.type.TypeReference;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Service;
-
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Objects;
-
-import static cn.bootx.platform.starter.dingtalk.code.DingTalkCode.*;
-
-/**
- * 钉钉用户信息
- *
- * @author xxm
- * @since 2022/7/17
- */
-@Slf4j
-@Service
-@RequiredArgsConstructor
-public class DingUserService {
-
-    private final DingAccessService dingAccessService;
-
-    /**
-     * 根据unionid获取用户userid <a href=
-     * "https://open.dingtalk.com/document/isvapp-server/query-a-user-by-the-union-id">...</a>
-     */
-    public String getUserIdByUnionId(String unionId) {
-        String accessToken = dingAccessService.getAccessToken();
-        Map<String, String> map = new HashMap<>(1);
-        map.put(UNION_ID, unionId);
-        String responseBody = HttpUtil.createPost(StrUtil.format(USER_GET_URL, accessToken))
-            .body(JacksonUtil.toJson(map))
-            .execute()
-            .body();
-        DingTalkResult<UserIdResult> dingTalkResult = JacksonUtil.toBean(responseBody,
-                new TypeReference<DingTalkResult<UserIdResult>>() {
-                });
-        // 未找到用户, 返回空
-        if (Objects.equals(dingTalkResult.getCode(), NOT_FUND_STAFF)) {
-            return null;
-        }
-        // 错误
-        if (!Objects.equals(dingTalkResult.getCode(), SUCCESS_CODE)) {
-            throw new BizException(dingTalkResult.getMsg());
-        }
-        return dingTalkResult.getResult().getUserId();
-    }
-
-}
diff --git a/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/dto/robot/DingRobotConfigDto.java b/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/dto/robot/DingRobotConfigDto.java
deleted file mode 100644
index d9042be1e26b3251e4c3815ff8928fed97e7a649..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/dto/robot/DingRobotConfigDto.java
+++ /dev/null
@@ -1,40 +0,0 @@
-package cn.bootx.platform.starter.dingtalk.dto.robot;
-
-import cn.bootx.platform.common.core.rest.dto.BaseDto;
-import cn.bootx.platform.starter.data.perm.sensitive.SensitiveInfo;
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.experimental.Accessors;
-
-import java.io.Serializable;
-
-@EqualsAndHashCode(callSuper = true)
-@Data
-@Accessors(chain = true)
-@Schema(title = "钉钉机器人配置")
-public class DingRobotConfigDto extends BaseDto implements Serializable {
-
-    private static final long serialVersionUID = -5642207413191556792L;
-
-    @Schema(description = "编号")
-    private String code;
-
-    @Schema(description = "配置名称")
-    private String name;
-
-    @Schema(description = "钉钉机器人的AccessToken")
-    @SensitiveInfo
-    private String accessToken;
-
-    @Schema(description = "是否开启验签")
-    private boolean enableSignatureCheck;
-
-    @Schema(description = "验签秘钥")
-    @SensitiveInfo
-    private String signSecret;
-
-    @Schema(description = "描述")
-    private String remark;
-
-}
diff --git a/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/param/notice/ChatNotice.java b/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/param/notice/ChatNotice.java
deleted file mode 100644
index 6d8c0e3a58cfabc23ee785e1ca14d447d9dde28e..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/param/notice/ChatNotice.java
+++ /dev/null
@@ -1,39 +0,0 @@
-package cn.bootx.platform.starter.dingtalk.param.notice;
-
-import cn.bootx.platform.starter.dingtalk.param.notice.msg.Msg;
-import cn.bootx.platform.common.jackson.util.JacksonUtil;
-import com.fasterxml.jackson.annotation.JsonProperty;
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-import lombok.experimental.Accessors;
-
-/**
- * 钉钉发送企业群消息参数
- *
- * @author xxm
- * @since 2022/7/20
- */
-@Data
-@Accessors(chain = true)
-@AllArgsConstructor
-@NoArgsConstructor
-@Schema(title = "钉钉发送企业群消息参数")
-public class ChatNotice {
-
-    @JsonProperty("chatid")
-    @Schema(description = "群Id")
-    private String chatId;
-
-    @Schema(description = "消息内容")
-    private Msg msg;
-
-    /**
-     * 输出参数
-     */
-    public String toParam() {
-        return JacksonUtil.toJson(this);
-    }
-
-}
diff --git a/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/param/notice/CorpNotice.java b/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/param/notice/CorpNotice.java
deleted file mode 100644
index 7023a4d408d18a7a7b7a283701ae6e1389901406..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/param/notice/CorpNotice.java
+++ /dev/null
@@ -1,55 +0,0 @@
-package cn.bootx.platform.starter.dingtalk.param.notice;
-
-import cn.bootx.platform.starter.dingtalk.param.notice.msg.Msg;
-import cn.bootx.platform.common.jackson.util.JacksonUtil;
-import cn.hutool.core.lang.Opt;
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-import lombok.experimental.Accessors;
-
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-/**
- * 钉钉发送工作通知参数
- *
- * @author xxm
- * @since 2022/7/17
- */
-@Data
-@Accessors(chain = true)
-@Schema(title = "钉钉发送工作通知参数")
-public class CorpNotice {
-
-    @Schema(description = "发送消息时使用的微应用的AgentID")
-    private Long agentId;
-
-    @Schema(description = "接收者的userid列表,最大用户列表长度100")
-    private List<String> useridList;
-
-    @Schema(description = "接收者的部门id列表,最大列表长度20")
-    private List<String> deptIdList;
-
-    @Schema(description = "是否发送给企业全部用户")
-    private boolean toAllUser;
-
-    @Schema(description = "消息内容")
-    private Msg msg;
-
-    /**
-     * 输出参数
-     */
-    public String toParam() {
-        Map<String, Object> map = new HashMap<>(5);
-        String useridList = Opt.ofEmptyAble(this.useridList).map(list -> String.join(",", list)).orElse(null);
-        String deptIdList = Opt.ofEmptyAble(this.deptIdList).map(list -> String.join(",", list)).orElse(null);
-        map.put("agent_id", agentId);
-        map.put("userid_list", useridList);
-        map.put("dept_id_list", deptIdList);
-        map.put("to_all_user", toAllUser);
-        map.put("msg", msg);
-        return JacksonUtil.toJson(map);
-    }
-
-}
diff --git a/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/param/notice/RecallCorpNotice.java b/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/param/notice/RecallCorpNotice.java
deleted file mode 100644
index 805cbe728dc766916935aa5b68e054cc8e0ca2af..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/param/notice/RecallCorpNotice.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package cn.bootx.platform.starter.dingtalk.param.notice;
-
-import cn.bootx.platform.common.jackson.util.JacksonUtil;
-import com.fasterxml.jackson.annotation.JsonProperty;
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-import lombok.experimental.Accessors;
-
-/**
- * 钉钉撤回工作通知
- *
- * @author xxm
- * @since 2022/7/20
- */
-@Data
-@Accessors(chain = true)
-@AllArgsConstructor
-@NoArgsConstructor
-@Schema(title = "钉钉撤回工作通知")
-public class RecallCorpNotice {
-
-    @JsonProperty("agent_id")
-    @Schema(description = "发送消息时使用的微应用的AgentID")
-    private Long agentId;
-
-    @JsonProperty("msg_task_id")
-    @Schema(description = "发送消息时钉钉返回的任务ID")
-    private Long taskId;
-
-    public String toParam() {
-        return JacksonUtil.toJson(this);
-    }
-
-}
diff --git a/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/param/notice/UpdateCorpNotice.java b/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/param/notice/UpdateCorpNotice.java
deleted file mode 100644
index d6e0363049d7c847325eb504760c5527e511a89d..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/param/notice/UpdateCorpNotice.java
+++ /dev/null
@@ -1,40 +0,0 @@
-package cn.bootx.platform.starter.dingtalk.param.notice;
-
-import cn.bootx.platform.common.jackson.util.JacksonUtil;
-import com.fasterxml.jackson.annotation.JsonProperty;
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-import lombok.experimental.Accessors;
-
-/**
- * 钉钉 更新工作通知状态栏
- *
- * @author xxm
- * @since 2022/7/17
- */
-@Data
-@Accessors(chain = true)
-@Schema(title = "钉钉更新工作通知状态栏")
-public class UpdateCorpNotice {
-
-    @JsonProperty("agent_id")
-    @Schema(description = "发送消息时使用的微应用的AgentID")
-    private Long agentId;
-
-    @JsonProperty("task_id")
-    @Schema(description = "发送消息时使用的微应用的AgentID")
-    private Long taskId;
-
-    @JsonProperty("status_value")
-    @Schema(description = "状态栏值")
-    private String statusValue;
-
-    @JsonProperty("status_bg")
-    @Schema(description = "状态栏背景色,推荐0xFF加六位颜色值")
-    private String statusBg;
-
-    public String toParam() {
-        return JacksonUtil.toJson(this);
-    }
-
-}
diff --git a/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/param/notice/msg/ActionCardMsg.java b/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/param/notice/msg/ActionCardMsg.java
deleted file mode 100644
index 20ee7b85a59cc9363dc1f632fba035e3fdd52612..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/param/notice/msg/ActionCardMsg.java
+++ /dev/null
@@ -1,70 +0,0 @@
-package cn.bootx.platform.starter.dingtalk.param.notice.msg;
-
-import com.fasterxml.jackson.annotation.JsonProperty;
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.experimental.Accessors;
-
-import java.util.List;
-
-/**
- * 钉钉卡片消息
- *
- * @author xxm
- * @since 2022/7/19
- */
-@EqualsAndHashCode(callSuper = true)
-@Data
-@Accessors(chain = true)
-@Schema(title = "钉钉卡片消息")
-public class ActionCardMsg extends Msg {
-
-    @Schema(description = "消息内容,支持markdown")
-    @JsonProperty("action_card")
-    private ActionCard actionCard;
-
-    @Data
-    @Accessors(chain = true)
-    @Schema(title = "消息内容,支持markdown")
-    public static class ActionCard {
-
-        @Schema(description = "透出到会话列表和通知的文案")
-        private String title;
-
-        @Schema(description = "消息内容")
-        private String markdown;
-
-        @JsonProperty("single_title")
-        @Schema(description = "标题")
-        private String singleTitle;
-
-        @JsonProperty("single_url")
-        @Schema(description = "消息点击链接地址")
-        private String singleUrl;
-
-        @JsonProperty("btn_orientation")
-        @Schema(description = "使用独立跳转ActionCard样式时的按钮排列方式")
-        private String btnOrientation;
-
-        @JsonProperty("btn_json_list")
-        @Schema(description = "使用独立跳转ActionCard样式时的按钮列表")
-        private List<BtnJson> btnJsonList;
-
-        @Data
-        @Accessors(chain = true)
-        @Schema(title = "使用独立跳转ActionCard样式时的按钮列表")
-        public static class BtnJson {
-
-            @Schema(description = "按钮的标题")
-            private String title;
-
-            @JsonProperty("action_url")
-            @Schema(description = "跳转链接")
-            private String actionUrl;
-
-        }
-
-    }
-
-}
diff --git a/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/param/notice/msg/At.java b/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/param/notice/msg/At.java
deleted file mode 100644
index 3aef39823c2ba26b8b3b3cf2dcd47949c1224c41..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/param/notice/msg/At.java
+++ /dev/null
@@ -1,59 +0,0 @@
-package cn.bootx.platform.starter.dingtalk.param.notice.msg;
-
-import cn.hutool.core.collection.CollUtil;
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-import lombok.experimental.Accessors;
-
-import java.io.Serializable;
-import java.util.List;
-
-/**
- * 钉钉At
- *
- * @author xxm
- * @since 2020/11/29
- */
-@Data
-@Accessors(chain = true)
-@NoArgsConstructor
-@Schema(title = "钉钉@指定用户")
-public class At implements Serializable {
-
-    private static final long serialVersionUID = -8677524557109058147L;
-
-    @Schema(description = "@的用户手机号")
-    private List<String> atMobiles;
-
-    @Schema(description = "@被@人的用户userid")
-    private List<String> atUserIds;
-
-    @Schema(description = "是否@全体")
-    private boolean isAtAll = false;
-
-    public At(List<String> atMobiles) {
-        this.atMobiles = atMobiles;
-    }
-
-    /**
-     * 输出@xxx文本
-     */
-    public String toAtMobiles() {
-        if (CollUtil.isNotEmpty(atMobiles)) {
-            return " @" + String.join(" @", atMobiles);
-        }
-        return "";
-    }
-
-    /**
-     * 输出@xxx文本
-     */
-    public String toAtUserIds() {
-        if (CollUtil.isNotEmpty(atUserIds)) {
-            return " @" + String.join(" @", atUserIds);
-        }
-        return "";
-    }
-
-}
diff --git a/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/param/notice/msg/DingMedia.java b/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/param/notice/msg/DingMedia.java
deleted file mode 100644
index 28012efd3f0b1e4232317618190eadbec73f3203..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/param/notice/msg/DingMedia.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package cn.bootx.platform.starter.dingtalk.param.notice.msg;
-
-import com.fasterxml.jackson.annotation.JsonProperty;
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-import lombok.experimental.Accessors;
-
-/**
- * 钉钉图片
- *
- * @author xxm
- * @since 2022/7/17
- */
-@Data
-@Accessors(chain = true)
-@Schema(title = "钉钉媒体")
-@NoArgsConstructor
-@AllArgsConstructor
-public class DingMedia {
-
-    @JsonProperty("media_id")
-    @Schema(description = "媒体文件id")
-    private String mediaId;
-
-}
diff --git a/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/param/notice/msg/FileMsg.java b/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/param/notice/msg/FileMsg.java
deleted file mode 100644
index d948b44d51360cd1d5d742c65d5bc1d3db242004..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/param/notice/msg/FileMsg.java
+++ /dev/null
@@ -1,37 +0,0 @@
-package cn.bootx.platform.starter.dingtalk.param.notice.msg;
-
-import cn.bootx.platform.starter.dingtalk.code.DingTalkNoticeCode;
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.experimental.Accessors;
-
-import java.io.Serializable;
-
-/**
- * 钉钉图片通知
- *
- * @author xxm
- * @since 2022/7/17
- */
-@EqualsAndHashCode(callSuper = true)
-@Data
-@Accessors(chain = true)
-@Schema(title = "钉钉文件通知")
-public class FileMsg extends Msg implements Serializable {
-
-    private static final long serialVersionUID = -835679566138176L;
-
-    @Schema(description = "钉钉文件")
-    private DingMedia file;
-
-    public FileMsg() {
-        super(DingTalkNoticeCode.MSG_FILE);
-    }
-
-    public FileMsg(String mediaId) {
-        super(DingTalkNoticeCode.MSG_FILE);
-        this.file = new DingMedia(mediaId);
-    }
-
-}
diff --git a/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/param/notice/msg/ImageMsg.java b/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/param/notice/msg/ImageMsg.java
deleted file mode 100644
index a1fa6cb82c271191b11b33456b0ca9afaeede71d..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/param/notice/msg/ImageMsg.java
+++ /dev/null
@@ -1,37 +0,0 @@
-package cn.bootx.platform.starter.dingtalk.param.notice.msg;
-
-import cn.bootx.platform.starter.dingtalk.code.DingTalkNoticeCode;
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.experimental.Accessors;
-
-import java.io.Serializable;
-
-/**
- * 钉钉图片通知
- *
- * @author xxm
- * @since 2022/7/17
- */
-@EqualsAndHashCode(callSuper = true)
-@Data
-@Accessors(chain = true)
-@Schema(title = "钉钉图片通知")
-public class ImageMsg extends Msg implements Serializable {
-
-    private static final long serialVersionUID = -835679566138176L;
-
-    @Schema(description = "钉钉图片")
-    private DingMedia image;
-
-    public ImageMsg() {
-        super(DingTalkNoticeCode.MSG_IMAGE);
-    }
-
-    public ImageMsg(String mediaId) {
-        super(DingTalkNoticeCode.MSG_IMAGE);
-        this.image = new DingMedia(mediaId);
-    }
-
-}
diff --git a/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/param/notice/msg/LinkMsg.java b/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/param/notice/msg/LinkMsg.java
deleted file mode 100644
index 20b1ab0c7bba81a71d64201ceda7474d7e5e05b2..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/param/notice/msg/LinkMsg.java
+++ /dev/null
@@ -1,78 +0,0 @@
-package cn.bootx.platform.starter.dingtalk.param.notice.msg;
-
-import cn.bootx.platform.starter.dingtalk.code.DingTalkNoticeCode;
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.NoArgsConstructor;
-import lombok.experimental.Accessors;
-
-import java.io.Serializable;
-
-/**
- * 钉钉链接消息
- *
- * @author xxm
- * @since 2020/11/30
- */
-@EqualsAndHashCode(callSuper = true)
-@Data
-@Accessors(chain = true)
-@Schema(title = "钉钉链接消息")
-public class LinkMsg extends Msg implements Serializable {
-
-    private static final long serialVersionUID = -3094638065840434973L;
-
-    @Schema(description = "钉钉link消息体")
-    private DingLink link;
-
-    public LinkMsg() {
-        super(DingTalkNoticeCode.MSG_LINK);
-    }
-
-    public LinkMsg(String title, String msg, String messageUrl) {
-        super(DingTalkNoticeCode.MSG_LINK);
-        link = new DingLink(title, msg, messageUrl);
-    }
-
-    public LinkMsg(String title, String msg, String messageUrl, String picUrl) {
-        super(DingTalkNoticeCode.MSG_LINK);
-        link = new DingLink(title, msg, messageUrl, picUrl);
-    }
-
-    @Data
-    @Accessors(chain = true)
-    @Schema(title = "钉钉link")
-    @NoArgsConstructor
-    public static class DingLink implements Serializable {
-
-        private static final long serialVersionUID = 8191181631664337904L;
-
-        @Schema(description = "标题")
-        private String title;
-
-        @Schema(description = "内容")
-        private String text;
-
-        @Schema(description = "点击消息跳转的URL")
-        private String messageUrl;
-
-        @Schema(description = "图片URL")
-        private String picUrl;
-
-        public DingLink(String title, String text, String messageUrl) {
-            this.title = title;
-            this.text = text;
-            this.messageUrl = messageUrl;
-        }
-
-        public DingLink(String title, String text, String messageUrl, String picUrl) {
-            this.title = title;
-            this.text = text;
-            this.messageUrl = messageUrl;
-            this.picUrl = picUrl;
-        }
-
-    }
-
-}
diff --git a/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/param/notice/msg/MarkdownMsg.java b/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/param/notice/msg/MarkdownMsg.java
deleted file mode 100644
index 40548c1d5f78eedc1b276df19c7c63866e6553c7..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/param/notice/msg/MarkdownMsg.java
+++ /dev/null
@@ -1,70 +0,0 @@
-package cn.bootx.platform.starter.dingtalk.param.notice.msg;
-
-import cn.bootx.platform.starter.dingtalk.code.DingTalkNoticeCode;
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.NoArgsConstructor;
-import lombok.experimental.Accessors;
-
-import java.io.Serializable;
-import java.util.List;
-
-/**
- * 钉钉markdown消息
- *
- * @author xxm
- * @since 2020/11/30
- */
-@EqualsAndHashCode(callSuper = true)
-@Data
-@Accessors(chain = true)
-@Schema(title = "钉钉文本消息")
-public class MarkdownMsg extends Msg implements Serializable {
-
-    private static final long serialVersionUID = -2724590259000709240L;
-
-    @Schema(description = "markdown消息体")
-    private DingMarkdown markdown;
-
-    public MarkdownMsg() {
-        super(DingTalkNoticeCode.MSG_MARKDOWN);
-    }
-
-    /**
-     * @param title 标题
-     * @param msg 内容
-     * @param phones @谁
-     */
-    public MarkdownMsg(String title, String msg, List<String> phones) {
-        super(new At(phones), DingTalkNoticeCode.MSG_MARKDOWN);
-        this.markdown = new DingMarkdown(title, msg);
-    }
-
-    public MarkdownMsg(String title, String msg) {
-        super(DingTalkNoticeCode.MSG_MARKDOWN);
-        this.markdown = new DingMarkdown(title, msg);
-    }
-
-    @Data
-    @Accessors(chain = true)
-    @NoArgsConstructor
-    @Schema(title = "钉钉markdown格式信息")
-    public static class DingMarkdown implements Serializable {
-
-        private static final long serialVersionUID = 2353543901449818541L;
-
-        @Schema(description = "标题")
-        private String title;
-
-        @Schema(description = "内容")
-        private String text;
-
-        public DingMarkdown(String title, String text) {
-            this.title = title;
-            this.text = text;
-        }
-
-    }
-
-}
diff --git a/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/param/notice/msg/Msg.java b/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/param/notice/msg/Msg.java
deleted file mode 100644
index 656371c4b71388cfc1698afde09300c3b3826e0b..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/param/notice/msg/Msg.java
+++ /dev/null
@@ -1,50 +0,0 @@
-package cn.bootx.platform.starter.dingtalk.param.notice.msg;
-
-import cn.bootx.platform.starter.dingtalk.code.DingTalkNoticeCode;
-import com.fasterxml.jackson.annotation.JsonInclude;
-import com.fasterxml.jackson.annotation.JsonProperty;
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-import lombok.experimental.Accessors;
-
-import java.io.Serializable;
-
-/**
- * 钉钉消息
- *
- * @author xxm
- * @since 2020/11/30
- */
-@Data
-@Accessors(chain = true)
-@NoArgsConstructor
-@Schema(title = "钉钉消息基础类")
-public class Msg implements Serializable {
-
-    private static final long serialVersionUID = -8548175773944126488L;
-
-    /**
-     * <a href="https://open.dingtalk.com/document/group/custom-robot-access">...</a>
-     */
-    @JsonInclude(JsonInclude.Include.NON_NULL)
-    @Schema(description = "@谁(机器人消息用)")
-    private At at;
-
-    /**
-     * @see DingTalkNoticeCode
-     */
-    @JsonProperty("msgtype")
-    @Schema(description = "消息类型")
-    private String msgType;
-
-    public Msg(At at, String msgType) {
-        this.at = at;
-        this.msgType = msgType;
-    }
-
-    public Msg(String msgType) {
-        this.msgType = msgType;
-    }
-
-}
diff --git a/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/param/notice/msg/OaMsg.java b/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/param/notice/msg/OaMsg.java
deleted file mode 100644
index fbaab9131aef2dcc4a15176336554daeee54ef50..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/param/notice/msg/OaMsg.java
+++ /dev/null
@@ -1,139 +0,0 @@
-package cn.bootx.platform.starter.dingtalk.param.notice.msg;
-
-import com.fasterxml.jackson.annotation.JsonProperty;
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.NoArgsConstructor;
-import lombok.experimental.Accessors;
-
-import java.util.List;
-
-/**
- * 钉钉OA消息
- *
- * @author xxm
- * @since 2022/7/19
- */
-@EqualsAndHashCode(callSuper = true)
-@Data
-@Accessors(chain = true)
-@AllArgsConstructor
-@NoArgsConstructor
-@Schema(title = "钉钉OA消息")
-public class OaMsg extends Msg {
-
-    @Schema(description = "OA消息体")
-    private Oa oa;
-
-    @Data
-    @Accessors(chain = true)
-    @Schema(title = "OA消息体")
-    public static class Oa {
-
-        @JsonProperty("message_url")
-        @Schema(description = "消息点击链接地址")
-        private String messageUrl;
-
-        @JsonProperty("pc_message_url")
-        @Schema(description = "PC端点击消息时跳转到的地址")
-        private String pcMessageUrl;
-
-        @Schema(description = "消息头部内容")
-        private Head head;
-
-        @Schema(description = "消息体")
-        private Body body;
-
-        @JsonProperty("status_bar")
-        @Schema(description = "消息状态栏")
-        private StatusBar statusBar;
-
-        @Data
-        @Accessors(chain = true)
-        @Schema(title = "消息头部内容")
-        public static class Head {
-
-            @JsonProperty("bgcolor")
-            @Schema(description = "消息头部的背景颜色")
-            private String bgColor;
-
-            @Schema(description = "消息的头部标题")
-            private String text;
-
-        }
-
-        @Data
-        @Accessors(chain = true)
-        @Schema(title = "消息状态栏")
-        public static class StatusBar {
-
-            @Schema(description = "状态栏文案")
-            @JsonProperty("status_value")
-            private String statusValue;
-
-            @Schema(description = "状态栏背景色")
-            @JsonProperty("status_bg")
-            private String statusBg;
-
-        }
-
-        @Data
-        @Accessors(chain = true)
-        @Schema(title = "消息体")
-        public static class Body {
-
-            @Schema(description = "消息体的标题")
-            private String title;
-
-            @Schema(description = "消息体的表单")
-            private List<Form> form;
-
-            @Schema(description = "单行富文本信息")
-            private Rich rich;
-
-            @Schema(description = "消息体的内容")
-            private String content;
-
-            @Schema(description = "消息体中的图片(媒体id)")
-            private String image;
-
-            @Schema(description = "自定义的附件数目")
-            @JsonProperty("file_count")
-            private String fileCount;
-
-            @Schema(description = "自定义的作者名字")
-            private String author;
-
-            @Data
-            @Accessors(chain = true)
-            @Schema(title = "消息体的表单,最多显示6个,超过会被隐藏")
-            public static class Form {
-
-                @Schema(description = "消息体的关键字")
-                private String key;
-
-                @Schema(description = "消息体的关键字对应的值")
-                private String value;
-
-            }
-
-            @Data
-            @Accessors(chain = true)
-            @Schema(title = "单行富文本信息")
-            public static class Rich {
-
-                @Schema(description = "单行富文本信息的数目")
-                private String num;
-
-                @Schema(description = "单行富文本信息的单位")
-                private String unit;
-
-            }
-
-        }
-
-    }
-
-}
diff --git a/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/param/notice/msg/TextMsg.java b/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/param/notice/msg/TextMsg.java
deleted file mode 100644
index 72e71d0425c9cade29b2017bcc280c4f4e5216f3..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/param/notice/msg/TextMsg.java
+++ /dev/null
@@ -1,51 +0,0 @@
-package cn.bootx.platform.starter.dingtalk.param.notice.msg;
-
-import cn.bootx.platform.starter.dingtalk.code.DingTalkNoticeCode;
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.NoArgsConstructor;
-import lombok.experimental.Accessors;
-
-import java.io.Serializable;
-
-/**
- * @author xxm
- * @since 2020/11/29
- */
-@EqualsAndHashCode(callSuper = true)
-@Data
-@Accessors(chain = true)
-@Schema(title = "钉钉文本消息")
-public class TextMsg extends Msg implements Serializable {
-
-    private static final long serialVersionUID = 8237431306046852539L;
-
-    @Schema(description = "文本消息体")
-    private DingText text;
-
-    public TextMsg() {
-        super(DingTalkNoticeCode.MSG_TEXT);
-    }
-
-    public TextMsg(String msg) {
-        super(DingTalkNoticeCode.MSG_TEXT);
-        text = new DingText(msg);
-    }
-
-    @Data
-    @Accessors(chain = true)
-    @NoArgsConstructor
-    @AllArgsConstructor
-    @Schema(title = "钉钉文本")
-    public static class DingText implements Serializable {
-
-        private static final long serialVersionUID = 3582073816491238620L;
-
-        @Schema(description = "文本")
-        private String content;
-
-    }
-
-}
diff --git a/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/param/notice/msg/VoiceMsg.java b/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/param/notice/msg/VoiceMsg.java
deleted file mode 100644
index d4b95c511a072282ddaf23ca6114f71c2621618f..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/param/notice/msg/VoiceMsg.java
+++ /dev/null
@@ -1,55 +0,0 @@
-package cn.bootx.platform.starter.dingtalk.param.notice.msg;
-
-import cn.bootx.platform.starter.dingtalk.code.DingTalkNoticeCode;
-import com.fasterxml.jackson.annotation.JsonProperty;
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.NoArgsConstructor;
-import lombok.experimental.Accessors;
-
-import java.io.Serializable;
-
-/**
- * 钉钉语音消息
- *
- * @author xxm
- * @since 2022/7/17
- */
-@EqualsAndHashCode(callSuper = true)
-@Data
-@Accessors(chain = true)
-@Schema(title = "钉钉语音消息")
-public class VoiceMsg extends Msg implements Serializable {
-
-    @Schema(description = "钉钉语音")
-    private DingVoice voice;
-
-    public VoiceMsg() {
-        super(DingTalkNoticeCode.MSG_VOICE);
-    }
-
-    public VoiceMsg(String mediaId, String duration) {
-        super(DingTalkNoticeCode.MSG_VOICE);
-        this.voice = new DingVoice(mediaId, duration);
-    }
-
-    @Data
-    @Accessors(chain = true)
-    @Schema(title = "钉钉语音")
-    @NoArgsConstructor
-    @AllArgsConstructor
-    public static class DingVoice {
-
-        @JsonProperty("media_id")
-        @Schema(description = "媒体文件id")
-        private String mediaId;
-
-        @JsonProperty("duration")
-        @Schema(description = "音频时长")
-        private String duration;
-
-    }
-
-}
diff --git a/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/param/robot/DingRobotConfigParam.java b/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/param/robot/DingRobotConfigParam.java
deleted file mode 100644
index 620604d8c6c6947df9b83041da6398d948c08020..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/param/robot/DingRobotConfigParam.java
+++ /dev/null
@@ -1,41 +0,0 @@
-package cn.bootx.platform.starter.dingtalk.param.robot;
-
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-import lombok.experimental.Accessors;
-
-import java.io.Serializable;
-
-/**
- * @author xxm
- * @since 2021/8/5
- */
-@Data
-@Accessors(chain = true)
-@Schema(title = "钉钉机器人配置参数")
-public class DingRobotConfigParam implements Serializable {
-
-    private static final long serialVersionUID = -3979174622716815670L;
-
-    @Schema(description = "主键")
-    private Long id;
-
-    @Schema(description = "编号")
-    private String code;
-
-    @Schema(description = "配置名称")
-    private String name;
-
-    @Schema(description = "钉钉机器人的accessToken")
-    private String accessToken;
-
-    @Schema(description = "是否开启验签")
-    private boolean enableSignatureCheck;
-
-    @Schema(description = "验签秘钥")
-    private String signSecret;
-
-    @Schema(description = "描述")
-    private String remark;
-
-}
diff --git a/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/util/DingTalkUtil.java b/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/util/DingTalkUtil.java
deleted file mode 100644
index ba4494ed058af8f89f351199d4cd527821a3e905..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/util/DingTalkUtil.java
+++ /dev/null
@@ -1,41 +0,0 @@
-package cn.bootx.platform.starter.dingtalk.util;
-
-import cn.hutool.crypto.digest.HmacAlgorithm;
-import lombok.experimental.UtilityClass;
-import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.codec.binary.Base64;
-
-import javax.crypto.Mac;
-import javax.crypto.spec.SecretKeySpec;
-import java.nio.charset.StandardCharsets;
-import java.security.InvalidKeyException;
-import java.security.NoSuchAlgorithmException;
-
-/**
- * 钉钉工具类
- *
- * @author xxm
- * @since 2022/4/2
- */
-@Slf4j
-@UtilityClass
-public class DingTalkUtil {
-
-    /**
-     * 生成sign
-     */
-    public String generateSign(Long timestamp, String sec) {
-        String combine = String.format("%d\n%s", timestamp, sec);
-        try {
-            Mac mac = Mac.getInstance(HmacAlgorithm.HmacSHA256.getValue());
-            mac.init(new SecretKeySpec(sec.getBytes(StandardCharsets.UTF_8), HmacAlgorithm.HmacSHA256.getValue()));
-            byte[] signData = mac.doFinal(combine.getBytes(StandardCharsets.UTF_8));
-            return Base64.encodeBase64String(signData);
-        }
-        catch (NoSuchAlgorithmException | InvalidKeyException e) {
-            log.warn(e.getMessage(), e);
-        }
-        return null;
-    }
-
-}
diff --git a/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
deleted file mode 100644
index 73283971c02f0272f8fa7d64e2c8969b5e5f3428..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
+++ /dev/null
@@ -1 +0,0 @@
-cn.bootx.platform.starter.dingtalk.DingTalkAutoConfiguration
diff --git a/bootx-platform/bootx-common-starters/common-starter-wechat/pom.xml b/bootx-platform/bootx-common-starters/common-starter-wechat/pom.xml
deleted file mode 100644
index f2d39d7e1f47282dcec6236ac5edd2664f90816e..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-wechat/pom.xml
+++ /dev/null
@@ -1,81 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <parent>
-        <artifactId>bootx-common-starters</artifactId>
-        <groupId>cn.bootx.platform</groupId>
-        <version>1.3.6.2</version>
-    </parent>
-    <modelVersion>4.0.0</modelVersion>
-
-    <artifactId>common-starter-wechat</artifactId>
-    <packaging>jar</packaging>
-
-    <dependencies>
-        <!-- web -->
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-web</artifactId>
-        </dependency>
-        <!-- 数据库持久层 -->
-        <dependency>
-            <groupId>cn.bootx.platform</groupId>
-            <artifactId>common-mybatis-plus</artifactId>
-        </dependency>
-        <!-- weixin-java 公众号(包括订阅号和服务号) -->
-        <dependency>
-            <groupId>com.github.binarywang</groupId>
-            <artifactId>weixin-java-mp</artifactId>
-            <version>${wxjava.version}</version>
-            <exclusions>
-                <exclusion>
-                    <artifactId>commons-io</artifactId>
-                    <groupId>commons-io</groupId>
-                </exclusion>
-                <exclusion>
-                    <artifactId>guava</artifactId>
-                    <groupId>com.google.guava</groupId>
-                </exclusion>
-                <exclusion>
-                    <groupId>com.thoughtworks.xstream</groupId>
-                    <artifactId>xstream</artifactId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-        <!-- weixin-java 公众号(包括订阅号和服务号) -->
-        <dependency>
-            <groupId>com.github.binarywang</groupId>
-            <artifactId>weixin-java-miniapp</artifactId>
-            <version>${wxjava.version}</version>
-            <exclusions>
-                <exclusion>
-                    <artifactId>commons-io</artifactId>
-                    <groupId>commons-io</groupId>
-                </exclusion>
-                <exclusion>
-                    <artifactId>guava</artifactId>
-                    <groupId>com.google.guava</groupId>
-                </exclusion>
-                <exclusion>
-                    <groupId>com.thoughtworks.xstream</groupId>
-                    <artifactId>xstream</artifactId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-        <!-- TODO 有cve高危漏洞, 先替换下版本 -->
-        <dependency>
-            <groupId>com.thoughtworks.xstream</groupId>
-            <artifactId>xstream</artifactId>
-            <version>1.4.20</version>
-        </dependency>
-        <dependency>
-            <groupId>cn.bootx.platform</groupId>
-            <artifactId>common-websocket</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>cn.bootx.platform</groupId>
-            <artifactId>common-starter-auth</artifactId>
-        </dependency>
-    </dependencies>
-</project>
diff --git a/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/WeChatAutoConfiguration.java b/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/WeChatAutoConfiguration.java
deleted file mode 100644
index 42089c6f8fe405020d2f1dda455af84c002e7a9c..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/WeChatAutoConfiguration.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package cn.bootx.platform.starter.wechat;
-
-import org.apache.ibatis.annotations.Mapper;
-import org.mybatis.spring.annotation.MapperScan;
-import org.springframework.boot.autoconfigure.AutoConfiguration;
-import org.springframework.boot.context.properties.ConfigurationPropertiesScan;
-import org.springframework.context.annotation.ComponentScan;
-
-/**
- * 微信操作封装
- *
- * @author xxm
- * @since 2022/7/15
- */
-@ComponentScan
-@MapperScan(annotationClass = Mapper.class)
-@AutoConfiguration
-@ConfigurationPropertiesScan
-public class WeChatAutoConfiguration {
-
-}
diff --git a/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/code/WeChatCode.java b/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/code/WeChatCode.java
deleted file mode 100644
index edf7660ed60cb6ca5e91f63b4ff39ff52062147f..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/code/WeChatCode.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package cn.bootx.platform.starter.wechat.code;
-
-/**
- * 微信编码
- *
- * @author xxm
- * @since 2022/8/5
- */
-public interface WeChatCode {
-
-    /** qrscene_为前缀,后面为二维码的参数值 */
-    String EVENT_KEY_QRSCENE = "qrscene_";
-
-    /* 带参数的扫码事件(qrscene_为前缀)参数前缀, 需要配合 qrscene_ 一起使用 */
-    /** 扫码登录 */
-    String QRSCENE_LOGIN = "login_";
-
-    /* 扫码登录状态 */
-    /** 已过期 */
-    String QR_LOGIN_EXPIRED = "expired";
-
-    /** 等待中 */
-    String QR_LOGIN_WAIT = "wait";
-
-    /**  */
-    String QR_LOGIN_OK = "ok";
-
-}
diff --git a/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/configuration/WeChatAppletProperties.java b/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/configuration/WeChatAppletProperties.java
deleted file mode 100644
index 1a95ed7d4a2d22ec155f43c242e23d7c4daeba69..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/configuration/WeChatAppletProperties.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package cn.bootx.platform.starter.wechat.configuration;
-
-import lombok.Getter;
-import lombok.Setter;
-import org.springframework.boot.context.properties.ConfigurationProperties;
-
-/**
- * 微信公众平台配置
- *
- * @author xxm
- * @since 2022/7/15
- */
-@Getter
-@Setter
-@ConfigurationProperties("bootx.starter.third.wechat-applet")
-public class WeChatAppletProperties {
-
-    /** AppKey */
-    private String appId = "?";
-
-    /** AppSecret */
-    private String appSecret = "?";
-
-}
diff --git a/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/configuration/WeChatConfiguration.java b/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/configuration/WeChatConfiguration.java
deleted file mode 100644
index d1bce120a72725626629c37b9178eaa29e9277ba..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/configuration/WeChatConfiguration.java
+++ /dev/null
@@ -1,64 +0,0 @@
-package cn.bootx.platform.starter.wechat.configuration;
-
-import cn.binarywang.wx.miniapp.api.WxMaService;
-import cn.binarywang.wx.miniapp.api.impl.WxMaServiceImpl;
-import cn.binarywang.wx.miniapp.config.WxMaConfig;
-import cn.binarywang.wx.miniapp.config.impl.WxMaDefaultConfigImpl;
-import lombok.RequiredArgsConstructor;
-import me.chanjar.weixin.mp.api.*;
-import me.chanjar.weixin.mp.api.impl.*;
-import me.chanjar.weixin.mp.config.WxMpConfigStorage;
-import me.chanjar.weixin.mp.config.impl.WxMpDefaultConfigImpl;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-
-/**
- * 微信配置
- *
- * @author xxm
- * @since 2022/7/15
- */
-@Configuration
-@RequiredArgsConstructor
-public class WeChatConfiguration {
-
-    private final WeChatProperties weChatProperties;
-
-    private final WeChatAppletProperties weChatAppletProperties;
-
-    /**
-     * 微信公众号APIService
-     */
-    @Bean
-    public WxMpService wxMpService(WxMpConfigStorage wxMpConfigStorage) {
-        WxMpService wxMpService = new WxMpServiceImpl();
-        wxMpService.setWxMpConfigStorage(wxMpConfigStorage);
-        return wxMpService;
-    }
-
-    /**
-     * 微信配置
-     */
-    @Bean
-    public WxMpConfigStorage wxMpConfigStorage() {
-        WxMpDefaultConfigImpl config = new WxMpDefaultConfigImpl();
-        config.setAppId(weChatProperties.getAppId()); // 设置微信公众号的appid
-        config.setSecret(weChatProperties.getAppSecret()); // 设置微信公众号的app corpSecret
-        config.setToken(weChatProperties.getToken()); // 设置微信公众号的Token
-        config.setAesKey(weChatProperties.getEncodingAesKey()); // 消息加解密密钥
-        return config;
-    }
-    @Bean
-    public WxMaService wxMaService(WxMaConfig wxMaConfigStorage) {
-        WxMaService wxMpService = new WxMaServiceImpl();
-        wxMpService.setWxMaConfig(wxMaConfigStorage);
-        return wxMpService;
-    }
-    @Bean
-    public WxMaConfig wxMaConfigStorage() {
-        WxMaDefaultConfigImpl config = new WxMaDefaultConfigImpl();
-        config.setAppid(weChatAppletProperties.getAppId()); // 设置微信公众号的appid
-        config.setSecret(weChatAppletProperties.getAppSecret()); // 设置微信公众号的app corpSecret
-        return config;
-    }
-}
diff --git a/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/configuration/WeChatMessageRouterConfiguration.java b/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/configuration/WeChatMessageRouterConfiguration.java
deleted file mode 100644
index 9799789b4a5d3c45dc2e00eb04b16ec45702327f..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/configuration/WeChatMessageRouterConfiguration.java
+++ /dev/null
@@ -1,48 +0,0 @@
-package cn.bootx.platform.starter.wechat.configuration;
-
-import cn.bootx.platform.starter.wechat.handler.WeChatMpMessageHandler;
-import cn.bootx.platform.starter.wechat.handler.WeChatMsgHandler;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import me.chanjar.weixin.mp.api.WxMpMessageRouter;
-import me.chanjar.weixin.mp.api.WxMpService;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-
-import java.util.List;
-
-/**
- * 微信信息路由配置
- *
- * @author xxm
- * @since 2022/7/16
- */
-@Slf4j
-@Configuration
-@RequiredArgsConstructor
-public class WeChatMessageRouterConfiguration {
-
-    private final List<WeChatMpMessageHandler> weChatMpMessageHandlers;
-
-    private final WeChatMsgHandler weChatMsgHandler;
-
-    @Bean
-    public WxMpMessageRouter wxMpMessageRouter(WxMpService wxMpService) {
-        WxMpMessageRouter router = new WxMpMessageRouter(wxMpService);
-        // 记录日志
-
-        // 消息路由绑定
-        for (WeChatMpMessageHandler weChatMpMessageHandler : weChatMpMessageHandlers) {
-            router.rule()
-                .async(false)
-                .msgType(weChatMpMessageHandler.getMsgType())
-                .event(weChatMpMessageHandler.getEvent())
-                .handler(weChatMpMessageHandler)
-                .end();
-        }
-        // 默认的 文本消息处理
-        router.rule().async(false).handler(weChatMsgHandler).end();
-        return router;
-    }
-
-}
diff --git a/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/configuration/WeChatProperties.java b/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/configuration/WeChatProperties.java
deleted file mode 100644
index b6246580f0c1152ebd13ffd58f97e1386668d94c..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/configuration/WeChatProperties.java
+++ /dev/null
@@ -1,30 +0,0 @@
-package cn.bootx.platform.starter.wechat.configuration;
-
-import lombok.Getter;
-import lombok.Setter;
-import org.springframework.boot.context.properties.ConfigurationProperties;
-
-/**
- * 微信公众平台配置
- *
- * @author xxm
- * @since 2022/7/15
- */
-@Getter
-@Setter
-@ConfigurationProperties("bootx.starter.third.wechat")
-public class WeChatProperties {
-
-    /** AppKey */
-    private String appId = "?";
-
-    /** AppSecret */
-    private String appSecret = "?";
-
-    /** token */
-    private String token = "?";
-
-    /** 消息加解密密钥 */
-    private String encodingAesKey = "?";
-
-}
diff --git a/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/controller/WeChatMediaController.java b/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/controller/WeChatMediaController.java
deleted file mode 100644
index bfd82f4eba48aa41e7383256f4b15c59796b1fe8..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/controller/WeChatMediaController.java
+++ /dev/null
@@ -1,55 +0,0 @@
-package cn.bootx.platform.starter.wechat.controller;
-
-import cn.bootx.platform.common.core.rest.PageResult;
-import cn.bootx.platform.common.core.rest.Res;
-import cn.bootx.platform.common.core.rest.ResResult;
-import cn.bootx.platform.common.core.rest.param.PageParam;
-import cn.bootx.platform.starter.wechat.core.media.service.WeChatMediaService;
-import cn.bootx.platform.starter.wechat.dto.media.WeChatMediaDto;
-import io.swagger.v3.oas.annotations.Operation;
-import io.swagger.v3.oas.annotations.tags.Tag;
-import lombok.RequiredArgsConstructor;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.web.multipart.MultipartFile;
-
-import static me.chanjar.weixin.mp.bean.material.WxMpMaterialNewsBatchGetResult.WxMaterialNewsBatchGetNewsItem;
-
-/**
- * @author xxm
- * @since 2022/8/9
- */
-@Tag(name = "微信素材管理")
-@RestController
-@RequestMapping("/wechat/media")
-@RequiredArgsConstructor
-public class WeChatMediaController {
-
-    private final WeChatMediaService weChatMediaService;
-
-    @Operation(summary = "非图文素材分页")
-    @GetMapping("/pageFile")
-    public ResResult<PageResult<WeChatMediaDto>> pageFile(PageParam pageParam, String type) {
-        return Res.ok(weChatMediaService.pageFile(pageParam, type));
-    }
-
-    @Operation(summary = "图文素材分页")
-    @GetMapping("/pageNews")
-    public ResResult<PageResult<WxMaterialNewsBatchGetNewsItem>> pageNews(PageParam pageParam) {
-        return Res.ok(weChatMediaService.pageNews(pageParam));
-    }
-
-    @Operation(summary = "删除素材")
-    @DeleteMapping("/deleteFile")
-    public ResResult<Void> deleteFile(String mediaId) {
-        weChatMediaService.deleteFile(mediaId);
-        return Res.ok();
-    }
-
-    @Operation(summary = "上传素材")
-    @PostMapping("/uploadFile")
-    public ResResult<Void> uploadFile(String mediaType, MultipartFile file) {
-        weChatMediaService.uploadFile(mediaType, file);
-        return Res.ok();
-    }
-
-}
diff --git a/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/controller/WeChatMenuController.java b/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/controller/WeChatMenuController.java
deleted file mode 100644
index 1c556776ebcb0d7c106e5c64f02eea05823cc331..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/controller/WeChatMenuController.java
+++ /dev/null
@@ -1,91 +0,0 @@
-package cn.bootx.platform.starter.wechat.controller;
-
-import cn.bootx.platform.common.core.rest.PageResult;
-import cn.bootx.platform.common.core.rest.Res;
-import cn.bootx.platform.common.core.rest.ResResult;
-import cn.bootx.platform.common.core.rest.param.PageParam;
-import cn.bootx.platform.starter.wechat.core.menu.service.WeChatMenuService;
-import cn.bootx.platform.starter.wechat.dto.menu.WeChatMenuDto;
-import cn.bootx.platform.starter.wechat.param.menu.WeChatMenuParam;
-import io.swagger.v3.oas.annotations.Operation;
-import io.swagger.v3.oas.annotations.tags.Tag;
-import lombok.RequiredArgsConstructor;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.List;
-
-/**
- * 微信菜单管理
- *
- * @author xxm
- * @since 2022/8/6
- */
-@Tag(name = "微信菜单管理")
-@RestController
-@RequestMapping("/wechat/menu")
-@RequiredArgsConstructor
-public class WeChatMenuController {
-
-    private final WeChatMenuService weChatMenuService;
-
-    @Operation(summary = "添加")
-    @PostMapping(value = "/add")
-    public ResResult<Void> add(@RequestBody WeChatMenuParam param) {
-        weChatMenuService.add(param);
-        return Res.ok();
-    }
-
-    @Operation(summary = "修改")
-    @PostMapping(value = "/update")
-    public ResResult<Void> update(@RequestBody WeChatMenuParam param) {
-        weChatMenuService.update(param);
-        return Res.ok();
-    }
-
-    @Operation(summary = "删除")
-    @DeleteMapping(value = "/delete")
-    public ResResult<Void> delete(Long id) {
-        weChatMenuService.delete(id);
-        return Res.ok();
-    }
-
-    @Operation(summary = "通过ID查询")
-    @GetMapping(value = "/findById")
-    public ResResult<WeChatMenuDto> findById(Long id) {
-        return Res.ok(weChatMenuService.findById(id));
-    }
-
-    @Operation(summary = "查询所有")
-    @GetMapping(value = "/findAll")
-    public ResResult<List<WeChatMenuDto>> findAll() {
-        return Res.ok(weChatMenuService.findAll());
-    }
-
-    @Operation(summary = "分页查询")
-    @GetMapping(value = "/page")
-    public ResResult<PageResult<WeChatMenuDto>> page(PageParam pageParam, WeChatMenuParam weChatMenuParam) {
-        return Res.ok(weChatMenuService.page(pageParam, weChatMenuParam));
-    }
-
-    @Operation(summary = "发布菜单")
-    @PostMapping("/publish")
-    public ResResult<Void> publish(Long id) {
-        weChatMenuService.publish(id);
-        return Res.ok();
-    }
-
-    @Operation(summary = "导入微信自定义菜单到系统中")
-    @PostMapping("/importMenu")
-    public ResResult<Void> importMenu() {
-        weChatMenuService.importMenu();
-        return Res.ok();
-    }
-
-    @Operation(summary = "清空微信自定义菜单")
-    @PostMapping("/clearMenu")
-    public ResResult<Void> clearMenu() {
-        weChatMenuService.clearMenu();
-        return Res.ok();
-    }
-
-}
diff --git a/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/controller/WeChatPortalController.java b/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/controller/WeChatPortalController.java
deleted file mode 100644
index 5028b4a09e629f3f44c7db945cefac300b5fb55d..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/controller/WeChatPortalController.java
+++ /dev/null
@@ -1,55 +0,0 @@
-package cn.bootx.platform.starter.wechat.controller;
-
-import cn.bootx.platform.common.core.annotation.IgnoreAuth;
-import cn.bootx.platform.starter.wechat.core.portal.service.WeChatPortalService;
-import io.swagger.v3.oas.annotations.tags.Tag;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.web.bind.annotation.*;
-
-/**
- * 微信工作台接入入口
- *
- * @author xxm
- * @since 2022/7/16
- */
-@IgnoreAuth
-@Slf4j
-@Tag(name = "微信接入入口")
-@RestController
-@RequestMapping("/wechat/portal")
-@RequiredArgsConstructor
-public class WeChatPortalController {
-
-    private final WeChatPortalService weChatPortalService;
-
-    /**
-     * 微信接入校验处理
-     * @param signature 微信签名
-     * @param timestamp 时间戳
-     * @param nonce 随机数
-     * @param echostr 随机字符串
-     */
-    @GetMapping(produces = "text/plain;charset=utf-8")
-    public String auth(String signature, String timestamp, String nonce, String echostr) {
-        return weChatPortalService.auth(signature, timestamp, nonce, echostr);
-    }
-
-    /**
-     * 微信消息处理
-     * @param requestBody 请求报文体
-     * @param signature 微信签名
-     * @param encType 加签方式
-     * @param msgSignature 微信签名
-     * @param timestamp 时间戳
-     * @param nonce 随机数
-     */
-    @PostMapping(produces = "application/xml; charset=UTF-8")
-    public String post(@RequestBody String requestBody, String signature, String timestamp, String nonce, String openid,
-            @RequestParam(name = "encrypt_type", required = false) String encType,
-            @RequestParam(name = "msg_signature", required = false) String msgSignature) {
-        return weChatPortalService.handleMessage(requestBody, signature, timestamp, nonce, openid, encType,
-                msgSignature);
-    }
-
-}
diff --git a/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/controller/WeChatTemplateController.java b/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/controller/WeChatTemplateController.java
deleted file mode 100644
index d618de59bd0326c18f68cc2aa99ffa06f2eb6a3a..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/controller/WeChatTemplateController.java
+++ /dev/null
@@ -1,62 +0,0 @@
-package cn.bootx.platform.starter.wechat.controller;
-
-import cn.bootx.platform.common.core.rest.PageResult;
-import cn.bootx.platform.common.core.rest.Res;
-import cn.bootx.platform.common.core.rest.ResResult;
-import cn.bootx.platform.common.core.rest.param.PageParam;
-import cn.bootx.platform.starter.auth.util.SecurityUtil;
-import cn.bootx.platform.starter.wechat.core.notice.service.WeChatTemplateService;
-import cn.bootx.platform.starter.wechat.dto.notice.WeChatTemplateDto;
-import cn.bootx.platform.starter.wechat.param.notice.WeChatTemplateParam;
-import io.swagger.v3.oas.annotations.Operation;
-import io.swagger.v3.oas.annotations.tags.Tag;
-import lombok.RequiredArgsConstructor;
-import org.springframework.web.bind.annotation.*;
-
-/**
- * @author xxm
- * @since 2022/7/16
- */
-@Tag(name = "微信模板消息")
-@RestController
-@RequestMapping("/wechat/template")
-@RequiredArgsConstructor
-public class WeChatTemplateController {
-
-    private final WeChatTemplateService weChatTemplateService;
-
-    @Operation(summary = "修改")
-    @PostMapping(value = "/update")
-    public ResResult<Void> update(@RequestBody WeChatTemplateParam param) {
-        weChatTemplateService.update(param);
-        return Res.ok();
-    }
-
-    @Operation(summary = "通过ID查询")
-    @GetMapping(value = "/findById")
-    public ResResult<WeChatTemplateDto> findById(Long id) {
-        return Res.ok(weChatTemplateService.findById(id));
-    }
-
-    @Operation(summary = "分页查询")
-    @GetMapping(value = "/page")
-    public ResResult<PageResult<WeChatTemplateDto>> page(PageParam pageParam, WeChatTemplateParam weChatTemplateParam) {
-        return Res.ok(weChatTemplateService.page(pageParam, weChatTemplateParam));
-    }
-
-    @Operation(summary = "编码是否被使用(不包含自己)")
-    @GetMapping("/existsByCodeNotId")
-    public ResResult<Boolean> existsByCode(String code, Long id) {
-        return Res.ok(weChatTemplateService.existsByCode(code, id));
-    }
-
-    @Operation(summary = "同步消息模板数据")
-    @PostMapping("/sync")
-    public ResResult<Void> sync() {
-        // 为了获取用户生效, 测试用
-        SecurityUtil.getUserId();
-        weChatTemplateService.sync();
-        return Res.ok();
-    }
-
-}
diff --git a/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/core/article/service/WeChatArticleService.java b/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/core/article/service/WeChatArticleService.java
deleted file mode 100644
index ade2a2b157e935ce6b3d0a19522dd8ab465cc617..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/core/article/service/WeChatArticleService.java
+++ /dev/null
@@ -1,43 +0,0 @@
-package cn.bootx.platform.starter.wechat.core.article.service;
-
-import cn.bootx.platform.common.core.rest.PageResult;
-import cn.bootx.platform.common.core.rest.param.PageParam;
-import cn.bootx.platform.starter.wechat.dto.article.WeChatArticleDto;
-import lombok.RequiredArgsConstructor;
-import lombok.SneakyThrows;
-import lombok.extern.slf4j.Slf4j;
-import lombok.val;
-import me.chanjar.weixin.mp.api.WxMpService;
-import org.springframework.stereotype.Service;
-
-import java.util.stream.Collectors;
-
-/**
- * @author xxm
- * @since 2022/8/11
- */
-@Slf4j
-@Service
-@RequiredArgsConstructor
-public class WeChatArticleService {
-
-    private final WxMpService wxMpService;
-
-    /**
-     * 查询图文
-     * @return
-     */
-    @SneakyThrows
-    public PageResult<WeChatArticleDto> page(PageParam pageParam) {
-        val freePublishService = wxMpService.getFreePublishService();
-        val result = freePublishService.getPublicationRecords(pageParam.start(), pageParam.getSize());
-        val items = result.getItems().stream().map(WeChatArticleDto::init).collect(Collectors.toList());
-        PageResult<WeChatArticleDto> pageResult = new PageResult<>();
-        pageResult.setCurrent(pageParam.getCurrent())
-            .setRecords(items)
-            .setSize(pageParam.getSize())
-            .setTotal(result.getTotalCount());
-        return pageResult;
-    }
-
-}
diff --git a/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/core/login/service/WeChatQrLoginService.java b/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/core/login/service/WeChatQrLoginService.java
deleted file mode 100644
index 19af0f2747a88d793c964b87e3c4c65d9429e420..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/core/login/service/WeChatQrLoginService.java
+++ /dev/null
@@ -1,99 +0,0 @@
-package cn.bootx.platform.starter.wechat.core.login.service;
-
-import cn.bootx.platform.starter.auth.exception.LoginFailureException;
-import cn.bootx.platform.common.redis.RedisClient;
-import cn.bootx.platform.starter.wechat.dto.login.WeChatLoginQrCode;
-import cn.hutool.core.util.IdUtil;
-import cn.hutool.core.util.StrUtil;
-import lombok.RequiredArgsConstructor;
-import lombok.SneakyThrows;
-import lombok.extern.slf4j.Slf4j;
-import me.chanjar.weixin.mp.api.WxMpQrcodeService;
-import me.chanjar.weixin.mp.api.WxMpService;
-import me.chanjar.weixin.mp.bean.result.WxMpQrCodeTicket;
-import org.springframework.stereotype.Service;
-
-import java.util.Objects;
-
-import static cn.bootx.platform.starter.wechat.code.WeChatCode.*;
-
-/**
- * 扫码事件
- *
- * @author xxm
- * @since 2022/8/4
- */
-@Slf4j
-@Service
-@RequiredArgsConstructor
-public class WeChatQrLoginService {
-
-    private final RedisClient redisClient;
-
-    private final WxMpService wxMpService;
-
-    private final String PREFIX_KEY = "third:wechat:login:qr:";
-
-    /**
-     * 申请待扫描的二维码
-     */
-    @SneakyThrows
-    public WeChatLoginQrCode applyQrCode() {
-        WxMpQrcodeService qrcodeService = wxMpService.getQrcodeService();
-        long timeout = 5 * 60 * 1000;
-        String qrCodeKey = IdUtil.getSnowflakeNextIdStr();
-        // 创建微信临时Key, 需要有指定的前缀
-        String wxKey = QRSCENE_LOGIN + qrCodeKey;
-        WxMpQrCodeTicket wxMpQrCodeTicket = qrcodeService.qrCodeCreateTmpTicket(wxKey, (int) timeout);
-        String url = wxMpQrCodeTicket.getUrl();
-        redisClient.setWithTimeout(PREFIX_KEY + qrCodeKey, "", timeout);
-        return new WeChatLoginQrCode(qrCodeKey, url);
-    }
-
-    /**
-     * 查询二维码状态 等待扫码/登录成功/过期
-     */
-    public String getStatus(String key) {
-        String openId = redisClient.get(PREFIX_KEY + key);
-        // 超时
-        if (Objects.isNull(openId)) {
-            return QR_LOGIN_EXPIRED;
-        }
-        // 等待
-        else if (StrUtil.isBlank(openId)) {
-            return QR_LOGIN_WAIT;
-        }
-        // 登录成功
-        else {
-            return QR_LOGIN_OK;
-        }
-    }
-
-    /**
-     * 设置微信openId
-     */
-    public void setOpenId(String key, String openId) {
-        if (redisClient.exists(PREFIX_KEY + key)) {
-            redisClient.set(PREFIX_KEY + key, openId);
-        }
-    }
-
-    /**
-     * 获取 openId
-     */
-    public String getOpenId(String key) {
-        String openId = redisClient.get(PREFIX_KEY + key);
-        if (StrUtil.isBlank(openId)) {
-            throw new LoginFailureException("数据已过期或不存在");
-        }
-        return openId;
-    }
-
-    /**
-     * 清除扫码信息
-     */
-    public void clear(String key) {
-        redisClient.deleteKey(PREFIX_KEY + key);
-    }
-
-}
diff --git a/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/core/media/service/WeChatMediaService.java b/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/core/media/service/WeChatMediaService.java
deleted file mode 100644
index bfbb2095e390eeb11309ff162b2a07ee523b59f3..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/core/media/service/WeChatMediaService.java
+++ /dev/null
@@ -1,103 +0,0 @@
-package cn.bootx.platform.starter.wechat.core.media.service;
-
-import cn.bootx.platform.common.core.rest.PageResult;
-import cn.bootx.platform.common.core.rest.param.PageParam;
-import cn.bootx.platform.common.core.util.FileUtil;
-import cn.bootx.platform.starter.wechat.dto.media.WeChatMediaDto;
-import cn.hutool.core.io.FileTypeUtil;
-import cn.hutool.core.io.IoUtil;
-import cn.hutool.core.io.file.FileNameUtil;
-import lombok.RequiredArgsConstructor;
-import lombok.SneakyThrows;
-import lombok.extern.slf4j.Slf4j;
-import lombok.val;
-import me.chanjar.weixin.common.api.WxConsts;
-import me.chanjar.weixin.mp.api.WxMpMaterialService;
-import me.chanjar.weixin.mp.api.WxMpService;
-import me.chanjar.weixin.mp.bean.material.WxMpMaterial;
-import me.chanjar.weixin.mp.bean.material.WxMpMaterialNewsBatchGetResult.WxMaterialNewsBatchGetNewsItem;
-import org.springframework.stereotype.Service;
-import org.springframework.web.multipart.MultipartFile;
-
-import java.io.ByteArrayInputStream;
-import java.io.File;
-import java.util.Objects;
-import java.util.stream.Collectors;
-
-/**
- * 素材管理
- *
- * @author xxm
- * @since 2022/8/9
- */
-@Slf4j
-@Service
-@RequiredArgsConstructor
-public class WeChatMediaService {
-
-    private final WxMpService wxMpService;
-
-    /**
-     * 分页查询
-     */
-    @SneakyThrows
-    public PageResult<WeChatMediaDto> pageFile(PageParam pageParam, String type) {
-        WxMpMaterialService materialService = wxMpService.getMaterialService();
-        val result = materialService.materialFileBatchGet(type, pageParam.start(), pageParam.getSize());
-        // val result = new WxMpMaterialFileBatchGetResult();
-        val items = result.getItems().stream().map(WeChatMediaDto::init).collect(Collectors.toList());
-        PageResult<WeChatMediaDto> pageResult = new PageResult<>();
-        pageResult.setCurrent(pageParam.getCurrent())
-            .setRecords(items)
-            .setSize(pageParam.getSize())
-            .setTotal(result.getTotalCount());
-        return pageResult;
-    }
-
-    /**
-     * 分页查询(图文)
-     */
-    @SneakyThrows
-    public PageResult<WxMaterialNewsBatchGetNewsItem> pageNews(PageParam pageParam) {
-        WxMpMaterialService materialService = wxMpService.getMaterialService();
-        val result = materialService.materialNewsBatchGet(pageParam.start(), pageParam.getSize());
-        val items = result.getItems();
-        PageResult<WxMaterialNewsBatchGetNewsItem> pageResult = new PageResult<>();
-        pageResult.setCurrent(pageParam.getCurrent())
-            .setRecords(items)
-            .setSize(pageParam.getSize())
-            .setTotal(result.getTotalCount());
-        return pageResult;
-    }
-
-    /**
-     * 删除素材
-     */
-    @SneakyThrows
-    public void deleteFile(String mediaId) {
-        WxMpMaterialService materialService = wxMpService.getMaterialService();
-        materialService.materialDelete(mediaId);
-    }
-
-    /**
-     * 上传 非图文素材
-     * @see WxConsts.MediaFileType
-     */
-    @SneakyThrows
-    public void uploadFile(String mediaType, MultipartFile multipartFile) {
-        WxMpMaterialService materialService = wxMpService.getMaterialService();
-        byte[] bytes = IoUtil.readBytes(multipartFile.getInputStream());
-        String originalFilename = multipartFile.getOriginalFilename();
-        String fileName = FileNameUtil.mainName(originalFilename);
-        String fileType = FileTypeUtil.getType(new ByteArrayInputStream(bytes), originalFilename);
-        File tempFile = FileUtil.createTempFile(new ByteArrayInputStream(bytes), fileName, fileType);
-        WxMpMaterial material = new WxMpMaterial();
-        material.setFile(tempFile);
-        if (Objects.equals(mediaType, WxConsts.MediaFileType.VIDEO)) {
-            material.setVideoTitle(fileName);
-            material.setVideoIntroduction(fileName);
-        }
-        materialService.materialFileUpload(mediaType, material);
-    }
-
-}
diff --git a/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/core/menu/convert/WeChatMenuConvert.java b/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/core/menu/convert/WeChatMenuConvert.java
deleted file mode 100644
index 0b27d7196b0495936952f0e2a77240f42c45699a..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/core/menu/convert/WeChatMenuConvert.java
+++ /dev/null
@@ -1,30 +0,0 @@
-package cn.bootx.platform.starter.wechat.core.menu.convert;
-
-import cn.bootx.platform.starter.wechat.param.menu.WeChatMenuParam;
-import cn.bootx.platform.starter.wechat.core.menu.domin.WeChatMenuInfo;
-import cn.bootx.platform.starter.wechat.core.menu.entity.WeChatMenu;
-import cn.bootx.platform.starter.wechat.dto.menu.WeChatMenuDto;
-import me.chanjar.weixin.common.bean.menu.WxMenu;
-import org.mapstruct.Mapper;
-import org.mapstruct.factory.Mappers;
-
-/**
- * 微信自定义菜单
- *
- * @author xxm
- * @since 2022-08-08
- */
-@Mapper
-public interface WeChatMenuConvert {
-
-    WeChatMenuConvert CONVERT = Mappers.getMapper(WeChatMenuConvert.class);
-
-    WeChatMenu convert(WeChatMenuParam in);
-
-    WeChatMenuDto convert(WeChatMenu in);
-
-    WeChatMenuInfo convert(WxMenu in);
-
-    WxMenu convert(WeChatMenuInfo in);
-
-}
diff --git a/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/core/menu/dao/WeChatMenuManager.java b/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/core/menu/dao/WeChatMenuManager.java
deleted file mode 100644
index d60b693f82825f364a47f20a0023b9c7d53bcd7d..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/core/menu/dao/WeChatMenuManager.java
+++ /dev/null
@@ -1,42 +0,0 @@
-package cn.bootx.platform.starter.wechat.core.menu.dao;
-
-import cn.bootx.platform.starter.wechat.core.menu.entity.WeChatMenu;
-import cn.bootx.platform.starter.wechat.param.menu.WeChatMenuParam;
-import cn.bootx.platform.common.core.rest.param.PageParam;
-import cn.bootx.platform.common.mybatisplus.base.MpIdEntity;
-import cn.bootx.platform.common.mybatisplus.impl.BaseManager;
-import cn.bootx.platform.common.mybatisplus.util.MpUtil;
-import cn.hutool.core.util.StrUtil;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import lombok.RequiredArgsConstructor;
-import org.springframework.stereotype.Repository;
-
-/**
- * 微信自定义菜单
- *
- * @author xxm
- * @since 2022-08-08
- */
-@Repository
-@RequiredArgsConstructor
-public class WeChatMenuManager extends BaseManager<WeChatMenuMapper, WeChatMenu> {
-
-    /**
-     * 分页
-     */
-    public Page<WeChatMenu> page(PageParam pageParam, WeChatMenuParam param) {
-        Page<WeChatMenu> mpPage = MpUtil.getMpPage(pageParam, WeChatMenu.class);
-        return lambdaQuery().select(this.getEntityClass(), MpUtil::excludeBigField)
-            .like(StrUtil.isNotBlank(param.getName()), WeChatMenu::getName, param.getName())
-            .orderByDesc(MpIdEntity::getId)
-            .page(mpPage);
-    }
-
-    /**
-     * 清除其他发布状态
-     */
-    public void clearPublish() {
-        lambdaUpdate().eq(WeChatMenu::isPublish, true).set(WeChatMenu::isPublish, false).update();
-    }
-
-}
diff --git a/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/core/menu/dao/WeChatMenuMapper.java b/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/core/menu/dao/WeChatMenuMapper.java
deleted file mode 100644
index 6934ab0e6cf0c0da78b5df297668e239297e0a8b..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/core/menu/dao/WeChatMenuMapper.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package cn.bootx.platform.starter.wechat.core.menu.dao;
-
-import cn.bootx.platform.starter.wechat.core.menu.entity.WeChatMenu;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import org.apache.ibatis.annotations.Mapper;
-
-/**
- * 微信自定义菜单
- *
- * @author xxm
- * @since 2022-08-08
- */
-@Mapper
-public interface WeChatMenuMapper extends BaseMapper<WeChatMenu> {
-
-}
diff --git a/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/core/menu/domin/WeChatMenuInfo.java b/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/core/menu/domin/WeChatMenuInfo.java
deleted file mode 100644
index aeb482c91cb1885f5f4518d82c7c9cc891727ec4..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/core/menu/domin/WeChatMenuInfo.java
+++ /dev/null
@@ -1,164 +0,0 @@
-package cn.bootx.platform.starter.wechat.core.menu.domin;
-
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-import lombok.experimental.Accessors;
-import me.chanjar.weixin.common.bean.menu.WxMenu;
-import me.chanjar.weixin.common.bean.menu.WxMenuButton;
-import me.chanjar.weixin.mp.bean.menu.WxMpMenu;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.stream.Collectors;
-
-/**
- * 微信自定义菜单
- *
- * @author xxm
- * @since 2022/8/8
- */
-@Data
-@Accessors(chain = true)
-@Schema(title = "微信自定义菜单")
-public class WeChatMenuInfo {
-
-    private List<Button> buttons = new ArrayList<>();
-
-    @Data
-    @Accessors(chain = true)
-    @Schema(title = "菜单按钮")
-    public static class Button {
-
-        /**
-         * <pre>
-         * 菜单的响应动作类型.
-         * view表示网页类型,
-         * click表示点击类型,
-         * miniprogram表示小程序类型
-         * </pre>
-         */
-        private String type;
-
-        /**
-         * 菜单标题,不超过16个字节,子菜单不超过60个字节.
-         */
-        private String name;
-
-        /**
-         * <pre>
-         * 菜单KEY值,用于消息接口推送,不超过128字节.
-         * click等点击类型必须
-         * </pre>
-         */
-        private String key;
-
-        /**
-         * <pre>
-         * 网页链接.
-         * 用户点击菜单可打开链接,不超过1024字节。type为miniprogram时,不支持小程序的老版本客户端将打开本url。
-         * view、miniprogram类型必须
-         * </pre>
-         */
-        private String url;
-
-        /**
-         * <pre>
-         * 调用新增永久素材接口返回的合法media_id.
-         * media_id类型和view_limited类型必须
-         * </pre>
-         */
-        private String mediaId;
-
-        /**
-         * <pre>
-         * 调用发布图文接口获得的article_id.
-         * article_id类型和article_view_limited类型必须
-         * </pre>
-         */
-        private String articleId;
-
-        /**
-         * <pre>
-         * 小程序的appid.
-         * miniprogram类型必须
-         * </pre>
-         */
-        private String appId;
-
-        /**
-         * <pre>
-         * 小程序的页面路径.
-         * miniprogram类型必须
-         * </pre>
-         */
-        private String pagePath;
-
-        private List<Button> subButtons = new ArrayList<>();
-
-    }
-
-    /**
-     * 转换成wxJava的对象
-     */
-    public WxMenu toWxMenu() {
-        WxMenu wxMenu = new WxMenu();
-        List<WxMenuButton> collect = this.getButtons().stream().map(this::toWxButton).collect(Collectors.toList());
-        wxMenu.setButtons(collect);
-        return wxMenu;
-    }
-
-    private WxMenuButton toWxButton(Button button) {
-        List<WxMenuButton> subButtons = button.getSubButtons()
-            .stream()
-            .map(this::toWxButton)
-            .collect(Collectors.toList());
-        WxMenuButton wxMenuButton = new WxMenuButton();
-        wxMenuButton.setType(button.getType());
-        wxMenuButton.setName(button.getName());
-        wxMenuButton.setKey(button.getKey());
-        wxMenuButton.setUrl(button.getUrl());
-        wxMenuButton.setMediaId(button.getMediaId());
-        wxMenuButton.setArticleId(button.getArticleId());
-        wxMenuButton.setAppId(button.getAppId());
-        wxMenuButton.setPagePath(button.getPagePath());
-        wxMenuButton.setSubButtons(subButtons);
-        return wxMenuButton;
-    }
-
-    /**
-     * 从WxJava对象转成
-     */
-    public static WeChatMenuInfo init(WxMpMenu wxMpMenu) {
-        WeChatMenuInfo weChatMenuInfo = new WeChatMenuInfo();
-        List<Button> buttons = wxMpMenu.getMenu()
-            .getButtons()
-            .stream()
-            .map(WeChatMenuInfo::initButton)
-            .collect(Collectors.toList());
-
-        weChatMenuInfo.setButtons(buttons);
-        return weChatMenuInfo;
-    }
-
-    /**
-     * 菜单按钮转换
-     */
-    private static Button initButton(WxMenuButton wxMenuButton) {
-        List<Button> subButtons = wxMenuButton.getSubButtons()
-            .stream()
-            .map(WeChatMenuInfo::initButton)
-            .collect(Collectors.toList());
-        Button button = new Button();
-        button.setType(wxMenuButton.getType());
-        button.setName(wxMenuButton.getName());
-        button.setKey(wxMenuButton.getKey());
-        button.setUrl(wxMenuButton.getUrl());
-        button.setMediaId(wxMenuButton.getMediaId());
-        button.setArticleId(wxMenuButton.getArticleId());
-        button.setAppId(wxMenuButton.getAppId());
-        button.setPagePath(wxMenuButton.getPagePath());
-        button.setSubButtons(subButtons);
-        return button;
-    }
-
-}
diff --git a/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/core/menu/entity/WeChatMenu.java b/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/core/menu/entity/WeChatMenu.java
deleted file mode 100644
index b983003c860d91c0bfa0533a14d55ac7f33d5f51..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/core/menu/entity/WeChatMenu.java
+++ /dev/null
@@ -1,54 +0,0 @@
-package cn.bootx.platform.starter.wechat.core.menu.entity;
-
-import cn.bootx.platform.starter.wechat.core.menu.convert.WeChatMenuConvert;
-import cn.bootx.platform.starter.wechat.param.menu.WeChatMenuParam;
-import cn.bootx.platform.common.core.annotation.BigField;
-import cn.bootx.platform.common.core.function.EntityBaseFunction;
-import cn.bootx.platform.common.mybatisplus.base.MpBaseEntity;
-import cn.bootx.platform.starter.wechat.core.menu.domin.WeChatMenuInfo;
-import cn.bootx.platform.starter.wechat.dto.menu.WeChatMenuDto;
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableName;
-import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.experimental.Accessors;
-
-/**
- * 微信自定义菜单
- *
- * @author xxm
- * @since 2022-08-08
- */
-@EqualsAndHashCode(callSuper = true)
-@Data
-@Accessors(chain = true)
-@TableName(value = "starter_wx_menu", autoResultMap = true)
-public class WeChatMenu extends MpBaseEntity implements EntityBaseFunction<WeChatMenuDto> {
-
-    /** 名称 */
-    private String name;
-
-    /** 菜单信息 */
-    @BigField
-    @TableField(typeHandler = JacksonTypeHandler.class)
-    private WeChatMenuInfo menuInfo;
-
-    /** 是否发布 */
-    private boolean publish;
-
-    /** 备注 */
-    private String remark;
-
-    /** 创建对象 */
-    public static WeChatMenu init(WeChatMenuParam in) {
-        return WeChatMenuConvert.CONVERT.convert(in);
-    }
-
-    /** 转换成dto */
-    @Override
-    public WeChatMenuDto toDto() {
-        return WeChatMenuConvert.CONVERT.convert(this);
-    }
-
-}
diff --git a/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/core/menu/service/WeChatMenuService.java b/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/core/menu/service/WeChatMenuService.java
deleted file mode 100644
index b1b5ace7382cd528e7bc86b2c9cbebbbcd7efa86..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/core/menu/service/WeChatMenuService.java
+++ /dev/null
@@ -1,130 +0,0 @@
-package cn.bootx.platform.starter.wechat.core.menu.service;
-
-import cn.bootx.platform.starter.wechat.param.menu.WeChatMenuParam;
-import cn.bootx.platform.common.core.exception.DataNotExistException;
-import cn.bootx.platform.common.core.rest.PageResult;
-import cn.bootx.platform.common.core.rest.param.PageParam;
-import cn.bootx.platform.common.core.util.ResultConvertUtil;
-import cn.bootx.platform.common.mybatisplus.util.MpUtil;
-import cn.bootx.platform.starter.wechat.core.menu.dao.WeChatMenuManager;
-import cn.bootx.platform.starter.wechat.core.menu.domin.WeChatMenuInfo;
-import cn.bootx.platform.starter.wechat.core.menu.entity.WeChatMenu;
-import cn.bootx.platform.starter.wechat.dto.menu.WeChatMenuDto;
-import cn.hutool.core.bean.BeanUtil;
-import cn.hutool.core.bean.copier.CopyOptions;
-import cn.hutool.core.date.DateUtil;
-import lombok.RequiredArgsConstructor;
-import lombok.SneakyThrows;
-import lombok.extern.slf4j.Slf4j;
-import me.chanjar.weixin.common.bean.menu.WxMenu;
-import me.chanjar.weixin.mp.api.WxMpMenuService;
-import me.chanjar.weixin.mp.api.WxMpService;
-import me.chanjar.weixin.mp.bean.menu.WxMpMenu;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-
-import java.util.List;
-
-/**
- * 微信菜单
- *
- * @author xxm
- * @since 2022/8/6
- */
-@Slf4j
-@Service
-@RequiredArgsConstructor
-public class WeChatMenuService {
-
-    private final WxMpService wxMpService;
-
-    private final WeChatMenuManager weChatMenuManager;
-
-    /**
-     * 添加
-     */
-    public void add(WeChatMenuParam param) {
-        WeChatMenu weChatMenu = WeChatMenu.init(param);
-        weChatMenuManager.save(weChatMenu);
-    }
-
-    /**
-     * 修改
-     */
-    public void update(WeChatMenuParam param) {
-        WeChatMenu weChatMenu = weChatMenuManager.findById(param.getId()).orElseThrow(DataNotExistException::new);
-
-        BeanUtil.copyProperties(param, weChatMenu, CopyOptions.create().ignoreNullValue());
-        weChatMenuManager.updateById(weChatMenu);
-    }
-
-    /**
-     * 分页
-     */
-    public PageResult<WeChatMenuDto> page(PageParam pageParam, WeChatMenuParam weChatMenuParam) {
-        return MpUtil.convert2DtoPageResult(weChatMenuManager.page(pageParam, weChatMenuParam));
-    }
-
-    /**
-     * 获取单条
-     */
-    public WeChatMenuDto findById(Long id) {
-        return weChatMenuManager.findById(id).map(WeChatMenu::toDto).orElseThrow(DataNotExistException::new);
-    }
-
-    /**
-     * 获取全部
-     */
-    public List<WeChatMenuDto> findAll() {
-        return ResultConvertUtil.dtoListConvert(weChatMenuManager.findAll());
-    }
-
-    /**
-     * 删除
-     */
-    public void delete(Long id) {
-        weChatMenuManager.deleteById(id);
-    }
-
-    /**
-     * 发布菜单
-     */
-    @SneakyThrows
-    @Transactional(rollbackFor = Exception.class)
-    public void publish(Long id) {
-        WeChatMenu weChatMenu = weChatMenuManager.findById(id).orElseThrow(() -> new DataNotExistException("菜单信息不存在"));
-        WxMenu wxMenu = weChatMenu.getMenuInfo().toWxMenu();
-        WxMpMenuService menuService = wxMpService.getMenuService();
-        menuService.menuCreate(wxMenu);
-        weChatMenu.setPublish(true);
-        weChatMenuManager.clearPublish();
-        weChatMenuManager.updateById(weChatMenu);
-    }
-
-    /**
-     * 导入当前微信菜单
-     */
-    @Transactional(rollbackFor = Exception.class)
-    @SneakyThrows
-    public void importMenu() {
-        WxMpMenuService menuService = wxMpService.getMenuService();
-        WxMpMenu wxMpMenu = menuService.menuGet();
-        WeChatMenuInfo weChatMenuInfo = WeChatMenuInfo.init(wxMpMenu);
-        WeChatMenu weChatMenu = new WeChatMenu().setName("微信自定义菜单")
-            .setRemark("导入时间" + DateUtil.now())
-            .setPublish(true)
-            .setMenuInfo(weChatMenuInfo);
-        weChatMenuManager.clearPublish();
-        weChatMenuManager.save(weChatMenu);
-    }
-
-    /**
-     * 清空菜单
-     */
-    @SneakyThrows
-    public void clearMenu() {
-        WxMpMenuService menuService = wxMpService.getMenuService();
-        menuService.menuDelete();
-    }
-
-}
diff --git a/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/core/notice/convert/WeChatTemplateConvert.java b/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/core/notice/convert/WeChatTemplateConvert.java
deleted file mode 100644
index 1b2ab3a1bb6223dc26162e0979d902d10e901d58..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/core/notice/convert/WeChatTemplateConvert.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package cn.bootx.platform.starter.wechat.core.notice.convert;
-
-import cn.bootx.platform.starter.wechat.param.notice.WeChatTemplateParam;
-import cn.bootx.platform.starter.wechat.core.notice.entity.WeChatTemplate;
-import cn.bootx.platform.starter.wechat.dto.notice.WeChatTemplateDto;
-import me.chanjar.weixin.mp.bean.template.WxMpTemplate;
-import org.mapstruct.Mapper;
-import org.mapstruct.Mapping;
-import org.mapstruct.factory.Mappers;
-
-/**
- * @author xxm
- * @since 2022/7/17
- */
-@Mapper
-public interface WeChatTemplateConvert {
-
-    WeChatTemplateConvert CONVERT = Mappers.getMapper(WeChatTemplateConvert.class);
-
-    @Mapping(source = "title", target = "name")
-    WeChatTemplate convert(WxMpTemplate in);
-
-    WeChatTemplate convert(WeChatTemplateParam in);
-
-    WeChatTemplateDto convert(WeChatTemplate in);
-
-}
diff --git a/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/core/notice/dao/WeChatTemplateManager.java b/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/core/notice/dao/WeChatTemplateManager.java
deleted file mode 100644
index 888a9b30183770502c3dff09cec7656c5b029749..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/core/notice/dao/WeChatTemplateManager.java
+++ /dev/null
@@ -1,55 +0,0 @@
-package cn.bootx.platform.starter.wechat.core.notice.dao;
-
-import cn.bootx.platform.starter.wechat.core.notice.entity.WeChatTemplate;
-import cn.bootx.platform.starter.wechat.param.notice.WeChatTemplateParam;
-import cn.bootx.platform.common.core.rest.param.PageParam;
-import cn.bootx.platform.common.mybatisplus.base.MpIdEntity;
-import cn.bootx.platform.common.mybatisplus.impl.BaseManager;
-import cn.bootx.platform.common.mybatisplus.util.MpUtil;
-import cn.hutool.core.util.StrUtil;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Repository;
-
-import java.util.Optional;
-
-/**
- * @author xxm
- * @since 2022/7/17
- */
-@Slf4j
-@Repository
-@RequiredArgsConstructor
-public class WeChatTemplateManager extends BaseManager<WeChatTemplateMapper, WeChatTemplate> {
-
-    public Page<WeChatTemplate> page(PageParam pageParam, WeChatTemplateParam param) {
-        Page<WeChatTemplate> mpPage = MpUtil.getMpPage(pageParam, WeChatTemplate.class);
-        return this.lambdaQuery()
-            .select(WeChatTemplate.class, MpUtil::excludeBigField)
-            .like(StrUtil.isNotBlank(param.getTemplateId()), WeChatTemplate::getTemplateId, param.getTemplateId())
-            .like(StrUtil.isNotBlank(param.getName()), WeChatTemplate::getName, param.getName())
-            .like(StrUtil.isNotBlank(param.getCode()), WeChatTemplate::getCode, param.getCode())
-            .orderByDesc(MpIdEntity::getId)
-            .page(mpPage);
-    }
-
-    public boolean existsByCode(String code, Long id) {
-        return existedByField(WeChatTemplate::getCode, code, id);
-    }
-
-    /**
-     * 根据code查询
-     */
-    public Optional<WeChatTemplate> findByCode(String code) {
-        return this.findByField(WeChatTemplate::getCode, code);
-    }
-
-    /**
-     * 根据code查询
-     */
-    public Optional<WeChatTemplate> findTemplateIdByCode(String code) {
-        return lambdaQuery().select(WeChatTemplate::getTemplateId).eq(WeChatTemplate::getCode, code).oneOpt();
-    }
-
-}
diff --git a/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/core/notice/dao/WeChatTemplateMapper.java b/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/core/notice/dao/WeChatTemplateMapper.java
deleted file mode 100644
index 6cafda229f6617f963aabd81eea91bb22ef67046..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/core/notice/dao/WeChatTemplateMapper.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package cn.bootx.platform.starter.wechat.core.notice.dao;
-
-import cn.bootx.platform.starter.wechat.core.notice.entity.WeChatTemplate;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import org.apache.ibatis.annotations.Mapper;
-
-/**
- * @author xxm
- * @since 2022/7/17
- */
-@Mapper
-public interface WeChatTemplateMapper extends BaseMapper<WeChatTemplate> {
-
-}
diff --git a/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/core/notice/entity/WeChatTemplate.java b/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/core/notice/entity/WeChatTemplate.java
deleted file mode 100644
index 54b835f8adab5ace893b1ec6e98a6d5d2c678d25..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/core/notice/entity/WeChatTemplate.java
+++ /dev/null
@@ -1,76 +0,0 @@
-package cn.bootx.platform.starter.wechat.core.notice.entity;
-
-import cn.bootx.platform.starter.wechat.core.notice.convert.WeChatTemplateConvert;
-import cn.bootx.platform.starter.wechat.param.notice.WeChatTemplateParam;
-import cn.bootx.platform.common.core.annotation.BigField;
-import cn.bootx.platform.common.core.function.EntityBaseFunction;
-import cn.bootx.platform.common.mybatisplus.base.MpDelEntity;
-import com.baomidou.mybatisplus.annotation.TableName;
-import cn.bootx.platform.starter.wechat.dto.notice.WeChatTemplateDto;
-
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.experimental.Accessors;
-import lombok.experimental.FieldNameConstants;
-import me.chanjar.weixin.mp.bean.template.WxMpTemplate;
-
-/**
- * 微信消息模板
- *
- * @author xxm
- * @since 2022-08-03
- */
-@FieldNameConstants
-@EqualsAndHashCode(callSuper = true)
-@Data
-@TableName("starter_wx_template")
-@Accessors(chain = true)
-public class WeChatTemplate extends MpDelEntity implements EntityBaseFunction<WeChatTemplateDto> {
-
-    /** 名称 */
-    private String name;
-
-    /** 编码 */
-    private String code;
-
-    /** 是否启用 */
-    private Boolean enable;
-
-    /** 模板ID */
-    private String templateId;
-
-    /** 模板标题 */
-    private String title;
-
-    /** 模板所属行业的一级行业 */
-    private String primaryIndustry;
-
-    /** 模板所属行业的二级行业 */
-    private String deputyIndustry;
-
-    /** 模板内容 */
-    @BigField
-    private String content;
-
-    /** 示例 */
-    @BigField
-    private String example;
-
-    /** 创建对象 */
-    public static WeChatTemplate init(WeChatTemplateParam in) {
-        return WeChatTemplateConvert.CONVERT.convert(in);
-    }
-
-    public static WeChatTemplate init(WxMpTemplate wxMpTemplate) {
-        WeChatTemplate template = WeChatTemplateConvert.CONVERT.convert(wxMpTemplate);
-        template.setEnable(true);
-        return template;
-    }
-
-    /** 转换成dto */
-    @Override
-    public WeChatTemplateDto toDto() {
-        return WeChatTemplateConvert.CONVERT.convert(this);
-    }
-
-}
diff --git a/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/core/notice/service/WeChatTemplateService.java b/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/core/notice/service/WeChatTemplateService.java
deleted file mode 100644
index b91c750740b0cd725f8b2b8f971e66819b0d4878..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/core/notice/service/WeChatTemplateService.java
+++ /dev/null
@@ -1,125 +0,0 @@
-package cn.bootx.platform.starter.wechat.core.notice.service;
-
-import cn.bootx.platform.common.websocket.entity.WsRes;
-import cn.bootx.platform.common.websocket.service.UserWsNoticeService;
-import cn.bootx.platform.starter.wechat.param.notice.WeChatTemplateParam;
-import cn.bootx.platform.common.core.exception.DataNotExistException;
-import cn.bootx.platform.common.core.rest.PageResult;
-import cn.bootx.platform.common.core.rest.param.PageParam;
-import cn.bootx.platform.common.core.util.ResultConvertUtil;
-import cn.bootx.platform.common.mybatisplus.base.MpIdEntity;
-import cn.bootx.platform.common.mybatisplus.util.MpUtil;
-import cn.bootx.platform.starter.auth.util.SecurityUtil;
-import cn.bootx.platform.starter.wechat.core.notice.dao.WeChatTemplateManager;
-import cn.bootx.platform.starter.wechat.core.notice.entity.WeChatTemplate;
-import cn.bootx.platform.starter.wechat.dto.notice.WeChatTemplateDto;
-import cn.hutool.core.bean.BeanUtil;
-import cn.hutool.core.bean.copier.CopyOptions;
-import cn.hutool.core.util.StrUtil;
-import lombok.RequiredArgsConstructor;
-import lombok.SneakyThrows;
-import lombok.extern.slf4j.Slf4j;
-import me.chanjar.weixin.mp.api.WxMpService;
-import me.chanjar.weixin.mp.api.WxMpTemplateMsgService;
-import me.chanjar.weixin.mp.bean.template.WxMpTemplate;
-import org.springframework.scheduling.annotation.Async;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-
-import java.util.List;
-import java.util.stream.Collectors;
-
-/**
- * 微信消息模板
- *
- * @author xxm
- * @since 2022/7/15
- */
-@Slf4j
-@Service
-@RequiredArgsConstructor
-public class WeChatTemplateService {
-
-    private final WxMpService wxMpService;
-
-    private final WeChatTemplateManager weChatTemplateManager;
-
-    private final UserWsNoticeService userWsNoticeService;
-
-    /**
-     * 修改
-     */
-    public void update(WeChatTemplateParam param) {
-        WeChatTemplate weChatTemplate = weChatTemplateManager.findById(param.getId())
-            .orElseThrow(DataNotExistException::new);
-        BeanUtil.copyProperties(param, weChatTemplate, CopyOptions.create().ignoreNullValue());
-        weChatTemplateManager.updateById(weChatTemplate);
-    }
-
-    /**
-     * 分页
-     */
-    public PageResult<WeChatTemplateDto> page(PageParam pageParam, WeChatTemplateParam weChatTemplateParam) {
-        return MpUtil.convert2DtoPageResult(weChatTemplateManager.page(pageParam, weChatTemplateParam));
-    }
-
-    /**
-     * 获取单条
-     */
-    public WeChatTemplateDto findById(Long id) {
-        return weChatTemplateManager.findById(id).map(WeChatTemplate::toDto).orElseThrow(DataNotExistException::new);
-    }
-
-    /**
-     * 获取全部
-     */
-    public List<WeChatTemplateDto> findAll() {
-        return ResultConvertUtil.dtoListConvert(weChatTemplateManager.findAll());
-    }
-
-    /**
-     * 编码是否已经存在(不包含自身)
-     */
-    public boolean existsByCode(String code, Long id) {
-        return weChatTemplateManager.existsByCode(code, id);
-    }
-
-    /**
-     * 同步
-     */
-    @SneakyThrows
-    @Async("asyncExecutor")
-    @Transactional(rollbackFor = Exception.class)
-    public void sync() {
-        WxMpTemplateMsgService templateMsgService = wxMpService.getTemplateMsgService();
-        // 微信公众号订阅模板
-        List<WxMpTemplate> wxTemplates = templateMsgService.getAllPrivateTemplate()
-            .stream()
-            .filter(o -> StrUtil.isNotBlank(o.getPrimaryIndustry()))
-            .collect(Collectors.toList());
-        List<String> wxTemplateIds = wxTemplates.stream().map(WxMpTemplate::getTemplateId).collect(Collectors.toList());
-
-        // 系统中模板
-        List<WeChatTemplate> weChatTemplates = weChatTemplateManager.findAll();
-        List<String> weChatTemplatesIds = weChatTemplates.stream()
-            .map(WeChatTemplate::getTemplateId)
-            .collect(Collectors.toList());
-
-        // 删除 本地有有,服务端没有
-        List<Long> deleteIds = weChatTemplates.stream()
-            .filter(o -> !wxTemplateIds.contains(o.getTemplateId()))
-            .map(MpIdEntity::getId)
-            .collect(Collectors.toList());
-        // 新增 服务端有且本地没有
-        List<WeChatTemplate> saveTemplate = wxTemplates.stream()
-            .filter(o -> !weChatTemplatesIds.contains(o.getTemplateId()))
-            .map(WeChatTemplate::init)
-            .collect(Collectors.toList());
-        weChatTemplateManager.saveAll(saveTemplate);
-        weChatTemplateManager.deleteByIds(deleteIds);
-        SecurityUtil.getCurrentUser()
-            .ifPresent(userDetail -> userWsNoticeService.sendMessageByUser(WsRes.notificationInfo("微信消息模板同步成功"),
-                    userDetail.getId()));
-    }
-
-}
diff --git a/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/core/notice/service/WechatNoticeService.java b/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/core/notice/service/WechatNoticeService.java
deleted file mode 100644
index 83eae983fb7d2d972ece7a7c9ea45bedd923f803..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/core/notice/service/WechatNoticeService.java
+++ /dev/null
@@ -1,61 +0,0 @@
-package cn.bootx.platform.starter.wechat.core.notice.service;
-
-import cn.bootx.platform.common.core.exception.DataNotExistException;
-import cn.bootx.platform.common.core.rest.dto.KeyValue;
-import cn.bootx.platform.starter.wechat.core.notice.dao.WeChatTemplateManager;
-import cn.bootx.platform.starter.wechat.core.notice.entity.WeChatTemplate;
-import lombok.RequiredArgsConstructor;
-import lombok.SneakyThrows;
-import lombok.extern.slf4j.Slf4j;
-import me.chanjar.weixin.mp.api.WxMpService;
-import me.chanjar.weixin.mp.api.WxMpTemplateMsgService;
-import me.chanjar.weixin.mp.bean.template.WxMpTemplateData;
-import me.chanjar.weixin.mp.bean.template.WxMpTemplateMessage;
-import org.springframework.stereotype.Service;
-
-import java.util.List;
-import java.util.stream.Collectors;
-
-/**
- * 微信消息通知功能
- *
- * @author xxm
- * @since 2022/7/15
- */
-@Slf4j
-@Service
-@RequiredArgsConstructor
-public class WechatNoticeService {
-
-    private final WxMpService wxMpService;
-
-    private final WeChatTemplateManager weChatTemplateManager;
-
-    /**
-     * 发送模板信息 根据模板编号
-     */
-    @SneakyThrows
-    public String sentNotice(String code, String wxOpenId, List<KeyValue> keyValues) {
-        WeChatTemplate weChatTemplate = weChatTemplateManager.findTemplateIdByCode(code)
-            .orElseThrow(() -> new DataNotExistException("微信消息模板不存在"));
-        return this.sentNoticeByTemplateId(weChatTemplate.getTemplateId(), wxOpenId, keyValues);
-    }
-
-    /**
-     * 发送模板信息 根据微信消息模板ID
-     */
-    @SneakyThrows
-    public String sentNoticeByTemplateId(String templateId, String wxOpenId, List<KeyValue> keyValues) {
-        WxMpTemplateMsgService templateMsgService = wxMpService.getTemplateMsgService();
-        WxMpTemplateMessage message = new WxMpTemplateMessage();
-        message.setToUser(wxOpenId);
-        message.setTemplateId(templateId);
-
-        List<WxMpTemplateData> wxMpTemplateData = keyValues.stream()
-            .map(keyValue -> new WxMpTemplateData(keyValue.getKey(), keyValue.getValue()))
-            .collect(Collectors.toList());
-        message.setData(wxMpTemplateData);
-        return templateMsgService.sendTemplateMsg(message);
-    }
-
-}
diff --git a/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/core/portal/service/WeChatPortalService.java b/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/core/portal/service/WeChatPortalService.java
deleted file mode 100644
index 6b8d7c233bb16359030af4cfaa6e01e883390ded..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/core/portal/service/WeChatPortalService.java
+++ /dev/null
@@ -1,90 +0,0 @@
-package cn.bootx.platform.starter.wechat.core.portal.service;
-
-import cn.bootx.platform.common.core.exception.ValidationFailedException;
-import cn.hutool.core.util.StrUtil;
-import cn.hutool.crypto.symmetric.SymmetricAlgorithm;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import me.chanjar.weixin.mp.api.WxMpMessageRouter;
-import me.chanjar.weixin.mp.api.WxMpService;
-import me.chanjar.weixin.mp.bean.message.WxMpXmlMessage;
-import me.chanjar.weixin.mp.bean.message.WxMpXmlOutMessage;
-import org.springframework.stereotype.Service;
-
-/**
- * 微信门户处理
- *
- * @author xxm
- * @since 2022/7/16
- */
-@Slf4j
-@Service
-@RequiredArgsConstructor
-public class WeChatPortalService {
-
-    private final WxMpService wxMpService;
-
-    private final WxMpMessageRouter wxMpMessageRouter;
-
-    /**
-     * 微信接入校验处理
-     * @param signature 微信签名
-     * @param timestamp 时间戳
-     * @param nonce 随机数
-     * @param echostr 随机字符串
-     */
-    public String auth(String signature, String timestamp, String nonce, String echostr) {
-        log.info("接收到来自微信服务器的认证消息:[{}, {}, {}, {}]", signature, timestamp, nonce, echostr);
-        if (StrUtil.isAllBlank(signature, timestamp, nonce, echostr)) {
-            throw new ValidationFailedException();
-        }
-
-        if (wxMpService.checkSignature(timestamp, nonce, signature)) {
-            return echostr;
-        }
-        return "非法请求";
-    }
-
-    /**
-     * 微信消息处理
-     * @param requestBody 请求报文体
-     * @param signature 微信签名
-     * @param encType 加签方式
-     * @param msgSignature 微信签名
-     * @param timestamp 时间戳
-     * @param nonce 随机数
-     */
-    public String handleMessage(String requestBody, String signature, String timestamp, String nonce, String openid,
-            String encType, String msgSignature) {
-        if (!wxMpService.checkSignature(timestamp, nonce, signature)) {
-            throw new ValidationFailedException("非法请求,可能属于伪造的请求!");
-        }
-        String out = "success";
-
-        // 明文模式
-        if (StrUtil.isBlank(encType)) {
-            WxMpXmlMessage inMessage = WxMpXmlMessage.fromXml(requestBody);
-            WxMpXmlOutMessage outMessage = wxMpMessageRouter.route(inMessage);
-            if (outMessage != null) {
-                out = outMessage.toXml();
-            }
-        }
-
-        // aes加密模式
-        if (SymmetricAlgorithm.AES.name().equalsIgnoreCase(encType)) {
-            WxMpXmlMessage inMessage = WxMpXmlMessage.fromEncryptedXml(requestBody, wxMpService.getWxMpConfigStorage(),
-                    timestamp, nonce, msgSignature);
-
-            log.debug("消息解密后内容为:{} ", inMessage.toString());
-
-            WxMpXmlOutMessage outMessage = wxMpMessageRouter.route(inMessage);
-            if (outMessage != null) {
-                out = outMessage.toEncryptedXml(wxMpService.getWxMpConfigStorage());
-            }
-        }
-
-        log.debug("组装回复信息:{}", out);
-        return out;
-    }
-
-}
diff --git a/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/core/user/convert/WechatFansConvert.java b/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/core/user/convert/WechatFansConvert.java
deleted file mode 100644
index 125f468648b7d67ce9a5db585585b7bce18e85dd..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/core/user/convert/WechatFansConvert.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package cn.bootx.platform.starter.wechat.core.user.convert;
-
-import cn.bootx.platform.starter.wechat.param.user.WechatFansParam;
-import cn.bootx.platform.starter.wechat.core.user.entity.WechatFans;
-import cn.bootx.platform.starter.wechat.dto.user.WechatFansDto;
-import org.mapstruct.Mapper;
-import org.mapstruct.factory.Mappers;
-
-/**
- * 微信公众号粉丝
- *
- * @author xxm
- * @since 2022-07-16
- */
-@Mapper
-public interface WechatFansConvert {
-
-    WechatFansConvert CONVERT = Mappers.getMapper(WechatFansConvert.class);
-
-    WechatFans convert(WechatFansParam in);
-
-    WechatFansDto convert(WechatFans in);
-
-}
diff --git a/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/core/user/dao/WechatFansManager.java b/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/core/user/dao/WechatFansManager.java
deleted file mode 100644
index e526a91bbb1c102df01a44081da1f23f8edd40ff..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/core/user/dao/WechatFansManager.java
+++ /dev/null
@@ -1,45 +0,0 @@
-package cn.bootx.platform.starter.wechat.core.user.dao;
-
-import cn.bootx.platform.starter.wechat.core.user.entity.WechatFans;
-import cn.bootx.platform.starter.wechat.param.user.WechatFansParam;
-import cn.bootx.platform.common.core.rest.param.PageParam;
-import cn.bootx.platform.common.mybatisplus.base.MpIdEntity;
-import cn.bootx.platform.common.mybatisplus.impl.BaseManager;
-import cn.bootx.platform.common.mybatisplus.util.MpUtil;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import lombok.RequiredArgsConstructor;
-import org.springframework.stereotype.Repository;
-
-import java.util.Optional;
-
-/**
- * 微信公众号粉丝
- *
- * @author xxm
- * @since 2022-07-16
- */
-@Repository
-@RequiredArgsConstructor
-public class WechatFansManager extends BaseManager<WechatFansMapper, WechatFans> {
-
-    /**
-     * 分页
-     */
-    public Page<WechatFans> page(PageParam pageParam, WechatFansParam param) {
-        Page<WechatFans> mpPage = MpUtil.getMpPage(pageParam, WechatFans.class);
-        return lambdaQuery().orderByDesc(MpIdEntity::getId).page(mpPage);
-    }
-
-    /**
-     * 获取最新的一条
-     */
-    public Optional<WechatFans> findLatest() {
-        Page<WechatFans> mpPage = new Page<>(0, 1);
-        Page<WechatFans> fansPage = this.lambdaQuery().orderByDesc(MpIdEntity::getId).page(mpPage);
-        if (fansPage.getTotal() > 0) {
-            return Optional.of(fansPage.getRecords().get(0));
-        }
-        return Optional.empty();
-    }
-
-}
diff --git a/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/core/user/dao/WechatFansMapper.java b/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/core/user/dao/WechatFansMapper.java
deleted file mode 100644
index fcea7f9e784c35c363c8a463fb58b2c05f455c53..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/core/user/dao/WechatFansMapper.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package cn.bootx.platform.starter.wechat.core.user.dao;
-
-import cn.bootx.platform.starter.wechat.core.user.entity.WechatFans;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import org.apache.ibatis.annotations.Mapper;
-
-/**
- * 微信公众号粉丝
- *
- * @author xxm
- * @since 2022-07-16
- */
-@Mapper
-public interface WechatFansMapper extends BaseMapper<WechatFans> {
-
-}
diff --git a/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/core/user/entity/WechatFans.java b/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/core/user/entity/WechatFans.java
deleted file mode 100644
index ce1a61eace896a816bbca049a08dd4493c67c709..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/core/user/entity/WechatFans.java
+++ /dev/null
@@ -1,56 +0,0 @@
-package cn.bootx.platform.starter.wechat.core.user.entity;
-
-import cn.bootx.platform.starter.wechat.core.user.convert.WechatFansConvert;
-import cn.bootx.platform.starter.wechat.param.user.WechatFansParam;
-import cn.bootx.platform.common.core.function.EntityBaseFunction;
-import cn.bootx.platform.common.mybatisplus.base.MpIdEntity;
-import cn.bootx.platform.starter.wechat.dto.user.WechatFansDto;
-import com.baomidou.mybatisplus.annotation.TableName;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.experimental.Accessors;
-
-import java.time.LocalDateTime;
-
-/**
- * 微信粉丝
- *
- * @author xxm
- * @since 2022/7/15
- */
-@EqualsAndHashCode(callSuper = true)
-@Data
-@Accessors(chain = true)
-@TableName("starter_wx_fans")
-public class WechatFans extends MpIdEntity implements EntityBaseFunction<WechatFansDto> {
-
-    /** 关联OpenId */
-    private String openid;
-
-    /** unionId */
-    private String unionId;
-
-    /** 订阅状态,未关注/已关注 */
-    private Boolean subscribe;
-
-    /** 订阅时间 */
-    private LocalDateTime subscribeTime;
-
-    /** 语言 */
-    private String language;
-
-    /** 备注 */
-    private String remark;
-
-    /** 创建对象 */
-    public static WechatFans init(WechatFansParam in) {
-        return WechatFansConvert.CONVERT.convert(in);
-    }
-
-    /** 转换成dto */
-    @Override
-    public WechatFansDto toDto() {
-        return WechatFansConvert.CONVERT.convert(this);
-    }
-
-}
diff --git a/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/core/user/service/WeChatUserService.java b/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/core/user/service/WeChatUserService.java
deleted file mode 100644
index 7da1a592ca57dc3564d5eb8843c587e1edab8d29..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/core/user/service/WeChatUserService.java
+++ /dev/null
@@ -1,86 +0,0 @@
-package cn.bootx.platform.starter.wechat.core.user.service;
-
-import cn.bootx.platform.common.core.rest.param.PageParam;
-import cn.bootx.platform.common.core.util.LocalDateTimeUtil;
-import cn.bootx.platform.starter.wechat.core.user.entity.WechatFans;
-import cn.hutool.core.collection.CollUtil;
-import lombok.RequiredArgsConstructor;
-import lombok.SneakyThrows;
-import lombok.extern.slf4j.Slf4j;
-import me.chanjar.weixin.mp.api.WxMpService;
-import me.chanjar.weixin.mp.api.WxMpUserService;
-import me.chanjar.weixin.mp.bean.WxMpUserQuery;
-import me.chanjar.weixin.mp.bean.result.WxMpUser;
-import me.chanjar.weixin.mp.bean.result.WxMpUserList;
-import org.springframework.scheduling.annotation.Async;
-import org.springframework.stereotype.Service;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.stream.Collectors;
-
-/**
- * 微信用户相关接口 (获取不到详细信息了)
- *
- * @author xxm
- * @since 2022/7/15
- */
-@Slf4j
-@Service
-@RequiredArgsConstructor
-public class WeChatUserService {
-
-    private final WxMpService wxMpService;
-
-    private static final int SIZE = 100;
-
-    /**
-     * 获取关注用户列表
-     */
-    public void page(PageParam pageParam) {
-        WxMpUserService userService = wxMpService.getUserService();
-        WxMpUserQuery userQuery = new WxMpUserQuery();
-    }
-
-    /**
-     * 同步粉丝
-     */
-    @Async("asyncExecutor")
-    public void sync() {
-        // 根据公众号查询已同步用户openid 查询最新的一条
-    }
-
-    /**
-     * 获取微信用户 (获取不到昵称和头像了, 感觉没什么用了)
-     * @param nextOpenid 下一组开始的openid
-     */
-    @SneakyThrows
-    public void fetchUser(String nextOpenid) {
-        WxMpUserList wxMpUserList = wxMpService.getUserService().userList(nextOpenid);
-        // openId 分组 每组 100个 openid
-        List<List<String>> openIdsList = CollUtil.split(wxMpUserList.getOpenids(), SIZE)
-            .stream()
-            .filter(CollUtil::isNotEmpty)
-            .collect(Collectors.toList());
-        // 处理每个分组. 调用查询用户信息
-        for (List<String> openIdList : openIdsList) {
-            log.info("开始批量获取用户信息 {}", openIdList);
-            List<WechatFans> wxAccountFansList = new ArrayList<>();
-            log.info("批量插入用户信息完成 {}", openIdList);
-        }
-        // 如果nextOpenId 不为空,则继续获取
-    }
-
-    /**
-     * 构建对象
-     */
-    private WechatFans buildFans(WxMpUser wxMpUser) {
-        return new WechatFans().setOpenid(wxMpUser.getOpenId())
-            .setUnionId(wxMpUser.getUnionId())
-            .setSubscribe(true)
-            .setSubscribeTime(LocalDateTimeUtil.of(wxMpUser.getSubscribeTime()))
-            .setLanguage(wxMpUser.getLanguage())
-            .setRemark(wxMpUser.getRemark());
-    }
-
-}
diff --git a/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/dto/article/WeChatArticleDto.java b/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/dto/article/WeChatArticleDto.java
deleted file mode 100644
index c7b145a7df7c816307caf7ec638691fd487ed45f..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/dto/article/WeChatArticleDto.java
+++ /dev/null
@@ -1,48 +0,0 @@
-package cn.bootx.platform.starter.wechat.dto.article;
-
-import cn.hutool.core.date.DateTime;
-import cn.hutool.core.date.DateUtil;
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-import lombok.experimental.Accessors;
-import me.chanjar.weixin.mp.bean.freepublish.WxMpFreePublishArticles;
-import me.chanjar.weixin.mp.bean.freepublish.WxMpFreePublishItem;
-
-import java.time.LocalDateTime;
-import java.util.stream.Collectors;
-
-/**
- * 微信文章
- *
- * @author xxm
- * @since 2022/8/12
- */
-@Data
-@Accessors(chain = true)
-@Schema(title = "微信文章")
-public class WeChatArticleDto {
-
-    @Schema(description = "文章id")
-    private String articleId;
-
-    @Schema(description = "标题组")
-    private String titles;
-
-    @Schema(description = "更新时间")
-    private LocalDateTime updateTime;
-
-    /**
-     * 构建
-     */
-    public static WeChatArticleDto init(WxMpFreePublishItem item) {
-        DateTime date = DateUtil.date(Long.parseLong(item.getUpdateTime()));
-        LocalDateTime localDateTime = DateUtil.toLocalDateTime(date);
-        String titles = item.getContent()
-            .getNewsItem()
-            .stream()
-            .map(WxMpFreePublishArticles::getTitle)
-            .collect(Collectors.joining(","));
-        return new WeChatArticleDto().setArticleId(item.getArticleId()).setUpdateTime(localDateTime).setTitles(titles);
-    }
-
-}
diff --git a/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/dto/login/WeChatLoginQrCode.java b/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/dto/login/WeChatLoginQrCode.java
deleted file mode 100644
index adab6d5ffc57e9e5ad686b8fde3837db4efd909b..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/dto/login/WeChatLoginQrCode.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package cn.bootx.platform.starter.wechat.dto.login;
-
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-import lombok.experimental.Accessors;
-
-/**
- * @author xxm
- * @since 2022/8/4
- */
-@Data
-@AllArgsConstructor
-@NoArgsConstructor
-@Accessors(chain = true)
-@Schema(title = "登录二维码")
-public class WeChatLoginQrCode {
-
-    @Schema(description = "key")
-    private String qrCodeKey;
-
-    @Schema(description = "qrCode")
-    private String qrCodeUrl;
-
-}
diff --git a/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/dto/media/WeChatMediaDto.java b/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/dto/media/WeChatMediaDto.java
deleted file mode 100644
index 850a302862d76aa9b4c35d5bd7750ada97ed8c12..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/dto/media/WeChatMediaDto.java
+++ /dev/null
@@ -1,39 +0,0 @@
-package cn.bootx.platform.starter.wechat.dto.media;
-
-import cn.bootx.platform.common.core.util.LocalDateTimeUtil;
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-import lombok.experimental.Accessors;
-import me.chanjar.weixin.mp.bean.material.WxMpMaterialFileBatchGetResult.WxMaterialFileBatchGetNewsItem;
-
-import java.time.LocalDateTime;
-
-/**
- * @author xxm
- * @since 2022/8/12
- */
-@Data
-@Accessors(chain = true)
-@Schema(title = "微信素材")
-public class WeChatMediaDto {
-
-    @Schema(description = "媒体id")
-    private String mediaId;
-
-    @Schema(description = "名称")
-    private String name;
-
-    @Schema(description = "链接地址")
-    private String url;
-
-    @Schema(description = "更新时间")
-    private LocalDateTime updateTime;
-
-    public static WeChatMediaDto init(WxMaterialFileBatchGetNewsItem item) {
-        return new WeChatMediaDto().setMediaId(item.getMediaId())
-            .setName(item.getName())
-            .setUrl(item.getUrl())
-            .setUpdateTime(LocalDateTimeUtil.of(item.getUpdateTime()));
-    }
-
-}
diff --git a/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/dto/menu/WeChatMenuDto.java b/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/dto/menu/WeChatMenuDto.java
deleted file mode 100644
index e9a93a59e66521a7573a470f0842f0cd300e40a4..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/dto/menu/WeChatMenuDto.java
+++ /dev/null
@@ -1,34 +0,0 @@
-package cn.bootx.platform.starter.wechat.dto.menu;
-
-import cn.bootx.platform.common.core.rest.dto.BaseDto;
-import cn.bootx.platform.starter.wechat.core.menu.domin.WeChatMenuInfo;
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.experimental.Accessors;
-
-/**
- * 微信自定义菜单
- *
- * @author xxm
- * @since 2022-08-08
- */
-@EqualsAndHashCode(callSuper = true)
-@Data
-@Schema(title = "微信自定义菜单")
-@Accessors(chain = true)
-public class WeChatMenuDto extends BaseDto {
-
-    @Schema(description = "名称")
-    private String name;
-
-    @Schema(description = "菜单信息")
-    private WeChatMenuInfo menuInfo;
-
-    @Schema(description = "是否发布")
-    private boolean publish;
-
-    @Schema(description = "备注")
-    private String remark;
-
-}
diff --git a/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/dto/notice/WeChatTemplateDto.java b/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/dto/notice/WeChatTemplateDto.java
deleted file mode 100644
index c2a42b8d703b29370c858456cd1e8314f22af811..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/dto/notice/WeChatTemplateDto.java
+++ /dev/null
@@ -1,48 +0,0 @@
-package cn.bootx.platform.starter.wechat.dto.notice;
-
-import cn.bootx.platform.common.core.rest.dto.BaseDto;
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.experimental.Accessors;
-
-/**
- * 微信消息模板
- *
- * @author xxm
- * @since 2022-08-03
- */
-@EqualsAndHashCode(callSuper = true)
-@Data
-@Schema(title = "微信消息模板")
-@Accessors(chain = true)
-public class WeChatTemplateDto extends BaseDto {
-
-    @Schema(description = "名称")
-    private String name;
-
-    @Schema(description = "编码")
-    private String code;
-
-    @Schema(description = "是否启用")
-    private Boolean enable;
-
-    @Schema(description = "模板ID")
-    private String templateId;
-
-    @Schema(description = "模板标题")
-    private String title;
-
-    @Schema(description = "模板所属行业的一级行业")
-    private String primaryIndustry;
-
-    @Schema(description = "模板所属行业的二级行业")
-    private String deputyIndustry;
-
-    @Schema(description = "模板内容")
-    private String content;
-
-    @Schema(description = "示例")
-    private String example;
-
-}
diff --git a/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/dto/user/WechatFansDto.java b/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/dto/user/WechatFansDto.java
deleted file mode 100644
index a0024f9ef73a39df0ac0d165ca5e6f515d055b33..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/dto/user/WechatFansDto.java
+++ /dev/null
@@ -1,56 +0,0 @@
-package cn.bootx.platform.starter.wechat.dto.user;
-
-import cn.bootx.platform.common.core.rest.dto.BaseDto;
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.experimental.Accessors;
-
-import java.time.LocalDateTime;
-
-/**
- * 微信公众号粉丝
- *
- * @author xxm
- * @since 2022-07-16
- */
-@EqualsAndHashCode(callSuper = true)
-@Data
-@Schema(title = "微信公众号粉丝")
-@Accessors(chain = true)
-public class WechatFansDto extends BaseDto {
-
-    @Schema(description = "关联OpenId")
-    private String openid;
-
-    @Schema(description = "订阅状态")
-    private Boolean subscribeStatus;
-
-    @Schema(description = "订阅时间")
-    private LocalDateTime subscribeTime;
-
-    @Schema(description = "昵称")
-    private String nickname;
-
-    @Schema(description = "性别")
-    private String sex;
-
-    @Schema(description = "语言")
-    private String language;
-
-    @Schema(description = "国家")
-    private String country;
-
-    @Schema(description = "省份")
-    private String province;
-
-    @Schema(description = "城市")
-    private String city;
-
-    @Schema(description = "头像地址")
-    private String avatarUrl;
-
-    @Schema(description = "备注")
-    private String remark;
-
-}
diff --git a/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/event/WeChatQrScanEvent.java b/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/event/WeChatQrScanEvent.java
deleted file mode 100644
index b055a405a6bf4d2522967356f44c69fc40199514..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/event/WeChatQrScanEvent.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package cn.bootx.platform.starter.wechat.event;
-
-import lombok.Getter;
-import org.springframework.context.ApplicationEvent;
-
-/**
- * 微信扫码关注事件
- *
- * @author xxm
- * @since 2022/8/4
- */
-@Getter
-public class WeChatQrScanEvent extends ApplicationEvent {
-
-    /** 微信id */
-    private final String openId;
-
-    /** key值 */
-    private final String eventKey;
-
-    public WeChatQrScanEvent(Object source, String openId, String eventKey) {
-        super(source);
-        this.openId = openId;
-        this.eventKey = eventKey;
-    }
-
-}
diff --git a/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/handler/WeChatMpMessageHandler.java b/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/handler/WeChatMpMessageHandler.java
deleted file mode 100644
index c49f32a550e9de08e89619834c6195e143ff060c..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/handler/WeChatMpMessageHandler.java
+++ /dev/null
@@ -1,30 +0,0 @@
-package cn.bootx.platform.starter.wechat.handler;
-
-import me.chanjar.weixin.common.api.WxConsts;
-import me.chanjar.weixin.mp.api.WxMpMessageHandler;
-import me.chanjar.weixin.mp.constant.WxMpEventConstants;
-
-/**
- * 处理微信推送消息的处理器接口 (进行微封装)
- *
- * @author xxm
- * @since 2022/7/16
- */
-public interface WeChatMpMessageHandler extends WxMpMessageHandler {
-
-    /**
-     * 消息类型
-     * @see WxConsts.XmlMsgType
-     */
-    default String getMsgType() {
-        return WxConsts.XmlMsgType.EVENT;
-    }
-
-    /**
-     * event值
-     * @see WxMpEventConstants
-     * @see WxConsts.XmlMsgType
-     */
-    String getEvent();
-
-}
diff --git a/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/handler/WeChatMsgHandler.java b/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/handler/WeChatMsgHandler.java
deleted file mode 100644
index e2aa40b405356265654019679ff524e8010eafa5..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/handler/WeChatMsgHandler.java
+++ /dev/null
@@ -1,38 +0,0 @@
-package cn.bootx.platform.starter.wechat.handler;
-
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import me.chanjar.weixin.common.error.WxErrorException;
-import me.chanjar.weixin.common.session.WxSessionManager;
-import me.chanjar.weixin.mp.api.WxMpMessageHandler;
-import me.chanjar.weixin.mp.api.WxMpService;
-import me.chanjar.weixin.mp.bean.message.WxMpXmlMessage;
-import me.chanjar.weixin.mp.bean.message.WxMpXmlOutMessage;
-import org.springframework.stereotype.Component;
-
-import java.util.Map;
-
-/**
- * 微信接受文本消息处理
- *
- * @author xxm
- * @since 2022/7/16
- */
-@Slf4j
-@Component
-@RequiredArgsConstructor
-public class WeChatMsgHandler implements WxMpMessageHandler {
-
-    @Override
-    public WxMpXmlOutMessage handle(WxMpXmlMessage wxMessage, Map<String, Object> context, WxMpService wxMpService,
-            WxSessionManager sessionManager) {
-
-        // 回复消息的时候发送人和接收人要反过来
-        return WxMpXmlOutMessage.TEXT()
-            .toUser(wxMessage.getFromUser())
-            .fromUser(wxMessage.getToUser())
-            .content("我复述了一遍: " + wxMessage.getContent())
-            .build();
-    }
-
-}
diff --git a/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/handler/WeChatQrScanHandler.java b/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/handler/WeChatQrScanHandler.java
deleted file mode 100644
index e7df4b35cd1320fa036c5df7890835a5b8118ff6..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/handler/WeChatQrScanHandler.java
+++ /dev/null
@@ -1,64 +0,0 @@
-package cn.bootx.platform.starter.wechat.handler;
-
-import cn.bootx.platform.starter.wechat.handler.qrscene.WeChatQrSceneMsgHandler;
-import cn.bootx.platform.starter.wechat.core.login.service.WeChatQrLoginService;
-import cn.hutool.core.util.StrUtil;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import me.chanjar.weixin.common.api.WxConsts;
-import me.chanjar.weixin.common.session.WxSessionManager;
-import me.chanjar.weixin.mp.api.WxMpService;
-import me.chanjar.weixin.mp.bean.message.WxMpXmlMessage;
-import me.chanjar.weixin.mp.bean.message.WxMpXmlOutMessage;
-import me.chanjar.weixin.mp.builder.outxml.TextBuilder;
-import org.springframework.stereotype.Component;
-
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
-
-/**
- * 微信扫码事件
- *
- * @author xxm
- * @since 2022/8/4
- */
-@Slf4j
-@Component
-@RequiredArgsConstructor
-public class WeChatQrScanHandler implements WeChatMpMessageHandler {
-
-    private final WeChatQrLoginService weChatQrLoginService;
-
-    private final List<WeChatQrSceneMsgHandler> weChatQrSceneMsgHandlers;
-
-    @Override
-    public String getEvent() {
-        return WxConsts.EventType.SCAN;
-    }
-
-    @Override
-    public WxMpXmlOutMessage handle(WxMpXmlMessage wxMessage, Map<String, Object> map, WxMpService wxMpService,
-            WxSessionManager wxSessionManager) {
-        // 扫描用户的OpenId
-        String openId = wxMessage.getFromUser();
-        // 判断是否携带扫码参数
-        for (WeChatQrSceneMsgHandler msgHandler : weChatQrSceneMsgHandlers) {
-            if (StrUtil.startWith(wxMessage.getEventKey(), msgHandler.getPrefix())) {
-                WxMpXmlOutMessage message = msgHandler.handler(wxMessage, map, wxMpService, wxSessionManager);
-                if (Objects.nonNull(message)) {
-                    return message;
-                }
-            }
-        }
-        // 二维码key值
-        String qrCodeKey = wxMessage.getEventKey();
-        weChatQrLoginService.setOpenId(qrCodeKey, openId);
-
-        return new TextBuilder().fromUser(wxMessage.getToUser())
-            .toUser(wxMessage.getFromUser())
-            .content("感谢关注")
-            .build();
-    }
-
-}
diff --git a/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/handler/WeChatSubscribeHandler.java b/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/handler/WeChatSubscribeHandler.java
deleted file mode 100644
index 92018552749a0635676901aa740cc477b762d364..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/handler/WeChatSubscribeHandler.java
+++ /dev/null
@@ -1,59 +0,0 @@
-package cn.bootx.platform.starter.wechat.handler;
-
-import cn.bootx.platform.starter.wechat.handler.qrscene.WeChatQrSceneMsgHandler;
-import cn.hutool.core.util.StrUtil;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import me.chanjar.weixin.common.api.WxConsts;
-import me.chanjar.weixin.common.session.WxSessionManager;
-import me.chanjar.weixin.mp.api.WxMpService;
-import me.chanjar.weixin.mp.bean.message.WxMpXmlMessage;
-import me.chanjar.weixin.mp.bean.message.WxMpXmlOutMessage;
-import me.chanjar.weixin.mp.builder.outxml.TextBuilder;
-import org.springframework.stereotype.Component;
-
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
-
-/**
- * 新增关注订阅消息
- *
- * @author xxm
- * @since 2022/7/16
- */
-@Slf4j
-@Component
-@RequiredArgsConstructor
-public class WeChatSubscribeHandler implements WeChatMpMessageHandler {
-
-    private final List<WeChatQrSceneMsgHandler> weChatQrSceneMsgHandlers;
-
-    @Override
-    public String getEvent() {
-        return WxConsts.EventType.SUBSCRIBE;
-    }
-
-    @Override
-    public WxMpXmlOutMessage handle(WxMpXmlMessage wxMessage, Map<String, Object> context, WxMpService wxMpService,
-            WxSessionManager sessionManager) {
-        String openId = wxMessage.getFromUser();
-        // 处理关注事件
-        log.info("新关注用户 OPENID: " + openId);
-
-        // 判断是否携带扫码参数
-        for (WeChatQrSceneMsgHandler msgHandler : weChatQrSceneMsgHandlers) {
-            if (StrUtil.startWith(wxMessage.getEventKey(), msgHandler.getPrefix())) {
-                WxMpXmlOutMessage message = msgHandler.handler(wxMessage, context, wxMpService, sessionManager);
-                if (Objects.nonNull(message)) {
-                    return message;
-                }
-            }
-        }
-        return new TextBuilder().fromUser(wxMessage.getToUser())
-            .toUser(wxMessage.getFromUser())
-            .content("感谢关注")
-            .build();
-    }
-
-}
diff --git a/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/handler/WeChatUnSubscribeHandler.java b/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/handler/WeChatUnSubscribeHandler.java
deleted file mode 100644
index e1cd0b82ba545cb57521c60f19f621a40d910905..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/handler/WeChatUnSubscribeHandler.java
+++ /dev/null
@@ -1,37 +0,0 @@
-package cn.bootx.platform.starter.wechat.handler;
-
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import me.chanjar.weixin.common.api.WxConsts;
-import me.chanjar.weixin.common.session.WxSessionManager;
-import me.chanjar.weixin.mp.api.WxMpService;
-import me.chanjar.weixin.mp.bean.message.WxMpXmlMessage;
-import me.chanjar.weixin.mp.bean.message.WxMpXmlOutMessage;
-import org.springframework.stereotype.Component;
-
-import java.util.Map;
-
-/**
- * 用户取消关注订阅消息
- *
- * @author xxm
- * @since 2022/7/16
- */
-@Slf4j
-@Component
-@RequiredArgsConstructor
-public class WeChatUnSubscribeHandler implements WeChatMpMessageHandler {
-
-    @Override
-    public String getEvent() {
-        return WxConsts.EventType.UNSUBSCRIBE;
-    }
-
-    @Override
-    public WxMpXmlOutMessage handle(WxMpXmlMessage wxMessage, Map<String, Object> context, WxMpService wxMpService,
-            WxSessionManager sessionManager) {
-        log.info("取消关注用户 OPENID: " + wxMessage.getFromUser());
-        return null;
-    }
-
-}
diff --git a/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/handler/WechatMenuHandler.java b/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/handler/WechatMenuHandler.java
deleted file mode 100644
index d3ebe7a1706d4f8df7ac189cce2e940d252398b3..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/handler/WechatMenuHandler.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package cn.bootx.platform.starter.wechat.handler;
-
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import me.chanjar.weixin.common.api.WxConsts;
-import me.chanjar.weixin.common.session.WxSessionManager;
-import me.chanjar.weixin.mp.api.WxMpService;
-import me.chanjar.weixin.mp.bean.message.WxMpXmlMessage;
-import me.chanjar.weixin.mp.bean.message.WxMpXmlOutMessage;
-import org.springframework.stereotype.Component;
-
-import java.util.Map;
-
-/**
- * 菜单点击事件
- *
- * @author xxm
- * @since 2022/7/16
- */
-@Slf4j
-@Component
-@RequiredArgsConstructor
-public class WechatMenuHandler implements WeChatMpMessageHandler {
-
-    @Override
-    public String getEvent() {
-        return WxConsts.MenuButtonType.CLICK;
-    }
-
-    @Override
-    public WxMpXmlOutMessage handle(WxMpXmlMessage wxMessage, Map<String, Object> context, WxMpService wxMpService,
-            WxSessionManager sessionManager) {
-        return null;
-    }
-
-}
diff --git a/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/handler/qrscene/WeChatQrLoginHandler.java b/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/handler/qrscene/WeChatQrLoginHandler.java
deleted file mode 100644
index 5e9b012a4bdc895351f5dd5c5bccc897cec48bac..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/handler/qrscene/WeChatQrLoginHandler.java
+++ /dev/null
@@ -1,56 +0,0 @@
-package cn.bootx.platform.starter.wechat.handler.qrscene;
-
-import cn.bootx.platform.starter.wechat.core.login.service.WeChatQrLoginService;
-import cn.hutool.core.util.StrUtil;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import me.chanjar.weixin.common.session.WxSessionManager;
-import me.chanjar.weixin.mp.api.WxMpService;
-import me.chanjar.weixin.mp.bean.message.WxMpXmlMessage;
-import me.chanjar.weixin.mp.bean.message.WxMpXmlOutMessage;
-import me.chanjar.weixin.mp.builder.outxml.TextBuilder;
-import org.springframework.stereotype.Component;
-
-import java.util.Map;
-
-import static cn.bootx.platform.starter.wechat.code.WeChatCode.EVENT_KEY_QRSCENE;
-import static cn.bootx.platform.starter.wechat.code.WeChatCode.QRSCENE_LOGIN;
-
-/**
- * 微信扫码登录
- *
- * @author xxm
- * @since 2023/3/21
- */
-@Slf4j
-@Component
-@RequiredArgsConstructor
-public class WeChatQrLoginHandler implements WeChatQrSceneMsgHandler {
-
-    private final WeChatQrLoginService weChatQrLoginService;
-
-    /**
-     * 消息前缀
-     */
-    @Override
-    public String getPrefix() {
-        return EVENT_KEY_QRSCENE + QRSCENE_LOGIN;
-    }
-
-    /**
-     * 处理消息
-     */
-    @Override
-    public WxMpXmlOutMessage handler(WxMpXmlMessage wxMessage, Map<String, Object> context, WxMpService wxMpService,
-            WxSessionManager sessionManager) {
-        String openId = wxMessage.getFromUser();
-        // 将扫码获取的二维码key值进行保存
-        String qrCodeKey = StrUtil.subAfter(wxMessage.getEventKey(), getPrefix(), false);
-        weChatQrLoginService.setOpenId(qrCodeKey, openId);
-        return new TextBuilder().fromUser(wxMessage.getToUser())
-            .toUser(wxMessage.getFromUser())
-            .content("感谢关注")
-            .build();
-    }
-
-}
diff --git a/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/handler/qrscene/WeChatQrSceneMsgHandler.java b/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/handler/qrscene/WeChatQrSceneMsgHandler.java
deleted file mode 100644
index 8bd427f388471c83c1f4ccece12e3ecfcae204f1..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/handler/qrscene/WeChatQrSceneMsgHandler.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package cn.bootx.platform.starter.wechat.handler.qrscene;
-
-import me.chanjar.weixin.common.session.WxSessionManager;
-import me.chanjar.weixin.mp.api.WxMpService;
-import me.chanjar.weixin.mp.bean.message.WxMpXmlMessage;
-import me.chanjar.weixin.mp.bean.message.WxMpXmlOutMessage;
-
-import java.util.Map;
-
-/**
- * 微信扫码消息处理
- *
- * @author xxm
- * @since 2023/3/21
- */
-public interface WeChatQrSceneMsgHandler {
-
-    /**
-     * 消息前缀
-     */
-    String getPrefix();
-
-    /**
-     * 处理消息
-     */
-    WxMpXmlOutMessage handler(WxMpXmlMessage wxMessage, Map<String, Object> context, WxMpService wxMpService,
-            WxSessionManager sessionManager);
-
-}
diff --git a/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/param/menu/WeChatMenuParam.java b/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/param/menu/WeChatMenuParam.java
deleted file mode 100644
index 22b950303d10a2ceb2891cbbbf87a8abe2c41716..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/param/menu/WeChatMenuParam.java
+++ /dev/null
@@ -1,34 +0,0 @@
-package cn.bootx.platform.starter.wechat.param.menu;
-
-import cn.bootx.platform.starter.wechat.core.menu.domin.WeChatMenuInfo;
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-import lombok.experimental.Accessors;
-
-/**
- * 微信自定义菜单
- *
- * @author xxm
- * @since 2022-08-08
- */
-@Data
-@Schema(title = "微信自定义菜单")
-@Accessors(chain = true)
-public class WeChatMenuParam {
-
-    @Schema(description = "主键")
-    private Long id;
-
-    @Schema(description = "名称")
-    private String name;
-
-    @Schema(description = "菜单信息")
-    private WeChatMenuInfo menuInfo = new WeChatMenuInfo();
-
-    @Schema(description = "是否发布")
-    private boolean publish;
-
-    @Schema(description = "备注")
-    private String remark;
-
-}
diff --git a/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/param/notice/WeChatTemplateParam.java b/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/param/notice/WeChatTemplateParam.java
deleted file mode 100644
index 53bfe8e9ea921a554bb216c129f5b8545ae1b11e..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/param/notice/WeChatTemplateParam.java
+++ /dev/null
@@ -1,48 +0,0 @@
-package cn.bootx.platform.starter.wechat.param.notice;
-
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-import lombok.experimental.Accessors;
-
-/**
- * 微信消息模板
- *
- * @author xxm
- * @since 2022-08-03
- */
-@Data
-@Schema(title = "微信消息模板")
-@Accessors(chain = true)
-public class WeChatTemplateParam {
-
-    @Schema(description = "主键")
-    private Long id;
-
-    @Schema(description = "名称")
-    private String name;
-
-    @Schema(description = "编码")
-    private String code;
-
-    @Schema(description = "是否启用")
-    private Boolean enable;
-
-    @Schema(description = "模板ID")
-    private String templateId;
-
-    @Schema(description = "模板标题")
-    private String title;
-
-    @Schema(description = "模板所属行业的一级行业")
-    private String primaryIndustry;
-
-    @Schema(description = "模板所属行业的二级行业")
-    private String deputyIndustry;
-
-    @Schema(description = "模板内容")
-    private String content;
-
-    @Schema(description = "示例")
-    private String example;
-
-}
diff --git a/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/param/portal/WeChatPortalParam.java b/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/param/portal/WeChatPortalParam.java
deleted file mode 100644
index 8e3aec90b5f5ebce3df9138749ce71d5982fa161..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/param/portal/WeChatPortalParam.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package cn.bootx.platform.starter.wechat.param.portal;
-
-/**
- * 微信返回的消息入参
- *
- * @author xxm
- * @since 2022/7/16
- */
-public class WeChatPortalParam {
-
-}
diff --git a/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/param/user/WechatFansParam.java b/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/param/user/WechatFansParam.java
deleted file mode 100644
index 17b198b9e3f07ab86ebae2df6876846905dc0de6..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/param/user/WechatFansParam.java
+++ /dev/null
@@ -1,56 +0,0 @@
-package cn.bootx.platform.starter.wechat.param.user;
-
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-import lombok.experimental.Accessors;
-
-import java.time.LocalDateTime;
-
-/**
- * 微信公众号粉丝
- *
- * @author xxm
- * @since 2022-07-16
- */
-@Data
-@Schema(title = "微信公众号粉丝")
-@Accessors(chain = true)
-public class WechatFansParam {
-
-    @Schema(description = "主键")
-    private Long id;
-
-    @Schema(description = "关联OpenId")
-    private String openid;
-
-    @Schema(description = "订阅状态")
-    private Boolean subscribeStatus;
-
-    @Schema(description = "订阅时间")
-    private LocalDateTime subscribeTime;
-
-    @Schema(description = "昵称")
-    private String nickname;
-
-    @Schema(description = "性别")
-    private String sex;
-
-    @Schema(description = "语言")
-    private String language;
-
-    @Schema(description = "国家")
-    private String country;
-
-    @Schema(description = "省份")
-    private String province;
-
-    @Schema(description = "城市")
-    private String city;
-
-    @Schema(description = "头像地址")
-    private String avatarUrl;
-
-    @Schema(description = "备注")
-    private String remark;
-
-}
diff --git a/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/util/WeChatUtil.java b/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/util/WeChatUtil.java
deleted file mode 100644
index 9995319cc2c9861b3e7224c252a997ba63cbdca6..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/util/WeChatUtil.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package cn.bootx.platform.starter.wechat.util;
-
-import cn.hutool.core.util.StrUtil;
-import lombok.experimental.UtilityClass;
-
-/**
- * 微信工具类
- *
- * @author xxm
- * @since 2022/8/5
- */
-@UtilityClass
-public class WeChatUtil {
-
-    /**
-     * 获取微信二维码链接的参数值
-     */
-    public String getKeyByUrl(String url) {
-        return StrUtil.subAfter(url, "/q/", true);
-    }
-
-}
diff --git a/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
deleted file mode 100644
index 21bbc21391e613f3a4dabf9d208af32bac2d7194..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
+++ /dev/null
@@ -1 +0,0 @@
-cn.bootx.platform.starter.wechat.WeChatAutoConfiguration
diff --git a/bootx-platform/bootx-common-starters/common-starter-wecom/pom.xml b/bootx-platform/bootx-common-starters/common-starter-wecom/pom.xml
deleted file mode 100644
index 95b8d19fb6428684a803c268e214b52a92fd8646..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-wecom/pom.xml
+++ /dev/null
@@ -1,40 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <parent>
-        <groupId>cn.bootx.platform</groupId>
-        <artifactId>bootx-common-starters</artifactId>
-        <version>1.3.6.2</version>
-    </parent>
-    <modelVersion>4.0.0</modelVersion>
-    <packaging>jar</packaging>
-
-    <artifactId>common-starter-wecom</artifactId>
-
-    <dependencies>
-        <dependency>
-            <groupId>com.github.binarywang</groupId>
-            <artifactId>weixin-java-cp</artifactId>
-            <version>${wxjava.version}</version>
-            <exclusions>
-                <exclusion>
-                    <artifactId>commons-io</artifactId>
-                    <groupId>commons-io</groupId>
-                </exclusion>
-                <exclusion>
-                    <artifactId>guava</artifactId>
-                    <groupId>com.google.guava</groupId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-        <dependency>
-            <groupId>cn.bootx.platform</groupId>
-            <artifactId>common-mybatis-plus</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>cn.bootx.platform</groupId>
-            <artifactId>common-starter-data-perm</artifactId>
-        </dependency>
-    </dependencies>
-</project>
diff --git a/bootx-platform/bootx-common-starters/common-starter-wecom/src/main/java/cn/bootx/platform/starter/wecom/WeComAutoConfiguration.java b/bootx-platform/bootx-common-starters/common-starter-wecom/src/main/java/cn/bootx/platform/starter/wecom/WeComAutoConfiguration.java
deleted file mode 100644
index 1f2b4f742b95f054ad4fd1f1649898b9e62112d3..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-wecom/src/main/java/cn/bootx/platform/starter/wecom/WeComAutoConfiguration.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package cn.bootx.platform.starter.wecom;
-
-import org.apache.ibatis.annotations.Mapper;
-import org.mybatis.spring.annotation.MapperScan;
-import org.springframework.boot.autoconfigure.AutoConfiguration;
-import org.springframework.boot.context.properties.ConfigurationPropertiesScan;
-import org.springframework.context.annotation.ComponentScan;
-
-/**
- * 企业微信
- *
- * @author xxm
- * @since 2022/7/22
- */
-@ComponentScan
-@ConfigurationPropertiesScan
-@AutoConfiguration
-@MapperScan(annotationClass = Mapper.class)
-public class WeComAutoConfiguration {
-
-}
diff --git a/bootx-platform/bootx-common-starters/common-starter-wecom/src/main/java/cn/bootx/platform/starter/wecom/code/WeComCode.java b/bootx-platform/bootx-common-starters/common-starter-wecom/src/main/java/cn/bootx/platform/starter/wecom/code/WeComCode.java
deleted file mode 100644
index 802a2367f937606eb7b8c48f84af110979744c44..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-wecom/src/main/java/cn/bootx/platform/starter/wecom/code/WeComCode.java
+++ /dev/null
@@ -1,38 +0,0 @@
-package cn.bootx.platform.starter.wecom.code;
-
-/**
- * 企微常量
- *
- * @author xxm
- * @since 2022/7/23
- */
-public interface WeComCode {
-
-    /* 请求地址 */
-    /** 撤回应用消息 */
-    String NOTICE_RECALL_URL = "https://qyapi.weixin.qq.com/cgi-bin/message/recall";
-
-    /** 机器人webhook */
-    String ROBOT_WEBHOOK_URL = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key={}";
-
-    /** 机器人文件上传 */
-    String ROBOT_UPLOAD_URL = "https://qyapi.weixin.qq.com/cgi-bin/webhook/upload_media?key={}&type=file";
-
-    /* 消息通知 */
-    /** 消息ID */
-    String NOTICE_MSG_ID = "msgid";
-
-    /* 请求参数 */
-    /** 文件名称 */
-    String FILE_NAME = "filename";
-
-    /** 文件长度 */
-    String FILE_LENGTH = "filelength";
-
-    /** 文件类型 */
-    String CONTENT_TYPE = "content-type";
-
-    /** 文件 */
-    String MEDIA = "media";
-
-}
diff --git a/bootx-platform/bootx-common-starters/common-starter-wecom/src/main/java/cn/bootx/platform/starter/wecom/configuration/WeComConfiguration.java b/bootx-platform/bootx-common-starters/common-starter-wecom/src/main/java/cn/bootx/platform/starter/wecom/configuration/WeComConfiguration.java
deleted file mode 100644
index 7eb779a1698e84de0725ee06b2370a084c400d50..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-wecom/src/main/java/cn/bootx/platform/starter/wecom/configuration/WeComConfiguration.java
+++ /dev/null
@@ -1,45 +0,0 @@
-package cn.bootx.platform.starter.wecom.configuration;
-
-import lombok.RequiredArgsConstructor;
-import me.chanjar.weixin.cp.api.WxCpService;
-import me.chanjar.weixin.cp.api.impl.WxCpServiceImpl;
-import me.chanjar.weixin.cp.config.WxCpConfigStorage;
-import me.chanjar.weixin.cp.config.impl.WxCpDefaultConfigImpl;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-
-/**
- * @author xxm
- * @since 2022/7/23
- */
-@Configuration
-@RequiredArgsConstructor
-public class WeComConfiguration {
-
-    private final WeComProperties weComProperties;
-
-    /**
-     * 微信公众号APIService
-     */
-    @Bean
-    public WxCpService wxCpService(WxCpConfigStorage wxMpConfigStorage) {
-        WxCpService wxMpService = new WxCpServiceImpl();
-        wxMpService.setWxCpConfigStorage(wxMpConfigStorage);
-        return wxMpService;
-    }
-
-    /**
-     * 微信配置
-     */
-    @Bean
-    public WxCpConfigStorage wxCpConfigStorage() {
-        WxCpDefaultConfigImpl config = new WxCpDefaultConfigImpl();
-        config.setAgentId(weComProperties.getAgentId());
-        config.setCorpId(weComProperties.getCorpId());
-        config.setCorpSecret(weComProperties.getCorpSecret());
-        config.setToken(weComProperties.getToken()); // 设置微信公众号的Token
-        config.setAesKey(weComProperties.getEncodingAesKey()); // 消息加解密密钥
-        return config;
-    }
-
-}
diff --git a/bootx-platform/bootx-common-starters/common-starter-wecom/src/main/java/cn/bootx/platform/starter/wecom/configuration/WeComProperties.java b/bootx-platform/bootx-common-starters/common-starter-wecom/src/main/java/cn/bootx/platform/starter/wecom/configuration/WeComProperties.java
deleted file mode 100644
index d3ee837a1c19441073e90623a2aaa5725029ce86..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-wecom/src/main/java/cn/bootx/platform/starter/wecom/configuration/WeComProperties.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package cn.bootx.platform.starter.wecom.configuration;
-
-import lombok.Getter;
-import lombok.Setter;
-import org.springframework.boot.context.properties.ConfigurationProperties;
-
-/**
- * 企业微信配置
- *
- * @author xxm
- * @since 2022/7/22
- */
-@Getter
-@Setter
-@ConfigurationProperties("bootx.starter.third.wecom")
-public class WeComProperties {
-
-    /** 应用id */
-    private Integer agentId;
-
-    /** 企业id */
-    private String corpId;
-
-    /** 企业Secret */
-    private String corpSecret;
-
-    /** token */
-    private String token;
-
-    /** 消息加解密密钥 */
-    private String encodingAesKey;
-
-}
diff --git a/bootx-platform/bootx-common-starters/common-starter-wecom/src/main/java/cn/bootx/platform/starter/wecom/controller/WecomRobotConfigController.java b/bootx-platform/bootx-common-starters/common-starter-wecom/src/main/java/cn/bootx/platform/starter/wecom/controller/WecomRobotConfigController.java
deleted file mode 100644
index c0cd78d42ba5d684d00e3d3aa89ef9b5b0d6ebc9..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-wecom/src/main/java/cn/bootx/platform/starter/wecom/controller/WecomRobotConfigController.java
+++ /dev/null
@@ -1,80 +0,0 @@
-package cn.bootx.platform.starter.wecom.controller;
-
-import cn.bootx.platform.common.core.rest.PageResult;
-import cn.bootx.platform.common.core.rest.Res;
-import cn.bootx.platform.common.core.rest.ResResult;
-import cn.bootx.platform.common.core.rest.param.PageParam;
-import cn.bootx.platform.starter.wecom.core.robot.service.WecomRobotConfigService;
-import cn.bootx.platform.starter.wecom.dto.robot.WecomRobotConfigDto;
-import cn.bootx.platform.starter.wecom.param.robot.WecomRobotConfigParam;
-import io.swagger.v3.oas.annotations.Operation;
-import io.swagger.v3.oas.annotations.tags.Tag;
-import lombok.RequiredArgsConstructor;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.List;
-
-/**
- * @author xxm
- * @since 2022/7/26
- */
-@Tag(name = "企业微信机器人配置")
-@RestController
-@RequestMapping("/wecom/robot/config")
-@RequiredArgsConstructor
-public class WecomRobotConfigController {
-
-    private final WecomRobotConfigService robotConfigService;
-
-    @Operation(summary = "新增机器人配置")
-    @PostMapping("/add")
-    public ResResult<Void> add(@RequestBody WecomRobotConfigParam param) {
-        robotConfigService.add(param);
-        return Res.ok();
-    }
-
-    @Operation(summary = "修改机器人配置")
-    @PostMapping("/update")
-    public ResResult<Void> update(@RequestBody WecomRobotConfigParam param) {
-        robotConfigService.update(param);
-        return Res.ok();
-    }
-
-    @Operation(summary = "分页")
-    @GetMapping("/page")
-    public ResResult<PageResult<WecomRobotConfigDto>> page(PageParam pageParam, WecomRobotConfigParam param) {
-        return Res.ok(robotConfigService.page(pageParam, param));
-    }
-
-    @Operation(summary = "查询全部")
-    @GetMapping("/findAll")
-    public ResResult<List<WecomRobotConfigDto>> findAll() {
-        return Res.ok(robotConfigService.findAll());
-    }
-
-    @Operation(summary = "获取详情")
-    @GetMapping("/findById")
-    public ResResult<WecomRobotConfigDto> findById(Long id) {
-        return Res.ok(robotConfigService.findById(id));
-    }
-
-    @Operation(summary = "删除")
-    @DeleteMapping("/delete")
-    public ResResult<Void> delete(Long id) {
-        robotConfigService.delete(id);
-        return Res.ok();
-    }
-
-    @Operation(summary = "编码是否被使用")
-    @GetMapping("/existsByCode")
-    public ResResult<Boolean> existsByCode(String code) {
-        return Res.ok(robotConfigService.existsByCode(code));
-    }
-
-    @Operation(summary = "编码是否被使用(不包含自己)")
-    @GetMapping("/existsByCodeNotId")
-    public ResResult<Boolean> existsByCode(String code, Long id) {
-        return Res.ok(robotConfigService.existsByCode(code, id));
-    }
-
-}
diff --git a/bootx-platform/bootx-common-starters/common-starter-wecom/src/main/java/cn/bootx/platform/starter/wecom/core/notice/domain/WxCpRecallNoticeResult.java b/bootx-platform/bootx-common-starters/common-starter-wecom/src/main/java/cn/bootx/platform/starter/wecom/core/notice/domain/WxCpRecallNoticeResult.java
deleted file mode 100644
index d7ea241ada6244c13d46f0b12fbb3bb35714b12f..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-wecom/src/main/java/cn/bootx/platform/starter/wecom/core/notice/domain/WxCpRecallNoticeResult.java
+++ /dev/null
@@ -1,5 +0,0 @@
-package cn.bootx.platform.starter.wecom.core.notice.domain;
-
-public class WxCpRecallNoticeResult {
-
-}
diff --git a/bootx-platform/bootx-common-starters/common-starter-wecom/src/main/java/cn/bootx/platform/starter/wecom/core/notice/executor/RecallNoticeRequestExecutor.java b/bootx-platform/bootx-common-starters/common-starter-wecom/src/main/java/cn/bootx/platform/starter/wecom/core/notice/executor/RecallNoticeRequestExecutor.java
deleted file mode 100644
index 6283acee16e338651439c9860322ed448b44e6b1..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-wecom/src/main/java/cn/bootx/platform/starter/wecom/core/notice/executor/RecallNoticeRequestExecutor.java
+++ /dev/null
@@ -1,45 +0,0 @@
-package cn.bootx.platform.starter.wecom.core.notice.executor;
-
-import cn.bootx.platform.common.jackson.util.JacksonUtil;
-import cn.hutool.http.HttpUtil;
-import me.chanjar.weixin.common.enums.WxType;
-import me.chanjar.weixin.common.error.WxError;
-import me.chanjar.weixin.common.error.WxErrorException;
-import me.chanjar.weixin.common.util.http.RequestExecutor;
-import me.chanjar.weixin.common.util.http.ResponseHandler;
-
-import java.io.IOException;
-import java.util.HashMap;
-import java.util.Map;
-
-import static cn.bootx.platform.starter.wecom.code.WeComCode.NOTICE_MSG_ID;
-
-/**
- * 消息撤回请求执行器.
- *
- * @author xxm
- * @since 2022/7/23
- */
-public class RecallNoticeRequestExecutor implements RequestExecutor<WxError, String> {
-
-    @Override
-    public WxError execute(String uri, String data, WxType wxType) throws WxErrorException {
-
-        Map<String, String> map = new HashMap<>(1);
-        map.put(NOTICE_MSG_ID, data);
-        String response = HttpUtil.createPost(uri).body(JacksonUtil.toJson(map)).execute().body();
-
-        WxError result = WxError.fromJson(response);
-        if (result.getErrorCode() != 0) {
-            throw new WxErrorException(result);
-        }
-        return result;
-    }
-
-    @Override
-    public void execute(String uri, String data, ResponseHandler<WxError> handler, WxType wxType)
-            throws WxErrorException, IOException {
-        handler.handle(this.execute(uri, data, wxType));
-    }
-
-}
diff --git a/bootx-platform/bootx-common-starters/common-starter-wecom/src/main/java/cn/bootx/platform/starter/wecom/core/notice/service/WeComNoticeService.java b/bootx-platform/bootx-common-starters/common-starter-wecom/src/main/java/cn/bootx/platform/starter/wecom/core/notice/service/WeComNoticeService.java
deleted file mode 100644
index 9c5f7c721da070741c75a24ba9aa687ee36cf9cb..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-wecom/src/main/java/cn/bootx/platform/starter/wecom/core/notice/service/WeComNoticeService.java
+++ /dev/null
@@ -1,71 +0,0 @@
-package cn.bootx.platform.starter.wecom.core.notice.service;
-
-import cn.bootx.platform.starter.wecom.configuration.WeComProperties;
-import cn.bootx.platform.starter.wecom.core.notice.executor.RecallNoticeRequestExecutor;
-import cn.hutool.core.io.FileTypeUtil;
-import cn.hutool.core.io.IoUtil;
-import lombok.RequiredArgsConstructor;
-import lombok.SneakyThrows;
-import lombok.extern.slf4j.Slf4j;
-import me.chanjar.weixin.common.bean.result.WxMediaUploadResult;
-import me.chanjar.weixin.cp.api.WxCpMediaService;
-import me.chanjar.weixin.cp.api.WxCpMessageService;
-import me.chanjar.weixin.cp.api.WxCpService;
-import me.chanjar.weixin.cp.bean.message.WxCpMessage;
-import me.chanjar.weixin.cp.bean.message.WxCpMessageSendResult;
-import org.springframework.stereotype.Service;
-
-import java.io.ByteArrayInputStream;
-import java.io.InputStream;
-
-import static cn.bootx.platform.starter.wecom.code.WeComCode.NOTICE_RECALL_URL;
-
-/**
- * 企业微信消息发送
- *
- * @author xxm
- * @since 2022/7/23
- */
-@Slf4j
-@Service
-@RequiredArgsConstructor
-public class WeComNoticeService {
-
-    private final WxCpService wxCpService;
-
-    private final WeComProperties weComProperties;
-
-    /**
-     * 发送应用消息
-     * @return 消息id, 可用于撤回
-     */
-    @SneakyThrows
-    public String sendNotice(WxCpMessage message) {
-        WxCpMessageService messageService = wxCpService.getMessageService();
-        message.setAgentId(weComProperties.getAgentId());
-        WxCpMessageSendResult result = messageService.send(message);
-        return result.getMsgId();
-    }
-
-    /**
-     * 撤回应用消息
-     * @param msgId 消息id
-     */
-    @SneakyThrows
-    public void recallNotice(String msgId) {
-        wxCpService.execute(new RecallNoticeRequestExecutor(), NOTICE_RECALL_URL, msgId);
-    }
-
-    /**
-     * 上传临时素材
-     */
-    @SneakyThrows
-    public String updatedMedia(InputStream inputStream, String mediaType) {
-        WxCpMediaService mediaService = wxCpService.getMediaService();
-        byte[] bytes = IoUtil.readBytes(inputStream);
-        String fileType = FileTypeUtil.getType(new ByteArrayInputStream(bytes));
-        WxMediaUploadResult result = mediaService.upload(mediaType, fileType, new ByteArrayInputStream(bytes));
-        return result.getMediaId();
-    }
-
-}
diff --git a/bootx-platform/bootx-common-starters/common-starter-wecom/src/main/java/cn/bootx/platform/starter/wecom/core/robot/convert/WecomRobotConfigConvert.java b/bootx-platform/bootx-common-starters/common-starter-wecom/src/main/java/cn/bootx/platform/starter/wecom/core/robot/convert/WecomRobotConfigConvert.java
deleted file mode 100644
index 35d481edeaac338c85d09af7e34fcada33d0992b..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-wecom/src/main/java/cn/bootx/platform/starter/wecom/core/robot/convert/WecomRobotConfigConvert.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package cn.bootx.platform.starter.wecom.core.robot.convert;
-
-import cn.bootx.platform.starter.wecom.param.robot.WecomRobotConfigParam;
-import cn.bootx.platform.starter.wecom.core.robot.entity.WecomRobotConfig;
-import cn.bootx.platform.starter.wecom.dto.robot.WecomRobotConfigDto;
-import org.mapstruct.Mapper;
-import org.mapstruct.factory.Mappers;
-
-/**
- * 企业微信机器人配置
- *
- * @author bootx
- * @since 2022-07-23
- */
-@Mapper
-public interface WecomRobotConfigConvert {
-
-    WecomRobotConfigConvert CONVERT = Mappers.getMapper(WecomRobotConfigConvert.class);
-
-    WecomRobotConfig convert(WecomRobotConfigParam in);
-
-    WecomRobotConfigDto convert(WecomRobotConfig in);
-
-}
diff --git a/bootx-platform/bootx-common-starters/common-starter-wecom/src/main/java/cn/bootx/platform/starter/wecom/core/robot/dao/WecomRobotConfigManager.java b/bootx-platform/bootx-common-starters/common-starter-wecom/src/main/java/cn/bootx/platform/starter/wecom/core/robot/dao/WecomRobotConfigManager.java
deleted file mode 100644
index f69bbd123650a331717fb10a2434b4346f31eb33..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-wecom/src/main/java/cn/bootx/platform/starter/wecom/core/robot/dao/WecomRobotConfigManager.java
+++ /dev/null
@@ -1,53 +0,0 @@
-package cn.bootx.platform.starter.wecom.core.robot.dao;
-
-import cn.bootx.platform.common.mybatisplus.util.MpUtil;
-import cn.bootx.platform.starter.wecom.core.robot.entity.WecomRobotConfig;
-import cn.bootx.platform.starter.wecom.param.robot.WecomRobotConfigParam;
-import cn.bootx.platform.common.core.rest.param.PageParam;
-import cn.bootx.platform.common.mybatisplus.base.MpIdEntity;
-import cn.bootx.platform.common.mybatisplus.impl.BaseManager;
-import cn.hutool.core.util.StrUtil;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import lombok.RequiredArgsConstructor;
-import org.springframework.stereotype.Repository;
-
-import java.util.Optional;
-
-/**
- * 企业微信机器人配置
- *
- * @author bootx
- * @since 2022-07-23
- */
-@Repository
-@RequiredArgsConstructor
-public class WecomRobotConfigManager extends BaseManager<WecomRobotConfigMapper, WecomRobotConfig> {
-
-    /**
-     * 根据code获取机器人配置
-     */
-    public Optional<WecomRobotConfig> findByCode(String code) {
-        return findByField(WecomRobotConfig::getCode, code);
-    }
-
-    public boolean existsByCode(String code) {
-        return existedByField(WecomRobotConfig::getCode, code);
-    }
-
-    public boolean existsByCode(String code, Long id) {
-        return lambdaQuery().eq(WecomRobotConfig::getCode, code).ne(MpIdEntity::getId, id).exists();
-    }
-
-    /**
-     * 分页
-     */
-    public Page<WecomRobotConfig> page(PageParam pageParam, WecomRobotConfigParam param) {
-        Page<WecomRobotConfig> mpPage = MpUtil.getMpPage(pageParam, WecomRobotConfig.class);
-        return lambdaQuery().like(StrUtil.isNotBlank(param.getCode()), WecomRobotConfig::getCode, param.getCode())
-            .like(StrUtil.isNotBlank(param.getName()), WecomRobotConfig::getCode, param.getName())
-            .like(StrUtil.isNotBlank(param.getWebhookKey()), WecomRobotConfig::getWebhookKey, param.getWebhookKey())
-            .orderByDesc(MpIdEntity::getId)
-            .page(mpPage);
-    }
-
-}
diff --git a/bootx-platform/bootx-common-starters/common-starter-wecom/src/main/java/cn/bootx/platform/starter/wecom/core/robot/dao/WecomRobotConfigMapper.java b/bootx-platform/bootx-common-starters/common-starter-wecom/src/main/java/cn/bootx/platform/starter/wecom/core/robot/dao/WecomRobotConfigMapper.java
deleted file mode 100644
index 3eee2d08b624690344f52ee74593d760eb153043..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-wecom/src/main/java/cn/bootx/platform/starter/wecom/core/robot/dao/WecomRobotConfigMapper.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package cn.bootx.platform.starter.wecom.core.robot.dao;
-
-import cn.bootx.platform.starter.wecom.core.robot.entity.WecomRobotConfig;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import org.apache.ibatis.annotations.Mapper;
-
-/**
- * 企业微信机器人配置
- *
- * @author bootx
- * @since 2022-07-23
- */
-@Mapper
-public interface WecomRobotConfigMapper extends BaseMapper<WecomRobotConfig> {
-
-}
diff --git a/bootx-platform/bootx-common-starters/common-starter-wecom/src/main/java/cn/bootx/platform/starter/wecom/core/robot/domin/UploadMedia.java b/bootx-platform/bootx-common-starters/common-starter-wecom/src/main/java/cn/bootx/platform/starter/wecom/core/robot/domin/UploadMedia.java
deleted file mode 100644
index 8a4bb67d207bfe8e35176d18424b1108fdb1294a..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-wecom/src/main/java/cn/bootx/platform/starter/wecom/core/robot/domin/UploadMedia.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package cn.bootx.platform.starter.wecom.core.robot.domin;
-
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-import lombok.experimental.Accessors;
-
-import java.io.InputStream;
-
-/**
- * 企微文件上传
- *
- * @author xxm
- * @since 2022/7/24
- */
-@Data
-@Accessors(chain = true)
-@Schema(title = "企微文件上传")
-public class UploadMedia {
-
-    @Schema(description = "文件名称")
-    private String filename;
-
-    @Schema(description = "文件类型")
-    private String fileType;
-
-    @Schema(description = "文件流")
-    private InputStream inputStream;
-
-}
diff --git a/bootx-platform/bootx-common-starters/common-starter-wecom/src/main/java/cn/bootx/platform/starter/wecom/core/robot/entity/WecomRobotConfig.java b/bootx-platform/bootx-common-starters/common-starter-wecom/src/main/java/cn/bootx/platform/starter/wecom/core/robot/entity/WecomRobotConfig.java
deleted file mode 100644
index b38199c7f22c31c6bcd2837aa9f81bb8f9dc2ef9..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-wecom/src/main/java/cn/bootx/platform/starter/wecom/core/robot/entity/WecomRobotConfig.java
+++ /dev/null
@@ -1,57 +0,0 @@
-package cn.bootx.platform.starter.wecom.core.robot.entity;
-
-import cn.bootx.platform.starter.wecom.core.robot.convert.WecomRobotConfigConvert;
-import cn.bootx.platform.starter.wecom.param.robot.WecomRobotConfigParam;
-import cn.bootx.platform.common.core.function.EntityBaseFunction;
-import cn.bootx.platform.common.mybatisplus.base.MpBaseEntity;
-import cn.bootx.platform.starter.wecom.code.WeComCode;
-import cn.bootx.platform.starter.wecom.dto.robot.WecomRobotConfigDto;
-import cn.hutool.core.util.StrUtil;
-import com.baomidou.mybatisplus.annotation.TableName;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.experimental.Accessors;
-
-/**
- * 企业微信机器人配置
- *
- * @author bootx
- * @since 2022-07-23
- */
-@EqualsAndHashCode(callSuper = true)
-@Data
-@TableName("starter_wecom_robot_config")
-@Accessors(chain = true)
-public class WecomRobotConfig extends MpBaseEntity implements EntityBaseFunction<WecomRobotConfigDto> {
-
-    /** 名称 */
-    private String name;
-
-    /** 编号 */
-    private String code;
-
-    /** webhook地址的key */
-    private String webhookKey;
-
-    /** 备注 */
-    private String remark;
-
-    /**
-     * 获取webhook的地址
-     */
-    public String toWebhookUrl() {
-        return StrUtil.format(WeComCode.ROBOT_WEBHOOK_URL, webhookKey);
-    }
-
-    /** 创建对象 */
-    public static WecomRobotConfig init(WecomRobotConfigParam in) {
-        return WecomRobotConfigConvert.CONVERT.convert(in);
-    }
-
-    /** 转换成dto */
-    @Override
-    public WecomRobotConfigDto toDto() {
-        return WecomRobotConfigConvert.CONVERT.convert(this);
-    }
-
-}
diff --git a/bootx-platform/bootx-common-starters/common-starter-wecom/src/main/java/cn/bootx/platform/starter/wecom/core/robot/executor/RobotMediaFileUploadRequestExecutor.java b/bootx-platform/bootx-common-starters/common-starter-wecom/src/main/java/cn/bootx/platform/starter/wecom/core/robot/executor/RobotMediaFileUploadRequestExecutor.java
deleted file mode 100644
index b8abd006aceb01dbe917c463c6edf5aa9751cab5..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-wecom/src/main/java/cn/bootx/platform/starter/wecom/core/robot/executor/RobotMediaFileUploadRequestExecutor.java
+++ /dev/null
@@ -1,47 +0,0 @@
-package cn.bootx.platform.starter.wecom.core.robot.executor;
-
-import cn.bootx.platform.starter.wecom.code.WeComCode;
-import cn.bootx.platform.starter.wecom.core.robot.domin.UploadMedia;
-import cn.hutool.http.HttpUtil;
-import me.chanjar.weixin.common.bean.result.WxMediaUploadResult;
-import me.chanjar.weixin.common.enums.WxType;
-import me.chanjar.weixin.common.error.WxError;
-import me.chanjar.weixin.common.error.WxErrorException;
-import me.chanjar.weixin.common.util.fs.FileUtils;
-import me.chanjar.weixin.common.util.http.RequestExecutor;
-import me.chanjar.weixin.common.util.http.ResponseHandler;
-
-import java.io.File;
-import java.io.IOException;
-
-/**
- * 机器人文件素材上传
- *
- * @author xxm
- * @since 2022/7/23
- */
-public class RobotMediaFileUploadRequestExecutor implements RequestExecutor<WxMediaUploadResult, UploadMedia> {
-
-    @Override
-    public WxMediaUploadResult execute(String uri, UploadMedia uploadMedia, WxType wxType)
-            throws WxErrorException, IOException {
-        File tmpFile = FileUtils.createTmpFile(uploadMedia.getInputStream(), uploadMedia.getFilename(),
-                uploadMedia.getFileType());
-        String filename = uploadMedia.getFilename() + "." + uploadMedia.getFileType();
-        String response;
-        response = HttpUtil.createPost(uri).form(WeComCode.MEDIA, tmpFile, filename).execute().body();
-
-        WxError result = WxError.fromJson(response);
-        if (result.getErrorCode() != 0) {
-            throw new WxErrorException(result);
-        }
-        return WxMediaUploadResult.fromJson(response);
-    }
-
-    @Override
-    public void execute(String uri, UploadMedia data, ResponseHandler<WxMediaUploadResult> handler, WxType wxType)
-            throws WxErrorException, IOException {
-        handler.handle(this.execute(uri, data, wxType));
-    }
-
-}
diff --git a/bootx-platform/bootx-common-starters/common-starter-wecom/src/main/java/cn/bootx/platform/starter/wecom/core/robot/service/WeComRobotNoticeService.java b/bootx-platform/bootx-common-starters/common-starter-wecom/src/main/java/cn/bootx/platform/starter/wecom/core/robot/service/WeComRobotNoticeService.java
deleted file mode 100644
index ee14630e5b7b8e44d0362419657ac73134a54d98..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-wecom/src/main/java/cn/bootx/platform/starter/wecom/core/robot/service/WeComRobotNoticeService.java
+++ /dev/null
@@ -1,132 +0,0 @@
-package cn.bootx.platform.starter.wecom.core.robot.service;
-
-import cn.bootx.platform.starter.wecom.core.robot.executor.RobotMediaFileUploadRequestExecutor;
-import cn.bootx.platform.common.core.exception.DataNotExistException;
-import cn.bootx.platform.starter.wecom.core.robot.dao.WecomRobotConfigManager;
-import cn.bootx.platform.starter.wecom.core.robot.domin.UploadMedia;
-import cn.bootx.platform.starter.wecom.core.robot.entity.WecomRobotConfig;
-import cn.hutool.core.io.FileTypeUtil;
-import cn.hutool.core.io.IoUtil;
-import cn.hutool.core.io.file.FileNameUtil;
-import cn.hutool.core.util.IdUtil;
-import cn.hutool.core.util.StrUtil;
-import lombok.RequiredArgsConstructor;
-import lombok.SneakyThrows;
-import lombok.extern.slf4j.Slf4j;
-import me.chanjar.weixin.common.bean.result.WxMediaUploadResult;
-import me.chanjar.weixin.cp.api.WxCpGroupRobotService;
-import me.chanjar.weixin.cp.api.WxCpService;
-import me.chanjar.weixin.cp.bean.article.NewArticle;
-import org.springframework.stereotype.Service;
-
-import java.io.ByteArrayInputStream;
-import java.io.InputStream;
-import java.util.List;
-
-import static cn.bootx.platform.starter.wecom.code.WeComCode.ROBOT_UPLOAD_URL;
-
-/**
- * 企微机器人消息通知
- *
- * @author xxm
- * @since 2022/7/23
- */
-@Slf4j
-@Service
-@RequiredArgsConstructor
-public class WeComRobotNoticeService {
-
-    private final WxCpService wxCpService;
-
-    private final WecomRobotConfigManager robotConfigManager;
-
-    /**
-     * 发送文本消息
-     */
-    @SneakyThrows
-    public void sendTextNotice(String code, String content, List<String> mentionedList, List<String> mobileList) {
-        WecomRobotConfig robotConfig = robotConfigManager.findByCode(code)
-            .orElseThrow(() -> new DataNotExistException("企业微信机器人配置未找到"));
-        WxCpGroupRobotService robotService = wxCpService.getGroupRobotService();
-        robotService.sendText(robotConfig.toWebhookUrl(), content, mentionedList, mobileList);
-    }
-
-    /**
-     * 发送markdown消息
-     */
-    @SneakyThrows
-    public void sendMarkdownNotice(String code, String content) {
-        WecomRobotConfig robotConfig = robotConfigManager.findByCode(code)
-            .orElseThrow(() -> new DataNotExistException("企业微信机器人配置未找到"));
-        WxCpGroupRobotService robotService = wxCpService.getGroupRobotService();
-        robotService.sendMarkdown(robotConfig.toWebhookUrl(), content);
-    }
-
-    /**
-     * 发送图片消息
-     */
-    @SneakyThrows
-    public void sendImageNotice(String code, String imageBase64, String md5) {
-        WecomRobotConfig robotConfig = robotConfigManager.findByCode(code)
-            .orElseThrow(() -> new DataNotExistException("企业微信机器人配置未找到"));
-        WxCpGroupRobotService robotService = wxCpService.getGroupRobotService();
-        robotService.sendImage(robotConfig.toWebhookUrl(), imageBase64, md5);
-    }
-
-    /**
-     * 发送图文消息
-     */
-    @SneakyThrows
-    public void sendNewsNotice(String code, List<NewArticle> articleList) {
-        WecomRobotConfig robotConfig = robotConfigManager.findByCode(code)
-            .orElseThrow(() -> new DataNotExistException("企业微信机器人配置未找到"));
-        WxCpGroupRobotService robotService = wxCpService.getGroupRobotService();
-        robotService.sendNews(robotConfig.toWebhookUrl(), articleList);
-    }
-
-    /**
-     * 发送文件消息
-     */
-    @SneakyThrows
-    public void sendFIleNotice(String code, String mediaId) {
-        WecomRobotConfig robotConfig = robotConfigManager.findByCode(code)
-            .orElseThrow(() -> new DataNotExistException("企业微信机器人配置未找到"));
-        WxCpGroupRobotService robotService = wxCpService.getGroupRobotService();
-        robotService.sendFile(robotConfig.toWebhookUrl(), mediaId);
-    }
-
-    /**
-     * 机器人临时文件上传
-     */
-    @SneakyThrows
-    public String updatedMedia(String code, InputStream inputStream) {
-        byte[] bytes = IoUtil.readBytes(inputStream);
-        String fileType = FileTypeUtil.getType(new ByteArrayInputStream(bytes));
-        UploadMedia uploadMedia = new UploadMedia().setFileType(fileType)
-            .setFilename(IdUtil.getSnowflakeNextIdStr())
-            .setInputStream(new ByteArrayInputStream(bytes));
-        WecomRobotConfig robotConfig = robotConfigManager.findByCode(code)
-            .orElseThrow(() -> new DataNotExistException("企业微信机器人配置未找到"));
-        String url = StrUtil.format(ROBOT_UPLOAD_URL, robotConfig.getWebhookKey());
-        WxMediaUploadResult result = wxCpService.execute(new RobotMediaFileUploadRequestExecutor(), url, uploadMedia);
-        return result.getMediaId();
-    }
-
-    /**
-     * 机器人临时文件上传
-     */
-    @SneakyThrows
-    public String updatedMedia(String code, InputStream inputStream, String filename) {
-        byte[] bytes = IoUtil.readBytes(inputStream);
-        String fileType = FileTypeUtil.getType(new ByteArrayInputStream(bytes), filename);
-        UploadMedia uploadMedia = new UploadMedia().setFileType(fileType)
-            .setFilename(FileNameUtil.mainName(filename))
-            .setInputStream(new ByteArrayInputStream(bytes));
-        WecomRobotConfig robotConfig = robotConfigManager.findByCode(code)
-            .orElseThrow(() -> new DataNotExistException("企业微信机器人配置未找到"));
-        String url = StrUtil.format(ROBOT_UPLOAD_URL, robotConfig.getWebhookKey());
-        WxMediaUploadResult result = wxCpService.execute(new RobotMediaFileUploadRequestExecutor(), url, uploadMedia);
-        return result.getMediaId();
-    }
-
-}
diff --git a/bootx-platform/bootx-common-starters/common-starter-wecom/src/main/java/cn/bootx/platform/starter/wecom/core/robot/service/WecomRobotConfigService.java b/bootx-platform/bootx-common-starters/common-starter-wecom/src/main/java/cn/bootx/platform/starter/wecom/core/robot/service/WecomRobotConfigService.java
deleted file mode 100644
index c29ab88ed8a9676ba1609f93b44d4bca7e0c4172..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-wecom/src/main/java/cn/bootx/platform/starter/wecom/core/robot/service/WecomRobotConfigService.java
+++ /dev/null
@@ -1,94 +0,0 @@
-package cn.bootx.platform.starter.wecom.core.robot.service;
-
-import cn.bootx.platform.starter.wecom.param.robot.WecomRobotConfigParam;
-import cn.bootx.platform.common.core.exception.DataNotExistException;
-import cn.bootx.platform.common.core.rest.PageResult;
-import cn.bootx.platform.common.core.rest.param.PageParam;
-import cn.bootx.platform.common.core.util.ResultConvertUtil;
-import cn.bootx.platform.common.mybatisplus.util.MpUtil;
-import cn.bootx.platform.starter.wecom.core.robot.dao.WecomRobotConfigManager;
-import cn.bootx.platform.starter.wecom.core.robot.entity.WecomRobotConfig;
-import cn.bootx.platform.starter.wecom.dto.robot.WecomRobotConfigDto;
-import cn.hutool.core.bean.BeanUtil;
-import cn.hutool.core.bean.copier.CopyOptions;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Service;
-
-import java.util.List;
-
-/**
- * 企业微信机器人配置
- *
- * @author bootx
- * @since 2022-07-23
- */
-@Slf4j
-@Service
-@RequiredArgsConstructor
-public class WecomRobotConfigService {
-
-    private final WecomRobotConfigManager robotConfigManager;
-
-    /**
-     * 添加
-     */
-    public void add(WecomRobotConfigParam param) {
-        WecomRobotConfig wecomRobotConfig = WecomRobotConfig.init(param);
-        robotConfigManager.save(wecomRobotConfig);
-    }
-
-    /**
-     * 修改
-     */
-    public void update(WecomRobotConfigParam param) {
-        WecomRobotConfig wecomRobotConfig = robotConfigManager.findById(param.getId())
-            .orElseThrow(DataNotExistException::new);
-
-        BeanUtil.copyProperties(param, wecomRobotConfig, CopyOptions.create().ignoreNullValue());
-        robotConfigManager.updateById(wecomRobotConfig);
-    }
-
-    /**
-     * 分页
-     */
-    public PageResult<WecomRobotConfigDto> page(PageParam pageParam, WecomRobotConfigParam wecomRobotConfigParam) {
-        return MpUtil.convert2DtoPageResult(robotConfigManager.page(pageParam, wecomRobotConfigParam));
-    }
-
-    /**
-     * 获取单条
-     */
-    public WecomRobotConfigDto findById(Long id) {
-        return robotConfigManager.findById(id).map(WecomRobotConfig::toDto).orElseThrow(DataNotExistException::new);
-    }
-
-    /**
-     * 获取全部
-     */
-    public List<WecomRobotConfigDto> findAll() {
-        return ResultConvertUtil.dtoListConvert(robotConfigManager.findAll());
-    }
-
-    /**
-     * 删除
-     */
-    public void delete(Long id) {
-        robotConfigManager.deleteById(id);
-    }
-
-    /**
-     * 编码是否已经存在
-     */
-    public boolean existsByCode(String code) {
-        return robotConfigManager.existsByCode(code);
-    }
-
-    /**
-     * 编码是否已经存在(不包含自身)
-     */
-    public boolean existsByCode(String code, Long id) {
-        return robotConfigManager.existsByCode(code, id);
-    }
-
-}
diff --git a/bootx-platform/bootx-common-starters/common-starter-wecom/src/main/java/cn/bootx/platform/starter/wecom/dto/robot/WecomRobotConfigDto.java b/bootx-platform/bootx-common-starters/common-starter-wecom/src/main/java/cn/bootx/platform/starter/wecom/dto/robot/WecomRobotConfigDto.java
deleted file mode 100644
index caa743431b21efe2e1d6b3b9d36d81f7d4ff084c..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-wecom/src/main/java/cn/bootx/platform/starter/wecom/dto/robot/WecomRobotConfigDto.java
+++ /dev/null
@@ -1,35 +0,0 @@
-package cn.bootx.platform.starter.wecom.dto.robot;
-
-import cn.bootx.platform.common.core.rest.dto.BaseDto;
-import cn.bootx.platform.starter.data.perm.sensitive.SensitiveInfo;
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.experimental.Accessors;
-
-/**
- * 企业微信机器人配置
- *
- * @author bootx
- * @since 2022-07-23
- */
-@EqualsAndHashCode(callSuper = true)
-@Data
-@Schema(title = "企业微信机器人配置")
-@Accessors(chain = true)
-public class WecomRobotConfigDto extends BaseDto {
-
-    @Schema(description = "名称")
-    private String name;
-
-    @Schema(description = "编号")
-    private String code;
-
-    @SensitiveInfo
-    @Schema(description = "webhook地址的key值")
-    private String webhookKey;
-
-    @Schema(description = "备注")
-    private String remark;
-
-}
diff --git a/bootx-platform/bootx-common-starters/common-starter-wecom/src/main/java/cn/bootx/platform/starter/wecom/param/robot/WecomRobotConfigParam.java b/bootx-platform/bootx-common-starters/common-starter-wecom/src/main/java/cn/bootx/platform/starter/wecom/param/robot/WecomRobotConfigParam.java
deleted file mode 100644
index 6207c2c6be31c01bcb31b8779ca68aef061df02f..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-wecom/src/main/java/cn/bootx/platform/starter/wecom/param/robot/WecomRobotConfigParam.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package cn.bootx.platform.starter.wecom.param.robot;
-
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-import lombok.experimental.Accessors;
-
-/**
- * 企业微信机器人配置
- *
- * @author bootx
- * @since 2022-07-23
- */
-@Data
-@Schema(title = "企业微信机器人配置")
-@Accessors(chain = true)
-public class WecomRobotConfigParam {
-
-    @Schema(description = "主键")
-    private Long id;
-
-    @Schema(description = "名称")
-    private String name;
-
-    @Schema(description = "编号")
-    private String code;
-
-    @Schema(description = "webhook地址的key值")
-    private String webhookKey;
-
-    @Schema(description = "备注")
-    private String remark;
-
-}
diff --git a/bootx-platform/bootx-common-starters/common-starter-wecom/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/bootx-platform/bootx-common-starters/common-starter-wecom/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
deleted file mode 100644
index 79adedc89a8bfddbf48a6e50431e4e3b46e8f8cc..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-common-starters/common-starter-wecom/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
+++ /dev/null
@@ -1 +0,0 @@
-cn.bootx.platform.starter.wecom.WeComAutoConfiguration
diff --git a/bootx-platform/bootx-common-starters/pom.xml b/bootx-platform/bootx-common-starters/pom.xml
index 7083810d0a9f0c7580cf30438166838241c84f8e..dc01a88f2b9efdfd173ac6d45871e6eecc1f313a 100644
--- a/bootx-platform/bootx-common-starters/pom.xml
+++ b/bootx-platform/bootx-common-starters/pom.xml
@@ -18,10 +18,7 @@
         <module>common-starter-audit-log</module>
         <module>common-starter-data-perm</module>
         <module>common-starter-file</module>
-        <module>common-starter-dingtalk</module>
         <module>common-starter-monitor</module>
-        <module>common-starter-wechat</module>
-        <module>common-starter-wecom</module>
     </modules>
 
     <dependencies>
diff --git a/bootx-platform/bootx-commons/pom.xml b/bootx-platform/bootx-commons/pom.xml
index 9ae7f1fc50586714dca6d70aae158447a2640833..c5aa9e15a4f107689dbd7e89449e760fc5accfd6 100644
--- a/bootx-platform/bootx-commons/pom.xml
+++ b/bootx-platform/bootx-commons/pom.xml
@@ -63,6 +63,7 @@
                 <configuration>
                     <source>${java.version}</source>
                     <target>${java.version}</target>
+                    <compilerArgument>-parameters</compilerArgument>
                 </configuration>
             </plugin>
             <plugin>
diff --git a/bootx-platform/bootx-services/pom.xml b/bootx-platform/bootx-services/pom.xml
index 5e2f27464cca7ef72200a7c2baefc4f90faddac9..2cfb42337bed5dd10db43b70862b8947ef546830 100644
--- a/bootx-platform/bootx-services/pom.xml
+++ b/bootx-platform/bootx-services/pom.xml
@@ -17,7 +17,6 @@
     <modules>
         <module>service-baseapi</module>
         <module>service-iam</module>
-        <module>service-notice</module>
     </modules>
 
     <dependencies>
@@ -168,7 +167,6 @@
             <artifactId>common-exception-handler</artifactId>
         </dependency>
 
-
         <!-- 发号器 -->
         <dependency>
             <groupId>cn.bootx.platform</groupId>
@@ -233,6 +231,7 @@
                 <configuration>
                     <source>${java.version}</source>
                     <target>${java.version}</target>
+                    <compilerArgument>-parameters</compilerArgument>
                 </configuration>
             </plugin>
         </plugins>
diff --git a/bootx-platform/bootx-services/service-baseapi/src/main/java/cn/bootx/platform/baseapi/dto/chinaword/ChinaWordDto.java b/bootx-platform/bootx-services/service-baseapi/src/main/java/cn/bootx/platform/baseapi/dto/chinaword/ChinaWordDto.java
deleted file mode 100644
index f31a395b9328079f8fd0dff4ed455448fc788d43..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-baseapi/src/main/java/cn/bootx/platform/baseapi/dto/chinaword/ChinaWordDto.java
+++ /dev/null
@@ -1,30 +0,0 @@
-package cn.bootx.platform.baseapi.dto.chinaword;
-
-import cn.bootx.platform.common.core.rest.dto.BaseDto;
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.experimental.Accessors;
-
-/**
- * 敏感词
- * @author xxm
- * @since 2023-08-09
- */
-@EqualsAndHashCode(callSuper = true)
-@Data
-@Schema(title = "敏感词")
-@Accessors(chain = true)
-public class ChinaWordDto extends BaseDto {
-
-    @Schema(description = "敏感词")
-    private String word;
-    @Schema(description = "分类")
-    private String type;
-    @Schema(description = "描述")
-    private String description;
-    @Schema(description = "是否启用")
-    private Boolean enable;
-    @Schema(description = "是否是白名单名词")
-    private Boolean white;
-}
diff --git a/bootx-platform/bootx-services/service-baseapi/src/main/java/cn/bootx/platform/baseapi/dto/chinaword/ChinaWordVerifyResult.java b/bootx-platform/bootx-services/service-baseapi/src/main/java/cn/bootx/platform/baseapi/dto/chinaword/ChinaWordVerifyResult.java
deleted file mode 100644
index dc8887f5974961b7f6ed59923e32b4540b9cc605..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-baseapi/src/main/java/cn/bootx/platform/baseapi/dto/chinaword/ChinaWordVerifyResult.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package cn.bootx.platform.baseapi.dto.chinaword;
-
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-import lombok.experimental.Accessors;
-
-import java.util.Set;
-
-/**
- * 敏感词验证结果
- * @author xxm
- * @since 2023/8/9
- */
-@Data
-@Accessors(chain = true)
-@Schema(title = "敏感词验证结果")
-public class ChinaWordVerifyResult {
-
-    @Schema(description = "是否敏感")
-    private boolean sensitive;
-    @Schema(description = "敏感词数量")
-    private int count;
-    @Schema(description = "去重后的敏感词列表")
-    private Set<String> sensitiveWords;
-    @Schema(description = "脱敏后的文本")
-    private String text;
-}
diff --git a/bootx-platform/bootx-services/service-baseapi/src/main/java/cn/bootx/platform/baseapi/handler/region/ChinaRegionInitSqlHandler.java b/bootx-platform/bootx-services/service-baseapi/src/main/java/cn/bootx/platform/baseapi/handler/region/ChinaRegionInitSqlHandler.java
deleted file mode 100644
index df05b34d48db050666e9a7b7694b8257f4f51419..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-baseapi/src/main/java/cn/bootx/platform/baseapi/handler/region/ChinaRegionInitSqlHandler.java
+++ /dev/null
@@ -1,31 +0,0 @@
-package cn.bootx.platform.baseapi.handler.region;
-
-import com.baomidou.mybatisplus.extension.ddl.SimpleDdl;
-import org.springframework.stereotype.Component;
-
-import java.util.Arrays;
-import java.util.List;
-
-/**
- * 行政区域初始化
- *
- * @author xxm
- * @since 2023/2/7
- */
-@Component
-public class ChinaRegionInitSqlHandler extends SimpleDdl {
-
-    /**
-     * 速度太慢, 还是走手动SQL导入的方式
-     */
-    @Override
-    public List<String> getSqlFiles() {
-        return Arrays.asList(
-        // "db/region/base_province.sql",
-        // "db/region/base_city.sql",
-        // "db/region/base_area.sql",
-        // "db/region/base_street.sql"
-        );
-    }
-
-}
diff --git a/bootx-platform/bootx-services/service-baseapi/src/main/java/cn/bootx/platform/baseapi/param/chinaword/ChinaWordImportParam.java b/bootx-platform/bootx-services/service-baseapi/src/main/java/cn/bootx/platform/baseapi/param/chinaword/ChinaWordImportParam.java
deleted file mode 100644
index 5edd178b8ce976696cf4279654210680fffda7ff..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-baseapi/src/main/java/cn/bootx/platform/baseapi/param/chinaword/ChinaWordImportParam.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package cn.bootx.platform.baseapi.param.chinaword;
-
-import com.alibaba.excel.annotation.ExcelProperty;
-import lombok.Data;
-
-/**
- * 敏感词导入参数
- * @author xxm
- * @since 2023/8/12
- */
-@Data
-public class ChinaWordImportParam {
-    @ExcelProperty(value = "类型")
-    private String type;
-    @ExcelProperty("黑/白名单")
-    private String whiteOrBlack;
-    @ExcelProperty("敏感词")
-    private String word;
-}
diff --git a/bootx-platform/bootx-services/service-baseapi/src/main/java/cn/bootx/platform/baseapi/param/chinaword/ChinaWordParam.java b/bootx-platform/bootx-services/service-baseapi/src/main/java/cn/bootx/platform/baseapi/param/chinaword/ChinaWordParam.java
deleted file mode 100644
index 3e5c1fc78ae2d0760740a62746660597ebdfca0d..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-baseapi/src/main/java/cn/bootx/platform/baseapi/param/chinaword/ChinaWordParam.java
+++ /dev/null
@@ -1,31 +0,0 @@
-package cn.bootx.platform.baseapi.param.chinaword;
-
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-import lombok.experimental.Accessors;
-
-/**
- * 敏感词
- * @author xxm
- * @since 2023-08-09
- */
-@Data
-@Schema(title = "敏感词")
-@Accessors(chain = true)
-public class ChinaWordParam {
-
-    @Schema(description= "主键")
-    private Long id;
-
-    @Schema(description = "敏感词")
-    private String word;
-    @Schema(description = "分类")
-    private String type;
-    @Schema(description = "描述")
-    private String description;
-    @Schema(description = "是否启用")
-    private Boolean enable;
-    @Schema(description = "白名单名词")
-    private Boolean white;
-
-}
diff --git a/bootx-platform/bootx-services/service-baseapi/src/main/java/cn/bootx/platform/baseapi/param/chinaword/ChinaWordVerifyParam.java b/bootx-platform/bootx-services/service-baseapi/src/main/java/cn/bootx/platform/baseapi/param/chinaword/ChinaWordVerifyParam.java
deleted file mode 100644
index 46d2465a6e30132e5588f970f2f5c063de29ae96..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-baseapi/src/main/java/cn/bootx/platform/baseapi/param/chinaword/ChinaWordVerifyParam.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package cn.bootx.platform.baseapi.param.chinaword;
-
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-import lombok.experimental.Accessors;
-
-/**
- * 敏感词验证参数类
- * @author xxm
- * @since 2023/8/10
- */
-@Data
-@Accessors(chain = true)
-@Schema(title = "敏感词验证参数类")
-public class ChinaWordVerifyParam {
-    @Schema(description = "文本")
-    private String text;
-
-    @Schema(description = "间隔距离")
-    private int skip = 0;
-
-    @Schema(description = "替换字符")
-    private char symbol = '*';
-}
diff --git a/bootx-platform/bootx-services/service-iam/pom.xml b/bootx-platform/bootx-services/service-iam/pom.xml
index 40bbb5b4912ad2456877d88b22c8f4d3901a4692..1047d42e96147a936c86a09428cfe35215d6bcb8 100644
--- a/bootx-platform/bootx-services/service-iam/pom.xml
+++ b/bootx-platform/bootx-services/service-iam/pom.xml
@@ -53,16 +53,6 @@
             <groupId>cn.bootx.platform</groupId>
             <artifactId>common-websocket</artifactId>
         </dependency>
-        <!-- 钉钉平台 -->
-        <dependency>
-            <groupId>cn.bootx.platform</groupId>
-            <artifactId>common-starter-dingtalk</artifactId>
-        </dependency>
-        <!-- 微信公众平台 -->
-        <dependency>
-            <groupId>cn.bootx.platform</groupId>
-            <artifactId>common-starter-wechat</artifactId>
-        </dependency>
         <dependency>
             <groupId>org.quartz-scheduler</groupId>
             <artifactId>quartz</artifactId>
diff --git a/bootx-platform/bootx-services/service-iam/src/main/java/cn/bootx/platform/iam/core/auth/login/DingTalkLoginHandler.java b/bootx-platform/bootx-services/service-iam/src/main/java/cn/bootx/platform/iam/core/auth/login/DingTalkLoginHandler.java
deleted file mode 100644
index af48a97f5c62a4604dc4d4c5522ef39796ce511a..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-iam/src/main/java/cn/bootx/platform/iam/core/auth/login/DingTalkLoginHandler.java
+++ /dev/null
@@ -1,146 +0,0 @@
-package cn.bootx.platform.iam.core.auth.login;
-
-import cn.bootx.platform.common.core.exception.BizException;
-import cn.bootx.platform.iam.core.third.dao.UserThirdManager;
-import cn.bootx.platform.iam.core.third.entity.UserThird;
-import cn.bootx.platform.iam.core.third.entity.UserThirdInfo;
-import cn.bootx.platform.iam.core.third.service.UserTiredOperateService;
-import cn.bootx.platform.iam.core.user.dao.UserInfoManager;
-import cn.bootx.platform.iam.core.user.entity.UserInfo;
-import cn.bootx.platform.starter.auth.authentication.OpenIdAuthentication;
-import cn.bootx.platform.starter.auth.code.AuthLoginTypeCode;
-import cn.bootx.platform.starter.auth.configuration.AuthProperties;
-import cn.bootx.platform.starter.auth.entity.AuthInfoResult;
-import cn.bootx.platform.starter.auth.entity.LoginAuthContext;
-import cn.bootx.platform.starter.auth.exception.LoginFailureException;
-import cn.bootx.platform.starter.auth.util.SecurityUtil;
-import cn.bootx.platform.starter.dingtalk.core.user.service.DingUserService;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import lombok.val;
-import me.zhyd.oauth.config.AuthConfig;
-import me.zhyd.oauth.model.AuthCallback;
-import me.zhyd.oauth.model.AuthResponse;
-import me.zhyd.oauth.model.AuthUser;
-import me.zhyd.oauth.request.AuthDingTalkRequest;
-import me.zhyd.oauth.request.AuthRequest;
-import me.zhyd.oauth.utils.AuthStateUtils;
-import org.springframework.stereotype.Component;
-
-import java.util.Objects;
-
-/**
- * 钉钉登录
- *
- * @author xxm
- * @since 2022/4/2
- */
-@Slf4j
-@Component
-@RequiredArgsConstructor
-public class DingTalkLoginHandler implements OpenIdAuthentication {
-
-    private final UserTiredOperateService userTiredOperateService;
-
-    private final DingUserService dingUserService;
-
-    private final UserThirdManager userThirdManager;
-
-    private final UserInfoManager userInfoManager;
-
-    private final AuthProperties authProperties;
-
-    /**
-     * 钉钉登录
-     */
-    @Override
-    public String getLoginType() {
-        return AuthLoginTypeCode.DING_TALK;
-    }
-
-    /**
-     * 尝试认证, 获取用户
-     */
-    @Override
-    public AuthInfoResult attemptAuthentication(LoginAuthContext context) {
-        String authCode = context.getRequest().getParameter(AuthLoginTypeCode.AUTH_CODE);
-        String state = context.getRequest().getParameter(AuthLoginTypeCode.STATE);
-
-        AuthUser authUser = this.getAuthUser(authCode, state);
-        // 获取钉钉关联的用户id
-        UserThird userThird = userThirdManager.findByField(UserThird::getDingTalkId, authUser.getUuid())
-            .orElseThrow(() -> new LoginFailureException("钉钉没有找到绑定的用户"));
-
-        // 获取用户信息
-        UserInfo userInfo = userInfoManager.findById(userThird.getUserId())
-            .orElseThrow(() -> new LoginFailureException("用户不存在"));
-
-        return new AuthInfoResult().setUserDetail(userInfo.toUserDetail()).setId(userInfo.getId());
-    }
-
-    /**
-     * 获取登录地址
-     */
-    @Override
-    public String getLoginUrl() {
-        AuthRequest authRequest = this.getAuthRequest();
-        return authRequest.authorize(AuthStateUtils.createState());
-    }
-
-    /**
-     * 获取关联的的第三方平台用户信息
-     */
-    @Override
-    @SuppressWarnings("unchecked")
-    public AuthUser getAuthUser(String authCode, String state) {
-        AuthRequest authRequest = this.getAuthRequest();
-        AuthCallback callback = AuthCallback.builder().code(authCode).state(state).build();
-        AuthResponse<AuthUser> response = authRequest.login(callback);
-        if (!Objects.equals(response.getCode(), AuthLoginTypeCode.SUCCESS)) {
-            log.error("钉钉登录报错: {}", response.getMsg());
-            throw new LoginFailureException("钉钉登录出错");
-        }
-        return response.getData();
-    }
-
-    /**
-     * 绑定用户
-     */
-    @Override
-    public void bindUser(String authCode, String state) {
-        Long userId = SecurityUtil.getUserId();
-        AuthUser authUser = this.getAuthUser(authCode, state);
-        userTiredOperateService.checkOpenIdBind(authUser.getUuid(), UserThird::getDingTalkId);
-        userTiredOperateService.bindOpenId(userId, authUser.getUuid(), UserThird::setDingTalkId);
-        String thirdUserId = dingUserService.getUserIdByUnionId(authUser.getUuid());
-
-        // 检查是否允许不在组织中的钉钉人员进行绑定
-        if (!authProperties.getThirdLogin().getDingTalk().isCheckBelongOrg() && Objects.isNull(thirdUserId)) {
-            throw new BizException("未在钉钉组织找到该用户,无法进行绑定");
-        }
-
-        UserThirdInfo userThirdInfo = new UserThirdInfo().setUserId(userId)
-            .setClientCode(AuthLoginTypeCode.DING_TALK)
-            .setUsername(authUser.getUsername())
-            .setNickname(authUser.getNickname())
-            .setAvatar(authUser.getAvatar())
-            .setThirdUserId(thirdUserId);
-        userTiredOperateService.bindOpenInfo(userThirdInfo);
-    }
-
-    /**
-     * 获取钉钉认证请求
-     */
-    private AuthDingTalkRequest getAuthRequest() {
-        val thirdLogin = authProperties.getThirdLogin().getDingTalk();
-        if (Objects.isNull(thirdLogin)) {
-            throw new LoginFailureException("钉钉开放登录配置有误");
-        }
-        return new AuthDingTalkRequest(AuthConfig.builder()
-            .clientId(thirdLogin.getClientId())
-            .clientSecret(thirdLogin.getClientSecret())
-            .redirectUri(thirdLogin.getRedirectUri())
-            .build());
-    }
-
-}
diff --git a/bootx-platform/bootx-services/service-iam/src/main/java/cn/bootx/platform/iam/core/auth/login/WeChatAppletLoginHandler.java b/bootx-platform/bootx-services/service-iam/src/main/java/cn/bootx/platform/iam/core/auth/login/WeChatAppletLoginHandler.java
deleted file mode 100644
index ebd68be00d56fb7ec32fdabf452e2f9931e8037e..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-iam/src/main/java/cn/bootx/platform/iam/core/auth/login/WeChatAppletLoginHandler.java
+++ /dev/null
@@ -1,98 +0,0 @@
-package cn.bootx.platform.iam.core.auth.login;
-
-import cn.binarywang.wx.miniapp.api.WxMaService;
-import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult;
-import cn.bootx.platform.common.jackson.util.JacksonUtil;
-import cn.bootx.platform.iam.core.third.dao.UserThirdManager;
-import cn.bootx.platform.iam.core.third.entity.UserThird;
-import cn.bootx.platform.iam.core.third.entity.UserThirdInfo;
-import cn.bootx.platform.iam.core.third.service.UserTiredOperateService;
-import cn.bootx.platform.iam.core.user.dao.UserInfoManager;
-import cn.bootx.platform.iam.core.user.entity.UserInfo;
-import cn.bootx.platform.starter.auth.authentication.OpenIdAuthentication;
-import cn.bootx.platform.starter.auth.code.AuthLoginTypeCode;
-import cn.bootx.platform.starter.auth.entity.AuthInfoResult;
-import cn.bootx.platform.starter.auth.entity.LoginAuthContext;
-import cn.bootx.platform.starter.auth.exception.LoginFailureException;
-import cn.bootx.platform.starter.auth.util.SecurityUtil;
-import cn.bootx.platform.starter.wechat.core.user.service.WeChatUserService;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import me.chanjar.weixin.common.error.WxErrorException;
-import me.zhyd.oauth.model.AuthUser;
-import org.springframework.stereotype.Component;
-
-@Slf4j
-@Component
-@RequiredArgsConstructor
-public class WeChatAppletLoginHandler implements OpenIdAuthentication {
-
-
-    private final UserTiredOperateService userTiredOperateService;
-    private final WxMaService wxMaService;
-
-    private final UserThirdManager userThirdManager;
-
-    private final UserInfoManager userInfoManager;
-
-
-    private final WeChatUserService weChatUserService;
-
-    @Override
-    public String getLoginType() {
-        return AuthLoginTypeCode.WE_CHAT_APPLET;
-    }
-
-    @Override
-    public AuthInfoResult attemptAuthentication(LoginAuthContext context) {
-
-        String authCode = context.getRequest().getParameter(AuthLoginTypeCode.WE_CHAT_APPLET);
-
-        AuthUser authUser = this.getAuthUser(authCode, null);
-
-        // 获取企微关联的用户id
-        UserThird userThird = userThirdManager.findByField(UserThird::getWeChatId, authUser.getUuid())
-                .orElseThrow(() -> new LoginFailureException("微信没有找到绑定的用户"));
-
-        // 获取用户信息
-        UserInfo userInfo = userInfoManager.findById(userThird.getUserId())
-                .orElseThrow(() -> new LoginFailureException("用户不存在"));
-
-        return new AuthInfoResult().setUserDetail(userInfo.toUserDetail()).setId(userInfo.getId());
-    }
-
-    @Override
-    public AuthUser getAuthUser(String authCode, String state) {
-        try {
-            WxMaJscode2SessionResult result = wxMaService.getUserService().getSessionInfo(authCode);
-            log.debug("微信服务器返回的用户信息:{}", JacksonUtil.toJson(result));
-            return AuthUser.builder()
-                    .avatar("")
-                    .uuid(result.getOpenid()).
-                    nickname("未知")
-                    .username("未知")
-                    .avatar("未知")
-                    .build();
-        } catch (WxErrorException e) {
-            log.error("请求微信服务器异常:{}", e.getError());
-            throw new RuntimeException(e);
-        }
-
-    }
-
-    @Override
-    public void bindUser(String authCode, String state) {
-        Long userId = SecurityUtil.getUserId();
-        AuthUser authUser = this.getAuthUser(authCode, state);
-        userTiredOperateService.checkOpenIdBind(authUser.getUuid(), UserThird::getWeChatId);
-        userTiredOperateService.bindOpenId(userId, authUser.getUuid(), UserThird::setWeChatId);
-
-        UserThirdInfo userThirdInfo = new UserThirdInfo().setUserId(userId)
-                .setClientCode(AuthLoginTypeCode.WE_CHAT)
-                .setUsername(authUser.getUsername())
-                .setNickname(authUser.getNickname())
-                .setAvatar(authUser.getAvatar())
-                .setThirdUserId(authUser.getUuid());
-        userTiredOperateService.bindOpenInfo(userThirdInfo);
-    }
-}
diff --git a/bootx-platform/bootx-services/service-iam/src/main/java/cn/bootx/platform/iam/core/auth/login/WeChatLoginHandler.java b/bootx-platform/bootx-services/service-iam/src/main/java/cn/bootx/platform/iam/core/auth/login/WeChatLoginHandler.java
deleted file mode 100644
index 9c3be64e75e818c91249189f8a1e64e8a9a06667..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-iam/src/main/java/cn/bootx/platform/iam/core/auth/login/WeChatLoginHandler.java
+++ /dev/null
@@ -1,92 +0,0 @@
-package cn.bootx.platform.iam.core.auth.login;
-
-import cn.bootx.platform.iam.core.third.dao.UserThirdManager;
-import cn.bootx.platform.iam.core.third.entity.UserThird;
-import cn.bootx.platform.iam.core.third.service.UserTiredOperateService;
-import cn.bootx.platform.iam.core.user.dao.UserInfoManager;
-import cn.bootx.platform.iam.core.user.entity.UserInfo;
-import cn.bootx.platform.starter.auth.authentication.OpenIdAuthentication;
-import cn.bootx.platform.starter.auth.code.AuthLoginTypeCode;
-import cn.bootx.platform.starter.auth.entity.AuthInfoResult;
-import cn.bootx.platform.starter.auth.entity.LoginAuthContext;
-import cn.bootx.platform.starter.auth.exception.LoginFailureException;
-import cn.bootx.platform.starter.auth.util.SecurityUtil;
-import cn.bootx.platform.starter.wechat.core.login.service.WeChatQrLoginService;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import me.zhyd.oauth.model.AuthUser;
-import org.springframework.stereotype.Component;
-
-/**
- * 微信登录(公众号)
- *
- * @author xxm
- * @since 2021/8/2
- */
-@Slf4j
-@Component
-@RequiredArgsConstructor
-public class WeChatLoginHandler implements OpenIdAuthentication {
-
-    private final UserTiredOperateService userTiredOperateService;
-
-    private final WeChatQrLoginService weChatQrLoginService;
-
-    private final UserThirdManager userThirdManager;
-
-    private final UserInfoManager userInfoManager;
-
-    @Override
-    public String getLoginType() {
-        return AuthLoginTypeCode.WE_CHAT;
-    }
-
-    /**
-     * 认证
-     */
-    @Override
-    public AuthInfoResult attemptAuthentication(LoginAuthContext context) {
-        String authCode = context.getRequest().getParameter(AuthLoginTypeCode.AUTH_CODE);
-        AuthUser authUser = this.getAuthUser(authCode, null);
-
-        // 获取微信公众号关联的用户id
-        UserThird userThird = userThirdManager.findByField(UserThird::getWeChatId, authUser.getUuid())
-            .orElseThrow(() -> new LoginFailureException("没有找到绑定的微信公众号用户"));
-
-        // 获取用户信息
-        UserInfo userInfo = userInfoManager.findById(userThird.getUserId())
-            .orElseThrow(() -> new LoginFailureException("用户不存在"));
-
-        return new AuthInfoResult().setUserDetail(userInfo.toUserDetail()).setId(userInfo.getId());
-    }
-
-    /**
-     * 获取关联的的第三方平台用户信息
-     * @param authCode key 值, 可以用来拿用户信息
-     */
-    @Override
-    public AuthUser getAuthUser(String authCode, String state) {
-        // 根据微信二维码的值获取关联扫码的微信信息
-        String uuid = weChatQrLoginService.getOpenId(authCode);
-        AuthUser authUser = new AuthUser();
-        authUser.setNickname("未知");
-        authUser.setUsername("未知");
-        authUser.setAvatar("未知");
-        authUser.setUuid(uuid);
-        weChatQrLoginService.clear(authCode);
-        return authUser;
-    }
-
-    /**
-     * 绑定用户
-     */
-    @Override
-    public void bindUser(String authCode, String state) {
-        Long userId = SecurityUtil.getUserId();
-        AuthUser authUser = this.getAuthUser(authCode, state);
-        userTiredOperateService.checkOpenIdBind(authUser.getUuid(), UserThird::getWeChatId);
-        userTiredOperateService.bindOpenId(userId, authUser.getUuid(), UserThird::setWeChatId);
-        userTiredOperateService.bindOpenInfo(userId, authUser, AuthLoginTypeCode.WE_CHAT);
-    }
-
-}
diff --git a/bootx-platform/bootx-services/service-notice/pom.xml b/bootx-platform/bootx-services/service-notice/pom.xml
deleted file mode 100644
index 9b9c194a4582bd0e5309b49ae71e24b311194a40..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-notice/pom.xml
+++ /dev/null
@@ -1,83 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <parent>
-        <artifactId>bootx-services</artifactId>
-        <groupId>cn.bootx.platform</groupId>
-        <version>1.3.6.2</version>
-    </parent>
-    <modelVersion>4.0.0</modelVersion>
-
-    <artifactId>service-notice</artifactId>
-
-    <dependencies>
-        <!-- mysql -->
-        <dependency>
-            <groupId>com.mysql</groupId>
-            <artifactId>mysql-connector-j</artifactId>
-            <scope>runtime</scope>
-        </dependency>
-
-        <!-- mp -->
-        <dependency>
-            <groupId>com.baomidou</groupId>
-            <artifactId>mybatis-plus-boot-starter</artifactId>
-        </dependency>
-
-        <!-- 邮件 -->
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-mail</artifactId>
-        </dependency>
-
-        <!-- 模板引擎 -->
-        <dependency>
-            <groupId>org.apache.velocity</groupId>
-            <artifactId>velocity-engine-core</artifactId>
-        </dependency>
-
-        <!-- 认证模块 -->
-        <dependency>
-            <groupId>cn.bootx.platform</groupId>
-            <artifactId>common-starter-auth</artifactId>
-        </dependency>
-
-        <!-- 基础功能模块 -->
-        <dependency>
-            <groupId>cn.bootx.platform</groupId>
-            <artifactId>service-baseapi</artifactId>
-            <version>${bootx-platform.version}</version>
-        </dependency>
-
-        <!-- ws -->
-        <dependency>
-            <groupId>cn.bootx.platform</groupId>
-            <artifactId>common-websocket</artifactId>
-        </dependency>
-
-        <!-- 钉钉 -->
-        <dependency>
-            <groupId>cn.bootx.platform</groupId>
-            <artifactId>common-starter-dingtalk</artifactId>
-        </dependency>
-
-        <!-- 微信 -->
-        <dependency>
-            <groupId>cn.bootx.platform</groupId>
-            <artifactId>common-starter-wechat</artifactId>
-        </dependency>
-
-        <!-- 企业微信 -->
-        <dependency>
-            <groupId>cn.bootx.platform</groupId>
-            <artifactId>common-starter-wecom</artifactId>
-        </dependency>
-
-        <!-- SMS4J 短信发送-->
-        <dependency>
-            <groupId>org.dromara.sms4j</groupId>
-            <artifactId>sms4j-spring-boot-starter</artifactId>
-        </dependency>
-    </dependencies>
-</project>
diff --git a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/NoticeApplication.java b/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/NoticeApplication.java
deleted file mode 100644
index 89ee0ab17b964245c4a2b9803f599fbf44c6279f..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/NoticeApplication.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package cn.bootx.platform.notice;
-
-import org.apache.ibatis.annotations.Mapper;
-import org.mybatis.spring.annotation.MapperScan;
-import org.springframework.context.annotation.ComponentScan;
-
-/**
- * 通知中心
- *
- * @author xxm
- * @since 2021/8/5
- */
-@ComponentScan
-@MapperScan(annotationClass = Mapper.class)
-public class NoticeApplication {
-
-}
diff --git a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/code/MailCode.java b/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/code/MailCode.java
deleted file mode 100644
index 365467142107cd4ea277dd5deab3fb2b83bc5f73..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/code/MailCode.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package cn.bootx.platform.notice.code;
-
-/**
- * 邮箱常量
- *
- * @author xxm
- * @since 2021/8/5
- */
-public interface MailCode {
-
-    /**
-     * 普通方式
-     */
-    Integer SECURITY_TYPE_PLAIN = 1;
-
-    /**
-     * TLS方式
-     */
-    Integer SECURITY_TYPE_TLS = 2;
-
-    /**
-     * SSL方式
-     */
-    Integer SECURITY_TYPE_SSL = 3;
-
-}
diff --git a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/code/MessageTemplateCode.java b/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/code/MessageTemplateCode.java
deleted file mode 100644
index a8e24118f2cf3da6068b4da7bf17e05894cb039b..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/code/MessageTemplateCode.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package cn.bootx.platform.notice.code;
-
-/**
- * 消息模板类型
- *
- * @author xxm
- * @since 2021/8/10
- */
-public interface MessageTemplateCode {
-
-    /** 站内信 */
-    String SITE = "site";
-
-    /** 钉钉 */
-    String DING_TALK = "ding_talk";
-
-    /** 钉钉机器人 */
-    String DING_TALK_ROBOT = "ding_talk_robot";
-
-    /** Email */
-    String EMAIL = "email";
-
-}
diff --git a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/code/NoticeCenterErrorCode.java b/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/code/NoticeCenterErrorCode.java
deleted file mode 100644
index 7cabadf0bbec8b66bfba217cf66bccda529ae29b..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/code/NoticeCenterErrorCode.java
+++ /dev/null
@@ -1,61 +0,0 @@
-package cn.bootx.platform.notice.code;
-
-/**
- * 通知中心错误码
- *
- * @author xxm
- * @since 2021/8/5
- */
-public interface NoticeCenterErrorCode {
-
-    /**
-     * 邮箱配置编号已存在
-     */
-    int MAIL_CONFIG_CODE_ALREADY_EXISTED = 24010;
-
-    /**
-     * 邮箱配置不存在
-     */
-    int MAIL_CONFIG_NOT_EXIST = 24011;
-
-    /**
-     * 默认邮箱配置已存在
-     */
-    int DEFAULT_MAIL_CONFIG_ALREADY_EXISTED = 24012;
-
-    /**
-     * 短信配置编号已存在
-     */
-    int SMS_CONFIG_CODE_ALREADY_EXISTED = 24020;
-
-    /**
-     * 短信配置不存在
-     */
-    int SMS_CONFIG_NOT_EXIST = 24021;
-
-    /**
-     * 默认短信配置已存在
-     */
-    int DEFAULT_SMS_CONFIG_ALREADY_EXISTED = 24022;
-
-    /**
-     * Bandwidth 短信发送失败
-     */
-    int BANDWIDTH_SMS_SEND_ERROR = 24023;
-
-    /**
-     * WeChat配置编号已存在
-     */
-    int WECHAT_CONFIG_CODE_ALREADY_EXISTED = 24030;
-
-    /**
-     * WeChat配置不存在
-     */
-    int WECHAT_CONFIG_NOT_EXIST = 24031;
-
-    /**
-     * 邮箱配置不存在
-     */
-    int MAIL_TEMPLATE_NOT_EXIST = 24041;
-
-}
diff --git a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/code/SiteMessageCode.java b/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/code/SiteMessageCode.java
deleted file mode 100644
index 44887d5540af4b779ccfbe0f4dbf3ccb79fa5764..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/code/SiteMessageCode.java
+++ /dev/null
@@ -1,32 +0,0 @@
-package cn.bootx.platform.notice.code;
-
-/**
- * 站内信编码
- *
- * @author xxm
- * @since 2022/8/14
- */
-public interface SiteMessageCode {
-
-    /* 接收类型 */
-    /** 指定用户 */
-    String RECEIVE_USER = "user";
-
-    /** 全部用户 */
-    String RECEIVE_ALL = "all";
-
-    /* 发布状态 */
-    /** 草稿 */
-    String STATE_DRAFT = "draft";
-
-    /** 已发送 */
-    String STATE_SENT = "sent";
-
-    /** 撤销 */
-    String STATE_CANCEL = "cancel";
-
-    /* 事件 */
-    /** 消息更新 */
-    String EVENT_MESSAGE_UPDATE = "notice_message_update";
-
-}
diff --git a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/code/SmsChannelStatusCode.java b/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/code/SmsChannelStatusCode.java
deleted file mode 100644
index ae6a7b9d5b66dd2eedede867283b34256ec331af..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/code/SmsChannelStatusCode.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package cn.bootx.platform.notice.code;
-
-/**
- * 短信渠道商配置状态
- * @author xxm
- * @since 2023/8/3
- */
-public interface SmsChannelStatusCode {
-    /** 正常 */
-    String NORMAL = "normal";
-
-    /** 停用 */
-    String FORBIDDEN = "forbidden";
-}
diff --git a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/controller/MailConfigController.java b/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/controller/MailConfigController.java
deleted file mode 100644
index 8160bd4afa53652d34322ae4fe3cab5c2491c4a0..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/controller/MailConfigController.java
+++ /dev/null
@@ -1,83 +0,0 @@
-package cn.bootx.platform.notice.controller;
-
-import cn.bootx.platform.common.core.rest.PageResult;
-import cn.bootx.platform.common.core.rest.Res;
-import cn.bootx.platform.common.core.rest.ResResult;
-import cn.bootx.platform.common.core.rest.param.PageParam;
-import cn.bootx.platform.common.core.util.ValidationUtil;
-import cn.bootx.platform.notice.core.mail.service.MailConfigService;
-import cn.bootx.platform.notice.dto.mail.MailConfigDto;
-import cn.bootx.platform.notice.param.mail.MailConfigParam;
-import io.swagger.v3.oas.annotations.Operation;
-import io.swagger.v3.oas.annotations.tags.Tag;
-import lombok.AllArgsConstructor;
-import org.springframework.web.bind.annotation.*;
-
-/**
- * @author xxm
- * @since 2020/5/2 14:38
- */
-@Tag(name = "邮箱配置")
-@RestController
-@RequestMapping("/mail/config")
-@AllArgsConstructor
-public class MailConfigController {
-
-    private final MailConfigService mailConfigService;
-
-    @Operation(summary = "通过 id 获取指定邮箱配置")
-    @GetMapping("/findById")
-    public ResResult<MailConfigDto> findById(Long id) {
-        MailConfigDto mailConfig = mailConfigService.findById(id);
-        return Res.ok(mailConfig);
-    }
-
-    @Operation(summary = "分页")
-    @GetMapping("/page")
-    public ResResult<PageResult<MailConfigDto>> page(PageParam pageParam, MailConfigParam param) {
-        return Res.ok(mailConfigService.page(pageParam, param));
-    }
-
-    @Operation(summary = "增加新邮箱配置")
-    @PostMapping("/add")
-    public ResResult<MailConfigDto> add(@RequestBody MailConfigParam param) {
-        ValidationUtil.validateParam(param);
-        MailConfigDto mailConfig = mailConfigService.add(param);
-        return Res.ok(mailConfig);
-    }
-
-    @Operation(summary = "更新邮箱配置")
-    @PostMapping("/update")
-    public ResResult<MailConfigDto> updateMailConfig(@RequestBody MailConfigParam param) {
-        ValidationUtil.validateParam(param);
-        MailConfigDto update = mailConfigService.update(param);
-        return Res.ok(update);
-    }
-
-    @Operation(summary = "删除")
-    @DeleteMapping("/delete")
-    public ResResult<Void> delete(Long id) {
-        mailConfigService.delete(id);
-        return Res.ok();
-    }
-
-    @Operation(summary = "设置启用的邮箱配置")
-    @PostMapping("/setUpActivity")
-    public ResResult<Void> setUpActivity(Long id) {
-        mailConfigService.setUpActivity(id);
-        return Res.ok();
-    }
-
-    @Operation(summary = "编码是否被使用")
-    @GetMapping("/existsByCode")
-    public ResResult<Boolean> existsByCode(String code) {
-        return Res.ok(mailConfigService.existsByCode(code));
-    }
-
-    @Operation(summary = "编码是否被使用(不包含自己)")
-    @GetMapping("/existsByCodeNotId")
-    public ResResult<Boolean> existsByCode(String code, Long id) {
-        return Res.ok(mailConfigService.existsByCode(code, id));
-    }
-
-}
diff --git a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/controller/MessageTemplateController.java b/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/controller/MessageTemplateController.java
deleted file mode 100644
index 91351250616e1e5a768f67ae9117db4dea7c3877..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/controller/MessageTemplateController.java
+++ /dev/null
@@ -1,80 +0,0 @@
-package cn.bootx.platform.notice.controller;
-
-import cn.bootx.platform.common.core.rest.PageResult;
-import cn.bootx.platform.common.core.rest.Res;
-import cn.bootx.platform.common.core.rest.ResResult;
-import cn.bootx.platform.common.core.rest.param.PageParam;
-import cn.bootx.platform.notice.core.template.service.MessageTemplateService;
-import cn.bootx.platform.notice.dto.template.MessageTemplateDto;
-import cn.bootx.platform.notice.param.template.MessageTemplateParam;
-import io.swagger.v3.oas.annotations.tags.Tag;
-import io.swagger.v3.oas.annotations.Operation;
-import lombok.RequiredArgsConstructor;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.Map;
-
-/**
- * 消息模板
- *
- * @author xxm
- * @since 2021/8/10
- */
-@Tag(name = "消息模板")
-@RestController
-@RequestMapping("/message/template")
-@RequiredArgsConstructor
-public class MessageTemplateController {
-
-    private final MessageTemplateService messageTemplateService;
-
-    @Operation(summary = "添加")
-    @PostMapping("/add")
-    public ResResult<MessageTemplateDto> add(@RequestBody MessageTemplateParam param) {
-        return Res.ok(messageTemplateService.add(param));
-    }
-
-    @Operation(summary = "更新")
-    @PostMapping("/update")
-    public ResResult<MessageTemplateDto> update(@RequestBody MessageTemplateParam param) {
-        return Res.ok(messageTemplateService.update(param));
-    }
-
-    @Operation(summary = "分页")
-    @GetMapping("/page")
-    public ResResult<PageResult<MessageTemplateDto>> page(PageParam pageParam, MessageTemplateParam query) {
-        return Res.ok(messageTemplateService.page(pageParam, query));
-    }
-
-    @Operation(summary = "获取详情")
-    @GetMapping("/findById")
-    public ResResult<MessageTemplateDto> findById(Long id) {
-        return Res.ok(messageTemplateService.findById(id));
-    }
-
-    @Operation(summary = "删除")
-    @DeleteMapping("/delete")
-    public ResResult<Void> delete(Long id) {
-        messageTemplateService.delete(id);
-        return Res.ok();
-    }
-
-    @Operation(summary = "编码是否被使用")
-    @GetMapping("/existsByCode")
-    public ResResult<Boolean> existsByCode(String code) {
-        return Res.ok(messageTemplateService.existsByCode(code));
-    }
-
-    @Operation(summary = "编码是否被使用(不包含自己)")
-    @GetMapping("/existsByCodeNotId")
-    public ResResult<Boolean> existsByCode(String code, Long id) {
-        return Res.ok(messageTemplateService.existsByCode(code, id));
-    }
-
-    @Operation(summary = "渲染模板")
-    @PostMapping("/rendering")
-    public ResResult<String> rendering(@RequestParam String code, @RequestBody Map<String, Object> paramMap) {
-        return Res.ok(messageTemplateService.rendering(code, paramMap));
-    }
-
-}
diff --git a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/controller/SiteMessageController.java b/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/controller/SiteMessageController.java
deleted file mode 100644
index 0c173b26151d08a04b2966884dcfb60eb168e0a0..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/controller/SiteMessageController.java
+++ /dev/null
@@ -1,99 +0,0 @@
-package cn.bootx.platform.notice.controller;
-
-import cn.bootx.platform.common.core.annotation.IgnoreAuth;
-import cn.bootx.platform.common.core.rest.PageResult;
-import cn.bootx.platform.common.core.rest.Res;
-import cn.bootx.platform.common.core.rest.ResResult;
-import cn.bootx.platform.common.core.rest.param.PageParam;
-import cn.bootx.platform.notice.core.site.domain.SiteMessageInfo;
-import cn.bootx.platform.notice.core.site.service.SiteMessageService;
-import cn.bootx.platform.notice.dto.site.SiteMessageDto;
-import cn.bootx.platform.notice.param.site.SendSiteMessageParam;
-import io.swagger.v3.oas.annotations.Operation;
-import io.swagger.v3.oas.annotations.tags.Tag;
-import lombok.RequiredArgsConstructor;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.List;
-
-/**
- * @author xxm
- * @since 2021/8/8
- */
-@Tag(name = "站内信")
-@RestController
-@RequestMapping("/site/message")
-@RequiredArgsConstructor
-public class SiteMessageController {
-
-    private final SiteMessageService siteMessageService;
-
-    @Operation(summary = "保存站内信草稿")
-    @PostMapping("/saveOrUpdate")
-    public ResResult<Void> saveOrUpdate(@RequestBody SendSiteMessageParam param) {
-        siteMessageService.saveOrUpdate(param);
-        return Res.ok();
-    }
-
-    @Operation(summary = "发送站内信")
-    @PostMapping("/send")
-    public ResResult<Void> send(Long id) {
-        siteMessageService.send(id);
-        return Res.ok();
-    }
-
-    @Operation(summary = "消息详情")
-    @GetMapping("/findById")
-    public ResResult<SiteMessageDto> findById(Long id) {
-        return Res.ok(siteMessageService.findById(id));
-    }
-
-    @IgnoreAuth
-    @Operation(summary = "获取未读的接收消息条数")
-    @GetMapping("/countByReceiveNotRead")
-    public ResResult<Integer> countByReceiveNotRead(SiteMessageInfo query) {
-        return Res.ok(siteMessageService.countByReceiveNotRead(query));
-    }
-
-    @IgnoreAuth
-    @Operation(summary = "接收消息分页")
-    @GetMapping("/pageByReceive")
-    public ResResult<PageResult<SiteMessageInfo>> pageByReceive(PageParam pageParam, SiteMessageInfo query) {
-        return Res.ok(siteMessageService.pageByReceive(pageParam, query));
-    }
-
-    @Operation(summary = "发送消息分页")
-    @GetMapping("/pageBySender")
-    public ResResult<PageResult<SiteMessageDto>> pageBySender(PageParam pageParam, SiteMessageInfo query) {
-        return Res.ok(siteMessageService.pageBySender(pageParam, query));
-    }
-
-    @Operation(summary = "撤回消息")
-    @PostMapping("/cancel")
-    public ResResult<Void> cancel(Long id) {
-        siteMessageService.cancel(id);
-        return Res.ok();
-    }
-
-    @Operation(summary = "删除消息")
-    @DeleteMapping("/delete")
-    public ResResult<Void> delete(Long id) {
-        siteMessageService.delete(id);
-        return Res.ok();
-    }
-
-    @IgnoreAuth
-    @Operation(summary = "标为已读")
-    @PostMapping("/read")
-    public ResResult<Void> read(Long id) {
-        siteMessageService.read(id);
-        return Res.ok();
-    }
-
-    @IgnoreAuth
-    @Operation(summary = "小程序获取未读的接收消息标题列表")
-    @GetMapping("/listByReceiveNotRead")
-    public ResResult<List<String>> listByReceiveNotRead(SiteMessageInfo query) {
-        return Res.ok(siteMessageService.listByReceiveNotRead(query));
-    }
-}
diff --git a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/controller/SmsChannelConfigController.java b/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/controller/SmsChannelConfigController.java
deleted file mode 100644
index 5ed30259e2b01d8525a944eb1a49201bcfa48c50..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/controller/SmsChannelConfigController.java
+++ /dev/null
@@ -1,60 +0,0 @@
-package cn.bootx.platform.notice.controller;
-
-import cn.bootx.platform.common.core.rest.Res;
-import cn.bootx.platform.common.core.rest.ResResult;
-import cn.bootx.platform.notice.core.sms.service.SmsChannelConfigService;
-import cn.bootx.platform.notice.dto.sms.SmsChannelConfigDto;
-import cn.bootx.platform.notice.param.sms.SmsChannelConfigParam;
-import io.swagger.v3.oas.annotations.Operation;
-import io.swagger.v3.oas.annotations.tags.Tag;
-import lombok.RequiredArgsConstructor;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.List;
-import java.util.Map;
-
-/**
- *
- * @author xxm
- * @since 2023/8/5
- */
-@Tag(name = "短信渠道配置")
-@RestController
-@RequestMapping("/sms/config")
-@RequiredArgsConstructor
-public class SmsChannelConfigController {
-    private final SmsChannelConfigService configService;
-
-    @Operation(summary = "添加")
-    @PostMapping(value = "/add")
-    public ResResult<Void> add(@RequestBody Map<String,Object> map) {
-        configService.add(map);
-        return Res.ok();
-    }
-
-    @Operation(summary = "修改")
-    @PostMapping(value = "/update")
-    public ResResult<Void> update(@RequestBody Map<String,Object> map) {
-        configService.update(map);
-        return Res.ok();
-    }
-
-    @Operation(summary = "通过ID查询")
-    @GetMapping(value = "/findById")
-    public ResResult<SmsChannelConfigDto> findById(Long id) {
-        return Res.ok(configService.findById(id));
-    }
-
-    @Operation(summary = "通过Code查询")
-    @GetMapping(value = "/findByCode")
-    public ResResult<SmsChannelConfigDto> findByCode(String code) {
-        return Res.ok(configService.findByCode(code));
-    }
-
-    @Operation(summary = "查询所有")
-    @GetMapping(value = "/findAll")
-    public ResResult<List<SmsChannelConfigDto>> findAll() {
-        return Res.ok(configService.findAll());
-    }
-
-}
diff --git a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/controller/SmsTemplateController.java b/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/controller/SmsTemplateController.java
deleted file mode 100644
index 3f6075305103b48ec2a1e38f0038c9eb4a42ce75..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/controller/SmsTemplateController.java
+++ /dev/null
@@ -1,67 +0,0 @@
-package cn.bootx.platform.notice.controller;
-
-import cn.bootx.platform.common.core.rest.PageResult;
-import cn.bootx.platform.common.core.rest.Res;
-import cn.bootx.platform.common.core.rest.ResResult;
-import cn.bootx.platform.common.core.rest.param.PageParam;
-import cn.bootx.platform.notice.core.sms.service.SmsTemplateService;
-import cn.bootx.platform.notice.dto.sms.SmsTemplateDto;
-import cn.bootx.platform.notice.param.sms.SmsTemplateParam;
-import io.swagger.v3.oas.annotations.Operation;
-import io.swagger.v3.oas.annotations.tags.Tag;
-import lombok.RequiredArgsConstructor;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.List;
-
-/**
- * 短信模板配置
- * @author xxm
- * @since 2023-08-03
- */
-@Tag(name ="短信模板配置")
-@RestController
-@RequestMapping("/sms/template")
-@RequiredArgsConstructor
-public class SmsTemplateController {
-    private final SmsTemplateService smsTemplateService;
-
-    @Operation( summary = "添加")
-    @PostMapping(value = "/add")
-    public ResResult<Void> add(@RequestBody SmsTemplateParam param){
-        smsTemplateService.add(param);
-        return Res.ok();
-    }
-
-    @Operation( summary = "修改")
-    @PostMapping(value = "/update")
-    public ResResult<Void> update(@RequestBody SmsTemplateParam param){
-        smsTemplateService.update(param);
-        return Res.ok();
-    }
-
-    @Operation( summary = "删除")
-    @DeleteMapping(value = "/delete")
-    public ResResult<Void> delete(Long id){
-        smsTemplateService.delete(id);
-        return Res.ok();
-    }
-
-    @Operation( summary = "通过ID查询")
-    @GetMapping(value = "/findById")
-    public ResResult<SmsTemplateDto> findById(Long id){
-        return Res.ok(smsTemplateService.findById(id));
-    }
-
-    @Operation( summary = "查询所有")
-    @GetMapping(value = "/findAll")
-    public ResResult<List<SmsTemplateDto>> findAll(){
-        return Res.ok(smsTemplateService.findAll());
-    }
-
-    @Operation( summary = "分页查询")
-    @GetMapping(value = "/page")
-    public ResResult<PageResult<SmsTemplateDto>> page(PageParam pageParam, SmsTemplateParam smsTemplateParam){
-        return Res.ok(smsTemplateService.page(pageParam,smsTemplateParam));
-    }
-}
diff --git a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/dingtalk/entity/chat/DingChatNoticeParam.java b/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/dingtalk/entity/chat/DingChatNoticeParam.java
deleted file mode 100644
index e900fc2e5e4b4b36096ffb844081eef28ab438b2..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/dingtalk/entity/chat/DingChatNoticeParam.java
+++ /dev/null
@@ -1,30 +0,0 @@
-package cn.bootx.platform.notice.core.dingtalk.entity.chat;
-
-import cn.bootx.platform.starter.dingtalk.param.notice.ChatNotice;
-import cn.bootx.platform.notice.core.dingtalk.entity.msg.DingMsg;
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-import lombok.experimental.Accessors;
-
-/**
- * 企业群消息参数
- *
- * @author xxm
- * @since 2022/7/20
- */
-@Data
-@Accessors(chain = true)
-@Schema(title = "企业群消息参数")
-public class DingChatNoticeParam {
-
-    @Schema(description = "群Id")
-    private String chatId;
-
-    @Schema(description = "钉钉消息内容")
-    private DingMsg dingMsg;
-
-    public ChatNotice toDingChatNotice() {
-        return new ChatNotice().setChatId(chatId).setMsg(dingMsg.toDingMsg());
-    }
-
-}
diff --git a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/dingtalk/entity/corp/DingCorpNoticeParam.java b/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/dingtalk/entity/corp/DingCorpNoticeParam.java
deleted file mode 100644
index ad83dc652119ebf332d7f7a1a72640141e6a3764..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/dingtalk/entity/corp/DingCorpNoticeParam.java
+++ /dev/null
@@ -1,40 +0,0 @@
-package cn.bootx.platform.notice.core.dingtalk.entity.corp;
-
-import cn.bootx.platform.starter.dingtalk.param.notice.CorpNotice;
-import cn.bootx.platform.notice.core.dingtalk.entity.msg.DingMsg;
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-import lombok.experimental.Accessors;
-
-/**
- * 钉钉企业通知消息父类
- *
- * @author xxm
- * @since 2022/7/19
- */
-@Data
-@Accessors(chain = true)
-@Schema(title = "钉钉企业通知消息父类")
-@AllArgsConstructor
-@NoArgsConstructor
-public class DingCorpNoticeParam {
-
-    @Schema(description = "接收人配置")
-    private DingCorpNoticeReceive receive;
-
-    @Schema(description = "钉钉消息内容")
-    private DingMsg dingMsg;
-
-    /**
-     * 转换成钉钉消息发送参数
-     */
-    public CorpNotice toDingCorpNotice() {
-        return new CorpNotice().setToAllUser(receive.isToAllUser())
-            .setDeptIdList(receive.getDeptIdList())
-            .setUseridList(receive.getUseridList())
-            .setMsg(dingMsg.toDingMsg());
-    }
-
-}
diff --git a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/dingtalk/entity/corp/DingCorpNoticeReceive.java b/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/dingtalk/entity/corp/DingCorpNoticeReceive.java
deleted file mode 100644
index b2f5b33ad4c25afe370f484d3a9d82b445112186..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/dingtalk/entity/corp/DingCorpNoticeReceive.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package cn.bootx.platform.notice.core.dingtalk.entity.corp;
-
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-import lombok.experimental.Accessors;
-
-import java.util.List;
-
-/**
- * 企业通知接收人配置
- *
- * @author xxm
- * @since 2022/7/20
- */
-@Data
-@Accessors(chain = true)
-@Schema(title = "企业通知接收人配置")
-public class DingCorpNoticeReceive {
-
-    @Schema(description = "接收者的userid列表,最大用户列表长度100")
-    private List<String> useridList;
-
-    @Schema(description = "接收者的部门id列表,最大列表长度20")
-    private List<String> deptIdList;
-
-    @Schema(description = "是否发送给企业全部用户")
-    private boolean toAllUser;
-
-    /**
-     * 发送给全部用户
-     */
-    public static DingCorpNoticeReceive toAll() {
-        return new DingCorpNoticeReceive().setToAllUser(true);
-    }
-
-}
diff --git a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/dingtalk/entity/corp/DingCorpNoticeUpdate.java b/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/dingtalk/entity/corp/DingCorpNoticeUpdate.java
deleted file mode 100644
index 78e51a4ba66f1afe2af8eb549ef5129319ab35a3..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/dingtalk/entity/corp/DingCorpNoticeUpdate.java
+++ /dev/null
@@ -1,35 +0,0 @@
-package cn.bootx.platform.notice.core.dingtalk.entity.corp;
-
-import cn.bootx.platform.starter.dingtalk.param.notice.UpdateCorpNotice;
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-import lombok.experimental.Accessors;
-
-/**
- * 企业通知(OA消息)更新
- *
- * @author xxm
- * @since 2022/7/20
- */
-@Data
-@Accessors(chain = true)
-@Schema(title = "企业通知(OA消息)更新")
-public class DingCorpNoticeUpdate {
-
-    @Schema(description = "发送消息时使用的微应用的AgentID")
-    private Long taskId;
-
-    @Schema(description = "状态栏值")
-    private String statusValue;
-
-    @Schema(description = "状态栏背景色,推荐0xFF加六位颜色值")
-    private String statusBg;
-
-    /**
-     * 转换为钉钉参数对象
-     */
-    public UpdateCorpNotice toDingUpdateCorpNotice() {
-        return new UpdateCorpNotice().setTaskId(taskId).setStatusValue(statusValue).setStatusBg(statusBg);
-    }
-
-}
diff --git a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/dingtalk/entity/msg/DingActionCardMsg.java b/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/dingtalk/entity/msg/DingActionCardMsg.java
deleted file mode 100644
index c5638a13834229db0e6a98d10befb93cc0d68946..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/dingtalk/entity/msg/DingActionCardMsg.java
+++ /dev/null
@@ -1,76 +0,0 @@
-package cn.bootx.platform.notice.core.dingtalk.entity.msg;
-
-import cn.bootx.platform.common.core.util.CollUtil;
-import cn.bootx.platform.starter.dingtalk.param.notice.msg.ActionCardMsg;
-import cn.bootx.platform.starter.dingtalk.param.notice.msg.Msg;
-import com.fasterxml.jackson.annotation.JsonProperty;
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-import lombok.experimental.Accessors;
-
-import java.util.List;
-import java.util.stream.Collectors;
-
-/**
- * 钉钉卡片工作通知消息
- *
- * @author xxm
- * @since 2022/7/20
- */
-@Data
-@Accessors(chain = true)
-@Schema(title = "钉钉卡片工作通知消息")
-public class DingActionCardMsg implements DingMsg {
-
-    @Schema(description = "透出到会话列表和通知的文案")
-    private String title;
-
-    @Schema(description = "消息内容")
-    private String markdown;
-
-    @Schema(description = "标题")
-    private String singleTitle;
-
-    @Schema(description = "消息点击链接地址")
-    private String singleUrl;
-
-    @Schema(description = "使用独立跳转ActionCard样式时的按钮排列方式(1竖直排列/2横向排列)")
-    private String btnOrientation;
-
-    @Schema(description = "独立跳转ActionCard样式时的按钮列表")
-    private List<OrientationBtn> orientationBtnList;
-
-    @Data
-    @Accessors(chain = true)
-    @Schema(title = "独立跳转ActionCard样式时的按钮列表")
-    public static class OrientationBtn {
-
-        @Schema(description = "按钮的标题")
-        private String title;
-
-        @JsonProperty("action_url")
-        @Schema(description = "跳转链接")
-        private String actionUrl;
-
-    }
-
-    /**
-     * 转换成钉钉消息
-     */
-    public Msg toDingMsg() {
-        ActionCardMsg.ActionCard actionCard = new ActionCardMsg.ActionCard().setTitle(title)
-            .setMarkdown(markdown)
-            .setSingleTitle(singleTitle)
-            .setSingleUrl(singleUrl)
-            .setBtnOrientation(btnOrientation);
-        if (CollUtil.isNotEmpty(orientationBtnList)) {
-            List<ActionCardMsg.ActionCard.BtnJson> btnJsons = orientationBtnList.stream()
-                .map(o -> new ActionCardMsg.ActionCard.BtnJson().setTitle(o.title).setActionUrl(o.actionUrl))
-                .collect(Collectors.toList());
-            actionCard.setBtnJsonList(btnJsons);
-        }
-
-        return new ActionCardMsg().setActionCard(actionCard);
-    }
-
-}
diff --git a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/dingtalk/entity/msg/DingFileMsg.java b/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/dingtalk/entity/msg/DingFileMsg.java
deleted file mode 100644
index 50dca7a730ff0bb3c6af9f9c18df94c11e810e13..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/dingtalk/entity/msg/DingFileMsg.java
+++ /dev/null
@@ -1,35 +0,0 @@
-package cn.bootx.platform.notice.core.dingtalk.entity.msg;
-
-import cn.bootx.platform.starter.dingtalk.param.notice.msg.FileMsg;
-import cn.bootx.platform.starter.dingtalk.param.notice.msg.Msg;
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-import lombok.experimental.Accessors;
-
-/**
- * 钉钉文件工作通知消息
- *
- * @author xxm
- * @since 2022/7/19
- */
-@Data
-@Accessors(chain = true)
-@AllArgsConstructor
-@NoArgsConstructor
-@Schema(title = "钉钉图片工作通知消息")
-public class DingFileMsg implements DingMsg {
-
-    @Schema(description = "媒体文件id")
-    private String mediaId;
-
-    /**
-     * 转换成钉钉消息
-     */
-    @Override
-    public Msg toDingMsg() {
-        return new FileMsg(mediaId);
-    }
-
-}
diff --git a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/dingtalk/entity/msg/DingImageMsg.java b/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/dingtalk/entity/msg/DingImageMsg.java
deleted file mode 100644
index 9d88fcdc1ec89efa93797c5624876e3dcdf88aa6..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/dingtalk/entity/msg/DingImageMsg.java
+++ /dev/null
@@ -1,35 +0,0 @@
-package cn.bootx.platform.notice.core.dingtalk.entity.msg;
-
-import cn.bootx.platform.starter.dingtalk.param.notice.msg.ImageMsg;
-import cn.bootx.platform.starter.dingtalk.param.notice.msg.Msg;
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.RequiredArgsConstructor;
-import lombok.experimental.Accessors;
-
-/**
- * 钉钉图片工作通知消息
- *
- * @author xxm
- * @since 2022/7/19
- */
-@Data
-@Accessors(chain = true)
-@AllArgsConstructor
-@RequiredArgsConstructor
-@Schema(title = "钉钉图片工作通知消息")
-public class DingImageMsg implements DingMsg {
-
-    @Schema(description = "媒体文件id")
-    private String mediaId;
-
-    /**
-     * 转换成钉钉消息
-     */
-    @Override
-    public Msg toDingMsg() {
-        return new ImageMsg(mediaId);
-    }
-
-}
diff --git a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/dingtalk/entity/msg/DingLinkMsg.java b/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/dingtalk/entity/msg/DingLinkMsg.java
deleted file mode 100644
index 3bcb6bac33c29796b5f7b4b5dd36b5357b5de0b0..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/dingtalk/entity/msg/DingLinkMsg.java
+++ /dev/null
@@ -1,40 +0,0 @@
-package cn.bootx.platform.notice.core.dingtalk.entity.msg;
-
-import cn.bootx.platform.starter.dingtalk.param.notice.msg.LinkMsg;
-import cn.bootx.platform.starter.dingtalk.param.notice.msg.Msg;
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-import lombok.experimental.Accessors;
-
-/**
- * 钉钉链接信息
- *
- * @author xxm
- * @since 2022/7/19
- */
-@Data
-@Accessors(chain = true)
-@Schema(title = "钉钉链接信息")
-public class DingLinkMsg implements DingMsg {
-
-    @Schema(description = "标题")
-    private String title;
-
-    @Schema(description = "内容")
-    private String text;
-
-    @Schema(description = "点击消息跳转的URL")
-    private String messageUrl;
-
-    @Schema(description = "图片URL")
-    private String picUrl;
-
-    /**
-     * 转换成钉钉消息
-     */
-    @Override
-    public Msg toDingMsg() {
-        return new LinkMsg(title, text, messageUrl, picUrl);
-    }
-
-}
diff --git a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/dingtalk/entity/msg/DingMarkDownMsg.java b/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/dingtalk/entity/msg/DingMarkDownMsg.java
deleted file mode 100644
index 36bc79ec1ac0c9157bbe9a9b53663ae807d30450..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/dingtalk/entity/msg/DingMarkDownMsg.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package cn.bootx.platform.notice.core.dingtalk.entity.msg;
-
-import cn.bootx.platform.starter.dingtalk.param.notice.msg.MarkdownMsg;
-import cn.bootx.platform.starter.dingtalk.param.notice.msg.Msg;
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-import lombok.experimental.Accessors;
-
-/**
- * @author xxm
- * @since 2022/7/20
- */
-@Data
-@Accessors(chain = true)
-@Schema(title = "钉钉MarkDown工作通知消息")
-public class DingMarkDownMsg implements DingMsg {
-
-    @Schema(description = "标题")
-    private String title;
-
-    @Schema(description = "内容")
-    private String text;
-
-    @Override
-    public Msg toDingMsg() {
-        return new MarkdownMsg(title, text);
-    }
-
-}
diff --git a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/dingtalk/entity/msg/DingMsg.java b/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/dingtalk/entity/msg/DingMsg.java
deleted file mode 100644
index 2c85da3994323e39aa8695742d8e281f13ec52ee..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/dingtalk/entity/msg/DingMsg.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package cn.bootx.platform.notice.core.dingtalk.entity.msg;
-
-import cn.bootx.platform.starter.dingtalk.param.notice.msg.Msg;
-
-/**
- * 钉钉消息接口
- *
- * @author xxm
- * @since 2022/7/20
- */
-public interface DingMsg {
-
-    /**
-     * 转换成钉钉消息
-     */
-    Msg toDingMsg();
-
-}
diff --git a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/dingtalk/entity/msg/DingOaMsg.java b/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/dingtalk/entity/msg/DingOaMsg.java
deleted file mode 100644
index 24e582f1ddd0905113872377787f48a6f083e28b..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/dingtalk/entity/msg/DingOaMsg.java
+++ /dev/null
@@ -1,51 +0,0 @@
-package cn.bootx.platform.notice.core.dingtalk.entity.msg;
-
-import cn.bootx.platform.starter.dingtalk.param.notice.msg.Msg;
-import cn.bootx.platform.starter.dingtalk.param.notice.msg.OaMsg;
-import com.fasterxml.jackson.annotation.JsonProperty;
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-import lombok.experimental.Accessors;
-
-/**
- * @author xxm
- * @since 2022/7/19
- */
-@Data
-@Accessors(chain = true)
-@Schema(title = "钉钉OA消息")
-public class DingOaMsg implements DingMsg {
-
-    @JsonProperty("message_url")
-    @Schema(description = "消息点击链接地址")
-    private String messageUrl;
-
-    @JsonProperty("pc_message_url")
-    @Schema(description = "PC端点击消息时跳转到的地址")
-    private String pcMessageUrl;
-
-    @Schema(description = "消息头部内容")
-    private OaMsg.Oa.Head head;
-
-    @Schema(description = "消息体")
-    private OaMsg.Oa.Body body;
-
-    @JsonProperty("status_bar")
-    @Schema(description = "消息状态栏")
-    private OaMsg.Oa.StatusBar statusBar;
-
-    /**
-     * 转换成钉钉消息
-     */
-    @Override
-    public Msg toDingMsg() {
-        OaMsg.Oa oa = new OaMsg.Oa().setMessageUrl(messageUrl)
-            .setPcMessageUrl(pcMessageUrl)
-            .setHead(head)
-            .setBody(body)
-            .setStatusBar(statusBar);
-
-        return new OaMsg(oa);
-    }
-
-}
diff --git a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/dingtalk/entity/msg/DingTextMsg.java b/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/dingtalk/entity/msg/DingTextMsg.java
deleted file mode 100644
index c0956a14dbc65e30ff747bff48978e0a01977447..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/dingtalk/entity/msg/DingTextMsg.java
+++ /dev/null
@@ -1,34 +0,0 @@
-package cn.bootx.platform.notice.core.dingtalk.entity.msg;
-
-import cn.bootx.platform.starter.dingtalk.param.notice.msg.Msg;
-import cn.bootx.platform.starter.dingtalk.param.notice.msg.TextMsg;
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-import lombok.experimental.Accessors;
-
-/**
- * 钉钉工作通知消息
- *
- * @author xxm
- * @since 2022/7/19
- */
-@Data
-@Accessors(chain = true)
-@NoArgsConstructor
-@AllArgsConstructor
-@Schema(title = "钉钉文本工作通知消息")
-public class DingTextMsg implements DingMsg {
-
-    @Schema(description = "文本内容")
-    private String content;
-
-    /**
-     * 转换成钉钉消息
-     */
-    public Msg toDingMsg() {
-        return new TextMsg(content);
-    }
-
-}
diff --git a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/dingtalk/entity/msg/DingVoiceMsg.java b/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/dingtalk/entity/msg/DingVoiceMsg.java
deleted file mode 100644
index 879b95cb88bd9873a0e9971f27e6d3a9b5b5fa7a..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/dingtalk/entity/msg/DingVoiceMsg.java
+++ /dev/null
@@ -1,38 +0,0 @@
-package cn.bootx.platform.notice.core.dingtalk.entity.msg;
-
-import cn.bootx.platform.starter.dingtalk.param.notice.msg.Msg;
-import cn.bootx.platform.starter.dingtalk.param.notice.msg.VoiceMsg;
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-import lombok.experimental.Accessors;
-
-/**
- * 声音消息
- *
- * @author xxm
- * @since 2022/7/19
- */
-@Data
-@Accessors(chain = true)
-@AllArgsConstructor
-@NoArgsConstructor
-@Schema(title = "声音工作通知消息")
-public class DingVoiceMsg implements DingMsg {
-
-    @Schema(description = "媒体文件id")
-    private String mediaId;
-
-    @Schema(description = "音频时长")
-    private String duration;
-
-    /**
-     * 转换成钉钉消息
-     */
-    @Override
-    public Msg toDingMsg() {
-        return new VoiceMsg(mediaId, duration);
-    }
-
-}
diff --git a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/dingtalk/service/DingRobotNoticeSenderImpl.java b/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/dingtalk/service/DingRobotNoticeSenderImpl.java
deleted file mode 100644
index f5adfe92936d91803487240ee421776554e2fdc3..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/dingtalk/service/DingRobotNoticeSenderImpl.java
+++ /dev/null
@@ -1,46 +0,0 @@
-package cn.bootx.platform.notice.core.dingtalk.service;
-
-import cn.bootx.platform.notice.service.DingRobotNoticeSender;
-import cn.bootx.platform.starter.dingtalk.core.robot.service.DingRobotSendService;
-import cn.bootx.platform.starter.dingtalk.param.notice.msg.LinkMsg;
-import cn.bootx.platform.starter.dingtalk.param.notice.msg.MarkdownMsg;
-import cn.bootx.platform.starter.dingtalk.param.notice.msg.TextMsg;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Service;
-
-/**
- * 钉钉机器人消息
- *
- * @author xxm
- * @since 2022/7/19
- */
-@Slf4j
-@Service
-@RequiredArgsConstructor
-public class DingRobotNoticeSenderImpl implements DingRobotNoticeSender {
-
-    private final DingRobotSendService dingRobotSendService;
-
-    @Override
-    public void sendSimpleText(String code, String msg) {
-        TextMsg dingTalkTextNotice = new TextMsg(msg);
-        dingRobotSendService.sendNotice(code, dingTalkTextNotice);
-    }
-
-    @Override
-    public void sendText(String code, TextMsg dingTalkTextNotice) {
-        dingRobotSendService.sendNotice(code, dingTalkTextNotice);
-    }
-
-    @Override
-    public void sendLink(String code, LinkMsg notice) {
-        dingRobotSendService.sendNotice(code, notice);
-    }
-
-    @Override
-    public void sendMarkdown(String code, MarkdownMsg notice) {
-        dingRobotSendService.sendNotice(code, notice);
-    }
-
-}
diff --git a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/dingtalk/service/DingTalkNoticeSenderImpl.java b/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/dingtalk/service/DingTalkNoticeSenderImpl.java
deleted file mode 100644
index 692a424639f4427cf8575dffb4e137cffca40e21..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/dingtalk/service/DingTalkNoticeSenderImpl.java
+++ /dev/null
@@ -1,315 +0,0 @@
-package cn.bootx.platform.notice.core.dingtalk.service;
-
-import cn.bootx.platform.common.core.exception.BizException;
-import cn.bootx.platform.notice.core.dingtalk.entity.msg.*;
-import cn.bootx.platform.notice.service.DingTalkNoticeSender;
-import cn.bootx.platform.starter.dingtalk.code.DingTalkCode;
-import cn.bootx.platform.starter.dingtalk.configuration.DingTalkProperties;
-import cn.bootx.platform.starter.dingtalk.core.base.result.DingTalkResult;
-import cn.bootx.platform.starter.dingtalk.core.media.service.DingMediaService;
-import cn.bootx.platform.starter.dingtalk.core.notice.result.ChatNoticeResult;
-import cn.bootx.platform.starter.dingtalk.core.notice.result.CorpNoticeResult;
-import cn.bootx.platform.starter.dingtalk.core.notice.service.DingNoticeService;
-import cn.bootx.platform.starter.dingtalk.param.notice.ChatNotice;
-import cn.bootx.platform.starter.dingtalk.param.notice.CorpNotice;
-import cn.bootx.platform.starter.dingtalk.param.notice.RecallCorpNotice;
-import cn.bootx.platform.starter.dingtalk.param.notice.UpdateCorpNotice;
-import cn.bootx.platform.notice.core.dingtalk.entity.corp.DingCorpNoticeParam;
-import cn.bootx.platform.notice.core.dingtalk.entity.corp.DingCorpNoticeReceive;
-import cn.bootx.platform.notice.core.dingtalk.entity.corp.DingCorpNoticeUpdate;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Service;
-
-import java.io.InputStream;
-import java.util.Objects;
-
-/**
- * 钉钉消息通知
- *
- * @author xxm
- * @since 2022/7/16
- */
-@Slf4j
-@Service
-@RequiredArgsConstructor
-public class DingTalkNoticeSenderImpl implements DingTalkNoticeSender {
-
-    private final DingNoticeService dingNoticeService;
-
-    private final DingMediaService dingMediaService;
-
-    private final DingTalkProperties dingTalkProperties;
-
-    /**
-     * 发送文本消息
-     * @return 发布消息任务ID
-     */
-    @Override
-    public Long sendTextCorpNotice(DingTextMsg dingTextMsg, DingCorpNoticeReceive receive) {
-        return this.sendCorpNotice(dingTextMsg, receive);
-    }
-
-    /**
-     * 发送图片消息
-     * @return 发布消息任务ID
-     */
-    @Override
-    public Long sendImageCorpNotice(DingImageMsg dingImageMsg, DingCorpNoticeReceive receive) {
-        return this.sendCorpNotice(dingImageMsg, receive);
-    }
-
-    /**
-     * 发送图片消息 (文件方式)
-     * @return 发布消息任务ID
-     */
-    @Override
-    public Long sendImageCorpNotice(InputStream inputStream, DingCorpNoticeReceive receive) {
-        String mediaId = dingMediaService.uploadMedia(inputStream, DingTalkCode.MEDIA_IMAGE);
-        DingImageMsg dingImageMsg = new DingImageMsg(mediaId);
-        return this.sendCorpNotice(dingImageMsg, receive);
-    }
-
-    /**
-     * 发送图片消息 (文件方式)
-     * @return 发布消息任务ID
-     */
-    @Override
-    public Long sendImageCorpNotice(InputStream inputStream, String filename, DingCorpNoticeReceive receive) {
-        String mediaId = dingMediaService.uploadMedia(inputStream, filename, DingTalkCode.MEDIA_IMAGE);
-        DingImageMsg dingImageMsg = new DingImageMsg(mediaId);
-        return this.sendCorpNotice(dingImageMsg, receive);
-    }
-
-    /**
-     * 发送语音消息
-     * @return 发布消息任务ID
-     */
-    @Override
-    public Long sendVoiceCorpNotice(DingVoiceMsg dingVoiceMsg, DingCorpNoticeReceive receive) {
-        return this.sendCorpNotice(dingVoiceMsg, receive);
-    }
-
-    /**
-     * 发送语音消息 (文件)
-     * @return 发布消息任务ID
-     */
-    @Override
-    public Long sendVoiceCorpNotice(InputStream inputStream, DingCorpNoticeReceive receive) {
-        String mediaId = dingMediaService.uploadMedia(inputStream, DingTalkCode.MEDIA_VOICE);
-        DingVoiceMsg dingVoiceMsg = new DingVoiceMsg(mediaId, "10");
-        return this.sendCorpNotice(dingVoiceMsg, receive);
-    }
-
-    /**
-     * 发送语音消息 (文件)
-     * @return 发布消息任务ID
-     */
-    @Override
-    public Long sendVoiceCorpNotice(InputStream inputStream, String filename, DingCorpNoticeReceive receive) {
-        String mediaId = dingMediaService.uploadMedia(inputStream, filename, DingTalkCode.MEDIA_VOICE);
-        DingVoiceMsg dingVoiceMsg = new DingVoiceMsg(mediaId, "10");
-        return this.sendCorpNotice(dingVoiceMsg, receive);
-    }
-
-    /**
-     * 发送文件消息
-     * @return 发布消息任务ID
-     */
-    @Override
-    public Long sendFileCorpNotice(DingFileMsg dingFileMsg, DingCorpNoticeReceive receive) {
-        return this.sendCorpNotice(dingFileMsg, receive);
-    }
-
-    /**
-     * 发送文件消息(文件)
-     * @return 发布消息任务ID
-     */
-    @Override
-    public Long sendFileCorpNotice(InputStream inputStream, DingCorpNoticeReceive receive) {
-        String mediaId = dingMediaService.uploadMedia(inputStream, DingTalkCode.MEDIA_FILE);
-        DingFileMsg dingFileMsg = new DingFileMsg(mediaId);
-        return this.sendCorpNotice(dingFileMsg, receive);
-    }
-
-    /**
-     * 发送文件消息(文件)
-     * @return 发布消息任务ID
-     */
-    @Override
-    public Long sendFileCorpNotice(InputStream inputStream, String filename, DingCorpNoticeReceive receive) {
-        String mediaId = dingMediaService.uploadMedia(inputStream, filename, DingTalkCode.MEDIA_FILE);
-        DingFileMsg dingFileMsg = new DingFileMsg(mediaId);
-        return this.sendCorpNotice(dingFileMsg, receive);
-    }
-
-    /**
-     * 发送链接消息
-     * @return 发布消息任务ID
-     */
-    @Override
-    public Long sendLinkCorpNotice(DingLinkMsg dingLinkMsg, DingCorpNoticeReceive receive) {
-        return this.sendCorpNotice(dingLinkMsg, receive);
-    }
-
-    /**
-     * 发送OA消息
-     * @return 发布消息任务ID
-     */
-    @Override
-    public Long sendOaCorpNotice(DingOaMsg dingOaMsg, DingCorpNoticeReceive receive) {
-        return this.sendCorpNotice(dingOaMsg, receive);
-    }
-
-    /**
-     * 发送markdown消息
-     */
-    @Override
-    public Long sendMarkDownCorpNotice(DingMarkDownMsg dingMarkDownMsg, DingCorpNoticeReceive receive) {
-        return this.sendCorpNotice(dingMarkDownMsg, receive);
-    }
-
-    /**
-     * 发送卡片消息
-     */
-    @Override
-    public Long sendActionCardCorpNotice(DingActionCardMsg dingActionCardMsg, DingCorpNoticeReceive receive) {
-        return this.sendCorpNotice(dingActionCardMsg, receive);
-    }
-
-    /**
-     * 返回任务id(OA消息更新状态使用)
-     */
-    private Long sendCorpNotice(DingMsg dingMsg, DingCorpNoticeReceive receive) {
-        DingCorpNoticeParam dingCorpNoticeParam = new DingCorpNoticeParam(receive, dingMsg);
-        CorpNotice corpNotice = dingCorpNoticeParam.toDingCorpNotice();
-        corpNotice.setAgentId(dingTalkProperties.getAgentId());
-        CorpNoticeResult result = dingNoticeService.sendCorpNotice(corpNotice);
-
-        if (!Objects.equals(result.getCode(), DingTalkCode.SUCCESS_CODE)) {
-            throw new BizException(result.getMsg());
-        }
-        return result.getTaskId();
-    }
-
-    /**
-     * 更新OA工作通知消息
-     */
-    @Override
-    public void updateOaCorpNotice(DingCorpNoticeUpdate updateCorpNotice) {
-        UpdateCorpNotice dingUpdateCorpNotice = updateCorpNotice.toDingUpdateCorpNotice();
-        dingUpdateCorpNotice.setAgentId(dingTalkProperties.getAgentId());
-        CorpNoticeResult result = dingNoticeService.updateCorpNotice(dingUpdateCorpNotice);
-        if (!Objects.equals(result.getCode(), DingTalkCode.SUCCESS_CODE)) {
-            throw new BizException(result.getMsg());
-        }
-    }
-
-    /**
-     * 撤回工作通知消息
-     */
-    @Override
-    public void recallCorpNotice(Long msgTaskId) {
-        RecallCorpNotice recallCorpNotice = new RecallCorpNotice(dingTalkProperties.getAgentId(), msgTaskId);
-        DingTalkResult<?> result = dingNoticeService.recallCorpNotice(recallCorpNotice);
-        if (!Objects.equals(result.getCode(), DingTalkCode.SUCCESS_CODE)) {
-            throw new BizException(result.getMsg());
-        }
-    }
-
-    /**
-     * 发送文本企业群消息
-     * @param chatId 群Id
-     * @return 发布企业群消息ID
-     */
-    @Override
-    public String sendTextChatNotice(DingTextMsg dingTextMsg, String chatId) {
-        return this.sendChatNotice(dingTextMsg, chatId);
-    }
-
-    /**
-     * 发送图片企业群消息
-     * @param chatId 群Id
-     * @return 发布企业群消息ID
-     */
-    @Override
-    public String sendImageChatNotice(DingImageMsg dingImageMsg, String chatId) {
-        return this.sendChatNotice(dingImageMsg, chatId);
-    }
-
-    /**
-     * 发送语音企业群消息
-     * @param chatId 群Id
-     * @return 发布企业群消息ID
-     */
-    @Override
-    public String sendVoiceChatNotice(DingVoiceMsg dingVoiceMsg, String chatId) {
-        return this.sendChatNotice(dingVoiceMsg, chatId);
-    }
-
-    /**
-     * 发送文件企业群消息
-     * @param chatId 群Id
-     * @return 发布企业群消息ID
-     */
-    @Override
-    public String sendFileChatNotice(DingFileMsg dingFileMsg, String chatId) {
-        return this.sendChatNotice(dingFileMsg, chatId);
-    }
-
-    /**
-     * 发送链接企业群消息
-     * @param chatId 群Id
-     * @return 发布企业群消息ID
-     */
-    @Override
-    public String sendLinkChatNotice(DingLinkMsg dingLinkMsg, String chatId) {
-        return this.sendChatNotice(dingLinkMsg, chatId);
-    }
-
-    /**
-     * 发送OA企业群消息
-     * @param chatId 群Id
-     * @return 发布企业群消息ID
-     */
-    @Override
-    public String sendOaChatNotice(DingOaMsg dingOaMsg, String chatId) {
-        return this.sendChatNotice(dingOaMsg, chatId);
-    }
-
-    /**
-     * 发送markdown企业群消息
-     * @param chatId 群Id
-     * @return 发布企业群消息ID
-     */
-    @Override
-    public String sendMarkDownChatNotice(DingMarkDownMsg dingMarkDownMsg, String chatId) {
-        return this.sendChatNotice(dingMarkDownMsg, chatId);
-    }
-
-    /**
-     * 发送卡片企业群消息
-     * @param chatId 群Id
-     * @return 发布企业群消息ID
-     */
-    @Override
-    public String sendActionCardChatNotice(DingActionCardMsg dingActionCardMsg, String chatId) {
-        return this.sendChatNotice(dingActionCardMsg, chatId);
-    }
-
-    /**
-     * 发送企业群消息
-     * @param chatId 群Id
-     * @return 发布企业群消息ID
-     */
-    private String sendChatNotice(DingMsg dingMsg, String chatId) {
-
-        ChatNotice chatNotice = new ChatNotice(chatId, dingMsg.toDingMsg());
-        ChatNoticeResult result = dingNoticeService.sendChatNotice(chatNotice);
-        if (!Objects.equals(result.getCode(), DingTalkCode.SUCCESS_CODE)) {
-            throw new BizException(result.getMsg());
-        }
-        return result.getMessageId();
-    }
-
-}
diff --git a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/mail/convert/MailConvert.java b/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/mail/convert/MailConvert.java
deleted file mode 100644
index 6cb7e1e0b40c2255088681a4dd6df499807cb3ef..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/mail/convert/MailConvert.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package cn.bootx.platform.notice.core.mail.convert;
-
-import cn.bootx.platform.notice.param.mail.MailConfigParam;
-import cn.bootx.platform.notice.core.mail.entity.MailConfig;
-import cn.bootx.platform.notice.dto.mail.MailConfigDto;
-import org.mapstruct.Mapper;
-import org.mapstruct.factory.Mappers;
-
-/**
- * 钉钉相关类转换
- *
- * @author xxm
- * @since 2021/8/5
- */
-@Mapper
-public interface MailConvert {
-
-    MailConvert CONVERT = Mappers.getMapper(MailConvert.class);
-
-    MailConfig convert(MailConfigDto in);
-
-    MailConfig convert(MailConfigParam in);
-
-    MailConfigDto convert(MailConfig in);
-
-}
diff --git a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/mail/dao/MailConfigManager.java b/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/mail/dao/MailConfigManager.java
deleted file mode 100644
index 8fa429669210b44ede5989eca3331b9e2b39f5e1..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/mail/dao/MailConfigManager.java
+++ /dev/null
@@ -1,55 +0,0 @@
-package cn.bootx.platform.notice.core.mail.dao;
-
-import cn.bootx.platform.common.core.rest.param.PageParam;
-import cn.bootx.platform.common.mybatisplus.base.MpIdEntity;
-import cn.bootx.platform.common.mybatisplus.impl.BaseManager;
-import cn.bootx.platform.common.mybatisplus.util.MpUtil;
-import cn.bootx.platform.notice.core.mail.entity.MailConfig;
-import cn.bootx.platform.notice.param.mail.MailConfigParam;
-import cn.hutool.core.util.StrUtil;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Repository;
-
-import java.util.Optional;
-
-/**
- * @author xxm
- * @since 2020/4/8 13:27
- */
-@Slf4j
-@Repository
-@RequiredArgsConstructor
-public class MailConfigManager extends BaseManager<MailConfigMapper, MailConfig> {
-
-    public Optional<MailConfig> findByActivity() {
-        return findByField(MailConfig::getActivity, Boolean.TRUE);
-    }
-
-    public Optional<MailConfig> findByCode(String code) {
-        return findByField(MailConfig::getCode, code);
-    }
-
-    public Page<MailConfig> page(PageParam pageParam, MailConfigParam param) {
-        Page<MailConfig> mpPage = MpUtil.getMpPage(pageParam, MailConfig.class);
-        return this.lambdaQuery()
-            .orderByDesc(MpIdEntity::getId)
-            .like(StrUtil.isNotBlank(param.getCode()), MailConfig::getCode, param.getCode())
-            .like(StrUtil.isNotBlank(param.getName()), MailConfig::getName, param.getName())
-            .page(mpPage);
-    }
-
-    public boolean existsByCode(String code) {
-        return existedByField(MailConfig::getCode, code);
-    }
-
-    public boolean existsByCode(String code, Long id) {
-        return existedByField(MailConfig::getCode, code, id);
-    }
-
-    public void removeAllActivity() {
-        lambdaUpdate().eq(MailConfig::getActivity, Boolean.TRUE).set(MailConfig::getActivity, Boolean.FALSE).update();
-    }
-
-}
diff --git a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/mail/dao/MailConfigMapper.java b/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/mail/dao/MailConfigMapper.java
deleted file mode 100644
index 614327ef6a261deaee42930d7658f4d43f8bfd72..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/mail/dao/MailConfigMapper.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package cn.bootx.platform.notice.core.mail.dao;
-
-import cn.bootx.platform.notice.core.mail.entity.MailConfig;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import org.apache.ibatis.annotations.Mapper;
-
-/**
- * 邮件[配置
- *
- * @author xxm
- * @since 2020/4/8 13:22
- */
-@Mapper
-public interface MailConfigMapper extends BaseMapper<MailConfig> {
-
-}
diff --git a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/mail/entity/MailConfig.java b/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/mail/entity/MailConfig.java
deleted file mode 100644
index 8f71bc3ee1ca6e9ca8a3c2ba3f8089c3bae0c149..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/mail/entity/MailConfig.java
+++ /dev/null
@@ -1,69 +0,0 @@
-package cn.bootx.platform.notice.core.mail.entity;
-
-import cn.bootx.platform.common.core.annotation.EncryptionField;
-import cn.bootx.platform.common.core.function.EntityBaseFunction;
-import cn.bootx.platform.common.mybatisplus.base.MpBaseEntity;
-import cn.bootx.platform.notice.core.mail.convert.MailConvert;
-import cn.bootx.platform.notice.param.mail.MailConfigParam;
-import cn.bootx.platform.notice.dto.mail.MailConfigDto;
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableName;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.experimental.Accessors;
-
-/**
- * 邮件配置
- *
- * @author xxm
- * @since 2020/4/8 11:14
- */
-@Data
-@EqualsAndHashCode(callSuper = true)
-@Accessors(chain = true)
-@TableName("notice_mail_config")
-public class MailConfig extends MpBaseEntity implements EntityBaseFunction<MailConfigDto> {
-
-    /** 编号 */
-    private String code;
-
-    /** 名称 */
-    private String name;
-
-    /** 邮箱服务器 host */
-    private String host;
-
-    /** 邮箱服务器 端口 */
-    private Integer port;
-
-    /** 邮箱服务器 账号 */
-    @EncryptionField
-    private String username;
-
-    /** 邮箱服务器 密码 */
-    @EncryptionField
-    private String password;
-
-    /** 邮箱服务器 发送人名称 */
-    private String sender;
-
-    /** 邮箱服务器 发送人邮箱账号 */
-    @TableField("from_")
-    private String from;
-
-    /** 是否默认配置 */
-    private Boolean activity;
-
-    /** 安全方式 */
-    private Integer securityType;
-
-    public static MailConfig init(MailConfigParam in) {
-        return MailConvert.CONVERT.convert(in);
-    }
-
-    @Override
-    public MailConfigDto toDto() {
-        return MailConvert.CONVERT.convert(this);
-    }
-
-}
diff --git a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/mail/service/EmailNoticeSenderImpl.java b/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/mail/service/EmailNoticeSenderImpl.java
deleted file mode 100644
index 9d49534a8da2ff369a250d4e711778d901c97b64..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/mail/service/EmailNoticeSenderImpl.java
+++ /dev/null
@@ -1,242 +0,0 @@
-package cn.bootx.platform.notice.core.mail.service;
-
-import cn.bootx.platform.notice.exception.MailConfigNotExistException;
-import cn.bootx.platform.notice.service.EmailNoticeSender;
-import cn.bootx.platform.notice.code.MailCode;
-import cn.bootx.platform.notice.dto.mail.MailConfigDto;
-import cn.bootx.platform.notice.dto.mail.MailFileParam;
-import cn.bootx.platform.notice.dto.mail.SendMailParam;
-import cn.hutool.core.collection.CollUtil;
-import cn.hutool.core.collection.CollectionUtil;
-import cn.hutool.core.util.ArrayUtil;
-import cn.hutool.core.util.StrUtil;
-import cn.hutool.extra.spring.SpringUtil;
-import com.google.common.collect.Sets;
-import lombok.AllArgsConstructor;
-import lombok.SneakyThrows;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.mail.javamail.JavaMailSenderImpl;
-import org.springframework.mail.javamail.MimeMessageHelper;
-import org.springframework.stereotype.Service;
-
-import javax.activation.DataHandler;
-import javax.activation.DataSource;
-import javax.mail.BodyPart;
-import javax.mail.MessagingException;
-import javax.mail.Multipart;
-import javax.mail.internet.InternetAddress;
-import javax.mail.internet.MimeBodyPart;
-import javax.mail.internet.MimeMessage;
-import javax.mail.internet.MimeMultipart;
-import javax.mail.util.ByteArrayDataSource;
-import java.io.UnsupportedEncodingException;
-import java.util.*;
-
-/**
- * 邮件发送服务
- *
- * @author xxm
- * @since 2020/5/2 16:06
- */
-@Slf4j
-@Service
-@AllArgsConstructor
-public class EmailNoticeSenderImpl implements EmailNoticeSender {
-
-    /**
-     * 默认 MIME Type
-     */
-    private static final String MIME_TYPE_DEFAULT = "text/html; charset=utf-8";
-
-    private final MailConfigService mailConfigService;
-
-    /**
-     * 简单邮件发送
-     * @param email 邮件地址
-     * @param subject 邮件标题
-     * @param msg 邮件消息
-     */
-    @Override
-    public void sentSimpleMail(String email, String subject, String msg) {
-        SendMailParam mailParam = new SendMailParam();
-        mailParam.setTo(Collections.singletonList(email));
-        mailParam.setSubject(subject);
-        mailParam.setMessage(msg);
-        SpringUtil.getBean(getClass()).sendMail(mailParam);
-    }
-
-    /**
-     * 标准邮件发送
-     */
-    @SneakyThrows
-    @Override
-    public void sendMail(SendMailParam mailParam) {
-        log.info("开始发送邮件");
-        MailConfigDto mailConfig = this.getMailConfig(mailParam.getConfigCode());
-        JavaMailSenderImpl mailSender = this.getMailSender(mailConfig);
-        List<MimeMessage> mimeMessageList = new ArrayList<>();
-
-        if (CollUtil.isEmpty(mailParam.getTo())) {
-            return;
-        }
-        // 获取to cc bcc 中所有允许发送的receiver
-        HashSet<String> allReceivers = Sets.newHashSet(mailParam.getTo());
-        // 密送
-        if (CollUtil.isNotEmpty(mailParam.getBccList())) {
-            allReceivers.addAll(mailParam.getBccList());
-        }
-        // 抄送
-        if (CollUtil.isNotEmpty(mailParam.getCcList())) {
-            allReceivers.addAll(mailParam.getCcList());
-        }
-        // 设置接收人
-        Set<String> receivers = Sets.intersection(allReceivers, new HashSet<>(mailParam.getTo()));
-        if (CollUtil.isEmpty(receivers)) {
-            return;
-        }
-        // 是否单条发送(拆分收件人)
-        if (mailParam.getSingleSend()) {
-            for (String to : receivers) {
-                this.buildMailParam(mailParam, mailConfig, mailSender, mimeMessageList, allReceivers, to);
-            }
-        }
-        else {
-            this.buildMailParam(mailParam, mailConfig, mailSender, mimeMessageList, allReceivers,
-                    ArrayUtil.toArray(receivers, String.class));
-        }
-
-        // 调用发送
-        mailSender.send(ArrayUtil.toArray(mimeMessageList, MimeMessage.class));
-        log.info("SendMail结束");
-    }
-
-    /**
-     * 构建邮件参数
-     * @param mailParam 发邮件的参数
-     * @param mailConfig 邮箱配置
-     * @param mailSender 邮件发送器
-     * @param mimeMessageList 多媒体信息
-     * @param allReceivers 接收人
-     * @param to 发送人
-     * @throws MessagingException 消息异常
-     * @throws UnsupportedEncodingException 不支持的编码异常
-     */
-    private void buildMailParam(SendMailParam mailParam, MailConfigDto mailConfig, JavaMailSenderImpl mailSender,
-            List<MimeMessage> mimeMessageList, Set<String> allReceivers, String... to)
-            throws MessagingException, UnsupportedEncodingException {
-        MimeMessage mimeMessage = mailSender.createMimeMessage();
-        MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage, true);
-        mimeMessageHelper.setFrom(new InternetAddress(mailConfig.getFrom(), mailConfig.getSender()));
-        mimeMessageHelper.setTo(to);
-        mimeMessageHelper.setSubject(mailParam.getSubject());
-
-        // 处理抄送
-        List<String> ccList = mailParam.getCcList();
-        if (CollUtil.isNotEmpty(ccList)) {
-            Set<String> ccReceivers = Sets.intersection(allReceivers, Sets.newHashSet(ccList));
-            if (!CollectionUtil.isEmpty(ccReceivers)) {
-                String[] ccReceiverArray = new String[ccReceivers.size()];
-                ccReceivers.toArray(ccReceiverArray);
-                mimeMessageHelper.setCc(ccReceiverArray);
-            }
-        }
-
-        // 处理密送
-        List<String> bccList = mailParam.getBccList();
-        if (CollUtil.isNotEmpty(bccList)) {
-            Set<String> bccReceivers = Sets.intersection(allReceivers, Sets.newHashSet(mailParam.getBccList()));
-            if (!CollectionUtil.isEmpty(bccReceivers)) {
-                String[] bccReceiverArray = new String[bccReceivers.size()];
-                bccReceivers.toArray(bccReceiverArray);
-                mimeMessageHelper.setBcc(ArrayUtil.toArray(bccList, String.class));
-            }
-        }
-
-        // 创建一个消息部分来代表正文
-        BodyPart messageBodyPart = new MimeBodyPart();
-        messageBodyPart.setContent(mailParam.getMessage(), MIME_TYPE_DEFAULT);
-        // 使用MimeMultipart,因为我们需要处理文件附件
-        Multipart multipart = new MimeMultipart();
-
-        // 判断是否包含附件
-        if (mailParam.isSendAttachment()) {
-            this.buildAttachmentParam(mailParam, multipart);
-        }
-
-        // 添加正文
-        multipart.addBodyPart(messageBodyPart);
-        // 将所有消息部分放入消息中
-        mimeMessage.setContent(multipart);
-        mimeMessageList.add(mimeMessage);
-
-    }
-
-    /**
-     * 构建附件参数
-     */
-    private void buildAttachmentParam(SendMailParam mailParam, Multipart multipart) throws MessagingException {
-        // 获得附件集合 进行发送附件
-        List<MailFileParam> files = mailParam.getFileList();
-        if (!CollectionUtil.isEmpty(files)) {
-            for (MailFileParam f : files) {
-
-                MimeBodyPart mimeBodyPart = new MimeBodyPart();
-                // 附件数据源:根据文件字节放入数据源
-                DataSource dss = new ByteArrayDataSource(f.getFileInputStream(), "application/png");
-                // 数据处理器
-                DataHandler dh = new DataHandler(dss);
-                mimeBodyPart.setFileName(f.getFileName());
-                mimeBodyPart.setDataHandler(dh);
-                multipart.addBodyPart(mimeBodyPart);
-            }
-        }
-    }
-
-    /**
-     * 获取邮件配置
-     */
-    private MailConfigDto getMailConfig(String configCode) {
-        MailConfigDto mailConfig;
-
-        // 无code获取默认
-        if (StrUtil.isEmpty(configCode)) {
-            mailConfig = mailConfigService.getDefaultConfig();
-        }
-        else {
-            mailConfig = mailConfigService.getByCode(configCode);
-        }
-        if (mailConfig == null) {
-            throw new MailConfigNotExistException();
-        }
-        return mailConfig;
-    }
-
-    /**
-     * 获取邮件发件器
-     */
-    private JavaMailSenderImpl getMailSender(MailConfigDto mailConfig) {
-        JavaMailSenderImpl mailSender = new JavaMailSenderImpl();
-        mailSender.setHost(mailConfig.getHost());
-        mailSender.setPort(mailConfig.getPort());
-        mailSender.setUsername(mailConfig.getUsername());
-        mailSender.setPassword(mailConfig.getPassword());
-
-        Properties props = new Properties();
-        // 判断是否是TLS
-        if (Objects.equals(Optional.ofNullable(mailConfig.getSecurityType()).orElse(0), MailCode.SECURITY_TYPE_TLS)) {
-            props.setProperty("mail.smtp.starttls.enable", "true");
-        }
-        else if (Objects.equals(Optional.ofNullable(mailConfig.getSecurityType()).orElse(0),
-                MailCode.SECURITY_TYPE_SSL)) {
-            props.setProperty("mail.smtp.starttls.enable", "true");
-            props.setProperty("mail.smtp.auth", "true");
-            props.setProperty("mail.smtp.socketFactory.port", mailConfig.getPort() + "");
-            props.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
-            props.setProperty("mail.smtp.socketFactory.fallback", "false");
-        }
-        mailSender.setJavaMailProperties(props);
-
-        return mailSender;
-    }
-
-}
diff --git a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/mail/service/MailConfigService.java b/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/mail/service/MailConfigService.java
deleted file mode 100644
index ca7bf74dcb484e83ff8fa0953dab4daad8930fc8..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/mail/service/MailConfigService.java
+++ /dev/null
@@ -1,119 +0,0 @@
-package cn.bootx.platform.notice.core.mail.service;
-
-import cn.bootx.platform.common.core.rest.PageResult;
-import cn.bootx.platform.common.core.rest.param.PageParam;
-import cn.bootx.platform.common.core.util.ResultConvertUtil;
-import cn.bootx.platform.common.mybatisplus.util.MpUtil;
-import cn.bootx.platform.notice.exception.MailConfigCodeAlreadyExistedException;
-import cn.bootx.platform.notice.exception.MailConfigNotExistException;
-import cn.bootx.platform.notice.param.mail.MailConfigParam;
-import cn.bootx.platform.notice.core.mail.dao.MailConfigManager;
-import cn.bootx.platform.notice.core.mail.entity.MailConfig;
-import cn.bootx.platform.notice.dto.mail.MailConfigDto;
-import cn.hutool.core.bean.BeanUtil;
-import cn.hutool.core.bean.copier.CopyOptions;
-import lombok.AllArgsConstructor;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-
-/**
- * 邮件配置
- *
- * @author xxm
- * @since 2020/4/8 13:29
- */
-@Service
-@AllArgsConstructor
-public class MailConfigService {
-
-    private final MailConfigManager mailConfigManager;
-
-    /**
-     * 添加新邮箱配置
-     */
-    @Transactional(rollbackFor = Exception.class)
-    public MailConfigDto add(MailConfigParam param) {
-        if (mailConfigManager.existsByCode(param.getCode())) {
-            throw new MailConfigCodeAlreadyExistedException();
-        }
-
-        MailConfig mailConfig = MailConfig.init(param);
-        return mailConfigManager.save(mailConfig).toDto();
-    }
-
-    /**
-     * 更新邮箱配置
-     */
-    @Transactional(rollbackFor = Exception.class)
-    public MailConfigDto update(MailConfigParam param) {
-        MailConfig mailConfig = mailConfigManager.findById(param.getId()).orElseThrow(MailConfigNotExistException::new);
-
-        if (mailConfigManager.existsByCode(param.getCode(), param.getId())) {
-            throw new MailConfigCodeAlreadyExistedException();
-        }
-
-        BeanUtil.copyProperties(param, mailConfig, CopyOptions.create().ignoreNullValue());
-        return mailConfigManager.updateById(mailConfig).toDto();
-    }
-
-    /**
-     * 根据 id 获取相应的邮箱配置
-     */
-    public MailConfigDto findById(Long id) {
-        return ResultConvertUtil.dtoConvert(mailConfigManager.findById(id));
-    }
-
-    /**
-     * 获取 默认邮箱配置
-     */
-    public MailConfigDto getDefaultConfig() {
-        return ResultConvertUtil.dtoConvert(mailConfigManager.findByActivity());
-    }
-
-    /**
-     * 分页
-     */
-    public PageResult<MailConfigDto> page(PageParam pageParam, MailConfigParam param) {
-        return MpUtil.convert2DtoPageResult(mailConfigManager.page(pageParam, param));
-    }
-
-    /**
-     * 根据 code 获取相应的邮箱配置
-     */
-    public MailConfigDto getByCode(String code) {
-        return ResultConvertUtil.dtoConvert(mailConfigManager.findByCode(code));
-    }
-
-    /**
-     * 编码是否已经存在
-     */
-    public boolean existsByCode(String code) {
-        return mailConfigManager.existsByCode(code);
-    }
-
-    /**
-     * 编码是否已经存在(不包含自身)
-     */
-    public boolean existsByCode(String code, Long id) {
-        return mailConfigManager.existsByCode(code, id);
-    }
-
-    /**
-     * 设置活动邮箱
-     */
-    @Transactional(rollbackFor = Exception.class)
-    public void setUpActivity(Long id) {
-        MailConfig mailConfig = mailConfigManager.findById(id).orElseThrow(MailConfigNotExistException::new);
-        mailConfig.setActivity(true);
-        mailConfigManager.removeAllActivity();
-        mailConfigManager.updateById(mailConfig);
-    }
-
-    /**
-     * 根据 id 删除相应的邮箱配置
-     */
-    public void delete(Long id) {
-        mailConfigManager.deleteById(id);
-    }
-
-}
diff --git a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/site/convert/SiteMessageConvert.java b/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/site/convert/SiteMessageConvert.java
deleted file mode 100644
index 6b27d1cfc064ab71ed02966b46429109fbf5b2d5..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/site/convert/SiteMessageConvert.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package cn.bootx.platform.notice.core.site.convert;
-
-import cn.bootx.platform.notice.core.site.entity.SiteMessage;
-import cn.bootx.platform.notice.dto.site.SiteMessageDto;
-import org.mapstruct.Mapper;
-import org.mapstruct.factory.Mappers;
-
-/**
- * 站内信转换
- *
- * @author xxm
- * @since 2021/8/7
- */
-@Mapper
-public interface SiteMessageConvert {
-
-    SiteMessageConvert CONVERT = Mappers.getMapper(SiteMessageConvert.class);
-
-    SiteMessageDto convert(SiteMessage in);
-
-}
diff --git a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/site/dao/SiteMessageManager.java b/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/site/dao/SiteMessageManager.java
deleted file mode 100644
index 7df9a5dde7d0e2a41d3b19a2e2ff7393485f3442..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/site/dao/SiteMessageManager.java
+++ /dev/null
@@ -1,112 +0,0 @@
-package cn.bootx.platform.notice.core.site.dao;
-
-import cn.bootx.platform.common.core.rest.param.PageParam;
-import cn.bootx.platform.common.mybatisplus.impl.BaseManager;
-import cn.bootx.platform.common.mybatisplus.util.MpUtil;
-import cn.bootx.platform.notice.core.site.domain.SiteMessageInfo;
-import cn.bootx.platform.notice.core.site.entity.SiteMessage;
-import cn.bootx.platform.notice.code.SiteMessageCode;
-import cn.hutool.core.util.StrUtil;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import lombok.val;
-import org.springframework.stereotype.Repository;
-
-import java.time.LocalDate;
-import java.util.List;
-import java.util.Objects;
-import java.util.stream.Collectors;
-
-import static cn.bootx.platform.notice.code.SiteMessageCode.STATE_SENT;
-
-/**
- * 站内信
- *
- * @author xxm
- * @since 2021/8/7
- */
-@Slf4j
-@Repository
-@RequiredArgsConstructor
-public class SiteMessageManager extends BaseManager<SiteMessageMapper, SiteMessage> {
-
-    /**
-     * 接收用户消息分页
-     */
-    public Page<SiteMessageInfo> pageByReceive(PageParam pageParam, SiteMessageInfo query, Long userId) {
-        val mpPage = MpUtil.getMpPage(pageParam, SiteMessageInfo.class);
-
-        val wrapper = new LambdaQueryWrapper<SiteMessageInfo>()
-                .and(o -> o
-                        .and(p -> p.eq(SiteMessageInfo::getReceiveType, SiteMessageCode.RECEIVE_ALL)
-                                .gt(SiteMessageInfo::getEfficientTime, LocalDate.now()))
-                        .or()
-                        .eq(SiteMessageInfo::getReceiveId, userId))
-                .eq(SiteMessageInfo::getSendState, STATE_SENT)
-                .eq(StrUtil.isNotBlank(query.getTitle()), SiteMessageInfo::getTitle, query.getTitle())
-                .orderByAsc(SiteMessageInfo::getHaveRead)
-                .orderByDesc(SiteMessageInfo::getReadTime);
-        if (Objects.equals(query.getHaveRead(), true)) {
-            wrapper.eq(SiteMessageInfo::getHaveRead, query.getHaveRead());
-        }
-        // 已读为空也视为未读
-        if (Objects.equals(query.getHaveRead(), false)) {
-            wrapper.and(o -> o.eq(SiteMessageInfo::getHaveRead, false).or().isNull(SiteMessageInfo::getHaveRead));
-
-        }
-
-        return baseMapper.pageMassage(mpPage, wrapper);
-    }
-
-    /**
-     * 查询未读的消息数量
-     */
-    public Integer countByReceiveNotRead(Long userId) {
-        val wrapper = new LambdaQueryWrapper<SiteMessageInfo>()
-                .and(o -> o
-                        .and(p -> p.eq(SiteMessageInfo::getReceiveType, SiteMessageCode.RECEIVE_ALL)
-                                .gt(SiteMessageInfo::getEfficientTime, LocalDate.now()))
-                        .or()
-                        .eq(SiteMessageInfo::getReceiveId, userId))
-                .and(o -> o.eq(SiteMessageInfo::getHaveRead, false).or().isNull(SiteMessageInfo::getHaveRead))
-                .eq(SiteMessageInfo::getSendState, STATE_SENT)
-                .orderByAsc(SiteMessageInfo::getHaveRead)
-                .orderByDesc(SiteMessageInfo::getReadTime);
-        return baseMapper.countMassage(wrapper);
-    }
-
-    public List<String> listByReceiveNotRead(Long userId) {
-        Page<SiteMessageInfo> page = new Page<>();
-        page.setSize(5);
-        page.setSize(1);
-        val wrapper = new LambdaQueryWrapper<SiteMessageInfo>()
-                .and(o -> o
-                        .and(p -> p.eq(SiteMessageInfo::getReceiveType, SiteMessageCode.RECEIVE_ALL)
-                                .gt(SiteMessageInfo::getEfficientTime, LocalDate.now()))
-                        .or()
-                        .eq(SiteMessageInfo::getReceiveId, userId))
-                .and(o -> o.eq(SiteMessageInfo::getHaveRead, false).or().isNull(SiteMessageInfo::getHaveRead))
-                .eq(SiteMessageInfo::getSendState, STATE_SENT)
-                .orderByAsc(SiteMessageInfo::getHaveRead)
-                .orderByDesc(SiteMessageInfo::getReadTime);
-        return baseMapper.pageMassage(page, wrapper).getRecords().stream()
-                .map(SiteMessageInfo::getTitle).collect(Collectors.toList());
-    }
-
-    /**
-     * 发送人消息分页
-     */
-    public Page<SiteMessage> pageBySender(PageParam pageParam, SiteMessageInfo query, Long userId) {
-        Page<SiteMessage> mpPage = MpUtil.getMpPage(pageParam, SiteMessage.class);
-        return lambdaQuery().select(SiteMessage.class, MpUtil::excludeBigField)
-                .eq(SiteMessage::getSenderId, userId)
-                .like(StrUtil.isNotBlank(query.getTitle()), SiteMessage::getSenderId, query.getTitle())
-                .eq(StrUtil.isNotBlank(query.getSendState()), SiteMessage::getSendState, query.getSendState())
-                .eq(StrUtil.isNotBlank(query.getReceiveType()), SiteMessage::getReceiveType, query.getReceiveType())
-                .orderByDesc(SiteMessage::getId)
-                .page(mpPage);
-    }
-
-}
diff --git a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/site/dao/SiteMessageMapper.java b/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/site/dao/SiteMessageMapper.java
deleted file mode 100644
index 2ce415b49e8b46d87a73161c71aacfd16d5d90c8..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/site/dao/SiteMessageMapper.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package cn.bootx.platform.notice.core.site.dao;
-
-import cn.bootx.platform.notice.core.site.domain.SiteMessageInfo;
-import cn.bootx.platform.notice.core.site.entity.SiteMessage;
-import com.baomidou.mybatisplus.core.conditions.Wrapper;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.baomidou.mybatisplus.core.toolkit.Constants;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-
-/**
- * 站内信
- *
- * @author xxm
- * @since 2021/8/7
- */
-@Mapper
-public interface SiteMessageMapper extends BaseMapper<SiteMessage> {
-
-    Page<SiteMessageInfo> pageMassage(Page<SiteMessageInfo> page,
-                                      @Param(Constants.WRAPPER) Wrapper<SiteMessageInfo> wrapper);
-
-    Integer countMassage(@Param(Constants.WRAPPER) Wrapper<SiteMessageInfo> wrapper);
-
-}
diff --git a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/site/dao/SiteMessageUserManager.java b/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/site/dao/SiteMessageUserManager.java
deleted file mode 100644
index 3620ed892f52a6b5f161c0dbef47da80c99fe16b..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/site/dao/SiteMessageUserManager.java
+++ /dev/null
@@ -1,47 +0,0 @@
-package cn.bootx.platform.notice.core.site.dao;
-
-import cn.bootx.platform.common.mybatisplus.base.MpIdEntity;
-import cn.bootx.platform.common.mybatisplus.impl.BaseManager;
-import cn.bootx.platform.notice.core.site.entity.SiteMessageUser;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Repository;
-
-import java.time.LocalDateTime;
-import java.util.Optional;
-
-/**
- * @author xxm
- * @since 2022/8/14
- */
-@Slf4j
-@Repository
-@RequiredArgsConstructor
-public class SiteMessageUserManager extends BaseManager<SiteMessageUserMapper, SiteMessageUser> {
-
-    /**
-     * 根据消息ID查询
-     */
-    public Optional<SiteMessageUser> findByMessageId(Long messageId) {
-        return findByField(SiteMessageUser::getMessageId, messageId);
-    }
-
-    /**
-     * 阅读
-     */
-    public void readById(Long id) {
-        lambdaUpdate().eq(MpIdEntity::getId, id)
-            .set(SiteMessageUser::isHaveRead, Boolean.TRUE)
-            .set(SiteMessageUser::getReadTime, LocalDateTime.now())
-            .update();
-    }
-
-    /**
-     * 根据消息ID删除
-     */
-    public void deleteByMessageId(Long messageId) {
-        deleteByField(SiteMessageUser::getMessageId, messageId);
-
-    }
-
-}
diff --git a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/site/dao/SiteMessageUserMapper.java b/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/site/dao/SiteMessageUserMapper.java
deleted file mode 100644
index b8917594db67efefd8f89fcf9433e42a39e730f5..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/site/dao/SiteMessageUserMapper.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package cn.bootx.platform.notice.core.site.dao;
-
-import cn.bootx.platform.notice.core.site.entity.SiteMessageUser;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import org.apache.ibatis.annotations.Mapper;
-
-/**
- * @author xxm
- * @since 2022/8/14
- */
-@Mapper
-public interface SiteMessageUserMapper extends BaseMapper<SiteMessageUser> {
-
-}
diff --git a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/site/domain/SiteMessageInfo.java b/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/site/domain/SiteMessageInfo.java
deleted file mode 100644
index 5e41cdf14481fd0dd8656fa8b0bbcb2304dbc49c..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/site/domain/SiteMessageInfo.java
+++ /dev/null
@@ -1,59 +0,0 @@
-package cn.bootx.platform.notice.core.site.domain;
-
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-import lombok.experimental.Accessors;
-import lombok.experimental.FieldNameConstants;
-
-import java.time.LocalDate;
-import java.time.LocalDateTime;
-
-/**
- * 站内信信息详情
- *
- * @author xxm
- * @since 2022/8/14
- */
-@Data
-@Accessors(chain = true)
-@FieldNameConstants
-@Schema(title = "站内信信息详情")
-public class SiteMessageInfo {
-
-    @Schema(description = "消息id")
-    private Long id;
-
-    @Schema(description = "标题")
-    private String title;
-
-    @Schema(description = "发送人id")
-    private Long senderId;
-
-    @Schema(description = "发送人姓名")
-    private String senderName;
-
-    @Schema(description = "接收类型")
-    private String receiveType;
-
-    @Schema(description = "发送时间")
-    private LocalDateTime senderTime;
-
-    @Schema(description = "发送状态")
-    private String sendState;
-
-    @Schema(description = "撤回时间")
-    private LocalDateTime cancelTime;
-
-    @Schema(description = "接收人id")
-    private Long receiveId;
-
-    @Schema(description = "是否已读")
-    private Boolean haveRead;
-
-    @Schema(description = "读取时间")
-    private LocalDateTime readTime;
-
-    @Schema(description = "截至有效期")
-    private LocalDate efficientTime;
-
-}
diff --git a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/site/domain/SiteMessageInfoMapper.java b/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/site/domain/SiteMessageInfoMapper.java
deleted file mode 100644
index 26e909a109e399fdb9b7fccc847e185e2d24d259..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/site/domain/SiteMessageInfoMapper.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package cn.bootx.platform.notice.core.site.domain;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import org.apache.ibatis.annotations.Mapper;
-
-/**
- * 只用来生成字段缓存
- *
- * @author xxm
- * @since 2022/8/14
- */
-@Mapper
-public interface SiteMessageInfoMapper extends BaseMapper<SiteMessageInfo> {
-
-}
diff --git a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/site/entity/SiteMessage.java b/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/site/entity/SiteMessage.java
deleted file mode 100644
index 7102e54128cb0fea1036cde91d7275a1b1962595..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/site/entity/SiteMessage.java
+++ /dev/null
@@ -1,68 +0,0 @@
-package cn.bootx.platform.notice.core.site.entity;
-
-import cn.bootx.platform.common.core.annotation.BigField;
-import cn.bootx.platform.common.core.function.EntityBaseFunction;
-import cn.bootx.platform.common.mybatisplus.base.MpBaseEntity;
-import cn.bootx.platform.notice.core.site.convert.SiteMessageConvert;
-import cn.bootx.platform.notice.code.SiteMessageCode;
-import cn.bootx.platform.notice.dto.site.SiteMessageDto;
-import com.baomidou.mybatisplus.annotation.TableName;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.experimental.Accessors;
-
-import java.time.LocalDate;
-import java.time.LocalDateTime;
-
-/**
- * 站内信
- *
- * @author xxm
- * @since 2021/8/7
- */
-@EqualsAndHashCode(callSuper = true)
-@Data
-@Accessors(chain = true)
-@TableName("notice_site_message")
-public class SiteMessage extends MpBaseEntity implements EntityBaseFunction<SiteMessageDto> {
-
-    /** 消息标题 */
-    private String title;
-
-    /** 消息内容 */
-    @BigField
-    private String content;
-
-    /**
-     * 接收对象类型 全体/指定用户
-     * @see SiteMessageCode#RECEIVE_ALL
-     */
-    private String receiveType;
-
-    /**
-     * 发布状态
-     * @see SiteMessageCode#STATE_SENT
-     */
-    private String sendState;
-
-    /** 发送者id */
-    private Long senderId;
-
-    /** 发送者姓名 */
-    private String senderName;
-
-    /** 发送时间 */
-    private LocalDateTime senderTime;
-
-    /** 撤销时间 */
-    private LocalDateTime cancelTime;
-
-    /** 截至有效期 有效超过有效期后全体通知将无法看到 */
-    private LocalDate efficientTime;
-
-    @Override
-    public SiteMessageDto toDto() {
-        return SiteMessageConvert.CONVERT.convert(this);
-    }
-
-}
diff --git a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/site/entity/SiteMessageUser.java b/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/site/entity/SiteMessageUser.java
deleted file mode 100644
index 7539feb030d2ced63c4a7d062f53fdd41298b3c4..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/site/entity/SiteMessageUser.java
+++ /dev/null
@@ -1,35 +0,0 @@
-package cn.bootx.platform.notice.core.site.entity;
-
-import cn.bootx.platform.common.mybatisplus.base.MpCreateEntity;
-import com.baomidou.mybatisplus.annotation.TableName;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.experimental.Accessors;
-
-import java.time.LocalDateTime;
-
-/**
- * 消息用户关联信息
- *
- * @author xxm
- * @since 2022/8/13
- */
-@EqualsAndHashCode(callSuper = true)
-@Data
-@Accessors(chain = true)
-@TableName("notice_site_message_user")
-public class SiteMessageUser extends MpCreateEntity {
-
-    /** 消息id */
-    private Long messageId;
-
-    /** 接收者id */
-    private Long receiveId;
-
-    /** 已读/未读 */
-    private boolean haveRead;
-
-    /** 已读时间 */
-    private LocalDateTime readTime;
-
-}
diff --git a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/site/service/SiteMessageService.java b/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/site/service/SiteMessageService.java
deleted file mode 100644
index d8312a70aa27cc40078b435c872421900f961276..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/site/service/SiteMessageService.java
+++ /dev/null
@@ -1,235 +0,0 @@
-package cn.bootx.platform.notice.core.site.service;
-
-import cn.bootx.platform.common.core.code.CommonCode;
-import cn.bootx.platform.common.core.entity.UserDetail;
-import cn.bootx.platform.common.core.exception.BizException;
-import cn.bootx.platform.common.core.exception.DataNotExistException;
-import cn.bootx.platform.common.core.rest.PageResult;
-import cn.bootx.platform.common.core.rest.param.PageParam;
-import cn.bootx.platform.common.core.util.CollUtil;
-import cn.bootx.platform.common.mybatisplus.util.MpUtil;
-import cn.bootx.platform.common.websocket.entity.WsRes;
-import cn.bootx.platform.common.websocket.service.UserWsNoticeService;
-import cn.bootx.platform.notice.param.site.SendSiteMessageParam;
-import cn.bootx.platform.starter.auth.util.SecurityUtil;
-import cn.bootx.platform.notice.core.site.dao.SiteMessageManager;
-import cn.bootx.platform.notice.core.site.dao.SiteMessageUserManager;
-import cn.bootx.platform.notice.core.site.domain.SiteMessageInfo;
-import cn.bootx.platform.notice.core.site.entity.SiteMessage;
-import cn.bootx.platform.notice.core.site.entity.SiteMessageUser;
-import cn.bootx.platform.notice.dto.site.SiteMessageDto;
-import cn.hutool.core.bean.BeanUtil;
-import cn.hutool.core.bean.copier.CopyOptions;
-import cn.hutool.core.util.DesensitizedUtil;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import lombok.val;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-
-import java.time.LocalDateTime;
-import java.util.Collections;
-import java.util.List;
-import java.util.Objects;
-import java.util.stream.Collectors;
-
-import static cn.bootx.platform.notice.code.SiteMessageCode.*;
-
-/**
- * 站内信
- *
- * @author xxm
- * @since 2021/8/7
- */
-@Slf4j
-@Service
-@RequiredArgsConstructor
-public class SiteMessageService {
-
-    private final SiteMessageManager siteMessageManager;
-
-    private final SiteMessageUserManager siteMessageUserManager;
-
-    private final UserWsNoticeService userWsNoticeService;
-
-    /**
-     * 保存或更新草稿
-     */
-    @Transactional(rollbackFor = Exception.class)
-    public void saveOrUpdate(SendSiteMessageParam param) {
-        SiteMessage siteMessage;
-        if (Objects.nonNull(param.getId())) {
-            siteMessage = siteMessageManager.findById(param.getId())
-                    .orElseThrow(() -> new DataNotExistException("站内信信息不存在"));
-            BeanUtil.copyProperties(param, siteMessage, CopyOptions.create().ignoreNullValue());
-        } else {
-            siteMessage = new SiteMessage().setTitle(param.getTitle())
-                    .setSendState(STATE_DRAFT)
-                    .setContent(param.getContent())
-                    .setReceiveType(param.getReceiveType())
-                    .setEfficientTime(param.getEfficientTime())
-                    .setSenderTime(LocalDateTime.now());
-            // 添加消息关联人信息 暂时这段逻辑用不到, 现在发布的都是全体用户信心
-            if (Objects.equals(RECEIVE_USER, param.getReceiveType())) {
-                List<SiteMessageUser> siteMessageUsers = param.getReceiveIds()
-                        .stream()
-                        .map(userId -> new SiteMessageUser().setMessageId(param.getId()).setReceiveId(userId))
-                        .collect(Collectors.toList());
-                siteMessageUserManager.saveAll(siteMessageUsers);
-            }
-        }
-        // 新增或更新站内信内容
-        val userDetail = SecurityUtil.getCurrentUser();
-        siteMessage.setTitle(param.getTitle())
-                .setSenderId(userDetail.map(UserDetail::getId).orElse(DesensitizedUtil.userId()))
-                .setSenderName(userDetail.map(UserDetail::getName).orElse("未知"));
-        siteMessageManager.saveOrUpdate(siteMessage);
-
-    }
-
-    /**
-     * 站内信发送消息
-     */
-    @Transactional(rollbackFor = Exception.class)
-    public void send(Long id) {
-        SiteMessage siteMessage = siteMessageManager.findById(id)
-                .orElseThrow(() -> new DataNotExistException("站内信信息不存在"));
-        val userDetail = SecurityUtil.getCurrentUser();
-
-        // 新增站内信内容
-        siteMessage.setSenderId(userDetail.map(UserDetail::getId).orElse(DesensitizedUtil.userId()))
-                .setSendState(STATE_SENT)
-                .setSenderName(userDetail.map(UserDetail::getName).orElse("未知"))
-                .setSenderTime(LocalDateTime.now());
-        siteMessageManager.updateById(siteMessage);
-        userWsNoticeService.sendMessageByAll(WsRes.eventNotice(EVENT_MESSAGE_UPDATE));
-    }
-
-    /**
-     * 发送站内信
-     */
-    @Transactional(rollbackFor = Exception.class)
-    public void send(SendSiteMessageParam param) {
-
-        // 新增站内信内容
-        SiteMessage siteMessage = new SiteMessage().setTitle(param.getTitle())
-                .setContent(param.getContent())
-                .setSendState(STATE_SENT)
-                .setReceiveType(param.getReceiveType())
-                .setEfficientTime(param.getEfficientTime())
-                .setSenderId(param.getSenderId())
-                .setSenderName(param.getSenderName())
-                .setSenderTime(LocalDateTime.now());
-        siteMessageManager.save(siteMessage);
-        // 添加消息关联人信息
-        if (Objects.equals(RECEIVE_USER, param.getReceiveType())) {
-
-            List<SiteMessageUser> siteMessageUsers = param.getReceiveIds()
-                    .stream()
-                    .map(userId -> new SiteMessageUser().setMessageId(siteMessage.getId()).setReceiveId(userId))
-                    .collect(Collectors.toList());
-            siteMessageUserManager.saveAll(siteMessageUsers);
-            userWsNoticeService.sendMessageByUsers(WsRes.eventNotice(EVENT_MESSAGE_UPDATE), param.getReceiveIds());
-        }
-    }
-
-    /**
-     * 发送给单个用户信息, 发送人为系统
-     */
-    public void sendSingleUserBySystem(String title, String content, Long userId) {
-        val param = new SendSiteMessageParam().setTitle(title)
-                .setContent(content)
-                .setSenderId(CommonCode.SYSTEM_DEFAULT_USERID)
-                .setSenderName(CommonCode.SYSTEM_DEFAULT_USERNAME)
-                .setReceiveType(RECEIVE_USER)
-                .setReceiveIds(Collections.singletonList(userId));
-        this.send(param);
-    }
-
-    /**
-     * 发送给多个用户信息, 发送人为系统
-     */
-    public void sendMultiUserBySystem(String title, String content, List<Long> userIds) {
-        val param = new SendSiteMessageParam().setTitle(title)
-                .setContent(content)
-                .setSenderId(CommonCode.SYSTEM_DEFAULT_USERID)
-                .setSenderName(CommonCode.SYSTEM_DEFAULT_USERNAME)
-                .setReceiveType(RECEIVE_USER)
-                .setReceiveIds(userIds);
-        this.send(param);
-    }
-
-    /**
-     * 撤回消息
-     */
-    @Transactional(rollbackFor = Exception.class)
-    public void cancel(Long messageId) {
-        SiteMessage siteMessage = siteMessageManager.findById(messageId)
-                .orElseThrow(() -> new DataNotExistException("站内信不存在"));
-        siteMessage.setCancelTime(LocalDateTime.now()).setSendState(STATE_CANCEL);
-        siteMessageManager.updateById(siteMessage);
-        userWsNoticeService.sendMessageByAll(WsRes.eventNotice(EVENT_MESSAGE_UPDATE));
-    }
-
-    /**
-     * 删除消息
-     */
-    @Transactional(rollbackFor = Exception.class)
-    public void delete(Long messageId) {
-        SiteMessage siteMessage = siteMessageManager.findById(messageId)
-                .orElseThrow(() -> new DataNotExistException("站内信不存在"));
-        if (!CollUtil.toList(STATE_CANCEL, STATE_DRAFT).contains(siteMessage.getSendState())) {
-            throw new BizException("站内信不是撤回或草稿状态,无法被删除");
-        }
-        siteMessageManager.deleteById(messageId);
-        siteMessageUserManager.deleteByMessageId(messageId);
-    }
-
-    /**
-     * 未读消息数量
-     */
-    public Integer countByReceiveNotRead(SiteMessageInfo query) {
-        Long userId = SecurityUtil.getUserId();
-        // Long userId = 0L;
-        return siteMessageManager.countByReceiveNotRead(userId);
-    }
-
-    /**
-     * 接收消息分页
-     */
-    public PageResult<SiteMessageInfo> pageByReceive(PageParam pageParam, SiteMessageInfo query) {
-        Long userId = SecurityUtil.getUserId();
-        return MpUtil.convert2PageResult(siteMessageManager.pageByReceive(pageParam, query, userId));
-    }
-
-    /**
-     * 发送消息分页
-     */
-    public PageResult<SiteMessageDto> pageBySender(PageParam pageParam, SiteMessageInfo query) {
-        Long userId = SecurityUtil.getUserId();
-        return MpUtil.convert2DtoPageResult(siteMessageManager.pageBySender(pageParam, query, userId));
-    }
-
-    /**
-     * 查询详情
-     */
-    public SiteMessageDto findById(Long id) {
-        return siteMessageManager.findById(id).map(SiteMessage::toDto).orElseThrow(DataNotExistException::new);
-    }
-
-    /**
-     * 阅读
-     */
-    public void read(Long messageId) {
-        Long userId = SecurityUtil.getUserId();
-        SiteMessageUser siteMessageUser = siteMessageUserManager.findByMessageId(messageId)
-                .orElse(new SiteMessageUser().setReceiveId(userId).setMessageId(messageId));
-        siteMessageUser.setHaveRead(true).setReadTime(LocalDateTime.now());
-        siteMessageUserManager.saveOrUpdate(siteMessageUser);
-    }
-
-    public List<String> listByReceiveNotRead(SiteMessageInfo query) {
-        Long userId = SecurityUtil.getUserId();
-        return siteMessageManager.listByReceiveNotRead(userId);
-    }
-}
diff --git a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/sms/convert/SmsChannelConfigConvert.java b/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/sms/convert/SmsChannelConfigConvert.java
deleted file mode 100644
index ccfdf66da4deb7b2e0c09599643584cd367ba424..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/sms/convert/SmsChannelConfigConvert.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package cn.bootx.platform.notice.core.sms.convert;
-
-import cn.bootx.platform.notice.core.sms.entity.SmsChannelConfig;
-import cn.bootx.platform.notice.dto.sms.SmsChannelConfigDto;
-import cn.bootx.platform.notice.param.sms.SmsChannelConfigParam;
-import org.mapstruct.Mapper;
-import org.mapstruct.factory.Mappers;
-
-/**
- * 短信渠道配置
- * @author xxm
- * @since 2023-08-03
- */
-@Mapper
-public interface SmsChannelConfigConvert {
-    SmsChannelConfigConvert CONVERT = Mappers.getMapper(SmsChannelConfigConvert.class);
-
-    SmsChannelConfig convert(SmsChannelConfigParam in);
-
-    SmsChannelConfigDto convert(SmsChannelConfig in);
-
-}
diff --git a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/sms/convert/SmsTemplateConvert.java b/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/sms/convert/SmsTemplateConvert.java
deleted file mode 100644
index e65f82fd6558435d963e340354419140bda302ea..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/sms/convert/SmsTemplateConvert.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package cn.bootx.platform.notice.core.sms.convert;
-
-import cn.bootx.platform.notice.core.sms.entity.SmsTemplate;
-import cn.bootx.platform.notice.dto.sms.SmsTemplateDto;
-import cn.bootx.platform.notice.param.sms.SmsTemplateParam;
-import org.mapstruct.Mapper;
-import org.mapstruct.factory.Mappers;
-
-/**
- * 短信模板配置
- * @author xxm
- * @since 2023-08-03
- */
-@Mapper
-public interface SmsTemplateConvert {
-    SmsTemplateConvert CONVERT = Mappers.getMapper(SmsTemplateConvert.class);
-
-    SmsTemplate convert(SmsTemplateParam in);
-
-    SmsTemplateDto convert(SmsTemplate in);
-
-}
diff --git a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/sms/dao/SmsChannelConfigManager.java b/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/sms/dao/SmsChannelConfigManager.java
deleted file mode 100644
index 918a328d6133c0f3222c50eeba2ad7ddd771d386..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/sms/dao/SmsChannelConfigManager.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package cn.bootx.platform.notice.core.sms.dao;
-
-import cn.bootx.platform.common.mybatisplus.impl.BaseManager;
-import cn.bootx.platform.notice.core.sms.entity.SmsChannelConfig;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Service;
-
-import java.util.Optional;
-
-@Slf4j
-@Service
-@RequiredArgsConstructor
-public class SmsChannelConfigManager extends BaseManager<SmsChannelConfigMapper, SmsChannelConfig> {
-
-
-    public boolean existsByCode(String code){
-        return existedByField(SmsChannelConfig::getCode,code);
-    }
-    public boolean existsByCode(String code,Long id){
-        return existedByField(SmsChannelConfig::getCode,code,id);
-    }
-
-    public Optional<SmsChannelConfig> findByCode(String code){
-        return findByField(SmsChannelConfig::getCode,code);
-    }
-}
diff --git a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/sms/dao/SmsChannelConfigMapper.java b/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/sms/dao/SmsChannelConfigMapper.java
deleted file mode 100644
index 63cde28882212d22566b6766deb76e8acb5a47ff..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/sms/dao/SmsChannelConfigMapper.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package cn.bootx.platform.notice.core.sms.dao;
-
-import cn.bootx.platform.notice.core.sms.entity.SmsChannelConfig;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import org.apache.ibatis.annotations.Mapper;
-
-/**
- * @author xxm
- * @since 2023/3/28
- */
-@Mapper
-public interface SmsChannelConfigMapper extends BaseMapper<SmsChannelConfig> {
-}
diff --git a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/sms/dao/SmsTemplateManager.java b/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/sms/dao/SmsTemplateManager.java
deleted file mode 100644
index 81212869263033e16adf2fcaf5c1f6fcb2ac1c81..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/sms/dao/SmsTemplateManager.java
+++ /dev/null
@@ -1,35 +0,0 @@
-package cn.bootx.platform.notice.core.sms.dao;
-
-import cn.bootx.platform.notice.param.sms.SmsTemplateParam;
-import cn.bootx.platform.notice.core.sms.entity.SmsTemplate;
-import cn.bootx.platform.common.mybatisplus.impl.BaseManager;
-import cn.bootx.platform.common.core.rest.param.PageParam;
-import cn.bootx.platform.common.mybatisplus.base.MpIdEntity;
-import cn.bootx.platform.common.mybatisplus.util.MpUtil;
-import cn.bootx.platform.common.query.generator.QueryGenerator;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-
-import lombok.RequiredArgsConstructor;
-import org.springframework.stereotype.Repository;
-
-/**
- * 短信模板配置
- * @author xxm
- * @since 2023-08-03
- */
-@Repository
-@RequiredArgsConstructor
-public class SmsTemplateManager extends BaseManager<SmsTemplateMapper, SmsTemplate> {
-
-    /**
-    * 分页
-    */
-    public Page<SmsTemplate> page(PageParam pageParam, SmsTemplateParam param) {
-        Page<SmsTemplate> mpPage = MpUtil.getMpPage(pageParam, SmsTemplate.class);
-        QueryWrapper<SmsTemplate> wrapper = QueryGenerator.generator(param, this.getEntityClass());
-        wrapper.select(this.getEntityClass(),MpUtil::excludeBigField)
-                .orderByDesc(MpUtil.getColumnName(SmsTemplate::getId));
-        return this.page(mpPage,wrapper);
-    }
-}
diff --git a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/sms/dao/SmsTemplateMapper.java b/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/sms/dao/SmsTemplateMapper.java
deleted file mode 100644
index 09ee2fbe31d57a3b1168a2051962fcc8b7e2a617..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/sms/dao/SmsTemplateMapper.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package cn.bootx.platform.notice.core.sms.dao;
-
-import cn.bootx.platform.notice.core.sms.entity.SmsTemplate;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import org.apache.ibatis.annotations.Mapper;
-
-/**
- * 短信模板配置
- * @author xxm
- * @since 2023-08-03
- */
-@Mapper
-public interface SmsTemplateMapper extends BaseMapper<SmsTemplate> {
-}
diff --git a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/sms/entity/SmsChannelConfig.java b/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/sms/entity/SmsChannelConfig.java
deleted file mode 100644
index bea4b69589431c26c155991c9ce4553791c8de4e..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/sms/entity/SmsChannelConfig.java
+++ /dev/null
@@ -1,91 +0,0 @@
-package cn.bootx.platform.notice.core.sms.entity;
-
-import cn.bootx.platform.common.core.function.EntityBaseFunction;
-import cn.bootx.platform.common.mybatisplus.base.MpBaseEntity;
-import cn.bootx.platform.notice.core.sms.convert.SmsChannelConfigConvert;
-import cn.bootx.platform.notice.dto.sms.SmsChannelConfigDto;
-import cn.bootx.platform.notice.param.sms.SmsChannelConfigParam;
-import cn.bootx.table.modify.annotation.DbColumn;
-import cn.bootx.table.modify.mysql.annotation.DbMySqlFieldType;
-import cn.bootx.table.modify.mysql.constants.MySqlFieldTypeEnum;
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableName;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.experimental.Accessors;
-import org.dromara.sms4j.provider.enumerate.SupplierType;
-
-import static com.baomidou.mybatisplus.annotation.FieldStrategy.ALWAYS;
-import static com.baomidou.mybatisplus.annotation.FieldStrategy.NEVER;
-
-/**
- * 短信渠道配置
- * @author xxm
- * @since 2023/3/28
- */
-@EqualsAndHashCode(callSuper = true)
-@Data
-@Accessors(chain = true)
-@TableName("notice_sms_channel_config")
-public class SmsChannelConfig extends MpBaseEntity implements EntityBaseFunction<SmsChannelConfigDto> {
-
-    /**
-     * 渠道类型编码
-     * @see SupplierType#name()
-     */
-    @DbColumn(comment = "渠道类型编码")
-    @TableField(updateStrategy = NEVER)
-    private String code;
-
-    /**
-     * 渠道类型名称
-     * @see SupplierType#getName()
-     */
-    @DbColumn(comment = "渠道类型名称")
-    private String name;
-
-    /**
-     * 状态
-     * @see cn.bootx.platform.notice.code.SmsChannelStatusCode
-     */
-    @DbColumn(comment = "状态")
-    private String state;
-
-    /** AccessKey */
-    @DbColumn(comment = "AccessKey")
-    private String accessKey;
-
-    /** AccessSecret */
-    @DbColumn(comment = "AccessSecret")
-    private String accessSecret;
-
-    /** 配置字符串 */
-    @DbMySqlFieldType(MySqlFieldTypeEnum.TEXT)
-    @DbColumn(comment = "配置字符串")
-    @TableField(updateStrategy = ALWAYS)
-    private String config;
-
-    /** 图片 */
-    @TableField(updateStrategy = ALWAYS)
-    @DbColumn(comment = "图片")
-    private Long image;
-
-    /** 排序 */
-    @DbColumn(comment = "排序")
-    private Double sortNo;
-
-    /** 备注 */
-    @DbColumn(comment = "备注")
-    private String remark;
-
-    /** 创建对象 */
-    public static SmsChannelConfig init(SmsChannelConfigParam in) {
-        return SmsChannelConfigConvert.CONVERT.convert(in);
-    }
-
-    /** 转换成dto */
-    @Override
-    public SmsChannelConfigDto toDto() {
-        return SmsChannelConfigConvert.CONVERT.convert(this);
-    }
-}
diff --git a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/sms/entity/SmsTemplate.java b/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/sms/entity/SmsTemplate.java
deleted file mode 100644
index 38b6fcfc69dabd0227d59610d76697c39497c0b9..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/sms/entity/SmsTemplate.java
+++ /dev/null
@@ -1,43 +0,0 @@
-package cn.bootx.platform.notice.core.sms.entity;
-
-import cn.bootx.platform.common.core.function.EntityBaseFunction;
-import cn.bootx.platform.common.mybatisplus.base.MpBaseEntity;
-import cn.bootx.platform.notice.core.sms.convert.SmsTemplateConvert;
-import cn.bootx.platform.notice.dto.sms.SmsTemplateDto;
-import cn.bootx.platform.notice.param.sms.SmsTemplateParam;
-import com.baomidou.mybatisplus.annotation.TableName;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.experimental.Accessors;
-
-/**
-* 短信模板配置
-* @author xxm
-* @since 2023-08-03
-*/
-@EqualsAndHashCode(callSuper = true)
-@Data
-@Accessors(chain = true)
-@TableName("notice_sms_template")
-public class SmsTemplate extends MpBaseEntity implements EntityBaseFunction<SmsTemplateDto>{
-
-    /** 短信渠道商类型 */
-    private String supplierType;
-    /** 短信模板id */
-    private String templateId;
-    /** 短信模板名称 */
-    private String name;
-    /** 短信模板内容 */
-    private String content;
-
-    /** 创建对象 */
-    public static SmsTemplate init(SmsTemplateParam in) {
-            return SmsTemplateConvert.CONVERT.convert(in);
-    }
-
-    /** 转换成dto */
-    @Override
-    public SmsTemplateDto toDto() {
-        return SmsTemplateConvert.CONVERT.convert(this);
-    }
-}
diff --git a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/sms/service/SmsChannelConfigService.java b/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/sms/service/SmsChannelConfigService.java
deleted file mode 100644
index 8720228d9b088d3742d8f8009aa661cee6260ae4..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/sms/service/SmsChannelConfigService.java
+++ /dev/null
@@ -1,246 +0,0 @@
-package cn.bootx.platform.notice.core.sms.service;
-
-import cn.bootx.platform.common.core.exception.BizException;
-import cn.bootx.platform.common.core.exception.DataNotExistException;
-import cn.bootx.platform.common.core.function.CollectorsFunction;
-import cn.bootx.platform.common.core.util.CollUtil;
-import cn.bootx.platform.common.jackson.util.JacksonUtil;
-import cn.bootx.platform.notice.core.sms.dao.SmsChannelConfigManager;
-import cn.bootx.platform.notice.core.sms.entity.SmsChannelConfig;
-import cn.bootx.platform.notice.dto.sms.SmsChannelConfigDto;
-import cn.bootx.platform.notice.event.sms.SmsChannelAddEvent;
-import cn.bootx.platform.notice.event.sms.SmsChannelUpdateEvent;
-import cn.bootx.platform.notice.param.sms.SmsChannelConfigParam;
-import cn.hutool.core.bean.BeanUtil;
-import cn.hutool.core.bean.copier.CopyOptions;
-import cn.hutool.core.util.StrUtil;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import lombok.val;
-import org.dromara.sms4j.aliyun.config.AlibabaConfig;
-import org.dromara.sms4j.api.universal.SupplierConfig;
-import org.dromara.sms4j.cloopen.config.CloopenConfig;
-import org.dromara.sms4j.comm.exception.SmsBlendException;
-import org.dromara.sms4j.core.config.SupplierFactory;
-import org.dromara.sms4j.ctyun.config.CtyunConfig;
-import org.dromara.sms4j.emay.config.EmayConfig;
-import org.dromara.sms4j.huawei.config.HuaweiConfig;
-import org.dromara.sms4j.jdcloud.config.JdCloudConfig;
-import org.dromara.sms4j.netease.config.NeteaseConfig;
-import org.dromara.sms4j.provider.enumerate.SupplierType;
-import org.dromara.sms4j.tencent.config.TencentConfig;
-import org.dromara.sms4j.unisms.config.UniConfig;
-import org.dromara.sms4j.yunpian.config.YunpianConfig;
-import org.springframework.boot.web.context.WebServerInitializedEvent;
-import org.springframework.context.ApplicationEventPublisher;
-import org.springframework.context.event.EventListener;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-
-import java.util.*;
-import java.util.function.Function;
-import java.util.stream.Collectors;
-
-@Slf4j
-@Service
-@RequiredArgsConstructor
-public class SmsChannelConfigService {
-
-    private final SmsChannelConfigManager configManager;
-
-    private final ApplicationEventPublisher eventPublisher;
-
-    /**
-     * 添加
-     */
-    @Transactional(rollbackFor = Exception.class)
-    public void add(Map<String,Object> map){
-        SmsChannelConfigParam param = BeanUtil.toBean(map, SmsChannelConfigParam.class);
-        SmsChannelConfig channelConfig = SmsChannelConfig.init(param);
-        // 编码不能重复
-        if (configManager.existsByCode(param.getCode())) {
-            throw new BizException("编码已存在");
-        }
-        String supplierConfig = getSupplierConfig(channelConfig, map);
-        channelConfig.setConfig(supplierConfig);
-        configManager.save(channelConfig);
-        this.initChannelConfig(channelConfig);
-        eventPublisher.publishEvent(new SmsChannelAddEvent(this,channelConfig.toDto()));
-    }
-
-    /**
-     * 更新
-     */
-    @Transactional(rollbackFor = Exception.class)
-    public void update(Map<String,Object> map){
-        SmsChannelConfigParam param = BeanUtil.toBean(map, SmsChannelConfigParam.class);
-        SmsChannelConfig channelConfig = configManager.findById(param.getId())
-                .orElseThrow(DataNotExistException::new);
-        // 编码不能重复
-        if (configManager.existsByCode(param.getCode(), param.getId())) {
-            throw new BizException("编码已存在");
-        }
-        BeanUtil.copyProperties(param, channelConfig, CopyOptions.create().ignoreNullValue());
-        String supplierConfig = getSupplierConfig(channelConfig, map);
-        channelConfig.setConfig(supplierConfig);
-        configManager.updateById(channelConfig);
-        this.initChannelConfig(channelConfig);
-        eventPublisher.publishEvent(new SmsChannelUpdateEvent(this,channelConfig.toDto()));
-    }
-
-
-    /**
-     * 查询全部配置
-     */
-    public List<SmsChannelConfigDto> findAll(){
-        // 遍历数据库
-        Map<String, SmsChannelConfig> map = configManager.findAll()
-                .stream()
-                .collect(Collectors.toMap(SmsChannelConfig::getCode, Function.identity(), CollectorsFunction::retainLatest));
-        return Arrays.stream(SupplierType.values())
-                .map(type-> Optional.ofNullable(map.get(type.name().toLowerCase()))
-                        .orElse(new SmsChannelConfig()
-                                .setCode(type.name().toLowerCase())
-                                .setSortNo(0.0)
-                                .setName(type.getName())))
-                .sorted(Comparator.comparing(SmsChannelConfig::getSortNo))
-                .map(SmsChannelConfig::toDto)
-                .collect(Collectors.toList());
-    }
-
-    /**
-     * 根据ID查询
-     */
-    public SmsChannelConfigDto findById(Long id) {
-        return configManager.findById(id).map(SmsChannelConfig::toDto)
-                .orElseThrow(DataNotExistException::new);
-    }
-
-    /**
-     * 根据code查询
-     */
-    public SmsChannelConfigDto findByCode(String code) {
-        return configManager.findByCode(code).map(SmsChannelConfig::toDto)
-                .orElseThrow(DataNotExistException::new);
-    }
-
-    /**
-     * 启动成功后初始化所有的短信通道配置
-     */
-    @EventListener(WebServerInitializedEvent.class)
-    public void initChannelConfig(){
-        List<SmsChannelConfig> smsChannelConfigs = configManager.findAll();
-        smsChannelConfigs.forEach(this::initChannelConfig);
-    }
-
-    /**
-     * 启动成功后初始化所有的短信通道配置
-     */
-    public void initChannelConfig(SmsChannelConfig channelConfig){
-        SupplierType supplierType = getSupplierType(channelConfig.getCode());
-        String config = channelConfig.getConfig();
-        if (StrUtil.isBlank(config)){
-            return;
-        }
-        SupplierConfig bean;
-        if (supplierType == SupplierType.ALIBABA) {
-            bean = JacksonUtil.toBean(config, AlibabaConfig.class);
-        } else if (supplierType == SupplierType.HUAWEI) {
-            bean = JacksonUtil.toBean(config, HuaweiConfig.class);
-        } else if (supplierType == SupplierType.UNI_SMS) {
-            bean = JacksonUtil.toBean(config, UniConfig.class);
-        } else if (supplierType == SupplierType.TENCENT) {
-            bean = JacksonUtil.toBean(config, TencentConfig.class);
-        } else if (supplierType == SupplierType.YUNPIAN) {
-            bean = JacksonUtil.toBean(config, YunpianConfig.class);
-        } else if (supplierType == SupplierType.JD_CLOUD) {
-            bean = JacksonUtil.toBean(config, JdCloudConfig.class);
-        } else if (supplierType == SupplierType.CLOOPEN) {
-            bean = JacksonUtil.toBean(config, CloopenConfig.class);
-        } else if (supplierType == SupplierType.EMAY) {
-            bean = JacksonUtil.toBean(config, EmayConfig.class);
-        } else if (supplierType == SupplierType.CTYUN) {
-            bean = JacksonUtil.toBean(config, CtyunConfig.class);
-        } else if (supplierType == SupplierType.NETEASE) {
-            bean = JacksonUtil.toBean(config, NeteaseConfig.class);
-        } else {
-            throw new SmsBlendException("短信加载失败!请检查配置类型.");
-        }
-        SupplierFactory.setSupplierConfig(bean);
-    }
-
-    /**
-     * 获取供应商配置的序列化
-     */
-    private String getSupplierConfig(SmsChannelConfig channelConfig, Map<String,Object> map){
-        SupplierType supplierType = getSupplierType(channelConfig.getCode());
-        if (CollUtil.isEmpty(map)){
-            return null;
-        }
-        if (supplierType == SupplierType.ALIBABA) {
-            val bean = BeanUtil.toBean(map, AlibabaConfig.class);
-            bean.setAccessKeyId(channelConfig.getAccessKey());
-            bean.setAccessKeySecret(channelConfig.getAccessSecret());
-            return JacksonUtil.toJson(bean);
-        } else if (supplierType == SupplierType.HUAWEI) {
-            val bean = BeanUtil.toBean(map, HuaweiConfig.class);
-            bean.setAppKey(channelConfig.getAccessKey());
-            bean.setAppSecret(channelConfig.getAccessSecret());
-            return JacksonUtil.toJson(bean);
-        } else if (supplierType == SupplierType.UNI_SMS) {
-            val bean = BeanUtil.toBean(map, UniConfig.class);
-            bean.setAccessKeyId(channelConfig.getAccessKey());
-            bean.setAccessKeySecret(channelConfig.getAccessSecret());
-            return JacksonUtil.toJson(bean);
-        } else if (supplierType == SupplierType.TENCENT) {
-            val bean = BeanUtil.toBean(map, TencentConfig.class);
-            bean.setAccessKeyId(channelConfig.getAccessKey());
-            bean.setAccessKeySecret(channelConfig.getAccessSecret());
-            return JacksonUtil.toJson(bean);
-        } else if (supplierType == SupplierType.YUNPIAN) {
-            val bean = BeanUtil.toBean(map, YunpianConfig.class);
-            bean.setAccessKeyId(channelConfig.getAccessKey());
-            bean.setAccessKeySecret(channelConfig.getAccessSecret());
-            return JacksonUtil.toJson(bean);
-        } else if (supplierType == SupplierType.JD_CLOUD) {
-            val bean = BeanUtil.toBean(map, JdCloudConfig.class);
-            bean.setAccessKeyId(channelConfig.getAccessKey());
-            bean.setAccessKeySecret(channelConfig.getAccessSecret());
-            return JacksonUtil.toJson(bean);
-        } else if (supplierType == SupplierType.CLOOPEN) {
-            val bean = BeanUtil.toBean(map, CloopenConfig.class);
-            bean.setAccessKeyId(channelConfig.getAccessKey());
-            bean.setAccessKeySecret(channelConfig.getAccessSecret());
-            return JacksonUtil.toJson(bean);
-        } else if (supplierType == SupplierType.EMAY) {
-            val bean = BeanUtil.toBean(map, EmayConfig.class);
-            bean.setAppId(channelConfig.getAccessKey());
-            bean.setSecretKey(channelConfig.getAccessSecret());
-            return JacksonUtil.toJson(bean);
-        } else if (supplierType == SupplierType.CTYUN) {
-            val bean = BeanUtil.toBean(map, CtyunConfig.class);
-            bean.setAccessKeyId(channelConfig.getAccessKey());
-            bean.setAccessKeySecret(channelConfig.getAccessSecret());
-            return JacksonUtil.toJson(bean);
-        } else if (supplierType == SupplierType.NETEASE) {
-            val bean = BeanUtil.toBean(map, NeteaseConfig.class);
-            bean.setAccessKeyId(channelConfig.getAccessKey());
-            bean.setAccessKeySecret(channelConfig.getAccessSecret());
-            return JacksonUtil.toJson(bean);
-        } else {
-            throw new SmsBlendException("短信加载失败!请检查配置类型.");
-        }
-
-    }
-
-    /**
-     * 获取 短信供应商 枚举
-     */
-    public SupplierType getSupplierType(String code){
-        return Arrays.stream(SupplierType.values())
-                .filter(supplierType -> supplierType.name().equalsIgnoreCase(code))
-                .findFirst()
-                .orElseThrow(() -> new BizException("短信供应商未找到"));
-    }
-
-}
diff --git a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/sms/service/SmsTemplateService.java b/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/sms/service/SmsTemplateService.java
deleted file mode 100644
index 22c1c354d822daa59e251f57aedc68b75afc7d56..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/sms/service/SmsTemplateService.java
+++ /dev/null
@@ -1,75 +0,0 @@
-package cn.bootx.platform.notice.core.sms.service;
-
-import cn.bootx.platform.common.core.exception.DataNotExistException;
-import cn.bootx.platform.common.core.rest.PageResult;
-import cn.bootx.platform.common.core.rest.param.PageParam;
-import cn.bootx.platform.common.core.util.ResultConvertUtil;
-import cn.bootx.platform.common.mybatisplus.util.MpUtil;
-import cn.bootx.platform.notice.core.sms.dao.SmsTemplateManager;
-import cn.bootx.platform.notice.core.sms.entity.SmsTemplate;
-import cn.bootx.platform.notice.dto.sms.SmsTemplateDto;
-import cn.bootx.platform.notice.param.sms.SmsTemplateParam;
-import cn.hutool.core.bean.BeanUtil;
-import cn.hutool.core.bean.copier.CopyOptions;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Service;
-
-import java.util.List;
-
-/**
- * 短信模板配置
- * @author xxm
- * @since 2023-08-03
- */
-@Slf4j
-@Service
-@RequiredArgsConstructor
-public class SmsTemplateService {
-    private final SmsTemplateManager smsTemplateManager;
-
-    /**
-     * 添加
-     */
-    public void add(SmsTemplateParam param){
-        SmsTemplate smsTemplate = SmsTemplate.init(param);
-        smsTemplateManager.save(smsTemplate);
-    }
-
-    /**
-     * 修改
-     */
-    public void update(SmsTemplateParam param){
-        SmsTemplate smsTemplate = smsTemplateManager.findById(param.getId()).orElseThrow(DataNotExistException::new);
-        BeanUtil.copyProperties(param,smsTemplate, CopyOptions.create().ignoreNullValue());
-        smsTemplateManager.updateById(smsTemplate);
-    }
-
-    /**
-     * 分页
-     */
-    public PageResult<SmsTemplateDto> page(PageParam pageParam,SmsTemplateParam smsTemplateParam){
-        return MpUtil.convert2DtoPageResult(smsTemplateManager.page(pageParam,smsTemplateParam));
-    }
-
-    /**
-     * 获取单条
-     */
-    public SmsTemplateDto findById(Long id){
-        return smsTemplateManager.findById(id).map(SmsTemplate::toDto).orElseThrow(DataNotExistException::new);
-    }
-
-    /**
-     * 获取全部
-     */
-    public List<SmsTemplateDto> findAll(){
-        return ResultConvertUtil.dtoListConvert(smsTemplateManager.findAll());
-    }
-
-    /**
-     * 删除
-     */
-    public void delete(Long id){
-        smsTemplateManager.deleteById(id);
-    }
-}
diff --git a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/template/convert/MessageTemplateConvert.java b/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/template/convert/MessageTemplateConvert.java
deleted file mode 100644
index cdaf3044b71f07e5cc94384e79cec10ba0715572..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/template/convert/MessageTemplateConvert.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package cn.bootx.platform.notice.core.template.convert;
-
-import cn.bootx.platform.notice.param.template.MessageTemplateParam;
-import cn.bootx.platform.notice.core.template.entity.MessageTemplate;
-import cn.bootx.platform.notice.dto.template.MessageTemplateDto;
-import org.mapstruct.Mapper;
-import org.mapstruct.factory.Mappers;
-
-/**
- * 消息模板转换
- *
- * @author xxm
- * @since 2021/8/10
- */
-@Mapper
-public interface MessageTemplateConvert {
-
-    MessageTemplateConvert CONVERT = Mappers.getMapper(MessageTemplateConvert.class);
-
-    MessageTemplateDto convert(MessageTemplate in);
-
-    MessageTemplate convert(MessageTemplateDto in);
-
-    MessageTemplate convert(MessageTemplateParam in);
-
-}
diff --git a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/template/dao/MessageTemplateManager.java b/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/template/dao/MessageTemplateManager.java
deleted file mode 100644
index 0fb1fb91417dbd5be1a118e1e99901c6597fcefa..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/template/dao/MessageTemplateManager.java
+++ /dev/null
@@ -1,48 +0,0 @@
-package cn.bootx.platform.notice.core.template.dao;
-
-import cn.bootx.platform.common.core.rest.param.PageParam;
-import cn.bootx.platform.common.mybatisplus.base.MpIdEntity;
-import cn.bootx.platform.common.mybatisplus.impl.BaseManager;
-import cn.bootx.platform.common.mybatisplus.util.MpUtil;
-import cn.bootx.platform.notice.core.template.entity.MessageTemplate;
-import cn.bootx.platform.notice.param.template.MessageTemplateParam;
-import cn.hutool.core.util.StrUtil;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Repository;
-
-import java.util.Optional;
-
-/**
- * 消息模板
- *
- * @author xxm
- * @since 2021/8/9
- */
-@Slf4j
-@Repository
-@RequiredArgsConstructor
-public class MessageTemplateManager extends BaseManager<MessageTemplateMapper, MessageTemplate> {
-
-    public Optional<MessageTemplate> findByCode(String code) {
-        return findByField(MessageTemplate::getCode, code);
-    }
-
-    public boolean existsByCode(String code) {
-        return existedByField(MessageTemplate::getCode, code);
-    }
-
-    public boolean existsByCode(String code, Long id) {
-        return existedByField(MessageTemplate::getCode, code, id);
-    }
-
-    public Page<MessageTemplate> page(PageParam pageParam, MessageTemplateParam query) {
-        Page<MessageTemplate> mpPage = MpUtil.getMpPage(pageParam, MessageTemplate.class);
-        return lambdaQuery().like(StrUtil.isNotBlank(query.getCode()), MessageTemplate::getCode, query.getCode())
-            .like(StrUtil.isNotBlank(query.getName()), MessageTemplate::getName, query.getName())
-            .orderByDesc(MpIdEntity::getId)
-            .page(mpPage);
-    }
-
-}
diff --git a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/template/dao/MessageTemplateMapper.java b/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/template/dao/MessageTemplateMapper.java
deleted file mode 100644
index 038c07bec8a673f61eb2c0b1c21f53a41da1b094..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/template/dao/MessageTemplateMapper.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package cn.bootx.platform.notice.core.template.dao;
-
-import cn.bootx.platform.notice.core.template.entity.MessageTemplate;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import org.apache.ibatis.annotations.Mapper;
-
-/**
- * @author xxm
- * @since 2021/8/9
- */
-@Mapper
-public interface MessageTemplateMapper extends BaseMapper<MessageTemplate> {
-
-}
diff --git a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/template/entity/MessageTemplate.java b/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/template/entity/MessageTemplate.java
deleted file mode 100644
index 931748f4aae846f27674f31bc98f15062c365764..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/template/entity/MessageTemplate.java
+++ /dev/null
@@ -1,47 +0,0 @@
-package cn.bootx.platform.notice.core.template.entity;
-
-import cn.bootx.platform.common.core.function.EntityBaseFunction;
-import cn.bootx.platform.common.mybatisplus.base.MpBaseEntity;
-import cn.bootx.platform.notice.core.template.convert.MessageTemplateConvert;
-import cn.bootx.platform.notice.param.template.MessageTemplateParam;
-import cn.bootx.platform.notice.code.MessageTemplateCode;
-import cn.bootx.platform.notice.dto.template.MessageTemplateDto;
-import com.baomidou.mybatisplus.annotation.TableName;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.experimental.Accessors;
-
-@EqualsAndHashCode(callSuper = true)
-@Data
-@TableName("notice_message_template")
-@Accessors(chain = true)
-public class MessageTemplate extends MpBaseEntity implements EntityBaseFunction<MessageTemplateDto> {
-
-    /** 编码 */
-    private String code;
-
-    /** 名称 */
-    private String name;
-
-    /** 内容 */
-    private String data;
-
-    /** 备注 */
-    private String remark;
-
-    /**
-     * 模板类型
-     * @see MessageTemplateCode
-     */
-    private String type;
-
-    public static MessageTemplate init(MessageTemplateParam in) {
-        return MessageTemplateConvert.CONVERT.convert(in);
-    }
-
-    @Override
-    public MessageTemplateDto toDto() {
-        return MessageTemplateConvert.CONVERT.convert(this);
-    }
-
-}
diff --git a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/template/service/MessageTemplateService.java b/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/template/service/MessageTemplateService.java
deleted file mode 100644
index 609f040c0bc82bf64f0fde5f437dbe54e44b41d2..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/template/service/MessageTemplateService.java
+++ /dev/null
@@ -1,110 +0,0 @@
-package cn.bootx.platform.notice.core.template.service;
-
-import cn.bootx.platform.common.core.exception.BizException;
-import cn.bootx.platform.common.core.exception.DataNotExistException;
-import cn.bootx.platform.common.core.rest.PageResult;
-import cn.bootx.platform.common.core.rest.param.PageParam;
-import cn.bootx.platform.common.mybatisplus.util.MpUtil;
-import cn.bootx.platform.notice.param.template.MessageTemplateParam;
-import cn.bootx.platform.notice.core.template.dao.MessageTemplateManager;
-import cn.bootx.platform.notice.core.template.entity.MessageTemplate;
-import cn.bootx.platform.notice.dto.template.MessageTemplateDto;
-import cn.hutool.core.bean.BeanUtil;
-import cn.hutool.core.bean.copier.CopyOptions;
-import cn.hutool.extra.template.Template;
-import cn.hutool.extra.template.TemplateEngine;
-import cn.hutool.extra.template.TemplateUtil;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Service;
-
-import java.util.Map;
-
-/**
- * 消息模板
- *
- * @author xxm
- * @since 2021/8/9
- */
-@Slf4j
-@Service
-@RequiredArgsConstructor
-public class MessageTemplateService {
-
-    private final MessageTemplateManager messageTemplateManager;
-
-    /**
-     * 添加
-     */
-    public MessageTemplateDto add(MessageTemplateParam param) {
-        MessageTemplate messageTemplate = MessageTemplate.init(param);
-        // code 不重复
-        if (messageTemplateManager.existsByCode(messageTemplate.getCode())) {
-            throw new BizException("模板编码不可重复");
-        }
-        return messageTemplateManager.save(messageTemplate).toDto();
-
-    }
-
-    /**
-     * 更新
-     */
-    public MessageTemplateDto update(MessageTemplateParam param) {
-        // code 不重复
-        if (messageTemplateManager.existsByCode(param.getCode(), param.getId())) {
-            throw new BizException("模板编码不可重复");
-        }
-        MessageTemplate messageTemplate = messageTemplateManager.findById(param.getId())
-            .orElseThrow(() -> new BizException("消息模板不存在"));
-        BeanUtil.copyProperties(param, messageTemplate, CopyOptions.create().ignoreNullValue());
-        return messageTemplateManager.updateById(messageTemplate).toDto();
-    }
-
-    /**
-     * 分页
-     */
-    public PageResult<MessageTemplateDto> page(PageParam pageParam, MessageTemplateParam query) {
-        return MpUtil.convert2DtoPageResult(messageTemplateManager.page(pageParam, query));
-    }
-
-    /**
-     * 获取详情
-     */
-    public MessageTemplateDto findById(Long id) {
-        return messageTemplateManager.findById(id).map(MessageTemplate::toDto).orElseThrow(DataNotExistException::new);
-    }
-
-    /**
-     * 编码是否已经存在
-     */
-    public boolean existsByCode(String code) {
-        return messageTemplateManager.existsByCode(code);
-    }
-
-    /**
-     * 编码是否已经存在(不包含自身)
-     */
-    public boolean existsByCode(String code, Long id) {
-        return messageTemplateManager.existsByCode(code, id);
-    }
-
-    /**
-     * 删除
-     */
-    public void delete(Long id) {
-        messageTemplateManager.deleteById(id);
-    }
-
-    /**
-     * 渲染
-     */
-    public String rendering(String code, Map<String, Object> paramMap) {
-        MessageTemplate messageTemplate = messageTemplateManager.findByCode(code)
-            .orElseThrow(() -> new BizException("消息模板不存在"));
-        String date = messageTemplate.getData();
-        TemplateEngine engine = TemplateUtil.createEngine();
-        Template template = engine.getTemplate(date);
-        return template.render(paramMap);
-    }
-
-}
diff --git a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/wecom/entity/WeComNoticeParam.java b/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/wecom/entity/WeComNoticeParam.java
deleted file mode 100644
index 4466a9a8667f314839125c72fb3701a50f709b6c..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/wecom/entity/WeComNoticeParam.java
+++ /dev/null
@@ -1,39 +0,0 @@
-package cn.bootx.platform.notice.core.wecom.entity;
-
-import cn.bootx.platform.notice.core.wecom.entity.msg.WeComMsg;
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-import lombok.experimental.Accessors;
-import me.chanjar.weixin.cp.bean.message.WxCpMessage;
-
-/**
- * 企业微信发送消息参数
- *
- * @author xxm
- * @since 2022/7/23
- */
-@Data
-@Accessors(chain = true)
-@AllArgsConstructor
-@NoArgsConstructor
-@Schema(title = "企业微信发送消息参数")
-public class WeComNoticeParam {
-
-    @Schema(description = "接收人配置")
-    private WeComNoticeReceive receive;
-
-    @Schema(description = "消息内容")
-    private WeComMsg msg;
-
-    /**
-     * 转换成钉钉消息发送参数
-     */
-    public WxCpMessage toWeComNotice() {
-        WxCpMessage wxCpMessage = msg.toMsg();
-        receive.process(wxCpMessage);
-        return wxCpMessage;
-    }
-
-}
diff --git a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/wecom/entity/WeComNoticeReceive.java b/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/wecom/entity/WeComNoticeReceive.java
deleted file mode 100644
index 2dcff4128df4b30b79f3eb3cdfc7fa47d2c48c31..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/wecom/entity/WeComNoticeReceive.java
+++ /dev/null
@@ -1,52 +0,0 @@
-package cn.bootx.platform.notice.core.wecom.entity;
-
-import cn.bootx.platform.common.core.util.CollUtil;
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-import lombok.experimental.Accessors;
-import me.chanjar.weixin.cp.bean.message.WxCpMessage;
-
-import java.util.List;
-
-/**
- * @author xxm
- * @since 2022/7/23
- */
-@Data
-@Accessors(chain = true)
-@Schema(title = "企业微信接收人参数")
-public class WeComNoticeReceive {
-
-    @Schema(description = "是否发送给全部用户")
-    private boolean toAllUser;
-
-    @Schema(description = "接收者的userid列表,最大用户列表长度1000")
-    private List<String> useridList;
-
-    @Schema(description = "接收者的部门id列表,最大列表长度100")
-    private List<String> deptIdList;
-
-    @Schema(description = "接收者的部门id列表,最大列表长度100")
-    private List<String> tagList;
-
-    @Schema(description = "是否是保密消息")
-    private boolean safe;
-
-    public void process(WxCpMessage wxCpMessage) {
-        wxCpMessage.setSafe(safe ? "1" : "0");
-        if (toAllUser) {
-            wxCpMessage.setToUser("@all");
-            return;
-        }
-        if (CollUtil.isNotEmpty(useridList)) {
-            wxCpMessage.setToUser(String.join("|", useridList));
-        }
-        if (CollUtil.isNotEmpty(deptIdList)) {
-            wxCpMessage.setToParty(String.join("|", deptIdList));
-        }
-        if (CollUtil.isNotEmpty(tagList)) {
-            wxCpMessage.setToTag(String.join("|", tagList));
-        }
-    }
-
-}
diff --git a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/wecom/entity/msg/WeComFileMsg.java b/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/wecom/entity/msg/WeComFileMsg.java
deleted file mode 100644
index 41b16ca2eafc75ad283dcd828248eff4cab6f9bb..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/wecom/entity/msg/WeComFileMsg.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package cn.bootx.platform.notice.core.wecom.entity.msg;
-
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-import lombok.experimental.Accessors;
-import me.chanjar.weixin.cp.bean.message.WxCpMessage;
-
-/**
- * @author xxm
- * @since 2022/7/23
- */
-@Data
-@Accessors(chain = true)
-@Schema(title = "企微文件消息")
-public class WeComFileMsg implements WeComMsg {
-
-    @Schema(description = "资源id")
-    private String mediaId;
-
-    @Override
-    public WxCpMessage toMsg() {
-        return WxCpMessage.FILE().mediaId(mediaId).build();
-    }
-
-}
diff --git a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/wecom/entity/msg/WeComImageMsg.java b/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/wecom/entity/msg/WeComImageMsg.java
deleted file mode 100644
index 7dbc5189e4c917abe0a1ad6850629463380728eb..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/wecom/entity/msg/WeComImageMsg.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package cn.bootx.platform.notice.core.wecom.entity.msg;
-
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-import lombok.experimental.Accessors;
-import me.chanjar.weixin.cp.bean.message.WxCpMessage;
-
-/**
- * @author xxm
- * @since 2022/7/23
- */
-@Data
-@NoArgsConstructor
-@AllArgsConstructor
-@Accessors(chain = true)
-@Schema(title = "企微图片消息")
-public class WeComImageMsg implements WeComMsg {
-
-    @Schema(description = "资源id")
-    private String mediaId;
-
-    @Override
-    public WxCpMessage toMsg() {
-        return WxCpMessage.IMAGE().mediaId(mediaId).build();
-    }
-
-}
diff --git a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/wecom/entity/msg/WeComMarkdownMsg.java b/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/wecom/entity/msg/WeComMarkdownMsg.java
deleted file mode 100644
index cfd8f6d44f1c90d975a82596a8e9578300647475..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/wecom/entity/msg/WeComMarkdownMsg.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package cn.bootx.platform.notice.core.wecom.entity.msg;
-
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-import lombok.experimental.Accessors;
-import me.chanjar.weixin.cp.bean.message.WxCpMessage;
-
-/**
- * @author xxm
- * @since 2022/7/23
- */
-@Data
-@AllArgsConstructor
-@NoArgsConstructor
-@Accessors(chain = true)
-@Schema(title = "企微markdown消息")
-public class WeComMarkdownMsg implements WeComMsg {
-
-    @Schema(description = "markdown消息")
-    private String content;
-
-    @Override
-    public WxCpMessage toMsg() {
-        return WxCpMessage.MARKDOWN().content(content).build();
-    }
-
-}
diff --git a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/wecom/entity/msg/WeComMpNewsMsg.java b/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/wecom/entity/msg/WeComMpNewsMsg.java
deleted file mode 100644
index 27663e7c3b587f62b3ae354db5635bffa07a891a..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/wecom/entity/msg/WeComMpNewsMsg.java
+++ /dev/null
@@ -1,37 +0,0 @@
-package cn.bootx.platform.notice.core.wecom.entity.msg;
-
-import cn.bootx.platform.common.core.exception.BizException;
-import cn.bootx.platform.common.core.util.CollUtil;
-import cn.hutool.core.util.ArrayUtil;
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-import lombok.experimental.Accessors;
-import me.chanjar.weixin.cp.bean.article.MpnewsArticle;
-import me.chanjar.weixin.cp.bean.message.WxCpMessage;
-
-import java.util.List;
-
-/**
- * mpnews类型的图文消息,跟普通的图文消息一致,唯一的差异是图文内容存储在企业微信。 多次发送mpnews,会被认为是不同的图文,阅读、点赞的统计会被分开计算。
- *
- * @author xxm
- * @since 2022/7/23
- */
-@Data
-@Accessors(chain = true)
-@Schema(title = "图文消息(mpnews)")
-public class WeComMpNewsMsg implements WeComMsg {
-
-    @Schema(description = "图文内容列表")
-    private List<MpnewsArticle> articles;
-
-    @Override
-    public WxCpMessage toMsg() {
-        if (CollUtil.isEmpty(articles)) {
-            throw new BizException("图文内容列表不可为空");
-        }
-        MpnewsArticle[] newArticles = ArrayUtil.toArray(articles, MpnewsArticle.class);
-        return WxCpMessage.MPNEWS().addArticle(newArticles).build();
-    }
-
-}
diff --git a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/wecom/entity/msg/WeComMsg.java b/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/wecom/entity/msg/WeComMsg.java
deleted file mode 100644
index 7f4a58251b8f53a237bd370205c1221104ac353e..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/wecom/entity/msg/WeComMsg.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package cn.bootx.platform.notice.core.wecom.entity.msg;
-
-import me.chanjar.weixin.cp.bean.message.WxCpMessage;
-
-/**
- * 企业微信通知消息
- *
- * @author xxm
- * @since 2022/7/23
- */
-public interface WeComMsg {
-
-    /**
-     * 转换成企业微信格式的消息
-     * @return
-     */
-    WxCpMessage toMsg();
-
-}
diff --git a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/wecom/entity/msg/WeComNewsMsg.java b/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/wecom/entity/msg/WeComNewsMsg.java
deleted file mode 100644
index b74b443dcd0e881dfc1457f889580e139c601f5f..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/wecom/entity/msg/WeComNewsMsg.java
+++ /dev/null
@@ -1,37 +0,0 @@
-package cn.bootx.platform.notice.core.wecom.entity.msg;
-
-import cn.bootx.platform.common.core.exception.BizException;
-import cn.bootx.platform.common.core.util.CollUtil;
-import cn.hutool.core.util.ArrayUtil;
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-import lombok.experimental.Accessors;
-import me.chanjar.weixin.cp.bean.article.NewArticle;
-import me.chanjar.weixin.cp.bean.message.WxCpMessage;
-
-import java.util.List;
-
-/**
- * 暂未支持
- *
- * @author xxm
- * @since 2022/7/23
- */
-@Data
-@Accessors(chain = true)
-@Schema(title = "图文消息")
-public class WeComNewsMsg implements WeComMsg {
-
-    @Schema(description = "图文内容列表")
-    private List<NewArticle> articles;
-
-    @Override
-    public WxCpMessage toMsg() {
-        if (CollUtil.isEmpty(articles)) {
-            throw new BizException("图文内容列表不可为空");
-        }
-        NewArticle[] newArticles = ArrayUtil.toArray(articles, NewArticle.class);
-        return WxCpMessage.NEWS().addArticle(newArticles).build();
-    }
-
-}
diff --git a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/wecom/entity/msg/WeComRobotReceive.java b/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/wecom/entity/msg/WeComRobotReceive.java
deleted file mode 100644
index ddad5674abed17a5cbca7d63a71444c6235ac10e..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/wecom/entity/msg/WeComRobotReceive.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package cn.bootx.platform.notice.core.wecom.entity.msg;
-
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-import lombok.experimental.Accessors;
-
-import java.util.List;
-
-/**
- * 企微机器人接收人配置
- *
- * @author xxm
- * @since 2022/7/24
- */
-@Data
-@Accessors(chain = true)
-@Schema(title = "企微机器人接收人配置")
-public class WeComRobotReceive {
-
-    List<String> mentionedList;
-
-    List<String> mobileList;
-
-}
diff --git a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/wecom/entity/msg/WeComTextCardMsg.java b/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/wecom/entity/msg/WeComTextCardMsg.java
deleted file mode 100644
index cf5e7295481a7fbea1a1b7af4f06efd789e71c9f..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/wecom/entity/msg/WeComTextCardMsg.java
+++ /dev/null
@@ -1,34 +0,0 @@
-package cn.bootx.platform.notice.core.wecom.entity.msg;
-
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-import lombok.experimental.Accessors;
-import me.chanjar.weixin.cp.bean.message.WxCpMessage;
-
-/**
- * @author xxm
- * @since 2022/7/23
- */
-@Data
-@Accessors(chain = true)
-@Schema(title = "文本卡片消息")
-public class WeComTextCardMsg implements WeComMsg {
-
-    @Schema(description = "标题")
-    private String title;
-
-    @Schema(description = "描述")
-    private String description;
-
-    @Schema(description = "点击后跳转的链接")
-    private String url;
-
-    @Schema(description = "按钮文字")
-    private String btnTxt;
-
-    @Override
-    public WxCpMessage toMsg() {
-        return WxCpMessage.TEXTCARD().title(title).description(description).url(url).btnTxt(btnTxt).build();
-    }
-
-}
diff --git a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/wecom/entity/msg/WeComTextMsg.java b/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/wecom/entity/msg/WeComTextMsg.java
deleted file mode 100644
index 0bf517c0b397adae800673dfbe79027f66266f83..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/wecom/entity/msg/WeComTextMsg.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package cn.bootx.platform.notice.core.wecom.entity.msg;
-
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-import lombok.experimental.Accessors;
-import me.chanjar.weixin.cp.bean.message.WxCpMessage;
-
-/**
- * @author xxm
- * @since 2022/7/23
- */
-@Data
-@AllArgsConstructor
-@NoArgsConstructor
-@Accessors(chain = true)
-@Schema(title = "文本消息")
-public class WeComTextMsg implements WeComMsg {
-
-    @Schema(description = "文本内容")
-    private String content;
-
-    @Override
-    public WxCpMessage toMsg() {
-        return WxCpMessage.TEXT().content(content).build();
-    }
-
-}
diff --git a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/wecom/entity/msg/WeComVideoMsg.java b/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/wecom/entity/msg/WeComVideoMsg.java
deleted file mode 100644
index 662a419d6952c5a8d216635474e8b6090078b1be..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/wecom/entity/msg/WeComVideoMsg.java
+++ /dev/null
@@ -1,35 +0,0 @@
-package cn.bootx.platform.notice.core.wecom.entity.msg;
-
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-import lombok.experimental.Accessors;
-import me.chanjar.weixin.cp.bean.message.WxCpMessage;
-
-/**
- * @author xxm
- * @since 2022/7/23
- */
-@Data
-@NoArgsConstructor
-@AllArgsConstructor
-@Accessors(chain = true)
-@Schema(title = "企微视频消息")
-public class WeComVideoMsg implements WeComMsg {
-
-    @Schema(description = "视频消息的标题")
-    private String title;
-
-    @Schema(description = "资源id")
-    private String mediaId;
-
-    @Schema(description = "视频消息的描述")
-    private String description;
-
-    @Override
-    public WxCpMessage toMsg() {
-        return WxCpMessage.VIDEO().title(title).mediaId(mediaId).description(description).build();
-    }
-
-}
diff --git a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/wecom/entity/msg/WeComVoiceMsg.java b/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/wecom/entity/msg/WeComVoiceMsg.java
deleted file mode 100644
index 04d7def47e0c37442d0480de3319006647d2ef9e..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/wecom/entity/msg/WeComVoiceMsg.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package cn.bootx.platform.notice.core.wecom.entity.msg;
-
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-import lombok.experimental.Accessors;
-import me.chanjar.weixin.cp.bean.message.WxCpMessage;
-
-/**
- * @author xxm
- * @since 2022/7/23
- */
-@Data
-@AllArgsConstructor
-@NoArgsConstructor
-@Accessors(chain = true)
-@Schema(title = "企微语音消息")
-public class WeComVoiceMsg implements WeComMsg {
-
-    @Schema(description = "资源id")
-    private String mediaId;
-
-    @Override
-    public WxCpMessage toMsg() {
-        return WxCpMessage.VOICE().mediaId(mediaId).build();
-    }
-
-}
diff --git a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/wecom/service/WeComNoticeSenderImpl.java b/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/wecom/service/WeComNoticeSenderImpl.java
deleted file mode 100644
index 0454ec561eb4b1d0a284b3beda5aee485cac57fe..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/wecom/service/WeComNoticeSenderImpl.java
+++ /dev/null
@@ -1,139 +0,0 @@
-package cn.bootx.platform.notice.core.wecom.service;
-
-import cn.bootx.platform.notice.core.wecom.entity.msg.*;
-import cn.bootx.platform.notice.service.WeComNoticeSender;
-import cn.bootx.platform.starter.wecom.core.notice.service.WeComNoticeService;
-import cn.bootx.platform.notice.core.wecom.entity.WeComNoticeParam;
-import cn.bootx.platform.notice.core.wecom.entity.WeComNoticeReceive;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import me.chanjar.weixin.common.api.WxConsts;
-import org.springframework.stereotype.Service;
-
-import java.io.InputStream;
-
-/**
- * 实现类
- *
- * @author xxm
- * @since 2022/7/23
- */
-@Slf4j
-@Service
-@RequiredArgsConstructor
-public class WeComNoticeSenderImpl implements WeComNoticeSender {
-
-    private final WeComNoticeService weComNoticeService;
-
-    /**
-     * 发送文本消息
-     */
-    @Override
-    public String sendTextNotice(WeComTextMsg msg, WeComNoticeReceive receive) {
-        return this.sendNotice(msg, receive);
-    }
-
-    /**
-     * 发送图片消息
-     */
-    @Override
-    public String sendImageNotice(WeComImageMsg msg, WeComNoticeReceive receive) {
-        return this.sendNotice(msg, receive);
-    }
-
-    /**
-     * 发送图片消息 (传入文件)
-     */
-    @Override
-    public String sendImageNotice(InputStream inputStream, WeComNoticeReceive receive) {
-        String media = weComNoticeService.updatedMedia(inputStream, WxConsts.MediaFileType.IMAGE);
-        WeComImageMsg msg = new WeComImageMsg(media);
-        return this.sendNotice(msg, receive);
-    }
-
-    /**
-     * 发送语音消息
-     */
-    @Override
-    public String sendVoiceNotice(WeComVoiceMsg msg, WeComNoticeReceive receive) {
-        return this.sendNotice(msg, receive);
-    }
-
-    /**
-     * 发送语音消息(传入文件)
-     */
-    @Override
-    public String sendVoiceNotice(InputStream inputStream, WeComNoticeReceive receive) {
-        String media = weComNoticeService.updatedMedia(inputStream, WxConsts.MediaFileType.VOICE);
-        WeComVoiceMsg msg = new WeComVoiceMsg(media);
-        return this.sendNotice(msg, receive);
-    }
-
-    /**
-     * 发送视频消息 (传入文件)
-     */
-    @Override
-    public String sendVideoNotice(String title, String description, InputStream inputStream,
-            WeComNoticeReceive receive) {
-        String media = weComNoticeService.updatedMedia(inputStream, WxConsts.MediaFileType.VIDEO);
-        WeComVideoMsg msg = new WeComVideoMsg(title, media, description);
-        return this.sendNotice(msg, receive);
-    }
-
-    /**
-     * 发送视频消息
-     */
-    @Override
-    public String sendVideoNotice(WeComVideoMsg msg, WeComNoticeReceive receive) {
-        return this.sendNotice(msg, receive);
-    }
-
-    /**
-     * 发送文本卡片消息
-     */
-    @Override
-    public String sendTextCardNotice(WeComTextCardMsg msg, WeComNoticeReceive receive) {
-        return this.sendNotice(msg, receive);
-    }
-
-    /**
-     * 发送图文消息
-     */
-    @Override
-    public String sendNewsNotice(WeComNewsMsg msg, WeComNoticeReceive receive) {
-        return this.sendNotice(msg, receive);
-    }
-
-    /**
-     * 发送图文消息(mpnews)
-     */
-    @Override
-    public String sendMpNewsNotice(WeComMpNewsMsg msg, WeComNoticeReceive receive) {
-        return this.sendNotice(msg, receive);
-    }
-
-    /**
-     * 发送markdown消息
-     */
-    @Override
-    public String sendMarkdownNotice(WeComMarkdownMsg msg, WeComNoticeReceive receive) {
-        return this.sendNotice(msg, receive);
-    }
-
-    /**
-     * 发送企微信息
-     */
-    private String sendNotice(WeComMsg msg, WeComNoticeReceive receive) {
-        WeComNoticeParam weComNoticeParam = new WeComNoticeParam(receive, msg);
-        return weComNoticeService.sendNotice(weComNoticeParam.toWeComNotice());
-    }
-
-    /**
-     * 撤回企微消息
-     */
-    @Override
-    public void recallNotice(String msgId) {
-        weComNoticeService.recallNotice(msgId);
-    }
-
-}
diff --git a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/wecom/service/WeComRobotNoticeSenderImpl.java b/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/wecom/service/WeComRobotNoticeSenderImpl.java
deleted file mode 100644
index ae141917bd5ed63f474ef8cbb637033d779320a8..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/core/wecom/service/WeComRobotNoticeSenderImpl.java
+++ /dev/null
@@ -1,101 +0,0 @@
-package cn.bootx.platform.notice.core.wecom.service;
-
-import cn.bootx.platform.notice.service.WeComRobotNoticeSender;
-import cn.bootx.platform.starter.wecom.core.robot.service.WeComRobotNoticeService;
-import cn.hutool.core.codec.Base64;
-import cn.hutool.core.io.IoUtil;
-import cn.hutool.crypto.digest.DigestUtil;
-import lombok.RequiredArgsConstructor;
-import lombok.SneakyThrows;
-import lombok.extern.slf4j.Slf4j;
-import me.chanjar.weixin.cp.bean.article.NewArticle;
-import org.springframework.stereotype.Service;
-
-import java.io.InputStream;
-import java.util.List;
-
-/**
- * 微信机器人消息发送
- *
- * @author xxm
- * @since 2022/7/23
- */
-@Slf4j
-@Service
-@RequiredArgsConstructor
-public class WeComRobotNoticeSenderImpl implements WeComRobotNoticeSender {
-
-    private final WeComRobotNoticeService robotNoticeService;
-
-    /**
-     * 发送文本消息
-     */
-    @Override
-    public void sendTextNotice(String code, String content, List<String> mentionedList, List<String> mobileList) {
-        robotNoticeService.sendTextNotice(code, content, mentionedList, mobileList);
-    }
-
-    /**
-     * 发送markdown消息
-     */
-    @Override
-    public void sendMarkdownNotice(String code, String content) {
-        robotNoticeService.sendMarkdownNotice(code, content);
-    }
-
-    /**
-     * 发送图片消息
-     */
-    @Override
-    public void sendImageNotice(String code, String imageBase64, String md5) {
-        robotNoticeService.sendImageNotice(code, imageBase64, md5);
-    }
-
-    /**
-     * 发送图片消息
-     */
-    @Override
-    public void sendImageNotice(String code, InputStream imageIs) {
-        byte[] bytes = IoUtil.readBytes(imageIs);
-        String md5 = DigestUtil.md5Hex(bytes);
-        String imageBase64 = Base64.encode(bytes);
-        robotNoticeService.sendImageNotice(code, imageBase64, md5);
-    }
-
-    /**
-     * 发送图文消息
-     */
-    @Override
-    public void sendNewsNotice(String code, List<NewArticle> articleList) {
-        robotNoticeService.sendNewsNotice(code, articleList);
-    }
-
-    /**
-     * 发送文件消息
-     */
-    @Override
-    public void sendFIleNotice(String code, String mediaId) {
-        robotNoticeService.sendFIleNotice(code, mediaId);
-    }
-
-    /**
-     * 发送文件消息
-     */
-    @SneakyThrows
-    @Override
-    public void sendFIleNotice(String code, InputStream fileIs) {
-        String mediaId = robotNoticeService.updatedMedia(code, fileIs);
-        robotNoticeService.sendFIleNotice(code, mediaId);
-    }
-
-    /**
-     * 发送文件消息
-     */
-    @SneakyThrows
-    @Override
-    public void sendFIleNotice(String code, InputStream inputStream, String filename) {
-        String mediaId = robotNoticeService.updatedMedia(code, inputStream, filename);
-        robotNoticeService.sendFIleNotice(code, mediaId);
-    }
-
-}
diff --git a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/dto/mail/BaseMailParam.java b/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/dto/mail/BaseMailParam.java
deleted file mode 100644
index acd5b20ba598cc14e7185eca4aaa4618bc626e19..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/dto/mail/BaseMailParam.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package cn.bootx.platform.notice.dto.mail;
-
-import lombok.Data;
-import lombok.experimental.Accessors;
-
-import java.io.Serializable;
-
-/**
- * 基础通知参数
- *
- * @author xxm
- * @since 2020/5/2 20:32
- */
-@Data
-@Accessors(chain = true)
-public class BaseMailParam implements Serializable {
-
-    private static final long serialVersionUID = 5270841506064102447L;
-
-}
diff --git a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/dto/mail/MailConfigDto.java b/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/dto/mail/MailConfigDto.java
deleted file mode 100644
index 61a088ba858de09237af9c8ccd3e05f68b700700..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/dto/mail/MailConfigDto.java
+++ /dev/null
@@ -1,60 +0,0 @@
-package cn.bootx.platform.notice.dto.mail;
-
-import cn.bootx.platform.common.core.rest.dto.BaseDto;
-import cn.bootx.platform.notice.code.MailCode;
-import cn.bootx.platform.starter.data.perm.sensitive.SensitiveInfo;
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.experimental.Accessors;
-
-import java.io.Serializable;
-
-/**
- * @author xxm
- * @since 2020/5/2 14:42
- */
-@EqualsAndHashCode(callSuper = true)
-@Data
-@Schema(title = "邮箱配置")
-@Accessors(chain = true)
-public class MailConfigDto extends BaseDto implements Serializable {
-
-    private static final long serialVersionUID = 2322690493233843789L;
-
-    @Schema(description = "名称")
-    private String name;
-
-    @Schema(description = "编号")
-    private String code;
-
-    @Schema(description = "地址")
-    private String host;
-
-    @Schema(description = "端口")
-    private Integer port;
-
-    @Schema(description = "账号")
-    @SensitiveInfo
-    private String username;
-
-    @Schema(description = "password")
-    @SensitiveInfo(SensitiveInfo.SensitiveType.PASSWORD)
-    private String password;
-
-    @Schema(description = "sender")
-    private String sender;
-
-    @Schema(description = "from")
-    private String from;
-
-    @Schema(description = "是否默认配置")
-    private Boolean activity = false;
-
-    /**
-     * @see MailCode
-     */
-    @Schema(description = "安全方式")
-    private Integer securityType;
-
-}
diff --git a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/dto/mail/MailFileParam.java b/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/dto/mail/MailFileParam.java
deleted file mode 100644
index 92c715905e08ffd41cc85f164a9c67fa48153e5c..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/dto/mail/MailFileParam.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package cn.bootx.platform.notice.dto.mail;
-
-import lombok.Data;
-import lombok.experimental.Accessors;
-
-/**
- * 邮件附件参数
- *
- * @author xxm
- * @since 2020/5/2 20:33
- */
-@Data
-@Accessors(chain = true)
-public class MailFileParam {
-
-    /**
-     * 文件名称
-     */
-    private String fileName;
-
-    /**
-     * 文件后缀
-     */
-    private String fileExtend;
-
-    /**
-     * 文件大小
-     */
-    private int fileSize;
-
-    /**
-     * 文件流
-     */
-    private byte[] fileInputStream;
-
-}
diff --git a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/dto/mail/MailTemplateDto.java b/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/dto/mail/MailTemplateDto.java
deleted file mode 100644
index 2344a3d6142a47d2580a8d92189956f83c7c8031..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/dto/mail/MailTemplateDto.java
+++ /dev/null
@@ -1,30 +0,0 @@
-package cn.bootx.platform.notice.dto.mail;
-
-import cn.bootx.platform.common.core.rest.dto.BaseDto;
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.experimental.Accessors;
-
-@EqualsAndHashCode(callSuper = true)
-@Data
-@Accessors(chain = true)
-@Schema(title = "邮件模板")
-public class MailTemplateDto extends BaseDto {
-
-    @Schema(description = "编码")
-    private String code;
-
-    @Schema(description = "名称")
-    private String name;
-
-    @Schema(description = "内容")
-    private String date;
-
-    @Schema(description = "路径")
-    private String path;
-
-    @Schema(description = "类型")
-    private Integer type;
-
-}
diff --git a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/dto/mail/NoticeReceiverDto.java b/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/dto/mail/NoticeReceiverDto.java
deleted file mode 100644
index 9ae7938466a6d6c926575961687b9d7cd2235ca7..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/dto/mail/NoticeReceiverDto.java
+++ /dev/null
@@ -1,42 +0,0 @@
-package cn.bootx.platform.notice.dto.mail;
-
-import cn.bootx.platform.common.core.rest.dto.BaseDto;
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.experimental.Accessors;
-
-import javax.validation.constraints.NotNull;
-import javax.validation.constraints.Size;
-
-/**
- * 测试通知接收者管理
- *
- * @author xxm
- * @since 2020/5/3 10:56
- */
-@EqualsAndHashCode(callSuper = true)
-@Schema(title = "通知接收者配置dto")
-@Data
-@Accessors(chain = true)
-public class NoticeReceiverDto extends BaseDto {
-
-    /**
-     * 通知类型常量
-     */
-    public static final int NOTICE_TYPE_PHONE = 1;
-
-    public static final int NOTICE_TYPE_EMAIL = 2;
-
-    public static final int NOTICE_TYPE_WECHAT = 3;
-
-    @Schema(description = "联系方式类型,(1:电话,2:邮件,3:微信)")
-    @NotNull
-    private Integer type;
-
-    @Schema(description = "联系方式")
-    @NotNull
-    @Size(max = 255, message = "value max length is 255")
-    private String value;
-
-}
diff --git a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/dto/mail/SendMailParam.java b/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/dto/mail/SendMailParam.java
deleted file mode 100644
index b4a163191fc3e508821f40cbfb688ef7b9fdf3a3..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/dto/mail/SendMailParam.java
+++ /dev/null
@@ -1,54 +0,0 @@
-package cn.bootx.platform.notice.dto.mail;
-
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-import lombok.experimental.Accessors;
-
-import javax.validation.constraints.NotNull;
-import java.io.Serializable;
-import java.util.List;
-
-/**
- * 发邮件的参数
- *
- * @author xxm
- * @since 2020/5/2 20:31
- */
-@Schema(title = "发邮件的参数")
-@Data
-@Accessors(chain = true)
-public class SendMailParam implements Serializable {
-
-    private static final long serialVersionUID = 7472189938984313186L;
-
-    @Schema(description = "配置编号")
-    private String configCode;
-
-    @Schema(description = "标题")
-    @NotNull(message = "主题不能为空")
-    private String subject;
-
-    @Schema(description = "消息")
-    @NotNull(message = "消息不能为空")
-    private String message;
-
-    @Schema(description = "接收人")
-    @NotNull(message = "接收人不能为空")
-    private List<String> to;
-
-    @Schema(description = "抄送人列表")
-    private List<String> ccList;
-
-    @Schema(description = "密送")
-    private List<String> bccList;
-
-    @Schema(description = "是否单条发送(拆分收件人)  默认true")
-    private Boolean singleSend = true;
-
-    @Schema(description = "是否包含附件")
-    private boolean sendAttachment;
-
-    @Schema(description = "附件列表")
-    private List<MailFileParam> fileList;
-
-}
diff --git a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/dto/mail/ToUserRequiredMailParam.java b/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/dto/mail/ToUserRequiredMailParam.java
deleted file mode 100644
index 0b3a85d289f320e099ce53e288eddca338d2efd3..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/dto/mail/ToUserRequiredMailParam.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package cn.bootx.platform.notice.dto.mail;
-
-import lombok.Data;
-import lombok.experimental.Accessors;
-
-import java.io.Serializable;
-
-/**
- * touser 必需时使用的参数
- *
- * @author xxm
- * @since 2020/5/2 20:32
- */
-@Data
-@Accessors(chain = true)
-public abstract class ToUserRequiredMailParam implements Serializable {
-
-    private static final long serialVersionUID = 248630938901130468L;
-
-}
diff --git a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/dto/site/SiteMessageDto.java b/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/dto/site/SiteMessageDto.java
deleted file mode 100644
index 46b3cdf9cf206d7220754b3788e06cc06dc2b779..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/dto/site/SiteMessageDto.java
+++ /dev/null
@@ -1,58 +0,0 @@
-package cn.bootx.platform.notice.dto.site;
-
-import cn.bootx.platform.common.core.rest.dto.BaseDto;
-import cn.bootx.platform.notice.code.SiteMessageCode;
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.experimental.Accessors;
-
-import java.time.LocalDate;
-import java.time.LocalDateTime;
-
-/**
- * 站内信
- *
- * @author xxm
- * @since 2021/8/7
- */
-@EqualsAndHashCode(callSuper = true)
-@Data
-@Accessors(chain = true)
-@Schema(title = "站内信")
-public class SiteMessageDto extends BaseDto {
-
-    @Schema(description = "消息标题")
-    private String title;
-
-    @Schema(description = "消息内容")
-    private String content;
-
-    /**
-     * @see SiteMessageCode#RECEIVE_ALL
-     */
-    @Schema(description = "接收对象类型 全体/指定用户")
-    private String receiveType;
-
-    /**
-     * @see SiteMessageCode#STATE_SENT
-     */
-    @Schema(description = "发布状态")
-    private String sendState;
-
-    @Schema(description = "发送者id")
-    private Long senderId;
-
-    @Schema(description = "发送者姓名")
-    private String senderName;
-
-    @Schema(description = "发送时间")
-    private LocalDateTime senderTime;
-
-    @Schema(description = "撤销时间")
-    private LocalDateTime cancelTime;
-
-    @Schema(description = "截至有效期 有效超过有效期后全体通知将无法看到")
-    private LocalDate efficientTime;
-
-}
diff --git a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/dto/sms/SmsChannelConfigDto.java b/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/dto/sms/SmsChannelConfigDto.java
deleted file mode 100644
index 495b06594b825c609f101e062a234feedc22a27b..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/dto/sms/SmsChannelConfigDto.java
+++ /dev/null
@@ -1,39 +0,0 @@
-package cn.bootx.platform.notice.dto.sms;
-
-import cn.bootx.platform.common.core.rest.dto.BaseDto;
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.experimental.Accessors;
-
-/**
- * 短信渠道配置
- * @author xxm
- * @since 2023-08-04
- */
-@EqualsAndHashCode(callSuper = true)
-@Data
-@Schema(title = "短信渠道配置")
-@Accessors(chain = true)
-public class SmsChannelConfigDto extends BaseDto {
-
-    @Schema(description = "渠道类型编码")
-    private String code;
-    @Schema(description = "渠道类型名称")
-    private String name;
-    @Schema(description = "状态")
-    private String state;
-    @Schema(description = "AccessKey")
-    private String accessKey;
-    @Schema(description = "AccessSecret")
-    private String accessSecret;
-    @Schema(description = "配置")
-    private String config;
-    @Schema(description = "排序")
-    private Double sortNo;
-    @Schema(description = "图片")
-    private Long image;
-    @Schema(description = "备注")
-    private String remark;
-
-}
diff --git a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/dto/sms/SmsTemplateDto.java b/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/dto/sms/SmsTemplateDto.java
deleted file mode 100644
index 5dd0d135a152accbcd8a26f4c37161621194c631..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/dto/sms/SmsTemplateDto.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package cn.bootx.platform.notice.dto.sms;
-
-import cn.bootx.platform.common.core.rest.dto.BaseDto;
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.experimental.Accessors;
-
-/**
- * 短信模板配置
- * @author xxm
- * @since 2023-08-03
- */
-@EqualsAndHashCode(callSuper = true)
-@Data
-@Schema(title = "短信模板配置")
-@Accessors(chain = true)
-public class SmsTemplateDto extends BaseDto {
-
-    @Schema(description = "短信渠道商类型")
-    private String supplierType;
-    @Schema(description = "短信模板id")
-    private String templateId;
-    @Schema(description = "短信模板名称")
-    private String name;
-    @Schema(description = "短信模板内容")
-    private String content;
-
-}
diff --git a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/dto/template/MessageTemplateDto.java b/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/dto/template/MessageTemplateDto.java
deleted file mode 100644
index e330b29232cc234fa397f577de6aa6d748156828..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/dto/template/MessageTemplateDto.java
+++ /dev/null
@@ -1,44 +0,0 @@
-package cn.bootx.platform.notice.dto.template;
-
-import cn.bootx.platform.common.core.rest.dto.BaseDto;
-import cn.bootx.platform.notice.code.MessageTemplateCode;
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.experimental.Accessors;
-
-import java.io.Serializable;
-
-/**
- * 消息模板
- *
- * @author xxm
- * @since 2021/8/10
- */
-@EqualsAndHashCode(callSuper = true)
-@Data
-@Accessors(chain = true)
-@Schema(title = "消息模板")
-public class MessageTemplateDto extends BaseDto implements Serializable {
-
-    private static final long serialVersionUID = -1377790220501836009L;
-
-    /** 编码 */
-    private String code;
-
-    /** 名称 */
-    private String name;
-
-    /** 内容 */
-    private String data;
-
-    /** 备注 */
-    private String remark;
-
-    /**
-     * 模板类型
-     * @see MessageTemplateCode
-     */
-    private String type;
-
-}
diff --git a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/event/sms/SmsChannelAddEvent.java b/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/event/sms/SmsChannelAddEvent.java
deleted file mode 100644
index dcbedc55e24f003b1283e03f2157d4ff79c45dcb..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/event/sms/SmsChannelAddEvent.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package cn.bootx.platform.notice.event.sms;
-
-import cn.bootx.platform.notice.dto.sms.SmsChannelConfigDto;
-import lombok.Getter;
-import org.springframework.context.ApplicationEvent;
-
-/**
- * 短信渠道添加事件
- * @author xxm
- * @since 2023/8/5
- */
-@Getter
-public class SmsChannelAddEvent extends ApplicationEvent {
-    private final SmsChannelConfigDto channelConfig;
-
-    public SmsChannelAddEvent(Object source, SmsChannelConfigDto channelConfig) {
-        super(source);
-        this.channelConfig = channelConfig;
-    }
-}
diff --git a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/event/sms/SmsChannelDisableEnableEvent.java b/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/event/sms/SmsChannelDisableEnableEvent.java
deleted file mode 100644
index 81261da416ffaaeb72c8250191687d3f93eca972..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/event/sms/SmsChannelDisableEnableEvent.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package cn.bootx.platform.notice.event.sms;
-
-import lombok.Getter;
-import org.springframework.context.ApplicationEvent;
-
-/**
- * 短信通道停用事件
- * @author xxm
- * @since 2023/8/5
- */
-@Getter
-public class SmsChannelDisableEnableEvent extends ApplicationEvent {
-    private final String code;
-
-    public SmsChannelDisableEnableEvent(Object source, String code) {
-        super(source);
-        this.code = code;
-    }
-}
diff --git a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/event/sms/SmsChannelEnableEvent.java b/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/event/sms/SmsChannelEnableEvent.java
deleted file mode 100644
index 21fd75b8e670dd45571147dcf6141b5e55e2aac5..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/event/sms/SmsChannelEnableEvent.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package cn.bootx.platform.notice.event.sms;
-
-import lombok.Getter;
-import org.springframework.context.ApplicationEvent;
-
-/**
- * 短信通道启用事件
- * @author xxm
- * @since 2023/8/5
- */
-@Getter
-public class SmsChannelEnableEvent extends ApplicationEvent {
-    private final String code;
-
-    public SmsChannelEnableEvent(Object source, String code) {
-        super(source);
-        this.code = code;
-    }
-}
diff --git a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/event/sms/SmsChannelUpdateEvent.java b/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/event/sms/SmsChannelUpdateEvent.java
deleted file mode 100644
index 44b2102c529a8693f7fff65b810c78083ec86c36..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/event/sms/SmsChannelUpdateEvent.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package cn.bootx.platform.notice.event.sms;
-
-import cn.bootx.platform.notice.dto.sms.SmsChannelConfigDto;
-import lombok.Getter;
-import org.springframework.context.ApplicationEvent;
-
-/**
- * 短信渠道更新事件
- * @author xxm
- * @since 2023/8/5
- */
-@Getter
-public class SmsChannelUpdateEvent extends ApplicationEvent {
-    private final SmsChannelConfigDto channelConfig;
-
-    public SmsChannelUpdateEvent(Object source, SmsChannelConfigDto channelConfig) {
-        super(source);
-        this.channelConfig = channelConfig;
-    }
-}
diff --git a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/exception/CodeTemplateExistedException.java b/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/exception/CodeTemplateExistedException.java
deleted file mode 100644
index df47db0752213ee696ad9d70fdd5b95b9f532ed4..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/exception/CodeTemplateExistedException.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package cn.bootx.platform.notice.exception;
-
-import cn.bootx.platform.common.core.exception.BizException;
-
-import java.io.Serializable;
-
-import static cn.bootx.platform.notice.code.NoticeCenterErrorCode.MAIL_CONFIG_CODE_ALREADY_EXISTED;
-
-/**
- * 邮箱代码已经存在
- *
- * @author xxm
- * @since 2020/6/10 16:21
- */
-public class CodeTemplateExistedException extends BizException implements Serializable {
-
-    private static final long serialVersionUID = 6804308428872546951L;
-
-    public CodeTemplateExistedException() {
-        super(MAIL_CONFIG_CODE_ALREADY_EXISTED, "邮箱代码已经存在.");
-    }
-
-}
diff --git a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/exception/DefaultMailConfigAlreadyExistedException.java b/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/exception/DefaultMailConfigAlreadyExistedException.java
deleted file mode 100644
index 4aac9e62b5e8f16c68c0d74c674bf55b368b88e1..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/exception/DefaultMailConfigAlreadyExistedException.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package cn.bootx.platform.notice.exception;
-
-import cn.bootx.platform.common.core.exception.BizException;
-
-import java.io.Serializable;
-
-import static cn.bootx.platform.notice.code.NoticeCenterErrorCode.DEFAULT_MAIL_CONFIG_ALREADY_EXISTED;
-
-/**
- * 默认邮箱配置 已存在异常
- *
- * @author xxm
- * @since 2020/5/2 14:43
- */
-public class DefaultMailConfigAlreadyExistedException extends BizException implements Serializable {
-
-    private static final long serialVersionUID = 2775127389987392832L;
-
-    public DefaultMailConfigAlreadyExistedException() {
-        super(DEFAULT_MAIL_CONFIG_ALREADY_EXISTED, "默认邮箱配置已存在");
-    }
-
-}
diff --git a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/exception/MailConfigCodeAlreadyExistedException.java b/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/exception/MailConfigCodeAlreadyExistedException.java
deleted file mode 100644
index 100424133775f660981e45fcc65a89525cfd3e12..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/exception/MailConfigCodeAlreadyExistedException.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package cn.bootx.platform.notice.exception;
-
-import cn.bootx.platform.common.core.exception.BizException;
-
-import java.io.Serializable;
-
-import static cn.bootx.platform.notice.code.NoticeCenterErrorCode.MAIL_CONFIG_CODE_ALREADY_EXISTED;
-
-/**
- * 邮箱配置编号 已存在异常
- *
- * @author xxm
- * @since 2020/5/2 14:12
- */
-public class MailConfigCodeAlreadyExistedException extends BizException implements Serializable {
-
-    private static final long serialVersionUID = 6572063368550031815L;
-
-    public MailConfigCodeAlreadyExistedException() {
-        super(MAIL_CONFIG_CODE_ALREADY_EXISTED, "邮箱配置编号 已存在异常");
-    }
-
-}
diff --git a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/exception/MailConfigNotExistException.java b/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/exception/MailConfigNotExistException.java
deleted file mode 100644
index a1ee1c4b1315c35d1512cce0b4da2b733d427a9e..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/exception/MailConfigNotExistException.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package cn.bootx.platform.notice.exception;
-
-import cn.bootx.platform.common.core.exception.FatalException;
-
-import static cn.bootx.platform.notice.code.NoticeCenterErrorCode.MAIL_CONFIG_NOT_EXIST;
-
-/**
- * 邮箱配置不存在异常
- */
-public class MailConfigNotExistException extends FatalException {
-
-    public MailConfigNotExistException() {
-        super(MAIL_CONFIG_NOT_EXIST, "邮箱配置不存在异常");
-    }
-
-}
diff --git a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/exception/MailTemplateNotExistException.java b/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/exception/MailTemplateNotExistException.java
deleted file mode 100644
index 1e58621b04a16d83366e843276523b5089f96432..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/exception/MailTemplateNotExistException.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package cn.bootx.platform.notice.exception;
-
-import cn.bootx.platform.common.core.exception.FatalException;
-
-import static cn.bootx.platform.notice.code.NoticeCenterErrorCode.MAIL_TEMPLATE_NOT_EXIST;
-
-/**
- * 模板不存在
- *
- * @author xxm
- * @since 2020/11/18
- */
-public class MailTemplateNotExistException extends FatalException {
-
-    public MailTemplateNotExistException() {
-        super(MAIL_TEMPLATE_NOT_EXIST, "邮箱模板不存在异常");
-    }
-
-}
diff --git a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/param/mail/MailConfigParam.java b/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/param/mail/MailConfigParam.java
deleted file mode 100644
index 594e8e8bf1b35edba016d457ab6ca226e8b8b002..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/param/mail/MailConfigParam.java
+++ /dev/null
@@ -1,52 +0,0 @@
-package cn.bootx.platform.notice.param.mail;
-
-import cn.bootx.platform.notice.code.MailCode;
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-
-import java.io.Serializable;
-
-/**
- * @author xxm
- * @since 2020/5/2 14:42
- */
-@Data
-@Schema(title = "邮箱配置 DTO")
-public class MailConfigParam implements Serializable {
-
-    private static final long serialVersionUID = 2322690493233843789L;
-
-    @Schema(description = "主键")
-    private Long id;
-
-    @Schema(description = "名称")
-    private String name;
-
-    @Schema(description = "编号")
-    private String code;
-
-    @Schema(description = "邮箱服务器 host")
-    private String host;
-
-    @Schema(description = "邮箱服务器 port")
-    private Integer port;
-
-    @Schema(description = "邮箱服务器 username")
-    private String username;
-
-    @Schema(description = "邮箱服务器 password")
-    private String password;
-
-    @Schema(description = "邮箱服务器 sender")
-    private String sender;
-
-    @Schema(description = "邮箱服务器 from")
-    private String from;
-
-    @Schema(description = "是否默认配置")
-    private Boolean activity = false;
-
-    @Schema(description = "安全方式")
-    private Integer securityType = MailCode.SECURITY_TYPE_PLAIN;
-
-}
diff --git a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/param/mail/MailTemplateParam.java b/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/param/mail/MailTemplateParam.java
deleted file mode 100644
index e213359609319bbb79b7ed3cbf9aa76f9f16936a..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/param/mail/MailTemplateParam.java
+++ /dev/null
@@ -1,37 +0,0 @@
-package cn.bootx.platform.notice.param.mail;
-
-import io.swagger.v3.oas.annotations.media.Schema;
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-import lombok.experimental.Accessors;
-
-/**
- * 邮件模板
- *
- * @author xxm
- * @since 2021/8/5
- */
-@Data
-@Accessors(chain = true)
-@Schema(title = "邮件模板")
-public class MailTemplateParam {
-
-    @Schema(description = "主键")
-    private Long id;
-
-    @Schema(description = "编码")
-    private String code;
-
-    @Schema(description = "名称")
-    private String name;
-
-    @Schema(description = "内容")
-    private String date;
-
-    @Schema(description = "路径")
-    private String path;
-
-    @Schema(description = "类型")
-    private Integer type;
-
-}
diff --git a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/param/site/SendSiteMessageParam.java b/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/param/site/SendSiteMessageParam.java
deleted file mode 100644
index 152df426851f553a0134af3490a9d2f0caa3bdc1..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/param/site/SendSiteMessageParam.java
+++ /dev/null
@@ -1,65 +0,0 @@
-package cn.bootx.platform.notice.param.site;
-
-import cn.bootx.platform.notice.code.SiteMessageCode;
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-import lombok.experimental.Accessors;
-
-import java.time.LocalDate;
-import java.util.List;
-
-/**
- * 站内信发送参数
- *
- * @author xxm
- * @since 2021/8/8
- */
-@Data
-@Accessors(chain = true)
-@Schema(title = "站内信发送参数")
-public class SendSiteMessageParam {
-
-    /** 主键 */
-    private Long id;
-
-    /** 消息标题 */
-    private String title;
-
-    /** 消息内容 */
-    private String content;
-
-    /** 发送者id */
-    private Long senderId;
-
-    /** 发送者姓名 */
-    private String senderName;
-
-    /**
-     * 接收者类型
-     * @see SiteMessageCode#RECEIVE_ALL
-     */
-    private String receiveType;
-
-    /** 接收者id */
-    private List<Long> receiveIds;
-
-    /** 截至有效期 接收值为全体的时候必填写, 超过有效期后 */
-    private LocalDate efficientTime;
-
-    /** 用户处理方式 跳转路由/跳转链接/打开组件 */
-    private String handleType;
-
-    @Data
-    @Accessors(chain = true)
-    @Schema(title = "接收用户信息")
-    public static class User {
-
-        /** 接收者id */
-        private Long receiveId;
-
-        /** 接收者姓名 */
-        private String receiveName;
-
-    }
-
-}
diff --git a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/param/sms/SmsChannelConfigParam.java b/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/param/sms/SmsChannelConfigParam.java
deleted file mode 100644
index 960b701993ceea40fe6e157989964b2a3cc7c671..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/param/sms/SmsChannelConfigParam.java
+++ /dev/null
@@ -1,39 +0,0 @@
-package cn.bootx.platform.notice.param.sms;
-
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-import lombok.experimental.Accessors;
-
-/**
- * 短信渠道配置
- * @author xxm
- * @since 2023-08-04
- */
-@Data
-@Schema(title = "短信渠道配置")
-@Accessors(chain = true)
-public class SmsChannelConfigParam {
-
-    @Schema(description= "主键")
-    private Long id;
-
-    @Schema(description = "渠道类型编码")
-    private String code;
-    @Schema(description = "渠道类型名称")
-    private String name;
-    @Schema(description = "状态")
-    private String state;
-    @Schema(description = "AccessKey")
-    private String accessKey;
-    @Schema(description = "AccessSecret")
-    private String accessSecret;
-    @Schema(description = "图片")
-    private Long image;
-    @Schema(description = "排序")
-    private Double sortNo;
-    @Schema(description = "配置")
-    private String config;
-    @Schema(description = "备注")
-    private String remark;
-
-}
diff --git a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/param/sms/SmsTemplateParam.java b/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/param/sms/SmsTemplateParam.java
deleted file mode 100644
index 2b88b36ed5cc9b7d616afce6509ca994678791a6..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/param/sms/SmsTemplateParam.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package cn.bootx.platform.notice.param.sms;
-
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-import lombok.experimental.Accessors;
-
-/**
- * 短信模板配置
- * @author xxm
- * @since 2023-08-03
- */
-@Data
-@Schema(title = "短信模板配置")
-@Accessors(chain = true)
-public class SmsTemplateParam {
-
-    @Schema(description= "主键")
-    private Long id;
-
-    @Schema(description = "短信渠道商类型")
-    private String supplierType;
-    @Schema(description = "短信模板id")
-    private String templateId;
-    @Schema(description = "短信模板名称")
-    private String name;
-    @Schema(description = "短信模板内容")
-    private String content;
-
-}
diff --git a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/param/template/MessageTemplateParam.java b/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/param/template/MessageTemplateParam.java
deleted file mode 100644
index 3002ff1f17cd592382c1e9307549ab17697728e5..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/param/template/MessageTemplateParam.java
+++ /dev/null
@@ -1,49 +0,0 @@
-package cn.bootx.platform.notice.param.template;
-
-import cn.bootx.platform.notice.code.MessageTemplateCode;
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-import lombok.experimental.Accessors;
-
-import java.io.Serializable;
-
-/**
- * @author xxm
- * @since 2021/8/10
- */
-@Data
-@Accessors(chain = true)
-@Schema(title = "消息模板")
-public class MessageTemplateParam implements Serializable {
-
-    private static final long serialVersionUID = 593034193370220643L;
-
-    @Schema(description = "主键")
-    private Long id;
-
-    /**
-     * 编码
-     */
-    private String code;
-
-    /**
-     * 名称
-     */
-    private String name;
-
-    /**
-     * 内容
-     */
-    private String data;
-
-    /**
-     * 备注
-     */
-    private String remark;
-
-    /**
-     * 模板类型
-     * @see MessageTemplateCode
-     */
-    private String type;
-}
diff --git a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/service/DingRobotNoticeSender.java b/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/service/DingRobotNoticeSender.java
deleted file mode 100644
index c8efdb2e7665372b07601f2aad05ceea71c8d638..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/service/DingRobotNoticeSender.java
+++ /dev/null
@@ -1,35 +0,0 @@
-package cn.bootx.platform.notice.service;
-
-import cn.bootx.platform.starter.dingtalk.param.notice.msg.LinkMsg;
-import cn.bootx.platform.starter.dingtalk.param.notice.msg.MarkdownMsg;
-import cn.bootx.platform.starter.dingtalk.param.notice.msg.TextMsg;
-
-/**
- * 钉钉机器人消息通知
- *
- * @author xxm
- * @since 2022/7/16
- */
-public interface DingRobotNoticeSender {
-
-    /**
-     * 简单文本消息发送
-     */
-    void sendSimpleText(String code, String msg);
-
-    /**
-     * 文本消息发送
-     */
-    void sendText(String code, TextMsg dingTalkTextNotice);
-
-    /**
-     * 发送链接消息
-     */
-    void sendLink(String code, LinkMsg notice);
-
-    /**
-     * 发送Markdown消息
-     */
-    void sendMarkdown(String code, MarkdownMsg notice);
-
-}
diff --git a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/service/DingTalkNoticeSender.java b/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/service/DingTalkNoticeSender.java
deleted file mode 100644
index 5041b6b9c1fc0789e02aa96c083cf66b3e4cc487..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/service/DingTalkNoticeSender.java
+++ /dev/null
@@ -1,155 +0,0 @@
-package cn.bootx.platform.notice.service;
-
-import cn.bootx.platform.notice.core.dingtalk.entity.corp.DingCorpNoticeReceive;
-import cn.bootx.platform.notice.core.dingtalk.entity.corp.DingCorpNoticeUpdate;
-import cn.bootx.platform.notice.core.dingtalk.entity.msg.*;
-
-import java.io.InputStream;
-
-/**
- * 钉钉消息通知服务
- *
- * @author xxm
- * @since 2022/7/16
- */
-public interface DingTalkNoticeSender {
-
-    /**
-     * 发送文本消息
-     * @return 发布消息任务ID
-     */
-    Long sendTextCorpNotice(DingTextMsg dingTextMsg, DingCorpNoticeReceive receive);
-
-    /**
-     * 发送图片消息
-     * @return 发布消息任务ID
-     */
-    Long sendImageCorpNotice(DingImageMsg dingImageMsg, DingCorpNoticeReceive receive);
-
-    /**
-     * 发送图片消息 (文件方式)
-     * @return 发布消息任务ID
-     */
-    Long sendImageCorpNotice(InputStream inputStream, DingCorpNoticeReceive receive);
-
-    /**
-     * 发送图片消息 (文件方式)
-     * @return 发布消息任务ID
-     */
-    Long sendImageCorpNotice(InputStream inputStream, String filename, DingCorpNoticeReceive receive);
-
-    /**
-     * 发送语音消息
-     * @return 发布消息任务ID
-     */
-    Long sendVoiceCorpNotice(DingVoiceMsg dingVoiceMsg, DingCorpNoticeReceive receive);
-
-    /**
-     * 发送语音消息 (文件)
-     * @return 发布消息任务ID
-     */
-    Long sendVoiceCorpNotice(InputStream inputStream, DingCorpNoticeReceive receive);
-
-    /**
-     * 发送语音消息 (文件)
-     * @return 发布消息任务ID
-     */
-    Long sendVoiceCorpNotice(InputStream inputStream, String filename, DingCorpNoticeReceive receive);
-
-    /**
-     * 发送文件消息
-     * @return 发布消息任务ID
-     */
-    Long sendFileCorpNotice(DingFileMsg dingFileMsg, DingCorpNoticeReceive receive);
-
-    /**
-     * 发送文件消息(文件)
-     * @return 发布消息任务ID
-     */
-    Long sendFileCorpNotice(InputStream inputStream, DingCorpNoticeReceive receive);
-
-    /**
-     * 发送文件消息(文件)
-     * @return 发布消息任务ID
-     */
-    Long sendFileCorpNotice(InputStream inputStream, String filename, DingCorpNoticeReceive receive);
-
-    /**
-     * 发送链接消息
-     * @return 发布消息任务ID
-     */
-    Long sendLinkCorpNotice(DingLinkMsg dingLinkMsg, DingCorpNoticeReceive receive);
-
-    /**
-     * 发送OA消息
-     * @return 发布消息任务ID
-     */
-    Long sendOaCorpNotice(DingOaMsg dingOaMsg, DingCorpNoticeReceive receive);
-
-    /**
-     * 发送markdown消息
-     */
-    Long sendMarkDownCorpNotice(DingMarkDownMsg dingMarkDownMsg, DingCorpNoticeReceive receive);
-
-    /**
-     * 发送卡片消息
-     */
-    Long sendActionCardCorpNotice(DingActionCardMsg dingActionCardMsg, DingCorpNoticeReceive receive);
-
-    /**
-     * 更新OA工作通知消息
-     */
-    void updateOaCorpNotice(DingCorpNoticeUpdate updateCorpNotice);
-
-    /**
-     * 撤回工作通知消息
-     */
-    void recallCorpNotice(Long msgTaskId);
-
-    /**
-     * 发送文本企业群消息
-     * @return 发布企业群消息ID
-     */
-    String sendTextChatNotice(DingTextMsg dingTextMsg, String chatId);
-
-    /**
-     * 发送图片企业群消息
-     * @return 发布企业群消息ID
-     */
-    String sendImageChatNotice(DingImageMsg dingImageMsg, String chatId);
-
-    /**
-     * 发送语音企业群消息
-     * @return 发布企业群消息ID
-     */
-    String sendVoiceChatNotice(DingVoiceMsg dingVoiceMsg, String chatId);
-
-    /**
-     * 发送文件企业群消息
-     * @return 发布企业群消息ID
-     */
-    String sendFileChatNotice(DingFileMsg dingFileMsg, String chatId);
-
-    /**
-     * 发送链接企业群消息
-     * @return 发布企业群消息ID
-     */
-    String sendLinkChatNotice(DingLinkMsg dingLinkMsg, String chatId);
-
-    /**
-     * 发送OA企业群消息
-     * @return 发布企业群消息ID
-     */
-    String sendOaChatNotice(DingOaMsg dingOaMsg, String chatId);
-
-    /**
-     * 发送markdown企业群消息
-     */
-    String sendMarkDownChatNotice(DingMarkDownMsg dingMarkDownMsg, String chatId);
-
-    /**
-     * 发送卡片企业群消息
-     */
-    String sendActionCardChatNotice(DingActionCardMsg dingActionCardMsg, String chatId);
-
-}
diff --git a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/service/EmailNoticeSender.java b/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/service/EmailNoticeSender.java
deleted file mode 100644
index 49d50ffdba8be9d2a5a326ad7a2b34050f140e10..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/service/EmailNoticeSender.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package cn.bootx.platform.notice.service;
-
-import cn.bootx.platform.notice.dto.mail.SendMailParam;
-
-/**
- * 邮件发送服务
- *
- * @author xxm
- * @since 2022/7/16
- */
-public interface EmailNoticeSender {
-
-    /**
-     * 简单邮件发送
-     * @param email 邮件地址
-     * @param subject 邮件标题
-     * @param msg 邮件消息
-     */
-    void sentSimpleMail(String email, String subject, String msg);
-
-    /**
-     * 标准邮件发送方式
-     */
-    void sendMail(SendMailParam mailParam);
-
-}
diff --git a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/service/SmsNoticeSender.java b/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/service/SmsNoticeSender.java
deleted file mode 100644
index bddc1765c050f4d49dc09eb8e392a020bb45c5f2..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/service/SmsNoticeSender.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package cn.bootx.platform.notice.service;
-
-/**
- * 短信通知服务
- *
- * @author xxm
- * @since 2022/7/16
- */
-public interface SmsNoticeSender {
-
-}
diff --git a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/service/WeChatNoticeSender.java b/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/service/WeChatNoticeSender.java
deleted file mode 100644
index ccdf917c48bdb20f968cd858f694a7abe1074bd0..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/service/WeChatNoticeSender.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package cn.bootx.platform.notice.service;
-
-/**
- * 微信消息服务
- *
- * @author xxm
- * @since 2022/7/16
- */
-public interface WeChatNoticeSender {
-
-}
diff --git a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/service/WeComNoticeSender.java b/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/service/WeComNoticeSender.java
deleted file mode 100644
index ff028d87d88151b4e7c53b21f9cac6cdbb93c783..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/service/WeComNoticeSender.java
+++ /dev/null
@@ -1,76 +0,0 @@
-package cn.bootx.platform.notice.service;
-
-import cn.bootx.platform.notice.core.wecom.entity.WeComNoticeReceive;
-import cn.bootx.platform.notice.core.wecom.entity.msg.*;
-
-import java.io.InputStream;
-
-/**
- * 企业微信通知服务
- *
- * @author xxm
- * @since 2022/7/16
- */
-public interface WeComNoticeSender {
-
-    /**
-     * 发送文本消息
-     */
-    String sendTextNotice(WeComTextMsg msg, WeComNoticeReceive receive);
-
-    /**
-     * 发送图片消息
-     */
-    String sendImageNotice(WeComImageMsg msg, WeComNoticeReceive receive);
-
-    /**
-     * 发送图片消息 (传入文件)
-     */
-    String sendImageNotice(InputStream inputStream, WeComNoticeReceive receive);
-
-    /**
-     * 发送语音消息
-     */
-    String sendVoiceNotice(WeComVoiceMsg msg, WeComNoticeReceive receive);
-
-    /**
-     * 发送语音消息(传入文件)
-     */
-    String sendVoiceNotice(InputStream inputStream, WeComNoticeReceive receive);
-
-    /**
-     * 发送视频消息 (传入文件)
-     */
-    String sendVideoNotice(String title, String description, InputStream inputStream, WeComNoticeReceive receive);
-
-    /**
-     * 发送视频消息
-     */
-    String sendVideoNotice(WeComVideoMsg msg, WeComNoticeReceive receive);
-
-    /**
-     * 发送文本卡片消息
-     */
-    String sendTextCardNotice(WeComTextCardMsg msg, WeComNoticeReceive receive);
-
-    /**
-     * 发送图文消息
-     */
-    String sendNewsNotice(WeComNewsMsg msg, WeComNoticeReceive receive);
-
-    /**
-     * 发送图文消息(mpnews)
-     */
-    String sendMpNewsNotice(WeComMpNewsMsg msg, WeComNoticeReceive receive);
-
-    /**
-     * 发送markdown消息
-     */
-    String sendMarkdownNotice(WeComMarkdownMsg msg, WeComNoticeReceive receive);
-
-    /**
-     * 撤回企微消息
-     */
-    void recallNotice(String msgId);
-
-}
diff --git a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/service/WeComRobotNoticeSender.java b/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/service/WeComRobotNoticeSender.java
deleted file mode 100644
index acde17ea59c165619520138736b547dd255a64a1..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/service/WeComRobotNoticeSender.java
+++ /dev/null
@@ -1,57 +0,0 @@
-package cn.bootx.platform.notice.service;
-
-import me.chanjar.weixin.cp.bean.article.NewArticle;
-
-import java.io.InputStream;
-import java.util.List;
-
-/**
- * 企业微信机器人配置
- *
- * @author xxm
- * @since 2022/7/16
- */
-public interface WeComRobotNoticeSender {
-
-    /**
-     * 发送文本消息
-     */
-    void sendTextNotice(String code, String content, List<String> mentionedList, List<String> mobileList);
-
-    /**
-     * 发送markdown消息
-     */
-    void sendMarkdownNotice(String code, String content);
-
-    /**
-     * 发送图片消息
-     */
-    void sendImageNotice(String code, String imageBase64, String md5);
-
-    /**
-     * 发送图片消息
-     */
-
-    void sendImageNotice(String code, InputStream imageIs);
-
-    /**
-     * 发送图文消息
-     */
-    void sendNewsNotice(String code, List<NewArticle> articleList);
-
-    /**
-     * 发送文件消息
-     */
-    void sendFIleNotice(String code, String mediaId);
-
-    /**
-     * 发送文件消息
-     */
-    void sendFIleNotice(String code, InputStream fileIs);
-
-    /**
-     * 发送文件消息
-     */
-    void sendFIleNotice(String code, InputStream inputStream, String filename);
-
-}
diff --git a/bootx-platform/bootx-services/service-notice/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/bootx-platform/bootx-services/service-notice/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
deleted file mode 100644
index ffdfb163ca8278e41a02ae852563e211d8c6549f..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-notice/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
+++ /dev/null
@@ -1 +0,0 @@
-cn.bootx.platform.notice.NoticeApplication
diff --git a/bootx-platform/bootx-services/service-notice/src/main/resources/mapper/SiteMessageMapper.xml b/bootx-platform/bootx-services/service-notice/src/main/resources/mapper/SiteMessageMapper.xml
deleted file mode 100644
index 2dedc17d5383bc02e62e30171950a6bd1ed23dd9..0000000000000000000000000000000000000000
--- a/bootx-platform/bootx-services/service-notice/src/main/resources/mapper/SiteMessageMapper.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="cn.bootx.platform.notice.core.site.dao.SiteMessageMapper">
-
-    <select id="pageMassage" resultType="cn.bootx.platform.notice.core.site.domain.SiteMessageInfo">
-        select
-            nsm.id as id,
-            nsm.title as title,
-            nsm.sender_id as senderId,
-            nsm.sender_name as senderName,
-            nsm.sender_time as senderTime,
-            nsm.receive_type as receiveType,
-            nsm.efficient_time as efficientTime,
-            nsm.send_state as sendState,
-            nsm.cancel_time as cancelTime,
-            nsmu.receive_id as receiveId,
-            nsmu.have_read as haveRead,
-            nsmu.read_time as readTime
-        from notice_site_message nsm
-                 left join notice_site_message_user nsmu on nsm.id = nsmu.message_id
-            ${ew.customSqlSegment}
-    </select>
-
-    <select id="countMassage" resultType="java.lang.Integer">
-        select count(*)
-        from notice_site_message nsm
-                 left join notice_site_message_user nsmu on nsm.id = nsmu.message_id
-            ${ew.customSqlSegment}
-    </select>
-
-</mapper>
diff --git a/bootx-platform/pom.xml b/bootx-platform/pom.xml
index 1eac75949ab73d73d0e49d45e4d13eac7ad04090..43fb53fb11dc7ea0119ba4400d965fddcb0eef27 100644
--- a/bootx-platform/pom.xml
+++ b/bootx-platform/pom.xml
@@ -41,7 +41,7 @@
         <!-- 二方库版本 -->
         <bootx-platform.version>1.3.6.2</bootx-platform.version>
         <!-- 三方库 -->
-        <hutool.version>5.8.24</hutool.version>
+        <hutool.version>5.8.27</hutool.version>
         <oshi.version>6.4.4</oshi.version>
         <jackson.version>2.12.3</jackson.version>
         <lang3.version>3.11</lang3.version>
@@ -61,7 +61,6 @@
         <plumelog.version>3.5.3</plumelog.version>
         <easyexcel.version>3.3.2</easyexcel.version>
         <xxl-job.version>2.4.0</xxl-job.version>
-        <IJPay.version>2.9.7</IJPay.version>
         <sa-token.version>1.36.0</sa-token.version>
         <justauth.version>1.16.6</justauth.version>
         <minio.version>8.5.4</minio.version>
@@ -315,30 +314,12 @@
                 <artifactId>common-starter-quartz</artifactId>
                 <version>${bootx-platform.version}</version>
             </dependency>
-            <!-- 钉钉对接模块 -->
-            <dependency>
-                <groupId>cn.bootx.platform</groupId>
-                <artifactId>common-starter-dingtalk</artifactId>
-                <version>${bootx-platform.version}</version>
-            </dependency>
             <!-- 系统监控信息 -->
             <dependency>
                 <groupId>cn.bootx.platform</groupId>
                 <artifactId>common-starter-monitor</artifactId>
                 <version>${bootx-platform.version}</version>
             </dependency>
-            <!-- 微信对接模块 -->
-            <dependency>
-                <groupId>cn.bootx.platform</groupId>
-                <artifactId>common-starter-wechat</artifactId>
-                <version>${bootx-platform.version}</version>
-            </dependency>
-            <!-- 企业微信对接模块 -->
-            <dependency>
-                <groupId>cn.bootx.platform</groupId>
-                <artifactId>common-starter-wecom</artifactId>
-                <version>${bootx-platform.version}</version>
-            </dependency>
             <!-- SMS4J 短信发送-->
             <dependency>
                 <groupId>org.dromara.sms4j</groupId>
@@ -379,6 +360,7 @@
                 <configuration>
                     <source>${java.version}</source>
                     <target>${java.version}</target>
+                    <compilerArgument>-parameters</compilerArgument>
                 </configuration>
             </plugin>
         </plugins>
diff --git a/daxpay-single-demo/pom.xml b/daxpay-single-demo/pom.xml
index 7bd8428144d6a74481c7d6919671d2a040e3164e..ca5a0a3e79178ca76cb6beda22286e8d94fa8203 100644
--- a/daxpay-single-demo/pom.xml
+++ b/daxpay-single-demo/pom.xml
@@ -21,7 +21,7 @@
 
         <!-- 二方库版本 -->
         <bootx-platform.version>1.3.6.2</bootx-platform.version>
-        <daxpay.version>2.0.7</daxpay.version>
+        <daxpay.version>2.0.8</daxpay.version>
     </properties>
 
     <dependencies>
diff --git a/daxpay-single-demo/src/main/java/cn/daxpay/single/demo/configuration/DaxPayDemoProperties.java b/daxpay-single-demo/src/main/java/cn/daxpay/single/demo/configuration/DaxPayDemoProperties.java
index 832a8875557dceca037a9ec20fcbb5c1baa87524..93895867c294e1d6f32cc2c0dff198da6278eeea 100644
--- a/daxpay-single-demo/src/main/java/cn/daxpay/single/demo/configuration/DaxPayDemoProperties.java
+++ b/daxpay-single-demo/src/main/java/cn/daxpay/single/demo/configuration/DaxPayDemoProperties.java
@@ -1,6 +1,7 @@
 package cn.daxpay.single.demo.configuration;
 
 import cn.daxpay.single.sdk.code.SignTypeEnum;
+import cn.hutool.core.util.StrUtil;
 import lombok.Getter;
 import lombok.Setter;
 import org.springframework.boot.context.properties.ConfigurationProperties;
@@ -17,6 +18,9 @@ public class DaxPayDemoProperties {
     /** 服务地址 */
     private String serverUrl;
 
+    /** 微信授权回调地址 */
+    private String wxRedirectUrl;
+
     /** 前端地址(h5) */
     private String frontH5Url;
 
@@ -28,4 +32,16 @@ public class DaxPayDemoProperties {
 
     /** 请求超时时间 */
     private int reqTimeout = 30000;
+
+    public String getServerUrl() {
+        return StrUtil.removeSuffix(serverUrl, "/");
+    }
+
+    public String getWxRedirectUrl() {
+        return StrUtil.removeSuffix(wxRedirectUrl, "/");
+    }
+
+    public String getFrontH5Url() {
+        return StrUtil.removeSuffix(frontH5Url, "/");
+    }
 }
diff --git a/daxpay-single-demo/src/main/java/cn/daxpay/single/demo/controller/CashierController.java b/daxpay-single-demo/src/main/java/cn/daxpay/single/demo/controller/CashierController.java
index c64e49f0548595b62b5511ef3b1ed94ae5fe4f5f..348e13d2d2e8b6fe45d4769c00ff06a0cb53166c 100644
--- a/daxpay-single-demo/src/main/java/cn/daxpay/single/demo/controller/CashierController.java
+++ b/daxpay-single-demo/src/main/java/cn/daxpay/single/demo/controller/CashierController.java
@@ -52,13 +52,13 @@ public class CashierController {
         return Res.ok(cashierService.getUniCashierUrl());
     }
 
-    @Operation(summary = "获取微信授权链接")
+    @Operation(summary = "获取微信授权链接, 用于获取OpenId来发起JsApi支付")
     @GetMapping("getWxAuthUrl")
     public ResResult<String> getWxAuthUrl(){
         return Res.ok(cashierService.getWxAuthUrl());
     }
 
-    @Operation(summary = "微信授权回调页面")
+    @Operation(summary = "微信授权回调接收, 然后携带openid重定向到统一收银台中")
     @GetMapping("/wxAuthCallback")
     public ModelAndView wxAuthCallback(@RequestParam("code") String code){
         return new ModelAndView("redirect:" + cashierService.wxAuthCallback(code));
diff --git a/daxpay-single-demo/src/main/java/cn/daxpay/single/demo/service/AggregateService.java b/daxpay-single-demo/src/main/java/cn/daxpay/single/demo/service/AggregateService.java
index 60a08de93dc785fbdd3491e86344d453904de805..38c384cab50ce109497d5d0eb4f335bd469c6f4d 100644
--- a/daxpay-single-demo/src/main/java/cn/daxpay/single/demo/service/AggregateService.java
+++ b/daxpay-single-demo/src/main/java/cn/daxpay/single/demo/service/AggregateService.java
@@ -114,7 +114,7 @@ public class AggregateService {
         WxAuthUrlParam wxAuthUrlParam = new WxAuthUrlParam();
         wxAuthUrlParam.setState(code);
 
-        String url = StrUtil.format("{}/demo/aggregate/wxAuthCallback", daxPayDemoProperties.getServerUrl());
+        String url = StrUtil.format("{}/demo/aggregate/wxAuthCallback", daxPayDemoProperties.getWxRedirectUrl());
         wxAuthUrlParam.setUrl(url);
         wxAuthUrlParam.setState(code);
         DaxPayResult<WxAuthUrlModel> execute = DaxPayKit.execute(wxAuthUrlParam);
@@ -193,7 +193,6 @@ public class AggregateService {
                 .orElse("127.0.0.1");
         payParam.setClientIp(ip);
         // 异步回调地址
-        payParam.setNotNotify(false);
         // 支付成功同步回调地址
         payParam.setReturnUrl(StrUtil.format("{}/result/success", daxPayDemoProperties.getFrontH5Url()));
         // 中途退出 目前经测试不生效
@@ -293,5 +292,4 @@ public class AggregateService {
         }
         return result.getData().getOpenId();
     }
-
 }
diff --git a/daxpay-single-demo/src/main/java/cn/daxpay/single/demo/service/CashierService.java b/daxpay-single-demo/src/main/java/cn/daxpay/single/demo/service/CashierService.java
index db8741b470eb6054256ed4903b1719bfa416eeb2..f1714d589281692d2124aab0722d32749b9cd0c4 100644
--- a/daxpay-single-demo/src/main/java/cn/daxpay/single/demo/service/CashierService.java
+++ b/daxpay-single-demo/src/main/java/cn/daxpay/single/demo/service/CashierService.java
@@ -168,7 +168,7 @@ public class CashierService {
     public String getWxAuthUrl() {
         // 回调地址为 结算台微信jsapi支付的回调地址
         WxAuthUrlParam wxAuthUrlParam = new WxAuthUrlParam();
-        String url = StrUtil.format("{}/demo/cashier/wxAuthCallback", daxPayDemoProperties.getServerUrl());
+        String url = StrUtil.format("{}/demo/cashier/wxAuthCallback", daxPayDemoProperties.getWxRedirectUrl());
         wxAuthUrlParam.setUrl(url);
         DaxPayResult<WxAuthUrlModel> execute = DaxPayKit.execute(wxAuthUrlParam);
         if (execute.getCode() != 0){
diff --git a/daxpay-single-sdk/pom.xml b/daxpay-single-sdk/pom.xml
index 1a3151403f37c0aa4bf11061639d47160f9f1e21..e93ef03d5d5e5bcf1e438adeca6a4a68fbc832e2 100644
--- a/daxpay-single-sdk/pom.xml
+++ b/daxpay-single-sdk/pom.xml
@@ -6,7 +6,7 @@
 
     <groupId>cn.daxpay.single</groupId>
     <artifactId>daxpay-single-sdk</artifactId>
-    <version>2.0.7</version>
+    <version>2.0.8</version>
     <packaging>jar</packaging>
 
     <!-- 项目信息 -->
@@ -85,6 +85,12 @@
             <version>${junit.version}</version>
             <scope>test</scope>
         </dependency>
+        <dependency>
+            <groupId>cn.daxpay.single</groupId>
+            <artifactId>daxpay-single-core</artifactId>
+            <version>2.0.8</version>
+            <scope>compile</scope>
+        </dependency>
     </dependencies>
 
     <build>
@@ -93,10 +99,11 @@
         <plugin>
             <groupId>org.apache.maven.plugins</groupId>
             <artifactId>maven-compiler-plugin</artifactId>
-            <version>3.1</version>
+            <version>3.10.1</version>
             <configuration>
                 <source>${java.version}</source>
                 <target>${java.version}</target>
+                <compilerArgument>-parameters</compilerArgument>
             </configuration>
         </plugin>
         <!--打包源码的插件-->
diff --git a/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/code/AllocReceiverTypeEnum.java b/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/code/AllocReceiverTypeEnum.java
index 713345268862b225fa4e89da1f3acb2278d87125..c67b33d88deaf910b22c1ecb45a418c150d8053e 100644
--- a/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/code/AllocReceiverTypeEnum.java
+++ b/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/code/AllocReceiverTypeEnum.java
@@ -16,9 +16,9 @@ import java.util.List;
 @AllArgsConstructor
 public enum AllocReceiverTypeEnum {
     /** 个人 */
-    WX_PERSONAL("wx_personal", "个人"),
+    WX_PERSONAL("wx_personal", "openId"),
     /** 商户 */
-    WX_MERCHANT("wx_merchant", "商户"),
+    WX_MERCHANT("wx_merchant", "商户号"),
 
     /** userId 以2088开头的纯16位数字 */
     ALI_USER_ID("ali_user_id", "用户ID"),
diff --git a/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/code/DaxPayCommonErrorCode.java b/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/code/DaxPayCommonErrorCode.java
new file mode 100644
index 0000000000000000000000000000000000000000..7d26196acb7c82bd216c725825e40fdfbf5ea912
--- /dev/null
+++ b/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/code/DaxPayCommonErrorCode.java
@@ -0,0 +1,77 @@
+package cn.daxpay.single.sdk.code;
+
+/**
+ * 公共错误码
+ * @author xxm
+ * @since 2024/6/17
+ */
+public interface DaxPayCommonErrorCode {
+    /** 未归类的错误 */
+    int UNCLASSIFIED_ERROR = 20000;
+
+    /** 不存在的支付通道 */
+    int CHANNEL_NOT_EXIST = 20011;
+
+    /** 不存在的支付方式 */
+    int METHOD_NOT_EXIST = 20012;
+
+    /** 不存在的状态 */
+    int STATUS_NOT_EXIST = 20013;
+
+    /** 支付通道未启用 */
+    int CHANNEL_NOT_ENABLE = 20021;
+
+    /** 支付方式未启用 */
+    int METHOD_NOT_ENABLE = 20022;
+
+    /** 配置未启用 */
+    int CONFIG_NOT_ENABLE = 20023;
+
+    /** 配置错误 */
+    int CONFIG_ERROR = 20024;
+
+    /** 不支持该能力 */
+    int UNSUPPORTED_ABILITY = 20030;
+
+    /** 交易不存在 */
+    int TRADE_NOT_EXIST = 20041;
+
+    /** 交易已关闭 */
+    int TRADE_CLOSED = 20042;
+
+    /** 交易处理中, 请勿重复操作 */
+    int TRADE_PROCESSING = 20043;
+
+    /** 交易状态错误 */
+    int TRADE_STATUS_ERROR = 20044;
+
+    /** 交易失败 */
+    int TRADE_FAILE = 20045;
+
+    /** 参数校验未通过 */
+    int PARAM_VALIDATION_FAIL = 20051;
+
+    /** 验签失败 */
+    int VERIFY_SIGN_FAILED = 20052;
+
+    /** 金额超过限额 */
+    int AMOUNT_EXCEED_LIMIT = 20060;
+
+    /** 对账失败 */
+    int RECONCILE_FAIL = 20071;
+
+    /** 操作失败 */
+    int OPERATION_FAIL = 20080;
+
+    /** 操作处理中, 请勿重复操作 */
+    int OPERATION_PROCESSING = 20081;
+
+    /** 不支持的操作 */
+    int OPERATION_UNSUPPORTED = 20082;
+
+    /** 数据错误 */
+    int DATA_ERROR = 20091;
+
+    /** 未知异常,系统无法处理 */
+    int SYSTEM_UNKNOWN_ERROR = 30000;
+}
diff --git a/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/code/PayChannelEnum.java b/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/code/PayChannelEnum.java
index 51e1f56c608cba2ea0507c9de45854c47015c0bb..214e140d52979e9ff5d8d47f081c8c438aa93ab1 100644
--- a/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/code/PayChannelEnum.java
+++ b/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/code/PayChannelEnum.java
@@ -3,9 +3,6 @@ package cn.daxpay.single.sdk.code;
 import lombok.Getter;
 import lombok.RequiredArgsConstructor;
 
-import java.util.Arrays;
-import java.util.Objects;
-
 /**
  * 支付通道枚举
  *
@@ -26,15 +23,4 @@ public enum PayChannelEnum {
     /** 支付通道名称 */
     private final String name;
 
-
-    /**
-     * 根据编码获取枚举
-     */
-    public static PayChannelEnum findByCode(String code){
-        return Arrays.stream(values())
-                .filter(o -> Objects.equals(o.getCode(), code))
-                .findFirst()
-                .orElseThrow(() -> new IllegalArgumentException("该枚举不存在"));
-    }
-
 }
diff --git a/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/code/PayOrderRefundStatusEnum.java b/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/code/PayOrderRefundStatusEnum.java
new file mode 100644
index 0000000000000000000000000000000000000000..b3edddb31bd85ea4e16367296e6564c0d897a4f6
--- /dev/null
+++ b/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/code/PayOrderRefundStatusEnum.java
@@ -0,0 +1,21 @@
+package cn.daxpay.single.sdk.code;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * 支付订单的退款状态
+ * @author xxm
+ * @since 2024/6/7
+ */
+@Getter
+@AllArgsConstructor
+public enum PayOrderRefundStatusEnum {
+    NO_REFUND("no_refund","未退款"),
+    REFUNDING("refunding","退款中"),
+    PARTIAL_REFUND("partial_refund","部分退款"),
+    REFUNDED("refunded","全部退款"),
+    ;
+    private final String code;
+    private final String name;
+}
diff --git a/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/code/TransferPayeeTypeEnum.java b/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/code/TransferPayeeTypeEnum.java
new file mode 100644
index 0000000000000000000000000000000000000000..899ebcf65e466995bc31efad2ca4282eb4e629d5
--- /dev/null
+++ b/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/code/TransferPayeeTypeEnum.java
@@ -0,0 +1,47 @@
+package cn.daxpay.single.sdk.code;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * 转账接收方类型
+ * @author xxm
+ * @since 2024/4/1
+ */
+@Getter
+@AllArgsConstructor
+public enum TransferPayeeTypeEnum {
+    /** 微信 个人 */
+    WX_PERSONAL("wx_personal", "OpenId"),
+    /** 支付宝 userId 以2088开头的纯16位数字 */
+    ALI_USER_ID("ali_user_id", "用户ID"),
+    /** 支付宝 openId  */
+    ALI_OPEN_ID("ali_open_id", "OpenId"),
+    /** 支付宝 账号 支持邮箱和手机号格式 */
+    ALI_LOGIN_NAME("ali_login_name", "账号");
+
+    /** 编码 */
+    private final String code;
+    /** 名称 */
+    private final String name;
+
+    /**
+     * 根据编码查找
+     */
+    public static TransferPayeeTypeEnum findByCode(String code) {
+        return Arrays.stream(TransferPayeeTypeEnum.values())
+                .filter(e -> e.getCode().equals(code))
+                .findFirst()
+                .orElseThrow(() -> new IllegalArgumentException("未找到对应的分账接收方类型"));
+    }
+
+    /** 微信支持类型 */
+    public static final List<TransferPayeeTypeEnum> WECHAT_LIST = Collections.singletonList(WX_PERSONAL);
+    /** 支付宝支持类型 */
+    public static final List<TransferPayeeTypeEnum> ALI_LIST = Collections.unmodifiableList(Arrays.asList(ALI_OPEN_ID, ALI_USER_ID, ALI_LOGIN_NAME));
+
+}
diff --git a/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/code/TransferStatusEnum.java b/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/code/TransferStatusEnum.java
new file mode 100644
index 0000000000000000000000000000000000000000..ccc771c975976f305accacec5a046e50bde658b9
--- /dev/null
+++ b/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/code/TransferStatusEnum.java
@@ -0,0 +1,23 @@
+package cn.daxpay.single.sdk.code;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * 转账状态
+ * @author xxm
+ * @since 2024/6/11
+ */
+@Getter
+@AllArgsConstructor
+public enum TransferStatusEnum {
+
+    TRANSFERRING("transferring", "转账中"),
+    SUCCESS("success", "转账成功"),
+    FAIL("fail", "转账失败"),
+    ;
+
+    private final String code;
+    private final String name;
+
+}
diff --git a/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/code/TransferTypeEnum.java b/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/code/TransferTypeEnum.java
new file mode 100644
index 0000000000000000000000000000000000000000..dca00ab30b3f8815371a155305d05445c5c83dc4
--- /dev/null
+++ b/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/code/TransferTypeEnum.java
@@ -0,0 +1,26 @@
+package cn.daxpay.single.sdk.code;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * 转账类型注解
+ * @author xxm
+ * @since 2024/6/6
+ */
+@Getter
+@AllArgsConstructor
+public enum TransferTypeEnum {
+    /** 转账给用户 */
+    USER("user", "转账给用户"),
+    /** 转账给员工 */
+    EMPLOYEE("employee", "转账给员工"),
+    /** 转账给合作伙 */
+    PARTNER("partner", "转账给合作伙"),
+    /** 转账给其他对象 */
+    OTHER("other", "转账给其他对象"),;
+
+    private final String code;
+    private final String name;
+
+}
diff --git a/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/model/allocation/AllocOrderModel.java b/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/model/allocation/AllocOrderModel.java
index 36b0e4ba1d1be8c509201e7f5a6146ace6ba1c51..996aabf0a0ba4b8f69db9dda17bcda07da224f91 100644
--- a/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/model/allocation/AllocOrderModel.java
+++ b/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/model/allocation/AllocOrderModel.java
@@ -22,13 +22,13 @@ import java.util.List;
 public class AllocOrderModel extends DaxPayResponseModel {
 
     /** 分账单号 */
-    private String allocationNo;
+    private String allocNo;
 
     /** 商户分账单号 */
-    private String bizAllocationNo;
+    private String bizAllocNo;
 
     /** 通道分账号 */
-    private String outAllocationNo;
+    private String outAllocNo;
 
     /** 支付订单号 */
     private String orderNo;
diff --git a/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/model/allocation/AllocationModel.java b/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/model/allocation/AllocationModel.java
index 96ffbe808b542f6ba90381aacfef88eaf54e9409..ecd65e63630c2375e73d22182fa1df5257512907 100644
--- a/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/model/allocation/AllocationModel.java
+++ b/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/model/allocation/AllocationModel.java
@@ -17,10 +17,10 @@ import lombok.ToString;
 public class AllocationModel extends DaxPayResponseModel {
 
     /** 分账订单号 */
-    private String allocationNo;
+    private String allocNo;
 
     /** 分账订单号 */
-    private String bizAllocationNo;
+    private String bizAllocNo;
 
     /**
      * 分账状态
diff --git a/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/model/assist/WxAccessTokenModel.java b/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/model/assist/WxAccessTokenModel.java
index bc4d13848a03d4e327c997338137e39578313bea..b3fdea8f216e6a0b4acd03d702bfa974d862680b 100644
--- a/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/model/assist/WxAccessTokenModel.java
+++ b/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/model/assist/WxAccessTokenModel.java
@@ -15,7 +15,7 @@ import lombok.ToString;
 @ToString(callSuper = true)
 public class WxAccessTokenModel extends DaxPayResponseModel {
 
-    /** 微信AccessToken */
+    /** 微信AccessToken, 目前无返回 */
     private String accessToken;
 
     /** 微信用户唯一标识 */
diff --git a/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/model/notice/AllocNoticeModel.java b/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/model/notice/AllocNoticeModel.java
index 0f0492a4a9fc849b2a53af957d68e7b9371e0aab..7b289e0aa0a19594412333a21ce8fd7618b530cc 100644
--- a/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/model/notice/AllocNoticeModel.java
+++ b/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/model/notice/AllocNoticeModel.java
@@ -22,17 +22,17 @@ public class AllocNoticeModel extends DaxPayResponseModel {
     /**
      * 分账单号
      */
-    private String allocationNo;
+    private String allocNo;
 
     /**
      * 商户分账单号
      */
-    private String bizAllocationNo;
+    private String bizAllocNo;
 
     /**
      * 通道分账号
      */
-    private String outAllocationNo;
+    private String outAllocNo;
 
     /**
      * 支付订单号
diff --git a/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/model/notice/PayNoticeModel.java b/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/model/notice/PayNoticeModel.java
index e17653e053597d3356f5df1defca3b7279c36d1b..f01747ef93400a845e602309cf4352e8bc63df0e 100644
--- a/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/model/notice/PayNoticeModel.java
+++ b/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/model/notice/PayNoticeModel.java
@@ -2,6 +2,7 @@ package cn.daxpay.single.sdk.model.notice;
 
 import cn.daxpay.single.sdk.code.PayChannelEnum;
 import cn.daxpay.single.sdk.code.PayOrderAllocStatusEnum;
+import cn.daxpay.single.sdk.code.PayOrderRefundStatusEnum;
 import cn.daxpay.single.sdk.code.PayStatusEnum;
 import cn.daxpay.single.sdk.net.DaxPayResponseModel;
 import lombok.Getter;
@@ -56,11 +57,18 @@ public class PayNoticeModel extends DaxPayResponseModel {
      */
     private String status;
 
+
+    /**
+     * 退款状态
+     * @see PayOrderRefundStatusEnum
+     */
+    private String refundStatus;
+
     /**
      * 分账状态
      * @see PayOrderAllocStatusEnum
      */
-    private String allocationStatus;
+    private String allocStatus;
 
     /** 支付成功时间 */
     private Long payTime;
diff --git a/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/model/notice/RefundNoticeModel.java b/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/model/notice/RefundNoticeModel.java
index 963bf8e639cae0f7a4345ebd30ef0637730b84f5..2b1f2319963d7755aba7aa4bee548c530ebd0a5a 100644
--- a/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/model/notice/RefundNoticeModel.java
+++ b/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/model/notice/RefundNoticeModel.java
@@ -1,5 +1,6 @@
 package cn.daxpay.single.sdk.model.notice;
 
+import cn.daxpay.single.core.code.RefundStatusEnum;
 import cn.daxpay.single.sdk.code.PayChannelEnum;
 import cn.daxpay.single.sdk.net.DaxPayResponseModel;
 import lombok.Getter;
@@ -57,6 +58,11 @@ public class RefundNoticeModel extends DaxPayResponseModel {
 
     /** 退款创建时间 */
     private Long createTime;
+    /**
+     * 退款状态
+     * @see RefundStatusEnum
+     */
+    private String status;
 
     /** 商户扩展参数,回调时会原样返回 */
     private String attach;
diff --git a/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/model/pay/PayCancelModel.java b/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/model/pay/PayCancelModel.java
new file mode 100644
index 0000000000000000000000000000000000000000..427cd572e8b0d286c42bb29eace10c1ffe9080a6
--- /dev/null
+++ b/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/model/pay/PayCancelModel.java
@@ -0,0 +1,17 @@
+package cn.daxpay.single.sdk.model.pay;
+
+import cn.daxpay.single.sdk.net.DaxPayResponseModel;
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+
+/**
+ * 支付撤销
+ * @author xxm
+ * @since 2024/2/2
+ */
+@Getter
+@Setter
+@ToString(callSuper = true)
+public class PayCancelModel extends DaxPayResponseModel {
+}
diff --git a/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/model/pay/PayOrderModel.java b/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/model/pay/PayOrderModel.java
index decf9c4ac0e8e1f7d38b3cd7147b2d6f3100becb..e035de888daea8abd8af3a3ce8e92f556cd054be 100644
--- a/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/model/pay/PayOrderModel.java
+++ b/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/model/pay/PayOrderModel.java
@@ -2,6 +2,7 @@ package cn.daxpay.single.sdk.model.pay;
 
 import cn.daxpay.single.sdk.code.PayChannelEnum;
 import cn.daxpay.single.sdk.code.PayOrderAllocStatusEnum;
+import cn.daxpay.single.sdk.code.PayOrderRefundStatusEnum;
 import cn.daxpay.single.sdk.code.PayStatusEnum;
 import cn.daxpay.single.sdk.net.DaxPayResponseModel;
 import lombok.Getter;
@@ -18,7 +19,6 @@ import lombok.ToString;
 @ToString(callSuper = true)
 public class PayOrderModel extends DaxPayResponseModel {
 
-
     /** 订单号 */
     private String orderNo;
 
@@ -63,11 +63,17 @@ public class PayOrderModel extends DaxPayResponseModel {
      */
     private String status;
 
+    /**
+     * 退款状态
+     * @see PayOrderRefundStatusEnum
+     */
+    private String refundStatus;
+
     /**
      * 分账状态
      * @see PayOrderAllocStatusEnum
      */
-    private String allocationStatus;
+    private String allocStatus;
 
 
     /** 支付时间 */
diff --git a/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/model/transfer/TransferModel.java b/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/model/transfer/TransferModel.java
new file mode 100644
index 0000000000000000000000000000000000000000..72753a9cd790d2d4ab6ecdbf806efbf6ab2f1144
--- /dev/null
+++ b/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/model/transfer/TransferModel.java
@@ -0,0 +1,30 @@
+package cn.daxpay.single.sdk.model.transfer;
+
+import cn.daxpay.single.sdk.code.TransferStatusEnum;
+import cn.daxpay.single.sdk.net.DaxPayResponseModel;
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+
+/**
+ * 转账结果
+ * @author xxm
+ * @since 2024/6/19
+ */
+@Getter
+@Setter
+@ToString(callSuper = true)
+public class TransferModel extends DaxPayResponseModel {
+
+    /** 商户转账号 */
+    private String bizTransferNo;
+
+    /** 转账号 */
+    private String transferNo;
+
+    /**
+     * 状态
+     * @see TransferStatusEnum
+     */
+    private String status;
+}
diff --git a/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/model/transfer/TransferOrderModel.java b/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/model/transfer/TransferOrderModel.java
new file mode 100644
index 0000000000000000000000000000000000000000..ca1c908964a331e98cbd458daff86775cca16f2b
--- /dev/null
+++ b/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/model/transfer/TransferOrderModel.java
@@ -0,0 +1,97 @@
+package cn.daxpay.single.sdk.model.transfer;
+
+import cn.daxpay.single.sdk.code.PayChannelEnum;
+import cn.daxpay.single.sdk.code.TransferPayeeTypeEnum;
+import cn.daxpay.single.sdk.code.TransferStatusEnum;
+import cn.daxpay.single.sdk.code.TransferTypeEnum;
+import cn.daxpay.single.sdk.net.DaxPayResponseModel;
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+
+import java.time.LocalDateTime;
+
+/**
+ * 转账订单
+ * @author xxm
+ * @since 2024/6/20
+ */
+@Getter
+@Setter
+@ToString(callSuper = true)
+public class TransferOrderModel extends DaxPayResponseModel {
+
+    /** 商户转账号 */
+    private String bizTransferNo;
+
+    /** 转账号 */
+    private String transferNo;
+
+    /** 通道转账号 */
+    private String outTransferNo;
+
+    /**
+     * 支付通道
+     * @see PayChannelEnum
+     */
+    private String channel;
+
+    /** 转账金额 */
+    private Integer amount;
+
+    /** 标题 */
+    private String title;
+
+    /** 转账原因/备注 */
+    private String reason;
+
+    /**
+     * 转账类型, 微信使用
+     * @see TransferTypeEnum
+     */
+    private String transferType;
+
+    /**
+     * 收款人类型
+     * @see TransferPayeeTypeEnum
+     */
+    private String payeeType;
+
+    /** 收款人账号 */
+    private String payeeAccount;
+
+    /** 收款人姓名 */
+    private String payeeName;
+
+    /**
+     * 状态
+     * @see TransferStatusEnum
+     */
+    private String status;
+
+    /** 成功时间 */
+    private LocalDateTime successTime;
+
+
+    /** 异步通知地址 */
+    private String notifyUrl;
+
+    /** 商户扩展参数,回调时会原样返回, 以最后一次为准 */
+    private String attach;
+
+    /** 请求时间,时间戳转时间 */
+    private LocalDateTime reqTime;
+
+    /** 终端ip */
+    private String clientIp;
+
+    /**
+     * 错误码
+     */
+    private String errorCode;
+
+    /**
+     * 错误原因
+     */
+    private String errorMsg;
+}
diff --git a/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/net/DaxPayRequest.java b/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/net/DaxPayRequest.java
index 6db868dfa1603fdf518031245a0333a4186a801f..22b15005bbdec29ce2fbe5c8865a27f9ee4bdf3a 100644
--- a/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/net/DaxPayRequest.java
+++ b/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/net/DaxPayRequest.java
@@ -23,6 +23,9 @@ public abstract class DaxPayRequest<T extends DaxPayResponseModel> {
     /** 请求时间,传输时间戳 */
     private Long reqTime = DateUtil.currentSeconds();
 
+    /** 随机数 */
+    private String nonceStr;
+
     /**
      * 方法请求路径
      * @return 请求路径
diff --git a/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/param/allocation/AllocFinishParam.java b/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/param/allocation/AllocFinishParam.java
index bb7e887c59bfef2aa40da4900ba95445ddb2586a..37253cf47b40a9d7b5196ffad38f36675964aa74 100644
--- a/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/param/allocation/AllocFinishParam.java
+++ b/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/param/allocation/AllocFinishParam.java
@@ -17,11 +17,11 @@ import lombok.EqualsAndHashCode;
 @Data
 public class AllocFinishParam extends DaxPayRequest<AllocationModel> {
 
-    /** 商户分账单号 */
-    private String bizAllocationNo;
-
     /** 分账单号 */
-    private String allocationNo;
+    private String allocNo;
+
+    /** 商户分账单号 */
+    private String bizAllocNo;
 
     /**
      * 方法请求路径
diff --git a/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/param/allocation/AllocSyncParam.java b/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/param/allocation/AllocSyncParam.java
index efda2cb37b116e58c3eaeb4593329debd97a962f..b61b37ab4a086c2fb5858b06ba965a555046b0ad 100644
--- a/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/param/allocation/AllocSyncParam.java
+++ b/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/param/allocation/AllocSyncParam.java
@@ -18,10 +18,10 @@ import lombok.Setter;
 public class AllocSyncParam extends DaxPayRequest<AllocSyncModel> {
 
     /** 分账号 */
-    private String allocationNo;
+    private String allocNo;
 
     /** 商户分账号 */
-    private String bizAllocationNo;
+    private String bizAllocNo;
 
     @Override
     public String path() {
diff --git a/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/param/allocation/AllocationParam.java b/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/param/allocation/AllocationParam.java
index 936294a0e2627fa472f5ad7c7fe15b645d10c2de..cfa95ce50ff5cb1151cb497eeef68f0f4590cc0e 100644
--- a/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/param/allocation/AllocationParam.java
+++ b/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/param/allocation/AllocationParam.java
@@ -20,7 +20,7 @@ import java.util.List;
 public class AllocationParam extends DaxPayRequest<AllocationModel> {
 
     /** 商户分账单号 */
-    private String bizAllocationNo;
+    private String bizAllocNo;
 
     /** 支付订单号 */
     private String orderNo;
@@ -39,9 +39,6 @@ public class AllocationParam extends DaxPayRequest<AllocationModel> {
     /** 分账接收方列表 */
     private List<AllocReceiverParam> receivers;
 
-    /** 是否不启用异步通知 */
-    private Boolean notNotify;
-
     /** 回调通知地址 */
     private String notifyUrl;
 
diff --git a/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/param/allocation/QueryAllocOrderParam.java b/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/param/allocation/QueryAllocOrderParam.java
index ff482e8dec83108feafa9d7b16759ae6e939b4b3..d8f3efddc6836d4535f3b6de66d669ba71fb78e3 100644
--- a/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/param/allocation/QueryAllocOrderParam.java
+++ b/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/param/allocation/QueryAllocOrderParam.java
@@ -18,10 +18,10 @@ import lombok.Setter;
 public class QueryAllocOrderParam extends DaxPayRequest<AllocOrderModel> {
 
     /** 分账单号 */
-    private String allocationNo;
+    private String allocNo;
 
     /** 商户分账单号 */
-    private String bizAllocationNo;
+    private String bizAllocNo;
 
     /**
      * 方法请求路径
diff --git a/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/param/channel/AliPayParam.java b/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/param/channel/AliPayParam.java
index 4e612c8fd99e3ad0462bfff3f30fc2b08a00164b..11881a18e7fa0331a5deb7cda4adb094ed7773bd 100644
--- a/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/param/channel/AliPayParam.java
+++ b/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/param/channel/AliPayParam.java
@@ -13,7 +13,20 @@ import lombok.Setter;
 @Setter
 public class AliPayParam implements ChannelParam {
 
-    /** 授权码(主动扫描用户的付款码) */
+    /**
+     * 授权码(主动扫描用户的付款码)
+     */
     private String authCode;
 
+    /**
+     * 【描述】小程序支付中,商户实际经营主体的小程序应用的appid,也即最终唤起收银台支付所在的小程序的应用id
+     * 【注意事项】商户需要先在产品管理中心绑定该小程序appid,否则下单会失败
+     */
+    private String opAppId;
+
+    /**
+     * 买家支付宝用户唯一标识
+     */
+    private String openId;
+
 }
diff --git a/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/param/pay/PayCancelParam.java b/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/param/pay/PayCancelParam.java
new file mode 100644
index 0000000000000000000000000000000000000000..089994a1f02f5bb946618e4516dd342f10e4131f
--- /dev/null
+++ b/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/param/pay/PayCancelParam.java
@@ -0,0 +1,41 @@
+package cn.daxpay.single.sdk.param.pay;
+
+import cn.daxpay.single.sdk.model.pay.PayCancelModel;
+import cn.daxpay.single.sdk.net.DaxPayRequest;
+import cn.daxpay.single.sdk.response.DaxPayResult;
+import cn.hutool.core.lang.TypeReference;
+import cn.hutool.json.JSONUtil;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 支付撤销参数
+ * @author xxm
+ * @since 2023/12/17
+ */
+@Getter
+@Setter
+public class PayCancelParam extends DaxPayRequest<PayCancelModel> {
+
+    /** 订单号 */
+    private String orderNo;
+
+    /** 商户订单号 */
+    private String bizOrderNo;
+
+    /**
+     * 方法请求路径
+     */
+    @Override
+    public String path() {
+        return "/unipay/cancel";
+    }
+
+    /**
+     * 将请求返回结果反序列化为实体类
+     */
+    @Override
+    public DaxPayResult<PayCancelModel> toModel(String json) {
+        return JSONUtil.toBean(json, new TypeReference<DaxPayResult<PayCancelModel>>() {}, false);
+    }
+}
diff --git a/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/param/pay/PayCloseParam.java b/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/param/pay/PayCloseParam.java
index f08834584cbb61b0ba88227ee023220758d01539..7d6e752e508a677d0a68047be864d253ae4fbc48 100644
--- a/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/param/pay/PayCloseParam.java
+++ b/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/param/pay/PayCloseParam.java
@@ -5,23 +5,22 @@ import cn.daxpay.single.sdk.net.DaxPayRequest;
 import cn.daxpay.single.sdk.response.DaxPayResult;
 import cn.hutool.core.lang.TypeReference;
 import cn.hutool.json.JSONUtil;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
+import lombok.*;
 
 /**
  * 支付关闭参数
  * @author xxm
  * @since 2023/12/17
  */
-@EqualsAndHashCode(callSuper = true)
-@Data
+@Getter
+@Setter
 public class PayCloseParam extends DaxPayRequest<PayCloseModel> {
 
     /** 订单号 */
     private String orderNo;
 
     /** 商户订单号 */
-    private String bizTradeNo;
+    private String bizOrderNo;
 
     /**
      * 方法请求路径
diff --git a/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/param/pay/PayParam.java b/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/param/pay/PayParam.java
index 10f5555c97629abbc708dc4fcae6c4421f19b5f0..171f2e34278434009bca297b51b8e49c291e7006 100644
--- a/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/param/pay/PayParam.java
+++ b/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/param/pay/PayParam.java
@@ -13,7 +13,6 @@ import cn.hutool.core.lang.TypeReference;
 import cn.hutool.json.JSONUtil;
 import lombok.Getter;
 import lombok.Setter;
-import lombok.ToString;
 
 import java.time.LocalDateTime;
 
@@ -24,7 +23,6 @@ import java.time.LocalDateTime;
  */
 @Getter
 @Setter
-@ToString(callSuper = true)
 public class PayParam extends DaxPayRequest<PayModel> {
 
     /** 商户订单号 */
@@ -80,9 +78,6 @@ public class PayParam extends DaxPayRequest<PayModel> {
     /** 异步通知地址 */
     private String notifyUrl;
 
-    /** 是否不启用异步通知 */
-    private Boolean notNotify;
-
     /**
      * 方法请求路径
      */
diff --git a/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/param/refund/RefundParam.java b/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/param/refund/RefundParam.java
index 74090eb3153bc50b182de4c1996340978e5caef0..a5b73e6d423e7ef3389cee08ddcbe2cf7af60fa2 100644
--- a/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/param/refund/RefundParam.java
+++ b/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/param/refund/RefundParam.java
@@ -57,9 +57,6 @@ public class RefundParam extends DaxPayRequest<RefundModel> {
     /** 商户扩展参数,回调时会原样返回 */
     private String attach;
 
-    /** 是否不启用异步通知 */
-    private Boolean notNotify;
-
     /** 异步通知地址 */
     private String notifyUrl;
 
diff --git a/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/param/transfer/QueryTransferParam.java b/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/param/transfer/QueryTransferParam.java
new file mode 100644
index 0000000000000000000000000000000000000000..483554da03c7c9743aaa90be3a1aa451a602c00e
--- /dev/null
+++ b/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/param/transfer/QueryTransferParam.java
@@ -0,0 +1,43 @@
+package cn.daxpay.single.sdk.param.transfer;
+
+import cn.daxpay.single.sdk.model.transfer.TransferOrderModel;
+import cn.daxpay.single.sdk.net.DaxPayRequest;
+import cn.daxpay.single.sdk.response.DaxPayResult;
+import cn.hutool.core.lang.TypeReference;
+import cn.hutool.json.JSONUtil;
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+
+/**
+ *
+ * @author xxm
+ * @since 2024/6/20
+ */
+@Getter
+@Setter
+@ToString(callSuper = true)
+public class QueryTransferParam extends DaxPayRequest<TransferOrderModel> {
+
+    /** 商户转账号 */
+    private String bizTransferNo;
+
+    /** 转账号 */
+    private String transferNo;
+
+    /**
+     * 方法请求路径
+     */
+    @Override
+    public String path() {
+        return "/unipay/query/transfer";
+    }
+
+    /**
+     * 将请求返回结果反序列化为实体类
+     */
+    @Override
+    public DaxPayResult<TransferOrderModel> toModel(String json) {
+        return JSONUtil.toBean(json, new TypeReference<DaxPayResult<TransferOrderModel>>() {}, false);
+    }
+}
diff --git a/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/param/transfer/TransferParam.java b/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/param/transfer/TransferParam.java
new file mode 100644
index 0000000000000000000000000000000000000000..8aa8db3e562a337cba5c81c5a53bd783e930277e
--- /dev/null
+++ b/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/param/transfer/TransferParam.java
@@ -0,0 +1,82 @@
+package cn.daxpay.single.sdk.param.transfer;
+
+import cn.daxpay.single.sdk.code.PayChannelEnum;
+import cn.daxpay.single.sdk.code.TransferPayeeTypeEnum;
+import cn.daxpay.single.sdk.code.TransferTypeEnum;
+import cn.daxpay.single.sdk.model.transfer.TransferModel;
+import cn.daxpay.single.sdk.net.DaxPayRequest;
+import cn.daxpay.single.sdk.response.DaxPayResult;
+import cn.hutool.core.lang.TypeReference;
+import cn.hutool.json.JSONUtil;
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+
+/**
+ * 转账参数
+ * @author xxm
+ * @since 2024/6/19
+ */
+@Getter
+@Setter
+@ToString(callSuper = true)
+public class TransferParam extends DaxPayRequest<TransferModel> {
+
+    /** 商户转账号 */
+    private String bizTransferNo;
+
+    /**
+     * 支付通道
+     * @see PayChannelEnum
+     */
+    private String channel;
+
+    /** 转账金额 */
+    private Integer amount;
+
+    /** 标题 */
+    private String title;
+
+    /** 转账原因/备注 */
+    private String reason;
+
+    /**
+     * 转账类型, 微信使用
+     * @see TransferTypeEnum
+     */
+    private String transferType;
+
+    /**
+     * 收款人账号类型
+     * @see TransferPayeeTypeEnum
+     */
+    private String payeeType;
+
+    /** 收款人账号 */
+    private String payeeAccount;
+
+    /** 收款人姓名 */
+    private String payeeName;
+
+    /** 回调通知地址 */
+    private String notifyUrl;
+
+    /** 商户扩展参数,回调时会原样返回 */
+    private String attach;
+
+    /**
+     * 方法请求路径
+     */
+    @Override
+    public String path() {
+        return "/unipay/transfer";
+    }
+
+    /**
+     * 将请求返回结果反序列化为实体类
+     */
+    @Override
+    public DaxPayResult<TransferModel> toModel(String json) {
+        return JSONUtil.toBean(json, new TypeReference<DaxPayResult<TransferModel>>() {}, false);
+    }
+}
diff --git a/daxpay-single-sdk/src/test/java/cn/daxpay/single/sdk/allocation/AllocationTest.java b/daxpay-single-sdk/src/test/java/cn/daxpay/single/sdk/allocation/AllocationTest.java
index 4e9c6fdd378eb01da46d57aac9d14f8a66181a00..8bd96e0163b30e65da5e81145bc0e0453c1a0daa 100644
--- a/daxpay-single-sdk/src/test/java/cn/daxpay/single/sdk/allocation/AllocationTest.java
+++ b/daxpay-single-sdk/src/test/java/cn/daxpay/single/sdk/allocation/AllocationTest.java
@@ -46,7 +46,6 @@ public class AllocationTest {
     public void allocationOrder() {
         PayParam param = new PayParam();
         param.setClientIp("127.0.0.1");
-        param.setNotNotify(true);
 
         param.setBizOrderNo("SDK_"+ System.currentTimeMillis());
         param.setTitle("测试手动分账");
@@ -69,7 +68,6 @@ public class AllocationTest {
     public void allocationAutoOrder() {
         PayParam param = new PayParam();
         param.setClientIp("127.0.0.1");
-        param.setNotNotify(true);
 
         param.setBizOrderNo("SDK_"+ System.currentTimeMillis());
         param.setTitle("测试手动分账");
@@ -93,7 +91,7 @@ public class AllocationTest {
     public void allocationOpen() {
         // 分账参数
         AllocationParam param = new AllocationParam();
-        param.setBizAllocationNo("A"+ RandomUtil.randomNumbers(5));
+        param.setBizAllocNo("A"+ RandomUtil.randomNumbers(5));
         param.setAttach("88899");
         param.setBizOrderNo("SDK_1717264053245");
         param.setDescription("测试分账");
@@ -110,7 +108,7 @@ public class AllocationTest {
     public void allocationOpenByGroup() {
         // 分账参数
         AllocationParam param = new AllocationParam();
-        param.setBizAllocationNo("A"+ RandomUtil.randomNumbers(5));
+        param.setBizAllocNo("A"+ RandomUtil.randomNumbers(5));
         param.setAttach("88899");
         param.setBizOrderNo("SDK_1717257064753");
         param.setGroupNo("123");
@@ -128,7 +126,7 @@ public class AllocationTest {
     public void allocationOpenByReceivers() {
         // 分账参数
         AllocationParam param = new AllocationParam();
-        param.setBizAllocationNo("A"+ RandomUtil.randomNumbers(5));
+        param.setBizAllocNo("A"+ RandomUtil.randomNumbers(5));
         param.setAttach("88899");
         param.setOrderNo("DEVP24060201473363000001");
         AllocReceiverParam allocReceiverParam = new AllocReceiverParam();
@@ -149,7 +147,7 @@ public class AllocationTest {
     public void allocationFinish() {
         // 分账完结参数
         AllocFinishParam param = new AllocFinishParam();
-        param.setAllocationNo("DEVA24060117191963000003");
+        param.setAllocNo("DEVA24060117191963000003");
 
         DaxPayResult<AllocationModel> execute = DaxPayKit.execute(param);
         System.out.println(JSONUtil.toJsonStr(execute));
@@ -162,7 +160,7 @@ public class AllocationTest {
     public void allocationSync() {
         // 分账同步参数
         AllocSyncParam param = new AllocSyncParam();
-        param.setAllocationNo("DEVA24060117191963000003");
+        param.setAllocNo("DEVA24060117191963000003");
 
         DaxPayResult<AllocSyncModel> execute = DaxPayKit.execute(param);
         System.out.println(JSONUtil.toJsonStr(execute));
diff --git a/daxpay-single-sdk/src/test/java/cn/daxpay/single/sdk/payment/PayCloseOrderTest.java b/daxpay-single-sdk/src/test/java/cn/daxpay/single/sdk/payment/PayCloseOrderTest.java
index 51592947bd798f9d71014c8531e9c82337647f87..8cb86723cfa4f9d922043fd81fecd9cc876331e1 100644
--- a/daxpay-single-sdk/src/test/java/cn/daxpay/single/sdk/payment/PayCloseOrderTest.java
+++ b/daxpay-single-sdk/src/test/java/cn/daxpay/single/sdk/payment/PayCloseOrderTest.java
@@ -1,9 +1,11 @@
 package cn.daxpay.single.sdk.payment;
 
 import cn.daxpay.single.sdk.code.SignTypeEnum;
+import cn.daxpay.single.sdk.model.pay.PayCancelModel;
 import cn.daxpay.single.sdk.model.pay.PayCloseModel;
 import cn.daxpay.single.sdk.net.DaxPayConfig;
 import cn.daxpay.single.sdk.net.DaxPayKit;
+import cn.daxpay.single.sdk.param.pay.PayCancelParam;
 import cn.daxpay.single.sdk.param.pay.PayCloseParam;
 import cn.daxpay.single.sdk.response.DaxPayResult;
 import cn.hutool.json.JSONUtil;
@@ -37,4 +39,13 @@ public class PayCloseOrderTest {
         DaxPayResult<PayCloseModel> execute = DaxPayKit.execute(param);
         System.out.println(JSONUtil.toJsonStr(execute));
     }
+
+    @Test
+    public void cancel(){
+        PayCancelParam param = new PayCancelParam();
+        param.setOrderNo("DEVP24060518083863000001");
+        param.setClientIp("127.0.0.1");
+        DaxPayResult<PayCancelModel> execute = DaxPayKit.execute(param);
+        System.out.println(JSONUtil.toJsonStr(execute));
+    }
 }
diff --git a/daxpay-single-sdk/src/test/java/cn/daxpay/single/sdk/payment/PayOrderSyncTest.java b/daxpay-single-sdk/src/test/java/cn/daxpay/single/sdk/payment/PayOrderSyncTest.java
index 8136b0e102db97c5adf0856ba6d4bcc221541a57..6c7ee80c243746b3811f4fd5cec55f6cd92b9f1b 100644
--- a/daxpay-single-sdk/src/test/java/cn/daxpay/single/sdk/payment/PayOrderSyncTest.java
+++ b/daxpay-single-sdk/src/test/java/cn/daxpay/single/sdk/payment/PayOrderSyncTest.java
@@ -34,7 +34,7 @@ public class PayOrderSyncTest {
         param.setBizOrderNo("SDK_1715341621498");
         DaxPayResult<PaySyncModel> execute = DaxPayKit.execute(param);
         System.out.println(JSONUtil.toJsonStr(execute));
-        
+
     }
 
 }
diff --git a/daxpay-single-sdk/src/test/java/cn/daxpay/single/sdk/payment/PayOrderTest.java b/daxpay-single-sdk/src/test/java/cn/daxpay/single/sdk/payment/PayOrderTest.java
index 2f3f9c79326d54e3364e6b90240acb503dba4e1c..9ff9a2b547d31d04ba703e446da393e756fa0e1f 100644
--- a/daxpay-single-sdk/src/test/java/cn/daxpay/single/sdk/payment/PayOrderTest.java
+++ b/daxpay-single-sdk/src/test/java/cn/daxpay/single/sdk/payment/PayOrderTest.java
@@ -51,6 +51,6 @@ public class PayOrderTest {
 
         DaxPayResult<PayModel> execute = DaxPayKit.execute(param);
         System.out.println(JSONUtil.toJsonStr(execute));
-        
+
     }
 }
diff --git a/daxpay-single-sdk/src/test/java/cn/daxpay/single/sdk/payment/RefundOrderSyncTest.java b/daxpay-single-sdk/src/test/java/cn/daxpay/single/sdk/payment/RefundOrderSyncTest.java
index cd4a16bb91891fc91c8615cfdc55cac45f90be73..b9a18270fa45d0a1984317c1f19494bd4d3559a8 100644
--- a/daxpay-single-sdk/src/test/java/cn/daxpay/single/sdk/payment/RefundOrderSyncTest.java
+++ b/daxpay-single-sdk/src/test/java/cn/daxpay/single/sdk/payment/RefundOrderSyncTest.java
@@ -36,7 +36,7 @@ public class RefundOrderSyncTest {
         param.setClientIp("127.0.0.1");
         DaxPayResult<RefundSyncModel> execute = DaxPayKit.execute(param);
         System.out.println(JSONUtil.toJsonStr(execute));
-        
+
     }
 
 }
diff --git a/daxpay-single-sdk/src/test/java/cn/daxpay/single/sdk/payment/RefundOrderTest.java b/daxpay-single-sdk/src/test/java/cn/daxpay/single/sdk/payment/RefundOrderTest.java
index cf5b2797ee81e5404824363bd39a2be1aed5cc0f..c8ade40facbe6c7e6c1972dfa0e306bbf8af6a9b 100644
--- a/daxpay-single-sdk/src/test/java/cn/daxpay/single/sdk/payment/RefundOrderTest.java
+++ b/daxpay-single-sdk/src/test/java/cn/daxpay/single/sdk/payment/RefundOrderTest.java
@@ -39,15 +39,14 @@ public class RefundOrderTest {
     public void refund(){
         RefundParam param = new RefundParam();
         param.setBizRefundNo("R" + RandomUtil.randomNumbers(5));
-        param.setBizOrderNo("SDK_1715341621498");
+        param.setBizOrderNo("P1719153314573");
         param.setAmount(1);
         param.setAttach("{回调参数}");
-        param.setNotifyUrl("https://abc.com/callback");
+        param.setNotifyUrl("http://127.0.0.1:9000/demo/callback/refundObject");
         param.setClientIp("127.0.0.1");
 
         DaxPayResult<RefundModel> execute = DaxPayKit.execute(param);
         System.out.println(JSONUtil.toJsonStr(execute));
-        
         System.out.println(PaySignUtil.verifyHmacSha256Sign(execute.getData(), "123456", execute.getData().getSign()));
     }
 
diff --git a/daxpay-single-sdk/src/test/java/cn/daxpay/single/sdk/payment/TransferOrderTest.java b/daxpay-single-sdk/src/test/java/cn/daxpay/single/sdk/payment/TransferOrderTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..8cd27a2131e5642ddde7f01ad8b6e2912ac872c3
--- /dev/null
+++ b/daxpay-single-sdk/src/test/java/cn/daxpay/single/sdk/payment/TransferOrderTest.java
@@ -0,0 +1,54 @@
+package cn.daxpay.single.sdk.payment;
+
+import cn.daxpay.single.sdk.code.PayChannelEnum;
+import cn.daxpay.single.sdk.code.SignTypeEnum;
+import cn.daxpay.single.sdk.code.TransferPayeeTypeEnum;
+import cn.daxpay.single.sdk.model.transfer.TransferModel;
+import cn.daxpay.single.sdk.net.DaxPayConfig;
+import cn.daxpay.single.sdk.net.DaxPayKit;
+import cn.daxpay.single.sdk.param.transfer.TransferParam;
+import cn.daxpay.single.sdk.response.DaxPayResult;
+import cn.hutool.json.JSONUtil;
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * 转账测试
+ * @author xxm
+ * @since 2024/6/20
+ */
+public class TransferOrderTest {
+
+    @Before
+    public void init() {
+        // 初始化支付配置
+        DaxPayConfig config = DaxPayConfig.builder()
+                .serviceUrl("http://127.0.0.1:9000")
+                .signSecret("123456")
+                .signType(SignTypeEnum.HMAC_SHA256)
+                .build();
+        DaxPayKit.initConfig(config);
+    }
+
+
+    /**
+     * 发起转账操作
+     */
+    @Test
+    public void transfer() {
+        // 构建参数
+        TransferParam param = new TransferParam();
+        param.setBizTransferNo("T"+System.currentTimeMillis());
+        param.setTitle("测试转账");
+        param.setReason("我要转个账");
+        param.setAmount(500);
+        param.setChannel(PayChannelEnum.ALI.getCode());
+        param.setPayeeType(TransferPayeeTypeEnum.ALI_OPEN_ID.getCode());
+        param.setClientIp("127.0.0.1");
+        // 使用OpenId
+        param.setPayeeAccount("065a9aEjER9Fa__hxYyvgYDlkhUiw_6RINhYHB2oegpWAo5");
+        // 发起请求
+        DaxPayResult<TransferModel> execute = DaxPayKit.execute(param);
+        System.out.println(JSONUtil.toJsonStr(execute));
+    }
+}
diff --git a/daxpay-single-sdk/src/test/java/cn/daxpay/single/sdk/query/QueryAllocOrderTest.java b/daxpay-single-sdk/src/test/java/cn/daxpay/single/sdk/query/QueryAllocOrderTest.java
index d7c98c2c99ffb07440e3075db8efdb4d543405bb..3ce113a532aeed6df0fb21f519e54fd17a3cef01 100644
--- a/daxpay-single-sdk/src/test/java/cn/daxpay/single/sdk/query/QueryAllocOrderTest.java
+++ b/daxpay-single-sdk/src/test/java/cn/daxpay/single/sdk/query/QueryAllocOrderTest.java
@@ -37,7 +37,7 @@ public class QueryAllocOrderTest {
     @Test
     public void queryAllocOrder() {
         QueryAllocOrderParam param = new QueryAllocOrderParam();
-        param.setAllocationNo("DEVA240602000243630000101");
+        param.setAllocNo("DEVA240602000243630000101");
         param.setClientIp("127.0.0.1");
         DaxPayResult<AllocOrderModel> execute = DaxPayKit.execute(param);
         System.out.println(JSONUtil.toJsonStr(execute));
diff --git a/daxpay-single-sdk/src/test/java/cn/daxpay/single/sdk/query/QueryPayOrderTest.java b/daxpay-single-sdk/src/test/java/cn/daxpay/single/sdk/query/QueryPayOrderTest.java
index bdf6bc67ca8457419e8dc71fb29af00e5651267a..23c3ec095a35e76301667aa2060c2c5a546f0621 100644
--- a/daxpay-single-sdk/src/test/java/cn/daxpay/single/sdk/query/QueryPayOrderTest.java
+++ b/daxpay-single-sdk/src/test/java/cn/daxpay/single/sdk/query/QueryPayOrderTest.java
@@ -37,6 +37,6 @@ public class QueryPayOrderTest {
 
         DaxPayResult<PayOrderModel> execute = DaxPayKit.execute(param);
         System.out.println(JSONUtil.toJsonStr(execute));
-        
+
     }
 }
diff --git a/daxpay-single-sdk/src/test/java/cn/daxpay/single/sdk/query/QueryRefundOrderTest.java b/daxpay-single-sdk/src/test/java/cn/daxpay/single/sdk/query/QueryRefundOrderTest.java
index edccae95cdfea66e096239719124ef2068c7554a..1e960e503c7fe1bf76ef1432b3b2db59b9523c47 100644
--- a/daxpay-single-sdk/src/test/java/cn/daxpay/single/sdk/query/QueryRefundOrderTest.java
+++ b/daxpay-single-sdk/src/test/java/cn/daxpay/single/sdk/query/QueryRefundOrderTest.java
@@ -37,6 +37,6 @@ public class QueryRefundOrderTest {
 
         DaxPayResult<RefundOrderModel> execute = DaxPayKit.execute(param);
         System.out.println(JSONUtil.toJsonStr(execute));
-        
+
     }
 }
diff --git a/daxpay-single-sdk/src/test/java/cn/daxpay/single/sdk/util/PayParamSignTest.java b/daxpay-single-sdk/src/test/java/cn/daxpay/single/sdk/util/PayParamSignTest.java
index f99b7b2f9f97f67c611fadec9b7610d9188fb5c4..1d6f86ebccb73e077e6db52b1d777b2e409a73d0 100644
--- a/daxpay-single-sdk/src/test/java/cn/daxpay/single/sdk/util/PayParamSignTest.java
+++ b/daxpay-single-sdk/src/test/java/cn/daxpay/single/sdk/util/PayParamSignTest.java
@@ -23,7 +23,6 @@ public class PayParamSignTest {
 
         PayParam param = new PayParam();
         param.setClientIp("127.0.0.1");
-        param.setNotNotify(true);
 
         param.setBizOrderNo("P0001");
         param.setTitle("测试接口支付");
diff --git a/daxpay-single-start/pom.xml b/daxpay-single-start/pom.xml
index 8a4983c8b1d786048ee5955f8638b52b6e5bbb08..5fa532e17499b4dd7306cacf14370369816102a2 100644
--- a/daxpay-single-start/pom.xml
+++ b/daxpay-single-start/pom.xml
@@ -17,7 +17,7 @@
     <properties>
         <!-- 二方库版本 -->
         <bootx-platform.version>1.3.6.2</bootx-platform.version>
-        <daxpay.version>2.0.7</daxpay.version>
+        <daxpay.version>2.0.8</daxpay.version>
     </properties>
 
     <dependencies>
diff --git a/daxpay-single-start/src/main/resources/application-dev.yml b/daxpay-single-start/src/main/resources/application-dev.yml
index 6f66a712da9822d248d6e3d277a819a3bb1eb326..20fa4a366f4720d83271c4b9d88657aaf985b2ba 100644
--- a/daxpay-single-start/src/main/resources/application-dev.yml
+++ b/daxpay-single-start/src/main/resources/application-dev.yml
@@ -33,8 +33,6 @@ spring:
   web:
     resources:
       static-locations: classpath:/static/,classpath:/public/
-  thymeleaf:
-    cache: false
   # 定时任务
   quartz:
     # 持久化方式
@@ -69,7 +67,7 @@ bootx:
     swagger:
       enabled: true
       author: bootx
-      version: 2.0.7
+      version: 2.0.8
       title: 开源支付平台-单商户
       description: 开源支付平台-单商户版
       # 多模块扫码
@@ -160,12 +158,8 @@ dromara:
         storage-path: D:/data/files/
 # 支付系统配置
 dax-pay:
-  # 服务地址
-  server-url: http://localhost:9000
-  # 前端h5地址
-  front-h5-url: http://pay1.bootx.cn/h5/#
-  # 前端web地址
-  front-web-url: http://localhost:9000/#
+  # h5访问地址
+  front-h5-url: https://localhost:9000/h5/#
   # 机器号码
   machine-no: 63
   # 当前环境,会影响订单号的生成
@@ -174,8 +168,10 @@ dax-pay:
   demo:
     # 网关地址
     server-url: http://localhost:9000
+    # 微信授权回调地址
+    wx-redirect-url: https://localhost:9000/
     # 前端h5地址
-    front-h5-url: http://pay1.bootx.cn/h5/#
+    front-h5-url: https://localhost:9000/h5/#
     # 签名秘钥, 需要与系统中配置一致
     sign-secret: 123456
     # 签名方式
diff --git a/daxpay-single-start/src/main/resources/application-prod.yml b/daxpay-single-start/src/main/resources/application-prod.yml
index 9468898efae5c896bc7ddaeb842814a43f9869dd..c5f0d2171c1d1f3569e75bf8b7c8a4643ae2e7ba 100644
--- a/daxpay-single-start/src/main/resources/application-prod.yml
+++ b/daxpay-single-start/src/main/resources/application-prod.yml
@@ -33,8 +33,6 @@ spring:
   web:
     resources:
       static-locations: classpath:/static/,classpath:/public/
-  thymeleaf:
-    cache: false
   # 定时任务
   quartz:
     # 持久化方式
@@ -65,7 +63,7 @@ bootx:
     swagger:
       enabled: false
       author: bootx
-      version: 2.0.7
+      version: 2.0.8
       title: 开源支付平台-单商户
       description: 开源支付平台-单商户版
     # 缓存
@@ -143,12 +141,8 @@ dromara:
         storage-path: D:/data/files/
 # 支付系统配置
 dax-pay:
-  # 服务地址
-  server-url: http://pay1.bootx.cn
   # 前端h5地址
   front-h5-url: http://pay1.bootx.cn/h5/#
-  # 前端web地址
-  front-web-url: http://pay1.bootx.cn/#
   # 演示模块
   demo:
     # 网关地址
diff --git a/daxpay-single-start/src/main/resources/application.yml b/daxpay-single-start/src/main/resources/application.yml
index a50cda5d04c1f5bcedde5c4218ee03053a6f4a63..4517e934ad434b4d245787317089058b7e353668 100644
--- a/daxpay-single-start/src/main/resources/application.yml
+++ b/daxpay-single-start/src/main/resources/application.yml
@@ -12,8 +12,6 @@ spring:
       max-file-size: 100MB
       max-request-size: 100MB
       enabled: true
-  thymeleaf:
-    mode: LEGACYHTML5
 # mp配置
 mybatis-plus:
   mapper-locations: classpath*:mapper/**/*Mapper.xml
diff --git a/daxpay-single/daxpay-single-admin/pom.xml b/daxpay-single/daxpay-single-admin/pom.xml
index bff5f318b11add28410438a68f33a6c4a543ddf1..ee49931ba586489d9e4bab7861c806094a4e0fe2 100644
--- a/daxpay-single/daxpay-single-admin/pom.xml
+++ b/daxpay-single/daxpay-single-admin/pom.xml
@@ -6,7 +6,7 @@
     <parent>
         <groupId>cn.daxpay.single</groupId>
         <artifactId>daxpay-single</artifactId>
-        <version>2.0.7</version>
+        <version>2.0.8</version>
     </parent>
 
     <artifactId>daxpay-single-admin</artifactId>
@@ -47,13 +47,6 @@
             <version>${bootx-platform.version}</version>
         </dependency>
 
-        <!-- 消息通知 -->
-        <dependency>
-            <groupId>cn.bootx.platform</groupId>
-            <artifactId>service-notice</artifactId>
-            <version>${bootx-platform.version}</version>
-        </dependency>
-
         <!-- 文件管理 -->
         <dependency>
             <groupId>cn.bootx.platform</groupId>
diff --git a/daxpay-single/daxpay-single-admin/src/main/java/cn/daxpay/single/admin/controller/allocation/AllocationReceiverController.java b/daxpay-single/daxpay-single-admin/src/main/java/cn/daxpay/single/admin/controller/allocation/AllocationReceiverController.java
index bced1beff7b36444dac1c75065615372b9754afa..07b3903bd6f87f79f8277531dbbe40d99d8e7b7d 100644
--- a/daxpay-single/daxpay-single-admin/src/main/java/cn/daxpay/single/admin/controller/allocation/AllocationReceiverController.java
+++ b/daxpay-single/daxpay-single-admin/src/main/java/cn/daxpay/single/admin/controller/allocation/AllocationReceiverController.java
@@ -5,9 +5,10 @@ import cn.bootx.platform.common.core.rest.Res;
 import cn.bootx.platform.common.core.rest.ResResult;
 import cn.bootx.platform.common.core.rest.dto.LabelValue;
 import cn.bootx.platform.common.core.rest.param.PageParam;
-import cn.daxpay.single.code.PaymentApiCode;
-import cn.daxpay.single.param.payment.allocation.AllocReceiverAddParam;
-import cn.daxpay.single.param.payment.allocation.AllocReceiverRemoveParam;
+import cn.bootx.platform.common.core.util.ValidationUtil;
+import cn.daxpay.single.core.code.PaymentApiCode;
+import cn.daxpay.single.core.param.payment.allocation.AllocReceiverAddParam;
+import cn.daxpay.single.core.param.payment.allocation.AllocReceiverRemoveParam;
 import cn.daxpay.single.service.annotation.InitPaymentContext;
 import cn.daxpay.single.service.core.payment.allocation.service.AllocationReceiverService;
 import cn.daxpay.single.service.dto.allocation.AllocationReceiverDto;
@@ -17,6 +18,7 @@ import io.swagger.v3.oas.annotations.tags.Tag;
 import lombok.RequiredArgsConstructor;
 import org.springframework.web.bind.annotation.*;
 
+import java.time.LocalDateTime;
 import java.util.List;
 
 /**
@@ -64,16 +66,20 @@ public class AllocationReceiverController {
 
     @InitPaymentContext(value = PaymentApiCode.ALLOCATION_RECEIVER_ADD)
     @Operation(summary = "添加")
-    @PostMapping("add")
+    @PostMapping("/add")
     public ResResult<Void> add(@RequestBody AllocReceiverAddParam param){
+        param.setReqTime(LocalDateTime.now());
+        ValidationUtil.validateParam(param);
         receiverService.addAndSync(param);
         return Res.ok();
     }
 
     @InitPaymentContext(value = PaymentApiCode.ALLOCATION_RECEIVER_REMOVE)
     @Operation(summary = "删除")
-    @PostMapping("delete")
+    @PostMapping("/delete")
     public ResResult<Void> delete(@RequestBody AllocReceiverRemoveParam param){
+        param.setReqTime(LocalDateTime.now());
+        ValidationUtil.validateParam(param);
         receiverService.remove(param);
         return Res.ok();
     }
diff --git a/daxpay-single/daxpay-single-admin/src/main/java/cn/daxpay/single/admin/controller/channel/AlipayConfigController.java b/daxpay-single/daxpay-single-admin/src/main/java/cn/daxpay/single/admin/controller/channel/AlipayConfigController.java
index 070dfa7b0727c68fe29a92dd136235c6e8dd1c88..2dd3fc5346b5cbfa243bfda8a27874be6f839c60 100644
--- a/daxpay-single/daxpay-single-admin/src/main/java/cn/daxpay/single/admin/controller/channel/AlipayConfigController.java
+++ b/daxpay-single/daxpay-single-admin/src/main/java/cn/daxpay/single/admin/controller/channel/AlipayConfigController.java
@@ -53,4 +53,16 @@ public class AlipayConfigController {
     public ResResult<String> readPem(MultipartFile file){
         return Res.ok(new String(file.getBytes(), StandardCharsets.UTF_8));
     }
+
+    @Operation(summary = "生成异步通知地址")
+    @GetMapping("/generateNotifyUrl")
+    public ResResult<String> generateNotifyUrl() {
+        return Res.ok(alipayConfigService.generateNotifyUrl());
+    }
+
+    @Operation(summary = "生成同步通知地址")
+    @GetMapping("/generateReturnUrl")
+    public ResResult<String> generateReturnUrl() {
+        return Res.ok(alipayConfigService.generateReturnUrl());
+    }
 }
diff --git a/daxpay-single/daxpay-single-admin/src/main/java/cn/daxpay/single/admin/controller/channel/UnionPayConfigController.java b/daxpay-single/daxpay-single-admin/src/main/java/cn/daxpay/single/admin/controller/channel/UnionPayConfigController.java
index 1d7278a08a0702d450cd822e730ed8e379ffe0ad..78f006db587807d7984f17a12338fbe908db3640 100644
--- a/daxpay-single/daxpay-single-admin/src/main/java/cn/daxpay/single/admin/controller/channel/UnionPayConfigController.java
+++ b/daxpay-single/daxpay-single-admin/src/main/java/cn/daxpay/single/admin/controller/channel/UnionPayConfigController.java
@@ -54,4 +54,16 @@ public class UnionPayConfigController {
     public ResResult<String> toBase64(MultipartFile file){
         return Res.ok(Base64.encode(file.getBytes()));
     }
+
+    @Operation(summary = "生成异步通知地址")
+    @GetMapping("/generateNotifyUrl")
+    public ResResult<String> generateNotifyUrl() {
+        return Res.ok(unionPayConfigService.generateNotifyUrl());
+    }
+
+    @Operation(summary = "生成同步通知地址")
+    @GetMapping("/generateReturnUrl")
+    public ResResult<String> generateReturnUrl() {
+        return Res.ok(unionPayConfigService.generateReturnUrl());
+    }
 }
diff --git a/daxpay-single/daxpay-single-admin/src/main/java/cn/daxpay/single/admin/controller/channel/WalletConfigController.java b/daxpay-single/daxpay-single-admin/src/main/java/cn/daxpay/single/admin/controller/channel/WalletConfigController.java
index 23895c01dda85be700e66b53f94e6c5e9082f8cb..db4feefed5c434c13e248bb69c662ac2dccdec42 100644
--- a/daxpay-single/daxpay-single-admin/src/main/java/cn/daxpay/single/admin/controller/channel/WalletConfigController.java
+++ b/daxpay-single/daxpay-single-admin/src/main/java/cn/daxpay/single/admin/controller/channel/WalletConfigController.java
@@ -39,9 +39,10 @@ public class WalletConfigController {
         return Res.ok();
     }
 
-    @Operation(summary = "支付宝支持支付方式")
+    @Operation(summary = "钱包支持支付方式")
     @GetMapping("/findPayWays")
     public ResResult<List<LabelValue>> findPayWays() {
         return Res.ok(service.findPayWays());
     }
+
 }
diff --git a/daxpay-single/daxpay-single-admin/src/main/java/cn/daxpay/single/admin/controller/channel/WeChatPayConfigController.java b/daxpay-single/daxpay-single-admin/src/main/java/cn/daxpay/single/admin/controller/channel/WeChatPayConfigController.java
index 6977470a19330cb941f0957f3c1665c9f74fa060..a361b32b9a04b006068ae04506392c95ff93c8ed 100644
--- a/daxpay-single/daxpay-single-admin/src/main/java/cn/daxpay/single/admin/controller/channel/WeChatPayConfigController.java
+++ b/daxpay-single/daxpay-single-admin/src/main/java/cn/daxpay/single/admin/controller/channel/WeChatPayConfigController.java
@@ -52,4 +52,16 @@ public class WeChatPayConfigController {
     public ResResult<String> toBase64(MultipartFile file){
         return Res.ok(Base64.encode(file.getBytes()));
     }
+
+    @Operation(summary = "生成异步通知地址")
+    @GetMapping("/generateNotifyUrl")
+    public ResResult<String> generateNotifyUrl() {
+        return Res.ok(weChatPayConfigService.generateNotifyUrl());
+    }
+
+    @Operation(summary = "生成同步通知地址")
+    @GetMapping("/generateReturnUrl")
+    public ResResult<String> generateReturnUrl() {
+        return Res.ok(weChatPayConfigService.generateReturnUrl());
+    }
 }
diff --git a/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/controller/WeChatArticleController.java b/daxpay-single/daxpay-single-admin/src/main/java/cn/daxpay/single/admin/controller/extra/AliPayAuthController.java
similarity index 32%
rename from bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/controller/WeChatArticleController.java
rename to daxpay-single/daxpay-single-admin/src/main/java/cn/daxpay/single/admin/controller/extra/AliPayAuthController.java
index 29749eaa6601b3d85e54ed628344c853c36c9d7c..a2623639677b98f5f69218852095913a3a7e3a7e 100644
--- a/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/controller/WeChatArticleController.java
+++ b/daxpay-single/daxpay-single-admin/src/main/java/cn/daxpay/single/admin/controller/extra/AliPayAuthController.java
@@ -1,34 +1,41 @@
-package cn.bootx.platform.starter.wechat.controller;
+package cn.daxpay.single.admin.controller.extra;
 
-import cn.bootx.platform.common.core.rest.PageResult;
+import cn.bootx.platform.common.core.annotation.IgnoreAuth;
 import cn.bootx.platform.common.core.rest.Res;
 import cn.bootx.platform.common.core.rest.ResResult;
-import cn.bootx.platform.common.core.rest.param.PageParam;
-import cn.bootx.platform.starter.wechat.core.article.service.WeChatArticleService;
-import cn.bootx.platform.starter.wechat.dto.article.WeChatArticleDto;
+import cn.daxpay.single.service.core.extra.AliPayAuthService;
+import cn.daxpay.single.service.dto.extra.AuthUrlResult;
+import cn.daxpay.single.service.dto.extra.OpenIdResult;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.tags.Tag;
 import lombok.RequiredArgsConstructor;
 import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
 /**
+ * 支付宝认证控制器
  * @author xxm
- * @since 2022/8/11
+ * @since 2024/6/16
  */
-@Tag(name = "微信文章管理")
+@IgnoreAuth
+@Tag(name = "支付宝认证控制器")
 @RestController
-@RequestMapping("/wechat/article")
+@RequestMapping("/alipay/auth")
 @RequiredArgsConstructor
-public class WeChatArticleController {
+public class AliPayAuthController {
+    private final AliPayAuthService aliPayAuthService;
 
-    private final WeChatArticleService weChatArticleService;
-
-    @Operation(summary = "分页")
-    @GetMapping("/page")
-    public ResResult<PageResult<WeChatArticleDto>> page(PageParam pageParam) {
-        return Res.ok(weChatArticleService.page(pageParam));
+    @Operation(summary = "返回获取OpenId授权页面地址和标识码")
+    @PostMapping("/generateAuthUrl")
+    public ResResult<AuthUrlResult> generateAuthUrl(){
+        return Res.ok(aliPayAuthService.generateAuthUrl());
     }
 
+    @Operation(summary = "根据标识码查询OpenId")
+    @GetMapping("/queryOpenId")
+    public ResResult<OpenIdResult> queryOpenId(String code){
+        return Res.ok(aliPayAuthService.queryOpenId(code));
+    }
 }
diff --git a/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/controller/WeChatQrLoginController.java b/daxpay-single/daxpay-single-admin/src/main/java/cn/daxpay/single/admin/controller/extra/WechatAuthController.java
similarity index 42%
rename from bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/controller/WeChatQrLoginController.java
rename to daxpay-single/daxpay-single-admin/src/main/java/cn/daxpay/single/admin/controller/extra/WechatAuthController.java
index 825f56305c0e0edf06c062a205653a24ed6a4f6d..40793d87bd2d725e0c9eba58ca9d4e12d9d134d4 100644
--- a/bootx-platform/bootx-common-starters/common-starter-wechat/src/main/java/cn/bootx/platform/starter/wechat/controller/WeChatQrLoginController.java
+++ b/daxpay-single/daxpay-single-admin/src/main/java/cn/daxpay/single/admin/controller/extra/WechatAuthController.java
@@ -1,10 +1,11 @@
-package cn.bootx.platform.starter.wechat.controller;
+package cn.daxpay.single.admin.controller.extra;
 
 import cn.bootx.platform.common.core.annotation.IgnoreAuth;
 import cn.bootx.platform.common.core.rest.Res;
 import cn.bootx.platform.common.core.rest.ResResult;
-import cn.bootx.platform.starter.wechat.core.login.service.WeChatQrLoginService;
-import cn.bootx.platform.starter.wechat.dto.login.WeChatLoginQrCode;
+import cn.daxpay.single.service.core.extra.WeChatAuthService;
+import cn.daxpay.single.service.dto.extra.AuthUrlResult;
+import cn.daxpay.single.service.dto.extra.OpenIdResult;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.tags.Tag;
 import lombok.RequiredArgsConstructor;
@@ -14,30 +15,28 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
 /**
- * 微信
- *
+ * 微信认证控制器
  * @author xxm
- * @since 2022/8/4
+ * @since 2024/6/15
  */
 @IgnoreAuth
-@Tag(name = "微信扫码登录")
+@Tag(name = "微信认证控制器")
 @RestController
-@RequestMapping("/token/wechat/qr")
+@RequestMapping("/wechat/auth/")
 @RequiredArgsConstructor
-public class WeChatQrLoginController {
+public class WechatAuthController {
+    private final WeChatAuthService wechatAuthService;
 
-    private final WeChatQrLoginService weChatQrLoginService;
-
-    @Operation(summary = "申请登录用QR码")
-    @PostMapping("/applyQrCode")
-    public ResResult<WeChatLoginQrCode> applyQrCode() {
-         return Res.ok(weChatQrLoginService.applyQrCode());
+    @Operation(summary = "返回获取OpenId授权页面地址和标识码")
+    @PostMapping("/generateAuthUrl")
+    public ResResult<AuthUrlResult> generateAuthUrl(){
+        return Res.ok(wechatAuthService.generateAuthUrl());
     }
 
-    @Operation(summary = "获取扫码状态")
-    @GetMapping("/getStatus")
-    public ResResult<String> getStatus(String qrCodeKey) {
-         return Res.ok(weChatQrLoginService.getStatus(qrCodeKey));
-    }
 
+    @Operation(summary = "根据标识码查询OpenId")
+    @GetMapping("/queryOpenId")
+    public ResResult<OpenIdResult> queryOpenId(String code){
+        return Res.ok(wechatAuthService.queryOpenId(code));
+    }
 }
diff --git a/daxpay-single/daxpay-single-admin/src/main/java/cn/daxpay/single/admin/controller/allocation/AllocationOrderController.java b/daxpay-single/daxpay-single-admin/src/main/java/cn/daxpay/single/admin/controller/order/AllocationOrderController.java
similarity index 64%
rename from daxpay-single/daxpay-single-admin/src/main/java/cn/daxpay/single/admin/controller/allocation/AllocationOrderController.java
rename to daxpay-single/daxpay-single-admin/src/main/java/cn/daxpay/single/admin/controller/order/AllocationOrderController.java
index 11aad17e900735b317af15d6da5839e0e89f6a8e..c1b30ccd1c46a360a4a4ef47df000fb6bd56df65 100644
--- a/daxpay-single/daxpay-single-admin/src/main/java/cn/daxpay/single/admin/controller/allocation/AllocationOrderController.java
+++ b/daxpay-single/daxpay-single-admin/src/main/java/cn/daxpay/single/admin/controller/order/AllocationOrderController.java
@@ -1,23 +1,20 @@
-package cn.daxpay.single.admin.controller.allocation;
+package cn.daxpay.single.admin.controller.order;
 
 import cn.bootx.platform.common.core.rest.PageResult;
 import cn.bootx.platform.common.core.rest.Res;
 import cn.bootx.platform.common.core.rest.ResResult;
 import cn.bootx.platform.common.core.rest.dto.LabelValue;
 import cn.bootx.platform.common.core.rest.param.PageParam;
-import cn.daxpay.single.code.PaymentApiCode;
-import cn.daxpay.single.param.payment.allocation.AllocFinishParam;
-import cn.daxpay.single.param.payment.allocation.AllocSyncParam;
-import cn.daxpay.single.param.payment.allocation.AllocationParam;
+import cn.daxpay.single.core.code.PaymentApiCode;
+import cn.daxpay.single.core.param.payment.allocation.AllocFinishParam;
+import cn.daxpay.single.core.param.payment.allocation.AllocSyncParam;
 import cn.daxpay.single.service.annotation.InitPaymentContext;
-import cn.daxpay.single.service.core.order.allocation.service.AllocationOrderQueryService;
+import cn.daxpay.single.service.core.order.allocation.service.AllocOrderQueryService;
 import cn.daxpay.single.service.core.payment.allocation.service.AllocationService;
 import cn.daxpay.single.service.core.payment.allocation.service.AllocationSyncService;
-import cn.daxpay.single.service.dto.order.allocation.AllocationOrderAndExtraDto;
+import cn.daxpay.single.service.dto.order.allocation.AllocOrderDto;
 import cn.daxpay.single.service.dto.order.allocation.AllocationOrderDetailDto;
-import cn.daxpay.single.service.dto.order.allocation.AllocationOrderDto;
-import cn.daxpay.single.service.dto.order.allocation.AllocationOrderExtraDto;
-import cn.daxpay.single.service.param.order.AllocationOrderQuery;
+import cn.daxpay.single.service.param.order.AllocOrderQuery;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.tags.Tag;
 import lombok.RequiredArgsConstructor;
@@ -39,7 +36,7 @@ import java.util.List;
 @RequiredArgsConstructor
 public class AllocationOrderController {
 
-    private final AllocationOrderQueryService queryService;
+    private final AllocOrderQueryService queryService;
 
     private final AllocationService allocationService;
 
@@ -47,7 +44,7 @@ public class AllocationOrderController {
 
     @Operation(summary = "分页")
     @GetMapping("/page")
-    public ResResult<PageResult<AllocationOrderDto>> page(PageParam pageParam, AllocationOrderQuery param){
+    public ResResult<PageResult<AllocOrderDto>> page(PageParam pageParam, AllocOrderQuery param){
         return Res.ok(queryService.page(pageParam,param));
     }
 
@@ -59,7 +56,7 @@ public class AllocationOrderController {
 
     @Operation(summary = "查询详情")
     @GetMapping("/findById")
-    public ResResult<AllocationOrderDto> findById(Long id){
+    public ResResult<AllocOrderDto> findById(Long id){
         return Res.ok(queryService.findById(id));
     }
 
@@ -71,12 +68,8 @@ public class AllocationOrderController {
 
     @Operation(summary = "查询扩展信息")
     @GetMapping("/findByAllocNo")
-    public ResResult<AllocationOrderAndExtraDto> findByAllocNo(String allocNo){
-        AllocationOrderAndExtraDto result = new AllocationOrderAndExtraDto();
-        AllocationOrderDto order = queryService.findByAllocNo(allocNo);
-        AllocationOrderExtraDto extra = queryService.findExtraById(order.getId());
-        result.setOrder(order).setExtra(extra);
-        return Res.ok(result);
+    public ResResult<AllocOrderDto> findByAllocNo(String allocNo){
+        return Res.ok(queryService.findByAllocNo(allocNo));
     }
 
     @Operation(summary = "获取可以分账的通道")
@@ -88,9 +81,9 @@ public class AllocationOrderController {
     @InitPaymentContext(PaymentApiCode.SYNC_ALLOCATION)
     @Operation(summary = "同步分账结果")
     @PostMapping("/sync")
-    public ResResult<Void> sync(String allocationNo){
+    public ResResult<Void> sync(String allocNo){
         AllocSyncParam param = new AllocSyncParam();
-        param.setAllocationNo(allocationNo);
+        param.setAllocNo(allocNo);
         allocationSyncService.sync(param);
         return Res.ok();
     }
@@ -98,9 +91,9 @@ public class AllocationOrderController {
     @InitPaymentContext(PaymentApiCode.ALLOCATION_FINISH)
     @Operation(summary = "分账完结")
     @PostMapping("/finish")
-    public ResResult<Void> finish(String allocationNo){
+    public ResResult<Void> finish(String allocNo){
         AllocFinishParam param = new AllocFinishParam();
-        param.setAllocationNo(allocationNo);
+        param.setAllocNo(allocNo);
         allocationService.finish(param);
         return Res.ok();
     }
@@ -108,10 +101,8 @@ public class AllocationOrderController {
     @InitPaymentContext(PaymentApiCode.ALLOCATION)
     @Operation(summary = "重新发起分账")
     @PostMapping("/retry")
-    public ResResult<Void> retryAllocation(String bizAllocationNo){
-        AllocationParam param = new AllocationParam();
-        param.setBizAllocationNo(bizAllocationNo);
-        allocationService.allocation(param);
+    public ResResult<Void> retryAllocation(String bizAllocNo){
+        allocationService.retry(bizAllocNo);
         return Res.ok();
     }
 }
diff --git a/daxpay-single/daxpay-single-admin/src/main/java/cn/daxpay/single/admin/controller/order/PayOrderController.java b/daxpay-single/daxpay-single-admin/src/main/java/cn/daxpay/single/admin/controller/order/PayOrderController.java
index 6f803616de743b998bf41938ba4ff72cf33d439d..fd0e77fe17911a3391256161c8f927443b80d179 100644
--- a/daxpay-single/daxpay-single-admin/src/main/java/cn/daxpay/single/admin/controller/order/PayOrderController.java
+++ b/daxpay-single/daxpay-single-admin/src/main/java/cn/daxpay/single/admin/controller/order/PayOrderController.java
@@ -5,23 +5,20 @@ import cn.bootx.platform.common.core.rest.PageResult;
 import cn.bootx.platform.common.core.rest.Res;
 import cn.bootx.platform.common.core.rest.ResResult;
 import cn.bootx.platform.common.core.rest.param.PageParam;
-import cn.daxpay.single.code.PaymentApiCode;
-import cn.daxpay.single.param.payment.allocation.AllocationParam;
-import cn.daxpay.single.param.payment.pay.PayCloseParam;
-import cn.daxpay.single.param.payment.pay.PaySyncParam;
-import cn.daxpay.single.result.sync.PaySyncResult;
+import cn.daxpay.single.core.code.PaymentApiCode;
+import cn.daxpay.single.core.param.payment.allocation.AllocationParam;
+import cn.daxpay.single.core.param.payment.pay.PayCloseParam;
+import cn.daxpay.single.core.param.payment.pay.PaySyncParam;
+import cn.daxpay.single.core.result.sync.PaySyncResult;
 import cn.daxpay.single.service.annotation.InitPaymentContext;
 import cn.daxpay.single.service.core.order.pay.entity.PayOrder;
-import cn.daxpay.single.service.core.order.pay.service.PayOrderExtraService;
 import cn.daxpay.single.service.core.order.pay.service.PayOrderQueryService;
 import cn.daxpay.single.service.core.payment.allocation.service.AllocationService;
 import cn.daxpay.single.service.core.payment.close.service.PayCloseService;
 import cn.daxpay.single.service.core.payment.sync.service.PaySyncService;
-import cn.daxpay.single.service.dto.order.pay.PayOrderAndExtraDto;
 import cn.daxpay.single.service.dto.order.pay.PayOrderDto;
-import cn.daxpay.single.service.dto.order.pay.PayOrderExtraDto;
 import cn.daxpay.single.service.param.order.PayOrderQuery;
-import cn.daxpay.single.util.OrderNoGenerateUtil;
+import cn.daxpay.single.core.util.OrderNoGenerateUtil;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.tags.Tag;
 import lombok.RequiredArgsConstructor;
@@ -41,7 +38,6 @@ import org.springframework.web.bind.annotation.RestController;
 @RequiredArgsConstructor
 public class PayOrderController {
     private final PayOrderQueryService queryService;
-    private final PayOrderExtraService payOrderExtraService;
     private final PayCloseService payCloseService;
 
 
@@ -65,20 +61,11 @@ public class PayOrderController {
 
     @Operation(summary = "查询订单详情")
     @GetMapping("/findByOrderNo")
-    public ResResult<PayOrderAndExtraDto> findByOrderNo(String orderNo){
+    public ResResult<PayOrderDto> findByOrderNo(String orderNo){
         PayOrderDto order = queryService.findByOrderNo(orderNo)
                 .map(PayOrder::toDto)
                 .orElseThrow(() -> new DataNotExistException("支付订单不存在"));
-        PayOrderAndExtraDto detailDto=new PayOrderAndExtraDto();
-        detailDto.setPayOrder(order);
-        detailDto.setPayOrderExtra(payOrderExtraService.findById(order.getId()));
-        return Res.ok(detailDto);
-    }
-
-    @Operation(summary = "查询支付订单扩展信息")
-    @GetMapping("/getExtraById")
-    public ResResult<PayOrderExtraDto> getExtraById(Long id){
-        return Res.ok(payOrderExtraService.findById(id));
+        return Res.ok(order);
     }
 
     @Operation(summary = "同步支付状态")
@@ -104,7 +91,7 @@ public class PayOrderController {
     public ResResult<Void> allocation(String orderNo){
         AllocationParam param = new AllocationParam();
         param.setOrderNo(orderNo);
-        param.setBizAllocationNo(OrderNoGenerateUtil.allocation());
+        param.setBizAllocNo(OrderNoGenerateUtil.allocation());
         allocationService.allocation(param);
         return Res.ok();
     }
diff --git a/daxpay-single/daxpay-single-admin/src/main/java/cn/daxpay/single/admin/controller/order/ReconcileOrderController.java b/daxpay-single/daxpay-single-admin/src/main/java/cn/daxpay/single/admin/controller/order/ReconcileOrderController.java
index 8b0d026006c5020792e11a121def4f50113cd4a2..8a1151c4746e087c01366af1a900d711eff63d97 100644
--- a/daxpay-single/daxpay-single-admin/src/main/java/cn/daxpay/single/admin/controller/order/ReconcileOrderController.java
+++ b/daxpay-single/daxpay-single-admin/src/main/java/cn/daxpay/single/admin/controller/order/ReconcileOrderController.java
@@ -24,7 +24,7 @@ import org.springframework.web.multipart.MultipartFile;
  * @author xxm
  * @since 2024/1/18
  */
-@Tag(name = "对账控制器")
+@Tag(name = "对账订单控制器")
 @RestController
 @RequestMapping("/order/reconcile")
 @RequiredArgsConstructor
diff --git a/daxpay-single/daxpay-single-admin/src/main/java/cn/daxpay/single/admin/controller/order/RefundOrderController.java b/daxpay-single/daxpay-single-admin/src/main/java/cn/daxpay/single/admin/controller/order/RefundOrderController.java
index d0f6ec803d055d46cdf0455e204672c62479ce08..3be57996c619883ee3c4f162ea1cc2395c8e682f 100644
--- a/daxpay-single/daxpay-single-admin/src/main/java/cn/daxpay/single/admin/controller/order/RefundOrderController.java
+++ b/daxpay-single/daxpay-single-admin/src/main/java/cn/daxpay/single/admin/controller/order/RefundOrderController.java
@@ -4,17 +4,14 @@ import cn.bootx.platform.common.core.rest.PageResult;
 import cn.bootx.platform.common.core.rest.Res;
 import cn.bootx.platform.common.core.rest.ResResult;
 import cn.bootx.platform.common.core.rest.param.PageParam;
-import cn.daxpay.single.code.PaymentApiCode;
-import cn.daxpay.single.param.payment.refund.RefundSyncParam;
-import cn.daxpay.single.result.sync.RefundSyncResult;
+import cn.daxpay.single.core.code.PaymentApiCode;
+import cn.daxpay.single.core.param.payment.refund.RefundSyncParam;
+import cn.daxpay.single.core.result.sync.RefundSyncResult;
 import cn.daxpay.single.service.annotation.InitPaymentContext;
 import cn.daxpay.single.service.core.order.refund.service.RefundOrderQueryService;
 import cn.daxpay.single.service.core.order.refund.service.RefundOrderService;
 import cn.daxpay.single.service.core.payment.sync.service.RefundSyncService;
-import cn.daxpay.single.service.dto.order.refund.RefundOrderAndExtraDto;
 import cn.daxpay.single.service.dto.order.refund.RefundOrderDto;
-import cn.daxpay.single.service.dto.order.refund.RefundOrderExtraDto;
-import cn.daxpay.single.service.param.order.PayOrderQuery;
 import cn.daxpay.single.service.param.order.PayOrderRefundParam;
 import cn.daxpay.single.service.param.order.RefundOrderQuery;
 import io.swagger.v3.oas.annotations.Operation;
@@ -27,7 +24,7 @@ import org.springframework.web.bind.annotation.*;
  * @author xxm
  * @since 2024/1/9
  */
-@Tag(name = "支付退款控制器")
+@Tag(name = "退款订单控制器")
 @RestController
 @RequestMapping("/order/refund")
 @RequiredArgsConstructor
@@ -45,12 +42,8 @@ public class RefundOrderController {
 
     @Operation(summary = "查询退款订单详情")
     @GetMapping("/findByRefundNo")
-    public ResResult<RefundOrderAndExtraDto> findByRefundNo(String refundNo){
-        RefundOrderDto order = queryService.findByRefundNo(refundNo);
-        RefundOrderAndExtraDto detailDto = new RefundOrderAndExtraDto();
-        detailDto.setRefundOrder(order);
-        detailDto.setRefundOrderExtra(queryService.findExtraById(order.getId()));
-        return Res.ok(detailDto);
+    public ResResult<RefundOrderDto> findByRefundNo(String refundNo){
+        return Res.ok(queryService.findByRefundNo(refundNo));
     }
     @Operation(summary = "查询单条")
     @GetMapping("/findById")
@@ -59,12 +52,6 @@ public class RefundOrderController {
     }
 
 
-    @Operation(summary = "查询扩展信息")
-    @GetMapping("/findExtraById")
-    public ResResult<RefundOrderExtraDto> findExtraById(Long id){
-        return Res.ok(queryService.findExtraById(id));
-    }
-
     @InitPaymentContext(PaymentApiCode.REFUND)
     @Operation(summary = "手动发起退款")
     @PostMapping("/refund")
@@ -81,6 +68,7 @@ public class RefundOrderController {
         return Res.ok();
     }
 
+    @InitPaymentContext(PaymentApiCode.SYNC_REFUND)
     @Operation(summary = "退款同步")
     @PostMapping("/syncByRefundNo")
     public ResResult<RefundSyncResult> syncByRefundNo(String refundNo){
@@ -91,7 +79,7 @@ public class RefundOrderController {
 
     @Operation(summary = "查询金额汇总")
     @GetMapping("/getTotalAmount")
-    public ResResult<Integer> getTotalAmount(PayOrderQuery param){
+    public ResResult<Integer> getTotalAmount(RefundOrderQuery param){
         return Res.ok(queryService.getTotalAmount(param));
     }
 }
diff --git a/daxpay-single/daxpay-single-admin/src/main/java/cn/daxpay/single/admin/controller/order/TransferOrderController.java b/daxpay-single/daxpay-single-admin/src/main/java/cn/daxpay/single/admin/controller/order/TransferOrderController.java
new file mode 100644
index 0000000000000000000000000000000000000000..f019f281664ae6b4e2a46aace3af968934085b4c
--- /dev/null
+++ b/daxpay-single/daxpay-single-admin/src/main/java/cn/daxpay/single/admin/controller/order/TransferOrderController.java
@@ -0,0 +1,89 @@
+package cn.daxpay.single.admin.controller.order;
+
+import cn.bootx.platform.common.core.rest.PageResult;
+import cn.bootx.platform.common.core.rest.Res;
+import cn.bootx.platform.common.core.rest.ResResult;
+import cn.bootx.platform.common.core.rest.param.PageParam;
+import cn.bootx.platform.common.core.util.ValidationUtil;
+import cn.daxpay.single.core.code.PaymentApiCode;
+import cn.daxpay.single.core.param.payment.transfer.TransferParam;
+import cn.daxpay.single.core.result.transfer.TransferResult;
+import cn.daxpay.single.service.annotation.InitPaymentContext;
+import cn.daxpay.single.service.core.order.transfer.service.TransferOrderQueryService;
+import cn.daxpay.single.service.core.payment.transfer.service.TransferService;
+import cn.daxpay.single.service.dto.order.transfer.TransferOrderDto;
+import cn.daxpay.single.service.param.order.TransferOrderQuery;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import lombok.RequiredArgsConstructor;
+import org.springframework.web.bind.annotation.*;
+
+import java.time.LocalDateTime;
+
+/**
+ * 转账订单控制器
+ * @author xxm
+ * @since 2024/6/17
+ */
+@Tag(name = "转账订单控制器")
+@RestController
+@RequestMapping("/order/transfer")
+@RequiredArgsConstructor
+public class TransferOrderController {
+    private final TransferOrderQueryService queryService;
+    private final TransferService transferService;
+
+
+    @Operation(summary = "分页查询")
+    @GetMapping("/page")
+    public ResResult<PageResult<TransferOrderDto>> page(PageParam pageParam, TransferOrderQuery query){
+        return Res.ok(queryService.page(pageParam, query));
+    }
+
+    @Operation(summary = "根据转账号查询")
+    @GetMapping("/findByTransferNo")
+    public ResResult<TransferOrderDto> findByTransferNo(String refundNo){
+        return Res.ok(queryService.findByTransferNo(refundNo));
+    }
+
+    @Operation(summary = "根据商户转账号查询")
+    @GetMapping("/findByBizTransferNo")
+    public ResResult<TransferOrderDto> findByBizTransferNo(String bizTransferNo){
+        return Res.ok(queryService.findByBizTransferNo(bizTransferNo));
+    }
+
+    @Operation(summary = "查询单条")
+    @GetMapping("/findById")
+    public ResResult<TransferOrderDto> findById(Long id){
+        return Res.ok(queryService.findById(id));
+    }
+
+
+    @InitPaymentContext(PaymentApiCode.TRANSFER)
+    @Operation(summary = "手动发起转账")
+    @PostMapping("/transfer")
+    public ResResult<TransferResult> transfer(@RequestBody TransferParam param){
+        param.setReqTime(LocalDateTime.now());
+        ValidationUtil.validateParam(param);
+        return Res.ok(transferService.transfer(param));
+    }
+
+    @InitPaymentContext(PaymentApiCode.TRANSFER)
+    @Operation(summary = "重新发起转账")
+    @PostMapping("/resetTransfer")
+    public ResResult<Void> resetTransfer(Long id){
+        return Res.ok();
+    }
+
+    @Operation(summary = "手动转账同步")
+    @PostMapping("/syncByTransferNo")
+    public ResResult<Void> syncByTransferNo(String transferNo){
+        return Res.ok();
+    }
+
+    @Operation(summary = "查询金额汇总")
+    @GetMapping("/getTotalAmount")
+    public ResResult<Integer> getTotalAmount(TransferOrderQuery param){
+        return Res.ok(queryService.getTotalAmount(param));
+    }
+}
diff --git a/daxpay-single/daxpay-single-admin/src/main/java/cn/daxpay/single/admin/controller/system/PayApiConfigController.java b/daxpay-single/daxpay-single-admin/src/main/java/cn/daxpay/single/admin/controller/system/PayApiConfigController.java
index c95d059459646517b3a4ecb698386a688f24799c..3f420decfc92677b1584fd239093516aa8d91870 100644
--- a/daxpay-single/daxpay-single-admin/src/main/java/cn/daxpay/single/admin/controller/system/PayApiConfigController.java
+++ b/daxpay-single/daxpay-single-admin/src/main/java/cn/daxpay/single/admin/controller/system/PayApiConfigController.java
@@ -2,6 +2,7 @@ package cn.daxpay.single.admin.controller.system;
 
 import cn.bootx.platform.common.core.rest.Res;
 import cn.bootx.platform.common.core.rest.ResResult;
+import cn.bootx.platform.common.core.util.ValidationUtil;
 import cn.daxpay.single.service.core.system.config.service.PayApiConfigService;
 import cn.daxpay.single.service.dto.system.config.PayApiConfigDto;
 import cn.daxpay.single.service.param.system.config.PayApiConfigParam;
@@ -37,6 +38,7 @@ public class PayApiConfigController {
     @Operation(summary = "更新")
     @PostMapping("/update")
     public ResResult<Void> update(@RequestBody PayApiConfigParam param){
+        ValidationUtil.validateParam(param);
         payApiConfigService.update(param);
         return Res.ok();
     }
diff --git a/daxpay-single/daxpay-single-admin/src/main/java/cn/daxpay/single/admin/controller/system/PayChannelConfigController.java b/daxpay-single/daxpay-single-admin/src/main/java/cn/daxpay/single/admin/controller/system/PayChannelConfigController.java
index 7389d4f1877e283ce4900ca0a177b5526fe44a0a..67bbccaacf93c0a4da1afb806a57d32e08ca02b2 100644
--- a/daxpay-single/daxpay-single-admin/src/main/java/cn/daxpay/single/admin/controller/system/PayChannelConfigController.java
+++ b/daxpay-single/daxpay-single-admin/src/main/java/cn/daxpay/single/admin/controller/system/PayChannelConfigController.java
@@ -4,11 +4,12 @@ import cn.bootx.platform.common.core.rest.Res;
 import cn.bootx.platform.common.core.rest.ResResult;
 import cn.daxpay.single.service.core.system.config.service.PayChannelConfigService;
 import cn.daxpay.single.service.dto.system.config.PayChannelConfigDto;
-import cn.daxpay.single.service.param.system.payinfo.PayChannelInfoParam;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.tags.Tag;
 import lombok.RequiredArgsConstructor;
-import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
 
 import java.util.List;
 
@@ -36,11 +37,4 @@ public class PayChannelConfigController {
     public ResResult<PayChannelConfigDto> findById(Long id){
         return Res.ok(payChannelConfigService.findById(id));
     }
-
-    @Operation(summary = "更新")
-    @PostMapping("/update")
-    public ResResult<Void> update(@RequestBody PayChannelInfoParam param){
-        payChannelConfigService.update(param);
-        return Res.ok();
-    }
 }
diff --git a/daxpay-single/daxpay-single-admin/src/main/java/cn/daxpay/single/admin/controller/system/PayMethodInfoController.java b/daxpay-single/daxpay-single-admin/src/main/java/cn/daxpay/single/admin/controller/system/PayMethodInfoController.java
index 886e71d74fe899f966f3aab6d05a5a79bc6bc24b..8ed5c400a28b155f9ac603479e2a8f0c5d6c060f 100644
--- a/daxpay-single/daxpay-single-admin/src/main/java/cn/daxpay/single/admin/controller/system/PayMethodInfoController.java
+++ b/daxpay-single/daxpay-single-admin/src/main/java/cn/daxpay/single/admin/controller/system/PayMethodInfoController.java
@@ -2,6 +2,7 @@ package cn.daxpay.single.admin.controller.system;
 
 import cn.bootx.platform.common.core.rest.Res;
 import cn.bootx.platform.common.core.rest.ResResult;
+import cn.bootx.platform.common.core.util.ValidationUtil;
 import cn.daxpay.single.service.core.system.payinfo.service.PayMethodInfoService;
 import cn.daxpay.single.service.dto.system.payinfo.PayMethodInfoDto;
 import cn.daxpay.single.service.param.system.payinfo.PayWayInfoParam;
@@ -39,6 +40,7 @@ public class PayMethodInfoController {
     @Operation(summary = "更新")
     @PostMapping("/update")
     public ResResult<Void> update(@RequestBody PayWayInfoParam param){
+        ValidationUtil.validateParam(param);
         payMethodInfoService.update(param);
         return Res.ok();
     }
diff --git a/daxpay-single/daxpay-single-admin/src/main/java/cn/daxpay/single/admin/controller/system/PlatformConfigController.java b/daxpay-single/daxpay-single-admin/src/main/java/cn/daxpay/single/admin/controller/system/PlatformConfigController.java
index 4a370306e9eef03fff93e5221d3666c549ee1130..2868efe0b12a7327ac7c26a0dac3ace48db08a4b 100644
--- a/daxpay-single/daxpay-single-admin/src/main/java/cn/daxpay/single/admin/controller/system/PlatformConfigController.java
+++ b/daxpay-single/daxpay-single-admin/src/main/java/cn/daxpay/single/admin/controller/system/PlatformConfigController.java
@@ -2,6 +2,7 @@ package cn.daxpay.single.admin.controller.system;
 
 import cn.bootx.platform.common.core.rest.Res;
 import cn.bootx.platform.common.core.rest.ResResult;
+import cn.bootx.platform.common.core.util.ValidationUtil;
 import cn.daxpay.single.service.core.system.config.service.PlatformConfigService;
 import cn.daxpay.single.service.dto.system.config.PlatformConfigDto;
 import cn.daxpay.single.service.param.system.config.PlatformConfigParam;
@@ -31,6 +32,7 @@ public class PlatformConfigController {
     @Operation(summary = "更新平台配置项")
     @PostMapping("/update")
     public ResResult<Void> update(@RequestBody PlatformConfigParam param){
+        ValidationUtil.validateParam(param);
         platformConfigService.update(param);
         return Res.ok();
     }
diff --git a/daxpay-single/daxpay-single-admin/src/main/java/cn/daxpay/single/admin/controller/system/WechatNoticeConfigController.java b/daxpay-single/daxpay-single-admin/src/main/java/cn/daxpay/single/admin/controller/system/WechatNoticeConfigController.java
deleted file mode 100644
index e8b71be314dd65c3c28583f8b729c62589b094c4..0000000000000000000000000000000000000000
--- a/daxpay-single/daxpay-single-admin/src/main/java/cn/daxpay/single/admin/controller/system/WechatNoticeConfigController.java
+++ /dev/null
@@ -1,37 +0,0 @@
-package cn.daxpay.single.admin.controller.system;
-
-import cn.bootx.platform.common.core.rest.Res;
-import cn.bootx.platform.common.core.rest.ResResult;
-import cn.daxpay.single.service.core.system.config.service.WechatNoticeConfigService;
-import cn.daxpay.single.service.dto.system.config.WechatNoticeConfigDto;
-import cn.daxpay.single.service.param.system.config.WechatNoticeConfigParam;
-import io.swagger.v3.oas.annotations.Operation;
-import io.swagger.v3.oas.annotations.tags.Tag;
-import lombok.RequiredArgsConstructor;
-import org.springframework.web.bind.annotation.*;
-
-/**
- * 微信消息通知配置
- * @author xxm
- * @since 2024/1/2
- */
-@Tag(name = "微信消息通知配置")
-@RestController
-@RequestMapping("/wx/notice")
-@RequiredArgsConstructor
-public class WechatNoticeConfigController {
-    private final WechatNoticeConfigService configService;
-
-    @Operation(summary = "获取微信消息通知配置")
-    @GetMapping("/getConfig")
-    public ResResult<WechatNoticeConfigDto> getConfig() {
-        return Res.ok(configService.getConfig().toDto());
-    }
-
-    @Operation(summary = "更新微信消息通知配置")
-    @PostMapping("/update")
-    public ResResult<Void> update(@RequestBody WechatNoticeConfigParam param) {
-        configService.update(param);
-        return Res.ok();
-    }
-}
diff --git a/daxpay-single/daxpay-single-core/pom.xml b/daxpay-single/daxpay-single-core/pom.xml
index b65ca6223e43c4cc70da4f739bff208b4d336d1d..f42fae8ae52a35e5fafde43a95b4cd324fb44206 100644
--- a/daxpay-single/daxpay-single-core/pom.xml
+++ b/daxpay-single/daxpay-single-core/pom.xml
@@ -6,7 +6,7 @@
     <parent>
         <groupId>cn.daxpay.single</groupId>
         <artifactId>daxpay-single</artifactId>
-        <version>2.0.7</version>
+        <version>2.0.8</version>
     </parent>
 
     <artifactId>daxpay-single-core</artifactId>
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/code/DaxPayCode.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/code/DaxPayCode.java
deleted file mode 100644
index 5e133eda72c51b4a10c95dea3f526f04d42aa1f0..0000000000000000000000000000000000000000
--- a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/code/DaxPayCode.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package cn.daxpay.single.code;
-
-/**
- * 支付系统相关常量
- * @author xxm
- * @since 2024/1/7
- */
-public interface DaxPayCode {
-
-    /** 签名字段 */
-    String FIELD_SIGN  = "sign";
-}
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/code/DaxPayErrorCode.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/code/DaxPayErrorCode.java
deleted file mode 100644
index cc72742d5f752dfd69e0a91e4457577d707c5138..0000000000000000000000000000000000000000
--- a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/code/DaxPayErrorCode.java
+++ /dev/null
@@ -1,77 +0,0 @@
-package cn.daxpay.single.code;
-
-/**
- * 错误码
- *
- * @author xxm
- * @since 2020/12/7
- */
-public interface DaxPayErrorCode {
-
-    /**
-     * 支付失败
-     */
-    int PAY_FAILURE = 20000;
-
-    /**
-     * 支付金额异常
-     */
-    int PAYMENT_AMOUNT_ABNORMAL = 28100;
-
-    /**
-     * 支付记录不存在
-     */
-    int PAYMENT_RECORD_NOT_EXISTED = 28101;
-
-    /**
-     * 支付在进行中
-     */
-    int PAYMENT_IS_PROCESSING = 28102;
-
-    /**
-     * 支付已经存在
-     */
-    int PAYMENT_HAS_EXISTED = 28104;
-
-    /**
-     * 支付手动取消
-     */
-    int PAYMENT_CANCEL = 28105;
-
-    /**
-     * 不支持的支付方式
-     */
-    int PAYMENT_METHOD_UNSUPPORT = 28106;
-    /**
-     * 钱包已存在
-     */
-    int WALLET_ALREADY_EXISTS = 28814;
-
-    /**
-     * 钱包不存在
-     */
-    int WALLET_NOT_EXISTS = 28815;
-
-    /**
-     * 钱包已被禁用
-     */
-    int WALLET_BANNED = 28816;
-
-    /**
-     * 钱包余额不足
-     */
-    int WALLET_BALANCE_NOT_ENOUGH = 28817;
-
-    /**
-     * wallet 信息不存在
-     */
-    int WALLET_INFO_NOT_EXISTS = 28819;
-
-    /**
-     * 钱包日志异常(类型不正确,或者充值金额小于0等场景)
-     */
-    int WALLET_LOG_ERROR = 28827;
-
-
-
-}
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/code/AllocDetailResultEnum.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/code/AllocDetailResultEnum.java
similarity index 92%
rename from daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/code/AllocDetailResultEnum.java
rename to daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/code/AllocDetailResultEnum.java
index 867eaf7e2c2d5b4f82acd93a02019cd76f24eb51..2bd76538bcde2ab0811cd606fe658e3ee3e8dc10 100644
--- a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/code/AllocDetailResultEnum.java
+++ b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/code/AllocDetailResultEnum.java
@@ -1,4 +1,4 @@
-package cn.daxpay.single.code;
+package cn.daxpay.single.core.code;
 
 import lombok.AllArgsConstructor;
 import lombok.Getter;
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/code/AllocOrderResultEnum.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/code/AllocOrderResultEnum.java
similarity index 92%
rename from daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/code/AllocOrderResultEnum.java
rename to daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/code/AllocOrderResultEnum.java
index f24217b868e329ab69254b22f8b9cf02ee497404..b965bf080c26a0f5003952cab81373670e3b6540 100644
--- a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/code/AllocOrderResultEnum.java
+++ b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/code/AllocOrderResultEnum.java
@@ -1,4 +1,4 @@
-package cn.daxpay.single.code;
+package cn.daxpay.single.core.code;
 
 import lombok.AllArgsConstructor;
 import lombok.Getter;
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/code/AllocOrderStatusEnum.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/code/AllocOrderStatusEnum.java
similarity index 94%
rename from daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/code/AllocOrderStatusEnum.java
rename to daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/code/AllocOrderStatusEnum.java
index f7efa97adc1ffc7546b4ac51ce9ef121f3712461..f14c8e96ec029d567f8a443595b2beef6d3b8b1a 100644
--- a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/code/AllocOrderStatusEnum.java
+++ b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/code/AllocOrderStatusEnum.java
@@ -1,4 +1,4 @@
-package cn.daxpay.single.code;
+package cn.daxpay.single.core.code;
 
 import lombok.AllArgsConstructor;
 import lombok.Getter;
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/code/AllocReceiverTypeEnum.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/code/AllocReceiverTypeEnum.java
similarity index 81%
rename from daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/code/AllocReceiverTypeEnum.java
rename to daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/code/AllocReceiverTypeEnum.java
index 944a3280a08e9c2952dd6beb4de820ec1dfe26af..444a779e6fc80ff68e05647cb1aa58e0339646ce 100644
--- a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/code/AllocReceiverTypeEnum.java
+++ b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/code/AllocReceiverTypeEnum.java
@@ -1,5 +1,6 @@
-package cn.daxpay.single.code;
+package cn.daxpay.single.core.code;
 
+import cn.daxpay.single.core.exception.UnsupportedAbilityException;
 import lombok.AllArgsConstructor;
 import lombok.Getter;
 
@@ -18,13 +19,13 @@ public enum AllocReceiverTypeEnum {
     /** 个人 */
     WX_PERSONAL("wx_personal","PERSONAL_OPENID", "个人"),
     /** 商户 */
-    WX_MERCHANT("wx_merchant","MERCHANT_ID", "商户"),
+    WX_MERCHANT("wx_merchant","MERCHANT_ID", "商户号"),
 
     /** userId 以2088开头的纯16位数字 */
     ALI_USER_ID("ali_user_id","userId", "用户ID"),
     /** openId  */
     ALI_OPEN_ID("ali_open_id","openId", "openId"),
-    /** 账号 */
+    /** 账号 支持邮箱和手机号格式 */
     ALI_LOGIN_NAME("ali_login_name","loginName", "账号");
 
     /** 编码 */
@@ -41,7 +42,7 @@ public enum AllocReceiverTypeEnum {
         return Arrays.stream(AllocReceiverTypeEnum.values())
                 .filter(e -> e.getCode().equals(code))
                 .findFirst()
-                .orElseThrow(() -> new IllegalArgumentException("未找到对应的分账接收方类型"));
+                .orElseThrow(() -> new UnsupportedAbilityException("未找到对应的分账接收方类型"));
     }
 
     /** 微信支持类型 */
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/code/AllocRelationTypeEnum.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/code/AllocRelationTypeEnum.java
similarity index 94%
rename from daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/code/AllocRelationTypeEnum.java
rename to daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/code/AllocRelationTypeEnum.java
index e141dd142f22e64ccda546577044b59346948bca..64f731aa26f0e73895f7c42121aecf17734a72e0 100644
--- a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/code/AllocRelationTypeEnum.java
+++ b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/code/AllocRelationTypeEnum.java
@@ -1,4 +1,4 @@
-package cn.daxpay.single.code;
+package cn.daxpay.single.core.code;
 
 import lombok.AllArgsConstructor;
 import lombok.Getter;
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/code/DaxPayErrorCode.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/code/DaxPayErrorCode.java
new file mode 100644
index 0000000000000000000000000000000000000000..b2064340bffa30f4c9b223b57bf9226323a48858
--- /dev/null
+++ b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/code/DaxPayErrorCode.java
@@ -0,0 +1,74 @@
+package cn.daxpay.single.core.code;
+
+/**
+ * 公共错误码
+ * @author xxm
+ * @since 2024/6/17
+ */
+public interface DaxPayErrorCode {
+    /** 未归类的错误 */
+    int UNCLASSIFIED_ERROR = 20000;
+
+    /** 不存在的支付通道 */
+    int CHANNEL_NOT_EXIST = 20011;
+
+    /** 不存在的支付方式 */
+    int METHOD_NOT_EXIST = 20012;
+
+    /** 不存在的状态 */
+    int STATUS_NOT_EXIST = 20013;
+
+    /** 支付通道未启用 */
+    int CHANNEL_NOT_ENABLE = 20021;
+
+    /** 支付方式未启用 */
+    int METHOD_NOT_ENABLE = 20022;
+
+    /** 配置未启用 */
+    int CONFIG_NOT_ENABLE = 20023;
+
+    /** 配置错误 */
+    int CONFIG_ERROR = 20024;
+
+    /** 不支持该能力 */
+    int UNSUPPORTED_ABILITY = 20030;
+
+    /** 交易不存在 */
+    int TRADE_NOT_EXIST = 20041;
+
+    /** 交易已关闭 */
+    int TRADE_CLOSED = 20042;
+
+    /** 交易处理中, 请勿重复操作 */
+    int TRADE_PROCESSING = 20043;
+
+    /** 交易状态错误 */
+    int TRADE_STATUS_ERROR = 20044;
+
+    /** 交易失败 */
+    int TRADE_FAIL = 20045;
+
+    /** 验签失败 */
+    int VERIFY_SIGN_FAILED = 20052;
+
+    /** 金额超过限额 */
+    int AMOUNT_EXCEED_LIMIT = 20060;
+
+    /** 对账失败 */
+    int RECONCILE_FAIL = 20071;
+
+    /** 操作失败 */
+    int OPERATION_FAIL = 20080;
+
+    /** 操作处理中, 请勿重复操作 */
+    int OPERATION_PROCESSING = 20081;
+
+    /** 不支持的操作 */
+    int OPERATION_UNSUPPORTED = 20082;
+
+    /** 数据错误 */
+    int DATA_ERROR = 20091;
+
+    /** 未知异常,系统无法处理 */
+    int SYSTEM_UNKNOWN_ERROR = 30000;
+}
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/code/PayChannelEnum.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/code/PayChannelEnum.java
similarity index 80%
rename from daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/code/PayChannelEnum.java
rename to daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/code/PayChannelEnum.java
index c679ee28807526fa1825d8f93b0e89c7ded1122b..e3af88567465f70a1290e23e8cb94b03a5f95100 100644
--- a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/code/PayChannelEnum.java
+++ b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/code/PayChannelEnum.java
@@ -1,6 +1,6 @@
-package cn.daxpay.single.code;
+package cn.daxpay.single.core.code;
 
-import cn.daxpay.single.exception.pay.PayFailureException;
+import cn.daxpay.single.core.exception.ChannelNotExistException;
 import lombok.Getter;
 import lombok.RequiredArgsConstructor;
 
@@ -36,7 +36,7 @@ public enum PayChannelEnum {
         return Arrays.stream(values())
             .filter(e -> Objects.equals(code, e.getCode()))
             .findFirst()
-            .orElseThrow(() -> new PayFailureException("不存在的支付通道"));
+            .orElseThrow(() -> new ChannelNotExistException("不存在的支付通道"));
     }
 
 }
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/code/PayMethodEnum.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/code/PayMethodEnum.java
similarity index 82%
rename from daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/code/PayMethodEnum.java
rename to daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/code/PayMethodEnum.java
index 983528b0cef8d8e8f6ae981454581e6cac99db56..b3b9d593b0aeefef61bf1ca2f339ceb7f0345d38 100644
--- a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/code/PayMethodEnum.java
+++ b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/code/PayMethodEnum.java
@@ -1,6 +1,6 @@
-package cn.daxpay.single.code;
+package cn.daxpay.single.core.code;
 
-import cn.daxpay.single.exception.pay.PayFailureException;
+import cn.daxpay.single.core.exception.MethodNotExistException;
 import lombok.AllArgsConstructor;
 import lombok.Getter;
 
@@ -40,7 +40,7 @@ public enum PayMethodEnum {
         return Arrays.stream(PayMethodEnum.values())
             .filter(e -> Objects.equals(code, e.getCode()))
             .findFirst()
-            .orElseThrow(() -> new PayFailureException("不存在的支付方式"));
+            .orElseThrow(() -> new MethodNotExistException("不存在的支付方式"));
     }
 
 }
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/code/PayOrderAllocStatusEnum.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/code/PayOrderAllocStatusEnum.java
similarity index 81%
rename from daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/code/PayOrderAllocStatusEnum.java
rename to daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/code/PayOrderAllocStatusEnum.java
index 9cd556834f369dfbfffdb8bb8769dd3dfe9aac16..35f71e0887df0020ea2ffaa3462fb3dd43dcaf63 100644
--- a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/code/PayOrderAllocStatusEnum.java
+++ b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/code/PayOrderAllocStatusEnum.java
@@ -1,10 +1,10 @@
-package cn.daxpay.single.code;
+package cn.daxpay.single.core.code;
 
 import lombok.AllArgsConstructor;
 import lombok.Getter;
 
 /**
- * 支付订单分账状态
+ * 支付订单的分账状态
  * @author xxm
  * @since 2024/4/16
  */
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/code/PayOrderRefundStatusEnum.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/code/PayOrderRefundStatusEnum.java
new file mode 100644
index 0000000000000000000000000000000000000000..9106b2aaeffb9bbc5161e24ba128ed5a8ab8f54c
--- /dev/null
+++ b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/code/PayOrderRefundStatusEnum.java
@@ -0,0 +1,36 @@
+package cn.daxpay.single.core.code;
+
+import cn.bootx.platform.common.core.exception.DataNotExistException;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+import java.util.Arrays;
+import java.util.Objects;
+
+/**
+ * 支付订单的退款状态
+ * @author xxm
+ * @since 2024/6/7
+ */
+@Getter
+@AllArgsConstructor
+public enum PayOrderRefundStatusEnum {
+    NO_REFUND("no_refund","未退款"),
+    REFUNDING("refunding","退款中"),
+    PARTIAL_REFUND("partial_refund","部分退款"),
+    REFUNDED("refunded","全部退款"),
+    ;
+    private final String code;
+    private final String name;
+
+    /**
+     * 根据编码获取枚举
+     */
+    public static PayOrderRefundStatusEnum findByCode(String code){
+        return Arrays.stream(values())
+                .filter(payStatusEnum -> Objects.equals(payStatusEnum.getCode(), code))
+                .findFirst()
+                .orElseThrow(() -> new DataNotExistException("该枚举不存在"));
+    }
+
+}
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/code/PaySignTypeEnum.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/code/PaySignTypeEnum.java
similarity index 88%
rename from daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/code/PaySignTypeEnum.java
rename to daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/code/PaySignTypeEnum.java
index 150c05956beef77408d49aebd3097181fe4587d9..b955d3e25cf76bb260d659f392c13b452c036eea 100644
--- a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/code/PaySignTypeEnum.java
+++ b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/code/PaySignTypeEnum.java
@@ -1,4 +1,4 @@
-package cn.daxpay.single.code;
+package cn.daxpay.single.core.code;
 
 import lombok.AllArgsConstructor;
 import lombok.Getter;
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/code/PayStatusEnum.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/code/PayStatusEnum.java
similarity index 84%
rename from daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/code/PayStatusEnum.java
rename to daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/code/PayStatusEnum.java
index 87946d9d748d0a867eee775b17b6b429636a6bb5..bf0e18051a52e5d1adafdca48ad5a3742caa258b 100644
--- a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/code/PayStatusEnum.java
+++ b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/code/PayStatusEnum.java
@@ -1,4 +1,4 @@
-package cn.daxpay.single.code;
+package cn.daxpay.single.core.code;
 
 import cn.bootx.platform.common.core.exception.DataNotExistException;
 import lombok.Getter;
@@ -18,9 +18,7 @@ public enum PayStatusEnum {
     PROGRESS("progress","支付中"),
     SUCCESS("success","成功"),
     CLOSE("close","支付关闭"),
-    REFUNDING("refunding","退款中"),
-    PARTIAL_REFUND("partial_refund","部分退款"),
-    REFUNDED("refunded","全部退款"),
+    CANCEL("cancel","支付撤销"),
     FAIL("fail","失败");
 
     /** 编码 */
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/code/PaySyncStatusEnum.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/code/PaySyncStatusEnum.java
similarity index 87%
rename from daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/code/PaySyncStatusEnum.java
rename to daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/code/PaySyncStatusEnum.java
index 5eb24c6698738470ede76b0c11eb1fa78301e92a..a724911b11ecd6f11f6716cb47df2ecccb96c256 100644
--- a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/code/PaySyncStatusEnum.java
+++ b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/code/PaySyncStatusEnum.java
@@ -1,6 +1,6 @@
-package cn.daxpay.single.code;
+package cn.daxpay.single.core.code;
 
-import cn.daxpay.single.exception.pay.PayFailureException;
+import cn.daxpay.single.core.exception.TradeStatusErrorException;
 import lombok.AllArgsConstructor;
 import lombok.Getter;
 
@@ -40,6 +40,6 @@ public enum PaySyncStatusEnum {
         return Arrays.stream(values())
                 .filter(item -> Objects.equals(item.getCode(), code))
                 .findFirst()
-                .orElseThrow(() -> new PayFailureException("不存在的支付同步状态"));
+                .orElseThrow(() -> new TradeStatusErrorException("不存在的支付状态"));
     }
 }
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/code/PaymentApiCode.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/code/PaymentApiCode.java
similarity index 94%
rename from daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/code/PaymentApiCode.java
rename to daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/code/PaymentApiCode.java
index fbe8bd278e0b370bad43047dd487a6a5827a375d..e971bfa437bf54b718cde8522830e39e3a86929a 100644
--- a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/code/PaymentApiCode.java
+++ b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/code/PaymentApiCode.java
@@ -1,4 +1,4 @@
-package cn.daxpay.single.code;
+package cn.daxpay.single.core.code;
 
 /**
  * 支付接口编码清单
@@ -12,6 +12,8 @@ public interface PaymentApiCode {
     String REFUND = "refund";
     /** 关闭订单 */
     String CLOSE = "close";
+    /** 撤销订单 */
+    String CANCEL = "cancel";
     /** 分账 */
     String ALLOCATION = "allocation";
     /** 转账 */
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/code/ReconcileTradeEnum.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/code/ReconcileTradeEnum.java
similarity index 95%
rename from daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/code/ReconcileTradeEnum.java
rename to daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/code/ReconcileTradeEnum.java
index 9de4494a0915d03c5b81950f20cd7359044379b6..0b7c8546c690ce61b33eb403a7333c9c27b7b610 100644
--- a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/code/ReconcileTradeEnum.java
+++ b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/code/ReconcileTradeEnum.java
@@ -1,4 +1,4 @@
-package cn.daxpay.single.code;
+package cn.daxpay.single.core.code;
 
 import cn.bootx.platform.common.core.exception.DataNotExistException;
 import lombok.AllArgsConstructor;
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/code/RefundStatusEnum.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/code/RefundStatusEnum.java
similarity index 96%
rename from daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/code/RefundStatusEnum.java
rename to daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/code/RefundStatusEnum.java
index 76287b971a1f8c42da1365d60e84b666075cd835..162f388896041e35a43fb32480b2556b91619122 100644
--- a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/code/RefundStatusEnum.java
+++ b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/code/RefundStatusEnum.java
@@ -1,4 +1,4 @@
-package cn.daxpay.single.code;
+package cn.daxpay.single.core.code;
 
 import cn.bootx.platform.common.core.exception.DataNotExistException;
 import lombok.AllArgsConstructor;
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/code/RefundSyncStatusEnum.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/code/RefundSyncStatusEnum.java
similarity index 92%
rename from daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/code/RefundSyncStatusEnum.java
rename to daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/code/RefundSyncStatusEnum.java
index a8ab02bf036afc327ab804f016e8a964428e4960..cb2ca2bcdd488acdcc2f9fb987b4ea335470e61a 100644
--- a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/code/RefundSyncStatusEnum.java
+++ b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/code/RefundSyncStatusEnum.java
@@ -1,4 +1,4 @@
-package cn.daxpay.single.code;
+package cn.daxpay.single.core.code;
 
 import lombok.AllArgsConstructor;
 import lombok.Getter;
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/code/TransferPayeeTypeEnum.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/code/TransferPayeeTypeEnum.java
new file mode 100644
index 0000000000000000000000000000000000000000..af5633ce31f46ddeffdd5ec802d60c6cd764acd9
--- /dev/null
+++ b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/code/TransferPayeeTypeEnum.java
@@ -0,0 +1,50 @@
+package cn.daxpay.single.core.code;
+
+import cn.daxpay.single.core.exception.UnsupportedAbilityException;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * 转账接收方类型
+ * @author xxm
+ * @since 2024/4/1
+ */
+@Getter
+@AllArgsConstructor
+public enum TransferPayeeTypeEnum {
+    /** 微信 个人 */
+    WX_PERSONAL("wx_personal","openid", "OpenId"),
+    /** 支付宝 userId 以2088开头的纯16位数字 */
+    ALI_USER_ID("ali_user_id","ALIPAY_USER_ID", "用户ID"),
+    /** 支付宝 openId  */
+    ALI_OPEN_ID("ali_open_id","ALIPAY_OPEN_ID", "OpenId"),
+    /** 支付宝 账号 支持邮箱和手机号格式 */
+    ALI_LOGIN_NAME("ali_login_name","ALIPAY_LOGON_ID", "账号");
+
+    /** 编码 */
+    private final String code;
+    /** 外部编码, 三方支付系统使用的编码 */
+    private final String outCode;
+    /** 名称 */
+    private final String name;
+
+    /**
+     * 根据编码查找
+     */
+    public static TransferPayeeTypeEnum findByCode(String code) {
+        return Arrays.stream(TransferPayeeTypeEnum.values())
+                .filter(e -> e.getCode().equals(code))
+                .findFirst()
+                .orElseThrow(() -> new UnsupportedAbilityException("未找到对应的分账接收方类型"));
+    }
+
+    /** 微信支持类型 */
+    public static final List<TransferPayeeTypeEnum> WECHAT_LIST = Collections.singletonList(WX_PERSONAL);
+    /** 支付宝支持类型 */
+    public static final List<TransferPayeeTypeEnum> ALI_LIST = Collections.unmodifiableList(Arrays.asList(ALI_OPEN_ID, ALI_USER_ID, ALI_LOGIN_NAME));
+
+}
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/code/TransferStatusEnum.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/code/TransferStatusEnum.java
new file mode 100644
index 0000000000000000000000000000000000000000..72a1ce81141701bfad8ed64dc6397a95721c66de
--- /dev/null
+++ b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/code/TransferStatusEnum.java
@@ -0,0 +1,22 @@
+package cn.daxpay.single.core.code;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * 转账状态
+ * @author xxm
+ * @since 2024/6/11
+ */
+@Getter
+@AllArgsConstructor
+public enum TransferStatusEnum {
+
+    TRANSFERRING("transferring", "转账中"),
+    SUCCESS("success", "转账成功"),
+    FAIL("fail", "转账失败"),;
+
+    private final String code;
+    private final String name;
+
+}
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/code/TransferTypeEnum.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/code/TransferTypeEnum.java
new file mode 100644
index 0000000000000000000000000000000000000000..b7393ede8e2436890b737487cd9758c271be30c2
--- /dev/null
+++ b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/code/TransferTypeEnum.java
@@ -0,0 +1,26 @@
+package cn.daxpay.single.core.code;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * 转账类型 微信使用
+ * @author xxm
+ * @since 2024/6/6
+ */
+@Getter
+@AllArgsConstructor
+public enum TransferTypeEnum {
+    /** 转账给用户 */
+    USER("user", "转账给用户"),
+    /** 转账给员工 */
+    EMPLOYEE("employee", "转账给员工"),
+    /** 转账给合作伙 */
+    PARTNER("partner", "转账给合作伙"),
+    /** 转账给其他对象 */
+    OTHER("other", "转账给其他对象"),;
+
+    private final String code;
+    private final String name;
+
+}
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/exception/AmountExceedLimitException.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/exception/AmountExceedLimitException.java
new file mode 100644
index 0000000000000000000000000000000000000000..21d7da57fb3e65d9eb4fca59d89d39591cb58621
--- /dev/null
+++ b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/exception/AmountExceedLimitException.java
@@ -0,0 +1,19 @@
+package cn.daxpay.single.core.exception;
+
+import cn.daxpay.single.core.code.DaxPayErrorCode;
+
+/**
+ * 金额超过限额
+ * @author xxm
+ * @since 2024/6/17
+ */
+public class AmountExceedLimitException extends PayFailureException{
+
+    public AmountExceedLimitException(String message) {
+        super(DaxPayErrorCode.AMOUNT_EXCEED_LIMIT,message);
+    }
+
+    public AmountExceedLimitException() {
+        super(DaxPayErrorCode.AMOUNT_EXCEED_LIMIT,"金额超过限额");
+    }
+}
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/exception/ChannelNotEnableException.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/exception/ChannelNotEnableException.java
new file mode 100644
index 0000000000000000000000000000000000000000..14a8ffa73e7b528c1e896cc5ab6c49dd67e21418
--- /dev/null
+++ b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/exception/ChannelNotEnableException.java
@@ -0,0 +1,19 @@
+package cn.daxpay.single.core.exception;
+
+import cn.daxpay.single.core.code.DaxPayErrorCode;
+
+/**
+ * 支付通道未启用
+ * @author xxm
+ * @since 2024/6/17
+ */
+public class ChannelNotEnableException extends PayFailureException{
+
+    public ChannelNotEnableException(String message) {
+        super(DaxPayErrorCode.CHANNEL_NOT_ENABLE,message);
+    }
+
+    public ChannelNotEnableException() {
+        super(DaxPayErrorCode.CHANNEL_NOT_ENABLE,"支付通道未启用");
+    }
+}
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/exception/ChannelNotExistException.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/exception/ChannelNotExistException.java
new file mode 100644
index 0000000000000000000000000000000000000000..9ab1ad2b08317f790b805a359be5ff28f774fe36
--- /dev/null
+++ b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/exception/ChannelNotExistException.java
@@ -0,0 +1,19 @@
+package cn.daxpay.single.core.exception;
+
+import cn.daxpay.single.core.code.DaxPayErrorCode;
+
+/**
+ * 不存在的支付通道
+ * @author xxm
+ * @since 2024/6/17
+ */
+public class ChannelNotExistException extends PayFailureException{
+
+    public ChannelNotExistException(String message) {
+        super(DaxPayErrorCode.CHANNEL_NOT_EXIST,message);
+    }
+
+    public ChannelNotExistException() {
+        super(DaxPayErrorCode.CHANNEL_NOT_EXIST,"不存在的支付通道");
+    }
+}
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/exception/ConfigErrorException.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/exception/ConfigErrorException.java
new file mode 100644
index 0000000000000000000000000000000000000000..dca8ed46273ec5463de8f4c9db02d8dddc663736
--- /dev/null
+++ b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/exception/ConfigErrorException.java
@@ -0,0 +1,19 @@
+package cn.daxpay.single.core.exception;
+
+import cn.daxpay.single.core.code.DaxPayErrorCode;
+
+/**
+ * 配置错误
+ * @author xxm
+ * @since 2024/6/18
+ */
+public class ConfigErrorException extends PayFailureException{
+
+    public ConfigErrorException(String message) {
+        super(DaxPayErrorCode.CONFIG_ERROR,message);
+    }
+
+    public ConfigErrorException() {
+        super(DaxPayErrorCode.CONFIG_ERROR,"配置错误");
+    }
+}
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/exception/ConfigNotEnableException.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/exception/ConfigNotEnableException.java
new file mode 100644
index 0000000000000000000000000000000000000000..26f77e1e311d1930c6af5464c071b18c5ee03502
--- /dev/null
+++ b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/exception/ConfigNotEnableException.java
@@ -0,0 +1,19 @@
+package cn.daxpay.single.core.exception;
+
+import cn.daxpay.single.core.code.DaxPayErrorCode;
+
+/**
+ * 配置未启用
+ * @author xxm
+ * @since 2024/6/17
+ */
+public class ConfigNotEnableException extends PayFailureException{
+
+    public ConfigNotEnableException(String message) {
+        super(DaxPayErrorCode.CONFIG_NOT_ENABLE,message);
+    }
+
+    public ConfigNotEnableException() {
+        super(DaxPayErrorCode.CONFIG_NOT_ENABLE,"配置未启用");
+    }
+}
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/exception/DataErrorException.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/exception/DataErrorException.java
new file mode 100644
index 0000000000000000000000000000000000000000..c18f2eb5f26349e5d255483251e46069c3529733
--- /dev/null
+++ b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/exception/DataErrorException.java
@@ -0,0 +1,19 @@
+package cn.daxpay.single.core.exception;
+
+import cn.daxpay.single.core.code.DaxPayErrorCode;
+
+/**
+ * 数据错误
+ * @author xxm
+ * @since 2024/6/17
+ */
+public class DataErrorException extends PayFailureException{
+
+    public DataErrorException(String message) {
+        super(DaxPayErrorCode.DATA_ERROR,message);
+    }
+
+    public DataErrorException() {
+        super(DaxPayErrorCode.DATA_ERROR,"数据错误");
+    }
+}
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/exception/MethodNotEnableException.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/exception/MethodNotEnableException.java
new file mode 100644
index 0000000000000000000000000000000000000000..945c6c29d05d7633e0ea8ee59bea605fd82b5800
--- /dev/null
+++ b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/exception/MethodNotEnableException.java
@@ -0,0 +1,19 @@
+package cn.daxpay.single.core.exception;
+
+import cn.daxpay.single.core.code.DaxPayErrorCode;
+
+/**
+ * 支付方式未启用
+ * @author xxm
+ * @since 2024/6/17
+ */
+public class MethodNotEnableException extends PayFailureException{
+
+    public MethodNotEnableException(String message) {
+        super(DaxPayErrorCode.METHOD_NOT_ENABLE,message);
+    }
+
+    public MethodNotEnableException() {
+        super(DaxPayErrorCode.METHOD_NOT_ENABLE,"支付方式未启用");
+    }
+}
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/exception/MethodNotExistException.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/exception/MethodNotExistException.java
new file mode 100644
index 0000000000000000000000000000000000000000..706953721c11c0306723f9267db36b9cab1d559f
--- /dev/null
+++ b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/exception/MethodNotExistException.java
@@ -0,0 +1,19 @@
+package cn.daxpay.single.core.exception;
+
+import cn.daxpay.single.core.code.DaxPayErrorCode;
+
+/**
+ * 不存在的支付方式
+ * @author xxm
+ * @since 2024/6/17
+ */
+public class MethodNotExistException extends PayFailureException{
+
+    public MethodNotExistException(String message) {
+        super(DaxPayErrorCode.METHOD_NOT_EXIST,message);
+    }
+
+    public MethodNotExistException() {
+        super(DaxPayErrorCode.METHOD_NOT_EXIST,"不存在的支付方式");
+    }
+}
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/exception/OperationFailException.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/exception/OperationFailException.java
new file mode 100644
index 0000000000000000000000000000000000000000..1a0b97670bab75ac53b1c4b04b3600d3ec3ebdb2
--- /dev/null
+++ b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/exception/OperationFailException.java
@@ -0,0 +1,19 @@
+package cn.daxpay.single.core.exception;
+
+import cn.daxpay.single.core.code.DaxPayErrorCode;
+
+/**
+ * 操作失败
+ * @author xxm
+ * @since 2024/6/17
+ */
+public class OperationFailException extends PayFailureException{
+
+    public OperationFailException(String message) {
+        super(DaxPayErrorCode.OPERATION_FAIL,message);
+    }
+
+    public OperationFailException() {
+        super(DaxPayErrorCode.OPERATION_FAIL,"操作失败");
+    }
+}
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/exception/OperationProcessingException.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/exception/OperationProcessingException.java
new file mode 100644
index 0000000000000000000000000000000000000000..1339d84fd697edb578db200d563d4f686cbdd523
--- /dev/null
+++ b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/exception/OperationProcessingException.java
@@ -0,0 +1,19 @@
+package cn.daxpay.single.core.exception;
+
+import cn.daxpay.single.core.code.DaxPayErrorCode;
+
+/**
+ * 操作处理中, 请勿重复操作
+ * @author xxm
+ * @since 2024/6/17
+ */
+public class OperationProcessingException extends PayFailureException{
+
+    public OperationProcessingException(String message) {
+        super(DaxPayErrorCode.OPERATION_PROCESSING,message);
+    }
+
+    public OperationProcessingException() {
+        super(DaxPayErrorCode.OPERATION_PROCESSING,"操作处理中, 请勿重复操作");
+    }
+}
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/exception/OperationUnsupportedException.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/exception/OperationUnsupportedException.java
new file mode 100644
index 0000000000000000000000000000000000000000..4b17351331822ae35c80f5cf01f6b6e01abb039d
--- /dev/null
+++ b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/exception/OperationUnsupportedException.java
@@ -0,0 +1,19 @@
+package cn.daxpay.single.core.exception;
+
+import cn.daxpay.single.core.code.DaxPayErrorCode;
+
+/**
+ * 不支持的操作
+ * @author xxm
+ * @since 2024/6/17
+ */
+public class OperationUnsupportedException extends PayFailureException{
+
+    public OperationUnsupportedException(String message) {
+        super(DaxPayErrorCode.OPERATION_UNSUPPORTED,message);
+    }
+
+    public OperationUnsupportedException() {
+        super(DaxPayErrorCode.OPERATION_UNSUPPORTED,"不支持的操作");
+    }
+}
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/exception/pay/PayFailureException.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/exception/PayFailureException.java
similarity index 47%
rename from daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/exception/pay/PayFailureException.java
rename to daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/exception/PayFailureException.java
index ef1c502635bc49ab6ba8f7d926e65f9595e269f9..8e1ccf24b4ff41de1b27c911122b383f65adcc14 100644
--- a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/exception/pay/PayFailureException.java
+++ b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/exception/PayFailureException.java
@@ -1,7 +1,7 @@
-package cn.daxpay.single.exception.pay;
+package cn.daxpay.single.core.exception;
 
 import cn.bootx.platform.common.core.exception.BizException;
-import cn.daxpay.single.code.DaxPayErrorCode;
+import cn.daxpay.single.core.code.DaxPayErrorCode;
 
 /**
  * 支付错误
@@ -11,12 +11,17 @@ import cn.daxpay.single.code.DaxPayErrorCode;
  */
 public class PayFailureException extends BizException {
 
+
+    public PayFailureException(int code, String message) {
+        super(code, message);
+    }
+
     public PayFailureException(String message) {
-        super(DaxPayErrorCode.PAY_FAILURE, message);
+        super(DaxPayErrorCode.UNCLASSIFIED_ERROR, message);
     }
 
     public PayFailureException() {
-        super(DaxPayErrorCode.PAY_FAILURE, "支付失败");
+        super(DaxPayErrorCode.UNCLASSIFIED_ERROR, "支付失败");
     }
 
 }
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/exception/ReconciliationFailException.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/exception/ReconciliationFailException.java
new file mode 100644
index 0000000000000000000000000000000000000000..9b8c8fb8a7e3715f59dc75d06f1ea3ff7b4e4ce7
--- /dev/null
+++ b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/exception/ReconciliationFailException.java
@@ -0,0 +1,19 @@
+package cn.daxpay.single.core.exception;
+
+import cn.daxpay.single.core.code.DaxPayErrorCode;
+
+/**
+ * 对账失败
+ * @author xxm
+ * @since 2024/6/17
+ */
+public class ReconciliationFailException extends PayFailureException{
+
+    public ReconciliationFailException(String message) {
+        super(DaxPayErrorCode.RECONCILE_FAIL,message);
+    }
+
+    public ReconciliationFailException() {
+        super(DaxPayErrorCode.RECONCILE_FAIL,"对账失败");
+    }
+}
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/exception/StatusNotExistException.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/exception/StatusNotExistException.java
new file mode 100644
index 0000000000000000000000000000000000000000..64bf979910b4d4c39bbe86a0b7503f037cb5628f
--- /dev/null
+++ b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/exception/StatusNotExistException.java
@@ -0,0 +1,19 @@
+package cn.daxpay.single.core.exception;
+
+import cn.daxpay.single.core.code.DaxPayErrorCode;
+
+/**
+ * 不存在的状态
+ * @author xxm
+ * @since 2024/6/17
+ */
+public class StatusNotExistException extends PayFailureException{
+
+    public StatusNotExistException(String message) {
+        super(DaxPayErrorCode.STATUS_NOT_EXIST,message);
+    }
+
+    public StatusNotExistException() {
+        super(DaxPayErrorCode.STATUS_NOT_EXIST,"不存在的状态");
+    }
+}
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/exception/SystemUnknownErrorException.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/exception/SystemUnknownErrorException.java
new file mode 100644
index 0000000000000000000000000000000000000000..26a63692520c4e4d584fd19466ba5d1a0e2ef120
--- /dev/null
+++ b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/exception/SystemUnknownErrorException.java
@@ -0,0 +1,19 @@
+package cn.daxpay.single.core.exception;
+
+import cn.daxpay.single.core.code.DaxPayErrorCode;
+
+/**
+ * 未知异常,系统无法处理
+ * @author xxm
+ * @since 2024/6/17
+ */
+public class SystemUnknownErrorException extends PayFailureException{
+
+    public SystemUnknownErrorException(String message) {
+        super(DaxPayErrorCode.SYSTEM_UNKNOWN_ERROR,message);
+    }
+
+    public SystemUnknownErrorException() {
+        super(DaxPayErrorCode.SYSTEM_UNKNOWN_ERROR,"未知异常,系统无法处理");
+    }
+}
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/exception/TradeClosedException.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/exception/TradeClosedException.java
new file mode 100644
index 0000000000000000000000000000000000000000..3e8e994bc76239372d52b6cbe7c75f86fddcf275
--- /dev/null
+++ b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/exception/TradeClosedException.java
@@ -0,0 +1,19 @@
+package cn.daxpay.single.core.exception;
+
+import cn.daxpay.single.core.code.DaxPayErrorCode;
+
+/**
+ * 交易已关闭
+ * @author xxm
+ * @since 2024/6/17
+ */
+public class TradeClosedException extends PayFailureException{
+
+    public TradeClosedException(String message) {
+        super(DaxPayErrorCode.TRADE_CLOSED,message);
+    }
+
+    public TradeClosedException() {
+        super(DaxPayErrorCode.TRADE_CLOSED,"交易已关闭");
+    }
+}
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/exception/TradeFailException.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/exception/TradeFailException.java
new file mode 100644
index 0000000000000000000000000000000000000000..14b44a6cd3581a01f85965560806ea9d647151b6
--- /dev/null
+++ b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/exception/TradeFailException.java
@@ -0,0 +1,19 @@
+package cn.daxpay.single.core.exception;
+
+import cn.daxpay.single.core.code.DaxPayErrorCode;
+
+/**
+ * 交易失败
+ * @author xxm
+ * @since 2024/6/17
+ */
+public class TradeFailException extends PayFailureException{
+
+    public TradeFailException(String message) {
+        super(DaxPayErrorCode.TRADE_FAIL,message);
+    }
+
+    public TradeFailException() {
+        super(DaxPayErrorCode.TRADE_FAIL,"交易失败");
+    }
+}
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/exception/TradeNotExistException.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/exception/TradeNotExistException.java
new file mode 100644
index 0000000000000000000000000000000000000000..7ba2f2a07539d0b1c27547a61ba695ae1f33b118
--- /dev/null
+++ b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/exception/TradeNotExistException.java
@@ -0,0 +1,19 @@
+package cn.daxpay.single.core.exception;
+
+import cn.daxpay.single.core.code.DaxPayErrorCode;
+
+/**
+ * 交易不存在
+ * @author xxm
+ * @since 2024/6/17
+ */
+public class TradeNotExistException extends PayFailureException{
+
+    public TradeNotExistException(String message) {
+        super(DaxPayErrorCode.TRADE_NOT_EXIST,message);
+    }
+
+    public TradeNotExistException() {
+        super(DaxPayErrorCode.TRADE_NOT_EXIST,"交易不存在");
+    }
+}
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/exception/TradeProcessingException.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/exception/TradeProcessingException.java
new file mode 100644
index 0000000000000000000000000000000000000000..90a0f0ec28f6183bf6ddf7a2ae43335e5bedbe2c
--- /dev/null
+++ b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/exception/TradeProcessingException.java
@@ -0,0 +1,19 @@
+package cn.daxpay.single.core.exception;
+
+import cn.daxpay.single.core.code.DaxPayErrorCode;
+
+/**
+ * 交易处理中, 请勿重复操作
+ * @author xxm
+ * @since 2024/6/17
+ */
+public class TradeProcessingException extends PayFailureException{
+
+    public TradeProcessingException(String message) {
+        super(DaxPayErrorCode.TRADE_PROCESSING,message);
+    }
+
+    public TradeProcessingException() {
+        super(DaxPayErrorCode.TRADE_PROCESSING,"交易处理中,请勿重复操作");
+    }
+}
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/exception/TradeStatusErrorException.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/exception/TradeStatusErrorException.java
new file mode 100644
index 0000000000000000000000000000000000000000..b2c34f1ebae4787a2b3f43e52e453540ba043035
--- /dev/null
+++ b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/exception/TradeStatusErrorException.java
@@ -0,0 +1,19 @@
+package cn.daxpay.single.core.exception;
+
+import cn.daxpay.single.core.code.DaxPayErrorCode;
+
+/**
+ * 交易状态错误
+ * @author xxm
+ * @since 2024/6/17
+ */
+public class TradeStatusErrorException extends PayFailureException{
+
+    public TradeStatusErrorException(String message) {
+        super(DaxPayErrorCode.TRADE_STATUS_ERROR,message);
+    }
+
+    public TradeStatusErrorException() {
+        super(DaxPayErrorCode.TRADE_STATUS_ERROR,"交易状态错误");
+    }
+}
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/exception/UnsupportedAbilityException.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/exception/UnsupportedAbilityException.java
new file mode 100644
index 0000000000000000000000000000000000000000..519a08146a237d0e3b2f54d5b2ce6e3da312ab79
--- /dev/null
+++ b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/exception/UnsupportedAbilityException.java
@@ -0,0 +1,19 @@
+package cn.daxpay.single.core.exception;
+
+import cn.daxpay.single.core.code.DaxPayErrorCode;
+
+/**
+ * 不支持该能力
+ * @author xxm
+ * @since 2024/6/17
+ */
+public class UnsupportedAbilityException extends PayFailureException{
+
+    public UnsupportedAbilityException(String message) {
+        super(DaxPayErrorCode.UNSUPPORTED_ABILITY,message);
+    }
+
+    public UnsupportedAbilityException() {
+        super(DaxPayErrorCode.UNSUPPORTED_ABILITY,"不支持该能力");
+    }
+}
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/exception/VerifySignFailedException.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/exception/VerifySignFailedException.java
new file mode 100644
index 0000000000000000000000000000000000000000..3a145dde918c3158af56f51dba8924d2bbaab20f
--- /dev/null
+++ b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/exception/VerifySignFailedException.java
@@ -0,0 +1,19 @@
+package cn.daxpay.single.core.exception;
+
+import cn.daxpay.single.core.code.DaxPayErrorCode;
+
+/**
+ * 验签失败
+ * @author xxm
+ * @since 2024/6/17
+ */
+public class VerifySignFailedException extends PayFailureException{
+
+    public VerifySignFailedException(String message) {
+        super(DaxPayErrorCode.VERIFY_SIGN_FAILED,message);
+    }
+
+    public VerifySignFailedException() {
+        super(DaxPayErrorCode.VERIFY_SIGN_FAILED,"验签失败");
+    }
+}
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/param/ChannelParam.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/param/ChannelParam.java
similarity index 75%
rename from daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/param/ChannelParam.java
rename to daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/param/ChannelParam.java
index a7491d206cc27c8f614713cfcce552ecb9311f00..48252e554e96bea37deec9788661edb1ea336873 100644
--- a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/param/ChannelParam.java
+++ b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/param/ChannelParam.java
@@ -1,4 +1,4 @@
-package cn.daxpay.single.param;
+package cn.daxpay.single.core.param;
 
 /**
  * 通道支付参数标识接口
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/param/PaymentCommonParam.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/param/PaymentCommonParam.java
similarity index 61%
rename from daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/param/PaymentCommonParam.java
rename to daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/param/PaymentCommonParam.java
index 5ca4fb02af4dc3781ee5ddc10702e1cfd8406c23..70d04981666ec00f830601aadd4875f50a2ddf0d 100644
--- a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/param/PaymentCommonParam.java
+++ b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/param/PaymentCommonParam.java
@@ -1,11 +1,13 @@
-package cn.daxpay.single.param;
+package cn.daxpay.single.core.param;
 
-import cn.daxpay.single.serializer.TimestampToLocalDateTimeDeserializer;
+import cn.daxpay.single.core.serializer.TimestampToLocalDateTimeDeserializer;
+import cn.bootx.platform.common.core.validation.IpAddress;
 import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 
 import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Size;
 import java.time.LocalDateTime;
 
 /**
@@ -19,10 +21,18 @@ public abstract class PaymentCommonParam {
 
     /** 客户端ip */
     @Schema(description = "客户端ip")
+    @IpAddress
+    @Size(max=64, message = "客户端ip不可超过64位")
     private String clientIp;
 
+    /** 随机数 */
+    @Schema(description = "随机数")
+    @Size(max = 32, message = "随机数不可超过32位")
+    private String nonceStr;
+
     /** 签名 */
     @Schema(description = "签名")
+    @Size(max = 64, message = "签名不可超过64位")
     private String sign;
 
 
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/param/payment/transfer/QueryTransferParam.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/param/assist/AliPayAccessTokenParam.java
similarity index 40%
rename from daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/param/payment/transfer/QueryTransferParam.java
rename to daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/param/assist/AliPayAccessTokenParam.java
index 67a1da657f052b1a94ac14ca8cbe77d53da12036..e3586d895f9339f6d89623eb524741b908db4276 100644
--- a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/param/payment/transfer/QueryTransferParam.java
+++ b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/param/assist/AliPayAccessTokenParam.java
@@ -1,19 +1,23 @@
-package cn.daxpay.single.param.payment.transfer;
+package cn.daxpay.single.core.param.assist;
 
-import cn.daxpay.single.param.PaymentCommonParam;
+import cn.daxpay.single.core.param.PaymentCommonParam;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
 
 /**
- * 转正订单查询参数
+ * 获取微信AccessToken参数
  * @author xxm
- * @since 2024/5/27
+ * @since 2024/6/16
  */
 @EqualsAndHashCode(callSuper = true)
 @Data
 @Accessors(chain = true)
-@Schema(title = "转正订单查询参数")
-public class QueryTransferParam extends PaymentCommonParam {
+@Schema(title = "获取支付宝AccessToken参数")
+public class AliPayAccessTokenParam extends PaymentCommonParam {
+
+    @Schema(description = "支付宝认证code")
+    private String code;
 }
+
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/param/assist/WxAuthUrlParam.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/param/assist/AliPayAuthUrlParam.java
similarity index 65%
rename from daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/param/assist/WxAuthUrlParam.java
rename to daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/param/assist/AliPayAuthUrlParam.java
index 08fe0cae958787a50b55399543aeb7ec2b60968a..c99fdcc58e2504ba843cd631a41aee3e81453dd7 100644
--- a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/param/assist/WxAuthUrlParam.java
+++ b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/param/assist/AliPayAuthUrlParam.java
@@ -1,21 +1,21 @@
-package cn.daxpay.single.param.assist;
+package cn.daxpay.single.core.param.assist;
 
-import cn.daxpay.single.param.PaymentCommonParam;
+import cn.daxpay.single.core.param.PaymentCommonParam;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
 
 /**
- * 构造oauth2授权的url连接
+ * 构造微信OAuth2授权的url链接
  * @author xxm
- * @since 2024/2/10
+ * @since 2024/6/16
  */
 @EqualsAndHashCode(callSuper = true)
 @Data
 @Accessors(chain = true)
-@Schema(title = "构造oauth2授权的url连接")
-public class WxAuthUrlParam extends PaymentCommonParam {
+@Schema(title = "构造微信OAuth2授权的url链接")
+public class AliPayAuthUrlParam extends PaymentCommonParam {
 
     @Schema(description = "回调地址")
     private String url;
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/param/assist/WxAccessTokenParam.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/param/assist/WxAccessTokenParam.java
similarity index 62%
rename from daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/param/assist/WxAccessTokenParam.java
rename to daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/param/assist/WxAccessTokenParam.java
index da638d1debd486c928e979f89b64bc10c172605f..b65ad7659d823b7e045ea2e790d3f24df5fe3f44 100644
--- a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/param/assist/WxAccessTokenParam.java
+++ b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/param/assist/WxAccessTokenParam.java
@@ -1,11 +1,13 @@
-package cn.daxpay.single.param.assist;
+package cn.daxpay.single.core.param.assist;
 
-import cn.daxpay.single.param.PaymentCommonParam;
+import cn.daxpay.single.core.param.PaymentCommonParam;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
 
+import javax.validation.constraints.Size;
+
 /**
  * 获取微信AccessToken参数
  * @author xxm
@@ -17,6 +19,7 @@ import lombok.experimental.Accessors;
 @Schema(title = "获取微信AccessToken参数")
 public class WxAccessTokenParam extends PaymentCommonParam {
 
-    @Schema(description = "微信code")
+    @Schema(description = "微信认证code")
+    @Size(max = 64, message = "微信认证code不可超过100位")
     private String code;
 }
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/param/assist/WxAuthUrlParam.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/param/assist/WxAuthUrlParam.java
new file mode 100644
index 0000000000000000000000000000000000000000..24936ccb4f5d8ab659fa4c69788caa79584d0ed2
--- /dev/null
+++ b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/param/assist/WxAuthUrlParam.java
@@ -0,0 +1,32 @@
+package cn.daxpay.single.core.param.assist;
+
+import cn.daxpay.single.core.param.PaymentCommonParam;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import javax.validation.constraints.Size;
+
+/**
+ * 构造微信OAuth2授权的url链接
+ * @author xxm
+ * @since 2024/2/10
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+@Accessors(chain = true)
+@Schema(title = "构造微信OAuth2授权的url链接")
+public class WxAuthUrlParam extends PaymentCommonParam {
+
+    @Schema(description = "回调地址")
+    @Size(max = 200, message = "回调地址不可超过200位")
+    private String url;
+
+    /**
+     * 重定向后会带上state参数,开发者可以填写a-zA-Z0-9的参数值,最多128字节
+     */
+    @Schema(description = "重定向后原样带回,可以为空")
+    @Size(max = 128, message = "state值最大为128位")
+    private String state;
+}
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/param/channel/AliPayParam.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/param/channel/AliPayParam.java
similarity index 31%
rename from daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/param/channel/AliPayParam.java
rename to daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/param/channel/AliPayParam.java
index 16c617a3d50f8a45d52a36a83f382001b5f863c5..8b9e543596a24893ccb3c3a55ed02d486e630e52 100644
--- a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/param/channel/AliPayParam.java
+++ b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/param/channel/AliPayParam.java
@@ -1,6 +1,6 @@
-package cn.daxpay.single.param.channel;
+package cn.daxpay.single.core.param.channel;
 
-import cn.daxpay.single.param.ChannelParam;
+import cn.daxpay.single.core.param.ChannelParam;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 
@@ -12,7 +12,23 @@ import lombok.Data;
 @Schema(title = "支付宝支付参数")
 public class AliPayParam implements ChannelParam {
 
+    /**
+     * 授权码(主动扫描用户的付款码)
+     */
     @Schema(description = "授权码(主动扫描用户的付款码)")
     private String authCode;
 
+    /**
+     * 【描述】小程序支付中,商户实际经营主体的小程序应用的appid,也即最终唤起收银台支付所在的小程序的应用id
+     * 【注意事项】商户需要先在产品管理中心绑定该小程序appid,否则下单会失败
+     */
+    @Schema(description = "商户实际经营主体的小程序应用的appid")
+    private String opAppId;
+
+    /**
+     * 买家支付宝用户唯一标识
+     */
+    @Schema(description = "买家支付宝用户唯一标识")
+    private String openId;
+
 }
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/param/channel/UnionPayParam.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/param/channel/UnionPayParam.java
similarity index 87%
rename from daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/param/channel/UnionPayParam.java
rename to daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/param/channel/UnionPayParam.java
index 25ce5ae10e68fdbc8815d7365d4e6109cefda0b8..463b602c266d9b8ef8d80105864b709508031e93 100644
--- a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/param/channel/UnionPayParam.java
+++ b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/param/channel/UnionPayParam.java
@@ -1,4 +1,4 @@
-package cn.daxpay.single.param.channel;
+package cn.daxpay.single.core.param.channel;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/param/channel/WalletPayParam.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/param/channel/WalletPayParam.java
similarity index 80%
rename from daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/param/channel/WalletPayParam.java
rename to daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/param/channel/WalletPayParam.java
index 2effbc2a13ff479c00cffa0892d8abf010d5a240..8af403136fd48652edcf504f010d9fcddfb2b105 100644
--- a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/param/channel/WalletPayParam.java
+++ b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/param/channel/WalletPayParam.java
@@ -1,6 +1,6 @@
-package cn.daxpay.single.param.channel;
+package cn.daxpay.single.core.param.channel;
 
-import cn.daxpay.single.param.ChannelParam;
+import cn.daxpay.single.core.param.ChannelParam;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/param/channel/WeChatPayParam.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/param/channel/WeChatPayParam.java
similarity index 80%
rename from daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/param/channel/WeChatPayParam.java
rename to daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/param/channel/WeChatPayParam.java
index 93a13d5e65e14a05ebfcfbc6a56efd6a0dde6a6f..fb7daf4bbd28d07fe0675e34cb45172ced9ea5bf 100644
--- a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/param/channel/WeChatPayParam.java
+++ b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/param/channel/WeChatPayParam.java
@@ -1,6 +1,6 @@
-package cn.daxpay.single.param.channel;
+package cn.daxpay.single.core.param.channel;
 
-import cn.daxpay.single.param.ChannelParam;
+import cn.daxpay.single.core.param.ChannelParam;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/param/payment/allocation/AllocFinishParam.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/param/payment/allocation/AllocFinishParam.java
similarity index 70%
rename from daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/param/payment/allocation/AllocFinishParam.java
rename to daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/param/payment/allocation/AllocFinishParam.java
index 57b9bfe26cfae29b30f84abc55370cea861519fb..2caba338b49437602e53288ea8d5189544f419c6 100644
--- a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/param/payment/allocation/AllocFinishParam.java
+++ b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/param/payment/allocation/AllocFinishParam.java
@@ -1,6 +1,6 @@
-package cn.daxpay.single.param.payment.allocation;
+package cn.daxpay.single.core.param.payment.allocation;
 
-import cn.daxpay.single.param.PaymentCommonParam;
+import cn.daxpay.single.core.param.PaymentCommonParam;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
@@ -16,8 +16,8 @@ import lombok.EqualsAndHashCode;
 public class AllocFinishParam extends PaymentCommonParam {
 
     @Schema(description = "商户分账单号")
-    private String bizAllocationNo;
+    private String bizAllocNo;
 
     @Schema(description = "分账单号")
-    private String allocationNo;
+    private String allocNo;
 }
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/param/payment/allocation/AllocReceiverAddParam.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/param/payment/allocation/AllocReceiverAddParam.java
similarity index 55%
rename from daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/param/payment/allocation/AllocReceiverAddParam.java
rename to daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/param/payment/allocation/AllocReceiverAddParam.java
index 045265b21e2c84e8719d4bc537d7cbf421550447..a59baee03caadcf551fc920b336ae2b3c4279d81 100644
--- a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/param/payment/allocation/AllocReceiverAddParam.java
+++ b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/param/payment/allocation/AllocReceiverAddParam.java
@@ -1,15 +1,16 @@
-package cn.daxpay.single.param.payment.allocation;
+package cn.daxpay.single.core.param.payment.allocation;
 
-import cn.daxpay.single.code.AllocReceiverTypeEnum;
-import cn.daxpay.single.code.AllocRelationTypeEnum;
-import cn.daxpay.single.code.PayChannelEnum;
-import cn.daxpay.single.param.PaymentCommonParam;
+import cn.daxpay.single.core.code.AllocReceiverTypeEnum;
+import cn.daxpay.single.core.code.AllocRelationTypeEnum;
+import cn.daxpay.single.core.code.PayChannelEnum;
+import cn.daxpay.single.core.param.PaymentCommonParam;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
 
-import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.Size;
 
 /**
  * 分账接收者添加参数
@@ -23,7 +24,8 @@ import javax.validation.constraints.NotEmpty;
 public class AllocReceiverAddParam extends PaymentCommonParam {
 
     @Schema(description = "接收者编号, 需要保证唯一")
-    @NotEmpty(message = "接收者编号必填")
+    @NotBlank(message = "接收者编号必填")
+    @Size(max = 32, message = "接收者编号不可超过32位")
     private String receiverNo;
 
     /**
@@ -31,7 +33,8 @@ public class AllocReceiverAddParam extends PaymentCommonParam {
      * @see PayChannelEnum
      */
     @Schema(description = "所属通道")
-    @NotEmpty(message = "所属通道必填")
+    @NotBlank(message = "所属通道必填")
+    @Size(max = 20, message = "所属通道不可超过20位")
     private String channel;
 
     /**
@@ -39,16 +42,19 @@ public class AllocReceiverAddParam extends PaymentCommonParam {
      * @see AllocReceiverTypeEnum
      */
     @Schema(description = "分账接收方类型")
-    @NotEmpty(message = "分账接收方类型必填")
+    @NotBlank(message = "分账接收方类型必填")
+    @Size(max = 20, message = "分账接收方类型不可超过20位")
     private String receiverType;
 
     /** 接收方账号 */
     @Schema(description = "接收方账号")
-    @NotEmpty(message = "接收方账号必填")
+    @NotBlank(message = "接收方账号必填")
+    @Size(max = 100, message = "接收方账号不可超过100位")
     private String receiverAccount;
 
     /** 接收方姓名 */
     @Schema(description = "接收方姓名")
+    @Size(max = 100, message = "接收方姓名不可超过50位")
     private String receiverName;
 
     /**
@@ -56,10 +62,12 @@ public class AllocReceiverAddParam extends PaymentCommonParam {
      * @see AllocRelationTypeEnum
      */
     @Schema(description = "分账关系类型")
-    @NotEmpty(message = "分账关系类型必填")
+    @NotBlank(message = "分账关系类型必填")
+    @Size(max = 20, message = "分账关系类型不可超过20位")
     private String relationType;
 
     /** 关系名称 关系类型为自定义是填写 */
     @Schema(description = "关系名称")
+    @Size(max = 50, message = "关系名称不可超过50位")
     private String relationName;
 }
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/param/payment/allocation/AllocReceiverParam.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/param/payment/allocation/AllocReceiverParam.java
similarity index 71%
rename from daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/param/payment/allocation/AllocReceiverParam.java
rename to daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/param/payment/allocation/AllocReceiverParam.java
index 7ab1fb8e1b517b4876cae0004119c128de5cdd8b..3ee6174b187c2e5f2232393432a1bbd354c927aa 100644
--- a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/param/payment/allocation/AllocReceiverParam.java
+++ b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/param/payment/allocation/AllocReceiverParam.java
@@ -1,12 +1,13 @@
-package cn.daxpay.single.param.payment.allocation;
+package cn.daxpay.single.core.param.payment.allocation;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 import lombok.experimental.Accessors;
 
 import javax.validation.constraints.Min;
-import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotBlank;
 import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Size;
 
 /**
  * 分账接收方列表
@@ -20,7 +21,8 @@ public class AllocReceiverParam {
 
     /** 分账接收方编号 */
     @Schema(description = "分账接收方编号")
-    @NotEmpty(message = "分账接收方编号必填")
+    @NotBlank(message = "分账接收方编号必填")
+    @Size(max = 32, message = "分账接收方编号不可超过32位")
     private String receiverNo;
 
     /** 分账金额 */
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/param/payment/allocation/AllocReceiverRemoveParam.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/param/payment/allocation/AllocReceiverRemoveParam.java
similarity index 60%
rename from daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/param/payment/allocation/AllocReceiverRemoveParam.java
rename to daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/param/payment/allocation/AllocReceiverRemoveParam.java
index 06f21e6dd6b38199389ae60bdf59238b43ba0184..b96d6872a70d09510aec957f40db4bb9de53dcc7 100644
--- a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/param/payment/allocation/AllocReceiverRemoveParam.java
+++ b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/param/payment/allocation/AllocReceiverRemoveParam.java
@@ -1,12 +1,13 @@
-package cn.daxpay.single.param.payment.allocation;
+package cn.daxpay.single.core.param.payment.allocation;
 
-import cn.daxpay.single.param.PaymentCommonParam;
+import cn.daxpay.single.core.param.PaymentCommonParam;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
 
-import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.Size;
 
 /**
  * 分账接收者删除参数
@@ -20,7 +21,8 @@ import javax.validation.constraints.NotEmpty;
 public class AllocReceiverRemoveParam extends PaymentCommonParam {
 
     @Schema(description = "接收者编号")
-    @NotEmpty(message = "接收者编号必填")
+    @NotBlank(message = "接收者编号必填")
+    @Size(max = 32, message = "接收者编号不可超过32位")
     private String receiverNo;
 
 }
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/param/payment/allocation/AllocSyncParam.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/param/payment/allocation/AllocSyncParam.java
similarity index 54%
rename from daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/param/payment/allocation/AllocSyncParam.java
rename to daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/param/payment/allocation/AllocSyncParam.java
index b01508a006f62565a5843457ca09247a57514942..0b1ea54e630c0382c331585458ee533b5f6322ab 100644
--- a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/param/payment/allocation/AllocSyncParam.java
+++ b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/param/payment/allocation/AllocSyncParam.java
@@ -1,10 +1,12 @@
-package cn.daxpay.single.param.payment.allocation;
+package cn.daxpay.single.core.param.payment.allocation;
 
-import cn.daxpay.single.param.PaymentCommonParam;
+import cn.daxpay.single.core.param.PaymentCommonParam;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
+import javax.validation.constraints.Size;
+
 /**
  * 分账同步请求参数
  * @author xxm
@@ -16,8 +18,10 @@ import lombok.EqualsAndHashCode;
 public class AllocSyncParam extends PaymentCommonParam {
 
     @Schema(description = "分账号")
-    private String allocationNo;
+    @Size(max = 32, message = "分账号不可超过32位")
+    private String allocNo;
 
     @Schema(description = "商户分账号")
-    private String bizAllocationNo;
+    @Size(max = 100, message = "商户分账号不可超过100位")
+    private String bizAllocNo;
 }
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/param/payment/allocation/AllocationParam.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/param/payment/allocation/AllocationParam.java
similarity index 65%
rename from daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/param/payment/allocation/AllocationParam.java
rename to daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/param/payment/allocation/AllocationParam.java
index 1ffe9f7308854380fe1b5106f59f1809a47244c4..23704ccee2d881452dd864a64b5eb427ec287d9e 100644
--- a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/param/payment/allocation/AllocationParam.java
+++ b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/param/payment/allocation/AllocationParam.java
@@ -1,12 +1,13 @@
-package cn.daxpay.single.param.payment.allocation;
+package cn.daxpay.single.core.param.payment.allocation;
 
-import cn.daxpay.single.param.PaymentCommonParam;
+import cn.daxpay.single.core.param.PaymentCommonParam;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
 import javax.validation.Valid;
 import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.Size;
 import java.util.List;
 
 /**
@@ -20,25 +21,30 @@ import java.util.List;
 public class AllocationParam extends PaymentCommonParam {
 
     /** 商户分账单号 */
-    @Schema(description = "商户分账单号")
     @NotBlank(message = "商户分账单号不可为空")
-    private String bizAllocationNo;
+    @Size(max = 100, message = "商户分账单号不可超过100位")
+    @Schema(description = "商户分账单号")
+    private String bizAllocNo;
 
     /** 支付订单号 */
+    @Size(max = 32, message = "支付订单号不可超过32位")
     @Schema(description = "支付订单号")
     private String orderNo;
 
     /** 商户支付订单号 */
+    @Size(max = 100, message = "商户支付订单号不可超过100位")
     @Schema(description = "商户支付订单号")
     private String bizOrderNo;
 
     /** 分账描述 */
+    @Size(max = 150, message = "分账描述不可超过150位")
     @Schema(description = "分账描述")
     private String description;
 
     /**
      * 优先级 分账接收方列表 > 分账组编号 > 默认分账组
      */
+    @Size(max = 20, message = "分账组编号不可超过20位")
     @Schema(description = "分账组编号")
     private String groupNo;
 
@@ -47,16 +53,14 @@ public class AllocationParam extends PaymentCommonParam {
     @Valid
     private List<AllocReceiverParam> receivers;
 
-    /** 是否不启用异步通知 */
-    @Schema(description = "是否不启用异步通知")
-    private Boolean notNotify;
-
     /** 回调通知地址 */
+    @Size(max = 200, message = "回调通知地址不可超过200位")
     @Schema(description = "回调通知地址")
     private String notifyUrl;
 
     /** 商户扩展参数,回调时会原样返回 */
-    @Schema(description = "商户扩展参数,回调时会原样返回")
+    @Size(max = 500, message = "商户扩展参数不可超过500位")
+    @Schema(description = "商户扩展参数")
     private String attach;
 
 }
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/param/payment/allocation/QueryAllocOrderParam.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/param/payment/allocation/QueryAllocOrderParam.java
similarity index 71%
rename from daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/param/payment/allocation/QueryAllocOrderParam.java
rename to daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/param/payment/allocation/QueryAllocOrderParam.java
index 6ba1a78869daf3878c7b7d3597b3401cdf8de443..3357c6e54ad795e5af9d473e0873d66f9d448c62 100644
--- a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/param/payment/allocation/QueryAllocOrderParam.java
+++ b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/param/payment/allocation/QueryAllocOrderParam.java
@@ -1,6 +1,6 @@
-package cn.daxpay.single.param.payment.allocation;
+package cn.daxpay.single.core.param.payment.allocation;
 
-import cn.daxpay.single.param.PaymentCommonParam;
+import cn.daxpay.single.core.param.PaymentCommonParam;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
@@ -16,8 +16,8 @@ import lombok.EqualsAndHashCode;
 public class QueryAllocOrderParam extends PaymentCommonParam {
 
     @Schema(description = "分账单号")
-    private String allocationNo;
+    private String allocNo;
 
     @Schema(description = "商户分账单号")
-    private String bizAllocationNo;
+    private String bizAllocNo;
 }
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/param/payment/allocation/QueryAllocReceiverParam.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/param/payment/allocation/QueryAllocReceiverParam.java
similarity index 84%
rename from daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/param/payment/allocation/QueryAllocReceiverParam.java
rename to daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/param/payment/allocation/QueryAllocReceiverParam.java
index 1fc094f4723cc2246ac73d7d56e14883bfd23977..c8c64fe30fad8df193d3ae0a4088f6c726db0705 100644
--- a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/param/payment/allocation/QueryAllocReceiverParam.java
+++ b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/param/payment/allocation/QueryAllocReceiverParam.java
@@ -1,6 +1,6 @@
-package cn.daxpay.single.param.payment.allocation;
+package cn.daxpay.single.core.param.payment.allocation;
 
-import cn.daxpay.single.param.PaymentCommonParam;
+import cn.daxpay.single.core.param.PaymentCommonParam;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/param/payment/pay/PayCancelParam.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/param/payment/pay/PayCancelParam.java
similarity index 62%
rename from daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/param/payment/pay/PayCancelParam.java
rename to daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/param/payment/pay/PayCancelParam.java
index d06882294dc3529e2c1dd3a2c50294bc0715c8d8..e5fd51dfbf3ebbcd68d3d7ac66a2e344e9bb42bf 100644
--- a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/param/payment/pay/PayCancelParam.java
+++ b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/param/payment/pay/PayCancelParam.java
@@ -1,10 +1,12 @@
-package cn.daxpay.single.param.payment.pay;
+package cn.daxpay.single.core.param.payment.pay;
 
-import cn.daxpay.single.param.PaymentCommonParam;
+import cn.daxpay.single.core.param.PaymentCommonParam;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
+import javax.validation.constraints.Size;
+
 /**
  * 支付订单撤销
  * 并不是所有的订单都可以被撤销,只有部分类型的支持撤销,主要是当面付
@@ -16,9 +18,13 @@ import lombok.EqualsAndHashCode;
 @Schema(title = "支付订单撤销")
 public class PayCancelParam extends PaymentCommonParam {
 
+    /** 订单号 */
     @Schema(description = "订单号")
+    @Size(max = 32, message = "支付订单号不可超过32位")
     private String orderNo;
 
+    /** 商户订单号 */
     @Schema(description = "商户订单号")
+    @Size(max = 100, message = "商户支付订单号不可超过100位")
     private String bizOrderNo;
 }
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/param/payment/pay/PayCloseParam.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/param/payment/pay/PayCloseParam.java
similarity index 59%
rename from daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/param/payment/pay/PayCloseParam.java
rename to daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/param/payment/pay/PayCloseParam.java
index d372aae506e7cb622453197641dc4b71909fb102..61cb86ecdf1d82f3bf9de5b51a8990a570b652e5 100644
--- a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/param/payment/pay/PayCloseParam.java
+++ b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/param/payment/pay/PayCloseParam.java
@@ -1,10 +1,12 @@
-package cn.daxpay.single.param.payment.pay;
+package cn.daxpay.single.core.param.payment.pay;
 
-import cn.daxpay.single.param.PaymentCommonParam;
+import cn.daxpay.single.core.param.PaymentCommonParam;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
+import javax.validation.constraints.Size;
+
 /**
  * 支付关闭参数
  * @author xxm
@@ -17,9 +19,11 @@ public class PayCloseParam extends PaymentCommonParam {
 
     /** 订单号 */
     @Schema(description = "订单号")
+    @Size(max = 32, message = "支付订单号不可超过32位")
     private String orderNo;
 
     /** 商户订单号 */
     @Schema(description = "商户订单号")
-    private String bizTradeNo;
+    @Size(max = 100, message = "商户支付订单号不可超过100位")
+    private String bizOrderNo;
 }
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/param/payment/pay/PayParam.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/param/payment/pay/PayParam.java
similarity index 63%
rename from daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/param/payment/pay/PayParam.java
rename to daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/param/payment/pay/PayParam.java
index 26ad552d2f519e0a8bcb6b1d0caa510ef08bad71..8303c13952432b64d1d7229dfab5e3f09b6a93cb 100644
--- a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/param/payment/pay/PayParam.java
+++ b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/param/payment/pay/PayParam.java
@@ -1,20 +1,18 @@
-package cn.daxpay.single.param.payment.pay;
-
-import cn.daxpay.single.code.PayChannelEnum;
-import cn.daxpay.single.code.PayMethodEnum;
-import cn.daxpay.single.param.PaymentCommonParam;
-import cn.daxpay.single.param.channel.AliPayParam;
-import cn.daxpay.single.param.channel.WalletPayParam;
-import cn.daxpay.single.param.channel.WeChatPayParam;
-import cn.daxpay.single.serializer.TimestampToLocalDateTimeDeserializer;
+package cn.daxpay.single.core.param.payment.pay;
+
+import cn.daxpay.single.core.code.PayChannelEnum;
+import cn.daxpay.single.core.code.PayMethodEnum;
+import cn.daxpay.single.core.param.PaymentCommonParam;
+import cn.daxpay.single.core.param.channel.AliPayParam;
+import cn.daxpay.single.core.param.channel.WalletPayParam;
+import cn.daxpay.single.core.param.channel.WeChatPayParam;
+import cn.daxpay.single.core.serializer.TimestampToLocalDateTimeDeserializer;
 import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
-import javax.validation.constraints.Min;
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.NotNull;
+import javax.validation.constraints.*;
 import java.time.LocalDateTime;
 import java.util.Map;
 
@@ -32,15 +30,18 @@ public class PayParam extends PaymentCommonParam {
     /** 商户订单号 */
     @Schema(description = "商户订单号")
     @NotBlank(message = "商户订单号不可为空")
+    @Size(max = 100, message = "商户订单号不可超过100位")
     private String bizOrderNo;
 
     /** 支付标题 */
     @Schema(description = "支付标题")
     @NotBlank(message = "支付标题不可为空")
+    @Size(max = 100, message = "支付标题不可超过100位")
     private String title;
 
     /** 支付描述 */
     @Schema(description = "支付描述")
+    @Size(max = 500, message = "支付描述不可超过500位")
     private String description;
 
     /** 是否开启分账 */
@@ -62,6 +63,7 @@ public class PayParam extends PaymentCommonParam {
      */
     @Schema(description = "支付通道编码")
     @NotBlank(message = "支付通道编码不可为空")
+    @Size(max = 20, message = "支付通道编码不可超过20位")
     private String channel;
 
     /**
@@ -70,6 +72,7 @@ public class PayParam extends PaymentCommonParam {
      */
     @Schema(description = "支付方式编码")
     @NotBlank(message = "支付方式不可为空")
+    @Size(max = 20, message = "支付方式编码不可超过20位")
     private String method;
 
     /** 支付金额 */
@@ -85,25 +88,26 @@ public class PayParam extends PaymentCommonParam {
      * @see WalletPayParam
      */
     @Schema(description = "支付扩展参数")
+    @Size(max = 2048, message = "支付扩展参数不可超过2048位")
     private Map<String, Object> extraParam;
 
     /** 商户扩展参数,回调时会原样返回 */
-    @Schema(description = "商户扩展参数,回调时会原样返回")
+    @Schema(description = "商户扩展参数")
+    @Size(max = 500, message = "商户扩展参数不可超过500位")
     private String attach;
 
     /** 同步跳转地址, 支付完毕后用户浏览器返回到该地址, 不传输跳转到默认地址 */
     @Schema(description = "同步通知URL")
+    @Size(max = 200, message = "同步通知URL不可超过200位")
     private String returnUrl;
 
-    /** 退出地址 */
-    @Schema(description = "用户付款中途退出返回商户网站的地址(部分支付场景中可用)")
+    /** 用户付款中途退出返回商户网站的地址(部分支付场景中可用) */
+    @Schema(description = "退出地址")
+    @Size(max = 200, message = "退出地址不可超过200位")
     private String quitUrl;
 
     /** 异步通知地址 */
     @Schema(description = "异步通知地址")
+    @Size(max = 200, message = "异步通知地址不可超过200位")
     private String notifyUrl;
-
-    /** 是否不启用异步通知 */
-    @Schema(description = "是否不启用异步通知")
-    private Boolean notNotify;
 }
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/param/payment/pay/PaySyncParam.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/param/payment/pay/PaySyncParam.java
similarity index 64%
rename from daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/param/payment/pay/PaySyncParam.java
rename to daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/param/payment/pay/PaySyncParam.java
index a2ae67c4559e7611dabe1fcafcd4535f2c42ac27..13f9658821294947f6b349557c3fa2663c094334 100644
--- a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/param/payment/pay/PaySyncParam.java
+++ b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/param/payment/pay/PaySyncParam.java
@@ -1,10 +1,12 @@
-package cn.daxpay.single.param.payment.pay;
+package cn.daxpay.single.core.param.payment.pay;
 
-import cn.daxpay.single.param.PaymentCommonParam;
+import cn.daxpay.single.core.param.PaymentCommonParam;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
+import javax.validation.constraints.Size;
+
 /**
  * 支付状态同步参数
  * @author xxm
@@ -17,10 +19,12 @@ public class PaySyncParam extends PaymentCommonParam {
 
     /** 订单号 */
     @Schema(description = "订单号")
+    @Size(max = 32, message = "支付订单号不可超过32位")
     private String orderNo;
 
     /** 商户订单号 */
     @Schema(description = "商户订单号")
+    @Size(max = 100, message = "商户支付订单号不可超过100位")
     private String bizOrderNo;
 
 }
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/param/payment/pay/QueryPayParam.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/param/payment/pay/QueryPayParam.java
similarity index 61%
rename from daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/param/payment/pay/QueryPayParam.java
rename to daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/param/payment/pay/QueryPayParam.java
index a650af2acc8bbdabeb89efa0128a33f95142f918..9974397dfece76823073447b3900f0386d93d685 100644
--- a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/param/payment/pay/QueryPayParam.java
+++ b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/param/payment/pay/QueryPayParam.java
@@ -1,10 +1,12 @@
-package cn.daxpay.single.param.payment.pay;
+package cn.daxpay.single.core.param.payment.pay;
 
-import cn.daxpay.single.param.PaymentCommonParam;
+import cn.daxpay.single.core.param.PaymentCommonParam;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
+import javax.validation.constraints.Size;
+
 /**
  * 支付单查询参数
  * @author xxm
@@ -16,8 +18,10 @@ import lombok.EqualsAndHashCode;
 public class QueryPayParam extends PaymentCommonParam {
 
     @Schema(description = "订单号")
+    @Size(max = 32, message = "支付订单号不可超过32位")
     private String orderNo;
 
     @Schema(description = "商户订单号")
+    @Size(max = 100, message = "商户支付订单号不可超过100位")
     private String bizOrderNoeNo;
 }
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/param/payment/refund/QueryRefundParam.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/param/payment/refund/QueryRefundParam.java
similarity index 65%
rename from daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/param/payment/refund/QueryRefundParam.java
rename to daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/param/payment/refund/QueryRefundParam.java
index 48bdcb21250764a34d985f6151b7508695e6ed44..5e702848bb965703f1d5ad646a876ee25d6a110b 100644
--- a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/param/payment/refund/QueryRefundParam.java
+++ b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/param/payment/refund/QueryRefundParam.java
@@ -1,10 +1,12 @@
-package cn.daxpay.single.param.payment.refund;
+package cn.daxpay.single.core.param.payment.refund;
 
-import cn.daxpay.single.param.PaymentCommonParam;
+import cn.daxpay.single.core.param.PaymentCommonParam;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
+import javax.validation.constraints.Size;
+
 /**
  * 查询退款订单参数类
  * @author xxm
@@ -17,9 +19,11 @@ public class QueryRefundParam extends PaymentCommonParam {
 
     /** 退款号 */
     @Schema(description = "退款号")
+    @Size(max = 100, message = "退款号不可超过100位")
     private String refundNo;
 
     /** 商户退款号 */
     @Schema(description = "商户退款号")
+    @Size(max = 100, message = "商户退款号不可超过100位")
     private String bizRefundNo;
 }
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/param/payment/refund/RefundParam.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/param/payment/refund/RefundParam.java
similarity index 65%
rename from daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/param/payment/refund/RefundParam.java
rename to daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/param/payment/refund/RefundParam.java
index 1aefd4c7d8e06017f5c6bd561e213afb33ee2a05..3a8e099256e4463b8ede52b9593e0b95520c5b3b 100644
--- a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/param/payment/refund/RefundParam.java
+++ b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/param/payment/refund/RefundParam.java
@@ -1,16 +1,16 @@
-package cn.daxpay.single.param.payment.refund;
+package cn.daxpay.single.core.param.payment.refund;
 
-import cn.daxpay.single.param.PaymentCommonParam;
-import cn.daxpay.single.param.channel.AliPayParam;
-import cn.daxpay.single.param.channel.WalletPayParam;
-import cn.daxpay.single.param.channel.WeChatPayParam;
+import cn.daxpay.single.core.param.PaymentCommonParam;
+import cn.daxpay.single.core.param.channel.AliPayParam;
+import cn.daxpay.single.core.param.channel.WalletPayParam;
+import cn.daxpay.single.core.param.channel.WeChatPayParam;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
 import javax.validation.constraints.Min;
 import javax.validation.constraints.NotBlank;
-import java.util.Map;
+import javax.validation.constraints.Size;
 
 /**
  * 退款参数,适用于组合支付的订单退款操作中,
@@ -27,18 +27,21 @@ public class RefundParam extends PaymentCommonParam {
      */
     @Schema(description = "商户退款号")
     @NotBlank(message = "商户退款号不可为空")
+    @Size(max = 100, message = "商户退款号不可超过100位")
     private String bizRefundNo;
 
     /**
      * 支付订单号,与商户订单号至少要传输一个,同时传输以订单号为准
      */
     @Schema(description = "订单号")
+    @Size(max = 32, message = "支付订单号不可超过32位")
     private String orderNo;
 
     /**
      * 商户支付订单号,与订单号至少要传输一个,同时传输以订单号为准
      */
     @Schema(description = "商户订单号")
+    @Size(max = 100, message = "商户支付订单号不可超过100位")
     private String bizOrderNo;
 
     /** 退款金额 */
@@ -53,22 +56,22 @@ public class RefundParam extends PaymentCommonParam {
      * @see WalletPayParam
      */
     @Schema(description = "退款扩展参数")
-    private Map<String, Object> extraParam;
+    @Size(max = 2048, message = "退款扩展参数不可超过2048位")
+    private String extraParam;
 
     /** 退款原因 */
     @Schema(description = "退款原因")
+    @Size(max = 150, message = "退款原因不可超过150位")
     private String reason;
 
     /** 商户扩展参数,回调时会原样返回 */
-    @Schema(description = "商户扩展参数,回调时会原样返回")
+    @Schema(description = "商户扩展参数")
+    @Size(max = 500, message = "商户扩展参数不可超过500位")
     private String attach;
 
-    /** 是否不启用异步通知 */
-    @Schema(description = "是否不启用异步通知")
-    private Boolean notNotify;
-
     /** 异步通知地址 */
     @Schema(description = "异步通知地址")
+    @Size(max = 200, message = "异步通知地址不可超过200位")
     private String notifyUrl;
 
 }
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/param/payment/refund/RefundSyncParam.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/param/payment/refund/RefundSyncParam.java
similarity index 65%
rename from daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/param/payment/refund/RefundSyncParam.java
rename to daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/param/payment/refund/RefundSyncParam.java
index 3e192c31f60039c327cb10249a4e63733fa96450..2075669cba15c0dd38019cee63b9f035775d1bef 100644
--- a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/param/payment/refund/RefundSyncParam.java
+++ b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/param/payment/refund/RefundSyncParam.java
@@ -1,10 +1,12 @@
-package cn.daxpay.single.param.payment.refund;
+package cn.daxpay.single.core.param.payment.refund;
 
-import cn.daxpay.single.param.PaymentCommonParam;
+import cn.daxpay.single.core.param.PaymentCommonParam;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
+import javax.validation.constraints.Size;
+
 /**
  * 退款状态同步参数
  * @author xxm
@@ -17,10 +19,12 @@ public class RefundSyncParam extends PaymentCommonParam {
 
     /** 退款号 */
     @Schema(description = "退款号")
+    @Size(max = 100, message = "退款号不可超过100位")
     private String refundNo;
 
     /** 商户退款号 */
     @Schema(description = "商户退款号")
+    @Size(max = 100, message = "商户退款号不可超过100位")
     private String bizRefundNo;
 
 }
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/param/payment/transfer/QueryTransferParam.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/param/payment/transfer/QueryTransferParam.java
new file mode 100644
index 0000000000000000000000000000000000000000..0f5e76590d0b7576ec241f911e9869ff615f79df
--- /dev/null
+++ b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/param/payment/transfer/QueryTransferParam.java
@@ -0,0 +1,31 @@
+package cn.daxpay.single.core.param.payment.transfer;
+
+import cn.daxpay.single.core.param.PaymentCommonParam;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import javax.validation.constraints.Size;
+
+/**
+ * 转账订单查询参数
+ * @author xxm
+ * @since 2024/5/27
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+@Accessors(chain = true)
+@Schema(title = "转账订单查询参数")
+public class QueryTransferParam extends PaymentCommonParam {
+
+    /** 商户转账号 */
+    @Size(max = 100, message = "商户转账号不可超过100位")
+    @Schema(description = "商户转账号")
+    private String bizTransferNo;
+
+    /** 转账号 */
+    @Size(max = 32, message = "转账号不可超过100位")
+    @Schema(description = "转账号")
+    private String transferNo;
+}
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/param/payment/transfer/TransferParam.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/param/payment/transfer/TransferParam.java
new file mode 100644
index 0000000000000000000000000000000000000000..75902e962e808cc398662883093aa8d3a25c85c1
--- /dev/null
+++ b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/param/payment/transfer/TransferParam.java
@@ -0,0 +1,94 @@
+package cn.daxpay.single.core.param.payment.transfer;
+
+import cn.daxpay.single.core.code.PayChannelEnum;
+import cn.daxpay.single.core.code.TransferPayeeTypeEnum;
+import cn.daxpay.single.core.code.TransferTypeEnum;
+import cn.daxpay.single.core.param.PaymentCommonParam;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import javax.validation.constraints.Min;
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Size;
+
+/**
+ * 转账参数
+ * @author xxm
+ * @since 2024/5/26
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+@Accessors(chain = true)
+@Schema(title = "转账参数")
+public class TransferParam extends PaymentCommonParam {
+
+    /** 商户转账号 */
+    @NotNull(message = "商户转账号必填")
+    @Size(max = 100, message = "商户转账号不可超过100位")
+    @Schema(description = "商户转账号")
+    private String bizTransferNo;
+
+    /**
+     * 支付通道
+     * @see PayChannelEnum
+     */
+    @NotNull(message = "支付通道必填")
+    @Size(max = 20, message = "支付通道不可超过20位")
+    @Schema(description = "支付通道")
+    private String channel;
+
+    /** 转账金额 */
+    @NotNull(message = "转账金额必填")
+    @Min(value = 1, message = "转账金额至少为0.01元")
+    @Schema(description = "转账金额")
+    private Integer amount;
+
+    /** 标题 */
+    @Size(max = 100, message = "标题不可超过100位")
+    @Schema(description = "标题")
+    private String title;
+
+    /** 转账原因/备注 */
+    @Size(max = 150, message = "转账原因/备注不可超过150位")
+    @Schema(description = "转账原因/备注")
+    private String reason;
+
+    /**
+     * 转账类型, 微信使用
+     * @see TransferTypeEnum
+     */
+    @Size(max = 20, message = "转账类型不可超过20位")
+    @Schema(description = "转账类型, 微信使用")
+    private String transferType;
+
+
+    /**
+     * 收款人账号类型
+     * @see TransferPayeeTypeEnum
+     */
+    @Size(max = 20, message = "收款人账号类型不可超过20位")
+    @Schema(description = "收款人账号类型")
+    private String payeeType;
+
+    /** 收款人账号 */
+    @Size(max = 100, message = "收款人账号不可超过100位")
+    @Schema(description = "收款人账号")
+    private String payeeAccount;
+
+    /** 收款人姓名 */
+    @Size(max = 50, message = "收款人姓名不可超过50位")
+    @Schema(description = "收款人姓名")
+    private String payeeName;
+
+    /** 回调通知地址 */
+    @Size(max = 200, message = "回调通知地址不可超过200位")
+    @Schema(description = "回调通知地址")
+    private String notifyUrl;
+
+    /** 商户扩展参数,回调时会原样返回 */
+    @Size(max = 500, message = "商户扩展参数,回调时会原样返回不可超过500位")
+    @Schema(description = "商户扩展参数,回调时会原样返回")
+    private String attach;
+}
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/param/payment/transfer/TransferSyncParam.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/param/payment/transfer/TransferSyncParam.java
new file mode 100644
index 0000000000000000000000000000000000000000..013797f8564c37ba8f5903c5d2628d46f0b80f52
--- /dev/null
+++ b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/param/payment/transfer/TransferSyncParam.java
@@ -0,0 +1,29 @@
+package cn.daxpay.single.core.param.payment.transfer;
+
+import cn.daxpay.single.core.param.PaymentCommonParam;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import javax.validation.constraints.Size;
+
+/**
+ * 转账状态同步参数
+ * @author xxm
+ * @since 2024/6/17
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+@Schema(title = "转账状态同步参数")
+public class TransferSyncParam extends PaymentCommonParam {
+
+    /** 商户转账号 */
+    @Size(max = 100, message = "商户转账号不可超过100位")
+    @Schema(description = "商户转账号")
+    private String bizTransferNo;
+
+    /** 转账号 */
+    @Size(max = 32, message = "转账号不可超过100位")
+    @Schema(description = "转账号")
+    private String transferNo;
+}
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/result/DaxResult.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/result/DaxResult.java
similarity index 95%
rename from daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/result/DaxResult.java
rename to daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/result/DaxResult.java
index a4ec33ed0801fdc41d283c23b0fd49913920bec4..f977b7e06b4e44c82802130323af5277b6e77907 100644
--- a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/result/DaxResult.java
+++ b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/result/DaxResult.java
@@ -1,4 +1,4 @@
-package cn.daxpay.single.result;
+package cn.daxpay.single.core.result;
 
 import cn.bootx.platform.common.core.code.CommonCode;
 import cn.bootx.platform.common.core.rest.ResResult;
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/result/PaymentCommonResult.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/result/PaymentCommonResult.java
similarity index 87%
rename from daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/result/PaymentCommonResult.java
rename to daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/result/PaymentCommonResult.java
index 47aa33c41df734854177cbd62279a40117b2ee15..0aa7b4cd364ec8d41301e5f8c5eafc17a34dc034 100644
--- a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/result/PaymentCommonResult.java
+++ b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/result/PaymentCommonResult.java
@@ -1,6 +1,6 @@
-package cn.daxpay.single.result;
+package cn.daxpay.single.core.result;
 
-import cn.daxpay.single.serializer.LocalDateTimeToTimestampSerializer;
+import cn.daxpay.single.core.serializer.LocalDateTimeToTimestampSerializer;
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/result/allocation/AllocReceiverAddResult.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/result/allocation/AllocReceiverAddResult.java
similarity index 79%
rename from daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/result/allocation/AllocReceiverAddResult.java
rename to daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/result/allocation/AllocReceiverAddResult.java
index 87e1c6814e3a9a36af505a14f29713e2db30686d..11562df0f788329b48c8495730c3125c7f7593db 100644
--- a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/result/allocation/AllocReceiverAddResult.java
+++ b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/result/allocation/AllocReceiverAddResult.java
@@ -1,6 +1,6 @@
-package cn.daxpay.single.result.allocation;
+package cn.daxpay.single.core.result.allocation;
 
-import cn.daxpay.single.result.pay.PayCloseResult;
+import cn.daxpay.single.core.result.pay.PayCloseResult;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/result/allocation/AllocReceiverRemoveResult.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/result/allocation/AllocReceiverRemoveResult.java
similarity index 79%
rename from daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/result/allocation/AllocReceiverRemoveResult.java
rename to daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/result/allocation/AllocReceiverRemoveResult.java
index 151f15ae73e1e8ad100caf1b26205c14ef42cc75..17e922d9ea3f0dbab4864bdad4bec8b853ce63ef 100644
--- a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/result/allocation/AllocReceiverRemoveResult.java
+++ b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/result/allocation/AllocReceiverRemoveResult.java
@@ -1,6 +1,6 @@
-package cn.daxpay.single.result.allocation;
+package cn.daxpay.single.core.result.allocation;
 
-import cn.daxpay.single.result.pay.PayCloseResult;
+import cn.daxpay.single.core.result.pay.PayCloseResult;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/result/allocation/AllocReceiverResult.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/result/allocation/AllocReceiverResult.java
similarity index 80%
rename from daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/result/allocation/AllocReceiverResult.java
rename to daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/result/allocation/AllocReceiverResult.java
index 15b8738e3a8ed972ce2c145701af63cc0ca9f28f..234355b658b06c03f069df6fdc76619917bd4c34 100644
--- a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/result/allocation/AllocReceiverResult.java
+++ b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/result/allocation/AllocReceiverResult.java
@@ -1,8 +1,8 @@
-package cn.daxpay.single.result.allocation;
+package cn.daxpay.single.core.result.allocation;
 
-import cn.daxpay.single.code.AllocReceiverTypeEnum;
-import cn.daxpay.single.code.AllocRelationTypeEnum;
-import cn.daxpay.single.code.PayChannelEnum;
+import cn.daxpay.single.core.code.AllocReceiverTypeEnum;
+import cn.daxpay.single.core.code.AllocRelationTypeEnum;
+import cn.daxpay.single.core.code.PayChannelEnum;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 import lombok.experimental.Accessors;
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/result/allocation/AllocReceiversResult.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/result/allocation/AllocReceiversResult.java
similarity index 83%
rename from daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/result/allocation/AllocReceiversResult.java
rename to daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/result/allocation/AllocReceiversResult.java
index d156dd047d1ff3742b927a1e9b507ac9b6f54750..d8ef7e253e838162dbbcc0bd24e7f4dc49b3728e 100644
--- a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/result/allocation/AllocReceiversResult.java
+++ b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/result/allocation/AllocReceiversResult.java
@@ -1,6 +1,6 @@
-package cn.daxpay.single.result.allocation;
+package cn.daxpay.single.core.result.allocation;
 
-import cn.daxpay.single.result.pay.PayCloseResult;
+import cn.daxpay.single.core.result.pay.PayCloseResult;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/result/allocation/AllocationResult.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/result/allocation/AllocationResult.java
similarity index 75%
rename from daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/result/allocation/AllocationResult.java
rename to daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/result/allocation/AllocationResult.java
index ca0444ccae9ccd29447413164887eaf55cc3ef90..d1b623b6b9656cf60e65acb47af45ba7c685c045 100644
--- a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/result/allocation/AllocationResult.java
+++ b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/result/allocation/AllocationResult.java
@@ -1,7 +1,7 @@
-package cn.daxpay.single.result.allocation;
+package cn.daxpay.single.core.result.allocation;
 
-import cn.daxpay.single.code.AllocOrderStatusEnum;
-import cn.daxpay.single.result.PaymentCommonResult;
+import cn.daxpay.single.core.code.AllocOrderStatusEnum;
+import cn.daxpay.single.core.result.PaymentCommonResult;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
@@ -20,11 +20,11 @@ public class AllocationResult extends PaymentCommonResult {
 
     /** 分账订单号 */
     @Schema(description = "分账订单号")
-    private String allocationNo;
+    private String allocNo;
 
     /** 商户分账订单号 */
     @Schema(description = "商户分账订单号")
-    private String bizAllocationNo;
+    private String bizAllocNo;
 
     /**
      * 分账状态
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/result/assist/WxAccessTokenResult.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/result/assist/WxAccessTokenResult.java
similarity index 84%
rename from daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/result/assist/WxAccessTokenResult.java
rename to daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/result/assist/WxAccessTokenResult.java
index 0551b97d033d4df6481313f1e0c12cb6c2d8a61b..181384f84509463d046cf68c66cd3208b6141bbb 100644
--- a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/result/assist/WxAccessTokenResult.java
+++ b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/result/assist/WxAccessTokenResult.java
@@ -1,6 +1,6 @@
-package cn.daxpay.single.result.assist;
+package cn.daxpay.single.core.result.assist;
 
-import cn.daxpay.single.result.PaymentCommonResult;
+import cn.daxpay.single.core.result.PaymentCommonResult;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/result/assist/WxAuthUrlResult.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/result/assist/WxAuthUrlResult.java
similarity index 82%
rename from daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/result/assist/WxAuthUrlResult.java
rename to daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/result/assist/WxAuthUrlResult.java
index 17f2319f1175553c0c2d0c5a36b7be4699c35f02..0d185a46013e578f755db1728d3545ac3695b18c 100644
--- a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/result/assist/WxAuthUrlResult.java
+++ b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/result/assist/WxAuthUrlResult.java
@@ -1,6 +1,6 @@
-package cn.daxpay.single.result.assist;
+package cn.daxpay.single.core.result.assist;
 
-import cn.daxpay.single.result.PaymentCommonResult;
+import cn.daxpay.single.core.result.PaymentCommonResult;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/result/order/AllocOrderDetailResult.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/result/order/AllocOrderDetailResult.java
similarity index 90%
rename from daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/result/order/AllocOrderDetailResult.java
rename to daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/result/order/AllocOrderDetailResult.java
index a896e9aa720402b1ecf8d29aed0edb996f317639..f5e63b702209b15863341478c0d772c608d3ec77 100644
--- a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/result/order/AllocOrderDetailResult.java
+++ b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/result/order/AllocOrderDetailResult.java
@@ -1,7 +1,7 @@
-package cn.daxpay.single.result.order;
+package cn.daxpay.single.core.result.order;
 
-import cn.daxpay.single.code.AllocDetailResultEnum;
-import cn.daxpay.single.code.AllocReceiverTypeEnum;
+import cn.daxpay.single.core.code.AllocDetailResultEnum;
+import cn.daxpay.single.core.code.AllocReceiverTypeEnum;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 import lombok.experimental.Accessors;
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/result/order/AllocOrderResult.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/result/order/AllocOrderResult.java
similarity index 86%
rename from daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/result/order/AllocOrderResult.java
rename to daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/result/order/AllocOrderResult.java
index 2ab85ea4bac35310629bfce622732446a524a52a..b45e541bee3fefe531a04e3e93516edc74d2b8c8 100644
--- a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/result/order/AllocOrderResult.java
+++ b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/result/order/AllocOrderResult.java
@@ -1,9 +1,9 @@
-package cn.daxpay.single.result.order;
+package cn.daxpay.single.core.result.order;
 
-import cn.daxpay.single.code.AllocOrderResultEnum;
-import cn.daxpay.single.code.AllocOrderStatusEnum;
-import cn.daxpay.single.code.PayChannelEnum;
-import cn.daxpay.single.result.PaymentCommonResult;
+import cn.daxpay.single.core.code.AllocOrderResultEnum;
+import cn.daxpay.single.core.code.AllocOrderStatusEnum;
+import cn.daxpay.single.core.code.PayChannelEnum;
+import cn.daxpay.single.core.result.PaymentCommonResult;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
@@ -25,15 +25,15 @@ public class AllocOrderResult extends PaymentCommonResult {
 
     /** 分账单号 */
     @Schema(description = "分账单号")
-    private String allocationNo;
+    private String allocNo;
 
     /** 商户分账单号 */
     @Schema(description = "商户分账单号")
-    private String bizAllocationNo;
+    private String bizAllocNo;
 
     /** 通道分账号 */
     @Schema(description = "通道分账号")
-    private String outAllocationNo;
+    private String outAllocNo;
 
     /**
      * 支付订单号
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/result/order/PayOrderResult.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/result/order/PayOrderResult.java
similarity index 80%
rename from daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/result/order/PayOrderResult.java
rename to daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/result/order/PayOrderResult.java
index d7bdbb577994a523befe9a3829d7786e9688042f..f1d28cc85afdc98784803f2d7e730af1da54d660 100644
--- a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/result/order/PayOrderResult.java
+++ b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/result/order/PayOrderResult.java
@@ -1,10 +1,11 @@
-package cn.daxpay.single.result.order;
-
-import cn.daxpay.single.code.PayChannelEnum;
-import cn.daxpay.single.code.PayOrderAllocStatusEnum;
-import cn.daxpay.single.code.PayStatusEnum;
-import cn.daxpay.single.result.PaymentCommonResult;
-import cn.daxpay.single.serializer.LocalDateTimeToTimestampSerializer;
+package cn.daxpay.single.core.result.order;
+
+import cn.daxpay.single.core.code.PayChannelEnum;
+import cn.daxpay.single.core.code.PayOrderAllocStatusEnum;
+import cn.daxpay.single.core.code.PayOrderRefundStatusEnum;
+import cn.daxpay.single.core.code.PayStatusEnum;
+import cn.daxpay.single.core.result.PaymentCommonResult;
+import cn.daxpay.single.core.serializer.LocalDateTimeToTimestampSerializer;
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
@@ -55,7 +56,7 @@ public class PayOrderResult extends PaymentCommonResult {
      * 支付通道
      * @see PayChannelEnum
      */
-    @Schema(description = "异步支付通道")
+    @Schema(description = "支付通道")
     private String channel;
 
     /**
@@ -79,12 +80,19 @@ public class PayOrderResult extends PaymentCommonResult {
     @Schema(description = "支付状态")
     private String status;
 
+    /**
+     * 退款状态
+     * @see PayOrderRefundStatusEnum
+     */
+    @Schema(description = "退款状态")
+    private String refundStatus;
+
     /**
      * 分账状态
      * @see PayOrderAllocStatusEnum
      */
     @Schema(description = "分账状态")
-    private String allocationStatus;
+    private String allocStatus;
 
     /** 支付时间 */
     @Schema(description = "支付时间")
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/result/order/RefundOrderResult.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/result/order/RefundOrderResult.java
similarity index 89%
rename from daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/result/order/RefundOrderResult.java
rename to daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/result/order/RefundOrderResult.java
index f2f9b1a4bb5e914b4fec84118982a458b236b7c8..00b224393394aba0bbea4d52e4cdfff39a6ba970 100644
--- a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/result/order/RefundOrderResult.java
+++ b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/result/order/RefundOrderResult.java
@@ -1,9 +1,9 @@
-package cn.daxpay.single.result.order;
+package cn.daxpay.single.core.result.order;
 
-import cn.daxpay.single.code.PayChannelEnum;
-import cn.daxpay.single.code.RefundStatusEnum;
-import cn.daxpay.single.result.PaymentCommonResult;
-import cn.daxpay.single.serializer.LocalDateTimeToTimestampSerializer;
+import cn.daxpay.single.core.code.PayChannelEnum;
+import cn.daxpay.single.core.code.RefundStatusEnum;
+import cn.daxpay.single.core.result.PaymentCommonResult;
+import cn.daxpay.single.core.serializer.LocalDateTimeToTimestampSerializer;
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/result/order/TransferOrderResult.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/result/order/TransferOrderResult.java
new file mode 100644
index 0000000000000000000000000000000000000000..3ae2ba0e40e8d0027617496351f7a0b5a464fb39
--- /dev/null
+++ b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/result/order/TransferOrderResult.java
@@ -0,0 +1,101 @@
+package cn.daxpay.single.core.result.order;
+
+import cn.daxpay.single.core.code.PayChannelEnum;
+import cn.daxpay.single.core.code.TransferPayeeTypeEnum;
+import cn.daxpay.single.core.code.TransferStatusEnum;
+import cn.daxpay.single.core.code.TransferTypeEnum;
+import cn.daxpay.single.core.result.PaymentCommonResult;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.time.LocalDateTime;
+
+/**
+ * 转账订单数据
+ * @author xxm
+ * @since 2024/6/17
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+@Accessors(chain = true)
+@Schema(title = "转账订单数据")
+public class TransferOrderResult extends PaymentCommonResult {
+
+    /** 商户转账号 */
+    @Schema(description = "商户转账号")
+    private String bizTransferNo;
+
+    /** 转账号 */
+    @Schema(description = "转账号")
+    private String transferNo;
+
+    /** 通道转账号 */
+    @Schema(description = "通道转账号")
+    private String outTransferNo;
+
+    /**
+     * 支付通道
+     * @see PayChannelEnum
+     */
+    @Schema(description = "支付通道")
+    private String channel;
+
+    /** 转账金额 */
+    @Schema(description = "转账金额")
+    private Integer amount;
+
+    /** 标题 */
+    @Schema(description = "标题")
+    private String title;
+
+    /** 转账原因/备注 */
+    @Schema(description = "转账原因/备注")
+    private String reason;
+
+    /**
+     * 转账类型, 微信使用
+     * @see TransferTypeEnum
+     */
+    @Schema(description = "转账类型, 微信使用")
+    private String transferType;
+
+    /**
+     * 收款人类型
+     * @see TransferPayeeTypeEnum
+     */
+    @Schema(description = "收款人类型")
+    private String payeeType;
+
+    /** 收款人账号 */
+    @Schema(description = "收款人账号")
+    private String payeeAccount;
+
+    /** 收款人姓名 */
+    @Schema(description = "收款人姓名")
+    private String payeeName;
+
+    /**
+     * 状态
+     * @see TransferStatusEnum
+     */
+    @Schema(description = "状态")
+    private String status;
+
+    /** 成功时间 */
+    @Schema(description = "成功时间")
+    private LocalDateTime successTime;
+
+    /**
+     * 错误码
+     */
+    @Schema(description = "错误码")
+    private String errorCode;
+
+    /**
+     * 错误原因
+     */
+    @Schema(description = "错误原因")
+    private String errorMsg;
+}
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/param/payment/transfer/TransferParam.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/result/pay/PayCancelResult.java
similarity index 48%
rename from daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/param/payment/transfer/TransferParam.java
rename to daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/result/pay/PayCancelResult.java
index 99f50633b747813e12001aaf5b60f51066e82106..cac6b2ad463f3c53ccc9af25e54d43a0ec4dc118 100644
--- a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/param/payment/transfer/TransferParam.java
+++ b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/result/pay/PayCancelResult.java
@@ -1,19 +1,19 @@
-package cn.daxpay.single.param.payment.transfer;
+package cn.daxpay.single.core.result.pay;
 
-import cn.daxpay.single.param.PaymentCommonParam;
+import cn.daxpay.single.core.result.PaymentCommonResult;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
 
 /**
- * 转账参数
+ * 支付关闭响应参数
  * @author xxm
- * @since 2024/5/26
+ * @since 2024/4/23
  */
 @EqualsAndHashCode(callSuper = true)
 @Data
 @Accessors(chain = true)
-@Schema(title = "转账参数")
-public class TransferParam extends PaymentCommonParam {
+@Schema(title = "支付撤销响应参数")
+public class PayCancelResult extends PaymentCommonResult {
 }
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/result/pay/PayCloseResult.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/result/pay/PayCloseResult.java
similarity index 79%
rename from daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/result/pay/PayCloseResult.java
rename to daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/result/pay/PayCloseResult.java
index 95802e15a30836ca3466e8cc17b683f34fb66c4a..4800d8637ead2c1cda6a0a4c95190416a0390203 100644
--- a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/result/pay/PayCloseResult.java
+++ b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/result/pay/PayCloseResult.java
@@ -1,6 +1,6 @@
-package cn.daxpay.single.result.pay;
+package cn.daxpay.single.core.result.pay;
 
-import cn.daxpay.single.result.PaymentCommonResult;
+import cn.daxpay.single.core.result.PaymentCommonResult;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/result/pay/PayResult.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/result/pay/PayResult.java
similarity index 89%
rename from daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/result/pay/PayResult.java
rename to daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/result/pay/PayResult.java
index bfd5206ad1d5325082786bacb3ae5d3b3109a379..bbc787d0ef584f04ef1c74a213b210981edb601a 100644
--- a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/result/pay/PayResult.java
+++ b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/result/pay/PayResult.java
@@ -1,6 +1,6 @@
-package cn.daxpay.single.result.pay;
+package cn.daxpay.single.core.result.pay;
 
-import cn.daxpay.single.result.PaymentCommonResult;
+import cn.daxpay.single.core.result.PaymentCommonResult;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/result/pay/RefundResult.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/result/pay/RefundResult.java
similarity index 87%
rename from daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/result/pay/RefundResult.java
rename to daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/result/pay/RefundResult.java
index 274bef52ceed13f8b0c8ecd0fd220a568986e08f..9ba3b8f7a4ddc5735a0e11156b0f910eeb503a4e 100644
--- a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/result/pay/RefundResult.java
+++ b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/result/pay/RefundResult.java
@@ -1,6 +1,6 @@
-package cn.daxpay.single.result.pay;
+package cn.daxpay.single.core.result.pay;
 
-import cn.daxpay.single.result.PaymentCommonResult;
+import cn.daxpay.single.core.result.PaymentCommonResult;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/result/sync/AllocSyncResult.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/result/sync/AllocSyncResult.java
similarity index 79%
rename from daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/result/sync/AllocSyncResult.java
rename to daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/result/sync/AllocSyncResult.java
index 1fe925e3a88b5a18f974f3693a932e9c3695fe04..7cc6c3ecc450928ea3354438d631c460f08a9445 100644
--- a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/result/sync/AllocSyncResult.java
+++ b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/result/sync/AllocSyncResult.java
@@ -1,6 +1,6 @@
-package cn.daxpay.single.result.sync;
+package cn.daxpay.single.core.result.sync;
 
-import cn.daxpay.single.result.PaymentCommonResult;
+import cn.daxpay.single.core.result.PaymentCommonResult;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/result/sync/PaySyncResult.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/result/sync/PaySyncResult.java
similarity index 71%
rename from daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/result/sync/PaySyncResult.java
rename to daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/result/sync/PaySyncResult.java
index 2098a64adb44fd82a03f0c5f75827b1da0c6f99b..a4181cfd00a4d75d88b5baf9588deb655a912b0f 100644
--- a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/result/sync/PaySyncResult.java
+++ b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/result/sync/PaySyncResult.java
@@ -1,13 +1,13 @@
-package cn.daxpay.single.result.sync;
+package cn.daxpay.single.core.result.sync;
 
-import cn.daxpay.single.code.PaySyncStatusEnum;
-import cn.daxpay.single.result.PaymentCommonResult;
+import cn.daxpay.single.core.code.PaySyncStatusEnum;
+import cn.daxpay.single.core.result.PaymentCommonResult;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
 
-import static cn.daxpay.single.code.PaySyncStatusEnum.FAIL;
+import static cn.daxpay.single.core.code.PaySyncStatusEnum.FAIL;
 
 /**
  * 支付同步结果
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/result/sync/RefundSyncResult.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/result/sync/RefundSyncResult.java
similarity index 67%
rename from daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/result/sync/RefundSyncResult.java
rename to daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/result/sync/RefundSyncResult.java
index fdf25067c5413da598582c95f3fcc97c94bdb549..f3456ca0035cbc86557b1b4aa06591aff187e230 100644
--- a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/result/sync/RefundSyncResult.java
+++ b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/result/sync/RefundSyncResult.java
@@ -1,14 +1,14 @@
-package cn.daxpay.single.result.sync;
+package cn.daxpay.single.core.result.sync;
 
-import cn.daxpay.single.code.PaySyncStatusEnum;
-import cn.daxpay.single.code.RefundSyncStatusEnum;
-import cn.daxpay.single.result.PaymentCommonResult;
+import cn.daxpay.single.core.code.PaySyncStatusEnum;
+import cn.daxpay.single.core.code.RefundSyncStatusEnum;
+import cn.daxpay.single.core.result.PaymentCommonResult;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
 
-import static cn.daxpay.single.code.PaySyncStatusEnum.FAIL;
+import static cn.daxpay.single.core.code.PaySyncStatusEnum.FAIL;
 
 /**
  * 退款同步结果
diff --git a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/dto/wechat/WeChatNoticeConfigDto.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/result/sync/TransferSyncResult.java
similarity index 35%
rename from bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/dto/wechat/WeChatNoticeConfigDto.java
rename to daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/result/sync/TransferSyncResult.java
index d60fcd4993be25434f1135c319655e020944f45e..2aa15323782b477e4771caf8393c8f0c3211dd46 100644
--- a/bootx-platform/bootx-services/service-notice/src/main/java/cn/bootx/platform/notice/dto/wechat/WeChatNoticeConfigDto.java
+++ b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/result/sync/TransferSyncResult.java
@@ -1,25 +1,27 @@
-package cn.bootx.platform.notice.dto.wechat;
+package cn.daxpay.single.core.result.sync;
 
-import cn.bootx.platform.common.core.rest.dto.BaseDto;
+import cn.daxpay.single.core.code.TransferStatusEnum;
+import cn.daxpay.single.core.result.PaymentCommonResult;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
 
-import java.io.Serializable;
-
 /**
- * 微信通知配置
- *
+ * 转账同步结果
  * @author xxm
- * @since 2021/8/10
+ * @since 2024/6/17
  */
 @EqualsAndHashCode(callSuper = true)
 @Data
 @Accessors(chain = true)
-@Schema(title = "微信通知配置")
-public class WeChatNoticeConfigDto extends BaseDto implements Serializable {
-
-    private static final long serialVersionUID = 4862614438727322307L;
+@Schema(title = "转账同步结果")
+public class TransferSyncResult  extends PaymentCommonResult {
 
+    /**
+     * 转账状态
+     * @see TransferStatusEnum
+     */
+    @Schema(description = "转账状态")
+    private String status;
 }
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/result/transfer/TransferResult.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/result/transfer/TransferResult.java
new file mode 100644
index 0000000000000000000000000000000000000000..9d37910685849be0790f7b8e8131ca61f0aefbff
--- /dev/null
+++ b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/result/transfer/TransferResult.java
@@ -0,0 +1,35 @@
+package cn.daxpay.single.core.result.transfer;
+
+import cn.daxpay.single.core.code.TransferStatusEnum;
+import cn.daxpay.single.core.result.PaymentCommonResult;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * 转账结果
+ * @author xxm
+ * @since 2024/6/6
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+@Accessors(chain = true)
+@Schema(title = "转账结果")
+public class TransferResult extends PaymentCommonResult {
+
+    /** 商户转账号 */
+    @Schema(description = "商户转账号")
+    private String bizTransferNo;
+
+    /** 转账号 */
+    @Schema(description = "转账号")
+    private String transferNo;
+
+    /**
+     * 状态
+     * @see TransferStatusEnum
+     */
+    @Schema(description = "状态")
+    private String status;
+}
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/serializer/LocalDateTimeToTimestampSerializer.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/serializer/LocalDateTimeToTimestampSerializer.java
similarity index 95%
rename from daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/serializer/LocalDateTimeToTimestampSerializer.java
rename to daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/serializer/LocalDateTimeToTimestampSerializer.java
index 895a0c313e34b8a8a6a06c842d7ed58e2e54d04a..8504df3afec7899cfa78792a2b40b882b935f2ac 100644
--- a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/serializer/LocalDateTimeToTimestampSerializer.java
+++ b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/serializer/LocalDateTimeToTimestampSerializer.java
@@ -1,4 +1,4 @@
-package cn.daxpay.single.serializer;
+package cn.daxpay.single.core.serializer;
 
 import cn.bootx.platform.common.core.util.LocalDateTimeUtil;
 import com.fasterxml.jackson.core.JsonGenerator;
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/serializer/TimestampToLocalDateTimeDeserializer.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/serializer/TimestampToLocalDateTimeDeserializer.java
similarity index 95%
rename from daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/serializer/TimestampToLocalDateTimeDeserializer.java
rename to daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/serializer/TimestampToLocalDateTimeDeserializer.java
index 66d6e9e6ac5c027d2b4b8b0c1f43b32f33c19a8e..8bddf24d0c3e19e7780a3f06f677ef994e4c45a2 100644
--- a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/serializer/TimestampToLocalDateTimeDeserializer.java
+++ b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/serializer/TimestampToLocalDateTimeDeserializer.java
@@ -1,4 +1,4 @@
-package cn.daxpay.single.serializer;
+package cn.daxpay.single.core.serializer;
 
 import cn.bootx.platform.common.core.util.LocalDateTimeUtil;
 import cn.hutool.core.util.StrUtil;
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/util/DaxRes.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/util/DaxRes.java
similarity index 85%
rename from daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/util/DaxRes.java
rename to daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/util/DaxRes.java
index bd5c0c8a5086887d0767e779b6389b98fa415cab..20c60cba64899883c2f4d4669ee6adf95b2042ed 100644
--- a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/util/DaxRes.java
+++ b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/util/DaxRes.java
@@ -1,6 +1,6 @@
-package cn.daxpay.single.util;
+package cn.daxpay.single.core.util;
 
-import cn.daxpay.single.result.DaxResult;
+import cn.daxpay.single.core.result.DaxResult;
 import lombok.experimental.UtilityClass;
 
 import static cn.bootx.platform.common.core.code.CommonCode.SUCCESS_CODE;
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/util/OrderNoGenerateUtil.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/util/OrderNoGenerateUtil.java
similarity index 98%
rename from daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/util/OrderNoGenerateUtil.java
rename to daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/util/OrderNoGenerateUtil.java
index 2bbda258ccd83c652a996e61d321eaff4dfa6140..25f003640121318940b5a390a0efd6d2c475a7ab 100644
--- a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/util/OrderNoGenerateUtil.java
+++ b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/util/OrderNoGenerateUtil.java
@@ -1,4 +1,4 @@
-package cn.daxpay.single.util;
+package cn.daxpay.single.core.util;
 
 import lombok.Setter;
 import lombok.extern.slf4j.Slf4j;
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/util/PaySignUtil.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/util/PaySignUtil.java
similarity index 98%
rename from daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/util/PaySignUtil.java
rename to daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/util/PaySignUtil.java
index 912b7b5967a6b7677592881b78a9ff541f7094a6..3eba67324758f5d2fbce9a1bcc6a62978ea54579 100644
--- a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/util/PaySignUtil.java
+++ b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/util/PaySignUtil.java
@@ -1,4 +1,4 @@
-package cn.daxpay.single.util;
+package cn.daxpay.single.core.util;
 
 import cn.bootx.platform.common.core.util.LocalDateTimeUtil;
 import cn.hutool.core.util.ClassUtil;
@@ -14,8 +14,6 @@ import java.time.LocalDateTime;
 import java.util.*;
 import java.util.stream.Collectors;
 
-import static cn.daxpay.single.code.DaxPayCode.FIELD_SIGN;
-
 /**
  * 如果需要进行签名,
  *  1. 参数名ASCII码从小到大排序(字典序)
@@ -27,6 +25,9 @@ import static cn.daxpay.single.code.DaxPayCode.FIELD_SIGN;
 @UtilityClass
 public class PaySignUtil {
 
+    private String FIELD_SIGN  = "sign";
+
+
     /**
      * 将参数转换为map对象. 使用ChatGPT生成
      * 1. 参数名ASCII码从小到大排序(字典序)
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/util/PayUtil.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/util/PayUtil.java
similarity index 68%
rename from daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/util/PayUtil.java
rename to daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/util/PayUtil.java
index 7ab669d39272af76ba3ac0c168ad7159060a214e..c7fb45fc774d61e85d9b951c65905b4f14a89462 100644
--- a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/util/PayUtil.java
+++ b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/util/PayUtil.java
@@ -1,15 +1,16 @@
-package cn.daxpay.single.util;
+package cn.daxpay.single.core.util;
 
 import cn.bootx.platform.common.core.util.LocalDateTimeUtil;
-import cn.daxpay.single.exception.pay.PayAmountAbnormalException;
-import cn.daxpay.single.param.payment.pay.PayParam;
 import cn.hutool.core.date.DatePattern;
 import lombok.experimental.UtilityClass;
 
+import javax.servlet.http.HttpServletRequest;
 import java.math.BigDecimal;
 import java.math.RoundingMode;
 import java.time.LocalDateTime;
 import java.time.temporal.ChronoUnit;
+import java.util.HashMap;
+import java.util.Map;
 
 /**
  * 支付工具类
@@ -20,24 +21,6 @@ import java.time.temporal.ChronoUnit;
 public class PayUtil {
     private static final BigDecimal HUNDRED = new BigDecimal(100);
 
-    /**
-     * 校验参数
-     */
-    public void validation(PayParam payParam) {
-        // 验证支付金额
-        validationAmount(payParam);
-    }
-
-    /**
-     * 检查支付金额
-     */
-    public void validationAmount(PayParam param) {
-        // 验证支付金额
-        if (param.getAmount() <= 0) {
-            throw new PayAmountAbnormalException("支付金额不能小于等于0");
-        }
-    }
-
     /**
      * 获取支付宝的过期时间 yyyy-MM-dd HH:mm:ss
      */
@@ -71,7 +54,7 @@ public class PayUtil {
      * @param amount 元的金额
      * @return 分的金额
      */
-    public static int convertCentAmount(BigDecimal amount) {
+    public int convertCentAmount(BigDecimal amount) {
         return amount.multiply(HUNDRED).setScale(0, RoundingMode.HALF_UP).intValue();
     }
 
@@ -81,7 +64,27 @@ public class PayUtil {
      * @param amount 元的金额
      * @return 元的金额 两位小数
      */
-    public static BigDecimal conversionAmount(int amount) {
+    public BigDecimal conversionAmount(int amount) {
         return BigDecimal.valueOf(amount).divide(HUNDRED,2, RoundingMode.HALF_UP);
     }
+
+    /**
+     * 获取请求参数
+     */
+    public Map<String, String> toMap(HttpServletRequest request) {
+        Map<String, String> params = new HashMap<>();
+        Map<String, String[]> requestParams = request.getParameterMap();
+
+        for (String name : requestParams.keySet()) {
+            String[] values = requestParams.get(name);
+            String valueStr = "";
+
+            for (int i = 0; i < values.length; ++i) {
+                valueStr = i == values.length - 1 ? valueStr + values[i] : valueStr + values[i] + ",";
+            }
+
+            params.put(name, valueStr);
+        }
+        return params;
+    }
 }
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/entity/RefundableInfo.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/entity/RefundableInfo.java
deleted file mode 100644
index 450bcfeb33052aa501b0eee71e932ee24cfbfeec..0000000000000000000000000000000000000000
--- a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/entity/RefundableInfo.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package cn.daxpay.single.entity;
-
-import cn.daxpay.single.code.PayChannelEnum;
-import lombok.Data;
-import lombok.experimental.Accessors;
-
-/**
- * 可退款信息(不持久化,直接保存为json)
- * @author xxm
- * @since 2023/12/18
- */
-@Data
-@Accessors(chain = true)
-public class RefundableInfo {
-    /**
-     * 通道
-     * @see PayChannelEnum#getCode()
-     */
-    private String channel;
-
-    /**
-     * 可退款金额
-      */
-    private Integer amount;
-}
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/exception/pay/PayAmountAbnormalException.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/exception/pay/PayAmountAbnormalException.java
deleted file mode 100644
index 82b94ef9dbda0c7c5dbbbd7e778723cdade45502..0000000000000000000000000000000000000000
--- a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/exception/pay/PayAmountAbnormalException.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package cn.daxpay.single.exception.pay;
-
-import cn.bootx.platform.common.core.exception.FatalException;
-import cn.daxpay.single.code.DaxPayErrorCode;
-
-/**
- * 异常金额
- *
- * @author xxm
- * @since 2020/12/8
- */
-public class PayAmountAbnormalException extends FatalException {
-
-    public PayAmountAbnormalException(String msg) {
-        super(DaxPayErrorCode.PAYMENT_AMOUNT_ABNORMAL, msg);
-    }
-
-    public PayAmountAbnormalException() {
-        super(DaxPayErrorCode.PAYMENT_AMOUNT_ABNORMAL, "异常金额");
-    }
-
-}
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/exception/pay/PayHasExistedException.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/exception/pay/PayHasExistedException.java
deleted file mode 100644
index a8fc455832286fb02dc1dc98ea52f70de14a983a..0000000000000000000000000000000000000000
--- a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/exception/pay/PayHasExistedException.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package cn.daxpay.single.exception.pay;
-
-import cn.bootx.platform.common.core.exception.BizException;
-import cn.daxpay.single.code.DaxPayErrorCode;
-
-/**
- * 付款已存在
- *
- * @author xxm
- * @since 2020/12/8
- */
-public class PayHasExistedException extends BizException {
-
-    public PayHasExistedException() {
-        super(DaxPayErrorCode.PAYMENT_HAS_EXISTED, "付款已存在");
-    }
-
-}
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/exception/pay/PayIsProcessingException.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/exception/pay/PayIsProcessingException.java
deleted file mode 100644
index c866f09c6c29f44ae939fc85dc69e65e6c24e5c2..0000000000000000000000000000000000000000
--- a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/exception/pay/PayIsProcessingException.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package cn.daxpay.single.exception.pay;
-
-import cn.bootx.platform.common.core.exception.BizException;
-import cn.daxpay.single.code.DaxPayErrorCode;
-
-/**
- * 付款正在处理中
- *
- * @author xxm
- * @since 2020/12/8
- */
-public class PayIsProcessingException extends BizException {
-
-    public PayIsProcessingException() {
-        super(DaxPayErrorCode.PAYMENT_IS_PROCESSING, "付款正在处理中");
-    }
-
-}
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/exception/pay/PayNotExistedException.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/exception/pay/PayNotExistedException.java
deleted file mode 100644
index 9d436afa62488009bd77fe093b2b66903ab0fdc3..0000000000000000000000000000000000000000
--- a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/exception/pay/PayNotExistedException.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package cn.daxpay.single.exception.pay;
-
-import cn.bootx.platform.common.core.exception.BizException;
-import cn.daxpay.single.code.DaxPayErrorCode;
-
-/**
- * 付款记录不存在
- *
- * @author xxm
- * @since 2020/12/8
- */
-public class PayNotExistedException extends BizException {
-
-    public PayNotExistedException() {
-        super(DaxPayErrorCode.PAYMENT_RECORD_NOT_EXISTED, "付款记录不存在");
-    }
-
-}
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/exception/pay/PayUnsupportedMethodException.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/exception/pay/PayUnsupportedMethodException.java
deleted file mode 100644
index 128b973f21b9840e95283a2ee9a5e98dbc4ef0b1..0000000000000000000000000000000000000000
--- a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/exception/pay/PayUnsupportedMethodException.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package cn.daxpay.single.exception.pay;
-
-import cn.bootx.platform.common.core.exception.FatalException;
-import cn.daxpay.single.code.DaxPayErrorCode;
-
-/**
- * 付款方式不支持异常
- *
- * @author xxm
- * @since 2020/12/9
- */
-public class PayUnsupportedMethodException extends FatalException {
-
-    public PayUnsupportedMethodException() {
-        super(DaxPayErrorCode.PAYMENT_METHOD_UNSUPPORT, "不支持的支付方式");
-    }
-
-}
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/exception/waller/WalletBannedException.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/exception/waller/WalletBannedException.java
deleted file mode 100644
index 947c83e1c34c52cdf231ee68e3e5724c02cea396..0000000000000000000000000000000000000000
--- a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/exception/waller/WalletBannedException.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package cn.daxpay.single.exception.waller;
-
-import cn.bootx.platform.common.core.exception.BizException;
-import cn.daxpay.single.code.DaxPayErrorCode;
-
-/**
- * 钱包被禁用
- *
- * @author xxm
- * @since 2020/12/8
- */
-public class WalletBannedException extends BizException {
-
-    public WalletBannedException() {
-        super(DaxPayErrorCode.WALLET_BANNED, "钱包被禁用");
-    }
-
-}
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/exception/waller/WalletInfoNotExistException.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/exception/waller/WalletInfoNotExistException.java
deleted file mode 100644
index bd812afb93edf5d31d6ac833261ff2f5e4434e14..0000000000000000000000000000000000000000
--- a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/exception/waller/WalletInfoNotExistException.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package cn.daxpay.single.exception.waller;
-
-import cn.bootx.platform.common.core.exception.FatalException;
-import cn.daxpay.single.code.DaxPayErrorCode;
-
-/**
- * 钱包信息不存在
- *
- * @author xxm
- * @since 2020/12/8
- */
-public class WalletInfoNotExistException extends FatalException {
-
-    public WalletInfoNotExistException() {
-        super(DaxPayErrorCode.WALLET_INFO_NOT_EXISTS, "钱包信息不存在");
-    }
-
-}
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/exception/waller/WalletLackOfBalanceException.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/exception/waller/WalletLackOfBalanceException.java
deleted file mode 100644
index ec3fecb9f93631d4b3f55a40fd8388c3cb538063..0000000000000000000000000000000000000000
--- a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/exception/waller/WalletLackOfBalanceException.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package cn.daxpay.single.exception.waller;
-
-import cn.bootx.platform.common.core.exception.BizException;
-import cn.daxpay.single.code.DaxPayErrorCode;
-
-/**
- * 余额不足异常
- *
- * @author xxm
- * @since 2020/12/8
- */
-public class WalletLackOfBalanceException extends BizException {
-
-    public WalletLackOfBalanceException() {
-        super(DaxPayErrorCode.WALLET_BALANCE_NOT_ENOUGH, "余额不足异常");
-    }
-
-}
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/exception/waller/WalletLogError.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/exception/waller/WalletLogError.java
deleted file mode 100644
index 749f836da4db693087aedd4d3494dedda775d6dd..0000000000000000000000000000000000000000
--- a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/exception/waller/WalletLogError.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package cn.daxpay.single.exception.waller;
-
-import cn.bootx.platform.common.core.exception.FatalException;
-import cn.daxpay.single.code.DaxPayErrorCode;
-
-/**
- * 钱包日志错误
- *
- * @author xxm
- * @since 2020/12/8
- */
-public class WalletLogError extends FatalException {
-
-    public WalletLogError() {
-        super(DaxPayErrorCode.WALLET_LOG_ERROR, "钱包日志错误");
-    }
-
-}
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/exception/waller/WalletNotExistsException.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/exception/waller/WalletNotExistsException.java
deleted file mode 100644
index 36ce2fd6e72b6109b65b4aff917702bc5deffe87..0000000000000000000000000000000000000000
--- a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/exception/waller/WalletNotExistsException.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package cn.daxpay.single.exception.waller;
-
-import cn.bootx.platform.common.core.exception.BizException;
-import cn.daxpay.single.code.DaxPayErrorCode;
-
-/**
- * 钱包不存在
- *
- * @author xxm
- * @since 2020/12/8
- */
-public class WalletNotExistsException extends BizException {
-
-    public WalletNotExistsException() {
-        super(DaxPayErrorCode.WALLET_NOT_EXISTS, "钱包不存在");
-    }
-
-}
diff --git a/daxpay-single/daxpay-single-gateway/pom.xml b/daxpay-single/daxpay-single-gateway/pom.xml
index 96f1ab4112c7fb65e24667cf9e66ae310a921853..98c5ce7da8b06de74dd0d66c333de0768e8566c2 100644
--- a/daxpay-single/daxpay-single-gateway/pom.xml
+++ b/daxpay-single/daxpay-single-gateway/pom.xml
@@ -6,7 +6,7 @@
     <parent>
         <groupId>cn.daxpay.single</groupId>
         <artifactId>daxpay-single</artifactId>
-        <version>2.0.7</version>
+        <version>2.0.8</version>
     </parent>
 
     <artifactId>daxpay-single-gateway</artifactId>
@@ -18,5 +18,4 @@
             <version>${daxpay.version}</version>
         </dependency>
     </dependencies>
-
 </project>
diff --git a/daxpay-single/daxpay-single-gateway/src/main/java/cn/daxpay/single/gateway/controller/PayCallbackController.java b/daxpay-single/daxpay-single-gateway/src/main/java/cn/daxpay/single/gateway/controller/CallbackReceiverController.java
similarity index 63%
rename from daxpay-single/daxpay-single-gateway/src/main/java/cn/daxpay/single/gateway/controller/PayCallbackController.java
rename to daxpay-single/daxpay-single-gateway/src/main/java/cn/daxpay/single/gateway/controller/CallbackReceiverController.java
index f99384ab926fae6dd576d670a225cc03f014ed79..b39c3a81629c8adcadf155f74e366fcf30d7cb50 100644
--- a/daxpay-single/daxpay-single-gateway/src/main/java/cn/daxpay/single/gateway/controller/PayCallbackController.java
+++ b/daxpay-single/daxpay-single-gateway/src/main/java/cn/daxpay/single/gateway/controller/CallbackReceiverController.java
@@ -4,9 +4,11 @@ import cn.bootx.platform.common.core.annotation.IgnoreAuth;
 import cn.daxpay.single.service.core.channel.alipay.service.AliPayCallbackService;
 import cn.daxpay.single.service.core.channel.union.service.UnionPayCallbackService;
 import cn.daxpay.single.service.core.channel.wechat.service.WeChatPayCallbackService;
+import cn.daxpay.single.service.core.extra.AliPayAuthService;
+import cn.daxpay.single.service.core.extra.WeChatAuthService;
 import cn.daxpay.single.service.sdk.union.api.UnionPayKit;
+import cn.daxpay.single.core.util.PayUtil;
 import com.egzosn.pay.union.api.UnionPayConfigStorage;
-import com.ijpay.alipay.AliPayApi;
 import com.ijpay.core.kit.HttpKit;
 import com.ijpay.core.kit.WxPayKit;
 import io.swagger.v3.oas.annotations.Operation;
@@ -14,15 +16,15 @@ import io.swagger.v3.oas.annotations.tags.Tag;
 import lombok.AllArgsConstructor;
 import lombok.SneakyThrows;
 import lombok.extern.slf4j.Slf4j;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.servlet.ModelAndView;
 
 import javax.servlet.http.HttpServletRequest;
 import java.util.Map;
 
 /**
  * 包括支付成功/退款/转账等一系列类型的回调处理
+ * 也包括获取微信OpenId/支付宝UserId等的授权回调
  * @author xxm
  * @since 2021/2/27
  */
@@ -30,24 +32,37 @@ import java.util.Map;
 @Slf4j
 @Tag(name = "支付通道信息回调")
 @RestController
-@RequestMapping("/callback/pay")
+@RequestMapping("/unipay/callback")
 @AllArgsConstructor
-public class PayCallbackController {
+public class CallbackReceiverController {
 
     private final AliPayCallbackService aliPayCallbackService;
 
+    private final WeChatAuthService wechatAuthService;
+
     private final WeChatPayCallbackService weChatPayCallbackService;
 
     private final UnionPayCallbackService unionPayCallbackService;
 
+    private final AliPayAuthService aliPayAuthService;
+
     @SneakyThrows
     @Operation(summary = "支付宝信息回调")
     @PostMapping("/alipay")
     public String aliPayNotify(HttpServletRequest request) {
-        Map<String, String> stringStringMap = AliPayApi.toMap(request);
+        Map<String, String> stringStringMap = PayUtil.toMap(request);
         return aliPayCallbackService.callback(stringStringMap);
     }
 
+
+    @Operation(summary = "支付宝认证授权回调")
+    @GetMapping("/alipay/auth/{code}")
+    public ModelAndView wechatCallback(@RequestParam("code") String authCode, @PathVariable("code") String code){
+        aliPayAuthService.authCallback(authCode, code);
+        // 调用页面自动关闭
+        return new ModelAndView("forward:/h5/openIdCallbackClose.html");
+    }
+
     @SneakyThrows
     @Operation(summary = "微信支付信息回调")
     @PostMapping("/wechat")
@@ -57,6 +72,14 @@ public class PayCallbackController {
         return weChatPayCallbackService.callback(params);
     }
 
+    @Operation(summary = "微信认证授权回调")
+    @GetMapping("/wechat/auth/{code}")
+    public ModelAndView wxAuthCallback(@RequestParam("code") String authCode, @PathVariable("code") String code){
+        wechatAuthService.authCallback(authCode, code);
+        // 调用页面自动关闭
+        return new ModelAndView("forward:/h5/openIdCallbackClose.html");
+    }
+
     @SuppressWarnings({"unchecked", "rawtypes"})
     @SneakyThrows
     @Operation(summary = "云闪付支付信息回调")
diff --git a/daxpay-single/daxpay-single-gateway/src/main/java/cn/daxpay/single/gateway/controller/ForwardH5Controller.java b/daxpay-single/daxpay-single-gateway/src/main/java/cn/daxpay/single/gateway/controller/ForwardH5Controller.java
deleted file mode 100644
index 9a35e62b9723613922132699a44d23d56d86dd2d..0000000000000000000000000000000000000000
--- a/daxpay-single/daxpay-single-gateway/src/main/java/cn/daxpay/single/gateway/controller/ForwardH5Controller.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package cn.daxpay.single.gateway.controller;
-
-import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-
-/**
- * 嵌入式h5项目转发控制器, 不用输入 index.html也可以正常访问
- * @author xxm
- * @since 2024/2/10
- */
-@Controller
-@RequestMapping
-public class ForwardH5Controller {
-    /**
-     * 将/h5/*的访问请求代理到/h5/index.html*
-     */
-    @GetMapping("/h5/")
-    public String toH5(){
-        return "forward:/h5/index.html";
-    }
-
-}
diff --git a/daxpay-single/daxpay-single-gateway/src/main/java/cn/daxpay/single/gateway/controller/PayNoticeReceiverController.java b/daxpay-single/daxpay-single-gateway/src/main/java/cn/daxpay/single/gateway/controller/NoticeReceiverController.java
similarity index 88%
rename from daxpay-single/daxpay-single-gateway/src/main/java/cn/daxpay/single/gateway/controller/PayNoticeReceiverController.java
rename to daxpay-single/daxpay-single-gateway/src/main/java/cn/daxpay/single/gateway/controller/NoticeReceiverController.java
index a34beb89cfa136643119f68e87926a84e92e8167..4b47285d413fa855de0c4cf2c1c381d7b20d14a4 100644
--- a/daxpay-single/daxpay-single-gateway/src/main/java/cn/daxpay/single/gateway/controller/PayNoticeReceiverController.java
+++ b/daxpay-single/daxpay-single-gateway/src/main/java/cn/daxpay/single/gateway/controller/NoticeReceiverController.java
@@ -2,7 +2,7 @@ package cn.daxpay.single.gateway.controller;
 
 import cn.bootx.platform.common.core.annotation.IgnoreAuth;
 import cn.daxpay.single.service.core.channel.alipay.service.AliPayNoticeReceiverService;
-import com.ijpay.alipay.AliPayApi;
+import cn.daxpay.single.core.util.PayUtil;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.tags.Tag;
 import lombok.RequiredArgsConstructor;
@@ -23,16 +23,16 @@ import java.util.Objects;
 @IgnoreAuth
 @Tag(name = "支付通道网关消息通知")
 @RestController
-@RequestMapping("/callback/notice")
+@RequestMapping("/unipay/notice")
 @RequiredArgsConstructor
-public class PayNoticeReceiverController {
+public class NoticeReceiverController {
 
     private final AliPayNoticeReceiverService aliPayNoticeReceiverService;
 
     @Operation(summary = "支付宝消息通知")
     @PostMapping("/alipay")
     public String aliPayNotice(HttpServletRequest request) {
-        Map<String, String> map = AliPayApi.toMap(request);
+        Map<String, String> map = PayUtil.toMap(request);
         return aliPayNoticeReceiverService.noticeReceiver(map);
     }
 
diff --git a/daxpay-single/daxpay-single-gateway/src/main/java/cn/daxpay/single/gateway/controller/PayReturnController.java b/daxpay-single/daxpay-single-gateway/src/main/java/cn/daxpay/single/gateway/controller/PayReturnController.java
index c2fd23233912d1470c0d2230553526d19adb0235..3704d468fd1838a81ff9e93c8078e7561cfebea7 100644
--- a/daxpay-single/daxpay-single-gateway/src/main/java/cn/daxpay/single/gateway/controller/PayReturnController.java
+++ b/daxpay-single/daxpay-single-gateway/src/main/java/cn/daxpay/single/gateway/controller/PayReturnController.java
@@ -14,33 +14,33 @@ import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.servlet.ModelAndView;
 
 /**
- * 支付同步通知控制器
+ * 同步通知跳转控制器
  * @author xxm
  * @since 2024/1/13
  */
 @IgnoreAuth
-@Tag(name = "支付同步通知")
+@Tag(name = "同步通知跳转控制器")
 @RestController
-@RequestMapping("/return/pay")
+@RequestMapping("/unipay/return")
 @RequiredArgsConstructor
 public class PayReturnController {
     private final PayReturnService payReturnService;
 
-    @Operation(summary = "支付宝同步跳转连接")
-    @GetMapping("/alipay")
+    @Operation(summary = "支付宝同步跳转通知")
+    @GetMapping("/pay/alipay")
     public ModelAndView alipay(AliPayReturnParam param){
         String url = payReturnService.alipay(param);
         return new ModelAndView("redirect:" + url);
     }
 
-    @Operation(summary = "微信同步通知")
-    @GetMapping("/wechat")
+    @Operation(summary = "微信同步跳转通知")
+    @GetMapping("/pay/wechat")
     public ModelAndView wechat(){
         return null;
     }
 
-    @Operation(summary = "云闪付同步通知")
-    @PostMapping("/union")
+    @Operation(summary = "云闪付同步跳转通知")
+    @PostMapping("/pay/union")
     public ModelAndView union(UnionPayReturnParam param){
         String url = payReturnService.union(param);
         return new ModelAndView("redirect:" + url);
diff --git a/daxpay-single/daxpay-single-gateway/src/main/java/cn/daxpay/single/gateway/controller/TestController.java b/daxpay-single/daxpay-single-gateway/src/main/java/cn/daxpay/single/gateway/controller/TestController.java
index 12c2c58bac1153c8f482dcdd943e48ef09084972..9dccf823a6c3a0a566a37591bd3a248169720d87 100644
--- a/daxpay-single/daxpay-single-gateway/src/main/java/cn/daxpay/single/gateway/controller/TestController.java
+++ b/daxpay-single/daxpay-single-gateway/src/main/java/cn/daxpay/single/gateway/controller/TestController.java
@@ -3,6 +3,7 @@ package cn.daxpay.single.gateway.controller;
 import cn.bootx.platform.common.core.exception.BizException;
 import cn.bootx.platform.common.core.rest.Res;
 import cn.bootx.platform.common.core.rest.ResResult;
+import cn.daxpay.single.service.core.payment.transfer.service.TransferService;
 import cn.hutool.core.thread.ThreadUtil;
 import com.baomidou.lock.LockInfo;
 import com.baomidou.lock.LockTemplate;
@@ -27,6 +28,8 @@ import java.util.Objects;
 public class TestController {
     private final LockTemplate lockTemplate;
 
+    private final TransferService transferService;
+
     @Operation(summary = "锁测试1")
     @GetMapping("/lock1")
 //    @Lock4j(keys = "#name", acquireTimeout = 50)
diff --git a/daxpay-single/daxpay-single-gateway/src/main/java/cn/daxpay/single/gateway/controller/UniAllocationController.java b/daxpay-single/daxpay-single-gateway/src/main/java/cn/daxpay/single/gateway/controller/UniAllocationController.java
index eb66788c52ec836892ebe34ac0176513c7469355..dd245401b3423d35c61f9c52b627d3934cdd32c6 100644
--- a/daxpay-single/daxpay-single-gateway/src/main/java/cn/daxpay/single/gateway/controller/UniAllocationController.java
+++ b/daxpay-single/daxpay-single-gateway/src/main/java/cn/daxpay/single/gateway/controller/UniAllocationController.java
@@ -1,20 +1,20 @@
 package cn.daxpay.single.gateway.controller;
 
 import cn.bootx.platform.common.core.annotation.IgnoreAuth;
-import cn.daxpay.single.code.PaymentApiCode;
-import cn.daxpay.single.param.payment.allocation.AllocFinishParam;
-import cn.daxpay.single.param.payment.allocation.AllocReceiverAddParam;
-import cn.daxpay.single.param.payment.allocation.AllocReceiverRemoveParam;
-import cn.daxpay.single.param.payment.allocation.AllocationParam;
-import cn.daxpay.single.result.DaxResult;
-import cn.daxpay.single.result.allocation.AllocReceiverAddResult;
-import cn.daxpay.single.result.allocation.AllocReceiverRemoveResult;
-import cn.daxpay.single.result.allocation.AllocationResult;
-import cn.daxpay.single.service.annotation.PaymentSign;
+import cn.daxpay.single.core.code.PaymentApiCode;
+import cn.daxpay.single.core.param.payment.allocation.AllocFinishParam;
+import cn.daxpay.single.core.param.payment.allocation.AllocReceiverAddParam;
+import cn.daxpay.single.core.param.payment.allocation.AllocReceiverRemoveParam;
+import cn.daxpay.single.core.param.payment.allocation.AllocationParam;
+import cn.daxpay.single.core.result.DaxResult;
+import cn.daxpay.single.core.result.allocation.AllocReceiverAddResult;
+import cn.daxpay.single.core.result.allocation.AllocReceiverRemoveResult;
+import cn.daxpay.single.core.result.allocation.AllocationResult;
+import cn.daxpay.single.service.annotation.PaymentVerify;
 import cn.daxpay.single.service.annotation.InitPaymentContext;
 import cn.daxpay.single.service.core.payment.allocation.service.AllocationReceiverService;
 import cn.daxpay.single.service.core.payment.allocation.service.AllocationService;
-import cn.daxpay.single.util.DaxRes;
+import cn.daxpay.single.core.util.DaxRes;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.tags.Tag;
 import lombok.RequiredArgsConstructor;
@@ -39,7 +39,7 @@ public class UniAllocationController {
 
     private final AllocationReceiverService receiverService;
 
-    @PaymentSign
+    @PaymentVerify
     @InitPaymentContext(PaymentApiCode.ALLOCATION)
     @Operation(summary = "发起分账接口")
     @PostMapping("/start")
@@ -47,7 +47,7 @@ public class UniAllocationController {
         return DaxRes.ok(allocationService.allocation(param));
     }
 
-    @PaymentSign
+    @PaymentVerify
     @InitPaymentContext(PaymentApiCode.ALLOCATION_FINISH)
     @Operation(summary = "分账完结接口")
     @PostMapping("/finish")
@@ -55,7 +55,7 @@ public class UniAllocationController {
         return DaxRes.ok(allocationService.finish(param));
     }
 
-    @PaymentSign
+    @PaymentVerify
     @InitPaymentContext(PaymentApiCode.ALLOCATION_RECEIVER_ADD)
     @Operation(summary = "分账接收方添加接口")
     @PostMapping("/receiver/add")
@@ -63,7 +63,7 @@ public class UniAllocationController {
         return DaxRes.ok(receiverService.addAndSync(param));
     }
 
-    @PaymentSign
+    @PaymentVerify
     @InitPaymentContext(PaymentApiCode.ALLOCATION_RECEIVER_REMOVE)
     @Operation(summary = "分账接收方删除接口")
     @PostMapping("/receiver/remove")
diff --git a/daxpay-single/daxpay-single-gateway/src/main/java/cn/daxpay/single/gateway/controller/UniPayAssistController.java b/daxpay-single/daxpay-single-gateway/src/main/java/cn/daxpay/single/gateway/controller/UniPayAssistController.java
index 026ec0221050f8d62c12c3853e8128b6c48037a9..be71bcca1e2adc1441c8adbb9bbe24af14b658df 100644
--- a/daxpay-single/daxpay-single-gateway/src/main/java/cn/daxpay/single/gateway/controller/UniPayAssistController.java
+++ b/daxpay-single/daxpay-single-gateway/src/main/java/cn/daxpay/single/gateway/controller/UniPayAssistController.java
@@ -3,16 +3,16 @@ package cn.daxpay.single.gateway.controller;
 import cn.bootx.platform.common.core.annotation.IgnoreAuth;
 import cn.bootx.platform.common.core.rest.Res;
 import cn.bootx.platform.common.core.rest.ResResult;
-import cn.daxpay.single.code.PaymentApiCode;
-import cn.daxpay.single.param.assist.WxAccessTokenParam;
-import cn.daxpay.single.param.assist.WxAuthUrlParam;
-import cn.daxpay.single.result.DaxResult;
-import cn.daxpay.single.result.assist.WxAccessTokenResult;
-import cn.daxpay.single.result.assist.WxAuthUrlResult;
+import cn.daxpay.single.core.code.PaymentApiCode;
+import cn.daxpay.single.core.param.assist.WxAccessTokenParam;
+import cn.daxpay.single.core.param.assist.WxAuthUrlParam;
+import cn.daxpay.single.core.result.DaxResult;
+import cn.daxpay.single.core.result.assist.WxAccessTokenResult;
+import cn.daxpay.single.core.result.assist.WxAuthUrlResult;
 import cn.daxpay.single.service.annotation.InitPaymentContext;
-import cn.daxpay.single.service.annotation.PaymentSign;
-import cn.daxpay.single.service.core.payment.assist.service.UniPayAssistService;
-import cn.daxpay.single.util.DaxRes;
+import cn.daxpay.single.service.annotation.PaymentVerify;
+import cn.daxpay.single.service.core.extra.WeChatAuthService;
+import cn.daxpay.single.core.util.DaxRes;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.tags.Tag;
 import lombok.RequiredArgsConstructor;
@@ -32,22 +32,22 @@ import org.springframework.web.bind.annotation.RestController;
 @RequestMapping("/unipay/assist")
 @RequiredArgsConstructor
 public class UniPayAssistController {
-    private final UniPayAssistService uniPayAssistService;
+    private final WeChatAuthService wechatAuthService;
 
-    @PaymentSign
+    @PaymentVerify
     @InitPaymentContext(PaymentApiCode.GET_WX_AUTH_URL)
     @Operation(summary = "获取微信OAuth2授权链接")
     @PostMapping("/getWxAuthUrl")
     public DaxResult<WxAuthUrlResult> getWxAuthUrl(@RequestBody WxAuthUrlParam param){
-        return DaxRes.ok(uniPayAssistService.getWxAuthUrl(param));
+        return DaxRes.ok(wechatAuthService.getWxAuthUrl(param));
     }
 
-    @PaymentSign
+    @PaymentVerify
     @InitPaymentContext(PaymentApiCode.GET_WX_ACCESS_TOKEN)
     @Operation(summary = "获取微信AccessToken")
     @PostMapping("/getWxAccessToken")
     public ResResult<WxAccessTokenResult> getWxAccessToken(@RequestBody WxAccessTokenParam param){
-        return Res.ok(uniPayAssistService.getWxAccessToken(param));
+        return Res.ok(wechatAuthService.getWxAccessToken(param));
     }
 
 }
diff --git a/daxpay-single/daxpay-single-gateway/src/main/java/cn/daxpay/single/gateway/controller/UniPayController.java b/daxpay-single/daxpay-single-gateway/src/main/java/cn/daxpay/single/gateway/controller/UniPayController.java
index 697c9fbfa2ffa61b0088f869479cd0d40e482cab..dc0a7ee2c8111690b852f56224b5d30ef6e10be6 100644
--- a/daxpay-single/daxpay-single-gateway/src/main/java/cn/daxpay/single/gateway/controller/UniPayController.java
+++ b/daxpay-single/daxpay-single-gateway/src/main/java/cn/daxpay/single/gateway/controller/UniPayController.java
@@ -1,21 +1,26 @@
 package cn.daxpay.single.gateway.controller;
 
 import cn.bootx.platform.common.core.annotation.IgnoreAuth;
-import cn.daxpay.single.code.PaymentApiCode;
-import cn.daxpay.single.param.payment.pay.PayCloseParam;
-import cn.daxpay.single.param.payment.pay.PayParam;
-import cn.daxpay.single.param.payment.refund.RefundParam;
-import cn.daxpay.single.param.payment.transfer.TransferParam;
-import cn.daxpay.single.result.DaxResult;
-import cn.daxpay.single.result.pay.PayCloseResult;
-import cn.daxpay.single.result.pay.PayResult;
-import cn.daxpay.single.result.pay.RefundResult;
-import cn.daxpay.single.service.annotation.PaymentSign;
+import cn.daxpay.single.core.code.PaymentApiCode;
+import cn.daxpay.single.core.param.payment.pay.PayCancelParam;
+import cn.daxpay.single.core.param.payment.pay.PayCloseParam;
+import cn.daxpay.single.core.param.payment.pay.PayParam;
+import cn.daxpay.single.core.param.payment.refund.RefundParam;
+import cn.daxpay.single.core.param.payment.transfer.TransferParam;
+import cn.daxpay.single.core.result.DaxResult;
+import cn.daxpay.single.core.result.pay.PayCancelResult;
+import cn.daxpay.single.core.result.pay.PayCloseResult;
+import cn.daxpay.single.core.result.pay.PayResult;
+import cn.daxpay.single.core.result.pay.RefundResult;
+import cn.daxpay.single.core.result.transfer.TransferResult;
 import cn.daxpay.single.service.annotation.InitPaymentContext;
+import cn.daxpay.single.service.annotation.PaymentVerify;
+import cn.daxpay.single.service.core.payment.cancel.service.PayCancelService;
 import cn.daxpay.single.service.core.payment.close.service.PayCloseService;
 import cn.daxpay.single.service.core.payment.pay.service.PayService;
 import cn.daxpay.single.service.core.payment.refund.service.RefundService;
-import cn.daxpay.single.util.DaxRes;
+import cn.daxpay.single.service.core.payment.transfer.service.TransferService;
+import cn.daxpay.single.core.util.DaxRes;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.tags.Tag;
 import lombok.RequiredArgsConstructor;
@@ -38,8 +43,10 @@ public class UniPayController {
     private final PayService payService;
     private final RefundService refundService;
     private final PayCloseService payCloseService;
+    private final PayCancelService payCancelService;
+    private final TransferService transferService;
 
-    @PaymentSign
+    @PaymentVerify
     @InitPaymentContext(PaymentApiCode.PAY)
     @Operation(summary = "统一支付接口")
     @PostMapping("/pay")
@@ -47,7 +54,7 @@ public class UniPayController {
         return DaxRes.ok(payService.pay(payParam));
     }
 
-    @PaymentSign
+    @PaymentVerify
     @InitPaymentContext(PaymentApiCode.CLOSE)
     @Operation(summary = "支付关闭接口")
     @PostMapping("/close")
@@ -55,7 +62,15 @@ public class UniPayController {
         return DaxRes.ok(payCloseService.close(param));
     }
 
-    @PaymentSign
+    @PaymentVerify
+    @InitPaymentContext(PaymentApiCode.CANCEL)
+    @Operation(summary = "支付撤销接口")
+    @PostMapping("/cancel")
+    public DaxResult<PayCancelResult> cancel(@RequestBody PayCancelParam param){
+        return DaxRes.ok(payCancelService.cancel(param));
+    }
+
+    @PaymentVerify
     @InitPaymentContext(PaymentApiCode.REFUND)
     @Operation(summary = "统一退款接口")
     @PostMapping("/refund")
@@ -63,12 +78,12 @@ public class UniPayController {
         return DaxRes.ok(refundService.refund(param));
     }
 
-    @PaymentSign
+    @PaymentVerify
     @InitPaymentContext(PaymentApiCode.TRANSFER)
     @Operation(summary = "统一转账接口")
     @PostMapping("/transfer")
-    public DaxResult<Void> transfer(@RequestBody TransferParam param){
-        return DaxRes.ok();
+    public DaxResult<TransferResult> transfer(@RequestBody TransferParam param){
+        return DaxRes.ok(transferService.transfer(param));
     }
 
 }
diff --git a/daxpay-single/daxpay-single-gateway/src/main/java/cn/daxpay/single/gateway/controller/UniPaySyncController.java b/daxpay-single/daxpay-single-gateway/src/main/java/cn/daxpay/single/gateway/controller/UniPaySyncController.java
index 81736671f1b948be3f871843a8c66ec3264b1913..6e7de278b3eabb66a27e317ff16ac2483dc72596 100644
--- a/daxpay-single/daxpay-single-gateway/src/main/java/cn/daxpay/single/gateway/controller/UniPaySyncController.java
+++ b/daxpay-single/daxpay-single-gateway/src/main/java/cn/daxpay/single/gateway/controller/UniPaySyncController.java
@@ -1,20 +1,23 @@
 package cn.daxpay.single.gateway.controller;
 
 import cn.bootx.platform.common.core.annotation.IgnoreAuth;
-import cn.daxpay.single.code.PaymentApiCode;
-import cn.daxpay.single.param.payment.allocation.AllocSyncParam;
-import cn.daxpay.single.param.payment.pay.PaySyncParam;
-import cn.daxpay.single.param.payment.refund.RefundSyncParam;
-import cn.daxpay.single.result.DaxResult;
-import cn.daxpay.single.result.sync.AllocSyncResult;
-import cn.daxpay.single.result.sync.PaySyncResult;
-import cn.daxpay.single.result.sync.RefundSyncResult;
-import cn.daxpay.single.service.annotation.PaymentSign;
+import cn.daxpay.single.core.code.PaymentApiCode;
+import cn.daxpay.single.core.param.payment.allocation.AllocSyncParam;
+import cn.daxpay.single.core.param.payment.pay.PaySyncParam;
+import cn.daxpay.single.core.param.payment.refund.RefundSyncParam;
+import cn.daxpay.single.core.param.payment.transfer.TransferSyncParam;
+import cn.daxpay.single.core.result.DaxResult;
+import cn.daxpay.single.core.result.sync.AllocSyncResult;
+import cn.daxpay.single.core.result.sync.PaySyncResult;
+import cn.daxpay.single.core.result.sync.RefundSyncResult;
+import cn.daxpay.single.core.result.sync.TransferSyncResult;
 import cn.daxpay.single.service.annotation.InitPaymentContext;
+import cn.daxpay.single.service.annotation.PaymentVerify;
 import cn.daxpay.single.service.core.payment.allocation.service.AllocationSyncService;
 import cn.daxpay.single.service.core.payment.sync.service.PaySyncService;
 import cn.daxpay.single.service.core.payment.sync.service.RefundSyncService;
-import cn.daxpay.single.util.DaxRes;
+import cn.daxpay.single.service.core.payment.sync.service.TransferSyncService;
+import cn.daxpay.single.core.util.DaxRes;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.tags.Tag;
 import lombok.RequiredArgsConstructor;
@@ -38,8 +41,9 @@ public class UniPaySyncController {
     private final PaySyncService paySyncService;
     private final RefundSyncService refundSyncService;
     private final AllocationSyncService allocationSyncService;
+    private final TransferSyncService transferSyncService;
 
-    @PaymentSign
+    @PaymentVerify
     @InitPaymentContext(PaymentApiCode.SYNC_PAY)
     @Operation(summary = "支付同步接口")
     @PostMapping("/pay")
@@ -47,7 +51,7 @@ public class UniPaySyncController {
         return DaxRes.ok(paySyncService.sync(param));
     }
 
-    @PaymentSign
+    @PaymentVerify
     @InitPaymentContext(PaymentApiCode.SYNC_REFUND)
     @Operation(summary = "退款同步接口")
     @PostMapping("/refund")
@@ -55,8 +59,7 @@ public class UniPaySyncController {
         return DaxRes.ok(refundSyncService.sync(param));
     }
 
-
-    @PaymentSign
+    @PaymentVerify
     @InitPaymentContext(PaymentApiCode.SYNC_ALLOCATION)
     @Operation(summary = "分账同步接口")
     @PostMapping("/allocation")
@@ -64,12 +67,12 @@ public class UniPaySyncController {
         return DaxRes.ok(allocationSyncService.sync(param));
     }
 
-    @PaymentSign
+    @PaymentVerify
     @InitPaymentContext(PaymentApiCode.SYNC_TRANSFER)
     @Operation(summary = "转账同步接口")
     @PostMapping("/transfer")
-    public DaxResult<Void> transfer(@RequestBody AllocSyncParam param){
-        allocationSyncService.sync(param);
-        return DaxRes.ok();
+    public DaxResult<TransferSyncResult> transfer(@RequestBody TransferSyncParam param){
+        return DaxRes.ok(transferSyncService.sync(param));
     }
+
 }
diff --git a/daxpay-single/daxpay-single-gateway/src/main/java/cn/daxpay/single/gateway/controller/UniQueryController.java b/daxpay-single/daxpay-single-gateway/src/main/java/cn/daxpay/single/gateway/controller/UniQueryController.java
index e3375202c79cc4d2fb90e4f2b1d229a9e6aa3ac1..99cb21d3e71262a1d8ad725468a8355ee8d44555 100644
--- a/daxpay-single/daxpay-single-gateway/src/main/java/cn/daxpay/single/gateway/controller/UniQueryController.java
+++ b/daxpay-single/daxpay-single-gateway/src/main/java/cn/daxpay/single/gateway/controller/UniQueryController.java
@@ -1,25 +1,27 @@
 package cn.daxpay.single.gateway.controller;
 
 import cn.bootx.platform.common.core.annotation.IgnoreAuth;
-import cn.daxpay.single.code.PaymentApiCode;
-import cn.daxpay.single.exception.pay.PayFailureException;
-import cn.daxpay.single.param.payment.allocation.QueryAllocOrderParam;
-import cn.daxpay.single.param.payment.allocation.QueryAllocReceiverParam;
-import cn.daxpay.single.param.payment.pay.QueryPayParam;
-import cn.daxpay.single.param.payment.refund.QueryRefundParam;
-import cn.daxpay.single.param.payment.transfer.QueryTransferParam;
-import cn.daxpay.single.result.DaxResult;
-import cn.daxpay.single.result.order.AllocOrderResult;
-import cn.daxpay.single.result.allocation.AllocReceiversResult;
-import cn.daxpay.single.result.order.PayOrderResult;
-import cn.daxpay.single.result.order.RefundOrderResult;
-import cn.daxpay.single.service.annotation.PaymentSign;
+import cn.daxpay.single.core.code.PaymentApiCode;
+import cn.bootx.platform.common.core.exception.ValidationFailedException;
+import cn.daxpay.single.core.param.payment.allocation.QueryAllocOrderParam;
+import cn.daxpay.single.core.param.payment.allocation.QueryAllocReceiverParam;
+import cn.daxpay.single.core.param.payment.pay.QueryPayParam;
+import cn.daxpay.single.core.param.payment.refund.QueryRefundParam;
+import cn.daxpay.single.core.param.payment.transfer.QueryTransferParam;
+import cn.daxpay.single.core.result.DaxResult;
+import cn.daxpay.single.core.result.order.AllocOrderResult;
+import cn.daxpay.single.core.result.allocation.AllocReceiversResult;
+import cn.daxpay.single.core.result.order.PayOrderResult;
+import cn.daxpay.single.core.result.order.RefundOrderResult;
+import cn.daxpay.single.core.result.order.TransferOrderResult;
+import cn.daxpay.single.service.annotation.PaymentVerify;
 import cn.daxpay.single.service.annotation.InitPaymentContext;
 import cn.daxpay.single.service.core.order.pay.service.PayOrderQueryService;
 import cn.daxpay.single.service.core.order.refund.service.RefundOrderQueryService;
+import cn.daxpay.single.service.core.order.transfer.service.TransferOrderQueryService;
 import cn.daxpay.single.service.core.payment.allocation.service.AllocationReceiverService;
 import cn.daxpay.single.service.core.payment.allocation.service.AllocationService;
-import cn.daxpay.single.util.DaxRes;
+import cn.daxpay.single.core.util.DaxRes;
 import cn.hutool.core.util.StrUtil;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.tags.Tag;
@@ -43,10 +45,11 @@ public class UniQueryController {
 
     private final PayOrderQueryService payOrderQueryService;
     private final RefundOrderQueryService refundOrderQueryService;
+    private final TransferOrderQueryService transferOrderQueryService;
     private final AllocationReceiverService allocationReceiverService;
     private final AllocationService allocationService;
 
-    @PaymentSign
+    @PaymentVerify
     @InitPaymentContext(PaymentApiCode.QUERY_PAY_ORDER)
     @Operation(summary = "支付订单查询接口")
     @PostMapping("/payOrder")
@@ -54,7 +57,7 @@ public class UniQueryController {
         return DaxRes.ok(payOrderQueryService.queryPayOrder(param));
     }
 
-    @PaymentSign
+    @PaymentVerify
     @InitPaymentContext(PaymentApiCode.QUERY_REFUND_ORDER)
     @Operation(summary = "退款订单查询接口")
     @PostMapping("/refundOrder")
@@ -62,7 +65,7 @@ public class UniQueryController {
         return DaxRes.ok(refundOrderQueryService.queryRefundOrder(param));
     }
 
-    @PaymentSign
+    @PaymentVerify
     @InitPaymentContext(PaymentApiCode.QUERY_ALLOCATION_ORDER)
     @Operation(summary = "分账订单查询接口")
     @PostMapping("/allocationOrder")
@@ -70,21 +73,21 @@ public class UniQueryController {
         return DaxRes.ok(allocationService.queryAllocationOrder(param));
     }
 
-    @PaymentSign
+    @PaymentVerify
     @InitPaymentContext(PaymentApiCode.QUERY_TRANSFER_ORDER)
     @Operation(summary = "转账订单查询接口")
     @PostMapping("/transferOrder")
-    public DaxResult<Void> transferOrder(@RequestBody QueryTransferParam param){
-        return DaxRes.ok();
+    public DaxResult<TransferOrderResult> transferOrder(@RequestBody QueryTransferParam param){
+        return DaxRes.ok(transferOrderQueryService.queryTransferOrder(param));
     }
 
-    @PaymentSign
+    @PaymentVerify
     @InitPaymentContext(PaymentApiCode.QUERY_ALLOCATION_RECEIVER)
     @Operation(summary = "分账接收方查询接口")
     @PostMapping("/allocationReceiver")
     public DaxResult<AllocReceiversResult> queryAllocReceive(@RequestBody QueryAllocReceiverParam param){
         if (StrUtil.isAllBlank(param.getChannel(), param.getReceiverNo())){
-            throw new PayFailureException("所属通道和接收方编号不可同时为空");
+            throw new ValidationFailedException("所属通道和接收方编号不可同时为空");
         }
         return DaxRes.ok(allocationReceiverService.queryAllocReceive(param));
     }
diff --git a/daxpay-single/daxpay-single-gateway/src/main/java/cn/daxpay/single/gateway/controller/UniReconcileController.java b/daxpay-single/daxpay-single-gateway/src/main/java/cn/daxpay/single/gateway/controller/UniReconcileController.java
index cb66c7bd60ab3f64caaab1e087ce10ae1b4873a4..4b7bf60633b721be333cbeff50410ea928e79a3b 100644
--- a/daxpay-single/daxpay-single-gateway/src/main/java/cn/daxpay/single/gateway/controller/UniReconcileController.java
+++ b/daxpay-single/daxpay-single-gateway/src/main/java/cn/daxpay/single/gateway/controller/UniReconcileController.java
@@ -1,11 +1,11 @@
 package cn.daxpay.single.gateway.controller;
 
 import cn.bootx.platform.common.core.annotation.IgnoreAuth;
-import cn.daxpay.single.code.PaymentApiCode;
-import cn.daxpay.single.result.DaxResult;
-import cn.daxpay.single.service.annotation.PaymentSign;
+import cn.daxpay.single.core.code.PaymentApiCode;
+import cn.daxpay.single.core.result.DaxResult;
+import cn.daxpay.single.service.annotation.PaymentVerify;
 import cn.daxpay.single.service.annotation.InitPaymentContext;
-import cn.daxpay.single.util.DaxRes;
+import cn.daxpay.single.core.util.DaxRes;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.tags.Tag;
 import lombok.RequiredArgsConstructor;
@@ -25,7 +25,7 @@ import org.springframework.web.bind.annotation.RestController;
 @RequiredArgsConstructor
 public class UniReconcileController {
 
-    @PaymentSign
+    @PaymentVerify
     @InitPaymentContext(PaymentApiCode.PAY)
     @Operation(summary = "下载指定日期的资金流水")
     @PostMapping("/pay")
diff --git a/daxpay-single/daxpay-single-gateway/src/main/resources/static/h5/.gitkeep b/daxpay-single/daxpay-single-gateway/src/main/resources/static/h5/.gitkeep
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/daxpay-single/daxpay-single-gateway/src/main/resources/static/h5/alipayAuth.html b/daxpay-single/daxpay-single-gateway/src/main/resources/static/h5/alipayAuth.html
new file mode 100644
index 0000000000000000000000000000000000000000..a2c50a8794c227c138811579de45740e5ac83d22
--- /dev/null
+++ b/daxpay-single/daxpay-single-gateway/src/main/resources/static/h5/alipayAuth.html
@@ -0,0 +1,21 @@
+<script src = "https://gw.alipayobjects.com/as/g/h5-lib/alipayjsapi/3.1.1/alipayjsapi.min.js"> </script>
+<script>
+
+    const params = new URLSearchParams(window.location.search);
+    // 获取AppId
+    const appid = params.get("appId");
+    // 回调地址
+    const redirectUrl = params.get("redirectUrl");
+    // 重定向后原样带回,可以为空
+    const state = params.get("state");
+    ap.getAuthCode ({
+        appId :  appid ,
+        scopes : ['auth_base'],
+    },function(res){
+        const authCode = res.authCode;
+        // 跳转到回调地址
+        window.location.replace(`${redirectUrl}?state=${state}&code=${authCode}`)
+        // window.location.href = `${redirectUrl}?code=${authCode}`;
+
+    });
+</script>
diff --git a/daxpay-single/daxpay-single-gateway/src/main/resources/static/h5/openIdCallbackClose.html b/daxpay-single/daxpay-single-gateway/src/main/resources/static/h5/openIdCallbackClose.html
new file mode 100644
index 0000000000000000000000000000000000000000..bdd98b0b4f8038d7c4fbb716b5373eee8d6a221c
--- /dev/null
+++ b/daxpay-single/daxpay-single-gateway/src/main/resources/static/h5/openIdCallbackClose.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<html lang="en" xmlns:th="http://www.thymeleaf.org">
+<head>
+    <meta charset="UTF-8">
+    <title>获取成功</title>
+</head>
+获取成功...
+<body>
+<script>
+    // 常规关闭
+    setTimeout(function (){
+        window.opener = window;
+        const win = window.open("", "_self");
+        win.close();
+        //frame的时候
+        top.close();
+    },500)
+    // 微信浏览器关闭
+    setTimeout(function (){
+        WeixinJSBridge.call('closeWindow')
+    },500)
+    // 支付宝浏览器关闭
+    setTimeout(function (){
+        AlipayJSBridge.call('closeWebview')
+    },500)
+</script>
+</body>
diff --git a/daxpay-single/daxpay-single-service/pom.xml b/daxpay-single/daxpay-single-service/pom.xml
index e3917bed85ee85937ec3c3811e7e5324b2743a0c..a1ba489e383b918beba9c84e4304dd925c7b1bb8 100644
--- a/daxpay-single/daxpay-single-service/pom.xml
+++ b/daxpay-single/daxpay-single-service/pom.xml
@@ -6,7 +6,7 @@
     <parent>
         <groupId>cn.daxpay.single</groupId>
         <artifactId>daxpay-single</artifactId>
-        <version>2.0.7</version>
+        <version>2.0.8</version>
     </parent>
 
     <artifactId>daxpay-single-service</artifactId>
@@ -78,17 +78,11 @@
             <version>${daxpay.version}</version>
         </dependency>
 
-        <!-- 支付宝支付 -->
+        <!-- 支付宝官方SDK -->
         <dependency>
-            <groupId>com.github.javen205</groupId>
-            <artifactId>IJPay-AliPay</artifactId>
-            <version>${IJPay.version}</version>
-            <exclusions>
-                <exclusion>
-                    <artifactId>fastjson</artifactId>
-                    <groupId>com.alibaba</groupId>
-                </exclusion>
-            </exclusions>
+            <groupId>com.alipay.sdk</groupId>
+            <artifactId>alipay-sdk-java</artifactId>
+            <version>${alipay.version}</version>
         </dependency>
 
         <!-- 微信支付 ijpay -->
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/annotation/InitPaymentContext.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/annotation/InitPaymentContext.java
index e376297bbf9452bf79e74473154a5992d00e8751..0b0b3eb00a0944f276ede996246b56a1378c891b 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/annotation/InitPaymentContext.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/annotation/InitPaymentContext.java
@@ -1,6 +1,6 @@
 package cn.daxpay.single.service.annotation;
 
-import cn.daxpay.single.code.PaymentApiCode;
+import cn.daxpay.single.core.code.PaymentApiCode;
 
 import java.lang.annotation.*;
 
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/annotation/PaymentSign.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/annotation/PaymentVerify.java
similarity index 85%
rename from daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/annotation/PaymentSign.java
rename to daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/annotation/PaymentVerify.java
index 95967ecb5b182fb15c56f7a66f8530e9d4124c19..3f48ce3e2e920f9e85466ab4d87019ef9c7698c5 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/annotation/PaymentSign.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/annotation/PaymentVerify.java
@@ -3,7 +3,7 @@ package cn.daxpay.single.service.annotation;
 import java.lang.annotation.*;
 
 /**
- * 支付校验签名标识
+ * 支付校验校验标识
  * 支付方法至少有一个参数,并且需要签名支付参数需要放在第一位
  * 返回对象必须为 ResResult<T extends PaymentCommonResult> 格式
  * @author xxm
@@ -13,5 +13,5 @@ import java.lang.annotation.*;
 @Retention(RetentionPolicy.RUNTIME)
 @Documented
 @Inherited
-public @interface PaymentSign {
+public @interface PaymentVerify {
 }
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/code/AliPayCode.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/code/AliPayCode.java
index a28f0ef16cae496879548615a3a037700863d2de..87875abf4b8bd5a37498cbd731d2eab9391938c3 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/code/AliPayCode.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/code/AliPayCode.java
@@ -28,6 +28,9 @@ public interface AliPayCode {
     /** 询余额账户类型 */
     String QUERY_ACCOUNT_TYPE = "ACCTRANS_ACCOUNT";
 
+    /** jsapi */
+    String JSAPI_PAY ="JSAPI_PAY";
+
     /** 付款码支付 */
     String BAR_CODE = "bar_code";
 
@@ -86,6 +89,10 @@ public interface AliPayCode {
     /** 返回退款时间 */
     String GMT_REFUND_PAY = "gmt_refund_pay";
 
+    // 转账状态
+    /** 转账成功 */
+    String TRANSFER_SUCCESS = "SUCCESS";
+
     // 错误提示
     /** 交易不存在 */
     String ACQ_TRADE_NOT_EXIST = "ACQ.TRADE_NOT_EXIST";
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/code/AliPayWay.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/code/AliPayWay.java
index 2b089cfc28b5c44335552dcf74ac6353c51f49b6..b4f7ec29e9c5ee614a810745ab23edd7523ac8c6 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/code/AliPayWay.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/code/AliPayWay.java
@@ -1,7 +1,7 @@
 package cn.daxpay.single.service.code;
 
-import cn.daxpay.single.code.PayMethodEnum;
-import cn.daxpay.single.exception.pay.PayFailureException;
+import cn.daxpay.single.core.code.PayMethodEnum;
+import cn.daxpay.single.core.exception.MethodNotExistException;
 import lombok.experimental.UtilityClass;
 
 import java.util.Arrays;
@@ -19,7 +19,7 @@ public class AliPayWay {
 
     // 支付方式
     private static final List<PayMethodEnum> PAY_WAYS = Arrays.asList(PayMethodEnum.WAP, PayMethodEnum.APP, PayMethodEnum.WEB,
-            PayMethodEnum.QRCODE, PayMethodEnum.BARCODE);
+            PayMethodEnum.QRCODE, PayMethodEnum.BARCODE, PayMethodEnum.JSAPI);
 
     /**
      * 根据编码获取
@@ -28,7 +28,7 @@ public class AliPayWay {
         return PAY_WAYS.stream()
             .filter(e -> Objects.equals(code, e.getCode()))
             .findFirst()
-            .orElseThrow(() -> new PayFailureException("不存在的支付方式"));
+            .orElseThrow(() -> new MethodNotExistException("不存在的支付方式"));
     }
 
     /**
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/code/PayCloseTypeEnum.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/code/PayCloseTypeEnum.java
new file mode 100644
index 0000000000000000000000000000000000000000..629186d7c1c11c8a1faeb1c0900a2cfa4cc7f0cb
--- /dev/null
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/code/PayCloseTypeEnum.java
@@ -0,0 +1,25 @@
+package cn.daxpay.single.service.code;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * 订单关闭类型
+ * @author xxm
+ * @since 2024/6/5
+ */
+@Getter
+@AllArgsConstructor
+public enum PayCloseTypeEnum {
+    /**
+     * 订单关闭
+     */
+    CLOSE("close", "订单关闭"),
+    /**
+     * 订单撤销
+     */
+    CANCEL("cancel", "订单撤销"),
+    ;
+    final String code;
+    final String name;
+}
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/code/TradeNotifyTypeEnum.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/code/TradeNotifyTypeEnum.java
new file mode 100644
index 0000000000000000000000000000000000000000..ec935acfa3989fa6779601fee90149ec8f560e51
--- /dev/null
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/code/TradeNotifyTypeEnum.java
@@ -0,0 +1,24 @@
+package cn.daxpay.single.service.code;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * 业务消息通知类型
+ * 业务系统使用什么样的方式接收异步通知消息
+ * @author xxm
+ * @since 2024/6/5
+ */
+@Getter
+@AllArgsConstructor
+public enum TradeNotifyTypeEnum {
+    /** http */
+    HTTP("http","http"),
+    /** websocket */
+    WEBSOCKET("websocket","WebSocket"),
+    /** mq */
+    MQ("mq","消息队列");
+
+    private final String code;
+    private final String name;
+}
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/code/UnionPayWay.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/code/UnionPayWay.java
index 769c99d80276300c72d60ec6a52060ad5236b921..017a04dc5a9457fd14d0f38838ec352f9a38b485 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/code/UnionPayWay.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/code/UnionPayWay.java
@@ -1,7 +1,7 @@
 package cn.daxpay.single.service.code;
 
-import cn.daxpay.single.code.PayMethodEnum;
-import cn.daxpay.single.exception.pay.PayFailureException;
+import cn.daxpay.single.core.code.PayMethodEnum;
+import cn.daxpay.single.core.exception.MethodNotExistException;
 import lombok.experimental.UtilityClass;
 
 import java.util.Arrays;
@@ -27,7 +27,7 @@ public class UnionPayWay {
         return PAY_WAYS.stream()
                 .filter(e -> Objects.equals(code, e.getCode()))
                 .findFirst()
-                .orElseThrow(() -> new PayFailureException("不存在的支付方式"));
+                .orElseThrow(MethodNotExistException::new);
     }
 
     /**
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/code/WalletPayWay.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/code/WalletPayWay.java
index acaba39dfe8fb97569619e2aa1962b376c263c1d..e7d07efa03b7fe3afaad2c8045eb2de4f363f71e 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/code/WalletPayWay.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/code/WalletPayWay.java
@@ -1,7 +1,7 @@
 package cn.daxpay.single.service.code;
 
-import cn.daxpay.single.code.PayMethodEnum;
-import cn.daxpay.single.exception.pay.PayFailureException;
+import cn.daxpay.single.core.code.PayMethodEnum;
+import cn.daxpay.single.core.exception.MethodNotExistException;
 import lombok.experimental.UtilityClass;
 
 import java.util.Collections;
@@ -26,7 +26,7 @@ public class WalletPayWay {
         return PAY_WAYS.stream()
                 .filter(e -> Objects.equals(code, e.getCode()))
                 .findFirst()
-                .orElseThrow(() -> new PayFailureException("不存在的支付方式"));
+                .orElseThrow(MethodNotExistException::new);
     }
 
     /**
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/code/WeChatPayWay.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/code/WeChatPayWay.java
index 0f1faa26470b0b9aa757bb1d8bcfaee4b59e9311..20327722cfa82bf47729251ae51023106a67b298 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/code/WeChatPayWay.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/code/WeChatPayWay.java
@@ -1,7 +1,7 @@
 package cn.daxpay.single.service.code;
 
-import cn.daxpay.single.code.PayMethodEnum;
-import cn.daxpay.single.exception.pay.PayFailureException;
+import cn.daxpay.single.core.code.PayMethodEnum;
+import cn.daxpay.single.core.exception.MethodNotExistException;
 import lombok.experimental.UtilityClass;
 
 import java.util.Arrays;
@@ -27,7 +27,7 @@ public class WeChatPayWay {
         return PAY_WAYS.stream()
             .filter(e -> Objects.equals(code, e.getCode()))
             .findFirst()
-            .orElseThrow(() -> new PayFailureException("不存在的支付方式"));
+            .orElseThrow(MethodNotExistException::new);
     }
 
     /**
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/common/context/AllocationLocal.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/common/context/AllocationLocal.java
index 5a17bd57c36e59a05db48b5515fe0d8bf49763eb..2a0ee1345bbf2ff48df092ff20353cec5f7ed390 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/common/context/AllocationLocal.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/common/context/AllocationLocal.java
@@ -13,5 +13,5 @@ import lombok.experimental.Accessors;
 public class AllocationLocal {
 
     /** 通道分账号 */
-    private String outAllocationNo;
+    private String outAllocNo;
 }
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/common/context/CallbackLocal.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/common/context/CallbackLocal.java
index 3580aca54114aedac9f7e8eed38b23520cbfd18e..47f921f111397ce897c2b93b9f83f8f4f7063131 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/common/context/CallbackLocal.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/common/context/CallbackLocal.java
@@ -1,7 +1,7 @@
 package cn.daxpay.single.service.common.context;
 
-import cn.daxpay.single.code.RefundStatusEnum;
-import cn.daxpay.single.code.PayStatusEnum;
+import cn.daxpay.single.core.code.RefundStatusEnum;
+import cn.daxpay.single.core.code.PayStatusEnum;
 import cn.daxpay.single.service.code.PayCallbackStatusEnum;
 import cn.daxpay.single.service.code.PaymentTypeEnum;
 import lombok.Data;
@@ -27,7 +27,7 @@ public class CallbackLocal {
     private String tradeNo;
 
     /**
-     * 第三方支付平台交易号
+     * 通道交易号
      */
     private String outTradeNo;
 
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/common/context/RequestLocal.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/common/context/ClientLocal.java
similarity index 59%
rename from daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/common/context/RequestLocal.java
rename to daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/common/context/ClientLocal.java
index fc2956572274a32eb2667679ec94dd3d56bf6634..638a4500180e22beeaff64b79e79b4aab66fded9 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/common/context/RequestLocal.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/common/context/ClientLocal.java
@@ -3,8 +3,6 @@ package cn.daxpay.single.service.common.context;
 import lombok.Data;
 import lombok.experimental.Accessors;
 
-import java.time.LocalDateTime;
-
 /**
  * 支付请求相关信息
  * @author xxm
@@ -12,15 +10,9 @@ import java.time.LocalDateTime;
  */
 @Data
 @Accessors(chain = true)
-public class RequestLocal {
+public class ClientLocal {
 
     /** 客户端ip */
     private String clientIp;
 
-    /** 签名 */
-    private String sign;
-
-    /** 请求时间,时间戳转时间 */
-    private LocalDateTime reqTime;
-
 }
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/common/context/ErrorInfoLocal.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/common/context/ErrorInfoLocal.java
new file mode 100644
index 0000000000000000000000000000000000000000..ccecde6fd63b55b5797d85e01e43a1610deaf3ca
--- /dev/null
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/common/context/ErrorInfoLocal.java
@@ -0,0 +1,44 @@
+package cn.daxpay.single.service.common.context;
+
+import cn.bootx.platform.common.core.exception.BizException;
+import cn.daxpay.single.core.code.DaxPayErrorCode;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+/**
+ * 错误信息
+ * @author xxm
+ * @since 2024/6/14
+ */
+@Data
+@Accessors(chain = true)
+public class ErrorInfoLocal {
+
+    /** 错误码 */
+    private int errorCode;
+
+    /** 错误内容 */
+    private String errorMsg;
+
+    /**
+     * 自动根据传入的异常对象对象进行处理
+     */
+    public void setException(Exception e) {
+        // 如果业务异常, 获取错误码和错误信息
+        if (e instanceof BizException) {
+            BizException be = (BizException) e;
+            this.errorCode = be.getCode();
+            this.errorMsg = be.getMessage();
+        }
+        // 如果是空指针, 专门记录
+        else if (e instanceof NullPointerException) {
+            this.errorCode = DaxPayErrorCode.UNCLASSIFIED_ERROR;
+            this.errorMsg = "空指针异常";
+        }
+        // 如果是其他异常, 归类到为止异常中
+        else {
+            this.errorCode = DaxPayErrorCode.SYSTEM_UNKNOWN_ERROR;
+            this.errorMsg = "未归类异常,请联系管理人员进行排查";
+        }
+    }
+}
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/common/context/NoticeLocal.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/common/context/NoticeLocal.java
deleted file mode 100644
index e1716077ccdaca59bfff7bed8080aaa3e72e359c..0000000000000000000000000000000000000000
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/common/context/NoticeLocal.java
+++ /dev/null
@@ -1,32 +0,0 @@
-package cn.daxpay.single.service.common.context;
-
-import lombok.Data;
-import lombok.experimental.Accessors;
-
-/**
- * 支付通知(主动发起, 用于通知客户系统)
- * @author xxm
- * @since 2023/12/24
- */
-@Data
-@Accessors(chain = true)
-public class NoticeLocal {
-
-    /**
-     * 异步回调地址
-     * 如果系统关闭回调, 则通知地址为空
-     * 如果传输参数中不进行回调为true, 则通知地址为空
-     * 如果传输参数地址为空, 读取接口配置回调地址
-     * 如果接口配置为空, 读取系统平台配置的回调地址
-     */
-    private String notifyUrl;
-
-    /**
-     * 同步回调地址, 这个一定会触发, 只有支付会触发且无法关闭
-     * 如果参数中不传输, 会自动读取系统平台配置的回调地址
-     */
-    private String returnUrl;
-
-    /** 退出回调地址 */
-    private String quitUrl;
-}
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/common/context/PayLocal.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/common/context/PayLocal.java
index 9f17d3ccb18a8f1da980ebf0d7712e23535b6711..c9a5c9e31567f43428271654c1060da0b6b5ab77 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/common/context/PayLocal.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/common/context/PayLocal.java
@@ -1,7 +1,5 @@
 package cn.daxpay.single.service.common.context;
 
-import cn.daxpay.single.service.core.order.pay.entity.PayOrder;
-import cn.daxpay.single.service.core.order.pay.entity.PayOrderExtra;
 import lombok.Data;
 import lombok.experimental.Accessors;
 
@@ -32,13 +30,4 @@ public class PayLocal {
     /** 支付参数体(通常用于发起支付的参数) */
     private String payBody;
 
-    /** 订单超时时间, */
-    private LocalDateTime expiredTime;
-
-    /** 支付订单 */
-    private PayOrder payOrder;
-
-    /** 支付订单扩展 */
-    private PayOrderExtra payOrderExtra;
-
 }
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/common/context/PaySyncLocal.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/common/context/PaySyncLocal.java
deleted file mode 100644
index d9ad72b38b80745164c77ba583ab6aca3d11b08c..0000000000000000000000000000000000000000
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/common/context/PaySyncLocal.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package cn.daxpay.single.service.common.context;
-
-import lombok.Data;
-import lombok.experimental.Accessors;
-
-/**
- * 支付同步信息
- * @author xxm
- * @since 2024/1/24
- */
-@Data
-@Accessors(chain = true)
-public class PaySyncLocal {
-
-}
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/common/context/PaymentContext.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/common/context/PaymentContext.java
index 3379bce56f9ba3c33cbfbc350f07cd4bc91e899e..b24485327a4141c5a72bab34c98a6e74836f40d8 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/common/context/PaymentContext.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/common/context/PaymentContext.java
@@ -12,30 +12,24 @@ import lombok.experimental.Accessors;
 @Accessors(chain = true)
 public class PaymentContext {
 
-    /** 支付接口信息 */
-    private final ApiInfoLocal apiInfo = new ApiInfoLocal();;
-
     /** 平台全局配置 */
     private final PlatformLocal platformInfo = new PlatformLocal();
 
+    /** 请求终端信息 */
+    private final ClientLocal clientInfo = new ClientLocal();
+
+    /** 错误信息 */
+    private final ErrorInfoLocal errorInfo = new ErrorInfoLocal();
+
     /** 支付相关信息 */
     private final PayLocal payInfo = new PayLocal();
 
     /** 退款相关信息 */
     private final RefundLocal refundInfo = new RefundLocal();
 
-    /** 消息通知(主动发起)相关信息 */
-    private final NoticeLocal noticeInfo = new NoticeLocal();
-
     /** 回调相关信息 */
     private final CallbackLocal callbackInfo = new CallbackLocal();
 
-    /** 请求相关信息 */
-    private final RequestLocal requestInfo = new RequestLocal();
-
-    /** 支付同步相关信息 */
-    private final PaySyncLocal paySyncInfo = new PaySyncLocal();
-
     /** 修复相关信息 */
     private final RepairLocal repairInfo = new RepairLocal();
 
@@ -45,4 +39,7 @@ public class PaymentContext {
     /** 分账相关信息 */
     private final AllocationLocal allocationInfo = new AllocationLocal();
 
+    /** 转账相关信息 */
+    private final TransferLocal transferInfo = new TransferLocal();
+
 }
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/common/context/PlatformLocal.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/common/context/PlatformLocal.java
index a90d0cee30f0745d5a57ecd25c1efd08fbf3d0eb..cd52cd18417e048b64b789688295c091aeb3bf47 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/common/context/PlatformLocal.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/common/context/PlatformLocal.java
@@ -1,6 +1,6 @@
 package cn.daxpay.single.service.common.context;
 
-import cn.daxpay.single.code.PaySignTypeEnum;
+import cn.daxpay.single.core.code.PaySignTypeEnum;
 import lombok.Data;
 import lombok.experimental.Accessors;
 
@@ -25,8 +25,22 @@ public class PlatformLocal {
     /** 签名秘钥 */
     private String signSecret;
 
-    /** 支付通知地址 */
-    private String notifyUrl;
+    /** 是否对请求进行验签 */
+    private boolean reqSign;
+
+    /**
+     * 请求有效时长(秒)
+     * 如果传输的请求时间早于当前服务时间, 而且差值超过配置的时长, 将会请求失败
+     * 如果传输的请求时间比服务时间大于配置的时长(超过一分钟), 将会请求失败
+     */
+    private Integer reqTimeout;
+
+    /** 消息通知方式 */
+    private String noticeType;
+
+    /** 消息通知地址 */
+    private String noticeUrl;
+
 
     /** 支付同步跳转地址 */
     private String returnUrl;
@@ -36,4 +50,5 @@ public class PlatformLocal {
 
     /** 支付限额 */
     private Integer limitAmount;
+
 }
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/common/context/RefundLocal.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/common/context/RefundLocal.java
index f10981db81027e58d60dbb19ecf718e7812ad47d..c04c2730ba8846e21223960de27ae25e42c67122 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/common/context/RefundLocal.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/common/context/RefundLocal.java
@@ -1,8 +1,6 @@
 package cn.daxpay.single.service.common.context;
 
-import cn.daxpay.single.code.RefundStatusEnum;
-import cn.daxpay.single.service.core.order.refund.entity.RefundOrder;
-import cn.daxpay.single.service.core.order.refund.entity.RefundOrderExtra;
+import cn.daxpay.single.core.code.RefundStatusEnum;
 import lombok.Data;
 import lombok.experimental.Accessors;
 
@@ -27,18 +25,6 @@ public class RefundLocal {
      */
     private RefundStatusEnum status = RefundStatusEnum.SUCCESS;
 
-    /** 错误码 */
-    private String errorCode;
-
-    /** 错误内容 */
-    private String errorMsg;
-
-    /** 退款订单 */
-    private RefundOrder refundOrder;
-
     /** 退款完成时间 */
     private LocalDateTime finishTime;
-
-    /** 退款订单扩展 */
-    private RefundOrderExtra runOrderExtra;
 }
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/common/context/RefundRequestLocal.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/common/context/RefundRequestLocal.java
deleted file mode 100644
index af18116e5d1b453cfb602a5fcd9c402ec4bca756..0000000000000000000000000000000000000000
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/common/context/RefundRequestLocal.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package cn.daxpay.single.service.common.context;
-
-import lombok.Data;
-import lombok.experimental.Accessors;
-
-/**
- * 退款请求上下文
- * @author xxm
- * @since 2023/12/26
- */
-@Data
-@Accessors(chain = true)
-public class RefundRequestLocal {
-}
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/common/context/RepairLocal.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/common/context/RepairLocal.java
index e7ed28ddf6df8d3ba14c56236a136eba48cc5007..2af1d17962b3f1b2080c4ea6f305364c7cc8b9c0 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/common/context/RepairLocal.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/common/context/RepairLocal.java
@@ -20,7 +20,7 @@ public class RepairLocal {
      */
     private PayRepairSourceEnum source;
 
-    /** 支付完成/退款时间 */
+    /** 完成/退款时间 */
     private LocalDateTime finishTime;
 
 }
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/common/context/ApiInfoLocal.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/common/context/TransferLocal.java
similarity index 30%
rename from daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/common/context/ApiInfoLocal.java
rename to daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/common/context/TransferLocal.java
index 5e568afccfc77f67c2c6aa53edf2008681841566..a640bd4922b7b49e7e093d4bbe7ca593902287eb 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/common/context/ApiInfoLocal.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/common/context/TransferLocal.java
@@ -1,26 +1,27 @@
 package cn.daxpay.single.service.common.context;
 
+import cn.daxpay.single.core.code.TransferStatusEnum;
 import lombok.Data;
 import lombok.experimental.Accessors;
 
+import java.time.LocalDateTime;
+
 /**
- * 支付接口信息
+ * 转账相关信息
  * @author xxm
- * @since 2023/12/24
+ * @since 2024/6/14
  */
 @Data
 @Accessors(chain = true)
-public class ApiInfoLocal {
-
-    /** 当前支付接口编码 */
-    private String apiCode;
+public class TransferLocal {
 
-    /** 是否开启通知 */
-    private boolean notice;
+    /** 通道转账订单号 */
+    private String outTransferNo;
 
-    /** 回调地址 */
-    private String noticeUrl;
+    /** 状态 */
+    private TransferStatusEnum status = TransferStatusEnum.TRANSFERRING;
 
-    /** 请求参数是否签名 */
-    private boolean reqSign;
+    /** 完成时间 */
+    private LocalDateTime finishTime;
 }
+
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/configuration/DaxPayProperties.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/configuration/DaxPayProperties.java
index b7e7b0fd82361d7aea46bad0daa9d755cc10a414..ce7a7efae9df82f559506774ce7f93540f13db5c 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/configuration/DaxPayProperties.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/configuration/DaxPayProperties.java
@@ -1,6 +1,7 @@
 package cn.daxpay.single.service.configuration;
 
-import cn.daxpay.single.util.OrderNoGenerateUtil;
+import cn.daxpay.single.core.util.OrderNoGenerateUtil;
+import cn.hutool.core.util.StrUtil;
 import lombok.Getter;
 import lombok.Setter;
 import org.springframework.boot.context.properties.ConfigurationProperties;
@@ -14,15 +15,10 @@ import org.springframework.boot.context.properties.ConfigurationProperties;
 @Setter
 @ConfigurationProperties(prefix = "dax-pay")
 public class DaxPayProperties {
-    /** 服务地址 */
-    private String serverUrl;
 
     /** 前端地址(h5) */
     private String frontH5Url;
 
-    /** 前端地址(web) */
-    private String frontWebUrl;
-
     /** 机器码, 用于区分不同机器生成的流水号 */
     private String machineNo = "56";
 
@@ -38,4 +34,8 @@ public class DaxPayProperties {
         this.env = env;
         OrderNoGenerateUtil.setEnv(env);
     }
+
+    public String getFrontH5Url() {
+        return StrUtil.removeSuffix(frontH5Url, "/");
+    }
 }
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/alipay/entity/AliPayConfig.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/alipay/entity/AliPayConfig.java
index df2ed13a8026ac78974f2e94c90fbbc54329ec98..6dda7b26a53ee763aec4e2772217f8b47fe60d09 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/alipay/entity/AliPayConfig.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/alipay/entity/AliPayConfig.java
@@ -12,6 +12,7 @@ import cn.bootx.table.modify.annotation.DbColumn;
 import cn.bootx.table.modify.annotation.DbTable;
 import cn.bootx.table.modify.mysql.annotation.DbMySqlFieldType;
 import cn.bootx.table.modify.mysql.constants.MySqlFieldTypeEnum;
+import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.Data;
@@ -35,7 +36,7 @@ import java.util.Objects;
 public class AliPayConfig extends MpBaseEntity implements EntityBaseFunction<AliPayConfigDto> {
 
     /** 支付宝商户appId */
-    @DbColumn(comment = "支付宝商户appId")
+    @DbColumn(comment = "支付宝商户appId", length = 50)
     private String appId;
 
     /** 是否启用, 只影响支付和退款操作 */
@@ -47,8 +48,8 @@ public class AliPayConfig extends MpBaseEntity implements EntityBaseFunction<Ali
     private Boolean allocation;
 
     /** 支付限额 */
-    @DbColumn(comment = "支付限额")
-    private Integer singleLimit;
+    @DbColumn(comment = "支付限额", length = 15)
+    private Integer limitAmount;
 
     /**
      * 服务器异步通知页面路径, 需要填写本网关服务的地址, 不可以直接填写业务系统的地址
@@ -56,7 +57,7 @@ public class AliPayConfig extends MpBaseEntity implements EntityBaseFunction<Ali
      * 2. 不能加?id=123这类自定义参数,必须外网可以正常访问
      * 3. 调用顺序 支付宝网关 -> 本网关进行处理 -> 发送消息通知业务系统
      */
-    @DbColumn(comment = "异步通知页面路径")
+    @DbColumn(comment = "异步通知接收路径", length = 200)
     private String notifyUrl;
 
     /**
@@ -65,22 +66,26 @@ public class AliPayConfig extends MpBaseEntity implements EntityBaseFunction<Ali
      * 2. 不能加?id=123这类自定义参数,必须外网可以正常访问
      * 3. 消息顺序 支付宝网关 -> 本网关进行处理 -> 重定向到业务系统中
      */
-    @DbColumn(comment = "同步通知页面路径")
+    @DbColumn(comment = "同步通知页面路径", length = 200)
     private String returnUrl;
 
     /** 支付网关地址 */
-    @DbColumn(comment = "支付网关地址")
+    @DbColumn(comment = "支付网关地址", length = 200)
     private String serverUrl;
 
+    /** 授权回调地址 */
+    @DbColumn(comment = "授权回调地址", length = 200)
+    private String redirectUrl;
+
     /**
      * 认证类型 证书/公钥
      * @see AliPayCode#AUTH_TYPE_KEY
      */
-    @DbColumn(comment = "认证类型")
+    @DbColumn(comment = "认证类型", length = 20)
     private String authType;
 
     /** 签名类型 RSA2 */
-    @DbColumn(comment = "签名类型 RSA2")
+    @DbColumn(comment = "签名类型 RSA2", length = 20)
     public String signType;
 
     /**
@@ -139,6 +144,12 @@ public class AliPayConfig extends MpBaseEntity implements EntityBaseFunction<Ali
     @DbColumn(comment = "备注")
     private String remark;
 
+    @Override
+    public AliPayConfigDto toDto() {
+        return AlipayConvert.CONVERT.convert(this);
+    }
+
+
     public Boolean getAllocation() {
         return Objects.equals(allocation,true);
     }
@@ -147,9 +158,8 @@ public class AliPayConfig extends MpBaseEntity implements EntityBaseFunction<Ali
         return Objects.equals(enable,true);
     }
 
-    @Override
-    public AliPayConfigDto toDto() {
-        return AlipayConvert.CONVERT.convert(this);
+    public String getRedirectUrl() {
+        return StrUtil.removeSuffix(redirectUrl, "/");
     }
 
 }
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/alipay/service/AliPayAllocationReceiverService.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/alipay/service/AliPayAllocationReceiverService.java
index 68c79e92eb84b9d3c31ae2b53fb177f8d276c712..dc1cd840272de5199baee2306e8877fd91829d31 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/alipay/service/AliPayAllocationReceiverService.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/alipay/service/AliPayAllocationReceiverService.java
@@ -1,17 +1,20 @@
 package cn.daxpay.single.service.core.channel.alipay.service;
 
-import cn.daxpay.single.code.AllocReceiverTypeEnum;
-import cn.daxpay.single.exception.pay.PayFailureException;
+import cn.daxpay.single.core.code.AllocReceiverTypeEnum;
+import cn.daxpay.single.core.exception.TradeStatusErrorException;
 import cn.daxpay.single.service.code.AliPayCode;
+import cn.daxpay.single.service.core.channel.alipay.entity.AliPayConfig;
 import cn.daxpay.single.service.core.payment.allocation.entity.AllocationReceiver;
 import cn.hutool.core.util.StrUtil;
+import com.alipay.api.AlipayClient;
 import com.alipay.api.AlipayResponse;
 import com.alipay.api.domain.AlipayTradeRoyaltyRelationBindModel;
 import com.alipay.api.domain.AlipayTradeRoyaltyRelationUnbindModel;
 import com.alipay.api.domain.RoyaltyEntity;
+import com.alipay.api.request.AlipayTradeRoyaltyRelationBindRequest;
+import com.alipay.api.request.AlipayTradeRoyaltyRelationUnbindRequest;
 import com.alipay.api.response.AlipayTradeRoyaltyRelationBindResponse;
 import com.alipay.api.response.AlipayTradeRoyaltyRelationUnbindResponse;
-import com.ijpay.alipay.AliPayApi;
 import lombok.RequiredArgsConstructor;
 import lombok.SneakyThrows;
 import lombok.extern.slf4j.Slf4j;
@@ -22,7 +25,7 @@ import java.util.Collections;
 import java.util.List;
 import java.util.Objects;
 
-import static cn.daxpay.single.code.AllocReceiverTypeEnum.*;
+import static cn.daxpay.single.core.code.AllocReceiverTypeEnum.*;
 
 /**
  * 支付宝分账
@@ -33,6 +36,7 @@ import static cn.daxpay.single.code.AllocReceiverTypeEnum.*;
 @Service
 @RequiredArgsConstructor
 public class AliPayAllocationReceiverService {
+    private final AliPayConfigService aliPayConfigService;
 
     /**
      * 校验
@@ -47,7 +51,8 @@ public class AliPayAllocationReceiverService {
      * 绑定关系
      */
     @SneakyThrows
-    public void bind(AllocationReceiver allocationReceiver){
+    public void bind(AllocationReceiver allocationReceiver, AliPayConfig aliPayConfig){
+        AlipayClient alipayClient = aliPayConfigService.getAlipayClient(aliPayConfig);
         AlipayTradeRoyaltyRelationBindModel model = new AlipayTradeRoyaltyRelationBindModel();
         model.setOutRequestNo(String.valueOf(allocationReceiver.getId()));
 
@@ -60,7 +65,9 @@ public class AliPayAllocationReceiverService {
 
         // 不报错视为同步成功
         model.setReceiverList(Collections.singletonList(entity));
-        AlipayTradeRoyaltyRelationBindResponse response = AliPayApi.tradeRoyaltyRelationBind(model);
+        AlipayTradeRoyaltyRelationBindRequest request = new AlipayTradeRoyaltyRelationBindRequest();
+        request.setBizModel(model);
+        AlipayTradeRoyaltyRelationBindResponse response = alipayClient.execute(request);
         this.verifyErrorMsg(response);
     }
 
@@ -68,7 +75,8 @@ public class AliPayAllocationReceiverService {
      * 解绑关系
      */
     @SneakyThrows
-    public void unbind(AllocationReceiver allocationReceiver){
+    public void unbind(AllocationReceiver allocationReceiver, AliPayConfig aliPayConfig){
+        AlipayClient alipayClient = aliPayConfigService.getAlipayClient(aliPayConfig);
         AlipayTradeRoyaltyRelationUnbindModel model = new AlipayTradeRoyaltyRelationUnbindModel();
         model.setOutRequestNo(String.valueOf(allocationReceiver.getId()));
 
@@ -78,7 +86,9 @@ public class AliPayAllocationReceiverService {
         entity.setAccount(allocationReceiver.getReceiverAccount());
 
         model.setReceiverList(Collections.singletonList(entity));
-        AlipayTradeRoyaltyRelationUnbindResponse response =  AliPayApi.tradeRoyaltyRelationUnBind(model);
+        AlipayTradeRoyaltyRelationUnbindRequest request = new AlipayTradeRoyaltyRelationUnbindRequest();
+        request.setBizModel(model);
+        AlipayTradeRoyaltyRelationUnbindResponse response =  alipayClient.execute(request);
         System.out.println(response);
         // 如果出现分账方不存在也视为成功
         if (Objects.equals(response.getSubCode(), AliPayCode.USER_NOT_EXIST)) {
@@ -97,7 +107,7 @@ public class AliPayAllocationReceiverService {
                 errorMsg = alipayResponse.getMsg();
             }
             log.error("分账接收方处理失败 {}", errorMsg);
-            throw new PayFailureException(errorMsg);
+            throw new TradeStatusErrorException(errorMsg);
         }
     }
 }
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/alipay/service/AliPayAllocationService.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/alipay/service/AliPayAllocationService.java
index 314b22c634ca88d63fca584f39e275ca5d4e30fe..e309fb4b2f1abb659c3ba9cfc3f0d420d8be96f0 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/alipay/service/AliPayAllocationService.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/alipay/service/AliPayAllocationService.java
@@ -2,23 +2,25 @@ package cn.daxpay.single.service.core.channel.alipay.service;
 
 import cn.bootx.platform.common.core.function.CollectorsFunction;
 import cn.bootx.platform.common.mybatisplus.base.MpIdEntity;
-import cn.daxpay.single.code.AllocDetailResultEnum;
-import cn.daxpay.single.exception.pay.PayFailureException;
+import cn.daxpay.single.core.code.AllocDetailResultEnum;
+import cn.daxpay.single.core.exception.TradeFailException;
 import cn.daxpay.single.service.code.AliPayCode;
 import cn.daxpay.single.service.common.local.PaymentContextLocal;
-import cn.daxpay.single.service.core.order.allocation.entity.AllocationOrder;
-import cn.daxpay.single.service.core.order.allocation.entity.AllocationOrderDetail;
+import cn.daxpay.single.service.core.channel.alipay.entity.AliPayConfig;
+import cn.daxpay.single.service.core.order.allocation.entity.AllocOrder;
+import cn.daxpay.single.service.core.order.allocation.entity.AllocOrderDetail;
 import cn.daxpay.single.service.core.payment.sync.result.AllocRemoteSyncResult;
-import cn.daxpay.single.util.PayUtil;
+import cn.daxpay.single.core.util.PayUtil;
 import cn.hutool.core.date.LocalDateTimeUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.json.JSONUtil;
+import com.alipay.api.AlipayClient;
 import com.alipay.api.AlipayResponse;
 import com.alipay.api.domain.*;
 import com.alipay.api.request.AlipayTradeOrderSettleQueryRequest;
+import com.alipay.api.request.AlipayTradeOrderSettleRequest;
 import com.alipay.api.response.AlipayTradeOrderSettleQueryResponse;
 import com.alipay.api.response.AlipayTradeOrderSettleResponse;
-import com.ijpay.alipay.AliPayApi;
 import lombok.RequiredArgsConstructor;
 import lombok.SneakyThrows;
 import lombok.extern.slf4j.Slf4j;
@@ -41,16 +43,17 @@ import java.util.stream.Collectors;
 @Service
 @RequiredArgsConstructor
 public class AliPayAllocationService {
-
+    private final AliPayConfigService aliPayConfigService;
     /**
      * 发起分账
      */
     @SneakyThrows
-    public void allocation(AllocationOrder allocationOrder, List<AllocationOrderDetail> orderDetails){
+    public void allocation(AllocOrder allocOrder, List<AllocOrderDetail> orderDetails, AliPayConfig config){
+        AlipayClient alipayClient = aliPayConfigService.getAlipayClient(config);
         // 分账主体参数
         AlipayTradeOrderSettleModel model = new AlipayTradeOrderSettleModel();
-        model.setOutRequestNo(allocationOrder.getAllocationNo());
-        model.setTradeNo(allocationOrder.getOutOrderNo());
+        model.setOutRequestNo(allocOrder.getAllocNo());
+        model.setTradeNo(allocOrder.getOutOrderNo());
         model.setRoyaltyMode(AliPayCode.ALLOC_ASYNC);
 
         // 分账子参数 根据Id排序
@@ -64,11 +67,12 @@ public class AliPayAllocationService {
                 })
                 .collect(Collectors.toList());
         model.setRoyaltyParameters(royaltyParameters);
-
-        AlipayTradeOrderSettleResponse response = AliPayApi.tradeOrderSettleToResponse(model);
+        AlipayTradeOrderSettleRequest request = new AlipayTradeOrderSettleRequest();
+        request.setBizModel(model);
+        AlipayTradeOrderSettleResponse response = alipayClient.execute(request);
         // 需要写入到分账订单中
         String settleNo = response.getSettleNo();
-        PaymentContextLocal.get().getAllocationInfo().setOutAllocationNo(settleNo);
+        PaymentContextLocal.get().getAllocationInfo().setOutAllocNo(settleNo);
         this.verifyErrorMsg(response);
     }
 
@@ -76,11 +80,12 @@ public class AliPayAllocationService {
      * 分账完结
      */
     @SneakyThrows
-    public void finish(AllocationOrder allocationOrder, List<AllocationOrderDetail> orderDetails ){
+    public void finish(AllocOrder allocOrder, List<AllocOrderDetail> orderDetails, AliPayConfig config){
+        AlipayClient alipayClient = aliPayConfigService.getAlipayClient(config);
         // 分账主体参数
         AlipayTradeOrderSettleModel model = new AlipayTradeOrderSettleModel();
-        model.setOutRequestNo(String.valueOf(allocationOrder.getAllocationNo()));
-        model.setTradeNo(allocationOrder.getOutOrderNo());
+        model.setOutRequestNo(String.valueOf(allocOrder.getAllocNo()));
+        model.setTradeNo(allocOrder.getOutOrderNo());
         model.setRoyaltyMode(AliPayCode.ALLOC_ASYNC);
         // 分账完结参数
         SettleExtendParams extendParams = new SettleExtendParams();
@@ -98,7 +103,9 @@ public class AliPayAllocationService {
                 })
                 .collect(Collectors.toList());
         model.setRoyaltyParameters(royaltyParameters);
-        AlipayTradeOrderSettleResponse response = AliPayApi.tradeOrderSettleToResponse(model);
+        AlipayTradeOrderSettleRequest request = new AlipayTradeOrderSettleRequest();
+        request.setBizModel(model);
+        AlipayTradeOrderSettleResponse response = alipayClient.execute(request);
         this.verifyErrorMsg(response);
     }
 
@@ -106,21 +113,22 @@ public class AliPayAllocationService {
      * 分账状态同步
      */
     @SneakyThrows
-    public AllocRemoteSyncResult sync(AllocationOrder allocationOrder, List<AllocationOrderDetail> allocationOrderDetails){
+    public AllocRemoteSyncResult sync(AllocOrder allocOrder, List<AllocOrderDetail> allocOrderDetails, AliPayConfig config){
+        AlipayClient alipayClient = aliPayConfigService.getAlipayClient(config);
         AlipayTradeOrderSettleQueryModel model = new AlipayTradeOrderSettleQueryModel();
-        model.setTradeNo(allocationOrder.getOutOrderNo());
-        model.setOutRequestNo(allocationOrder.getAllocationNo());
+        model.setTradeNo(allocOrder.getOutOrderNo());
+        model.setOutRequestNo(allocOrder.getAllocNo());
         AlipayTradeOrderSettleQueryRequest request = new AlipayTradeOrderSettleQueryRequest();
         request.setBizModel(model);
-        AlipayTradeOrderSettleQueryResponse response = AliPayApi.execute(request);
+        AlipayTradeOrderSettleQueryResponse response = alipayClient.execute(request);
         // 验证
         this.verifyErrorMsg(response);
-        Map<String, AllocationOrderDetail> detailMap = allocationOrderDetails.stream()
-                .collect(Collectors.toMap(AllocationOrderDetail::getReceiverAccount, Function.identity(), CollectorsFunction::retainLatest));
+        Map<String, AllocOrderDetail> detailMap = allocOrderDetails.stream()
+                .collect(Collectors.toMap(AllocOrderDetail::getReceiverAccount, Function.identity(), CollectorsFunction::retainLatest));
         List<RoyaltyDetail> royaltyDetailList = response.getRoyaltyDetailList();
         // 转换成通用的明细详情
         for (RoyaltyDetail receiver : royaltyDetailList) {
-            AllocationOrderDetail detail = detailMap.get(receiver.getTransIn());
+            AllocOrderDetail detail = detailMap.get(receiver.getTransIn());
             if (Objects.nonNull(detail)) {
                 detail.setResult(this.getDetailResultEnum(receiver.getState()).getCode());
                 detail.setErrorCode(receiver.getErrorCode());
@@ -147,7 +155,7 @@ public class AliPayAllocationService {
                 errorMsg = alipayResponse.getMsg();
             }
             log.error("分账处理失败 {}", errorMsg);
-            throw new PayFailureException(errorMsg);
+            throw new TradeFailException(errorMsg);
         }
     }
 
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/alipay/service/AliPayCallbackService.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/alipay/service/AliPayCallbackService.java
index d1dc57e6d8ccd9f78bbe27244b79c55fba314f09..2288f2c49fc78afb2dc0f1953a9198f2faa19468 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/alipay/service/AliPayCallbackService.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/alipay/service/AliPayCallbackService.java
@@ -2,8 +2,8 @@ package cn.daxpay.single.service.core.channel.alipay.service;
 
 import cn.bootx.platform.common.core.util.CertUtil;
 import cn.bootx.platform.common.core.util.LocalDateTimeUtil;
-import cn.daxpay.single.code.PayChannelEnum;
-import cn.daxpay.single.code.PayStatusEnum;
+import cn.daxpay.single.core.code.PayChannelEnum;
+import cn.daxpay.single.core.code.PayStatusEnum;
 import cn.daxpay.single.service.code.PayCallbackStatusEnum;
 import cn.daxpay.single.service.code.PayRepairSourceEnum;
 import cn.daxpay.single.service.code.PaymentTypeEnum;
@@ -50,7 +50,6 @@ public class AliPayCallbackService {
 
     private final RefundCallbackService refundCallbackService;
 
-
     /**
      * 回调处理入口
      */
@@ -158,7 +157,7 @@ public class AliPayCallbackService {
     public void resolveRefundData() {
         CallbackLocal callback = PaymentContextLocal.get().getCallbackInfo();
         Map<String, String> callbackParam = callback.getCallbackParam();
-        // 退款订单Id
+        // 退款订单号
         callback.setTradeNo(callbackParam.get(OUT_BIZ_NO));
         // 退款状态
         callback.setOutStatus(callbackParam.get(TRADE_STATUS));
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/alipay/service/AliPayCloseService.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/alipay/service/AliPayCloseService.java
index 2d936af9217ffc7d32de6f4bce0676df627a76df..81822a7d9a8bb867d9584101950217695072abc1 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/alipay/service/AliPayCloseService.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/alipay/service/AliPayCloseService.java
@@ -1,24 +1,28 @@
 package cn.daxpay.single.service.core.channel.alipay.service;
 
-import cn.bootx.platform.common.spring.exception.RetryableException;
-import cn.daxpay.single.code.PaySyncStatusEnum;
+import cn.daxpay.single.core.code.PaySyncStatusEnum;
+import cn.daxpay.single.core.exception.OperationFailException;
+import cn.daxpay.single.core.exception.TradeStatusErrorException;
 import cn.daxpay.single.service.code.AliPayCode;
-import cn.daxpay.single.service.core.payment.sync.result.PayRemoteSyncResult;
+import cn.daxpay.single.service.core.channel.alipay.entity.AliPayConfig;
 import cn.daxpay.single.service.core.order.pay.entity.PayOrder;
-import cn.daxpay.single.exception.pay.PayFailureException;
+import cn.daxpay.single.service.core.payment.sync.result.PayRemoteSyncResult;
 import com.alipay.api.AlipayApiException;
+import com.alipay.api.AlipayClient;
+import com.alipay.api.domain.AlipayTradeCancelModel;
 import com.alipay.api.domain.AlipayTradeCloseModel;
+import com.alipay.api.request.AlipayTradeCancelRequest;
+import com.alipay.api.request.AlipayTradeCloseRequest;
+import com.alipay.api.response.AlipayTradeCancelResponse;
 import com.alipay.api.response.AlipayTradeCloseResponse;
-import com.ijpay.alipay.AliPayApi;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
-import org.springframework.retry.annotation.Retryable;
 import org.springframework.stereotype.Service;
 
 import java.util.Objects;
 
 /**
- * 支付宝支付取消和支付关闭
+ * 支付宝支付撤销和支付关闭
  *
  * @author xxm
  * @since 2021/4/20
@@ -29,26 +33,28 @@ import java.util.Objects;
 public class AliPayCloseService {
     private final AliPaySyncService aliPaySyncService;
 
+    private final AliPayConfigService aliPayConfigService;
+
     /**
-     * 关闭支付 此处使用交易关闭接口, 支付宝支持 交易关闭 和 交易撤销 两种关闭订单的方式, 区别如下
+     * 关闭支付 此处使用交易关闭接口
      * 交易关闭: 只有订单在未支付的状态下才可以进行关闭, 商户不需要额外申请就有此接口的权限
-     * 交易撤销: 如果用户支付成功,会将此订单资金退还给用户. 限制时间为1天,过了24小时,该接口无法再使用。可以视为一个特殊的接口, 需要专门签约这个接口的权限
      * <p>
      * 1. 如果未查询到支付单,视为支付关闭,
      * 2. 如果返回"当前交易状态不支持此操作", 同步网关支付状态, 判断网关是否已经被关闭
      *
      */
-    @Retryable(value = RetryableException.class)
-    public void close(PayOrder payOrder) {
+    public void close(PayOrder payOrder, AliPayConfig config) {
+        AlipayClient alipayClient = aliPayConfigService.getAlipayClient(config);
         AlipayTradeCloseModel model = new AlipayTradeCloseModel();
         model.setOutTradeNo(payOrder.getOrderNo());
-
+        AlipayTradeCloseRequest request = new AlipayTradeCloseRequest();
+        request.setBizModel(model);
         try {
-            AlipayTradeCloseResponse response = AliPayApi.tradeCloseToResponse(model);
+            AlipayTradeCloseResponse response = alipayClient.execute(request);
             if (!Objects.equals(AliPayCode.SUCCESS, response.getCode())) {
                 // 如果返回"当前交易状态不支持此操作", 同步网关支付状态, 判断网关是否已经被关闭
                 if (Objects.equals(response.getSubCode(),AliPayCode.ACQ_TRADE_STATUS_ERROR)){
-                    if (this.syncStatus(payOrder)){
+                    if (this.syncStatus(payOrder, config)){
                         return;
                     }
                 }
@@ -57,11 +63,46 @@ public class AliPayCloseService {
                     return;
                 }
                 log.error("网关返回关闭失败: {}", response.getSubMsg());
-                throw new PayFailureException(response.getSubMsg());
+                throw new OperationFailException(response.getSubMsg());
+            }
+        } catch (AlipayApiException e) {
+            log.error("关闭订单失败:", e);
+            throw new OperationFailException("关闭订单失败");
+        }
+    }
+
+    /**
+     * 交易撤销: 如果用户支付成功,会将此订单资金退还给用户. 限制时间为1天,过了24小时,该接口无法再使用。
+     * 可以视为一个特殊的接口, 需要专门签约这个接口的权限
+     */
+    public void cancel(PayOrder payOrder, AliPayConfig config) {
+
+        AlipayClient alipayClient = aliPayConfigService.getAlipayClient(config);
+        AlipayTradeCancelModel model = new AlipayTradeCancelModel();
+        model.setOutTradeNo(payOrder.getOrderNo());
+        AlipayTradeCancelRequest request = new AlipayTradeCancelRequest();
+        request.setBizModel(model);
+        try {
+            AlipayTradeCancelResponse response = alipayClient.execute(request);;
+            if (!Objects.equals(AliPayCode.SUCCESS, response.getCode())) {
+                if (!Objects.equals(AliPayCode.SUCCESS, response.getCode())) {
+                    // 如果返回"当前交易状态不支持此操作", 同步网关支付状态, 判断网关是否已经被关闭
+                    if (Objects.equals(response.getSubCode(),AliPayCode.ACQ_TRADE_STATUS_ERROR)){
+                        if (this.syncStatus(payOrder, config)){
+                            return;
+                        }
+                    }
+                    // 返回"交易不存在"视同关闭成功
+                    if (Objects.equals(response.getSubCode(),AliPayCode.ACQ_TRADE_NOT_EXIST)){
+                        return;
+                    }
+                    log.error("网关返回关闭失败: {}", response.getSubMsg());
+                    throw new OperationFailException(response.getSubMsg());
+                }
             }
         } catch (AlipayApiException e) {
             log.error("关闭订单失败:", e);
-            throw new PayFailureException("关闭订单失败");
+            throw new OperationFailException("关闭订单失败");
         }
     }
 
@@ -69,19 +110,19 @@ public class AliPayCloseService {
     /**
      * 关闭失败后, 获取支付网关的状态, 如果是关闭返回true, 其他情况抛出异常
      */
-    private boolean syncStatus(PayOrder payOrder){
-        PayRemoteSyncResult gatewaySyncResult = aliPaySyncService.syncPayStatus(payOrder);
+    private boolean syncStatus(PayOrder payOrder, AliPayConfig config){
+        PayRemoteSyncResult gatewaySyncResult = aliPaySyncService.syncPayStatus(payOrder,config);
         // 已经关闭
         if (Objects.equals(gatewaySyncResult.getSyncStatus(), PaySyncStatusEnum.CLOSED)){
             return true;
         }
         // 同步错误
         else if (Objects.equals(gatewaySyncResult.getSyncStatus(), PaySyncStatusEnum.FAIL)){
-            throw new PayFailureException("关闭失败, 原因: "+gatewaySyncResult.getErrorMsg());
+            throw new OperationFailException("关闭失败, 原因: "+gatewaySyncResult.getErrorMsg());
         }
         // 其他状态
         else {
-            throw new PayFailureException("当前交易状态不支持关闭操作, 请对订单同步状态后再进行操作");
+            throw new TradeStatusErrorException("当前交易无法关闭操作, 请对订单同步状态后再进行操作");
         }
     }
 }
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/alipay/service/AliPayConfigService.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/alipay/service/AliPayConfigService.java
index 9e8f64253561fe8ad7707fc134af299e98cc731c..ef77d9b6f3aecbd3558ea5dbc83e7bb4c8b0aa96 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/alipay/service/AliPayConfigService.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/alipay/service/AliPayConfigService.java
@@ -1,21 +1,19 @@
 package cn.daxpay.single.service.core.channel.alipay.service;
 
-import cn.bootx.platform.common.core.exception.BizException;
 import cn.bootx.platform.common.core.exception.DataNotExistException;
 import cn.bootx.platform.common.core.rest.dto.LabelValue;
-import cn.daxpay.single.code.PayChannelEnum;
-import cn.daxpay.single.exception.pay.PayFailureException;
+import cn.daxpay.single.core.exception.ChannelNotEnableException;
 import cn.daxpay.single.service.code.AliPayCode;
 import cn.daxpay.single.service.code.AliPayWay;
 import cn.daxpay.single.service.core.channel.alipay.dao.AliPayConfigManager;
 import cn.daxpay.single.service.core.channel.alipay.entity.AliPayConfig;
-import cn.daxpay.single.service.core.system.config.service.PayChannelConfigService;
+import cn.daxpay.single.service.core.system.config.service.PlatformConfigService;
 import cn.daxpay.single.service.param.channel.alipay.AliPayConfigParam;
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.bean.copier.CopyOptions;
-import cn.hutool.core.util.CharsetUtil;
-import com.ijpay.alipay.AliPayApiConfig;
-import com.ijpay.alipay.AliPayApiConfigKit;
+import com.alipay.api.AlipayClient;
+import com.alipay.api.AlipayConfig;
+import com.alipay.api.DefaultAlipayClient;
 import lombok.RequiredArgsConstructor;
 import lombok.SneakyThrows;
 import lombok.extern.slf4j.Slf4j;
@@ -39,7 +37,7 @@ public class AliPayConfigService {
     /** 默认支付宝配置的主键ID */
     private final static Long ID = 0L;
     private final AliPayConfigManager alipayConfigManager;
-    private final PayChannelConfigService payChannelConfigService;
+    private final PlatformConfigService platformConfigService;
 
     /**
      * 修改
@@ -47,11 +45,6 @@ public class AliPayConfigService {
     @Transactional(rollbackFor = Exception.class)
     public void update(AliPayConfigParam param) {
         AliPayConfig alipayConfig = alipayConfigManager.findById(ID).orElseThrow(() -> new DataNotExistException("支付宝配置不存在"));
-        // 启用或停用
-        if (!Objects.equals(param.getEnable(), alipayConfig.getEnable())){
-            payChannelConfigService.setEnable(PayChannelEnum.ALI.getCode(), param.getEnable());
-        }
-
         BeanUtil.copyProperties(param, alipayConfig, CopyOptions.create().ignoreNullValue());
         alipayConfigManager.updateById(alipayConfig);
     }
@@ -79,46 +72,54 @@ public class AliPayConfigService {
     public AliPayConfig getAndCheckConfig() {
         AliPayConfig alipayConfig = this.getConfig();
         if (!alipayConfig.getEnable()){
-            throw new PayFailureException("支付宝支付未启用");
+            throw new ChannelNotEnableException("支付宝支付未启用");
         }
         return alipayConfig;
     }
 
+    /**
+     * 生成通知地址
+     */
+    public String generateNotifyUrl(){
+        return platformConfigService.getConfig().getWebsiteUrl() + "/unipay/callback/alipay";
+    }
+
+    /**
+     * 生成同步跳转地址
+     */
+    public String generateReturnUrl(){
+        return platformConfigService.getConfig().getWebsiteUrl() + "/unipay/return/alipay";
+    }
+
+    /**
+     * 获取支付宝SDK的配置
+     */
+    public AlipayClient getAlipayClient(){
+        AliPayConfig aliPayConfig = this.getConfig();
+        return this.getAlipayClient(aliPayConfig);
+    }
 
     /**
-     * 初始化IJPay服务
+     * 获取支付宝SDK的配置
      */
     @SneakyThrows
-    public void initConfig(AliPayConfig alipayConfig) {
-        AliPayApiConfig aliPayApiConfig;
-        // 公钥
-        if (Objects.equals(alipayConfig.getAuthType(), AliPayCode.AUTH_TYPE_KEY)) {
-            aliPayApiConfig = AliPayApiConfig.builder()
-                    .setAppId(alipayConfig.getAppId())
-                    .setPrivateKey(alipayConfig.getPrivateKey())
-                    .setAliPayPublicKey(alipayConfig.getAlipayPublicKey())
-                    .setCharset(CharsetUtil.UTF_8)
-                    .setServiceUrl(alipayConfig.getServerUrl())
-                    .setSignType(alipayConfig.getSignType())
-                    .build();
-        }
+    public AlipayClient getAlipayClient(AliPayConfig aliPayConfig){
+        AlipayConfig config = new AlipayConfig();
+        config.setServerUrl(aliPayConfig.getServerUrl());
+        config.setAppId(aliPayConfig.getAppId());
+        config.setFormat("json");
+        config.setCharset("UTF-8");
+        config.setSignType(aliPayConfig.getSignType());
         // 证书
-        else if (Objects.equals(alipayConfig.getAuthType(), AliPayCode.AUTH_TYPE_CART)) {
-            aliPayApiConfig = AliPayApiConfig.builder()
-                    .setAppId(alipayConfig.getAppId())
-                    .setPrivateKey(alipayConfig.getPrivateKey())
-                    .setAppCertContent(alipayConfig.getAppCert())
-                    .setAliPayCertContent(alipayConfig.getAlipayCert())
-                    .setAliPayRootCertContent(alipayConfig.getAlipayRootCert())
-                    .setCharset(CharsetUtil.UTF_8)
-                    .setServiceUrl(alipayConfig.getServerUrl())
-                    .setSignType(alipayConfig.getSignType())
-                    .buildByCertContent();
+        if (Objects.equals(aliPayConfig.getAuthType(), AliPayCode.AUTH_TYPE_CART)){
+            config.setAppCertContent(aliPayConfig.getAppCert());
+            config.setRootCertContent(aliPayConfig.getAlipayRootCert());
+            config.setAlipayPublicCertContent(aliPayConfig.getAlipayCert());
+        } else {
+            // 公钥
+            config.setPrivateKey(aliPayConfig.getPrivateKey());
+            config.setAlipayPublicKey(aliPayConfig.getAlipayPublicKey());
         }
-        else {
-            throw new BizException("支付宝认证方式不可为空");
-        }
-        AliPayApiConfigKit.setThreadLocalAliPayApiConfig(aliPayApiConfig);
+        return new DefaultAlipayClient(config);
     }
-
 }
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/alipay/service/AliPayNoticeReceiverService.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/alipay/service/AliPayNoticeReceiverService.java
index 111874f5ea88a7342a7955172f5516ea1fcdee12..f67eb501f20b0e8873fbbba5cd1bebfb5dcd7473 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/alipay/service/AliPayNoticeReceiverService.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/alipay/service/AliPayNoticeReceiverService.java
@@ -29,8 +29,6 @@ import static cn.daxpay.single.service.code.AliPayCode.AUTH_TYPE_KEY;
 @RequiredArgsConstructor
 public class AliPayNoticeReceiverService {
 
-    private final AllocationCallbackService allocationCallbackService;
-
     private final AliPayConfigService aliPayConfigService;
 
     /**
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/alipay/service/AliPayReconcileService.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/alipay/service/AliPayReconcileService.java
index 0d71396d03c6a81e84231728e3b0e1697d7912b3..2e5dc1e3fb96de67a57e2da62e4bc5dca29e034c 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/alipay/service/AliPayReconcileService.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/alipay/service/AliPayReconcileService.java
@@ -1,21 +1,21 @@
 package cn.daxpay.single.service.core.channel.alipay.service;
 
 import cn.bootx.platform.common.core.util.LocalDateTimeUtil;
-import cn.daxpay.single.code.PayChannelEnum;
-import cn.daxpay.single.code.ReconcileTradeEnum;
-import cn.daxpay.single.exception.pay.PayFailureException;
+import cn.daxpay.single.core.code.ReconcileTradeEnum;
+import cn.daxpay.single.core.exception.ReconciliationFailException;
 import cn.daxpay.single.service.code.AliPayCode;
 import cn.daxpay.single.service.code.ReconcileFileTypeEnum;
 import cn.daxpay.single.service.common.local.PaymentContextLocal;
 import cn.daxpay.single.service.core.channel.alipay.dao.AliReconcileBillDetailManager;
 import cn.daxpay.single.service.core.channel.alipay.dao.AliReconcileBillTotalManager;
+import cn.daxpay.single.service.core.channel.alipay.entity.AliPayConfig;
 import cn.daxpay.single.service.core.channel.alipay.entity.AliReconcileBillDetail;
 import cn.daxpay.single.service.core.channel.alipay.entity.AliReconcileBillTotal;
 import cn.daxpay.single.service.core.order.reconcile.dao.ReconcileFileManager;
 import cn.daxpay.single.service.core.order.reconcile.entity.ReconcileFile;
 import cn.daxpay.single.service.core.order.reconcile.entity.ReconcileOrder;
 import cn.daxpay.single.service.core.order.reconcile.entity.ReconcileOutTrade;
-import cn.daxpay.single.util.PayUtil;
+import cn.daxpay.single.core.util.PayUtil;
 import cn.hutool.core.date.DatePattern;
 import cn.hutool.core.io.IoUtil;
 import cn.hutool.core.text.csv.CsvReader;
@@ -23,12 +23,13 @@ import cn.hutool.core.text.csv.CsvUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.http.HttpUtil;
 import com.alipay.api.AlipayApiException;
+import com.alipay.api.AlipayClient;
 import com.alipay.api.domain.AlipayDataDataserviceBillDownloadurlQueryModel;
-import com.ijpay.alipay.AliPayApi;
+import com.alipay.api.request.AlipayDataDataserviceBillDownloadurlQueryRequest;
+import com.alipay.api.response.AlipayDataDataserviceBillDownloadurlQueryResponse;
 import lombok.RequiredArgsConstructor;
 import lombok.SneakyThrows;
 import lombok.extern.slf4j.Slf4j;
-import lombok.val;
 import org.apache.commons.compress.archivers.zip.ZipArchiveEntry;
 import org.apache.commons.compress.archivers.zip.ZipArchiveInputStream;
 import org.dromara.x.file.storage.core.FileInfo;
@@ -57,6 +58,8 @@ import java.util.stream.Collectors;
 @RequiredArgsConstructor
 public class AliPayReconcileService {
 
+    private final AliPayConfigService aliPayConfigService;
+
     private final AliReconcileBillDetailManager reconcileBillDetailManager;
 
     private final AliReconcileBillTotalManager reconcileBillTotalManager;
@@ -71,20 +74,23 @@ public class AliPayReconcileService {
      *
      * @param date        对账日期 yyyy-MM-dd 格式
      * @param recordOrder 对账单对象
+     * @param config
      */
     @SneakyThrows
     @Transactional(rollbackFor = Exception.class)
-    public void downAndSave(String date, ReconcileOrder recordOrder){
-
+    public void downAndSave(String date, ReconcileOrder recordOrder, AliPayConfig config){
         try {
+            AlipayClient alipayClient = aliPayConfigService.getAlipayClient(config);
             AlipayDataDataserviceBillDownloadurlQueryModel model = new AlipayDataDataserviceBillDownloadurlQueryModel();
             model.setBillDate(date);
             model.setBillType("trade");
-            val response = AliPayApi.billDownloadUrlQueryToResponse(model);
+            AlipayDataDataserviceBillDownloadurlQueryRequest request = new AlipayDataDataserviceBillDownloadurlQueryRequest();
+            request.setBizModel(model);
+            AlipayDataDataserviceBillDownloadurlQueryResponse response = alipayClient.execute(request);
             // 判断返回结果
             if (!Objects.equals(AliPayCode.SUCCESS, response.getCode())) {
                 log.error("获取支付宝对账单失败: {}", response.getSubMsg());
-                throw new PayFailureException(response.getSubMsg());
+                throw new ReconciliationFailException(response.getSubMsg());
             }
 
             // 获取对账单下载地址并下载
@@ -239,10 +245,9 @@ public class AliPayReconcileService {
      */
     private void saveOriginalFile(ReconcileOrder reconcileOrder, byte[] bytes) {
         // 将原始文件进行保存
-        PayChannelEnum channelEnum = PayChannelEnum.findByCode(reconcileOrder.getChannel());
         String date = LocalDateTimeUtil.format(reconcileOrder.getDate(), DatePattern.PURE_DATE_PATTERN);
         // 将原始文件进行保存 通道-日期
-        String fileName = StrUtil.format("交易对账单-{}-{}.csv", channelEnum.getName(),date);
+        String fileName = StrUtil.format("交易对账单-支付宝-{}.csv",date);
         UploadPretreatment uploadPretreatment = fileStorageService.of(bytes);
         if (StrUtil.isNotBlank(fileName)) {
             uploadPretreatment.setOriginalFilename(fileName);
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/alipay/service/AliPayRefundService.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/alipay/service/AliPayRefundService.java
index 6ff8c8266c1b73bacfe0753454c55f767324056c..1e5844a7f37a714ff32e1245d0d80048129c5448 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/alipay/service/AliPayRefundService.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/alipay/service/AliPayRefundService.java
@@ -1,16 +1,20 @@
 package cn.daxpay.single.service.core.channel.alipay.service;
 
-import cn.daxpay.single.code.RefundStatusEnum;
-import cn.daxpay.single.exception.pay.PayFailureException;
+import cn.daxpay.single.core.code.DaxPayErrorCode;
+import cn.daxpay.single.core.code.RefundStatusEnum;
+import cn.daxpay.single.core.exception.OperationFailException;
+import cn.daxpay.single.core.util.PayUtil;
 import cn.daxpay.single.service.code.AliPayCode;
+import cn.daxpay.single.service.common.context.ErrorInfoLocal;
 import cn.daxpay.single.service.common.context.RefundLocal;
 import cn.daxpay.single.service.common.local.PaymentContextLocal;
+import cn.daxpay.single.service.core.channel.alipay.entity.AliPayConfig;
 import cn.daxpay.single.service.core.order.refund.entity.RefundOrder;
-import cn.daxpay.single.util.PayUtil;
 import com.alipay.api.AlipayApiException;
+import com.alipay.api.AlipayClient;
 import com.alipay.api.domain.AlipayTradeRefundModel;
+import com.alipay.api.request.AlipayTradeRefundRequest;
 import com.alipay.api.response.AlipayTradeRefundResponse;
-import com.ijpay.alipay.AliPayApi;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
@@ -28,26 +32,32 @@ import java.util.Objects;
 @RequiredArgsConstructor
 public class AliPayRefundService {
 
+    private final AliPayConfigService aliPayConfigService;
+
     /**
      * 退款, 调用支付宝退款
      */
-    public void refund(RefundOrder refundOrder) {
+    public void refund(RefundOrder refundOrder, AliPayConfig config) {
+        AlipayClient alipayClient = aliPayConfigService.getAlipayClient(config);
+
         RefundLocal refundInfo = PaymentContextLocal.get().getRefundInfo();
-        AlipayTradeRefundModel refundModel = new AlipayTradeRefundModel();
-        refundModel.setOutTradeNo(refundOrder.getOrderNo());
-        refundModel.setOutRequestNo(refundOrder.getRefundNo());
+        ErrorInfoLocal errorInfo = PaymentContextLocal.get().getErrorInfo();
+        AlipayTradeRefundModel model = new AlipayTradeRefundModel();
+        model.setOutTradeNo(refundOrder.getOrderNo());
+        model.setOutRequestNo(refundOrder.getRefundNo());
         // 金额转换
         String refundAmount = PayUtil.conversionAmount(refundOrder.getAmount()).toString();
-        refundModel.setRefundAmount(refundAmount);
+        model.setRefundAmount(refundAmount);
+        AlipayTradeRefundRequest request = new AlipayTradeRefundRequest();
+        request.setBizModel(model);
 
-        // 设置退款信息
         try {
-            AlipayTradeRefundResponse response = AliPayApi.tradeRefundToResponse(refundModel);
+            AlipayTradeRefundResponse response = alipayClient.execute(request);
             if (!Objects.equals(AliPayCode.SUCCESS, response.getCode())) {
-                refundInfo.setErrorMsg(response.getSubMsg());
-                refundInfo.setErrorCode(response.getCode());
+                OperationFailException operationFailException = new OperationFailException(response.getSubMsg());
+                errorInfo.setException(operationFailException);
                 log.error("网关返回退款失败: {}", response.getSubMsg());
-                throw new PayFailureException(response.getSubMsg());
+                throw operationFailException;
             }
             // 默认为退款中状态
             refundInfo.setStatus(RefundStatusEnum.PROGRESS)
@@ -61,9 +71,9 @@ public class AliPayRefundService {
         }
         catch (AlipayApiException e) {
             log.error("订单退款失败:", e);
-            refundInfo.setErrorMsg(e.getErrMsg());
-            refundInfo.setErrorCode(e.getErrCode());
-            throw new PayFailureException("订单退款失败");
+            errorInfo.setErrorMsg(e.getErrMsg());
+            errorInfo.setErrorCode(DaxPayErrorCode.OPERATION_FAIL);
+            throw new OperationFailException(e.getErrMsg());
         }
     }
 }
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/alipay/service/AliPayService.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/alipay/service/AliPayService.java
index abeeeee9197a4dda52fa2c3ccd1602c261b3faa6..edb11447941671a9a74d12d16ef8f35ad07cc656 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/alipay/service/AliPayService.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/alipay/service/AliPayService.java
@@ -1,31 +1,32 @@
 package cn.daxpay.single.service.core.channel.alipay.service;
 
-import cn.daxpay.single.code.PayMethodEnum;
-import cn.daxpay.single.exception.pay.PayFailureException;
-import cn.daxpay.single.param.channel.AliPayParam;
-import cn.daxpay.single.param.payment.pay.PayParam;
+import cn.bootx.platform.common.core.util.LocalDateTimeUtil;
+import cn.daxpay.single.core.code.PayMethodEnum;
+import cn.daxpay.single.core.exception.*;
+import cn.daxpay.single.core.param.channel.AliPayParam;
+import cn.daxpay.single.core.param.payment.pay.PayParam;
+import cn.daxpay.single.core.util.PayUtil;
 import cn.daxpay.single.service.code.AliPayCode;
 import cn.daxpay.single.service.code.AliPayWay;
-import cn.daxpay.single.service.common.context.NoticeLocal;
 import cn.daxpay.single.service.common.context.PayLocal;
 import cn.daxpay.single.service.common.local.PaymentContextLocal;
 import cn.daxpay.single.service.core.channel.alipay.entity.AliPayConfig;
 import cn.daxpay.single.service.core.order.pay.entity.PayOrder;
-import cn.daxpay.single.util.PayUtil;
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.http.Method;
 import com.alipay.api.AlipayApiException;
+import com.alipay.api.AlipayClient;
 import com.alipay.api.AlipayResponse;
 import com.alipay.api.domain.*;
-import com.alipay.api.request.AlipayTradePagePayRequest;
-import com.alipay.api.request.AlipayTradeWapPayRequest;
+import com.alipay.api.request.*;
 import com.alipay.api.response.*;
-import com.ijpay.alipay.AliPayApi;
 import lombok.RequiredArgsConstructor;
+import lombok.SneakyThrows;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 
+import java.util.Date;
 import java.util.Objects;
 import java.util.Optional;
 
@@ -43,27 +44,29 @@ import static cn.daxpay.single.service.code.AliPayCode.QUICK_MSECURITY_PAY;
 @RequiredArgsConstructor
 public class AliPayService {
 
+    private final AliPayConfigService aliPayConfigService;
+
     /**
      * 支付前检查支付方式是否可用
      */
     public void validation(PayParam payParam, AliPayConfig alipayConfig) {
 
         if (CollUtil.isEmpty(alipayConfig.getPayWays())){
-            throw new PayFailureException("支付宝未配置可用的支付方式");
+            throw new ConfigErrorException("支付宝未配置可用的支付方式");
         }
         // 发起的支付类型是否在支持的范围内
         PayMethodEnum payMethodEnum = Optional.ofNullable(AliPayWay.findByCode(payParam.getMethod()))
-            .orElseThrow(() -> new PayFailureException("非法的支付宝支付类型"));
+                .orElseThrow(() -> new MethodNotExistException("非法的支付宝支付类型"));
         if (!alipayConfig.getPayWays().contains(payMethodEnum.getCode())) {
-            throw new PayFailureException("该支付宝支付方式不可用");
+            throw new MethodNotEnableException("该支付宝支付方式不可用");
         }
         // 验证订单金额是否超限
-        if(payParam.getAmount() > alipayConfig.getSingleLimit()){
-            throw new PayFailureException("支付宝支付金额超过限额");
+        if(payParam.getAmount() > alipayConfig.getLimitAmount()){
+            throw new AmountExceedLimitException("支付宝支付金额超过限额");
         }
         // 支付参数开启分账, 配置未开启分账
         if(Objects.equals(payParam.getAllocation(),true) && !Objects.equals(alipayConfig.getAllocation(),true)){
-            throw new PayFailureException("未开启分账配置");
+            throw new ConfigErrorException("未开启分账配置");
         }
     }
 
@@ -87,6 +90,10 @@ public class AliPayService {
         else if (Objects.equals(payOrder.getMethod(), PayMethodEnum.WEB.getCode())) {
             payBody = this.webPay(amount, payOrder, alipayConfig);
         }
+        // jsapi支付
+        else if (Objects.equals(payOrder.getMethod(), PayMethodEnum.JSAPI.getCode())) {
+            payBody = this.jsapiPay(amount, payOrder, aliPayParam, alipayConfig);
+        }
         // 二维码支付
         else if (Objects.equals(payOrder.getMethod(), PayMethodEnum.QRCODE.getCode())) {
             payBody = this.qrCodePay(amount, payOrder, alipayConfig);
@@ -102,8 +109,11 @@ public class AliPayService {
     /**
      * wap支付
      */
+    @SneakyThrows
     public String wapPay(String amount, PayOrder payOrder, AliPayConfig alipayConfig) {
-        NoticeLocal noticeInfo = PaymentContextLocal.get().getNoticeInfo();
+        // 获取支付宝客户端
+        AlipayClient alipayClient = aliPayConfigService.getAlipayClient(alipayConfig);
+
         AlipayTradeWapPayModel model = new AlipayTradeWapPayModel();
         model.setSubject(payOrder.getTitle());
         model.setOutTradeNo(payOrder.getOrderNo());
@@ -111,12 +121,10 @@ public class AliPayService {
         // 过期时间
         model.setTimeExpire(PayUtil.getAliTimeExpire(payOrder.getExpiredTime()));
         model.setProductCode(AliPayCode.QUICK_WAP_PAY);
-        // 中途退出地址
-        model.setQuitUrl(noticeInfo.getQuitUrl());
         // 是否分账
         if (payOrder.getAllocation()){
             ExtendParams extendParams = new ExtendParams();
-            extendParams.setRoyaltyFreeze("true");
+            extendParams.setRoyaltyFreeze(Boolean.TRUE.toString());
             model.setExtendParams(extendParams);
         }
 
@@ -129,21 +137,24 @@ public class AliPayService {
 
         try {
             // 通过GET方式的请求, 返回URL的响应, 默认是POST方式的请求, 返回的是表单响应
-            AlipayTradeWapPayResponse response = AliPayApi.pageExecute(request, Method.GET.name());
+            AlipayTradeWapPayResponse response = alipayClient.pageExecute(request, Method.GET.name());
             return response.getBody();
         }
         catch (AlipayApiException e) {
             log.error("支付宝手机支付失败", e);
-            throw new PayFailureException("支付宝手机支付失败");
+            throw new TradeFailException("支付宝手机支付失败");
         }
     }
 
     /**
      * app支付
      */
+    @SneakyThrows
     public String appPay(String amount, PayOrder payOrder, AliPayConfig alipayConfig) {
-        AlipayTradeAppPayModel model = new AlipayTradeAppPayModel();
+        // 获取支付宝客户端
+        AlipayClient alipayClient = aliPayConfigService.getAlipayClient(alipayConfig);
 
+        AlipayTradeAppPayModel model = new AlipayTradeAppPayModel();
         model.setSubject(payOrder.getTitle());
         model.setProductCode(QUICK_MSECURITY_PAY);
         model.setOutTradeNo(payOrder.getOrderNo());
@@ -153,27 +164,32 @@ public class AliPayService {
         // 是否分账
         if (payOrder.getAllocation()){
             ExtendParams extendParams = new ExtendParams();
-            extendParams.setRoyaltyFreeze("true");
+            extendParams.setRoyaltyFreeze(Boolean.TRUE.toString());
             model.setExtendParams(extendParams);
         }
-
+        AlipayTradeAppPayRequest request = new AlipayTradeAppPayRequest();
+        request.setBizModel(model);
+        request.setNotifyUrl(alipayConfig.getNotifyUrl());
         try {
             // 异步回调必须到当前系统中
-            AlipayTradeAppPayResponse response = AliPayApi.appPayToResponse(model, alipayConfig.getNotifyUrl());
+            AlipayTradeAppPayResponse response = alipayClient.execute(request);
             return response.getBody();
         }
         catch (AlipayApiException e) {
             log.error("支付宝APP支付失败", e);
-            throw new PayFailureException("支付宝APP支付失败");
+            throw new TradeFailException("支付宝APP支付失败");
         }
     }
 
     /**
      * PC支付
      */
+    @SneakyThrows
     public String webPay(String amount, PayOrder payOrder, AliPayConfig alipayConfig) {
-        AlipayTradePagePayModel model = new AlipayTradePagePayModel();
+        // 获取支付宝客户端
+        AlipayClient alipayClient = aliPayConfigService.getAlipayClient(alipayConfig);
 
+        AlipayTradePagePayModel model = new AlipayTradePagePayModel();
         model.setSubject(payOrder.getTitle());
         model.setOutTradeNo(payOrder.getOrderNo());
         // 过期时间
@@ -185,7 +201,7 @@ public class AliPayService {
         // 是否分账
         if (payOrder.getAllocation()){
             ExtendParams extendParams = new ExtendParams();
-            extendParams.setRoyaltyFreeze("true");
+            extendParams.setRoyaltyFreeze(Boolean.TRUE.toString());
             model.setExtendParams(extendParams);
         }
 
@@ -197,19 +213,59 @@ public class AliPayService {
         request.setReturnUrl(alipayConfig.getReturnUrl());
         try {
             // 通过GET方式的请求, 返回URL的响应, 默认是POST方式的请求, 返回的是表单响应
-            AlipayTradePagePayResponse response = AliPayApi.pageExecute(request, Method.GET.name());
+            AlipayTradePagePayResponse response = alipayClient.pageExecute(request, Method.GET.name());
             return response.getBody();
         }
         catch (AlipayApiException e) {
             log.error("支付宝PC支付失败", e);
-            throw new PayFailureException("支付宝PC支付失败");
+            throw new TradeFailException("支付宝PC支付失败");
+        }
+    }
+
+    /**
+     * jsapi支付
+     */
+    @SneakyThrows
+    public String jsapiPay(String amount, PayOrder payOrder, AliPayParam aliPayParam, AliPayConfig alipayConfig) {
+        // 获取支付宝客户端
+        AlipayClient alipayClient = aliPayConfigService.getAlipayClient(alipayConfig);
+
+        // 构造请求参数以调用接口
+        AlipayTradeCreateRequest request = new AlipayTradeCreateRequest();
+        AlipayTradeCreateModel model = new AlipayTradeCreateModel();
+        model.setOutTradeNo(payOrder.getOrderNo());
+        model.setProductCode(AliPayCode.JSAPI_PAY);
+        model.setOpAppId(aliPayParam.getOpAppId());
+        model.setTotalAmount(amount);
+        model.setSubject(payOrder.getTitle());
+        model.setOpBuyerOpenId(aliPayParam.getOpenId());
+        model.setTimeExpire(PayUtil.getAliTimeExpire(payOrder.getExpiredTime()));
+        // 是否分账
+        if (payOrder.getAllocation()){
+            ExtendParams extendParams = new ExtendParams();
+            extendParams.setRoyaltyFreeze(Boolean.TRUE.toString());
+            model.setExtendParams(extendParams);
+        }
+        request.setBizModel(model);
+        try {
+            AlipayTradeCreateResponse response = alipayClient.execute(request);
+            this.verifyErrorMsg(response);
+            // my.tradePay使用支付宝交易号调起支付
+            return response.getTradeNo();
+        } catch (AlipayApiException e) {
+            log.error("支付宝JsApi支付失败", e);
+            throw new TradeFailException("支付宝JsApi支付失败");
         }
     }
 
     /**
      * 二维码支付(扫码支付)
      */
+    @SneakyThrows
     public String qrCodePay(String amount, PayOrder payOrder, AliPayConfig alipayConfig) {
+        // 获取支付宝客户端
+        AlipayClient alipayClient = aliPayConfigService.getAlipayClient(alipayConfig);
+
         AlipayTradePrecreateModel model = new AlipayTradePrecreateModel();
         model.setSubject(payOrder.getTitle());
         model.setOutTradeNo(payOrder.getOrderNo());
@@ -217,29 +273,34 @@ public class AliPayService {
         // 是否分账
         if (payOrder.getAllocation()){
             ExtendParams extendParams = new ExtendParams();
-            extendParams.setRoyaltyFreeze("true");
+            extendParams.setRoyaltyFreeze(Boolean.TRUE.toString());
             model.setExtendParams(extendParams);
         }
         // 过期时间
         model.setTimeExpire(PayUtil.getAliTimeExpire(payOrder.getExpiredTime()));
-
+        AlipayTradePrecreateRequest request = new AlipayTradePrecreateRequest();
+        request.setBizModel(model);
+        request.setNotifyUrl(alipayConfig.getNotifyUrl());
         try {
-            AlipayTradePrecreateResponse response = AliPayApi.tradePrecreatePayToResponse(model, alipayConfig.getNotifyUrl());
+            AlipayTradePrecreateResponse response = alipayClient.execute(request);
             this.verifyErrorMsg(response);
             return response.getQrCode();
         }
         catch (AlipayApiException e) {
             log.error("支付宝手机支付失败", e);
-            throw new PayFailureException("支付宝手机支付失败");
+            throw new TradeFailException("支付宝手机支付失败");
         }
     }
 
     /**
      * 付款码支付
      */
+    @SneakyThrows
     public void barCode(String amount, PayOrder payOrder, AliPayParam aliPayParam, AliPayConfig alipayConfig) {
-        PayLocal payInfo = PaymentContextLocal.get().getPayInfo();
+        // 获取支付宝客户端
+        AlipayClient alipayClient = aliPayConfigService.getAlipayClient(alipayConfig);
 
+        PayLocal payInfo = PaymentContextLocal.get().getPayInfo();
         AlipayTradePayModel model = new AlipayTradePayModel();
         model.setSubject(payOrder.getTitle());
         model.setOutTradeNo(payOrder.getOrderNo());
@@ -248,19 +309,23 @@ public class AliPayService {
         // 是否分账
         if (payOrder.getAllocation()){
             ExtendParams extendParams = new ExtendParams();
-            extendParams.setRoyaltyFreeze("true");
+            extendParams.setRoyaltyFreeze(Boolean.TRUE.toString());
             model.setExtendParams(extendParams);
         }
         // 过期时间
         model.setTimeExpire(PayUtil.getAliTimeExpire(payOrder.getExpiredTime()));
         model.setTotalAmount(amount);
+        AlipayTradePayRequest request = new AlipayTradePayRequest();
+        request.setBizModel(model);
+        request.setNotifyUrl(alipayConfig.getNotifyUrl());
         try {
-            AlipayTradePayResponse response = AliPayApi.tradePayToResponse(model, alipayConfig.getNotifyUrl());
-
+            AlipayTradePayResponse response = alipayClient.execute(request);
             // 支付成功处理 金额2000以下免密支付, 记录支付完成相关信息
             if (Objects.equals(response.getCode(), AliPayCode.SUCCESS)) {
+                Date gmtPayment = response.getGmtPayment();
                 payInfo.setOutOrderNo(response.getTradeNo())
-                        .setComplete(true);
+                        .setComplete(true)
+                        .setCompleteTime(LocalDateTimeUtil.of(gmtPayment));
             }
             // 非支付中响应码, 进行错误处理
             if (!Objects.equals(response.getCode(), AliPayCode.INPROCESS)) {
@@ -269,7 +334,7 @@ public class AliPayService {
         }
         catch (AlipayApiException e) {
             log.error("主动扫码支付失败", e);
-            throw new PayFailureException("主动扫码支付失败");
+            throw new TradeFailException("主动扫码支付失败");
         }
     }
 
@@ -283,7 +348,7 @@ public class AliPayService {
                 errorMsg = alipayResponse.getMsg();
             }
             log.error("支付失败 {}", errorMsg);
-            throw new PayFailureException(errorMsg);
+            throw new TradeFailException(errorMsg);
         }
     }
 
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/alipay/service/AliPaySyncService.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/alipay/service/AliPaySyncService.java
index 7d5e1c2aa82d0b65702abe8575ba991fa7d575e3..0283dc376d7afb3d21b5eea95e489ceaedc09f29 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/alipay/service/AliPaySyncService.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/alipay/service/AliPaySyncService.java
@@ -1,21 +1,31 @@
 package cn.daxpay.single.service.core.channel.alipay.service;
 
 import cn.bootx.platform.common.core.util.LocalDateTimeUtil;
-import cn.daxpay.single.code.RefundSyncStatusEnum;
-import cn.daxpay.single.code.PaySyncStatusEnum;
+import cn.daxpay.single.core.code.PaySyncStatusEnum;
+import cn.daxpay.single.core.code.RefundSyncStatusEnum;
+import cn.daxpay.single.core.code.TransferStatusEnum;
+import cn.daxpay.single.core.result.sync.TransferSyncResult;
 import cn.daxpay.single.service.code.AliPayCode;
+import cn.daxpay.single.service.core.channel.alipay.entity.AliPayConfig;
 import cn.daxpay.single.service.core.order.pay.entity.PayOrder;
 import cn.daxpay.single.service.core.order.refund.entity.RefundOrder;
+import cn.daxpay.single.service.core.order.transfer.entity.TransferOrder;
 import cn.daxpay.single.service.core.payment.sync.result.PayRemoteSyncResult;
 import cn.daxpay.single.service.core.payment.sync.result.RefundRemoteSyncResult;
 import cn.hutool.json.JSONUtil;
 import com.alipay.api.AlipayApiException;
+import com.alipay.api.AlipayClient;
+import com.alipay.api.domain.AlipayFundTransCommonQueryModel;
 import com.alipay.api.domain.AlipayTradeFastpayRefundQueryModel;
 import com.alipay.api.domain.AlipayTradeQueryModel;
+import com.alipay.api.request.AlipayFundTransCommonQueryRequest;
+import com.alipay.api.request.AlipayTradeFastpayRefundQueryRequest;
+import com.alipay.api.request.AlipayTradeQueryRequest;
+import com.alipay.api.response.AlipayFundTransCommonQueryResponse;
 import com.alipay.api.response.AlipayTradeFastpayRefundQueryResponse;
 import com.alipay.api.response.AlipayTradeQueryResponse;
-import com.ijpay.alipay.AliPayApi;
 import lombok.RequiredArgsConstructor;
+import lombok.SneakyThrows;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 
@@ -35,6 +45,8 @@ import static cn.daxpay.single.service.code.AliPayCode.GMT_REFUND_PAY;
 @Service
 @RequiredArgsConstructor
 public class AliPaySyncService {
+    private final AliPayConfigService aliPayConfigService;
+
     /**
      * 与支付宝网关同步状态, 退款状态有
      * 1 远程支付成功
@@ -43,18 +55,21 @@ public class AliPaySyncService {
      * 4 查询不到
      * 5 查询失败
      */
-    public PayRemoteSyncResult syncPayStatus(PayOrder payOrder) {
+    public PayRemoteSyncResult syncPayStatus(PayOrder payOrder, AliPayConfig aliPayConfig){
+        AlipayClient alipayClient = aliPayConfigService.getAlipayClient(aliPayConfig);
         PayRemoteSyncResult syncResult = new PayRemoteSyncResult().setSyncStatus(PaySyncStatusEnum.FAIL);
         // 查询
         try {
-            AlipayTradeQueryModel queryModel = new AlipayTradeQueryModel();
-            queryModel.setOutTradeNo(payOrder.getOrderNo());
-            AlipayTradeQueryResponse response = AliPayApi.tradeQueryToResponse(queryModel);
+            AlipayTradeQueryModel model = new AlipayTradeQueryModel();
+            model.setOutTradeNo(payOrder.getOrderNo());
+            AlipayTradeQueryRequest request = new AlipayTradeQueryRequest();
+            request.setBizModel(model);
+            AlipayTradeQueryResponse response = alipayClient.execute(request);
             String tradeStatus = response.getTradeStatus();
             syncResult.setSyncInfo(JSONUtil.toJsonStr(response));
             // 设置网关订单号
             syncResult.setOutOrderNo(response.getTradeNo());
-            // 支付完成 TODO 部分退款也在这个地方, 但无法进行区分, 需要借助对账进行处理
+            // 支付完成  部分退款无法进行区分, 需要借助对账进行处理
             if (Objects.equals(tradeStatus, AliPayCode.NOTIFY_TRADE_SUCCESS) || Objects.equals(tradeStatus, AliPayCode.NOTIFY_TRADE_FINISHED)) {
                 // 支付完成时间
                 LocalDateTime payTime = LocalDateTimeUtil.of(response.getSendPayDate());
@@ -96,17 +111,20 @@ public class AliPaySyncService {
      * 退款同步查询
      * 注意: 支付宝退款没有网关订单号, 网关订单号是支付单的
      */
-    public RefundRemoteSyncResult syncRefundStatus(RefundOrder refundOrder) {
+    public RefundRemoteSyncResult syncRefundStatus(RefundOrder refundOrder){
+        AlipayClient alipayClient = aliPayConfigService.getAlipayClient();
         RefundRemoteSyncResult syncResult = new RefundRemoteSyncResult().setSyncStatus(RefundSyncStatusEnum.FAIL);
         try {
-            AlipayTradeFastpayRefundQueryModel queryModel = new AlipayTradeFastpayRefundQueryModel();
+            AlipayTradeFastpayRefundQueryModel model = new AlipayTradeFastpayRefundQueryModel();
             // 退款请求号
-            queryModel.setOutRequestNo(String.valueOf(refundOrder.getRefundNo()));
+            model.setOutRequestNo(String.valueOf(refundOrder.getRefundNo()));
             // 商户订单号
-            queryModel.setOutTradeNo(String.valueOf(refundOrder.getOrderNo()));
+            model.setOutTradeNo(String.valueOf(refundOrder.getOrderNo()));
             // 设置返回退款完成时间
-            queryModel.setQueryOptions(Collections.singletonList(GMT_REFUND_PAY));
-            AlipayTradeFastpayRefundQueryResponse response = AliPayApi.tradeRefundQueryToResponse(queryModel);
+            model.setQueryOptions(Collections.singletonList(GMT_REFUND_PAY));
+            AlipayTradeFastpayRefundQueryRequest request = new AlipayTradeFastpayRefundQueryRequest();
+            request.setBizModel(model);
+            AlipayTradeFastpayRefundQueryResponse response = alipayClient.execute(request);
             syncResult.setSyncInfo(JSONUtil.toJsonStr(response));
             // 失败
             if (!Objects.equals(AliPayCode.SUCCESS, response.getCode())) {
@@ -129,4 +147,26 @@ public class AliPaySyncService {
         }
         return syncResult;
     }
+
+    /**
+     * 转账同步
+     */
+    @SneakyThrows
+    public TransferSyncResult syncTransferStatus(TransferOrder transferOrder){
+        AlipayClient alipayClient = aliPayConfigService.getAlipayClient();
+        // 构造请求参数以调用接口
+        AlipayFundTransCommonQueryRequest request = new AlipayFundTransCommonQueryRequest();
+        AlipayFundTransCommonQueryModel model = new AlipayFundTransCommonQueryModel();
+        // 设置销售产品码
+        model.setProductCode("STD_RED_PACKET");
+        // 设置描述特定的业务场景
+        model.setBizScene("PERSONAL_PAY");
+        // 设置商户转账唯一订单号
+        model.setOutBizNo(transferOrder.getTransferNo());
+        request.setBizModel(model);
+        AlipayFundTransCommonQueryResponse response = alipayClient.execute(request);
+        System.out.println(response.getBody());
+        return new TransferSyncResult().setStatus(TransferStatusEnum.FAIL.getCode());
+    }
+
 }
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/alipay/service/AliPayTransferService.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/alipay/service/AliPayTransferService.java
index 0d02f272b319381f3f63c659e6e95eb0760791c5..c7164425877e5a0cd14fb0030b0c1b4ab5a26c8e 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/alipay/service/AliPayTransferService.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/alipay/service/AliPayTransferService.java
@@ -1,16 +1,32 @@
 package cn.daxpay.single.service.core.channel.alipay.service;
 
+import cn.bootx.platform.common.core.util.LocalDateTimeUtil;
+import cn.daxpay.single.core.code.TransferPayeeTypeEnum;
+import cn.daxpay.single.core.code.TransferStatusEnum;
+import cn.daxpay.single.core.exception.TradeFailException;
+import cn.daxpay.single.service.code.AliPayCode;
+import cn.daxpay.single.service.common.context.TransferLocal;
+import cn.daxpay.single.service.common.local.PaymentContextLocal;
 import cn.daxpay.single.service.core.channel.alipay.entity.AliPayConfig;
+import cn.daxpay.single.service.core.order.transfer.entity.TransferOrder;
+import cn.daxpay.single.core.util.PayUtil;
+import cn.hutool.core.date.DatePattern;
+import com.alipay.api.AlipayClient;
 import com.alipay.api.domain.AlipayFundAccountQueryModel;
-import com.alipay.api.domain.AlipayFundTransToaccountTransferModel;
+import com.alipay.api.domain.AlipayFundTransUniTransferModel;
+import com.alipay.api.domain.Participant;
+import com.alipay.api.request.AlipayFundAccountQueryRequest;
+import com.alipay.api.request.AlipayFundTransUniTransferRequest;
 import com.alipay.api.response.AlipayFundAccountQueryResponse;
-import com.alipay.api.response.AlipayFundTransToaccountTransferResponse;
-import com.ijpay.alipay.AliPayApi;
+import com.alipay.api.response.AlipayFundTransUniTransferResponse;
 import lombok.RequiredArgsConstructor;
 import lombok.SneakyThrows;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 
+import java.time.LocalDateTime;
+import java.util.Objects;
+
 import static cn.daxpay.single.service.code.AliPayCode.QUERY_ACCOUNT_TYPE;
 
 @Slf4j
@@ -18,17 +34,20 @@ import static cn.daxpay.single.service.code.AliPayCode.QUERY_ACCOUNT_TYPE;
 @RequiredArgsConstructor
 public class AliPayTransferService {
 
-    private final AliPayConfigService payConfigService;
+    private final AliPayConfigService aliPayConfigService;
 
     /**
      * 余额查询接口
      */
     @SneakyThrows
-    public void queryAccountAmount(AliPayConfig config) {
+    public void queryAccountAmount(AliPayConfig config, AliPayConfig aliPayConfig){
+        AlipayClient alipayClient = aliPayConfigService.getAlipayClient(aliPayConfig);
         AlipayFundAccountQueryModel model = new AlipayFundAccountQueryModel();
         model.setAccountType(QUERY_ACCOUNT_TYPE);
         model.setAlipayUserId(config.getAlipayUserId());
-        AlipayFundAccountQueryResponse response = AliPayApi.accountQueryToResponse(model, null);
+        AlipayFundAccountQueryRequest request = new AlipayFundAccountQueryRequest();
+        request.setBizModel(model);
+        AlipayFundAccountQueryResponse response = alipayClient.execute(request);
         System.out.println(response);
     }
 
@@ -36,8 +55,54 @@ public class AliPayTransferService {
      * 转账接口
      */
     @SneakyThrows
-    public void transfer() {
-        AlipayFundTransToaccountTransferModel model = new AlipayFundTransToaccountTransferModel();
-        AlipayFundTransToaccountTransferResponse response = AliPayApi.transferToResponse(model);
+    public void transfer(TransferOrder order, AliPayConfig aliPayConfig){
+        AlipayClient alipayClient = aliPayConfigService.getAlipayClient(aliPayConfig);
+
+        // 构造请求参数以调用接口
+        AlipayFundTransUniTransferRequest request = new AlipayFundTransUniTransferRequest();
+        AlipayFundTransUniTransferModel model = new AlipayFundTransUniTransferModel();
+
+        // 设置转账业务的标题
+        model.setOrderTitle(order.getTitle());
+        // 设置描述特定的业务场景
+        model.setBizScene("DIRECT_TRANSFER");
+        // 设置业务产品码
+        model.setProductCode("TRANS_ACCOUNT_NO_PWD");
+        // 设置转账业务请求的扩展参数
+        model.setBusinessParams("{payer_show_name_use_alias: true}");
+        // 设置业务备注
+        model.setRemark(order.getReason());
+        // 设置商家侧唯一订单号
+        model.setOutBizNo(order.getTransferNo());
+        // 设置订单总金额
+        model.setTransAmount(PayUtil.conversionAmount(order.getAmount()).toString());
+        // 设置收款方信息
+        Participant payeeInfo = new Participant();
+        // 收款人账号
+        payeeInfo.setIdentity(order.getPayeeAccount());
+        // 收款人姓名
+        payeeInfo.setName(order.getPayeeName());
+        // 收款人类型
+        String identityType = TransferPayeeTypeEnum.findByCode(order.getPayeeType())
+                .getOutCode();
+        payeeInfo.setIdentityType(identityType);
+        model.setPayeeInfo(payeeInfo);
+        model.setRemark(order.getReason());
+        request.setBizModel(model);
+        AlipayFundTransUniTransferResponse response = alipayClient.execute(request);
+        if (!Objects.equals(AliPayCode.SUCCESS, response.getCode())) {
+            log.error("网关返回退款失败: {}", response.getSubMsg());
+            throw new TradeFailException(response.getSubMsg());
+        }
+        TransferLocal transferInfo = PaymentContextLocal.get().getTransferInfo();
+        // 通道转账号
+        transferInfo.setOutTransferNo(response.getOrderId());
+        // 有完成时间代表处理完成
+        if (Objects.equals(response.getStatus(), AliPayCode.TRANSFER_SUCCESS)){
+            // 时间
+            String transDate = response.getTransDate();
+            LocalDateTime time = LocalDateTimeUtil.parse(transDate, DatePattern.NORM_DATETIME_PATTERN);
+            transferInfo.setFinishTime(time).setStatus(TransferStatusEnum.SUCCESS);
+        }
     }
 }
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/union/entity/UnionPayConfig.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/union/entity/UnionPayConfig.java
index 02f0137d2a9b5bd4dcbe58e23de73e1e3fe51ff3..fc53b23f787785ac35fb8a0944e3003b84797fc0 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/union/entity/UnionPayConfig.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/union/entity/UnionPayConfig.java
@@ -44,7 +44,7 @@ public class UnionPayConfig extends MpBaseEntity implements EntityBaseFunction<U
 
     /** 支付限额 */
     @DbColumn(comment = "支付限额")
-    private Integer singleLimit;
+    private Integer limitAmount;
 
     /**
      * 商户收款账号
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/union/service/UnionPayCallbackService.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/union/service/UnionPayCallbackService.java
index f362640650ec5a16e0bea72643950dd9e4fe92d2..b07da058d680b22bbea989aaf7e963593cace213 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/union/service/UnionPayCallbackService.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/union/service/UnionPayCallbackService.java
@@ -1,9 +1,9 @@
 package cn.daxpay.single.service.core.channel.union.service;
 
 import cn.bootx.platform.common.core.util.LocalDateTimeUtil;
-import cn.daxpay.single.code.PayChannelEnum;
-import cn.daxpay.single.code.PayStatusEnum;
-import cn.daxpay.single.code.RefundStatusEnum;
+import cn.daxpay.single.core.code.PayChannelEnum;
+import cn.daxpay.single.core.code.PayStatusEnum;
+import cn.daxpay.single.core.code.RefundStatusEnum;
 import cn.daxpay.single.service.code.PayCallbackStatusEnum;
 import cn.daxpay.single.service.code.PayRepairSourceEnum;
 import cn.daxpay.single.service.code.PaymentTypeEnum;
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/union/service/UnionPayCloseService.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/union/service/UnionPayCloseService.java
index c48fc49f16b679a1f9c9f0e82102941ab40e2216..d4f26ef1e910ce441c33ef99d138ae86c0263353 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/union/service/UnionPayCloseService.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/union/service/UnionPayCloseService.java
@@ -1,6 +1,6 @@
 package cn.daxpay.single.service.core.channel.union.service;
 
-import cn.daxpay.single.exception.pay.PayFailureException;
+import cn.daxpay.single.core.exception.UnsupportedAbilityException;
 import cn.daxpay.single.service.core.order.pay.entity.PayOrder;
 import cn.daxpay.single.service.sdk.union.api.UnionPayKit;
 import lombok.RequiredArgsConstructor;
@@ -21,7 +21,7 @@ public class UnionPayCloseService {
      * 关闭订单
      */
     public void close(PayOrder payOrder, UnionPayKit unionPayKit) {
-        throw new PayFailureException("云闪付没有关闭订单功能!");
+        throw new UnsupportedAbilityException("云闪付没有关闭订单功能!");
 //        this.verifyErrorMsg(result);
     }
 }
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/union/service/UnionPayConfigService.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/union/service/UnionPayConfigService.java
index 93e2508dd172f68862aab6a808f5e63b3613039b..dff26d22e69d864c8d51ae72f0f63d19115bdbfc 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/union/service/UnionPayConfigService.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/union/service/UnionPayConfigService.java
@@ -2,12 +2,11 @@ package cn.daxpay.single.service.core.channel.union.service;
 
 import cn.bootx.platform.common.core.exception.DataNotExistException;
 import cn.bootx.platform.common.core.rest.dto.LabelValue;
-import cn.daxpay.single.code.PayChannelEnum;
-import cn.daxpay.single.exception.pay.PayFailureException;
+import cn.daxpay.single.core.exception.ChannelNotEnableException;
 import cn.daxpay.single.service.code.UnionPayWay;
 import cn.daxpay.single.service.core.channel.union.dao.UnionPayConfigManager;
 import cn.daxpay.single.service.core.channel.union.entity.UnionPayConfig;
-import cn.daxpay.single.service.core.system.config.service.PayChannelConfigService;
+import cn.daxpay.single.service.core.system.config.service.PlatformConfigService;
 import cn.daxpay.single.service.param.channel.union.UnionPayConfigParam;
 import cn.daxpay.single.service.sdk.union.api.UnionPayKit;
 import cn.hutool.core.bean.BeanUtil;
@@ -24,7 +23,6 @@ import org.springframework.transaction.annotation.Transactional;
 
 import java.io.ByteArrayInputStream;
 import java.util.List;
-import java.util.Objects;
 import java.util.stream.Collectors;
 
 /**
@@ -39,7 +37,7 @@ public class UnionPayConfigService {
     /** 默认云闪付配置的主键ID */
     private final static Long ID = 0L;
     private final UnionPayConfigManager unionPayConfigManager;
-    private final PayChannelConfigService payChannelConfigService;
+    private final PlatformConfigService platformConfigService;
 
     /**
      * 修改
@@ -47,11 +45,6 @@ public class UnionPayConfigService {
     @Transactional(rollbackFor = Exception.class)
     public void update(UnionPayConfigParam param) {
         UnionPayConfig unionPayConfig = unionPayConfigManager.findById(ID).orElseThrow(() -> new DataNotExistException("支付宝配置不存在"));
-        // 启用或停用
-        if (!Objects.equals(param.getEnable(), unionPayConfig.getEnable())){
-            payChannelConfigService.setEnable(PayChannelEnum.UNION_PAY.getCode(), param.getEnable());
-        }
-
         BeanUtil.copyProperties(param, unionPayConfig, CopyOptions.create().ignoreNullValue());
         unionPayConfigManager.updateById(unionPayConfig);
     }
@@ -79,11 +72,25 @@ public class UnionPayConfigService {
     public UnionPayConfig getAndCheckConfig() {
         UnionPayConfig unionPayConfig = this.getConfig();
         if (!unionPayConfig.getEnable()){
-            throw new PayFailureException("云闪付支付未启用");
+            throw new ChannelNotEnableException("云闪付支付未启用");
         }
         return unionPayConfig;
     }
 
+    /**
+     * 生成通知地址
+     */
+    public String generateNotifyUrl(){
+        return platformConfigService.getConfig().getWebsiteUrl() + "/unipay/callback/union";
+    }
+
+    /**
+     * 生成同步跳转地址
+     */
+    public String generateReturnUrl(){
+        return platformConfigService.getConfig().getWebsiteUrl() + "/unipay/return/union";
+    }
+
 
     /**
      * 生成云闪付支付服务
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/union/service/UnionPayReconcileService.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/union/service/UnionPayReconcileService.java
index 169c56af3cba6818a9586b824780302f63030f80..beefe16ce774554cf52a3585b1db5c88d0a3cbf9 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/union/service/UnionPayReconcileService.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/union/service/UnionPayReconcileService.java
@@ -1,9 +1,8 @@
 package cn.daxpay.single.service.core.channel.union.service;
 
 import cn.bootx.platform.common.core.util.LocalDateTimeUtil;
-import cn.daxpay.single.code.PayChannelEnum;
-import cn.daxpay.single.code.ReconcileTradeEnum;
-import cn.daxpay.single.exception.pay.PayFailureException;
+import cn.daxpay.single.core.code.ReconcileTradeEnum;
+import cn.daxpay.single.core.exception.OperationFailException;
 import cn.daxpay.single.service.code.ReconcileFileTypeEnum;
 import cn.daxpay.single.service.code.UnionPayCode;
 import cn.daxpay.single.service.code.UnionReconcileFieldEnum;
@@ -11,9 +10,9 @@ import cn.daxpay.single.service.common.local.PaymentContextLocal;
 import cn.daxpay.single.service.core.channel.union.dao.UnionReconcileBillDetailManager;
 import cn.daxpay.single.service.core.channel.union.entity.UnionReconcileBillDetail;
 import cn.daxpay.single.service.core.order.reconcile.dao.ReconcileFileManager;
-import cn.daxpay.single.service.core.order.reconcile.entity.ReconcileOutTrade;
 import cn.daxpay.single.service.core.order.reconcile.entity.ReconcileFile;
 import cn.daxpay.single.service.core.order.reconcile.entity.ReconcileOrder;
+import cn.daxpay.single.service.core.order.reconcile.entity.ReconcileOutTrade;
 import cn.daxpay.single.service.sdk.union.api.UnionPayKit;
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.codec.Base64;
@@ -60,11 +59,16 @@ public class UnionPayReconcileService {
     public void downAndSave(ReconcileOrder reconcileOrder, Date date, UnionPayKit unionPayKit){
         // 下载对账单
         Map<String, Object> map = unionPayKit.downloadBill(date, RECONCILE_BILL_TYPE);
-        String fileContent = map.get(FILE_CONTENT).toString();
+        Object o = map.get(FILE_CONTENT);
+        if (o == null) {
+            log.warn("云闪付获取对账文件失败");
+            throw new OperationFailException("云闪付获取对账文件失败");
+        }
+        String fileContent = o.toString();
         // 判断是否成功
         if (!SDKConstants.OK_RESP_CODE.equals(map.get(SDKConstants.param_respCode))) {
             log.warn("云闪付获取对账文件失败");
-            throw new PayFailureException("云闪付获取对账文件失败");
+            throw new OperationFailException("云闪付获取对账文件失败");
         }
 
         try {
@@ -210,10 +214,9 @@ public class UnionPayReconcileService {
      * 保存下载的原始对账文件
      */
     private void saveOriginalFile(ReconcileOrder reconcileOrder, byte[] bytes) {
-        PayChannelEnum channelEnum = PayChannelEnum.findByCode(reconcileOrder.getChannel());
         String date = LocalDateTimeUtil.format(reconcileOrder.getDate(), DatePattern.PURE_DATE_PATTERN);
         // 将原始文件进行保存 通道-日期
-        String fileName = StrUtil.format("交易对账单-{}-{}.txt", channelEnum.getName(),date);
+        String fileName = StrUtil.format("交易对账单-云闪付-{}.txt",date);
         UploadPretreatment uploadPretreatment = fileStorageService.of(bytes);
         if (StrUtil.isNotBlank(fileName)) {
             uploadPretreatment.setOriginalFilename(fileName);
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/union/service/UnionPayRefundService.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/union/service/UnionPayRefundService.java
index 31a56541ed66e100757211678a3b36ff66339306..adae9cd4806a2313ea79bddcf14175773f4eea2f 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/union/service/UnionPayRefundService.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/union/service/UnionPayRefundService.java
@@ -1,13 +1,13 @@
 package cn.daxpay.single.service.core.channel.union.service;
 
-import cn.daxpay.single.code.RefundStatusEnum;
+import cn.daxpay.single.core.code.RefundStatusEnum;
 import cn.daxpay.single.service.code.UnionPayCode;
 import cn.daxpay.single.service.common.context.RefundLocal;
 import cn.daxpay.single.service.common.local.PaymentContextLocal;
 import cn.daxpay.single.service.core.order.refund.entity.RefundOrder;
 import cn.daxpay.single.service.sdk.union.api.UnionPayKit;
 import cn.daxpay.single.service.sdk.union.bean.UnionRefundOrder;
-import cn.daxpay.single.util.PayUtil;
+import cn.daxpay.single.core.util.PayUtil;
 import com.egzosn.pay.union.bean.UnionRefundResult;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/union/service/UnionPayService.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/union/service/UnionPayService.java
index a9ac01023fa4452165eccfba492ae42dc74daaa8..455fabe2e7ae04a08f20a18510999daf32ca78a8 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/union/service/UnionPayService.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/union/service/UnionPayService.java
@@ -1,9 +1,11 @@
 package cn.daxpay.single.service.core.channel.union.service;
 
-import cn.daxpay.single.code.PayMethodEnum;
-import cn.daxpay.single.exception.pay.PayFailureException;
-import cn.daxpay.single.param.channel.UnionPayParam;
-import cn.daxpay.single.param.payment.pay.PayParam;
+import cn.bootx.platform.common.core.exception.ValidationFailedException;
+import cn.daxpay.single.core.code.PayMethodEnum;
+import cn.daxpay.single.core.exception.*;
+import cn.daxpay.single.core.param.channel.UnionPayParam;
+import cn.daxpay.single.core.param.payment.pay.PayParam;
+import cn.daxpay.single.core.util.PayUtil;
 import cn.daxpay.single.service.code.UnionPayCode;
 import cn.daxpay.single.service.code.UnionPayWay;
 import cn.daxpay.single.service.common.context.PayLocal;
@@ -12,7 +14,6 @@ import cn.daxpay.single.service.core.channel.union.entity.UnionPayConfig;
 import cn.daxpay.single.service.core.order.pay.entity.PayOrder;
 import cn.daxpay.single.service.sdk.union.api.UnionPayKit;
 import cn.daxpay.single.service.sdk.union.bean.UnionPayOrder;
-import cn.daxpay.single.util.PayUtil;
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.map.MapUtil;
@@ -45,21 +46,21 @@ public class UnionPayService {
     public void validation(PayParam payParam, UnionPayConfig unionPayConfig) {
 
         if (CollUtil.isEmpty(unionPayConfig.getPayWays())){
-            throw new PayFailureException("云闪付未配置可用的支付方式");
+            throw new MethodNotEnableException("云闪付未配置可用的支付方式");
         }
         // 发起的支付类型是否在支持的范围内
         PayMethodEnum payMethodEnum = Optional.ofNullable(UnionPayWay.findByCode(payParam.getMethod()))
-                .orElseThrow(() -> new PayFailureException("非法的云闪付支付类型"));
+                .orElseThrow(() -> new MethodNotExistException("非法的云闪付支付类型"));
         if (!unionPayConfig.getPayWays().contains(payMethodEnum.getCode())) {
-            throw new PayFailureException("该云闪付支付方式不可用");
+            throw new MethodNotEnableException("该云闪付支付方式不可用");
         }
         // 支付金额是否超限
-        if (payParam.getAmount() > unionPayConfig.getSingleLimit()) {
-            throw new PayFailureException("云闪付支付金额超限");
+        if (payParam.getAmount() > unionPayConfig.getLimitAmount()) {
+            throw new AmountExceedLimitException("云闪付支付金额超限");
         }
         // 分账
         if (Objects.equals(payParam.getAllocation(),true)) {
-            throw new PayFailureException("云闪付不支持分账");
+            throw new UnsupportedAbilityException("云闪付不支持分账");
         }
     }
 
@@ -151,7 +152,7 @@ public class UnionPayService {
         if (!(Objects.equals(resultCode, UnionPayCode.RESP_SUCCESS))) {
             log.warn("云闪付支付失败:{}", result);
             String errMsg = MapUtil.getStr(result, UnionPayCode.RESP_MSG);
-            throw new PayFailureException(errMsg);
+            throw new TradeFailException(errMsg);
         }
 
         return MapUtil.getStr(result, UnionPayCode.PAY_APP_TN);
@@ -187,7 +188,7 @@ public class UnionPayService {
 
         if (!unionPayKit.verify(new NoticeParams(result))) {
             log.warn("云闪付支付验签失败:{}", result);
-            throw new PayFailureException("云闪付支付验签失败");
+            throw new ValidationFailedException("云闪付支付验签失败");
         }
 
         String resultCode = MapUtil.getStr(result, UnionPayCode.RESP_CODE);
@@ -196,7 +197,7 @@ public class UnionPayService {
         if (!(Objects.equals(resultCode, UnionPayCode.RESP_SUCCESS))) {
             log.warn("云闪付支付失败:{}", result);
             String errMsg = MapUtil.getStr(result, UnionPayCode.RESP_MSG);
-            throw new PayFailureException(errMsg);
+            throw new TradeFailException(errMsg);
         }
     }
 }
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/union/service/UnionPaySyncService.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/union/service/UnionPaySyncService.java
index 961dae86c036bb3e0324576f2f1da6c70d065f23..52ea62707617999006c030a4af45cbcfebbb09f6 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/union/service/UnionPaySyncService.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/union/service/UnionPaySyncService.java
@@ -1,8 +1,8 @@
 package cn.daxpay.single.service.core.channel.union.service;
 
 import cn.bootx.platform.common.core.util.LocalDateTimeUtil;
-import cn.daxpay.single.code.PaySyncStatusEnum;
-import cn.daxpay.single.code.RefundSyncStatusEnum;
+import cn.daxpay.single.core.code.PaySyncStatusEnum;
+import cn.daxpay.single.core.code.RefundSyncStatusEnum;
 import cn.daxpay.single.service.code.UnionPayCode;
 import cn.daxpay.single.service.core.order.pay.entity.PayOrder;
 import cn.daxpay.single.service.core.order.refund.entity.RefundOrder;
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/wallet/entity/WalletConfig.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/wallet/entity/WalletConfig.java
index fdcb45283140600cfc66a2223e6f74e4c0854158..9657a94caaafdca891fb25efd02d52f3e05e8ec2 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/wallet/entity/WalletConfig.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/wallet/entity/WalletConfig.java
@@ -35,7 +35,7 @@ public class WalletConfig extends MpBaseEntity implements EntityBaseFunction<Wal
 
     /** 单次支付最多多少金额 */
     @DbColumn(comment = "单次支付最多多少金额 ")
-    private Integer singleLimit;
+    private Integer limitAmount;
 
     /** 可用支付方式 */
     @DbColumn(comment = "可用支付方式")
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/wallet/service/WalletConfigService.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/wallet/service/WalletConfigService.java
index 33973de3d5847852a94b4ce5fd2e3e4006aadbc5..825962664a0e1a749448a00992a793eede9d54e5 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/wallet/service/WalletConfigService.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/wallet/service/WalletConfigService.java
@@ -2,7 +2,6 @@ package cn.daxpay.single.service.core.channel.wallet.service;
 
 import cn.bootx.platform.common.core.exception.DataNotExistException;
 import cn.bootx.platform.common.core.rest.dto.LabelValue;
-import cn.daxpay.single.code.PayChannelEnum;
 import cn.daxpay.single.service.code.WalletPayWay;
 import cn.daxpay.single.service.core.channel.wallet.dao.WalletConfigManager;
 import cn.daxpay.single.service.core.channel.wallet.entity.WalletConfig;
@@ -15,7 +14,6 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.util.List;
-import java.util.Objects;
 import java.util.stream.Collectors;
 
 /**
@@ -56,10 +54,6 @@ public class WalletConfigService {
     @Transactional(rollbackFor = Exception.class)
     public void update(WalletConfigParam param){
         WalletConfig walletConfig = walletConfigManager.findById(param.getId()).orElseThrow(DataNotExistException::new);
-        // 启用或停用
-        if (!Objects.equals(param.getEnable(), walletConfig.getEnable())){
-            payChannelConfigService.setEnable(PayChannelEnum.WALLET.getCode(), param.getEnable());
-        }
         BeanUtil.copyProperties(param,walletConfig);
         walletConfigManager.updateById(walletConfig);
     }
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/wallet/service/WalletQueryService.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/wallet/service/WalletQueryService.java
index 5d4913b59a069a3c1280cccf162aad0b37c95fe4..85d6231779b6abd82c7b0462db71661a1efcc83e 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/wallet/service/WalletQueryService.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/wallet/service/WalletQueryService.java
@@ -4,8 +4,8 @@ import cn.bootx.platform.common.core.exception.DataNotExistException;
 import cn.bootx.platform.common.core.rest.PageResult;
 import cn.bootx.platform.common.core.rest.param.PageParam;
 import cn.bootx.platform.common.mybatisplus.util.MpUtil;
-import cn.daxpay.single.exception.waller.WalletNotExistsException;
-import cn.daxpay.single.param.channel.WalletPayParam;
+import cn.daxpay.single.core.exception.PayFailureException;
+import cn.daxpay.single.core.param.channel.WalletPayParam;
 import cn.daxpay.single.service.core.channel.wallet.dao.WalletManager;
 import cn.daxpay.single.service.core.channel.wallet.entity.Wallet;
 import cn.daxpay.single.service.dto.channel.wallet.WalletDto;
@@ -65,10 +65,10 @@ public class WalletQueryService {
 
         Wallet wallet = null;
         if (Objects.nonNull(param.getWalletId())){
-            wallet =  walletManager.findById(param.getWalletId()).orElseThrow(WalletNotExistsException::new);
+            wallet =  walletManager.findById(param.getWalletId()).orElseThrow(PayFailureException::new);
         }
         if (Objects.isNull(wallet)){
-            wallet = walletManager.findByUser(param.getUserId()).orElseThrow(WalletNotExistsException::new);
+            wallet = walletManager.findByUser(param.getUserId()).orElseThrow(PayFailureException::new);
         }
         return wallet;
     }
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/wechat/entity/WeChatPayConfig.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/wechat/entity/WeChatPayConfig.java
index b013f521460031ee0155047b48368bc16a386cd2..1e9fc9a323f378f229da1034f2e0b752bb4cfada 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/wechat/entity/WeChatPayConfig.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/wechat/entity/WeChatPayConfig.java
@@ -4,14 +4,15 @@ import cn.bootx.platform.common.core.annotation.BigField;
 import cn.bootx.platform.common.core.function.EntityBaseFunction;
 import cn.bootx.platform.common.mybatisplus.base.MpBaseEntity;
 import cn.bootx.platform.common.mybatisplus.handler.StringListTypeHandler;
-import cn.daxpay.single.service.code.WeChatPayCode;
-import cn.daxpay.single.service.common.typehandler.DecryptTypeHandler;
-import cn.daxpay.single.service.core.channel.wechat.convert.WeChatConvert;
-import cn.daxpay.single.service.dto.channel.wechat.WeChatPayConfigDto;
 import cn.bootx.table.modify.annotation.DbColumn;
 import cn.bootx.table.modify.annotation.DbTable;
 import cn.bootx.table.modify.mysql.annotation.DbMySqlFieldType;
 import cn.bootx.table.modify.mysql.constants.MySqlFieldTypeEnum;
+import cn.daxpay.single.service.code.WeChatPayCode;
+import cn.daxpay.single.service.common.typehandler.DecryptTypeHandler;
+import cn.daxpay.single.service.core.channel.wechat.convert.WeChatConvert;
+import cn.daxpay.single.service.dto.channel.wechat.WeChatPayConfigDto;
+import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.annotation.FieldStrategy;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
@@ -36,11 +37,11 @@ import java.util.Objects;
 public class WeChatPayConfig extends MpBaseEntity implements EntityBaseFunction<WeChatPayConfigDto> {
 
     /** 微信商户Id */
-    @DbColumn(comment = "微信商户号")
+    @DbColumn(comment = "微信商户号", length = 50)
     private String wxMchId;
 
     /** 微信应用appId */
-    @DbColumn(comment = "微信应用appId")
+    @DbColumn(comment = "微信应用appId", length = 50)
     private String wxAppId;
 
     /** 是否启用 */
@@ -52,8 +53,8 @@ public class WeChatPayConfig extends MpBaseEntity implements EntityBaseFunction<
     private Boolean allocation;
 
     /** 支付限额 */
-    @DbColumn(comment = "支付限额")
-    private Integer singleLimit;
+    @DbColumn(comment = "支付限额", length = 8)
+    private Integer limitAmount;
 
     /**
      * 服务器异步通知页面路径, 需要填写本网关服务的地址, 不可以直接填写业务系统的地址
@@ -73,6 +74,10 @@ public class WeChatPayConfig extends MpBaseEntity implements EntityBaseFunction<
     @DbColumn(comment = "同步通知路径")
     private String returnUrl;
 
+    /** 授权回调地址 */
+    @DbColumn(comment = "授权回调地址", length = 200)
+    private String redirectUrl;
+
     /**
      * 接口版本, 使用v2还是v3接口
      * @see WeChatPayCode#API_V2
@@ -118,6 +123,11 @@ public class WeChatPayConfig extends MpBaseEntity implements EntityBaseFunction<
     @DbColumn(comment = "备注")
     private String remark;
 
+    @Override
+    public WeChatPayConfigDto toDto() {
+        return WeChatConvert.CONVERT.convert(this);
+    }
+
     public Boolean getAllocation() {
         return Objects.equals(allocation,true);
     }
@@ -126,9 +136,7 @@ public class WeChatPayConfig extends MpBaseEntity implements EntityBaseFunction<
         return Objects.equals(enable,true);
     }
 
-
-    @Override
-    public WeChatPayConfigDto toDto() {
-        return WeChatConvert.CONVERT.convert(this);
+    public String getRedirectUrl() {
+        return StrUtil.removeSuffix(redirectUrl, "/");
     }
 }
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/wechat/service/WeChatPayAllocationReceiverService.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/wechat/service/WeChatPayAllocationReceiverService.java
index 9f26cdc484c03f212e4af439104b23024353748f..3aae9a26c27faa6fe9a6e738c8ee37fb847d959a 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/wechat/service/WeChatPayAllocationReceiverService.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/wechat/service/WeChatPayAllocationReceiverService.java
@@ -1,7 +1,7 @@
 package cn.daxpay.single.service.core.channel.wechat.service;
 
-import cn.daxpay.single.code.AllocReceiverTypeEnum;
-import cn.daxpay.single.exception.pay.PayFailureException;
+import cn.daxpay.single.core.code.AllocReceiverTypeEnum;
+import cn.daxpay.single.core.exception.OperationFailException;
 import cn.daxpay.single.service.code.WeChatPayCode;
 import cn.daxpay.single.service.core.channel.wechat.entity.WeChatPayConfig;
 import cn.daxpay.single.service.core.payment.allocation.entity.AllocationReceiver;
@@ -20,8 +20,8 @@ import java.util.Arrays;
 import java.util.List;
 import java.util.Map;
 
-import static cn.daxpay.single.code.AllocReceiverTypeEnum.WX_MERCHANT;
-import static cn.daxpay.single.code.AllocReceiverTypeEnum.WX_PERSONAL;
+import static cn.daxpay.single.core.code.AllocReceiverTypeEnum.WX_MERCHANT;
+import static cn.daxpay.single.core.code.AllocReceiverTypeEnum.WX_PERSONAL;
 
 /**
  *
@@ -109,7 +109,7 @@ public class WeChatPayAllocationReceiverService {
                 errorMsg = result.get(WeChatPayCode.RETURN_MSG);
             }
             log.error("分账绑定或解绑失败 {}", errorMsg);
-            throw new PayFailureException(errorMsg);
+            throw new OperationFailException("分账绑定或解绑失败");
         }
     }
 }
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/wechat/service/WeChatPayAllocationService.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/wechat/service/WeChatPayAllocationService.java
index ab0e47b6ba2191b7fe0106a687878f74b894c3c7..ae1cd7e059b424627a8cad85b5228e1c6e629298 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/wechat/service/WeChatPayAllocationService.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/wechat/service/WeChatPayAllocationService.java
@@ -2,13 +2,13 @@ package cn.daxpay.single.service.core.channel.wechat.service;
 
 import cn.bootx.platform.common.core.function.CollectorsFunction;
 import cn.bootx.platform.common.mybatisplus.base.MpIdEntity;
-import cn.daxpay.single.code.AllocDetailResultEnum;
-import cn.daxpay.single.code.AllocReceiverTypeEnum;
-import cn.daxpay.single.exception.pay.PayFailureException;
+import cn.daxpay.single.core.code.AllocDetailResultEnum;
+import cn.daxpay.single.core.code.AllocReceiverTypeEnum;
+import cn.daxpay.single.core.exception.OperationFailException;
 import cn.daxpay.single.service.code.WeChatPayCode;
 import cn.daxpay.single.service.core.channel.wechat.entity.WeChatPayConfig;
-import cn.daxpay.single.service.core.order.allocation.entity.AllocationOrder;
-import cn.daxpay.single.service.core.order.allocation.entity.AllocationOrderDetail;
+import cn.daxpay.single.service.core.order.allocation.entity.AllocOrder;
+import cn.daxpay.single.service.core.order.allocation.entity.AllocOrderDetail;
 import cn.daxpay.single.service.core.payment.sync.result.AllocRemoteSyncResult;
 import cn.daxpay.single.service.dto.channel.wechat.WeChatPayAllocationReceiver;
 import cn.hutool.core.codec.Base64;
@@ -51,8 +51,8 @@ public class WeChatPayAllocationService {
      * 发起分账
      */
     @SneakyThrows
-    public void allocation(AllocationOrder allocationOrder, List<AllocationOrderDetail> orderDetails, WeChatPayConfig config){
-        String description = allocationOrder.getDescription();
+    public void allocation(AllocOrder allocOrder, List<AllocOrderDetail> orderDetails, WeChatPayConfig config){
+        String description = allocOrder.getDescription();
         if (StrUtil.isBlank(description)){
             description = "分账";
         }
@@ -74,8 +74,8 @@ public class WeChatPayAllocationService {
                 .mch_id(config.getWxMchId())
                 .appid(config.getWxAppId())
                 .nonce_str(WxPayKit.generateStr())
-                .transaction_id(allocationOrder.getOutOrderNo())
-                .out_order_no(allocationOrder.getAllocationNo())
+                .transaction_id(allocOrder.getOutOrderNo())
+                .out_order_no(allocOrder.getAllocNo())
                 .receivers(JSON.toJSONString(list))
                 .build()
                 .createSign(config.getApiKeyV2(), SignType.HMACSHA256);
@@ -90,14 +90,14 @@ public class WeChatPayAllocationService {
     /**
      * 完成分账
      */
-    public void finish(AllocationOrder allocationOrder, WeChatPayConfig config){
+    public void finish(AllocOrder allocOrder, WeChatPayConfig config){
         Map<String, String> params = ProfitSharingModel.builder()
                 .mch_id(config.getWxMchId())
                 .appid(config.getWxAppId())
                 .nonce_str(WxPayKit.generateStr())
-                .transaction_id(allocationOrder.getOutOrderNo())
+                .transaction_id(allocOrder.getOutOrderNo())
                 // 分账要使用单独的的流水号, 不能与分账号相同
-                .out_order_no(allocationOrder.getAllocationNo()+'F')
+                .out_order_no(allocOrder.getAllocNo()+'F')
                 .description("分账已完成")
                 .build()
                 .createSign(config.getApiKeyV2(), SignType.HMACSHA256);
@@ -112,13 +112,13 @@ public class WeChatPayAllocationService {
     /**
      * 同步分账状态
      */
-    public AllocRemoteSyncResult sync(AllocationOrder allocationOrder, List<AllocationOrderDetail> allocationOrderDetails, WeChatPayConfig config){
+    public AllocRemoteSyncResult sync(AllocOrder allocOrder, List<AllocOrderDetail> allocOrderDetails, WeChatPayConfig config){
         // 不要传输AppId参数, 否则会失败
         Map<String, String> params = ProfitSharingModel.builder()
                 .mch_id(config.getWxMchId())
                 .nonce_str(WxPayKit.generateStr())
-                .transaction_id(allocationOrder.getOutOrderNo())
-                .out_order_no(allocationOrder.getAllocationNo())
+                .transaction_id(allocOrder.getOutOrderNo())
+                .out_order_no(allocOrder.getAllocNo())
                 .build()
                 .createSign(config.getApiKeyV2(), SignType.HMACSHA256);
         String xmlResult = WxPayApi.profitSharingQuery(params);
@@ -126,11 +126,11 @@ public class WeChatPayAllocationService {
         this.verifyErrorMsg(result);
         String json = result.get(WeChatPayCode.ALLOC_RECEIVERS);
         List<WeChatPayAllocationReceiver> receivers = JSONUtil.toBean(json, new TypeReference<List<WeChatPayAllocationReceiver>>() {}, false);
-        Map<String, AllocationOrderDetail> detailMap = allocationOrderDetails.stream()
-                .collect(Collectors.toMap(AllocationOrderDetail::getReceiverAccount, Function.identity(), CollectorsFunction::retainLatest));
+        Map<String, AllocOrderDetail> detailMap = allocOrderDetails.stream()
+                .collect(Collectors.toMap(AllocOrderDetail::getReceiverAccount, Function.identity(), CollectorsFunction::retainLatest));
         // 根据明细更新订单明细内容
         for (WeChatPayAllocationReceiver receiver : receivers) {
-            AllocationOrderDetail detail = detailMap.get(receiver.getAccount());
+            AllocOrderDetail detail = detailMap.get(receiver.getAccount());
             if (Objects.nonNull(detail)){
                 detail.setResult(this.getDetailResultEnum(receiver.getResult()).getCode());
                 detail.setErrorMsg(receiver.getFailReason());
@@ -157,7 +157,7 @@ public class WeChatPayAllocationService {
                 errorMsg = result.get(WeChatPayCode.RETURN_MSG);
             }
             log.error("分账操作失败 {}", errorMsg);
-            throw new PayFailureException(errorMsg);
+            throw new OperationFailException("分账操作失败");
         }
     }
 
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/wechat/service/WeChatPayCallbackService.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/wechat/service/WeChatPayCallbackService.java
index c75d17c110ce9ea600a20e72c353b8d8cd1cca0b..35ed433b1e51f6ac6e2b94b96e767ff331b45ace 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/wechat/service/WeChatPayCallbackService.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/wechat/service/WeChatPayCallbackService.java
@@ -1,9 +1,9 @@
 package cn.daxpay.single.service.core.channel.wechat.service;
 
 import cn.bootx.platform.common.core.util.LocalDateTimeUtil;
-import cn.daxpay.single.code.PayChannelEnum;
-import cn.daxpay.single.code.PayStatusEnum;
-import cn.daxpay.single.code.RefundStatusEnum;
+import cn.daxpay.single.core.code.PayChannelEnum;
+import cn.daxpay.single.core.code.PayStatusEnum;
+import cn.daxpay.single.core.code.RefundStatusEnum;
 import cn.daxpay.single.service.code.PayCallbackStatusEnum;
 import cn.daxpay.single.service.code.PayRepairSourceEnum;
 import cn.daxpay.single.service.code.PaymentTypeEnum;
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/wechat/service/WeChatPayCloseService.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/wechat/service/WeChatPayCloseService.java
index b14142df73cc6ef91ea37aebec7fbc89b57b3a16..26b9a5fed3f20a08a30dacb4410dbabd582b09ae 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/wechat/service/WeChatPayCloseService.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/wechat/service/WeChatPayCloseService.java
@@ -1,10 +1,12 @@
 package cn.daxpay.single.service.core.channel.wechat.service;
 
-import cn.bootx.platform.common.spring.exception.RetryableException;
-import cn.daxpay.single.exception.pay.PayFailureException;
+import cn.daxpay.single.core.exception.ConfigErrorException;
+import cn.daxpay.single.core.exception.OperationFailException;
+import cn.daxpay.single.core.exception.PayFailureException;
 import cn.daxpay.single.service.code.WeChatPayCode;
 import cn.daxpay.single.service.core.channel.wechat.entity.WeChatPayConfig;
 import cn.daxpay.single.service.core.order.pay.entity.PayOrder;
+import cn.hutool.core.codec.Base64;
 import cn.hutool.core.util.StrUtil;
 import com.ijpay.core.enums.SignType;
 import com.ijpay.core.kit.WxPayKit;
@@ -12,9 +14,9 @@ import com.ijpay.wxpay.WxPayApi;
 import com.ijpay.wxpay.model.CloseOrderModel;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
-import org.springframework.retry.annotation.Retryable;
 import org.springframework.stereotype.Service;
 
+import java.io.ByteArrayInputStream;
 import java.util.Map;
 
 /**
@@ -31,7 +33,6 @@ public class WeChatPayCloseService {
     /**
      * 关闭支付, 微信对已经关闭的支付单也可以重复关闭
      */
-    @Retryable(value = RetryableException.class)
     public void close(PayOrder payOrder, WeChatPayConfig weChatPayConfig) {
         // 只有部分需要调用微信网关进行关闭
         Map<String, String> params = CloseOrderModel.builder()
@@ -47,6 +48,32 @@ public class WeChatPayCloseService {
         this.verifyErrorMsg(result);
     }
 
+    /**
+     * 撤销接口
+     */
+    public void cancel(PayOrder payOrder, WeChatPayConfig weChatPayConfig){
+        // 只有部分需要调用微信网关进行关闭
+        Map<String, String> params = CloseOrderModel.builder()
+                .appid(weChatPayConfig.getWxAppId())
+                .mch_id(weChatPayConfig.getWxMchId())
+                .out_trade_no(payOrder.getOrderNo())
+                .nonce_str(WxPayKit.generateStr())
+                .build()
+                .createSign(weChatPayConfig.getApiKeyV2(), SignType.HMACSHA256);
+
+        // 获取证书文件
+        if (StrUtil.isBlank(weChatPayConfig.getP12())){
+            String errorMsg = "微信p.12证书未配置,无法进行退款";
+            throw new ConfigErrorException(errorMsg);
+        }
+        byte[] fileBytes = Base64.decode(weChatPayConfig.getP12());
+        ByteArrayInputStream inputStream = new ByteArrayInputStream(fileBytes);
+        // 证书密码为 微信商户号
+        String xmlResult = WxPayApi.orderReverse(params,inputStream,weChatPayConfig.getWxMchId());
+        Map<String, String> result = WxPayKit.xmlToMap(xmlResult);
+        this.verifyErrorMsg(result);
+    }
+
     /**
      * 验证错误信息
      */
@@ -59,7 +86,7 @@ public class WeChatPayCloseService {
                 errorMsg = result.get(WeChatPayCode.RETURN_MSG);
             }
             log.error("订单关闭失败 {}", errorMsg);
-            throw new PayFailureException(errorMsg);
+            throw new OperationFailException(errorMsg);
         }
     }
 
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/wechat/service/WeChatPayConfigService.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/wechat/service/WeChatPayConfigService.java
index f5a001f2765bf5cf2925d7da0292baa7ec6cae7b..83a9d2b8775caf8bc941cc55506b2f9aa7964827 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/wechat/service/WeChatPayConfigService.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/wechat/service/WeChatPayConfigService.java
@@ -2,12 +2,11 @@ package cn.daxpay.single.service.core.channel.wechat.service;
 
 import cn.bootx.platform.common.core.exception.DataNotExistException;
 import cn.bootx.platform.common.core.rest.dto.LabelValue;
-import cn.daxpay.single.code.PayChannelEnum;
+import cn.daxpay.single.core.exception.ConfigNotEnableException;
 import cn.daxpay.single.service.code.WeChatPayWay;
 import cn.daxpay.single.service.core.channel.wechat.dao.WeChatPayConfigManager;
 import cn.daxpay.single.service.core.channel.wechat.entity.WeChatPayConfig;
-import cn.daxpay.single.exception.pay.PayFailureException;
-import cn.daxpay.single.service.core.system.config.service.PayChannelConfigService;
+import cn.daxpay.single.service.core.system.config.service.PlatformConfigService;
 import cn.daxpay.single.service.param.channel.wechat.WeChatPayConfigParam;
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.bean.copier.CopyOptions;
@@ -17,7 +16,6 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.util.List;
-import java.util.Objects;
 import java.util.stream.Collectors;
 
 /**
@@ -33,18 +31,15 @@ public class WeChatPayConfigService {
     /** 默认微信支付配置的主键ID */
     private final static Long ID = 0L;
     private final WeChatPayConfigManager weChatPayConfigManager;
-    private final PayChannelConfigService payChannelConfigService;
+
+    private final PlatformConfigService platformConfigService;
 
     /**
      * 修改
      */
     @Transactional(rollbackFor = Exception.class)
     public void update(WeChatPayConfigParam param) {
-        WeChatPayConfig weChatPayConfig = weChatPayConfigManager.findById(ID).orElseThrow(() -> new PayFailureException("微信支付配置不存在"));
-        // 启用或停用
-        if (!Objects.equals(param.getEnable(), weChatPayConfig.getEnable())){
-            payChannelConfigService.setEnable(PayChannelEnum.WECHAT.getCode(), param.getEnable());
-        }
+        WeChatPayConfig weChatPayConfig = weChatPayConfigManager.findById(ID).orElseThrow(() -> new ConfigNotEnableException("微信支付配置不存在"));
         BeanUtil.copyProperties(param, weChatPayConfig, CopyOptions.create().ignoreNullValue());
         weChatPayConfigManager.updateById(weChatPayConfig);
     }
@@ -63,7 +58,7 @@ public class WeChatPayConfigService {
     public WeChatPayConfig getAndCheckConfig(){
         WeChatPayConfig weChatPayConfig = getConfig();
         if (!weChatPayConfig.getEnable()){
-            throw new PayFailureException("微信支付未启用");
+            throw new ConfigNotEnableException("微信支付未启用");
         }
         return weChatPayConfig;
     }
@@ -79,4 +74,18 @@ public class WeChatPayConfigService {
             .collect(Collectors.toList());
     }
 
+    /**
+     * 生成微信通知地址
+     */
+    public String generateNotifyUrl(){
+        return platformConfigService.getConfig().getWebsiteUrl() + "/unipay/callback/wechat";
+    }
+
+    /**
+     * 生成同步跳转地址
+     */
+    public String generateReturnUrl(){
+        return platformConfigService.getConfig().getWebsiteUrl() + "/unipay/return/wechat";
+    }
+
 }
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/wechat/service/WechatPayReconcileService.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/wechat/service/WeChatPayReconcileService.java
similarity index 94%
rename from daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/wechat/service/WechatPayReconcileService.java
rename to daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/wechat/service/WeChatPayReconcileService.java
index 074ce4dddf2ef2ea02b37f9c0d2a79f88bf5d8e4..eb70c66f5dd6275339947fead462d70eb176c727 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/wechat/service/WechatPayReconcileService.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/wechat/service/WeChatPayReconcileService.java
@@ -1,9 +1,9 @@
 package cn.daxpay.single.service.core.channel.wechat.service;
 
 import cn.bootx.platform.common.core.util.LocalDateTimeUtil;
-import cn.daxpay.single.code.PayChannelEnum;
-import cn.daxpay.single.code.ReconcileTradeEnum;
-import cn.daxpay.single.exception.pay.PayFailureException;
+import cn.daxpay.single.core.code.ReconcileTradeEnum;
+import cn.daxpay.single.core.exception.*;
+import cn.daxpay.single.core.util.PayUtil;
 import cn.daxpay.single.service.code.ReconcileFileTypeEnum;
 import cn.daxpay.single.service.code.WeChatPayCode;
 import cn.daxpay.single.service.common.local.PaymentContextLocal;
@@ -14,10 +14,9 @@ import cn.daxpay.single.service.core.channel.wechat.entity.WxReconcileBillDetail
 import cn.daxpay.single.service.core.channel.wechat.entity.WxReconcileBillTotal;
 import cn.daxpay.single.service.core.channel.wechat.entity.WxReconcileFundFlowDetail;
 import cn.daxpay.single.service.core.order.reconcile.dao.ReconcileFileManager;
-import cn.daxpay.single.service.core.order.reconcile.entity.ReconcileOutTrade;
 import cn.daxpay.single.service.core.order.reconcile.entity.ReconcileFile;
 import cn.daxpay.single.service.core.order.reconcile.entity.ReconcileOrder;
-import cn.daxpay.single.util.PayUtil;
+import cn.daxpay.single.service.core.order.reconcile.entity.ReconcileOutTrade;
 import cn.hutool.core.codec.Base64;
 import cn.hutool.core.date.DatePattern;
 import cn.hutool.core.io.IoUtil;
@@ -60,7 +59,7 @@ import static cn.daxpay.single.service.code.WeChatPayCode.ACCOUNT_TYPE_BASIC;
 @Slf4j
 @Service
 @RequiredArgsConstructor
-public class WechatPayReconcileService{
+public class WeChatPayReconcileService {
     private final WxReconcileBillTotalManger reconcileBillTotalManger;
     private final WxReconcileBillDetailManager reconcileBillDetailManager;
     private final FileStorageService fileStorageService;
@@ -282,16 +281,16 @@ public class WechatPayReconcileService{
         if (Objects.equals(errCode, "20002")){
             if (Objects.equals("No Bill Exist",resultMsg)){
                 log.warn("交易账单不存在, 请检查当前商户号在指定日期内是否有成功的交易");
-                throw new PayFailureException("交易账单不存在");
+                throw new OperationFailException("交易账单不存在, 请检查当前商户号在指定日期内是否有成功的交易");
             }
             if (Objects.equals("Bill Creating",resultMsg)){
                 log.warn("交易账单未生成, 请在上午10点以后再试");
-                throw new PayFailureException("交易账单未生成, 请在上午10点以后再试");
+                throw new OperationFailException("交易账单未生成, 请在上午10点以后再试");
             }
 
         } else {
             log.error("微信交易对账失败, 原因: {}, 错误码: {}, 错误信息: {}", resultMsg, errCode, res);
-            throw new PayFailureException("微信支付交易对账失败");
+            throw new OperationFailException("微信支付交易对账失败");
         }
     }
 
@@ -311,7 +310,7 @@ public class WechatPayReconcileService{
             errorMsg = result.get(WeChatPayCode.RETURN_MSG);
         }
         log.error("微信资金对账失败, 原因: {}, 错误码: {}, 错误信息: {}", errorMsg, returnCode, res);
-        throw new PayFailureException("微信资金对账失败: " + errorMsg);
+        throw new OperationFailException("微信资金对账失败: " + errorMsg);
     }
 
 
@@ -320,10 +319,9 @@ public class WechatPayReconcileService{
      */
     private void saveOriginalFile(ReconcileOrder reconcileOrder, String text) {
         // 微信接收结果转换为 byte[]
-        PayChannelEnum channelEnum = PayChannelEnum.findByCode(reconcileOrder.getChannel());
         String date = LocalDateTimeUtil.format(reconcileOrder.getDate(), DatePattern.PURE_DATE_PATTERN);
         // 将原始文件进行保存 通道-日期
-        String fileName = StrUtil.format("交易对账单-{}-{}.txt", channelEnum.getName(),date);
+        String fileName = StrUtil.format("交易对账单-微信-{}.txt",date);
         byte[] bytes = StrUtil.bytes(text, CharsetUtil.CHARSET_UTF_8);
         UploadPretreatment uploadPretreatment = fileStorageService.of(bytes);
         if (StrUtil.isNotBlank(fileName)) {
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/wechat/service/WechatPayRefundService.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/wechat/service/WeChatPayRefundService.java
similarity index 80%
rename from daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/wechat/service/WechatPayRefundService.java
rename to daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/wechat/service/WeChatPayRefundService.java
index d8dbd7f5af751ffce56c3d3ba1ecc45bffd780b0..c237f5692a35c9fadbc204c32748ebe7c6d6dc15 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/wechat/service/WechatPayRefundService.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/wechat/service/WeChatPayRefundService.java
@@ -1,7 +1,9 @@
 package cn.daxpay.single.service.core.channel.wechat.service;
 
-import cn.daxpay.single.code.RefundStatusEnum;
-import cn.daxpay.single.exception.pay.PayFailureException;
+import cn.daxpay.single.core.code.RefundStatusEnum;
+import cn.daxpay.single.core.exception.ConfigErrorException;
+import cn.daxpay.single.core.exception.TradeFailException;
+import cn.daxpay.single.service.common.context.ErrorInfoLocal;
 import cn.daxpay.single.service.common.context.RefundLocal;
 import cn.daxpay.single.service.common.local.PaymentContextLocal;
 import cn.daxpay.single.service.core.channel.wechat.entity.WeChatPayConfig;
@@ -18,7 +20,6 @@ import org.springframework.stereotype.Service;
 
 import java.io.ByteArrayInputStream;
 import java.util.Map;
-import java.util.Optional;
 
 import static cn.daxpay.single.service.code.WeChatPayCode.*;
 
@@ -30,7 +31,7 @@ import static cn.daxpay.single.service.code.WeChatPayCode.*;
 @Slf4j
 @Service
 @RequiredArgsConstructor
-public class WechatPayRefundService {
+public class WeChatPayRefundService {
 
     /**
      * 退款方法
@@ -41,6 +42,7 @@ public class WechatPayRefundService {
         String totalFee = String.valueOf(refundOrder.getAmount());
         // 设置退款信息
         RefundLocal refundInfo = PaymentContextLocal.get().getRefundInfo();
+        ErrorInfoLocal errorInfo = PaymentContextLocal.get().getErrorInfo();
         Map<String, String> params = RefundModel.builder()
                 .appid(weChatPayConfig.getWxAppId())
                 .mch_id(weChatPayConfig.getWxMchId())
@@ -55,9 +57,9 @@ public class WechatPayRefundService {
         // 获取证书文件
         if (StrUtil.isBlank(weChatPayConfig.getP12())){
             String errorMsg = "微信p.12证书未配置,无法进行退款";
-            refundInfo.setErrorMsg(errorMsg);
-            refundInfo.setErrorCode(RefundStatusEnum.FAIL.getCode());
-            throw new PayFailureException(errorMsg);
+            ConfigErrorException configErrorException = new ConfigErrorException(errorMsg);
+            errorInfo.setException(configErrorException);
+            throw configErrorException;
         }
         byte[] fileBytes = Base64.decode(weChatPayConfig.getP12());
         ByteArrayInputStream inputStream = new ByteArrayInputStream(fileBytes);
@@ -82,10 +84,10 @@ public class WechatPayRefundService {
                 errorMsg = result.get(RETURN_MSG);
             }
             log.error("订单退款失败 {}", errorMsg);
-            RefundLocal refundInfo = PaymentContextLocal.get().getRefundInfo();
-            refundInfo.setErrorMsg(errorMsg);
-            refundInfo.setErrorCode(Optional.ofNullable(resultCode).orElse(returnCode));
-            throw new PayFailureException(errorMsg);
+            TradeFailException tradeFailException = new TradeFailException(errorMsg);
+            ErrorInfoLocal errorInfo = PaymentContextLocal.get().getErrorInfo();
+            errorInfo.setException(tradeFailException);
+            throw tradeFailException;
         }
     }
 
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/wechat/service/WeChatPayService.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/wechat/service/WeChatPayService.java
index 6771709f3b26dbbd2d0288470a7b11945707cd32..ecad1cd0fb6c32883e121c298e5585062b16803b 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/wechat/service/WeChatPayService.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/wechat/service/WeChatPayService.java
@@ -4,10 +4,11 @@ import cn.bootx.platform.common.core.util.CollUtil;
 import cn.bootx.platform.common.core.util.LocalDateTimeUtil;
 import cn.bootx.platform.common.jackson.util.JacksonUtil;
 import cn.bootx.platform.common.spring.exception.RetryableException;
-import cn.daxpay.single.code.PayMethodEnum;
-import cn.daxpay.single.exception.pay.PayFailureException;
-import cn.daxpay.single.param.payment.pay.PayParam;
-import cn.daxpay.single.result.sync.PaySyncResult;
+import cn.daxpay.single.core.code.PayMethodEnum;
+import cn.daxpay.single.core.exception.*;
+import cn.daxpay.single.core.param.payment.pay.PayParam;
+import cn.daxpay.single.core.result.sync.PaySyncResult;
+import cn.daxpay.single.core.util.PayUtil;
 import cn.daxpay.single.service.code.WeChatPayCode;
 import cn.daxpay.single.service.code.WeChatPayWay;
 import cn.daxpay.single.service.common.context.PayLocal;
@@ -17,7 +18,6 @@ import cn.daxpay.single.service.core.order.pay.entity.PayOrder;
 import cn.daxpay.single.service.core.payment.sync.service.PaySyncService;
 import cn.daxpay.single.service.param.channel.wechat.WeChatPayParam;
 import cn.daxpay.single.service.sdk.wechat.BarPayModel;
-import cn.daxpay.single.util.PayUtil;
 import cn.hutool.core.date.DatePattern;
 import cn.hutool.core.net.NetUtil;
 import cn.hutool.core.util.StrUtil;
@@ -39,7 +39,7 @@ import java.util.Map;
 import java.util.Objects;
 import java.util.Optional;
 
-import static cn.daxpay.single.code.PaySyncStatusEnum.PROGRESS;
+import static cn.daxpay.single.core.code.PaySyncStatusEnum.PROGRESS;
 import static com.ijpay.wxpay.model.UnifiedOrderModel.UnifiedOrderModelBuilder;
 import static com.ijpay.wxpay.model.UnifiedOrderModel.builder;
 
@@ -62,21 +62,21 @@ public class WeChatPayService {
     public void validation(PayParam payParam, WeChatPayConfig weChatPayConfig) {
         List<String> payWays = weChatPayConfig.getPayWays();
         if (CollUtil.isEmpty(payWays)){
-            throw new PayFailureException("未配置微信支付方式");
+            throw new ConfigNotEnableException("未配置微信支付方式");
         }
 
         PayMethodEnum payMethodEnum = Optional.ofNullable(WeChatPayWay.findByCode(payParam.getMethod()))
-                .orElseThrow(() -> new PayFailureException("非法的微信支付类型"));
+                .orElseThrow(() -> new MethodNotExistException("非法的微信支付类型"));
         if (!payWays.contains(payMethodEnum.getCode())) {
-            throw new PayFailureException("该微信支付方式不可用");
+            throw new MethodNotEnableException("该微信支付方式不可用");
         }
         // 支付金额是否超限
-        if (payParam.getAmount() > weChatPayConfig.getSingleLimit()) {
-            throw new PayFailureException("微信支付金额超限");
+        if (payParam.getAmount() > weChatPayConfig.getLimitAmount()) {
+            throw new AmountExceedLimitException("微信支付金额超限");
         }
         // 是否支持分账
         if (Objects.equals(payParam.getAllocation(),true) && !Objects.equals(weChatPayConfig.getAllocation(),true)) {
-            throw new PayFailureException("未开启分账配置");
+            throw new ConfigNotEnableException("未开启分账配置");
         }
     }
 
@@ -203,14 +203,18 @@ public class WeChatPayService {
         // 支付失败
         if (!WxPayKit.codeIsOk(returnCode)) {
             String errorMsg = result.get(WeChatPayCode.ERR_CODE_DES);
-            throw new PayFailureException(errorMsg);
+            throw new TradeFailException(errorMsg);
         }
 
         String resultCode = result.get(WeChatPayCode.RESULT_CODE);
         String errCode = result.get(WeChatPayCode.ERR_CODE);
         // 支付成功处理,
         if (Objects.equals(resultCode, WeChatPayCode.PAY_SUCCESS)) {
-            payInfo.setOutOrderNo(result.get(WeChatPayCode.TRANSACTION_ID)).setComplete(true);
+            String timeEnd = result.get(WeChatPayCode.TIME_END);
+            LocalDateTime time = LocalDateTimeUtil.parse(timeEnd, DatePattern.PURE_DATETIME_PATTERN);
+            payInfo.setOutOrderNo(result.get(WeChatPayCode.TRANSACTION_ID))
+                    .setCompleteTime(time)
+                    .setComplete(true);
             return;
         }
         // 支付中, 发起轮训同步
@@ -222,13 +226,13 @@ public class WeChatPayService {
         }
         // 支付撤销
         if (Objects.equals(resultCode, WeChatPayCode.PAY_REVOKED)) {
-            throw new PayFailureException("用户已撤销支付");
+            throw new TradeStatusErrorException("用户已撤销支付");
         }
         // 支付失败
         if (Objects.equals(resultCode, WeChatPayCode.TRADE_PAYERROR)
                 || Objects.equals(resultCode, WeChatPayCode.PAY_FAIL)) {
             String errorMsg = result.get(WeChatPayCode.ERR_CODE_DES);
-            throw new PayFailureException(errorMsg);
+            throw new TradeFailException(errorMsg);
         }
     }
 
@@ -265,7 +269,7 @@ public class WeChatPayService {
                 errorMsg = result.get(WeChatPayCode.RETURN_MSG);
             }
             log.error("支付失败 {}", errorMsg);
-            throw new PayFailureException(errorMsg);
+            throw new TradeFailException(errorMsg);
         }
     }
 
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/wechat/service/WeChatPaySyncService.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/wechat/service/WeChatPaySyncService.java
index 0b034a22fb8a52106efbf70688354a61debdae4e..30cb1a282e1931de5a502ff38c6f348eaca49fd7 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/wechat/service/WeChatPaySyncService.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/wechat/service/WeChatPaySyncService.java
@@ -1,8 +1,8 @@
 package cn.daxpay.single.service.core.channel.wechat.service;
 
 import cn.bootx.platform.common.core.util.LocalDateTimeUtil;
-import cn.daxpay.single.code.PaySyncStatusEnum;
-import cn.daxpay.single.code.RefundSyncStatusEnum;
+import cn.daxpay.single.core.code.PaySyncStatusEnum;
+import cn.daxpay.single.core.code.RefundSyncStatusEnum;
 import cn.daxpay.single.service.code.WeChatPayCode;
 import cn.daxpay.single.service.core.channel.wechat.entity.WeChatPayConfig;
 import cn.daxpay.single.service.core.order.pay.entity.PayOrder;
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/wechat/service/WeChatPayTransferService.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/wechat/service/WeChatPayTransferService.java
new file mode 100644
index 0000000000000000000000000000000000000000..b3a4a1f1ff7c4e61d3921dc021e24be944d5154d
--- /dev/null
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/wechat/service/WeChatPayTransferService.java
@@ -0,0 +1,28 @@
+package cn.daxpay.single.service.core.channel.wechat.service;
+
+import cn.daxpay.single.core.exception.UnsupportedAbilityException;
+import cn.daxpay.single.service.core.channel.wechat.entity.WeChatPayConfig;
+import cn.daxpay.single.service.core.order.transfer.entity.TransferOrder;
+import lombok.RequiredArgsConstructor;
+import lombok.SneakyThrows;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+/**
+ * 微信转账到零钱
+ * @author xxm
+ * @since 2024/6/14
+ */
+@Slf4j
+@Service
+@RequiredArgsConstructor
+public class WeChatPayTransferService {
+
+    /**
+     * 转账接口
+     */
+    @SneakyThrows
+    public void transfer(TransferOrder order, WeChatPayConfig config) {
+        throw new UnsupportedAbilityException("微信转账暂未实现");
+    }
+}
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/extra/AliPayAuthService.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/extra/AliPayAuthService.java
new file mode 100644
index 0000000000000000000000000000000000000000..75972fa50ddb7da49454fab719f961ea297ee541
--- /dev/null
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/extra/AliPayAuthService.java
@@ -0,0 +1,121 @@
+package cn.daxpay.single.service.core.extra;
+
+import cn.bootx.platform.common.core.exception.BizException;
+import cn.bootx.platform.common.redis.RedisClient;
+import cn.daxpay.single.service.core.channel.alipay.entity.AliPayConfig;
+import cn.daxpay.single.service.core.channel.alipay.service.AliPayConfigService;
+import cn.daxpay.single.service.core.system.config.entity.PlatformConfig;
+import cn.daxpay.single.service.core.system.config.service.PlatformConfigService;
+import cn.daxpay.single.service.dto.extra.AuthUrlResult;
+import cn.daxpay.single.service.dto.extra.OpenIdResult;
+import cn.hutool.core.util.RandomUtil;
+import cn.hutool.core.util.StrUtil;
+import com.alipay.api.AlipayClient;
+import com.alipay.api.request.AlipaySystemOauthTokenRequest;
+import com.alipay.api.response.AlipaySystemOauthTokenResponse;
+import lombok.RequiredArgsConstructor;
+import lombok.SneakyThrows;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+import java.util.Objects;
+
+/**
+ * 支付宝认证服务类
+ * @author xxm
+ * @since 2024/6/16
+ */
+@Slf4j
+@Service
+@RequiredArgsConstructor
+public class AliPayAuthService {
+
+    public static final String OPEN_ID_KEY_PREFIX = "daxpay:wechat:openId:";
+
+    private final AliPayConfigService aliPayConfigService;
+
+    private final PlatformConfigService platformsConfigService;
+
+    private final RedisClient redisClient;
+
+    /**
+     * 根据传入的标识码code生成一个用于微信授权页面的链接
+     */
+    public AuthUrlResult generateAuthUrl() {
+        PlatformConfig platformConfig = platformsConfigService.getConfig();
+        AliPayConfig aliPayConfig = aliPayConfigService.getConfig();
+        String code = RandomUtil.randomString(10);
+        // 默认读取通道配置
+        String serverUrl = aliPayConfig.getRedirectUrl();
+        // 如果未配置, 读取平台配置
+        if (StrUtil.isBlank(serverUrl)) {
+            serverUrl = platformConfig.getWebsiteUrl();
+        }
+        // 构建出授权成功后重定向页面链接
+        String redirectUrl = StrUtil.format("{}/unipay/callback/alipay/auth/{}", serverUrl, code);
+        // 构造出授权页地址
+        String authUrl = StrUtil.format("{}/h5/alipayAuth.html?appId={}&redirectUrl={}",
+                serverUrl, aliPayConfig.getAppId(), redirectUrl);
+        // 写入Redis, 五分钟有效期
+        redisClient.setWithTimeout(OPEN_ID_KEY_PREFIX + code, "", 5*60*1000L);
+        return new AuthUrlResult()
+                .setCode(code)
+                .setAuthUrl(authUrl);
+    }
+
+    /**
+     * 支付宝权回调页面, 通过获取到authCode获取到OpenId, 存到到Redis中对应code关联的键值对中
+     * @param authCode 微信返回的授权码
+     * @param code 标识码
+     */
+    public void authCallback(String authCode, String code) {
+        // 获取OpenId或UserId
+        String openId = this.getOpenIdOrUserId(authCode);
+        // 写入Redis
+        redisClient.setWithTimeout(OPEN_ID_KEY_PREFIX + code, openId, 60*1000L);
+    }
+
+    /**
+     * 通过标识码轮训获取OpenId或UserId
+     */
+    public OpenIdResult queryOpenId(String code) {
+        // 从redis中获取
+        String openId = redisClient.get(OPEN_ID_KEY_PREFIX + code);
+        // 不为空存在
+        if (StrUtil.isNotBlank(openId)){
+            return new OpenIdResult().setOpenId(openId).setStatus("success");
+        }
+        // 为空获取中
+        if (Objects.equals(openId, "")){
+            return new OpenIdResult().setStatus("pending");
+        }
+        // null不存在
+        return new OpenIdResult().setStatus("fail");
+    }
+
+
+    /**
+     * 获取OpenId或者userid用户标识
+     */
+    @SneakyThrows
+    public String getOpenIdOrUserId(String authCode) {
+        // 初始化SDK
+        AlipayClient alipayClient = aliPayConfigService.getAlipayClient();
+        // 构造请求参数以调用接口
+        AlipaySystemOauthTokenRequest request = new AlipaySystemOauthTokenRequest();
+        // 设置授权码
+        request.setCode(authCode);
+        // 设置授权方式
+        request.setGrantType("authorization_code");
+        AlipaySystemOauthTokenResponse response = alipayClient.execute(request);
+        if (!response.isSuccess()) {
+            log.warn("获取支付宝OpenId失败,原因:{}", response.getSubMsg());
+            throw new BizException("获取支付宝OpenId失败");
+        }
+        // 如果未申请 OpenId 方式, 则获取的是UserId
+        if (StrUtil.isBlank(response.getOpenId())) {
+            return response.getUserId();
+        }
+        return response.getOpenId();
+    }
+}
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/assist/service/UniPayAssistService.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/extra/WeChatAuthService.java
similarity index 40%
rename from daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/assist/service/UniPayAssistService.java
rename to daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/extra/WeChatAuthService.java
index 95b29ced3769499dce303a6254ae68f3f4ac3b9b..a1b494e522f28c62cbbd5de5fccebac1672ca565 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/assist/service/UniPayAssistService.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/extra/WeChatAuthService.java
@@ -1,11 +1,18 @@
-package cn.daxpay.single.service.core.payment.assist.service;
+package cn.daxpay.single.service.core.extra;
 
-import cn.daxpay.single.param.assist.WxAccessTokenParam;
-import cn.daxpay.single.param.assist.WxAuthUrlParam;
-import cn.daxpay.single.result.assist.WxAccessTokenResult;
-import cn.daxpay.single.result.assist.WxAuthUrlResult;
+import cn.bootx.platform.common.redis.RedisClient;
+import cn.daxpay.single.core.param.assist.WxAccessTokenParam;
+import cn.daxpay.single.core.param.assist.WxAuthUrlParam;
+import cn.daxpay.single.core.result.assist.WxAccessTokenResult;
+import cn.daxpay.single.core.result.assist.WxAuthUrlResult;
 import cn.daxpay.single.service.core.channel.wechat.entity.WeChatPayConfig;
 import cn.daxpay.single.service.core.channel.wechat.service.WeChatPayConfigService;
+import cn.daxpay.single.service.core.system.config.entity.PlatformConfig;
+import cn.daxpay.single.service.core.system.config.service.PlatformConfigService;
+import cn.daxpay.single.service.dto.extra.AuthUrlResult;
+import cn.daxpay.single.service.dto.extra.OpenIdResult;
+import cn.hutool.core.util.RandomUtil;
+import cn.hutool.core.util.StrUtil;
 import lombok.RequiredArgsConstructor;
 import lombok.SneakyThrows;
 import lombok.extern.slf4j.Slf4j;
@@ -16,6 +23,8 @@ import me.chanjar.weixin.mp.api.impl.WxMpServiceImpl;
 import me.chanjar.weixin.mp.config.impl.WxMpDefaultConfigImpl;
 import org.springframework.stereotype.Service;
 
+import java.util.Objects;
+
 /**
  * 支付支撑服务类
  * @author xxm
@@ -24,9 +33,16 @@ import org.springframework.stereotype.Service;
 @Slf4j
 @Service
 @RequiredArgsConstructor
-public class UniPayAssistService {
+public class WeChatAuthService {
+
+    public static final String OPEN_ID_KEY_PREFIX = "daxpay:wechat:openId:";
+
     private final WeChatPayConfigService weChatPayConfigService;
 
+    private final PlatformConfigService platformsConfigService;
+
+    private final RedisClient redisClient;
+
     /**
      * 构建微信oauth2授权的url连接
      */
@@ -49,6 +65,63 @@ public class UniPayAssistService {
                 .setOpenId(accessToken.getOpenId());
     }
 
+    /**
+     * 生成一个用于微信授权页面的链接和code标识
+     */
+    public AuthUrlResult generateAuthUrl() {
+        PlatformConfig platformConfig = platformsConfigService.getConfig();
+        WeChatPayConfig weChatPayConfig = weChatPayConfigService.getConfig();
+        String code = RandomUtil.randomString(10);
+        // 默认读取通道配置
+        String serverUrl = weChatPayConfig.getRedirectUrl();
+        // 如果未配置, 读取平台配置
+        if (StrUtil.isBlank(serverUrl)) {
+            serverUrl = platformConfig.getWebsiteUrl();
+        }
+        // 构建出授权后重定向页面链接
+        String redirectUrl = StrUtil.format("{}/unipay/callback/wechat/auth/{}", serverUrl, code);
+        WxAuthUrlResult result = this.getWxAuthUrl(new WxAuthUrlParam().setUrl(redirectUrl));
+
+        // 写入Redis, 五分钟有效期
+        redisClient.setWithTimeout(OPEN_ID_KEY_PREFIX + code, "", 5*60*1000L);
+        return new AuthUrlResult()
+                .setCode(code)
+                .setAuthUrl(result.getUrl());
+    }
+
+    /**
+     * 微信授权回调页面, 通过获取到authCode获取到OpenId, 存到到Redis中对应code关联的键值对中
+     * @param authCode 微信返回的授权码
+     * @param code 标识码
+     */
+    public void authCallback(String authCode, String code) {
+        // 获取OpenId
+        WxAccessTokenParam param = new WxAccessTokenParam();
+        param.setCode(authCode);
+        WxAccessTokenResult wxAccessToken = this.getWxAccessToken(new WxAccessTokenParam().setCode(authCode));
+        // 写入Redis
+        redisClient.setWithTimeout(OPEN_ID_KEY_PREFIX + code, wxAccessToken.getOpenId(), 60*1000L);
+    }
+
+    /**
+     * 通过标识码轮训获取OpenId
+     */
+    public OpenIdResult queryOpenId(String code) {
+        // 从redis中获取
+        String openId = redisClient.get(OPEN_ID_KEY_PREFIX + code);
+        // 不为空存在
+        if (StrUtil.isNotBlank(openId)){
+            return new OpenIdResult().setOpenId(openId).setStatus("success");
+        }
+        // 为空获取中
+        if (Objects.equals(openId, "")){
+            return new OpenIdResult().setStatus("pending");
+        }
+        // null不存在
+        return new OpenIdResult().setStatus("fail");
+    }
+
+
     /**
      * 获取微信公众号API的Service
      */
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/notice/entity/ClientNoticeRecord.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/notice/entity/ClientNoticeRecord.java
index a1774fe10817c6ccdf078a1b30c715bcbf2f7588..830f5453622b9f94a9c5b7ea21b1bcb6130faed0 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/notice/entity/ClientNoticeRecord.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/notice/entity/ClientNoticeRecord.java
@@ -2,6 +2,7 @@ package cn.daxpay.single.service.core.notice.entity;
 
 import cn.bootx.platform.common.core.function.EntityBaseFunction;
 import cn.bootx.platform.common.mybatisplus.base.MpCreateEntity;
+import cn.bootx.table.modify.mysql.annotation.DbMySqlIndex;
 import cn.daxpay.single.service.code.ClientNoticeSendTypeEnum;
 import cn.daxpay.single.service.core.notice.convert.ClientNoticeConvert;
 import cn.daxpay.single.service.dto.record.notice.ClientNoticeRecordDto;
@@ -25,30 +26,31 @@ import lombok.experimental.Accessors;
 public class ClientNoticeRecord extends MpCreateEntity implements EntityBaseFunction<ClientNoticeRecordDto> {
 
     /** 任务ID */
-    @DbColumn(comment = "任务ID")
+    @DbMySqlIndex(comment = "任务ID索引")
+    @DbColumn(comment = "任务ID", isNull = false)
     private Long taskId;
 
     /** 请求次数 */
-    @DbColumn(comment = "请求次数")
+    @DbColumn(comment = "请求次数", length = 3)
     private Integer reqCount;
 
     /** 发送是否成功 */
-    @DbColumn(comment = "发送是否成功")
+    @DbColumn(comment = "发送是否成功", isNull = false)
     private boolean success;
 
     /**
      * 发送类型, 自动发送, 手动发送
      * @see ClientNoticeSendTypeEnum
      */
-    @DbColumn(comment = "发送类型")
+    @DbColumn(comment = "发送类型", length = 20, isNull = false)
     private String sendType;
 
-    /** 错误编码 */
-    @DbColumn(comment = "错误编码")
+    /** 错误码 */
+    @DbColumn(comment = "错误码", length = 10)
     private String errorCode;
 
     /** 错误信息 */
-    @DbColumn(comment = "错误信息")
+    @DbColumn(comment = "错误信息", length = 2048)
     private String errorMsg;
 
     /**
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/notice/entity/ClientNoticeTask.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/notice/entity/ClientNoticeTask.java
index 6e2513417022d695242da533e5c727ebc6ab4638..6bdbbcf6ccaf9ac5274a41f8e9dcec84c4281059 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/notice/entity/ClientNoticeTask.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/notice/entity/ClientNoticeTask.java
@@ -5,14 +5,15 @@ import cn.bootx.platform.common.mybatisplus.base.MpBaseEntity;
 import cn.bootx.table.modify.annotation.DbColumn;
 import cn.bootx.table.modify.annotation.DbTable;
 import cn.bootx.table.modify.mysql.annotation.DbMySqlFieldType;
+import cn.bootx.table.modify.mysql.annotation.DbMySqlIndex;
 import cn.bootx.table.modify.mysql.constants.MySqlFieldTypeEnum;
-import cn.daxpay.single.code.PayStatusEnum;
-import cn.daxpay.single.code.RefundStatusEnum;
-import cn.daxpay.single.result.order.AllocOrderResult;
+import cn.daxpay.single.core.code.PayStatusEnum;
+import cn.daxpay.single.core.code.RefundStatusEnum;
+import cn.daxpay.single.core.result.order.AllocOrderResult;
 import cn.daxpay.single.service.code.ClientNoticeTypeEnum;
+import cn.daxpay.single.service.core.notice.convert.ClientNoticeConvert;
 import cn.daxpay.single.service.core.payment.notice.result.PayNoticeResult;
 import cn.daxpay.single.service.core.payment.notice.result.RefundNoticeResult;
-import cn.daxpay.single.service.core.notice.convert.ClientNoticeConvert;
 import cn.daxpay.single.service.dto.record.notice.ClientNoticeTaskDto;
 import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.Data;
@@ -34,18 +35,19 @@ import java.time.LocalDateTime;
 public class ClientNoticeTask extends MpBaseEntity implements EntityBaseFunction<ClientNoticeTaskDto> {
 
     /** 本地交易ID */
-    @DbColumn(comment = "本地交易ID")
+    @DbColumn(comment = "本地交易ID", isNull = false)
     private Long tradeId;
 
     /** 本地交易号 */
-    @DbColumn(comment = "本地交易号")
+    @DbMySqlIndex(comment = "本地交易号索引")
+    @DbColumn(comment = "本地交易号", length = 32, isNull = false)
     private String tradeNo;
 
     /**
      * 消息类型
      * @see ClientNoticeTypeEnum
      */
-    @DbColumn(comment = "消息类型")
+    @DbColumn(comment = "消息类型", length = 20, isNull = false)
     private String noticeType;
 
     /**
@@ -53,7 +55,7 @@ public class ClientNoticeTask extends MpBaseEntity implements EntityBaseFunction
      * @see PayStatusEnum
      * @see RefundStatusEnum
      */
-    @DbColumn(comment = "交易状态")
+    @DbColumn(comment = "交易状态", length = 20, isNull = false)
     private String tradeStatus;
 
     /**
@@ -62,20 +64,20 @@ public class ClientNoticeTask extends MpBaseEntity implements EntityBaseFunction
      * @see RefundNoticeResult
      * @see AllocOrderResult
      */
-    @DbColumn(comment = "消息内容")
+    @DbColumn(comment = "消息内容", isNull = false)
     @DbMySqlFieldType(MySqlFieldTypeEnum.LONGTEXT)
     private String content;
 
     /** 是否发送成功 */
-    @DbColumn(comment = "是否发送成功")
+    @DbColumn(comment = "是否发送成功", isNull = false)
     private boolean success;
 
     /** 发送次数 */
-    @DbColumn(comment = "发送次数")
+    @DbColumn(comment = "发送次数", length = 3, isNull = false)
     private Integer sendCount;
 
     /** 发送地址 */
-    @DbColumn(comment = "发送地址")
+    @DbColumn(comment = "发送地址", length = 150, isNull = false)
     private String url;
 
     /** 最后发送时间 */
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/allocation/convert/AllocationConvert.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/allocation/convert/AllocOrderConvert.java
similarity index 40%
rename from daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/allocation/convert/AllocationConvert.java
rename to daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/allocation/convert/AllocOrderConvert.java
index 014014cbb00293bcd0f68d051067f13fd7523ef5..e0c2a2348da321cf8ac48a4dfd811bd9fb8ab0e5 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/allocation/convert/AllocationConvert.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/allocation/convert/AllocOrderConvert.java
@@ -1,15 +1,13 @@
 package cn.daxpay.single.service.core.order.allocation.convert;
 
-import cn.daxpay.single.result.order.AllocOrderDetailResult;
-import cn.daxpay.single.result.order.AllocOrderResult;
-import cn.daxpay.single.service.core.order.allocation.entity.AllocationOrder;
-import cn.daxpay.single.service.core.order.allocation.entity.AllocationOrderDetail;
-import cn.daxpay.single.service.core.order.allocation.entity.AllocationOrderExtra;
+import cn.daxpay.single.core.result.order.AllocOrderDetailResult;
+import cn.daxpay.single.core.result.order.AllocOrderResult;
+import cn.daxpay.single.service.core.order.allocation.entity.AllocOrder;
+import cn.daxpay.single.service.core.order.allocation.entity.AllocOrderDetail;
 import cn.daxpay.single.service.core.payment.notice.result.AllocDetailNoticeResult;
 import cn.daxpay.single.service.core.payment.notice.result.AllocNoticeResult;
+import cn.daxpay.single.service.dto.order.allocation.AllocOrderDto;
 import cn.daxpay.single.service.dto.order.allocation.AllocationOrderDetailDto;
-import cn.daxpay.single.service.dto.order.allocation.AllocationOrderDto;
-import cn.daxpay.single.service.dto.order.allocation.AllocationOrderExtraDto;
 import org.mapstruct.Mapper;
 import org.mapstruct.factory.Mappers;
 
@@ -19,21 +17,19 @@ import org.mapstruct.factory.Mappers;
  * @since 2024/4/7
  */
 @Mapper
-public interface AllocationConvert {
-    AllocationConvert CONVERT = Mappers.getMapper(AllocationConvert.class);
+public interface AllocOrderConvert {
+    AllocOrderConvert CONVERT = Mappers.getMapper(AllocOrderConvert.class);
 
-    AllocationOrderDto convert(AllocationOrder in);
+    AllocOrderDto convert(AllocOrder in);
 
-    AllocationOrderExtraDto convert(AllocationOrderExtra in);
+    AllocOrderResult toResult(AllocOrder in);
 
-    AllocOrderResult toResult(AllocationOrder in);
+    AllocOrderDetailResult toResult(AllocOrderDetail in);
 
-    AllocOrderDetailResult toResult(AllocationOrderDetail in);
+    AllocationOrderDetailDto convert(AllocOrderDetail in);
 
-    AllocationOrderDetailDto convert(AllocationOrderDetail in);
+    AllocNoticeResult toNotice(AllocOrder in);
 
-    AllocNoticeResult toNotice(AllocationOrder in);
-
-    AllocDetailNoticeResult toNotice(AllocationOrderDetail in);
+    AllocDetailNoticeResult toNotice(AllocOrderDetail in);
 
 }
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/allocation/dao/AllocationOrderDetailManager.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/allocation/dao/AllocOrderDetailManager.java
similarity index 62%
rename from daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/allocation/dao/AllocationOrderDetailManager.java
rename to daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/allocation/dao/AllocOrderDetailManager.java
index 0b3918eedbefbf6826c5300a22d42b8b38a37e9c..5494034bad2112be45ff073bb12770c79601db8d 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/allocation/dao/AllocationOrderDetailManager.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/allocation/dao/AllocOrderDetailManager.java
@@ -1,7 +1,7 @@
 package cn.daxpay.single.service.core.order.allocation.dao;
 
 import cn.bootx.platform.common.mybatisplus.impl.BaseManager;
-import cn.daxpay.single.service.core.order.allocation.entity.AllocationOrderDetail;
+import cn.daxpay.single.service.core.order.allocation.entity.AllocOrderDetail;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Repository;
@@ -16,12 +16,12 @@ import java.util.List;
 @Slf4j
 @Repository
 @RequiredArgsConstructor
-public class AllocationOrderDetailManager extends BaseManager<AllocationOrderDetailMapper, AllocationOrderDetail> {
+public class AllocOrderDetailManager extends BaseManager<AllocOrderDetailMapper, AllocOrderDetail> {
 
     /**
      * 根据订单ID查询
      */
-    public List<AllocationOrderDetail> findAllByOrderId(Long orderId) {
-        return findAllByField(AllocationOrderDetail::getAllocationId, orderId);
+    public List<AllocOrderDetail> findAllByOrderId(Long orderId) {
+        return findAllByField(AllocOrderDetail::getAllocationId, orderId);
     }
 }
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/allocation/dao/AllocationOrderDetailMapper.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/allocation/dao/AllocOrderDetailMapper.java
similarity index 72%
rename from daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/allocation/dao/AllocationOrderDetailMapper.java
rename to daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/allocation/dao/AllocOrderDetailMapper.java
index 2eb08e6b04a23a25e1b6ebbf56d7fbde2a96e855..c3952be42606afe4629a2538281369500371215c 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/allocation/dao/AllocationOrderDetailMapper.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/allocation/dao/AllocOrderDetailMapper.java
@@ -1,6 +1,6 @@
 package cn.daxpay.single.service.core.order.allocation.dao;
 
-import cn.daxpay.single.service.core.order.allocation.entity.AllocationOrderDetail;
+import cn.daxpay.single.service.core.order.allocation.entity.AllocOrderDetail;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import org.apache.ibatis.annotations.Mapper;
 
@@ -10,5 +10,5 @@ import org.apache.ibatis.annotations.Mapper;
  * @since 2024/4/7
  */
 @Mapper
-public interface AllocationOrderDetailMapper extends BaseMapper<AllocationOrderDetail> {
+public interface AllocOrderDetailMapper extends BaseMapper<AllocOrderDetail> {
 }
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/allocation/dao/AllocationOrderMapper.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/allocation/dao/AllocOrderMapper.java
similarity index 75%
rename from daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/allocation/dao/AllocationOrderMapper.java
rename to daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/allocation/dao/AllocOrderMapper.java
index 0047ab8072665e0381778a74daeb35285ac2886c..847548f9386cc9d8276c73be7e5ae5ce88e53364 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/allocation/dao/AllocationOrderMapper.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/allocation/dao/AllocOrderMapper.java
@@ -1,6 +1,6 @@
 package cn.daxpay.single.service.core.order.allocation.dao;
 
-import cn.daxpay.single.service.core.order.allocation.entity.AllocationOrder;
+import cn.daxpay.single.service.core.order.allocation.entity.AllocOrder;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import org.apache.ibatis.annotations.Mapper;
 
@@ -10,5 +10,5 @@ import org.apache.ibatis.annotations.Mapper;
  * @since 2024/4/7
  */
 @Mapper
-public interface AllocationOrderMapper extends BaseMapper<AllocationOrder> {
+public interface AllocOrderMapper extends BaseMapper<AllocOrder> {
 }
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/allocation/dao/AllocationOrderExtraManager.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/allocation/dao/AllocationOrderExtraManager.java
deleted file mode 100644
index d6c80f39d71b7194d07ba523f8e2b9e28b7670a4..0000000000000000000000000000000000000000
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/allocation/dao/AllocationOrderExtraManager.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package cn.daxpay.single.service.core.order.allocation.dao;
-
-import cn.bootx.platform.common.mybatisplus.impl.BaseManager;
-import cn.daxpay.single.service.core.order.allocation.entity.AllocationOrderExtra;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Repository;
-
-/**
- * 分账订单扩展
- * @author xxm
- * @since 2024/5/22
- */
-@Slf4j
-@Repository
-@RequiredArgsConstructor
-public class AllocationOrderExtraManager extends BaseManager<AllocationOrderExtraMapper, AllocationOrderExtra> {
-}
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/allocation/dao/AllocationOrderExtraMapper.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/allocation/dao/AllocationOrderExtraMapper.java
deleted file mode 100644
index df857daa0639080a3caedeb1adb794948fd83844..0000000000000000000000000000000000000000
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/allocation/dao/AllocationOrderExtraMapper.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package cn.daxpay.single.service.core.order.allocation.dao;
-
-import cn.daxpay.single.service.core.order.allocation.entity.AllocationOrderExtra;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import org.apache.ibatis.annotations.Mapper;
-
-/**
- * 分账订单扩展
- * @author xxm
- * @since 2024/5/22
- */
-@Mapper
-public interface AllocationOrderExtraMapper extends BaseMapper<AllocationOrderExtra> {
-}
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/allocation/dao/AllocationOrderManager.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/allocation/dao/AllocationOrderManager.java
index 542ff8bc173d6193c7fca2f7bd67d82131d486c5..1ed50d2dcab61a52d035aa87bcf7368c76ed38c2 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/allocation/dao/AllocationOrderManager.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/allocation/dao/AllocationOrderManager.java
@@ -4,9 +4,9 @@ import cn.bootx.platform.common.core.rest.param.PageParam;
 import cn.bootx.platform.common.mybatisplus.impl.BaseManager;
 import cn.bootx.platform.common.mybatisplus.util.MpUtil;
 import cn.bootx.platform.common.query.generator.QueryGenerator;
-import cn.daxpay.single.code.AllocOrderStatusEnum;
-import cn.daxpay.single.service.core.order.allocation.entity.AllocationOrder;
-import cn.daxpay.single.service.param.order.AllocationOrderQuery;
+import cn.daxpay.single.core.code.AllocOrderStatusEnum;
+import cn.daxpay.single.service.core.order.allocation.entity.AllocOrder;
+import cn.daxpay.single.service.param.order.AllocOrderQuery;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import lombok.RequiredArgsConstructor;
@@ -25,38 +25,38 @@ import java.util.Optional;
 @Slf4j
 @Repository
 @RequiredArgsConstructor
-public class AllocationOrderManager extends BaseManager<AllocationOrderMapper, AllocationOrder> {
+public class AllocationOrderManager extends BaseManager<AllocOrderMapper, AllocOrder> {
 
     /**
      * 根据分账单号查询
      */
-    public Optional<AllocationOrder> findByAllocationNo(String allocationNo){
-        return findByField(AllocationOrder::getAllocationNo, allocationNo);
+    public Optional<AllocOrder> findByAllocNo(String allocNo){
+        return findByField(AllocOrder::getAllocNo, allocNo);
     }
 
     /**
      * 根据商户分账号查询
      */
-    public Optional<AllocationOrder> findByBizAllocationNo(String bizAllocationNo){
-        return findByField(AllocationOrder::getBizAllocationNo, bizAllocationNo);
+    public Optional<AllocOrder> findByBizAllocNo(String bizAllocNo){
+        return findByField(AllocOrder::getBizAllocNo, bizAllocNo);
     }
 
     /**
      * 分页
      */
-    public Page<AllocationOrder> page(PageParam pageParam, AllocationOrderQuery param){
-            Page<AllocationOrder> mpPage = MpUtil.getMpPage(pageParam, AllocationOrder.class);
-            QueryWrapper<AllocationOrder> generator = QueryGenerator.generator(param);
+    public Page<AllocOrder> page(PageParam pageParam, AllocOrderQuery param){
+            Page<AllocOrder> mpPage = MpUtil.getMpPage(pageParam, AllocOrder.class);
+            QueryWrapper<AllocOrder> generator = QueryGenerator.generator(param);
             return this.page(mpPage, generator);
     }
 
     /**
      * 查询待同步的分账单
      */
-    public List<AllocationOrder> findSyncOrder(){
+    public List<AllocOrder> findSyncOrder(){
         List<String> statusList = Arrays.asList(AllocOrderStatusEnum.ALLOCATION_PROCESSING.getCode(), AllocOrderStatusEnum.ALLOCATION_END.getCode());
         return lambdaQuery()
-                .in(AllocationOrder::getStatus, statusList)
+                .in(AllocOrder::getStatus, statusList)
                 .list();
     }
 }
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/allocation/entity/AllocationOrder.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/allocation/entity/AllocOrder.java
similarity index 40%
rename from daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/allocation/entity/AllocationOrder.java
rename to daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/allocation/entity/AllocOrder.java
index e5b900b5f0ae83b92542c5e02a296c921490f8f9..e7858086df38cc099dda2194362fd1122b8322a8 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/allocation/entity/AllocationOrder.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/allocation/entity/AllocOrder.java
@@ -4,11 +4,12 @@ import cn.bootx.platform.common.core.function.EntityBaseFunction;
 import cn.bootx.platform.common.mybatisplus.base.MpBaseEntity;
 import cn.bootx.table.modify.annotation.DbColumn;
 import cn.bootx.table.modify.annotation.DbTable;
-import cn.daxpay.single.code.AllocOrderResultEnum;
-import cn.daxpay.single.code.AllocOrderStatusEnum;
-import cn.daxpay.single.code.PayChannelEnum;
-import cn.daxpay.single.service.core.order.allocation.convert.AllocationConvert;
-import cn.daxpay.single.service.dto.order.allocation.AllocationOrderDto;
+import cn.bootx.table.modify.mysql.annotation.DbMySqlIndex;
+import cn.daxpay.single.core.code.AllocOrderResultEnum;
+import cn.daxpay.single.core.code.AllocOrderStatusEnum;
+import cn.daxpay.single.core.code.PayChannelEnum;
+import cn.daxpay.single.service.core.order.allocation.convert.AllocOrderConvert;
+import cn.daxpay.single.service.dto.order.allocation.AllocOrderDto;
 import com.baomidou.mybatisplus.annotation.FieldStrategy;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
@@ -27,111 +28,121 @@ import java.time.LocalDateTime;
 @Data
 @Accessors(chain = true)
 @DbTable(comment = "分账订单")
-@TableName("pay_allocation_order")
-public class AllocationOrder extends MpBaseEntity implements EntityBaseFunction<AllocationOrderDto> {
+@TableName("pay_alloc_order")
+public class AllocOrder extends MpBaseEntity implements EntityBaseFunction<AllocOrderDto> {
 
     /**
      * 分账单号
      */
-    @DbColumn(comment = "分账单号")
-    private String allocationNo;
+    @DbMySqlIndex(comment = "分账单号索引")
+    @DbColumn(comment = "分账单号", length = 32, isNull = false)
+    private String allocNo;
 
     /**
      * 商户分账单号
      */
-    @DbColumn(comment = "商户分账单号")
-    private String bizAllocationNo;
+    @DbMySqlIndex(comment = "商户分账单号索引")
+    @DbColumn(comment = "商户分账单号", length = 100, isNull = false)
+    private String bizAllocNo;
 
     /**
      * 通道分账号
      */
-    @DbColumn(comment = "通道分账号")
-    private String outAllocationNo;
+    @DbMySqlIndex(comment = "通道分账号索引")
+    @DbColumn(comment = "通道分账号", length = 150)
+    private String outAllocNo;
 
     /** 支付订单ID */
-    @DbColumn(comment = "支付订单ID")
+    @DbMySqlIndex(comment = "支付订单ID索引")
+    @DbColumn(comment = "支付订单ID", isNull = false)
     private Long orderId;
 
-    /**
-     * 支付订单号
-     */
-    @DbColumn(comment = "支付订单号")
+    /** 支付订单号 */
+    @DbMySqlIndex(comment = "支付订单号索引")
+    @DbColumn(comment = "支付订单号", length = 32, isNull = false)
     private String orderNo;
 
-    /**
-     * 商户支付订单号
-     */
-    @DbColumn(comment = "商户支付订单号")
+    /** 商户支付订单号 */
+    @DbMySqlIndex(comment = "商户支付订单号索引")
+    @DbColumn(comment = "商户支付订单号", length = 100, isNull = false)
     private String bizOrderNo;
 
-    /**
-     * 通道系统支付订单号
-     */
-    @DbColumn(comment = "通道支付订单号")
+    /** 通道支付订单号 */
+    @DbMySqlIndex(comment = "通道支付订单号索引")
+    @DbColumn(comment = "通道支付订单号", length = 150, isNull = false)
     private String outOrderNo;
 
-    /**
-     * 支付订单标题
-     */
-    @DbColumn(comment = "支付订单标题")
+    /** 支付标题 */
+    @DbColumn(comment = "支付标题", length = 100, isNull = false)
     private String title;
 
     /**
      * 所属通道
      * @see PayChannelEnum
      */
-    @DbColumn(comment = "所属通道")
+    @DbColumn(comment = "所属通道", length = 20, isNull = false)
     private String channel;
 
     /**
      * 总分账金额
      */
-    @DbColumn(comment = "总分账金额")
+    @DbColumn(comment = "总分账金额", length = 8, isNull = false)
     private Integer amount;
 
     /**
      * 分账描述
      */
-    @DbColumn(comment = "分账描述")
+    @DbColumn(comment = "分账描述", length = 150)
     private String description;
 
     /**
      * 状态
      * @see AllocOrderStatusEnum
      */
-    @DbColumn(comment = "状态")
+    @DbColumn(comment = "状态", length = 30, isNull = false)
     private String status;
 
     /**
      * 处理结果
      * @see AllocOrderResultEnum
      */
-    @DbColumn(comment = "处理结果")
+    @DbColumn(comment = "处理结果", length = 20, isNull = false)
     private String result;
 
-    /**
-     * 错误码
-     */
-    @DbColumn(comment = "错误码")
+    /** 分账完成时间 */
+    @DbColumn(comment = "分账完成时间")
+    private LocalDateTime finishTime;
+
+    /** 异步通知地址 */
+    @DbColumn(comment = "异步通知地址", length = 200)
     @TableField(updateStrategy = FieldStrategy.ALWAYS)
+    private String notifyUrl;
+
+    /** 商户扩展参数,回调时会原样返回, 以最后一次为准 */
+    @DbColumn(comment = "商户扩展参数", length = 500)
+    private String attach;
+
+    /** 请求时间,时间戳转时间 */
+    @DbColumn(comment = "请求时间,传输时间戳")
+    private LocalDateTime reqTime;
+
+    /** 终端ip */
+    @DbColumn(comment = "支付终端ip", length = 64)
+    private String clientIp;
+
+    /** 错误码 */
+    @DbColumn(comment = "错误码", length = 10)
     private String errorCode;
 
-    /**
-     * 错误信息
-     */
-    @DbColumn(comment = "错误原因")
-    @TableField(updateStrategy = FieldStrategy.ALWAYS)
+    /** 错误信息 */
+    @DbColumn(comment = "错误信息", length = 2048)
     private String errorMsg;
 
-    /** 分账完成时间 */
-    @DbColumn(comment = "分账完成时间")
-    private LocalDateTime finishTime;
-
     /**
      * 转换
      */
     @Override
-    public AllocationOrderDto toDto() {
-        return AllocationConvert.CONVERT.convert(this);
+    public AllocOrderDto toDto() {
+        return AllocOrderConvert.CONVERT.convert(this);
     }
 }
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/allocation/entity/AllocationOrderDetail.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/allocation/entity/AllocOrderDetail.java
similarity index 61%
rename from daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/allocation/entity/AllocationOrderDetail.java
rename to daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/allocation/entity/AllocOrderDetail.java
index fc335aeea80ca4e6349e8a1d50e6b61d9d4193af..da97451886c4bc184565eee8c998567272223abd 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/allocation/entity/AllocationOrderDetail.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/allocation/entity/AllocOrderDetail.java
@@ -4,10 +4,11 @@ import cn.bootx.platform.common.core.function.EntityBaseFunction;
 import cn.bootx.platform.common.mybatisplus.base.MpBaseEntity;
 import cn.bootx.table.modify.annotation.DbColumn;
 import cn.bootx.table.modify.annotation.DbTable;
-import cn.daxpay.single.code.AllocDetailResultEnum;
-import cn.daxpay.single.code.AllocReceiverTypeEnum;
+import cn.bootx.table.modify.mysql.annotation.DbMySqlIndex;
+import cn.daxpay.single.core.code.AllocDetailResultEnum;
+import cn.daxpay.single.core.code.AllocReceiverTypeEnum;
 import cn.daxpay.single.service.common.typehandler.DecryptTypeHandler;
-import cn.daxpay.single.service.core.order.allocation.convert.AllocationConvert;
+import cn.daxpay.single.service.core.order.allocation.convert.AllocOrderConvert;
 import cn.daxpay.single.service.dto.order.allocation.AllocationOrderDetailDto;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
@@ -26,58 +27,59 @@ import java.time.LocalDateTime;
 @Data
 @Accessors(chain = true)
 @DbTable(comment = "分账订单明细")
-@TableName(value = "pay_allocation_order_detail",autoResultMap = true)
-public class AllocationOrderDetail extends MpBaseEntity implements EntityBaseFunction<AllocationOrderDetailDto> {
+@TableName(value = "pay_alloc_order_detail",autoResultMap = true)
+public class AllocOrderDetail extends MpBaseEntity implements EntityBaseFunction<AllocationOrderDetailDto> {
 
     /** 分账订单ID */
-    @DbColumn(comment = "分账订单ID")
+    @DbMySqlIndex(comment = "分账订单ID索引")
+    @DbColumn(comment = "分账订单ID", isNull = false)
     private Long allocationId;
 
     /** 接收者ID */
-    @DbColumn(comment = "接收者ID")
+    @DbColumn(comment = "接收者ID", isNull = false)
     private Long receiverId;
 
     /** 分账接收方编号 */
-    @DbColumn(comment = "分账接收方编号")
+    @DbColumn(comment = "分账接收方编号", length = 20, isNull = false)
     private String receiverNo;
 
     /** 分账比例 */
-    @DbColumn(comment = "分账比例(万分之多少)")
+    @DbColumn(comment = "分账比例(万分之多少)", length = 5, isNull = false)
     private Integer rate;
 
     /** 分账金额 */
-    @DbColumn(comment = "分账金额")
+    @DbColumn(comment = "分账金额", length = 8, isNull = false)
     private Integer amount;
 
     /**
      * 分账接收方类型
      * @see AllocReceiverTypeEnum
      */
-    @DbColumn(comment = "分账接收方类型")
+    @DbColumn(comment = "分账接收方类型", length = 20, isNull = false)
     private String receiverType;
 
     /** 接收方账号 */
-    @DbColumn(comment = "接收方账号")
+    @DbColumn(comment = "接收方账号", length = 100, isNull = false)
     @TableField(typeHandler = DecryptTypeHandler.class)
     private String receiverAccount;
 
     /** 接收方姓名 */
-    @DbColumn(comment = "接收方姓名")
+    @DbColumn(comment = "接收方姓名", length = 100)
     private String receiverName;
 
     /**
      * 分账结果
      * @see AllocDetailResultEnum
      */
-    @DbColumn(comment = "分账结果")
+    @DbColumn(comment = "分账结果", length = 20, isNull = false)
     private String result;
 
     /** 错误代码 */
-    @DbColumn(comment = "错误代码")
+    @DbColumn(comment = "错误代码", length = 10)
     private String errorCode;
 
     /** 错误原因 */
-    @DbColumn(comment = "错误原因")
+    @DbColumn(comment = "错误原因", length = 150)
     private String errorMsg;
 
     /** 分账完成时间 */
@@ -89,6 +91,6 @@ public class AllocationOrderDetail extends MpBaseEntity implements EntityBaseFun
      */
     @Override
     public AllocationOrderDetailDto toDto() {
-        return AllocationConvert.CONVERT.convert(this);
+        return AllocOrderConvert.CONVERT.convert(this);
     }
 }
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/allocation/entity/AllocationOrderExtra.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/allocation/entity/AllocationOrderExtra.java
deleted file mode 100644
index 63ea17fa24330b4b43d58cf3d5f047854df280d9..0000000000000000000000000000000000000000
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/allocation/entity/AllocationOrderExtra.java
+++ /dev/null
@@ -1,51 +0,0 @@
-package cn.daxpay.single.service.core.order.allocation.entity;
-
-import cn.bootx.platform.common.core.function.EntityBaseFunction;
-import cn.bootx.platform.common.mybatisplus.base.MpBaseEntity;
-import cn.bootx.table.modify.annotation.DbColumn;
-import cn.bootx.table.modify.annotation.DbTable;
-import cn.daxpay.single.service.core.order.allocation.convert.AllocationConvert;
-import cn.daxpay.single.service.dto.order.allocation.AllocationOrderExtraDto;
-import com.baomidou.mybatisplus.annotation.FieldStrategy;
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableName;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.experimental.Accessors;
-
-import java.time.LocalDateTime;
-
-/**
- * 分账订单扩展
- * @author xxm
- * @since 2024/5/22
- */
-@EqualsAndHashCode(callSuper = true)
-@Data
-@Accessors(chain = true)
-@DbTable(comment = "分账订单扩展")
-@TableName("pay_allocation_order_extra")
-public class AllocationOrderExtra extends MpBaseEntity implements EntityBaseFunction<AllocationOrderExtraDto> {
-
-    /** 异步通知地址 */
-    @DbColumn(comment = "异步通知地址")
-    @TableField(updateStrategy = FieldStrategy.ALWAYS)
-    private String notifyUrl;
-
-    /** 商户扩展参数,回调时会原样返回, 以最后一次为准 */
-    @DbColumn(comment = "商户扩展参数")
-    private String attach;
-
-    /** 请求时间,时间戳转时间 */
-    @DbColumn(comment = "请求时间,传输时间戳")
-    private LocalDateTime reqTime;
-
-    /** 终端ip */
-    @DbColumn(comment = "支付终端ip")
-    private String clientIp;
-
-    @Override
-    public AllocationOrderExtraDto toDto() {
-        return AllocationConvert.CONVERT.convert(this);
-    }
-}
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/allocation/entity/OrderAndDetail.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/allocation/entity/OrderAndDetail.java
index b7e53c2b82914d37a24f05bf2e6c77f871988de1..8981adc32c223e04ca1d3ea86f2b9c549aa27f85 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/allocation/entity/OrderAndDetail.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/allocation/entity/OrderAndDetail.java
@@ -15,7 +15,7 @@ import java.util.List;
 public class OrderAndDetail {
 
     /** 分账订单 */
-    private AllocationOrder order;
+    private AllocOrder order;
     /** 分账订单明细 */
-    private List<AllocationOrderDetail> details;
+    private List<AllocOrderDetail> details;
 }
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/allocation/service/AllocationOrderQueryService.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/allocation/service/AllocOrderQueryService.java
similarity index 50%
rename from daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/allocation/service/AllocationOrderQueryService.java
rename to daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/allocation/service/AllocOrderQueryService.java
index a0fc5b5f3fc188e92f31a94f59ad16535ae369fb..dbdbb911614027944c114b8272f6098d210ee988 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/allocation/service/AllocationOrderQueryService.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/allocation/service/AllocOrderQueryService.java
@@ -6,17 +6,14 @@ import cn.bootx.platform.common.core.rest.dto.LabelValue;
 import cn.bootx.platform.common.core.rest.param.PageParam;
 import cn.bootx.platform.common.core.util.ResultConvertUtil;
 import cn.bootx.platform.common.mybatisplus.util.MpUtil;
-import cn.daxpay.single.code.PayChannelEnum;
-import cn.daxpay.single.service.core.order.allocation.dao.AllocationOrderDetailManager;
-import cn.daxpay.single.service.core.order.allocation.dao.AllocationOrderExtraManager;
+import cn.daxpay.single.core.code.PayChannelEnum;
+import cn.daxpay.single.service.core.order.allocation.dao.AllocOrderDetailManager;
 import cn.daxpay.single.service.core.order.allocation.dao.AllocationOrderManager;
-import cn.daxpay.single.service.core.order.allocation.entity.AllocationOrder;
-import cn.daxpay.single.service.core.order.allocation.entity.AllocationOrderDetail;
-import cn.daxpay.single.service.core.order.allocation.entity.AllocationOrderExtra;
+import cn.daxpay.single.service.core.order.allocation.entity.AllocOrder;
+import cn.daxpay.single.service.core.order.allocation.entity.AllocOrderDetail;
+import cn.daxpay.single.service.dto.order.allocation.AllocOrderDto;
 import cn.daxpay.single.service.dto.order.allocation.AllocationOrderDetailDto;
-import cn.daxpay.single.service.dto.order.allocation.AllocationOrderDto;
-import cn.daxpay.single.service.dto.order.allocation.AllocationOrderExtraDto;
-import cn.daxpay.single.service.param.order.AllocationOrderQuery;
+import cn.daxpay.single.service.param.order.AllocOrderQuery;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
@@ -32,11 +29,11 @@ import java.util.List;
 @Slf4j
 @Service
 @RequiredArgsConstructor
-public class AllocationOrderQueryService {
+public class AllocOrderQueryService {
+
+    private final AllocOrderDetailManager allocOrderDetailManager;
 
-    private final AllocationOrderDetailManager allocationOrderDetailManager;
     private final AllocationOrderManager allocationOrderManager;
-    private final AllocationOrderExtraManager allocationOrderExtraManager;
 
     /**
      * 获取可以分账的通道
@@ -51,43 +48,36 @@ public class AllocationOrderQueryService {
     /**
      * 分页查询
      */
-    public PageResult<AllocationOrderDto> page(PageParam pageParam, AllocationOrderQuery param){
+    public PageResult<AllocOrderDto> page(PageParam pageParam, AllocOrderQuery param){
         return MpUtil.convert2DtoPageResult(allocationOrderManager.page(pageParam, param));
     }
 
     /**
      * 查询详情
      */
-    public AllocationOrderDto findById(Long id) {
-        return allocationOrderManager.findById(id).map(AllocationOrder::toDto).orElseThrow(() -> new DataNotExistException("分账订单不存在"));
+    public AllocOrderDto findById(Long id) {
+        return allocationOrderManager.findById(id).map(AllocOrder::toDto).orElseThrow(() -> new DataNotExistException("分账订单不存在"));
     }
 
     /**
      * 查询详情
      */
-    public AllocationOrderDto findByAllocNo(String allocNo) {
-        return allocationOrderManager.findByAllocationNo(allocNo).map(AllocationOrder::toDto).orElseThrow(() -> new DataNotExistException("分账订单不存在"));
+    public AllocOrderDto findByAllocNo(String allocNo) {
+        return allocationOrderManager.findByAllocNo(allocNo).map(AllocOrder::toDto).orElseThrow(() -> new DataNotExistException("分账订单不存在"));
     }
 
     /**
      * 查询订单明细列表
      */
     public List<AllocationOrderDetailDto> findDetailsByOrderId(Long orderId){
-        return ResultConvertUtil.dtoListConvert(allocationOrderDetailManager.findAllByOrderId(orderId));
+        return ResultConvertUtil.dtoListConvert(allocOrderDetailManager.findAllByOrderId(orderId));
     }
 
     /**
      * 查询订单明细详情
      */
     public AllocationOrderDetailDto findDetailById(Long id){
-        return allocationOrderDetailManager.findById(id).map(AllocationOrderDetail::toDto).orElseThrow(() -> new DataNotExistException("分账订单明细不存在"));
+        return allocOrderDetailManager.findById(id).map(AllocOrderDetail::toDto).orElseThrow(() -> new DataNotExistException("分账订单明细不存在"));
     }
 
-    /**
-     * 查询扩展订单信息
-     */
-    public AllocationOrderExtraDto findExtraById(Long id) {
-        return allocationOrderExtraManager.findById(id).map(AllocationOrderExtra::toDto)
-                .orElseThrow(() -> new DataNotExistException("未找到"));
-    }
 }
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/allocation/service/AllocationOrderService.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/allocation/service/AllocOrderService.java
similarity index 71%
rename from daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/allocation/service/AllocationOrderService.java
rename to daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/allocation/service/AllocOrderService.java
index c6cf4b27cec9b3f3d7f2a3d0f133a13885c5c057..91ca22559f0e9af63d737c9172ffeeddf3f17971 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/allocation/service/AllocationOrderService.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/allocation/service/AllocOrderService.java
@@ -1,26 +1,23 @@
 package cn.daxpay.single.service.core.order.allocation.service;
 
-import cn.daxpay.single.code.AllocDetailResultEnum;
-import cn.daxpay.single.code.AllocOrderStatusEnum;
-import cn.daxpay.single.code.PayOrderAllocStatusEnum;
-import cn.daxpay.single.exception.pay.PayFailureException;
-import cn.daxpay.single.param.payment.allocation.AllocReceiverParam;
-import cn.daxpay.single.param.payment.allocation.AllocationParam;
-import cn.daxpay.single.service.common.context.NoticeLocal;
-import cn.daxpay.single.service.common.local.PaymentContextLocal;
-import cn.daxpay.single.service.core.order.allocation.dao.AllocationOrderDetailManager;
-import cn.daxpay.single.service.core.order.allocation.dao.AllocationOrderExtraManager;
+import cn.bootx.platform.common.core.exception.ValidationFailedException;
+import cn.daxpay.single.core.code.AllocDetailResultEnum;
+import cn.daxpay.single.core.code.AllocOrderResultEnum;
+import cn.daxpay.single.core.code.AllocOrderStatusEnum;
+import cn.daxpay.single.core.code.PayOrderAllocStatusEnum;
+import cn.daxpay.single.core.param.payment.allocation.AllocReceiverParam;
+import cn.daxpay.single.core.param.payment.allocation.AllocationParam;
+import cn.daxpay.single.core.util.OrderNoGenerateUtil;
+import cn.daxpay.single.service.core.order.allocation.dao.AllocOrderDetailManager;
 import cn.daxpay.single.service.core.order.allocation.dao.AllocationOrderManager;
-import cn.daxpay.single.service.core.order.allocation.entity.AllocationOrder;
-import cn.daxpay.single.service.core.order.allocation.entity.AllocationOrderDetail;
-import cn.daxpay.single.service.core.order.allocation.entity.AllocationOrderExtra;
+import cn.daxpay.single.service.core.order.allocation.entity.AllocOrder;
+import cn.daxpay.single.service.core.order.allocation.entity.AllocOrderDetail;
 import cn.daxpay.single.service.core.order.allocation.entity.OrderAndDetail;
 import cn.daxpay.single.service.core.order.pay.dao.PayOrderManager;
 import cn.daxpay.single.service.core.order.pay.entity.PayOrder;
 import cn.daxpay.single.service.core.payment.allocation.dao.AllocationReceiverManager;
 import cn.daxpay.single.service.core.payment.allocation.entity.AllocationReceiver;
 import cn.daxpay.single.service.dto.allocation.AllocationGroupReceiverResult;
-import cn.daxpay.single.util.OrderNoGenerateUtil;
 import cn.hutool.core.util.IdUtil;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
@@ -43,17 +40,15 @@ import java.util.stream.Collectors;
 @Slf4j
 @Service
 @RequiredArgsConstructor
-public class AllocationOrderService {
+public class AllocOrderService {
     private final AllocationReceiverManager receiverManager;
 
     private final AllocationOrderManager allocationOrderManager;
 
-    private final AllocationOrderDetailManager allocationOrderDetailManager;
+    private final AllocOrderDetailManager allocOrderDetailManager;
 
     private final PayOrderManager payOrderManager;
 
-    private final AllocationOrderExtraManager allocationOrderExtraManager;
-
 
     /**
      * 生成分账订单, 根据分账组创建
@@ -61,7 +56,7 @@ public class AllocationOrderService {
     @Transactional(rollbackFor = Exception.class)
     public OrderAndDetail createAndUpdate(AllocationParam param, PayOrder payOrder, List<AllocationGroupReceiverResult> receiversByGroups){
         // 订单明细
-        List<AllocationOrderDetail> details = receiversByGroups.stream()
+        List<AllocOrderDetail> details = receiversByGroups.stream()
                 .map(o -> {
                     // 计算分账金额, 小数部分直接舍弃, 防止分账金额超过上限
                     Integer rate = o.getRate();
@@ -70,7 +65,7 @@ public class AllocationOrderService {
                             .multiply(BigDecimal.valueOf(rate))
                             .divide(BigDecimal.valueOf(10000), 0, RoundingMode.DOWN).intValue();
 
-                    AllocationOrderDetail detail = new AllocationOrderDetail()
+                    AllocOrderDetail detail = new AllocOrderDetail()
                             .setReceiverNo(o.getReceiverNo())
                             .setReceiverId(o.getId())
                             .setAmount(amount)
@@ -102,7 +97,7 @@ public class AllocationOrderService {
                 .distinct()
                 .collect(Collectors.toList());
         if (receiverNos.size() != param.getReceivers().size()){
-            throw new PayFailureException("分账接收方编号重复");
+            throw new ValidationFailedException("分账接收方编号重复");
         }
         Map<String, Integer> receiverNoMap = param.getReceivers()
                 .stream()
@@ -110,27 +105,27 @@ public class AllocationOrderService {
         // 查询分账接收方信息
         List<AllocationReceiver> receivers = receiverManager.findAllByReceiverNos(receiverNos);
         if (receivers.size() != receiverNos.size()){
-            throw new PayFailureException("分账接收方列表存在重复或无效的数据");
+            throw new ValidationFailedException("分账接收方列表存在重复或无效的数据");
         }
         // 判断分账接收方类型是否都与分账订单类型匹配
         boolean anyMatch = receivers.stream()
                 .anyMatch(o -> !Objects.equals(o.getChannel(), payOrder.getChannel()));
         if (anyMatch){
-            throw new PayFailureException("分账接收方列表存在非本通道的数据");
+            throw new ValidationFailedException("分账接收方列表存在非本通道的数据");
         }
 
 
         long allocId = IdUtil.getSnowflakeNextId();
 
         // 订单明细
-        List<AllocationOrderDetail> details = receivers.stream()
+        List<AllocOrderDetail> details = receivers.stream()
                 .map(o -> {
                     // 计算分账比例, 不是很精确
                     Integer amount = receiverNoMap.get(o.getReceiverNo());
                     Integer rate = BigDecimal.valueOf(amount)
                             .divide(BigDecimal.valueOf(payOrder.getAmount()), 4, RoundingMode.DOWN)
                             .multiply(BigDecimal.valueOf(10000)).intValue();
-                    AllocationOrderDetail detail = new AllocationOrderDetail();
+                    AllocOrderDetail detail = new AllocOrderDetail();
                     detail.setAllocationId(allocId)
                             .setReceiverId(o.getId())
                             .setReceiverNo(o.getReceiverNo())
@@ -149,50 +144,46 @@ public class AllocationOrderService {
     /**
      * 保存分账相关订单信息
      */
-    private OrderAndDetail saveAllocOrder(AllocationParam param, PayOrder payOrder, List<AllocationOrderDetail> details ) {
+    private OrderAndDetail saveAllocOrder(AllocationParam param, PayOrder payOrder, List<AllocOrderDetail> details ) {
         long allocId = IdUtil.getSnowflakeNextId();
         // 分账明细设置ID
         details.forEach(o -> o.setAllocationId(allocId));
         // 求分账的总额
         Integer sumAmount = details.stream()
-                .map(AllocationOrderDetail::getAmount)
+                .map(AllocOrderDetail::getAmount)
                 .reduce(0, Integer::sum);
         // 分账订单
-        AllocationOrder allocationOrder = new AllocationOrder()
+        AllocOrder allocOrder = new AllocOrder()
                 .setOrderId(payOrder.getId())
                 .setOrderNo(payOrder.getOrderNo())
                 .setBizOrderNo(payOrder.getBizOrderNo())
                 .setOutOrderNo(payOrder.getOutOrderNo())
                 .setTitle(payOrder.getTitle())
-                .setAllocationNo(OrderNoGenerateUtil.allocation())
-                .setBizAllocationNo(param.getBizAllocationNo())
+                .setAllocNo(OrderNoGenerateUtil.allocation())
+                .setBizAllocNo(param.getBizAllocNo())
                 .setChannel(payOrder.getChannel())
                 .setDescription(param.getDescription())
                 .setStatus(AllocOrderStatusEnum.ALLOCATION_PROCESSING.getCode())
-                .setAmount(sumAmount);
+                .setResult(AllocOrderResultEnum.ALL_PENDING.getCode())
+                .setAmount(sumAmount)
+                .setNotifyUrl(param.getNotifyUrl())
+                .setAttach(param.getAttach())
+                .setClientIp(param.getClientIp());
         // 如果分账订单金额为0, 设置为忽略状态
         if (sumAmount == 0){
-            allocationOrder.setStatus(AllocOrderStatusEnum.IGNORE.getCode())
+            allocOrder.setStatus(AllocOrderStatusEnum.IGNORE.getCode())
                     .setFinishTime(LocalDateTime.now())
                     .setResult(AllocOrderStatusEnum.ALLOCATION_FAILED.getCode())
                     .setErrorMsg("分账比例有误或金额太小, 无法进行分账");
         }
 
-        allocationOrder.setId(allocId);
-        // 分账订单扩展
-        NoticeLocal noticeInfo = PaymentContextLocal.get().getNoticeInfo();
-        AllocationOrderExtra extend = new AllocationOrderExtra()
-                .setNotifyUrl(noticeInfo.getNotifyUrl())
-                .setAttach(param.getAttach());
-        extend.setId(allocId);
-
+        allocOrder.setId(allocId);
         // 更新支付订单分账状态
-        payOrder.setAllocationStatus(PayOrderAllocStatusEnum.ALLOCATION.getCode());
+        payOrder.setAllocStatus(PayOrderAllocStatusEnum.ALLOCATION.getCode());
         payOrderManager.updateById(payOrder);
-        allocationOrderDetailManager.saveAll(details);
-        allocationOrderExtraManager.save(extend);
-        allocationOrderManager.save(allocationOrder);
-        return new OrderAndDetail().setOrder(allocationOrder).setDetails(details);
+        allocOrderDetailManager.saveAll(details);
+        allocationOrderManager.save(allocOrder);
+        return new OrderAndDetail().setOrder(allocOrder).setDetails(details);
     }
 }
 
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/pay/builder/PayBuilder.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/pay/builder/PayBuilder.java
deleted file mode 100644
index f6ae4a65bdd418be4f796ce45be2166f7a2e06ea..0000000000000000000000000000000000000000
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/pay/builder/PayBuilder.java
+++ /dev/null
@@ -1,76 +0,0 @@
-package cn.daxpay.single.service.core.order.pay.builder;
-
-import cn.daxpay.single.code.PayOrderAllocStatusEnum;
-import cn.daxpay.single.code.PayStatusEnum;
-import cn.daxpay.single.param.payment.pay.PayParam;
-import cn.daxpay.single.service.common.context.NoticeLocal;
-import cn.daxpay.single.service.common.local.PaymentContextLocal;
-import cn.daxpay.single.service.core.order.pay.entity.PayOrder;
-import cn.daxpay.single.service.core.order.pay.entity.PayOrderExtra;
-import cn.daxpay.single.util.OrderNoGenerateUtil;
-import cn.hutool.core.collection.CollUtil;
-import cn.hutool.json.JSONUtil;
-import lombok.experimental.UtilityClass;
-
-import java.time.LocalDateTime;
-
-/**
- * 支付对象构建器
- *
- * @author xxm
- * @since 2021/2/25
- */
-@UtilityClass
-public class PayBuilder {
-
-    /**
-     * 构建支付订单
-     */
-    public PayOrder buildPayOrder(PayParam payParam) {
-        // 订单超时时间
-        LocalDateTime expiredTime = PaymentContextLocal.get()
-                .getPayInfo()
-                .getExpiredTime();
-        // 构建支付订单对象
-        PayOrder payOrder = new PayOrder()
-                .setBizOrderNo(payParam.getBizOrderNo())
-                .setOrderNo(OrderNoGenerateUtil.pay())
-                .setTitle(payParam.getTitle())
-                .setDescription(payParam.getDescription())
-                .setStatus(PayStatusEnum.PROGRESS.getCode())
-                .setAllocation(payParam.getAllocation())
-                .setAmount(payParam.getAmount())
-                .setChannel(payParam.getChannel())
-                .setMethod(payParam.getMethod())
-                .setExpiredTime(expiredTime)
-                .setRefundableBalance(payParam.getAmount());
-        // 如果支持分账, 设置分账状态为代分账
-        if (payOrder.getAllocation()) {
-            payOrder.setAllocationStatus(PayOrderAllocStatusEnum.WAITING.getCode());
-        }
-        return payOrder;
-    }
-
-    /**
-     * 构建支付订单的额外信息
-     * @param payParam 支付参数
-     * @param payOrderId 支付订单id
-     */
-    public PayOrderExtra buildPayOrderExtra(PayParam payParam, Long payOrderId) {
-        NoticeLocal noticeInfo = PaymentContextLocal.get().getNoticeInfo();
-        PayOrderExtra payOrderExtra = new PayOrderExtra()
-                .setClientIp(payParam.getClientIp())
-                .setNotifyUrl(noticeInfo.getNotifyUrl())
-                .setReturnUrl(noticeInfo.getReturnUrl())
-                .setAttach(payParam.getAttach())
-                .setReqTime(payParam.getReqTime());
-        // 扩展参数
-        if (CollUtil.isNotEmpty(payParam.getExtraParam())) {
-            payOrderExtra.setExtraParam(JSONUtil.toJsonStr(payParam.getExtraParam()));
-        }
-
-        payOrderExtra.setId(payOrderId);
-        return payOrderExtra;
-    }
-
-}
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/pay/convert/PayOrderConvert.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/pay/convert/PayOrderConvert.java
index b7fb14ebf0878d1f3f95b29f1a3339b26cb9444c..3e9ef06ef9fd6d4b954e4315fd9e7cf0ed4ff86e 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/pay/convert/PayOrderConvert.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/pay/convert/PayOrderConvert.java
@@ -1,11 +1,9 @@
 package cn.daxpay.single.service.core.order.pay.convert;
 
-import cn.daxpay.single.result.order.PayOrderResult;
+import cn.daxpay.single.core.result.order.PayOrderResult;
 import cn.daxpay.single.service.core.order.pay.entity.PayOrder;
-import cn.daxpay.single.service.core.order.pay.entity.PayOrderExtra;
 import cn.daxpay.single.service.core.payment.notice.result.PayNoticeResult;
 import cn.daxpay.single.service.dto.order.pay.PayOrderDto;
-import cn.daxpay.single.service.dto.order.pay.PayOrderExtraDto;
 import org.mapstruct.Mapper;
 import org.mapstruct.factory.Mappers;
 
@@ -18,8 +16,6 @@ import org.mapstruct.factory.Mappers;
 public interface PayOrderConvert {
     PayOrderConvert CONVERT = Mappers.getMapper(PayOrderConvert.class);
 
-    PayOrderExtraDto convert(PayOrderExtra in);
-
     PayOrderDto convert(PayOrder in);
 
     PayOrderResult convertResult(PayOrder in);
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/pay/dao/PayOrderExtraManager.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/pay/dao/PayOrderExtraManager.java
deleted file mode 100644
index 890960263076d6f4e364db933b5b6224da837e49..0000000000000000000000000000000000000000
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/pay/dao/PayOrderExtraManager.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package cn.daxpay.single.service.core.order.pay.dao;
-
-import cn.bootx.platform.common.mybatisplus.impl.BaseManager;
-import cn.daxpay.single.service.core.order.pay.entity.PayOrderExtra;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Repository;
-
-/**
- * 支付订单扩展信息
- * @author xxm
- * @since 2023/12/20
- */
-@Slf4j
-@Repository
-@RequiredArgsConstructor
-public class PayOrderExtraManager extends BaseManager<PayOrderExtraMapper, PayOrderExtra> {
-}
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/pay/dao/PayOrderExtraMapper.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/pay/dao/PayOrderExtraMapper.java
deleted file mode 100644
index f8b3c2e08ab91ff9ec42b4685c7047309a5e8865..0000000000000000000000000000000000000000
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/pay/dao/PayOrderExtraMapper.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package cn.daxpay.single.service.core.order.pay.dao;
-
-import cn.daxpay.single.service.core.order.pay.entity.PayOrderExtra;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import org.apache.ibatis.annotations.Mapper;
-
-/**
- * 支付订单扩展信息
- * @author xxm
- * @since 2023/12/20
- */
-@Mapper
-public interface PayOrderExtraMapper extends BaseMapper<PayOrderExtra> {
-}
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/pay/dao/PayOrderManager.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/pay/dao/PayOrderManager.java
index 2c36ca5e0558e6803b8f728b14c2f7e9e708538a..84d0b36e6dfecd2c347da4141ac2bb6b16af0f77 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/pay/dao/PayOrderManager.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/pay/dao/PayOrderManager.java
@@ -4,8 +4,8 @@ import cn.bootx.platform.common.core.rest.param.PageParam;
 import cn.bootx.platform.common.mybatisplus.impl.BaseManager;
 import cn.bootx.platform.common.mybatisplus.util.MpUtil;
 import cn.bootx.platform.common.query.generator.QueryGenerator;
-import cn.daxpay.single.code.PayOrderAllocStatusEnum;
-import cn.daxpay.single.code.PayStatusEnum;
+import cn.daxpay.single.core.code.PayOrderAllocStatusEnum;
+import cn.daxpay.single.core.code.PayStatusEnum;
 import cn.daxpay.single.service.core.order.pay.entity.PayOrder;
 import cn.daxpay.single.service.param.order.PayOrderQuery;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -15,7 +15,6 @@ import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Repository;
 
 import java.time.LocalDateTime;
-import java.util.Arrays;
 import java.util.List;
 import java.util.Optional;
 
@@ -58,14 +57,10 @@ public class PayOrderManager extends BaseManager<PayOrderMapper, PayOrder> {
      * 查询对账用订单记录(指定时间和状态的订单)
      */
     public List<PayOrder> findReconcile(String channel, LocalDateTime startTime, LocalDateTime endTime) {
-        List<String> status = Arrays.asList(PayStatusEnum.SUCCESS.getCode(),
-                PayStatusEnum.PARTIAL_REFUND.getCode(),
-                PayStatusEnum.REFUNDING.getCode(),
-                PayStatusEnum.REFUNDED.getCode());
         return this.lambdaQuery()
                 .eq(PayOrder::getChannel, channel)
                 .between(PayOrder::getPayTime, startTime, endTime)
-                .in(PayOrder::getStatus, status)
+                .eq(PayOrder::getStatus, PayStatusEnum.SUCCESS.getCode())
                 .list();
     }
 
@@ -73,15 +68,11 @@ public class PayOrderManager extends BaseManager<PayOrderMapper, PayOrder> {
      * 查询自动分账的订单记录(指定时间和状态的订单)
      */
     public List<PayOrder> findAutoAllocation() {
-        List<String> status = Arrays.asList(PayStatusEnum.SUCCESS.getCode(),
-                PayStatusEnum.PARTIAL_REFUND.getCode(),
-                PayStatusEnum.REFUNDING.getCode(),
-                PayStatusEnum.REFUNDED.getCode());
         return this.lambdaQuery()
                 .eq(PayOrder::getAllocation, true)
                 .eq(PayOrder::getAutoAllocation, true)
-                .eq(PayOrder::getAllocationStatus, PayOrderAllocStatusEnum.WAITING.getCode())
-                .in(PayOrder::getStatus, status)
+                .eq(PayOrder::getAllocStatus, PayOrderAllocStatusEnum.WAITING.getCode())
+                .eq(PayOrder::getStatus, PayStatusEnum.SUCCESS.getCode())
                 .list();
     }
 
@@ -90,13 +81,7 @@ public class PayOrderManager extends BaseManager<PayOrderMapper, PayOrder> {
      */
     public Integer getTalAmount(PayOrderQuery query){
         QueryWrapper<PayOrder> generator = QueryGenerator.generator(query);
-        // 成功, 退款相关都算
-        generator.in(MpUtil.getColumnName(PayOrder::getStatus),
-                PayStatusEnum.SUCCESS.getCode(),
-                PayStatusEnum.REFUNDED.getCode(),
-                PayStatusEnum.REFUNDING.getCode(),
-                PayStatusEnum.PARTIAL_REFUND.getCode()
-        );
+        generator.eq(MpUtil.getColumnName(PayOrder::getStatus), PayStatusEnum.SUCCESS.getCode());
         return baseMapper.getTalAmount(generator);
     }
 
@@ -105,7 +90,7 @@ public class PayOrderManager extends BaseManager<PayOrderMapper, PayOrder> {
      */
     public List<PayOrder> queryExpiredOrder() {
         return lambdaQuery()
-                .eq(PayOrder::getStatus, PayStatusEnum.REFUNDING.getCode())
+                .eq(PayOrder::getStatus, PayStatusEnum.PROGRESS.getCode())
                 .lt(PayOrder::getExpiredTime, LocalDateTime.now())
                 .list();
     }
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/pay/entity/PayOrder.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/pay/entity/PayOrder.java
index 6bb7e72ffd0e134b33acf598f385b3586936f0c7..a5c82fe143138be8def6bec8810e09905500bf44 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/pay/entity/PayOrder.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/pay/entity/PayOrder.java
@@ -2,15 +2,15 @@ package cn.daxpay.single.service.core.order.pay.entity;
 
 import cn.bootx.platform.common.core.function.EntityBaseFunction;
 import cn.bootx.platform.common.mybatisplus.base.MpBaseEntity;
-import cn.daxpay.single.code.PayOrderAllocStatusEnum;
-import cn.daxpay.single.code.PayChannelEnum;
-import cn.daxpay.single.code.PayStatusEnum;
-import cn.daxpay.single.service.core.order.pay.convert.PayOrderConvert;
-import cn.daxpay.single.service.dto.order.pay.PayOrderDto;
 import cn.bootx.table.modify.annotation.DbColumn;
 import cn.bootx.table.modify.annotation.DbTable;
 import cn.bootx.table.modify.mysql.annotation.DbMySqlIndex;
-import cn.bootx.table.modify.mysql.constants.MySqlIndexType;
+import cn.daxpay.single.core.code.*;
+import cn.daxpay.single.core.param.channel.AliPayParam;
+import cn.daxpay.single.core.param.channel.WalletPayParam;
+import cn.daxpay.single.core.param.channel.WeChatPayParam;
+import cn.daxpay.single.service.core.order.pay.convert.PayOrderConvert;
+import cn.daxpay.single.service.dto.order.pay.PayOrderDto;
 import com.baomidou.mybatisplus.annotation.FieldStrategy;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
@@ -34,25 +34,27 @@ import java.util.Objects;
 public class PayOrder extends MpBaseEntity implements EntityBaseFunction<PayOrderDto> {
 
     /** 商户订单号 */
-    @DbMySqlIndex(comment = "商户订单号索引",type = MySqlIndexType.UNIQUE)
-    @DbColumn(comment = "商户订单号")
+    @DbMySqlIndex(comment = "商户订单号索引")
+    @DbColumn(comment = "商户订单号", length = 100, isNull = false)
     private String bizOrderNo;
 
-    @DbColumn(comment = "支付订单号")
+    @DbMySqlIndex(comment = "支付订单号索引")
+    @DbColumn(comment = "支付订单号", length = 32, isNull = false)
     private String orderNo;
 
     /**
      *  通道系统交易号
      */
-    @DbColumn(comment = "通道支付订单号")
+    @DbMySqlIndex(comment = "通道支付订单索引")
+    @DbColumn(comment = "通道支付订单号", length = 150)
     private String outOrderNo;
 
     /** 标题 */
-    @DbColumn(comment = "标题")
+    @DbColumn(comment = "标题", length = 100, isNull = false)
     private String title;
 
     /** 描述 */
-    @DbColumn(comment = "描述")
+    @DbColumn(comment = "描述",length = 500)
     private String description;
 
     /** 是否支持分账 */
@@ -66,36 +68,45 @@ public class PayOrder extends MpBaseEntity implements EntityBaseFunction<PayOrde
      * 支付通道
      * @see PayChannelEnum
      */
-    @DbColumn(comment = "异步支付通道")
+    @DbColumn(comment = "异步支付通道", length = 20, isNull = false)
     private String channel;
 
     /**
      * 支付方式
+     * @see PayMethodEnum
      */
-    @DbColumn(comment = "支付方式")
+    @DbColumn(comment = "支付方式", length = 20, isNull = false)
     private String method;
 
     /** 金额 */
-    @DbColumn(comment = "金额")
+    @DbColumn(comment = "金额", length = 8, isNull = false)
     private Integer amount;
 
     /** 可退款余额 */
-    @DbColumn(comment = "可退款余额")
+    @DbColumn(comment = "可退款余额", length = 8, isNull = false)
     private Integer refundableBalance;
 
     /**
      * 支付状态
      * @see PayStatusEnum
      */
-    @DbColumn(comment = "支付状态")
+    @DbColumn(comment = "支付状态", length = 20, isNull = false)
     private String status;
 
+    /**
+     * 退款状态
+     * @see PayOrderRefundStatusEnum
+     */
+    @DbColumn(comment = "退款状态", length = 20, isNull = false)
+    @TableField(updateStrategy = FieldStrategy.ALWAYS)
+    private String refundStatus;
+
     /**
      * 分账状态
      * @see PayOrderAllocStatusEnum
      */
-    @DbColumn(comment = "分账状态")
-    private String allocationStatus;
+    @DbColumn(comment = "分账状态", length = 20)
+    private String allocStatus;
 
     /** 支付时间 */
     @DbColumn(comment = "支付时间")
@@ -112,18 +123,47 @@ public class PayOrder extends MpBaseEntity implements EntityBaseFunction<PayOrde
     private LocalDateTime expiredTime;
 
     /** 错误码 */
-    @DbColumn(comment = "错误码")
+    @DbColumn(comment = "错误码", length = 10)
     @TableField(updateStrategy = FieldStrategy.ALWAYS)
     private String errorCode;
 
     /** 错误信息 */
-    @DbColumn(comment = "错误信息")
+    @DbColumn(comment = "错误信息", length = 2048)
     @TableField(updateStrategy = FieldStrategy.ALWAYS)
     private String errorMsg;
 
+    /** 同步跳转地址, 以最后一次为准 */
+    @DbColumn(comment = "同步跳转地址", length = 200)
+    @TableField(updateStrategy = FieldStrategy.ALWAYS)
+    private String returnUrl;
+
+    /** 异步通知地址,以最后一次为准 */
+    @DbColumn(comment = "异步通知地址", length = 200)
+    @TableField(updateStrategy = FieldStrategy.ALWAYS)
+    private String notifyUrl;
+
     /**
-     * 如果
+     * 附加参数 以最后一次为准
+     * @see AliPayParam
+     * @see WeChatPayParam
+     * @see WalletPayParam
      */
+    @DbColumn(comment = "附加参数", length = 2048)
+    @TableField(updateStrategy = FieldStrategy.ALWAYS)
+    private String extraParam;
+
+    /** 商户扩展参数,回调时会原样返回, 以最后一次为准 */
+    @DbColumn(comment = "商户扩展参数", length = 500)
+    private String attach;
+
+    /** 请求时间,时间戳转时间, 以最后一次为准 */
+    @DbColumn(comment = "请求时间")
+    private LocalDateTime reqTime;
+
+    /** 支付终端ip 以最后一次为准 */
+    @DbColumn(comment = "支付终端ip", length = 64)
+    private String clientIp;
+
     public Boolean getAllocation() {
         return Objects.equals(this.allocation, true);
     }
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/pay/entity/PayOrderExtra.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/pay/entity/PayOrderExtra.java
deleted file mode 100644
index 404e3fbf46711b90ed9da1c6e9c79ab63dc9fa4b..0000000000000000000000000000000000000000
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/pay/entity/PayOrderExtra.java
+++ /dev/null
@@ -1,73 +0,0 @@
-package cn.daxpay.single.service.core.order.pay.entity;
-
-
-import cn.bootx.platform.common.core.function.EntityBaseFunction;
-import cn.bootx.platform.common.mybatisplus.base.MpBaseEntity;
-import cn.daxpay.single.param.channel.AliPayParam;
-import cn.daxpay.single.param.channel.WalletPayParam;
-import cn.daxpay.single.param.channel.WeChatPayParam;
-import cn.daxpay.single.service.core.order.pay.convert.PayOrderConvert;
-import cn.daxpay.single.service.dto.order.pay.PayOrderExtraDto;
-import cn.bootx.table.modify.annotation.DbColumn;
-import cn.bootx.table.modify.annotation.DbTable;
-import com.baomidou.mybatisplus.annotation.FieldStrategy;
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableName;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.experimental.Accessors;
-
-import java.time.LocalDateTime;
-
-/**
- * 支付订单扩展信息
- * @author xxm
- * @since 2023/12/18
- */
-@EqualsAndHashCode(callSuper = true)
-@Data
-@Accessors(chain = true)
-@DbTable(comment = "支付订单扩展信息")
-@TableName("pay_order_extra")
-public class PayOrderExtra extends MpBaseEntity implements EntityBaseFunction<PayOrderExtraDto> {
-
-    /** 同步跳转地址, 以最后一次为准 */
-    @DbColumn(comment = "同步跳转地址")
-    @TableField(updateStrategy = FieldStrategy.ALWAYS)
-    private String returnUrl;
-
-    /** 异步通知地址,以最后一次为准 */
-    @DbColumn(comment = "异步通知地址")
-    @TableField(updateStrategy = FieldStrategy.ALWAYS)
-    private String notifyUrl;
-
-    /**
-     * 附加参数 以最后一次为准
-     * @see AliPayParam
-     * @see WeChatPayParam
-     * @see WalletPayParam
-     */
-    @DbColumn(comment = "附加参数")
-    @TableField(updateStrategy = FieldStrategy.ALWAYS)
-    private String extraParam;
-
-    /** 商户扩展参数,回调时会原样返回, 以最后一次为准 */
-    @DbColumn(comment = "商户扩展参数")
-    private String attach;
-
-    /** 请求时间,时间戳转时间, 以最后一次为准 */
-    @DbColumn(comment = "请求时间,传输时间戳,以最后一次为准")
-    private LocalDateTime reqTime;
-
-    /** 支付终端ip 以最后一次为准 */
-    @DbColumn(comment = "支付终端ip")
-    private String clientIp;
-
-    /**
-     * 转换
-     */
-    @Override
-    public PayOrderExtraDto toDto() {
-        return PayOrderConvert.CONVERT.convert(this);
-    }
-}
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/pay/service/PayOrderExtraService.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/pay/service/PayOrderExtraService.java
deleted file mode 100644
index 281786ba71331650747e093506546576a78b2e0f..0000000000000000000000000000000000000000
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/pay/service/PayOrderExtraService.java
+++ /dev/null
@@ -1,40 +0,0 @@
-package cn.daxpay.single.service.core.order.pay.service;
-
-import cn.bootx.platform.common.core.exception.DataNotExistException;
-import cn.daxpay.single.service.core.order.pay.dao.PayOrderExtraManager;
-import cn.daxpay.single.service.core.order.pay.entity.PayOrderExtra;
-import cn.daxpay.single.service.dto.order.pay.PayOrderExtraDto;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Propagation;
-import org.springframework.transaction.annotation.Transactional;
-
-/**
- * 支付订单扩展信息
- * @author xxm
- * @since 2024/1/9
- */
-@Slf4j
-@Service
-@RequiredArgsConstructor
-public class PayOrderExtraService {
-    private final PayOrderExtraManager payOrderExtraManager;
-
-    /**
-     * 查询详情
-     */
-    public PayOrderExtraDto findById(Long id){
-        return payOrderExtraManager.findById(id).map(PayOrderExtra::toDto)
-                .orElseThrow(()->new DataNotExistException("支付订单扩展信息不存在"));
-    }
-
-    /**
-     * 更新, 使用单独事务
-     */
-    @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRES_NEW)
-    public void update(PayOrderExtra payOrderExtra){
-        payOrderExtraManager.updateById(payOrderExtra);
-    }
-
-}
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/pay/service/PayOrderQueryService.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/pay/service/PayOrderQueryService.java
index a1ebeccd932d81448860a3586a16a721ac659374..f34f3133287ca1b05d3814cd9121bc6f5b82a1ce 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/pay/service/PayOrderQueryService.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/pay/service/PayOrderQueryService.java
@@ -3,11 +3,11 @@ package cn.daxpay.single.service.core.order.pay.service;
 import cn.bootx.platform.common.core.rest.PageResult;
 import cn.bootx.platform.common.core.rest.param.PageParam;
 import cn.bootx.platform.common.mybatisplus.util.MpUtil;
-import cn.daxpay.single.exception.pay.PayFailureException;
-import cn.daxpay.single.param.payment.pay.QueryPayParam;
-import cn.daxpay.single.result.order.PayOrderResult;
+import cn.bootx.platform.common.core.exception.ValidationFailedException;
+import cn.daxpay.single.core.exception.TradeNotExistException;
+import cn.daxpay.single.core.param.payment.pay.QueryPayParam;
+import cn.daxpay.single.core.result.order.PayOrderResult;
 import cn.daxpay.single.service.core.order.pay.convert.PayOrderConvert;
-import cn.daxpay.single.service.core.order.pay.dao.PayOrderExtraManager;
 import cn.daxpay.single.service.core.order.pay.dao.PayOrderManager;
 import cn.daxpay.single.service.core.order.pay.entity.PayOrder;
 import cn.daxpay.single.service.dto.order.pay.PayOrderDto;
@@ -31,7 +31,6 @@ import java.util.Optional;
 @RequiredArgsConstructor
 public class PayOrderQueryService {
     private final PayOrderManager payOrderManager;
-    private final PayOrderExtraManager payOrderExtraManager;
 
     /**
      * 分页
@@ -81,14 +80,11 @@ public class PayOrderQueryService {
     public PayOrderResult queryPayOrder(QueryPayParam param) {
         // 校验参数
         if (StrUtil.isBlank(param.getBizOrderNoeNo()) && Objects.isNull(param.getOrderNo())){
-            throw new PayFailureException("业务号或支付单ID不能都为空");
+            throw new ValidationFailedException("业务号或支付单ID不能都为空");
         }
         // 查询支付单
         PayOrder payOrder = this.findByBizOrOrderNo(param.getOrderNo(), param.getBizOrderNoeNo())
-                .orElseThrow(() -> new PayFailureException("支付订单不存在"));
-        // 查询扩展数据
-        payOrderExtraManager.findById(payOrder.getId())
-                .orElseThrow(() -> new PayFailureException("支付订单不完整"));
+                .orElseThrow(() -> new TradeNotExistException("支付订单不存在"));
         return PayOrderConvert.CONVERT.convertResult(payOrder);
     }
 
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/pay/service/PayOrderService.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/pay/service/PayOrderService.java
index a0918b9335a94ab937d685e309d0f5d730a306ce..2e959c5f6f19fdef10fbc83215fd018b6082ea56 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/pay/service/PayOrderService.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/pay/service/PayOrderService.java
@@ -1,7 +1,7 @@
 package cn.daxpay.single.service.core.order.pay.service;
 
-import cn.daxpay.single.code.PayChannelEnum;
-import cn.daxpay.single.code.PayStatusEnum;
+import cn.daxpay.single.core.code.PayChannelEnum;
+import cn.daxpay.single.core.code.PayStatusEnum;
 import cn.daxpay.single.service.core.order.pay.dao.PayOrderManager;
 import cn.daxpay.single.service.core.order.pay.entity.PayOrder;
 import cn.daxpay.single.service.core.payment.pay.service.PayExpiredTimeService;
@@ -28,7 +28,10 @@ public class PayOrderService {
     private final PayExpiredTimeService expiredTimeService;
 
     // 支付完成常量集合
-    private final List<String> ORDER_FINISH = Arrays.asList(PayStatusEnum.CLOSE.getCode(), PayStatusEnum.SUCCESS.getCode());
+    private final List<String> ORDER_FINISH = Arrays.asList(
+            PayStatusEnum.CLOSE.getCode(),
+            PayStatusEnum.CANCEL.getCode(),
+            PayStatusEnum.SUCCESS.getCode());
 
     /**
      * 查询
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/reconcile/entity/ReconcileDiff.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/reconcile/entity/ReconcileDiff.java
index 487330b10930e320967a7858a45781c92c613dc2..c89f8e03fccd00d6f0ed40dbbc764d8624ec9854 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/reconcile/entity/ReconcileDiff.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/reconcile/entity/ReconcileDiff.java
@@ -2,8 +2,8 @@ package cn.daxpay.single.service.core.order.reconcile.entity;
 
 import cn.bootx.platform.common.core.function.EntityBaseFunction;
 import cn.bootx.platform.common.mybatisplus.base.MpBaseEntity;
-import cn.daxpay.single.code.PayChannelEnum;
-import cn.daxpay.single.code.ReconcileTradeEnum;
+import cn.daxpay.single.core.code.PayChannelEnum;
+import cn.daxpay.single.core.code.ReconcileTradeEnum;
 import cn.daxpay.single.service.code.ReconcileDiffTypeEnum;
 import cn.daxpay.single.service.common.typehandler.ReconcileDiffTypeHandler;
 import cn.daxpay.single.service.core.order.reconcile.conver.ReconcileConvert;
@@ -36,65 +36,65 @@ import java.util.List;
 public class ReconcileDiff extends MpBaseEntity implements EntityBaseFunction<ReconcileDiffDto> {
 
     /** 对账单ID */
-    @DbColumn(comment = "对账单ID")
+    @DbColumn(comment = "对账单ID", isNull = false)
     private Long reconcileId;
 
     /** 对账号 */
-    @DbColumn(comment = "对账号")
+    @DbColumn(comment = "对账号", length = 32, isNull = false)
     private String reconcileNo;
 
     /** 对账单明细ID */
-    @DbColumn(comment = "对账单明细ID")
+    @DbColumn(comment = "对账单明细ID", isNull = false)
     private Long detailId;
 
     /** 对账日期 */
-    @DbColumn(comment = "对账日期")
+    @DbColumn(comment = "对账日期", isNull = false)
     private LocalDate reconcileDate;
 
     /** 本地交易号 */
-    @DbColumn(comment = "本地交易号")
+    @DbColumn(comment = "本地交易号", length = 32, isNull = false)
     private String tradeNo;
 
     /** 通道交易号 */
-    @DbColumn(comment = "通道交易号")
+    @DbColumn(comment = "通道交易号", length = 150)
     private String outTradeNo;
 
     /** 交易时间 */
-    @DbColumn(comment = "交易时间")
+    @DbColumn(comment = "交易时间", isNull = false)
     private LocalDateTime tradeTime;
 
     /** 订单标题 */
-    @DbColumn(comment = "订单标题")
+    @DbColumn(comment = "订单标题", length = 100)
     private String title;
 
     /**
      * 通道
      * @see PayChannelEnum
      */
-    @DbColumn(comment = "通道")
+    @DbColumn(comment = "通道", length = 20, isNull = false)
     private String channel;
 
     /** 本地交易金额 */
-    @DbColumn(comment = "本地交易金额")
+    @DbColumn(comment = "本地交易金额", length = 15)
     private Integer amount;
 
 
     /** 通道交易金额 */
-    @DbColumn(comment = "通道交易金额")
+    @DbColumn(comment = "通道交易金额", length = 15)
     private Integer outAmount;
 
     /**
      * 交易类型
      * @see ReconcileTradeEnum
      */
-    @DbColumn(comment = "交易类型")
+    @DbColumn(comment = "交易类型", length = 20)
     private String tradeType;
 
     /**
      * 差异类型
      * @see ReconcileDiffTypeEnum
      */
-    @DbColumn(comment = "差异类型")
+    @DbColumn(comment = "差异类型", length = 20)
     private String diffType;
 
     /**
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/reconcile/entity/ReconcileFile.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/reconcile/entity/ReconcileFile.java
index 22b0495e4f094da59102f93c0dc5856f6988e0dd..c81a3b226e6a93fbea36e42fe69f6810ea51ade2 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/reconcile/entity/ReconcileFile.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/reconcile/entity/ReconcileFile.java
@@ -1,6 +1,7 @@
 package cn.daxpay.single.service.core.order.reconcile.entity;
 
 import cn.bootx.platform.common.mybatisplus.base.MpIdEntity;
+import cn.bootx.table.modify.mysql.annotation.DbMySqlIndex;
 import cn.daxpay.single.service.code.ReconcileFileTypeEnum;
 import cn.bootx.table.modify.annotation.DbColumn;
 import cn.bootx.table.modify.annotation.DbTable;
@@ -21,16 +22,17 @@ import lombok.experimental.Accessors;
 @TableName("pay_reconcile_file")
 public class ReconcileFile extends MpIdEntity {
 
-    @DbColumn(comment = "对账单ID")
+    @DbMySqlIndex(comment = "对账单ID索引")
+    @DbColumn(comment = "对账单ID", isNull = false)
     private Long reconcileId;
 
     /**
      * 明细/汇总
      * @see ReconcileFileTypeEnum
      */
-    @DbColumn(comment = "类型")
+    @DbColumn(comment = "类型", length = 20, isNull = false)
     private String type;
 
-    @DbColumn(comment = "对账单文件")
+    @DbColumn(comment = "对账单文件", isNull = false)
     private Long fileId;
 }
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/reconcile/entity/ReconcileOrder.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/reconcile/entity/ReconcileOrder.java
index cebaa22e797ebb4f310c4126505a8eee55d2c772..b18dcf84cc4f8410af826bcf884527a80b3d8423 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/reconcile/entity/ReconcileOrder.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/reconcile/entity/ReconcileOrder.java
@@ -1,13 +1,14 @@
 package cn.daxpay.single.service.core.order.reconcile.entity;
 
 import cn.bootx.platform.common.core.function.EntityBaseFunction;
-import cn.bootx.platform.common.mybatisplus.base.MpCreateEntity;
-import cn.daxpay.single.code.PayChannelEnum;
+import cn.bootx.platform.common.mybatisplus.base.MpBaseEntity;
+import cn.bootx.table.modify.annotation.DbColumn;
+import cn.bootx.table.modify.annotation.DbTable;
+import cn.bootx.table.modify.mysql.annotation.DbMySqlIndex;
+import cn.daxpay.single.core.code.PayChannelEnum;
 import cn.daxpay.single.service.code.ReconcileResultEnum;
 import cn.daxpay.single.service.core.order.reconcile.conver.ReconcileConvert;
 import cn.daxpay.single.service.dto.order.reconcile.ReconcileOrderDto;
-import cn.bootx.table.modify.annotation.DbColumn;
-import cn.bootx.table.modify.annotation.DbTable;
 import com.baomidou.mybatisplus.annotation.FieldStrategy;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
@@ -27,45 +28,46 @@ import java.time.LocalDate;
 @Accessors(chain = true)
 @DbTable(comment = "支付对账单订单")
 @TableName(value = "pay_reconcile_order")
-public class ReconcileOrder extends MpCreateEntity implements EntityBaseFunction<ReconcileOrderDto> {
+public class ReconcileOrder extends MpBaseEntity implements EntityBaseFunction<ReconcileOrderDto> {
 
     /** 对账号 */
-    @DbColumn(comment = "对账号")
+    @DbMySqlIndex(comment = "对账号索引")
+    @DbColumn(comment = "对账号", length = 32, isNull = false)
     private String reconcileNo;
 
     /** 日期 */
-    @DbColumn(comment = "日期")
+    @DbColumn(comment = "日期", isNull = false)
     private LocalDate date;
 
     /**
      * 通道
      * @see PayChannelEnum
      */
-    @DbColumn(comment = "通道")
+    @DbColumn(comment = "通道", length = 20, isNull = false)
     private String channel;
 
     /** 交易对账文件是否下载成功 */
-    @DbColumn(comment = "明细对账单下载")
+    @DbColumn(comment = "明细对账单下载", isNull = false)
     private boolean downOrUpload;
 
     /** 交易对账文件是否比对完成 */
-    @DbColumn(comment = "明细对账单比对")
+    @DbColumn(comment = "明细对账单比对", isNull = false)
     private boolean compare;
 
     /**
      * 交易对账结果
      * @see ReconcileResultEnum
      */
-    @DbColumn(comment = "对账结果")
+    @DbColumn(comment = "对账结果", length = 20)
     private String result;
 
     /** 错误码 */
-    @DbColumn(comment = "错误码")
+    @DbColumn(comment = "错误码", length = 10)
     @TableField(updateStrategy = FieldStrategy.ALWAYS)
     private String errorCode;
 
     /** 错误信息 */
-    @DbColumn(comment = "错误信息")
+    @DbColumn(comment = "错误信息", length = 2048)
     @TableField(updateStrategy = FieldStrategy.ALWAYS)
     private String errorMsg;
 
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/reconcile/entity/ReconcileOutTrade.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/reconcile/entity/ReconcileOutTrade.java
index 4a0f195d98a374f75331dd64ad5cae64c6e7549c..58e04884c91c7926cd0d3b1fde0c7018bd5f6bae 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/reconcile/entity/ReconcileOutTrade.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/reconcile/entity/ReconcileOutTrade.java
@@ -2,6 +2,7 @@ package cn.daxpay.single.service.core.order.reconcile.entity;
 
 import cn.bootx.platform.common.core.function.EntityBaseFunction;
 import cn.bootx.platform.common.mybatisplus.base.MpCreateEntity;
+import cn.bootx.table.modify.mysql.annotation.DbMySqlIndex;
 import cn.daxpay.single.service.code.PaymentTypeEnum;
 import cn.daxpay.single.service.core.order.reconcile.conver.ReconcileConvert;
 import cn.daxpay.single.service.dto.order.reconcile.ReconcileOutTradeDto;
@@ -27,34 +28,35 @@ import java.time.LocalDateTime;
 public class ReconcileOutTrade extends MpCreateEntity implements EntityBaseFunction<ReconcileOutTradeDto> {
 
     /** 关联对账订单ID */
-    @DbColumn(comment = "关联对账订单ID")
+    @DbMySqlIndex(comment = "对账单ID索引")
+    @DbColumn(comment = "关联对账订单ID", isNull = false)
     private Long reconcileId;
 
     /** 商品名称 */
-    @DbColumn(comment = "商品名称")
+    @DbColumn(comment = "商品名称", length = 100, isNull = false)
     private String title;
 
     /** 交易金额 */
-    @DbColumn(comment = "交易金额")
+    @DbColumn(comment = "交易金额", length = 8, isNull = false)
     private Integer amount;
 
     /**
      * 交易类型
      * @see PaymentTypeEnum
      */
-    @DbColumn(comment = "交易类型")
+    @DbColumn(comment = "交易类型", length = 20, isNull = false)
     private String type;
 
     /** 本地交易号 */
-    @DbColumn(comment = "本地交易号")
+    @DbColumn(comment = "本地交易号", length = 32, isNull = false)
     private String tradeNo;
 
     /** 通道交易号 - 支付宝/微信的订单号 */
-    @DbColumn(comment = "通道交易号")
+    @DbColumn(comment = "通道交易号", length = 150)
     private String outTradeNo;
 
     /** 交易时间 */
-    @DbColumn(comment = "交易时间")
+    @DbColumn(comment = "交易时间", isNull = false)
     private LocalDateTime tradeTime;
 
 
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/refund/convert/RefundOrderConvert.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/refund/convert/RefundOrderConvert.java
index bbedd7b4688582e0bcdf47ed26044d7bd37c873a..2591488d2cf4147acd03dbd185340dc12157cadb 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/refund/convert/RefundOrderConvert.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/refund/convert/RefundOrderConvert.java
@@ -1,11 +1,9 @@
 package cn.daxpay.single.service.core.order.refund.convert;
 
-import cn.daxpay.single.result.order.RefundOrderResult;
+import cn.daxpay.single.core.result.order.RefundOrderResult;
 import cn.daxpay.single.service.core.order.refund.entity.RefundOrder;
-import cn.daxpay.single.service.core.order.refund.entity.RefundOrderExtra;
 import cn.daxpay.single.service.core.payment.notice.result.RefundNoticeResult;
 import cn.daxpay.single.service.dto.order.refund.RefundOrderDto;
-import cn.daxpay.single.service.dto.order.refund.RefundOrderExtraDto;
 import org.mapstruct.Mapper;
 import org.mapstruct.factory.Mappers;
 
@@ -20,8 +18,6 @@ public interface RefundOrderConvert {
 
     RefundOrderDto convert(RefundOrder in);
 
-    RefundOrderExtraDto convert(RefundOrderExtra in);
-
     RefundOrderResult convertResult(RefundOrder in);
 
     RefundNoticeResult convertNotice(RefundOrder order);
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/refund/dao/RefundOrderExtraManager.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/refund/dao/RefundOrderExtraManager.java
deleted file mode 100644
index 4a9533c56e6dc1167d4aba4a50f3d0d3c8e41779..0000000000000000000000000000000000000000
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/refund/dao/RefundOrderExtraManager.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package cn.daxpay.single.service.core.order.refund.dao;
-
-import cn.bootx.platform.common.mybatisplus.impl.BaseManager;
-import cn.daxpay.single.service.core.order.refund.entity.RefundOrderExtra;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Repository;
-
-/**
- *
- * @author xxm
- * @since 2024/2/22
- */
-@Slf4j
-@Repository
-@RequiredArgsConstructor
-public class RefundOrderExtraManager extends BaseManager<RefundOrderExtraMapper, RefundOrderExtra> {
-}
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/refund/dao/RefundOrderExtraMapper.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/refund/dao/RefundOrderExtraMapper.java
deleted file mode 100644
index f37ceb8376ff368f77109ce3161922f15d47ff3d..0000000000000000000000000000000000000000
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/refund/dao/RefundOrderExtraMapper.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package cn.daxpay.single.service.core.order.refund.dao;
-
-import cn.daxpay.single.service.core.order.refund.entity.RefundOrderExtra;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import org.apache.ibatis.annotations.Mapper;
-
-/**
- *
- * @author xxm
- * @since 2024/2/22
- */
-@Mapper
-public interface RefundOrderExtraMapper extends BaseMapper<RefundOrderExtra> {
-}
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/refund/dao/RefundOrderManager.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/refund/dao/RefundOrderManager.java
index 4070f6ddb8d8316dc452757cb0e0db6b0b1482e0..24a93f476613658c75626bd3641f1255fb275f28 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/refund/dao/RefundOrderManager.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/refund/dao/RefundOrderManager.java
@@ -4,10 +4,9 @@ import cn.bootx.platform.common.core.rest.param.PageParam;
 import cn.bootx.platform.common.mybatisplus.impl.BaseManager;
 import cn.bootx.platform.common.mybatisplus.util.MpUtil;
 import cn.bootx.platform.common.query.generator.QueryGenerator;
-import cn.daxpay.single.code.PayStatusEnum;
-import cn.daxpay.single.code.RefundStatusEnum;
+import cn.daxpay.single.core.code.PayStatusEnum;
+import cn.daxpay.single.core.code.RefundStatusEnum;
 import cn.daxpay.single.service.core.order.refund.entity.RefundOrder;
-import cn.daxpay.single.service.param.order.PayOrderQuery;
 import cn.daxpay.single.service.param.order.RefundOrderQuery;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -86,7 +85,7 @@ public class RefundOrderManager extends BaseManager<RefundOrderMapper, RefundOrd
     /**
      * 查询汇总金额
      */
-    public Integer getTalAmount(PayOrderQuery query){
+    public Integer getTalAmount(RefundOrderQuery query){
         QueryWrapper<RefundOrder> generator = QueryGenerator.generator(query);
         generator.eq(MpUtil.getColumnName(RefundOrder::getStatus), PayStatusEnum.SUCCESS.getCode());
         return baseMapper.getTalAmount(generator);
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/refund/entity/RefundOrder.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/refund/entity/RefundOrder.java
index cf2279f0dcd98cd7368e44a0cb967d5551e7af9b..127aa2336a30b88179013301d41e3bd8ba1cb09f 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/refund/entity/RefundOrder.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/refund/entity/RefundOrder.java
@@ -2,12 +2,18 @@ package cn.daxpay.single.service.core.order.refund.entity;
 
 import cn.bootx.platform.common.core.function.EntityBaseFunction;
 import cn.bootx.platform.common.mybatisplus.base.MpBaseEntity;
-import cn.daxpay.single.code.PayChannelEnum;
-import cn.daxpay.single.code.RefundStatusEnum;
-import cn.daxpay.single.service.core.order.refund.convert.RefundOrderConvert;
-import cn.daxpay.single.service.dto.order.refund.RefundOrderDto;
 import cn.bootx.table.modify.annotation.DbColumn;
 import cn.bootx.table.modify.annotation.DbTable;
+import cn.bootx.table.modify.mysql.annotation.DbMySqlIndex;
+import cn.daxpay.single.core.code.PayChannelEnum;
+import cn.daxpay.single.core.code.RefundStatusEnum;
+import cn.daxpay.single.core.param.channel.AliPayParam;
+import cn.daxpay.single.core.param.channel.WalletPayParam;
+import cn.daxpay.single.core.param.channel.WeChatPayParam;
+import cn.daxpay.single.service.core.order.refund.convert.RefundOrderConvert;
+import cn.daxpay.single.service.dto.order.refund.RefundOrderDto;
+import com.baomidou.mybatisplus.annotation.FieldStrategy;
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
@@ -28,54 +34,61 @@ import java.time.LocalDateTime;
 public class RefundOrder extends MpBaseEntity implements EntityBaseFunction<RefundOrderDto> {
 
     /** 支付订单ID */
-    @DbColumn(comment = "支付订单ID")
+    @DbMySqlIndex(comment = "支付订单ID索引")
+    @DbColumn(comment = "支付订单ID", isNull = false)
     private Long orderId;
 
     /** 支付订单号 */
-    @DbColumn(comment = "支付订单号")
+    @DbMySqlIndex(comment = "支付订单号索引")
+    @DbColumn(comment = "支付订单号", length = 32, isNull = false)
     private String orderNo;
 
     /** 商户支付订单号 */
-    @DbColumn(comment = "商户支付订单号")
+    @DbMySqlIndex(comment = "商户支付订单号索引")
+    @DbColumn(comment = "商户支付订单号", length = 100, isNull = false)
     private String bizOrderNo;
 
     /** 通道支付订单号 */
-    @DbColumn(comment = "通道支付订单号")
+    @DbMySqlIndex(comment = "通道支付订单号索引")
+    @DbColumn(comment = "通道支付订单号", length = 150, isNull = false)
     private String outOrderNo;
 
     /** 支付标题 */
-    @DbColumn(comment = "支付标题")
+    @DbColumn(comment = "支付标题", length = 100, isNull = false)
     private String title;
 
     /** 退款号 */
-    @DbColumn(comment = "退款号")
+    @DbMySqlIndex(comment = "退款号索引")
+    @DbColumn(comment = "退款号", length = 32, isNull = false)
     private String refundNo;
 
     /** 商户退款号 */
-    @DbColumn(comment = "商户退款号")
+    @DbMySqlIndex(comment = "商户退款号索引")
+    @DbColumn(comment = "商户退款号", length = 100, isNull = false)
     private String bizRefundNo;
 
     /** 通道退款交易号 */
-    @DbColumn(comment = "通道退款交易号")
+    @DbMySqlIndex(comment = "通道退款交易号索引")
+    @DbColumn(comment = "通道退款交易号", length = 150)
     private String outRefundNo;
 
     /**
      * 退款通道
      * @see PayChannelEnum
      */
-    @DbColumn(comment = "支付通道")
+    @DbColumn(comment = "支付通道", length = 20, isNull = false)
     private String channel;
 
     /** 订单金额 */
-    @DbColumn(comment = "订单金额")
+    @DbColumn(comment = "订单金额", length = 8, isNull = false)
     private Integer orderAmount;
 
     /** 退款金额 */
-    @DbColumn(comment = "退款金额")
+    @DbColumn(comment = "退款金额", length = 8, isNull = false)
     private Integer amount;
 
     /** 退款原因 */
-    @DbColumn(comment = "退款原因")
+    @DbColumn(comment = "退款原因", length = 150)
     private String reason;
 
     /** 退款完成时间 */
@@ -86,15 +99,42 @@ public class RefundOrder extends MpBaseEntity implements EntityBaseFunction<Refu
      * 退款状态
      * @see RefundStatusEnum
      */
-    @DbColumn(comment = "退款状态")
+    @DbColumn(comment = "退款状态", length = 20, isNull = false)
     private String status;
 
+    /** 异步通知地址 */
+    @DbColumn(comment = "异步通知地址", length = 200)
+    @TableField(updateStrategy = FieldStrategy.ALWAYS)
+    private String notifyUrl;
+
+    /** 商户扩展参数,回调时会原样返回, 以最后一次为准 */
+    @DbColumn(comment = "商户扩展参数", length = 500)
+    private String attach;
+
+    /**
+     * 附加参数 以最后一次为准
+     * @see AliPayParam
+     * @see WeChatPayParam
+     * @see WalletPayParam
+     */
+    @DbColumn(comment = "附加参数", length = 2048)
+    @TableField(updateStrategy = FieldStrategy.ALWAYS)
+    private String extraParam;
+
+    /** 请求时间,时间戳转时间 */
+    @DbColumn(comment = "请求时间,传输时间戳")
+    private LocalDateTime reqTime;
+
+    /** 终端ip */
+    @DbColumn(comment = "支付终端ip", length = 64)
+    private String clientIp;
+
     /** 错误码 */
-    @DbColumn(comment = "错误码")
+    @DbColumn(comment = "错误码", length = 10)
     private String errorCode;
 
     /** 错误信息 */
-    @DbColumn(comment = "错误信息")
+    @DbColumn(comment = "错误信息", length = 2048)
     private String errorMsg;
 
     @Override
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/refund/entity/RefundOrderExtra.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/refund/entity/RefundOrderExtra.java
deleted file mode 100644
index bf4c2312d6cab356762e1707aa5b29f1bc4de2cd..0000000000000000000000000000000000000000
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/refund/entity/RefundOrderExtra.java
+++ /dev/null
@@ -1,64 +0,0 @@
-package cn.daxpay.single.service.core.order.refund.entity;
-
-import cn.bootx.platform.common.core.function.EntityBaseFunction;
-import cn.bootx.platform.common.mybatisplus.base.MpBaseEntity;
-import cn.daxpay.single.param.channel.AliPayParam;
-import cn.daxpay.single.param.channel.WalletPayParam;
-import cn.daxpay.single.param.channel.WeChatPayParam;
-import cn.daxpay.single.service.core.order.refund.convert.RefundOrderConvert;
-import cn.daxpay.single.service.dto.order.refund.RefundOrderExtraDto;
-import cn.bootx.table.modify.annotation.DbColumn;
-import cn.bootx.table.modify.annotation.DbTable;
-import com.baomidou.mybatisplus.annotation.FieldStrategy;
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableName;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.experimental.Accessors;
-
-import java.time.LocalDateTime;
-
-/**
- * 退款订单扩展信息
- * @author xxm
- * @since 2024/2/21
- */
-@EqualsAndHashCode(callSuper = true)
-@Data
-@Accessors(chain = true)
-@TableName("pay_refund_order_extra")
-@DbTable(comment = "退款订单扩展信息")
-public class RefundOrderExtra extends MpBaseEntity implements EntityBaseFunction<RefundOrderExtraDto> {
-
-    /** 异步通知地址 */
-    @DbColumn(comment = "异步通知地址")
-    @TableField(updateStrategy = FieldStrategy.ALWAYS)
-    private String notifyUrl;
-
-    /** 商户扩展参数,回调时会原样返回, 以最后一次为准 */
-    @DbColumn(comment = "商户扩展参数")
-    private String attach;
-
-    /**
-     * 附加参数 以最后一次为准
-     * @see AliPayParam
-     * @see WeChatPayParam
-     * @see WalletPayParam
-     */
-    @DbColumn(comment = "附加参数")
-    @TableField(updateStrategy = FieldStrategy.ALWAYS)
-    private String extraParam;
-
-    /** 请求时间,时间戳转时间 */
-    @DbColumn(comment = "请求时间,传输时间戳")
-    private LocalDateTime reqTime;
-
-    /** 终端ip */
-    @DbColumn(comment = "支付终端ip")
-    private String clientIp;
-
-    @Override
-    public RefundOrderExtraDto toDto() {
-        return RefundOrderConvert.CONVERT.convert(this);
-    }
-}
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/refund/service/RefundOrderQueryService.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/refund/service/RefundOrderQueryService.java
index e45eb65d973ba929dc07edf896b2e19c1e9c4839..862baf3825e71174dd82a43653758dcb5b0e13e4 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/refund/service/RefundOrderQueryService.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/refund/service/RefundOrderQueryService.java
@@ -1,20 +1,17 @@
 package cn.daxpay.single.service.core.order.refund.service;
 
 import cn.bootx.platform.common.core.exception.DataNotExistException;
+import cn.bootx.platform.common.core.exception.ValidationFailedException;
 import cn.bootx.platform.common.core.rest.PageResult;
 import cn.bootx.platform.common.core.rest.param.PageParam;
 import cn.bootx.platform.common.mybatisplus.util.MpUtil;
-import cn.daxpay.single.exception.pay.PayFailureException;
-import cn.daxpay.single.param.payment.refund.QueryRefundParam;
-import cn.daxpay.single.result.order.RefundOrderResult;
+import cn.daxpay.single.core.exception.TradeNotExistException;
+import cn.daxpay.single.core.param.payment.refund.QueryRefundParam;
+import cn.daxpay.single.core.result.order.RefundOrderResult;
 import cn.daxpay.single.service.core.order.refund.convert.RefundOrderConvert;
-import cn.daxpay.single.service.core.order.refund.dao.RefundOrderExtraManager;
 import cn.daxpay.single.service.core.order.refund.dao.RefundOrderManager;
 import cn.daxpay.single.service.core.order.refund.entity.RefundOrder;
-import cn.daxpay.single.service.core.order.refund.entity.RefundOrderExtra;
 import cn.daxpay.single.service.dto.order.refund.RefundOrderDto;
-import cn.daxpay.single.service.dto.order.refund.RefundOrderExtraDto;
-import cn.daxpay.single.service.param.order.PayOrderQuery;
 import cn.daxpay.single.service.param.order.RefundOrderQuery;
 import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -35,7 +32,6 @@ import java.util.Optional;
 @RequiredArgsConstructor
 public class RefundOrderQueryService {
     private final RefundOrderManager refundOrderManager;
-    private final RefundOrderExtraManager refundOrderExtraManager;
 
     /**
      * 分页查询
@@ -53,14 +49,6 @@ public class RefundOrderQueryService {
                 .orElseThrow(() -> new DataNotExistException("退款订单不存在"));
     }
 
-    /**
-     * 根据id查询扩展信息
-     */
-    public RefundOrderExtraDto findExtraById(Long id) {
-        return refundOrderExtraManager.findById(id).map(RefundOrderExtra::toDto)
-                .orElseThrow(() -> new DataNotExistException("退款订单扩展信息不存在"));
-    }
-
     /**
      * 根据退款号查询
      */
@@ -89,11 +77,11 @@ public class RefundOrderQueryService {
     public RefundOrderResult queryRefundOrder(QueryRefundParam param) {
         // 校验参数
         if (StrUtil.isBlank(param.getRefundNo()) && Objects.isNull(param.getBizRefundNo())){
-            throw new PayFailureException("退款号或=商户退款号不能都为空");
+            throw new ValidationFailedException("退款号或商户退款号不能都为空");
         }
         // 查询退款单
         RefundOrder refundOrder = this.findByBizOrRefundNo(param.getRefundNo(), param.getBizRefundNo())
-                .orElseThrow(() -> new PayFailureException("退款订单不存在"));
+                .orElseThrow(() -> new TradeNotExistException("退款订单不存在"));
 
         return RefundOrderConvert.CONVERT.convertResult(refundOrder);
     }
@@ -101,7 +89,7 @@ public class RefundOrderQueryService {
     /**
      * 查询支付总金额
      */
-    public Integer getTotalAmount(PayOrderQuery param) {
+    public Integer getTotalAmount(RefundOrderQuery param) {
         return refundOrderManager.getTalAmount(param);
     }
 
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/refund/service/RefundOrderService.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/refund/service/RefundOrderService.java
index ad20a1306e13170003bb7452cc1606c49ecd70ad..9d9b71c4a46bc22beb5f290fb8d242f9781d5092 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/refund/service/RefundOrderService.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/refund/service/RefundOrderService.java
@@ -2,15 +2,13 @@ package cn.daxpay.single.service.core.order.refund.service;
 
 import cn.bootx.platform.common.core.exception.DataNotExistException;
 import cn.bootx.platform.common.spring.util.WebServletUtil;
-import cn.daxpay.single.param.payment.refund.RefundParam;
-import cn.daxpay.single.service.core.order.refund.dao.RefundOrderExtraManager;
+import cn.daxpay.single.core.param.payment.refund.RefundParam;
 import cn.daxpay.single.service.core.order.refund.dao.RefundOrderManager;
 import cn.daxpay.single.service.core.order.refund.entity.RefundOrder;
-import cn.daxpay.single.service.core.order.refund.entity.RefundOrderExtra;
 import cn.daxpay.single.service.core.payment.common.service.PaymentAssistService;
 import cn.daxpay.single.service.core.payment.refund.service.RefundService;
 import cn.daxpay.single.service.param.order.PayOrderRefundParam;
-import cn.daxpay.single.util.OrderNoGenerateUtil;
+import cn.daxpay.single.core.util.OrderNoGenerateUtil;
 import cn.hutool.extra.servlet.ServletUtil;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
@@ -34,13 +32,10 @@ public class RefundOrderService {
 
     private final PaymentAssistService paymentAssistService;
 
-    private final RefundOrderExtraManager refundOrderExtraManager;
-
     private final RefundOrderManager refundOrderManager;
 
     /**
      * 手动发起退款
-     * 退款涉及到回调通知, 索所以需要手动初始化一下上下文
      */
     public void refund(PayOrderRefundParam param) {
 
@@ -55,8 +50,6 @@ public class RefundOrderService {
         refundParam.setReason(param.getReason());
         refundParam.setReqTime(LocalDateTime.now());
         refundParam.setClientIp(ip);
-        // 手动初始化上下文
-        paymentAssistService.initRequest(refundParam);
         // 调用统一退款接口
         refundService.refund(refundParam);
     }
@@ -65,12 +58,7 @@ public class RefundOrderService {
      * 重新退款
      */
     public void resetRefund(Long id){
-
-        // 查询扩展信息
-        RefundOrderExtra refundOrderExtra = refundOrderExtraManager.findById(id)
-                .orElseThrow(() -> new DataNotExistException("未找到退款订单"));
-
-        // 查询扩展信息
+        // 查询信息
         RefundOrder refundOrder = refundOrderManager.findById(id)
                 .orElseThrow(() -> new DataNotExistException("未找到退款订单"));
 
@@ -81,12 +69,11 @@ public class RefundOrderService {
         RefundParam refundParam = new RefundParam();
         refundParam.setBizRefundNo(refundOrder.getBizRefundNo());
         // 回调通知
-        refundParam.setNotifyUrl(refundOrderExtra.getNotifyUrl());
-        refundParam.setAttach(refundOrderExtra.getAttach());
+        refundParam.setNotifyUrl(refundOrder.getNotifyUrl());
+        refundParam.setAttach(refundOrder.getAttach());
         refundParam.setReqTime(LocalDateTime.now());
         refundParam.setClientIp(ip);
-
-        // 手动初始化请求上下文
-        paymentAssistService.initRequest(refundParam);
+        // 调用统一退款接口
+        refundService.refund(refundParam);
     }
 }
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/transfer/convert/TransferOrderConvert.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/transfer/convert/TransferOrderConvert.java
index 805e42915b1ca577177c377fab43c365471556e9..0dd94c8de755fae7b02bbc46ac0393e7cedc79ba 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/transfer/convert/TransferOrderConvert.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/transfer/convert/TransferOrderConvert.java
@@ -1,5 +1,8 @@
 package cn.daxpay.single.service.core.order.transfer.convert;
 
+import cn.daxpay.single.core.result.order.TransferOrderResult;
+import cn.daxpay.single.service.core.order.transfer.entity.TransferOrder;
+import cn.daxpay.single.service.dto.order.transfer.TransferOrderDto;
 import org.mapstruct.Mapper;
 import org.mapstruct.factory.Mappers;
 
@@ -12,4 +15,8 @@ import org.mapstruct.factory.Mappers;
 public interface TransferOrderConvert {
     TransferOrderConvert CONVERT = Mappers.getMapper(TransferOrderConvert.class);
 
+    TransferOrderDto convert(TransferOrder in);
+
+
+    TransferOrderResult convertResult(TransferOrder in);
 }
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/transfer/dao/TransferOrderManager.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/transfer/dao/TransferOrderManager.java
index 91206efdde8d9112959bc675cb45e37c63054e65..8e1071fd476e84a5dc310ad8e1d1ae1965a5be51 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/transfer/dao/TransferOrderManager.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/transfer/dao/TransferOrderManager.java
@@ -1,11 +1,21 @@
 package cn.daxpay.single.service.core.order.transfer.dao;
 
+import cn.bootx.platform.common.core.rest.param.PageParam;
 import cn.bootx.platform.common.mybatisplus.impl.BaseManager;
+import cn.bootx.platform.common.mybatisplus.util.MpUtil;
+import cn.bootx.platform.common.query.generator.QueryGenerator;
+import cn.daxpay.single.core.code.PayStatusEnum;
+import cn.daxpay.single.service.core.order.refund.entity.RefundOrder;
 import cn.daxpay.single.service.core.order.transfer.entity.TransferOrder;
+import cn.daxpay.single.service.param.order.TransferOrderQuery;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Repository;
 
+import java.util.Optional;
+
 /**
  *
  * @author xxm
@@ -15,4 +25,37 @@ import org.springframework.stereotype.Repository;
 @Repository
 @RequiredArgsConstructor
 public class TransferOrderManager extends BaseManager<TransferOrderMapper, TransferOrder> {
+
+
+    /**
+     * 分页
+     */
+    public Page<TransferOrder> page(PageParam pageParam, TransferOrderQuery query) {
+        Page<TransferOrder> mpPage = MpUtil.getMpPage(pageParam, TransferOrder.class);
+        QueryWrapper<TransferOrder> generator = QueryGenerator.generator(query);
+        return page(mpPage,generator);
+    }
+
+    /**
+     * 根据转账号查询
+     */
+    public Optional<TransferOrder> findByTransferNo(String transferNo) {
+        return findByField(TransferOrder::getTransferNo, transferNo);
+    }
+
+    /**
+     * 根据商户转账号查询
+     */
+    public Optional<TransferOrder> findByBizTransferNo(String bizTransferNo) {
+        return findByField(TransferOrder::getBizTransferNo, bizTransferNo);
+    }
+
+    /**
+     * 查询汇总金额
+     */
+    public Integer getTalAmount(TransferOrderQuery query){
+        QueryWrapper<TransferOrderQuery> generator = QueryGenerator.generator(query);
+        generator.eq(MpUtil.getColumnName(RefundOrder::getStatus), PayStatusEnum.SUCCESS.getCode());
+        return baseMapper.getTalAmount(generator);
+    }
 }
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/transfer/dao/TransferOrderMapper.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/transfer/dao/TransferOrderMapper.java
index b5009faa7653d9c4bbb00053cf215f7bc3a8a5eb..468b679d49c7299fb6b3af67a43d03489dfdb176 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/transfer/dao/TransferOrderMapper.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/transfer/dao/TransferOrderMapper.java
@@ -1,8 +1,13 @@
 package cn.daxpay.single.service.core.order.transfer.dao;
 
 import cn.daxpay.single.service.core.order.transfer.entity.TransferOrder;
+import cn.daxpay.single.service.param.order.TransferOrderQuery;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.toolkit.Constants;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
 
 /**
  *
@@ -11,4 +16,10 @@ import org.apache.ibatis.annotations.Mapper;
  */
 @Mapper
 public interface TransferOrderMapper extends BaseMapper<TransferOrder> {
+
+    /**
+     * 查询转账总金额
+     */
+    @Select("select sum(amount) from pay_transfer_order ${ew.customSqlSegment}")
+    Integer getTalAmount(@Param(Constants.WRAPPER) QueryWrapper<TransferOrderQuery> generator);
 }
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/transfer/entity/TransferOrder.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/transfer/entity/TransferOrder.java
index 005fd28569cc065fe64f5f801c2caab709334ed1..c8abb6d951a77458657fc220a4b4765782c1e683 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/transfer/entity/TransferOrder.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/transfer/entity/TransferOrder.java
@@ -1,8 +1,18 @@
 package cn.daxpay.single.service.core.order.transfer.entity;
 
+import cn.bootx.platform.common.core.function.EntityBaseFunction;
 import cn.bootx.platform.common.mybatisplus.base.MpBaseEntity;
-import cn.daxpay.single.code.PayChannelEnum;
+import cn.bootx.table.modify.annotation.DbColumn;
 import cn.bootx.table.modify.annotation.DbTable;
+import cn.bootx.table.modify.mysql.annotation.DbMySqlIndex;
+import cn.daxpay.single.core.code.PayChannelEnum;
+import cn.daxpay.single.core.code.TransferPayeeTypeEnum;
+import cn.daxpay.single.core.code.TransferStatusEnum;
+import cn.daxpay.single.core.code.TransferTypeEnum;
+import cn.daxpay.single.service.core.order.transfer.convert.TransferOrderConvert;
+import cn.daxpay.single.service.dto.order.transfer.TransferOrderDto;
+import com.baomidou.mybatisplus.annotation.FieldStrategy;
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
@@ -20,30 +30,103 @@ import java.time.LocalDateTime;
 @Accessors(chain = true)
 @DbTable(comment = "转账订单")
 @TableName("pay_transfer_order")
-public class TransferOrder extends MpBaseEntity {
+public class TransferOrder extends MpBaseEntity implements EntityBaseFunction<TransferOrderDto> {
 
-    /** 业务号 */
-    private String outTradeNo;
+    /** 商户转账号 */
+    @DbMySqlIndex(comment = "商户转账号索引")
+    @DbColumn(comment = "商户转账号", length = 100, isNull = false)
+    private String bizTransferNo;
+
+    /** 转账号 */
+    @DbMySqlIndex(comment = "转账号索引")
+    @DbColumn(comment = "转账号", length = 150, isNull = false)
+    private String transferNo;
+
+    /** 通道转账号 */
+    @DbMySqlIndex(comment = "通道转账号索引")
+    @DbColumn(comment = "通道转账号", length = 150)
+    private String outTransferNo;
 
     /**
      * 支付通道
      * @see PayChannelEnum
      */
+    @DbColumn(comment = "支付通道", length = 20, isNull = false)
     private String channel;
 
-    /** 金额 */
+    /** 转账金额 */
+    @DbColumn(comment = "转账金额", length = 8, isNull = false)
     private Integer amount;
 
-    /** 状态 */
-    private String status;
+    /** 标题 */
+    @DbColumn(comment = "标题", length = 100)
+    private String title;
 
-    /** 付款方 */
-    private String payer;
+    /** 转账原因/备注 */
+    @DbColumn(comment = "转账原因/备注", length = 150)
+    private String reason;
 
-    /** 收款方 */
-    private String payee;
+    /**
+     * 转账类型, 微信使用
+     * @see TransferTypeEnum
+     */
+    @DbColumn(comment = "转账类型, 微信使用", length = 20)
+    private String transferType;
+
+    /**
+     * 收款人类型
+     * @see TransferPayeeTypeEnum
+     */
+    @DbColumn(comment = "收款人类型", length = 20)
+    private String payeeType;
+
+    /** 收款人账号 */
+    @DbColumn(comment = "收款人账号", length = 100)
+    private String payeeAccount;
+
+    /** 收款人姓名 */
+    @DbColumn(comment = "收款人姓名", length = 50)
+    private String payeeName;
+
+    /**
+     * 状态
+     * @see TransferStatusEnum
+     */
+    @DbColumn(comment = "状态", length = 20, isNull = false)
+    private String status;
 
     /** 成功时间 */
+    @DbColumn(comment = "成功时间")
     private LocalDateTime successTime;
 
+
+    /** 异步通知地址 */
+    @DbColumn(comment = "异步通知地址", length = 200)
+    @TableField(updateStrategy = FieldStrategy.ALWAYS)
+    private String notifyUrl;
+
+    /** 商户扩展参数,回调时会原样返回, 以最后一次为准 */
+    @DbColumn(comment = "商户扩展参数", length = 500)
+    private String attach;
+
+    /** 请求时间,时间戳转时间 */
+    @DbColumn(comment = "请求时间,传输时间戳")
+    private LocalDateTime reqTime;
+
+    /** 终端ip */
+    @DbColumn(comment = "支付终端ip", length = 64)
+    private String clientIp;
+
+    /** 错误码 */
+    @DbColumn(comment = "错误码", length = 10)
+    private String errorCode;
+
+    /** 错误信息 */
+    @DbColumn(comment = "错误信息", length = 2048)
+    private String errorMsg;
+
+    @Override
+    public TransferOrderDto toDto() {
+        return TransferOrderConvert.CONVERT.convert(this);
+    }
 }
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/transfer/service/TransferOrderQueryService.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/transfer/service/TransferOrderQueryService.java
new file mode 100644
index 0000000000000000000000000000000000000000..83d817c20c52e3c001d70d5addfd36e4d1078d47
--- /dev/null
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/transfer/service/TransferOrderQueryService.java
@@ -0,0 +1,104 @@
+package cn.daxpay.single.service.core.order.transfer.service;
+
+import cn.bootx.platform.common.core.exception.DataNotExistException;
+import cn.bootx.platform.common.core.rest.PageResult;
+import cn.bootx.platform.common.core.rest.param.PageParam;
+import cn.bootx.platform.common.mybatisplus.util.MpUtil;
+import cn.bootx.platform.common.core.exception.ValidationFailedException;
+import cn.daxpay.single.core.exception.TradeNotExistException;
+import cn.daxpay.single.core.param.payment.transfer.QueryTransferParam;
+import cn.daxpay.single.core.result.order.TransferOrderResult;
+import cn.daxpay.single.service.core.order.transfer.convert.TransferOrderConvert;
+import cn.daxpay.single.service.core.order.transfer.dao.TransferOrderManager;
+import cn.daxpay.single.service.core.order.transfer.entity.TransferOrder;
+import cn.daxpay.single.service.dto.order.transfer.TransferOrderDto;
+import cn.daxpay.single.service.param.order.TransferOrderQuery;
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+import java.util.Objects;
+import java.util.Optional;
+
+/**
+ * 转账订单查询服务
+ * @author xxm
+ * @since 2024/3/21
+ */
+@Slf4j
+@Service
+@RequiredArgsConstructor
+public class TransferOrderQueryService {
+    private final TransferOrderManager transferOrderManager;
+
+    /**
+     * 分页查询
+     */
+    public PageResult<TransferOrderDto> page(PageParam pageParam, TransferOrderQuery query) {
+        Page<TransferOrder> page = transferOrderManager.page(pageParam, query);
+        return MpUtil.convert2DtoPageResult(page);
+    }
+
+    /**
+     * 根据id查询
+     */
+    public TransferOrderDto findById(Long id) {
+        return transferOrderManager.findById(id).map(TransferOrder::toDto)
+                .orElseThrow(() -> new DataNotExistException("转账订单不存在"));
+    }
+
+    /**
+     * 根据转账号查询
+     */
+    public TransferOrderDto findByTransferNo(String transferNo){
+        return transferOrderManager.findByTransferNo(transferNo).map(TransferOrder::toDto)
+                .orElseThrow(() -> new DataNotExistException("转账订单信息不存在"));
+
+    }
+
+    /**
+     * 根据转账号查询
+     */
+    public TransferOrderDto findByBizTransferNo(String bizTransferNo){
+        return transferOrderManager.findByBizTransferNo(bizTransferNo).map(TransferOrder::toDto)
+                .orElseThrow(() -> new DataNotExistException("转账订单信息不存在"));
+
+    }
+
+    /**
+     * 根据转账号和商户转账号查询
+     */
+    public Optional<TransferOrder> findByBizOrTransferNo(String transferNo, String bizTransferNo) {
+        if (StrUtil.isNotBlank(transferNo)){
+            return transferOrderManager.findByTransferNo(transferNo);
+        } else if (StrUtil.isNotBlank(bizTransferNo)){
+            return transferOrderManager.findByBizTransferNo(bizTransferNo);
+        } else {
+            return Optional.empty();
+        }
+    }
+
+    /**
+     * 查询转账订单
+     */
+    public TransferOrderResult queryTransferOrder(QueryTransferParam param) {
+        // 校验参数
+        if (StrUtil.isBlank(param.getTransferNo()) && Objects.isNull(param.getBizTransferNo())){
+            throw new ValidationFailedException("转账号或商户转账号不能都为空");
+        }
+        // 查询转账单
+        TransferOrder transferOrder = this.findByBizOrTransferNo(param.getTransferNo(), param.getBizTransferNo())
+                .orElseThrow(() -> new TradeNotExistException("转账订单不存在"));
+
+        return TransferOrderConvert.CONVERT.convertResult(transferOrder);
+    }
+
+    /**
+     * 查询支付总金额
+     */
+    public Integer getTotalAmount(TransferOrderQuery param) {
+        return transferOrderManager.getTalAmount(param);
+    }
+}
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/transfer/service/TransferOrderService.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/transfer/service/TransferOrderService.java
index 3ff3bf1195ad6c29aacd0754cf0b3945cf35125e..50675112a3076e7384632e3aed76ed4be61d757d 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/transfer/service/TransferOrderService.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/transfer/service/TransferOrderService.java
@@ -1,16 +1,32 @@
 package cn.daxpay.single.service.core.order.transfer.service;
 
+import cn.daxpay.single.core.param.payment.transfer.TransferParam;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 
 /**
- * 转正订单服务
+ * 转账订单服务
  * @author xxm
- * @since 2024/3/21
+ * @since 2024/6/17
  */
 @Slf4j
 @Service
 @RequiredArgsConstructor
 public class TransferOrderService {
+
+    /**
+     * 手动转账
+     */
+    public void transfer(TransferParam param){
+
+    }
+
+    /**
+     * 重试转账
+     */
+    public void retryTransfer(){
+
+    }
+
 }
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/allocation/convert/AllocationReceiverConvert.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/allocation/convert/AllocationReceiverConvert.java
index 1193c1759f0bf6664957c9f60cc64bf3d80c3472..a3034aebae23443e454c45d1d3f3492edd9daaa0 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/allocation/convert/AllocationReceiverConvert.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/allocation/convert/AllocationReceiverConvert.java
@@ -1,7 +1,7 @@
 package cn.daxpay.single.service.core.payment.allocation.convert;
 
-import cn.daxpay.single.param.payment.allocation.AllocReceiverAddParam;
-import cn.daxpay.single.result.allocation.AllocReceiverResult;
+import cn.daxpay.single.core.param.payment.allocation.AllocReceiverAddParam;
+import cn.daxpay.single.core.result.allocation.AllocReceiverResult;
 import cn.daxpay.single.service.core.payment.allocation.entity.AllocationReceiver;
 import cn.daxpay.single.service.dto.allocation.AllocationReceiverDto;
 import org.mapstruct.Mapper;
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/allocation/entity/AllocationGroup.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/allocation/entity/AllocationGroup.java
index 04ec99bd5c47052daade9397e26e5b4c53e9dc19..f2b9321c501b72be0746fee9c766a13ced78c253 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/allocation/entity/AllocationGroup.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/allocation/entity/AllocationGroup.java
@@ -2,11 +2,10 @@ package cn.daxpay.single.service.core.payment.allocation.entity;
 
 import cn.bootx.platform.common.core.function.EntityBaseFunction;
 import cn.bootx.platform.common.mybatisplus.base.MpBaseEntity;
-import cn.daxpay.single.service.core.payment.allocation.convert.AllocationGroupConvert;
-import cn.daxpay.single.service.dto.allocation.AllocationGroupDto;
 import cn.bootx.table.modify.annotation.DbColumn;
-import cn.bootx.table.modify.annotation.DbComment;
 import cn.bootx.table.modify.annotation.DbTable;
+import cn.daxpay.single.service.core.payment.allocation.convert.AllocationGroupConvert;
+import cn.daxpay.single.service.dto.allocation.AllocationGroupDto;
 import com.baomidou.mybatisplus.annotation.FieldStrategy;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
@@ -27,15 +26,15 @@ import lombok.experimental.Accessors;
 public class AllocationGroup extends MpBaseEntity implements EntityBaseFunction<AllocationGroupDto> {
 
     /** 分账组编码 */
-    @DbColumn(comment = "分账组编码")
+    @DbColumn(comment = "分账组编码", length = 20, isNull = false)
     private String groupNo;
 
     /** 名称 */
-    @DbComment("名称")
+    @DbColumn(comment = "名称", length = 50)
     private String name;
 
     /** 通道 */
-    @DbColumn(comment = "通道")
+    @DbColumn(comment = "通道", length = 20, isNull = false)
     @TableField(updateStrategy = FieldStrategy.NEVER)
     private String channel;
 
@@ -44,11 +43,11 @@ public class AllocationGroup extends MpBaseEntity implements EntityBaseFunction<
     private boolean defaultGroup;
 
     /** 总分账比例(万分之多少) */
-    @DbColumn(comment = "总分账比例(万分之多少)")
+    @DbColumn(comment = "总分账比例(万分之多少)", length = 5)
     private Integer totalRate;
 
     /** 备注 */
-    @DbColumn(comment = "备注")
+    @DbColumn(comment = "备注", length = 200)
     private String remark;
 
     /**
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/allocation/entity/AllocationGroupReceiver.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/allocation/entity/AllocationGroupReceiver.java
index 48a7f45a7fdbf6a73238dbf5f531b9aad58dc9ed..137a6f5961fe4875dfe3b6d8c42da6e90cfadca0 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/allocation/entity/AllocationGroupReceiver.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/allocation/entity/AllocationGroupReceiver.java
@@ -20,12 +20,12 @@ import lombok.experimental.Accessors;
 @TableName("pay_allocation_group_receiver")
 public class AllocationGroupReceiver extends MpCreateEntity {
 
-    @DbColumn(comment = "分账组ID")
+    @DbColumn(comment = "分账组ID", isNull = false)
     private Long groupId;
 
-    @DbColumn(comment = "接收者ID")
+    @DbColumn(comment = "接收者ID", isNull = false)
     private Long receiverId;
 
-    @DbColumn(comment = "分账比例(万分之多少)")
+    @DbColumn(comment = "分账比例(万分之多少)", length = 5)
     private Integer rate;
 }
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/allocation/entity/AllocationReceiver.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/allocation/entity/AllocationReceiver.java
index 7f3020bb0c539579986e3ee894150a3d0fa70a3c..9d20412719bdfc711608446484340848163f5c11 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/allocation/entity/AllocationReceiver.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/allocation/entity/AllocationReceiver.java
@@ -2,9 +2,9 @@ package cn.daxpay.single.service.core.payment.allocation.entity;
 
 import cn.bootx.platform.common.core.function.EntityBaseFunction;
 import cn.bootx.platform.common.mybatisplus.base.MpBaseEntity;
-import cn.daxpay.single.code.AllocReceiverTypeEnum;
-import cn.daxpay.single.code.AllocRelationTypeEnum;
-import cn.daxpay.single.code.PayChannelEnum;
+import cn.daxpay.single.core.code.AllocReceiverTypeEnum;
+import cn.daxpay.single.core.code.AllocRelationTypeEnum;
+import cn.daxpay.single.core.code.PayChannelEnum;
 import cn.daxpay.single.service.common.typehandler.DecryptTypeHandler;
 import cn.daxpay.single.service.core.payment.allocation.convert.AllocationReceiverConvert;
 import cn.daxpay.single.service.dto.allocation.AllocationReceiverDto;
@@ -30,14 +30,14 @@ import lombok.experimental.Accessors;
 public class AllocationReceiver extends MpBaseEntity implements EntityBaseFunction<AllocationReceiverDto> {
 
     /** 分账接收方编号, 需要保证唯一 */
-    @DbColumn(comment = "分账接收方编号")
+    @DbColumn(comment = "分账接收方编号", length = 32, isNull = false)
     private String receiverNo;
 
     /**
      * 所属通道
      * @see PayChannelEnum
      */
-    @DbColumn(comment = "所属通道")
+    @DbColumn(comment = "所属通道", length = 20, isNull = false)
     @TableField(updateStrategy = FieldStrategy.NEVER)
     private String channel;
 
@@ -45,16 +45,16 @@ public class AllocationReceiver extends MpBaseEntity implements EntityBaseFuncti
      * 分账接收方类型
      * @see AllocReceiverTypeEnum
      */
-    @DbColumn(comment = "分账接收方类型")
+    @DbColumn(comment = "分账接收方类型", length = 20, isNull = false)
     private String receiverType;
 
     /** 接收方账号 */
-    @DbColumn(comment = "接收方账号")
+    @DbColumn(comment = "接收方账号", length = 100, isNull = false)
     @TableField(typeHandler = DecryptTypeHandler.class)
     private String receiverAccount;
 
     /** 接收方姓名 */
-    @DbColumn(comment = "接收方姓名")
+    @DbColumn(comment = "接收方姓名", length = 100)
     @TableField(updateStrategy = FieldStrategy.ALWAYS)
     private String receiverName;
 
@@ -62,11 +62,11 @@ public class AllocationReceiver extends MpBaseEntity implements EntityBaseFuncti
      * 分账关系类型
      * @see AllocRelationTypeEnum
      */
-    @DbColumn(comment = "分账关系类型")
+    @DbColumn(comment = "分账关系类型", length = 20, isNull = false)
     private String relationType;
 
     /** 关系名称 */
-    @DbColumn(comment = "关系名称")
+    @DbColumn(comment = "关系名称", length = 50)
     private String relationName;
 
     /**
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/allocation/factory/AllocationFactory.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/allocation/factory/AllocationFactory.java
deleted file mode 100644
index 07de970568871e9465e933fe9d37dfad7c792fd9..0000000000000000000000000000000000000000
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/allocation/factory/AllocationFactory.java
+++ /dev/null
@@ -1,39 +0,0 @@
-package cn.daxpay.single.service.core.payment.allocation.factory;
-
-import cn.daxpay.single.code.PayChannelEnum;
-import cn.daxpay.single.exception.pay.PayUnsupportedMethodException;
-import cn.daxpay.single.service.core.payment.allocation.strategy.allocation.AliPayAllocationStrategy;
-import cn.daxpay.single.service.core.payment.allocation.strategy.allocation.WeChatPayAllocationStrategy;
-import cn.daxpay.single.service.func.AbsAllocationStrategy;
-import cn.hutool.extra.spring.SpringUtil;
-import lombok.experimental.UtilityClass;
-
-/**
- * 分账策略工厂
- * @author xxm
- * @since 2024/4/7
- */
-@UtilityClass
-public class AllocationFactory {
-
-    /**
-     * 根据传入的支付通道创建策略
-     * @return 支付策略
-     */
-    public static AbsAllocationStrategy create(String channel) {
-        PayChannelEnum channelEnum = PayChannelEnum.findByCode(channel);
-
-        AbsAllocationStrategy strategy;
-        switch (channelEnum) {
-            case ALI:
-                strategy = SpringUtil.getBean(AliPayAllocationStrategy.class);
-                break;
-            case WECHAT:
-                strategy = SpringUtil.getBean(WeChatPayAllocationStrategy.class);
-                break;
-            default:
-                throw new PayUnsupportedMethodException();
-        }
-        return strategy;
-    }
-}
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/allocation/factory/AllocationReceiverFactory.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/allocation/factory/AllocationReceiverFactory.java
deleted file mode 100644
index 38cbffaa5542e6a4029a5c3d8da825f8d5d14c6b..0000000000000000000000000000000000000000
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/allocation/factory/AllocationReceiverFactory.java
+++ /dev/null
@@ -1,38 +0,0 @@
-package cn.daxpay.single.service.core.payment.allocation.factory;
-
-import cn.daxpay.single.code.PayChannelEnum;
-import cn.daxpay.single.exception.pay.PayUnsupportedMethodException;
-import cn.daxpay.single.service.core.payment.allocation.strategy.receiver.AliPayAllocationReceiverStrategy;
-import cn.daxpay.single.service.core.payment.allocation.strategy.receiver.WeChatPayAllocationReceiverStrategy;
-import cn.daxpay.single.service.func.AbsAllocationReceiverStrategy;
-import cn.hutool.extra.spring.SpringUtil;
-import lombok.experimental.UtilityClass;
-
-/**
- * 分账接收方策略工厂
- * @author xxm
- * @since 2024/4/1
- */
-@UtilityClass
-public class AllocationReceiverFactory {
-
-    /**
-     * 根据传入的支付通道创建策略
-     * @return 支付策略
-     */
-    public static AbsAllocationReceiverStrategy create(PayChannelEnum channelEnum) {
-
-        AbsAllocationReceiverStrategy strategy;
-        switch (channelEnum) {
-            case ALI:
-                strategy = SpringUtil.getBean(AliPayAllocationReceiverStrategy.class);
-                break;
-            case WECHAT:
-                strategy = SpringUtil.getBean(WeChatPayAllocationReceiverStrategy.class);
-                break;
-            default:
-                throw new PayUnsupportedMethodException();
-        }
-        return strategy;
-    }
-}
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/allocation/service/AllocationAssistService.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/allocation/service/AllocationAssistService.java
index 4257c84656fe6a5179979efe4ebf9317fe017577..47754926ab3b4aa9f803dce38105ff9fce17a63e 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/allocation/service/AllocationAssistService.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/allocation/service/AllocationAssistService.java
@@ -1,20 +1,13 @@
 package cn.daxpay.single.service.core.payment.allocation.service;
 
-import cn.daxpay.single.param.payment.allocation.AllocationParam;
-import cn.daxpay.single.service.common.context.ApiInfoLocal;
-import cn.daxpay.single.service.common.context.NoticeLocal;
-import cn.daxpay.single.service.common.context.PlatformLocal;
-import cn.daxpay.single.service.common.local.PaymentContextLocal;
-import cn.daxpay.single.service.core.order.allocation.dao.AllocationOrderExtraManager;
-import cn.daxpay.single.service.core.order.allocation.entity.AllocationOrderExtra;
-import cn.hutool.core.util.StrUtil;
+import cn.daxpay.single.core.param.payment.allocation.AllocationParam;
+import cn.daxpay.single.service.core.order.allocation.dao.AllocationOrderManager;
+import cn.daxpay.single.service.core.order.allocation.entity.AllocOrder;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
-import java.util.Objects;
-
 /**
  * 分账支撑方法
  * @author xxm
@@ -26,46 +19,18 @@ import java.util.Objects;
 public class AllocationAssistService {
 
 
-    private final AllocationOrderExtraManager allocationOrderExtraManager;
+    private final AllocationOrderManager allocationOrderManager;
 
     /**
-     * 初始化通知相关上下文
-     * 1. 异步通知参数: 读取参数配置 -> 读取接口配置 -> 读取平台参数
-     * 2. 同步跳转参数: 读取参数配置 -> 读取平台参数
-     * 3. 中途退出地址: 读取参数配置
-     */
-    public void initNotice(AllocationParam allocationParam) {
-        NoticeLocal noticeInfo = PaymentContextLocal.get().getNoticeInfo();
-        ApiInfoLocal apiInfo = PaymentContextLocal.get().getApiInfo();
-        PlatformLocal platform = PaymentContextLocal.get()
-                .getPlatformInfo();
-        // 异步回调为开启状态
-        if (!Objects.equals(allocationParam.getNotNotify(), false) && apiInfo.isNotice()){
-            // 首先读取请求参数
-            noticeInfo.setNotifyUrl(allocationParam.getNotifyUrl());
-            // 读取接口配置
-            if (StrUtil.isBlank(noticeInfo.getNotifyUrl())) {
-                noticeInfo.setNotifyUrl(apiInfo.getNoticeUrl());
-            }
-            // 读取平台配置
-            if (StrUtil.isBlank(noticeInfo.getNotifyUrl())) {
-                noticeInfo.setNotifyUrl(platform.getNotifyUrl());
-            }
-        }
-    }
-    /**
-     * 根据新传入的分账订单更新订单和扩展信息
+     * 根据新传入的分账订单更新订单信息
      */
     @Transactional(rollbackFor = Exception.class)
-    public void updateOrder(AllocationParam allocationParam, AllocationOrderExtra orderExtra) {
+    public void updateOrder(AllocationParam allocationParam, AllocOrder orderExtra) {
         // 扩展信息
-        NoticeLocal noticeInfo = PaymentContextLocal.get().getNoticeInfo();
         orderExtra.setClientIp(allocationParam.getClientIp())
-                .setNotifyUrl(noticeInfo.getNotifyUrl())
+                .setNotifyUrl(allocationParam.getNotifyUrl())
                 .setAttach(allocationParam.getAttach())
-                .setClientIp(allocationParam.getClientIp())
                 .setReqTime(allocationParam.getReqTime());
-
-        allocationOrderExtraManager.updateById(orderExtra);
+        allocationOrderManager.updateById(orderExtra);
     }
 }
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/allocation/service/AllocationCallbackService.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/allocation/service/AllocationCallbackService.java
index 85efcfe36ea38639d0793ce7540c479022ae94f5..80aeb95dfcd7085469e9deb7cce98cf6c8a912fc 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/allocation/service/AllocationCallbackService.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/allocation/service/AllocationCallbackService.java
@@ -18,7 +18,7 @@ public class AllocationCallbackService {
     /**
      *
      */
-    public void callback(String allocationNo){
+    public void callback(String allocNo){
 
     }
 }
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/allocation/service/AllocationGroupService.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/allocation/service/AllocationGroupService.java
index c84bc5883c175dbd8eaf0dc0db411ecb531eb28d..aa61e2bac8329735846e4ef816bd7b2c545ab1a5 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/allocation/service/AllocationGroupService.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/allocation/service/AllocationGroupService.java
@@ -6,7 +6,6 @@ import cn.bootx.platform.common.core.function.CollectorsFunction;
 import cn.bootx.platform.common.core.rest.PageResult;
 import cn.bootx.platform.common.core.rest.param.PageParam;
 import cn.bootx.platform.common.mybatisplus.util.MpUtil;
-import cn.daxpay.single.code.PayChannelEnum;
 import cn.daxpay.single.service.core.payment.allocation.convert.AllocationGroupConvert;
 import cn.daxpay.single.service.core.payment.allocation.dao.AllocationGroupManager;
 import cn.daxpay.single.service.core.payment.allocation.dao.AllocationGroupReceiverManager;
@@ -94,7 +93,6 @@ public class AllocationGroupService {
      * 创建分账组
      */
     public void create(AllocationGroupParam param){
-        PayChannelEnum.findByCode(param.getChannel());
         AllocationGroup group = AllocationGroupConvert.CONVERT.convert(param);
         group.setTotalRate(0);
         groupManager.save(group);
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/allocation/service/AllocationReceiverService.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/allocation/service/AllocationReceiverService.java
index 0ebf81850b3f33fcfec4b6607d0d279a8a34300f..caae1ed5db9f3c60551cf228da518ea8b64ea0ec 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/allocation/service/AllocationReceiverService.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/allocation/service/AllocationReceiverService.java
@@ -2,28 +2,31 @@ package cn.daxpay.single.service.core.payment.allocation.service;
 
 import cn.bootx.platform.common.core.exception.BizException;
 import cn.bootx.platform.common.core.exception.DataNotExistException;
+import cn.bootx.platform.common.core.exception.ValidationFailedException;
 import cn.bootx.platform.common.core.rest.PageResult;
 import cn.bootx.platform.common.core.rest.dto.LabelValue;
 import cn.bootx.platform.common.core.rest.param.PageParam;
 import cn.bootx.platform.common.mybatisplus.util.MpUtil;
-import cn.daxpay.single.code.AllocReceiverTypeEnum;
-import cn.daxpay.single.code.PayChannelEnum;
-import cn.daxpay.single.exception.pay.PayFailureException;
-import cn.daxpay.single.param.payment.allocation.AllocReceiverAddParam;
-import cn.daxpay.single.param.payment.allocation.AllocReceiverRemoveParam;
-import cn.daxpay.single.param.payment.allocation.QueryAllocReceiverParam;
-import cn.daxpay.single.result.allocation.AllocReceiverAddResult;
-import cn.daxpay.single.result.allocation.AllocReceiverRemoveResult;
-import cn.daxpay.single.result.allocation.AllocReceiverResult;
-import cn.daxpay.single.result.allocation.AllocReceiversResult;
+import cn.daxpay.single.core.code.AllocReceiverTypeEnum;
+import cn.daxpay.single.core.code.PayChannelEnum;
+import cn.daxpay.single.core.exception.DataErrorException;
+import cn.daxpay.single.core.exception.OperationFailException;
+import cn.daxpay.single.core.exception.OperationProcessingException;
+import cn.daxpay.single.core.param.payment.allocation.AllocReceiverAddParam;
+import cn.daxpay.single.core.param.payment.allocation.AllocReceiverRemoveParam;
+import cn.daxpay.single.core.param.payment.allocation.QueryAllocReceiverParam;
+import cn.daxpay.single.core.result.allocation.AllocReceiverAddResult;
+import cn.daxpay.single.core.result.allocation.AllocReceiverRemoveResult;
+import cn.daxpay.single.core.result.allocation.AllocReceiverResult;
+import cn.daxpay.single.core.result.allocation.AllocReceiversResult;
 import cn.daxpay.single.service.core.payment.allocation.convert.AllocationReceiverConvert;
 import cn.daxpay.single.service.core.payment.allocation.dao.AllocationGroupReceiverManager;
 import cn.daxpay.single.service.core.payment.allocation.dao.AllocationReceiverManager;
 import cn.daxpay.single.service.core.payment.allocation.entity.AllocationReceiver;
-import cn.daxpay.single.service.core.payment.allocation.factory.AllocationReceiverFactory;
 import cn.daxpay.single.service.dto.allocation.AllocationReceiverDto;
 import cn.daxpay.single.service.func.AbsAllocationReceiverStrategy;
 import cn.daxpay.single.service.param.allocation.receiver.AllocationReceiverQuery;
+import cn.daxpay.single.service.util.PayStrategyFactory;
 import cn.hutool.core.util.StrUtil;
 import com.baomidou.lock.LockInfo;
 import com.baomidou.lock.LockTemplate;
@@ -111,21 +114,20 @@ public class AllocationReceiverService {
         // 判断是否已经添加
         LockInfo lock = lockTemplate.lock("payment:receiver:" + param.getReceiverNo(),10000,200);
         if (Objects.isNull(lock)){
-            throw new PayFailureException("分账方处理中,请勿重复操作");
+            throw new OperationProcessingException("分账方处理中,请勿重复操作");
         }
         try {
             Optional<AllocationReceiver> receiverOptional = allocationReceiverManager.findByReceiverNo(param.getReceiverNo());
             if (receiverOptional.isPresent()){
-                throw new PayFailureException("该接收方已存在");
+                throw new OperationFailException("该接收方已存在");
             }
             AllocationReceiver receiver = AllocationReceiverConvert.CONVERT.convert(param);
             // 获取策略
-            PayChannelEnum channelEnum = PayChannelEnum.findByCode(param.getChannel());
-            AbsAllocationReceiverStrategy receiverStrategy = AllocationReceiverFactory.create(channelEnum);
+            AbsAllocationReceiverStrategy receiverStrategy = PayStrategyFactory.create(param.getChannel(), AbsAllocationReceiverStrategy.class);
             // 校验
             receiverStrategy.setAllocationReceiver(receiver);
             if (!receiverStrategy.validation()){
-                throw new PayFailureException("接收方信息校验失败");
+                throw new ValidationFailedException("接收方信息校验失败");
             }
             // 先添加到三方支付系统中, 然后保存到本地
             receiverStrategy.doBeforeHandler();
@@ -143,16 +145,15 @@ public class AllocationReceiverService {
     public AllocReceiverRemoveResult remove(AllocReceiverRemoveParam param){
         // 判断是否存在
         AllocationReceiver receiver = allocationReceiverManager.findByReceiverNo(param.getReceiverNo())
-                .orElseThrow(() -> new PayFailureException("该接收方不存在"));
+                .orElseThrow(() -> new DataErrorException("该接收方不存在"));
         if (groupReceiverManager.isUsed(receiver.getId())){
-            throw new PayFailureException("该接收方已被使用,无法被删除");
+            throw new OperationFailException("该接收方已被使用,无法被删除");
         }
         // 获取策略
-        PayChannelEnum channelEnum = PayChannelEnum.findByCode(receiver.getChannel());
-        AbsAllocationReceiverStrategy receiverStrategy = AllocationReceiverFactory.create(channelEnum);
+        AbsAllocationReceiverStrategy receiverStrategy = PayStrategyFactory.create(receiver.getChannel(), AbsAllocationReceiverStrategy.class);
         LockInfo lock = lockTemplate.lock("payment:receiver:" + param.getReceiverNo(),10000,200);
         if (Objects.isNull(lock)){
-            throw new PayFailureException("分账方处理中,请勿重复操作");
+            throw new OperationProcessingException("分账方处理中,请勿重复操作");
         }
         try {
             // 校验
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/allocation/service/AllocationService.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/allocation/service/AllocationService.java
index e0d037851002156cf5909709881b98ae469d4df2..604f5e84fab2d1293148f33adb15c412fb5460c4 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/allocation/service/AllocationService.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/allocation/service/AllocationService.java
@@ -2,35 +2,39 @@ package cn.daxpay.single.service.core.payment.allocation.service;
 
 import cn.bootx.platform.common.core.exception.DataNotExistException;
 import cn.bootx.platform.common.core.exception.RepetitiveOperationException;
+import cn.bootx.platform.common.core.exception.ValidationFailedException;
 import cn.bootx.platform.common.core.util.CollUtil;
-import cn.daxpay.single.code.AllocDetailResultEnum;
-import cn.daxpay.single.code.AllocOrderResultEnum;
-import cn.daxpay.single.code.AllocOrderStatusEnum;
-import cn.daxpay.single.code.PayOrderAllocStatusEnum;
-import cn.daxpay.single.exception.pay.PayFailureException;
-import cn.daxpay.single.param.payment.allocation.AllocFinishParam;
-import cn.daxpay.single.param.payment.allocation.AllocationParam;
-import cn.daxpay.single.param.payment.allocation.QueryAllocOrderParam;
-import cn.daxpay.single.result.order.AllocOrderDetailResult;
-import cn.daxpay.single.result.order.AllocOrderResult;
-import cn.daxpay.single.result.allocation.AllocationResult;
+import cn.bootx.platform.common.spring.util.WebServletUtil;
+import cn.daxpay.single.core.code.AllocDetailResultEnum;
+import cn.daxpay.single.core.code.AllocOrderResultEnum;
+import cn.daxpay.single.core.code.AllocOrderStatusEnum;
+import cn.daxpay.single.core.code.PayOrderAllocStatusEnum;
+import cn.daxpay.single.core.exception.DataErrorException;
+import cn.daxpay.single.core.exception.OperationUnsupportedException;
+import cn.daxpay.single.core.exception.TradeNotExistException;
+import cn.daxpay.single.core.exception.TradeStatusErrorException;
+import cn.daxpay.single.core.param.payment.allocation.AllocFinishParam;
+import cn.daxpay.single.core.param.payment.allocation.AllocationParam;
+import cn.daxpay.single.core.param.payment.allocation.QueryAllocOrderParam;
+import cn.daxpay.single.core.result.allocation.AllocationResult;
+import cn.daxpay.single.core.result.order.AllocOrderDetailResult;
+import cn.daxpay.single.core.result.order.AllocOrderResult;
 import cn.daxpay.single.service.common.local.PaymentContextLocal;
-import cn.daxpay.single.service.core.order.allocation.convert.AllocationConvert;
-import cn.daxpay.single.service.core.order.allocation.dao.AllocationOrderDetailManager;
-import cn.daxpay.single.service.core.order.allocation.dao.AllocationOrderExtraManager;
+import cn.daxpay.single.service.core.order.allocation.convert.AllocOrderConvert;
+import cn.daxpay.single.service.core.order.allocation.dao.AllocOrderDetailManager;
 import cn.daxpay.single.service.core.order.allocation.dao.AllocationOrderManager;
-import cn.daxpay.single.service.core.order.allocation.entity.AllocationOrder;
-import cn.daxpay.single.service.core.order.allocation.entity.AllocationOrderDetail;
-import cn.daxpay.single.service.core.order.allocation.entity.AllocationOrderExtra;
+import cn.daxpay.single.service.core.order.allocation.entity.AllocOrder;
+import cn.daxpay.single.service.core.order.allocation.entity.AllocOrderDetail;
 import cn.daxpay.single.service.core.order.allocation.entity.OrderAndDetail;
-import cn.daxpay.single.service.core.order.allocation.service.AllocationOrderService;
+import cn.daxpay.single.service.core.order.allocation.service.AllocOrderService;
 import cn.daxpay.single.service.core.order.pay.entity.PayOrder;
 import cn.daxpay.single.service.core.order.pay.service.PayOrderQueryService;
 import cn.daxpay.single.service.core.payment.allocation.dao.AllocationGroupManager;
 import cn.daxpay.single.service.core.payment.allocation.entity.AllocationGroup;
-import cn.daxpay.single.service.core.payment.allocation.factory.AllocationFactory;
 import cn.daxpay.single.service.dto.allocation.AllocationGroupReceiverResult;
 import cn.daxpay.single.service.func.AbsAllocationStrategy;
+import cn.daxpay.single.service.util.PayStrategyFactory;
+import cn.hutool.extra.servlet.ServletUtil;
 import com.baomidou.lock.LockInfo;
 import com.baomidou.lock.LockTemplate;
 import lombok.RequiredArgsConstructor;
@@ -41,10 +45,11 @@ import java.time.LocalDateTime;
 import java.util.Arrays;
 import java.util.List;
 import java.util.Objects;
+import java.util.Optional;
 import java.util.stream.Collectors;
 
-import static cn.daxpay.single.code.AllocOrderStatusEnum.ALLOCATION_END;
-import static cn.daxpay.single.code.AllocOrderStatusEnum.FINISH_FAILED;
+import static cn.daxpay.single.core.code.AllocOrderStatusEnum.ALLOCATION_END;
+import static cn.daxpay.single.core.code.AllocOrderStatusEnum.FINISH_FAILED;
 
 /**
  * 分账服务
@@ -62,31 +67,27 @@ public class AllocationService {
 
     private final AllocationGroupService allocationGroupService;
 
-    private final AllocationOrderService allocationOrderService;
+    private final AllocOrderService allocOrderService;
 
-    private final AllocationOrderDetailManager allocationOrderDetailManager;
+    private final AllocOrderDetailManager allocOrderDetailManager;
 
     private final AllocationAssistService allocationAssistService;
 
     private final PayOrderQueryService payOrderQueryService;
 
-    private final AllocationOrderExtraManager allocationOrderExtraManager;
-
     private final LockTemplate lockTemplate;
 
-
     /**
      * 开启分账 多次请求只会分账一次
      * 优先级 分账接收方列表 > 分账组编号 > 默认分账组
      */
     public AllocationResult allocation(AllocationParam param) {
         // 判断是否已经有分账订单
-        AllocationOrder allocationOrder = allocationOrderManager.findByBizAllocationNo(param.getBizAllocationNo())
+        AllocOrder allocOrder = allocationOrderManager.findByBizAllocNo(param.getBizAllocNo())
                 .orElse(null);
-        allocationAssistService.initNotice(param);
-        if (Objects.nonNull(allocationOrder)){
+        if (Objects.nonNull(allocOrder)){
             // 重复分账
-            return this.retryAllocation(param, allocationOrder);
+            return this.retryAllocation(param, allocOrder);
         } else {
             // 首次分账
             PayOrder payOrder = this.getAndCheckPayOrder(param);
@@ -106,18 +107,18 @@ public class AllocationService {
             // 构建分账订单相关信息
             OrderAndDetail orderAndDetail = this.checkAndCreateAlloc(param, payOrder);
             // 检查是否需要进行分账
-            AllocationOrder order = orderAndDetail.getOrder();
-            List<AllocationOrderDetail> details = orderAndDetail.getDetails();
+            AllocOrder order = orderAndDetail.getOrder();
+            List<AllocOrderDetail> details = orderAndDetail.getDetails();
             // 无需进行分账,
             if (Objects.equals(order.getStatus(),AllocOrderStatusEnum.IGNORE.getCode())){
                 return new AllocationResult()
-                        .setAllocationNo(order.getAllocationNo())
-                        .setBizAllocationNo(order.getBizAllocationNo())
+                        .setAllocNo(order.getAllocNo())
+                        .setBizAllocNo(order.getBizAllocNo())
                         .setStatus(order.getStatus());
             }
 
             // 创建分账策略并初始化
-            AbsAllocationStrategy allocationStrategy = AllocationFactory.create(payOrder.getChannel());
+            AbsAllocationStrategy allocationStrategy = PayStrategyFactory.create(payOrder.getChannel(),AbsAllocationStrategy.class);
             allocationStrategy.initParam(order, details);
             try {
                 // 分账预处理
@@ -136,14 +137,14 @@ public class AllocationService {
                 // TODO 返回异常处理
             }
             // 网关分账号
-            String outAllocationNo = PaymentContextLocal.get()
+            String outAllocNo = PaymentContextLocal.get()
                     .getAllocationInfo()
-                    .getOutAllocationNo();
-            order.setOutAllocationNo(outAllocationNo);
+                    .getOutAllocNo();
+            order.setOutAllocNo(outAllocNo);
             allocationOrderManager.updateById(order);
             return new AllocationResult()
-                    .setAllocationNo(order.getAllocationNo())
-                    .setBizAllocationNo(order.getBizAllocationNo())
+                    .setAllocNo(order.getAllocNo())
+                    .setBizAllocNo(order.getBizAllocNo())
                     .setStatus(order.getStatus());
         } finally {
             lockTemplate.releaseLock(lock);
@@ -153,7 +154,7 @@ public class AllocationService {
     /**
      * 重新分账
      */
-    private AllocationResult retryAllocation(AllocationParam param, AllocationOrder order){
+    private AllocationResult retryAllocation(AllocationParam param, AllocOrder order){
         LockInfo lock = lockTemplate.lock("payment:allocation:" + order.getOrderId(),10000,200);
         if (Objects.isNull(lock)){
             throw new RepetitiveOperationException("分账发起处理中,请勿重复操作");
@@ -164,19 +165,16 @@ public class AllocationService {
                     AllocOrderStatusEnum.ALLOCATION_FAILED.getCode(),
                     AllocOrderStatusEnum.ALLOCATION_PROCESSING.getCode());
             if (!list.contains(order.getStatus())){
-                throw new PayFailureException("分账单状态错误,无法重试");
+                throw new TradeStatusErrorException("分账单状态错误,无法重试");
             }
-            List<AllocationOrderDetail> details = this.getDetails(order.getId());
+            List<AllocOrderDetail> details = this.getDetails(order.getId());
             // 创建分账策略并初始化
-            AbsAllocationStrategy allocationStrategy = AllocationFactory.create(order.getChannel());
+            AbsAllocationStrategy allocationStrategy =  PayStrategyFactory.create(order.getChannel(),AbsAllocationStrategy.class);
             allocationStrategy.initParam(order, details);
             // 分账预处理
             allocationStrategy.doBeforeHandler();
-            // 查询扩展信息
-            AllocationOrderExtra orderExtra = allocationOrderExtraManager.findById(order.getId())
-                    .orElseThrow(() -> new PayFailureException("未查询到分账单扩展信息"));
-            //  更新分账单扩展信息
-            allocationAssistService.updateOrder(param, orderExtra);
+            //  更新分账单信息
+            allocationAssistService.updateOrder(param, order);
             try {
                 // 重复分账处理
                 allocationStrategy.allocation();
@@ -185,14 +183,13 @@ public class AllocationService {
 
             } catch (Exception e) {
                 log.error("重新分账出现错误:", e);
-                // TODO 失败
                 order.setStatus(AllocOrderStatusEnum.ALLOCATION_FAILED.getCode())
                         .setErrorMsg(e.getMessage());
             }
             allocationOrderManager.updateById(order);
             return new AllocationResult()
-                    .setAllocationNo(order.getAllocationNo())
-                    .setBizAllocationNo(order.getBizAllocationNo())
+                    .setAllocNo(order.getAllocNo())
+                    .setBizAllocNo(order.getBizAllocNo())
                     .setStatus(order.getStatus());
         } finally {
             lockTemplate.releaseLock(lock);
@@ -203,30 +200,30 @@ public class AllocationService {
      * 分账完结
      */
     public AllocationResult finish(AllocFinishParam param) {
-        AllocationOrder allocationOrder;
-        if (Objects.nonNull(param.getAllocationNo())){
-            allocationOrder = allocationOrderManager.findByAllocationNo(param.getAllocationNo())
+        AllocOrder allocOrder;
+        if (Objects.nonNull(param.getAllocNo())){
+            allocOrder = allocationOrderManager.findByAllocNo(param.getAllocNo())
                     .orElseThrow(() -> new DataNotExistException("未查询到分账单信息"));
         } else {
-            allocationOrder = allocationOrderManager.findByBizAllocationNo(param.getBizAllocationNo())
+            allocOrder = allocationOrderManager.findByBizAllocNo(param.getBizAllocNo())
                     .orElseThrow(() -> new DataNotExistException("未查询到分账单信息"));
         }
-        return this.finish(allocationOrder);
+        return this.finish(allocOrder);
     }
 
     /**
      * 分账完结
      */
-    public AllocationResult finish(AllocationOrder allocationOrder) {
+    public AllocationResult finish(AllocOrder allocOrder) {
         // 只有分账结束后才可以完结
-        if (!Arrays.asList(ALLOCATION_END.getCode(),FINISH_FAILED.getCode()).contains(allocationOrder.getStatus())) {
-            throw new PayFailureException("分账单状态错误");
+        if (!Arrays.asList(ALLOCATION_END.getCode(),FINISH_FAILED.getCode()).contains(allocOrder.getStatus())) {
+            throw new TradeStatusErrorException("分账单状态错误");
         }
-        List<AllocationOrderDetail> details = this.getDetails(allocationOrder.getId());
+        List<AllocOrderDetail> details = this.getDetails(allocOrder.getId());
 
         // 创建分账策略并初始化
-        AbsAllocationStrategy allocationStrategy = AllocationFactory.create(allocationOrder.getChannel());
-        allocationStrategy.initParam(allocationOrder, details);
+        AbsAllocationStrategy allocationStrategy =  PayStrategyFactory.create(allocOrder.getChannel(),AbsAllocationStrategy.class);
+        allocationStrategy.initParam(allocOrder, details);
 
         // 分账完结预处理
         allocationStrategy.doBeforeHandler();
@@ -234,20 +231,20 @@ public class AllocationService {
             // 完结处理
             allocationStrategy.finish();
             // 完结状态
-            allocationOrder.setStatus(AllocOrderStatusEnum.FINISH.getCode())
+            allocOrder.setStatus(AllocOrderStatusEnum.FINISH.getCode())
                     .setFinishTime(LocalDateTime.now())
                     .setErrorMsg(null);
         } catch (Exception e) {
             log.error("分账完结错误:", e);
             // 失败
-            allocationOrder.setStatus(FINISH_FAILED.getCode())
+            allocOrder.setStatus(FINISH_FAILED.getCode())
                     .setErrorMsg(e.getMessage());
         }
-        allocationOrderManager.updateById(allocationOrder);
+        allocationOrderManager.updateById(allocOrder);
         return new AllocationResult()
-                .setAllocationNo(allocationOrder.getAllocationNo())
-                .setBizAllocationNo(allocationOrder.getBizAllocationNo())
-                .setStatus(allocationOrder.getStatus());
+                .setAllocNo(allocOrder.getAllocNo())
+                .setBizAllocNo(allocOrder.getBizAllocNo())
+                .setStatus(allocOrder.getStatus());
     }
 
     /**
@@ -256,14 +253,14 @@ public class AllocationService {
     private PayOrder getAndCheckPayOrder(AllocationParam param) {
         // 查询支付单
         PayOrder payOrder = payOrderQueryService.findByBizOrOrderNo(param.getOrderNo(), param.getBizOrderNo())
-                .orElseThrow(() -> new PayFailureException("支付单不存在"));
+                .orElseThrow(() -> new TradeNotExistException("支付单不存在"));
         // 判断订单是否可以分账
         if (!payOrder.getAllocation()){
-            throw new PayFailureException("该订单不允许分账");
+            throw new OperationUnsupportedException("该订单不允许分账");
         }
         // 判断分账状态
-        if (Objects.equals(PayOrderAllocStatusEnum.ALLOCATION.getCode(), payOrder.getAllocationStatus())){
-            throw new PayFailureException("该订单已分账完成");
+        if (Objects.equals(PayOrderAllocStatusEnum.ALLOCATION.getCode(), payOrder.getAllocStatus())){
+            throw new TradeStatusErrorException("该订单已分账完成");
         }
         return payOrder;
     }
@@ -273,12 +270,12 @@ public class AllocationService {
      */
     public AllocOrderResult queryAllocationOrder(QueryAllocOrderParam param) {
         // 查询分账单
-        AllocationOrder allocationOrder = allocationOrderManager.findByAllocationNo(param.getAllocationNo())
-                .orElseThrow(() -> new PayFailureException("分账单不存在"));
-        AllocOrderResult result = AllocationConvert.CONVERT.toResult(allocationOrder);
+        AllocOrder allocOrder = allocationOrderManager.findByAllocNo(param.getAllocNo())
+                .orElseThrow(() -> new DataErrorException("分账单不存在"));
+        AllocOrderResult result = AllocOrderConvert.CONVERT.toResult(allocOrder);
         // 查询分账单明细
-        List<AllocOrderDetailResult> details = allocationOrderDetailManager.findAllByOrderId(allocationOrder.getId()).stream()
-                .map(AllocationConvert.CONVERT::toResult)
+        List<AllocOrderDetailResult> details = allocOrderDetailManager.findAllByOrderId(allocOrder.getId()).stream()
+                .map(AllocOrderConvert.CONVERT::toResult)
                 .collect(Collectors.toList());
         result.setDetails(details);
         return result;
@@ -292,23 +289,23 @@ public class AllocationService {
         OrderAndDetail orderAndDetail;
         // 判断是否传输了分账接收方列表
         if (CollUtil.isNotEmpty(param.getReceivers())) {
-            orderAndDetail = allocationOrderService.createAndUpdate(param, payOrder);
+            orderAndDetail = allocOrderService.createAndUpdate(param, payOrder);
         } else {
             AllocationGroup allocationGroup;
             if (Objects.nonNull(param.getGroupNo())){
                 // 指定分账组
-                allocationGroup = groupManager.findByGroupNo(param.getGroupNo()).orElseThrow(() -> new DataNotExistException("未查询到分账组"));
+                allocationGroup = groupManager.findByGroupNo(param.getGroupNo()).orElseThrow(() -> new DataErrorException("未查询到分账组"));
             } else {
                 // 默认分账组
-                allocationGroup = groupManager.findDefaultGroup(payOrder.getChannel()).orElseThrow(() -> new PayFailureException("未查询到默认分账组"));
+                allocationGroup = groupManager.findDefaultGroup(payOrder.getChannel()).orElseThrow(() -> new DataErrorException("未查询到默认分账组"));
             }
             // 判断通道类型是否一致
             if (!Objects.equals(allocationGroup.getChannel(), payOrder.getChannel())){
-                throw new PayFailureException("分账接收方列表存在非本通道的数据");
+                throw new ValidationFailedException("分账接收方列表存在非本通道的数据");
             }
 
             List<AllocationGroupReceiverResult> receiversByGroups = allocationGroupService.findReceiversByGroups(allocationGroup.getId());
-            orderAndDetail = allocationOrderService.createAndUpdate(param ,payOrder, receiversByGroups);
+            orderAndDetail = allocOrderService.createAndUpdate(param ,payOrder, receiversByGroups);
         }
         return orderAndDetail;
     }
@@ -316,11 +313,28 @@ public class AllocationService {
     /**
      * 获取发起分账或完结的明细
      */
-    private List<AllocationOrderDetail> getDetails(Long allocOrderId){
-        List<AllocationOrderDetail> details = allocationOrderDetailManager.findAllByOrderId(allocOrderId);
+    private List<AllocOrderDetail> getDetails(Long allocOrderId){
+        List<AllocOrderDetail> details = allocOrderDetailManager.findAllByOrderId(allocOrderId);
         // 过滤掉忽略的条目
         return details.stream()
                 .filter(detail -> !Objects.equals(detail.getResult(), AllocDetailResultEnum.IGNORE.getCode()))
                 .collect(Collectors.toList());
     }
+
+    /**
+     * 手动重试
+     */
+    public void retry(String bizAllocNo) {
+        AllocOrder allocOrder = allocationOrderManager.findByBizAllocNo(bizAllocNo)
+                .orElseThrow(() -> new DataErrorException("未查询到分账单"));
+        String ip = Optional.ofNullable(WebServletUtil.getRequest())
+                .map(ServletUtil::getClientIP)
+                .orElse("未知");
+        AllocationParam param = new AllocationParam();
+        param.setBizAllocNo(allocOrder.getBizAllocNo());
+        param.setAttach(allocOrder.getAttach());
+        param.setNotifyUrl(allocOrder.getNotifyUrl());
+        param.setClientIp(ip);
+        this.retryAllocation(param, allocOrder);
+    }
 }
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/allocation/service/AllocationSyncService.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/allocation/service/AllocationSyncService.java
index c4dd93084ac35e3fbfcc3558ad6e37c1a4317abf..399eae5599b2a203fe0d238798f6a87fcd36cbb4 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/allocation/service/AllocationSyncService.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/allocation/service/AllocationSyncService.java
@@ -2,23 +2,23 @@ package cn.daxpay.single.service.core.payment.allocation.service;
 
 import cn.bootx.platform.common.core.exception.DataNotExistException;
 import cn.bootx.platform.common.core.exception.RepetitiveOperationException;
-import cn.daxpay.single.code.AllocDetailResultEnum;
-import cn.daxpay.single.code.AllocOrderResultEnum;
-import cn.daxpay.single.code.AllocOrderStatusEnum;
-import cn.daxpay.single.param.payment.allocation.AllocSyncParam;
-import cn.daxpay.single.result.sync.AllocSyncResult;
+import cn.daxpay.single.core.code.AllocDetailResultEnum;
+import cn.daxpay.single.core.code.AllocOrderResultEnum;
+import cn.daxpay.single.core.code.AllocOrderStatusEnum;
+import cn.daxpay.single.core.param.payment.allocation.AllocSyncParam;
+import cn.daxpay.single.core.result.sync.AllocSyncResult;
 import cn.daxpay.single.service.code.PaymentTypeEnum;
 import cn.daxpay.single.service.common.local.PaymentContextLocal;
-import cn.daxpay.single.service.core.order.allocation.dao.AllocationOrderDetailManager;
+import cn.daxpay.single.service.core.order.allocation.dao.AllocOrderDetailManager;
 import cn.daxpay.single.service.core.order.allocation.dao.AllocationOrderManager;
-import cn.daxpay.single.service.core.order.allocation.entity.AllocationOrder;
-import cn.daxpay.single.service.core.order.allocation.entity.AllocationOrderDetail;
-import cn.daxpay.single.service.core.payment.allocation.factory.AllocationFactory;
+import cn.daxpay.single.service.core.order.allocation.entity.AllocOrder;
+import cn.daxpay.single.service.core.order.allocation.entity.AllocOrderDetail;
 import cn.daxpay.single.service.core.payment.notice.service.ClientNoticeService;
 import cn.daxpay.single.service.core.payment.sync.result.AllocRemoteSyncResult;
 import cn.daxpay.single.service.core.record.sync.entity.PaySyncRecord;
 import cn.daxpay.single.service.core.record.sync.service.PaySyncRecordService;
 import cn.daxpay.single.service.func.AbsAllocationStrategy;
+import cn.daxpay.single.service.util.PayStrategyFactory;
 import com.baomidou.lock.LockInfo;
 import com.baomidou.lock.LockTemplate;
 import lombok.RequiredArgsConstructor;
@@ -45,7 +45,7 @@ public class AllocationSyncService {
 
     private final AllocationOrderManager allocationOrderManager;
 
-    private final AllocationOrderDetailManager allocationOrderDetailManager;
+    private final AllocOrderDetailManager allocOrderDetailManager;
 
     private final PaySyncRecordService paySyncRecordService;
 
@@ -57,46 +57,46 @@ public class AllocationSyncService {
     @Transactional(propagation = Propagation.REQUIRES_NEW, rollbackFor = Exception.class)
     public AllocSyncResult sync(AllocSyncParam param) {
         // 获取分账订单
-        AllocationOrder allocationOrder = null;
-        if (Objects.nonNull(param.getAllocationNo())){
-            allocationOrder = allocationOrderManager.findByAllocationNo(param.getAllocationNo())
+        AllocOrder allocOrder = null;
+        if (Objects.nonNull(param.getAllocNo())){
+            allocOrder = allocationOrderManager.findByAllocNo(param.getAllocNo())
                     .orElseThrow(() -> new DataNotExistException("分账单不存在"));
         }
-        if (Objects.isNull(allocationOrder)){
-            allocationOrder = allocationOrderManager.findByAllocationNo(param.getBizAllocationNo())
+        if (Objects.isNull(allocOrder)){
+            allocOrder = allocationOrderManager.findByAllocNo(param.getBizAllocNo())
                     .orElseThrow(() -> new DataNotExistException("分账单不存在"));
         }
         // 如果类型为忽略, 不进行同步处理
-        if (Objects.equals(allocationOrder.getStatus(), AllocOrderStatusEnum.IGNORE.getCode())){
+        if (Objects.equals(allocOrder.getStatus(), AllocOrderStatusEnum.IGNORE.getCode())){
             return new AllocSyncResult();
         }
 
         // 调用同步逻辑
-        this.sync(allocationOrder);
+        this.sync(allocOrder);
         return new AllocSyncResult();
     }
 
     /**
      * 分账同步
      */
-    public void sync(AllocationOrder allocationOrder){
-        LockInfo lock = lockTemplate.lock("payment:allocation:" + allocationOrder.getOrderId(),10000,200);
+    public void sync(AllocOrder allocOrder){
+        LockInfo lock = lockTemplate.lock("payment:allocation:" + allocOrder.getOrderId(),10000,200);
         if (Objects.isNull(lock)){
             throw new RepetitiveOperationException("分账同步中,请勿重复操作");
         }
         try {
-            List<AllocationOrderDetail> detailList = allocationOrderDetailManager.findAllByOrderId(allocationOrder.getId());
+            List<AllocOrderDetail> detailList = allocOrderDetailManager.findAllByOrderId(allocOrder.getId());
             // 获取分账策略
-            AbsAllocationStrategy allocationStrategy = AllocationFactory.create(allocationOrder.getChannel());
-            allocationStrategy.initParam(allocationOrder, detailList);
+            AbsAllocationStrategy allocationStrategy =  PayStrategyFactory.create(allocOrder.getChannel(),AbsAllocationStrategy.class);
+            allocationStrategy.initParam(allocOrder, detailList);
             // 分账完结预处理
             allocationStrategy.doBeforeHandler();
             // 执行同步操作, 分账明细的状态变更会在这个里面
             AllocRemoteSyncResult allocRemoteSyncResult = allocationStrategy.doSync();
             // 保存分账同步记录
-            this.saveRecord(allocationOrder, allocRemoteSyncResult,null,null);
+            this.saveRecord(allocOrder, allocRemoteSyncResult,null,null);
             // 根据订单明细更新订单的状态和处理结果
-            this.updateOrderStatus(allocationOrder, detailList);
+            this.updateOrderStatus(allocOrder, detailList);
         } finally {
             lockTemplate.releaseLock(lock);
         }
@@ -106,50 +106,50 @@ public class AllocationSyncService {
      * 根据订单明细更新订单的状态和处理结果, 如果订单是分账结束或失败, 不更新状态
      * TODO 是否多次同步会产生多次变动, 注意处理多次推送通知的问题, 目前是
      */
-    private void updateOrderStatus(AllocationOrder allocationOrder, List<AllocationOrderDetail> details){
+    private void updateOrderStatus(AllocOrder allocOrder, List<AllocOrderDetail> details){
         // 如果是分账结束或失败, 不更新状态
-        String status = allocationOrder.getStatus();
+        String status = allocOrder.getStatus();
 
         // 如果是分账结束或失败, 不进行对订单进行处理
         List<String> list = Arrays.asList(AllocOrderStatusEnum.FINISH.getCode(), AllocOrderStatusEnum.FINISH_FAILED.getCode());
         if (!list.contains(status)){
             // 判断明细状态. 获取成功和失败的
             long successCount = details.stream()
-                    .map(AllocationOrderDetail::getResult)
+                    .map(AllocOrderDetail::getResult)
                     .filter(AllocDetailResultEnum.SUCCESS.getCode()::equals)
                     .count();
             long failCount = details.stream()
-                    .map(AllocationOrderDetail::getResult)
+                    .map(AllocOrderDetail::getResult)
                     .filter(AllocDetailResultEnum.FAIL.getCode()::equals)
                     .count();
 
             // 成功和失败都为0 表示进行中
             if (successCount == 0 && failCount == 0){
-                allocationOrder.setStatus(AllocOrderStatusEnum.ALLOCATION_PROCESSING.getCode())
+                allocOrder.setStatus(AllocOrderStatusEnum.ALLOCATION_PROCESSING.getCode())
                         .setResult(AllocOrderResultEnum.ALL_PENDING.getCode());
             } else {
                 if (failCount == details.size()){
                     // 全部失败
-                    allocationOrder.setStatus(AllocOrderStatusEnum.ALLOCATION_END.getCode())
+                    allocOrder.setStatus(AllocOrderStatusEnum.ALLOCATION_END.getCode())
                             .setResult(AllocOrderResultEnum.ALL_FAILED.getCode());
                 } else if (successCount == details.size()){
                     // 全部成功
-                    allocationOrder.setStatus(AllocOrderStatusEnum.ALLOCATION_END.getCode())
+                    allocOrder.setStatus(AllocOrderStatusEnum.ALLOCATION_END.getCode())
                             .setResult(AllocOrderResultEnum.ALL_SUCCESS.getCode());
                 } else {
                     // 部分成功
-                    allocationOrder.setStatus(AllocOrderStatusEnum.ALLOCATION_END.getCode())
+                    allocOrder.setStatus(AllocOrderStatusEnum.ALLOCATION_END.getCode())
                             .setResult(AllocOrderResultEnum.PART_SUCCESS.getCode());
                 }
             }
         }
-        allocationOrderDetailManager.updateAllById(details);
-        allocationOrderManager.updateById(allocationOrder);
+        allocOrderDetailManager.updateAllById(details);
+        allocationOrderManager.updateById(allocOrder);
 
         // 如果状态为完成, 发送通知
-        if (Objects.equals(AllocOrderStatusEnum.ALLOCATION_END.getCode(), allocationOrder.getStatus())){
+        if (Objects.equals(AllocOrderStatusEnum.ALLOCATION_END.getCode(), allocOrder.getStatus())){
             // 发送通知
-            clientNoticeService.registerAllocNotice(allocationOrder, null, details);
+            clientNoticeService.registerAllocNotice(allocOrder, details);
         }
     }
 
@@ -157,17 +157,17 @@ public class AllocationSyncService {
     /**
      * 保存同步记录
      */
-    private void saveRecord(AllocationOrder order, AllocRemoteSyncResult syncResult, String errorCode, String errorMsg){
+    private void saveRecord(AllocOrder order, AllocRemoteSyncResult syncResult, String errorCode, String errorMsg){
         PaySyncRecord paySyncRecord = new PaySyncRecord()
-                .setBizTradeNo(order.getBizAllocationNo())
-                .setTradeNo(order.getAllocationNo())
-                .setOutTradeNo(order.getOutAllocationNo())
+                .setBizTradeNo(order.getBizAllocNo())
+                .setTradeNo(order.getAllocNo())
+                .setOutTradeNo(order.getOutAllocNo())
                 .setSyncType(PaymentTypeEnum.ALLOCATION.getCode())
                 .setChannel(order.getChannel())
                 .setSyncInfo(syncResult.getSyncInfo())
                 .setErrorCode(errorCode)
                 .setErrorMsg(errorMsg)
-                .setClientIp(PaymentContextLocal.get().getRequestInfo().getClientIp());
+                .setClientIp(PaymentContextLocal.get().getClientInfo().getClientIp());
         paySyncRecordService.saveRecord(paySyncRecord);
     }
 }
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/allocation/strategy/allocation/AliPayAllocationStrategy.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/allocation/strategy/allocation/AliPayAllocationStrategy.java
index 1aa55744a68ac8293856243afe34ae36c805ba5a..68a8027d6e7119c7beca061eb8ce7c05f8a2ecf7 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/allocation/strategy/allocation/AliPayAllocationStrategy.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/allocation/strategy/allocation/AliPayAllocationStrategy.java
@@ -1,7 +1,8 @@
 package cn.daxpay.single.service.core.payment.allocation.strategy.allocation;
 
-import cn.daxpay.single.code.PayChannelEnum;
-import cn.daxpay.single.exception.pay.PayFailureException;
+import cn.daxpay.single.core.code.PayChannelEnum;
+import cn.daxpay.single.core.exception.ConfigNotEnableException;
+import cn.daxpay.single.core.exception.PayFailureException;
 import cn.daxpay.single.service.core.channel.alipay.entity.AliPayConfig;
 import cn.daxpay.single.service.core.channel.alipay.service.AliPayAllocationService;
 import cn.daxpay.single.service.core.channel.alipay.service.AliPayConfigService;
@@ -38,8 +39,8 @@ public class AliPayAllocationStrategy extends AbsAllocationStrategy {
      * 策略标识
      */
     @Override
-    public PayChannelEnum getChannel() {
-        return PayChannelEnum.ALI;
+    public String getChannel() {
+        return PayChannelEnum.ALI.getCode();
     }
 
     /**
@@ -50,9 +51,8 @@ public class AliPayAllocationStrategy extends AbsAllocationStrategy {
         this.aliPayConfig = aliPayConfigService.getConfig();
         // 判断是否支持分账
         if (Objects.equals(aliPayConfig.getAllocation(),false)){
-            throw new PayFailureException("支付宝支付配置不支持分账");
+            throw new ConfigNotEnableException("支付宝支付配置未开启分账");
         }
-        aliPayConfigService.initConfig(this.aliPayConfig);
     }
 
     /**
@@ -60,7 +60,7 @@ public class AliPayAllocationStrategy extends AbsAllocationStrategy {
      */
     @Override
     public void allocation() {
-        aliPayAllocationService.allocation(this.getAllocationOrder(), this.getAllocationOrderDetails());
+        aliPayAllocationService.allocation(this.getAllocOrder(), this.getAllocOrderDetails(), this.aliPayConfig);
     }
 
     /**
@@ -68,7 +68,7 @@ public class AliPayAllocationStrategy extends AbsAllocationStrategy {
      */
     @Override
     public void finish() {
-        aliPayAllocationService.finish(this.getAllocationOrder(), this.getAllocationOrderDetails());
+        aliPayAllocationService.finish(this.getAllocOrder(), this.getAllocOrderDetails(), this.aliPayConfig);
     }
 
     /**
@@ -76,7 +76,7 @@ public class AliPayAllocationStrategy extends AbsAllocationStrategy {
      */
     @Override
     public AllocRemoteSyncResult doSync() {
-        return aliPayAllocationService.sync(this.getAllocationOrder(), this.getAllocationOrderDetails());
+        return aliPayAllocationService.sync(this.getAllocOrder(), this.getAllocOrderDetails(), this.aliPayConfig);
     }
 
 }
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/allocation/strategy/allocation/WeChatPayAllocationStrategy.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/allocation/strategy/allocation/WeChatPayAllocationStrategy.java
index 039c05939a975ae86a2c1ddb7aececfb715439b4..63fdfa3ed20ff36e62cf67860e7c9c0d27a5f3f4 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/allocation/strategy/allocation/WeChatPayAllocationStrategy.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/allocation/strategy/allocation/WeChatPayAllocationStrategy.java
@@ -1,7 +1,9 @@
 package cn.daxpay.single.service.core.payment.allocation.strategy.allocation;
 
-import cn.daxpay.single.code.PayChannelEnum;
-import cn.daxpay.single.exception.pay.PayFailureException;
+import cn.daxpay.single.core.code.PayChannelEnum;
+import cn.daxpay.single.core.exception.ConfigNotEnableException;
+import cn.daxpay.single.core.exception.OperationFailException;
+import cn.daxpay.single.core.exception.PayFailureException;
 import cn.daxpay.single.service.core.channel.wechat.entity.WeChatPayConfig;
 import cn.daxpay.single.service.core.channel.wechat.service.WeChatPayAllocationService;
 import cn.daxpay.single.service.core.channel.wechat.service.WeChatPayConfigService;
@@ -37,8 +39,8 @@ public class WeChatPayAllocationStrategy extends AbsAllocationStrategy {
      * 策略标识
      */
     @Override
-    public PayChannelEnum getChannel() {
-        return PayChannelEnum.WECHAT;
+    public String getChannel() {
+        return PayChannelEnum.WECHAT.getCode();
     }
 
     /**
@@ -49,11 +51,11 @@ public class WeChatPayAllocationStrategy extends AbsAllocationStrategy {
         weChatPayConfig = weChatPayConfigService.getAndCheckConfig();
         // 判断是否支持分账
         if (Objects.equals(weChatPayConfig.getAllocation(),false)){
-            throw new PayFailureException("微信支付配置不支持分账");
+            throw new ConfigNotEnableException("微信支付未开启分账");
         }
         // 如果分账金额为0, 不发起分账
-        if (getAllocationOrder().getAmount() == 0){
-            throw new PayFailureException("微信订单的分账比例不正确或订单金额太小, 无法进行分账");
+        if (getAllocOrder().getAmount() == 0){
+            throw new OperationFailException("微信订单的分账比例不正确或订单金额太小, 无法进行分账");
         }
     }
 
@@ -62,7 +64,7 @@ public class WeChatPayAllocationStrategy extends AbsAllocationStrategy {
      */
     @Override
     public void allocation() {
-        weChatPayAllocationService.allocation(getAllocationOrder(), this.getAllocationOrderDetails(), weChatPayConfig);
+        weChatPayAllocationService.allocation(getAllocOrder(), this.getAllocOrderDetails(), weChatPayConfig);
     }
 
     /**
@@ -70,7 +72,7 @@ public class WeChatPayAllocationStrategy extends AbsAllocationStrategy {
      */
     @Override
     public void finish() {
-        weChatPayAllocationService.finish(getAllocationOrder(), weChatPayConfig);
+        weChatPayAllocationService.finish(getAllocOrder(), weChatPayConfig);
     }
 
     /**
@@ -78,7 +80,7 @@ public class WeChatPayAllocationStrategy extends AbsAllocationStrategy {
      */
     @Override
     public AllocRemoteSyncResult doSync() {
-        return weChatPayAllocationService.sync(this.getAllocationOrder(),this.getAllocationOrderDetails(),weChatPayConfig);
+        return weChatPayAllocationService.sync(this.getAllocOrder(),this.getAllocOrderDetails(),weChatPayConfig);
     }
 
 }
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/allocation/strategy/receiver/AliPayAllocationReceiverStrategy.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/allocation/strategy/receiver/AliPayAllocationReceiverStrategy.java
index a7e8971971745eedb69a4ca0489048ceb47dbbf9..607e48e8a490cfe2f1a04e6de049a20f67e3021f 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/allocation/strategy/receiver/AliPayAllocationReceiverStrategy.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/allocation/strategy/receiver/AliPayAllocationReceiverStrategy.java
@@ -1,7 +1,8 @@
 package cn.daxpay.single.service.core.payment.allocation.strategy.receiver;
 
-import cn.daxpay.single.code.PayChannelEnum;
-import cn.daxpay.single.exception.pay.PayFailureException;
+import cn.daxpay.single.core.code.PayChannelEnum;
+import cn.daxpay.single.core.exception.ConfigNotEnableException;
+import cn.bootx.platform.common.core.exception.ValidationFailedException;
 import cn.daxpay.single.service.core.channel.alipay.entity.AliPayConfig;
 import cn.daxpay.single.service.core.channel.alipay.service.AliPayAllocationReceiverService;
 import cn.daxpay.single.service.core.channel.alipay.service.AliPayConfigService;
@@ -36,8 +37,8 @@ public class AliPayAllocationReceiverStrategy extends AbsAllocationReceiverStrat
      * 策略标识
      */
     @Override
-    public PayChannelEnum getChannel() {
-        return PayChannelEnum.WECHAT;
+    public String getChannel() {
+        return PayChannelEnum.ALI.getCode();
     }
 
     /**
@@ -56,9 +57,8 @@ public class AliPayAllocationReceiverStrategy extends AbsAllocationReceiverStrat
         this.aliPayConfig = payConfigService.getAndCheckConfig();
         // 判断是否支持分账
         if (Objects.equals(aliPayConfig.getAllocation(),false)){
-            throw new PayFailureException("微信支付配置不支持分账");
+            throw new ConfigNotEnableException("微信支付配置未开启分账");
         }
-        payConfigService.initConfig(this.aliPayConfig);
     }
 
     /**
@@ -67,9 +67,9 @@ public class AliPayAllocationReceiverStrategy extends AbsAllocationReceiverStrat
     @Override
     public void bind() {
         if (!receiverService.validation(this.getAllocationReceiver())){
-            throw new PayFailureException("分账接收者参数未通过校验");
+            throw new ValidationFailedException("分账接收者参数未通过校验");
         }
-        receiverService.bind(this.getAllocationReceiver());
+        receiverService.bind(this.getAllocationReceiver(), this.aliPayConfig);
     }
 
     /**
@@ -78,8 +78,8 @@ public class AliPayAllocationReceiverStrategy extends AbsAllocationReceiverStrat
     @Override
     public void unbind() {
         if (!receiverService.validation(this.getAllocationReceiver())){
-            throw new PayFailureException("分账参数未通过校验");
+            throw new ValidationFailedException("分账参数未通过校验");
         }
-        receiverService.unbind(this.getAllocationReceiver());
+        receiverService.unbind(this.getAllocationReceiver(), this.aliPayConfig);
     }
 }
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/allocation/strategy/receiver/WeChatPayAllocationReceiverStrategy.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/allocation/strategy/receiver/WeChatPayAllocationReceiverStrategy.java
index 5291fca49d13ee6f275fd96ba079823d419f393d..8b1ca503b645fec2c5ce37a090ae7eef99d57cc1 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/allocation/strategy/receiver/WeChatPayAllocationReceiverStrategy.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/allocation/strategy/receiver/WeChatPayAllocationReceiverStrategy.java
@@ -1,7 +1,8 @@
 package cn.daxpay.single.service.core.payment.allocation.strategy.receiver;
 
-import cn.daxpay.single.code.PayChannelEnum;
-import cn.daxpay.single.exception.pay.PayFailureException;
+import cn.daxpay.single.core.code.PayChannelEnum;
+import cn.daxpay.single.core.exception.ConfigNotEnableException;
+import cn.bootx.platform.common.core.exception.ValidationFailedException;
 import cn.daxpay.single.service.core.channel.wechat.entity.WeChatPayConfig;
 import cn.daxpay.single.service.core.channel.wechat.service.WeChatPayAllocationReceiverService;
 import cn.daxpay.single.service.core.channel.wechat.service.WeChatPayConfigService;
@@ -36,8 +37,8 @@ public class WeChatPayAllocationReceiverStrategy extends AbsAllocationReceiverSt
      * 策略标识
      */
     @Override
-    public PayChannelEnum getChannel() {
-        return PayChannelEnum.WECHAT;
+    public String getChannel() {
+        return PayChannelEnum.WECHAT.getCode();
     }
 
     /**
@@ -56,7 +57,7 @@ public class WeChatPayAllocationReceiverStrategy extends AbsAllocationReceiverSt
         this.weChatPayConfig = payConfigService.getAndCheckConfig();
         // 判断是否支持分账
         if (Objects.equals(weChatPayConfig.getAllocation(),false)){
-            throw new PayFailureException("微信支付配置不支持分账");
+            throw new ConfigNotEnableException("微信支付配置未开启分账");
         }
     }
 
@@ -66,7 +67,7 @@ public class WeChatPayAllocationReceiverStrategy extends AbsAllocationReceiverSt
     @Override
     public void bind() {
         if (!receiverService.validation(this.getAllocationReceiver())){
-            throw new PayFailureException("分账接收者参数未通过校验");
+            throw new ValidationFailedException("分账接收者参数未通过校验");
         }
         receiverService.bind(this.getAllocationReceiver(),this.weChatPayConfig);
     }
@@ -77,7 +78,7 @@ public class WeChatPayAllocationReceiverStrategy extends AbsAllocationReceiverSt
     @Override
     public void unbind() {
         if (!receiverService.validation(this.getAllocationReceiver())){
-            throw new PayFailureException("分账参数未通过校验");
+            throw new ValidationFailedException("分账参数未通过校验");
         }
         receiverService.unbind(this.getAllocationReceiver(),this.weChatPayConfig);
     }
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/callback/service/PayCallbackService.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/callback/service/PayCallbackService.java
index 3971100fe72699d7f2702d110c3176495bddabdc..733510854e80befa2e228f853323077bc8ad7168 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/callback/service/PayCallbackService.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/callback/service/PayCallbackService.java
@@ -1,7 +1,7 @@
 package cn.daxpay.single.service.core.payment.callback.service;
 
 import cn.bootx.platform.common.core.util.LocalDateTimeUtil;
-import cn.daxpay.single.code.PayStatusEnum;
+import cn.daxpay.single.core.code.PayStatusEnum;
 import cn.daxpay.single.service.code.PayCallbackStatusEnum;
 import cn.daxpay.single.service.code.PayRepairWayEnum;
 import cn.daxpay.single.service.common.context.CallbackLocal;
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/callback/service/RefundCallbackService.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/callback/service/RefundCallbackService.java
index dde3462d80030e7f152ffb67fc8558e6822003bd..3b7f2b2407968b913b0a3db567fcae32a80c1614 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/callback/service/RefundCallbackService.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/callback/service/RefundCallbackService.java
@@ -1,6 +1,6 @@
 package cn.daxpay.single.service.core.payment.callback.service;
 
-import cn.daxpay.single.code.RefundStatusEnum;
+import cn.daxpay.single.core.code.RefundStatusEnum;
 import cn.daxpay.single.service.code.PayCallbackStatusEnum;
 import cn.daxpay.single.service.code.RefundRepairWayEnum;
 import cn.daxpay.single.service.common.context.CallbackLocal;
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/cancel/service/PayCancelService.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/cancel/service/PayCancelService.java
new file mode 100644
index 0000000000000000000000000000000000000000..673728dfd1118dd448650b9e158b8a5a0ae7578d
--- /dev/null
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/cancel/service/PayCancelService.java
@@ -0,0 +1,116 @@
+package cn.daxpay.single.service.core.payment.cancel.service;
+
+import cn.bootx.platform.common.core.exception.RepetitiveOperationException;
+import cn.daxpay.single.core.code.PayStatusEnum;
+import cn.daxpay.single.core.exception.OperationFailException;
+import cn.daxpay.single.core.exception.TradeNotExistException;
+import cn.daxpay.single.core.exception.TradeStatusErrorException;
+import cn.daxpay.single.core.param.payment.pay.PayCancelParam;
+import cn.daxpay.single.core.result.pay.PayCancelResult;
+import cn.daxpay.single.service.code.PayCloseTypeEnum;
+import cn.daxpay.single.service.common.local.PaymentContextLocal;
+import cn.daxpay.single.service.core.order.pay.entity.PayOrder;
+import cn.daxpay.single.service.core.order.pay.service.PayOrderQueryService;
+import cn.daxpay.single.service.core.order.pay.service.PayOrderService;
+import cn.daxpay.single.service.core.payment.notice.service.ClientNoticeService;
+import cn.daxpay.single.service.core.record.close.entity.PayCloseRecord;
+import cn.daxpay.single.service.core.record.close.service.PayCloseRecordService;
+import cn.daxpay.single.service.func.AbsPayCancelStrategy;
+import cn.daxpay.single.service.util.PayStrategyFactory;
+import com.baomidou.lock.LockInfo;
+import com.baomidou.lock.LockTemplate;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+import java.time.LocalDateTime;
+import java.util.Objects;
+
+/**
+ * 支付关闭和撤销服务
+ * @author xxm
+ * @since 2023/12/18
+ */
+@Slf4j
+@Service
+@RequiredArgsConstructor
+public class PayCancelService {
+    private final PayOrderService payOrderService;
+    private final PayOrderQueryService payOrderQueryService;
+    private final PayCloseRecordService payCloseRecordService;
+    private final ClientNoticeService clientsService;;
+
+    private final LockTemplate lockTemplate;
+
+    /**
+     * 撤销支付
+     */
+    public PayCancelResult cancel(PayCancelParam param){
+        PayOrder payOrder = payOrderQueryService.findByBizOrOrderNo(param.getOrderNo(), param.getBizOrderNo())
+                .orElseThrow(() -> new TradeNotExistException("支付订单不存在"));
+        LockInfo lock = lockTemplate.lock("payment:cancel:" + payOrder.getId(),10000, 50);
+        if (Objects.isNull(lock)){
+            throw new RepetitiveOperationException("支付订单已在撤销中,请勿重复发起");
+        }
+        try {
+            PayCancelResult result = new PayCancelResult();
+            // 状态检查, 只有支付中可以进行撤销支付
+            if (!Objects.equals(payOrder.getStatus(), PayStatusEnum.PROGRESS.getCode())) {
+                throw new TradeStatusErrorException("订单不是支付中, 无法进行撤销订单");
+            }
+            try {
+                AbsPayCancelStrategy strategy = PayStrategyFactory.create(payOrder.getChannel(), AbsPayCancelStrategy.class);
+                // 设置支付订单
+                strategy.setOrder(payOrder);
+                // 撤销前准备
+                strategy.doBeforeCancelHandler();
+                // 执行撤销策略
+                strategy.doCancelHandler();
+                // 成功处理
+                this.successHandler(payOrder);
+                // 返回结果
+                return result;
+            } catch (Exception e) {
+                log.error("撤销订单失败, id: {}:", payOrder.getId());
+                log.error("撤销订单失败:", e);
+                // 记录撤销失败的记录
+                this.saveRecord(payOrder, false, e.getMessage());
+                throw new OperationFailException("撤销订单失败");
+            }
+        } finally {
+            lockTemplate.releaseLock(lock);
+        }
+    }
+
+    /**
+     * 成功后处理方法
+     */
+    private void successHandler(PayOrder payOrder){
+        // 撤销订单
+        payOrder.setStatus(PayStatusEnum.CANCEL.getCode())
+                .setCloseTime(LocalDateTime.now());
+        payOrderService.updateById(payOrder);
+        // 发送通知
+        clientsService.registerPayNotice(payOrder);
+        this.saveRecord(payOrder,true,null);
+    }
+
+    /**
+     * 保存撤销记录
+     */
+    private void saveRecord(PayOrder payOrder, boolean closed, String errMsg){
+        String clientIp = PaymentContextLocal.get()
+                .getClientInfo()
+                .getClientIp();
+        PayCloseRecord record = new PayCloseRecord()
+                .setOrderNo(payOrder.getOrderNo())
+                .setBizOrderNo(payOrder.getBizOrderNo())
+                .setChannel(payOrder.getChannel())
+                .setCloseType(PayCloseTypeEnum.CANCEL.getCode())
+                .setClosed(closed)
+                .setErrorMsg(errMsg)
+                .setClientIp(clientIp);
+        payCloseRecordService.saveRecord(record);
+    }
+
+}
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/cancel/strategy/AliPayCancelStrategy.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/cancel/strategy/AliPayCancelStrategy.java
new file mode 100644
index 0000000000000000000000000000000000000000..de6277d6627659f3e929b340b6b35ba1ed374e48
--- /dev/null
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/cancel/strategy/AliPayCancelStrategy.java
@@ -0,0 +1,52 @@
+package cn.daxpay.single.service.core.payment.cancel.strategy;
+
+import cn.daxpay.single.core.code.PayChannelEnum;
+import cn.daxpay.single.service.core.channel.alipay.entity.AliPayConfig;
+import cn.daxpay.single.service.core.channel.alipay.service.AliPayCloseService;
+import cn.daxpay.single.service.core.channel.alipay.service.AliPayConfigService;
+import cn.daxpay.single.service.func.AbsPayCancelStrategy;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.context.annotation.Scope;
+import org.springframework.stereotype.Service;
+
+import static org.springframework.beans.factory.config.BeanDefinition.SCOPE_PROTOTYPE;
+
+/**
+ * 支付宝撤销策略
+ * @author xxm
+ * @since 2024/6/5
+ */
+@Slf4j
+@Scope(SCOPE_PROTOTYPE)
+@Service
+@RequiredArgsConstructor
+public class AliPayCancelStrategy extends AbsPayCancelStrategy {
+
+    private final AliPayConfigService alipayConfigService;
+
+    private final AliPayCloseService aliPayCloseService;
+
+    private AliPayConfig config;
+
+    @Override
+    public String getChannel() {
+        return PayChannelEnum.ALI.getCode();
+    }
+
+    /**
+     * 关闭前的处理方式
+     */
+    @Override
+    public void doBeforeCancelHandler() {
+        this.config = alipayConfigService.getConfig();
+    }
+
+    /**
+     * 关闭操作
+     */
+    @Override
+    public void doCancelHandler() {
+        aliPayCloseService.cancel(this.getOrder(),this.config);
+    }
+}
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/cancel/strategy/WeChatPayCancelStrategy.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/cancel/strategy/WeChatPayCancelStrategy.java
new file mode 100644
index 0000000000000000000000000000000000000000..5d403e37410d35181cf72ac07aff0670687b5ee6
--- /dev/null
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/cancel/strategy/WeChatPayCancelStrategy.java
@@ -0,0 +1,58 @@
+package cn.daxpay.single.service.core.payment.cancel.strategy;
+
+import cn.daxpay.single.core.code.PayChannelEnum;
+import cn.daxpay.single.core.code.PayMethodEnum;
+import cn.daxpay.single.service.core.channel.wechat.entity.WeChatPayConfig;
+import cn.daxpay.single.service.core.channel.wechat.service.WeChatPayCloseService;
+import cn.daxpay.single.service.core.channel.wechat.service.WeChatPayConfigService;
+import cn.daxpay.single.service.func.AbsPayCancelStrategy;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.context.annotation.Scope;
+import org.springframework.stereotype.Service;
+
+import java.util.Objects;
+
+import static org.springframework.beans.factory.config.BeanDefinition.SCOPE_PROTOTYPE;
+
+/**
+ * 微信支付关闭策略
+ * @author xxm
+ * @since 2023/12/30
+ */
+@Slf4j
+@Scope(SCOPE_PROTOTYPE)
+@Service
+@RequiredArgsConstructor
+public class WeChatPayCancelStrategy extends AbsPayCancelStrategy {
+
+    private final WeChatPayConfigService weChatPayConfigService;
+    private final WeChatPayCloseService weChatPayCloseService;
+
+    private WeChatPayConfig weChatPayConfig;
+
+    @Override
+    public String getChannel() {
+        return PayChannelEnum.WECHAT.getCode();
+    }
+
+    /**
+     * 关闭前的处理方式
+     */
+    @Override
+    public void doBeforeCancelHandler() {
+        // 非当面付订单不可以关闭
+        if (!Objects.equals(this.getOrder().getMethod(), PayMethodEnum.BARCODE.getCode())) {
+            throw new RuntimeException("微信当面付订单才可以被撤销");
+        }
+        this.weChatPayConfig = weChatPayConfigService.getConfig();
+    }
+
+    /**
+     * 关闭操作
+     */
+    @Override
+    public void doCancelHandler() {
+        weChatPayCloseService.cancel(this.getOrder(), weChatPayConfig);
+    }
+}
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/close/factory/PayCloseStrategyFactory.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/close/factory/PayCloseStrategyFactory.java
deleted file mode 100644
index 6119753b7ac8245f49eb81b478f3af25d80fac3a..0000000000000000000000000000000000000000
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/close/factory/PayCloseStrategyFactory.java
+++ /dev/null
@@ -1,42 +0,0 @@
-package cn.daxpay.single.service.core.payment.close.factory;
-
-import cn.daxpay.single.code.PayChannelEnum;
-import cn.daxpay.single.exception.pay.PayUnsupportedMethodException;
-import cn.daxpay.single.service.core.payment.close.strategy.AliPayCloseStrategy;
-import cn.daxpay.single.service.core.payment.close.strategy.UnionPayCloseStrategy;
-import cn.daxpay.single.service.core.payment.close.strategy.WeChatPayCloseStrategy;
-import cn.daxpay.single.service.func.AbsPayCloseStrategy;
-import cn.hutool.extra.spring.SpringUtil;
-import lombok.experimental.UtilityClass;
-
-/**
- * 支付关闭策略工厂
- * @author xxm
- * @since 2023/12/29
- */
-@UtilityClass
-public class PayCloseStrategyFactory {
-
-    /**
-     * 根据传入的支付通道创建策略
-     * @return 支付策略
-     */
-    public static AbsPayCloseStrategy create(String channel) {
-        PayChannelEnum channelEnum = PayChannelEnum.findByCode(channel);
-        AbsPayCloseStrategy strategy;
-        switch (channelEnum) {
-            case ALI:
-                strategy = SpringUtil.getBean(AliPayCloseStrategy.class);
-                break;
-            case WECHAT:
-                strategy = SpringUtil.getBean(WeChatPayCloseStrategy.class);
-                break;
-            case UNION_PAY:
-                strategy = SpringUtil.getBean(UnionPayCloseStrategy.class);
-                break;
-            default:
-                throw new PayUnsupportedMethodException();
-        }
-        return strategy;
-    }
-}
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/close/service/PayCloseService.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/close/service/PayCloseService.java
index 3ebce3a2bc700c73a17580b8a03bb93eaac748d0..4ec6175b427b9433ecc0c444e7b8d08306fcd928 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/close/service/PayCloseService.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/close/service/PayCloseService.java
@@ -1,19 +1,23 @@
 package cn.daxpay.single.service.core.payment.close.service;
 
 import cn.bootx.platform.common.core.exception.RepetitiveOperationException;
-import cn.daxpay.single.code.PayStatusEnum;
-import cn.daxpay.single.exception.pay.PayFailureException;
-import cn.daxpay.single.param.payment.pay.PayCloseParam;
-import cn.daxpay.single.result.pay.PayCloseResult;
+import cn.daxpay.single.core.code.PayStatusEnum;
+import cn.daxpay.single.core.exception.OperationFailException;
+import cn.daxpay.single.core.exception.PayFailureException;
+import cn.daxpay.single.core.exception.TradeNotExistException;
+import cn.daxpay.single.core.exception.TradeStatusErrorException;
+import cn.daxpay.single.core.param.payment.pay.PayCloseParam;
+import cn.daxpay.single.core.result.pay.PayCloseResult;
+import cn.daxpay.single.service.code.PayCloseTypeEnum;
 import cn.daxpay.single.service.common.local.PaymentContextLocal;
 import cn.daxpay.single.service.core.order.pay.entity.PayOrder;
 import cn.daxpay.single.service.core.order.pay.service.PayOrderQueryService;
 import cn.daxpay.single.service.core.order.pay.service.PayOrderService;
-import cn.daxpay.single.service.core.payment.close.factory.PayCloseStrategyFactory;
 import cn.daxpay.single.service.core.payment.notice.service.ClientNoticeService;
 import cn.daxpay.single.service.core.record.close.entity.PayCloseRecord;
 import cn.daxpay.single.service.core.record.close.service.PayCloseRecordService;
 import cn.daxpay.single.service.func.AbsPayCloseStrategy;
+import cn.daxpay.single.service.util.PayStrategyFactory;
 import com.baomidou.lock.LockInfo;
 import com.baomidou.lock.LockTemplate;
 import lombok.RequiredArgsConstructor;
@@ -43,8 +47,8 @@ public class PayCloseService {
      * 关闭支付
      */
     public PayCloseResult close(PayCloseParam param){
-        PayOrder payOrder = payOrderQueryService.findByBizOrOrderNo(param.getOrderNo(), param.getBizTradeNo())
-                .orElseThrow(() -> new PayFailureException("支付订单不存在"));
+        PayOrder payOrder = payOrderQueryService.findByBizOrOrderNo(param.getOrderNo(), param.getBizOrderNo())
+                .orElseThrow(() -> new TradeNotExistException("支付订单不存在"));
         LockInfo lock = lockTemplate.lock("payment:close:" + payOrder.getId(),10000, 50);
         if (Objects.isNull(lock)){
             throw new RepetitiveOperationException("支付订单已在关闭中,请勿重复发起");
@@ -63,10 +67,10 @@ public class PayCloseService {
         PayCloseResult result = new PayCloseResult();
         // 状态检查, 只有支付中可以进行取消支付
         if (!Objects.equals(payOrder.getStatus(), PayStatusEnum.PROGRESS.getCode())) {
-            throw new PayFailureException("订单不是支付中, 无法进行关闭订单");
+            throw new TradeStatusErrorException("订单不是支付中, 无法进行关闭订单");
         }
         try {
-            AbsPayCloseStrategy strategy = PayCloseStrategyFactory.create(payOrder.getChannel());
+            AbsPayCloseStrategy strategy = PayStrategyFactory.create(payOrder.getChannel(), AbsPayCloseStrategy.class);
             // 设置支付订单
             strategy.setOrder(payOrder);
             // 关闭前准备
@@ -82,8 +86,11 @@ public class PayCloseService {
             log.error("关闭订单失败:", e);
             // 记录关闭失败的记录
             this.saveRecord(payOrder, false, e.getMessage());
-            throw new PayFailureException("关闭订单失败");
-
+            result.setCode(1).setMsg(e.getMessage());
+            if (e instanceof PayFailureException){
+                throw e;
+            }
+            throw new OperationFailException("关闭订单失败");
         }
     }
 
@@ -96,7 +103,7 @@ public class PayCloseService {
                 .setCloseTime(LocalDateTime.now());
         payOrderService.updateById(payOrder);
         // 发送通知
-        clientsService.registerPayNotice(payOrder,null);
+        clientsService.registerPayNotice(payOrder);
         this.saveRecord(payOrder,true,null);
     }
 
@@ -105,15 +112,17 @@ public class PayCloseService {
      */
     private void saveRecord(PayOrder payOrder, boolean closed, String errMsg){
         String clientIp = PaymentContextLocal.get()
-                .getRequestInfo()
+                .getClientInfo()
                 .getClientIp();
         PayCloseRecord record = new PayCloseRecord()
                 .setOrderNo(payOrder.getOrderNo())
                 .setBizOrderNo(payOrder.getBizOrderNo())
                 .setChannel(payOrder.getChannel())
+                .setCloseType(PayCloseTypeEnum.CLOSE.getCode())
                 .setClosed(closed)
                 .setErrorMsg(errMsg)
                 .setClientIp(clientIp);
         payCloseRecordService.saveRecord(record);
     }
+
 }
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/close/strategy/AliPayCloseStrategy.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/close/strategy/AliPayCloseStrategy.java
index 2ad4cd5facb2984c511325bfbac646846aedabb7..898217514037039273cb1866b63a4f6a1617dedb 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/close/strategy/AliPayCloseStrategy.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/close/strategy/AliPayCloseStrategy.java
@@ -1,6 +1,6 @@
 package cn.daxpay.single.service.core.payment.close.strategy;
 
-import cn.daxpay.single.code.PayChannelEnum;
+import cn.daxpay.single.core.code.PayChannelEnum;
 import cn.daxpay.single.service.core.channel.alipay.entity.AliPayConfig;
 import cn.daxpay.single.service.core.channel.alipay.service.AliPayCloseService;
 import cn.daxpay.single.service.core.channel.alipay.service.AliPayConfigService;
@@ -27,9 +27,11 @@ public class AliPayCloseStrategy extends AbsPayCloseStrategy {
 
     private final AliPayCloseService aliPayCloseService;
 
+    private AliPayConfig alipayConfig;
+
     @Override
-    public PayChannelEnum getChannel() {
-        return PayChannelEnum.ALI;
+    public String getChannel() {
+        return PayChannelEnum.ALI.getCode();
     }
 
     /**
@@ -37,8 +39,7 @@ public class AliPayCloseStrategy extends AbsPayCloseStrategy {
      */
     @Override
     public void doBeforeCloseHandler() {
-        AliPayConfig config = alipayConfigService.getConfig();
-        alipayConfigService.initConfig(config);
+        this.alipayConfig = alipayConfigService.getConfig();
     }
 
     /**
@@ -46,6 +47,6 @@ public class AliPayCloseStrategy extends AbsPayCloseStrategy {
      */
     @Override
     public void doCloseHandler() {
-        aliPayCloseService.close(this.getOrder());
+        aliPayCloseService.close(this.getOrder(), this.alipayConfig);
     }
 }
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/close/strategy/UnionPayCloseStrategy.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/close/strategy/UnionPayCloseStrategy.java
index d0b53bd34a0674595780df7e65840758817bfb86..ff9378dda9b586dd7006dbec6b27cd6ac346583e 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/close/strategy/UnionPayCloseStrategy.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/close/strategy/UnionPayCloseStrategy.java
@@ -1,6 +1,6 @@
 package cn.daxpay.single.service.core.payment.close.strategy;
 
-import cn.daxpay.single.code.PayChannelEnum;
+import cn.daxpay.single.core.code.PayChannelEnum;
 import cn.daxpay.single.service.core.channel.union.entity.UnionPayConfig;
 import cn.daxpay.single.service.core.channel.union.service.UnionPayCloseService;
 import cn.daxpay.single.service.core.channel.union.service.UnionPayConfigService;
@@ -32,8 +32,8 @@ public class UnionPayCloseStrategy extends AbsPayCloseStrategy {
 
 
     @Override
-    public PayChannelEnum getChannel() {
-        return PayChannelEnum.UNION_PAY;
+    public String getChannel() {
+        return PayChannelEnum.UNION_PAY.getCode();
     }
 
     /**
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/close/strategy/WeChatPayCloseStrategy.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/close/strategy/WeChatPayCloseStrategy.java
index 6054635fefc83faeee95f9123827bf18f285dc3f..b9ef9c0134256539eef3ff625097b8e885f31c7d 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/close/strategy/WeChatPayCloseStrategy.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/close/strategy/WeChatPayCloseStrategy.java
@@ -1,6 +1,6 @@
 package cn.daxpay.single.service.core.payment.close.strategy;
 
-import cn.daxpay.single.code.PayChannelEnum;
+import cn.daxpay.single.core.code.PayChannelEnum;
 import cn.daxpay.single.service.core.channel.wechat.entity.WeChatPayConfig;
 import cn.daxpay.single.service.core.channel.wechat.service.WeChatPayCloseService;
 import cn.daxpay.single.service.core.channel.wechat.service.WeChatPayConfigService;
@@ -29,8 +29,8 @@ public class WeChatPayCloseStrategy extends AbsPayCloseStrategy {
     private WeChatPayConfig weChatPayConfig;
 
     @Override
-    public PayChannelEnum getChannel() {
-        return PayChannelEnum.WECHAT;
+    public String getChannel() {
+        return PayChannelEnum.WECHAT.getCode();
     }
 
     /**
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/common/aop/InitPlatformInfoAop.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/common/aop/InitPlatformInfoAop.java
index 57fd9fc38d515aa8d2fab8da94b19bf88a6fd872..5a943beb09055deb5d37544a0eeef63340279c6e 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/common/aop/InitPlatformInfoAop.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/common/aop/InitPlatformInfoAop.java
@@ -1,11 +1,10 @@
 package cn.daxpay.single.service.core.payment.common.aop;
 
-import cn.bootx.platform.common.core.exception.DataNotExistException;
-import cn.daxpay.single.exception.pay.PayFailureException;
+import cn.daxpay.single.core.exception.ConfigErrorException;
+import cn.daxpay.single.core.exception.ConfigNotEnableException;
 import cn.daxpay.single.service.annotation.InitPaymentContext;
 import cn.daxpay.single.service.core.system.config.dao.PayApiConfigManager;
 import cn.daxpay.single.service.core.system.config.entity.PayApiConfig;
-import cn.daxpay.single.service.core.system.config.service.PayApiConfigService;
 import cn.daxpay.single.service.core.system.config.service.PlatformConfigService;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
@@ -26,8 +25,6 @@ import org.springframework.stereotype.Component;
 @RequiredArgsConstructor
 public class InitPlatformInfoAop {
 
-    private final PayApiConfigService payApiConfigService;
-
     private final PayApiConfigManager payApiConfigManager;
 
     private final PlatformConfigService platformConfigService;
@@ -40,12 +37,10 @@ public class InitPlatformInfoAop {
         String code = platformContext.value();
         // 接口信息
         PayApiConfig api = payApiConfigManager.findByCode(code)
-                .orElseThrow(() -> new DataNotExistException("未找到接口信息"));
+                .orElseThrow(() -> new ConfigErrorException("未找到接口信息"));
         if (!api.isEnable()){
-            throw new PayFailureException("该接口权限未开放");
+            throw new ConfigNotEnableException("该接口权限未开放");
         }
-        // 设置接口信息
-        payApiConfigService.initApiInfo(api);
         // 初始化平台信息
         platformConfigService.initPlatform();
         return pjp.proceed();
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/common/aop/PaymentVerifySignAop.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/common/aop/PaymentVerifyAop.java
similarity index 54%
rename from daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/common/aop/PaymentVerifySignAop.java
rename to daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/common/aop/PaymentVerifyAop.java
index 0d4806e113798fdb73d4e1ff852dd1cf0427898f..c68acce0f5e18d99f9638916bc8ee990f9f8a90e 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/common/aop/PaymentVerifySignAop.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/common/aop/PaymentVerifyAop.java
@@ -2,12 +2,13 @@ package cn.daxpay.single.service.core.payment.common.aop;
 
 import cn.bootx.platform.common.core.rest.ResResult;
 import cn.bootx.platform.common.core.util.ValidationUtil;
-import cn.daxpay.single.exception.pay.PayFailureException;
-import cn.daxpay.single.param.PaymentCommonParam;
-import cn.daxpay.single.result.PaymentCommonResult;
-import cn.daxpay.single.service.annotation.PaymentSign;
-import cn.daxpay.single.service.core.payment.common.service.PaymentSignService;
-import cn.daxpay.single.util.DaxRes;
+import cn.bootx.platform.common.core.exception.ValidationFailedException;
+import cn.daxpay.single.core.exception.PayFailureException;
+import cn.daxpay.single.core.param.PaymentCommonParam;
+import cn.daxpay.single.core.result.PaymentCommonResult;
+import cn.daxpay.single.core.util.DaxRes;
+import cn.daxpay.single.service.annotation.PaymentVerify;
+import cn.daxpay.single.service.core.payment.common.service.PaymentAssistService;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.aspectj.lang.ProceedingJoinPoint;
@@ -27,23 +28,28 @@ import org.springframework.stereotype.Component;
 @Component
 @Order()
 @RequiredArgsConstructor
-public class PaymentVerifySignAop {
-    private final PaymentSignService paymentSignService;
+public class PaymentVerifyAop {
+    private final PaymentAssistService paymentAssistService;
 
-    @Around("@annotation(paymentSign)")
-    public Object beforeMethod(ProceedingJoinPoint pjp, @SuppressWarnings("unused") PaymentSign paymentSign) throws Throwable {
+    @Around("@annotation(paymentVerify)")
+    public Object beforeMethod(ProceedingJoinPoint pjp, @SuppressWarnings("unused") PaymentVerify paymentVerify) throws Throwable {
         Object[] args = pjp.getArgs();
         if (args.length == 0){
-            throw new PayFailureException("支付方法至少有一个参数,并且需要签名支付参数需要放在第一位");
+            throw new ValidationFailedException("支付方法至少有一个参数,并且需要签名支付参数需要放在第一位");
         }
         Object param = args[0];
         if (param instanceof PaymentCommonParam){
             // 参数校验
             ValidationUtil.validateParam(param);
-            // 参数验签
-            paymentSignService.verifySign((PaymentCommonParam) param);
+            // 终端信息初始化
+            paymentAssistService.initClient((PaymentCommonParam) param);
+            // 参数签名校验
+            paymentAssistService.signVerify((PaymentCommonParam) param);
+            // 参数请求时间校验
+            paymentAssistService.reqTimeoutVerify((PaymentCommonParam) param);
+
         } else {
-            throw new PayFailureException("支付参数需要继承PayCommonParam");
+            throw new ValidationFailedException("支付参数需要继承PayCommonParam");
         }
         Object proceed;
         try {
@@ -54,19 +60,19 @@ public class PaymentVerifySignAop {
             // todo 后期错误码统一管理后进行更改
             commonResult.setCode(1);
             commonResult.setMsg(ex.getMessage());
-            paymentSignService.sign(commonResult);
+            paymentAssistService.sign(commonResult);
             return DaxRes.ok(commonResult);
         }
         // 对返回值进行签名
         if (proceed instanceof ResResult){
             Object data = ((ResResult<?>) proceed).getData();
             if (data instanceof PaymentCommonResult){
-                paymentSignService.sign((PaymentCommonResult) data);
+                paymentAssistService.sign((PaymentCommonResult) data);
             } else {
-                throw new PayFailureException("支付方法返回类型需要为 ResResult<T extends PaymentCommonResult> 格式");
+                throw new ValidationFailedException("支付方法返回类型需要为 ResResult<T extends PaymentCommonResult> 格式");
             }
         } else {
-            throw new PayFailureException("支付方法返回类型需要为 ResResult<T extends PaymentCommonResult> 格式");
+            throw new ValidationFailedException("支付方法返回类型需要为 ResResult<T extends PaymentCommonResult> 格式");
         }
         return proceed;
     }
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/common/service/PaymentAssistService.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/common/service/PaymentAssistService.java
index 93054f93b9070e78bcaad07fb6d607be3197498a..ecf6943bdeaa9c5eb5e599cc6430180596929515 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/common/service/PaymentAssistService.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/common/service/PaymentAssistService.java
@@ -1,13 +1,24 @@
 package cn.daxpay.single.service.core.payment.common.service;
 
-import cn.daxpay.single.param.PaymentCommonParam;
-import cn.daxpay.single.service.common.context.RequestLocal;
+import cn.bootx.platform.common.core.util.LocalDateTimeUtil;
+import cn.daxpay.single.core.code.PaySignTypeEnum;
+import cn.bootx.platform.common.core.exception.ValidationFailedException;
+import cn.daxpay.single.core.exception.VerifySignFailedException;
+import cn.daxpay.single.core.param.PaymentCommonParam;
+import cn.daxpay.single.core.result.PaymentCommonResult;
+import cn.daxpay.single.core.util.PaySignUtil;
+import cn.daxpay.single.service.common.context.ClientLocal;
+import cn.daxpay.single.service.common.context.PlatformLocal;
 import cn.daxpay.single.service.common.local.PaymentContextLocal;
 import cn.daxpay.single.service.core.system.config.service.PlatformConfigService;
+import cn.hutool.core.bean.BeanUtil;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 
+import java.time.LocalDateTime;
+import java.util.Objects;
+
 /**
  * 支付、退款等各类操作支持服务
  * @author xxm
@@ -20,19 +31,89 @@ public class PaymentAssistService {
     private final PlatformConfigService platformConfigService;
 
     /**
-     * 初始化上下文
+     * 初始化请求相关信息上下文
      */
-    public void initContext(PaymentCommonParam paymentCommonParam){
-        platformConfigService.initPlatform();
-        this.initRequest(paymentCommonParam);
+    public void initClient(PaymentCommonParam paymentCommonParam){
+        ClientLocal request = PaymentContextLocal.get().getClientInfo();
+        request.setClientIp(paymentCommonParam.getClientIp());
     }
+
     /**
-     * 初始化请求相关信息上下文
+     * 入参签名校验
+     */
+    public void signVerify(PaymentCommonParam param) {
+        PlatformLocal platformInfo = PaymentContextLocal.get().getPlatformInfo();
+        // 如果平台配置所有属性为空, 进行初始化
+        if (BeanUtil.isEmpty(platformInfo)){
+            platformConfigService.initPlatform();
+        }
+        // 判断当前接口是否不需要签名
+        if (!platformInfo.isReqSign()){
+            return;
+        }
+        // 参数转换为Map对象
+        PlatformLocal platform = PaymentContextLocal.get().getPlatformInfo();
+        String signType = platform.getSignType();
+        if (Objects.equals(PaySignTypeEnum.HMAC_SHA256.getCode(), signType)){
+            boolean verified = PaySignUtil.verifyHmacSha256Sign(param, platform.getSignSecret(), param.getSign());
+            if (!verified){
+                throw new VerifySignFailedException();
+            }
+        } else if (Objects.equals(PaySignTypeEnum.MD5.getCode(), signType)){
+            boolean verified = PaySignUtil.verifyMd5Sign(param, platform.getSignSecret(), param.getSign());
+            if (!verified){
+                throw new VerifySignFailedException();
+            }
+        } else {
+            throw new VerifySignFailedException();
+        }
+    }
+
+    /**
+     * 请求有效时间校验
+     */
+    public void reqTimeoutVerify(PaymentCommonParam param) {
+        PlatformLocal platformInfo = PaymentContextLocal.get().getPlatformInfo();
+        // 如果平台配置所有属性为空, 进行初始化
+        if (BeanUtil.isEmpty(platformInfo)){
+            platformConfigService.initPlatform();
+        }
+        if (Objects.nonNull(platformInfo.getReqTimeout()) ){
+            LocalDateTime now = LocalDateTime.now();
+            // 时间差值(秒)
+            long durationSeconds = Math.abs(LocalDateTimeUtil.between(now, param.getReqTime()).getSeconds());
+            // 当前时间是否晚于请求时间
+            if (LocalDateTimeUtil.lt(now, param.getReqTime())){
+                // 请求时间比服务器时间晚, 超过一分钟直接打回
+                if (durationSeconds > 60){
+                    throw new ValidationFailedException("请求时间晚于服务器接收到的时间,请检查");
+                }
+            } else {
+                // 请求时间比服务器时间早, 超过配置时间直接打回
+                if (durationSeconds > platformInfo.getReqTimeout()){
+                    throw new ValidationFailedException("请求已过期,请重新发送!");
+                }
+            }
+
+        }
+    }
+
+    /**
+     * 对对象进行签名
      */
-    public void initRequest(PaymentCommonParam paymentCommonParam){
-        RequestLocal request = PaymentContextLocal.get().getRequestInfo();
-        request.setClientIp(paymentCommonParam.getClientIp())
-                .setSign(paymentCommonParam.getSign())
-                .setReqTime(paymentCommonParam.getReqTime());
+    public void sign(PaymentCommonResult result) {
+        PlatformLocal platformInfo = PaymentContextLocal.get().getPlatformInfo();
+        // 如果平台配置所有属性为空, 进行初始化
+        if (BeanUtil.isEmpty(platformInfo)){
+            platformConfigService.initPlatform();
+        }
+        String signType = platformInfo.getSignType();
+        if (Objects.equals(PaySignTypeEnum.HMAC_SHA256.getCode(), signType)){
+            result.setSign(PaySignUtil.hmacSha256Sign(result, platformInfo.getSignSecret()));
+        } else if (Objects.equals(PaySignTypeEnum.MD5.getCode(), signType)){
+            result.setSign(PaySignUtil.md5Sign(result, platformInfo.getSignSecret()));
+        } else {
+            throw new ValidationFailedException("未获取到签名方式,请检查");
+        }
     }
 }
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/common/service/PaymentSignService.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/common/service/PaymentSignService.java
deleted file mode 100644
index 96ae3ecf241952a3c29dfcdfd780b496e9a42da9..0000000000000000000000000000000000000000
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/common/service/PaymentSignService.java
+++ /dev/null
@@ -1,81 +0,0 @@
-package cn.daxpay.single.service.core.payment.common.service;
-
-import cn.daxpay.single.code.PaySignTypeEnum;
-import cn.daxpay.single.exception.pay.PayFailureException;
-import cn.daxpay.single.param.PaymentCommonParam;
-import cn.daxpay.single.result.PaymentCommonResult;
-import cn.daxpay.single.service.common.context.ApiInfoLocal;
-import cn.daxpay.single.service.common.context.PlatformLocal;
-import cn.daxpay.single.service.common.local.PaymentContextLocal;
-import cn.daxpay.single.service.core.system.config.service.PlatformConfigService;
-import cn.daxpay.single.util.PaySignUtil;
-import cn.hutool.core.bean.BeanUtil;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Service;
-
-import java.util.Objects;
-
-/**
- * 支付签名服务
- * @author xxm
- * @since 2023/12/24
- */
-@Slf4j
-@Service
-@RequiredArgsConstructor
-public class PaymentSignService {
-
-    private final PaymentAssistService paymentAssistService;
-
-    private final PlatformConfigService platformConfigService;
-
-    /**
-     * 入参签名校验
-     */
-    public void verifySign(PaymentCommonParam param) {
-        // 先触发上下文的初始化
-        paymentAssistService.initContext(param);
-        ApiInfoLocal apiInfo = PaymentContextLocal.get().getApiInfo();
-
-        // 判断当前接口是否不需要签名
-        if (!apiInfo.isReqSign()){
-            return;
-        }
-        // 参数转换为Map对象
-        PlatformLocal platform = PaymentContextLocal.get().getPlatformInfo();
-        String signType = platform.getSignType();
-        if (Objects.equals(PaySignTypeEnum.HMAC_SHA256.getCode(), signType)){
-            boolean verified = PaySignUtil.verifyHmacSha256Sign(param, platform.getSignSecret(), param.getSign());
-            if (!verified){
-                throw new PayFailureException("未通过签名验证");
-            }
-        } else if (Objects.equals(PaySignTypeEnum.MD5.getCode(), signType)){
-            boolean verified = PaySignUtil.verifyMd5Sign(param, platform.getSignSecret(), param.getSign());
-            if (!verified){
-                throw new PayFailureException("未通过签名验证");
-            }
-        } else {
-            throw new PayFailureException("签名方式错误");
-        }
-    }
-
-    /**
-     * 对对象进行签名
-     */
-    public void sign(PaymentCommonResult result) {
-        PlatformLocal platformInfo = PaymentContextLocal.get().getPlatformInfo();
-        // 如果平台配置所有属性为空, 进行初始化
-        if (BeanUtil.isEmpty(platformInfo)){
-            platformConfigService.initPlatform();
-        }
-        String signType = platformInfo.getSignType();
-        if (Objects.equals(PaySignTypeEnum.HMAC_SHA256.getCode(), signType)){
-            result.setSign(PaySignUtil.hmacSha256Sign(result, platformInfo.getSignSecret()));
-        } else if (Objects.equals(PaySignTypeEnum.MD5.getCode(), signType)){
-            result.setSign(PaySignUtil.md5Sign(result, platformInfo.getSignSecret()));
-        } else {
-            throw new PayFailureException("未获取到签名方式,请检查");
-        }
-    }
-}
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/notice/result/AllocDetailNoticeResult.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/notice/result/AllocDetailNoticeResult.java
index 21df141b39510309efe6d18a44dc28eeb15f973a..82425b07b465b9ee53508b83481f670eb5f33c03 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/notice/result/AllocDetailNoticeResult.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/notice/result/AllocDetailNoticeResult.java
@@ -1,8 +1,8 @@
 package cn.daxpay.single.service.core.payment.notice.result;
 
-import cn.daxpay.single.code.AllocDetailResultEnum;
-import cn.daxpay.single.code.AllocReceiverTypeEnum;
-import cn.daxpay.single.serializer.LocalDateTimeToTimestampSerializer;
+import cn.daxpay.single.core.code.AllocDetailResultEnum;
+import cn.daxpay.single.core.code.AllocReceiverTypeEnum;
+import cn.daxpay.single.core.serializer.LocalDateTimeToTimestampSerializer;
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/notice/result/AllocNoticeResult.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/notice/result/AllocNoticeResult.java
index 896779b1d48b87abd32073e462482da822e9e567..17ec81770f3004cfb1abd93c85ef8dc1ab69170a 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/notice/result/AllocNoticeResult.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/notice/result/AllocNoticeResult.java
@@ -1,10 +1,10 @@
 package cn.daxpay.single.service.core.payment.notice.result;
 
-import cn.daxpay.single.code.AllocOrderResultEnum;
-import cn.daxpay.single.code.AllocOrderStatusEnum;
-import cn.daxpay.single.code.PayChannelEnum;
-import cn.daxpay.single.result.PaymentCommonResult;
-import cn.daxpay.single.serializer.LocalDateTimeToTimestampSerializer;
+import cn.daxpay.single.core.code.AllocOrderResultEnum;
+import cn.daxpay.single.core.code.AllocOrderStatusEnum;
+import cn.daxpay.single.core.code.PayChannelEnum;
+import cn.daxpay.single.core.result.PaymentCommonResult;
+import cn.daxpay.single.core.serializer.LocalDateTimeToTimestampSerializer;
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
@@ -28,19 +28,19 @@ public class AllocNoticeResult extends PaymentCommonResult {
      * 分账单号
      */
     @Schema(description = "分账单号")
-    private String allocationNo;
+    private String allocNo;
 
     /**
      * 商户分账单号
      */
     @Schema(description = "商户分账单号")
-    private String bizAllocationNo;
+    private String bizAllocNo;
 
     /**
      * 通道分账号
      */
     @Schema(description = "通道分账号")
-    private String outAllocationNo;
+    private String outAllocNo;
 
     /**
      * 支付订单号
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/notice/result/PayNoticeResult.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/notice/result/PayNoticeResult.java
index e92a5f30b71f6f681511c7367ac636eabf384326..aa1c376d30f9d883b7c4bdf6ae23d84ca272fa49 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/notice/result/PayNoticeResult.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/notice/result/PayNoticeResult.java
@@ -1,10 +1,11 @@
 package cn.daxpay.single.service.core.payment.notice.result;
 
-import cn.daxpay.single.code.PayChannelEnum;
-import cn.daxpay.single.code.PayOrderAllocStatusEnum;
-import cn.daxpay.single.code.PayStatusEnum;
-import cn.daxpay.single.result.PaymentCommonResult;
-import cn.daxpay.single.serializer.LocalDateTimeToTimestampSerializer;
+import cn.daxpay.single.core.code.PayChannelEnum;
+import cn.daxpay.single.core.code.PayOrderAllocStatusEnum;
+import cn.daxpay.single.core.code.PayOrderRefundStatusEnum;
+import cn.daxpay.single.core.code.PayStatusEnum;
+import cn.daxpay.single.core.result.PaymentCommonResult;
+import cn.daxpay.single.core.serializer.LocalDateTimeToTimestampSerializer;
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
@@ -55,7 +56,7 @@ public class PayNoticeResult extends PaymentCommonResult {
      * 支付通道
      * @see PayChannelEnum
      */
-    @Schema(description = "异步支付通道")
+    @Schema(description = "支付通道")
     private String channel;
 
     /**
@@ -75,12 +76,19 @@ public class PayNoticeResult extends PaymentCommonResult {
     @Schema(description = "支付状态")
     private String status;
 
+    /**
+     * 退款状态
+     * @see PayOrderRefundStatusEnum
+     */
+    @Schema(description = "退款状态")
+    private String refundStatus;
+
     /**
      * 分账状态
      * @see PayOrderAllocStatusEnum
      */
     @Schema(description = "分账状态")
-    private String allocationStatus;
+    private String allocStatus;
 
     /** 支付时间 */
     @Schema(description = "支付时间")
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/notice/result/RefundNoticeResult.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/notice/result/RefundNoticeResult.java
index ffbb911d84b40b060372e040d81dbed7db28b8cd..daa716a93469861afa2eb8b3b94ada3907f2fd9e 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/notice/result/RefundNoticeResult.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/notice/result/RefundNoticeResult.java
@@ -1,9 +1,9 @@
 package cn.daxpay.single.service.core.payment.notice.result;
 
-import cn.daxpay.single.code.PayChannelEnum;
-import cn.daxpay.single.code.RefundStatusEnum;
-import cn.daxpay.single.result.PaymentCommonResult;
-import cn.daxpay.single.serializer.LocalDateTimeToTimestampSerializer;
+import cn.daxpay.single.core.code.PayChannelEnum;
+import cn.daxpay.single.core.code.RefundStatusEnum;
+import cn.daxpay.single.core.result.PaymentCommonResult;
+import cn.daxpay.single.core.serializer.LocalDateTimeToTimestampSerializer;
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/notice/service/ClientNoticeAssistService.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/notice/service/ClientNoticeAssistService.java
index 6f7297784d42d83dce8fc55f7685590526e929c3..487cc45d1246d9209f9e3873d9a69e4deb7855de 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/notice/service/ClientNoticeAssistService.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/notice/service/ClientNoticeAssistService.java
@@ -3,17 +3,14 @@ package cn.daxpay.single.service.core.payment.notice.service;
 import cn.bootx.platform.common.jackson.util.JacksonUtil;
 import cn.daxpay.single.service.code.ClientNoticeTypeEnum;
 import cn.daxpay.single.service.core.notice.entity.ClientNoticeTask;
-import cn.daxpay.single.service.core.order.allocation.convert.AllocationConvert;
-import cn.daxpay.single.service.core.order.allocation.entity.AllocationOrder;
-import cn.daxpay.single.service.core.order.allocation.entity.AllocationOrderDetail;
-import cn.daxpay.single.service.core.order.allocation.entity.AllocationOrderExtra;
+import cn.daxpay.single.service.core.order.allocation.convert.AllocOrderConvert;
+import cn.daxpay.single.service.core.order.allocation.entity.AllocOrder;
+import cn.daxpay.single.service.core.order.allocation.entity.AllocOrderDetail;
 import cn.daxpay.single.service.core.order.pay.convert.PayOrderConvert;
 import cn.daxpay.single.service.core.order.pay.entity.PayOrder;
-import cn.daxpay.single.service.core.order.pay.entity.PayOrderExtra;
 import cn.daxpay.single.service.core.order.refund.convert.RefundOrderConvert;
 import cn.daxpay.single.service.core.order.refund.entity.RefundOrder;
-import cn.daxpay.single.service.core.order.refund.entity.RefundOrderExtra;
-import cn.daxpay.single.service.core.payment.common.service.PaymentSignService;
+import cn.daxpay.single.service.core.payment.common.service.PaymentAssistService;
 import cn.daxpay.single.service.core.payment.notice.result.AllocDetailNoticeResult;
 import cn.daxpay.single.service.core.payment.notice.result.AllocNoticeResult;
 import cn.daxpay.single.service.core.payment.notice.result.PayNoticeResult;
@@ -35,17 +32,17 @@ import java.util.stream.Collectors;
 @RequiredArgsConstructor
 public class ClientNoticeAssistService {
 
-    private final PaymentSignService paymentSignService;
+    private final PaymentAssistService paymentAssistService;
 
     /**
      * 构建出支付通知任务对象
      */
-    public ClientNoticeTask buildPayTask(PayOrder order, PayOrderExtra orderExtra){
+    public ClientNoticeTask buildPayTask(PayOrder order){
         PayNoticeResult payNoticeResult = PayOrderConvert.CONVERT.convertNotice(order);
-        payNoticeResult.setAttach(orderExtra.getAttach());
-        paymentSignService.sign(payNoticeResult);
+        payNoticeResult.setAttach(order.getAttach());
+        paymentAssistService.sign(payNoticeResult);
         return new ClientNoticeTask()
-                .setUrl(orderExtra.getNotifyUrl())
+                .setUrl(order.getNotifyUrl())
                 // 时间序列化进行了重写, 所以使用Jackson的序列化工具类
                 .setContent(JacksonUtil.toJson(payNoticeResult))
                 .setNoticeType(ClientNoticeTypeEnum.PAY.getType())
@@ -58,14 +55,14 @@ public class ClientNoticeAssistService {
     /**
      * 构建出退款通知任务对象
      */
-    public ClientNoticeTask buildRefundTask(RefundOrder order, RefundOrderExtra orderExtra){
+    public ClientNoticeTask buildRefundTask(RefundOrder order){
         // 创建退款通知内容
         RefundNoticeResult refundNoticeResult = RefundOrderConvert.CONVERT.convertNotice(order);
-        refundNoticeResult.setAttach(orderExtra.getAttach());
+        refundNoticeResult.setAttach(order.getAttach());
         // 签名
-        paymentSignService.sign(refundNoticeResult);
+        paymentAssistService.sign(refundNoticeResult);
         return new ClientNoticeTask()
-                .setUrl(orderExtra.getNotifyUrl())
+                .setUrl(order.getNotifyUrl())
                 // 时间序列化进行了重写
                 .setContent(JacksonUtil.toJson(refundNoticeResult))
                 .setNoticeType(ClientNoticeTypeEnum.REFUND.getType())
@@ -78,26 +75,26 @@ public class ClientNoticeAssistService {
     /**
      * 构建分账通知
      */
-    public ClientNoticeTask buildAllocTask(AllocationOrder order, AllocationOrderExtra orderExtra, List<AllocationOrderDetail> list){
+    public ClientNoticeTask buildAllocTask(AllocOrder order, List<AllocOrderDetail> list){
         // 分账
-        AllocNoticeResult allocOrderResult = AllocationConvert.CONVERT.toNotice(order);
+        AllocNoticeResult allocOrderResult = AllocOrderConvert.CONVERT.toNotice(order);
         // 分账详情
         List<AllocDetailNoticeResult> details = list.stream()
-                .map(AllocationConvert.CONVERT::toNotice)
+                .map(AllocOrderConvert.CONVERT::toNotice)
                 .collect(Collectors.toList());
         // 分账扩展和明细
-        allocOrderResult.setAttach(orderExtra.getAttach())
+        allocOrderResult.setAttach(order.getAttach())
                 .setDetails(details);
         // 签名
-        paymentSignService.sign(allocOrderResult);
+        paymentAssistService.sign(allocOrderResult);
         return new ClientNoticeTask()
-                .setUrl(orderExtra.getNotifyUrl())
+                .setUrl(order.getNotifyUrl())
                 // 时间序列化进行了重写
                 .setContent(JacksonUtil.toJson(allocOrderResult))
                 .setNoticeType(ClientNoticeTypeEnum.ALLOCATION.getType())
                 .setSendCount(0)
                 .setTradeId(order.getId())
-                .setTradeNo(order.getAllocationNo())
+                .setTradeNo(order.getAllocNo())
                 .setTradeStatus(order.getStatus());
     }
 
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/notice/service/ClientNoticeService.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/notice/service/ClientNoticeService.java
index 8712b8b52869e284a11dc94812d470816be8027d..d7f7852b24589a779da2a0086c2afaf64df05b57 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/notice/service/ClientNoticeService.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/notice/service/ClientNoticeService.java
@@ -8,16 +8,10 @@ import cn.daxpay.single.service.core.notice.dao.ClientNoticeTaskManager;
 import cn.daxpay.single.service.core.notice.entity.ClientNoticeRecord;
 import cn.daxpay.single.service.core.notice.entity.ClientNoticeTask;
 import cn.daxpay.single.service.core.notice.service.ClientNoticeRecordService;
-import cn.daxpay.single.service.core.order.allocation.dao.AllocationOrderExtraManager;
-import cn.daxpay.single.service.core.order.allocation.entity.AllocationOrder;
-import cn.daxpay.single.service.core.order.allocation.entity.AllocationOrderDetail;
-import cn.daxpay.single.service.core.order.allocation.entity.AllocationOrderExtra;
-import cn.daxpay.single.service.core.order.pay.dao.PayOrderExtraManager;
+import cn.daxpay.single.service.core.order.allocation.entity.AllocOrder;
+import cn.daxpay.single.service.core.order.allocation.entity.AllocOrderDetail;
 import cn.daxpay.single.service.core.order.pay.entity.PayOrder;
-import cn.daxpay.single.service.core.order.pay.entity.PayOrderExtra;
-import cn.daxpay.single.service.core.order.refund.dao.RefundOrderExtraManager;
 import cn.daxpay.single.service.core.order.refund.entity.RefundOrder;
-import cn.daxpay.single.service.core.order.refund.entity.RefundOrderExtra;
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.http.ContentType;
 import cn.hutool.http.HttpResponse;
@@ -43,18 +37,12 @@ import java.util.*;
 @RequiredArgsConstructor
 public class ClientNoticeService {
 
-    private final PayOrderExtraManager payOrderExtraManager;
-
-    private final RefundOrderExtraManager refundOrderExtraManager;
-
     private final ClientNoticeAssistService clientNoticeAssistService;
 
     private final ClientNoticeTaskManager taskManager;
 
     private final ClientNoticeRecordService recordService;
 
-    private final AllocationOrderExtraManager allocationOrderExtraManager;
-
     private final RedisClient redisClient;
 
     private final LockTemplate lockTemplate;
@@ -89,27 +77,17 @@ public class ClientNoticeService {
     /**
      * 注册支付消息通知任务
      * @param order 支付订单
-     * @param orderExtra 支付订单扩展信息
      */
     @Async("bigExecutor")
-    public void registerPayNotice(PayOrder order, PayOrderExtra orderExtra) {
-        // 支付订单扩展信息为空则进行查询
-        if (Objects.isNull(orderExtra)){
-            Optional<PayOrderExtra> extraOpt =  payOrderExtraManager.findById(order.getId());
-            if (!extraOpt.isPresent()){
-                log.error("未找到支付扩展信息,数据错误,订单号:{}",order.getOrderNo());
-                return;
-            }
-            orderExtra = extraOpt.get();
-        }
+    public void registerPayNotice(PayOrder order) {
         // 判断是否需要进行通知
-        if (StrUtil.isBlank(orderExtra.getNotifyUrl())){
+        if (StrUtil.isBlank(order.getNotifyUrl())){
             log.info("支付订单无需通知,订单号:{}",order.getOrderNo());
             return;
         }
 
         // 创建通知任务并保存
-        ClientNoticeTask task = clientNoticeAssistService.buildPayTask(order, orderExtra);
+        ClientNoticeTask task = clientNoticeAssistService.buildPayTask(order);
         try {
             taskManager.save(task);
         } catch (Exception e) {
@@ -124,27 +102,17 @@ public class ClientNoticeService {
     /**
      * 注册退款消息通知任务
      * @param order 退款订单
-     * @param orderExtra 退款订单扩展信息
      */
     @Async("bigExecutor")
-    public void registerRefundNotice(RefundOrder order, RefundOrderExtra orderExtra) {
-        // 退款订单扩展信息为空则进行查询
-        if (Objects.isNull(orderExtra)){
-            Optional<RefundOrderExtra> extraOpt =  refundOrderExtraManager.findById(order.getId());
-            if (!extraOpt.isPresent()){
-                log.error("未找到退款扩展信息,数据错误,订单ID:{}",order.getId());
-                return;
-            }
-            orderExtra = extraOpt.get();
-        }
+    public void registerRefundNotice(RefundOrder order) {
         // 判断是否需要进行通知
-        if (StrUtil.isBlank(orderExtra.getNotifyUrl())){
+        if (StrUtil.isBlank(order.getNotifyUrl())){
             log.info("退款订单无需通知,订单ID:{}",order.getId());
             return;
         }
 
         // 创建通知任务并保存
-        ClientNoticeTask task = clientNoticeAssistService.buildRefundTask(order, orderExtra);
+        ClientNoticeTask task = clientNoticeAssistService.buildRefundTask(order);
         try {
             taskManager.save(task);
         } catch (Exception e) {
@@ -160,23 +128,14 @@ public class ClientNoticeService {
      * 注册分账消息通知任务
      */
     @Async("bigExecutor")
-    public void registerAllocNotice(AllocationOrder order, AllocationOrderExtra orderExtra, List<AllocationOrderDetail> list) {
-        // 创建通知任务并保存
-        if (Objects.isNull(orderExtra)){
-            Optional<AllocationOrderExtra> extraOpt =  allocationOrderExtraManager.findById(order.getId());
-            if (!extraOpt.isPresent()){
-                log.error("未找到分账扩展信息,数据错误,订单ID:{}",order.getId());
-                return;
-            }
-            orderExtra = extraOpt.get();
-        }
+    public void registerAllocNotice(AllocOrder order, List<AllocOrderDetail> list) {
         // 判断是否需要进行通知
-        if (StrUtil.isBlank(orderExtra.getNotifyUrl())){
+        if (StrUtil.isBlank(order.getNotifyUrl())){
             log.info("分账订单无需通知,订单ID:{}",order.getId());
             return;
         }
         // 创建通知任务并保存
-        ClientNoticeTask task = clientNoticeAssistService.buildAllocTask(order, orderExtra, list);
+        ClientNoticeTask task = clientNoticeAssistService.buildAllocTask(order, list);
         try {
             taskManager.save(task);
         } catch (Exception e) {
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/notice/service/PayReturnService.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/notice/service/PayReturnService.java
index d49b127399292303b3ea40428f4809dc068c9fcc..89b99cb8fed24abc0ac60b758285c11db6df612a 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/notice/service/PayReturnService.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/notice/service/PayReturnService.java
@@ -1,9 +1,7 @@
 package cn.daxpay.single.service.core.payment.notice.service;
 
 import cn.daxpay.single.service.configuration.DaxPayProperties;
-import cn.daxpay.single.service.core.order.pay.dao.PayOrderExtraManager;
 import cn.daxpay.single.service.core.order.pay.entity.PayOrder;
-import cn.daxpay.single.service.core.order.pay.entity.PayOrderExtra;
 import cn.daxpay.single.service.core.order.pay.service.PayOrderQueryService;
 import cn.daxpay.single.service.core.system.config.service.PlatformConfigService;
 import cn.daxpay.single.service.param.channel.alipay.AliPayReturnParam;
@@ -26,7 +24,6 @@ import java.util.Objects;
 @RequiredArgsConstructor
 public class PayReturnService {
     private final PayOrderQueryService payOrderQueryService;
-    private final PayOrderExtraManager payOrderExtraManager;
     private final PlatformConfigService platformConfigService;
 
     private final DaxPayProperties properties;
@@ -39,17 +36,13 @@ public class PayReturnService {
         if ( Objects.isNull(payOrder)){
             return StrUtil.format("{}/result/error?msg={}", properties.getFrontH5Url(), URLEncodeUtil.encode("支付订单有问题,请排查"));
         }
-        PayOrderExtra payOrderExtra = payOrderExtraManager.findById(payOrder.getId()).orElse(null);
-        if ( Objects.isNull(payOrderExtra)){
-            return StrUtil.format("{}/result/error?msg={}", properties.getFrontH5Url(), URLEncodeUtil.encode("支付订单有问题,请排查"));
-        }
         // 如果同步跳转参数为空, 获取系统配置地址, 系统配置如果也为空, 则返回默认地址
-        String returnUrl = payOrderExtra.getReturnUrl();
+        String returnUrl = payOrder.getReturnUrl();
         if (StrUtil.isBlank(returnUrl)){
             returnUrl = platformConfigService.getConfig().getReturnUrl();
         }
         if (StrUtil.isNotBlank(returnUrl)){
-            return StrUtil.format("{}?orderNo={}&bizOrderNo={}", payOrderExtra.getReturnUrl(),payOrder.getOrderNo(),payOrder.getBizOrderNo());
+            return StrUtil.format("{}?orderNo={}&bizOrderNo={}", payOrder.getReturnUrl(),payOrder.getOrderNo(),payOrder.getBizOrderNo());
         }
         // 跳转到默认页
         return StrUtil.format("{}/result/success?msg={}", properties.getFrontH5Url(), URLEncodeUtil.encode("支付成功..."));
@@ -62,19 +55,18 @@ public class PayReturnService {
             orderId = param.getOrderNo();
         }
 
-        PayOrderExtra payOrderExtra = payOrderExtraManager.findById(orderId).orElse(null);
         PayOrder prOrder = payOrderQueryService.findById(Long.valueOf(orderId)).orElse(null);
-        if (Objects.isNull(payOrderExtra) || Objects.isNull(prOrder)){
+        if (Objects.isNull(prOrder)){
             return StrUtil.format("{}/result/error?msg={}", properties.getFrontH5Url(), URLEncodeUtil.encode("支付订单有问题,请排查"));
         }
 
         // 如果同步跳转参数为空, 获取系统配置地址, 系统配置如果也为空, 则返回默认地址
-        String returnUrl = payOrderExtra.getReturnUrl();
+        String returnUrl = prOrder.getReturnUrl();
         if (StrUtil.isBlank(returnUrl)){
             returnUrl = platformConfigService.getConfig().getReturnUrl();
         }
         if (StrUtil.isNotBlank(returnUrl)){
-            return StrUtil.format("{}?orderNo={}&bizOrderNo={}", payOrderExtra.getReturnUrl(),prOrder.getOrderNo(), prOrder.getBizOrderNo());
+            return StrUtil.format("{}?orderNo={}&bizOrderNo={}", prOrder.getReturnUrl(),prOrder.getOrderNo(), prOrder.getBizOrderNo());
         }
         // 跳转到默认页
         return StrUtil.format("{}/result/success?msg={}", properties.getFrontH5Url(), URLEncodeUtil.encode("支付成功..."));
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/pay/factory/PayStrategyFactory.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/pay/factory/PayStrategyFactory.java
deleted file mode 100644
index 9b20803ff2c437760b4159d602bbbe8c818ac826..0000000000000000000000000000000000000000
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/pay/factory/PayStrategyFactory.java
+++ /dev/null
@@ -1,48 +0,0 @@
-package cn.daxpay.single.service.core.payment.pay.factory;
-
-import cn.daxpay.single.code.PayChannelEnum;
-import cn.daxpay.single.exception.pay.PayUnsupportedMethodException;
-import cn.daxpay.single.service.core.payment.pay.strategy.AliPayStrategy;
-import cn.daxpay.single.service.core.payment.pay.strategy.UnionPayStrategy;
-import cn.daxpay.single.service.core.payment.pay.strategy.WalletPayStrategy;
-import cn.daxpay.single.service.core.payment.pay.strategy.WeChatPayStrategy;
-import cn.daxpay.single.service.func.AbsPayStrategy;
-import cn.hutool.extra.spring.SpringUtil;
-import lombok.experimental.UtilityClass;
-
-
-/**
- * 支付策略工厂
- *
- * @author xxm
- * @since 2020/12/11
- */
-@UtilityClass
-public class PayStrategyFactory {
-
-    /**
-     * 根据传入的支付通道创建策略
-     * @return 支付策略
-     */
-    public AbsPayStrategy create(String channel) {
-        AbsPayStrategy strategy;
-        PayChannelEnum channelEnum = PayChannelEnum.findByCode(channel);
-        switch (channelEnum) {
-            case ALI:
-                strategy = SpringUtil.getBean(AliPayStrategy.class);
-                break;
-            case WECHAT:
-                strategy = SpringUtil.getBean(WeChatPayStrategy.class);
-                break;
-            case UNION_PAY:
-                strategy = SpringUtil.getBean(UnionPayStrategy.class);
-                break;
-            case WALLET:
-                strategy = SpringUtil.getBean(WalletPayStrategy.class);
-                break;
-            default:
-                throw new PayUnsupportedMethodException();
-        }
-        return strategy;
-    }
-}
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/pay/service/PayAssistService.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/pay/service/PayAssistService.java
index 443af489290fce12672215b628b77cfe897d41f4..7a2dd92137338ca2ddc3f2d659745d9bbdfd539a 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/pay/service/PayAssistService.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/pay/service/PayAssistService.java
@@ -2,23 +2,23 @@ package cn.daxpay.single.service.core.payment.pay.service;
 
 import cn.bootx.platform.common.core.util.CollUtil;
 import cn.bootx.platform.common.core.util.LocalDateTimeUtil;
-import cn.daxpay.single.code.PayChannelEnum;
-import cn.daxpay.single.exception.pay.PayFailureException;
-import cn.daxpay.single.param.payment.pay.PayParam;
-import cn.daxpay.single.result.pay.PayResult;
-import cn.daxpay.single.service.common.context.ApiInfoLocal;
-import cn.daxpay.single.service.common.context.NoticeLocal;
+import cn.daxpay.single.core.code.PayChannelEnum;
+import cn.daxpay.single.core.code.PayOrderAllocStatusEnum;
+import cn.daxpay.single.core.code.PayOrderRefundStatusEnum;
+import cn.daxpay.single.core.code.PayStatusEnum;
+import cn.daxpay.single.core.exception.AmountExceedLimitException;
+import cn.daxpay.single.core.exception.TradeStatusErrorException;
+import cn.daxpay.single.core.param.payment.pay.PayParam;
+import cn.daxpay.single.core.result.pay.PayResult;
+import cn.daxpay.single.core.util.OrderNoGenerateUtil;
+import cn.daxpay.single.core.util.PayUtil;
 import cn.daxpay.single.service.common.context.PayLocal;
 import cn.daxpay.single.service.common.context.PlatformLocal;
 import cn.daxpay.single.service.common.local.PaymentContextLocal;
-import cn.daxpay.single.service.core.order.pay.builder.PayBuilder;
-import cn.daxpay.single.service.core.order.pay.dao.PayOrderExtraManager;
 import cn.daxpay.single.service.core.order.pay.entity.PayOrder;
-import cn.daxpay.single.service.core.order.pay.entity.PayOrderExtra;
 import cn.daxpay.single.service.core.order.pay.service.PayOrderQueryService;
 import cn.daxpay.single.service.core.order.pay.service.PayOrderService;
 import cn.daxpay.single.service.core.payment.sync.service.PaySyncService;
-import cn.daxpay.single.util.PayUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.json.JSONUtil;
 import lombok.RequiredArgsConstructor;
@@ -31,7 +31,7 @@ import java.util.Arrays;
 import java.util.List;
 import java.util.Objects;
 
-import static cn.daxpay.single.code.PayStatusEnum.*;
+import static cn.daxpay.single.core.code.PayStatusEnum.*;
 
 /**
  * 支付支持服务
@@ -49,132 +49,66 @@ public class PayAssistService {
 
     private final PayOrderQueryService payOrderQueryService;
 
-    private final PayOrderExtraManager payOrderExtraManager;
-
-    /**
-     * 初始化支付相关上下文
-     */
-    public void initPayContext(PayOrder order, PayParam payParam) {
-        // 初始化支付订单超时时间
-        this.initExpiredTime(order, payParam);
-        // 初始化通知相关上下文
-        this.initNotice(payParam);
-    }
-
-
-    /**
-     * 初始化支付订单超时时间
-     * 1. 如果支付记录为空, 超时时间读取顺序 PayParam -> 平台设置
-     * 2. 如果支付记录不为空, 超时时间通过支付记录进行反推
-     */
-    public void initExpiredTime(PayOrder order, PayParam payParam) {
-        // 钱包没有超时时间
-        if (PayChannelEnum.WALLET.getCode()
-                .equals(payParam.getChannel())) {
-            return;
-        }
-        PayLocal payInfo = PaymentContextLocal.get()
-                .getPayInfo();
-        PlatformLocal platform = PaymentContextLocal.get()
-                .getPlatformInfo();
-        // 支付订单是非为空
-        if (Objects.nonNull(order)) {
-            payInfo.setExpiredTime(order.getExpiredTime());
-            return;
-        }
-        // 支付参数传入
-        if (Objects.nonNull(payParam.getExpiredTime())) {
-            payInfo.setExpiredTime(payParam.getExpiredTime());
-            return;
-        }
-        // 读取本地时间
-        LocalDateTime paymentExpiredTime = PayUtil.getPaymentExpiredTime(platform.getOrderTimeout());
-        payInfo.setExpiredTime(paymentExpiredTime);
-    }
-
-    /**
-     * 初始化通知相关上下文
-     * 1. 异步通知参数: 读取参数配置 -> 读取接口配置 -> 读取平台参数
-     * 2. 同步跳转参数: 读取参数配置 -> 读取平台参数
-     * 3. 中途退出地址: 读取参数配置
-     */
-    private void initNotice(PayParam payParam) {
-        NoticeLocal noticeInfo = PaymentContextLocal.get()
-                .getNoticeInfo();
-        ApiInfoLocal apiInfo = PaymentContextLocal.get()
-                .getApiInfo();
-        PlatformLocal platform = PaymentContextLocal.get()
-                .getPlatformInfo();
-        // 异步回调为开启状态
-        if (!Objects.equals(payParam.getNotNotify(), false) && apiInfo.isNotice()) {
-            // 首先读取请求参数
-            noticeInfo.setNotifyUrl(payParam.getNotifyUrl());
-            // 读取接口配置
-            if (StrUtil.isBlank(noticeInfo.getNotifyUrl())) {
-                noticeInfo.setNotifyUrl(apiInfo.getNoticeUrl());
-            }
-            // 读取平台配置
-            if (StrUtil.isBlank(noticeInfo.getNotifyUrl())) {
-                noticeInfo.setNotifyUrl(platform.getNotifyUrl());
-            }
-        }
-        // 同步回调
-        noticeInfo.setReturnUrl(payParam.getReturnUrl());
-        if (StrUtil.isBlank(noticeInfo.getReturnUrl())) {
-            noticeInfo.setReturnUrl(platform.getNotifyUrl());
-        }
-        // 退出回调地址
-        noticeInfo.setQuitUrl(payParam.getQuitUrl());
-    }
-
 
     /**
      * 创建支付订单并保存, 返回支付订单
      */
     @Transactional(rollbackFor = Exception.class)
     public PayOrder createPayOrder(PayParam payParam) {
-        PayLocal payInfo = PaymentContextLocal.get()
-                .getPayInfo();
-        // 构建支付订单并保存
-        PayOrder order = PayBuilder.buildPayOrder(payParam);
+        // 订单超时时间
+        LocalDateTime expiredTime = this.getExpiredTime(payParam);
+        // 构建支付订单对象
+        PayOrder order = new PayOrder()
+                .setBizOrderNo(payParam.getBizOrderNo())
+                .setOrderNo(OrderNoGenerateUtil.pay())
+                .setTitle(payParam.getTitle())
+                .setDescription(payParam.getDescription())
+                .setStatus(PayStatusEnum.PROGRESS.getCode())
+                .setRefundStatus(PayOrderRefundStatusEnum.NO_REFUND.getCode())
+                .setAllocation(payParam.getAllocation())
+                .setAmount(payParam.getAmount())
+                .setChannel(payParam.getChannel())
+                .setMethod(payParam.getMethod())
+                .setExpiredTime(expiredTime)
+                .setRefundableBalance(payParam.getAmount())
+                .setClientIp(payParam.getClientIp())
+                .setNotifyUrl(payParam.getNotifyUrl())
+                .setReturnUrl(payParam.getReturnUrl())
+                .setAttach(payParam.getAttach())
+                .setReqTime(payParam.getReqTime());
+        // 如果支持分账, 设置分账状态为待分账
+        if (order.getAllocation()) {
+            order.setAllocStatus(PayOrderAllocStatusEnum.WAITING.getCode());
+        }
         payOrderService.save(order);
-        // 构建支付订单扩展表并保存
-        PayOrderExtra payOrderExtra = PayBuilder.buildPayOrderExtra(payParam, order.getId());
-        payOrderExtraManager.save(payOrderExtra);
-        payInfo.setPayOrder(order)
-                .setPayOrderExtra(payOrderExtra);
         return order;
     }
 
     /**
-     * 根据新传入的支付订单更新订单和扩展信息
+     * 根据新传入的支付订单更新订单信息
      */
     @Transactional(rollbackFor = Exception.class)
-    public void updatePayOrder(PayParam payParam,PayOrder order, PayOrderExtra payOrderExtra) {
+    public void updatePayOrder(PayParam payParam,PayOrder order) {
         // 订单信息
         order.setAllocation(payParam.getAllocation())
+                .setClientIp(payParam.getClientIp())
+                .setNotifyUrl(payParam.getNotifyUrl())
+                .setReturnUrl(payParam.getReturnUrl())
+                .setAttach(payParam.getAttach())
+                .setClientIp(payParam.getClientIp())
+                .setReqTime(payParam.getReqTime())
                 .setChannel(payParam.getChannel())
                 .setMethod(payParam.getMethod());
         if (!order.getAllocation()) {
-            order.setAllocationStatus(null);
+            order.setAllocStatus(null);
         }
-
-        // 扩展信息
-        NoticeLocal noticeInfo = PaymentContextLocal.get().getNoticeInfo();
-        payOrderExtra.setClientIp(payParam.getClientIp())
-                .setNotifyUrl(noticeInfo.getNotifyUrl())
-                .setReturnUrl(noticeInfo.getReturnUrl())
-                .setAttach(payParam.getAttach())
-                .setClientIp(payParam.getClientIp())
-                .setReqTime(payParam.getReqTime());
         if (CollUtil.isNotEmpty(payParam.getExtraParam())){
-            payOrderExtra.setExtraParam(JSONUtil.toJsonStr(payParam.getExtraParam()));
+            order.setExtraParam(JSONUtil.toJsonStr(payParam.getExtraParam()));
         } else {
-            payOrderExtra.setExtraParam(null);
+            order.setExtraParam(null);
         }
 
         payOrderService.updateById(order);
-        payOrderExtraManager.updateById(payOrderExtra);
     }
 
     /**
@@ -190,27 +124,26 @@ public class PayAssistService {
                 // 如果支付超时, 触发订单同步操作, 同时抛出异常
                 if (Objects.nonNull(payOrder.getExpiredTime()) && LocalDateTimeUtil.ge(LocalDateTime.now(), payOrder.getExpiredTime())) {
                     paySyncService.syncPayOrder(payOrder);
-                    throw new PayFailureException("支付已超时,请重新确认支付状态");
+                    throw new TradeStatusErrorException("支付已超时,请重新确认支付状态");
                 }
                 return payOrder;
             }
             // 已经支付状态
             if (SUCCESS.getCode()
                     .equals(payOrder.getStatus())) {
-                throw new PayFailureException("已经支付成功,请勿重新支付");
+                throw new TradeStatusErrorException("已经支付成功,请勿重新支付");
             }
             // 支付失败类型状态
-            List<String> tradesStatus = Arrays.asList(FAIL.getCode(), CLOSE.getCode());
+            List<String> tradesStatus = Arrays.asList(FAIL.getCode(), CLOSE.getCode(), CANCEL.getCode());
             if (tradesStatus.contains(payOrder.getStatus())) {
-                throw new PayFailureException("支付失败或已经被关闭");
+                throw new TradeStatusErrorException("支付失败或已经被关闭");
             }
             // 退款类型状态
-            tradesStatus = Arrays.asList(REFUNDED.getCode(), PARTIAL_REFUND.getCode(), REFUNDING.getCode());
-            if (tradesStatus.contains(payOrder.getStatus())) {
-                throw new PayFailureException("该订单处于退款状态");
+            if (Objects.equals(payOrder.getRefundStatus(), PayOrderRefundStatusEnum.REFUNDING.getCode())) {
+                throw new TradeStatusErrorException("该订单处于退款状态");
             }
             // 其他状态直接抛出兜底异常
-            throw new PayFailureException("订单不是待支付状态,请重新确认订单状态");
+            throw new TradeStatusErrorException("订单不是待支付状态,请重新确认订单状态");
         }
         return null;
     }
@@ -220,10 +153,9 @@ public class PayAssistService {
      */
     public void validationLimitAmount(PayParam payParam) {
         // 总额校验
-        PlatformLocal platformInfo = PaymentContextLocal.get()
-                .getPlatformInfo();
+        PlatformLocal platformInfo = PaymentContextLocal.get().getPlatformInfo();
         if (payParam.getAmount() > platformInfo.getLimitAmount()) {
-            throw new PayFailureException("支付金额超过限额");
+            throw new AmountExceedLimitException("支付金额超过限额");
         }
     }
 
@@ -241,12 +173,28 @@ public class PayAssistService {
         payResult.setStatus(payOrder.getStatus());
 
         // 设置支付参数
-        PayLocal payInfo = PaymentContextLocal.get()
-                .getPayInfo();
+        PayLocal payInfo = PaymentContextLocal.get().getPayInfo();
         if (StrUtil.isNotBlank(payInfo.getPayBody())) {
             payResult.setPayBody(payInfo.getPayBody());
         }
-        // 签名
         return payResult;
     }
+
+    /**
+     * 获取支付订单超时时间
+     */
+    private LocalDateTime getExpiredTime(PayParam payParam) {
+        // 钱包没有超时时间
+        if (PayChannelEnum.WALLET.getCode()
+                .equals(payParam.getChannel())) {
+            return null;
+        }
+        PlatformLocal platform = PaymentContextLocal.get().getPlatformInfo();
+        // 支付参数传入
+        if (Objects.nonNull(payParam.getExpiredTime())) {
+            return payParam.getExpiredTime();
+        }
+        // 根据平台配置计算出
+        return PayUtil.getPaymentExpiredTime(platform.getOrderTimeout());
+    }
 }
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/pay/service/PayExpiredTimeService.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/pay/service/PayExpiredTimeService.java
index 405fbdd021fa8ee7cef6edbbc8bed0260a88477b..059d92ce443719744bebde106b793327224cc331 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/pay/service/PayExpiredTimeService.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/pay/service/PayExpiredTimeService.java
@@ -2,7 +2,7 @@ package cn.daxpay.single.service.core.payment.pay.service;
 
 import cn.bootx.platform.common.core.util.LocalDateTimeUtil;
 import cn.bootx.platform.common.spring.exception.RetryableException;
-import cn.daxpay.single.code.PayStatusEnum;
+import cn.daxpay.single.core.code.PayStatusEnum;
 import cn.daxpay.single.service.core.order.pay.entity.PayOrder;
 import cn.daxpay.single.service.core.payment.pay.dao.PayExpiredTimeRepository;
 import lombok.RequiredArgsConstructor;
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/pay/service/PayService.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/pay/service/PayService.java
index da28450a3680b967046b889832de81892b40e797..34004ae8bd43376be1c92a648e5a843d3d7f1f93 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/pay/service/PayService.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/pay/service/PayService.java
@@ -1,19 +1,15 @@
 package cn.daxpay.single.service.core.payment.pay.service;
 
-import cn.bootx.platform.common.core.exception.DataNotExistException;
-import cn.daxpay.single.param.payment.pay.PayParam;
-import cn.daxpay.single.result.pay.PayResult;
+import cn.daxpay.single.core.param.payment.pay.PayParam;
+import cn.daxpay.single.core.result.pay.PayResult;
 import cn.daxpay.single.service.common.context.PayLocal;
 import cn.daxpay.single.service.common.local.PaymentContextLocal;
-import cn.daxpay.single.service.core.order.pay.dao.PayOrderExtraManager;
 import cn.daxpay.single.service.core.order.pay.entity.PayOrder;
-import cn.daxpay.single.service.core.order.pay.entity.PayOrderExtra;
 import cn.daxpay.single.service.core.order.pay.service.PayOrderService;
 import cn.daxpay.single.service.core.payment.notice.service.ClientNoticeService;
-import cn.daxpay.single.service.core.payment.pay.factory.PayStrategyFactory;
 import cn.daxpay.single.service.core.record.flow.service.TradeFlowRecordService;
 import cn.daxpay.single.service.func.AbsPayStrategy;
-import cn.daxpay.single.util.PayUtil;
+import cn.daxpay.single.service.util.PayStrategyFactory;
 import cn.hutool.extra.spring.SpringUtil;
 import com.baomidou.lock.LockInfo;
 import com.baomidou.lock.LockTemplate;
@@ -24,7 +20,7 @@ import org.springframework.transaction.annotation.Transactional;
 
 import java.util.Objects;
 
-import static cn.daxpay.single.code.PayStatusEnum.SUCCESS;
+import static cn.daxpay.single.core.code.PayStatusEnum.SUCCESS;
 
 
 /**
@@ -44,8 +40,6 @@ public class PayService {
 
     private final ClientNoticeService clientNoticeService;
 
-    private final PayOrderExtraManager payOrderExtraManager;
-
     private final TradeFlowRecordService tradeFlowRecordService;
 
     private final LockTemplate lockTemplate;
@@ -56,8 +50,6 @@ public class PayService {
     public PayResult pay(PayParam payParam){
         // 创建返回类
         PayResult payResult = new PayResult();
-        // 支付参数检查
-        PayUtil.validation(payParam);
         // 校验支付限额
         payAssistService.validationLimitAmount(payParam);
         // 获取商户订单号
@@ -71,8 +63,6 @@ public class PayService {
         try {
             // 查询并检查订单
             PayOrder payOrder = payAssistService.getOrderAndCheck(payParam.getBizOrderNo());
-            // 初始化支付上下文
-            payAssistService.initPayContext(payOrder, payParam);
             // 走首次下单逻辑还是重复下档逻辑
             if (Objects.isNull(payOrder)){
                 return this.firstPay(payParam);
@@ -94,7 +84,7 @@ public class PayService {
      */
     public PayResult firstPay(PayParam payParam){
         // 获取支付策略类
-        AbsPayStrategy payStrategy = PayStrategyFactory.create(payParam.getChannel());
+        AbsPayStrategy payStrategy = PayStrategyFactory.create(payParam.getChannel(), AbsPayStrategy.class);
         // 初始化支付的参数
         payStrategy.setPayParam(payParam);
         // 执行支付前处理动作, 进行各种校验, 校验通过才会进行下面的操作
@@ -135,7 +125,7 @@ public class PayService {
         // 如果支付完成 发送通知, 记录流水
         if (Objects.equals(payOrder.getStatus(), SUCCESS.getCode())){
             tradeFlowRecordService.savePay(payOrder);
-            clientNoticeService.registerPayNotice(payOrder, payInfo.getPayOrderExtra());
+            clientNoticeService.registerPayNotice(payOrder);
         }
         return payAssistService.buildResult(payOrder);
     }
@@ -145,15 +135,13 @@ public class PayService {
      */
     public PayResult repeatPay(PayParam payParam, PayOrder payOrder){
         // 获取支付策略类
-        AbsPayStrategy payStrategy = PayStrategyFactory.create(payParam.getChannel());
+        AbsPayStrategy payStrategy = PayStrategyFactory.create(payParam.getChannel(),AbsPayStrategy.class);
         // 初始化支付的参数
         payStrategy.initPayParam(payOrder, payParam);
         // 执行支付前处理动作
         payStrategy.doBeforePayHandler();
-        // 查询订单扩展记录
-        PayOrderExtra payOrderExtra = payOrderExtraManager.findById(payOrder.getId()).orElseThrow(() -> new DataNotExistException("支付订单不完整"));
-        // 执行支付前的更新动作, 更新并保存订单和扩展的数据
-        payAssistService.updatePayOrder(payParam, payOrder, payOrderExtra);
+        // 执行支付前的更新动作, 更新并保存订单数据
+        payAssistService.updatePayOrder(payParam, payOrder);
 
         try {
             // 支付操作
@@ -165,14 +153,14 @@ public class PayService {
             throw e;
         }
         // 支付调起成功后操作, 使用事务来保证数据一致性
-        return SpringUtil.getBean(this.getClass()).repeatPaySuccess(payOrder, payOrderExtra);
+        return SpringUtil.getBean(this.getClass()).repeatPaySuccess(payOrder);
     }
 
     /**
      * 重复支付成功后操作
      */
     @Transactional(rollbackFor = Exception.class)
-    public PayResult repeatPaySuccess(PayOrder payOrder, PayOrderExtra payOrderExtra) {
+    public PayResult repeatPaySuccess(PayOrder payOrder) {
         PayLocal payInfo = PaymentContextLocal.get().getPayInfo();
         // 如果支付完成, 进行订单完成处理, 同时发送回调消息
         if (payInfo.isComplete()) {
@@ -188,8 +176,9 @@ public class PayService {
         // 如果支付完成 发送通知, 记录流水
         if (Objects.equals(payOrder.getStatus(), SUCCESS.getCode())){
             tradeFlowRecordService.savePay(payOrder);
-            clientNoticeService.registerPayNotice(payOrder, payOrderExtra);
+            clientNoticeService.registerPayNotice(payOrder);
         }
         return payAssistService.buildResult(payOrder);
     }
+
 }
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/pay/strategy/AliPayStrategy.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/pay/strategy/AliPayStrategy.java
index ae4aaba2d2a47378902f1ff6e9f849568ba8fec3..b23eb04c39720013b12d3b96bb983a2bd0340da3 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/pay/strategy/AliPayStrategy.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/pay/strategy/AliPayStrategy.java
@@ -1,8 +1,8 @@
 package cn.daxpay.single.service.core.payment.pay.strategy;
 
-import cn.daxpay.single.code.PayChannelEnum;
-import cn.daxpay.single.exception.pay.PayFailureException;
-import cn.daxpay.single.param.channel.AliPayParam;
+import cn.daxpay.single.core.code.PayChannelEnum;
+import cn.bootx.platform.common.core.exception.ValidationFailedException;
+import cn.daxpay.single.core.param.channel.AliPayParam;
 import cn.daxpay.single.service.core.channel.alipay.entity.AliPayConfig;
 import cn.daxpay.single.service.core.channel.alipay.service.AliPayConfigService;
 import cn.daxpay.single.service.core.channel.alipay.service.AliPayService;
@@ -37,9 +37,9 @@ public class AliPayStrategy extends AbsPayStrategy {
 
     private AliPayParam aliPayParam;
 
-    @Override
-    public PayChannelEnum getChannel() {
-        return PayChannelEnum.ALI;
+     @Override
+    public String getChannel() {
+        return PayChannelEnum.ALI.getCode();
     }
 
     /**
@@ -58,10 +58,10 @@ public class AliPayStrategy extends AbsPayStrategy {
             }
         }
         catch (JSONException e) {
-            throw new PayFailureException("支付参数错误");
+            throw new ValidationFailedException("支付参数错误");
         }
         // 检查并获取支付宝支付配置
-        this.initAlipayConfig();
+        this.alipayConfig = alipayConfigService.getAndCheckConfig();
         // 支付宝相关校验
         aliPayService.validation(this.getPayParam(), alipayConfig);
     }
@@ -74,13 +74,4 @@ public class AliPayStrategy extends AbsPayStrategy {
         aliPayService.pay(this.getOrder(), this.aliPayParam, this.alipayConfig);
     }
 
-    /**
-     * 初始化支付宝配置信息
-     */
-    private void initAlipayConfig() {
-        // 获取并初始化支付宝支付配置
-        this.alipayConfig = alipayConfigService.getAndCheckConfig();
-        alipayConfigService.initConfig(this.alipayConfig);
-    }
-
 }
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/pay/strategy/UnionPayStrategy.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/pay/strategy/UnionPayStrategy.java
index 16690df5fc8d72999882866abf1287296190ba82..266d9d6612469209360e14651722b1a49b89717f 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/pay/strategy/UnionPayStrategy.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/pay/strategy/UnionPayStrategy.java
@@ -1,8 +1,8 @@
 package cn.daxpay.single.service.core.payment.pay.strategy;
 
-import cn.daxpay.single.code.PayChannelEnum;
-import cn.daxpay.single.exception.pay.PayFailureException;
-import cn.daxpay.single.param.channel.UnionPayParam;
+import cn.daxpay.single.core.code.PayChannelEnum;
+import cn.bootx.platform.common.core.exception.ValidationFailedException;
+import cn.daxpay.single.core.param.channel.UnionPayParam;
 import cn.daxpay.single.service.core.channel.union.entity.UnionPayConfig;
 import cn.daxpay.single.service.core.channel.union.service.UnionPayConfigService;
 import cn.daxpay.single.service.core.channel.union.service.UnionPayService;
@@ -41,8 +41,8 @@ public class UnionPayStrategy extends AbsPayStrategy {
     private UnionPayConfig unionPayConfig;
 
     @Override
-    public PayChannelEnum getChannel() {
-        return PayChannelEnum.UNION_PAY;
+    public String getChannel() {
+        return PayChannelEnum.UNION_PAY.getCode();
     }
     /**
      * 支付前操作
@@ -60,7 +60,7 @@ public class UnionPayStrategy extends AbsPayStrategy {
             }
         }
         catch (JSONException e) {
-            throw new PayFailureException("支付参数错误");
+            throw new ValidationFailedException("支付参数错误");
         }
         // 检查并获取云闪付支付配置
         this.unionPayConfig = unionPayConfigService.getAndCheckConfig();
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/pay/strategy/WalletPayStrategy.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/pay/strategy/WalletPayStrategy.java
index 87a0867e2bc497a85604b216dc174d6ae803eb29..7339ca2334d7f113dbbd562aa2798270d23f1937 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/pay/strategy/WalletPayStrategy.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/pay/strategy/WalletPayStrategy.java
@@ -1,10 +1,9 @@
 package cn.daxpay.single.service.core.payment.pay.strategy;
 
-import cn.daxpay.single.code.PayChannelEnum;
-import cn.daxpay.single.exception.pay.PayFailureException;
-import cn.daxpay.single.exception.waller.WalletBannedException;
-import cn.daxpay.single.exception.waller.WalletLackOfBalanceException;
-import cn.daxpay.single.param.channel.WalletPayParam;
+import cn.bootx.platform.common.core.exception.ValidationFailedException;
+import cn.daxpay.single.core.code.PayChannelEnum;
+import cn.daxpay.single.core.exception.*;
+import cn.daxpay.single.core.param.channel.WalletPayParam;
 import cn.daxpay.single.service.code.WalletCode;
 import cn.daxpay.single.service.core.channel.wallet.entity.Wallet;
 import cn.daxpay.single.service.core.channel.wallet.entity.WalletConfig;
@@ -44,8 +43,8 @@ public class WalletPayStrategy extends AbsPayStrategy {
     private Wallet wallet;
 
     @Override
-    public PayChannelEnum getChannel() {
-        return PayChannelEnum.WALLET;
+    public String getChannel() {
+        return PayChannelEnum.WALLET.getCode();
     }
 
     /**
@@ -61,7 +60,7 @@ public class WalletPayStrategy extends AbsPayStrategy {
                 walletPayParam = BeanUtil.toBean(channelParam, WalletPayParam.class);
             }
         } catch (JSONException e) {
-            throw new PayFailureException("支付参数错误");
+            throw new ValidationFailedException("支付参数错误");
         }
 
         WalletConfig walletConfig = walletConfigService.getAndCheckConfig();
@@ -69,23 +68,23 @@ public class WalletPayStrategy extends AbsPayStrategy {
         // 获取钱包
         this.wallet = walletQueryService.getWallet(walletPayParam);
         if (Objects.isNull(this.wallet)){
-            throw new PayFailureException("钱包不存在");
+            throw new TradeFailException("钱包不存在");
         }
         // 是否被禁用
         if (Objects.equals(WalletCode.STATUS_FORBIDDEN, this.wallet.getStatus())) {
-            throw new WalletBannedException();
+            throw new ConfigNotEnableException();
         }
         // 判断是否超过限额
-        if (this.getPayParam().getAmount() > walletConfig.getSingleLimit()){
-            throw new PayFailureException("钱包支付金额超过限额");
+        if (this.getPayParam().getAmount() > walletConfig.getLimitAmount()){
+            throw new AmountExceedLimitException("钱包支付金额超过限额");
         }
         // 判断余额
         if (this.wallet.getBalance() < this.getPayParam().getAmount()) {
-            throw new WalletLackOfBalanceException();
+            throw new ConfigErrorException();
         }
         // 分账
         if (Objects.equals(this.getPayParam().getAllocation(),true)){
-            throw new PayFailureException("钱包支付不支持分账");
+            throw new UnsupportedAbilityException("钱包支付不支持分账");
         }
     }
 
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/pay/strategy/WeChatPayStrategy.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/pay/strategy/WeChatPayStrategy.java
index 5f1a93b7ad77056d9e61d5b13bccb5fa72ea3a76..04fc623f79e05451340cd63146dcf64af72d5e05 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/pay/strategy/WeChatPayStrategy.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/pay/strategy/WeChatPayStrategy.java
@@ -1,6 +1,6 @@
 package cn.daxpay.single.service.core.payment.pay.strategy;
 
-import cn.daxpay.single.code.PayChannelEnum;
+import cn.daxpay.single.core.code.PayChannelEnum;
 import cn.daxpay.single.service.core.channel.wechat.entity.WeChatPayConfig;
 import cn.daxpay.single.service.core.channel.wechat.service.WeChatPayConfigService;
 import cn.daxpay.single.service.core.channel.wechat.service.WeChatPayService;
@@ -39,8 +39,8 @@ public class WeChatPayStrategy extends AbsPayStrategy {
      * 类型
      */
     @Override
-    public PayChannelEnum getChannel() {
-        return PayChannelEnum.WECHAT;
+    public String getChannel() {
+        return PayChannelEnum.WECHAT.getCode();
     }
 
     /**
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/reconcile/factory/ReconcileStrategyFactory.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/reconcile/factory/ReconcileStrategyFactory.java
deleted file mode 100644
index 1f9fb8c5ed2b50de43a6be7601c815e6bb9e1185..0000000000000000000000000000000000000000
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/reconcile/factory/ReconcileStrategyFactory.java
+++ /dev/null
@@ -1,32 +0,0 @@
-package cn.daxpay.single.service.core.payment.reconcile.factory;
-
-import cn.daxpay.single.code.PayChannelEnum;
-import cn.daxpay.single.exception.pay.PayUnsupportedMethodException;
-import cn.daxpay.single.service.func.AbsReconcileStrategy;
-import cn.hutool.extra.spring.SpringUtil;
-import lombok.experimental.UtilityClass;
-
-import java.util.Map;
-import java.util.Objects;
-
-/**
- * 支付对账工厂类
- * @author xxm
- * @since 2024/1/18
- */
-@UtilityClass
-public class ReconcileStrategyFactory {
-
-    /**
-     * 根据传入的支付类型批量创建策略
-     */
-    public AbsReconcileStrategy create(String channel) {
-        PayChannelEnum channelEnum = PayChannelEnum.findByCode(channel);
-        Map<String, AbsReconcileStrategy> beansOfType = SpringUtil.getBeansOfType(AbsReconcileStrategy.class);
-        return beansOfType.values().stream()
-                .filter(strategy -> Objects.equals(strategy.getChannel(), channelEnum))
-                .findFirst()
-                .orElseThrow(PayUnsupportedMethodException::new);
-    }
-
-}
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/reconcile/service/ReconcileAssistService.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/reconcile/service/ReconcileAssistService.java
index 79851a256d8e9ac852fde3ce5acdc0ca0a1e966a..67554bd4d5b2949c1638c1f9dd27a40d5373f191 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/reconcile/service/ReconcileAssistService.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/reconcile/service/ReconcileAssistService.java
@@ -3,7 +3,7 @@ package cn.daxpay.single.service.core.payment.reconcile.service;
 import cn.bootx.platform.common.core.function.CollectorsFunction;
 import cn.bootx.platform.common.core.util.CollUtil;
 import cn.bootx.platform.common.core.util.LocalDateTimeUtil;
-import cn.daxpay.single.code.ReconcileTradeEnum;
+import cn.daxpay.single.core.code.ReconcileTradeEnum;
 import cn.daxpay.single.service.code.PaymentTypeEnum;
 import cn.daxpay.single.service.code.ReconcileDiffTypeEnum;
 import cn.daxpay.single.service.core.order.pay.dao.PayOrderManager;
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/reconcile/service/ReconcileService.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/reconcile/service/ReconcileService.java
index a115b1e839d5352ccd7f5ed58e553d2275ab98ae..a79cd0b7f3ab2d1bdfddab5bf1795b6e93878ee1 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/reconcile/service/ReconcileService.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/reconcile/service/ReconcileService.java
@@ -3,8 +3,9 @@ package cn.daxpay.single.service.core.payment.reconcile.service;
 import cn.bootx.platform.common.core.exception.DataNotExistException;
 import cn.bootx.platform.common.core.util.CollUtil;
 import cn.bootx.platform.common.core.util.LocalDateTimeUtil;
-import cn.daxpay.single.code.PayChannelEnum;
-import cn.daxpay.single.exception.pay.PayFailureException;
+import cn.daxpay.single.core.code.PayChannelEnum;
+import cn.daxpay.single.core.exception.OperationFailException;
+import cn.daxpay.single.core.util.OrderNoGenerateUtil;
 import cn.daxpay.single.service.code.ReconcileFileTypeEnum;
 import cn.daxpay.single.service.code.ReconcileResultEnum;
 import cn.daxpay.single.service.common.local.PaymentContextLocal;
@@ -12,18 +13,17 @@ import cn.daxpay.single.service.core.order.reconcile.dao.ReconcileDiffManager;
 import cn.daxpay.single.service.core.order.reconcile.dao.ReconcileFileManager;
 import cn.daxpay.single.service.core.order.reconcile.dao.ReconcileOrderManager;
 import cn.daxpay.single.service.core.order.reconcile.dao.ReconcileOutTradeManager;
-import cn.daxpay.single.service.core.order.reconcile.entity.ReconcileOutTrade;
 import cn.daxpay.single.service.core.order.reconcile.entity.ReconcileDiff;
 import cn.daxpay.single.service.core.order.reconcile.entity.ReconcileFile;
 import cn.daxpay.single.service.core.order.reconcile.entity.ReconcileOrder;
+import cn.daxpay.single.service.core.order.reconcile.entity.ReconcileOutTrade;
 import cn.daxpay.single.service.core.order.reconcile.service.ReconcileOrderService;
 import cn.daxpay.single.service.core.payment.reconcile.domain.GeneralTradeInfo;
-import cn.daxpay.single.service.core.payment.reconcile.factory.ReconcileStrategyFactory;
 import cn.daxpay.single.service.dto.order.reconcile.ReconcileDiffExcel;
 import cn.daxpay.single.service.dto.order.reconcile.ReconcileTradeDetailExcel;
 import cn.daxpay.single.service.func.AbsReconcileStrategy;
 import cn.daxpay.single.service.param.reconcile.ReconcileUploadParam;
-import cn.daxpay.single.util.OrderNoGenerateUtil;
+import cn.daxpay.single.service.util.PayStrategyFactory;
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.date.DatePattern;
 import cn.hutool.core.util.CharsetUtil;
@@ -101,12 +101,12 @@ public class ReconcileService {
     public void downAndSave(ReconcileOrder reconcileOrder) {
         // 如果对账单已经存在
         if (reconcileOrder.isDownOrUpload()){
-            throw new PayFailureException("对账单文件已经下载或上传");
+            throw new OperationFailException("对账单文件已经下载或上传");
         }
         // 将对账订单写入到上下文中
         PaymentContextLocal.get().getReconcileInfo().setReconcileOrder(reconcileOrder);
         // 构建对账策略
-        AbsReconcileStrategy reconcileStrategy = ReconcileStrategyFactory.create(reconcileOrder.getChannel());
+        AbsReconcileStrategy reconcileStrategy = PayStrategyFactory.create(reconcileOrder.getChannel(), AbsReconcileStrategy.class);
         reconcileStrategy.setRecordOrder(reconcileOrder);
         reconcileStrategy.doBeforeHandler();
         try {
@@ -136,7 +136,7 @@ public class ReconcileService {
                 .orElseThrow(() -> new DataNotExistException("未找到对账订单"));
         // 将对账订单写入到上下文中
         PaymentContextLocal.get().getReconcileInfo().setReconcileOrder(reconcileOrder);
-        AbsReconcileStrategy reconcileStrategy = ReconcileStrategyFactory.create(reconcileOrder.getChannel());
+        AbsReconcileStrategy reconcileStrategy = PayStrategyFactory.create(reconcileOrder.getChannel(), AbsReconcileStrategy.class);
         reconcileStrategy.setRecordOrder(reconcileOrder);
         reconcileStrategy.doBeforeHandler();
 
@@ -174,16 +174,16 @@ public class ReconcileService {
     public void compare(ReconcileOrder reconcileOrder){
         // 判断是否已经下载了对账单明细
         if (!reconcileOrder.isDownOrUpload()){
-            throw new PayFailureException("请先下载对账单");
+            throw new OperationFailException("请先下载对账单");
         }
         // 是否对比完成
         if (reconcileOrder.isCompare()){
-            throw new PayFailureException("对账单比对已经完成");
+            throw new OperationFailException("对账单比对已经完成");
         }
         // 查询对账单
         List<ReconcileOutTrade> reconcileTradeDetails = reconcileOutTradeManager.findAllByReconcileId(reconcileOrder.getId());
         // 构建对账策略
-        AbsReconcileStrategy reconcileStrategy = ReconcileStrategyFactory.create(reconcileOrder.getChannel());
+        AbsReconcileStrategy reconcileStrategy =PayStrategyFactory.create(reconcileOrder.getChannel(), AbsReconcileStrategy.class);
         // 初始化参数
         reconcileStrategy.setRecordOrder(reconcileOrder);
 
@@ -257,7 +257,7 @@ public class ReconcileService {
         // 设置header信息
         HttpHeaders headers = new HttpHeaders();
         headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
-
+        // TODO 后续使用数据库中数据
         PayChannelEnum channelEnum = PayChannelEnum.findByCode(reconcileOrder.getChannel());
         String date = LocalDateTimeUtil.format(reconcileOrder.getDate(), DatePattern.PURE_DATE_PATTERN);
         // 将原始文件进行保存 通道-日期
@@ -284,7 +284,7 @@ public class ReconcileService {
         byte[] bytes = byteArrayOutputStream.toByteArray();// 设置header信息
         HttpHeaders headers = new HttpHeaders();
         headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
-
+        // TODO 后续使用数据库中数据
         PayChannelEnum channelEnum = PayChannelEnum.findByCode(reconcileOrder.getChannel());
         String date = LocalDateTimeUtil.format(reconcileOrder.getDate(), DatePattern.PURE_DATE_PATTERN);
         // 将原始文件进行保存 通道-日期
@@ -316,6 +316,7 @@ public class ReconcileService {
         HttpHeaders headers = new HttpHeaders();
         headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
 
+        // TODO 后续使用数据库中数据
         PayChannelEnum channelEnum = PayChannelEnum.findByCode(reconcileOrder.getChannel());
         String date = LocalDateTimeUtil.format(reconcileOrder.getDate(), DatePattern.PURE_DATE_PATTERN);
         // 将原始文件进行保存 通道-日期
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/reconcile/strategy/AlipayReconcileStrategy.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/reconcile/strategy/AlipayReconcileStrategy.java
index 64711fc09107941221763b50be6a28286e18b2de..6c61e23aea06ffd463e1f4758636951c18db0174 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/reconcile/strategy/AlipayReconcileStrategy.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/reconcile/strategy/AlipayReconcileStrategy.java
@@ -1,7 +1,7 @@
 package cn.daxpay.single.service.core.payment.reconcile.strategy;
 
 import cn.bootx.platform.common.core.util.LocalDateTimeUtil;
-import cn.daxpay.single.code.PayChannelEnum;
+import cn.daxpay.single.core.code.PayChannelEnum;
 import cn.daxpay.single.service.code.ReconcileFileTypeEnum;
 import cn.daxpay.single.service.core.channel.alipay.entity.AliPayConfig;
 import cn.daxpay.single.service.core.channel.alipay.service.AliPayConfigService;
@@ -32,14 +32,16 @@ public class AlipayReconcileStrategy extends AbsReconcileStrategy {
 
     private final AliPayConfigService configService;
 
+    private AliPayConfig config;
+
     /**
      * 策略标识
      *
      * @see PayChannelEnum
      */
-    @Override
-    public PayChannelEnum getChannel() {
-        return PayChannelEnum.ALI;
+     @Override
+    public String getChannel() {
+        return PayChannelEnum.ALI.getCode();
     }
 
     /**
@@ -47,8 +49,7 @@ public class AlipayReconcileStrategy extends AbsReconcileStrategy {
      */
     @Override
     public void doBeforeHandler() {
-        AliPayConfig config = configService.getConfig();
-        configService.initConfig(config);
+        this.config = configService.getConfig();
     }
 
     /**
@@ -66,6 +67,6 @@ public class AlipayReconcileStrategy extends AbsReconcileStrategy {
     @Override
     public void downAndSave() {
         String date = LocalDateTimeUtil.format(this.getRecordOrder().getDate(), DatePattern.NORM_DATE_PATTERN);
-        reconcileService.downAndSave(date,this.getRecordOrder());
+        reconcileService.downAndSave(date,this.getRecordOrder(),this.config);
     }
 }
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/reconcile/strategy/UnionPayReconcileStrategy.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/reconcile/strategy/UnionPayReconcileStrategy.java
index 58d4b3852e8fb1b9f02b9e23b165addc6d14b200..962f7754964caefe7dde2c44a5d00e35ba9e4315 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/reconcile/strategy/UnionPayReconcileStrategy.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/reconcile/strategy/UnionPayReconcileStrategy.java
@@ -1,6 +1,6 @@
 package cn.daxpay.single.service.core.payment.reconcile.strategy;
 
-import cn.daxpay.single.code.PayChannelEnum;
+import cn.daxpay.single.core.code.PayChannelEnum;
 import cn.daxpay.single.service.code.ReconcileFileTypeEnum;
 import cn.daxpay.single.service.core.channel.union.entity.UnionPayConfig;
 import cn.daxpay.single.service.core.channel.union.service.UnionPayConfigService;
@@ -40,8 +40,8 @@ public class UnionPayReconcileStrategy extends AbsReconcileStrategy {
      * 策略标识
      */
     @Override
-    public PayChannelEnum getChannel() {
-        return PayChannelEnum.UNION_PAY;
+    public String getChannel() {
+        return PayChannelEnum.UNION_PAY.getCode();
     }
 
     /**
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/reconcile/strategy/WechatPayReconcileStrategy.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/reconcile/strategy/WechatPayReconcileStrategy.java
index 34e5d04fe65fa08a3a54ccf2c865646d8973f05f..8a319104604c5ac3f5bcaadfda20c548844dd2e7 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/reconcile/strategy/WechatPayReconcileStrategy.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/reconcile/strategy/WechatPayReconcileStrategy.java
@@ -1,11 +1,11 @@
 package cn.daxpay.single.service.core.payment.reconcile.strategy;
 
 import cn.bootx.platform.common.core.util.LocalDateTimeUtil;
-import cn.daxpay.single.code.PayChannelEnum;
+import cn.daxpay.single.core.code.PayChannelEnum;
 import cn.daxpay.single.service.code.ReconcileFileTypeEnum;
 import cn.daxpay.single.service.core.channel.wechat.entity.WeChatPayConfig;
 import cn.daxpay.single.service.core.channel.wechat.service.WeChatPayConfigService;
-import cn.daxpay.single.service.core.channel.wechat.service.WechatPayReconcileService;
+import cn.daxpay.single.service.core.channel.wechat.service.WeChatPayReconcileService;
 import cn.daxpay.single.service.func.AbsReconcileStrategy;
 import cn.hutool.core.date.DatePattern;
 import lombok.RequiredArgsConstructor;
@@ -28,7 +28,7 @@ import static org.springframework.beans.factory.config.BeanDefinition.SCOPE_PROT
 @RequiredArgsConstructor
 public class WechatPayReconcileStrategy extends AbsReconcileStrategy {
 
-    private final WechatPayReconcileService reconcileService;
+    private final WeChatPayReconcileService reconcileService;
 
     private final WeChatPayConfigService weChatPayConfigService;
 
@@ -40,8 +40,8 @@ public class WechatPayReconcileStrategy extends AbsReconcileStrategy {
      * @see PayChannelEnum
      */
     @Override
-    public PayChannelEnum getChannel() {
-        return PayChannelEnum.WECHAT;
+    public String getChannel() {
+        return PayChannelEnum.WECHAT.getCode();
     }
 
     /**
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/refund/factory/RefundStrategyFactory.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/refund/factory/RefundStrategyFactory.java
deleted file mode 100644
index c4662efb12491013cc353aea13f9cb8cb89ba4b3..0000000000000000000000000000000000000000
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/refund/factory/RefundStrategyFactory.java
+++ /dev/null
@@ -1,47 +0,0 @@
-package cn.daxpay.single.service.core.payment.refund.factory;
-
-import cn.daxpay.single.code.PayChannelEnum;
-import cn.daxpay.single.exception.pay.PayUnsupportedMethodException;
-import cn.daxpay.single.service.core.payment.refund.strategy.AliRefundStrategy;
-import cn.daxpay.single.service.core.payment.refund.strategy.UnionRefundStrategy;
-import cn.daxpay.single.service.core.payment.refund.strategy.WalletRefundStrategy;
-import cn.daxpay.single.service.core.payment.refund.strategy.WeChatRefundStrategy;
-import cn.daxpay.single.service.func.AbsRefundStrategy;
-import cn.hutool.extra.spring.SpringUtil;
-
-/**
- * 退款策略工厂
- * @author xxm
- * @since 2023/7/4
- */
-public class RefundStrategyFactory {
-
-
-    /**
-     * 根据传入的支付通道创建策略
-     * @return 支付策略
-     */
-    public static AbsRefundStrategy create(String channel) {
-
-        AbsRefundStrategy strategy;
-        PayChannelEnum channelEnum = PayChannelEnum.findByCode(channel);
-        switch (channelEnum) {
-            case ALI:
-                strategy = SpringUtil.getBean(AliRefundStrategy.class);
-                break;
-            case WECHAT:
-                strategy = SpringUtil.getBean(WeChatRefundStrategy.class);
-                break;
-            case UNION_PAY:
-                strategy = SpringUtil.getBean(UnionRefundStrategy.class);
-                break;
-            case WALLET:
-                strategy = SpringUtil.getBean(WalletRefundStrategy.class);
-                break;
-            default:
-                throw new PayUnsupportedMethodException();
-        }
-        return strategy;
-    }
-
-}
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/refund/service/RefundAssistService.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/refund/service/RefundAssistService.java
index 8d011662124a5bb208d86e6bdd5579fe0568c849..31e5bb87f21c99a1a3dd20803f154c95a6bb651c 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/refund/service/RefundAssistService.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/refund/service/RefundAssistService.java
@@ -1,26 +1,26 @@
 package cn.daxpay.single.service.core.payment.refund.service;
 
-import cn.daxpay.single.code.PaySignTypeEnum;
-import cn.daxpay.single.code.PayStatusEnum;
-import cn.daxpay.single.code.RefundStatusEnum;
-import cn.daxpay.single.exception.pay.PayFailureException;
-import cn.daxpay.single.param.payment.refund.RefundParam;
-import cn.daxpay.single.result.pay.RefundResult;
-import cn.daxpay.single.service.common.context.ApiInfoLocal;
-import cn.daxpay.single.service.common.context.NoticeLocal;
+import cn.daxpay.single.core.code.PayOrderRefundStatusEnum;
+import cn.daxpay.single.core.code.PaySignTypeEnum;
+import cn.daxpay.single.core.code.PayStatusEnum;
+import cn.daxpay.single.core.code.RefundStatusEnum;
+import cn.bootx.platform.common.core.exception.ValidationFailedException;
+import cn.daxpay.single.core.exception.TradeStatusErrorException;
+import cn.daxpay.single.core.param.payment.refund.RefundParam;
+import cn.daxpay.single.core.result.pay.RefundResult;
+import cn.daxpay.single.core.util.OrderNoGenerateUtil;
+import cn.daxpay.single.core.util.PaySignUtil;
+import cn.daxpay.single.service.common.context.ErrorInfoLocal;
 import cn.daxpay.single.service.common.context.PlatformLocal;
 import cn.daxpay.single.service.common.context.RefundLocal;
 import cn.daxpay.single.service.common.local.PaymentContextLocal;
 import cn.daxpay.single.service.core.order.pay.entity.PayOrder;
-import cn.daxpay.single.service.core.order.refund.dao.RefundOrderExtraManager;
 import cn.daxpay.single.service.core.order.refund.dao.RefundOrderManager;
 import cn.daxpay.single.service.core.order.refund.entity.RefundOrder;
-import cn.daxpay.single.service.core.order.refund.entity.RefundOrderExtra;
-import cn.daxpay.single.util.OrderNoGenerateUtil;
-import cn.daxpay.single.util.PaySignUtil;
 import cn.hutool.core.util.StrUtil;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
+import lombok.val;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Propagation;
 import org.springframework.transaction.annotation.Transactional;
@@ -29,7 +29,7 @@ import java.util.Arrays;
 import java.util.List;
 import java.util.Objects;
 
-import static cn.daxpay.single.code.RefundStatusEnum.SUCCESS;
+import static cn.daxpay.single.core.code.RefundStatusEnum.SUCCESS;
 
 /**
  * 支付退款支撑服务
@@ -42,63 +42,31 @@ import static cn.daxpay.single.code.RefundStatusEnum.SUCCESS;
 public class RefundAssistService {
     private final RefundOrderManager refundOrderManager;
 
-    private final RefundOrderExtraManager refundOrderExtraManager;
-
-    /**
-     * 初始化上下文
-     */
-    public void initRefundContext(RefundParam param){
-        // 初始化通知相关上下文
-        this.initNotice(param);
-    }
-
-    /**
-     * 初始化退款通知相关上下文
-     */
-    private void initNotice(RefundParam param) {
-        NoticeLocal noticeInfo = PaymentContextLocal.get().getNoticeInfo();
-        ApiInfoLocal apiInfo = PaymentContextLocal.get().getApiInfo();
-        PlatformLocal platform = PaymentContextLocal.get().getPlatformInfo();
-        // 异步回调为开启状态
-        if (!Objects.equals(param.getNotNotify(), false) && apiInfo.isNotice()){
-            // 首先读取请求参数
-            noticeInfo.setNotifyUrl(param.getNotifyUrl());
-            // 读取接口配置
-            if (StrUtil.isBlank(noticeInfo.getNotifyUrl())){
-                noticeInfo.setNotifyUrl(apiInfo.getNoticeUrl());
-            }
-            // 读取平台配置
-            if (StrUtil.isBlank(noticeInfo.getNotifyUrl())){
-                noticeInfo.setNotifyUrl(platform.getNotifyUrl());
-            }
-        }
-    }
-
     /**
      * 检查并处理退款参数
      */
     public void checkAndParam(RefundParam param, PayOrder payOrder){
-
-        // 状态判断, 支付中/失败/取消等不能进行退款
-        List<String> tradesStatus = Arrays.asList(
-                PayStatusEnum.PROGRESS.getCode(),
-                PayStatusEnum.CLOSE.getCode(),
-                PayStatusEnum.REFUNDED.getCode(),
-                PayStatusEnum.REFUNDING.getCode(),
-                PayStatusEnum.FAIL.getCode());
-        if (tradesStatus.contains(payOrder.getStatus())) {
+        // 非支付完成的不能进行退款
+        if (!Objects.equals(SUCCESS.getCode(), payOrder.getStatus())) {
             PayStatusEnum statusEnum = PayStatusEnum.findByCode(payOrder.getStatus());
-            throw new PayFailureException("当前支付单订状态["+statusEnum.getName()+"]不允许发起退款操作");
+            throw new TradeStatusErrorException("当前支付单订状态["+statusEnum.getName()+"]不允许发起退款操作");
+        }
+        // 退款中和退款完成不能退款
+        List<String> tradesStatus = Arrays.asList(
+                PayOrderRefundStatusEnum.REFUNDED.getCode(),
+                PayOrderRefundStatusEnum.REFUNDING.getCode());
+        if (tradesStatus.contains(payOrder.getRefundStatus())){
+            val statusEnum = PayOrderRefundStatusEnum.findByCode(payOrder.getRefundStatus());
+            throw new TradeStatusErrorException("当前支付单退款状态["+statusEnum.getName()+"]不允许发起退款操作");
         }
-
         // 退款号唯一校验
         if (StrUtil.isNotBlank(param.getBizRefundNo()) && refundOrderManager.existsByRefundNo(param.getBizRefundNo())){
-            throw new PayFailureException("退款单号已存在");
+            throw new ValidationFailedException("退款单号已存在");
         }
 
         // 金额判断
         if (param.getAmount() > payOrder.getRefundableBalance()){
-            throw new PayFailureException("退款金额不能大于支付金额");
+            throw new ValidationFailedException("退款金额不能大于支付金额");
         }
     }
 
@@ -120,18 +88,12 @@ public class RefundAssistService {
                 .setOrderAmount(payOrder.getAmount())
                 .setAmount(refundParam.getAmount())
                 .setTitle(payOrder.getTitle())
-                .setReason(refundParam.getReason());
-        refundOrderManager.save(refundOrder);
-        // 生成退款扩展订单
-        NoticeLocal notice = PaymentContextLocal.get().getNoticeInfo();
-        RefundOrderExtra orderExtra = new RefundOrderExtra()
+                .setReason(refundParam.getReason())
                 .setClientIp(refundParam.getClientIp())
                 .setReqTime(refundParam.getReqTime())
                 .setAttach(refundParam.getAttach())
-                .setNotifyUrl(notice.getNotifyUrl());
-        orderExtra.setId(refundOrder.getId());
-
-        refundOrderExtraManager.save(orderExtra);
+                .setNotifyUrl(refundParam.getNotifyUrl());;
+        refundOrderManager.save(refundOrder);
         return refundOrder;
     }
 
@@ -157,8 +119,9 @@ public class RefundAssistService {
     @Transactional(propagation = Propagation.REQUIRES_NEW, rollbackFor = Exception.class)
     public void updateOrderByError(RefundOrder refundOrder){
         RefundLocal refundInfo = PaymentContextLocal.get().getRefundInfo();
-        refundOrder.setErrorCode(refundInfo.getErrorCode());
-        refundOrder.setErrorMsg(refundInfo.getErrorMsg());
+        ErrorInfoLocal errorInfo = PaymentContextLocal.get().getErrorInfo();
+        refundOrder.setErrorCode(String.valueOf(errorInfo.getErrorCode()));
+        refundOrder.setErrorMsg(errorInfo.getErrorMsg());
         refundOrder.setStatus(refundInfo.getStatus().getCode());
         refundOrderManager.updateById(refundOrder);
     }
@@ -182,7 +145,7 @@ public class RefundAssistService {
         } else if (Objects.equals(PaySignTypeEnum.MD5.getCode(), signType)){
             refundResult.setSign(PaySignUtil.md5Sign(refundOrder, platformInfo.getSignSecret()));
         } else {
-            throw new PayFailureException("未获取到签名方式,请检查");
+            throw new ValidationFailedException("未获取到签名方式,请检查");
         }
         return refundResult;
     }
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/refund/service/RefundService.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/refund/service/RefundService.java
index 3f15365b4028c5fb49fbaae1422ab0f59c181246..52ba2959cfd4b88533e17ccc24c33b894f728022 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/refund/service/RefundService.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/refund/service/RefundService.java
@@ -1,28 +1,25 @@
 package cn.daxpay.single.service.core.payment.refund.service;
 
 import cn.bootx.platform.common.core.exception.DataNotExistException;
-import cn.bootx.platform.common.core.util.CollUtil;
 import cn.bootx.platform.common.core.util.ValidationUtil;
-import cn.daxpay.single.code.PayStatusEnum;
-import cn.daxpay.single.code.RefundStatusEnum;
-import cn.daxpay.single.exception.pay.PayFailureException;
-import cn.daxpay.single.param.payment.refund.RefundParam;
-import cn.daxpay.single.result.pay.RefundResult;
+import cn.daxpay.single.core.code.PayOrderRefundStatusEnum;
+import cn.daxpay.single.core.code.RefundStatusEnum;
+import cn.daxpay.single.core.exception.TradeNotExistException;
+import cn.daxpay.single.core.exception.TradeStatusErrorException;
+import cn.daxpay.single.core.param.payment.refund.RefundParam;
+import cn.daxpay.single.core.result.pay.RefundResult;
 import cn.daxpay.single.service.common.context.RefundLocal;
 import cn.daxpay.single.service.common.local.PaymentContextLocal;
 import cn.daxpay.single.service.core.order.pay.entity.PayOrder;
 import cn.daxpay.single.service.core.order.pay.service.PayOrderQueryService;
 import cn.daxpay.single.service.core.order.pay.service.PayOrderService;
-import cn.daxpay.single.service.core.order.refund.dao.RefundOrderExtraManager;
 import cn.daxpay.single.service.core.order.refund.dao.RefundOrderManager;
 import cn.daxpay.single.service.core.order.refund.entity.RefundOrder;
-import cn.daxpay.single.service.core.order.refund.entity.RefundOrderExtra;
 import cn.daxpay.single.service.core.payment.notice.service.ClientNoticeService;
-import cn.daxpay.single.service.core.payment.refund.factory.RefundStrategyFactory;
 import cn.daxpay.single.service.core.record.flow.service.TradeFlowRecordService;
 import cn.daxpay.single.service.func.AbsRefundStrategy;
+import cn.daxpay.single.service.util.PayStrategyFactory;
 import cn.hutool.extra.spring.SpringUtil;
-import cn.hutool.json.JSONUtil;
 import com.baomidou.lock.LockInfo;
 import com.baomidou.lock.LockTemplate;
 import lombok.RequiredArgsConstructor;
@@ -57,8 +54,6 @@ public class RefundService {
 
     private final TradeFlowRecordService tradeFlowRecordService;
 
-    private final RefundOrderExtraManager refundOrderExtraManager;
-
     private final LockTemplate lockTemplate;
 
 
@@ -83,8 +78,6 @@ public class RefundService {
         try {
             // 判断是否是首次发起退款
             Optional<RefundOrder> refund = refundOrderManager.findByBizRefundNo(param.getBizRefundNo());
-            // 初始化退款通知上下文
-            refundAssistService.initRefundContext(param);
             if (refund.isPresent()){
                 return this.repeatRefund(refund.get(),param);
             } else {
@@ -106,7 +99,7 @@ public class RefundService {
         // 检查退款参数
         refundAssistService.checkAndParam(param, payOrder);
         // 通过退款参数获取退款策略
-        AbsRefundStrategy refundStrategy = RefundStrategyFactory.create(payOrder.getChannel());
+        AbsRefundStrategy refundStrategy = PayStrategyFactory.create(payOrder.getChannel(), AbsRefundStrategy.class);
         // 进行退款前预处理
         refundStrategy.doBeforeRefundHandler();
         // 退款操作的预处理, 对支付订单进行预扣款, 返回创建成功的退款订单, 成功后才可以进行下一阶段的操作
@@ -136,7 +129,7 @@ public class RefundService {
         // 预扣支付订单要退款的金额并进行更新
         int orderRefundableBalance = payOrder.getRefundableBalance() - refundParam.getAmount();
         payOrder.setRefundableBalance(orderRefundableBalance)
-                .setStatus(PayStatusEnum.REFUNDING.getCode());
+                .setRefundStatus(PayOrderRefundStatusEnum.REFUNDING.getCode());
         payOrderService.updateById(payOrder);
         // -----------------------   退款订单创建   -------------------------
         return refundAssistService.createOrder(refundParam, payOrder);
@@ -151,20 +144,18 @@ public class RefundService {
     public RefundResult repeatRefund(RefundOrder refundOrder, RefundParam param){
         // 退款失败才可以重新发起退款, 重新发起退款
         if (!Objects.equals(refundOrder.getStatus(), RefundStatusEnum.FAIL.getCode())){
-            throw new PayFailureException("只有失败状态的才可以重新发起退款");
+            throw new TradeStatusErrorException("只有失败状态的才可以重新发起退款");
         }
         // 获取支付订单
         PayOrder payOrder = payOrderQueryService.findByBizOrOrderNo(refundOrder.getOrderNo(), refundOrder.getBizOrderNo())
-                .orElseThrow(() -> new DataNotExistException("支付订单不存在"));
-        RefundOrderExtra refundOrderExtra = refundOrderExtraManager.findById(refundOrder.getId())
-                .orElseThrow(() -> new DataNotExistException("退款订单扩展信息不存在"));
-        AbsRefundStrategy refundStrategy = RefundStrategyFactory.create(refundOrder.getChannel());
+                .orElseThrow(() -> new TradeNotExistException("支付订单不存在"));
+        AbsRefundStrategy refundStrategy = PayStrategyFactory.create(refundOrder.getChannel(), AbsRefundStrategy.class);
         // 设置退款订单对象
         refundStrategy.setRefundOrder(refundOrder);
         // 退款前准备操作
         refundStrategy.doBeforeRefundHandler();
         // 进行发起退款前的操作, 更新扩展记录信息
-        this.updateExtra(refundOrderExtra, param);
+        this.updateOrder(param,refundOrder);
         try {
             // 执行退款策略
             refundStrategy.doRefundHandler();
@@ -184,17 +175,15 @@ public class RefundService {
     }
 
     /**
-     * 更新退款订单扩展信息
+     * 更新退款订单信息
      */
-    private void updateExtra(RefundOrderExtra refundOrderExtra, RefundParam param){
-        refundOrderExtra.setAttach(param.getAttach())
+    private void updateOrder(RefundParam param, RefundOrder order){
+        order.setAttach(param.getAttach())
                 .setClientIp(param.getClientIp())
                 .setNotifyUrl(param.getNotifyUrl())
-                .setReqTime(param.getReqTime());
-        if (CollUtil.isNotEmpty(param.getExtraParam())){
-            refundOrderExtra.setExtraParam(JSONUtil.toJsonStr(param.getExtraParam()));
-        }
-        refundOrderExtraManager.updateById(refundOrderExtra);
+                .setReqTime(param.getReqTime())
+                .setExtraParam(param.getExtraParam());
+        refundOrderManager.updateById(order);
     }
 
     /**
@@ -208,14 +197,14 @@ public class RefundService {
         int refundableBalance = payOrder.getRefundableBalance();
         // 退款状态为退款中
         if (refundInfo.getStatus() == RefundStatusEnum.PROGRESS) {
-            payOrder.setStatus(PayStatusEnum.REFUNDING.getCode());
+            payOrder.setRefundStatus(PayOrderRefundStatusEnum.REFUNDING.getCode());
         }
         // 退款状态为成功
         else {
             if (refundableBalance == 0) {
-                payOrder.setStatus(PayStatusEnum.REFUNDED.getCode());
+                payOrder.setRefundStatus(PayOrderRefundStatusEnum.REFUNDED.getCode());
             } else {
-                payOrder.setStatus(PayStatusEnum.PARTIAL_REFUND.getCode());
+                payOrder.setRefundStatus(PayOrderRefundStatusEnum.PARTIAL_REFUND.getCode());
             }
             // 记录流水
             tradeFlowRecordService.saveRefund(refundOrder);
@@ -228,7 +217,7 @@ public class RefundService {
         // 发送通知
         List<String> list = Arrays.asList(RefundStatusEnum.SUCCESS.getCode(), RefundStatusEnum.CLOSE.getCode(),  RefundStatusEnum.FAIL.getCode());
         if (list.contains(refundOrder.getStatus())){
-            clientNoticeService.registerRefundNotice(refundOrder, refundInfo.getRunOrderExtra());
+            clientNoticeService.registerRefundNotice(refundOrder);
         }
     }
 
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/refund/strategy/AliRefundStrategy.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/refund/strategy/AliRefundStrategy.java
index 8c7dcb3d4830bd5b383f38c633df8c60e8f60d15..3549f4bd7518e6fd192045ceb22aca92c11158b3 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/refund/strategy/AliRefundStrategy.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/refund/strategy/AliRefundStrategy.java
@@ -1,6 +1,6 @@
 package cn.daxpay.single.service.core.payment.refund.strategy;
 
-import cn.daxpay.single.code.PayChannelEnum;
+import cn.daxpay.single.core.code.PayChannelEnum;
 import cn.daxpay.single.service.core.channel.alipay.entity.AliPayConfig;
 import cn.daxpay.single.service.core.channel.alipay.service.AliPayConfigService;
 import cn.daxpay.single.service.core.channel.alipay.service.AliPayRefundService;
@@ -22,15 +22,18 @@ import static org.springframework.beans.factory.config.BeanDefinition.SCOPE_PROT
 public class AliRefundStrategy extends AbsRefundStrategy {
 
     private final AliPayConfigService alipayConfigService;
+
     private final AliPayRefundService aliRefundService;
+
+    private AliPayConfig config;
+
     /**
      * 策略标识
-     *
      * @see PayChannelEnum
      */
-    @Override
-    public PayChannelEnum getChannel() {
-        return PayChannelEnum.ALI;
+     @Override
+    public String getChannel() {
+        return PayChannelEnum.ALI.getCode();
     }
 
 
@@ -39,8 +42,7 @@ public class AliRefundStrategy extends AbsRefundStrategy {
      */
     @Override
     public void doBeforeRefundHandler() {
-        AliPayConfig config = alipayConfigService.getAndCheckConfig();
-        alipayConfigService.initConfig(config);
+        this.config = alipayConfigService.getAndCheckConfig();
     }
 
     /**
@@ -48,6 +50,6 @@ public class AliRefundStrategy extends AbsRefundStrategy {
      */
     @Override
     public void doRefundHandler() {
-        aliRefundService.refund(this.getRefundOrder());
+        aliRefundService.refund(this.getRefundOrder(),this.config);
     }
 }
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/refund/strategy/UnionRefundStrategy.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/refund/strategy/UnionRefundStrategy.java
index db5f53e19cf747d98da2c37e3c8c9709d8eac965..ead907c3b2a229800fb8a1c5cd258b1d31097e6a 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/refund/strategy/UnionRefundStrategy.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/refund/strategy/UnionRefundStrategy.java
@@ -1,6 +1,6 @@
 package cn.daxpay.single.service.core.payment.refund.strategy;
 
-import cn.daxpay.single.code.PayChannelEnum;
+import cn.daxpay.single.core.code.PayChannelEnum;
 import cn.daxpay.single.service.core.channel.union.entity.UnionPayConfig;
 import cn.daxpay.single.service.core.channel.union.service.UnionPayConfigService;
 import cn.daxpay.single.service.core.channel.union.service.UnionPayRefundService;
@@ -34,8 +34,8 @@ public class UnionRefundStrategy extends AbsRefundStrategy {
      * @see PayChannelEnum
      */
     @Override
-    public PayChannelEnum getChannel() {
-        return PayChannelEnum.UNION_PAY;
+    public String getChannel() {
+        return PayChannelEnum.UNION_PAY.getCode();
     }
 
     /**
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/refund/strategy/WalletRefundStrategy.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/refund/strategy/WalletRefundStrategy.java
index 0e232475e8bdc23a0de058d2dea1c7f564e89066..9faa326a9eafc7dcf7ef73db9569a6bf0f80257e 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/refund/strategy/WalletRefundStrategy.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/refund/strategy/WalletRefundStrategy.java
@@ -1,7 +1,7 @@
 package cn.daxpay.single.service.core.payment.refund.strategy;
 
-import cn.daxpay.single.code.PayChannelEnum;
-import cn.daxpay.single.param.channel.WalletPayParam;
+import cn.daxpay.single.core.code.PayChannelEnum;
+import cn.daxpay.single.core.param.channel.WalletPayParam;
 import cn.daxpay.single.service.core.channel.wallet.entity.Wallet;
 import cn.daxpay.single.service.core.channel.wallet.service.WalletPayService;
 import cn.daxpay.single.service.core.channel.wallet.service.WalletQueryService;
@@ -36,8 +36,8 @@ public class WalletRefundStrategy extends AbsRefundStrategy {
      * @see PayChannelEnum
      */
     @Override
-    public PayChannelEnum getChannel() {
-        return PayChannelEnum.WALLET;
+    public String getChannel() {
+        return PayChannelEnum.WALLET.getCode();
     }
 
 
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/refund/strategy/WeChatRefundStrategy.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/refund/strategy/WeChatRefundStrategy.java
index 1433ece8a407d5a66438ac1eb3e583b9edb6b4bd..956ee70ff450b00bf3ab22562180d966acdedafe 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/refund/strategy/WeChatRefundStrategy.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/refund/strategy/WeChatRefundStrategy.java
@@ -1,9 +1,9 @@
 package cn.daxpay.single.service.core.payment.refund.strategy;
 
-import cn.daxpay.single.code.PayChannelEnum;
+import cn.daxpay.single.core.code.PayChannelEnum;
 import cn.daxpay.single.service.core.channel.wechat.entity.WeChatPayConfig;
 import cn.daxpay.single.service.core.channel.wechat.service.WeChatPayConfigService;
-import cn.daxpay.single.service.core.channel.wechat.service.WechatPayRefundService;
+import cn.daxpay.single.service.core.channel.wechat.service.WeChatPayRefundService;
 import cn.daxpay.single.service.func.AbsRefundStrategy;
 import lombok.RequiredArgsConstructor;
 import org.springframework.context.annotation.Scope;
@@ -23,7 +23,7 @@ public class WeChatRefundStrategy extends AbsRefundStrategy {
 
     private final WeChatPayConfigService weChatPayConfigService;
 
-    private final WechatPayRefundService wechatPayRefundService;
+    private final WeChatPayRefundService wechatPayRefundService;
 
     private WeChatPayConfig weChatPayConfig;
 
@@ -33,8 +33,8 @@ public class WeChatRefundStrategy extends AbsRefundStrategy {
      * @see PayChannelEnum
      */
     @Override
-    public PayChannelEnum getChannel() {
-        return PayChannelEnum.WECHAT;
+    public String getChannel() {
+        return PayChannelEnum.WECHAT.getCode();
     }
 
     /**
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/repair/factory/PayRepairStrategyFactory.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/repair/factory/PayRepairStrategyFactory.java
deleted file mode 100644
index 4914805d598d048a55fe3d33017671d975500c24..0000000000000000000000000000000000000000
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/repair/factory/PayRepairStrategyFactory.java
+++ /dev/null
@@ -1,42 +0,0 @@
-package cn.daxpay.single.service.core.payment.repair.factory;
-
-import cn.daxpay.single.code.PayChannelEnum;
-import cn.daxpay.single.exception.pay.PayUnsupportedMethodException;
-import cn.daxpay.single.service.core.payment.repair.strategy.pay.AliPayRepairStrategy;
-import cn.daxpay.single.service.core.payment.repair.strategy.pay.UnionPayRepairStrategy;
-import cn.daxpay.single.service.core.payment.repair.strategy.pay.WeChatPayRepairStrategy;
-import cn.daxpay.single.service.func.AbsPayRepairStrategy;
-import cn.hutool.extra.spring.SpringUtil;
-import lombok.experimental.UtilityClass;
-
-/**
- * 支付修复策略工厂类
- * @author xxm
- * @since 2023/12/29
- */
-@UtilityClass
-public class PayRepairStrategyFactory {
-    /**
-     * 根据传入的支付通道创建策略
-     * @return 支付修复策略
-     */
-    public static AbsPayRepairStrategy create(String channel) {
-        PayChannelEnum channelEnum = PayChannelEnum.findByCode(channel);
-        AbsPayRepairStrategy strategy;
-        switch (channelEnum) {
-            case ALI:
-                strategy = SpringUtil.getBean(AliPayRepairStrategy.class);
-                break;
-            case WECHAT:
-                strategy = SpringUtil.getBean(WeChatPayRepairStrategy.class);
-                break;
-            case UNION_PAY:
-                strategy = SpringUtil.getBean(UnionPayRepairStrategy.class);
-                break;
-            default:
-                throw new PayUnsupportedMethodException();
-        }
-        return strategy;
-    }
-
-}
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/repair/result/PayRepairResult.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/repair/result/PayRepairResult.java
index 570662b79183304e6c3e7f6b99e8dfdff558f803..185c6255ffee50f2184ac340d4be96e3a16c0345 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/repair/result/PayRepairResult.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/repair/result/PayRepairResult.java
@@ -1,6 +1,6 @@
 package cn.daxpay.single.service.core.payment.repair.result;
 
-import cn.daxpay.single.code.PayStatusEnum;
+import cn.daxpay.single.core.code.PayStatusEnum;
 import lombok.Data;
 import lombok.experimental.Accessors;
 
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/repair/result/RefundRepairResult.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/repair/result/RefundRepairResult.java
index 2c8d8a5d4a43be983d52419701c511158ca465ac..5783c69deb0d5d7d744a35205bd0e1b9f7a65562 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/repair/result/RefundRepairResult.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/repair/result/RefundRepairResult.java
@@ -1,7 +1,7 @@
 package cn.daxpay.single.service.core.payment.repair.result;
 
-import cn.daxpay.single.code.RefundStatusEnum;
-import cn.daxpay.single.code.PayStatusEnum;
+import cn.daxpay.single.core.code.PayOrderRefundStatusEnum;
+import cn.daxpay.single.core.code.RefundStatusEnum;
 import lombok.Data;
 import lombok.experimental.Accessors;
 
@@ -21,7 +21,7 @@ public class RefundRepairResult {
     /** 退款修复后状态 */
     private RefundStatusEnum afterRefundStatus;
     /** 支付修复前状态 */
-    private PayStatusEnum beforePayStatus;
+    private PayOrderRefundStatusEnum beforePayStatus;
     /** 支付修复后状态 */
-    private PayStatusEnum afterPayStatus;
+    private PayOrderRefundStatusEnum afterPayStatus;
 }
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/repair/service/PayRepairService.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/repair/service/PayRepairService.java
index c9f1a866e9dd969753df817f78da7570e6dc52b6..61952c6fc2783d3c671f145224710277d8ad0f71 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/repair/service/PayRepairService.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/repair/service/PayRepairService.java
@@ -1,19 +1,19 @@
 package cn.daxpay.single.service.core.payment.repair.service;
 
-import cn.daxpay.single.code.PayStatusEnum;
-import cn.daxpay.single.exception.pay.PayFailureException;
+import cn.daxpay.single.core.code.PayStatusEnum;
+import cn.daxpay.single.core.exception.SystemUnknownErrorException;
 import cn.daxpay.single.service.code.PayRepairWayEnum;
 import cn.daxpay.single.service.code.PaymentTypeEnum;
 import cn.daxpay.single.service.common.local.PaymentContextLocal;
 import cn.daxpay.single.service.core.order.pay.entity.PayOrder;
 import cn.daxpay.single.service.core.order.pay.service.PayOrderService;
 import cn.daxpay.single.service.core.payment.notice.service.ClientNoticeService;
-import cn.daxpay.single.service.core.payment.repair.factory.PayRepairStrategyFactory;
 import cn.daxpay.single.service.core.payment.repair.result.PayRepairResult;
 import cn.daxpay.single.service.core.record.flow.service.TradeFlowRecordService;
 import cn.daxpay.single.service.core.record.repair.entity.PayRepairRecord;
 import cn.daxpay.single.service.core.record.repair.service.PayRepairRecordService;
 import cn.daxpay.single.service.func.AbsPayRepairStrategy;
+import cn.daxpay.single.service.util.PayStrategyFactory;
 import cn.hutool.core.util.IdUtil;
 import com.baomidou.lock.LockInfo;
 import com.baomidou.lock.LockTemplate;
@@ -23,7 +23,8 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.time.LocalDateTime;
-import java.util.*;
+import java.util.Objects;
+import java.util.Optional;
 
 /**
  * 支付修复服务
@@ -57,7 +58,7 @@ public class PayRepairService {
         }
 
         // 2.1 初始化修复参数
-        AbsPayRepairStrategy repairStrategy = PayRepairStrategyFactory.create(order.getChannel());
+        AbsPayRepairStrategy repairStrategy = PayStrategyFactory.create(order.getChannel(),AbsPayRepairStrategy.class);
         repairStrategy.setOrder(order);
         // 2.2 执行前置处理
         repairStrategy.doBeforeHandler();
@@ -74,8 +75,7 @@ public class PayRepairService {
                 repairResult.setAfterPayStatus(PayStatusEnum.CLOSE);
                 break;
             case PROGRESS:
-                this.waitPay(order);
-                repairResult.setAfterPayStatus(PayStatusEnum.PROGRESS);
+                // TODO 保存为异常订单
                 break;
             case CLOSE_GATEWAY:
                 this.closeRemote(order, repairStrategy);
@@ -83,27 +83,16 @@ public class PayRepairService {
                 break;
             default:
                 log.error("走到了理论上讲不会走到的分支");
-                throw new PayFailureException("走到了理论上讲不会走到的分支");
+                throw new SystemUnknownErrorException("走到了理论上讲不会走到的分支");
         }
         // 设置修复iD
         repairResult.setRepairNo(IdUtil.getSnowflakeNextIdStr());
         // 发送通知
-        clientNoticeService.registerPayNotice(order, null);
+        clientNoticeService.registerPayNotice(order);
         this.saveRecord(order, repairType, repairResult);
         return repairResult;
     }
 
-    /**
-     * 变更未待支付
-     * TODO 后期保存为异常订单
-     */
-    private void waitPay(PayOrder order) {
-        // 修改订单支付状态为待支付
-        order.setStatus(PayStatusEnum.PROGRESS.getCode())
-                .setPayTime(null)
-                .setCloseTime(null);
-        payOrderService.updateById(order);
-    }
 
     /**
      * 变更为已支付
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/repair/service/RefundRepairService.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/repair/service/RefundRepairService.java
index a6563fe4a53be69a6682a554bfaceaea6ac73eb6..308f9056f615f207054469dfea4b1c2dfaa8e937 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/repair/service/RefundRepairService.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/repair/service/RefundRepairService.java
@@ -1,7 +1,8 @@
 package cn.daxpay.single.service.core.payment.repair.service;
 
-import cn.daxpay.single.code.PayStatusEnum;
-import cn.daxpay.single.code.RefundStatusEnum;
+import cn.daxpay.single.core.code.PayOrderRefundStatusEnum;
+import cn.daxpay.single.core.code.PayStatusEnum;
+import cn.daxpay.single.core.code.RefundStatusEnum;
 import cn.daxpay.single.service.code.PaymentTypeEnum;
 import cn.daxpay.single.service.code.RefundRepairWayEnum;
 import cn.daxpay.single.service.common.context.RepairLocal;
@@ -16,7 +17,7 @@ import cn.daxpay.single.service.core.payment.repair.result.RefundRepairResult;
 import cn.daxpay.single.service.core.record.flow.service.TradeFlowRecordService;
 import cn.daxpay.single.service.core.record.repair.entity.PayRepairRecord;
 import cn.daxpay.single.service.core.record.repair.service.PayRepairRecordService;
-import cn.daxpay.single.util.OrderNoGenerateUtil;
+import cn.daxpay.single.core.util.OrderNoGenerateUtil;
 import com.baomidou.lock.LockInfo;
 import com.baomidou.lock.LockTemplate;
 import lombok.RequiredArgsConstructor;
@@ -86,7 +87,7 @@ public class RefundRepairService {
             PayRepairRecord refundRepairRecord = this.refundRepairRecord(refundOrder, repairType, repairResult);
 
             // 发送通知
-            clientNoticeService.registerRefundNotice(refundOrder, null);
+            clientNoticeService.registerRefundNotice(refundOrder);
             recordService.saveAllRecord(Arrays.asList(payRepairRecord, refundRepairRecord));
             return repairResult;
         } finally {
@@ -100,20 +101,20 @@ public class RefundRepairService {
     private RefundRepairResult success(RefundOrder refundOrder, PayOrder payOrder) {
         RepairLocal repairInfo = PaymentContextLocal.get().getRepairInfo();
         // 订单相关状态
-        PayStatusEnum beforePayStatus = PayStatusEnum.findByCode(payOrder.getStatus());
-        PayStatusEnum afterPayRefundStatus;
+        PayOrderRefundStatusEnum beforePayStatus = PayOrderRefundStatusEnum.findByCode(payOrder.getRefundStatus());
+        PayOrderRefundStatusEnum afterPayRefundStatus;
         RefundStatusEnum beforeRefundStatus = RefundStatusEnum.findByCode(refundOrder.getStatus());
 
         // 判断订单全部退款还是部分退款
         if (Objects.equals(payOrder.getRefundableBalance(),0)){
-            afterPayRefundStatus = PayStatusEnum.REFUNDED;
+            afterPayRefundStatus = PayOrderRefundStatusEnum.REFUNDED;
         } else {
-            afterPayRefundStatus = PayStatusEnum.PARTIAL_REFUND;
+            afterPayRefundStatus = PayOrderRefundStatusEnum.PARTIAL_REFUND;
         }
         // 设置退款为完成状态和完成时间
         refundOrder.setStatus(RefundStatusEnum.SUCCESS.getCode())
                 .setFinishTime(repairInfo.getFinishTime());
-        payOrder.setStatus(afterPayRefundStatus.getCode());
+        payOrder.setRefundStatus(afterPayRefundStatus.getCode());
 
         // 更新订单和退款相关订单
         payOrderService.updateById(payOrder);
@@ -125,7 +126,7 @@ public class RefundRepairService {
         // 发送通知
         List<String> list = Arrays.asList(RefundStatusEnum.SUCCESS.getCode(), RefundStatusEnum.CLOSE.getCode(),  RefundStatusEnum.FAIL.getCode());
         if (list.contains(refundOrder.getStatus())){
-            clientNoticeService.registerRefundNotice(refundOrder, null);
+            clientNoticeService.registerRefundNotice(refundOrder);
         }
 
         return new RefundRepairResult()
@@ -144,7 +145,7 @@ public class RefundRepairService {
         RefundRepairResult repairResult = new RefundRepairResult();
 
         // 订单修复前状态
-        PayStatusEnum beforePayStatus = PayStatusEnum.findByCode(refundOrder.getStatus());
+        PayOrderRefundStatusEnum beforePayStatus = PayOrderRefundStatusEnum.findByCode(payOrder.getRefundStatus());
         RefundStatusEnum beforeRefundStatus = RefundStatusEnum.findByCode(refundOrder.getStatus());
         repairResult.setBeforePayStatus(beforePayStatus)
                 .setBeforeRefundStatus(beforeRefundStatus);
@@ -154,11 +155,11 @@ public class RefundRepairService {
         // 退款失败返还后的余额+可退余额 == 订单金额 支付订单回退为为支付成功状态
         if (payOrderAmount == payOrder.getAmount()){
             payOrder.setStatus(PayStatusEnum.SUCCESS.getCode());
-            repairResult.setAfterPayStatus(PayStatusEnum.SUCCESS);
+            repairResult.setAfterPayStatus(PayOrderRefundStatusEnum.NO_REFUND);
         } else {
             // 回归部分退款状态
-            payOrder.setStatus(PayStatusEnum.PARTIAL_REFUND.getCode());
-            repairResult.setAfterPayStatus(PayStatusEnum.PARTIAL_REFUND);
+            payOrder.setRefundStatus(PayOrderRefundStatusEnum.PARTIAL_REFUND.getCode());
+            repairResult.setAfterPayStatus(PayOrderRefundStatusEnum.PARTIAL_REFUND);
         }
 
         // 更新支付订单相关的可退款金额
@@ -179,7 +180,8 @@ public class RefundRepairService {
      */
     private PayRepairRecord payRepairRecord(PayOrder order, RefundRepairWayEnum repairType, RefundRepairResult repairResult){
         // 修复前的状态
-        String beforeStatus = Optional.ofNullable(repairResult.getBeforePayStatus()).map(PayStatusEnum::getCode).orElse(null);
+        String beforeStatus = Optional.ofNullable(repairResult.getBeforePayStatus())
+                .map(PayOrderRefundStatusEnum::getCode).orElse(null);
         // 修复发起来源
         String source = PaymentContextLocal.get()
                 .getRepairInfo()
@@ -211,6 +213,7 @@ public class RefundRepairService {
                 .setTradeId(refundOrder.getId())
                 .setRepairNo(repairResult.getRepairNo())
                 .setTradeNo(refundOrder.getRefundNo())
+                .setChannel(refundOrder.getChannel())
                 .setRepairType(PaymentTypeEnum.REFUND.getCode())
                 .setBeforeStatus(repairResult.getBeforeRefundStatus().getCode())
                 .setAfterStatus(afterStatus)
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/repair/strategy/pay/AliPayRepairStrategy.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/repair/strategy/pay/AliPayRepairStrategy.java
index c6f2e76e2b70301b7a1ef75fa9542e0ade0602a5..80d1349604f40b6f5d52da4057895bf735297204 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/repair/strategy/pay/AliPayRepairStrategy.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/repair/strategy/pay/AliPayRepairStrategy.java
@@ -1,6 +1,6 @@
 package cn.daxpay.single.service.core.payment.repair.strategy.pay;
 
-import cn.daxpay.single.code.PayChannelEnum;
+import cn.daxpay.single.core.code.PayChannelEnum;
 import cn.daxpay.single.service.core.channel.alipay.entity.AliPayConfig;
 import cn.daxpay.single.service.core.channel.alipay.service.AliPayCloseService;
 import cn.daxpay.single.service.core.channel.alipay.service.AliPayConfigService;
@@ -26,12 +26,14 @@ public class AliPayRepairStrategy extends AbsPayRepairStrategy {
 
     private final AliPayConfigService aliPayConfigService;
 
+    private AliPayConfig config;
+
     /**
      * 策略标识
      */
-    @Override
-    public PayChannelEnum getChannel() {
-        return PayChannelEnum.ALI;
+     @Override
+    public String getChannel() {
+        return PayChannelEnum.ALI.getCode();
     }
 
     /**
@@ -39,8 +41,7 @@ public class AliPayRepairStrategy extends AbsPayRepairStrategy {
      */
     @Override
     public void doBeforeHandler() {
-        AliPayConfig config = aliPayConfigService.getConfig();
-        aliPayConfigService.initConfig(config);
+        this.config = aliPayConfigService.getConfig();
     }
 
 
@@ -49,6 +50,6 @@ public class AliPayRepairStrategy extends AbsPayRepairStrategy {
      */
     @Override
     public void doCloseRemoteHandler() {
-        closeService.close(this.getOrder());
+        closeService.close(this.getOrder(), this.config);
     }
 }
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/repair/strategy/pay/UnionPayRepairStrategy.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/repair/strategy/pay/UnionPayRepairStrategy.java
index 58cae03aeb4d0854c7e7350b0c1f50011bec1a78..5a560d19873c69e1acb5bf709a217bd31db76821 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/repair/strategy/pay/UnionPayRepairStrategy.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/repair/strategy/pay/UnionPayRepairStrategy.java
@@ -1,6 +1,6 @@
 package cn.daxpay.single.service.core.payment.repair.strategy.pay;
 
-import cn.daxpay.single.code.PayChannelEnum;
+import cn.daxpay.single.core.code.PayChannelEnum;
 import cn.daxpay.single.service.func.AbsPayRepairStrategy;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
@@ -24,8 +24,8 @@ public class UnionPayRepairStrategy extends AbsPayRepairStrategy {
      * 策略标识
      */
     @Override
-    public PayChannelEnum getChannel() {
-        return PayChannelEnum.UNION_PAY;
+    public String getChannel() {
+        return PayChannelEnum.UNION_PAY.getCode();
     }
 
     /**
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/repair/strategy/pay/WeChatPayRepairStrategy.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/repair/strategy/pay/WeChatPayRepairStrategy.java
index afdfd78031b1afb93518f8e22c149f51dc7a04b8..b3adeaa08a71dfffe823d2f28b6e064f094a62a6 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/repair/strategy/pay/WeChatPayRepairStrategy.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/repair/strategy/pay/WeChatPayRepairStrategy.java
@@ -1,6 +1,6 @@
 package cn.daxpay.single.service.core.payment.repair.strategy.pay;
 
-import cn.daxpay.single.code.PayChannelEnum;
+import cn.daxpay.single.core.code.PayChannelEnum;
 import cn.daxpay.single.service.core.channel.wechat.entity.WeChatPayConfig;
 import cn.daxpay.single.service.core.channel.wechat.service.WeChatPayCloseService;
 import cn.daxpay.single.service.core.channel.wechat.service.WeChatPayConfigService;
@@ -32,8 +32,8 @@ public class WeChatPayRepairStrategy extends AbsPayRepairStrategy {
      * 策略标识
      */
     @Override
-    public PayChannelEnum getChannel() {
-        return PayChannelEnum.WECHAT;
+    public String getChannel() {
+        return PayChannelEnum.WECHAT.getCode();
     }
 
 
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/sync/factory/PaySyncStrategyFactory.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/sync/factory/PaySyncStrategyFactory.java
deleted file mode 100644
index 5030cb2f77100d676c26e5c83bfc7dea822167ad..0000000000000000000000000000000000000000
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/sync/factory/PaySyncStrategyFactory.java
+++ /dev/null
@@ -1,42 +0,0 @@
-package cn.daxpay.single.service.core.payment.sync.factory;
-
-
-import cn.daxpay.single.code.PayChannelEnum;
-import cn.daxpay.single.exception.pay.PayUnsupportedMethodException;
-import cn.daxpay.single.service.core.payment.sync.strategy.pay.AliPaySyncStrategy;
-import cn.daxpay.single.service.core.payment.sync.strategy.pay.UnionPaySyncStrategy;
-import cn.daxpay.single.service.core.payment.sync.strategy.pay.WeChatPaySyncStrategy;
-import cn.daxpay.single.service.func.AbsPaySyncStrategy;
-import cn.hutool.extra.spring.SpringUtil;
-
-/**
- * 支付同步策略工厂类
- * @author xxm
- * @since 2023/7/14
- */
-public class PaySyncStrategyFactory {
-    /**
-     * 获取支付同步策略, 只有异步支付方式才需要这个功能
-     * @param channelCode 支付通道编码
-     * @return 支付同步策略类
-     */
-    public static AbsPaySyncStrategy create(String channelCode) {
-        AbsPaySyncStrategy strategy;
-        PayChannelEnum channelEnum = PayChannelEnum.findByCode(channelCode);
-        switch (channelEnum) {
-            case ALI:
-                strategy = SpringUtil.getBean(AliPaySyncStrategy.class);
-                break;
-            case WECHAT:
-                strategy = SpringUtil.getBean(WeChatPaySyncStrategy.class);
-                break;
-            case UNION_PAY:
-                strategy = SpringUtil.getBean(UnionPaySyncStrategy.class);
-                break;
-            default:
-                throw new PayUnsupportedMethodException();
-        }
-        // noinspection ConstantConditions
-        return strategy;
-    }
-}
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/sync/factory/RefundSyncStrategyFactory.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/sync/factory/RefundSyncStrategyFactory.java
deleted file mode 100644
index ce839bd212862abefef0767985ab19254cdf04b3..0000000000000000000000000000000000000000
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/sync/factory/RefundSyncStrategyFactory.java
+++ /dev/null
@@ -1,43 +0,0 @@
-package cn.daxpay.single.service.core.payment.sync.factory;
-
-import cn.daxpay.single.code.PayChannelEnum;
-import cn.daxpay.single.exception.pay.PayUnsupportedMethodException;
-import cn.daxpay.single.service.core.payment.sync.strategy.Refund.AliRefundSyncStrategy;
-import cn.daxpay.single.service.core.payment.sync.strategy.Refund.UnionRefundSyncStrategy;
-import cn.daxpay.single.service.core.payment.sync.strategy.Refund.WeChatRefundSyncStrategy;
-import cn.daxpay.single.service.func.AbsRefundSyncStrategy;
-import cn.hutool.extra.spring.SpringUtil;
-import lombok.experimental.UtilityClass;
-
-/**
- * 支付退款同步策略工厂
- * @author xxm
- * @since 2024/1/29
- */
-@UtilityClass
-public class RefundSyncStrategyFactory {
-    /**
-     * 获取支付同步策略, 只有异步支付方式才需要这个功能
-     * @param channelCode 支付通道编码
-     * @return 支付同步策略类
-     */
-    public static AbsRefundSyncStrategy create(String channelCode) {
-        AbsRefundSyncStrategy strategy;
-        PayChannelEnum channelEnum = PayChannelEnum.findByCode(channelCode);
-        switch (channelEnum) {
-            case ALI:
-                strategy = SpringUtil.getBean(AliRefundSyncStrategy.class);
-                break;
-            case UNION_PAY:
-                strategy = SpringUtil.getBean(UnionRefundSyncStrategy.class);
-                break;
-            case WECHAT:
-                strategy = SpringUtil.getBean(WeChatRefundSyncStrategy.class);
-                break;
-            default:
-                throw new PayUnsupportedMethodException();
-        }
-        // noinspection ConstantConditions
-        return strategy;
-    }
-}
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/sync/result/PayRemoteSyncResult.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/sync/result/PayRemoteSyncResult.java
index f05792f0556bbabeffe09c0c1634181328acb89c..530b538d4cd72514fe8072732757cfce8fa08e91 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/sync/result/PayRemoteSyncResult.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/sync/result/PayRemoteSyncResult.java
@@ -1,12 +1,12 @@
 package cn.daxpay.single.service.core.payment.sync.result;
 
-import cn.daxpay.single.code.PaySyncStatusEnum;
+import cn.daxpay.single.core.code.PaySyncStatusEnum;
 import lombok.Data;
 import lombok.experimental.Accessors;
 
 import java.time.LocalDateTime;
 
-import static cn.daxpay.single.code.PaySyncStatusEnum.FAIL;
+import static cn.daxpay.single.core.code.PaySyncStatusEnum.FAIL;
 
 /**
  * 支付网关同步结果
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/sync/result/RefundRemoteSyncResult.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/sync/result/RefundRemoteSyncResult.java
index eeaeef823991a43fbe64b6a2335cfa667ca4abfd..5fccc5f97a5a92b9ca745eac9b23709968b37c95 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/sync/result/RefundRemoteSyncResult.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/sync/result/RefundRemoteSyncResult.java
@@ -1,12 +1,12 @@
 package cn.daxpay.single.service.core.payment.sync.result;
 
-import cn.daxpay.single.code.RefundSyncStatusEnum;
+import cn.daxpay.single.core.code.RefundSyncStatusEnum;
 import lombok.Data;
 import lombok.experimental.Accessors;
 
 import java.time.LocalDateTime;
 
-import static cn.daxpay.single.code.RefundSyncStatusEnum.PROGRESS;
+import static cn.daxpay.single.core.code.RefundSyncStatusEnum.PROGRESS;
 
 /**
  * 支付退款同步结果
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/sync/service/PaySyncService.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/sync/service/PaySyncService.java
index a26d371e70a56a6a55047138b57983eeeb1938f6..6aaf990aea93c1e5f6b2302dc5f325d76ed630e3 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/sync/service/PaySyncService.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/sync/service/PaySyncService.java
@@ -2,12 +2,13 @@ package cn.daxpay.single.service.core.payment.sync.service;
 
 import cn.bootx.platform.common.core.exception.RepetitiveOperationException;
 import cn.bootx.platform.common.core.util.LocalDateTimeUtil;
-import cn.daxpay.single.code.PayChannelEnum;
-import cn.daxpay.single.code.PayStatusEnum;
-import cn.daxpay.single.code.PaySyncStatusEnum;
-import cn.daxpay.single.exception.pay.PayFailureException;
-import cn.daxpay.single.param.payment.pay.PaySyncParam;
-import cn.daxpay.single.result.sync.PaySyncResult;
+import cn.daxpay.single.core.code.PayChannelEnum;
+import cn.daxpay.single.core.code.PayOrderRefundStatusEnum;
+import cn.daxpay.single.core.code.PayStatusEnum;
+import cn.daxpay.single.core.code.PaySyncStatusEnum;
+import cn.daxpay.single.core.exception.*;
+import cn.daxpay.single.core.param.payment.pay.PaySyncParam;
+import cn.daxpay.single.core.result.sync.PaySyncResult;
 import cn.daxpay.single.service.code.PayRepairSourceEnum;
 import cn.daxpay.single.service.code.PayRepairWayEnum;
 import cn.daxpay.single.service.code.PaymentTypeEnum;
@@ -18,11 +19,11 @@ import cn.daxpay.single.service.core.order.pay.service.PayOrderQueryService;
 import cn.daxpay.single.service.core.order.pay.service.PayOrderService;
 import cn.daxpay.single.service.core.payment.repair.result.PayRepairResult;
 import cn.daxpay.single.service.core.payment.repair.service.PayRepairService;
-import cn.daxpay.single.service.core.payment.sync.factory.PaySyncStrategyFactory;
 import cn.daxpay.single.service.core.payment.sync.result.PayRemoteSyncResult;
 import cn.daxpay.single.service.core.record.sync.entity.PaySyncRecord;
 import cn.daxpay.single.service.core.record.sync.service.PaySyncRecordService;
 import cn.daxpay.single.service.func.AbsPaySyncStrategy;
+import cn.daxpay.single.service.util.PayStrategyFactory;
 import com.baomidou.lock.LockInfo;
 import com.baomidou.lock.LockTemplate;
 import lombok.RequiredArgsConstructor;
@@ -33,11 +34,10 @@ import org.springframework.transaction.annotation.Transactional;
 
 import java.time.LocalDateTime;
 import java.util.Arrays;
-import java.util.Collections;
 import java.util.List;
 import java.util.Objects;
 
-import static cn.daxpay.single.code.PaySyncStatusEnum.*;
+import static cn.daxpay.single.core.code.PaySyncStatusEnum.*;
 
 /**
  * 支付同步服务
@@ -64,10 +64,11 @@ public class PaySyncService {
     @Transactional(propagation = Propagation.REQUIRES_NEW, rollbackFor = Exception.class)
     public PaySyncResult sync(PaySyncParam param) {
         PayOrder payOrder = payOrderQueryService.findByBizOrOrderNo(param.getOrderNo(), param.getBizOrderNo())
-                .orElseThrow(() -> new PayFailureException("支付订单不存在"));
-        // 钱包支付钱包不需要
+                .orElseThrow(() -> new TradeNotExistException("支付订单不存在"));
+
+        // 钱包支付钱包不需要同步
         if (PayChannelEnum.WALLET.getCode().equals(payOrder.getChannel())){
-            throw new PayFailureException("订单没有异步支付方式,不需要同步");
+            throw new TradeStatusErrorException("支付订单不需要同步");
         }
         // 执行订单同步逻辑
         return this.syncPayOrder(payOrder);
@@ -85,10 +86,9 @@ public class PaySyncService {
         if (Objects.isNull(lock)){
             throw new RepetitiveOperationException("支付同步处理中,请勿重复操作");
         }
-
         try {
             // 获取支付同步策略类
-            AbsPaySyncStrategy syncPayStrategy = PaySyncStrategyFactory.create(payOrder.getChannel());
+            AbsPaySyncStrategy syncPayStrategy = PayStrategyFactory.create(payOrder.getChannel(), AbsPaySyncStrategy.class);
             syncPayStrategy.initPayParam(payOrder);
             // 执行操作, 获取支付网关同步的结果
             PayRemoteSyncResult payRemoteSyncResult = syncPayStrategy.doSyncStatus();
@@ -96,7 +96,7 @@ public class PaySyncService {
             if (Objects.equals(payRemoteSyncResult.getSyncStatus(), PaySyncStatusEnum.FAIL)){
                 // 同步失败, 返回失败响应, 同时记录失败的日志
                 this.saveRecord(payOrder, payRemoteSyncResult, false, null, payRemoteSyncResult.getErrorMsg());
-                throw new PayFailureException(payRemoteSyncResult.getErrorMsg());
+                throw new OperationFailException(payRemoteSyncResult.getErrorMsg());
             }
             // 支付订单的网关订单号是否一致, 不一致进行更新
             if (!Objects.equals(payRemoteSyncResult.getOutOrderNo(), payOrder.getOutOrderNo())){
@@ -163,18 +163,15 @@ public class PaySyncService {
          未找到订单可能是发起支付用户未操作、支付已关闭、交易未找到三种情况
          所以需要根据本地订单不同的状态进行特殊处理, 此处视为支付已关闭、交易未找到这两种, 处理方式相同, 都作为支付关闭处理
          */
-        List<String> payCloseEnums = Collections.singletonList(PayStatusEnum.CLOSE.getCode());
+        List<String> payCloseEnums = Arrays.asList(PayStatusEnum.CLOSE.getCode(), PayStatusEnum.CANCEL.getCode());
         List<PaySyncStatusEnum> syncClose = Arrays.asList(CLOSED, NOT_FOUND, NOT_FOUND_UNKNOWN);
         if (payCloseEnums.contains(orderStatus) && syncClose.contains(syncStatus)){
             return true;
         }
 
-        // 退款比对状态不做额外处理, 需要通过退款接口进行处理
-        List<String> orderClose = Arrays.asList(
-                PayStatusEnum.REFUNDED.getCode(),
-                PayStatusEnum.REFUNDING.getCode(),
-                PayStatusEnum.PARTIAL_REFUND.getCode());
-        if (orderClose.contains(orderStatus) || syncStatus.equals(PaySyncStatusEnum.REFUND)){
+        // 退款状态不做额外处理, 需要通过退款接口进行处理
+        if (!Objects.equals(order.getRefundStatus(),PayOrderRefundStatusEnum.NO_REFUND.getCode())
+                || syncStatus.equals(PaySyncStatusEnum.REFUND)){
             return true;
         }
         return false;
@@ -199,7 +196,7 @@ public class PaySyncService {
                 break;
             }
             case REFUND:
-                throw new PayFailureException("支付订单为退款状态,请通过执行对应的退款订单进行同步,来更新具体为什么类型退款状态");
+                throw new TradeStatusErrorException("支付订单为退款状态,请通过执行对应的退款订单进行同步,来更新具体为什么类型退款状态");
             // 交易关闭和未找到, 都对本地支付订单进行关闭, 不需要再调用网关进行关闭
             case CLOSED:
             case NOT_FOUND: {
@@ -219,7 +216,7 @@ public class PaySyncService {
                 break;
             }
             default: {
-                throw new PayFailureException("代码有问题");
+                throw new SystemUnknownErrorException("代码有问题");
             }
         }
         return repair;
@@ -246,7 +243,8 @@ public class PaySyncService {
                 .setRepair(repair)
                 .setRepairNo(repairOrderNo)
                 .setErrorMsg(errorMsg)
-                .setClientIp(PaymentContextLocal.get().getRequestInfo().getClientIp());
+                .setClientIp(PaymentContextLocal.get().getClientInfo().getClientIp());
         paySyncRecordService.saveRecord(paySyncRecord);
     }
+
 }
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/sync/service/RefundSyncService.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/sync/service/RefundSyncService.java
index eff3f96b35d5fc2613f8dc19b6950c22d680e2e1..551debd97096b706d24f175e71d3789a89a35872 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/sync/service/RefundSyncService.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/sync/service/RefundSyncService.java
@@ -2,11 +2,13 @@ package cn.daxpay.single.service.core.payment.sync.service;
 
 import cn.bootx.platform.common.core.exception.BizException;
 import cn.bootx.platform.common.core.exception.RepetitiveOperationException;
-import cn.daxpay.single.code.RefundStatusEnum;
-import cn.daxpay.single.code.RefundSyncStatusEnum;
-import cn.daxpay.single.exception.pay.PayFailureException;
-import cn.daxpay.single.param.payment.refund.RefundSyncParam;
-import cn.daxpay.single.result.sync.RefundSyncResult;
+import cn.daxpay.single.core.code.RefundStatusEnum;
+import cn.daxpay.single.core.code.RefundSyncStatusEnum;
+import cn.daxpay.single.core.exception.OperationFailException;
+import cn.daxpay.single.core.exception.PayFailureException;
+import cn.daxpay.single.core.exception.TradeNotExistException;
+import cn.daxpay.single.core.param.payment.refund.RefundSyncParam;
+import cn.daxpay.single.core.result.sync.RefundSyncResult;
 import cn.daxpay.single.service.code.PayRepairSourceEnum;
 import cn.daxpay.single.service.code.PaymentTypeEnum;
 import cn.daxpay.single.service.code.RefundRepairWayEnum;
@@ -17,11 +19,11 @@ import cn.daxpay.single.service.core.order.refund.entity.RefundOrder;
 import cn.daxpay.single.service.core.order.refund.service.RefundOrderQueryService;
 import cn.daxpay.single.service.core.payment.repair.result.RefundRepairResult;
 import cn.daxpay.single.service.core.payment.repair.service.RefundRepairService;
-import cn.daxpay.single.service.core.payment.sync.factory.RefundSyncStrategyFactory;
 import cn.daxpay.single.service.core.payment.sync.result.RefundRemoteSyncResult;
 import cn.daxpay.single.service.core.record.sync.entity.PaySyncRecord;
 import cn.daxpay.single.service.core.record.sync.service.PaySyncRecordService;
 import cn.daxpay.single.service.func.AbsRefundSyncStrategy;
+import cn.daxpay.single.service.util.PayStrategyFactory;
 import com.baomidou.lock.LockInfo;
 import com.baomidou.lock.LockTemplate;
 import lombok.RequiredArgsConstructor;
@@ -58,7 +60,7 @@ public class RefundSyncService {
     public RefundSyncResult sync(RefundSyncParam param){
         // 先获取退款单
         RefundOrder refundOrder = refundOrderQueryService.findByBizOrRefundNo(param.getRefundNo(), param.getBizRefundNo())
-                .orElseThrow(() -> new PayFailureException("未查询到退款订单"));
+                .orElseThrow(() -> new TradeNotExistException("未查询到退款订单"));
         // 如果订单已经关闭, 直接返回退款关闭
         if (Objects.equals(refundOrder.getStatus(), RefundStatusEnum.CLOSE.getCode())){
             return new RefundSyncResult().setStatus(RefundStatusEnum.CLOSE.getCode());
@@ -78,7 +80,7 @@ public class RefundSyncService {
         }
         try {
             // 获取支付同步策略类
-            AbsRefundSyncStrategy syncPayStrategy = RefundSyncStrategyFactory.create(refundOrder.getChannel());
+            AbsRefundSyncStrategy syncPayStrategy = PayStrategyFactory.create(refundOrder.getChannel(),AbsRefundSyncStrategy.class);
             syncPayStrategy.setRefundOrder(refundOrder);
             // 同步前处理, 主要预防请求过于迅速
             syncPayStrategy.doBeforeHandler();
@@ -89,7 +91,7 @@ public class RefundSyncService {
             if (Objects.equals(refundRemoteSyncResult.getSyncStatus(), RefundSyncStatusEnum.FAIL)) {
                 // 同步失败, 返回失败响应, 同时记录失败的日志
                 this.saveRecord(refundOrder, refundRemoteSyncResult, false, null, refundRemoteSyncResult.getErrorMsg());
-                throw new PayFailureException(refundRemoteSyncResult.getErrorMsg());
+                throw new OperationFailException(refundRemoteSyncResult.getErrorMsg());
             }
             // 订单的通道交易号是否一致, 不一致进行更新
             if (Objects.nonNull(refundRemoteSyncResult.getOutRefundNo()) && !Objects.equals(refundRemoteSyncResult.getOutRefundNo(), refundOrder.getOutRefundNo())){
@@ -200,7 +202,8 @@ public class RefundSyncService {
                 .setRepair(repair)
                 .setRepairNo(repairOrderNo)
                 .setErrorMsg(errorMsg)
-                .setClientIp(PaymentContextLocal.get().getRequestInfo().getClientIp());
+                .setClientIp(PaymentContextLocal.get().getClientInfo().getClientIp());
         paySyncRecordService.saveRecord(paySyncRecord);
     }
+
 }
diff --git a/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/core/media/service/DingMediaMd5Service.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/sync/service/TransferSyncService.java
similarity index 32%
rename from bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/core/media/service/DingMediaMd5Service.java
rename to daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/sync/service/TransferSyncService.java
index cd4c27d11fc3dbe1950f317f1a1c474d7dfa4d3a..de6ac8b4e8d69753e8d9d1a9471927a5f7883200 100644
--- a/bootx-platform/bootx-common-starters/common-starter-dingtalk/src/main/java/cn/bootx/platform/starter/dingtalk/core/media/service/DingMediaMd5Service.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/sync/service/TransferSyncService.java
@@ -1,19 +1,26 @@
-package cn.bootx.platform.starter.dingtalk.core.media.service;
+package cn.daxpay.single.service.core.payment.sync.service;
 
-import cn.bootx.platform.starter.dingtalk.core.media.dao.DingMediaMd5Manager;
+import cn.daxpay.single.core.param.payment.transfer.TransferSyncParam;
+import cn.daxpay.single.core.result.sync.TransferSyncResult;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 
 /**
+ * 转账同步接口
  * @author xxm
- * @since 2022/7/26
+ * @since 2024/6/17
  */
 @Slf4j
 @Service
 @RequiredArgsConstructor
-public class DingMediaMd5Service {
+public class TransferSyncService {
 
-    private final DingMediaMd5Manager dingMediaMd5Manager;
+    /**
+     * 转账同步接口
+     */
+    public TransferSyncResult sync(TransferSyncParam param) {
 
+        return null;
+    }
 }
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/sync/strategy/Refund/AliRefundSyncStrategy.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/sync/strategy/Refund/AliRefundSyncStrategy.java
index 4b55e3a34a0568b4ae0ca34d9242df751be68549..188aa66a418b32f61ab0a9c05dc8ee8e3c97863a 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/sync/strategy/Refund/AliRefundSyncStrategy.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/sync/strategy/Refund/AliRefundSyncStrategy.java
@@ -1,9 +1,7 @@
 package cn.daxpay.single.service.core.payment.sync.strategy.Refund;
 
-import cn.daxpay.single.code.PayChannelEnum;
-import cn.daxpay.single.code.PaySyncStatusEnum;
-import cn.daxpay.single.service.core.channel.alipay.entity.AliPayConfig;
-import cn.daxpay.single.service.core.channel.alipay.service.AliPayConfigService;
+import cn.daxpay.single.core.code.PayChannelEnum;
+import cn.daxpay.single.core.code.PaySyncStatusEnum;
 import cn.daxpay.single.service.core.channel.alipay.service.AliPaySyncService;
 import cn.daxpay.single.service.core.payment.sync.result.RefundRemoteSyncResult;
 import cn.daxpay.single.service.func.AbsRefundSyncStrategy;
@@ -23,16 +21,14 @@ import static org.springframework.beans.factory.config.BeanDefinition.SCOPE_PROT
 @RequiredArgsConstructor
 public class AliRefundSyncStrategy extends AbsRefundSyncStrategy {
 
-    private final AliPayConfigService alipayConfigService;
-
     private final AliPaySyncService aliPaySyncService;;
 
     /**
      * 策略标识
      */
-    @Override
-    public PayChannelEnum getChannel() {
-        return PayChannelEnum.ALI;
+     @Override
+    public String getChannel() {
+        return PayChannelEnum.ALI.getCode();
     }
 
     /**
@@ -42,8 +38,6 @@ public class AliRefundSyncStrategy extends AbsRefundSyncStrategy {
      */
     @Override
     public RefundRemoteSyncResult doSyncStatus() {
-        AliPayConfig config = alipayConfigService.getConfig();
-        alipayConfigService.initConfig(config);
         return aliPaySyncService.syncRefundStatus(this.getRefundOrder());
     }
 }
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/sync/strategy/Refund/UnionRefundSyncStrategy.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/sync/strategy/Refund/UnionRefundSyncStrategy.java
index a2ab970610f68798a36a3caf2c79bc032ec53ca9..6583fd0140b2e20182cbeddaed73f1feba91ab0f 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/sync/strategy/Refund/UnionRefundSyncStrategy.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/sync/strategy/Refund/UnionRefundSyncStrategy.java
@@ -1,7 +1,7 @@
 package cn.daxpay.single.service.core.payment.sync.strategy.Refund;
 
-import cn.daxpay.single.code.PayChannelEnum;
-import cn.daxpay.single.code.PaySyncStatusEnum;
+import cn.daxpay.single.core.code.PayChannelEnum;
+import cn.daxpay.single.core.code.PaySyncStatusEnum;
 import cn.daxpay.single.service.core.channel.union.entity.UnionPayConfig;
 import cn.daxpay.single.service.core.channel.union.service.UnionPayConfigService;
 import cn.daxpay.single.service.core.channel.union.service.UnionPaySyncService;
@@ -43,7 +43,7 @@ public class UnionRefundSyncStrategy extends AbsRefundSyncStrategy {
      * 策略标识
      */
     @Override
-    public PayChannelEnum getChannel() {
-        return PayChannelEnum.UNION_PAY;
+    public String getChannel() {
+        return PayChannelEnum.UNION_PAY.getCode();
     }
 }
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/sync/strategy/Refund/WeChatRefundSyncStrategy.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/sync/strategy/Refund/WeChatRefundSyncStrategy.java
index 328aa49e3fced20629217f7c02a1ee4f4c4733cb..60730da630f7933d7215e0fe1dc73d222cf81c58 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/sync/strategy/Refund/WeChatRefundSyncStrategy.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/sync/strategy/Refund/WeChatRefundSyncStrategy.java
@@ -1,6 +1,6 @@
 package cn.daxpay.single.service.core.payment.sync.strategy.Refund;
 
-import cn.daxpay.single.code.PayChannelEnum;
+import cn.daxpay.single.core.code.PayChannelEnum;
 import cn.daxpay.single.service.core.channel.wechat.entity.WeChatPayConfig;
 import cn.daxpay.single.service.core.channel.wechat.service.WeChatPayConfigService;
 import cn.daxpay.single.service.core.channel.wechat.service.WeChatPaySyncService;
@@ -28,8 +28,8 @@ public class WeChatRefundSyncStrategy extends AbsRefundSyncStrategy {
      * 策略标识
      */
     @Override
-    public PayChannelEnum getChannel() {
-        return PayChannelEnum.WECHAT;
+    public String getChannel() {
+        return PayChannelEnum.WECHAT.getCode();
     }
 
     /**
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/sync/strategy/pay/AliPaySyncStrategy.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/sync/strategy/pay/AliPaySyncStrategy.java
index eec17a41d63519d44b9301a86c36cf024aeace41..762fc8de8b714c32875cfb4eeec23b8183ecedf8 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/sync/strategy/pay/AliPaySyncStrategy.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/sync/strategy/pay/AliPaySyncStrategy.java
@@ -1,7 +1,7 @@
 package cn.daxpay.single.service.core.payment.sync.strategy.pay;
 
 
-import cn.daxpay.single.code.PayChannelEnum;
+import cn.daxpay.single.core.code.PayChannelEnum;
 import cn.daxpay.single.service.core.channel.alipay.entity.AliPayConfig;
 import cn.daxpay.single.service.core.channel.alipay.service.AliPayConfigService;
 import cn.daxpay.single.service.core.channel.alipay.service.AliPaySyncService;
@@ -30,9 +30,9 @@ public class AliPaySyncStrategy extends AbsPaySyncStrategy {
     /**
      * 策略标识
      */
-    @Override
-    public PayChannelEnum getChannel() {
-        return PayChannelEnum.ALI;
+     @Override
+    public String getChannel() {
+        return PayChannelEnum.ALI.getCode();
     }
 
     /**
@@ -40,16 +40,7 @@ public class AliPaySyncStrategy extends AbsPaySyncStrategy {
      */
     @Override
     public PayRemoteSyncResult doSyncStatus() {
-        this.initAlipayConfig();
-        return alipaySyncService.syncPayStatus(this.getOrder());
-    }
-
-    /**
-     * 初始化支付宝配置信息
-     */
-    private void initAlipayConfig() {
-        // 检查并获取支付宝支付配置
         AliPayConfig config = alipayConfigService.getConfig();
-        alipayConfigService.initConfig(config);
+        return alipaySyncService.syncPayStatus(this.getOrder(),config);
     }
 }
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/sync/strategy/pay/UnionPaySyncStrategy.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/sync/strategy/pay/UnionPaySyncStrategy.java
index b9cb545052aaf7a71e6034290fdd79ca4a9d77d5..8f1271652301e1645c7e647f8979519dd1312e52 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/sync/strategy/pay/UnionPaySyncStrategy.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/sync/strategy/pay/UnionPaySyncStrategy.java
@@ -1,7 +1,7 @@
 package cn.daxpay.single.service.core.payment.sync.strategy.pay;
 
-import cn.daxpay.single.code.PayChannelEnum;
-import cn.daxpay.single.code.PaySyncStatusEnum;
+import cn.daxpay.single.core.code.PayChannelEnum;
+import cn.daxpay.single.core.code.PaySyncStatusEnum;
 import cn.daxpay.single.service.core.channel.union.entity.UnionPayConfig;
 import cn.daxpay.single.service.core.channel.union.service.UnionPayConfigService;
 import cn.daxpay.single.service.core.channel.union.service.UnionPaySyncService;
@@ -44,7 +44,7 @@ public class UnionPaySyncStrategy extends AbsPaySyncStrategy {
      * 策略标识
      */
     @Override
-    public PayChannelEnum getChannel() {
-        return PayChannelEnum.UNION_PAY;
+    public String getChannel() {
+        return PayChannelEnum.UNION_PAY.getCode();
     }
 }
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/sync/strategy/pay/WeChatPaySyncStrategy.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/sync/strategy/pay/WeChatPaySyncStrategy.java
index b1413c213c4a78f8bf8d744d45154dbd5faccc98..3bea7a2ed87e0c16c583a5ff4aad8f74ade40d39 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/sync/strategy/pay/WeChatPaySyncStrategy.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/sync/strategy/pay/WeChatPaySyncStrategy.java
@@ -1,6 +1,6 @@
 package cn.daxpay.single.service.core.payment.sync.strategy.pay;
 
-import cn.daxpay.single.code.PayChannelEnum;
+import cn.daxpay.single.core.code.PayChannelEnum;
 import cn.daxpay.single.service.core.channel.wechat.entity.WeChatPayConfig;
 import cn.daxpay.single.service.core.channel.wechat.service.WeChatPayConfigService;
 import cn.daxpay.single.service.core.channel.wechat.service.WeChatPaySyncService;
@@ -32,8 +32,8 @@ public class WeChatPaySyncStrategy extends AbsPaySyncStrategy {
      * 策略标识
      */
     @Override
-    public PayChannelEnum getChannel() {
-        return PayChannelEnum.WECHAT;
+    public String getChannel() {
+        return PayChannelEnum.WECHAT.getCode();
     }
 
     /**
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/sync/strategy/transfer/AliTransferSyncStrategy.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/sync/strategy/transfer/AliTransferSyncStrategy.java
new file mode 100644
index 0000000000000000000000000000000000000000..3ae1b75eab4a8b08779832988b097d824adebaaf
--- /dev/null
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/sync/strategy/transfer/AliTransferSyncStrategy.java
@@ -0,0 +1,18 @@
+package cn.daxpay.single.service.core.payment.sync.strategy.transfer;
+
+import lombok.RequiredArgsConstructor;
+import org.springframework.context.annotation.Scope;
+import org.springframework.stereotype.Component;
+
+import static org.springframework.beans.factory.config.BeanDefinition.SCOPE_PROTOTYPE;
+
+/**
+ * 转账同步接口
+ * @author xxm
+ * @since 2024/6/17
+ */
+@Scope(SCOPE_PROTOTYPE)
+@Component
+@RequiredArgsConstructor
+public class AliTransferSyncStrategy {
+}
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/transfer/factory/TransferFactory.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/transfer/factory/TransferFactory.java
deleted file mode 100644
index 9cde56acfe7ec501a0e8c79f21de015fa5b2f1b4..0000000000000000000000000000000000000000
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/transfer/factory/TransferFactory.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package cn.daxpay.single.service.core.payment.transfer.factory;
-
-import lombok.experimental.UtilityClass;
-
-/**
- * 转账工具类
- * @author xxm
- * @since 2024/3/21
- */
-@UtilityClass
-public class TransferFactory {
-}
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/transfer/service/TransferAssistService.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/transfer/service/TransferAssistService.java
new file mode 100644
index 0000000000000000000000000000000000000000..a9c634d5b09b1ee5ff9fd19dd35ff80602497f4b
--- /dev/null
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/transfer/service/TransferAssistService.java
@@ -0,0 +1,72 @@
+package cn.daxpay.single.service.core.payment.transfer.service;
+
+import cn.daxpay.single.core.code.TransferStatusEnum;
+import cn.daxpay.single.core.param.payment.transfer.TransferParam;
+import cn.daxpay.single.core.result.transfer.TransferResult;
+import cn.daxpay.single.service.common.context.ErrorInfoLocal;
+import cn.daxpay.single.service.common.local.PaymentContextLocal;
+import cn.daxpay.single.service.core.order.transfer.dao.TransferOrderManager;
+import cn.daxpay.single.service.core.order.transfer.entity.TransferOrder;
+import cn.daxpay.single.core.util.OrderNoGenerateUtil;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ * 转账辅助服务
+ * @author xxm
+ * @since 2024/6/6
+ */
+@Slf4j
+@Service
+@RequiredArgsConstructor
+public class TransferAssistService {
+
+    private final TransferOrderManager transferOrderManager;
+
+    /**
+     * 创建转账订单
+     */
+    @Transactional(rollbackFor = Exception.class)
+    public TransferOrder createOrder(TransferParam param) {
+        // 创建转账订单
+        TransferOrder transferOrder = new TransferOrder()
+                .setTransferNo(OrderNoGenerateUtil.transfer())
+                .setAmount(param.getAmount())
+                .setBizTransferNo(param.getBizTransferNo())
+                .setChannel(param.getChannel())
+                .setPayeeName(param.getPayeeName())
+                .setPayeeAccount(param.getPayeeAccount())
+                .setPayeeType(param.getPayeeType())
+                .setReason(param.getReason())
+                .setStatus(TransferStatusEnum.TRANSFERRING.getCode())
+                .setTitle(param.getTitle())
+                .setNotifyUrl(param.getNotifyUrl())
+                .setAttach(param.getAttach())
+                .setClientIp(param.getClientIp());
+        transferOrderManager.save(transferOrder);
+        return transferOrder;
+    }
+
+    /**
+     * 更新转账订单错误信息
+     */
+    public void updateOrderByError(TransferOrder order) {
+        ErrorInfoLocal errorInfo = PaymentContextLocal.get().getErrorInfo();
+        order.setStatus(TransferStatusEnum.FAIL.getCode())
+                .setErrorMsg(errorInfo.getErrorMsg())
+                .setErrorCode(String.valueOf(errorInfo.getErrorCode()));
+        transferOrderManager.updateById(order);
+    }
+
+    /**
+     * 构造
+     */
+    public TransferResult buildResult(TransferOrder order) {
+        return new TransferResult()
+                .setTransferNo(order.getTransferNo())
+                .setBizTransferNo(order.getBizTransferNo())
+                .setStatus(order.getStatus());
+    }
+}
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/transfer/service/TransferService.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/transfer/service/TransferService.java
index acf7e17eeddef4e75fdada7ee9dc3877192e9165..9a6402123ee7611ec23433073d36e89826055b46 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/transfer/service/TransferService.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/transfer/service/TransferService.java
@@ -1,8 +1,20 @@
 package cn.daxpay.single.service.core.payment.transfer.service;
 
+import cn.daxpay.single.core.code.RefundStatusEnum;
+import cn.daxpay.single.core.param.payment.transfer.TransferParam;
+import cn.daxpay.single.core.result.transfer.TransferResult;
+import cn.daxpay.single.service.common.context.TransferLocal;
+import cn.daxpay.single.service.common.local.PaymentContextLocal;
+import cn.daxpay.single.service.core.order.transfer.dao.TransferOrderManager;
+import cn.daxpay.single.service.core.order.transfer.entity.TransferOrder;
+import cn.daxpay.single.service.func.AbsTransferStrategy;
+import cn.daxpay.single.service.util.PayStrategyFactory;
+import cn.hutool.extra.spring.SpringUtil;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Propagation;
+import org.springframework.transaction.annotation.Transactional;
 
 /**
  * 转账服务
@@ -13,4 +25,50 @@ import org.springframework.stereotype.Service;
 @Service
 @RequiredArgsConstructor
 public class TransferService {
+
+    private final TransferAssistService transferAssistService;
+
+    private final TransferOrderManager transferOrderManager;
+
+    /**
+     * 转账
+     */
+    public TransferResult transfer(TransferParam transferParam){
+        // 获取策略
+        AbsTransferStrategy transferStrategy = PayStrategyFactory.create(transferParam.getChannel(),AbsTransferStrategy.class);
+        // 检查转账参数
+        transferStrategy.doValidateParam(transferParam);
+        // 创建转账订单并设置
+        TransferOrder order = transferAssistService.createOrder(transferParam);
+        transferStrategy.setTransferOrder(order);
+        // 执行预处理
+        transferStrategy.doBeforeHandler();
+        try {
+            // 执行转账策略
+            transferStrategy.doTransferHandler();
+        } catch (Exception e) {
+            log.error("转账出现错误", e);
+            // 记录处理失败状态
+            PaymentContextLocal.get().getRefundInfo().setStatus(RefundStatusEnum.FAIL);
+            PaymentContextLocal.get().getErrorInfo().setException(e);
+            // 更新退款失败的记录
+            transferAssistService.updateOrderByError(order);
+            return transferAssistService.buildResult(order);
+        }
+        SpringUtil.getBean(this.getClass()).successHandler(order);
+        return transferAssistService.buildResult(order);
+    }
+
+    /**
+     * 成功处理
+     */
+    @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRES_NEW)
+    public void successHandler(TransferOrder order){
+        TransferLocal transferInfo = PaymentContextLocal.get()
+                .getTransferInfo();
+        order.setStatus(transferInfo.getStatus().getCode())
+                .setSuccessTime(transferInfo.getFinishTime())
+                .setOutTransferNo(transferInfo.getOutTransferNo());
+        transferOrderManager.updateById(order);
+    }
 }
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/transfer/strategy/AliPayTransferStrategy.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/transfer/strategy/AliPayTransferStrategy.java
index 244e45b485dcab6b8515827a93f33af6687ae885..8e8c3d4bffefd06b272dbbf4375e109f0e0877f0 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/transfer/strategy/AliPayTransferStrategy.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/transfer/strategy/AliPayTransferStrategy.java
@@ -1,6 +1,8 @@
 package cn.daxpay.single.service.core.payment.transfer.strategy;
 
-import cn.daxpay.single.code.PayChannelEnum;
+import cn.daxpay.single.core.code.PayChannelEnum;
+import cn.bootx.platform.common.core.exception.ValidationFailedException;
+import cn.daxpay.single.core.param.payment.transfer.TransferParam;
 import cn.daxpay.single.service.core.channel.alipay.entity.AliPayConfig;
 import cn.daxpay.single.service.core.channel.alipay.service.AliPayConfigService;
 import cn.daxpay.single.service.core.channel.alipay.service.AliPayTransferService;
@@ -10,10 +12,13 @@ import lombok.extern.slf4j.Slf4j;
 import org.springframework.context.annotation.Scope;
 import org.springframework.stereotype.Service;
 
+import java.util.Arrays;
+
+import static cn.daxpay.single.core.code.TransferPayeeTypeEnum.*;
 import static org.springframework.beans.factory.config.BeanDefinition.SCOPE_PROTOTYPE;
 
 /**
- * 支付宝转账测策略
+ * 支付宝转账策略
  * @author xxm
  * @since 2024/3/21
  */
@@ -32,9 +37,18 @@ public class AliPayTransferStrategy extends AbsTransferStrategy {
     /**
      * 策略标识
      */
+     @Override
+    public String getChannel() {
+        return PayChannelEnum.ALI.getCode();
+    }
+
     @Override
-    public PayChannelEnum getChannel() {
-        return PayChannelEnum.ALI;
+    public void doValidateParam(TransferParam transferParam) {
+        // 转账接收方类型校验
+        String payeeType = transferParam.getPayeeType();
+        if (!Arrays.asList(ALI_USER_ID.getCode(), ALI_OPEN_ID.getCode(), ALI_LOGIN_NAME.getCode()).contains(payeeType)){
+            throw new ValidationFailedException("支付宝不支持该类型收款人");
+        }
     }
 
     /**
@@ -43,7 +57,13 @@ public class AliPayTransferStrategy extends AbsTransferStrategy {
     @Override
     public void doBeforeHandler() {
         this.config = payConfigService.getAndCheckConfig();
-        payConfigService.initConfig(this.config);
     }
 
+    /**
+     * 转账操作
+     */
+    @Override
+    public void doTransferHandler() {
+        aliPayTransferService.transfer(this.getTransferOrder(), this.config);
+    }
 }
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/transfer/strategy/WeChatTransferStrategy.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/transfer/strategy/WeChatTransferStrategy.java
new file mode 100644
index 0000000000000000000000000000000000000000..f0967f75c077647f1f064cd6430904475c1e11d0
--- /dev/null
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/transfer/strategy/WeChatTransferStrategy.java
@@ -0,0 +1,71 @@
+package cn.daxpay.single.service.core.payment.transfer.strategy;
+
+import cn.daxpay.single.core.code.PayChannelEnum;
+import cn.bootx.platform.common.core.exception.ValidationFailedException;
+import cn.daxpay.single.core.param.payment.transfer.TransferParam;
+import cn.daxpay.single.service.core.channel.wechat.entity.WeChatPayConfig;
+import cn.daxpay.single.service.core.channel.wechat.service.WeChatPayConfigService;
+import cn.daxpay.single.service.core.channel.wechat.service.WeChatPayTransferService;
+import cn.daxpay.single.service.func.AbsTransferStrategy;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.context.annotation.Scope;
+import org.springframework.stereotype.Service;
+
+import java.util.Objects;
+
+import static cn.daxpay.single.core.code.TransferPayeeTypeEnum.WX_PERSONAL;
+import static org.springframework.beans.factory.config.BeanDefinition.SCOPE_PROTOTYPE;
+
+/**
+ * 微信转账策略
+ * @author xxm
+ * @since 2024/6/14
+ */
+@Slf4j
+@Service
+@Scope(SCOPE_PROTOTYPE)
+@RequiredArgsConstructor
+public class WeChatTransferStrategy extends AbsTransferStrategy {
+
+    private final WeChatPayConfigService weChatPayConfigService;
+
+    private final WeChatPayTransferService weChatPayTransferService;
+
+    private WeChatPayConfig weChatPayConfig;
+
+    @Override
+    public String getChannel() {
+        return PayChannelEnum.WECHAT.getCode();
+    }
+
+
+    /**
+     * 校验参数
+     */
+    @Override
+    public void doValidateParam(TransferParam transferParam) {
+        // 转账接收方类型校验
+        String payeeType = transferParam.getPayeeType();
+        if (!Objects.equals(WX_PERSONAL.getCode(), payeeType)){
+            throw new ValidationFailedException("微信不支持该类型收款人");
+        }
+    }
+
+    /**
+     * 转账前操作
+     */
+    @Override
+    public void doBeforeHandler() {
+        this.weChatPayConfig = weChatPayConfigService.getConfig();
+    }
+
+    /**
+     * 转账操作
+     */
+    @Override
+    public void doTransferHandler() {
+        weChatPayTransferService.transfer(this.getTransferOrder(), weChatPayConfig);
+    }
+
+}
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/record/callback/entity/PayCallbackRecord.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/record/callback/entity/PayCallbackRecord.java
index 9a26d6b594894b5094979c93a6926a0b72e685fd..2f1ff3384b7f506f0bfba4f6b7bf90198e0adc76 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/record/callback/entity/PayCallbackRecord.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/record/callback/entity/PayCallbackRecord.java
@@ -2,17 +2,17 @@ package cn.daxpay.single.service.core.record.callback.entity;
 
 import cn.bootx.platform.common.core.function.EntityBaseFunction;
 import cn.bootx.platform.common.mybatisplus.base.MpCreateEntity;
-import cn.daxpay.single.code.PayChannelEnum;
-import cn.daxpay.single.service.code.PayCallbackStatusEnum;
-import cn.daxpay.single.service.code.PaymentTypeEnum;
-import cn.daxpay.single.service.core.record.callback.convert.PayCallbackRecordConvert;
-import cn.daxpay.single.service.dto.record.callback.PayCallbackRecordDto;
 import cn.bootx.table.modify.annotation.DbColumn;
 import cn.bootx.table.modify.annotation.DbTable;
 import cn.bootx.table.modify.mysql.annotation.DbMySqlFieldType;
+import cn.bootx.table.modify.mysql.annotation.DbMySqlIndex;
 import cn.bootx.table.modify.mysql.constants.MySqlFieldTypeEnum;
+import cn.daxpay.single.core.code.PayChannelEnum;
+import cn.daxpay.single.service.code.PayCallbackStatusEnum;
+import cn.daxpay.single.service.code.PaymentTypeEnum;
+import cn.daxpay.single.service.core.record.callback.convert.PayCallbackRecordConvert;
+import cn.daxpay.single.service.dto.record.callback.PayCallbackRecordDto;
 import com.baomidou.mybatisplus.annotation.TableName;
-import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
@@ -30,49 +30,50 @@ import lombok.experimental.Accessors;
 public class PayCallbackRecord extends MpCreateEntity implements EntityBaseFunction<PayCallbackRecordDto> {
 
     /** 本地交易号 */
-    @DbColumn(comment = "本地交易号")
+    @DbMySqlIndex(comment = "本地交易号索引")
+    @DbColumn(comment = "本地交易号", length = 32, isNull = false)
     private String tradeNo;
 
     /** 通道交易号 */
-    @DbColumn(comment = "通道交易号")
+    @DbMySqlIndex(comment = "通道交易号索引")
+    @DbColumn(comment = "通道交易号", length = 150)
     private String outTradeNo;
 
     /**
      * 支付通道
      * @see PayChannelEnum#getCode()
      */
-    @DbColumn(comment = "支付通道")
+    @DbColumn(comment = "支付通道", length = 20, isNull = false)
     private String channel;
 
     /**
      * 回调类型
      * @see PaymentTypeEnum
      */
-    @DbColumn(comment = "回调类型")
+    @DbColumn(comment = "回调类型", length = 20, isNull = false)
     private String callbackType;
 
     /** 通知消息内容 */
     @DbMySqlFieldType(MySqlFieldTypeEnum.LONGTEXT)
-    @DbColumn(comment = "通知消息")
+    @DbColumn(comment = "通知消息", isNull = false)
     private String notifyInfo;
 
     /**
      * @see PayCallbackStatusEnum
      */
-    @DbColumn(comment = "回调处理状态")
+    @DbColumn(comment = "回调处理状态", length = 20, isNull = false)
     private String status;
 
-
     /** 修复号 */
-    @Schema(description = "修复号")
+    @DbColumn(comment = "修复号", length = 32, isNull = false)
     private String repairOrderNo;
 
     /** 错误码 */
-    @DbColumn(comment = "错误码")
+    @DbColumn(comment = "错误码", length = 10)
     private String errorCode;
 
-    /** 提示信息 */
-    @DbColumn(comment = "提示信息")
+    /** 错误信息 */
+    @DbColumn(comment = "错误信息", length = 2048)
     private String errorMsg;
 
     /**
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/record/close/entity/PayCloseRecord.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/record/close/entity/PayCloseRecord.java
index b4e1adf2e6891c64427251d2dd19e4e9428fd4bf..bd587b90e9220cee1de4d67b883524f6a419781c 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/record/close/entity/PayCloseRecord.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/record/close/entity/PayCloseRecord.java
@@ -2,7 +2,9 @@ package cn.daxpay.single.service.core.record.close.entity;
 
 import cn.bootx.platform.common.core.function.EntityBaseFunction;
 import cn.bootx.platform.common.mybatisplus.base.MpCreateEntity;
-import cn.daxpay.single.code.PayChannelEnum;
+import cn.bootx.table.modify.mysql.annotation.DbMySqlIndex;
+import cn.daxpay.single.core.code.PayChannelEnum;
+import cn.daxpay.single.service.code.PayCloseTypeEnum;
 import cn.daxpay.single.service.core.record.close.convert.PayCloseRecordConvert;
 import cn.daxpay.single.service.dto.record.close.PayCloseRecordDto;
 import cn.bootx.table.modify.annotation.DbColumn;
@@ -24,37 +26,46 @@ import lombok.experimental.Accessors;
 @TableName("pay_close_record")
 public class PayCloseRecord extends MpCreateEntity implements EntityBaseFunction<PayCloseRecordDto> {
 
-    /** 订单号 */
-    @DbColumn(comment = "订单号")
+    /** 支付订单号 */
+    @DbMySqlIndex(comment = "支付订单号索引")
+    @DbColumn(comment = "支付订单号", length = 32, isNull = false)
     private String orderNo;
 
-    /** 商户订单号 */
-    @DbColumn(comment = "商户订单号")
+    /** 商户支付订单号 */
+    @DbMySqlIndex(comment = "商户支付订单号索引")
+    @DbColumn(comment = "商户支付订单号", length = 100, isNull = false)
     private String bizOrderNo;
 
     /**
-     * 关闭的支付通道
+     * 支付通道
      * @see PayChannelEnum
      */
-    @DbColumn(comment = "关闭的支付通道")
+    @DbColumn(comment = "支付通道", length = 20, isNull = false)
     private String channel;
 
+    /**
+     * 关闭类型 关闭/撤销
+     * @see PayCloseTypeEnum
+     */
+    @DbColumn(comment = "关闭类型", length = 20, isNull = false)
+    private String closeType;
+
     /**
      * 是否关闭成功
      */
-    @DbColumn(comment = "是否关闭成功")
+    @DbColumn(comment = "是否关闭成功", isNull = false)
     private boolean closed;
 
     /** 错误码 */
-    @DbColumn(comment = "错误码")
+    @DbColumn(comment = "错误码", length = 10)
     private String errorCode;
 
-    /** 错误消息 */
-    @DbColumn(comment = "错误消息")
+    /** 错误信息 */
+    @DbColumn(comment = "错误信息", length = 2048)
     private String errorMsg;
 
-    /** 客户端IP */
-    @DbColumn(comment = "客户端IP")
+    /** 终端ip */
+    @DbColumn(comment = "支付终端ip", length = 64)
     private String clientIp;
 
     /**
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/record/flow/entity/TradeFlowRecord.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/record/flow/entity/TradeFlowRecord.java
index 5e1a949c2aa6a4722e42227603e86562e461de22..95e2b6a382b96b681bf3f77f6a886a8c74ae7891 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/record/flow/entity/TradeFlowRecord.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/record/flow/entity/TradeFlowRecord.java
@@ -4,7 +4,8 @@ import cn.bootx.platform.common.core.function.EntityBaseFunction;
 import cn.bootx.platform.common.mybatisplus.base.MpCreateEntity;
 import cn.bootx.table.modify.annotation.DbColumn;
 import cn.bootx.table.modify.annotation.DbTable;
-import cn.daxpay.single.code.PayChannelEnum;
+import cn.bootx.table.modify.mysql.annotation.DbMySqlIndex;
+import cn.daxpay.single.core.code.PayChannelEnum;
 import cn.daxpay.single.service.code.TradeFlowRecordTypeEnum;
 import cn.daxpay.single.service.core.record.flow.convert.TradeFlowRecordConvert;
 import cn.daxpay.single.service.dto.record.flow.TradeFlowRecordDto;
@@ -26,37 +27,40 @@ import lombok.experimental.Accessors;
 public class TradeFlowRecord extends MpCreateEntity implements EntityBaseFunction<TradeFlowRecordDto> {
 
     /** 订单标题 */
-    @DbColumn(comment = "标题")
+    @DbColumn(comment = "标题", length = 100, isNull = false)
     private String title;
 
     /** 金额 */
-    @DbColumn(comment = "金额")
+    @DbColumn(comment = "金额", length = 8, isNull = false)
     private Integer amount;
 
     /**
      * 业务类型
      * @see TradeFlowRecordTypeEnum
      */
-    @DbColumn(comment = "业务类型")
+    @DbColumn(comment = "业务类型", length = 20, isNull = false)
     private String type;
 
     /**
      * 支付通道
      * @see PayChannelEnum
      */
-    @DbColumn(comment = "支付通道")
+    @DbColumn(comment = "支付通道", length = 20, isNull = false)
     private String channel;
 
     /** 本地交易号 */
-    @DbColumn(comment = "本地交易号")
+    @DbMySqlIndex(comment = "本地交易号索引")
+    @DbColumn(comment = "本地交易号", length = 32, isNull = false)
     private String tradeNo;
 
     /** 商户交易号 */
-    @DbColumn(comment = "商户交易号")
+    @DbMySqlIndex(comment = "商户交易号索引")
+    @DbColumn(comment = "商户交易号", length = 100, isNull = false)
     private String bizTradeNo;
 
     /** 通道交易号 */
-    @DbColumn(comment = "通道交易号")
+    @DbMySqlIndex(comment = "通道交易号索引")
+    @DbColumn(comment = "通道交易号", length = 150)
     private String outTradeNo;
 
     @Override
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/record/repair/entity/PayRepairRecord.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/record/repair/entity/PayRepairRecord.java
index 8d606587b72a55a08386c33d2fa53c39f663ef44..89390db74fe9b5320d413c86193223d8ae9f6e14 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/record/repair/entity/PayRepairRecord.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/record/repair/entity/PayRepairRecord.java
@@ -2,15 +2,16 @@ package cn.daxpay.single.service.core.record.repair.entity;
 
 import cn.bootx.platform.common.core.function.EntityBaseFunction;
 import cn.bootx.platform.common.mybatisplus.base.MpCreateEntity;
-import cn.daxpay.single.code.PayStatusEnum;
-import cn.daxpay.single.service.code.PaymentTypeEnum;
+import cn.bootx.table.modify.annotation.DbColumn;
+import cn.bootx.table.modify.annotation.DbTable;
+import cn.bootx.table.modify.mysql.annotation.DbMySqlIndex;
+import cn.daxpay.single.core.code.PayStatusEnum;
 import cn.daxpay.single.service.code.PayRepairSourceEnum;
 import cn.daxpay.single.service.code.PayRepairWayEnum;
+import cn.daxpay.single.service.code.PaymentTypeEnum;
 import cn.daxpay.single.service.code.RefundRepairWayEnum;
 import cn.daxpay.single.service.core.record.repair.convert.PayRepairRecordConvert;
 import cn.daxpay.single.service.dto.record.repair.PayRepairRecordDto;
-import cn.bootx.table.modify.annotation.DbColumn;
-import cn.bootx.table.modify.annotation.DbTable;
 import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
@@ -32,31 +33,32 @@ public class PayRepairRecord extends MpCreateEntity implements EntityBaseFunctio
      * 修复号
      * 如果一次修复产生的修复记录有多个记录, 使用这个作为关联
      */
-    @DbColumn(comment = "修复号")
+    @DbColumn(comment = "修复号", length = 32, isNull = false)
     private String repairNo;
 
     /** 支付ID/退款ID */
-    @DbColumn(comment = "本地订单ID")
+    @DbColumn(comment = "本地订单ID", isNull = false)
     private Long tradeId;
 
     /**
      * 本地交易号, 支付号/退款号
      */
-    @DbColumn(comment = "本地业务号")
+    @DbMySqlIndex(comment = "本地交易号索引")
+    @DbColumn(comment = "本地交易号", length = 32, isNull = false)
     private String tradeNo;
 
     /**
      * 修复类型 支付修复/退款修复
      * @see PaymentTypeEnum
      */
-    @DbColumn(comment = "修复类型")
+    @DbColumn(comment = "修复类型", length = 20, isNull = false)
     private String repairType;
 
     /**
      * 修复来源
      * @see PayRepairSourceEnum
      */
-    @DbColumn(comment = "修复来源")
+    @DbColumn(comment = "修复来源", length = 20, isNull = false)
     private String repairSource;
 
     /**
@@ -64,25 +66,25 @@ public class PayRepairRecord extends MpCreateEntity implements EntityBaseFunctio
      * @see PayRepairWayEnum
      * @see RefundRepairWayEnum
      */
-    @DbColumn(comment = "修复方式")
+    @DbColumn(comment = "修复方式", length = 20, isNull = false)
     private String repairWay;
 
     /** 修复的通道 */
-    @DbColumn(comment = "修复的通道")
+    @DbColumn(comment = "修复的通道", length = 20, isNull = false)
     private String channel;
 
     /**
      * 修复前状态
      * @see PayStatusEnum
      */
-    @DbColumn(comment = "修复前状态")
+    @DbColumn(comment = "修复前状态", length = 20, isNull = false)
     private String beforeStatus;
 
     /**
      * 修复后状态
      * @see PayStatusEnum
      */
-    @DbColumn(comment = "修复后状态")
+    @DbColumn(comment = "修复后状态", length = 20, isNull = false)
     private String afterStatus;
 
     /**
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/record/sync/entity/PaySyncRecord.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/record/sync/entity/PaySyncRecord.java
index 67acaf2662426e1e403f2dfaef4118f6f1455526..0d84ad0ff4ac604dd0bbc78daff3316e191a639c 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/record/sync/entity/PaySyncRecord.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/record/sync/entity/PaySyncRecord.java
@@ -2,17 +2,17 @@ package cn.daxpay.single.service.core.record.sync.entity;
 
 import cn.bootx.platform.common.core.function.EntityBaseFunction;
 import cn.bootx.platform.common.mybatisplus.base.MpCreateEntity;
-import cn.daxpay.single.code.AllocOrderStatusEnum;
-import cn.daxpay.single.code.PayChannelEnum;
-import cn.daxpay.single.code.RefundSyncStatusEnum;
-import cn.daxpay.single.code.PaySyncStatusEnum;
-import cn.daxpay.single.service.code.PaymentTypeEnum;
-import cn.daxpay.single.service.core.record.sync.convert.PaySyncRecordConvert;
-import cn.daxpay.single.service.dto.record.sync.PaySyncRecordDto;
 import cn.bootx.table.modify.annotation.DbColumn;
 import cn.bootx.table.modify.annotation.DbTable;
 import cn.bootx.table.modify.mysql.annotation.DbMySqlFieldType;
+import cn.bootx.table.modify.mysql.annotation.DbMySqlIndex;
 import cn.bootx.table.modify.mysql.constants.MySqlFieldTypeEnum;
+import cn.daxpay.single.core.code.PayChannelEnum;
+import cn.daxpay.single.core.code.PaySyncStatusEnum;
+import cn.daxpay.single.core.code.RefundSyncStatusEnum;
+import cn.daxpay.single.service.code.PaymentTypeEnum;
+import cn.daxpay.single.service.core.record.sync.convert.PaySyncRecordConvert;
+import cn.daxpay.single.service.dto.record.sync.PaySyncRecordDto;
 import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
@@ -31,65 +31,67 @@ import lombok.experimental.Accessors;
 public class PaySyncRecord extends MpCreateEntity implements EntityBaseFunction<PaySyncRecordDto> {
 
     /** 本地交易号 */
-    @DbColumn(comment = "本地交易号")
+    @DbMySqlIndex(comment = "本地交易号索引")
+    @DbColumn(comment = "本地交易号", length = 32, isNull = false)
     private String tradeNo;
 
     /** 商户交易号 */
-    @DbColumn(comment = "商户交易号")
+    @DbMySqlIndex(comment = "商户交易号索引")
+    @DbColumn(comment = "商户交易号", length = 100, isNull = false)
     private String bizTradeNo;
 
     /** 通道交易号 */
-    @DbColumn(comment = "通道交易号")
+    @DbMySqlIndex(comment = "通道交易号索引")
+    @DbColumn(comment = "通道交易号", length = 150)
     private String outTradeNo;
 
-
     /**
-     * 三方支付返回状态
+     * 三方支付返回状态, 分账无返回状态
      * @see PaySyncStatusEnum
      * @see RefundSyncStatusEnum
      */
-    @DbColumn(comment = "网关返回状态")
+    @DbColumn(comment = "网关返回状态", length = 30)
     private String outTradeStatus;
 
     /**
-     * 同步类型 支付/退款
+     * 同步类型 支付/退款/分账/转账
      * @see PaymentTypeEnum
      */
-    @DbColumn(comment = "同步类型")
+    @DbColumn(comment = "同步类型", length = 20, isNull = false)
     private String syncType;
 
     /**
      * 同步的异步通道
      * @see PayChannelEnum#getCode()
      */
-    @DbColumn(comment = "同步的异步通道")
+    @DbColumn(comment = "同步的异步通道", length = 20, isNull = false)
     private String channel;
 
     /** 网关返回的同步消息 */
     @DbMySqlFieldType(MySqlFieldTypeEnum.LONGTEXT)
-    @DbColumn(comment = "同步消息")
+    @DbColumn(comment = "同步消息", isNull = false)
     private String syncInfo;
 
     /**
      * 支付单如果状态不一致, 是否进行修复
      */
-    @DbColumn(comment = "是否进行修复")
+    @DbColumn(comment = "是否进行修复", isNull = false)
     private boolean repair;
 
     /** 修复单号 */
-    @DbColumn(comment = "修复单号")
+    @DbColumn(comment = "修复单号", length = 32)
     private String repairNo;
 
     /** 错误码 */
-    @DbColumn(comment = "错误码")
+    @DbColumn(comment = "错误码", length = 10)
     private String errorCode;
 
-    /** 错误消息 */
-    @DbColumn(comment = "错误消息")
+    /** 错误信息 */
+    @DbColumn(comment = "错误信息", length = 2048)
     private String errorMsg;
 
-    /** 客户端IP */
-    @DbColumn(comment = "客户端IP")
+    /** 终端ip */
+    @DbColumn(comment = "支付终端ip", length = 64)
     private String clientIp;
 
     /**
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/report/service/CockpitReportService.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/report/service/CockpitReportService.java
index 79827e9498f383f817d723871e8cdb00d782ccc0..8f1d44beba2b3f77d2c26190e40a582a1368be92 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/report/service/CockpitReportService.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/report/service/CockpitReportService.java
@@ -1,7 +1,7 @@
 package cn.daxpay.single.service.core.report.service;
 
 import cn.bootx.platform.common.core.function.CollectorsFunction;
-import cn.daxpay.single.code.PayChannelEnum;
+import cn.daxpay.single.core.code.PayChannelEnum;
 import cn.daxpay.single.service.core.report.dao.CockpitReportMapper;
 import cn.daxpay.single.service.core.report.entity.ChannelOrderLine;
 import cn.daxpay.single.service.dto.report.ChannelLineReport;
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/system/config/convert/WechatNoticeConfigConvert.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/system/config/convert/WechatNoticeConfigConvert.java
deleted file mode 100644
index c1b5cc344d0aae22f54a4e6da1d9a518a4366278..0000000000000000000000000000000000000000
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/system/config/convert/WechatNoticeConfigConvert.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package cn.daxpay.single.service.core.system.config.convert;
-
-import cn.daxpay.single.service.core.system.config.entity.WechatNoticeConfig;
-import cn.daxpay.single.service.dto.system.config.WechatNoticeConfigDto;
-import org.mapstruct.Mapper;
-import org.mapstruct.factory.Mappers;
-
-/**
- *
- * @author xxm
- * @since 2024/1/2
- */
-@Mapper
-public interface WechatNoticeConfigConvert {
-    WechatNoticeConfigConvert CONVERT = Mappers.getMapper(WechatNoticeConfigConvert.class);
-
-    WechatNoticeConfigDto convert(WechatNoticeConfig in);
-}
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/system/config/dao/WechatNoticeConfigManager.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/system/config/dao/WechatNoticeConfigManager.java
deleted file mode 100644
index c76fcbec3b3801e50dc4205e5b05ee0ea5dd5732..0000000000000000000000000000000000000000
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/system/config/dao/WechatNoticeConfigManager.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package cn.daxpay.single.service.core.system.config.dao;
-
-import cn.bootx.platform.common.mybatisplus.impl.BaseManager;
-import cn.daxpay.single.service.core.system.config.entity.WechatNoticeConfig;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Repository;
-
-/**
- * 微信消息通知相关配置
- * @author xxm
- * @since 2023/12/24
- */
-@Slf4j
-@Repository
-@RequiredArgsConstructor
-public class WechatNoticeConfigManager extends BaseManager<WechatNoticeConfigMapper, WechatNoticeConfig> {
-
-}
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/system/config/dao/WechatNoticeConfigMapper.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/system/config/dao/WechatNoticeConfigMapper.java
deleted file mode 100644
index 32ec5020582991ee92170c96c5461843e49ca93f..0000000000000000000000000000000000000000
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/system/config/dao/WechatNoticeConfigMapper.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package cn.daxpay.single.service.core.system.config.dao;
-
-import cn.daxpay.single.service.core.system.config.entity.WechatNoticeConfig;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import org.apache.ibatis.annotations.Mapper;
-
-/**
- *
- * @author xxm
- * @since 2023/12/24
- */
-@Mapper
-public interface WechatNoticeConfigMapper extends BaseMapper<WechatNoticeConfig> {
-}
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/system/config/entity/PayApiCallRecord.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/system/config/entity/PayApiCallRecord.java
deleted file mode 100644
index 2ef42c78a126fc4659cc2924cca2609dfeb5f787..0000000000000000000000000000000000000000
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/system/config/entity/PayApiCallRecord.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package cn.daxpay.single.service.core.system.config.entity;
-
-import cn.bootx.platform.common.mybatisplus.base.MpCreateEntity;
-import com.baomidou.mybatisplus.annotation.TableName;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.experimental.Accessors;
-
-/**
- * 支付接口调用记录
- * @author xxm
- * @since 2023/12/22
- */
-@EqualsAndHashCode(callSuper = true)
-@Data
-@Accessors(chain = true)
-//@DbTable(comment = "支付接口调用记录")
-@TableName("pay_api_call_record")
-public class PayApiCallRecord extends MpCreateEntity {
-}
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/system/config/entity/PayApiConfig.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/system/config/entity/PayApiConfig.java
index 06b58cc80cc8c783ffe09a70ce9ad3a5c12514fb..dbd49deedf0b8846a5f9e9f819ca88bfa859757d 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/system/config/entity/PayApiConfig.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/system/config/entity/PayApiConfig.java
@@ -2,11 +2,10 @@ package cn.daxpay.single.service.core.system.config.entity;
 
 import cn.bootx.platform.common.core.function.EntityBaseFunction;
 import cn.bootx.platform.common.mybatisplus.base.MpBaseEntity;
-import cn.daxpay.single.service.code.PayApiCallBackTypeEnum;
-import cn.daxpay.single.service.core.system.config.convert.PayApiConfigConvert;
-import cn.daxpay.single.service.dto.system.config.PayApiConfigDto;
 import cn.bootx.table.modify.annotation.DbColumn;
 import cn.bootx.table.modify.annotation.DbTable;
+import cn.daxpay.single.service.core.system.config.convert.PayApiConfigConvert;
+import cn.daxpay.single.service.dto.system.config.PayApiConfigDto;
 import com.baomidou.mybatisplus.annotation.FieldStrategy;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
@@ -26,39 +25,22 @@ import lombok.experimental.Accessors;
 @TableName("pay_api_config")
 public class PayApiConfig extends MpBaseEntity implements EntityBaseFunction<PayApiConfigDto> {
 
-    @DbColumn(comment = "编码")
+    @DbColumn(comment = "编码",length = 50, isNull = false)
     @TableField(updateStrategy = FieldStrategy.NEVER)
     private String code;
 
-    @DbColumn(comment = "接口地址")
+    @DbColumn(comment = "接口地址", length = 200, isNull = false)
     @TableField(updateStrategy = FieldStrategy.NEVER)
     private String api;
 
-    @DbColumn(comment = "名称")
+    @DbColumn(comment = "名称", length = 100, isNull = false)
     @TableField(updateStrategy = FieldStrategy.NEVER)
     private String name;
 
-    /**
-     * 支持回调通知
-     * @see PayApiCallBackTypeEnum
-     */
-    @DbColumn(comment = "支持回调通知")
-    @TableField(updateStrategy = FieldStrategy.NEVER)
-    private boolean noticeSupport;
-
-    @DbColumn(comment = "是否启用")
+    @DbColumn(comment = "是否启用", isNull = false)
     private boolean enable;
 
-    @DbColumn(comment = "是否开启回调通知")
-    private boolean notice;
-
-    @DbColumn(comment = "默认通知地址")
-    private String noticeUrl;
-
-    @DbColumn(comment = "请求参数是否签名")
-    private boolean reqSign;
-
-    @DbColumn(comment = "备注")
+    @DbColumn(comment = "备注", length = 200)
     private String remark;
 
     /**
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/system/config/entity/PayChannelConfig.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/system/config/entity/PayChannelConfig.java
index 72070db54f46cdfbed39eac26a3225a2e8d7e670..c6516bc38215d875fcb2886f891ad5f86a4f42ef 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/system/config/entity/PayChannelConfig.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/system/config/entity/PayChannelConfig.java
@@ -27,29 +27,17 @@ import lombok.experimental.Accessors;
 public class PayChannelConfig extends MpBaseEntity implements EntityBaseFunction<PayChannelConfigDto> {
 
     /** 需要与系统中配置的枚举一致 */
-    @DbColumn(comment = "代码")
+    @DbColumn(comment = "代码", length = 20, isNull = false)
     @TableField(updateStrategy = FieldStrategy.NEVER)
     private String code;
 
     /** 需要与系统中配置的枚举一致 */
-    @DbColumn(comment = "名称")
+    @DbColumn(comment = "名称", length = 20, isNull = false)
     @TableField(updateStrategy = FieldStrategy.NEVER)
     private String name;
 
-    /** ICON图片 */
-    @DbColumn(comment = "ICON图片")
-    private Long iconId;
-
-    /** 卡牌背景色 */
-    @DbColumn(comment = "卡牌背景色")
-    private String bgColor;
-
-    /** 是否启用 */
-    @DbColumn(comment = "是否启用")
-    private Boolean enable;
-
     /** 备注 */
-    @DbColumn(comment = "备注")
+    @DbColumn(comment = "备注", length = 200)
     private String remark;
 
     /**
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/system/config/entity/PlatformConfig.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/system/config/entity/PlatformConfig.java
index 0b3ca32d5eb299bd1b8678e2ebdc01c75e6511a6..9c991739b20cfe6fb54043725d1e965f1e448fcd 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/system/config/entity/PlatformConfig.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/system/config/entity/PlatformConfig.java
@@ -2,11 +2,15 @@ package cn.daxpay.single.service.core.system.config.entity;
 
 import cn.bootx.platform.common.core.function.EntityBaseFunction;
 import cn.bootx.platform.common.mybatisplus.base.MpBaseEntity;
-import cn.daxpay.single.code.PaySignTypeEnum;
+import cn.daxpay.single.core.code.PaySignTypeEnum;
+import cn.daxpay.single.service.code.TradeNotifyTypeEnum;
 import cn.daxpay.single.service.core.system.config.convert.PlatformConfigConvert;
 import cn.daxpay.single.service.dto.system.config.PlatformConfigDto;
 import cn.bootx.table.modify.annotation.DbColumn;
 import cn.bootx.table.modify.annotation.DbTable;
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.annotation.FieldStrategy;
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
@@ -24,28 +28,59 @@ import lombok.experimental.Accessors;
 @TableName("pay_platform_config")
 public class PlatformConfig extends MpBaseEntity implements EntityBaseFunction<PlatformConfigDto> {
 
-    @DbColumn(comment = "网站地址")
+    @DbColumn(comment = "网站地址", length = 200, isNull = false)
     private String websiteUrl;
 
     /**
      * @see PaySignTypeEnum
      */
-    @DbColumn(comment = "签名方式")
+    @DbColumn(comment = "签名方式", length = 20)
+    @TableField(updateStrategy = FieldStrategy.ALWAYS)
     private String signType;
 
-    @DbColumn(comment = "签名秘钥")
+    /** 签名秘钥 */
+    @DbColumn(comment = "签名秘钥", length = 50)
+    @TableField(updateStrategy = FieldStrategy.ALWAYS)
     private String signSecret;
 
-    @DbColumn(comment = "支付通知地址")
+    /** 是否对请求进行验签 */
+    @DbColumn(comment = "是否对请求进行验签", isNull = false)
+    private boolean reqSign;
+
+    /**
+     * 请求有效时长(秒)
+     * 如果传输的请求时间早于当前服务时间, 而且差值超过配置的时长, 将会请求失败
+     * 如果传输的请求时间比服务时间大于配置的时长(超过一分钟), 将会请求失败
+     */
+    @DbColumn(comment = "请求有效时长(秒)", length = 10, isNull = false)
+    private Integer reqTimeout;
+
+    /**
+     * 消息通知方式, 目前只支持http
+     * @see TradeNotifyTypeEnum
+     */
+    @DbColumn(comment = "消息通知方式", length = 20)
+    @TableField(updateStrategy = FieldStrategy.ALWAYS)
+    private String notifyType;
+
+    /** 消息通知地址 */
+    @DbColumn(comment = "消息通知地址", length = 200)
+    @TableField(updateStrategy = FieldStrategy.ALWAYS)
     private String notifyUrl;
 
-    @DbColumn(comment = "同步支付跳转地址")
+    /** 同步支付跳转地址 */
+    @DbColumn(comment = "同步支付跳转地址", length = 200)
+    @TableField(updateStrategy = FieldStrategy.ALWAYS)
     private String returnUrl;
 
-    @DbColumn(comment = "支付限额")
+    /** 支付限额 */
+    @DbColumn(comment = "支付限额", length = 15)
+    @TableField(updateStrategy = FieldStrategy.ALWAYS)
     private Integer limitAmount;
 
-    @DbColumn(comment = "订单默认超时时间(分钟)")
+    /** 订单默认超时时间(分钟) */
+    @DbColumn(comment = "订单默认超时时间(分钟)", length = 8)
+    @TableField(updateStrategy = FieldStrategy.ALWAYS)
     private Integer orderTimeout;
 
     /**
@@ -55,4 +90,8 @@ public class PlatformConfig extends MpBaseEntity implements EntityBaseFunction<P
     public PlatformConfigDto toDto() {
         return PlatformConfigConvert.CONVERT.convert(this);
     }
+
+    public String getWebsiteUrl() {
+        return StrUtil.removeSuffix(websiteUrl, "/");
+    }
 }
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/system/config/entity/WechatNoticeConfig.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/system/config/entity/WechatNoticeConfig.java
deleted file mode 100644
index 878c654e2a6a998db72c695a5fcedddd342a0348..0000000000000000000000000000000000000000
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/system/config/entity/WechatNoticeConfig.java
+++ /dev/null
@@ -1,52 +0,0 @@
-package cn.daxpay.single.service.core.system.config.entity;
-
-import cn.bootx.platform.common.core.function.EntityBaseFunction;
-import cn.bootx.platform.common.mybatisplus.base.MpBaseEntity;
-import cn.daxpay.single.service.core.system.config.convert.WechatNoticeConfigConvert;
-import cn.daxpay.single.service.dto.system.config.WechatNoticeConfigDto;
-import cn.bootx.table.modify.annotation.DbColumn;
-import cn.bootx.table.modify.annotation.DbTable;
-import com.baomidou.mybatisplus.annotation.TableName;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.experimental.Accessors;
-
-/**
- * 微信消息通知相关配置
- * @author xxm
- * @since 2023/12/24
- */
-@EqualsAndHashCode(callSuper = true)
-@Data
-@Accessors(chain = true)
-@DbTable(comment = "微信消息通知相关配置")
-@TableName("pay_wechat_notice_config")
-public class WechatNoticeConfig extends MpBaseEntity implements EntityBaseFunction<WechatNoticeConfigDto> {
-
-    @DbColumn(comment = "应用id")
-    private String appId;
-    @DbColumn(comment = "应用秘钥")
-    private String appSecret;
-    @DbColumn(comment = "公众号二维码")
-    private String qrUrl;
-    @DbColumn(comment = "OAuth2地址")
-    private String oauth2Url;
-    @DbColumn(comment = "微信校验文件名称")
-    private String verifyFileName;
-    @DbColumn(comment = "微信校验文件内容")
-    private String verifyFileContent;
-    @DbColumn(comment = "模板消息Id")
-    private String templateId;
-    @DbColumn(comment = "模板消息内容")
-    private String templateContent;
-    @DbColumn(comment = "模板消息备注")
-    private String templateRemark;
-
-    /**
-     * 转换
-     */
-    @Override
-    public WechatNoticeConfigDto toDto() {
-        return WechatNoticeConfigConvert.CONVERT.convert(this);
-    }
-}
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/system/config/service/PayApiConfigService.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/system/config/service/PayApiConfigService.java
index 3fe2c4294f91c13352e0c6169bb46ad47c1cb806..51e5dd512b29cd598008f9fea7016013639b7d81 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/system/config/service/PayApiConfigService.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/system/config/service/PayApiConfigService.java
@@ -2,8 +2,6 @@ package cn.daxpay.single.service.core.system.config.service;
 
 import cn.bootx.platform.common.core.exception.DataNotExistException;
 import cn.bootx.platform.common.core.util.ResultConvertUtil;
-import cn.daxpay.single.service.common.context.ApiInfoLocal;
-import cn.daxpay.single.service.common.local.PaymentContextLocal;
 import cn.daxpay.single.service.core.system.config.dao.PayApiConfigManager;
 import cn.daxpay.single.service.core.system.config.entity.PayApiConfig;
 import cn.daxpay.single.service.dto.system.config.PayApiConfigDto;
@@ -49,18 +47,4 @@ public class PayApiConfigService {
     public PayApiConfigDto findById(Long id){
         return openApiInfoManager.findById(id).map(PayApiConfig::toDto).orElseThrow(() -> new DataNotExistException("支付接口配置信息不存在"));
     }
-
-    /**
-     * 初始化接口上下文信息
-     */
-    public void initApiInfo(PayApiConfig api){
-        // 接口信息
-        ApiInfoLocal apiInfoLocal = PaymentContextLocal.get().getApiInfo();
-        apiInfoLocal.setApiCode(api.getCode())
-                .setReqSign(api.isReqSign())
-                .setNotice(api.isNotice())
-                .setNoticeUrl(api.getNoticeUrl());
-    }
-
-
 }
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/system/config/service/PayChannelConfigService.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/system/config/service/PayChannelConfigService.java
index fb60e009542f590133de3795fcd0759c003272ea..3a1a4bac3cd9de639a184c4a8b70c421e59091b5 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/system/config/service/PayChannelConfigService.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/system/config/service/PayChannelConfigService.java
@@ -4,9 +4,6 @@ import cn.bootx.platform.common.core.exception.DataNotExistException;
 import cn.daxpay.single.service.core.system.config.dao.PayChannelConfigManager;
 import cn.daxpay.single.service.core.system.config.entity.PayChannelConfig;
 import cn.daxpay.single.service.dto.system.config.PayChannelConfigDto;
-import cn.daxpay.single.service.param.system.payinfo.PayChannelInfoParam;
-import cn.hutool.core.bean.BeanUtil;
-import cn.hutool.core.bean.copier.CopyOptions;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
@@ -40,23 +37,4 @@ public class PayChannelConfigService {
     public PayChannelConfigDto findById(Long id){
         return manager.findById(id).map(PayChannelConfig::toDto).orElseThrow(DataNotExistException::new);
     }
-
-    /**
-     * 设置是否启用
-     */
-    public void setEnable(String code,boolean enable){
-        PayChannelConfig info = manager.findByCode(code)
-                .orElseThrow(DataNotExistException::new);
-        info.setEnable(enable);
-        manager.updateById(info);
-    }
-
-    /**
-     * 更新
-     */
-    public void update(PayChannelInfoParam param){
-        PayChannelConfig info = manager.findById(param.getId()).orElseThrow(DataNotExistException::new);
-        BeanUtil.copyProperties(param,info, CopyOptions.create().ignoreNullValue());
-        manager.updateById(info);
-    }
 }
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/system/config/service/PlatformConfigService.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/system/config/service/PlatformConfigService.java
index 0752fe79ecce69655fbbda68cfca6c8162a2a73c..5f2e7c510f38917718f053f85ab7f61adf640b6a 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/system/config/service/PlatformConfigService.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/system/config/service/PlatformConfigService.java
@@ -47,11 +47,6 @@ public class PlatformConfigService {
     public void initPlatform(){
         PlatformConfig config = this.getConfig();
         PlatformLocal platform = PaymentContextLocal.get().getPlatformInfo();
-        platform.setSignType(config.getSignType());
-        platform.setSignSecret(config.getSignSecret());
-        platform.setNotifyUrl(config.getNotifyUrl());
-        platform.setOrderTimeout(config.getOrderTimeout());
-        platform.setLimitAmount(config.getLimitAmount());
-        platform.setWebsiteUrl(config.getWebsiteUrl());
+        BeanUtil.copyProperties(config,platform);
     }
 }
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/system/config/service/WechatNoticeConfigService.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/system/config/service/WechatNoticeConfigService.java
deleted file mode 100644
index 4a2d51dd54099ad1e127d1b74c2eee8f47fa2f47..0000000000000000000000000000000000000000
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/system/config/service/WechatNoticeConfigService.java
+++ /dev/null
@@ -1,41 +0,0 @@
-package cn.daxpay.single.service.core.system.config.service;
-
-import cn.bootx.platform.common.core.exception.DataNotExistException;
-import cn.daxpay.single.service.core.system.config.entity.WechatNoticeConfig;
-import cn.daxpay.single.service.core.system.config.dao.WechatNoticeConfigManager;
-import cn.daxpay.single.service.param.system.config.WechatNoticeConfigParam;
-import cn.hutool.core.bean.BeanUtil;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Service;
-
-/**
- * 微信消息通知相关配置
- * @author xxm
- * @since 2024/1/2
- */
-@Slf4j
-@Service
-@RequiredArgsConstructor
-public class WechatNoticeConfigService {
-    /** 默认配置ID */
-    private static final long ID = 0L;
-
-    private final WechatNoticeConfigManager wechatNoticeConfigManager;;
-
-    /**
-     * 获取支付平台配置
-     */
-    public WechatNoticeConfig getConfig(){
-        return wechatNoticeConfigManager.findById(ID).orElseThrow(() -> new DataNotExistException("微信消息配置不存在"));
-    }
-
-    /**
-     * 更新配置
-     */
-    public void update(WechatNoticeConfigParam param){
-        WechatNoticeConfig config = wechatNoticeConfigManager.findById(ID).orElseThrow(() -> new DataNotExistException("微信消息配置不存在"));
-        BeanUtil.copyProperties(param,config);
-        wechatNoticeConfigManager.updateById(config);
-    }
-}
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/system/payinfo/entity/PayMethodInfo.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/system/payinfo/entity/PayMethodInfo.java
index c52507a6c0151d31ba325fe4f65c1713dee5e0ab..c59b4d93b85dd4d399ba403a3c486d72b584e9e0 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/system/payinfo/entity/PayMethodInfo.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/system/payinfo/entity/PayMethodInfo.java
@@ -27,17 +27,17 @@ import lombok.experimental.Accessors;
 public class PayMethodInfo extends MpBaseEntity implements EntityBaseFunction<PayMethodInfoDto> {
 
     /** 需要与系统中配置的枚举一致 */
-    @DbColumn(comment = "代码")
+    @DbColumn(comment = "代码", length = 20, isNull = false)
     @TableField(updateStrategy = FieldStrategy.NEVER)
     private String code;
 
     /** 需要与系统中配置的枚举一致 */
-    @DbColumn(comment = "名称")
+    @DbColumn(comment = "名称", length = 100, isNull = false)
     @TableField(updateStrategy = FieldStrategy.NEVER)
     private String name;
 
     /** 备注 */
-    @DbColumn(comment = "备注")
+    @DbColumn(comment = "备注", length = 200)
     private String remark;
 
     public static PayMethodInfoDto convert(PayMethodInfo in) {
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/allocation/AllocationGroupReceiverResult.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/allocation/AllocationGroupReceiverResult.java
index 66187540b3e4eb6b356202f94f0c6429ccc56b32..42f8ce2a8664e3f5f0f5cd03cd2ad728a084d87b 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/allocation/AllocationGroupReceiverResult.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/allocation/AllocationGroupReceiverResult.java
@@ -1,7 +1,7 @@
 package cn.daxpay.single.service.dto.allocation;
 
-import cn.daxpay.single.code.AllocReceiverTypeEnum;
-import cn.daxpay.single.code.AllocRelationTypeEnum;
+import cn.daxpay.single.core.code.AllocReceiverTypeEnum;
+import cn.daxpay.single.core.code.AllocRelationTypeEnum;
 import cn.bootx.platform.starter.data.perm.sensitive.SensitiveInfo;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/allocation/AllocationReceiverDto.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/allocation/AllocationReceiverDto.java
index e096a1cc11b8bbaddf95c3b81831b646245ad966..bf448d7e35c492af818d296449fda9f2128ecd22 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/allocation/AllocationReceiverDto.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/allocation/AllocationReceiverDto.java
@@ -1,9 +1,9 @@
 package cn.daxpay.single.service.dto.allocation;
 
 import cn.bootx.platform.common.core.rest.dto.BaseDto;
-import cn.daxpay.single.code.AllocReceiverTypeEnum;
-import cn.daxpay.single.code.AllocRelationTypeEnum;
-import cn.daxpay.single.code.PayChannelEnum;
+import cn.daxpay.single.core.code.AllocReceiverTypeEnum;
+import cn.daxpay.single.core.code.AllocRelationTypeEnum;
+import cn.daxpay.single.core.code.PayChannelEnum;
 import cn.bootx.platform.starter.data.perm.sensitive.SensitiveInfo;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/channel/alipay/AliPayConfigDto.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/channel/alipay/AliPayConfigDto.java
index fcd44504f7ca45e4eb75abd169c804ed70dab679..654b5696f2ab8296a02e012c1febe830b36deab0 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/channel/alipay/AliPayConfigDto.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/channel/alipay/AliPayConfigDto.java
@@ -33,14 +33,17 @@ public class AliPayConfigDto extends BaseDto implements Serializable {
     private Boolean allocation;
 
     @Schema(description = "支付限额")
-    private Integer singleLimit;
+    private Integer limitAmount;
 
-    @Schema(description = "服务器异步通知页面路径 需http://或者https://格式的完整路径,不能加?id=123这类自定义参数,必须外网可以正常访问")
+    @Schema(description = "服务器异步通知页面路径")
     private String notifyUrl;
 
-    @Schema(description = "页面跳转同步通知页面路径 需http://或者https://格式的完整路径,不能加?id=123这类自定义参数,必须外网可以正常访问 商户可以自定义同步跳转地址")
+    @Schema(description = "页面跳转同步通知页面路径")
     private String returnUrl;
 
+    @Schema(description = "授权回调地址")
+    private String redirectUrl;
+
     @Schema(description = "请求网关地址")
     private String serverUrl;
 
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/channel/union/UnionPayConfigDto.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/channel/union/UnionPayConfigDto.java
index 1e985472af7fc03c956b03e64dc85738c961f88b..f67a078f8932e339ea33feb80a98830cbcd2ee01 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/channel/union/UnionPayConfigDto.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/channel/union/UnionPayConfigDto.java
@@ -29,7 +29,7 @@ public class UnionPayConfigDto extends BaseDto {
     private Boolean enable;
 
     @Schema(description = "支付限额")
-    private Integer singleLimit;
+    private Integer limitAmount;
 
     /**
      * 商户收款账号
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/channel/wallet/WalletConfigDto.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/channel/wallet/WalletConfigDto.java
index f65359ff723837306895e882dfcb1d1ee62346a6..fef64bddf405133b17729b547be357302ae53ad7 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/channel/wallet/WalletConfigDto.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/channel/wallet/WalletConfigDto.java
@@ -1,7 +1,6 @@
 package cn.daxpay.single.service.dto.channel.wallet;
 
 import cn.bootx.platform.common.core.rest.dto.BaseDto;
-import cn.bootx.table.modify.annotation.DbColumn;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
@@ -30,7 +29,7 @@ public class WalletConfigDto extends BaseDto {
 
     /** 单次支持支持多少钱 */
     @Schema(description = "单次支持支持多少钱")
-    private Integer singleLimit;
+    private Integer limitAmount;
 
     /** 备注 */
     @Schema(description = "备注")
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/channel/wechat/WeChatPayAllocationReceiver.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/channel/wechat/WeChatPayAllocationReceiver.java
index 7ccf05f8cc5f952a60e1ead229a5ede61f6d582f..4c40aeaa780494830742c401caa2ca50b735f5c2 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/channel/wechat/WeChatPayAllocationReceiver.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/channel/wechat/WeChatPayAllocationReceiver.java
@@ -1,6 +1,6 @@
 package cn.daxpay.single.service.dto.channel.wechat;
 
-import cn.daxpay.single.code.AllocReceiverTypeEnum;
+import cn.daxpay.single.core.code.AllocReceiverTypeEnum;
 import cn.hutool.core.annotation.Alias;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.Data;
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/channel/wechat/WeChatPayConfigDto.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/channel/wechat/WeChatPayConfigDto.java
index dd8369cb558d96dca41a13121e005940dabad0b1..fe06f21c4bf3e0ef5ba1625b1cf024450f155ab5 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/channel/wechat/WeChatPayConfigDto.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/channel/wechat/WeChatPayConfigDto.java
@@ -35,7 +35,7 @@ public class WeChatPayConfigDto extends BaseDto implements Serializable {
     private Boolean allocation;
 
     @Schema(description = "支付限额")
-    private Integer singleLimit;
+    private Integer limitAmount;
 
     @Schema(description = "异步通知地址")
     private String notifyUrl;
@@ -43,6 +43,9 @@ public class WeChatPayConfigDto extends BaseDto implements Serializable {
     @Schema(description = "同步跳转地址")
     private String returnUrl;
 
+    @Schema(description = "授权回调地址")
+    private String redirectUrl;
+
     /** 接口版本, 使用v2还是v3接口 */
     @Schema(description = "接口版本")
     private String apiVersion;
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/extra/AuthUrlResult.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/extra/AuthUrlResult.java
new file mode 100644
index 0000000000000000000000000000000000000000..d9a6353a0ce7e76d47bd34447adb236eda7e6609
--- /dev/null
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/extra/AuthUrlResult.java
@@ -0,0 +1,25 @@
+package cn.daxpay.single.service.dto.extra;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+/**
+ * 获取OpenId授权链接和查询标识返回类
+ * @author xxm
+ * @since 2024/6/15
+ */
+@Data
+@Accessors(chain = true)
+@Schema(title = "授权链接和查询标识返回类")
+public class AuthUrlResult {
+
+    /** 授权访问链接 */
+    @Schema(description = "授权访问链接")
+    private String authUrl;
+
+    /** 标识码, 用于查询是否获取到了OpenId */
+    @Schema(description = "标识码")
+    private String code;
+
+}
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/extra/OpenIdResult.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/extra/OpenIdResult.java
new file mode 100644
index 0000000000000000000000000000000000000000..2917608de77a3c3604bd851e071692e8da759910
--- /dev/null
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/extra/OpenIdResult.java
@@ -0,0 +1,28 @@
+package cn.daxpay.single.service.dto.extra;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+/**
+ * 微信OpenId查询结果
+ * @author xxm
+ * @since 2024/6/15
+ */
+@Data
+@Accessors(chain = true)
+@Schema(title = "微信OpenId查询结果")
+public class OpenIdResult {
+
+    @Schema(description = "OpenId")
+    private String openId;
+
+    /**
+     * 状态
+     * pending:查询中
+     * success:查询成功
+     * fail:查询失败
+     */
+    @Schema(description = "状态")
+    private String status;
+}
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/order/allocation/AllocationOrderDto.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/order/allocation/AllocOrderDto.java
similarity index 72%
rename from daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/order/allocation/AllocationOrderDto.java
rename to daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/order/allocation/AllocOrderDto.java
index f30c28172694304f992a3967a17b7846f1b7f6ec..39c9422b8d89cc40639bd05370bce194db3ad6ad 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/order/allocation/AllocationOrderDto.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/order/allocation/AllocOrderDto.java
@@ -1,13 +1,15 @@
 package cn.daxpay.single.service.dto.order.allocation;
 
 import cn.bootx.platform.common.core.rest.dto.BaseDto;
-import cn.daxpay.single.code.AllocOrderResultEnum;
-import cn.daxpay.single.code.AllocOrderStatusEnum;
+import cn.daxpay.single.core.code.AllocOrderResultEnum;
+import cn.daxpay.single.core.code.AllocOrderStatusEnum;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
 
+import java.time.LocalDateTime;
+
 /**
  * 分账订单
  * @author xxm
@@ -17,24 +19,24 @@ import lombok.experimental.Accessors;
 @Data
 @Accessors(chain = true)
 @Schema(title = "分账订单")
-public class AllocationOrderDto extends BaseDto {
+public class AllocOrderDto extends BaseDto {
 
     /**
      * 分账订单号
      */
     @Schema(description = "分账订单号")
-    private String allocationNo;
+    private String allocNo;
 
     /**
      * 商户分账单号
      */
     @Schema(description = "商户分账单号")
-    private String bizAllocationNo;
+    private String bizAllocNo;
     /**
      * 通道分账单号
      */
     @Schema(description = "通道分账单号")
-    private String outAllocationNo;
+    private String outAllocNo;
 
     /**
      * 支付订单ID
@@ -98,6 +100,22 @@ public class AllocationOrderDto extends BaseDto {
     @Schema(description = "分账处理结果")
     private String result;
 
+    /** 异步通知地址 */
+    @Schema(description = "异步通知地址")
+    private String notifyUrl;
+
+    /** 商户扩展参数,回调时会原样返回, 以最后一次为准 */
+    @Schema(description = "商户扩展参数")
+    private String attach;
+
+    /** 请求时间,时间戳转时间 */
+    @Schema(description = "请求时间,传输时间戳")
+    private LocalDateTime reqTime;
+
+    /** 终端ip */
+    @Schema(description = "支付终端ip")
+    private String clientIp;
+
     /**
      * 错误码
      */
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/order/allocation/AllocationOrderAndExtraDto.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/order/allocation/AllocationOrderAndExtraDto.java
deleted file mode 100644
index bb53763f0070dc3104e8b119a35cd806200f28f4..0000000000000000000000000000000000000000
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/order/allocation/AllocationOrderAndExtraDto.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package cn.daxpay.single.service.dto.order.allocation;
-
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-import lombok.experimental.Accessors;
-
-/**
- * 分账订单和扩展信息
- * @author xxm
- * @since 2024/5/29
- */
-@Data
-@Accessors(chain = true)
-@Schema(title = "分账订单和扩展信息")
-public class AllocationOrderAndExtraDto {
-    @Schema(description = "分账订单")
-    private AllocationOrderDto order;
-    @Schema(description = "分账订单扩展信息")
-    private AllocationOrderExtraDto extra;
-}
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/order/allocation/AllocationOrderDetailDto.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/order/allocation/AllocationOrderDetailDto.java
index 03f2c3c3414e58a9d572447d49d0194c96832276..b66fe150d10e765ee55595a232234035a019dfe1 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/order/allocation/AllocationOrderDetailDto.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/order/allocation/AllocationOrderDetailDto.java
@@ -1,8 +1,8 @@
 package cn.daxpay.single.service.dto.order.allocation;
 
 import cn.bootx.platform.common.core.rest.dto.BaseDto;
-import cn.daxpay.single.code.AllocDetailResultEnum;
-import cn.daxpay.single.code.AllocReceiverTypeEnum;
+import cn.daxpay.single.core.code.AllocDetailResultEnum;
+import cn.daxpay.single.core.code.AllocReceiverTypeEnum;
 import cn.bootx.platform.starter.data.perm.sensitive.SensitiveInfo;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/order/allocation/AllocationOrderExtraDto.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/order/allocation/AllocationOrderExtraDto.java
deleted file mode 100644
index 36471ce8be3d260eadeef4756e4f604dcc78c594..0000000000000000000000000000000000000000
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/order/allocation/AllocationOrderExtraDto.java
+++ /dev/null
@@ -1,35 +0,0 @@
-package cn.daxpay.single.service.dto.order.allocation;
-
-import cn.bootx.platform.common.core.rest.dto.BaseDto;
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.experimental.Accessors;
-
-import java.time.LocalDateTime;
-
-/**
-* 分账订单扩展
-*/
-@EqualsAndHashCode(callSuper = true)
-@Data
-@Accessors(chain = true)
-@Schema(title = "分账订单扩展")
-public class AllocationOrderExtraDto extends BaseDto {
-
-    /** 异步通知地址 */
-    @Schema(description = "异步通知地址")
-    private String notifyUrl;
-
-    /** 商户扩展参数,回调时会原样返回, 以最后一次为准 */
-    @Schema(description = "商户扩展参数")
-    private String attach;
-
-    /** 请求时间,时间戳转时间 */
-    @Schema(description = "请求时间,传输时间戳")
-    private LocalDateTime reqTime;
-
-    /** 终端ip */
-    @Schema(description = "支付终端ip")
-    private String clientIp;
-}
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/order/pay/PayOrderAndExtraDto.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/order/pay/PayOrderAndExtraDto.java
deleted file mode 100644
index 0983fceb17999c8a28ac37265952e21564a062d9..0000000000000000000000000000000000000000
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/order/pay/PayOrderAndExtraDto.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package cn.daxpay.single.service.dto.order.pay;
-
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-
-/**
- * 支付订单和扩展信息
- * @author xxm
- * @since 2024/4/26
- */
-@Data
-@Schema(title = "支付订单和扩展信息")
-public class PayOrderAndExtraDto {
-    @Schema(description = "支付订单")
-    private PayOrderDto payOrder;
-    @Schema(description = "支付订单扩展信息")
-    private PayOrderExtraDto payOrderExtra;
-}
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/order/pay/PayOrderDto.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/order/pay/PayOrderDto.java
index 7b37b0effcfe100aa82aa9e55b79883ac8087e4a..fc6c89222ddf9c284dcd70131dd355983ed57764 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/order/pay/PayOrderDto.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/order/pay/PayOrderDto.java
@@ -1,9 +1,10 @@
 package cn.daxpay.single.service.dto.order.pay;
 
 import cn.bootx.platform.common.core.rest.dto.BaseDto;
-import cn.daxpay.single.code.PayChannelEnum;
-import cn.daxpay.single.code.PayOrderAllocStatusEnum;
-import cn.daxpay.single.code.PayStatusEnum;
+import cn.daxpay.single.core.code.PayChannelEnum;
+import cn.daxpay.single.core.code.PayOrderAllocStatusEnum;
+import cn.daxpay.single.core.code.PayOrderRefundStatusEnum;
+import cn.daxpay.single.core.code.PayStatusEnum;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
@@ -78,12 +79,19 @@ public class PayOrderDto extends BaseDto {
     @Schema(description = "支付状态")
     private String status;
 
+    /**
+     * 退款状态
+     * @see PayOrderRefundStatusEnum
+     */
+    @Schema(description = "退款状态")
+    private String refundStatus;
+
     /**
      * 分账状态
      * @see PayOrderAllocStatusEnum
      */
     @Schema(description = "分账状态")
-    private String allocationStatus;
+    private String allocStatus;
 
     /** 支付时间 */
     @Schema(description = "支付时间")
@@ -97,6 +105,23 @@ public class PayOrderDto extends BaseDto {
     @Schema(description = "过期时间")
     private LocalDateTime expiredTime;
 
+
+    /** 支付终端ip */
+    @Schema(description = "支付终端ip")
+    private String clientIp;
+
+    /** 异步通知地址 */
+    @Schema(description = "异步通知地址,以最后一次为准")
+    private String notifyUrl;
+
+    /** 商户扩展参数,回调时会原样返回 */
+    @Schema(description = "商户扩展参数")
+    private String attach;
+
+    /** 请求时间,时间戳转时间, 以最后一次为准 */
+    @Schema(description = "请求时间,传输时间戳,以最后一次为准")
+    private LocalDateTime reqTime;
+
     /** 错误码 */
     @Schema(description = "错误码")
     private String errorCode;
@@ -104,6 +129,4 @@ public class PayOrderDto extends BaseDto {
     /** 错误信息 */
     @Schema(description = "错误信息")
     private String errorMsg;
-
-
 }
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/order/pay/PayOrderExtraDto.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/order/pay/PayOrderExtraDto.java
deleted file mode 100644
index e9665e6eb39c4f80509a9bd19401b29bca21a014..0000000000000000000000000000000000000000
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/order/pay/PayOrderExtraDto.java
+++ /dev/null
@@ -1,57 +0,0 @@
-package cn.daxpay.single.service.dto.order.pay;
-
-import cn.bootx.platform.common.core.rest.dto.BaseDto;
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.experimental.Accessors;
-
-import java.time.LocalDateTime;
-
-/**
- * 支付订单扩展信息
- * @author xxm
- * @since 2024/1/9
- */
-@EqualsAndHashCode(callSuper = true)
-@Data
-@Accessors(chain = true)
-@Schema(title = "支付订单扩展信息")
-public class PayOrderExtraDto extends BaseDto {
-
-    /** 描述 */
-    @Schema(description = "描述")
-    private String description;
-
-    /** 支付终端ip */
-    @Schema(description = "支付终端ip")
-    private String clientIp;
-
-    /** 异步通知地址 */
-    @Schema(description = "异步通知地址,以最后一次为准")
-    private String notifyUrl;
-
-    /** 签名类型 */
-    @Schema(description = "签名类型")
-    private String reqSignType;
-
-    /** 签名,以最后一次为准 */
-    @Schema(description = "签名")
-    private String reqSign;
-
-    /** 商户扩展参数,回调时会原样返回 */
-    @Schema(description = "商户扩展参数")
-    private String attach;
-
-    /** 请求时间,时间戳转时间, 以最后一次为准 */
-    @Schema(description = "请求时间,传输时间戳,以最后一次为准")
-    private LocalDateTime reqTime;
-
-    /** 错误码 */
-    @Schema(description = "错误码")
-    private String errorCode;
-
-    /** 错误信息 */
-    @Schema(description = "错误信息")
-    private String errorMsg;
-}
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/order/reconcile/ReconcileDiffDto.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/order/reconcile/ReconcileDiffDto.java
index bcb5e8b29dd6e178bc46f9287aa0d7cd36229d76..83618e54f004f59ee2f9b12fcb381233857193ee 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/order/reconcile/ReconcileDiffDto.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/order/reconcile/ReconcileDiffDto.java
@@ -1,8 +1,8 @@
 package cn.daxpay.single.service.dto.order.reconcile;
 
 import cn.bootx.platform.common.core.rest.dto.BaseDto;
-import cn.daxpay.single.code.PayChannelEnum;
-import cn.daxpay.single.code.ReconcileTradeEnum;
+import cn.daxpay.single.core.code.PayChannelEnum;
+import cn.daxpay.single.core.code.ReconcileTradeEnum;
 import cn.daxpay.single.service.code.ReconcileDiffTypeEnum;
 import cn.daxpay.single.service.core.payment.reconcile.domain.ReconcileDiffDetail;
 import cn.bootx.table.modify.annotation.DbColumn;
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/order/reconcile/ReconcileDiffExcel.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/order/reconcile/ReconcileDiffExcel.java
index a53e33950fd9010e9ab5f9efa788de06b1ca441b..b7ff5763a896b5ee11f8820fbb8a59a9e4c952db 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/order/reconcile/ReconcileDiffExcel.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/order/reconcile/ReconcileDiffExcel.java
@@ -1,7 +1,7 @@
 package cn.daxpay.single.service.dto.order.reconcile;
 
-import cn.daxpay.single.code.PayChannelEnum;
-import cn.daxpay.single.code.ReconcileTradeEnum;
+import cn.daxpay.single.core.code.PayChannelEnum;
+import cn.daxpay.single.core.code.ReconcileTradeEnum;
 import cn.daxpay.single.service.code.ReconcileDiffTypeEnum;
 import cn.daxpay.single.service.core.payment.reconcile.domain.ReconcileDiffDetail;
 import cn.bootx.table.modify.annotation.DbColumn;
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/order/refund/RefundOrderAndExtraDto.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/order/refund/RefundOrderAndExtraDto.java
deleted file mode 100644
index 2a87cfff2b2b2e402eb49a288f23ea51c9080efe..0000000000000000000000000000000000000000
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/order/refund/RefundOrderAndExtraDto.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package cn.daxpay.single.service.dto.order.refund;
-
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-import lombok.experimental.Accessors;
-
-/**
- * 退款订单信息
- * @author xxm
- * @since 2024/4/28
- */
-@Data
-@Accessors(chain = true)
-@Schema(title = "退款订单信息")
-public class RefundOrderAndExtraDto {
-    @Schema(description = "退款订单")
-    RefundOrderDto refundOrder;
-    @Schema(description = "退款订单扩展信息")
-    RefundOrderExtraDto refundOrderExtra;
-}
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/order/refund/RefundOrderDto.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/order/refund/RefundOrderDto.java
index e859f66e5884341ec4b999fa92707b675022ade0..cb6c5183aa28d1e7009d13b67579d92d28bd20f2 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/order/refund/RefundOrderDto.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/order/refund/RefundOrderDto.java
@@ -1,8 +1,11 @@
 package cn.daxpay.single.service.dto.order.refund;
 
 import cn.bootx.platform.common.core.rest.dto.BaseDto;
-import cn.daxpay.single.code.PayChannelEnum;
-import cn.daxpay.single.code.RefundStatusEnum;
+import cn.daxpay.single.core.code.PayChannelEnum;
+import cn.daxpay.single.core.code.RefundStatusEnum;
+import cn.daxpay.single.core.param.channel.AliPayParam;
+import cn.daxpay.single.core.param.channel.WalletPayParam;
+import cn.daxpay.single.core.param.channel.WeChatPayParam;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
@@ -73,6 +76,7 @@ public class RefundOrderDto extends BaseDto {
     @Schema(description = "退款原因")
     private String reason;
 
+    /** 退款结束时间 */
     @Schema(description = "退款结束时间")
     private LocalDateTime finishTime;
 
@@ -83,6 +87,31 @@ public class RefundOrderDto extends BaseDto {
     @Schema(description = "退款状态")
     private String status;
 
+    /** 异步通知地址 */
+    @Schema(description = "异步通知地址")
+    private String notifyUrl;
+
+    /** 商户扩展参数,回调时会原样返回, 以最后一次为准 */
+    @Schema(description = "商户扩展参数,回调时会原样返回, 以最后一次为准")
+    private String attach;
+
+    /**
+     * 附加参数 以最后一次为准
+     * @see AliPayParam
+     * @see WeChatPayParam
+     * @see WalletPayParam
+     */
+    @Schema(description = "附加参数 以最后一次为准")
+    private String extraParam;
+
+    /** 请求时间,时间戳转时间 */
+    @Schema(description = "请求时间,时间戳转时间")
+    private LocalDateTime reqTime;
+
+    /** 终端ip */
+    @Schema(description = "终端ip")
+    private String clientIp;
+
     /** 错误码 */
     @Schema(description = "错误码")
     private String errorCode;
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/order/refund/RefundOrderExtraDto.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/order/refund/RefundOrderExtraDto.java
deleted file mode 100644
index 90171b474aea032af569640111a8b8d528b86ea1..0000000000000000000000000000000000000000
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/order/refund/RefundOrderExtraDto.java
+++ /dev/null
@@ -1,44 +0,0 @@
-package cn.daxpay.single.service.dto.order.refund;
-
-import cn.bootx.platform.common.core.rest.dto.BaseDto;
-import cn.daxpay.single.param.channel.AliPayParam;
-import cn.daxpay.single.param.channel.WalletPayParam;
-import cn.daxpay.single.param.channel.WeChatPayParam;
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.experimental.Accessors;
-
-import java.time.LocalDateTime;
-
-/**
- * 退款订单扩展信息
- * @author xxm
- * @since 2024/4/26
- */
-@EqualsAndHashCode(callSuper = true)
-@Data
-@Accessors(chain = true)
-@Schema(title = "退款订单扩展信息")
-public class RefundOrderExtraDto extends BaseDto {
-
-    /** 异步通知地址 */
-    private String notifyUrl;
-
-    /** 商户扩展参数,回调时会原样返回, 以最后一次为准 */
-    private String attach;
-
-    /**
-     * 附加参数 以最后一次为准
-     * @see AliPayParam
-     * @see WeChatPayParam
-     * @see WalletPayParam
-     */
-    private String extraParam;
-
-    /** 请求时间,时间戳转时间 */
-    private LocalDateTime reqTime;
-
-    /** 终端ip */
-    private String clientIp;
-}
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/order/transfer/TransferOrderDto.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/order/transfer/TransferOrderDto.java
new file mode 100644
index 0000000000000000000000000000000000000000..2e3bbcad7c8daa3524c444adeadaef656abb49af
--- /dev/null
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/order/transfer/TransferOrderDto.java
@@ -0,0 +1,118 @@
+package cn.daxpay.single.service.dto.order.transfer;
+
+import cn.bootx.platform.common.core.rest.dto.BaseDto;
+import cn.daxpay.single.core.code.PayChannelEnum;
+import cn.daxpay.single.core.code.TransferPayeeTypeEnum;
+import cn.daxpay.single.core.code.TransferStatusEnum;
+import cn.daxpay.single.core.code.TransferTypeEnum;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.time.LocalDateTime;
+
+/**
+ * 转账订单
+ * @author xxm
+ * @since 2024/6/14
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+@Accessors(chain = true)
+@Schema(title = "转账订单")
+public class TransferOrderDto extends BaseDto {
+
+    /** 商户转账号 */
+    @Schema(description = "商户转账号")
+    private String bizTransferNo;
+
+    /** 转账号 */
+    @Schema(description = "转账号")
+    private String transferNo;
+
+    /** 通道转账号 */
+    @Schema(description = "通道转账号")
+    private String outTransferNo;
+
+    /**
+     * 支付通道
+     * @see PayChannelEnum
+     */
+    @Schema(description = "支付通道")
+    private String channel;
+
+    /** 转账金额 */
+    @Schema(description = "转账金额")
+    private Integer amount;
+
+    /** 标题 */
+    @Schema(description = "标题")
+    private String title;
+
+    /** 转账原因/备注 */
+    @Schema(description = "转账原因/备注")
+    private String reason;
+
+    /**
+     * 转账类型, 微信使用
+     * @see TransferTypeEnum
+     */
+    @Schema(description = "转账类型, 微信使用")
+    private String transferType;
+
+    /**
+     * 收款人类型
+     * @see TransferPayeeTypeEnum
+     */
+    @Schema(description = "收款人类型")
+    private String payeeType;
+
+    /** 收款人账号 */
+    @Schema(description = "收款人账号")
+    private String payeeAccount;
+
+    /** 收款人姓名 */
+    @Schema(description = "收款人姓名")
+    private String payeeName;
+
+    /**
+     * 状态
+     * @see TransferStatusEnum
+     */
+    @Schema(description = "状态")
+    private String status;
+
+    /** 成功时间 */
+    @Schema(description = "成功时间")
+    private LocalDateTime successTime;
+
+
+    /** 异步通知地址 */
+    @Schema(description = "异步通知地址")
+    private String notifyUrl;
+
+    /** 商户扩展参数,回调时会原样返回, 以最后一次为准 */
+    @Schema(description = "商户扩展参数")
+    private String attach;
+
+    /** 请求时间,时间戳转时间 */
+    @Schema(description = "请求时间,传输时间戳")
+    private LocalDateTime reqTime;
+
+    /** 终端ip */
+    @Schema(description = "支付终端ip")
+    private String clientIp;
+
+    /**
+     * 错误码
+     */
+    @Schema(description = "错误码")
+    private String errorCode;
+
+    /**
+     * 错误原因
+     */
+    @Schema(description = "错误原因")
+    private String errorMsg;
+}
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/record/callback/PayCallbackRecordDto.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/record/callback/PayCallbackRecordDto.java
index 7fe3ac3be3e22fe0763f030a32a98b4088b69c83..09383b1986ad9bba361c3e37af7079d16b1a4d1d 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/record/callback/PayCallbackRecordDto.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/record/callback/PayCallbackRecordDto.java
@@ -1,7 +1,7 @@
 package cn.daxpay.single.service.dto.record.callback;
 
 import cn.bootx.platform.common.core.rest.dto.BaseDto;
-import cn.daxpay.single.code.PayChannelEnum;
+import cn.daxpay.single.core.code.PayChannelEnum;
 import cn.daxpay.single.service.code.PayCallbackStatusEnum;
 import cn.daxpay.single.service.code.PaymentTypeEnum;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/record/close/PayCloseRecordDto.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/record/close/PayCloseRecordDto.java
index 0659b30685fe4171719017d39eaf79f0615fb522..4c740946948dde59552c0d60072c840db1d3b9d7 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/record/close/PayCloseRecordDto.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/record/close/PayCloseRecordDto.java
@@ -1,8 +1,9 @@
 package cn.daxpay.single.service.dto.record.close;
 
 import cn.bootx.platform.common.core.rest.dto.BaseDto;
-import cn.daxpay.single.code.PayChannelEnum;
+import cn.daxpay.single.core.code.PayChannelEnum;
 import cn.bootx.table.modify.annotation.DbColumn;
+import cn.daxpay.single.service.code.PayCloseTypeEnum;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
@@ -34,6 +35,13 @@ public class PayCloseRecordDto extends BaseDto {
     @DbColumn(comment = "关闭的异步支付通道")
     private String channel;
 
+    /**
+     * 关闭类型 关闭/撤销
+     * @see PayCloseTypeEnum
+     */
+    @DbColumn(comment = "关闭类型")
+    private String closeType;
+
     /**
      * 是否关闭成功
      */
@@ -41,14 +49,14 @@ public class PayCloseRecordDto extends BaseDto {
     private boolean closed;
 
     /** 错误码 */
-    @DbColumn(comment = "错误码")
+    @DbColumn(comment = "错误码", length = 10)
     private String errorCode;
 
-    /** 错误消息 */
-    @DbColumn(comment = "错误消息")
+    /** 错误信息 */
+    @DbColumn(comment = "错误信息", length = 2048)
     private String errorMsg;
 
-    /** 客户端IP */
-    @DbColumn(comment = "客户端IP")
+    /** 终端ip */
+    @DbColumn(comment = "支付终端ip", length = 64)
     private String clientIp;
 }
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/record/flow/TradeFlowRecordDto.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/record/flow/TradeFlowRecordDto.java
index cd44cc33ff219140e446cef4a4cc4e4e78ee8685..69ec0397ba7a92f54010563df9321baf916e7ddc 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/record/flow/TradeFlowRecordDto.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/record/flow/TradeFlowRecordDto.java
@@ -2,7 +2,7 @@ package cn.daxpay.single.service.dto.record.flow;
 
 import cn.bootx.platform.common.core.rest.dto.BaseDto;
 import cn.bootx.table.modify.annotation.DbColumn;
-import cn.daxpay.single.code.PayChannelEnum;
+import cn.daxpay.single.core.code.PayChannelEnum;
 import cn.daxpay.single.service.code.TradeFlowRecordTypeEnum;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/record/notice/ClientNoticeRecordDto.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/record/notice/ClientNoticeRecordDto.java
index e635e1b1ebe4d12897e483148169f8dd6dd65a2f..cbf960ce0fbf0c7feb2fc3a74161f12f638f8d9d 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/record/notice/ClientNoticeRecordDto.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/record/notice/ClientNoticeRecordDto.java
@@ -37,8 +37,8 @@ public class ClientNoticeRecordDto extends BaseDto {
     @Schema(description = "发送是否成功")
     private boolean success;
 
-    /** 错误编码 */
-    @Schema(description = "错误编码")
+    /** 错误码 */
+    @Schema(description = "错误码")
     private String errorCode;
 
     /** 错误信息 */
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/record/notice/ClientNoticeTaskDto.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/record/notice/ClientNoticeTaskDto.java
index 9f0b7eefeb5dd65a7e920e762cb9804f79fdfa79..e53efc5b84ac9816ab657750d42e91e89ed7d5f4 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/record/notice/ClientNoticeTaskDto.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/record/notice/ClientNoticeTaskDto.java
@@ -1,8 +1,8 @@
 package cn.daxpay.single.service.dto.record.notice;
 
 import cn.bootx.platform.common.core.rest.dto.BaseDto;
-import cn.daxpay.single.code.PayStatusEnum;
-import cn.daxpay.single.code.RefundStatusEnum;
+import cn.daxpay.single.core.code.PayStatusEnum;
+import cn.daxpay.single.core.code.RefundStatusEnum;
 import cn.daxpay.single.service.code.ClientNoticeTypeEnum;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/record/repair/PayRepairRecordDto.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/record/repair/PayRepairRecordDto.java
index 9e91de9e4cf755659e2a16e41076e691d54810c1..0f444cc8560fa3e010bc14cc828baa02110cc3f0 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/record/repair/PayRepairRecordDto.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/record/repair/PayRepairRecordDto.java
@@ -1,7 +1,7 @@
 package cn.daxpay.single.service.dto.record.repair;
 
 import cn.bootx.platform.common.core.rest.dto.BaseDto;
-import cn.daxpay.single.code.PayStatusEnum;
+import cn.daxpay.single.core.code.PayStatusEnum;
 import cn.daxpay.single.service.code.PayRepairSourceEnum;
 import cn.daxpay.single.service.code.PayRepairWayEnum;
 import cn.daxpay.single.service.code.PaymentTypeEnum;
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/record/sync/PaySyncRecordDto.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/record/sync/PaySyncRecordDto.java
index 8b9cf14a63194e9a0f531c07211eff4897dabe24..947d2e7071644b50bf213436f322741a114a5685 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/record/sync/PaySyncRecordDto.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/record/sync/PaySyncRecordDto.java
@@ -1,9 +1,9 @@
 package cn.daxpay.single.service.dto.record.sync;
 
 import cn.bootx.platform.common.core.rest.dto.BaseDto;
-import cn.daxpay.single.code.PayChannelEnum;
-import cn.daxpay.single.code.RefundSyncStatusEnum;
-import cn.daxpay.single.code.PaySyncStatusEnum;
+import cn.daxpay.single.core.code.PayChannelEnum;
+import cn.daxpay.single.core.code.RefundSyncStatusEnum;
+import cn.daxpay.single.core.code.PaySyncStatusEnum;
 import cn.daxpay.single.service.code.PaymentTypeEnum;
 import cn.bootx.table.modify.mysql.annotation.DbMySqlFieldType;
 import cn.bootx.table.modify.mysql.constants.MySqlFieldTypeEnum;
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/system/config/PayApiConfigDto.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/system/config/PayApiConfigDto.java
index 8a32bb45930db904022ca971c41d688d57e47400..2f17b0e5e16c56a9e266bd388e4b84208ca27086 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/system/config/PayApiConfigDto.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/system/config/PayApiConfigDto.java
@@ -1,7 +1,6 @@
 package cn.daxpay.single.service.dto.system.config;
 
 import cn.bootx.platform.common.core.rest.dto.BaseDto;
-import cn.daxpay.single.service.code.PayApiCallBackTypeEnum;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
@@ -27,25 +26,9 @@ public class PayApiConfigDto extends BaseDto {
     @Schema(description = "名称")
     private String name;
 
-    /**
-     * 是否支持回调通知
-     * @see PayApiCallBackTypeEnum
-     */
-    @Schema(description = "是否支持回调通知")
-    private boolean noticeSupport;
-
     @Schema(description = "是否启用")
     private boolean enable;
 
-    @Schema(description = "是否开启回调通知")
-    private boolean notice;
-
-    @Schema(description = "默认通知回调地址")
-    private String noticeUrl;
-
-    @Schema(description = "请求参数是否签名")
-    private boolean reqSign;
-
     @Schema(description = "备注")
     private String remark;
 
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/system/config/PayChannelConfigDto.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/system/config/PayChannelConfigDto.java
index 4aca7d1e7bb4d62eec4207071a68fb63a45e8bfb..219c74d74ac966cc35a944e02b856507914b215f 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/system/config/PayChannelConfigDto.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/system/config/PayChannelConfigDto.java
@@ -1,7 +1,6 @@
 package cn.daxpay.single.service.dto.system.config;
 
 import cn.bootx.platform.common.core.rest.dto.BaseDto;
-import cn.bootx.table.modify.annotation.DbColumn;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
@@ -26,18 +25,6 @@ public class PayChannelConfigDto extends BaseDto {
     @Schema(description = "名称")
     private String name;
 
-    /** 是否启用 */
-    @Schema(description = "是否启用")
-    private Boolean enable;
-
-    /** logo图片 */
-    @Schema(description = "logo图片")
-    private Long iconId;
-
-    /** 卡牌背景色 */
-    @Schema(description = "卡牌背景色")
-    private String bgColor;
-
     /** 备注 */
     @Schema(description = "备注")
     private String remark;
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/system/config/PlatformConfigDto.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/system/config/PlatformConfigDto.java
index 20db3a0b46cde6ec72f0a7c9ae4c97f3cb7ef6fd..183178e3d74181981beda8648beba56c4a0dbaee 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/system/config/PlatformConfigDto.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/system/config/PlatformConfigDto.java
@@ -1,6 +1,7 @@
 package cn.daxpay.single.service.dto.system.config;
 
-import cn.daxpay.single.code.PaySignTypeEnum;
+import cn.daxpay.single.core.code.PaySignTypeEnum;
+import cn.daxpay.single.service.code.TradeNotifyTypeEnum;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 import lombok.experimental.Accessors;
@@ -19,6 +20,7 @@ public class PlatformConfigDto {
     private String websiteUrl;
 
     /**
+     * 签名方式
      * @see PaySignTypeEnum
      */
     @Schema(description = "签名方式")
@@ -27,7 +29,28 @@ public class PlatformConfigDto {
     @Schema(description = "签名秘钥")
     private String signSecret;
 
-    @Schema(description = "异步支付通知地址")
+    /** 是否对请求进行验签 */
+    @Schema(description = "是否对请求进行验签")
+    private boolean reqSign;
+
+    /**
+     * 请求有效时长(秒)
+     * 如果传输的请求时间早于当前服务时间, 而且差值超过配置的时长, 将会请求失败
+     * 如果传输的请求时间比服务时间大于配置的时长(超过一分钟), 将会请求失败
+     */
+    @Schema(description = "请求有效时长(秒)")
+    private Integer reqTimeout;
+
+    /**
+     * 消息通知方式, 目前只支持http
+     * @see TradeNotifyTypeEnum
+     */
+    @Schema(description = "消息通知方式")
+    private String notifyType;
+
+    /** 消息通知地址 */
+
+    @Schema(description = "消息通知地址")
     private String notifyUrl;
 
     @Schema(description = "同步支付跳转地址")
@@ -36,6 +59,6 @@ public class PlatformConfigDto {
     @Schema(description = "订单默认超时时间(分钟)")
     private Integer orderTimeout;
 
-    @Schema(description = "订单默认超时时间(分钟)")
+    @Schema(description = "支付限额")
     private Integer limitAmount;
 }
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/system/config/WechatNoticeConfigDto.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/system/config/WechatNoticeConfigDto.java
deleted file mode 100644
index 1a354a512814cfed242db7df8751123c3418d7ce..0000000000000000000000000000000000000000
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/system/config/WechatNoticeConfigDto.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package cn.daxpay.single.service.dto.system.config;
-
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-import lombok.experimental.Accessors;
-
-/**
- * 微信消息通知相关配置
- * @author xxm
- * @since 2024/1/2
- */
-@Data
-@Accessors(chain = true)
-@Schema(title = "微信消息通知相关配置")
-public class WechatNoticeConfigDto {
-}
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/func/AbsAllocationStrategy.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/func/AbsAllocationStrategy.java
index 67218b73e21cfaa72975b520b8756d21dbc253e7..de8dde4e074a7d852a0cd3184a1ab8a4958ac25c 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/func/AbsAllocationStrategy.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/func/AbsAllocationStrategy.java
@@ -1,7 +1,7 @@
 package cn.daxpay.single.service.func;
 
-import cn.daxpay.single.service.core.order.allocation.entity.AllocationOrder;
-import cn.daxpay.single.service.core.order.allocation.entity.AllocationOrderDetail;
+import cn.daxpay.single.service.core.order.allocation.entity.AllocOrder;
+import cn.daxpay.single.service.core.order.allocation.entity.AllocOrderDetail;
 import cn.daxpay.single.service.core.payment.sync.result.AllocRemoteSyncResult;
 import lombok.Getter;
 import lombok.Setter;
@@ -19,16 +19,16 @@ import java.util.List;
 @Setter
 public abstract class AbsAllocationStrategy implements PayStrategy{
 
-    private AllocationOrder allocationOrder;
+    private AllocOrder allocOrder;
 
-    private List<AllocationOrderDetail> allocationOrderDetails;
+    private List<AllocOrderDetail> allocOrderDetails;
 
     /**
      * 初始化参数
      */
-    public void initParam(AllocationOrder allocationOrder, List<AllocationOrderDetail> allocationOrderDetails) {
-        this.allocationOrder = allocationOrder;
-        this.allocationOrderDetails = allocationOrderDetails;
+    public void initParam(AllocOrder allocOrder, List<AllocOrderDetail> allocOrderDetails) {
+        this.allocOrder = allocOrder;
+        this.allocOrderDetails = allocOrderDetails;
     }
 
     /**
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/func/AbsPayCancelStrategy.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/func/AbsPayCancelStrategy.java
new file mode 100644
index 0000000000000000000000000000000000000000..7ef7848d4d7db47ade1d73e159f181ca2819200a
--- /dev/null
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/func/AbsPayCancelStrategy.java
@@ -0,0 +1,28 @@
+package cn.daxpay.single.service.func;
+
+import cn.daxpay.single.service.core.order.pay.entity.PayOrder;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 支付订单撤销接口
+ * @author xxm
+ * @since 2024/6/5
+ */
+@Getter
+@Setter
+public abstract class AbsPayCancelStrategy implements PayStrategy {
+    /** 支付订单 */
+    private PayOrder order = null;
+
+
+    /**
+     * 撤销前的处理方式
+     */
+    public void doBeforeCancelHandler() {}
+
+    /**
+     * 撤销操作
+     */
+    public abstract void doCancelHandler();
+}
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/func/AbsPayStrategy.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/func/AbsPayStrategy.java
index 2dc1d9695f16dde91fc55a6fcde0516915434ec4..3d4e6db6ec73c0b14a737a3ee3e990085ee3012f 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/func/AbsPayStrategy.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/func/AbsPayStrategy.java
@@ -1,6 +1,6 @@
 package cn.daxpay.single.service.func;
 
-import cn.daxpay.single.param.payment.pay.PayParam;
+import cn.daxpay.single.core.param.payment.pay.PayParam;
 import cn.daxpay.single.service.core.order.pay.entity.PayOrder;
 import lombok.Getter;
 import lombok.Setter;
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/func/AbsPaySyncStrategy.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/func/AbsPaySyncStrategy.java
index 83390a289a9ecacf931a46f96b016b96ff4f7b5e..f35329783c73cf1a69ea1f5545953c479c653e85 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/func/AbsPaySyncStrategy.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/func/AbsPaySyncStrategy.java
@@ -1,6 +1,6 @@
 package cn.daxpay.single.service.func;
 
-import cn.daxpay.single.code.PaySyncStatusEnum;
+import cn.daxpay.single.core.code.PaySyncStatusEnum;
 import cn.daxpay.single.service.core.order.pay.entity.PayOrder;
 import cn.daxpay.single.service.core.payment.sync.result.PayRemoteSyncResult;
 import lombok.Getter;
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/func/AbsRefundStrategy.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/func/AbsRefundStrategy.java
index 845b8483e27bfb10b432f787dbf85a7871e9ede6..c471c9a83265886882c377d6f0a8e38726ef4e0e 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/func/AbsRefundStrategy.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/func/AbsRefundStrategy.java
@@ -17,7 +17,6 @@ public abstract class AbsRefundStrategy implements PayStrategy{
     /** 退款订单 */
     private RefundOrder refundOrder = null;
 
-
     /**
      * 退款前对处理, 主要进行配置的加载和检查
      */
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/func/AbsRefundSyncStrategy.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/func/AbsRefundSyncStrategy.java
index 0a7a4bc4474ae1b6a5e256e20d523dde52d16d18..cfd666c7fd832f0be6c8b3a650a9d707412a6f28 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/func/AbsRefundSyncStrategy.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/func/AbsRefundSyncStrategy.java
@@ -1,6 +1,6 @@
 package cn.daxpay.single.service.func;
 
-import cn.daxpay.single.code.PaySyncStatusEnum;
+import cn.daxpay.single.core.code.PaySyncStatusEnum;
 import cn.daxpay.single.service.core.order.refund.entity.RefundOrder;
 import cn.daxpay.single.service.core.payment.sync.result.RefundRemoteSyncResult;
 import lombok.Getter;
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/func/AbsTransferStrategy.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/func/AbsTransferStrategy.java
index 13a67aeaf9605999aa9972e3e52e0172be8b90ac..ad69b21f229caec5c8a7540b1073b337279e7441 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/func/AbsTransferStrategy.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/func/AbsTransferStrategy.java
@@ -1,5 +1,6 @@
 package cn.daxpay.single.service.func;
 
+import cn.daxpay.single.core.param.payment.transfer.TransferParam;
 import cn.daxpay.single.service.core.order.transfer.entity.TransferOrder;
 import lombok.Getter;
 import lombok.Setter;
@@ -15,9 +16,21 @@ public abstract class AbsTransferStrategy implements PayStrategy{
     /** 转账订单 */
     private TransferOrder transferOrder;
 
+    /**
+     * 校验参数
+     */
+    public void doValidateParam(TransferParam transferParam) {
+
+    }
+
     /**
      * 转账前操作
      */
     public void doBeforeHandler(){}
 
+    /**
+     * 转账操作
+     */
+    public abstract void doTransferHandler();
+
 }
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/func/AbsTransferSyncStrategy.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/func/AbsTransferSyncStrategy.java
new file mode 100644
index 0000000000000000000000000000000000000000..2a9d8df69c8391a9a472e8c02ec205537f6d0176
--- /dev/null
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/func/AbsTransferSyncStrategy.java
@@ -0,0 +1,29 @@
+package cn.daxpay.single.service.func;
+
+import cn.daxpay.single.core.code.PaySyncStatusEnum;
+import cn.daxpay.single.service.core.order.transfer.entity.TransferOrder;
+import cn.daxpay.single.service.core.payment.sync.result.RefundRemoteSyncResult;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 转账修复策略
+ * @author xxm
+ * @since 2024/6/17
+ */
+@Getter
+@Setter
+public abstract class AbsTransferSyncStrategy implements PayStrategy{
+
+    private TransferOrder transferOrder;
+
+    /**
+     * 同步前处理
+     */
+    public void doBeforeHandler(){}
+    /**
+     * 异步支付单与支付网关进行状态比对后的结果
+     * @see PaySyncStatusEnum
+     */
+    public abstract RefundRemoteSyncResult doSyncStatus();
+}
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/func/PayStrategy.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/func/PayStrategy.java
index 2ee80f4e7ac4cb52017bbd9ebf9e4353c622177e..e469a92894393753dfdda1af18d5f368005c88d9 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/func/PayStrategy.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/func/PayStrategy.java
@@ -1,6 +1,6 @@
 package cn.daxpay.single.service.func;
 
-import cn.daxpay.single.code.PayChannelEnum;
+import cn.daxpay.single.core.param.payment.pay.PayCancelParam;
 
 /**
  * 支付相关策略标识接口
@@ -11,6 +11,7 @@ public interface PayStrategy {
 
     /**
      * 策略标识
+     * @see PayCancelParam
      */
-    PayChannelEnum getChannel();
+    String getChannel();
 }
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/handler/excel/AmountConverter.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/handler/excel/AmountConverter.java
index dbe8600be0dc17001309b5ba83071758db0625ae..333d7195da7aec20df9971f2eb3b59f87d07c461 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/handler/excel/AmountConverter.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/handler/excel/AmountConverter.java
@@ -1,6 +1,6 @@
 package cn.daxpay.single.service.handler.excel;
 
-import cn.daxpay.single.util.PayUtil;
+import cn.daxpay.single.core.util.PayUtil;
 import com.alibaba.excel.converters.Converter;
 import com.alibaba.excel.metadata.GlobalConfiguration;
 import com.alibaba.excel.metadata.data.WriteCellData;
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/handler/excel/PayChannelConvert.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/handler/excel/PayChannelConvert.java
index 3d0d7c8dc3910ea1dc3e2cbe06632001c1f4c46f..f843b4ce2f57bf7bc8204f2ad62a94977d0f02dd 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/handler/excel/PayChannelConvert.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/handler/excel/PayChannelConvert.java
@@ -1,6 +1,6 @@
 package cn.daxpay.single.service.handler.excel;
 
-import cn.daxpay.single.code.PayChannelEnum;
+import cn.daxpay.single.core.code.PayChannelEnum;
 import com.alibaba.excel.converters.Converter;
 import com.alibaba.excel.metadata.GlobalConfiguration;
 import com.alibaba.excel.metadata.data.WriteCellData;
@@ -8,6 +8,7 @@ import com.alibaba.excel.metadata.property.ExcelContentProperty;
 
 /**
  * 支付通道转换
+ * TODO 改为读取数据库
  * @author xxm
  * @since 2024/5/6
  */
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/handler/excel/ReconcileTradeConvert.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/handler/excel/ReconcileTradeConvert.java
index 63ea35acc7894209b140eb6ca1b2b997540255b1..d9ffb68e6551610e5a1bd34b4ff4d741a473da64 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/handler/excel/ReconcileTradeConvert.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/handler/excel/ReconcileTradeConvert.java
@@ -1,6 +1,6 @@
 package cn.daxpay.single.service.handler.excel;
 
-import cn.daxpay.single.code.ReconcileTradeEnum;
+import cn.daxpay.single.core.code.ReconcileTradeEnum;
 import com.alibaba.excel.converters.Converter;
 import com.alibaba.excel.metadata.GlobalConfiguration;
 import com.alibaba.excel.metadata.data.WriteCellData;
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/param/allocation/group/AllocationGroupUnbindParam.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/param/allocation/group/AllocationGroupUnbindParam.java
index f82de6dbd36d52d51e8ad893a94a4282ab0f7a8c..32810ab688a70f9c97e1bd790007d4793f64947f 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/param/allocation/group/AllocationGroupUnbindParam.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/param/allocation/group/AllocationGroupUnbindParam.java
@@ -4,6 +4,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 import lombok.experimental.Accessors;
 
+import javax.validation.constraints.NotBlank;
 import javax.validation.constraints.NotEmpty;
 import javax.validation.constraints.NotNull;
 import java.util.List;
@@ -22,7 +23,7 @@ public class AllocationGroupUnbindParam {
     @Schema(description = "分账组ID")
     private Long groupId;
 
-    @NotEmpty(message = "分账接收方不可为空")
+    @NotBlank(message = "分账接收方不可为空")
     @Schema(description = "分账接收方集合")
     List<Long> receiverIds;
 }
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/param/allocation/receiver/AllocationReceiverQuery.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/param/allocation/receiver/AllocationReceiverQuery.java
index 4a0d81e2262ba84940caedaee0ed2aaa6d3cbbd0..cb72b2e9d11276b9e3a0e12ac4c8da611c62e678 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/param/allocation/receiver/AllocationReceiverQuery.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/param/allocation/receiver/AllocationReceiverQuery.java
@@ -1,8 +1,8 @@
 package cn.daxpay.single.service.param.allocation.receiver;
 
 import cn.bootx.platform.common.core.annotation.QueryParam;
-import cn.daxpay.single.code.AllocRelationTypeEnum;
-import cn.daxpay.single.code.PayChannelEnum;
+import cn.daxpay.single.core.code.AllocRelationTypeEnum;
+import cn.daxpay.single.core.code.PayChannelEnum;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Getter;
 import lombok.Setter;
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/param/channel/alipay/AliPayConfigParam.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/param/channel/alipay/AliPayConfigParam.java
index f72073ce03bb6185367210f471c4903c2c637fa2..827f1eccaa4ef7e71fdcc53c16d9a4c8908d2522 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/param/channel/alipay/AliPayConfigParam.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/param/channel/alipay/AliPayConfigParam.java
@@ -25,14 +25,17 @@ public class AliPayConfigParam {
     private Boolean allocation;
 
     @Schema(description = "支付限额")
-    private Integer singleLimit;
+    private Integer limitAmount;
 
-    @Schema(description = "服务器异步通知页面路径 需http://或者https://格式的完整路径,不能加?id=123这类自定义参数,必须外网可以正常访问")
+    @Schema(description = "服务器异步通知页面路径")
     private String notifyUrl;
 
-    @Schema(description = "页面跳转同步通知页面路径 需http://或者https://格式的完整路径,不能加?id=123这类自定义参数,必须外网可以正常访问 商户可以自定义同步跳转地址")
+    @Schema(description = "页面跳转同步通知页面路径")
     private String returnUrl;
 
+    @Schema(description = "授权回调地址")
+    private String redirectUrl;
+
     @Schema(description = "请求网关地址")
     private String serverUrl;
 
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/param/channel/union/UnionPayConfigParam.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/param/channel/union/UnionPayConfigParam.java
index 4e1104afe7c8b3954b6d94656af5850c815192bb..af1de2a81548405165ba9e731d15db9f813457e3 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/param/channel/union/UnionPayConfigParam.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/param/channel/union/UnionPayConfigParam.java
@@ -26,7 +26,7 @@ public class UnionPayConfigParam {
     private Boolean enable;
 
     @Schema(description = "支付限额")
-    private Integer singleLimit;
+    private Integer limitAmount;
 
     /**
      * 商户收款账号
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/param/channel/wechat/WalletConfigParam.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/param/channel/wechat/WalletConfigParam.java
index 7be86b172d6ff6249f7637079a6cd369a240c53a..66bf18e26432ae80661460552b3e69d6b7554649 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/param/channel/wechat/WalletConfigParam.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/param/channel/wechat/WalletConfigParam.java
@@ -29,7 +29,7 @@ public class WalletConfigParam {
 
     /** 单次支付最多少金额 */
     @Schema(description = "单次支付最多少金额")
-    private Integer singleLimit;
+    private Integer limitAmount;
 
     /** 备注 */
     @Schema(description = "备注")
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/param/channel/wechat/WeChatPayConfigParam.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/param/channel/wechat/WeChatPayConfigParam.java
index bd198b5d482d1a2ac1f3d7caa80d5bc83d8d93a3..7bf1ee2e068e5b3f816101e8e7cc46722f3119b3 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/param/channel/wechat/WeChatPayConfigParam.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/param/channel/wechat/WeChatPayConfigParam.java
@@ -33,7 +33,7 @@ public class WeChatPayConfigParam {
     private Boolean allocation;
 
     @Schema(description = "支付限额")
-    private Integer singleLimit;
+    private Integer limitAmount;
 
     @Schema(description = "异步通知地址")
     private String notifyUrl;
@@ -41,6 +41,9 @@ public class WeChatPayConfigParam {
     @Schema(description = "同步通知地址")
     private String returnUrl;
 
+    @Schema(description = "授权回调地址")
+    private String redirectUrl;
+
     /** 接口版本, 使用v2还是v3接口 */
     @Schema(description = "接口版本")
     private String apiVersion;
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/param/order/AllocationOrderQuery.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/param/order/AllocOrderQuery.java
similarity index 90%
rename from daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/param/order/AllocationOrderQuery.java
rename to daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/param/order/AllocOrderQuery.java
index 5bcf0d1cd9e3bd47d1d9bd1a8a09d0fd97a40a1e..cedb9f68af44a6fc7773e70bebe1a173ab7198b2 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/param/order/AllocationOrderQuery.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/param/order/AllocOrderQuery.java
@@ -12,7 +12,7 @@ import lombok.experimental.Accessors;
 @Data
 @Accessors(chain = true)
 @Schema(title = "分账订单查询参数")
-public class AllocationOrderQuery {
+public class AllocOrderQuery {
 
     @Schema(description = "分账订单号")
     private String orderNo;
@@ -24,7 +24,7 @@ public class AllocationOrderQuery {
     private String title;
 
     @Schema(description = "分账业务号")
-    private String allocationNo;
+    private String allocNo;
 
     @Schema(description = "分账通道")
     private String channel;
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/param/order/PayOrderQuery.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/param/order/PayOrderQuery.java
index 831f03257b834be73b18697bf8f5b4f4f3cd68f8..86279a9753b89c7fb14b23ff188ba6099cf1adce 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/param/order/PayOrderQuery.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/param/order/PayOrderQuery.java
@@ -2,9 +2,10 @@ package cn.daxpay.single.service.param.order;
 
 import cn.bootx.platform.common.core.annotation.QueryParam;
 import cn.bootx.platform.common.core.rest.param.QueryOrder;
-import cn.daxpay.single.code.PayChannelEnum;
-import cn.daxpay.single.code.PayOrderAllocStatusEnum;
-import cn.daxpay.single.code.PayStatusEnum;
+import cn.daxpay.single.core.code.PayChannelEnum;
+import cn.daxpay.single.core.code.PayOrderAllocStatusEnum;
+import cn.daxpay.single.core.code.PayOrderRefundStatusEnum;
+import cn.daxpay.single.core.code.PayStatusEnum;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
@@ -71,12 +72,19 @@ public class PayOrderQuery extends QueryOrder {
     @Schema(description = "支付状态")
     private String status;
 
+    /**
+     * 退款状态
+     * @see PayOrderRefundStatusEnum
+     */
+    @Schema(description = "退款状态")
+    private String refundStatus;
+
     /**
      * 分账状态
      * @see PayOrderAllocStatusEnum
      */
     @Schema(description = "分账状态")
-    private String allocationStatus;
+    private String allocStatus;
 
     /** 错误码 */
     @Schema(description = "错误码")
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/param/order/RefundOrderQuery.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/param/order/RefundOrderQuery.java
index 536b99debdc05cbe726a4f7f1f2768d36ffe774b..aad18a3e2d5e7bb702012073f9800d1d306136ec 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/param/order/RefundOrderQuery.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/param/order/RefundOrderQuery.java
@@ -2,8 +2,8 @@ package cn.daxpay.single.service.param.order;
 
 import cn.bootx.platform.common.core.annotation.QueryParam;
 import cn.bootx.platform.common.core.rest.param.QueryOrder;
-import cn.daxpay.single.code.PayChannelEnum;
-import cn.daxpay.single.code.RefundStatusEnum;
+import cn.daxpay.single.core.code.PayChannelEnum;
+import cn.daxpay.single.core.code.RefundStatusEnum;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/param/order/TransferOrderQuery.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/param/order/TransferOrderQuery.java
new file mode 100644
index 0000000000000000000000000000000000000000..5156ac26ad9d997d67822ae4b93972979fd53cc5
--- /dev/null
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/param/order/TransferOrderQuery.java
@@ -0,0 +1,99 @@
+package cn.daxpay.single.service.param.order;
+
+import cn.bootx.platform.common.core.annotation.QueryParam;
+import cn.bootx.platform.common.core.rest.param.QueryOrder;
+import cn.daxpay.single.core.code.PayChannelEnum;
+import cn.daxpay.single.core.code.TransferPayeeTypeEnum;
+import cn.daxpay.single.core.code.TransferStatusEnum;
+import cn.daxpay.single.core.code.TransferTypeEnum;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.time.LocalDateTime;
+
+/**
+ * 转账订单查询参数
+ * @author xxm
+ * @since 2024/6/17
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+@Accessors(chain = true)
+@Schema(title = "转账订单查询参数")
+public class TransferOrderQuery extends QueryOrder {
+
+    /** 商户转账号 */
+    @Schema(description = "商户转账号")
+    @QueryParam(type = QueryParam.CompareTypeEnum.LIKE)
+    private String bizTransferNo;
+
+    /** 转账号 */
+    @Schema(description = "转账号")
+    @QueryParam(type = QueryParam.CompareTypeEnum.LIKE)
+    private String transferNo;
+
+    /** 通道转账号 */
+    @Schema(description = "通道转账号")
+    @QueryParam(type = QueryParam.CompareTypeEnum.LIKE)
+    private String outTransferNo;
+
+    /**
+     * 支付通道
+     * @see PayChannelEnum
+     */
+    @Schema(description = "支付通道")
+    private String channel;
+
+    /** 转账金额 */
+    @Schema(description = "转账金额")
+    private Integer amount;
+
+    /** 标题 */
+    @Schema(description = "标题")
+    @QueryParam(type = QueryParam.CompareTypeEnum.LIKE)
+    private String title;
+
+    /**
+     * 转账类型, 微信使用
+     * @see TransferTypeEnum
+     */
+    @Schema(description = "转账类型, 微信使用")
+    private String transferType;
+
+
+    /**
+     * 收款人类型
+     * @see TransferPayeeTypeEnum
+     */
+    @Schema(description = "收款人类型")
+    private String payeeType;
+
+    /** 收款人账号 */
+    @Schema(description = "收款人账号")
+    private String payeeAccount;
+
+    /** 收款人姓名 */
+    @Schema(description = "收款人姓名")
+    @QueryParam(type = QueryParam.CompareTypeEnum.LIKE)
+    private String payeeName;
+
+    /**
+     * 状态
+     * @see TransferStatusEnum
+     */
+    @Schema(description = "状态")
+    private String status;
+
+    /** 成功时间 */
+    @Schema(description = "成功时间")
+    private LocalDateTime successTime;
+
+    /**
+     * 错误码
+     */
+    @Schema(description = "错误码")
+    private String errorCode;
+
+}
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/param/reconcile/ReconcileDiffQuery.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/param/reconcile/ReconcileDiffQuery.java
index a2da7dfaff71d78ffa3f6ed89c3fb7c86b287938..3d11507ff4904162f9e7d7cce1710cdf6a140274 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/param/reconcile/ReconcileDiffQuery.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/param/reconcile/ReconcileDiffQuery.java
@@ -1,8 +1,8 @@
 package cn.daxpay.single.service.param.reconcile;
 
 import cn.bootx.platform.common.core.rest.param.QueryOrder;
-import cn.daxpay.single.code.PayChannelEnum;
-import cn.daxpay.single.code.ReconcileTradeEnum;
+import cn.daxpay.single.core.code.PayChannelEnum;
+import cn.daxpay.single.core.code.ReconcileTradeEnum;
 import cn.daxpay.single.service.code.ReconcileDiffTypeEnum;
 import cn.bootx.table.modify.annotation.DbColumn;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/param/reconcile/ReconcileTradeDetailQuery.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/param/reconcile/ReconcileTradeDetailQuery.java
index b1429319fe7497e2790474581a379beeac251c6c..653122c81e008d87cf816223c8baf7cb82bf43b2 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/param/reconcile/ReconcileTradeDetailQuery.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/param/reconcile/ReconcileTradeDetailQuery.java
@@ -1,7 +1,7 @@
 package cn.daxpay.single.service.param.reconcile;
 
 import cn.bootx.platform.common.core.annotation.QueryParam;
-import cn.daxpay.single.code.ReconcileTradeEnum;
+import cn.daxpay.single.core.code.ReconcileTradeEnum;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 import lombok.experimental.Accessors;
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/param/record/PayCallbackRecordQuery.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/param/record/PayCallbackRecordQuery.java
index 1a1d69253c062eb1a3f5185fee34baf68c405e1c..e8dda0f105d512da76148aaffeb707cf0aed8d35 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/param/record/PayCallbackRecordQuery.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/param/record/PayCallbackRecordQuery.java
@@ -2,7 +2,7 @@ package cn.daxpay.single.service.param.record;
 
 import cn.bootx.platform.common.core.annotation.QueryParam;
 import cn.bootx.platform.common.core.rest.param.QueryOrder;
-import cn.daxpay.single.code.PayChannelEnum;
+import cn.daxpay.single.core.code.PayChannelEnum;
 import cn.daxpay.single.service.code.PayCallbackStatusEnum;
 import cn.daxpay.single.service.code.PaymentTypeEnum;
 import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/param/record/PayCloseRecordQuery.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/param/record/PayCloseRecordQuery.java
index 2fbdface8e5d73e1ac019d4bf22541b134dc72cd..0c90b2f5d7599ba150567c8ec3aff40d39c64d24 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/param/record/PayCloseRecordQuery.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/param/record/PayCloseRecordQuery.java
@@ -1,7 +1,7 @@
 package cn.daxpay.single.service.param.record;
 
 import cn.bootx.platform.common.core.rest.param.QueryOrder;
-import cn.daxpay.single.code.PayChannelEnum;
+import cn.daxpay.single.core.code.PayChannelEnum;
 import cn.bootx.table.modify.annotation.DbColumn;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
@@ -38,7 +38,7 @@ public class PayCloseRecordQuery extends QueryOrder {
      * 是否关闭成功
      */
     @DbColumn(comment = "是否关闭成功")
-    private boolean closed;
+    private Boolean closed;
 
     /** 错误码 */
     @DbColumn(comment = "错误码")
@@ -48,7 +48,7 @@ public class PayCloseRecordQuery extends QueryOrder {
     @DbColumn(comment = "错误消息")
     private String errorMsg;
 
-    /** 客户端IP */
-    @DbColumn(comment = "客户端IP")
+    /** 终端ip */
+    @DbColumn(comment = "支付终端ip", length = 64)
     private String clientIp;
 }
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/param/record/PayRepairRecordQuery.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/param/record/PayRepairRecordQuery.java
index c8453acaba4808e8158dfb3d607e56df0ad2b988..c448fb5819747afb8e9d49c4efe21f932f167c27 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/param/record/PayRepairRecordQuery.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/param/record/PayRepairRecordQuery.java
@@ -1,7 +1,7 @@
 package cn.daxpay.single.service.param.record;
 
 import cn.bootx.platform.common.core.annotation.QueryParam;
-import cn.daxpay.single.code.PayStatusEnum;
+import cn.daxpay.single.core.code.PayStatusEnum;
 import cn.daxpay.single.service.code.PayRepairSourceEnum;
 import cn.daxpay.single.service.code.PayRepairWayEnum;
 import cn.daxpay.single.service.code.PaymentTypeEnum;
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/param/record/PaySyncRecordQuery.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/param/record/PaySyncRecordQuery.java
index de378bbdb6f469906b15df9196fb3c1710aba356..261a8c033d4e72400db436d9fb3ccc97f4001184 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/param/record/PaySyncRecordQuery.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/param/record/PaySyncRecordQuery.java
@@ -1,9 +1,9 @@
 package cn.daxpay.single.service.param.record;
 
 import cn.bootx.platform.common.core.annotation.QueryParam;
-import cn.daxpay.single.code.PayChannelEnum;
-import cn.daxpay.single.code.PaySyncStatusEnum;
-import cn.daxpay.single.code.RefundSyncStatusEnum;
+import cn.daxpay.single.core.code.PayChannelEnum;
+import cn.daxpay.single.core.code.PaySyncStatusEnum;
+import cn.daxpay.single.core.code.RefundSyncStatusEnum;
 import cn.daxpay.single.service.code.PaymentTypeEnum;
 import cn.bootx.table.modify.mysql.annotation.DbMySqlFieldType;
 import cn.bootx.table.modify.mysql.constants.MySqlFieldTypeEnum;
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/param/record/TradeFlowRecordQuery.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/param/record/TradeFlowRecordQuery.java
index d18eb284d269cf97c7a76dd39fbd545962b4e967..b78cb5aabaa510573daa6ff65f8b440841ac13cf 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/param/record/TradeFlowRecordQuery.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/param/record/TradeFlowRecordQuery.java
@@ -1,7 +1,7 @@
 package cn.daxpay.single.service.param.record;
 
 import cn.bootx.platform.common.core.annotation.QueryParam;
-import cn.daxpay.single.code.PayChannelEnum;
+import cn.daxpay.single.core.code.PayChannelEnum;
 import cn.daxpay.single.service.code.TradeFlowRecordTypeEnum;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/param/system/config/PayApiConfigParam.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/param/system/config/PayApiConfigParam.java
index 2feea44540e34b604cb6d71f989eb0affcc638f3..5282d84f21b6dbd14c74c2304cdf2573604803d0 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/param/system/config/PayApiConfigParam.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/param/system/config/PayApiConfigParam.java
@@ -4,6 +4,9 @@ import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 import lombok.experimental.Accessors;
 
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Size;
+
 /**
  * 支付开放接口管理
  * @author xxm
@@ -14,21 +17,15 @@ import lombok.experimental.Accessors;
 @Schema(title = "支付开放接口管理")
 public class PayApiConfigParam {
 
-    @Schema(description = "id")
+
+    @NotNull(message = "主键不能为空")
+    @Schema(description = "主键")
     private Long id;
 
     @Schema(description = "是否启用")
     private boolean enable;
 
-    @Schema(description = "是否开启回调通知")
-    private boolean notice;
-
-    @Schema(description = "默认回调地址")
-    private String noticeUrl;
-
-    @Schema(description = "请求参数是否签名")
-    private boolean reqSign;
-
+    @Size(max = 200, message = "备注长度不能超过200")
     @Schema(description = "备注")
     private String remark;
 }
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/param/system/config/PlatformConfigParam.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/param/system/config/PlatformConfigParam.java
index ef706e89357a30e14c666d11c430d85d88f87706..4c7334e388bd3a0457bfd634c7290212934a856a 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/param/system/config/PlatformConfigParam.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/param/system/config/PlatformConfigParam.java
@@ -1,10 +1,15 @@
 package cn.daxpay.single.service.param.system.config;
 
-import cn.daxpay.single.code.PaySignTypeEnum;
+import cn.daxpay.single.core.code.PaySignTypeEnum;
+import cn.daxpay.single.service.code.TradeNotifyTypeEnum;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 import lombok.experimental.Accessors;
 
+import javax.validation.constraints.Min;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.Size;
+
 /**
  * 平台配置
  * @author xxm
@@ -15,27 +20,62 @@ import lombok.experimental.Accessors;
 @Schema(title = "平台配置")
 public class PlatformConfigParam {
 
+    @NotBlank(message = "网站地址必填")
+    @Size(min = 1, max = 200, message = "网站地址不可超过200位")
     @Schema(description = "网站地址")
     private String websiteUrl;
 
+    /** 是否对请求进行验签 */
+    @Schema(description = "是否对请求进行验签")
+    private boolean reqSign;
+
+    /**
+     * 请求有效时长(秒)
+     * 如果传输的请求时间早于当前服务时间, 而且差值超过配置的时长, 将会请求失败
+     * 如果传输的请求时间比服务时间大于配置的时长(超过一分钟), 将会请求失败
+     */
+    @Min(value = 1, message = "请求有效时长不可小于1秒")
+    @Schema(description = "请求有效时长(秒)")
+    private Integer reqTimeout;
+
     /**
+     * 签名方式
      * @see PaySignTypeEnum
      */
+    @Size(max = 20, message = "签名方式不可超过20位")
     @Schema(description = "签名方式")
     private String signType;
 
+    /** 签名秘钥 */
+    @Size(max = 50, message = "签名秘钥不可超过50位")
     @Schema(description = "签名秘钥")
     private String signSecret;
 
-    @Schema(description = "支付通知地址")
+    /**
+     * 消息通知方式, 目前只支持http
+     * @see TradeNotifyTypeEnum
+     */
+    @Size(max = 20, message = "消息通知方式不可超过20位")
+    @Schema(description = "消息通知方式")
+    private String notifyType;
+
+    /** 消息通知地址 */
+    @Size(max = 200, message = "消息通知地址不可超过200位")
+    @Schema(description = "消息通知地址")
     private String notifyUrl;
 
+    /** 同步支付跳转地址 */
+    @Size(max = 200, message = "同步支付跳转地址不可超过200位")
     @Schema(description = "同步支付跳转地址")
     private String returnUrl;
 
+    /** 订单默认超时时间(分钟) */
+    @Min(value = 5, message = "订单默认超时时间不可小于5分钟")
     @Schema(description = "订单默认超时时间(分钟)")
     private Integer orderTimeout;
 
+    /** 订单支付限额(分) */
+    @Min(value = 1, message = "订单支付限额不可小于0.01元")
     @Schema(description = "订单支付限额(分)")
     private Integer limitAmount;
 }
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/param/system/config/WechatNoticeConfigParam.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/param/system/config/WechatNoticeConfigParam.java
deleted file mode 100644
index 614a6e2297458f220f2a04bbb82f1ff4226df1ea..0000000000000000000000000000000000000000
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/param/system/config/WechatNoticeConfigParam.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package cn.daxpay.single.service.param.system.config;
-
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-import lombok.experimental.Accessors;
-
-/**
- * 微信消息通知相关配置
- * @author xxm
- * @since 2024/1/2
- */
-@Data
-@Accessors(chain = true)
-@Schema(title = "微信消息通知相关配置")
-public class WechatNoticeConfigParam {
-}
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/param/system/payinfo/PayChannelInfoParam.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/param/system/payinfo/PayChannelInfoParam.java
index 11b1170afc313724c5b96051c8ecc6ddb5ea9cf8..5df6672da95e5974c3e27cd242adcd426e7d8dcc 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/param/system/payinfo/PayChannelInfoParam.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/param/system/payinfo/PayChannelInfoParam.java
@@ -5,26 +5,18 @@ import lombok.Data;
 import lombok.experimental.Accessors;
 
 /**
- *
+ * 支付通道配置
  * @author xxm
  * @since 2024/1/8
  */
 @Data
 @Accessors(chain = true)
-@Schema(title = "")
+@Schema(title = "支付通道配置")
 public class PayChannelInfoParam {
 
     @Schema(description= "主键")
     private Long id;
 
-    /** logo图片 */
-    @Schema(description = "logo图片")
-    private Long iconId;
-
-    /** 卡牌背景色 */
-    @Schema(description = "卡牌背景色")
-    private String bgColor;
-
     /** 备注 */
     @Schema(description = "备注")
     private String remark;
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/param/system/payinfo/PayWayInfoParam.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/param/system/payinfo/PayWayInfoParam.java
index dddd38cc9efabd26645707417e93a8fa49eea4f7..30547eb84316b2cb79e20ac5c57848bfbc588b9d 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/param/system/payinfo/PayWayInfoParam.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/param/system/payinfo/PayWayInfoParam.java
@@ -4,6 +4,9 @@ import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 import lombok.experimental.Accessors;
 
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Size;
+
 /**
  *
  * @author xxm
@@ -14,9 +17,11 @@ import lombok.experimental.Accessors;
 @Schema(title = "支付方式信息")
 public class PayWayInfoParam {
 
+    @NotNull(message = "主键不能为空")
     @Schema(description= "主键")
     private Long id;
 
+    @Size(max = 200, message = "备注长度不能超过200")
     @Schema(description = "备注")
     private String remark;
 }
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/task/AllocationAutoStartTask.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/task/AllocationAutoStartTask.java
index 11cb2b5196939a1cb46c8ed5f5dc011b7fac3b70..8166d5da3f11cb22807afa8d42502feaee3a2f43 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/task/AllocationAutoStartTask.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/task/AllocationAutoStartTask.java
@@ -1,10 +1,10 @@
 package cn.daxpay.single.service.task;
 
-import cn.daxpay.single.param.payment.allocation.AllocationParam;
+import cn.daxpay.single.core.param.payment.allocation.AllocationParam;
 import cn.daxpay.single.service.core.order.pay.dao.PayOrderManager;
 import cn.daxpay.single.service.core.order.pay.entity.PayOrder;
 import cn.daxpay.single.service.core.payment.allocation.service.AllocationService;
-import cn.daxpay.single.util.OrderNoGenerateUtil;
+import cn.daxpay.single.core.util.OrderNoGenerateUtil;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.quartz.*;
@@ -28,7 +28,7 @@ public class AllocationAutoStartTask implements Job {
     public void execute(JobExecutionContext jobExecutionContext) {
         for (PayOrder payOrder : payOrderManager.findAutoAllocation()) {
             AllocationParam param = new AllocationParam();
-            param.setBizAllocationNo(OrderNoGenerateUtil.allocation());
+            param.setBizAllocNo(OrderNoGenerateUtil.allocation());
             try {
                 allocationService.allocation(param, payOrder);
             } catch (Exception e) {
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/task/AllocationSyncTask.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/task/AllocationSyncTask.java
index 9ba89cd2f587abff564386703cf0023d524a637b..7815a8261be6f075517cebb7a0d1e5cf3eeb4c0c 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/task/AllocationSyncTask.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/task/AllocationSyncTask.java
@@ -1,8 +1,8 @@
 package cn.daxpay.single.service.task;
 
-import cn.daxpay.single.code.AllocOrderStatusEnum;
+import cn.daxpay.single.core.code.AllocOrderStatusEnum;
 import cn.daxpay.single.service.core.order.allocation.dao.AllocationOrderManager;
-import cn.daxpay.single.service.core.order.allocation.entity.AllocationOrder;
+import cn.daxpay.single.service.core.order.allocation.entity.AllocOrder;
 import cn.daxpay.single.service.core.payment.allocation.service.AllocationService;
 import cn.daxpay.single.service.core.payment.allocation.service.AllocationSyncService;
 import lombok.RequiredArgsConstructor;
@@ -32,18 +32,18 @@ public class AllocationSyncTask implements Job {
      */
     @Override
     public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
-        for (AllocationOrder allocationOrder : allocationOrderManager.findSyncOrder()) {
+        for (AllocOrder allocOrder : allocationOrderManager.findSyncOrder()) {
             try {
                 // 分账中走同步逻辑
-                if (allocationOrder.getStatus().equals(AllocOrderStatusEnum.ALLOCATION_PROCESSING.getCode())) {
-                    allocationSyncService.sync(allocationOrder);
+                if (allocOrder.getStatus().equals(AllocOrderStatusEnum.ALLOCATION_PROCESSING.getCode())) {
+                    allocationSyncService.sync(allocOrder);
                 }
                 // 如果分账结束, 调用自动完结逻辑
-                if (allocationOrder.getStatus().equals(AllocOrderStatusEnum.ALLOCATION_END.getCode())) {
-                    allocationService.finish(allocationOrder);
+                if (allocOrder.getStatus().equals(AllocOrderStatusEnum.ALLOCATION_END.getCode())) {
+                    allocationService.finish(allocOrder);
                 }
             } catch (Exception e) {
-                log.warn("分账同步或完结失败, 分账号:{}", allocationOrder.getAllocationNo());
+                log.warn("分账同步或完结失败, 分账号:{}", allocOrder.getAllocNo());
                 log.warn("分账同步或完结失败", e);
             }
         }
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/task/PayExpiredTimeTask.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/task/PayExpiredTimeTask.java
index 42de415649e8f4abb0b80466c177439afa840f65..ddd9a823be9e0d0f80cca1091929d60ba85a37e3 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/task/PayExpiredTimeTask.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/task/PayExpiredTimeTask.java
@@ -1,6 +1,6 @@
 package cn.daxpay.single.service.task;
 
-import cn.daxpay.single.param.payment.pay.PaySyncParam;
+import cn.daxpay.single.core.param.payment.pay.PaySyncParam;
 import cn.daxpay.single.service.code.PayRepairSourceEnum;
 import cn.daxpay.single.service.common.local.PaymentContextLocal;
 import cn.daxpay.single.service.core.payment.pay.dao.PayExpiredTimeRepository;
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/util/PayStrategyFactory.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/util/PayStrategyFactory.java
new file mode 100644
index 0000000000000000000000000000000000000000..7ae09bd3bf70f3a15fd6bcbe602d7d65c1d2d74a
--- /dev/null
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/util/PayStrategyFactory.java
@@ -0,0 +1,31 @@
+package cn.daxpay.single.service.util;
+
+import cn.daxpay.single.core.exception.UnsupportedAbilityException;
+import cn.daxpay.single.service.func.PayStrategy;
+import cn.hutool.extra.spring.SpringUtil;
+import lombok.experimental.UtilityClass;
+import lombok.val;
+
+/**
+ * 策略工厂工具类
+ * @author xxm
+ * @since 2024/6/7
+ */
+@UtilityClass
+public class PayStrategyFactory {
+
+    /**
+     * 获取策略
+     * @param channel 通道编码
+     * @param clazz 策略类型
+     * @return 策略类
+     * @param <T> 需要为  PayStrategy 的子类
+     */
+    public <T extends PayStrategy> T create(String channel, Class<T> clazz) {
+        val beansOfType = SpringUtil.getBeansOfType(clazz);
+        return beansOfType.values().stream()
+                .filter(strategy -> strategy.getChannel().equals(channel))
+                .findFirst()
+                .orElseThrow(() -> new UnsupportedAbilityException("不支持的能力"));
+    }
+}
diff --git a/daxpay-single/daxpay-single-service/src/test/java/cn/daxpay/single/core/util/PayParamSignTest.java b/daxpay-single/daxpay-single-service/src/test/java/cn/daxpay/single/core/util/PayParamSignTest.java
index e78f1e11319aa15bff449f6097b7aacad01f8243..1003587980ac85fb9aac30cc7f6ad255e719042d 100644
--- a/daxpay-single/daxpay-single-service/src/test/java/cn/daxpay/single/core/util/PayParamSignTest.java
+++ b/daxpay-single/daxpay-single-service/src/test/java/cn/daxpay/single/core/util/PayParamSignTest.java
@@ -1,8 +1,7 @@
 package cn.daxpay.single.core.util;
 
-import cn.daxpay.single.param.channel.AliPayParam;
-import cn.daxpay.single.param.payment.pay.PayParam;
-import cn.daxpay.single.util.PaySignUtil;
+import cn.daxpay.single.core.param.channel.AliPayParam;
+import cn.daxpay.single.core.param.payment.pay.PayParam;
 import cn.hutool.core.bean.BeanUtil;
 import lombok.extern.slf4j.Slf4j;
 import org.junit.jupiter.api.Test;
@@ -23,7 +22,6 @@ class PayParamSignTest {
         PayParam payParam = new PayParam();
         payParam.setBizOrderNo("123");
         payParam.setClientIp("127.0.0.1");
-        payParam.setNotNotify(true);
         payParam.setNotifyUrl("http://127.0.0.1:8080/pay/notify");
         payParam.setReturnUrl("http://127.0.0.1:8080/pay/return");
         // 传入的话需要传输时间戳
diff --git a/daxpay-single/pom.xml b/daxpay-single/pom.xml
index e9ea950f2fe6919f93438587b4c5101b98901bdd..67fdb648c57edf60d41d77b7479198cb9cbc36e9 100644
--- a/daxpay-single/pom.xml
+++ b/daxpay-single/pom.xml
@@ -13,7 +13,7 @@
     <groupId>cn.daxpay.single</groupId>
     <artifactId>daxpay-single</artifactId>
     <packaging>pom</packaging>
-    <version>2.0.7</version>
+    <version>2.0.8</version>
 
     <properties>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
@@ -22,14 +22,15 @@
 
         <!-- 二方库版本 -->
         <bootx-platform.version>1.3.6.2</bootx-platform.version>
-        <daxpay.version>2.0.7</daxpay.version>
+        <daxpay.version>2.0.8</daxpay.version>
         <!-- 三方库 -->
         <slf4j.version>1.7.30</slf4j.version>
         <redisson.version>3.16.8</redisson.version>
         <xml-apis.version>1.4.01</xml-apis.version>
         <spring.checkstyle.version>0.0.38</spring.checkstyle.version>
         <plumelog.version>3.5.2</plumelog.version>
-        <IJPay.version>2.9.10</IJPay.version>
+        <alipay.version>4.39.104.ALL</alipay.version>
+        <IJPay.version>2.9.11</IJPay.version>
         <egzosn-java.version>2.14.7</egzosn-java.version>
         <knife4j.version>4.4.0</knife4j.version>
         <mapstruct.version>1.5.3.Final</mapstruct.version>
diff --git a/pom.xml b/pom.xml
index d975eea4ddbc8faef2bd9fa95aca679256f50cdb..23ef617353b4f38de3cc1d8bb6fc3a9cdfd8562e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -7,7 +7,7 @@
     <groupId>cn.daxpay.single</groupId>
     <artifactId>dax-pay</artifactId>
     <packaging>pom</packaging>
-    <version>2.0.7</version>
+    <version>2.0.8</version>
 
     <modules>
         <module>daxpay-single</module>