【优化】添加多语言支持
This commit is contained in:
parent
23e1f093c8
commit
b7e9df3c12
|
|
@ -436,7 +436,7 @@ public class TicketController extends ControllerBase {
|
||||||
//推送消息
|
//推送消息
|
||||||
ssePushService.sendTicketMessage(Long.valueOf(ticket.getId()), message, MultilingualUtil.getLanguage());
|
ssePushService.sendTicketMessage(Long.valueOf(ticket.getId()), message, MultilingualUtil.getLanguage());
|
||||||
request.getUserIds().forEach(userId -> {
|
request.getUserIds().forEach(userId -> {
|
||||||
uniPushService.sendTodoMessageFromAdmin(String.valueOf(ticket.getId()), 0, Constant.FROM_ADMIN, userId, "分派工单");
|
uniPushService.sendTodoMessageFromAdmin(String.valueOf(ticket.getId()), 0, Constant.FROM_ADMIN, userId, "分派工单", Constant.DEFAULT_LANGUAGE_CODE);
|
||||||
});
|
});
|
||||||
adminMessageService.setReaded(AdminUserUtil.getUserId(), Long.valueOf(ticket.getId()), MessageSubType.TicketToBeAssigned.getState());
|
adminMessageService.setReaded(AdminUserUtil.getUserId(), Long.valueOf(ticket.getId()), MessageSubType.TicketToBeAssigned.getState());
|
||||||
return ApiResult.success();
|
return ApiResult.success();
|
||||||
|
|
@ -496,9 +496,12 @@ public class TicketController extends ControllerBase {
|
||||||
ticketChatService.addMessage(Long.valueOf(id), message);
|
ticketChatService.addMessage(Long.valueOf(id), message);
|
||||||
//推送消息
|
//推送消息
|
||||||
ssePushService.sendTicketMessage(Long.valueOf(id), message, MultilingualUtil.getLanguage());
|
ssePushService.sendTicketMessage(Long.valueOf(id), message, MultilingualUtil.getLanguage());
|
||||||
uniPushService.sendTodoMessageFromAdmin(String.valueOf(ticket.getId()), 0, ticket.getUserPlatform(), ticket.getUserId(), "工单已完成");
|
String receiverUserLanguageCode = StrUtil.equals(ticket.getUserPlatform(), Constant.FROM_ADMIN)
|
||||||
|
? Constant.DEFAULT_LANGUAGE_CODE
|
||||||
|
: appUserService.getById(ticket.getUserId()).getLanguageCode();
|
||||||
|
uniPushService.sendTodoMessageFromAdmin(String.valueOf(ticket.getId()), 0, ticket.getUserPlatform(), ticket.getUserId(), "工单已完成", receiverUserLanguageCode);
|
||||||
deviceTypeService.getCqmsByDeviceType(ticket.getDeviceNo()).forEach(cqm -> {
|
deviceTypeService.getCqmsByDeviceType(ticket.getDeviceNo()).forEach(cqm -> {
|
||||||
uniPushService.sendTodoMessageFromAdmin(String.valueOf(ticket.getId()), 0, Constant.FROM_ADMIN, cqm, "工单已完成");
|
uniPushService.sendTodoMessageFromAdmin(String.valueOf(ticket.getId()), 0, Constant.FROM_ADMIN, cqm, "工单已完成", Constant.DEFAULT_LANGUAGE_CODE);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
return ApiResult.success();
|
return ApiResult.success();
|
||||||
|
|
@ -526,7 +529,7 @@ public class TicketController extends ControllerBase {
|
||||||
ticketChatService.addMessage(Long.valueOf(id), message);
|
ticketChatService.addMessage(Long.valueOf(id), message);
|
||||||
//推送消息
|
//推送消息
|
||||||
ssePushService.sendTicketMessage(Long.valueOf(id), message, MultilingualUtil.getLanguage());
|
ssePushService.sendTicketMessage(Long.valueOf(id), message, MultilingualUtil.getLanguage());
|
||||||
uniPushService.sendTodoMessageFromAdmin(String.valueOf(ticket.getId()), 0, Constant.FROM_ADMIN, StrUtil.splitToInt(ticket.getHandle(), ",")[0], "工单被驳回");
|
uniPushService.sendTodoMessageFromAdmin(String.valueOf(ticket.getId()), 0, Constant.FROM_ADMIN, StrUtil.splitToInt(ticket.getHandle(), ",")[0], "工单被驳回", Constant.DEFAULT_LANGUAGE_CODE);
|
||||||
adminMessageService.setReaded(AdminUserUtil.getUserId(), Long.valueOf(id), MessageSubType.TicketSolutionAudit.getState());
|
adminMessageService.setReaded(AdminUserUtil.getUserId(), Long.valueOf(id), MessageSubType.TicketSolutionAudit.getState());
|
||||||
}
|
}
|
||||||
return ApiResult.success();
|
return ApiResult.success();
|
||||||
|
|
@ -1429,28 +1432,31 @@ public class TicketController extends ControllerBase {
|
||||||
// VUtils.trueThrowBusinessError(ticketCallJoinService.isInCall(ticket.getId(), receiveUserFrom, receiveUserId)).throwMessage("对方正在通话中");
|
// VUtils.trueThrowBusinessError(ticketCallJoinService.isInCall(ticket.getId(), receiveUserFrom, receiveUserId)).throwMessage("对方正在通话中");
|
||||||
// ticketCallService.add(ticketId, sendUserId, sendUserFrom, receiveUserId, receiveUserFrom);
|
// ticketCallService.add(ticketId, sendUserId, sendUserFrom, receiveUserId, receiveUserFrom);
|
||||||
AdminUser adminUser = adminUserService.getById(sendUserId);
|
AdminUser adminUser = adminUserService.getById(sendUserId);
|
||||||
|
String receiverUserLanguageCode = StrUtil.equals(receiveUserFrom, Constant.FROM_ADMIN)
|
||||||
|
? Constant.DEFAULT_LANGUAGE_CODE
|
||||||
|
: appUserService.getById(receiveUserId).getLanguageCode();
|
||||||
uniPushService.send(new UniPushMessage()
|
uniPushService.send(new UniPushMessage()
|
||||||
.setSenderId("admin-uid-" + sendUserId)
|
.setSenderId("admin-uid-" + sendUserId)
|
||||||
.setReceiverId(receiveUserFrom + "-uid-" + receiveUserId)
|
.setReceiverId(receiveUserFrom + "-uid-" + receiveUserId)
|
||||||
.setSendData(new UniPushMessageBody()
|
.setSendData(new UniPushMessageBody()
|
||||||
.setTitle("视频通话")
|
|
||||||
.setContentPre(adminUser.getUserName())
|
|
||||||
.setContent("请求与您视频通话")
|
|
||||||
.setPayload(new UniPushMessageCallPayload()
|
|
||||||
.setTitle("视频通话")
|
.setTitle("视频通话")
|
||||||
.setContentPre(adminUser.getUserName())
|
.setContentPre(adminUser.getUserName())
|
||||||
.setContent("请求与您视频通话")
|
.setContent("请求与您视频通话")
|
||||||
.setTicketId(String.valueOf(ticketId))
|
.setPayload(new UniPushMessageCallPayload()
|
||||||
.setTicketType(0)
|
.setTitle("视频通话")
|
||||||
.setUserId(adminUser.getId())
|
.setContentPre(adminUser.getUserName())
|
||||||
.setUserName(adminUser.getUserName())
|
.setContent("请求与您视频通话")
|
||||||
.setUserAvatar(adminUser.getAvatar())
|
.setTicketId(String.valueOf(ticketId))
|
||||||
.setCategory("ticketCall")
|
.setTicketType(0)
|
||||||
.setFrom("admin")
|
.setUserId(adminUser.getId())
|
||||||
.setReceiverId(receiveUserFrom + "-uid-" + receiveUserId)
|
.setUserName(adminUser.getUserName())
|
||||||
|
.setUserAvatar(adminUser.getAvatar())
|
||||||
|
.setCategory("ticketCall")
|
||||||
|
.setFrom("admin")
|
||||||
|
.setReceiverId(receiveUserFrom + "-uid-" + receiveUserId)
|
||||||
|
)
|
||||||
)
|
)
|
||||||
)
|
, receiverUserLanguageCode);
|
||||||
);
|
|
||||||
if (StrUtil.equals(Constant.FROM_APP, ticket.getUserPlatform())) {
|
if (StrUtil.equals(Constant.FROM_APP, ticket.getUserPlatform())) {
|
||||||
ssePushService.sendTicketCallToApp(adminUser, ticket.getUserId(), Long.valueOf(ticketId));
|
ssePushService.sendTicketCallToApp(adminUser, ticket.getUserId(), Long.valueOf(ticketId));
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -1470,11 +1476,6 @@ public class TicketController extends ControllerBase {
|
||||||
@PostMapping("addCallUser")
|
@PostMapping("addCallUser")
|
||||||
public ApiResult<Void> addCallUser(@Valid @RequestBody CallUserAddRequest request) {
|
public ApiResult<Void> addCallUser(@Valid @RequestBody CallUserAddRequest request) {
|
||||||
AdminUser adminUser = adminUserService.getById(AdminUserUtil.getUserId());
|
AdminUser adminUser = adminUserService.getById(AdminUserUtil.getUserId());
|
||||||
// TicketCall ticketCall = ticketCallService.lambdaQuery()
|
|
||||||
// .eq(TicketCall::getTicketId, request.getTicketId())
|
|
||||||
// .eq(TicketCall::getState, 1)
|
|
||||||
// .one();
|
|
||||||
// VUtils.trueThrowBusinessError(Objects.isNull(ticketCall)).throwMessage("未在通话中");
|
|
||||||
List<String> userNames = new ArrayList<>();
|
List<String> userNames = new ArrayList<>();
|
||||||
request.getUserIds().forEach(userId -> {
|
request.getUserIds().forEach(userId -> {
|
||||||
AdminUser adminUser1 = adminUserService.getById(userId);
|
AdminUser adminUser1 = adminUserService.getById(userId);
|
||||||
|
|
@ -1483,27 +1484,27 @@ public class TicketController extends ControllerBase {
|
||||||
userNames.add(adminUser1.getUserName());
|
userNames.add(adminUser1.getUserName());
|
||||||
} else {
|
} else {
|
||||||
uniPushService.send(new UniPushMessage()
|
uniPushService.send(new UniPushMessage()
|
||||||
.setSenderId("admin-uid-" + adminUser.getId())
|
.setSenderId("admin-uid-" + adminUser.getId())
|
||||||
.setReceiverId("admin-uid-" + userId)
|
.setReceiverId("admin-uid-" + userId)
|
||||||
.setSendData(new UniPushMessageBody()
|
.setSendData(new UniPushMessageBody()
|
||||||
.setTitle("视频通话")
|
|
||||||
.setContentPre(adminUser.getUserName())
|
|
||||||
.setContent("请求与您视频通话")
|
|
||||||
.setPayload(new UniPushMessageCallPayload()
|
|
||||||
.setTitle("视频通话")
|
.setTitle("视频通话")
|
||||||
.setContentPre(adminUser.getUserName())
|
.setContentPre(adminUser.getUserName())
|
||||||
.setContent("请求与您视频通话")
|
.setContent("请求与您视频通话")
|
||||||
.setTicketId(String.valueOf(request.getTicketId()))
|
.setPayload(new UniPushMessageCallPayload()
|
||||||
.setTicketType(0)
|
.setTitle("视频通话")
|
||||||
.setUserId(adminUser.getId())
|
.setContentPre(adminUser.getUserName())
|
||||||
.setUserName(adminUser.getUserName())
|
.setContent("请求与您视频通话")
|
||||||
.setUserAvatar(adminUser.getAvatar())
|
.setTicketId(String.valueOf(request.getTicketId()))
|
||||||
.setCategory("ticketCall")
|
.setTicketType(0)
|
||||||
.setFrom("admin")
|
.setUserId(adminUser.getId())
|
||||||
.setReceiverId("admin-uid-" + userId)
|
.setUserName(adminUser.getUserName())
|
||||||
|
.setUserAvatar(adminUser.getAvatar())
|
||||||
|
.setCategory("ticketCall")
|
||||||
|
.setFrom("admin")
|
||||||
|
.setReceiverId("admin-uid-" + userId)
|
||||||
|
)
|
||||||
)
|
)
|
||||||
)
|
, Constant.DEFAULT_LANGUAGE_CODE);
|
||||||
);
|
|
||||||
ssePushService.sendTicketCallToAdmin(adminUser, userId, request.getTicketId());
|
ssePushService.sendTicketCallToAdmin(adminUser, userId, request.getTicketId());
|
||||||
// ticketCallJoinService.add(ticketCall.getId(), userId, Constant.FROM_ADMIN);
|
// ticketCallJoinService.add(ticketCall.getId(), userId, Constant.FROM_ADMIN);
|
||||||
stringRedisTemplate.opsForSet().add(Constant.REDIS_KEY_TICKET_CALL_WAIT + request.getTicketId(), Constant.FROM_ADMIN + "-uid-" + userId);
|
stringRedisTemplate.opsForSet().add(Constant.REDIS_KEY_TICKET_CALL_WAIT + request.getTicketId(), Constant.FROM_ADMIN + "-uid-" + userId);
|
||||||
|
|
@ -1534,21 +1535,21 @@ public class TicketController extends ControllerBase {
|
||||||
.throwMessage("你已在通话中");
|
.throwMessage("你已在通话中");
|
||||||
ssePushService.sendTicketCallJoinedToAdmin(AdminUserUtil.getUserId(), ticketId);
|
ssePushService.sendTicketCallJoinedToAdmin(AdminUserUtil.getUserId(), ticketId);
|
||||||
uniPushService.send(new UniPushMessage()
|
uniPushService.send(new UniPushMessage()
|
||||||
.setSenderId("admin-uid-" + AdminUserUtil.getUserId())//不重要
|
.setSenderId("admin-uid-" + AdminUserUtil.getUserId())//不重要
|
||||||
.setReceiverId("admin-uid-" + AdminUserUtil.getUserId())
|
.setReceiverId("admin-uid-" + AdminUserUtil.getUserId())
|
||||||
.setSendData(new UniPushMessageBody()
|
.setSendData(new UniPushMessageBody()
|
||||||
.setTitle("视频通话")
|
|
||||||
.setContent("加入通话")
|
|
||||||
.setPayload(new UniPushMessageCallPayload()
|
|
||||||
.setTitle("视频通话")
|
.setTitle("视频通话")
|
||||||
.setTicketId(String.valueOf(ticketId))
|
.setContent("加入通话")
|
||||||
.setTicketType(ticket.getType())
|
.setPayload(new UniPushMessageCallPayload()
|
||||||
.setUserId(AdminUserUtil.getUserId())
|
.setTitle("视频通话")
|
||||||
.setCategory("ticketCallJoined")
|
.setTicketId(String.valueOf(ticketId))
|
||||||
.setFrom("admin")
|
.setTicketType(ticket.getType())
|
||||||
|
.setUserId(AdminUserUtil.getUserId())
|
||||||
|
.setCategory("ticketCallJoined")
|
||||||
|
.setFrom("admin")
|
||||||
|
)
|
||||||
)
|
)
|
||||||
)
|
, Constant.DEFAULT_LANGUAGE_CODE);
|
||||||
);
|
|
||||||
return ApiResult.success();
|
return ApiResult.success();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1564,43 +1565,50 @@ public class TicketController extends ControllerBase {
|
||||||
Set<String> userIds = stringRedisTemplate.opsForSet().members(Constant.REDIS_KEY_TICKET_CALL_WAIT + request.getTicketId());
|
Set<String> userIds = stringRedisTemplate.opsForSet().members(Constant.REDIS_KEY_TICKET_CALL_WAIT + request.getTicketId());
|
||||||
if (CollectionUtil.isNotEmpty(userIds)) {
|
if (CollectionUtil.isNotEmpty(userIds)) {
|
||||||
userIds.forEach(uid -> {
|
userIds.forEach(uid -> {
|
||||||
|
List<String> us = StrUtil.split(uid, "-");
|
||||||
|
String receiverUserLanguageCode = StrUtil.equals(us.get(0), Constant.FROM_ADMIN)
|
||||||
|
? Constant.DEFAULT_LANGUAGE_CODE
|
||||||
|
: appUserService.getById(Integer.valueOf(us.get(2))).getLanguageCode();
|
||||||
uniPushService.send(new UniPushMessage()
|
uniPushService.send(new UniPushMessage()
|
||||||
.setSenderId(uid)//不重要
|
.setSenderId(uid)//不重要
|
||||||
.setReceiverId(uid)
|
.setReceiverId(uid)
|
||||||
.setSendData(new UniPushMessageBody()
|
.setSendData(new UniPushMessageBody()
|
||||||
.setTitle("视频通话")
|
.setTitle("视频通话")
|
||||||
.setContent("视频通话结束")
|
.setContent("视频通话结束")
|
||||||
.setPayload(new UniPushMessageCallPayload()
|
.setPayload(new UniPushMessageCallPayload()
|
||||||
.setTitle("视频通话结束")
|
.setTitle("视频通话结束")
|
||||||
.setTicketId(String.valueOf(request.getTicketId()))
|
.setTicketId(String.valueOf(request.getTicketId()))
|
||||||
.setTicketType(ticket.getType())
|
.setTicketType(ticket.getType())
|
||||||
.setUserId(Integer.valueOf(StrUtil.split(uid, "-").get(2)))
|
.setUserId(Integer.valueOf(StrUtil.split(uid, "-").get(2)))
|
||||||
.setCategory("ticketCallEnd")
|
.setCategory("ticketCallEnd")
|
||||||
.setFrom("admin")
|
.setFrom("admin")
|
||||||
|
)
|
||||||
)
|
)
|
||||||
)
|
, receiverUserLanguageCode);
|
||||||
);
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
stringRedisTemplate.delete(Constant.REDIS_KEY_TICKET_CALL_WAIT + request.getTicketId());
|
stringRedisTemplate.delete(Constant.REDIS_KEY_TICKET_CALL_WAIT + request.getTicketId());
|
||||||
} else {
|
} else {
|
||||||
if (request.getReject()) {
|
if (request.getReject()) {
|
||||||
|
String receiverUserLanguageCode = StrUtil.equals(request.getFrom(), Constant.FROM_ADMIN)
|
||||||
|
? Constant.DEFAULT_LANGUAGE_CODE
|
||||||
|
: appUserService.getById(request.getFromUserId()).getLanguageCode();
|
||||||
uniPushService.send(new UniPushMessage()
|
uniPushService.send(new UniPushMessage()
|
||||||
.setSenderId(Constant.FROM_ADMIN + "-uid-" + AdminUserUtil.getUserId())//不重要
|
.setSenderId(Constant.FROM_ADMIN + "-uid-" + AdminUserUtil.getUserId())//不重要
|
||||||
.setReceiverId(request.getFrom() + "-uid-" + request.getFromUserId())
|
.setReceiverId(request.getFrom() + "-uid-" + request.getFromUserId())
|
||||||
.setSendData(new UniPushMessageBody()
|
.setSendData(new UniPushMessageBody()
|
||||||
.setTitle("视频通话")
|
.setTitle("视频通话")
|
||||||
.setContent("视频通话拒接")
|
.setContent("视频通话拒接")
|
||||||
.setPayload(new UniPushMessageCallPayload()
|
.setPayload(new UniPushMessageCallPayload()
|
||||||
.setTitle("视频通话拒接")
|
.setTitle("视频通话拒接")
|
||||||
.setTicketId(String.valueOf(request.getTicketId()))
|
.setTicketId(String.valueOf(request.getTicketId()))
|
||||||
.setTicketType(ticket.getType())
|
.setTicketType(ticket.getType())
|
||||||
.setUserId(AdminUserUtil.getUserId())
|
.setUserId(AdminUserUtil.getUserId())
|
||||||
.setCategory("ticketCallReject")
|
.setCategory("ticketCallReject")
|
||||||
.setFrom("admin")
|
.setFrom("admin")
|
||||||
|
)
|
||||||
)
|
)
|
||||||
)
|
, receiverUserLanguageCode);
|
||||||
);
|
|
||||||
}
|
}
|
||||||
stringRedisTemplate.opsForSet().remove(Constant.REDIS_KEY_TICKET_CALL_WAIT + request.getTicketId(), Constant.FROM_ADMIN + "-uid-" + AdminUserUtil.getUserId());
|
stringRedisTemplate.opsForSet().remove(Constant.REDIS_KEY_TICKET_CALL_WAIT + request.getTicketId(), Constant.FROM_ADMIN + "-uid-" + AdminUserUtil.getUserId());
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,14 @@
|
||||||
package com.nflg.mobilebroken.admin.event;
|
package com.nflg.mobilebroken.admin.event;
|
||||||
|
|
||||||
import cn.hutool.core.collection.CollectionUtil;
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
|
import cn.hutool.core.util.StrUtil;
|
||||||
import com.nflg.mobilebroken.admin.service.ShengWangService;
|
import com.nflg.mobilebroken.admin.service.ShengWangService;
|
||||||
import com.nflg.mobilebroken.admin.service.SsePushService;
|
import com.nflg.mobilebroken.admin.service.SsePushService;
|
||||||
import com.nflg.mobilebroken.common.constant.Constant;
|
import com.nflg.mobilebroken.common.constant.Constant;
|
||||||
import com.nflg.mobilebroken.common.constant.TicketState;
|
import com.nflg.mobilebroken.common.constant.TicketState;
|
||||||
import com.nflg.mobilebroken.common.pojo.dto.*;
|
import com.nflg.mobilebroken.common.pojo.dto.*;
|
||||||
import com.nflg.mobilebroken.common.util.MultilingualUtil;
|
import com.nflg.mobilebroken.common.util.MultilingualUtil;
|
||||||
|
import com.nflg.mobilebroken.repository.service.IAppUserService;
|
||||||
import com.nflg.mobilebroken.repository.service.TicketChatService;
|
import com.nflg.mobilebroken.repository.service.TicketChatService;
|
||||||
import com.nflg.mobilebroken.starter.service.UniPushService;
|
import com.nflg.mobilebroken.starter.service.UniPushService;
|
||||||
import org.springframework.beans.BeansException;
|
import org.springframework.beans.BeansException;
|
||||||
|
|
@ -28,6 +30,7 @@ public class TicketCallEndEvent extends ApplicationEvent implements ApplicationC
|
||||||
private ShengWangService shengWangService;
|
private ShengWangService shengWangService;
|
||||||
private StringRedisTemplate stringRedisTemplate;
|
private StringRedisTemplate stringRedisTemplate;
|
||||||
private UniPushService uniPushService;
|
private UniPushService uniPushService;
|
||||||
|
private IAppUserService appUserService;
|
||||||
|
|
||||||
public TicketCallEndEvent(Object source, TicketDTO ticket) {
|
public TicketCallEndEvent(Object source, TicketDTO ticket) {
|
||||||
super(source);
|
super(source);
|
||||||
|
|
@ -41,6 +44,7 @@ public class TicketCallEndEvent extends ApplicationEvent implements ApplicationC
|
||||||
this.shengWangService = applicationContext.getBean(ShengWangService.class);
|
this.shengWangService = applicationContext.getBean(ShengWangService.class);
|
||||||
this.stringRedisTemplate = applicationContext.getBean(StringRedisTemplate.class);
|
this.stringRedisTemplate = applicationContext.getBean(StringRedisTemplate.class);
|
||||||
this.uniPushService = applicationContext.getBean(UniPushService.class);
|
this.uniPushService = applicationContext.getBean(UniPushService.class);
|
||||||
|
this.appUserService = applicationContext.getBean(IAppUserService.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void send() throws IOException, InterruptedException {
|
public void send() throws IOException, InterruptedException {
|
||||||
|
|
@ -63,20 +67,23 @@ public class TicketCallEndEvent extends ApplicationEvent implements ApplicationC
|
||||||
if (Objects.nonNull(userId)) {
|
if (Objects.nonNull(userId)) {
|
||||||
String from = userId.toString().startsWith("1") ? "app" : "admin";
|
String from = userId.toString().startsWith("1") ? "app" : "admin";
|
||||||
userId = Integer.valueOf(userId.toString().substring(1));
|
userId = Integer.valueOf(userId.toString().substring(1));
|
||||||
|
String receiverUserLanguageCode = StrUtil.equals(from, Constant.FROM_ADMIN)
|
||||||
|
? Constant.DEFAULT_LANGUAGE_CODE
|
||||||
|
: appUserService.getById(userId).getLanguageCode();
|
||||||
uniPushService.send(new UniPushMessage()
|
uniPushService.send(new UniPushMessage()
|
||||||
.setSenderId(from + "-uid-0")//不重要
|
.setSenderId(from + "-uid-0")//不重要
|
||||||
.setReceiverId(from + "-uid-" + userId)
|
.setReceiverId(from + "-uid-" + userId)
|
||||||
.setSendData(new UniPushMessageBody()
|
.setSendData(new UniPushMessageBody()
|
||||||
.setTitle("视频通话结束")
|
.setTitle("视频通话结束")
|
||||||
.setPayload(new UniPushMessageCallPayload()
|
.setPayload(new UniPushMessageCallPayload()
|
||||||
.setTicketId(String.valueOf(ticket.getId()))
|
.setTicketId(String.valueOf(ticket.getId()))
|
||||||
.setTicketType(ticket.getType())
|
.setTicketType(ticket.getType())
|
||||||
.setUserId(userId)
|
.setUserId(userId)
|
||||||
.setCategory("ticketCallEnd")
|
.setCategory("ticketCallEnd")
|
||||||
.setFrom("admin")
|
.setFrom("admin")
|
||||||
|
)
|
||||||
)
|
)
|
||||||
)
|
, receiverUserLanguageCode);
|
||||||
);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -538,7 +538,7 @@ public class TicketController extends ControllerBase {
|
||||||
//推送消息
|
//推送消息
|
||||||
ssePushService.sendTicketMessageToAdmin(id, message);
|
ssePushService.sendTicketMessageToAdmin(id, message);
|
||||||
ssePushService.sendTicketMessageToApp(id, message);
|
ssePushService.sendTicketMessageToApp(id, message);
|
||||||
uniPushService.sendTodoMessageFromApp(String.valueOf(ticket.getId()), ticket.getType(), ticket.getCurrentHandle(), "工单被重启");
|
uniPushService.sendTodoMessageFromApp(String.valueOf(ticket.getId()), ticket.getType(), ticket.getCurrentHandle(), "工单被重启", Constant.DEFAULT_LANGUAGE_CODE);
|
||||||
// stringRedisTemplate.opsForValue().set(StrUtil.format(Constant.REDIS_KEY_TICKET_REJECT_RECORD, ticket.getId()), DateTimeUtil.format(LocalDateTime.now()));
|
// stringRedisTemplate.opsForValue().set(StrUtil.format(Constant.REDIS_KEY_TICKET_REJECT_RECORD, ticket.getId()), DateTimeUtil.format(LocalDateTime.now()));
|
||||||
stringRedisTemplate.opsForHash().delete("ticket:disbale:SelectImage", ticket.getId().toString());
|
stringRedisTemplate.opsForHash().delete("ticket:disbale:SelectImage", ticket.getId().toString());
|
||||||
appMessageService.setReaded(AppUserUtil.getUserId(), AppUserUtil.getFrom(), MessageSubType.TicketCompletion.getState());
|
appMessageService.setReaded(AppUserUtil.getUserId(), AppUserUtil.getFrom(), MessageSubType.TicketCompletion.getState());
|
||||||
|
|
@ -631,27 +631,27 @@ public class TicketController extends ControllerBase {
|
||||||
// VUtils.trueThrowBusinessError(ticketCallJoinService.isInCall(ticket.getId(), Constant.FROM_ADMIN, handlerUserId)).throwMessage("对方正在通话中");
|
// VUtils.trueThrowBusinessError(ticketCallJoinService.isInCall(ticket.getId(), Constant.FROM_ADMIN, handlerUserId)).throwMessage("对方正在通话中");
|
||||||
AppUser appUser = appUserService.getById(ticket.getUserId());
|
AppUser appUser = appUserService.getById(ticket.getUserId());
|
||||||
uniPushService.send(new UniPushMessage()
|
uniPushService.send(new UniPushMessage()
|
||||||
.setSenderId(ticket.getUserPlatform() + "-uid-" + ticket.getUserId())
|
.setSenderId(ticket.getUserPlatform() + "-uid-" + ticket.getUserId())
|
||||||
.setReceiverId("admin-uid-" + handlerUserId)
|
.setReceiverId("admin-uid-" + handlerUserId)
|
||||||
.setSendData(new UniPushMessageBody()
|
.setSendData(new UniPushMessageBody()
|
||||||
.setTitle("视频通话")
|
|
||||||
.setContentPre(appUser.getName())
|
|
||||||
.setContent("请求与您视频通话")
|
|
||||||
.setPayload(new UniPushMessageCallPayload()
|
|
||||||
.setTitle("视频通话")
|
.setTitle("视频通话")
|
||||||
.setContentPre(appUser.getName())
|
.setContentPre(appUser.getName())
|
||||||
.setContent("请求与您视频通话")
|
.setContent("请求与您视频通话")
|
||||||
.setTicketId(String.valueOf(ticketId))
|
.setPayload(new UniPushMessageCallPayload()
|
||||||
.setTicketType(ticket.getType())
|
.setTitle("视频通话")
|
||||||
.setUserId(appUser.getId())
|
.setContentPre(appUser.getName())
|
||||||
.setUserName(appUser.getName())
|
.setContent("请求与您视频通话")
|
||||||
.setUserAvatar(appUser.getAvatar())
|
.setTicketId(String.valueOf(ticketId))
|
||||||
.setCategory("ticketCall")
|
.setTicketType(ticket.getType())
|
||||||
.setFrom("app")
|
.setUserId(appUser.getId())
|
||||||
.setReceiverId("admin-uid-" + handlerUserId)
|
.setUserName(appUser.getName())
|
||||||
|
.setUserAvatar(appUser.getAvatar())
|
||||||
|
.setCategory("ticketCall")
|
||||||
|
.setFrom("app")
|
||||||
|
.setReceiverId("admin-uid-" + handlerUserId)
|
||||||
|
)
|
||||||
)
|
)
|
||||||
)
|
, Constant.DEFAULT_LANGUAGE_CODE);
|
||||||
);
|
|
||||||
ssePushService.sendTicketCallToAdmin(appUser, handlerUserId, ticketId);
|
ssePushService.sendTicketCallToAdmin(appUser, handlerUserId, ticketId);
|
||||||
// ticketCallService.add(ticketId, AppUserUtil.getUserId(),Constant.FROM_APP, handlerUserId, Constant.FROM_ADMIN);
|
// ticketCallService.add(ticketId, AppUserUtil.getUserId(),Constant.FROM_APP, handlerUserId, Constant.FROM_ADMIN);
|
||||||
ticketEventPublisher.publishTicketCallBeginEvent(ticketId, appUser.getName());
|
ticketEventPublisher.publishTicketCallBeginEvent(ticketId, appUser.getName());
|
||||||
|
|
@ -675,22 +675,25 @@ public class TicketController extends ControllerBase {
|
||||||
VUtils.trueThrowBusinessError(channelUsers.getUsers().contains(ShengWangUtil.getUserId(AppUserUtil.getUserId(), AppUserUtil.getFrom())))
|
VUtils.trueThrowBusinessError(channelUsers.getUsers().contains(ShengWangUtil.getUserId(AppUserUtil.getUserId(), AppUserUtil.getFrom())))
|
||||||
.throwMessage("你已在通话中");
|
.throwMessage("你已在通话中");
|
||||||
ssePushService.sendTicketCallJoined(AppUserUtil.getUserId(), ticketId, AppUserUtil.getFrom());
|
ssePushService.sendTicketCallJoined(AppUserUtil.getUserId(), ticketId, AppUserUtil.getFrom());
|
||||||
|
String receiverUserLanguageCode = StrUtil.equals(AppUserUtil.getFrom(), Constant.FROM_ADMIN)
|
||||||
|
? Constant.DEFAULT_LANGUAGE_CODE
|
||||||
|
: appUserService.getById(AppUserUtil.getUserId()).getLanguageCode();
|
||||||
uniPushService.send(new UniPushMessage()
|
uniPushService.send(new UniPushMessage()
|
||||||
.setSenderId(AppUserUtil.getFrom() + "-uid-" + AppUserUtil.getUserId())//不重要
|
.setSenderId(AppUserUtil.getFrom() + "-uid-" + AppUserUtil.getUserId())//不重要
|
||||||
.setReceiverId(AppUserUtil.getFrom() + "-uid-" + AppUserUtil.getUserId())
|
.setReceiverId(AppUserUtil.getFrom() + "-uid-" + AppUserUtil.getUserId())
|
||||||
.setSendData(new UniPushMessageBody()
|
.setSendData(new UniPushMessageBody()
|
||||||
.setTitle("视频通话")
|
|
||||||
.setContent("加入通话")
|
|
||||||
.setPayload(new UniPushMessageCallPayload()
|
|
||||||
.setTitle("视频通话")
|
.setTitle("视频通话")
|
||||||
.setTicketId(String.valueOf(ticketId))
|
.setContent("加入通话")
|
||||||
.setTicketType(ticket.getType())
|
.setPayload(new UniPushMessageCallPayload()
|
||||||
.setUserId(AppUserUtil.getUserId())
|
.setTitle("视频通话")
|
||||||
.setCategory("ticketCallJoined")
|
.setTicketId(String.valueOf(ticketId))
|
||||||
.setFrom("app")
|
.setTicketType(ticket.getType())
|
||||||
|
.setUserId(AppUserUtil.getUserId())
|
||||||
|
.setCategory("ticketCallJoined")
|
||||||
|
.setFrom("app")
|
||||||
|
)
|
||||||
)
|
)
|
||||||
)
|
, receiverUserLanguageCode);
|
||||||
);
|
|
||||||
return ApiResult.success();
|
return ApiResult.success();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -706,42 +709,49 @@ public class TicketController extends ControllerBase {
|
||||||
Set<String> userIds = stringRedisTemplate.opsForSet().members(Constant.REDIS_KEY_TICKET_CALL_WAIT + request.getTicketId());
|
Set<String> userIds = stringRedisTemplate.opsForSet().members(Constant.REDIS_KEY_TICKET_CALL_WAIT + request.getTicketId());
|
||||||
if (CollectionUtil.isNotEmpty(userIds)) {
|
if (CollectionUtil.isNotEmpty(userIds)) {
|
||||||
userIds.forEach(uid -> {
|
userIds.forEach(uid -> {
|
||||||
|
List<String> us = StrUtil.split(uid, "-");
|
||||||
|
String receiverUserLanguageCode = StrUtil.equals(us.get(0), Constant.FROM_ADMIN)
|
||||||
|
? Constant.DEFAULT_LANGUAGE_CODE
|
||||||
|
: appUserService.getById(Integer.valueOf(us.get(2))).getLanguageCode();
|
||||||
uniPushService.send(new UniPushMessage()
|
uniPushService.send(new UniPushMessage()
|
||||||
.setSenderId(uid)//不重要
|
.setSenderId(uid)//不重要
|
||||||
.setReceiverId(uid)
|
.setReceiverId(uid)
|
||||||
.setSendData(new UniPushMessageBody()
|
.setSendData(new UniPushMessageBody()
|
||||||
.setTitle("视频通话")
|
.setTitle("视频通话")
|
||||||
.setContent("视频通话结束")
|
.setContent("视频通话结束")
|
||||||
.setPayload(new UniPushMessageCallPayload()
|
.setPayload(new UniPushMessageCallPayload()
|
||||||
.setTitle("视频通话结束")
|
.setTitle("视频通话结束")
|
||||||
.setTicketId(String.valueOf(request.getTicketId()))
|
.setTicketId(String.valueOf(request.getTicketId()))
|
||||||
.setTicketType(ticket.getType())
|
.setTicketType(ticket.getType())
|
||||||
.setUserId(Integer.valueOf(StrUtil.split(uid, "-").get(2)))
|
.setUserId(Integer.valueOf(StrUtil.split(uid, "-").get(2)))
|
||||||
.setCategory("ticketCallEnd")
|
.setCategory("ticketCallEnd")
|
||||||
.setFrom("app")
|
.setFrom("app")
|
||||||
|
)
|
||||||
)
|
)
|
||||||
)
|
, receiverUserLanguageCode);
|
||||||
);
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
stringRedisTemplate.delete(Constant.REDIS_KEY_TICKET_CALL_WAIT + request.getTicketId());
|
stringRedisTemplate.delete(Constant.REDIS_KEY_TICKET_CALL_WAIT + request.getTicketId());
|
||||||
} else {
|
} else {
|
||||||
|
String receiverUserLanguageCode = StrUtil.equals(request.getFrom(), Constant.FROM_ADMIN)
|
||||||
|
? Constant.DEFAULT_LANGUAGE_CODE
|
||||||
|
: appUserService.getById(request.getFromUserId()).getLanguageCode();
|
||||||
uniPushService.send(new UniPushMessage()
|
uniPushService.send(new UniPushMessage()
|
||||||
.setSenderId(AppUserUtil.getFrom() + "-uid-" + AppUserUtil.getUserId())//不重要
|
.setSenderId(AppUserUtil.getFrom() + "-uid-" + AppUserUtil.getUserId())//不重要
|
||||||
.setReceiverId(request.getFrom() + "-uid-" + request.getFromUserId())
|
.setReceiverId(request.getFrom() + "-uid-" + request.getFromUserId())
|
||||||
.setSendData(new UniPushMessageBody()
|
.setSendData(new UniPushMessageBody()
|
||||||
.setTitle("视频通话")
|
.setTitle("视频通话")
|
||||||
.setContent("视频通话拒接")
|
.setContent("视频通话拒接")
|
||||||
.setPayload(new UniPushMessageCallPayload()
|
.setPayload(new UniPushMessageCallPayload()
|
||||||
.setTitle("视频通话拒接")
|
.setTitle("视频通话拒接")
|
||||||
.setTicketId(String.valueOf(request.getTicketId()))
|
.setTicketId(String.valueOf(request.getTicketId()))
|
||||||
.setTicketType(ticket.getType())
|
.setTicketType(ticket.getType())
|
||||||
.setUserId(AppUserUtil.getUserId())
|
.setUserId(AppUserUtil.getUserId())
|
||||||
.setCategory("ticketCallReject")
|
.setCategory("ticketCallReject")
|
||||||
.setFrom("app")
|
.setFrom("app")
|
||||||
|
)
|
||||||
)
|
)
|
||||||
)
|
, receiverUserLanguageCode);
|
||||||
);
|
|
||||||
stringRedisTemplate.opsForSet().remove(Constant.REDIS_KEY_TICKET_CALL_WAIT + request.getTicketId(), Constant.FROM_APP + "-uid-" + AppUserUtil.getUserId());
|
stringRedisTemplate.opsForSet().remove(Constant.REDIS_KEY_TICKET_CALL_WAIT + request.getTicketId(), Constant.FROM_APP + "-uid-" + AppUserUtil.getUserId());
|
||||||
}
|
}
|
||||||
taskScheduler.schedule(() -> {
|
taskScheduler.schedule(() -> {
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,13 @@
|
||||||
package com.nflg.mobilebroken.cfs.event;
|
package com.nflg.mobilebroken.cfs.event;
|
||||||
|
|
||||||
import cn.hutool.core.collection.CollectionUtil;
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
|
import cn.hutool.core.util.StrUtil;
|
||||||
import com.nflg.mobilebroken.cfs.service.ShengWangService;
|
import com.nflg.mobilebroken.cfs.service.ShengWangService;
|
||||||
import com.nflg.mobilebroken.cfs.service.SsePushService;
|
import com.nflg.mobilebroken.cfs.service.SsePushService;
|
||||||
import com.nflg.mobilebroken.common.constant.Constant;
|
import com.nflg.mobilebroken.common.constant.Constant;
|
||||||
import com.nflg.mobilebroken.common.constant.TicketState;
|
import com.nflg.mobilebroken.common.constant.TicketState;
|
||||||
import com.nflg.mobilebroken.common.pojo.dto.*;
|
import com.nflg.mobilebroken.common.pojo.dto.*;
|
||||||
|
import com.nflg.mobilebroken.repository.service.IAppUserService;
|
||||||
import com.nflg.mobilebroken.repository.service.TicketChatService;
|
import com.nflg.mobilebroken.repository.service.TicketChatService;
|
||||||
import com.nflg.mobilebroken.starter.service.UniPushService;
|
import com.nflg.mobilebroken.starter.service.UniPushService;
|
||||||
import org.springframework.beans.BeansException;
|
import org.springframework.beans.BeansException;
|
||||||
|
|
@ -27,6 +29,7 @@ public class TicketCallEndEvent extends ApplicationEvent implements ApplicationC
|
||||||
private ShengWangService shengWangService;
|
private ShengWangService shengWangService;
|
||||||
private StringRedisTemplate stringRedisTemplate;
|
private StringRedisTemplate stringRedisTemplate;
|
||||||
private UniPushService uniPushService;
|
private UniPushService uniPushService;
|
||||||
|
private IAppUserService appUserService;
|
||||||
|
|
||||||
public TicketCallEndEvent(Object source, TicketDTO ticket) {
|
public TicketCallEndEvent(Object source, TicketDTO ticket) {
|
||||||
super(source);
|
super(source);
|
||||||
|
|
@ -40,6 +43,7 @@ public class TicketCallEndEvent extends ApplicationEvent implements ApplicationC
|
||||||
this.shengWangService = applicationContext.getBean(ShengWangService.class);
|
this.shengWangService = applicationContext.getBean(ShengWangService.class);
|
||||||
this.stringRedisTemplate = applicationContext.getBean(StringRedisTemplate.class);
|
this.stringRedisTemplate = applicationContext.getBean(StringRedisTemplate.class);
|
||||||
this.uniPushService = applicationContext.getBean(UniPushService.class);
|
this.uniPushService = applicationContext.getBean(UniPushService.class);
|
||||||
|
this.appUserService = applicationContext.getBean(IAppUserService.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void send() throws IOException, InterruptedException {
|
public void send() throws IOException, InterruptedException {
|
||||||
|
|
@ -63,6 +67,9 @@ public class TicketCallEndEvent extends ApplicationEvent implements ApplicationC
|
||||||
if (Objects.nonNull(userId)) {
|
if (Objects.nonNull(userId)) {
|
||||||
String from = userId.toString().startsWith("1") ? "app" : "admin";
|
String from = userId.toString().startsWith("1") ? "app" : "admin";
|
||||||
userId = Integer.valueOf(userId.toString().substring(1));
|
userId = Integer.valueOf(userId.toString().substring(1));
|
||||||
|
String receiverUserLanguageCode = StrUtil.equals(from, Constant.FROM_ADMIN)
|
||||||
|
? Constant.DEFAULT_LANGUAGE_CODE
|
||||||
|
: appUserService.getById(userId).getLanguageCode();
|
||||||
uniPushService.send(new UniPushMessage()
|
uniPushService.send(new UniPushMessage()
|
||||||
.setSenderId(from + "-uid-0")//不重要
|
.setSenderId(from + "-uid-0")//不重要
|
||||||
.setReceiverId(from + "-uid-" + userId)
|
.setReceiverId(from + "-uid-" + userId)
|
||||||
|
|
@ -76,7 +83,7 @@ public class TicketCallEndEvent extends ApplicationEvent implements ApplicationC
|
||||||
.setFrom("app")
|
.setFrom("app")
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
);
|
,receiverUserLanguageCode);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -13,6 +13,8 @@ public class Constant {
|
||||||
|
|
||||||
public static final String DEFAULT_LANGUAGE_CODE = "cn";
|
public static final String DEFAULT_LANGUAGE_CODE = "cn";
|
||||||
|
|
||||||
|
public static final String HEADER_LANGUAGE = "language";
|
||||||
|
|
||||||
public static final String DICTIONARY_TYPE_SERVICE_EVALUATION = "ServiceEvaluation";
|
public static final String DICTIONARY_TYPE_SERVICE_EVALUATION = "ServiceEvaluation";
|
||||||
|
|
||||||
public static final String DICTIONARY_TYPE_EXPERIENCE_EVALUATION = "ExperienceEvaluation";
|
public static final String DICTIONARY_TYPE_EXPERIENCE_EVALUATION = "ExperienceEvaluation";
|
||||||
|
|
|
||||||
|
|
@ -431,7 +431,7 @@ public class TicketController extends ControllerBase {
|
||||||
ssePushService.sendTicketMessageToApp(ticket.getId(), message);
|
ssePushService.sendTicketMessageToApp(ticket.getId(), message);
|
||||||
ssePushService.sendTicketMessageToAdmin(ticket.getId(), message);
|
ssePushService.sendTicketMessageToAdmin(ticket.getId(), message);
|
||||||
request.getUserIds().forEach(userId -> {
|
request.getUserIds().forEach(userId -> {
|
||||||
uniPushService.sendTodoMessageFromAdmin(String.valueOf(ticket.getId()), 1, Constant.FROM_ADMIN, userId, "分派工单");
|
uniPushService.sendTodoMessageFromAdmin(String.valueOf(ticket.getId()), 1, Constant.FROM_ADMIN, userId, "分派工单", Constant.DEFAULT_LANGUAGE_CODE);
|
||||||
});
|
});
|
||||||
adminMessageService.setReaded(AdminUserUtil.getUserId(), ticket.getId(), MessageSubType.TicketToBeAssigned.getState());
|
adminMessageService.setReaded(AdminUserUtil.getUserId(), ticket.getId(), MessageSubType.TicketToBeAssigned.getState());
|
||||||
return ApiResult.success();
|
return ApiResult.success();
|
||||||
|
|
@ -492,9 +492,12 @@ public class TicketController extends ControllerBase {
|
||||||
//推送消息
|
//推送消息
|
||||||
ssePushService.sendTicketMessageToAdmin(id, message);
|
ssePushService.sendTicketMessageToAdmin(id, message);
|
||||||
ssePushService.sendTicketMessageToApp(id, message);
|
ssePushService.sendTicketMessageToApp(id, message);
|
||||||
uniPushService.sendTodoMessageFromAdmin(String.valueOf(ticket.getId()), 1, ticket.getUserPlatform(), ticket.getUserId(), "工单已完成");
|
String receiverUserLanguageCode = StrUtil.equals(ticket.getUserPlatform(), Constant.FROM_ADMIN)
|
||||||
|
? Constant.DEFAULT_LANGUAGE_CODE
|
||||||
|
: appUserService.getById(ticket.getUserId()).getLanguageCode();
|
||||||
|
uniPushService.sendTodoMessageFromAdmin(String.valueOf(ticket.getId()), 1, ticket.getUserPlatform(), ticket.getUserId(), "工单已完成", receiverUserLanguageCode);
|
||||||
deviceTypeService.getCqms(ticket.getDeviceNo()).forEach(cqm -> {
|
deviceTypeService.getCqms(ticket.getDeviceNo()).forEach(cqm -> {
|
||||||
uniPushService.sendTodoMessageFromAdmin(String.valueOf(ticket.getId()), 1, Constant.FROM_ADMIN, cqm, "工单已完成");
|
uniPushService.sendTodoMessageFromAdmin(String.valueOf(ticket.getId()), 1, Constant.FROM_ADMIN, cqm, "工单已完成", Constant.DEFAULT_LANGUAGE_CODE);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
return ApiResult.success();
|
return ApiResult.success();
|
||||||
|
|
@ -524,7 +527,7 @@ public class TicketController extends ControllerBase {
|
||||||
//推送消息
|
//推送消息
|
||||||
ssePushService.sendTicketMessageToAdmin(id, message);
|
ssePushService.sendTicketMessageToAdmin(id, message);
|
||||||
ssePushService.sendTicketMessageToApp(id, message);
|
ssePushService.sendTicketMessageToApp(id, message);
|
||||||
uniPushService.sendTodoMessageFromAdmin(String.valueOf(ticket.getId()), 1, Constant.FROM_ADMIN, StrUtil.splitToInt(ticket.getHandle(), ",")[0], "工单被驳回");
|
uniPushService.sendTodoMessageFromAdmin(String.valueOf(ticket.getId()), 1, Constant.FROM_ADMIN, StrUtil.splitToInt(ticket.getHandle(), ",")[0], "工单被驳回", Constant.DEFAULT_LANGUAGE_CODE);
|
||||||
stringRedisTemplate.opsForHash().delete("ticket:disbale:SelectImage", id.toString());
|
stringRedisTemplate.opsForHash().delete("ticket:disbale:SelectImage", id.toString());
|
||||||
adminMessageService.setReaded(AdminUserUtil.getUserId(), id, MessageSubType.TicketSolutionAudit.getState());
|
adminMessageService.setReaded(AdminUserUtil.getUserId(), id, MessageSubType.TicketSolutionAudit.getState());
|
||||||
}
|
}
|
||||||
|
|
@ -958,7 +961,7 @@ public class TicketController extends ControllerBase {
|
||||||
@GetMapping("getSolutionReviewDepartment")
|
@GetMapping("getSolutionReviewDepartment")
|
||||||
@ApiMark(moduleName = "工单管理", apiName = "获取工单解决方案评审部门")
|
@ApiMark(moduleName = "工单管理", apiName = "获取工单解决方案评审部门")
|
||||||
public ApiResult<List<SolutionReviewDepartmentVO>> getSolutionReviewDepartment(@Valid @RequestParam @NotNull Long ticketId) {
|
public ApiResult<List<SolutionReviewDepartmentVO>> getSolutionReviewDepartment(@Valid @RequestParam @NotNull Long ticketId) {
|
||||||
return ApiResult.success(ticketSolutionAuditService.getByTicket(ticketId,MultilingualUtil.getLanguage()));
|
return ApiResult.success(ticketSolutionAuditService.getByTicket(ticketId, MultilingualUtil.getLanguage()));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -1221,7 +1224,7 @@ public class TicketController extends ControllerBase {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//解决方案审核
|
//解决方案审核
|
||||||
List<SolutionReviewDepartmentVO> reviewDepartments = ticketSolutionAuditService.getByTicket(ticketId,MultilingualUtil.getLanguage())
|
List<SolutionReviewDepartmentVO> reviewDepartments = ticketSolutionAuditService.getByTicket(ticketId, MultilingualUtil.getLanguage())
|
||||||
.stream()
|
.stream()
|
||||||
.filter(vo -> StrUtil.isNotBlank(vo.getUserName()))
|
.filter(vo -> StrUtil.isNotBlank(vo.getUserName()))
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
|
|
@ -1399,28 +1402,31 @@ public class TicketController extends ControllerBase {
|
||||||
// VUtils.trueThrowBusinessError(ticketCallJoinService.isInCall(ticket.getId(), receiveUserFrom, receiveUserId)).throwMessage("对方正在通话中");
|
// VUtils.trueThrowBusinessError(ticketCallJoinService.isInCall(ticket.getId(), receiveUserFrom, receiveUserId)).throwMessage("对方正在通话中");
|
||||||
// ticketCallService.add(ticketId, sendUserId, sendUserFrom, receiveUserId, receiveUserFrom);
|
// ticketCallService.add(ticketId, sendUserId, sendUserFrom, receiveUserId, receiveUserFrom);
|
||||||
AdminUser adminUser = adminUserService.getById(sendUserId);
|
AdminUser adminUser = adminUserService.getById(sendUserId);
|
||||||
|
String receiverUserLanguageCode = StrUtil.equals(receiveUserFrom, Constant.FROM_ADMIN)
|
||||||
|
? Constant.DEFAULT_LANGUAGE_CODE
|
||||||
|
: appUserService.getById(receiveUserId).getLanguageCode();
|
||||||
uniPushService.send(new UniPushMessage()
|
uniPushService.send(new UniPushMessage()
|
||||||
.setSenderId("admin-uid-" + sendUserId)
|
.setSenderId("admin-uid-" + sendUserId)
|
||||||
.setReceiverId(receiveUserFrom + "-uid-" + receiveUserId)
|
.setReceiverId(receiveUserFrom + "-uid-" + receiveUserId)
|
||||||
.setSendData(new UniPushMessageBody()
|
.setSendData(new UniPushMessageBody()
|
||||||
.setTitle("视频通话")
|
|
||||||
.setContentPre(adminUser.getUserName())
|
|
||||||
.setContent("请求与您视频通话")
|
|
||||||
.setPayload(new UniPushMessageCallPayload()
|
|
||||||
.setTitle("视频通话")
|
.setTitle("视频通话")
|
||||||
.setContentPre(adminUser.getUserName())
|
.setContentPre(adminUser.getUserName())
|
||||||
.setContent("请求与您视频通话")
|
.setContent("请求与您视频通话")
|
||||||
.setTicketId(String.valueOf(ticketId))
|
.setPayload(new UniPushMessageCallPayload()
|
||||||
.setTicketType(1)
|
.setTitle("视频通话")
|
||||||
.setUserId(adminUser.getId())
|
.setContentPre(adminUser.getUserName())
|
||||||
.setUserName(adminUser.getUserName())
|
.setContent("请求与您视频通话")
|
||||||
.setUserAvatar(adminUser.getAvatar())
|
.setTicketId(String.valueOf(ticketId))
|
||||||
.setCategory("ticketCall")
|
.setTicketType(1)
|
||||||
.setFrom("admin")
|
.setUserId(adminUser.getId())
|
||||||
.setReceiverId(receiveUserFrom + "-uid-" + receiveUserId)
|
.setUserName(adminUser.getUserName())
|
||||||
|
.setUserAvatar(adminUser.getAvatar())
|
||||||
|
.setCategory("ticketCall")
|
||||||
|
.setFrom("admin")
|
||||||
|
.setReceiverId(receiveUserFrom + "-uid-" + receiveUserId)
|
||||||
|
)
|
||||||
)
|
)
|
||||||
)
|
, receiverUserLanguageCode);
|
||||||
);
|
|
||||||
if (StrUtil.equals(Constant.FROM_APP, ticket.getUserPlatform())) {
|
if (StrUtil.equals(Constant.FROM_APP, ticket.getUserPlatform())) {
|
||||||
ssePushService.sendTicketCallToApp(adminUser, ticket.getUserId(), ticketId);
|
ssePushService.sendTicketCallToApp(adminUser, ticket.getUserId(), ticketId);
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -1453,27 +1459,27 @@ public class TicketController extends ControllerBase {
|
||||||
userNames.add(adminUser1.getUserName());
|
userNames.add(adminUser1.getUserName());
|
||||||
} else {
|
} else {
|
||||||
uniPushService.send(new UniPushMessage()
|
uniPushService.send(new UniPushMessage()
|
||||||
.setSenderId("admin-uid-" + adminUser.getId())
|
.setSenderId("admin-uid-" + adminUser.getId())
|
||||||
.setReceiverId("admin-uid-" + userId)
|
.setReceiverId("admin-uid-" + userId)
|
||||||
.setSendData(new UniPushMessageBody()
|
.setSendData(new UniPushMessageBody()
|
||||||
.setTitle("视频通话")
|
|
||||||
.setContentPre(adminUser.getUserName())
|
|
||||||
.setContent("请求与您视频通话")
|
|
||||||
.setPayload(new UniPushMessageCallPayload()
|
|
||||||
.setTitle("视频通话")
|
.setTitle("视频通话")
|
||||||
.setContentPre(adminUser.getUserName())
|
.setContentPre(adminUser.getUserName())
|
||||||
.setContent("请求与您视频通话")
|
.setContent("请求与您视频通话")
|
||||||
.setTicketId(String.valueOf(request.getTicketId()))
|
.setPayload(new UniPushMessageCallPayload()
|
||||||
.setTicketType(1)
|
.setTitle("视频通话")
|
||||||
.setUserId(adminUser.getId())
|
.setContentPre(adminUser.getUserName())
|
||||||
.setUserName(adminUser.getUserName())
|
.setContent("请求与您视频通话")
|
||||||
.setUserAvatar(adminUser.getAvatar())
|
.setTicketId(String.valueOf(request.getTicketId()))
|
||||||
.setCategory("ticketCall")
|
.setTicketType(1)
|
||||||
.setFrom("admin")
|
.setUserId(adminUser.getId())
|
||||||
.setReceiverId("admin-uid-" + userId)
|
.setUserName(adminUser.getUserName())
|
||||||
|
.setUserAvatar(adminUser.getAvatar())
|
||||||
|
.setCategory("ticketCall")
|
||||||
|
.setFrom("admin")
|
||||||
|
.setReceiverId("admin-uid-" + userId)
|
||||||
|
)
|
||||||
)
|
)
|
||||||
)
|
, Constant.DEFAULT_LANGUAGE_CODE);
|
||||||
);
|
|
||||||
ssePushService.sendTicketCallToAdmin(adminUser, userId, request.getTicketId());
|
ssePushService.sendTicketCallToAdmin(adminUser, userId, request.getTicketId());
|
||||||
// ticketCallJoinService.add(ticketCall.getId(), userId, Constant.FROM_ADMIN);
|
// ticketCallJoinService.add(ticketCall.getId(), userId, Constant.FROM_ADMIN);
|
||||||
stringRedisTemplate.opsForSet().add(Constant.REDIS_KEY_TICKET_CALL_WAIT + request.getTicketId(), Constant.FROM_ADMIN + "-uid-" + userId);
|
stringRedisTemplate.opsForSet().add(Constant.REDIS_KEY_TICKET_CALL_WAIT + request.getTicketId(), Constant.FROM_ADMIN + "-uid-" + userId);
|
||||||
|
|
|
||||||
|
|
@ -61,6 +61,7 @@
|
||||||
, u.title_id
|
, u.title_id
|
||||||
, p.position_name AS 'title'
|
, p.position_name AS 'title'
|
||||||
, u.type
|
, u.type
|
||||||
|
,u.language_code
|
||||||
FROM app_user u
|
FROM app_user u
|
||||||
LEFT JOIN t_base_customer c ON u.company_id = c.id
|
LEFT JOIN t_base_customer c ON u.company_id = c.id
|
||||||
LEFT JOIN t_base_area a1 ON u.area_id = a1.id
|
LEFT JOIN t_base_area a1 ON u.area_id = a1.id
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,9 @@
|
||||||
package com.nflg.mobilebroken.starter.interceptor;
|
package com.nflg.mobilebroken.starter.interceptor;
|
||||||
|
|
||||||
|
import cn.dev33.satoken.session.SaSession;
|
||||||
|
import cn.dev33.satoken.stp.StpUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
|
import com.nflg.mobilebroken.common.constant.Constant;
|
||||||
import com.nflg.mobilebroken.common.util.MultilingualUtil;
|
import com.nflg.mobilebroken.common.util.MultilingualUtil;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import org.springframework.web.servlet.HandlerInterceptor;
|
import org.springframework.web.servlet.HandlerInterceptor;
|
||||||
|
|
@ -14,12 +17,14 @@ public class LanguageInterceptor implements HandlerInterceptor {
|
||||||
@Override
|
@Override
|
||||||
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
|
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
|
||||||
// 从请求头中获取 language 参数
|
// 从请求头中获取 language 参数
|
||||||
String language = request.getHeader("language");
|
String language = request.getHeader(Constant.HEADER_LANGUAGE);
|
||||||
if(StrUtil.isNotBlank(language)){
|
if (StrUtil.isNotBlank(language)) {
|
||||||
MultilingualUtil.setLanguage(language);
|
MultilingualUtil.setLanguage(language);
|
||||||
|
StpUtil.getTokenSession().set(Constant.HEADER_LANGUAGE, language);
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
|
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
|
||||||
// 请求完成后清理 ThreadLocal,防止内存泄漏
|
// 请求完成后清理 ThreadLocal,防止内存泄漏
|
||||||
|
|
|
||||||
|
|
@ -34,8 +34,8 @@ public class UniPushService {
|
||||||
private AliYunTranslate aliYunTranslate;
|
private AliYunTranslate aliYunTranslate;
|
||||||
|
|
||||||
@Async("httpExecutor")
|
@Async("httpExecutor")
|
||||||
public CompletableFuture<Void> send(UniPushMessage message) {
|
public CompletableFuture<Void> send(UniPushMessage message, String languageCode) {
|
||||||
translate(message);
|
translate(message, languageCode);
|
||||||
log.info("发送uniapp消息:{}", JSONUtil.toJsonStr(message));
|
log.info("发送uniapp消息:{}", JSONUtil.toJsonStr(message));
|
||||||
RestTemplate restTemplate = new RestTemplate();
|
RestTemplate restTemplate = new RestTemplate();
|
||||||
ResponseEntity<String> response = restTemplate.postForEntity(url, message, String.class);
|
ResponseEntity<String> response = restTemplate.postForEntity(url, message, String.class);
|
||||||
|
|
@ -43,63 +43,64 @@ public class UniPushService {
|
||||||
return CompletableFuture.completedFuture(null);
|
return CompletableFuture.completedFuture(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void translate(UniPushMessage message) {
|
private void translate(UniPushMessage message, String languageCode) {
|
||||||
String languageCode = MultilingualUtil.getLanguage();
|
if (!StrUtil.equals(languageCode, Constant.DEFAULT_LANGUAGE_CODE)) {
|
||||||
String aliyunCode = Constant.LANGUAGE_ALIYUN_MAP.get(languageCode);
|
String aliyunCode = Constant.LANGUAGE_ALIYUN_MAP.get(languageCode);
|
||||||
if (StrUtil.isNotBlank(aliyunCode) && !StrUtil.equals(languageCode, Constant.DEFAULT_LANGUAGE_CODE)) {
|
if (StrUtil.isNotBlank(aliyunCode)) {
|
||||||
UniPushMessageBody body = message.getSendData();
|
UniPushMessageBody body = message.getSendData();
|
||||||
body.setTitle(aliYunTranslate.translateWord(body.getTitle(), aliyunCode));
|
body.setTitle(aliYunTranslate.translateWord(body.getTitle(), aliyunCode));
|
||||||
body.setContent(body.getContentPre() + aliYunTranslate.translateWord(body.getContent(), aliyunCode));
|
body.setContent(body.getContentPre() + aliYunTranslate.translateWord(body.getContent(), aliyunCode));
|
||||||
if (body.getPayload() instanceof UniPushMessageCallPayload) {
|
if (body.getPayload() instanceof UniPushMessageCallPayload) {
|
||||||
UniPushMessageCallPayload payload = (UniPushMessageCallPayload) body.getPayload();
|
UniPushMessageCallPayload payload = (UniPushMessageCallPayload) body.getPayload();
|
||||||
payload.setTitle(aliYunTranslate.translateWord(payload.getTitle(), aliyunCode));
|
payload.setTitle(aliYunTranslate.translateWord(payload.getTitle(), aliyunCode));
|
||||||
payload.setContent(payload.getContentPre() + aliYunTranslate.translateWord(payload.getContent(), aliyunCode));
|
payload.setContent(payload.getContentPre() + aliYunTranslate.translateWord(payload.getContent(), aliyunCode));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void sendTicketMessage(String from, String to, ChatMessageDTO data) {
|
// public void sendTicketMessage(String from, String to, ChatMessageDTO data) {
|
||||||
send(new UniPushMessage()
|
// send(new UniPushMessage()
|
||||||
.setSenderId(from)
|
// .setSenderId(from)
|
||||||
.setReceiverId(to)
|
// .setReceiverId(to)
|
||||||
.setSendData(new UniPushMessageBody()
|
// .setSendData(new UniPushMessageBody()
|
||||||
.setTitle("工单聊天消息")
|
// .setTitle("工单聊天消息")
|
||||||
.setContent(CollectionUtil.isNotEmpty(data.getAttachments()) ? "文件" : (CollectionUtil.isNotEmpty(data.getImages()) ? "图片" : data.getContent()))
|
// .setContent(CollectionUtil.isNotEmpty(data.getAttachments()) ? "文件" : (CollectionUtil.isNotEmpty(data.getImages()) ? "图片" : data.getContent()))
|
||||||
)
|
// )
|
||||||
);
|
// );
|
||||||
}
|
// }
|
||||||
|
|
||||||
public void sendTodoMessageFromAdmin(String ticketId, Integer type, String platform, Integer userId, String content) {
|
public void sendTodoMessageFromAdmin(String ticketId, Integer type, String platform, Integer userId, String content, String languageCode) {
|
||||||
send(new UniPushMessage()
|
send(new UniPushMessage()
|
||||||
.setSenderId("admin-uid-" + AdminUserUtil.getUserId())
|
.setSenderId("admin-uid-" + AdminUserUtil.getUserId())
|
||||||
.setReceiverId(platform + "-uid-" + userId)
|
.setReceiverId(platform + "-uid-" + userId)
|
||||||
.setSendData(new UniPushMessageBody()
|
.setSendData(new UniPushMessageBody()
|
||||||
.setTitle("工单消息")
|
|
||||||
.setContent(content)
|
|
||||||
.setPayload(new UniPushMessageCallPayload()
|
|
||||||
.setTicketId(ticketId)
|
|
||||||
.setTicketType(type)
|
|
||||||
.setTitle("工单消息")
|
.setTitle("工单消息")
|
||||||
.setContent(content)
|
.setContent(content)
|
||||||
|
.setPayload(new UniPushMessageCallPayload()
|
||||||
|
.setTicketId(ticketId)
|
||||||
|
.setTicketType(type)
|
||||||
|
.setTitle("工单消息")
|
||||||
|
.setContent(content)
|
||||||
|
)
|
||||||
)
|
)
|
||||||
)
|
, languageCode);
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void sendTodoMessageFromApp(String ticketId, Integer type, Integer userId, String content) {
|
public void sendTodoMessageFromApp(String ticketId, Integer type, Integer userId, String content, String languageCode) {
|
||||||
send(new UniPushMessage()
|
send(new UniPushMessage()
|
||||||
.setSenderId("app-uid-" + AppUserUtil.getUserId())
|
.setSenderId("app-uid-" + AppUserUtil.getUserId())
|
||||||
.setReceiverId("admin-uid-" + userId)
|
.setReceiverId("admin-uid-" + userId)
|
||||||
.setSendData(new UniPushMessageBody()
|
.setSendData(new UniPushMessageBody()
|
||||||
.setTitle("工单消息")
|
|
||||||
.setContent(content)
|
|
||||||
.setPayload(new UniPushMessageCallPayload()
|
|
||||||
.setTicketId(ticketId)
|
|
||||||
.setTicketType(type)
|
|
||||||
.setTitle("工单消息")
|
.setTitle("工单消息")
|
||||||
.setContent(content)
|
.setContent(content)
|
||||||
|
.setPayload(new UniPushMessageCallPayload()
|
||||||
|
.setTicketId(ticketId)
|
||||||
|
.setTicketType(type)
|
||||||
|
.setTitle("工单消息")
|
||||||
|
.setContent(content)
|
||||||
|
)
|
||||||
)
|
)
|
||||||
)
|
, languageCode);
|
||||||
);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Loading…
Reference in New Issue