From a191aa60f209959dd06af623e2ad3b2d9cb3ab49 Mon Sep 17 00:00:00 2001 From: bunny <1319900154@qq.com> Date: Fri, 29 Mar 2024 10:01:41 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E6=96=B0=E5=A2=9E):=20=E7=AB=8B=E5=8D=B3?= =?UTF-8?q?=E8=B4=AD=E4=B9=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: bunny <1319900154@qq.com> --- .../com/atguigu/spzx/model/vo/h5/TradeVo.java | 2 -- .../order/controller/OrderInfoController.java | 7 +++++ .../order/service/OrderInfoService.java | 8 +++++ .../service/impl/OrderInfoServiceImpl.java | 29 +++++++++++++++++++ 4 files changed, 44 insertions(+), 2 deletions(-) diff --git a/spzx-model/src/main/java/com/atguigu/spzx/model/vo/h5/TradeVo.java b/spzx-model/src/main/java/com/atguigu/spzx/model/vo/h5/TradeVo.java index f2cc0cc..c0bdc7e 100644 --- a/spzx-model/src/main/java/com/atguigu/spzx/model/vo/h5/TradeVo.java +++ b/spzx-model/src/main/java/com/atguigu/spzx/model/vo/h5/TradeVo.java @@ -10,11 +10,9 @@ import java.util.List; @Data @Schema(description = "结算实体类") public class TradeVo { - @Schema(description = "结算总金额") private BigDecimal totalAmount; @Schema(description = "结算商品列表") private List orderItemList; - } \ No newline at end of file diff --git a/spzx-service/service-order/src/main/java/com/atguigu/order/controller/OrderInfoController.java b/spzx-service/service-order/src/main/java/com/atguigu/order/controller/OrderInfoController.java index 77dc90b..11c7e9e 100644 --- a/spzx-service/service-order/src/main/java/com/atguigu/order/controller/OrderInfoController.java +++ b/spzx-service/service-order/src/main/java/com/atguigu/order/controller/OrderInfoController.java @@ -38,4 +38,11 @@ public class OrderInfoController { OrderInfo orderInfo = orderInfoService.getOrderInfo(orderId); return Result.success(orderInfo); } + + @Operation(summary = "立即购买") + @GetMapping("auth/buy/{skuId}") + public Result buy(@Parameter(name = "skuId", description = "商品skuId", required = true) @PathVariable Long skuId) { + TradeVo tradeVo = orderInfoService.buy(skuId); + return Result.success(tradeVo); + } } \ No newline at end of file diff --git a/spzx-service/service-order/src/main/java/com/atguigu/order/service/OrderInfoService.java b/spzx-service/service-order/src/main/java/com/atguigu/order/service/OrderInfoService.java index c3c3b9d..d5e82e3 100644 --- a/spzx-service/service-order/src/main/java/com/atguigu/order/service/OrderInfoService.java +++ b/spzx-service/service-order/src/main/java/com/atguigu/order/service/OrderInfoService.java @@ -27,4 +27,12 @@ public interface OrderInfoService { * @return OrderInfo */ OrderInfo getOrderInfo(Long orderId); + + /** + * 立即购买 + * + * @param skuId 商品Id + * @return 结算实体类 + */ + TradeVo buy(Long skuId); } diff --git a/spzx-service/service-order/src/main/java/com/atguigu/order/service/impl/OrderInfoServiceImpl.java b/spzx-service/service-order/src/main/java/com/atguigu/order/service/impl/OrderInfoServiceImpl.java index d9637cc..02cc8e9 100644 --- a/spzx-service/service-order/src/main/java/com/atguigu/order/service/impl/OrderInfoServiceImpl.java +++ b/spzx-service/service-order/src/main/java/com/atguigu/order/service/impl/OrderInfoServiceImpl.java @@ -160,4 +160,33 @@ public class OrderInfoServiceImpl implements OrderInfoService { public OrderInfo getOrderInfo(Long orderId) { return orderInfoMapper.getById(orderId); } + + /** + * 立即购买 + * + * @param skuId 商品Id + * @return 结算实体类 + */ + @Override + public TradeVo buy(Long skuId) { + // 查询商品 + ProductSku productSku = productFeignClient.getBySkuId(skuId).getData(); + List orderItemList = new ArrayList<>(); + OrderItem orderItem = new OrderItem(); + orderItem.setSkuId(skuId); + orderItem.setSkuName(productSku.getSkuName()); + orderItem.setSkuNum(1); + orderItem.setSkuPrice(productSku.getSalePrice()); + orderItem.setThumbImg(productSku.getThumbImg()); + orderItemList.add(orderItem); + + // 计算总金额 + BigDecimal totalAmount = productSku.getSalePrice(); + TradeVo tradeVo = new TradeVo(); + tradeVo.setTotalAmount(totalAmount); + tradeVo.setOrderItemList(orderItemList); + + // 返回 + return tradeVo; + } }