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