From e40d1c22c7202aac843c66f9ee9cc000744f9e10 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期二, 30 六月 2020 15:52:49 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/div' into div --- fanli/src/main/java/com/yeshi/fanli/service/impl/dynamic/GoodsEvaluateServiceImpl.java | 428 +++++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 333 insertions(+), 95 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 911bbd4..b01df9b 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 @@ -7,6 +7,7 @@ import java.math.BigDecimal; import java.text.SimpleDateFormat; import java.util.ArrayList; +import java.util.Arrays; import java.util.Collections; import java.util.Comparator; import java.util.Date; @@ -31,6 +32,9 @@ import com.yeshi.fanli.dto.ConfigParamsDTO; import com.yeshi.fanli.dto.jd.JDCouponInfo; import com.yeshi.fanli.dto.pdd.PDDGoodsDetail; +import com.yeshi.fanli.dto.suning.SuningGoodsInfo; +import com.yeshi.fanli.dto.vip.goods.VIPGoodsInfo; +import com.yeshi.fanli.entity.bus.activity.ActivityRuleUser; import com.yeshi.fanli.entity.bus.activity.ActivityUser; import com.yeshi.fanli.entity.bus.clazz.GoodsClass; import com.yeshi.fanli.entity.dynamic.CommentInfo; @@ -48,6 +52,7 @@ 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.share.ShareGoodsException; import com.yeshi.fanli.exception.taobao.TaobaoGoodsDownException; import com.yeshi.fanli.log.LogHelper; import com.yeshi.fanli.service.inter.activity.ActivityUserService; @@ -64,6 +69,7 @@ import com.yeshi.fanli.util.MoneyBigDecimalUtil; import com.yeshi.fanli.util.RedisManager; import com.yeshi.fanli.util.StringUtil; +import com.yeshi.fanli.util.TimeUtil; import com.yeshi.fanli.util.cache.JDGoodsCacheUtil; import com.yeshi.fanli.util.cache.PinDuoDuoCacheUtil; import com.yeshi.fanli.util.factory.goods.GoodsDetailVOFactory; @@ -90,7 +96,7 @@ @Resource private HongBaoManageService hongBaoManageService; - + @Resource private OrderHongBaoMoneyComputeService orderHongBaoMoneyComputeService; @@ -115,18 +121,17 @@ @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; @@ -135,8 +140,7 @@ } goodsEvaluateDao.updateSatate(id, state); } - - + @Override public String saveHead(MultipartFile file, GoodsEvaluate record) throws GoodsEvaluateException { Integer state = record.getState(); @@ -253,21 +257,22 @@ } return null; } - + private ImgInfo uploadOriginalPicture(MultipartFile file) { try { InputStream inputStream = file.getInputStream(); String contentType = file.getContentType(); String type = contentType.substring(contentType.indexOf("/") + 1); - String filePath = FilePathEnum.goodsEvaluate.getPath() + UUID.randomUUID().toString().replace("-", "") + "."+ type; - + String filePath = FilePathEnum.goodsEvaluate.getPath() + UUID.randomUUID().toString().replace("-", "") + "." + + type; + BufferedImage sourceImg = ImageIO.read(inputStream); ImgInfo info = new ImgInfo(); int width = sourceImg.getWidth(); int height = sourceImg.getHeight(); - + String picLink = COSManager.getInstance().uploadFile(file.getInputStream(), filePath).getUrl(); - + info.setH(height); info.setW(width); info.setUrl(picLink); @@ -277,7 +282,6 @@ } return null; } - private String uploadPicture(File file, String contentType) throws Exception { InputStream inputStream = new FileInputStream(file); @@ -300,7 +304,7 @@ } @Override - public String saveSingleGoods(String pid, Long goodsId, Integer goodsType, String videoUrl, Integer picNum, + public String saveSingleGoods(String pid, String goodsId, Integer goodsType, String videoUrl, Integer picNum, String picUrls, MultipartHttpServletRequest fileRequest) throws GoodsEvaluateException, Exception { if (StringUtil.isNullOrEmpty(pid)) { throw new GoodsEvaluateException(1, "璇蜂繚瀛樼涓�閮ㄥ垎淇℃伅"); @@ -421,16 +425,16 @@ params.setBaseFanliRate(hongBaoManageService.getBaseFanliRate()); if (goodsType == Constant.SOURCE_TYPE_TAOBAO) { try { - TaoBaoGoodsBrief goodsBrief = redisManager.getTaoBaoGoodsBrief(goodsId); + TaoBaoGoodsBrief goodsBrief = redisManager.getTaoBaoGoodsBrief(Long.parseLong(goodsId)); goodsDetailVO = GoodsDetailVOFactory.convertTaoBao(goodsBrief, params); } catch (TaobaoGoodsDownException e) { throw new GoodsEvaluateException(1, "鍟嗗搧宸蹭笅鏋�"); } } else if (goodsType == Constant.SOURCE_TYPE_JD) { - jdGoods = jdGoodsCacheUtil.getGoodsInfo(goodsId); + jdGoods = jdGoodsCacheUtil.getGoodsInfo(Long.parseLong(goodsId)); goodsDetailVO = GoodsDetailVOFactory.convertJDGoods(jdGoods, params); } else if (goodsType == Constant.SOURCE_TYPE_PDD) { - pddGoods = pinDuoDuoCacheUtil.getGoodsInfo(goodsId); + pddGoods = pinDuoDuoCacheUtil.getGoodsInfo(Long.parseLong(goodsId)); goodsDetailVO = GoodsDetailVOFactory.convertPDDGoods(pddGoods, params); } @@ -518,7 +522,7 @@ if (comments != null && comments.size() > 0) { for (CommentInfo commentInfo : comments) { if (commentInfo.getTypeEnum() == CommentInfoEnum.goodsCoupon) { - if (oldGoodsVO != null && oldGoodsVO.getGoodsId().longValue() == goodsId.longValue() + if (oldGoodsVO != null && oldGoodsVO.getGoodsId().equalsIgnoreCase(goodsId) && oldGoodsVO.getGoodsType() == goodsType) { addComment = false; } @@ -537,7 +541,7 @@ String commentText = ""; if (addComment) { if (goodsType == Constant.SOURCE_TYPE_TAOBAO) { - TaoBaoLink taoBaoLink = shareGoodsService.getTaoBaoLinkForShare(1L, goodsId, "0"); + TaoBaoLink taoBaoLink = shareGoodsService.getTaoBaoLinkForShare(1L, Long.parseLong(goodsId), "0"); String template = configService.get(ConfigKeyEnum.quickShareTBCommentText.getKey()); commentText = template.replace("[娣樺彛浠", TaoBaoUtil.filterTaoToken(taoBaoLink.getTaoToken())); } else if (goodsType == Constant.SOURCE_TYPE_JD) { @@ -555,7 +559,7 @@ } commentText = template.replace("[閾炬帴]", jumpLink); } else if (goodsType == Constant.SOURCE_TYPE_PDD) { - String jumpLink = PinDuoDuoApiUtil.getPromotionUrl(goodsId, PinDuoDuoApiUtil.PID_SHARE + "", "1"); + String jumpLink = PinDuoDuoApiUtil.getPromotionUrl(Long.parseLong(goodsId), PinDuoDuoApiUtil.PID_SHARE + "", "1"); if (jumpLink == null) { throw new GoodsEvaluateException(1, "璇ュ晢鍝佽浆閾惧け璐�"); } @@ -603,13 +607,13 @@ private String createTokenAndLink(GoodsDetailVO goodsDetailVO) throws Exception { String commentText = ""; if (goodsDetailVO.getGoodsType() == Constant.SOURCE_TYPE_TAOBAO) { - TaoBaoLink taoBaoLink = shareGoodsService.getTaoBaoLinkForShare(1L, goodsDetailVO.getGoodsId(), "0"); + TaoBaoLink taoBaoLink = shareGoodsService.getTaoBaoLinkForShare(1L,Long.parseLong(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()); + JDGoods jdGoods = jdGoodsCacheUtil.getGoodsInfo(Long.parseLong(goodsDetailVO.getGoodsId())); JDCouponInfo couponInfo = JDUtil.getShowCouponInfo(jdGoods); if (couponInfo != null) { couponUrl = couponInfo.getLink(); @@ -620,7 +624,7 @@ 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(), + String jumpLink = PinDuoDuoApiUtil.getPromotionUrl(Long.parseLong(goodsDetailVO.getGoodsId()), PinDuoDuoApiUtil.PID_SHARE + "", "1"); String template = configService.get(ConfigKeyEnum.quickSharePDDCommentText.getKey()); commentText = template.replace("[閾炬帴]", jumpLink); @@ -800,7 +804,7 @@ } boolean del = false; - long oldGoodsId = old.getGoods().getGoodsId().longValue(); + String oldGoodsId = old.getGoods().getGoodsId(); int oldGoodsType = old.getGoods().getGoodsType().intValue(); for (ImgInfo newInfo : listImg) { ImgEnum type2 = old.getType(); @@ -808,7 +812,7 @@ continue; } - if (oldGoodsId == newInfo.getGoods().getGoodsId().longValue() + if (oldGoodsId .equalsIgnoreCase(newInfo.getGoods().getGoodsId()) && oldGoodsType == newInfo.getGoods().getGoodsType().intValue()) { String url = newInfo.getUrl(); if (url.equals(old.getUrl())) { @@ -907,7 +911,7 @@ if (StringUtil.isNullOrEmpty(commentInfo.getId())) { commentInfo.setId(UUID.randomUUID().toString().replace("-", "")); } - + commentInfo.setNeedSpin(true); commentInfo.setType(commentInfo.getTags()); commentInfo.setTypeEnum(CommentInfoEnum.goodsCoupon); @@ -922,7 +926,6 @@ goodsEvaluateDao.save(resultObj); } - @Override public void saveCurrencyCoupon(String pid, int kind, CommentInfo commentInfo) throws GoodsEvaluateException, Exception { @@ -933,7 +936,7 @@ GoodsEvaluate resultObj = goodsEvaluateDao.getById(pid); if (resultObj == null) throw new GoodsEvaluateException(1, "绗竴閮ㄥ垎淇℃伅缂哄け"); - + if (EvaluateEnum.activity != resultObj.getType()) { if (StringUtil.isNullOrEmpty(commentInfo.getCoupon())) { throw new GoodsEvaluateException(1, "鍒搁潰棰濅笉鑳戒负绌�"); @@ -965,7 +968,7 @@ if (commentInfo.getNeedSpin() == null) { commentInfo.setNeedSpin(false); } - + String content = commentInfo.getContent(); if (!StringUtil.isNullOrEmpty(content) && commentInfo.getNeedSpin()) { try { @@ -978,7 +981,6 @@ throw new GoodsEvaluateException(1, "鍖呭惈涓嶅彲杞摼鐨勫彛浠や笌閾炬帴"); } } - List<CommentInfo> comments = new ArrayList<>(); CommentInfo currencyCoupon = null; @@ -1039,7 +1041,7 @@ GoodsEvaluate resultObj = goodsEvaluateDao.getById(pid); if (resultObj == null) throw new GoodsEvaluateException(1, "绗竴閮ㄥ垎淇℃伅缂哄け"); - + if (imgInfo == null || StringUtil.isNullOrEmpty(imgInfo.getActivityUrl())) { throw new GoodsEvaluateException(1, "娲诲姩閾炬帴涓嶈兘涓虹┖"); } @@ -1057,7 +1059,7 @@ } } } - + // 瑙嗛閮ㄥ垎 if (fileRequest != null) { MultipartFile filevideo = fileRequest.getFile("filevideo"); @@ -1090,7 +1092,6 @@ } } - List<ImgInfo> listImg = new ArrayList<ImgInfo>(); if (imgVideo != null) { if (!StringUtil.isNullOrEmpty(imgInfo.getVideoUrl())) { @@ -1106,7 +1107,7 @@ } } } - + String activityUrl = imgInfo.getActivityUrl(); // 缂栬緫鍥剧墖 List<ImgInfo> tempList = new ArrayList<ImgInfo>(); @@ -1117,7 +1118,7 @@ String picLink = pics[i]; if (picLink.startsWith("http")) { if (listOld != null) { - for (ImgInfo info: listOld) { + for (ImgInfo info : listOld) { if (info.getUrl().equals(picLink)) { info.setActivityUrl(activityUrl); tempList.add(info); @@ -1130,7 +1131,6 @@ } } - // 涓婁紶鏂囦欢鏇挎崲 if (fileRequest != null) { for (int i = 0; i < 9; i++) { @@ -1152,11 +1152,10 @@ } else { tempList.add(imgInfo0); } - } + } } } - - + int lineNum = 0; int totalImg = tempList.size(); if (totalImg > 0) { @@ -1170,19 +1169,19 @@ lineNum = 3; } } - + // 涓�寮犲浘鏄剧ず涓哄ぇ鍥� if (tempList.size() == 1) { tempList.get(0).setLarge(true); } - + if (tempList.size() > 0) { listImg.addAll(tempList); } - + // 娓呯悊鑰佸浘鐗� if (listOld != null && listOld.size() > 0) { - for (ImgInfo infoOld: listOld) { + for (ImgInfo infoOld : listOld) { boolean del = true; String oldPic = infoOld.getUrl(); for (ImgInfo info : listImg) { @@ -1194,12 +1193,12 @@ listDel.add(infoOld.getUrl()); } } - + resultObj.setJumpLink(activityUrl); resultObj.setLineNum(lineNum); resultObj.setImgList(listImg); goodsEvaluateDao.save(resultObj); - + // 鍒犻櫎鍥剧墖 if (listDel.size() > 0) { for (String url : listDel) { @@ -1423,7 +1422,26 @@ public GoodsEvaluate getById(String id) { return goodsEvaluateDao.getById(id); } + + + @Override + public List<GoodsEvaluate> listByStartTime(Date date) { + return goodsEvaluateDao.listByStartTime(date); + } + @Override + public List<GoodsEvaluate> queryValidSortASC(int start, int count, EvaluateEnum tyepEnum, boolean sortDesc) { + return goodsEvaluateDao.queryValidSortASC(start, count, tyepEnum, sortDesc); + } + + + @Override + public List<GoodsEvaluate> queryValidZeroPoint(int start, int count) { + return goodsEvaluateDao.queryValidZeroPoint(start, count); + } + + + @Override public void saveComment(String pid, CommentInfo commentInfo) throws GoodsEvaluateException { GoodsEvaluate goodsEvaluate = goodsEvaluateDao.getById(pid); @@ -1540,7 +1558,8 @@ } @Override - public List<GoodsEvaluate> query(int start, int count, String key, Integer state, int dynamicType, String typeEnum) { + public List<GoodsEvaluate> query(int start, int count, String key, Integer state, int dynamicType, + String typeEnum) { return goodsEvaluateDao.query(start, count, key, state, dynamicType, typeEnum); } @@ -1600,7 +1619,7 @@ // 鍒犻櫎宸茶繃鏈� removeOverdue(); - + removeDownGoods(); } }); @@ -1769,7 +1788,7 @@ // 鍒犻櫎宸茶繃鏈� removeOverdue(); - + removeDownGoods(); } }); @@ -1796,7 +1815,7 @@ try { Date now = new Date(); - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); ConfigParamsDTO params = orderHongBaoMoneyComputeService.getShowComputeRate("android", "55"); params.setBaseFanliRate(hongBaoManageService.getBaseFanliRate()); for (GoodsEvaluate goodsEvaluate : list) { @@ -1822,7 +1841,7 @@ if (commentInfoEnum != null && commentInfoEnum == CommentInfoEnum.currencyCoupon) { String endTime = commentInfo.getEndTime(); if (!StringUtil.isNullOrEmpty(endTime)) { - Date endDay = sdf.parse(endTime); + Date endDay = format.parse(endTime); if (endDay.getTime() < now.getTime()) { goodsEvaluate.setState(0); // 娲诲姩杩囨湡 } @@ -1891,12 +1910,12 @@ } } - private GoodsDetailVO getGoodsNewInfo(Long goodsId, int goodsType, ConfigParamsDTO paramsDTO) { + private GoodsDetailVO getGoodsNewInfo(String goodsId, int goodsType, ConfigParamsDTO paramsDTO) { GoodsDetailVO vo = null; if (goodsType == Constant.SOURCE_TYPE_TAOBAO) { TaoBaoGoodsBrief goods; try { - goods = redisManager.getTaoBaoGoodsBrief(goodsId); + goods = redisManager.getTaoBaoGoodsBrief(Long.parseLong(goodsId)); if (goods != null) { vo = GoodsDetailVOFactory.convertTaoBao(goods, paramsDTO); } @@ -1905,12 +1924,12 @@ } } else if (goodsType == Constant.SOURCE_TYPE_JD) { - JDGoods goodsInfo = jdGoodsCacheUtil.getGoodsInfo(goodsId); + JDGoods goodsInfo = jdGoodsCacheUtil.getGoodsInfo(Long.parseLong(goodsId)); if (goodsInfo != null) { vo = GoodsDetailVOFactory.convertJDGoods(goodsInfo, paramsDTO); } } else if (goodsType == Constant.SOURCE_TYPE_PDD) { - PDDGoodsDetail goodsInfo = pinDuoDuoCacheUtil.getGoodsInfo(goodsId); + PDDGoodsDetail goodsInfo = pinDuoDuoCacheUtil.getGoodsInfo(Long.parseLong(goodsId)); if (goodsInfo != null) vo = GoodsDetailVOFactory.convertPDDGoods(goodsInfo, paramsDTO); } @@ -1918,19 +1937,21 @@ } @Override - public void addGoodsEvaluate(Long goodsId, List<ImgInfo> imgList, ActivityUser user, String title, String comment, + public void addGoodsEvaluate(String 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); + Date limitDate = DateUtil.reduceDay(new Date(), 7); + + List<GoodsEvaluate> evaluateList = goodsEvaluateDao.queryExistLimitTime(Constant.SOURCE_TYPE_TAOBAO, goodsId, limitDate); if (evaluateList != null && evaluateList.size() > 0) - return; + throw new GoodsEvaluateException(1, "璇ュ晢鍝佸凡瀛樺湪"); TaoBaoGoodsBrief goodsBrief = null; try { - goodsBrief = redisManager.getTaoBaoGoodsBrief(goodsId); + goodsBrief = redisManager.getTaoBaoGoodsBrief(Long.parseLong(goodsId)); } catch (TaobaoGoodsDownException e) { throw new GoodsEvaluateException(1, "鍟嗗搧宸蹭笅鏋�"); } @@ -1946,9 +1967,7 @@ // 鐧藉簳鍥� List<String> imgs = new ArrayList<>(); - if (!StringUtil.isNullOrEmpty(goodsBrief.getPictUrlWhite())) { - imgs.add(goodsBrief.getPictUrlWhite()); - } + imgs.addAll(goodsBrief.getImgList()); // 鍟嗗搧VO @@ -1958,7 +1977,10 @@ // 鍟嗗搧鍥剧墖淇℃伅 int i = 0; - if (imgList == null || imgList.size() == 0) + if (imgList == null) + imgList = new ArrayList<ImgInfo>(); + + if (imgList.size() == 0) for (String img : imgs) { ImgInfo imgInfo = new ImgInfo(); imgInfo.setH(1); @@ -1997,14 +2019,16 @@ commentInfo.setContent(comment); commentInfo.setType(""); } else { + goodsBrief.setCouponLink(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"); - } + 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()); } @@ -2050,6 +2074,165 @@ goodsEvaluateDao.save(goodsEvaluate); } + + + @Override + public int addGoodsEvaluate(TaoBaoGoodsBrief goodsBrief, List<String> imgs, ActivityUser user, String title) throws GoodsEvaluateException { + if (goodsBrief == null || user == null || StringUtil.isNullOrEmpty(title)) { + throw new GoodsEvaluateException(1, "鐩稿叧鍙傛暟涓嶈兘涓虹┖"); + } + Date limitDate = DateUtil.reduceDay(new Date(), 7); + + Long goodsId = goodsBrief.getAuctionId(); + List<GoodsEvaluate> evaluateList = goodsEvaluateDao.queryExistLimitTime(Constant.SOURCE_TYPE_TAOBAO, goodsId + "", limitDate); + if (evaluateList != null && evaluateList.size() > 0) + throw new GoodsEvaluateException(1, "璇ュ晢鍝佸凡瀛樺湪"); + + if (imgs == null) { + imgs = new ArrayList<>(); + } + if (imgs.size() == 0) { + imgs.addAll(goodsBrief.getImgList()); + } + + // 鍟嗗搧VO + ConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate("android", "55"); + paramsDTO.setBaseFanliRate(hongBaoManageService.getBaseFanliRate()); + GoodsDetailVO goodsVO = GoodsDetailVOFactory.convertTaoBao(goodsBrief, paramsDTO); + + // 鍟嗗搧鍥剧墖淇℃伅 + int i = 0; + List<ImgInfo> imgList = new ArrayList<ImgInfo>(); + + 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++; + } + + + // 鐢熸垚鍙d护 + String token = null; + try { + TaoBaoLink taoBaoLink = shareGoodsService.getTaoBaoLinkForShare(Constant.LINK_TOKEN_VERIFY_UID, goodsBrief.getAuctionId(), "1"); + token = taoBaoLink.getTaoToken(); + } catch (ShareGoodsException e) { + e.printStackTrace(); + throw new GoodsEvaluateException(1, "杞摼澶辫触"); + } + + + 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.setTypeEnum(CommentInfoEnum.goodsCoupon); + 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; + } + } + + int result = 0; + int zeroPoint = 0; + // 鈽呮繁澶滃ぇ绂忓埄锛氬厛鎶㈠埜锛�0鐐瑰噯鏃朵笅鍗曗槄 + // 鍚繖绉嶆枃鏈殑瀹氫簬姣忔櫄10鐐瑰湪鍔ㄦ��-鍙戝湀 闆嗕腑鍙戯紝姣忔櫄10鐐瑰湪缇ゅ彂鍗曚腑鍙彂涓�鏉°�� + Date startTime = new Date(); + if (!StringUtil.isNullOrEmpty(title)) { + String value = configService.get(ConfigKeyEnum.evaluateZeroKey.getKey()); + if (!StringUtil.isNullOrEmpty(value)) { + List<String> asList = Arrays.asList(value.split(",")); + if (asList != null && asList.size() > 0) { + boolean zero = false; + for (String zerokey: asList) { + if(title.contains(zerokey)) { + zero = true; + break; + } + } + + if (zero) { + result = 1; + zeroPoint = 1; + startTime = TimeUtil.parseYYYYMMDD_HHMM(TimeUtil.getGernalTime(startTime) + " 22:00"); + } + } + } + } + + + GoodsEvaluate goodsEvaluate = new GoodsEvaluate(); + goodsEvaluate.setId(UUID.randomUUID().toString().replace("-", "")); + goodsEvaluate.setUser(user); + goodsEvaluate.setTitle(getDescNew(title)); + goodsEvaluate.setState(1); + goodsEvaluate.setZeroPoint(zeroPoint); + goodsEvaluate.setDynamicType(1); + goodsEvaluate.setType(EvaluateEnum.single); + goodsEvaluate.setShareNum((int) (Math.random() * 5000) + 1000); + goodsEvaluate.setShareNumReal(0); + goodsEvaluate.setWeight(0.0); + goodsEvaluate.setStartTime(startTime); + goodsEvaluate.setEndTime(DateUtil.plusDayDate(3, startTime)); + 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); + + return result; + + + } + @Override public void addGoodsEvaluateByDaTaoKe() { List<Long> listId = null; @@ -2059,7 +2242,7 @@ for (GoodsEvaluate goodsEvaluate : listExist) { GoodsDetailVO goods = goodsEvaluate.getGoods(); if (goods != null && goods.getGoodsType() == 1) { - listId.add(goods.getGoodsId()); + listId.add(Long.parseLong(goods.getGoodsId())); } } } @@ -2074,15 +2257,24 @@ } for (int i = 0; i < list.size(); i++) { - boolean cerateGoods = cerateGoods(list.get(i)); + boolean cerateGoods = addByDaTaoKeGoods(list.get(i)); if (cerateGoods) { break; } } } - private boolean cerateGoods(DaTaoKeDetailV2 daTaoKe) { + + @Override + public boolean addByDaTaoKeGoods(DaTaoKeDetailV2 daTaoKe) { try { + Date limitDate = DateUtil.reduceDay(new Date(), 7); + + List<GoodsEvaluate> evaluateList = goodsEvaluateDao.queryExistLimitTime(Constant.SOURCE_TYPE_TAOBAO, + daTaoKe.getGoodsId()+"", limitDate); + if (evaluateList != null && evaluateList.size() > 0) + return false; + TaoBaoGoodsBrief goodsBrief = redisManager.getTaoBaoGoodsBrief(daTaoKe.getGoodsId()); if (goodsBrief == null) { return false; @@ -2096,8 +2288,15 @@ ConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate("android", "55"); paramsDTO.setBaseFanliRate(hongBaoManageService.getBaseFanliRate()); GoodsDetailVO goodsVO = GoodsDetailVOFactory.convertTaoBao(goodsBrief, paramsDTO); - // 鍙戝竷鐢ㄦ埛 - ActivityUser user = activityUserService.getRandomByDaTaoKeCid(daTaoKe.getCid()); + + ActivityUser user = null; + if(daTaoKe.getCid() != null) { + user = activityUserService.getRandomByDaTaoKeCid(daTaoKe.getCid()); + } else { + List<ActivityRuleUser> ruleList = activityUserService.listByRuleCode(ActivityRuleUser.RULE_HAOHUO, 1, 20); + user = ruleList.get((int) (ruleList.size() * Math.random())).getActivityUser(); + } + String desc = daTaoKe.getDesc().replace(",", "锛�"); String[] split = desc.split("锛�"); @@ -2139,7 +2338,6 @@ goodsEvaluate.setState(1); goodsEvaluate.setDynamicType(1); goodsEvaluate.setType(EvaluateEnum.single); - goodsEvaluate.setShareNum((int) (Math.random() * 5000) + 1000); goodsEvaluate.setShareNumReal(0); goodsEvaluate.setWeight(0.0); @@ -2152,11 +2350,7 @@ 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<>(); @@ -2196,8 +2390,9 @@ 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"); - } + 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); @@ -2240,7 +2435,7 @@ imgList.add(imgInfo); i++; } - + int lineNum = 0; if (imgList.size() > 0) { if (imgList.size() == 1) { @@ -2313,7 +2508,7 @@ return; } List<GoodsEvaluate> queryExist = goodsEvaluateDao.queryExist(Constant.SOURCE_TYPE_TAOBAO, - goods.getAuctionId()); + goods.getAuctionId()+""); if (queryExist == null || queryExist.size() == 0) { return; } @@ -2333,7 +2528,7 @@ if (jdGoods == null) { return; } - List<GoodsEvaluate> queryExist = goodsEvaluateDao.queryExist(Constant.SOURCE_TYPE_JD, jdGoods.getSkuId()); + List<GoodsEvaluate> queryExist = goodsEvaluateDao.queryExist(Constant.SOURCE_TYPE_JD, jdGoods.getSkuId()+""); if (queryExist == null || queryExist.size() == 0) { return; } @@ -2350,7 +2545,7 @@ if (pddGoods == null) { return; } - List<GoodsEvaluate> queryExist = goodsEvaluateDao.queryExist(Constant.SOURCE_TYPE_PDD, pddGoods.getGoodsId()); + List<GoodsEvaluate> queryExist = goodsEvaluateDao.queryExist(Constant.SOURCE_TYPE_PDD, pddGoods.getGoodsId()+""); if (queryExist == null || queryExist.size() == 0) { return; } @@ -2361,12 +2556,46 @@ updateGoods(queryExist, goodsNew); } + @Override + public void updateVIPGoods(VIPGoodsInfo goods) { + if (goods == null) { + return; + } + List<GoodsEvaluate> queryExist = goodsEvaluateDao.queryExist(Constant.SOURCE_TYPE_VIP, + goods.getGoodsId()); + if (queryExist == null || queryExist.size() == 0) { + return; + } + + ConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate("android", "55"); + paramsDTO.setBaseFanliRate(hongBaoManageService.getBaseFanliRate()); + GoodsDetailVO goodsNew = GoodsDetailVOFactory.convertVIPGoods(goods, paramsDTO); + updateGoods(queryExist, goodsNew); + } + + @Override + public void updateSuningGoods(SuningGoodsInfo goods) { + if (goods == null) { + return; + } + List<GoodsEvaluate> queryExist = goodsEvaluateDao.queryExist(Constant.SOURCE_TYPE_SUNING, + goods.getCommodityInfo().getCommodityCode()); + if (queryExist == null || queryExist.size() == 0) { + return; + } + + ConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate("android", "55"); + paramsDTO.setBaseFanliRate(hongBaoManageService.getBaseFanliRate()); + GoodsDetailVO goodsNew = GoodsDetailVOFactory.convertSuningGoods(goods, paramsDTO); + updateGoods(queryExist, goodsNew); + } + private void updateGoods(List<GoodsEvaluate> listExist, GoodsDetailVO goodsNew) { - long goodsId = goodsNew.getGoodsId(); + String goodsId = goodsNew.getGoodsId(); int goodsType = goodsNew.getGoodsType(); for (GoodsEvaluate goodsEvaluate : listExist) { GoodsDetailVO goodsDetailVO = goodsEvaluate.getGoods(); - if (goodsDetailVO != null && goodsDetailVO.getGoodsId() != null && goodsDetailVO.getGoodsId() == goodsId + if (goodsDetailVO != null && goodsDetailVO.getGoodsId() != null && goodsDetailVO.getGoodsId().equalsIgnoreCase(goodsId) && goodsDetailVO.getGoodsType() == goodsType) { goodsEvaluate.setGoods(goodsNew); } @@ -2379,7 +2608,7 @@ for (ImgInfo imgInfo : imgList) { SimpleGoods simpleGoods = imgInfo.getGoods(); - if (simpleGoods == null || simpleGoods.getGoodsId() != goodsId + if (simpleGoods == null || !simpleGoods.getGoodsId().equalsIgnoreCase(goodsId) || goodsType != simpleGoods.getGoodsType()) { continue; } @@ -2403,19 +2632,18 @@ goodsEvaluateDao.save(goodsEvaluate); } } - - + @Override - public void offlineTaoBaoGoods(Long goodsId) { + public void offlineTaoBaoGoods(String goodsId) { try { if (goodsId == null) { return; } - List<GoodsEvaluate> list = goodsEvaluateDao.queryExist(Constant.SOURCE_TYPE_TAOBAO, goodsId); + 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) { @@ -2424,13 +2652,13 @@ } @CacheEvict(value = "dynamicCache", allEntries = true) - private void offlineGoods(List<GoodsEvaluate> list, int goodsType, Long goodsId) { - + private void offlineGoods(List<GoodsEvaluate> list, int goodsType, String 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()); @@ -2447,7 +2675,7 @@ simpleGoods.setState(1); GoodsDetailVO goodsVO = imgInfo.getGoodsVO(); goodsVO.setState(1); - + imgInfo.setGoods(simpleGoods); imgInfo.setGoodsVO(goodsVO); } @@ -2457,15 +2685,14 @@ goodsEvaluateDao.save(goodsEvaluate); } } - /** * 鍒犻櫎宸茶繃鏈熸椂闂� */ private void removeOverdue() { - if(1>0) + if (1 > 0) return; - + List<GoodsEvaluate> list = goodsEvaluateDao.queryOverdue(); if (list == null || list.size() == 0) { return; @@ -2490,7 +2717,7 @@ * 鍒犻櫎鍟嗗搧宸蹭笅鏋�-鍗曞搧 */ private void removeDownGoods() { - if(1>0) + if (1 > 0) return; try { List<GoodsEvaluate> list = goodsEvaluateDao.removeDownGoods(); @@ -2505,4 +2732,15 @@ e.printStackTrace(); } } + + + @Override + public GoodsEvaluate queryExistSingle(String goodsId, int goodsType) { + List<GoodsEvaluate> list = goodsEvaluateDao.queryExistSingle(goodsType, goodsId); + if (list != null && list.size() > 0) + return list.get(0); + return null; + } + + } -- Gitblit v1.8.0