From 88b54772dbcf5ecab1e2316e4e4626ac901b8908 Mon Sep 17 00:00:00 2001
From: yujian <yujian>
Date: 星期二, 22 一月 2019 15:58:24 +0800
Subject: [PATCH] 邀请码添加返回状态

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserGoodsStorageServiceImpl.java |  152 ++++++++++++++++++++++----------------------------
 1 files changed, 68 insertions(+), 84 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserGoodsStorageServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserGoodsStorageServiceImpl.java
index c66d4eb..ed90bcd 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserGoodsStorageServiceImpl.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserGoodsStorageServiceImpl.java
@@ -4,6 +4,7 @@
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
+import java.util.Map;
 import java.util.Set;
 
 import javax.annotation.Resource;
@@ -14,8 +15,6 @@
 import org.springframework.core.task.TaskExecutor;
 import org.springframework.stereotype.Service;
 import org.yeshi.utils.JsonUtil;
-import org.yeshi.utils.entity.FileUploadResult;
-import org.yeshi.utils.taobao.TbImgUtil;
 
 import com.google.gson.Gson;
 import com.google.gson.GsonBuilder;
@@ -26,6 +25,7 @@
 import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
 import com.yeshi.fanli.exception.goods.CommonGoodsException;
 import com.yeshi.fanli.exception.share.UserShareGoodsRecordException;
+import com.yeshi.fanli.exception.taobao.TaoKeApiException;
 import com.yeshi.fanli.exception.taobao.TaobaoGoodsDownException;
 import com.yeshi.fanli.exception.user.UserGoodsStorageException;
 import com.yeshi.fanli.service.inter.config.ConfigService;
@@ -35,9 +35,9 @@
 import com.yeshi.fanli.service.inter.user.UserShareGoodsRecordService;
 import com.yeshi.fanli.util.MoneyBigDecimalUtil;
 import com.yeshi.fanli.util.RedisManager;
-import com.yeshi.fanli.util.StringUtil;
 import com.yeshi.fanli.util.factory.CommonGoodsFactory;
 import com.yeshi.fanli.util.taobao.TaoBaoUtil;
+import com.yeshi.fanli.util.taobao.TaoKeApiUtil;
 
 @Service
 public class UserGoodsStorageServiceImpl implements UserGoodsStorageService {
@@ -130,6 +130,11 @@
 	public long countQueryByUid(Long uid) {
 		return userGoodsStorageMapper.countQueryByUid(uid);
 	}
+	
+	@Override
+	public void updateShareState(Long shareId) {
+		userGoodsStorageMapper.updateShareState(shareId);
+	}
 
 	@Override
 	public void save(Long uid, Set<Long> auctionIds) throws UserGoodsStorageException {
@@ -202,15 +207,31 @@
 			return array;
 		}
 		
-		Date nowDate = new Date();
-		long nh = 1000 * 60 * 60;
-		long nd = 1000 * 24 * 60 * 60;
-		List<CommonGoods> listUpadteCommonGoods = new ArrayList<CommonGoods>();
+	
+		List<Long> listGid = new ArrayList<Long>();
+		for (UserGoodsStorage userGoodsStorage : listStorage) {
+			CommonGoods commonGoods = userGoodsStorage.getCommonGoods();
+			if (commonGoods == null) {
+				continue;
+			}
+			listGid.add(commonGoods.getGoodsId());
+		}
+		
+		// API缃戠粶鎺ュ彛楠岃瘉鏄惁鍦ㄥ敭
+		List<TaoBaoGoodsBrief> listTaoKeGoods = null;
+		try {
+			listTaoKeGoods = TaoKeApiUtil.getBatchGoodsInfo(listGid);
+		} catch (TaoKeApiException e) {
+			e.printStackTrace();
+		} catch (TaobaoGoodsDownException e) {
+			e.printStackTrace();
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
 		
 		BigDecimal  rate = manageService.getFanLiRate();
 		Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder())
 				.excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create();
-
 		
 		for (UserGoodsStorage userGoodsStorage : listStorage) {
 			CommonGoods commonGoods = userGoodsStorage.getCommonGoods();
@@ -218,83 +239,36 @@
 				continue;
 			}
 			
-			TaoBaoGoodsBrief goodsBrief = null;
-			JSONObject dataObject = new JSONObject();
-			
-			
-			// 鏇存柊涓�涓皬鏃朵箣鍐呯殑鍟嗗搧涓嶅啀鏇存柊
-			Integer goodsState = commonGoods.getState();
-			// 鐘舵�佹湭涓嬫灦鏃惰繘琛屾洿鏂�
-			if (goodsState != null && (goodsState != 1 || !goodsState.equals(1))) {
-				Date updateTime = commonGoods.getUpdateTime();
-				if (updateTime != null) {
-					// 璁$畻宸灏戝皬鏃�
-					long diff = nowDate.getTime() - updateTime.getTime();
-					long day = diff / nd;
-				    long hour = diff % nd / nh;
-				    if (hour > 1 || day > 0 ) {
-				    	try {
-				    		if (commonGoods.getGoodsType() == CommonGoods.GOODS_TYPE_TB) {
-				    			goodsBrief = redisManager.getTaoBaoGoodsBrief(commonGoods.getGoodsId());
-				    		
-				    			goodsState = 0;
-				    			goodsBrief.setState(goodsState);
-				    			
-				    			CommonGoods upadeteCommonGoods = CommonGoodsFactory.create(goodsBrief);
-				    			upadeteCommonGoods.setState(goodsState);
-								upadeteCommonGoods.setId(commonGoods.getId());
-								listUpadteCommonGoods.add(upadeteCommonGoods);
-				    		}
-						} catch (TaobaoGoodsDownException e) {
-							// 宸蹭笅鏋�
-							goodsState = 1;
-							commonGoods.setState(goodsState);
-							listUpadteCommonGoods.add(commonGoods);
-							e.printStackTrace();
-						}
-				    }
+			if (listTaoKeGoods != null && listTaoKeGoods.size() > 0 ) {
+				int state = 1;  // 榛樿鍋滃敭
+				Long goodsId = commonGoods.getGoodsId();
+				for (TaoBaoGoodsBrief taoKeGoods: listTaoKeGoods) {
+					Long auctionId = taoKeGoods.getAuctionId();
+					if (goodsId == auctionId || goodsId.equals(auctionId)) {
+						state = 0; // 鍦ㄥ敭
+						break;
+					}
 				}
+				commonGoods.setState(state);
 			}
 			
-			if (goodsBrief == null) {
-				goodsBrief = TaoBaoUtil.convert(commonGoods);
-			} 
+			TaoBaoGoodsBrief goodsBrief = TaoBaoUtil.convert(commonGoods);
 			
 			// 鍒ゆ柇鏄惁宸插垎浜�
-			Integer state = userGoodsStorage.getState();
-			int shared = UserGoodsStorage.STATE_SHARED;
-			if (state != null && (state == shared || state.equals(shared))) {
-				if (goodsState != 1 || !goodsState.equals(1)) {
-					goodsBrief.setState(2); // 宸插垎浜姸鎬�
+			Integer storageState = userGoodsStorage.getState();
+			if (storageState != null && storageState == UserGoodsStorage.STATE_SHARED) {
+				Integer goodsState = goodsBrief.getState();
+				if (goodsState != null && goodsState != 1) {
+					goodsBrief.setState(2); // 宸插垎浜姸鎬� 浼樺厛鏄剧ず宸蹭笅鏋�
 				}
 			}
-
-			// 鏀瑰彉鍥剧墖灏哄
-			String pictUrl = goodsBrief.getPictUrl();
-			if (!StringUtil.isNullOrEmpty(pictUrl) && !pictUrl.contains("320x320")) {
-				goodsBrief.setPictUrl(TbImgUtil.getTBSize320Img(pictUrl));
-			}
+			
 			String json = gson.toJson(TaoBaoUtil.getTaoBaoGoodsBriefExtra(goodsBrief, rate.toString(), null));
-
+			
+			JSONObject dataObject = new JSONObject();
 			dataObject.put("storageId", userGoodsStorage.getId());
 			dataObject.put("goods", json);
 			array.add(dataObject);
-		}
-		
-		
-		if (listUpadteCommonGoods.size() > 0) {
-			executor.execute(new Runnable() {
-				@Override
-				public void run() {
-					try {
-						// 鏇存柊绠�鐗堜俊鎭�
-						commonGoodsService.updateBatchCommonGoods(listUpadteCommonGoods);
-					} catch (Exception e) {
-						e.printStackTrace();
-					}
-					
-				}
-			});
 		}
 		
 		return array;
@@ -322,34 +296,44 @@
 			throw new UserGoodsStorageException(1, "閫夊搧搴撳晢鍝佷笉瀛樺湪");
 		}
 		
+		
+		List<UserGoodsStorage> listResult = new ArrayList<UserGoodsStorage>();
+		// 杩樺師椤哄簭 鐢ㄤ簬鍒跺浘
+		for (Long sid: listStorageID) {
+			for (UserGoodsStorage torage: listStorage) {
+				Long id = torage.getId();
+				if (sid == id || sid.equals(id)) {
+					listResult.add(torage);
+					break;
+				}
+			}
+		}
+		
+		
 		BigDecimal totalMoney = new BigDecimal(0.00);
 		List<TaoBaoGoodsBrief> listGoodsBrief = new ArrayList<TaoBaoGoodsBrief>();
 		
 		String rateStr = hongBaoManageService.get("hongbao_goods_proportion");
 		
-		for (UserGoodsStorage userGoodsStorage: listStorage) {
+		for (UserGoodsStorage userGoodsStorage: listResult) {
 			CommonGoods commonGoods = userGoodsStorage.getCommonGoods();
 			TaoBaoGoodsBrief goodsBrief = TaoBaoUtil.convert(commonGoods);
 			listGoodsBrief.add(goodsBrief);
-			// 宸插垎浜�
-			userGoodsStorage.setState(1);
-			userGoodsStorage.setUpdateTime(new Date());
 			
 			BigDecimal money = TaoBaoUtil.getGoodsHongBaoMoney(goodsBrief, new BigDecimal(rateStr));
 			totalMoney = MoneyBigDecimalUtil.add(totalMoney, money);
 		}
 		
 		String revenue = listGoodsBrief.size() + "涓晢鍝侀浼板垎浜閲戯細楼"+totalMoney;
-		FileUploadResult loadResult = userShareGoodsRecordService.save(uid, ShareSourceTypeEnum.storage, 
+		
+		Map<String,Object> map = userShareGoodsRecordService.save(uid, ShareSourceTypeEnum.storage, 
 				null, listGoodsBrief);
-
-		// 鏇存柊涓哄凡鍒嗕韩
-		userGoodsStorageMapper.updateBatchSelective(listStorage);
 		
 		JSONObject data = new JSONObject();
-		data.put("shareImg", loadResult);
 		data.put("revenue", revenue);
-		data.put("notifyDesc", configService.get("goods_share_notify"));
+		data.put("shareId", map.get("shareId"));
+		data.put("shareImg", map.get("loadResult"));
+		data.put("notifyDesc", configService.get("goods_share_multiple_notify"));
 
 		return data;
 	}

--
Gitblit v1.8.0