《苍穹外卖》项目学习记录-Day10来单提醒

type:用来标识消息的类型,比如说type=1表示来单提醒,type=2表示客户催单。

orderId:表示订单id,因为不管是来单提醒还是客户催单,这一次提醒都对应一个订单。是用户下了某个单或者催促某个订单,这个时候才会有相应的提醒,具体当前提醒的是哪个订单,我们也需要把这个订单id给提交过来。

content:表示具体的提醒内容,提示框会显示文字,这些文字就是我们具体推过来的这个内容content。

它是先请求到来nginx,由nginx反向代理转发到了我们后端,也就是说WebSocket这一次请求通过nginx进行了一次转发,才转发到了后端。前提是我们提前在nginx配置好了这个路径,这样客户端跟服务端握好手了,这个长连接就建立好了。

当用户下单并且支付成功之后,需要给商家推送消息。

java 复制代码
    /**
     * 支付成功,修改订单状态
     *
     * @param outTradeNo
     */
    public void paySuccess(String outTradeNo) {

        // 根据订单号查询订单
        Orders ordersDB = orderMapper.getByNumber(outTradeNo);

        // 根据订单id更新订单的状态、支付方式、支付状态、结账时间
        Orders orders = Orders.builder()
                .id(ordersDB.getId())
                .status(Orders.TO_BE_CONFIRMED)
                .payStatus(Orders.PAID)
                .checkoutTime(LocalDateTime.now())
                .build();
        orderMapper.update(orders);
        //通过websocket向客户端浏览器推送消息 type orderId content
        Map map = new HashMap();
        map.put("type",1);//1表示来单提醒 2表示客户催单
        map.put("orderId",ordersDB.getId());
        map.put("content","订单号:" + outTradeNo);
        String json = JSON.toJSONString(map);
        webSocketServer.sendToAllClient(json);
    }
java 复制代码
 /**
     * 群发
     *
     * @param message
     */
    public void sendToAllClient(String message) {
        Collection<Session> sessions = sessionMap.values();
        for (Session session : sessions) {
            try {
                //服务器向客户端发送消息
                session.getBasicRemote().sendText(message);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }

·功能测试

相关推荐
今天你TLE了吗3 分钟前
Stream流学习总结
java·学习
周全全3 小时前
基于ElasticSearch的语义检索学习-向量化数据、向量化相似度、向量化检索
大数据·学习·elasticsearch
4***72134 小时前
网络爬虫学习:借助DeepSeek完善爬虫软件,实现模拟鼠标右键点击,将链接另存为本地文件
爬虫·学习·计算机外设
t***31654 小时前
爬虫学习案例3
爬虫·python·学习
hhcccchh4 小时前
学习vue第七天 从单页面应用(SPA)进化为后台管理系统架构
vue.js·学习·系统架构
文涛是个小白呀4 小时前
Java集合大调研
java·学习·链表·面试
hd51cc4 小时前
MFC多线程学习笔记三:线程间的通信
笔记·学习
hd51cc5 小时前
MFC多线程学习笔记四:线程间的同步
笔记·学习·mfc
wdfk_prog5 小时前
[Linux]学习笔记系列 -- [block]bfq-iosched
linux·笔记·学习
embrace995 小时前
【C语言学习】结构体详解
android·c语言·开发语言·数据结构·学习·算法·青少年编程