From d28bed1a1275131a5ca37f7da37961e2b518ac07 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期一, 26 八月 2019 13:44:00 +0800
Subject: [PATCH] 淘礼金创建异常处理

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/dynamic/DynamicInfoServiceImpl.java |  106 +++++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 78 insertions(+), 28 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/dynamic/DynamicInfoServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/dynamic/DynamicInfoServiceImpl.java
index 59636a0..d5df5b2 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/impl/dynamic/DynamicInfoServiceImpl.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/dynamic/DynamicInfoServiceImpl.java
@@ -1,10 +1,13 @@
 package com.yeshi.fanli.service.impl.dynamic;
 
+import java.lang.reflect.InvocationTargetException;
 import java.math.BigDecimal;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Date;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 import java.util.UUID;
 
 import javax.annotation.Resource;
@@ -479,23 +482,23 @@
 		} catch (Exception e) {
 
 		}
-		
+
 		TaoBaoGoodsBrief taoBaoGoodsBrief = TaoBaoUtil.convert(daTaoKe);
 		BigDecimal proportion = hongBaoManageService.getFanLiRate();
-		TaoBaoGoodsBriefExtra goodsExtra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief,
-				proportion.toString(), null);
-		
+		TaoBaoGoodsBriefExtra goodsExtra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, proportion.toString(),
+				null);
+
 		if (!goodsExtra.isCoupon() || (goodsExtra.getState() != null && goodsExtra.getState() == 1)) {
-			return addSuccess;  // 宸蹭笅鏋� 銆佹棤鍒� 涓嶅姞鍏�
+			return addSuccess; // 宸蹭笅鏋� 銆佹棤鍒� 涓嶅姞鍏�
 		}
-		
+
 		List<TaoBaoGoodsBrief> listGoods = new ArrayList<TaoBaoGoodsBrief>();
 		listGoods.add(taoBaoGoodsBrief);
-		
+
 		goodsExtra.setTkRate(taoBaoGoodsBrief.getTkRate());
 		goodsExtra.setUpdatetime(new Date());
 		goodsExtra.setCouponInfo(null);
-		
+
 		GoodsPicture goodsPicture = getGoodsPicture(daTaoKe);
 		goodsPicture.setGoods(goodsExtra);
 		// 鍟嗗搧鍒楄〃
@@ -527,7 +530,7 @@
 			}
 		}
 		goodsExtra.setImgList(imgList);
-		
+
 		// 鍒嗕韩濂栭噾
 		BigDecimal shareMoney = taoBaoGoodsBriefService.getShareGoodsUserHongBao(taoBaoGoodsBrief);
 		ClientTextStyleVO shareMoneyDesc = new ClientTextStyleVO();
@@ -556,7 +559,7 @@
 
 		// 淇濆瓨淇℃伅
 		dynamicInfoDao.insert(dynamicInfo);
-		
+
 		addSuccess = true;
 		return addSuccess;
 	}
@@ -915,17 +918,52 @@
 
 		return list;
 	}
-	
-	
+
+	private Map<Long, TaoBaoGoodsBrief> getFilterGoodsMap(List<DynamicInfo> list) {
+		// 鎻愬彇杩囨护鍟嗗搧
+		List<TaoBaoGoodsBrief> goodsList = new ArrayList<>();
+		for (DynamicInfo dynamicInfo : list) {
+			List<GoodsPicture> gpList = dynamicInfo.getImgs();
+			if (gpList != null)
+				for (GoodsPicture gp : gpList) {
+					if (gp != null && gp.getGoods() != null) {
+						TaoBaoGoodsBriefExtra newGoods = new TaoBaoGoodsBriefExtra();
+						try {
+							PropertyUtils.copyProperties(newGoods, gp.getGoods());
+							goodsList.add(newGoods);
+						} catch (IllegalAccessException e) {
+							e.printStackTrace();
+						} catch (InvocationTargetException e) {
+							e.printStackTrace();
+						} catch (NoSuchMethodException e) {
+							e.printStackTrace();
+						}
+
+					}
+				}
+		}
+		goodsList = taoBaoGoodsUpdateService.filterImportantTaoBaoGoods(goodsList);
+		Map<Long, TaoBaoGoodsBrief> map = new HashMap<>();
+		if (goodsList != null)
+			for (TaoBaoGoodsBrief goods : goodsList)
+				map.put(goods.getAuctionId(), goods);
+		return map;
+	}
+
 	@Override
 	@Cacheable(value = "dynamicCache", key = "'queryV2-'+#platform+'-'+#version+'-'+#start+'-'+#count+'-'+#cid+'-'+#subId")
 	public List<DynamicInfo> queryV2(int platform, int version, int start, int count, Long cid, Long subId) {
 		List<DynamicInfo> listNew = new ArrayList<DynamicInfo>();
 		List<DynamicInfo> list = dynamicInfoDao.query(start, count, cid, subId);
+		// 闇�瑕佹洿鏂扮殑鍟嗗搧
+		List<TaoBaoGoodsBrief> taoBaoGoodsUpdateList = new ArrayList<>();
 		if (list != null && list.size() > 0) {
+			// 鎻愬彇鍟嗗搧
+			Map<Long, TaoBaoGoodsBrief> goodsMap = getFilterGoodsMap(list);
+
 			BigDecimal fanLiRate = hongBaoManageService.getFanLiRate();
 			BigDecimal shareRate = hongBaoManageService.getShareRate();
-			for (DynamicInfo dynamicInfo: list) {
+			for (DynamicInfo dynamicInfo : list) {
 				DynamicInfo dynamicNew = new DynamicInfo();
 				try {
 					PropertyUtils.copyProperties(dynamicNew, dynamicInfo);
@@ -933,7 +971,7 @@
 					e.printStackTrace();
 					continue;
 				}
-				
+
 				// 搴楅摵淇℃伅
 				TaoBaoShop shop = dynamicNew.getShop();
 				if (shop != null) {
@@ -952,17 +990,19 @@
 					}
 					dynamicNew.setShop(shopNew);
 				}
-				
+
 				List<GoodsPicture> imgsNew = new ArrayList<GoodsPicture>();
 				List<GoodsPicture> imgs = dynamicNew.getImgs();
 				if (imgs != null && imgs.size() > 0) {
-					for (GoodsPicture goodsPicture: imgs) {
+					for (GoodsPicture goodsPicture : imgs) {
 						TaoBaoGoodsBriefExtra goods = goodsPicture.getGoods();
 						if (goods == null) {
 							imgsNew.add(goodsPicture);
 							continue;
 						}
-						
+
+						taoBaoGoodsUpdateList.add(goods);
+
 						GoodsPicture goodsNew = new GoodsPicture();
 						try {
 							PropertyUtils.copyProperties(goodsNew, goodsPicture);
@@ -970,19 +1010,28 @@
 							e.printStackTrace();
 							continue;
 						}
-						
-						GoodsDetailVO detailVO = GoodsDetailVOFactory.convertTaoBaoGoodsBriefExtra(goods, fanLiRate, shareRate);
+
+						// 杩囨护鍒镐俊鎭笌璧勯噾淇℃伅
+						goods.setCouponAmount(goodsMap.get(goods.getAuctionId()).getCouponAmount());
+						goods.setZkPrice(goodsMap.get(goods.getAuctionId()).getZkPrice());
+						goods.setCouponStartFee(goodsMap.get(goods.getAuctionId()).getCouponStartFee());
+						goods.setTkRate(goodsMap.get(goods.getAuctionId()).getTkRate());
+
+						GoodsDetailVO detailVO = GoodsDetailVOFactory.convertTaoBaoGoodsBriefExtra(goods, fanLiRate,
+								shareRate);
+
 						goodsNew.setGoodsVO(detailVO);
 						goodsNew.setGoods(null);
-						
+
 						JumpDetailV2 jumpDetail = goodsNew.getJumpDetail();
 						if (jumpDetail != null) {
-							JumpDetailV2 jumpDetailV2 = jumpDetailV2Service.getByTypeCache(jumpDetail.getType(), platform, version);
+							JumpDetailV2 jumpDetailV2 = jumpDetailV2Service.getByTypeCache(jumpDetail.getType(),
+									platform, version);
 							if (jumpDetailV2 != null) {
 								goodsNew.setJumpDetail(jumpDetailV2);
 							}
 						}
-						
+
 						imgsNew.add(goodsNew);
 					}
 					dynamicNew.setImgs(imgsNew);
@@ -990,7 +1039,7 @@
 				listNew.add(dynamicNew);
 			}
 		}
-		
+
 		// 鏇存柊鍟嗗搧淇℃伅
 		executor.execute(new Runnable() {
 			@Override
@@ -998,9 +1047,10 @@
 				updateGoodInfo(list);
 			}
 		});
+
+		taoBaoGoodsUpdateService.addUpdateQueueAsync(taoBaoGoodsUpdateList);
 		return listNew;
 	}
-	
 
 	/**
 	 * 鏇存柊鍟嗗搧淇℃伅
@@ -1013,7 +1063,7 @@
 		if (list == null || list.size() == 0) {
 			return;
 		}
-		
+
 		try {
 			BigDecimal proportion = hongBaoManageService.getFanLiRate();
 			for (DynamicInfo dynamicInfo : list) {
@@ -1110,16 +1160,16 @@
 							dynamicInfo.setDesc(shareMoneyDesc);
 						}
 					}
-					
+
 					// 闇�瑕佹洿鏂颁俊鎭紱
 					needUpdate = true;
 				}
-				
+
 				// 鏃犳晥鏇存柊淇℃伅
 				if (!needUpdate) {
 					continue;
 				}
-				
+
 				// 鏇存柊鍟嗗搧淇℃伅
 				dynamicInfo.setImgs(listPicture);
 

--
Gitblit v1.8.0