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 ->
|
.and(ObjectUtil.isNotEmpty(param.getKeywords()), q ->
|
||||||
q.like(AppTicket::getTitle, param.getKeywords())
|
q.like(AppTicket::getTitle, param.getKeywords())
|
||||||
.or().like(AppTicket::getTicketNo, 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);
|
baseMapper.selectPage(page, wrapper);
|
||||||
return new PageResult<>(page.getRecords(), page.getTotal());
|
return new PageResult<>(page.getRecords(), page.getTotal());
|
||||||
@@ -105,8 +106,8 @@ public class AppTicketServiceImpl extends ServiceImpl<AppTicketMapper, AppTicket
|
|||||||
.and(ObjectUtil.isNotEmpty(param.getKeywords()), q ->
|
.and(ObjectUtil.isNotEmpty(param.getKeywords()), q ->
|
||||||
q.like(AppTicket::getTitle, param.getKeywords())
|
q.like(AppTicket::getTitle, param.getKeywords())
|
||||||
.or().like(AppTicket::getTicketNo, 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);
|
baseMapper.selectPage(page, wrapper);
|
||||||
return new PageResult<>(page.getRecords(), page.getTotal());
|
return new PageResult<>(page.getRecords(), page.getTotal());
|
||||||
|
|||||||
Reference in New Issue
Block a user