Bladeren bron

cdf 批量查询商品列表

lyhzzz 3 jaren geleden
bovenliggende
commit
84989e5e92

+ 9 - 0
src/main/java/com/cdf/controller/api/CdfProductApiController.java

@@ -5,6 +5,7 @@ import com.cdf.common.ResultData;
 import com.cdf.httpClient.client.CdfClient;
 import com.cdf.httpClient.request.CdfInCatRequest;
 import com.cdf.httpClient.response.cdf.CdfProductVo;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
@@ -28,4 +29,12 @@ public class CdfProductApiController {
         JSONObject jsonObject = cdfClient.inCat(accessToken, new CdfInCatRequest(skuId, num));
         return ResultData.ok(jsonObject);
     }
+    @GetMapping("/getProductInfo")
+    public ResultData getProductInfo(@RequestParam(required = false) String productId){
+        if(StringUtils.isNotBlank(productId)){
+            return ResultData.ok();
+        }
+        CdfProductVo productById = cdfClient.getProductById(productId);
+        return ResultData.ok(productById);
+    }
 }

+ 10 - 3
src/main/java/com/cdf/httpClient/client/CdfClient.java

@@ -2,9 +2,7 @@ package com.cdf.httpClient.client;
 
 import com.alibaba.fastjson.JSONObject;
 import com.cdf.httpClient.request.CdfInCatRequest;
-import com.cdf.httpClient.response.cdf.CdfProductListRequest;
-import com.cdf.httpClient.response.cdf.CdfProductListResponse;
-import com.cdf.httpClient.response.cdf.CdfProductVo;
+import com.cdf.httpClient.response.cdf.*;
 import com.dtflys.forest.annotation.*;
 
 @Address(basePath = "https://m.cdfmembers.com")
@@ -29,6 +27,15 @@ public interface CdfClient {
         })
     CdfProductListResponse getProductList(@JSONBody CdfProductListRequest param);
     /**
+     * 批量查询商品详情
+     */
+    @Post(url = "/api/prod/getsqproductcardlistbyids",
+        headers = {
+            "app-key: h5sqBuyer_600667208",
+            "app-version: 6.6.88",
+        })
+    CdfProductListByIdsVo getProductListByIds(@JSONBody CdfProductListByIdsRequest param);
+    /**
      * 查询购物车数量
      */
     @Get(url = "/api/trading/sqscartprodnum",

+ 0 - 1
src/main/java/com/cdf/httpClient/response/cdf/CdfProduct.java

@@ -14,5 +14,4 @@ public class CdfProduct {
     private String symbol;  //货币符号,如¥或MOP$
     private Integer stock;  //库存数量
 
-    private List<CdfSkus> skus;
 }

+ 14 - 0
src/main/java/com/cdf/httpClient/response/cdf/CdfProductListByIdsRequest.java

@@ -0,0 +1,14 @@
+package com.cdf.httpClient.response.cdf;
+
+
+import com.alibaba.fastjson.JSONArray;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+@AllArgsConstructor
+public class CdfProductListByIdsRequest {
+    private JSONArray productIds;
+}

+ 12 - 0
src/main/java/com/cdf/httpClient/response/cdf/CdfProductListByIdsVo.java

@@ -0,0 +1,12 @@
+package com.cdf.httpClient.response.cdf;
+
+
+import com.alibaba.fastjson.JSONArray;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class CdfProductListByIdsVo {
+    private List<CdfProduct> productCardList;
+}

+ 8 - 24
src/main/java/com/cdf/service/impl/FdkkSceneEditService.java

@@ -13,10 +13,7 @@ import com.cdf.httpClient.request.FdkkHotRequest;
 import com.cdf.httpClient.request.FdkkUploadRequest;
 import com.cdf.httpClient.request.SceneRequest;
 import com.cdf.httpClient.response.FdkkResponse;
-import com.cdf.httpClient.response.cdf.CdfProduct;
-import com.cdf.httpClient.response.cdf.CdfProductListRequest;
-import com.cdf.httpClient.response.cdf.CdfProductListResponse;
-import com.cdf.httpClient.response.cdf.CdfProductVo;
+import com.cdf.httpClient.response.cdf.*;
 import com.cdf.service.IFdkkUserService;
 import com.cdf.service.IHotRelationService;
 import com.cdf.util.FileUtils;
@@ -149,28 +146,15 @@ public class FdkkSceneEditService {
                 continue;
             }
             JSONArray jsonArray = JSONObject.parseArray(relationIds);
-            List<CdfProduct> products = new ArrayList<>();
-            for (Object o : jsonArray) {
-                String productId = (String) o;
-                CdfProductListRequest param = new CdfProductListRequest();
-                param.setKeyword(productId);
-                CdfProductListResponse productList = cdfClient.getProductList(param);
-                if(productList == null || productList.getSearchResult()==null || productList.getSearchResult().getType()!=0){
-                    continue;
-                }
-                CdfProductVo cdfProductVo = cdfClient.getProductById(productId);
-                if(cdfProductVo == null || cdfProductVo.getState()==null || cdfProductVo.getState()!=0){
-                    continue;
-                }
-                List<CdfProduct> list = productList.getList();
-                for (CdfProduct cdfProduct : list) {
-                    cdfProduct.setSkus(cdfProductVo.getSkus());
-                }
-                products.addAll(list);
+            if(jsonArray == null || jsonArray.size() <=0){
+                continue;
             }
-            if(products.size() >0){
-                tag.put("products",products);
+            CdfProductListByIdsRequest param = new CdfProductListByIdsRequest(jsonArray);
+            CdfProductListByIdsVo vos = cdfClient.getProductListByIds(param);
+            if(vos.getProductCardList()!=null && vos.getProductCardList().size() >0){
+                tag.put("products",vos.getProductCardList());
             }
+
         }
 
         return tags;