admin
2020-06-30 e40d1c22c7202aac843c66f9ee9cc000744f9e10
fanli/src/main/java/com/yeshi/fanli/service/impl/dynamic/GoodsEvaluateServiceImpl.java
@@ -7,6 +7,7 @@
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.Date;
@@ -31,7 +32,9 @@
import com.yeshi.fanli.dto.ConfigParamsDTO;
import com.yeshi.fanli.dto.jd.JDCouponInfo;
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.bus.activity.ActivityRuleUser;
import com.yeshi.fanli.entity.bus.activity.ActivityUser;
import com.yeshi.fanli.entity.bus.clazz.GoodsClass;
import com.yeshi.fanli.entity.dynamic.CommentInfo;
@@ -49,6 +52,7 @@
import com.yeshi.fanli.exception.dynamic.ActivityUserException;
import com.yeshi.fanli.exception.dynamic.GoodsEvaluateException;
import com.yeshi.fanli.exception.goods.ConvertLinkExceptionException;
import com.yeshi.fanli.exception.share.ShareGoodsException;
import com.yeshi.fanli.exception.taobao.TaobaoGoodsDownException;
import com.yeshi.fanli.log.LogHelper;
import com.yeshi.fanli.service.inter.activity.ActivityUserService;
@@ -300,7 +304,7 @@
   }
   @Override
   public String saveSingleGoods(String pid, Long goodsId, Integer goodsType, String videoUrl, Integer picNum,
   public String saveSingleGoods(String pid, String goodsId, Integer goodsType, String videoUrl, Integer picNum,
         String picUrls, MultipartHttpServletRequest fileRequest) throws GoodsEvaluateException, Exception {
      if (StringUtil.isNullOrEmpty(pid)) {
         throw new GoodsEvaluateException(1, "请保存第一部分信息");
@@ -421,16 +425,16 @@
      params.setBaseFanliRate(hongBaoManageService.getBaseFanliRate());
      if (goodsType == Constant.SOURCE_TYPE_TAOBAO) {
         try {
            TaoBaoGoodsBrief goodsBrief = redisManager.getTaoBaoGoodsBrief(goodsId);
            TaoBaoGoodsBrief goodsBrief = redisManager.getTaoBaoGoodsBrief(Long.parseLong(goodsId));
            goodsDetailVO = GoodsDetailVOFactory.convertTaoBao(goodsBrief, params);
         } catch (TaobaoGoodsDownException e) {
            throw new GoodsEvaluateException(1, "商品已下架");
         }
      } else if (goodsType == Constant.SOURCE_TYPE_JD) {
         jdGoods = jdGoodsCacheUtil.getGoodsInfo(goodsId);
         jdGoods = jdGoodsCacheUtil.getGoodsInfo(Long.parseLong(goodsId));
         goodsDetailVO = GoodsDetailVOFactory.convertJDGoods(jdGoods, params);
      } else if (goodsType == Constant.SOURCE_TYPE_PDD) {
         pddGoods = pinDuoDuoCacheUtil.getGoodsInfo(goodsId);
         pddGoods = pinDuoDuoCacheUtil.getGoodsInfo(Long.parseLong(goodsId));
         goodsDetailVO = GoodsDetailVOFactory.convertPDDGoods(pddGoods, params);
      }
@@ -518,7 +522,7 @@
      if (comments != null && comments.size() > 0) {
         for (CommentInfo commentInfo : comments) {
            if (commentInfo.getTypeEnum() == CommentInfoEnum.goodsCoupon) {
               if (oldGoodsVO != null && oldGoodsVO.getGoodsId().longValue() == goodsId.longValue()
               if (oldGoodsVO != null && oldGoodsVO.getGoodsId().equalsIgnoreCase(goodsId)
                     && oldGoodsVO.getGoodsType() == goodsType) {
                  addComment = false;
               }
@@ -537,7 +541,7 @@
      String commentText = "";
      if (addComment) {
         if (goodsType == Constant.SOURCE_TYPE_TAOBAO) {
            TaoBaoLink taoBaoLink = shareGoodsService.getTaoBaoLinkForShare(1L, goodsId, "0");
            TaoBaoLink taoBaoLink = shareGoodsService.getTaoBaoLinkForShare(1L, Long.parseLong(goodsId), "0");
            String template = configService.get(ConfigKeyEnum.quickShareTBCommentText.getKey());
            commentText = template.replace("[淘口令]", TaoBaoUtil.filterTaoToken(taoBaoLink.getTaoToken()));
         } else if (goodsType == Constant.SOURCE_TYPE_JD) {
@@ -555,7 +559,7 @@
            }
            commentText = template.replace("[链接]", jumpLink);
         } else if (goodsType == Constant.SOURCE_TYPE_PDD) {
            String jumpLink = PinDuoDuoApiUtil.getPromotionUrl(goodsId, PinDuoDuoApiUtil.PID_SHARE + "", "1");
            String jumpLink = PinDuoDuoApiUtil.getPromotionUrl(Long.parseLong(goodsId), PinDuoDuoApiUtil.PID_SHARE + "", "1");
            if (jumpLink == null) {
               throw new GoodsEvaluateException(1, "该商品转链失败");
            }
@@ -603,13 +607,13 @@
   private String createTokenAndLink(GoodsDetailVO goodsDetailVO) throws Exception {
      String commentText = "";
      if (goodsDetailVO.getGoodsType() == Constant.SOURCE_TYPE_TAOBAO) {
         TaoBaoLink taoBaoLink = shareGoodsService.getTaoBaoLinkForShare(1L, goodsDetailVO.getGoodsId(), "0");
         TaoBaoLink taoBaoLink = shareGoodsService.getTaoBaoLinkForShare(1L,Long.parseLong(goodsDetailVO.getGoodsId()), "0");
         String template = configService.get(ConfigKeyEnum.quickShareTBCommentText.getKey());
         commentText = template.replace("[淘口令]", TaoBaoUtil.filterTaoToken(taoBaoLink.getTaoToken()));
      } else if (goodsDetailVO.getGoodsType() == Constant.SOURCE_TYPE_JD) {
         String couponUrl = null;
         JDGoods jdGoods = jdGoodsCacheUtil.getGoodsInfo(goodsDetailVO.getGoodsId());
         JDGoods jdGoods = jdGoodsCacheUtil.getGoodsInfo(Long.parseLong(goodsDetailVO.getGoodsId()));
         JDCouponInfo couponInfo = JDUtil.getShowCouponInfo(jdGoods);
         if (couponInfo != null) {
            couponUrl = couponInfo.getLink();
@@ -620,7 +624,7 @@
         String template = configService.get(ConfigKeyEnum.quickShareJDCommentText.getKey());
         commentText = template.replace("[链接]", jumpLink);
      } else if (goodsDetailVO.getGoodsType() == Constant.SOURCE_TYPE_PDD) {
         String jumpLink = PinDuoDuoApiUtil.getPromotionUrl(goodsDetailVO.getGoodsId(),
         String jumpLink = PinDuoDuoApiUtil.getPromotionUrl(Long.parseLong(goodsDetailVO.getGoodsId()),
               PinDuoDuoApiUtil.PID_SHARE + "", "1");
         String template = configService.get(ConfigKeyEnum.quickSharePDDCommentText.getKey());
         commentText = template.replace("[链接]", jumpLink);
@@ -800,7 +804,7 @@
            }
            boolean del = false;
            long oldGoodsId = old.getGoods().getGoodsId().longValue();
            String oldGoodsId = old.getGoods().getGoodsId();
            int oldGoodsType = old.getGoods().getGoodsType().intValue();
            for (ImgInfo newInfo : listImg) {
               ImgEnum type2 = old.getType();
@@ -808,7 +812,7 @@
                  continue;
               }
               if (oldGoodsId == newInfo.getGoods().getGoodsId().longValue()
               if (oldGoodsId .equalsIgnoreCase(newInfo.getGoods().getGoodsId())
                     && oldGoodsType == newInfo.getGoods().getGoodsType().intValue()) {
                  String url = newInfo.getUrl();
                  if (url.equals(old.getUrl())) {
@@ -1418,7 +1422,26 @@
   public GoodsEvaluate getById(String id) {
      return goodsEvaluateDao.getById(id);
   }
   @Override
   public List<GoodsEvaluate> listByStartTime(Date date) {
      return goodsEvaluateDao.listByStartTime(date);
   }
   @Override
   public List<GoodsEvaluate> queryValidSortASC(int start, int count, EvaluateEnum tyepEnum, boolean sortDesc) {
      return goodsEvaluateDao.queryValidSortASC(start, count, tyepEnum, sortDesc);
   }
   @Override
   public List<GoodsEvaluate> queryValidZeroPoint(int start, int count) {
      return goodsEvaluateDao.queryValidZeroPoint(start, count);
   }
   @Override
   public void saveComment(String pid, CommentInfo commentInfo) throws GoodsEvaluateException {
      GoodsEvaluate goodsEvaluate = goodsEvaluateDao.getById(pid);
@@ -1887,12 +1910,12 @@
      }
   }
   private GoodsDetailVO getGoodsNewInfo(Long goodsId, int goodsType, ConfigParamsDTO paramsDTO) {
   private GoodsDetailVO getGoodsNewInfo(String goodsId, int goodsType, ConfigParamsDTO paramsDTO) {
      GoodsDetailVO vo = null;
      if (goodsType == Constant.SOURCE_TYPE_TAOBAO) {
         TaoBaoGoodsBrief goods;
         try {
            goods = redisManager.getTaoBaoGoodsBrief(goodsId);
            goods = redisManager.getTaoBaoGoodsBrief(Long.parseLong(goodsId));
            if (goods != null) {
               vo = GoodsDetailVOFactory.convertTaoBao(goods, paramsDTO);
            }
@@ -1901,12 +1924,12 @@
         }
      } else if (goodsType == Constant.SOURCE_TYPE_JD) {
         JDGoods goodsInfo = jdGoodsCacheUtil.getGoodsInfo(goodsId);
         JDGoods goodsInfo = jdGoodsCacheUtil.getGoodsInfo(Long.parseLong(goodsId));
         if (goodsInfo != null) {
            vo = GoodsDetailVOFactory.convertJDGoods(goodsInfo, paramsDTO);
         }
      } else if (goodsType == Constant.SOURCE_TYPE_PDD) {
         PDDGoodsDetail goodsInfo = pinDuoDuoCacheUtil.getGoodsInfo(goodsId);
         PDDGoodsDetail goodsInfo = pinDuoDuoCacheUtil.getGoodsInfo(Long.parseLong(goodsId));
         if (goodsInfo != null)
            vo = GoodsDetailVOFactory.convertPDDGoods(goodsInfo, paramsDTO);
      }
@@ -1914,19 +1937,21 @@
   }
   @Override
   public void addGoodsEvaluate(Long goodsId, List<ImgInfo> imgList, ActivityUser user, String title, String comment,
   public void addGoodsEvaluate(String goodsId, List<ImgInfo> imgList, ActivityUser user, String title, String comment,
         Date startTime) throws GoodsEvaluateException {
      if (goodsId == null || user == null || StringUtil.isNullOrEmpty(title)) {
         throw new GoodsEvaluateException(1, "相关参数不能为空");
      }
      List<GoodsEvaluate> evaluateList = goodsEvaluateDao.queryExist(Constant.SOURCE_TYPE_TAOBAO, goodsId);
      Date limitDate = DateUtil.reduceDay(new Date(), 7);
      List<GoodsEvaluate> evaluateList = goodsEvaluateDao.queryExistLimitTime(Constant.SOURCE_TYPE_TAOBAO, goodsId, limitDate);
      if (evaluateList != null && evaluateList.size() > 0)
         return;
         throw new GoodsEvaluateException(1, "该商品已存在");
      TaoBaoGoodsBrief goodsBrief = null;
      try {
         goodsBrief = redisManager.getTaoBaoGoodsBrief(goodsId);
         goodsBrief = redisManager.getTaoBaoGoodsBrief(Long.parseLong(goodsId));
      } catch (TaobaoGoodsDownException e) {
         throw new GoodsEvaluateException(1, "商品已下架");
      }
@@ -1942,9 +1967,7 @@
      // 白底图
      List<String> imgs = new ArrayList<>();
      if (!StringUtil.isNullOrEmpty(goodsBrief.getPictUrlWhite())) {
         imgs.add(goodsBrief.getPictUrlWhite());
      }
      imgs.addAll(goodsBrief.getImgList());
      // 商品VO
@@ -1954,7 +1977,10 @@
      // 商品图片信息
      int i = 0;
      if (imgList == null || imgList.size() == 0)
      if (imgList == null)
         imgList = new ArrayList<ImgInfo>();
      if (imgList.size() == 0)
         for (String img : imgs) {
            ImgInfo imgInfo = new ImgInfo();
            imgInfo.setH(1);
@@ -1993,6 +2019,7 @@
         commentInfo.setContent(comment);
         commentInfo.setType("");
      } else {
         goodsBrief.setCouponLink(null);
         String token = shareGoodsService.createTaoBaoToken(Constant.LINK_TOKEN_VERIFY_UID, goodsBrief);
         String template = configService.get(ConfigKeyEnum.quickShareTBCommentText.getKey());
         String commentText = template.replace("[淘口令]", TaoBaoUtil.filterTaoToken(token));
@@ -2047,6 +2074,165 @@
      goodsEvaluateDao.save(goodsEvaluate);
   }
   @Override
   public int addGoodsEvaluate(TaoBaoGoodsBrief goodsBrief, List<String> imgs, ActivityUser user, String title) throws GoodsEvaluateException {
      if (goodsBrief == null || user == null || StringUtil.isNullOrEmpty(title)) {
         throw new GoodsEvaluateException(1, "相关参数不能为空");
      }
      Date limitDate = DateUtil.reduceDay(new Date(), 7);
      Long goodsId = goodsBrief.getAuctionId();
      List<GoodsEvaluate> evaluateList = goodsEvaluateDao.queryExistLimitTime(Constant.SOURCE_TYPE_TAOBAO, goodsId + "", limitDate);
      if (evaluateList != null && evaluateList.size() > 0)
         throw new GoodsEvaluateException(1, "该商品已存在");
      if (imgs == null) {
         imgs = new ArrayList<>();
      }
      if (imgs.size() == 0) {
         imgs.addAll(goodsBrief.getImgList());
      }
      // 商品VO
      ConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate("android", "55");
      paramsDTO.setBaseFanliRate(hongBaoManageService.getBaseFanliRate());
      GoodsDetailVO goodsVO = GoodsDetailVOFactory.convertTaoBao(goodsBrief, paramsDTO);
      // 商品图片信息
      int i = 0;
      List<ImgInfo> imgList = new ArrayList<ImgInfo>();
      for (String img : imgs) {
         ImgInfo imgInfo = new ImgInfo();
         imgInfo.setH(1);
         imgInfo.setW(1);
         imgInfo.setLarge(false);
         imgInfo.setUrl(img);
         imgInfo.setUrlHD(img);
         if (i != 0) {
            imgInfo.setType(ImgEnum.img);
         } else {
            imgInfo.setType(ImgEnum.goods);
            SimpleGoods simpleGoods = new SimpleGoods();
            simpleGoods.setGoodsId(goodsVO.getGoodsId());
            simpleGoods.setGoodsType(goodsVO.getGoodsType());
            simpleGoods.setState(goodsVO.getState());
            CouponInfoVO couponInfo = goodsVO.getCouponInfo();
            if (couponInfo == null) {
               simpleGoods.setPrice(goodsVO.getZkPrice());
            } else {
               simpleGoods.setPrice(goodsVO.getCouponPrice());
               simpleGoods.setAmount(couponInfo.getAmount());
            }
            imgInfo.setGoods(simpleGoods);
            imgInfo.setGoodsVO(goodsVO);
         }
         imgList.add(imgInfo);
         i++;
      }
      // 生成口令
      String token = null;
      try {
         TaoBaoLink taoBaoLink = shareGoodsService.getTaoBaoLinkForShare(Constant.LINK_TOKEN_VERIFY_UID, goodsBrief.getAuctionId(), "1");
         token = taoBaoLink.getTaoToken();
      } catch (ShareGoodsException e) {
         e.printStackTrace();
         throw new GoodsEvaluateException(1, "转链失败");
      }
      String template = configService.get(ConfigKeyEnum.quickShareTBCommentText.getKey());
      String commentText = template.replace("[淘口令]", TaoBaoUtil.filterTaoToken(token));
      if (!goodsVO.isHasCoupon()) {
         commentText = commentText.replace("领券抢购", "抢购");
         commentText = commentText.replace("【券后价】[券后价]元", "");
         commentText = commentText.replace("\r\n\r\n", "\r\n").replace("\r\n\r\n", "\r\n").replace("\r\n\r\n",
               "\r\n");
      }
      // 评论内容
      CommentInfo commentInfo = new CommentInfo();
      commentInfo.setNeedSpin(true);
      commentInfo.setId(UUID.randomUUID().toString().replace("-", ""));
      commentInfo.setTypeEnum(CommentInfoEnum.goodsCoupon);
      commentInfo.setContent(commentText);
      commentInfo.setType(CommentInfoEnum.goodsCoupon.getDesc());
      List<CommentInfo> commentsNew = new ArrayList<>();
      commentsNew.add(commentInfo);
      // 一行显示多少个图片
      int lineNum = 0;
      if (imgList.size() > 0) {
         if (imgList.size() == 1) {
            lineNum = 1;
         } else if (imgList.size() == 3) {
            lineNum = 3;
         } else if (imgList.size() == 2 || imgList.size() == 4) {
            lineNum = 2;
         } else {
            lineNum = 3;
         }
      }
      int result = 0;
      int zeroPoint = 0;
      // ★深夜大福利:先抢券,0点准时下单★
      // 含这种文本的定于每晚10点在动态-发圈 集中发,每晚10点在群发单中只发一条。
      Date startTime = new Date();
      if (!StringUtil.isNullOrEmpty(title)) {
         String value = configService.get(ConfigKeyEnum.evaluateZeroKey.getKey());
         if (!StringUtil.isNullOrEmpty(value)) {
            List<String> asList = Arrays.asList(value.split(","));
            if (asList != null && asList.size() > 0) {
               boolean zero = false;
               for (String zerokey: asList) {
                  if(title.contains(zerokey)) {
                     zero = true;
                     break;
                  }
               }
               if (zero) {
                  result = 1;
                  zeroPoint = 1;
                  startTime = TimeUtil.parseYYYYMMDD_HHMM(TimeUtil.getGernalTime(startTime) + " 22:00");
               }
            }
         }
      }
      GoodsEvaluate goodsEvaluate = new GoodsEvaluate();
      goodsEvaluate.setId(UUID.randomUUID().toString().replace("-", ""));
      goodsEvaluate.setUser(user);
      goodsEvaluate.setTitle(getDescNew(title));
      goodsEvaluate.setState(1);
      goodsEvaluate.setZeroPoint(zeroPoint);
      goodsEvaluate.setDynamicType(1);
      goodsEvaluate.setType(EvaluateEnum.single);
      goodsEvaluate.setShareNum((int) (Math.random() * 5000) + 1000);
      goodsEvaluate.setShareNumReal(0);
      goodsEvaluate.setWeight(0.0);
      goodsEvaluate.setStartTime(startTime);
      goodsEvaluate.setEndTime(DateUtil.plusDayDate(3, startTime));
      goodsEvaluate.setPublishTime(new Date());
      goodsEvaluate.setCreateTime(new Date());
      goodsEvaluate.setUpdateTime(new Date());
      goodsEvaluate.setGoods(goodsVO);
      goodsEvaluate.setLineNum(lineNum);
      goodsEvaluate.setImgList(imgList);
      goodsEvaluate.setComments(commentsNew);
      goodsEvaluateDao.save(goodsEvaluate);
      return result;
   }
   @Override
   public void addGoodsEvaluateByDaTaoKe() {
      List<Long> listId = null;
@@ -2056,7 +2242,7 @@
         for (GoodsEvaluate goodsEvaluate : listExist) {
            GoodsDetailVO goods = goodsEvaluate.getGoods();
            if (goods != null && goods.getGoodsType() == 1) {
               listId.add(goods.getGoodsId());
               listId.add(Long.parseLong(goods.getGoodsId()));
            }
         }
      }
@@ -2071,15 +2257,24 @@
      }
      for (int i = 0; i < list.size(); i++) {
         boolean cerateGoods = cerateGoods(list.get(i));
         boolean cerateGoods = addByDaTaoKeGoods(list.get(i));
         if (cerateGoods) {
            break;
         }
      }
   }
   private boolean cerateGoods(DaTaoKeDetailV2 daTaoKe) {
   @Override
   public boolean addByDaTaoKeGoods(DaTaoKeDetailV2 daTaoKe) {
      try {
         Date limitDate = DateUtil.reduceDay(new Date(), 7);
         List<GoodsEvaluate> evaluateList = goodsEvaluateDao.queryExistLimitTime(Constant.SOURCE_TYPE_TAOBAO,
               daTaoKe.getGoodsId()+"", limitDate);
         if (evaluateList != null && evaluateList.size() > 0)
            return false;
         TaoBaoGoodsBrief goodsBrief = redisManager.getTaoBaoGoodsBrief(daTaoKe.getGoodsId());
         if (goodsBrief == null) {
            return false;
@@ -2093,8 +2288,15 @@
         ConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate("android", "55");
         paramsDTO.setBaseFanliRate(hongBaoManageService.getBaseFanliRate());
         GoodsDetailVO goodsVO = GoodsDetailVOFactory.convertTaoBao(goodsBrief, paramsDTO);
         // 发布用户
         ActivityUser user = activityUserService.getRandomByDaTaoKeCid(daTaoKe.getCid());
         ActivityUser user = null;
         if(daTaoKe.getCid() != null) {
            user = activityUserService.getRandomByDaTaoKeCid(daTaoKe.getCid());
         } else {
            List<ActivityRuleUser> ruleList = activityUserService.listByRuleCode(ActivityRuleUser.RULE_HAOHUO, 1, 20);
            user = ruleList.get((int) (ruleList.size() * Math.random())).getActivityUser();
         }
         String desc = daTaoKe.getDesc().replace(",", ",");
         String[] split = desc.split(",");
@@ -2136,7 +2338,6 @@
         goodsEvaluate.setState(1);
         goodsEvaluate.setDynamicType(1);
         goodsEvaluate.setType(EvaluateEnum.single);
         goodsEvaluate.setShareNum((int) (Math.random() * 5000) + 1000);
         goodsEvaluate.setShareNumReal(0);
         goodsEvaluate.setWeight(0.0);
@@ -2149,9 +2350,6 @@
         List<String> goodsimgs = goodsBrief.getImgList();
         List<String> imgs = new ArrayList<>();
         if (!StringUtil.isNullOrEmpty(goodsBrief.getPictUrlWhite())) {
            imgs.add(goodsBrief.getPictUrlWhite());
         }
         imgs.addAll(goodsimgs);
         int i = 0;
@@ -2310,7 +2508,7 @@
            return;
         }
         List<GoodsEvaluate> queryExist = goodsEvaluateDao.queryExist(Constant.SOURCE_TYPE_TAOBAO,
               goods.getAuctionId());
               goods.getAuctionId()+"");
         if (queryExist == null || queryExist.size() == 0) {
            return;
         }
@@ -2330,7 +2528,7 @@
      if (jdGoods == null) {
         return;
      }
      List<GoodsEvaluate> queryExist = goodsEvaluateDao.queryExist(Constant.SOURCE_TYPE_JD, jdGoods.getSkuId());
      List<GoodsEvaluate> queryExist = goodsEvaluateDao.queryExist(Constant.SOURCE_TYPE_JD, jdGoods.getSkuId()+"");
      if (queryExist == null || queryExist.size() == 0) {
         return;
      }
@@ -2347,7 +2545,7 @@
      if (pddGoods == null) {
         return;
      }
      List<GoodsEvaluate> queryExist = goodsEvaluateDao.queryExist(Constant.SOURCE_TYPE_PDD, pddGoods.getGoodsId());
      List<GoodsEvaluate> queryExist = goodsEvaluateDao.queryExist(Constant.SOURCE_TYPE_PDD, pddGoods.getGoodsId()+"");
      if (queryExist == null || queryExist.size() == 0) {
         return;
      }
@@ -2364,7 +2562,7 @@
         return;
      }
      List<GoodsEvaluate> queryExist = goodsEvaluateDao.queryExist(Constant.SOURCE_TYPE_VIP,
            Long.parseLong(goods.getGoodsId()));
            goods.getGoodsId());
      if (queryExist == null || queryExist.size() == 0) {
         return;
      }
@@ -2375,12 +2573,29 @@
      updateGoods(queryExist, goodsNew);
   }
   @Override
   public void updateSuningGoods(SuningGoodsInfo goods) {
      if (goods == null) {
         return;
      }
      List<GoodsEvaluate> queryExist = goodsEvaluateDao.queryExist(Constant.SOURCE_TYPE_SUNING,
            goods.getCommodityInfo().getCommodityCode());
      if (queryExist == null || queryExist.size() == 0) {
         return;
      }
      ConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate("android", "55");
      paramsDTO.setBaseFanliRate(hongBaoManageService.getBaseFanliRate());
      GoodsDetailVO goodsNew = GoodsDetailVOFactory.convertSuningGoods(goods, paramsDTO);
      updateGoods(queryExist, goodsNew);
   }
   private void updateGoods(List<GoodsEvaluate> listExist, GoodsDetailVO goodsNew) {
      long goodsId = goodsNew.getGoodsId();
      String goodsId = goodsNew.getGoodsId();
      int goodsType = goodsNew.getGoodsType();
      for (GoodsEvaluate goodsEvaluate : listExist) {
         GoodsDetailVO goodsDetailVO = goodsEvaluate.getGoods();
         if (goodsDetailVO != null && goodsDetailVO.getGoodsId() != null && goodsDetailVO.getGoodsId() == goodsId
         if (goodsDetailVO != null && goodsDetailVO.getGoodsId() != null && goodsDetailVO.getGoodsId().equalsIgnoreCase(goodsId)
               && goodsDetailVO.getGoodsType() == goodsType) {
            goodsEvaluate.setGoods(goodsNew);
         }
@@ -2393,7 +2608,7 @@
         for (ImgInfo imgInfo : imgList) {
            SimpleGoods simpleGoods = imgInfo.getGoods();
            if (simpleGoods == null || simpleGoods.getGoodsId() != goodsId
            if (simpleGoods == null || !simpleGoods.getGoodsId().equalsIgnoreCase(goodsId)
                  || goodsType != simpleGoods.getGoodsType()) {
               continue;
            }
@@ -2419,12 +2634,12 @@
   }
   @Override
   public void offlineTaoBaoGoods(Long goodsId) {
   public void offlineTaoBaoGoods(String goodsId) {
      try {
         if (goodsId == null) {
            return;
         }
         List<GoodsEvaluate> list = goodsEvaluateDao.queryExist(Constant.SOURCE_TYPE_TAOBAO, goodsId);
         List<GoodsEvaluate> list = goodsEvaluateDao.queryExist(Constant.SOURCE_TYPE_TAOBAO,goodsId);
         if (list == null || list.size() == 0) {
            return;
         }
@@ -2437,7 +2652,7 @@
   }
   @CacheEvict(value = "dynamicCache", allEntries = true)
   private void offlineGoods(List<GoodsEvaluate> list, int goodsType, Long goodsId) {
   private void offlineGoods(List<GoodsEvaluate> list, int goodsType, String goodsId) {
      for (GoodsEvaluate goodsEvaluate : list) {
         // 商品下架
@@ -2518,4 +2733,14 @@
      }
   }
   @Override
   public GoodsEvaluate queryExistSingle(String goodsId, int goodsType) {
      List<GoodsEvaluate> list = goodsEvaluateDao.queryExistSingle(goodsType, goodsId);
      if (list != null && list.size() > 0)
         return list.get(0);
      return null;
   }
}