admin
2020-06-15 3e4ef41ffacd7f5fda2e81c3810cd11a6375b83c
fanli/src/main/java/com/yeshi/fanli/util/factory/CommonGoodsFactory.java
@@ -2,15 +2,22 @@
import java.math.BigDecimal;
import com.alibaba.fastjson.JSONObject;
import com.yeshi.fanli.dto.common.CategoryInfoDTO;
import com.yeshi.fanli.dto.common.GoodsOtherInfoDTO;
import com.yeshi.fanli.dto.jd.JDCategoryInfo;
import com.yeshi.fanli.dto.jd.JDCommissionInfo;
import com.yeshi.fanli.dto.jd.JDCouponInfo;
import com.yeshi.fanli.dto.jd.JDShopInfo;
import com.yeshi.fanli.dto.pdd.PDDGoodsDetail;
import com.yeshi.fanli.dto.suning.SuningGoodsInfo;
import com.yeshi.fanli.dto.vip.goods.VIPGoodsInfo;
import com.yeshi.fanli.entity.goods.CommonGoods;
import com.yeshi.fanli.entity.jd.JDGoods;
import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
import com.yeshi.fanli.util.MoneyBigDecimalUtil;
import com.yeshi.fanli.util.StringUtil;
import com.yeshi.fanli.util.jd.JDUtil;
public class CommonGoodsFactory {
@@ -50,10 +57,25 @@
      cg.setVideoUrl(null);
      cg.setState(goods.getState());
      cg.setMaterialLibType(goods.getMaterialLibType());
      // 分类信息
      CategoryInfoDTO categoryInfo = new CategoryInfoDTO();
      Integer rootCatId = goods.getRootCatId();
      if (rootCatId != null) {
         categoryInfo.setCid1(Long.parseLong(rootCatId.toString()));
      }
      categoryInfo.setCid1Name(goods.getRootCategoryName());
      Integer leafCatId = goods.getLeafCatId();
      if (leafCatId != null) {
         categoryInfo.setCid2(Long.parseLong(leafCatId.toString()));
      }
      categoryInfo.setCid2Name(goods.getLeafName());
      cg.setCategoryInfo(JSONObject.toJSON(categoryInfo).toString());
      return cg;
   }
   /**
    * 淘宝商品构造
    * 
@@ -65,7 +87,7 @@
         return null;
      CommonGoods cg = new CommonGoods();
      JDCouponInfo couponInfo = goods.getCouponInfo();
      JDCouponInfo couponInfo = JDUtil.getShowCouponInfo(goods);
      if (couponInfo != null) {
         cg.setCouponStartPrice(couponInfo.getQuota());
         BigDecimal discount = couponInfo.getDiscount();
@@ -78,44 +100,65 @@
         } else {
            cg.setCouponAmount(new BigDecimal(0));
         }
         cg.setCouponLeftCount(1);
         cg.setCouponTotalCount(1);
      }
      JDCommissionInfo commissionInfo = goods.getCommissionInfo();
      if (commissionInfo != null) {
         cg.setRate(commissionInfo.getCommissionShare());
      } else {
         cg.setRate(new BigDecimal(0));
      }
      JDShopInfo shopInfo = goods.getShopInfo();
      if (shopInfo != null) {
         cg.setSellerId(Long.parseLong(shopInfo.getShopId().toString()));
         cg.setSellerName(shopInfo.getShopName()== null? "" : shopInfo.getShopName());
         cg.setSellerName(shopInfo.getShopName() == null ? "" : shopInfo.getShopName());
      }
      cg.setGoodsId(goods.getSkuId());
      cg.setTitle(goods.getSkuName());
      cg.setGoodsType(CommonGoods.GOODS_TYPE_JD);
      cg.setPicture(goods.getPicUrl());
      cg.setPrice(goods.getPrice());
      cg.setSales(Integer.parseInt(goods.getInOrderCount30Days().toString()));
      String owner = goods.getOwner();
      if (StringUtil.isNullOrEmpty(owner) && "g".equalsIgnoreCase(owner)) {
         cg.setShopType(CommonGoods.SHOP_TYPE_JD_SELF); // 京东自营
      } else {
         cg.setShopType(CommonGoods.SHOP_TYPE_JD); // 京东
      }
      cg.setState(CommonGoods.STATE_NORMAL);
      // 其他信息
      GoodsOtherInfoDTO other = new GoodsOtherInfoDTO();
      other.setOwner(owner); // 是否自营
      other.setPinGouInfo(goods.getPinGouInfo()); // 拼购信息
      other.setIsFreeShipping(goods.getIsFreeShipping()); // 是否包邮
      cg.setOtherInfo(JSONObject.toJSON(other).toString());
      // 分类信息
      JDCategoryInfo categoryJD = goods.getCategoryInfo();
      if (categoryJD != null) {
         CategoryInfoDTO categoryInfo = new CategoryInfoDTO();
         categoryInfo.setCid1(categoryJD.getCid1());
         categoryInfo.setCid1Name(categoryJD.getCid1Name());
         categoryInfo.setCid2(categoryJD.getCid2());
         categoryInfo.setCid2Name(categoryJD.getCid2Name());
         categoryInfo.setCid3(categoryJD.getCid3());
         categoryInfo.setCid3Name(categoryJD.getCid3Name());
         cg.setCategoryInfo(JSONObject.toJSON(categoryInfo).toString());
      }
      // 保留字段
      cg.setVideoCover(null);
      cg.setVideoUrl(null);
      return cg;
   }
   public static CommonGoods create(PDDGoodsDetail goods) {
      if (goods == null)
         return null;
@@ -147,17 +190,26 @@
      cg.setGoodsType(CommonGoods.GOODS_TYPE_PDD);
      cg.setPicture(goods.getGoodsThumbnailUrl());
      cg.setPictureWhite(null);
      cg.setPrice(MoneyBigDecimalUtil.div(new BigDecimal(goods.getMinNormalPrice()), new BigDecimal(100)));
      cg.setPrice(MoneyBigDecimalUtil.div(new BigDecimal(goods.getMinGroupPrice()), new BigDecimal(100)));
      String salesTip = goods.getSalesTip();
      if (StringUtil.isNullOrEmpty(salesTip)) {
         salesTip = "0";
      } else {
         int indexOf = salesTip.indexOf("+");
         if (indexOf > 0) {
            salesTip = salesTip.substring(0, indexOf);
         }
      }
      int totalSales = 0;
      if (salesTip.contains("万")) {
         salesTip = salesTip.replace("万", "") + "0000";
         salesTip = salesTip.substring(0, salesTip.indexOf("万"));
         totalSales = (int) (Float.parseFloat(salesTip) * 10000);
      } else {
         totalSales = Integer.parseInt(salesTip);
      }
      cg.setSales(Integer.parseInt(salesTip));
      cg.setSales(totalSales);
      cg.setRate(MoneyBigDecimalUtil.div(new BigDecimal(goods.getPromotionRate()), new BigDecimal(10)));
      cg.setSellerId(goods.getMallId());
      cg.setSellerName(goods.getMallName());
@@ -169,6 +221,116 @@
      cg.setVideoUrl(null);
      cg.setState(goods.getState());
      cg.setMaterialLibType(1);
      // 分类信息
      CategoryInfoDTO categoryInfo = new CategoryInfoDTO();
      categoryInfo.setCid1(goods.getCategoryId());
      categoryInfo.setCid1Name(goods.getCategoryName());
      cg.setCategoryInfo(JSONObject.toJSON(categoryInfo).toString());
      return cg;
   }
   public static CommonGoods create(VIPGoodsInfo goods) {
      if (goods == null)
         return null;
      CommonGoods cg = new CommonGoods();
      // 折扣信息
      cg.setCouponInfo(new BigDecimal(goods.getDiscount()) + "");
      cg.setCouponLeftCount(0);
      cg.setCouponStartPrice(new BigDecimal(0));
      cg.setCouponAmount(new BigDecimal(0));
      cg.setCouponTotalCount(0);
      cg.setGoodsId(Long.parseLong(goods.getGoodsId()));
      cg.setGoodsType(CommonGoods.GOODS_TYPE_VIP);
      cg.setPicture(goods.getGoodsThumbUrl());
      cg.setPictureWhite(null);
      cg.setPrice(new BigDecimal(goods.getMarketPrice()));
      int totalSales = 0;
      cg.setSales(totalSales);
      cg.setRate(new BigDecimal(goods.getCommissionRate()));
      cg.setSellerId(goods.getBrandId());
      cg.setSellerName(goods.getBrandName());
      cg.setShopType(CommonGoods.SHOP_TYPE_VIP);
      cg.setState(CommonGoods.STATE_NORMAL);
      cg.setTitle(goods.getGoodsName());
      // 保留字段
      cg.setVideoCover(null);
      cg.setVideoUrl(null);
      cg.setState(goods.getStatus() == 1 ? CommonGoods.STATE_NORMAL : CommonGoods.STATE_OFFLINE);
      cg.setMaterialLibType(1);
      // 分类信息
      CategoryInfoDTO categoryInfo = new CategoryInfoDTO();
      categoryInfo.setCid1(goods.getCategoryId());
      categoryInfo.setCid1Name(goods.getCategoryName());
      cg.setCategoryInfo(JSONObject.toJSON(categoryInfo).toString());
      //存放折扣价
      cg.setCouponStartPrice(new BigDecimal(goods.getVipPrice()));
      cg.setCouponInfo(MoneyBigDecimalUtil.getWithNoZera(MoneyBigDecimalUtil.mul(new BigDecimal(goods.getDiscount()), new BigDecimal(10))) + "折");
      return cg;
   }
   public static CommonGoods create(SuningGoodsInfo goods) {
      if (goods == null)
         return null;
      CommonGoods cg = new CommonGoods();
      if (goods.getCouponInfo() != null && !StringUtil.isNullOrEmpty(goods.getCouponInfo().getCouponUrl())) {// 有券
         cg.setCouponInfo(String.format("满%s元减%s元", goods.getCouponInfo().getBounsLimit(),
               goods.getCouponInfo().getCouponValue()));
         cg.setCouponAmount(new BigDecimal(goods.getCouponInfo().getCouponValue()));
         if (goods.getCouponInfo().getCouponCount() == null) {
            cg.setCouponLeftCount(500000);
            cg.setCouponTotalCount(500000);
         } else {
            cg.setCouponLeftCount(Integer.parseInt(goods.getCouponInfo().getCouponCount()));
            cg.setCouponTotalCount(Integer.parseInt(goods.getCouponInfo().getCouponCount()));
         }
         cg.setCouponStartPrice(new BigDecimal(goods.getCouponInfo().getBounsLimit()));
      } else {
         cg.setCouponLeftCount(0);
         cg.setCouponTotalCount(0);
         cg.setCouponAmount(new BigDecimal(0));
      }
      cg.setGoodsId(Long.parseLong(goods.getCommodityInfo().getCommodityCode()));
      cg.setGoodsType(CommonGoods.GOODS_TYPE_SUNING);
      if (goods.getCommodityInfo().getPictureUrl() != null && goods.getCommodityInfo().getPictureUrl().size() > 0)
         cg.setPicture(goods.getCommodityInfo().getPictureUrl().get(0).getPicUrl());
      cg.setPictureWhite(null);
      cg.setPrice(new BigDecimal(goods.getCommodityInfo().getSnPrice()));
      cg.setSales(Integer.parseInt(goods.getCommodityInfo().getMonthSales()));
      cg.setRate(new BigDecimal(goods.getCommodityInfo().getRate()));
      cg.setSellerId(Long.parseLong(goods.getCommodityInfo().getSupplierCode()));
      cg.setSellerName(goods.getCommodityInfo().getSupplierName());
      cg.setShopType(CommonGoods.SHOP_TYPE_SUNING);
      cg.setState(CommonGoods.STATE_NORMAL);
      cg.setTitle(goods.getCommodityInfo().getCommodityName());
      // 保留字段
      cg.setVideoCover(null);
      cg.setVideoUrl(null);
      cg.setState(0);
      cg.setMaterialLibType(1);
      // 分类信息
      CategoryInfoDTO categoryInfo = new CategoryInfoDTO();
      categoryInfo.setCid1(Long.parseLong(goods.getCategoryInfo().getFirstSaleCategoryId()));
      categoryInfo.setCid1Name(goods.getCategoryInfo().getFirstSaleCategoryName());
      categoryInfo.setCid2(Long.parseLong(goods.getCategoryInfo().getSecondSaleCategoryId()));
      categoryInfo.setCid2Name(goods.getCategoryInfo().getSecondSaleCategoryName());
      cg.setCategoryInfo(JSONObject.toJSON(categoryInfo).toString());
      return cg;
   }