取消订单|学习笔记

简介: 快速学习取消订单

开发者学堂课程【RocketMQ 知识精讲与项目实战(第二阶段)学习取消订单】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/703/detail/12432


取消订单

对于订单的处理,如果确认订单失败之后,就把订单,也就是预订单的状态改为取消就可以,这个操作也是比较容易的。

接下来写一下注释,第一步是解析消息内容,要更改订单状态,要先查询订单,然后更新订单的状态为取消。

接下来去获得消息的内容,注意不要选错,然后在代码的基础上接收一下 body。

代码如下:

String body=New string(messageExt.getBody(),charsetName:"UTF-8"

如果发现它有异常,就去处理一下,然后把三个步骤放到里面去。

查询之前,先把 body 解析为 MQN 的点,把它先进行一个转换,然后再查询订单,把 ordermapper 拿过来,再根据这个去查询,MQN 里就有订单ID。拿到订单ID 以后就更新订单状态,状态设置为取消之后就可以对数据库进行更新了。

在这依然是在上面打印一个日志,在这个地方设置一下接收消息成功。

代码如下:

//1.解消息内容

string body=new String(messageExt.getBody(),

charsetName:"UTF-8); MQEntity

mgEntity=JSONparseObject(bodyMQEntityclass);

Log.info("接受消息成功");

接收消息成功以后设置订单状态为取消。

代码如下:

order.setorderstatus(ShopCode.SHOPORDERMESSAGESTATUSCANCELgetCode());

orderMapper.updateByPrimaryKey(order); Log.info("订单状态设置为取消");

如果出现异常,就是订单取消失败。

代码如下:

@Autowired

private TradeOrderMapper orderMapper;

@Override

public void onMessage(MessageExt messageExt){

try {

//1.解析消息内容

string body=new string(messageExtgetBody(),

charsetName:"UTF-8"); MQEntitymqEntity=JSONparseObject(body,MQEntity.class); Log.info("接收消息成功");

//2.查询订单

TradeOrder

order=orderMapperselectByPrimaryKey(mqEntitygetorderId())

//3.更新订单状态为取消

order.setorderstatus(ShopCodeSHOP ORDER MESSAGE STATUSCANCELgetCode());

orderMapperupdateByPrimaryKey(order); log.info("订单状态设置为取消");

}catch(UnsupportedEncodingExceptione){

E.printstackTrace();

log.info("订单取消失败");

}

这就是关于订单取消的处理,也就是回退库存、回退优惠券、回退余额和取消订单就实现了,剩下就是测试了。

相关文章
|
5月前
|
消息中间件 NoSQL Kafka
订单超时取消的11种方式(非常详细清楚)
订单超时取消的11种方式(非常详细清楚)
678 1
订单超时取消的11种方式(非常详细清楚)
|
5月前
|
消息中间件 NoSQL Java
订单超时取消的11种方法(上)
大家好,我是三友~~ 延迟任务在我们日常生活中比较常见,比如订单支付超时取消订单功能,又比如自动确定收货的功能等等。 所以本篇文章就来从实现到原理来盘点延迟任务的11种实现方式,这些方式并没有绝对的好坏之分,只是适用场景
订单超时取消的11种方法(上)
|
5月前
|
NoSQL Java 调度
订单超时取消的11种方法(下)
大家好,我是三友~~ 延迟任务在我们日常生活中比较常见,比如订单支付超时取消订单功能,又比如自动确定收货的功能等等。 所以本篇文章就来从实现到原理来盘点延迟任务的11种实现方式,这些方式并没有绝对的好坏之分,只是适用场景的不大相同。
订单超时取消的11种方法(下)
|
8月前
|
消息中间件 NoSQL 数据库
订单超时未支付自动取消--实现简述
订单超时未支付自动取消--实现简述
146 0
|
12月前
筛选拆单后订单状态全部为已取消状态的订单有哪些
筛选拆单后订单状态全部为已取消状态的订单有哪些
50 0
|
消息中间件 Java 程序员
订单支付超时,自动关闭订单实现
今天跟大家一起探讨一个场景:用户对商品下单,约定30分钟没支付,超时订单将被系统自动关闭。
340 0
订单支付超时,自动关闭订单实现
|
弹性计算
阿里云存在未支付订单导致无法下单解决方法
解决阿里云存在未支付订单请支付或作废后再下单,阿里云服务器或其他云资源无法立即购买,提示“您选择的资源存在未支付订单,请支付或作废后再下单!”什么原因?这是由于你的阿里云账号之前已经创建了该订单,只是订单没有支付,所以无法再次创建订单。解决方法是,要么取消之前的订单,要么支付之前的订单。阿里云百科来详细说下阿里云账号下存在未支付订单的解决方法:
720 0
阿里云存在未支付订单导致无法下单解决方法
|
前端开发 应用服务中间件 API
订单异步通知修改订单状态
订单异步通知修改订单状态
订单异步通知修改订单状态
|
消息中间件 算法 Java
创建支付订单实现|学习笔记
快速学习创建支付订单实现
90 0
创建支付订单实现|学习笔记
|
消息中间件 数据库 RocketMQ
创建支付订单流程|学习笔记
快速学习创建支付订单流程
278 0
创建支付订单流程|学习笔记