264 lines
12 KiB
SQL
264 lines
12 KiB
SQL
-- =====================================================
|
|
-- SPA管理系统 - 核心业务表
|
|
-- 版本: 1.0
|
|
-- 创建时间: 2025-12-30
|
|
-- =====================================================
|
|
|
|
-- 设置字符集
|
|
SET NAMES utf8mb4;
|
|
SET FOREIGN_KEY_CHECKS = 0;
|
|
|
|
-- =====================================================
|
|
-- 1. 技师信息表
|
|
-- =====================================================
|
|
DROP TABLE IF EXISTS `spa_technician`;
|
|
CREATE TABLE `spa_technician` (
|
|
`id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT 'ID',
|
|
`created_at` datetime(3) DEFAULT NULL COMMENT '创建时间',
|
|
`updated_at` datetime(3) DEFAULT NULL COMMENT '更新时间',
|
|
`deleted_at` datetime(3) DEFAULT NULL COMMENT '删除时间',
|
|
|
|
-- 基本信息
|
|
`user_id` bigint unsigned DEFAULT NULL COMMENT '关联系统用户ID',
|
|
`technician_no` varchar(50) NOT NULL COMMENT '技师工号',
|
|
`name` varchar(100) NOT NULL COMMENT '技师姓名',
|
|
`gender` tinyint DEFAULT 0 COMMENT '性别 0未知 1男 2女',
|
|
`phone` varchar(20) DEFAULT NULL COMMENT '联系电话',
|
|
`id_card` varchar(18) DEFAULT NULL COMMENT '身份证号',
|
|
`avatar` varchar(500) DEFAULT NULL COMMENT '头像URL',
|
|
`birthday` date DEFAULT NULL COMMENT '生日',
|
|
`address` varchar(500) DEFAULT NULL COMMENT '居住地址',
|
|
|
|
-- 专业信息
|
|
`level` tinyint DEFAULT 1 COMMENT '技师等级 1初级 2中级 3高级 4首席 5金牌',
|
|
`specialties` json DEFAULT NULL COMMENT '擅长项目JSON数组',
|
|
`certificates` json DEFAULT NULL COMMENT '资格证书JSON',
|
|
`service_years` int DEFAULT 0 COMMENT '服务年限(月)',
|
|
`introduction` text COMMENT '个人简介',
|
|
|
|
-- 在职状态
|
|
`status` tinyint DEFAULT 1 COMMENT '在职状态 1在职 2休假 3离职 4停职',
|
|
`entry_date` date DEFAULT NULL COMMENT '入职日期',
|
|
`leave_date` date DEFAULT NULL COMMENT '离职日期',
|
|
`contract_start` date DEFAULT NULL COMMENT '合同开始日期',
|
|
`contract_end` date DEFAULT NULL COMMENT '合同结束日期',
|
|
|
|
-- 薪资信息
|
|
`salary_type` tinyint DEFAULT 1 COMMENT '薪资类型 1纯提成 2底薪+提成 3固定工资',
|
|
`base_salary` decimal(10,2) DEFAULT 0.00 COMMENT '基本工资',
|
|
`commission_rate` decimal(5,2) DEFAULT 0.00 COMMENT '默认提成比例%',
|
|
|
|
-- 代理关联
|
|
`agent_id` bigint unsigned DEFAULT NULL COMMENT '推荐代理ID',
|
|
`agent_commission_rate` decimal(5,2) DEFAULT 0.00 COMMENT '代理抽成比例%',
|
|
`bind_time` datetime DEFAULT NULL COMMENT '绑定代理时间',
|
|
|
|
-- 统计数据
|
|
`rating` decimal(3,2) DEFAULT 5.00 COMMENT '综合评分',
|
|
`total_orders` int DEFAULT 0 COMMENT '累计服务单数',
|
|
`total_income` decimal(12,2) DEFAULT 0.00 COMMENT '累计收入',
|
|
`total_customers` int DEFAULT 0 COMMENT '累计服务客户数',
|
|
|
|
-- 其他
|
|
`is_recommended` tinyint DEFAULT 0 COMMENT '是否推荐技师 0否 1是',
|
|
`sort` int DEFAULT 0 COMMENT '排序',
|
|
`remark` text COMMENT '备注',
|
|
|
|
PRIMARY KEY (`id`),
|
|
UNIQUE KEY `idx_technician_no` (`technician_no`),
|
|
KEY `idx_user_id` (`user_id`),
|
|
KEY `idx_agent_id` (`agent_id`),
|
|
KEY `idx_status` (`status`),
|
|
KEY `idx_level` (`level`),
|
|
KEY `idx_deleted_at` (`deleted_at`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='技师信息表';
|
|
|
|
-- =====================================================
|
|
-- 2. 代理信息表
|
|
-- =====================================================
|
|
DROP TABLE IF EXISTS `spa_agent`;
|
|
CREATE TABLE `spa_agent` (
|
|
`id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT 'ID',
|
|
`created_at` datetime(3) DEFAULT NULL COMMENT '创建时间',
|
|
`updated_at` datetime(3) DEFAULT NULL COMMENT '更新时间',
|
|
`deleted_at` datetime(3) DEFAULT NULL COMMENT '删除时间',
|
|
|
|
-- 基本信息
|
|
`user_id` bigint unsigned DEFAULT NULL COMMENT '关联系统用户ID',
|
|
`agent_no` varchar(50) NOT NULL COMMENT '代理编号',
|
|
`name` varchar(100) NOT NULL COMMENT '代理姓名',
|
|
`phone` varchar(20) NOT NULL COMMENT '联系电话',
|
|
`avatar` varchar(500) DEFAULT NULL COMMENT '头像URL',
|
|
|
|
-- 代理等级
|
|
`level` tinyint DEFAULT 1 COMMENT '代理等级 1普通 2银牌 3金牌 4钻石 5皇冠',
|
|
`parent_agent_id` bigint unsigned DEFAULT NULL COMMENT '上级代理ID',
|
|
`agent_path` varchar(500) DEFAULT NULL COMMENT '代理路径 如: 1/2/3/',
|
|
|
|
-- 分佣比例
|
|
`technician_commission_rate` decimal(5,2) DEFAULT 0.00 COMMENT '技师订单抽成比例%',
|
|
`customer_commission_rate` decimal(5,2) DEFAULT 0.00 COMMENT '客户订单抽成比例%',
|
|
`sub_agent_commission_rate` decimal(5,2) DEFAULT 0.00 COMMENT '下级代理抽成比例%',
|
|
|
|
-- 状态
|
|
`status` tinyint DEFAULT 1 COMMENT '状态 1正常 2冻结 3注销',
|
|
`join_date` date DEFAULT NULL COMMENT '加入日期',
|
|
|
|
-- 统计数据
|
|
`total_technicians` int DEFAULT 0 COMMENT '累计推荐技师数',
|
|
`active_technicians` int DEFAULT 0 COMMENT '活跃技师数',
|
|
`total_customers` int DEFAULT 0 COMMENT '累计推荐客户数',
|
|
`active_customers` int DEFAULT 0 COMMENT '活跃客户数',
|
|
`total_sub_agents` int DEFAULT 0 COMMENT '累计下级代理数',
|
|
`total_income` decimal(12,2) DEFAULT 0.00 COMMENT '累计收入',
|
|
`total_orders` int DEFAULT 0 COMMENT '累计关联订单数',
|
|
|
|
-- 结算信息
|
|
`bank_name` varchar(100) DEFAULT NULL COMMENT '开户银行',
|
|
`bank_account` varchar(50) DEFAULT NULL COMMENT '银行账号',
|
|
`account_name` varchar(100) DEFAULT NULL COMMENT '账户名',
|
|
`alipay_account` varchar(100) DEFAULT NULL COMMENT '支付宝账号',
|
|
`wechat_account` varchar(100) DEFAULT NULL COMMENT '微信账号',
|
|
|
|
`remark` text COMMENT '备注',
|
|
|
|
PRIMARY KEY (`id`),
|
|
UNIQUE KEY `idx_agent_no` (`agent_no`),
|
|
KEY `idx_user_id` (`user_id`),
|
|
KEY `idx_parent_agent_id` (`parent_agent_id`),
|
|
KEY `idx_level` (`level`),
|
|
KEY `idx_status` (`status`),
|
|
KEY `idx_deleted_at` (`deleted_at`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='代理信息表';
|
|
|
|
-- =====================================================
|
|
-- 3. 客户信息表
|
|
-- =====================================================
|
|
DROP TABLE IF EXISTS `spa_customer`;
|
|
CREATE TABLE `spa_customer` (
|
|
`id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT 'ID',
|
|
`created_at` datetime(3) DEFAULT NULL COMMENT '创建时间',
|
|
`updated_at` datetime(3) DEFAULT NULL COMMENT '更新时间',
|
|
`deleted_at` datetime(3) DEFAULT NULL COMMENT '删除时间',
|
|
|
|
-- 基本信息
|
|
`user_id` bigint unsigned DEFAULT NULL COMMENT '关联系统用户ID',
|
|
`customer_no` varchar(50) NOT NULL COMMENT '客户编号',
|
|
`nickname` varchar(100) DEFAULT NULL COMMENT '昵称',
|
|
`real_name` varchar(100) DEFAULT NULL COMMENT '真实姓名',
|
|
`gender` tinyint DEFAULT 0 COMMENT '性别 0未知 1男 2女',
|
|
`phone` varchar(20) DEFAULT NULL COMMENT '联系电话',
|
|
`avatar` varchar(500) DEFAULT NULL COMMENT '头像URL',
|
|
`birthday` date DEFAULT NULL COMMENT '生日',
|
|
|
|
-- 会员信息
|
|
`member_level` tinyint DEFAULT 0 COMMENT '会员等级 0普通 1银卡 2金卡 3钻石 4黑金',
|
|
`member_expire_time` datetime DEFAULT NULL COMMENT '会员到期时间',
|
|
`points` int DEFAULT 0 COMMENT '积分',
|
|
|
|
-- 推荐关系
|
|
`referrer_type` tinyint DEFAULT 0 COMMENT '推荐人类型 0无 1客户 2代理',
|
|
`referrer_id` bigint unsigned DEFAULT NULL COMMENT '推荐人ID',
|
|
`agent_id` bigint unsigned DEFAULT NULL COMMENT '绑定代理ID',
|
|
`agent_commission_rate` decimal(5,2) DEFAULT 0.00 COMMENT '代理抽成比例%',
|
|
`bind_time` datetime DEFAULT NULL COMMENT '绑定时间',
|
|
|
|
-- 统计数据
|
|
`total_orders` int DEFAULT 0 COMMENT '累计订单数',
|
|
`total_amount` decimal(12,2) DEFAULT 0.00 COMMENT '累计消费金额',
|
|
`total_referrals` int DEFAULT 0 COMMENT '累计推荐客户数',
|
|
`last_order_time` datetime DEFAULT NULL COMMENT '最后下单时间',
|
|
`avg_rating` decimal(3,2) DEFAULT NULL COMMENT '平均评分',
|
|
|
|
-- 状态
|
|
`status` tinyint DEFAULT 1 COMMENT '状态 1正常 2黑名单 3注销',
|
|
`source` varchar(50) DEFAULT NULL COMMENT '来源渠道',
|
|
`remark` text COMMENT '备注',
|
|
|
|
PRIMARY KEY (`id`),
|
|
UNIQUE KEY `idx_customer_no` (`customer_no`),
|
|
KEY `idx_user_id` (`user_id`),
|
|
KEY `idx_phone` (`phone`),
|
|
KEY `idx_referrer` (`referrer_type`, `referrer_id`),
|
|
KEY `idx_agent_id` (`agent_id`),
|
|
KEY `idx_member_level` (`member_level`),
|
|
KEY `idx_deleted_at` (`deleted_at`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='客户信息表';
|
|
|
|
-- =====================================================
|
|
-- 4. 服务分类表
|
|
-- =====================================================
|
|
DROP TABLE IF EXISTS `spa_service_category`;
|
|
CREATE TABLE `spa_service_category` (
|
|
`id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT 'ID',
|
|
`created_at` datetime(3) DEFAULT NULL COMMENT '创建时间',
|
|
`updated_at` datetime(3) DEFAULT NULL COMMENT '更新时间',
|
|
`deleted_at` datetime(3) DEFAULT NULL COMMENT '删除时间',
|
|
|
|
`parent_id` bigint unsigned DEFAULT 0 COMMENT '父分类ID',
|
|
`name` varchar(100) NOT NULL COMMENT '分类名称',
|
|
`icon` varchar(500) DEFAULT NULL COMMENT '图标',
|
|
`description` text COMMENT '描述',
|
|
`sort` int DEFAULT 0 COMMENT '排序',
|
|
`status` tinyint DEFAULT 1 COMMENT '状态 1启用 2禁用',
|
|
|
|
PRIMARY KEY (`id`),
|
|
KEY `idx_parent_id` (`parent_id`),
|
|
KEY `idx_deleted_at` (`deleted_at`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='服务分类表';
|
|
|
|
-- =====================================================
|
|
-- 5. 服务项目表
|
|
-- =====================================================
|
|
DROP TABLE IF EXISTS `spa_service_item`;
|
|
CREATE TABLE `spa_service_item` (
|
|
`id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT 'ID',
|
|
`created_at` datetime(3) DEFAULT NULL COMMENT '创建时间',
|
|
`updated_at` datetime(3) DEFAULT NULL COMMENT '更新时间',
|
|
`deleted_at` datetime(3) DEFAULT NULL COMMENT '删除时间',
|
|
|
|
-- 基本信息
|
|
`category_id` bigint unsigned DEFAULT NULL COMMENT '服务分类ID',
|
|
`item_no` varchar(50) NOT NULL COMMENT '项目编号',
|
|
`name` varchar(100) NOT NULL COMMENT '项目名称',
|
|
`sub_title` varchar(200) DEFAULT NULL COMMENT '副标题',
|
|
`description` text COMMENT '项目描述',
|
|
`cover_image` varchar(500) DEFAULT NULL COMMENT '封面图',
|
|
`images` json DEFAULT NULL COMMENT '详情图片JSON数组',
|
|
|
|
-- 价格信息
|
|
`duration` int NOT NULL COMMENT '标准时长(分钟)',
|
|
`price` decimal(10,2) NOT NULL COMMENT '标准价格',
|
|
`vip_price` decimal(10,2) DEFAULT NULL COMMENT '会员价',
|
|
`cost_price` decimal(10,2) DEFAULT 0.00 COMMENT '成本价',
|
|
|
|
-- 技师要求
|
|
`required_level` tinyint DEFAULT 1 COMMENT '要求技师等级',
|
|
`required_gender` tinyint DEFAULT 0 COMMENT '要求技师性别 0不限 1男 2女',
|
|
|
|
-- 提成设置
|
|
`commission_type` tinyint DEFAULT 1 COMMENT '提成类型 1按比例 2固定金额',
|
|
`commission_value` decimal(10,2) DEFAULT 0.00 COMMENT '提成值',
|
|
|
|
-- 服务详情
|
|
`service_steps` json DEFAULT NULL COMMENT '服务流程JSON',
|
|
`required_products` json DEFAULT NULL COMMENT '所需产品JSON',
|
|
`precautions` text COMMENT '注意事项',
|
|
|
|
-- 销售信息
|
|
`sales_count` int DEFAULT 0 COMMENT '销量',
|
|
`stock` int DEFAULT -1 COMMENT '库存 -1不限',
|
|
`status` tinyint DEFAULT 1 COMMENT '状态 1上架 2下架',
|
|
`is_hot` tinyint DEFAULT 0 COMMENT '是否热门 0否 1是',
|
|
`is_new` tinyint DEFAULT 0 COMMENT '是否新品 0否 1是',
|
|
`sort` int DEFAULT 0 COMMENT '排序',
|
|
|
|
PRIMARY KEY (`id`),
|
|
UNIQUE KEY `idx_item_no` (`item_no`),
|
|
KEY `idx_category_id` (`category_id`),
|
|
KEY `idx_status` (`status`),
|
|
KEY `idx_deleted_at` (`deleted_at`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='服务项目表';
|
|
|
|
SET FOREIGN_KEY_CHECKS = 1;
|