153 lines
3.6 KiB
Markdown
153 lines
3.6 KiB
Markdown
# ✅ 家长端查看服务记录功能实现完成
|
||
|
||
**实施时间**: 2026-01-23
|
||
**功能描述**: 家长在订单详情页面查看陪伴员的打卡记录(签到/签退照片、时间、地点、服务时长)
|
||
|
||
---
|
||
|
||
## 📋 已完成的工作
|
||
|
||
### 1. 数据库修改 ✅
|
||
|
||
**SQL文件**: `peidu/sql/add_order_id_to_checkin_simple.sql`
|
||
|
||
**修改内容**:
|
||
- 为 `check_in_record` 表添加 `order_id` 字段
|
||
- 添加索引 `idx_order_id`
|
||
- 关联现有数据的 `order_id`
|
||
|
||
---
|
||
|
||
### 2. 后端修改 ✅
|
||
|
||
#### OrderDetailVO.java
|
||
- 新增 `CheckInRecordVO` 内部类
|
||
- 新增 `checkInRecord` 和 `checkOutRecord` 字段
|
||
- 新增 `serviceDuration` 和 `serviceDurationText` 字段
|
||
|
||
#### OrderServiceImpl.java
|
||
- 修改 `getOrderDetailFull()` 方法
|
||
- 查询订单的签到签退记录
|
||
- 计算服务时长
|
||
- 返回完整的打卡记录信息
|
||
|
||
---
|
||
|
||
### 3. 前端修改 ✅
|
||
|
||
**文件**: `peidu/uniapp/src/order-package/pages/order/detail.vue`
|
||
|
||
**新增内容**:
|
||
1. 数据字段: `checkInRecord`, `checkOutRecord`, `serviceDuration`
|
||
2. 服务记录显示区域(签到/签退卡片、服务时长)
|
||
3. `previewPhoto()` 方法 - 预览照片
|
||
4. `formatTime()` 方法 - 格式化时间
|
||
5. 完整的服务记录样式
|
||
|
||
---
|
||
|
||
## 🧪 执行步骤
|
||
|
||
### 步骤 1: 执行数据库脚本
|
||
|
||
在 **Navicat** 中打开 `peidu/sql/add_order_id_to_checkin_simple.sql`
|
||
|
||
**逐条执行以下SQL**(不要一次性全部执行):
|
||
|
||
```sql
|
||
-- 1. 添加字段
|
||
ALTER TABLE check_in_record
|
||
ADD COLUMN order_id BIGINT NULL COMMENT '订单ID' AFTER work_order_no;
|
||
|
||
-- 2. 添加索引
|
||
ALTER TABLE check_in_record
|
||
ADD INDEX idx_order_id (order_id);
|
||
|
||
-- 3. 验证字段
|
||
DESC check_in_record;
|
||
|
||
-- 4. 关联数据
|
||
UPDATE check_in_record c
|
||
INNER JOIN `order` o ON c.work_order_no = o.order_no
|
||
SET c.order_id = o.id
|
||
WHERE c.order_id IS NULL AND c.work_order_no IS NOT NULL;
|
||
|
||
-- 5. 验证数据
|
||
SELECT * FROM check_in_record WHERE order_id IS NOT NULL LIMIT 10;
|
||
```
|
||
|
||
**注意**: 如果字段已存在会报错,但不影响功能,可以跳过第1步。
|
||
|
||
---
|
||
|
||
### 步骤 2: 重新编译后端
|
||
|
||
```bash
|
||
cd peidu/backend
|
||
mvn clean package -DskipTests
|
||
```
|
||
|
||
---
|
||
|
||
### 步骤 3: 重新编译前端
|
||
|
||
```bash
|
||
cd peidu/uniapp
|
||
npm run build:mp-weixin
|
||
```
|
||
|
||
---
|
||
|
||
### 步骤 4: 测试功能
|
||
|
||
#### 测试场景: 查看已完成订单的服务记录
|
||
|
||
1. 家长端登录
|
||
2. 进入"我的订单"
|
||
3. 选择一个已完成的订单(有签到签退记录)
|
||
4. 查看订单详情
|
||
|
||
**预期结果**:
|
||
- ✅ 显示"服务记录"区域
|
||
- ✅ 显示签到信息(时间、地点、照片)
|
||
- ✅ 显示签退信息(时间、地点、照片)
|
||
- ✅ 显示服务时长(如"2小时30分钟")
|
||
- ✅ 点击照片可以预览大图
|
||
|
||
---
|
||
|
||
## 📊 功能特点
|
||
|
||
### 与陪伴员端日历的区别
|
||
|
||
| 对比项 | 家长端订单详情 | 陪伴员端日历 |
|
||
|--------|----------------|--------------|
|
||
| 入口 | 订单详情页面 | 日历页面 |
|
||
| 展示 | 单个订单的打卡记录 | 按日期展示所有打卡 |
|
||
| 功能 | 查看服务记录 | 查看和管理打卡 |
|
||
|
||
---
|
||
|
||
## ✅ 完成清单
|
||
|
||
- [x] 创建简化版SQL脚本(适用于Navicat)
|
||
- [x] 后端VO添加打卡记录字段
|
||
- [x] 后端服务层返回打卡记录
|
||
- [x] 前端显示服务记录区域
|
||
- [x] 前端添加照片预览功能
|
||
- [x] 前端添加时间格式化
|
||
- [x] 前端添加完整样式
|
||
|
||
---
|
||
|
||
## 📝 重要提示
|
||
|
||
1. **SQL执行**: 请在Navicat中逐条执行SQL,不要一次性全部执行
|
||
2. **字段检查**: 执行前先用 `DESC check_in_record;` 检查字段是否已存在
|
||
3. **数据关联**: 确保现有打卡记录正确关联到订单
|
||
4. **编译顺序**: 先编译后端,再编译前端
|
||
|
||
---
|
||
|
||
**实施完成**: 2026-01-23
|