From 536987bf3cdde54110dae300cfe091c4d45a5321 Mon Sep 17 00:00:00 2001 From: admin <2780501319@qq.com> Date: 星期四, 05 三月 2020 22:25:55 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/div' into div --- fanli/src/main/java/com/yeshi/fanli/service/impl/dynamic/GoodsEvaluateServiceImpl.java | 284 ++++++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 203 insertions(+), 81 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 c3252ff..0a2512b 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 @@ -43,6 +43,7 @@ import com.yeshi.fanli.entity.taobao.TaoBaoLink; 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.taobao.TaobaoGoodsDownException; import com.yeshi.fanli.log.LogHelper; import com.yeshi.fanli.service.inter.activity.ActivityUserService; @@ -57,6 +58,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 +85,7 @@ @Resource(name = "taskExecutor") private TaskExecutor executor; + @Resource private JDGoodsCacheUtil jdGoodsCacheUtil; @@ -123,11 +126,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 +137,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 +337,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 +365,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 +412,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 +425,10 @@ } } - - CouponInfoVO couponInfo1 = goodsDetailVO.getCouponInfo(); - if (couponInfo1 == null) { - addComment = false; - } + /* + * // 鏃犲埜涓嶈兘鑷姩 鐢熸垚璇勮 CouponInfoVO couponInfo1 = goodsDetailVO.getCouponInfo(); if + * (couponInfo1 == null) { addComment = false; } + */ if (addComment) { @@ -475,6 +483,42 @@ } } + + private String createTokenAndLink(GoodsDetailVO goodsDetailVO) throws Exception { + String commentText = ""; + if (goodsDetailVO.getGoodsType() == Constant.SOURCE_TYPE_TAOBAO) { + TaoBaoLink taoBaoLink = shareGoodsService.getTaoBaoLinkForShare(1L, 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()); + JDCouponInfo couponInfo = JDUtil.getShowCouponInfo(jdGoods); + if (couponInfo != null) { + couponUrl = couponInfo.getLink(); + } + String materialId = "https://item.jd.com/" + goodsDetailVO.getGoodsId() + ".html"; + String jumpLink = JDApiUtil.convertLinkWithSubUnionId(materialId, couponUrl, JDApiUtil.POSITION_SHARE + "","1"); + 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(), PinDuoDuoApiUtil.PID_SHARE + "", "1"); + String template = configService.get(ConfigKeyEnum.quickSharePDDCommentText.getKey()); + commentText = template.replace("[閾炬帴]", jumpLink); + } + + commentText = commentText.replace("[鍘熶环]", goodsDetailVO.getZkPrice().toString()); + if (!goodsDetailVO.isHasCoupon()) { + commentText = commentText.replace("棰嗗埜鎶㈣喘", "鎶㈣喘"); + commentText = commentText.replace("銆愬埜鍚庝环銆慬鍒稿悗浠穄鍏�", ""); + } else { + commentText = commentText.replace("[鍒稿悗浠穄", goodsDetailVO.getCouponPrice().toString()); + } + + return commentText.replace("\r\n\r\n", "\r\n").replace("\r\n\r\n", "\r\n").replace("\r\n\r\n", "\r\n"); + } + public GoodsDetailVO getGoodsDetailVO(Long goodsId, Integer goodsType) throws GoodsEvaluateException { GoodsDetailVO goodsDetail = null; BigDecimal fanLiRate = hongBaoManageService.getFanLiRate(); @@ -484,6 +528,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 +640,7 @@ } String picUrl = goodsDetailVO.getPicUrl(); + if (fileRequest != null) { MultipartFile file = fileRequest.getFile("file" + i); if (file != null) { @@ -694,6 +743,68 @@ } } + + @Override + public void saveGoodsComment(String id, int kind, List<CommentInfo> comments) throws GoodsEvaluateException, Exception { + if (comments == null || comments.size() == 0 ) { + throw new GoodsEvaluateException(1, "鍐呭涓嶈兘涓虹┖"); + } + + GoodsEvaluate resultObj = goodsEvaluateDao.getById(id); + if (resultObj == null) + throw new GoodsEvaluateException(1, "绗竴閮ㄥ垎淇℃伅缂哄け"); + + GoodsDetailVO goods = resultObj.getGoods(); + if(kind == 1 && goods == null) { + throw new GoodsEvaluateException(1, "璇峰厛褰曞叆鍟嗗搧淇℃伅"); + } + + CommentInfo currencyCoupon = null; + List<CommentInfo> oldComments = resultObj.getComments(); + if (oldComments != null) { + for (int i =0;i < oldComments.size(); i ++) { + CommentInfo info = oldComments.get(i); + if (CommentInfoEnum.currencyCoupon == info.getTypeEnum()) { + currencyCoupon = info; + continue; + } + } + } + + List<CommentInfo> newList = new ArrayList<>(); + for (int i =0;i < comments.size(); i ++) { + CommentInfo commentInfo = comments.get(i); + String content = commentInfo.getContent(); + if (StringUtil.isNullOrEmpty(content)) { + if (i == 0 && kind == 1) { + content = createTokenAndLink(goods); + } else { + continue; + } + } else if (i == 0 && kind == 1) { + try { + convertLinkManager.convertLinkFromText(content, Constant.LINK_TOKEN_VERIFY_UID, true); + } catch (Exception e) { + throw new GoodsEvaluateException(1, "涓嶅寘鍚彲杞摼鐨勫彛浠や笌閾炬帴"); + } + } + + if (StringUtil.isNullOrEmpty(commentInfo.getId())) { + commentInfo.setId(UUID.randomUUID().toString().replace("-", "")); + } + + commentInfo.setType(commentInfo.getTags()); + commentInfo.setTypeEnum(CommentInfoEnum.goodsCoupon); + newList.add(commentInfo); + } + if (currencyCoupon != null) { + comments.add(currencyCoupon); + } + + resultObj.setComments(comments); + goodsEvaluateDao.save(resultObj); + } + @Override public void saveGoodsCoupon(String pid, String content) throws GoodsEvaluateException, Exception { if (StringUtil.isNullOrEmpty(pid)) { @@ -719,6 +830,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()); @@ -726,7 +846,7 @@ commentInfo.setId(UUID.randomUUID().toString().replace("-", "")); } commentInfo.setContent(content); - commentInfo.setType(CommentInfoEnum.goodsCoupon.getDesc()); + commentInfo.setType(commentInfo.getTags()); commentInfo.setTypeEnum(CommentInfoEnum.goodsCoupon); comments.add(commentInfo); } @@ -740,7 +860,7 @@ } @Override - public void saveSingleGoodsCoupon(String pid, CommentInfo commentInfo) throws GoodsEvaluateException, Exception { + public void saveCurrencyCoupon(String pid, int kind, CommentInfo commentInfo) throws GoodsEvaluateException, Exception { if (StringUtil.isNullOrEmpty(pid)) { throw new GoodsEvaluateException(1, "璇蜂繚瀛樼涓�閮ㄥ垎淇℃伅"); } @@ -752,7 +872,6 @@ if (StringUtil.isNullOrEmpty(commentInfo.getTagDesc())) { throw new GoodsEvaluateException(1, "鎻忚堪璇笉鑳戒负绌�"); } - String tagUrl = commentInfo.getTagUrl(); String content = commentInfo.getContent(); @@ -772,11 +891,15 @@ throw new GoodsEvaluateException(1, "璇峰~鍐欏埜鎴鏃堕棿"); } - if(!StringUtil.isNullOrEmpty(content)) { + if(!StringUtil.isNullOrEmpty(content) && kind != 3) { // 娲诲姩涓嶉獙璇� try { - convertLinkManager.convertLinkFromText(content, 1L, true); + convertLinkManager.convertLinkFromText(content, Constant.LINK_TOKEN_VERIFY_UID, true); + } catch (ConvertLinkExceptionException e) { + if (ConvertLinkExceptionException.CODE_NONE != e.getCode()) { + throw new GoodsEvaluateException(1, "鍖呭惈涓嶅彲杞摼鐨勫彛浠や笌閾炬帴"); + } } catch (Exception e) { - throw new GoodsEvaluateException(1, "杞摼澶辫触"); + throw new GoodsEvaluateException(1, "鍖呭惈涓嶅彲杞摼鐨勫彛浠や笌閾炬帴"); } } @@ -784,22 +907,17 @@ if (resultObj == null) throw new GoodsEvaluateException(1, "绗竴閮ㄥ垎淇℃伅缂哄け"); - CommentInfo goodsCoupon = null; + List<CommentInfo> comments = new ArrayList<>(); CommentInfo currencyCoupon = null; List<CommentInfo> oldComments = resultObj.getComments(); if (oldComments != null) { for (CommentInfo info : oldComments) { if (CommentInfoEnum.goodsCoupon == info.getTypeEnum()) { - goodsCoupon = info; + comments.add(info); } else if (CommentInfoEnum.currencyCoupon == info.getTypeEnum()) { currencyCoupon = info; } } - } - - List<CommentInfo> comments = new ArrayList<>(); - if (goodsCoupon != null) { - comments.add(goodsCoupon); } if (commentInfo != null) { @@ -810,12 +928,7 @@ } // 鍒哥被鍨� - String tags = commentInfo.getTags(); - if (StringUtil.isNullOrEmpty(tags)) { - commentInfo.setType(CommentInfoEnum.currencyCoupon.getDesc()); - } else { - commentInfo.setType(tags); - } + commentInfo.setType(commentInfo.getTags()); commentInfo.setTypeEnum(CommentInfoEnum.currencyCoupon); // 鏍囩淇℃伅 @@ -840,7 +953,6 @@ } resultObj.setComments(comments); - goodsEvaluateDao.save(resultObj); } @@ -1301,7 +1413,7 @@ } @Override -// @Cacheable(value = "dynamicCache", key = "'queryMaterialsCache-'+#start+'-'+#type") + @Cacheable(value = "dynamicCache", key = "'queryMaterialsCache-'+#start+'-'+#type") public List<GoodsEvaluate> queryMaterialsCache(int start, int count, int type) throws Exception { List<GoodsEvaluate> list = goodsEvaluateDao.queryValid(start, count, type); @@ -1320,24 +1432,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) { - 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("閫氱敤浼樻儬鍒�"); - } + comment ++; CommentInfoEnum typeComment = commentInfo.getTypeEnum(); if (typeComment != null && typeComment ==CommentInfoEnum.goodsCoupon) { @@ -1353,33 +1456,32 @@ if (!StringUtil.isNullOrEmpty(coupon) && !StringUtil.isNullOrEmpty(endTime)) { Date endDay = sdf.parse(endTime); if (endDay.getTime() > now.getTime()) { - int daysBetween = DateUtil.daysBetween(endDay, now); + int daysBetween = DateUtil.daysBetween(now, endDay); if (daysBetween > 0) { ClientTextStyleVO styleVO = new ClientTextStyleVO(); styleVO.setColor("#E5005C"); styleVO.setContent(daysBetween + "澶╁悗杩囨湡"); - styleVO.setContent(coupon); List<ClientTextStyleVO> tagList = commentInfo.getTagList(); tagList.add(styleVO); - commentInfo.setTagList(tagList); - if (typeEnum != null && typeEnum == EvaluateEnum.single) { - //鏂板 - commentNew.add(commentInfo); - } + commentNew.add(commentInfo); + continue; } } } + + commentNew.add(commentInfo); } 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 +1490,7 @@ SimpleGoods simpleGoods = imgInfo.getGoods(); if (simpleGoods != null) { simpleGoods.setState(1); + LogHelper.test("鑾峰彇鍒楄〃鍟嗗搧涓嬫灦2"); } } @@ -1450,7 +1553,7 @@ if (!StringUtil.isNullOrEmpty(endTime)) { Date endDay = sdf.parse(endTime); if (endDay.getTime() < now.getTime()) { - goodsEvaluate.setState(1); // 娲诲姩杩囨湡 + goodsEvaluate.setState(0); // 娲诲姩杩囨湡 } } } @@ -1486,6 +1589,7 @@ paramsDTO); if (goodsDetailVO != null) { simpleGoods.setPrice(goodsDetailVO.getCouponPrice()); + simpleGoods.setState(0); CouponInfoVO couponInfo = goodsDetailVO.getCouponInfo(); if (couponInfo == null) { simpleGoods.setPrice(goodsDetailVO.getZkPrice()); @@ -1517,7 +1621,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) { @@ -1533,6 +1646,14 @@ @Override public void addGoodsEvaluateByDynamicInfo(DynamicInfo info) { + if (1 > 0) { + return; // 鏆備笉鍚敤鑷姩鐢熸垚 + } + + if (info == null) { + return; + } + try { GoodsEvaluate goodsEvaluate = new GoodsEvaluate(); goodsEvaluate.setId(UUID.randomUUID().toString().replace("-", "")); @@ -1584,32 +1705,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); } -- Gitblit v1.8.0