From ddedffa021b007cba71723cc11bc9d60fd87c82b Mon Sep 17 00:00:00 2001 From: guochaojie Date: Wed, 12 Jun 2024 12:57:32 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BE=AE=E4=BF=A1=E6=B6=88=E6=81=AF=20fix?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/RecycleOrderController.java | 18 ++++++++++++------ .../cc/yunxi/domain/vo/socket/OrderNew.java | 4 ++-- .../cc/yunxi/service/impl/WsServiceImpl.java | 2 +- .../java/cc/yunxi/utils/WsSessionManager.java | 2 ++ 4 files changed, 17 insertions(+), 9 deletions(-) diff --git a/nxhs-service/src/main/java/cc/yunxi/controller/RecycleOrderController.java b/nxhs-service/src/main/java/cc/yunxi/controller/RecycleOrderController.java index 3ca6ae0..6ec49fd 100644 --- a/nxhs-service/src/main/java/cc/yunxi/controller/RecycleOrderController.java +++ b/nxhs-service/src/main/java/cc/yunxi/controller/RecycleOrderController.java @@ -217,20 +217,26 @@ public class RecycleOrderController { OrderCancel cancel = new OrderCancel(); cancel.setMessageType(MessageTypeEnum.CANCEL); cancel.setAppType(AppTypeEnum.recycler); - cancel.setReceiveUserId(order.getStaffsId()); + cancel.setOrderNo(order.getOrderNumber()); cancel.setOrderStatus(order.getOrderStatus()); cancel.setCancelOrderTime(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); cancel.setClientPhone(order.getClientMobile()); cancel.setClientAddress(addressInfo.getReceiveStreet()); - - try { - wsService.sendMsgToUser(cancel); - } catch (IOException e) { - e.printStackTrace(); + //已接单取消 通知人 未接单取消 则不通知 + if (StrUtil.isNotEmpty(order.getStaffsId())) { + cancel.setReceiveUserId(order.getStaffsId()); + try { + wsService.sendMsgToUser(cancel); + } catch (IOException e) { + e.printStackTrace(); + } + } else { + //未接单取消 则不通知 } + return CommonResult.success(true); } diff --git a/nxhs-service/src/main/java/cc/yunxi/domain/vo/socket/OrderNew.java b/nxhs-service/src/main/java/cc/yunxi/domain/vo/socket/OrderNew.java index bf08c68..4c63b02 100644 --- a/nxhs-service/src/main/java/cc/yunxi/domain/vo/socket/OrderNew.java +++ b/nxhs-service/src/main/java/cc/yunxi/domain/vo/socket/OrderNew.java @@ -13,8 +13,8 @@ public class OrderNew extends SocketMessage{ private String orderNo; @ApiModelProperty("订单状态") private OrderStatusEnum orderStatus; - @ApiModelProperty("商品类型") - private String goodsType; +// @ApiModelProperty("商品类型") +// private String goodsType; @ApiModelProperty("预约时间") private String reserveTime; @ApiModelProperty("预约人号码") diff --git a/nxhs-service/src/main/java/cc/yunxi/service/impl/WsServiceImpl.java b/nxhs-service/src/main/java/cc/yunxi/service/impl/WsServiceImpl.java index ecbc004..07d7eea 100644 --- a/nxhs-service/src/main/java/cc/yunxi/service/impl/WsServiceImpl.java +++ b/nxhs-service/src/main/java/cc/yunxi/service/impl/WsServiceImpl.java @@ -31,7 +31,7 @@ public class WsServiceImpl implements IWsService { if (appType.equals(AppTypeEnum.client)) { userSession = sessionManager.getClientSession(userId); } else if (appType.equals(AppTypeEnum.recycler)) { - userSession = sessionManager.getClientSession(userId); + userSession = sessionManager.getRecyclerSession(userId); } else { log.info("小程序未指定,不能发送!"); throw new BusinessLogicException("socket 消息发送失败,appType is error!"); diff --git a/nxhs-service/src/main/java/cc/yunxi/utils/WsSessionManager.java b/nxhs-service/src/main/java/cc/yunxi/utils/WsSessionManager.java index 49a1d16..a7a3f75 100644 --- a/nxhs-service/src/main/java/cc/yunxi/utils/WsSessionManager.java +++ b/nxhs-service/src/main/java/cc/yunxi/utils/WsSessionManager.java @@ -45,6 +45,7 @@ public class WsSessionManager { || !oldSession.getId().equals(session.getId()) //id不同 || !oldSession.isOpen()) { //旧session已关闭 CLIENT_SESSION.put(userId, session); //则将新的session添加到池中 + log.info("添加散户端连接:{},{}", userId, session.isOpen()); //判断缓存中是否有未发送的消息 sendCacheMessage(userId); } @@ -57,6 +58,7 @@ public class WsSessionManager { || !oldSession.getId().equals(session.getId()) //id不同 || !oldSession.isOpen()) { //旧session已关闭 RECYCLER_SESSION.put(userId, session); //则将新的session添加到池中 + log.info("添加回收员端连接:{},{}", userId, session.isOpen()); //判断缓存中是否有未发送的消息 sendCacheMessage(userId); }