From f4a0f2acc63d7785eab108419a4e16f5f688cb95 Mon Sep 17 00:00:00 2001
From: yujian <yujian@163.com>
Date: 星期六, 18 一月 2020 12:06:27 +0800
Subject: [PATCH] 用户注册信息

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/brand/BrandClassShopServiceImpl.java |  259 +++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 248 insertions(+), 11 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/brand/BrandClassShopServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/brand/BrandClassShopServiceImpl.java
index 597b7df..0cce77d 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/impl/brand/BrandClassShopServiceImpl.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/brand/BrandClassShopServiceImpl.java
@@ -3,7 +3,9 @@
 import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.Date;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 import javax.annotation.Resource;
 
@@ -14,6 +16,7 @@
 import org.yeshi.utils.JsonUtil;
 
 import com.yeshi.fanli.dao.mybatis.brand.BrandClassShopMapper;
+import com.yeshi.fanli.dto.ConfigParamsDTO;
 import com.yeshi.fanli.entity.brand.BrandClass;
 import com.yeshi.fanli.entity.brand.BrandClassShop;
 import com.yeshi.fanli.entity.goods.CommonGoods;
@@ -27,14 +30,17 @@
 import com.yeshi.fanli.service.inter.brand.TaoBaoShopHistoryService;
 import com.yeshi.fanli.service.inter.goods.CommonGoodsService;
 import com.yeshi.fanli.service.inter.goods.TaoBaoGoodsBriefService;
-import com.yeshi.fanli.service.inter.hongbao.HongBaoManageService;
 import com.yeshi.fanli.service.inter.lable.QualityGoodsService;
+import com.yeshi.fanli.service.inter.order.config.HongBaoManageService;
+import com.yeshi.fanli.service.inter.taobao.TaoBaoGoodsUpdateService;
 import com.yeshi.fanli.service.inter.taobao.TaoBaoShopService;
 import com.yeshi.fanli.util.Constant;
 import com.yeshi.fanli.util.StringUtil;
+import com.yeshi.fanli.util.factory.goods.GoodsDetailVOFactory;
 import com.yeshi.fanli.util.taobao.TaoBaoUtil;
 import com.yeshi.fanli.util.taobao.TaoKeApiUtil;
 import com.yeshi.fanli.vo.brand.TaoBaoShopVO;
+import com.yeshi.fanli.vo.goods.GoodsDetailVO;
 
 import net.sf.json.JSONObject;
 
@@ -54,7 +60,7 @@
 	private TaoBaoShopHistoryService taoBaoShopHistoryService;
 
 	@Resource
-	private HongBaoManageService manageService;
+	private HongBaoManageService hongBaoManageService;
 
 	@Resource
 	private QualityGoodsService qualityGoodsService;
@@ -62,13 +68,16 @@
 	@Resource
 	private TaoBaoGoodsBriefService taoBaoGoodsBriefService;
 
+	@Resource
+	private TaoBaoGoodsUpdateService taoBaoGoodsUpdateService;
+
 	@Override
 	public List<BrandClassShop> getExistByShopIds(List<Long> list) {
 		return brandClassShopMapper.getExistByShopIds(list);
 	}
 
 	@Override
-	@Transactional
+	@Transactional(rollbackFor=Exception.class)
 	public String saveShopInfo(Long cid, List<Long> list) throws BrandClassShopException {
 		if (list == null || list.size() == 0) {
 			throw new BrandClassShopException(1, "璇烽�夋嫨搴楅摵");
@@ -82,7 +91,7 @@
 		BrandClass brandClass = new BrandClass(cid);
 
 		for (Long shopId : list) {
-			List<CommonGoods> listGoods = commonGoodsService.listBySellerId(shopId);
+			List<CommonGoods> listGoods = commonGoodsService.listBySellerId(shopId, Constant.SOURCE_TYPE_TAOBAO);
 
 			TaoBaoShop taoBaoShop = null;
 			for (CommonGoods commonGoods : listGoods) {
@@ -125,9 +134,9 @@
 	}
 
 	@Override
-	@Transactional
-	public void changeShopInfo(MultipartFile file, Long id, Long cid, String shopName, Integer state, Integer top)
-			throws BrandClassShopException {
+	@Transactional(rollbackFor=Exception.class)
+	public void changeShopInfo(MultipartFile file, Long id, Long cid, String shopName, Integer state, Integer top,
+			String key) throws BrandClassShopException {
 
 		if (id == null) {
 			throw new BrandClassShopException(1, "鏁版嵁涓虹┖锛氳閫夋嫨搴楅摵");
@@ -148,7 +157,7 @@
 		}
 
 		// 鑷畾涔夊浘鐗�
-		taoBaoShopService.changeInfo(file, shop.getId(), shopName);
+		taoBaoShopService.changeInfo(file, shop.getId(), shopName, key);
 
 		BrandClassShop updateshop = new BrandClassShop();
 		updateshop.setState(state);
@@ -168,7 +177,8 @@
 		for (BrandClassShop brandClassShop : listQuery) {
 			TaoBaoShop shop = brandClassShop.getShop();
 			if (shop != null) {
-				long couponNum = commonGoodsService.countBySellerIdAndHasCoupon(shop.getId());
+				long couponNum = commonGoodsService.countBySellerIdAndHasCoupon(shop.getId(),
+						Constant.SOURCE_TYPE_TAOBAO);
 				brandClassShop.setCouponNum(couponNum);
 
 				String shopLink = shop.getShopLink();
@@ -304,7 +314,10 @@
 			count = taoBaoShopService.countBrandShopinfo(cid);
 		}
 
-		BigDecimal proportion = manageService.getFanLiRate();
+		// 娣樺疂鍟嗗搧淇℃伅杩囨护
+		Map<Long, TaoBaoGoodsBrief> goodsMap = getFilterTaoBaoGoods(listInfo);
+
+		BigDecimal proportion = hongBaoManageService.getFanLiRate();
 		for (TaoBaoShopVO taoBaoShopVO : listInfo) {
 
 			String shopLink = taoBaoShopVO.getShopLink();
@@ -325,9 +338,139 @@
 			List<TaoBaoGoodsBriefExtra> listGoods = new ArrayList<TaoBaoGoodsBriefExtra>();
 			List<TaoBaoGoodsBrief> listGoodsBrief = taoBaoShopVO.getListGoodsBrief();
 			for (TaoBaoGoodsBrief taoBaoGoodsBrief : listGoodsBrief) {
-				listGoods.add(TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, proportion.toString(), null));
+				listGoods.add(TaoBaoUtil.getTaoBaoGoodsBriefExtra(goodsMap.get(taoBaoGoodsBrief.getAuctionId()),
+						proportion.toString(), null));
 			}
 			taoBaoShopVO.setListGoods(listGoods);
+		}
+		data.put("count", count);
+		data.put("list", JsonUtil.getApiCommonGson().toJson(listInfo));
+
+		return data;
+	}
+
+	/**
+	 * 鑾峰彇杩囨护鍟嗗搧
+	 * 
+	 * @param listInfo
+	 * @return
+	 */
+	private Map<Long, TaoBaoGoodsBrief> getFilterTaoBaoGoods(List<TaoBaoShopVO> listInfo) {
+		// 杩囨护鍟嗗搧
+		List<TaoBaoGoodsBrief> goodsList = new ArrayList<>();
+		for (TaoBaoShopVO taoBaoShopVO : listInfo) {
+			goodsList.addAll(taoBaoShopVO.getListGoodsBrief());
+		}
+		goodsList = taoBaoGoodsUpdateService.filterImportantTaoBaoGoods(goodsList);
+		Map<Long, TaoBaoGoodsBrief> goodsMap = new HashMap<>();
+		for (TaoBaoGoodsBrief goods : goodsList)
+			goodsMap.put(goods.getAuctionId(), goods);
+		return goodsMap;
+	}
+
+	@Override
+	@Cacheable(value = "brandCache", key = "'listEffectiveCacheV2-'+#page+'-'+#cid+'-'+#platform+'-'+#version")
+	public JSONObject listEffectiveCacheV2(int page, Long cid,String platform,String version) {
+		long countShop = 0;
+
+		if (cid != null && cid <= 0) {
+			cid = null;
+		}
+
+		List<TaoBaoShop> listShop = new ArrayList<TaoBaoShop>();
+		// 绗竴椤� 鏌ヨ鍏ㄩ儴鍒嗙被涓嬪簵閾�
+		if (page == 1 && cid != null) {
+			List<BrandClassShop> list = brandClassShopMapper.listEffective(cid);
+			if (list == null) {
+				list = new ArrayList<BrandClassShop>();
+			} else if (list.size() > 0) {
+				countShop = brandClassShopMapper.countEffective(cid);
+			}
+
+			for (BrandClassShop brandClassShop : list) {
+				TaoBaoShop shop = brandClassShop.getShop();
+				if (shop != null) {
+
+					Integer userType = shop.getUserType();
+					if (userType == null || userType == 0) {
+						shop.setUserType(10);
+					} else {
+						shop.setUserType(11);
+					}
+
+					String shopLink = shop.getShopLink();
+					if (StringUtil.isNullOrEmpty(shopLink)) {
+						shop.setShopLink(TaoBaoUtil.getShopLink(shop.getId()));
+					}
+
+					String shopNameCustom = shop.getShopNameCustom();
+					if (!StringUtil.isNullOrEmpty(shopNameCustom)) {
+						shop.setShopName(shopNameCustom);
+					}
+
+					String shopIconCustom = shop.getShopIconCustom();
+					if (!StringUtil.isNullOrEmpty(shopIconCustom)) {
+						shop.setShopIcon(shopIconCustom);
+					}
+
+					listShop.add(shop);
+				}
+			}
+		}
+
+		JSONObject data = new JSONObject();
+		data.put("countShop", countShop);
+		data.put("listShop", JsonUtil.getApiCommonGson().toJson(listShop));
+
+		long count = 0;
+		List<TaoBaoShopVO> listInfo = taoBaoShopService.listBrandShopinfo((page - 1) * Constant.PAGE_SIZE,
+				Constant.PAGE_SIZE, cid);
+		if (listInfo == null) {
+			listInfo = new ArrayList<TaoBaoShopVO>();
+		} else if (listInfo.size() > 0) {
+			count = taoBaoShopService.countBrandShopinfo(cid);
+		}
+
+		ConfigParamsDTO paramsDTO = 	hongBaoManageService.getShowComputeRate(platform, version);
+
+		// 娣樺疂鍟嗗搧淇℃伅杩囨护
+		Map<Long, TaoBaoGoodsBrief> goodsMap = getFilterTaoBaoGoods(listInfo);
+
+		for (TaoBaoShopVO taoBaoShopVO : listInfo) {
+
+			Integer userType = taoBaoShopVO.getUserType();
+			if (userType == null || userType == 0) {
+				taoBaoShopVO.setUserType(10);
+			} else {
+				taoBaoShopVO.setUserType(11);
+			}
+
+			String shopLink = taoBaoShopVO.getShopLink();
+			if (StringUtil.isNullOrEmpty(shopLink)) {
+				taoBaoShopVO.setShopLink(TaoBaoUtil.getShopLink(taoBaoShopVO.getId()));
+			}
+
+			String shopNameCustom = taoBaoShopVO.getShopNameCustom();
+			if (!StringUtil.isNullOrEmpty(shopNameCustom)) {
+				taoBaoShopVO.setShopName(shopNameCustom);
+			}
+
+			String shopIconCustom = taoBaoShopVO.getShopIconCustom();
+			if (!StringUtil.isNullOrEmpty(shopIconCustom)) {
+				taoBaoShopVO.setShopIcon(shopIconCustom);
+			}
+
+			List<GoodsDetailVO> listGoods = new ArrayList<GoodsDetailVO>();
+			List<TaoBaoGoodsBrief> listGoodsBrief = taoBaoShopVO.getListGoodsBrief();
+
+			// 鍟嗗搧娣诲姞鍒版洿鏂伴槦鍒�
+			taoBaoGoodsUpdateService.addUpdateQueueAsync(listGoodsBrief);
+			for (TaoBaoGoodsBrief taoBaoGoodsBrief : listGoodsBrief) {
+				GoodsDetailVO goodsDetailVO = GoodsDetailVOFactory
+						.convertTaoBao(goodsMap.get(taoBaoGoodsBrief.getAuctionId()),paramsDTO);
+				listGoods.add(goodsDetailVO);
+			}
+			taoBaoShopVO.setListGoodsVO(listGoods);
 		}
 		data.put("count", count);
 		data.put("list", JsonUtil.getApiCommonGson().toJson(listInfo));
@@ -381,4 +524,98 @@
 
 	}
 
+	
+	@Override
+	public List<TaoBaoShopVO> listEffectiveShop(long start, int count, Long cid,String platform,String version) {
+		if (cid != null && cid <= 0) {
+			cid = null;
+		}
+		
+		List<TaoBaoShopVO> listInfo = taoBaoShopService.listBrandShopinfo(start, count, cid);
+		if (listInfo == null || listInfo.size() == 0)
+			return listInfo;
+		
+
+		ConfigParamsDTO paramsDTO = 
+				hongBaoManageService.getShowComputeRate(platform, version);
+		// 娣樺疂鍟嗗搧淇℃伅杩囨护
+		Map<Long, TaoBaoGoodsBrief> goodsMap = getFilterTaoBaoGoods(listInfo);
+
+		for (TaoBaoShopVO taoBaoShopVO : listInfo) {
+			String shopNameCustom = taoBaoShopVO.getShopNameCustom();
+			if (!StringUtil.isNullOrEmpty(shopNameCustom)) {
+				taoBaoShopVO.setShopName(shopNameCustom);
+			}
+
+			String shopIconCustom = taoBaoShopVO.getShopIconCustom();
+			if (!StringUtil.isNullOrEmpty(shopIconCustom)) {
+				taoBaoShopVO.setShopIcon(shopIconCustom);
+			}
+
+			List<GoodsDetailVO> listGoods = new ArrayList<GoodsDetailVO>();
+			List<TaoBaoGoodsBrief> listGoodsBrief = taoBaoShopVO.getListGoodsBrief();
+			// 鍟嗗搧娣诲姞鍒版洿鏂伴槦鍒�
+			taoBaoGoodsUpdateService.addUpdateQueueAsync(listGoodsBrief);
+			for (TaoBaoGoodsBrief taoBaoGoodsBrief : listGoodsBrief) {
+				GoodsDetailVO goodsDetailVO = GoodsDetailVOFactory
+						.convertTaoBao(goodsMap.get(taoBaoGoodsBrief.getAuctionId()), paramsDTO);
+				listGoods.add(goodsDetailVO);
+			}
+			taoBaoShopVO.setListGoodsVO(listGoods);
+		}
+		return listInfo;
+	}
+
+	
+	@Override
+	public long countBrandShopinfo(Long cid) {
+		if (cid != null && cid <= 0) {
+			cid = null;
+		}
+		return taoBaoShopService.countBrandShopinfo(cid);
+	}
+	
+	
+	
+	@Override
+	public List<TaoBaoShop> listEffectiveClassShop(Long cid) {
+		if (cid == null)
+			return null;
+		
+		List<BrandClassShop> list = brandClassShopMapper.listEffective(cid);
+		if (list == null || list.size() == 0)
+			return null;
+
+	    List<TaoBaoShop> listShop = new ArrayList<TaoBaoShop>();
+		for (BrandClassShop brandClassShop : list) {
+			TaoBaoShop shop = brandClassShop.getShop();
+			if (shop != null) {
+				Integer userType = shop.getUserType();
+				if (userType == null || userType == 0) {
+					shop.setUserType(10);
+				} else {
+					shop.setUserType(11);
+				}
+
+				String shopLink = shop.getShopLink();
+				if (StringUtil.isNullOrEmpty(shopLink)) {
+					shop.setShopLink(TaoBaoUtil.getShopLink(shop.getId()));
+				}
+
+				String shopNameCustom = shop.getShopNameCustom();
+				if (!StringUtil.isNullOrEmpty(shopNameCustom)) {
+					shop.setShopName(shopNameCustom);
+				}
+
+				String shopIconCustom = shop.getShopIconCustom();
+				if (!StringUtil.isNullOrEmpty(shopIconCustom)) {
+					shop.setShopIcon(shopIconCustom);
+				}
+
+				listShop.add(shop);
+			}
+		}
+		return listShop;
+	}
+	
 }

--
Gitblit v1.8.0