当前位置: 首页 > news >正文

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

拒单

OrderController

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

OrderService

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

OrderServiceImpl

    /*** 拒单*/@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

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

OrderService

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

OrderServiceImpl

     /*** 取消订单*/@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

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

OrderService

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

OrderServiceImpl

    /*** 派送订单*/@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

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

OrderService

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

OrderServiceImpl

    /*** 完成订单*/@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.lryc.cn/news/461070.html

相关文章:

  • vLLM 推理引擎性能分析基准测试
  • 图像增强论文精读笔记-Kindling the Darkness: A Practical Low-light Image Enhancer(KinD)
  • HALCON数据结构之字符串
  • string模拟优化和vector使用
  • Go-知识依赖GOPATH
  • PyTorch 中 reshape 函数用法示例
  • 安全光幕的工作原理及应用场景
  • 《深度学习》OpenCV LBPH算法人脸识别 原理及案例解析
  • 数据结构之顺序表——动态顺序表(C语言版)
  • Python 网络爬虫入门与实战
  • 成都睿明智科技有限公司电商服务可靠不?
  • fmql之Linux Uart
  • 【火山引擎】调用火山大模型的方法 | SDK安装 | 配置 | 客户端初始化 | 设置
  • 前端实现下载功能汇总(下载二进制流文件、数组下载成csv、将十六进制下载成pcap、将文件下载成zip)
  • iLogtail 开源两周年:UC 工程师分享日志查询服务建设实践案例
  • 【MySQL】入门篇—基本数据类型:NULL值的概念
  • Java设计模式10 - 观察者模式
  • LabVIEW示波器通信及应用
  • 西门子PLC中Modbus通讯DATA_ADDR通讯起始地址设置以及RTU轮询程序设计。
  • 趋势(一)利用python绘制折线图
  • 【含文档】基于Springboot+Vue的采购管理系统(含源码+数据库+lw)
  • 【C++11入门基础】
  • Pytest中fixture的scope详解
  • Springboot 接入 WebSocket 实战
  • 数据结构之红黑树的实现
  • 智能工厂的设计软件 中的AI操作系统的“三维时间”(历时/共时/等时)构建的“能力成熟度-时间规模”平面
  • Spring Boot常见错误与解决方法
  • Mac中安装以及配置adb环境
  • WebGL着色器语言中各个变量的作用
  • Canmv k230 C++案例1——image classify学习笔记 初版