Day_4

news2024/11/25 12:02:29

1. 地址簿功能

查询地址列表

属于常规方案

新增地址

属于常规方案

修改地址

删除地址

设置默认地址


2. 用户下单业务

数据库分析

订单表和订单明细表的关系:一对多

代码开发

controller 层

service 层

异常处理(收货地址为空、超出配送范围、购物车为空)

创建订单对象,对象属性赋值,添加前端传入以外的对象属性

向订单表中插入一条数据

向订单明细表插入 n 条数据

清空当前用户的购物车

封装数据返回


3. 订单业务

微信支付

微信小程序支付时序图

流程简化(个人原因)

这里因为需要申请对应的 微信支付商户号,对该流程进行简化

在用户提交订单 -> 返回订单号 -> 用户点击支付 -> 后端直接进行支付完成的处理

缺点:支付后无法看到页面跳转

这个时候就可以在数据看到数据的变动

用户端订单业务

查询历史订单

通过分页查询实现

查询订单详情

取消订单

根据 order id 查询订单,处理异常

在订单处于 待接单 状态的时候 需要完成退款,否则直接修改订单状态

再来一单

将订单详情里的内容,转为购物车对象

管理端订单业务

只在文档里展示 server 层的代码,具体查看源码

订单搜索

各个状态订单的统计

查询订单详情

接单

就是修改订单的状态

拒单

只有订单状态为 2 (待接单)的情况下才可以进行拒单

取消订单

与拒单业务类似,查看代码

派送订单,完成订单

要注意对订单进行校验


4.  定时任务

Spring Task

Spring Task Spring框架提供的任务调度工具,可以按照约定的时间自动执行某个代码逻辑

corn表达式

cron表达式其实就是一个字符串,通过cron表达式可以定义任务触发的时间

构成规则:分为67个域,由空格分隔开,每个域代表一个含义

每个域的含义分别为:秒、分钟、小时、日、月、周、年(可选)

可以考虑直接在线生成

cron表达式在线生成器:在线Cron表达式生成器

使用流程

  1. 导入maven坐标 spring-context(已存在)
  2. 启动类添加注解 @EnableScheduling 开启任务调度
  3. 自定义定时任务类

订单状态定时处理

处理超时未支付的订单

每 15 分钟运行一次

处理派送时间异常订单

凌晨一点处理还处于派送中的订单,就修改为 完成


5. WebSocket

WebSocket 是基于 TCP 的一种新的网络协议。它实现了浏览器与服务器全双工通信——浏览器和服务器只需要完成一次握手,两者之间就可以创建持久性的连接, 并进行双向数据传输

应用场景:

视频弹幕
网页聊天
实况更新

缺点:

  • 服务器长期维护长连接需要一定的成本
  • 各个浏览器支持程度不一
  • WebSocket 是长连接,受网络限制比较大,需要处理好重连

使用流程

  1. 直接使用websocket.html页面作为WebSocket客户端
  2. 导入WebSocketmaven坐标
  3. 导入WebSocket服务端组件WebSocketServer,用于和客户端通信
  4. 导入配置类WebSocketConfiguration,注册WebSocket的服务端组件
  5. 导入定时任务类WebSocketTask,定时向客户端推送数据

来单提醒

在用户支付成功的时候进行调用

用户催单

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1671824.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

使用规则进行命名实体识别(NER)

使用规则进行命名实体识别(NER) 命名实体识别(Named Entity Recognition,NER)是自然语言处理(NLP)中的一项基础任务,它旨在从文本中识别出具有特定意义的实体,如人名、地…

【Unity从零开始学习制作手机游戏】第01节:控制3D胶囊体运动

1. 新建Project L01 使用3D Mobile模板。 2. 建立一个平面,用来承载物体 3. 导入Unity库内的胶囊体 下载 StandardAssets https://download.unitychina.cn/download_unity/e80cc3114ac1/WindowsStandardAssetsInstaller/UnityStandardAssetsSetup-5.6.7f1.exe …

STM32真的是很落后吗?

STM32 真的是很落后吗?这是一个值得探讨的问题。 STM32 是意法半导体(STMicroelectronics)推出的一款 32 位微控制器,它在嵌入式领域有着广泛的应用。虽然我对 Python 的了解有限,无法直接对 STM32 进行深入的比较&am…

系统定时器(SysTick)

介绍SysTick SysTick结构框图 时钟选择 计数器部分 中断部分 工作流程 相关寄存器 配置流程 相关库函数

【Nginx】如何在 Nginx 中阻止来自特定国家的 IP 地址访问

文章目录 前言一、准备工作二、查看 Nginx 服务器都拥有哪些模块2.1 先查看本地nginx是否有ngx_http_geoip2模块2.2 安装nginx并配置ngx_http_geoip2模块2.2.1下载所需版本的nginx到服务器2.2.2 先安装所需依赖2.2.3 解压文件2.2.4 下载ngx_http_geoip2模块2.2.5 编译安装nginx…

linux笔记5--shell命令2

文章目录 一. linux中的任务管理1. 图形界面2. 命令① top命令② grep命令③ ps命令补充: ④ kill命令图形界面杀死进程 二. 挂载(硬盘方面最重要的一个知识点)1. 什么是挂载2. 关于挂载目录① Windows② linux查看硬件分区情况(/dev下):更改挂载目录结束…

gitignore配置不生效记录

第一种可能性: 在你所有的文件都通过了git add . 命令的情况下,使用指令git rm -r --cached .进行缓存清除,完成之后,再次通过git add . 然后通过git status去看提交的文件都有哪些。 第二种可能性 如果上面的不行就是你添加的…

如何开展性能测试工作

性能测试是确保软件系统在预期负载下能够稳定、高效运行的重要环节。它帮助识别和优化系统的瓶颈,确保应用在真实环境中的表现满足用户需求。 一 性能测试的需求来源 为什么要做性能测试,预测的性能风险是什么 压测目标涉及的接口及业务场景描述 压测…

纯血鸿蒙APP第三方库——MpChart运动健康场景实践案例

介绍 MpChart是一个包含各种类型图表的图表库,主要用于业务数据汇总,例如销售数据走势图,股价走势图等场景中使用,方便开发者快速实现图表UI,MpChart主要包括线形图、柱状图、饼状图、蜡烛图、气泡图、雷达图、瀑布图…

粒子群算法(Particle Swarm Optimization)

注意:本文引用自专业人工智能社区Venus AI 更多AI知识请参考原站 ([www.aideeplearning.cn]) 算法背景 粒子群优化算法(Particle Swarm Optimization,PSO)的灵感来源于鸟群或鱼群的觅食行为。想象一下&a…

QX---mini51单片机学习---(9)中断系统

目录 1什么是中断 2中断系统在单片机系统中的作用 3如何使用单片机的中断系统 4实践 1什么是中断 RST P0想输出高电平接上拉电阻 2中断系统在单片机系统中的作用 3如何使用单片机的中断系统 可位寻址:IE中的EA可以直接,EA1; 外部中断&…

OSS证书自动续签,一分钟轻松搞定,解决阿里云SSL免费证书每3个月失效问题

文章目录 一、🔥httpsok-v1.11.0支持OSS证书自动部署介绍支持特点 二、废话不多说上教程:1、场景2、实战Stage 1:ssh登录阿里云 ECSStage 2:进入nginx (docker)容器Stage 3:执行如下指令Stage 3…

第五百零三回

文章目录 1. 概念介绍2. 使用方法2.1 普通路由2.2 命名路由 3. 示例代码4. 内容总结 我们在上一章回中介绍了"使用get显示Dialog"相关的内容,本章回中将介绍使用get进行路由管理.闲话休提,让我们一起Talk Flutter吧。 1. 概念介绍 我们在本章…

【算法】滑动窗口——最小覆盖子串

本节博客是对“最小覆盖子串”题目由暴力求解到滑动窗口的思路解析,有需要借鉴即可。 目录 1.题目2.滑动窗口解法3.总结 1.题目 题目链接:LINK 这个题目是困难难度,感觉是一个中等题目的感觉。 首先我肯定想到的是暴力求解的方法&#xff…

Spring:@Async注解使用注意事项及九大失效场景

前言 原文作者:微信公众号:苏三说技术 场景举例 代码案例 点击此处可观看:Async注解使用注意事项及九大失效场景

7B2 PRO主题5.4.2 免授权开心版源码 | WordPress主题

简介: B2 PRO 5.4.2 最新免授权版不再需要改hosts,和正版一样上传安装就可以激活。 直接在WordPress上传安装即可 点击下载

DS:顺序表、单链表的相关OJ题训练(2)

欢迎各位来到 Harper.Lee 的学习世界! 博主主页传送门:Harper.Lee的博客主页 想要一起进步的uu欢迎来后台找我哦! 一、力扣--141. 环形链表 题目描述:给你一个链表的头节点 head ,判断链表中是否有环。如果链表中有某个…

Spring框架概述

目录 1. Spring框架的起源 2. Spring框架的构成 3. Spring的发展历程 4. Spring的开发环境 4.1. Maven安装与配置 (1)Maven的下载与安装 (2)配置Maven的环境变量 (3)本地仓库的配置 (4…

前端开发者必备:Nginx入门实战宝典,从部署到优化一网打尽

🔥 个人主页:空白诗 文章目录 引言 👋一、Nginx简介 📚二、常见的Web服务器架构 🌀📌 架构概述📌 Nginx的深入探讨 三、正向代理与反向代理 🔮📌 正向代理工作原理&#…

synchronized 使用及实现原理

synchronized 关键字 如何使用 synchronized 关键字的使用方式主要有下面 3 种: 修饰实例方法 修饰静态方法 修饰代码块 1、修饰实例方法 (锁当前对象实例) 给当前对象实例加锁,进入同步代码前要获得 当前对象实例的锁 。 …