From 8b25dae4f4481a72a1adbb09a6628f2e001f45b1 Mon Sep 17 00:00:00 2001
From: yujian <yujian@163.com>
Date: 星期三, 29 四月 2020 16:25:46 +0800
Subject: [PATCH] 动态自动删除过期

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/dynamic/GoodsEvaluateServiceImpl.java |  158 +++++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 129 insertions(+), 29 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 b1f11ea..7b8d9ce 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/impl/dynamic/GoodsEvaluateServiceImpl.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/dynamic/GoodsEvaluateServiceImpl.java
@@ -17,6 +17,7 @@
 import javax.imageio.ImageIO;
 
 import org.apache.commons.beanutils.PropertyUtils;
+import org.springframework.cache.annotation.CacheEvict;
 import org.springframework.cache.annotation.Cacheable;
 import org.springframework.core.task.TaskExecutor;
 import org.springframework.stereotype.Service;
@@ -53,6 +54,7 @@
 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;
@@ -88,6 +90,9 @@
 
 	@Resource
 	private HongBaoManageService hongBaoManageService;
+	
+	@Resource
+	private OrderHongBaoMoneyComputeService orderHongBaoMoneyComputeService;
 
 	@Resource(name = "taskExecutor")
 	private TaskExecutor executor;
@@ -110,6 +115,28 @@
 	@Resource
 	private DaTaoKeGoodsDetailV2Service daTaoKeGoodsDetailV2Service;
 
+	
+	@Override
+	public void switchState(String id) throws GoodsEvaluateException {
+		if (id == null) {
+			throw new GoodsEvaluateException(1, "璇蜂紶閫掓纭弬鏁�");
+		}
+		
+		GoodsEvaluate resultObj = goodsEvaluateDao.getById(id);
+		if (resultObj == null) {
+			throw new GoodsEvaluateException(1, "姝ゅ唴瀹瑰凡涓嶅瓨鍦�");
+		}
+		
+		Integer state = resultObj.getState();
+		if (state == null || state == 0) {
+			state = 1;
+		} else {
+			state = 0;
+		}
+		goodsEvaluateDao.updateSatate(id, state);
+	}
+	
+	
 	@Override
 	public String saveHead(MultipartFile file, GoodsEvaluate record) throws GoodsEvaluateException {
 		Integer state = record.getState();
@@ -361,7 +388,7 @@
 		GoodsDetailVO goodsDetailVO = null;
 		JDGoods jdGoods = null;
 		PDDGoodsDetail pddGoods = null;
-		ConfigParamsDTO params = hongBaoManageService.getShowComputeRate("android", "55");
+		ConfigParamsDTO params = orderHongBaoMoneyComputeService.getShowComputeRate("android", "55");
 		params.setBaseFanliRate(hongBaoManageService.getBaseFanliRate());
 		if (goodsType == Constant.SOURCE_TYPE_TAOBAO) {
 			try {
@@ -583,7 +610,7 @@
 
 	public GoodsDetailVO getGoodsDetailVO(Long goodsId, Integer goodsType) throws GoodsEvaluateException {
 		GoodsDetailVO goodsDetail = null;
-		ConfigParamsDTO params = hongBaoManageService.getShowComputeRate("android", "55");
+		ConfigParamsDTO params = orderHongBaoMoneyComputeService.getShowComputeRate("android", "55");
 		params.setBaseFanliRate(hongBaoManageService.getBaseFanliRate());
 		if (goodsType == Constant.SOURCE_TYPE_TAOBAO) {
 			try {
@@ -1487,6 +1514,8 @@
 
 				// 鍒犻櫎宸茶繃鏈�
 				removeOverdue();
+				
+				removeDownGoods();
 			}
 		});
 
@@ -1517,10 +1546,10 @@
 				e.printStackTrace();
 				continue;
 			}
-			
+
 			// 鎸夌収鍙戝竷鏄剧ず鏃堕棿娈佃捣濮嬫椂闂翠负鍑嗐��
 			goodsEvaluate.setPublishTime(goodsEvaluate.getStartTime());
-						
+
 			List<CommentInfo> comments = evaluateNew.getComments();
 			if (comments != null && comments.size() > 0) {
 				EvaluateEnum typeEnum = evaluateNew.getType();
@@ -1654,6 +1683,8 @@
 
 				// 鍒犻櫎宸茶繃鏈�
 				removeOverdue();
+				
+				removeDownGoods();
 			}
 		});
 
@@ -1680,7 +1711,7 @@
 		try {
 			Date now = new Date();
 			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
-			ConfigParamsDTO params = hongBaoManageService.getShowComputeRate("android", "55");
+			ConfigParamsDTO params = orderHongBaoMoneyComputeService.getShowComputeRate("android", "55");
 			params.setBaseFanliRate(hongBaoManageService.getBaseFanliRate());
 			for (GoodsEvaluate goodsEvaluate : list) {
 				// 鏄惁2涓皬鏃朵箣鍐呭凡鏇存柊
@@ -1801,11 +1832,15 @@
 	}
 
 	@Override
-	public void addGoodsEvaluate(Long goodsId, List<ImgInfo> imgList, ActivityUser user, String title, String comment)
-			throws GoodsEvaluateException {
+	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 {
@@ -1831,7 +1866,7 @@
 		imgs.addAll(goodsBrief.getImgList());
 
 		// 鍟嗗搧VO
-		ConfigParamsDTO paramsDTO = hongBaoManageService.getShowComputeRate("android", "55");
+		ConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate("android", "55");
 		paramsDTO.setBaseFanliRate(hongBaoManageService.getBaseFanliRate());
 		GoodsDetailVO goodsVO = GoodsDetailVOFactory.convertTaoBao(goodsBrief, paramsDTO);
 
@@ -1879,16 +1914,11 @@
 			String token = shareGoodsService.createTaoBaoToken(Constant.LINK_TOKEN_VERIFY_UID, goodsBrief);
 			String template = configService.get(ConfigKeyEnum.quickShareTBCommentText.getKey());
 			String commentText = template.replace("[娣樺彛浠", TaoBaoUtil.filterTaoToken(token));
-			commentText = commentText.replace("[鍘熶环]", MoneyBigDecimalUtil.getWithNoZera(goodsVO.getZkPrice()) + "");
 			if (!goodsVO.isHasCoupon()) {
 				commentText = commentText.replace("棰嗗埜鎶㈣喘", "鎶㈣喘");
 				commentText = commentText.replace("銆愬埜鍚庝环銆慬鍒稿悗浠穄鍏�", "");
-			} else {
-				commentText = commentText.replace("[鍒稿悗浠穄",
-						MoneyBigDecimalUtil.getWithNoZera(goodsVO.getCouponPrice()) + "");
-			}
-			commentText = commentText.replace("\r\n\r\n", "\r\n").replace("\r\n\r\n", "\r\n").replace("\r\n\r\n",
-					"\r\n");
+				commentText = commentText.replace("\r\n\r\n", "\r\n").replace("\r\n\r\n", "\r\n").replace("\r\n\r\n","\r\n");
+			} 
 			commentInfo.setContent(commentText);
 			commentInfo.setType(CommentInfoEnum.goodsCoupon.getDesc());
 		}
@@ -1920,7 +1950,9 @@
 		goodsEvaluate.setShareNum((int) (Math.random() * 5000) + 1000);
 		goodsEvaluate.setShareNumReal(0);
 		goodsEvaluate.setWeight(0.0);
-		goodsEvaluate.setStartTime(new Date());
+		if (startTime == null)
+			startTime = new Date();
+		goodsEvaluate.setStartTime(startTime);
 		goodsEvaluate.setEndTime(DateUtil.plusDayDate(3, new Date()));
 		goodsEvaluate.setPublishTime(new Date());
 		goodsEvaluate.setCreateTime(new Date());
@@ -1975,7 +2007,7 @@
 				return false;
 			}
 
-			ConfigParamsDTO paramsDTO = hongBaoManageService.getShowComputeRate("android", "55");
+			ConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate("android", "55");
 			paramsDTO.setBaseFanliRate(hongBaoManageService.getBaseFanliRate());
 			GoodsDetailVO goodsVO = GoodsDetailVOFactory.convertTaoBao(goodsBrief, paramsDTO);
 			// 鍙戝竷鐢ㄦ埛
@@ -2075,18 +2107,11 @@
 
 					String template = configService.get(ConfigKeyEnum.quickShareTBCommentText.getKey());
 					String commentText = template.replace("[娣樺彛浠", TaoBaoUtil.filterTaoToken(token));
-
-					commentText = commentText.replace("[鍘熶环]",
-							MoneyBigDecimalUtil.getWithNoZera(goodsVO.getZkPrice()) + "");
 					if (!goodsVO.isHasCoupon()) {
 						commentText = commentText.replace("棰嗗埜鎶㈣喘", "鎶㈣喘");
 						commentText = commentText.replace("銆愬埜鍚庝环銆慬鍒稿悗浠穄鍏�", "");
-					} else {
-						commentText = commentText.replace("[鍒稿悗浠穄",
-								MoneyBigDecimalUtil.getWithNoZera(goodsVO.getCouponPrice()) + "");
-					}
-					commentText = commentText.replace("\r\n\r\n", "\r\n").replace("\r\n\r\n", "\r\n")
-							.replace("\r\n\r\n", "\r\n");
+						commentText = commentText.replace("\r\n\r\n", "\r\n").replace("\r\n\r\n", "\r\n").replace("\r\n\r\n", "\r\n");
+					} 
 
 					CommentInfo commentInfo = new CommentInfo();
 					commentInfo.setNeedSpin(true);
@@ -2207,7 +2232,7 @@
 				return;
 			}
 
-			ConfigParamsDTO paramsDTO = hongBaoManageService.getShowComputeRate("android", "55");
+			ConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate("android", "55");
 			paramsDTO.setBaseFanliRate(hongBaoManageService.getBaseFanliRate());
 			GoodsDetailVO goodsNew = GoodsDetailVOFactory.convertTaoBao(goods, paramsDTO);
 			updateGoods(queryExist, goodsNew);
@@ -2227,7 +2252,7 @@
 			return;
 		}
 
-		ConfigParamsDTO paramsDTO = hongBaoManageService.getShowComputeRate("android", "55");
+		ConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate("android", "55");
 		paramsDTO.setBaseFanliRate(hongBaoManageService.getBaseFanliRate());
 		GoodsDetailVO goodsNew = GoodsDetailVOFactory.convertJDGoods(jdGoods, paramsDTO);
 
@@ -2244,7 +2269,7 @@
 			return;
 		}
 
-		ConfigParamsDTO paramsDTO = hongBaoManageService.getShowComputeRate("android", "55");
+		ConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate("android", "55");
 		paramsDTO.setBaseFanliRate(hongBaoManageService.getBaseFanliRate());
 		GoodsDetailVO goodsNew = GoodsDetailVOFactory.convertPDDGoods(pddGoods, paramsDTO);
 		updateGoods(queryExist, goodsNew);
@@ -2292,7 +2317,65 @@
 			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) {
@@ -2314,4 +2397,21 @@
 		}
 	}
 
+	/**
+	 * 鍒犻櫎鍟嗗搧宸蹭笅鏋�-鍗曞搧
+	 */
+	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