yujian
2019-06-12 c007868c62c7da5c9ce1bf0e77d9e5f8619826e4
fanli/src/main/java/com/yeshi/fanli/service/impl/lable/QualityGoodsServiceImpl.java
@@ -1,13 +1,15 @@
package com.yeshi.fanli.service.impl.lable;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import javax.annotation.Resource;
import net.sf.json.JSONArray;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service;
import org.yeshi.utils.JsonUtil;
import org.yeshi.utils.taobao.TbImgUtil;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
@@ -15,7 +17,8 @@
import com.yeshi.fanli.dao.mybatis.lable.LabelGoodsMapper;
import com.yeshi.fanli.dao.mybatis.lable.QualityFactoryMapper;
import com.yeshi.fanli.dao.mybatis.taobao.TaoBaoGoodsBriefMapper;
import com.yeshi.fanli.dao.mybatis.taobao.TaoBaoGoodsBriefRecordMapper;
import com.yeshi.fanli.entity.bus.lable.Label;
import com.yeshi.fanli.entity.bus.lable.LabelGoods;
import com.yeshi.fanli.entity.bus.lable.QualityFactory;
import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
import com.yeshi.fanli.service.inter.goods.TaoBaoGoodsBriefService;
@@ -25,8 +28,8 @@
import com.yeshi.fanli.util.RedisManager;
import com.yeshi.fanli.util.StringUtil;
import com.yeshi.fanli.util.taobao.TaoBaoUtil;
import org.yeshi.utils.JsonUtil;
import org.yeshi.utils.taobao.TbImgUtil;
import net.sf.json.JSONArray;
@Service
public class QualityGoodsServiceImpl implements QualityGoodsService {
@@ -45,9 +48,6 @@
   private TaoBaoGoodsBriefMapper taoBaoGoodsBriefMapper;
   @Resource
   private TaoBaoUnionConfigService taoBaoUnionConfigService;
   @Resource
   private TaoBaoGoodsBriefRecordMapper taoBaoGoodsBriefRecordMapper;
   @Resource
   private TaoBaoClassRelationMapper taoBaoClassRelationMapper;
@@ -80,24 +80,13 @@
      return qualityFactoryMapper.countQueryByFlashSale();
   }
   
   /**
    * 今日必抢 - 9k9
    * @param start
    * @param count
    * @param systemCid
    * @param labId
    * @param sortField
    * @return
    */
   @Override
   public List<QualityFactory> listQueryEverydayRob(long start, int count, Long cid, Long labId, Integer sortField,Double startCouponAmount,Double endCouponAmount) {
      return qualityFactoryMapper.listQueryEverydayRob(start, count, cid, labId, sortField,startCouponAmount,endCouponAmount);
   public List<QualityFactory> listFlashSaleRandGoods() {
      return qualityFactoryMapper.listFlashSaleRandGoods();
   }
   @Override
   public long countQueryEverydayRob(Long cid, Long labId, Double startCouponAmount,Double endCouponAmount) {
      return qualityFactoryMapper.countQueryEverydayRob(cid, labId,startCouponAmount,endCouponAmount);
   }
   /**
    * 小金额查询:9.9/19.9/29.9/49.9
@@ -112,18 +101,20 @@
    * @return
    */
   @Override
   @Cacheable(value = "quality9K9Cache",key="'listQuerySmallAmount-'+#start+'-'+#key+'-'+#labId+'-'+#cids")
   public List<QualityFactory> listQuerySmallAmount(long start, int count, String key, Long labId, String cids) {
      return qualityFactoryMapper.listQuery(start, count, key, null, labId, cids,1);
   @Cacheable(value = "quality9K9Cache",key="'get9k9ClassGoods-'+#start+'-'+#biz30day+'-'+#zkPrice+'-'+#minQuanPrice+'-'+#maxQuanPrice+'-'+#cids")
   public List<QualityFactory> get9k9ClassGoods(long start, int count, Integer biz30day, BigDecimal zkPrice,
         BigDecimal minQuanPrice, BigDecimal maxQuanPrice, String cids) {
      return qualityFactoryMapper.get9k9ClassGoods(start, count, biz30day, zkPrice, minQuanPrice, maxQuanPrice, cids);
   }
   /**
    * 对应小金额查询:9.9/19.9/29.9/49.9
    */
   @Override
   @Cacheable(value = "quality9K9Cache",key="'countQuerySmallAmount-'+#key+'-'+#labId+'-'+#cids")
   public long countQuerySmallAmount(String key, Long labId, String cids) {
      return qualityFactoryMapper.countQuery(key, null, labId, cids,1);
   @Cacheable(value = "quality9K9Cache",key="'count9k9ClassGoods-'+#biz30day+'-'+#zkPrice+'-'+#minQuanPrice+'-'+#maxQuanPrice+'-'+#cids")
   public long count9k9ClassGoods(Integer biz30day, BigDecimal zkPrice, BigDecimal minQuanPrice,
         BigDecimal maxQuanPrice, String cids) {
      return qualityFactoryMapper.count9k9ClassGoods(biz30day, zkPrice, minQuanPrice, maxQuanPrice, cids);
   }
   /**
@@ -237,14 +228,18 @@
      return qualityFactoryMapper.countRecommendToIndex(proportion, commision, couponAmount, tkRate, couponRatio);
   }
   @Override
   public List<QualityFactory> listRecommendBykey(long start, int count, String key) {
      return qualityFactoryMapper.listRecommendBykey(start, count, key);
   public List<QualityFactory> listRecommendBykey(long start, int count, String key, Integer hasQuan,
         Integer userType, Double startprice, Double endprice, Double startTkRate, Double endTkRate, Integer sort) {
      return qualityFactoryMapper.listRecommendBykey(start, count, key, hasQuan, userType,
            startprice, endprice, startTkRate, endTkRate, sort);
   }
   @Override
   public long countRecommendBykey(String key) {
      return qualityFactoryMapper.countRecommendBykey(key);
   public long countRecommendBykey(String key, Integer hasQuan, Integer userType,
         Double startprice, Double endprice, Double startTkRate, Double endTkRate) {
      return qualityFactoryMapper.countRecommendBykey(key, hasQuan, userType, startprice, endprice, startTkRate, endTkRate);
   }
   
   
@@ -252,8 +247,8 @@
    * 首页最底部@商品信息流
    */
   @Override
   @Cacheable(value = "qualityCache",key="'listQueryToRecommend-'+#start+'-'+#proportion+'-'+#fcRate")
   public JSONArray getRecommendToIndex(long start, int count, String proportion, String fcRate) {
   @Cacheable(value = "qualityCache",key="'listQueryToRecommend-'+#start+'-'+#proportion")
   public JSONArray getRecommendToIndex(long start, int count, String proportion) {
      
      // 返利金额2元以上;
      Integer commision = 2; 
@@ -294,7 +289,7 @@
            String salesCountMidea = String.format("%.1f", sales / 10000);
            taoBaoGoodsBrief.setSalesCount(salesCountMidea + "万");
         } else {
            taoBaoGoodsBrief.setSalesCount(count + "");
            taoBaoGoodsBrief.setSalesCount(biz30day + "");
         }
         
         // 改变图片尺寸 
@@ -303,7 +298,7 @@
            taoBaoGoodsBrief.setPictUrl(TbImgUtil.getTBSize320Img(pictUrl));
         }
         
         array.add(gson.toJson(TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, proportion, fcRate, null)));
         array.add(gson.toJson(TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, proportion, null)));
      }
      return array;
@@ -330,5 +325,73 @@
      return countRecommend(pop, commision, couponAmount, tkRate, couponRatio);
   }
   
   @Override
   public List<QualityFactory> recommendByAuctionId(Long auctionId){
      List<Long> list = new ArrayList<Long>();
      list.add(auctionId);
      List<QualityFactory> listTaoBaoGoods = qualityFactoryMapper.listQueryByAuctionId(list);
      if (listTaoBaoGoods == null || listTaoBaoGoods.size() == 0) {
         return null;
      }
      QualityFactory qualityFactory = listTaoBaoGoods.get(0);
      TaoBaoGoodsBrief goodsBrief = qualityFactory.getTaoBaoGoodsBrief();
      if (goodsBrief == null) {
         return null;
      }
      List<LabelGoods> listLab = labelGoodsMapper.queryByGoodsId(0, 200, goodsBrief.getId());
      if (listLab == null || listLab.size() == 0) {
         return null;
      }
      // 标签id
      List<Long> listId = new ArrayList<Long>();
      for (LabelGoods labelGoods: listLab) {
         Label label = labelGoods.getLabel();
         if (label != null) {
            listId.add(label.getId());
         }
      }
      if (listId.size() == 0) {
         return null;
      }
      return qualityFactoryMapper.listQueryBylabIDs(0, 10, listId, goodsBrief.getId(),qualityFactory.getSystemCid());
   }
   
   @Override
   public List<QualityFactory> listFreeGoods(long start, int count) {
      return qualityFactoryMapper.listFreeGoods(start, count);
   }
   @Override
   public long countFreeGoods() {
      return qualityFactoryMapper.countFreeGoods();
   }
   @Override
   public List<QualityFactory> listByShopId(long start, int count, Long shopId) {
      return qualityFactoryMapper.listByShopId(start, count, shopId);
   }
   @Override
   public long countByShopId(Long shopId) {
      return qualityFactoryMapper.countByShopId(shopId);
   }
   @Override
   public List<QualityFactory> listQueryEverydayRob(long start, int count,   BigDecimal zkPrice,
         BigDecimal minQuanPrice, BigDecimal maxQuanPrice) {
      return qualityFactoryMapper.listQueryEverydayRob(start, count, zkPrice, minQuanPrice, maxQuanPrice);
   }
   @Override
   public long countQueryEverydayRob(BigDecimal zkPrice, BigDecimal minQuanPrice, BigDecimal maxQuanPrice) {
      return qualityFactoryMapper.countQueryEverydayRob(zkPrice, minQuanPrice, maxQuanPrice);
   }
}