diff --git a/mall-dependencies/pom.xml b/mall-dependencies/pom.xml
index 7e29514c7..7b1953d1c 100644
--- a/mall-dependencies/pom.xml
+++ b/mall-dependencies/pom.xml
@@ -64,6 +64,7 @@
27.0.1-jre
1.16.14
1.3.0.Final
+ 3.0.4
@@ -381,6 +382,12 @@
${hibernate-validator.version}
+
+ org.springframework.cloud
+ spring-cloud-openfeign-core
+ ${spring-cloud.feign.version}
+
+
diff --git a/product-service-project/product-service-api/pom.xml b/product-service-project/product-service-api/pom.xml
index 1cbc81a0c..9e48aed2e 100644
--- a/product-service-project/product-service-api/pom.xml
+++ b/product-service-project/product-service-api/pom.xml
@@ -29,7 +29,6 @@
org.springframework.cloud
spring-cloud-openfeign-core
- RELEASE
diff --git a/search-service-project/search-service-api/pom.xml b/search-service-project/search-service-api/pom.xml
index 7df14779d..07f7d26c7 100644
--- a/search-service-project/search-service-api/pom.xml
+++ b/search-service-project/search-service-api/pom.xml
@@ -26,6 +26,10 @@
org.projectlombok
lombok
+
+ org.springframework.cloud
+ spring-cloud-openfeign-core
+
diff --git a/search-service-project/search-service-api/src/main/java/cn/iocoder/mall/searchservice/rpc/product/SearchProductRpc.java b/search-service-project/search-service-api/src/main/java/cn/iocoder/mall/searchservice/rpc/product/SearchProductFeign.java
similarity index 60%
rename from search-service-project/search-service-api/src/main/java/cn/iocoder/mall/searchservice/rpc/product/SearchProductRpc.java
rename to search-service-project/search-service-api/src/main/java/cn/iocoder/mall/searchservice/rpc/product/SearchProductFeign.java
index c2ecc7ec6..bbf7aa249 100644
--- a/search-service-project/search-service-api/src/main/java/cn/iocoder/mall/searchservice/rpc/product/SearchProductRpc.java
+++ b/search-service-project/search-service-api/src/main/java/cn/iocoder/mall/searchservice/rpc/product/SearchProductFeign.java
@@ -6,19 +6,28 @@ import cn.iocoder.mall.searchservice.rpc.product.dto.SearchProductConditionReqDT
import cn.iocoder.mall.searchservice.rpc.product.dto.SearchProductConditionRespDTO;
import cn.iocoder.mall.searchservice.rpc.product.dto.SearchProductPageReqDTO;
import cn.iocoder.mall.searchservice.rpc.product.dto.SearchProductRespDTO;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
/**
- * 商品搜索 RPC 接口
+ * Title:
+ * Description:
+ *
+ * @author zhuyang
+ * @version 1.0 2021/10/9
*/
-public interface SearchProductRpc {
-
+@FeignClient(value = "search-service")
+public interface SearchProductFeign {
/**
* 获得商品搜索分页
*
* @param pageReqDTO 分页请求 DTO
* @return 商品搜索分页结果
*/
- CommonResult> pageSearchProduct(SearchProductPageReqDTO pageReqDTO);
+ @PostMapping("/search/product//pageSearchProduct")
+ CommonResult> pageSearchProduct(@RequestBody SearchProductPageReqDTO pageReqDTO);
+
/**
* 获得商品搜索条件
@@ -26,6 +35,6 @@ public interface SearchProductRpc {
* @param conditionReqDTO 搜索条件 DTO
* @return 搜索条件
*/
- CommonResult getSearchProductCondition(SearchProductConditionReqDTO conditionReqDTO);
-
+ @PostMapping("/search/product/getSearchProductCondition")
+ CommonResult getSearchProductCondition(@RequestBody SearchProductConditionReqDTO conditionReqDTO);
}
diff --git a/search-service-project/search-service-app/pom.xml b/search-service-project/search-service-app/pom.xml
index 45b0bbb42..71ff669e6 100644
--- a/search-service-project/search-service-app/pom.xml
+++ b/search-service-project/search-service-app/pom.xml
@@ -105,6 +105,10 @@
org.springframework.cloud
spring-cloud-starter-openfeign
+
+ io.swagger
+ swagger-annotations
+
diff --git a/search-service-project/search-service-app/src/main/java/cn/iocoder/mall/searchservice/controller/SearchProductController.java b/search-service-project/search-service-app/src/main/java/cn/iocoder/mall/searchservice/controller/SearchProductController.java
new file mode 100644
index 000000000..864523634
--- /dev/null
+++ b/search-service-project/search-service-app/src/main/java/cn/iocoder/mall/searchservice/controller/SearchProductController.java
@@ -0,0 +1,54 @@
+package cn.iocoder.mall.searchservice.controller;
+
+import cn.iocoder.common.framework.vo.CommonResult;
+import cn.iocoder.common.framework.vo.PageResult;
+import cn.iocoder.mall.searchservice.manager.product.SearchProductManager;
+import cn.iocoder.mall.searchservice.rpc.product.dto.SearchProductConditionReqDTO;
+import cn.iocoder.mall.searchservice.rpc.product.dto.SearchProductConditionRespDTO;
+import cn.iocoder.mall.searchservice.rpc.product.dto.SearchProductPageReqDTO;
+import cn.iocoder.mall.searchservice.rpc.product.dto.SearchProductRespDTO;
+import io.swagger.annotations.Api;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import static cn.iocoder.common.framework.vo.CommonResult.success;
+
+/**
+ * Title:
+ * Description:
+ *
+ * @author zhuyang
+ * @version 1.0 2021/10/9
+ */
+@RestController
+@RequestMapping("/search/product")
+@Api("商品搜索")
+public class SearchProductController {
+ @Autowired
+ private SearchProductManager searchProductManager;
+ /**
+ * 获得商品搜索分页
+ *
+ * @param pageReqDTO 分页请求 DTO
+ * @return 商品搜索分页结果
+ */
+ @PostMapping("/pageSearchProduct")
+ CommonResult> pageSearchProduct(@RequestBody SearchProductPageReqDTO pageReqDTO){
+ return success(searchProductManager.pageSearchProduct(pageReqDTO));
+ }
+
+ /**
+ * 获得商品搜索条件
+ *
+ * @param conditionReqDTO 搜索条件 DTO
+ * @return 搜索条件
+ */
+ @PostMapping("/getSearchProductCondition")
+ CommonResult getSearchProductCondition(@RequestBody SearchProductConditionReqDTO conditionReqDTO){
+ return success(searchProductManager.getSearchProductCondition(conditionReqDTO));
+ }
+
+}
diff --git a/search-service-project/search-service-app/src/main/java/cn/iocoder/mall/searchservice/rpc/product/SearchProductRpcImpl.java b/search-service-project/search-service-app/src/main/java/cn/iocoder/mall/searchservice/rpc/product/SearchProductRpcImpl.java
deleted file mode 100644
index 897a57fb7..000000000
--- a/search-service-project/search-service-app/src/main/java/cn/iocoder/mall/searchservice/rpc/product/SearchProductRpcImpl.java
+++ /dev/null
@@ -1,31 +0,0 @@
-package cn.iocoder.mall.searchservice.rpc.product;
-
-import cn.iocoder.common.framework.vo.CommonResult;
-import cn.iocoder.common.framework.vo.PageResult;
-import cn.iocoder.mall.searchservice.manager.product.SearchProductManager;
-import cn.iocoder.mall.searchservice.rpc.product.dto.SearchProductConditionReqDTO;
-import cn.iocoder.mall.searchservice.rpc.product.dto.SearchProductConditionRespDTO;
-import cn.iocoder.mall.searchservice.rpc.product.dto.SearchProductPageReqDTO;
-import cn.iocoder.mall.searchservice.rpc.product.dto.SearchProductRespDTO;
-import org.apache.dubbo.config.annotation.DubboService;
-import org.springframework.beans.factory.annotation.Autowired;
-
-import static cn.iocoder.common.framework.vo.CommonResult.success;
-
-@DubboService
-public class SearchProductRpcImpl implements SearchProductRpc {
-
- @Autowired
- private SearchProductManager searchProductManager;
-
- @Override
- public CommonResult> pageSearchProduct(SearchProductPageReqDTO pageReqDTO) {
- return success(searchProductManager.pageSearchProduct(pageReqDTO));
- }
-
- @Override
- public CommonResult getSearchProductCondition(SearchProductConditionReqDTO conditionReqDTO) {
- return success(searchProductManager.getSearchProductCondition(conditionReqDTO));
- }
-
-}
diff --git a/shop-web-app/src/main/java/cn/iocoder/mall/shopweb/ShopWebApplication.java b/shop-web-app/src/main/java/cn/iocoder/mall/shopweb/ShopWebApplication.java
index ec1fbd429..b72ad2964 100644
--- a/shop-web-app/src/main/java/cn/iocoder/mall/shopweb/ShopWebApplication.java
+++ b/shop-web-app/src/main/java/cn/iocoder/mall/shopweb/ShopWebApplication.java
@@ -7,7 +7,7 @@ import org.springframework.cloud.openfeign.EnableFeignClients;
@SpringBootApplication
@EnableDiscoveryClient
-@EnableFeignClients(basePackages = {"cn.iocoder.mall.productservice.rpc"})
+@EnableFeignClients(basePackages = {"cn.iocoder.mall.productservice.rpc","cn.iocoder.mall.searchservice.rpc"})
public class ShopWebApplication {
public static void main(String[] args) {
diff --git a/shop-web-app/src/main/java/cn/iocoder/mall/shopweb/service/product/ProductSpuManager.java b/shop-web-app/src/main/java/cn/iocoder/mall/shopweb/service/product/ProductSpuManager.java
index b8d44c3ee..574905c38 100644
--- a/shop-web-app/src/main/java/cn/iocoder/mall/shopweb/service/product/ProductSpuManager.java
+++ b/shop-web-app/src/main/java/cn/iocoder/mall/shopweb/service/product/ProductSpuManager.java
@@ -9,7 +9,7 @@ import cn.iocoder.mall.productservice.rpc.category.dto.ProductCategoryRespDTO;
import cn.iocoder.mall.productservice.rpc.spu.ProductSpuFeign;
import cn.iocoder.mall.productservice.rpc.spu.dto.ProductSpuDetailRespDTO;
import cn.iocoder.mall.searchservice.enums.product.SearchProductConditionFieldEnum;
-import cn.iocoder.mall.searchservice.rpc.product.SearchProductRpc;
+import cn.iocoder.mall.searchservice.rpc.product.SearchProductFeign;
import cn.iocoder.mall.searchservice.rpc.product.dto.SearchProductConditionReqDTO;
import cn.iocoder.mall.searchservice.rpc.product.dto.SearchProductConditionRespDTO;
import cn.iocoder.mall.searchservice.rpc.product.dto.SearchProductRespDTO;
@@ -18,7 +18,6 @@ import cn.iocoder.mall.shopweb.controller.product.vo.product.ProductSpuPageReqVO
import cn.iocoder.mall.shopweb.controller.product.vo.product.ProductSpuRespVO;
import cn.iocoder.mall.shopweb.controller.product.vo.product.ProductSpuSearchConditionRespVO;
import cn.iocoder.mall.shopweb.convert.product.ProductSpuConvert;
-import org.apache.dubbo.config.annotation.DubboReference;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated;
@@ -34,9 +33,8 @@ import java.util.List;
@Validated
public class ProductSpuManager {
- @DubboReference(version = "${dubbo.consumer.SearchProductRpc.version}")
- private SearchProductRpc searchProductRpc;
-
+ @Autowired
+ private SearchProductFeign searchProductFeign;
@Autowired
private ProductCategoryFeign productCategoryFeign;
@@ -45,7 +43,7 @@ public class ProductSpuManager {
public PageResult pageProductSpu(ProductSpuPageReqVO pageReqVO) {
CommonResult> pageResult =
- searchProductRpc.pageSearchProduct(ProductSpuConvert.INSTANCE.convert(pageReqVO));
+ searchProductFeign.pageSearchProduct(ProductSpuConvert.INSTANCE.convert(pageReqVO));
pageResult.checkError();
return ProductSpuConvert.INSTANCE.convertPage(pageResult.getData());
}
@@ -53,7 +51,7 @@ public class ProductSpuManager {
public ProductSpuSearchConditionRespVO getProductSpuSearchCondition(String keyword) {
// 获得搜索条件
CommonResult getSearchProductConditionResult =
- searchProductRpc.getSearchProductCondition(new SearchProductConditionReqDTO().setKeyword(keyword)
+ searchProductFeign.getSearchProductCondition(new SearchProductConditionReqDTO().setKeyword(keyword)
.setFields(Collections.singletonList(SearchProductConditionFieldEnum.CATEGORY.getField())));
getSearchProductConditionResult.checkError();
// 拼接结果