苍穹外卖学习笔记(二十三)

embedded/2024/10/20 8:32:17/

拒单

OrderController

java">/*** 拒单*/@PutMapping("/rejection")@ApiOperation("拒单")public Result rejection(@RequestBody OrdersRejectionDTO ordersRejectionDTO) throws Exception {orderService.rejection(ordersRejectionDTO);return Result.success();}

OrderService

java">    /*** 拒单*/void rejection(OrdersRejectionDTO ordersRejectionDTO) throws Exception;

OrderServiceImpl

java">    /*** 拒单*/@Overridepublic void rejection(OrdersRejectionDTO ordersRejectionDTO) throws Exception{// 根据id查询订单Orders ordersDB = orderMapper.selectById(ordersRejectionDTO.getId());// 订单只有存在且状态为2(待接单)才可以拒单if (ordersDB == null || !ordersDB.getStatus().equals(Orders.TO_BE_CONFIRMED)) {throw new OrderBusinessException(MessageConstant.ORDER_STATUS_ERROR);}//支付状态Integer payStatus = ordersDB.getPayStatus();//订单状态if (payStatus.equals(Orders.PAID)) {//调用微信支付退款接口,用户已支付,需要退款
//            String refund = weChatPayUtil.refund(
//                    ordersDB.getNumber(),
//                    ordersDB.getNumber(),
//                    new BigDecimal(0.01),
//                    new BigDecimal(0.01));
//            log.info("申请退款:{}", refund);}// 拒单需要退款,根据订单id更新订单状态、拒单原因、取消时间Orders orders = new Orders();orders.setId(ordersDB.getId());orders.setStatus(Orders.CANCELLED);orders.setRejectionReason(ordersRejectionDTO.getRejectionReason());orders.setCancelTime(LocalDateTime.now());orderMapper.updateById(orders);}

取消订单

OrderController

java">     /*** 取消订单*/@PutMapping("/cancel")@ApiOperation("取消订单")public Result cancel(@RequestBody OrdersCancelDTO ordersCancelDTO) throws Exception {orderService.cancel(ordersCancelDTO);return Result.success();}

OrderService

java">  /*** 取消订单*/void cancel(OrdersCancelDTO ordersCancelDTO) throws Exception;

OrderServiceImpl

java">     /*** 取消订单*/@Overridepublic void cancel(OrdersCancelDTO ordersCancelDTO) throws Exception {// 根据id查询订单Orders ordersDB = orderMapper.selectById(ordersCancelDTO.getId());//支付状态Integer payStatus = ordersDB.getPayStatus();//订单状态if (payStatus.equals(Orders.PAID)) {//调用微信支付退款接口,用户已支付,需要退款
//            String refund = weChatPayUtil.refund(
//                    ordersDB.getNumber(),
//                    ordersDB.getNumber(),
//                    new BigDecimal(0.01),
//                    new BigDecimal(0.01));
//            log.info("申请退款:{}", refund);}// 管理端取消订单需要退款,根据订单id更新订单状态、取消原因、取消时间Orders orders = new Orders();orders.setId(ordersCancelDTO.getId());orders.setStatus(Orders.CANCELLED);orders.setCancelReason(ordersCancelDTO.getCancelReason());orders.setCancelTime(LocalDateTime.now());orderMapper.updateById(orders);}

派送订单

OrderController

java">    /*** 派送订单*/@PutMapping("/delivery/{id}")@ApiOperation("派送订单")public Result delivery(@PathVariable("id") Long id) {orderService.delivery(id);return Result.success();}

OrderService

java">    /*** 派送订单*/void delivery(Long id);

OrderServiceImpl

java">    /*** 派送订单*/@Overridepublic void delivery(Long id) {// 根据id查询订单Orders ordersDB = orderMapper.selectById(id);// 订单只有存在且状态为3(已接单)才可以派送if (ordersDB == null || !ordersDB.getStatus().equals(Orders.CONFIRMED)) {throw new OrderBusinessException(MessageConstant.ORDER_STATUS_ERROR);}// 根据订单id更新订单状态、派送时间Orders orders = Orders.builder().id(ordersDB.getId()).status(Orders.DELIVERY_IN_PROGRESS).build();orderMapper.updateById(orders);}

完成订单

OrderController

java">    /*** 完成订单*/@PutMapping("/complete/{id}")@ApiOperation("完成订单")public Result complete (@PathVariable("id") Long id) {orderService.complete(id);return Result.success();}

OrderService

java">    /*** 完成订单*/void complete(Long id);

OrderServiceImpl

java">    /*** 完成订单*/@Overridepublic void complete(Long id) {// 根据id查询订单Orders ordersDB = orderMapper.selectById(id);// 校验订单是否存在,并且状态为4if (ordersDB == null || !ordersDB.getStatus().equals(Orders.DELIVERY_IN_PROGRESS)) {throw new OrderBusinessException(MessageConstant.ORDER_STATUS_ERROR);}// 根据订单id更新订单状态、完成时间Orders orders = Orders.builder().id(ordersDB.getId()).status(Orders.COMPLETED).deliveryTime(LocalDateTime.now()).build();orderMapper.updateById(orders);}

http://www.ppmy.cn/embedded/128943.html

相关文章

记录一个容易混淆的 Spring Boot 项目配置文件问题

记录一个容易混淆的 Spring Boot 项目配置文件问题 去年,我遇到了这样一个问题: 在这个例子中,由于密码 password 以 0 开头,当它被 Spring Boot 的 bean 读取时,前导的 0 被自动去掉了。这导致程序无法正确读取密码。…

探索GenAI/大模型评估与对比:AutoArena开源框架及产品介绍

在生成式人工智能(GenAI)和大型语言模型(LLM)快速发展的今天,如何准确、高效地评估这些模型的性能变得尤为重要。为此,社区中的朋友询问是否有专门用于GenAI和大模型评估与对比的工具。本文将介绍一个强大的开源框架——AutoArena,它专为自动化GenAI评估设计,特别适合于…

源码编译方式安装htppd软件

一.源码编译安装httpd软件 1.安装阿帕奇的依赖,安装apr软件,阿帕奇正常运行的环境这个环境就是apr。 2.安装apr-util软件,主要提供针对apr环境的管理工具, 3.安装阿帕奇软件即httpd软件。 如上图所示,就是三个软件的…

animator及metahuman dna解析

复现原始dna文件转成174 bs dna文件 METAHUMAN51/Source/MetaHumanMeshTracker/Private/api/FaceTrackingAPI.cpp的 pcaRigCreator是将原始dna转为gui control的pca的dna对象 METAHUMAN51/Source/MetaHumanMeshTracker/Private/nls/src/rig/RigLogic.cpp 是读取原始dna文件的…

15分钟学Go 第5天:数据类型

第5天:数据类型 在Go语言中,数据类型是构成程序的重要基础,它们定义了可以在程序中使用的数据特征。了解不同的数据类型及其用途将帮助我们更有效地编写Go代码。在本章节中,我们将详细探讨Go语言的基本数据类型。 1. 数据类型的…

2024软考网络工程师笔记 - 第3章.广域通信网

文章目录 广域网物理层特性1️⃣公共交换电话网 PSTN2️⃣本地回路3️⃣机械特性4️⃣电气特性 🕑流量与差错控制1️⃣流量与差错控制2️⃣流量控制——亭等协议3️⃣流控机制——滑动窗口协议4️⃣差错控制5️⃣差错控制——停等协议6️⃣差错控制——选择重发ARQ协…

three.js 实现一个心形的着色器

three.js 实现一个心形的着色器 源链接:https://z2586300277.github.io/three-cesium-examples/#/codeMirror?navigationThreeJS&classifyshader&idheartShader 国内站点预览:http://threehub.cn github地址: https://github.com/z258630027…

【C++】C++当中的复合类型——引用和指针

C当中的复合类型 最近开始系统地学习 C 的语法,参考的主要资料来自于 C Primer 第五版,对于学习过程中所遇到的较难理解的点,我会以blog的形式对问题和内容进行记录,并进行进一步地探讨。 这一部分的内容对应于参考资料 C Prime…