From ec60e757d358636dcac1589c44a66f3e276fe58c Mon Sep 17 00:00:00 2001 From: yujian <yujian@163.com> Date: 星期一, 29 六月 2020 14:41:42 +0800 Subject: [PATCH] 拉新 --- fanli/src/main/java/com/yeshi/fanli/service/impl/dynamic/GoodsEvaluateServiceImpl.java | 247 +++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 227 insertions(+), 20 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 bf01463..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; @@ -33,6 +34,7 @@ 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; @@ -50,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; @@ -1419,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); @@ -1921,9 +1943,11 @@ throw new GoodsEvaluateException(1, "鐩稿叧鍙傛暟涓嶈兘涓虹┖"); } - List<GoodsEvaluate> evaluateList = goodsEvaluateDao.queryExist(Constant.SOURCE_TYPE_TAOBAO, Long.parseLong(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 { @@ -1943,9 +1967,7 @@ // 鐧藉簳鍥� List<String> imgs = new ArrayList<>(); - if (!StringUtil.isNullOrEmpty(goodsBrief.getPictUrlWhite())) { - imgs.add(goodsBrief.getPictUrlWhite()); - } + imgs.addAll(goodsBrief.getImgList()); // 鍟嗗搧VO @@ -1955,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); @@ -1994,6 +2019,7 @@ 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)); @@ -2048,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; @@ -2072,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; @@ -2094,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("锛�"); @@ -2137,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); @@ -2150,9 +2350,6 @@ 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; @@ -2311,7 +2508,7 @@ return; } List<GoodsEvaluate> queryExist = goodsEvaluateDao.queryExist(Constant.SOURCE_TYPE_TAOBAO, - goods.getAuctionId()); + goods.getAuctionId()+""); if (queryExist == null || queryExist.size() == 0) { return; } @@ -2331,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; } @@ -2348,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; } @@ -2365,7 +2562,7 @@ return; } List<GoodsEvaluate> queryExist = goodsEvaluateDao.queryExist(Constant.SOURCE_TYPE_VIP, - Long.parseLong(goods.getGoodsId())); + goods.getGoodsId()); if (queryExist == null || queryExist.size() == 0) { return; } @@ -2382,7 +2579,7 @@ return; } List<GoodsEvaluate> queryExist = goodsEvaluateDao.queryExist(Constant.SOURCE_TYPE_SUNING, - Long.parseLong(goods.getCommodityInfo().getCommodityCode())); + goods.getCommodityInfo().getCommodityCode()); if (queryExist == null || queryExist.size() == 0) { return; } @@ -2442,7 +2639,7 @@ if (goodsId == null) { return; } - List<GoodsEvaluate> list = goodsEvaluateDao.queryExist(Constant.SOURCE_TYPE_TAOBAO,Long.parseLong(goodsId)); + List<GoodsEvaluate> list = goodsEvaluateDao.queryExist(Constant.SOURCE_TYPE_TAOBAO,goodsId); if (list == null || list.size() == 0) { return; } @@ -2536,4 +2733,14 @@ } } + + @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