admin
2019-03-13 33b4ed2bbf28ec16b66e552680f56a691a4e908d
fanli/src/main/java/com/yeshi/fanli/controller/client/SearchController.java
@@ -10,10 +10,6 @@
import javax.annotation.Resource;
import net.sf.ehcache.Element;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@@ -41,7 +37,6 @@
import com.yeshi.fanli.service.inter.config.ConfigService;
import com.yeshi.fanli.service.inter.config.SuperHotSearchService;
import com.yeshi.fanli.service.inter.config.SystemService;
import com.yeshi.fanli.service.inter.goods.HonestService;
import com.yeshi.fanli.service.inter.hongbao.HongBaoManageService;
import com.yeshi.fanli.service.inter.lable.QualityGoodsService;
import com.yeshi.fanli.service.inter.lable.TaoKeGoodsService;
@@ -53,16 +48,20 @@
import com.yeshi.fanli.util.taobao.SearchFilterUtil;
import com.yeshi.fanli.util.taobao.TaoBaoUtil;
import net.sf.ehcache.Element;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
@Controller
@RequestMapping("api/v1/search")
public class SearchController {
   @Resource
   private SystemService systemService;
   @Resource
   private ConfigService configService;
   @Resource
   private SuperHotSearchService superHotSearchSerivce;
@@ -71,9 +70,6 @@
   @Resource
   private HongBaoManageService manageService;
   @Resource
   private HonestService honestService;
   @Resource
   private TaoBaoUnionConfigService taoBaoUnionConfigService;
@@ -113,7 +109,7 @@
   @RequestMapping("specialSearch")
   public void specialSearch(AcceptData acceptData, long hid, int page, PrintWriter out) {
      Honest honest = honestService.getOne(hid);
      Honest honest = null;
      if (honest == null) {
         out.print(JsonUtil.loadFalseResult(""));
         return;
@@ -140,11 +136,9 @@
      data.put("nav", gson.toJson(navList));
      List<TaoBaoGoodsBriefExtra> re = new ArrayList<TaoBaoGoodsBriefExtra>();
      List<TaoBaoGoodsBrief> taoBaoGoodsBriefs = result.getTaoBaoGoodsBriefs();
      Map<String, String> map = manageService.convertMap();
      String proportion = map.get("hongbao_goods_proportion");
      String fcRate = map.get("hongbao_fc_ratio");
      BigDecimal proportion = manageService.getFanLiRate();
      for (TaoBaoGoodsBrief bf : taoBaoGoodsBriefs) {
         re.add(TaoBaoUtil.getTaoBaoGoodsBriefExtra(bf, proportion, fcRate, ""));
         re.add(TaoBaoUtil.getTaoBaoGoodsBriefExtra(bf, proportion.toString(), ""));
      }
      Gson gson2 = JsonUtil.getApiCommonGson();
      data.put("result", gson2.toJson(re));
@@ -315,9 +309,7 @@
      int fq = sf.getQuan();
      int fh = sf.getHongbao();
      boolean ft = sf.isTmall();
      Map<String, String> map = manageService.convertMap();
      String proportion = map.get("hongbao_goods_proportion");
      String fcRate = map.get("hongbao_fc_ratio");
      BigDecimal proportion = manageService.getFanLiRate();
      if (fq == 0 && fh == 0 && !ft) {
         if (result != null && result.getTaoBaoGoodsBriefs() != null)
            for (TaoBaoGoodsBrief bf : result.getTaoBaoGoodsBriefs()) {
@@ -326,10 +318,10 @@
                  double sales = count;
                  String salesCountMidea = String.format("%.1f", sales / 10000);
                  bf.setSalesCount(salesCountMidea + "万");
                  re.add(TaoBaoUtil.getTaoBaoGoodsBriefExtra(bf, proportion, fcRate, ""));
                  re.add(TaoBaoUtil.getTaoBaoGoodsBriefExtra(bf, proportion.toString(), ""));
               } else {
                  bf.setSalesCount(count + "");
                  re.add(TaoBaoUtil.getTaoBaoGoodsBriefExtra(bf, proportion, fcRate, ""));
                  re.add(TaoBaoUtil.getTaoBaoGoodsBriefExtra(bf, proportion.toString(), ""));
               }
            }
      } else {
@@ -341,13 +333,13 @@
                  double sales = count;
                  String salesCountMidea = String.format("%.1f", sales / 10000);
                  taoBaoGoodsBrief.setSalesCount(salesCountMidea + "万");
                  taoBaoGoodsBriefExtra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, proportion,
                        fcRate, "");
                  taoBaoGoodsBriefExtra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief,
                        proportion.toString(), "");
                  re.add(taoBaoGoodsBriefExtra);
               } else {
                  taoBaoGoodsBrief.setSalesCount(count + "");
                  taoBaoGoodsBriefExtra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, proportion,
                        fcRate, "");
                  taoBaoGoodsBriefExtra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief,
                        proportion.toString(), "");
                  re.add(taoBaoGoodsBriefExtra);
               }
            }
@@ -488,7 +480,8 @@
      }
      Gson gson = new GsonBuilder().create();
      data.put("words", gson.toJson(listRecommendWords));
      if (data != null)
         data.put("words", gson.toJson(listRecommendWords));
      out.print(JsonUtil.loadTrueResult(data));
   }
@@ -520,7 +513,7 @@
      if (!com.yeshi.fanli.util.StringUtil.isNullOrEmpty(endprice)) {
         sf.setEndPrice(new BigDecimal(endprice));
      }
      if (!com.yeshi.fanli.util.StringUtil.isNullOrEmpty(order)) {
         if (Integer.parseInt(order) == 1) {
            sf.setSort(TaoBaoUtil.SORT_SALE_HIGH_TO_LOW);
@@ -617,11 +610,11 @@
               setSearchTkRate(3, sf);
            } else if ("tkRate5".equalsIgnoreCase(ty)) {
               setSearchTkRate(4, sf);
            }
            }
         }
         sf.setParams(params);
      }
      TaoBaoSearchResult result = TaoBaoUtil.search(sf);
      if (result == null) {
         return null;
@@ -639,8 +632,7 @@
      int fh = sf.getHongbao();
      boolean ft = sf.isTmall();
      Map<String, String> map = manageService.convertMap();
      String proportion = map.get("hongbao_goods_proportion");
      String fcRate = map.get("hongbao_fc_ratio");
      BigDecimal proportion = manageService.getFanLiRate();
      if (fq == 0 && fh == 0 && !ft) {
         if (result != null && result.getTaoBaoGoodsBriefs() != null)
            for (TaoBaoGoodsBrief bf : result.getTaoBaoGoodsBriefs()) {
@@ -649,10 +641,10 @@
                  double sales = count;
                  String salesCountMidea = String.format("%.1f", sales / 10000);
                  bf.setSalesCount(salesCountMidea + "万");
                  re.add(TaoBaoUtil.getTaoBaoGoodsBriefExtra(bf, proportion, fcRate, ""));
                  re.add(TaoBaoUtil.getTaoBaoGoodsBriefExtra(bf, proportion.toString(), ""));
               } else {
                  bf.setSalesCount(count + "");
                  re.add(TaoBaoUtil.getTaoBaoGoodsBriefExtra(bf, proportion, fcRate, ""));
                  re.add(TaoBaoUtil.getTaoBaoGoodsBriefExtra(bf, proportion.toString(), ""));
               }
            }
      } else {
@@ -664,13 +656,13 @@
                  double sales = count;
                  String salesCountMidea = String.format("%.1f", sales / 10000);
                  taoBaoGoodsBrief.setSalesCount(salesCountMidea + "万");
                  taoBaoGoodsBriefExtra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, proportion,
                        fcRate, "");
                  taoBaoGoodsBriefExtra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief,
                        proportion.toString(), "");
                  re.add(taoBaoGoodsBriefExtra);
               } else {
                  taoBaoGoodsBrief.setSalesCount(count + "");
                  taoBaoGoodsBriefExtra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, proportion,
                        fcRate, "");
                  taoBaoGoodsBriefExtra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief,
                        proportion.toString(), "");
                  re.add(taoBaoGoodsBriefExtra);
               }
            }
@@ -694,7 +686,7 @@
    * @return
    */
   private JSONObject searchQualityGoods(String key, int page, String filter, String order, String startprice,
         String endprice ) {
         String endprice) {
      Integer hasQuan = null;
      Integer userType = null;
@@ -703,7 +695,7 @@
      Integer sort = null;
      Double startTkRate = null;
      Double endTkRate = null;
      int provinceId = -100;
      // 起始价格
@@ -821,7 +813,7 @@
                     }
                  }
               }
            }
            }
         }
      }
@@ -831,10 +823,7 @@
            userType, start_Price, end_Price, startTkRate, endTkRate, sort);
      List<TaoBaoGoodsBriefExtra> listExtra = new ArrayList<TaoBaoGoodsBriefExtra>();
      Map<String, String> map = manageService.convertMap();
      String proportion = map.get("hongbao_goods_proportion");
      String fcRate = map.get("hongbao_fc_ratio");
      BigDecimal proportion = manageService.getFanLiRate();
      /* 遍历列表数据 */
      if (listQuery != null && listQuery.size() > 0) {
         for (QualityFactory selectionGoods : listQuery) {
@@ -860,11 +849,12 @@
               taoBaoGoodsBrief.setPictUrl(TbImgUtil.getTBSize320Img(pictUrl));
            }
            listExtra.add(TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, proportion, fcRate, null));
            listExtra.add(TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, proportion.toString(), null));
         }
      }
      long count = qualityGoodsService.countRecommendBykey(key, hasQuan, userType, start_Price, end_Price, startTkRate, endTkRate);
      long count = qualityGoodsService.countRecommendBykey(key, hasQuan, userType, start_Price, end_Price,
            startTkRate, endTkRate);
      // 设置发货地址
      TaoBaoSearchNav nav = new TaoBaoSearchNav();
@@ -904,33 +894,34 @@
   /**
    * 设置查询佣金比例范围
    *
    * @param i
    * @param sf
    */
   public void setSearchTkRate(int i, SearchFilter sf) {
      // 获取对应参数
      String value = configService.get("tkRate_range");
      if (!StringUtil.isNullOrEmpty(value)) {
         JSONArray tkRatearray = JSONArray.fromObject(value);
         if (tkRatearray != null) {
            String start = tkRatearray.optJSONObject(i).optString("start");
            if (!StringUtil.isNullOrEmpty(start)) {
               int tkRate = (int) (Float.parseFloat(start) * 100);
               sf.setStartTkRate(tkRate);
            }
            String end = tkRatearray.optJSONObject(i).optString("end");
            if (!StringUtil.isNullOrEmpty(end)) {
               int tkRate = (int) (Float.parseFloat(end) * 100);
               sf.setEndTkRate(tkRate);
            }
         }
      }
   }
}