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 | 934 +++++++++++++++++++++++++++++++++------------------------- 1 files changed, 529 insertions(+), 405 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 6e2cf5f..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,405 +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.brand.BrandShopCahe; -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 shopKey = record.getShopKey(); - if (StringUtil.isNullOrEmpty(shopKey)) - record.setShopKey(name); - - 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 (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); - } else { - 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); - - List<BrandShopCahe> listshop = brandShopCaheService.getByBrandId(record.getId()); - if (listshop == null) { - record.setShopTotal(0); - } else { - record.setShopTotal(listshop.size()); - } - 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); - - 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()); - } - - brandInfoMapper.updateByPrimaryKeySelective(updateInfo); - } - } - - - @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()); - - List<BrandShopCahe> listshop = brandShopCaheService.getByBrandId(brandInfo.getId()); - if (listshop == null) { - brandInfo.setShopTotal(0); - } else { - brandInfo.setShopTotal(listshop.size()); - } - 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+'-'+#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