From 7db5bfbee588cc013e30343aea76f2b6d8b99a7b Mon Sep 17 00:00:00 2001 From: dzc <2388224167@qq.com> Date: Thu, 12 Mar 2026 16:06:40 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E5=B0=8F=E7=A8=8B=E5=BA=8F=E8=8F=9C?= =?UTF-8?q?=E5=8D=95=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- db/999pjcloudx_app.sql | 366 +++++++++++------- .../constant/menu/AppMenuPlatformEnum.java | 27 ++ .../api/constant/menu/AppMenuTypeEnum.java | 25 ++ .../pjcloud/app/api/entity/AppMenuEntity.java | 113 ++++++ .../app/api/feign/RemoteAppUserService.java | 2 +- .../app/controller/AppMenuController.java | 118 ++++++ .../AppSocialDetailsController.java | 1 + .../bsd/pjcloud/app/mapper/AppMenuMapper.java | 35 ++ .../pjcloud/app/service/AppMenuService.java | 15 + .../app/service/impl/AppMenuServiceImpl.java | 29 ++ .../impl/AppSocialDetailsServiceImpl.java | 2 +- .../main/resources/mapper/AppMenuMapper.xml | 6 + .../vo/oathmini/ThirdMinAppOAth2LoginVo.java | 4 +- .../impl/miniapp/ThirdMiniAppServiceImpl.java | 4 +- 14 files changed, 603 insertions(+), 144 deletions(-) create mode 100644 pjcloud-app-server/pjcloud-app-server-api/src/main/java/com/bsd/pjcloud/app/api/constant/menu/AppMenuPlatformEnum.java create mode 100644 pjcloud-app-server/pjcloud-app-server-api/src/main/java/com/bsd/pjcloud/app/api/constant/menu/AppMenuTypeEnum.java create mode 100755 pjcloud-app-server/pjcloud-app-server-api/src/main/java/com/bsd/pjcloud/app/api/entity/AppMenuEntity.java create mode 100755 pjcloud-app-server/pjcloud-app-server-biz/src/main/java/com/bsd/pjcloud/app/controller/AppMenuController.java create mode 100755 pjcloud-app-server/pjcloud-app-server-biz/src/main/java/com/bsd/pjcloud/app/mapper/AppMenuMapper.java create mode 100755 pjcloud-app-server/pjcloud-app-server-biz/src/main/java/com/bsd/pjcloud/app/service/AppMenuService.java create mode 100755 pjcloud-app-server/pjcloud-app-server-biz/src/main/java/com/bsd/pjcloud/app/service/impl/AppMenuServiceImpl.java create mode 100755 pjcloud-app-server/pjcloud-app-server-biz/src/main/resources/mapper/AppMenuMapper.xml diff --git a/db/999pjcloudx_app.sql b/db/999pjcloudx_app.sql index 5e5bb6b3b..93ffd1e03 100644 --- a/db/999pjcloudx_app.sql +++ b/db/999pjcloudx_app.sql @@ -6,26 +6,30 @@ SET FOREIGN_KEY_CHECKS = 0; -- Table structure for app_article -- ---------------------------- DROP TABLE IF EXISTS `app_article`; -CREATE TABLE `app_article` ( - `id` bigint NOT NULL COMMENT '主键', - `cid` bigint NOT NULL COMMENT '分类', - `title` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '标题', - `intro` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '简介', - `summary` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '摘要', - `image` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '封面', - `content` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT '内容', - `author` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '作者', - `visit` int unsigned NOT NULL DEFAULT '0' COMMENT '浏览', - `sort` int unsigned NOT NULL DEFAULT '50' COMMENT '排序', - `create_time` datetime DEFAULT NULL COMMENT '创建时间', - `update_time` datetime DEFAULT NULL COMMENT '更新时间', - `create_by` varchar(32) COLLATE utf8mb4_general_ci NOT NULL COMMENT '创建人', - `update_by` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '更新人', - `del_flag` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '删除时间', - `tenant_id` bigint(20) DEFAULT NULL, - PRIMARY KEY (`id`) USING BTREE, - KEY `cid_idx` (`cid`) USING BTREE COMMENT '分类索引' -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='文章资讯表'; +CREATE TABLE `app_article` +( + `id` bigint NOT NULL COMMENT '主键', + `cid` bigint NOT NULL COMMENT '分类', + `title` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '标题', + `intro` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '简介', + `summary` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '摘要', + `image` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '封面', + `content` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT '内容', + `author` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '作者', + `visit` int unsigned NOT NULL DEFAULT '0' COMMENT '浏览', + `sort` int unsigned NOT NULL DEFAULT '50' COMMENT '排序', + `create_time` datetime DEFAULT NULL COMMENT '创建时间', + `update_time` datetime DEFAULT NULL COMMENT '更新时间', + `create_by` varchar(32) COLLATE utf8mb4_general_ci NOT NULL COMMENT '创建人', + `update_by` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '更新人', + `del_flag` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '删除时间', + `tenant_id` bigint(20) DEFAULT NULL, + PRIMARY KEY (`id`) USING BTREE, + KEY `cid_idx` (`cid`) USING BTREE COMMENT '分类索引' +) ENGINE = InnoDB + DEFAULT CHARSET = utf8mb4 + COLLATE = utf8mb4_general_ci + ROW_FORMAT = DYNAMIC COMMENT ='文章资讯表'; -- ---------------------------- -- Records of app_article @@ -37,19 +41,23 @@ COMMIT; -- Table structure for app_article_category -- ---------------------------- DROP TABLE IF EXISTS `app_article_category`; -CREATE TABLE `app_article_category` ( - `id` bigint unsigned NOT NULL COMMENT '主键', - `name` varchar(60) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '名称', - `sort` smallint unsigned NOT NULL DEFAULT '50' COMMENT '排序', - `is_show` tinyint unsigned NOT NULL DEFAULT '1' COMMENT '是否显示: 0=否, 1=是', - `del_flag` char(1) COLLATE utf8mb4_general_ci DEFAULT '0' COMMENT '是否删除: 0=否, 1=是', - `create_time` datetime DEFAULT NULL COMMENT '创建时间', - `update_time` datetime DEFAULT NULL COMMENT '更新时间', - `create_by` varchar(32) COLLATE utf8mb4_general_ci DEFAULT '0' COMMENT '创建人', - `update_by` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '更新人', - `tenant_id` bigint(20) DEFAULT NULL, - PRIMARY KEY (`id`) USING BTREE -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='文章分类表'; +CREATE TABLE `app_article_category` +( + `id` bigint unsigned NOT NULL COMMENT '主键', + `name` varchar(60) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '名称', + `sort` smallint unsigned NOT NULL DEFAULT '50' COMMENT '排序', + `is_show` tinyint unsigned NOT NULL DEFAULT '1' COMMENT '是否显示: 0=否, 1=是', + `del_flag` char(1) COLLATE utf8mb4_general_ci DEFAULT '0' COMMENT '是否删除: 0=否, 1=是', + `create_time` datetime DEFAULT NULL COMMENT '创建时间', + `update_time` datetime DEFAULT NULL COMMENT '更新时间', + `create_by` varchar(32) COLLATE utf8mb4_general_ci DEFAULT '0' COMMENT '创建人', + `update_by` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '更新人', + `tenant_id` bigint(20) DEFAULT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB + DEFAULT CHARSET = utf8mb4 + COLLATE = utf8mb4_general_ci + ROW_FORMAT = DYNAMIC COMMENT ='文章分类表'; -- ---------------------------- -- Records of app_article_category @@ -61,18 +69,22 @@ COMMIT; -- Table structure for app_article_collect -- ---------------------------- DROP TABLE IF EXISTS `app_article_collect`; -CREATE TABLE `app_article_collect` ( - `id` bigint unsigned NOT NULL COMMENT '主键', - `user_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '用户ID', - `article_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '文章ID', - `create_time` datetime NOT NULL COMMENT '创建时间', - `update_time` datetime NOT NULL COMMENT '更新时间', - `del_flag` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '0' COMMENT '是否删除', - `create_by` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '创建人', - `update_by` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '更新人', - `tenant_id` bigint(20) DEFAULT NULL, - PRIMARY KEY (`id`) USING BTREE -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='文章收藏表'; +CREATE TABLE `app_article_collect` +( + `id` bigint unsigned NOT NULL COMMENT '主键', + `user_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '用户ID', + `article_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '文章ID', + `create_time` datetime NOT NULL COMMENT '创建时间', + `update_time` datetime NOT NULL COMMENT '更新时间', + `del_flag` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '0' COMMENT '是否删除', + `create_by` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '创建人', + `update_by` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '更新人', + `tenant_id` bigint(20) DEFAULT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB + DEFAULT CHARSET = utf8mb4 + COLLATE = utf8mb4_general_ci + ROW_FORMAT = DYNAMIC COMMENT ='文章收藏表'; -- ---------------------------- -- Records of app_article_collect @@ -84,159 +96,237 @@ COMMIT; -- Table structure for app_page -- ---------------------------- DROP TABLE IF EXISTS `app_page`; -CREATE TABLE `app_page` ( - `id` bigint unsigned NOT NULL COMMENT '主键', - `page_type` tinyint unsigned NOT NULL DEFAULT '10' COMMENT '页面类型', - `page_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '页面名称', - `page_data` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT '页面数据', - `create_by` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '创建人', - `update_by` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '修改人', - `create_time` datetime DEFAULT NULL COMMENT '创建时间', - `update_time` datetime DEFAULT NULL COMMENT '修改时间', - `del_flag` char(1) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '删除标记', - `tenant_id` bigint(20) DEFAULT NULL, - PRIMARY KEY (`id`) USING BTREE -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='页面装修表'; +CREATE TABLE `app_page` +( + `id` bigint unsigned NOT NULL COMMENT '主键', + `page_type` tinyint unsigned NOT NULL DEFAULT '10' COMMENT '页面类型', + `page_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '页面名称', + `page_data` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT '页面数据', + `create_by` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '创建人', + `update_by` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '修改人', + `create_time` datetime DEFAULT NULL COMMENT '创建时间', + `update_time` datetime DEFAULT NULL COMMENT '修改时间', + `del_flag` char(1) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '删除标记', + `tenant_id` bigint(20) DEFAULT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB + DEFAULT CHARSET = utf8mb4 + COLLATE = utf8mb4_general_ci + ROW_FORMAT = DYNAMIC COMMENT ='页面装修表'; -- ---------------------------- -- Records of app_page -- ---------------------------- BEGIN; -INSERT INTO `app_page` VALUES (1, 1, '商城首页', '[{\"title\":\"搜索\",\"name\":\"search\",\"disabled\":1,\"content\":{},\"styles\":{}},{\"title\":\"首页轮播图\",\"name\":\"banner\",\"content\":{\"enabled\":1,\"data\":[{\"image\":\"/api/static/banner01.png\",\"name\":\"\",\"link\":{\"path\":\"/pages/index/index\",\"name\":\"商城首页\",\"type\":\"shop\"}}]},\"styles\":{}},{\"title\":\"导航菜单\",\"name\":\"nav\",\"content\":{\"enabled\":1,\"data\":[{\"image\":\"https://minio.pjcloud.top/oss/app/nav01.png\",\"name\":\"资讯中心\",\"link\":{\"path\":\"/pages/news/news\",\"name\":\"文章资讯\",\"type\":\"shop\"}},{\"image\":\"https://minio.pjcloud.top/oss/app/nav02.png\",\"name\":\"我的收藏\",\"link\":{\"path\":\"/pages/collection/collection\",\"name\":\"我的收藏\",\"type\":\"shop\"}},{\"image\":\"https://minio.pjcloud.top/oss/app/nav03.png\",\"name\":\"个人设置\",\"link\":{\"path\":\"/pages/user_set/user_set\",\"name\":\"个人设置\",\"type\":\"shop\"}},{\"image\":\"https://minio.pjcloud.top/oss/app/nav04.png\",\"name\":\"联系客服\",\"link\":{\"path\":\"/pages/customer_service/customer_service\",\"name\":\"联系客服\",\"type\":\"shop\"}},{\"image\":\"https://minio.pjcloud.top/oss/app/nav05.png\",\"name\":\"关于我们\",\"link\":{\"path\":\"/pages/as_us/as_us\",\"name\":\"关于我们\",\"type\":\"shop\"}}]},\"styles\":{}},{\"id\":\"l84almsk2uhyf\",\"title\":\"资讯\",\"name\":\"news\",\"disabled\":1,\"content\":{},\"styles\":{}}]', NULL, 'admin', NULL, '2023-06-15 09:18:02', '0',1); -INSERT INTO `app_page` VALUES (2, 2, '个人中心', '[{\"title\":\"用户信息\",\"name\":\"user-info\",\"disabled\":1,\"content\":{},\"styles\":{}},{\"title\":\"我的服务\",\"name\":\"my-service\",\"content\":{\"style\":2,\"title\":\"服务中心\",\"data\":[{\"image\":\"https://minio.pjcloud.top/oss/app/user_collect.png\",\"name\":\"我的收藏\",\"link\":{\"path\":\"/pages/collection/collection\",\"name\":\"我的收藏\",\"type\":\"shop\"}},{\"image\":\"https://minio.pjcloud.top/oss/app/user_setting.png\",\"name\":\"个人设置\",\"link\":{\"path\":\"/pages/user_set/user_set\",\"name\":\"个人设置\",\"type\":\"shop\"}},{\"image\":\"https://minio.pjcloud.top/oss/app/user_kefu.png\",\"name\":\"联系客服\",\"link\":{\"path\":\"/pages/customer_service/customer_service\",\"name\":\"联系客服\",\"type\":\"shop\"}}]},\"styles\":{}},{\"title\":\"个人中心广告图\",\"name\":\"user-banner\",\"content\":{\"enabled\":1,\"data\":[{\"image\":\"\",\"name\":\"sdds\",\"link\":{\"path\":\"/pages/user/user\",\"name\":\"个人中心\",\"type\":\"shop\"}}]},\"styles\":{}}]', NULL, 'admin', NULL, '2023-06-18 17:00:05', '0',1); -INSERT INTO `app_page` VALUES (3, 3, '客服设置', '[{\"title\":\"客服设置\",\"name\":\"customer-service\",\"content\":{\"title\":\"添加客服二维码\",\"time\":\"早上 9:00 - 22:00\",\"mobile\":\"13800138000\",\"qrcode\":\"/admin/sys-file/local/adc5061f99e9440abcd9b22572909c88.jpg\"},\"styles\":{}}]', NULL, 'admin', NULL, '2023-06-14 13:12:19', '0',1); +INSERT INTO `app_page` +VALUES (1, 1, '商城首页', + '[{\"title\":\"搜索\",\"name\":\"search\",\"disabled\":1,\"content\":{},\"styles\":{}},{\"title\":\"首页轮播图\",\"name\":\"banner\",\"content\":{\"enabled\":1,\"data\":[{\"image\":\"/api/static/banner01.png\",\"name\":\"\",\"link\":{\"path\":\"/pages/index/index\",\"name\":\"商城首页\",\"type\":\"shop\"}}]},\"styles\":{}},{\"title\":\"导航菜单\",\"name\":\"nav\",\"content\":{\"enabled\":1,\"data\":[{\"image\":\"https://minio.pjcloud.top/oss/app/nav01.png\",\"name\":\"资讯中心\",\"link\":{\"path\":\"/pages/news/news\",\"name\":\"文章资讯\",\"type\":\"shop\"}},{\"image\":\"https://minio.pjcloud.top/oss/app/nav02.png\",\"name\":\"我的收藏\",\"link\":{\"path\":\"/pages/collection/collection\",\"name\":\"我的收藏\",\"type\":\"shop\"}},{\"image\":\"https://minio.pjcloud.top/oss/app/nav03.png\",\"name\":\"个人设置\",\"link\":{\"path\":\"/pages/user_set/user_set\",\"name\":\"个人设置\",\"type\":\"shop\"}},{\"image\":\"https://minio.pjcloud.top/oss/app/nav04.png\",\"name\":\"联系客服\",\"link\":{\"path\":\"/pages/customer_service/customer_service\",\"name\":\"联系客服\",\"type\":\"shop\"}},{\"image\":\"https://minio.pjcloud.top/oss/app/nav05.png\",\"name\":\"关于我们\",\"link\":{\"path\":\"/pages/as_us/as_us\",\"name\":\"关于我们\",\"type\":\"shop\"}}]},\"styles\":{}},{\"id\":\"l84almsk2uhyf\",\"title\":\"资讯\",\"name\":\"news\",\"disabled\":1,\"content\":{},\"styles\":{}}]', + NULL, 'admin', NULL, '2023-06-15 09:18:02', '0', 1); +INSERT INTO `app_page` +VALUES (2, 2, '个人中心', + '[{\"title\":\"用户信息\",\"name\":\"user-info\",\"disabled\":1,\"content\":{},\"styles\":{}},{\"title\":\"我的服务\",\"name\":\"my-service\",\"content\":{\"style\":2,\"title\":\"服务中心\",\"data\":[{\"image\":\"https://minio.pjcloud.top/oss/app/user_collect.png\",\"name\":\"我的收藏\",\"link\":{\"path\":\"/pages/collection/collection\",\"name\":\"我的收藏\",\"type\":\"shop\"}},{\"image\":\"https://minio.pjcloud.top/oss/app/user_setting.png\",\"name\":\"个人设置\",\"link\":{\"path\":\"/pages/user_set/user_set\",\"name\":\"个人设置\",\"type\":\"shop\"}},{\"image\":\"https://minio.pjcloud.top/oss/app/user_kefu.png\",\"name\":\"联系客服\",\"link\":{\"path\":\"/pages/customer_service/customer_service\",\"name\":\"联系客服\",\"type\":\"shop\"}}]},\"styles\":{}},{\"title\":\"个人中心广告图\",\"name\":\"user-banner\",\"content\":{\"enabled\":1,\"data\":[{\"image\":\"\",\"name\":\"sdds\",\"link\":{\"path\":\"/pages/user/user\",\"name\":\"个人中心\",\"type\":\"shop\"}}]},\"styles\":{}}]', + NULL, 'admin', NULL, '2023-06-18 17:00:05', '0', 1); +INSERT INTO `app_page` +VALUES (3, 3, '客服设置', + '[{\"title\":\"客服设置\",\"name\":\"customer-service\",\"content\":{\"title\":\"添加客服二维码\",\"time\":\"早上 9:00 - 22:00\",\"mobile\":\"13800138000\",\"qrcode\":\"/admin/sys-file/local/adc5061f99e9440abcd9b22572909c88.jpg\"},\"styles\":{}}]', + NULL, 'admin', NULL, '2023-06-14 13:12:19', '0', 1); COMMIT; -- ---------------------------- -- Table structure for app_tabbar -- ---------------------------- DROP TABLE IF EXISTS `app_tabbar`; -CREATE TABLE `app_tabbar` ( - `id` bigint unsigned NOT NULL COMMENT '主键', - `name` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '导航名称', - `selected` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '未选图标', - `unselected` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '已选图标', - `link` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '链接地址', - `create_time` datetime DEFAULT NULL COMMENT '创建时间', - `update_time` datetime DEFAULT NULL COMMENT '更新时间', - `create_by` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '创建人', - `update_by` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '更新人', - `del_flag` char(1) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '删除标记', - `tenant_id` bigint(20) DEFAULT NULL, - PRIMARY KEY (`id`) USING BTREE -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='底部装修表'; +CREATE TABLE `app_tabbar` +( + `id` bigint unsigned NOT NULL COMMENT '主键', + `name` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '导航名称', + `selected` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '未选图标', + `unselected` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '已选图标', + `link` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '链接地址', + `create_time` datetime DEFAULT NULL COMMENT '创建时间', + `update_time` datetime DEFAULT NULL COMMENT '更新时间', + `create_by` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '创建人', + `update_by` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '更新人', + `del_flag` char(1) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '删除标记', + `tenant_id` bigint(20) DEFAULT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB + DEFAULT CHARSET = utf8mb4 + COLLATE = utf8mb4_general_ci + ROW_FORMAT = DYNAMIC COMMENT ='底部装修表'; -- ---------------------------- -- Records of app_tabbar -- ---------------------------- BEGIN; -INSERT INTO `app_tabbar` VALUES (1, '首页', 'https://minio.pjcloud.top/oss/app/tabbar0.png', 'https://minio.pjcloud.top/oss/app/tabbar0_0.png', '{\"path\":\"/pages/index/index\",\"name\":\"商城首页\",\"type\":\"shop\"}', NULL, '2023-06-15 09:16:25', NULL, 'admin', '0',1); -INSERT INTO `app_tabbar` VALUES (2, '资讯', 'https://minio.pjcloud.top/oss/app/tabbar1.png', 'https://minio.pjcloud.top/oss/app/tabbar1_1.png', '{\"path\":\"/pages/news/news\",\"name\":\"文章资讯\",\"type\":\"shop\"}', NULL, '2023-06-15 09:16:25', NULL, 'admin', '0',1); -INSERT INTO `app_tabbar` VALUES (3, '我的', 'https://minio.pjcloud.top/oss/app/tabbar3.png', 'https://minio.pjcloud.top/oss/app/tabbar3_3.png', '{\"path\":\"/pages/user/user\",\"name\":\"个人中心\",\"type\":\"shop\"}', NULL, '2023-06-15 09:16:25', NULL, 'admin', '0',1); +INSERT INTO `app_tabbar` +VALUES (1, '首页', 'https://minio.pjcloud.top/oss/app/tabbar0.png', 'https://minio.pjcloud.top/oss/app/tabbar0_0.png', + '{\"path\":\"/pages/index/index\",\"name\":\"商城首页\",\"type\":\"shop\"}', NULL, '2023-06-15 09:16:25', NULL, + 'admin', '0', 1); +INSERT INTO `app_tabbar` +VALUES (2, '资讯', 'https://minio.pjcloud.top/oss/app/tabbar1.png', 'https://minio.pjcloud.top/oss/app/tabbar1_1.png', + '{\"path\":\"/pages/news/news\",\"name\":\"文章资讯\",\"type\":\"shop\"}', NULL, '2023-06-15 09:16:25', NULL, + 'admin', '0', 1); +INSERT INTO `app_tabbar` +VALUES (3, '我的', 'https://minio.pjcloud.top/oss/app/tabbar3.png', 'https://minio.pjcloud.top/oss/app/tabbar3_3.png', + '{\"path\":\"/pages/user/user\",\"name\":\"个人中心\",\"type\":\"shop\"}', NULL, '2023-06-15 09:16:25', NULL, + 'admin', '0', 1); COMMIT; -- ---------------------------- -- Table structure for app_role -- ---------------------------- DROP TABLE IF EXISTS `app_role`; -CREATE TABLE `app_role` ( - `role_id` bigint(20) NOT NULL, - `role_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, - `role_code` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, - `role_desc` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, - `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT ' ' COMMENT '创建人', - `update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT ' ' COMMENT '修改人', - `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, - `update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP, - `del_flag` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '0', - `tenant_id` bigint(20) DEFAULT NULL, - PRIMARY KEY (`role_id`) USING BTREE, - KEY `role_idx1_role_code` (`role_code`) USING BTREE -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='app角色表'; +CREATE TABLE `app_role` +( + `role_id` bigint(20) NOT NULL, + `role_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, + `role_code` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, + `role_desc` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, + `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT ' ' COMMENT '创建人', + `update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT ' ' COMMENT '修改人', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, + `update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP, + `del_flag` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '0', + `tenant_id` bigint(20) DEFAULT NULL, + PRIMARY KEY (`role_id`) USING BTREE, + KEY `role_idx1_role_code` (`role_code`) USING BTREE +) ENGINE = InnoDB + DEFAULT CHARSET = utf8mb4 + COLLATE = utf8mb4_general_ci + ROW_FORMAT = DYNAMIC COMMENT ='app角色表'; -- ---------------------------- -- Records of app_role -- ---------------------------- BEGIN; -INSERT INTO `app_role` VALUES (1, 'app用户', 'APP_USER', 'app用户角色', '', '', '2022-12-07 06:34:18', '2023-03-09 06:34:42', '0', 1); +INSERT INTO `app_role` +VALUES (1, 'app用户', 'APP_USER', 'app用户角色', '', '', '2022-12-07 06:34:18', '2023-03-09 06:34:42', '0', 1); COMMIT; -- ---------------------------- -- Table structure for app_social_details -- ---------------------------- DROP TABLE IF EXISTS `app_social_details`; -CREATE TABLE `app_social_details` ( - `id` bigint(20) NOT NULL COMMENT '主键', -- 主键 - `type` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '社交类型', -- 社交类型 - `remark` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '备注', -- 备注 - `app_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '应用ID', -- 应用ID - `app_secret` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '应用密钥', -- 应用密钥 - `redirect_url` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '重定向URL', -- 重定向URL - `ext` varchar(255) 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 '创建人', -- 创建人 - `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 CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', -- 更新时间 - `del_flag` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '0' COMMENT '删除标志', -- 删除标志 -PRIMARY KEY (`id`) USING BTREE -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC -COMMENT='系统社交登录账号表'; -- 系统社交登录账号表 +CREATE TABLE `app_social_details` +( + `id` bigint(20) NOT NULL COMMENT '主键', -- 主键 + `type` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '社交类型', -- 社交类型 + `remark` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '备注', -- 备注 + `app_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '应用ID', -- 应用ID + `app_secret` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '应用密钥', -- 应用密钥 + `redirect_url` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '重定向URL', -- 重定向URL + `ext` varchar(255) 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 '创建人', -- 创建人 + `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 CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', -- 更新时间 + `del_flag` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '0' COMMENT '删除标志', -- 删除标志 + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB + DEFAULT CHARSET = utf8mb4 + COLLATE = utf8mb4_general_ci + ROW_FORMAT = DYNAMIC + COMMENT ='系统社交登录账号表'; +-- 系统社交登录账号表 -- ---------------------------- -- Records of app_social_details -- ---------------------------- BEGIN; -INSERT INTO `app_social_details` VALUES (1, 'MINI', '小程序登录', 'app_id', 'app_secret', 'http://www.baidu.com123', NULL, '', 'admin', '2022-12-09 01:44:42', '2023-04-03 06:12:30', '0'); +INSERT INTO `app_social_details` +VALUES (1, 'MINI', '小程序登录', 'app_id', 'app_secret', 'http://www.baidu.com123', NULL, '', 'admin', + '2022-12-09 01:44:42', '2023-04-03 06:12:30', '0'); COMMIT; -- ---------------------------- -- Table structure for app_user -- ---------------------------- DROP TABLE IF EXISTS `app_user`; -CREATE TABLE `app_user` ( - `user_id` bigint(20) NOT NULL COMMENT '用户id', - `username` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '用户名', - `password` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '密码', - `salt` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '盐值', - `phone` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '手机号码', - `avatar` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '头像图片链接', - `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 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 '修改时间', - `del_flag` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '0' COMMENT '删除标志', - `tenant_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '所属租户id', - `last_modified_time` datetime DEFAULT NULL COMMENT '最后一次密码修改时间', - `lock_flag` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '0' COMMENT '锁定状态', - `wx_openid` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '微信登录openId', - PRIMARY KEY (`user_id`) USING BTREE -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='app用户表'; +CREATE TABLE `app_user` +( + `user_id` bigint(20) NOT NULL COMMENT '用户id', + `username` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '用户名', + `password` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '密码', + `salt` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '盐值', + `phone` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '手机号码', + `avatar` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '头像图片链接', + `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 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 '修改时间', + `del_flag` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '0' COMMENT '删除标志', + `tenant_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '所属租户id', + `last_modified_time` datetime DEFAULT NULL COMMENT '最后一次密码修改时间', + `lock_flag` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '0' COMMENT '锁定状态', + `wx_openid` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '微信登录openId', + PRIMARY KEY (`user_id`) USING BTREE +) ENGINE = InnoDB + DEFAULT CHARSET = utf8mb4 + COLLATE = utf8mb4_general_ci + ROW_FORMAT = DYNAMIC COMMENT ='app用户表'; -- ---------------------------- -- Records of app_user -- ---------------------------- BEGIN; -INSERT INTO `app_user` VALUES (1, 'appuser', '$2a$10$XQu3TmORLqDWayFspQN.U.LigJ5TWPTdXPIn/6SxGHKED3PVpuMH6', NULL, '13054729089', NULL, 'aeizzz', '刘洪磊', 'aeizzz@foxmail.com', '', 'appuser', '2022-12-07 02:59:38', '2023-03-09 15:14:44', '0', 1, NULL, '0', 'oBxPy5EnbDiN-gGEaovCpp_IkrkQ'); +INSERT INTO `app_user` +VALUES (1, 'appuser', '$2a$10$XQu3TmORLqDWayFspQN.U.LigJ5TWPTdXPIn/6SxGHKED3PVpuMH6', NULL, '13054729089', NULL, + 'aeizzz', '刘洪磊', 'aeizzz@foxmail.com', '', 'appuser', '2022-12-07 02:59:38', '2023-03-09 15:14:44', '0', 1, + NULL, '0', 'oBxPy5EnbDiN-gGEaovCpp_IkrkQ'); COMMIT; -- ---------------------------- -- Table structure for app_user_role -- ---------------------------- DROP TABLE IF EXISTS `app_user_role`; -CREATE TABLE `app_user_role` ( - `user_id` bigint(20) NOT NULL COMMENT '用户ID', - `role_id` bigint(20) NOT NULL COMMENT '角色ID', - PRIMARY KEY (`user_id`,`role_id`) USING BTREE -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='用户角色表'; +CREATE TABLE `app_user_role` +( + `user_id` bigint(20) NOT NULL COMMENT '用户ID', + `role_id` bigint(20) NOT NULL COMMENT '角色ID', + PRIMARY KEY (`user_id`, `role_id`) USING BTREE +) ENGINE = InnoDB + DEFAULT CHARSET = utf8mb4 + COLLATE = utf8mb4_general_ci + ROW_FORMAT = DYNAMIC COMMENT ='用户角色表'; + +-- ---------------------------- +-- Table structure for app_menu +-- ---------------------------- +DROP TABLE IF EXISTS `app_menu`; +CREATE TABLE `app_menu` +( + `id` bigint(20) NOT NULL COMMENT '用户id', + + `platform` varchar(32) DEFAULT NULL COMMENT '平台(小程序、支付宝)', + `type` varchar(32) DEFAULT NULL COMMENT '菜单类型', + `icon` varchar(258) DEFAULT NULL COMMENT '图标', + `page` varchar(258) NOT NULL COMMENT '页面路径(包含参数)', + `title` varchar(32) NOT NULL COMMENT '页面标题', + `visible` varchar(32) NOT NULL COMMENT '是否显示', + `sort` int NOT NULL 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 '修改时间', + `del_flag` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '0' COMMENT '删除标志', + `tenant_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '所属租户id', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB + DEFAULT CHARSET = utf8mb4 + COLLATE = utf8mb4_general_ci + ROW_FORMAT = DYNAMIC COMMENT ='app菜单表'; -- ---------------------------- -- Records of app_user_role -- ---------------------------- BEGIN; -INSERT INTO `app_user_role` VALUES (1, 1); +INSERT INTO `app_user_role` +VALUES (1, 1); COMMIT; SET FOREIGN_KEY_CHECKS = 1; diff --git a/pjcloud-app-server/pjcloud-app-server-api/src/main/java/com/bsd/pjcloud/app/api/constant/menu/AppMenuPlatformEnum.java b/pjcloud-app-server/pjcloud-app-server-api/src/main/java/com/bsd/pjcloud/app/api/constant/menu/AppMenuPlatformEnum.java new file mode 100644 index 000000000..283d80b46 --- /dev/null +++ b/pjcloud-app-server/pjcloud-app-server-api/src/main/java/com/bsd/pjcloud/app/api/constant/menu/AppMenuPlatformEnum.java @@ -0,0 +1,27 @@ +package com.bsd.pjcloud.app.api.constant.menu; + +import cn.hutool.core.util.ObjectUtil; +import lombok.AllArgsConstructor; +import lombok.Getter; + +import java.util.Arrays; + +/** + * app菜单平台 + */ +@AllArgsConstructor +@Getter +public enum AppMenuPlatformEnum { + + WECHAT("10", "微信小程序"), + ; + + private final String type; + private final String description; + + public static AppMenuPlatformEnum valueOfByType(String type) { + if (ObjectUtil.isEmpty(type)) return null; + return Arrays.stream(values()).filter(v -> ObjectUtil.equals(type, v.getType())).findFirst().get(); + } + +} diff --git a/pjcloud-app-server/pjcloud-app-server-api/src/main/java/com/bsd/pjcloud/app/api/constant/menu/AppMenuTypeEnum.java b/pjcloud-app-server/pjcloud-app-server-api/src/main/java/com/bsd/pjcloud/app/api/constant/menu/AppMenuTypeEnum.java new file mode 100644 index 000000000..776ed44ed --- /dev/null +++ b/pjcloud-app-server/pjcloud-app-server-api/src/main/java/com/bsd/pjcloud/app/api/constant/menu/AppMenuTypeEnum.java @@ -0,0 +1,25 @@ +package com.bsd.pjcloud.app.api.constant.menu; + +import cn.hutool.core.util.ObjectUtil; +import lombok.AllArgsConstructor; +import lombok.Getter; + +import java.util.Arrays; + +/** + * app菜单类型 + */ +@AllArgsConstructor +@Getter +public enum AppMenuTypeEnum { + DASHBOARD_TAB("10", "菜单面板tab"), + ; + + private final String type; + private final String description; + + public static AppMenuTypeEnum valueOfByType(String type) { + if (ObjectUtil.isEmpty(type)) return null; + return Arrays.stream(values()).filter(v -> ObjectUtil.equals(type, v.getType())).findFirst().get(); + } +} diff --git a/pjcloud-app-server/pjcloud-app-server-api/src/main/java/com/bsd/pjcloud/app/api/entity/AppMenuEntity.java b/pjcloud-app-server/pjcloud-app-server-api/src/main/java/com/bsd/pjcloud/app/api/entity/AppMenuEntity.java new file mode 100755 index 000000000..dc95db172 --- /dev/null +++ b/pjcloud-app-server/pjcloud-app-server-api/src/main/java/com/bsd/pjcloud/app/api/entity/AppMenuEntity.java @@ -0,0 +1,113 @@ +package com.bsd.pjcloud.app.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 com.bsd.pjcloud.common.core.util.TenantTable; + +import java.time.LocalDateTime; + +/** + * 菜单管理 + */ +@Data +@TenantTable +@TableName("app_menu") +@EqualsAndHashCode(callSuper = true) +@Schema(description = "菜单管理") +public class AppMenuEntity extends Model { + + + /** + * id + */ + @TableId(type = IdType.ASSIGN_ID) + @Schema(description = "id") + private Long id; + + /** + * 平台(小程序、支付宝) + */ + @Schema(description = "平台(小程序、支付宝)") + private String platform; + + /** + * 菜单类型 + */ + @Schema(description = "菜单类型") + private String type; + + /** + * 图标 + */ + @Schema(description = "图标") + private String icon; + + /** + * 页面路径(包含参数) + */ + @Schema(description = "页面路径(包含参数)") + private String page; + + /** + * 页面标题 + */ + @Schema(description = "页面标题") + private String title; + + /** + * 是否显示 + */ + @Schema(description = "是否显示") + private String visible; + + /** + * 排序 + */ + @Schema(description = "排序") + private Integer sort; + + /** + * 创建人 + */ + @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; + + /** + * 所属租户id + */ + @Schema(description = "所属租户id") + private Long tenantId; +} \ No newline at end of file diff --git a/pjcloud-app-server/pjcloud-app-server-api/src/main/java/com/bsd/pjcloud/app/api/feign/RemoteAppUserService.java b/pjcloud-app-server/pjcloud-app-server-api/src/main/java/com/bsd/pjcloud/app/api/feign/RemoteAppUserService.java index 9c336d666..305865115 100644 --- a/pjcloud-app-server/pjcloud-app-server-api/src/main/java/com/bsd/pjcloud/app/api/feign/RemoteAppUserService.java +++ b/pjcloud-app-server/pjcloud-app-server-api/src/main/java/com/bsd/pjcloud/app/api/feign/RemoteAppUserService.java @@ -56,6 +56,6 @@ public interface RemoteAppUserService { * 同步admin账户信息为app账户 */ @NoToken - @PostMapping("/appsocial/info/sync-admin-account-info") + @PostMapping("/appsocial/sync-admin-account-info") R syncAdminAccountInfo(@RequestBody AppAdminSyncDto appAdminSyncDto); } diff --git a/pjcloud-app-server/pjcloud-app-server-biz/src/main/java/com/bsd/pjcloud/app/controller/AppMenuController.java b/pjcloud-app-server/pjcloud-app-server-biz/src/main/java/com/bsd/pjcloud/app/controller/AppMenuController.java new file mode 100755 index 000000000..7117161c9 --- /dev/null +++ b/pjcloud-app-server/pjcloud-app-server-biz/src/main/java/com/bsd/pjcloud/app/controller/AppMenuController.java @@ -0,0 +1,118 @@ +package com.bsd.pjcloud.app.controller; + +import cn.hutool.core.util.ArrayUtil; +import cn.hutool.core.collection.CollUtil; +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.bsd.pjcloud.app.api.constant.menu.AppMenuPlatformEnum; +import com.bsd.pjcloud.app.api.constant.menu.AppMenuTypeEnum; +import com.bsd.pjcloud.app.api.entity.AppMenuEntity; +import com.bsd.pjcloud.common.core.constant.enums.YesNoEnum; +import com.bsd.pjcloud.common.core.util.R; +import com.bsd.pjcloud.common.log.annotation.SysLog; +import com.bsd.pjcloud.app.service.AppMenuService; +import org.springframework.security.access.prepost.PreAuthorize; +import com.bsd.pjcloud.common.excel.annotation.ResponseExcel; +import io.swagger.v3.oas.annotations.security.SecurityRequirement; +import org.springdoc.core.annotations.ParameterObject; +import org.springframework.http.HttpHeaders; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Operation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; + +import java.util.List; +import java.util.Objects; + +/** + * 菜单管理 + */ +@RestController +@RequiredArgsConstructor +@RequestMapping("/app-menu") +@Tag(description = "app-menu", name = "菜单管理管理") +@SecurityRequirement(name = HttpHeaders.AUTHORIZATION) +public class AppMenuController { + + private final AppMenuService appMenuService; + + /* ************************************* start app start ************************************* */ + + /** + * 列表差 + */ + @Operation(summary = "分页查询", description = "分页查询") + @GetMapping("/app/list") + public R> appList(@ParameterObject AppMenuEntity dto) { + dto.setVisible(YesNoEnum.YES.getCode()); + dto.setType(AppMenuTypeEnum.DASHBOARD_TAB.getType()); + return R.ok(appMenuService.scopeList(dto, null)); + } + + /* ************************************* end app end ************************************* */ + + /** + * 分页查询 + */ + @Operation(summary = "分页查询", description = "分页查询") + @GetMapping("/page") + @PreAuthorize("@pms.hasPermission('app_appMenu_view')") + public R getAppMenuPage(@ParameterObject Page page, @ParameterObject AppMenuEntity dto) { + return R.ok(appMenuService.scopePage(page, dto, null)); + } + + /** + * 通过id查询菜单管理 + */ + @Operation(summary = "通过id查询", description = "通过id查询") + @GetMapping("/{id}") + @PreAuthorize("@pms.hasPermission('app_appMenu_view')") + public R getById(@PathVariable("id") Long id) { + return R.ok(appMenuService.getById(id)); + } + + /** + * 新增菜单管理 + */ + @Operation(summary = "新增菜单管理", description = "新增菜单管理") + @SysLog("新增菜单管理") + @PostMapping + @PreAuthorize("@pms.hasPermission('app_appMenu_add')") + public R save(@RequestBody AppMenuEntity appMenu) { + return R.ok(appMenuService.save(appMenu)); + } + + /** + * 修改菜单管理 + */ + @Operation(summary = "修改菜单管理", description = "修改菜单管理") + @SysLog("修改菜单管理") + @PutMapping + @PreAuthorize("@pms.hasPermission('app_appMenu_edit')") + public R updateById(@RequestBody AppMenuEntity appMenu) { + return R.ok(appMenuService.updateById(appMenu)); + } + + /** + * 通过id删除菜单管理 + */ + @Operation(summary = "通过id删除菜单管理", description = "通过id删除菜单管理") + @SysLog("通过id删除菜单管理") + @DeleteMapping + @PreAuthorize("@pms.hasPermission('app_appMenu_del')") + public R removeById(@RequestBody Long[] ids) { + return R.ok(appMenuService.removeBatchByIds(CollUtil.toList(ids))); + } + + /** + * 导出excel 表格 + */ + @ResponseExcel + @GetMapping("/export") + @PreAuthorize("@pms.hasPermission('app_appMenu_export')") + public List export(AppMenuEntity appMenu, Long[] ids) { + return appMenuService.list(Wrappers.lambdaQuery(appMenu).in(ArrayUtil.isNotEmpty(ids), AppMenuEntity::getId, ids)); + } + +} \ No newline at end of file diff --git a/pjcloud-app-server/pjcloud-app-server-biz/src/main/java/com/bsd/pjcloud/app/controller/AppSocialDetailsController.java b/pjcloud-app-server/pjcloud-app-server-biz/src/main/java/com/bsd/pjcloud/app/controller/AppSocialDetailsController.java index 9d0b17a1b..081749670 100644 --- a/pjcloud-app-server/pjcloud-app-server-biz/src/main/java/com/bsd/pjcloud/app/controller/AppSocialDetailsController.java +++ b/pjcloud-app-server/pjcloud-app-server-biz/src/main/java/com/bsd/pjcloud/app/controller/AppSocialDetailsController.java @@ -56,6 +56,7 @@ public class AppSocialDetailsController { /** * 同步admin账户信息为app账户 */ + @Inner(value = true) @PostMapping("/sync-admin-account-info") public R syncAdminAccountInfo(@RequestBody AppAdminSyncDto dto) { return R.ok(appSocialDetailsService.syncAdminAccountInfo(dto)); diff --git a/pjcloud-app-server/pjcloud-app-server-biz/src/main/java/com/bsd/pjcloud/app/mapper/AppMenuMapper.java b/pjcloud-app-server/pjcloud-app-server-biz/src/main/java/com/bsd/pjcloud/app/mapper/AppMenuMapper.java new file mode 100755 index 000000000..d6a0fbc90 --- /dev/null +++ b/pjcloud-app-server/pjcloud-app-server-biz/src/main/java/com/bsd/pjcloud/app/mapper/AppMenuMapper.java @@ -0,0 +1,35 @@ +package com.bsd.pjcloud.app.mapper; + +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.bsd.pjcloud.app.api.entity.AppMenuEntity; +import com.bsd.pjcloud.common.data.datascope.DataScope; +import com.bsd.pjcloud.common.data.datascope.PjcloudBaseMapper; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +@Mapper +public interface AppMenuMapper extends PjcloudBaseMapper { + + default LambdaQueryWrapper conditionWrapper(AppMenuEntity dto) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper + .eq(ObjectUtil.isNotEmpty(dto.getPlatform()), AppMenuEntity::getPage, dto.getPlatform()) + .eq(ObjectUtil.isNotEmpty(dto.getType()), AppMenuEntity::getType, dto.getType()) + .eq(ObjectUtil.isNotEmpty(dto.getVisible()), AppMenuEntity::getVisible, dto.getVisible()) + .orderByDesc(AppMenuEntity::getSort) + .orderByDesc(AppMenuEntity::getCreateTime); + return wrapper; + } + + default List scopeList(AppMenuEntity dto, DataScope dataScope) { + return selectList(conditionWrapper(dto)); + } + + default Page scopePage(Page page, AppMenuEntity dto, DataScope dataScope) { + return selectPage(page, conditionWrapper(dto)); + } + +} \ No newline at end of file diff --git a/pjcloud-app-server/pjcloud-app-server-biz/src/main/java/com/bsd/pjcloud/app/service/AppMenuService.java b/pjcloud-app-server/pjcloud-app-server-biz/src/main/java/com/bsd/pjcloud/app/service/AppMenuService.java new file mode 100755 index 000000000..b66668d63 --- /dev/null +++ b/pjcloud-app-server/pjcloud-app-server-biz/src/main/java/com/bsd/pjcloud/app/service/AppMenuService.java @@ -0,0 +1,15 @@ +package com.bsd.pjcloud.app.service; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import com.bsd.pjcloud.app.api.entity.AppMenuEntity; +import com.bsd.pjcloud.common.data.datascope.DataScope; + +import java.util.List; + +public interface AppMenuService extends IService { + + List scopeList(AppMenuEntity dto, DataScope dataScope); + + Page scopePage(Page page, AppMenuEntity dto, DataScope dataScope); +} \ No newline at end of file diff --git a/pjcloud-app-server/pjcloud-app-server-biz/src/main/java/com/bsd/pjcloud/app/service/impl/AppMenuServiceImpl.java b/pjcloud-app-server/pjcloud-app-server-biz/src/main/java/com/bsd/pjcloud/app/service/impl/AppMenuServiceImpl.java new file mode 100755 index 000000000..b054ef25e --- /dev/null +++ b/pjcloud-app-server/pjcloud-app-server-biz/src/main/java/com/bsd/pjcloud/app/service/impl/AppMenuServiceImpl.java @@ -0,0 +1,29 @@ +package com.bsd.pjcloud.app.service.impl; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.bsd.pjcloud.app.api.entity.AppMenuEntity; +import com.bsd.pjcloud.app.mapper.AppMenuMapper; +import com.bsd.pjcloud.app.service.AppMenuService; +import com.bsd.pjcloud.common.data.datascope.DataScope; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 菜单管理 + */ +@Service +public class AppMenuServiceImpl extends ServiceImpl implements AppMenuService { + + @Override + public List scopeList(AppMenuEntity dto, DataScope dataScope) { + return baseMapper.scopeList(dto, dataScope); + } + + @Override + public Page scopePage(Page page, AppMenuEntity dto, DataScope dataScope) { + return baseMapper.scopePage(page, dto, dataScope); + } + +} \ No newline at end of file diff --git a/pjcloud-app-server/pjcloud-app-server-biz/src/main/java/com/bsd/pjcloud/app/service/impl/AppSocialDetailsServiceImpl.java b/pjcloud-app-server/pjcloud-app-server-biz/src/main/java/com/bsd/pjcloud/app/service/impl/AppSocialDetailsServiceImpl.java index a5163ef1a..ab0ded48b 100644 --- a/pjcloud-app-server/pjcloud-app-server-biz/src/main/java/com/bsd/pjcloud/app/service/impl/AppSocialDetailsServiceImpl.java +++ b/pjcloud-app-server/pjcloud-app-server-biz/src/main/java/com/bsd/pjcloud/app/service/impl/AppSocialDetailsServiceImpl.java @@ -75,7 +75,7 @@ public class AppSocialDetailsServiceImpl extends ServiceImpl + + + + + \ No newline at end of file diff --git a/pjcloud-thirdparty/pjcloud-thirdparty-api/src/main/java/com/bsd/pjcloud/thirdparty/vo/oathmini/ThirdMinAppOAth2LoginVo.java b/pjcloud-thirdparty/pjcloud-thirdparty-api/src/main/java/com/bsd/pjcloud/thirdparty/vo/oathmini/ThirdMinAppOAth2LoginVo.java index f244ed88a..1ad75b135 100644 --- a/pjcloud-thirdparty/pjcloud-thirdparty-api/src/main/java/com/bsd/pjcloud/thirdparty/vo/oathmini/ThirdMinAppOAth2LoginVo.java +++ b/pjcloud-thirdparty/pjcloud-thirdparty-api/src/main/java/com/bsd/pjcloud/thirdparty/vo/oathmini/ThirdMinAppOAth2LoginVo.java @@ -5,9 +5,9 @@ import lombok.Data; @Data public class ThirdMinAppOAth2LoginVo { - private String accessToken; + private Object accessToken; - private String refreshToken; + private Object refreshToken; private String errorCode; diff --git a/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/service/impl/miniapp/ThirdMiniAppServiceImpl.java b/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/service/impl/miniapp/ThirdMiniAppServiceImpl.java index 35886dfcc..fb757e769 100644 --- a/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/service/impl/miniapp/ThirdMiniAppServiceImpl.java +++ b/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/service/impl/miniapp/ThirdMiniAppServiceImpl.java @@ -88,8 +88,8 @@ public class ThirdMiniAppServiceImpl implements ThirdMiniAppService { vo.setErrorCode(MiniPlatformLoginErrorEnum.LOGIN_ERROR.getType()); return vo; } - vo.setAccessToken(String.valueOf(dataMap.getOrDefault("accessToken", ""))); - vo.setRefreshToken(String.valueOf(dataMap.getOrDefault("refreshToken", ""))); + vo.setAccessToken(dataMap.getOrDefault("accessToken", "")); + vo.setRefreshToken(dataMap.getOrDefault("refreshToken", "")); } // 支付宝 else if (ObjectUtil.equals(dto.getMiniPlatformType().getType(), MiniPlatformTypeEnum.ALI_PAY.getType())) {