From faabdba4cdfc442d3dc5f06bd9ae9cc90d8161c3 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期五, 17 五月 2019 09:32:34 +0800
Subject: [PATCH] bug修改

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserShareGoodsRecordServiceImpl.java |  161 ++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 156 insertions(+), 5 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 5f23df9..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
@@ -26,6 +26,7 @@
 import com.google.gson.GsonBuilder;
 import com.yeshi.fanli.dao.mybatis.UserInfoMapper;
 import com.yeshi.fanli.dao.mybatis.share.UserShareGoodsRecordMapper;
+import com.yeshi.fanli.dto.share.ShareInfoDTO;
 import com.yeshi.fanli.entity.bus.share.UserShareGoodsGroup;
 import com.yeshi.fanli.entity.bus.share.UserShareGoodsRecord;
 import com.yeshi.fanli.entity.bus.share.UserShareGoodsRecord.ShareSourceTypeEnum;
@@ -230,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 {
@@ -298,6 +328,56 @@
 
 		return map;
 	}
+	
+	
+	
+
+	/**
+	 * 淇濆瓨鍒嗕韩璁板綍
+	 * 
+	 * @param userShareGoodsRecord
+	 *            鍒嗕韩璁板綍锛� uid銆乸icture銆乻ource 涓哄繀杈撳叆
+	 * @throws UserShareGoodsRecordException
+	 */
+	@Override
+	public ShareInfoDTO saveShareRecord(Long uid, ShareSourceTypeEnum source, String title,
+			List<TaoBaoGoodsBrief> listGoods) throws UserShareGoodsRecordException {
+
+		if (listGoods == null || listGoods.size() == 0) {
+			throw new UserShareGoodsRecordException(1, "鍒嗕韩鍟嗗搧鏁伴噺涓嶈冻");
+		}
+
+		if (uid == null) {
+			throw new UserShareGoodsRecordException(1, "鐢ㄦ埛ID涓嶈兘涓虹┖");
+		}
+
+		if (source == null) {
+			throw new UserShareGoodsRecordException(1, "鍒嗕韩鏉ユ簮涓嶈兘涓虹┖");
+		}
+
+		UserShareGoodsRecord userShareGoodsRecord = new UserShareGoodsRecord();
+		userShareGoodsRecord.setUid(uid);
+		userShareGoodsRecord.setSource(source);
+		userShareGoodsRecord.setTitle(title);
+		// 鍙栦竴涓晢鍝佸浘鐗囦綔涓轰富鍥�
+		userShareGoodsRecord.setPicture(listGoods.get(0).getPictUrl());
+
+		Date date = new Date();
+		userShareGoodsRecord.setShareState(0); // 鍒濆鏈垎浜�
+		userShareGoodsRecord.setCreateTime(date);
+		userShareGoodsRecord.setUpdateTime(date);
+		userShareGoodsRecordMapper.insertSelective(userShareGoodsRecord);
+
+		// 澶氫釜鍟嗗搧鍒嗕韩
+		 multipleGoodsShareRecord(userShareGoodsRecord, listGoods);
+	
+		ShareInfoDTO shareInfo = new ShareInfoDTO();
+		shareInfo.setShareId(userShareGoodsRecord.getId());
+		shareInfo.setShareUrl(getShareUrl(userShareGoodsRecord));
+		
+		return shareInfo;
+	}
+
 
 	/**
 	 * 鍗曚釜鍟嗗搧鍒嗕韩鐢熸垚璁板綍
@@ -358,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);
+		}
+	}
+	
 	/**
 	 * 澶氫釜鍟嗗搧鍒嗕韩鐢熸垚璁板綍
 	 * 
@@ -412,6 +543,22 @@
 		return shareImg;
 	}
 
+	public String  getShareUrl (UserShareGoodsRecord shareRecord) {
+		Long uid = shareRecord.getUid();
+		Long shareId = shareRecord.getId();
+		String source = shareRecord.getSource().name();
+
+		String url = String.format("http://%s/share_mushGoods.html?uid=%s&shareId=%s&source=%s",
+				configService.getH5Host(), AESUtil.encrypt(uid + "", Constant.UIDAESKEY), shareId + "",
+				source + "");
+
+		String shortLink = HttpUtil.getShortLink(url);
+		if (!StringUtil.isNullOrEmpty(shortLink)) {
+			url = shortLink;
+		}
+		return url;
+	}
+	
 	/**
 	 * 鐢熸垚鍒嗕韩鍥�
 	 * 
@@ -655,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