diff --git a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/TestController.java b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/TestController.java index 72ba40ee..7d9fba87 100644 --- a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/TestController.java +++ b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/TestController.java @@ -49,10 +49,10 @@ public class TestController extends ControllerBase{ } } - @GetMapping("test") - public ApiResult test(@RequestParam Integer userId){ - return ApiResult.success(ticketCallService.isInCall(userId)); - } +// @GetMapping("test") +// public ApiResult test(@RequestParam Integer userId){ +// return ApiResult.success(ticketCallService.isInCall(userId)); +// } /** * 翻译为日语 diff --git a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/TicketController.java b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/TicketController.java index 7dd8730e..ee2bbc34 100644 --- a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/TicketController.java +++ b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/TicketController.java @@ -1256,7 +1256,6 @@ public class TicketController extends ControllerBase { VUtils.trueThrowBusinessError(!Objects.equals(ticket.getUserId(), AdminUserUtil.getUserId()) && !Objects.equals(AdminUserUtil.getUserId(), handlerUserId)) .throwMessage("无权限呼叫"); } - VUtils.trueThrowBusinessError(ticketCallService.isInCall(ticket.getUserId())).throwMessage("对方正在通话中"); boolean userIdCreate = StrUtil.equals(ticket.getUserPlatform(), Constant.FROM_ADMIN) && Objects.equals(ticket.getUserId(), AdminUserUtil.getUserId()); Integer sendUserId = 0, receiveUserId = 0; String sendUserFrom, receiveUserFrom; @@ -1271,6 +1270,7 @@ public class TicketController extends ControllerBase { sendUserFrom = Constant.FROM_ADMIN; receiveUserFrom = Constant.FROM_APP; } + VUtils.trueThrowBusinessError(ticketCallJoinService.isInCall(ticket.getId(), receiveUserFrom, receiveUserId)).throwMessage("对方正在通话中"); ticketCallService.add(ticketId, sendUserId, sendUserFrom, receiveUserId, receiveUserFrom); AdminUser adminUser = adminUserService.getById(sendUserId); uniPushService.send(new UniPushMessage() @@ -1347,7 +1347,7 @@ public class TicketController extends ControllerBase { VUtils.trueThrowBusinessError(Objects.isNull(ticket)).throwMessage("工单不存在"); VUtils.trueThrowBusinessError(!Objects.equals(ticket.getState(), TicketState.Processing.getState())) .throwMessage("当前工单状态不允许请求通话"); - VUtils.trueThrowBusinessError(ticketCallService.isInCall(AdminUserUtil.getUserId())) + VUtils.trueThrowBusinessError(ticketCallJoinService.isInCall(ticket.getId(), Constant.FROM_ADMIN, AdminUserUtil.getUserId())) .throwMessage("您已加入别的通话中"); ticketCallJoinService.join(ticketId, AdminUserUtil.getUserId(),Constant.FROM_ADMIN); ssePushService.sendTicketCallJoinedToAdmin(AdminUserUtil.getUserId(), ticketId); @@ -1374,13 +1374,8 @@ public class TicketController extends ControllerBase { */ @PostMapping("call/hangUp") public ApiResult hangUp(@Valid @RequestBody TicketCallHangUpRequest request) { - TicketCall ticketCall = ticketCallService.lambdaQuery() - .eq(TicketCall::getTicketId, request.getTicketId()) - .ne(TicketCall::getState, 2) - .last("limit 1") - .one(); + TicketCall ticketCall = ticketCallService.getLast(request.getTicketId()); if (Objects.isNull(ticketCall)) return ApiResult.success(); - boolean flag=false; if (request.getReject()) { AdminUser adminUser = adminUserService.getById(AdminUserUtil.getUserId()); if (StrUtil.equals(request.getFrom(), "app")) { @@ -1401,7 +1396,6 @@ public class TicketController extends ControllerBase { ) ); ssePushService.sendTicketCallHangUpToApp(request.getTicketId(), request.getFromUserId(), adminUser); - flag=ticketCallJoinService.hangUp(request.getTicketId(), AdminUserUtil.getUserId(), Constant.FROM_ADMIN, true); }else if (StrUtil.equals(request.getFrom(), "admin")) { if (Objects.equals(request.getFromUserId(), AdminUserUtil.getUserId())){ Ticket ticket = ticketService.getById(request.getTicketId()); @@ -1423,7 +1417,6 @@ public class TicketController extends ControllerBase { ) ); ssePushService.sendTicketCallCancelToAdmin(request.getTicketId(), handlerId, adminUser); - flag=ticketCallService.hangUp(request.getTicketId(), AdminUserUtil.getUserId(), Constant.FROM_ADMIN, true); }else { uniPushService.send(new UniPushMessage() .setSenderId("admin-uid-" + adminUser.getId()) @@ -1442,17 +1435,10 @@ public class TicketController extends ControllerBase { ) ); ssePushService.sendTicketCallHangUpToAdmin(request.getTicketId(), request.getFromUserId(), adminUser); - flag=ticketCallJoinService.hangUp(ticketCall.getId(), AdminUserUtil.getUserId(), Constant.FROM_ADMIN, true); } } - }else { - if (StrUtil.equals(request.getFrom(), "app") || Objects.equals(request.getFromUserId(), AdminUserUtil.getUserId())) { - flag=ticketCallService.hangUp(request.getTicketId(), AdminUserUtil.getUserId(), Constant.FROM_ADMIN, false); - }else { - flag=ticketCallJoinService.hangUp(ticketCall.getId(), AdminUserUtil.getUserId(), Constant.FROM_ADMIN, false); - } } - if (flag){ + if (ticketCallJoinService.hangUp(ticketCall.getId(), AdminUserUtil.getUserId(), Constant.FROM_ADMIN, request.getReject())) { ticketEventPublisher.publishTicketCallEndEvent(request.getTicketId()); } return ApiResult.success(); diff --git a/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/controller/TicketController.java b/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/controller/TicketController.java index d92e5c37..97865a9f 100644 --- a/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/controller/TicketController.java +++ b/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/controller/TicketController.java @@ -504,7 +504,7 @@ public class TicketController extends ControllerBase { VUtils.trueThrowBusinessError(!Objects.equals(AppUserUtil.getUserId(), ticket.getUserId())) .throwMessage("不是工单创建人无权限呼叫"); Integer handlerUserId = Arrays.stream(ticket.getHandle().split(",")).map(Integer::parseInt).findFirst().get(); - VUtils.trueThrowBusinessError(ticketCallService.isInCall(handlerUserId)).throwMessage("对方正在通话中"); + VUtils.trueThrowBusinessError(ticketCallJoinService.isInCall(ticket.getId(), Constant.FROM_ADMIN, handlerUserId)).throwMessage("对方正在通话中"); AppUser appUser = appUserService.getById(ticket.getUserId()); uniPushService.send(new UniPushMessage() .setSenderId(ticket.getUserPlatform()+"-uid-" + ticket.getUserId()) @@ -541,7 +541,7 @@ public class TicketController extends ControllerBase { VUtils.trueThrowBusinessError(!StrUtil.equals(ticket.getUserPlatform(), AppUserUtil.getFrom()) || !Objects.equals(AppUserUtil.getUserId(), ticket.getUserId())) .throwMessage("不是创建人无法加入通话"); - VUtils.trueThrowBusinessError(ticketCallService.isInCall(AppUserUtil.getUserId())) + VUtils.trueThrowBusinessError(ticketCallJoinService.isInCall(ticket.getId(), Constant.FROM_APP, AppUserUtil.getUserId())) .throwMessage("您已加入别的通话中"); ticketCallJoinService.join(ticketId, AppUserUtil.getUserId(), Constant.FROM_APP); ssePushService.sendTicketCallJoinedToApp(AppUserUtil.getUserId(), ticketId); @@ -615,13 +615,7 @@ public class TicketController extends ControllerBase { ssePushService.sendTicketCallHangUpToAdmin(request.getTicketId(), request.getFromUserId(), appUser); } } - boolean flag; - if (StrUtil.equals(request.getFrom(), Constant.FROM_APP)) { - flag = ticketCallService.hangUp(ticketCall.getId(), AppUserUtil.getUserId(), Constant.FROM_APP, request.getReject()); - } else { - flag = ticketCallJoinService.hangUp(ticketCall.getId(), AppUserUtil.getUserId(), Constant.FROM_APP, request.getReject()); - } - if (flag) { + if (ticketCallJoinService.hangUp(ticketCall.getId(), AppUserUtil.getUserId(), Constant.FROM_APP, request.getReject())) { ticketEventPublisher.publishTicketCallEndEvent(request.getTicketId()); } return ApiResult.success(); diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/entity/TicketCall.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/entity/TicketCall.java index c4e0d179..082ac718 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/entity/TicketCall.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/entity/TicketCall.java @@ -1,7 +1,6 @@ package com.nflg.mobilebroken.repository.entity; import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Getter; @@ -35,16 +34,16 @@ public class TicketCall implements Serializable { */ private Integer ticketId; - /** - * 呼叫来源,app或者admin - */ - @TableField("`from`") - private String from; - - /** - * 呼叫人id - */ - private Integer callerUserId; +// /** +// * 呼叫来源,app或者admin +// */ +// @TableField("`from`") +// private String from; +// +// /** +// * 呼叫人id +// */ +// private Integer callerUserId; /** * 状态,0-呼叫中;1-通话中;2-已结束 diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/mapper/TicketCallJoinMapper.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/mapper/TicketCallJoinMapper.java index 183cd3ac..622941f1 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/mapper/TicketCallJoinMapper.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/mapper/TicketCallJoinMapper.java @@ -13,5 +13,5 @@ import com.nflg.mobilebroken.repository.entity.TicketCallJoin; */ public interface TicketCallJoinMapper extends BaseMapper { - boolean isInCall(Integer userId); + boolean isInCall(Integer ticketId, String from, Integer userId); } diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/ITicketCallJoinService.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/ITicketCallJoinService.java index 8d20483c..1f3ea25c 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/ITicketCallJoinService.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/ITicketCallJoinService.java @@ -16,7 +16,7 @@ import javax.validation.constraints.NotNull; */ public interface ITicketCallJoinService extends IService { - boolean isInCall(Integer userId); + boolean isInCall(Integer ticketId, String from, Integer userId); void join(@Valid @NotNull Integer ticketId, Integer userId, String from); @@ -25,6 +25,4 @@ public interface ITicketCallJoinService extends IService { boolean hangUp(Integer callId, Integer userId, String from, boolean reject); void add(Integer callId, Integer userId, String from); - - void hangUpAll(Integer id); } diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/ITicketCallService.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/ITicketCallService.java index e7c7eb77..69e922d5 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/ITicketCallService.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/ITicketCallService.java @@ -15,11 +15,11 @@ import javax.validation.constraints.NotNull; */ public interface ITicketCallService extends IService { - boolean isInCall(Integer userId); +// boolean isInCall(Integer userId); void add(Integer ticketId, Integer callerUserId,String callerUserFrom, Integer calledUserId, String calledUserFrom); - boolean hangUp(@NotNull Integer ticketId, Integer userId, String from, boolean reject); +// boolean hangUp(@NotNull Integer ticketId, Integer userId, String from, boolean reject); TicketCall getLast(@NotNull Integer ticketId); } diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/TicketCallJoinServiceImpl.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/TicketCallJoinServiceImpl.java index 86850abe..60c996b5 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/TicketCallJoinServiceImpl.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/TicketCallJoinServiceImpl.java @@ -31,8 +31,8 @@ public class TicketCallJoinServiceImpl extends ServiceImpl @@ -29,26 +26,33 @@ public class TicketCallServiceImpl extends ServiceImpl