黑马苍穹外卖笔记day10

发布时间:2026/8/25 16:35:25

黑马苍穹外卖笔记day10
订单状态定时处理、来单提醒和客户催单Spring TaskSpring Task是Spring框架提供的任务调度工具可以按照约定的时间自动执行某个代码逻辑。应用场景特别广泛只要是需要定制处理的场景都可以使用Spring Taskcron表达式cron表达式其实就是一个字符串通过cron表达式可以定义任务触发的时间规则构成分为6或7个域由空格分隔开每个域代表一个含义每个域的含义分别为秒分钟小时日月周年(可选)可以使用cron表达式在线生成器按照需求来生成cron表达式Cron表达式规则L代表最后一天用于月和周字段其中周字段中使用L还可以指定每月的最后一个星期几比如1L就是最后一个星期一Spring Task使用步骤导入maven坐标spring-context启动类添加注解EnableScheduling开启任务调度自定义定时任务类订单状态定时处理需求分析用户下单后可能存在的情况下单后未支付订单一直处于待支付状态用户收货后管理端未点击完成按钮订单一直处于派送中状态对于上面两种情况需要通过定时任务来修改订单状态具体逻辑为通过定时任务每分钟检查一次是否存在支付超时订单(下单后超过15分钟仍未支付则判定为支付超时订单)如果存在则修改订单状态为已取消通过定时任务每天凌晨一点检查一次是否存在派送中的订单如果存在则修改订单状态为已完成代码开发创建一个自定义任务类Task/OrderTask,用来存放自动处理订单的方法处理超时未支付订单每一分钟触发一次需要先利用OrderMapper从数据库中查询到超时订单列表然后将超时订单的状态更新为已取消并添加取消原因和取消时间处理超时配送中订单每天凌晨1点触发一次需要先利用OrderMapper从数据库中获取超时配送中订单列表然后将状态更新为已完成OrderMapper接口新增一个方法用来通过状态和时间获取到所有超时订单的列表WebSocketWebSocket是基于TCP的一种新的网络协议。它实现了浏览器与服务器全双工通信--浏览器和服务器只需要完成一次握手两者之间就可以创建持久性的连接并进行双向数据传输。全双工通信模式Http协议和WebSocket协议对比HTTP是短连接WebSocket是长连接HTTP通信是单向的基于请求响应模式WebSocket支持双向通信HTTP和WebSocket底层都是TCP连接应用场景视频弹幕网页聊天体育实况更新股票基金报价实时更新后端WebSocketServer示例程序(部分)使用map来存储会话对象一个键值对对应一个会话WebSocket配置类来单提醒需求分析用户下单并且支付成功后需要第一时间通知外卖商家通知的形式有以下两种语音播报弹出提示框设计通过WebSocket实现管理端页面和服务端保持长连接状态当客户支付后调用WebSocket的相关API实现服务端向客户端推送消息客户端浏览器解析服务端推送的消息判断是来单提醒还是客户催单进行相应的消息提示和语音播报约定服务端发送给客户端浏览器的数据格式为JSON字段包括type,orderId,contenttype为消息类型1为来单提醒2为客户催单orderId为订单idcontent为消息内容在苍穹外卖前端代码中已经实现了WebSocket客户端的连接代码当前端登录时会向服务端建立连接问题为什么前端的请求url中只有localhost没有端口号8080也能连接成功呢答因为前端发送的请求需要经过nginx的反向代理转发后到达后端而nginx的配置文件中已经写好了这种情况前端使用WebSocket形式的url时自动转发到localhost:8080端口代码开发原视频将WebSocketServer注入到OrderServiceImpl类中并在支付成功paySuccess()方法里调用WebSocketServer里面的sendToAllClient()方法来向前端发送信息由于sendToAllClient()方法的形参是字符串则需要将需要传递的信息封装为JSON字符串来进行传递改进由于跳过了微信支付的步骤则在下单过程中不会调用paySuccess()方法我们需要在payment()方法中调用WebSocketServer里面的sendToAllClient()方法来向前端发送信息客户催单需求分析用户在小程序中点击催单按钮后需要第一时间通知外卖商家。通知的形式有如下两种语音播报弹出提示框设计通过WebSocket实现管理端页面和服务端保持长连接状态当用户点击催单按钮后调用WebSocket的相关API实现服务端向客户端推送消息客户端浏览器解析服务端推送的消息判断是来单提醒还是客户催单进行相应的消息提示和语音播报约定服务端发送给客户端浏览器的数据格式为JSON字段包括typeorderIdcontenttype为消息类型1为来单提醒2为客户催单orderId为订单idcontent为消息内容

相关新闻

【非标自动化】3、AutoShop快速理解(软件介绍)

【非标自动化】3、AutoShop快速理解(软件介绍)

2026/8/25 16:35:25

AutoShop是汇川面向小型PLC(Programmable Logic Controller,可编程逻辑控制 器)产品的编程组态软件,具有友好的编程和调试环境,拥有丰富、强大的通信和控 制功能。支持梯形图(LD)、顺序功能图&a…

Kotlin 语言【知识点整理2】

Kotlin 语言【知识点整理2】

2026/8/25 16:35:24

目录 一、基本概念 1.包的定义与导入 2.程序入口点 2.1 输入 3.变量 二、基本类型 1.数字 1.1 整数类型 1.2 浮点类型 1.3 数字字面常量 1.4 装箱与缓存 1.4.1 JVM是怎么存储数字的? 1.4.2 使用可空类型的时候会触发装箱操作: 1.4.3 JVM 对…

es怎么做拆词的

es怎么做拆词的

2026/8/25 16:25:24

ES 做拆词(分词)的核心是分词器,它在索引文档和搜索时,负责把长文本切成一个个独立的词(term),这样才能建立倒排索引,实现高效的全文搜索。 这个过程主要有三种角色: 输入…

腾讯WorkBuddy:AI智能体如何重塑桌面办公自动化

腾讯WorkBuddy:AI智能体如何重塑桌面办公自动化

2026/8/25 17:15:28

1. 项目概述:WorkBuddy是什么,以及它想解决什么问题最近在AI应用圈子里,腾讯的WorkBuddy讨论度挺高。简单来说,你可以把它理解为一个“长”在你电脑桌面上的AI智能体工作台。它不是传统的软件,也不是一个简单的聊天机器…

OpenClaw驱动同花顺Skill:构建安全稳定的自动化选股系统

OpenClaw驱动同花顺Skill:构建安全稳定的自动化选股系统

2026/8/25 17:15:28

1. 项目概述:当OpenClaw遇上同花顺官方Skill最近在量化交易和自动化工具圈子里,OpenClaw的热度一直居高不下。作为一个开源的、旨在连接大语言模型与现实世界操作系统的智能体框架,它让“用自然语言指挥电脑干活”这件事变得触手可及。而我作…

OpenClaw智能体实战:从定时提醒到自动搜索,打造个人自动化助理

OpenClaw智能体实战:从定时提醒到自动搜索,打造个人自动化助理

2026/8/25 17:15:28

1. 从“玩具”到“生产力”:OpenClaw的定位转变 最近在折腾本地AI智能体,OpenClaw这个名字出现的频率越来越高。一开始,很多人(包括我)都把它当成一个“会聊天的玩具”——部署好,调通一个大模型&#xff…

OpenClaw零门槛部署指南:从环境配置到AI助手实战

OpenClaw零门槛部署指南:从环境配置到AI助手实战

2026/8/25 17:15:28

1. 项目概述:为什么OpenClaw值得你投入时间?最近在开发者圈子里,OpenClaw 这个名字出现的频率越来越高。如果你关注AI应用开发,特别是想快速构建一个功能丰富的智能对话机器人或AI助手,那么OpenClaw绝对是一个绕不开的…

搭建企业知识库之Milvus 向量数据库

搭建企业知识库之Milvus 向量数据库

2026/8/25 17:15:28

好的,我们来深入了解一下 Milvus 向量数据库,并结合你的 Windows 环境,给出详细的安装步骤。 一、Milvus 是什么?为什么需要它? Milvus 是一款开源的、专门为高维向量数据设计的云原生数据库。简单说,它就…

AI Agent 面试题 353:A2A协议的服务发现和注册机制详解

AI Agent 面试题 353:A2A协议的服务发现和注册机制详解

2026/8/25 17:05:28

🔥 AI Agent 面试题 353:A2A协议的服务发现和注册机制详解摘要:本文深入解析了「A2A协议的服务发现和注册机制详解」这一 AI Agent 领域的核心面试题。文章从 A2A 协议 的基本概念出发,系统性地剖析了 服务发现、注册机制 等关键技…

[光学原理与应用-521]:对光的错误理解与纠偏

[光学原理与应用-521]:对光的错误理解与纠偏

2026/8/24 19:53:32

首先光是一种能量的载体和形态,宏观上观察到的光是由无数个微观的光量子组成的,每个光子在产生的瞬间,其在真空的空间中以确定不变的速度沿着一个初始的方向一直向前,在微观层面,每个光量子的运动轨迹是以波函数所展现…

SIP通话转接原理与REFER方法实战解析

SIP通话转接原理与REFER方法实战解析

2026/8/24 19:56:07

1. 通话转接不是“挂断再拨号”,而是SIP会话的动态重定向你有没有遇到过这样的场景:客服坐席A正在和客户通电话,突然需要把这通对话无缝转给专家坐席B,客户完全感知不到中间的断连——既没听到忙音,也没被要求重新拨号…

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

2026/8/24 21:16:09

1. 为什么选择Kolla-ansible来部署单节点OpenStack?如果你正在寻找一种能把OpenStack从“概念”快速变成“可用的实验环境”的方法,那么Kolla-ansible几乎是当前最主流、最省心的选择。我见过太多人卡在手动编译依赖、配置服务、处理版本冲突的泥潭里&am…

三步把QQ空间历史说说导出到本地:GetQzonehistory 极简指南

三步把QQ空间历史说说导出到本地:GetQzonehistory 极简指南

2026/8/25 0:04:34

三步把QQ空间历史说说导出到本地:GetQzonehistory 极简指南 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory Meta Description:GetQzonehistory 是一个QQ空间历史说…

洛谷 P7912:[CSP-J 2021 T4] 小熊的果篮 ← 双向链表

洛谷 P7912:[CSP-J 2021 T4] 小熊的果篮 ← 双向链表

2026/8/25 0:04:35

【题目来源】 https://www.luogu.com.cn/problem/P7912 【题目描述】 小熊的水果店里摆放着一排 n 个水果。每个水果只可能是苹果或桔子,从左到右依次用正整数 1,2,…,n 编号。连续排在一起的同一种水果称为一个“块”。小熊要把这一排水果挑到若干个果篮里&#x…

Transformers.js 网页端图像抠图实战:零后端 3 行代码返回透明 PNG

Transformers.js 网页端图像抠图实战:零后端 3 行代码返回透明 PNG

2026/8/25 0:04:35

Transformers.js 网页端图像抠图实战:零后端 3 行代码返回透明 PNG 【免费下载链接】transformers.js State-of-the-art Machine Learning for the web. Run 🤗 Transformers directly in your browser, with no need for a server! 项目地址: https:/…

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

2026/8/22 2:02:26

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…

导师推荐!2026最新AI论文工具测评与实用推荐

导师推荐!2026最新AI论文工具测评与实用推荐

2026/8/22 4:13:47

2026年真正好用的AI论文工具,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

告别游戏崩溃:XCOM 2模组管理器的智能革命

告别游戏崩溃:XCOM 2模组管理器的智能革命

2026/8/22 1:32:34

告别游戏崩溃:XCOM 2模组管理器的智能革命 【免费下载链接】xcom2-launcher The Alternative Mod Launcher (AML) is a replacement for the default game launchers from XCOM 2 and XCOM Chimera Squad. 项目地址: https://gitcode.com/gh_mirrors/xc/xcom2-lau…