From 9a82179d24ec670ba1aefef6906b8acadf58da6e Mon Sep 17 00:00:00 2001
From: yujian <yujian@123.com>
Date: 星期六, 03 八月 2019 12:13:31 +0800
Subject: [PATCH] Merge branch 'div' of ssh://193.112.35.168:29418/fanli-server into div

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/dynamic/DynamicInfoServiceImpl.java |  292 +++++++++++++++++++++++++++++++---------------------------
 1 files changed, 156 insertions(+), 136 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 ed65a19..f1d2871 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
@@ -9,6 +9,7 @@
 
 import javax.annotation.Resource;
 
+import org.apache.commons.beanutils.PropertyUtils;
 import org.springframework.cache.annotation.Cacheable;
 import org.springframework.core.task.TaskExecutor;
 import org.springframework.stereotype.Service;
@@ -18,7 +19,6 @@
 
 import com.yeshi.fanli.dao.dynamic.DynamicInfoDao;
 import com.yeshi.fanli.dto.taobao.TaoBaoShopDTO;
-import com.yeshi.fanli.entity.accept.AcceptData;
 import com.yeshi.fanli.entity.bus.activity.ActivityRuleUser;
 import com.yeshi.fanli.entity.bus.activity.ActivityUser;
 import com.yeshi.fanli.entity.bus.activity.RecommendActivity;
@@ -460,6 +460,17 @@
 		// 澶ф窐瀹㈡暟鎹�
 		DaTaoKeDetail daTaoKe = daTaoKeGoodsService.getGoodsNotInList(subclassId, listId, 1).get(0);
 
+		try {
+			daTaoKe = DaTaoKeUtil.filterDaTaoKe(TaoKeApiUtil.searchGoodsDetail(daTaoKe.getGoodsId()), daTaoKe);
+		} catch (Exception e) {
+
+		}
+		
+		// 杩囨护涓虹┖鐨�
+		if (daTaoKe == null) {
+			return;
+		}
+
 		List<TaoBaoGoodsBrief> listGoods = new ArrayList<TaoBaoGoodsBrief>();
 		TaoBaoGoodsBrief taoBaoGoodsBrief = TaoBaoUtil.convert(daTaoKe);
 		listGoods.add(taoBaoGoodsBrief);
@@ -467,25 +478,29 @@
 		BigDecimal proportion = hongBaoManageService.getFanLiRate();
 		TaoBaoGoodsBriefExtra taoBaoGoodsBriefExtra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief,
 				proportion.toString(), null);
+		
+		// 鍟嗗搧鍥剧墖
+		GoodsPicture goodsPicture = getGoodsPicture(daTaoKe);
 		if (!taoBaoGoodsBriefExtra.isCoupon()) {
 			taoBaoGoodsBriefExtra.setState(1);
+			goodsPicture.setGoodState(1);
 		}
 		taoBaoGoodsBriefExtra.setTkRate(taoBaoGoodsBrief.getTkRate());
-
+		taoBaoGoodsBriefExtra.setUpdatetime(new Date());
+		taoBaoGoodsBriefExtra.setCouponInfo(null);
+		goodsPicture.setGoods(taoBaoGoodsBriefExtra);
+		
+		// 鍟嗗搧鍒楄〃
+		List<GoodsPicture> listPicture = new ArrayList<GoodsPicture>();
+		listPicture.add(goodsPicture);
+		
 		// 鍒嗕韩濂栭噾
 		BigDecimal shareMoney = taoBaoGoodsBriefService.getShareGoodsUserHongBao(taoBaoGoodsBrief);
 		ClientTextStyleVO shareMoneyDesc = new ClientTextStyleVO();
 		shareMoneyDesc.setColor("#FFFFFF");
 		shareMoneyDesc.setBottomColor("#E8AE48");
 		shareMoneyDesc.setContent("棰勪及鍒嗕韩濂栭噾锛毬�" + shareMoney);
-		// 鍟嗗搧鍥剧墖
-		GoodsPicture goodsPicture = getGoodsPicture(daTaoKe);
-		taoBaoGoodsBriefExtra.setUpdatetime(new Date());
-		taoBaoGoodsBriefExtra.setCouponInfo(null);
-		goodsPicture.setGoods(taoBaoGoodsBriefExtra);
-		// 鍟嗗搧鍒楄〃
-		List<GoodsPicture> listPicture = new ArrayList<GoodsPicture>();
-		listPicture.add(goodsPicture);
+		
 
 		// 鑾峰彇鍟嗗搧鍒楄〃鍥剧墖
 		TaoBaoGoodsBrief taoBaoGoodsBrief2 = TaoKeApiUtil.getSimpleGoodsInfo(daTaoKe.getGoodsId());
@@ -896,15 +911,21 @@
 	@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);
-
 		if (list != null && list.size() > 0) {
 			BigDecimal fanLiRate = hongBaoManageService.getFanLiRate();
 			BigDecimal shareRate = hongBaoManageService.getShareRate();
-			
 			for (DynamicInfo dynamicInfo: list) {
+				DynamicInfo dynamicNew = new DynamicInfo();
+				try {
+					PropertyUtils.copyProperties(dynamicNew, dynamicInfo);
+				} catch (Exception e) {
+					e.printStackTrace();
+					continue;
+				}
 				
-				TaoBaoShop shop = dynamicInfo.getShop();
+				TaoBaoShop shop = dynamicNew.getShop();
 				if (shop != null) {
 					Integer userType = shop.getUserType();
 					if (userType == null || userType == 0) {
@@ -912,11 +933,11 @@
 					} else {
 						shop.setUserType(11);
 					}
-					dynamicInfo.setShop(shop);
+					dynamicNew.setShop(shop);
 				}
 				
 				
-				List<GoodsPicture> imgs = dynamicInfo.getImgs();
+				List<GoodsPicture> imgs = dynamicNew.getImgs();
 				if (imgs != null && imgs.size() > 0) {
 					for (GoodsPicture goodsPicture: imgs) {
 						TaoBaoGoodsBriefExtra goods = goodsPicture.getGoods();
@@ -936,7 +957,8 @@
 						}
 					}
 				}
-				dynamicInfo.setImgs(imgs);
+				dynamicNew.setImgs(imgs);
+				listNew.add(dynamicNew);
 			}
 		}
 		
@@ -948,8 +970,7 @@
 				updateGoodInfo(list);
 			}
 		});
-
-		return list;
+		return listNew;
 	}
 	
 
@@ -957,159 +978,158 @@
 	 * 鏇存柊鍟嗗搧淇℃伅
 	 */
 	public void updateGoodInfo(List<DynamicInfo> list) {
-
-		// 澶栫綉杩涜鏇存柊
 		if (!Constant.IS_OUTNET) {
-			return;
+			return; // 澶栫綉杩涜鏇存柊
 		}
 
 		if (list == null || list.size() == 0) {
 			return;
 		}
-
-		BigDecimal proportion = hongBaoManageService.getFanLiRate();
-		for (DynamicInfo dynamicInfo : list) {
-			// 閭�璇锋暟鎹笉鍋氭洿鏂�
-			long classId = dynamicInfo.getClassId();
-			if (classId == 4) {
-				break;
-			}
-
-			// 鏇存柊鍟嗗搧淇℃伅
-			List<GoodsPicture> imgs = dynamicInfo.getImgs();
-			if (imgs == null || imgs.size() == 0) {
-				continue;
-			}
-
-			// 鏄惁涓�涓皬鏃朵箣鍐呭凡鏇存柊
-			Date updateTime = dynamicInfo.getUpdateTime();
-			if (updateTime != null) {
-				long nd = 1000 * 24 * 60 * 60;// 涓�澶╃殑姣鏁�
-				long nh = 1000 * 60 * 60;// 涓�灏忔椂鐨勬绉掓暟
-				long diff = System.currentTimeMillis() - updateTime.getTime();
-				long day = diff / nd;// 璁$畻宸灏戝ぉ
-				long hour = diff % nd / nh + day * 24;// 璁$畻宸灏戝皬鏃�
-				if (hour < 1) {
-					continue;
+		
+		try {
+			BigDecimal proportion = hongBaoManageService.getFanLiRate();
+			for (DynamicInfo dynamicInfo : list) {
+				// 閭�璇锋暟鎹笉鍋氭洿鏂�
+				long classId = dynamicInfo.getClassId();
+				if (classId == 4) {
+					break;
 				}
-			}
 
-			// 宸蹭笅鏋禝D
-			List<Long> listDown = new ArrayList<Long>();
-			// 鍟嗗搧鍒楄〃
-			List<TaoBaoGoodsBrief> listGoods = new ArrayList<TaoBaoGoodsBrief>();
-
-			for (GoodsPicture goodsPicture : imgs) {
-				TaoBaoGoodsBriefExtra oldExtra = goodsPicture.getGoods();
-				if (oldExtra == null) {
+				// 鏇存柊鍟嗗搧淇℃伅
+				List<GoodsPicture> listPicture = dynamicInfo.getImgs();
+				if (listPicture == null || listPicture.size() == 0) {
 					continue;
 				}
 
-				Integer state = oldExtra.getState();
-				if (state != null && state == 1) {
-					continue;
+				// 鏄惁涓�涓皬鏃朵箣鍐呭凡鏇存柊
+				Date updateTime = dynamicInfo.getUpdateTime();
+				if (updateTime != null) {
+					long nd = 1000 * 24 * 60 * 60;// 涓�澶╃殑姣鏁�
+					long nh = 1000 * 60 * 60;// 涓�灏忔椂鐨勬绉掓暟
+					long diff = System.currentTimeMillis() - updateTime.getTime();
+					long day = diff / nd;// 璁$畻宸灏戝ぉ
+					long hour = diff % nd / nh + day * 24;// 璁$畻宸灏戝皬鏃�
+					if (hour < 1) {
+						continue;
+					}
 				}
 
-				try {
-					TaoBaoGoodsBrief goodsBrief = redisManager.getTaoBaoGoodsBrief(oldExtra.getAuctionId());
+				// 宸蹭笅鏋禝D
+				List<Long> listDown = new ArrayList<Long>();
+				// 鍟嗗搧鍒楄〃
+				List<TaoBaoGoodsBrief> listGoods = new ArrayList<TaoBaoGoodsBrief>();
 
-					// 鏇存柊鍟嗗搧淇℃伅
+				for (GoodsPicture goodsPicture : listPicture) {
+					TaoBaoGoodsBriefExtra oldExtra = goodsPicture.getGoods();
+					if (oldExtra == null) {
+						continue;
+					}
+
+					Integer state = oldExtra.getState();
+					if (state != null && state == 1) {
+						continue;
+					}
+
+					TaoBaoGoodsBrief goodsBrief = null;
 					try {
-						taoBaoGoodsUpdateService.updateTaoBaoGoods(goodsBrief);
-					} catch (Exception e) {
-						e.printStackTrace();
+						goodsBrief = redisManager.getTaoBaoGoodsBrief(oldExtra.getAuctionId());
+					} catch (TaobaoGoodsDownException e) {
 					}
 
-					listGoods.add(goodsBrief);
+					// 鏄惁涓嬫灦 锛� 1銆佸晢鍝佹湰韬笅鏋� 2銆佹棤鍒镐俊鎭垯璁や负涓嬫灦
+					boolean isDown = true;
 
-					// 鏇存柊鐑攢鍗曞搧鐨勫垎浜閲� 锛屽叾浣欎笉鍋氭洿鏂�
-					if (classId == 1) {
-						BigDecimal shareMoney = taoBaoGoodsBriefService.getShareGoodsUserHongBao(goodsBrief);
-						ClientTextStyleVO shareMoneyDesc = new ClientTextStyleVO();
-						shareMoneyDesc.setColor("#FFFFFF");
-						shareMoneyDesc.setBottomColor("#E8AE48");
-						shareMoneyDesc.setContent("棰勪及鍒嗕韩濂栭噾锛毬�" + shareMoney);
-						dynamicInfo.setDesc(shareMoneyDesc);
+					if (goodsBrief == null) {
+						listDown.add(oldExtra.getAuctionId()); // 涓嬫灦鍟嗗搧
+					} else if (goodsBrief.getCouponAmount() != null
+							&& goodsBrief.getCouponAmount().compareTo(BigDecimal.valueOf(0)) > 0) {
+						isDown = false;
 					}
 
-					TaoBaoGoodsBriefExtra newExtra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(goodsBrief,
-							proportion.toString(), null);
+					if (isDown) {
+						oldExtra.setState(1);
+						oldExtra.setCoupon(false);
+						oldExtra.setUpdatetime(new Date());
+						goodsPicture.setGoods(oldExtra);
 
-					if (!newExtra.isCoupon()) {
-						newExtra.setState(1);
-					}
-					newExtra.setUpdatetime(new Date());
-					goodsPicture.setGoods(oldExtra);
+						// 鍟嗗搧宸叉姠鍏�
+						goodsPicture.setGoodState(1);
 
-				} catch (TaobaoGoodsDownException e) {
-					listDown.add(oldExtra.getAuctionId());
-
-					oldExtra.setState(1);
-					oldExtra.setCoupon(false);
-					oldExtra.setUpdatetime(new Date());
-					goodsPicture.setGoods(oldExtra);
-
-					// 鍟嗗搧鐪熷疄涓嬫灦
-					goodsPicture.setGoodState(1);
-
-					// 鏇存柊鐑攢鍗曞搧鐨勫垎浜閲� 锛屽叾浣欎笉鍋氭洿鏂�
-					if (classId == 1) {
-						ClientTextStyleVO shareMoneyDesc = new ClientTextStyleVO();
-						shareMoneyDesc.setColor("#FFFFFF");
-						shareMoneyDesc.setBottomColor("#E8AE48");
-						shareMoneyDesc.setContent("棰勪及鍒嗕韩濂栭噾锛毬�" + new BigDecimal(0));
-						dynamicInfo.setDesc(shareMoneyDesc);
-					}
-					e.printStackTrace();
-				}
-			}
-			dynamicInfo.setImgs(imgs);
-
-			// 鍟嗗搧宸蹭笅鏋�
-			List<TaoBaoGoodsBrief> listGoodsBrief = dynamicInfo.getListGoodsBrief();
-			if (listGoodsBrief != null && listGoodsBrief.size() > 0) {
-
-				if (listGoods.size() > 0) {
-					if (classId == 1) {
-						dynamicInfo.setListGoodsBrief(listGoods);
-					} else {
-						for (int i = 0; i < listGoodsBrief.size(); i++) {
-							TaoBaoGoodsBrief taoBaoGoodsBrief = listGoodsBrief.get(i);
-							Long auctionId = taoBaoGoodsBrief.getAuctionId();
-
-							boolean isadd = true;
-							for (TaoBaoGoodsBrief goods : listGoods) {
-								if (goods.getAuctionId().equals(auctionId) || goods.getAuctionId() == auctionId) {
-									isadd = false;
-									break;
-								}
-							}
-
-							if (isadd) {
-								// 鍟嗗搧宸蹭笅鏋� 鍒欐坊鍔犲師鏉ュ晢鍝佷俊鎭�
-								if (listDown.size() > 0 && listDown.contains(taoBaoGoodsBrief.getAuctionId())) {
-									taoBaoGoodsBrief.setState(1);
-								}
-								listGoods.add(taoBaoGoodsBrief);
-							}
+						// 鏇存柊鐑攢鍗曞搧鐨勫垎浜閲�
+						if (classId == 1) {
+							ClientTextStyleVO shareMoneyDesc = new ClientTextStyleVO();
+							shareMoneyDesc.setColor("#FFFFFF");
+							shareMoneyDesc.setBottomColor("#E8AE48");
+							shareMoneyDesc.setContent("棰勪及鍒嗕韩濂栭噾锛毬�" + new BigDecimal(0));
+							dynamicInfo.setDesc(shareMoneyDesc);
 						}
-						dynamicInfo.setListGoodsBrief(listGoods);
+					} else {
+						listGoods.add(goodsBrief);
+
+						TaoBaoGoodsBriefExtra newExtra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(goodsBrief,
+								proportion.toString(), null);
+						newExtra.setUpdatetime(new Date());
+						goodsPicture.setGoods(newExtra);
+
+						// 鏇存柊鐑攢鍗曞搧鐨勫垎浜閲�
+						if (classId == 1) {
+							BigDecimal shareMoney = taoBaoGoodsBriefService.getShareGoodsUserHongBao(goodsBrief);
+							ClientTextStyleVO shareMoneyDesc = new ClientTextStyleVO();
+							shareMoneyDesc.setColor("#FFFFFF");
+							shareMoneyDesc.setBottomColor("#E8AE48");
+							shareMoneyDesc.setContent("棰勪及鍒嗕韩濂栭噾锛毬�" + shareMoney);
+							dynamicInfo.setDesc(shareMoneyDesc);
+						}
 					}
-				} else {
+				}
+				dynamicInfo.setImgs(listPicture);
+
+				// 鍟嗗搧宸蹭笅鏋�
+				List<TaoBaoGoodsBrief> listGoodsBrief = dynamicInfo.getListGoodsBrief();
+				if (listGoodsBrief != null && listGoodsBrief.size() > 0) {
+					// 娣樺疂宸蹭笅鏋跺晢鍝�
 					if (listDown.size() > 0) {
 						for (TaoBaoGoodsBrief taoBaoGoodsBrief : listGoodsBrief) {
 							if (listDown.contains(taoBaoGoodsBrief.getAuctionId())) {
 								taoBaoGoodsBrief.setState(1);
 							}
 						}
+					}
+
+					if (listGoods.size() == 0) {
 						dynamicInfo.setListGoodsBrief(listGoodsBrief);
+					} else {
+						List<TaoBaoGoodsBrief> listNew = new ArrayList<TaoBaoGoodsBrief>();
+						for (int i = 0; i < listGoodsBrief.size(); i++) {
+							TaoBaoGoodsBrief taoBaoGoodsBrief = listGoodsBrief.get(i);
+							if (taoBaoGoodsBrief.getState() != null && taoBaoGoodsBrief.getState() == 1) {
+								listNew.add(taoBaoGoodsBrief);
+							} else {
+								boolean isUpdate = false;
+								Long auctionId = taoBaoGoodsBrief.getAuctionId();
+								for (TaoBaoGoodsBrief goods : listGoods) {
+									if (goods.getAuctionId().equals(auctionId) || goods.getAuctionId() == auctionId) {
+										listNew.add(goods);
+										isUpdate = true;
+										break;
+									}
+								}
+
+								if (!isUpdate) {
+									listNew.add(taoBaoGoodsBrief);
+								}
+							}
+						}
+						dynamicInfo.setListGoodsBrief(listNew);
 					}
 				}
+				dynamicInfo.setUpdateTime(new Date());
+				dynamicInfoDao.updateGoodInfo(dynamicInfo);
 			}
-
-			dynamicInfo.setUpdateTime(new Date());
-			dynamicInfoDao.updateGoodInfo(dynamicInfo);
+		} catch (Exception e) {
+			LogHelper.errorDetailInfo(e);
 		}
+
 	}
 
 }

--
Gitblit v1.8.0