refactor(push): 替换UniPushMessageCallPayload为SsePushMessageCallPayload并注释部分发送方法
- 新增SsePushMessageCallPayload类替代原UniPushMessageCallPayload - 多处SsePushService中调用改用SsePushMessageCallPayload - 注释了sendTicketCallHangUp和sendTicketCallCancel等方法的实现 - TicketCallEndEvent中TicketId参数改为TicketDTO对象,调整相关逻辑 - TicketController中调用uniPushService.sendTodoMessageFromAdmin调整参数格式由Long改为String - 针对nflg-mobilebroken-gongfu模块中TicketCallEndEvent类的发送方法进行注释处理 - 整理import及部分注释,清理未使用代码,简化依赖关系
This commit is contained in:
parent
ec92724070
commit
5eab5d338e
|
|
@ -373,7 +373,7 @@ public class TicketController extends ControllerBase {
|
|||
ssePushService.sendTicketMessageToApp(Long.valueOf(ticket.getId()), message);
|
||||
ssePushService.sendTicketMessageToAdmin(Long.valueOf(ticket.getId()), message);
|
||||
request.getUserIds().forEach(userId -> {
|
||||
uniPushService.sendTodoMessageFromAdmin(Long.valueOf(ticket.getId()), Constant.FROM_ADMIN, userId, "分派工单");
|
||||
uniPushService.sendTodoMessageFromAdmin(String.valueOf(ticket.getId()), 0, Constant.FROM_ADMIN, userId, "分派工单");
|
||||
});
|
||||
return ApiResult.success();
|
||||
}
|
||||
|
|
@ -433,9 +433,9 @@ public class TicketController extends ControllerBase {
|
|||
//推送消息
|
||||
ssePushService.sendTicketMessageToAdmin(Long.valueOf(id), message);
|
||||
ssePushService.sendTicketMessageToApp(Long.valueOf(id), message);
|
||||
uniPushService.sendTodoMessageFromAdmin(Long.valueOf(ticket.getId()), ticket.getUserPlatform(), ticket.getUserId(), "工单已完成");
|
||||
uniPushService.sendTodoMessageFromAdmin(String.valueOf(ticket.getId()), 0, ticket.getUserPlatform(), ticket.getUserId(), "工单已完成");
|
||||
deviceTypeService.getCqmsByDeviceType(ticket.getDeviceNo()).forEach(cqm -> {
|
||||
uniPushService.sendTodoMessageFromAdmin(Long.valueOf(ticket.getId()), Constant.FROM_ADMIN, cqm, "工单已完成");
|
||||
uniPushService.sendTodoMessageFromAdmin(String.valueOf(ticket.getId()), 0, Constant.FROM_ADMIN, cqm, "工单已完成");
|
||||
});
|
||||
}
|
||||
return ApiResult.success();
|
||||
|
|
@ -464,7 +464,7 @@ public class TicketController extends ControllerBase {
|
|||
//推送消息
|
||||
ssePushService.sendTicketMessageToAdmin(Long.valueOf(id), message);
|
||||
ssePushService.sendTicketMessageToApp(Long.valueOf(id), message);
|
||||
uniPushService.sendTodoMessageFromAdmin(Long.valueOf(ticket.getId()), Constant.FROM_ADMIN, StrUtil.splitToInt(ticket.getHandle(), ",")[0], "工单被驳回");
|
||||
uniPushService.sendTodoMessageFromAdmin(String.valueOf(ticket.getId()), 0, Constant.FROM_ADMIN, StrUtil.splitToInt(ticket.getHandle(), ",")[0], "工单被驳回");
|
||||
}
|
||||
return ApiResult.success();
|
||||
}
|
||||
|
|
@ -1313,7 +1313,8 @@ public class TicketController extends ControllerBase {
|
|||
.setPayload(new UniPushMessageCallPayload()
|
||||
.setTitle("视频通话")
|
||||
.setContent(adminUser.getUserName() + "请求与您视频通话")
|
||||
.setTicketId(Long.valueOf(ticketId))
|
||||
.setTicketId(String.valueOf(ticketId))
|
||||
.setTicketType(0)
|
||||
.setUserId(adminUser.getId())
|
||||
.setUserName(adminUser.getUserName())
|
||||
.setUserAvatar(adminUser.getAvatar())
|
||||
|
|
@ -1358,7 +1359,8 @@ public class TicketController extends ControllerBase {
|
|||
.setPayload(new UniPushMessageCallPayload()
|
||||
.setTitle("视频通话")
|
||||
.setContent(adminUser.getUserName() + "请求与您视频通话")
|
||||
.setTicketId(request.getTicketId())
|
||||
.setTicketId(String.valueOf(request.getTicketId()))
|
||||
.setTicketType(0)
|
||||
.setUserId(adminUser.getId())
|
||||
.setUserName(adminUser.getUserName())
|
||||
.setUserAvatar(adminUser.getAvatar())
|
||||
|
|
@ -1398,7 +1400,8 @@ public class TicketController extends ControllerBase {
|
|||
.setTitle("视频通话")
|
||||
.setPayload(new UniPushMessageCallPayload()
|
||||
.setTitle("视频通话")
|
||||
.setTicketId(ticketId)
|
||||
.setTicketId(String.valueOf(ticketId))
|
||||
.setTicketType(ticket.getType())
|
||||
.setUserId(AdminUserUtil.getUserId())
|
||||
.setCategory("ticketCallJoined")
|
||||
.setFrom("admin")
|
||||
|
|
@ -1414,6 +1417,8 @@ public class TicketController extends ControllerBase {
|
|||
*/
|
||||
@PostMapping("call/hangUp")
|
||||
public ApiResult<Void> hangUp(@Valid @RequestBody TicketCallHangUpRequest request) {
|
||||
TicketDTO ticket = ticketService.getDto(request.getTicketId());
|
||||
VUtils.trueThrowBusinessError(Objects.isNull(ticket)).throwMessage("工单不存在");
|
||||
if (StrUtil.equals(request.getFrom(), Constant.FROM_ADMIN) && Objects.equals(request.getFromUserId(), AdminUserUtil.getUserId())) {
|
||||
Set<String> userIds = stringRedisTemplate.opsForSet().members(Constant.REDIS_KEY_TICKET_CALL_WAIT + request.getTicketId());
|
||||
if (CollectionUtil.isNotEmpty(userIds)) {
|
||||
|
|
@ -1425,7 +1430,8 @@ public class TicketController extends ControllerBase {
|
|||
.setTitle("视频通话结束")
|
||||
.setPayload(new UniPushMessageCallPayload()
|
||||
.setTitle("视频通话结束")
|
||||
.setTicketId(request.getTicketId())
|
||||
.setTicketId(String.valueOf(request.getTicketId()))
|
||||
.setTicketType(ticket.getType())
|
||||
.setUserId(Integer.valueOf(StrUtil.split(uid, "-").get(1)))
|
||||
.setCategory("ticketCallEnd")
|
||||
.setFrom("admin")
|
||||
|
|
@ -1438,7 +1444,7 @@ public class TicketController extends ControllerBase {
|
|||
} else {
|
||||
stringRedisTemplate.opsForSet().remove(Constant.REDIS_KEY_TICKET_CALL_WAIT + request.getTicketId(), Constant.FROM_ADMIN + "-" + AdminUserUtil.getUserId());
|
||||
}
|
||||
ticketEventPublisher.publishTicketCallEndEvent(Math.toIntExact(request.getTicketId()));
|
||||
ticketEventPublisher.publishTicketCallEndEvent(ticket);
|
||||
return ApiResult.success();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ import java.util.Objects;
|
|||
|
||||
public class TicketCallEndEvent extends ApplicationEvent implements ApplicationContextAware {
|
||||
|
||||
private final Integer ticketId;
|
||||
private final TicketDTO ticket;
|
||||
|
||||
private SsePushService ssePushService;
|
||||
private TicketChatService ticketChatService;
|
||||
|
|
@ -28,9 +28,9 @@ public class TicketCallEndEvent extends ApplicationEvent implements ApplicationC
|
|||
private StringRedisTemplate stringRedisTemplate;
|
||||
private UniPushService uniPushService;
|
||||
|
||||
public TicketCallEndEvent(Object source, Integer ticketId) {
|
||||
public TicketCallEndEvent(Object source, TicketDTO ticket) {
|
||||
super(source);
|
||||
this.ticketId = ticketId;
|
||||
this.ticket = ticket;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -43,8 +43,8 @@ public class TicketCallEndEvent extends ApplicationEvent implements ApplicationC
|
|||
}
|
||||
|
||||
public void send() throws IOException, InterruptedException {
|
||||
if (Objects.equals(0L, stringRedisTemplate.opsForSet().size(Constant.REDIS_KEY_TICKET_CALL_WAIT + ticketId))) {
|
||||
ShengWangChannelUserListDTO channelUserListDTO = shengWangService.getChannelUsers("ticket" + ticketId);
|
||||
if (Objects.equals(0L, stringRedisTemplate.opsForSet().size(Constant.REDIS_KEY_TICKET_CALL_WAIT + ticket.getId()))) {
|
||||
ShengWangChannelUserListDTO channelUserListDTO = shengWangService.getChannelUsers("ticket" + ticket.getId());
|
||||
if (!channelUserListDTO.isChannelEexist() || channelUserListDTO.getUsers().size() <= 1) {
|
||||
ChatMessageDTO message = new ChatMessageDTO()
|
||||
.setId(cn.hutool.core.util.IdUtil.getSnowflakeNextIdStr())
|
||||
|
|
@ -54,11 +54,11 @@ public class TicketCallEndEvent extends ApplicationEvent implements ApplicationC
|
|||
.setSenderName("通话助手")
|
||||
.setContent("视频通话已结束")
|
||||
.setCreateTime(Instant.now());
|
||||
ticketChatService.addMessage(Long.valueOf(ticketId), message);
|
||||
ticketChatService.addMessage(ticket.getId(), message);
|
||||
//推送消息
|
||||
ssePushService.sendTicketMessageToAdmin(Long.valueOf(ticketId), message);
|
||||
ssePushService.sendTicketMessageToApp(Long.valueOf(ticketId), message);
|
||||
ssePushService.sendTicketCallEnd(Long.valueOf(ticketId));
|
||||
ssePushService.sendTicketMessageToAdmin(ticket.getId(), message);
|
||||
ssePushService.sendTicketMessageToApp(ticket.getId(), message);
|
||||
ssePushService.sendTicketCallEnd(ticket.getId());
|
||||
Integer userId = CollectionUtil.get(channelUserListDTO.getUsers(), 0);
|
||||
if (Objects.nonNull(userId)) {
|
||||
String from = userId.toString().startsWith("1") ? "app" : "admin";
|
||||
|
|
@ -69,7 +69,8 @@ public class TicketCallEndEvent extends ApplicationEvent implements ApplicationC
|
|||
.setSendData(new UniPushMessageBody()
|
||||
.setTitle("视频通话结束")
|
||||
.setPayload(new UniPushMessageCallPayload()
|
||||
.setTicketId(Long.valueOf(ticketId))
|
||||
.setTicketId(String.valueOf(ticket.getId()))
|
||||
.setTicketType(ticket.getType())
|
||||
.setUserId(userId)
|
||||
.setCategory("ticketCallEnd")
|
||||
.setFrom("admin")
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
package com.nflg.mobilebroken.admin.publisher;
|
||||
|
||||
import com.nflg.mobilebroken.admin.event.*;
|
||||
import com.nflg.mobilebroken.common.pojo.dto.TicketDTO;
|
||||
import com.nflg.mobilebroken.repository.entity.Ticket;
|
||||
import org.springframework.context.ApplicationContext;
|
||||
import org.springframework.context.ApplicationEventPublisher;
|
||||
|
|
@ -48,8 +49,8 @@ public class TicketEventPublisher {
|
|||
eventPublisher.publishEvent(event);
|
||||
}
|
||||
|
||||
public void publishTicketCallEndEvent(Integer ticketId) {
|
||||
TicketCallEndEvent event = new TicketCallEndEvent(this, ticketId);
|
||||
public void publishTicketCallEndEvent(TicketDTO ticket) {
|
||||
TicketCallEndEvent event = new TicketCallEndEvent(this, ticket);
|
||||
event.setApplicationContext(applicationContext);
|
||||
eventPublisher.publishEvent(event);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ import com.nflg.mobilebroken.common.pojo.ApiResult;
|
|||
import com.nflg.mobilebroken.common.pojo.dto.ChatMessageDTO;
|
||||
import com.nflg.mobilebroken.common.pojo.dto.PushMessageDTO;
|
||||
import com.nflg.mobilebroken.common.pojo.dto.PushMessageDataBody;
|
||||
import com.nflg.mobilebroken.common.pojo.dto.UniPushMessageCallPayload;
|
||||
import com.nflg.mobilebroken.common.pojo.dto.SsePushMessageCallPayload;
|
||||
import com.nflg.mobilebroken.common.pojo.request.PushUserMessageRequest;
|
||||
import com.nflg.mobilebroken.common.pojo.request.TicketMessagePushRequest;
|
||||
import com.nflg.mobilebroken.common.pojo.vo.ChatMessageVO;
|
||||
|
|
@ -18,7 +18,6 @@ import org.springframework.cloud.context.config.annotation.RefreshScope;
|
|||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.web.client.RestTemplate;
|
||||
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.time.ZoneId;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.Objects;
|
||||
|
|
@ -161,7 +160,7 @@ public class SsePushService {
|
|||
.setData(new PushMessageDataBody()
|
||||
.setTargetId(ticketId)
|
||||
.setType("ticketCall")
|
||||
.setData(new UniPushMessageCallPayload()
|
||||
.setData(new SsePushMessageCallPayload()
|
||||
.setTicketId(ticketId)
|
||||
.setUserId(user.getId())
|
||||
.setUserName(user.getUserName())
|
||||
|
|
@ -186,7 +185,7 @@ public class SsePushService {
|
|||
.setData(new PushMessageDataBody()
|
||||
.setTargetId(ticketId)
|
||||
.setType("ticketCall")
|
||||
.setData(new UniPushMessageCallPayload()
|
||||
.setData(new SsePushMessageCallPayload()
|
||||
.setTicketId(ticketId)
|
||||
.setUserId(user.getId())
|
||||
.setUserName(user.getUserName())
|
||||
|
|
@ -207,80 +206,80 @@ public class SsePushService {
|
|||
return restTemplate.postForObject(sseUrl + "/sse/" + to + "/push/user/message", request, ApiResult.class);
|
||||
}
|
||||
|
||||
public void sendTicketCallHangUpToApp(Long ticketId, Integer userId, AdminUser user) {
|
||||
try {
|
||||
PushUserMessageRequest request = new PushUserMessageRequest()
|
||||
.setUserId(userId)
|
||||
.setMessage(new PushMessageDTO()
|
||||
.setType("ticketCallHangUp")
|
||||
.setData(new PushMessageDataBody()
|
||||
.setTargetId(ticketId)
|
||||
.setType("ticketCallHangUp")
|
||||
.setData(new UniPushMessageCallPayload()
|
||||
.setTicketId(ticketId)
|
||||
.setUserId(user.getId())
|
||||
.setUserName(user.getUserName())
|
||||
.setUserAvatar(user.getAvatar())
|
||||
.setFrom("admin")
|
||||
)
|
||||
)
|
||||
);
|
||||
ApiResult<?> result = sendMessageByUser(request, "app");
|
||||
log.debug("发送消息结果:{}", JSONUtil.toJsonStr(result));
|
||||
} catch (Exception e) {
|
||||
log.error("发送消息出错", e);
|
||||
}
|
||||
}
|
||||
// public void sendTicketCallHangUpToApp(Long ticketId, Integer userId, AdminUser user) {
|
||||
// try {
|
||||
// PushUserMessageRequest request = new PushUserMessageRequest()
|
||||
// .setUserId(userId)
|
||||
// .setMessage(new PushMessageDTO()
|
||||
// .setType("ticketCallHangUp")
|
||||
// .setData(new PushMessageDataBody()
|
||||
// .setTargetId(ticketId)
|
||||
// .setType("ticketCallHangUp")
|
||||
// .setData(new UniPushMessageCallPayload()
|
||||
// .setTicketId(ticketId)
|
||||
// .setUserId(user.getId())
|
||||
// .setUserName(user.getUserName())
|
||||
// .setUserAvatar(user.getAvatar())
|
||||
// .setFrom("admin")
|
||||
// )
|
||||
// )
|
||||
// );
|
||||
// ApiResult<?> result = sendMessageByUser(request, "app");
|
||||
// log.debug("发送消息结果:{}", JSONUtil.toJsonStr(result));
|
||||
// } catch (Exception e) {
|
||||
// log.error("发送消息出错", e);
|
||||
// }
|
||||
// }
|
||||
|
||||
public void sendTicketCallHangUpToAdmin(Long ticketId, Integer userId, AdminUser user) {
|
||||
try {
|
||||
PushUserMessageRequest request = new PushUserMessageRequest()
|
||||
.setUserId(userId)
|
||||
.setMessage(new PushMessageDTO()
|
||||
.setType("ticketCallHangUp")
|
||||
.setData(new PushMessageDataBody()
|
||||
.setTargetId(ticketId)
|
||||
.setType("ticketCallHangUp")
|
||||
.setData(new UniPushMessageCallPayload()
|
||||
.setTicketId(ticketId)
|
||||
.setUserId(user.getId())
|
||||
.setUserName(user.getUserName())
|
||||
.setUserAvatar(user.getAvatar())
|
||||
.setFrom("admin")
|
||||
)
|
||||
)
|
||||
);
|
||||
ApiResult<?> result = sendMessageByUser(request, "admin");
|
||||
log.debug("发送消息结果:{}", JSONUtil.toJsonStr(result));
|
||||
} catch (Exception e) {
|
||||
log.error("发送消息出错", e);
|
||||
}
|
||||
}
|
||||
// public void sendTicketCallHangUpToAdmin(Long ticketId, Integer userId, AdminUser user) {
|
||||
// try {
|
||||
// PushUserMessageRequest request = new PushUserMessageRequest()
|
||||
// .setUserId(userId)
|
||||
// .setMessage(new PushMessageDTO()
|
||||
// .setType("ticketCallHangUp")
|
||||
// .setData(new PushMessageDataBody()
|
||||
// .setTargetId(ticketId)
|
||||
// .setType("ticketCallHangUp")
|
||||
// .setData(new UniPushMessageCallPayload()
|
||||
// .setTicketId(ticketId)
|
||||
// .setUserId(user.getId())
|
||||
// .setUserName(user.getUserName())
|
||||
// .setUserAvatar(user.getAvatar())
|
||||
// .setFrom("admin")
|
||||
// )
|
||||
// )
|
||||
// );
|
||||
// ApiResult<?> result = sendMessageByUser(request, "admin");
|
||||
// log.debug("发送消息结果:{}", JSONUtil.toJsonStr(result));
|
||||
// } catch (Exception e) {
|
||||
// log.error("发送消息出错", e);
|
||||
// }
|
||||
// }
|
||||
|
||||
public void sendTicketCallCancelToAdmin(Long ticketId, @NotNull Integer userId, AdminUser user) {
|
||||
try {
|
||||
PushUserMessageRequest request = new PushUserMessageRequest()
|
||||
.setUserId(userId)
|
||||
.setMessage(new PushMessageDTO()
|
||||
.setType("ticketCallCancel")
|
||||
.setData(new PushMessageDataBody()
|
||||
.setTargetId(ticketId)
|
||||
.setType("ticketCallCancel")
|
||||
.setData(new UniPushMessageCallPayload()
|
||||
.setTicketId(ticketId)
|
||||
.setUserId(user.getId())
|
||||
.setUserName(user.getUserName())
|
||||
.setUserAvatar(user.getAvatar())
|
||||
.setFrom("admin")
|
||||
)
|
||||
)
|
||||
);
|
||||
ApiResult<?> result = sendMessageByUser(request, "admin");
|
||||
log.debug("发送消息结果:{}", JSONUtil.toJsonStr(result));
|
||||
} catch (Exception e) {
|
||||
log.error("发送消息出错", e);
|
||||
}
|
||||
}
|
||||
// public void sendTicketCallCancelToAdmin(Long ticketId, @NotNull Integer userId, AdminUser user) {
|
||||
// try {
|
||||
// PushUserMessageRequest request = new PushUserMessageRequest()
|
||||
// .setUserId(userId)
|
||||
// .setMessage(new PushMessageDTO()
|
||||
// .setType("ticketCallCancel")
|
||||
// .setData(new PushMessageDataBody()
|
||||
// .setTargetId(ticketId)
|
||||
// .setType("ticketCallCancel")
|
||||
// .setData(new UniPushMessageCallPayload()
|
||||
// .setTicketId(ticketId)
|
||||
// .setUserId(user.getId())
|
||||
// .setUserName(user.getUserName())
|
||||
// .setUserAvatar(user.getAvatar())
|
||||
// .setFrom("admin")
|
||||
// )
|
||||
// )
|
||||
// );
|
||||
// ApiResult<?> result = sendMessageByUser(request, "admin");
|
||||
// log.debug("发送消息结果:{}", JSONUtil.toJsonStr(result));
|
||||
// } catch (Exception e) {
|
||||
// log.error("发送消息出错", e);
|
||||
// }
|
||||
// }
|
||||
|
||||
public void sendTicketCallJoinedToAdmin(Integer userId, Long ticketId) {
|
||||
try {
|
||||
|
|
@ -291,7 +290,7 @@ public class SsePushService {
|
|||
.setData(new PushMessageDataBody()
|
||||
.setTargetId(ticketId)
|
||||
.setType("ticketCallJoined")
|
||||
.setData(new UniPushMessageCallPayload()
|
||||
.setData(new SsePushMessageCallPayload()
|
||||
.setTicketId(ticketId)
|
||||
.setFrom("admin")
|
||||
)
|
||||
|
|
@ -313,7 +312,7 @@ public class SsePushService {
|
|||
.setData(new PushMessageDataBody()
|
||||
.setTargetId(ticketId)
|
||||
.setType("ticketCallEnd")
|
||||
.setData(new UniPushMessageCallPayload()
|
||||
.setData(new SsePushMessageCallPayload()
|
||||
.setTicketId(ticketId)
|
||||
.setFrom("admin")
|
||||
)
|
||||
|
|
|
|||
|
|
@ -496,7 +496,7 @@ public class TicketController extends ControllerBase {
|
|||
//推送消息
|
||||
ssePushService.sendTicketMessageToAdmin(id, message);
|
||||
ssePushService.sendTicketMessageToApp(id, message);
|
||||
uniPushService.sendTodoMessageFromApp(ticket.getId(), ticket.getCurrentHandle(), "工单被重启");
|
||||
uniPushService.sendTodoMessageFromApp(String.valueOf(ticket.getId()), ticket.getType(), ticket.getCurrentHandle(), "工单被重启");
|
||||
stringRedisTemplate.opsForValue().set(StrUtil.format(Constant.REDIS_KEY_TICKET_REJECT_RECORD, id), DateTimeUtil.format(LocalDateTime.now()));
|
||||
return ApiResult.success();
|
||||
}
|
||||
|
|
@ -542,8 +542,8 @@ public class TicketController extends ControllerBase {
|
|||
.setCreateTime(Instant.now());
|
||||
ticketChatService.addMessage(request.getTicketId(), message);
|
||||
//推送消息
|
||||
ssePushService.sendTicketMessageToAdmin(Long.valueOf(ticket.getId()), message);
|
||||
ssePushService.sendTicketMessageToApp(Long.valueOf(ticket.getId()), message);
|
||||
ssePushService.sendTicketMessageToAdmin(ticket.getId(), message);
|
||||
ssePushService.sendTicketMessageToApp(ticket.getId(), message);
|
||||
}
|
||||
return ApiResult.success();
|
||||
}
|
||||
|
|
@ -591,7 +591,8 @@ public class TicketController extends ControllerBase {
|
|||
.setPayload(new UniPushMessageCallPayload()
|
||||
.setTitle("视频通话")
|
||||
.setContent(appUser.getName() + "请求与您视频通话")
|
||||
.setTicketId(ticketId)
|
||||
.setTicketId(String.valueOf(ticketId))
|
||||
.setTicketType(ticket.getType())
|
||||
.setUserId(appUser.getId())
|
||||
.setUserName(appUser.getName())
|
||||
.setUserAvatar(appUser.getAvatar())
|
||||
|
|
@ -630,7 +631,8 @@ public class TicketController extends ControllerBase {
|
|||
.setTitle("视频通话")
|
||||
.setPayload(new UniPushMessageCallPayload()
|
||||
.setTitle("视频通话")
|
||||
.setTicketId(ticketId)
|
||||
.setTicketId(String.valueOf(ticketId))
|
||||
.setTicketType(ticket.getType())
|
||||
.setUserId(AppUserUtil.getUserId())
|
||||
.setCategory("ticketCallJoined")
|
||||
.setFrom("app")
|
||||
|
|
@ -646,6 +648,8 @@ public class TicketController extends ControllerBase {
|
|||
*/
|
||||
@PostMapping("call/hangUp")
|
||||
public ApiResult<Void> hangUp(@Valid @RequestBody TicketCallHangUpRequest request) {
|
||||
TicketDTO ticket = ticketService.getDto(request.getTicketId());
|
||||
VUtils.trueThrowBusinessError(Objects.isNull(ticket)).throwMessage("工单不存在");
|
||||
if (StrUtil.equals(request.getFrom(), AppUserUtil.getFrom()) && Objects.equals(request.getFromUserId(), AppUserUtil.getUserId())) {
|
||||
Set<String> userIds = stringRedisTemplate.opsForSet().members(Constant.REDIS_KEY_TICKET_CALL_WAIT + request.getTicketId());
|
||||
if (CollectionUtil.isNotEmpty(userIds)) {
|
||||
|
|
@ -657,7 +661,8 @@ public class TicketController extends ControllerBase {
|
|||
.setTitle("视频通话结束")
|
||||
.setPayload(new UniPushMessageCallPayload()
|
||||
.setTitle("视频通话结束")
|
||||
.setTicketId(request.getTicketId())
|
||||
.setTicketId(String.valueOf(request.getTicketId()))
|
||||
.setTicketType(ticket.getType())
|
||||
.setUserId(Integer.valueOf(StrUtil.split(uid, "-").get(1)))
|
||||
.setCategory("ticketCallEnd")
|
||||
.setFrom("app")
|
||||
|
|
@ -670,7 +675,7 @@ public class TicketController extends ControllerBase {
|
|||
} else {
|
||||
stringRedisTemplate.opsForSet().remove(Constant.REDIS_KEY_TICKET_CALL_WAIT + request.getTicketId(), Constant.FROM_APP + "-" + AppUserUtil.getUserId());
|
||||
}
|
||||
ticketEventPublisher.publishTicketCallEndEvent(request.getTicketId());
|
||||
ticketEventPublisher.publishTicketCallEndEvent(ticket);
|
||||
return ApiResult.success();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ import java.util.Objects;
|
|||
|
||||
public class TicketCallEndEvent extends ApplicationEvent implements ApplicationContextAware {
|
||||
|
||||
private final Long ticketId;
|
||||
private final TicketDTO ticket;
|
||||
|
||||
private SsePushService ssePushService;
|
||||
private TicketChatService ticketChatService;
|
||||
|
|
@ -28,9 +28,9 @@ public class TicketCallEndEvent extends ApplicationEvent implements ApplicationC
|
|||
private StringRedisTemplate stringRedisTemplate;
|
||||
private UniPushService uniPushService;
|
||||
|
||||
public TicketCallEndEvent(Object source, Long ticketId) {
|
||||
public TicketCallEndEvent(Object source, TicketDTO ticket) {
|
||||
super(source);
|
||||
this.ticketId = ticketId;
|
||||
this.ticket = ticket;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -43,8 +43,8 @@ public class TicketCallEndEvent extends ApplicationEvent implements ApplicationC
|
|||
}
|
||||
|
||||
public void send() throws IOException, InterruptedException {
|
||||
if (Objects.equals(0L, stringRedisTemplate.opsForSet().size(Constant.REDIS_KEY_TICKET_CALL_WAIT + ticketId))) {
|
||||
ShengWangChannelUserListDTO channelUserListDTO = shengWangService.getChannelUsers("ticket" + ticketId);
|
||||
if (Objects.equals(0L, stringRedisTemplate.opsForSet().size(Constant.REDIS_KEY_TICKET_CALL_WAIT + ticket.getId()))) {
|
||||
ShengWangChannelUserListDTO channelUserListDTO = shengWangService.getChannelUsers("ticket" + ticket.getId());
|
||||
if (!channelUserListDTO.isChannelEexist() || channelUserListDTO.getUsers().size() <= 1) {
|
||||
ChatMessageDTO message = new ChatMessageDTO()
|
||||
.setId(cn.hutool.core.util.IdUtil.getSnowflakeNextIdStr())
|
||||
|
|
@ -54,11 +54,11 @@ public class TicketCallEndEvent extends ApplicationEvent implements ApplicationC
|
|||
.setSenderName("通话助手")
|
||||
.setContent("视频通话已结束")
|
||||
.setCreateTime(Instant.now());
|
||||
ticketChatService.addMessage(ticketId, message);
|
||||
ticketChatService.addMessage(ticket.getId(), message);
|
||||
//推送消息
|
||||
ssePushService.sendTicketMessageToAdmin(ticketId, message);
|
||||
ssePushService.sendTicketMessageToApp(ticketId, message);
|
||||
ssePushService.sendTicketCallEnd(ticketId);
|
||||
ssePushService.sendTicketMessageToAdmin(ticket.getId(), message);
|
||||
ssePushService.sendTicketMessageToApp(ticket.getId(), message);
|
||||
ssePushService.sendTicketCallEnd(ticket.getId());
|
||||
Integer userId = CollectionUtil.get(channelUserListDTO.getUsers(), 0);
|
||||
if (Objects.nonNull(userId)) {
|
||||
String from = userId.toString().startsWith("1") ? "app" : "admin";
|
||||
|
|
@ -69,7 +69,8 @@ public class TicketCallEndEvent extends ApplicationEvent implements ApplicationC
|
|||
.setSendData(new UniPushMessageBody()
|
||||
.setTitle("视频通话结束")
|
||||
.setPayload(new UniPushMessageCallPayload()
|
||||
.setTicketId(Long.valueOf(ticketId))
|
||||
.setTicketId(String.valueOf(ticket.getId()))
|
||||
.setTicketType(ticket.getType())
|
||||
.setUserId(userId)
|
||||
.setCategory("ticketCallEnd")
|
||||
.setFrom("app")
|
||||
|
|
|
|||
|
|
@ -60,8 +60,8 @@ public class TicketEventPublisher {
|
|||
eventPublisher.publishEvent(event);
|
||||
}
|
||||
|
||||
public void publishTicketCallEndEvent(Long ticketId) {
|
||||
TicketCallEndEvent event = new TicketCallEndEvent(this, ticketId);
|
||||
public void publishTicketCallEndEvent(TicketDTO ticket) {
|
||||
TicketCallEndEvent event = new TicketCallEndEvent(this, ticket);
|
||||
event.setApplicationContext(applicationContext);
|
||||
eventPublisher.publishEvent(event);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ import com.nflg.mobilebroken.common.pojo.ApiResult;
|
|||
import com.nflg.mobilebroken.common.pojo.dto.ChatMessageDTO;
|
||||
import com.nflg.mobilebroken.common.pojo.dto.PushMessageDTO;
|
||||
import com.nflg.mobilebroken.common.pojo.dto.PushMessageDataBody;
|
||||
import com.nflg.mobilebroken.common.pojo.dto.UniPushMessageCallPayload;
|
||||
import com.nflg.mobilebroken.common.pojo.dto.SsePushMessageCallPayload;
|
||||
import com.nflg.mobilebroken.common.pojo.request.PushUserMessageRequest;
|
||||
import com.nflg.mobilebroken.common.pojo.request.TicketMessagePushRequest;
|
||||
import com.nflg.mobilebroken.common.pojo.vo.ChatMessageVO;
|
||||
|
|
@ -152,7 +152,7 @@ public class SsePushService {
|
|||
.setData(new PushMessageDataBody()
|
||||
.setTargetId(ticketId)
|
||||
.setType("ticketCall")
|
||||
.setData(new UniPushMessageCallPayload()
|
||||
.setData(new SsePushMessageCallPayload()
|
||||
.setTicketId(ticketId)
|
||||
.setUserId(appUser.getId())
|
||||
.setUserName(appUser.getName())
|
||||
|
|
@ -174,77 +174,77 @@ public class SsePushService {
|
|||
return restTemplate.postForObject(sseUrl + "/sse/" + to + "/push/user/message", request, ApiResult.class);
|
||||
}
|
||||
|
||||
public void sendTicketCallHangUpToAdmin(@NotNull Long ticketId, @NotNull Integer userId, AppUser user) {
|
||||
try {
|
||||
PushUserMessageRequest request = new PushUserMessageRequest()
|
||||
.setUserId(userId)
|
||||
.setMessage(new PushMessageDTO()
|
||||
.setType("ticketCallHangUp")
|
||||
.setData(new PushMessageDataBody()
|
||||
.setTargetId(ticketId)
|
||||
.setType("ticketCallHangUp")
|
||||
.setData(new UniPushMessageCallPayload()
|
||||
.setTicketId(ticketId)
|
||||
.setUserId(user.getId())
|
||||
.setUserName(user.getName())
|
||||
.setUserAvatar(user.getAvatar())
|
||||
.setFrom("app")
|
||||
)
|
||||
)
|
||||
);
|
||||
ApiResult<?> result = sendMessageByUser(request, "admin");
|
||||
log.debug("发送消息结果:{}", JSONUtil.toJsonStr(result));
|
||||
} catch (Exception e) {
|
||||
log.error("发送消息出错", e);
|
||||
}
|
||||
}
|
||||
// public void sendTicketCallHangUpToAdmin(@NotNull Long ticketId, @NotNull Integer userId, AppUser user) {
|
||||
// try {
|
||||
// PushUserMessageRequest request = new PushUserMessageRequest()
|
||||
// .setUserId(userId)
|
||||
// .setMessage(new PushMessageDTO()
|
||||
// .setType("ticketCallHangUp")
|
||||
// .setData(new PushMessageDataBody()
|
||||
// .setTargetId(ticketId)
|
||||
// .setType("ticketCallHangUp")
|
||||
// .setData(new SsePushMessageCallPayload()
|
||||
// .setTicketId(ticketId)
|
||||
// .setUserId(user.getId())
|
||||
// .setUserName(user.getName())
|
||||
// .setUserAvatar(user.getAvatar())
|
||||
// .setFrom("app")
|
||||
// )
|
||||
// )
|
||||
// );
|
||||
// ApiResult<?> result = sendMessageByUser(request, "admin");
|
||||
// log.debug("发送消息结果:{}", JSONUtil.toJsonStr(result));
|
||||
// } catch (Exception e) {
|
||||
// log.error("发送消息出错", e);
|
||||
// }
|
||||
// }
|
||||
|
||||
public void sendTicketCallCancelToAdmin(@NotNull Long ticketId, @NotNull Integer userId, AppUser user) {
|
||||
try {
|
||||
PushUserMessageRequest request = new PushUserMessageRequest()
|
||||
.setUserId(userId)
|
||||
.setMessage(new PushMessageDTO()
|
||||
.setType("ticketCallCancel")
|
||||
.setData(new PushMessageDataBody()
|
||||
.setTargetId(ticketId)
|
||||
.setType("ticketCallCancel")
|
||||
.setData(new UniPushMessageCallPayload()
|
||||
.setTicketId(ticketId)
|
||||
.setUserId(user.getId())
|
||||
.setUserName(user.getName())
|
||||
.setUserAvatar(user.getAvatar())
|
||||
.setFrom("app")
|
||||
)
|
||||
)
|
||||
);
|
||||
ApiResult<?> result = sendMessageByUser(request, "admin");
|
||||
log.debug("发送消息结果:{}", JSONUtil.toJsonStr(result));
|
||||
} catch (Exception e) {
|
||||
log.error("发送消息出错", e);
|
||||
}
|
||||
}
|
||||
// public void sendTicketCallCancelToAdmin(@NotNull Long ticketId, @NotNull Integer userId, AppUser user) {
|
||||
// try {
|
||||
// PushUserMessageRequest request = new PushUserMessageRequest()
|
||||
// .setUserId(userId)
|
||||
// .setMessage(new PushMessageDTO()
|
||||
// .setType("ticketCallCancel")
|
||||
// .setData(new PushMessageDataBody()
|
||||
// .setTargetId(ticketId)
|
||||
// .setType("ticketCallCancel")
|
||||
// .setData(new UniPushMessageCallPayload()
|
||||
// .setTicketId(ticketId)
|
||||
// .setUserId(user.getId())
|
||||
// .setUserName(user.getName())
|
||||
// .setUserAvatar(user.getAvatar())
|
||||
// .setFrom("app")
|
||||
// )
|
||||
// )
|
||||
// );
|
||||
// ApiResult<?> result = sendMessageByUser(request, "admin");
|
||||
// log.debug("发送消息结果:{}", JSONUtil.toJsonStr(result));
|
||||
// } catch (Exception e) {
|
||||
// log.error("发送消息出错", e);
|
||||
// }
|
||||
// }
|
||||
|
||||
public void sendTicketCallJoinedToApp(Integer userId, @NotNull Long ticketId) {
|
||||
try {
|
||||
PushUserMessageRequest request = new PushUserMessageRequest()
|
||||
.setUserId(userId)
|
||||
.setMessage(new PushMessageDTO()
|
||||
.setType("ticketCallJoined")
|
||||
.setData(new PushMessageDataBody()
|
||||
.setTargetId(ticketId)
|
||||
.setType("ticketCallJoined")
|
||||
.setData(new UniPushMessageCallPayload()
|
||||
.setTicketId(ticketId)
|
||||
.setFrom("app")
|
||||
)
|
||||
)
|
||||
);
|
||||
ApiResult<?> result = sendMessageByUser(request, "app");
|
||||
log.debug("发送消息结果:{}", JSONUtil.toJsonStr(result));
|
||||
} catch (Exception e) {
|
||||
log.error("发送消息出错", e);
|
||||
}
|
||||
}
|
||||
// public void sendTicketCallJoinedToApp(Integer userId, @NotNull Long ticketId) {
|
||||
// try {
|
||||
// PushUserMessageRequest request = new PushUserMessageRequest()
|
||||
// .setUserId(userId)
|
||||
// .setMessage(new PushMessageDTO()
|
||||
// .setType("ticketCallJoined")
|
||||
// .setData(new PushMessageDataBody()
|
||||
// .setTargetId(ticketId)
|
||||
// .setType("ticketCallJoined")
|
||||
// .setData(new UniPushMessageCallPayload()
|
||||
// .setTicketId(ticketId)
|
||||
// .setFrom("app")
|
||||
// )
|
||||
// )
|
||||
// );
|
||||
// ApiResult<?> result = sendMessageByUser(request, "app");
|
||||
// log.debug("发送消息结果:{}", JSONUtil.toJsonStr(result));
|
||||
// } catch (Exception e) {
|
||||
// log.error("发送消息出错", e);
|
||||
// }
|
||||
// }
|
||||
|
||||
public void sendTicketCallJoined(Integer userId, @Valid @NotNull Long ticketId, String to) {
|
||||
try {
|
||||
|
|
@ -255,7 +255,7 @@ public class SsePushService {
|
|||
.setData(new PushMessageDataBody()
|
||||
.setTargetId(ticketId)
|
||||
.setType("ticketCallJoined")
|
||||
.setData(new UniPushMessageCallPayload()
|
||||
.setData(new SsePushMessageCallPayload()
|
||||
.setTicketId(ticketId)
|
||||
.setFrom("app")
|
||||
)
|
||||
|
|
@ -277,7 +277,7 @@ public class SsePushService {
|
|||
.setData(new PushMessageDataBody()
|
||||
.setTargetId(ticketId)
|
||||
.setType("ticketCallEnd")
|
||||
.setData(new UniPushMessageCallPayload()
|
||||
.setData(new SsePushMessageCallPayload()
|
||||
.setTicketId(ticketId)
|
||||
.setFrom("app")
|
||||
)
|
||||
|
|
|
|||
|
|
@ -0,0 +1,28 @@
|
|||
package com.nflg.mobilebroken.common.pojo.dto;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class SsePushMessageCallPayload {
|
||||
|
||||
private Long ticketId;
|
||||
|
||||
private String userName;
|
||||
|
||||
private String userAvatar;
|
||||
|
||||
private Integer userId;
|
||||
|
||||
/**
|
||||
* 呼叫发起方,app或者admin
|
||||
*/
|
||||
private String from;
|
||||
|
||||
private String category;
|
||||
|
||||
private String title;
|
||||
|
||||
private String content;
|
||||
}
|
||||
|
|
@ -7,7 +7,12 @@ import lombok.experimental.Accessors;
|
|||
@Accessors(chain = true)
|
||||
public class UniPushMessageCallPayload {
|
||||
|
||||
private Long ticketId;
|
||||
private String ticketId;
|
||||
|
||||
/**
|
||||
* 工单类型,0:移动破;1:工服
|
||||
*/
|
||||
private Integer ticketType;
|
||||
|
||||
private String userName;
|
||||
|
||||
|
|
|
|||
|
|
@ -372,7 +372,7 @@ public class TicketController extends ControllerBase {
|
|||
ssePushService.sendTicketMessageToApp(ticket.getId(), message);
|
||||
ssePushService.sendTicketMessageToAdmin(ticket.getId(), message);
|
||||
request.getUserIds().forEach(userId -> {
|
||||
uniPushService.sendTodoMessageFromAdmin(ticket.getId(), Constant.FROM_ADMIN, userId, "分派工单");
|
||||
uniPushService.sendTodoMessageFromAdmin(String.valueOf(ticket.getId()), 1, Constant.FROM_ADMIN, userId, "分派工单");
|
||||
});
|
||||
return ApiResult.success();
|
||||
}
|
||||
|
|
@ -432,9 +432,9 @@ public class TicketController extends ControllerBase {
|
|||
//推送消息
|
||||
ssePushService.sendTicketMessageToAdmin(id, message);
|
||||
ssePushService.sendTicketMessageToApp(id, message);
|
||||
uniPushService.sendTodoMessageFromAdmin(ticket.getId(), ticket.getUserPlatform(), ticket.getUserId(), "工单已完成");
|
||||
uniPushService.sendTodoMessageFromAdmin(String.valueOf(ticket.getId()), 1, ticket.getUserPlatform(), ticket.getUserId(), "工单已完成");
|
||||
deviceTypeService.getCqms(ticket.getDeviceNo()).forEach(cqm -> {
|
||||
uniPushService.sendTodoMessageFromAdmin(ticket.getId(), Constant.FROM_ADMIN, cqm, "工单已完成");
|
||||
uniPushService.sendTodoMessageFromAdmin(String.valueOf(ticket.getId()), 1, Constant.FROM_ADMIN, cqm, "工单已完成");
|
||||
});
|
||||
}
|
||||
return ApiResult.success();
|
||||
|
|
@ -463,7 +463,7 @@ public class TicketController extends ControllerBase {
|
|||
//推送消息
|
||||
ssePushService.sendTicketMessageToAdmin(id, message);
|
||||
ssePushService.sendTicketMessageToApp(id, message);
|
||||
uniPushService.sendTodoMessageFromAdmin(ticket.getId(), Constant.FROM_ADMIN, StrUtil.splitToInt(ticket.getHandle(), ",")[0], "工单被驳回");
|
||||
uniPushService.sendTodoMessageFromAdmin(String.valueOf(ticket.getId()), 1, Constant.FROM_ADMIN, StrUtil.splitToInt(ticket.getHandle(), ",")[0], "工单被驳回");
|
||||
}
|
||||
return ApiResult.success();
|
||||
}
|
||||
|
|
@ -1299,7 +1299,8 @@ public class TicketController extends ControllerBase {
|
|||
.setPayload(new UniPushMessageCallPayload()
|
||||
.setTitle("视频通话")
|
||||
.setContent(adminUser.getUserName() + "请求与您视频通话")
|
||||
.setTicketId(ticketId)
|
||||
.setTicketId(String.valueOf(ticketId))
|
||||
.setTicketType(1)
|
||||
.setUserId(adminUser.getId())
|
||||
.setUserName(adminUser.getUserName())
|
||||
.setUserAvatar(adminUser.getAvatar())
|
||||
|
|
@ -1344,7 +1345,8 @@ public class TicketController extends ControllerBase {
|
|||
.setPayload(new UniPushMessageCallPayload()
|
||||
.setTitle("视频通话")
|
||||
.setContent(adminUser.getUserName() + "请求与您视频通话")
|
||||
.setTicketId(request.getTicketId())
|
||||
.setTicketId(String.valueOf(request.getTicketId()))
|
||||
.setTicketType(1)
|
||||
.setUserId(adminUser.getId())
|
||||
.setUserName(adminUser.getUserName())
|
||||
.setUserAvatar(adminUser.getAvatar())
|
||||
|
|
|
|||
|
|
@ -1,11 +1,7 @@
|
|||
package com.nflg.mobilebroken.gongfu.event;
|
||||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import com.nflg.mobilebroken.gongfu.service.ShengWangService;
|
||||
import com.nflg.mobilebroken.gongfu.service.SsePushService;
|
||||
import com.nflg.mobilebroken.common.constant.Constant;
|
||||
import com.nflg.mobilebroken.common.constant.TicketState;
|
||||
import com.nflg.mobilebroken.common.pojo.dto.*;
|
||||
import com.nflg.mobilebroken.repository.service.TicketChatService;
|
||||
import com.nflg.mobilebroken.starter.service.UniPushService;
|
||||
import org.springframework.beans.BeansException;
|
||||
|
|
@ -14,10 +10,6 @@ import org.springframework.context.ApplicationContextAware;
|
|||
import org.springframework.context.ApplicationEvent;
|
||||
import org.springframework.data.redis.core.StringRedisTemplate;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.time.Instant;
|
||||
import java.util.Objects;
|
||||
|
||||
public class TicketCallEndEvent extends ApplicationEvent implements ApplicationContextAware {
|
||||
|
||||
private final Long ticketId;
|
||||
|
|
@ -35,49 +27,49 @@ public class TicketCallEndEvent extends ApplicationEvent implements ApplicationC
|
|||
|
||||
@Override
|
||||
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
|
||||
this.ssePushService = applicationContext.getBean(SsePushService.class);
|
||||
this.ticketChatService = applicationContext.getBean(TicketChatService.class);
|
||||
this.shengWangService = applicationContext.getBean(ShengWangService.class);
|
||||
this.stringRedisTemplate = applicationContext.getBean(StringRedisTemplate.class);
|
||||
this.uniPushService = applicationContext.getBean(UniPushService.class);
|
||||
// this.ssePushService = applicationContext.getBean(SsePushService.class);
|
||||
// this.ticketChatService = applicationContext.getBean(TicketChatService.class);
|
||||
// this.shengWangService = applicationContext.getBean(ShengWangService.class);
|
||||
// this.stringRedisTemplate = applicationContext.getBean(StringRedisTemplate.class);
|
||||
// this.uniPushService = applicationContext.getBean(UniPushService.class);
|
||||
}
|
||||
|
||||
public void send() throws IOException, InterruptedException {
|
||||
if (Objects.equals(0L, stringRedisTemplate.opsForSet().size(Constant.REDIS_KEY_TICKET_CALL_WAIT + ticketId))) {
|
||||
ShengWangChannelUserListDTO channelUserListDTO = shengWangService.getChannelUsers("ticket" + ticketId);
|
||||
if (!channelUserListDTO.isChannelEexist() || channelUserListDTO.getUsers().size() <= 1) {
|
||||
ChatMessageDTO message = new ChatMessageDTO()
|
||||
.setId(cn.hutool.core.util.IdUtil.getSnowflakeNextIdStr())
|
||||
.setFrom("call")
|
||||
.setTicketState(TicketState.Processing.getState())
|
||||
.setSenderId(0)
|
||||
.setSenderName("通话助手")
|
||||
.setContent("视频通话已结束")
|
||||
.setCreateTime(Instant.now());
|
||||
ticketChatService.addMessage(ticketId, message);
|
||||
//推送消息
|
||||
ssePushService.sendTicketMessageToAdmin(ticketId, message);
|
||||
ssePushService.sendTicketMessageToApp(ticketId, message);
|
||||
ssePushService.sendTicketCallEnd(ticketId);
|
||||
Integer userId = CollectionUtil.get(channelUserListDTO.getUsers(), 0);
|
||||
if (Objects.nonNull(userId)) {
|
||||
String from = userId.toString().startsWith("1") ? "app" : "admin";
|
||||
userId = Integer.valueOf(userId.toString().substring(1));
|
||||
uniPushService.send(new UniPushMessage()
|
||||
.setSenderId(from + "-uid-0")//不重要
|
||||
.setReceiverId(from + "-uid-" + userId)
|
||||
.setSendData(new UniPushMessageBody()
|
||||
.setTitle("视频通话结束")
|
||||
.setPayload(new UniPushMessageCallPayload()
|
||||
.setTicketId(ticketId)
|
||||
.setUserId(userId)
|
||||
.setCategory("ticketCallEnd")
|
||||
.setFrom("admin")
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// public void send() throws IOException, InterruptedException {
|
||||
// if (Objects.equals(0L, stringRedisTemplate.opsForSet().size(Constant.REDIS_KEY_TICKET_CALL_WAIT + ticketId))) {
|
||||
// ShengWangChannelUserListDTO channelUserListDTO = shengWangService.getChannelUsers("ticket" + ticketId);
|
||||
// if (!channelUserListDTO.isChannelEexist() || channelUserListDTO.getUsers().size() <= 1) {
|
||||
// ChatMessageDTO message = new ChatMessageDTO()
|
||||
// .setId(cn.hutool.core.util.IdUtil.getSnowflakeNextIdStr())
|
||||
// .setFrom("call")
|
||||
// .setTicketState(TicketState.Processing.getState())
|
||||
// .setSenderId(0)
|
||||
// .setSenderName("通话助手")
|
||||
// .setContent("视频通话已结束")
|
||||
// .setCreateTime(Instant.now());
|
||||
// ticketChatService.addMessage(ticketId, message);
|
||||
// //推送消息
|
||||
// ssePushService.sendTicketMessageToAdmin(ticketId, message);
|
||||
// ssePushService.sendTicketMessageToApp(ticketId, message);
|
||||
// ssePushService.sendTicketCallEnd(ticketId);
|
||||
// Integer userId = CollectionUtil.get(channelUserListDTO.getUsers(), 0);
|
||||
// if (Objects.nonNull(userId)) {
|
||||
// String from = userId.toString().startsWith("1") ? "app" : "admin";
|
||||
// userId = Integer.valueOf(userId.toString().substring(1));
|
||||
// uniPushService.send(new UniPushMessage()
|
||||
// .setSenderId(from + "-uid-0")//不重要
|
||||
// .setReceiverId(from + "-uid-" + userId)
|
||||
// .setSendData(new UniPushMessageBody()
|
||||
// .setTitle("视频通话结束")
|
||||
// .setPayload(new UniPushMessageCallPayload()
|
||||
// .setTicketId(ticketId)
|
||||
// .setUserId(userId)
|
||||
// .setCategory("ticketCallEnd")
|
||||
// .setFrom("admin")
|
||||
// )
|
||||
// )
|
||||
// );
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
}
|
||||
|
|
@ -5,8 +5,6 @@ import org.springframework.context.event.EventListener;
|
|||
import org.springframework.scheduling.annotation.Async;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
@Component
|
||||
public class TicketEventListener {
|
||||
|
||||
|
|
@ -40,9 +38,9 @@ public class TicketEventListener {
|
|||
event.send();
|
||||
}
|
||||
|
||||
@Async
|
||||
@EventListener
|
||||
public void handleTicketCallEndEvent(TicketCallEndEvent event) throws IOException, InterruptedException {
|
||||
event.send();
|
||||
}
|
||||
// @Async
|
||||
// @EventListener
|
||||
// public void handleTicketCallEndEvent(TicketCallEndEvent event) throws IOException, InterruptedException {
|
||||
// event.send();
|
||||
// }
|
||||
}
|
||||
|
|
|
|||
|
|
@ -48,9 +48,9 @@ public class TicketEventPublisher {
|
|||
eventPublisher.publishEvent(event);
|
||||
}
|
||||
|
||||
public void publishTicketCallEndEvent(Long ticketId) {
|
||||
TicketCallEndEvent event = new TicketCallEndEvent(this, ticketId);
|
||||
event.setApplicationContext(applicationContext);
|
||||
eventPublisher.publishEvent(event);
|
||||
}
|
||||
// public void publishTicketCallEndEvent(Long ticketId) {
|
||||
// TicketCallEndEvent event = new TicketCallEndEvent(this, ticketId);
|
||||
// event.setApplicationContext(applicationContext);
|
||||
// eventPublisher.publishEvent(event);
|
||||
// }
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ import com.nflg.mobilebroken.common.pojo.ApiResult;
|
|||
import com.nflg.mobilebroken.common.pojo.dto.ChatMessageDTO;
|
||||
import com.nflg.mobilebroken.common.pojo.dto.PushMessageDTO;
|
||||
import com.nflg.mobilebroken.common.pojo.dto.PushMessageDataBody;
|
||||
import com.nflg.mobilebroken.common.pojo.dto.UniPushMessageCallPayload;
|
||||
import com.nflg.mobilebroken.common.pojo.dto.SsePushMessageCallPayload;
|
||||
import com.nflg.mobilebroken.common.pojo.request.PushUserMessageRequest;
|
||||
import com.nflg.mobilebroken.common.pojo.request.TicketMessagePushRequest;
|
||||
import com.nflg.mobilebroken.common.pojo.vo.ChatMessageVO;
|
||||
|
|
@ -160,7 +160,7 @@ public class SsePushService {
|
|||
.setData(new PushMessageDataBody()
|
||||
.setTargetId(ticketId)
|
||||
.setType("ticketCall")
|
||||
.setData(new UniPushMessageCallPayload()
|
||||
.setData(new SsePushMessageCallPayload()
|
||||
.setTicketId(ticketId)
|
||||
.setUserId(user.getId())
|
||||
.setUserName(user.getUserName())
|
||||
|
|
@ -185,7 +185,7 @@ public class SsePushService {
|
|||
.setData(new PushMessageDataBody()
|
||||
.setTargetId(ticketId)
|
||||
.setType("ticketCall")
|
||||
.setData(new UniPushMessageCallPayload()
|
||||
.setData(new SsePushMessageCallPayload()
|
||||
.setTicketId(ticketId)
|
||||
.setUserId(user.getId())
|
||||
.setUserName(user.getUserName())
|
||||
|
|
@ -206,102 +206,102 @@ public class SsePushService {
|
|||
return restTemplate.postForObject(sseUrl + "/sse/" + to + "/push/user/message", request, ApiResult.class);
|
||||
}
|
||||
|
||||
public void sendTicketCallHangUpToApp(Long ticketId, Integer userId, AdminUser user) {
|
||||
try {
|
||||
PushUserMessageRequest request = new PushUserMessageRequest()
|
||||
.setUserId(userId)
|
||||
.setMessage(new PushMessageDTO()
|
||||
.setType("ticketCallHangUp")
|
||||
.setData(new PushMessageDataBody()
|
||||
.setTargetId(ticketId)
|
||||
.setType("ticketCallHangUp")
|
||||
.setData(new UniPushMessageCallPayload()
|
||||
.setTicketId(ticketId)
|
||||
.setUserId(user.getId())
|
||||
.setUserName(user.getUserName())
|
||||
.setUserAvatar(user.getAvatar())
|
||||
.setFrom("admin")
|
||||
)
|
||||
)
|
||||
);
|
||||
ApiResult<?> result = sendMessageByUser(request, "app");
|
||||
log.debug("发送消息结果:{}", JSONUtil.toJsonStr(result));
|
||||
} catch (Exception e) {
|
||||
log.error("发送消息出错", e);
|
||||
}
|
||||
}
|
||||
// public void sendTicketCallHangUpToApp(Long ticketId, Integer userId, AdminUser user) {
|
||||
// try {
|
||||
// PushUserMessageRequest request = new PushUserMessageRequest()
|
||||
// .setUserId(userId)
|
||||
// .setMessage(new PushMessageDTO()
|
||||
// .setType("ticketCallHangUp")
|
||||
// .setData(new PushMessageDataBody()
|
||||
// .setTargetId(ticketId)
|
||||
// .setType("ticketCallHangUp")
|
||||
// .setData(new SsePushMessageCallPayload()
|
||||
// .setTicketId(ticketId)
|
||||
// .setUserId(user.getId())
|
||||
// .setUserName(user.getUserName())
|
||||
// .setUserAvatar(user.getAvatar())
|
||||
// .setFrom("admin")
|
||||
// )
|
||||
// )
|
||||
// );
|
||||
// ApiResult<?> result = sendMessageByUser(request, "app");
|
||||
// log.debug("发送消息结果:{}", JSONUtil.toJsonStr(result));
|
||||
// } catch (Exception e) {
|
||||
// log.error("发送消息出错", e);
|
||||
// }
|
||||
// }
|
||||
|
||||
public void sendTicketCallHangUpToAdmin(Long ticketId, Integer userId, AdminUser user) {
|
||||
try {
|
||||
PushUserMessageRequest request = new PushUserMessageRequest()
|
||||
.setUserId(userId)
|
||||
.setMessage(new PushMessageDTO()
|
||||
.setType("ticketCallHangUp")
|
||||
.setData(new PushMessageDataBody()
|
||||
.setTargetId(ticketId)
|
||||
.setType("ticketCallHangUp")
|
||||
.setData(new UniPushMessageCallPayload()
|
||||
.setTicketId(ticketId)
|
||||
.setUserId(user.getId())
|
||||
.setUserName(user.getUserName())
|
||||
.setUserAvatar(user.getAvatar())
|
||||
.setFrom("admin")
|
||||
)
|
||||
)
|
||||
);
|
||||
ApiResult<?> result = sendMessageByUser(request, "admin");
|
||||
log.debug("发送消息结果:{}", JSONUtil.toJsonStr(result));
|
||||
} catch (Exception e) {
|
||||
log.error("发送消息出错", e);
|
||||
}
|
||||
}
|
||||
// public void sendTicketCallHangUpToAdmin(Long ticketId, Integer userId, AdminUser user) {
|
||||
// try {
|
||||
// PushUserMessageRequest request = new PushUserMessageRequest()
|
||||
// .setUserId(userId)
|
||||
// .setMessage(new PushMessageDTO()
|
||||
// .setType("ticketCallHangUp")
|
||||
// .setData(new PushMessageDataBody()
|
||||
// .setTargetId(ticketId)
|
||||
// .setType("ticketCallHangUp")
|
||||
// .setData(new UniPushMessageCallPayload()
|
||||
// .setTicketId(ticketId)
|
||||
// .setUserId(user.getId())
|
||||
// .setUserName(user.getUserName())
|
||||
// .setUserAvatar(user.getAvatar())
|
||||
// .setFrom("admin")
|
||||
// )
|
||||
// )
|
||||
// );
|
||||
// ApiResult<?> result = sendMessageByUser(request, "admin");
|
||||
// log.debug("发送消息结果:{}", JSONUtil.toJsonStr(result));
|
||||
// } catch (Exception e) {
|
||||
// log.error("发送消息出错", e);
|
||||
// }
|
||||
// }
|
||||
|
||||
public void sendTicketCallCancelToAdmin(Long ticketId, Integer userId, AdminUser user) {
|
||||
try {
|
||||
PushUserMessageRequest request = new PushUserMessageRequest()
|
||||
.setUserId(userId)
|
||||
.setMessage(new PushMessageDTO()
|
||||
.setType("ticketCallCancel")
|
||||
.setData(new PushMessageDataBody()
|
||||
.setTargetId(ticketId)
|
||||
.setType("ticketCallCancel")
|
||||
.setData(new UniPushMessageCallPayload()
|
||||
.setTicketId(ticketId)
|
||||
.setUserId(user.getId())
|
||||
.setUserName(user.getUserName())
|
||||
.setUserAvatar(user.getAvatar())
|
||||
.setFrom("admin")
|
||||
)
|
||||
)
|
||||
);
|
||||
ApiResult<?> result = sendMessageByUser(request, "admin");
|
||||
log.debug("发送消息结果:{}", JSONUtil.toJsonStr(result));
|
||||
} catch (Exception e) {
|
||||
log.error("发送消息出错", e);
|
||||
}
|
||||
}
|
||||
// public void sendTicketCallCancelToAdmin(Long ticketId, Integer userId, AdminUser user) {
|
||||
// try {
|
||||
// PushUserMessageRequest request = new PushUserMessageRequest()
|
||||
// .setUserId(userId)
|
||||
// .setMessage(new PushMessageDTO()
|
||||
// .setType("ticketCallCancel")
|
||||
// .setData(new PushMessageDataBody()
|
||||
// .setTargetId(ticketId)
|
||||
// .setType("ticketCallCancel")
|
||||
// .setData(new UniPushMessageCallPayload()
|
||||
// .setTicketId(ticketId)
|
||||
// .setUserId(user.getId())
|
||||
// .setUserName(user.getUserName())
|
||||
// .setUserAvatar(user.getAvatar())
|
||||
// .setFrom("admin")
|
||||
// )
|
||||
// )
|
||||
// );
|
||||
// ApiResult<?> result = sendMessageByUser(request, "admin");
|
||||
// log.debug("发送消息结果:{}", JSONUtil.toJsonStr(result));
|
||||
// } catch (Exception e) {
|
||||
// log.error("发送消息出错", e);
|
||||
// }
|
||||
// }
|
||||
|
||||
public void sendTicketCallJoinedToAdmin(Integer userId, Long ticketId) {
|
||||
try {
|
||||
PushUserMessageRequest request = new PushUserMessageRequest()
|
||||
.setUserId(userId)
|
||||
.setMessage(new PushMessageDTO()
|
||||
.setType("ticketCallJoined")
|
||||
.setData(new PushMessageDataBody()
|
||||
.setTargetId(ticketId)
|
||||
.setType("ticketCallJoined")
|
||||
.setData(new UniPushMessageCallPayload()
|
||||
.setTicketId(ticketId)
|
||||
.setFrom("admin")
|
||||
)
|
||||
)
|
||||
);
|
||||
ApiResult<?> result = sendMessageByUser(request, "admin");
|
||||
log.debug("发送消息结果:{}", JSONUtil.toJsonStr(result));
|
||||
} catch (Exception e) {
|
||||
log.error("发送消息出错", e);
|
||||
}
|
||||
}
|
||||
// public void sendTicketCallJoinedToAdmin(Integer userId, Long ticketId) {
|
||||
// try {
|
||||
// PushUserMessageRequest request = new PushUserMessageRequest()
|
||||
// .setUserId(userId)
|
||||
// .setMessage(new PushMessageDTO()
|
||||
// .setType("ticketCallJoined")
|
||||
// .setData(new PushMessageDataBody()
|
||||
// .setTargetId(ticketId)
|
||||
// .setType("ticketCallJoined")
|
||||
// .setData(new UniPushMessageCallPayload()
|
||||
// .setTicketId(ticketId)
|
||||
// .setFrom("admin")
|
||||
// )
|
||||
// )
|
||||
// );
|
||||
// ApiResult<?> result = sendMessageByUser(request, "admin");
|
||||
// log.debug("发送消息结果:{}", JSONUtil.toJsonStr(result));
|
||||
// } catch (Exception e) {
|
||||
// log.error("发送消息出错", e);
|
||||
// }
|
||||
// }
|
||||
|
||||
public void sendTicketCallEnd(Long ticketId) {
|
||||
try {
|
||||
|
|
@ -312,7 +312,7 @@ public class SsePushService {
|
|||
.setData(new PushMessageDataBody()
|
||||
.setTargetId(ticketId)
|
||||
.setType("ticketCallEnd")
|
||||
.setData(new UniPushMessageCallPayload()
|
||||
.setData(new SsePushMessageCallPayload()
|
||||
.setTicketId(ticketId)
|
||||
.setFrom("admin")
|
||||
)
|
||||
|
|
|
|||
|
|
@ -39,7 +39,7 @@ public class UniPushService {
|
|||
);
|
||||
}
|
||||
|
||||
public void sendTodoMessageFromAdmin(Long ticketId, String platform, Integer userId, String content) {
|
||||
public void sendTodoMessageFromAdmin(String ticketId, Integer type, String platform, Integer userId, String content) {
|
||||
send(new UniPushMessage()
|
||||
.setSenderId("admin-uid-" + AdminUserUtil.getUserId())
|
||||
.setReceiverId(platform + "-uid-" + userId)
|
||||
|
|
@ -48,6 +48,7 @@ public class UniPushService {
|
|||
.setContent(content)
|
||||
.setPayload(new UniPushMessageCallPayload()
|
||||
.setTicketId(ticketId)
|
||||
.setTicketType(type)
|
||||
.setTitle("工单消息")
|
||||
.setContent(content)
|
||||
)
|
||||
|
|
@ -55,7 +56,7 @@ public class UniPushService {
|
|||
);
|
||||
}
|
||||
|
||||
public void sendTodoMessageFromApp(Long ticketId, Integer userId, String content) {
|
||||
public void sendTodoMessageFromApp(String ticketId, Integer type, Integer userId, String content) {
|
||||
send(new UniPushMessage()
|
||||
.setSenderId("app-uid-" + AppUserUtil.getUserId())
|
||||
.setReceiverId("admin-uid-" + userId)
|
||||
|
|
@ -64,6 +65,7 @@ public class UniPushService {
|
|||
.setContent(content)
|
||||
.setPayload(new UniPushMessageCallPayload()
|
||||
.setTicketId(ticketId)
|
||||
.setTicketType(type)
|
||||
.setTitle("工单消息")
|
||||
.setContent(content)
|
||||
)
|
||||
|
|
|
|||
Loading…
Reference in New Issue