From 81da61b828e29b7745e1382dfbbaeb685dc083ef Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期二, 23 一月 2024 17:17:55 +0800
Subject: [PATCH] 抖音转链修改

---
 fanli/src/main/java/com/yeshi/fanli/controller/client/v2/GoodsClassControllerV2.java |  412 +++++++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 331 insertions(+), 81 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/GoodsClassControllerV2.java b/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/GoodsClassControllerV2.java
index 12d9bdc..04ba950 100644
--- a/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/GoodsClassControllerV2.java
+++ b/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/GoodsClassControllerV2.java
@@ -1,81 +1,331 @@
-package com.yeshi.fanli.controller.client.v2;
-
-import java.io.PrintWriter;
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.annotation.Resource;
-
-import org.springframework.core.task.TaskExecutor;
-import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.yeshi.utils.JsonUtil;
-
-import com.yeshi.fanli.entity.accept.AcceptData;
-import com.yeshi.fanli.entity.bus.clazz.GoodsClass;
-import com.yeshi.fanli.service.inter.clazz.GoodsSubClassLabelService;
-import com.yeshi.fanli.service.inter.goods.GoodsClassService;
-import com.yeshi.fanli.vo.goods.GoodsSubClassLabelVO;
-
-import net.sf.json.JSONObject;
-
-@Controller
-@RequestMapping("api/v2/class")
-public class GoodsClassControllerV2 {
-
-
-	@Resource
-	private GoodsClassService goodsClassService;
-
-	@Resource
-	private GoodsSubClassLabelService goodsSubClassLabelService;
-
-
-	@Resource(name = "taskExecutor")
-	private TaskExecutor executor;
-
-	/**
-	 * 涓�绾у垎绫�
-	 * @param acceptData
-	 * @param out
-	 */
-	@RequestMapping(value = "listClass", method = RequestMethod.POST)
-	public void listClass(AcceptData acceptData, PrintWriter out) {
-		List<GoodsClass> list =goodsClassService.getEffectiveClassCache();
-		if (list == null ) {
-			list = new ArrayList<GoodsClass>();
-		}
-
-		JSONObject data = new JSONObject();
-		data.put("list", JsonUtil.getApiCommonGson().toJson(list));
-		out.print(JsonUtil.loadTrueResult(data));
-	}
-
-	/**
-	 * 浜岀骇鍒嗙被銆佹爣绛�
-	 * 
-	 * @param acceptData
-	 * @param gcid
-	 * @param out
-	 */
-	@RequestMapping(value = "listSubMap", method = RequestMethod.POST)
-	public void listSubMap(AcceptData acceptData, Long cid, PrintWriter out) {
-		if(cid == null) {
-			out.print(JsonUtil.loadFalseResult("鍙傛暟涓嶈兘涓虹┖"));
-			return;
-		}
-		
-		List<GoodsSubClassLabelVO> list = goodsSubClassLabelService.listSubMapCache(cid);
-		if (list == null) {
-			list = new ArrayList<GoodsSubClassLabelVO>();
-		}
-		
-		JSONObject data = new JSONObject();
-		data.put("list", JsonUtil.getApiCommonGson().toJson(list));
-		out.print(JsonUtil.loadTrueResult(data));
-	}
-
-
-	
-}
+package com.yeshi.fanli.controller.client.v2;
+
+import java.io.PrintWriter;
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.annotation.Resource;
+
+import com.yeshi.fanli.lijin.manager.GoodsLijinMnager;
+import org.springframework.core.task.TaskExecutor;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.yeshi.utils.JsonUtil;
+
+import com.google.gson.Gson;
+import com.google.gson.GsonBuilder;
+import com.yeshi.fanli.dto.GoodsMoneyConfigParamsDTO;
+import com.yeshi.fanli.entity.accept.AcceptData;
+import com.yeshi.fanli.entity.bus.clazz.GoodsClass;
+import com.yeshi.fanli.entity.bus.clazz.GoodsSubClass;
+import com.yeshi.fanli.entity.bus.clazz.TaoBaoClass;
+import com.yeshi.fanli.entity.bus.lable.QualityFactory;
+import com.yeshi.fanli.entity.taobao.SearchFilter;
+import com.yeshi.goods.facade.entity.taobao.TaoBaoGoodsBrief;
+import com.yeshi.fanli.entity.taobao.TaoBaoSearchResult;
+import com.yeshi.fanli.log.LogHelper;
+import com.yeshi.fanli.service.inter.clazz.GoodsSubClassLabelService;
+import com.yeshi.fanli.service.inter.goods.GoodsClassService;
+import com.yeshi.fanli.service.inter.goods.GoodsSubClassService;
+import com.yeshi.fanli.service.inter.goods.TaoBaoClassService;
+import com.yeshi.fanli.service.inter.lable.LabelClassService;
+import com.yeshi.fanli.service.inter.lable.QualityGoodsService;
+import com.yeshi.fanli.service.inter.lable.TaoKeGoodsService;
+import com.yeshi.fanli.service.inter.order.OrderHongBaoMoneyComputeService;
+import com.yeshi.fanli.service.inter.taobao.TaoBaoGoodsUpdateService;
+import com.yeshi.fanli.util.Constant;
+import com.yeshi.fanli.util.StringUtil;
+import com.yeshi.fanli.util.factory.goods.GoodsDetailVOFactory;
+import com.yeshi.fanli.util.taobao.TaoKeApiUtil;
+import com.yeshi.fanli.vo.goods.GoodsDetailVO;
+import com.yeshi.fanli.vo.goods.GoodsSubClassLabelVO;
+
+import net.sf.json.JSONArray;
+import net.sf.json.JSONObject;
+
+@Controller
+@RequestMapping("api/v2/class")
+public class GoodsClassControllerV2 {
+
+    @Resource
+    private GoodsClassService goodsClassService;
+
+    @Resource
+    private GoodsSubClassLabelService goodsSubClassLabelService;
+
+    @Resource
+    private GoodsSubClassService goodsSubClassService;
+
+    @Resource(name = "taskExecutor")
+    private TaskExecutor executor;
+
+    @Resource
+    private QualityGoodsService qualityGoodsService;
+
+    @Resource
+    private TaoKeGoodsService taoKeGoodsService;
+
+    @Resource
+    private TaoBaoClassService taoBaoClassService;
+
+    @Resource
+    private OrderHongBaoMoneyComputeService orderHongBaoMoneyComputeService;
+
+    @Resource
+    private LabelClassService labelClassService;
+
+    @Resource
+    private TaoBaoGoodsUpdateService taoBaoGoodsUpdateService;
+
+    @Resource
+    private GoodsLijinMnager goodsLijinMnager;
+
+    /**
+     * 涓�绾у垎绫�
+     *
+     * @param acceptData
+     * @param out
+     */
+    @RequestMapping(value = "listClass", method = RequestMethod.POST)
+    public void listClass(AcceptData acceptData, PrintWriter out) {
+        List<GoodsClass> list = goodsClassService.getEffectiveClassCache();
+        if (list == null) {
+            list = new ArrayList<GoodsClass>();
+        }
+
+        JSONObject data = new JSONObject();
+        data.put("list", JsonUtil.getApiCommonGson().toJson(list));
+        out.print(JsonUtil.loadTrueResult(data));
+    }
+
+    /**
+     * 浜岀骇鍒嗙被銆佹爣绛�
+     *
+     * @param acceptData
+     * @param out
+     */
+    @RequestMapping(value = "listSubMap", method = RequestMethod.POST)
+    public void listSubMap(AcceptData acceptData, Long cid, PrintWriter out) {
+        if (cid == null) {
+            out.print(JsonUtil.loadFalseResult("鍙傛暟涓嶈兘涓虹┖"));
+            return;
+        }
+
+        List<GoodsSubClassLabelVO> list = goodsSubClassLabelService.listSubMapCache(cid);
+        if (list == null) {
+            list = new ArrayList<GoodsSubClassLabelVO>();
+        }
+
+        JSONObject data = new JSONObject();
+        data.put("list", JsonUtil.getApiCommonGson().toJson(list));
+        out.print(JsonUtil.loadTrueResult(data));
+    }
+
+    /**
+     * 鍒嗙被涓嬬殑绮鹃�夊晢鍝�
+     */
+    @RequestMapping("getClassGoods")
+    public void getClassGoods(AcceptData acceptData, Long uid, long gcid, int page, PrintWriter out) {
+        GoodsClass goodsClass = goodsClassService.getGoodsClassCache(gcid);
+        if (goodsClass == null) {
+            out.print(JsonUtil.loadFalseResult("涓嶅瓨鍦ㄨ鍒嗙被"));
+            return;
+        }
+
+        if (page < 1)
+            page = 1;
+
+        int pageSize = Constant.PAGE_SIZE;
+
+        List<QualityFactory> listQuery = qualityGoodsService.listQueryByClassId((page - 1) * pageSize, pageSize, gcid);
+        // 鎬绘潯鏁�
+        long counttotal = 5000;
+
+        List<TaoBaoGoodsBrief> updateGoodsList = new ArrayList<>();
+
+        // 绮鹃�夊簱鏁版嵁灏忎簬10鏃讹紝缃戠粶杩涜鏌ヨ
+        if (listQuery == null || listQuery.size() < 10) {
+            long count = qualityGoodsService.countQueryClassId(gcid);
+            int totalPage = (int) (count % pageSize == 0 ? count / pageSize : count / pageSize + 1);
+            page = page - totalPage;
+            if (page < 1)
+                page = 1;
+
+            // 娣樺疂绫荤洰id
+            String taoBaoCatIds = taoBaoClassService.getTaoBaoCatIds(gcid);
+
+            SearchFilter filter = null;
+
+            String searchParam = goodsClass.getSearchParam();
+            if (!StringUtil.isNullOrEmpty(searchParam)) {
+                Gson gs = new Gson();
+                filter = gs.fromJson(searchParam, SearchFilter.class);
+            } else {
+                filter = new SearchFilter();
+            }
+
+            filter.setMaterialId("6707");
+            filter.setPage(page);
+            filter.setPageSize(pageSize);
+            filter.setCateIds(taoBaoCatIds);
+
+            JSONObject result = taoKeGoodsService.searchWuLiaoV2(filter, acceptData.getPlatform(), acceptData.getVersion(), acceptData.getSystem());
+            out.print(JsonUtil.loadTrueResult(result));
+            return;
+        }
+
+        Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder())
+                .excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create();
+
+        GoodsMoneyConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate(acceptData.getPlatform(),
+                acceptData.getVersion(), acceptData.getSystem());
+
+        // 绮鹃�夊簱鏁版嵁
+        JSONArray array = new JSONArray();
+        List<TaoBaoGoodsBrief> goodsBriefs = new ArrayList<>();
+        for (QualityFactory selectionGoods : listQuery) {
+            TaoBaoGoodsBrief taoBaoGoodsBrief = selectionGoods.getTaoBaoGoodsBrief();
+            if (taoBaoGoodsBrief == null) {
+                continue;
+            }
+            updateGoodsList.add(taoBaoGoodsBrief);
+            goodsBriefs.add(taoBaoGoodsBrief);
+        }
+
+        List<GoodsDetailVO> voList = goodsLijinMnager.loadTBMoneyInfo(acceptData.getSystem(), uid, goodsBriefs, paramsDTO,false);
+        for (GoodsDetailVO vo : voList) {
+            vo.setCreatetime(null);
+            array.add(gson.toJson(vo));
+        }
+        JSONObject data = new JSONObject();
+        data.put("nav", null);
+        data.put("count", counttotal);
+        data.put("result", array);
+        out.print(JsonUtil.loadTrueResult(data));
+        try {
+            taoBaoGoodsUpdateService.addUpdateQueueAsync(updateGoodsList);
+        } catch (Exception e) {
+        }
+    }
+
+    /**
+     * 鑾峰彇浜岀骇鍒嗙被鍟嗗搧
+     *
+     * @param acceptData
+     * @param page
+     * @param scid
+     * @param filter
+     * @param order      鏉ユ簮锛氥�愭帹鑽愶細0 | 缁煎悎锛�4 銆佺患鍚堝彧鐪嬫湁鍒� 1 銆佺患鍚堝彧鐪嬪ぉ鐚� 1 | 浠锋牸锛氫綆鍒伴珮3 楂樺埌浣�2 | 閿�閲忥細1銆�
+     *                   鎺掑簭鍊硷細銆愰攢閲忕敱楂樺埌浣�: 1 锛� 閿�閲忕敱浣庡埌楂� 5锛� 浠锋牸浠庨珮鍒颁綆: 2 锛� 浠锋牸浠庝綆鍒伴珮:3 锛� 鎺ㄥ箍閲忛珮鍒颁綆:4 锛�
+     *                   鍏朵粬榛樿锛� 閿�閲忕敱楂樺埌浣庛��
+     * @param startprice 璧峰浠锋牸
+     * @param endprice   缁撴潫浠锋牸
+     * @param fastFilter fastFilter 鏈夊埜 [{"type":"quantype"}] 澶╃尗鍟嗗搧 [{"type":"shoptype"}]
+     * @param totalSales 閿�閲忎互涓�
+     * @param out
+     */
+    @RequestMapping(value = "getSubGoods", method = RequestMethod.POST)
+    public void getSecondClassGoods(AcceptData acceptData, Long uid, int page, long scid, String filter, String order,
+                                    String startprice, String endprice, String fastFilter, Integer totalSales, PrintWriter out) {
+
+        try {
+            GoodsSubClass goodsSubClass = goodsSubClassService.getSubClassByPrimaryKeyCache(scid);
+            if (goodsSubClass == null) {
+                out.print(JsonUtil.loadFalseResult("涓嶅瓨鍦ㄨ鍒嗙被"));
+                return;
+            }
+
+            // 缁熻鐐瑰嚮閲�
+            if (page == 1) {
+                goodsSubClassService.countClick(acceptData, goodsSubClass);
+            }
+
+            SearchFilter sf = new SearchFilter();
+            String catesId = "";
+            // 鏌ヨ鏄惁鏈夋窐瀹濆垎绫籌D
+            List<TaoBaoClass> tbClassList = taoBaoClassService.listBySystemSubCid(0, 10, goodsSubClass.getId());
+            if (tbClassList != null && tbClassList.size() > 0)
+                for (TaoBaoClass tbc : tbClassList) {
+                    catesId += tbc.getCategoryId() + ",";
+                }
+            if (catesId.endsWith(","))
+                catesId = catesId.substring(0, catesId.length() - 1);
+            sf.setCateIds(catesId);
+
+            // 鎸夊垎绫诲悕绉版悳绱�
+            if (!StringUtil.isNullOrEmpty(catesId)) {
+                String searchParam = goodsSubClass.getSearchJson();
+                Gson gs = new Gson();
+                SearchFilter searchfilter = gs.fromJson(searchParam, SearchFilter.class);
+                searchfilter.setCateIds(catesId);
+                searchfilter.setPage(page);
+                searchfilter.setPageSize(20);
+                if (Integer.parseInt(order) == 0)
+                    searchfilter.setMaterialId("6707");
+                taoKeGoodsService.setSearchFilter(searchfilter, filter, order, startprice, endprice, fastFilter,
+                        totalSales);
+                TaoBaoSearchResult searchResult = TaoKeApiUtil.searchWuLiaoNew(searchfilter, null, null);
+                long count = searchResult.getPageEntity().getTotalCount();
+
+                List<TaoBaoGoodsBrief> resultGoodsList = searchResult.getTaoBaoGoodsBriefs();
+                // 鏌ヨ鏄惁瓒呰繃浜嗘渶澶х殑鍟嗗搧鏁�
+                if ((resultGoodsList == null || resultGoodsList.size() < 20)
+                        && !StringUtil.isNullOrEmpty(goodsSubClass.getKey())) {
+                    if (resultGoodsList == null)
+                        resultGoodsList = new ArrayList<>();
+
+                    // 闇�瑕佹牴鎹叧閿瓧鏌ヨ
+                    searchfilter.setCateIds(null);
+                    searchfilter.setPage((int) (count % 20 == 0 ? count / 20 - 1 : count / 20));
+                    searchfilter.setPageSize(20);
+                    searchfilter.setKey(goodsSubClass.getKey());
+                    TaoBaoSearchResult searchResult2 = TaoKeApiUtil.searchWuLiaoNew(searchfilter, null, null);
+                    if (searchResult2 != null) {
+                        List<TaoBaoGoodsBrief> resultListTemp = searchResult2.getTaoBaoGoodsBriefs();
+                        if (resultListTemp != null)
+                            resultGoodsList.addAll(resultListTemp);
+                    }
+                }
+
+                Gson gson2 = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder())
+                        .excludeFieldsWithoutExposeAnnotation().create();
+
+                JSONArray array = new JSONArray();
+                if (resultGoodsList != null) {
+                    GoodsMoneyConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate(acceptData.getPlatform(),
+                            acceptData.getVersion(), acceptData.getSystem());
+                    List<GoodsDetailVO> voList = goodsLijinMnager.loadTBMoneyInfo(acceptData.getSystem(), uid, resultGoodsList, paramsDTO,false);
+                    for (GoodsDetailVO vo : voList) {
+                        array.add(gson2.toJson(vo));
+                    }
+                }
+                JSONObject result = new JSONObject();
+                result.put("result", array);
+                result.put("count", result.optLong("count") + count);
+                out.print(JsonUtil.loadTrueResult(result));
+                return;
+            } else {
+                String searchParam = goodsSubClass.getSearchJson();
+                Gson gs = new Gson();
+                SearchFilter searchfilter = gs.fromJson(searchParam, SearchFilter.class);
+                searchfilter.setCateIds(catesId);
+                searchfilter.setPage(page);
+                searchfilter.setPageSize(20);
+                if (Integer.parseInt(order) == 0)
+                    searchfilter.setMaterialId("6707");
+                searchfilter.setKey(goodsSubClass.getKey());
+                taoKeGoodsService.setSearchFilter(searchfilter, filter, order, startprice, endprice, fastFilter,
+                        totalSales);
+
+                JSONObject result = taoKeGoodsService.searchWuLiaoV2(searchfilter, acceptData.getPlatform(), acceptData.getVersion(), acceptData.getSystem());
+                out.print(JsonUtil.loadTrueResult(result));
+                return;
+            }
+        } catch (Exception e) {
+            out.print(JsonUtil.loadFalseResult("鏁版嵁寮傚父"));
+            LogHelper.errorDetailInfo(e);
+        }
+    }
+
+}

--
Gitblit v1.8.0