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 8d7cd94..8dd79eb 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 @@ -38,8 +38,8 @@ public class OrderController { /** * 订单支付 * - * @param ordersPaymentDTO - * @return + * @param ordersPaymentDTO OrdersPaymentDTO + * @return Result */ @PutMapping("/payment") @ApiOperation("订单支付") @@ -49,4 +49,17 @@ public class OrderController { log.info("生成预支付交易单:{}", orderPaymentVO); return Result.success(orderPaymentVO); } + + /** + * 客户催单 + * + * @param id Long + * @return Result + */ + @ApiOperation("客户催单") + @GetMapping("/reminder/{id}") + public Result reminder(@PathVariable("id") Long id) { + orderService.reminder(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 99c927b..1543db2 100644 --- a/sky-server/src/main/java/com/sky/mapper/OrderMapper.java +++ b/sky-server/src/main/java/com/sky/mapper/OrderMapper.java @@ -37,4 +37,12 @@ public interface OrderMapper { * @return List */ List getByStatusAndOrderTime(Integer status, LocalDateTime orderTime); + + /** + * 查询订单是否存在 + * + * @param id 订单id + * @return 订单 + */ + Orders getById(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 9208e54..7986c94 100644 --- a/sky-server/src/main/java/com/sky/service/OrderService.java +++ b/sky-server/src/main/java/com/sky/service/OrderService.java @@ -28,4 +28,11 @@ public interface OrderService { * @param outTradeNo String */ void paySuccess(String outTradeNo); + + /** + * 客户催单 + * + * @param id Long + */ + void reminder(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 cea816e..c9aa7e2 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 @@ -25,6 +25,7 @@ import java.time.LocalDateTime; import java.util.ArrayList; import java.util.HashMap; import java.util.List; +import java.util.Map; @Service public class OrderServiceImpl implements OrderService { @@ -92,11 +93,7 @@ public class OrderServiceImpl implements OrderService { // 4. 清空当前用户购物车数据 shoppingCartMapper.deleteByUserId(currentId); // 5. 封装返回结果 - return OrderSubmitVO.builder() - .id(orders.getId()) - .orderTime(orders.getOrderTime()) - .orderNumber(orders.getNumber()) - .orderAmount(orders.getAmount()).build(); + return OrderSubmitVO.builder().id(orders.getId()).orderTime(orders.getOrderTime()).orderNumber(orders.getNumber()).orderAmount(orders.getAmount()).build(); } /** @@ -111,8 +108,7 @@ public class OrderServiceImpl implements OrderService { User user = userMapper.getById(userId); // 调用微信支付接口,生成预支付交易单 - JSONObject jsonObject = weChatPayUtil.pay( - ordersPaymentDTO.getOrderNumber(), // 商户订单号 + JSONObject jsonObject = weChatPayUtil.pay(ordersPaymentDTO.getOrderNumber(), // 商户订单号 new BigDecimal("0.01"), // 支付金额,单位 元 "苍穹外卖订单", // 商品描述 user.getOpenid() // 微信用户的openid @@ -139,12 +135,7 @@ public class OrderServiceImpl implements OrderService { Orders ordersDB = orderMapper.getByNumber(outTradeNo); // 根据订单id更新订单的状态、支付方式、支付状态、结账时间 - Orders orders = Orders.builder() - .id(ordersDB.getId()) - .status(Orders.TO_BE_CONFIRMED) - .payStatus(Orders.PAID) - .checkoutTime(LocalDateTime.now()) - .build(); + Orders orders = Orders.builder().id(ordersDB.getId()).status(Orders.TO_BE_CONFIRMED).payStatus(Orders.PAID).checkoutTime(LocalDateTime.now()).build(); orderMapper.update(orders); @@ -155,6 +146,26 @@ public class OrderServiceImpl implements OrderService { String jsonString = JSONObject.toJSONString(map); webSocketServer.sendToAllClient(jsonString); } + + /** + * 客户催单 + * + * @param id Long + */ + @Override + public void reminder(Long id) { + Orders orderDB = orderMapper.getById(id); + if (orderDB == null) { + throw new OrderBusinessException(MessageConstant.ORDER_STATUS_ERROR); + } + + // 通过websocket 催单 + Map map = new HashMap<>(); + map.put("type", 2); + map.put("orderId", id); + map.put("content", "订单号" + orderDB.getNumber()); + webSocketServer.sendToAllClient(JSONObject.toJSONString(map)); + } } diff --git a/sky-server/src/main/resources/mapper/OrderMapper.xml b/sky-server/src/main/resources/mapper/OrderMapper.xml index 664c9f5..fcf39b5 100644 --- a/sky-server/src/main/resources/mapper/OrderMapper.xml +++ b/sky-server/src/main/resources/mapper/OrderMapper.xml @@ -59,6 +59,13 @@ from orders where status = #{status} and order_time < #{orderTime} - + + + + +