From 30d8e227e8d823b6c38c3b9c90ac2df03b63befe Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期二, 25 二月 2025 16:41:22 +0800
Subject: [PATCH] 淘宝转链接口更新

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/brand/BrandInfoServiceImpl.java |  878 +++++++++++++++++++++++++++++++++++-----------------------
 1 files changed, 529 insertions(+), 349 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/brand/BrandInfoServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/brand/BrandInfoServiceImpl.java
index 3227405..0c4f825 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/impl/brand/BrandInfoServiceImpl.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/brand/BrandInfoServiceImpl.java
@@ -1,349 +1,529 @@
-package com.yeshi.fanli.service.impl.brand;
-
-import java.io.InputStream;
-import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.UUID;
-
-import javax.annotation.Resource;
-
-import org.springframework.cache.annotation.Cacheable;
-import org.springframework.core.task.TaskExecutor;
-import org.springframework.stereotype.Service;
-import org.springframework.web.multipart.MultipartFile;
-import org.yeshi.utils.tencentcloud.COSManager;
-
-import com.yeshi.fanli.dao.brand.BrandShopCaheDao;
-import com.yeshi.fanli.dao.mybatis.brand.BrandInfoMapper;
-import com.yeshi.fanli.dto.ConfigParamsDTO;
-import com.yeshi.fanli.dto.pdd.PDDGoodsDetail;
-import com.yeshi.fanli.entity.brand.BrandGoodsCahe;
-import com.yeshi.fanli.entity.brand.BrandInfo;
-import com.yeshi.fanli.entity.jd.JDGoods;
-import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
-import com.yeshi.fanli.entity.taobao.TaoBaoShop;
-import com.yeshi.fanli.exception.brand.BrandInfoException;
-import com.yeshi.fanli.service.inter.brand.BrandClassShopService;
-import com.yeshi.fanli.service.inter.brand.BrandGoodsCaheService;
-import com.yeshi.fanli.service.inter.brand.BrandInfoService;
-import com.yeshi.fanli.service.inter.brand.BrandShopCaheService;
-import com.yeshi.fanli.service.inter.goods.TaoBaoGoodsBriefService;
-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.util.Constant;
-import com.yeshi.fanli.util.StringUtil;
-import com.yeshi.fanli.util.factory.goods.GoodsDetailVOFactory;
-import com.yeshi.fanli.vo.brand.BrandInfoVO;
-import com.yeshi.fanli.vo.brand.TaoBaoShopVO;
-import com.yeshi.fanli.vo.goods.GoodsDetailVO;
-
-@Service
-public class BrandInfoServiceImpl implements BrandInfoService {
-
-	@Resource
-	private BrandInfoMapper brandInfoMapper;
-
-	@Resource
-	private HongBaoManageService hongBaoManageService;
-
-	@Resource
-	private QualityGoodsService qualityGoodsService;
-
-	@Resource
-	private TaoBaoGoodsBriefService taoBaoGoodsBriefService;
-
-	@Resource
-	private TaoBaoGoodsUpdateService taoBaoGoodsUpdateService;
-
-	@Resource
-	private BrandClassShopService brandClassShopService;
-
-	@Resource
-	private BrandShopCaheDao brandShopCaheDao;
-
-	@Resource
-	private BrandGoodsCaheService brandGoodsCaheService;
-
-	@Resource
-	private BrandShopCaheService brandShopCaheService;
-
-	@Resource(name = "taskExecutor")
-	private TaskExecutor executor;
-	
-	
-	@Override
-	public void saveObject(MultipartFile file, BrandInfo record) throws BrandInfoException {
-		String name = record.getName();
-		if (StringUtil.isNullOrEmpty(name))
-			throw new BrandInfoException(1, "鍚嶇О涓嶈兘涓虹┖");
-
-		String searchKey = record.getSearchKey();
-		if (StringUtil.isNullOrEmpty(searchKey))
-			record.setSearchKey(name);
-		
-		Integer state = record.getState();
-		if (state == null)
-			record.setState(0);
-		
-		// 鍥剧墖涓婁紶
-		String picture = null;
-		if (file != null) {
-			try {
-				picture = uploadPicture(file);
-			} catch (Exception e) {
-				throw new BrandInfoException(1, "鍥剧墖涓婁紶澶辫触");
-			}
-		}
-
-		Long id = record.getId();
-		if (id == null) {
-			record.setCreateTime(new Date());
-			record.setUpdateTime(new Date());
-			brandInfoMapper.insert(record);
-		} else {
-			BrandInfo resultObj = brandInfoMapper.selectByPrimaryKey(id);
-			if (resultObj == null)
-				throw new BrandInfoException(1, "淇敼鍐呭宸蹭笉瀛樺湪");
-
-			if (picture != null && picture.trim().length() > 0) {
-				// 鍒犻櫎鑰佸浘
-				if (picture != null && picture.trim().length() > 0 && !Constant.IS_TEST) {
-					COSManager.getInstance().deleteFile(picture);
-				};
-				// 瀛樺偍鏂板浘
-				record.setIcon(picture);
-			} else {
-				record.setIcon(resultObj.getIcon());
-			}
-			
-			record.setGoodsTotal(resultObj.getGoodsTotal());
-			record.setCreateTime(resultObj.getCreateTime());
-			record.setUpdateTime(new Date());
-			brandInfoMapper.updateByPrimaryKey(record);
-			
-			
-			if (state == 0){
-				executor.execute(new Runnable() {
-					@Override
-					public void run() {
-						brandGoodsCaheService.removeByBrandId(id);
-						brandShopCaheService.removeByBrandId(id);
-					}
-				});
-			}
-		}
-
-		if (state == 1) {
-			executor.execute(new Runnable() {
-				@Override
-				public void run() {
-					int goodsTotal = brandGoodsCaheService.addBrandGoods(record);
-					record.setGoodsTotal(goodsTotal);
-					brandInfoMapper.updateByPrimaryKeySelective(record);
-				}
-			});
-		}
-	}
-
-	
-	/**
-	 * 涓婁紶鍥剧墖
-	 * @param file
-	 * @return
-	 * @throws Exception
-	 */
-	public String uploadPicture(MultipartFile file) throws Exception {
-		
-		// 鏂囦欢瑙f瀽 
-		InputStream inputStream = file.getInputStream();
-		String contentType = file.getContentType();
-		String type = contentType.substring(contentType.indexOf("/") + 1);
-	
-		// 鏂囦欢璺緞
-		String filePath="/img/brand/"+UUID.randomUUID().toString().replace("-", "") + "." + type;
-		// 鎵ц涓婁紶
-		String fileLink= COSManager.getInstance().uploadFile(inputStream, filePath).getUrl();
-		
-		return fileLink;
-	}
-	
-	@Override
-	public int deleteBatchByPrimaryKey(List<Long> list) {
-		executor.execute(new Runnable() {
-			@Override
-			public void run() {
-				for (Long id: list) {
-					brandGoodsCaheService.removeByBrandId(id);
-					brandShopCaheService.removeByBrandId(id);
-				}
-			}
-		});
-		
-		return brandInfoMapper.deleteBatchByPrimaryKey(list);
-	}
-
-	@Override
-	public List<BrandInfo> listQuery(long start, int count, String key, Long cid, Integer state) {
-		return brandInfoMapper.listQuery(start, count, key, cid, state);
-	}
-
-	@Override
-	public long countQuery(String key, Long cid, Integer state) {
-		return brandInfoMapper.countQuery(key, cid, state);
-	}
-
-	@Override
-	@Cacheable(value = "brandCache", key = "'listValidBrandInfoCache-'+#cid")
-	public List<BrandInfo> listValidBrandInfoCache(Long cid) {
-		List<BrandInfo> listInfo = new ArrayList<BrandInfo>();
-
-		List<TaoBaoShop> listShop = brandClassShopService.listEffectiveClassShop(cid);
-		if (listShop == null || listShop.size() == 0)
-			return listInfo;
-		for (TaoBaoShop taoBaoShop : listShop) {
-			BrandInfo brandInfo = new BrandInfo();
-			brandInfo.setId(taoBaoShop.getId());
-			brandInfo.setName(taoBaoShop.getShopName());
-			brandInfo.setIcon(taoBaoShop.getShopIcon());
-			listInfo.add(brandInfo);
-		}
-		return listInfo;
-	}
-
-	@Override
-	@Cacheable(value = "brandCache", key = "'listBrandInfoCache-'+#start+'-'+#start +'-'+#cid")
-	public List<BrandInfoVO> listBrandInfoCache(long start, int count, Long cid) {
-		List<BrandInfoVO> listInfo = new ArrayList<BrandInfoVO>();
-
-		List<TaoBaoShopVO> listShop = brandClassShopService.listEffectiveShop(start, count, cid);
-		if (listShop == null || listShop.size() == 0)
-			return listInfo;
-
-		for (TaoBaoShopVO taoBaoShopVO : listShop) {
-			String shopNameCustom = taoBaoShopVO.getShopNameCustom();
-			if (!StringUtil.isNullOrEmpty(shopNameCustom)) {
-				taoBaoShopVO.setShopName(shopNameCustom);
-			}
-			String shopIconCustom = taoBaoShopVO.getShopIconCustom();
-			if (!StringUtil.isNullOrEmpty(shopIconCustom)) {
-				taoBaoShopVO.setShopIcon(shopIconCustom);
-			}
-
-			BrandInfoVO brandInfoVO = new BrandInfoVO();
-			brandInfoVO.setId(taoBaoShopVO.getId());
-			brandInfoVO.setName(taoBaoShopVO.getShopName());
-			brandInfoVO.setIcon(taoBaoShopVO.getShopIcon());
-			brandInfoVO.setListGoods(taoBaoShopVO.getListGoodsVO());
-			listInfo.add(brandInfoVO);
-		}
-		return listInfo;
-	}
-
-	@Override
-	public long countBrandInfo(Long cid) {
-		return brandClassShopService.countBrandShopinfo(cid);
-	}
-
-	
-	@Override
-	public void removeAgoByDate(Date date) {
-		// 鍒犻櫎鍟嗗搧
-		brandGoodsCaheService.removeAgoByDate(date);
-		
-		// 鍒犻櫎搴楅摵
-		brandShopCaheService.removeAgoByDate(date);
-	}
-
-	
-	
-	@Override
-	public void addShopAndGoods(long start, int count) {
-		List<BrandInfo> list = brandInfoMapper.listValidAll(start, count);
-		if (list == null || list.size() == 0)
-			return;
-
-		for (BrandInfo brandInfo : list) {
-			String name = brandInfo.getName();
-			String searchKey = brandInfo.getSearchKey();
-			if (StringUtil.isNullOrEmpty(name) && StringUtil.isNullOrEmpty(searchKey))
-				continue;
-
-			// 娣诲姞鍟嗗搧
-			int goodsTotal = brandGoodsCaheService.addBrandGoods(brandInfo);
-
-			brandInfo.setGoodsTotal(goodsTotal);
-			brandInfo.setUpdateTime(new Date());
-			brandInfoMapper.updateByPrimaryKeySelective(brandInfo);
-		}
-	}
-
-	@Override
-	public long countValidByCid(Long cid) {
-		return brandInfoMapper.countValidByCid(cid);
-	}
-
-	@Override
-	public long countValidByCidToApp(Long cid) {
-		return brandInfoMapper.countValidByCidToApp(cid);
-	}
-
-	@Override
-	@Cacheable(value = "brandCache", key = "'listValidByCidToApp-'+#cid")
-	public List<BrandInfo> listValidByCidToApp(Long cid) {
-		if (cid == null)
-			return null;
-		return brandInfoMapper.listValidByCidToApp(cid);
-	}
-
-	@Cacheable(value = "brandCache", key = "'listValidToApp-'+#start+'-'+#start +'-'+#cid")
-	@Override
-	public List<BrandInfoVO> listValidToApp(long start, int count, Long cid) {
-		List<BrandInfoVO> list = brandInfoMapper.listBrandInfoVO(start, count, cid);
-		if (list == null || list.size() == 0)
-			return null;
-
-		BigDecimal fanLiRate = hongBaoManageService.getFanLiRate();
-		BigDecimal shareRate = hongBaoManageService.getShareRate();
-		ConfigParamsDTO configParamsDTO = new ConfigParamsDTO(fanLiRate, shareRate, Constant.MAX_REWARD_RATE);
-		List<BrandInfoVO> listInfo = new ArrayList<BrandInfoVO>();
-		for (int i = 0; i < list.size(); i++) {
-			BrandInfoVO brand = list.get(i);
-			if (brand == null)
-				continue;
-			
-			List<BrandGoodsCahe> listGoods = brandGoodsCaheService.getByBrandId(1, 3, brand.getId());
-			if (listGoods == null || listGoods.size() < 3)
-				continue;
-
-			List<GoodsDetailVO> listGoodsVO = new ArrayList<GoodsDetailVO>();
-			for (BrandGoodsCahe brandGoods : listGoods) {
-				JDGoods goodsJD = brandGoods.getGoodsJD();
-				if (goodsJD != null) {
-					listGoodsVO.add(GoodsDetailVOFactory.convertJDGoods(goodsJD, configParamsDTO));
-					continue;
-				}
-
-				TaoBaoGoodsBrief goodsTB = brandGoods.getGoodsTB();
-				if (goodsTB != null) {
-					listGoodsVO.add(GoodsDetailVOFactory.convertTaoBao(goodsTB, configParamsDTO));
-					continue;
-				}
-
-				PDDGoodsDetail goodsPDD = brandGoods.getGoodsPDD();
-				if (goodsPDD != null) {
-					listGoodsVO.add(GoodsDetailVOFactory.convertPDDGoods(goodsPDD, configParamsDTO));
-					continue;
-				}
-			}
-
-			if (listGoodsVO.size() >= 3) {
-				brand.setListGoods(listGoodsVO);
-				listInfo.add(brand);
-			}
-		}
-		return listInfo;
-	}
-}
+package com.yeshi.fanli.service.impl.brand;
+
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.UUID;
+
+import javax.annotation.Resource;
+
+import com.yeshi.fanli.entity.SystemEnum;
+import org.springframework.cache.annotation.Cacheable;
+import org.springframework.core.task.TaskExecutor;
+import org.springframework.stereotype.Service;
+import org.springframework.web.multipart.MultipartFile;
+import org.yeshi.utils.tencentcloud.COSManager;
+
+import com.yeshi.fanli.dao.mybatis.brand.BrandInfoMapper;
+import com.yeshi.fanli.dto.GoodsMoneyConfigParamsDTO;
+import com.yeshi.fanli.dto.pdd.PDDGoodsDetail;
+import com.yeshi.fanli.entity.brand.BrandClass;
+import com.yeshi.fanli.entity.brand.BrandGoodsCahe;
+import com.yeshi.fanli.entity.brand.BrandInfo;
+import com.yeshi.fanli.entity.brand.BrandShopCahe;
+import com.yeshi.fanli.entity.jd.JDGoods;
+import com.yeshi.goods.facade.entity.taobao.TaoBaoGoodsBrief;
+import com.yeshi.common.entity.taobao.TaoBaoShop;
+import com.yeshi.fanli.exception.brand.BrandInfoException;
+import com.yeshi.fanli.log.LogHelper;
+import com.yeshi.fanli.service.inter.brand.BrandClassShopService;
+import com.yeshi.fanli.service.inter.brand.BrandGoodsCaheService;
+import com.yeshi.fanli.service.inter.brand.BrandInfoService;
+import com.yeshi.fanli.service.inter.brand.BrandShopCaheService;
+import com.yeshi.fanli.service.inter.order.OrderHongBaoMoneyComputeService;
+import com.yeshi.fanli.util.Constant;
+import com.yeshi.fanli.util.FilePathEnum;
+import com.yeshi.fanli.util.StringUtil;
+import com.yeshi.fanli.util.factory.goods.GoodsDetailVOFactory;
+import com.yeshi.fanli.vo.brand.BrandInfoVO;
+import com.yeshi.fanli.vo.brand.TaoBaoShopVO;
+import com.yeshi.fanli.vo.goods.GoodsDetailVO;
+
+@Service
+public class BrandInfoServiceImpl implements BrandInfoService {
+
+	@Resource
+	private BrandInfoMapper brandInfoMapper;
+
+	@Resource
+	private OrderHongBaoMoneyComputeService orderHongBaoMoneyComputeService;
+
+	@Resource
+	private BrandClassShopService brandClassShopService;
+
+	@Resource
+	private BrandGoodsCaheService brandGoodsCaheService;
+
+	@Resource
+	private BrandShopCaheService brandShopCaheService;
+
+	@Resource(name = "taskExecutor")
+	private TaskExecutor executor;
+
+	@Override
+	public void saveObject(MultipartFile file, BrandInfo record) throws BrandInfoException {
+		String name = record.getName();
+		if (StringUtil.isNullOrEmpty(name))
+			throw new BrandInfoException(1, "鍚嶇О涓嶈兘涓虹┖");
+
+		BrandClass brandClass = record.getBrandClass();
+		if (brandClass == null || brandClass.getId() == null)
+			throw new BrandInfoException(1, "鍒嗙被涓嶈兘涓虹┖");
+
+		BrandInfo existBrand = brandInfoMapper.selectByUniqueName(name.trim(), brandClass.getId(), record.getId());
+		if (existBrand != null)
+			throw new BrandInfoException(1, "璇ュ垎绫讳腑宸插瓨鍦細" + name.trim());
+
+		Integer state = record.getState();
+		if (state == null) {
+			state = 0;
+			record.setState(state);
+		}
+
+		String picture = null;
+		if (file != null) {
+			try { // 鍥剧墖涓婁紶
+				picture = uploadPicture(file);
+			} catch (Exception e) {
+				throw new BrandInfoException(1, "鍥剧墖涓婁紶澶辫触");
+			}
+		}
+
+		String searchKey = record.getSearchKey();
+		if (!StringUtil.isNullOrEmpty(searchKey)) {
+			if (StringUtil.isNullOrEmpty(record.getSearchKeyJD()))
+				record.setSearchKeyJD(searchKey);
+
+			if (StringUtil.isNullOrEmpty(record.getSearchKeyPDD()))
+				record.setSearchKeyPDD(searchKey);
+		}
+
+		String shopKey = record.getShopKey();
+		if (!StringUtil.isNullOrEmpty(shopKey)) {
+			if (StringUtil.isNullOrEmpty(record.getShopKeyJD()))
+				record.setShopKeyJD(shopKey);
+
+			if (StringUtil.isNullOrEmpty(record.getShopKeyPDD()))
+				record.setShopKeyPDD(shopKey);
+		}
+		record.setName(name.trim());
+		record.setUpdateTime(new Date());
+
+		Long id = record.getId();
+		if (id == null) {
+			record.setIcon(picture);
+			record.setWeight(500.00);
+			record.setGoodsTotal(0);
+			record.setShopTotal(0);
+			record.setCreateTime(new Date());
+			brandInfoMapper.insert(record);
+
+			BrandInfo resultObj = new BrandInfo();
+			resultObj.setId(record.getId());
+			resultObj.setOrder(Integer.valueOf(record.getId().toString()));
+			brandInfoMapper.updateByPrimaryKeySelective(resultObj);
+		} else {
+			BrandInfo resultObj = brandInfoMapper.selectByPrimaryKey(id);
+			if (resultObj == null)
+				throw new BrandInfoException(1, "淇敼鍐呭宸蹭笉瀛樺湪");
+
+			if (picture != null && picture.trim().length() > 0) {
+				// 鍒犻櫎鑰佸浘
+				if (resultObj.getIcon() != null && resultObj.getIcon().trim().length() > 0 && !Constant.IS_TEST) {
+					COSManager.getInstance().deleteFile(resultObj.getIcon());
+				}
+				;
+				// 瀛樺偍鏂板浘
+				record.setIcon(picture);
+			} else {
+				record.setIcon(resultObj.getIcon());
+			}
+
+			if (state == 0) {
+				record.setGoodsTotal(0);
+				record.setShopTotal(0);
+			} else {
+				record.setGoodsTotal(resultObj.getGoodsTotal());
+				record.setShopTotal(resultObj.getShopTotal());
+			}
+			record.setOrder(resultObj.getOrder());
+			record.setWeight(resultObj.getWeight());
+			record.setCreateTime(resultObj.getCreateTime());
+			brandInfoMapper.updateByPrimaryKey(record);
+
+			if (state == 0) {
+				executor.execute(new Runnable() {
+					@Override
+					public void run() {
+						brandGoodsCaheService.removeByBrandId(id);
+						brandShopCaheService.removeByBrandId(id);
+					}
+				});
+			}
+		}
+
+		if (state == 1) {
+			executor.execute(new Runnable() {
+				@Override
+				public void run() {
+					BrandInfo numInfo = brandGoodsCaheService.addBrandGoods(record, SystemEnum.blks);
+
+					BrandInfo update = new BrandInfo();
+					update.setId(record.getId());
+					update.setGoodsTotal(numInfo.getGoodsTotal());
+					update.setShopTotal(numInfo.getShopTotal());
+					brandInfoMapper.updateByPrimaryKeySelective(update);
+				}
+			});
+		}
+	}
+
+	/**
+	 * 涓婁紶鍥剧墖
+	 * 
+	 * @param file
+	 * @return
+	 * @throws Exception
+	 */
+	public String uploadPicture(MultipartFile file) throws Exception {
+		// 鏂囦欢瑙f瀽
+		InputStream inputStream = file.getInputStream();
+		String contentType = file.getContentType();
+		String type = contentType.substring(contentType.indexOf("/") + 1);
+
+		// 鏂囦欢璺緞
+		String filePath = FilePathEnum.brand.getPath() + UUID.randomUUID().toString().replace("-", "") + "." + type;
+		// 鎵ц涓婁紶
+		return COSManager.getInstance().uploadFile(inputStream, filePath).getUrl();
+	}
+
+	
+	@Override
+	public void switchState(Long id) throws BrandInfoException {
+		if (id == null) {
+			throw new BrandInfoException(1, "璇蜂紶閫掓纭弬鏁�");
+		}
+		BrandInfo resultObj = brandInfoMapper.selectByPrimaryKey(id);
+		if (resultObj == null) {
+			throw new BrandInfoException(1, "姝ゅ唴瀹瑰凡涓嶅瓨鍦�");
+		}
+		
+		Integer state = resultObj.getState();
+		if (state == null || state == 0) {
+			state = 1;
+		} else {
+			state = 0;
+		}
+		
+		BrandInfo updateObj = new BrandInfo();
+		updateObj.setId(id);
+		updateObj.setState(state);
+		brandInfoMapper.updateByPrimaryKeySelective(updateObj);
+	}
+	
+	
+	@Override
+	public int deleteBatchByPrimaryKey(List<Long> list) {
+		executor.execute(new Runnable() {
+			@Override
+			public void run() {
+				for (Long id : list) {
+					brandGoodsCaheService.removeByBrandId(id);
+					brandShopCaheService.removeByBrandId(id);
+				}
+			}
+		});
+
+		return brandInfoMapper.deleteBatchByPrimaryKey(list);
+	}
+
+	@Override
+	public void updateOrder(Long id, Integer moveType) throws BrandInfoException {
+		if (moveType == null || (!moveType.equals(1) && !moveType.equals(-1)))
+			throw new BrandInfoException(1, "浼犻�掔殑绫诲瀷涓嶆纭�");
+
+		if (id == null)
+			throw new BrandInfoException(1, "ID涓嶈兘涓虹┖");
+
+		BrandInfo resultObj = brandInfoMapper.selectByPrimaryKey(id);
+		if (resultObj == null)
+			throw new BrandInfoException(1, "鎿嶄綔鏁版嵁宸蹭笉瀛樺湪");
+
+		Integer oldOrder = resultObj.getOrder();
+		BrandInfo changeObj = brandInfoMapper.getByAdjoinOrder(resultObj.getBrandClass().getId(), oldOrder, moveType);
+		if (changeObj == null)
+			throw new BrandInfoException(1, "宸茬粡鍦ㄦ渶杈圭紭锛屾棤鍙氦鎹㈢殑浣嶇疆");
+
+		BrandInfo changeObj1 = new BrandInfo();
+		changeObj1.setId(id);
+		changeObj1.setOrder(changeObj.getOrder());
+
+		BrandInfo changeObj2 = new BrandInfo();
+		changeObj2.setId(changeObj.getId());
+		changeObj2.setOrder(oldOrder);
+
+		brandInfoMapper.updateByPrimaryKeySelective(changeObj1);
+		brandInfoMapper.updateByPrimaryKeySelective(changeObj2);
+	}
+
+	@Override
+	public List<BrandInfo> listQuery(long start, int count, List<String> keys, Long cid, Integer state,
+			Integer showState) {
+		return brandInfoMapper.listQuery(start, count, keys, cid, state, showState);
+	}
+
+	@Override
+	public long countQuery(List<String> keys, Long cid, Integer state, Integer showState) {
+		return brandInfoMapper.countQuery(keys, cid, state, showState);
+	}
+
+	@Override
+	@Cacheable(value = "brandCache", key = "'listValidBrandInfoCache-'+#cid")
+	public List<BrandInfo> listValidBrandInfoCache(Long cid,SystemEnum system) {
+		List<BrandInfo> listInfo = new ArrayList<BrandInfo>();
+
+		List<TaoBaoShop> listShop = brandClassShopService.listEffectiveClassShop(cid,system);
+		if (listShop == null || listShop.size() == 0)
+			return listInfo;
+		for (TaoBaoShop taoBaoShop : listShop) {
+			BrandInfo brandInfo = new BrandInfo();
+			brandInfo.setId(taoBaoShop.getId());
+			brandInfo.setName(taoBaoShop.getShopName());
+			brandInfo.setIcon(taoBaoShop.getShopIcon());
+			listInfo.add(brandInfo);
+		}
+		return listInfo;
+	}
+
+	@Override
+	@Cacheable(value = "brandCache", key = "'listBrandInfoCache-'+#start+'-'+#start +'-'+#cid+'-'+#platform+'-'+#version+'-'+#system")
+	public List<BrandInfoVO> listBrandInfoCache(long start, int count, Long cid, String platform, String version,SystemEnum system) {
+		List<BrandInfoVO> listInfo = new ArrayList<BrandInfoVO>();
+
+		List<TaoBaoShopVO> listShop = brandClassShopService.listEffectiveShop(start, count, cid, platform, version,system);
+		if (listShop == null || listShop.size() == 0)
+			return listInfo;
+
+		for (TaoBaoShopVO taoBaoShopVO : listShop) {
+			String shopNameCustom = taoBaoShopVO.getShopNameCustom();
+			if (!StringUtil.isNullOrEmpty(shopNameCustom)) {
+				taoBaoShopVO.setShopName(shopNameCustom);
+			}
+			String shopIconCustom = taoBaoShopVO.getShopIconCustom();
+			if (!StringUtil.isNullOrEmpty(shopIconCustom)) {
+				taoBaoShopVO.setShopIcon(shopIconCustom);
+			}
+
+			BrandInfoVO brandInfoVO = new BrandInfoVO();
+			brandInfoVO.setId(taoBaoShopVO.getId());
+			brandInfoVO.setName(taoBaoShopVO.getShopName());
+			brandInfoVO.setIcon(taoBaoShopVO.getShopIcon());
+			brandInfoVO.setListGoods(taoBaoShopVO.getListGoodsVO());
+			listInfo.add(brandInfoVO);
+		}
+		return listInfo;
+	}
+
+	@Override
+	public long countBrandInfo(Long cid) {
+		return brandClassShopService.countBrandShopinfo(cid);
+	}
+
+	@Override
+	public void removeAgoByDate(Date date) {
+		// 鍒犻櫎鍟嗗搧
+		brandGoodsCaheService.removeAgoByDate(date);
+
+		// 鍒犻櫎搴楅摵
+		brandShopCaheService.removeAgoByDate(date);
+
+		long count = brandInfoMapper.countValidByCid(null);
+		if (count == 0)
+			return;
+
+		for (int page = 0; page < (count / 100) + 1; page++) {
+			updateTotalGoods(page * 100, 100);
+		}
+	}
+
+	/**
+	 * 鏇存柊鍟嗗搧鏁伴噺
+	 * 
+	 * @param start
+	 * @param count
+	 */
+	private void updateTotalGoods(long start, int count) {
+		List<BrandInfo> list = brandInfoMapper.listValidAll(start, count);
+		if (list == null || list.size() == 0)
+			return;
+
+		for (BrandInfo brandInfo : list) {
+			long goodsTotal = brandGoodsCaheService.countByBrandId(brandInfo.getId());
+
+			BrandInfo updateInfo = new BrandInfo();
+			updateInfo.setId(brandInfo.getId());
+			updateInfo.setGoodsTotal((int) goodsTotal);
+			List<BrandShopCahe> listshop = brandShopCaheService.getByBrandId(brandInfo.getId());
+			if (listshop == null) {
+				updateInfo.setShopTotal(0);
+			} else {
+				updateInfo.setShopTotal(listshop.size());
+			}
+			updateInfo.setWeight(Math.random() * 1000);
+			brandInfoMapper.updateByPrimaryKeySelective(updateInfo);
+		}
+	}
+
+	@Override
+	public void addShopAndGoods(long start, int count) {
+		List<BrandInfo> list = brandInfoMapper.listValidAll(start, count);
+		addShopAndGoods(list);
+	}
+
+	@Override
+	public void addShopAndGoods(List<BrandInfo> list) {
+		if (list == null || list.size() == 0)
+			return;
+
+		// long startTime = java.lang.System.currentTimeMillis();
+		for (BrandInfo brandInfo : list) {
+			try {
+				String name = brandInfo.getName();
+				String searchKey = brandInfo.getSearchKey();
+				if (StringUtil.isNullOrEmpty(name) && StringUtil.isNullOrEmpty(searchKey))
+					continue;
+				// 娣诲姞鍟嗗搧
+				BrandInfo numInfo = brandGoodsCaheService.addBrandGoods(brandInfo, SystemEnum.blks);
+
+				BrandInfo updateInfo = new BrandInfo();
+				updateInfo.setId(brandInfo.getId());
+				updateInfo.setWeight(Math.random() * 1000);
+				updateInfo.setGoodsTotal(numInfo.getGoodsTotal());
+				updateInfo.setShopTotal(numInfo.getShopTotal());
+				updateInfo.setUpdateTime(new Date());
+				brandInfoMapper.updateByPrimaryKeySelective(updateInfo);
+			} catch (Exception e) {
+				LogHelper.errorDetailInfo(e);
+			}
+		}
+		// long endTime = java.lang.System.currentTimeMillis();
+	}
+
+	@Override
+	public long countValidByCid(Long cid) {
+		return brandInfoMapper.countValidByCid(cid);
+	}
+
+	@Override
+	public long countValidByCidToApp(Long cid, SystemEnum system) {
+		return brandInfoMapper.countValidByCidToApp(cid,system);
+	}
+
+	@Override
+	@Cacheable(value = "brandCache", key = "'listValidByCidToApp-'+#cid+'-'+#system")
+	public List<BrandInfo> listValidByCidToApp(Long cid, SystemEnum system) {
+		if (cid == null)
+			return null;
+		return brandInfoMapper.listValidByCidToApp(cid,system);
+	}
+
+	@Cacheable(value = "brandCache", key = "'listValidToApp-'+#start+'-'+#cid+'-'+#system")
+	@Override
+	public List<BrandInfoVO> listValidToApp(long start, int count, Long cid, String platform, String version,SystemEnum system) {
+		List<BrandInfoVO> list = brandInfoMapper.listBrandInfoVO(start, count, cid,system);
+		if (list == null || list.size() == 0)
+			return null;
+
+		GoodsMoneyConfigParamsDTO configParamsDTO = orderHongBaoMoneyComputeService.getShowComputeRate(platform, version,system);
+
+		List<BrandInfoVO> listInfo = new ArrayList<BrandInfoVO>();
+		for (int i = 0; i < list.size(); i++) {
+			BrandInfoVO brand = list.get(i);
+			if (brand == null)
+				continue;
+
+			List<BrandGoodsCahe> listGoods = brandGoodsCaheService.getByBrandId(1, 3, brand.getId());
+			if (listGoods == null || listGoods.size() < 3)
+				continue;
+
+			List<GoodsDetailVO> listGoodsVO = new ArrayList<GoodsDetailVO>();
+			for (BrandGoodsCahe brandGoods : listGoods) {
+				JDGoods goodsJD = brandGoods.getGoodsJD();
+				if (goodsJD != null) {
+					listGoodsVO.add(GoodsDetailVOFactory.convertJDGoods(goodsJD, configParamsDTO));
+					continue;
+				}
+
+				TaoBaoGoodsBrief goodsTB = brandGoods.getGoodsTB();
+				if (goodsTB != null) {
+					listGoodsVO.add(GoodsDetailVOFactory.convertTaoBao(goodsTB, configParamsDTO));
+					continue;
+				}
+
+				PDDGoodsDetail goodsPDD = brandGoods.getGoodsPDD();
+				if (goodsPDD != null) {
+					listGoodsVO.add(GoodsDetailVOFactory.convertPDDGoods(goodsPDD, configParamsDTO));
+					continue;
+				}
+			}
+
+			if (listGoodsVO.size() >= 3) {
+				brand.setListGoods(listGoodsVO);
+				listInfo.add(brand);
+			}
+		}
+		return listInfo;
+	}
+
+	@Override
+	@Cacheable(value = "brandCache", key = "'listByAlikeName-'+#key+'-'+#platform+'-'+#version+'-'+#system")
+	public BrandInfoVO listByAlikeName(String key, String platform, String version,SystemEnum system) {
+		if (StringUtil.isNullOrEmpty(key))
+			return null;
+
+		List<BrandInfoVO> list = brandInfoMapper.listByAlikeName(key);
+		if (list == null || list.size() == 0)
+			return null;
+
+		GoodsMoneyConfigParamsDTO configParamsDTO = orderHongBaoMoneyComputeService.getShowComputeRate(platform, version, system);
+
+		BrandInfoVO brand = list.get(0);
+		List<BrandGoodsCahe> listGoods = brandGoodsCaheService.getByBrandId(1, 3, brand.getId());
+		if (listGoods == null || listGoods.size() < 3)
+			return null;
+
+		List<GoodsDetailVO> listGoodsVO = new ArrayList<GoodsDetailVO>();
+		for (BrandGoodsCahe brandGoods : listGoods) {
+			JDGoods goodsJD = brandGoods.getGoodsJD();
+			if (goodsJD != null) {
+				listGoodsVO.add(GoodsDetailVOFactory.convertJDGoods(goodsJD, configParamsDTO));
+				continue;
+			}
+
+			TaoBaoGoodsBrief goodsTB = brandGoods.getGoodsTB();
+			if (goodsTB != null) {
+				listGoodsVO.add(GoodsDetailVOFactory.convertTaoBao(goodsTB, configParamsDTO));
+				continue;
+			}
+
+			PDDGoodsDetail goodsPDD = brandGoods.getGoodsPDD();
+			if (goodsPDD != null) {
+				listGoodsVO.add(GoodsDetailVOFactory.convertPDDGoods(goodsPDD, configParamsDTO));
+				continue;
+			}
+		}
+
+		if (listGoodsVO.size() < 3)
+			return null;
+
+		brand.setListGoods(listGoodsVO);
+		return brand;
+	}
+
+	@Override
+	public List<BrandInfo> listValidOrderByUpdateTime(int page, int pageSize) {
+		return brandInfoMapper.listValidAll((page - 1) * pageSize, pageSize);
+	}
+
+}

--
Gitblit v1.8.0