admin
2019-06-05 07c13064382007999e87abe81efe76c98a47dce8
fanli/src/main/java/com/yeshi/fanli/controller/client/v1/SearchController.java
@@ -3,6 +3,7 @@
import java.io.PrintWriter;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
@@ -10,7 +11,6 @@
import java.util.Set;
import javax.annotation.Resource;
import javax.print.attribute.standard.NumberUp;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Controller;
@@ -24,7 +24,6 @@
import com.yeshi.fanli.entity.accept.AcceptData;
import com.yeshi.fanli.entity.bus.lable.QualityFactory;
import com.yeshi.fanli.entity.bus.recommend.Honest;
import com.yeshi.fanli.entity.bus.search.HistorySearch;
import com.yeshi.fanli.entity.bus.search.HotSearch;
import com.yeshi.fanli.entity.bus.su.search.SuperHotSearch;
import com.yeshi.fanli.entity.system.BusinessSystem;
@@ -36,7 +35,7 @@
import com.yeshi.fanli.entity.taobao.TaoBaoSearchNav;
import com.yeshi.fanli.entity.taobao.TaoBaoSearchResult;
import com.yeshi.fanli.entity.taobao.TaoBaoUnionConfig;
import com.yeshi.fanli.exception.taobao.TaobaoGoodsDownException;
import com.yeshi.fanli.entity.taobao.dataoke.DaTaoKeDetail;
import com.yeshi.fanli.service.inter.config.BusinessSystemService;
import com.yeshi.fanli.service.inter.config.ConfigService;
import com.yeshi.fanli.service.inter.config.SuperHotSearchService;
@@ -44,6 +43,7 @@
import com.yeshi.fanli.service.inter.lable.QualityGoodsService;
import com.yeshi.fanli.service.inter.lable.TaoKeGoodsService;
import com.yeshi.fanli.service.inter.taobao.TaoBaoUnionConfigService;
import com.yeshi.fanli.service.inter.taobao.dataoke.DaTaoKeGoodsDetailService;
import com.yeshi.fanli.service.inter.user.HistorySearchService;
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.EhcacheUtil;
@@ -52,7 +52,6 @@
import com.yeshi.fanli.util.cache.TaoBaoGoodsCacheUtil;
import com.yeshi.fanli.util.taobao.SearchFilterUtil;
import com.yeshi.fanli.util.taobao.TaoBaoUtil;
import com.yeshi.fanli.util.taobao.TaoKeApiUtil;
import net.sf.ehcache.Element;
import net.sf.json.JSONArray;
@@ -88,6 +87,9 @@
   @Resource
   private TaoBaoGoodsCacheUtil taoBaoGoodsCacheUtil;
   @Resource
   private DaTaoKeGoodsDetailService daTaoKeGoodsDetailService;
   @RequestMapping(value = "gethotsearch", method = RequestMethod.POST)
   public void getHotSearch(AcceptData acceptData, PrintWriter out) {
@@ -449,6 +451,7 @@
      JSONObject data = null;
      if (!recommend) {
         // 淘宝接口请求
         data = searchGoods(kw, page, filter, order, startprice, endprice);
      } else {
@@ -602,37 +605,44 @@
         sf.setParams(params);
      }
      // 搜索大淘客
      List<DaTaoKeDetail> daTaoKeList = null;
      if (page == 1)
         daTaoKeList = daTaoKeGoodsDetailService.listByDtitle(kw);
      TaoBaoSearchResult result = TaoBaoUtil.search(sf);
      if (result == null) {
         return null;
      }
      // 搜索是否在营销主商品库
      if (result != null && result.getTaoBaoGoodsBriefs() != null && result.getTaoBaoGoodsBriefs().size() > 0) {
         String numIds = "";
         for (TaoBaoGoodsBrief goods : result.getTaoBaoGoodsBriefs()) {
            numIds += goods.getAuctionId() + ",";
         }
         if (numIds.endsWith(","))
            numIds = numIds.substring(0, numIds.length() - 1);
         try {
            List<TaoBaoGoodsBrief> goodsList = TaoKeApiUtil.getBatchGoodsInfos(numIds);
            Map<Long, Integer> map = new HashMap<>();
            for (TaoBaoGoodsBrief g : goodsList)
               map.put(g.getAuctionId(), g.getMaterialLibType());
            for (TaoBaoGoodsBrief goods : result.getTaoBaoGoodsBriefs())
               goods.setMaterialLibType(map.get(goods.getAuctionId()));
         // 暂时放弃更新到营销商品库
         // String numIds = "";
         // for (TaoBaoGoodsBrief goods : result.getTaoBaoGoodsBriefs()) {
         // numIds += goods.getAuctionId() + ",";
         // }
         // if (numIds.endsWith(","))
         // numIds = numIds.substring(0, numIds.length() - 1);
         // try {
         // List<TaoBaoGoodsBrief> goodsList =
         // TaoKeApiUtil.getBatchGoodsInfos(numIds);
         // Map<Long, Integer> map = new HashMap<>();
         // for (TaoBaoGoodsBrief g : goodsList)
         // map.put(g.getAuctionId(), g.getMaterialLibType());
         // for (TaoBaoGoodsBrief goods : result.getTaoBaoGoodsBriefs())
         // goods.setMaterialLibType(map.get(goods.getAuctionId()));
            ThreadUtil.run(new Runnable() {
               @Override
               public void run() {
                  // 更新到緩存
                  for (TaoBaoGoodsBrief goods : result.getTaoBaoGoodsBriefs())
                     taoBaoGoodsCacheUtil.saveCommonTaoBaoGoodsInfo(goods);
               }
            });
         } catch (TaobaoGoodsDownException e) {
            e.printStackTrace();
         }
         ThreadUtil.run(new Runnable() {
            @Override
            public void run() {
               // 更新到緩存
               for (TaoBaoGoodsBrief goods : result.getTaoBaoGoodsBriefs())
                  taoBaoGoodsCacheUtil.saveCommonTaoBaoGoodsInfo(goods);
            }
         });
         // } catch (Exception e) {
         // e.printStackTrace();
         // }
      }
@@ -644,14 +654,26 @@
      data.put("nav", gson.toJson(navList));
      List<TaoBaoGoodsBriefExtra> re = new ArrayList<TaoBaoGoodsBriefExtra>();
      List<TaoBaoGoodsBrief> taoBaoGoodsBriefs = result.getTaoBaoGoodsBriefs();
      if (taoBaoGoodsBriefs == null)
         taoBaoGoodsBriefs = new ArrayList<>();
      try {
         if (daTaoKeList != null && daTaoKeList.size() > 0) {
            Collections.reverse(daTaoKeList);
            for (DaTaoKeDetail detail : daTaoKeList) {
               taoBaoGoodsBriefs.add(0,TaoBaoUtil.convert(detail));
            }
         }
      } catch (Exception e) {
      }
      int fq = sf.getQuan();
      int fh = sf.getHongbao();
      boolean ft = sf.isTmall();
      Map<String, String> map = manageService.convertMap();
      BigDecimal proportion = manageService.getFanLiRate();
      if (fq == 0 && fh == 0 && !ft) {
         if (result != null && result.getTaoBaoGoodsBriefs() != null)
            for (TaoBaoGoodsBrief bf : result.getTaoBaoGoodsBriefs()) {
         if (result != null && taoBaoGoodsBriefs != null)
            for (TaoBaoGoodsBrief bf : taoBaoGoodsBriefs) {
               int count = bf.getBiz30day();
               if (count >= 10000) { // 对销量数据做处理 页面展示7.3万
                  double sales = count;