## 边界业务规则缺陷（Medium）

### 触发信号

在以下代码特征出现时启动此检测：
- 分页/批量操作（`limit`、`offset`、`batch`、`bulk`、`forEach`、`Promise.all`）
- 数量/金额相关的参数处理（`quantity`、`amount`、`price`、`count`）
- 时间窗口判断（`startDate`/`endDate`、`expiresAt`、`validUntil`）
- 集合操作前的空值检查（是否处理了空数组/空列表的情况）

### 判定流程

1. **识别业务关键参数**：`Read` 提取函数参数中与数量、金额、时间相关的变量
2. **检查数量/金额边界**：`Read` 确认是否有以下校验：
   - 下界校验：不允许负数、零值（如 `quantity > 0`、`amount >= minAmount`）
   - 上界校验：限购数量、最大金额、最大批量大小
   - 精度校验：金额是否使用整数分/Decimal 而非浮点数
3. **检查时间窗口**：`Read` 确认时间相关判断是否考虑了：
   - 时区差异（`new Date()` vs `Date.now()` vs UTC）
   - 活动过期校验（是否在处理前校验了当前时间）
4. **检查批量操作上限**：`Read` 确认批量操作是否有：
   - 数量上限限制（`Math.min(requestItems.length, MAX_BATCH)`）
   - 空集合处理（空数组直接返回还是报错）
5. **检查空状态处理**：`Read` 确认集合/列表为空时的业务处理是否符合预期

### 证据构造

确认缺陷后，输出需包含：
- 未校验的边界条件（哪个参数缺少什么校验，含文件:行号）
- 边界值触发场景（具体的输入值如何触发问题）
- 业务影响（负数下单、零元支付、批量全删、过期操作被受理的后果）

### 排除

- 已有独立的参数校验层（DTO validation schema、class-validator、pydantic）
- 由数据库约束保证的边界（NOT NULL、CHECK、UNSIGNED）
- 由前端校验保证的非安全相关参数
