From 51a4ff5d777028d52a19c314a99f796334cb7b51 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期六, 23 十一月 2019 18:30:01 +0800
Subject: [PATCH] 配置文件修改
---
fanli/src/main/java/com/yeshi/fanli/service/impl/taobao/TLJBuyGoodsServiceImpl.java | 119 +++++++++++++++++++++++++++++++++++++++++++++--------------
1 files changed, 91 insertions(+), 28 deletions(-)
diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/taobao/TLJBuyGoodsServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/taobao/TLJBuyGoodsServiceImpl.java
index 9ed676b..d2be2a5 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/impl/taobao/TLJBuyGoodsServiceImpl.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/taobao/TLJBuyGoodsServiceImpl.java
@@ -2,6 +2,8 @@
import java.math.BigDecimal;
import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
@@ -9,6 +11,7 @@
import javax.annotation.Resource;
+import org.springframework.cache.annotation.CacheEvict;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.cache.ehcache.EhCacheCacheManager;
import org.springframework.stereotype.Service;
@@ -17,11 +20,16 @@
import com.yeshi.fanli.dto.taobao.TaoLiJinDTO;
import com.yeshi.fanli.entity.taobao.TLJBuyGoods;
import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
+import com.yeshi.fanli.entity.taobao.TaoBaoUnionConfig;
import com.yeshi.fanli.entity.taobao.TaoKeAppInfo;
import com.yeshi.fanli.entity.taobao.dataoke.DaTaoKeDetailV2;
import com.yeshi.fanli.exception.taobao.TaoKeApiException;
+import com.yeshi.fanli.exception.tlj.TaoLiJinCreateException;
+import com.yeshi.fanli.log.LogHelper;
import com.yeshi.fanli.service.inter.goods.TaoBaoGoodsBriefService;
import com.yeshi.fanli.service.inter.taobao.TLJBuyGoodsService;
+import com.yeshi.fanli.service.inter.taobao.TaoBaoGoodsUpdateService;
+import com.yeshi.fanli.service.inter.taobao.TaoBaoUnionConfigService;
import com.yeshi.fanli.service.inter.taobao.dataoke.DaTaoKeGoodsDetailService;
import com.yeshi.fanli.service.inter.taobao.dataoke.DaTaoKeGoodsDetailV2Service;
import com.yeshi.fanli.util.StringUtil;
@@ -47,6 +55,12 @@
@Resource
private EhCacheCacheManager ehCacheCacheManager;
+ @Resource
+ private TaoBaoGoodsUpdateService taoBaoGoodsUpdateService;
+
+ @Resource
+ private TaoBaoUnionConfigService taoBaoUnionConfigService;
+
@Override
public void addTLJBuyGoods(TLJBuyGoods goods, TaoKeAppInfo taoKeAppInfo) {
if (goods == null || StringUtil.isNullOrEmpty(goods.getDay()) || goods.getGoods() == null)
@@ -56,43 +70,68 @@
goods.setUpdateTime(new Date());
if (taoKeAppInfo != null)
goods.setAppKey(taoKeAppInfo.getAppKey());
+ if (goods.getWeight() == null)
+ goods.setWeight(1);
tljBuyGoodsDao.save(goods);
+ }
+
+ @Override
+ public void addTLJBuyGoods(TLJBuyGoods goods) {
+ List<TaoBaoUnionConfig> configList = taoBaoUnionConfigService
+ .getConfigByTypeCache(TaoBaoUnionConfig.TYPE_TLJ_BUY);
+
+ for (TaoBaoUnionConfig app : configList) {
+ long count = tljBuyGoodsDao.countByDayAndAppKey(app.getAppKey(), goods.getDay());
+ if (count < 12) {
+ addTLJBuyGoods(goods, new TaoKeAppInfo(app.getAppKey(), app.getAppSecret(), app.getDefaultPid()));
+ break;
+ }
+ }
}
@Cacheable(value = "commonContentCache", key = "'tljBuy-listByDay'+#day")
@Override
public List<TLJBuyGoods> listByDay(String day) {
- List<TLJBuyGoods> list = listByDay(day, 30);
- if (list.size() <= 10)
- return list;
- else {
- List<TLJBuyGoods> newList = new ArrayList<>();
- for (int i = 0; i < 10; i++) {
- newList.add(list.get(i));
- }
- return newList;
+ List<TaoBaoUnionConfig> configList = taoBaoUnionConfigService
+ .getConfigByTypeCache(TaoBaoUnionConfig.TYPE_TLJ_BUY);
+ List<TLJBuyGoods> goodsList = new ArrayList<>();
+ for (TaoBaoUnionConfig appInfo : configList) {
+ List<TLJBuyGoods> list = listByDay(appInfo.getAppKey(), day, 10);
+ if (list != null)
+ for (int i = 0; i < list.size(); i++) {
+ // 杩囨护娣樼ぜ閲戝ぇ浜�10鍧楅挶鐨�
+ BigDecimal hongBao = TaoBaoUtil.getGoodsHongBaoMoney(list.get(i).getGoods(),
+ TaoBaoConstant.OWN_BUY_WITHOUT_FANLI_RATE);
+ if (hongBao.compareTo(new BigDecimal(10)) > 0) {
+ list.remove(i--);
+ }
+ }
+
+ if (list != null && list.size() > 0)
+ goodsList.addAll(list);
}
+ Collections.shuffle(goodsList);
+ Comparator<TLJBuyGoods> cm = new Comparator<TLJBuyGoods>() {
+
+ @Override
+ public int compare(TLJBuyGoods o1, TLJBuyGoods o2) {
+ return o1.getWeight() != null && o2.getWeight() != null ? o2.getWeight() - o1.getWeight() : 0;
+ }
+ };
+ Collections.sort(goodsList, cm);
+ return goodsList;
}
@Override
- public List<TLJBuyGoods> listByDay(String day, int count) {
- List<TLJBuyGoods> list = tljBuyGoodsDao.listByDayOrderByUpdateTime(day, 1, count);
+ public List<TLJBuyGoods> listByDay(String appKey, String day, int count) {
+ List<TLJBuyGoods> list = tljBuyGoodsDao.listByDayOrderByUpdateTime(appKey, day, 1, count);
List<TaoBaoGoodsBrief> goodsList = new ArrayList<>();
if (list != null) {
- for (TLJBuyGoods shg : list) {
- // 璁$畻鎺ㄥ箍绾㈠寘
- BigDecimal spreadMoney = TaoBaoUtil.getGoodsHongBaoMoney(shg.getGoods(),
- TaoBaoConstant.OWN_BUY_WITHOUT_FANLI_RATE);
- BigDecimal finalPrice = TaoBaoUtil.getAfterUseCouplePrice(shg.getGoods());
-
- // 鎺ㄥ箍绾㈠寘 涓嶈兘灏忎簬1,浠锋牸涓嶈兘澶т簬30
- if (spreadMoney.compareTo(new BigDecimal(1.0)) < 0 || finalPrice.compareTo(new BigDecimal(30)) >= 0) {
- continue;
- }
-
+ for (TLJBuyGoods shg : list)
goodsList.add(shg.getGoods());
- }
}
+ // 杩囨护鍩烘湰鍟嗗搧淇℃伅
+ goodsList = taoBaoGoodsUpdateService.filterImportantTaoBaoGoods(goodsList);
// 杩囨护涓嬬嚎鍟嗗搧
goodsList = taoBaoGoodsBriefService.filterOffLineGoods(goodsList);
// 娣诲姞澶ф窐瀹俊鎭�
@@ -107,6 +146,15 @@
list.remove(j);
j--;
}
+ }
+
+ // 鍔犲叆鏇存柊闃熷垪
+ //
+ try {
+ for (TLJBuyGoods tljGoods : list)
+ if (tljGoods != null && tljGoods.getGoods() != null && tljGoods.getGoods().getAuctionId() != null)
+ taoBaoGoodsUpdateService.addUpdateQueueAsync(tljGoods.getGoods().getAuctionId());
+ } catch (Exception e) {
}
return list;
}
@@ -133,20 +181,24 @@
}
@Override
- public boolean verifyCanCreateTLJ(Long auctionId) {
+ public boolean verifyCanCreateTLJ(Long auctionId, TaoKeAppInfo app) {
TaoLiJinDTO taoLiJinDTO = null;
try {
taoLiJinDTO = TaoKeApiUtil.createTaoLiJin(auctionId, "娣樼ぜ閲戦獙璇�", new BigDecimal("1.00"), 1, new Date(),
new Date(System.currentTimeMillis() + 1000 * 60 * 60 * 6), new Date(),
- new Date(System.currentTimeMillis() + 1000 * 60 * 60 * 6), TaoBaoConstant.ownBuyApp);
- } catch (TaoKeApiException e) {
- if (e.getCode() == TaoKeApiException.CODE_TLJ_FORBIDDEN) {
+ new Date(System.currentTimeMillis() + 1000 * 60 * 60 * 6), app);
+ } catch (TaoLiJinCreateException e1) {
+ LogHelper.test("鍟嗗搧ID:"+auctionId);
+ LogHelper.test("娣樼ぜ閲戦獙璇佸嚭閿�:"+e1.getMsg());
+
+ if (e1.getCode() == TaoLiJinCreateException.CODE_TLJ_FORBIDDEN) {
// 璇ュ晢鍝佷笉鏀寔鍒涘缓娣樼ぜ閲戠孩鍖�
deleteByGoodsId(auctionId);
return false;
- } else if (e.getCode() == TaoKeApiException.CODE_TLJ_NO_MONEY) {
+ } else if (e1.getCode() == TaoLiJinCreateException.CODE_TLJ_NO_MONEY) {
// 瀹樻柟鐜╂硶閽卞寘浣欓涓嶈冻 TODO
}
+ } catch (TaoKeApiException e) {
}
return true;
}
@@ -201,6 +253,8 @@
TLJBuyGoods.getGoods().setCouponTotalCount(goods.getCouponTotalCount());
TLJBuyGoods.getGoods().setBiz30day(goods.getBiz30day());
TLJBuyGoods.getGoods().setTkRate(goods.getTkRate());
+ TLJBuyGoods.getGoods().setId(goods.getId());
+ TLJBuyGoods.getGoods().setAuctionId(goods.getAuctionId());
tljBuyGoodsDao.save(TLJBuyGoods);
}
}
@@ -217,4 +271,13 @@
public TLJBuyGoods selectByAuctionIdAndDay(Long auctionId, String day) {
return tljBuyGoodsDao.selectByAuctionIdAndDay(auctionId, day);
}
+
+ @Override
+ public void removeGoods(Long auctionId) {
+ tljBuyGoodsDao.deleteByAuctionId(auctionId);
+ // 娓呴櫎鍒楄〃缂撳瓨
+ ehCacheCacheManager.getCache("commonContentCache")
+ .evict("tljBuy-listByDay" + TimeUtil.getGernalTime(System.currentTimeMillis(), "yyyy-MM-dd"));
+ }
+
}
\ No newline at end of file
--
Gitblit v1.8.0