From 24a8d17e007545f7426c48352109aa1a9c6587ee Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期三, 06 五月 2020 12:02:09 +0800 Subject: [PATCH] IOS上线隐藏我的界面的banner与超级会员升级信息 --- fanli/src/main/java/com/yeshi/fanli/service/impl/dynamic/GoodsEvaluateServiceImpl.java | 1595 +++++++++++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 1,431 insertions(+), 164 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 504d925..adb054c 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 @@ -1,8 +1,11 @@ package com.yeshi.fanli.service.impl.dynamic; import java.awt.image.BufferedImage; +import java.io.File; +import java.io.FileInputStream; import java.io.InputStream; import java.math.BigDecimal; +import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; @@ -13,39 +16,62 @@ import javax.annotation.Resource; 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; import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartHttpServletRequest; +import org.yeshi.utils.DateUtil; +import org.yeshi.utils.ImageCropUtil; import org.yeshi.utils.tencentcloud.COSManager; import com.yeshi.fanli.dao.dynamic.GoodsEvaluateDao; import com.yeshi.fanli.dto.ConfigParamsDTO; +import com.yeshi.fanli.dto.jd.JDCouponInfo; import com.yeshi.fanli.dto.pdd.PDDGoodsDetail; import com.yeshi.fanli.entity.bus.activity.ActivityUser; +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.GoodsEvaluate; +import com.yeshi.fanli.entity.dynamic.GoodsEvaluate.EvaluateEnum; import com.yeshi.fanli.entity.dynamic.ImgInfo; import com.yeshi.fanli.entity.dynamic.ImgInfo.ImgEnum; import com.yeshi.fanli.entity.dynamic.SimpleGoods; import com.yeshi.fanli.entity.jd.JDGoods; +import com.yeshi.fanli.entity.system.ConfigKeyEnum; import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief; +import com.yeshi.fanli.entity.taobao.TaoBaoLink; +import com.yeshi.fanli.entity.taobao.dataoke.DaTaoKeDetailV2; 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; +import com.yeshi.fanli.service.inter.config.ConfigService; import com.yeshi.fanli.service.inter.dynamic.GoodsEvaluateService; +import com.yeshi.fanli.service.inter.goods.ShareGoodsService; +import com.yeshi.fanli.service.inter.order.OrderHongBaoMoneyComputeService; import com.yeshi.fanli.service.inter.order.config.HongBaoManageService; +import com.yeshi.fanli.service.inter.taobao.dataoke.DaTaoKeGoodsDetailV2Service; +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.FileUtil; +import com.yeshi.fanli.util.MoneyBigDecimalUtil; import com.yeshi.fanli.util.RedisManager; 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.factory.goods.GoodsDetailVOFactory; +import com.yeshi.fanli.util.jd.JDApiUtil; +import com.yeshi.fanli.util.jd.JDUtil; +import com.yeshi.fanli.util.pinduoduo.PinDuoDuoApiUtil; +import com.yeshi.fanli.util.taobao.DaTaoKeUtil; +import com.yeshi.fanli.util.taobao.TaoBaoUtil; import com.yeshi.fanli.vo.goods.CouponInfoVO; import com.yeshi.fanli.vo.goods.GoodsDetailVO; import com.yeshi.fanli.vo.msg.ClientTextStyleVO; @@ -64,6 +90,9 @@ @Resource private HongBaoManageService hongBaoManageService; + + @Resource + private OrderHongBaoMoneyComputeService orderHongBaoMoneyComputeService; @Resource(name = "taskExecutor") private TaskExecutor executor; @@ -74,12 +103,47 @@ @Resource private PinDuoDuoCacheUtil pinDuoDuoCacheUtil; + @Resource + private ConfigService configService; + + @Resource + private ShareGoodsService shareGoodsService; + + @Resource + private ConvertLinkManager convertLinkManager; + + @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(); if (state == null) { state = 0; } + record.setState(state); String tilte = record.getTitle(); if (StringUtil.isNullOrEmpty(tilte)) { @@ -96,26 +160,31 @@ } 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 { + if (record.getStartTime() == null) { + record.setEndTime(DateUtil.plusDayDate(3, new Date())); + } else { + record.setEndTime(DateUtil.plusDayDate(3, record.getStartTime())); + } } Integer dynamicType = record.getDynamicType(); if (dynamicType == null) { 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); if (record.getStartTime() == null) record.setStartTime(new Date()); + record.setPublishTime(record.getStartTime()); String id = record.getId(); @@ -124,18 +193,21 @@ record.setId(id); record.setShareNumReal(0); record.setCreateTime(new Date()); + record.setUpdateTime(new Date()); goodsEvaluateDao.save(record); } else { GoodsEvaluate resultObj = goodsEvaluateDao.getById(id); if (resultObj == null) throw new GoodsEvaluateException(1, "淇敼鍐呭宸蹭笉瀛樺湪"); + resultObj.setState(record.getState()); resultObj.setUser(record.getUser()); resultObj.setShareNum(record.getShareNum()); resultObj.setWeight(record.getWeight()); resultObj.setStartTime(record.getStartTime()); resultObj.setEndTime(record.getEndTime()); resultObj.setTitle(tilte); + resultObj.setUpdateTime(new Date()); goodsEvaluateDao.save(resultObj); } return id; @@ -157,6 +229,39 @@ return COSManager.getInstance().uploadFile(inputStream, filePath).getUrl(); } + private ImgInfo uploadVideoPicture(MultipartFile filevideo) { + try { + File tempFile = new File(FileUtil.getCacheDir() + "/" + filevideo.getOriginalFilename()); + if (tempFile.exists()) + tempFile.delete(); + tempFile.createNewFile(); + filevideo.transferTo(tempFile); + File destFile = new File(FileUtil.getCacheDir() + "/temp_" + filevideo.getOriginalFilename()); + // 瑁佸壀瑙嗛灏侀潰锛屽楂樻瘮涓�2:1 + ImageCropUtil.centerCrop(tempFile, destFile, 2.0f); + BufferedImage sourceImg = ImageIO.read(new FileInputStream(destFile)); + ImgInfo info = new ImgInfo(); + int width = sourceImg.getWidth(); + int height = sourceImg.getHeight(); + String picLink = uploadPicture(destFile, filevideo.getContentType()); + info.setH(height); + info.setW(width); + info.setUrl(picLink); + return info; + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + private String uploadPicture(File file, String contentType) throws Exception { + InputStream inputStream = new FileInputStream(file); + String type = contentType.substring(contentType.indexOf("/") + 1); + String filePath = FilePathEnum.goodsEvaluate.getPath() + UUID.randomUUID().toString().replace("-", "") + "." + + type; + return COSManager.getInstance().uploadFile(inputStream, filePath).getUrl(); + } + /** * 鍒犻櫎鍥剧墖 * @@ -170,7 +275,7 @@ } @Override - public void saveSingleGoods(String pid, Long goodsId, Integer goodsType, String videoUrl, Integer picNum, + public String saveSingleGoods(String pid, Long goodsId, Integer goodsType, String videoUrl, Integer picNum, String picUrls, MultipartHttpServletRequest fileRequest) throws GoodsEvaluateException, Exception { if (StringUtil.isNullOrEmpty(pid)) { throw new GoodsEvaluateException(1, "璇蜂繚瀛樼涓�閮ㄥ垎淇℃伅"); @@ -186,17 +291,18 @@ List<String> listOld = new ArrayList<String>(); // 澶勭悊鍥剧墖 + GoodsDetailVO oldGoodsVO = null; List<ImgInfo> resultList = resultObj.getImgList(); if (resultList != null && resultList.size() > 0) { for (ImgInfo info : resultList) { ImgEnum type = info.getType(); if (type == ImgEnum.video) { imgVideo = info; - } else if (type == ImgEnum.goods || type == ImgEnum.img) { - String url = info.getUrl(); - if (!StringUtil.isNullOrEmpty(url)) { - listOld.add(url); - } + } else if (type == ImgEnum.goods) { + listOld.add(info.getUrl()); + oldGoodsVO = info.getGoodsVO(); + } else if (type == ImgEnum.img) { + listOld.add(info.getUrl()); } } } @@ -208,31 +314,28 @@ if (StringUtil.isNullOrEmpty(videoUrl)) { throw new GoodsEvaluateException(1, "瑙嗛閾炬帴涓嶈兘涓虹┖"); } - InputStream inputStream = filevideo.getInputStream(); - BufferedImage sourceImg = ImageIO.read(inputStream); - int width = sourceImg.getWidth(); - int height = sourceImg.getHeight(); - - String picLink = uploadPicture(filevideo); + ImgInfo info = uploadVideoPicture(filevideo); + if (info == null) + throw new GoodsEvaluateException(2, "瑙嗛鍥剧墖涓婁紶澶辫触"); if (imgVideo != null) { String url = imgVideo.getUrl(); if (!StringUtil.isNullOrEmpty(url)) { listDel.add(url); } - imgVideo.setUrl(picLink); - imgVideo.setUrlHD(picLink); + imgVideo.setUrl(info.getUrl()); + imgVideo.setUrlHD(info.getUrl()); } else { imgVideo = new ImgInfo(); imgVideo.setId(UUID.randomUUID().toString().replace("-", "")); imgVideo.setLarge(true); imgVideo.setPid(pid); - imgVideo.setUrl(picLink); - imgVideo.setUrlHD(picLink); + imgVideo.setUrl(info.getUrl()); + imgVideo.setUrlHD(info.getUrl()); imgVideo.setVideoUrl(videoUrl); imgVideo.setType(ImgEnum.video); } - imgVideo.setW(width); - imgVideo.setH(height); + imgVideo.setW(info.getW()); + imgVideo.setH(info.getH()); } } @@ -253,21 +356,28 @@ } // 缂栬緫鍥剧墖 - List<String> listpic = null; + List<String> listpic = new ArrayList<>(); if (!StringUtil.isNullOrEmpty(picUrls)) { String[] pics = picUrls.split(","); if (pics != null) { - listpic = new ArrayList<>(); for (int i = 0; i < pics.length; i++) { String picLink = pics[i]; - if (fileRequest != null) { - MultipartFile file = fileRequest.getFile("file" + i); - if (file != null) { - picLink = uploadPicture(file); - } - - } if (picLink.startsWith("http")) { + listpic.add(picLink); + } + } + } + } + + // 涓婁紶鏂囦欢鏇挎崲 + if (fileRequest != null) { + for (int i = 0; i < 9; i++) { + MultipartFile file = fileRequest.getFile("file" + i); + if (file != null) { + String picLink = uploadPicture(file); + if (i < listpic.size()) { + listpic.set(i, picLink); + } else { listpic.add(picLink); } } @@ -279,13 +389,34 @@ picNum = 1; } - GoodsDetailVO goodsDetailVO = getGoodsDetailVO(goodsId, goodsType);; + GoodsDetailVO goodsDetailVO = null; + JDGoods jdGoods = null; + PDDGoodsDetail pddGoods = null; + ConfigParamsDTO params = orderHongBaoMoneyComputeService.getShowComputeRate("android", "55"); + params.setBaseFanliRate(hongBaoManageService.getBaseFanliRate()); + if (goodsType == Constant.SOURCE_TYPE_TAOBAO) { + try { + TaoBaoGoodsBrief goodsBrief = redisManager.getTaoBaoGoodsBrief(goodsId); + goodsDetailVO = GoodsDetailVOFactory.convertTaoBao(goodsBrief, params); + } catch (TaobaoGoodsDownException e) { + throw new GoodsEvaluateException(1, "鍟嗗搧宸蹭笅鏋�"); + } + } else if (goodsType == Constant.SOURCE_TYPE_JD) { + jdGoods = jdGoodsCacheUtil.getGoodsInfo(goodsId); + goodsDetailVO = GoodsDetailVOFactory.convertJDGoods(jdGoods, params); + } else if (goodsType == Constant.SOURCE_TYPE_PDD) { + pddGoods = pinDuoDuoCacheUtil.getGoodsInfo(goodsId); + goodsDetailVO = GoodsDetailVOFactory.convertPDDGoods(pddGoods, params); + } + if (goodsDetailVO == null) { 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); @@ -298,45 +429,138 @@ 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); + 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) { for (int j = 0; j < listOld.size(); j++) { boolean del = true; String oldPic = listOld.get(j); - for (ImgInfo imgInfo: listImg) { + for (ImgInfo imgInfo : listImg) { String url = imgInfo.getUrl(); if (url.equals(oldPic)) { del = false; - } + } } if (del) listDel.add(listOld.get(j)); } } - - // 淇濆瓨鍥剧墖淇℃伅 + + int lineNum = 0; + if (totalImg > 0) { + if (totalImg == 1) { + lineNum = 1; + } else if (totalImg == 3) { + lineNum = 3; + } else if (totalImg == 2 || totalImg == 4) { + lineNum = 2; + } else { + lineNum = 3; + } + } + + resultObj.setLineNum(lineNum); resultObj.setGoods(goodsDetailVO); resultObj.setMainPicNum(picNum); resultObj.setImgList(listImg); + + boolean addComment = true; + List<CommentInfo> commentsNew = new ArrayList<>(); + List<CommentInfo> comments = resultObj.getComments(); + if (comments != null && comments.size() > 0) { + for (CommentInfo commentInfo : comments) { + if (commentInfo.getTypeEnum() == CommentInfoEnum.goodsCoupon) { + if (oldGoodsVO != null && oldGoodsVO.getGoodsId().longValue() == goodsId.longValue() + && oldGoodsVO.getGoodsType() == goodsType) { + addComment = false; + } + continue; + } + commentsNew.add(commentInfo); + } + } + + /* + * // 鏃犲埜涓嶈兘鑷姩 鐢熸垚璇勮 CouponInfoVO couponInfo1 = + * goodsDetailVO.getCouponInfo(); if (couponInfo1 == null) { addComment + * = false; } + */ + + String commentText = ""; + if (addComment) { + 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())); + } else if (goodsType == Constant.SOURCE_TYPE_JD) { + String couponUrl = null; + JDCouponInfo couponInfo = JDUtil.getShowCouponInfo(jdGoods); + if (couponInfo != null) { + couponUrl = couponInfo.getLink(); + } + String materialId = "https://item.jd.com/" + goodsId + ".html"; + String jumpLink = JDApiUtil.convertLinkWithSubUnionId(materialId, couponUrl, + JDApiUtil.POSITION_SHARE + "", "1"); + String template = configService.get(ConfigKeyEnum.quickShareJDCommentText.getKey()); + if (jumpLink == null) { + throw new GoodsEvaluateException(1, "璇ュ晢鍝佽浆閾惧け璐�"); + } + commentText = template.replace("[閾炬帴]", jumpLink); + } else if (goodsType == Constant.SOURCE_TYPE_PDD) { + String jumpLink = PinDuoDuoApiUtil.getPromotionUrl(goodsId, PinDuoDuoApiUtil.PID_SHARE + "", "1"); + if (jumpLink == null) { + throw new GoodsEvaluateException(1, "璇ュ晢鍝佽浆閾惧け璐�"); + } + String template = configService.get(ConfigKeyEnum.quickSharePDDCommentText.getKey()); + commentText = template.replace("[閾炬帴]", jumpLink); + } + + // commentText = commentText.replace("[鍘熶环]", + // MoneyBigDecimalUtil.getWithNoZera(goodsDetailVO.getZkPrice())+""); + // if (!goodsDetailVO.isHasCoupon()) { + // commentText = commentText.replace("棰嗗埜鎶㈣喘", "鎶㈣喘"); + // commentText = commentText.replace("銆愬埜鍚庝环銆慬鍒稿悗浠穄鍏�", ""); + // } else { + // commentText = commentText.replace("[鍒稿悗浠穄", + // MoneyBigDecimalUtil.getWithNoZera(goodsDetailVO.getCouponPrice())+""); + // } + // + // 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.setNeedSpin(true); + commentsNew.add(commentInfo); + resultObj.setComments(commentsNew); + } + resultObj.setUpdateTime(new Date()); goodsEvaluateDao.save(resultObj); // 鍒犻櫎鍥剧墖 @@ -347,17 +571,58 @@ } } } + + return commentText; + } + + 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(); - BigDecimal shareRate = hongBaoManageService.getShareRate(); - BigDecimal vipFanLiRate = hongBaoManageService.getVIPFanLiRate(); - ConfigParamsDTO params = new ConfigParamsDTO(fanLiRate, shareRate, Constant.MAX_REWARD_RATE, vipFanLiRate); + ConfigParamsDTO params = orderHongBaoMoneyComputeService.getShowComputeRate("android", "55"); + params.setBaseFanliRate(hongBaoManageService.getBaseFanliRate()); 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, "鍟嗗搧宸蹭笅鏋�"); @@ -409,31 +674,29 @@ throw new GoodsEvaluateException(1, "瑙嗛閾炬帴涓嶈兘涓虹┖"); } - InputStream inputStream = filevideo.getInputStream(); - BufferedImage sourceImg = ImageIO.read(inputStream); - int width = sourceImg.getWidth(); - int height = sourceImg.getHeight(); - - String picLink = uploadPicture(filevideo); + ImgInfo info = uploadVideoPicture(filevideo); + if (info == null) + throw new GoodsEvaluateException(2, "瑙嗛鍥剧墖涓婁紶澶辫触"); + if (imgVideo != null) { String url = imgVideo.getUrl(); if (!StringUtil.isNullOrEmpty(url)) { listDel.add(url); } - imgVideo.setUrl(picLink); - imgVideo.setUrlHD(picLink); + imgVideo.setUrl(info.getUrl()); + imgVideo.setUrlHD(info.getUrl()); } else { imgVideo = new ImgInfo(); imgVideo.setId(UUID.randomUUID().toString().replace("-", "")); imgVideo.setLarge(true); imgVideo.setPid(pid); - imgVideo.setUrl(picLink); - imgVideo.setUrlHD(picLink); + imgVideo.setUrl(info.getUrl()); + imgVideo.setUrlHD(info.getUrl()); imgVideo.setVideoUrl(videoUrl); imgVideo.setType(ImgEnum.video); } - imgVideo.setW(width); - imgVideo.setH(height); + imgVideo.setW(info.getW()); + imgVideo.setH(info.getH()); } } @@ -453,10 +716,11 @@ } } + int totalImg = 0; if (!StringUtil.isNullOrEmpty(goodsList)) { String[] goodsArray = goodsList.split(","); if (goodsArray != null && goodsArray.length > 0) { - for (int i = 0; i < goodsArray.length || i < 9; i++) { + for (int i = 0; i < goodsArray.length && i < 9; i++) { String goodsids = goodsArray[i]; String[] g = goodsids.split("-"); GoodsDetailVO goodsDetailVO = getGoodsDetailVO(Long.parseLong(g[0]), Integer.parseInt(g[1])); @@ -483,17 +747,21 @@ 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++; } } } @@ -536,6 +804,21 @@ } } + int lineNum = 0; + if (totalImg > 0) { + if (totalImg == 1) { + lineNum = 1; + } else if (totalImg == 3) { + lineNum = 3; + } else if (totalImg == 2 || totalImg == 4) { + lineNum = 2; + } else { + lineNum = 3; + } + } + + resultObj.setLineNum(lineNum); + // 淇濆瓨鍥剧墖淇℃伅 resultObj.setImgList(listImg); goodsEvaluateDao.save(resultObj); @@ -551,85 +834,147 @@ } @Override - public void saveGoodsCoupon(String pid, String tags, String content) throws GoodsEvaluateException, Exception { - if (StringUtil.isNullOrEmpty(pid)) { - throw new GoodsEvaluateException(1, "璇蜂繚瀛樼涓�閮ㄥ垎淇℃伅"); + 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(pid); + GoodsEvaluate resultObj = goodsEvaluateDao.getById(id); if (resultObj == null) throw new GoodsEvaluateException(1, "绗竴閮ㄥ垎淇℃伅缂哄け"); - CommentInfo goodsCoupon = null; + 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 (CommentInfo info: oldComments) { - if(CommentInfoEnum.goodsCoupon == info.getType()) { - goodsCoupon = info; - } else if (CommentInfoEnum.currencyCoupon == info.getType()) { + for (int i = 0; i < oldComments.size(); i++) { + CommentInfo info = oldComments.get(i); + if (CommentInfoEnum.currencyCoupon == info.getTypeEnum()) { currencyCoupon = info; + continue; } } } - - List<CommentInfo> comments = new ArrayList<>(); - if (!StringUtil.isNullOrEmpty(content)) { - CommentInfo commentInfo = new CommentInfo(); - if (goodsCoupon != null) { - commentInfo.setId(goodsCoupon.getId()); - } else { + + 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.setContent(content); - commentInfo.setType(CommentInfoEnum.goodsCoupon); - comments.add(commentInfo); + + commentInfo.setNeedSpin(true); + commentInfo.setType(commentInfo.getTags()); + commentInfo.setTypeEnum(CommentInfoEnum.goodsCoupon); + newList.add(commentInfo); } - if (currencyCoupon != null) { comments.add(currencyCoupon); } - + resultObj.setComments(comments); + resultObj.setUpdateTime(new Date()); goodsEvaluateDao.save(resultObj); } - + + @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, "璇蜂繚瀛樼涓�閮ㄥ垎淇℃伅"); + } + + 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"); + } + } else { + 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) 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.getType()) { - goodsCoupon = info; - } else if (CommentInfoEnum.currencyCoupon == info.getType()) { + for (CommentInfo info : oldComments) { + if (CommentInfoEnum.goodsCoupon == info.getTypeEnum()) { + 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) { if (currencyCoupon != null) { commentInfo.setId(currencyCoupon.getId()); } else { commentInfo.setId(UUID.randomUUID().toString().replace("-", "")); } - commentInfo.setType(CommentInfoEnum.currencyCoupon); - + // 鍒哥被鍨� + + commentInfo.setType(commentInfo.getTags()); + commentInfo.setTypeEnum(CommentInfoEnum.currencyCoupon); + // 鏍囩淇℃伅 List<ClientTextStyleVO> tagList = new ArrayList<>(); String couponSource = commentInfo.getCouponSource(); @@ -647,12 +992,11 @@ tagList.add(styleVO); } commentInfo.setTagList(tagList); - + comments.add(commentInfo); } - - resultObj.setComments(comments); + resultObj.setComments(comments); goodsEvaluateDao.save(resultObj); } @@ -686,23 +1030,29 @@ int width = 0; int height = 0; + int width2 = 0; + int height2 = 0; List<ImgInfo> listImg = new ArrayList<ImgInfo>(); if (fileRequest != null) { MultipartFile filevideo = fileRequest.getFile("filevideo"); if (filevideo != null) { removePicture(videoPic); - - InputStream inputStream = filevideo.getInputStream(); - BufferedImage sourceImg = ImageIO.read(inputStream); - width = sourceImg.getWidth(); - height = sourceImg.getHeight(); - String picLink = uploadPicture(filevideo); - videoPic = picLink; + + ImgInfo info = uploadVideoPicture(filevideo); + if (info == null) + throw new GoodsEvaluateException(2, "瑙嗛鍥剧墖涓婁紶澶辫触"); + videoPic = info.getUrl(); + width = info.getW(); + height = info.getH(); } MultipartFile activityfile = fileRequest.getFile("activityfile"); if (activityfile != null) { removePicture(activityPic); + InputStream inputStream = activityfile.getInputStream(); + BufferedImage sourceImg = ImageIO.read(inputStream); + width2 = sourceImg.getWidth(); + height2 = sourceImg.getHeight(); String picLink = uploadPicture(activityfile); activityPic = picLink; } @@ -733,6 +1083,7 @@ listImg.add(imgVideo); } + int totalImg = 0; if (!StringUtil.isNullOrEmpty(activityPic) || !StringUtil.isNullOrEmpty(imgInfo.getActivityUrl())) { if (imgactivity != null) { imgactivity.setUrl(activityPic); @@ -741,8 +1092,6 @@ } else { imgactivity = new ImgInfo(); imgactivity.setId(UUID.randomUUID().toString().replace("-", "")); - imgactivity.setW(1); - imgactivity.setH(1); imgactivity.setLarge(true); imgactivity.setPid(pid); imgactivity.setUrl(activityPic); @@ -750,15 +1099,38 @@ imgactivity.setActivityUrl(imgInfo.getActivityUrl()); imgactivity.setType(ImgEnum.activity); } + if (width2 > 0) { + imgactivity.setW(width2); + imgactivity.setH(height2); + } else { + imgactivity.setW(imgactivity.getW()); + imgactivity.setH(imgactivity.getH()); + } listImg.add(imgactivity); + totalImg++; } + + int lineNum = 0; + if (totalImg > 0) { + if (totalImg == 1) { + lineNum = 1; + } else if (totalImg == 3) { + lineNum = 3; + } else if (totalImg == 2 || totalImg == 4) { + lineNum = 2; + } else { + lineNum = 3; + } + } + + resultObj.setLineNum(lineNum); resultObj.setImgList(listImg); goodsEvaluateDao.save(resultObj); } @Override - public void saveSuCai(String pid, String videoUrl, String picUrls, - MultipartHttpServletRequest fileRequest) throws GoodsEvaluateException, Exception { + public void saveSuCai(String pid, String videoUrl, String picUrls, MultipartHttpServletRequest fileRequest) + throws GoodsEvaluateException, Exception { if (StringUtil.isNullOrEmpty(pid)) { throw new GoodsEvaluateException(1, "璇蜂繚瀛樼涓�閮ㄥ垎淇℃伅"); } @@ -769,9 +1141,11 @@ // 鍘熷皝瑙嗛闈㈠浘 ImgInfo imgVideo = null; + ImgInfo imgActivity = null; List<String> listDel = new ArrayList<String>(); List<String> listOld = new ArrayList<String>(); + List<ImgInfo> listOldImgInfo = new ArrayList<ImgInfo>(); // 澶勭悊鍥剧墖 List<ImgInfo> resultList = resultObj.getImgList(); if (resultList != null && resultList.size() > 0) { @@ -780,14 +1154,18 @@ if (type == ImgEnum.video) { imgVideo = info; } else if (type == ImgEnum.img) { + listOldImgInfo.add(info); String url = info.getUrl(); if (!StringUtil.isNullOrEmpty(url)) { listOld.add(url); } + } else if (type == ImgEnum.activity) { + imgActivity = info; } } } + MultipartFile activityFile = null; // 瑙嗛閮ㄥ垎 if (fileRequest != null) { MultipartFile filevideo = fileRequest.getFile("filevideo"); @@ -795,32 +1173,31 @@ if (StringUtil.isNullOrEmpty(videoUrl)) { throw new GoodsEvaluateException(1, "瑙嗛閾炬帴涓嶈兘涓虹┖"); } - InputStream inputStream = filevideo.getInputStream(); - BufferedImage sourceImg = ImageIO.read(inputStream); - int width = sourceImg.getWidth(); - int height = sourceImg.getHeight(); - - String picLink = uploadPicture(filevideo); + ImgInfo info = uploadVideoPicture(filevideo); + if (info == null) + throw new GoodsEvaluateException(2, "瑙嗛鍥剧墖涓婁紶澶辫触"); if (imgVideo != null) { String url = imgVideo.getUrl(); if (!StringUtil.isNullOrEmpty(url)) { listDel.add(url); } - imgVideo.setUrl(picLink); - imgVideo.setUrlHD(picLink); + imgVideo.setUrl(info.getUrl()); + imgVideo.setUrlHD(info.getUrl()); } else { imgVideo = new ImgInfo(); imgVideo.setId(UUID.randomUUID().toString().replace("-", "")); imgVideo.setLarge(true); imgVideo.setPid(pid); - imgVideo.setUrl(picLink); - imgVideo.setUrlHD(picLink); + imgVideo.setUrl(info.getUrl()); + imgVideo.setUrlHD(info.getUrl()); imgVideo.setVideoUrl(videoUrl); imgVideo.setType(ImgEnum.video); } - imgVideo.setW(width); - imgVideo.setH(height); + imgVideo.setW(info.getW()); + imgVideo.setH(info.getH()); } + + activityFile = fileRequest.getFile("activityFile"); } List<ImgInfo> listImg = new ArrayList<ImgInfo>(); @@ -829,6 +1206,7 @@ if (imgVideo != null && StringUtil.isNullOrEmpty(imgVideo.getUrl())) { throw new GoodsEvaluateException(1, "瑙嗛灏侀潰鍥句笉鑳戒负绌�"); } + imgVideo.setVideoUrl(videoUrl); listImg.add(imgVideo); } else { @@ -839,21 +1217,36 @@ } } + if (activityFile != null) { + InputStream inputStream = activityFile.getInputStream(); + BufferedImage sourceImg = ImageIO.read(inputStream); + int width = sourceImg.getWidth(); + int height = sourceImg.getHeight(); + + String picLink = uploadPicture(activityFile); + + ImgInfo activity = new ImgInfo(); + activity.setId(UUID.randomUUID().toString().replace("-", "")); + activity.setLarge(true); + activity.setPid(pid); + activity.setUrl(picLink); + activity.setUrlHD(picLink); + activity.setActivityPic(picLink); + activity.setW(width); + activity.setH(height); + activity.setType(ImgEnum.activity); + listImg.add(activity); + } else if (imgActivity != null) { + listImg.add(imgActivity); + } + // 缂栬緫鍥剧墖 - List<String> listpic = null; + List<String> listpic = new ArrayList<>(); if (!StringUtil.isNullOrEmpty(picUrls)) { String[] pics = picUrls.split(","); if (pics != null) { - listpic = new ArrayList<>(); for (int i = 0; i < pics.length; i++) { String picLink = pics[i]; - if (fileRequest != null) { - MultipartFile file = fileRequest.getFile("file" + i); - if (file != null) { - picLink = uploadPicture(file); - } - } - if (picLink.startsWith("http")) { listpic.add(picLink); } @@ -861,36 +1254,66 @@ } } - if (listpic != null && listpic.size() > 0) { - for (int i = 0; i < listpic.size(); i++) { - ImgInfo imgInfo0 = new ImgInfo(); - imgInfo0.setId(UUID.randomUUID().toString().replace("-", "")); - imgInfo0.setW(1); - imgInfo0.setH(1); - imgInfo0.setLarge(false); - imgInfo0.setPid(pid); - imgInfo0.setUrl(listpic.get(i)); - imgInfo0.setUrlHD(listpic.get(i)); - imgInfo0.setType(ImgEnum.img); - listImg.add(imgInfo0); + // 涓婁紶鏂囦欢鏇挎崲 + if (fileRequest != null) { + for (int i = 0; i < 9; i++) { + MultipartFile file = fileRequest.getFile("file" + i); + if (file != null) { + String picLink = uploadPicture(file); + if (i < listpic.size()) { + listpic.set(i, picLink); + } else { + listpic.add(picLink); + } + } } } + int totalImg = 0; + for (String pic : listpic) { + ImgInfo imgInfo0 = new ImgInfo(); + imgInfo0.setId(UUID.randomUUID().toString().replace("-", "")); + imgInfo0.setLarge(false); + imgInfo0.setPid(pid); + imgInfo0.setUrl(pic); + imgInfo0.setUrlHD(pic); + imgInfo0.setType(ImgEnum.img); + imgInfo0.setW(1); + imgInfo0.setH(1); + listImg.add(imgInfo0); + totalImg++; + } + + // 娓呯悊鑰佸浘鐗� if (listOld != null && listOld.size() > 0) { for (int j = 0; j < listOld.size(); j++) { boolean del = true; String oldPic = listOld.get(j); - for (ImgInfo imgInfo: listImg) { + for (ImgInfo imgInfo : listImg) { String url = imgInfo.getUrl(); if (url.equals(oldPic)) { del = false; - } + } } if (del) listDel.add(listOld.get(j)); } } - + + int lineNum = 0; + if (totalImg > 0) { + if (totalImg == 1) { + lineNum = 1; + } else if (totalImg == 3) { + lineNum = 3; + } else if (totalImg == 2 || totalImg == 4) { + lineNum = 2; + } else { + lineNum = 3; + } + } + + resultObj.setLineNum(lineNum); resultObj.setImgList(listImg); goodsEvaluateDao.save(resultObj); @@ -903,7 +1326,7 @@ } } } - + @Override public void deleteBatchByPrimaryKey(List<String> list) { if (list == null || list.size() == 0) { @@ -975,7 +1398,7 @@ goodsEvaluate.setComments(comments); goodsEvaluateDao.save(goodsEvaluate); } - + @Override public void release(String id) throws GoodsEvaluateException { GoodsEvaluate goodsEvaluate = goodsEvaluateDao.getById(id); @@ -985,7 +1408,6 @@ goodsEvaluate.setState(1); goodsEvaluateDao.save(goodsEvaluate); } - @Override public void deleteComment(String pid, List<String> list) throws GoodsEvaluateException { @@ -1046,6 +1468,43 @@ } @Override + public void addRanDomShareCount() { + // 鍙戝湀 + try { + List<GoodsEvaluate> list = goodsEvaluateDao.queryValid(0, Integer.MAX_VALUE, 1); + if (list != null) { + for (GoodsEvaluate goodsEvaluate : list) { + Integer shareNum = goodsEvaluate.getShareNum(); + if (shareNum == null) { + shareNum = 0; + } + goodsEvaluate.setShareNum(shareNum + (int) (Math.random() * 100) + 10); + goodsEvaluateDao.save(goodsEvaluate); + } + } + } catch (Exception e) { + LogHelper.errorDetailInfo(e); + } + + // 绱犳潗 + try { + List<GoodsEvaluate> list = goodsEvaluateDao.queryValid(0, Integer.MAX_VALUE, 2); + if (list != null) { + for (GoodsEvaluate goodsEvaluate : list) { + Integer shareNum = goodsEvaluate.getShareNum(); + if (shareNum == null) { + shareNum = 0; + } + goodsEvaluate.setShareNum(shareNum + (int) (Math.random() * 100) + 10); + goodsEvaluateDao.save(goodsEvaluate); + } + } + } catch (Exception e) { + LogHelper.errorDetailInfo(e); + } + } + + @Override @Cacheable(value = "dynamicCache", key = "'queryValidEvaluateCache-'+#start") public List<GoodsEvaluate> queryValidEvaluateCache(int start, int count) { List<GoodsEvaluate> list = goodsEvaluateDao.queryValid(start, count, 1); @@ -1054,7 +1513,13 @@ executor.execute(new Runnable() { @Override public void run() { + // 鏇存柊淇℃伅 updateGoodInfo(list); + + // 鍒犻櫎宸茶繃鏈� + removeOverdue(); + + removeDownGoods(); } }); @@ -1065,19 +1530,169 @@ public long countValid() { return goodsEvaluateDao.countValid(1); } - + @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); + if (list == null) { + list = new ArrayList<>(); + } + Date now = new Date(); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + + List<GoodsEvaluate> listNew = new ArrayList<>(); + for (GoodsEvaluate goodsEvaluate : list) { + GoodsEvaluate evaluateNew = new GoodsEvaluate(); + try { + PropertyUtils.copyProperties(evaluateNew, goodsEvaluate); + } catch (Exception e) { + e.printStackTrace(); + continue; + } + + // 鎸夌収鍙戝竷鏄剧ず鏃堕棿娈佃捣濮嬫椂闂翠负鍑嗐�� + goodsEvaluate.setPublishTime(goodsEvaluate.getStartTime()); + + List<CommentInfo> comments = evaluateNew.getComments(); + if (comments != null && comments.size() > 0) { + EvaluateEnum typeEnum = evaluateNew.getType(); + List<CommentInfo> commentNew = new ArrayList<>(); + + boolean singleCoupn = true; + boolean currencyCoupon = true; + for (CommentInfo commentInfo : comments) { + if (StringUtil.isNullOrEmpty(commentInfo.getContent()) + && StringUtil.isNullOrEmpty(commentInfo.getCoupon())) { + continue; + } + + CommentInfo commentInfoNew = new CommentInfo(); + try { + PropertyUtils.copyProperties(commentInfoNew, commentInfo); + } catch (Exception e) { + e.printStackTrace(); + continue; + } + + if (typeEnum != null && typeEnum == EvaluateEnum.single) { + GoodsDetailVO goods = evaluateNew.getGoods(); + if (goods != null) { + String content = commentInfoNew.getContent(); + if (!StringUtil.isNullOrEmpty(content)) { + content = content.replace("[鍘熶环]", + MoneyBigDecimalUtil.getWithNoZera(goods.getZkPrice()) + ""); + if (goods.isHasCoupon()) { + content = content.replace("[鍒稿悗浠穄", + MoneyBigDecimalUtil.getWithNoZera(goods.getCouponPrice()) + ""); + } else { + singleCoupn = false; + content = content.replace("棰嗗埜鎶㈣喘", "鎶㈣喘"); + content = content.replace("銆愬埜鍚庝环銆慬鍒稿悗浠穄鍏�", ""); + } + content = content.replace("\r\n\r\n", "\r\n").replace("\r\n\r\n", "\r\n"); + // 鏇挎崲娣樺疂瀹樻柟娲诲姩 + List<String> activityIdList = convertLinkManager.getTaoBaoOfficialActivityId(content); + for (String st : activityIdList) + content = content.replace(st, ""); + + commentInfoNew.setContent(content); + } + } + } + if (typeEnum != null && typeEnum == EvaluateEnum.activity) { + // 鏇挎崲娣樺疂瀹樻柟娲诲姩 + String content = commentInfoNew.getContent(); + List<String> activityIdList = convertLinkManager.getTaoBaoOfficialActivityId(content); + for (String st : activityIdList) + content = content.replace(st, ""); + commentInfoNew.setContent(content); + } + + CommentInfoEnum typeComment = commentInfoNew.getTypeEnum(); + if (typeComment != null && typeComment == CommentInfoEnum.goodsCoupon) { + GoodsDetailVO goods = evaluateNew.getGoods(); + if (goods != null && goods.isHasCoupon()) { + commentNew.add(commentInfoNew); + continue; + } + } + + String coupon = commentInfoNew.getCoupon(); + String endTime = commentInfoNew.getEndTime(); + if (!StringUtil.isNullOrEmpty(coupon) && !StringUtil.isNullOrEmpty(endTime)) { + Date endDay = sdf.parse(endTime); + if (endDay.getTime() > now.getTime()) { + String daysBetween = DateUtil.dateDiff5(now, endDay); + if (!StringUtil.isNullOrEmpty(daysBetween)) { + List<ClientTextStyleVO> tagListNew = new ArrayList<>(); + List<ClientTextStyleVO> tagList = commentInfoNew.getTagList(); + if (tagList != null) { + tagListNew.addAll(tagList); + } + + ClientTextStyleVO styleVO = new ClientTextStyleVO(); + styleVO.setColor("#E5005C"); + styleVO.setContent(daysBetween + "鍚庤繃鏈�"); + tagListNew.add(styleVO); + commentInfoNew.setTagList(tagListNew); + commentNew.add(commentInfoNew); + continue; + } else { + currencyCoupon = false; + continue; + } + } else { + currencyCoupon = false; + continue; + } + } + + commentNew.add(commentInfoNew); + } + evaluateNew.setComments(commentNew); + + if (typeEnum != null && typeEnum == EvaluateEnum.single) { + if (!currencyCoupon && !singleCoupn) { // 鎵�鏈夊埜璇勮涓嬫灦 + GoodsDetailVO goods = evaluateNew.getGoods(); + if (goods != null) { + goods.setState(1); // 璇勮涓嶅瓨鍦� 涓嬫灦 + evaluateNew.setRemarks("璇勮楠岃瘉涓嬫灦"); + } + + List<ImgInfo> imgList = evaluateNew.getImgList(); + if (imgList != null) { + for (ImgInfo imgInfo : imgList) { + SimpleGoods simpleGoods = imgInfo.getGoods(); + if (simpleGoods != null) { + simpleGoods.setState(1); + simpleGoods.setRemarks("璇勮楠岃瘉涓嬫灦"); + } + } + + } + } + } + } + + listNew.add(evaluateNew); + } + + List<GoodsEvaluate> listOBJ = list; // 鏇存柊鍟嗗搧淇℃伅 executor.execute(new Runnable() { @Override public void run() { - updateGoodInfo(list); + updateGoodInfo(listOBJ); + + // 鍒犻櫎宸茶繃鏈� + removeOverdue(); + + removeDownGoods(); } }); - return list; + + return listNew; } @Override @@ -1098,11 +1713,10 @@ } try { - BigDecimal fanLiRate = hongBaoManageService.getFanLiRate(); - BigDecimal shareRate = hongBaoManageService.getShareRate(); - BigDecimal vipFanLiRate = hongBaoManageService.getVIPFanLiRate(); - ConfigParamsDTO paramsDTO = new ConfigParamsDTO(fanLiRate, shareRate, Constant.MAX_REWARD_RATE, - vipFanLiRate); + Date now = new Date(); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + ConfigParamsDTO params = orderHongBaoMoneyComputeService.getShowComputeRate("android", "55"); + params.setBaseFanliRate(hongBaoManageService.getBaseFanliRate()); for (GoodsEvaluate goodsEvaluate : list) { // 鏄惁2涓皬鏃朵箣鍐呭凡鏇存柊 Date updateTime = goodsEvaluate.getUpdateTime(); @@ -1117,9 +1731,37 @@ } } + EvaluateEnum type = goodsEvaluate.getType(); + if (type != null && type == EvaluateEnum.activity) { + List<CommentInfo> comments = goodsEvaluate.getComments(); + if (comments != null) { + for (CommentInfo commentInfo : comments) { + CommentInfoEnum commentInfoEnum = commentInfo.getTypeEnum(); + if (commentInfoEnum != null && commentInfoEnum == CommentInfoEnum.currencyCoupon) { + String endTime = commentInfo.getEndTime(); + if (!StringUtil.isNullOrEmpty(endTime)) { + Date endDay = sdf.parse(endTime); + if (endDay.getTime() < now.getTime()) { + goodsEvaluate.setState(0); // 娲诲姩杩囨湡 + } + } + } + + } + } + } + GoodsDetailVO goods = goodsEvaluate.getGoods(); if (goods != null) { - GoodsDetailVO goodsNew = getGoodsNewInfo(goods.getGoodsId(), goods.getGoodsType(), paramsDTO); + GoodsDetailVO goodsNew = getGoodsNewInfo(goods.getGoodsId(), goods.getGoodsType(), params); + if (goodsNew != null) { + goodsEvaluate.setGoods(goodsNew); + } else { + goodsEvaluate.setRemarks("鏇存柊-浣嶇疆鎵惧埌鍟嗗搧淇℃伅"); + goodsEvaluate.setState(0); // 宸插晢鍝佷笅鏋� + goods.setState(1); + goodsEvaluate.setGoods(goods); + } } // 鏇存柊鍟嗗搧淇℃伅 List<ImgInfo> imgList = goodsEvaluate.getImgList(); @@ -1127,6 +1769,40 @@ continue; } + for (ImgInfo imgInfo : imgList) { + SimpleGoods simpleGoods = imgInfo.getGoods(); + if (simpleGoods == null) { + continue; + } + + GoodsDetailVO goodsDetailVO = getGoodsNewInfo(simpleGoods.getGoodsId(), simpleGoods.getGoodsType(), + params); + if (goodsDetailVO != null) { + simpleGoods.setPrice(goodsDetailVO.getCouponPrice()); + simpleGoods.setState(0); + CouponInfoVO couponInfo = goodsDetailVO.getCouponInfo(); + if (couponInfo == null) { + simpleGoods.setPrice(goodsDetailVO.getZkPrice()); + } else { + simpleGoods.setPrice(goodsDetailVO.getCouponPrice()); + simpleGoods.setAmount(couponInfo.getAmount()); + } + imgInfo.setGoods(simpleGoods); + imgInfo.setGoodsVO(goodsDetailVO); + } else { + simpleGoods.setRemarks("鏇存柊-浣嶇疆鎵惧埌鍟嗗搧淇℃伅"); + simpleGoods.setState(1); + imgInfo.setGoods(simpleGoods); + GoodsDetailVO goodsVO = imgInfo.getGoodsVO(); + if (goodsVO != null) { + goodsVO.setState(1); + imgInfo.setGoodsVO(goodsVO); + } + } + } + goodsEvaluate.setImgList(imgList); + goodsEvaluate.setUpdateTime(new Date()); + goodsEvaluateDao.save(goodsEvaluate); } } catch (Exception e) { LogHelper.errorDetailInfo(e); @@ -1136,6 +1812,15 @@ 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); @@ -1150,5 +1835,587 @@ return vo; } -} + @Override + 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); + } catch (TaobaoGoodsDownException e) { + throw new GoodsEvaluateException(1, "鍟嗗搧宸蹭笅鏋�"); + } + + if (goodsBrief == null) { + throw new GoodsEvaluateException(1, "鏈壘鍒板晢鍝佷俊鎭�"); + } + + BigDecimal couponAmount = goodsBrief.getCouponAmount(); + if (couponAmount == null || couponAmount.compareTo(new BigDecimal(0)) < 1) { + throw new GoodsEvaluateException(1, "璇ュ晢鍝佹棤鍒�"); + } + + // 鐧藉簳鍥� + List<String> imgs = new ArrayList<>(); + if (!StringUtil.isNullOrEmpty(goodsBrief.getPictUrlWhite())) { + imgs.add(goodsBrief.getPictUrlWhite()); + } + imgs.addAll(goodsBrief.getImgList()); + + // 鍟嗗搧VO + ConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate("android", "55"); + paramsDTO.setBaseFanliRate(hongBaoManageService.getBaseFanliRate()); + GoodsDetailVO goodsVO = GoodsDetailVOFactory.convertTaoBao(goodsBrief, paramsDTO); + + // 鍟嗗搧鍥剧墖淇℃伅 + int i = 0; + 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 { + 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); + } + 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)) { + commentInfo.setContent(comment); + commentInfo.setType(""); + } else { + String token = shareGoodsService.createTaoBaoToken(Constant.LINK_TOKEN_VERIFY_UID, goodsBrief); + String template = configService.get(ConfigKeyEnum.quickShareTBCommentText.getKey()); + String commentText = template.replace("[娣樺彛浠", TaoBaoUtil.filterTaoToken(token)); + if (!goodsVO.isHasCoupon()) { + commentText = commentText.replace("棰嗗埜鎶㈣喘", "鎶㈣喘"); + commentText = commentText.replace("銆愬埜鍚庝环銆慬鍒稿悗浠穄鍏�", ""); + 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 (imgList.size() > 0) { + if (imgList.size() == 1) { + lineNum = 1; + } else if (imgList.size() == 3) { + lineNum = 3; + } else if (imgList.size() == 2 || imgList.size() == 4) { + lineNum = 2; + } else { + lineNum = 3; + } + } + + GoodsEvaluate goodsEvaluate = new GoodsEvaluate(); + goodsEvaluate.setId(UUID.randomUUID().toString().replace("-", "")); + goodsEvaluate.setUser(user); + goodsEvaluate.setTitle(getDescNew(title)); + goodsEvaluate.setState(1); + goodsEvaluate.setDynamicType(1); + goodsEvaluate.setType(EvaluateEnum.single); + goodsEvaluate.setShareNum((int) (Math.random() * 5000) + 1000); + goodsEvaluate.setShareNumReal(0); + goodsEvaluate.setWeight(0.0); + if (startTime == null) + startTime = new Date(); + goodsEvaluate.setStartTime(startTime); + goodsEvaluate.setEndTime(DateUtil.plusDayDate(3, new Date())); + goodsEvaluate.setPublishTime(new Date()); + goodsEvaluate.setCreateTime(new Date()); + goodsEvaluate.setUpdateTime(new Date()); + goodsEvaluate.setGoods(goodsVO); + goodsEvaluate.setLineNum(lineNum); + goodsEvaluate.setImgList(imgList); + goodsEvaluate.setComments(commentsNew); + goodsEvaluateDao.save(goodsEvaluate); + } + + @Override + public void addGoodsEvaluateByDaTaoKe() { + List<Long> listId = null; + List<GoodsEvaluate> listExist = goodsEvaluateDao.querySingleExist(); + if (listExist != null && listExist.size() > 0) { + listId = new ArrayList<Long>(); + for (GoodsEvaluate goodsEvaluate : listExist) { + GoodsDetailVO goods = goodsEvaluate.getGoods(); + if (goods != null && goods.getGoodsType() == 1) { + listId.add(goods.getGoodsId()); + } + } + } + // 鐑攢鍗曞搧鐨勫垎绫� + List<GoodsClass> listClass = DaTaoKeUtil.goodsClasses; + int ci = (int) (Math.random() * listClass.size()); + Long subId = listClass.get(ci).getId(); + + List<DaTaoKeDetailV2> list = daTaoKeGoodsDetailV2Service.getGoodsNotInList(subId, listId, 1); + if (list == null || list.size() == 0) { + return; + } + + for (int i = 0; i < list.size(); i++) { + boolean cerateGoods = cerateGoods(list.get(i)); + if (cerateGoods) { + break; + } + } + } + + private boolean cerateGoods(DaTaoKeDetailV2 daTaoKe) { + try { + TaoBaoGoodsBrief goodsBrief = redisManager.getTaoBaoGoodsBrief(daTaoKe.getGoodsId()); + if (goodsBrief == null) { + return false; + } + + BigDecimal couponAmount = goodsBrief.getCouponAmount(); + if (couponAmount == null || couponAmount.compareTo(new BigDecimal(0)) < 1) { + return false; + } + + ConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate("android", "55"); + paramsDTO.setBaseFanliRate(hongBaoManageService.getBaseFanliRate()); + GoodsDetailVO goodsVO = GoodsDetailVOFactory.convertTaoBao(goodsBrief, paramsDTO); + // 鍙戝竷鐢ㄦ埛 + ActivityUser user = activityUserService.getRandomByDaTaoKeCid(daTaoKe.getCid()); + + String desc = daTaoKe.getDesc().replace(",", "锛�"); + String[] split = desc.split("锛�"); + int max = 1; + if (Math.random() > 0.5) { + max = 2; + } + int e = 0; + String emojis = ""; + String descNew = ""; + if (split.length > 0) { + for (int i = 0; i < split.length; i++) { + if (Math.random() > 0.5 && e < max) { + for (int j = 0; j < 10; j++) { + String emojisTemp = DaTaoKeUtil.getEvaluateEmojis(); + if (!emojis.equals(emojisTemp)) { + emojis = emojisTemp; + break; + } + } + e++; + descNew += split[i] + emojis; + } else { + descNew += split[i] + "锛�"; + } + } + } else { + descNew = desc; + } + + if (descNew.endsWith("锛�")) { + descNew = descNew.substring(0, descNew.length() - 1); + } + + GoodsEvaluate goodsEvaluate = new GoodsEvaluate(); + goodsEvaluate.setId(UUID.randomUUID().toString().replace("-", "")); + goodsEvaluate.setUser(user); + goodsEvaluate.setTitle(descNew); + goodsEvaluate.setState(1); + goodsEvaluate.setDynamicType(1); + goodsEvaluate.setType(EvaluateEnum.single); + + goodsEvaluate.setShareNum((int) (Math.random() * 5000) + 1000); + goodsEvaluate.setShareNumReal(0); + goodsEvaluate.setWeight(0.0); + goodsEvaluate.setStartTime(new Date()); + goodsEvaluate.setEndTime(DateUtil.plusDayDate(3, new Date())); + goodsEvaluate.setPublishTime(new Date()); + goodsEvaluate.setCreateTime(new Date()); + goodsEvaluate.setUpdateTime(new Date()); + + List<String> goodsimgs = goodsBrief.getImgList(); + + List<String> imgs = new ArrayList<>(); + if (!StringUtil.isNullOrEmpty(goodsBrief.getPictUrlWhite())) { + imgs.add(goodsBrief.getPictUrlWhite()); + } + imgs.addAll(goodsimgs); + + + 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()); + } else { + simpleGoods.setPrice(goodsVO.getCouponPrice()); + simpleGoods.setAmount(couponInfo.getAmount()); + } + imgInfo.setGoods(simpleGoods); + imgInfo.setGoodsVO(goodsVO); + + // TaoBaoLink taoBaoLink = + // shareGoodsService.getTaoBaoLinkForShare(Constant.LINK_TOKEN_VERIFY_UID, + // goodsVO.getGoodsId(), null); + + String token = shareGoodsService.createTaoBaoToken(Constant.LINK_TOKEN_VERIFY_UID, goodsBrief); + + String template = configService.get(ConfigKeyEnum.quickShareTBCommentText.getKey()); + String commentText = template.replace("[娣樺彛浠", TaoBaoUtil.filterTaoToken(token)); + if (!goodsVO.isHasCoupon()) { + commentText = commentText.replace("棰嗗埜鎶㈣喘", "鎶㈣喘"); + commentText = commentText.replace("銆愬埜鍚庝环銆慬鍒稿悗浠穄鍏�", ""); + 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); + commentInfo.setType(CommentInfoEnum.goodsCoupon.getDesc()); + + String text2 = ""; + String evaluateEmojis = configService.get(ConfigKeyEnum.evaluateEmojis.getKey()); + if (!StringUtil.isNullOrEmpty(evaluateEmojis)) { + text2 = evaluateEmojis + "\n"; + } + + String evaluateText = configService.get(ConfigKeyEnum.evaluateText.getKey()); + if (!StringUtil.isNullOrEmpty(evaluateText)) { + text2 += evaluateText; + } + + String dtitle = daTaoKe.getDtitle(); + if (!StringUtil.isNullOrEmpty(dtitle)) { + text2 = text2 + dtitle + "\n"; + } else if (!StringUtil.isNullOrEmpty(evaluateText)) { + text2 += "\n"; + } + text2 += "鍏堥銆�" + couponAmount + "鍏冧紭鎯犲埜銆戜笅鍗�"; + + CommentInfo commentInfo2 = new CommentInfo(); + commentInfo2.setId(UUID.randomUUID().toString().replace("-", "")); + commentInfo2.setContent(text2); + commentInfo2.setTypeEnum(CommentInfoEnum.goodsCoupon); + commentInfo2.setType(""); + commentInfo2.setNeedSpin(true); + + List<CommentInfo> commentsNew = new ArrayList<>(); + commentsNew.add(commentInfo); + commentsNew.add(commentInfo2); + goodsEvaluate.setComments(commentsNew); + } + imgList.add(imgInfo); + 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() == 2 || imgList.size() == 4) { + lineNum = 2; + } else { + lineNum = 3; + } + } + goodsEvaluate.setLineNum(lineNum); + + goodsEvaluate.setGoods(goodsVO); + goodsEvaluate.setImgList(imgList); + goodsEvaluateDao.save(goodsEvaluate); + } catch (Exception e) { + e.printStackTrace(); + LogHelper.errorDetailInfo(e); + return false; + } + return true; + } + + /** + * 鍙戝湀鏍囬 鍔犲叆琛ㄦ儏 + * @param desc + * @return + */ + private String getDescNew(String desc) { + String[] split = desc.split("锛�"); + int max = 1; + if (Math.random() > 0.5) { + max = 2; + } + int e = 0; + String emojis = ""; + String descNew = ""; + if (split.length > 0) { + for (int i = 0; i < split.length; i++) { + if (Math.random() > 0.5 && e < max) { + for (int j = 0; j < 10; j++) { + String emojisTemp = DaTaoKeUtil.getEvaluateEmojis(); + if (!emojis.equals(emojisTemp)) { + emojis = emojisTemp; + break; + } + } + e++; + descNew += split[i] + emojis; + } else { + descNew += split[i] + "锛�"; + } + } + } else { + descNew = desc; + } + + if (descNew.endsWith("锛�")) { + descNew = descNew.substring(0, descNew.length() - 1); + } + return descNew; + } + + @Override + public void updateTaoBaoGoods(TaoBaoGoodsBrief goods) { + try { + if (goods == null) { + return; + } + List<GoodsEvaluate> queryExist = goodsEvaluateDao.queryExist(Constant.SOURCE_TYPE_TAOBAO, + goods.getAuctionId()); + if (queryExist == null || queryExist.size() == 0) { + return; + } + + ConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate("android", "55"); + paramsDTO.setBaseFanliRate(hongBaoManageService.getBaseFanliRate()); + GoodsDetailVO goodsNew = GoodsDetailVOFactory.convertTaoBao(goods, paramsDTO); + updateGoods(queryExist, goodsNew); + + } catch (Exception e) { + e.printStackTrace(); + } + } + + @Override + public void updateJDGoods(JDGoods jdGoods) { + if (jdGoods == null) { + return; + } + List<GoodsEvaluate> queryExist = goodsEvaluateDao.queryExist(Constant.SOURCE_TYPE_JD, jdGoods.getSkuId()); + if (queryExist == null || queryExist.size() == 0) { + return; + } + + ConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate("android", "55"); + paramsDTO.setBaseFanliRate(hongBaoManageService.getBaseFanliRate()); + GoodsDetailVO goodsNew = GoodsDetailVOFactory.convertJDGoods(jdGoods, paramsDTO); + + updateGoods(queryExist, goodsNew); + } + + @Override + public void updatePDDGoods(PDDGoodsDetail pddGoods) { + if (pddGoods == null) { + return; + } + List<GoodsEvaluate> queryExist = goodsEvaluateDao.queryExist(Constant.SOURCE_TYPE_PDD, pddGoods.getGoodsId()); + if (queryExist == null || queryExist.size() == 0) { + return; + } + + ConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate("android", "55"); + paramsDTO.setBaseFanliRate(hongBaoManageService.getBaseFanliRate()); + GoodsDetailVO goodsNew = GoodsDetailVOFactory.convertPDDGoods(pddGoods, paramsDTO); + updateGoods(queryExist, goodsNew); + } + + private void updateGoods(List<GoodsEvaluate> listExist, GoodsDetailVO goodsNew) { + long goodsId = goodsNew.getGoodsId(); + int goodsType = goodsNew.getGoodsType(); + for (GoodsEvaluate goodsEvaluate : listExist) { + GoodsDetailVO goodsDetailVO = goodsEvaluate.getGoods(); + if (goodsDetailVO != null && goodsDetailVO.getGoodsId() != null && goodsDetailVO.getGoodsId() == goodsId + && goodsDetailVO.getGoodsType() == goodsType) { + goodsEvaluate.setGoods(goodsNew); + } + + // 鏇存柊鍟嗗搧淇℃伅 + List<ImgInfo> imgList = goodsEvaluate.getImgList(); + if (imgList == null || imgList.size() == 0) { + continue; + } + + for (ImgInfo imgInfo : imgList) { + SimpleGoods simpleGoods = imgInfo.getGoods(); + if (simpleGoods == null || simpleGoods.getGoodsId() != goodsId + || goodsType != simpleGoods.getGoodsType()) { + continue; + } + + simpleGoods.setState(0); + simpleGoods.setPrice(goodsNew.getCouponPrice()); + CouponInfoVO couponInfo = goodsNew.getCouponInfo(); + if (couponInfo == null) { + simpleGoods.setPrice(goodsNew.getZkPrice()); + } else { + simpleGoods.setPrice(goodsNew.getCouponPrice()); + simpleGoods.setAmount(couponInfo.getAmount()); + } + + imgInfo.setGoods(simpleGoods); + imgInfo.setGoodsVO(goodsNew); + } + + goodsEvaluate.setImgList(imgList); + goodsEvaluate.setUpdateTime(new Date()); + 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(); + if (list == null || list.size() == 0) { + return; + } + long nm = 1000 * 60;// 涓�鍒嗛挓鐨勬绉掓暟 + long nh = 1000 * 60 * 60;// 涓�灏忔椂鐨勬绉掓暟 + long nd = 1000 * 24 * 60 * 60;// 涓�澶╃殑姣鏁� + + long time = java.lang.System.currentTimeMillis(); + for (GoodsEvaluate goodsEvaluate : list) { + long diff = time - goodsEvaluate.getEndTime().getTime(); + long min = diff % nd % nh / nm; + + // 杩囨湡瓒呰繃10鍒嗛挓灏卞垹闄� + if (min > 10) { + goodsEvaluateDao.remove(goodsEvaluate); + } + } + } + + /** + * 鍒犻櫎鍟嗗搧宸蹭笅鏋�-鍗曞搧 + */ + private void removeDownGoods() { + try { + List<GoodsEvaluate> list = goodsEvaluateDao.removeDownGoods(); + if (list == null || list.size() == 0) { + return; + } + + for (GoodsEvaluate goodsEvaluate : list) { + goodsEvaluateDao.remove(goodsEvaluate); + } + } catch (Exception e) { + e.printStackTrace(); + } + } +} -- Gitblit v1.8.0