From 7e7db2fa55a9a3af46d4fd8ede0dee147f101d64 Mon Sep 17 00:00:00 2001
From: yujian <yujian@163.com>
Date: 星期六, 09 五月 2020 21:41:27 +0800
Subject: [PATCH] 2.1需求

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserGoodsStorageServiceImpl.java |  445 ++++++++++++++++++++++++++++++++++---------------------
 1 files changed, 275 insertions(+), 170 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 e6d0e47..8ad030b 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,63 +4,71 @@
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
-import java.util.Map;
 import java.util.Set;
 
 import javax.annotation.Resource;
 
-import net.sf.json.JSONArray;
-import net.sf.json.JSONObject;
-
 import org.springframework.core.task.TaskExecutor;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 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;
 import com.yeshi.fanli.dao.mybatis.user.UserGoodsStorageMapper;
-import com.yeshi.fanli.entity.bus.share.UserShareGoodsRecord.ShareSourceTypeEnum;
+import com.yeshi.fanli.dto.pdd.PDDGoodsDetail;
+import com.yeshi.fanli.dto.share.ShareGoodsRecordDTO;
 import com.yeshi.fanli.entity.bus.user.UserGoodsStorage;
+import com.yeshi.fanli.entity.bus.user.vip.UserLevelEnum;
 import com.yeshi.fanli.entity.goods.CommonGoods;
+import com.yeshi.fanli.entity.jd.JDGoods;
+import com.yeshi.fanli.entity.system.ConfigKeyEnum;
 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;
 import com.yeshi.fanli.service.inter.goods.CommonGoodsService;
-import com.yeshi.fanli.service.inter.hongbao.HongBaoManageService;
+import com.yeshi.fanli.service.inter.order.config.HongBaoManageService;
 import com.yeshi.fanli.service.inter.user.UserGoodsStorageService;
 import com.yeshi.fanli.service.inter.user.UserShareGoodsRecordService;
+import com.yeshi.fanli.util.CommonGoodsUtil;
+import com.yeshi.fanli.util.Constant;
 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.jd.JDApiUtil;
+import com.yeshi.fanli.util.pinduoduo.PinDuoDuoApiUtil;
 import com.yeshi.fanli.util.taobao.TaoBaoUtil;
+import com.yeshi.fanli.util.taobao.TaoKeApiUtil;
+
+import net.sf.json.JSONArray;
+import net.sf.json.JSONObject;
 
 @Service
 public class UserGoodsStorageServiceImpl implements UserGoodsStorageService {
-	
+
 	@Resource(name = "taskExecutor")
 	private TaskExecutor executor;
-	
+
 	@Resource
 	private RedisManager redisManager;
-	
+
 	@Resource
 	private ConfigService configService;
-	
+
 	@Resource
 	private CommonGoodsService commonGoodsService;
-	
+
 	@Resource
 	private HongBaoManageService manageService;
 
 	@Resource
 	private UserGoodsStorageMapper userGoodsStorageMapper;
-	
+
 	@Resource
 	private UserShareGoodsRecordService userShareGoodsRecordService;
 	@Resource
@@ -106,9 +114,10 @@
 	public int deleteBatchByPrimaryKey(List<Long> list) {
 		return userGoodsStorageMapper.deleteBatchByPrimaryKey(list);
 	}
-	
+
 	/**
 	 * 鏍规嵁涓婚敭 銆乽id 鎵归噺鍒犻櫎
+	 * 
 	 * @param list
 	 * @return
 	 */
@@ -118,22 +127,22 @@
 	}
 
 	@Override
-	public List<UserGoodsStorage> listQueryByUid(long start, int count, Long uid) {
-		return userGoodsStorageMapper.listQueryByUid(start, count, uid);
-	}
-	
-	@Override
-	public UserGoodsStorage getByUidAndAuctionId(Long uid, Long auctionId) {
-		return userGoodsStorageMapper.getByUidAndAuctionId(uid, auctionId);
+	public List<UserGoodsStorage> listQueryByUid(long start, int count, Long uid, Integer source) {
+		return userGoodsStorageMapper.listQueryByUid(start, count, uid, source);
 	}
 
 	@Override
-	public long countQueryByUid(Long uid) {
-		return userGoodsStorageMapper.countQueryByUid(uid);
+	public UserGoodsStorage getByUidAndAuctionId(Long uid, Long auctionId, Integer goodsType) {
+		return userGoodsStorageMapper.getByUidAndAuctionId(uid, auctionId, goodsType);
 	}
 
 	@Override
-	public void save(Long uid, Set<Long> auctionIds) throws UserGoodsStorageException {
+	public long countQueryByUid(Long uid, Integer source) {
+		return userGoodsStorageMapper.countQueryByUid(uid, source);
+	}
+
+	@Override
+	public void save(Long uid, Set<Long> auctionIds, Integer goodsType) throws UserGoodsStorageException {
 
 		if (uid == null) {
 			throw new UserGoodsStorageException(1, "鐢ㄦ埛灏氭湭鐧诲綍");
@@ -144,211 +153,307 @@
 		}
 
 		for (Long auctionId : auctionIds) {
-
-			TaoBaoGoodsBrief goodsBrief = null;
-
-			try {
-				// 鑾峰彇鍟嗗搧璇︽儏
-				goodsBrief = redisManager.getTaoBaoGoodsBrief(auctionId);
-			} catch (TaobaoGoodsDownException e) {
-
-				// 鏇存柊绠�鐗� 涓嬫灦鐘舵��
-				CommonGoods commonGoods = new CommonGoods();
-				commonGoods.setGoodsId(auctionId);
-				commonGoods.setGoodsType(CommonGoods.GOODS_TYPE_TB);
-				commonGoods.setState(CommonGoods.STATE_OFFLINE);
-
-				throw new UserGoodsStorageException(1, "璇ュ晢鍝佸凡涓嬫灦");
+			CommonGoods commonGoods = null;
+			if (goodsType == null) {
+				goodsType = Constant.SOURCE_TYPE_TAOBAO;
 			}
 
-			// 杞崲绠�鐗堝晢鍝佷俊鎭�
-			CommonGoods commonGoods = CommonGoodsFactory.create(goodsBrief);
-			try {
-				commonGoodsService.addOrUpdateCommonGoods(commonGoods);
-			} catch (CommonGoodsException e) {
-				e.printStackTrace();
-				throw new UserGoodsStorageException(1, "鍟嗗搧淇℃伅鏇存柊澶辫触");
-			}
+			if (goodsType == Constant.SOURCE_TYPE_JD) {
+				// 浜笢
+				JDGoods jdGoods = JDApiUtil.queryGoodsDetail(auctionId);
+				if (jdGoods == null) {
+					jdGoods = JDApiUtil.getGoodsDetail(auctionId);
+				}
+				if (jdGoods == null) {
+					throw new UserGoodsStorageException(1, auctionId + "鍟嗗搧宸蹭笅鏋�");
+				}
+				commonGoods = CommonGoodsFactory.create(jdGoods);
 
-			Long cid = commonGoods.getId();
-
-			UserGoodsStorage goodsStorage = userGoodsStorageMapper.getByUidAndCid(uid, cid);
-
-			if (goodsStorage != null) {
-				// 鍒濆璇濈姸鎬�
-				goodsStorage.setState(UserGoodsStorage.STATE_NORMAL);
-				goodsStorage.setUpdateTime(new Date());
-				userGoodsStorageMapper.updateByPrimaryKeySelective(goodsStorage);
+			} else if (goodsType == Constant.SOURCE_TYPE_PDD) {
+				// 鎷煎澶�
+				PDDGoodsDetail pddGoods = PinDuoDuoApiUtil.getGoodsDetail(auctionId);
+				if (pddGoods == null) {
+					throw new UserGoodsStorageException(1, auctionId + "鍟嗗搧宸蹭笅鏋�");
+				}
+				commonGoods = CommonGoodsFactory.create(pddGoods);
 			} else {
-				goodsStorage = new UserGoodsStorage();
-				goodsStorage.setUid(uid);;
-				goodsStorage.setState(UserGoodsStorage.STATE_NORMAL);
-				goodsStorage.setCommonGoods(commonGoods);
-				goodsStorage.setCreateTime(new Date());
-				goodsStorage.setUpdateTime(new Date());
-				userGoodsStorageMapper.insertSelective(goodsStorage);
+				// 娣樺疂
+				try {
+					// 鑾峰彇鍟嗗搧璇︽儏
+					TaoBaoGoodsBrief goodsBrief = redisManager.getTaoBaoGoodsBrief(auctionId);
+					commonGoods = CommonGoodsFactory.create(goodsBrief);
+				} catch (TaobaoGoodsDownException e) {
+					throw new UserGoodsStorageException(1, auctionId + "鍟嗗搧宸蹭笅鏋�");
+				}
 			}
 
+			if (commonGoods != null) {
+				try {
+					commonGoodsService.addOrUpdateCommonGoods(commonGoods);
+				} catch (CommonGoodsException e) {
+					e.printStackTrace();
+					throw new UserGoodsStorageException(1, "鍟嗗搧淇℃伅鏇存柊澶辫触");
+				}
+
+				Long cid = commonGoods.getId();
+
+				UserGoodsStorage goodsStorage = userGoodsStorageMapper.getByUidAndCid(uid, cid);
+
+				if (goodsStorage != null) {
+					// 鍒濆璇濈姸鎬�
+					goodsStorage.setState(UserGoodsStorage.STATE_NORMAL);
+					goodsStorage.setUpdateTime(new Date());
+					userGoodsStorageMapper.updateByPrimaryKeySelective(goodsStorage);
+				} else {
+					goodsStorage = new UserGoodsStorage();
+					goodsStorage.setUid(uid);
+					;
+					goodsStorage.setState(UserGoodsStorage.STATE_NORMAL);
+					goodsStorage.setCommonGoods(commonGoods);
+					goodsStorage.setCreateTime(new Date());
+					goodsStorage.setUpdateTime(new Date());
+					userGoodsStorageMapper.insertSelective(goodsStorage);
+				}
+			}
 		}
 	}
 
-	
 	@Override
-	public JSONArray getMyStorage(int page, int pageSize, Long uid) throws UserGoodsStorageException {
-		
-		JSONArray  array = new JSONArray();
+	@Transactional(rollbackFor=Exception.class)
+	public void addCommonGoods(Long uid, Set<Long> ids) throws UserGoodsStorageException {
 
-		List<UserGoodsStorage> listStorage = listQueryByUid(page , pageSize, uid);
+		if (uid == null) {
+			throw new UserGoodsStorageException(1, "鐢ㄦ埛灏氭湭鐧诲綍");
+		}
+
+		if (ids == null || ids.size() == 0) {
+			throw new UserGoodsStorageException(1, "鍟嗗搧ID涓虹┖");
+		}
+
+		for (Long id : ids) {
+			CommonGoods commonGoods = commonGoodsService.selectByPrimaryKey(id);
+			if (commonGoods != null) {
+				UserGoodsStorage goodsStorage = userGoodsStorageMapper.getByUidAndCid(uid, id);
+
+				if (goodsStorage != null) {
+					// 鍒濆璇濈姸鎬�
+					goodsStorage.setState(UserGoodsStorage.STATE_NORMAL);
+					goodsStorage.setUpdateTime(new Date());
+					userGoodsStorageMapper.updateByPrimaryKeySelective(goodsStorage);
+				} else {
+					goodsStorage = new UserGoodsStorage();
+					goodsStorage.setUid(uid);
+					;
+					goodsStorage.setState(UserGoodsStorage.STATE_NORMAL);
+					goodsStorage.setCommonGoods(commonGoods);
+					goodsStorage.setCreateTime(new Date());
+					goodsStorage.setUpdateTime(new Date());
+					userGoodsStorageMapper.insertSelective(goodsStorage);
+				}
+			}
+		}
+	}
+
+	@Override
+	public JSONArray getMyStorage(int page, int pageSize, Long uid, Integer source) throws UserGoodsStorageException {
+
+		JSONArray array = new JSONArray();
+
+		List<UserGoodsStorage> listStorage = listQueryByUid(page, pageSize, uid, source);
 		if (listStorage == null || listStorage.size() == 0) {
 			return array;
 		}
-		
-		Date nowDate = new Date();
-		long nh = 1000 * 60 * 60;
-		long nd = 1000 * 24 * 60 * 60;
-		List<CommonGoods> listUpadteCommonGoods = new ArrayList<CommonGoods>();
-		
+
+		if (source == null) {
+			source = Constant.SOURCE_TYPE_TAOBAO;
+		}
+
+		List<TaoBaoGoodsBrief> listTaoKeGoods = null;
+		if (source == Constant.SOURCE_TYPE_TAOBAO) {
+			List<Long> listGid = new ArrayList<Long>();
+			for (UserGoodsStorage userGoodsStorage : listStorage) {
+				CommonGoods commonGoods = userGoodsStorage.getCommonGoods();
+				if (commonGoods == null) {
+					continue;
+				}
+				listGid.add(commonGoods.getGoodsId());
+			}
+
+			// API缃戠粶鎺ュ彛楠岃瘉鏄惁鍦ㄥ敭
+			try {
+				listTaoKeGoods = TaoKeApiUtil.getBatchGoodsInfo(listGid);
+			} catch (TaoKeApiException e) {
+				e.printStackTrace();
+			} catch (TaobaoGoodsDownException e) {
+				e.printStackTrace();
+			} catch (Exception e) {
+				e.printStackTrace();
+			}
+		}
+
+		BigDecimal rate = manageService.getFanLiRate(UserLevelEnum.daRen);
 		Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder())
 				.excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create();
 
-		Map<String, String> map = manageService.convertMap();
-		BigDecimal  rate = manageService.getFanLiRate();
-		
-		
 		for (UserGoodsStorage userGoodsStorage : listStorage) {
 			CommonGoods commonGoods = userGoodsStorage.getCommonGoods();
 			if (commonGoods == null) {
 				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 hour = diff % nd / nh;
-				    if (hour > 1 ) {
-				    	try {
-				    		if (commonGoods.getGoodsType() == CommonGoods.GOODS_TYPE_TB) {
-				    			goodsBrief = redisManager.getTaoBaoGoodsBrief(commonGoods.getGoodsId());
-				    			goodsBrief.setState(0);
-				    			goodsState = 0;
-				    		}
-						} catch (TaobaoGoodsDownException e) {
-							// 宸蹭笅鏋�
-							goodsState = 1;
-							commonGoods.setState(1);
-							e.printStackTrace();
-						}
-				    }
+
+			int state = 0;
+			Integer goodsType = commonGoods.getGoodsType();
+
+			if (listTaoKeGoods != null && listTaoKeGoods.size() > 0 && goodsType != null
+					&& goodsType == Constant.SOURCE_TYPE_TAOBAO) {
+				state = 1; // 榛樿鍋滃敭
+				Long goodsId = commonGoods.getGoodsId();
+				for (TaoBaoGoodsBrief taoKeGoods : listTaoKeGoods) {
+					Long auctionId = taoKeGoods.getAuctionId();
+					if (goodsId == auctionId || goodsId.equals(auctionId)) {
+						state = 0; // 鍦ㄥ敭
+						break;
+					}
 				}
 			}
-			
-			if (goodsBrief == null) {
-				goodsBrief = TaoBaoUtil.convert(commonGoods);
-			} else {
-				CommonGoods upadeteCommonGoods = CommonGoodsFactory.create(goodsBrief);
-				upadeteCommonGoods.setState(goodsState);
-				listUpadteCommonGoods.add(upadeteCommonGoods);
-			}
-			
+			commonGoods.setState(state);
+			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 = commonGoods.getPicture();
-			if (!StringUtil.isNullOrEmpty(pictUrl) && !pictUrl.contains("320x320")) {
-				commonGoods.setPicture(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;
 	}
-	
-	
+
 	@Override
-	public boolean isExistStorage(Long uid, Long auctionId) {
+	public boolean isExistStorage(Long uid, Long auctionId, Integer goodType) {
 		boolean state = false;
 		if (uid != null && auctionId != null) {
-			UserGoodsStorage userGoodsStorage = userGoodsStorageMapper.getByUidAndAuctionId(uid, auctionId);
+			UserGoodsStorage userGoodsStorage = userGoodsStorageMapper.getByUidAndAuctionId(uid, auctionId, goodType);
 			if (userGoodsStorage != null) {
 				state = true;
 			}
 		}
 		return state;
 	}
-	
+
 	@Override
-	public JSONObject shareGoods(Long uid, List<Long> listStorageID)  
+	public JSONObject shareGoods(Long uid, List<Long> listStorageID)
 			throws UserGoodsStorageException, UserShareGoodsRecordException {
-		
 		List<UserGoodsStorage> listStorage = userGoodsStorageMapper.listQueryByIds(listStorageID);
 		if (listStorage == null || listStorage.size() == 0) {
 			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>();
-		
-		for (UserGoodsStorage userGoodsStorage: listStorage) {
+
+		BigDecimal rate = hongBaoManageService.getShareRate(UserLevelEnum.daRen);
+		for (UserGoodsStorage userGoodsStorage : listResult) {
 			CommonGoods commonGoods = userGoodsStorage.getCommonGoods();
 			TaoBaoGoodsBrief goodsBrief = TaoBaoUtil.convert(commonGoods);
 			listGoodsBrief.add(goodsBrief);
-			// 宸插垎浜�
-			userGoodsStorage.setState(1);
-			userGoodsStorage.setUpdateTime(new Date());
-			
-			String rateStr = hongBaoManageService.get("hongbao_goods_proportion");
-			BigDecimal money = TaoBaoUtil.getGoodsHongBaoMoney(goodsBrief, new BigDecimal(rateStr));
+
+			BigDecimal money = TaoBaoUtil.getGoodsHongBaoMoney(goodsBrief, rate);
 			totalMoney = MoneyBigDecimalUtil.add(totalMoney, money);
 		}
-		
-		String revenue = listGoodsBrief.size() + "涓晢鍝侀浼板垎浜閲戯細楼"+totalMoney;
-		FileUploadResult loadResult = userShareGoodsRecordService.save(uid, ShareSourceTypeEnum.storage, listGoodsBrief);
 
-		// 鏇存柊涓哄凡鍒嗕韩
-		userGoodsStorageMapper.updateBatchSelective(listStorage);
-		
+		ShareGoodsRecordDTO shareRecord = userShareGoodsRecordService.addRecordGoodsStorage(uid, listGoodsBrief,
+				listStorageID);
+		FileUploadResult uploadResult = new FileUploadResult();
+		uploadResult.setUrl(shareRecord.getSharePictureUrl());
+
 		JSONObject data = new JSONObject();
-		data.put("shareImg", loadResult);
-		data.put("revenue", revenue);
-		data.put("notifyDesc", configService.get("goods_share_notify"));
-
+		data.put("revenue", listGoodsBrief.size() + "涓晢鍝侀浼板垎浜閲戯細楼" + totalMoney);
+		data.put("shareId", shareRecord.getRedisKey());
+		data.put("shareImg", uploadResult);
+		data.put("notifyDesc", configService.get(ConfigKeyEnum.goodsShareMultipleNotify.getKey()));
 		return data;
-		
 	}
+
+	@Override
+	public JSONObject createShareV2(Long uid, List<Long> listStorageID, boolean needDrawPicture)
+			throws UserGoodsStorageException, UserShareGoodsRecordException {
+		List<UserGoodsStorage> listStorage = userGoodsStorageMapper.listQueryByIds(listStorageID);
+		if (listStorage == null || listStorage.size() == 0) {
+			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<CommonGoods> listCommonGoods = new ArrayList<CommonGoods>();
+
+		Integer goodsType = null;
+		BigDecimal rate = hongBaoManageService.getShareRate(UserLevelEnum.daRen);
+		for (UserGoodsStorage userGoodsStorage : listResult) {
+			CommonGoods commonGoods = userGoodsStorage.getCommonGoods();
+			BigDecimal money = CommonGoodsUtil.getCommission(commonGoods, rate);
+			totalMoney = MoneyBigDecimalUtil.add(totalMoney, money);
+			listCommonGoods.add(commonGoods);
+
+			if (goodsType == null) {
+				goodsType = commonGoods.getGoodsType();
+			}
+		}
+
+		ShareGoodsRecordDTO shareRecord = userShareGoodsRecordService.addRecordGoodsStorageV2(uid, listCommonGoods,
+				listStorageID, needDrawPicture);
+		FileUploadResult uploadResult = new FileUploadResult();
+		uploadResult.setUrl(shareRecord.getSharePictureUrl());
+
+		JSONObject data = new JSONObject();
+		data.put("revenue", listCommonGoods.size() + "涓晢鍝侀浼板垎浜閲戯細楼" + totalMoney);
+		data.put("shareId", shareRecord.getRedisKey());
+		data.put("shareImg", uploadResult);
+
+		// 鎻愮ず璇笉鍚�
+		if (goodsType == Constant.SOURCE_TYPE_JD) {
+			// 浜笢
+			data.put("notifyDesc", configService.get(ConfigKeyEnum.goodsShareNotifyJD.getKey()));
+		} else if (goodsType == Constant.SOURCE_TYPE_PDD) {
+			// 鎷煎澶�
+			data.put("notifyDesc", configService.get(ConfigKeyEnum.goodsShareNotifyPDD.getKey()));
+		} else {
+			data.put("notifyDesc", configService.get(ConfigKeyEnum.goodsShareMultipleNotify.getKey()));
+		}
+		return data;
+	}
+
 }

--
Gitblit v1.8.0