feat(ticket): 更新工单列表排序逻辑
- 实现工单状态优先级排序:pending > assigned > processing > resolved > closed - 添加紧急程度优先级排序:urgent > high > normal > low - 保持相同状态下按创建时间倒序排列 - 使用FIELD函数优化数据库查询排序性能 - 移除原有的简单排序规则并替换为复合排序逻辑
This commit is contained in:
@@ -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());
|
||||
|
||||
Reference in New Issue
Block a user