From 4114e871bcb3dce771b6aed64a1027d0bbb95ca6 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期四, 16 五月 2019 15:28:37 +0800
Subject: [PATCH] 增加动态用户

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserShareGoodsRecordServiceImpl.java |   99 +++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 90 insertions(+), 9 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserShareGoodsRecordServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserShareGoodsRecordServiceImpl.java
index f074185..0cf36cb 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserShareGoodsRecordServiceImpl.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserShareGoodsRecordServiceImpl.java
@@ -231,6 +231,35 @@
 		singleGoodsShare(userShareGoodsRecord, goodsBrief);
 	}
 
+	
+	@Override
+	public Long saveSingleShareRecord(Long uid, Long auctionId) throws UserShareGoodsRecordException {
+
+		if (auctionId == null) {
+			throw new UserShareGoodsRecordException(1, "鍒嗕韩鍟嗗搧涓嶈兘涓虹┖");
+		}
+
+		if (uid == null) {
+			throw new UserShareGoodsRecordException(1, "鐢ㄦ埛ID涓嶈兘涓虹┖");
+		}
+
+		TaoBaoGoodsBrief goodsBrief = null;
+		try {
+			goodsBrief = redisManager.getTaoBaoGoodsBrief(auctionId);
+		} catch (TaobaoGoodsDownException e) {
+			throw new UserShareGoodsRecordException(1, "鍟嗗搧宸蹭笅鏋�");
+		}
+
+		UserShareGoodsRecord userShareGoodsRecord = new UserShareGoodsRecord();
+		userShareGoodsRecord.setUid(uid);
+		userShareGoodsRecord.setSource(ShareSourceTypeEnum.goodsDetail);
+		userShareGoodsRecord.setShareState(0);
+		// 鍗曚釜鍟嗗搧鍒嗕韩
+		singleGoodsShare(userShareGoodsRecord, goodsBrief);
+		
+		return userShareGoodsRecord.getId();
+	}
+	
 	@Override
 	public void save(Long uid, ShareSourceTypeEnum source, String title, TaoBaoGoodsBrief taoBaoGoodsBrief)
 			throws UserShareGoodsRecordException {
@@ -339,13 +368,10 @@
 		userShareGoodsRecord.setUpdateTime(date);
 		userShareGoodsRecordMapper.insertSelective(userShareGoodsRecord);
 
-		Map<String, Object> map = new HashMap<String, Object>();
 		// 澶氫釜鍟嗗搧鍒嗕韩
-		FileUploadResult loadResult = multipleGoodsShare(userShareGoodsRecord, listGoods);
+		 multipleGoodsShareRecord(userShareGoodsRecord, listGoods);
 	
 		ShareInfoDTO shareInfo = new ShareInfoDTO();
-		shareInfo.setMd5(loadResult.getMd5());
-		shareInfo.setCodeUrl(loadResult.getUrl());
 		shareInfo.setShareId(userShareGoodsRecord.getId());
 		shareInfo.setShareUrl(getShareUrl(userShareGoodsRecord));
 		
@@ -412,6 +438,57 @@
 
 	}
 
+	
+	/**
+	 * 澶氫釜鍟嗗搧鍒嗕韩鐢熸垚璁板綍
+	 * 
+	 * @param userShareGoodsRecord
+	 * @param listGoods
+	 */
+	@Transactional
+	public void multipleGoodsShareRecord(UserShareGoodsRecord userShareGoodsRecord,
+			List<TaoBaoGoodsBrief> listGoods) throws UserShareGoodsRecordException {
+
+		// 鍒嗕韩璁板綍
+		Date date = new Date();
+
+		List<TaoBaoGoodsBrief> listGoodsBrief = new ArrayList<TaoBaoGoodsBrief>();
+		List<UserShareGoodsGroup> listGroup = new ArrayList<UserShareGoodsGroup>();
+
+		for (TaoBaoGoodsBrief taoBaoGoodsBrief : listGoods) {
+			CommonGoods commonGoods = CommonGoodsFactory.create(taoBaoGoodsBrief);
+			commonGoods.setState(taoBaoGoodsBrief.getState());
+			try {
+				CommonGoods resultCommonGoods = commonGoodsService.addOrUpdateCommonGoods(commonGoods);
+
+				if (resultCommonGoods != null) {
+					TaoBaoGoodsBrief goodsBrief = TaoBaoUtil.convert(resultCommonGoods);
+					listGoodsBrief.add(goodsBrief);
+				}
+
+				UserShareGoodsGroup shareGoodsGroup = new UserShareGoodsGroup();
+				shareGoodsGroup.setTotalOrder(0);
+				shareGoodsGroup.setTotalBrowse(0);
+				shareGoodsGroup.setTodayBrowse(0);
+				shareGoodsGroup.setTotalMoney(new BigDecimal(0));
+				shareGoodsGroup.setCreateTime(date);
+				shareGoodsGroup.setUpdateTime(date);
+				shareGoodsGroup.setCommonGoods(resultCommonGoods);
+				shareGoodsGroup.setRecordId(userShareGoodsRecord.getId());
+
+				listGroup.add(shareGoodsGroup);
+
+			} catch (CommonGoodsException e) {
+				e.printStackTrace();
+				continue;
+			}
+		}
+
+		if (listGroup.size() > 0) {
+			userShareGoodsGroupService.insertBatch(listGroup);
+		}
+	}
+	
 	/**
 	 * 澶氫釜鍟嗗搧鍒嗕韩鐢熸垚璁板綍
 	 * 
@@ -725,15 +802,19 @@
 		}
 
 		shareRecord.setShareState(1);// 鍒嗕韩鐢熸晥
-		updateByPrimaryKeySelective(shareRecord);
-		// 鏇存柊鍟嗗搧涓哄凡鍒嗕韩
-		userGoodsStorageService.updateShareState(shareId);
+		updateByPrimaryKeySelective(shareRecord);// 鏇存柊鍟嗗搧涓哄凡鍒嗕韩
+		
+		// 鏇存柊閫夊搧搴撳晢鍝佷负宸插垎浜�
+		executor.execute(new Runnable() {
+			@Override
+			public void run() {
+				userGoodsStorageService.updateShareState(shareId);
+			}
+		});
 	}
 
 	@Override
 	public long countShareRecordByUid(Long uid) {
-
 		return userShareGoodsRecordMapper.countQueryByUid(uid, null);
-
 	}
 }

--
Gitblit v1.8.0