feat(service): 添加撤回消息功能并优化工单查询
- 新增 sendTicketMessageWithdrawToApp 方法用于发送撤回消息通知 - 修改 TicketMapper.xml 中的工单查询 SQL,优化查询结果字段顺序 - 在 TicketVO 中添加 deviceAddress 字段用于存储设备地址 - 在 TiketController 中添加对 App 端的撤回消息通知
This commit is contained in:
parent
afe5d8e108
commit
9162905cbd
|
|
@ -362,6 +362,7 @@ public class TiketController extends ControllerBase {
|
|||
ticketChatService.withdrawMessage(request.getTicketId(), request.getMessageId());
|
||||
//推送消息
|
||||
ssePushService.sendTicketMessageWithdrawToAdmin(request.getTicketId(),request.getMessageId());
|
||||
ssePushService.sendTicketMessageWithdrawToApp(request.getTicketId(),request.getMessageId());
|
||||
return ApiResult.success();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -58,6 +58,16 @@ public class SsePushService {
|
|||
}
|
||||
}
|
||||
|
||||
public void sendTicketMessageWithdrawToApp(Integer ticketId, String messageId){
|
||||
try {
|
||||
TicketMessagePushRequest request=new TicketMessagePushRequest().setTicketId(ticketId).setMessage(buildWithdrawMessage(messageId));
|
||||
ApiResult<?> result = sendMessage(request,"app");
|
||||
log.debug("发送消息结果:{}", JSONUtil.toJsonStr(result));
|
||||
} catch (Exception e) {
|
||||
log.error("发送消息出错", e);
|
||||
}
|
||||
}
|
||||
|
||||
private ApiResult<?> sendMessage(TicketMessagePushRequest request, String to) {
|
||||
RestTemplate restTemplate = new RestTemplate();
|
||||
return restTemplate.postForObject(sseUrl + "/sse/" + to + "/push/ticket/message", request, ApiResult.class);
|
||||
|
|
|
|||
|
|
@ -24,6 +24,9 @@ public class TicketVO {
|
|||
//工单描述
|
||||
private String description;
|
||||
|
||||
//设备地址
|
||||
private String deviceAddress;
|
||||
|
||||
//设备编号
|
||||
private String deviceNo;
|
||||
|
||||
|
|
|
|||
|
|
@ -84,8 +84,8 @@
|
|||
</sql>
|
||||
|
||||
<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',t.description
|
||||
SELECT 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',IF(LENGTH(l.language_value)>0,l.language_value,p.part_name) AS 'component',t.*
|
||||
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
|
||||
|
|
@ -99,9 +99,9 @@
|
|||
</select>
|
||||
|
||||
<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'
|
||||
SELECT 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',t.description
|
||||
,l.language_value,p.part_name) AS 'component',t.*
|
||||
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
|
||||
|
|
@ -115,9 +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',t.description
|
||||
SELECT 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',IF(LENGTH(l.language_value)>0
|
||||
,l.language_value,p.part_name) AS 'component',t.*
|
||||
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
|
||||
|
|
@ -127,10 +127,10 @@
|
|||
LEFT JOIN t_base_language_data l ON p.id=l.source_id AND l.language_code=#{language}
|
||||
LEFT JOIN v_device vd ON t.device_no=vd.device_no
|
||||
WHERE t.state!=4
|
||||
<if test="request.isPrimary==false">
|
||||
<if test="isPrimary==false">
|
||||
AND FIND_IN_SET(#{companyId},u.company_id) AND vd.agent_code=#{companyCode}
|
||||
</if>
|
||||
<if test="request.isPrimary==true">
|
||||
<if test="isPrimary==true">
|
||||
AND (u.id=#{userId} OR FIND_IN_SET(u.company_id,#{companyId}))
|
||||
</if>
|
||||
<include refid="searchWhereCondition"/>
|
||||
|
|
|
|||
Loading…
Reference in New Issue