# 无状态会员管理 - 切换无状态会员售卖状态

> 模块标识：statelessMember  |  接口数量：7

## 接口说明
**方法**：	PUT

**路径**：				/api/stateless-members/{id}/sale-status

**功能说明**：
标记无状态会员为已售出（占用）或回库为未售。用于手动分发、渠道出库等；一卡一卖，已售不可重复标记为已售。

### 请求参数
```json
{
  "body": {
    "saleStatus": "number｜必填，售卖状态：0-未售（回库），1-已售（占用）",
    "orderNo": "string｜可选，关联订单号；标记为已售时可写入 soldOrderNo"
  },
  "path": [
    {
      "name": "id",
      "type": "string",
      "required": true,
      "description": "无状态会员ID（_id 或数字 id）"
    }
  ]
}
```

### 响应示例
```json
{
  "success": {
    "code": "0000",
    "message": "售卖状态更新成功",
    "data": {
      "id": 1,
      "code": "SM0001",
      "name": "开放平台会员",
      "saleStatus": 1,
      "soldAt": "2025-01-15T10:00:00.000Z",
      "soldOrderNo": "ORD-20250115-0010",
      "status": 1,
      "updateTime": "2025-01-15T10:00:00.000Z"
    }
  },
  "failure": {
    "code": "4000",
    "message": "该无状态会员已售出，不可重复售卖",
    "data": null
  },
  "failureNotFound": {
    "code": "4040",
    "message": "无状态会员不存在",
    "data": null
  }
}
```

### 注意事项
- saleStatus=1 时写入 soldAt；可选 orderNo 写入 soldOrderNo
- saleStatus=0 时清除 soldAt、soldOrderNo（回库）
- 已为已售（saleStatus=1）时再次设为 1 会返回：该无状态会员已售出，不可重复售卖
- 售卖状态不影响 OpenAPI 激活/校验；已售卡密在有效期内仍可无限次激活
- 管理端订单（/api/orders）在状态变为 PAID 或 COMPLETED 且带有 statelessMemberId 时，也会自动标记为已售

