苍穹外卖 商家接单、拒单

        OrderController

/*** 接单** @param ordersConfirmDTO* @return*/@PutMapping("/confirm")@ApiOperation("接单")public Result confirm(@RequestBody OrdersConfirmDTO ordersConfirmDTO) {orderService.confirm(ordersConfirmDTO);return Result.success();}/*** 拒单** @param ordersRejectionDTO* @return* @throws Exception*/@PutMapping("/rejection")@ApiOperation("拒单")public Result rejection(@RequestBody OrdersRejectionDTO ordersRejectionDTO) throws Exception {orderService.rejection(ordersRejectionDTO);return Result.success();}

        OrderService

/*** 接单** @param ordersConfirmDTO*/public void confirm(OrdersConfirmDTO ordersConfirmDTO) {// 接单的逻辑其实就是将订单的状态改为CONFIRMEDOrders orders = Orders.builder().id(ordersConfirmDTO.getId()).status(Orders.CONFIRMED).build();orderMapper.update(orders);}/*** 抽取出来的退款方法** @param ordersDelete* @throws Exception*/// TODO 这个退款方法不应该放在此处,应该在util中public void refund(Orders ordersDelete) throws Exception {String refund = weChatPayUtil.refund(ordersDelete.getNumber(),ordersDelete.getNumber(),new BigDecimal(String.valueOf(ordersDelete.getAmount())),new BigDecimal(String.valueOf(ordersDelete.getAmount())));log.info("申请退款:{}", refund);}/*** 拒单** @param ordersRejectionDTO*/@Overridepublic void rejection(OrdersRejectionDTO ordersRejectionDTO) throws Exception{// 根据id查询订单Orders ordersDB = orderMapper.getById(ordersRejectionDTO.getId());// 当订单存在并且状态为2(待接单)才可以拒单if (ordersDB == null) {// 若订单为null,那么无法拒单,抛出异常throw new OrderBusinessException(MessageConstant.ORDER_NOT_FOUND);}if (!ordersDB.getStatus().equals(Orders.TO_BE_CONFIRMED)) {// 若订单状态不是待接单,那么也无法拒单,抛出异常throw new OrderBusinessException(MessageConstant.ORDER_STATUS_ERROR);}// 查询支付状态,若已支付,那么需要退款Integer payStatus = ordersDB.getPayStatus();if (payStatus.equals(Orders.PAID)) {//用户已支付,需要退款refund(ordersDB);}// 拒单需要退款,根据订单id更新订单状态、拒单原因、取消时间Orders orders = new Orders();orders.setId(ordersDB.getId());orders.setStatus(Orders.CANCELLED);orders.setRejectionReason(ordersRejectionDTO.getRejectionReason());orders.setCancelTime(LocalDateTime.now());orderMapper.update(orders);}

        OrderMapper

 

 /*** 修改订单信息* @param orders*/void update(Orders orders);
 <update id="update" parameterType="com.sky.entity.Orders">update orders<set><if test="cancelReason != null and cancelReason!='' ">cancel_reason=#{cancelReason},</if><if test="rejectionReason != null and rejectionReason!='' ">rejection_reason=#{rejectionReason},</if><if test="cancelTime != null">cancel_time=#{cancelTime},</if><if test="payStatus != null">pay_status=#{payStatus},</if><if test="payMethod != null">pay_method=#{payMethod},</if><if test="checkoutTime != null">checkout_time=#{checkoutTime},</if><if test="status != null">status = #{status},</if><if test="deliveryTime != null">delivery_time = #{deliveryTime}</if></set>where id = #{id}</update>

 

 

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

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

相关文章

对于IIC的理解

IIC是一种通信协议 具体特点&#xff1a; 1&#xff1a;同步传输&#xff08;不会因为中断而影响数据传输&#xff0c;但是会多一根传输线&#xff09; 2&#xff1a;半双工 &#xff08;少一根线&#xff0c;但是一次只能收或者发送数据&#xff09; 对于IIC有两种模式&am…

Python异常检测 - LSTM(长短期记忆网络)

系列文章目录 Python异常检测- Isolation Forest&#xff08;孤立森林&#xff09; python异常检测 - 随机离群选择Stochastic Outlier Selection (SOS) python异常检测-局部异常因子&#xff08;LOF&#xff09;算法 Python异常检测- DBSCAN Python异常检测- 单类支持向量机(…

常见Transformer位置编码

文章目录 概述绝对位置编码相对位置编码T5 BiasALiBiRoPE 参考资料 概述 相对于RNN这样的序列模型来说&#xff0c;Transformer可并行是一个很大的优势&#xff0c;但可并行性带来一个问题&#xff0c;由于不是从前到后&#xff0c;所以模型对于位置信息是不敏感的。于是在Tra…

【IEEE出版 | EI稳定检索】2024智能机器人与自动控制国际学术会议 (IRAC 2024,11月29-12月1日)

2024智能机器人与自动控制国际学术会议 &#xff08;IRAC 2024&#xff09; 2024 International Conference on Intelligent Robotics and Automatic Control 官方信息 会议官网&#xff1a;www.icirac.org 2024 International Conference on Intelligent Robotics and Autom…

Golang | Leetcode Golang题解之第535题TinyURL的加密与解密

题目&#xff1a; 题解&#xff1a; import "math/rand"type Codec map[int]stringfunc Constructor() Codec {return Codec{} }func (c Codec) encode(longUrl string) string {for {key : rand.Int()if c[key] "" {c[key] longUrlreturn "http:/…

特朗普当选或将引爆比特币市场,赔率与预测平台暗示胜算更高

11月5日消息&#xff0c;去中心化预测市场平台Polymarket数据显示&#xff0c;前总统特朗普在2024年美国大选中的获胜概率已攀升至61.8%。据悉&#xff0c;Polymarket通过用户下注来反映市场对各类事件的预期。不同于传统民调&#xff0c;这类平台更关注资金流向和市场情绪的变…

pdf添加目录标签python(手动配置)

先安装对应的库: pip install pypdf 代码分为两个部分,一部分是config.py,代码如下: offset=10 catgorys=[("第一章",12),("第二章",45), ] 需要自己手动更改offset,和目录列表 下面是主要代码: import pypdf # import sys from config import…

影响神经网络速度的因素- FLOPs、MAC、并行度以及计算平台

影响神经网络速度的四个主要因素分别是 FLOPs&#xff08;浮点操作数&#xff09;、MAC&#xff08;内存访问成本&#xff09;、并行度以及计算平台。这些因素共同作用&#xff0c;直接影响到神经网络的计算速度和资源需求。 1. FLOPs&#xff08;Floating Point Operations&a…

Streamlit 入门使用指南及与 FastAPI 的配合使用

Streamlit 入门使用指南及与 FastAPI 的配合使用 Streamlit 是一个用于构建数据应用的快速 Web 应用框架&#xff0c;它特别适合数据科学家和机器学习工程师&#xff0c;无需复杂的前端开发知识即可创建交互式应用。结合 FastAPI&#xff0c;可以轻松构建后端服务并将其与 Str…

【北京迅为】《STM32MP157开发板嵌入式开发指南》-第七十六章 C++入门

iTOP-STM32MP157开发板采用ST推出的双核cortex-A7单核cortex-M4异构处理器&#xff0c;既可用Linux、又可以用于STM32单片机开发。开发板采用核心板底板结构&#xff0c;主频650M、1G内存、8G存储&#xff0c;核心板采用工业级板对板连接器&#xff0c;高可靠&#xff0c;牢固耐…

小菜家教平台:基于SpringBoot+Vue打造一站式学习管理系统

前言 现在已经学习了很多与Java相关的知识&#xff0c;但是迟迟没有进行一个完整的实践&#xff08;之前这个项目开发到一半&#xff0c;很多东西没学搁置了&#xff0c;同时原先的项目中也有很多的问题&#xff09;&#xff0c;所以现在准备从零开始做一个基于SpringBootVue的…

【系统架构设计师】2022年真题论文: 论软件维护方法及其应用(包括解题思路和素材)

更多内容请见: 备考系统架构设计师-专栏介绍和目录 文章目录 真题题目(2022年 试题2)解题思路软件维护的类型软件维护的方法软件维护方法的应用案例论文素材参考真题题目(2022年 试题2) 软件维护是指在软件交付使用后,直至软件被淘汰的整个时间范围内,为了改正错误或满…

基于Matlab的语音识别

一、引言 语音识别技术是让计算机识别一些语音信号&#xff0c;并把语音信号转换成相应的文本或者命令的一种高科技技术。语音识别技术所涉及的领域非常广泛&#xff0c;包括信号处理、模式识别、人工智能等技术。近年来已经从实验室开始走向市场&#xff0c;渗透到家电、通信…

如何在 IntelliJ IDEA 中调整 `Ctrl+/` 快捷键生成注释的位置

前言 在使用 IntelliJ IDEA 编写代码时&#xff0c;注释是代码可读性和维护性的重要组成部分。IDEA 提供了快捷键 Ctrl/ 用于快速生成单行注释。然而&#xff0c;默认情况下&#xff0c;使用此快捷键生成的注释会出现在行首&#xff0c;导致注释与代码之间存在较大的空格&…

分布式和微服务系统区别

一、分布式是更广泛的概念&#xff0c;指将计算分布在多个物理节点上的系统。 适用于需要高可用性、高性能、可扩展性的系统。 应用场景&#xff1a;分布式数据库—数据高可用存储、分布式缓存—提升数据访问速度 分布式计算框架—大规模数据计算、分布式文件系统—海量数据的…

Next.js 版本从 15 降级至 14 的操作指南

清除node_modules文件夹&#xff1a;为确保安装环境的整洁性&#xff0c;请先删除node_modules文件夹。 更新package.json文件&#xff1a;在package.json中&#xff0c;将react、react-dom和next的版本号分别修改为18.xx、18.xx&#xff08;注意&#xff1a;react-dom的版本通…

源鲁杯 2024 web(部分)

[Round 1] Disal F12查看: f1ag_is_here.php 又F12可以发现图片提到了robots 访问robots.txt 得到flag.php<?php show_source(__FILE__); include("flag_is_so_beautiful.php"); $a$_POST[a]; $keypreg_match(/[a-zA-Z]{6}/,$a); $b$_REQUEST[b];if($a>99999…

使用 ADB 在某个特定时间点点击 Android 设备上的某个按钮

前提条件 安装 ADB&#xff1a;确保你已经在计算机上安装了 Android SDK&#xff08;或单独的 ADB&#xff09;。并将其添加到系统环境变量中&#xff0c;以便你可以在命令行中运行 adb。 USB调试&#xff1a;确保 Android 设备已启用 USB 调试模式。这可以在设备的“设置” -…

数据库的使用02:SQLServer的连接字符串、备份、还原、SQL监视相关设置

目录 一、连接字符串 【本地连接字符串】 【远程连接字符串】 二、备份 三、还原 &#xff08;1&#xff09;还原数据库-bak、btn文件 &#xff08;2&#xff09;附加数据库mdf文件 四、SQL监视器的使用 一、连接字符串 【本地连接字符串】 server DESKTOP-FTH2P3S; Da…

Oracle视频基础1.3.6练习

1.3.6 以下是您的需求清单&#xff08;不含解决方案&#xff09;&#xff1a; 检查数据库启动情况等待会话结束&#xff0c;进行正常关机等待事务全部提交后再关机查看 alert 日志文件查看后台跟踪文件查看用户跟踪文件 检查数据库启动情况 ps -ef | grep oracle ipcs clear…