# Checklist - [x] 积分发放使用 `RoundingMode.HALF_UP`(四舍五入),不再使用 `ROUND_CEILING` - [x] `FsStoreOrderComputedParam.preAllocatedIntegral` 类型为 `Integer` - [x] `computedOrders` 中 `preAllocatedIntegrals` 数组类型为 `Integer[]` - [x] `totalIntegral` 使用 `long` 类型,`user.getIntegral()` 使用 `longValue()` 取值 - [x] `totalDeduction` 使用 `BigDecimal.divide` 计算,保留 2 位小数 - [x] 子订单积分分配使用 `BigDecimal` 算术,不出现 `double` 中间运算 - [x] cap 超限后 `allocatedDeductionSum` 和 `allocatedIntegralSum` 使用 cap 后的值累加 - [x] 最后一个店铺积分 = `totalIntegral - allocatedIntegralSum`(减法兜底) - [x] 最后一个店铺抵扣金额 = `totalDeduction - allocatedDeductionSum`(减法兜底) - [x] 所有积分值均为整数,不出现小数点 - [x] `computedOrderMultiStore` 中 `preAllocatedIntegral` 的 Integer → double 转换正确 - [x] 旧的单店铺积分逻辑(`computedOrder` / `store.integral`)不受影响 - [x] 退款积分逻辑(`refundIntegral`)不受影响