From 9ae9e8df35ad718e11471887f90e582e490c90be Mon Sep 17 00:00:00 2001 From: bunny <1319900154@qq.com> Date: Wed, 10 Jan 2024 20:37:08 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=96=E6=B6=88=E8=AE=A2=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sky/controller/user/OrderController.java | 13 +++++++ .../main/java/com/sky/mapper/OrderMapper.java | 8 +++++ .../java/com/sky/service/OrderService.java | 7 ++++ .../sky/service/impl/OrderServiceImpl.java | 34 +++++++++++++++++++ .../src/main/resources/mapper/OrderMapper.xml | 7 ++++ 5 files changed, 69 insertions(+) diff --git a/sky-server/src/main/java/com/sky/controller/user/OrderController.java b/sky-server/src/main/java/com/sky/controller/user/OrderController.java index e28faa1..b0f2ed4 100644 --- a/sky-server/src/main/java/com/sky/controller/user/OrderController.java +++ b/sky-server/src/main/java/com/sky/controller/user/OrderController.java @@ -94,4 +94,17 @@ public class OrderController { OrderVO orderVO = orderService.detail(id); return Result.success(orderVO); } + + /** + * 取消订单 + * + * @param id 订单id + * @return Result + */ + @ApiOperation("取消订单") + @PutMapping("/cancel/{id}") + public Result cancel(@PathVariable("id") Long id) { + orderService.userCancelById(id); + return Result.success(); + } } diff --git a/sky-server/src/main/java/com/sky/mapper/OrderMapper.java b/sky-server/src/main/java/com/sky/mapper/OrderMapper.java index e65f2d9..99c3517 100644 --- a/sky-server/src/main/java/com/sky/mapper/OrderMapper.java +++ b/sky-server/src/main/java/com/sky/mapper/OrderMapper.java @@ -55,4 +55,12 @@ public interface OrderMapper { * @return Page */ Page pageQuery(OrdersPageQueryDTO ordersPageQueryDTO); + + /** + * 根据id查询订单 + * + * @param id 订单id + * @return Orders + */ + Orders useCancelById(Long id); } diff --git a/sky-server/src/main/java/com/sky/service/OrderService.java b/sky-server/src/main/java/com/sky/service/OrderService.java index a5c51d6..1a27255 100644 --- a/sky-server/src/main/java/com/sky/service/OrderService.java +++ b/sky-server/src/main/java/com/sky/service/OrderService.java @@ -55,4 +55,11 @@ public interface OrderService { * @return OrderVO */ OrderVO detail(Long id); + + /** + * 取消订单 + * + * @param id 订单id + */ + void userCancelById(Long id); } diff --git a/sky-server/src/main/java/com/sky/service/impl/OrderServiceImpl.java b/sky-server/src/main/java/com/sky/service/impl/OrderServiceImpl.java index bd2cf9a..bf9dd76 100644 --- a/sky-server/src/main/java/com/sky/service/impl/OrderServiceImpl.java +++ b/sky-server/src/main/java/com/sky/service/impl/OrderServiceImpl.java @@ -20,6 +20,7 @@ import com.sky.vo.OrderPaymentVO; import com.sky.vo.OrderSubmitVO; import com.sky.vo.OrderVO; import com.sky.websocket.WebSocketServer; +import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -32,6 +33,7 @@ import java.util.List; import java.util.Map; @Service +@Slf4j public class OrderServiceImpl implements OrderService { @Resource private OrderMapper orderMapper; @@ -227,6 +229,38 @@ public class OrderServiceImpl implements OrderService { orderVO.setOrderDetailList(orderDetailList); return orderVO; } + + /** + * 取消订单 + * + * @param id 订单id + */ + @Override + public void userCancelById(Long id) { + // 根据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.TO_BE_CONFIRMED)) { + log.info("订单需要退款。。。。。。。"); + orders.setPayStatus(Orders.REFUND); + } + // 更新订单状态、取消原因、取消时间 + orders.setStatus(Orders.CANCELLED); + orders.setCancelReason("用户取消"); + orders.setCancelTime(LocalDateTime.now()); + orderMapper.update(orders); + } } diff --git a/sky-server/src/main/resources/mapper/OrderMapper.xml b/sky-server/src/main/resources/mapper/OrderMapper.xml index ed6096e..f779779 100644 --- a/sky-server/src/main/resources/mapper/OrderMapper.xml +++ b/sky-server/src/main/resources/mapper/OrderMapper.xml @@ -95,4 +95,11 @@ order by order_time desc + + +