From 4233d106c186ded31f0d763710fe41116c8f47c8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=A4=9C=E7=81=AC=E7=9E=AC?= <2431038086@qq.com>
Date: Mon, 19 Jun 2023 16:48:17 +0800
Subject: [PATCH] =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E5=88=9B=E5=BB=BA=20?=
=?UTF-8?q?=E6=B5=8B=E8=AF=95?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.gitignore | 51 ++++----
a-rabbitMQ/business/pom.xml | 20 ++++
.../shun/business/BusinessApplication.java | 19 +++
.../controller/BusinessController.java | 23 ++++
.../src/main/resources/application.yml | 9 ++
a-rabbitMQ/coupon/pom.xml | 21 ++++
.../com/shun/coupon/CouponApplication.java | 18 +++
.../coupon/controller/CouponController.java | 22 ++++
.../coupon/src/main/resources/application.yml | 9 ++
a-rabbitMQ/integral/pom.xml | 21 ++++
.../shun/integral/IntegralApplication.java | 17 +++
.../controller/IntegralController.java | 22 ++++
.../src/main/resources/application.yml | 9 ++
a-rabbitMQ/order/pom.xml | 21 ++++
.../java/com/shun/order/OrderApplication.java | 18 +++
.../order/controller/OrderController.java | 23 ++++
.../order/src/main/resources/application.yml | 9 ++
a-rabbitMQ/placeOrder/pom.xml | 27 +++++
.../placeOrder/PlaceOrderApplication.java | 20 ++++
.../placeOrder/client/BusinessClient.java | 20 ++++
.../shun/placeOrder/client/CouponClient.java | 19 +++
.../placeOrder/client/IntegralClient.java | 19 +++
.../shun/placeOrder/client/OrderClient.java | 20 ++++
.../shun/placeOrder/client/StockClient.java | 20 ++++
.../contoller/PlaceOrderController.java | 44 +++++++
.../src/main/resources/application.yml | 9 ++
a-rabbitMQ/pom.xml | 110 ++++++++++++++++++
a-rabbitMQ/stock/pom.xml | 21 ++++
.../java/com/shun/stock/StockApplication.java | 18 +++
.../stock/controller/StockController.java | 31 +++++
.../stock/src/main/resources/application.yml | 9 ++
a-rabbitMQ/test.http | 1 +
a-rabbitMQ/说明 | 1 +
33 files changed, 699 insertions(+), 22 deletions(-)
create mode 100644 a-rabbitMQ/business/pom.xml
create mode 100644 a-rabbitMQ/business/src/main/java/com/shun/business/BusinessApplication.java
create mode 100644 a-rabbitMQ/business/src/main/java/com/shun/business/controller/BusinessController.java
create mode 100644 a-rabbitMQ/business/src/main/resources/application.yml
create mode 100644 a-rabbitMQ/coupon/pom.xml
create mode 100644 a-rabbitMQ/coupon/src/main/java/com/shun/coupon/CouponApplication.java
create mode 100644 a-rabbitMQ/coupon/src/main/java/com/shun/coupon/controller/CouponController.java
create mode 100644 a-rabbitMQ/coupon/src/main/resources/application.yml
create mode 100644 a-rabbitMQ/integral/pom.xml
create mode 100644 a-rabbitMQ/integral/src/main/java/com/shun/integral/IntegralApplication.java
create mode 100644 a-rabbitMQ/integral/src/main/java/com/shun/integral/controller/IntegralController.java
create mode 100644 a-rabbitMQ/integral/src/main/resources/application.yml
create mode 100644 a-rabbitMQ/order/pom.xml
create mode 100644 a-rabbitMQ/order/src/main/java/com/shun/order/OrderApplication.java
create mode 100644 a-rabbitMQ/order/src/main/java/com/shun/order/controller/OrderController.java
create mode 100644 a-rabbitMQ/order/src/main/resources/application.yml
create mode 100644 a-rabbitMQ/placeOrder/pom.xml
create mode 100644 a-rabbitMQ/placeOrder/src/main/java/com/shun/placeOrder/PlaceOrderApplication.java
create mode 100644 a-rabbitMQ/placeOrder/src/main/java/com/shun/placeOrder/client/BusinessClient.java
create mode 100644 a-rabbitMQ/placeOrder/src/main/java/com/shun/placeOrder/client/CouponClient.java
create mode 100644 a-rabbitMQ/placeOrder/src/main/java/com/shun/placeOrder/client/IntegralClient.java
create mode 100644 a-rabbitMQ/placeOrder/src/main/java/com/shun/placeOrder/client/OrderClient.java
create mode 100644 a-rabbitMQ/placeOrder/src/main/java/com/shun/placeOrder/client/StockClient.java
create mode 100644 a-rabbitMQ/placeOrder/src/main/java/com/shun/placeOrder/contoller/PlaceOrderController.java
create mode 100644 a-rabbitMQ/placeOrder/src/main/resources/application.yml
create mode 100644 a-rabbitMQ/pom.xml
create mode 100644 a-rabbitMQ/stock/pom.xml
create mode 100644 a-rabbitMQ/stock/src/main/java/com/shun/stock/StockApplication.java
create mode 100644 a-rabbitMQ/stock/src/main/java/com/shun/stock/controller/StockController.java
create mode 100644 a-rabbitMQ/stock/src/main/resources/application.yml
create mode 100644 a-rabbitMQ/test.http
create mode 100644 a-rabbitMQ/说明
diff --git a/.gitignore b/.gitignore
index 9154f4c..549e00a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,26 +1,33 @@
-# ---> Java
-# Compiled class file
-*.class
+HELP.md
+target/
+!.mvn/wrapper/maven-wrapper.jar
+!**/src/main/**/target/
+!**/src/test/**/target/
-# Log file
-*.log
+### STS ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
-# BlueJ files
-*.ctxt
+### IntelliJ IDEA ###
+.idea
+*.iws
+*.iml
+*.ipr
-# Mobile Tools for Java (J2ME)
-.mtj.tmp/
-
-# Package Files #
-*.jar
-*.war
-*.nar
-*.ear
-*.zip
-*.tar.gz
-*.rar
-
-# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
-hs_err_pid*
-replay_pid*
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+build/
+!**/src/main/**/build/
+!**/src/test/**/build/
+### VS Code ###
+.vscode/
diff --git a/a-rabbitMQ/business/pom.xml b/a-rabbitMQ/business/pom.xml
new file mode 100644
index 0000000..8bd22d3
--- /dev/null
+++ b/a-rabbitMQ/business/pom.xml
@@ -0,0 +1,20 @@
+
+
+ 4.0.0
+
+ com.shun
+ a-rabbitMQ
+ 0.0.1-SNAPSHOT
+
+
+ business
+
+
+ 17
+ 17
+ UTF-8
+
+
+
\ No newline at end of file
diff --git a/a-rabbitMQ/business/src/main/java/com/shun/business/BusinessApplication.java b/a-rabbitMQ/business/src/main/java/com/shun/business/BusinessApplication.java
new file mode 100644
index 0000000..8025535
--- /dev/null
+++ b/a-rabbitMQ/business/src/main/java/com/shun/business/BusinessApplication.java
@@ -0,0 +1,19 @@
+package com.shun.business;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
+
+/**
+ * @author 夜灬瞬
+ * @since 2023/6/17 15:32
+ */
+@SpringBootApplication
+@EnableDiscoveryClient
+public class BusinessApplication {
+
+ public static void main(String[] args) {
+ SpringApplication.run(BusinessApplication.class,args);
+ }
+
+}
diff --git a/a-rabbitMQ/business/src/main/java/com/shun/business/controller/BusinessController.java b/a-rabbitMQ/business/src/main/java/com/shun/business/controller/BusinessController.java
new file mode 100644
index 0000000..839bc8e
--- /dev/null
+++ b/a-rabbitMQ/business/src/main/java/com/shun/business/controller/BusinessController.java
@@ -0,0 +1,23 @@
+package com.shun.business.controller;
+
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @author 夜灬瞬
+ * @since 2023/6/19 15:57
+ */
+@RestController
+public class BusinessController {
+
+ /**
+ * 通知商家发货
+ * @throws InterruptedException 异常
+ */
+ @GetMapping("/notify")
+ public void notifyBusiness() throws InterruptedException {
+ Thread.sleep(400);
+ System.out.println("通知商家成功!!");
+ }
+
+}
diff --git a/a-rabbitMQ/business/src/main/resources/application.yml b/a-rabbitMQ/business/src/main/resources/application.yml
new file mode 100644
index 0000000..60d7668
--- /dev/null
+++ b/a-rabbitMQ/business/src/main/resources/application.yml
@@ -0,0 +1,9 @@
+server:
+ port: 1
+spring:
+ application:
+ name: business
+ cloud:
+ nacos:
+ discovery:
+ server-addr: 127.0.0.1:8848
\ No newline at end of file
diff --git a/a-rabbitMQ/coupon/pom.xml b/a-rabbitMQ/coupon/pom.xml
new file mode 100644
index 0000000..6dd6a0a
--- /dev/null
+++ b/a-rabbitMQ/coupon/pom.xml
@@ -0,0 +1,21 @@
+
+
+ 4.0.0
+
+ com.shun
+ a-rabbitMQ
+ 0.0.1-SNAPSHOT
+
+
+ coupon
+ 优惠券
+
+
+ 17
+ 17
+ UTF-8
+
+
+
\ No newline at end of file
diff --git a/a-rabbitMQ/coupon/src/main/java/com/shun/coupon/CouponApplication.java b/a-rabbitMQ/coupon/src/main/java/com/shun/coupon/CouponApplication.java
new file mode 100644
index 0000000..5c1f9ff
--- /dev/null
+++ b/a-rabbitMQ/coupon/src/main/java/com/shun/coupon/CouponApplication.java
@@ -0,0 +1,18 @@
+package com.shun.coupon;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
+
+/**
+ * @author 夜灬瞬
+ * @since 2023/6/19 15:51
+ */
+@SpringBootApplication
+@EnableDiscoveryClient
+public class CouponApplication {
+
+ public static void main(String[] args) {
+ SpringApplication.run(CouponApplication.class,args);
+ }
+}
diff --git a/a-rabbitMQ/coupon/src/main/java/com/shun/coupon/controller/CouponController.java b/a-rabbitMQ/coupon/src/main/java/com/shun/coupon/controller/CouponController.java
new file mode 100644
index 0000000..0f1de6a
--- /dev/null
+++ b/a-rabbitMQ/coupon/src/main/java/com/shun/coupon/controller/CouponController.java
@@ -0,0 +1,22 @@
+package com.shun.coupon.controller;
+
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @author 夜灬瞬
+ * @since 2023/6/19 15:55
+ */
+@RestController
+public class CouponController {
+
+ /**
+ * 扣除优惠券
+ * @throws InterruptedException 异常
+ */
+ @GetMapping("/coupon")
+ public void coupon() throws InterruptedException {
+ Thread.sleep(400);
+ System.out.println("优惠券预扣除成功!");
+ }
+}
diff --git a/a-rabbitMQ/coupon/src/main/resources/application.yml b/a-rabbitMQ/coupon/src/main/resources/application.yml
new file mode 100644
index 0000000..66f12d9
--- /dev/null
+++ b/a-rabbitMQ/coupon/src/main/resources/application.yml
@@ -0,0 +1,9 @@
+server:
+ port: 2
+spring:
+ application:
+ name: coupon
+ cloud:
+ nacos:
+ discovery:
+ server-addr: 127.0.0.1:8848
\ No newline at end of file
diff --git a/a-rabbitMQ/integral/pom.xml b/a-rabbitMQ/integral/pom.xml
new file mode 100644
index 0000000..402c0a9
--- /dev/null
+++ b/a-rabbitMQ/integral/pom.xml
@@ -0,0 +1,21 @@
+
+
+ 4.0.0
+
+ com.shun
+ a-rabbitMQ
+ 0.0.1-SNAPSHOT
+
+
+ integral
+ 积分
+
+
+ 8
+ 8
+ UTF-8
+
+
+
\ No newline at end of file
diff --git a/a-rabbitMQ/integral/src/main/java/com/shun/integral/IntegralApplication.java b/a-rabbitMQ/integral/src/main/java/com/shun/integral/IntegralApplication.java
new file mode 100644
index 0000000..df9dc68
--- /dev/null
+++ b/a-rabbitMQ/integral/src/main/java/com/shun/integral/IntegralApplication.java
@@ -0,0 +1,17 @@
+package com.shun.integral;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
+
+/**
+ * @author 夜灬瞬
+ * @since 2023/6/19 15:50
+ */
+@SpringBootApplication
+@EnableDiscoveryClient
+public class IntegralApplication {
+ public static void main(String[] args) {
+ SpringApplication.run(IntegralApplication.class,args);
+ }
+}
diff --git a/a-rabbitMQ/integral/src/main/java/com/shun/integral/controller/IntegralController.java b/a-rabbitMQ/integral/src/main/java/com/shun/integral/controller/IntegralController.java
new file mode 100644
index 0000000..dc6cc9d
--- /dev/null
+++ b/a-rabbitMQ/integral/src/main/java/com/shun/integral/controller/IntegralController.java
@@ -0,0 +1,22 @@
+package com.shun.integral.controller;
+
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @author 夜灬瞬
+ * @since 2023/6/19 15:56
+ */
+@RestController
+public class IntegralController {
+
+ /**
+ * 用户积分扣除
+ * @throws InterruptedException 异常
+ */
+ @GetMapping("/up")
+ public void up() throws InterruptedException {
+ Thread.sleep(400);
+ System.out.println("扣除用户积分成功!!");
+ }
+}
diff --git a/a-rabbitMQ/integral/src/main/resources/application.yml b/a-rabbitMQ/integral/src/main/resources/application.yml
new file mode 100644
index 0000000..c84e320
--- /dev/null
+++ b/a-rabbitMQ/integral/src/main/resources/application.yml
@@ -0,0 +1,9 @@
+server:
+ port: 3
+spring:
+ application:
+ name: integral
+ cloud:
+ nacos:
+ discovery:
+ server-addr: 127.0.0.1:8848
\ No newline at end of file
diff --git a/a-rabbitMQ/order/pom.xml b/a-rabbitMQ/order/pom.xml
new file mode 100644
index 0000000..c540ded
--- /dev/null
+++ b/a-rabbitMQ/order/pom.xml
@@ -0,0 +1,21 @@
+
+
+ 4.0.0
+
+ com.shun
+ a-rabbitMQ
+ 0.0.1-SNAPSHOT
+
+
+ order
+ 订单
+
+
+ 8
+ 8
+ UTF-8
+
+
+
\ No newline at end of file
diff --git a/a-rabbitMQ/order/src/main/java/com/shun/order/OrderApplication.java b/a-rabbitMQ/order/src/main/java/com/shun/order/OrderApplication.java
new file mode 100644
index 0000000..475297e
--- /dev/null
+++ b/a-rabbitMQ/order/src/main/java/com/shun/order/OrderApplication.java
@@ -0,0 +1,18 @@
+package com.shun.order;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
+
+/**
+ * @author 夜灬瞬
+ * @since 2023/6/19 15:49
+ */
+@SpringBootApplication
+@EnableDiscoveryClient
+public class OrderApplication {
+
+ public static void main(String[] args) {
+ SpringApplication.run(OrderApplication.class,args);
+ }
+}
diff --git a/a-rabbitMQ/order/src/main/java/com/shun/order/controller/OrderController.java b/a-rabbitMQ/order/src/main/java/com/shun/order/controller/OrderController.java
new file mode 100644
index 0000000..87a89c9
--- /dev/null
+++ b/a-rabbitMQ/order/src/main/java/com/shun/order/controller/OrderController.java
@@ -0,0 +1,23 @@
+package com.shun.order.controller;
+
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @author 夜灬瞬
+ * @since 2023/6/19 15:54
+ */
+@RestController
+public class OrderController {
+
+ /**
+ * 创建订单
+ * @throws InterruptedException 异常
+ */
+ @GetMapping("create")
+ public void create() throws InterruptedException {
+ Thread.sleep(400);
+ System.out.println("创建订单成功!");
+ }
+
+}
diff --git a/a-rabbitMQ/order/src/main/resources/application.yml b/a-rabbitMQ/order/src/main/resources/application.yml
new file mode 100644
index 0000000..7e35383
--- /dev/null
+++ b/a-rabbitMQ/order/src/main/resources/application.yml
@@ -0,0 +1,9 @@
+server:
+ port: 4
+spring:
+ application:
+ name: order
+ cloud:
+ nacos:
+ discovery:
+ server-addr: 127.0.0.1:8848
\ No newline at end of file
diff --git a/a-rabbitMQ/placeOrder/pom.xml b/a-rabbitMQ/placeOrder/pom.xml
new file mode 100644
index 0000000..b18b11f
--- /dev/null
+++ b/a-rabbitMQ/placeOrder/pom.xml
@@ -0,0 +1,27 @@
+
+
+ 4.0.0
+
+ com.shun
+ a-rabbitMQ
+ 0.0.1-SNAPSHOT
+
+
+ placeOrder
+ 下单
+
+
+ 17
+ 17
+ UTF-8
+
+
+
+
+ org.springframework.cloud
+ spring-cloud-starter-loadbalancer
+
+
+
\ No newline at end of file
diff --git a/a-rabbitMQ/placeOrder/src/main/java/com/shun/placeOrder/PlaceOrderApplication.java b/a-rabbitMQ/placeOrder/src/main/java/com/shun/placeOrder/PlaceOrderApplication.java
new file mode 100644
index 0000000..da86298
--- /dev/null
+++ b/a-rabbitMQ/placeOrder/src/main/java/com/shun/placeOrder/PlaceOrderApplication.java
@@ -0,0 +1,20 @@
+package com.shun.placeOrder;
+
+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 夜灬瞬
+ * @since 2023/6/17 16:16
+ */
+@SpringBootApplication
+@EnableFeignClients
+@EnableDiscoveryClient
+public class PlaceOrderApplication {
+
+ public static void main(String[] args) {
+ SpringApplication.run(PlaceOrderApplication.class,args);
+ }
+}
diff --git a/a-rabbitMQ/placeOrder/src/main/java/com/shun/placeOrder/client/BusinessClient.java b/a-rabbitMQ/placeOrder/src/main/java/com/shun/placeOrder/client/BusinessClient.java
new file mode 100644
index 0000000..5adb11e
--- /dev/null
+++ b/a-rabbitMQ/placeOrder/src/main/java/com/shun/placeOrder/client/BusinessClient.java
@@ -0,0 +1,20 @@
+package com.shun.placeOrder.client;
+
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @author 夜灬瞬
+ * @since 2023/6/19 15:57
+ */
+@FeignClient("business")
+public interface BusinessClient {
+
+ /**
+ * 通知商家发货
+ */
+ @GetMapping("/notify")
+ public void notifyBusiness();
+
+}
diff --git a/a-rabbitMQ/placeOrder/src/main/java/com/shun/placeOrder/client/CouponClient.java b/a-rabbitMQ/placeOrder/src/main/java/com/shun/placeOrder/client/CouponClient.java
new file mode 100644
index 0000000..4ea719b
--- /dev/null
+++ b/a-rabbitMQ/placeOrder/src/main/java/com/shun/placeOrder/client/CouponClient.java
@@ -0,0 +1,19 @@
+package com.shun.placeOrder.client;
+
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @author 夜灬瞬
+ * @since 2023/6/19 15:55
+ */
+@FeignClient("coupon")
+public interface CouponClient {
+
+ /**
+ * 扣除优惠券
+ */
+ @GetMapping("/coupon")
+ public void coupon();
+}
diff --git a/a-rabbitMQ/placeOrder/src/main/java/com/shun/placeOrder/client/IntegralClient.java b/a-rabbitMQ/placeOrder/src/main/java/com/shun/placeOrder/client/IntegralClient.java
new file mode 100644
index 0000000..03f92a4
--- /dev/null
+++ b/a-rabbitMQ/placeOrder/src/main/java/com/shun/placeOrder/client/IntegralClient.java
@@ -0,0 +1,19 @@
+package com.shun.placeOrder.client;
+
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @author 夜灬瞬
+ * @since 2023/6/19 15:56
+ */
+@FeignClient("integral")
+public interface IntegralClient {
+
+ /**
+ * 用户积分扣除
+ */
+ @GetMapping("/up")
+ public void up() ;
+}
diff --git a/a-rabbitMQ/placeOrder/src/main/java/com/shun/placeOrder/client/OrderClient.java b/a-rabbitMQ/placeOrder/src/main/java/com/shun/placeOrder/client/OrderClient.java
new file mode 100644
index 0000000..18a0a3a
--- /dev/null
+++ b/a-rabbitMQ/placeOrder/src/main/java/com/shun/placeOrder/client/OrderClient.java
@@ -0,0 +1,20 @@
+package com.shun.placeOrder.client;
+
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @author 夜灬瞬
+ * @since 2023/6/19 15:54
+ */
+@FeignClient("order")
+public interface OrderClient {
+
+ /**
+ * 创建订单
+ */
+ @GetMapping("create")
+ public void create();
+
+}
diff --git a/a-rabbitMQ/placeOrder/src/main/java/com/shun/placeOrder/client/StockClient.java b/a-rabbitMQ/placeOrder/src/main/java/com/shun/placeOrder/client/StockClient.java
new file mode 100644
index 0000000..e4f385e
--- /dev/null
+++ b/a-rabbitMQ/placeOrder/src/main/java/com/shun/placeOrder/client/StockClient.java
@@ -0,0 +1,20 @@
+package com.shun.placeOrder.client;
+
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @author 夜灬瞬
+ * @since 2023/6/19 15:52
+ */
+@FeignClient("stock")
+public interface StockClient {
+
+
+ /**
+ * 扣减库存
+ */
+ @GetMapping("/delStock")
+ public void delStock();
+}
diff --git a/a-rabbitMQ/placeOrder/src/main/java/com/shun/placeOrder/contoller/PlaceOrderController.java b/a-rabbitMQ/placeOrder/src/main/java/com/shun/placeOrder/contoller/PlaceOrderController.java
new file mode 100644
index 0000000..c24a116
--- /dev/null
+++ b/a-rabbitMQ/placeOrder/src/main/java/com/shun/placeOrder/contoller/PlaceOrderController.java
@@ -0,0 +1,44 @@
+package com.shun.placeOrder.contoller;
+
+import com.shun.placeOrder.client.*;
+import jakarta.annotation.Resource;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @author 夜灬瞬
+ * @since 2023/6/19 15:46
+ */
+@RestController
+public class PlaceOrderController {
+
+ @Resource
+ BusinessClient businessClient;
+ @Resource
+ CouponClient couponClient;
+ @Resource
+ IntegralClient integralClient;
+ @Resource
+ OrderClient orderClient;
+ @Resource
+ StockClient stockClient;
+
+ @GetMapping("po")
+ public String po(){
+ long start = System.currentTimeMillis();
+ // 调用库存服务扣减商品库存
+ stockClient.delStock();
+ // 调用订单服务 创建订单
+ orderClient.create();
+ // 调用优惠券服务,预扣除优惠券
+ couponClient.coupon();
+ // 调用用户积分服务,预扣除用户积分
+ integralClient.up();
+ // 调用商家服务,通知商家用户已下单
+ businessClient.notifyBusiness();
+ long end = System.currentTimeMillis();
+ System.out.println("耗时:" + (end - start));
+ return "PlaceOrderController finish";
+
+ }
+}
diff --git a/a-rabbitMQ/placeOrder/src/main/resources/application.yml b/a-rabbitMQ/placeOrder/src/main/resources/application.yml
new file mode 100644
index 0000000..ba41442
--- /dev/null
+++ b/a-rabbitMQ/placeOrder/src/main/resources/application.yml
@@ -0,0 +1,9 @@
+server:
+ port: 5
+spring:
+ application:
+ name: placeOrder
+ cloud:
+ nacos:
+ discovery:
+ server-addr: 127.0.0.1:8848
\ No newline at end of file
diff --git a/a-rabbitMQ/pom.xml b/a-rabbitMQ/pom.xml
new file mode 100644
index 0000000..99b3b07
--- /dev/null
+++ b/a-rabbitMQ/pom.xml
@@ -0,0 +1,110 @@
+
+
+ 4.0.0
+
+ org.springframework.boot
+ spring-boot-starter-parent
+ 3.1.0
+
+
+ com.shun
+ a-rabbitMQ
+ 0.0.1-SNAPSHOT
+ pom
+ a-rabbitMQ
+ a-rabbitMQ
+
+ placeOrder
+ stock
+ order
+ coupon
+ integral
+ business
+
+
+ 17
+ 2022.0.0.0-RC2
+ 2022.0.2
+
+
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+
+ org.springframework.boot
+ spring-boot-configuration-processor
+ true
+
+
+ org.projectlombok
+ lombok
+ true
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+ test
+
+
+ org.springframework.amqp
+ spring-rabbit-test
+ test
+
+
+
+ com.alibaba.cloud
+ spring-cloud-starter-alibaba-nacos-discovery
+
+
+ org.springframework.cloud
+ spring-cloud-starter-openfeign
+
+
+
+
+
+
+
+ com.alibaba.cloud
+ spring-cloud-alibaba-dependencies
+ ${spring-cloud-alibaba.version}
+ pom
+ import
+
+
+
+
+ org.springframework.cloud
+ spring-cloud-dependencies
+ ${spring-cloud.version}
+ pom
+ import
+
+
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+
+
+
+ org.projectlombok
+ lombok
+
+
+
+
+
+
+
+
diff --git a/a-rabbitMQ/stock/pom.xml b/a-rabbitMQ/stock/pom.xml
new file mode 100644
index 0000000..466cd98
--- /dev/null
+++ b/a-rabbitMQ/stock/pom.xml
@@ -0,0 +1,21 @@
+
+
+ 4.0.0
+
+ com.shun
+ a-rabbitMQ
+ 0.0.1-SNAPSHOT
+
+
+ stock
+ 库存
+
+
+ 17
+ 17
+ UTF-8
+
+
+
\ No newline at end of file
diff --git a/a-rabbitMQ/stock/src/main/java/com/shun/stock/StockApplication.java b/a-rabbitMQ/stock/src/main/java/com/shun/stock/StockApplication.java
new file mode 100644
index 0000000..57efd62
--- /dev/null
+++ b/a-rabbitMQ/stock/src/main/java/com/shun/stock/StockApplication.java
@@ -0,0 +1,18 @@
+package com.shun.stock;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
+
+/**
+ * @author 夜灬瞬
+ * @since 2023/6/19 15:50
+ */
+@SpringBootApplication
+@EnableDiscoveryClient
+public class StockApplication {
+
+ public static void main(String[] args) {
+ SpringApplication.run(StockApplication.class,args);
+ }
+}
diff --git a/a-rabbitMQ/stock/src/main/java/com/shun/stock/controller/StockController.java b/a-rabbitMQ/stock/src/main/java/com/shun/stock/controller/StockController.java
new file mode 100644
index 0000000..826cade
--- /dev/null
+++ b/a-rabbitMQ/stock/src/main/java/com/shun/stock/controller/StockController.java
@@ -0,0 +1,31 @@
+package com.shun.stock.controller;
+
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @author 夜灬瞬
+ * @since 2023/6/19 15:52
+ */
+@RestController
+public class StockController {
+
+ /**
+ * 假设剩余库存数量
+ */
+ private static Integer stock = 10;
+
+ /**
+ * 扣减库存
+ * @throws InterruptedException 异常
+ */
+ @GetMapping("/delStock")
+ public void delStock() throws InterruptedException {
+ Thread.sleep(400);
+ stock--;
+ if(stock < 0){
+ throw new RuntimeException("商品库存不足!");
+ }
+ System.out.println("扣减库存成功!");
+ }
+}
diff --git a/a-rabbitMQ/stock/src/main/resources/application.yml b/a-rabbitMQ/stock/src/main/resources/application.yml
new file mode 100644
index 0000000..11b50ce
--- /dev/null
+++ b/a-rabbitMQ/stock/src/main/resources/application.yml
@@ -0,0 +1,9 @@
+server:
+ port: 6
+spring:
+ application:
+ name: stock
+ cloud:
+ nacos:
+ discovery:
+ server-addr: 127.0.0.1:8848
\ No newline at end of file
diff --git a/a-rabbitMQ/test.http b/a-rabbitMQ/test.http
new file mode 100644
index 0000000..29e09bc
--- /dev/null
+++ b/a-rabbitMQ/test.http
@@ -0,0 +1 @@
+GET http://localhost:5/po
\ No newline at end of file
diff --git a/a-rabbitMQ/说明 b/a-rabbitMQ/说明
new file mode 100644
index 0000000..aad86cc
--- /dev/null
+++ b/a-rabbitMQ/说明
@@ -0,0 +1 @@
+ RabbitMQ 模拟电商
\ No newline at end of file