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!"; }