目录
家维在线系统模块设计文档
1. 系统概述
家维在线系统是一个家庭维修服务平台,连接用户和维修技师,提供从下单、派单、维修到评价的全流程服务。系统分为用户端和技师端两大部分,通过统一的订单管理实现业务流转。
2. 核心业务流程
2.1 订单生命周期
- 订单创建:用户选择服务类型,填写地址、联系方式等信息创建订单
- 支付:用户完成订单支付,订单状态变为"待安排"
- 派单:客服/系统将订单分配给合适的技师,订单状态变为"待服务"
- 技师接单:技师接受或拒绝订单
- 接受:订单状态保持"待服务",但标记为"技师已接单"
- 拒绝:订单状态保持"待服务",但标记为"技师已拒单",需重新派单
- 开始服务:技师到达现场开始服务,订单状态变为"服务中"
- 维修流程:技师按照维修工作流程进行维修
- 完成服务:维修完成后,订单状态变为"已完成"
- 评价:用户对服务进行评价
- 售后/退款:如有需要,用户可申请售后服务或退款
2.2 维修工作流程
- 现场评估:技师到达现场评估问题是否可修
- 判断配件:确定是否需要配件
- 配件/报价:
- 无需配件:直接报价
- 需要配件:识别配件信息
- 总报价:生成维修总报价
- 客户确认:客户确认报价
- 维修/付款:
- 无需配件:直接维修
- 需要配件:收取拆装费
- 配件/二次上门:
- 等待配件到货
- 二次上门维修
- 收款:收取尾款
- 完成:工单完成
3. 系统模块设计
3.1 用户端模块
3.1.1 首页模块
- 功能点:
- 服务类型展示
- 热门服务推荐
- 促销活动展示
- 搜索功能
3.1.2 服务选择模块
- 功能点:
- 服务分类浏览
- 服务详情查看
- 价格查询
- 下单入口
3.1.3 订单管理模块 (orders.html)
- 功能点:
- 订单列表展示
- 订单状态筛选(全部、待支付、待安排、待服务、服务中、已完成、售后中、退款中)
- 订单详情查看
- 订单操作(支付、取消、联系客服等)
- 订单状态跟踪
3.1.4 订单详情模块 (order-detail.html)
- 功能点:
- 订单基本信息展示
- 服务信息展示
- 技师信息展示(如已分配)
- 订单进度时间线
- 状态相关操作按钮
- 联系技师/客服功能
3.1.5 支付模块
- 功能点:
- 支付方式选择
- 支付金额确认
- 支付状态跟踪
- 支付成功/失败处理
3.1.6 评价模块
- 功能点:
- 服务评分
- 评价内容填写
- 图片上传
- 匿名评价选项
3.1.7 售后/退款模块
- 功能点:
- 售后申请
- 退款申请
- 申请状态跟踪
- 售后/退款原因选择
3.1.8 消息模块
- 功能点:
- 系统通知
- 客服对话
- 技师对话
- 消息提醒
3.1.9 个人中心模块
- 功能点:
- 个人信息管理
- 地址管理
- 账户设置
- 历史订单查看
3.1.10 用户端模块详细表格
表3-1:首页模块详细设计
功能点 | 描述 | 输入/输出 | 交互关系 | 实现文件 |
---|---|---|---|---|
服务类型展示 | 展示各类家庭维修服务类型 | 输入:服务类型数据 输出:服务类型列表 | 点击进入服务详情页 | index.html |
热门服务推荐 | 根据用户行为和热度推荐服务 | 输入:热门服务数据 输出:推荐服务列表 | 点击进入服务详情页 | index.html |
促销活动展示 | 展示当前促销活动信息 | 输入:促销活动数据 输出:活动卡片 | 点击进入活动详情页 | index.html |
搜索功能 | 搜索服务类型或关键词 | 输入:搜索关键词 输出:搜索结果列表 | 点击搜索结果进入相应页面 | index.html |
表3-2:订单管理模块详细设计
功能点 | 描述 | 输入/输出 | 交互关系 | 实现文件 |
---|---|---|---|---|
订单列表展示 | 展示用户的所有订单 | 输入:用户ID 输出:订单列表 | 点击订单进入详情页 | orders.html |
订单状态筛选 | 根据状态筛选订单 | 输入:状态选择 输出:筛选后的订单列表 | 点击状态标签切换显示 | orders.html |
订单详情查看 | 查看订单的详细信息 | 输入:订单ID 输出:订单详情 | 从订单列表点击进入 | order-detail.html |
订单操作 | 对订单进行支付、取消等操作 | 输入:操作类型 输出:操作结果 | 点击操作按钮触发 | orders.html |
订单状态跟踪 | 跟踪订单的当前状态和进度 | 输入:订单ID 输出:状态时间线 | 在订单详情页查看 | order-detail.html |
表3-3:支付模块详细设计
功能点 | 描述 | 输入/输出 | 交互关系 | 实现文件 |
---|---|---|---|---|
支付方式选择 | 选择支付方式(微信、支付宝等) | 输入:支付方式选择 输出:支付界面 | 从订单页面进入 | payment.html |
支付金额确认 | 确认订单金额和支付金额 | 输入:订单ID 输出:金额信息 | 在支付页面显示 | payment.html |
支付状态跟踪 | 跟踪支付过程和结果 | 输入:支付请求 输出:支付状态 | 支付完成后跳转结果页 | payment-result.html |
支付成功/失败处理 | 处理支付结果并更新订单状态 | 输入:支付结果 输出:状态更新 | 支付完成后自动处理 | payment-result.html |
表3-4:评价模块详细设计
功能点 | 描述 | 输入/输出 | 交互关系 | 实现文件 |
---|---|---|---|---|
服务评分 | 对服务质量进行星级评分 | 输入:评分选择 输出:评分结果 | 从订单完成页面进入 | review.html |
评价内容填写 | 填写文字评价内容 | 输入:评价文字 输出:评价内容 | 在评价页面填写 | review.html |
图片上传 | 上传服务相关照片 | 输入:照片文件 输出:照片预览 | 在评价页面上传 | review.html |
匿名评价选项 | 选择是否匿名评价 | 输入:匿名选择 输出:评价设置 | 在评价页面选择 | review.html |
3.2 技师端模块
3.2.1 工作台模块 (employee-dashboard.html)
- 功能点:
- 待处理订单展示
- 今日工作统计
- 收入统计
- 评价统计
- 公告通知
3.2.2 订单管理模块
- 功能点:
- 订单列表展示
- 订单状态筛选
- 订单详情查看
- 订单操作(接单、拒单、开始服务等)
- 历史订单查询
3.2.3 维修工作流模块 (repair_workflow.html)
- 功能点:
- 工单信息展示
- 维修流程步骤引导
- 现场评估记录
- 配件识别/选择
- 报价生成
- 维修前/后照片上传
- 维修记录
- 收款确认
- 工单完成处理
3.2.4 配件管理模块 (repair_item.html)
- 功能点:
- 配件搜索
- 配件分类浏览
- 配件详情查看
- 配件选择
- 配件价格查询
- 配件数量设置
- 产品型号选择
- 兼容配件查询
- 原厂/通用配件筛选
3.2.5 派单模块 (assign-technician.html)
- 功能点:
- 订单信息展示
- 技师列表展示
- 技师筛选(评分、经验、距离等)
- AI推荐技师
- 派单确认
- 派单备注
3.2.6 收入管理模块 (income-management.html)
- 功能点:
- 收入统计(总收入、可提现金额、已提现金额)
- 收入明细(订单收入记录、分佣比例、结算时间)
- 提现申请(银行账户信息、提现金额设置)
- 提现记录(申请状态、处理结果、处理时间)
- 账单查询(按日期、按状态筛选)
- 收入趋势图表
3.2.7 评价管理模块
- 功能点:
- 评价列表
- 评价详情
- 评价回复
- 评价统计
3.2.8 消息通知模块
- 功能点:
- 新订单通知
- 系统消息
- 客户消息
- 客服消息
3.2.9 技师端模块详细表格
表3-5:工作台模块详细设计
功能点 | 描述 | 输入/输出 | 交互关系 | 实现文件 |
---|---|---|---|---|
待处理订单展示 | 展示技师待处理的订单 | 输入:技师ID 输出:待处理订单列表 | 点击订单进入详情页 | employee-dashboard.html |
今日工作统计 | 统计今日完成订单数、工时等 | 输入:技师ID、日期 输出:统计数据 | 在工作台页面显示 | employee-dashboard.html |
收入统计 | 统计技师收入情况 | 输入:技师ID、时间范围 输出:收入数据 | 点击可查看详细收入 | employee-dashboard.html |
评价统计 | 统计技师评价情况 | 输入:技师ID 输出:评价统计数据 | 点击可查看详细评价 | employee-dashboard.html |
公告通知 | 展示系统公告和通知 | 输入:系统公告数据 输出:公告列表 | 点击可查看详细公告 | employee-dashboard.html |
表3-6:维修工作流模块详细设计
功能点 | 描述 | 输入/输出 | 交互关系 | 实现文件 |
---|---|---|---|---|
工单信息展示 | 展示工单基本信息 | 输入:工单ID 输出:工单信息 | 在工作流页面顶部显示 | repair_workflow.html |
维修流程步骤引导 | 引导技师按步骤完成维修 | 输入:当前步骤 输出:步骤指引 | 按顺序完成各步骤 | repair_workflow.html |
现场评估记录 | 记录现场评估结果 | 输入:评估信息 输出:评估记录 | 在第一步完成 | repair_workflow.html |
配件识别/选择 | 识别或选择所需配件 | 输入:配件信息/照片 输出:配件列表 | 与配件管理模块交互 | repair_workflow.html |
报价生成 | 根据配件和服务生成报价 | 输入:配件、服务项目 输出:报价单 | 在报价步骤完成 | repair_workflow.html |
维修前/后照片上传 | 上传维修前后的照片 | 输入:照片文件 输出:照片预览 | 在维修步骤中完成 | repair_workflow.html |
维修记录 | 记录维修过程和结果 | 输入:维修信息 输出:维修记录 | 贯穿整个工作流 | repair_workflow.html |
收款确认 | 确认客户付款情况 | 输入:付款确认 输出:付款状态 | 在收款步骤完成 | repair_workflow.html |
工单完成处理 | 完成工单并提交 | 输入:完成确认 输出:工单状态更新 | 在最后步骤完成 | repair_workflow.html |
表3-7:派单模块详细设计
功能点 | 描述 | 输入/输出 | 交互关系 | 实现文件 |
---|---|---|---|---|
订单信息展示 | 展示待派单的订单信息 | 输入:订单ID 输出:订单详情 | 在派单页面顶部显示 | assign-technician.html |
技师列表展示 | 展示可用技师列表 | 输入:服务类型 输出:技师列表 | 在派单页面中部显示 | assign-technician.html |
技师筛选 | 根据条件筛选技师 | 输入:筛选条件 输出:筛选结果 | 使用筛选控件操作 | assign-technician.html |
AI推荐技师 | 智能推荐最适合的技师 | 输入:订单信息 输出:推荐技师 | 在技师列表顶部显示 | assign-technician.html |
派单确认 | 确认将订单分配给选中技师 | 输入:技师选择 输出:派单结果 | 点击确认按钮完成 | assign-technician.html |
派单备注 | 添加派单相关备注 | 输入:备注内容 输出:备注信息 | 在派单前填写 | assign-technician.html |
表3-8:配件管理模块详细设计
功能点 | 描述 | 输入/输出 | 交互关系 | 实现文件 |
---|---|---|---|---|
配件搜索 | 搜索所需配件 | 输入:搜索关键词 输出:搜索结果 | 在配件页面顶部 | repair_item.html |
配件分类浏览 | 按分类浏览配件 | 输入:分类选择 输出:分类配件列表 | 点击分类标签切换 | repair_item.html |
配件详情查看 | 查看配件详细信息 | 输入:配件ID 输出:配件详情 | 点击配件查看详情 | repair_item.html |
配件选择 | 选择所需配件 | 输入:配件选择 输出:已选配件列表 | 点击添加按钮选择 | repair_item.html |
配件价格查询 | 查询配件价格 | 输入:配件ID 输出:价格信息 | 在配件详情中显示 | repair_item.html |
配件数量设置 | 设置所需配件数量 | 输入:数量值 输出:数量更新 | 使用数量控件操作 | repair_item.html |
产品型号选择 | 选择产品型号以筛选兼容配件 | 输入:品牌选择、型号选择 输出:型号信息 | 在配件页面顶部 | repair_item.html |
兼容配件查询 | 根据产品型号查询兼容配件 | 输入:型号ID 输出:兼容配件列表 | 选择型号后自动查询 | repair_item.html |
原厂/通用配件筛选 | 筛选原厂或通用配件 | 输入:筛选条件 输出:筛选结果 | 使用筛选控件操作 | repair_item.html |
3.3 管理端模块
3.3.1 订单管理模块
- 功能点:
- 订单查询
- 订单详情查看
- 订单状态修改
- 订单分配
- 订单统计
3.3.2 技师管理模块
- 功能点:
- 技师信息管理
- 技师审核
- 技师评价查看
- 技师工作量统计
- 技师收入统计
3.3.3 用户管理模块
- 功能点:
- 用户信息查询
- 用户订单查看
- 用户反馈处理
- 用户账户管理
3.3.4 服务管理模块
- 功能点:
- 服务类型管理
- 服务价格设置
- 服务描述编辑
- 服务上下架
3.3.5 配件管理模块
- 功能点:
- 配件库存管理
- 配件价格管理
- 配件分类管理
- 配件采购管理
3.3.6 财务管理模块 (admin-finance.html)
- 功能点:
- 收入统计(平台总收入、分类收入)
- 支出统计(技师分佣、退款金额)
- 技师结算(佣金计算、结算记录)
- 提现管理(提现申请审核、提现记录查询)
- 退款处理(退款申请审核、退款记录)
- 财务报表(日报、月报、年报)
- 分佣比例设置(技师等级分佣比例)
3.3.7 管理端模块详细表格
表3-9:订单管理模块详细设计
功能点 | 描述 | 输入/输出 | 交互关系 | 实现文件 |
---|---|---|---|---|
订单查询 | 根据条件查询订单 | 输入:查询条件 输出:订单列表 | 在管理后台操作 | admin-orders.html |
订单详情查看 | 查看订单的详细信息 | 输入:订单ID 输出:订单详情 | 点击订单查看详情 | admin-order-detail.html |
订单状态修改 | 手动修改订单状态 | 输入:新状态 输出:状态更新 | 在订单详情页操作 | admin-order-detail.html |
订单分配 | 将订单分配给技师 | 输入:技师选择 输出:分配结果 | 调用派单模块 | admin-order-assign.html |
订单统计 | 统计订单数据 | 输入:统计条件 输出:统计结果 | 在订单管理页查看 | admin-order-stats.html |
表3-10:技师管理模块详细设计
功能点 | 描述 | 输入/输出 | 交互关系 | 实现文件 |
---|---|---|---|---|
技师信息管理 | 管理技师基本信息 | 输入:技师信息 输出:信息更新 | 在技师管理页操作 | admin-technicians.html |
技师审核 | 审核技师注册申请 | 输入:审核结果 输出:审核状态 | 在技师审核页操作 | admin-technician-review.html |
技师评价查看 | 查看技师收到的评价 | 输入:技师ID 输出:评价列表 | 在技师详情页查看 | admin-technician-detail.html |
技师工作量统计 | 统计技师工作量 | 输入:技师ID、时间范围 输出:统计数据 | 在技师详情页查看 | admin-technician-detail.html |
技师收入统计 | 统计技师收入情况 | 输入:技师ID、时间范围 输出:收入数据 | 在技师详情页查看 | admin-technician-detail.html |
表3-11:服务管理模块详细设计
功能点 | 描述 | 输入/输出 | 交互关系 | 实现文件 |
---|---|---|---|---|
服务类型管理 | 管理服务类型 | 输入:服务类型信息 输出:类型更新 | 在服务管理页操作 | admin-services.html |
服务价格设置 | 设置服务价格 | 输入:价格信息 输出:价格更新 | 在服务详情页操作 | admin-service-detail.html |
服务描述编辑 | 编辑服务描述 | 输入:描述内容 输出:描述更新 | 在服务详情页操作 | admin-service-detail.html |
服务上下架 | 控制服务上下架状态 | 输入:上下架状态 输出:状态更新 | 在服务管理页操作 | admin-services.html |
表3-12:配件管理模块详细设计
功能点 | 描述 | 输入/输出 | 交互关系 | 实现文件 |
---|---|---|---|---|
配件库存管理 | 管理配件库存 | 输入:库存信息 输出:库存更新 | 在配件管理页操作 | admin-parts.html |
配件价格管理 | 管理配件价格 | 输入:价格信息 输出:价格更新 | 在配件详情页操作 | admin-part-detail.html |
配件分类管理 | 管理配件分类 | 输入:分类信息 输出:分类更新 | 在配件分类页操作 | admin-part-categories.html |
配件采购管理 | 管理配件采购 | 输入:采购信息 输出:采购单 | 在配件采购页操作 | admin-part-purchase.html |
表3-13:财务管理模块详细设计
功能点 | 描述 | 输入/输出 | 交互关系 | 实现文件 |
---|---|---|---|---|
收入统计 | 统计平台收入 | 输入:时间范围 输出:收入数据 | 在财务管理页查看 | admin-finance.html |
支出统计 | 统计平台支出 | 输入:时间范围 输出:支出数据 | 在财务管理页查看 | admin-finance.html |
技师结算 | 处理技师结算 | 输入:结算信息 输出:结算单 | 在技师结算页操作 | admin-technician-settlement.html |
退款处理 | 处理退款申请 | 输入:退款审核 输出:退款状态 | 在退款管理页操作 | admin-refunds.html |
财务报表 | 生成财务报表 | 输入:报表条件 输出:报表数据 | 在财务报表页查看 | admin-finance-reports.html |
佣金记录查询 | 查询技师佣金记录 | 输入:查询条件 输出:佣金记录 | 在佣金管理页查看 | admin-commission.html |
提现申请审核 | 审核技师提现申请 | 输入:审核结果 输出:审核状态 | 在提现管理页操作 | admin-withdraw.html |
分佣比例设置 | 设置技师分佣比例 | 输入:技师等级、比例 输出:设置结果 | 在分佣设置页操作 | admin-commission-settings.html |
4. 数据模型
4.1 用户数据
- 用户ID
- 用户名
- 联系方式
- 地址信息
- 账户信息
- 注册时间
- 最后登录时间
4.2 技师数据
- 技师ID
- 姓名
- 联系方式
- 专业技能
- 工作经验
- 评分
- 完成订单数
- 账户信息
- 状态(空闲/忙碌)
4.3 订单数据
- 订单号
- 用户ID
- 服务类型
- 预约时间
- 服务地址
- 联系方式
- 订单状态
- 订单金额
- 支付状态
- 技师ID(如已分配)
- 创建时间
- 支付时间
- 完成时间
- 备注信息
- 技师接单状态
- 维修状态
- 照片记录
- 评价信息
4.4 服务数据
- 服务ID
- 服务名称
- 服务分类
- 服务描述
- 服务价格
- 服务图片
- 状态(上架/下架)
4.5 配件数据
- 配件ID
- 配件名称
- 配件型号
- 品牌
- 价格
- 库存
- 分类
- 描述
- 图片
4.6 产品品牌数据
- 品牌ID
- 品牌名称
- 品牌Logo
- 创建时间
4.7 产品型号数据
- 型号ID
- 型号名称
- 品牌ID
- 分类ID
- 发布年份
- 描述
- 图片
- 创建时间
4.8 配件兼容性数据
- ID
- 配件ID
- 型号ID
- 是否原厂
- 价格调整
- 备注
4.9 评价数据
- 评价ID
- 订单ID
- 用户ID
- 技师ID
- 评分
- 评价内容
- 评价时间
- 图片
- 回复内容
- 回复时间
4.10 佣金记录数据
- 佣金ID
- 订单号
- 技师ID
- 订单金额
- 分佣比例
- 分佣金额
- 状态(已结算/未结算)
- 创建时间
- 结算时间
- 操作人ID
- 备注
4.11 提现记录数据
- 提现ID
- 技师ID
- 提现金额
- 银行账户
- 银行名称
- 账户名称
- 状态(申请中/已完成/已拒绝)
- 申请时间
- 处理时间
- 操作人ID
- 备注
4.12 数据模型详细表格
表4-1:用户数据表设计
字段名 | 数据类型 | 描述 | 约束 | 示例值 |
---|---|---|---|---|
userId | String | 用户唯一标识 | 主键 | “U10001” |
username | String | 用户名 | 非空 | “张三” |
phone | String | 手机号码 | 非空,唯一 | “13800138000” |
String | 电子邮箱 | 可选,唯一 | “zhangsan@example.com” | |
password | String | 密码(加密存储) | 非空 | “********” |
addresses | Array | 地址列表 | 可选 | [{…}] |
balance | Number | 账户余额 | 默认0 | 100.00 |
registerTime | DateTime | 注册时间 | 非空 | “2023-01-01 10:00:00” |
lastLoginTime | DateTime | 最后登录时间 | 可选 | “2023-01-10 15:30:00” |
status | Integer | 账户状态 | 非空 | 1 (正常) |
avatar | String | 头像URL | 可选 | “https://example.com/avatar.jpg” |
表4-2:技师数据表设计
字段名 | 数据类型 | 描述 | 约束 | 示例值 |
---|---|---|---|---|
technicianId | String | 技师唯一标识 | 主键 | “T10001” |
name | String | 姓名 | 非空 | “李四” |
phone | String | 手机号码 | 非空,唯一 | “13900139000” |
idCard | String | 身份证号 | 非空,唯一 | “110101199001010011” |
skills | Array | 专业技能列表 | 非空 | [“空调维修”, “冰箱维修”] |
experience | Integer | 工作经验(年) | 非空 | 5 |
rating | Number | 评分 | 默认5.0 | 4.8 |
orderCount | Integer | 完成订单数 | 默认0 | 120 |
balance | Number | 账户余额 | 默认0 | 5000.00 |
frozen_balance | Number | 冻结余额 | 默认0 | 100.00 |
commission_rate | Number | 分佣比例 | 默认0.7 | 0.7 |
status | Integer | 状态 | 非空 | 1 (空闲) |
location | Object | 当前位置 | 可选 | {“lat”: 39.9, “lng”: 116.3} |
registerTime | DateTime | 注册时间 | 非空 | “2023-01-01 10:00:00” |
certifications | Array | 认证信息 | 可选 | [{…}] |
表4-3:订单数据表设计
字段名 | 数据类型 | 描述 | 约束 | 示例值 |
---|---|---|---|---|
orderNumber | String | 订单号 | 主键 | “O202301010001” |
userId | String | 用户ID | 外键 | “U10001” |
serviceName | String | 服务类型 | 非空 | “空调维修” |
appointmentTime | DateTime | 预约时间 | 非空 | “2023-01-15 14:00:00” |
address | String | 服务地址 | 非空 | “北京市海淀区中关村大街1号” |
contact | String | 联系人 | 非空 | “张三” |
phone | String | 联系电话 | 非空 | “13800138000” |
status | String | 订单状态 | 非空 | “待服务” |
amount | Number | 订单金额 | 非空 | 200.00 |
payStatus | Integer | 支付状态 | 非空 | 1 (已支付) |
technicianId | String | 技师ID | 外键,可选 | “T10001” |
technicianAccepted | Boolean | 技师是否接单 | 默认false | true |
technicianRejected | Boolean | 技师是否拒单 | 默认false | false |
rejectReason | String | 拒单原因 | 可选 | “技能不匹配” |
createTime | DateTime | 创建时间 | 非空 | “2023-01-10 10:00:00” |
payTime | DateTime | 支付时间 | 可选 | “2023-01-10 10:05:00” |
completeTime | DateTime | 完成时间 | 可选 | “2023-01-15 15:30:00” |
remarks | String | 备注信息 | 可选 | “空调不制冷” |
repairStatus | String | 维修状态 | 可选 | “维修完成,待收款” |
photos | Array | 照片记录 | 可选 | [{…}] |
review | Object | 评价信息 | 可选 | {…} |
表4-4:服务数据表设计
字段名 | 数据类型 | 描述 | 约束 | 示例值 |
---|---|---|---|---|
serviceId | String | 服务ID | 主键 | “S10001” |
serviceName | String | 服务名称 | 非空 | “空调维修” |
categoryId | String | 分类ID | 外键 | “C001” |
description | String | 服务描述 | 非空 | “专业空调维修服务…” |
basePrice | Number | 基础价格 | 非空 | 100.00 |
imageUrl | String | 服务图片URL | 可选 | “https://example.com/ac-repair.jpg” |
status | Integer | 状态 | 非空 | 1 (上架) |
createTime | DateTime | 创建时间 | 非空 | “2023-01-01 10:00:00” |
updateTime | DateTime | 更新时间 | 非空 | “2023-01-05 15:00:00” |
tags | Array | 标签 | 可选 | [“急修”, “保修”] |
表4-5:配件数据表设计
字段名 | 数据类型 | 描述 | 约束 | 示例值 |
---|---|---|---|---|
partId | String | 配件ID | 主键 | “P10001” |
partName | String | 配件名称 | 非空 | “空调压缩机” |
model | String | 配件型号 | 非空 | “KFR-35GW” |
brand | String | 品牌 | 非空 | “格力” |
price | Number | 价格 | 非空 | 800.00 |
stock | Integer | 库存 | 非空 | 50 |
categoryId | String | 分类ID | 外键 | “PC001” |
description | String | 描述 | 可选 | “适用于格力1.5匹空调…” |
imageUrl | String | 图片URL | 可选 | “https://example.com/part.jpg” |
createTime | DateTime | 创建时间 | 非空 | “2023-01-01 10:00:00” |
updateTime | DateTime | 更新时间 | 非空 | “2023-01-05 15:00:00” |
表4-6:产品品牌数据表设计
字段名 | 数据类型 | 描述 | 约束 | 示例值 |
---|---|---|---|---|
brandId | String | 品牌ID | 主键 | “B001” |
brandName | String | 品牌名称 | 非空 | “格力” |
logoUrl | String | 品牌Logo URL | 可选 | “https://example.com/brand-gree.jpg” |
createTime | DateTime | 创建时间 | 非空 | “2023-01-01 10:00:00” |
表4-7:产品型号数据表设计
字段名 | 数据类型 | 描述 | 约束 | 示例值 |
---|---|---|---|---|
modelId | String | 型号ID | 主键 | “M001” |
modelName | String | 型号名称 | 非空 | “格力KFR-35GW” |
brandId | String | 品牌ID | 外键,非空 | “B001” |
categoryId | String | 分类ID | 外键,非空 | “C003” |
releaseYear | Integer | 发布年份 | 可选 | 2020 |
description | String | 描述 | 可选 | “格力1.5匹变频空调” |
imageUrl | String | 图片URL | 可选 | “https://example.com/model-gree-kfr35.jpg” |
createTime | DateTime | 创建时间 | 非空 | “2023-01-01 10:00:00” |
表4-8:配件兼容性数据表设计
字段名 | 数据类型 | 描述 | 约束 | 示例值 |
---|---|---|---|---|
id | Integer | 自增ID | 主键 | 1 |
partId | String | 配件ID | 外键,非空 | “P10001” |
modelId | String | 型号ID | 外键,非空 | “M001” |
isOriginal | Boolean | 是否原厂配件 | 默认false | true |
priceAdjustment | Number | 价格调整 | 默认0 | 0.00 |
notes | String | 备注 | 可选 | “原厂配件,完全兼容” |
表4-9:评价数据表设计
字段名 | 数据类型 | 描述 | 约束 | 示例值 |
---|---|---|---|---|
reviewId | String | 评价ID | 主键 | “R10001” |
orderNumber | String | 订单号 | 外键 | “O202301010001” |
userId | String | 用户ID | 外键 | “U10001” |
technicianId | String | 技师ID | 外键 | “T10001” |
rating | Number | 评分 | 非空,1-5 | 4.5 |
content | String | 评价内容 | 可选 | “服务很专业,态度很好” |
reviewTime | DateTime | 评价时间 | 非空 | “2023-01-16 10:00:00” |
photos | Array | 图片URL列表 | 可选 | [“https://example.com/review1.jpg”] |
replyContent | String | 回复内容 | 可选 | “感谢您的评价” |
replyTime | DateTime | 回复时间 | 可选 | “2023-01-16 15:00:00” |
isAnonymous | Boolean | 是否匿名 | 默认false | false |
表4-10:佣金记录数据表设计
字段名 | 数据类型 | 描述 | 约束 | 示例值 |
---|---|---|---|---|
commission_id | String | 佣金ID | 主键 | “CM20230115000001” |
order_number | String | 订单号 | 外键 | “O202301010001” |
technician_id | String | 技师ID | 外键 | “T10001” |
order_amount | Number | 订单金额 | 非空 | 200.00 |
commission_rate | Number | 分佣比例 | 非空 | 0.7 |
commission_amount | Number | 分佣金额 | 非空 | 140.00 |
status | Integer | 状态 | 非空 | 1 (已结算) |
create_time | DateTime | 创建时间 | 非空 | “2023-01-15 16:00:00” |
settle_time | DateTime | 结算时间 | 可选 | “2023-01-15 16:00:00” |
operator_id | String | 操作人ID | 可选 | “A10001” |
remarks | String | 备注 | 可选 | “订单完成自动结算” |
表4-11:提现记录数据表设计
字段名 | 数据类型 | 描述 | 约束 | 示例值 |
---|---|---|---|---|
withdraw_id | String | 提现ID | 主键 | “WD20230116000001” |
technician_id | String | 技师ID | 外键 | “T10001” |
amount | Number | 提现金额 | 非空 | 100.00 |
bank_account | String | 银行账户 | 非空 | “6222021234567890123” |
bank_name | String | 银行名称 | 非空 | “中国工商银行” |
account_name | String | 账户名称 | 非空 | “张三” |
status | Integer | 状态 | 非空 | 0 (申请中) |
apply_time | DateTime | 申请时间 | 非空 | “2023-01-16 10:00:00” |
process_time | DateTime | 处理时间 | 可选 | null |
operator_id | String | 操作人ID | 可选 | null |
remarks | String | 备注 | 可选 | “月度提现” |
5. 接口设计
5.1 用户接口
- 用户注册/登录
- 用户信息获取/更新
- 地址管理
- 密码修改
5.2 订单接口
- 创建订单
- 获取订单列表
- 获取订单详情
- 取消订单
- 支付订单
- 评价订单
- 申请售后/退款
5.3 技师接口
- 技师登录
- 获取待处理订单
- 接受/拒绝订单
- 开始服务
- 提交维修评估
- 提交报价
- 上传照片
- 完成服务
- 确认收款
- 获取收入记录
- 申请提现
- 获取提现记录
5.4 派单接口
- 获取可用技师列表
- 获取AI推荐技师
- 确认派单
5.5 配件接口
- 获取配件列表
- 获取配件详情
- 配件搜索
- 配件识别
5.6 支付接口
- 创建支付订单
- 查询支付状态
- 退款申请
- 退款查询
5.7 佣金与提现接口
- 计算订单分佣
- 获取技师收入记录
- 申请提现
- 获取提现记录
- 获取分佣记录列表(管理员)
- 获取提现申请列表(管理员)
- 处理提现申请(管理员)
5.8 接口详细表格
表5-1:用户接口详细设计
接口名称 | 请求方式 | 接口路径 | 请求参数 | 返回数据 | 描述 |
---|---|---|---|---|---|
用户注册 | POST | /api/user/register | username, phone, password, email(可选) | userId, token | 用户注册并返回登录凭证 |
用户登录 | POST | /api/user/login | phone/email, password | userId, token, userInfo | 用户登录并返回用户信息 |
获取用户信息 | GET | /api/user/info | token | userInfo | 获取当前登录用户信息 |
更新用户信息 | PUT | /api/user/info | token, userInfo | 更新结果 | 更新用户基本信息 |
添加地址 | POST | /api/user/address | token, addressInfo | addressId | 添加新的收货地址 |
获取地址列表 | GET | /api/user/addresses | token | addresses[] | 获取用户所有地址 |
修改密码 | PUT | /api/user/password | token, oldPassword, newPassword | 更新结果 | 修改用户密码 |
退出登录 | POST | /api/user/logout | token | 退出结果 | 用户退出登录 |
表5-2:订单接口详细设计
接口名称 | 请求方式 | 接口路径 | 请求参数 | 返回数据 | 描述 |
---|---|---|---|---|---|
创建订单 | POST | /api/order/create | token, serviceId, addressId, appointmentTime, remarks | orderNumber | 创建新订单 |
获取订单列表 | GET | /api/order/list | token, status(可选), page, pageSize | orders[], total | 获取用户订单列表 |
获取订单详情 | GET | /api/order/detail | token, orderNumber | orderDetail | 获取订单详细信息 |
取消订单 | PUT | /api/order/cancel | token, orderNumber, reason | 取消结果 | 取消未开始的订单 |
支付订单 | POST | /api/order/pay | token, orderNumber, payMethod | 支付结果 | 支付订单 |
评价订单 | POST | /api/order/review | token, orderNumber, rating, content, photos | 评价结果 | 对已完成订单评价 |
申请售后 | POST | /api/order/after-sale | token, orderNumber, type, reason | 申请结果 | 申请售后服务 |
申请退款 | POST | /api/order/refund | token, orderNumber, reason, amount | 申请结果 | 申请订单退款 |
表5-3:技师接口详细设计
接口名称 | 请求方式 | 接口路径 | 请求参数 | 返回数据 | 描述 |
---|---|---|---|---|---|
技师登录 | POST | /api/technician/login | phone, password | technicianId, token | 技师登录 |
获取待处理订单 | GET | /api/technician/pending-orders | token, status | orders[] | 获取待处理订单 |
接受订单 | PUT | /api/technician/accept-order | token, orderNumber | 接受结果 | 接受分配的订单 |
拒绝订单 | PUT | /api/technician/reject-order | token, orderNumber, reason | 拒绝结果 | 拒绝分配的订单 |
开始服务 | PUT | /api/technician/start-service | token, orderNumber | 开始结果 | 开始提供服务 |
提交维修评估 | POST | /api/technician/assessment | token, orderNumber, assessmentInfo | 提交结果 | 提交现场评估结果 |
提交报价 | POST | /api/technician/quote | token, orderNumber, quoteInfo | 提交结果 | 提交维修报价 |
上传照片 | POST | /api/technician/upload-photo | token, orderNumber, photoType, photo | 上传结果 | 上传维修相关照片 |
完成服务 | PUT | /api/technician/complete-service | token, orderNumber, serviceInfo | 完成结果 | 标记服务完成 |
确认收款 | PUT | /api/technician/confirm-payment | token, orderNumber, amount | 确认结果 | 确认收到客户付款 |
表5-4:派单接口详细设计
接口名称 | 请求方式 | 接口路径 | 请求参数 | 返回数据 | 描述 |
---|---|---|---|---|---|
获取可用技师列表 | GET | /api/dispatch/available-technicians | token, serviceId, location | technicians[] | 获取可用技师列表 |
获取AI推荐技师 | GET | /api/dispatch/recommend-technicians | token, orderNumber | technicians[] | 获取AI推荐技师 |
确认派单 | POST | /api/dispatch/assign | token, orderNumber, technicianId, remarks | 派单结果 | 确认将订单分配给技师 |
获取派单历史 | GET | /api/dispatch/history | token, page, pageSize | dispatchRecords[] | 获取派单历史记录 |
重新派单 | PUT | /api/dispatch/reassign | token, orderNumber, technicianId | 派单结果 | 重新分配订单给其他技师 |
表5-5:配件接口详细设计
接口名称 | 请求方式 | 接口路径 | 请求参数 | 返回数据 | 描述 |
---|---|---|---|---|---|
获取配件列表 | GET | /api/part/list | categoryId(可选), page, pageSize | parts[], total | 获取配件列表 |
获取配件详情 | GET | /api/part/detail | partId | partDetail | 获取配件详细信息 |
配件搜索 | GET | /api/part/search | keyword, page, pageSize | parts[], total | 搜索配件 |
配件识别 | POST | /api/part/identify | photo | identifiedParts[] | AI识别配件信息 |
获取配件分类 | GET | /api/part/categories | - | categories[] | 获取配件分类列表 |
检查配件库存 | GET | /api/part/stock | partId | stockInfo | 检查配件库存状态 |
表5-6:支付接口详细设计
接口名称 | 请求方式 | 接口路径 | 请求参数 | 返回数据 | 描述 |
---|---|---|---|---|---|
创建支付订单 | POST | /api/payment/create | token, orderNumber, payMethod | paymentInfo | 创建支付订单 |
查询支付状态 | GET | /api/payment/status | token, paymentId | paymentStatus | 查询支付状态 |
退款申请 | POST | /api/payment/refund | token, orderNumber, amount, reason | refundInfo | 申请退款 |
退款查询 | GET | /api/payment/refund-status | token, refundId | refundStatus | 查询退款状态 |
获取支付方式 | GET | /api/payment/methods | - | paymentMethods[] | 获取可用支付方式 |
获取支付记录 | GET | /api/payment/records | token, orderNumber | paymentRecords[] | 获取订单支付记录 |
表5-7:佣金与提现接口详细设计
接口名称 | 请求方式 | 接口路径 | 请求参数 | 返回数据 | 描述 |
---|---|---|---|---|---|
计算订单分佣 | POST | /api/commission/calculate | token, orderNumber, operatorId | commissionInfo | 计算订单的技师分佣 |
获取技师收入记录 | GET | /api/technician/commission-records | token, technicianId, startDate(可选), endDate(可选), page, pageSize | records[], statistics | 获取技师收入记录 |
申请提现 | POST | /api/technician/apply-withdraw | token, technicianId, amount, bankAccount, bankName, accountName, remarks(可选) | withdrawInfo | 技师申请提现 |
获取提现记录 | GET | /api/technician/withdraw-records | token, technicianId, status(可选), page, pageSize | records[], balanceInfo | 获取技师提现记录 |
获取分佣记录列表 | GET | /api/admin/commission-list | token, technicianId(可选), orderNumber(可选), startDate(可选), endDate(可选), page, pageSize | records[], statistics | 管理员获取分佣记录 |
获取提现申请列表 | GET | /api/admin/withdraw-list | token, status(可选), technicianId(可选), startDate(可选), endDate(可选), page, pageSize | records[], statistics | 管理员获取提现申请 |
处理提现申请 | PUT | /api/admin/process-withdraw | token, withdrawId, action, operatorId, remarks(可选) | processResult | 管理员处理提现申请 |
6. 前端技术实现
6.1 页面结构
- HTML5 语义化标签
- 响应式设计
- 移动端优先
6.2 样式实现
- CSS3 样式
- Font Awesome 图标
6.3 交互实现
- 原生 JavaScript
- 表单验证
- 动态内容加载
- 状态管理
6.4 特殊功能
- 照片上传预览
- 进度条展示
- 步骤引导
- 模态窗口
- 下拉刷新/上拉加载
7. 安全性考虑
7.1 用户认证
- 登录验证
- 会话管理
- 权限控制
7.2 数据安全
- 敏感信息加密
- XSS 防护
- CSRF 防护
- 输入验证
7.3 支付安全
- 支付信息加密
- 支付验证
- 异常交易监控
8. 性能优化
8.1 前端优化
- 资源压缩
- 懒加载
- 缓存策略
- 代码分割
8.2 后端优化
- 数据库索引
- 查询优化
- 缓存机制
- 负载均衡
9. 扩展性考虑
9.1 功能扩展
- 多语言支持
- 多地区支持
- 新服务类型接入
- 营销活动支持
9.2 技术扩展
- API 版本控制
- 微服务架构
- 容器化部署
- 云服务集成
10. 待实现功能
10.1 用户管理与认证
- 实名认证功能:集成身份核验API,实现用户和技师的实名认证
- AI照片还原与验证:借鉴"到位"的AI照片验证功能,确保技师照片真实性
- 多阶段严格的服务商审核流程:完善技师审核流程,包括自动化检查和人工审核
- 密码加密存储:实现安全的密码加密机制,保护用户账户安全
10.2 服务发现与预订
- AI匹配引擎:根据用户需求、偏好、历史行为等智能推荐最合适的服务商
- 紧急服务通道:允许用户发布加急需求,优先匹配附近可快速响应的服务商
- 服务套餐与订阅服务:支持创建和购买服务套餐(如"全年空调清洗套餐")和订阅服务
- 动态定价模型:基于供需关系、服务商评分、忙闲时段的动态定价
10.3 沟通与互动
- 平台内即时通讯功能:完善用户与服务商之间的文字、图片、语音沟通功能
- 视频通话或屏幕共享功能:用于复杂服务勘察或远程指导场景
10.4 支付与结算
- 托管支付模式:用户支付后资金暂由平台保管,服务完成后再结算给服务商
- 先享后付模式:基于平台信用分体系的先享后付功能
- 分期付款选项:对于高金额订单,提供分期付款选项
10.5 创新与增值功能
- 主动家庭维护提醒:允许用户创建"家庭档案",系统根据规则或AI分析推送维护建议
- 智能家居服务集成:提供智能设备安装、调试、故障排除等服务,与智能家居平台API集成
- 服务商协作工具:为服务商团队提供成员管理、任务分配、内部沟通功能
10.6 安全性
- HTTPS加密传输:确保所有敏感数据在传输过程中使用HTTPS加密
- 敏感数据加密存储:敏感数据在存储时进行加密或脱敏处理
- 防范Web攻击:实现防范XSS、CSRF、SQL注入等常见Web攻击的机制
- 基于角色的访问控制:实现严格的RBAC权限控制系统
10.7 管理后台功能
- 可视化仪表盘:展示平台核心运营指标的仪表盘
- 争议解决中心:建立标准化流程处理用户与服务商之间的纠纷
- 地图视图:可视化查看服务商地理位置分布
10.8 其他功能
- 多语言支持:为未来国际市场扩展做准备
- 无障碍设计:考虑特殊用户群体的需求
- API安全设计:API接口的安全设计和访问控制
10.9 待实现功能详细表格
表10-1:用户管理与认证功能详细设计
功能点 | 描述 | 实现方式 | 优先级 | 预计工作量 |
---|---|---|---|---|
实名认证功能 | 集成身份核验API,实现用户和技师的实名认证 | 接入第三方身份验证服务,支持身份证OCR识别和人脸比对 | 高 | 中 |
AI照片还原与验证 | 确保技师照片真实性,防止欺诈 | 使用AI技术分析照片真实性,检测PS痕迹 | 中 | 中 |
多阶段服务商审核 | 完善技师审核流程,包括自动化检查和人工审核 | 设计审核工作流,包括资质审核、背景调查、技能测试等环节 | 高 | 高 |
密码加密存储 | 实现安全的密码加密机制 | 使用bcrypt或PBKDF2等算法加密存储密码 | 高 | 低 |
表10-2:服务发现与预订功能详细设计
功能点 | 描述 | 实现方式 | 优先级 | 预计工作量 |
---|---|---|---|---|
AI匹配引擎 | 智能推荐最合适的服务商 | 基于机器学习算法,考虑用户偏好、技师评分、距离等多维度因素 | 中 | 高 |
紧急服务通道 | 优先匹配可快速响应的服务商 | 设计紧急订单流程,提供加急费用选项,优先派单机制 | 高 | 中 |
服务套餐与订阅 | 支持服务套餐和订阅服务 | 开发套餐管理系统,支持定期自动下单 | 中 | 中 |
动态定价模型 | 基于供需关系的动态定价 | 开发价格调整算法,根据高峰期、技师评分等因素动态调整价格 | 低 | 高 |
表10-3:沟通与互动功能详细设计
功能点 | 描述 | 实现方式 | 优先级 | 预计工作量 |
---|---|---|---|---|
平台内即时通讯 | 用户与服务商之间的沟通功能 | 集成WebSocket技术,支持文字、图片、语音消息 | 高 | 中 |
视频通话功能 | 用于复杂服务勘察或远程指导 | 集成WebRTC技术,支持一对一视频通话 | 低 | 高 |
表10-4:支付与结算功能详细设计
功能点 | 描述 | 实现方式 | 优先级 | 预计工作量 |
---|---|---|---|---|
托管支付模式 | 资金暂由平台保管,服务完成后再结算 | 开发资金托管系统,设计资金流转规则 | 高 | 中 |
先享后付模式 | 基于信用分体系的先享后付 | 开发用户信用评分系统,设计风控规则 | 低 | 高 |
分期付款选项 | 高金额订单的分期付款 | 接入第三方金融服务或自建分期系统 | 低 | 中 |
表10-5:创新与增值功能详细设计
功能点 | 描述 | 实现方式 | 优先级 | 预计工作量 |
---|---|---|---|---|
主动家庭维护提醒 | 系统推送维护建议 | 开发家庭档案系统,设计维护规则引擎 | 中 | 高 |
智能家居服务集成 | 与智能家居平台API集成 | 接入主流智能家居平台API,开发服务接口 | 低 | 高 |
服务商协作工具 | 团队成员管理、任务分配 | 开发团队协作模块,支持任务分配和进度跟踪 | 中 | 中 |
表10-6:安全性功能详细设计
功能点 | 描述 | 实现方式 | 优先级 | 预计工作量 |
---|---|---|---|---|
HTTPS加密传输 | 确保数据传输安全 | 配置SSL证书,强制HTTPS访问 | 高 | 低 |
敏感数据加密存储 | 保护用户隐私数据 | 使用AES等算法加密存储敏感信息 | 高 | 中 |
防范Web攻击 | 防范XSS、CSRF等攻击 | 实现输入验证、输出编码、CSRF令牌等安全措施 | 高 | 中 |
基于角色的访问控制 | 实现RBAC权限控制 | 设计权限模型,实现细粒度的权限控制 | 高 | 中 |
表10-7:管理后台功能详细设计
功能点 | 描述 | 实现方式 | 优先级 | 预计工作量 |
---|---|---|---|---|
可视化仪表盘 | 展示平台核心运营指标 | 使用图表库开发数据可视化界面,支持多维度数据展示 | 高 | 中 |
争议解决中心 | 处理用户与服务商之间的纠纷 | 开发争议处理工作流,支持证据上传、多方沟通、仲裁决定 | 中 | 高 |
地图视图 | 可视化查看服务商地理位置分布 | 集成地图API,实现技师位置实时展示和热力图分析 | 低 | 中 |
表10-8:其他功能详细设计
功能点 | 描述 | 实现方式 | 优先级 | 预计工作量 |
---|---|---|---|---|
多语言支持 | 为国际市场扩展做准备 | 实现i18n国际化框架,支持多语言切换 | 低 | 中 |
无障碍设计 | 考虑特殊用户群体的需求 | 遵循WCAG标准,实现屏幕阅读器支持、键盘导航等 | 低 | 中 |
API安全设计 | API接口的安全设计和访问控制 | 实现API认证、授权、限流、日志记录等安全措施 | 高 | 中 |
11. 未来规划
11.1 功能增强
- 智能派单算法优化
- 配件识别准确率提升
- 用户画像分析
- 个性化推荐
11.2 业务拓展
- 企业用户服务
- 定期维护服务
- 保险合作服务
- 社区服务平台