diff --git a/.lombok.config b/.lombok.config new file mode 100644 index 000000000..5e75e2aa0 --- /dev/null +++ b/.lombok.config @@ -0,0 +1,5 @@ +# 构造器注入的时候自动复制字段上边的注解 +lombok.copyableAnnotations += org.springframework.beans.factory.annotation.Value +lombok.copyableannotations += org.springframework.beans.factory.annotation.Qualifier +lombok.copyableannotations += org.springframework.context.annotation.Lazy + diff --git a/db/2pigxx.sql b/db/2pigxx.sql index d07992d86..4bdc752f3 100644 --- a/db/2pigxx.sql +++ b/db/2pigxx.sql @@ -3,6 +3,61 @@ USE pigxx; SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0; +DROP TABLE IF EXISTS `sys_area`; +CREATE TABLE `sys_area` ( + `id` bigint unsigned NOT NULL COMMENT '主键ID', + `pid` bigint unsigned NOT NULL DEFAULT '0' COMMENT '父ID', + `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '地区名称', + `letter` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '地区字母', + `adcode` bigint NOT NULL COMMENT '高德地区code', + `location` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '经纬度', + `area_sort` bigint DEFAULT NULL COMMENT '排序值', + `area_status` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '1' COMMENT '0:未生效,1:生效', + `area_type` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '0' COMMENT '0:国家,1:省,2:城市,3:区县', + `hot` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '0' COMMENT '0:非热门,1:热门', + `city_code` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '城市编码', + `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '创建人', + `create_time` datetime NOT NULL COMMENT '创建时间', + `update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '更新时间', + `update_time` datetime DEFAULT NULL COMMENT '更新时间', + `del_flag` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '0' COMMENT '删除标记', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='行政区划表'; + +BEGIN; +INSERT INTO `sys_area` (`id`, `pid`, `name`, `letter`, `adcode`, `location`, `area_sort`, `area_status`, `area_type`, `hot`, `city_code`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`) VALUES (1, 0, '全国', '', 100000, '', NULL, '1', '0', '0', '', '2023-11-09 03:50:52', '2023-11-09 03:50:52', 'admin', '2024-02-17 12:45:08', '0'); +INSERT INTO `sys_area` (`id`, `pid`, `name`, `letter`, `adcode`, `location`, `area_sort`, `area_status`, `area_type`, `hot`, `city_code`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`) VALUES (2, 100000, '北京市', '', 110000, '', NULL, '1', '1', '1', '', '2023-11-09 03:50:52', '2023-11-09 03:50:52', 'admin', '2024-02-17 12:45:12', '0'); +INSERT INTO `sys_area` (`id`, `pid`, `name`, `letter`, `adcode`, `location`, `area_sort`, `area_status`, `area_type`, `hot`, `city_code`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`) VALUES (3, 100000, '天津市', '', 120000, '', NULL, '1', '1', '0', '', '2023-11-09 03:50:52', '2023-11-09 03:50:52', NULL, NULL, '0'); +INSERT INTO `sys_area` (`id`, `pid`, `name`, `letter`, `adcode`, `location`, `area_sort`, `area_status`, `area_type`, `hot`, `city_code`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`) VALUES (4, 100000, '河北省', '', 130000, '', NULL, '1', '1', '0', '', '2023-11-09 03:50:52', '2023-11-09 03:50:52', NULL, NULL, '0'); +INSERT INTO `sys_area` (`id`, `pid`, `name`, `letter`, `adcode`, `location`, `area_sort`, `area_status`, `area_type`, `hot`, `city_code`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`) VALUES (5, 100000, '山西省', '', 140000, '', NULL, '1', '1', '0', '', '2023-11-09 03:50:52', '2023-11-09 03:50:52', NULL, NULL, '0'); +INSERT INTO `sys_area` (`id`, `pid`, `name`, `letter`, `adcode`, `location`, `area_sort`, `area_status`, `area_type`, `hot`, `city_code`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`) VALUES (6, 100000, '内蒙古自治区', '', 150000, '', NULL, '1', '1', '0', '', '2023-11-09 03:50:52', '2023-11-09 03:50:52', NULL, NULL, '0'); +INSERT INTO `sys_area` (`id`, `pid`, `name`, `letter`, `adcode`, `location`, `area_sort`, `area_status`, `area_type`, `hot`, `city_code`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`) VALUES (7, 100000, '辽宁省', '', 210000, '', NULL, '1', '1', '0', '', '2023-11-09 03:50:52', '2023-11-09 03:50:52', NULL, NULL, '0'); +INSERT INTO `sys_area` (`id`, `pid`, `name`, `letter`, `adcode`, `location`, `area_sort`, `area_status`, `area_type`, `hot`, `city_code`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`) VALUES (8, 100000, '吉林省', '', 220000, '', NULL, '1', '1', '0', '', '2023-11-09 03:50:52', '2023-11-09 03:50:52', 'admin', '2024-02-16 23:16:23', '0'); +INSERT INTO `sys_area` (`id`, `pid`, `name`, `letter`, `adcode`, `location`, `area_sort`, `area_status`, `area_type`, `hot`, `city_code`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`) VALUES (9, 100000, '黑龙江省', '', 230000, '', NULL, '1', '1', '0', '', '2023-11-09 03:50:52', '2023-11-09 03:50:52', NULL, NULL, '0'); +INSERT INTO `sys_area` (`id`, `pid`, `name`, `letter`, `adcode`, `location`, `area_sort`, `area_status`, `area_type`, `hot`, `city_code`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`) VALUES (10, 100000, '上海市', '', 310000, '', NULL, '1', '1', '0', '', '2023-11-09 03:50:52', '2023-11-09 03:50:52', NULL, NULL, '0'); +INSERT INTO `sys_area` (`id`, `pid`, `name`, `letter`, `adcode`, `location`, `area_sort`, `area_status`, `area_type`, `hot`, `city_code`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`) VALUES (11, 100000, '江苏省', '', 320000, '', NULL, '1', '1', '0', '', '2023-11-09 03:50:52', '2023-11-09 03:50:52', NULL, NULL, '0'); +INSERT INTO `sys_area` (`id`, `pid`, `name`, `letter`, `adcode`, `location`, `area_sort`, `area_status`, `area_type`, `hot`, `city_code`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`) VALUES (12, 100000, '浙江省', '', 330000, '', NULL, '1', '1', '0', '', '2023-11-09 03:50:52', '2023-11-09 03:50:52', NULL, NULL, '0'); +INSERT INTO `sys_area` (`id`, `pid`, `name`, `letter`, `adcode`, `location`, `area_sort`, `area_status`, `area_type`, `hot`, `city_code`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`) VALUES (13, 100000, '安徽省', '', 340000, '', NULL, '1', '1', '0', '', '2023-11-09 03:50:52', '2023-11-09 03:50:52', NULL, NULL, '0'); +INSERT INTO `sys_area` (`id`, `pid`, `name`, `letter`, `adcode`, `location`, `area_sort`, `area_status`, `area_type`, `hot`, `city_code`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`) VALUES (14, 100000, '福建省', '', 350000, '', NULL, '1', '1', '0', '', '2023-11-09 03:50:52', '2023-11-09 03:50:52', NULL, NULL, '0'); +INSERT INTO `sys_area` (`id`, `pid`, `name`, `letter`, `adcode`, `location`, `area_sort`, `area_status`, `area_type`, `hot`, `city_code`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`) VALUES (15, 100000, '江西省', '', 360000, '', NULL, '1', '1', '0', '', '2023-11-09 03:50:52', '2023-11-09 03:50:52', NULL, NULL, '0'); +INSERT INTO `sys_area` (`id`, `pid`, `name`, `letter`, `adcode`, `location`, `area_sort`, `area_status`, `area_type`, `hot`, `city_code`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`) VALUES (16, 100000, '山东省', '', 370000, '', 100, '1', '1', '1', '', '2023-11-09 03:50:52', '2023-11-09 03:50:52', 'admin', '2024-02-17 13:13:25', '0'); +INSERT INTO `sys_area` (`id`, `pid`, `name`, `letter`, `adcode`, `location`, `area_sort`, `area_status`, `area_type`, `hot`, `city_code`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`) VALUES (17, 100000, '河南省', '', 410000, '', NULL, '1', '1', '0', '', '2023-11-09 03:50:52', '2023-11-09 03:50:52', NULL, NULL, '0'); +INSERT INTO `sys_area` (`id`, `pid`, `name`, `letter`, `adcode`, `location`, `area_sort`, `area_status`, `area_type`, `hot`, `city_code`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`) VALUES (18, 100000, '湖北省', '', 420000, '', NULL, '1', '1', '0', '', '2023-11-09 03:50:52', '2023-11-09 03:50:52', NULL, NULL, '0'); +INSERT INTO `sys_area` (`id`, `pid`, `name`, `letter`, `adcode`, `location`, `area_sort`, `area_status`, `area_type`, `hot`, `city_code`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`) VALUES (19, 100000, '湖南省', '', 430000, '', NULL, '1', '1', '0', '', '2023-11-09 03:50:52', '2023-11-09 03:50:52', NULL, NULL, '0'); +INSERT INTO `sys_area` (`id`, `pid`, `name`, `letter`, `adcode`, `location`, `area_sort`, `area_status`, `area_type`, `hot`, `city_code`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`) VALUES (20, 100000, '广东省', '', 440000, '', NULL, '1', '1', '0', '', '2023-11-09 03:50:52', '2023-11-09 03:50:52', NULL, NULL, '0'); +INSERT INTO `sys_area` (`id`, `pid`, `name`, `letter`, `adcode`, `location`, `area_sort`, `area_status`, `area_type`, `hot`, `city_code`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`) VALUES (21, 100000, '广西壮族自治区', '', 450000, '', NULL, '1', '1', '0', '', '2023-11-09 03:50:52', '2023-11-09 03:50:52', NULL, NULL, '0'); +INSERT INTO `sys_area` (`id`, `pid`, `name`, `letter`, `adcode`, `location`, `area_sort`, `area_status`, `area_type`, `hot`, `city_code`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`) VALUES (22, 100000, '海南省', '', 460000, '', NULL, '1', '1', '0', '', '2023-11-09 03:50:52', '2023-11-09 03:50:52', NULL, NULL, '0'); +INSERT INTO `sys_area` (`id`, `pid`, `name`, `letter`, `adcode`, `location`, `area_sort`, `area_status`, `area_type`, `hot`, `city_code`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`) VALUES (23, 100000, '重庆市', '', 500000, '', NULL, '1', '1', '0', '', '2023-11-09 03:50:52', '2023-11-09 03:50:52', NULL, NULL, '0'); +INSERT INTO `sys_area` (`id`, `pid`, `name`, `letter`, `adcode`, `location`, `area_sort`, `area_status`, `area_type`, `hot`, `city_code`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`) VALUES (24, 100000, '四川省', '', 510000, '', NULL, '1', '1', '0', '', '2023-11-09 03:50:52', '2023-11-09 03:50:52', NULL, NULL, '0'); +INSERT INTO `sys_area` (`id`, `pid`, `name`, `letter`, `adcode`, `location`, `area_sort`, `area_status`, `area_type`, `hot`, `city_code`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`) VALUES (25, 100000, '贵州省', '', 520000, '', NULL, '1', '1', '0', '', '2023-11-09 03:50:52', '2023-11-09 03:50:52', NULL, NULL, '0'); +INSERT INTO `sys_area` (`id`, `pid`, `name`, `letter`, `adcode`, `location`, `area_sort`, `area_status`, `area_type`, `hot`, `city_code`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`) VALUES (26, 100000, '云南省', '', 530000, '', NULL, '1', '1', '0', '', '2023-11-09 03:50:52', '2023-11-09 03:50:52', NULL, NULL, '0'); +INSERT INTO `sys_area` (`id`, `pid`, `name`, `letter`, `adcode`, `location`, `area_sort`, `area_status`, `area_type`, `hot`, `city_code`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`) VALUES (27, 100000, '西藏自治区', '', 540000, '', NULL, '1', '1', '0', '', '2023-11-09 03:50:52', '2023-11-09 03:50:52', NULL, NULL, '0'); +INSERT INTO `sys_area` (`id`, `pid`, `name`, `letter`, `adcode`, `location`, `area_sort`, `area_status`, `area_type`, `hot`, `city_code`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`) VALUES (28, 100000, '陕西省', '', 610000, '', NULL, '1', '1', '0', '', '2023-11-09 03:50:52', '2023-11-09 03:50:52', NULL, NULL, '0'); +INSERT INTO `sys_area` (`id`, `pid`, `name`, `letter`, `adcode`, `location`, `area_sort`, `area_status`, `area_type`, `hot`, `city_code`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`) VALUES (29, 100000, '甘肃省', '', 620000, '', NULL, '1', '1', '0', '', '2023-11-09 03:50:52', '2023-11-09 03:50:52', NULL, NULL, '0'); +INSERT INTO `sys_area` (`id`, `pid`, `name`, `letter`, `adcode`, `location`, `area_sort`, `area_status`, `area_type`, `hot`, `city_code`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`) VALUES (30, 100000, '青海省', '', 630000, '', NULL, '1', '1', '0', '', '2023-11-09 03:50:52', '2023-11-09 03:50:52', NULL, NULL, '0'); +INSERT INTO `sys_area` (`id`, `pid`, `name`, `letter`, `adcode`, `location`, `area_sort`, `area_status`, `area_type`, `hot`, `city_code`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`) VALUES (31, 100000, '宁夏回族自治区', '', 640000, '', NULL, '1', '1', '0', '', '2023-11-09 03:50:52', '2023-11-09 03:50:52', NULL, NULL, '0'); +COMMIT; + -- ---------------------------- -- Table structure for sys_audit_log -- ---------------------------- @@ -418,6 +473,7 @@ CREATE TABLE `sys_menu` ( `name` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '菜单名称', `permission` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '权限标识', `path` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '路由路径', + `component` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '组件', `parent_id` bigint(20) DEFAULT NULL COMMENT '父菜单ID', `icon` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '菜单图标', `visible` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '1' COMMENT '是否可见,0隐藏,1显示', @@ -438,219 +494,227 @@ CREATE TABLE `sys_menu` ( -- Records of sys_menu -- ---------------------------- BEGIN; -INSERT INTO `sys_menu` VALUES (1000, '权限管理', NULL, '/system', 2000, 'iconfont icon-icon-', '1', 0, '0', '0', '0', '', '2018-09-28 08:29:53', 'admin', '2023-11-01 16:39:55', '0', 1); -INSERT INTO `sys_menu` VALUES (1100, '用户管理', NULL, '/admin/system/user/index', 1000, 'ele-User', '1', 1, '0', '0', '0', '', '2017-11-02 22:24:37', 'admin', '2023-11-01 16:40:44', '0', 1); -INSERT INTO `sys_menu` VALUES (1101, '用户新增', 'sys_user_add', NULL, 1100, NULL, '1', 1, '0', NULL, '1', ' ', '2017-11-08 09:52:09', ' ', '2021-05-25 03:12:55', '0', 1); -INSERT INTO `sys_menu` VALUES (1102, '用户修改', 'sys_user_edit', NULL, 1100, NULL, '1', 1, '0', NULL, '1', ' ', '2017-11-08 09:52:48', ' ', '2021-05-25 03:12:55', '0', 1); -INSERT INTO `sys_menu` VALUES (1103, '用户删除', 'sys_user_del', NULL, 1100, NULL, '1', 1, '0', NULL, '1', ' ', '2017-11-08 09:54:01', ' ', '2021-05-25 03:12:55', '0', 1); -INSERT INTO `sys_menu` VALUES (1104, '导入导出', 'sys_user_export', NULL, 1100, NULL, '1', 1, '0', NULL, '1', ' ', '2017-11-08 09:54:01', ' ', '2021-05-25 03:12:55', '0', 1); -INSERT INTO `sys_menu` VALUES (1200, '菜单管理', NULL, '/admin/system/menu/index', 1000, 'iconfont icon-caidan', '1', 2, '0', '0', '0', '', '2017-11-08 09:57:27', 'admin', '2023-11-01 16:40:39', '0', 1); -INSERT INTO `sys_menu` VALUES (1201, '菜单新增', 'sys_menu_add', NULL, 1200, NULL, '1', 1, '0', NULL, '1', ' ', '2017-11-08 10:15:53', ' ', '2021-05-25 03:12:55', '0', 1); -INSERT INTO `sys_menu` VALUES (1202, '菜单修改', 'sys_menu_edit', NULL, 1200, NULL, '1', 1, '0', NULL, '1', ' ', '2017-11-08 10:16:23', ' ', '2021-05-25 03:12:55', '0', 1); -INSERT INTO `sys_menu` VALUES (1203, '菜单删除', 'sys_menu_del', NULL, 1200, NULL, '1', 1, '0', NULL, '1', ' ', '2017-11-08 10:16:43', ' ', '2021-05-25 03:12:55', '0', 1); -INSERT INTO `sys_menu` VALUES (1300, '角色管理', NULL, '/admin/system/role/index', 1000, 'iconfont icon-gerenzhongxin', '1', 3, '0', NULL, '0', '', '2017-11-08 10:13:37', 'admin', '2023-11-01 16:40:35', '0', 1); -INSERT INTO `sys_menu` VALUES (1301, '角色新增', 'sys_role_add', NULL, 1300, NULL, '1', 1, '0', NULL, '1', ' ', '2017-11-08 10:14:18', ' ', '2021-05-25 03:12:55', '0', 1); -INSERT INTO `sys_menu` VALUES (1302, '角色修改', 'sys_role_edit', NULL, 1300, NULL, '1', 1, '0', NULL, '1', ' ', '2017-11-08 10:14:41', ' ', '2021-05-25 03:12:55', '0', 1); -INSERT INTO `sys_menu` VALUES (1303, '角色删除', 'sys_role_del', NULL, 1300, NULL, '1', 1, '0', NULL, '1', ' ', '2017-11-08 10:14:59', ' ', '2021-05-25 03:12:55', '0', 1); -INSERT INTO `sys_menu` VALUES (1304, '分配权限', 'sys_role_perm', NULL, 1300, NULL, '1', 1, '0', NULL, '1', ' ', '2018-04-20 07:22:55', ' ', '2021-05-25 03:12:55', '0', 1); -INSERT INTO `sys_menu` VALUES (1305, '角色导入导出', 'sys_role_export', NULL, 1300, NULL, '1', 4, '0', NULL, '1', ' ', '2022-03-26 15:54:34', ' ', NULL, '0', 1); -INSERT INTO `sys_menu` VALUES (1400, '部门管理', NULL, '/admin/system/dept/index', 1000, 'iconfont icon-zidingyibuju', '1', 4, '0', NULL, '0', '', '2018-01-20 13:17:19', 'admin', '2023-11-01 16:40:30', '0', 1); -INSERT INTO `sys_menu` VALUES (1401, '部门新增', 'sys_dept_add', NULL, 1400, NULL, '1', 1, '0', NULL, '1', ' ', '2018-01-20 14:56:16', ' ', '2021-05-25 03:12:55', '0', 1); -INSERT INTO `sys_menu` VALUES (1402, '部门修改', 'sys_dept_edit', NULL, 1400, NULL, '1', 1, '0', NULL, '1', ' ', '2018-01-20 14:56:59', ' ', '2021-05-25 03:12:55', '0', 1); -INSERT INTO `sys_menu` VALUES (1403, '部门删除', 'sys_dept_del', NULL, 1400, NULL, '1', 1, '0', NULL, '1', ' ', '2018-01-20 14:57:28', ' ', '2021-05-25 03:12:55', '0', 1); -INSERT INTO `sys_menu` VALUES (1404, '开放互联', 'sys_connect_sync', NULL, 1400, NULL, '1', 1, '0', NULL, '1', ' ', '2018-01-20 14:57:28', ' ', '2021-05-25 03:12:55', '0', 1); -INSERT INTO `sys_menu` VALUES (1500, '租户管理', NULL, '/admin/system/tenant/index', 1000, 'iconfont icon-shuxingtu', '1', 9, '0', '0', '0', '', '2018-01-20 13:17:19', 'admin', '2023-11-01 16:40:26', '0', 1); -INSERT INTO `sys_menu` VALUES (1501, '租户新增', 'sys_systenant_add', NULL, 1500, '1', '1', 0, '0', NULL, '1', ' ', '2018-05-15 21:35:18', ' ', '2020-03-24 08:56:52', '0', 1); -INSERT INTO `sys_menu` VALUES (1502, '租户修改', 'sys_systenant_edit', NULL, 1500, '1', '1', 1, '0', NULL, '1', ' ', '2018-05-15 21:35:18', ' ', '2020-03-24 08:56:53', '0', 1); -INSERT INTO `sys_menu` VALUES (1503, '租户删除', 'sys_systenant_del', NULL, 1500, '1', '1', 2, '0', NULL, '1', ' ', '2018-05-15 21:35:18', ' ', '2020-03-24 08:56:54', '0', 1); -INSERT INTO `sys_menu` VALUES (1504, '租户套餐', 'sys_systenant_tenantmenu', NULL, 1500, '1', '1', 1, '0', NULL, '1', 'admin', '2022-12-12 09:01:41', ' ', '2023-01-11 05:52:51', '0', 1); -INSERT INTO `sys_menu` VALUES (1505, '租户套餐删除', 'sys_systenantmenu_del', NULL, 1500, '1', '1', 1, '0', NULL, '1', 'admin', '2022-12-09 14:04:19', 'admin', '2023-01-11 05:52:51', '0', 1); -INSERT INTO `sys_menu` VALUES (1506, '租户套餐编辑', 'sys_systenantmenu_edit', NULL, 1500, '1', '1', 1, '0', NULL, '1', 'admin', '2022-12-09 14:04:19', 'admin', '2023-01-11 05:52:51', '0', 1); -INSERT INTO `sys_menu` VALUES (1507, '租户套餐新增', 'sys_systenantmenu_add', NULL, 1500, '1', '1', 1, '0', NULL, '1', 'admin', '2022-12-09 14:04:19', 'admin', '2022-12-12 09:02:00', '0', 1); -INSERT INTO `sys_menu` VALUES (1508, '租户套餐导出', 'sys_systenant_export', NULL, 1500, NULL, '1', 0, '0', '0', '1', 'admin', '2023-03-06 16:28:24', ' ', NULL, '0', 1); -INSERT INTO `sys_menu` VALUES (1600, '岗位管理', NULL, '/admin/system/post/index', 1000, 'iconfont icon--chaifenhang', '1', 5, '1', '0', '0', '', '2022-03-26 13:04:14', 'admin', '2023-11-01 17:02:55', '0', 1); -INSERT INTO `sys_menu` VALUES (1601, '岗位信息查看', 'sys_post_view', NULL, 1600, NULL, '1', 0, '0', NULL, '1', ' ', '2022-03-26 13:05:34', ' ', NULL, '0', 1); -INSERT INTO `sys_menu` VALUES (1602, '岗位信息新增', 'sys_post_add', NULL, 1600, NULL, '1', 1, '0', NULL, '1', ' ', '2022-03-26 13:06:00', ' ', NULL, '0', 1); -INSERT INTO `sys_menu` VALUES (1603, '岗位信息修改', 'sys_post_edit', NULL, 1600, NULL, '1', 2, '0', NULL, '1', ' ', '2022-03-26 13:06:31', ' ', '2022-03-26 13:06:38', '0', 1); -INSERT INTO `sys_menu` VALUES (1604, '岗位信息删除', 'sys_post_del', NULL, 1600, NULL, '1', 3, '0', NULL, '1', ' ', '2022-03-26 13:06:31', ' ', NULL, '0', 1); -INSERT INTO `sys_menu` VALUES (1605, '岗位导入导出', 'sys_post_export', NULL, 1600, NULL, '1', 4, '0', NULL, '1', ' ', '2022-03-26 13:06:31', ' ', '2022-03-26 06:32:02', '0', 1); -INSERT INTO `sys_menu` VALUES (2000, '系统管理', NULL, '/admin', -1, 'iconfont icon-quanjushezhi_o', '1', 1, '0', NULL, '0', '', '2017-11-07 20:56:00', 'admin', '2023-11-01 16:25:58', '0', 1); -INSERT INTO `sys_menu` VALUES (2001, '日志管理', NULL, '/admin/logs', 2000, 'ele-Cloudy', '1', 1, '0', '0', '0', 'admin', '2023-03-02 12:26:42', 'admin', '2023-11-01 16:22:08', '0', 1); -INSERT INTO `sys_menu` VALUES (2100, '操作日志', NULL, '/admin/log/index', 2001, 'iconfont icon-jinridaiban', '1', 2, '0', '0', '0', '', '2017-11-20 14:06:22', 'admin', '2023-03-02 12:28:57', '0', 1); -INSERT INTO `sys_menu` VALUES (2101, '日志删除', 'sys_log_del', NULL, 2100, NULL, '1', 1, '0', NULL, '1', ' ', '2017-11-20 20:37:37', ' ', '2021-05-25 03:12:55', '0', 1); -INSERT INTO `sys_menu` VALUES (2102, '导入导出', 'sys_log_export', NULL, 2100, NULL, '1', 1, '0', NULL, '1', ' ', '2017-11-08 09:54:01', ' ', '2021-05-25 03:12:55', '0', 1); -INSERT INTO `sys_menu` VALUES (2103, '审计日志', NULL, '/admin/audit/index', 2001, 'iconfont icon-biaodan', '1', 1, '0', '0', '0', '', NULL, 'admin', '2023-03-02 12:28:47', '0', 1); -INSERT INTO `sys_menu` VALUES (2104, '审计记录表删除', 'sys_audit_del', NULL, 2103, '1', '1', 3, '0', NULL, '1', '', NULL, 'admin', '2023-02-28 20:23:43', '0', 1); -INSERT INTO `sys_menu` VALUES (2105, '导入导出', 'sys_audit_export', NULL, 2103, '1', '1', 3, '0', NULL, '1', '', NULL, 'admin', '2023-02-28 20:23:51', '0', 1); -INSERT INTO `sys_menu` VALUES (2200, '字典管理', NULL, '/admin/dict/index', 2000, 'iconfont icon-zhongduancanshuchaxun', '1', 6, '0', NULL, '0', '', '2017-11-29 11:30:52', 'admin', '2023-02-16 15:24:29', '0', 1); -INSERT INTO `sys_menu` VALUES (2201, '字典删除', 'sys_dict_del', NULL, 2200, NULL, '1', 1, '0', NULL, '1', ' ', '2017-11-29 11:30:11', ' ', '2021-05-25 03:12:55', '0', 1); -INSERT INTO `sys_menu` VALUES (2202, '字典新增', 'sys_dict_add', NULL, 2200, NULL, '1', 1, '0', NULL, '1', ' ', '2018-05-11 22:34:55', ' ', '2021-05-25 03:12:55', '0', 1); -INSERT INTO `sys_menu` VALUES (2203, '字典修改', 'sys_dict_edit', NULL, 2200, NULL, '1', 1, '0', NULL, '1', ' ', '2018-05-11 22:36:03', ' ', '2021-05-25 03:12:55', '0', 1); -INSERT INTO `sys_menu` VALUES (2210, '参数管理', NULL, '/admin/param/index', 2000, 'iconfont icon-wenducanshu-05', '1', 7, '1', NULL, '0', '', '2019-04-29 22:16:50', 'admin', '2023-02-16 15:24:51', '0', 1); -INSERT INTO `sys_menu` VALUES (2211, '参数新增', 'sys_syspublicparam_add', NULL, 2210, NULL, '1', 1, '0', NULL, '1', ' ', '2019-04-29 22:17:36', ' ', '2020-03-24 08:57:11', '0', 1); -INSERT INTO `sys_menu` VALUES (2212, '参数删除', 'sys_syspublicparam_del', NULL, 2210, NULL, '1', 1, '0', NULL, '1', ' ', '2019-04-29 22:17:55', ' ', '2020-03-24 08:57:12', '0', 1); -INSERT INTO `sys_menu` VALUES (2213, '参数编辑', 'sys_syspublicparam_edit', NULL, 2210, NULL, '1', 1, '0', NULL, '1', ' ', '2019-04-29 22:18:14', ' ', '2020-03-24 08:57:13', '0', 1); -INSERT INTO `sys_menu` VALUES (2300, '代码生成', NULL, '/gen/table/index', 9000, 'iconfont icon-zhongduancanshu', '1', 1, '0', '0', '0', '', '2018-01-20 13:17:19', 'admin', '2023-02-20 13:54:35', '0', 1); -INSERT INTO `sys_menu` VALUES (2400, '终端管理', NULL, '/admin/client/index', 2000, 'iconfont icon-gongju', '1', 9, '1', NULL, '0', '', '2018-01-20 13:17:19', 'admin', '2023-02-16 15:25:28', '0', 1); -INSERT INTO `sys_menu` VALUES (2401, '客户端新增', 'sys_client_add', NULL, 2400, '1', '1', 1, '0', NULL, '1', ' ', '2018-05-15 21:35:18', ' ', '2021-05-25 03:12:55', '0', 1); -INSERT INTO `sys_menu` VALUES (2402, '客户端修改', 'sys_client_edit', NULL, 2400, NULL, '1', 1, '0', NULL, '1', ' ', '2018-05-15 21:37:06', ' ', '2021-05-25 03:12:55', '0', 1); -INSERT INTO `sys_menu` VALUES (2403, '客户端删除', 'sys_client_del', NULL, 2400, NULL, '1', 1, '0', NULL, '1', ' ', '2018-05-15 21:39:16', ' ', '2021-05-25 03:12:55', '0', 1); -INSERT INTO `sys_menu` VALUES (2500, '密钥管理', NULL, '/admin/social/index', 2000, 'iconfont icon-quanxian', '1', 10, '0', NULL, '0', '', '2018-01-20 13:17:19', 'admin', '2023-02-16 15:26:16', '0', 1); -INSERT INTO `sys_menu` VALUES (2501, '密钥新增', 'sys_social_details_add', NULL, 2500, '1', '1', 0, '0', NULL, '1', ' ', '2018-05-15 21:35:18', ' ', '2020-03-24 08:57:19', '0', 1); -INSERT INTO `sys_menu` VALUES (2502, '密钥修改', 'sys_social_details_edit', NULL, 2500, '1', '1', 1, '0', NULL, '1', ' ', '2018-05-15 21:35:18', ' ', '2020-03-24 08:57:19', '0', 1); -INSERT INTO `sys_menu` VALUES (2503, '密钥删除', 'sys_social_details_del', NULL, 2500, '1', '1', 2, '0', NULL, '1', ' ', '2018-05-15 21:35:18', ' ', '2020-03-24 08:57:23', '0', 1); -INSERT INTO `sys_menu` VALUES (2600, '令牌管理', NULL, '/admin/token/index', 2000, 'ele-Key', '1', 11, '0', NULL, '0', '', '2018-09-04 05:58:41', 'admin', '2023-02-16 15:28:28', '0', 1); -INSERT INTO `sys_menu` VALUES (2601, '令牌删除', 'sys_token_del', NULL, 2600, NULL, '1', 1, '0', NULL, '1', ' ', '2018-09-04 05:59:50', ' ', '2020-03-24 08:57:24', '0', 1); -INSERT INTO `sys_menu` VALUES (2800, 'Quartz管理', NULL, '/tools/job-manage/index', 9910, 'ele-AlarmClock', '1', 4, '0', NULL, '0', '', '2018-01-20 13:17:19', 'admin', '2023-11-27 14:52:53', '0', 1); -INSERT INTO `sys_menu` VALUES (2810, '任务新增', 'job_sys_job_add', NULL, 2800, '1', '1', 0, '0', NULL, '1', ' ', '2018-05-15 21:35:18', ' ', '2020-03-24 08:57:26', '0', 1); -INSERT INTO `sys_menu` VALUES (2820, '任务修改', 'job_sys_job_edit', NULL, 2800, '1', '1', 0, '0', NULL, '1', ' ', '2018-05-15 21:35:18', ' ', '2020-03-24 08:57:27', '0', 1); -INSERT INTO `sys_menu` VALUES (2830, '任务删除', 'job_sys_job_del', NULL, 2800, '1', '1', 0, '0', NULL, '1', ' ', '2018-05-15 21:35:18', ' ', '2020-03-24 08:57:28', '0', 1); -INSERT INTO `sys_menu` VALUES (2840, '任务暂停', 'job_sys_job_shutdown_job', NULL, 2800, '1', '1', 0, '0', NULL, '1', ' ', '2018-05-15 21:35:18', ' ', '2020-03-24 08:57:28', '0', 1); -INSERT INTO `sys_menu` VALUES (2850, '任务开始', 'job_sys_job_start_job', NULL, 2800, '1', '1', 0, '0', NULL, '1', ' ', '2018-05-15 21:35:18', ' ', '2020-03-24 08:57:29', '0', 1); -INSERT INTO `sys_menu` VALUES (2860, '任务刷新', 'job_sys_job_refresh_job', NULL, 2800, '1', '1', 0, '0', NULL, '1', ' ', '2018-05-15 21:35:18', ' ', '2020-03-24 08:57:30', '0', 1); -INSERT INTO `sys_menu` VALUES (2870, '执行任务', 'job_sys_job_run_job', NULL, 2800, '1', '1', 0, '0', NULL, '1', ' ', '2019-08-08 15:35:18', ' ', '2020-03-24 08:57:31', '0', 1); -INSERT INTO `sys_menu` VALUES (2871, '导出', 'job_sys_job_export', NULL, 2800, NULL, '1', 0, '0', '0', '1', 'admin', '2023-03-06 15:26:13', ' ', NULL, '0', 1); -INSERT INTO `sys_menu` VALUES (2900, '国际化管理', NULL, '/admin/i18n/index', 2000, 'iconfont icon-zhongyingzhuanhuan', '1', 8, '0', NULL, '0', '', NULL, 'admin', '2023-02-16 15:25:18', '0', 1); -INSERT INTO `sys_menu` VALUES (2901, '系统表-国际化查看', 'sys_i18n_view', NULL, 2900, '1', '1', 0, '0', NULL, '1', ' ', NULL, ' ', NULL, '0', 1); -INSERT INTO `sys_menu` VALUES (2902, '系统表-国际化新增', 'sys_i18n_add', NULL, 2900, '1', '1', 1, '0', NULL, '1', ' ', NULL, ' ', NULL, '0', 1); -INSERT INTO `sys_menu` VALUES (2903, '系统表-国际化修改', 'sys_i18n_edit', NULL, 2900, '1', '1', 2, '0', NULL, '1', ' ', NULL, ' ', NULL, '0', 1); -INSERT INTO `sys_menu` VALUES (2904, '系统表-国际化删除', 'sys_i18n_del', NULL, 2900, '1', '1', 3, '0', NULL, '1', ' ', NULL, ' ', NULL, '0', 1); -INSERT INTO `sys_menu` VALUES (2905, '导入导出', 'sys_i18n_export', NULL, 2900, '1', '1', 3, '0', NULL, '1', ' ', NULL, ' ', NULL, '0', 1); -INSERT INTO `sys_menu` VALUES (2906, '文件管理', NULL, '/admin/file/index', 2000, 'ele-Files', '1', 6, '0', NULL, '0', '', '2019-06-25 12:44:46', 'admin', '2023-02-16 15:24:42', '0', 1); -INSERT INTO `sys_menu` VALUES (2907, '删除文件', 'sys_file_del', NULL, 2906, NULL, '1', 1, '0', NULL, '1', ' ', '2019-06-25 13:41:41', ' ', '2020-03-24 08:58:42', '0', 1); -INSERT INTO `sys_menu` VALUES (3000, '公众号平台', NULL, '/mp', 9900, 'iconfont icon-putong', '1', 3, '0', '0', '0', 'admin', '2023-02-24 10:40:44', 'admin', '2023-11-27 14:52:28', '0', 1); -INSERT INTO `sys_menu` VALUES (3001, '账号管理', NULL, '/biz/mp/wx-account/index', 3000, 'iconfont icon-putong', '1', 0, '0', '0', '0', 'admin', '2023-02-24 10:43:03', ' ', '2023-11-01 17:28:07', '0', 1); -INSERT INTO `sys_menu` VALUES (3002, '菜单设置', NULL, '/biz/mp/wx-menu/index', 3000, 'iconfont icon--chaifenlie', '1', 1, '0', '0', '0', 'admin', '2023-02-24 11:16:32', 'admin', '2023-11-01 17:28:11', '0', 1); -INSERT INTO `sys_menu` VALUES (3003, '删除', 'mp_wxaccount_del', NULL, 3001, NULL, '0', 0, '0', '0', '1', 'admin', '2023-02-24 13:12:53', ' ', NULL, '0', 1); -INSERT INTO `sys_menu` VALUES (3004, '新增', 'mp_wxaccount_add', NULL, 3001, NULL, '0', 0, '0', '0', '1', 'admin', '2023-02-24 13:13:04', ' ', NULL, '0', 1); -INSERT INTO `sys_menu` VALUES (3005, '编辑', 'mp_wxaccount_edit', NULL, 3001, NULL, '0', 0, '0', '0', '1', 'admin', '2023-02-24 13:13:15', ' ', NULL, '0', 1); -INSERT INTO `sys_menu` VALUES (3006, '粉丝管理', NULL, '/biz/mp/wx-account-fans/index', 3000, 'iconfont icon-tongzhi3', '1', 2, '0', '0', '0', 'admin', '2023-02-24 13:28:24', 'admin', '2023-11-01 17:28:15', '0', 1); -INSERT INTO `sys_menu` VALUES (3007, '同步粉丝', 'mp_wxaccountfans_sync', NULL, 3006, NULL, '0', 0, '0', '0', '1', 'admin', '2023-02-24 14:03:03', ' ', NULL, '0', 1); -INSERT INTO `sys_menu` VALUES (3008, '消息管理', NULL, '/biz/mp/wx-fans-msg/index', 3000, 'iconfont icon-tongzhi3', '1', 6, '0', '0', '0', 'admin', '2023-02-24 15:24:35', 'admin', '2023-11-01 17:28:21', '0', 1); -INSERT INTO `sys_menu` VALUES (3009, '修改微信消息', 'mp_wxmsg_edit', NULL, 3008, NULL, '1', 0, '0', '0', '1', 'admin', '2023-02-24 15:41:55', 'admin', '2023-11-01 17:28:28', '0', 1); -INSERT INTO `sys_menu` VALUES (3010, '标签管理', NULL, '/biz/mp/wx-account-tag/index', 3000, 'iconfont icon-zidingyibuju', '1', 3, '0', '0', '0', 'admin', '2023-03-03 09:49:07', 'admin', '2023-11-01 17:28:32', '0', 1); -INSERT INTO `sys_menu` VALUES (3011, '新增标签', 'mp_wx_account_tag_add', NULL, 3010, NULL, '1', 0, '0', '0', '1', 'admin', '2023-03-03 09:49:26', 'admin', '2023-03-11 16:29:44', '0', 1); -INSERT INTO `sys_menu` VALUES (3012, '编辑标签', 'mp_wx_account_tag_edit', NULL, 3010, NULL, '1', 0, '0', '0', '1', 'admin', '2023-03-03 09:49:35', 'admin', '2023-03-11 16:29:50', '0', 1); -INSERT INTO `sys_menu` VALUES (3013, '标签删除', 'mp_wx_account_tag_del', NULL, 3010, NULL, '1', 0, '0', '0', '1', 'admin', '2023-03-03 09:49:45', 'admin', '2023-03-11 16:29:53', '0', 1); -INSERT INTO `sys_menu` VALUES (3014, '同步标签', 'mp_wx_account_tag_sync', NULL, 3010, NULL, '1', 0, '0', '0', '1', 'admin', '2023-03-03 09:49:55', 'admin', '2023-03-11 16:29:56', '0', 1); -INSERT INTO `sys_menu` VALUES (3015, '素材管理', NULL, '/biz/mp/wx-material/index', 3000, 'iconfont icon-tongzhi3', '1', 5, '0', '0', '0', 'admin', '2023-02-27 14:13:47', 'admin', '2023-11-01 17:28:35', '0', 1); -INSERT INTO `sys_menu` VALUES (3016, '素材维护', 'mp_wxmaterial_add', NULL, 3015, NULL, '0', 0, '0', '0', '1', 'admin', '2023-02-27 14:14:07', ' ', NULL, '0', 1); -INSERT INTO `sys_menu` VALUES (3017, '素材删除', 'mp_wxmaterial_del', NULL, 3015, NULL, '0', 0, '0', '0', '1', 'admin', '2023-02-27 14:14:18', ' ', NULL, '0', 1); -INSERT INTO `sys_menu` VALUES (3018, '自动回复', NULL, '/biz/mp/wx-auto-reply/index', 3000, 'iconfont icon-putong', '1', 4, '0', '0', '0', 'admin', '2023-03-01 10:56:10', 'admin', '2023-11-01 17:28:40', '0', 1); -INSERT INTO `sys_menu` VALUES (3019, '新增回复', 'mp_wxautoreply_add', NULL, 3018, NULL, '0', 0, '0', '0', '1', 'admin', '2023-03-01 10:56:28', ' ', NULL, '0', 1); -INSERT INTO `sys_menu` VALUES (3020, '编辑回复', 'mp_wxautoreply_edit', NULL, 3018, NULL, '0', 0, '0', '0', '1', 'admin', '2023-03-01 10:56:42', ' ', NULL, '0', 1); -INSERT INTO `sys_menu` VALUES (3021, '删除回复', 'mp_wxautoreply_del', NULL, 3018, NULL, '0', 0, '0', '0', '1', 'admin', '2023-03-01 10:56:53', ' ', NULL, '0', 1); -INSERT INTO `sys_menu` VALUES (3022, '运营数据', NULL, '/biz/mp/wx-statistics/index', 3000, 'iconfont icon-shuxing', '1', 8, '0', '0', '0', 'admin', '2023-03-01 11:15:58', 'admin', '2023-11-01 17:28:54', '0', 1); -INSERT INTO `sys_menu` VALUES (3023, '新增消息', 'mp_wxmsg_add', NULL, 3008, NULL, '0', 0, '0', '0', '1', 'admin', '2023-03-01 17:12:02', ' ', NULL, '0', 1); -INSERT INTO `sys_menu` VALUES (3024, '新增粉丝', 'mp_wxaccountfans_add', 'mp_wxaccountfans_add', 3006, NULL, '0', 0, '0', '0', '1', 'admin', '2023-03-02 10:57:41', ' ', NULL, '0', 1); -INSERT INTO `sys_menu` VALUES (3025, '粉丝编辑', 'mp_wxaccountfans_edit', 'mp_wxaccountfans_add', 3006, NULL, '0', 0, '0', '0', '1', 'admin', '2023-03-02 10:57:52', ' ', NULL, '0', 1); -INSERT INTO `sys_menu` VALUES (3026, '粉丝删除', 'mp_wxaccountfans_del', 'mp_wxaccountfans_add', 3006, NULL, '0', 0, '0', '0', '1', 'admin', '2023-03-02 10:58:02', ' ', NULL, '0', 1); -INSERT INTO `sys_menu` VALUES (3027, '新增菜单', 'mp_wxmenu_add', NULL, 3002, NULL, '0', 0, '0', '0', '1', 'admin', '2023-02-27 20:54:34', ' ', NULL, '0', 1); -INSERT INTO `sys_menu` VALUES (3028, '发布菜单', 'mp_wxmenu_push', NULL, 3002, NULL, '0', 0, '0', '0', '1', 'admin', '2023-02-27 20:54:48', ' ', NULL, '0', 1); -INSERT INTO `sys_menu` VALUES (3029, '删除菜单', 'mp_wxmenu_del', NULL, 3002, NULL, '0', 0, '0', '0', '1', 'admin', '2023-02-27 20:54:57', ' ', NULL, '0', 1); -INSERT INTO `sys_menu` VALUES (4000, '系统监控', NULL, '/daemon', -1, 'iconfont icon-shuju', '1', 3, '0', '0', '0', 'admin', '2023-02-06 20:20:47', 'admin', '2023-11-01 17:12:31', '1', 1); -INSERT INTO `sys_menu` VALUES (4001, '文档扩展', NULL, 'http://pigx-gateway:9999/doc.html', 9910, 'iconfont icon-biaodan', '1', 2, '0', '1', '0', '', '2018-06-26 10:50:32', 'admin', '2023-11-27 14:52:54', '0', 1); -INSERT INTO `sys_menu` VALUES (4002, '缓存监控', NULL, '/tools/data/cache', 9910, 'iconfont icon-shuju', '1', 1, '0', '0', '0', 'admin', '2023-05-29 15:12:59', 'admin', '2023-11-27 14:52:56', '0', 1); -INSERT INTO `sys_menu` VALUES (4010, '站内信管理', '', '/tools/message/index', 9910, 'iconfont icon-zhongduancanshuchaxun', '1', 7, '0', NULL, '0', '', NULL, 'admin', '2023-11-27 14:52:57', '0', 1); -INSERT INTO `sys_menu` VALUES (4011, '站内信息查看', 'sys_message_view', NULL, 4010, '1', '1', 0, '0', NULL, '1', '', NULL, 'admin', '2023-10-25 14:51:54', '0', 1); -INSERT INTO `sys_menu` VALUES (4012, '站内信息新增', 'sys_message_add', NULL, 4010, '1', '1', 1, '0', NULL, '1', '', NULL, 'admin', '2023-10-25 14:52:00', '0', 1); -INSERT INTO `sys_menu` VALUES (4013, '站内信息修改', 'sys_message_edit', NULL, 4010, '1', '1', 2, '0', NULL, '1', '', NULL, 'admin', '2023-10-25 14:52:04', '0', 1); -INSERT INTO `sys_menu` VALUES (4014, '站内信息删除', 'sys_message_del', NULL, 4010, '1', '1', 3, '0', NULL, '1', '', NULL, 'admin', '2023-10-25 14:52:09', '0', 1); -INSERT INTO `sys_menu` VALUES (5000, '支付系统', NULL, '/pay', 9900, 'iconfont icon-neiqianshujuchucun', '1', 1, '0', '0', '0', 'admin', '2023-02-27 10:57:14', 'admin', '2023-11-27 14:52:11', '0', 1); -INSERT INTO `sys_menu` VALUES (5001, '收银台', NULL, '/biz/pay/cd/index', 5000, 'iconfont icon-diqiu1', '1', 0, '0', '0', '0', 'admin', '2023-02-27 10:58:13', 'admin', '2023-11-01 17:28:57', '0', 1); -INSERT INTO `sys_menu` VALUES (5002, '支付渠道', NULL, '/biz/pay/channel/index', 5000, 'iconfont icon-crew_feature', '1', 1, '0', '0', '0', 'admin', '2023-02-27 19:36:55', 'admin', '2023-11-01 17:29:01', '0', 1); -INSERT INTO `sys_menu` VALUES (5003, '查询', 'pay_channel_view', NULL, 5002, NULL, '0', 0, '0', '0', '1', 'admin', '2023-02-27 19:41:44', ' ', NULL, '0', 1); -INSERT INTO `sys_menu` VALUES (5004, '新增', 'pay_channel_add', NULL, 5002, NULL, '0', 0, '0', '0', '1', 'admin', '2023-02-27 19:42:05', ' ', NULL, '0', 1); -INSERT INTO `sys_menu` VALUES (5005, '编辑', 'pay_channel_edit', NULL, 5002, NULL, '0', 0, '0', '0', '1', 'admin', '2023-02-27 19:42:23', ' ', NULL, '0', 1); -INSERT INTO `sys_menu` VALUES (5006, '删除', 'pay_channel_del', NULL, 5002, NULL, '0', 0, '0', '0', '1', 'admin', '2023-02-27 19:42:40', ' ', NULL, '0', 1); -INSERT INTO `sys_menu` VALUES (5007, '导出', 'pay_channel_export', NULL, 5002, NULL, '0', 0, '0', '0', '1', 'admin', '2023-02-27 19:42:57', ' ', NULL, '0', 1); -INSERT INTO `sys_menu` VALUES (5008, '商品订单', NULL, '/biz/pay/order/index', 5000, 'iconfont icon-fuwenbenkuang', '1', 2, '0', '0', '0', 'admin', '2023-02-28 09:56:22', ' ', '2023-11-01 17:29:05', '0', 1); -INSERT INTO `sys_menu` VALUES (5009, '新增', 'pay_order_add', NULL, 5008, NULL, '0', 0, '0', '0', '1', 'admin', '2023-02-28 09:58:25', ' ', NULL, '0', 1); -INSERT INTO `sys_menu` VALUES (5010, '删除', 'pay_order_del', NULL, 5008, NULL, '0', 0, '0', '0', '1', 'admin', '2023-02-28 09:58:40', ' ', NULL, '0', 1); -INSERT INTO `sys_menu` VALUES (5011, '修改', 'pay_order_edit', NULL, 5008, NULL, '0', 0, '0', '0', '1', 'admin', '2023-02-28 09:59:11', ' ', NULL, '0', 1); -INSERT INTO `sys_menu` VALUES (5012, '查找', 'pay_order_view', NULL, 5008, NULL, '0', 0, '0', '0', '1', 'admin', '2023-02-28 09:59:37', ' ', NULL, '0', 1); -INSERT INTO `sys_menu` VALUES (5013, '导出', 'pay_order_export', NULL, 5008, NULL, '0', 0, '0', '0', '1', 'admin', '2023-02-28 09:59:54', ' ', NULL, '0', 1); -INSERT INTO `sys_menu` VALUES (5014, '通知记录', NULL, '/biz/pay/record/index', 5000, 'iconfont icon-fuwenbenkuang', '1', 5, '0', '0', '0', 'admin', '2023-02-28 11:01:37', 'admin', '2023-11-01 17:29:08', '0', 1); -INSERT INTO `sys_menu` VALUES (5015, '新增', 'pay_record_add', NULL, 5014, NULL, '1', 0, '0', '0', '1', 'admin', '2023-02-28 11:04:40', ' ', NULL, '0', 1); -INSERT INTO `sys_menu` VALUES (5016, '修改', 'pay_record_edit', NULL, 5014, NULL, '1', 0, '0', '0', '1', 'admin', '2023-02-28 11:05:00', ' ', NULL, '0', 1); -INSERT INTO `sys_menu` VALUES (5017, '删除', 'pay_record_del', NULL, 5014, NULL, '1', 0, '0', '0', '1', 'admin', '2023-02-28 11:05:15', ' ', NULL, '0', 1); -INSERT INTO `sys_menu` VALUES (5018, '导出', 'pay_record_export', NULL, 5014, NULL, '1', 0, '0', '0', '1', 'admin', '2023-02-28 11:05:41', ' ', NULL, '0', 1); -INSERT INTO `sys_menu` VALUES (5019, '查询', 'pay_record_view', NULL, 5014, NULL, '0', 0, '0', '0', '1', 'admin', '2023-02-28 11:12:53', ' ', NULL, '0', 1); -INSERT INTO `sys_menu` VALUES (5020, '退款订单', NULL, '/biz/pay/refund/index', 5000, 'iconfont icon-fuwenbenkuang', '1', 4, '0', '0', '0', 'admin', '2023-02-28 13:59:04', 'admin', '2023-11-01 17:29:11', '0', 1); -INSERT INTO `sys_menu` VALUES (5021, '查询', 'pay_refund_view', NULL, 5020, NULL, '0', 0, '0', '0', '1', 'admin', '2023-02-28 13:59:31', ' ', NULL, '0', 1); -INSERT INTO `sys_menu` VALUES (5022, '新增', 'pay_refund_add', NULL, 5020, NULL, '0', 0, '0', '0', '1', 'admin', '2023-02-28 13:59:48', ' ', NULL, '0', 1); -INSERT INTO `sys_menu` VALUES (5023, '修改', 'pay_refund_edit', NULL, 5020, NULL, '0', 0, '0', '0', '1', 'admin', '2023-02-28 14:00:05', ' ', NULL, '0', 1); -INSERT INTO `sys_menu` VALUES (5024, '删除', 'pay_refund_del', NULL, 5020, NULL, '0', 0, '0', '0', '1', 'admin', '2023-02-28 14:00:23', ' ', NULL, '0', 1); -INSERT INTO `sys_menu` VALUES (5025, '导出', 'pay_refund_export', NULL, 5020, NULL, '0', 0, '0', '0', '1', 'admin', '2023-02-28 14:00:35', 'admin', '2023-02-28 14:04:15', '0', 1); -INSERT INTO `sys_menu` VALUES (5026, '支付订单', NULL, '/biz/pay/trade/index', 5000, 'iconfont icon-biaodan', '1', 3, '0', '0', '0', 'admin', '2023-02-28 14:44:59', 'admin', '2023-11-01 17:29:16', '0', 1); -INSERT INTO `sys_menu` VALUES (5027, '查询', 'pay_trade_view', NULL, 5026, NULL, '0', 0, '0', '0', '1', 'admin', '2023-02-28 14:45:50', ' ', NULL, '0', 1); -INSERT INTO `sys_menu` VALUES (5028, '新增', 'pay_trade_add', NULL, 5026, NULL, '0', 0, '0', '0', '1', 'admin', '2023-02-28 14:46:08', ' ', NULL, '0', 1); -INSERT INTO `sys_menu` VALUES (5029, '修改', 'pay_trade_edit', NULL, 5026, NULL, '0', 0, '0', '0', '1', 'admin', '2023-02-28 14:46:22', ' ', NULL, '0', 1); -INSERT INTO `sys_menu` VALUES (5030, '删除', 'pay_trade_del', NULL, 5026, NULL, '0', 0, '0', '0', '1', 'admin', '2023-02-28 14:46:36', ' ', NULL, '0', 1); -INSERT INTO `sys_menu` VALUES (5031, '导出', 'pay_trade_export', NULL, 5026, NULL, '0', 0, '0', '0', '1', 'admin', '2023-02-28 14:46:49', ' ', NULL, '0', 1); -INSERT INTO `sys_menu` VALUES (6000, '协同办公', NULL, '/flow', -1, 'ele-Present', '1', 4, '0', '0', '0', 'admin', '2023-03-02 16:36:49', 'admin', '2023-11-01 17:09:28', '0', 1); -INSERT INTO `sys_menu` VALUES (6001, '流程管理', NULL, '/flow/group/index', 6000, 'iconfont icon-gongju', '1', 3, '0', '0', '0', 'admin', '2023-03-02 16:37:55', 'admin', '2023-11-01 17:10:20', '0', 1); -INSERT INTO `sys_menu` VALUES (6002, '创建流程', NULL, '/flow/create/all', 6000, 'fa fa-arrow-circle-right', '0', 2, '0', NULL, '0', '', '2023-07-27 13:14:56', 'admin', '2023-07-27 13:32:32', '0', 1); -INSERT INTO `sys_menu` VALUES (6003, '发起流程', NULL, '/flow/list/index', 6000, 'fa fa-play', '1', 1, '0', '0', '0', 'admin', '2023-03-02 18:18:10', 'admin', '2023-07-27 13:29:00', '0', 1); -INSERT INTO `sys_menu` VALUES (6004, '任务管理', NULL, '/task', 6000, 'fa fa-th', '1', 0, '0', '0', '0', 'admin', '2023-03-02 22:13:29', 'admin', '2023-11-01 17:10:13', '0', 1); -INSERT INTO `sys_menu` VALUES (6005, '代办任务', NULL, '/flow/task/pending', 6004, 'fa fa-flag-checkered', '1', 0, '0', '0', '0', 'admin', '2023-03-02 22:59:35', 'admin', '2023-11-01 17:36:55', '0', 1); -INSERT INTO `sys_menu` VALUES (6006, '我的已办', NULL, '/flow/task/completed', 6004, 'fa fa-hand-o-right', '1', 3, '0', '0', '0', 'admin', '2023-03-02 23:23:13', 'admin', '2023-11-01 17:36:57', '0', 1); -INSERT INTO `sys_menu` VALUES (6007, '我的发起', NULL, '/flow/task/started', 6004, 'fa fa-plane', '1', 1, '0', NULL, '0', '', '2023-07-27 13:14:51', 'admin', '2023-11-01 17:36:59', '0', 1); -INSERT INTO `sys_menu` VALUES (6008, '抄送给我', NULL, '/flow/task/cc', 6004, 'fa fa-arrow-circle-right', '1', 2, '0', NULL, '0', '', '2023-07-27 13:14:56', 'admin', '2023-11-01 17:37:01', '0', 1); -INSERT INTO `sys_menu` VALUES (7000, 'APP管理', NULL, '/app', 9900, 'ele-Cellphone', '1', 2, '0', '0', '0', 'admin', NULL, 'admin', '2023-11-27 14:52:31', '0', 1); -INSERT INTO `sys_menu` VALUES (7100, '客户管理', NULL, '/biz/app/appuser/index', 7000, 'ele-UserFilled', '1', 1, '1', NULL, '0', 'admin', NULL, 'admin', '2023-11-01 17:29:36', '0', 1); -INSERT INTO `sys_menu` VALUES (7101, '新增用户', 'app_appuser_add', NULL, 7100, NULL, '1', 1, '0', NULL, '1', 'admin', NULL, 'admin', '2023-01-29 07:01:00', '0', 1); -INSERT INTO `sys_menu` VALUES (7102, '编辑用户', 'app_appuser_edit', NULL, 7100, NULL, '1', 1, '0', NULL, '1', 'admin', NULL, 'admin', '2023-01-29 07:01:00', '0', 1); -INSERT INTO `sys_menu` VALUES (7103, '删除用户', 'app_appuser_del', NULL, 7100, NULL, '1', 1, '0', NULL, '1', 'admin', NULL, 'admin', '2023-01-29 07:01:00', '0', 1); -INSERT INTO `sys_menu` VALUES (7104, '导出用户', 'app_appuser_export', NULL, 7100, NULL, '1', 1, '0', NULL, '1', 'admin', NULL, 'admin', '2023-01-29 07:01:00', '0', 1); -INSERT INTO `sys_menu` VALUES (7200, 'APP角色', NULL, '/biz/app/approle/index', 7000, 'ele-Stamp', '1', 2, '0', '0', '0', 'admin', NULL, 'admin', '2023-11-01 17:29:39', '0', 1); -INSERT INTO `sys_menu` VALUES (7201, '删除角色', 'app_approle_del', NULL, 7200, NULL, '1', 1, '0', NULL, '1', 'admin', NULL, 'admin', '2023-01-29 07:01:01', '0', 1); -INSERT INTO `sys_menu` VALUES (7202, '编辑角色', 'app_approle_edit', NULL, 7200, NULL, '1', 1, '0', NULL, '1', 'admin', NULL, 'admin', '2023-01-29 07:01:01', '0', 1); -INSERT INTO `sys_menu` VALUES (7203, '新增角色', 'app_approle_add', NULL, 7200, NULL, '1', 1, '0', NULL, '1', 'admin', NULL, 'admin', '2023-01-29 07:01:01', '0', 1); -INSERT INTO `sys_menu` VALUES (7204, '导出角色', 'app_approle_export', NULL, 7200, NULL, '1', 1, '0', NULL, '1', 'admin', NULL, 'admin', '2023-01-29 07:01:01', '0', 1); -INSERT INTO `sys_menu` VALUES (7300, 'APP秘钥', NULL, '/biz/app/appsocial/index', 7000, 'iconfont icon-quanxian', '1', 3, '0', '0', '0', 'admin', NULL, 'admin', '2023-11-01 17:29:42', '0', 1); -INSERT INTO `sys_menu` VALUES (7301, '删除秘钥', 'app_social_details_del', NULL, 7300, NULL, '1', 1, '0', NULL, '1', 'admin', NULL, 'admin', '2023-01-29 07:01:02', '0', 1); -INSERT INTO `sys_menu` VALUES (7302, '修改秘钥', 'app_social_details_edit', NULL, 7300, NULL, '1', 1, '0', NULL, '1', 'admin', NULL, 'admin', '2023-01-29 07:01:02', '0', 1); -INSERT INTO `sys_menu` VALUES (7303, '保存秘钥', 'app_social_details_add', NULL, 7300, NULL, '1', 1, '0', NULL, '1', 'admin', NULL, 'admin', '2023-01-29 07:01:02', '0', 1); -INSERT INTO `sys_menu` VALUES (7400, '文章资讯', '', '/biz/app/appArticle/index', 7000, 'ele-CollectionTag', '1', 4, '0', NULL, '0', '', NULL, 'admin', '2023-11-01 17:29:46', '0', 1); -INSERT INTO `sys_menu` VALUES (7401, '文章资讯表查看', 'app_appArticle_view', NULL, 7400, '1', '1', 0, '0', NULL, '1', ' ', NULL, ' ', NULL, '0', 1); -INSERT INTO `sys_menu` VALUES (7402, '文章资讯表新增', 'app_appArticle_add', NULL, 7400, '1', '1', 1, '0', NULL, '1', ' ', NULL, ' ', NULL, '0', 1); -INSERT INTO `sys_menu` VALUES (7403, '文章资讯表修改', 'app_appArticle_edit', NULL, 7400, '1', '1', 2, '0', NULL, '1', ' ', NULL, ' ', NULL, '0', 1); -INSERT INTO `sys_menu` VALUES (7404, '文章资讯表删除', 'app_appArticle_del', NULL, 7400, '1', '1', 3, '0', NULL, '1', ' ', NULL, ' ', NULL, '0', 1); -INSERT INTO `sys_menu` VALUES (7405, '导入导出', 'app_appArticle_export', NULL, 7400, '1', '1', 3, '0', NULL, '1', ' ', NULL, ' ', NULL, '0', 1); -INSERT INTO `sys_menu` VALUES (7500, '文章分类', '', '/biz/app/appArticleCategory/index', 7000, 'iconfont icon-caidan', '1', 5, '0', NULL, '0', '', NULL, 'admin', '2023-11-01 17:29:49', '0', 1); -INSERT INTO `sys_menu` VALUES (7501, '文章分类表查看', 'app_appArticleCategory_view', NULL, 7500, '1', '1', 0, '0', NULL, '1', ' ', NULL, ' ', NULL, '0', 1); -INSERT INTO `sys_menu` VALUES (7502, '文章分类表新增', 'app_appArticleCategory_add', NULL, 7500, '1', '1', 1, '0', NULL, '1', ' ', NULL, ' ', NULL, '0', 1); -INSERT INTO `sys_menu` VALUES (7503, '文章分类表修改', 'app_appArticleCategory_edit', NULL, 7500, '1', '1', 2, '0', NULL, '1', ' ', NULL, ' ', NULL, '0', 1); -INSERT INTO `sys_menu` VALUES (7504, '文章分类表删除', 'app_appArticleCategory_del', NULL, 7500, '1', '1', 3, '0', NULL, '1', ' ', NULL, ' ', NULL, '0', 1); -INSERT INTO `sys_menu` VALUES (7505, '导入导出', 'app_appArticleCategory_export', NULL, 7500, '1', '1', 3, '0', NULL, '1', ' ', NULL, ' ', NULL, '0', 1); -INSERT INTO `sys_menu` VALUES (7600, '文章发布', NULL, '/biz/app/appArticle/form', 7000, 'iconfont icon-shuaxin', '0', 4, '0', '0', '0', 'admin', '2023-06-07 17:05:32', 'admin', '2023-11-01 17:29:52', '0', 1); -INSERT INTO `sys_menu` VALUES (7700, '界面设置', '', '/biz/app/page/index', 7000, 'iconfont icon-diannao1', '1', 8, '0', NULL, '0', '', NULL, 'admin', '2023-11-01 17:29:55', '0', 1); -INSERT INTO `sys_menu` VALUES (7701, '底部导航', NULL, '/biz/app/tabbar/index', 7000, 'iconfont icon-neiqianshujuchucun', '1', 9, '0', '0', '0', 'admin', '2023-06-14 14:36:08', 'admin', '2023-11-01 17:29:59', '0', 1); -INSERT INTO `sys_menu` VALUES (9000, '开发平台', NULL, '/gen', -1, 'iconfont icon-shuxingtu', '1', 9, '0', '0', '0', '', '2019-08-12 09:35:16', 'admin', '2023-02-23 20:02:24', '0', 1); -INSERT INTO `sys_menu` VALUES (9005, '数据源管理', NULL, '/gen/datasource/index', 9000, 'ele-Coin', '1', 0, '0', NULL, '0', '', '2019-08-12 09:42:11', 'admin', '2023-02-16 15:31:37', '0', 1); -INSERT INTO `sys_menu` VALUES (9006, '表单设计', NULL, '/gen/design/index', 9000, 'iconfont icon-AIshiyanshi', '0', 2, '0', '0', '0', '', '2019-08-16 10:08:56', 'admin', '2023-02-23 14:06:50', '0', 1); -INSERT INTO `sys_menu` VALUES (9007, '生成页面', NULL, '/gen/gener/index', 9000, 'iconfont icon-tongzhi4', '0', 1, '0', '0', '0', 'admin', '2023-02-20 09:58:23', 'admin', '2023-02-20 14:41:43', '0', 1); -INSERT INTO `sys_menu` VALUES (9050, '元数据管理', NULL, '/gen/metadata', 9000, 'iconfont icon--chaifenhang', '1', 9, '0', '0', '0', '', '2018-07-27 01:13:21', 'admin', '2023-02-23 19:55:10', '0', 1); -INSERT INTO `sys_menu` VALUES (9051, '模板管理', NULL, '/gen/template/index', 9050, 'iconfont icon--chaifenhang', '1', 5, '0', '0', '0', 'admin', '2023-02-21 11:22:54', 'admin', '2023-02-23 19:56:03', '0', 1); -INSERT INTO `sys_menu` VALUES (9052, '查询', 'codegen_template_view', NULL, 9051, NULL, '0', 0, '0', '0', '1', 'admin', '2023-02-21 12:33:03', 'admin', '2023-02-21 13:50:54', '0', 1); -INSERT INTO `sys_menu` VALUES (9053, '增加', 'codegen_template_add', NULL, 9051, NULL, '1', 0, '0', '0', '1', 'admin', '2023-02-21 13:34:10', 'admin', '2023-02-21 13:39:49', '0', 1); -INSERT INTO `sys_menu` VALUES (9054, '新增', 'codegen_template_add', NULL, 9051, NULL, '0', 1, '0', '0', '1', 'admin', '2023-02-21 13:51:32', ' ', NULL, '0', 1); -INSERT INTO `sys_menu` VALUES (9055, '导出', 'codegen_template_export', NULL, 9051, NULL, '0', 2, '0', '0', '1', 'admin', '2023-02-21 13:51:58', ' ', NULL, '0', 1); -INSERT INTO `sys_menu` VALUES (9056, '删除', 'codegen_template_del', NULL, 9051, NULL, '0', 3, '0', '0', '1', 'admin', '2023-02-21 13:52:16', ' ', NULL, '0', 1); -INSERT INTO `sys_menu` VALUES (9057, '编辑', 'codegen_template_edit', NULL, 9051, NULL, '0', 4, '0', '0', '1', 'admin', '2023-02-21 13:52:58', ' ', NULL, '0', 1); -INSERT INTO `sys_menu` VALUES (9059, '模板分组', NULL, '/gen/group/index', 9050, 'iconfont icon-shuxingtu', '1', 6, '0', '0', '0', 'admin', '2023-02-21 15:06:50', 'admin', '2023-02-23 19:55:25', '0', 1); -INSERT INTO `sys_menu` VALUES (9060, '查询', 'codegen_group_view', NULL, 9059, NULL, '0', 0, '0', '0', '1', 'admin', '2023-02-21 15:08:07', ' ', NULL, '0', 1); -INSERT INTO `sys_menu` VALUES (9061, '新增', 'codegen_group_add', NULL, 9059, NULL, '0', 0, '0', '0', '1', 'admin', '2023-02-21 15:08:28', ' ', NULL, '0', 1); -INSERT INTO `sys_menu` VALUES (9062, '修改', 'codegen_group_edit', NULL, 9059, NULL, '0', 0, '0', '0', '1', 'admin', '2023-02-21 15:08:43', ' ', NULL, '0', 1); -INSERT INTO `sys_menu` VALUES (9063, '删除', 'codegen_group_del', NULL, 9059, NULL, '0', 0, '0', '0', '1', 'admin', '2023-02-21 15:09:02', ' ', NULL, '0', 1); -INSERT INTO `sys_menu` VALUES (9064, '导出', 'codegen_group_export', NULL, 9059, NULL, '0', 0, '0', '0', '1', 'admin', '2023-02-21 15:09:22', ' ', NULL, '0', 1); -INSERT INTO `sys_menu` VALUES (9065, '字段管理', NULL, '/gen/field-type/index', 9050, 'iconfont icon-fuwenben', '1', 0, '0', '0', '0', 'admin', '2023-02-23 20:05:09', 'admin', '2023-02-23 20:05:45', '0', 1); -INSERT INTO `sys_menu` VALUES (9900, '业务平台', NULL, '/biz', -1, 'iconfont icon-caidan', '1', 2, '0', '0', '0', 'admin', '2023-11-01 17:07:23', 'admin', '2023-11-27 14:51:31', '0', 1); -INSERT INTO `sys_menu` VALUES (9910, '基础工具', NULL, '/tools', -1, 'iconfont icon-gongju', '1', 3, '0', '0', '0', 'admin', '2023-11-01 17:12:02', ' ', '2023-11-27 14:53:13', '0', 1); -INSERT INTO `sys_menu` VALUES (9911, '路由管理', NULL, '/tools/route/index', 9910, 'iconfont icon-crew_feature', '1', 3, '0', '0', '0', 'admin', '2023-11-01 17:13:09', 'admin', '2023-11-27 14:53:33', '0', 1); -INSERT INTO `sys_menu` VALUES (9912, '大屏看板', NULL, '/tools/data/report', 9910, 'iconfont icon-shuju', '1', 5, '0', '0', '0', 'admin', '2023-11-01 17:19:38', 'admin', '2023-11-27 14:53:38', '0', 1); -INSERT INTO `sys_menu` VALUES (9913, '数据报表', NULL, '/tools/data/jimu', 9910, 'iconfont icon-ico_shuju', '1', 6, '0', '0', '0', 'admin', '2023-11-01 17:20:06', 'admin', '2023-11-27 14:53:43', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (1000, '权限管理', NULL, '/system', NULL, 2000, 'iconfont icon-icon-', '1', 0, '0', '0', '0', '', '2018-09-28 08:29:53', 'admin', '2023-11-01 16:39:55', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (1100, '用户管理', NULL, '/admin/system/user/index', NULL, 1000, 'ele-User', '1', 1, '0', '0', '0', '', '2017-11-02 22:24:37', 'admin', '2023-11-01 16:40:44', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (1101, '用户新增', 'sys_user_add', NULL, NULL, 1100, NULL, '1', 1, '0', NULL, '1', ' ', '2017-11-08 09:52:09', ' ', '2021-05-25 03:12:55', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (1102, '用户修改', 'sys_user_edit', NULL, NULL, 1100, NULL, '1', 1, '0', NULL, '1', ' ', '2017-11-08 09:52:48', ' ', '2021-05-25 03:12:55', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (1103, '用户删除', 'sys_user_del', NULL, NULL, 1100, NULL, '1', 1, '0', NULL, '1', ' ', '2017-11-08 09:54:01', ' ', '2021-05-25 03:12:55', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (1104, '导入导出', 'sys_user_export', NULL, NULL, 1100, NULL, '1', 1, '0', NULL, '1', ' ', '2017-11-08 09:54:01', ' ', '2021-05-25 03:12:55', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (1200, '菜单管理', NULL, '/admin/system/menu/index', NULL, 1000, 'iconfont icon-caidan', '1', 2, '0', '0', '0', '', '2017-11-08 09:57:27', 'admin', '2023-11-01 16:40:39', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (1201, '菜单新增', 'sys_menu_add', NULL, NULL, 1200, NULL, '1', 1, '0', NULL, '1', ' ', '2017-11-08 10:15:53', ' ', '2021-05-25 03:12:55', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (1202, '菜单修改', 'sys_menu_edit', NULL, NULL, 1200, NULL, '1', 1, '0', NULL, '1', ' ', '2017-11-08 10:16:23', ' ', '2021-05-25 03:12:55', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (1203, '菜单删除', 'sys_menu_del', NULL, NULL, 1200, NULL, '1', 1, '0', NULL, '1', ' ', '2017-11-08 10:16:43', ' ', '2021-05-25 03:12:55', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (1300, '角色管理', NULL, '/admin/system/role/index', NULL, 1000, 'iconfont icon-gerenzhongxin', '1', 3, '0', NULL, '0', '', '2017-11-08 10:13:37', 'admin', '2023-11-01 16:40:35', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (1301, '角色新增', 'sys_role_add', NULL, NULL, 1300, NULL, '1', 1, '0', NULL, '1', ' ', '2017-11-08 10:14:18', ' ', '2021-05-25 03:12:55', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (1302, '角色修改', 'sys_role_edit', NULL, NULL, 1300, NULL, '1', 1, '0', NULL, '1', ' ', '2017-11-08 10:14:41', ' ', '2021-05-25 03:12:55', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (1303, '角色删除', 'sys_role_del', NULL, NULL, 1300, NULL, '1', 1, '0', NULL, '1', ' ', '2017-11-08 10:14:59', ' ', '2021-05-25 03:12:55', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (1304, '分配权限', 'sys_role_perm', NULL, NULL, 1300, NULL, '1', 1, '0', NULL, '1', ' ', '2018-04-20 07:22:55', ' ', '2021-05-25 03:12:55', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (1305, '角色导入导出', 'sys_role_export', NULL, NULL, 1300, NULL, '1', 4, '0', NULL, '1', ' ', '2022-03-26 15:54:34', ' ', NULL, '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (1400, '部门管理', NULL, '/admin/system/dept/index', NULL, 1000, 'iconfont icon-zidingyibuju', '1', 4, '0', NULL, '0', '', '2018-01-20 13:17:19', 'admin', '2023-11-01 16:40:30', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (1401, '部门新增', 'sys_dept_add', NULL, NULL, 1400, NULL, '1', 1, '0', NULL, '1', ' ', '2018-01-20 14:56:16', ' ', '2021-05-25 03:12:55', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (1402, '部门修改', 'sys_dept_edit', NULL, NULL, 1400, NULL, '1', 1, '0', NULL, '1', ' ', '2018-01-20 14:56:59', ' ', '2021-05-25 03:12:55', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (1403, '部门删除', 'sys_dept_del', NULL, NULL, 1400, NULL, '1', 1, '0', NULL, '1', ' ', '2018-01-20 14:57:28', ' ', '2021-05-25 03:12:55', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (1404, '开放互联', 'sys_connect_sync', NULL, NULL, 1400, NULL, '1', 1, '0', NULL, '1', ' ', '2018-01-20 14:57:28', ' ', '2021-05-25 03:12:55', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (1500, '租户管理', NULL, '/admin/system/tenant/index', NULL, 1000, 'iconfont icon-shuxingtu', '1', 9, '0', '0', '0', '', '2018-01-20 13:17:19', 'admin', '2023-11-01 16:40:26', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (1501, '租户新增', 'sys_systenant_add', NULL, NULL, 1500, '1', '1', 0, '0', NULL, '1', ' ', '2018-05-15 21:35:18', ' ', '2020-03-24 08:56:52', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (1502, '租户修改', 'sys_systenant_edit', NULL, NULL, 1500, '1', '1', 1, '0', NULL, '1', ' ', '2018-05-15 21:35:18', ' ', '2020-03-24 08:56:53', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (1503, '租户删除', 'sys_systenant_del', NULL, NULL, 1500, '1', '1', 2, '0', NULL, '1', ' ', '2018-05-15 21:35:18', ' ', '2020-03-24 08:56:54', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (1504, '租户套餐', 'sys_systenant_tenantmenu', NULL, NULL, 1500, '1', '1', 1, '0', NULL, '1', 'admin', '2022-12-12 09:01:41', ' ', '2023-01-11 05:52:51', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (1505, '租户套餐删除', 'sys_systenantmenu_del', NULL, NULL, 1500, '1', '1', 1, '0', NULL, '1', 'admin', '2022-12-09 14:04:19', 'admin', '2023-01-11 05:52:51', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (1506, '租户套餐编辑', 'sys_systenantmenu_edit', NULL, NULL, 1500, '1', '1', 1, '0', NULL, '1', 'admin', '2022-12-09 14:04:19', 'admin', '2023-01-11 05:52:51', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (1507, '租户套餐新增', 'sys_systenantmenu_add', NULL, NULL, 1500, '1', '1', 1, '0', NULL, '1', 'admin', '2022-12-09 14:04:19', 'admin', '2022-12-12 09:02:00', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (1508, '租户套餐导出', 'sys_systenant_export', NULL, NULL, 1500, NULL, '1', 0, '0', '0', '1', 'admin', '2023-03-06 16:28:24', ' ', NULL, '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (1600, '岗位管理', NULL, '/admin/system/post/index', NULL, 1000, 'iconfont icon--chaifenhang', '1', 5, '1', '0', '0', '', '2022-03-26 13:04:14', 'admin', '2023-11-01 17:02:55', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (1601, '岗位信息查看', 'sys_post_view', NULL, NULL, 1600, NULL, '1', 0, '0', NULL, '1', ' ', '2022-03-26 13:05:34', ' ', NULL, '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (1602, '岗位信息新增', 'sys_post_add', NULL, NULL, 1600, NULL, '1', 1, '0', NULL, '1', ' ', '2022-03-26 13:06:00', ' ', NULL, '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (1603, '岗位信息修改', 'sys_post_edit', NULL, NULL, 1600, NULL, '1', 2, '0', NULL, '1', ' ', '2022-03-26 13:06:31', ' ', '2022-03-26 13:06:38', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (1604, '岗位信息删除', 'sys_post_del', NULL, NULL, 1600, NULL, '1', 3, '0', NULL, '1', ' ', '2022-03-26 13:06:31', ' ', NULL, '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (1605, '岗位导入导出', 'sys_post_export', NULL, NULL, 1600, NULL, '1', 4, '0', NULL, '1', ' ', '2022-03-26 13:06:31', ' ', '2022-03-26 06:32:02', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (2000, '系统管理', NULL, '/admin', NULL, -1, 'iconfont icon-quanjushezhi_o', '1', 1, '0', NULL, '0', '', '2017-11-07 20:56:00', 'admin', '2023-11-01 16:25:58', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (2001, '日志管理', NULL, '/admin/logs', NULL, 2000, 'ele-Cloudy', '1', 1, '0', '0', '0', 'admin', '2023-03-02 12:26:42', 'admin', '2023-11-01 16:22:08', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (2100, '操作日志', NULL, '/admin/log/index', NULL, 2001, 'iconfont icon-jinridaiban', '1', 2, '0', '0', '0', '', '2017-11-20 14:06:22', 'admin', '2023-03-02 12:28:57', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (2101, '日志删除', 'sys_log_del', NULL, NULL, 2100, NULL, '1', 1, '0', NULL, '1', ' ', '2017-11-20 20:37:37', ' ', '2021-05-25 03:12:55', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (2102, '导入导出', 'sys_log_export', NULL, NULL, 2100, NULL, '1', 1, '0', NULL, '1', ' ', '2017-11-08 09:54:01', ' ', '2021-05-25 03:12:55', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (2103, '审计日志', NULL, '/admin/audit/index', NULL, 2001, 'iconfont icon-biaodan', '1', 1, '0', '0', '0', '', NULL, 'admin', '2023-03-02 12:28:47', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (2104, '审计记录表删除', 'sys_audit_del', NULL, NULL, 2103, '1', '1', 3, '0', NULL, '1', '', NULL, 'admin', '2023-02-28 20:23:43', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (2105, '导入导出', 'sys_audit_export', NULL, NULL, 2103, '1', '1', 3, '0', NULL, '1', '', NULL, 'admin', '2023-02-28 20:23:51', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (2200, '字典管理', NULL, '/admin/dict/index', NULL, 2000, 'iconfont icon-zhongduancanshuchaxun', '1', 6, '0', NULL, '0', '', '2017-11-29 11:30:52', 'admin', '2023-02-16 15:24:29', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (2201, '字典删除', 'sys_dict_del', NULL, NULL, 2200, NULL, '1', 1, '0', NULL, '1', ' ', '2017-11-29 11:30:11', ' ', '2021-05-25 03:12:55', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (2202, '字典新增', 'sys_dict_add', NULL, NULL, 2200, NULL, '1', 1, '0', NULL, '1', ' ', '2018-05-11 22:34:55', ' ', '2021-05-25 03:12:55', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (2203, '字典修改', 'sys_dict_edit', NULL, NULL, 2200, NULL, '1', 1, '0', NULL, '1', ' ', '2018-05-11 22:36:03', ' ', '2021-05-25 03:12:55', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (2210, '参数管理', NULL, '/admin/param/index', NULL, 2000, 'iconfont icon-wenducanshu-05', '1', 7, '1', NULL, '0', '', '2019-04-29 22:16:50', 'admin', '2023-02-16 15:24:51', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (2211, '参数新增', 'sys_syspublicparam_add', NULL, NULL, 2210, NULL, '1', 1, '0', NULL, '1', ' ', '2019-04-29 22:17:36', ' ', '2020-03-24 08:57:11', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (2212, '参数删除', 'sys_syspublicparam_del', NULL, NULL, 2210, NULL, '1', 1, '0', NULL, '1', ' ', '2019-04-29 22:17:55', ' ', '2020-03-24 08:57:12', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (2213, '参数编辑', 'sys_syspublicparam_edit', NULL, NULL, 2210, NULL, '1', 1, '0', NULL, '1', ' ', '2019-04-29 22:18:14', ' ', '2020-03-24 08:57:13', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (2300, '代码生成', NULL, '/gen/table/index', NULL, 9000, 'iconfont icon-zhongduancanshu', '1', 2, '0', '0', '0', '', '2018-01-20 13:17:19', 'admin', '2023-02-20 13:54:35', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (2400, '终端管理', NULL, '/admin/client/index', NULL, 2000, 'iconfont icon-gongju', '1', 9, '1', NULL, '0', '', '2018-01-20 13:17:19', 'admin', '2023-02-16 15:25:28', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (2401, '客户端新增', 'sys_client_add', NULL, NULL, 2400, '1', '1', 1, '0', NULL, '1', ' ', '2018-05-15 21:35:18', ' ', '2021-05-25 03:12:55', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (2402, '客户端修改', 'sys_client_edit', NULL, NULL, 2400, NULL, '1', 1, '0', NULL, '1', ' ', '2018-05-15 21:37:06', ' ', '2021-05-25 03:12:55', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (2403, '客户端删除', 'sys_client_del', NULL, NULL, 2400, NULL, '1', 1, '0', NULL, '1', ' ', '2018-05-15 21:39:16', ' ', '2021-05-25 03:12:55', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (2500, '密钥管理', NULL, '/admin/social/index', NULL, 2000, 'iconfont icon-quanxian', '1', 10, '0', NULL, '0', '', '2018-01-20 13:17:19', 'admin', '2023-02-16 15:26:16', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (2501, '密钥新增', 'sys_social_details_add', NULL, NULL, 2500, '1', '1', 0, '0', NULL, '1', ' ', '2018-05-15 21:35:18', ' ', '2020-03-24 08:57:19', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (2502, '密钥修改', 'sys_social_details_edit', NULL, NULL, 2500, '1', '1', 1, '0', NULL, '1', ' ', '2018-05-15 21:35:18', ' ', '2020-03-24 08:57:19', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (2503, '密钥删除', 'sys_social_details_del', NULL, NULL, 2500, '1', '1', 2, '0', NULL, '1', ' ', '2018-05-15 21:35:18', ' ', '2020-03-24 08:57:23', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (2600, '令牌管理', NULL, '/admin/token/index', NULL, 2000, 'ele-Key', '1', 11, '0', NULL, '0', '', '2018-09-04 05:58:41', 'admin', '2023-02-16 15:28:28', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (2601, '令牌删除', 'sys_token_del', NULL, NULL, 2600, NULL, '1', 1, '0', NULL, '1', ' ', '2018-09-04 05:59:50', ' ', '2020-03-24 08:57:24', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (2800, 'Quartz管理', NULL, '/tools/job-manage/index', NULL, 9910, 'ele-AlarmClock', '1', 4, '0', NULL, '0', '', '2018-01-20 13:17:19', 'admin', '2023-11-27 14:52:53', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (2810, '任务新增', 'job_sys_job_add', NULL, NULL, 2800, '1', '1', 0, '0', NULL, '1', ' ', '2018-05-15 21:35:18', ' ', '2020-03-24 08:57:26', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (2820, '任务修改', 'job_sys_job_edit', NULL, NULL, 2800, '1', '1', 0, '0', NULL, '1', ' ', '2018-05-15 21:35:18', ' ', '2020-03-24 08:57:27', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (2830, '任务删除', 'job_sys_job_del', NULL, NULL, 2800, '1', '1', 0, '0', NULL, '1', ' ', '2018-05-15 21:35:18', ' ', '2020-03-24 08:57:28', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (2840, '任务暂停', 'job_sys_job_shutdown_job', NULL, NULL, 2800, '1', '1', 0, '0', NULL, '1', ' ', '2018-05-15 21:35:18', ' ', '2020-03-24 08:57:28', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (2850, '任务开始', 'job_sys_job_start_job', NULL, NULL, 2800, '1', '1', 0, '0', NULL, '1', ' ', '2018-05-15 21:35:18', ' ', '2020-03-24 08:57:29', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (2860, '任务刷新', 'job_sys_job_refresh_job', NULL, NULL, 2800, '1', '1', 0, '0', NULL, '1', ' ', '2018-05-15 21:35:18', ' ', '2020-03-24 08:57:30', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (2870, '执行任务', 'job_sys_job_run_job', NULL, NULL, 2800, '1', '1', 0, '0', NULL, '1', ' ', '2019-08-08 15:35:18', ' ', '2020-03-24 08:57:31', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (2871, '导出', 'job_sys_job_export', NULL, NULL, 2800, NULL, '1', 0, '0', '0', '1', 'admin', '2023-03-06 15:26:13', ' ', NULL, '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (2900, '国际化管理', NULL, '/admin/i18n/index', NULL, 2000, 'iconfont icon-zhongyingzhuanhuan', '1', 8, '0', NULL, '0', '', NULL, 'admin', '2023-02-16 15:25:18', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (2901, '系统表-国际化查看', 'sys_i18n_view', NULL, NULL, 2900, '1', '1', 0, '0', NULL, '1', ' ', NULL, ' ', NULL, '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (2902, '系统表-国际化新增', 'sys_i18n_add', NULL, NULL, 2900, '1', '1', 1, '0', NULL, '1', ' ', NULL, ' ', NULL, '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (2903, '系统表-国际化修改', 'sys_i18n_edit', NULL, NULL, 2900, '1', '1', 2, '0', NULL, '1', ' ', NULL, ' ', NULL, '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (2904, '系统表-国际化删除', 'sys_i18n_del', NULL, NULL, 2900, '1', '1', 3, '0', NULL, '1', ' ', NULL, ' ', NULL, '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (2905, '导入导出', 'sys_i18n_export', NULL, NULL, 2900, '1', '1', 3, '0', NULL, '1', ' ', NULL, ' ', NULL, '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (2906, '文件管理', NULL, '/admin/file/index', NULL, 2000, 'ele-Files', '1', 6, '0', NULL, '0', '', '2019-06-25 12:44:46', 'admin', '2023-02-16 15:24:42', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (2907, '删除文件', 'sys_file_del', NULL, NULL, 2906, NULL, '1', 1, '0', NULL, '1', ' ', '2019-06-25 13:41:41', ' ', '2020-03-24 08:58:42', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (2910, '行政区划', '', '/admin/sysArea/index', NULL, 2000, 'iconfont icon-neiqianshujuchucun', '1', 99, '0', NULL, '0', '', NULL, 'admin', '2024-02-16 22:11:03', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (2911, '行政区划表查看', 'sys_sysArea_view', NULL, NULL, 2910, '1', '1', 0, '0', NULL, '1', ' ', NULL, ' ', '2024-02-17 14:31:09', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (2912, '行政区划表新增', 'sys_sysArea_add', NULL, NULL, 2910, '1', '1', 1, '0', NULL, '1', ' ', NULL, ' ', '2024-02-17 14:31:16', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (2913, '行政区划表删除', 'sys_sysArea_del', NULL, NULL, 2910, '1', '1', 3, '0', NULL, '1', ' ', NULL, ' ', '2024-02-17 14:31:21', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (2914, '导入导出', 'sys_sysArea_export', NULL, NULL, 2910, '1', '1', 3, '0', NULL, '1', ' ', NULL, ' ', '2024-02-17 14:31:26', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (2915, '行政区划表修改', 'sys_sysArea_edit', NULL, NULL, 2910, '1', '1', 2, '0', NULL, '1', ' ', NULL, ' ', '2024-02-17 14:31:31', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (3000, '公众号平台', NULL, '/mp', NULL, 9900, 'iconfont icon-putong', '1', 3, '0', '0', '0', 'admin', '2023-02-24 10:40:44', 'admin', '2023-11-27 14:52:28', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (3001, '账号管理', NULL, '/biz/mp/wx-account/index', NULL, 3000, 'iconfont icon-putong', '1', 0, '0', '0', '0', 'admin', '2023-02-24 10:43:03', ' ', '2023-11-01 17:28:07', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (3002, '菜单设置', NULL, '/biz/mp/wx-menu/index', NULL, 3000, 'iconfont icon--chaifenlie', '1', 1, '0', '0', '0', 'admin', '2023-02-24 11:16:32', 'admin', '2023-11-01 17:28:11', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (3003, '删除', 'mp_wxaccount_del', NULL, NULL, 3001, NULL, '0', 0, '0', '0', '1', 'admin', '2023-02-24 13:12:53', ' ', NULL, '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (3004, '新增', 'mp_wxaccount_add', NULL, NULL, 3001, NULL, '0', 0, '0', '0', '1', 'admin', '2023-02-24 13:13:04', ' ', NULL, '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (3005, '编辑', 'mp_wxaccount_edit', NULL, NULL, 3001, NULL, '0', 0, '0', '0', '1', 'admin', '2023-02-24 13:13:15', ' ', NULL, '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (3006, '粉丝管理', NULL, '/biz/mp/wx-account-fans/index', NULL, 3000, 'iconfont icon-tongzhi3', '1', 2, '0', '0', '0', 'admin', '2023-02-24 13:28:24', 'admin', '2023-11-01 17:28:15', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (3007, '同步粉丝', 'mp_wxaccountfans_sync', NULL, NULL, 3006, NULL, '0', 0, '0', '0', '1', 'admin', '2023-02-24 14:03:03', ' ', NULL, '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (3008, '消息管理', NULL, '/biz/mp/wx-fans-msg/index', NULL, 3000, 'iconfont icon-tongzhi3', '1', 6, '0', '0', '0', 'admin', '2023-02-24 15:24:35', 'admin', '2023-11-01 17:28:21', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (3009, '修改微信消息', 'mp_wxmsg_edit', NULL, NULL, 3008, NULL, '1', 0, '0', '0', '1', 'admin', '2023-02-24 15:41:55', 'admin', '2023-11-01 17:28:28', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (3010, '标签管理', NULL, '/biz/mp/wx-account-tag/index', NULL, 3000, 'iconfont icon-zidingyibuju', '1', 3, '0', '0', '0', 'admin', '2023-03-03 09:49:07', 'admin', '2023-11-01 17:28:32', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (3011, '新增标签', 'mp_wx_account_tag_add', NULL, NULL, 3010, NULL, '1', 0, '0', '0', '1', 'admin', '2023-03-03 09:49:26', 'admin', '2023-03-11 16:29:44', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (3012, '编辑标签', 'mp_wx_account_tag_edit', NULL, NULL, 3010, NULL, '1', 0, '0', '0', '1', 'admin', '2023-03-03 09:49:35', 'admin', '2023-03-11 16:29:50', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (3013, '标签删除', 'mp_wx_account_tag_del', NULL, NULL, 3010, NULL, '1', 0, '0', '0', '1', 'admin', '2023-03-03 09:49:45', 'admin', '2023-03-11 16:29:53', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (3014, '同步标签', 'mp_wx_account_tag_sync', NULL, NULL, 3010, NULL, '1', 0, '0', '0', '1', 'admin', '2023-03-03 09:49:55', 'admin', '2023-03-11 16:29:56', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (3015, '素材管理', NULL, '/biz/mp/wx-material/index', NULL, 3000, 'iconfont icon-tongzhi3', '1', 5, '0', '0', '0', 'admin', '2023-02-27 14:13:47', 'admin', '2023-11-01 17:28:35', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (3016, '素材维护', 'mp_wxmaterial_add', NULL, NULL, 3015, NULL, '0', 0, '0', '0', '1', 'admin', '2023-02-27 14:14:07', ' ', NULL, '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (3017, '素材删除', 'mp_wxmaterial_del', NULL, NULL, 3015, NULL, '0', 0, '0', '0', '1', 'admin', '2023-02-27 14:14:18', ' ', NULL, '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (3018, '自动回复', NULL, '/biz/mp/wx-auto-reply/index', NULL, 3000, 'iconfont icon-putong', '1', 4, '0', '0', '0', 'admin', '2023-03-01 10:56:10', 'admin', '2023-11-01 17:28:40', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (3019, '新增回复', 'mp_wxautoreply_add', NULL, NULL, 3018, NULL, '0', 0, '0', '0', '1', 'admin', '2023-03-01 10:56:28', ' ', NULL, '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (3020, '编辑回复', 'mp_wxautoreply_edit', NULL, NULL, 3018, NULL, '0', 0, '0', '0', '1', 'admin', '2023-03-01 10:56:42', ' ', NULL, '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (3021, '删除回复', 'mp_wxautoreply_del', NULL, NULL, 3018, NULL, '0', 0, '0', '0', '1', 'admin', '2023-03-01 10:56:53', ' ', NULL, '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (3022, '运营数据', NULL, '/biz/mp/wx-statistics/index', NULL, 3000, 'iconfont icon-shuxing', '1', 8, '0', '0', '0', 'admin', '2023-03-01 11:15:58', 'admin', '2023-11-01 17:28:54', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (3023, '新增消息', 'mp_wxmsg_add', NULL, NULL, 3008, NULL, '0', 0, '0', '0', '1', 'admin', '2023-03-01 17:12:02', ' ', NULL, '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (3024, '新增粉丝', 'mp_wxaccountfans_add', 'mp_wxaccountfans_add', NULL, 3006, NULL, '0', 0, '0', '0', '1', 'admin', '2023-03-02 10:57:41', ' ', NULL, '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (3025, '粉丝编辑', 'mp_wxaccountfans_edit', 'mp_wxaccountfans_add', NULL, 3006, NULL, '0', 0, '0', '0', '1', 'admin', '2023-03-02 10:57:52', ' ', NULL, '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (3026, '粉丝删除', 'mp_wxaccountfans_del', 'mp_wxaccountfans_add', NULL, 3006, NULL, '0', 0, '0', '0', '1', 'admin', '2023-03-02 10:58:02', ' ', NULL, '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (3027, '新增菜单', 'mp_wxmenu_add', NULL, NULL, 3002, NULL, '0', 0, '0', '0', '1', 'admin', '2023-02-27 20:54:34', ' ', NULL, '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (3028, '发布菜单', 'mp_wxmenu_push', NULL, NULL, 3002, NULL, '0', 0, '0', '0', '1', 'admin', '2023-02-27 20:54:48', ' ', NULL, '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (3029, '删除菜单', 'mp_wxmenu_del', NULL, NULL, 3002, NULL, '0', 0, '0', '0', '1', 'admin', '2023-02-27 20:54:57', ' ', NULL, '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (4000, '系统监控', NULL, '/daemon', NULL, -1, 'iconfont icon-shuju', '1', 3, '0', '0', '0', 'admin', '2023-02-06 20:20:47', 'admin', '2023-11-01 17:12:31', '1', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (4001, '文档扩展', NULL, 'http://pigx-gateway:9999/admin/doc.html', NULL, 9910, 'iconfont icon-biaodan', '1', 2, '0', '1', '0', '', '2018-06-26 10:50:32', 'admin', '2023-11-27 14:52:54', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (4002, '缓存监控', NULL, '/tools/data/cache', NULL, 9910, 'iconfont icon-shuju', '1', 1, '0', '0', '0', 'admin', '2023-05-29 15:12:59', 'admin', '2023-11-27 14:52:56', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (4010, '站内信管理', '', '/tools/message/index', NULL, 9910, 'iconfont icon-zhongduancanshuchaxun', '1', 7, '0', NULL, '0', '', NULL, 'admin', '2023-11-27 14:52:57', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (4011, '站内信息查看', 'sys_message_view', NULL, NULL, 4010, '1', '1', 0, '0', NULL, '1', '', NULL, 'admin', '2023-10-25 14:51:54', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (4012, '站内信息新增', 'sys_message_add', NULL, NULL, 4010, '1', '1', 1, '0', NULL, '1', '', NULL, 'admin', '2023-10-25 14:52:00', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (4013, '站内信息修改', 'sys_message_edit', NULL, NULL, 4010, '1', '1', 2, '0', NULL, '1', '', NULL, 'admin', '2023-10-25 14:52:04', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (4014, '站内信息删除', 'sys_message_del', NULL, NULL, 4010, '1', '1', 3, '0', NULL, '1', '', NULL, 'admin', '2023-10-25 14:52:09', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (5000, '支付系统', NULL, '/pay', NULL, 9900, 'iconfont icon-neiqianshujuchucun', '1', 1, '0', '0', '0', 'admin', '2023-02-27 10:57:14', 'admin', '2023-11-27 14:52:11', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (5001, '收银台', NULL, '/biz/pay/cd/index', NULL, 5000, 'iconfont icon-diqiu1', '1', 0, '0', '0', '0', 'admin', '2023-02-27 10:58:13', 'admin', '2023-11-01 17:28:57', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (5002, '支付渠道', NULL, '/biz/pay/channel/index', NULL, 5000, 'iconfont icon-crew_feature', '1', 1, '0', '0', '0', 'admin', '2023-02-27 19:36:55', 'admin', '2023-11-01 17:29:01', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (5003, '查询', 'pay_channel_view', NULL, NULL, 5002, NULL, '0', 0, '0', '0', '1', 'admin', '2023-02-27 19:41:44', ' ', NULL, '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (5004, '新增', 'pay_channel_add', NULL, NULL, 5002, NULL, '0', 0, '0', '0', '1', 'admin', '2023-02-27 19:42:05', ' ', NULL, '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (5005, '编辑', 'pay_channel_edit', NULL, NULL, 5002, NULL, '0', 0, '0', '0', '1', 'admin', '2023-02-27 19:42:23', ' ', NULL, '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (5006, '删除', 'pay_channel_del', NULL, NULL, 5002, NULL, '0', 0, '0', '0', '1', 'admin', '2023-02-27 19:42:40', ' ', NULL, '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (5007, '导出', 'pay_channel_export', NULL, NULL, 5002, NULL, '0', 0, '0', '0', '1', 'admin', '2023-02-27 19:42:57', ' ', NULL, '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (5008, '商品订单', NULL, '/biz/pay/order/index', NULL, 5000, 'iconfont icon-fuwenbenkuang', '1', 2, '0', '0', '0', 'admin', '2023-02-28 09:56:22', ' ', '2023-11-01 17:29:05', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (5009, '新增', 'pay_order_add', NULL, NULL, 5008, NULL, '0', 0, '0', '0', '1', 'admin', '2023-02-28 09:58:25', ' ', NULL, '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (5010, '删除', 'pay_order_del', NULL, NULL, 5008, NULL, '0', 0, '0', '0', '1', 'admin', '2023-02-28 09:58:40', ' ', NULL, '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (5011, '修改', 'pay_order_edit', NULL, NULL, 5008, NULL, '0', 0, '0', '0', '1', 'admin', '2023-02-28 09:59:11', ' ', NULL, '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (5012, '查找', 'pay_order_view', NULL, NULL, 5008, NULL, '0', 0, '0', '0', '1', 'admin', '2023-02-28 09:59:37', ' ', NULL, '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (5013, '导出', 'pay_order_export', NULL, NULL, 5008, NULL, '0', 0, '0', '0', '1', 'admin', '2023-02-28 09:59:54', ' ', NULL, '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (5014, '通知记录', NULL, '/biz/pay/record/index', NULL, 5000, 'iconfont icon-fuwenbenkuang', '1', 5, '0', '0', '0', 'admin', '2023-02-28 11:01:37', 'admin', '2023-11-01 17:29:08', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (5015, '新增', 'pay_record_add', NULL, NULL, 5014, NULL, '1', 0, '0', '0', '1', 'admin', '2023-02-28 11:04:40', ' ', NULL, '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (5016, '修改', 'pay_record_edit', NULL, NULL, 5014, NULL, '1', 0, '0', '0', '1', 'admin', '2023-02-28 11:05:00', ' ', NULL, '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (5017, '删除', 'pay_record_del', NULL, NULL, 5014, NULL, '1', 0, '0', '0', '1', 'admin', '2023-02-28 11:05:15', ' ', NULL, '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (5018, '导出', 'pay_record_export', NULL, NULL, 5014, NULL, '1', 0, '0', '0', '1', 'admin', '2023-02-28 11:05:41', ' ', NULL, '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (5019, '查询', 'pay_record_view', NULL, NULL, 5014, NULL, '0', 0, '0', '0', '1', 'admin', '2023-02-28 11:12:53', ' ', NULL, '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (5020, '退款订单', NULL, '/biz/pay/refund/index', NULL, 5000, 'iconfont icon-fuwenbenkuang', '1', 4, '0', '0', '0', 'admin', '2023-02-28 13:59:04', 'admin', '2023-11-01 17:29:11', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (5021, '查询', 'pay_refund_view', NULL, NULL, 5020, NULL, '0', 0, '0', '0', '1', 'admin', '2023-02-28 13:59:31', ' ', NULL, '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (5022, '新增', 'pay_refund_add', NULL, NULL, 5020, NULL, '0', 0, '0', '0', '1', 'admin', '2023-02-28 13:59:48', ' ', NULL, '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (5023, '修改', 'pay_refund_edit', NULL, NULL, 5020, NULL, '0', 0, '0', '0', '1', 'admin', '2023-02-28 14:00:05', ' ', NULL, '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (5024, '删除', 'pay_refund_del', NULL, NULL, 5020, NULL, '0', 0, '0', '0', '1', 'admin', '2023-02-28 14:00:23', ' ', NULL, '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (5025, '导出', 'pay_refund_export', NULL, NULL, 5020, NULL, '0', 0, '0', '0', '1', 'admin', '2023-02-28 14:00:35', 'admin', '2023-02-28 14:04:15', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (5026, '支付订单', NULL, '/biz/pay/trade/index', NULL, 5000, 'iconfont icon-biaodan', '1', 3, '0', '0', '0', 'admin', '2023-02-28 14:44:59', 'admin', '2023-11-01 17:29:16', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (5027, '查询', 'pay_trade_view', NULL, NULL, 5026, NULL, '0', 0, '0', '0', '1', 'admin', '2023-02-28 14:45:50', ' ', NULL, '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (5028, '新增', 'pay_trade_add', NULL, NULL, 5026, NULL, '0', 0, '0', '0', '1', 'admin', '2023-02-28 14:46:08', ' ', NULL, '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (5029, '修改', 'pay_trade_edit', NULL, NULL, 5026, NULL, '0', 0, '0', '0', '1', 'admin', '2023-02-28 14:46:22', ' ', NULL, '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (5030, '删除', 'pay_trade_del', NULL, NULL, 5026, NULL, '0', 0, '0', '0', '1', 'admin', '2023-02-28 14:46:36', ' ', NULL, '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (5031, '导出', 'pay_trade_export', NULL, NULL, 5026, NULL, '0', 0, '0', '0', '1', 'admin', '2023-02-28 14:46:49', ' ', NULL, '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (6000, '协同办公', NULL, '/flow', NULL, -1, 'ele-Present', '1', 4, '0', '0', '0', 'admin', '2023-03-02 16:36:49', 'admin', '2023-11-01 17:09:28', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (6001, '流程管理', NULL, '/flow/group/index', NULL, 6000, 'iconfont icon-gongju', '1', 3, '0', '0', '0', 'admin', '2023-03-02 16:37:55', 'admin', '2023-11-01 17:10:20', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (6002, '创建流程', NULL, '/flow/create/all', NULL, 6000, 'fa fa-arrow-circle-right', '0', 2, '0', NULL, '0', '', '2023-07-27 13:14:56', 'admin', '2023-07-27 13:32:32', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (6003, '发起流程', NULL, '/flow/list/index', NULL, 6000, 'fa fa-play', '1', 1, '0', '0', '0', 'admin', '2023-03-02 18:18:10', 'admin', '2023-07-27 13:29:00', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (6004, '任务管理', NULL, '/task', NULL, 6000, 'fa fa-th', '1', 0, '0', '0', '0', 'admin', '2023-03-02 22:13:29', 'admin', '2023-11-01 17:10:13', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (6005, '代办任务', NULL, '/flow/task/pending', NULL, 6004, 'fa fa-flag-checkered', '1', 0, '0', '0', '0', 'admin', '2023-03-02 22:59:35', 'admin', '2023-11-01 17:36:55', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (6006, '我的已办', NULL, '/flow/task/completed', NULL, 6004, 'fa fa-hand-o-right', '1', 3, '0', '0', '0', 'admin', '2023-03-02 23:23:13', 'admin', '2023-11-01 17:36:57', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (6007, '我的发起', NULL, '/flow/task/started', NULL, 6004, 'fa fa-plane', '1', 1, '0', NULL, '0', '', '2023-07-27 13:14:51', 'admin', '2023-11-01 17:36:59', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (6008, '抄送给我', NULL, '/flow/task/cc', NULL, 6004, 'fa fa-arrow-circle-right', '1', 2, '0', NULL, '0', '', '2023-07-27 13:14:56', 'admin', '2023-11-01 17:37:01', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (7000, 'APP管理', NULL, '/app', NULL, 9900, 'ele-Cellphone', '1', 2, '0', '0', '0', 'admin', NULL, 'admin', '2023-11-27 14:52:31', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (7100, '客户管理', NULL, '/biz/app/appuser/index', NULL, 7000, 'ele-UserFilled', '1', 1, '1', NULL, '0', 'admin', NULL, 'admin', '2023-11-01 17:29:36', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (7101, '新增用户', 'app_appuser_add', NULL, NULL, 7100, NULL, '1', 1, '0', NULL, '1', 'admin', NULL, 'admin', '2023-01-29 07:01:00', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (7102, '编辑用户', 'app_appuser_edit', NULL, NULL, 7100, NULL, '1', 1, '0', NULL, '1', 'admin', NULL, 'admin', '2023-01-29 07:01:00', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (7103, '删除用户', 'app_appuser_del', NULL, NULL, 7100, NULL, '1', 1, '0', NULL, '1', 'admin', NULL, 'admin', '2023-01-29 07:01:00', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (7104, '导出用户', 'app_appuser_export', NULL, NULL, 7100, NULL, '1', 1, '0', NULL, '1', 'admin', NULL, 'admin', '2023-01-29 07:01:00', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (7200, 'APP角色', NULL, '/biz/app/approle/index', NULL, 7000, 'ele-Stamp', '1', 2, '0', '0', '0', 'admin', NULL, 'admin', '2023-11-01 17:29:39', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (7201, '删除角色', 'app_approle_del', NULL, NULL, 7200, NULL, '1', 1, '0', NULL, '1', 'admin', NULL, 'admin', '2023-01-29 07:01:01', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (7202, '编辑角色', 'app_approle_edit', NULL, NULL, 7200, NULL, '1', 1, '0', NULL, '1', 'admin', NULL, 'admin', '2023-01-29 07:01:01', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (7203, '新增角色', 'app_approle_add', NULL, NULL, 7200, NULL, '1', 1, '0', NULL, '1', 'admin', NULL, 'admin', '2023-01-29 07:01:01', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (7204, '导出角色', 'app_approle_export', NULL, NULL, 7200, NULL, '1', 1, '0', NULL, '1', 'admin', NULL, 'admin', '2023-01-29 07:01:01', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (7300, 'APP秘钥', NULL, '/biz/app/appsocial/index', NULL, 7000, 'iconfont icon-quanxian', '1', 3, '0', '0', '0', 'admin', NULL, 'admin', '2023-11-01 17:29:42', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (7301, '删除秘钥', 'app_social_details_del', NULL, NULL, 7300, NULL, '1', 1, '0', NULL, '1', 'admin', NULL, 'admin', '2023-01-29 07:01:02', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (7302, '修改秘钥', 'app_social_details_edit', NULL, NULL, 7300, NULL, '1', 1, '0', NULL, '1', 'admin', NULL, 'admin', '2023-01-29 07:01:02', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (7303, '保存秘钥', 'app_social_details_add', NULL, NULL, 7300, NULL, '1', 1, '0', NULL, '1', 'admin', NULL, 'admin', '2023-01-29 07:01:02', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (7400, '文章资讯', '', '/biz/app/appArticle/index', NULL, 7000, 'ele-CollectionTag', '1', 4, '0', NULL, '0', '', NULL, 'admin', '2023-11-01 17:29:46', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (7401, '文章资讯表查看', 'app_appArticle_view', NULL, NULL, 7400, '1', '1', 0, '0', NULL, '1', ' ', NULL, ' ', NULL, '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (7402, '文章资讯表新增', 'app_appArticle_add', NULL, NULL, 7400, '1', '1', 1, '0', NULL, '1', ' ', NULL, ' ', NULL, '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (7403, '文章资讯表修改', 'app_appArticle_edit', NULL, NULL, 7400, '1', '1', 2, '0', NULL, '1', ' ', NULL, ' ', NULL, '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (7404, '文章资讯表删除', 'app_appArticle_del', NULL, NULL, 7400, '1', '1', 3, '0', NULL, '1', ' ', NULL, ' ', NULL, '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (7405, '导入导出', 'app_appArticle_export', NULL, NULL, 7400, '1', '1', 3, '0', NULL, '1', ' ', NULL, ' ', NULL, '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (7500, '文章分类', '', '/biz/app/appArticleCategory/index', NULL, 7000, 'iconfont icon-caidan', '1', 5, '0', NULL, '0', '', NULL, 'admin', '2023-11-01 17:29:49', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (7501, '文章分类表查看', 'app_appArticleCategory_view', NULL, NULL, 7500, '1', '1', 0, '0', NULL, '1', ' ', NULL, ' ', NULL, '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (7502, '文章分类表新增', 'app_appArticleCategory_add', NULL, NULL, 7500, '1', '1', 1, '0', NULL, '1', ' ', NULL, ' ', NULL, '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (7503, '文章分类表修改', 'app_appArticleCategory_edit', NULL, NULL, 7500, '1', '1', 2, '0', NULL, '1', ' ', NULL, ' ', NULL, '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (7504, '文章分类表删除', 'app_appArticleCategory_del', NULL, NULL, 7500, '1', '1', 3, '0', NULL, '1', ' ', NULL, ' ', NULL, '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (7505, '导入导出', 'app_appArticleCategory_export', NULL, NULL, 7500, '1', '1', 3, '0', NULL, '1', ' ', NULL, ' ', NULL, '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (7600, '文章发布', NULL, '/biz/app/appArticle/form', NULL, 7000, 'iconfont icon-shuaxin', '0', 4, '0', '0', '0', 'admin', '2023-06-07 17:05:32', 'admin', '2023-11-01 17:29:52', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (7700, '界面设置', '', '/biz/app/page/index', NULL, 7000, 'iconfont icon-diannao1', '1', 8, '0', NULL, '0', '', NULL, 'admin', '2023-11-01 17:29:55', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (7701, '底部导航', NULL, '/biz/app/tabbar/index', NULL, 7000, 'iconfont icon-neiqianshujuchucun', '1', 9, '0', '0', '0', 'admin', '2023-06-14 14:36:08', 'admin', '2023-11-01 17:29:59', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (9000, '开发平台', NULL, '/gen', NULL, -1, 'iconfont icon-shuxingtu', '1', 9, '0', '0', '0', '', '2019-08-12 09:35:16', 'admin', '2023-02-23 20:02:24', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (9005, '数据源管理', NULL, '/gen/datasource/index', NULL, 9000, 'ele-Coin', '1', 0, '0', NULL, '0', '', '2019-08-12 09:42:11', 'admin', '2023-02-16 15:31:37', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (9006, '表单设计', NULL, '/gen/design/index', NULL, 9000, 'iconfont icon-AIshiyanshi', '0', 2, '0', '0', '0', '', '2019-08-16 10:08:56', 'admin', '2023-02-23 14:06:50', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (9007, '生成页面', NULL, '/gen/gener/index', NULL, 9000, 'iconfont icon-tongzhi4', '0', 1, '0', '0', '0', 'admin', '2023-02-20 09:58:23', 'admin', '2023-02-20 14:41:43', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (9050, '元数据管理', NULL, '/gen/metadata', NULL, 9000, 'iconfont icon--chaifenhang', '1', 9, '0', '0', '0', '', '2018-07-27 01:13:21', 'admin', '2023-02-23 19:55:10', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (9051, '模板管理', NULL, '/gen/template/index', NULL, 9050, 'iconfont icon--chaifenhang', '1', 5, '0', '0', '0', 'admin', '2023-02-21 11:22:54', 'admin', '2023-02-23 19:56:03', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (9052, '查询', 'codegen_template_view', NULL, NULL, 9051, NULL, '0', 0, '0', '0', '1', 'admin', '2023-02-21 12:33:03', 'admin', '2023-02-21 13:50:54', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (9053, '增加', 'codegen_template_add', NULL, NULL, 9051, NULL, '1', 0, '0', '0', '1', 'admin', '2023-02-21 13:34:10', 'admin', '2023-02-21 13:39:49', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (9054, '新增', 'codegen_template_add', NULL, NULL, 9051, NULL, '0', 1, '0', '0', '1', 'admin', '2023-02-21 13:51:32', ' ', NULL, '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (9055, '导出', 'codegen_template_export', NULL, NULL, 9051, NULL, '0', 2, '0', '0', '1', 'admin', '2023-02-21 13:51:58', ' ', NULL, '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (9056, '删除', 'codegen_template_del', NULL, NULL, 9051, NULL, '0', 3, '0', '0', '1', 'admin', '2023-02-21 13:52:16', ' ', NULL, '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (9057, '编辑', 'codegen_template_edit', NULL, NULL, 9051, NULL, '0', 4, '0', '0', '1', 'admin', '2023-02-21 13:52:58', ' ', NULL, '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (9059, '模板分组', NULL, '/gen/group/index', NULL, 9050, 'iconfont icon-shuxingtu', '1', 6, '0', '0', '0', 'admin', '2023-02-21 15:06:50', 'admin', '2023-02-23 19:55:25', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (9060, '查询', 'codegen_group_view', NULL, NULL, 9059, NULL, '0', 0, '0', '0', '1', 'admin', '2023-02-21 15:08:07', ' ', NULL, '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (9061, '新增', 'codegen_group_add', NULL, NULL, 9059, NULL, '0', 0, '0', '0', '1', 'admin', '2023-02-21 15:08:28', ' ', NULL, '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (9062, '修改', 'codegen_group_edit', NULL, NULL, 9059, NULL, '0', 0, '0', '0', '1', 'admin', '2023-02-21 15:08:43', ' ', NULL, '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (9063, '删除', 'codegen_group_del', NULL, NULL, 9059, NULL, '0', 0, '0', '0', '1', 'admin', '2023-02-21 15:09:02', ' ', NULL, '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (9064, '导出', 'codegen_group_export', NULL, NULL, 9059, NULL, '0', 0, '0', '0', '1', 'admin', '2023-02-21 15:09:22', ' ', NULL, '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (9070, '数据表管理', NULL, '/gen/create-table/index', NULL, 9000, 'iconfont icon-bolangneng', '1', 1, '0', '0', '0', 'admin', '2024-02-19 11:41:12', ' ', NULL, '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (9071, '新增', 'codegen_table_add', NULL, NULL, 9070, NULL, '0', 0, '0', '0', '1', 'admin', '2023-02-21 15:08:28', ' ', NULL, '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (9065, '字段管理', NULL, '/gen/field-type/index', NULL, 9050, 'iconfont icon-fuwenben', '1', 0, '0', '0', '0', 'admin', '2023-02-23 20:05:09', 'admin', '2023-02-23 20:05:45', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (9900, '业务平台', NULL, '/biz', NULL, -1, 'iconfont icon-caidan', '1', 2, '0', '0', '0', 'admin', '2023-11-01 17:07:23', 'admin', '2023-11-27 14:51:31', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (9910, '基础工具', NULL, '/tools', NULL, -1, 'iconfont icon-gongju', '1', 3, '0', '0', '0', 'admin', '2023-11-01 17:12:02', ' ', '2023-11-27 14:53:13', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (9911, '路由管理', NULL, '/tools/route/index', NULL, 9910, 'iconfont icon-crew_feature', '1', 3, '0', '0', '0', 'admin', '2023-11-01 17:13:09', 'admin', '2023-11-27 14:53:33', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (9912, '大屏看板', NULL, '/tools/data/report', NULL, 9910, 'iconfont icon-shuju', '1', 5, '0', '0', '0', 'admin', '2023-11-01 17:19:38', 'admin', '2023-11-27 14:53:38', '0', 1); +INSERT INTO `sys_menu` (`menu_id`, `name`, `permission`, `path`, `component`, `parent_id`, `icon`, `visible`, `sort_order`, `keep_alive`, `embedded`, `menu_type`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `tenant_id`) VALUES (9913, '数据报表', NULL, '/tools/data/jimu', NULL, 9910, 'iconfont icon-ico_shuju', '1', 6, '0', '0', '0', 'admin', '2023-11-01 17:20:06', 'admin', '2023-11-27 14:53:43', '0', 1); COMMIT; -- ---------------------------- @@ -690,10 +754,7 @@ INSERT INTO `sys_oauth_client_details` VALUES (4, 'mp', NULL, 'mp', 'server', 'p INSERT INTO `sys_oauth_client_details` VALUES (5, 'pig', NULL, 'pig', 'server', 'password,refresh_token,authorization_code,client_credentials,mobile', 'http://localhost:4040/sso1/login,http://localhost:4041/sso1/login,http://localhost:8080/renren-admin/sys/oauth2-sso,http://localhost:8090/sys/oauth2-sso', NULL, 43200, 2592001, '{\"enc_flag\":\"1\",\"captcha_flag\":\"1\",\"online_quantity\":\"1\"}', 'false', '0', '', 'admin', NULL, '2023-03-08 11:32:41', 1); INSERT INTO `sys_oauth_client_details` VALUES (6, 'test', NULL, 'test', 'server', 'password,refresh_token', NULL, NULL, 43200, 2592001, '{ \"enc_flag\":\"1\",\"captcha_flag\":\"0\"}', 'true', '0', ' ', ' ', NULL, NULL, 1); INSERT INTO `sys_oauth_client_details` VALUES (7, 'social', NULL, 'social', 'server', 'password,refresh_token,mobile', NULL, NULL, 43200, 2592001, '{ \"enc_flag\":\"0\",\"captcha_flag\":\"0\"}', 'true', '0', ' ', ' ', NULL, NULL, 1); -INSERT INTO `sys_oauth_client_details` VALUES (1619615858091982850, 'mini', NULL, 'mini', 'server', 'password,mobile', NULL, NULL, 160000000, 160000000, '{\"captcha_flag\":\"0\",\"enc_flag\":\"1\",\"online_quantity\":\"1\"}', 'true', '0', 'admin', 'admin', '2023-01-29 16:38:06', '2023-01-29 17:21:56', 1); -INSERT INTO `sys_oauth_client_details` VALUES (1632018490988806145, 'xzxzccxz', NULL, 'xczcxzxzcxzcxz', 'server', 'password,authorization_code,client_credentials,refresh_token,mobile,implicit', 'https://1237.0.0.1/XX', NULL, 3600, 2592001, '{\"captcha_flag\":\"0\",\"enc_flag\":\"0\",\"online_quantity\":\"1\"}', 'true', '1', 'admin', 'admin', '2023-03-04 22:01:44', '2023-03-09 09:58:12', 1); -INSERT INTO `sys_oauth_client_details` VALUES (1635201365770797057, 'sddsa', NULL, 'sadsad', 'serverxxx', 'password,authorization_code,client_credentials,refresh_token', 'sadds', NULL, 43200, 2592001, '{\"captcha_flag\":\"1\",\"enc_flag\":\"1\",\"online_quantity\":\"1\"}', 'true', '1', 'admin', 'admin', '2023-03-13 16:49:21', '2023-03-13 16:49:31', 1); -INSERT INTO `sys_oauth_client_details` VALUES (1636620644923621377, 'nov', NULL, 'nov', 'server', 'client_credentials', NULL, NULL, 43200, 2592001, '{\"captcha_flag\":\"0\",\"enc_flag\":\"1\",\"online_quantity\":\"1\"}', 'true', '0', 'admin', 'admin', '2023-03-17 14:49:03', '2023-03-17 14:49:46', 1); +INSERT INTO `sys_oauth_client_details` VALUES (8, 'mini', NULL, 'mini', 'server', 'password,mobile', NULL, NULL, 160000000, 160000000, '{\"captcha_flag\":\"0\",\"enc_flag\":\"0\",\"online_quantity\":\"1\"}', 'true', '0', 'admin', 'admin', '2023-01-29 16:38:06', '2023-01-29 17:21:56', 1); COMMIT; -- ---------------------------- @@ -882,6 +943,12 @@ INSERT INTO `sys_role_menu` VALUES (1, 2904); INSERT INTO `sys_role_menu` VALUES (1, 2905); INSERT INTO `sys_role_menu` VALUES (1, 2906); INSERT INTO `sys_role_menu` VALUES (1, 2907); +INSERT INTO `sys_role_menu` VALUES (1, 2910); +INSERT INTO `sys_role_menu` VALUES (1, 2911); +INSERT INTO `sys_role_menu` VALUES (1, 2912); +INSERT INTO `sys_role_menu` VALUES (1, 2913); +INSERT INTO `sys_role_menu` VALUES (1, 2914); +INSERT INTO `sys_role_menu` VALUES (1, 2915); INSERT INTO `sys_role_menu` VALUES (1, 3000); INSERT INTO `sys_role_menu` VALUES (1, 3001); INSERT INTO `sys_role_menu` VALUES (1, 3002); @@ -1010,6 +1077,8 @@ INSERT INTO `sys_role_menu` VALUES (1, 9062); INSERT INTO `sys_role_menu` VALUES (1, 9063); INSERT INTO `sys_role_menu` VALUES (1, 9064); INSERT INTO `sys_role_menu` VALUES (1, 9065); +INSERT INTO `sys_role_menu` VALUES (1, 9070); +INSERT INTO `sys_role_menu` VALUES (1, 9071); INSERT INTO `sys_role_menu` VALUES (1, 9900); INSERT INTO `sys_role_menu` VALUES (1, 9910); INSERT INTO `sys_role_menu` VALUES (1, 9911); @@ -1078,7 +1147,7 @@ CREATE TABLE `sys_schedule` ( `del_flag` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '0' COMMENT '删除标记', `tenant_id` bigint(20) unsigned DEFAULT NULL COMMENT '租户ID', PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='系统日程管理表'; -- ---------------------------- -- Records of sys_schedule diff --git a/db/3pigxx_flow.sql b/db/3pigxx_flow.sql index 196c72acf..fdd2d83a2 100644 --- a/db/3pigxx_flow.sql +++ b/db/3pigxx_flow.sql @@ -9,7 +9,7 @@ SET FOREIGN_KEY_CHECKS = 0; DROP TABLE IF EXISTS `process`; CREATE TABLE `process` ( `id` bigint NOT NULL COMMENT '用户id', - `del_flag` tinyint(1) NOT NULL COMMENT '逻辑删除字段', + `del_flag` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '0' COMMENT '删除标志', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_time` datetime DEFAULT NULL COMMENT '更新时间', `flow_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '表单ID', @@ -31,7 +31,7 @@ CREATE TABLE `process` ( PRIMARY KEY (`id`) USING BTREE, UNIQUE KEY `idx_form_id` (`flow_id`) USING BTREE, KEY `idx_id` (`id`) USING BTREE -) ENGINE=InnoDB AUTO_INCREMENT=182 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC; +) ENGINE=InnoDB AUTO_INCREMENT=182 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='流程定义数据'; -- ---------------------------- @@ -40,7 +40,7 @@ CREATE TABLE `process` ( DROP TABLE IF EXISTS `process_copy`; CREATE TABLE `process_copy` ( `id` bigint NOT NULL COMMENT '用户id', - `del_flag` tinyint(1) NOT NULL COMMENT '逻辑删除字段', + `del_flag` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '0' COMMENT '删除标志', `create_time` datetime NOT NULL COMMENT '创建时间', `update_time` datetime NOT NULL COMMENT '更新时间', `start_time` datetime NOT NULL COMMENT ' 流程发起时间', @@ -67,7 +67,7 @@ CREATE TABLE `process_copy` ( DROP TABLE IF EXISTS `process_group`; CREATE TABLE `process_group` ( `id` bigint NOT NULL COMMENT '用户id', - `del_flag` tinyint(1) NOT NULL COMMENT '逻辑删除字段', + `del_flag` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '0' COMMENT '删除标志', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_time` datetime DEFAULT NULL COMMENT '更新时间', `group_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '分组名', @@ -75,7 +75,7 @@ CREATE TABLE `process_group` ( `tenant_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '所属租户id', PRIMARY KEY (`id`) USING BTREE, KEY `idx_id` (`id`) USING BTREE -) ENGINE=InnoDB AUTO_INCREMENT=20 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC; +) ENGINE=InnoDB AUTO_INCREMENT=20 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='流程分组'; @@ -88,7 +88,7 @@ CREATE TABLE `process_instance_record` ( `name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '流程名字', `logo` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '头像', `user_id` bigint NOT NULL COMMENT '用户id', - `del_flag` tinyint(1) NOT NULL COMMENT '逻辑删除字段', + `del_flag` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '0' COMMENT '删除标志', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `flow_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '流程id', @@ -112,7 +112,7 @@ CREATE TABLE `process_instance_record` ( DROP TABLE IF EXISTS `process_node_data`; CREATE TABLE `process_node_data` ( `id` bigint NOT NULL COMMENT '用户id', - `del_flag` tinyint(1) NOT NULL COMMENT '逻辑删除字段', + `del_flag` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '0' COMMENT '删除标志', `create_time` datetime NOT NULL COMMENT '创建时间', `update_time` datetime NOT NULL COMMENT '更新时间', `flow_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '流程id', @@ -130,7 +130,7 @@ CREATE TABLE `process_node_data` ( DROP TABLE IF EXISTS `process_node_record`; CREATE TABLE `process_node_record` ( `id` bigint NOT NULL COMMENT '用户id', - `del_flag` tinyint(1) NOT NULL COMMENT '逻辑删除字段', + `del_flag` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '0' COMMENT '删除标志', `create_time` datetime NOT NULL COMMENT '创建时间', `update_time` datetime NOT NULL COMMENT '更新时间', `flow_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '流程id', @@ -155,7 +155,7 @@ CREATE TABLE `process_node_record` ( DROP TABLE IF EXISTS `process_node_record_assign_user`; CREATE TABLE `process_node_record_assign_user` ( `id` bigint NOT NULL COMMENT '用户id', - `del_flag` tinyint(1) NOT NULL COMMENT '逻辑删除字段', + `del_flag` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '0' COMMENT '删除标志', `create_time` datetime NOT NULL COMMENT '创建时间', `update_time` datetime NOT NULL COMMENT '更新时间', `flow_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '流程id', @@ -184,7 +184,7 @@ CREATE TABLE `process_node_record_assign_user` ( DROP TABLE IF EXISTS `process_starter`; CREATE TABLE `process_starter` ( `id` bigint NOT NULL COMMENT '用户id', - `del_flag` tinyint(1) NOT NULL COMMENT '逻辑删除字段', + `del_flag` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '0' COMMENT '删除标志', `create_time` datetime NOT NULL COMMENT '创建时间', `update_time` datetime NOT NULL COMMENT '更新时间', `type_id` bigint NOT NULL COMMENT '用户id或者部门id', diff --git a/db/6pigxx_config.sql b/db/6pigxx_config.sql index 9c12940ad..a3b5fcec4 100644 --- a/db/6pigxx_config.sql +++ b/db/6pigxx_config.sql @@ -32,23 +32,24 @@ CREATE TABLE `config_info` ( -- Records of config_info -- ---------------------------- BEGIN; -INSERT INTO `config_info` VALUES (1, 'application-dev.yml', 'DEFAULT_GROUP', '# 配置文件加密根密码\njasypt:\n encryptor:\n password: pigx\n algorithm: PBEWithMD5AndDES\n iv-generator-classname: org.jasypt.iv.NoIvGenerator\n\n\nspring:\n data:\n redis:\n host: pigx-redis\n servlet:\n multipart:\n max-file-size: 100MB\n max-request-size: 100MB\n cloud:\n sentinel:\n eager: true\n transport:\n dashboard: pigx-sentinel:5020\n openfeign:\n sentinel:\n enabled: true\n okhttp:\n enabled: true\n httpclient:\n enabled: false\n connection-timeout: 20000\n compression:\n request:\n enabled: true\n response:\n enabled: true\n\n# 端点对外暴露\nmanagement:\n endpoints:\n web:\n exposure:\n include: \'*\' \n endpoint:\n restart:\n enabled: true\n health:\n show-details: ALWAYS\n\n#开启灰度\ngray:\n rule:\n enabled: true\n\n# mybatis-plus 配置\nmybatis-plus:\n tenant-enable: ture\n mapper-locations: classpath:/mapper/*Mapper.xml\n global-config:\n capitalMode: true\n banner: false\n db-config:\n id-type: auto\n select-strategy: not_empty\n insert-strategy: not_empty\n update-strategy: not_null\n type-handlers-package: com.pig4cloud.pigx.common.data.handler\n configuration:\n jdbc-type-for-null: \'null\'\n call-setters-on-nulls: true\n shrink-whitespaces-in-sql: true\nmybatis-plus-join:\n banner: false #关闭连表查询组件banner', '90942d7d4856ccba068fe5847643737d', '2022-12-16 10:44:25', '2023-08-14 11:44:19', 'nacos', '127.0.0.1', '', '', '', '', '', 'yaml', '', ''); -INSERT INTO `config_info` VALUES (2, 'pigx-auth-dev.yml', 'DEFAULT_GROUP', '# 数据源\nspring:\n freemarker:\n allow-request-override: false\n allow-session-override: false\n cache: true\n charset: UTF-8\n check-template-location: true\n content-type: text/html\n enabled: true\n expose-request-attributes: false\n expose-session-attributes: false\n expose-spring-macro-helpers: true\n prefer-file-system-access: true\n suffix: .ftl\n template-loader-path: classpath:/templates/', '74f53b71c7799aa754da75662378b93c', '2022-12-16 10:44:25', '2022-12-16 10:44:25', NULL, '0:0:0:0:0:0:0:1', '', '', NULL, NULL, NULL, 'yaml', NULL, ''); -INSERT INTO `config_info` VALUES (3, 'pigx-codegen-dev.yml', 'DEFAULT_GROUP', '# 数据源\nspring:\n datasource:\n type: com.alibaba.druid.pool.DruidDataSource\n druid:\n driver-class-name: com.mysql.cj.jdbc.Driver\n username: ${MYSQL_USER:root}\n password: ${MYSQL_PWD:root}\n url: jdbc:mysql://${MYSQL_HOST:pigx-mysql}:${MYSQL_PORT:3306}/${MYSQL_DB:pigxx_codegen}?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8&allowMultiQueries=true&allowPublicKeyRetrieval=true\n resources:\n static-locations: classpath:/static/,classpath:/views/\n\n# 租户表维护\npigx:\n tenant:\n column: tenant_id\n tables:\n - gen_datasource_conf\n - gen_form_conf\n - gen_template\n - gen_group\n', '765e72c9ff3b0a4504ea4703fbdd7859', '2022-12-16 10:44:25', '2023-04-07 14:14:25', 'nacos', '127.0.0.1', '', '', '', '', '', 'yaml', '', ''); -INSERT INTO `config_info` VALUES (4, 'pigx-daemon-elastic-job-dev.yml', 'DEFAULT_GROUP', '# 数据源\nspring:\n datasource:\n type: com.alibaba.druid.pool.DruidDataSource\n druid:\n driver-class-name: com.mysql.cj.jdbc.Driver\n username: ${MYSQL_USER:root}\n password: ${MYSQL_PWD:root}\n url: jdbc:mysql://${MYSQL_HOST:pigx-mysql}:${MYSQL_PORT:3306}/${MYSQL_DB:pigxx_job}?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8&allowMultiQueries=true&allowPublicKeyRetrieval=true', '09996f46e0b80d7b2aa320ef4cb31c82', '2022-12-16 10:44:25', '2023-04-07 14:14:50', 'nacos', '127.0.0.1', '', '', '', '', '', 'yaml', '', ''); -INSERT INTO `config_info` VALUES (5, 'pigx-gateway-dev.yml', 'DEFAULT_GROUP', 'gateway:\n encode-key: \'pigxpigxpigxpigx\'\n\n# 验证码相关配置参考: http://t.cn/A647jEdu\naj:\n captcha:\n cache-type: redis\n water-mark: pig4cloud\n\n# 固定路由转发配置 无修改\nspring:\n cloud:\n gateway:\n routes:\n - id: openapi\n uri: lb://pigx-gateway\n predicates:\n - Path=/v3/api-docs/**\n filters:\n - RewritePath=/v3/api-docs/(?.*), /$\\{path}/$\\{path}/v3/api-docs\n\n# gateway 刷新端点\nmanagement:\n endpoint:\n gateway:\n enabled: true\n', 'd138f5bafa91ab76dca8c4c1a01c1de2', '2022-12-16 10:44:25', '2023-07-28 16:49:29', 'nacos', '0:0:0:0:0:0:0:1', '', '', '', '', '', 'yaml', '', ''); -INSERT INTO `config_info` VALUES (6, 'pigx-monitor-dev.yml', 'DEFAULT_GROUP', 'spring:\n # 安全配置\n security:\n user:\n name: ENC(rZHA4LW5hHmhLAAzJoFNag==) # pigx\n password: ENC(bjeyh+Aeii3kHXkoo00ZUw==) # pigx\n autoconfigure:\n exclude: com.pig4cloud.pigx.common.core.config.JacksonConfiguration\n boot:\n admin:\n ui:\n title: \'pigx 服务状态监控\'\n brand: \'pigx 服务状态监控\'\n external-views:\n - label: \"SQL监控\"\n url: /druid/sql.html\n order: 2000\n iframe: true\nmanagement:\n endpoints:\n web:\n exposure:\n include: \'*\'\n endpoint:\n health:\n show-details: ALWAYS #显示详细信息\n\n\n# druid 监控的服务\nmonitor:\n applications:\n - pigx-upms-biz\n', '2bb39e4dee3f90d4186d1e42aa666d2a', '2022-12-16 10:44:25', '2023-04-07 14:12:09', 'nacos', '127.0.0.1', '', '', '', '', '', 'yaml', '', ''); -INSERT INTO `config_info` VALUES (7, 'pigx-upms-biz-dev.yml', 'DEFAULT_GROUP', '## spring security 配置\nsecurity:\n oauth2:\n client:\n ignore-urls:\n - /druid/**\n\n# 数据源\nspring:\n autoconfigure:\n exclude: org.springframework.cloud.gateway.config.GatewayAutoConfiguration,org.springframework.cloud.gateway.config.GatewayClassPathWarningAutoConfiguration\n datasource:\n type: com.alibaba.druid.pool.DruidDataSource\n druid:\n driver-class-name: com.mysql.cj.jdbc.Driver\n username: ${MYSQL_USER:root}\n password: ${MYSQL_PWD:root}\n url: jdbc:mysql://${MYSQL_HOST:pigx-mysql}:${MYSQL_PORT:3306}/${MYSQL_DB:pigxx}?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8&allowMultiQueries=true&allowPublicKeyRetrieval=true\n stat-view-servlet:\n enabled: true\n allow: \"\"\n url-pattern: /druid/*\n #login-username: admin\n #login-password: admin\n filter:\n stat:\n enabled: true\n log-slow-sql: true\n slow-sql-millis: 10000\n merge-sql: false\n wall:\n config:\n multi-statement-allow: true\n\n# 本地文件系统\nfile:\n local:\n enable: true\n basePath: /Users/lengleng/Downloads/files\n\n# Logger Config\nlogging:\n level:\n com.pig4cloud.pigx.admin.mapper: debug\n\n# 租户表维护\npigx:\n tenant:\n column: tenant_id\n tables:\n - sys_user\n - sys_role\n - sys_menu\n - sys_dept\n - sys_log\n - sys_social_details\n - sys_dict\n - sys_dict_item\n - sys_public_param\n - sys_log\n - sys_file\n - sys_file_group\n - sys_oauth_client_details\n - sys_post\n - sys_message\n - sys_message_relation', '90d96cb006f342d06da031cff829615c', '2022-12-16 10:44:25', '2023-10-28 21:59:30', 'nacos', '127.0.0.1', '', '', '', '', '', 'yaml', '', ''); -INSERT INTO `config_info` VALUES (8, 'pigx-daemon-quartz-dev.yml', 'DEFAULT_GROUP', '# 数据源\nspring:\n datasource:\n type: com.alibaba.druid.pool.DruidDataSource\n druid:\n driver-class-name: com.mysql.cj.jdbc.Driver\n username: ${MYSQL_USER:root}\n password: ${MYSQL_PWD:root}\n url: jdbc:mysql://${MYSQL_HOST:pigx-mysql}:${MYSQL_PORT:3306}/${MYSQL_DB:pigxx_job}?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8&allowMultiQueries=true&allowPublicKeyRetrieval=true\n resources:\n static-locations: classpath:/static/,classpath:/views/\n quartz:\n #相关属性配置\n properties:\n org:\n quartz:\n scheduler:\n instanceName: clusteredScheduler\n instanceId: AUTO\n jobStore:\n class: org.springframework.scheduling.quartz.LocalDataSourceJobStore\n driverDelegateClass: org.quartz.impl.jdbcjobstore.StdJDBCDelegate\n tablePrefix: QRTZ_\n isClustered: true\n clusterCheckinInterval: 10000\n useProperties: false\n threadPool:\n class: org.quartz.simpl.SimpleThreadPool\n threadCount: 50\n threadPriority: 5\n threadsInheritContextClassLoaderOfInitializingThread: true\n #数据库方式\n job-store-type: jdbc\n #初始化表结构\n #jdbc:\n #initialize-schema: never\n\n', '5f7a45c377318ce767433a1e210e8584', '2022-12-16 10:44:25', '2023-04-07 14:13:08', 'nacos', '127.0.0.1', '', '', '', '', '', 'yaml', '', ''); -INSERT INTO `config_info` VALUES (9, 'pigx-pay-platform-dev.yml', 'DEFAULT_GROUP', '# 数据源\nspring:\n datasource:\n type: com.alibaba.druid.pool.DruidDataSource\n druid:\n driver-class-name: com.mysql.cj.jdbc.Driver\n username: ${MYSQL_USER:root}\n password: ${MYSQL_PWD:root}\n url: jdbc:mysql://${MYSQL_HOST:pigx-mysql}:${MYSQL_PORT:3306}/${MYSQL_DB:pigxx_pay}?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8&allowMultiQueries=true&allowPublicKeyRetrieval=true\n freemarker:\n allow-request-override: false\n allow-session-override: false\n cache: true\n charset: UTF-8\n check-template-location: true\n content-type: text/html\n enabled: true\n expose-request-attributes: false\n expose-session-attributes: false\n expose-spring-macro-helpers: true\n prefer-file-system-access: true\n suffix: .ftl\n template-loader-path: classpath:/templates/\n# 租户表维护\npigx:\n pay:\n test: lengleng\n aliPayConfig:\n expire-time: 30\n return-url: http://pig4cloud.com\n notify-url: http://payx.yunjihuitong.com/pay/notify/ali/callbak\n wxPayConfig:\n notify-url: https://admin.pig4cloud.com/pay/notify/wx/callbak\n mergePayConfig:\n return-url: http://pig4cloud.com\n notify-url: http://wechat.pigx.top/pay/notify/merge/callbak\n xsequence: #发号器相关配置\n db:\n retry-times: 3\n table-name: pay_sequence\n tenant:\n column: tenant_id\n tables:\n - pay_channel\n - pay_trade_order\n - pay_goods_order\n - pay_notify_record\n - pay_refund_order', 'c70a66d3c300eab1afef0ed4ad9d42d5', '2022-12-16 10:44:25', '2023-04-07 14:12:40', 'nacos', '127.0.0.1', '', '', '', '', '', 'yaml', '', ''); -INSERT INTO `config_info` VALUES (11, 'pigx-mp-platform-dev.yml', 'DEFAULT_GROUP', '# 数据源\nspring:\n datasource:\n type: com.alibaba.druid.pool.DruidDataSource\n druid:\n driver-class-name: com.mysql.cj.jdbc.Driver\n username: ${MYSQL_USER:root}\n password: ${MYSQL_PWD:root}\n url: jdbc:mysql://${MYSQL_HOST:pigx-mysql}:${MYSQL_PORT:3306}/${MYSQL_DB:pigxx_mp}?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8&allowMultiQueries=true&allowPublicKeyRetrieval=true\n resources:\n static-locations: classpath:/static/,classpath:/views/\n\n\n# 租户表维护\npigx:\n tenant:\n column: tenant_id\n tables:\n - wx_mp_menu\n - wx_account\n - wx_account_tag\n - wx_account_fans\n - wx_msg\n - wx_auto_reply', 'ea4e59c98b8aeb4dd78ec989e7f197a4', '2022-12-16 10:44:25', '2023-01-29 13:12:59', 'nacos', '0:0:0:0:0:0:0:1', '', '', '', '', '', 'yaml', '', ''); -INSERT INTO `config_info` VALUES (12, 'pigx-xxl-job-admin-dev.yml', 'DEFAULT_GROUP', '# xxl\nxxl:\n job:\n i18n: zh_CN\n logretentiondays: 30\n triggerpool:\n fast.max: 200\n slow.max: 200\n\n# mybatis\nmybatis:\n mapper-locations: classpath:/mybatis-mapper/*Mapper.xml\n\n# spring\nspring:\n datasource:\n type: com.alibaba.druid.pool.DruidDataSource\n druid:\n driver-class-name: com.mysql.cj.jdbc.Driver\n username: ${MYSQL_USER:root}\n password: ${MYSQL_PWD:root}\n url: jdbc:mysql://${MYSQL_HOST:pigx-mysql}:${MYSQL_PORT:3306}/${MYSQL_DB:pigxx_job}?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8&allowMultiQueries=true&allowPublicKeyRetrieval=true\n mvc:\n static-path-pattern: /static/**\n freemarker:\n suffix: .ftl\n request-context-attribute: request\n settings:\n number_format: 0.##########\n mail:\n host: smtp.mxhichina.com\n port: 465\n from: xxxx@gitee.wang\n username: xxxx@gitee.wang\n password: xxxx\n properties:\n mail:\n smtp:\n auth: true\n ssl.enable: true\n starttls.enable: false\n required: false\n\nmanagement:\n health:\n mail:\n enabled: false\n endpoints:\n web:\n exposure:\n include: \'*\'\n endpoint:\n health:\n show-details: ALWAYS', '6d70dce1f3ee48f261dce29bcfa99cbb', '2022-12-16 10:44:25', '2023-01-04 18:22:48', 'nacos', '127.0.0.1', '', '', '', '', '', 'yaml', '', ''); -INSERT INTO `config_info` VALUES (13, 'pigx-report-platform-dev.yml', 'DEFAULT_GROUP', 'spring:\n datasource:\n type: com.alibaba.druid.pool.DruidDataSource\n druid:\n driver-class-name: com.mysql.cj.jdbc.Driver\n username: ${MYSQL_USER:root}\n password: ${MYSQL_PWD:root}\n url: jdbc:mysql://${MYSQL_HOST:pigx-mysql}:${MYSQL_PORT:3306}/${MYSQL_DB:pigxx_report}?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8&allowMultiQueries=true&allowPublicKeyRetrieval=true\n jpa:\n database-platform: org.hibernate.dialect.MySQL8Dialect\n\nsecurity:\n oauth2:\n client:\n ignore-urls:\n - /\n - /api/project/getData\n - /static/**\n - /api/project/get-file/*\n\n# 文件上传路径\ngv:\n img-path: /Users/lengleng/Downloads/img/\n', 'ce3fde4b4592cdd61feb2e443b2ddfe5', '2022-12-16 10:44:25', '2023-04-07 12:56:57', 'nacos', '127.0.0.1', '', '', '', '', '', 'yaml', '', ''); -INSERT INTO `config_info` VALUES (14, 'pigx-jimu-platform-dev.yml', 'DEFAULT_GROUP', 'spring:\n #配置静态资源\n mvc:\n static-path-pattern: /**\n resource:\n static-locations: classpath:/static/\n #配置数据库\n datasource:\n type: com.alibaba.druid.pool.DruidDataSource\n druid:\n driver-class-name: com.mysql.cj.jdbc.Driver\n username: ${MYSQL_USER:root}\n password: ${MYSQL_PWD:root}\n url: jdbc:mysql://${MYSQL_HOST:pigx-mysql}:${MYSQL_PORT:3306}/${MYSQL_DB:pigxx_bi}?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8&allowMultiQueries=true&allowPublicKeyRetrieval=true\n \n#JimuReport[minidao配置]\nminidao :\n base-package: org.jeecg.modules.jmreport.desreport.dao*\n db-type: mysql\n#JimuReport[上传配置]\njeecg :\n jmreport:\n saasMode: tenant\n #saasMode: tenant\n customPrePath: /api/jimu\n # 自动保存\n autoSave: true\n # 单位毫秒 默认5*60*1000 \n interval: 10000\n # local|minio|alioss\n uploadType: local\n # local\n path :\n #文件路径A\n upload: ~/jimu/data\n # alioss\n oss:\n endpoint: oss-cn-beijing.aliyuncs.com\n accessKey: ??\n secretKey: ??\n staticDomain: ??\n bucketName: ??\n # minio\n minio:\n minio_url: http://minio.jeecg.com\n minio_name: ??\n minio_pass: ??\n bucketName: ??\n#输出sql日志\nlogging:\n level:\n org.jeecg.modules.jmreport : debug', '3f53ce5ae7d2832a546929af4a7e57d1', '2022-12-16 10:44:25', '2023-09-22 14:58:36', 'nacos', '127.0.0.1', '', '', '', '', '', 'yaml', '', ''); -INSERT INTO `config_info` VALUES (15, 'pigx-app-server-biz-dev.yml', 'DEFAULT_GROUP', '# 数据源\nspring:\n datasource:\n type: com.alibaba.druid.pool.DruidDataSource\n druid:\n driver-class-name: com.mysql.cj.jdbc.Driver\n username: ${MYSQL_USER:root}\n password: ${MYSQL_PWD:root}\n url: jdbc:mysql://${MYSQL_HOST:pigx-mysql}:${MYSQL_PORT:3306}/${MYSQL_DB:pigxx_app}?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8&allowMultiQueries=true&allowPublicKeyRetrieval=true\n\n# 租户表维护\npigx:\n tenant:\n column: tenant_id\n tables:\n - app_user\n - app_role\n - app_article\n - app_article_category\n - app_article_collect\n - app_page\n - app_tabbar', '2513bb14ce549a2a4ea1cdfd83bba1f3', '2022-12-19 10:30:07', '2023-06-20 18:15:07', 'nacos', '127.0.0.1', '', '', '', '', '', 'yaml', '', ''); -INSERT INTO `config_info` VALUES (16, 'pigx-flow-engine-biz-dev.yml', 'DEFAULT_GROUP', '# 数据源\nspring:\n datasource:\n type: com.alibaba.druid.pool.DruidDataSource\n druid:\n driver-class-name: com.mysql.cj.jdbc.Driver\n username: ${MYSQL_USER:root}\n password: ${MYSQL_PWD:root}\n url: jdbc:mysql://${MYSQL_HOST:pigx-mysql}:${MYSQL_PORT:3306}/${MYSQL_DB:pigxx_flow}?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8&allowMultiQueries=true&nullCatalogMeansCurrent=true', '233121e20445609e1ba378c3686ea7d5', '2023-07-28 13:41:32', '2023-07-28 13:43:36', 'nacos', '0:0:0:0:0:0:0:1', '', '', 'flowable 工作引擎', '', '', 'yaml', '', ''); -INSERT INTO `config_info` VALUES (17, 'pigx-flow-task-biz-dev.yml', 'DEFAULT_GROUP', '# 数据源\nspring:\n datasource:\n type: com.alibaba.druid.pool.DruidDataSource\n druid:\n driver-class-name: com.mysql.cj.jdbc.Driver\n username: ${MYSQL_USER:root}\n password: ${MYSQL_PWD:root}\n url: jdbc:mysql://${MYSQL_HOST:pigx-mysql}:${MYSQL_PORT:3306}/${MYSQL_DB:pigxx_flow}?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8&allowMultiQueries=true&nullCatalogMeansCurrent=true\n\n# 租户表维护\npigx:\n tenant:\n column: tenant_id\n tables:\n - process\n - process_copy\n - process_group\n - process_instance_record\n - process_node_data\n - process_node_record\n - process_node_record_assign_user\n - process_starter', 'bdead04cdd3666d04786f69e5fb32633', '2023-07-28 13:44:25', '2023-07-28 13:50:08', 'nacos', '0:0:0:0:0:0:0:1', '', '', 'flowable 业务', '', '', 'yaml', '', ''); +INSERT INTO `config_info` (`id`, `data_id`, `group_id`, `content`, `md5`, `gmt_create`, `gmt_modified`, `src_user`, `src_ip`, `app_name`, `tenant_id`, `c_desc`, `c_use`, `effect`, `type`, `c_schema`, `encrypted_data_key`) VALUES (1, 'application-dev.yml', 'DEFAULT_GROUP', '# 配置文件加密根密码\njasypt:\n encryptor:\n password: pigx\n algorithm: PBEWithMD5AndDES\n iv-generator-classname: org.jasypt.iv.NoIvGenerator\n\n\nspring:\n data:\n redis:\n host: pigx-redis\n servlet:\n multipart:\n max-file-size: 100MB\n max-request-size: 100MB\n cloud:\n sentinel:\n eager: true\n transport:\n dashboard: pigx-sentinel:5020\n openfeign:\n sentinel:\n enabled: true\n okhttp:\n enabled: true\n httpclient:\n enabled: false\n connection-timeout: 20000\n compression:\n request:\n enabled: true\n response:\n enabled: true\n\n# 端点对外暴露\nmanagement:\n endpoints:\n web:\n exposure:\n include: \'*\' \n endpoint:\n restart:\n enabled: true\n health:\n show-details: ALWAYS\n\n#开启灰度\ngray:\n rule:\n enabled: true\n\n# mybatis-plus 配置\nmybatis-plus:\n tenant-enable: ture\n mapper-locations: classpath:/mapper/*Mapper.xml\n global-config:\n capitalMode: true\n banner: false\n db-config:\n id-type: auto\n select-strategy: not_empty\n insert-strategy: not_empty\n update-strategy: not_null\n type-handlers-package: com.pig4cloud.pigx.common.data.handler\n configuration:\n jdbc-type-for-null: \'null\'\n call-setters-on-nulls: true\n shrink-whitespaces-in-sql: true\nmybatis-plus-join:\n banner: false #关闭连表查询组件banner', '90942d7d4856ccba068fe5847643737d', '2022-12-16 10:44:25', '2023-08-14 11:44:19', 'nacos', '127.0.0.1', '', '', '', '', '', 'yaml', '', ''); +INSERT INTO `config_info` (`id`, `data_id`, `group_id`, `content`, `md5`, `gmt_create`, `gmt_modified`, `src_user`, `src_ip`, `app_name`, `tenant_id`, `c_desc`, `c_use`, `effect`, `type`, `c_schema`, `encrypted_data_key`) VALUES (2, 'pigx-auth-dev.yml', 'DEFAULT_GROUP', '# 数据源\nspring:\n freemarker:\n allow-request-override: false\n allow-session-override: false\n cache: true\n charset: UTF-8\n check-template-location: true\n content-type: text/html\n enabled: true\n expose-request-attributes: false\n expose-session-attributes: false\n expose-spring-macro-helpers: true\n prefer-file-system-access: true\n suffix: .ftl\n template-loader-path: classpath:/templates/', '74f53b71c7799aa754da75662378b93c', '2022-12-16 10:44:25', '2022-12-16 10:44:25', NULL, '0:0:0:0:0:0:0:1', '', '', NULL, NULL, NULL, 'yaml', NULL, ''); +INSERT INTO `config_info` (`id`, `data_id`, `group_id`, `content`, `md5`, `gmt_create`, `gmt_modified`, `src_user`, `src_ip`, `app_name`, `tenant_id`, `c_desc`, `c_use`, `effect`, `type`, `c_schema`, `encrypted_data_key`) VALUES (3, 'pigx-codegen-dev.yml', 'DEFAULT_GROUP', '# 数据源\nspring:\n datasource:\n type: com.alibaba.druid.pool.DruidDataSource\n druid:\n driver-class-name: com.mysql.cj.jdbc.Driver\n username: ${MYSQL_USER:root}\n password: ${MYSQL_PWD:root}\n url: jdbc:mysql://${MYSQL_HOST:pigx-mysql}:${MYSQL_PORT:3306}/${MYSQL_DB:pigxx_codegen}?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8&allowMultiQueries=true&allowPublicKeyRetrieval=true\n resources:\n static-locations: classpath:/static/,classpath:/views/\n', 'ed6de06e34e2634c28a24e8a1db99b06', '2022-12-16 10:44:25', '2024-02-22 15:08:09', 'nacos', '0:0:0:0:0:0:0:1', '', '', '', '', '', 'yaml', '', ''); +INSERT INTO `config_info` (`id`, `data_id`, `group_id`, `content`, `md5`, `gmt_create`, `gmt_modified`, `src_user`, `src_ip`, `app_name`, `tenant_id`, `c_desc`, `c_use`, `effect`, `type`, `c_schema`, `encrypted_data_key`) VALUES (4, 'pigx-daemon-elastic-job-dev.yml', 'DEFAULT_GROUP', '# 数据源\nspring:\n datasource:\n type: com.alibaba.druid.pool.DruidDataSource\n druid:\n driver-class-name: com.mysql.cj.jdbc.Driver\n username: ${MYSQL_USER:root}\n password: ${MYSQL_PWD:root}\n url: jdbc:mysql://${MYSQL_HOST:pigx-mysql}:${MYSQL_PORT:3306}/${MYSQL_DB:pigxx_job}?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8&allowMultiQueries=true&allowPublicKeyRetrieval=true', '09996f46e0b80d7b2aa320ef4cb31c82', '2022-12-16 10:44:25', '2023-04-07 14:14:50', 'nacos', '127.0.0.1', '', '', '', '', '', 'yaml', '', ''); +INSERT INTO `config_info` (`id`, `data_id`, `group_id`, `content`, `md5`, `gmt_create`, `gmt_modified`, `src_user`, `src_ip`, `app_name`, `tenant_id`, `c_desc`, `c_use`, `effect`, `type`, `c_schema`, `encrypted_data_key`) VALUES (5, 'pigx-gateway-dev.yml', 'DEFAULT_GROUP', 'gateway:\n encode-key: \'pigxpigxpigxpigx\'\n\n# 验证码相关配置参考: http://t.cn/A647jEdu\naj:\n captcha:\n cache-type: redis\n water-mark: pig4cloud\n\n# 固定路由转发配置 无修改\nspring:\n cloud:\n gateway:\n routes:\n - id: openapi\n uri: lb://pigx-gateway\n predicates:\n - Path=/v3/api-docs/**\n filters:\n - RewritePath=/v3/api-docs/(?.*), /$\\{path}/$\\{path}/v3/api-docs\n\n# gateway 刷新端点\nmanagement:\n endpoint:\n gateway:\n enabled: true\n', 'd138f5bafa91ab76dca8c4c1a01c1de2', '2022-12-16 10:44:25', '2023-07-28 16:49:29', 'nacos', '0:0:0:0:0:0:0:1', '', '', '', '', '', 'yaml', '', ''); +INSERT INTO `config_info` (`id`, `data_id`, `group_id`, `content`, `md5`, `gmt_create`, `gmt_modified`, `src_user`, `src_ip`, `app_name`, `tenant_id`, `c_desc`, `c_use`, `effect`, `type`, `c_schema`, `encrypted_data_key`) VALUES (6, 'pigx-monitor-dev.yml', 'DEFAULT_GROUP', 'spring:\n # 安全配置\n security:\n user:\n name: ENC(rZHA4LW5hHmhLAAzJoFNag==) # pigx\n password: ENC(bjeyh+Aeii3kHXkoo00ZUw==) # pigx\n autoconfigure:\n exclude: com.pig4cloud.pigx.common.core.config.JacksonConfiguration\n boot:\n admin:\n ui:\n title: \'pigx 服务状态监控\'\n brand: \'pigx 服务状态监控\'\n external-views:\n - label: \"SQL监控\"\n url: /druid/sql.html\n order: 2000\n iframe: true\nmanagement:\n endpoints:\n web:\n exposure:\n include: \'*\'\n endpoint:\n health:\n show-details: ALWAYS #显示详细信息\n\n\n# druid 监控的服务\nmonitor:\n applications:\n - pigx-upms-biz\n', '2bb39e4dee3f90d4186d1e42aa666d2a', '2022-12-16 10:44:25', '2023-04-07 14:12:09', 'nacos', '127.0.0.1', '', '', '', '', '', 'yaml', '', ''); +INSERT INTO `config_info` (`id`, `data_id`, `group_id`, `content`, `md5`, `gmt_create`, `gmt_modified`, `src_user`, `src_ip`, `app_name`, `tenant_id`, `c_desc`, `c_use`, `effect`, `type`, `c_schema`, `encrypted_data_key`) VALUES (7, 'pigx-upms-biz-dev.yml', 'DEFAULT_GROUP', '## spring security 配置\nsecurity:\n oauth2:\n client:\n ignore-urls:\n - /druid/**\n\n# 数据源\nspring:\n autoconfigure:\n exclude: org.springframework.cloud.gateway.config.GatewayAutoConfiguration,org.springframework.cloud.gateway.config.GatewayClassPathWarningAutoConfiguration\n datasource:\n type: com.alibaba.druid.pool.DruidDataSource\n druid:\n driver-class-name: com.mysql.cj.jdbc.Driver\n username: ${MYSQL_USER:root}\n password: ${MYSQL_PWD:root}\n url: jdbc:mysql://${MYSQL_HOST:pigx-mysql}:${MYSQL_PORT:3306}/${MYSQL_DB:pigxx}?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8&allowMultiQueries=true&allowPublicKeyRetrieval=true\n stat-view-servlet:\n enabled: true\n allow: \"\"\n url-pattern: /druid/*\n #login-username: admin\n #login-password: admin\n filter:\n stat:\n enabled: true\n log-slow-sql: true\n slow-sql-millis: 10000\n merge-sql: false\n wall:\n config:\n multi-statement-allow: true\n\n# 本地文件系统\nfile:\n local:\n enable: true\n basePath: /Users/lengleng/Downloads/files', '28f2305c1cfb413dcc45a3d432ef7098', '2022-12-16 10:44:25', '2024-02-22 15:08:36', 'nacos', '0:0:0:0:0:0:0:1', '', '', '', '', '', 'yaml', '', ''); +INSERT INTO `config_info` (`id`, `data_id`, `group_id`, `content`, `md5`, `gmt_create`, `gmt_modified`, `src_user`, `src_ip`, `app_name`, `tenant_id`, `c_desc`, `c_use`, `effect`, `type`, `c_schema`, `encrypted_data_key`) VALUES (8, 'pigx-daemon-quartz-dev.yml', 'DEFAULT_GROUP', '# 数据源\nspring:\n datasource:\n type: com.alibaba.druid.pool.DruidDataSource\n druid:\n driver-class-name: com.mysql.cj.jdbc.Driver\n username: ${MYSQL_USER:root}\n password: ${MYSQL_PWD:root}\n url: jdbc:mysql://${MYSQL_HOST:pigx-mysql}:${MYSQL_PORT:3306}/${MYSQL_DB:pigxx_job}?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8&allowMultiQueries=true&allowPublicKeyRetrieval=true\n resources:\n static-locations: classpath:/static/,classpath:/views/\n quartz:\n #相关属性配置\n properties:\n org:\n quartz:\n scheduler:\n instanceName: clusteredScheduler\n instanceId: AUTO\n jobStore:\n class: org.springframework.scheduling.quartz.LocalDataSourceJobStore\n driverDelegateClass: org.quartz.impl.jdbcjobstore.StdJDBCDelegate\n tablePrefix: QRTZ_\n isClustered: true\n clusterCheckinInterval: 10000\n useProperties: false\n threadPool:\n class: org.quartz.simpl.SimpleThreadPool\n threadCount: 50\n threadPriority: 5\n threadsInheritContextClassLoaderOfInitializingThread: true\n #数据库方式\n job-store-type: jdbc\n #初始化表结构\n #jdbc:\n #initialize-schema: never\n\n', '5f7a45c377318ce767433a1e210e8584', '2022-12-16 10:44:25', '2023-04-07 14:13:08', 'nacos', '127.0.0.1', '', '', '', '', '', 'yaml', '', ''); +INSERT INTO `config_info` (`id`, `data_id`, `group_id`, `content`, `md5`, `gmt_create`, `gmt_modified`, `src_user`, `src_ip`, `app_name`, `tenant_id`, `c_desc`, `c_use`, `effect`, `type`, `c_schema`, `encrypted_data_key`) VALUES (9, 'pigx-pay-platform-dev.yml', 'DEFAULT_GROUP', '# 数据源\nspring:\n datasource:\n type: com.alibaba.druid.pool.DruidDataSource\n druid:\n driver-class-name: com.mysql.cj.jdbc.Driver\n username: ${MYSQL_USER:root}\n password: ${MYSQL_PWD:root}\n url: jdbc:mysql://${MYSQL_HOST:pigx-mysql}:${MYSQL_PORT:3306}/${MYSQL_DB:pigxx_pay}?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8&allowMultiQueries=true&allowPublicKeyRetrieval=true\n freemarker:\n allow-request-override: false\n allow-session-override: false\n cache: true\n charset: UTF-8\n check-template-location: true\n content-type: text/html\n enabled: true\n expose-request-attributes: false\n expose-session-attributes: false\n expose-spring-macro-helpers: true\n prefer-file-system-access: true\n suffix: .ftl\n template-loader-path: classpath:/templates/\n# 租户表维护\npigx:\n pay:\n test: lengleng\n aliPayConfig:\n expire-time: 30\n return-url: http://pig4cloud.com\n notify-url: http://payx.yunjihuitong.com/pay/notify/ali/callbak\n wxPayConfig:\n notify-url: https://admin.pig4cloud.com/pay/notify/wx/callbak\n mergePayConfig:\n return-url: http://pig4cloud.com\n notify-url: http://wechat.pigx.top/pay/notify/merge/callbak\n xsequence: #发号器相关配置\n db:\n retry-times: 3\n table-name: pay_sequence', 'f4e5734a99f3c1f059071deac081b33d', '2022-12-16 10:44:25', '2024-02-22 15:09:08', 'nacos', '0:0:0:0:0:0:0:1', '', '', '', '', '', 'yaml', '', ''); +INSERT INTO `config_info` (`id`, `data_id`, `group_id`, `content`, `md5`, `gmt_create`, `gmt_modified`, `src_user`, `src_ip`, `app_name`, `tenant_id`, `c_desc`, `c_use`, `effect`, `type`, `c_schema`, `encrypted_data_key`) VALUES (11, 'pigx-mp-platform-dev.yml', 'DEFAULT_GROUP', '# 数据源\nspring:\n datasource:\n type: com.alibaba.druid.pool.DruidDataSource\n druid:\n driver-class-name: com.mysql.cj.jdbc.Driver\n username: ${MYSQL_USER:root}\n password: ${MYSQL_PWD:root}\n url: jdbc:mysql://${MYSQL_HOST:pigx-mysql}:${MYSQL_PORT:3306}/${MYSQL_DB:pigxx_mp}?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8&allowMultiQueries=true&allowPublicKeyRetrieval=true\n resources:\n static-locations: classpath:/static/,classpath:/views/', 'd5936e0c352fb1fbe1d05f054f14c98a', '2022-12-16 10:44:25', '2024-02-22 15:09:20', 'nacos', '0:0:0:0:0:0:0:1', '', '', '', '', '', 'yaml', '', ''); +INSERT INTO `config_info` (`id`, `data_id`, `group_id`, `content`, `md5`, `gmt_create`, `gmt_modified`, `src_user`, `src_ip`, `app_name`, `tenant_id`, `c_desc`, `c_use`, `effect`, `type`, `c_schema`, `encrypted_data_key`) VALUES (12, 'pigx-xxl-job-admin-dev.yml', 'DEFAULT_GROUP', '# xxl\nxxl:\n job:\n i18n: zh_CN\n logretentiondays: 30\n triggerpool:\n fast.max: 200\n slow.max: 200\n\n# mybatis\nmybatis:\n mapper-locations: classpath:/mybatis-mapper/*Mapper.xml\n\n# spring\nspring:\n datasource:\n type: com.alibaba.druid.pool.DruidDataSource\n druid:\n driver-class-name: com.mysql.cj.jdbc.Driver\n username: ${MYSQL_USER:root}\n password: ${MYSQL_PWD:root}\n url: jdbc:mysql://${MYSQL_HOST:pigx-mysql}:${MYSQL_PORT:3306}/${MYSQL_DB:pigxx_job}?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8&allowMultiQueries=true&allowPublicKeyRetrieval=true\n mvc:\n static-path-pattern: /static/**\n freemarker:\n suffix: .ftl\n request-context-attribute: request\n settings:\n number_format: 0.##########\n mail:\n host: smtp.mxhichina.com\n port: 465\n from: xxxx@gitee.wang\n username: xxxx@gitee.wang\n password: xxxx\n properties:\n mail:\n smtp:\n auth: true\n ssl.enable: true\n starttls.enable: false\n required: false\n\nmanagement:\n health:\n mail:\n enabled: false\n endpoints:\n web:\n exposure:\n include: \'*\'\n endpoint:\n health:\n show-details: ALWAYS', '6d70dce1f3ee48f261dce29bcfa99cbb', '2022-12-16 10:44:25', '2023-01-04 18:22:48', 'nacos', '127.0.0.1', '', '', '', '', '', 'yaml', '', ''); +INSERT INTO `config_info` (`id`, `data_id`, `group_id`, `content`, `md5`, `gmt_create`, `gmt_modified`, `src_user`, `src_ip`, `app_name`, `tenant_id`, `c_desc`, `c_use`, `effect`, `type`, `c_schema`, `encrypted_data_key`) VALUES (13, 'pigx-report-platform-dev.yml', 'DEFAULT_GROUP', 'spring:\n datasource:\n type: com.alibaba.druid.pool.DruidDataSource\n druid:\n driver-class-name: com.mysql.cj.jdbc.Driver\n username: ${MYSQL_USER:root}\n password: ${MYSQL_PWD:root}\n url: jdbc:mysql://${MYSQL_HOST:pigx-mysql}:${MYSQL_PORT:3306}/${MYSQL_DB:pigxx_report}?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8&allowMultiQueries=true&allowPublicKeyRetrieval=true\n jpa:\n database-platform: org.hibernate.dialect.MySQL8Dialect\n\nsecurity:\n oauth2:\n client:\n ignore-urls:\n - /\n - /api/project/getData\n - /static/**\n - /api/project/get-file/*\n\n# 文件上传路径\ngv:\n img-path: /Users/lengleng/Downloads/img/\n', 'ce3fde4b4592cdd61feb2e443b2ddfe5', '2022-12-16 10:44:25', '2023-04-07 12:56:57', 'nacos', '127.0.0.1', '', '', '', '', '', 'yaml', '', ''); +INSERT INTO `config_info` (`id`, `data_id`, `group_id`, `content`, `md5`, `gmt_create`, `gmt_modified`, `src_user`, `src_ip`, `app_name`, `tenant_id`, `c_desc`, `c_use`, `effect`, `type`, `c_schema`, `encrypted_data_key`) VALUES (14, 'pigx-jimu-platform-dev.yml', 'DEFAULT_GROUP', 'spring:\n #配置静态资源\n mvc:\n static-path-pattern: /**\n resource:\n static-locations: classpath:/static/\n #配置数据库\n datasource:\n type: com.alibaba.druid.pool.DruidDataSource\n druid:\n driver-class-name: com.mysql.cj.jdbc.Driver\n username: ${MYSQL_USER:root}\n password: ${MYSQL_PWD:root}\n url: jdbc:mysql://${MYSQL_HOST:pigx-mysql}:${MYSQL_PORT:3306}/${MYSQL_DB:pigxx_bi}?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8&allowMultiQueries=true&allowPublicKeyRetrieval=true\n \n#JimuReport[minidao配置]\nminidao :\n base-package: org.jeecg.modules.jmreport.desreport.dao*\n db-type: mysql\n#JimuReport[上传配置]\njeecg :\n jmreport:\n customPrePath: /api/jimu\n # 自动保存\n autoSave: true\n # 单位毫秒 默认5*60*1000 \n interval: 10000\n # local|minio|alioss\n uploadType: local\n # local\n path :\n #文件路径A\n upload: ~/jimu/data\n # alioss\n oss:\n endpoint: oss-cn-beijing.aliyuncs.com\n accessKey: ??\n secretKey: ??\n staticDomain: ??\n bucketName: ??\n # minio\n minio:\n minio_url: http://minio.jeecg.com\n minio_name: ??\n minio_pass: ??\n bucketName: ??\n#输出sql日志\nlogging:\n level:\n org.jeecg.modules.jmreport : debug', '66319da04963c4c7217f807bf1bd5f2d', '2022-12-16 10:44:25', '2024-01-30 20:44:36', 'nacos', '0:0:0:0:0:0:0:1', '', '', '', '', '', 'yaml', '', ''); +INSERT INTO `config_info` (`id`, `data_id`, `group_id`, `content`, `md5`, `gmt_create`, `gmt_modified`, `src_user`, `src_ip`, `app_name`, `tenant_id`, `c_desc`, `c_use`, `effect`, `type`, `c_schema`, `encrypted_data_key`) VALUES (15, 'pigx-app-server-biz-dev.yml', 'DEFAULT_GROUP', '# 数据源\nspring:\n datasource:\n type: com.alibaba.druid.pool.DruidDataSource\n druid:\n driver-class-name: com.mysql.cj.jdbc.Driver\n username: ${MYSQL_USER:root}\n password: ${MYSQL_PWD:root}\n url: jdbc:mysql://${MYSQL_HOST:pigx-mysql}:${MYSQL_PORT:3306}/${MYSQL_DB:pigxx_app}?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8&allowMultiQueries=true&allowPublicKeyRetrieval=true', 'e4668a1854e92a5a666e83479ef7d26a', '2022-12-19 10:30:07', '2024-02-22 15:09:50', 'nacos', '0:0:0:0:0:0:0:1', '', '', '', '', '', 'yaml', '', ''); +INSERT INTO `config_info` (`id`, `data_id`, `group_id`, `content`, `md5`, `gmt_create`, `gmt_modified`, `src_user`, `src_ip`, `app_name`, `tenant_id`, `c_desc`, `c_use`, `effect`, `type`, `c_schema`, `encrypted_data_key`) VALUES (16, 'pigx-flow-engine-biz-dev.yml', 'DEFAULT_GROUP', '# 数据源\nspring:\n datasource:\n type: com.alibaba.druid.pool.DruidDataSource\n druid:\n driver-class-name: com.mysql.cj.jdbc.Driver\n username: ${MYSQL_USER:root}\n password: ${MYSQL_PWD:root}\n url: jdbc:mysql://${MYSQL_HOST:pigx-mysql}:${MYSQL_PORT:3306}/${MYSQL_DB:pigxx_flow}?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8&allowMultiQueries=true&nullCatalogMeansCurrent=true', '233121e20445609e1ba378c3686ea7d5', '2023-07-28 13:41:32', '2023-07-28 13:43:36', 'nacos', '0:0:0:0:0:0:0:1', '', '', 'flowable 工作引擎', '', '', 'yaml', '', ''); +INSERT INTO `config_info` (`id`, `data_id`, `group_id`, `content`, `md5`, `gmt_create`, `gmt_modified`, `src_user`, `src_ip`, `app_name`, `tenant_id`, `c_desc`, `c_use`, `effect`, `type`, `c_schema`, `encrypted_data_key`) VALUES (17, 'pigx-flow-task-biz-dev.yml', 'DEFAULT_GROUP', '# 数据源\nspring:\n datasource:\n type: com.alibaba.druid.pool.DruidDataSource\n druid:\n driver-class-name: com.mysql.cj.jdbc.Driver\n username: ${MYSQL_USER:root}\n password: ${MYSQL_PWD:root}\n url: jdbc:mysql://${MYSQL_HOST:pigx-mysql}:${MYSQL_PORT:3306}/${MYSQL_DB:pigxx_flow}?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8&allowMultiQueries=true&nullCatalogMeansCurrent=true', '233121e20445609e1ba378c3686ea7d5', '2023-07-28 13:44:25', '2024-02-22 15:09:34', 'nacos', '0:0:0:0:0:0:0:1', '', '', 'flowable 业务', '', '', 'yaml', '', ''); COMMIT; + -- ---------------------------- -- Table structure for config_info_aggr -- ---------------------------- diff --git a/db/8pigxx_codegen.sql b/db/8pigxx_codegen.sql index 36a352949..605773bc5 100644 --- a/db/8pigxx_codegen.sql +++ b/db/8pigxx_codegen.sql @@ -151,7 +151,7 @@ CREATE TABLE `gen_table` ( `package_name` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '项目包名', `version` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '项目版本号', `i18n` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '0' COMMENT '是否生成带有i18n 0 不带有 1带有', - `style` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '0' COMMENT '代码风格', + `style` bigint DEFAULT '1' COMMENT '代码风格', `child_table_name` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '子表名称', `main_field` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '主表关联键', `child_field` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '子表关联键', @@ -293,4 +293,23 @@ INSERT INTO `gen_template_group` VALUES (2, 18); INSERT INTO `gen_template_group` VALUES (2, 19); COMMIT; +-- ---------------------------- +-- Table structure for gen_create_table +-- ---------------------------- +DROP TABLE IF EXISTS `gen_create_table`; +CREATE TABLE `gen_create_table` ( + `id` bigint NOT NULL COMMENT '主键ID', + `table_name` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '表名称', + `ds_name` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '数据源', + `comments` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '表注释', + `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '创建人', + `update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL, + `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `update_time` datetime DEFAULT NULL, + `column_info` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '字段信息', + `del_flag` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '删除标记', + `tenant_id` bigint DEFAULT NULL COMMENT '租户ID', + PRIMARY KEY (`id`) USING BTREE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin ROW_FORMAT=DYNAMIC COMMENT='自动创建表管理'; + SET FOREIGN_KEY_CHECKS = 1; diff --git a/db/999pigxx_app.sql b/db/999pigxx_app.sql index 78f03c371..be5ca51a8 100644 --- a/db/999pigxx_app.sql +++ b/db/999pigxx_app.sql @@ -203,7 +203,7 @@ CREATE TABLE `app_user` ( `nickname` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '拓展字段:昵称', `name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '拓展字段:姓名', `email` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '拓展字段:邮箱', - `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT ' ' COMMENT '创建人', + `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '创建人', `update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT ' ' COMMENT '修改人', `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间', diff --git a/db/Dockerfile b/db/Dockerfile index 3e29b3107..41da8e774 100644 --- a/db/Dockerfile +++ b/db/Dockerfile @@ -1,8 +1,9 @@ -FROM mysql/mysql-server:8.0.33 +FROM mysql/mysql-server:8.0.32 MAINTAINER lengleng(wangiegie@gmail.com) ENV TZ=Asia/Shanghai +ENV LANG C.UTF-8 RUN ln -sf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone diff --git a/pigx-app-server/pigx-app-server-api/pom.xml b/pigx-app-server/pigx-app-server-api/pom.xml index 0d9db1393..b3aa80463 100644 --- a/pigx-app-server/pigx-app-server-api/pom.xml +++ b/pigx-app-server/pigx-app-server-api/pom.xml @@ -7,7 +7,7 @@ com.pig4cloud pigx-app-server - 5.3.0 + 5.4.0 pigx-app-server-api diff --git a/pigx-app-server/pigx-app-server-api/src/main/java/com/pig4cloud/pigx/app/api/entity/AppArticleCategoryEntity.java b/pigx-app-server/pigx-app-server-api/src/main/java/com/pig4cloud/pigx/app/api/entity/AppArticleCategoryEntity.java index d07072b30..23df14c6a 100644 --- a/pigx-app-server/pigx-app-server-api/src/main/java/com/pig4cloud/pigx/app/api/entity/AppArticleCategoryEntity.java +++ b/pigx-app-server/pigx-app-server-api/src/main/java/com/pig4cloud/pigx/app/api/entity/AppArticleCategoryEntity.java @@ -2,6 +2,7 @@ package com.pig4cloud.pigx.app.api.entity; import com.baomidou.mybatisplus.annotation.*; import com.baomidou.mybatisplus.extension.activerecord.Model; +import com.pig4cloud.pigx.common.core.util.TenantTable; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; @@ -15,6 +16,7 @@ import java.time.LocalDateTime; * @date 2023-06-07 16:28:03 */ @Data +@TenantTable @TableName("app_article_category") @EqualsAndHashCode(callSuper = true) @Schema(description = "文章分类表") diff --git a/pigx-app-server/pigx-app-server-api/src/main/java/com/pig4cloud/pigx/app/api/entity/AppArticleCollectEntity.java b/pigx-app-server/pigx-app-server-api/src/main/java/com/pig4cloud/pigx/app/api/entity/AppArticleCollectEntity.java index fe1a28b02..fcbf5b63b 100644 --- a/pigx-app-server/pigx-app-server-api/src/main/java/com/pig4cloud/pigx/app/api/entity/AppArticleCollectEntity.java +++ b/pigx-app-server/pigx-app-server-api/src/main/java/com/pig4cloud/pigx/app/api/entity/AppArticleCollectEntity.java @@ -2,6 +2,7 @@ package com.pig4cloud.pigx.app.api.entity; import com.baomidou.mybatisplus.annotation.*; import com.baomidou.mybatisplus.extension.activerecord.Model; +import com.pig4cloud.pigx.common.core.util.TenantTable; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; @@ -15,6 +16,7 @@ import java.time.LocalDateTime; * @date 2023-06-16 14:33:41 */ @Data +@TenantTable @TableName("app_article_collect") @EqualsAndHashCode(callSuper = true) @Schema(description = "文章收藏表") diff --git a/pigx-app-server/pigx-app-server-api/src/main/java/com/pig4cloud/pigx/app/api/entity/AppArticleEntity.java b/pigx-app-server/pigx-app-server-api/src/main/java/com/pig4cloud/pigx/app/api/entity/AppArticleEntity.java index 22cd08ead..6acc8d1e6 100644 --- a/pigx-app-server/pigx-app-server-api/src/main/java/com/pig4cloud/pigx/app/api/entity/AppArticleEntity.java +++ b/pigx-app-server/pigx-app-server-api/src/main/java/com/pig4cloud/pigx/app/api/entity/AppArticleEntity.java @@ -2,6 +2,7 @@ package com.pig4cloud.pigx.app.api.entity; import com.baomidou.mybatisplus.annotation.*; import com.baomidou.mybatisplus.extension.activerecord.Model; +import com.pig4cloud.pigx.common.core.util.TenantTable; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; @@ -16,6 +17,7 @@ import java.time.LocalDateTime; * @date 2023-06-07 16:32:35 */ @Data +@TenantTable @FieldNameConstants @TableName("app_article") @EqualsAndHashCode(callSuper = true) diff --git a/pigx-app-server/pigx-app-server-api/src/main/java/com/pig4cloud/pigx/app/api/entity/AppPageEntity.java b/pigx-app-server/pigx-app-server-api/src/main/java/com/pig4cloud/pigx/app/api/entity/AppPageEntity.java index 74ed0c885..6859d75d3 100644 --- a/pigx-app-server/pigx-app-server-api/src/main/java/com/pig4cloud/pigx/app/api/entity/AppPageEntity.java +++ b/pigx-app-server/pigx-app-server-api/src/main/java/com/pig4cloud/pigx/app/api/entity/AppPageEntity.java @@ -2,6 +2,7 @@ package com.pig4cloud.pigx.app.api.entity; import com.baomidou.mybatisplus.annotation.*; import com.baomidou.mybatisplus.extension.activerecord.Model; +import com.pig4cloud.pigx.common.core.util.TenantTable; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; @@ -14,6 +15,7 @@ import java.time.LocalDateTime; * @date 2023-06-08 11:19:23 */ @Data +@TenantTable @TableName("app_page") @EqualsAndHashCode(callSuper = true) @Schema(description = "页面") diff --git a/pigx-app-server/pigx-app-server-api/src/main/java/com/pig4cloud/pigx/app/api/entity/AppRole.java b/pigx-app-server/pigx-app-server-api/src/main/java/com/pig4cloud/pigx/app/api/entity/AppRole.java index ed34378bc..ec63649a6 100644 --- a/pigx-app-server/pigx-app-server-api/src/main/java/com/pig4cloud/pigx/app/api/entity/AppRole.java +++ b/pigx-app-server/pigx-app-server-api/src/main/java/com/pig4cloud/pigx/app/api/entity/AppRole.java @@ -21,6 +21,7 @@ import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.extension.activerecord.Model; +import com.pig4cloud.pigx.common.core.util.TenantTable; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; @@ -34,6 +35,7 @@ import java.time.LocalDateTime; * @date 2022-12-07 09:52:03 */ @Data +@TenantTable @TableName("app_role") @EqualsAndHashCode(callSuper = true) @Schema(description = "app角色表") diff --git a/pigx-app-server/pigx-app-server-api/src/main/java/com/pig4cloud/pigx/app/api/entity/AppTabbarEntity.java b/pigx-app-server/pigx-app-server-api/src/main/java/com/pig4cloud/pigx/app/api/entity/AppTabbarEntity.java index 66dc8fc06..70a5bb8db 100644 --- a/pigx-app-server/pigx-app-server-api/src/main/java/com/pig4cloud/pigx/app/api/entity/AppTabbarEntity.java +++ b/pigx-app-server/pigx-app-server-api/src/main/java/com/pig4cloud/pigx/app/api/entity/AppTabbarEntity.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.*; import com.baomidou.mybatisplus.extension.activerecord.Model; import com.fasterxml.jackson.annotation.JsonRawValue; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.pig4cloud.pigx.common.core.util.TenantTable; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; @@ -17,6 +18,7 @@ import java.time.LocalDateTime; * @date 2023-06-08 11:18:46 */ @Data +@TenantTable @TableName("app_tabbar") @EqualsAndHashCode(callSuper = true) @Schema(description = "导航栏") diff --git a/pigx-app-server/pigx-app-server-api/src/main/java/com/pig4cloud/pigx/app/api/entity/AppUser.java b/pigx-app-server/pigx-app-server-api/src/main/java/com/pig4cloud/pigx/app/api/entity/AppUser.java index 12f5d5e63..e19428144 100644 --- a/pigx-app-server/pigx-app-server-api/src/main/java/com/pig4cloud/pigx/app/api/entity/AppUser.java +++ b/pigx-app-server/pigx-app-server-api/src/main/java/com/pig4cloud/pigx/app/api/entity/AppUser.java @@ -20,6 +20,7 @@ package com.pig4cloud.pigx.app.api.entity; import com.baomidou.mybatisplus.annotation.*; import com.baomidou.mybatisplus.extension.activerecord.Model; import com.fasterxml.jackson.annotation.JsonIgnore; +import com.pig4cloud.pigx.common.core.util.TenantTable; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; @@ -33,6 +34,7 @@ import java.time.LocalDateTime; * @date 2022-12-07 09:52:03 */ @Data +@TenantTable @TableName("app_user") @EqualsAndHashCode(callSuper = true) @Schema(description = "app用户表") diff --git a/pigx-app-server/pigx-app-server-biz/Dockerfile b/pigx-app-server/pigx-app-server-biz/Dockerfile index eb36b5700..fd840ef00 100644 --- a/pigx-app-server/pigx-app-server-biz/Dockerfile +++ b/pigx-app-server/pigx-app-server-biz/Dockerfile @@ -3,6 +3,7 @@ FROM alibabadragonwell/dragonwell:17-anolis MAINTAINER wangiegie@gmail.com ENV TZ=Asia/Shanghai +ENV LANG C.UTF-8 ENV JAVA_OPTS="-Xms512m -Xmx1024m -Djava.security.egd=file:/dev/./urandom" RUN ln -sf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone diff --git a/pigx-app-server/pigx-app-server-biz/pom.xml b/pigx-app-server/pigx-app-server-biz/pom.xml index 03a9bdc9d..8abf71684 100644 --- a/pigx-app-server/pigx-app-server-biz/pom.xml +++ b/pigx-app-server/pigx-app-server-biz/pom.xml @@ -7,7 +7,7 @@ com.pig4cloud pigx-app-server - 5.3.0 + 5.4.0 pigx-app-server-biz @@ -62,7 +62,7 @@ com.pig4cloud pigx-app-server-api - 5.3.0 + 5.4.0 @@ -72,7 +72,7 @@ com.baomidou - mybatis-plus-boot-starter + mybatis-plus-spring-boot3-starter diff --git a/pigx-app-server/pom.xml b/pigx-app-server/pom.xml index 1eb70da68..aace13919 100644 --- a/pigx-app-server/pom.xml +++ b/pigx-app-server/pom.xml @@ -7,7 +7,7 @@ com.pig4cloud pigx - 5.3.0 + 5.4.0 pigx-app-server diff --git a/pigx-auth/Dockerfile b/pigx-auth/Dockerfile index c65a91d8a..a799632fc 100644 --- a/pigx-auth/Dockerfile +++ b/pigx-auth/Dockerfile @@ -3,6 +3,7 @@ FROM alibabadragonwell/dragonwell:17-anolis MAINTAINER wangiegie@gmail.com ENV TZ=Asia/Shanghai +ENV LANG C.UTF-8 ENV JAVA_OPTS="-Xms128m -Xmx256m -Djava.security.egd=file:/dev/./urandom" RUN ln -sf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone diff --git a/pigx-auth/pom.xml b/pigx-auth/pom.xml index 1be77d4f0..bf126ed52 100644 --- a/pigx-auth/pom.xml +++ b/pigx-auth/pom.xml @@ -24,7 +24,7 @@ com.pig4cloud pigx - 5.3.0 + 5.4.0 pigx-auth diff --git a/pigx-auth/src/main/java/com/pig4cloud/pigx/auth/config/AuthorizationServerConfiguration.java b/pigx-auth/src/main/java/com/pig4cloud/pigx/auth/config/AuthorizationServerConfiguration.java index 51b56f01e..6f6e05a13 100644 --- a/pigx-auth/src/main/java/com/pig4cloud/pigx/auth/config/AuthorizationServerConfiguration.java +++ b/pigx-auth/src/main/java/com/pig4cloud/pigx/auth/config/AuthorizationServerConfiguration.java @@ -35,6 +35,7 @@ import org.springframework.context.annotation.Configuration; import org.springframework.core.Ordered; import org.springframework.core.annotation.Order; import org.springframework.security.authentication.AuthenticationManager; +import org.springframework.security.config.Customizer; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.oauth2.server.authorization.OAuth2AuthorizationService; import org.springframework.security.oauth2.server.authorization.config.annotation.web.configurers.OAuth2AuthorizationServerConfigurer; @@ -71,14 +72,14 @@ public class AuthorizationServerConfiguration { PigxAuthenticationFailureEventHandler failureEventHandler) throws Exception { OAuth2AuthorizationServerConfigurer authorizationServerConfigurer = new OAuth2AuthorizationServerConfigurer(); - http.apply(authorizationServerConfigurer.tokenEndpoint((tokenEndpoint) -> {// 个性化认证授权端点 + http.with(authorizationServerConfigurer.tokenEndpoint((tokenEndpoint) -> {// 个性化认证授权端点 tokenEndpoint.accessTokenRequestConverter(accessTokenRequestConverter()) // 注入自定义的授权认证Converter .accessTokenResponseHandler(successEventHandler) // 登录成功处理器 .errorResponseHandler(failureEventHandler);// 登录失败处理器 }).clientAuthentication(oAuth2ClientAuthenticationConfigurer -> // 个性化客户端认证 oAuth2ClientAuthenticationConfigurer.errorResponseHandler(failureEventHandler))// 处理客户端认证异常 .authorizationEndpoint(authorizationEndpoint -> authorizationEndpoint// 授权码端点个性化confirm页面 - .consentPage(SecurityConstants.CUSTOM_CONSENT_PAGE_URI))); + .consentPage(SecurityConstants.CUSTOM_CONSENT_PAGE_URI)),Customizer.withDefaults()); AntPathRequestMatcher[] requestMatchers = new AntPathRequestMatcher[] { AntPathRequestMatcher.antMatcher("/token/**"), AntPathRequestMatcher.antMatcher("/actuator/**"), @@ -89,10 +90,10 @@ public class AuthorizationServerConfiguration { authorizeRequests.requestMatchers(requestMatchers).permitAll(); authorizeRequests.anyRequest().authenticated(); }) - .apply(authorizationServerConfigurer.authorizationService(authorizationService)// redis存储token的实现 + .with(authorizationServerConfigurer.authorizationService(authorizationService)// redis存储token的实现 .authorizationServerSettings( - AuthorizationServerSettings.builder().issuer(SecurityConstants.PIGX_LICENSE).build())); - http.apply(new FormIdentityLoginConfigurer()); + AuthorizationServerSettings.builder().issuer(SecurityConstants.PIGX_LICENSE).build()), Customizer.withDefaults()); + http.with(new FormIdentityLoginConfigurer(), Customizer.withDefaults()); DefaultSecurityFilterChain securityFilterChain = http.build(); // 注入自定义授权模式实现 diff --git a/pigx-auth/src/main/java/com/pig4cloud/pigx/auth/support/core/PigxDaoAuthenticationProvider.java b/pigx-auth/src/main/java/com/pig4cloud/pigx/auth/support/core/PigxDaoAuthenticationProvider.java index 741037b38..2a63a4b92 100644 --- a/pigx-auth/src/main/java/com/pig4cloud/pigx/auth/support/core/PigxDaoAuthenticationProvider.java +++ b/pigx-auth/src/main/java/com/pig4cloud/pigx/auth/support/core/PigxDaoAuthenticationProvider.java @@ -61,7 +61,6 @@ public class PigxDaoAuthenticationProvider extends AbstractUserDetailsAuthentica } @Override - @SuppressWarnings("deprecation") protected void additionalAuthenticationChecks(UserDetails userDetails, UsernamePasswordAuthenticationToken authentication) throws AuthenticationException { diff --git a/pigx-common/pigx-common-audit/pom.xml b/pigx-common/pigx-common-audit/pom.xml index edb6b81a0..51e316040 100644 --- a/pigx-common/pigx-common-audit/pom.xml +++ b/pigx-common/pigx-common-audit/pom.xml @@ -5,7 +5,7 @@ com.pig4cloud pigx-common - 5.3.0 + 5.4.0 pigx-common-audit diff --git a/pigx-common/pigx-common-bom/pom.xml b/pigx-common/pigx-common-bom/pom.xml index 2d8d2be11..657e3ba9d 100644 --- a/pigx-common/pigx-common-bom/pom.xml +++ b/pigx-common/pigx-common-bom/pom.xml @@ -17,13 +17,13 @@ pigx 公共版本控制 - 5.3.0 - 3.5.4 - 1.4.6 - 4.2.0 + 5.4.0 + 3.5.5 + 1.4.10 + 4.3.0 1.2.20 - 5.8.22 - 8.0.33 + 5.8.26 + 8.3.0 21.3.0.0 8.4.1.jre8 8.1.2.192 @@ -31,13 +31,13 @@ 3.0.3 2.1.0 2.2.14 - 4.4.0 - 2.9.6-17 + 4.6.0 + 2.9.10-17 3.0.3 4.0.1 - 1.13.1 - 5.3.3 - 7.0.0.M1 + 1.15.3 + 5.4.1 + 7.0.0 2.5.2.RELEASE 1.2.83 2.3.0 @@ -139,6 +139,11 @@ pigx-common-xss ${pigx.version} + + com.pig4cloud + pigx-common-sse + ${pigx.version} + com.pig4cloud pigx-common-websocket @@ -183,12 +188,6 @@ asm ${asm.version} - - - io.seata - seata-serializer-kryo - ${seata.version} - com.baomidou @@ -198,7 +197,7 @@ com.baomidou - mybatis-plus-boot-starter + mybatis-plus-spring-boot3-starter ${mybatis-plus.version} diff --git a/pigx-common/pigx-common-core/pom.xml b/pigx-common/pigx-common-core/pom.xml index 607f2aeb3..f8bc507f2 100644 --- a/pigx-common/pigx-common-core/pom.xml +++ b/pigx-common/pigx-common-core/pom.xml @@ -24,7 +24,7 @@ com.pig4cloud pigx-common - 5.3.0 + 5.4.0 pigx-common-core diff --git a/pigx-common/pigx-common-core/src/main/java/com/pig4cloud/pigx/common/core/util/TenantTable.java b/pigx-common/pigx-common-core/src/main/java/com/pig4cloud/pigx/common/core/util/TenantTable.java new file mode 100644 index 000000000..5b722ec65 --- /dev/null +++ b/pigx-common/pigx-common-core/src/main/java/com/pig4cloud/pigx/common/core/util/TenantTable.java @@ -0,0 +1,15 @@ +package com.pig4cloud.pigx.common.core.util; + +import java.lang.annotation.*; + +/** + * @author lengleng + * @since v5.3 + *

+ * table 实体增加此组件自动声明为租户表 + */ +@Documented +@Retention(RetentionPolicy.RUNTIME) +@Target({ElementType.TYPE, ElementType.ANNOTATION_TYPE}) +public @interface TenantTable { +} diff --git a/pigx-common/pigx-common-data/pom.xml b/pigx-common/pigx-common-data/pom.xml index ceab4931c..0b3d0fb63 100644 --- a/pigx-common/pigx-common-data/pom.xml +++ b/pigx-common/pigx-common-data/pom.xml @@ -24,7 +24,7 @@ com.pig4cloud pigx-common - 5.3.0 + 5.4.0 pigx-common-data diff --git a/pigx-common/pigx-common-data/src/main/java/com/pig4cloud/pigx/common/data/cache/DefaultRedisCacheWriter.java b/pigx-common/pigx-common-data/src/main/java/com/pig4cloud/pigx/common/data/cache/DefaultRedisCacheWriter.java deleted file mode 100644 index 7014107d4..000000000 --- a/pigx-common/pigx-common-data/src/main/java/com/pig4cloud/pigx/common/data/cache/DefaultRedisCacheWriter.java +++ /dev/null @@ -1,298 +0,0 @@ -/* - * Copyright (c) 2018-2025, lengleng All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * Neither the name of the pig4cloud.com developer nor the names of its - * contributors may be used to endorse or promote products derived from - * this software without specific prior written permission. - * Author: lengleng (wangiegie@gmail.com) - */ - -package com.pig4cloud.pigx.common.data.cache; - -import org.springframework.dao.PessimisticLockingFailureException; -import org.springframework.data.redis.cache.CacheStatistics; -import org.springframework.data.redis.cache.CacheStatisticsCollector; -import org.springframework.data.redis.cache.RedisCacheWriter; -import org.springframework.data.redis.connection.RedisConnection; -import org.springframework.data.redis.connection.RedisConnectionFactory; -import org.springframework.data.redis.connection.RedisStringCommands.SetOption; -import org.springframework.data.redis.core.types.Expiration; -import org.springframework.lang.Nullable; -import org.springframework.util.Assert; - -import java.nio.charset.StandardCharsets; -import java.time.Duration; -import java.util.Collections; -import java.util.Optional; -import java.util.Set; -import java.util.concurrent.TimeUnit; -import java.util.function.Consumer; -import java.util.function.Function; - -/** - * {@link RedisCacheWriter} implementation capable of reading/writing binary data from/to - * Redis in {@literal standalone} and {@literal cluster} environments. Works upon a given - * {@link RedisConnectionFactory} to obtain the actual {@link RedisConnection}.
- * {@link DefaultRedisCacheWriter} can be used in - * {@link RedisCacheWriter#lockingRedisCacheWriter(RedisConnectionFactory) locking} or - * {@link RedisCacheWriter#nonLockingRedisCacheWriter(RedisConnectionFactory) non-locking} - * mode. While {@literal non-locking} aims for maximum performance it may result in - * overlapping, non atomic, command execution for operations spanning multiple Redis - * interactions like {@code putIfAbsent}. The {@literal locking} counterpart prevents - * command overlap by setting an explicit lock key and checking against presence of this - * key which leads to additional requests and potential command wait times. - * - * @author Christoph Strobl - * @author Mark Paluch - * @since 2.0 - */ -class DefaultRedisCacheWriter implements RedisCacheWriter { - - private final RedisConnectionFactory connectionFactory; - - private final Duration sleepTime; - - /** - * @param connectionFactory must not be {@literal null}. - */ - DefaultRedisCacheWriter(RedisConnectionFactory connectionFactory) { - this(connectionFactory, Duration.ZERO); - } - - /** - * @param connectionFactory must not be {@literal null}. - * @param sleepTime sleep time between lock request attempts. Must not be - * {@literal null}. Use {@link Duration#ZERO} to disable locking. - */ - private DefaultRedisCacheWriter(RedisConnectionFactory connectionFactory, Duration sleepTime) { - - Assert.notNull(connectionFactory, "ConnectionFactory must not be null!"); - Assert.notNull(sleepTime, "SleepTime must not be null!"); - - this.connectionFactory = connectionFactory; - this.sleepTime = sleepTime; - } - - @Override - public void put(String name, byte[] key, byte[] value, @Nullable Duration ttl) { - - Assert.notNull(name, "Name must not be null!"); - Assert.notNull(key, "Key must not be null!"); - Assert.notNull(value, "Value must not be null!"); - - execute(name, connection -> { - - if (shouldExpireWithin(ttl)) { - connection.set(key, value, Expiration.from(ttl.toMillis(), TimeUnit.MILLISECONDS), SetOption.upsert()); - } - else { - connection.set(key, value); - } - - return "OK"; - }); - } - - @Override - public byte[] get(String name, byte[] key) { - - Assert.notNull(name, "Name must not be null!"); - Assert.notNull(key, "Key must not be null!"); - - return execute(name, connection -> connection.get(key)); - } - - @Override - public byte[] putIfAbsent(String name, byte[] key, byte[] value, @Nullable Duration ttl) { - - Assert.notNull(name, "Name must not be null!"); - Assert.notNull(key, "Key must not be null!"); - Assert.notNull(value, "Value must not be null!"); - - return execute(name, connection -> { - - if (isLockingCacheWriter()) { - doLock(name, connection); - } - - try { - if (Boolean.TRUE.equals(connection.setNX(key, value))) { - - if (shouldExpireWithin(ttl)) { - connection.pExpire(key, ttl.toMillis()); - } - return null; - } - - return connection.get(key); - } - finally { - - if (isLockingCacheWriter()) { - doUnlock(name, connection); - } - } - }); - } - - /** - * 删除,原来是删除指定的键,目前修改为既可以删除指定键的数据,也是可以删除某个前缀开始的所有数据 - * @param name - * @param key - */ - @Override - public void remove(String name, byte[] key) { - - Assert.notNull(name, "Name must not be null!"); - Assert.notNull(key, "Key must not be null!"); - - execute(name, connection -> { - // 获取某个前缀所拥有的所有的键,某个前缀开头,后面肯定是* - Set keys = connection.keys(key); - int delNum = 0; - Assert.notNull(keys, "keys must not be null!"); - for (byte[] keyByte : keys) { - delNum += connection.del(keyByte); - } - return delNum; - }); - } - - @Override - public void clean(String name, byte[] pattern) { - - Assert.notNull(name, "Name must not be null!"); - Assert.notNull(pattern, "Pattern must not be null!"); - - execute(name, connection -> { - - boolean wasLocked = false; - - try { - - if (isLockingCacheWriter()) { - doLock(name, connection); - wasLocked = true; - } - - byte[][] keys = Optional.ofNullable(connection.keys(pattern)) - .orElse(Collections.emptySet()) - .toArray(new byte[0][]); - - if (keys.length > 0) { - connection.del(keys); - } - } - finally { - - if (wasLocked && isLockingCacheWriter()) { - doUnlock(name, connection); - } - } - - return "OK"; - }); - } - - @Override - public void clearStatistics(String s) { - - } - - @Override - public RedisCacheWriter withStatisticsCollector(CacheStatisticsCollector cacheStatisticsCollector) { - return null; - } - - /** - * Explicitly set a write lock on a cache. - * @param name the name of the cache to lock. - */ - void lock(String name) { - execute(name, connection -> doLock(name, connection)); - } - - /** - * Explicitly remove a write lock from a cache. - * @param name the name of the cache to unlock. - */ - void unlock(String name) { - executeLockFree(connection -> doUnlock(name, connection)); - } - - private Boolean doLock(String name, RedisConnection connection) { - return connection.setNX(createCacheLockKey(name), new byte[0]); - } - - private Long doUnlock(String name, RedisConnection connection) { - return connection.del(createCacheLockKey(name)); - } - - boolean doCheckLock(String name, RedisConnection connection) { - return connection.exists(createCacheLockKey(name)); - } - - /** - * @return {@literal true} if {@link RedisCacheWriter} uses locks. - */ - private boolean isLockingCacheWriter() { - return !sleepTime.isZero() && !sleepTime.isNegative(); - } - - private T execute(String name, Function callback) { - - try (RedisConnection connection = connectionFactory.getConnection()) { - checkAndPotentiallyWaitUntilUnlocked(name, connection); - return callback.apply(connection); - } - } - - private void executeLockFree(Consumer callback) { - try (RedisConnection connection = connectionFactory.getConnection()) { - callback.accept(connection); - } - } - - private void checkAndPotentiallyWaitUntilUnlocked(String name, RedisConnection connection) { - - if (!isLockingCacheWriter()) { - return; - } - - try { - while (doCheckLock(name, connection)) { - Thread.sleep(sleepTime.toMillis()); - } - } - catch (InterruptedException ex) { - - // Re-interrupt current thread, to allow other participants to react. - Thread.currentThread().interrupt(); - - throw new PessimisticLockingFailureException( - String.format("Interrupted while waiting to unlock cache %s", name), ex); - } - } - - private static boolean shouldExpireWithin(@Nullable Duration ttl) { - return ttl != null && !ttl.isZero() && !ttl.isNegative(); - } - - private static byte[] createCacheLockKey(String name) { - return (name + "~lock").getBytes(StandardCharsets.UTF_8); - } - - @Override - public CacheStatistics getCacheStatistics(String s) { - return null; - } - -} diff --git a/pigx-common/pigx-common-data/src/main/java/com/pig4cloud/pigx/common/data/cache/RedisAutoCacheManager.java b/pigx-common/pigx-common-data/src/main/java/com/pig4cloud/pigx/common/data/cache/RedisAutoCacheManager.java index 17fc7716f..8c0452418 100644 --- a/pigx-common/pigx-common-data/src/main/java/com/pig4cloud/pigx/common/data/cache/RedisAutoCacheManager.java +++ b/pigx-common/pigx-common-data/src/main/java/com/pig4cloud/pigx/common/data/cache/RedisAutoCacheManager.java @@ -48,11 +48,13 @@ public class RedisAutoCacheManager extends RedisCacheManager { private static final int CACHE_LENGTH = 2; - RedisAutoCacheManager(RedisCacheWriter cacheWriter, RedisCacheConfiguration defaultCacheConfiguration, - Map initialCacheConfigurations, boolean allowInFlightCacheCreation) { - super(cacheWriter, defaultCacheConfiguration, initialCacheConfigurations, allowInFlightCacheCreation); + public RedisAutoCacheManager(RedisCacheWriter cacheWriter, RedisCacheConfiguration defaultCacheConfiguration, + boolean allowInFlightCacheCreation, + Map initialCacheConfigurations) { + super(cacheWriter, defaultCacheConfiguration, allowInFlightCacheCreation, initialCacheConfigurations); } + @Override protected RedisCache createRedisCache(String name, @Nullable RedisCacheConfiguration cacheConfig) { if (StrUtil.isBlank(name) || !name.contains(SPLIT_FLAG)) { diff --git a/pigx-common/pigx-common-data/src/main/java/com/pig4cloud/pigx/common/data/cache/RedisCacheAutoConfiguration.java b/pigx-common/pigx-common-data/src/main/java/com/pig4cloud/pigx/common/data/cache/RedisCacheAutoConfiguration.java index beb2eda4a..8bebbb3e7 100644 --- a/pigx-common/pigx-common-data/src/main/java/com/pig4cloud/pigx/common/data/cache/RedisCacheAutoConfiguration.java +++ b/pigx-common/pigx-common-data/src/main/java/com/pig4cloud/pigx/common/data/cache/RedisCacheAutoConfiguration.java @@ -24,20 +24,21 @@ import org.springframework.boot.autoconfigure.cache.CacheProperties; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.data.redis.RedisAutoConfiguration; import org.springframework.boot.context.properties.EnableConfigurationProperties; +import org.springframework.cache.CacheManager; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Primary; -import org.springframework.core.io.ResourceLoader; import org.springframework.data.redis.cache.RedisCacheConfiguration; -import org.springframework.data.redis.cache.RedisCacheManager; +import org.springframework.data.redis.cache.RedisCacheWriter; import org.springframework.data.redis.connection.RedisConnectionFactory; -import org.springframework.data.redis.serializer.JdkSerializationRedisSerializer; import org.springframework.data.redis.serializer.RedisSerializationContext; +import org.springframework.data.redis.serializer.RedisSerializer; import org.springframework.lang.Nullable; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; +import java.util.Objects; /** * 扩展redis-cache支持注解cacheName添加超时时间 @@ -45,70 +46,74 @@ import java.util.Map; * @author L.cm */ @Configuration -@AutoConfigureAfter({ RedisAutoConfiguration.class }) -@ConditionalOnBean({ RedisConnectionFactory.class }) +@AutoConfigureAfter({RedisAutoConfiguration.class}) +@ConditionalOnBean({RedisConnectionFactory.class}) @EnableConfigurationProperties(CacheProperties.class) public class RedisCacheAutoConfiguration { - private final CacheProperties cacheProperties; + private final CacheProperties cacheProperties; - private final CacheManagerCustomizers customizerInvoker; + private final CacheManagerCustomizers customizerInvoker; - @Nullable - private final RedisCacheConfiguration redisCacheConfiguration; + @Nullable + private final RedisCacheConfiguration redisCacheConfiguration; - RedisCacheAutoConfiguration(CacheProperties cacheProperties, CacheManagerCustomizers customizerInvoker, - ObjectProvider redisCacheConfiguration) { - this.cacheProperties = cacheProperties; - this.customizerInvoker = customizerInvoker; - this.redisCacheConfiguration = redisCacheConfiguration.getIfAvailable(); - } + RedisCacheAutoConfiguration(CacheProperties cacheProperties, CacheManagerCustomizers customizerInvoker, + ObjectProvider redisCacheConfiguration) { + this.cacheProperties = cacheProperties; + this.customizerInvoker = customizerInvoker; + this.redisCacheConfiguration = redisCacheConfiguration.getIfAvailable(); + } - @Bean - @Primary - public RedisCacheManager cacheManager(RedisConnectionFactory connectionFactory, ResourceLoader resourceLoader) { - DefaultRedisCacheWriter redisCacheWriter = new DefaultRedisCacheWriter(connectionFactory); - RedisCacheConfiguration cacheConfiguration = this.determineConfiguration(resourceLoader.getClassLoader()); - List cacheNames = this.cacheProperties.getCacheNames(); - Map initialCaches = new LinkedHashMap<>(); - if (!cacheNames.isEmpty()) { - Map cacheConfigMap = new LinkedHashMap<>(cacheNames.size()); - cacheNames.forEach(it -> cacheConfigMap.put(it, cacheConfiguration)); - initialCaches.putAll(cacheConfigMap); - } - RedisAutoCacheManager cacheManager = new RedisAutoCacheManager(redisCacheWriter, cacheConfiguration, - initialCaches, true); - cacheManager.setTransactionAware(false); - return this.customizerInvoker.customize(cacheManager); - } + @Primary + @Bean("cacheResolver") + public CacheManager redisCacheManager(ObjectProvider connectionFactoryObjectProvider) { + RedisConnectionFactory connectionFactory = connectionFactoryObjectProvider.getIfAvailable(); + Objects.requireNonNull(connectionFactory, "Bean RedisConnectionFactory is null."); + RedisCacheWriter redisCacheWriter = RedisCacheWriter.nonLockingRedisCacheWriter(connectionFactory); + RedisCacheConfiguration cacheConfiguration = this.determineConfiguration(); + List cacheNames = this.cacheProperties.getCacheNames(); + Map initialCaches = new LinkedHashMap<>(); + if (!cacheNames.isEmpty()) { + Map cacheConfigMap = new LinkedHashMap<>(cacheNames.size()); + cacheNames.forEach(it -> cacheConfigMap.put(it, cacheConfiguration)); + initialCaches.putAll(cacheConfigMap); + } + boolean allowInFlightCacheCreation = true; + boolean enableTransactions = false; + RedisAutoCacheManager cacheManager = new RedisAutoCacheManager( + redisCacheWriter, cacheConfiguration, allowInFlightCacheCreation, initialCaches + ); + cacheManager.setTransactionAware(enableTransactions); + return this.customizerInvoker.customize(cacheManager); + } - private RedisCacheConfiguration determineConfiguration(ClassLoader classLoader) { - if (this.redisCacheConfiguration != null) { - return this.redisCacheConfiguration; - } - else { - CacheProperties.Redis redisProperties = this.cacheProperties.getRedis(); - RedisCacheConfiguration config = RedisCacheConfiguration.defaultCacheConfig(); - config = config.serializeValuesWith(RedisSerializationContext.SerializationPair - .fromSerializer(new JdkSerializationRedisSerializer(classLoader))); - if (redisProperties.getTimeToLive() != null) { - config = config.entryTtl(redisProperties.getTimeToLive()); - } + private RedisCacheConfiguration determineConfiguration() { + if (this.redisCacheConfiguration != null) { + return this.redisCacheConfiguration; + } else { + CacheProperties.Redis redisProperties = this.cacheProperties.getRedis(); + RedisCacheConfiguration config = RedisCacheConfiguration.defaultCacheConfig(); + config = config.serializeValuesWith(RedisSerializationContext.SerializationPair + .fromSerializer(RedisSerializer.java())); + if (redisProperties.getTimeToLive() != null) { + config = config.entryTtl(redisProperties.getTimeToLive()); + } - if (redisProperties.getKeyPrefix() != null) { - config = config.prefixCacheNameWith(redisProperties.getKeyPrefix()); - } + if (redisProperties.getKeyPrefix() != null) { + config = config.prefixCacheNameWith(redisProperties.getKeyPrefix()); + } - if (!redisProperties.isCacheNullValues()) { - config = config.disableCachingNullValues(); - } + if (!redisProperties.isCacheNullValues()) { + config = config.disableCachingNullValues(); + } - if (!redisProperties.isUseKeyPrefix()) { - config = config.disableKeyPrefix(); - } + if (!redisProperties.isUseKeyPrefix()) { + config = config.disableKeyPrefix(); + } - return config; - } - } + return config; + } + } } diff --git a/pigx-common/pigx-common-data/src/main/java/com/pig4cloud/pigx/common/data/mybatis/DruidSqlLogFilter.java b/pigx-common/pigx-common-data/src/main/java/com/pig4cloud/pigx/common/data/mybatis/DruidSqlLogFilter.java index f1825b556..1dd957acb 100644 --- a/pigx-common/pigx-common-data/src/main/java/com/pig4cloud/pigx/common/data/mybatis/DruidSqlLogFilter.java +++ b/pigx-common/pigx-common-data/src/main/java/com/pig4cloud/pigx/common/data/mybatis/DruidSqlLogFilter.java @@ -23,12 +23,12 @@ import com.alibaba.druid.DbType; import com.alibaba.druid.filter.FilterChain; import com.alibaba.druid.filter.FilterEventAdapter; import com.alibaba.druid.proxy.jdbc.JdbcParameter; -import com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl; import com.alibaba.druid.proxy.jdbc.ResultSetProxy; import com.alibaba.druid.proxy.jdbc.StatementProxy; import com.alibaba.druid.spring.boot3.autoconfigure.DruidDataSourceAutoConfigure; import com.alibaba.druid.sql.SQLUtils; import com.alibaba.druid.sql.ast.SQLStatement; +import com.alibaba.druid.sql.dialect.sqlserver.visitor.SQLServerSchemaStatVisitor; import com.alibaba.druid.sql.visitor.SchemaStatVisitor; import com.alibaba.druid.stat.TableStat; import com.alibaba.druid.util.StringUtils; @@ -36,7 +36,6 @@ import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.context.annotation.Import; -import java.sql.ResultSetMetaData; import java.sql.SQLException; import java.time.temporal.TemporalAccessor; import java.util.ArrayList; @@ -195,7 +194,14 @@ public class DruidSqlLogFilter extends FilterEventAdapter { List stmtList = SQLUtils.parseStatements(sql, dbType); for (SQLStatement stmt : stmtList) { // 也可以用更精确的解析器,如MySqlSchemaStatVisitor - SchemaStatVisitor visitor = new SchemaStatVisitor(); + SchemaStatVisitor visitor; + // SQL server 数据库特殊处理 + if (DbType.sqlserver.name().equalsIgnoreCase(dbType)) { + visitor = new SQLServerSchemaStatVisitor(); + } + else { + visitor = new SchemaStatVisitor(); + } stmt.accept(visitor); Map tables = visitor.getTables(); for (TableStat.Name name : tables.keySet()) { diff --git a/pigx-common/pigx-common-data/src/main/java/com/pig4cloud/pigx/common/data/resolver/SqlFilterArgumentResolver.java b/pigx-common/pigx-common-data/src/main/java/com/pig4cloud/pigx/common/data/resolver/SqlFilterArgumentResolver.java index 60d762972..3c37d3463 100644 --- a/pigx-common/pigx-common-data/src/main/java/com/pig4cloud/pigx/common/data/resolver/SqlFilterArgumentResolver.java +++ b/pigx-common/pigx-common-data/src/main/java/com/pig4cloud/pigx/common/data/resolver/SqlFilterArgumentResolver.java @@ -20,6 +20,7 @@ package com.pig4cloud.pigx.common.data.resolver; import cn.hutool.core.comparator.CompareUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.metadata.OrderItem; +import com.baomidou.mybatisplus.core.toolkit.sql.SqlInjectionUtils; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.pig4cloud.pigx.common.core.exception.CheckedException; import jakarta.servlet.http.HttpServletRequest; @@ -34,7 +35,6 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Optional; -import java.util.function.Predicate; import java.util.stream.Collectors; /** @@ -96,25 +96,16 @@ public class SqlFilterArgumentResolver implements HandlerMethodArgumentResolver List orderItemList = new ArrayList<>(); Optional.ofNullable(ascs) .ifPresent(s -> orderItemList.addAll(Arrays.stream(s.split(StrUtil.COMMA)) - .filter(sqlInjectPredicate()) + .filter(SqlInjectionUtils::check) .map(OrderItem::asc) .collect(Collectors.toList()))); Optional.ofNullable(descs) .ifPresent(s -> orderItemList.addAll(Arrays.stream(s.split(StrUtil.COMMA)) - .filter(sqlInjectPredicate()) + .filter(SqlInjectionUtils::check) .map(OrderItem::desc) .collect(Collectors.toList()))); page.addOrder(orderItemList); return page; } - - /** - * 判断用户输入里面有没有关键字 - * @return Predicate - */ - private Predicate sqlInjectPredicate() { - return sql -> Arrays.stream(KEYWORDS).noneMatch(keyword -> StrUtil.containsIgnoreCase(sql, keyword)); - } - } diff --git a/pigx-common/pigx-common-data/src/main/java/com/pig4cloud/pigx/common/data/tenant/PigxTenantHandler.java b/pigx-common/pigx-common-data/src/main/java/com/pig4cloud/pigx/common/data/tenant/PigxTenantHandler.java index a58f7d37a..b843d1391 100644 --- a/pigx-common/pigx-common-data/src/main/java/com/pig4cloud/pigx/common/data/tenant/PigxTenantHandler.java +++ b/pigx-common/pigx-common-data/src/main/java/com/pig4cloud/pigx/common/data/tenant/PigxTenantHandler.java @@ -17,12 +17,18 @@ package com.pig4cloud.pigx.common.data.tenant; +import com.baomidou.mybatisplus.core.metadata.TableInfo; +import com.baomidou.mybatisplus.core.metadata.TableInfoHelper; import com.baomidou.mybatisplus.extension.plugins.handler.TenantLineHandler; +import com.pig4cloud.pigx.common.core.util.TenantTable; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import net.sf.jsqlparser.expression.Expression; import net.sf.jsqlparser.expression.LongValue; import net.sf.jsqlparser.expression.NullValue; +import org.springframework.core.annotation.AnnotationUtils; + +import java.util.Objects; /** * @author lengleng @@ -34,54 +40,63 @@ import net.sf.jsqlparser.expression.NullValue; @RequiredArgsConstructor public class PigxTenantHandler implements TenantLineHandler { - private final PigxTenantConfigProperties properties; + private final PigxTenantConfigProperties properties; - /** - * 获取租户 ID 值表达式,只支持单个 ID 值 - *

- * @return 租户 ID 值表达式 - */ - @Override - public Expression getTenantId() { - Long tenantId = TenantContextHolder.getTenantId(); - log.debug("当前租户为 >> {}", tenantId); + /** + * 获取租户 ID 值表达式,只支持单个 ID 值 + *

+ * + * @return 租户 ID 值表达式 + */ + @Override + public Expression getTenantId() { + Long tenantId = TenantContextHolder.getTenantId(); + log.debug("当前租户为 >> {}", tenantId); - if (tenantId == null) { - return new NullValue(); - } - return new LongValue(tenantId); - } + if (tenantId == null) { + return new NullValue(); + } + return new LongValue(tenantId); + } - /** - * 获取租户字段名 - * @return 租户字段名 - */ - @Override - public String getTenantIdColumn() { - return properties.getColumn(); - } + /** + * 获取租户字段名 + * + * @return 租户字段名 + */ + @Override + public String getTenantIdColumn() { + return properties.getColumn(); + } - /** - * 根据表名判断是否忽略拼接多租户条件 - *

- * 默认都要进行解析并拼接多租户条件 - * @param tableName 表名 - * @return 是否忽略, true:表示忽略,false:需要解析并拼接多租户条件 - */ - @Override - public boolean ignoreTable(String tableName) { - // 判断是否跳过当前查询的租户过滤 - if (TenantContextHolder.getTenantSkip()) { - return Boolean.TRUE; - } + /** + * 根据表名判断是否忽略拼接多租户条件 + *

+ * 默认都要进行解析并拼接多租户条件 + * + * @param tableName 表名 + * @return 是否忽略, true:表示忽略,false:需要解析并拼接多租户条件 + */ + @Override + public boolean ignoreTable(String tableName) { + // 判断是否跳过当前查询的租户过滤 + if (TenantContextHolder.getTenantSkip()) { + return Boolean.TRUE; + } - Long tenantId = TenantContextHolder.getTenantId(); - // 租户中ID 为空,查询全部,不进行过滤 - if (tenantId == null) { - return Boolean.TRUE; - } + Long tenantId = TenantContextHolder.getTenantId(); + // 租户中ID 为空,查询全部,不进行过滤 + if (tenantId == null) { + return Boolean.TRUE; + } - return !properties.getTables().contains(tableName); - } + // 判断实体类是否标记为多租户隔离 + TableInfo tableInfo = TableInfoHelper.getTableInfo(tableName); + TenantTable annotation = null; + if (Objects.nonNull(tableInfo)) { + annotation = AnnotationUtils.findAnnotation(tableInfo.getEntityType(), TenantTable.class); + } + return !properties.getTables().contains(tableName) && annotation == null; + } } diff --git a/pigx-common/pigx-common-datasource/pom.xml b/pigx-common/pigx-common-datasource/pom.xml index d6201a5bc..ed7dc7105 100644 --- a/pigx-common/pigx-common-datasource/pom.xml +++ b/pigx-common/pigx-common-datasource/pom.xml @@ -5,7 +5,7 @@ pigx-common com.pig4cloud - 5.3.0 + 5.4.0 4.0.0 diff --git a/pigx-common/pigx-common-encrypt-api/pom.xml b/pigx-common/pigx-common-encrypt-api/pom.xml index 3130d3f91..63650c8c2 100644 --- a/pigx-common/pigx-common-encrypt-api/pom.xml +++ b/pigx-common/pigx-common-encrypt-api/pom.xml @@ -24,7 +24,7 @@ com.pig4cloud pigx-common - 5.3.0 + 5.4.0 pigx-common-encrypt-api diff --git a/pigx-common/pigx-common-excel/pom.xml b/pigx-common/pigx-common-excel/pom.xml index 718ef85a4..6354d7982 100644 --- a/pigx-common/pigx-common-excel/pom.xml +++ b/pigx-common/pigx-common-excel/pom.xml @@ -24,7 +24,7 @@ com.pig4cloud pigx-common - 5.3.0 + 5.4.0 pigx-common-excel diff --git a/pigx-common/pigx-common-feign/pom.xml b/pigx-common/pigx-common-feign/pom.xml index 58ba11758..43f6ef2dd 100755 --- a/pigx-common/pigx-common-feign/pom.xml +++ b/pigx-common/pigx-common-feign/pom.xml @@ -5,7 +5,7 @@ com.pig4cloud pigx-common - 5.3.0 + 5.4.0 4.0.0 diff --git a/pigx-common/pigx-common-gateway/pom.xml b/pigx-common/pigx-common-gateway/pom.xml index f5da10422..f203b35ee 100644 --- a/pigx-common/pigx-common-gateway/pom.xml +++ b/pigx-common/pigx-common-gateway/pom.xml @@ -24,7 +24,7 @@ com.pig4cloud pigx-common - 5.3.0 + 5.4.0 pigx-common-gateway @@ -59,5 +59,10 @@ org.springframework.cloud spring-cloud-starter-loadbalancer + + org.springframework + spring-webflux + true + diff --git a/pigx-common/pigx-common-gateway/src/main/java/com/pig4cloud/pigx/common/gateway/configuration/GlobalExceptionConfiguration.java b/pigx-common/pigx-common-gateway/src/main/java/com/pig4cloud/pigx/common/gateway/configuration/GlobalExceptionConfiguration.java index 6b863399f..773d23c43 100644 --- a/pigx-common/pigx-common-gateway/src/main/java/com/pig4cloud/pigx/common/gateway/configuration/GlobalExceptionConfiguration.java +++ b/pigx-common/pigx-common-gateway/src/main/java/com/pig4cloud/pigx/common/gateway/configuration/GlobalExceptionConfiguration.java @@ -9,18 +9,22 @@ import org.springframework.boot.web.reactive.error.ErrorWebExceptionHandler; import org.springframework.context.annotation.Configuration; import org.springframework.core.annotation.Order; import org.springframework.core.io.buffer.DataBufferFactory; +import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.http.server.reactive.ServerHttpResponse; +import org.springframework.web.bind.annotation.ExceptionHandler; +import org.springframework.web.bind.annotation.ResponseStatus; +import org.springframework.web.bind.annotation.RestControllerAdvice; import org.springframework.web.server.ResponseStatusException; import org.springframework.web.server.ServerWebExchange; -import org.springframework.web.server.handler.ResponseStatusExceptionHandler; import reactor.core.publisher.Mono; +import org.springframework.web.reactive.resource.NoResourceFoundException; /** * @author lengleng * @date 2023-07-30 *

- * 网关异常通用处理器,只作用在webflux 环境下 , 优先级低于 {@link ResponseStatusExceptionHandler} 执行 + * 网关异常通用处理器,只作用在webflux 环境下 , 优先级低于 ReactiveNoResourceFoundHandler 执行 */ @Slf4j @Order(-1) @@ -28,34 +32,54 @@ import reactor.core.publisher.Mono; @RequiredArgsConstructor public class GlobalExceptionConfiguration implements ErrorWebExceptionHandler { - private final ObjectMapper objectMapper; + private final ObjectMapper objectMapper; - @Override - public Mono handle(ServerWebExchange exchange, Throwable ex) { - ServerHttpResponse response = exchange.getResponse(); + @Override + public Mono handle(ServerWebExchange exchange, Throwable ex) { + ServerHttpResponse response = exchange.getResponse(); - if (response.isCommitted()) { - return Mono.error(ex); - } + if (response.isCommitted()) { + return Mono.error(ex); + } - // header set - response.getHeaders().setContentType(MediaType.APPLICATION_JSON); - if (ex instanceof ResponseStatusException) { - response.setStatusCode(((ResponseStatusException) ex).getStatusCode()); - } + // header set + response.getHeaders().setContentType(MediaType.APPLICATION_JSON); + if (ex instanceof ResponseStatusException) { + response.setStatusCode(((ResponseStatusException) ex).getStatusCode()); + } - return response.writeWith(Mono.fromSupplier(() -> { - DataBufferFactory bufferFactory = response.bufferFactory(); - try { - log.error("Error rquest :{} Error Spring Cloud Gateway : {}", exchange.getRequest().getPath(), - ex.getMessage()); - return bufferFactory.wrap(objectMapper.writeValueAsBytes(R.failed(ex.getMessage()))); - } - catch (JsonProcessingException e) { - log.warn("Error writing response", ex); - return bufferFactory.wrap(new byte[0]); - } - })); - } + return response.writeWith(Mono.fromSupplier(() -> { + DataBufferFactory bufferFactory = response.bufferFactory(); + try { + log.error("Error request :{} Error Spring Cloud Gateway : {}", exchange.getRequest().getPath(), + ex.getMessage()); + return bufferFactory.wrap(objectMapper.writeValueAsBytes(R.failed(ex.getMessage()))); + } catch (JsonProcessingException e) { + log.warn("Error writing response", ex); + return bufferFactory.wrap(new byte[0]); + } + })); + } + +} + + +/** + * 保持和低版本请求路径不存在的行为一致 + *

+ * [Spring Boot + * 3.2.0] 404 Not Found behavior #38733 + */ +@Slf4j +@RestControllerAdvice +class ReactiveNoResourceFoundHandler { + + + @ExceptionHandler({NoResourceFoundException.class}) + @ResponseStatus(HttpStatus.NOT_FOUND) + public R noResourceFoundException(NoResourceFoundException exception) { + log.debug("请求路径 404 {}", exception.getMessage()); + return R.failed(exception.getMessage()); + } } diff --git a/pigx-common/pigx-common-gray/pom.xml b/pigx-common/pigx-common-gray/pom.xml index bb9538e00..e7c94a1d1 100644 --- a/pigx-common/pigx-common-gray/pom.xml +++ b/pigx-common/pigx-common-gray/pom.xml @@ -24,7 +24,7 @@ com.pig4cloud pigx-common - 5.3.0 + 5.4.0 pigx-common-gray diff --git a/pigx-common/pigx-common-idempotent/pom.xml b/pigx-common/pigx-common-idempotent/pom.xml index f75ceefc6..140451f2e 100644 --- a/pigx-common/pigx-common-idempotent/pom.xml +++ b/pigx-common/pigx-common-idempotent/pom.xml @@ -5,7 +5,7 @@ com.pig4cloud pigx-common - 5.3.0 + 5.4.0 pigx-common-idempotent diff --git a/pigx-common/pigx-common-job/pom.xml b/pigx-common/pigx-common-job/pom.xml index d1f19131d..6abb82133 100644 --- a/pigx-common/pigx-common-job/pom.xml +++ b/pigx-common/pigx-common-job/pom.xml @@ -24,7 +24,7 @@ com.pig4cloud pigx-common - 5.3.0 + 5.4.0 pigx-common-job diff --git a/pigx-common/pigx-common-log/pom.xml b/pigx-common/pigx-common-log/pom.xml index 6a4f8aa2f..4dbbd4bc2 100644 --- a/pigx-common/pigx-common-log/pom.xml +++ b/pigx-common/pigx-common-log/pom.xml @@ -24,7 +24,7 @@ com.pig4cloud pigx-common - 5.3.0 + 5.4.0 pigx-common-log diff --git a/pigx-common/pigx-common-log/src/main/java/com/pig4cloud/pigx/common/log/util/SysLogUtils.java b/pigx-common/pigx-common-log/src/main/java/com/pig4cloud/pigx/common/log/util/SysLogUtils.java index 38c56eb4f..5d21ff151 100755 --- a/pigx-common/pigx-common-log/src/main/java/com/pig4cloud/pigx/common/log/util/SysLogUtils.java +++ b/pigx-common/pigx-common-log/src/main/java/com/pig4cloud/pigx/common/log/util/SysLogUtils.java @@ -61,7 +61,8 @@ public class SysLogUtils { sysLog.setRemoteAddr(JakartaServletUtil.getClientIP(request)); sysLog.setUserAgent(request.getHeader(HttpHeaders.USER_AGENT)); sysLog.setCreateBy(getUsername()); - sysLog.setServiceId(getClientId()); + // 获取服务名称 + sysLog.setServiceId(SpringUtil.getProperty("spring.application.name")); // get 参数脱敏 PigxLogProperties logProperties = SpringUtil.getBean(PigxLogProperties.class); diff --git a/pigx-common/pigx-common-oss/pom.xml b/pigx-common/pigx-common-oss/pom.xml index 80bc44739..beab85ca0 100755 --- a/pigx-common/pigx-common-oss/pom.xml +++ b/pigx-common/pigx-common-oss/pom.xml @@ -6,7 +6,7 @@ com.pig4cloud pigx-common - 5.3.0 + 5.4.0 pigx-common-oss diff --git a/pigx-common/pigx-common-oss/src/main/java/com/pig4cloud/pigx/common/file/local/LocalFileTemplate.java b/pigx-common/pigx-common-oss/src/main/java/com/pig4cloud/pigx/common/file/local/LocalFileTemplate.java index fe050c536..14b811c1a 100644 --- a/pigx-common/pigx-common-oss/src/main/java/com/pig4cloud/pigx/common/file/local/LocalFileTemplate.java +++ b/pigx-common/pigx-common-oss/src/main/java/com/pig4cloud/pigx/common/file/local/LocalFileTemplate.java @@ -166,7 +166,7 @@ public class LocalFileTemplate implements FileTemplate { return Arrays.stream(FileUtil.ls(dir)).filter(file -> file.getName().startsWith(prefix)).map(file -> { S3ObjectSummary summary = new S3ObjectSummary(); summary.setKey(file.getName()); - return new S3ObjectSummary(); + return summary; }).collect(Collectors.toList()); } diff --git a/pigx-common/pigx-common-seata/pom.xml b/pigx-common/pigx-common-seata/pom.xml index 16858cbfe..6fdeb0dc3 100644 --- a/pigx-common/pigx-common-seata/pom.xml +++ b/pigx-common/pigx-common-seata/pom.xml @@ -23,7 +23,7 @@ com.pig4cloud pigx-common - 5.3.0 + 5.4.0 pigx-common-seata diff --git a/pigx-common/pigx-common-security/pom.xml b/pigx-common/pigx-common-security/pom.xml index b29113ce9..4269599c9 100644 --- a/pigx-common/pigx-common-security/pom.xml +++ b/pigx-common/pigx-common-security/pom.xml @@ -23,7 +23,7 @@ com.pig4cloud pigx-common - 5.3.0 + 5.4.0 pigx-common-security diff --git a/pigx-common/pigx-common-security/src/main/java/com/pig4cloud/pigx/common/security/util/SecurityUtils.java b/pigx-common/pigx-common-security/src/main/java/com/pig4cloud/pigx/common/security/util/SecurityUtils.java index abe04b869..e3fdde258 100644 --- a/pigx-common/pigx-common-security/src/main/java/com/pig4cloud/pigx/common/security/util/SecurityUtils.java +++ b/pigx-common/pigx-common-security/src/main/java/com/pig4cloud/pigx/common/security/util/SecurityUtils.java @@ -70,7 +70,7 @@ public class SecurityUtils { * 获取用户角色信息 * @return 角色集合 */ - public List getRoles() { + public List getRoleIds() { Authentication authentication = getAuthentication(); Collection authorities = authentication.getAuthorities(); diff --git a/pigx-common/pigx-common-sentinel/pom.xml b/pigx-common/pigx-common-sentinel/pom.xml index e3f5ef485..c9ccdd816 100755 --- a/pigx-common/pigx-common-sentinel/pom.xml +++ b/pigx-common/pigx-common-sentinel/pom.xml @@ -1,40 +1,51 @@ - - com.pig4cloud - pigx-common - 5.3.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"> + + com.pig4cloud + pigx-common + 5.4.0 + - 4.0.0 - jar - pigx-common-sentinel - sentinel服务降级熔断、限流组件 - - - com.pig4cloud - pigx-common-core - - - com.alibaba.cloud - spring-cloud-starter-alibaba-sentinel - - - - org.springframework.cloud - spring-cloud-starter-openfeign - - - - io.github.openfeign - feign-okhttp - - - - org.springframework.security - spring-security-core - - + 4.0.0 + jar + pigx-common-sentinel + sentinel服务降级熔断、限流组件 + + + com.pig4cloud + pigx-common-core + + + com.alibaba.cloud + spring-cloud-starter-alibaba-sentinel + + + + org.springframework.cloud + spring-cloud-starter-openfeign + + + + io.github.openfeign + feign-okhttp + + + + org.springframework.security + spring-security-core + + + + org.springframework + spring-webmvc + true + + + org.springframework + spring-webflux + true + + diff --git a/pigx-common/pigx-common-sentinel/src/main/java/com/pig4cloud/pigx/common/sentinel/SentinelAutoConfiguration.java b/pigx-common/pigx-common-sentinel/src/main/java/com/pig4cloud/pigx/common/sentinel/PigxSentinelAutoConfiguration.java similarity index 58% rename from pigx-common/pigx-common-sentinel/src/main/java/com/pig4cloud/pigx/common/sentinel/SentinelAutoConfiguration.java rename to pigx-common/pigx-common-sentinel/src/main/java/com/pig4cloud/pigx/common/sentinel/PigxSentinelAutoConfiguration.java index f4b37c5fb..6bf549674 100755 --- a/pigx-common/pigx-common-sentinel/src/main/java/com/pig4cloud/pigx/common/sentinel/SentinelAutoConfiguration.java +++ b/pigx-common/pigx-common-sentinel/src/main/java/com/pig4cloud/pigx/common/sentinel/PigxSentinelAutoConfiguration.java @@ -21,12 +21,14 @@ import com.alibaba.cloud.sentinel.feign.SentinelFeignAutoConfiguration; import com.alibaba.csp.sentinel.adapter.spring.webmvc.callback.BlockExceptionHandler; import com.alibaba.csp.sentinel.adapter.spring.webmvc.callback.RequestOriginParser; import com.pig4cloud.pigx.common.sentinel.feign.PigxSentinelFeign; +import com.pig4cloud.pigx.common.sentinel.handle.GlobalBizExceptionHandler; import com.pig4cloud.pigx.common.sentinel.handle.PigxUrlBlockHandler; import com.pig4cloud.pigx.common.sentinel.parser.PigxHeaderRequestOriginParser; import feign.Feign; import org.springframework.boot.autoconfigure.AutoConfigureBefore; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; +import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Scope; @@ -39,26 +41,45 @@ import org.springframework.context.annotation.Scope; */ @Configuration(proxyBeanMethods = false) @AutoConfigureBefore(SentinelFeignAutoConfiguration.class) -public class SentinelAutoConfiguration { +public class PigxSentinelAutoConfiguration { - @Bean - @Scope("prototype") - @ConditionalOnMissingBean - @ConditionalOnProperty(name = "spring.cloud.openfeign.sentinel.enabled") - public Feign.Builder feignSentinelBuilder() { - return PigxSentinelFeign.builder(); - } + @Bean + @Scope("prototype") + @ConditionalOnMissingBean + @ConditionalOnProperty(name = "spring.cloud.openfeign.sentinel.enabled") + public Feign.Builder feignSentinelBuilder() { + return PigxSentinelFeign.builder(); + } - @Bean - @ConditionalOnMissingBean - public BlockExceptionHandler blockExceptionHandler() { - return new PigxUrlBlockHandler(); - } + @Bean + @ConditionalOnMissingBean + /** + * 创建一个块异常处理器实例 + * 如果没有定义块异常处理器,则创建一个PigxUrlBlockHandler实例 + */ + public BlockExceptionHandler blockExceptionHandler() { + return new PigxUrlBlockHandler(); + } + + @Bean + @ConditionalOnMissingBean + /** + * 创建一个请求源解析器实例 + * 如果没有定义请求源解析器,则创建一个PigxHeaderRequestOriginParser实例 + */ + public RequestOriginParser requestOriginParser() { + return new PigxHeaderRequestOriginParser(); + } + + /** + * 创建一个全局业务异常处理器实例 + * 用于处理全局的业务异常 + */ + @Bean + @ConditionalOnWebApplication(type = ConditionalOnWebApplication.Type.SERVLET) + public GlobalBizExceptionHandler globalBizExceptionHandler() { + return new GlobalBizExceptionHandler(); + } - @Bean - @ConditionalOnMissingBean - public RequestOriginParser requestOriginParser() { - return new PigxHeaderRequestOriginParser(); - } } diff --git a/pigx-common/pigx-common-sentinel/src/main/java/com/pig4cloud/pigx/common/sentinel/feign/PigxSentinelFeign.java b/pigx-common/pigx-common-sentinel/src/main/java/com/pig4cloud/pigx/common/sentinel/feign/PigxSentinelFeign.java index f4e06d82d..dfcfa8eb0 100644 --- a/pigx-common/pigx-common-sentinel/src/main/java/com/pig4cloud/pigx/common/sentinel/feign/PigxSentinelFeign.java +++ b/pigx-common/pigx-common-sentinel/src/main/java/com/pig4cloud/pigx/common/sentinel/feign/PigxSentinelFeign.java @@ -12,14 +12,15 @@ import org.springframework.cloud.openfeign.FeignClientFactory; import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; import org.springframework.core.annotation.AnnotationUtils; +import org.springframework.util.ReflectionUtils; import org.springframework.util.StringUtils; +import java.lang.reflect.Field; import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; import java.util.Map; - /** - * 重写 {@link com.alibaba.cloud.sentinel.feign.SentinelFeign} 支持自动降级注入 + * 支持自动降级注入 重写 {@link com.alibaba.cloud.sentinel.feign.SentinelFeign} * * @author lengleng * @date 2020/6/9 @@ -54,14 +55,15 @@ public final class PigxSentinelFeign { } @Override - public Feign build() { + public Feign internalBuild() { super.invocationHandlerFactory(new InvocationHandlerFactory() { @Override public InvocationHandler create(Target target, Map dispatch) { + // 查找 FeignClient 上的 降级策略 FeignClient feignClient = AnnotationUtils.findAnnotation(target.type(), FeignClient.class); - Class fallback = feignClient.fallback(); - Class fallbackFactory = feignClient.fallbackFactory(); + Class fallback = feignClient.fallback(); + Class fallbackFactory = feignClient.fallbackFactory(); String beanName = feignClient.contextId(); if (!StringUtils.hasText(beanName)) { @@ -69,26 +71,26 @@ public final class PigxSentinelFeign { } Object fallbackInstance; - FallbackFactory fallbackFactoryInstance; - // check fallback and fallbackFactory properties + FallbackFactory fallbackFactoryInstance; if (void.class != fallback) { fallbackInstance = getFromContext(beanName, "fallback", fallback, target.type()); return new PigxSentinelInvocationHandler(target, dispatch, new FallbackFactory.Default(fallbackInstance)); } + if (void.class != fallbackFactory) { - fallbackFactoryInstance = (FallbackFactory) getFromContext(beanName, "fallbackFactory", + fallbackFactoryInstance = (FallbackFactory) getFromContext(beanName, "fallbackFactory", fallbackFactory, FallbackFactory.class); return new PigxSentinelInvocationHandler(target, dispatch, fallbackFactoryInstance); } return new PigxSentinelInvocationHandler(target, dispatch); } - private Object getFromContext(String name, String type, Class fallbackType, Class targetType) { + private Object getFromContext(String name, String type, Class fallbackType, Class targetType) { Object fallbackInstance = feignClientFactory.getInstance(name, fallbackType); if (fallbackInstance == null) { throw new IllegalStateException(String - .format("No %s instance of type %s found for feign client %s", type, fallbackType, name)); + .format("No %s instance of type %s found for feign client %s", type, fallbackType, name)); } if (!targetType.isAssignableFrom(fallbackType)) { @@ -101,13 +103,25 @@ public final class PigxSentinelFeign { }); super.contract(new SentinelContractHolder(contract)); - return super.build(); + return super.internalBuild(); + } + + private Object getFieldValue(Object instance, String fieldName) { + Field field = ReflectionUtils.findField(instance.getClass(), fieldName); + field.setAccessible(true); + try { + return field.get(instance); + } + catch (IllegalAccessException e) { + // ignore + } + return null; } @Override public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { this.applicationContext = applicationContext; - feignClientFactory = this.applicationContext.getBean(FeignClientFactory.class); + this.feignClientFactory = this.applicationContext.getBean(FeignClientFactory.class); } } diff --git a/pigx-common/pigx-common-sentinel/src/main/java/com/pig4cloud/pigx/common/sentinel/handle/GlobalBizExceptionHandler.java b/pigx-common/pigx-common-sentinel/src/main/java/com/pig4cloud/pigx/common/sentinel/handle/GlobalBizExceptionHandler.java index c2d053987..9c2485eeb 100644 --- a/pigx-common/pigx-common-sentinel/src/main/java/com/pig4cloud/pigx/common/sentinel/handle/GlobalBizExceptionHandler.java +++ b/pigx-common/pigx-common-sentinel/src/main/java/com/pig4cloud/pigx/common/sentinel/handle/GlobalBizExceptionHandler.java @@ -28,6 +28,7 @@ import org.springframework.security.access.AccessDeniedException; import org.springframework.validation.BindException; import org.springframework.validation.FieldError; import org.springframework.web.bind.annotation.*; +import org.springframework.web.servlet.resource.NoResourceFoundException; import java.util.List; @@ -36,7 +37,6 @@ import java.util.List; * @date 2020-06-29 */ @Slf4j -@RestController @RestControllerAdvice public class GlobalBizExceptionHandler { @@ -109,4 +109,20 @@ public class GlobalBizExceptionHandler { return R.failed(HttpStatus.NOT_FOUND.getReasonPhrase()); } + /** + * 保持和低版本请求路径不存在的行为一致 + *

+ * [Spring Boot + * 3.2.0] 404 Not Found behavior #38733 + * + * @param exception + * @return R + */ + @ExceptionHandler({NoResourceFoundException.class}) + @ResponseStatus(HttpStatus.NOT_FOUND) + public R noResourceFoundException(NoResourceFoundException exception) { + log.debug("请求路径 404 {}", exception.getMessage()); + return R.failed(exception.getMessage()); + } + } diff --git a/pigx-common/pigx-common-sentinel/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/pigx-common/pigx-common-sentinel/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports index 0585eb055..3c7aac509 100644 --- a/pigx-common/pigx-common-sentinel/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports +++ b/pigx-common/pigx-common-sentinel/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -1,2 +1 @@ -com.pig4cloud.pigx.common.sentinel.SentinelAutoConfiguration -com.pig4cloud.pigx.common.sentinel.handle.GlobalBizExceptionHandler +com.pig4cloud.pigx.common.sentinel.PigxSentinelAutoConfiguration diff --git a/pigx-common/pigx-common-sequence/pom.xml b/pigx-common/pigx-common-sequence/pom.xml index 6e993f742..1db3ced21 100755 --- a/pigx-common/pigx-common-sequence/pom.xml +++ b/pigx-common/pigx-common-sequence/pom.xml @@ -6,7 +6,7 @@ com.pig4cloud pigx-common - 5.3.0 + 5.4.0 pigx-common-sequence diff --git a/pigx-common/pigx-common-sequence/src/main/java/com/pig4cloud/pigx/common/sequence/range/impl/db/DbSeqRangeMgr.java b/pigx-common/pigx-common-sequence/src/main/java/com/pig4cloud/pigx/common/sequence/range/impl/db/DbSeqRangeMgr.java index 17be26438..c352414a0 100755 --- a/pigx-common/pigx-common-sequence/src/main/java/com/pig4cloud/pigx/common/sequence/range/impl/db/DbSeqRangeMgr.java +++ b/pigx-common/pigx-common-sequence/src/main/java/com/pig4cloud/pigx/common/sequence/range/impl/db/DbSeqRangeMgr.java @@ -1,10 +1,12 @@ package com.pig4cloud.pigx.common.sequence.range.impl.db; +import cn.hutool.core.thread.ThreadUtil; import com.pig4cloud.pigx.common.sequence.exception.SeqException; import com.pig4cloud.pigx.common.sequence.range.SeqRange; import com.pig4cloud.pigx.common.sequence.range.SeqRangeMgr; import javax.sql.DataSource; +import java.util.concurrent.TimeUnit; /** * DB区间管理器 @@ -60,7 +62,9 @@ public class DbSeqRangeMgr implements SeqRangeMgr { if (BaseDbHelper.updateRange(getDataSource(), getRealTableName(), newValue, oldValue, name)) { return new SeqRange(oldValue + 1, newValue); } - // else 失败重试 + + // else 1秒后 失败重试 + ThreadUtil.sleep(1, TimeUnit.SECONDS); } throw new SeqException("Retried too many times, retryTimes = " + getRetryTimes()); diff --git a/pigx-common/pigx-common-sse/pom.xml b/pigx-common/pigx-common-sse/pom.xml new file mode 100755 index 000000000..c805d3722 --- /dev/null +++ b/pigx-common/pigx-common-sse/pom.xml @@ -0,0 +1,33 @@ + + + 4.0.0 + + com.pig4cloud + pigx-common + 5.4.0 + + + pigx-common-sse + jar + + pigx sse 服务端推送 + + + + org.springframework.data + spring-data-redis + + + + cn.hutool + hutool-json + + + + com.pig4cloud + pigx-common-security + + + diff --git a/pigx-common/pigx-common-sse/src/main/java/com/pig4cloud/pigx/common/sse/config/LocalMessageDistributorConfiguration.java b/pigx-common/pigx-common-sse/src/main/java/com/pig4cloud/pigx/common/sse/config/LocalMessageDistributorConfiguration.java new file mode 100644 index 000000000..0d30ad835 --- /dev/null +++ b/pigx-common/pigx-common-sse/src/main/java/com/pig4cloud/pigx/common/sse/config/LocalMessageDistributorConfiguration.java @@ -0,0 +1,30 @@ +package com.pig4cloud.pigx.common.sse.config; + +import com.pig4cloud.pigx.common.sse.distribute.LocalMessageDistributor; +import com.pig4cloud.pigx.common.sse.distribute.MessageDistributor; +import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +/** + * 本地的消息分发器配置 + * + * @author lengleng + */ +@ConditionalOnProperty(prefix = SseEmitterProperties.PREFIX, name = "message-distributor", + havingValue = MessageDistributorTypeConstants.LOCAL) +@Configuration(proxyBeanMethods = false) +public class LocalMessageDistributorConfiguration { + + /** + * 本地基于内存的消息分发,不支持集群 + * @return LocalMessageDistributor + */ + @Bean + @ConditionalOnMissingBean(MessageDistributor.class) + public LocalMessageDistributor messageDistributor() { + return new LocalMessageDistributor(); + } + +} diff --git a/pigx-common/pigx-common-sse/src/main/java/com/pig4cloud/pigx/common/sse/config/MessageDistributorTypeConstants.java b/pigx-common/pigx-common-sse/src/main/java/com/pig4cloud/pigx/common/sse/config/MessageDistributorTypeConstants.java new file mode 100644 index 000000000..6ae8cee0b --- /dev/null +++ b/pigx-common/pigx-common-sse/src/main/java/com/pig4cloud/pigx/common/sse/config/MessageDistributorTypeConstants.java @@ -0,0 +1,26 @@ +package com.pig4cloud.pigx.common.sse.config; + +/** + * @author lengleng + */ +public final class MessageDistributorTypeConstants { + + private MessageDistributorTypeConstants() { + } + + /** + * 本地 + */ + public static final String LOCAL = "local"; + + /** + * 基于 Redis PUB/SUB + */ + public static final String REDIS = "redis"; + + /** + * 自定义 + */ + public static final String CUSTOM = "custom"; + +} diff --git a/pigx-common/pigx-common-sse/src/main/java/com/pig4cloud/pigx/common/sse/config/RedisMessageDistributorConfiguration.java b/pigx-common/pigx-common-sse/src/main/java/com/pig4cloud/pigx/common/sse/config/RedisMessageDistributorConfiguration.java new file mode 100644 index 000000000..72010638d --- /dev/null +++ b/pigx-common/pigx-common-sse/src/main/java/com/pig4cloud/pigx/common/sse/config/RedisMessageDistributorConfiguration.java @@ -0,0 +1,69 @@ +package com.pig4cloud.pigx.common.sse.config; + +import com.pig4cloud.pigx.common.sse.distribute.MessageDistributor; +import com.pig4cloud.pigx.common.sse.distribute.RedisMessageDistributor; +import com.pig4cloud.pigx.common.sse.distribute.RedisSseEmitterMessageListener; +import jakarta.annotation.PostConstruct; +import lombok.RequiredArgsConstructor; +import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; +import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; +import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.data.redis.connection.RedisConnectionFactory; +import org.springframework.data.redis.core.StringRedisTemplate; +import org.springframework.data.redis.listener.PatternTopic; +import org.springframework.data.redis.listener.RedisMessageListenerContainer; + +/** + * 基于 Redis Pub/Sub 的消息分发器 + * + * @author lengleng + */ +@ConditionalOnClass(StringRedisTemplate.class) +@ConditionalOnProperty(prefix = SseEmitterProperties.PREFIX, name = "message-distributor", + havingValue = MessageDistributorTypeConstants.REDIS, matchIfMissing = true) +@Configuration(proxyBeanMethods = false) +public class RedisMessageDistributorConfiguration { + + @Bean + @ConditionalOnMissingBean(MessageDistributor.class) + public RedisMessageDistributor messageDistributor(StringRedisTemplate stringRedisTemplate) { + return new RedisMessageDistributor(stringRedisTemplate); + } + + @Bean + @ConditionalOnBean(RedisMessageDistributor.class) + @ConditionalOnMissingBean + public RedisSseEmitterMessageListener redisWebsocketMessageListener(StringRedisTemplate stringRedisTemplate) { + return new RedisSseEmitterMessageListener(stringRedisTemplate); + } + + @Bean + @ConditionalOnBean(RedisMessageDistributor.class) + @ConditionalOnMissingBean + public RedisMessageListenerContainer redisMessageListenerContainer(RedisConnectionFactory connectionFactory) { + RedisMessageListenerContainer container = new RedisMessageListenerContainer(); + container.setConnectionFactory(connectionFactory); + return container; + } + + @Configuration(proxyBeanMethods = false) + @ConditionalOnMissingBean(MessageDistributor.class) + @RequiredArgsConstructor + static class RedisMessageListenerRegisterConfiguration { + + private final RedisMessageListenerContainer redisMessageListenerContainer; + + private final RedisSseEmitterMessageListener redisWebsocketMessageListener; + + @PostConstruct + public void addMessageListener() { + redisMessageListenerContainer.addMessageListener(redisWebsocketMessageListener, + new PatternTopic(RedisSseEmitterMessageListener.CHANNEL)); + } + + } + +} diff --git a/pigx-common/pigx-common-sse/src/main/java/com/pig4cloud/pigx/common/sse/config/SseEmitterAutoConfiguration.java b/pigx-common/pigx-common-sse/src/main/java/com/pig4cloud/pigx/common/sse/config/SseEmitterAutoConfiguration.java new file mode 100644 index 000000000..c2fa9cdec --- /dev/null +++ b/pigx-common/pigx-common-sse/src/main/java/com/pig4cloud/pigx/common/sse/config/SseEmitterAutoConfiguration.java @@ -0,0 +1,21 @@ +package com.pig4cloud.pigx.common.sse.config; + +import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; +import org.springframework.boot.context.properties.EnableConfigurationProperties; +import org.springframework.context.annotation.Bean; + +/** + * websocket自动配置 + * + * @author Yakir + */ +@EnableConfigurationProperties(SseEmitterProperties.class) +public class SseEmitterAutoConfiguration { + + @Bean + @ConditionalOnMissingBean + public SseEmitterEndpoint sseEmitterEndpoint() { + return new SseEmitterEndpoint(); + } + +} diff --git a/pigx-common/pigx-common-sse/src/main/java/com/pig4cloud/pigx/common/sse/config/SseEmitterEndpoint.java b/pigx-common/pigx-common-sse/src/main/java/com/pig4cloud/pigx/common/sse/config/SseEmitterEndpoint.java new file mode 100644 index 000000000..b39693c6c --- /dev/null +++ b/pigx-common/pigx-common-sse/src/main/java/com/pig4cloud/pigx/common/sse/config/SseEmitterEndpoint.java @@ -0,0 +1,45 @@ +package com.pig4cloud.pigx.common.sse.config; + +import com.pig4cloud.pigx.common.security.util.SecurityUtils; +import com.pig4cloud.pigx.common.sse.holder.SseEmitterHolder; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.servlet.mvc.method.annotation.SseEmitter; + +import java.util.Objects; + +/** + * @author lengleng + * @date 2023/12/11 + */ +@Slf4j +@RestController +@RequiredArgsConstructor +@RequestMapping("/sse") +public class SseEmitterEndpoint { + + @RequestMapping("/info") + public SseEmitter info() { + SseEmitter sseEmitter = new SseEmitter(0L); + + if (Objects.isNull(SecurityUtils.getUser())) { + log.debug("MSG: SseConnectError"); + return null; + } + log.info("MSG: SseConnect | EmitterHash: {} | ID: {}", sseEmitter.hashCode(), SecurityUtils.getUser().getId()); + sseEmitter.onCompletion(() -> { + log.info("MSG: SseConnectCompletion | EmitterHash: {} |ID: {}", sseEmitter.hashCode(), SecurityUtils.getUser().getId()); + }); + sseEmitter.onTimeout(() -> { + log.error("MSG: SseConnectTimeout | EmitterHash: {} |ID: {} ", sseEmitter.hashCode(), SecurityUtils.getUser().getId()); + }); + sseEmitter.onError(t -> { + log.error("MSG: SseConnectError | EmitterHash: {} |ID: {}", sseEmitter.hashCode(), SecurityUtils.getUser().getId()); + }); + SseEmitterHolder.addSseEmitter(SecurityUtils.getUser().getId(), sseEmitter); + return sseEmitter; + } + +} diff --git a/pigx-common/pigx-common-sse/src/main/java/com/pig4cloud/pigx/common/sse/config/SseEmitterMessageSender.java b/pigx-common/pigx-common-sse/src/main/java/com/pig4cloud/pigx/common/sse/config/SseEmitterMessageSender.java new file mode 100644 index 000000000..c3a4b5922 --- /dev/null +++ b/pigx-common/pigx-common-sse/src/main/java/com/pig4cloud/pigx/common/sse/config/SseEmitterMessageSender.java @@ -0,0 +1,59 @@ +package com.pig4cloud.pigx.common.sse.config; + +import cn.hutool.core.util.ReflectUtil; +import com.pig4cloud.pigx.common.sse.holder.SseEmitterHolder; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.servlet.mvc.method.annotation.SseEmitter; + +import java.io.IOException; +import java.util.Collection; + +/** + * @author lengleng 2021/1/4 + * @version 1.0 + */ +@Slf4j +public class SseEmitterMessageSender { + + public static void broadcast(String message) { + Collection sseEmitters = SseEmitterHolder.getSseEmitters(); + for (SseEmitter sseEmitter : sseEmitters) { + send(sseEmitter, message); + } + } + + public static boolean send(Object sseEmitterKey, String message) { + SseEmitter sseEmitter = SseEmitterHolder.getSseEmitter(sseEmitterKey); + if (sseEmitter == null) { + log.info("[send] 当前 sseEmitterKey:{} 对应 sseEmitter 不在本服务中", sseEmitterKey); + return false; + } + else { + return send(sseEmitter, message); + } + } + + public static boolean send(SseEmitter sseEmitter, String message) { + if (sseEmitter == null) { + log.error("[send] sseEmitter 为 null"); + return false; + } + + Object sendFailed = ReflectUtil.getFieldValue(sseEmitter, "sendFailed"); + if ((boolean) sendFailed) { + log.error("[send] sseEmitter 已经关闭"); + SseEmitterHolder.removeSseEmitter(sseEmitter); + return false; + } + try { + sseEmitter.send(message); + } + catch (IOException e) { + log.error("[send] sseEmitter({}) 发送消息({}) 异常", sseEmitter, message, e); + SseEmitterHolder.removeSseEmitter(sseEmitter); + return false; + } + return true; + } + +} diff --git a/pigx-common/pigx-common-sse/src/main/java/com/pig4cloud/pigx/common/sse/config/SseEmitterProperties.java b/pigx-common/pigx-common-sse/src/main/java/com/pig4cloud/pigx/common/sse/config/SseEmitterProperties.java new file mode 100644 index 000000000..238969416 --- /dev/null +++ b/pigx-common/pigx-common-sse/src/main/java/com/pig4cloud/pigx/common/sse/config/SseEmitterProperties.java @@ -0,0 +1,28 @@ +package com.pig4cloud.pigx.common.sse.config; + +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; + +/** + * websocket props + * + * @author Yakir + */ +@Data +@ConfigurationProperties(SseEmitterProperties.PREFIX) +public class SseEmitterProperties { + + public static final String PREFIX = "pigx.sse"; + + /** + * 路径: 无参: /ws 有参: PathVariable: 单参: /ws/{test} 多参: /ws/{test1}/{test2} query: + * /ws?uid=1&name=test + */ + private String path = "/sse/info"; + + /** + * 消息分发器:local | redis,默认 local, 如果自定义的话,可以配置为其他任意值 + */ + private String messageDistributor = MessageDistributorTypeConstants.LOCAL; + +} diff --git a/pigx-common/pigx-common-sse/src/main/java/com/pig4cloud/pigx/common/sse/distribute/LocalMessageDistributor.java b/pigx-common/pigx-common-sse/src/main/java/com/pig4cloud/pigx/common/sse/distribute/LocalMessageDistributor.java new file mode 100644 index 000000000..9a7d92867 --- /dev/null +++ b/pigx-common/pigx-common-sse/src/main/java/com/pig4cloud/pigx/common/sse/distribute/LocalMessageDistributor.java @@ -0,0 +1,20 @@ +package com.pig4cloud.pigx.common.sse.distribute; + +/** + * 本地消息分发,直接进行发送 + * + * @author lengleng 2021/1/12 + * @version 1.0 + */ +public class LocalMessageDistributor implements MessageDistributor, MessageSender { + + /** + * 消息分发 + * @param messageDO 发送的消息 + */ + @Override + public void distribute(MessageDO messageDO) { + doSend(messageDO); + } + +} diff --git a/pigx-common/pigx-common-sse/src/main/java/com/pig4cloud/pigx/common/sse/distribute/MessageDO.java b/pigx-common/pigx-common-sse/src/main/java/com/pig4cloud/pigx/common/sse/distribute/MessageDO.java new file mode 100644 index 000000000..e1fd87688 --- /dev/null +++ b/pigx-common/pigx-common-sse/src/main/java/com/pig4cloud/pigx/common/sse/distribute/MessageDO.java @@ -0,0 +1,39 @@ +package com.pig4cloud.pigx.common.sse.distribute; + +import lombok.Data; +import lombok.experimental.Accessors; + +import java.util.List; + +/** + * @author lengleng 2021/1/12 + * @version 1.0 + */ +@Data +@Accessors(chain = true) +public class MessageDO { + + /** + * 是否广播 + */ + private Boolean needBroadcast; + + /** + * sessionKeys + */ + private List sessionKeys; + + /** + * 需要发送的消息文本 + */ + private String messageText; + + /** + * 构建需要广播的message + * @author lingting 2021-03-25 17:28 + */ + public static MessageDO broadcastMessage(String text) { + return new MessageDO().setMessageText(text).setNeedBroadcast(true); + } + +} diff --git a/pigx-common/pigx-common-sse/src/main/java/com/pig4cloud/pigx/common/sse/distribute/MessageDistributor.java b/pigx-common/pigx-common-sse/src/main/java/com/pig4cloud/pigx/common/sse/distribute/MessageDistributor.java new file mode 100644 index 000000000..a9f4981f5 --- /dev/null +++ b/pigx-common/pigx-common-sse/src/main/java/com/pig4cloud/pigx/common/sse/distribute/MessageDistributor.java @@ -0,0 +1,17 @@ +package com.pig4cloud.pigx.common.sse.distribute; + +/** + * 消息分发器 + * + * @author lengleng 2021/1/12 + * @version 1.0 + */ +public interface MessageDistributor { + + /** + * 消息分发 + * @param messageDO 发送的消息 + */ + void distribute(MessageDO messageDO); + +} diff --git a/pigx-common/pigx-common-sse/src/main/java/com/pig4cloud/pigx/common/sse/distribute/MessageSender.java b/pigx-common/pigx-common-sse/src/main/java/com/pig4cloud/pigx/common/sse/distribute/MessageSender.java new file mode 100644 index 000000000..728f6f50e --- /dev/null +++ b/pigx-common/pigx-common-sse/src/main/java/com/pig4cloud/pigx/common/sse/distribute/MessageSender.java @@ -0,0 +1,34 @@ +package com.pig4cloud.pigx.common.sse.distribute; + +import cn.hutool.core.collection.CollectionUtil; +import com.pig4cloud.pigx.common.sse.config.SseEmitterMessageSender; + +import java.util.List; + +/** + * @author lengleng 2021/1/12 + * @version 1.0 + */ +public interface MessageSender { + + /** + * 发送消息 + * @param messageDO 发送的消息 + */ + default void doSend(MessageDO messageDO) { + Boolean needBroadcast = messageDO.getNeedBroadcast(); + String messageText = messageDO.getMessageText(); + List sessionKeys = messageDO.getSessionKeys(); + if (needBroadcast != null && needBroadcast) { + // 广播信息 + SseEmitterMessageSender.broadcast(messageText); + } + else if (CollectionUtil.isNotEmpty(sessionKeys)) { + // 指定用户发送 + for (Object sessionKey : sessionKeys) { + SseEmitterMessageSender.send(sessionKey, messageText); + } + } + } + +} diff --git a/pigx-common/pigx-common-sse/src/main/java/com/pig4cloud/pigx/common/sse/distribute/RedisMessageDistributor.java b/pigx-common/pigx-common-sse/src/main/java/com/pig4cloud/pigx/common/sse/distribute/RedisMessageDistributor.java new file mode 100644 index 000000000..4e23f3743 --- /dev/null +++ b/pigx-common/pigx-common-sse/src/main/java/com/pig4cloud/pigx/common/sse/distribute/RedisMessageDistributor.java @@ -0,0 +1,35 @@ +package com.pig4cloud.pigx.common.sse.distribute; + +import cn.hutool.json.JSONUtil; +import lombok.RequiredArgsConstructor; +import org.springframework.data.redis.core.StringRedisTemplate; + +import java.util.ArrayList; +import java.util.List; + +/** + * 消息分发器 + * + * @author lengleng 2021/1/12 + * @version 1.0 + */ +@RequiredArgsConstructor +public class RedisMessageDistributor implements MessageDistributor { + + private final StringRedisTemplate stringRedisTemplate; + + /** + * 消息分发 + * @param messageDO 发送的消息 + */ + @Override + public void distribute(MessageDO messageDO) { + // 包装 sessionKey 适配分布式多环境 + List sessionKeyList = new ArrayList<>(messageDO.getSessionKeys()); + messageDO.setSessionKeys(sessionKeyList); + + String str = JSONUtil.toJsonStr(messageDO); + stringRedisTemplate.convertAndSend(RedisSseEmitterMessageListener.CHANNEL, str); + } + +} diff --git a/pigx-common/pigx-common-sse/src/main/java/com/pig4cloud/pigx/common/sse/distribute/RedisSseEmitterMessageListener.java b/pigx-common/pigx-common-sse/src/main/java/com/pig4cloud/pigx/common/sse/distribute/RedisSseEmitterMessageListener.java new file mode 100644 index 000000000..1da768434 --- /dev/null +++ b/pigx-common/pigx-common-sse/src/main/java/com/pig4cloud/pigx/common/sse/distribute/RedisSseEmitterMessageListener.java @@ -0,0 +1,41 @@ +package com.pig4cloud.pigx.common.sse.distribute; + +import cn.hutool.json.JSONUtil; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.data.redis.connection.Message; +import org.springframework.data.redis.connection.MessageListener; +import org.springframework.data.redis.core.StringRedisTemplate; +import org.springframework.data.redis.serializer.RedisSerializer; + +/** + * redis订阅 websocket 发送消息,接收到消息时进行推送 + * + * @author lengleng 2021/1/12 + * @version 1.0 + */ +@Slf4j +@RequiredArgsConstructor +public class RedisSseEmitterMessageListener implements MessageListener, MessageSender { + + public static final String CHANNEL = "sse-send"; + + private final StringRedisTemplate stringRedisTemplate; + + @Override + public void onMessage(Message message, byte[] bytes) { + log.info("redis channel Listener message send {}", message); + byte[] channelBytes = message.getChannel(); + RedisSerializer stringSerializer = stringRedisTemplate.getStringSerializer(); + String channel = stringSerializer.deserialize(channelBytes); + + // 这里没有使用通配符,所以一定是true + if (CHANNEL.equals(channel)) { + byte[] bodyBytes = message.getBody(); + String body = stringSerializer.deserialize(bodyBytes); + MessageDO messageDO = JSONUtil.toBean(body, MessageDO.class); + doSend(messageDO); + } + } + +} diff --git a/pigx-common/pigx-common-sse/src/main/java/com/pig4cloud/pigx/common/sse/holder/SseEmitterHolder.java b/pigx-common/pigx-common-sse/src/main/java/com/pig4cloud/pigx/common/sse/holder/SseEmitterHolder.java new file mode 100644 index 000000000..67f9c32fc --- /dev/null +++ b/pigx-common/pigx-common-sse/src/main/java/com/pig4cloud/pigx/common/sse/holder/SseEmitterHolder.java @@ -0,0 +1,65 @@ +package com.pig4cloud.pigx.common.sse.holder; + +import org.springframework.web.servlet.mvc.method.annotation.SseEmitter; + +import java.util.Collection; +import java.util.Map; +import java.util.Set; +import java.util.concurrent.ConcurrentHashMap; + +/** + * SseEmitter 持有者 主要用于保存当前所有在线的会话信息 + * + * @author lengleng 2021/1/4 + * @version 1.0 + */ +public final class SseEmitterHolder { + + private SseEmitterHolder() { + } + + private static final Map USER_SSE_EMITTER_MAP = new ConcurrentHashMap<>(); + + /** + * 添加一个 sseEmitter + * @param sseEmitterKey sseEmitter 唯一标识 + * @param sseEmitter 待添加的 SseEmitter + */ + public static void addSseEmitter(Object sseEmitterKey, SseEmitter sseEmitter) { + USER_SSE_EMITTER_MAP.put(sseEmitterKey.toString(), sseEmitter); + } + + /** + * 删除一个 sseEmitter + * @param sseEmitterKey sseEmitter唯一标识 + */ + public static void removeSseEmitter(Object sseEmitterKey) { + USER_SSE_EMITTER_MAP.remove(sseEmitterKey.toString()); + } + + /** + * 获取指定标识的 sseEmitter + * @param sseEmitterKey sseEmitter唯一标识 + * @return SseEmitter 该标识对应的 sseEmitter + */ + public static SseEmitter getSseEmitter(Object sseEmitterKey) { + return USER_SSE_EMITTER_MAP.get(sseEmitterKey.toString()); + } + + /** + * 获取当前所有在线的 sseEmitter + * @return Collection sseEmitter集合 + */ + public static Collection getSseEmitters() { + return USER_SSE_EMITTER_MAP.values(); + } + + /** + * 获取所有在线的用户标识 + * @return Set sseEmitter唯一标识集合 + */ + public static Set getSseEmitterKeys() { + return USER_SSE_EMITTER_MAP.keySet(); + } + +} diff --git a/pigx-common/pigx-common-sse/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/pigx-common/pigx-common-sse/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports new file mode 100644 index 000000000..51b0b7f81 --- /dev/null +++ b/pigx-common/pigx-common-sse/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -0,0 +1,3 @@ +com.pig4cloud.pigx.common.sse.config.SseEmitterAutoConfiguration +com.pig4cloud.pigx.common.sse.config.RedisMessageDistributorConfiguration +com.pig4cloud.pigx.common.sse.config.LocalMessageDistributorConfiguration diff --git a/pigx-common/pigx-common-swagger/pom.xml b/pigx-common/pigx-common-swagger/pom.xml index 86f7efdb3..1dbfe41a3 100644 --- a/pigx-common/pigx-common-swagger/pom.xml +++ b/pigx-common/pigx-common-swagger/pom.xml @@ -24,7 +24,7 @@ com.pig4cloud pigx-common - 5.3.0 + 5.4.0 pigx-common-swagger diff --git a/pigx-common/pigx-common-websocket/pom.xml b/pigx-common/pigx-common-websocket/pom.xml index f79b88418..0e07d9dd9 100755 --- a/pigx-common/pigx-common-websocket/pom.xml +++ b/pigx-common/pigx-common-websocket/pom.xml @@ -6,7 +6,7 @@ com.pig4cloud pigx-common - 5.3.0 + 5.4.0 pigx-common-websocket diff --git a/pigx-common/pigx-common-xss/pom.xml b/pigx-common/pigx-common-xss/pom.xml index f63588e14..db096aa11 100755 --- a/pigx-common/pigx-common-xss/pom.xml +++ b/pigx-common/pigx-common-xss/pom.xml @@ -6,7 +6,7 @@ com.pig4cloud pigx-common - 5.3.0 + 5.4.0 pigx-common-xss diff --git a/pigx-common/pigx-common-xss/src/main/java/com/pig4cloud/pigx/common/xss/utils/XssUtil.java b/pigx-common/pigx-common-xss/src/main/java/com/pig4cloud/pigx/common/xss/utils/XssUtil.java index 56fd550ac..249c9ced8 100644 --- a/pigx-common/pigx-common-xss/src/main/java/com/pig4cloud/pigx/common/xss/utils/XssUtil.java +++ b/pigx-common/pigx-common-xss/src/main/java/com/pig4cloud/pigx/common/xss/utils/XssUtil.java @@ -61,7 +61,7 @@ public class XssUtil { * * @author michael */ - public static class HtmlWhitelist extends org.jsoup.safety.Whitelist { + public static class HtmlWhitelist extends org.jsoup.safety.Safelist { public HtmlWhitelist() { addTags("a", "b", "blockquote", "br", "caption", "cite", "code", "col", "colgroup", "dd", "div", "span", diff --git a/pigx-common/pom.xml b/pigx-common/pom.xml index ec3e296f1..ac9bd4693 100644 --- a/pigx-common/pom.xml +++ b/pigx-common/pom.xml @@ -24,7 +24,7 @@ com.pig4cloud pigx - 5.3.0 + 5.4.0 pigx-common @@ -52,6 +52,7 @@ pigx-common-sentinel pigx-common-sequence pigx-common-swagger + pigx-common-sse pigx-common-websocket pigx-common-xss diff --git a/pigx-flow/pigx-flow-engine/pigx-flow-engine-api/pom.xml b/pigx-flow/pigx-flow-engine/pigx-flow-engine-api/pom.xml index f6fa2e300..178193d0c 100644 --- a/pigx-flow/pigx-flow-engine/pigx-flow-engine-api/pom.xml +++ b/pigx-flow/pigx-flow-engine/pigx-flow-engine-api/pom.xml @@ -7,7 +7,7 @@ com.pig4cloud pigx-flow-engine - 5.3.0 + 5.4.0 pigx-flow-engine-api diff --git a/pigx-flow/pigx-flow-engine/pigx-flow-engine-biz/Dockerfile b/pigx-flow/pigx-flow-engine/pigx-flow-engine-biz/Dockerfile index cf6af7f84..2bc16452f 100644 --- a/pigx-flow/pigx-flow-engine/pigx-flow-engine-biz/Dockerfile +++ b/pigx-flow/pigx-flow-engine/pigx-flow-engine-biz/Dockerfile @@ -3,6 +3,7 @@ FROM alibabadragonwell/dragonwell:17-anolis MAINTAINER wangiegie@gmail.com ENV TZ=Asia/Shanghai +ENV LANG C.UTF-8 ENV JAVA_OPTS="-Xms512m -Xmx1024m -Djava.security.egd=file:/dev/./urandom" RUN ln -sf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone diff --git a/pigx-flow/pigx-flow-engine/pigx-flow-engine-biz/pom.xml b/pigx-flow/pigx-flow-engine/pigx-flow-engine-biz/pom.xml index cf73355e8..efef84cc0 100644 --- a/pigx-flow/pigx-flow-engine/pigx-flow-engine-biz/pom.xml +++ b/pigx-flow/pigx-flow-engine/pigx-flow-engine-biz/pom.xml @@ -7,7 +7,7 @@ com.pig4cloud pigx-flow-engine - 5.3.0 + 5.4.0 pigx-flow-engine-biz @@ -92,7 +92,7 @@ com.baomidou - mybatis-plus-boot-starter + mybatis-plus-spring-boot3-starter diff --git a/pigx-flow/pigx-flow-engine/pigx-flow-engine-biz/src/main/java/com/pig4cloud/pigx/flow/engine/PigxFlowEngineApplication.java b/pigx-flow/pigx-flow-engine/pigx-flow-engine-biz/src/main/java/com/pig4cloud/pigx/flow/engine/PigxFlowEngineApplication.java index fef1590f2..a38349109 100644 --- a/pigx-flow/pigx-flow-engine/pigx-flow-engine-biz/src/main/java/com/pig4cloud/pigx/flow/engine/PigxFlowEngineApplication.java +++ b/pigx-flow/pigx-flow-engine/pigx-flow-engine-biz/src/main/java/com/pig4cloud/pigx/flow/engine/PigxFlowEngineApplication.java @@ -2,7 +2,6 @@ package com.pig4cloud.pigx.flow.engine; import com.pig4cloud.pigx.common.feign.annotation.EnablePigxFeignClients; import com.pig4cloud.pigx.common.security.annotation.EnablePigxResourceServer; -import com.pig4cloud.pigx.common.swagger.annotation.EnableOpenApi; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; @@ -12,7 +11,6 @@ import org.springframework.cloud.client.discovery.EnableDiscoveryClient; *

* 项目启动类 */ -@EnableOpenApi("engine") @EnablePigxFeignClients @EnableDiscoveryClient @EnablePigxResourceServer diff --git a/pigx-flow/pigx-flow-engine/pigx-flow-engine-biz/src/main/java/com/pig4cloud/pigx/flow/engine/controller/EngineFlowController.java b/pigx-flow/pigx-flow-engine/pigx-flow-engine-biz/src/main/java/com/pig4cloud/pigx/flow/engine/controller/EngineFlowController.java index 0d98c83fe..1708d02b6 100644 --- a/pigx-flow/pigx-flow-engine/pigx-flow-engine-biz/src/main/java/com/pig4cloud/pigx/flow/engine/controller/EngineFlowController.java +++ b/pigx-flow/pigx-flow-engine/pigx-flow-engine-biz/src/main/java/com/pig4cloud/pigx/flow/engine/controller/EngineFlowController.java @@ -177,8 +177,8 @@ public class EngineFlowController { } List list = activityInstanceQuery.listPage( - (taskQueryParamDto.getPageNum() - 1) * taskQueryParamDto.getPageSize(), - taskQueryParamDto.getPageSize()); + (taskQueryParamDto.getCurrent() - 1) * taskQueryParamDto.getSize(), + taskQueryParamDto.getSize()); long count = activityInstanceQuery.count(); List taskDtoList = new ArrayList<>(); @@ -230,8 +230,8 @@ public class EngineFlowController { List taskDtoList = new ArrayList<>(); - int pageIndex = taskQueryParamDto.getPageNum() - 1; - int pageSize = taskQueryParamDto.getPageSize(); + int pageIndex = taskQueryParamDto.getCurrent() - 1; + int pageSize = taskQueryParamDto.getSize(); Page pageResultDto = new Page<>(); TaskQuery taskQuery = taskService.createTaskQuery().taskAssignee(assign).orderByTaskCreateTime().desc(); diff --git a/pigx-flow/pigx-flow-engine/pigx-flow-engine-biz/src/main/java/com/pig4cloud/pigx/flow/engine/listeners/FlowProcessEventListener.java b/pigx-flow/pigx-flow-engine/pigx-flow-engine-biz/src/main/java/com/pig4cloud/pigx/flow/engine/listeners/FlowProcessEventListener.java index d3a91fbc5..84ae9760c 100644 --- a/pigx-flow/pigx-flow-engine/pigx-flow-engine-biz/src/main/java/com/pig4cloud/pigx/flow/engine/listeners/FlowProcessEventListener.java +++ b/pigx-flow/pigx-flow-engine/pigx-flow-engine-biz/src/main/java/com/pig4cloud/pigx/flow/engine/listeners/FlowProcessEventListener.java @@ -184,7 +184,7 @@ public class FlowProcessEventListener implements FlowableEventListener { processNodeRecordAssignUserParamDto .setLocalData(objectMapper.writeValueAsString(taskService.getVariablesLocal(task.getId()))); processNodeRecordAssignUserParamDto.setNodeId(taskDefinitionKey); - processNodeRecordAssignUserParamDto.setUserId(Long.parseLong(assignee)); + processNodeRecordAssignUserParamDto.setUserId(Long.parseLong(task.getAssignee())); processNodeRecordAssignUserParamDto.setTaskId(task.getId()); processNodeRecordAssignUserParamDto.setNodeName(task.getName()); processNodeRecordAssignUserParamDto.setTaskType("COMPLETE"); @@ -219,7 +219,7 @@ public class FlowProcessEventListener implements FlowableEventListener { processNodeRecordAssignUserParamDto.setProcessInstanceId(processInstanceId); // processNodeRecordAssignUserParamDto.setData(); processNodeRecordAssignUserParamDto.setNodeId(taskDefinitionKey); - processNodeRecordAssignUserParamDto.setUserId(Long.parseLong(assignee)); + processNodeRecordAssignUserParamDto.setUserId(Long.parseLong(task.getAssignee())); processNodeRecordAssignUserParamDto.setTaskId(task.getId()); processNodeRecordAssignUserParamDto.setNodeName(task.getName()); processNodeRecordAssignUserParamDto diff --git a/pigx-flow/pigx-flow-engine/pigx-flow-engine-biz/src/main/java/com/pig4cloud/pigx/flow/engine/node/MultiInstanceHandler.java b/pigx-flow/pigx-flow-engine/pigx-flow-engine-biz/src/main/java/com/pig4cloud/pigx/flow/engine/node/MultiInstanceHandler.java index 49d90ee9e..7b864c614 100644 --- a/pigx-flow/pigx-flow-engine/pigx-flow-engine-biz/src/main/java/com/pig4cloud/pigx/flow/engine/node/MultiInstanceHandler.java +++ b/pigx-flow/pigx-flow-engine/pigx-flow-engine-biz/src/main/java/com/pig4cloud/pigx/flow/engine/node/MultiInstanceHandler.java @@ -20,7 +20,6 @@ import java.math.BigDecimal; import java.util.ArrayList; import java.util.List; import java.util.Map; -import java.util.Optional; @Slf4j @RequiredArgsConstructor @@ -79,12 +78,10 @@ public class MultiInstanceHandler { } } - Optional.of(assignList).orElseGet(() -> { - List defaultList = new ArrayList<>(); - defaultList.add(ProcessInstanceConstant.DEFAULT_EMPTY_ASSIGN); - return defaultList; - }); - + // 标记为空 + if (CollUtil.isEmpty(assignList)) { + assignList.add(ProcessInstanceConstant.DEFAULT_EMPTY_ASSIGN); + } return assignList; } diff --git a/pigx-flow/pigx-flow-engine/pom.xml b/pigx-flow/pigx-flow-engine/pom.xml index bf19e5dc0..119d5f448 100644 --- a/pigx-flow/pigx-flow-engine/pom.xml +++ b/pigx-flow/pigx-flow-engine/pom.xml @@ -7,7 +7,7 @@ com.pig4cloud pigx-flow - 5.3.0 + 5.4.0 pigx-flow-engine diff --git a/pigx-flow/pigx-flow-task/pigx-flow-task-api/pom.xml b/pigx-flow/pigx-flow-task/pigx-flow-task-api/pom.xml index b8569a2c3..0da1e832f 100644 --- a/pigx-flow/pigx-flow-task/pigx-flow-task-api/pom.xml +++ b/pigx-flow/pigx-flow-task/pigx-flow-task-api/pom.xml @@ -7,7 +7,7 @@ com.pig4cloud pigx-flow-task - 5.3.0 + 5.4.0 pigx-flow-task-api diff --git a/pigx-flow/pigx-flow-task/pigx-flow-task-api/src/main/java/com/pig4cloud/pigx/flow/task/dto/TaskQueryParamDto.java b/pigx-flow/pigx-flow-task/pigx-flow-task-api/src/main/java/com/pig4cloud/pigx/flow/task/dto/TaskQueryParamDto.java index f05afebfe..349135269 100644 --- a/pigx-flow/pigx-flow-task/pigx-flow-task-api/src/main/java/com/pig4cloud/pigx/flow/task/dto/TaskQueryParamDto.java +++ b/pigx-flow/pigx-flow-task/pigx-flow-task-api/src/main/java/com/pig4cloud/pigx/flow/task/dto/TaskQueryParamDto.java @@ -18,12 +18,12 @@ public class TaskQueryParamDto { /** * 页码 */ - private Integer pageNum; + private Integer current; /** * 每页的数量 */ - private Integer pageSize; + private Integer size; /** * 流程名称 diff --git a/pigx-flow/pigx-flow-task/pigx-flow-task-api/src/main/java/com/pig4cloud/pigx/flow/task/entity/Process.java b/pigx-flow/pigx-flow-task/pigx-flow-task-api/src/main/java/com/pig4cloud/pigx/flow/task/entity/Process.java index be790cbe8..9473e03b5 100644 --- a/pigx-flow/pigx-flow-task/pigx-flow-task-api/src/main/java/com/pig4cloud/pigx/flow/task/entity/Process.java +++ b/pigx-flow/pigx-flow-task/pigx-flow-task-api/src/main/java/com/pig4cloud/pigx/flow/task/entity/Process.java @@ -1,6 +1,7 @@ package com.pig4cloud.pigx.flow.task.entity; import com.baomidou.mybatisplus.annotation.*; +import com.pig4cloud.pigx.common.core.util.TenantTable; import lombok.Getter; import lombok.Setter; import lombok.experimental.Accessors; @@ -17,6 +18,7 @@ import java.time.LocalDateTime; */ @Getter @Setter +@TenantTable @Accessors(chain = true) @TableName("process") public class Process { @@ -76,13 +78,13 @@ public class Process { * 0 正常 1=隐藏 */ @TableField("is_hidden") - private Boolean hidden; + private String hidden; /** * 0 正常 1=停用 */ @TableField("is_stop") - private Boolean stop; + private String stop; /** * 流程管理员 diff --git a/pigx-flow/pigx-flow-task/pigx-flow-task-api/src/main/java/com/pig4cloud/pigx/flow/task/entity/ProcessCopy.java b/pigx-flow/pigx-flow-task/pigx-flow-task-api/src/main/java/com/pig4cloud/pigx/flow/task/entity/ProcessCopy.java index 6ef5a54e2..748be68c7 100644 --- a/pigx-flow/pigx-flow-task/pigx-flow-task-api/src/main/java/com/pig4cloud/pigx/flow/task/entity/ProcessCopy.java +++ b/pigx-flow/pigx-flow-task/pigx-flow-task-api/src/main/java/com/pig4cloud/pigx/flow/task/entity/ProcessCopy.java @@ -1,6 +1,7 @@ package com.pig4cloud.pigx.flow.task.entity; import com.baomidou.mybatisplus.annotation.*; +import com.pig4cloud.pigx.common.core.util.TenantTable; import lombok.Getter; import lombok.Setter; import lombok.experimental.Accessors; @@ -17,6 +18,7 @@ import java.time.LocalDateTime; */ @Getter @Setter +@TenantTable @Accessors(chain = true) @TableName("process_copy") public class ProcessCopy { diff --git a/pigx-flow/pigx-flow-task/pigx-flow-task-api/src/main/java/com/pig4cloud/pigx/flow/task/entity/ProcessGroup.java b/pigx-flow/pigx-flow-task/pigx-flow-task-api/src/main/java/com/pig4cloud/pigx/flow/task/entity/ProcessGroup.java index df004a0fb..43459ec49 100644 --- a/pigx-flow/pigx-flow-task/pigx-flow-task-api/src/main/java/com/pig4cloud/pigx/flow/task/entity/ProcessGroup.java +++ b/pigx-flow/pigx-flow-task/pigx-flow-task-api/src/main/java/com/pig4cloud/pigx/flow/task/entity/ProcessGroup.java @@ -1,6 +1,7 @@ package com.pig4cloud.pigx.flow.task.entity; import com.baomidou.mybatisplus.annotation.*; +import com.pig4cloud.pigx.common.core.util.TenantTable; import lombok.Getter; import lombok.Setter; import lombok.experimental.Accessors; @@ -17,6 +18,7 @@ import java.time.LocalDateTime; */ @Getter @Setter +@TenantTable @Accessors(chain = true) @TableName("process_group") public class ProcessGroup { diff --git a/pigx-flow/pigx-flow-task/pigx-flow-task-api/src/main/java/com/pig4cloud/pigx/flow/task/entity/ProcessInstanceRecord.java b/pigx-flow/pigx-flow-task/pigx-flow-task-api/src/main/java/com/pig4cloud/pigx/flow/task/entity/ProcessInstanceRecord.java index 3295fe7da..23b9fa788 100644 --- a/pigx-flow/pigx-flow-task/pigx-flow-task-api/src/main/java/com/pig4cloud/pigx/flow/task/entity/ProcessInstanceRecord.java +++ b/pigx-flow/pigx-flow-task/pigx-flow-task-api/src/main/java/com/pig4cloud/pigx/flow/task/entity/ProcessInstanceRecord.java @@ -1,6 +1,7 @@ package com.pig4cloud.pigx.flow.task.entity; import com.baomidou.mybatisplus.annotation.*; +import com.pig4cloud.pigx.common.core.util.TenantTable; import lombok.Getter; import lombok.Setter; import lombok.experimental.Accessors; @@ -18,6 +19,7 @@ import java.util.Date; */ @Getter @Setter +@TenantTable @Accessors(chain = true) @TableName("process_instance_record") public class ProcessInstanceRecord { diff --git a/pigx-flow/pigx-flow-task/pigx-flow-task-api/src/main/java/com/pig4cloud/pigx/flow/task/entity/ProcessNodeData.java b/pigx-flow/pigx-flow-task/pigx-flow-task-api/src/main/java/com/pig4cloud/pigx/flow/task/entity/ProcessNodeData.java index c7aa4f1fb..a3ea81612 100644 --- a/pigx-flow/pigx-flow-task/pigx-flow-task-api/src/main/java/com/pig4cloud/pigx/flow/task/entity/ProcessNodeData.java +++ b/pigx-flow/pigx-flow-task/pigx-flow-task-api/src/main/java/com/pig4cloud/pigx/flow/task/entity/ProcessNodeData.java @@ -1,6 +1,7 @@ package com.pig4cloud.pigx.flow.task.entity; import com.baomidou.mybatisplus.annotation.*; +import com.pig4cloud.pigx.common.core.util.TenantTable; import lombok.Getter; import lombok.Setter; import lombok.experimental.Accessors; @@ -17,6 +18,7 @@ import java.time.LocalDateTime; */ @Getter @Setter +@TenantTable @Accessors(chain = true) @TableName("process_node_data") public class ProcessNodeData { diff --git a/pigx-flow/pigx-flow-task/pigx-flow-task-api/src/main/java/com/pig4cloud/pigx/flow/task/entity/ProcessNodeRecord.java b/pigx-flow/pigx-flow-task/pigx-flow-task-api/src/main/java/com/pig4cloud/pigx/flow/task/entity/ProcessNodeRecord.java index c5f57b365..eb8718f5b 100644 --- a/pigx-flow/pigx-flow-task/pigx-flow-task-api/src/main/java/com/pig4cloud/pigx/flow/task/entity/ProcessNodeRecord.java +++ b/pigx-flow/pigx-flow-task/pigx-flow-task-api/src/main/java/com/pig4cloud/pigx/flow/task/entity/ProcessNodeRecord.java @@ -1,6 +1,7 @@ package com.pig4cloud.pigx.flow.task.entity; import com.baomidou.mybatisplus.annotation.*; +import com.pig4cloud.pigx.common.core.util.TenantTable; import lombok.Getter; import lombok.Setter; import lombok.experimental.Accessors; @@ -18,6 +19,7 @@ import java.util.Date; */ @Getter @Setter +@TenantTable @Accessors(chain = true) @TableName("process_node_record") public class ProcessNodeRecord { diff --git a/pigx-flow/pigx-flow-task/pigx-flow-task-api/src/main/java/com/pig4cloud/pigx/flow/task/entity/ProcessNodeRecordAssignUser.java b/pigx-flow/pigx-flow-task/pigx-flow-task-api/src/main/java/com/pig4cloud/pigx/flow/task/entity/ProcessNodeRecordAssignUser.java index 9424137a0..30704c3ab 100644 --- a/pigx-flow/pigx-flow-task/pigx-flow-task-api/src/main/java/com/pig4cloud/pigx/flow/task/entity/ProcessNodeRecordAssignUser.java +++ b/pigx-flow/pigx-flow-task/pigx-flow-task-api/src/main/java/com/pig4cloud/pigx/flow/task/entity/ProcessNodeRecordAssignUser.java @@ -1,6 +1,7 @@ package com.pig4cloud.pigx.flow.task.entity; import com.baomidou.mybatisplus.annotation.*; +import com.pig4cloud.pigx.common.core.util.TenantTable; import lombok.Getter; import lombok.Setter; import lombok.experimental.Accessors; @@ -17,6 +18,7 @@ import java.time.LocalDateTime; */ @Getter @Setter +@TenantTable @Accessors(chain = true) @TableName("process_node_record_assign_user") public class ProcessNodeRecordAssignUser { diff --git a/pigx-flow/pigx-flow-task/pigx-flow-task-api/src/main/java/com/pig4cloud/pigx/flow/task/entity/ProcessStarter.java b/pigx-flow/pigx-flow-task/pigx-flow-task-api/src/main/java/com/pig4cloud/pigx/flow/task/entity/ProcessStarter.java index c29cdaf16..83774e976 100644 --- a/pigx-flow/pigx-flow-task/pigx-flow-task-api/src/main/java/com/pig4cloud/pigx/flow/task/entity/ProcessStarter.java +++ b/pigx-flow/pigx-flow-task/pigx-flow-task-api/src/main/java/com/pig4cloud/pigx/flow/task/entity/ProcessStarter.java @@ -1,6 +1,7 @@ package com.pig4cloud.pigx.flow.task.entity; import com.baomidou.mybatisplus.annotation.*; +import com.pig4cloud.pigx.common.core.util.TenantTable; import lombok.Getter; import lombok.Setter; import lombok.experimental.Accessors; @@ -17,6 +18,7 @@ import java.time.LocalDateTime; */ @Getter @Setter +@TenantTable @Accessors(chain = true) @TableName("process_starter") public class ProcessStarter { diff --git a/pigx-flow/pigx-flow-task/pigx-flow-task-api/src/main/java/com/pig4cloud/pigx/flow/task/vo/FormGroupVo.java b/pigx-flow/pigx-flow-task/pigx-flow-task-api/src/main/java/com/pig4cloud/pigx/flow/task/vo/FormGroupVo.java index dc3779fd4..0114c0cb6 100644 --- a/pigx-flow/pigx-flow-task/pigx-flow-task-api/src/main/java/com/pig4cloud/pigx/flow/task/vo/FormGroupVo.java +++ b/pigx-flow/pigx-flow-task/pigx-flow-task-api/src/main/java/com/pig4cloud/pigx/flow/task/vo/FormGroupVo.java @@ -46,7 +46,7 @@ public class FormGroupVo { private String logo; - private Boolean stop; + private String stop; private String remark; diff --git a/pigx-flow/pigx-flow-task/pigx-flow-task-biz/Dockerfile b/pigx-flow/pigx-flow-task/pigx-flow-task-biz/Dockerfile index cddef461a..f8ab636ab 100644 --- a/pigx-flow/pigx-flow-task/pigx-flow-task-biz/Dockerfile +++ b/pigx-flow/pigx-flow-task/pigx-flow-task-biz/Dockerfile @@ -3,6 +3,7 @@ FROM alibabadragonwell/dragonwell:17-anolis MAINTAINER wangiegie@gmail.com ENV TZ=Asia/Shanghai +ENV LANG C.UTF-8 ENV JAVA_OPTS="-Xms512m -Xmx1024m -Djava.security.egd=file:/dev/./urandom" RUN ln -sf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone diff --git a/pigx-flow/pigx-flow-task/pigx-flow-task-biz/pom.xml b/pigx-flow/pigx-flow-task/pigx-flow-task-biz/pom.xml index b76a81aac..39d49bfb6 100644 --- a/pigx-flow/pigx-flow-task/pigx-flow-task-biz/pom.xml +++ b/pigx-flow/pigx-flow-task/pigx-flow-task-biz/pom.xml @@ -7,7 +7,7 @@ com.pig4cloud pigx-flow-task - 5.3.0 + 5.4.0 pigx-flow-task-biz @@ -76,7 +76,7 @@ com.baomidou - mybatis-plus-boot-starter + mybatis-plus-spring-boot3-starter diff --git a/pigx-flow/pigx-flow-task/pigx-flow-task-biz/src/main/java/com/pig4cloud/pigx/flow/task/service/impl/CombinationGroupServiceImpl.java b/pigx-flow/pigx-flow-task/pigx-flow-task-biz/src/main/java/com/pig4cloud/pigx/flow/task/service/impl/CombinationGroupServiceImpl.java index 50e0a9b15..70623f37f 100644 --- a/pigx-flow/pigx-flow-task/pigx-flow-task-biz/src/main/java/com/pig4cloud/pigx/flow/task/service/impl/CombinationGroupServiceImpl.java +++ b/pigx-flow/pigx-flow-task/pigx-flow-task-biz/src/main/java/com/pig4cloud/pigx/flow/task/service/impl/CombinationGroupServiceImpl.java @@ -1,6 +1,7 @@ package com.pig4cloud.pigx.flow.task.service.impl; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.pig4cloud.pigx.common.core.constant.enums.YesNoEnum; import com.pig4cloud.pigx.common.core.util.R; import com.pig4cloud.pigx.common.security.service.PigxUser; import com.pig4cloud.pigx.common.security.util.SecurityUtils; @@ -33,7 +34,7 @@ public class CombinationGroupServiceImpl implements ICombinationGroupService { /** * 查询表单组包含流程 - * @param hidden + * @param groupId groupId * @return 表单组数据 */ @Override @@ -70,8 +71,8 @@ public class CombinationGroupServiceImpl implements ICombinationGroupService { List processList = processService.lambdaQuery() .eq(Process::getGroupId, group.getId()) - .eq(Process::getHidden, false) - .eq(Process::getStop, false) + .eq(Process::getHidden, YesNoEnum.NO.getCode()) + .eq(Process::getStop, YesNoEnum.NO.getCode()) .orderByAsc(Process::getSort) .list(); diff --git a/pigx-flow/pigx-flow-task/pigx-flow-task-biz/src/main/java/com/pig4cloud/pigx/flow/task/service/impl/ProcessInstanceServiceImpl.java b/pigx-flow/pigx-flow-task/pigx-flow-task-biz/src/main/java/com/pig4cloud/pigx/flow/task/service/impl/ProcessInstanceServiceImpl.java index 431f4771a..20293b927 100644 --- a/pigx-flow/pigx-flow-task/pigx-flow-task-biz/src/main/java/com/pig4cloud/pigx/flow/task/service/impl/ProcessInstanceServiceImpl.java +++ b/pigx-flow/pigx-flow-task/pigx-flow-task-biz/src/main/java/com/pig4cloud/pigx/flow/task/service/impl/ProcessInstanceServiceImpl.java @@ -239,7 +239,7 @@ public class ProcessInstanceServiceImpl implements IProcessInstanceService { ArrayUtil.isNotEmpty(taskQueryParamDto.getTaskTime()) ? taskQueryParamDto.getTaskTime()[0] : null, ArrayUtil.isNotEmpty(taskQueryParamDto.getTaskTime()) ? taskQueryParamDto.getTaskTime()[1] : null) .orderByDesc(ProcessInstanceRecord::getCreateTime) - .page(new Page<>(taskQueryParamDto.getPageNum(), taskQueryParamDto.getPageSize())); + .page(new Page<>(taskQueryParamDto.getCurrent(), taskQueryParamDto.getSize())); return R.ok(instanceRecordPage); } @@ -260,7 +260,7 @@ public class ProcessInstanceServiceImpl implements IProcessInstanceService { ArrayUtil.isNotEmpty(taskQueryParamDto.getTaskTime()) ? taskQueryParamDto.getTaskTime()[0] : null, ArrayUtil.isNotEmpty(taskQueryParamDto.getTaskTime()) ? taskQueryParamDto.getTaskTime()[1] : null) .orderByDesc(ProcessCopy::getNodeTime) - .page(new Page<>(taskQueryParamDto.getPageNum(), taskQueryParamDto.getPageSize())); + .page(new Page<>(taskQueryParamDto.getCurrent(), taskQueryParamDto.getSize())); List records = page.getRecords(); diff --git a/pigx-flow/pigx-flow-task/pigx-flow-task-biz/src/main/java/com/pig4cloud/pigx/flow/task/service/impl/ProcessServiceImpl.java b/pigx-flow/pigx-flow-task/pigx-flow-task-biz/src/main/java/com/pig4cloud/pigx/flow/task/service/impl/ProcessServiceImpl.java index dd487bb7f..6291a31ca 100644 --- a/pigx-flow/pigx-flow-task/pigx-flow-task-biz/src/main/java/com/pig4cloud/pigx/flow/task/service/impl/ProcessServiceImpl.java +++ b/pigx-flow/pigx-flow-task/pigx-flow-task-biz/src/main/java/com/pig4cloud/pigx/flow/task/service/impl/ProcessServiceImpl.java @@ -45,212 +45,219 @@ import java.util.Map; @RequiredArgsConstructor public class ProcessServiceImpl extends ServiceImpl implements IProcessService { - private final IProcessStarterService processStarterService; + private final IProcessStarterService processStarterService; - private final RemoteFlowEngineService flowEngineService; + private final RemoteFlowEngineService flowEngineService; - private final Sequence flowSequence; + private final Sequence flowSequence; - private final ObjectMapper objectMapper; + private final ObjectMapper objectMapper; - /** - * 获取详细数据 - * @param flowId - * @return - */ - @Override - public R getDetail(String flowId) { - // 获取流程详情 - ProcessVO processVO = this.getProcessVO(flowId); - return R.ok(processVO); - } + /** + * 获取详细数据 + * + * @param flowId + * @return + */ + @Override + public R getDetail(String flowId) { + // 获取流程详情 + ProcessVO processVO = this.getProcessVO(flowId); + return R.ok(processVO); + } - /** - * 根据流程ID获取流程详情 - * @param flowId 流程ID - * @return 流程详情 - */ - @SneakyThrows - private ProcessVO getProcessVO(String flowId) { + /** + * 根据流程ID获取流程详情 + * + * @param flowId 流程ID + * @return 流程详情 + */ + @SneakyThrows + private ProcessVO getProcessVO(String flowId) { - Process oaForms = getByFlowId(flowId); - String process = oaForms.getProcess(); - String formItems = oaForms.getFormItems(); - Node startNode = objectMapper.readValue(process, new TypeReference<>() { - }); + Process oaForms = getByFlowId(flowId); + String process = oaForms.getProcess(); + String formItems = oaForms.getFormItems(); + Node startNode = objectMapper.readValue(process, new TypeReference<>() { + }); - Map formPerms = startNode.getFormPerms(); + Map formPerms = startNode.getFormPerms(); - List formItemVOList = objectMapper.readValue(formItems, new TypeReference<>() { - }); - for (FormItemVO formItemVO : formItemVOList) { - String perm = MapUtil.getStr(formPerms, formItemVO.getId(), ProcessInstanceConstant.FormPermClass.EDIT); - formItemVO.setPerm(perm); + List formItemVOList = objectMapper.readValue(formItems, new TypeReference<>() { + }); + for (FormItemVO formItemVO : formItemVOList) { + String perm = MapUtil.getStr(formPerms, formItemVO.getId(), ProcessInstanceConstant.FormPermClass.EDIT); + formItemVO.setPerm(perm); - // 发号器赋值 - if (StrUtil.equals(formItemVO.getType(), FormTypeEnum.SEQUENCE.getType())) { - FormItemVO.Props props = formItemVO.getProps(); - String prefix = props.getPrefix(); - String nextNo = flowSequence.nextNo(); - formItemVO.setPlaceholder(StrUtil.isNotBlank(prefix) ? prefix + nextNo : nextNo); - props.setValue(StrUtil.isNotBlank(prefix) ? prefix + nextNo : nextNo); - formItemVO.setProps(props); - } + // 发号器赋值 + if (StrUtil.equals(formItemVO.getType(), FormTypeEnum.SEQUENCE.getType())) { + FormItemVO.Props props = formItemVO.getProps(); + String prefix = props.getPrefix(); + String nextNo = flowSequence.nextNo(); + formItemVO.setPlaceholder(StrUtil.isNotBlank(prefix) ? prefix + nextNo : nextNo); + props.setValue(StrUtil.isNotBlank(prefix) ? prefix + nextNo : nextNo); + formItemVO.setProps(props); + } - if (StrUtil.equals(formItemVO.getType(), FormTypeEnum.LAYOUT.getType())) { - // 明细 - Object value = formItemVO.getProps().getValue(); - List subList = Convert.toList(FormItemVO.class, value); - for (FormItemVO itemVO : subList) { - String perm1 = MapUtil.getStr(formPerms, itemVO.getId(), - ProcessInstanceConstant.FormPermClass.EDIT); - itemVO.setPerm(perm1); - } + if (StrUtil.equals(formItemVO.getType(), FormTypeEnum.LAYOUT.getType())) { + // 明细 + Object value = formItemVO.getProps().getValue(); + List subList = Convert.toList(FormItemVO.class, value); + for (FormItemVO itemVO : subList) { + String perm1 = MapUtil.getStr(formPerms, itemVO.getId(), + ProcessInstanceConstant.FormPermClass.EDIT); + itemVO.setPerm(perm1); + } - formItemVO.getProps().setValue(subList); - formItemVO.getProps(); - } + formItemVO.getProps().setValue(subList); + formItemVO.getProps(); + } - } - oaForms.setFormItems(objectMapper.writeValueAsString(formItemVOList)); + } + oaForms.setFormItems(objectMapper.writeValueAsString(formItemVOList)); - List selectUserNodeId = NodeUtil.selectUserNodeId(startNode); + List selectUserNodeId = NodeUtil.selectUserNodeId(startNode); - ProcessVO processVO = BeanUtil.copyProperties(oaForms, ProcessVO.class); - processVO.setSelectUserNodeId(selectUserNodeId); + ProcessVO processVO = BeanUtil.copyProperties(oaForms, ProcessVO.class); + processVO.setSelectUserNodeId(selectUserNodeId); - return processVO; - } + return processVO; + } - /** - * 根据流程ID获取流程 - * @param flowId 流程ID - * @return 流程 - */ - @Override - public Process getByFlowId(String flowId) { - return this.lambdaQuery().eq(Process::getFlowId, flowId).one(); - } + /** + * 根据流程ID获取流程 + * + * @param flowId 流程ID + * @return 流程 + */ + @Override + public Process getByFlowId(String flowId) { + return this.lambdaQuery().eq(Process::getFlowId, flowId).one(); + } - /** - * 更新流程 - * @param process 流程 - */ - @Override - public void updateByFlowId(Process process) { - this.lambdaUpdate().eq(Process::getFlowId, process.getFlowId()).update(process); - } + /** + * 更新流程 + * + * @param process 流程 + */ + @Override + public void updateByFlowId(Process process) { + this.lambdaUpdate().eq(Process::getFlowId, process.getFlowId()).update(process); + } - /** - * 隐藏流程 - * @param flowId 流程ID - */ - @Override - public void hide(String flowId) { - this.lambdaUpdate().set(Process::getHidden, true).eq(Process::getFlowId, flowId).update(new Process()); - } + /** + * 隐藏流程 + * + * @param flowId 流程ID + */ + @Override + public void hide(String flowId) { + this.lambdaUpdate().set(Process::getHidden, true).eq(Process::getFlowId, flowId).update(new Process()); + } - /** - * 创建流程 - * @param process 流程 - * @return 操作结果 - */ - @SneakyThrows - @Override - public R create(Process process) { - Map map = new HashMap<>(); - map.put("process", process); - map.put("userId", SecurityUtils.getUser().getId()); - R r = flowEngineService.createFlow(map); - if (!r.isOk()) { - return R.failed(r.getMsg()); - } - String flowId = r.getData(); - NodeUser nodeUser = objectMapper.readValue(process.getAdminList(), new TypeReference>() { - }).get(0); + /** + * 创建流程 + * + * @param process 流程 + * @return 操作结果 + */ + @SneakyThrows + @Override + public R create(Process process) { + Map map = new HashMap<>(); + map.put("process", process); + map.put("userId", SecurityUtils.getUser().getId()); + R r = flowEngineService.createFlow(map); + if (!r.isOk()) { + return R.failed(r.getMsg()); + } + String flowId = r.getData(); + NodeUser nodeUser = objectMapper.readValue(process.getAdminList(), new TypeReference>() { + }).get(0); - // 更新流程 - if (StrUtil.isNotBlank(process.getFlowId())) { + // 更新流程 + if (StrUtil.isNotBlank(process.getFlowId())) { - Process oldProcess = this.getByFlowId(process.getFlowId()); - this.hide(process.getFlowId()); - // 修改所有的管理员 - this.lambdaUpdate() - .set(Process::getAdminId, nodeUser.getId()) - .eq(Process::getUniqueId, oldProcess.getUniqueId()) - .update(new Process()); + Process oldProcess = this.getByFlowId(process.getFlowId()); + this.hide(process.getFlowId()); + // 修改所有的管理员 + this.lambdaUpdate() + .set(Process::getAdminId, nodeUser.getId()) + .eq(Process::getUniqueId, oldProcess.getUniqueId()) + .update(new Process()); - } + } - Node startNode = objectMapper.readValue(process.getProcess(), Node.class); + Node startNode = objectMapper.readValue(process.getProcess(), Node.class); - List nodeUserList = startNode.getNodeUserList(); + List nodeUserList = startNode.getNodeUserList(); - StringBuilder stringBuilder = new StringBuilder(); - if (CollUtil.isNotEmpty(nodeUserList)) { - int index = 0; + StringBuilder stringBuilder = new StringBuilder(); + if (CollUtil.isNotEmpty(nodeUserList)) { + int index = 0; - for (NodeUser user : nodeUserList) { - if (index > 0) { - stringBuilder.append(","); - } - stringBuilder.append(user.getName()); - index++; - if (index > 5) { - break; - } + for (NodeUser user : nodeUserList) { + if (index > 0) { + stringBuilder.append(","); + } + stringBuilder.append(user.getName()); + index++; + if (index > 5) { + break; + } - } - } + } + } - Process p = new Process(); - p.setFlowId(flowId); - p.setName(process.getName()); - p.setLogo(process.getLogo()); - p.setSettings(process.getSettings()); - p.setGroupId(process.getGroupId()); - p.setFormItems(process.getFormItems()); - p.setProcess(process.getProcess()); - p.setRemark(process.getRemark()); - p.setSort(0); - p.setHidden(false); - p.setStop(false); - p.setAdminId(nodeUser.getId()); - p.setUniqueId(IdUtil.fastSimpleUUID()); - p.setAdminList(process.getAdminList()); - p.setRangeShow(stringBuilder.toString()); + Process p = new Process(); + p.setFlowId(flowId); + p.setName(process.getName()); + p.setLogo(process.getLogo()); + p.setSettings(process.getSettings()); + p.setGroupId(process.getGroupId()); + p.setFormItems(process.getFormItems()); + p.setProcess(process.getProcess()); + p.setRemark(process.getRemark()); + p.setSort(0); + p.setHidden("0"); + p.setStop("0"); + p.setAdminId(nodeUser.getId()); + p.setUniqueId(IdUtil.fastSimpleUUID()); + p.setAdminList(process.getAdminList()); + p.setRangeShow(stringBuilder.toString()); - this.save(p); + this.save(p); - // 保存范围 - for (NodeUser nodeUserDto : nodeUserList) { - ProcessStarter processStarter = new ProcessStarter(); + // 保存范围 + for (NodeUser nodeUserDto : nodeUserList) { + ProcessStarter processStarter = new ProcessStarter(); - processStarter.setProcessId(p.getId()); - processStarter.setTypeId(nodeUserDto.getId()); - processStarter.setType(nodeUserDto.getType()); - processStarterService.save(processStarter); - } + processStarter.setProcessId(p.getId()); + processStarter.setTypeId(nodeUserDto.getId()); + processStarter.setType(nodeUserDto.getType()); + processStarterService.save(processStarter); + } - return R.ok(); - } + return R.ok(); + } - /** - * 编辑表单 - * @param flowId 流程ID - * @param type 类型 stop using delete - * @param groupId 分组ID - * @return 操作结果 - */ - @Override - public R update(String flowId, String type, Long groupId) { - Process process = new Process(); - process.setFlowId(flowId); - process.setStop("stop".equals(type)); - process.setHidden("delete".equals(type)); - process.setGroupId(groupId); - this.updateByFlowId(process); - return R.ok(); - } + /** + * 编辑表单 + * + * @param flowId 流程ID + * @param type 类型 stop using delete + * @param groupId 分组ID + * @return 操作结果 + */ + @Override + public R update(String flowId, String type, Long groupId) { + Process process = new Process(); + process.setFlowId(flowId); + process.setStop("stop".equals(type) ? "1" : "0"); + process.setHidden("delete".equals(type) ? "1" : "0"); + process.setGroupId(groupId); + this.updateByFlowId(process); + return R.ok(); + } } diff --git a/pigx-flow/pigx-flow-task/pigx-flow-task-biz/src/main/java/com/pig4cloud/pigx/flow/task/utils/NodeFormatUtil.java b/pigx-flow/pigx-flow-task/pigx-flow-task-biz/src/main/java/com/pig4cloud/pigx/flow/task/utils/NodeFormatUtil.java index 1b6375e28..ce7a8866b 100644 --- a/pigx-flow/pigx-flow-task/pigx-flow-task-biz/src/main/java/com/pig4cloud/pigx/flow/task/utils/NodeFormatUtil.java +++ b/pigx-flow/pigx-flow-task/pigx-flow-task-biz/src/main/java/com/pig4cloud/pigx/flow/task/utils/NodeFormatUtil.java @@ -252,6 +252,10 @@ public class NodeFormatUtil { * @return */ private static UserVo buildUser(long userId) { + if (ProcessInstanceConstant.DEFAULT_EMPTY_ASSIGN == userId){ + return UserVo.builder().id(userId).build(); + } + RemoteUserService userService = SpringUtil.getBean(RemoteUserService.class); SysUser user = userService.getUserById(userId).getData(); if (user == null) { diff --git a/pigx-flow/pigx-flow-task/pom.xml b/pigx-flow/pigx-flow-task/pom.xml index f857d53dc..752e53925 100644 --- a/pigx-flow/pigx-flow-task/pom.xml +++ b/pigx-flow/pigx-flow-task/pom.xml @@ -7,7 +7,7 @@ com.pig4cloud pigx-flow - 5.3.0 + 5.4.0 pigx-flow-task diff --git a/pigx-flow/pom.xml b/pigx-flow/pom.xml index 707a3beb3..13d972642 100644 --- a/pigx-flow/pom.xml +++ b/pigx-flow/pom.xml @@ -24,7 +24,7 @@ com.pig4cloud pigx - 5.3.0 + 5.4.0 pigx-flow diff --git a/pigx-gateway/Dockerfile b/pigx-gateway/Dockerfile index 8fa5584be..d9d89a4eb 100644 --- a/pigx-gateway/Dockerfile +++ b/pigx-gateway/Dockerfile @@ -3,6 +3,7 @@ FROM alibabadragonwell/dragonwell:17-anolis MAINTAINER wangiegie@gmail.com ENV TZ=Asia/Shanghai +ENV LANG C.UTF-8 ENV JAVA_OPTS="-Xms128m -Xmx256m -Djava.security.egd=file:/dev/./urandom" RUN ln -sf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone diff --git a/pigx-gateway/pom.xml b/pigx-gateway/pom.xml index f489f5f5f..b12d46f21 100644 --- a/pigx-gateway/pom.xml +++ b/pigx-gateway/pom.xml @@ -24,7 +24,7 @@ com.pig4cloud pigx - 5.3.0 + 5.4.0 pigx-gateway diff --git a/pigx-gateway/src/main/java/com/pig4cloud/pigx/gateway/filter/PreviewGatewayFilter.java b/pigx-gateway/src/main/java/com/pig4cloud/pigx/gateway/filter/PreviewGatewayFilter.java index a829f5ad1..f1d927cbb 100644 --- a/pigx-gateway/src/main/java/com/pig4cloud/pigx/gateway/filter/PreviewGatewayFilter.java +++ b/pigx-gateway/src/main/java/com/pig4cloud/pigx/gateway/filter/PreviewGatewayFilter.java @@ -43,12 +43,12 @@ public class PreviewGatewayFilter extends AbstractGatewayFilterFactory { ServerHttpRequest request = exchange.getRequest(); // GET,直接向下执行 - if (StrUtil.equalsIgnoreCase(request.getMethodValue(), HttpMethod.GET.name()) + if (StrUtil.equalsIgnoreCase(request.getMethod().name(), HttpMethod.GET.name()) || StrUtil.containsIgnoreCase(request.getURI().getPath(), TOKEN)) { return chain.filter(exchange); } - log.warn("演示环境不能操作-> {},{}", request.getMethodValue(), request.getURI().getPath()); + log.warn("演示环境不能操作-> {},{}", request.getMethod().name(), request.getURI().getPath()); ServerHttpResponse response = exchange.getResponse(); response.setStatusCode(HttpStatus.LOCKED); return response.setComplete(); diff --git a/pigx-register/Dockerfile b/pigx-register/Dockerfile index a6aff33c8..474b83ed3 100755 --- a/pigx-register/Dockerfile +++ b/pigx-register/Dockerfile @@ -10,6 +10,7 @@ COPY ${JAR_FILE} app.jar EXPOSE 8848 -ENV TZ=Asia/Shanghai JAVA_OPTS="-Xms128m -Xmx256m -Djava.security.egd=file:/dev/./urandom" +ENV TZ=Asia/Shanghai +ENV LANG C.UTF-8 JAVA_OPTS="-Xms128m -Xmx256m -Djava.security.egd=file:/dev/./urandom" CMD sleep 30; java $JAVA_OPTS -jar app.jar diff --git a/pigx-register/pom.xml b/pigx-register/pom.xml index 8f5535ad2..556ae1cfb 100644 --- a/pigx-register/pom.xml +++ b/pigx-register/pom.xml @@ -18,7 +18,7 @@ com.pig4cloud pigx - 5.3.0 + 5.4.0 pigx-register @@ -29,6 +29,7 @@ 2.2.4-OEM 7.10.2 + 2.2 2.7.18 2021.0.8 2.7.11 @@ -116,6 +117,13 @@ org.rocksdb ${rocksdb.version} + + + + org.yaml + snakeyaml + ${snakeyaml.version} + @@ -124,6 +132,16 @@ org.springframework.boot spring-boot-maven-plugin + + + + repackage + + + CLASSIC + + + io.fabric8 diff --git a/pigx-register/src/main/resources/application.yml b/pigx-register/src/main/resources/application.yml index d62e442d6..bd7d47f1e 100644 --- a/pigx-register/src/main/resources/application.yml +++ b/pigx-register/src/main/resources/application.yml @@ -10,6 +10,10 @@ db: password: ${MYSQL_PWD:root} url: 0: jdbc:mysql://${MYSQL_HOST:pigx-mysql}:${MYSQL_PORT:3306}/${MYSQL_DB:pigxx_config}?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true + pool: + config: + connectionTimeout: 30000 + validationTimeout: 10000 nacos: core: diff --git a/pigx-upms/pigx-upms-api/pom.xml b/pigx-upms/pigx-upms-api/pom.xml index 235004984..d8466b20f 100644 --- a/pigx-upms/pigx-upms-api/pom.xml +++ b/pigx-upms/pigx-upms-api/pom.xml @@ -24,7 +24,7 @@ com.pig4cloud pigx-upms - 5.3.0 + 5.4.0 pigx-upms-api diff --git a/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysAreaEntity.java b/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysAreaEntity.java new file mode 100644 index 000000000..e61b3baf9 --- /dev/null +++ b/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysAreaEntity.java @@ -0,0 +1,128 @@ +package com.pig4cloud.pigx.admin.api.entity; + +import com.baomidou.mybatisplus.annotation.*; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.FieldNameConstants; + +import java.time.LocalDateTime; + +/** + * 行政区划表 + * + * @author lbw + * @date 2024-02-16 21:59:02 + */ +@Data +@FieldNameConstants +@TableName("sys_area") +@EqualsAndHashCode(callSuper = true) +@Schema(description = "行政区划表") +public class SysAreaEntity extends Model { + + + /** + * 主键ID + */ + @TableId(type = IdType.ASSIGN_ID) + @Schema(description = "主键ID") + private Long id; + + /** + * 父ID + */ + @Schema(description = "父ID") + private Long pid; + + /** + * 地区名称 + */ + @Schema(description = "地区名称") + private String name; + + /** + * 地区字母 + */ + @Schema(description = "地区字母") + private String letter; + + /** + * 高德地区code + */ + @Schema(description = "地区code") + private Long adcode; + + /** + * 经纬度 + */ + @Schema(description = "经纬度") + private String location; + + /** + * 排序值 + */ + @Schema(description = "排序值") + private Long areaSort; + + /** + * 0:未生效,1:生效 + */ + @Schema(description = "0:未生效,1:生效") + private String areaStatus; + + /** + * 0:国家,1:省,2:城市,3:区县 + */ + @Schema(description = "0:国家,1:省,2:城市,3:区县") + private String areaType; + + /** + * 0:非热门,1:热门 + */ + @Schema(description = "0:非热门,1:热门") + private String hot; + + /** + * 城市编码 + */ + @Schema(description = "城市编码") + private String cityCode; + + /** + * 创建人 + */ + @TableField(fill = FieldFill.INSERT) + @Schema(description = "创建人") + private String createBy; + + /** + * 创建时间 + */ + @TableField(fill = FieldFill.INSERT) + @Schema(description = "创建时间") + private LocalDateTime createTime; + + /** + * 更新时间 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + @Schema(description = "更新时间") + private String updateBy; + + /** + * 更新时间 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + @Schema(description = "更新时间") + private LocalDateTime updateTime; + + /** + * 删除标记 + */ + @TableLogic + @TableField(fill = FieldFill.INSERT) + @Schema(description = "删除标记") + private String delFlag; +} diff --git a/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysAuditLog.java b/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysAuditLog.java index 82d451329..aaa1a82b7 100644 --- a/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysAuditLog.java +++ b/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysAuditLog.java @@ -19,6 +19,7 @@ package com.pig4cloud.pigx.admin.api.entity; import com.baomidou.mybatisplus.annotation.*; import com.baomidou.mybatisplus.extension.activerecord.Model; +import com.pig4cloud.pigx.common.core.util.TenantTable; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; @@ -32,6 +33,7 @@ import java.time.LocalDateTime; * @date 2023-02-28 20:12:23 */ @Data +@TenantTable @TableName("sys_audit_log") @EqualsAndHashCode(callSuper = true) @Schema(description = "审计记录表") diff --git a/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysDept.java b/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysDept.java index 65472fba9..b0d2405b5 100644 --- a/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysDept.java +++ b/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysDept.java @@ -21,6 +21,7 @@ package com.pig4cloud.pigx.admin.api.entity; import com.baomidou.mybatisplus.annotation.*; import com.baomidou.mybatisplus.extension.activerecord.Model; +import com.pig4cloud.pigx.common.core.util.TenantTable; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; @@ -38,6 +39,7 @@ import java.time.LocalDateTime; * @since 2018-01-22 */ @Data +@TenantTable @Schema(description = "部门") @EqualsAndHashCode(callSuper = true) public class SysDept extends Model { diff --git a/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysDict.java b/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysDict.java index a2af1f189..6d6294af7 100755 --- a/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysDict.java +++ b/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysDict.java @@ -18,6 +18,7 @@ package com.pig4cloud.pigx.admin.api.entity; import com.baomidou.mybatisplus.annotation.*; import com.baomidou.mybatisplus.extension.activerecord.Model; +import com.pig4cloud.pigx.common.core.util.TenantTable; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; @@ -31,6 +32,7 @@ import java.time.LocalDateTime; * @date 2019/03/19 */ @Data +@TenantTable @Schema(description = "字典类型") @EqualsAndHashCode(callSuper = true) public class SysDict extends Model { diff --git a/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysDictItem.java b/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysDictItem.java index ae3273041..e4ea3ccb0 100755 --- a/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysDictItem.java +++ b/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysDictItem.java @@ -19,6 +19,7 @@ package com.pig4cloud.pigx.admin.api.entity; import com.baomidou.mybatisplus.annotation.*; import com.baomidou.mybatisplus.extension.activerecord.Model; import com.fasterxml.jackson.annotation.JsonProperty; +import com.pig4cloud.pigx.common.core.util.TenantTable; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; @@ -32,6 +33,7 @@ import java.time.LocalDateTime; * @date 2019/03/19 */ @Data +@TenantTable @Schema(description = "字典项") @EqualsAndHashCode(callSuper = true) public class SysDictItem extends Model { diff --git a/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysFile.java b/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysFile.java index 66a1a3c4e..94faffb94 100644 --- a/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysFile.java +++ b/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysFile.java @@ -19,6 +19,7 @@ package com.pig4cloud.pigx.admin.api.entity; import com.baomidou.mybatisplus.annotation.*; import com.baomidou.mybatisplus.extension.activerecord.Model; +import com.pig4cloud.pigx.common.core.util.TenantTable; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; @@ -32,6 +33,7 @@ import java.time.LocalDateTime; * @date 2019-06-18 17:18:42 */ @Data +@TenantTable @Schema(description = "文件") @EqualsAndHashCode(callSuper = true) public class SysFile extends Model { diff --git a/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysFileGroup.java b/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysFileGroup.java index 2a490ce25..544049d04 100644 --- a/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysFileGroup.java +++ b/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysFileGroup.java @@ -2,6 +2,7 @@ package com.pig4cloud.pigx.admin.api.entity; import com.baomidou.mybatisplus.annotation.*; import com.baomidou.mybatisplus.extension.activerecord.Model; +import com.pig4cloud.pigx.common.core.util.TenantTable; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; @@ -15,6 +16,7 @@ import java.time.LocalDateTime; * @date 2023/7/25 */ @Data +@TenantTable @Schema(description = "文件") @EqualsAndHashCode(callSuper = true) public class SysFileGroup extends Model { diff --git a/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysLog.java b/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysLog.java index 257951f6b..0cc003d4d 100644 --- a/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysLog.java +++ b/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysLog.java @@ -24,6 +24,7 @@ import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotation.*; import com.pig4cloud.pigx.common.core.sensitive.Sensitive; import com.pig4cloud.pigx.common.core.sensitive.SensitiveTypeEnum; +import com.pig4cloud.pigx.common.core.util.TenantTable; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.constraints.NotBlank; import lombok.Data; @@ -40,6 +41,7 @@ import java.time.LocalDateTime; * @since 2017-11-20 */ @Data +@TenantTable @Schema(description = "日志") public class SysLog implements Serializable { diff --git a/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysMenu.java b/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysMenu.java index e59229ef2..090e2e6d6 100644 --- a/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysMenu.java +++ b/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysMenu.java @@ -21,12 +21,14 @@ package com.pig4cloud.pigx.admin.api.entity; import com.baomidou.mybatisplus.annotation.*; import com.baomidou.mybatisplus.extension.activerecord.Model; +import com.pig4cloud.pigx.common.core.util.TenantTable; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; + import java.time.LocalDateTime; /** @@ -38,113 +40,120 @@ import java.time.LocalDateTime; * @since 2017-11-08 */ @Data +@TenantTable @Schema(description = "菜单") @EqualsAndHashCode(callSuper = true) public class SysMenu extends Model { - private static final long serialVersionUID = 1L; + private static final long serialVersionUID = 1L; - /** - * 菜单ID - */ - @TableId(value = "menu_id", type = IdType.ASSIGN_ID) - @Schema(description = "菜单id") - private Long menuId; + /** + * 菜单ID + */ + @TableId(value = "menu_id", type = IdType.ASSIGN_ID) + @Schema(description = "菜单id") + private Long menuId; - /** - * 菜单名称 - */ - @NotBlank(message = "菜单名称不能为空") - @Schema(description = "菜单名称") - private String name; + /** + * 菜单名称 + */ + @NotBlank(message = "菜单名称不能为空") + @Schema(description = "菜单名称") + private String name; - /** - * 菜单权限标识 - */ - @Schema(description = "菜单权限标识") - private String permission; + /** + * 菜单权限标识 + */ + @Schema(description = "菜单权限标识") + private String permission; - /** - * 父菜单ID - */ - @NotNull(message = "菜单父ID不能为空") - @Schema(description = "菜单父id") - private Long parentId; + /** + * 父菜单ID + */ + @NotNull(message = "菜单父ID不能为空") + @Schema(description = "菜单父id") + private Long parentId; - /** - * 图标 - */ - @Schema(description = "菜单图标") - private String icon; + /** + * 图标 + */ + @Schema(description = "菜单图标") + private String icon; - /** - * 前端路由标识路径,默认和 comment 保持一致 过期 - */ - @Schema(description = "前端路由标识路径") - private String path; + /** + * 前端路由标识路径,默认和 comment 保持一致 过期 + */ + @Schema(description = "前端路由标识路径") + private String path; - /** - * 菜单显示隐藏控制 - */ - @Schema(description = "菜单是否显示") - private String visible; + /** + * 前端组件 + */ + @Schema(description = "前端组件") + private String component; - /** - * 排序值 - */ - @Schema(description = "排序值") - private Integer sortOrder; + /** + * 菜单显示隐藏控制 + */ + @Schema(description = "菜单是否显示") + private String visible; - /** - * 菜单类型 (0菜单 1按钮) - */ - @NotNull(message = "菜单类型不能为空") - @Schema(description = "菜单类型,0:菜单 1:按钮") - private String menuType; + /** + * 排序值 + */ + @Schema(description = "排序值") + private Integer sortOrder; - /** - * 路由缓冲 - */ - @Schema(description = "路由缓冲") - private String keepAlive; + /** + * 菜单类型 (0菜单 1按钮) + */ + @NotNull(message = "菜单类型不能为空") + @Schema(description = "菜单类型,0:菜单 1:按钮") + private String menuType; - @Schema(description = "菜单是否内嵌") - private String embedded; + /** + * 路由缓冲 + */ + @Schema(description = "路由缓冲") + private String keepAlive; - /** - * 创建人 - */ - @TableField(fill = FieldFill.INSERT) - @Schema(description = "创建人") - private String createBy; + @Schema(description = "菜单是否内嵌") + private String embedded; - /** - * 修改人 - */ - @TableField(fill = FieldFill.UPDATE) - @Schema(description = "修改人") - private String updateBy; + /** + * 创建人 + */ + @TableField(fill = FieldFill.INSERT) + @Schema(description = "创建人") + private String createBy; - /** - * 创建时间 - */ - @TableField(fill = FieldFill.INSERT) - @Schema(description = "创建时间") - private LocalDateTime createTime; + /** + * 修改人 + */ + @TableField(fill = FieldFill.UPDATE) + @Schema(description = "修改人") + private String updateBy; - /** - * 更新时间 - */ - @TableField(fill = FieldFill.UPDATE) - @Schema(description = "更新时间") - private LocalDateTime updateTime; + /** + * 创建时间 + */ + @TableField(fill = FieldFill.INSERT) + @Schema(description = "创建时间") + private LocalDateTime createTime; - /** - * 0--正常 1--删除 - */ - @TableLogic - @TableField(fill = FieldFill.INSERT) - @Schema(description = "删除标记,1:已删除,0:正常") - private String delFlag; + /** + * 更新时间 + */ + @TableField(fill = FieldFill.UPDATE) + @Schema(description = "更新时间") + private LocalDateTime updateTime; + + /** + * 0--正常 1--删除 + */ + @TableLogic + @TableField(fill = FieldFill.INSERT) + @Schema(description = "删除标记,1:已删除,0:正常") + private String delFlag; } diff --git a/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysMessageEntity.java b/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysMessageEntity.java index 552e1b1b7..0a5b3b2d8 100644 --- a/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysMessageEntity.java +++ b/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysMessageEntity.java @@ -2,6 +2,7 @@ package com.pig4cloud.pigx.admin.api.entity; import com.baomidou.mybatisplus.annotation.*; import com.baomidou.mybatisplus.extension.activerecord.Model; +import com.pig4cloud.pigx.common.core.util.TenantTable; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; @@ -15,6 +16,7 @@ import java.time.LocalDateTime; * @date 2023-10-25 13:37:25 */ @Data +@TenantTable @TableName("sys_message") @EqualsAndHashCode(callSuper = true) @Schema(description = "站内信息") diff --git a/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysMessageRelationEntity.java b/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysMessageRelationEntity.java index 711512947..c32c2d25c 100644 --- a/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysMessageRelationEntity.java +++ b/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysMessageRelationEntity.java @@ -2,6 +2,7 @@ package com.pig4cloud.pigx.admin.api.entity; import com.baomidou.mybatisplus.annotation.*; import com.baomidou.mybatisplus.extension.activerecord.Model; +import com.pig4cloud.pigx.common.core.util.TenantTable; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; @@ -15,6 +16,7 @@ import java.time.LocalDateTime; * @date 2023-10-25 18:07:23 */ @Data +@TenantTable @TableName("sys_message_relation") @EqualsAndHashCode(callSuper = true) @Schema(description = "系统消息推送记录") diff --git a/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysOauthClientDetails.java b/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysOauthClientDetails.java index 4a1c0dd4b..7acc2c1ba 100644 --- a/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysOauthClientDetails.java +++ b/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysOauthClientDetails.java @@ -21,6 +21,7 @@ package com.pig4cloud.pigx.admin.api.entity; import com.baomidou.mybatisplus.annotation.*; import com.baomidou.mybatisplus.extension.activerecord.Model; +import com.pig4cloud.pigx.common.core.util.TenantTable; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; @@ -37,6 +38,7 @@ import java.time.LocalDateTime; * @since 2018-05-15 */ @Data +@TenantTable @Schema(description = "客户端信息") @EqualsAndHashCode(callSuper = true) public class SysOauthClientDetails extends Model { diff --git a/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysPost.java b/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysPost.java index ab38395ef..37f08fdbb 100644 --- a/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysPost.java +++ b/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysPost.java @@ -19,6 +19,7 @@ package com.pig4cloud.pigx.admin.api.entity; import com.baomidou.mybatisplus.annotation.*; import com.baomidou.mybatisplus.extension.activerecord.Model; +import com.pig4cloud.pigx.common.core.util.TenantTable; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; @@ -34,6 +35,7 @@ import java.time.LocalDateTime; * @date 2022-03-26 12:50:43 */ @Data +@TenantTable @TableName("sys_post") @EqualsAndHashCode(callSuper = true) @Schema(description = "岗位信息表") diff --git a/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysPublicParam.java b/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysPublicParam.java index 5c978830a..d62886027 100644 --- a/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysPublicParam.java +++ b/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysPublicParam.java @@ -19,6 +19,7 @@ package com.pig4cloud.pigx.admin.api.entity; import com.baomidou.mybatisplus.annotation.*; import com.baomidou.mybatisplus.extension.activerecord.Model; +import com.pig4cloud.pigx.common.core.util.TenantTable; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; @@ -32,6 +33,7 @@ import java.time.LocalDateTime; * @date 2019-04-29 */ @Data +@TenantTable @Schema(description = "公共参数") @EqualsAndHashCode(callSuper = true) public class SysPublicParam extends Model { diff --git a/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysRole.java b/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysRole.java index cb0b16b39..ad25fb83f 100644 --- a/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysRole.java +++ b/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysRole.java @@ -21,6 +21,7 @@ package com.pig4cloud.pigx.admin.api.entity; import com.baomidou.mybatisplus.annotation.*; import com.baomidou.mybatisplus.extension.activerecord.Model; +import com.pig4cloud.pigx.common.core.util.TenantTable; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; @@ -38,6 +39,7 @@ import java.time.LocalDateTime; * @since 2017-10-29 */ @Data +@TenantTable @Schema(description = "角色") @EqualsAndHashCode(callSuper = true) public class SysRole extends Model { diff --git a/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysScheduleEntity.java b/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysScheduleEntity.java index dc62458e4..4abb96cbe 100644 --- a/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysScheduleEntity.java +++ b/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysScheduleEntity.java @@ -19,6 +19,7 @@ package com.pig4cloud.pigx.admin.api.entity; import com.baomidou.mybatisplus.annotation.*; import com.baomidou.mybatisplus.extension.activerecord.Model; +import com.pig4cloud.pigx.common.core.util.TenantTable; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; @@ -34,6 +35,7 @@ import java.time.LocalTime; * @date 2023-03-06 14:26:23 */ @Data +@TenantTable @TableName("sys_schedule") @EqualsAndHashCode(callSuper = true) @Schema(description = "日程") diff --git a/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysSocialDetails.java b/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysSocialDetails.java index 9d5ac8ccb..156705905 100755 --- a/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysSocialDetails.java +++ b/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysSocialDetails.java @@ -20,12 +20,15 @@ package com.pig4cloud.pigx.admin.api.entity; import com.baomidou.mybatisplus.annotation.*; import com.baomidou.mybatisplus.extension.activerecord.Model; import com.pig4cloud.pigx.common.core.sensitive.Sensitive; +import com.pig4cloud.pigx.common.core.util.TenantTable; import com.pig4cloud.pigx.common.core.util.ValidGroup; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; import jakarta.validation.constraints.NotBlank; +import lombok.experimental.FieldNameConstants; + import java.time.LocalDateTime; /** @@ -35,6 +38,7 @@ import java.time.LocalDateTime; * @date 2018-08-16 21:30:41 */ @Data +@FieldNameConstants @Schema(description = "第三方账号信息") @EqualsAndHashCode(callSuper = true) public class SysSocialDetails extends Model { diff --git a/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysUser.java b/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysUser.java index edc0bdd9b..f12f4ada1 100644 --- a/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysUser.java +++ b/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysUser.java @@ -21,6 +21,7 @@ package com.pig4cloud.pigx.admin.api.entity; import com.baomidou.mybatisplus.annotation.*; import com.fasterxml.jackson.annotation.JsonIgnore; +import com.pig4cloud.pigx.common.core.util.TenantTable; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import org.javers.core.metamodel.annotation.DiffInclude; @@ -38,6 +39,7 @@ import java.time.LocalDateTime; * @since 2017-10-29 */ @Data +@TenantTable @Schema(description = "用户") public class SysUser implements Serializable { diff --git a/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/vo/RoleMenuVO.java b/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/vo/RoleMenuVO.java new file mode 100644 index 000000000..a08e1556d --- /dev/null +++ b/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/vo/RoleMenuVO.java @@ -0,0 +1,41 @@ +/* + * Copyright (c) 2018-2025, lengleng All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * Neither the name of the pig4cloud.com developer nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * Author: lengleng (wangiegie@gmail.com) + */ + +package com.pig4cloud.pigx.admin.api.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +/** + * @author lengleng + * @date 2020/2/10 + */ +@Data +@Schema(description = "前端角色展示对象") +public class RoleMenuVO { + + /** + * 角色id + */ + private Long roleId; + + /** + * 菜单列表 + */ + private String menuIds; + +} diff --git a/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/vo/RoleVO.java b/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/vo/RoleVO.java index ed698bf9d..a3f606f3e 100644 --- a/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/vo/RoleVO.java +++ b/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/vo/RoleVO.java @@ -20,22 +20,75 @@ package com.pig4cloud.pigx.admin.api.vo; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; +import java.io.Serializable; +import java.time.LocalDateTime; + /** + *

+ * 角色表 + *

+ * * @author lengleng * @date 2020/2/10 */ @Data @Schema(description = "前端角色展示对象") -public class RoleVO { +public class RoleVO implements Serializable { + + private static final long serialVersionUID = 1L; /** - * 角色id + * 角色ID */ + @Schema(description = "角色ID") private Long roleId; /** - * 菜单列表 + * 角色名称 */ - private String menuIds; + @Schema(description = "角色名称") + private String roleName; + + /** + * 角色标识 + */ + @Schema(description = "角色标识") + private String roleCode; + + /** + * 角色描述 + */ + @Schema(description = "角色描述") + private String roleDesc; + + /** + * 数据权限类型 + */ + @Schema(description = "数据权限类型") + private Integer dsType; + + /** + * 数据权限作用范围 + */ + @Schema(description = "数据权限作用范围") + private String dsScope; + + /** + * 创建时间 + */ + @Schema(description = "创建时间") + private LocalDateTime createTime; + + /** + * 修改时间 + */ + @Schema(description = "修改时间") + private LocalDateTime updateTime; + + /** + * 租户ID + */ + @Schema(description = "用户所属租户id") + private Long tenantId; } diff --git a/pigx-upms/pigx-upms-biz/Dockerfile b/pigx-upms/pigx-upms-biz/Dockerfile index 33e9b0566..6f04cb53c 100644 --- a/pigx-upms/pigx-upms-biz/Dockerfile +++ b/pigx-upms/pigx-upms-biz/Dockerfile @@ -3,6 +3,7 @@ FROM alibabadragonwell/dragonwell:17-anolis MAINTAINER wangiegie@gmail.com ENV TZ=Asia/Shanghai +ENV LANG C.UTF-8 ENV JAVA_OPTS="-Xms512m -Xmx1024m -Djava.security.egd=file:/dev/./urandom" RUN ln -sf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone diff --git a/pigx-upms/pigx-upms-biz/pom.xml b/pigx-upms/pigx-upms-biz/pom.xml index 6e988d806..fa60af007 100644 --- a/pigx-upms/pigx-upms-biz/pom.xml +++ b/pigx-upms/pigx-upms-biz/pom.xml @@ -24,7 +24,7 @@ com.pig4cloud pigx-upms - 5.3.0 + 5.4.0 pigx-upms-biz @@ -125,7 +125,7 @@ com.baomidou - mybatis-plus-boot-starter + mybatis-plus-spring-boot3-starter @@ -166,6 +166,16 @@ org.springframework.boot spring-boot-maven-plugin + + + + repackage + + + CLASSIC + + + org.apache.maven.plugins diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/SysAreaController.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/SysAreaController.java new file mode 100644 index 000000000..7c6bdcbb3 --- /dev/null +++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/SysAreaController.java @@ -0,0 +1,135 @@ +package com.pig4cloud.pigx.admin.controller; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.ArrayUtil; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.pig4cloud.pigx.admin.api.entity.SysAreaEntity; +import com.pig4cloud.pigx.admin.service.SysAreaService; +import com.pig4cloud.pigx.common.core.util.R; +import com.pig4cloud.pigx.common.excel.annotation.ResponseExcel; +import com.pig4cloud.pigx.common.log.annotation.SysLog; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.security.SecurityRequirement; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.RequiredArgsConstructor; +import org.springdoc.core.annotations.ParameterObject; +import org.springframework.http.HttpHeaders; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * 行政区划 + * + * @author lbw + * @date 2024-02-16 22:40:06 + */ +@RestController +@RequiredArgsConstructor +@RequestMapping("/sysArea") +@Tag(description = "sysArea", name = "行政区划管理") +@SecurityRequirement(name = HttpHeaders.AUTHORIZATION) +public class SysAreaController { + + private final SysAreaService sysAreaService; + + /** + * 分页查询 + * + * @param page 分页对象 + * @param sysArea 行政区划 + * @return + */ + @Operation(summary = "分页查询", description = "分页查询") + @GetMapping("/page") + @PreAuthorize("@pms.hasPermission('sys_sysArea_view')") + public R getSysAreaPage(@ParameterObject Page page, @ParameterObject SysAreaEntity sysArea) { + return R.ok(sysAreaService.selectPage(page, sysArea)); + } + + /** + * 前端联动组件需要数据 + * + * @param sysArea 查询条件 + * @return tree + */ + @Operation(summary = "分页查询", description = "分页查询") + @GetMapping("/tree") + @PreAuthorize("@pms.hasPermission('sys_sysArea_view')") + public R getSysAreaTree(@ParameterObject SysAreaEntity sysArea) { + return R.ok(sysAreaService.selectTree(sysArea)); + } + + + /** + * 通过id查询行政区划 + * + * @param sysArea 查询条件 + * @return R + */ + @Operation(summary = "通过id查询", description = "通过id查询") + @GetMapping("/details") + @PreAuthorize("@pms.hasPermission('sys_sysArea_view')") + public R getDetails(@ParameterObject SysAreaEntity sysArea) { + return R.ok(sysAreaService.getOne(Wrappers.query(sysArea))); + } + + /** + * 新增行政区划 + * + * @param sysArea 行政区划 + * @return R + */ + @Operation(summary = "新增行政区划", description = "新增行政区划") + @SysLog("新增行政区划") + @PostMapping + @PreAuthorize("@pms.hasPermission('sys_sysArea_add')") + public R save(@RequestBody SysAreaEntity sysArea) { + return R.ok(sysAreaService.save(sysArea)); + } + + /** + * 修改行政区划 + * + * @param sysArea 行政区划 + * @return R + */ + @Operation(summary = "修改行政区划", description = "修改行政区划") + @SysLog("修改行政区划") + @PutMapping + @PreAuthorize("@pms.hasPermission('sys_sysArea_edit')") + public R updateById(@RequestBody SysAreaEntity sysArea) { + return R.ok(sysAreaService.updateById(sysArea)); + } + + /** + * 通过id删除行政区划 + * + * @param ids id列表 + * @return R + */ + @Operation(summary = "通过id删除行政区划", description = "通过id删除行政区划") + @SysLog("通过id删除行政区划") + @DeleteMapping + @PreAuthorize("@pms.hasPermission('sys_sysArea_del')") + public R removeById(@RequestBody Long[] ids) { + return R.ok(sysAreaService.removeBatchByIds(CollUtil.toList(ids))); + } + + + /** + * 导出excel 表格 + * + * @param sysArea 查询条件 + * @param ids 导出指定ID + * @return excel 文件流 + */ + @ResponseExcel + @GetMapping("/export") + @PreAuthorize("@pms.hasPermission('sys_sysArea_export')") + public List export(SysAreaEntity sysArea, Long[] ids) { + return sysAreaService.list(Wrappers.lambdaQuery(sysArea).in(ArrayUtil.isNotEmpty(ids), SysAreaEntity::getId, ids)); + } +} diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/SysMenuController.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/SysMenuController.java index 5b94aa0bb..8475838c6 100644 --- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/SysMenuController.java +++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/SysMenuController.java @@ -59,7 +59,7 @@ public class SysMenuController { public R getUserMenu(String type, Long parentId) { // 获取符合条件的菜单 Set all = new HashSet<>(); - SecurityUtils.getRoles().forEach(roleId -> all.addAll(sysMenuService.findMenuByRoleId(roleId))); + SecurityUtils.getRoleIds().forEach(roleId -> all.addAll(sysMenuService.findMenuByRoleId(roleId))); return R.ok(sysMenuService.filterMenu(all, type, parentId)); } diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/SysRoleController.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/SysRoleController.java index e8eac74ae..2ec9d9abb 100644 --- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/SysRoleController.java +++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/SysRoleController.java @@ -25,7 +25,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.pig4cloud.pigx.admin.api.entity.SysRole; import com.pig4cloud.pigx.admin.api.vo.RoleExcelVO; -import com.pig4cloud.pigx.admin.api.vo.RoleVO; +import com.pig4cloud.pigx.admin.api.vo.RoleMenuVO; import com.pig4cloud.pigx.admin.service.SysRoleService; import com.pig4cloud.pigx.common.core.constant.CacheConstants; import com.pig4cloud.pigx.common.core.util.R; @@ -146,7 +146,7 @@ public class SysRoleController { @SysLog("更新角色菜单") @PutMapping("/menu") @PreAuthorize("@pms.hasPermission('sys_role_perm')") - public R saveRoleMenus(@RequestBody RoleVO roleVo) { + public R saveRoleMenus(@RequestBody RoleMenuVO roleVo) { return R.ok(sysRoleService.updateRoleMenus(roleVo)); } diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/SysSocialDetailsController.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/SysSocialDetailsController.java index 2e9a279a7..acd685242 100755 --- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/SysSocialDetailsController.java +++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/SysSocialDetailsController.java @@ -65,6 +65,16 @@ public class SysSocialDetailsController { return R.ok(sysSocialDetailsService.page(page, Wrappers.query(sysSocialDetails))); } + /** + * 获取当前租户的三方登录列表 + * @return R List + */ + @Inner(value = false) + @GetMapping("/getLoginAppList") + public R getLoginAppList(){ + return R.ok(sysSocialDetailsService.selectList()); + } + /** * 信息 * @param type 类型 diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/SysSystemInfoController.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/SysSystemInfoController.java index 3a7ea8554..bfe181b78 100644 --- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/SysSystemInfoController.java +++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/SysSystemInfoController.java @@ -32,7 +32,7 @@ public class SysSystemInfoController { public R cache() { Properties info = (Properties) redisTemplate.execute((RedisCallback) RedisServerCommands::info); Properties commandStats = (Properties) redisTemplate - .execute((RedisCallback) connection -> connection.info("commandstats")); + .execute((RedisCallback) connection -> connection.serverCommands().info("commandstats")); Object dbSize = redisTemplate.execute((RedisCallback) RedisServerCommands::dbSize); if (commandStats == null) { diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/mapper/SysAreaMapper.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/mapper/SysAreaMapper.java new file mode 100644 index 000000000..10a703556 --- /dev/null +++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/mapper/SysAreaMapper.java @@ -0,0 +1,11 @@ +package com.pig4cloud.pigx.admin.mapper; + +import com.pig4cloud.pigx.common.data.datascope.PigxBaseMapper; +import com.pig4cloud.pigx.admin.api.entity.SysAreaEntity; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface SysAreaMapper extends PigxBaseMapper { + + +} diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/SysAreaService.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/SysAreaService.java new file mode 100644 index 000000000..f99400c38 --- /dev/null +++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/SysAreaService.java @@ -0,0 +1,28 @@ +package com.pig4cloud.pigx.admin.service; + +import cn.hutool.core.lang.tree.Tree; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import com.pig4cloud.pigx.admin.api.entity.SysAreaEntity; + +import java.util.List; + +public interface SysAreaService extends IService { + + /** + * 查询行政区划树 + * + * @param sysArea 查询条件 + * @return 树 + */ + List> selectTree(SysAreaEntity sysArea); + + /** + * 分页查询 + * + * @param page 分页对象 + * @param sysArea 行政区划 + * @return Page + */ + Page selectPage(Page page, SysAreaEntity sysArea); +} diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/SysRoleService.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/SysRoleService.java index 51f54e67a..ea0502f82 100644 --- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/SysRoleService.java +++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/SysRoleService.java @@ -22,7 +22,7 @@ package com.pig4cloud.pigx.admin.service; import com.baomidou.mybatisplus.extension.service.IService; import com.pig4cloud.pigx.admin.api.entity.SysRole; import com.pig4cloud.pigx.admin.api.vo.RoleExcelVO; -import com.pig4cloud.pigx.admin.api.vo.RoleVO; +import com.pig4cloud.pigx.admin.api.vo.RoleMenuVO; import com.pig4cloud.pigx.common.core.util.R; import org.springframework.validation.BindingResult; @@ -65,7 +65,7 @@ public interface SysRoleService extends IService { * @param roleVo 角色&菜单列表 * @return */ - Boolean updateRoleMenus(RoleVO roleVo); + Boolean updateRoleMenus(RoleMenuVO roleVo); /** * 导入角色 diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/SysSocialDetailsService.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/SysSocialDetailsService.java index 2541e569f..1994e3255 100755 --- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/SysSocialDetailsService.java +++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/SysSocialDetailsService.java @@ -21,6 +21,8 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.pig4cloud.pigx.admin.api.dto.UserInfo; import com.pig4cloud.pigx.admin.api.entity.SysSocialDetails; +import java.util.List; + /** * 系统社交登录账号表 * @@ -44,4 +46,5 @@ public interface SysSocialDetailsService extends IService { */ UserInfo getUserInfo(String inStr); + List selectList(); } diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysAreaServiceImpl.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysAreaServiceImpl.java new file mode 100644 index 000000000..5bd23c028 --- /dev/null +++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysAreaServiceImpl.java @@ -0,0 +1,74 @@ +package com.pig4cloud.pigx.admin.service.impl; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.lang.tree.Tree; +import cn.hutool.core.lang.tree.TreeNode; +import cn.hutool.core.lang.tree.TreeUtil; +import cn.hutool.core.map.MapUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.pig4cloud.pigx.admin.api.entity.SysAreaEntity; +import com.pig4cloud.pigx.admin.mapper.SysAreaMapper; +import com.pig4cloud.pigx.admin.service.SysAreaService; +import com.pig4cloud.pigx.common.core.constant.enums.YesNoEnum; +import org.springframework.stereotype.Service; + +import java.util.HashMap; +import java.util.List; +import java.util.Objects; +import java.util.Optional; + +/** + * 行政区划 + * + * @author lbw + * @date 2024-02-16 22:40:06 + */ +@Service +public class SysAreaServiceImpl extends ServiceImpl implements SysAreaService { + /** + * 查询行政区划树 + * + * @param sysArea 查询条件 + * @return 树 + */ + @Override + public List> selectTree(SysAreaEntity sysArea) { + List entityList = baseMapper.selectList(Wrappers.lambdaQuery(sysArea) + .eq(SysAreaEntity::getAreaStatus, YesNoEnum.YES.getCode()) + .orderByDesc(SysAreaEntity::getAreaSort)); + + List> nodeList = CollUtil.newArrayList(); + for (SysAreaEntity sysAreaEntity : entityList) { + TreeNode treeNode = new TreeNode<>(sysAreaEntity.getAdcode(), sysAreaEntity.getPid() + , sysAreaEntity.getName(), -Optional.ofNullable(sysAreaEntity.getAreaSort()).orElse(0L)); + + HashMap extraMap = MapUtil.of(SysAreaEntity.Fields.adcode, sysAreaEntity.getAdcode()); + extraMap.put(SysAreaEntity.Fields.hot, sysAreaEntity.getHot()); + treeNode.setExtra(extraMap); + nodeList.add(treeNode); + } + + return TreeUtil.build(nodeList, Optional.ofNullable(sysArea.getPid()).orElse(1L)); + } + + /** + * 分页查询 + * + * @param page 分页对象 + * @param sysArea 行政区划 + * @return Page + */ + @Override + public Page selectPage(Page page, SysAreaEntity sysArea) { + LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(); + wrapper.like(StrUtil.isNotBlank(sysArea.getName()), SysAreaEntity::getName, sysArea.getName()); + wrapper.eq(Objects.nonNull(sysArea.getAdcode()), SysAreaEntity::getPid, sysArea.getAdcode()); + wrapper.orderByAsc(SysAreaEntity::getAreaType); + wrapper.orderByDesc(SysAreaEntity::getAreaSort); + return baseMapper.selectPage(page, wrapper); + } +} diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysFileServiceImpl.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysFileServiceImpl.java index 9c8f4173f..062760810 100644 --- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysFileServiceImpl.java +++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysFileServiceImpl.java @@ -35,6 +35,7 @@ import com.pig4cloud.pigx.admin.mapper.SysFileMapper; import com.pig4cloud.pigx.admin.service.SysFileService; import com.pig4cloud.pigx.common.core.constant.CommonConstants; import com.pig4cloud.pigx.common.core.util.R; +import com.pig4cloud.pigx.common.data.tenant.TenantContextHolder; import com.pig4cloud.pigx.common.file.core.FileProperties; import com.pig4cloud.pigx.common.file.core.FileTemplate; import jakarta.servlet.http.HttpServletResponse; @@ -103,6 +104,7 @@ public class SysFileServiceImpl extends ServiceImpl impl */ @Override public void getFile(String fileName, HttpServletResponse response) { + TenantContextHolder.setTenantSkip(); SysFile sysFile = baseMapper.selectOne(Wrappers.lambdaQuery().eq(SysFile::getFileName, fileName)); try (S3Object s3Object = fileTemplate.getObject(sysFile.getBucketName(), sysFile.getDir(), fileName)) { response.setContentType("application/octet-stream; charset=UTF-8"); diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysMenuServiceImpl.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysMenuServiceImpl.java index 586c48adc..ac1ac0da3 100644 --- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysMenuServiceImpl.java +++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysMenuServiceImpl.java @@ -160,6 +160,7 @@ public class SysMenuServiceImpl extends ServiceImpl impl // 扩展属性 Map extra = new HashMap<>(); extra.put("path", menu.getPath()); + extra.put("componentPath", menu.getComponent()); extra.put("menuType", menu.getMenuType()); extra.put("permission", menu.getPermission()); extra.put("sortOrder", menu.getSortOrder()); diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysRoleServiceImpl.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysRoleServiceImpl.java index 28569db15..9d653167e 100644 --- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysRoleServiceImpl.java +++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysRoleServiceImpl.java @@ -27,7 +27,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.pig4cloud.pigx.admin.api.entity.SysRole; import com.pig4cloud.pigx.admin.api.entity.SysRoleMenu; import com.pig4cloud.pigx.admin.api.vo.RoleExcelVO; -import com.pig4cloud.pigx.admin.api.vo.RoleVO; +import com.pig4cloud.pigx.admin.api.vo.RoleMenuVO; import com.pig4cloud.pigx.admin.mapper.SysRoleMapper; import com.pig4cloud.pigx.admin.service.SysRoleMenuService; import com.pig4cloud.pigx.admin.service.SysRoleService; @@ -102,7 +102,7 @@ public class SysRoleServiceImpl extends ServiceImpl impl * @return */ @Override - public Boolean updateRoleMenus(RoleVO roleVo) { + public Boolean updateRoleMenus(RoleMenuVO roleVo) { return roleMenuService.saveRoleMenus(roleVo.getRoleId(), roleVo.getMenuIds()); } diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysSocialDetailsServiceImpl.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysSocialDetailsServiceImpl.java index d50b54b09..05824c006 100755 --- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysSocialDetailsServiceImpl.java +++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysSocialDetailsServiceImpl.java @@ -18,6 +18,7 @@ package com.pig4cloud.pigx.admin.service.impl; import com.baomidou.mybatisplus.core.toolkit.StringPool; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.pig4cloud.pigx.admin.api.dto.UserInfo; import com.pig4cloud.pigx.admin.api.entity.SysSocialDetails; @@ -30,10 +31,13 @@ import com.pig4cloud.pigx.common.core.constant.CacheConstants; import com.pig4cloud.pigx.common.security.util.SecurityUtils; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.BeanUtils; import org.springframework.cache.CacheManager; import org.springframework.stereotype.Service; +import java.util.List; import java.util.Map; +import java.util.stream.Collectors; /** * @author lengleng @@ -43,44 +47,60 @@ import java.util.Map; @AllArgsConstructor @Service("sysSocialDetailsService") public class SysSocialDetailsServiceImpl extends ServiceImpl - implements SysSocialDetailsService { + implements SysSocialDetailsService { - private final Map loginHandlerMap; + private final Map loginHandlerMap; - private final CacheManager cacheManager; + private final CacheManager cacheManager; - private final SysUserMapper sysUserMapper; + private final SysUserMapper sysUserMapper; - /** - * 绑定社交账号 - * @param type type - * @param code code - * @return - */ - @Override - public Boolean bindSocial(String type, String code) { - LoginHandler loginHandler = loginHandlerMap.get(type); - // 绑定逻辑 - String identify = loginHandler.identify(code); - SysUser sysUser = sysUserMapper.selectById(SecurityUtils.getUser().getId()); - loginHandler.bind(sysUser, identify); + /** + * 绑定社交账号 + * + * @param type type + * @param code code + * @return + */ + @Override + public Boolean bindSocial(String type, String code) { + LoginHandler loginHandler = loginHandlerMap.get(type); + // 绑定逻辑 + String identify = loginHandler.identify(code); + SysUser sysUser = sysUserMapper.selectById(SecurityUtils.getUser().getId()); + loginHandler.bind(sysUser, identify); - // 更新緩存 - cacheManager.getCache(CacheConstants.USER_DETAILS).evict(sysUser.getUsername()); - return Boolean.TRUE; - } + // 更新緩存 + cacheManager.getCache(CacheConstants.USER_DETAILS).evict(sysUser.getUsername()); + return Boolean.TRUE; + } - /** - * 根据入参查询用户信息 - * @param inStr TYPE@code - * @return - */ - @Override - public UserInfo getUserInfo(String inStr) { - String[] inStrs = inStr.split(StringPool.AT); - String type = inStrs[0]; - String loginStr = inStr.substring(type.length() + 1); - return loginHandlerMap.get(type).handle(loginStr); - } + /** + * 根据入参查询用户信息 + * + * @param inStr TYPE@code + * @return + */ + @Override + public UserInfo getUserInfo(String inStr) { + String[] inStrs = inStr.split(StringPool.AT); + String type = inStrs[0]; + String loginStr = inStr.substring(type.length() + 1); + return loginHandlerMap.get(type).handle(loginStr); + } + /** + * 查询当前租户下的三方应用信息 ,脱敏 appSecret + * + * @return List + */ + @Override + public List selectList() { + List sysSocialDetailsList = baseMapper.selectList(Wrappers.query()); + return sysSocialDetailsList.stream().map(sysSocialDetails -> { + SysSocialDetails newSysSocialDetails = new SysSocialDetails(); + BeanUtils.copyProperties(sysSocialDetails, newSysSocialDetails, SysSocialDetails.Fields.appSecret); + return newSysSocialDetails; + }).collect(Collectors.toList()); + } } diff --git a/pigx-upms/pigx-upms-biz/src/main/resources/mapper/SysAreaMapper.xml b/pigx-upms/pigx-upms-biz/src/main/resources/mapper/SysAreaMapper.xml new file mode 100644 index 000000000..3a39091bb --- /dev/null +++ b/pigx-upms/pigx-upms-biz/src/main/resources/mapper/SysAreaMapper.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/pigx-upms/pigx-upms-biz/src/main/resources/mapper/SysMenuMapper.xml b/pigx-upms/pigx-upms-biz/src/main/resources/mapper/SysMenuMapper.xml index 2853e68d0..9d5633dbf 100644 --- a/pigx-upms/pigx-upms-biz/src/main/resources/mapper/SysMenuMapper.xml +++ b/pigx-upms/pigx-upms-biz/src/main/resources/mapper/SysMenuMapper.xml @@ -26,6 +26,7 @@ + @@ -45,6 +46,7 @@ sys_menu.name, sys_menu.permission, sys_menu.path, + sys_menu.component, sys_menu.parent_id, sys_menu.icon, sys_menu.sort_order, diff --git a/pigx-upms/pom.xml b/pigx-upms/pom.xml index 1421bd0f6..a5ca37148 100644 --- a/pigx-upms/pom.xml +++ b/pigx-upms/pom.xml @@ -24,7 +24,7 @@ com.pig4cloud pigx - 5.3.0 + 5.4.0 pigx-upms diff --git a/pigx-visual/pigx-codegen/Dockerfile b/pigx-visual/pigx-codegen/Dockerfile index fa10cd524..0b5496475 100644 --- a/pigx-visual/pigx-codegen/Dockerfile +++ b/pigx-visual/pigx-codegen/Dockerfile @@ -3,6 +3,7 @@ FROM alibabadragonwell/dragonwell:17-anolis MAINTAINER wangiegie@gmail.com ENV TZ=Asia/Shanghai +ENV LANG C.UTF-8 ENV JAVA_OPTS="-Xms128m -Xmx256m -Djava.security.egd=file:/dev/./urandom" RUN ln -sf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone diff --git a/pigx-visual/pigx-codegen/pom.xml b/pigx-visual/pigx-codegen/pom.xml index b5da7d902..3eee54cd1 100755 --- a/pigx-visual/pigx-codegen/pom.xml +++ b/pigx-visual/pigx-codegen/pom.xml @@ -6,7 +6,7 @@ com.pig4cloud pigx-visual - 5.3.0 + 5.4.0 pigx-codegen @@ -18,6 +18,7 @@ 2.0.2 0.0.3 11.5.0.0 + 8.7.1-jdk17-20232101 1.10 @@ -45,7 +46,7 @@ com.baomidou - mybatis-plus-boot-starter + mybatis-plus-spring-boot3-starter com.mysql @@ -87,6 +88,22 @@ com.alibaba druid-spring-boot-3-starter + + + org.anyline + anyline-data-jdbc-mysql + ${anyline.version} + + + org.anyline + anyline-data-jdbc-postgresql + ${anyline.version} + + + org.anyline + anyline-data-jdbc-dm + ${anyline.version} + com.pig4cloud diff --git a/pigx-visual/pigx-codegen/src/main/java/com/pig4cloud/pigx/codegen/controller/GenCreateTableController.java b/pigx-visual/pigx-codegen/src/main/java/com/pig4cloud/pigx/codegen/controller/GenCreateTableController.java new file mode 100755 index 000000000..1a06d9cef --- /dev/null +++ b/pigx-visual/pigx-codegen/src/main/java/com/pig4cloud/pigx/codegen/controller/GenCreateTableController.java @@ -0,0 +1,141 @@ +package com.pig4cloud.pigx.codegen.controller; +/* + * Copyright (c) 2018-2025, luolin All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * Neither the name of the pig4cloud.com developer nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * Author: luolin (766488893@qq.com) + */ + +import cn.hutool.core.bean.BeanUtil; +import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.pig4cloud.pigx.codegen.entity.GenCreateTable; +import com.pig4cloud.pigx.codegen.service.GenCreateTableService; +import com.pig4cloud.pigx.codegen.util.vo.GenCreateTableVO; +import com.pig4cloud.pigx.common.core.util.R; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.security.SecurityRequirement; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.RequiredArgsConstructor; +import org.springframework.http.HttpHeaders; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * 自动创建表管理 + * + * @author luolin + * @date 2022-09-23 21:56:11 + */ +@RestController +@RequiredArgsConstructor +@RequestMapping("/create-table") +@Tag(description = "create-table", name = "自动创建表管理管理") +@SecurityRequirement(name = HttpHeaders.AUTHORIZATION) +public class GenCreateTableController { + + private final GenCreateTableService createTableService; + + /** + * 分页查询 + * @param page 分页对象 + * @param createTable 自动创建表管理 + * @return + */ + @Operation(summary = "分页查询", description = "分页查询") + @GetMapping("/page") + public R getPage(Page page, @ModelAttribute GenCreateTable createTable, + @RequestParam(required = false) String[] queryTime) { + QueryWrapper query = Wrappers.query(createTable); + return R.ok(createTableService.page(page, query)); + } + + /** + * 通过id查询自动创建表管理 + * @param id id + * @return R + */ + @Operation(summary = "通过id查询", description = "通过id查询") + @GetMapping("/{id}") + public R getById(@PathVariable("id") Long id) { + return R.ok(createTableService.getById(id)); + } + + /** + * 新增自动创建表管理 + * @param createTableVO 自动创建表管理 + * @return R + */ + @Operation(summary = "新增自动创建表管理", description = "新增自动创建表管理") + @PostMapping + @PreAuthorize("@pms.hasPermission('codegen_table_add')") + public R save(@RequestBody GenCreateTableVO createTableVO) { + // 切换目标数据源 + DynamicDataSourceContextHolder.push(createTableVO.getDsName()); + createTableService.createTable(createTableVO); + GenCreateTable createTable = new GenCreateTable(); + BeanUtil.copyProperties(createTableVO, createTable); + DynamicDataSourceContextHolder.clear(); + return R.ok(createTableService.saveOrUpdate(createTable)); + } + + /** + * 修改自动创建表管理 + * @param createTable 自动创建表管理 + * @return R + */ + @Operation(summary = "修改自动创建表管理", description = "修改自动创建表管理") + @PutMapping + @PreAuthorize("@pms.hasPermission('codegen_table_add')") + public R updateById(@RequestBody GenCreateTable createTable) { + return R.ok(createTableService.updateById(createTable)); + } + + /** + * 通过id删除自动创建表管理 + * @param id id + * @return R + */ + @Operation(summary = "通过id删除自动创建表管理", description = "通过id删除自动创建表管理") + @DeleteMapping("/{id}") + @PreAuthorize("@pms.hasPermission('codegen_table_add')") + public R removeById(@PathVariable Long id) { + return R.ok(createTableService.removeById(id)); + } + + /** + * 查询租户所有自动创建表管理 + * @return R + */ + @GetMapping("/list") + public R list() { + return R.ok(createTableService.list()); + } + + /** + * 通过ids删除 + * @param ids ids + * @return R + */ + @Operation(summary = "通过ids删除", description = "通过ids删除") + @DeleteMapping + @PreAuthorize("@pms.hasPermission('codegen_table_add')") + public R removeById(@RequestBody List ids) { + return R.ok(createTableService.removeByIds(ids)); + } + +} diff --git a/pigx-visual/pigx-codegen/src/main/java/com/pig4cloud/pigx/codegen/entity/GenCreateTable.java b/pigx-visual/pigx-codegen/src/main/java/com/pig4cloud/pigx/codegen/entity/GenCreateTable.java new file mode 100755 index 000000000..32c52a0ea --- /dev/null +++ b/pigx-visual/pigx-codegen/src/main/java/com/pig4cloud/pigx/codegen/entity/GenCreateTable.java @@ -0,0 +1,104 @@ +package com.pig4cloud.pigx.codegen.entity; +/* + * Copyright (c) 2018-2025, luolin All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * Neither the name of the pig4cloud.com developer nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * Author: luolin (766488893@qq.com) + */ + +import com.baomidou.mybatisplus.annotation.*; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import com.pig4cloud.pigx.common.core.util.TenantTable; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.time.LocalDateTime; + +/** + * 自动创建表管理 + * + * @author luolin + * @date 2022-09-23 21:56:11 + */ +@Data +@TenantTable +@TableName("gen_create_table") +@EqualsAndHashCode(callSuper = true) +@Schema(description = "自动创建表管理") +public class GenCreateTable extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @TableId(type = IdType.ASSIGN_ID) + @Schema(description = "主键ID") + private Long id; + + /** + * 表名称 + */ + @Schema(description = "表名称") + private String tableName; + + /** + * 表注释 + */ + @Schema(description = "表注释") + private String comments; + + /** + * 字段信息 + */ + @Schema(description = "字段信息") + private String columnInfo; + + /** + * 创建人 + */ + @TableField(fill = FieldFill.INSERT) + @Schema(description = "创建人") + private String createBy; + + /** + * 修改人 + */ + @TableField(fill = FieldFill.UPDATE) + @Schema(description = "修改人") + private String updateBy; + + /** + * 创建时间 + */ + @Schema(description = "创建时间") + @TableField(fill = FieldFill.INSERT) + private LocalDateTime createTime; + + /** + * 修改时间 + */ + @Schema(description = "修改时间") + @TableField(fill = FieldFill.UPDATE) + private LocalDateTime updateTime; + + /** + * 删除标识(0-正常,1-删除) + */ + @TableLogic + @TableField(fill = FieldFill.INSERT) + @Schema(description = "删除标记,1:已删除,0:正常") + private String delFlag; + +} diff --git a/pigx-visual/pigx-codegen/src/main/java/com/pig4cloud/pigx/codegen/entity/GenDatasourceConf.java b/pigx-visual/pigx-codegen/src/main/java/com/pig4cloud/pigx/codegen/entity/GenDatasourceConf.java index 682675bb1..b5395c47c 100755 --- a/pigx-visual/pigx-codegen/src/main/java/com/pig4cloud/pigx/codegen/entity/GenDatasourceConf.java +++ b/pigx-visual/pigx-codegen/src/main/java/com/pig4cloud/pigx/codegen/entity/GenDatasourceConf.java @@ -18,6 +18,7 @@ package com.pig4cloud.pigx.codegen.entity; import com.baomidou.mybatisplus.annotation.*; import com.baomidou.mybatisplus.extension.activerecord.Model; +import com.pig4cloud.pigx.common.core.util.TenantTable; import lombok.Data; import lombok.EqualsAndHashCode; @@ -30,6 +31,7 @@ import java.time.LocalDateTime; * @date 2019-03-31 16:00:20 */ @Data +@TenantTable @TableName("gen_datasource_conf") @EqualsAndHashCode(callSuper = true) public class GenDatasourceConf extends Model { diff --git a/pigx-visual/pigx-codegen/src/main/java/com/pig4cloud/pigx/codegen/entity/GenFormConf.java b/pigx-visual/pigx-codegen/src/main/java/com/pig4cloud/pigx/codegen/entity/GenFormConf.java index 11c2e1a74..d142892cb 100755 --- a/pigx-visual/pigx-codegen/src/main/java/com/pig4cloud/pigx/codegen/entity/GenFormConf.java +++ b/pigx-visual/pigx-codegen/src/main/java/com/pig4cloud/pigx/codegen/entity/GenFormConf.java @@ -19,6 +19,7 @@ package com.pig4cloud.pigx.codegen.entity; import com.baomidou.mybatisplus.annotation.*; import com.baomidou.mybatisplus.extension.activerecord.Model; +import com.pig4cloud.pigx.common.core.util.TenantTable; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; @@ -32,6 +33,7 @@ import java.time.LocalDateTime; * @date 2019-08-12 15:55:35 */ @Data +@TenantTable @TableName("gen_form_conf") @EqualsAndHashCode(callSuper = true) @Schema(description = "生成记录") diff --git a/pigx-visual/pigx-codegen/src/main/java/com/pig4cloud/pigx/codegen/entity/GenTemplateEntity.java b/pigx-visual/pigx-codegen/src/main/java/com/pig4cloud/pigx/codegen/entity/GenTemplateEntity.java index a73178f77..557f9181b 100644 --- a/pigx-visual/pigx-codegen/src/main/java/com/pig4cloud/pigx/codegen/entity/GenTemplateEntity.java +++ b/pigx-visual/pigx-codegen/src/main/java/com/pig4cloud/pigx/codegen/entity/GenTemplateEntity.java @@ -19,6 +19,7 @@ package com.pig4cloud.pigx.codegen.entity; import com.baomidou.mybatisplus.annotation.*; import com.baomidou.mybatisplus.extension.activerecord.Model; +import com.pig4cloud.pigx.common.core.util.TenantTable; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; @@ -32,78 +33,79 @@ import java.time.LocalDateTime; * @date 2023-02-21 17:15:44 */ @Data +@TenantTable @TableName("gen_template") @EqualsAndHashCode(callSuper = true) @Schema(description = "模板") public class GenTemplateEntity extends Model { - private static final long serialVersionUID = 1L; + private static final long serialVersionUID = 1L; - /** - * 主键 - */ - @TableId(type = IdType.ASSIGN_ID) - @Schema(description = "主键") - private Long id; + /** + * 主键 + */ + @TableId(type = IdType.ASSIGN_ID) + @Schema(description = "主键") + private Long id; - /** - * 模板名称 - */ - @Schema(description = "模板名称") - private String templateName; + /** + * 模板名称 + */ + @Schema(description = "模板名称") + private String templateName; - /** - * 模板路径 - */ - @Schema(description = "模板路径") - private String generatorPath; + /** + * 模板路径 + */ + @Schema(description = "模板路径") + private String generatorPath; - /** - * 模板描述 - */ - @Schema(description = "模板描述") - private String templateDesc; + /** + * 模板描述 + */ + @Schema(description = "模板描述") + private String templateDesc; - /** - * 模板代码 - */ - @Schema(description = "模板代码") - private String templateCode; + /** + * 模板代码 + */ + @Schema(description = "模板代码") + private String templateCode; - /** - * 创建人 - */ - @TableField(fill = FieldFill.INSERT) - @Schema(description = "创建人") - private String createBy; + /** + * 创建人 + */ + @TableField(fill = FieldFill.INSERT) + @Schema(description = "创建人") + private String createBy; - /** - * 修改人 - */ - @TableField(fill = FieldFill.UPDATE) - @Schema(description = "修改人") - private String updateBy; + /** + * 修改人 + */ + @TableField(fill = FieldFill.UPDATE) + @Schema(description = "修改人") + private String updateBy; - /** - * 创建时间 - */ - @Schema(description = "创建时间") - @TableField(fill = FieldFill.INSERT) - private LocalDateTime createTime; + /** + * 创建时间 + */ + @Schema(description = "创建时间") + @TableField(fill = FieldFill.INSERT) + private LocalDateTime createTime; - /** - * 修改时间 - */ - @Schema(description = "修改时间") - @TableField(fill = FieldFill.UPDATE) - private LocalDateTime updateTime; + /** + * 修改时间 + */ + @Schema(description = "修改时间") + @TableField(fill = FieldFill.UPDATE) + private LocalDateTime updateTime; - /** - * 删除标识(0-正常,1-删除) - */ - @TableLogic - @TableField(fill = FieldFill.INSERT) - @Schema(description = "删除标记,1:已删除,0:正常") - private String delFlag; + /** + * 删除标识(0-正常,1-删除) + */ + @TableLogic + @TableField(fill = FieldFill.INSERT) + @Schema(description = "删除标记,1:已删除,0:正常") + private String delFlag; } diff --git a/pigx-visual/pigx-codegen/src/main/java/com/pig4cloud/pigx/codegen/mapper/GenCreateTableMapper.java b/pigx-visual/pigx-codegen/src/main/java/com/pig4cloud/pigx/codegen/mapper/GenCreateTableMapper.java new file mode 100755 index 000000000..0a8be2ef6 --- /dev/null +++ b/pigx-visual/pigx-codegen/src/main/java/com/pig4cloud/pigx/codegen/mapper/GenCreateTableMapper.java @@ -0,0 +1,32 @@ +package com.pig4cloud.pigx.codegen.mapper; +/* + * Copyright (c) 2018-2025, luolin All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * Neither the name of the pig4cloud.com developer nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * Author: luolin (766488893@qq.com) + */ + +import com.pig4cloud.pigx.codegen.entity.GenCreateTable; +import com.pig4cloud.pigx.common.data.datascope.PigxBaseMapper; +import org.apache.ibatis.annotations.Mapper; + +/** + * 自动创建表管理 + * + * @author luolin + * @date 2022-09-23 21:56:11 + */ +@Mapper +public interface GenCreateTableMapper extends PigxBaseMapper { + +} diff --git a/pigx-visual/pigx-codegen/src/main/java/com/pig4cloud/pigx/codegen/service/GenCreateTableService.java b/pigx-visual/pigx-codegen/src/main/java/com/pig4cloud/pigx/codegen/service/GenCreateTableService.java new file mode 100755 index 000000000..3d99bc211 --- /dev/null +++ b/pigx-visual/pigx-codegen/src/main/java/com/pig4cloud/pigx/codegen/service/GenCreateTableService.java @@ -0,0 +1,38 @@ +package com.pig4cloud.pigx.codegen.service; + +/* + * Copyright (c) 2018-2025, luolin All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * Neither the name of the pig4cloud.com developer nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * Author: luolin (766488893@qq.com) + */ + +import com.baomidou.mybatisplus.extension.service.IService; +import com.pig4cloud.pigx.codegen.entity.GenCreateTable; +import com.pig4cloud.pigx.codegen.util.vo.GenCreateTableVO; + +/** + * 自动创建表管理 + * + * @author luolin + * @date 2022-09-23 21:56:11 + */ +public interface GenCreateTableService extends IService { + + /** + * 自动创建表 + * @param createTableVO 表信息 + */ + Boolean createTable(GenCreateTableVO createTableVO); + +} diff --git a/pigx-visual/pigx-codegen/src/main/java/com/pig4cloud/pigx/codegen/service/impl/CreateTableServiceImpl.java b/pigx-visual/pigx-codegen/src/main/java/com/pig4cloud/pigx/codegen/service/impl/CreateTableServiceImpl.java new file mode 100755 index 000000000..3dade7a79 --- /dev/null +++ b/pigx-visual/pigx-codegen/src/main/java/com/pig4cloud/pigx/codegen/service/impl/CreateTableServiceImpl.java @@ -0,0 +1,66 @@ +package com.pig4cloud.pigx.codegen.service.impl; +/* + * Copyright (c) 2018-2025, luolin All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * Neither the name of the pig4cloud.com developer nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * Author: luolin (766488893@qq.com) + */ + +import cn.hutool.json.JSONObject; +import cn.hutool.json.JSONUtil; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.pig4cloud.pigx.codegen.entity.GenCreateTable; +import com.pig4cloud.pigx.codegen.mapper.GenCreateTableMapper; +import com.pig4cloud.pigx.codegen.service.GenCreateTableService; +import com.pig4cloud.pigx.codegen.util.table.CreateTableHandler; +import com.pig4cloud.pigx.codegen.util.table.model.TableInfo; +import com.pig4cloud.pigx.codegen.util.vo.GenCreateTableVO; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.anyline.metadata.Column; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.LinkedHashMap; + +/** + * 自动创建表管理 + * + * @author luolin + * @date 2022-09-23 21:56:11 + */ +@Slf4j +@Service +@RequiredArgsConstructor +@Transactional(rollbackFor = Exception.class) +public class CreateTableServiceImpl extends ServiceImpl + implements GenCreateTableService { + + private final CreateTableHandler createTableHandler; + + @Override + public Boolean createTable(GenCreateTableVO createTableVO) { + String columnsInfo = createTableVO.getColumnsInfo(); + TableInfo tableInfo = new TableInfo(); + tableInfo.setName(createTableVO.getTableName()); + LinkedHashMap columns = new LinkedHashMap<>(); + LinkedHashMap linkedHashMap = JSONUtil.toBean(columnsInfo, LinkedHashMap.class); + linkedHashMap.forEach((key, val) -> { + columns.put(key, JSONUtil.toBean(val, Column.class)); + }); + tableInfo.setColumns(columns); + tableInfo.setComment(createTableVO.getComments()); + return createTableHandler.createTable(tableInfo); + } + +} diff --git a/pigx-visual/pigx-codegen/src/main/java/com/pig4cloud/pigx/codegen/service/impl/GeneratorServiceImpl.java b/pigx-visual/pigx-codegen/src/main/java/com/pig4cloud/pigx/codegen/service/impl/GeneratorServiceImpl.java index 38cfb6d2e..5937e93ee 100755 --- a/pigx-visual/pigx-codegen/src/main/java/com/pig4cloud/pigx/codegen/service/impl/GeneratorServiceImpl.java +++ b/pigx-visual/pigx-codegen/src/main/java/com/pig4cloud/pigx/codegen/service/impl/GeneratorServiceImpl.java @@ -309,8 +309,7 @@ public class GeneratorServiceImpl implements GeneratorService { // 按字段类型分组,使用 Map 存储不同类型的字段列表 Map> typeMap = table.getFieldList() .stream() - .collect(Collectors - .partitioningBy(columnEntity -> BooleanUtil.toBoolean(columnEntity.getPrimaryPk().toString()))); + .collect(Collectors.partitioningBy(columnEntity -> BooleanUtil.toBoolean(columnEntity.getPrimaryPk()))); // 从分组后的 Map 中获取不同类型的字段列表 List primaryList = typeMap.get(true); diff --git a/pigx-visual/pigx-codegen/src/main/java/com/pig4cloud/pigx/codegen/util/table/CreateTableHandler.java b/pigx-visual/pigx-codegen/src/main/java/com/pig4cloud/pigx/codegen/util/table/CreateTableHandler.java new file mode 100644 index 000000000..143dbd8ad --- /dev/null +++ b/pigx-visual/pigx-codegen/src/main/java/com/pig4cloud/pigx/codegen/util/table/CreateTableHandler.java @@ -0,0 +1,71 @@ +package com.pig4cloud.pigx.codegen.util.table; +/* + * Copyright (c) 2018-2025, luolin All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * Neither the name of the pig4cloud.com developer nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * Author: luolin (766488893@qq.com) + */ + +import com.pig4cloud.pigx.codegen.util.table.enums.TableModelEnum; +import com.pig4cloud.pigx.codegen.util.table.model.TableInfo; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.anyline.metadata.Table; +import org.anyline.proxy.ServiceProxy; +import org.anyline.service.AnylineService; +import org.springframework.stereotype.Component; + +/** + * 创建表核心逻辑类 + * + * @author luolin + * @date 2022-09-18 21:56:11 + */ +@Slf4j +@Component +@RequiredArgsConstructor +public class CreateTableHandler { + + /** + * 运行表单主键ID + */ + private final static String RUN_FORM_COLUMN_NAME = "run_form_id"; + + /** + * 自动创建表 + * @param tableInfo 表信息 + */ + public Boolean createTable(TableInfo tableInfo) { + if (tableInfo.getColumns() == null || tableInfo.getColumns().isEmpty()) { + throw new RuntimeException("自动创建表[" + tableInfo.getName() + "]中至少需要一个字段"); + } + if (!TableModelEnum.CREATE.name().toLowerCase().equals(tableInfo.getModel())) { + throw new RuntimeException("自动创建表[" + tableInfo.getModel() + "]模式的处理未找到,请检查"); + } + try { + AnylineService service = ServiceProxy.service(); + // 如果已存在,删除重键 + Table table = service.metadata().table(tableInfo.getName(), false); + if (null != table) + service.ddl().drop(table); + // 执行建表SQL + service.ddl().create(tableInfo); + log.info("自动创建表处理完成!"); + } + catch (Exception e) { + throw new RuntimeException("自动创建表异常", e); + } + return Boolean.TRUE; + } + +} diff --git a/pigx-visual/pigx-codegen/src/main/java/com/pig4cloud/pigx/codegen/util/table/enums/TableModelEnum.java b/pigx-visual/pigx-codegen/src/main/java/com/pig4cloud/pigx/codegen/util/table/enums/TableModelEnum.java new file mode 100644 index 000000000..0d32dbfb5 --- /dev/null +++ b/pigx-visual/pigx-codegen/src/main/java/com/pig4cloud/pigx/codegen/util/table/enums/TableModelEnum.java @@ -0,0 +1,40 @@ +package com.pig4cloud.pigx.codegen.util.table.enums; +/* + * Copyright (c) 2018-2025, luolin All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * Neither the name of the pig4cloud.com developer nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * Author: luolin (766488893@qq.com) + */ + +/** + * 表生成模式 + * + * @author luolin + * @date 2022-09-18 21:56:11 + */ +public enum TableModelEnum { + + /** + * 创建模式: 将删除所有已存在的表,重新创建,会清除所有数据 + */ + CREATE, + /** + * 更新模式: 保留已存在的表以及字段,不针对字段或其结构进行修改,不影响数据 + */ + UPDATE, + /** + * 默认模式: 不做任何操作 + */ + NONE; + +} diff --git a/pigx-visual/pigx-codegen/src/main/java/com/pig4cloud/pigx/codegen/util/table/model/TableInfo.java b/pigx-visual/pigx-codegen/src/main/java/com/pig4cloud/pigx/codegen/util/table/model/TableInfo.java new file mode 100644 index 000000000..a0cc56cb6 --- /dev/null +++ b/pigx-visual/pigx-codegen/src/main/java/com/pig4cloud/pigx/codegen/util/table/model/TableInfo.java @@ -0,0 +1,44 @@ +package com.pig4cloud.pigx.codegen.util.table.model; +/* + * Copyright (c) 2018-2025, luolin All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * Neither the name of the pig4cloud.com developer nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * Author: luolin (766488893@qq.com) + */ + +import com.pig4cloud.pigx.codegen.util.table.enums.TableModelEnum; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.anyline.metadata.Table; + +/** + * 表信息 + * + * @author luolin + * @date 2022-09-18 21:56:11 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class TableInfo extends Table { + + /** + * 建表模式 + */ + private String model = TableModelEnum.CREATE.name().toLowerCase(); + + /** + * 表CRUD模式 + */ + private String crudModel; + +} diff --git a/pigx-visual/pigx-codegen/src/main/java/com/pig4cloud/pigx/codegen/util/vo/GenCreateTableVO.java b/pigx-visual/pigx-codegen/src/main/java/com/pig4cloud/pigx/codegen/util/vo/GenCreateTableVO.java new file mode 100755 index 000000000..4d513234b --- /dev/null +++ b/pigx-visual/pigx-codegen/src/main/java/com/pig4cloud/pigx/codegen/util/vo/GenCreateTableVO.java @@ -0,0 +1,95 @@ +package com.pig4cloud.pigx.codegen.util.vo; +/* + * Copyright (c) 2018-2025, luolin All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * Neither the name of the pig4cloud.com developer nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * Author: luolin (766488893@qq.com) + */ + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotBlank; +import lombok.Data; + +import java.time.LocalDateTime; + +/** + * 自动创建表管理 + * + * @author luolin + * @date 2022-09-23 21:56:11 + */ +@Data +@Schema(description = "自动创建表管理") +public class GenCreateTableVO { + + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @Schema(description = "主键ID") + private Long id; + + /** + * 表名称 + */ + @NotBlank(message = "表名称不能为空") + @Schema(description = "表名称") + private String tableName; + + /** + * 表注释 + */ + @NotBlank(message = "表注释不能为空") + @Schema(description = "表注释") + private String comments; + + /** + * 数据源名称 + */ + @NotBlank(message = "数据源名称不能为空") + @Schema(description = "数据源名称") + private String dsName; + + /** + * 主键策略 + */ + @NotBlank(message = "主键策略不能为空") + @Schema(description = "主键策略") + private String pkPolicy; + + /** + * 创建人 + */ + @Schema(description = "创建人") + private Long createUser; + + /** + * 创建时间 + */ + @Schema(description = "创建时间") + private LocalDateTime createTime; + + /** + * 表字段信息 + */ + @Schema(description = "表字段信息") + private String columnsInfo; + + /** + * 字段信息 + */ + @Schema(description = "字段信息") + private String columnInfo; + +} diff --git a/pigx-visual/pigx-codegen/src/main/resources/application-dev.yml b/pigx-visual/pigx-codegen/src/main/resources/application-dev.yml deleted file mode 100644 index 550751e58..000000000 --- a/pigx-visual/pigx-codegen/src/main/resources/application-dev.yml +++ /dev/null @@ -1,25 +0,0 @@ -# 数据源 -spring: - redis: - host: pigx-redis - database: 9 #避免和微服务 PIGX 冲突 - datasource: - type: com.alibaba.druid.pool.DruidDataSource - druid: - driver-class-name: com.mysql.cj.jdbc.Driver - username: root - password: root - url: jdbc:mysql://pigx-mysql:3306/pigxx_boot_codegen?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8&allowMultiQueries=true&allowPublicKeyRetrieval=true - web: - resources: - static-locations: classpath:/static/,classpath:/views/ - -# 租户表维护 -pigx: - tenant: - column: tenant_id - tables: - - gen_datasource_conf - - gen_form_conf - - gen_template - - gen_group diff --git a/pigx-visual/pigx-daemon-elastic-job/Dockerfile b/pigx-visual/pigx-daemon-elastic-job/Dockerfile index a5711555d..9502ab6ee 100644 --- a/pigx-visual/pigx-daemon-elastic-job/Dockerfile +++ b/pigx-visual/pigx-daemon-elastic-job/Dockerfile @@ -3,6 +3,7 @@ FROM alibabadragonwell/dragonwell:17-anolis MAINTAINER wangiegie@gmail.com ENV TZ=Asia/Shanghai +ENV LANG C.UTF-8 ENV JAVA_OPTS="-Xms128m -Xmx256m -Djava.security.egd=file:/dev/./urandom" RUN ln -sf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone diff --git a/pigx-visual/pigx-daemon-elastic-job/pom.xml b/pigx-visual/pigx-daemon-elastic-job/pom.xml index bfa9cb84c..654754b4b 100644 --- a/pigx-visual/pigx-daemon-elastic-job/pom.xml +++ b/pigx-visual/pigx-daemon-elastic-job/pom.xml @@ -23,7 +23,7 @@ com.pig4cloud pigx-visual - 5.3.0 + 5.4.0 pigx-daemon-elastic-job @@ -55,7 +55,7 @@ com.baomidou - mybatis-plus-boot-starter + mybatis-plus-spring-boot3-starter com.mysql diff --git a/pigx-visual/pigx-daemon-quartz/Dockerfile b/pigx-visual/pigx-daemon-quartz/Dockerfile index 66a2abfef..c33d5443f 100644 --- a/pigx-visual/pigx-daemon-quartz/Dockerfile +++ b/pigx-visual/pigx-daemon-quartz/Dockerfile @@ -3,6 +3,7 @@ FROM alibabadragonwell/dragonwell:17-anolis MAINTAINER wangiegie@gmail.com ENV TZ=Asia/Shanghai +ENV LANG C.UTF-8 ENV JAVA_OPTS="-Xms128m -Xmx256m -Djava.security.egd=file:/dev/./urandom" RUN ln -sf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone diff --git a/pigx-visual/pigx-daemon-quartz/pom.xml b/pigx-visual/pigx-daemon-quartz/pom.xml index b43daf83b..863fab1f9 100644 --- a/pigx-visual/pigx-daemon-quartz/pom.xml +++ b/pigx-visual/pigx-daemon-quartz/pom.xml @@ -5,7 +5,7 @@ com.pig4cloud pigx-visual - 5.3.0 + 5.4.0 4.0.0 @@ -37,7 +37,7 @@ com.baomidou - mybatis-plus-boot-starter + mybatis-plus-spring-boot3-starter @@ -107,13 +107,6 @@ org.springframework.boot spring-boot-maven-plugin - - org.apache.maven.plugins - maven-deploy-plugin - - true - - io.fabric8 docker-maven-plugin diff --git a/pigx-visual/pigx-daemon-quartz/src/main/java/com/pig4cloud/pigx/daemon/quartz/config/PigxInitQuartzJob.java b/pigx-visual/pigx-daemon-quartz/src/main/java/com/pig4cloud/pigx/daemon/quartz/config/PigxInitQuartzJob.java index e1771c80b..effccb377 100644 --- a/pigx-visual/pigx-daemon-quartz/src/main/java/com/pig4cloud/pigx/daemon/quartz/config/PigxInitQuartzJob.java +++ b/pigx-visual/pigx-daemon-quartz/src/main/java/com/pig4cloud/pigx/daemon/quartz/config/PigxInitQuartzJob.java @@ -20,10 +20,10 @@ package com.pig4cloud.pigx.daemon.quartz.config; import com.pig4cloud.pigx.daemon.quartz.constants.PigxQuartzEnum; import com.pig4cloud.pigx.daemon.quartz.service.SysJobService; import com.pig4cloud.pigx.daemon.quartz.util.TaskUtil; -import lombok.AllArgsConstructor; +import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.quartz.Scheduler; -import org.springframework.context.annotation.Bean; +import org.springframework.beans.factory.InitializingBean; import org.springframework.context.annotation.Configuration; /** @@ -33,8 +33,8 @@ import org.springframework.context.annotation.Configuration; */ @Slf4j @Configuration -@AllArgsConstructor -public class PigxInitQuartzJob { +@RequiredArgsConstructor +public class PigxInitQuartzJob implements InitializingBean { private final SysJobService sysJobService; @@ -42,22 +42,22 @@ public class PigxInitQuartzJob { private final Scheduler scheduler; - @Bean - public void customize() { - sysJobService.list().forEach(sysjob -> { - if (PigxQuartzEnum.JOB_STATUS_RELEASE.getType().equals(sysjob.getJobStatus())) { - taskUtil.removeJob(sysjob, scheduler); - } - else if (PigxQuartzEnum.JOB_STATUS_RUNNING.getType().equals(sysjob.getJobStatus())) { - taskUtil.resumeJob(sysjob, scheduler); - } - else if (PigxQuartzEnum.JOB_STATUS_NOT_RUNNING.getType().equals(sysjob.getJobStatus())) { - taskUtil.pauseJob(sysjob, scheduler); - } - else { - taskUtil.removeJob(sysjob, scheduler); - } - }); - } + @Override + public void afterPropertiesSet() throws Exception { + sysJobService.list().forEach(sysjob -> { + if (PigxQuartzEnum.JOB_STATUS_RELEASE.getType().equals(sysjob.getJobStatus())) { + taskUtil.removeJob(sysjob, scheduler); + } + else if (PigxQuartzEnum.JOB_STATUS_RUNNING.getType().equals(sysjob.getJobStatus())) { + taskUtil.resumeJob(sysjob, scheduler); + } + else if (PigxQuartzEnum.JOB_STATUS_NOT_RUNNING.getType().equals(sysjob.getJobStatus())) { + taskUtil.pauseJob(sysjob, scheduler); + } + else { + taskUtil.removeJob(sysjob, scheduler); + } + }); + } } diff --git a/pigx-visual/pigx-daemon-quartz/src/main/java/com/pig4cloud/pigx/daemon/quartz/entity/SysJob.java b/pigx-visual/pigx-daemon-quartz/src/main/java/com/pig4cloud/pigx/daemon/quartz/entity/SysJob.java index 8fa4004ed..ffbb979a7 100644 --- a/pigx-visual/pigx-daemon-quartz/src/main/java/com/pig4cloud/pigx/daemon/quartz/entity/SysJob.java +++ b/pigx-visual/pigx-daemon-quartz/src/main/java/com/pig4cloud/pigx/daemon/quartz/entity/SysJob.java @@ -22,11 +22,9 @@ import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.extension.activerecord.Model; +import com.pig4cloud.pigx.common.core.util.TenantTable; import io.swagger.v3.oas.annotations.media.Schema; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; +import lombok.*; import java.time.LocalDateTime; @@ -37,9 +35,11 @@ import java.time.LocalDateTime; */ @Data @Builder +@TenantTable @NoArgsConstructor @AllArgsConstructor @Schema(description = "定时任务") +@EqualsAndHashCode(callSuper = true) public class SysJob extends Model { private static final long serialVersionUID = 1L; diff --git a/pigx-visual/pigx-daemon-quartz/src/main/java/com/pig4cloud/pigx/daemon/quartz/entity/SysJobLog.java b/pigx-visual/pigx-daemon-quartz/src/main/java/com/pig4cloud/pigx/daemon/quartz/entity/SysJobLog.java index b6d08866f..f5a04134b 100644 --- a/pigx-visual/pigx-daemon-quartz/src/main/java/com/pig4cloud/pigx/daemon/quartz/entity/SysJobLog.java +++ b/pigx-visual/pigx-daemon-quartz/src/main/java/com/pig4cloud/pigx/daemon/quartz/entity/SysJobLog.java @@ -22,11 +22,9 @@ import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.extension.activerecord.Model; +import com.pig4cloud.pigx.common.core.util.TenantTable; import io.swagger.v3.oas.annotations.media.Schema; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; +import lombok.*; import java.time.LocalDateTime; @@ -38,9 +36,11 @@ import java.time.LocalDateTime; */ @Data @Builder +@TenantTable @NoArgsConstructor @AllArgsConstructor @Schema(description = "定时任务日志") +@EqualsAndHashCode(callSuper = true) public class SysJobLog extends Model { private static final long serialVersionUID = 1L; diff --git a/pigx-visual/pigx-daemon-quartz/src/main/java/com/pig4cloud/pigx/daemon/quartz/event/SysJobLogListener.java b/pigx-visual/pigx-daemon-quartz/src/main/java/com/pig4cloud/pigx/daemon/quartz/event/SysJobLogListener.java index 2ba7b47c0..3ab512f78 100644 --- a/pigx-visual/pigx-daemon-quartz/src/main/java/com/pig4cloud/pigx/daemon/quartz/event/SysJobLogListener.java +++ b/pigx-visual/pigx-daemon-quartz/src/main/java/com/pig4cloud/pigx/daemon/quartz/event/SysJobLogListener.java @@ -26,6 +26,8 @@ import org.springframework.core.annotation.Order; import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; +import java.util.Objects; + /** * @author frwcloud 异步监听定时任务日志事件 */ @@ -41,7 +43,10 @@ public class SysJobLogListener { @EventListener(SysJobLogEvent.class) public void saveSysJobLog(SysJobLogEvent event) { SysJobLog sysJobLog = event.getSysJobLog(); - sysJobLogService.save(sysJobLog); + // 只保存发布状态的任务日志 + if (Objects.nonNull(sysJobLog.getJobId())){ + sysJobLogService.save(sysJobLog); + } log.info("执行定时任务日志"); } diff --git a/pigx-visual/pigx-jimu-platform/Dockerfile b/pigx-visual/pigx-jimu-platform/Dockerfile index 3a6260718..a14b9a7e3 100644 --- a/pigx-visual/pigx-jimu-platform/Dockerfile +++ b/pigx-visual/pigx-jimu-platform/Dockerfile @@ -3,6 +3,7 @@ FROM alibabadragonwell/dragonwell:17-anolis MAINTAINER wangiegie@gmail.com ENV TZ=Asia/Shanghai +ENV LANG C.UTF-8 ENV JAVA_OPTS="-Xms128m -Xmx256m -Djava.security.egd=file:/dev/./urandom" RUN ln -sf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone diff --git a/pigx-visual/pigx-jimu-platform/pom.xml b/pigx-visual/pigx-jimu-platform/pom.xml index 838e035bf..e0e7f2add 100755 --- a/pigx-visual/pigx-jimu-platform/pom.xml +++ b/pigx-visual/pigx-jimu-platform/pom.xml @@ -5,20 +5,14 @@ com.pig4cloud pigx-visual - 5.3.0 + 5.4.0 pigx-jimu-platform jar 积木报表系统 - - 1.2.20 - 2.7.18 - 2021.0.8 - 2021.0.5.0 - 2.7.11 - + @@ -58,14 +52,13 @@ org.jeecgframework.jimureport - jimureport-spring-boot-starter + jimureport-spring-boot3-starter ${jimu.version} com.alibaba - druid-spring-boot-starter - ${druid.version} + druid-spring-boot-3-starter @@ -84,44 +77,6 @@ - - - - - - org.springframework.boot - spring-boot-dependencies - ${spring-boot-dependencies.version} - pom - import - - - - - org.springframework.cloud - spring-cloud-dependencies - ${spring-cloud.version} - pom - import - - - - - de.codecentric - spring-boot-admin-starter-server - ${spring-boot-admin.version} - - - - - com.alibaba.cloud - spring-cloud-alibaba-dependencies - ${spring-cloud-alibaba.version} - pom - import - - - diff --git a/pigx-visual/pigx-jimu-platform/src/main/java/com/pig4cloud/pigx/bi/config/JimuReportTokenService.java b/pigx-visual/pigx-jimu-platform/src/main/java/com/pig4cloud/pigx/bi/config/JimuReportTokenService.java index 49c9fb673..6cf6645c7 100644 --- a/pigx-visual/pigx-jimu-platform/src/main/java/com/pig4cloud/pigx/bi/config/JimuReportTokenService.java +++ b/pigx-visual/pigx-jimu-platform/src/main/java/com/pig4cloud/pigx/bi/config/JimuReportTokenService.java @@ -12,7 +12,6 @@ import org.jeecg.modules.jmreport.api.JmReportTokenServiceI; import org.springframework.stereotype.Component; import java.util.HashMap; -import java.util.List; import java.util.Map; /** @@ -56,8 +55,9 @@ public class JimuReportTokenService implements JmReportTokenServiceI { @Override public Boolean verifyToken(String token) { // 分割出 PIGX 的租户信息 - List splitList = StrUtil.split(token, CharUtil.UNDERLINE); - R> result = tokenService.queryToken(splitList.get(1), splitList.get(0) , SecurityConstants.FROM_IN); + String tenant = StrUtil.subBefore(token, CharUtil.UNDERLINE, false); + String tokenStr = StrUtil.subAfter(token, CharUtil.UNDERLINE, false); + R> result = tokenService.queryToken(tokenStr,tenant , SecurityConstants.FROM_IN); if (CommonConstants.SUCCESS.equals(result.getCode())) { return true; } diff --git a/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/authority.ftl b/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/authority.ftl deleted file mode 100644 index 86eb3ee81..000000000 --- a/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/authority.ftl +++ /dev/null @@ -1,43 +0,0 @@ -<#assign CACHE_VERSION = "v=1699715555.10"> - - - - - - 没有权限 - - - -
-
- -
-
- 您没有权限访问该页面 -
-
- - diff --git a/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/common/resource.ftl b/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/common/resource.ftl deleted file mode 100644 index 23c2b00b2..000000000 --- a/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/common/resource.ftl +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - - diff --git a/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/common/tj.ftl b/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/common/tj.ftl deleted file mode 100644 index 58e8cd72c..000000000 --- a/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/common/tj.ftl +++ /dev/null @@ -1,17 +0,0 @@ - \ No newline at end of file diff --git a/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/demo.ftl b/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/demo.ftl deleted file mode 100644 index ca1f05d1c..000000000 --- a/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/demo.ftl +++ /dev/null @@ -1,835 +0,0 @@ - - - - - - 积木报表设计器 - - - - - - - - -
- - \ No newline at end of file diff --git a/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/error.ftl b/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/error.ftl deleted file mode 100644 index 32347c969..000000000 --- a/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/error.ftl +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - 系统错误 - - - -
- ${message} - Upgrade Now -
- - \ No newline at end of file diff --git a/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/index.ftl b/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/index.ftl deleted file mode 100644 index b23847d50..000000000 --- a/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/index.ftl +++ /dev/null @@ -1,1360 +0,0 @@ -<#assign CACHE_VERSION = "v=1699715555.10"> -<#assign config_id = "${id!''}"> - - - - - - 积木报表—免费可视化Web报表工具 - - - - <#include "./common/resource.ftl"> - - - - - - - - - - - - <#include "./template/index.ftl"> - - -
- - -
Loading
-
-<#include "./modal.ftl"> -
-
-
- - 收起 - - - - - - - - -
-
- -
-
- -
-
-
-
-
-
-
-
- - 收起 - - - - - - -
-
-
- 坐标 - -
-
- 类型 -<#--

自定义表单式

--> - - 文本 - 数值 - 图片 - 条形码 - 二维码 - 富文本 - <#--图表--> - -
-
- 尺寸 - - 完全覆盖(cover) - 适应内容(contain) - width100%--center - height100%--center - 居中显示 - 拉伸(100% 100%) - -
- -
- 值 - -
- -
- 宽度 - -
- -
- 高度 - -
- - - - - -
-
- 启用 -
-
- 数据行倍数: - -
-
-
- -
- - - - -
-
- 聚合方式 - - {{ item.label }} - -
-
- 扩展方向 - - {{ item.label }} - -
-
- 排序方式 - - {{ item.label }} - -
-
- 自定义文本排序 - -
-
- 高级配置 - - {{ item.label }} - -
-
-
- - - - -
- 分组依据 - - {{ item.label }} - -
- -
- 聚合方式 - - {{ item.label }} - -
-
-
- - - - - - 添加链接 - - - - - - 图表联动 - 报表钻取 - 网络报表 - - - - - - - - - - - - - -
- 小数位数 - -
-
- 增强配置 -
-
- - - - 新增 - - - - - - -
- 横向偏移(px): - -
- -
- 纵向偏移(px): - -
-
- -
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <#----> - - - - - -
- 数据类型 - - SQL数据集 - Api数据集 - JSON数据集 - JavaBean数据集 - -
- - -
-
- Api类型 - - 静态数据 - 动态数据 - 接口请求 - -
-
- 请自定义数据值: - 编辑 -
-
-

接口url:  

- -
-
-
- 绑定数据集: - - {{ item.title }} - -
-
-
- - -
-
- 绑定数据集: - - {{ item.title }} - -
-
- 分类属性: - - {{ item.fieldText }} - -
-
- 值属性: - - {{ item.fieldText }} - -
- - - -
- - -
-
- 绑定数据集: - - {{ item.title }} - -
-
- - -
-
- 绑定数据集: - - {{ item.title }} - -
-
- -
-

系列类型:

-
- - 新增 - - -
-
- - - 运行 -
- - - -
- 图片: - -
- -
- -
-
- 上传 -
- -
-
- 图片宽度: - -
-
- 图片高度: - -
-
- -
- 重复设置: - - 无重复 - 水平重复 - 垂直重复 - 双向重复 - -
- - 取消背景图 - -
- 表格边框: - - 显示 - 隐藏 - -
- -
-
- - - - - - - - - - -
- -
-
-
-
- - - - -
- - - - - - - -<#include "./common/tj.ftl"> - - diff --git a/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/list.ftl b/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/list.ftl index 95cea3b7a..763689f40 100644 --- a/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/list.ftl +++ b/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/list.ftl @@ -131,10 +131,6 @@ <#include "./template/list.ftl">
-<#--
--> -<#-- --> -<#-- 欢迎进入积木报表工作台 --> -<#--
--> @@ -147,6 +143,10 @@ 数据报表 +<#-- --> +<#-- --> +<#-- 图形报表--> +<#-- --> 打印设计 @@ -589,6 +589,10 @@ that.tabpan = name; that.page={page: 1,size: 10,total: 0,}; } + //查询报表名称加trim + if(that.name){ + that.name = that.name.trim(); + } var url = ""; that.dataSource=[]; if (that.tabpan == "name1"){ diff --git a/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/modal.ftl b/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/modal.ftl deleted file mode 100644 index 624ab1dce..000000000 --- a/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/modal.ftl +++ /dev/null @@ -1,172 +0,0 @@ - diff --git a/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/print.ftl b/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/print.ftl deleted file mode 100644 index 5355c0acf..000000000 --- a/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/print.ftl +++ /dev/null @@ -1,33 +0,0 @@ - - - - - 打印页面 - - - - - - - - \ No newline at end of file diff --git a/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/background_setting.ftl b/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/background_setting.ftl deleted file mode 100644 index 5d20c4df9..000000000 --- a/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/background_setting.ftl +++ /dev/null @@ -1,131 +0,0 @@ - - \ No newline at end of file diff --git a/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/bar_series_setting.ftl b/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/bar_series_setting.ftl deleted file mode 100644 index 0e01319e5..000000000 --- a/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/bar_series_setting.ftl +++ /dev/null @@ -1,75 +0,0 @@ - - - - \ No newline at end of file diff --git a/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/bar_setting.ftl b/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/bar_setting.ftl deleted file mode 100644 index 1553b9851..000000000 --- a/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/bar_setting.ftl +++ /dev/null @@ -1,87 +0,0 @@ - - \ No newline at end of file diff --git a/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/barcode.ftl b/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/barcode.ftl deleted file mode 100644 index 7a875cee1..000000000 --- a/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/barcode.ftl +++ /dev/null @@ -1,208 +0,0 @@ - -<#--JsBarcode("#imgcode", "123", { -format: "CODE39",//选择要使用的条形码类型 -width:3,//设置条之间的宽度 -height:100,//高度 -displayValue:true,//是否在条形码下方显示文字 -text:"456",//覆盖显示的文本 -fontOptions:"bold italic",//使文字加粗体或变斜体 -font:"fantasy",//设置文本的字体 -textAlign:"left",//设置文本的水平对齐方式 -textPosition:"top",//设置文本的垂直位置 -textMargin:5,//设置条形码和文本之间的间距 -fontSize:15,//设置文本的大小 -background:"#eee",//设置条形码的背景 -lineColor:"#2196f3",//设置条和文本的颜色。 -margin:15//设置条形码周围的空白边距--> - - \ No newline at end of file diff --git a/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/cell_linkage.ftl b/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/cell_linkage.ftl deleted file mode 100644 index 931fcb37e..000000000 --- a/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/cell_linkage.ftl +++ /dev/null @@ -1,404 +0,0 @@ - - - \ No newline at end of file diff --git a/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/central_point_setting.ftl b/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/central_point_setting.ftl deleted file mode 100644 index d4d358e04..000000000 --- a/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/central_point_setting.ftl +++ /dev/null @@ -1,60 +0,0 @@ - - \ No newline at end of file diff --git a/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/chart_linkage.ftl b/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/chart_linkage.ftl deleted file mode 100644 index 1d4a8fdbb..000000000 --- a/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/chart_linkage.ftl +++ /dev/null @@ -1,375 +0,0 @@ - - \ No newline at end of file diff --git a/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/data_dictionary.ftl b/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/data_dictionary.ftl deleted file mode 100644 index 9d4f13d65..000000000 --- a/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/data_dictionary.ftl +++ /dev/null @@ -1,771 +0,0 @@ - - - \ No newline at end of file diff --git a/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/data_source_setting.ftl b/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/data_source_setting.ftl deleted file mode 100644 index 5b0074b12..000000000 --- a/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/data_source_setting.ftl +++ /dev/null @@ -1,2391 +0,0 @@ - - - - \ No newline at end of file diff --git a/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/function_interpretation.ftl b/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/function_interpretation.ftl deleted file mode 100644 index 83f9540a5..000000000 --- a/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/function_interpretation.ftl +++ /dev/null @@ -1,1103 +0,0 @@ - - - - \ No newline at end of file diff --git a/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/funnel_setting.ftl b/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/funnel_setting.ftl deleted file mode 100644 index 0a5c6ca0f..000000000 --- a/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/funnel_setting.ftl +++ /dev/null @@ -1,87 +0,0 @@ - - \ No newline at end of file diff --git a/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/gauge_setting.ftl b/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/gauge_setting.ftl deleted file mode 100644 index 5c4f8d6c7..000000000 --- a/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/gauge_setting.ftl +++ /dev/null @@ -1,145 +0,0 @@ - - \ No newline at end of file diff --git a/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/grid_setting.ftl b/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/grid_setting.ftl deleted file mode 100644 index 341e0b347..000000000 --- a/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/grid_setting.ftl +++ /dev/null @@ -1,66 +0,0 @@ - - \ No newline at end of file diff --git a/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/hyperlinks.ftl b/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/hyperlinks.ftl deleted file mode 100644 index 4a13bb17e..000000000 --- a/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/hyperlinks.ftl +++ /dev/null @@ -1,567 +0,0 @@ - - - - - \ No newline at end of file diff --git a/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/javabean_setting.ftl b/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/javabean_setting.ftl deleted file mode 100644 index 83f44c0d3..000000000 --- a/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/javabean_setting.ftl +++ /dev/null @@ -1,1194 +0,0 @@ - - - - - \ No newline at end of file diff --git a/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/jurisdiction.ftl b/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/jurisdiction.ftl deleted file mode 100644 index 1ffd0a65d..000000000 --- a/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/jurisdiction.ftl +++ /dev/null @@ -1,187 +0,0 @@ - - \ No newline at end of file diff --git a/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/legend_setting.ftl b/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/legend_setting.ftl deleted file mode 100644 index 24f7f1106..000000000 --- a/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/legend_setting.ftl +++ /dev/null @@ -1,114 +0,0 @@ - - \ No newline at end of file diff --git a/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/line_setting.ftl b/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/line_setting.ftl deleted file mode 100644 index 0001c2340..000000000 --- a/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/line_setting.ftl +++ /dev/null @@ -1,108 +0,0 @@ - - \ No newline at end of file diff --git a/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/map_setting.ftl b/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/map_setting.ftl deleted file mode 100644 index a2f1f5aa6..000000000 --- a/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/map_setting.ftl +++ /dev/null @@ -1,538 +0,0 @@ - - - - \ No newline at end of file diff --git a/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/margin_setting.ftl b/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/margin_setting.ftl deleted file mode 100644 index 11142d550..000000000 --- a/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/margin_setting.ftl +++ /dev/null @@ -1,96 +0,0 @@ - - \ No newline at end of file diff --git a/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/match_setting.ftl b/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/match_setting.ftl deleted file mode 100644 index 834020346..000000000 --- a/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/match_setting.ftl +++ /dev/null @@ -1,376 +0,0 @@ - - \ No newline at end of file diff --git a/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/pictorial_setting.ftl b/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/pictorial_setting.ftl deleted file mode 100644 index 3dafc426a..000000000 --- a/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/pictorial_setting.ftl +++ /dev/null @@ -1,146 +0,0 @@ - - \ No newline at end of file diff --git a/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/pie_setting.ftl b/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/pie_setting.ftl deleted file mode 100644 index 4e8edb52d..000000000 --- a/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/pie_setting.ftl +++ /dev/null @@ -1,91 +0,0 @@ - - \ No newline at end of file diff --git a/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/primary_sub_report.ftl b/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/primary_sub_report.ftl deleted file mode 100644 index c31b9e1d4..000000000 --- a/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/primary_sub_report.ftl +++ /dev/null @@ -1,312 +0,0 @@ - - - \ No newline at end of file diff --git a/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/print_setting.ftl b/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/print_setting.ftl deleted file mode 100644 index f765642ed..000000000 --- a/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/print_setting.ftl +++ /dev/null @@ -1,349 +0,0 @@ - - - \ No newline at end of file diff --git a/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/qrcode.ftl b/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/qrcode.ftl deleted file mode 100644 index e13a7a911..000000000 --- a/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/qrcode.ftl +++ /dev/null @@ -1,88 +0,0 @@ -<#--width: 150, -height: 150, // 高度 -text: this.qrcode // 二维码内容 -// render: 'canvas' // 设置渲染方式(有两种方式 table和canvas,默认是canvas) -// background: '#f0f' -// foreground: '#ff0'--> - - \ No newline at end of file diff --git a/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/radar_setting.ftl b/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/radar_setting.ftl deleted file mode 100644 index 0483373e9..000000000 --- a/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/radar_setting.ftl +++ /dev/null @@ -1,73 +0,0 @@ - - \ No newline at end of file diff --git a/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/scatter_setting.ftl b/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/scatter_setting.ftl deleted file mode 100644 index 46536e5d3..000000000 --- a/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/scatter_setting.ftl +++ /dev/null @@ -1,68 +0,0 @@ - - \ No newline at end of file diff --git a/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/select_input.ftl b/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/select_input.ftl deleted file mode 100644 index f383833af..000000000 --- a/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/select_input.ftl +++ /dev/null @@ -1,105 +0,0 @@ - - - - \ No newline at end of file diff --git a/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/select_scroll_multiple.ftl b/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/select_scroll_multiple.ftl deleted file mode 100644 index 526ef6dd3..000000000 --- a/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/select_scroll_multiple.ftl +++ /dev/null @@ -1,496 +0,0 @@ -<#--多选组件,用于远程搜索查询 -item:传递的参数,包含字典code,查询key -value:view组件传递的值 v-model -index:下标--> - - - - \ No newline at end of file diff --git a/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/select_scroll_radio.ftl b/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/select_scroll_radio.ftl deleted file mode 100644 index f27488770..000000000 --- a/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/select_scroll_radio.ftl +++ /dev/null @@ -1,320 +0,0 @@ -<#--单选组件,用于远程搜索查询 -item:传递的参数,包含字典code,查询key -value:view组件传递的值 v-model--> - - - - \ No newline at end of file diff --git a/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/series_setting.ftl b/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/series_setting.ftl deleted file mode 100644 index 17ad9b81d..000000000 --- a/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/series_setting.ftl +++ /dev/null @@ -1,149 +0,0 @@ - - \ No newline at end of file diff --git a/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/sql_function_replace.ftl b/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/sql_function_replace.ftl deleted file mode 100644 index e14e86045..000000000 --- a/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/sql_function_replace.ftl +++ /dev/null @@ -1,176 +0,0 @@ - - - - \ No newline at end of file diff --git a/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/title_setting.ftl b/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/title_setting.ftl deleted file mode 100644 index 66ddcfcb4..000000000 --- a/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/title_setting.ftl +++ /dev/null @@ -1,103 +0,0 @@ - - \ No newline at end of file diff --git a/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/tooltip_setting.ftl b/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/tooltip_setting.ftl deleted file mode 100644 index 6e104eb91..000000000 --- a/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/tooltip_setting.ftl +++ /dev/null @@ -1,86 +0,0 @@ - - \ No newline at end of file diff --git a/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/tree_select.ftl b/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/tree_select.ftl deleted file mode 100644 index 45f1892ea..000000000 --- a/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/tree_select.ftl +++ /dev/null @@ -1,424 +0,0 @@ - - - \ No newline at end of file diff --git a/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/view_setting.ftl b/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/view_setting.ftl deleted file mode 100644 index c5bce2f6d..000000000 --- a/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/view_setting.ftl +++ /dev/null @@ -1,208 +0,0 @@ - - - \ No newline at end of file diff --git a/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/xAxis_setting.ftl b/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/xAxis_setting.ftl deleted file mode 100644 index d56cfb166..000000000 --- a/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/xAxis_setting.ftl +++ /dev/null @@ -1,127 +0,0 @@ - - \ No newline at end of file diff --git a/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/yAxis_setting.ftl b/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/yAxis_setting.ftl deleted file mode 100644 index 2a5f5c286..000000000 --- a/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/components/yAxis_setting.ftl +++ /dev/null @@ -1,161 +0,0 @@ - - \ No newline at end of file diff --git a/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/index.ftl b/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/index.ftl deleted file mode 100644 index b6011f7f4..000000000 --- a/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/index.ftl +++ /dev/null @@ -1,35 +0,0 @@ -<#include "components/select_input.ftl"> -<#include "components/barcode.ftl"> -<#include "components/qrcode.ftl"> -<#include "components/title_setting.ftl"> -<#include "components/bar_setting.ftl"> -<#include "components/line_setting.ftl"> -<#include "components/pie_setting.ftl"> -<#include "components/margin_setting.ftl"> -<#include "components/funnel_setting.ftl"> -<#include "components/pictorial_setting.ftl"> -<#include "components/scatter_setting.ftl"> -<#include "components/map_setting.ftl"> -<#include "components/radar_setting.ftl"> -<#include "components/gauge_setting.ftl"> -<#include "components/xAxis_setting.ftl"> -<#include "components/yAxis_setting.ftl"> -<#include "components/series_setting.ftl"> -<#include "components/tooltip_setting.ftl"> -<#include "components/grid_setting.ftl"> -<#include "components/legend_setting.ftl"> -<#include "components/background_setting.ftl"> -<#include "components/match_setting.ftl"> -<#include "components/data_source_setting.ftl"> -<#include "components/javabean_setting.ftl"> -<#include "components/central_point_setting.ftl"> -<#include "components/function_interpretation.ftl"> -<#include "components/data_dictionary.ftl"> -<#include "components/hyperlinks.ftl"> -<#include "components/print_setting.ftl"> -<#include "components/view_setting.ftl"> -<#include "components/chart_linkage.ftl"> -<#include "components/cell_linkage.ftl"> -<#include "components/primary_sub_report.ftl"> -<#include "components/sql_function_replace.ftl"> -<#include "components/bar_series_setting.ftl"> \ No newline at end of file diff --git a/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/list.ftl b/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/list.ftl deleted file mode 100644 index 3475babdf..000000000 --- a/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/list.ftl +++ /dev/null @@ -1 +0,0 @@ -<#include "components/jurisdiction.ftl"> \ No newline at end of file diff --git a/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/view.ftl b/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/view.ftl deleted file mode 100644 index 360943bba..000000000 --- a/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/template/view.ftl +++ /dev/null @@ -1,2 +0,0 @@ -<#include "components/select_scroll_radio.ftl"> -<#include "components/select_scroll_multiple.ftl"> \ No newline at end of file diff --git a/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/view.ftl b/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/view.ftl deleted file mode 100644 index 14a7b5f6b..000000000 --- a/pigx-visual/pigx-jimu-platform/src/main/resources/templates/jmreport/desreport/view.ftl +++ /dev/null @@ -1,308 +0,0 @@ -<#assign CACHE_VERSION = "v=1699715555.10"> -<#assign config_id = "${id!''}"> -<#assign shareView = "${shareView}"> - - - - - - - - -<#include "./common/resource.ftl"> -<#include "./template/components/tree_select.ftl"> -<#include "./template/view.ftl"> - - - - - - - - - -
- -
- - - 查 询 栏 -
- - - - - - - - - - - - - - - - - - - - - - - 查询 - 重置 - - - - - -
-
-
-
- - <#-- --> -
- - - -
- 确定 -
-
- - - - - -
-
- -
- 确定 -
-
- - - - - -
-
-
-<#--预览js--> - - - - - - - -<#include "./common/tj.ftl"> - - diff --git a/pigx-visual/pigx-monitor/Dockerfile b/pigx-visual/pigx-monitor/Dockerfile index 3a9a8c2c6..ddce8334f 100644 --- a/pigx-visual/pigx-monitor/Dockerfile +++ b/pigx-visual/pigx-monitor/Dockerfile @@ -3,6 +3,7 @@ FROM alibabadragonwell/dragonwell:17-anolis MAINTAINER wangiegie@gmail.com ENV TZ=Asia/Shanghai +ENV LANG C.UTF-8 ENV JAVA_OPTS="-Xms128m -Xmx256m -Djava.security.egd=file:/dev/./urandom" RUN ln -sf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone diff --git a/pigx-visual/pigx-monitor/pom.xml b/pigx-visual/pigx-monitor/pom.xml index 2093bb194..2bfd1f9a3 100644 --- a/pigx-visual/pigx-monitor/pom.xml +++ b/pigx-visual/pigx-monitor/pom.xml @@ -24,7 +24,7 @@ com.pig4cloud pigx-visual - 5.3.0 + 5.4.0 pigx-monitor diff --git a/pigx-visual/pigx-mp-platform/Dockerfile b/pigx-visual/pigx-mp-platform/Dockerfile index b3a638daa..a3affee03 100644 --- a/pigx-visual/pigx-mp-platform/Dockerfile +++ b/pigx-visual/pigx-mp-platform/Dockerfile @@ -3,6 +3,7 @@ FROM alibabadragonwell/dragonwell:17-anolis MAINTAINER wangiegie@gmail.com ENV TZ=Asia/Shanghai +ENV LANG C.UTF-8 ENV JAVA_OPTS="-Xms128m -Xmx256m -Djava.security.egd=file:/dev/./urandom" RUN ln -sf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone diff --git a/pigx-visual/pigx-mp-platform/pom.xml b/pigx-visual/pigx-mp-platform/pom.xml index 690913173..cc1c12d83 100755 --- a/pigx-visual/pigx-mp-platform/pom.xml +++ b/pigx-visual/pigx-mp-platform/pom.xml @@ -6,7 +6,7 @@ com.pig4cloud pigx-visual - 5.3.0 + 5.4.0 pigx-mp-platform @@ -36,7 +36,7 @@ com.baomidou - mybatis-plus-boot-starter + mybatis-plus-spring-boot3-starter diff --git a/pigx-visual/pigx-mp-platform/src/main/java/com/pig4cloud/pigx/mp/entity/WxAccount.java b/pigx-visual/pigx-mp-platform/src/main/java/com/pig4cloud/pigx/mp/entity/WxAccount.java index 7314bd101..8114bbb10 100644 --- a/pigx-visual/pigx-mp-platform/src/main/java/com/pig4cloud/pigx/mp/entity/WxAccount.java +++ b/pigx-visual/pigx-mp-platform/src/main/java/com/pig4cloud/pigx/mp/entity/WxAccount.java @@ -20,6 +20,7 @@ import com.baomidou.mybatisplus.annotation.*; import com.baomidou.mybatisplus.extension.activerecord.Model; import com.pig4cloud.pigx.common.core.sensitive.Sensitive; import com.pig4cloud.pigx.common.core.sensitive.SensitiveTypeEnum; +import com.pig4cloud.pigx.common.core.util.TenantTable; import lombok.Data; import lombok.EqualsAndHashCode; @@ -32,6 +33,7 @@ import java.time.LocalDateTime; * @date 2019-03-26 22:07:53 */ @Data +@TenantTable @EqualsAndHashCode(callSuper = true) public class WxAccount extends Model { diff --git a/pigx-visual/pigx-mp-platform/src/main/java/com/pig4cloud/pigx/mp/entity/WxAccountFans.java b/pigx-visual/pigx-mp-platform/src/main/java/com/pig4cloud/pigx/mp/entity/WxAccountFans.java index 558d373b3..d6b4025ae 100644 --- a/pigx-visual/pigx-mp-platform/src/main/java/com/pig4cloud/pigx/mp/entity/WxAccountFans.java +++ b/pigx-visual/pigx-mp-platform/src/main/java/com/pig4cloud/pigx/mp/entity/WxAccountFans.java @@ -18,6 +18,7 @@ package com.pig4cloud.pigx.mp.entity; import com.baomidou.mybatisplus.annotation.*; import com.baomidou.mybatisplus.extension.activerecord.Model; +import com.pig4cloud.pigx.common.core.util.TenantTable; import lombok.Data; import lombok.EqualsAndHashCode; @@ -30,6 +31,7 @@ import java.time.LocalDateTime; * @date 2019-03-26 22:08:08 */ @Data +@TenantTable @EqualsAndHashCode(callSuper = true) public class WxAccountFans extends Model { diff --git a/pigx-visual/pigx-mp-platform/src/main/java/com/pig4cloud/pigx/mp/entity/WxAccountTag.java b/pigx-visual/pigx-mp-platform/src/main/java/com/pig4cloud/pigx/mp/entity/WxAccountTag.java index b90769a82..5fc51a818 100644 --- a/pigx-visual/pigx-mp-platform/src/main/java/com/pig4cloud/pigx/mp/entity/WxAccountTag.java +++ b/pigx-visual/pigx-mp-platform/src/main/java/com/pig4cloud/pigx/mp/entity/WxAccountTag.java @@ -2,6 +2,7 @@ package com.pig4cloud.pigx.mp.entity; import com.baomidou.mybatisplus.annotation.*; import com.baomidou.mybatisplus.extension.activerecord.Model; +import com.pig4cloud.pigx.common.core.util.TenantTable; import lombok.Data; import lombok.EqualsAndHashCode; @@ -15,6 +16,7 @@ import java.time.LocalDateTime; * @date 2021/12/31 */ @Data +@TenantTable @EqualsAndHashCode(callSuper = true) public class WxAccountTag extends Model { diff --git a/pigx-visual/pigx-mp-platform/src/main/java/com/pig4cloud/pigx/mp/entity/WxAutoReply.java b/pigx-visual/pigx-mp-platform/src/main/java/com/pig4cloud/pigx/mp/entity/WxAutoReply.java index 65b6c88a7..921d03a9f 100644 --- a/pigx-visual/pigx-mp-platform/src/main/java/com/pig4cloud/pigx/mp/entity/WxAutoReply.java +++ b/pigx-visual/pigx-mp-platform/src/main/java/com/pig4cloud/pigx/mp/entity/WxAutoReply.java @@ -2,6 +2,7 @@ package com.pig4cloud.pigx.mp.entity; import com.baomidou.mybatisplus.annotation.*; import com.baomidou.mybatisplus.extension.activerecord.Model; +import com.pig4cloud.pigx.common.core.util.TenantTable; import lombok.Data; import lombok.EqualsAndHashCode; @@ -15,6 +16,7 @@ import java.time.LocalDateTime; * @date 2019-04-18 15:40:39 */ @Data +@TenantTable @TableName("wx_auto_reply") @EqualsAndHashCode(callSuper = true) public class WxAutoReply extends Model { diff --git a/pigx-visual/pigx-mp-platform/src/main/java/com/pig4cloud/pigx/mp/entity/WxMpMenu.java b/pigx-visual/pigx-mp-platform/src/main/java/com/pig4cloud/pigx/mp/entity/WxMpMenu.java index 566cc0da1..d1eea5e10 100644 --- a/pigx-visual/pigx-mp-platform/src/main/java/com/pig4cloud/pigx/mp/entity/WxMpMenu.java +++ b/pigx-visual/pigx-mp-platform/src/main/java/com/pig4cloud/pigx/mp/entity/WxMpMenu.java @@ -18,6 +18,7 @@ package com.pig4cloud.pigx.mp.entity; import com.baomidou.mybatisplus.annotation.*; import com.baomidou.mybatisplus.extension.activerecord.Model; +import com.pig4cloud.pigx.common.core.util.TenantTable; import lombok.Data; import lombok.EqualsAndHashCode; @@ -30,6 +31,7 @@ import java.time.LocalDateTime; * @date 2019-03-27 20:45:18 */ @Data +@TenantTable @EqualsAndHashCode(callSuper = true) public class WxMpMenu extends Model { diff --git a/pigx-visual/pigx-mp-platform/src/main/java/com/pig4cloud/pigx/mp/entity/WxMsg.java b/pigx-visual/pigx-mp-platform/src/main/java/com/pig4cloud/pigx/mp/entity/WxMsg.java index 91bf91f01..6af10d25b 100644 --- a/pigx-visual/pigx-mp-platform/src/main/java/com/pig4cloud/pigx/mp/entity/WxMsg.java +++ b/pigx-visual/pigx-mp-platform/src/main/java/com/pig4cloud/pigx/mp/entity/WxMsg.java @@ -2,6 +2,7 @@ package com.pig4cloud.pigx.mp.entity; import com.baomidou.mybatisplus.annotation.*; import com.baomidou.mybatisplus.extension.activerecord.Model; +import com.pig4cloud.pigx.common.core.util.TenantTable; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; @@ -15,6 +16,7 @@ import java.time.LocalDateTime; * @date 2019-05-28 16:12:10 */ @Data +@TenantTable @TableName("wx_msg") @EqualsAndHashCode(callSuper = true) @Schema(description = "微信消息") diff --git a/pigx-visual/pigx-pay-platform/Dockerfile b/pigx-visual/pigx-pay-platform/Dockerfile index c8611e7a7..2ff46fa50 100644 --- a/pigx-visual/pigx-pay-platform/Dockerfile +++ b/pigx-visual/pigx-pay-platform/Dockerfile @@ -3,6 +3,7 @@ FROM alibabadragonwell/dragonwell:17-anolis MAINTAINER wangiegie@gmail.com ENV TZ=Asia/Shanghai +ENV LANG C.UTF-8 ENV JAVA_OPTS="-Xms128m -Xmx256m -Djava.security.egd=file:/dev/./urandom" RUN ln -sf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone diff --git a/pigx-visual/pigx-pay-platform/pom.xml b/pigx-visual/pigx-pay-platform/pom.xml index 0f4131d2a..536c5d11f 100755 --- a/pigx-visual/pigx-pay-platform/pom.xml +++ b/pigx-visual/pigx-pay-platform/pom.xml @@ -6,7 +6,7 @@ com.pig4cloud pigx-visual - 5.3.0 + 5.4.0 pigx-pay-platform @@ -31,7 +31,7 @@ com.baomidou - mybatis-plus-boot-starter + mybatis-plus-spring-boot3-starter com.mysql @@ -147,6 +147,13 @@ org.springframework.boot spring-boot-maven-plugin + + org.apache.maven.plugins + maven-compiler-plugin + + true + + org.apache.maven.plugins maven-deploy-plugin diff --git a/pigx-visual/pigx-pay-platform/src/main/java/com/pig4cloud/pigx/pay/entity/PayChannel.java b/pigx-visual/pigx-pay-platform/src/main/java/com/pig4cloud/pigx/pay/entity/PayChannel.java index b290c429d..ecc4b1f76 100755 --- a/pigx-visual/pigx-pay-platform/src/main/java/com/pig4cloud/pigx/pay/entity/PayChannel.java +++ b/pigx-visual/pigx-pay-platform/src/main/java/com/pig4cloud/pigx/pay/entity/PayChannel.java @@ -19,6 +19,7 @@ package com.pig4cloud.pigx.pay.entity; import com.baomidou.mybatisplus.annotation.*; import com.baomidou.mybatisplus.extension.activerecord.Model; +import com.pig4cloud.pigx.common.core.util.TenantTable; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; @@ -32,6 +33,7 @@ import java.time.LocalDateTime; * @date 2019-05-28 23:57:58 */ @Data +@TenantTable @TableName("pay_channel") @EqualsAndHashCode(callSuper = true) @Schema(description = "渠道") diff --git a/pigx-visual/pigx-pay-platform/src/main/java/com/pig4cloud/pigx/pay/entity/PayGoodsOrder.java b/pigx-visual/pigx-pay-platform/src/main/java/com/pig4cloud/pigx/pay/entity/PayGoodsOrder.java index 54b841a35..2bba72966 100755 --- a/pigx-visual/pigx-pay-platform/src/main/java/com/pig4cloud/pigx/pay/entity/PayGoodsOrder.java +++ b/pigx-visual/pigx-pay-platform/src/main/java/com/pig4cloud/pigx/pay/entity/PayGoodsOrder.java @@ -19,6 +19,7 @@ package com.pig4cloud.pigx.pay.entity; import com.baomidou.mybatisplus.annotation.*; import com.baomidou.mybatisplus.extension.activerecord.Model; +import com.pig4cloud.pigx.common.core.util.TenantTable; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; @@ -32,6 +33,7 @@ import java.time.LocalDateTime; * @date 2019-05-28 23:58:27 */ @Data +@TenantTable @TableName("pay_goods_order") @EqualsAndHashCode(callSuper = true) @Schema(description = "商品订单表") diff --git a/pigx-visual/pigx-pay-platform/src/main/java/com/pig4cloud/pigx/pay/entity/PayNotifyRecord.java b/pigx-visual/pigx-pay-platform/src/main/java/com/pig4cloud/pigx/pay/entity/PayNotifyRecord.java index f23a47931..9b2fd25c9 100755 --- a/pigx-visual/pigx-pay-platform/src/main/java/com/pig4cloud/pigx/pay/entity/PayNotifyRecord.java +++ b/pigx-visual/pigx-pay-platform/src/main/java/com/pig4cloud/pigx/pay/entity/PayNotifyRecord.java @@ -19,6 +19,7 @@ package com.pig4cloud.pigx.pay.entity; import com.baomidou.mybatisplus.annotation.*; import com.baomidou.mybatisplus.extension.activerecord.Model; +import com.pig4cloud.pigx.common.core.util.TenantTable; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; @@ -32,6 +33,7 @@ import java.time.LocalDateTime; * @date 2019-05-28 23:57:23 */ @Data +@TenantTable @TableName("pay_notify_record") @EqualsAndHashCode(callSuper = true) @Schema(description = "异步通知记录") diff --git a/pigx-visual/pigx-pay-platform/src/main/java/com/pig4cloud/pigx/pay/entity/PayRefundOrder.java b/pigx-visual/pigx-pay-platform/src/main/java/com/pig4cloud/pigx/pay/entity/PayRefundOrder.java index 3c59fe679..f58913085 100755 --- a/pigx-visual/pigx-pay-platform/src/main/java/com/pig4cloud/pigx/pay/entity/PayRefundOrder.java +++ b/pigx-visual/pigx-pay-platform/src/main/java/com/pig4cloud/pigx/pay/entity/PayRefundOrder.java @@ -19,6 +19,7 @@ package com.pig4cloud.pigx.pay.entity; import com.baomidou.mybatisplus.annotation.*; import com.baomidou.mybatisplus.extension.activerecord.Model; +import com.pig4cloud.pigx.common.core.util.TenantTable; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; @@ -32,6 +33,7 @@ import java.time.LocalDateTime; * @date 2019-05-28 23:58:11 */ @Data +@TenantTable @TableName("pay_refund_order") @EqualsAndHashCode(callSuper = true) @Schema(description = "退款订单表") diff --git a/pigx-visual/pigx-pay-platform/src/main/java/com/pig4cloud/pigx/pay/entity/PayTradeOrder.java b/pigx-visual/pigx-pay-platform/src/main/java/com/pig4cloud/pigx/pay/entity/PayTradeOrder.java index 196809808..f8d9aafbb 100755 --- a/pigx-visual/pigx-pay-platform/src/main/java/com/pig4cloud/pigx/pay/entity/PayTradeOrder.java +++ b/pigx-visual/pigx-pay-platform/src/main/java/com/pig4cloud/pigx/pay/entity/PayTradeOrder.java @@ -19,6 +19,7 @@ package com.pig4cloud.pigx.pay.entity; import com.baomidou.mybatisplus.annotation.*; import com.baomidou.mybatisplus.extension.activerecord.Model; +import com.pig4cloud.pigx.common.core.util.TenantTable; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; @@ -32,6 +33,7 @@ import java.time.LocalDateTime; * @date 2019-05-28 23:58:18 */ @Data +@TenantTable @TableName("pay_trade_order") @EqualsAndHashCode(callSuper = true) @Schema(description = "支付订单表") diff --git a/pigx-visual/pigx-report-platform/Dockerfile b/pigx-visual/pigx-report-platform/Dockerfile index 9e3330996..b49e328aa 100644 --- a/pigx-visual/pigx-report-platform/Dockerfile +++ b/pigx-visual/pigx-report-platform/Dockerfile @@ -3,6 +3,7 @@ FROM alibabadragonwell/dragonwell:17-anolis MAINTAINER wangiegie@gmail.com ENV TZ=Asia/Shanghai +ENV LANG C.UTF-8 ENV JAVA_OPTS="-Xms128m -Xmx256m -Djava.security.egd=file:/dev/./urandom" RUN ln -sf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone diff --git a/pigx-visual/pigx-report-platform/pom.xml b/pigx-visual/pigx-report-platform/pom.xml index a417773fe..072dc7c13 100644 --- a/pigx-visual/pigx-report-platform/pom.xml +++ b/pigx-visual/pigx-report-platform/pom.xml @@ -5,7 +5,7 @@ com.pig4cloud pigx-visual - 5.3.0 + 5.4.0 pigx-report-platform @@ -15,7 +15,7 @@ 基于 GoView 的大屏设计系统 - 0.3.0 + 1.0.0 @@ -34,7 +34,7 @@ io.springboot.plugin - goview-spring-boot-starter + goview-spring-boot3-starter ${goview.version} @@ -69,10 +69,7 @@ com.pig4cloud pigx-upms-api - - commons-fileupload - commons-fileupload - + org.springframework.boot diff --git a/pigx-visual/pigx-xxl-job-admin/Dockerfile b/pigx-visual/pigx-xxl-job-admin/Dockerfile index ce52cbda0..a963f014b 100755 --- a/pigx-visual/pigx-xxl-job-admin/Dockerfile +++ b/pigx-visual/pigx-xxl-job-admin/Dockerfile @@ -3,6 +3,7 @@ FROM alibabadragonwell/dragonwell:17-anolis MAINTAINER wangiegie@gmail.com ENV TZ=Asia/Shanghai +ENV LANG C.UTF-8 ENV JAVA_OPTS="-Xms128m -Xmx256m -Djava.security.egd=file:/dev/./urandom" RUN ln -sf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone diff --git a/pigx-visual/pigx-xxl-job-admin/pom.xml b/pigx-visual/pigx-xxl-job-admin/pom.xml index 83be092f5..1498c1814 100644 --- a/pigx-visual/pigx-xxl-job-admin/pom.xml +++ b/pigx-visual/pigx-xxl-job-admin/pom.xml @@ -4,14 +4,14 @@ com.pig4cloud pigx-visual - 5.3.0 + 5.4.0 pigx-xxl-job-admin xxl job admin 控制台内置方便开发 jar - 2.3.0 + 3.0.3 6.0.0 2.1.1 diff --git a/pigx-visual/pom.xml b/pigx-visual/pom.xml index aa6544371..d27ccf4c2 100644 --- a/pigx-visual/pom.xml +++ b/pigx-visual/pom.xml @@ -24,7 +24,7 @@ com.pig4cloud pigx - 5.3.0 + 5.4.0 pigx-visual diff --git a/pom.xml b/pom.xml index ce77bba06..16bc9164b 100644 --- a/pom.xml +++ b/pom.xml @@ -24,7 +24,7 @@ com.pig4cloud pigx - 5.3.0 + 5.4.0 ${project.artifactId} pom @@ -33,15 +33,15 @@ - 3.1.6 - 2022.0.4 + 3.2.3 + 2023.0.0 2022.0.0.0 UTF-8 17 17 - 3.1.8 - 1.2.0 - 3.8.1 + 3.2.2 + 1.2.2 + 3.11.0 0.0.39 2.2.5 1.3.0 @@ -56,8 +56,8 @@ 3.0.5 2.12.6 2.3.5 - 1.6.5 - 1.11.543 + 1.6.6-beta2 + 1.12.261 2.4.0 5.22.0 172.17.0.111 @@ -240,7 +240,7 @@ ${maven.compiler.target} ${maven.compiler.source} UTF-8 - true + true