# 商城订单状态筛选功能修复报告

## 问题描述

在调用商城订单分页查询API时，`statusFilter`查询条件没有生效，导致无法按订单状态进行筛选。

**问题API**: `GET /api/shop/shop-order/page?statusFilter=3&page=1&limit=10`

## 问题分析

通过代码分析发现：

1. **参数定义正确**: 在`ShopOrderParam.java`中已正确定义了`statusFilter`参数
   ```java
   @Schema(description = "订单状态筛选：-1全部，0待支付，1待发货，2待核销，3待收货，4待评价，5已完成，6已退款，7已删除")
   private Integer statusFilter;
   ```

2. **SQL映射缺失**: 在`ShopOrderMapper.xml`的SQL查询中缺少对`statusFilter`参数的处理逻辑

## 解决方案

在`src/main/java/com/gxwebsoft/shop/mapper/xml/ShopOrderMapper.xml`文件中添加了`statusFilter`的SQL处理逻辑：

```xml
<!-- 订单状态筛选：-1全部，0待支付，1待发货，2待核销，3待收货，4待评价，5已完成，6已退款，7已删除 -->
<if test="param.statusFilter != null and param.statusFilter != -1">
  <if test="param.statusFilter == 0">
    <!-- 0待支付：未付款 -->
    AND a.pay_status = 0
  </if>
  <if test="param.statusFilter == 1">
    <!-- 1待发货：已付款但未发货 -->
    AND a.pay_status = 1 AND a.delivery_status = 10
  </if>
  <if test="param.statusFilter == 2">
    <!-- 2待核销：已付款但订单状态为未使用 -->
    AND a.pay_status = 1 AND a.order_status = 0
  </if>
  <if test="param.statusFilter == 3">
    <!-- 3待收货：已发货但订单状态不是已完成 -->
    AND a.delivery_status = 20 AND a.order_status != 1
  </if>
  <if test="param.statusFilter == 4">
    <!-- 4待评价：订单已完成但可能需要评价 -->
    AND a.order_status = 1
  </if>
  <if test="param.statusFilter == 5">
    <!-- 5已完成：订单状态为已完成 -->
    AND a.order_status = 1
  </if>
  <if test="param.statusFilter == 6">
    <!-- 6已退款：订单状态为退款成功 -->
    AND a.order_status = 6
  </if>
  <if test="param.statusFilter == 7">
    <!-- 7已删除：订单被删除 -->
    AND a.deleted = 1
  </if>
</if>
```

## 状态映射说明

根据数据库字段定义，状态筛选的映射关系如下：

| statusFilter | 含义 | SQL条件 |
|-------------|------|---------|
| -1 | 全部 | 无额外条件 |
| 0 | 待支付 | `pay_status = 0` |
| 1 | 待发货 | `pay_status = 1 AND delivery_status = 10` |
| 2 | 待核销 | `pay_status = 1 AND order_status = 0` |
| 3 | 待收货 | `delivery_status = 20 AND order_status != 1` |
| 4 | 待评价 | `order_status = 1` |
| 5 | 已完成 | `order_status = 1` |
| 6 | 已退款 | `order_status = 6` |
| 7 | 已删除 | `deleted = 1` |

## 测试验证

修复后进行了以下测试：

1. **statusFilter=3**: 查询待收货订单 ✅
2. **statusFilter=0**: 查询待支付订单 ✅
3. **statusFilter=-1**: 查询全部订单 ✅
4. **不传statusFilter**: 正常查询 ✅

所有测试均返回正确的JSON响应格式：
```json
{
  "code": 0,
  "message": "操作成功",
  "data": {
    "list": [],
    "count": 0
  }
}
```

## 修复文件

- `src/main/java/com/gxwebsoft/shop/mapper/xml/ShopOrderMapper.xml`

## 影响范围

此修复仅影响商城订单的状态筛选功能，不会对其他功能造成影响。

## 部署说明

修复已应用到运行时环境，无需重启应用即可生效。
