feat(ticket): 更新工单列表排序逻辑

- 实现工单状态优先级排序:pending > assigned > processing > resolved > closed
- 添加紧急程度优先级排序:urgent > high > normal > low
- 保持相同状态下按创建时间倒序排列
- 使用FIELD函数优化数据库查询排序性能
- 移除原有的简单排序规则并替换为复合排序逻辑
This commit is contained in:
2026-04-01 00:35:07 +08:00
parent 38ee4c65e6
commit 5029be1f1f

View File

@@ -81,7 +81,8 @@ public class AppTicketServiceImpl extends ServiceImpl<AppTicketMapper, AppTicket
.and(ObjectUtil.isNotEmpty(param.getKeywords()), q ->
q.like(AppTicket::getTitle, param.getKeywords())
.or().like(AppTicket::getTicketNo, param.getKeywords()))
.orderByDesc(AppTicket::getCreateTime);
// 状态优先级pending > assigned > processing > resolved > closed同状态内最新的排前
.last("ORDER BY FIELD(status,'pending','assigned','processing','resolved','closed','rejected'), create_time DESC");
baseMapper.selectPage(page, wrapper);
return new PageResult<>(page.getRecords(), page.getTotal());
@@ -105,8 +106,8 @@ public class AppTicketServiceImpl extends ServiceImpl<AppTicketMapper, AppTicket
.and(ObjectUtil.isNotEmpty(param.getKeywords()), q ->
q.like(AppTicket::getTitle, param.getKeywords())
.or().like(AppTicket::getTicketNo, param.getKeywords()))
.orderByAsc(AppTicket::getStatus) // pending 排前面
.orderByDesc(AppTicket::getCreateTime);
// 状态优先级 > 紧急程度 > 最新提交时间
.last("ORDER BY FIELD(status,'pending','assigned','processing','resolved','closed','rejected'), FIELD(priority,'urgent','high','normal','low'), create_time DESC");
baseMapper.selectPage(page, wrapper);
return new PageResult<>(page.getRecords(), page.getTotal());