苍穹外卖-day09-模拟微信支付后续-订单取消拒单问题解决

模拟微信支付后续

1.用户端取消订单

订单处于待接单状态下取消,需要进行退款

由于前面模拟微信支付,直接调用了支付成功的接口,实际上并未支付

此时用户端取消订单,需要跳过微信支付退款接口,直接修改数据库订单状态

注释调用wechatpayutil.refund方法
在这里插入图片描述
完整代码如下:


    /**
     * 用户取消订单
     *
     * @param id
     */
    public void userCancelById(Long id) throws Exception {
   
        // 根据id查询订单
        Orders ordersDB = orderMapper.getById(id);

        // 校验订单是否存在
        if (ordersDB == null) {
   
            throw new OrderBusinessException(MessageConstant.ORDER_NOT_FOUND);
        }

        //订单状态 1待付款 2待接单 3已接单 4派送中 5已完成 6已取消
        if (ordersDB.getStatus() > 2) {
   
            throw new OrderBusinessException(MessageConstant.ORDER_STATUS_ERROR);
        }

        Orders orders = new Orders();
        orders.setId(ordersDB.getId());

        // 订单处于待接单状态下取消,需要进行退款
        if (ordersDB.getStatus().equals(Orders
### 苍穹外卖项目 Day09 历史订单相关代码和文档 #### 展示历史订单数据的关键要素 为了实现历史订单模块的功能,在用户端展示的历史订单应包含如下信息:下时间、订单状态、订单金额以及订单明细(含商品名称与图片)[^1]。 #### 数据库模型设计 针对上述需求,数据库中的`orders`表应当至少具备以下字段: | 字段名 | 类型 | 描述 | |------------|------------|--------------| | id | INT | 订单ID (主键) | | user_id | INT | 用户ID | | order_time | DATETIME | 下时间 | | status | VARCHAR(50)| 订单状态 | | total_price | DECIMAL(8,2)| 订单总金额 | 对于订单详情,则可以通过创建另一个名为 `order_items` 的表格来存储具体商品的信息: | 字段名 | 类型 | 描述 | |------------|------------|----------------| | id | INT | 商品项ID (主键) | | order_id | INT | 关联的订单ID | | product_name| VARCHAR(100)| 商品名称 | | image_url | TEXT | 图片链接 | ```sql CREATE TABLE orders ( id INT AUTO_INCREMENT PRIMARY KEY, user_id INT NOT NULL, order_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP, status VARCHAR(50), total_price DECIMAL(8,2) ); CREATE TABLE order_items( id INT AUTO_INCREMENT PRIMARY KEY, order_id INT NOT NULL, product_name VARCHAR(100), image_url TEXT ); ``` #### API接口定义 根据提供的资料,可以得知该项目已经提供了详细的API接口文档,并将其托管于[YApi平台](http://yapi.smart-xwork.cn/)上供开发者查阅。因此有关获取历史订单列表的具体请求方式和其他参数配置都可以在这个平台上找到相应的说明[^2]。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值