Browse Source

商品列表

lyhzzz 2 years ago
parent
commit
7db1ece5d0

+ 7 - 21
src/main/java/com/cdf/controller/back/CdfProductController.java

@@ -4,10 +4,13 @@ import com.alibaba.fastjson.JSONArray;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.cdf.common.PageInfo;
 import com.cdf.common.ResultData;
+import com.cdf.entity.ProductSource;
 import com.cdf.exception.BusinessException;
 import com.cdf.httpClient.client.CdfClient;
 import com.cdf.httpClient.response.cdf.*;
+import com.cdf.service.IProductSourceService;
 import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
@@ -19,29 +22,12 @@ import java.util.List;
 @RequestMapping("/back/product")
 public class CdfProductController {
 
-    @Resource
-    private CdfClient cdfClient;
+    @Autowired
+    IProductSourceService productSourceService;
 
     @PostMapping("/list")
     public ResultData getProductList(@RequestBody CdfProductListRequest param){
-        if(StringUtils.isNotBlank(param.getKeyword()) && param.getKeyword().contains(",")){
-            if(param.getPageNum() >1){
-                PageInfo pageInfo = PageInfo.PageInfo(param.getPageIndex(), 20L, 0L, new ArrayList<>());
-                return  ResultData.ok(pageInfo);
-            }
-            JSONArray ids = new JSONArray();
-            ids.addAll(Arrays.asList(param.getKeyword().split(",")));
-            CdfProductListByIdsRequest idsRequest = new CdfProductListByIdsRequest(ids);
-            CdfProductListByIdsVo vos = cdfClient.getProductListByIds(idsRequest);
-            List<CdfProduct> productCardList = vos.getProductCardList();
-            PageInfo pageInfo = PageInfo.PageInfo(param.getPageIndex(), (long) productCardList.size(), (long) productCardList.size(), productCardList);
-            return ResultData.ok(pageInfo);
-        }
-        CdfProductListResponse productList = cdfClient.getProductList(param);
-        if(productList.getSearchResult().getType() == 4 ){
-            throw new BusinessException(productList.getSearchResult().getType(),productList.getSearchResult().getDesc());
-        }
-        PageInfo pageInfo = PageInfo.PageInfo(param.getPageIndex(), 20L, productList.getCount()*20, productList.getList());
-        return ResultData.ok(pageInfo);
+        ProductSource productSource = productSourceService.getById(1);
+        return ResultData.ok(productSourceService.getBySource(param,productSource));
     }
 }

+ 10 - 0
src/main/java/com/cdf/controller/back/HkProductController.java

@@ -2,6 +2,7 @@ package com.cdf.controller.back;
 
 import com.alibaba.fastjson.JSONArray;
 import com.cdf.common.PageInfo;
+import com.cdf.common.ResultCode;
 import com.cdf.common.ResultData;
 import com.cdf.entity.ProductSource;
 import com.cdf.exception.BusinessException;
@@ -30,6 +31,15 @@ public class HkProductController {
 
     @PostMapping("/HKList")
     public ResultData getProductList(@RequestBody CdfProductListRequest param){
+        if(param.getProductSourceId() != null){
+            ProductSource productSource = productSourceService.getById(param.getProductSourceId());
+            if(productSource == null){
+                throw new BusinessException(ResultCode.PARAM_MISS);
+            }
+            if(productSource.getMchType() == 0){
+                return ResultData.ok(productSourceService.getBySource(param,productSource));
+            }
+        }
         if(StringUtils.isNotBlank(param.getKeyword()) && param.getKeyword().contains(",")){
             List<String> strings = Arrays.asList(param.getKeyword().split(","));
             param.setProductIds(strings);

+ 2 - 0
src/main/java/com/cdf/httpClient/response/cdf/CdfProductListRequest.java

@@ -18,6 +18,8 @@ public class CdfProductListRequest {
 
     private String language = "eshop_cn";
 
+    private Integer productSourceId;
+
 
     public String getKeyword() {
         return keyword;

+ 3 - 0
src/main/java/com/cdf/service/IProductSourceService.java

@@ -2,6 +2,7 @@ package com.cdf.service;
 
 import com.cdf.entity.ProductSource;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.cdf.httpClient.response.cdf.CdfProductListRequest;
 
 import java.util.List;
 
@@ -16,4 +17,6 @@ import java.util.List;
 public interface IProductSourceService extends IService<ProductSource> {
 
     List<ProductSource> getProductHk(String type);
+
+    Object getBySource(CdfProductListRequest param,ProductSource productSource);
 }

+ 36 - 0
src/main/java/com/cdf/service/impl/ProductSourceServiceImpl.java

@@ -1,12 +1,23 @@
 package com.cdf.service.impl;
 
+import com.alibaba.fastjson.JSONArray;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.cdf.common.PageInfo;
+import com.cdf.common.ResultData;
 import com.cdf.entity.ProductSource;
+import com.cdf.exception.BusinessException;
+import com.cdf.httpClient.client.CdfClient;
+import com.cdf.httpClient.client.CdfHKClient;
+import com.cdf.httpClient.response.cdf.*;
 import com.cdf.mapper.IProductSourceMapper;
 import com.cdf.service.IProductSourceService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Service;
 
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 
 /**
@@ -20,10 +31,35 @@ import java.util.List;
 @Service
 public class ProductSourceServiceImpl extends ServiceImpl<IProductSourceMapper, ProductSource> implements IProductSourceService {
 
+    @Resource
+    private CdfHKClient cdfHKClient;
     @Override
     public List<ProductSource> getProductHk(String type) {
         LambdaQueryWrapper<ProductSource> wrapper = new LambdaQueryWrapper<>();
         wrapper.eq(ProductSource::getRegion,"HK");
         return this.list(wrapper);
     }
+
+    @Override
+    public Object getBySource(CdfProductListRequest param,ProductSource productSource) {
+        if(StringUtils.isNotBlank(param.getKeyword()) && param.getKeyword().contains(",")){
+            if(param.getPageNum() >1){
+                PageInfo pageInfo = PageInfo.PageInfo(param.getPageIndex(), 20L, 0L, new ArrayList<>());
+                return  ResultData.ok(pageInfo);
+            }
+            JSONArray ids = new JSONArray();
+            ids.addAll(Arrays.asList(param.getKeyword().split(",")));
+            CdfProductListByIdsRequest idsRequest = new CdfProductListByIdsRequest(ids);
+            CdfProductListByIdsVo vos = cdfHKClient.getProductListByIds(productSource.getCdfHost(),productSource.getCdfMchId(),idsRequest);
+            List<CdfProduct> productCardList = vos.getProductCardList();
+            PageInfo pageInfo = PageInfo.PageInfo(param.getPageIndex(), (long) productCardList.size(), (long) productCardList.size(), productCardList);
+            return ResultData.ok(pageInfo);
+        }
+        CdfProductListResponse productList = cdfHKClient.getProductList(productSource.getCdfHost(),productSource.getCdfMchId(),param);
+        if(productList.getSearchResult().getType() == 4 ){
+            throw new BusinessException(productList.getSearchResult().getType(),productList.getSearchResult().getDesc());
+        }
+        PageInfo pageInfo = PageInfo.PageInfo(param.getPageIndex(), 20L, productList.getCount()*20, productList.getList());
+        return pageInfo;
+    }
 }