admin
2020-03-03 7b7536f2923b5ce06d4b69b22c16e1a4946bf16b
fanli/src/main/java/com/yeshi/fanli/service/impl/dynamic/GoodsEvaluateServiceImpl.java
@@ -3,6 +3,7 @@
import java.awt.image.BufferedImage;
import java.io.InputStream;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
@@ -400,7 +401,7 @@
      List<CommentInfo> comments = resultObj.getComments();
      if (comments != null) {
         for (CommentInfo commentInfo: comments) {
            if (commentInfo.getType() == CommentInfoEnum.goodsCoupon) {
            if (commentInfo.getTypeEnum() == CommentInfoEnum.goodsCoupon) {
               if (oldGoodsVO != null && oldGoodsVO.getGoodsId().longValue() == goodsId.longValue() 
                     && oldGoodsVO.getGoodsType() == goodsType) {
                  addComment = true;
@@ -416,7 +417,7 @@
      if (addComment) {
         String commentText = "";
         if (goodsType == Constant.SOURCE_TYPE_TAOBAO) {
            TaoBaoLink taoBaoLink = shareGoodsService.getTaoBaoLinkForShare(0L, goodsId, null);
            TaoBaoLink taoBaoLink = shareGoodsService.getTaoBaoLinkForShare(1L, goodsId, null);
            String template = configService.get(ConfigKeyEnum.quickShareTBCommentText.getKey());
            commentText = template.replace("[口令]", TaoBaoUtil.filterTaoToken(taoBaoLink.getTaoToken()));
         } else if (goodsType == Constant.SOURCE_TYPE_JD) {
@@ -426,11 +427,11 @@
               couponUrl = couponInfo.getLink();
            }
            String materialId = "https://item.jd.com/" + goodsId + ".html";
            String jumpLink = JDApiUtil.convertLinkWithSubUnionId(materialId, couponUrl, JDApiUtil.POSITION_SHARE + "","0");
            String jumpLink = JDApiUtil.convertLinkWithSubUnionId(materialId, couponUrl, JDApiUtil.POSITION_SHARE + "","1");
            String template = configService.get(ConfigKeyEnum.quickShareJDCommentText.getKey());
            commentText = template.replace("[链接]", jumpLink);         
         } else if (goodsType == Constant.SOURCE_TYPE_PDD) {
            String jumpLink = PinDuoDuoApiUtil.getPromotionUrl(goodsId, PinDuoDuoApiUtil.PID_SHARE + "", "0");
            String jumpLink = PinDuoDuoApiUtil.getPromotionUrl(goodsId, PinDuoDuoApiUtil.PID_SHARE + "", "1");
            String template = configService.get(ConfigKeyEnum.quickSharePDDCommentText.getKey());
            commentText = template.replace("[链接]", jumpLink);
         }
@@ -443,10 +444,13 @@
            commentText = commentText.replace("[券后价]", goodsDetailVO.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.setType(CommentInfoEnum.goodsCoupon);
         commentInfo.setTypeEnum(CommentInfoEnum.goodsCoupon);
         commentsNew.add(commentInfo);
         resultObj.setComments(commentsNew);
      }
@@ -681,7 +685,7 @@
   }
   @Override
   public void saveGoodsCoupon(String pid, String tags, String content) throws GoodsEvaluateException, Exception {
   public void saveGoodsCoupon(String pid, String content) throws GoodsEvaluateException, Exception {
      if (StringUtil.isNullOrEmpty(pid)) {
         throw new GoodsEvaluateException(1, "请保存第一部分信息");
      }
@@ -695,9 +699,9 @@
      List<CommentInfo> oldComments = resultObj.getComments();
      if (oldComments != null) {
         for (CommentInfo info : oldComments) {
            if (CommentInfoEnum.goodsCoupon == info.getType()) {
            if (CommentInfoEnum.goodsCoupon == info.getTypeEnum()) {
               goodsCoupon = info;
            } else if (CommentInfoEnum.currencyCoupon == info.getType()) {
            } else if (CommentInfoEnum.currencyCoupon == info.getTypeEnum()) {
               currencyCoupon = info;
            }
         }
@@ -712,7 +716,8 @@
            commentInfo.setId(UUID.randomUUID().toString().replace("-", ""));
         }
         commentInfo.setContent(content);
         commentInfo.setType(CommentInfoEnum.goodsCoupon);
         commentInfo.setType(CommentInfoEnum.goodsCoupon.getDesc());
         commentInfo.setTypeEnum(CommentInfoEnum.goodsCoupon);
         comments.add(commentInfo);
      }
@@ -739,9 +744,9 @@
      List<CommentInfo> oldComments = resultObj.getComments();
      if (oldComments != null) {
         for (CommentInfo info : oldComments) {
            if (CommentInfoEnum.goodsCoupon == info.getType()) {
            if (CommentInfoEnum.goodsCoupon == info.getTypeEnum()) {
               goodsCoupon = info;
            } else if (CommentInfoEnum.currencyCoupon == info.getType()) {
            } else if (CommentInfoEnum.currencyCoupon == info.getTypeEnum()) {
               currencyCoupon = info;
            }
         }
@@ -758,8 +763,16 @@
         } else {
            commentInfo.setId(UUID.randomUUID().toString().replace("-", ""));
         }
         commentInfo.setType(CommentInfoEnum.currencyCoupon);
         // 券类型
         String tags = commentInfo.getTags();
         if (StringUtil.isNullOrEmpty(tags)) {
            commentInfo.setType(CommentInfoEnum.currencyCoupon.getDesc());
         } else {
            commentInfo.setType(tags);
         }
         commentInfo.setTypeEnum(CommentInfoEnum.currencyCoupon);
         // 标签信息
         List<ClientTextStyleVO> tagList = new ArrayList<>();
         String couponSource = commentInfo.getCouponSource();
@@ -1244,15 +1257,61 @@
   @Override
   @Cacheable(value = "dynamicCache", key = "'queryMaterialsCache-'+#start+'-'+#type")
   public List<GoodsEvaluate> queryMaterialsCache(int start, int count, int type) {
   public List<GoodsEvaluate> queryMaterialsCache(int start, int count, int type) throws Exception {
      List<GoodsEvaluate> list = goodsEvaluateDao.queryValid(start, count, type);
      List<GoodsEvaluate> listOBJ = list;
      // 更新商品信息
      executor.execute(new Runnable() {
         @Override
         public void run() {
            updateGoodInfo(list);
            updateGoodInfo(listOBJ);
         }
      });
      if (list == null) {
         list = new ArrayList<>();
      }
      for (GoodsEvaluate goodsEvaluate: list) {
         List<CommentInfo> comments = goodsEvaluate.getComments();
         if (comments != null) {
            Date now = new Date();
            for (CommentInfo commentInfo: comments) {
               String typeCoupon = commentInfo.getType();
               if (StringUtil.isNullOrEmpty(typeCoupon)) {
                  commentInfo.setType(commentInfo.getTypeEnum().getDesc());
               }
               String coupon = commentInfo.getCoupon();
               String endTime = commentInfo.getEndTime();
               if (!StringUtil.isNullOrEmpty(coupon) && !StringUtil.isNullOrEmpty(endTime)) {
                  SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
                  Date endDay = sdf.parse(endTime);
                  if (endDay.getTime() <= now.getTime()) {
                     continue;
                  }
                  int daysBetween = DateUtil.daysBetween(endDay, now);
                  if (daysBetween <= 0) {
                     continue;
                  }
                  ClientTextStyleVO styleVO = new ClientTextStyleVO();
                  styleVO.setColor("#E5005C");
                  styleVO.setContent(daysBetween + "天后过期");
                  styleVO.setContent(coupon);
                  List<ClientTextStyleVO> tagList = commentInfo.getTagList();
                  tagList.add(styleVO);
                  commentInfo.setTagList(tagList);
               }
            }
         }
      }
      return list;
   }
@@ -1414,7 +1473,7 @@
               goodsEvaluate.setGoods(goodsVO);
               
               
               TaoBaoLink taoBaoLink = shareGoodsService.getTaoBaoLinkForShare(0L, goodsVO.getGoodsId(), null);
               TaoBaoLink taoBaoLink = shareGoodsService.getTaoBaoLinkForShare(1L, goodsVO.getGoodsId(), null);
               String template = configService.get(ConfigKeyEnum.quickShareTBCommentText.getKey());
               String commentText = template.replace("[口令]", TaoBaoUtil.filterTaoToken(taoBaoLink.getTaoToken()));
            
@@ -1425,11 +1484,14 @@
               } 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.setType(CommentInfoEnum.goodsCoupon);
               commentInfo.setTypeEnum(CommentInfoEnum.goodsCoupon);
               commentInfo.setType(CommentInfoEnum.goodsCoupon.getDesc());
               
               List<CommentInfo> commentsNew = new ArrayList<>();
               commentsNew.add(commentInfo);