来电提醒与客户催单
用户下单并且支付成功后,需要第一时间通知外卖商家。通知方式有:
- 语音播报
- 弹出提示框
实现步骤:
- 通过WebSocket实现管理端页面和服务端保持长连接状态
- 当客户支付后,调用WebSocket的相关API实现服务端向客户端推送消息
- 客户端浏览器解析服务端推送的消息,判断是来电提醒还是客户催单,进行相应的消息提醒和语音播报
- 约定服务端发送给客户端浏览器的数据格式为JSON,字段包括:type,orderId,content
type为消息类型,1为来单提醒 2为客户催单
orderId为订单ID
content为消息内容
来电提醒
OrderServerImpl
java"> @Autowiredprivate WebSocketServer webSocketServer;/*** 支付成功,修改订单状态*/@Override@Transactionalpublic void paySuccess(String outTradeNo) {// 根据订单号查询订单LambdaQueryWrapper<Orders> queryWrapper = new LambdaQueryWrapper<>();queryWrapper.eq(Orders::getNumber, outTradeNo);Orders ordersDB = orderMapper.selectOne(queryWrapper);// 根据订单id更新订单的状态、支付方式、支付状态、结账时间Orders orders = Orders.builder().id(ordersDB.getId()).status(Orders.TO_BE_CONFIRMED).payStatus(Orders.PAID).checkoutTime(LocalDateTime.now()).build();orderMapper.updateById(orders);//通过WebSocket向客户端发送消息 type , orderId ,contentMap map = new HashMap();map.put("type", 1);//1表示来单提醒map.put("orderId", ordersDB.getId());map.put("content", "订单号: " + outTradeNo + " 有新订单,请及时处理!");String json = JSON.toJSONString(map);webSocketServer.sendToAllClient(json);}