petstore-docs/产品设计文档.md
2026-04-12 23:24:40 +08:00

8.9 KiB
Raw Blame History

宠伴生活馆 - 产品设计文档

版本v1.5 日期2026-04-01 状态:产品设计确认中


一、产品定位

平台定位: 宠物店服务管理 SaaS 平台,支持多家宠物店入驻

目标用户v1

  • 宠物店老板 / 员工(管理预约 + 填写报告)
  • 宠主通过微信查看服务报告v2

登录方式:

  • 微信授权登录(老板/员工主要登录方式)
  • 手机号+短信验证码(备用)

二、核心功能闭环v1

预约创建(老板/员工)→ 待确认 → 开始服务(谁点谁就是技师)→ 进行中 → 填写报告 → 发送报告 → 已完成
                                                      ↘ 已取消 → 归到已完成Tab

报告分享流程v1 重点):

填写报告(照片+备注)→ 点击「发送报告」→ 选择发送方式
                                         ├── 复制链接(发给宠主微信)
                                         └── 下载二维码(现场扫码)

三、数据模型

t_store店铺表

字段 类型 说明
id BIGINT 主键
name VARCHAR 店铺名称
logo VARCHAR 店铺Logo
phone VARCHAR 联系电话
address VARCHAR 地址
intro TEXT 简介
owner_id BIGINT 老板用户ID
invite_code VARCHAR 员工邀请码8位
create_time DATETIME 创建时间
update_time DATETIME 更新时间

t_user用户表

字段 类型 说明
id BIGINT 主键
username VARCHAR 用户名
password VARCHAR 密码
name VARCHAR 姓名/技师名
phone VARCHAR 手机号
avatar VARCHAR 头像
store_id BIGINT 所属店铺
role VARCHAR boss / staff
create_time DATETIME 创建时间
update_time DATETIME 更新时间

t_appointment预约表

字段 类型 说明
id BIGINT 主键
pet_name VARCHAR 宠物名称
pet_type VARCHAR 宠物类型(猫/狗/其他)
service_type VARCHAR 服务类型
appointment_time DATETIME 预约时间(无限制,随便选)
status VARCHAR new / doing / done / cancel
store_id BIGINT 店铺ID
user_id BIGINT 创建人ID谁建的
assigned_user_id BIGINT 技师ID开始服务时赋值
remark TEXT 备注
create_time DATETIME 创建时间
update_time DATETIME 更新时间

t_report报告表

字段 类型 说明
id BIGINT 主键
appointment_id BIGINT 预约ID
before_photo VARCHAR 服务前照片URL
after_photo VARCHAR 服务后照片URL
remark TEXT 备注
user_id BIGINT 技师ID
store_id BIGINT 店铺ID
report_token VARCHAR 报告访问令牌UUID永久有效
pet_name VARCHAR 宠物名(冗余)
service_type VARCHAR 服务类型(冗余)
appointment_time DATETIME 服务时间(冗余)
staff_name VARCHAR 技师名(冗余)
create_time DATETIME 创建时间
update_time DATETIME 更新时间

t_service_type服务类型表

字段 类型 说明
id BIGINT 主键
store_id BIGINT 店铺IDNULL表示系统默认
name VARCHAR 服务名称
create_time DATETIME 创建时间

四、角色权限

功能 老板boss 员工staff
预约列表
新建预约
开始服务/填写报告
发送报告
员工管理
邀请码
店铺设置
服务类型管理

页面入口

  • index.html统一入口:老板/员工同一套页面,通过「我的」页面区分功能
    • 老板「我的」:员工管理 / 服务类型 / 店铺设置 / 我的订单
    • 员工「我的」:我的订单

五、核心功能详解

5.1 登录体系

微信授权登录(主)

  • 老板/员工均可使用微信授权登录

手机号+短信验证码登录(备用)

员工入职流程:

  • 老板后台生成邀请码 → 员工点链接注册 → 自动关联店铺
  • 老板后台直接新增员工 → 系统生成随机6位密码 → 员工用手机号+密码登录

5.2 预约管理

创建预约:

  • 老板/员工均可手动创建
  • 字段:宠物名字、宠物类型(猫/狗/其他)、服务类型、预约时间、备注
  • 建档人 = 当前登录用户
  • 预约时间无限制,随便选

服务类型:

  • 系统默认:洗澡、美容、洗澡+美容、剪指甲、驱虫
  • 老板可在默认基础上新增/编辑/删除自定义服务类型
  • 员工只能使用,不能管理

预约状态流转:

  • new待确认→ doing进行中→ done已完成
  • new待确认→ cancel已取消→ 归到「已完成」Tab显示
  • doing进行中→ done已完成

开始服务:

  • 点击「开始服务」→ 状态变为「进行中」
  • assigned_user_id = 当前登录用户(谁点谁服务)

5.3 服务报告

填写报告(进行中状态可操作):

  • 服务前照片(必填)
  • 服务后照片(必填)
  • 备注(选填)
  • 技师 = 开始服务时分配的用户
  • 提交后锁死,不可再修改
  • 一约一份报告

5.4 发送报告v1 核心功能)

操作入口: 报告填写完成后,点击「发送报告」按钮

发送方式:

  1. 复制链接 — 生成报告链接,一键复制到剪贴板,可发给宠主微信
  2. 下载二维码 — 生成报告二维码图片,保存到相册,可打印或现场扫码

报告链接:

  • URLhttps://域名/report.html?token=xxx
  • Token = UUID永久有效
  • 宠主打开无需登录v1 免登录)

报告二维码:

  • 扫码直接打开报告页
  • 打印出来可贴在墙上/前台,方便宠主扫码

5.5 H5 报告页

访问方式: 链接或二维码扫码,免登录

报告页内容:

  • 品牌头部:店铺 Logo + 店铺名称 + 联系电话 + 地址
  • 服务信息卡片:宠物名、服务项目、服务时间、技师名
  • 前后对比照片(并排展示)
  • 技师备注
  • 底部品牌信息(即使链接被转发,店铺信息持续透出)

分享能力:

  • 长按图片可保存
  • 链接可复制转发微信

5.6 老板后台(合并到「我的」页面)

员工管理:

  • 员工邀请码(复制分享)
  • 新增员工(姓名+手机号,系统生成密码)
  • 删除员工

服务类型:

  • 新增服务类型
  • 删除自定义服务类型(系统默认不可删)

店铺设置:

  • 店铺名称
  • 店铺Logo
  • 联系电话
  • 地址
  • 简介

六、技术方案

技术
APP前端 uniapp + Vue3
H5报告页 Vue3独立部署
后端 Spring Boot 3.2 + JPA
数据库 MySQL
图片存储 本地存储后续可平滑切换OSS

七、开发进度

优先级 功能 状态
P0 老板入驻/登录
P0 员工邀请码注册
P0 员工登录(微信+验证码)
P0 预约列表
P0 预约创建
P0 开始服务(分配技师)
P0 报告填写
P0 发送报告(复制链接+下载二维码) 🔨 本次
P0 H5报告页品牌信息强化 🔨 本次
P0 H5报告页链接+二维码)
P0 老板后台(员工管理+邀请码) 已合并到index.html
P0 老板后台(预约概览) 已合并到index.html
P1 服务类型管理(老板后台)
P1 店铺设置(老板后台)
P1 本地文件上传替代base64
P2 宠主端(历史报告汇总) v2

八、数据库变更

-- 预约表新增技师字段
ALTER TABLE t_appointment ADD COLUMN assigned_user_id BIGINT COMMENT '技师ID';

-- 店铺表新增简介字段
ALTER TABLE t_store ADD COLUMN intro TEXT COMMENT '简介';

-- 服务类型表
CREATE TABLE t_service_type (
    id BIGINT PRIMARY KEY AUTO_INCREMENT,
    store_id BIGINT COMMENT '店铺IDNULL表示系统默认',
    name VARCHAR(50) NOT NULL,
    create_time DATETIME
);

-- 系统默认服务类型
INSERT INTO t_service_type (store_id, name, create_time) VALUES
(NULL, '洗澡', NOW()),
(NULL, '美容', NOW()),
(NULL, '洗澡+美容', NOW()),
(NULL, '剪指甲', NOW()),
(NULL, '驱虫', NOW());

九、待确认/后续事项

  • 宠伴生活馆 Logo 素材
  • 图片存储方案(本地 / OSS
  • 短信验证码服务商接入
  • 微信授权登录 AppID/AppSecret
  • H5页面域名及部署方案
  • 宠主端v2历史报告汇总、宠主登录