admin
2020-05-20 98b1a0affd69bbe63223c21fdd2c404e8bedfccb
fanli/src/main/java/com/yeshi/fanli/util/taobao/DaTaoKeUtil.java
@@ -21,6 +21,7 @@
import com.yeshi.fanli.dto.dataoke.DingDongQiangDTO;
import com.yeshi.fanli.dto.dataoke.DingDongTime;
import com.yeshi.fanli.dto.taobao.DaTaoKeFilterResult;
import com.yeshi.fanli.entity.bus.clazz.GoodsClass;
import com.yeshi.fanli.entity.taobao.TaoBaoCoupon;
import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
@@ -30,6 +31,7 @@
import com.yeshi.fanli.tag.PageEntity;
import com.yeshi.fanli.util.MoneyBigDecimalUtil;
import com.yeshi.fanli.util.StringUtil;
import com.yeshi.fanli.util.TimeUtil;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
@@ -131,41 +133,10 @@
         "🕦",// 十一点半
   };
   static final String[] evaluateEmojis = new String[] {
      "💟",
      "🌸",
      "🍸",
      "🍺",
      "📢",
      "❤",
      "💝",
      "💋",
      "👛",
      "🐾",
      "🌹",
      "🔥",
      "🎉",
      "🎁",
      "🍥",
      "🍭",
      "🌺",
      "👑",
      "✨",
      "💫",
      "🍻",
      "🎈",
      "💥",
      "💕",
      "💞",
      "💰",
      "💌",
      "💭",
      "🌼",
      "🍀",
   };
   static final String[] evaluateEmojis = new String[] { "💟", "🌸", "🍸", "🍺", "📢", "❤", "💝", "💋", "👛", "🐾",
         "🌹", "🔥", "🎉", "🎁", "🍥", "🍭", "🌺", "👑", "✨", "💫", "🍻", "🎈", "💥", "💕", "💞", "💰", "💌", "💭",
         "🌼", "🍀" };
   public static List<GoodsClass> goodsClasses;
   static {
      goodsClasses = new ArrayList<>();
@@ -555,11 +526,10 @@
      return commonEmojis[(int) (Math.random() * commonEmojis.length)];
   }
   public static String getEvaluateEmojis() {
      return evaluateEmojis[(int) (Math.random() * evaluateEmojis.length)];
   }
   public static String getDesc(DaTaoKeDetailV2 detail) {
      // 标题+券后价+包邮+描述
@@ -586,14 +556,99 @@
      return desc;
   }
   public static TaoBaoGoodsBrief filterTaoBaoGoods(TaoBaoGoodsBrief goods, DaTaoKeDetailV2 detail) {
      if (detail != null && goods != null) {
   public static DaTaoKeFilterResult filterTaoBaoGoods(TaoBaoGoodsBrief goods, DaTaoKeDetailV2 v2,
         boolean filterCouponInfo) {
      if (v2 != null && goods != null) {
         // 重新设置标题与券价格
         goods.setTitle(detail.getDtitle());
         if (!StringUtil.isNullOrEmpty(detail.getMainPic()))
            goods.setPictUrlWhite(detail.getMainPic());
         goods.setTitle(v2.getDtitle());
         if (!StringUtil.isNullOrEmpty(v2.getMainPic()))
            goods.setPictUrlWhite(v2.getMainPic());
         // 设置简介
         goods.setDescription(v2.getDesc());
         // 如果没有券信息,则提供券信息
         if (canFilterCouponInfo(goods, v2)) {
            try {
               long time = System.currentTimeMillis();
               // 券在有效期内并且还有剩余券
               if (time >= TimeUtil.convertToTimeTemp(v2.getCouponStartTime(), "yyyy-MM-dd HH:mm:ss")
                     && time <= TimeUtil.convertToTimeTemp(v2.getCouponEndTime(), "yyyy-MM-dd HH:mm:ss")
                     && (v2.getCouponTotalNum() - v2.getCouponReceiveNum()) > 0) {
                  goods.setCouponStartFee(v2.getOriginalPrice());
                  goods.setCouponEffectiveEndTime(TimeUtil.getGernalTime(
                        TimeUtil.convertToTimeTemp(v2.getCouponEndTime(), "yyyy-MM-dd HH:mm:ss"),
                        "yyyy-MM-dd"));
                  goods.setCouponEffectiveStartTime(TimeUtil.getGernalTime(
                        TimeUtil.convertToTimeTemp(v2.getCouponStartTime(), "yyyy-MM-dd HH:mm:ss"),
                        "yyyy-MM-dd"));
                  goods.setCouponAmount(v2.getCouponPrice());
                  goods.setCouponInfo(
                        String.format("满%s元减%s元", v2.getOriginalPrice() + "", v2.getCouponPrice() + ""));
                  goods.setCouponLeftCount(v2.getCouponTotalNum() - v2.getCouponReceiveNum());
                  goods.setCouponLink(v2.getCouponLink());
                  goods.setCouponTotalCount(v2.getCouponTotalNum());
                  goods.setShopCoupon(false);
                  goods.setZkPrice(v2.getOriginalPrice());
                  return new DaTaoKeFilterResult(goods, DaTaoKeFilterResult.FILTER_TYPE_PRICE_AND_COUPON);
               }
            } catch (Exception e) {
            }
         } else {// 都有券
            long time = System.currentTimeMillis();
            // 券在有效期内并且还有剩余券
            if (time >= TimeUtil.convertToTimeTemp(v2.getCouponStartTime(), "yyyy-MM-dd HH:mm:ss")
                  && time <= TimeUtil.convertToTimeTemp(v2.getCouponEndTime(), "yyyy-MM-dd HH:mm:ss")
                  && (v2.getCouponTotalNum() - v2.getCouponReceiveNum()) > 0) {
               // 如果两个券的面额一样,淘宝原价比大淘客原价高,就以大淘客原价为准
               if (goods.getCouponAmount() != null && v2.getCouponPrice() != null
                     && goods.getCouponAmount().compareTo(v2.getCouponPrice()) == 0) {
                  if (goods.getZkPrice().compareTo(v2.getOriginalPrice()) > 0) {
                     goods.setZkPrice(v2.getOriginalPrice());
                     return new DaTaoKeFilterResult(goods, DaTaoKeFilterResult.FILTER_TYPE_PRICE);
                  }
               }
            }
         }
      }
      return goods;
      return new DaTaoKeFilterResult(goods, DaTaoKeFilterResult.FILTER_TYPE_NONE);
   }
   /**
    * 是否可以过滤掉券信息
    * @Title: filterCouponInfo
    * @Description:
    * @param goods
    * @param v2
    * void 返回类型
    * @throws
    */
   public static boolean canFilterCouponInfo(TaoBaoGoodsBrief goods, DaTaoKeDetailV2 v2) {
      if (StringUtil.isNullOrEmpty(goods.getCouponInfo()) && v2 != null
            && !StringUtil.isNullOrEmpty(v2.getCouponLink())) {
         try {
            long time = System.currentTimeMillis();
            // 券在有效期内并且还有剩余券
            if (time >= TimeUtil.convertToTimeTemp(v2.getCouponStartTime(), "yyyy-MM-dd HH:mm:ss")
                  && time <= TimeUtil.convertToTimeTemp(v2.getCouponEndTime(), "yyyy-MM-dd HH:mm:ss")
                  && (v2.getCouponTotalNum() - v2.getCouponReceiveNum()) > 0) {
               return true;
            }
         } catch (Exception e) {
         }
      }
      return false;
   }
   public static TaoBaoGoodsBrief filterTaoBaoGoods(TaoBaoGoodsBrief goods, DaTaoKeDetailV2 v2) {
      return filterTaoBaoGoods(goods, v2, false).getGoods();
   }
   public static DaTaoKeDetailV2 filterDaTaoKe(TaoBaoGoodsBrief goods, DaTaoKeDetailV2 detail) {