From 28cf328a098334b51a3e9d2d56f983fb8c862211 Mon Sep 17 00:00:00 2001 From: yujian <yujian@163.com> Date: 星期六, 23 五月 2020 09:54:38 +0800 Subject: [PATCH] 足迹、收藏订单兼容新需求 --- fanli/src/main/java/com/yeshi/fanli/service/impl/brand/BrandGoodsCaheServiceImpl.java | 375 +++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 262 insertions(+), 113 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/brand/BrandGoodsCaheServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/brand/BrandGoodsCaheServiceImpl.java index 2178d27..11acae3 100644 --- a/fanli/src/main/java/com/yeshi/fanli/service/impl/brand/BrandGoodsCaheServiceImpl.java +++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/brand/BrandGoodsCaheServiceImpl.java @@ -1,6 +1,5 @@ package com.yeshi.fanli.service.impl.brand; -import java.math.BigDecimal; import java.util.Date; import java.util.List; @@ -12,20 +11,23 @@ import com.yeshi.fanli.dto.jd.JDFilter; import com.yeshi.fanli.dto.jd.JDSearchFilter; import com.yeshi.fanli.dto.jd.JDSearchResult; +import com.yeshi.fanli.dto.jd.JDShopInfo; import com.yeshi.fanli.dto.pdd.PDDGoodsDetail; import com.yeshi.fanli.dto.pdd.PDDGoodsResult; import com.yeshi.fanli.dto.pdd.PDDSearchFilter; 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.system.ConfigKeyEnum; import com.yeshi.fanli.entity.taobao.SearchFilter; import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief; import com.yeshi.fanli.entity.taobao.TaoBaoSearchResult; +import com.yeshi.fanli.log.LogHelper; import com.yeshi.fanli.service.inter.brand.BrandGoodsCaheService; +import com.yeshi.fanli.service.inter.brand.BrandShopCaheService; import com.yeshi.fanli.service.inter.config.ConfigService; import com.yeshi.fanli.service.inter.order.config.HongBaoManageService; -import com.yeshi.fanli.tag.PageEntity; -import com.yeshi.fanli.util.factory.goods.GoodsDetailVOFactory; +import com.yeshi.fanli.util.StringUtil; import com.yeshi.fanli.util.jd.JDApiUtil; import com.yeshi.fanli.util.jd.JDUtil; import com.yeshi.fanli.util.pinduoduo.PinDuoDuoApiUtil; @@ -40,143 +42,290 @@ @Resource private ConfigService configService; - + @Resource private BrandGoodsCaheDao brandGoodsCaheDao; - - + + @Resource + private BrandShopCaheService brandShopCaheService; + @Override - public int addBrandGoods(BrandInfo brandInfo) { - int count = 0; + public BrandInfo addBrandGoods(BrandInfo brandInfo) { // 娣樺疂 - count += addBrandGoodsTB(brandInfo); + BrandInfo goodsTB = addBrandGoodsTB(brandInfo); // 浜笢 - count += addBrandGoodsJD(brandInfo); + BrandInfo goodsJD = addBrandGoodsJD(brandInfo); // 鎷煎澶� - count += addBrandGoodsPDD(brandInfo); - - return count; + BrandInfo goodsPDD = addBrandGoodsPDD(brandInfo); + + int goodsTotal = goodsTB.getGoodsTotal() + goodsJD.getGoodsTotal() + goodsPDD.getGoodsTotal(); + int shopTotal = goodsTB.getShopTotal() + goodsJD.getShopTotal() + goodsPDD.getShopTotal(); + goodsTB.setGoodsTotal(goodsTotal); + goodsTB.setShopTotal(shopTotal); + return goodsTB; } - - + /** * 娣樺疂鍟嗗搧 + * * @param brandInfo * @return */ - private int addBrandGoodsTB(BrandInfo brandInfo) { - SearchFilter filter = new SearchFilter(); - filter.setKey(brandInfo.getName()); - filter.setPage(1); - filter.setPageSize(50); - filter.setTmall(true); - filter.setSort(TaoBaoUtil.SORT_SALE_HIGH_TO_LOW); - TaoBaoSearchResult searchResult = TaoKeApiUtil.searchWuLiao(filter); - if (searchResult == null || searchResult.getTaoBaoGoodsBriefs() == null - || searchResult.getTaoBaoGoodsBriefs().size() == 0) - return 0; - - BigDecimal fanLiRate = hongBaoManageService.getFanLiRate(); - BigDecimal shareRate = hongBaoManageService.getShareRate(); - List<TaoBaoGoodsBrief> listGoods = searchResult.getTaoBaoGoodsBriefs(); - for (TaoBaoGoodsBrief goods: listGoods) { - BrandGoodsCahe brandGoods = new BrandGoodsCahe(); - brandGoods.setBrandId(brandInfo.getId()); - brandGoods.setWeight((int) (Math.random() * 1000)); - brandGoods.setGoods(GoodsDetailVOFactory.convertTaoBao(goods, null, fanLiRate, shareRate)); - brandGoods.setCreateTime(new Date()); - brandGoods.setUpdateTime(new Date()); - brandGoodsCaheDao.save(brandGoods); - } - return listGoods.size(); - } - - - /** - * 浜笢鍟嗗搧 - * - * @param brandInfo - * @return - */ - private int addBrandGoodsJD(BrandInfo brandInfo) { - JDSearchResult result = null; - String way = configService.get("jd_api_search_key"); - if ("1".equals(way)) { - JDFilter filterAPI = new JDFilter(); - filterAPI.setKeyword(SearchFilterUtil.filterSearchContent(brandInfo.getName())); - filterAPI.setPageIndex(1); - filterAPI.setPageSize(100); - filterAPI.setSort(JDFilter.SORT_DESC); - filterAPI.setSortName(JDFilter.SORTNAME_ORDER_COUNT_30DAYS); - result = JDApiUtil.queryByKey(filterAPI); - } else { - // 缃戦〉鐖彇 - JDSearchFilter jdfilter = new JDSearchFilter(); - jdfilter.setKey(SearchFilterUtil.filterSearchContent(brandInfo.getName())); - jdfilter.setPageNo(1); - jdfilter.setPageSize(100); - jdfilter.setSort(JDSearchFilter.SORT_DESC); - jdfilter.setSortName(JDSearchFilter.SORTNAME_ORDER_COUNT_30DAYS); - result = JDUtil.searchByKey(jdfilter); - } + private BrandInfo addBrandGoodsTB(BrandInfo brandInfo) { + Date date = new Date(); + BrandInfo numInfo = new BrandInfo(); + numInfo.setShopTotal(0); + numInfo.setGoodsTotal(0); + try { + String shopKey = brandInfo.getShopKey(); + if (StringUtil.isNullOrEmpty(shopKey)) { + // 鍒犻櫎涔嬪墠鐨� + brandGoodsCaheDao.removeByDate(brandInfo.getId(), 1, date); + // 鍒犻櫎搴楅摵 + brandShopCaheService.removeByDateAndType(brandInfo.getId(), 11, date); - int count = 0; - if (result != null) { - PageEntity pageEntity = result.getPageEntity(); - if (pageEntity != null) { - count = (int) pageEntity.getTotalCount(); + return numInfo; } - List<JDGoods> goodsList = result.getGoodsList(); - if (goodsList != null && goodsList.size() > 0) { - BigDecimal fanLiRate = hongBaoManageService.getFanLiRate(); - BigDecimal shareRate = hongBaoManageService.getShareRate(); - for (JDGoods goods : goodsList) { - BrandGoodsCahe brandGoods = new BrandGoodsCahe(); - brandGoods.setBrandId(brandInfo.getId()); - brandGoods.setWeight((int) (Math.random() * 1000)); - brandGoods.setGoods(GoodsDetailVOFactory.convertJDGoods(goods, fanLiRate, shareRate)); - brandGoods.setCreateTime(new Date()); - brandGoods.setUpdateTime(new Date()); - brandGoodsCaheDao.save(brandGoods); + String searchKey = brandInfo.getSearchKey(); + if (StringUtil.isNullOrEmpty(searchKey)) + searchKey = brandInfo.getName(); + + SearchFilter filter = new SearchFilter(); + filter.setKey(searchKey); + filter.setPage(1); + filter.setPageSize(100); + filter.setTmall(true); + filter.setSort(TaoBaoUtil.SORT_SALE_HIGH_TO_LOW); + TaoBaoSearchResult searchResult = TaoKeApiUtil.searchWuLiao(filter); + + // 鍒犻櫎搴楅摵 + brandShopCaheService.removeByDateAndType(brandInfo.getId(), 11, date); + + // 缁勭粐鍟嗗搧 + 娣诲姞搴楅摵 + int count = 0; + int countShop = 0; + if (searchResult != null && searchResult.getTaoBaoGoodsBriefs() != null + && searchResult.getTaoBaoGoodsBriefs().size() > 0) { + boolean addShop = true; + List<TaoBaoGoodsBrief> listGoods = searchResult.getTaoBaoGoodsBriefs(); + for (TaoBaoGoodsBrief goods : listGoods) { + // 娣诲姞搴楅摵 + String shopTitle = goods.getShopTitle(); + if (addShop && !StringUtil.isNullOrEmpty(shopTitle) && shopTitle.contains("鏃楄埌搴�") + && shopTitle.toLowerCase().contains(shopKey.toLowerCase())) { + addShop = brandShopCaheService.addBrandShopTB(brandInfo, goods.getAuctionId(), + goods.getSellerId()); + + if (!addShop) + countShop = 1; + } + + // 娣诲姞鍟嗗搧 + if (count < 50) { + BrandGoodsCahe brandGoods = new BrandGoodsCahe(); + brandGoods.setBrandId(brandInfo.getId()); + brandGoods.setWeight((int) (Math.random() * 1000)); + brandGoods.setGoodsType(1); + brandGoods.setGoodsTB(goods); + brandGoods.setCreateTime(new Date()); + brandGoodsCaheDao.insert(brandGoods); + count++; + } else if (!addShop) { + break; + } } } + + // 鍒犻櫎涔嬪墠鐨� + brandGoodsCaheDao.removeByDate(brandInfo.getId(), 1, date); + numInfo.setShopTotal(countShop); + numInfo.setGoodsTotal(count); + } catch (Exception e) { + LogHelper.errorDetailInfo(e); } - return count; + return numInfo; } - - + + /** + * 浜笢鍟嗗搧 + * + * @param brandInfo + * @return + */ + private BrandInfo addBrandGoodsJD(BrandInfo brandInfo) { + Date date = new Date(); + BrandInfo numInfo = new BrandInfo(); + numInfo.setShopTotal(0); + numInfo.setGoodsTotal(0); + + try { + String shopKey = brandInfo.getShopKeyJD(); + if (StringUtil.isNullOrEmpty(shopKey)) { + // 鍒犻櫎搴楅摵 + brandShopCaheService.removeByDateAndType(brandInfo.getId(), 20, date); + // 鍒犻櫎涔嬪墠 + brandGoodsCaheDao.removeByDate(brandInfo.getId(), 2, date); + return numInfo; + } + + String searchKey = brandInfo.getSearchKeyJD(); + if (StringUtil.isNullOrEmpty(searchKey)) + searchKey = brandInfo.getName(); + + int count = 0; + int countShop = 0; + JDSearchResult result = null; + String way = configService.get(ConfigKeyEnum.jdApiSearchKey.getKey()); + + // 鍒犻櫎搴楅摵 + brandShopCaheService.removeByDateAndType(brandInfo.getId(), 20, date); + + boolean addShop = true; + for (int i = 0; i < 2; i++) { + if ("1".equals(way)) { + JDFilter filterAPI = new JDFilter(); + filterAPI.setKeyword(SearchFilterUtil.filterSearchContent(searchKey)); + filterAPI.setPageIndex(1); + filterAPI.setPageSize(30); + filterAPI.setSort(JDFilter.SORT_DESC); + filterAPI.setSortName(JDFilter.SORTNAME_ORDER_COUNT_30DAYS); + result = JDApiUtil.queryByKey(filterAPI); + } else { + // 缃戦〉鐖彇 + JDSearchFilter jdfilter = new JDSearchFilter(); + jdfilter.setKey(SearchFilterUtil.filterSearchContent(searchKey)); + jdfilter.setPageNo(1); + jdfilter.setPageSize(30); + jdfilter.setSort(JDSearchFilter.SORT_DESC); + jdfilter.setSortName(JDSearchFilter.SORTNAME_ORDER_COUNT_30DAYS); + result = JDUtil.searchByKey(jdfilter); + } + + if (result != null && result.getGoodsList() != null && result.getGoodsList().size() > 0) { + List<JDGoods> goodsList = result.getGoodsList(); + for (JDGoods goods : goodsList) { + BrandGoodsCahe brandGoods = new BrandGoodsCahe(); + brandGoods.setBrandId(brandInfo.getId()); + brandGoods.setWeight((int) (Math.random() * 1000)); + brandGoods.setGoodsJD(goods); + brandGoods.setGoodsType(2); + brandGoods.setCreateTime(new Date()); + brandGoodsCaheDao.insert(brandGoods); + + JDShopInfo shopInfo = goods.getShopInfo(); + if (addShop && shopInfo != null) { + // 鍖呭惈璇ュ搧鐗屽悕绉� + String shopName = shopInfo.getShopName(); + if (!StringUtil.isNullOrEmpty(shopName) + && shopName.toLowerCase().contains(shopKey.toLowerCase())) { + addShop = false; + brandShopCaheService.addBrandShopJD(brandInfo, shopInfo); + countShop = 1; + } + } + + count++; + if (count >= 50) { + break; + } + } + } + } + // 鍒犻櫎涔嬪墠 + brandGoodsCaheDao.removeByDate(brandInfo.getId(), 2, date); + numInfo.setShopTotal(countShop); + numInfo.setGoodsTotal(count); + } catch (Exception e) { + LogHelper.errorDetailInfo(e); + } + return numInfo; + } + /** * 鎷煎澶氬晢鍝� + * * @param brandInfo * @return */ - private int addBrandGoodsPDD(BrandInfo brandInfo) { - PDDSearchFilter pddfilter = new PDDSearchFilter(); - pddfilter.setKw(brandInfo.getName()); - pddfilter.setPage(1); - pddfilter.setPageSize(50); - pddfilter.setSortType(6); + private BrandInfo addBrandGoodsPDD(BrandInfo brandInfo) { + Date date = new Date(); + BrandInfo numInfo = new BrandInfo(); + numInfo.setShopTotal(0); + numInfo.setGoodsTotal(0); + try { + String shopKey = brandInfo.getShopKeyPDD(); + if (StringUtil.isNullOrEmpty(shopKey)) { + // 鍒犻櫎涔嬪墠 + brandGoodsCaheDao.removeByDate(brandInfo.getId(), 3, date); + // 鍒犻櫎涔嬪墠搴楅摵 + brandShopCaheService.removeByDateAndType(brandInfo.getId(), 30, date); + return numInfo; + } - int count = 0; - PDDGoodsResult result = PinDuoDuoApiUtil.searchGoods(pddfilter); - if (result != null) { - count = result.getTotalCount(); - List<PDDGoodsDetail> goodsList = result.getGoodsList(); - if (goodsList != null && goodsList.size() > 0) { - BigDecimal fanLiRate = hongBaoManageService.getFanLiRate(); - BigDecimal shareRate = hongBaoManageService.getShareRate(); - for (PDDGoodsDetail goods : goodsList) { - BrandGoodsCahe brandGoods = new BrandGoodsCahe(); - brandGoods.setBrandId(brandInfo.getId()); - brandGoods.setWeight((int) (Math.random() * 1000)); - brandGoods.setGoods(GoodsDetailVOFactory.convertPDDGoods(goods, fanLiRate, shareRate)); - brandGoods.setCreateTime(new Date()); - brandGoods.setUpdateTime(new Date()); - brandGoodsCaheDao.save(brandGoods); + String searchKey = brandInfo.getSearchKeyPDD(); + if (StringUtil.isNullOrEmpty(searchKey)) + searchKey = brandInfo.getName(); + + PDDSearchFilter pddfilter = new PDDSearchFilter(); + pddfilter.setKw(searchKey); + pddfilter.setPage(1); + pddfilter.setPageSize(100); + pddfilter.setSortType(6); + PDDGoodsResult result = PinDuoDuoApiUtil.searchGoods(pddfilter); + + int count = 0; + + if (result != null) { + List<PDDGoodsDetail> goodsList = result.getGoodsList(); + if (goodsList != null && goodsList.size() > 0) { + for (PDDGoodsDetail goods : goodsList) { + BrandGoodsCahe brandGoods = new BrandGoodsCahe(); + brandGoods.setBrandId(brandInfo.getId()); + brandGoods.setWeight((int) (Math.random() * 1000)); + brandGoods.setGoodsType(3); + brandGoods.setGoodsPDD(goods); + brandGoods.setCreateTime(new Date()); + brandGoodsCaheDao.insert(brandGoods); + count++; + if (count >= 50) { + break; + } + } } } + // 鍒犻櫎涔嬪墠 + brandGoodsCaheDao.removeByDate(brandInfo.getId(), 3, date); + // 鍒犻櫎涔嬪墠搴楅摵 + brandShopCaheService.removeByDateAndType(brandInfo.getId(), 30, date); + // 娣诲姞搴楅摵 + int countShop = brandShopCaheService.addBrandShopPDD(brandInfo); + + numInfo.setShopTotal(countShop); + numInfo.setGoodsTotal(count); + } catch (Exception e) { + LogHelper.errorDetailInfo(e); } - return count; + return numInfo; + } + + @Override + public List<BrandGoodsCahe> getByBrandId(int start, int count, Long brandId) { + return brandGoodsCaheDao.getByBrandId(start, count, brandId); + } + + @Override + public long countByBrandId(Long brandId) { + return brandGoodsCaheDao.countByBrandId(brandId); + } + + @Override + public void removeAgoByDate(Date createTime) { + brandGoodsCaheDao.removeAgoByDate(createTime); + } + + @Override + public void removeByBrandId(Long brandId) { + brandGoodsCaheDao.removeByBrandId(brandId); } } -- Gitblit v1.8.0