yujian
2019-08-03 2043509cb0682dfa671187f8f4c951c981fdfdd3
fanli/src/main/java/com/yeshi/fanli/service/impl/dynamic/DynamicInfoServiceImpl.java
@@ -9,6 +9,7 @@
import javax.annotation.Resource;
import org.apache.commons.beanutils.PropertyUtils;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.core.task.TaskExecutor;
import org.springframework.stereotype.Service;
@@ -465,6 +466,11 @@
      }
      // 过滤为空的
      if (daTaoKe == null) {
         return;
      }
      List<TaoBaoGoodsBrief> listGoods = new ArrayList<TaoBaoGoodsBrief>();
      TaoBaoGoodsBrief taoBaoGoodsBrief = TaoBaoUtil.convert(daTaoKe);
      listGoods.add(taoBaoGoodsBrief);
@@ -472,10 +478,21 @@
      BigDecimal proportion = hongBaoManageService.getFanLiRate();
      TaoBaoGoodsBriefExtra taoBaoGoodsBriefExtra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief,
            proportion.toString(), null);
      // 商品图片
      GoodsPicture goodsPicture = getGoodsPicture(daTaoKe);
      if (!taoBaoGoodsBriefExtra.isCoupon()) {
         taoBaoGoodsBriefExtra.setState(1);
         goodsPicture.setGoodState(1);
      }
      taoBaoGoodsBriefExtra.setTkRate(taoBaoGoodsBrief.getTkRate());
      taoBaoGoodsBriefExtra.setUpdatetime(new Date());
      taoBaoGoodsBriefExtra.setCouponInfo(null);
      goodsPicture.setGoods(taoBaoGoodsBriefExtra);
      // 商品列表
      List<GoodsPicture> listPicture = new ArrayList<GoodsPicture>();
      listPicture.add(goodsPicture);
      // 分享奖金
      BigDecimal shareMoney = taoBaoGoodsBriefService.getShareGoodsUserHongBao(taoBaoGoodsBrief);
@@ -483,14 +500,7 @@
      shareMoneyDesc.setColor("#FFFFFF");
      shareMoneyDesc.setBottomColor("#E8AE48");
      shareMoneyDesc.setContent("预估分享奖金:¥" + shareMoney);
      // 商品图片
      GoodsPicture goodsPicture = getGoodsPicture(daTaoKe);
      taoBaoGoodsBriefExtra.setUpdatetime(new Date());
      taoBaoGoodsBriefExtra.setCouponInfo(null);
      goodsPicture.setGoods(taoBaoGoodsBriefExtra);
      // 商品列表
      List<GoodsPicture> listPicture = new ArrayList<GoodsPicture>();
      listPicture.add(goodsPicture);
      // 获取商品列表图片
      TaoBaoGoodsBrief taoBaoGoodsBrief2 = TaoKeApiUtil.getSimpleGoodsInfo(daTaoKe.getGoodsId());
@@ -901,15 +911,21 @@
   @Override
   @Cacheable(value = "dynamicCache", key = "'queryV2-'+#platform+'-'+#version+'-'+#start+'-'+#count+'-'+#cid+'-'+#subId")
   public List<DynamicInfo> queryV2(int platform, int version, int start, int count, Long cid, Long subId) {
      List<DynamicInfo> listNew = new ArrayList<DynamicInfo>();
      List<DynamicInfo> list = dynamicInfoDao.query(start, count, cid, subId);
      if (list != null && list.size() > 0) {
         BigDecimal fanLiRate = hongBaoManageService.getFanLiRate();
         BigDecimal shareRate = hongBaoManageService.getShareRate();
         for (DynamicInfo dynamicInfo: list) {
            DynamicInfo dynamicNew = new DynamicInfo();
            try {
               PropertyUtils.copyProperties(dynamicNew, dynamicInfo);
            } catch (Exception e) {
               e.printStackTrace();
               continue;
            }
            
            TaoBaoShop shop = dynamicInfo.getShop();
            TaoBaoShop shop = dynamicNew.getShop();
            if (shop != null) {
               Integer userType = shop.getUserType();
               if (userType == null || userType == 0) {
@@ -917,11 +933,11 @@
               } else {
                  shop.setUserType(11);
               }
               dynamicInfo.setShop(shop);
               dynamicNew.setShop(shop);
            }
            
            
            List<GoodsPicture> imgs = dynamicInfo.getImgs();
            List<GoodsPicture> imgs = dynamicNew.getImgs();
            if (imgs != null && imgs.size() > 0) {
               for (GoodsPicture goodsPicture: imgs) {
                  TaoBaoGoodsBriefExtra goods = goodsPicture.getGoods();
@@ -941,7 +957,8 @@
                  }
               }
            }
            dynamicInfo.setImgs(imgs);
            dynamicNew.setImgs(imgs);
            listNew.add(dynamicNew);
         }
      }
      
@@ -953,8 +970,7 @@
            updateGoodInfo(list);
         }
      });
      return list;
      return listNew;
   }
   
@@ -962,16 +978,15 @@
    * 更新商品信息
    */
   public void updateGoodInfo(List<DynamicInfo> list) {
      // 外网进行更新
      if (!Constant.IS_OUTNET) {
         return;
         return; // 外网进行更新
      }
      if (list == null || list.size() == 0) {
         return;
      }
      try {
      BigDecimal proportion = hongBaoManageService.getFanLiRate();
      for (DynamicInfo dynamicInfo : list) {
         // 邀请数据不做更新
@@ -981,8 +996,8 @@
         }
         // 更新商品信息
         List<GoodsPicture> imgs = dynamicInfo.getImgs();
         if (imgs == null || imgs.size() == 0) {
            List<GoodsPicture> listPicture = dynamicInfo.getImgs();
            if (listPicture == null || listPicture.size() == 0) {
            continue;
         }
@@ -1004,7 +1019,7 @@
         // 商品列表
         List<TaoBaoGoodsBrief> listGoods = new ArrayList<TaoBaoGoodsBrief>();
         for (GoodsPicture goodsPicture : imgs) {
            for (GoodsPicture goodsPicture : listPicture) {
            TaoBaoGoodsBriefExtra oldExtra = goodsPicture.getGoods();
            if (oldExtra == null) {
               continue;
@@ -1015,19 +1030,48 @@
               continue;
            }
               TaoBaoGoodsBrief goodsBrief = null;
            try {
               TaoBaoGoodsBrief goodsBrief = redisManager.getTaoBaoGoodsBrief(oldExtra.getAuctionId());
               // 更新商品信息
               try {
                  taoBaoGoodsUpdateService.updateTaoBaoGoods(goodsBrief);
               } catch (Exception e) {
                  e.printStackTrace();
                  goodsBrief = redisManager.getTaoBaoGoodsBrief(oldExtra.getAuctionId());
               } catch (TaobaoGoodsDownException e) {
               }
               // 是否下架 : 1、商品本身下架 2、无券信息则认为下架
               boolean isDown = true;
               if (goodsBrief == null) {
                  listDown.add(oldExtra.getAuctionId()); // 下架商品
               } else if (goodsBrief.getCouponAmount() != null
                     && goodsBrief.getCouponAmount().compareTo(BigDecimal.valueOf(0)) > 0) {
                  isDown = false;
               }
               if (isDown) {
                  oldExtra.setState(1);
                  oldExtra.setCoupon(false);
                  oldExtra.setUpdatetime(new Date());
                  goodsPicture.setGoods(oldExtra);
                  // 商品已抢光
                  goodsPicture.setGoodState(1);
                  // 更新热销单品的分享奖金
                  if (classId == 1) {
                     ClientTextStyleVO shareMoneyDesc = new ClientTextStyleVO();
                     shareMoneyDesc.setColor("#FFFFFF");
                     shareMoneyDesc.setBottomColor("#E8AE48");
                     shareMoneyDesc.setContent("预估分享奖金:¥" + new BigDecimal(0));
                     dynamicInfo.setDesc(shareMoneyDesc);
                  }
               } else {
               listGoods.add(goodsBrief);
               // 更新热销单品的分享奖金 ,其余不做更新
                  TaoBaoGoodsBriefExtra newExtra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(goodsBrief,
                        proportion.toString(), null);
                  newExtra.setUpdatetime(new Date());
                  goodsPicture.setGoods(newExtra);
                  // 更新热销单品的分享奖金
               if (classId == 1) {
                  BigDecimal shareMoney = taoBaoGoodsBriefService.getShareGoodsUserHongBao(goodsBrief);
                  ClientTextStyleVO shareMoneyDesc = new ClientTextStyleVO();
@@ -1036,85 +1080,56 @@
                  shareMoneyDesc.setContent("预估分享奖金:¥" + shareMoney);
                  dynamicInfo.setDesc(shareMoneyDesc);
               }
               TaoBaoGoodsBriefExtra newExtra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(goodsBrief,
                     proportion.toString(), null);
               if (!newExtra.isCoupon()) {
                  newExtra.setState(1);
               }
               newExtra.setUpdatetime(new Date());
               goodsPicture.setGoods(oldExtra);
            } catch (TaobaoGoodsDownException e) {
               listDown.add(oldExtra.getAuctionId());
               oldExtra.setState(1);
               oldExtra.setCoupon(false);
               oldExtra.setUpdatetime(new Date());
               goodsPicture.setGoods(oldExtra);
               // 商品真实下架
               goodsPicture.setGoodState(1);
               // 更新热销单品的分享奖金 ,其余不做更新
               if (classId == 1) {
                  ClientTextStyleVO shareMoneyDesc = new ClientTextStyleVO();
                  shareMoneyDesc.setColor("#FFFFFF");
                  shareMoneyDesc.setBottomColor("#E8AE48");
                  shareMoneyDesc.setContent("预估分享奖金:¥" + new BigDecimal(0));
                  dynamicInfo.setDesc(shareMoneyDesc);
               }
               e.printStackTrace();
            }
         }
         dynamicInfo.setImgs(imgs);
            dynamicInfo.setImgs(listPicture);
         // 商品已下架
         List<TaoBaoGoodsBrief> listGoodsBrief = dynamicInfo.getListGoodsBrief();
         if (listGoodsBrief != null && listGoodsBrief.size() > 0) {
            if (listGoods.size() > 0) {
               if (classId == 1) {
                  dynamicInfo.setListGoodsBrief(listGoods);
               } else {
                  for (int i = 0; i < listGoodsBrief.size(); i++) {
                     TaoBaoGoodsBrief taoBaoGoodsBrief = listGoodsBrief.get(i);
                     Long auctionId = taoBaoGoodsBrief.getAuctionId();
                     boolean isadd = true;
                     for (TaoBaoGoodsBrief goods : listGoods) {
                        if (goods.getAuctionId().equals(auctionId) || goods.getAuctionId() == auctionId) {
                           isadd = false;
                           break;
                        }
                     }
                     if (isadd) {
                        // 商品已下架 则添加原来商品信息
                        if (listDown.size() > 0 && listDown.contains(taoBaoGoodsBrief.getAuctionId())) {
                           taoBaoGoodsBrief.setState(1);
                        }
                        listGoods.add(taoBaoGoodsBrief);
                     }
                  }
                  dynamicInfo.setListGoodsBrief(listGoods);
               }
            } else {
               // 淘宝已下架商品
               if (listDown.size() > 0) {
                  for (TaoBaoGoodsBrief taoBaoGoodsBrief : listGoodsBrief) {
                     if (listDown.contains(taoBaoGoodsBrief.getAuctionId())) {
                        taoBaoGoodsBrief.setState(1);
                     }
                  }
                  dynamicInfo.setListGoodsBrief(listGoodsBrief);
               }
               if (listGoods.size() == 0) {
                  dynamicInfo.setListGoodsBrief(listGoodsBrief);
               } else {
                  List<TaoBaoGoodsBrief> listNew = new ArrayList<TaoBaoGoodsBrief>();
                  for (int i = 0; i < listGoodsBrief.size(); i++) {
                     TaoBaoGoodsBrief taoBaoGoodsBrief = listGoodsBrief.get(i);
                     if (taoBaoGoodsBrief.getState() != null && taoBaoGoodsBrief.getState() == 1) {
                        listNew.add(taoBaoGoodsBrief);
                     } else {
                        boolean isUpdate = false;
                        Long auctionId = taoBaoGoodsBrief.getAuctionId();
                        for (TaoBaoGoodsBrief goods : listGoods) {
                           if (goods.getAuctionId().equals(auctionId) || goods.getAuctionId() == auctionId) {
                              listNew.add(goods);
                              isUpdate = true;
                              break;
            }
         }
                        if (!isUpdate) {
                           listNew.add(taoBaoGoodsBrief);
                        }
                     }
                  }
                  dynamicInfo.setListGoodsBrief(listNew);
               }
            }
         dynamicInfo.setUpdateTime(new Date());
         dynamicInfoDao.updateGoodInfo(dynamicInfo);
      }
      } catch (Exception e) {
         LogHelper.errorDetailInfo(e);
      }
   }
}