Day_4

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,定时向客户端推送数据

来单提醒

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

用户催单

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值