From c40cb4ddcc41638c55274ea8d9c8c99944056a3d Mon Sep 17 00:00:00 2001 From: Administrator Date: Wed, 22 Mar 2023 21:29:10 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90=E4=B8=8B=E5=8D=95=E6=9C=8D?= =?UTF-8?q?=E5=8A=A1=E7=9A=84=E5=AE=8C=E6=95=B4=E6=B5=81=E7=A8=8B=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/mashibing/PlaceOrderStarterApp.java | 2 ++ .../com/mashibing/client/BusinessClient.java | 15 +++++++++++ .../com/mashibing/client/CouponClient.java | 15 +++++++++++ .../com/mashibing/client/ItemStockClient.java | 15 +++++++++++ .../mashibing/client/OrderManageClient.java | 15 +++++++++++ .../mashibing/client/UserPointsClient.java | 15 +++++++++++ .../controller/PlaceOrderController.java | 26 ++++++++++++++++--- 7 files changed, 99 insertions(+), 4 deletions(-) create mode 100644 01-placeorder/src/main/java/com/mashibing/client/BusinessClient.java create mode 100644 01-placeorder/src/main/java/com/mashibing/client/CouponClient.java create mode 100644 01-placeorder/src/main/java/com/mashibing/client/ItemStockClient.java create mode 100644 01-placeorder/src/main/java/com/mashibing/client/OrderManageClient.java create mode 100644 01-placeorder/src/main/java/com/mashibing/client/UserPointsClient.java diff --git a/01-placeorder/src/main/java/com/mashibing/PlaceOrderStarterApp.java b/01-placeorder/src/main/java/com/mashibing/PlaceOrderStarterApp.java index 69057cf..e319faf 100644 --- a/01-placeorder/src/main/java/com/mashibing/PlaceOrderStarterApp.java +++ b/01-placeorder/src/main/java/com/mashibing/PlaceOrderStarterApp.java @@ -3,6 +3,7 @@ package com.mashibing; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; +import org.springframework.cloud.openfeign.EnableFeignClients; /** * @author zjw @@ -10,6 +11,7 @@ import org.springframework.cloud.client.discovery.EnableDiscoveryClient; */ @SpringBootApplication @EnableDiscoveryClient +@EnableFeignClients public class PlaceOrderStarterApp { public static void main(String[] args) { diff --git a/01-placeorder/src/main/java/com/mashibing/client/BusinessClient.java b/01-placeorder/src/main/java/com/mashibing/client/BusinessClient.java new file mode 100644 index 0000000..7619777 --- /dev/null +++ b/01-placeorder/src/main/java/com/mashibing/client/BusinessClient.java @@ -0,0 +1,15 @@ +package com.mashibing.client; + +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; + +/** + * @author zjw + * @description + */ +@FeignClient(value = "business") +public interface BusinessClient { + + @GetMapping("/notify") + public void notifyBusiness(); +} diff --git a/01-placeorder/src/main/java/com/mashibing/client/CouponClient.java b/01-placeorder/src/main/java/com/mashibing/client/CouponClient.java new file mode 100644 index 0000000..fc857de --- /dev/null +++ b/01-placeorder/src/main/java/com/mashibing/client/CouponClient.java @@ -0,0 +1,15 @@ +package com.mashibing.client; + +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; + +/** + * @author zjw + * @description + */ +@FeignClient(value = "coupon") +public interface CouponClient { + + @GetMapping("/coupon") + public void coupon(); +} diff --git a/01-placeorder/src/main/java/com/mashibing/client/ItemStockClient.java b/01-placeorder/src/main/java/com/mashibing/client/ItemStockClient.java new file mode 100644 index 0000000..008e20e --- /dev/null +++ b/01-placeorder/src/main/java/com/mashibing/client/ItemStockClient.java @@ -0,0 +1,15 @@ +package com.mashibing.client; + +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; + +/** + * @author zjw + * @description + */ +@FeignClient(value = "itemstock") +public interface ItemStockClient { + + @GetMapping("/decr") + public void decr(); +} diff --git a/01-placeorder/src/main/java/com/mashibing/client/OrderManageClient.java b/01-placeorder/src/main/java/com/mashibing/client/OrderManageClient.java new file mode 100644 index 0000000..9ad8400 --- /dev/null +++ b/01-placeorder/src/main/java/com/mashibing/client/OrderManageClient.java @@ -0,0 +1,15 @@ +package com.mashibing.client; + +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; + +/** + * @author zjw + * @description + */ +@FeignClient(value = "ordermanage") +public interface OrderManageClient { + + @GetMapping("create") + public void create(); +} diff --git a/01-placeorder/src/main/java/com/mashibing/client/UserPointsClient.java b/01-placeorder/src/main/java/com/mashibing/client/UserPointsClient.java new file mode 100644 index 0000000..1c9c012 --- /dev/null +++ b/01-placeorder/src/main/java/com/mashibing/client/UserPointsClient.java @@ -0,0 +1,15 @@ +package com.mashibing.client; + +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; + +/** + * @author zjw + * @description + */ +@FeignClient(value = "userpoints") +public interface UserPointsClient { + + @GetMapping("/up") + public void up(); +} diff --git a/01-placeorder/src/main/java/com/mashibing/controller/PlaceOrderController.java b/01-placeorder/src/main/java/com/mashibing/controller/PlaceOrderController.java index eadab34..35b0465 100644 --- a/01-placeorder/src/main/java/com/mashibing/controller/PlaceOrderController.java +++ b/01-placeorder/src/main/java/com/mashibing/controller/PlaceOrderController.java @@ -1,5 +1,7 @@ package com.mashibing.controller; +import com.mashibing.client.*; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @@ -10,22 +12,38 @@ import org.springframework.web.bind.annotation.RestController; @RestController public class PlaceOrderController { + @Autowired + private ItemStockClient itemStockClient; + @Autowired + private OrderManageClient orderManageClient; + @Autowired + private CouponClient couponClient; + @Autowired + private UserPointsClient userPointsClient; + @Autowired + private BusinessClient businessClient; + + /** * 模拟用户下单操作 * @return */ @GetMapping("/po") public String po(){ + long start = System.currentTimeMillis(); //1、调用库存服务扣除商品库存 - + itemStockClient.decr(); //2、调用订单服务,创建订单 - + orderManageClient.create(); //3、调用优惠券服务,预扣除使用的优惠券 - + couponClient.coupon(); //4、调用用户积分服务,预扣除用户使用的积分 - + userPointsClient.up(); //5、调用商家服务,通知商家用户已下单 + businessClient.notifyBusiness(); + long end = System.currentTimeMillis(); + System.out.println(end - start); return "place order is ok!"; }