yj
2020-03-05 b842c5a62188655b9892a09debe7985fa395f1ea
fanli/src/main/java/com/yeshi/fanli/service/impl/dynamic/GoodsEvaluateServiceImpl.java
@@ -57,6 +57,7 @@
import com.yeshi.fanli.util.StringUtil;
import com.yeshi.fanli.util.cache.JDGoodsCacheUtil;
import com.yeshi.fanli.util.cache.PinDuoDuoCacheUtil;
import com.yeshi.fanli.util.cache.TaoBaoGoodsCacheUtil;
import com.yeshi.fanli.util.factory.goods.GoodsDetailVOFactory;
import com.yeshi.fanli.util.jd.JDApiUtil;
import com.yeshi.fanli.util.jd.JDUtil;
@@ -83,6 +84,7 @@
   @Resource(name = "taskExecutor")
   private TaskExecutor executor;
   @Resource
   private JDGoodsCacheUtil jdGoodsCacheUtil;
@@ -123,11 +125,10 @@
      }
      if (record.getEndTime() != null) {
         if (record.getEndTime().getTime() <= java.lang.System.currentTimeMillis())
            throw new GoodsEvaluateException(1, "截止时间必须大于当前时间");
         if (record.getStartTime() != null && record.getEndTime().getTime() <= record.getStartTime().getTime())
            throw new GoodsEvaluateException(1, "截止时间必须大于开始时间");
      } else {
         record.setEndTime(DateUtil.plusDayDate(3,new Date()));
      }
      Integer dynamicType = record.getDynamicType();
@@ -135,8 +136,9 @@
         record.setDynamicType(1);
      }
      if (record.getShareNum() == null)
         record.setShareNum(0);
      if (record.getShareNum() == null || record.getShareNum() <=0 ) {
         record.setShareNum((int)(Math.random()*5000)+1000);
      }
      if (record.getWeight() == null)
         record.setWeight(0.0);
@@ -334,9 +336,10 @@
         throw new GoodsEvaluateException(1, "该商品信息不存在");
      }
      List<ImgInfo> tempList = new ArrayList<ImgInfo>();
      int totalImg = 0;
      if (listpic != null && listpic.size() > 0) {
         for (int i = 0; i < listpic.size(); i++) {
         for (int i = 0; i < listpic.size() && i < 9; i++) {
            ImgInfo imgInfo0 = new ImgInfo();
            imgInfo0.setId(UUID.randomUUID().toString().replace("-", ""));
            imgInfo0.setW(1);
@@ -361,12 +364,17 @@
               }
               imgInfo0.setGoods(simpleGoods);
               imgInfo0.setGoodsVO(goodsDetailVO);
               listImg.add(imgInfo0);
            } else {
               imgInfo0.setType(ImgEnum.img);
               tempList.add(imgInfo0);
            }
            listImg.add(imgInfo0);
            totalImg++;
         }
      }
      if (tempList.size() > 0) {
         listImg.addAll(tempList);
      }
      if (listOld != null && listOld.size() > 0) {
@@ -403,7 +411,7 @@
      boolean addComment = true;
      List<CommentInfo> commentsNew = new ArrayList<>();
      List<CommentInfo> comments = resultObj.getComments();
      if (comments != null) {
      if (comments != null && comments.size() > 0) {
         for (CommentInfo commentInfo: comments) {
            if (commentInfo.getTypeEnum() == CommentInfoEnum.goodsCoupon) {
               if (oldGoodsVO != null && oldGoodsVO.getGoodsId().longValue() == goodsId.longValue() 
@@ -416,11 +424,10 @@
         }
      } 
      
      CouponInfoVO couponInfo1 = goodsDetailVO.getCouponInfo();
      if (couponInfo1 == null) {
         addComment = false;
      }
      /*
       * // 无券不能自动 生成评论 CouponInfoVO couponInfo1 = goodsDetailVO.getCouponInfo(); if
       * (couponInfo1 == null) { addComment = false; }
       */
      
      
      if (addComment) {
@@ -428,7 +435,7 @@
         if (goodsType == Constant.SOURCE_TYPE_TAOBAO) {
            TaoBaoLink taoBaoLink = shareGoodsService.getTaoBaoLinkForShare(1L, goodsId, "0");
            String template = configService.get(ConfigKeyEnum.quickShareTBCommentText.getKey());
            commentText = template.replace("[口令]", TaoBaoUtil.filterTaoToken(taoBaoLink.getTaoToken()));
            commentText = template.replace("[淘口令]", TaoBaoUtil.filterTaoToken(taoBaoLink.getTaoToken()));
         } else if (goodsType == Constant.SOURCE_TYPE_JD) {
            String couponUrl = null;
            JDCouponInfo couponInfo = JDUtil.getShowCouponInfo(jdGoods);
@@ -484,6 +491,10 @@
      if (goodsType == Constant.SOURCE_TYPE_TAOBAO) {
         try {
            TaoBaoGoodsBrief goodsBrief = redisManager.getTaoBaoGoodsBrief(goodsId);
            String pictUrlWhite = goodsBrief.getPictUrlWhite();
            if (!StringUtil.isNullOrEmpty(pictUrlWhite)) {
               goodsBrief.setPictUrl(pictUrlWhite);
            }
            goodsDetail = GoodsDetailVOFactory.convertTaoBao(goodsBrief, params);
         } catch (TaobaoGoodsDownException e) {
            throw new GoodsEvaluateException(1, "商品已下架");
@@ -592,6 +603,7 @@
               }
               String picUrl = goodsDetailVO.getPicUrl();
               if (fileRequest != null) {
                  MultipartFile file = fileRequest.getFile("file" + i);
                  if (file != null) {
@@ -719,6 +731,15 @@
      List<CommentInfo> comments = new ArrayList<>();
      if (!StringUtil.isNullOrEmpty(content)) {
         if(!StringUtil.isNullOrEmpty(content)) {
            try {
               convertLinkManager.convertLinkFromText(content, 1L, true);
            } catch (Exception e) {
               throw new GoodsEvaluateException(1, "不包含可转链的口令与链接");
            }
         }
         CommentInfo commentInfo = new CommentInfo();
         if (goodsCoupon != null) {
            commentInfo.setId(goodsCoupon.getId());
@@ -776,7 +797,7 @@
         try {
            convertLinkManager.convertLinkFromText(content, 1L, true);
         } catch (Exception e) {
            throw new GoodsEvaluateException(1, "转链失败");
            throw new GoodsEvaluateException(1, "不包含可转链的口令与链接");
         }
      }
      
@@ -1320,12 +1341,15 @@
      Date now = new Date();
      SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
      for (GoodsEvaluate goodsEvaluate: list) {
         int comment = 0;
         List<CommentInfo> comments = goodsEvaluate.getComments();
         if (comments != null) {
         if (comments != null && comments.size() > 0) {
            EvaluateEnum typeEnum = goodsEvaluate.getType();
            List<CommentInfo> commentNew = new ArrayList<>();
            
            for (CommentInfo commentInfo: comments) {
               comment ++;
               String typeCoupon = commentInfo.getType();
               if (StringUtil.isNullOrEmpty(typeCoupon)) {
                  if (commentInfo.getTypeEnum() == null) {
@@ -1348,6 +1372,7 @@
                  }
               }
               
               String coupon = commentInfo.getCoupon();
               String endTime = commentInfo.getEndTime();
               if (!StringUtil.isNullOrEmpty(coupon) && !StringUtil.isNullOrEmpty(endTime)) {
@@ -1362,13 +1387,9 @@
                        
                        List<ClientTextStyleVO> tagList = commentInfo.getTagList();
                        tagList.add(styleVO);
                        commentInfo.setTagList(tagList);
                        
                        if (typeEnum != null && typeEnum == EvaluateEnum.single) {
                           //新增
                           commentNew.add(commentInfo);
                        }
                        commentNew.add(commentInfo);
                     }
                  }
               }
@@ -1376,10 +1397,11 @@
            goodsEvaluate.setComments(commentNew);
            
            if (typeEnum != null && typeEnum == EvaluateEnum.single) {
                if (commentNew.size() == 0) {
               if (comment > 0 && commentNew.size() == 0) { // 所有券评论下架
                   GoodsDetailVO goods = goodsEvaluate.getGoods();
                   if (goods != null) {
                      goods.setState(1); // 评论不存在 下架
                      LogHelper.test("获取列表商品下架1");
                   }
                   
                   List<ImgInfo> imgList = goodsEvaluate.getImgList();
@@ -1388,6 +1410,7 @@
                        SimpleGoods simpleGoods = imgInfo.getGoods();
                        if (simpleGoods != null) {
                           simpleGoods.setState(1);
                            LogHelper.test("获取列表商品下架2");
                        }
                     }
                     
@@ -1450,7 +1473,7 @@
                        if (!StringUtil.isNullOrEmpty(endTime)) {
                           Date endDay = sdf.parse(endTime);
                           if (endDay.getTime() < now.getTime()) {
                              goodsEvaluate.setState(1); // 活动过期
                              goodsEvaluate.setState(0); // 活动过期
                           }
                        }
                     }
@@ -1518,7 +1541,16 @@
   private GoodsDetailVO getGoodsNewInfo(Long goodsId, int goodsType, ConfigParamsDTO paramsDTO) {
      GoodsDetailVO vo = null;
      if (goodsType == Constant.SOURCE_TYPE_TAOBAO) {
         TaoBaoGoodsBrief goods;
         try {
            goods = redisManager.getTaoBaoGoodsBrief(goodsId);
            if (goods != null) {
               vo = GoodsDetailVOFactory.convertTaoBao(goods, paramsDTO);
            }
         } catch (TaobaoGoodsDownException e) {
            e.printStackTrace();
         }
      } else if (goodsType == Constant.SOURCE_TYPE_JD) {
         JDGoods goodsInfo = jdGoodsCacheUtil.getGoodsInfo(goodsId);
         if (goodsInfo != null) {
@@ -1585,32 +1617,33 @@
               } else {
                  simpleGoods.setPrice(goodsVO.getCouponPrice());
                  simpleGoods.setAmount(couponInfo.getAmount());
                  TaoBaoLink taoBaoLink = shareGoodsService.getTaoBaoLinkForShare(1L, goodsVO.getGoodsId(), null);
                  String template = configService.get(ConfigKeyEnum.quickShareTBCommentText.getKey());
                  String commentText = template.replace("[口令]", TaoBaoUtil.filterTaoToken(taoBaoLink.getTaoToken()));
                  commentText = commentText.replace("[原价]", goodsVO.getZkPrice().toString());
                  if (!goodsVO.isHasCoupon()) {
                     commentText = commentText.replace("领券抢购", "抢购");
                     commentText = commentText.replace("【券后价】[券后价]元", "");
                  } else {
                     commentText = commentText.replace("[券后价]", goodsVO.getCouponPrice().toString());
                  }
                  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.setId(UUID.randomUUID().toString().replace("-", ""));
                  commentInfo.setContent(commentText);
                  commentInfo.setTypeEnum(CommentInfoEnum.goodsCoupon);
                  commentInfo.setType(CommentInfoEnum.goodsCoupon.getDesc());
                  List<CommentInfo> commentsNew = new ArrayList<>();
                  commentsNew.add(commentInfo);
                  goodsEvaluate.setComments(commentsNew);
               }
               imgInfo.setGoods(simpleGoods);
               TaoBaoLink taoBaoLink = shareGoodsService.getTaoBaoLinkForShare(1L, goodsVO.getGoodsId(), null);
               String template = configService.get(ConfigKeyEnum.quickShareTBCommentText.getKey());
               String commentText = template.replace("[淘口令]", TaoBaoUtil.filterTaoToken(taoBaoLink.getTaoToken()));
               commentText = commentText.replace("[原价]", goodsVO.getZkPrice().toString());
               if (!goodsVO.isHasCoupon()) {
                  commentText = commentText.replace("领券抢购", "抢购");
                  commentText = commentText.replace("【券后价】[券后价]元", "");
               } else {
                  commentText = commentText.replace("[券后价]", goodsVO.getCouponPrice().toString());
               }
               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.setId(UUID.randomUUID().toString().replace("-", ""));
               commentInfo.setContent(commentText);
               commentInfo.setTypeEnum(CommentInfoEnum.goodsCoupon);
               commentInfo.setType(CommentInfoEnum.goodsCoupon.getDesc());
               List<CommentInfo> commentsNew = new ArrayList<>();
               commentsNew.add(commentInfo);
               goodsEvaluate.setComments(commentsNew);
               goodsEvaluate.setGoods(goodsVO);
               
            }