yujian
2019-07-19 8222e8b237c5dfb0affcdc03335bfadc06403bf8
fanli/src/main/java/com/yeshi/fanli/service/impl/goods/CommonTemplateContentServiceImpl.java
@@ -2,10 +2,12 @@
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;
@@ -14,8 +16,11 @@
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;
@@ -26,6 +31,38 @@
   @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) {
@@ -48,44 +85,75 @@
         navList.add(new CommonContentNav("3", "30~50元券"));
         navList.add(new CommonContentNav("4", "50元以上券"));
      } else if (type == CommonContentTypeEnum.juJia) {
         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", "返利比"));
         navList = getCommonNav();
      } else if (type == CommonContentTypeEnum.meiShi) {
         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", "返利比"));
         navList = getCommonNav();
      } else if (type == CommonContentTypeEnum.muYin) {
         navList.add(new CommonContentNav("1", "精选"));
         navList.add(new CommonContentNav("2", "备孕"));
         navList.add(new CommonContentNav("3", "0~6月"));
         navList.add(new CommonContentNav("4", "7~12月"));
         navList.add(new CommonContentNav("5", "1~3岁"));
         navList.add(new CommonContentNav("6", "4~6岁"));
         navList.add(new CommonContentNav("7", "7~12岁"));
         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.add(new CommonContentNav("1", "综合"));
         navList.add(new CommonContentNav("2", "最新"));
         navList.add(new CommonContentNav("3", "热卖"));
         navList.add(new CommonContentNav("4", "销量"));
         navList.add(new CommonContentNav("5", "返利比"));
         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();
      } else if (type == CommonContentTypeEnum.chaoPinReMai) {
         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)
      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) {
      if (pageSize == 20)
         pageSize = 50;
      DaTaoKeGoodsResult result = null;
      if ("-1".equalsIgnoreCase(cid)) {
         result = DaTaoKeApiUtil.search("", null, null, new BigDecimal("10"), page, pageSize,
@@ -112,4 +180,316 @@
      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("", cidList, 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("", cidList, 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);
   }
}