admin
2025-02-25 30d8e227e8d823b6c38c3b9c90ac2df03b63befe
fanli/src/main/java/com/yeshi/fanli/service/impl/goods/CommonTemplateContentServiceImpl.java
@@ -1,490 +1,844 @@
package com.yeshi.fanli.service.impl.goods;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service;
import com.yeshi.fanli.dto.common.CommonContentNav;
import com.yeshi.fanli.dto.common.CommonContentResult;
import com.yeshi.fanli.dto.common.CommonContentTypeEnum;
import com.yeshi.fanli.dto.dataoke.DaTaoKeGoodsResult;
import com.yeshi.fanli.entity.bus.clazz.GoodsClass;
import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
import com.yeshi.fanli.entity.taobao.TaobaoMeterial;
import com.yeshi.fanli.entity.taobao.dataoke.DaTaoKeDetailV2;
import com.yeshi.fanli.service.inter.goods.CommonTemplateContentService;
import com.yeshi.fanli.service.inter.lable.TaoKeGoodsService;
import com.yeshi.fanli.service.inter.taobao.TaobaoMeterialService;
import com.yeshi.fanli.service.inter.taobao.dataoke.DaTaoKeGoodsDetailService;
import com.yeshi.fanli.util.dataoke.DaTaoKeApiUtil;
import com.yeshi.fanli.util.taobao.DaTaoKeUtil;
import com.yeshi.fanli.util.taobao.TaoBaoUtil;
@Service
public class CommonTemplateContentServiceImpl implements CommonTemplateContentService {
   @Resource
   private DaTaoKeGoodsDetailService daTaoKeGoodsDetailService;
   @Resource
   private TaobaoMeterialService taobaoMeterialService;
   @Resource
   private TaoKeGoodsService taoKeGoodsService;
   private static List<CommonContentNav> getCommonNav() {
      List<CommonContentNav> navList = new ArrayList<>();
      navList.add(new CommonContentNav("1", "综合"));
      navList.add(new CommonContentNav("2", "最新"));
      navList.add(new CommonContentNav("3", "热卖"));
      navList.add(new CommonContentNav("4", "销量"));
      navList.add(new CommonContentNav("5", "返利比"));
      return navList;
   }
   private static int getCommonSort(String cid) {
      int sort = DaTaoKeApiUtil.SORT_DEFAULT;
      if ("1".equalsIgnoreCase(cid))
         sort = DaTaoKeApiUtil.SORT_DEFAULT;
      else if ("2".equalsIgnoreCase(cid))
         sort = DaTaoKeApiUtil.SORT_CREATETIME;
      else if ("3".equalsIgnoreCase(cid))
         sort = DaTaoKeApiUtil.SORT_COUPON_NUM;
      else if ("4".equalsIgnoreCase(cid))
         sort = DaTaoKeApiUtil.SORT_SALES;
      else if ("5".equalsIgnoreCase(cid))
         sort = DaTaoKeApiUtil.SORT_COMMISSION;
      return sort;
   }
   @Override
   public List<CommonContentNav> getNavList(CommonContentTypeEnum type) {
      List<CommonContentNav> navList = new ArrayList<>();
      if (type == CommonContentTypeEnum._9k9) {
         navList.add(new CommonContentNav("-1", "综合"));
         navList.add(new CommonContentNav("0", "最新"));
         for (GoodsClass gc : DaTaoKeUtil.goodsClasses) {
            navList.add(new CommonContentNav(gc.getId() + "", gc.getName()));
         }
      } else if (type == CommonContentTypeEnum.chaoSheng) {
         navList.add(new CommonContentNav("1", "5%~10%返利"));
         navList.add(new CommonContentNav("2", "10%~20%返利"));
         navList.add(new CommonContentNav("3", "20%~30%返利"));
         navList.add(new CommonContentNav("4", "30%~40%返利"));
         navList.add(new CommonContentNav("5", "40%以上返利"));
      } else if (type == CommonContentTypeEnum.haoQuan) {
         navList.add(new CommonContentNav("1", "5~10元券"));
         navList.add(new CommonContentNav("2", "10~30元券"));
         navList.add(new CommonContentNav("3", "30~50元券"));
         navList.add(new CommonContentNav("4", "50元以上券"));
      } else if (type == CommonContentTypeEnum.juJia) {
         navList = getCommonNav();
      } else if (type == CommonContentTypeEnum.meiShi) {
         navList = getCommonNav();
      } else if (type == CommonContentTypeEnum.muYin) {
         navList.add(new CommonContentNav("1", "精选"));
         navList.add(new CommonContentNav("备孕", "备孕"));
         navList.add(new CommonContentNav("0至6个月", "0~6月"));
         navList.add(new CommonContentNav("7至12个月", "7~12月"));
         navList.add(new CommonContentNav("1至3岁", "1~3岁"));
         navList.add(new CommonContentNav("4至6岁", "4~6岁"));
         navList.add(new CommonContentNav("7至12岁", "7~12岁"));
      } else if (type == CommonContentTypeEnum.reMai) {
         navList = getCommonNav();
      } else if (type == CommonContentTypeEnum.chuanYiDaPei) {
         navList = getCommonNav();
      } else if (type == CommonContentTypeEnum.meiZhuangGehu) {
         navList = getCommonNav();
      } else if (type == CommonContentTypeEnum.jingPinXieBao) {
         navList = getCommonNav();
      } else if (type == CommonContentTypeEnum.chaoNanReMai) {
         navList = getCommonNav();
      } else if (type == CommonContentTypeEnum.shuMaShouJi) {
         navList = getCommonNav();
      } else if (type == CommonContentTypeEnum.yunDongKuXie) {
         navList = getCommonNav();
      } else if (type == CommonContentTypeEnum.qiCheHuWai) {
         navList = getCommonNav();
      }
      return navList;
   }
   @Cacheable(value = "commonContentCache", key = "#type+'-'+#cid+'-'+#page+'-'+#pageSize")
   @Override
   public CommonContentResult getContentList(CommonContentTypeEnum type, String cid, int page, int pageSize) {
      if (type == CommonContentTypeEnum._9k9) {
         return get9K9Content(cid, page, pageSize);
      } else if (type == CommonContentTypeEnum.juJia) {
         return getJuJiaShengHuoContent(cid, page, pageSize);
      } else if (type == CommonContentTypeEnum.muYin) {
         return getMuYinJingXuanContent(cid, page, pageSize);
      } else if (type == CommonContentTypeEnum.meiShi) {
         return getYouXuanMeiShiContent(cid, page, pageSize);
      } else if (type == CommonContentTypeEnum.chuanYiDaPei) {
         return getChuanYiDaPeiContent(cid, page, pageSize);
      } else if (type == CommonContentTypeEnum.meiZhuangGehu) {
         return getMeiZhuangGeHuContent(cid, page, pageSize);
      } else if (type == CommonContentTypeEnum.jingPinXieBao) {
         return getJingPinXieBaoContent(cid, page, pageSize);
      } else if (type == CommonContentTypeEnum.chaoNanReMai) {
         return getChaoNanReMaiContent(cid, page, pageSize);
      } else if (type == CommonContentTypeEnum.shuMaShouJi) {
         return getShuMaShouJiContent(cid, page, pageSize);
      } else if (type == CommonContentTypeEnum.yunDongKuXie) {
         return getYunDongKuXieContent(cid, page, pageSize);
      } else if (type == CommonContentTypeEnum.qiCheHuWai) {
         return getQiCheHuWaiContent(cid, page, pageSize);
      } else if (type == CommonContentTypeEnum.chaoPinReMai) {
         return getChaoPinReMaiContent(cid, page, pageSize);
      }
      return null;
   }
   private CommonContentResult get9K9Content(String cid, int page, int pageSize) {
      DaTaoKeGoodsResult result = null;
      if ("-1".equalsIgnoreCase(cid)) {
         result = DaTaoKeApiUtil.search("", null, null, new BigDecimal("10"), page, pageSize,
               DaTaoKeApiUtil.SORT_DEFAULT);
      } else if ("0".equalsIgnoreCase(cid)) {
         result = DaTaoKeApiUtil.search("", null, null, new BigDecimal("10"), page, pageSize,
               DaTaoKeApiUtil.SORT_CREATETIME);
      } else {
         List<Integer> cidList = new ArrayList<>();
         cidList.add(Integer.parseInt(cid));
         result = DaTaoKeApiUtil.search("", cidList, null, new BigDecimal("10"), page, pageSize,
               DaTaoKeApiUtil.SORT_DEFAULT);
      }
      List<TaoBaoGoodsBrief> goodsList = new ArrayList<>();
      long count = 0;
      if (result != null) {
         count = result.getTotalCount();
         if (result.getGoodsList() != null)
            for (DaTaoKeDetailV2 detail : result.getGoodsList())
               goodsList.add(TaoBaoUtil.convert(detail));
      }
      return new CommonContentResult(goodsList, count);
   }
   /**
    * 居家生活
    *
    * @param cid
    * @param page
    * @param pageSize
    * @return
    */
   private CommonContentResult getJuJiaShengHuoContent(String cid, int page, int pageSize) {
      DaTaoKeGoodsResult result = null;
      List<Integer> cidList = new ArrayList<>();
      cidList.add(4);// 居家生活
      int sort = getCommonSort(cid);
      result = DaTaoKeApiUtil.search("", cidList, null, null, page, pageSize, sort);
      List<TaoBaoGoodsBrief> goodsList = new ArrayList<>();
      long count = 0;
      if (result != null) {
         count = result.getTotalCount();
         if (result.getGoodsList() != null)
            for (DaTaoKeDetailV2 detail : result.getGoodsList())
               goodsList.add(TaoBaoUtil.convert(detail));
      }
      return new CommonContentResult(goodsList, count);
   }
   /**
    * 优选美食
    *
    * @param cid
    * @param page
    * @param pageSize
    * @return
    */
   private CommonContentResult getYouXuanMeiShiContent(String cid, int page, int pageSize) {
      DaTaoKeGoodsResult result = null;
      List<Integer> cidList = new ArrayList<>();
      cidList.add(6);// 美食
      int sort = getCommonSort(cid);
      result = DaTaoKeApiUtil.search("", cidList, null, null, page, pageSize, sort);
      List<TaoBaoGoodsBrief> goodsList = new ArrayList<>();
      long count = 0;
      if (result != null) {
         count = result.getTotalCount();
         if (result.getGoodsList() != null)
            for (DaTaoKeDetailV2 detail : result.getGoodsList())
               goodsList.add(TaoBaoUtil.convert(detail));
      }
      return new CommonContentResult(goodsList, count);
   }
   /**
    * 潮品热卖
    *
    * @param cid
    * @param page
    * @param pageSize
    * @return
    */
   private CommonContentResult getChaoPinReMaiContent(String cid, int page, int pageSize) {
      DaTaoKeGoodsResult result = null;
      int sort = getCommonSort(cid);
      result = DaTaoKeApiUtil.search("潮", null, null, null, page, pageSize, sort);
      List<TaoBaoGoodsBrief> goodsList = new ArrayList<>();
      long count = 0;
      if (result != null) {
         count = result.getTotalCount();
         if (result.getGoodsList() != null)
            for (DaTaoKeDetailV2 detail : result.getGoodsList())
               goodsList.add(TaoBaoUtil.convert(detail));
      }
      return new CommonContentResult(goodsList, count);
   }
   /**
    * 获取母婴精选
    *
    * @param cid
    * @param page
    * @param pageSize
    * @return
    */
   private CommonContentResult getMuYinJingXuanContent(String cid, int page, int pageSize) {
      DaTaoKeGoodsResult result = null;
      if ("1".equalsIgnoreCase(cid)) {// 大淘客数据
         List<Integer> cidList = new ArrayList<>();
         cidList.add(2);// 母婴
         result = DaTaoKeApiUtil.search("", null, null, null, page, pageSize, DaTaoKeApiUtil.SORT_DEFAULT);
         List<TaoBaoGoodsBrief> goodsList = new ArrayList<>();
         long count = 0;
         if (result != null) {
            count = result.getTotalCount();
            if (result.getGoodsList() != null)
               for (DaTaoKeDetailV2 detail : result.getGoodsList())
                  goodsList.add(TaoBaoUtil.convert(detail));
         }
         return new CommonContentResult(goodsList, count);
      } else {//
         List<TaobaoMeterial> taobaoMeterials = taobaoMeterialService.selectByClassNameAndSuperNameCache("母婴_" + cid,
               "母婴主题");
         if (taobaoMeterials == null || taobaoMeterials.size() == 0) {
            return null;
         }
         TaobaoMeterial meterial = taobaoMeterials.get(0);
         Integer materialId = meterial.getMaterialId();
         if (materialId != null) {
            List<TaoBaoGoodsBrief> listBrands = new ArrayList<>();
            try {
               listBrands = taoKeGoodsService.listByMaterial(materialId, page, pageSize);
            } catch (Exception e) {
               e.printStackTrace();
            }
            return new CommonContentResult(listBrands, 1000);
         }
         return new CommonContentResult(new ArrayList<>(), 0);
      }
   }
   /**
    * 穿衣搭配
    *
    * @param cid
    * @param page
    * @param pageSize
    * @return
    */
   private CommonContentResult getChuanYiDaPeiContent(String cid, int page, int pageSize) {
      DaTaoKeGoodsResult result = null;
      List<Integer> cidList = new ArrayList<>();
      cidList.add(1);// 女装
      int sort = getCommonSort(cid);
      result = DaTaoKeApiUtil.search("内衣 女", cidList, null, null, page, pageSize, sort);
      List<TaoBaoGoodsBrief> goodsList = new ArrayList<>();
      long count = 0;
      if (result != null) {
         count = result.getTotalCount();
         if (result.getGoodsList() != null)
            for (DaTaoKeDetailV2 detail : result.getGoodsList())
               goodsList.add(TaoBaoUtil.convert(detail));
      }
      return new CommonContentResult(goodsList, count);
   }
   /**
    * 美妆个护
    *
    * @param cid
    * @param page
    * @param pageSize
    * @return
    */
   private CommonContentResult getMeiZhuangGeHuContent(String cid, int page, int pageSize) {
      DaTaoKeGoodsResult result = null;
      List<Integer> cidList = new ArrayList<>();
      cidList.add(3);// 美妆
      int sort = getCommonSort(cid);
      result = DaTaoKeApiUtil.search("洗护", cidList, null, null, page, pageSize, sort);
      List<TaoBaoGoodsBrief> goodsList = new ArrayList<>();
      long count = 0;
      if (result != null) {
         count = result.getTotalCount();
         if (result.getGoodsList() != null)
            for (DaTaoKeDetailV2 detail : result.getGoodsList())
               goodsList.add(TaoBaoUtil.convert(detail));
      }
      return new CommonContentResult(goodsList, count);
   }
   /**
    * 精品鞋包
    *
    * @param cid
    * @param page
    * @param pageSize
    * @return
    */
   private CommonContentResult getJingPinXieBaoContent(String cid, int page, int pageSize) {
      DaTaoKeGoodsResult result = null;
      int sort = getCommonSort(cid);
      result = DaTaoKeApiUtil.search("鞋 女", null, null, null, page, pageSize, sort);
      DaTaoKeGoodsResult result1 = DaTaoKeApiUtil.search("包 女", null, null, null, page, pageSize, sort);
      List<TaoBaoGoodsBrief> goodsList = new ArrayList<>();
      long count = 0;
      if (result != null) {
         count = result.getTotalCount() + result1.getTotalCount();
         if (result.getGoodsList() != null)
            for (DaTaoKeDetailV2 detail : result.getGoodsList())
               goodsList.add(TaoBaoUtil.convert(detail));
         if (result1.getGoodsList() != null)
            for (DaTaoKeDetailV2 detail : result1.getGoodsList())
               goodsList.add(TaoBaoUtil.convert(detail));
      }
      Collections.shuffle(goodsList);
      return new CommonContentResult(goodsList, count);
   }
   /**
    * 潮男热卖
    *
    * @param cid
    * @param page
    * @param pageSize
    * @return
    */
   private CommonContentResult getChaoNanReMaiContent(String cid, int page, int pageSize) {
      DaTaoKeGoodsResult result = null;
      int sort = getCommonSort(cid);
      result = DaTaoKeApiUtil.search("潮 男", null, null, null, page, pageSize, sort);
      List<TaoBaoGoodsBrief> goodsList = new ArrayList<>();
      long count = 0;
      if (result != null) {
         count = result.getTotalCount();
         if (result.getGoodsList() != null)
            for (DaTaoKeDetailV2 detail : result.getGoodsList())
               goodsList.add(TaoBaoUtil.convert(detail));
      }
      Collections.shuffle(goodsList);
      return new CommonContentResult(goodsList, count);
   }
   /**
    * 数码手机
    *
    * @param cid
    * @param page
    * @param pageSize
    * @return
    */
   private CommonContentResult getShuMaShouJiContent(String cid, int page, int pageSize) {
      DaTaoKeGoodsResult result = null;
      int sort = getCommonSort(cid);
      result = DaTaoKeApiUtil.search("电", null, null, null, page, pageSize, sort);
      DaTaoKeGoodsResult result1 = DaTaoKeApiUtil.search("手机", null, null, null, page, pageSize, sort);
      List<TaoBaoGoodsBrief> goodsList = new ArrayList<>();
      long count = 0;
      if (result != null) {
         count = result.getTotalCount() + result1.getTotalCount();
         if (result.getGoodsList() != null)
            for (DaTaoKeDetailV2 detail : result.getGoodsList())
               goodsList.add(TaoBaoUtil.convert(detail));
         if (result1.getGoodsList() != null)
            for (DaTaoKeDetailV2 detail : result1.getGoodsList())
               goodsList.add(TaoBaoUtil.convert(detail));
      }
      Collections.shuffle(goodsList);
      return new CommonContentResult(goodsList, count);
   }
   /**
    * 运动酷鞋
    *
    * @param cid
    * @param page
    * @param pageSize
    * @return
    */
   private CommonContentResult getYunDongKuXieContent(String cid, int page, int pageSize) {
      DaTaoKeGoodsResult result = null;
      int sort = getCommonSort(cid);
      result = DaTaoKeApiUtil.search("鞋 男", null, null, null, page, pageSize, sort);
      DaTaoKeGoodsResult result1 = DaTaoKeApiUtil.search("运动 男", null, null, null, page, pageSize, sort);
      List<TaoBaoGoodsBrief> goodsList = new ArrayList<>();
      long count = 0;
      if (result != null) {
         count = result.getTotalCount() + result1.getTotalCount();
         if (result.getGoodsList() != null)
            for (DaTaoKeDetailV2 detail : result.getGoodsList())
               goodsList.add(TaoBaoUtil.convert(detail));
         if (result1.getGoodsList() != null)
            for (DaTaoKeDetailV2 detail : result1.getGoodsList())
               goodsList.add(TaoBaoUtil.convert(detail));
      }
      Collections.shuffle(goodsList);
      return new CommonContentResult(goodsList, count);
   }
   /**
    * 汽车户外
    *
    * @param cid
    * @param page
    * @param pageSize
    * @return
    */
   private CommonContentResult getQiCheHuWaiContent(String cid, int page, int pageSize) {
      DaTaoKeGoodsResult result = null;
      List<Integer> cidList = new ArrayList<>();
      cidList.add(7);
      cidList.add(13);
      int sort = getCommonSort(cid);
      result = DaTaoKeApiUtil.search("", null, null, null, page, pageSize, sort);
      DaTaoKeGoodsResult result1 = DaTaoKeApiUtil.search("运动 男", cidList, null, null, page, pageSize, sort);
      List<TaoBaoGoodsBrief> goodsList = new ArrayList<>();
      long count = 0;
      if (result != null) {
         count = result.getTotalCount() + result1.getTotalCount();
         if (result.getGoodsList() != null)
            for (DaTaoKeDetailV2 detail : result.getGoodsList())
               goodsList.add(TaoBaoUtil.convert(detail));
         if (result1.getGoodsList() != null)
            for (DaTaoKeDetailV2 detail : result1.getGoodsList())
               goodsList.add(TaoBaoUtil.convert(detail));
      }
      Collections.shuffle(goodsList);
      return new CommonContentResult(goodsList, count);
   }
}
package com.yeshi.fanli.service.impl.goods;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
import com.yeshi.fanli.entity.SystemEnum;
import com.yeshi.fanli.entity.SystemFunction;
import com.yeshi.fanli.entity.goods.CommonGoods;
import com.yeshi.fanli.util.SystemInfoUtil;
import com.yeshi.fanli.util.factory.CommonGoodsFactory;
import com.yeshi.goods.facade.dto.taobao.haodanku.HaoDanKuJDGoodsInfo;
import com.yeshi.goods.facade.dto.taobao.haodanku.HaoDanKuListResult;
import com.yeshi.goods.facade.dto.taobao.haodanku.HaoDanKuPDDGoodsInfo;
import com.yeshi.goods.facade.entity.taobao.haodanku.HDKGoodsDetail;
import com.yeshi.goods.facade.utils.taobao.HaoDanKuApiUtil;
import com.yeshi.goods.facade.utils.taobao.HaoDankuUtil;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service;
import com.yeshi.fanli.dto.common.CommonContentNav;
import com.yeshi.fanli.dto.common.CommonContentResult;
import com.yeshi.fanli.dto.common.CommonContentTypeEnum;
import com.yeshi.goods.facade.dto.taobao.dataoke.DaTaoKeGoodsResult;
import com.yeshi.fanli.entity.bus.clazz.GoodsClass;
import com.yeshi.fanli.entity.bus.lable.QualityFactory;
import com.yeshi.goods.facade.entity.taobao.TaoBaoGoodsBrief;
import com.yeshi.fanli.entity.taobao.TaobaoMeterial;
import com.yeshi.goods.facade.entity.taobao.dataoke.DaTaoKeDetailV2;
import com.yeshi.fanli.exception.taobao.TaoKeApiException;
import com.yeshi.fanli.exception.taobao.TaobaoGoodsDownException;
import com.yeshi.fanli.service.inter.goods.CommonTemplateContentService;
import com.yeshi.fanli.service.inter.lable.QualityGoodsService;
import com.yeshi.fanli.service.inter.lable.TaoKeGoodsService;
import com.yeshi.fanli.service.inter.order.config.HongBaoManageService;
import com.yeshi.fanli.service.inter.taobao.TaoBaoGoodsUpdateService;
import com.yeshi.fanli.service.inter.taobao.TaobaoMeterialService;
import com.yeshi.goods.facade.service.DaTaoKeGoodsDetailV2Service;
import com.yeshi.fanli.util.Constant;
import com.yeshi.goods.facade.utils.taobao.DaTaoKeApiUtil;
import com.yeshi.fanli.util.taobao.DaTaoKeUtil;
import com.yeshi.fanli.util.taobao.TaoBaoUtil;
import com.yeshi.fanli.util.taobao.TaoKeApiUtil;
@Service
public class CommonTemplateContentServiceImpl implements CommonTemplateContentService {
    @Resource
    private DaTaoKeGoodsDetailV2Service daTaoKeGoodsDetailV2Service;
    @Resource
    private TaobaoMeterialService taobaoMeterialService;
    @Resource
    private TaoKeGoodsService taoKeGoodsService;
    @Resource
    private HongBaoManageService hongBaoManageService;
    @Resource
    private QualityGoodsService qualityGoodsService;
    @Resource
    private TaoBaoGoodsUpdateService taoBaoGoodsUpdateService;
    private static List<CommonContentNav> getCommonNav(SystemEnum system) {
        List<CommonContentNav> navList = new ArrayList<>();
        navList.add(new CommonContentNav("1", "综合"));
        navList.add(new CommonContentNav("2", "最新"));
        navList.add(new CommonContentNav("3", "热卖"));
        navList.add(new CommonContentNav("4", "销量"));
        if (SystemInfoUtil.hasFunctions(system, SystemFunction.fanli))
            navList.add(new CommonContentNav("5", "返利比"));
        return navList;
    }
    private static int getCommonSort(String cid) {
        int sort = DaTaoKeApiUtil.SORT_DEFAULT;
        if ("1".equalsIgnoreCase(cid))
            sort = DaTaoKeApiUtil.SORT_DEFAULT;
        else if ("2".equalsIgnoreCase(cid))
            sort = DaTaoKeApiUtil.SORT_CREATETIME;
        else if ("3".equalsIgnoreCase(cid))
            sort = DaTaoKeApiUtil.SORT_COUPON_NUM;
        else if ("4".equalsIgnoreCase(cid))
            sort = DaTaoKeApiUtil.SORT_SALES;
        else if ("5".equalsIgnoreCase(cid))
            sort = DaTaoKeApiUtil.SORT_COMMISSION;
        return sort;
    }
    @Override
    public List<CommonContentNav> getNavList(CommonContentTypeEnum type, SystemEnum system) {
        List<CommonContentNav> navList = new ArrayList<>();
        if (type == CommonContentTypeEnum._9k9) {
            navList.add(new CommonContentNav("-1", "综合"));
            navList.add(new CommonContentNav("0", "最新"));
            for (GoodsClass gc : DaTaoKeUtil.goodsClasses) {
                navList.add(new CommonContentNav(gc.getId() + "", gc.getName()));
            }
        } else if (type == CommonContentTypeEnum.chaoSheng) {
            navList.add(new CommonContentNav("1", "1-5元返利"));
            navList.add(new CommonContentNav("2", "5-10元返利 "));
            navList.add(new CommonContentNav("3", "10-15元返利"));
            navList.add(new CommonContentNav("4", "15-20元返利"));
            navList.add(new CommonContentNav("5", "20元以上返利"));
        } else if (type == CommonContentTypeEnum.haoQuan) {
            navList.add(new CommonContentNav("1", "1-5元券"));
            navList.add(new CommonContentNav("2", "5-10元券"));
            navList.add(new CommonContentNav("3", "10-20元券"));
            navList.add(new CommonContentNav("4", "20-30元券"));
            navList.add(new CommonContentNav("5", "30-50元券"));
            navList.add(new CommonContentNav("6", "50元以上券"));
        } else if (type == CommonContentTypeEnum.juJia) {
            navList = getCommonNav(system);
        } else if (type == CommonContentTypeEnum.meiShi) {
            navList = getCommonNav(system);
        } else if (type == CommonContentTypeEnum.muYin) {
            navList.add(new CommonContentNav("1", "精选"));
            navList.add(new CommonContentNav("备孕", "备孕"));
            navList.add(new CommonContentNav("0至6个月", "0~6月"));
            navList.add(new CommonContentNav("7至12个月", "7~12月"));
            navList.add(new CommonContentNav("1至3岁", "1~3岁"));
            navList.add(new CommonContentNav("4至6岁", "4~6岁"));
            navList.add(new CommonContentNav("7至12岁", "7~12岁"));
        } else if (type == CommonContentTypeEnum.reMai) {
            navList = getCommonNav(system);
        } else if (type == CommonContentTypeEnum.chuanYiDaPei) {
            navList = getCommonNav(system);
        } else if (type == CommonContentTypeEnum.meiZhuangGehu) {
            navList = getCommonNav(system);
        } else if (type == CommonContentTypeEnum.jingPinXieBao) {
            navList = getCommonNav(system);
        } else if (type == CommonContentTypeEnum.chaoNanReMai) {
            navList = getCommonNav(system);
        } else if (type == CommonContentTypeEnum.shuMaShouJi) {
            navList = getCommonNav(system);
        } else if (type == CommonContentTypeEnum.yunDongKuXie) {
            navList = getCommonNav(system);
        } else if (type == CommonContentTypeEnum.qiCheHuWai) {
            navList = getCommonNav(system);
        } else if (type == CommonContentTypeEnum.chaoPinReMai) {
            navList = getCommonNav(system);
        } else if (type == CommonContentTypeEnum.mianDan) {
            navList = new ArrayList<>();
        } else if (type == CommonContentTypeEnum.pddHotGoodsRank) {
            //好单库数据
            navList.add(new CommonContentNav("0", "全部"));
            for (HaoDankuUtil.Category category : HaoDankuUtil.CATEGORYS) {
                navList.add(new CommonContentNav(category.getId() + "", category.getName()));
            }
        } else if (type == CommonContentTypeEnum.jdHotGoodsRank) {
            //好单库数据
            navList.add(new CommonContentNav("0", "全部"));
            for (HaoDankuUtil.Category category : HaoDankuUtil.CATEGORYS) {
                navList.add(new CommonContentNav(category.getId() + "", category.getName()));
            }
        } else if (type == CommonContentTypeEnum.tbHotGoodsRank) {
            //好单库数据
            navList.add(new CommonContentNav("0", "全部"));
            for (HaoDankuUtil.Category category : HaoDankuUtil.CATEGORYS) {
                navList.add(new CommonContentNav(category.getId() + "", category.getName()));
            }
        }
        return navList;
    }
    @Cacheable(value = "commonContentCache", key = "#type+'-'+#cid+'-'+#page+'-'+#pageSize+'-'+#system")
    @Override
    public CommonContentResult getContentList(CommonContentTypeEnum type, String cid, int page, int pageSize, SystemEnum system) {
        CommonContentResult result = null;
        if (type == CommonContentTypeEnum._9k9) {
            result = get9K9Content(cid, page, pageSize);
        } else if (type == CommonContentTypeEnum.juJia) {
            result = getJuJiaShengHuoContent(cid, page, pageSize);
        } else if (type == CommonContentTypeEnum.muYin) {
            result = getMuYinJingXuanContent(cid, page, pageSize);
        } else if (type == CommonContentTypeEnum.meiShi) {
            result = getYouXuanMeiShiContent(cid, page, pageSize);
        } else if (type == CommonContentTypeEnum.chuanYiDaPei) {
            result = getChuanYiDaPeiContent(cid, page, pageSize);
        } else if (type == CommonContentTypeEnum.meiZhuangGehu) {
            result = getMeiZhuangGeHuContent(cid, page, pageSize);
        } else if (type == CommonContentTypeEnum.jingPinXieBao) {
            result = getJingPinXieBaoContent(cid, page, pageSize);
        } else if (type == CommonContentTypeEnum.chaoNanReMai) {
            result = getChaoNanReMaiContent(cid, page, pageSize);
        } else if (type == CommonContentTypeEnum.shuMaShouJi) {
            result = getShuMaShouJiContent(cid, page, pageSize);
        } else if (type == CommonContentTypeEnum.yunDongKuXie) {
            result = getYunDongKuXieContent(cid, page, pageSize);
        } else if (type == CommonContentTypeEnum.qiCheHuWai) {
            result = getQiCheHuWaiContent(cid, page, pageSize);
        } else if (type == CommonContentTypeEnum.chaoPinReMai) {
            result = getChaoPinReMaiContent(cid, page, pageSize);
        } else if (type == CommonContentTypeEnum.chaoSheng) {
            result = getCaoShengContent(cid, page, pageSize, system);
        } else if (type == CommonContentTypeEnum.haoQuan) {
            result = getHaoQuanContent(cid, page, pageSize);
        } else if (type == CommonContentTypeEnum.mianDan) {
            result = getMianDanContent(page, pageSize);
        } else if (type == CommonContentTypeEnum.pddHotGoodsRank) {
            result = getPDDHotGoodsRankContent(cid, page);
        } else if (type == CommonContentTypeEnum.jdHotGoodsRank) {
            result = getJDHotGoodsRankContent(cid, page);
        } else if (type == CommonContentTypeEnum.tbHotGoodsRank) {
            result = getTBHotGoodsRankContent(cid, page);
        }
        if (result != null) {// 商品信息过滤
            List<CommonGoods> goodsList = taoBaoGoodsUpdateService
                    .filterImportantTaoBaoGoodsWithCommonGoods(result.getGoodsList());
            result.setGoodsList(goodsList);
        }
        return result;
    }
    /**
     * 9快9包邮
     *
     * @param cid
     * @param page
     * @param pageSize
     * @return
     */
    private CommonContentResult get9K9Content(String cid, int page, int pageSize) {
        if (pageSize == 20)
            pageSize = 50;
        DaTaoKeGoodsResult result = null;
        if ("-1".equalsIgnoreCase(cid)) {
            result = DaTaoKeApiUtil.getGoodsList("", null, null, new BigDecimal("10"), null, page, pageSize,
                    DaTaoKeApiUtil.SORT_DEFAULT);
            if (result == null || result.getGoodsList() == null || result.getGoodsList().size() == 0) {
                result = new DaTaoKeGoodsResult();
                result.setGoodsList(
                        daTaoKeGoodsDetailV2Service.listByMaxPrice(null, new BigDecimal("10"), null, page, pageSize));
                result.setTotalCount(daTaoKeGoodsDetailV2Service.countByMaxPrice(null, new BigDecimal("10")));
            }
        } else if ("0".equalsIgnoreCase(cid)) {
            result = DaTaoKeApiUtil.getGoodsList("", null, null, new BigDecimal("10"), null, page, pageSize,
                    DaTaoKeApiUtil.SORT_CREATETIME);
            if (result == null || result.getGoodsList() == null || result.getGoodsList().size() == 0) {
                result = new DaTaoKeGoodsResult();
                result.setGoodsList(daTaoKeGoodsDetailV2Service.listByMaxPrice(null, new BigDecimal("10"), "createTime",
                        page, pageSize));
                result.setTotalCount(daTaoKeGoodsDetailV2Service.countByMaxPrice(null, new BigDecimal("10")));
            }
        } else {
            List<Integer> cidList = new ArrayList<>();
            cidList.add(Integer.parseInt(cid));
            result = DaTaoKeApiUtil.getGoodsList("", cidList, null, new BigDecimal("10"), null, page, pageSize,
                    DaTaoKeApiUtil.SORT_DEFAULT);
            if (result == null || result.getGoodsList() == null || result.getGoodsList().size() == 0) {
                result = new DaTaoKeGoodsResult();
                result.setGoodsList(daTaoKeGoodsDetailV2Service.listByMaxPrice(Integer.parseInt(cid),
                        new BigDecimal("10"), null, page, pageSize));
                result.setTotalCount(
                        daTaoKeGoodsDetailV2Service.countByMaxPrice(Integer.parseInt(cid), new BigDecimal("10")));
            }
        }
        List<TaoBaoGoodsBrief> goodsList = new ArrayList<>();
        long count = 0;
        if (result != null) {
            count = result.getTotalCount();
            if (result.getGoodsList() != null)
                for (DaTaoKeDetailV2 detail : result.getGoodsList())
                    goodsList.add(TaoBaoUtil.convert(detail));
        }
        return new CommonContentResult(CommonGoodsFactory.createTaoBaoList(goodsList), count);
    }
    /**
     * 超级省钱
     *
     * @param cid
     * @param page
     * @param pageSize
     * @return
     */
    private CommonContentResult getCaoShengContent(String cid, int page, int pageSize, SystemEnum system) {
        pageSize = Constant.PAGE_SIZE;
        Integer startAmount = null;
        Integer endAmount = null;
        if (cid.equalsIgnoreCase(1 + "")) {
            startAmount = 1;
            endAmount = 5;
        } else if (cid.equalsIgnoreCase(2 + "")) {
            startAmount = 5;
            endAmount = 10;
        } else if (cid.equalsIgnoreCase(3 + "")) {
            startAmount = 10;
            endAmount = 15;
        } else if (cid.equalsIgnoreCase(4 + "")) {
            startAmount = 15;
            endAmount = 20;
        } else if (cid.equalsIgnoreCase(5 + "")) {
            startAmount = 20;
            endAmount = 10000;
        }
        double tkRate = 20.00;
        BigDecimal proportion = hongBaoManageService.getFanLiRate(system);
        List<QualityFactory> listQuery = qualityGoodsService.listQueryByRebateAmount((page - 1) * pageSize, pageSize,
                proportion.toString(), startAmount, endAmount, tkRate);
        long count = qualityGoodsService.countQueryByRebateAmount(proportion.toString(), startAmount, endAmount,
                tkRate);
        List<TaoBaoGoodsBrief> goodsList = new ArrayList<>();
        // 遍历列表数据
        if (listQuery != null)
            for (QualityFactory quality : listQuery) {
                TaoBaoGoodsBrief taoBaoGoodsBrief = quality.getTaoBaoGoodsBrief();
                if (taoBaoGoodsBrief == null) {
                    continue;
                }
                int biz30day = taoBaoGoodsBrief.getBiz30day();
                if (biz30day >= 10000) {
                    double sales = biz30day;
                    String salesCountMidea = String.format("%.1f", sales / 10000);
                    taoBaoGoodsBrief.setSalesCount(salesCountMidea + "万");
                } else {
                    taoBaoGoodsBrief.setSalesCount(biz30day + "");
                }
                goodsList.add(taoBaoGoodsBrief);
            }
        return new CommonContentResult(CommonGoodsFactory.createTaoBaoList(goodsList), count);
    }
    /**
     * 高额好券
     *
     * @param cid
     * @param page
     * @param pageSize
     * @return
     */
    private CommonContentResult getHaoQuanContent(String cid, int page, int pageSize) {
        pageSize = Constant.PAGE_SIZE;
        Integer startAmount = null;
        Integer endAmount = null;
        if (cid.equalsIgnoreCase(1 + "")) {
            startAmount = 1;
            endAmount = 5;
        } else if (cid.equalsIgnoreCase(2 + "")) {
            startAmount = 5;
            endAmount = 10;
        } else if (cid.equalsIgnoreCase(3 + "")) {
            startAmount = 10;
            endAmount = 20;
        } else if (cid.equalsIgnoreCase(4 + "")) {
            startAmount = 20;
            endAmount = 30;
        } else if (cid.equalsIgnoreCase(5 + "")) {
            startAmount = 30;
            endAmount = 50;
        } else if (cid.equalsIgnoreCase(6 + "")) {
            startAmount = 50;
            endAmount = 10000;
        }
        Integer startPropor = 20;
        List<QualityFactory> listQuery = qualityGoodsService.listQueryByCouponAmount((page - 1) * pageSize, pageSize,
                startAmount, endAmount, startPropor);
        long count = qualityGoodsService.countQueryByCouponAmount(startAmount, endAmount, startPropor);
        List<TaoBaoGoodsBrief> goodsList = new ArrayList<>();
        // 遍历列表数据
        for (QualityFactory selectionGoods : listQuery) {
            TaoBaoGoodsBrief taoBaoGoodsBrief = selectionGoods.getTaoBaoGoodsBrief();
            if (taoBaoGoodsBrief == null) {
                continue;
            }
            int biz30day = taoBaoGoodsBrief.getBiz30day();
            if (biz30day >= 10000) {
                double sales = biz30day;
                String salesCountMidea = String.format("%.1f", sales / 10000);
                taoBaoGoodsBrief.setSalesCount(salesCountMidea + "万");
            } else {
                taoBaoGoodsBrief.setSalesCount(biz30day + "");
            }
            goodsList.add(taoBaoGoodsBrief);
        }
        return new CommonContentResult(CommonGoodsFactory.createTaoBaoList(goodsList), count);
    }
    /**
     * 居家生活
     *
     * @param cid
     * @param page
     * @param pageSize
     * @return
     */
    private CommonContentResult getJuJiaShengHuoContent(String cid, int page, int pageSize) {
        DaTaoKeGoodsResult result = null;
        List<Integer> cidList = new ArrayList<>();
        cidList.add(4);// 居家生活
        int sort = getCommonSort(cid);
        result = DaTaoKeApiUtil.getGoodsList("", cidList, null, null, null, page, pageSize, sort);
        List<TaoBaoGoodsBrief> goodsList = new ArrayList<>();
        long count = 0;
        if (result != null) {
            count = result.getTotalCount();
            if (result.getGoodsList() != null)
                for (DaTaoKeDetailV2 detail : result.getGoodsList())
                    goodsList.add(TaoBaoUtil.convert(detail));
        }
        return new CommonContentResult(CommonGoodsFactory.createTaoBaoList(goodsList), count);
    }
    /**
     * 优选美食
     *
     * @param cid
     * @param page
     * @param pageSize
     * @return
     */
    private CommonContentResult getYouXuanMeiShiContent(String cid, int page, int pageSize) {
        DaTaoKeGoodsResult result = null;
        List<Integer> cidList = new ArrayList<>();
        cidList.add(6);// 美食
        int sort = getCommonSort(cid);
        result = DaTaoKeApiUtil.getGoodsList("", cidList, null, null, null, page, pageSize, sort);
        List<TaoBaoGoodsBrief> goodsList = new ArrayList<>();
        long count = 0;
        if (result != null) {
            count = result.getTotalCount();
            if (result.getGoodsList() != null)
                for (DaTaoKeDetailV2 detail : result.getGoodsList())
                    goodsList.add(TaoBaoUtil.convert(detail));
        }
        return new CommonContentResult(CommonGoodsFactory.createTaoBaoList(goodsList), count);
    }
    /**
     * 潮品热卖
     *
     * @param cid
     * @param page
     * @param pageSize
     * @return
     */
    private CommonContentResult getChaoPinReMaiContent(String cid, int page, int pageSize) {
        DaTaoKeGoodsResult result = null;
        int sort = getCommonSort(cid);
        result = DaTaoKeApiUtil.search("潮", null, null, null, page, pageSize, sort);
        List<TaoBaoGoodsBrief> goodsList = new ArrayList<>();
        long count = 0;
        if (result != null) {
            count = result.getTotalCount();
            if (result.getGoodsList() != null)
                for (DaTaoKeDetailV2 detail : result.getGoodsList())
                    goodsList.add(TaoBaoUtil.convert(detail));
        }
        return new CommonContentResult(CommonGoodsFactory.createTaoBaoList(goodsList), count);
    }
    /**
     * 获取母婴精选
     *
     * @param cid
     * @param page
     * @param pageSize
     * @return
     */
    private CommonContentResult getMuYinJingXuanContent(String cid, int page, int pageSize) {
        DaTaoKeGoodsResult result = null;
        if ("1".equalsIgnoreCase(cid)) {// 大淘客数据
            List<Integer> cidList = new ArrayList<>();
            cidList.add(2);// 母婴
            result = DaTaoKeApiUtil.getGoodsList("", cidList, null, null, null, page, pageSize,
                    DaTaoKeApiUtil.SORT_DEFAULT);
            List<TaoBaoGoodsBrief> goodsList = new ArrayList<>();
            long count = 0;
            if (result != null) {
                count = result.getTotalCount();
                if (result.getGoodsList() != null)
                    for (DaTaoKeDetailV2 detail : result.getGoodsList())
                        goodsList.add(TaoBaoUtil.convert(detail));
            }
            return new CommonContentResult(CommonGoodsFactory.createTaoBaoList(goodsList), count);
        } else {//
            List<TaobaoMeterial> taobaoMeterials = taobaoMeterialService.selectByClassNameAndSuperNameCache("母婴_" + cid,
                    "母婴主题");
            if (taobaoMeterials == null || taobaoMeterials.size() == 0) {
                return null;
            }
            TaobaoMeterial meterial = taobaoMeterials.get(0);
            Integer materialId = meterial.getMaterialId();
            if (materialId != null) {
                List<TaoBaoGoodsBrief> listBrands = new ArrayList<>();
                try {
                    listBrands = taoKeGoodsService.listByMaterial(materialId, page, pageSize);
                } catch (Exception e) {
                    e.printStackTrace();
                }
                return new CommonContentResult(CommonGoodsFactory.createTaoBaoList(listBrands), 1000);
            }
            return new CommonContentResult(new ArrayList<>(), 0);
        }
    }
    /**
     * 穿衣搭配
     *
     * @param cid
     * @param page
     * @param pageSize
     * @return
     */
    private CommonContentResult getChuanYiDaPeiContent(String cid, int page, int pageSize) {
        DaTaoKeGoodsResult result = null;
        List<Integer> cidList = new ArrayList<>();
        cidList.add(1);// 女装
        int sort = getCommonSort(cid);
        result = DaTaoKeApiUtil.getGoodsList("", cidList, null, null, null, page, pageSize, sort);
        List<TaoBaoGoodsBrief> goodsList = new ArrayList<>();
        long count = 0;
        if (result != null) {
            count = result.getTotalCount();
            if (result.getGoodsList() != null)
                for (DaTaoKeDetailV2 detail : result.getGoodsList())
                    goodsList.add(TaoBaoUtil.convert(detail));
        }
        return new CommonContentResult(CommonGoodsFactory.createTaoBaoList(goodsList), count);
    }
    /**
     * 美妆个护
     *
     * @param cid
     * @param page
     * @param pageSize
     * @return
     */
    private CommonContentResult getMeiZhuangGeHuContent(String cid, int page, int pageSize) {
        DaTaoKeGoodsResult result = null;
        List<Integer> cidList = new ArrayList<>();
        cidList.add(3);// 美妆
        int sort = getCommonSort(cid);
        result = DaTaoKeApiUtil.search("洗护", cidList, null, null, page, pageSize, sort);
        List<TaoBaoGoodsBrief> goodsList = new ArrayList<>();
        long count = 0;
        if (result != null) {
            count = result.getTotalCount();
            if (result.getGoodsList() != null)
                for (DaTaoKeDetailV2 detail : result.getGoodsList())
                    goodsList.add(TaoBaoUtil.convert(detail));
        }
        return new CommonContentResult(CommonGoodsFactory.createTaoBaoList(goodsList), count);
    }
    /**
     * 精品鞋包
     *
     * @param cid
     * @param page
     * @param pageSize
     * @return
     */
    private CommonContentResult getJingPinXieBaoContent(String cid, int page, int pageSize) {
        DaTaoKeGoodsResult result = null;
        int sort = getCommonSort(cid);
        result = DaTaoKeApiUtil.search("鞋 女", null, null, null, page, pageSize, sort);
        DaTaoKeGoodsResult result1 = DaTaoKeApiUtil.search("包 女", null, null, null, page, pageSize, sort);
        List<TaoBaoGoodsBrief> goodsList = new ArrayList<>();
        long count = 0;
        if (result != null) {
            count = result.getTotalCount() + result1.getTotalCount();
            if (result.getGoodsList() != null)
                for (DaTaoKeDetailV2 detail : result.getGoodsList())
                    goodsList.add(TaoBaoUtil.convert(detail));
            if (result1.getGoodsList() != null)
                for (DaTaoKeDetailV2 detail : result1.getGoodsList())
                    goodsList.add(TaoBaoUtil.convert(detail));
        }
        Collections.shuffle(goodsList);
        return new CommonContentResult(CommonGoodsFactory.createTaoBaoList(goodsList), count);
    }
    /**
     * 潮男热卖
     *
     * @param cid
     * @param page
     * @param pageSize
     * @return
     */
    private CommonContentResult getChaoNanReMaiContent(String cid, int page, int pageSize) {
        DaTaoKeGoodsResult result = null;
        int sort = getCommonSort(cid);
        result = DaTaoKeApiUtil.search("潮 男", null, null, null, page, pageSize, sort);
        List<TaoBaoGoodsBrief> goodsList = new ArrayList<>();
        long count = 0;
        if (result != null) {
            count = result.getTotalCount();
            if (result.getGoodsList() != null)
                for (DaTaoKeDetailV2 detail : result.getGoodsList())
                    goodsList.add(TaoBaoUtil.convert(detail));
        }
        Collections.shuffle(goodsList);
        return new CommonContentResult(CommonGoodsFactory.createTaoBaoList(goodsList), count);
    }
    /**
     * 数码手机
     *
     * @param cid
     * @param page
     * @param pageSize
     * @return
     */
    private CommonContentResult getShuMaShouJiContent(String cid, int page, int pageSize) {
        DaTaoKeGoodsResult result = null;
        int sort = getCommonSort(cid);
        result = DaTaoKeApiUtil.search("电", null, null, null, page, pageSize, sort);
        DaTaoKeGoodsResult result1 = DaTaoKeApiUtil.search("手机", null, null, null, page, pageSize, sort);
        List<TaoBaoGoodsBrief> goodsList = new ArrayList<>();
        long count = 0;
        if (result != null) {
            count = result.getTotalCount() + result1.getTotalCount();
            if (result.getGoodsList() != null)
                for (DaTaoKeDetailV2 detail : result.getGoodsList())
                    goodsList.add(TaoBaoUtil.convert(detail));
            if (result1.getGoodsList() != null)
                for (DaTaoKeDetailV2 detail : result1.getGoodsList())
                    goodsList.add(TaoBaoUtil.convert(detail));
        }
        Collections.shuffle(goodsList);
        return new CommonContentResult(CommonGoodsFactory.createTaoBaoList(goodsList), count);
    }
    /**
     * 运动酷鞋
     *
     * @param cid
     * @param page
     * @param pageSize
     * @return
     */
    private CommonContentResult getYunDongKuXieContent(String cid, int page, int pageSize) {
        DaTaoKeGoodsResult result = null;
        int sort = getCommonSort(cid);
        result = DaTaoKeApiUtil.search("鞋 男", null, null, null, page, pageSize, sort);
        DaTaoKeGoodsResult result1 = DaTaoKeApiUtil.search("运动 男", null, null, null, page, pageSize, sort);
        List<TaoBaoGoodsBrief> goodsList = new ArrayList<>();
        long count = 0;
        if (result != null) {
            count = result.getTotalCount() + result1.getTotalCount();
            if (result.getGoodsList() != null)
                for (DaTaoKeDetailV2 detail : result.getGoodsList())
                    goodsList.add(TaoBaoUtil.convert(detail));
            if (result1.getGoodsList() != null)
                for (DaTaoKeDetailV2 detail : result1.getGoodsList())
                    goodsList.add(TaoBaoUtil.convert(detail));
        }
        Collections.shuffle(goodsList);
        return new CommonContentResult(CommonGoodsFactory.createTaoBaoList(goodsList), count);
    }
    /**
     * 汽车户外
     *
     * @param cid
     * @param page
     * @param pageSize
     * @return
     */
    private CommonContentResult getQiCheHuWaiContent(String cid, int page, int pageSize) {
        DaTaoKeGoodsResult result = null;
        List<Integer> cidList = new ArrayList<>();
        cidList.add(7);
        cidList.add(13);
        int sort = getCommonSort(cid);
        result = DaTaoKeApiUtil.getGoodsList("", cidList, null, null, null, page, pageSize, sort);
        DaTaoKeGoodsResult result1 = DaTaoKeApiUtil.search("运动 男", cidList, null, null, page, pageSize, sort);
        List<TaoBaoGoodsBrief> goodsList = new ArrayList<>();
        long count = 0;
        if (result != null) {
            count = result.getTotalCount() + result1.getTotalCount();
            if (result.getGoodsList() != null)
                for (DaTaoKeDetailV2 detail : result.getGoodsList())
                    goodsList.add(TaoBaoUtil.convert(detail));
            if (result1.getGoodsList() != null)
                for (DaTaoKeDetailV2 detail : result1.getGoodsList())
                    goodsList.add(TaoBaoUtil.convert(detail));
        }
        Collections.shuffle(goodsList);
        return new CommonContentResult(CommonGoodsFactory.createTaoBaoList(goodsList), count);
    }
    /**
     * 获取免单商品
     *
     * @return
     */
    private CommonContentResult getMianDanContent(int page, int pageSize) {
        CommonContentResult result = new CommonContentResult();
        List<QualityFactory> listQuery = qualityGoodsService.listFreeGoods((page - 1) * pageSize, pageSize);
        long count = qualityGoodsService.countFreeGoods();
        result.setCount(count);
        List<String> listGid = new ArrayList<>();
        List<TaoBaoGoodsBrief> goodsList = new ArrayList<>();
        for (QualityFactory qualityFactory : listQuery) {
            TaoBaoGoodsBrief taoBaoGoodsBrief = qualityFactory.getTaoBaoGoodsBrief();
            if (taoBaoGoodsBrief == null) {
                continue;
            }
            listGid.add(taoBaoGoodsBrief.getAuctionId());
            goodsList.add(taoBaoGoodsBrief);
        }
        // 去掉已经不在售的商品
        List<TaoBaoGoodsBrief> listTaoKeGoods = null;
        try {
            listTaoKeGoods = TaoKeApiUtil.getBatchGoodsInfo(listGid);
        } catch (TaoKeApiException e) {
            e.printStackTrace();
        } catch (TaobaoGoodsDownException e) {
            e.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        }
        Map<String, TaoBaoGoodsBrief> goodsMap = new HashMap<>();
        if (listTaoKeGoods != null)
            for (TaoBaoGoodsBrief goods : listTaoKeGoods)
                goodsMap.put(goods.getAuctionId(), goods);
        for (int i = 0; i < goodsList.size(); i++) {
            if (goodsMap.get(goodsList.get(i).getAuctionId()) == null) {
                goodsList.remove(i--);
            }
        }
        // 过滤基本商品信息
        goodsList = taoBaoGoodsUpdateService.filterImportantTaoBaoGoods(goodsList);
        for (int i = 0; i < goodsList.size(); i++) {
            TaoBaoGoodsBrief goods = goodsList.get(i);
            BigDecimal price = TaoBaoUtil.getCouponPrice(goods);
            if (price.compareTo(new BigDecimal(10)) >= 0) {
                goodsList.remove(i--);
            }
        }
        result.setGoodsList(CommonGoodsFactory.createTaoBaoList(goodsList));
        return result;
    }
    /**
     * 拼多多热销
     *
     * @return
     */
    private CommonContentResult getPDDHotGoodsRankContent(String cid, int page) {
        cid = cid == null ? 0 + "" : cid;
        CommonContentResult result = new CommonContentResult();
        HaoDanKuListResult pddResult = HaoDanKuApiUtil.getInstance().getPDDHotGoods(Integer.parseInt(cid), page == 1 ? null : page); //qualityGoodsService.listFreeGoods((page - 1) * pageSize, pageSize);
        result.setCount(1000);
        List<CommonGoods> goodsList = new ArrayList<>();
        if (pddResult != null) {
            List<HaoDanKuPDDGoodsInfo> list = pddResult.getResultList();
            for (HaoDanKuPDDGoodsInfo goodsInfo : list) {
                goodsList.add(CommonGoodsFactory.create(goodsInfo));
            }
        }
        result.setGoodsList(goodsList);
        return result;
    }
    /**
     * 京东热销
     *
     * @return
     */
    private CommonContentResult getJDHotGoodsRankContent(String cid, int page) {
        CommonContentResult result = new CommonContentResult();
        HaoDanKuListResult pddResult = HaoDanKuApiUtil.getInstance().getJDHotGoods(Integer.parseInt(cid), page == 1 ? null : page); //qualityGoodsService.listFreeGoods((page - 1) * pageSize, pageSize);
        result.setCount(1000);
        List<CommonGoods> goodsList = new ArrayList<>();
        if (pddResult != null) {
            List<HaoDanKuJDGoodsInfo> list = pddResult.getResultList();
            for (HaoDanKuJDGoodsInfo goodsInfo : list) {
                goodsList.add(CommonGoodsFactory.create(goodsInfo));
            }
        }
        result.setGoodsList(goodsList);
        return result;
    }
    /**
     * 淘宝热销
     *
     * @return
     */
    private CommonContentResult getTBHotGoodsRankContent(String cid, int page) {
        CommonContentResult result = new CommonContentResult();
        HaoDanKuListResult pddResult = HaoDanKuApiUtil.getInstance().getTBHotGoods(Integer.parseInt(cid), page == 1 ? null : page); //qualityGoodsService.listFreeGoods((page - 1) * pageSize, pageSize);
        result.setCount(1000);
        List<CommonGoods> goodsList = new ArrayList<>();
        if (pddResult != null) {
            List<HDKGoodsDetail> list = pddResult.getResultList();
            for (HDKGoodsDetail goodsInfo : list) {
                goodsList.add(CommonGoodsFactory.create(goodsInfo));
            }
        }
        result.setGoodsList(goodsList);
        return result;
    }
}