功能说明
提供小区资源配置提交接口(按金额/按条数、转换系数换算、二次确认)及配置历史查询接口,更新平台可分配/已分配未使用与小区剩余,同时记录历史。
文件位置
- Controller: src/controller/smsCommunityAllocateController.ts
- Service: src/service/smsCommunityAllocateService.ts
- Model: src/model/smsCommunityAllocateLog.ts
接口定义
| 请求方式 | POST / GET |
| 请求路径 | /api/v1/sms/community/{id}/allocate (POST); /api/v1/sms/community/{id}/allocations (GET历史) |
请求参数
| 参数名 | 类型 | 必填 | 说明 |
| id | number | 是 | 路径参数,小区ID |
| mode | number | 是 | 1按金额 2按条数 |
| amount | number | mode=1必填 | 分配金额,正数 |
| smsCount | number | mode=2必填 | 分配条数,正整数 |
| convertRatio | number | 是 | 转换系数,正数 |
| finalSmsCount | number | 否 | 可编辑后的最终条数,默认换算值四舍五入 |
| finalAmount | number | 否 | 可编辑后的最终金额,默认换算值四舍五入 |
| validFrom/validTo | string | 否 | 有效期,未传视为长期 |
| remark | string | 否 | 备注 |
| page/pageSize (GET) | number | 否 | 历史分页 |
响应格式
{
"code":200,
"data":{
"communityRemain":1500,
"platformAllocatable":9000,
"platformAllocatedUnused":3000
},
"message":"success"
}
业务逻辑
- 参数校验:mode必填,金额/条数/转换系数为正数;小区与平台存在性校验;剩余可分配校验(不可超额)
- 权限检查:需具备小区资源配置权限
- 数据处理:按模式换算对应条数或金额,四舍五入整数,可被final值覆盖;二次确认逻辑由前端触发;更新小区剩余+分配条数,平台可分配-分配条数,已分配未使用+分配条数;写入sms_community_allocate_log含原/现剩余、有效期、备注
- 历史查询:按小区ID倒序返回所有配置记录字段完整
错误处理
| 400 | 参数错误 | 未选分配方式或金额/条数/转换系数非正数 |
| 400 | 资源不足 | 平台可分配不足 |
| 403 | 无权限 | 无小区配置权限 |
| 404 | 数据不存在 | 小区或平台不存在 |
验收标准
- 按金额100元、系数0.1自动算1000条;按条数500、系数0.1算50元
- 成功分配1000条后,小区剩余+1000,平台可分配-1000,已分配未使用+1000
- 历史记录新增且字段完整