## 任务描述

实现订单历史记录的后端功能，包括：
1. 在关键操作点添加审计日志记录
2. 实现订单历史记录查询 API
3. 添加数据库索引优化性能

## 参考文档

- **技术规格**: `SPEC.md`
- **API 文档**: `API.md`

## 需要修改的文件

### 1. 添加审计日志记录

**文件**: `backend/app/services/order_service.py`

需要在以下方法中添加审计日志：

#### `reject_item_cannot_purchase()` 方法
- 位置：第 1344 行
- 添加审计日志记录价格调整操作
- action_type 根据 reason 区分：
  - `price_mismatch` → `propose_price_change`
  - `out_of_stock` → `reject_item_out_of_stock`
  - `prohibited` → `reject_item_prohibited`
  - `fake_goods` → `reject_item_fake_goods`

#### `confirm_proposed_price()` 方法
- 添加审计日志记录用户确认价格
- action_type: `confirm_price_change`

#### `reject_proposed_price()` 方法
- 添加审计日志记录用户拒绝价格
- action_type: `reject_price_change`

**示例代码**:
```python
from app.services.audit_service import AuditService
import json

# 在 reject_item_cannot_purchase 方法中
if reason == "price_mismatch":
    # ... 现有逻辑 ...
    
    # 添加审计日志
    AuditService.log_action(
        db=db,
        admin_id=partner_id,
        action_type="propose_price_change",
        target_type="order",
        target_id=str(order.id),
        description=f"合伙人提出价格调整：¥{item.unit_price_cny} → ¥{proposed_price_cny}",
        extra_data=json.dumps({
            "old_price_cny": float(item.unit_price_cny),
            "new_price_cny": proposed_price_cny,
            "reason": reason,
            "note": note,
            "item_id": item_id
        })
    )
```

### 2. 实现历史记录查询 API

**文件**: `backend/app/api/routes/orders.py`

添加新端点 `GET /api/v1/orders/{order_id}/history`，详见 API.md 文档。

### 3. 添加数据库索引

**文件**: `backend/migrations/add_audit_log_index.py`（新建）

创建索引：`CREATE INDEX idx_audit_target ON audit_logs(target_type, target_id, created_at DESC)`

## 完成标准

- [ ] 所有价格调整相关操作都记录审计日志
- [ ] 历史记录 API 返回正确格式的数据
- [ ] 权限验证正确（客户只能看自己的订单）
- [ ] 数据库索引已添加
- [ ] 审计日志记录失败不影响主业务流程（使用 try-catch）
- [ ] 代码符合项目规范（使用 logger，不使用 print）

## 测试要点

1. 测试价格调整流程：合伙人标记价格不匹配 → 用户确认/拒绝 → 验证审计日志
2. 测试历史记录 API：权限验证、分页功能
3. 测试性能：查询响应时间 < 500ms

## 注意事项

1. **不要破坏现有功能**：审计日志记录使用 try-catch 包裹
2. **使用现有服务**：使用 `AuditService.log_action()`
3. **日志格式**：使用 `logger` 而不是 `print()`
4. **JSON 序列化**：extra_data 必须是有效的 JSON 字符串
