文件
yjyf/db/schema_phase13_master_skill_menu.sql
YuanWen 127b606e75 feat(admin): 重构服务管理模块新增增值服务功能
- 新增增值服务管理模块,支持按类目筛选绑定
- 新增工项服务定价和规格独立定价功能
- 优化前端订单页增值服务展示逻辑
- 升级版本号至1.0.19
2026-11-04 16:14:44 +08:00

100 行
6.0 KiB
SQL

-- ============================================================================
-- 优匠优服 · Phase 13 师傅技能与分类管理规范体系
-- 1. 创建师傅技能分类表 fa_skill_category
-- 2. 创建师傅技能列表表 fa_skill_dict
-- 3. 扩充师傅技能关联表 fa_master_skill (支持技能名、分类与自定义来源)
-- 4. 规范后台【师傅管理】子菜单:
-- - 师傅列表 (master): 内置师傅技能查看与弹窗配置
-- - 技能分类 (skill_category): 技能大类管理
-- - 技能列表 (skill_dict): 技能明细与师傅自定义技能管理
-- ============================================================================
SET NAMES utf8mb4;
-- 1. 创建师傅技能分类表
CREATE TABLE IF NOT EXISTS `fa_skill_category` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'ID',
`name` varchar(50) NOT NULL DEFAULT '' COMMENT '分类名称',
`icon` varchar(255) NOT NULL DEFAULT '' COMMENT '分类图标',
`weigh` int(11) NOT NULL DEFAULT '0' COMMENT '权重',
`status` enum('normal','hidden') NOT NULL DEFAULT 'normal' COMMENT '状态',
`createtime` bigint(16) DEFAULT NULL COMMENT '创建时间',
`updatetime` bigint(16) DEFAULT NULL COMMENT '更新时间',
PRIMARY KEY (`id`),
UNIQUE KEY `name` (`name`),
KEY `weigh` (`weigh`),
KEY `status` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='师傅技能分类表';
-- 2. 创建师傅技能列表表
CREATE TABLE IF NOT EXISTS `fa_skill_dict` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'ID',
`category_id` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '技能分类ID',
`category` varchar(50) NOT NULL DEFAULT '' COMMENT '技能大类',
`name` varchar(50) NOT NULL DEFAULT '' COMMENT '技能名称',
`source` enum('system','custom') NOT NULL DEFAULT 'system' COMMENT '来源:system=系统预置,custom=师傅自定义',
`master_id` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '自定义师傅ID',
`weigh` int(11) NOT NULL DEFAULT '0' COMMENT '权重',
`status` enum('normal','hidden') NOT NULL DEFAULT 'normal' COMMENT '状态',
`createtime` bigint(16) DEFAULT NULL COMMENT '创建时间',
`updatetime` bigint(16) DEFAULT NULL COMMENT '更新时间',
PRIMARY KEY (`id`),
KEY `category_id` (`category_id`),
KEY `category` (`category`),
KEY `source` (`source`),
KEY `status` (`status`),
KEY `weigh` (`weigh`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='师傅技能字典表';
-- 3. 扩充师傅技能关联表
ALTER TABLE `fa_master_skill`
ADD COLUMN IF NOT EXISTS `skill_id` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '技能字典ID' AFTER `cat_id`,
ADD COLUMN IF NOT EXISTS `skill_name` varchar(50) NOT NULL DEFAULT '' COMMENT '技能名称' AFTER `skill_id`,
ADD COLUMN IF NOT EXISTS `category` varchar(50) NOT NULL DEFAULT '' COMMENT '所属大类' AFTER `skill_name`,
ADD COLUMN IF NOT EXISTS `is_custom` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否自定义添加:0=字典选择,1=自定义输入' AFTER `category`;
-- 4. 调整师傅列表菜单
UPDATE `fa_auth_rule` SET `title` = '师傅列表', `weigh` = 175 WHERE `name` = 'master';
-- 隐藏原单独的师傅技能菜单(已全面合并进师傅列表)
UPDATE `fa_auth_rule` SET `ismenu` = 0 WHERE `name` = 'master_skill';
-- 5. 注册【技能分类 (skill_category)】菜单
INSERT INTO `fa_auth_rule` (`type`, `pid`, `name`, `title`, `icon`, `condition`, `remark`, `ismenu`, `createtime`, `updatetime`, `weigh`, `status`)
SELECT 'file', p.id, 'skill_category', '技能分类', 'fa fa-th-large', '', '师傅服务技能大类管理', 1, UNIX_TIMESTAMP(), UNIX_TIMESTAMP(), 173, 'normal'
FROM `fa_auth_rule` p
WHERE p.name = 'master_manage'
AND NOT EXISTS (SELECT `id` FROM `fa_auth_rule` WHERE `name` = 'skill_category');
INSERT INTO `fa_auth_rule` (`type`, `pid`, `name`, `title`, `icon`, `condition`, `remark`, `ismenu`, `createtime`, `updatetime`, `weigh`, `status`)
SELECT 'file', p.id, 'skill_category/index', '查看', 'fa fa-circle-o', '', '', 0, UNIX_TIMESTAMP(), UNIX_TIMESTAMP(), 0, 'normal'
FROM `fa_auth_rule` p
WHERE p.name = 'skill_category'
AND NOT EXISTS (SELECT `id` FROM `fa_auth_rule` WHERE `name` = 'skill_category/index');
INSERT INTO `fa_auth_rule` (`type`, `pid`, `name`, `title`, `icon`, `condition`, `remark`, `ismenu`, `createtime`, `updatetime`, `weigh`, `status`)
SELECT 'file', p.id, 'skill_category/add', '添加', 'fa fa-circle-o', '', '', 0, UNIX_TIMESTAMP(), UNIX_TIMESTAMP(), 0, 'normal'
FROM `fa_auth_rule` p
WHERE p.name = 'skill_category'
AND NOT EXISTS (SELECT `id` FROM `fa_auth_rule` WHERE `name` = 'skill_category/add');
INSERT INTO `fa_auth_rule` (`type`, `pid`, `name`, `title`, `icon`, `condition`, `remark`, `ismenu`, `createtime`, `updatetime`, `weigh`, `status`)
SELECT 'file', p.id, 'skill_category/edit', '编辑', 'fa fa-circle-o', '', '', 0, UNIX_TIMESTAMP(), UNIX_TIMESTAMP(), 0, 'normal'
FROM `fa_auth_rule` p
WHERE p.name = 'skill_category'
AND NOT EXISTS (SELECT `id` FROM `fa_auth_rule` WHERE `name` = 'skill_category/edit');
INSERT INTO `fa_auth_rule` (`type`, `pid`, `name`, `title`, `icon`, `condition`, `remark`, `ismenu`, `createtime`, `updatetime`, `weigh`, `status`)
SELECT 'file', p.id, 'skill_category/del', '删除', 'fa fa-circle-o', '', '', 0, UNIX_TIMESTAMP(), UNIX_TIMESTAMP(), 0, 'normal'
FROM `fa_auth_rule` p
WHERE p.name = 'skill_category'
AND NOT EXISTS (SELECT `id` FROM `fa_auth_rule` WHERE `name` = 'skill_category/del');
INSERT INTO `fa_auth_rule` (`type`, `pid`, `name`, `title`, `icon`, `condition`, `remark`, `ismenu`, `createtime`, `updatetime`, `weigh`, `status`)
SELECT 'file', p.id, 'skill_category/multi', '批量更新', 'fa fa-circle-o', '', '', 0, UNIX_TIMESTAMP(), UNIX_TIMESTAMP(), 0, 'normal'
FROM `fa_auth_rule` p
WHERE p.name = 'skill_category'
AND NOT EXISTS (SELECT `id` FROM `fa_auth_rule` WHERE `name` = 'skill_category/multi');
-- 6. 注册/更新【技能列表 (skill_dict)】菜单
UPDATE `fa_auth_rule` SET `title` = '技能列表', `icon` = 'fa fa-tags', `weigh` = 172 WHERE `name` = 'skill_dict';