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 |  160 +++++++++++++++++++++++++++--------------------------
 1 files changed, 81 insertions(+), 79 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 4a8729e..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
@@ -10,6 +10,7 @@
 
 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;
 
@@ -19,8 +20,10 @@
 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;
@@ -29,7 +32,7 @@
 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;
@@ -47,25 +50,25 @@
 
 @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
@@ -111,9 +114,10 @@
 	public int deleteBatchByPrimaryKey(List<Long> list) {
 		return userGoodsStorageMapper.deleteBatchByPrimaryKey(list);
 	}
-	
+
 	/**
 	 * 鏍规嵁涓婚敭 銆乽id 鎵归噺鍒犻櫎
+	 * 
 	 * @param list
 	 * @return
 	 */
@@ -126,7 +130,7 @@
 	public List<UserGoodsStorage> listQueryByUid(long start, int count, Long uid, Integer source) {
 		return userGoodsStorageMapper.listQueryByUid(start, count, uid, source);
 	}
-	
+
 	@Override
 	public UserGoodsStorage getByUidAndAuctionId(Long uid, Long auctionId, Integer goodsType) {
 		return userGoodsStorageMapper.getByUidAndAuctionId(uid, auctionId, goodsType);
@@ -136,7 +140,7 @@
 	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 {
 
@@ -151,11 +155,11 @@
 		for (Long auctionId : auctionIds) {
 			CommonGoods commonGoods = null;
 			if (goodsType == null) {
-				 goodsType = Constant.SOURCE_TYPE_TAOBAO;
-			} 
-			
+				goodsType = Constant.SOURCE_TYPE_TAOBAO;
+			}
+
 			if (goodsType == Constant.SOURCE_TYPE_JD) {
-				// 浜笢 
+				// 浜笢
 				JDGoods jdGoods = JDApiUtil.queryGoodsDetail(auctionId);
 				if (jdGoods == null) {
 					jdGoods = JDApiUtil.getGoodsDetail(auctionId);
@@ -164,9 +168,9 @@
 					throw new UserGoodsStorageException(1, auctionId + "鍟嗗搧宸蹭笅鏋�");
 				}
 				commonGoods = CommonGoodsFactory.create(jdGoods);
-				
+
 			} else if (goodsType == Constant.SOURCE_TYPE_PDD) {
-				// 鎷煎澶� 
+				// 鎷煎澶�
 				PDDGoodsDetail pddGoods = PinDuoDuoApiUtil.getGoodsDetail(auctionId);
 				if (pddGoods == null) {
 					throw new UserGoodsStorageException(1, auctionId + "鍟嗗搧宸蹭笅鏋�");
@@ -182,8 +186,7 @@
 					throw new UserGoodsStorageException(1, auctionId + "鍟嗗搧宸蹭笅鏋�");
 				}
 			}
-			
-			
+
 			if (commonGoods != null) {
 				try {
 					commonGoodsService.addOrUpdateCommonGoods(commonGoods);
@@ -203,7 +206,8 @@
 					userGoodsStorageMapper.updateByPrimaryKeySelective(goodsStorage);
 				} else {
 					goodsStorage = new UserGoodsStorage();
-					goodsStorage.setUid(uid);;
+					goodsStorage.setUid(uid);
+					;
 					goodsStorage.setState(UserGoodsStorage.STATE_NORMAL);
 					goodsStorage.setCommonGoods(commonGoods);
 					goodsStorage.setCreateTime(new Date());
@@ -214,8 +218,8 @@
 		}
 	}
 
-	
 	@Override
+	@Transactional(rollbackFor=Exception.class)
 	public void addCommonGoods(Long uid, Set<Long> ids) throws UserGoodsStorageException {
 
 		if (uid == null) {
@@ -238,7 +242,8 @@
 					userGoodsStorageMapper.updateByPrimaryKeySelective(goodsStorage);
 				} else {
 					goodsStorage = new UserGoodsStorage();
-					goodsStorage.setUid(uid);;
+					goodsStorage.setUid(uid);
+					;
 					goodsStorage.setState(UserGoodsStorage.STATE_NORMAL);
 					goodsStorage.setCommonGoods(commonGoods);
 					goodsStorage.setCreateTime(new Date());
@@ -249,21 +254,20 @@
 		}
 	}
 
-	
 	@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);
+		List<UserGoodsStorage> listStorage = listQueryByUid(page, pageSize, uid, source);
 		if (listStorage == null || listStorage.size() == 0) {
 			return array;
 		}
-	
+
 		if (source == null) {
 			source = Constant.SOURCE_TYPE_TAOBAO;
 		}
-		
+
 		List<TaoBaoGoodsBrief> listTaoKeGoods = null;
 		if (source == Constant.SOURCE_TYPE_TAOBAO) {
 			List<Long> listGid = new ArrayList<Long>();
@@ -274,7 +278,7 @@
 				}
 				listGid.add(commonGoods.getGoodsId());
 			}
-			
+
 			// API缃戠粶鎺ュ彛楠岃瘉鏄惁鍦ㄥ敭
 			try {
 				listTaoKeGoods = TaoKeApiUtil.getBatchGoodsInfo(listGid);
@@ -286,27 +290,25 @@
 				e.printStackTrace();
 			}
 		}
-		
-		
-		BigDecimal  rate = manageService.getFanLiRate();
+
+		BigDecimal rate = manageService.getFanLiRate(UserLevelEnum.daRen);
 		Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder())
 				.excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create();
-		
+
 		for (UserGoodsStorage userGoodsStorage : listStorage) {
 			CommonGoods commonGoods = userGoodsStorage.getCommonGoods();
 			if (commonGoods == null) {
 				continue;
 			}
-			
-			
+
 			int state = 0;
 			Integer goodsType = commonGoods.getGoodsType();
-			
-			if (listTaoKeGoods != null && listTaoKeGoods.size() > 0 
-					&& goodsType != null && goodsType == Constant.SOURCE_TYPE_TAOBAO) {
-				state = 1;  // 榛樿鍋滃敭
+
+			if (listTaoKeGoods != null && listTaoKeGoods.size() > 0 && goodsType != null
+					&& goodsType == Constant.SOURCE_TYPE_TAOBAO) {
+				state = 1; // 榛樿鍋滃敭
 				Long goodsId = commonGoods.getGoodsId();
-				for (TaoBaoGoodsBrief taoKeGoods: listTaoKeGoods) {
+				for (TaoBaoGoodsBrief taoKeGoods : listTaoKeGoods) {
 					Long auctionId = taoKeGoods.getAuctionId();
 					if (goodsId == auctionId || goodsId.equals(auctionId)) {
 						state = 0; // 鍦ㄥ敭
@@ -316,7 +318,7 @@
 			}
 			commonGoods.setState(state);
 			TaoBaoGoodsBrief goodsBrief = TaoBaoUtil.convert(commonGoods);
-			
+
 			// 鍒ゆ柇鏄惁宸插垎浜�
 			Integer storageState = userGoodsStorage.getState();
 			if (storageState != null && storageState == UserGoodsStorage.STATE_SHARED) {
@@ -325,19 +327,18 @@
 					goodsBrief.setState(2); // 宸插垎浜姸鎬� 浼樺厛鏄剧ず宸蹭笅鏋�
 				}
 			}
-			
+
 			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);
 		}
-		
+
 		return array;
 	}
-	
-	
+
 	@Override
 	public boolean isExistStorage(Long uid, Long auctionId, Integer goodType) {
 		boolean state = false;
@@ -349,19 +350,19 @@
 		}
 		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) {
+		for (Long sid : listStorageID) {
+			for (UserGoodsStorage torage : listStorage) {
 				Long id = torage.getId();
 				if (sid == id || sid.equals(id)) {
 					listResult.add(torage);
@@ -369,45 +370,45 @@
 				}
 			}
 		}
-		
+
 		BigDecimal totalMoney = new BigDecimal(0.00);
 		List<TaoBaoGoodsBrief> listGoodsBrief = new ArrayList<TaoBaoGoodsBrief>();
-		
-		BigDecimal rate = hongBaoManageService.getShareRate();
-		for (UserGoodsStorage userGoodsStorage: listResult) {
+
+		BigDecimal rate = hongBaoManageService.getShareRate(UserLevelEnum.daRen);
+		for (UserGoodsStorage userGoodsStorage : listResult) {
 			CommonGoods commonGoods = userGoodsStorage.getCommonGoods();
 			TaoBaoGoodsBrief goodsBrief = TaoBaoUtil.convert(commonGoods);
 			listGoodsBrief.add(goodsBrief);
-			
+
 			BigDecimal money = TaoBaoUtil.getGoodsHongBaoMoney(goodsBrief, rate);
 			totalMoney = MoneyBigDecimalUtil.add(totalMoney, money);
 		}
-		
-		ShareGoodsRecordDTO shareRecord = userShareGoodsRecordService.addRecordGoodsStorage(uid, listGoodsBrief, listStorageID);
+
+		ShareGoodsRecordDTO shareRecord = userShareGoodsRecordService.addRecordGoodsStorage(uid, listGoodsBrief,
+				listStorageID);
 		FileUploadResult uploadResult = new FileUploadResult();
 		uploadResult.setUrl(shareRecord.getSharePictureUrl());
-		
+
 		JSONObject data = new JSONObject();
-		data.put("revenue", listGoodsBrief.size() + "涓晢鍝侀浼板垎浜閲戯細楼"+totalMoney);
+		data.put("revenue", listGoodsBrief.size() + "涓晢鍝侀浼板垎浜閲戯細楼" + totalMoney);
 		data.put("shareId", shareRecord.getRedisKey());
 		data.put("shareImg", uploadResult);
-		data.put("notifyDesc", configService.get("goods_share_multiple_notify"));
+		data.put("notifyDesc", configService.get(ConfigKeyEnum.goodsShareMultipleNotify.getKey()));
 		return data;
 	}
-	
-	
-	
+
 	@Override
-	public JSONObject createShareV2(Long uid, List<Long> listStorageID) throws UserGoodsStorageException, UserShareGoodsRecordException {
+	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) {
+		for (Long sid : listStorageID) {
+			for (UserGoodsStorage torage : listStorage) {
 				Long id = torage.getId();
 				if (sid == id || sid.equals(id)) {
 					listResult.add(torage);
@@ -415,41 +416,42 @@
 				}
 			}
 		}
-		
+
 		BigDecimal totalMoney = new BigDecimal(0.00);
 		List<CommonGoods> listCommonGoods = new ArrayList<CommonGoods>();
-		
+
 		Integer goodsType = null;
-		BigDecimal rate = hongBaoManageService.getShareRate();
-		for (UserGoodsStorage userGoodsStorage: listResult) {
+		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);
+
+		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("revenue", listCommonGoods.size() + "涓晢鍝侀浼板垎浜閲戯細楼" + totalMoney);
 		data.put("shareId", shareRecord.getRedisKey());
 		data.put("shareImg", uploadResult);
-		
+
 		// 鎻愮ず璇笉鍚�
 		if (goodsType == Constant.SOURCE_TYPE_JD) {
 			// 浜笢
-			data.put("notifyDesc", configService.get("goods_share_notify_jd"));
+			data.put("notifyDesc", configService.get(ConfigKeyEnum.goodsShareNotifyJD.getKey()));
 		} else if (goodsType == Constant.SOURCE_TYPE_PDD) {
 			// 鎷煎澶�
-			data.put("notifyDesc", configService.get("goods_share_notify_pdd"));
+			data.put("notifyDesc", configService.get(ConfigKeyEnum.goodsShareNotifyPDD.getKey()));
 		} else {
-			data.put("notifyDesc", configService.get("goods_share_multiple_notify"));
+			data.put("notifyDesc", configService.get(ConfigKeyEnum.goodsShareMultipleNotify.getKey()));
 		}
 		return data;
 	}

--
Gitblit v1.8.0