From b416c2ffd263ca9d191fc1109bd72d10f8c5176d Mon Sep 17 00:00:00 2001 From: yj <Administrator@192> Date: 星期三, 04 三月 2020 14:19:11 +0800 Subject: [PATCH] Merge branch 'div' of ssh://193.112.35.168:29418/fanli-server into div --- fanli/src/main/java/com/yeshi/fanli/service/impl/dynamic/GoodsEvaluateServiceImpl.java | 180 ++++++++++++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 146 insertions(+), 34 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/dynamic/GoodsEvaluateServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/dynamic/GoodsEvaluateServiceImpl.java index cc9edc0..4843754 100644 --- a/fanli/src/main/java/com/yeshi/fanli/service/impl/dynamic/GoodsEvaluateServiceImpl.java +++ b/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; @@ -19,6 +20,7 @@ import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartHttpServletRequest; import org.yeshi.utils.DateUtil; +import org.yeshi.utils.JsonUtil; import org.yeshi.utils.tencentcloud.COSManager; import com.yeshi.fanli.dao.dynamic.GoodsEvaluateDao; @@ -48,6 +50,7 @@ import com.yeshi.fanli.service.inter.dynamic.GoodsEvaluateService; import com.yeshi.fanli.service.inter.goods.ShareGoodsService; import com.yeshi.fanli.service.inter.order.config.HongBaoManageService; +import com.yeshi.fanli.service.manger.goods.ConvertLinkManager; import com.yeshi.fanli.util.Constant; import com.yeshi.fanli.util.FilePathEnum; import com.yeshi.fanli.util.RedisManager; @@ -93,6 +96,9 @@ @Resource private ShareGoodsService shareGoodsService; + @Resource + private ConvertLinkManager convertLinkManager; + @Override @@ -106,7 +112,7 @@ if (StringUtil.isNullOrEmpty(tilte)) { throw new GoodsEvaluateException(1, "鎺ㄨ崘璇笉鑳戒负绌�"); } - + try { ActivityUser activityUser = activityUserService.getActivityUserByNickName(record.getUser(), file); if (activityUser == null) @@ -342,17 +348,15 @@ if (picNum - 1 == i) { imgInfo0.setType(ImgEnum.goods); SimpleGoods simpleGoods = new SimpleGoods(); + simpleGoods.setState(goodsDetailVO.getState()); simpleGoods.setGoodsId(goodsId); simpleGoods.setGoodsType(goodsType); - simpleGoods.setPrice(goodsDetailVO.getCouponPrice()); CouponInfoVO couponInfo = goodsDetailVO.getCouponInfo(); if (couponInfo == null) { simpleGoods.setPrice(goodsDetailVO.getZkPrice()); - simpleGoods.setState(1); } else { simpleGoods.setPrice(goodsDetailVO.getCouponPrice()); simpleGoods.setAmount(couponInfo.getAmount()); - simpleGoods.setState(0); } imgInfo0.setGoods(simpleGoods); imgInfo0.setGoodsVO(goodsDetailVO); @@ -400,23 +404,21 @@ 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; - } else { addComment = false; - } + } continue; } commentsNew.add(commentInfo); } - } + } if (addComment) { String commentText = ""; if (goodsType == Constant.SOURCE_TYPE_TAOBAO) { - TaoBaoLink taoBaoLink = shareGoodsService.getTaoBaoLinkForShare(0L, goodsId, null); + TaoBaoLink taoBaoLink = shareGoodsService.getTaoBaoLinkForShare(1L, goodsId, "0"); String template = configService.get(ConfigKeyEnum.quickShareTBCommentText.getKey()); commentText = template.replace("[鍙d护]", TaoBaoUtil.filterTaoToken(taoBaoLink.getTaoToken())); } else if (goodsType == Constant.SOURCE_TYPE_JD) { @@ -426,11 +428,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 +445,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); } @@ -597,18 +602,19 @@ imgInfo0.setType(ImgEnum.goods); SimpleGoods simpleGoods = new SimpleGoods(); + simpleGoods.setState(goodsDetailVO.getState()); simpleGoods.setGoodsId(goodsDetailVO.getGoodsId()); simpleGoods.setGoodsType(goodsDetailVO.getGoodsType()); - simpleGoods.setPrice(goodsDetailVO.getCouponPrice()); CouponInfoVO couponInfo = goodsDetailVO.getCouponInfo(); if (couponInfo == null) { - simpleGoods.setState(1); + simpleGoods.setPrice(goodsDetailVO.getZkPrice()); } else { + simpleGoods.setPrice(goodsDetailVO.getCouponPrice()); simpleGoods.setAmount(couponInfo.getAmount()); - simpleGoods.setState(0); } imgInfo0.setGoods(simpleGoods); imgInfo0.setGoodsVO(goodsDetailVO); + listImg.add(imgInfo0); totalImg++; } @@ -681,7 +687,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 +701,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 +718,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); } @@ -729,7 +736,39 @@ if (StringUtil.isNullOrEmpty(pid)) { throw new GoodsEvaluateException(1, "璇蜂繚瀛樼涓�閮ㄥ垎淇℃伅"); } + + if (StringUtil.isNullOrEmpty(commentInfo.getCoupon())) { + throw new GoodsEvaluateException(1, "鍒搁潰棰濅笉鑳戒负绌�"); + } + + if (StringUtil.isNullOrEmpty(commentInfo.getTagDesc())) { + throw new GoodsEvaluateException(1, "鎻忚堪璇笉鑳戒负绌�"); + } + + String tagUrl = commentInfo.getTagUrl(); + String content = commentInfo.getContent(); + if (StringUtil.isNullOrEmpty(tagUrl) && StringUtil.isNullOrEmpty(content) ) { + throw new GoodsEvaluateException(1, "璇勮璇拰閾炬帴涓嶈兘鍚屾椂涓虹┖"); + } + String endTime = commentInfo.getEndTime(); + if (!StringUtil.isNullOrEmpty(endTime)) { + try { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + sdf.parse(endTime); + } catch (Exception e) { + throw new GoodsEvaluateException(1, "璇峰~鍐欐纭殑鏃堕棿鏍煎紡锛�2020-03-05"); + } + } + + if(!StringUtil.isNullOrEmpty(content)) { + try { + convertLinkManager.convertLinkFromText(content, 1L, true); + } catch (Exception e) { + throw new GoodsEvaluateException(1, "杞摼澶辫触"); + } + } + GoodsEvaluate resultObj = goodsEvaluateDao.getById(pid); if (resultObj == null) throw new GoodsEvaluateException(1, "绗竴閮ㄥ垎淇℃伅缂哄け"); @@ -739,9 +778,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 +797,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 +1291,69 @@ @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)) { + if (commentInfo.getTypeEnum() == null) { + commentInfo.setType(""); + } else { + commentInfo.setType(commentInfo.getTypeEnum().getDesc()); + } + } else if (typeCoupon.equals(CommentInfoEnum.goodsCoupon.name())) { + commentInfo.setType("鍟嗗搧浼樻儬鍒�"); + } else if (typeCoupon.equals(CommentInfoEnum.currencyCoupon.name())) { + commentInfo.setType("閫氱敤浼樻儬鍒�"); + } + + 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; } @@ -1296,8 +1397,12 @@ GoodsDetailVO goods = goodsEvaluate.getGoods(); if (goods != null) { GoodsDetailVO goodsNew = getGoodsNewInfo(goods.getGoodsId(), goods.getGoodsType(), paramsDTO); - if (goodsNew != null) + if (goodsNew != null) { goodsEvaluate.setGoods(goodsNew); + } else { + goods.setState(1); + goodsEvaluate.setGoods(goods); + } } // 鏇存柊鍟嗗搧淇℃伅 List<ImgInfo> imgList = goodsEvaluate.getImgList(); @@ -1318,14 +1423,20 @@ CouponInfoVO couponInfo = goodsDetailVO.getCouponInfo(); if (couponInfo == null) { simpleGoods.setPrice(goodsDetailVO.getZkPrice()); - simpleGoods.setState(1); } else { simpleGoods.setPrice(goodsDetailVO.getCouponPrice()); simpleGoods.setAmount(couponInfo.getAmount()); - simpleGoods.setState(0); } imgInfo.setGoods(simpleGoods); imgInfo.setGoodsVO(goodsDetailVO); + } else { + simpleGoods.setState(1); + imgInfo.setGoods(simpleGoods); + GoodsDetailVO goodsVO = imgInfo.getGoodsVO(); + if (goodsVO != null) { + goodsVO.setState(1); + imgInfo.setGoodsVO(goodsVO); + } } } @@ -1400,13 +1511,11 @@ SimpleGoods simpleGoods = new SimpleGoods(); simpleGoods.setGoodsId(goodsVO.getGoodsId()); simpleGoods.setGoodsType(goodsVO.getGoodsType()); - + simpleGoods.setState(goodsVO.getState()); CouponInfoVO couponInfo = goodsVO.getCouponInfo(); if (couponInfo == null) { - simpleGoods.setState(0); simpleGoods.setPrice(goodsVO.getZkPrice()); } else { - simpleGoods.setState(goodsVO.getState()); simpleGoods.setPrice(goodsVO.getCouponPrice()); simpleGoods.setAmount(couponInfo.getAmount()); } @@ -1414,7 +1523,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("[鍙d护]", TaoBaoUtil.filterTaoToken(taoBaoLink.getTaoToken())); @@ -1425,11 +1534,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); -- Gitblit v1.8.0