yujian
2019-10-09 481da0ca0ac931f6ff35dbb8d70d4450d4252c17
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/SearchControllerV2.java
@@ -16,12 +16,14 @@
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.yeshi.utils.HttpUtil;
import org.yeshi.utils.JsonUtil;
import org.yeshi.utils.NumberUtil;
import org.yeshi.utils.taobao.TbImgUtil;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.yeshi.fanli.dto.douyin.DouYinGoods;
import com.yeshi.fanli.dto.jd.JDFilter;
import com.yeshi.fanli.dto.jd.JDSearchFilter;
import com.yeshi.fanli.dto.jd.JDSearchResult;
@@ -52,6 +54,7 @@
import com.yeshi.fanli.service.inter.user.integral.IntegralGetService;
import com.yeshi.fanli.tag.PageEntity;
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.DouYinUtil;
import com.yeshi.fanli.util.StringUtil;
import com.yeshi.fanli.util.ThreadUtil;
import com.yeshi.fanli.util.Utils;
@@ -176,12 +179,11 @@
            return;
         }
         if (analysisTaoToken(text, out)) {
         if (analysisTaoToken(acceptData, text, out)) {
            return;
         }
         JSONObject root = new JSONObject();
         root.put("type", 2);
         JSONObject data = new JSONObject();
         data.put("title", text);
@@ -231,6 +233,9 @@
            type = 4;
            tb = TaoBaoUtil.getTmallGoodsInfo(id);
         }
      } else if (text.contains("v.douyin.com")) { // 抖音
         analysisDouYin(acceptData, text, out);
         return;
      } else {
         tb = TaoBaoUtil.parsePhoneShareUrlByTB(text);
         if (tb == null)// 淘宝是空值
@@ -253,8 +258,17 @@
               String pddId = PinDuoDuoUtil.getPDDGoodsId(text);
               if (!StringUtil.isNullOrEmpty(pddId)) {
                  PDDGoodsDetail goods = PinDuoDuoApiUtil.getGoodsDetail(Long.parseLong(pddId));
                  if (goods != null)
                  if (goods != null) {
                     commonGoods = CommonGoodsFactory.create(goods);
                  } else {
                     type = 4;
                     goods = PinDuoDuoUtil.getPDDGoodsInfo(pddId);
                     if(goods != null) {
                        commonGoods = new CommonGoods();
                        commonGoods.setTitle(goods.getGoodsName());
                        commonGoods.setPicture(goods.getGoodsThumbnailUrl());
                     }
                  }
               }
            }
         }
@@ -352,8 +366,51 @@
      root.put("data", data);
      out.print(JsonUtil.loadTrueResult(root));
   }
   /**
    * 解析抖音链接
    * @param acceptData
    * @param text
    * @param out
    * @return
    */
   private void analysisDouYin(AcceptData acceptData, String text, PrintWriter out) {
      String location = HttpUtil.getLocation(text);
      if (!StringUtil.isNullOrEmpty(location)) {
         if (location.contains("taobao.com")) { // 淘宝商品
            String realUrl = TaoBaoUtil.getRealUrl(location);
            if (!StringUtil.isNullOrEmpty(realUrl)) {
               getRecommendInfo(acceptData, realUrl, null, out);
               return;
            }
         } else if (location.contains("haohuo.jinritemai.com")) { // 抖音商品
            DouYinGoods goods = DouYinUtil.getGoodsInfo(location);
            JSONObject goodsJSON = new JSONObject();
            goodsJSON.put("title", goods.getName());
            goodsJSON.put("pictUrl", goods.getImg());
            JSONObject data = new JSONObject();
            data.put("type", 4);
            data.put("desc", "该商品无推广信息");
            data.put("goods", goodsJSON);
            out.print(JsonUtil.loadTrueResult(data));
            return;
         }
      }
      out.println(JsonUtil.loadFalseResult("暂未找到该商品,请稍后再试!"));
      return;
   }
   private boolean analysisTaoToken(String text, PrintWriter out) {
   /**
    * 解析淘口令
    * @param acceptData
    * @param text
    * @param out
    * @return
    */
   private boolean analysisTaoToken(AcceptData acceptData, String text, PrintWriter out) {
      String token = StringUtil.picUpTaoToken(text);
      if (!StringUtil.isNullOrEmpty(token)) {
         Long auctionId = TaoKeApiUtil.tokenConvertAuctionId(token);
@@ -366,6 +423,32 @@
            }
            if (tb != null) {
               if (VersionUtil.greaterThan_1_6_5(acceptData.getPlatform(), acceptData.getVersion())) {
                  TaoBaoGoodsBrief goodsBrief = null;
                  try {
                     goodsBrief = TaoKeApiUtil.searchGoodsDetail(tb.getAuctionId());
                  } catch (TaobaoGoodsDownException e) {
                     e.printStackTrace();
                  }
                  if (goodsBrief == null) {
                     out.println(JsonUtil.loadFalseResult("暂未找到该商品,请稍后再试!"));
                     return false;
                  }
                  BigDecimal fanLiRate = hongBaoManageService.getFanLiRate();
                  BigDecimal shareRate = hongBaoManageService.getShareRate();
                  Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder())
                        .excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create();
                  JSONObject data = new JSONObject();
                  data.put("type", 3);
                  data.put("goods", gson.toJson(GoodsDetailVOFactory.convertTaoBao(goodsBrief, null, fanLiRate, shareRate)));
                  out.print(JsonUtil.loadTrueResult(data));
                  return true;
               }
               JSONObject data = new JSONObject();
               JSONObject taoBaoGoodsJSON = new JSONObject();
               taoBaoGoodsJSON.put("title", tb.getTitle());