From ee1d39f11b9483b64a88029f1755a6e7166fea15 Mon Sep 17 00:00:00 2001 From: yujian <yujian@163.com> Date: 星期日, 26 四月 2020 16:49:21 +0800 Subject: [PATCH] 等级显示问题 --- fanli/src/main/java/com/yeshi/fanli/service/impl/dynamic/GoodsEvaluateServiceImpl.java | 307 +++++++++++++++++++++++++++------------------------ 1 files changed, 163 insertions(+), 144 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 45a984c..4a3cdcb 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 @@ -17,6 +17,7 @@ import javax.imageio.ImageIO; import org.apache.commons.beanutils.PropertyUtils; +import org.springframework.cache.annotation.CacheEvict; import org.springframework.cache.annotation.Cacheable; import org.springframework.core.task.TaskExecutor; import org.springframework.stereotype.Service; @@ -34,10 +35,8 @@ import com.yeshi.fanli.entity.bus.clazz.GoodsClass; import com.yeshi.fanli.entity.dynamic.CommentInfo; import com.yeshi.fanli.entity.dynamic.CommentInfo.CommentInfoEnum; -import com.yeshi.fanli.entity.dynamic.DynamicInfo; import com.yeshi.fanli.entity.dynamic.GoodsEvaluate; import com.yeshi.fanli.entity.dynamic.GoodsEvaluate.EvaluateEnum; -import com.yeshi.fanli.entity.dynamic.GoodsPicture; import com.yeshi.fanli.entity.dynamic.ImgInfo; import com.yeshi.fanli.entity.dynamic.ImgInfo.ImgEnum; import com.yeshi.fanli.entity.dynamic.SimpleGoods; @@ -112,6 +111,28 @@ @Resource private DaTaoKeGoodsDetailV2Service daTaoKeGoodsDetailV2Service; + + @Override + public void switchState(String id) throws GoodsEvaluateException { + if (id == null) { + throw new GoodsEvaluateException(1, "璇蜂紶閫掓纭弬鏁�"); + } + + GoodsEvaluate resultObj = goodsEvaluateDao.getById(id); + if (resultObj == null) { + throw new GoodsEvaluateException(1, "姝ゅ唴瀹瑰凡涓嶅瓨鍦�"); + } + + Integer state = resultObj.getState(); + if (state == null || state == 0) { + state = 1; + } else { + state = 0; + } + goodsEvaluateDao.updateSatate(id, state); + } + + @Override public String saveHead(MultipartFile file, GoodsEvaluate record) throws GoodsEvaluateException { Integer state = record.getState(); @@ -527,6 +548,7 @@ commentInfo.setId(UUID.randomUUID().toString().replace("-", "")); commentInfo.setContent(commentText); commentInfo.setTypeEnum(CommentInfoEnum.goodsCoupon); + commentInfo.setNeedSpin(true); commentsNew.add(commentInfo); resultObj.setComments(commentsNew); } @@ -735,8 +757,6 @@ } } } - - // 鏁版嵁瀵规瘮 鍒犻櫎鍥剧墖 if (oldGoodsList != null && oldGoodsList.size() > 0) { @@ -854,7 +874,8 @@ if (StringUtil.isNullOrEmpty(commentInfo.getId())) { commentInfo.setId(UUID.randomUUID().toString().replace("-", "")); } - + + commentInfo.setNeedSpin(true); commentInfo.setType(commentInfo.getTags()); commentInfo.setTypeEnum(CommentInfoEnum.goodsCoupon); newList.add(commentInfo); @@ -868,60 +889,7 @@ goodsEvaluateDao.save(resultObj); } - @Override - public void saveGoodsCoupon(String pid, String content) throws GoodsEvaluateException, Exception { - if (StringUtil.isNullOrEmpty(pid)) { - throw new GoodsEvaluateException(1, "璇蜂繚瀛樼涓�閮ㄥ垎淇℃伅"); - } - - GoodsEvaluate resultObj = goodsEvaluateDao.getById(pid); - if (resultObj == null) - throw new GoodsEvaluateException(1, "绗竴閮ㄥ垎淇℃伅缂哄け"); - - CommentInfo goodsCoupon = null; - CommentInfo currencyCoupon = null; - List<CommentInfo> oldComments = resultObj.getComments(); - if (oldComments != null) { - for (CommentInfo info : oldComments) { - if (CommentInfoEnum.goodsCoupon == info.getTypeEnum()) { - goodsCoupon = info; - } else if (CommentInfoEnum.currencyCoupon == info.getTypeEnum()) { - currencyCoupon = info; - } - } - } - - 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()); - } else { - commentInfo.setId(UUID.randomUUID().toString().replace("-", "")); - } - commentInfo.setContent(content); - commentInfo.setType(commentInfo.getTags()); - commentInfo.setTypeEnum(CommentInfoEnum.goodsCoupon); - comments.add(commentInfo); - } - - if (currencyCoupon != null) { - comments.add(currencyCoupon); - } - - resultObj.setComments(comments); - goodsEvaluateDao.save(resultObj); - } - + @Override public void saveCurrencyCoupon(String pid, int kind, CommentInfo commentInfo) throws GoodsEvaluateException, Exception { @@ -955,15 +923,21 @@ throw new GoodsEvaluateException(1, "璇峰~鍐欏埜鎴鏃堕棿"); } - // 鍧囦笉楠岃瘉 - /* - * if (!StringUtil.isNullOrEmpty(content) && kind != 3) { try { - * 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, "鍖呭惈涓嶅彲杞摼鐨勫彛浠や笌閾炬帴"); } } - */ + if (commentInfo.getNeedSpin() == null) { + commentInfo.setNeedSpin(false); + } + + if (!StringUtil.isNullOrEmpty(content) && commentInfo.getNeedSpin()) { + try { + 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, "鍖呭惈涓嶅彲杞摼鐨勫彛浠や笌閾炬帴"); + } + } GoodsEvaluate resultObj = goodsEvaluateDao.getById(pid); if (resultObj == null) @@ -1302,7 +1276,6 @@ totalImg++; } - // 娓呯悊鑰佸浘鐗� if (listOld != null && listOld.size() > 0) { for (int j = 0; j < listOld.size(); j++) { @@ -1567,10 +1540,10 @@ e.printStackTrace(); continue; } - + // 鎸夌収鍙戝竷鏄剧ず鏃堕棿娈佃捣濮嬫椂闂翠负鍑嗐�� goodsEvaluate.setPublishTime(goodsEvaluate.getStartTime()); - + List<CommentInfo> comments = evaluateNew.getComments(); if (comments != null && comments.size() > 0) { EvaluateEnum typeEnum = evaluateNew.getType(); @@ -1851,11 +1824,16 @@ } @Override - public void addGoodsEvaluate(Long goodsId, Integer cid, String title, String comment) throws GoodsEvaluateException{ - if (goodsId == null || cid == null || StringUtil.isNullOrEmpty(title)) { + public void addGoodsEvaluate(Long 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); + if (evaluateList != null && evaluateList.size() > 0) + return; + TaoBaoGoodsBrief goodsBrief = null; try { goodsBrief = redisManager.getTaoBaoGoodsBrief(goodsId); @@ -1872,13 +1850,6 @@ throw new GoodsEvaluateException(1, "璇ュ晢鍝佹棤鍒�"); } - // 鍙戝竷鐢ㄦ埛 - ActivityUser user = activityUserService.getRandomByDaTaoKeCid(cid); - if (user == null) { - throw new GoodsEvaluateException(1, "鏈壘鍒板彂甯冪敤鎴�"); - } - - // 鐧藉簳鍥� List<String> imgs = new ArrayList<>(); if (!StringUtil.isNullOrEmpty(goodsBrief.getPictUrlWhite())) { @@ -1893,38 +1864,39 @@ // 鍟嗗搧鍥剧墖淇℃伅 int i = 0; - List<ImgInfo> imgList = new ArrayList<>(); - 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()); + if (imgList == null || imgList.size() == 0) + 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 { - simpleGoods.setPrice(goodsVO.getCouponPrice()); - simpleGoods.setAmount(couponInfo.getAmount()); + 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); } - imgInfo.setGoods(simpleGoods); - imgInfo.setGoodsVO(goodsVO); + imgList.add(imgInfo); + i++; } - imgList.add(imgInfo); - i++; - } - + // 璇勮鍐呭 CommentInfo commentInfo = new CommentInfo(); + commentInfo.setNeedSpin(true); commentInfo.setId(UUID.randomUUID().toString().replace("-", "")); commentInfo.setTypeEnum(CommentInfoEnum.goodsCoupon); if (!StringUtil.isNullOrEmpty(comment)) { @@ -1934,36 +1906,31 @@ String token = shareGoodsService.createTaoBaoToken(Constant.LINK_TOKEN_VERIFY_UID, goodsBrief); String template = configService.get(ConfigKeyEnum.quickShareTBCommentText.getKey()); String commentText = template.replace("[娣樺彛浠", TaoBaoUtil.filterTaoToken(token)); - commentText = commentText.replace("[鍘熶环]", MoneyBigDecimalUtil.getWithNoZera(goodsVO.getZkPrice()) + ""); if (!goodsVO.isHasCoupon()) { commentText = commentText.replace("棰嗗埜鎶㈣喘", "鎶㈣喘"); commentText = commentText.replace("銆愬埜鍚庝环銆慬鍒稿悗浠穄鍏�", ""); - } else { - commentText = commentText.replace("[鍒稿悗浠穄", - MoneyBigDecimalUtil.getWithNoZera(goodsVO.getCouponPrice()) + ""); - } - commentText = commentText.replace("\r\n\r\n", "\r\n").replace("\r\n\r\n", "\r\n").replace("\r\n\r\n","\r\n"); + commentText = commentText.replace("\r\n\r\n", "\r\n").replace("\r\n\r\n", "\r\n").replace("\r\n\r\n","\r\n"); + } commentInfo.setContent(commentText); commentInfo.setType(CommentInfoEnum.goodsCoupon.getDesc()); } List<CommentInfo> commentsNew = new ArrayList<>(); commentsNew.add(commentInfo); - + // 涓�琛屾樉绀哄灏戜釜鍥剧墖 int lineNum = 0; - if (imgs.size() > 0) { - if (imgs.size() == 1) { + if (imgList.size() > 0) { + if (imgList.size() == 1) { lineNum = 1; - } else if (imgs.size() == 3) { + } else if (imgList.size() == 3) { lineNum = 3; - } else if (imgs.size() <= 4) { + } else if (imgList.size() <= 4) { lineNum = 2; } else { lineNum = 3; } } - GoodsEvaluate goodsEvaluate = new GoodsEvaluate(); goodsEvaluate.setId(UUID.randomUUID().toString().replace("-", "")); @@ -1975,7 +1942,9 @@ goodsEvaluate.setShareNum((int) (Math.random() * 5000) + 1000); goodsEvaluate.setShareNumReal(0); goodsEvaluate.setWeight(0.0); - goodsEvaluate.setStartTime(new Date()); + if (startTime == null) + startTime = new Date(); + goodsEvaluate.setStartTime(startTime); goodsEvaluate.setEndTime(DateUtil.plusDayDate(3, new Date())); goodsEvaluate.setPublishTime(new Date()); goodsEvaluate.setCreateTime(new Date()); @@ -2094,19 +2063,6 @@ } imgs.addAll(goodsimgs); - int lineNum = 0; - if (imgs.size() > 0) { - if (imgs.size() == 1) { - lineNum = 1; - } else if (imgs.size() == 3) { - lineNum = 3; - } else if (imgs.size() <= 4) { - lineNum = 2; - } else { - lineNum = 3; - } - } - goodsEvaluate.setLineNum(lineNum); int i = 0; List<ImgInfo> imgList = new ArrayList<>(); @@ -2143,20 +2099,14 @@ String template = configService.get(ConfigKeyEnum.quickShareTBCommentText.getKey()); String commentText = template.replace("[娣樺彛浠", TaoBaoUtil.filterTaoToken(token)); - - commentText = commentText.replace("[鍘熶环]", - MoneyBigDecimalUtil.getWithNoZera(goodsVO.getZkPrice()) + ""); if (!goodsVO.isHasCoupon()) { commentText = commentText.replace("棰嗗埜鎶㈣喘", "鎶㈣喘"); commentText = commentText.replace("銆愬埜鍚庝环銆慬鍒稿悗浠穄鍏�", ""); - } else { - commentText = commentText.replace("[鍒稿悗浠穄", - MoneyBigDecimalUtil.getWithNoZera(goodsVO.getCouponPrice()) + ""); - } - commentText = commentText.replace("\r\n\r\n", "\r\n").replace("\r\n\r\n", "\r\n") - .replace("\r\n\r\n", "\r\n"); + 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.setContent(commentText); commentInfo.setTypeEnum(CommentInfoEnum.goodsCoupon); @@ -2186,6 +2136,7 @@ commentInfo2.setContent(text2); commentInfo2.setTypeEnum(CommentInfoEnum.goodsCoupon); commentInfo2.setType(""); + commentInfo2.setNeedSpin(true); List<CommentInfo> commentsNew = new ArrayList<>(); commentsNew.add(commentInfo); @@ -2196,6 +2147,20 @@ i++; } + int lineNum = 0; + if (imgList.size() > 0) { + if (imgList.size() == 1) { + lineNum = 1; + } else if (imgList.size() == 3) { + lineNum = 3; + } else if (imgList.size() <= 4) { + lineNum = 2; + } else { + lineNum = 3; + } + } + goodsEvaluate.setLineNum(lineNum); + goodsEvaluate.setGoods(goodsVO); goodsEvaluate.setImgList(imgList); goodsEvaluateDao.save(goodsEvaluate); @@ -2246,7 +2211,6 @@ } return descNew; } - @Override public void updateTaoBaoGoods(TaoBaoGoodsBrief goods) { @@ -2345,6 +2309,61 @@ goodsEvaluateDao.save(goodsEvaluate); } } + + + @Override + public void offlineTaoBaoGoods(Long goodsId) { + try { + if (goodsId == null) { + return; + } + List<GoodsEvaluate> list = goodsEvaluateDao.queryExist(Constant.SOURCE_TYPE_TAOBAO, goodsId); + if (list == null || list.size() == 0) { + return; + } + + // 涓嬫灦鍟嗗搧 + offlineGoods(list, Constant.SOURCE_TYPE_TAOBAO, goodsId); + } catch (Exception e) { + e.printStackTrace(); + } + } + + @CacheEvict(value = "dynamicCache", allEntries = true) + private void offlineGoods(List<GoodsEvaluate> list, int goodsType, Long goodsId) { + + for (GoodsEvaluate goodsEvaluate : list) { + // 鍟嗗搧涓嬫灦 + GoodsDetailVO goodsDetailVO = goodsEvaluate.getGoods(); + goodsDetailVO.setState(1); + + List<ImgInfo> imgList = goodsEvaluate.getImgList(); + if (imgList == null || imgList.size() == 0) { + goodsEvaluate.setUpdateTime(new Date()); + goodsEvaluateDao.save(goodsEvaluate); + continue; + } + + for (ImgInfo imgInfo : imgList) { + SimpleGoods simpleGoods = imgInfo.getGoods(); + if (simpleGoods == null || simpleGoods.getGoodsId() != goodsId + || goodsType != simpleGoods.getGoodsType()) { + continue; + } + simpleGoods.setState(1); + GoodsDetailVO goodsVO = imgInfo.getGoodsVO(); + goodsVO.setState(1); + + imgInfo.setGoods(simpleGoods); + imgInfo.setGoodsVO(goodsVO); + } + + goodsEvaluate.setImgList(imgList); + goodsEvaluate.setUpdateTime(new Date()); + goodsEvaluateDao.save(goodsEvaluate); + } + } + private void removeOverdue() { List<GoodsEvaluate> list = goodsEvaluateDao.queryOverdue(); -- Gitblit v1.8.0