排序调整
本文档引用的文件
- MyEntityNameController.cs
- MyEntityNameAppService.cs
- IMyEntityNameAppService.cs
- MyEntityName.cs
- MyEntityNameDto.cs
- IMyEntityNameRepository.cs
目录
简介
本文档详细说明了用于调整实体排序的API接口 PUT /{id}/AdjustSort/{sort} 的功能、参数、行为及使用约束。该接口允许通过指定实体ID和目标排序值来重新设置实体在列表中的展示顺序,广泛应用于前端展示顺序控制等业务场景。
API端点说明
- 端点路径:
PUT /{id}/AdjustSort/{sort} - 功能描述: 调整指定实体的排序值,并自动重新计算其他实体的排序以保持连续性
- 控制器:
MyEntityNameController - 对应方法:
AdjustSortAsync(Guid id, int sort)
Section sources
路径参数详解
| 参数 | 类型 | 必需 | 描述 |
|---|---|---|---|
id | Guid | 是 | 实体的唯一主键标识符,用于定位需要调整排序的具体记录 |
sort | int | 是 | 目标排序值,表示该实体在排序列表中期望的位置(从1开始) |
Section sources
排序逻辑与持久化机制
当调用 AdjustSortAsync 接口时,系统执行以下步骤:
- 从数据库获取所有实体并按当前排序字段升序排列
- 根据目标排序值重新分配所有实体的排序编号,确保排序连续且无重复
- 若目标排序位置前移(即排序值变小),则原位置之后、目标位置之前的实体排序值自动加1
- 若目标排序位置后移(即排序值变大),则原位置之前、目标位置之后的实体排序值自动减1
- 更新目标实体的排序值为指定值
- 所有变更通过
UpdateManyAsync方法批量持久化到数据库
实体的排序字段在 MyEntityName 领域模型中定义为 Sort,类型为 int,默认值为0。
Diagram sources
Section sources
业务场景与排序字段意义
排序字段 Sort 的主要业务意义在于:
- 控制前端界面中实体列表的展示顺序
- 支持用户自定义排序偏好
- 在导出数据或生成报表时保持一致的顺序逻辑
- 默认情况下,系统按
Sort字段升序排列查询结果
此机制确保了用户可以通过简单的API调用实现直观的“上移”、“下移”或“置顶”操作。
Section sources
权限与业务约束
- 权限要求: 该接口目前未标注
[Authorize]属性,表示无需特定权限即可调用(但实际部署中可能受全局过滤器控制) - 业务约束:
- 不允许存在重复的排序值,系统会自动调整其他实体以避免冲突
- 排序值必须为整数,且建议从1开始
- 实体必须存在,否则操作无效
- 操作会触发批量更新,影响性能时需注意调用频率
Section sources
响应示例
成功响应(204 No Content)
HTTP/1.1 204 No Content
Content-Length: 0
说明:排序调整成功,无返回内容。