yujian
2019-08-27 d8359ddb48dab5cc797a9d552e11fde571f4920c
fanli/src/main/java/com/yeshi/fanli/service/impl/goods/CommonTemplateContentServiceImpl.java
@@ -3,13 +3,18 @@
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 org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service;
import org.yeshi.utils.JsonUtil;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.yeshi.fanli.dto.common.CommonContentNav;
import com.yeshi.fanli.dto.common.CommonContentResult;
import com.yeshi.fanli.dto.common.CommonContentTypeEnum;
@@ -17,18 +22,28 @@
import com.yeshi.fanli.entity.bus.clazz.GoodsClass;
import com.yeshi.fanli.entity.bus.lable.QualityFactory;
import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBriefExtra;
import com.yeshi.fanli.entity.taobao.TaoBaoHongBaoInfo;
import com.yeshi.fanli.entity.taobao.TaobaoMeterial;
import com.yeshi.fanli.entity.taobao.dataoke.DaTaoKeDetailV2;
import com.yeshi.fanli.exception.taobao.TaoKeApiException;
import com.yeshi.fanli.exception.taobao.TaobaoGoodsDownException;
import com.yeshi.fanli.log.LogHelper;
import com.yeshi.fanli.service.inter.goods.CommonTemplateContentService;
import com.yeshi.fanli.service.inter.hongbao.HongBaoManageService;
import com.yeshi.fanli.service.inter.lable.QualityGoodsService;
import com.yeshi.fanli.service.inter.lable.TaoKeGoodsService;
import com.yeshi.fanli.service.inter.taobao.TaoBaoGoodsUpdateService;
import com.yeshi.fanli.service.inter.taobao.TaobaoMeterialService;
import com.yeshi.fanli.service.inter.taobao.dataoke.DaTaoKeGoodsDetailService;
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.dataoke.DaTaoKeApiUtil;
import com.yeshi.fanli.util.taobao.DaTaoKeUtil;
import com.yeshi.fanli.util.taobao.TaoBaoUtil;
import com.yeshi.fanli.util.taobao.TaoKeApiUtil;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
@Service
public class CommonTemplateContentServiceImpl implements CommonTemplateContentService {
@@ -47,6 +62,9 @@
   @Resource
   private QualityGoodsService qualityGoodsService;
   @Resource
   private TaoBaoGoodsUpdateService taoBaoGoodsUpdateService;
   private static List<CommonContentNav> getCommonNav() {
      List<CommonContentNav> navList = new ArrayList<>();
@@ -126,6 +144,8 @@
         navList = getCommonNav();
      } else if (type == CommonContentTypeEnum.chaoPinReMai) {
         navList = getCommonNav();
      } else if (type == CommonContentTypeEnum.mianDan) {
         navList = new ArrayList<>();
      }
      return navList;
@@ -134,36 +154,46 @@
   @Cacheable(value = "commonContentCache", key = "#type+'-'+#cid+'-'+#page+'-'+#pageSize")
   @Override
   public CommonContentResult getContentList(CommonContentTypeEnum type, String cid, int page, int pageSize) {
      CommonContentResult result = null;
      if (type == CommonContentTypeEnum._9k9) {
         return get9K9Content(cid, page, pageSize);
         result = get9K9Content(cid, page, pageSize);
      } else if (type == CommonContentTypeEnum.juJia) {
         return getJuJiaShengHuoContent(cid, page, pageSize);
         result = getJuJiaShengHuoContent(cid, page, pageSize);
      } else if (type == CommonContentTypeEnum.muYin) {
         return getMuYinJingXuanContent(cid, page, pageSize);
         result = getMuYinJingXuanContent(cid, page, pageSize);
      } else if (type == CommonContentTypeEnum.meiShi) {
         return getYouXuanMeiShiContent(cid, page, pageSize);
         result = getYouXuanMeiShiContent(cid, page, pageSize);
      } else if (type == CommonContentTypeEnum.chuanYiDaPei) {
         return getChuanYiDaPeiContent(cid, page, pageSize);
         result = getChuanYiDaPeiContent(cid, page, pageSize);
      } else if (type == CommonContentTypeEnum.meiZhuangGehu) {
         return getMeiZhuangGeHuContent(cid, page, pageSize);
         result = getMeiZhuangGeHuContent(cid, page, pageSize);
      } else if (type == CommonContentTypeEnum.jingPinXieBao) {
         return getJingPinXieBaoContent(cid, page, pageSize);
         result = getJingPinXieBaoContent(cid, page, pageSize);
      } else if (type == CommonContentTypeEnum.chaoNanReMai) {
         return getChaoNanReMaiContent(cid, page, pageSize);
         result = getChaoNanReMaiContent(cid, page, pageSize);
      } else if (type == CommonContentTypeEnum.shuMaShouJi) {
         return getShuMaShouJiContent(cid, page, pageSize);
         result = getShuMaShouJiContent(cid, page, pageSize);
      } else if (type == CommonContentTypeEnum.yunDongKuXie) {
         return getYunDongKuXieContent(cid, page, pageSize);
         result = getYunDongKuXieContent(cid, page, pageSize);
      } else if (type == CommonContentTypeEnum.qiCheHuWai) {
         return getQiCheHuWaiContent(cid, page, pageSize);
         result = getQiCheHuWaiContent(cid, page, pageSize);
      } else if (type == CommonContentTypeEnum.chaoPinReMai) {
         return getChaoPinReMaiContent(cid, page, pageSize);
         result = getChaoPinReMaiContent(cid, page, pageSize);
      } else if (type == CommonContentTypeEnum.chaoSheng) {
         return getCaoShengContent(cid, page, pageSize);
         result = getCaoShengContent(cid, page, pageSize);
      } else if (type == CommonContentTypeEnum.haoQuan) {
         return getHaoQuanContent(cid, page, pageSize);
         result = getHaoQuanContent(cid, page, pageSize);
      } else if (type == CommonContentTypeEnum.mianDan) {
         result = getMianDanContent(page, pageSize);
      }
      return null;
      if (result != null) {// 商品信息过滤
         List<TaoBaoGoodsBrief> goodsList = taoBaoGoodsUpdateService
               .filterImportantTaoBaoGoods(result.getGoodsList());
         result.setGoodsList(goodsList);
      }
      return result;
   }
   /**
@@ -643,4 +673,57 @@
      return new CommonContentResult(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<Long> listGid = new ArrayList<Long>();
      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<Long, TaoBaoGoodsBrief> goodsMap = new HashMap<>();
      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.getAfterUseCouplePrice(goods);
         if (price.compareTo(new BigDecimal(10)) >= 0) {
            goodsList.remove(i--);
         }
      }
      result.setGoodsList(goodsList);
      return result;
   }
}