admin
2020-11-09 2147d023563a7c9d05d97547c00d6b0162c0644c
fanli/src/main/java/com/yeshi/fanli/service/impl/lable/TaoKeGoodsServiceImpl.java
@@ -9,6 +9,7 @@
import javax.annotation.Resource;
import com.yeshi.fanli.entity.SystemEnum;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service;
import org.yeshi.utils.JsonUtil;
@@ -16,20 +17,24 @@
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.yeshi.fanli.dto.ConfigParamsDTO;
import com.yeshi.fanli.entity.bus.lable.QualityFactory;
import com.yeshi.fanli.entity.taobao.SearchFilter;
import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBriefExtra;
import com.yeshi.goods.facade.entity.taobao.TaoBaoGoodsBrief;
import com.yeshi.goods.facade.entity.taobao.TaoBaoGoodsBriefExtra;
import com.yeshi.fanli.entity.taobao.TaoBaoSearchNav;
import com.yeshi.fanli.entity.taobao.TaoBaoSearchResult;
import com.yeshi.fanli.entity.taobao.TaoBaoShopInfo;
import com.yeshi.fanli.service.inter.hongbao.HongBaoManageService;
import com.yeshi.common.entity.taobao.TaoBaoShopInfo;
import com.yeshi.fanli.service.inter.lable.QualityGoodsService;
import com.yeshi.fanli.service.inter.lable.TaoKeGoodsService;
import com.yeshi.fanli.service.inter.order.OrderHongBaoMoneyComputeService;
import com.yeshi.fanli.service.inter.order.config.HongBaoManageService;
import com.yeshi.fanli.service.inter.taobao.TaoBaoShopService;
import com.yeshi.fanli.util.StringUtil;
import com.yeshi.fanli.util.factory.goods.GoodsDetailVOFactory;
import com.yeshi.fanli.util.taobao.TaoBaoUtil;
import com.yeshi.fanli.util.taobao.TaoKeApiUtil;
import com.yeshi.fanli.vo.goods.GoodsDetailVO;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
@@ -38,7 +43,10 @@
public class TaoKeGoodsServiceImpl implements TaoKeGoodsService {
   @Resource
   private HongBaoManageService manageService;
   private HongBaoManageService hongBaoManageService;
   @Resource
   private OrderHongBaoMoneyComputeService orderHongBaoMoneyComputeService;
   @Resource
   private TaoBaoShopService taoBaoShopService;
@@ -61,7 +69,7 @@
   @Override
   @Cacheable(value = "taoKeMaterialCache", key = "'getBrandsGoods-'+#materialId +'-'+#pageIndex")
   public JSONObject getBrandsGoods(Integer materialId, int pageIndex, int pageSize) throws Exception {
   public JSONObject getBrandsGoods(Integer materialId, int pageIndex, int pageSize, SystemEnum system) throws Exception {
      TaoBaoSearchResult result = TaoKeApiUtil.getMaterialByMaterialId(materialId, pageIndex, pageSize);
@@ -78,7 +86,7 @@
      Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder())
            .excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create();
      BigDecimal proportion = manageService.getFanLiRate();
      BigDecimal proportion = hongBaoManageService.getFanLiRate(system);
      listGoods.parallelStream().forEach(taoBaoGoodsBrief -> {
@@ -184,11 +192,11 @@
   }
   @Override
   @Cacheable(value = "searchWuLiaoCache", key = "'searchWuLiao-'+#sf")
   public JSONObject searchWuLiao(SearchFilter sf) {
   @Cacheable(value = "searchWuLiaoCache", key = "'searchWuLiao-'+#sf+'-'+system")
   public JSONObject searchWuLiao(SearchFilter sf,SystemEnum system) {
      // 淘宝物料接口查询
      TaoBaoSearchResult result = TaoKeApiUtil.searchWuLiao(sf);
      TaoBaoSearchResult result = TaoKeApiUtil.searchWuLiao(sf,null,null);
      List<TaoBaoSearchNav> navList = TaoBaoUtil.getBaseNav();
      if (result.getNavList() != null)
@@ -205,7 +213,7 @@
      int fh = sf.getHongbao();
      boolean ft = sf.isTmall();
      BigDecimal proportion = manageService.getFanLiRate();
      BigDecimal proportion = hongBaoManageService.getFanLiRate(system);
      if (fq == 0 && fh == 0 && !ft) {
         if (result != null && result.getTaoBaoGoodsBriefs() != null)
@@ -269,13 +277,81 @@
      return data;
   }
   @Override
   @Cacheable(value = "searchWuLiaoCache", key = "'searchWuLiaoList-'+#sf")
   public List<TaoBaoGoodsBrief> searchWuLiaoList(SearchFilter sf) {
   @Cacheable(value = "searchWuLiaoCache", key = "'searchWuLiaoV2-'+#sf+'-'+#platform+'-'+#version+'-'+#system")
   public JSONObject searchWuLiaoV2(SearchFilter sf,String platform,String version,SystemEnum system) {
      // 淘宝物料接口查询
      TaoBaoSearchResult result = TaoKeApiUtil.searchWuLiao(sf);
      TaoBaoSearchResult result = TaoKeApiUtil.searchWuLiao(sf,null,null);
      List<TaoBaoSearchNav> navList = TaoBaoUtil.getBaseNav();
      if (result.getNavList() != null)
         navList.addAll(result.getNavList());
      Gson gson = new GsonBuilder().create();
      JSONObject data = new JSONObject();
      data.put("nav", gson.toJson(navList));
      List<GoodsDetailVO> re = new ArrayList<GoodsDetailVO>();
      List<TaoBaoGoodsBrief> taoBaoGoodsBriefs = result.getTaoBaoGoodsBriefs();
      int fq = sf.getQuan();
      int fh = sf.getHongbao();
      boolean ft = sf.isTmall();
       ConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate(platform, version,system);
      if (fq == 0 && fh == 0 && !ft) {
         if (result != null && result.getTaoBaoGoodsBriefs() != null)
            for (TaoBaoGoodsBrief bf : result.getTaoBaoGoodsBriefs()) {
               int count = bf.getBiz30day();
               String startBiz30day = sf.getStartBiz30day();
               if (!StringUtil.isNullOrEmpty(startBiz30day)) {
                  int biz30day = Integer.parseInt(startBiz30day);
                  if (count < biz30day) {
                     continue;
                  }
               }
               GoodsDetailVO goodsDetailVO = GoodsDetailVOFactory.convertTaoBao(bf, paramsDTO);
               re.add(goodsDetailVO);
            }
      } else {
         if (taoBaoGoodsBriefs != null)
            for (TaoBaoGoodsBrief taoBaoGoodsBrief : taoBaoGoodsBriefs) {
               int count = taoBaoGoodsBrief.getBiz30day();
               String startBiz30day = sf.getStartBiz30day();
               if (!StringUtil.isNullOrEmpty(startBiz30day)) {
                  int biz30day = Integer.parseInt(startBiz30day);
                  if (count < biz30day) {
                     break;
                  }
               }
               GoodsDetailVO goodsDetailVO = GoodsDetailVOFactory.convertTaoBao(taoBaoGoodsBrief, paramsDTO);
               re.add(goodsDetailVO);
            }
      }
      Gson gson2 = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder())
            .excludeFieldsWithoutExposeAnnotation().create();
      data.put("result", gson2.toJson(re));
      data.put("count", result.getTaoBaoHead().getDocsfound());
      return data;
   }
   @Override
   @Cacheable(value = "searchWuLiaoCache", key = "'searchWuLiaoList-'+#sf+'-'+system")
   public List<TaoBaoGoodsBrief> searchWuLiaoList(SearchFilter sf,SystemEnum system) {
      // 淘宝物料接口查询
      TaoBaoSearchResult result = TaoKeApiUtil.searchWuLiao(sf,null,null);
      if (result == null)
         return null;
@@ -284,7 +360,7 @@
   @Override
   public JSONObject listByWuLiao(int page, String key, String cateIds, String filterParams, String order,
         String startprice, String endprice, String searchParam) {
         String startprice, String endprice, String searchParam,SystemEnum system) {
      SearchFilter sf = new SearchFilter();
      sf.setKey(key);
@@ -395,7 +471,7 @@
      }
      // 淘宝物料接口查询
      TaoBaoSearchResult result = TaoKeApiUtil.searchWuLiao(sf);
      TaoBaoSearchResult result = TaoKeApiUtil.searchWuLiao(sf,null,null);
      List<TaoBaoSearchNav> navList = TaoBaoUtil.getBaseNav();
      if (result.getNavList() != null)
@@ -412,7 +488,7 @@
      int fh = sf.getHongbao();
      boolean ft = sf.isTmall();
      BigDecimal proportion = manageService.getFanLiRate();
      BigDecimal proportion = hongBaoManageService.getFanLiRate(system);
      if (fq == 0 && fh == 0 && !ft) {
         if (result != null && result.getTaoBaoGoodsBriefs() != null)
@@ -560,13 +636,13 @@
   @Override
   public JSONObject listQualityGoods(List<QualityFactory> listQuality, List<TaoBaoGoodsBrief> searchWuLiaoList,
         Map<String, String> map) {
         Map<String, String> map,SystemEnum system) {
      JSONArray array = new JSONArray();
      Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder())
            .excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create();
      BigDecimal proportion = manageService.getFanLiRate();
      BigDecimal proportion = hongBaoManageService.getFanLiRate(system);
      /* 遍历列表数据 */
      for (QualityFactory selectionGoods : listQuality) {