From 5029be1f1f89c58c2de26f857e3289b9de910e0f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E5=BF=A0=E6=9E=97?= <170083662@qq.com> Date: Wed, 1 Apr 2026 00:35:07 +0800 Subject: [PATCH] =?UTF-8?q?feat(ticket):=20=E6=9B=B4=E6=96=B0=E5=B7=A5?= =?UTF-8?q?=E5=8D=95=E5=88=97=E8=A1=A8=E6=8E=92=E5=BA=8F=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 实现工单状态优先级排序:pending > assigned > processing > resolved > closed - 添加紧急程度优先级排序:urgent > high > normal > low - 保持相同状态下按创建时间倒序排列 - 使用FIELD函数优化数据库查询排序性能 - 移除原有的简单排序规则并替换为复合排序逻辑 --- .../gxwebsoft/app/service/impl/AppTicketServiceImpl.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/gxwebsoft/app/service/impl/AppTicketServiceImpl.java b/src/main/java/com/gxwebsoft/app/service/impl/AppTicketServiceImpl.java index 0e0e913..2df1d82 100644 --- a/src/main/java/com/gxwebsoft/app/service/impl/AppTicketServiceImpl.java +++ b/src/main/java/com/gxwebsoft/app/service/impl/AppTicketServiceImpl.java @@ -81,7 +81,8 @@ public class AppTicketServiceImpl extends ServiceImpl 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 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());