浏览代码

feat:上游服务补充

zhangwei 1 天之前
父节点
当前提交
e826cbfd48
共有 73 个文件被更改,包括 1624 次插入96 次删除
  1. 34 0
      edu-travel-adapter/edu-travel-adapter-commodity/src/main/java/edu/travel/adapter/service/commodity/ShopAddressAdapter.java
  2. 35 0
      edu-travel-adapter/edu-travel-adapter-commodity/src/main/java/edu/travel/adapter/service/commodity/ShopCategoryAdapter.java
  3. 52 0
      edu-travel-adapter/edu-travel-adapter-commodity/src/main/java/edu/travel/adapter/service/commodity/ShopFavoriteAdapter.java
  4. 39 0
      edu-travel-adapter/edu-travel-adapter-commodity/src/main/java/edu/travel/adapter/service/commodity/ShopOpinionAdapter.java
  5. 20 0
      edu-travel-adapter/edu-travel-adapter-commodity/src/main/java/edu/travel/adapter/service/commodity/ShopOpinionTypeAdapter.java
  6. 40 0
      edu-travel-adapter/edu-travel-adapter-commodity/src/main/java/edu/travel/adapter/service/commodity/ShopParametersAdapter.java
  7. 44 0
      edu-travel-adapter/edu-travel-adapter-commodity/src/main/java/edu/travel/adapter/service/commodity/ShopProductAdapter.java
  8. 47 0
      edu-travel-adapter/edu-travel-adapter-commodity/src/main/java/edu/travel/adapter/service/commodity/ShopProductSkuAdapter.java
  9. 20 0
      edu-travel-adapter/edu-travel-adapter-commodity/src/main/java/edu/travel/adapter/service/commodity/ShopProductSpecAdapter.java
  10. 83 0
      edu-travel-adapter/edu-travel-adapter-commodity/src/main/java/edu/travel/adapter/service/commodity/ShopReviewAdapter.java
  11. 26 0
      edu-travel-adapter/edu-travel-adapter-commodity/src/main/java/edu/travel/adapter/service/commodity/ShopSearchRecordsAdapter.java
  12. 60 0
      edu-travel-adapter/edu-travel-adapter-commodity/src/main/java/edu/travel/adapter/service/commodity/ShopShoppingCartAdapter.java
  13. 31 0
      edu-travel-adapter/edu-travel-adapter-commodity/src/main/java/edu/travel/adapter/service/commodity/ShopSpecAdapter.java
  14. 47 0
      edu-travel-api/edu-travel-api-web/src/main/java/edu/travel/controller/ShopAddressController.java
  15. 60 0
      edu-travel-api/edu-travel-api-web/src/main/java/edu/travel/controller/ShopCategoryController.java
  16. 67 0
      edu-travel-api/edu-travel-api-web/src/main/java/edu/travel/controller/ShopFavoriteController.java
  17. 49 0
      edu-travel-api/edu-travel-api-web/src/main/java/edu/travel/controller/ShopOpinionController.java
  18. 31 0
      edu-travel-api/edu-travel-api-web/src/main/java/edu/travel/controller/ShopOpinionTypeController.java
  19. 45 0
      edu-travel-api/edu-travel-api-web/src/main/java/edu/travel/controller/ShopParametersController.java
  20. 93 0
      edu-travel-api/edu-travel-api-web/src/main/java/edu/travel/controller/ShopProductController.java
  21. 58 0
      edu-travel-api/edu-travel-api-web/src/main/java/edu/travel/controller/ShopProductSkuController.java
  22. 36 0
      edu-travel-api/edu-travel-api-web/src/main/java/edu/travel/controller/ShopProductSpecController.java
  23. 54 0
      edu-travel-api/edu-travel-api-web/src/main/java/edu/travel/controller/ShopReviewController.java
  24. 42 0
      edu-travel-api/edu-travel-api-web/src/main/java/edu/travel/controller/ShopSearchRecordsController.java
  25. 69 0
      edu-travel-api/edu-travel-api-web/src/main/java/edu/travel/controller/ShopShoppingCartController.java
  26. 42 0
      edu-travel-api/edu-travel-api-web/src/main/java/edu/travel/controller/ShopSpecController.java
  27. 30 0
      edu-travel-api/edu-travel-api-web/src/main/resources/bootstrap-dev.yml
  28. 9 0
      edu-travel-api/edu-travel-api-web/src/main/resources/bootstrap.yml
  29. 21 0
      edu-travel-remote/edu-travel-remote-commodity/src/main/java/edu/travel/remote/commodity/ShopAddressRemoteController.java
  30. 7 5
      edu-travel-remote/edu-travel-remote-commodity/src/main/java/edu/travel/remote/commodity/ShopCategoryRemoteController.java
  31. 31 0
      edu-travel-remote/edu-travel-remote-commodity/src/main/java/edu/travel/remote/commodity/ShopFavoriteRemoteController.java
  32. 18 0
      edu-travel-remote/edu-travel-remote-commodity/src/main/java/edu/travel/remote/commodity/ShopOpinionRemoteController.java
  33. 18 0
      edu-travel-remote/edu-travel-remote-commodity/src/main/java/edu/travel/remote/commodity/ShopOpinionTypeRemoteController.java
  34. 7 2
      edu-travel-remote/edu-travel-remote-commodity/src/main/java/edu/travel/remote/commodity/ShopParametersRemoteController.java
  35. 1 1
      edu-travel-remote/edu-travel-remote-commodity/src/main/java/edu/travel/remote/commodity/ShopProductParametersRemoteController.java
  36. 34 0
      edu-travel-remote/edu-travel-remote-commodity/src/main/java/edu/travel/remote/commodity/ShopProductRemoteController.java
  37. 19 2
      edu-travel-remote/edu-travel-remote-commodity/src/main/java/edu/travel/remote/commodity/ShopProductSkuRemoteController.java
  38. 14 0
      edu-travel-remote/edu-travel-remote-commodity/src/main/java/edu/travel/remote/commodity/ShopProductSpecRemoteController.java
  39. 7 4
      edu-travel-remote/edu-travel-remote-commodity/src/main/java/edu/travel/remote/commodity/ShopReviewRemoteController.java
  40. 22 0
      edu-travel-remote/edu-travel-remote-commodity/src/main/java/edu/travel/remote/commodity/ShopSearchRecordsRemoteController.java
  41. 36 0
      edu-travel-remote/edu-travel-remote-commodity/src/main/java/edu/travel/remote/commodity/ShopShoppingCartRemoteController.java
  42. 27 0
      edu-travel-remote/edu-travel-remote-commodity/src/main/java/edu/travel/remote/commodity/ShopSpecRemoteController.java
  43. 1 1
      edu-travel-remote/edu-travel-remote-commodity/src/main/java/edu/travel/remote/commodity/ShopUnitRemoteController.java
  44. 1 1
      edu-travel-remote/edu-travel-remote-commodity/src/main/java/edu/travel/remote/dto/AddReviewDto.java
  45. 1 1
      edu-travel-remote/edu-travel-remote-commodity/src/main/java/edu/travel/remote/dto/FileDto.java
  46. 1 1
      edu-travel-remote/edu-travel-remote-commodity/src/main/java/edu/travel/remote/dto/InsertProductDto.java
  47. 1 1
      edu-travel-remote/edu-travel-remote-commodity/src/main/java/edu/travel/remote/dto/InsertProductSkuDto.java
  48. 0 8
      edu-travel-remote/edu-travel-remote-commodity/src/main/java/edu/travel/remote/opinion/ShopOpinionRemoteController.java
  49. 0 8
      edu-travel-remote/edu-travel-remote-commodity/src/main/java/edu/travel/remote/opinion/ShopOpinionTypeRemoteController.java
  50. 16 0
      edu-travel-remote/edu-travel-remote-commodity/src/main/java/edu/travel/remote/vo/FileWebVo.java
  51. 2 2
      edu-travel-remote/edu-travel-remote-commodity/src/main/java/edu/travel/remote/vo/ProductSkuVo.java
  52. 2 2
      edu-travel-remote/edu-travel-remote-commodity/src/main/java/edu/travel/remote/vo/ShopReviewVo.java
  53. 4 4
      edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/service/ShopCategoryService.java
  54. 2 2
      edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/service/ShopProductImageService.java
  55. 2 1
      edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/service/ShopReviewService.java
  56. 6 5
      edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/service/impl/ShopCategoryServiceImpl.java
  57. 3 3
      edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/service/impl/ShopProductImageServiceImpl.java
  58. 2 7
      edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/service/impl/ShopProductServiceImpl.java
  59. 2 3
      edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/service/impl/ShopProductSpecServiceImpl.java
  60. 9 6
      edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/service/impl/ShopReviewServiceImpl.java
  61. 2 1
      edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/web/ShopAddressController.java
  62. 4 4
      edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/web/ShopCategoryController.java
  63. 2 1
      edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/web/ShopFavoriteController.java
  64. 9 5
      edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/web/ShopOpinionController.java
  65. 1 1
      edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/web/ShopOpinionTypeController.java
  66. 12 3
      edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/web/ShopProductController.java
  67. 0 2
      edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/web/ShopProductParametersController.java
  68. 1 1
      edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/web/ShopProductSkuController.java
  69. 2 1
      edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/web/ShopProductSpecController.java
  70. 2 1
      edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/web/ShopReviewController.java
  71. 5 4
      edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/web/ShopSearchRecordsController.java
  72. 2 1
      edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/web/ShopShoppingCartController.java
  73. 2 1
      edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/web/ShopSpecController.java

+ 34 - 0
edu-travel-adapter/edu-travel-adapter-commodity/src/main/java/edu/travel/adapter/service/commodity/ShopAddressAdapter.java

@@ -0,0 +1,34 @@
+package edu.travel.adapter.service.commodity;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import edu.travel.adapter.annotation.AdapterAnnotation;
+import edu.travel.remote.commodity.ShopAddressRemoteController;
+import edu.travel.remote.dto.BaseDto;
+import edu.travel.remote.dto.UpdateAddressDto;
+import edu.travel.remote.vo.ShopAddressVo;
+import edu.travel.resp.BaseResponse;
+import edu.travel.rpc.RPCBaseResponse;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+
+@Component
+public class ShopAddressAdapter {
+    @Autowired
+    private ShopAddressRemoteController shopAddressRemoteController;
+
+    @AdapterAnnotation
+    public RPCBaseResponse<Page<ShopAddressVo>> getShopAddress(BaseDto dto) {
+        return shopAddressRemoteController.getShopAddress(dto);
+    }
+
+    /**
+     *  新增或编辑地址
+     * @param param
+     * @return {@link BaseResponse }<{@link Void }>
+     */
+    @AdapterAnnotation
+    public RPCBaseResponse<Boolean> updateAddressById(UpdateAddressDto param) {
+        return shopAddressRemoteController.updateAddressById(param);
+    }
+}

+ 35 - 0
edu-travel-adapter/edu-travel-adapter-commodity/src/main/java/edu/travel/adapter/service/commodity/ShopCategoryAdapter.java

@@ -0,0 +1,35 @@
+package edu.travel.adapter.service.commodity;
+
+import edu.travel.adapter.annotation.AdapterAnnotation;
+import edu.travel.remote.commodity.ShopCategoryRemoteController;
+import edu.travel.remote.dto.BaseDto;
+import edu.travel.remote.dto.ShopTypeDto;
+import edu.travel.remote.vo.FileWebVo;
+import edu.travel.remote.vo.ShopTypeVo;
+import edu.travel.rpc.RPCBaseResponse;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.cloud.openfeign.SpringQueryMap;
+import org.springframework.stereotype.Component;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.util.List;
+
+@Component
+public class ShopCategoryAdapter {
+    @Autowired
+    private ShopCategoryRemoteController shopCategoryRemoteController;
+    @AdapterAnnotation
+    public RPCBaseResponse<List<ShopTypeVo>> getShopType(ShopTypeDto param){
+        return shopCategoryRemoteController.getShopType(param);
+    }
+    @AdapterAnnotation
+    public RPCBaseResponse<List<ShopTypeVo>> getLevelToShopType(@SpringQueryMap BaseDto param){
+        return shopCategoryRemoteController.getLevelToShopType(param);
+    }
+    @AdapterAnnotation
+    public RPCBaseResponse<FileWebVo> uploadIcon(MultipartFile file){
+        return shopCategoryRemoteController.uploadIcon(file);
+    }
+
+
+}

+ 52 - 0
edu-travel-adapter/edu-travel-adapter-commodity/src/main/java/edu/travel/adapter/service/commodity/ShopFavoriteAdapter.java

@@ -0,0 +1,52 @@
+package edu.travel.adapter.service.commodity;
+
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import edu.travel.adapter.annotation.AdapterAnnotation;
+import edu.travel.remote.commodity.ShopFavoriteRemoteController;
+import edu.travel.remote.dto.AddFavoriteDto;
+import edu.travel.remote.dto.BaseDto;
+import edu.travel.remote.vo.ShopFavoriteVo;
+import edu.travel.rpc.RPCBaseResponse;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+import org.springframework.web.bind.annotation.RequestBody;
+
+import java.util.Set;
+
+import static edu.travel.rpc.RPCBaseResponse.success;
+
+@Component
+public class ShopFavoriteAdapter {
+
+    @Autowired
+    private ShopFavoriteRemoteController shopFavoriteRemoteController;
+    @AdapterAnnotation
+    public RPCBaseResponse<Page<ShopFavoriteVo>> getFavorite(BaseDto baseDto){
+        return shopFavoriteRemoteController.getFavorite(baseDto);
+    }
+
+    @AdapterAnnotation
+    public RPCBaseResponse<Void> addFavorite(@RequestBody AddFavoriteDto params){
+        shopFavoriteRemoteController.addFavorite(params);
+        return success();
+    }
+
+    /**
+     * 移除收藏
+     */
+    @AdapterAnnotation
+    public RPCBaseResponse<Void> removeFavorite(@RequestBody Set<String> ids){
+        shopFavoriteRemoteController.removeFavorite(ids);
+        return success();
+    }
+
+    /**
+     * 全部移除
+     */
+    @AdapterAnnotation
+    public RPCBaseResponse<Void> removeAllFavorite(){
+        shopFavoriteRemoteController.removeAllFavorite();
+        return success();
+    }
+}

+ 39 - 0
edu-travel-adapter/edu-travel-adapter-commodity/src/main/java/edu/travel/adapter/service/commodity/ShopOpinionAdapter.java

@@ -0,0 +1,39 @@
+package edu.travel.adapter.service.commodity;
+
+import edu.travel.adapter.annotation.AdapterAnnotation;
+import edu.travel.remote.commodity.ShopOpinionRemoteController;
+import edu.travel.remote.dto.ShopOpinionDto;
+import edu.travel.remote.vo.FileWebVo;
+import edu.travel.remote.vo.ShopOpinionVo;
+import edu.travel.rpc.RPCBaseResponse;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.util.List;
+
+@Component
+public class ShopOpinionAdapter {
+    @Autowired
+    private ShopOpinionRemoteController shopOpinionRemoteController;
+    @AdapterAnnotation
+    public RPCBaseResponse<FileWebVo> uploadOpinionImage(MultipartFile file){
+        return shopOpinionRemoteController.uploadOpinionImage(file);
+    }
+    @AdapterAnnotation
+    public RPCBaseResponse<Void> saveFormTarget(ShopOpinionDto shopOpinionDto){
+        RPCBaseResponse<ShopOpinionVo> result = shopOpinionRemoteController.saveFormTarget(shopOpinionDto);
+        if(result.getCode()!=200){
+            return RPCBaseResponse.error();
+        }
+        return RPCBaseResponse.success();
+    }
+    @AdapterAnnotation
+    public RPCBaseResponse<Void> deleteTargetFormId(List<String> ids){
+        RPCBaseResponse<ShopOpinionVo> result = shopOpinionRemoteController.deleteTargetFormId(ids);
+        if(result.getCode()!=200){
+            return RPCBaseResponse.error();
+        }
+        return RPCBaseResponse.success();
+    }
+}

+ 20 - 0
edu-travel-adapter/edu-travel-adapter-commodity/src/main/java/edu/travel/adapter/service/commodity/ShopOpinionTypeAdapter.java

@@ -0,0 +1,20 @@
+package edu.travel.adapter.service.commodity;
+
+import edu.travel.adapter.annotation.AdapterAnnotation;
+import edu.travel.remote.commodity.ShopOpinionTypeRemoteController;
+import edu.travel.remote.vo.OpinionTypeVo;
+import edu.travel.rpc.RPCBaseResponse;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+
+@Component
+public class ShopOpinionTypeAdapter {
+    @Autowired
+    private ShopOpinionTypeRemoteController shopOpinionTypeRemoteController;
+    @AdapterAnnotation
+    public RPCBaseResponse<List<OpinionTypeVo>> getType(String languageId){
+        return shopOpinionTypeRemoteController.getType(languageId);
+    }
+}

+ 40 - 0
edu-travel-adapter/edu-travel-adapter-commodity/src/main/java/edu/travel/adapter/service/commodity/ShopParametersAdapter.java

@@ -0,0 +1,40 @@
+package edu.travel.adapter.service.commodity;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import edu.travel.adapter.annotation.AdapterAnnotation;
+import edu.travel.remote.commodity.ShopParametersRemoteController;
+import edu.travel.remote.dto.ParametersDto;
+import edu.travel.remote.dto.ProductSpecDto;
+import edu.travel.remote.vo.ParametersVo;
+import edu.travel.remote.vo.ShopParametersVo;
+import edu.travel.resp.BaseResponse;
+import edu.travel.rpc.RPCBaseResponse;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+import org.springframework.web.bind.annotation.GetMapping;
+
+import static edu.travel.rpc.RPCBaseResponse.success;
+
+@Component
+public class ShopParametersAdapter {
+    @Autowired
+    private ShopParametersRemoteController shopParametersRemoteController;
+
+
+    /**
+     *  获取商品参数
+     * @param param
+     * @return {@link BaseResponse }<{@link Page }<{@link ShopParametersVo }>>
+     */
+    @AdapterAnnotation
+    public RPCBaseResponse<Page<ShopParametersVo>> getShopParameters(ProductSpecDto param){
+        return shopParametersRemoteController.getShopParameters(param);
+    }
+    /**
+     * 获取参数
+     */
+    @AdapterAnnotation
+    public RPCBaseResponse<Page<ParametersVo>> getAllParameters(ParametersDto param){
+        return shopParametersRemoteController.getAllParameters(param);
+    }
+}

+ 44 - 0
edu-travel-adapter/edu-travel-adapter-commodity/src/main/java/edu/travel/adapter/service/commodity/ShopProductAdapter.java

@@ -0,0 +1,44 @@
+package edu.travel.adapter.service.commodity;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import edu.travel.adapter.annotation.AdapterAnnotation;
+import edu.travel.remote.commodity.ShopProductRemoteController;
+import edu.travel.remote.dto.GetProductByTypeDto;
+import edu.travel.remote.dto.InsertProductDto;
+import edu.travel.remote.dto.SearchProductDto;
+import edu.travel.remote.vo.FileWebVo;
+import edu.travel.remote.vo.ShopProductVo;
+import edu.travel.rpc.RPCBaseResponse;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.IOException;
+
+@Component
+public class ShopProductAdapter {
+    @Autowired
+    private ShopProductRemoteController shopProductRemoteController;
+    @AdapterAnnotation
+    public RPCBaseResponse<Page<ShopProductVo>> getHotProduct(GetProductByTypeDto param){
+        return shopProductRemoteController.getHotProduct(param);
+    }
+    @AdapterAnnotation
+    public RPCBaseResponse<Page<ShopProductVo>> searchProduct(SearchProductDto param) throws IOException{
+        return shopProductRemoteController.searchProduct(param);
+    }
+    @AdapterAnnotation
+    public RPCBaseResponse<FileWebVo> uploadProductImage(MultipartFile file){
+        return shopProductRemoteController.uploadProductImage(file);
+    }
+    @AdapterAnnotation
+    public RPCBaseResponse<Void> insertProduct(InsertProductDto params){
+        return shopProductRemoteController.insertProduct(params);
+    }
+
+    @AdapterAnnotation
+    public RPCBaseResponse<String> getSkuId(){
+        return shopProductRemoteController.getSkuId();
+    }
+
+}

+ 47 - 0
edu-travel-adapter/edu-travel-adapter-commodity/src/main/java/edu/travel/adapter/service/commodity/ShopProductSkuAdapter.java

@@ -0,0 +1,47 @@
+package edu.travel.adapter.service.commodity;
+
+import edu.travel.adapter.annotation.AdapterAnnotation;
+import edu.travel.remote.commodity.ShopProductSkuRemoteController;
+import edu.travel.remote.dto.AddShopOrderDto;
+import edu.travel.remote.dto.PayShopOrderDto;
+import edu.travel.remote.vo.ShopSkuSpecValueVo;
+import edu.travel.rpc.RPCBaseResponse;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+@Component
+public class ShopProductSkuAdapter {
+    @Autowired
+    private ShopProductSkuRemoteController shopProductSkuRemoteController;
+
+    @AdapterAnnotation
+    public RPCBaseResponse<Map<String, List<ShopSkuSpecValueVo>>> getSkuValuesById(Set<String> skuId){
+        return shopProductSkuRemoteController.getSkuValuesById(skuId);
+    }
+
+    /**
+     *  商品下单
+     * @param params
+     * @return {@link RPCBaseResponse }<{@link String }>
+     */
+
+    @AdapterAnnotation
+    public RPCBaseResponse<Void> shopProductSku(AddShopOrderDto params){
+        return shopProductSkuRemoteController.shopProductSku(params);
+    }
+
+    /**
+     *  支付商品订单
+     * @param payShopOrderDto
+     * @return {@link RPCBaseResponse }<{@link String }>
+     */
+
+    @AdapterAnnotation
+    public RPCBaseResponse<Void> payProductSku(PayShopOrderDto payShopOrderDto){
+        return shopProductSkuRemoteController.payProductSku(payShopOrderDto);
+    }
+}

+ 20 - 0
edu-travel-adapter/edu-travel-adapter-commodity/src/main/java/edu/travel/adapter/service/commodity/ShopProductSpecAdapter.java

@@ -0,0 +1,20 @@
+package edu.travel.adapter.service.commodity;
+
+import edu.travel.adapter.annotation.AdapterAnnotation;
+import edu.travel.remote.commodity.ShopProductSpecRemoteController;
+import edu.travel.remote.dto.ProductSpecDto;
+import edu.travel.remote.vo.ProductSpecVo;
+import edu.travel.rpc.RPCBaseResponse;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.cloud.openfeign.SpringQueryMap;
+import org.springframework.stereotype.Component;
+
+@Component
+public class ShopProductSpecAdapter {
+    @Autowired
+    private ShopProductSpecRemoteController shopProductSpecRemoteController;
+    @AdapterAnnotation
+    public RPCBaseResponse<ProductSpecVo> getShopSpec(ProductSpecDto param){
+        return shopProductSpecRemoteController.getShopSpec(param);
+    }
+}

+ 83 - 0
edu-travel-adapter/edu-travel-adapter-commodity/src/main/java/edu/travel/adapter/service/commodity/ShopReviewAdapter.java

@@ -0,0 +1,83 @@
+package edu.travel.adapter.service.commodity;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import edu.travel.adapter.annotation.AdapterAnnotation;
+import edu.travel.remote.commodity.ShopReviewRemoteController;
+import edu.travel.remote.dto.AddReviewDto;
+import edu.travel.remote.dto.ProductSpecDto;
+import edu.travel.remote.dto.ShopReviewDto;
+import edu.travel.remote.vo.FileWebVo;
+import edu.travel.remote.vo.ShopReviewVo;
+import edu.travel.rpc.RPCBaseResponse;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.util.List;
+
+
+@Component
+public class ShopReviewAdapter {
+    @Autowired
+    private ShopReviewRemoteController shopReviewRemoteController;
+
+    @AdapterAnnotation
+    public RPCBaseResponse<Page<ShopReviewVo>> getShopReview(ProductSpecDto params) {
+        return shopReviewRemoteController.getShopReview(params);
+    }
+
+    /**
+     * 发表评论
+     *
+     * @param params
+     * @return {@link RPCBaseResponse }<{@link String }>
+     */
+    @AdapterAnnotation
+    public RPCBaseResponse<String> addReview(@RequestBody AddReviewDto params) {
+        return shopReviewRemoteController.addReview(params);
+    }
+
+    /**
+     * 上传评论图片
+     */
+    @AdapterAnnotation
+    public RPCBaseResponse<FileWebVo> uploadReviewImage(MultipartFile file) {
+        return shopReviewRemoteController.uploadReviewImage(file);
+    }
+
+
+    @AdapterAnnotation
+    public RPCBaseResponse<String> uploadReviewImages(List<MultipartFile> files) {
+        return shopReviewRemoteController.uploadReviewImages(files);
+    }
+
+
+    @AdapterAnnotation
+    public RPCBaseResponse<ShopReviewVo> getFormId(String id) {
+        return shopReviewRemoteController.getFormId(id);
+    }
+
+
+    @AdapterAnnotation
+    public RPCBaseResponse<ShopReviewVo> updateTargetFormId(ShopReviewDto entity) {
+        return shopReviewRemoteController.updateTargetFormId(entity);
+    }
+
+    @AdapterAnnotation
+    public RPCBaseResponse<ShopReviewVo> saveFormTarget(ShopReviewDto entity) {
+        return shopReviewRemoteController.updateTargetFormId(entity);
+    }
+
+
+    @AdapterAnnotation
+    public RPCBaseResponse<ShopReviewVo> deleteTargetFormId(List<String> ids) {
+        return shopReviewRemoteController.deleteTargetFormId(ids);
+    }
+
+
+    @AdapterAnnotation
+    public RPCBaseResponse<List<ShopReviewVo>> getAllForm() {
+        return shopReviewRemoteController.getAllForm();
+    }
+}

+ 26 - 0
edu-travel-adapter/edu-travel-adapter-commodity/src/main/java/edu/travel/adapter/service/commodity/ShopSearchRecordsAdapter.java

@@ -0,0 +1,26 @@
+package edu.travel.adapter.service.commodity;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import edu.travel.adapter.annotation.AdapterAnnotation;
+import edu.travel.remote.commodity.ShopSearchRecordsRemoteController;
+import edu.travel.remote.dto.SearchRecordListDto;
+import edu.travel.remote.vo.SearchRecordsVo;
+import edu.travel.rpc.RPCBaseResponse;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+@Component
+public class ShopSearchRecordsAdapter {
+    @Autowired
+    private ShopSearchRecordsRemoteController shopSearchRecordsRemoteController;
+    @AdapterAnnotation
+    public RPCBaseResponse<Void> clearProjectSearchRecords(SearchRecordListDto clear){
+        return shopSearchRecordsRemoteController.clearProjectSearchRecords(clear);
+    }
+
+    @AdapterAnnotation
+    public RPCBaseResponse<Page<SearchRecordsVo>> searchRecordList(SearchRecordListDto baseDto){
+        return shopSearchRecordsRemoteController.searchRecordList(baseDto);
+    }
+
+}

+ 60 - 0
edu-travel-adapter/edu-travel-adapter-commodity/src/main/java/edu/travel/adapter/service/commodity/ShopShoppingCartAdapter.java

@@ -0,0 +1,60 @@
+package edu.travel.adapter.service.commodity;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import edu.travel.adapter.annotation.AdapterAnnotation;
+import edu.travel.remote.commodity.ShopShoppingCartRemoteController;
+import edu.travel.remote.dto.AddShopCartDto;
+import edu.travel.remote.dto.BaseDto;
+import edu.travel.remote.dto.UpdateShopCarDto;
+import edu.travel.remote.vo.ShopCartListVo;
+import edu.travel.resp.BaseResponse;
+import edu.travel.rpc.RPCBaseResponse;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.Set;
+
+
+@Component
+public class ShopShoppingCartAdapter {
+    @Autowired
+    private ShopShoppingCartRemoteController shopShoppingCartRemoteController;
+    /**
+     *  新增购物车
+     * @param params
+     * @return {@link BaseResponse }<{@link Boolean }>
+     */
+    @AdapterAnnotation
+    public RPCBaseResponse<Boolean> addShopCart(AddShopCartDto params) {
+        return shopShoppingCartRemoteController.addShopCart(params);
+    }
+
+    /**
+     * 分页查询购物车列表
+     * @param params
+     * @return {@link BaseResponse }<{@link Page }<{@link ShopCartListVo }>>
+     */
+    @AdapterAnnotation
+    public RPCBaseResponse<Page<ShopCartListVo>> getShopCartList(BaseDto params) {
+        return shopShoppingCartRemoteController.getShopCartList(params);
+    }
+
+    /**
+     * 修改购物车信息
+     * @param params
+     * @return {@link BaseResponse }<{@link Page }<{@link ShopCartListVo }>>
+     */
+    @AdapterAnnotation
+    public RPCBaseResponse<Boolean> updateCart(UpdateShopCarDto params) {
+        return shopShoppingCartRemoteController.updateCart(params);
+    }
+    /**
+     * 删除购物车
+     * @param ids
+     * @return {@link BaseResponse }<{@link Page }<{@link ShopCartListVo }>>
+     */
+    @AdapterAnnotation
+    public RPCBaseResponse<Integer> delCart(Set<String> ids) {
+        return shopShoppingCartRemoteController.delCart(ids);
+    }
+}

+ 31 - 0
edu-travel-adapter/edu-travel-adapter-commodity/src/main/java/edu/travel/adapter/service/commodity/ShopSpecAdapter.java

@@ -0,0 +1,31 @@
+package edu.travel.adapter.service.commodity;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import edu.travel.adapter.annotation.AdapterAnnotation;
+import edu.travel.remote.commodity.ShopSpecRemoteController;
+import edu.travel.remote.dto.SpecDto;
+import edu.travel.remote.vo.SpecVo;
+import edu.travel.rpc.RPCBaseResponse;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+@Component
+public class ShopSpecAdapter {
+    @Autowired
+    private ShopSpecRemoteController shopSpecRemoteController;
+
+    @AdapterAnnotation
+    public RPCBaseResponse<Page<SpecVo>> getShopSpec(Long countryId,Integer currentPage,Integer pageSize){
+        return shopSpecRemoteController.getShopSpec(countryId,currentPage,pageSize);
+    }
+
+    /**
+     *  修改/新增规格
+     * @return {@link RPCBaseResponse }<{@link Page }<{@link SpecVo }>>
+     */
+
+    @AdapterAnnotation
+    public RPCBaseResponse<Page<SpecVo>> insertOrUpdate(SpecDto specDto){
+        return shopSpecRemoteController.insertOrUpdate(specDto);
+    }
+}

+ 47 - 0
edu-travel-api/edu-travel-api-web/src/main/java/edu/travel/controller/ShopAddressController.java

@@ -0,0 +1,47 @@
+package edu.travel.controller;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import edu.travel.adapter.service.commodity.ShopAddressAdapter;
+import edu.travel.remote.dto.BaseDto;
+import edu.travel.remote.dto.UpdateAddressDto;
+import edu.travel.remote.vo.ShopAddressVo;
+import edu.travel.resp.BaseResponse;
+import edu.travel.rpc.RPCBaseResponse;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+/**
+* 地址表(shop_address)表控制层
+*
+* @author xxxxx
+*/
+@RestController
+@RequestMapping("/shopAddress")
+public class ShopAddressController{
+/**
+* 服务对象
+*/
+    @Autowired
+    private ShopAddressAdapter shopAddressAdapter;
+
+    /** 查询登录用户的地址信息
+     * @param dto
+     * @return {@link BaseResponse }<{@link Page }<{@link ShopAddressVo }>>
+     */
+    @GetMapping("/getShopAddress")
+    public RPCBaseResponse<Page<ShopAddressVo>> getShopAddress(BaseDto dto) {
+        return shopAddressAdapter.getShopAddress(dto);
+    }
+
+    /**
+     *  新增或编辑地址
+     * @param param
+     * @return {@link BaseResponse }<{@link Void }>
+     */
+    @PostMapping("/savaOrUpdateAddressById")
+    public RPCBaseResponse<Boolean> updateAddressById(@RequestBody UpdateAddressDto param) {
+        return shopAddressAdapter.updateAddressById(param);
+    }
+
+
+}

+ 60 - 0
edu-travel-api/edu-travel-api-web/src/main/java/edu/travel/controller/ShopCategoryController.java

@@ -0,0 +1,60 @@
+package edu.travel.controller;
+
+import edu.travel.adapter.service.commodity.ShopCategoryAdapter;
+import edu.travel.remote.dto.BaseDto;
+import edu.travel.remote.dto.ShopTypeDto;
+import edu.travel.remote.vo.FileWebVo;
+import edu.travel.remote.vo.ShopTypeVo;
+import edu.travel.resp.BaseResponse;
+import edu.travel.rpc.RPCBaseResponse;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.util.List;
+
+
+/**
+ * 商品类型(shop_category)表控制层
+ *
+ * @author xxxxx
+ */
+@RestController
+@RequestMapping("/shopCategory")
+public class ShopCategoryController {
+
+    @Autowired
+    private ShopCategoryAdapter shopCategoryAdapter;
+
+    /**
+     * 获取商品类型
+     *
+     * @return {@link BaseResponse }<{@link ShopTypeVo }>
+     */
+    @GetMapping("/getShopType")
+    public RPCBaseResponse<List<ShopTypeVo>> getShopType(ShopTypeDto param){
+        return shopCategoryAdapter.getShopType(param);
+    }
+
+    /**
+     * 获取二级热门商品类型
+     *
+     * @return {@link BaseResponse }<{@link ShopTypeVo }>
+     */
+    @GetMapping("/getLevelToShopType")
+    public RPCBaseResponse<List<ShopTypeVo>> getLevelToShopType(BaseDto param){
+        return shopCategoryAdapter.getLevelToShopType(param);
+    }
+
+    /**
+     * icon上传
+     */
+    @PostMapping("/uploadIcon")
+    public RPCBaseResponse<FileWebVo> uploadIcon(MultipartFile file) {
+        return shopCategoryAdapter.uploadIcon(file);
+    }
+
+}

+ 67 - 0
edu-travel-api/edu-travel-api-web/src/main/java/edu/travel/controller/ShopFavoriteController.java

@@ -0,0 +1,67 @@
+package edu.travel.controller;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import edu.travel.adapter.service.commodity.ShopFavoriteAdapter;
+import edu.travel.remote.dto.AddFavoriteDto;
+import edu.travel.remote.dto.BaseDto;
+import edu.travel.remote.vo.ShopFavoriteVo;
+import edu.travel.rpc.RPCBaseResponse;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.Set;
+
+import static edu.travel.rpc.RPCBaseResponse.success;
+
+/**
+ * 收藏表(shop_favorite)表控制层
+ *
+ * @author xxxxx
+ */
+@RestController
+@RequestMapping("/shopFavorite")
+public class ShopFavoriteController {
+
+    @Autowired
+    private ShopFavoriteAdapter shopFavoriteAdapter;
+
+    /**
+     *  获取收藏商品
+     * @return {@link RPCBaseResponse }<{@link Page }<{@link ShopFavoriteVo }>>
+     */
+    @GetMapping("/getFavorite")
+    public RPCBaseResponse<Page<ShopFavoriteVo>> getFavorite(BaseDto baseDto){
+        return shopFavoriteAdapter.getFavorite(baseDto);
+    }
+
+
+    /**
+     *  添加收藏
+     * @param params
+     * @return {@link RPCBaseResponse }<{@link Void }>
+     */
+
+    @PostMapping("/addFavorite")
+    public RPCBaseResponse<Void> addFavorite(@RequestBody AddFavoriteDto params){
+        shopFavoriteAdapter.addFavorite(params);
+        return success();
+    }
+
+    /**
+     * 移除收藏
+     */
+    @PostMapping("/removeFavorite")
+    public RPCBaseResponse<Void> removeFavorite(@RequestBody Set<String> ids){
+        shopFavoriteAdapter.removeFavorite(ids);
+        return success();
+    }
+
+    /**
+     * 全部移除
+     */
+    @PostMapping("/removeAllFavorite")
+    public RPCBaseResponse<Void> removeAllFavorite(){
+        shopFavoriteAdapter.removeAllFavorite();
+        return success();
+    }
+}

+ 49 - 0
edu-travel-api/edu-travel-api-web/src/main/java/edu/travel/controller/ShopOpinionController.java

@@ -0,0 +1,49 @@
+package edu.travel.controller;
+
+import edu.travel.adapter.service.commodity.ShopOpinionAdapter;
+import edu.travel.remote.dto.ShopOpinionDto;
+import edu.travel.remote.vo.FileWebVo;
+import edu.travel.remote.vo.ShopOpinionVo;
+import edu.travel.rpc.RPCBaseResponse;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.util.List;
+
+/**
+ * 意见表(shop_opinion)表控制层
+ *
+ * @author xxxxx
+ */
+@RestController
+@RequestMapping("/shopOpinion")
+public class ShopOpinionController {
+
+    @Autowired
+    private ShopOpinionAdapter shopOpinionAdapter;
+    /**
+     * 新增意见
+     */
+    @PostMapping("/saveFormTarget")
+    public RPCBaseResponse<Void> saveFormTarget(@RequestBody ShopOpinionDto entity) {
+        return shopOpinionAdapter.saveFormTarget(entity);
+    }
+
+    /**
+     * 删除意见
+     */
+    @PostMapping("/deleteTargetFormId")
+    public RPCBaseResponse<Void> deleteTargetFormId(@RequestBody List<String> ids) {
+        return shopOpinionAdapter.deleteTargetFormId(ids);
+    }
+
+    /**
+     * 意见图片上传
+     */
+    @PostMapping(value = "/uploadOpinionImage")
+    public RPCBaseResponse<FileWebVo> uploadOpinionImage(MultipartFile file) {
+        return shopOpinionAdapter.uploadOpinionImage(file);
+    }
+}

+ 31 - 0
edu-travel-api/edu-travel-api-web/src/main/java/edu/travel/controller/ShopOpinionTypeController.java

@@ -0,0 +1,31 @@
+package edu.travel.controller;
+
+import edu.travel.adapter.service.commodity.ShopOpinionTypeAdapter;
+import edu.travel.remote.vo.OpinionTypeVo;
+import edu.travel.rpc.RPCBaseResponse;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+/**
+ * 意见类型(shop_opinion_type)表控制层
+ *
+ * @author xxxxx
+ */
+@RestController
+@RequestMapping("/shopOpinionType")
+public class ShopOpinionTypeController {
+    @Autowired
+    private ShopOpinionTypeAdapter shopOpinionTypeAdapter;
+    /**
+     *  根据语言ID查询意见类型
+     */
+    @GetMapping("/getType")
+    public RPCBaseResponse<List<OpinionTypeVo>> getType(String languageId){
+        return shopOpinionTypeAdapter.getType(languageId);
+    }
+
+
+}

+ 45 - 0
edu-travel-api/edu-travel-api-web/src/main/java/edu/travel/controller/ShopParametersController.java

@@ -0,0 +1,45 @@
+package edu.travel.controller;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import edu.travel.adapter.service.commodity.ShopParametersAdapter;
+import edu.travel.remote.dto.ParametersDto;
+import edu.travel.remote.dto.ProductSpecDto;
+import edu.travel.remote.vo.ParametersVo;
+import edu.travel.remote.vo.ShopParametersVo;
+import edu.travel.resp.BaseResponse;
+import edu.travel.rpc.RPCBaseResponse;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import static edu.travel.rpc.RPCBaseResponse.success;
+
+/**
+ * 商品参数(shop_parameters)表控制层
+ *
+ * @author xxxxx
+ */
+@RestController
+@RequestMapping("/shopParameters")
+public class ShopParametersController {
+    @Autowired
+    private ShopParametersAdapter shopParametersAdapter;
+    /**
+     *  获取商品参数
+     * @param param
+     * @return {@link BaseResponse }<{@link Page }<{@link ShopParametersVo }>>
+     */
+    @GetMapping("getShopParameters")
+    public RPCBaseResponse<Page<ShopParametersVo>> getShopParameters(ProductSpecDto param){
+        return shopParametersAdapter.getShopParameters(param);
+    }
+    /**
+     * 获取参数
+     */
+    @GetMapping("getAllParameters")
+    public RPCBaseResponse<Page<ParametersVo>> getAllParameters(ParametersDto param){
+        return shopParametersAdapter.getAllParameters(param);
+    }
+
+}

+ 93 - 0
edu-travel-api/edu-travel-api-web/src/main/java/edu/travel/controller/ShopProductController.java

@@ -0,0 +1,93 @@
+package edu.travel.controller;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.io.FileTypeUtil;
+import cn.hutool.core.util.IdUtil;
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import edu.travel.adapter.service.commodity.ShopProductAdapter;
+import edu.travel.remote.dto.GetProductByTypeDto;
+import edu.travel.remote.dto.InsertProductDto;
+import edu.travel.remote.dto.SearchProductDto;
+import edu.travel.remote.upload.dto.EduFileDTO;
+import edu.travel.remote.upload.vo.FileVo;
+import edu.travel.remote.vo.FileWebVo;
+import edu.travel.remote.vo.ShopProductVo;
+import edu.travel.resp.BaseResponse;
+import edu.travel.rpc.RPCBaseResponse;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.IOException;
+import java.util.Date;
+import java.util.List;
+
+import static edu.travel.rpc.RPCBaseResponse.error;
+import static edu.travel.rpc.RPCBaseResponse.success;
+
+/**
+ * 商品表(shop_product)表控制层
+ *
+ * @author xxxxx
+ */
+@RestController
+@RequestMapping("/shopProduct")
+public class ShopProductController {
+    @Autowired
+    private ShopProductAdapter shopProductAdapter;
+    /**
+     *  首页获取热门类别的热门商品
+     * @param param 类型
+     * @return {@link BaseResponse }<{@link List }<{@link ShopProductVo }>>
+     */
+    @GetMapping("/getHotProduct")
+    public RPCBaseResponse<Page<ShopProductVo>> getHotProduct(GetProductByTypeDto param){
+        return shopProductAdapter.getHotProduct(param);
+    }
+
+    /**
+     *  搜索商品
+     * @param param 类型
+     * @return {@link BaseResponse }<{@link List }<{@link ShopProductVo }>>
+     */
+    @GetMapping("/searchProduct")
+    public RPCBaseResponse<Page<ShopProductVo>> searchProduct(SearchProductDto param) throws IOException {
+        return shopProductAdapter.searchProduct(param);
+    }
+
+
+    /**
+     *  上传商品图片
+     * @param file
+     * @return {@link RPCBaseResponse }<{@link String }>
+     */
+
+    @PostMapping("/uploadProductImage")
+    public RPCBaseResponse<FileWebVo> uploadProductImage(MultipartFile file){
+        return shopProductAdapter.uploadProductImage(file);
+    }
+
+
+    /**
+     *  新增商品
+     * @param params
+     * @return {@link RPCBaseResponse }<{@link Void }>
+     */
+
+    @PostMapping("/insertProduct")
+    public RPCBaseResponse<Void> insertProduct(@RequestBody InsertProductDto params){
+        return shopProductAdapter.insertProduct(params);
+    }
+
+    /**
+     *  获取SkuId
+     * @return {@link RPCBaseResponse }<{@link String }>
+     */
+
+    @GetMapping("/getSkuId")
+    public RPCBaseResponse<String> getSkuId(){
+        return shopProductAdapter.getSkuId();
+    }
+}

+ 58 - 0
edu-travel-api/edu-travel-api-web/src/main/java/edu/travel/controller/ShopProductSkuController.java

@@ -0,0 +1,58 @@
+package edu.travel.controller;
+
+import edu.travel.adapter.service.commodity.ShopProductSkuAdapter;
+import edu.travel.remote.dto.AddShopOrderDto;
+import edu.travel.remote.dto.PayShopOrderDto;
+import edu.travel.remote.vo.ShopSkuSpecValueVo;
+import edu.travel.rpc.RPCBaseResponse;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+/**
+ * 商品SKU表(shop_product_sku)表控制层
+ *
+ * @author xxxxx
+ */
+@RestController
+@RequestMapping("/shopProductSku")
+public class ShopProductSkuController {
+    @Autowired
+    private ShopProductSkuAdapter shopProductSkuAdapter;
+    /**
+     *  通过sku查询sku规格值
+     * @param skuId
+     * @return {@link RPCBaseResponse }<{@link Map }<{@link String }, {@link List }<{@link ShopSkuSpecValueVo }>>>
+     */
+
+    @GetMapping("/getSkuValuesById")
+    public RPCBaseResponse<Map<String, List<ShopSkuSpecValueVo>>> getSkuValuesById(@RequestParam("skuId") Set<String> skuId){
+        return shopProductSkuAdapter.getSkuValuesById(skuId);
+    }
+
+    /**
+     *  商品下单
+     * @param params
+     * @return {@link RPCBaseResponse }<{@link String }>
+     */
+
+    @PostMapping("/shopProductSku")
+    public RPCBaseResponse<Void> shopProductSku(@RequestBody AddShopOrderDto params){
+        return shopProductSkuAdapter.shopProductSku(params);
+    }
+
+    /**
+     *  支付商品订单
+     * @param payShopOrderDto
+     * @return {@link RPCBaseResponse }<{@link String }>
+     */
+
+    @PostMapping("/payProductSku")
+    public RPCBaseResponse<Void> payProductSku(@RequestBody PayShopOrderDto payShopOrderDto){
+        return shopProductSkuAdapter.payProductSku(payShopOrderDto);
+    }
+
+}

+ 36 - 0
edu-travel-api/edu-travel-api-web/src/main/java/edu/travel/controller/ShopProductSpecController.java

@@ -0,0 +1,36 @@
+package edu.travel.controller;
+
+import edu.travel.adapter.service.commodity.ShopProductSpecAdapter;
+import edu.travel.remote.dto.ProductSpecDto;
+import edu.travel.remote.vo.ProductSpecVo;
+import edu.travel.resp.BaseResponse;
+import edu.travel.rpc.RPCBaseResponse;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+
+/**
+ * 商品规格表(shop_product_spec)表控制层
+ *
+ * @author xxxxx
+ */
+@RestController
+@RequestMapping("/shopProductSpec")
+public class ShopProductSpecController {
+    @Autowired
+    private ShopProductSpecAdapter shopProductSpecAdapter;
+
+    /**
+     * 查询商品详情
+     * @param param
+     * @return {@link BaseResponse }<{@link List }<{@link ProductSpecVo }>>
+     */
+    @GetMapping("/getShopSpec")
+    public RPCBaseResponse<ProductSpecVo> getShopSpec(ProductSpecDto param){
+        return shopProductSpecAdapter.getShopSpec(param);
+    }
+}

+ 54 - 0
edu-travel-api/edu-travel-api-web/src/main/java/edu/travel/controller/ShopReviewController.java

@@ -0,0 +1,54 @@
+package edu.travel.controller;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import edu.travel.adapter.service.commodity.ShopReviewAdapter;
+import edu.travel.remote.dto.AddReviewDto;
+import edu.travel.remote.dto.ProductSpecDto;
+import edu.travel.remote.vo.FileWebVo;
+import edu.travel.remote.vo.ShopReviewVo;
+import edu.travel.rpc.RPCBaseResponse;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+/**
+ * 商品评论表(shop_review)表控制层
+ *
+ * @author xxxxx
+ */
+@RestController
+@RequestMapping("/shopReview")
+public class ShopReviewController {
+    @Autowired
+    private ShopReviewAdapter shopReviewService;
+    /**
+     * 获取商品评论
+     *
+     * @param params
+     * @return {@link RPCBaseResponse }<{@link Page }<{@link ShopReviewVo }>>
+     */
+
+    @GetMapping("/getShopReview")
+    public RPCBaseResponse<Page<ShopReviewVo>> getShopReview(ProductSpecDto params) {
+        return shopReviewService.getShopReview(params);
+    }
+
+    /**
+     * 发表评论
+     *
+     * @param params
+     * @return {@link RPCBaseResponse }<{@link String }>
+     */
+    @PostMapping("/addReview")
+    public RPCBaseResponse<String> addReview(@RequestBody AddReviewDto params) {
+        return shopReviewService.addReview(params);
+    }
+
+    /**
+     * 上传评论图片
+     */
+    @PostMapping("/uploadReviewImage")
+    public RPCBaseResponse<FileWebVo> uploadReviewImage(MultipartFile file) {
+        return shopReviewService.uploadReviewImage(file);
+    }
+}

+ 42 - 0
edu-travel-api/edu-travel-api-web/src/main/java/edu/travel/controller/ShopSearchRecordsController.java

@@ -0,0 +1,42 @@
+package edu.travel.controller;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import edu.travel.adapter.service.commodity.ShopSearchRecordsAdapter;
+import edu.travel.remote.dto.SearchRecordListDto;
+import edu.travel.remote.vo.SearchRecordsVo;
+import edu.travel.rpc.RPCBaseResponse;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+
+/**
+ * 列表搜索记录表(shop_search_records)表控制层
+ *
+ * @author xxxxx
+ */
+@RestController
+@RequestMapping("/shopSearchRecords")
+public class ShopSearchRecordsController {
+    @Autowired
+    private ShopSearchRecordsAdapter shopSearchRecordsAdapter;
+    /**
+     * 清空历史搜索记录(searchType:1
+     * @return 结果
+     */
+    @PostMapping("/clearSearchRecord")
+    public RPCBaseResponse<Void> clearProjectSearchRecords(@RequestBody SearchRecordListDto clear){
+        return shopSearchRecordsAdapter.clearProjectSearchRecords(clear);
+    }
+
+
+    /**
+     * 获取搜索记录列表
+     * @param baseDto 参数DTO对象
+     * @return 结果
+     */
+    @GetMapping("/searchRecordList")
+    public RPCBaseResponse<Page<SearchRecordsVo>> searchRecordList(SearchRecordListDto baseDto){
+        return shopSearchRecordsAdapter.searchRecordList(baseDto);
+    }
+
+}

+ 69 - 0
edu-travel-api/edu-travel-api-web/src/main/java/edu/travel/controller/ShopShoppingCartController.java

@@ -0,0 +1,69 @@
+package edu.travel.controller;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import edu.travel.adapter.service.commodity.ShopShoppingCartAdapter;
+import edu.travel.remote.dto.AddShopCartDto;
+import edu.travel.remote.dto.BaseDto;
+import edu.travel.remote.dto.UpdateShopCarDto;
+import edu.travel.remote.vo.ShopCartListVo;
+import edu.travel.resp.BaseResponse;
+import edu.travel.rpc.RPCBaseResponse;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.Set;
+
+/**
+ * 购物车表(shop_shopping_cart)表控制层
+ *
+ * @author xxxxx
+ */
+@RestController
+@RequestMapping("/shopShoppingCart")
+public class ShopShoppingCartController {
+    @Autowired
+    private ShopShoppingCartAdapter shopShoppingCartAdapter;
+
+
+    /**
+     *  新增购物车
+     * @param params
+     * @return {@link BaseResponse }<{@link Boolean }>
+     */
+    @PostMapping("/addShopCart")
+    public RPCBaseResponse<Boolean> addShopCart(@RequestBody AddShopCartDto params) {
+        return shopShoppingCartAdapter.addShopCart(params);
+    }
+
+    /**
+     * 分页查询购物车列表
+     * @param params
+     * @return {@link BaseResponse }<{@link Page }<{@link ShopCartListVo }>>
+     */
+
+    @GetMapping("/getShopCartList")
+    public RPCBaseResponse<Page<ShopCartListVo>> getShopCartList(BaseDto params) {
+        return shopShoppingCartAdapter.getShopCartList(params);
+    }
+
+    /**
+     * 修改购物车信息
+     * @param params
+     * @return {@link BaseResponse }<{@link Page }<{@link ShopCartListVo }>>
+     */
+
+    @PostMapping("/updateCart")
+    public RPCBaseResponse<Boolean> updateCart(@RequestBody UpdateShopCarDto params) {
+        return shopShoppingCartAdapter.updateCart(params);
+    }
+    /**
+     * 删除购物车
+     * @param ids
+     * @return {@link BaseResponse }<{@link Page }<{@link ShopCartListVo }>>
+     */
+
+    @PostMapping("/delCart")
+    public RPCBaseResponse<Integer> delCart(@RequestBody Set<String> ids) {
+        return shopShoppingCartAdapter.delCart(ids);
+    }
+}

+ 42 - 0
edu-travel-api/edu-travel-api-web/src/main/java/edu/travel/controller/ShopSpecController.java

@@ -0,0 +1,42 @@
+package edu.travel.controller;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import edu.travel.adapter.service.commodity.ShopSpecAdapter;
+import edu.travel.remote.dto.SpecDto;
+import edu.travel.remote.vo.SpecVo;
+import edu.travel.rpc.RPCBaseResponse;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * 规格表(shop_spec)表控制层
+ *
+ * @author xxxxx
+ */
+@RestController
+@RequestMapping("/shopSpec")
+public class ShopSpecController {
+    @Autowired
+    private ShopSpecAdapter shopSpecAdapter;
+    /**
+     *  分页查询规格
+     * @param currentPage
+     * @param pageSize
+     * @return {@link RPCBaseResponse }<{@link Page }<{@link SpecVo }>>
+     */
+
+    @GetMapping("/getShopSpec")
+    public RPCBaseResponse<Page<SpecVo>> getShopSpec(@RequestParam("countryId")Long countryId, @RequestParam("currentPage")Integer currentPage, @RequestParam("pgeSize")Integer pageSize){
+        return shopSpecAdapter.getShopSpec(countryId,currentPage,pageSize);
+    }
+
+    /**
+     *  修改/新增规格
+     * @return {@link RPCBaseResponse }<{@link Page }<{@link SpecVo }>>
+     */
+
+    @PostMapping("/insertOrUpdate")
+    public RPCBaseResponse<Page<SpecVo>> insertOrUpdate(@RequestBody SpecDto specDto){
+        return shopSpecAdapter.insertOrUpdate(specDto);
+    }
+}

+ 30 - 0
edu-travel-api/edu-travel-api-web/src/main/resources/bootstrap-dev.yml

@@ -0,0 +1,30 @@
+spring:
+  cloud:
+    nacos:
+      discovery:
+        server-addr: 192.168.1.44:8848,192.168.1.44:8849,192.168.1.44:8858
+        namespace: zhangwei-@env@
+      config:
+        file-extension: yaml
+        server-addr: 192.168.1.44:8848,192.168.1.44:8849,192.168.1.44:8858
+        refresh-enabled: true
+        namespace: zhangwei-@env@
+        shared-configs:
+          - data-id: mybatis-config-dev.yaml
+            group: DEFAULT_GROUP
+            refresh: true
+          - data-id: reids-config-dev.yaml
+            group: DEFAULT_GROUP
+            refresh: true
+          - data-id: datasource-config-dev.yaml
+            group: DEFAULT_GROUP
+            refresh: true
+          - data-id: system-config-dev.yaml
+            group: DEFAULT_GROUP
+            refresh: true
+          - data-id: sentinel_tenant.yaml
+            group: DEFAULT_GROUP
+            refresh: true
+          - data-id: feign-dev.yaml
+            group: DEFAULT_GROUP
+            refresh: true

+ 9 - 0
edu-travel-api/edu-travel-api-web/src/main/resources/bootstrap.yml

@@ -0,0 +1,9 @@
+server:
+  port: 11111
+spring:
+  application:
+    name: shop-api-web-@env@
+  profiles:
+    active: @env@
+  main:
+    allow-bean-definition-overriding: true

+ 21 - 0
edu-travel-remote/edu-travel-remote-commodity/src/main/java/edu/travel/remote/commodity/ShopAddressRemoteController.java

@@ -0,0 +1,21 @@
+package edu.travel.remote.commodity;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import edu.travel.remote.dto.BaseDto;
+import edu.travel.remote.dto.UpdateAddressDto;
+import edu.travel.remote.vo.ShopAddressVo;
+import edu.travel.rpc.RPCBaseResponse;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.cloud.openfeign.SpringQueryMap;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+
+@FeignClient(name="commodity-dev",path = "/shopAddress")
+public interface ShopAddressRemoteController {
+    @GetMapping("/getShopAddress")
+    public RPCBaseResponse<Page<ShopAddressVo>> getShopAddress(@SpringQueryMap BaseDto dto);
+
+    @PostMapping("/savaOrUpdateAddressById")
+    public RPCBaseResponse<Boolean> updateAddressById(@RequestBody UpdateAddressDto param);
+}

+ 7 - 5
edu-travel-remote/edu-travel-remote-commodity/src/main/java/edu/travel/remote/commodity/ShopCategoryRemoteController.java

@@ -4,26 +4,28 @@ import edu.travel.remote.base.RemoteBaseController;
 import edu.travel.remote.dto.BaseDto;
 import edu.travel.remote.dto.ShopCategoryDto;
 import edu.travel.remote.dto.ShopTypeDto;
+import edu.travel.remote.vo.FileWebVo;
 import edu.travel.remote.vo.ShopCategoryVo;
 import edu.travel.remote.vo.ShopTypeVo;
 import edu.travel.rpc.RPCBaseResponse;
 import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.cloud.openfeign.SpringQueryMap;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestPart;
 import org.springframework.web.multipart.MultipartFile;
 
 import java.util.List;
-import java.util.concurrent.ExecutionException;
 
-@FeignClient(name="commodity",path = "/shopCategory")
+@FeignClient(name="commodity-dev",path = "/shopCategory")
 public interface ShopCategoryRemoteController extends RemoteBaseController<ShopCategoryVo, ShopCategoryDto> {
     @GetMapping("/getShopType")
-    public RPCBaseResponse<List<ShopTypeVo>> getShopType(ShopTypeDto param) throws ExecutionException;
+    public RPCBaseResponse<List<ShopTypeVo>> getShopType(@SpringQueryMap ShopTypeDto param);
     @GetMapping("/getLevelToShopType")
-    public RPCBaseResponse<List<ShopTypeVo>> getLevelToShopType(BaseDto param) throws ExecutionException;
+    public RPCBaseResponse<List<ShopTypeVo>> getLevelToShopType(@SpringQueryMap BaseDto param);
     @PostMapping("/uploadIcon")
-    public RPCBaseResponse<String> uploadIcon(MultipartFile file);
+    public RPCBaseResponse<FileWebVo> uploadIcon(@RequestPart("file")MultipartFile file);
     @PostMapping("/updateTargetFormId")
     public RPCBaseResponse<ShopCategoryVo> updateTargetFormId(ShopCategoryDto entity);
     @PostMapping("/saveFormTarget")

+ 31 - 0
edu-travel-remote/edu-travel-remote-commodity/src/main/java/edu/travel/remote/commodity/ShopFavoriteRemoteController.java

@@ -0,0 +1,31 @@
+package edu.travel.remote.commodity;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import edu.travel.remote.dto.AddFavoriteDto;
+import edu.travel.remote.dto.BaseDto;
+import edu.travel.remote.vo.ShopFavoriteVo;
+import edu.travel.rpc.RPCBaseResponse;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.cloud.openfeign.SpringQueryMap;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+
+import java.util.Set;
+
+@FeignClient(name="commodity-dev",path = "/shopFavorite")
+public interface ShopFavoriteRemoteController {
+
+    @GetMapping("/getFavorite")
+    public RPCBaseResponse<Page<ShopFavoriteVo>> getFavorite(@SpringQueryMap BaseDto baseDto);
+
+    @PostMapping("/addFavorite")
+    public RPCBaseResponse<Void> addFavorite(@RequestBody AddFavoriteDto params);
+
+    @PostMapping("/removeFavorite")
+    public RPCBaseResponse<Void> removeFavorite(@RequestBody Set<String> ids);
+
+    @PostMapping("/removeAllFavorite")
+    public RPCBaseResponse<Void> removeAllFavorite();
+
+}

+ 18 - 0
edu-travel-remote/edu-travel-remote-commodity/src/main/java/edu/travel/remote/commodity/ShopOpinionRemoteController.java

@@ -0,0 +1,18 @@
+package edu.travel.remote.commodity;
+
+import edu.travel.remote.base.RemoteBaseController;
+import edu.travel.remote.dto.ShopOpinionDto;
+import edu.travel.remote.vo.FileWebVo;
+import edu.travel.remote.vo.ShopOpinionVo;
+import edu.travel.rpc.RPCBaseResponse;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestPart;
+import org.springframework.web.multipart.MultipartFile;
+
+@FeignClient(name="commodity-dev",path = "/shopOpinion")
+public interface ShopOpinionRemoteController extends RemoteBaseController<ShopOpinionVo, ShopOpinionDto> {
+    @PostMapping(value = "/uploadOpinionImage",headers = {"content-type=multipart/form-data"})
+    public RPCBaseResponse<FileWebVo> uploadOpinionImage(@RequestPart("file") MultipartFile file);
+
+}

+ 18 - 0
edu-travel-remote/edu-travel-remote-commodity/src/main/java/edu/travel/remote/commodity/ShopOpinionTypeRemoteController.java

@@ -0,0 +1,18 @@
+package edu.travel.remote.commodity;
+
+import edu.travel.remote.base.RemoteBaseController;
+import edu.travel.remote.dto.ShopOpinionTypeDto;
+import edu.travel.remote.vo.OpinionTypeVo;
+import edu.travel.remote.vo.ShopOpinionTypeVo;
+import edu.travel.rpc.RPCBaseResponse;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+
+import java.util.List;
+
+@FeignClient(name="commodity-dev",path = "/shopOpinionType")
+public interface ShopOpinionTypeRemoteController extends RemoteBaseController<ShopOpinionTypeVo, ShopOpinionTypeDto> {
+    @GetMapping("/getType")
+    public RPCBaseResponse<List<OpinionTypeVo>> getType(@RequestParam("languageId") String languageId);
+}

+ 7 - 2
edu-travel-remote/edu-travel-remote-commodity/src/main/java/edu/travel/remote/commodity/ShopParametersRemoteController.java

@@ -2,21 +2,26 @@ package edu.travel.remote.commodity;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import edu.travel.remote.base.RemoteBaseController;
+import edu.travel.remote.dto.ParametersDto;
 import edu.travel.remote.dto.ProductSpecDto;
 import edu.travel.remote.dto.ShopParametersDto;
+import edu.travel.remote.vo.ParametersVo;
 import edu.travel.remote.vo.ShopParametersVo;
 import edu.travel.rpc.RPCBaseResponse;
 import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.cloud.openfeign.SpringQueryMap;
 import org.springframework.web.bind.annotation.GetMapping;
 
 import java.util.List;
 
-@FeignClient(name="commodity",path = "/shopParameters")
+@FeignClient(name="commodity-dev",path = "/shopParameters")
 public interface ShopParametersRemoteController extends RemoteBaseController<ShopParametersVo, ShopParametersDto> {
     @GetMapping("getShopParameters")
-    public RPCBaseResponse<Page<ShopParametersVo>> getShopParameters(ProductSpecDto param);
+    public RPCBaseResponse<Page<ShopParametersVo>> getShopParameters(@SpringQueryMap ProductSpecDto param);
     @GetMapping("/getFormId")
     public RPCBaseResponse<ShopParametersVo> getFormId(String id);
     @GetMapping("/getAllForm")
     public RPCBaseResponse<List<ShopParametersVo>> getAllForm();
+    @GetMapping("/getAllParameters")
+    public RPCBaseResponse<Page<ParametersVo>> getAllParameters(@SpringQueryMap ParametersDto param);
 }

+ 1 - 1
edu-travel-remote/edu-travel-remote-commodity/src/main/java/edu/travel/remote/commodity/ShopProductParametersRemoteController.java

@@ -5,7 +5,7 @@ import edu.travel.remote.dto.ShopProductParametersDto;
 import edu.travel.remote.vo.ShopProductParametersVo;
 import org.springframework.cloud.openfeign.FeignClient;
 
-@FeignClient(name="commodity",path = "/shopProductParameters")
+@FeignClient(name="commodity-dev",path = "/shopProductParameters")
 public interface ShopProductParametersRemoteController extends RemoteBaseController<ShopProductParametersVo, ShopProductParametersDto> {
 
 }

+ 34 - 0
edu-travel-remote/edu-travel-remote-commodity/src/main/java/edu/travel/remote/commodity/ShopProductRemoteController.java

@@ -0,0 +1,34 @@
+package edu.travel.remote.commodity;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import edu.travel.remote.dto.GetProductByTypeDto;
+import edu.travel.remote.dto.InsertProductDto;
+import edu.travel.remote.dto.SearchProductDto;
+import edu.travel.remote.vo.FileWebVo;
+import edu.travel.remote.vo.ShopProductVo;
+import edu.travel.rpc.RPCBaseResponse;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.cloud.openfeign.SpringQueryMap;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.IOException;
+
+@FeignClient(name="commodity-dev",path = "/shopProduct")
+public interface ShopProductRemoteController {
+    @GetMapping("/getHotProduct")
+    public RPCBaseResponse<Page<ShopProductVo>> getHotProduct(@SpringQueryMap GetProductByTypeDto param);
+
+    @GetMapping("/searchProduct")
+    public RPCBaseResponse<Page<ShopProductVo>> searchProduct(@SpringQueryMap SearchProductDto param) throws IOException;
+    @PostMapping(value = "/uploadProductImage",headers = {"content-type=multipart/form-data"})
+    public RPCBaseResponse<FileWebVo> uploadProductImage(MultipartFile file);
+
+    @PostMapping("/insertProduct")
+    public RPCBaseResponse<Void> insertProduct(@RequestBody InsertProductDto params);
+
+    @GetMapping("/getSkuId")
+    public RPCBaseResponse<String> getSkuId();
+}

+ 19 - 2
edu-travel-remote/edu-travel-remote-commodity/src/main/java/edu/travel/remote/commodity/ShopProductSkuRemoteController.java

@@ -1,8 +1,25 @@
 package edu.travel.remote.commodity;
 
+import edu.travel.remote.dto.AddShopOrderDto;
+import edu.travel.remote.dto.PayShopOrderDto;
+import edu.travel.remote.vo.ShopSkuSpecValueVo;
+import edu.travel.rpc.RPCBaseResponse;
 import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestParam;
 
-@FeignClient(name="commodity",path = "/shopProductSku")
-public interface ShopProductSkuRemoteController {
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
 
+@FeignClient(name="commodity-dev",path = "/shopProductSku")
+public interface ShopProductSkuRemoteController {
+    @GetMapping("/getSkuValuesById")
+    public RPCBaseResponse<Map<String, List<ShopSkuSpecValueVo>>> getSkuValuesById(@RequestParam("skuId") Set<String> skuId);
+    @PostMapping("/shopProductSku")
+    public RPCBaseResponse<Void> shopProductSku(@RequestBody AddShopOrderDto params);
+    @PostMapping("/payProductSku")
+    public RPCBaseResponse<Void> payProductSku(@RequestBody PayShopOrderDto payShopOrderDto);
 }

+ 14 - 0
edu-travel-remote/edu-travel-remote-commodity/src/main/java/edu/travel/remote/commodity/ShopProductSpecRemoteController.java

@@ -0,0 +1,14 @@
+package edu.travel.remote.commodity;
+
+import edu.travel.remote.dto.ProductSpecDto;
+import edu.travel.remote.vo.ProductSpecVo;
+import edu.travel.rpc.RPCBaseResponse;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.cloud.openfeign.SpringQueryMap;
+import org.springframework.web.bind.annotation.GetMapping;
+
+@FeignClient(name="commodity-dev",path = "/shopProductSpec")
+public interface ShopProductSpecRemoteController {
+    @GetMapping("/getShopSpec")
+    public RPCBaseResponse<ProductSpecVo> getShopSpec(@SpringQueryMap ProductSpecDto param);
+}

+ 7 - 4
edu-travel-remote/edu-travel-remote-commodity/src/main/java/edu/travel/remote/commodity/ShopReviewRemoteController.java

@@ -5,24 +5,27 @@ import edu.travel.remote.base.RemoteBaseController;
 import edu.travel.remote.dto.AddReviewDto;
 import edu.travel.remote.dto.ProductSpecDto;
 import edu.travel.remote.dto.ShopReviewDto;
+import edu.travel.remote.vo.FileWebVo;
 import edu.travel.remote.vo.ShopReviewVo;
 import edu.travel.rpc.RPCBaseResponse;
 import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.cloud.openfeign.SpringQueryMap;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestPart;
 import org.springframework.web.multipart.MultipartFile;
 
 import java.util.List;
 
-@FeignClient(name="commodity",path = "/shopReview")
+@FeignClient(name="commodity-dev",path = "/shopReview")
 public interface ShopReviewRemoteController extends RemoteBaseController<ShopReviewVo, ShopReviewDto> {
     @GetMapping("/getShopReview")
-    public RPCBaseResponse<Page<ShopReviewVo>> getShopReview(ProductSpecDto params);
+    public RPCBaseResponse<Page<ShopReviewVo>> getShopReview(@SpringQueryMap ProductSpecDto params);
     @PostMapping("/addReview")
     public RPCBaseResponse<String> addReview(@RequestBody AddReviewDto params);
-    @PostMapping("/uploadReviewImage")
-    public RPCBaseResponse<String> uploadReviewImage(MultipartFile file);
+    @PostMapping(value = "/uploadReviewImage",headers = {"content-type=multipart/form-data"})
+    public RPCBaseResponse<FileWebVo> uploadReviewImage(@RequestPart("file") MultipartFile file);
     @PostMapping("/uploadReviewImages")
     public RPCBaseResponse<String> uploadReviewImages(List<MultipartFile> files);
 }

+ 22 - 0
edu-travel-remote/edu-travel-remote-commodity/src/main/java/edu/travel/remote/commodity/ShopSearchRecordsRemoteController.java

@@ -0,0 +1,22 @@
+package edu.travel.remote.commodity;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import edu.travel.remote.dto.SearchRecordListDto;
+import edu.travel.remote.vo.SearchRecordsVo;
+import edu.travel.rpc.RPCBaseResponse;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.cloud.openfeign.SpringQueryMap;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+
+
+@FeignClient(name="commodity-dev",path = "/shopSearchRecords")
+public interface ShopSearchRecordsRemoteController {
+
+    @PostMapping("/clearSearchRecord")
+    public RPCBaseResponse<Void> clearProjectSearchRecords(@RequestBody SearchRecordListDto clear);
+
+    @GetMapping("/searchRecordList")
+    public RPCBaseResponse<Page<SearchRecordsVo>> searchRecordList(@SpringQueryMap SearchRecordListDto baseDto);
+}

+ 36 - 0
edu-travel-remote/edu-travel-remote-commodity/src/main/java/edu/travel/remote/commodity/ShopShoppingCartRemoteController.java

@@ -0,0 +1,36 @@
+package edu.travel.remote.commodity;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import edu.travel.remote.dto.AddShopCartDto;
+import edu.travel.remote.dto.BaseDto;
+import edu.travel.remote.dto.UpdateShopCarDto;
+import edu.travel.remote.vo.ShopCartListVo;
+import edu.travel.rpc.RPCBaseResponse;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.cloud.openfeign.SpringQueryMap;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+
+import java.util.Set;
+
+
+@FeignClient(name="commodity-dev",path = "/shopShoppingCart")
+public interface ShopShoppingCartRemoteController {
+
+    @PostMapping("/addShopCart")
+    public RPCBaseResponse<Boolean> addShopCart(@RequestBody AddShopCartDto params);
+
+
+    @GetMapping("/getShopCartList")
+    public RPCBaseResponse<Page<ShopCartListVo>> getShopCartList(@SpringQueryMap BaseDto params);
+
+
+
+    @PostMapping("/updateCart")
+    public RPCBaseResponse<Boolean> updateCart(@RequestBody UpdateShopCarDto params);
+
+
+    @PostMapping("/delCart")
+    public RPCBaseResponse<Integer> delCart(@RequestBody Set<String> ids);
+}

+ 27 - 0
edu-travel-remote/edu-travel-remote-commodity/src/main/java/edu/travel/remote/commodity/ShopSpecRemoteController.java

@@ -0,0 +1,27 @@
+package edu.travel.remote.commodity;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import edu.travel.remote.dto.SpecDto;
+import edu.travel.remote.vo.SpecVo;
+import edu.travel.rpc.RPCBaseResponse;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestParam;
+
+
+@FeignClient(name="commodity-dev",path = "/shopSpec")
+public interface ShopSpecRemoteController {
+    @GetMapping("/getShopSpec")
+    public RPCBaseResponse<Page<SpecVo>> getShopSpec(@RequestParam("countryId")Long countryId,
+                                                     @RequestParam("currentPage")Integer currentPage,
+                                                     @RequestParam("pgeSize")Integer pageSize);
+    /**
+     *  修改/新增规格
+     * @return {@link RPCBaseResponse }<{@link Page }<{@link SpecVo }>>
+     */
+
+    @PostMapping("/insertOrUpdate")
+    public RPCBaseResponse<Page<SpecVo>> insertOrUpdate(@RequestBody SpecDto specDto);
+}

+ 1 - 1
edu-travel-remote/edu-travel-remote-commodity/src/main/java/edu/travel/remote/commodity/ShopUnitRemoteController.java

@@ -7,7 +7,7 @@ import edu.travel.rpc.RPCBaseResponse;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.GetMapping;
 
-@FeignClient(name="commodity",path = "/shopUnit")
+@FeignClient(name="commodity-dev",path = "/shopUnit")
 public interface ShopUnitRemoteController extends RemoteBaseController<ShopUnitVo, ShopUnitDto> {
     @GetMapping("/getFormId")
     public RPCBaseResponse<ShopUnitVo> getFormId(String id);

+ 1 - 1
edu-travel-remote/edu-travel-remote-commodity/src/main/java/edu/travel/remote/dto/AddReviewDto.java

@@ -26,7 +26,7 @@ public class AddReviewDto {
     /**
      * 评论图片
      */
-    private List<FIleDto> image;
+    private List<FileDto> image;
 
     /**
      * 商品ID

+ 1 - 1
edu-travel-remote/edu-travel-remote-commodity/src/main/java/edu/travel/remote/dto/FIleDto.java → edu-travel-remote/edu-travel-remote-commodity/src/main/java/edu/travel/remote/dto/FileDto.java

@@ -3,7 +3,7 @@ package edu.travel.remote.dto;
 import lombok.Data;
 
 @Data
-public class FIleDto {
+public class FileDto {
     /**
      * 文件路径
      */

+ 1 - 1
edu-travel-remote/edu-travel-remote-commodity/src/main/java/edu/travel/remote/dto/InsertProductDto.java

@@ -73,7 +73,7 @@ public class InsertProductDto {
     /**
      * 图片
      */
-    private List<FIleDto> images;
+    private List<FileDto> images;
     /**
      *商品规格
      */

+ 1 - 1
edu-travel-remote/edu-travel-remote-commodity/src/main/java/edu/travel/remote/dto/InsertProductSkuDto.java

@@ -42,7 +42,7 @@ public class InsertProductSkuDto {
     /**
      * 商品SKU图片
      */
-    private List<FIleDto> imageUrl;
+    private List<FileDto> imageUrl;
     /**
      * 销量
      */

+ 0 - 8
edu-travel-remote/edu-travel-remote-commodity/src/main/java/edu/travel/remote/opinion/ShopOpinionRemoteController.java

@@ -1,8 +0,0 @@
-package edu.travel.remote.opinion;
-
-import edu.travel.remote.base.RemoteBaseController;
-import edu.travel.remote.dto.ShopOpinionDto;
-import edu.travel.remote.vo.ShopOpinionVo;
-
-public interface ShopOpinionRemoteController extends RemoteBaseController<ShopOpinionVo, ShopOpinionDto> {
-}

+ 0 - 8
edu-travel-remote/edu-travel-remote-commodity/src/main/java/edu/travel/remote/opinion/ShopOpinionTypeRemoteController.java

@@ -1,8 +0,0 @@
-package edu.travel.remote.opinion;
-
-import edu.travel.remote.base.RemoteBaseController;
-import edu.travel.remote.dto.ShopOpinionTypeDto;
-import edu.travel.remote.vo.ShopOpinionTypeVo;
-
-public interface ShopOpinionTypeRemoteController extends RemoteBaseController<ShopOpinionTypeVo, ShopOpinionTypeDto> {
-}

+ 16 - 0
edu-travel-remote/edu-travel-remote-commodity/src/main/java/edu/travel/remote/vo/FileWebVo.java

@@ -0,0 +1,16 @@
+package edu.travel.remote.vo;
+
+import lombok.Data;
+
+@Data
+public class FileWebVo {
+    /**
+     * 文件路径
+     */
+    private String filePath;
+
+    /**
+     * 文件类型
+     */
+    private String fileType;
+}

+ 2 - 2
edu-travel-remote/edu-travel-remote-commodity/src/main/java/edu/travel/remote/vo/ProductSkuVo.java

@@ -1,6 +1,6 @@
 package edu.travel.remote.vo;
 
-import edu.travel.remote.dto.FIleDto;
+import edu.travel.remote.dto.FileDto;
 import lombok.Data;
 
 import java.math.BigDecimal;
@@ -54,7 +54,7 @@ public class ProductSkuVo {
     /**
      * 商品SKU图片
      */
-    private List<FIleDto> imageUrls;
+    private List<FileDto> imageUrls;
     /**
      * 销量
      */

+ 2 - 2
edu-travel-remote/edu-travel-remote-commodity/src/main/java/edu/travel/remote/vo/ShopReviewVo.java

@@ -1,7 +1,7 @@
 package edu.travel.remote.vo;
 
 import edu.travel.entity.BaseEntity;
-import edu.travel.remote.dto.FIleDto;
+import edu.travel.remote.dto.FileDto;
 import lombok.Data;
 
 import java.util.List;
@@ -62,7 +62,7 @@ public class ShopReviewVo extends BaseEntity {
     /**
      * 图片集合
      */
-    private List<FIleDto> imageUrls;
+    private List<FileDto> imageUrls;
     /**
      * 是否置顶
      */

+ 4 - 4
edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/service/ShopCategoryService.java

@@ -6,21 +6,21 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import edu.travel.remote.dto.BaseDto;
 import edu.travel.remote.dto.ShopCategoryDto;
 import edu.travel.remote.dto.ShopTypeDto;
+import edu.travel.remote.vo.FileWebVo;
 import edu.travel.remote.vo.ShopCategoryVo;
 import edu.travel.remote.vo.ShopTypeVo;
 import edu.travel.rpc.RPCBaseResponse;
 import org.springframework.web.multipart.MultipartFile;
 
 import java.util.List;
-import java.util.concurrent.ExecutionException;
 
 public interface ShopCategoryService extends IService<ShopCategory>{
 
     RPCBaseResponse<Page<ShopCategoryVo>> getCategoryPage(ShopCategoryDto shopCategoryDto);
 
-    List<ShopTypeVo> getShopType(ShopTypeDto param) throws ExecutionException;
+    List<ShopTypeVo> getShopType(ShopTypeDto param);
 
-    List<ShopTypeVo> getLevelToShopType(BaseDto param) throws ExecutionException;
+    List<ShopTypeVo> getLevelToShopType(BaseDto param);
 
-    RPCBaseResponse<String> uploadIcon(MultipartFile file);
+    RPCBaseResponse<FileWebVo> uploadIcon(MultipartFile file);
 }

+ 2 - 2
edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/service/ShopProductImageService.java

@@ -2,11 +2,11 @@ package edu.travel.commodity.service;
 
 import edu.travel.commodity.entity.ShopProductImage;
 import com.baomidou.mybatisplus.extension.service.IService;
-import edu.travel.remote.dto.FIleDto;
+import edu.travel.remote.dto.FileDto;
 
 import java.util.List;
 
 public interface ShopProductImageService extends IService<ShopProductImage>{
 
-    public boolean saveProductImage(Long productId, List<FIleDto> images);
+    public boolean saveProductImage(Long productId, List<FileDto> images);
 }

+ 2 - 1
edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/service/ShopReviewService.java

@@ -5,6 +5,7 @@ import edu.travel.commodity.entity.ShopReview;
 import com.baomidou.mybatisplus.extension.service.IService;
 import edu.travel.remote.dto.AddReviewDto;
 import edu.travel.remote.dto.ProductSpecDto;
+import edu.travel.remote.vo.FileWebVo;
 import edu.travel.remote.vo.ShopReviewVo;
 import edu.travel.rpc.RPCBaseResponse;
 import org.springframework.web.multipart.MultipartFile;
@@ -18,7 +19,7 @@ public interface ShopReviewService extends IService<ShopReview>{
 
     String addReview(AddReviewDto params);
 
-    RPCBaseResponse<String> uploadReviewImage(MultipartFile file);
+    RPCBaseResponse<FileWebVo> uploadReviewImage(MultipartFile file);
 
     RPCBaseResponse<String> uploadReviewImages(List<MultipartFile> files);
 }

+ 6 - 5
edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/service/impl/ShopCategoryServiceImpl.java

@@ -24,8 +24,9 @@ import edu.travel.commodity.utils.RedisUtil;
 import edu.travel.remote.dto.BaseDto;
 import edu.travel.remote.dto.ShopCategoryDto;
 import edu.travel.remote.dto.ShopTypeDto;
-import edu.travel.remote.feign.mode.vo.banner.BannerVo;
 import edu.travel.remote.upload.dto.EduFileDTO;
+import edu.travel.remote.upload.vo.FileVo;
+import edu.travel.remote.vo.FileWebVo;
 import edu.travel.remote.vo.ShopCategoryVo;
 import edu.travel.remote.vo.ShopTypeVo;
 import edu.travel.rpc.RPCBaseResponse;
@@ -33,7 +34,6 @@ import edu.travel.vo.BaseCountryServeVo;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.web.multipart.MultipartFile;
-import org.springframework.web.servlet.View;
 
 import java.util.*;
 import java.util.concurrent.TimeUnit;
@@ -177,7 +177,7 @@ public class ShopCategoryServiceImpl extends ServiceImpl<ShopCategoryMapper, Sho
 
     //上传商品类型icon
     @Override
-    public RPCBaseResponse<String> uploadIcon(MultipartFile file) {
+    public RPCBaseResponse<FileWebVo> uploadIcon(MultipartFile file) {
         //判断上传的文件是否为空或未选择
         if (file == null || file.isEmpty()) {
             return error();
@@ -205,9 +205,10 @@ public class ShopCategoryServiceImpl extends ServiceImpl<ShopCategoryMapper, Sho
                 //计算文件的 MD5 值以便后续验证
                 eduFileDTO.setFileMd5(FIleUtil.calculateFileMd5(file.getBytes()));
                 //调用上传适配器进行文件上传
-                RPCBaseResponse<?> rpcBaseResponse = uploadAdapter.uploadFile(eduFileDTO, file);
+                RPCBaseResponse<FileVo> rpcBaseResponse = uploadAdapter.uploadFilePath(eduFileDTO, file);
                // 返回成功响应,包含上传后的数据
-                return success(rpcBaseResponse.getData().toString());
+                FileVo data = rpcBaseResponse.getData();
+                return success(BeanUtil.toBean(data, FileWebVo.class));
             }
         } catch (Exception e) {
             e.printStackTrace();

+ 3 - 3
edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/service/impl/ShopProductImageServiceImpl.java

@@ -4,7 +4,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import edu.travel.commodity.entity.ShopProductImage;
 import edu.travel.commodity.mapper.ShopProductImageMapper;
 import edu.travel.commodity.service.ShopProductImageService;
-import edu.travel.remote.dto.FIleDto;
+import edu.travel.remote.dto.FileDto;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -17,10 +17,10 @@ public class ShopProductImageServiceImpl extends ServiceImpl<ShopProductImageMap
 
     @Override
     @Transactional
-    public boolean saveProductImage(Long productId, List<FIleDto> images) {
+    public boolean saveProductImage(Long productId, List<FileDto> images) {
         ArrayList<ShopProductImage> shopProductImages = new ArrayList<>();
 
-        for (FIleDto fIleDto : images) {
+        for (FileDto fIleDto : images) {
             ShopProductImage shopProductImage = new ShopProductImage();
             shopProductImage.setProductId(productId);
             shopProductImage.setUrl(fIleDto.getFilePath());

+ 2 - 7
edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/service/impl/ShopProductServiceImpl.java

@@ -3,15 +3,12 @@ package edu.travel.commodity.service.impl;
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import edu.travel.commodity.constant.BaseConstant;
 import edu.travel.commodity.entity.ShopProduct;
-import edu.travel.commodity.entity.ShopSpec;
 import edu.travel.commodity.mapper.ShopProductMapper;
-import edu.travel.commodity.mapper.ShopSpecMapper;
 import edu.travel.commodity.service.*;
 import edu.travel.commodity.utils.ObjectUtils;
 import edu.travel.commodity.utils.PageUtil;
@@ -22,9 +19,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.io.IOException;
-import java.util.ArrayList;
 import java.util.List;
-import java.util.stream.Collectors;
 
 @Service
 public class ShopProductServiceImpl extends ServiceImpl<ShopProductMapper, ShopProduct> implements ShopProductService {
@@ -69,7 +64,7 @@ public class ShopProductServiceImpl extends ServiceImpl<ShopProductMapper, ShopP
     public void insertProduct(InsertProductDto params) {
         ShopProduct bean = BeanUtil.toBean(params, ShopProduct.class);
 
-        List<FIleDto> imageList = ObjectUtils.castList(params.getImages(), FIleDto.class);
+        List<FileDto> imageList = ObjectUtils.castList(params.getImages(), FileDto.class);
         bean.setMainImageUrl(imageList.get(0).getFilePath());
         //保存商品
         this.save(bean);
@@ -86,6 +81,6 @@ public class ShopProductServiceImpl extends ServiceImpl<ShopProductMapper, ShopP
 
         //保存商品参数
         boolean b4 = shopProductParametersService.insertProductParameters(params.getParameters(), bean);
-
+        //TODO 同步到es
     }
 }

+ 2 - 3
edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/service/impl/ShopProductSpecServiceImpl.java

@@ -12,8 +12,7 @@ import edu.travel.commodity.entity.*;
 import edu.travel.commodity.mapper.ShopProductSpecMapper;
 import edu.travel.commodity.service.*;
 import edu.travel.commodity.utils.IdUtils;
-import edu.travel.commodity.utils.StringUtil;
-import edu.travel.remote.dto.FIleDto;
+import edu.travel.remote.dto.FileDto;
 import edu.travel.remote.dto.InsertProductSpecDto;
 import edu.travel.remote.dto.ProductSpecDto;
 import edu.travel.remote.dto.SpecValueDto;
@@ -90,7 +89,7 @@ public class ShopProductSpecServiceImpl extends ServiceImpl<ShopProductSpecMappe
             List<ShopSkuSpecValueVo> shopSkuSpecValueVos = map.get(info.getSkuId().toString());
             infoVo.setSpecValue(shopSkuSpecValueVos);
             JSONArray objects = JSONUtil.parseArray(info.getImageUrl());
-            infoVo.setImageUrls(JSONUtil.toList(objects, FIleDto.class));
+            infoVo.setImageUrls(JSONUtil.toList(objects, FileDto.class));
             productSkuVos.add(infoVo);
         }
         List<SpecSortVo> specSortVoList= getSpecSortVoList(param.getProductId());

+ 9 - 6
edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/service/impl/ShopReviewServiceImpl.java

@@ -5,7 +5,6 @@ import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.io.FileTypeUtil;
 import cn.hutool.core.util.IdUtil;
 import cn.hutool.core.util.ObjectUtil;
-import cn.hutool.json.JSON;
 import cn.hutool.json.JSONArray;
 import cn.hutool.json.JSONUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -23,12 +22,13 @@ import edu.travel.commodity.mapper.ShopReviewMapper;
 import edu.travel.commodity.service.ShopReviewService;
 import edu.travel.commodity.utils.*;
 import edu.travel.remote.dto.AddReviewDto;
-import edu.travel.remote.dto.FIleDto;
+import edu.travel.remote.dto.FileDto;
 import edu.travel.remote.dto.GetOrderItemDto;
 import edu.travel.remote.dto.ProductSpecDto;
 import edu.travel.exception.BaseException;
 import edu.travel.remote.feign.mode.vo.tenant.EduTenantVo;
 import edu.travel.remote.upload.dto.EduFileDTO;
+import edu.travel.remote.upload.vo.FileVo;
 import edu.travel.remote.vo.*;
 import edu.travel.rpc.RPCBaseResponse;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -79,7 +79,7 @@ public class ShopReviewServiceImpl extends ServiceImpl<ShopReviewMapper, ShopRev
         }
         for (ShopReviewVo record : records) {
             JSONArray objects = JSONUtil.parseArray(record.getImage());
-            List<FIleDto> list = JSONUtil.toList(objects, FIleDto.class);
+            List<FileDto> list = JSONUtil.toList(objects, FileDto.class);
             record.setImageUrls(list);
             if(!ObjectUtil.isEmpty(record.getSkuDetails())){
                 String jsonPrettyStr = JSONUtil.toJsonPrettyStr(record.getSkuDetails());
@@ -152,7 +152,7 @@ public class ShopReviewServiceImpl extends ServiceImpl<ShopReviewMapper, ShopRev
      * @return
      */
     @Override
-    public RPCBaseResponse<String> uploadReviewImage(MultipartFile file) {
+    public RPCBaseResponse<FileWebVo> uploadReviewImage(MultipartFile file) {
         //判断上传的文件是否为空或未选择
         if (file == null || file.isEmpty()) {
             return error();
@@ -180,9 +180,12 @@ public class ShopReviewServiceImpl extends ServiceImpl<ShopReviewMapper, ShopRev
                 //计算文件的 MD5 值以便后续验证
                 eduFileDTO.setFileMd5(FIleUtil.calculateFileMd5(file.getBytes()));
                 //调用上传适配器进行文件上传
-                RPCBaseResponse rpcBaseResponse = uploadAdapter.uploadFile(eduFileDTO, file);
+                RPCBaseResponse<FileVo> result = uploadAdapter.uploadFilePath(eduFileDTO, file);
                 //返回成功响应,包含上传后的数据
-                return success(rpcBaseResponse.getData().toString());
+                if(result.getCode()!=200){
+                    return error();
+                }
+                return success(BeanUtil.toBean(result.getCode(), FileWebVo.class));
             }
         }catch (Exception e) {
             e.printStackTrace();

+ 2 - 1
edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/web/ShopAddressController.java

@@ -3,6 +3,7 @@ package edu.travel.commodity.web;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import edu.travel.commodity.entity.ShopAddress;
 import edu.travel.commodity.service.ShopAddressService;
+import edu.travel.remote.commodity.ShopAddressRemoteController;
 import edu.travel.remote.dto.BaseDto;
 import edu.travel.remote.dto.UpdateAddressDto;
 import edu.travel.resp.BaseResponse;
@@ -22,7 +23,7 @@ import static edu.travel.rpc.RPCBaseResponse.success;
 */
 @RestController
 @RequestMapping("/shopAddress")
-public class ShopAddressController extends BaseController<ShopAddress> {
+public class ShopAddressController extends BaseController<ShopAddress> implements ShopAddressRemoteController {
 /**
 * 服务对象
 */

+ 4 - 4
edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/web/ShopCategoryController.java

@@ -10,6 +10,7 @@ import edu.travel.remote.dto.BaseDto;
 import edu.travel.remote.dto.ShopCategoryDto;
 import edu.travel.remote.dto.ShopTypeDto;
 import edu.travel.remote.feign.mode.vo.tenant.AddMenuVo;
+import edu.travel.remote.vo.FileWebVo;
 import edu.travel.remote.vo.ShopCategoryVo;
 import edu.travel.remote.vo.ShopTypeVo;
 import edu.travel.resp.BaseResponse;
@@ -26,7 +27,6 @@ import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
-import java.util.concurrent.ExecutionException;
 
 import static edu.travel.rpc.RPCBaseResponse.success;
 
@@ -54,7 +54,7 @@ public class ShopCategoryController extends BaseController<ShopCategory> impleme
      * @return {@link BaseResponse }<{@link AddMenuVo }>
      */
     @GetMapping("/getShopType")
-    public RPCBaseResponse<List<ShopTypeVo>> getShopType(ShopTypeDto param) throws ExecutionException {
+    public RPCBaseResponse<List<ShopTypeVo>> getShopType(ShopTypeDto param){
         return success(shopCategoryService.getShopType(param));
     }
 
@@ -64,7 +64,7 @@ public class ShopCategoryController extends BaseController<ShopCategory> impleme
      * @return {@link BaseResponse }<{@link AddMenuVo }>
      */
     @GetMapping("/getLevelToShopType")
-    public RPCBaseResponse<List<ShopTypeVo>> getLevelToShopType(BaseDto param) throws ExecutionException {
+    public RPCBaseResponse<List<ShopTypeVo>> getLevelToShopType(BaseDto param){
         return success(shopCategoryService.getLevelToShopType(param));
     }
 
@@ -72,7 +72,7 @@ public class ShopCategoryController extends BaseController<ShopCategory> impleme
      * icon上传
      */
     @PostMapping("/uploadIcon")
-    public RPCBaseResponse<String> uploadIcon(MultipartFile file) {
+    public RPCBaseResponse<FileWebVo> uploadIcon(MultipartFile file) {
         return shopCategoryService.uploadIcon(file);
     }
 

+ 2 - 1
edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/web/ShopFavoriteController.java

@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import edu.travel.commodity.entity.ShopFavorite;
 import edu.travel.commodity.service.ShopFavoriteService;
 import edu.travel.commodity.utils.TokenData;
+import edu.travel.remote.commodity.ShopFavoriteRemoteController;
 import edu.travel.remote.dto.AddFavoriteDto;
 import edu.travel.remote.dto.BaseDto;
 import edu.travel.rpc.RPCBaseResponse;
@@ -25,7 +26,7 @@ import static edu.travel.rpc.RPCBaseResponse.success;
 */
 @RestController
 @RequestMapping("/shopFavorite")
-public class ShopFavoriteController {
+public class ShopFavoriteController implements ShopFavoriteRemoteController {
 /**
 * 服务对象
 */

+ 9 - 5
edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/web/ShopOpinionController.java

@@ -1,5 +1,6 @@
 package edu.travel.commodity.web;
 
+import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.io.FileTypeUtil;
 import cn.hutool.core.util.IdUtil;
@@ -10,9 +11,11 @@ import edu.travel.commodity.constant.BaseConstant;
 import edu.travel.commodity.entity.ShopOpinion;
 import edu.travel.commodity.service.ShopOpinionService;
 import edu.travel.commodity.utils.FIleUtil;
+import edu.travel.remote.commodity.ShopOpinionRemoteController;
 import edu.travel.remote.dto.ShopOpinionDto;
-import edu.travel.remote.opinion.ShopOpinionRemoteController;
 import edu.travel.remote.upload.dto.EduFileDTO;
+import edu.travel.remote.upload.vo.FileVo;
+import edu.travel.remote.vo.FileWebVo;
 import edu.travel.remote.vo.ShopOpinionVo;
 import edu.travel.rpc.RPCBaseResponse;
 import edu.travel.web.BaseController;
@@ -117,8 +120,8 @@ public class ShopOpinionController extends BaseController<ShopOpinion> implement
     /**
      * 意见图片上传
      */
-    @GetMapping("/uploadOpinionImage")
-    public RPCBaseResponse<String> uploadOpinionImage(MultipartFile file) {
+    @PostMapping("/uploadOpinionImage")
+    public RPCBaseResponse<FileWebVo> uploadOpinionImage(MultipartFile file) {
         if (file == null || file.isEmpty()) {
             return error();
         }
@@ -139,8 +142,9 @@ public class ShopOpinionController extends BaseController<ShopOpinion> implement
                 eduFileDTO.setFileName(filename);
                 eduFileDTO.setFileSysName(IdUtil.fastSimpleUUID()+ DateUtil.format(new Date(),"yyyyMMddHHmmss") +"."+fileType);
                 eduFileDTO.setFileMd5(FIleUtil.calculateFileMd5(file.getBytes()));
-                RPCBaseResponse rpcBaseResponse = uploadAdapter.uploadFile(eduFileDTO, file);
-                return success(rpcBaseResponse.getData().toString());
+                RPCBaseResponse<FileVo> fileVoRPCBaseResponse = uploadAdapter.uploadFilePath(eduFileDTO, file);
+                FileWebVo bean = BeanUtil.toBean(fileVoRPCBaseResponse.getData(), FileWebVo.class);
+                return success(bean);
             }
         } catch (Exception e) {
             e.printStackTrace();

+ 1 - 1
edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/web/ShopOpinionTypeController.java

@@ -6,7 +6,7 @@ import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapp
 import edu.travel.commodity.entity.ShopOpinionType;
 import edu.travel.commodity.service.ShopOpinionTypeService;
 import edu.travel.remote.dto.ShopOpinionTypeDto;
-import edu.travel.remote.opinion.ShopOpinionTypeRemoteController;
+import edu.travel.remote.commodity.ShopOpinionTypeRemoteController;
 import edu.travel.remote.vo.OpinionTypeVo;
 import edu.travel.remote.vo.ShopOpinionTypeVo;
 import edu.travel.rpc.RPCBaseResponse;

+ 12 - 3
edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/web/ShopProductController.java

@@ -1,5 +1,6 @@
 package edu.travel.commodity.web;
 
+import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.io.FileTypeUtil;
 import cn.hutool.core.lang.Snowflake;
@@ -12,15 +13,18 @@ import edu.travel.commodity.entity.ShopProduct;
 import edu.travel.commodity.service.ShopProductService;
 import edu.travel.commodity.utils.FIleUtil;
 import edu.travel.commodity.utils.IdUtils;
+import edu.travel.remote.commodity.ShopProductRemoteController;
 import edu.travel.remote.dto.GetProductByTypeDto;
 import edu.travel.remote.dto.InsertProductDto;
 import edu.travel.remote.dto.SearchProductDto;
 import edu.travel.remote.upload.dto.EduFileDTO;
 import edu.travel.remote.upload.vo.FileVo;
+import edu.travel.remote.vo.FileWebVo;
 import edu.travel.resp.BaseResponse;
 import edu.travel.rpc.RPCBaseResponse;
 import edu.travel.remote.vo.ShopProductVo;
 import edu.travel.web.BaseController;
+import org.springframework.context.annotation.Bean;
 import org.springframework.web.bind.annotation.*;
 
 import org.springframework.beans.factory.annotation.Autowired;
@@ -40,7 +44,7 @@ import static edu.travel.rpc.RPCBaseResponse.success;
 */
 @RestController
 @RequestMapping("/shopProduct")
-public class ShopProductController extends BaseController<ShopProduct> {
+public class ShopProductController extends BaseController<ShopProduct> implements ShopProductRemoteController{
 /**
 * 服务对象
 */
@@ -77,7 +81,7 @@ public class ShopProductController extends BaseController<ShopProduct> {
      */
 
     @PostMapping("/uploadProductImage")
-    public RPCBaseResponse<FileVo> uploadProductImage(MultipartFile file) throws IOException {
+    public RPCBaseResponse<FileWebVo> uploadProductImage(MultipartFile file){
         if (file == null || file.isEmpty()) {
             return error();
         }
@@ -99,7 +103,12 @@ public class ShopProductController extends BaseController<ShopProduct> {
                 eduFileDTO.setFileSysName(IdUtil.fastSimpleUUID()+ DateUtil.format(new Date(),"yyyyMMddHHmmss") +"."+fileType);
                 eduFileDTO.setFileMd5(FIleUtil.calculateFileMd5(file.getBytes()));
                 RPCBaseResponse<FileVo> fileVoRPCBaseResponse = uploadAdapter.uploadFilePath(eduFileDTO, file);
-                return success("success",fileVoRPCBaseResponse.getData());
+                if(fileVoRPCBaseResponse.getCode()!=200){
+                    return error();
+                }
+                FileVo data = fileVoRPCBaseResponse.getData();
+                FileWebVo bean = BeanUtil.toBean(data, FileWebVo.class);
+                return success("success",bean);
             }
         } catch (Exception e) {
             e.printStackTrace();

+ 0 - 2
edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/web/ShopProductParametersController.java

@@ -45,7 +45,6 @@ public class ShopProductParametersController extends BaseController<ShopProductP
 
     /**
      * 更新商品参数值
-     *
      * @param entity
      * @return
      */
@@ -62,7 +61,6 @@ public class ShopProductParametersController extends BaseController<ShopProductP
 
     /**
      * 新增商品参数值
-     *
      * @param entity
      * @return
      */

+ 1 - 1
edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/web/ShopProductSkuController.java

@@ -38,7 +38,7 @@ public class ShopProductSkuController extends BaseController<ShopProductSku> imp
      */
 
     @GetMapping("/getSkuValuesById")
-    public RPCBaseResponse<Map<String, List<ShopSkuSpecValueVo>>> getSkuValuesById(@RequestParam Set<String> skuId){
+    public RPCBaseResponse<Map<String, List<ShopSkuSpecValueVo>>> getSkuValuesById(@RequestParam("skuId") Set<String> skuId){
         return RPCBaseResponse.success(shopProductSkuService.getSkuValuesById(skuId));
     }
 

+ 2 - 1
edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/web/ShopProductSpecController.java

@@ -2,6 +2,7 @@ package edu.travel.commodity.web;
 
 import edu.travel.commodity.entity.ShopProductSpec;
 import edu.travel.commodity.service.ShopProductSpecService;
+import edu.travel.remote.commodity.ShopProductSpecRemoteController;
 import edu.travel.remote.dto.ProductSpecDto;
 import edu.travel.resp.BaseResponse;
 import edu.travel.rpc.RPCBaseResponse;
@@ -22,7 +23,7 @@ import static edu.travel.rpc.RPCBaseResponse.success;
 */
 @RestController
 @RequestMapping("/shopProductSpec")
-public class ShopProductSpecController extends BaseController<ShopProductSpec> {
+public class ShopProductSpecController extends BaseController<ShopProductSpec> implements ShopProductSpecRemoteController {
 /**
 * 服务对象
 */

+ 2 - 1
edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/web/ShopReviewController.java

@@ -8,6 +8,7 @@ import edu.travel.remote.commodity.ShopReviewRemoteController;
 import edu.travel.remote.dto.AddReviewDto;
 import edu.travel.remote.dto.ProductSpecDto;
 import edu.travel.remote.dto.ShopReviewDto;
+import edu.travel.remote.vo.FileWebVo;
 import edu.travel.remote.vo.ShopReviewVo;
 import edu.travel.rpc.RPCBaseResponse;
 import edu.travel.web.BaseController;
@@ -64,7 +65,7 @@ public class ShopReviewController extends BaseController<ShopReview> implements
      * 上传评论图片
      */
     @PostMapping("/uploadReviewImage")
-    public RPCBaseResponse<String> uploadReviewImage(MultipartFile file) {
+    public RPCBaseResponse<FileWebVo> uploadReviewImage(MultipartFile file) {
         return shopReviewService.uploadReviewImage(file);
     }
 

+ 5 - 4
edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/web/ShopSearchRecordsController.java

@@ -3,6 +3,7 @@ package edu.travel.commodity.web;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import edu.travel.commodity.entity.ShopSearchRecords;
 import edu.travel.commodity.service.ShopSearchRecordsService;
+import edu.travel.remote.commodity.ShopSearchRecordsRemoteController;
 import edu.travel.remote.dto.SearchRecordListDto;
 import edu.travel.rpc.RPCBaseResponse;
 import edu.travel.remote.vo.SearchRecordsVo;
@@ -19,8 +20,8 @@ import static edu.travel.rpc.RPCBaseResponse.success;
 * @author xxxxx
 */
 @RestController
-@RequestMapping("/shop_search_records")
-public class ShopSearchRecordsController extends BaseController<ShopSearchRecords> {
+@RequestMapping("/shopSearchRecords")
+public class ShopSearchRecordsController extends BaseController<ShopSearchRecords> implements ShopSearchRecordsRemoteController {
 /**
 * 服务对象
 */
@@ -29,7 +30,7 @@ public class ShopSearchRecordsController extends BaseController<ShopSearchRecord
 
 
     /**
-     * 清空游记历史搜索记录(searchType:1
+     * 清空历史搜索记录(searchType:1
      * @return 结果
      */
     @PostMapping("/clearSearchRecord")
@@ -40,7 +41,7 @@ public class ShopSearchRecordsController extends BaseController<ShopSearchRecord
 
 
     /**
-     * 获取游记搜索记录列表
+     * 获取搜索记录列表
      * @param baseDto 参数DTO对象
      * @return 结果
      */

+ 2 - 1
edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/web/ShopShoppingCartController.java

@@ -2,6 +2,7 @@ package edu.travel.commodity.web;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import edu.travel.commodity.service.ShopShoppingCartService;
+import edu.travel.remote.commodity.ShopShoppingCartRemoteController;
 import edu.travel.remote.dto.AddShopCartDto;
 import edu.travel.remote.dto.BaseDto;
 import edu.travel.remote.dto.UpdateShopCarDto;
@@ -23,7 +24,7 @@ import static edu.travel.rpc.RPCBaseResponse.success;
 */
 @RestController
 @RequestMapping("/shopShoppingCart")
-public class ShopShoppingCartController {
+public class ShopShoppingCartController implements ShopShoppingCartRemoteController {
 /**
 * 服务对象
 */

+ 2 - 1
edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/web/ShopSpecController.java

@@ -2,6 +2,7 @@ package edu.travel.commodity.web;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import edu.travel.commodity.service.ShopSpecService;
+import edu.travel.remote.commodity.ShopSpecRemoteController;
 import edu.travel.remote.dto.SpecDto;
 import edu.travel.remote.vo.SpecVo;
 import edu.travel.rpc.RPCBaseResponse;
@@ -18,7 +19,7 @@ import static edu.travel.rpc.RPCBaseResponse.success;
 */
 @RestController
 @RequestMapping("/shopSpec")
-public class ShopSpecController {
+public class ShopSpecController implements ShopSpecRemoteController {
 /**
 * 服务对象
 */