feat: 新增禾圃集应用版本更新管理功能
新增禾圃集应用(appCode=garden)的版本策略管理功能,包括后端接口、前端API、页面路由、数据库迁移及相关常量配置,支持对不同平台和渠道的版本策略进行增删改查操作,与现有讯工捷使(appCode=im)版本管理功能保持一致的架构和交互逻辑。
This commit is contained in:
@@ -0,0 +1,12 @@
|
||||
SET @now := NOW();
|
||||
SET @cultivateRootId := (SELECT `id` FROM `hg_admin_menu` WHERE `name` = 'cultivateManager' LIMIT 1);
|
||||
|
||||
INSERT INTO `hg_admin_menu` (`id`, `pid`, `title`, `name`, `path`, `icon`, `type`, `redirect`, `permissions`, `permission_name`, `component`, `always_show`, `active_menu`, `is_root`, `is_frame`, `frame_src`, `keep_alive`, `hidden`, `affix`, `level`, `tree`, `sort`, `remark`, `status`, `created_at`, `updated_at`)
|
||||
SELECT NULL, @cultivateRootId, '版本更新', 'cultivateAppReleaseIndex', 'app-release', '', '2', '', '/cultivate/app-release/list', '', '/cultivate/appRelease/index', '1', 'cultivateAppReleaseIndex', '0', '0', '', '0', '0', '0', '2', CONCAT('tr_', @cultivateRootId, ' '), '50', '禾圃集应用版本策略(app_code=garden)', '1', @now, @now
|
||||
WHERE NOT EXISTS (SELECT 1 FROM `hg_admin_menu` WHERE `name` = 'cultivateAppReleaseIndex');
|
||||
|
||||
SET @cultivateAppReleaseId := (SELECT `id` FROM `hg_admin_menu` WHERE `name` = 'cultivateAppReleaseIndex' LIMIT 1);
|
||||
|
||||
INSERT INTO `hg_admin_menu` (`id`, `pid`, `title`, `name`, `path`, `icon`, `type`, `redirect`, `permissions`, `permission_name`, `component`, `always_show`, `active_menu`, `is_root`, `is_frame`, `frame_src`, `keep_alive`, `hidden`, `affix`, `level`, `tree`, `sort`, `remark`, `status`, `created_at`, `updated_at`)
|
||||
SELECT NULL, @cultivateAppReleaseId, '版本编辑', 'cultivateAppReleaseEdit', '', '', '3', '', '/cultivate/app-release/edit', '', '', '1', '', '0', '0', '', '0', '0', '0', '3', CONCAT('tr_', @cultivateRootId, ' tr_', @cultivateAppReleaseId, ' '), '10', '', '1', @now, @now
|
||||
WHERE NOT EXISTS (SELECT 1 FROM `hg_admin_menu` WHERE `name` = 'cultivateAppReleaseEdit');
|
||||
@@ -0,0 +1,26 @@
|
||||
-- 存量库升级:im_app_releases 增加 app_code 维度(im=讯工捷使, garden=禾圃集)
|
||||
-- 幂等:已存在 app_code 列时跳过 ALTER(通过 information_schema 判断由执行方保证)
|
||||
|
||||
ALTER TABLE `im_app_releases`
|
||||
ADD COLUMN `app_code` VARCHAR(32) NOT NULL DEFAULT 'im' AFTER `id`;
|
||||
|
||||
ALTER TABLE `im_app_releases`
|
||||
DROP INDEX `uk_im_app_releases_platform_channel`,
|
||||
ADD UNIQUE KEY `uk_im_app_releases_app_platform_channel` (`app_code`, `platform`, `channel`);
|
||||
|
||||
INSERT INTO `im_app_releases`
|
||||
(`app_code`, `platform`, `channel`, `latest_version`, `min_supported_version`, `update_type`, `release_notes`)
|
||||
VALUES
|
||||
('garden', 'ios', 'stable', '1.0.0', '1.0.0', 'none', '当前已是最新版本。'),
|
||||
('garden', 'android', 'stable', '1.0.0', '1.0.0', 'none', '当前已是最新版本。')
|
||||
ON DUPLICATE KEY UPDATE `platform` = VALUES(`platform`);
|
||||
|
||||
-- 菜单
|
||||
SOURCE cultivate_app_release_menu.sql;
|
||||
|
||||
-- 超管角色绑定新菜单(role_id 按实际环境调整)
|
||||
SET @cultivateAppReleaseMenuId := (SELECT `id` FROM `hg_admin_menu` WHERE `name` = 'cultivateAppReleaseIndex' LIMIT 1);
|
||||
SET @cultivateAppReleaseEditId := (SELECT `id` FROM `hg_admin_menu` WHERE `name` = 'cultivateAppReleaseEdit' LIMIT 1);
|
||||
INSERT IGNORE INTO `hg_admin_role_menu` (`role_id`, `menu_id`)
|
||||
SELECT r.`id`, m.`menu_id` FROM (SELECT 1 AS id) r
|
||||
CROSS JOIN (SELECT @cultivateAppReleaseMenuId AS menu_id UNION SELECT @cultivateAppReleaseEditId) m;
|
||||
@@ -1,6 +1,8 @@
|
||||
-- Global MeetingIM client release policy. This table belongs to hotgo and is not tenant-scoped.
|
||||
-- app_code: im=讯工捷使主应用, garden=禾圃集(后续新增 app 在此扩展)
|
||||
CREATE TABLE IF NOT EXISTS `im_app_releases` (
|
||||
`id` BIGINT NOT NULL AUTO_INCREMENT,
|
||||
`app_code` VARCHAR(32) NOT NULL DEFAULT 'im',
|
||||
`platform` VARCHAR(32) NOT NULL,
|
||||
`channel` VARCHAR(32) NOT NULL DEFAULT 'stable',
|
||||
`latest_version` VARCHAR(64) NOT NULL,
|
||||
@@ -15,12 +17,14 @@ CREATE TABLE IF NOT EXISTS `im_app_releases` (
|
||||
`created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||||
`updated_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uk_im_app_releases_platform_channel` (`platform`, `channel`)
|
||||
UNIQUE KEY `uk_im_app_releases_app_platform_channel` (`app_code`, `platform`, `channel`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='MeetingIM全局客户端版本策略';
|
||||
|
||||
INSERT INTO `im_app_releases`
|
||||
(`platform`, `channel`, `latest_version`, `min_supported_version`, `update_type`, `release_notes`)
|
||||
(`app_code`, `platform`, `channel`, `latest_version`, `min_supported_version`, `update_type`, `release_notes`)
|
||||
VALUES
|
||||
('ios', 'stable', '1.0.0', '1.0.0', 'none', '当前已是最新版本。'),
|
||||
('android', 'stable', '1.0.0', '1.0.0', 'none', '当前已是最新版本。')
|
||||
('im', 'ios', 'stable', '1.0.0', '1.0.0', 'none', '当前已是最新版本。'),
|
||||
('im', 'android', 'stable', '1.0.0', '1.0.0', 'none', '当前已是最新版本。'),
|
||||
('garden', 'ios', 'stable', '1.0.0', '1.0.0', 'none', '当前已是最新版本。'),
|
||||
('garden', 'android', 'stable', '1.0.0', '1.0.0', 'none', '当前已是最新版本。')
|
||||
ON DUPLICATE KEY UPDATE `platform` = VALUES(`platform`);
|
||||
|
||||
Reference in New Issue
Block a user