feat(repository): 优化用户查询和工单搜索功能

- 在 AdminUserMapper 中添加用户查询排序功能,提高查询效率
- 修复 TicketChatService 中的消息撤回逻辑,使用更准确的字符串比较方法
- 在 TicketMapper 中的工单搜索查询中添加工单描述字段
- 更新 TicketVO 中添加工单描述属性,以支持新的搜索结果
This commit is contained in:
曹鹏飞 2025-05-05 09:28:25 +08:00
parent e6b76fd135
commit afe5d8e108
4 changed files with 14 additions and 5 deletions

View File

@ -21,6 +21,9 @@ public class TicketVO {
//工单标题
private String title;
//工单描述
private String description;
//设备编号
private String deviceNo;

View File

@ -138,7 +138,7 @@ public class TicketChatService {
boolean flag = false;
Instant now = Instant.now();
for (ChatMessageDTO message : messages) {
if (message.getId().equals(messageId)) {
if (StrUtil.equals(messageId,message.getId())) {
Duration duration = Duration.between(message.getCreateTime(), now);
if (duration.toMinutes() <= ticketSet.getWithdrawTimeout()) {
log.info("消息撤回 找到消息");

View File

@ -18,6 +18,10 @@
<foreach collection="userIds" item="userId" separator="," open="(" close=")">
#{userId}
</foreach>
ORDER BY FIELD
<foreach collection="userIds" item="userId" separator="," open="(au.id," close=")">
#{userId}
</foreach>
</select>
<select id="getTickerMangagers" resultType="java.lang.Integer">

View File

@ -85,7 +85,7 @@
<select id="searchMy" resultType="com.nflg.mobilebroken.common.pojo.vo.TicketVO">
SELECT t.*,IF(u.is_primary,fun_getPrimaryUserArea(u.company_id),a2.`name`) AS 'areaName',IF(tf.id IS NULL, false, true) AS 'followed'
,u.`name` AS 'createBy',t.handle,IF(LENGTH(l.language_value)>0,l.language_value,p.part_name) AS 'component'
,u.`name` AS 'createBy',t.handle,IF(LENGTH(l.language_value)>0,l.language_value,p.part_name) AS 'component',t.description
FROM ticket t
LEFT JOIN app_user u ON t.user_id=u.id
LEFT JOIN app_area a2 ON u.area_id=a2.id
@ -100,7 +100,8 @@
<select id="searchFollow" resultType="com.nflg.mobilebroken.common.pojo.vo.TicketVO">
SELECT t.*,IF(u.is_primary,fun_getPrimaryUserArea(u.company_id),a2.`name`) AS 'areaName',true AS 'followed'
,u.`name` AS 'createBy',true AS 'followed',t.handle,IF(LENGTH(l.language_value)>0,l.language_value,p.part_name) AS 'component'
,u.`name` AS 'createBy',true AS 'followed',t.handle,IF(LENGTH(l.language_value)>0
,l.language_value,p.part_name) AS 'component',t.description
FROM ticket t
LEFT JOIN app_user u ON t.user_id=u.id
LEFT JOIN app_area a2 ON u.area_id=a2.id
@ -114,8 +115,9 @@
</select>
<select id="searchArea" resultType="com.nflg.mobilebroken.common.pojo.vo.TicketVO">
SELECT t.*,IF(u.is_primary,fun_getPrimaryUserArea(u.company_id),a2.`name`) AS 'areaName',IF(tf.id IS NULL, false, true) AS 'followed'
,u.`name` AS 'createBy',t.handle,IF(LENGTH(l.language_value)>0,l.language_value,p.part_name) AS 'component'
SELECT t.*,IF(u.is_primary,fun_getPrimaryUserArea(u.company_id),a2.`name`) AS 'areaName'
,IF(tf.id IS NULL, false, true) AS 'followed',u.`name` AS 'createBy',t.handle,IF(LENGTH(l.language_value)>0
,l.language_value,p.part_name) AS 'component',t.description
FROM ticket t
LEFT JOIN app_user u ON t.user_id=u.id
LEFT JOIN app_area a2 ON u.area_id=a2.id