yujian
2020-06-09 554de444b87aab5f93cb1593a8095612cf9479a7
fanli/src/main/java/com/yeshi/fanli/controller/apph5/AppH5QualityGoodsController.java
@@ -19,10 +19,12 @@
import com.yeshi.fanli.entity.bus.lable.MergeClass;
import com.yeshi.fanli.entity.bus.lable.QualityFactory;
import com.yeshi.fanli.entity.goods.CollectionGoodsV2;
import com.yeshi.fanli.entity.system.ConfigKeyEnum;
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;
@@ -31,16 +33,19 @@
import com.yeshi.fanli.service.inter.goods.GoodsClassService;
import com.yeshi.fanli.service.inter.goods.TaoBaoClassService;
import com.yeshi.fanli.service.inter.goods.TaoBaoGoodsBriefService;
import com.yeshi.fanli.service.inter.hongbao.HongBaoManageService;
import com.yeshi.fanli.service.inter.lable.LabelService;
import com.yeshi.fanli.service.inter.lable.MergeClassService;
import com.yeshi.fanli.service.inter.lable.QualityFactoryService;
import com.yeshi.fanli.service.inter.lable.QualityFlashSaleService;
import com.yeshi.fanli.service.inter.lable.QualityGoodsService;
import com.yeshi.fanli.service.inter.lable.TaoKeGoodsService;
import com.yeshi.fanli.service.inter.order.config.HongBaoManageService;
import com.yeshi.fanli.service.inter.taobao.TaoBaoGoodsActivityService;
import com.yeshi.fanli.service.inter.taobao.TaobaoMeterialService;
import com.yeshi.fanli.service.inter.taobao.dataoke.DaTaoKeGoodsDetailV2Service;
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.StringUtil;
import com.yeshi.fanli.util.TimeUtil;
import com.yeshi.fanli.util.taobao.TaoBaoUtil;
import com.yeshi.fanli.util.taobao.TaoKeApiUtil;
@@ -56,7 +61,7 @@
   @Resource
   private QualityFactoryService selectionGoodsService;
   @Resource
   private TaoBaoGoodsBriefService taoBaoGoodsBriefService;
@@ -89,10 +94,15 @@
   @Resource
   private HongBaoManageService hongBaoManageService;
   @Resource
   private ConfigService configService;
   @Resource
   private TaoBaoGoodsActivityService taoBaoGoodsActivityService;
   @Resource
   private DaTaoKeGoodsDetailV2Service daTaoKeGoodsDetailV2Service;
   /**
    * 9.9商品
@@ -114,7 +124,8 @@
    */
   @RequestMapping(value = "get19k9")
   public void get19k9(String callback, Integer page, Long mcid, PrintWriter out) {
      get9k9ClassGoods(callback, out, page, 500, new BigDecimal(319.9), new BigDecimal(9.9), new BigDecimal(19.9), mcid);
      get9k9ClassGoods(callback, out, page, 500, new BigDecimal(319.9), new BigDecimal(9.9), new BigDecimal(19.9),
            mcid);
   }
@@ -126,7 +137,8 @@
    */
   @RequestMapping(value = "get29k9")
   public void get29k9(String callback, Integer page, Long mcid, PrintWriter out) {
      get9k9ClassGoods(callback, out, page, 500, new BigDecimal(429.9), new BigDecimal(19.9), new BigDecimal(29.9), mcid);
      get9k9ClassGoods(callback, out, page, 500, new BigDecimal(429.9), new BigDecimal(19.9), new BigDecimal(29.9),
            mcid);
   }
@@ -138,7 +150,8 @@
    */
   @RequestMapping(value = "get49k9")
   public void get49k9(String callback, Integer page, Long mcid, PrintWriter out) {
      get9k9ClassGoods(callback, out, page, 500, new BigDecimal(549.9), new BigDecimal(29.9), new BigDecimal(49.9), mcid);
      get9k9ClassGoods(callback, out, page, 500, new BigDecimal(549.9), new BigDecimal(29.9), new BigDecimal(49.9),
            mcid);
   }
   /**
@@ -153,7 +166,7 @@
    * @param out
    */
   public void get9k9ClassGoods(String callback, PrintWriter out, Integer page, Integer biz30day, BigDecimal zkPrice,
         BigDecimal minQuanPrice, BigDecimal maxQuanPrice,  Long mcid) {
         BigDecimal minQuanPrice, BigDecimal maxQuanPrice, Long mcid) {
      try {
         if (page == null || page <= 0) {
            page = 1;
@@ -171,15 +184,16 @@
         }
         // 根据标签id 查询数据
         List<QualityFactory> listQuery = qualityGoodsService.get9k9ClassGoods((page-1)*pageSize, pageSize, biz30day, zkPrice,
               minQuanPrice, maxQuanPrice, mergeCids);
         List<QualityFactory> listQuery = qualityGoodsService.get9k9ClassGoods((page - 1) * pageSize, pageSize,
               biz30day, zkPrice, minQuanPrice, maxQuanPrice, mergeCids);
         if (listQuery == null || listQuery.size() == 0) {
            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(2, "没有更多了"));
            return;
         }
         // 总条数
         long count = qualityGoodsService.count9k9ClassGoods(biz30day, zkPrice, minQuanPrice, maxQuanPrice, mergeCids);
         long count = qualityGoodsService.count9k9ClassGoods(biz30day, zkPrice, minQuanPrice, maxQuanPrice,
               mergeCids);
         JSONArray array = new JSONArray();
         Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder())
@@ -195,6 +209,23 @@
            array.add(gson.toJson(TaoBaoUtil.getTaoBaoGoodsBriefExtra(goodsBrief, proportion.toString(), null)));
         }
         // 618活动
         if (System.currentTimeMillis() < TimeUtil.convertToTimeTemp("2019-06-19", "yyyy-MM-dd")) {
            if (mcid == null || mcid == 0) {
               count = taoBaoGoodsActivityService.countByPrice(minQuanPrice,
                     maxQuanPrice.add(new BigDecimal("0.1")));
               List<TaoBaoGoodsBrief> goodsList = taoBaoGoodsActivityService.listByPrice(minQuanPrice,
                     maxQuanPrice.add(new BigDecimal("0.1")), page, pageSize);
               if (goodsList != null) {
                  array.clear();
                  for (TaoBaoGoodsBrief goods : goodsList) {
                     array.add(gson
                           .toJson(TaoBaoUtil.getTaoBaoGoodsBriefExtra(goods, proportion.toString(), null)));
                  }
               }
            }
         }
         JSONObject data = new JSONObject();
         data.put("count", count);
         data.put("result_list", array);
@@ -205,7 +236,6 @@
         LogHelper.errorDetailInfo(e);
      }
   }
   /**
    * 9.9商品-每日必抢
@@ -253,7 +283,6 @@
      queryEverydayRob(callback, out, page, new BigDecimal(549.9), new BigDecimal(29.9), new BigDecimal(49.9));
   }
   /**
    * 每日必抢
@@ -305,7 +334,7 @@
         } else {
            count = 50;
         }
         JSONObject data = new JSONObject();
         data.put("count", count);
         data.put("result_list", array);
@@ -553,7 +582,7 @@
         Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder())
               .excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create();
         BigDecimal proportion =manageService.getFanLiRate();
         BigDecimal proportion = manageService.getFanLiRate();
         /* 遍历列表数据 */
         for (TaoBaoGoodsBrief taoBaoGoodsBrief : listMaterial) {
@@ -576,7 +605,7 @@
            // 判断收藏
            if (!StringUtil.isNullOrEmpty(uid)) {
               CollectionGoodsV2 collectionGoods = collectionGoodsV2Service
                     .findByUidAndAuctionId(Long.parseLong(uid), taoBaoGoodsBrief.getAuctionId());
                     .findByUidAndAuctionId(Long.parseLong(uid), taoBaoGoodsBrief.getAuctionId(),Constant.SOURCE_TYPE_TAOBAO);
               if (collectionGoods != null) {
                  collected = 1;
               }
@@ -774,7 +803,7 @@
      int pageSize = Constant.PAGE_SIZE;
      int type = qualityFlashSaleService.getNowType();
      TaoBaoGoodsBrief goodsBrief = null;
      if (page == 1 && auctionId != null) {
         List<TaoBaoGoodsBrief> list = taoBaoGoodsBriefService.queryByAuctionId(auctionId);
@@ -784,9 +813,9 @@
      }
      if (goodsBrief != null) {
         pageSize = pageSize -1;
         pageSize = pageSize - 1;
      }
      List<QualityFactory> listQuery = qualityGoodsService.listQueryByFlashSale((page - 1) * pageSize, pageSize);
      // 精选库数据为空
@@ -807,7 +836,7 @@
      if (goodsBrief != null) {
         array.add(gson.toJson(TaoBaoUtil.getTaoBaoGoodsBriefExtra(goodsBrief, proportion.toString(), null)));
      }
      // 遍历列表数据
      for (QualityFactory quality : listQuery) {
@@ -815,7 +844,7 @@
         if (taoBaoGoodsBrief == null) {
            continue;
         }
         if (goodsBrief != null && auctionId.equals(taoBaoGoodsBrief.getAuctionId())) {
            continue;
         }
@@ -843,6 +872,40 @@
      data.put("type", type);
      data.put("result_list", array);
      JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
   }
   @RequestMapping("getFlashSaleNew")
   public void getFlashSaleNew(String callback, Integer page, Long auctionId, String time, PrintWriter out) {
      List<DaTaoKeDetailV2> detailList0 = daTaoKeGoodsDetailV2Service.getDingDongQiangData(time);
      if (detailList0 == null)
         detailList0 = new ArrayList<>();
      List<DaTaoKeDetailV2> detailList = new ArrayList<>();
      detailList.addAll(detailList0);
      JSONArray array = new JSONArray();
      if (page == 1) {
         if (auctionId != null && detailList != null)
            for (int i = 0; i < detailList.size(); i++) {
               if (detailList.get(i).getGoodsId().longValue() == auctionId) {
                  DaTaoKeDetailV2 goods = detailList.get(i);
                  detailList.remove(i);
                  detailList.add(0, goods);
                  break;
               }
            }
         Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder())
               .excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create();
         if (detailList != null)
            for (DaTaoKeDetailV2 detail : detailList) {
               array.add(gson.toJson(TaoBaoUtil.getTaoBaoGoodsBriefExtra(TaoBaoUtil.convert(detail),
                     hongBaoManageService.getFanLiRate() + "", null)));
            }
      }
      JSONObject data = new JSONObject();
      data.put("count", detailList.size());
      data.put("result_list", array);
      JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
   }
@@ -972,7 +1035,8 @@
         return;
      }
      long count = qualityGoodsService.countQueryByRebateAmount(proportion.toString(), startAmount, endAmount, tkRate);
      long count = qualityGoodsService.countQueryByRebateAmount(proportion.toString(), startAmount, endAmount,
            tkRate);
      // 精选库数据处理返回 前端
      JSONArray array = new JSONArray();
@@ -1030,7 +1094,8 @@
      int pageSize = Constant.PAGE_SIZE;
      BigDecimal proportion = manageService.getFanLiRate();
      JSONArray array = qualityGoodsService.getRecommendToIndex((page - 1) * pageSize, pageSize, proportion.toString());
      JSONArray array = qualityGoodsService.getRecommendToIndex((page - 1) * pageSize, pageSize,
            proportion.toString());
      if (array == null) {
         out.print(JsonUtil.loadFalseResult("没有更多了"));
@@ -1046,7 +1111,7 @@
      out.print(JsonUtil.loadTrueResult(data));
      return;
   }
   /**
    * 超高奖金
    * 
@@ -1057,18 +1122,13 @@
    */
   @RequestMapping("freeGoods")
   public void freeGoods(String callback, Integer page, PrintWriter out) {
      if (page == null || page < 1)
         page = 1;
      int pageSize = Constant.PAGE_SIZE;
      double tkRate = 20;
      String lableName = "9.9";
      try {
         List<QualityFactory> listQuery = qualityGoodsService.listFreeGoods((page - 1) * pageSize, pageSize, tkRate,
               lableName);
         if (page == null || page < 1)
            page = 1;
         int pageSize = Constant.PAGE_SIZE;
         List<QualityFactory> listQuery = qualityGoodsService.listFreeGoods((page - 1) * pageSize, pageSize);
         if (listQuery == null || listQuery.size() == 0) {
            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(2, "没有更多了"));
            return;
@@ -1131,7 +1191,7 @@
               continue; // 券后价大于10
            }
            TaoBaoGoodsBriefExtra extra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief,
            TaoBaoGoodsBriefExtra extra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief,
                  proportion.toString(), null);
            // 将返利改为券后价
            TaoBaoHongBaoInfo taoBaoHongBaoInfo = extra.getTaoBaoHongBaoInfo();
@@ -1139,30 +1199,26 @@
               taoBaoHongBaoInfo.setHongbao(extra.getQuanPrice());
               taoBaoHongBaoInfo.setRate("¥" + extra.getQuanPrice());
            }
            array.add(gson.toJson(extra));
         }
         long count = qualityGoodsService.countFreeGoods(tkRate, lableName);
         long count = qualityGoodsService.countFreeGoods();
         JSONObject data = new JSONObject();
         if (page == 1) {
            // 抽奖规则
            String rules = configService.get("free_goods_rule");
            String rules = configService.get(ConfigKeyEnum.freeGoodsRule.getKey());
            data.put("ruleLink", rules);
         }
         data.put("count", count);
         data.put("result_list", array);
         JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
      } catch (Exception e) {
         JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("操作失败"));
         e.printStackTrace();
         JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("数据暂未提供"));
         LogHelper.errorDetailInfo(e);
      }
   }
}