From 9c976c6874f02ab1532c18c6078fd20352011c46 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期五, 16 八月 2019 16:12:21 +0800
Subject: [PATCH] 客户端获取金币事件上传
---
fanli/src/main/java/com/yeshi/fanli/service/impl/dynamic/DynamicInfoServiceImpl.java | 204 +++++++++++++++++++++++++++++++++++---------------
1 files changed, 141 insertions(+), 63 deletions(-)
diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/dynamic/DynamicInfoServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/dynamic/DynamicInfoServiceImpl.java
index bc39fa1..d5df5b2 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/impl/dynamic/DynamicInfoServiceImpl.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/dynamic/DynamicInfoServiceImpl.java
@@ -1,10 +1,13 @@
package com.yeshi.fanli.service.impl.dynamic;
+import java.lang.reflect.InvocationTargetException;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
import java.util.UUID;
import javax.annotation.Resource;
@@ -414,7 +417,12 @@
public void insertTimeHotSale() {
Long classId = 1L;
try {
- saveHotSale(classId, 0L);
+ for (int i = 0; i < 3; i++) {
+ boolean addSuccess = saveHotSale(classId, 0L);
+ if (addSuccess) {
+ break;
+ }
+ }
} catch (Exception e) {
try {
LogHelper.errorDetailInfo(e);
@@ -427,7 +435,12 @@
List<GoodsClass> list = DaTaoKeUtil.goodsClasses;
for (GoodsClass goodsClass : list) {
try {
- saveHotSale(classId, goodsClass.getId());
+ for (int i = 0; i < 3; i++) {
+ boolean addSuccess = saveHotSale(classId, goodsClass.getId());
+ if (addSuccess) {
+ break;
+ }
+ }
} catch (Exception e) {
try {
LogHelper.errorDetailInfo(e);
@@ -445,7 +458,8 @@
* @param subclassId
* @throws TaobaoGoodsDownException
*/
- public void saveHotSale(Long classId, Long subclassId) throws TaobaoGoodsDownException {
+ public boolean saveHotSale(Long classId, Long subclassId) throws TaobaoGoodsDownException {
+ boolean addSuccess = false;
List<Long> listId = null;
List<DynamicInfo> listInfo = dynamicInfoDao.query(classId, subclassId);
if (listInfo != null && listInfo.size() > 0) {
@@ -459,48 +473,37 @@
}
// 澶ф窐瀹㈡暟鎹�
DaTaoKeDetail daTaoKe = daTaoKeGoodsService.getGoodsNotInList(subclassId, listId, 1).get(0);
+ if (daTaoKe == null) {
+ return addSuccess;
+ }
try {
daTaoKe = DaTaoKeUtil.filterDaTaoKe(TaoKeApiUtil.searchGoodsDetail(daTaoKe.getGoodsId()), daTaoKe);
} catch (Exception e) {
}
-
- // 杩囨护涓虹┖鐨�
- if (daTaoKe == null) {
- return;
+
+ TaoBaoGoodsBrief taoBaoGoodsBrief = TaoBaoUtil.convert(daTaoKe);
+ BigDecimal proportion = hongBaoManageService.getFanLiRate();
+ TaoBaoGoodsBriefExtra goodsExtra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, proportion.toString(),
+ null);
+
+ if (!goodsExtra.isCoupon() || (goodsExtra.getState() != null && goodsExtra.getState() == 1)) {
+ return addSuccess; // 宸蹭笅鏋� 銆佹棤鍒� 涓嶅姞鍏�
}
List<TaoBaoGoodsBrief> listGoods = new ArrayList<TaoBaoGoodsBrief>();
- TaoBaoGoodsBrief taoBaoGoodsBrief = TaoBaoUtil.convert(daTaoKe);
listGoods.add(taoBaoGoodsBrief);
- BigDecimal proportion = hongBaoManageService.getFanLiRate();
- TaoBaoGoodsBriefExtra taoBaoGoodsBriefExtra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief,
- proportion.toString(), null);
-
- // 鍟嗗搧鍥剧墖
+ goodsExtra.setTkRate(taoBaoGoodsBrief.getTkRate());
+ goodsExtra.setUpdatetime(new Date());
+ goodsExtra.setCouponInfo(null);
+
GoodsPicture goodsPicture = getGoodsPicture(daTaoKe);
- if (!taoBaoGoodsBriefExtra.isCoupon()) {
- taoBaoGoodsBriefExtra.setState(1);
- goodsPicture.setGoodState(1);
- }
- taoBaoGoodsBriefExtra.setTkRate(taoBaoGoodsBrief.getTkRate());
- taoBaoGoodsBriefExtra.setUpdatetime(new Date());
- taoBaoGoodsBriefExtra.setCouponInfo(null);
- goodsPicture.setGoods(taoBaoGoodsBriefExtra);
-
+ goodsPicture.setGoods(goodsExtra);
// 鍟嗗搧鍒楄〃
List<GoodsPicture> listPicture = new ArrayList<GoodsPicture>();
listPicture.add(goodsPicture);
-
- // 鍒嗕韩濂栭噾
- BigDecimal shareMoney = taoBaoGoodsBriefService.getShareGoodsUserHongBao(taoBaoGoodsBrief);
- ClientTextStyleVO shareMoneyDesc = new ClientTextStyleVO();
- shareMoneyDesc.setColor("#FFFFFF");
- shareMoneyDesc.setBottomColor("#E8AE48");
- shareMoneyDesc.setContent("棰勪及鍒嗕韩濂栭噾锛毬�" + shareMoney);
-
// 鑾峰彇鍟嗗搧鍒楄〃鍥剧墖
TaoBaoGoodsBrief taoBaoGoodsBrief2 = TaoKeApiUtil.getSimpleGoodsInfo(daTaoKe.getGoodsId());
@@ -526,8 +529,14 @@
listPicture.add(picture);
}
}
+ goodsExtra.setImgList(imgList);
- taoBaoGoodsBriefExtra.setImgList(imgList);
+ // 鍒嗕韩濂栭噾
+ BigDecimal shareMoney = taoBaoGoodsBriefService.getShareGoodsUserHongBao(taoBaoGoodsBrief);
+ ClientTextStyleVO shareMoneyDesc = new ClientTextStyleVO();
+ shareMoneyDesc.setColor("#FFFFFF");
+ shareMoneyDesc.setBottomColor("#E8AE48");
+ shareMoneyDesc.setContent("棰勪及鍒嗕韩濂栭噾锛毬�" + shareMoney);
// 缁勭粐鍔ㄦ�佷俊鎭�
DynamicInfo dynamicInfo = getDynamicInfo(daTaoKe, classId, subclassId);
@@ -550,6 +559,9 @@
// 淇濆瓨淇℃伅
dynamicInfoDao.insert(dynamicInfo);
+
+ addSuccess = true;
+ return addSuccess;
}
/**
@@ -906,17 +918,52 @@
return list;
}
-
-
+
+ private Map<Long, TaoBaoGoodsBrief> getFilterGoodsMap(List<DynamicInfo> list) {
+ // 鎻愬彇杩囨护鍟嗗搧
+ List<TaoBaoGoodsBrief> goodsList = new ArrayList<>();
+ for (DynamicInfo dynamicInfo : list) {
+ List<GoodsPicture> gpList = dynamicInfo.getImgs();
+ if (gpList != null)
+ for (GoodsPicture gp : gpList) {
+ if (gp != null && gp.getGoods() != null) {
+ TaoBaoGoodsBriefExtra newGoods = new TaoBaoGoodsBriefExtra();
+ try {
+ PropertyUtils.copyProperties(newGoods, gp.getGoods());
+ goodsList.add(newGoods);
+ } catch (IllegalAccessException e) {
+ e.printStackTrace();
+ } catch (InvocationTargetException e) {
+ e.printStackTrace();
+ } catch (NoSuchMethodException e) {
+ e.printStackTrace();
+ }
+
+ }
+ }
+ }
+ goodsList = taoBaoGoodsUpdateService.filterImportantTaoBaoGoods(goodsList);
+ Map<Long, TaoBaoGoodsBrief> map = new HashMap<>();
+ if (goodsList != null)
+ for (TaoBaoGoodsBrief goods : goodsList)
+ map.put(goods.getAuctionId(), goods);
+ return map;
+ }
+
@Override
-// @Cacheable(value = "dynamicCache", key = "'queryV2-'+#platform+'-'+#version+'-'+#start+'-'+#count+'-'+#cid+'-'+#subId")
+ @Cacheable(value = "dynamicCache", key = "'queryV2-'+#platform+'-'+#version+'-'+#start+'-'+#count+'-'+#cid+'-'+#subId")
public List<DynamicInfo> queryV2(int platform, int version, int start, int count, Long cid, Long subId) {
List<DynamicInfo> listNew = new ArrayList<DynamicInfo>();
List<DynamicInfo> list = dynamicInfoDao.query(start, count, cid, subId);
+ // 闇�瑕佹洿鏂扮殑鍟嗗搧
+ List<TaoBaoGoodsBrief> taoBaoGoodsUpdateList = new ArrayList<>();
if (list != null && list.size() > 0) {
+ // 鎻愬彇鍟嗗搧
+ Map<Long, TaoBaoGoodsBrief> goodsMap = getFilterGoodsMap(list);
+
BigDecimal fanLiRate = hongBaoManageService.getFanLiRate();
BigDecimal shareRate = hongBaoManageService.getShareRate();
- for (DynamicInfo dynamicInfo: list) {
+ for (DynamicInfo dynamicInfo : list) {
DynamicInfo dynamicNew = new DynamicInfo();
try {
PropertyUtils.copyProperties(dynamicNew, dynamicInfo);
@@ -924,45 +971,75 @@
e.printStackTrace();
continue;
}
-
+
+ // 搴楅摵淇℃伅
TaoBaoShop shop = dynamicNew.getShop();
if (shop != null) {
- Integer userType = shop.getUserType();
- if (userType == null || userType == 0) {
- shop.setUserType(10);
- } else {
- shop.setUserType(11);
+ TaoBaoShop shopNew = new TaoBaoShop();
+ try {
+ PropertyUtils.copyProperties(shopNew, shop);
+ } catch (Exception e) {
+ e.printStackTrace();
+ continue;
}
- dynamicNew.setShop(shop);
+ Integer userType = shopNew.getUserType();
+ if (userType == null || userType == 0) {
+ shopNew.setUserType(10);
+ } else {
+ shopNew.setUserType(11);
+ }
+ dynamicNew.setShop(shopNew);
}
-
-
+
+ List<GoodsPicture> imgsNew = new ArrayList<GoodsPicture>();
List<GoodsPicture> imgs = dynamicNew.getImgs();
if (imgs != null && imgs.size() > 0) {
- for (GoodsPicture goodsPicture: imgs) {
+ for (GoodsPicture goodsPicture : imgs) {
TaoBaoGoodsBriefExtra goods = goodsPicture.getGoods();
if (goods == null) {
+ imgsNew.add(goodsPicture);
continue;
}
- GoodsDetailVO detailVO = GoodsDetailVOFactory.convertTaoBaoGoodsBriefExtra(goods, fanLiRate, shareRate);
- goodsPicture.setGoodsVO(detailVO);
- goodsPicture.setGoods(null);
-
- JumpDetailV2 jumpDetail = goodsPicture.getJumpDetail();
+
+ taoBaoGoodsUpdateList.add(goods);
+
+ GoodsPicture goodsNew = new GoodsPicture();
+ try {
+ PropertyUtils.copyProperties(goodsNew, goodsPicture);
+ } catch (Exception e) {
+ e.printStackTrace();
+ continue;
+ }
+
+ // 杩囨护鍒镐俊鎭笌璧勯噾淇℃伅
+ goods.setCouponAmount(goodsMap.get(goods.getAuctionId()).getCouponAmount());
+ goods.setZkPrice(goodsMap.get(goods.getAuctionId()).getZkPrice());
+ goods.setCouponStartFee(goodsMap.get(goods.getAuctionId()).getCouponStartFee());
+ goods.setTkRate(goodsMap.get(goods.getAuctionId()).getTkRate());
+
+ GoodsDetailVO detailVO = GoodsDetailVOFactory.convertTaoBaoGoodsBriefExtra(goods, fanLiRate,
+ shareRate);
+
+ goodsNew.setGoodsVO(detailVO);
+ goodsNew.setGoods(null);
+
+ JumpDetailV2 jumpDetail = goodsNew.getJumpDetail();
if (jumpDetail != null) {
- JumpDetailV2 jumpDetailV2 = jumpDetailV2Service.getByTypeCache(jumpDetail.getType(), platform, version);
+ JumpDetailV2 jumpDetailV2 = jumpDetailV2Service.getByTypeCache(jumpDetail.getType(),
+ platform, version);
if (jumpDetailV2 != null) {
- goodsPicture.setJumpDetail(jumpDetailV2);
+ goodsNew.setJumpDetail(jumpDetailV2);
}
}
+
+ imgsNew.add(goodsNew);
}
+ dynamicNew.setImgs(imgsNew);
}
- dynamicNew.setImgs(imgs);
listNew.add(dynamicNew);
}
}
-
-
+
// 鏇存柊鍟嗗搧淇℃伅
executor.execute(new Runnable() {
@Override
@@ -970,22 +1047,23 @@
updateGoodInfo(list);
}
});
+
+ taoBaoGoodsUpdateService.addUpdateQueueAsync(taoBaoGoodsUpdateList);
return listNew;
}
-
/**
* 鏇存柊鍟嗗搧淇℃伅
*/
public void updateGoodInfo(List<DynamicInfo> list) {
-// if (!Constant.IS_OUTNET) {
-// return; // 澶栫綉杩涜鏇存柊
-// }
+ if (!Constant.IS_OUTNET) {
+ return; // 澶栫綉杩涜鏇存柊
+ }
if (list == null || list.size() == 0) {
return;
}
-
+
try {
BigDecimal proportion = hongBaoManageService.getFanLiRate();
for (DynamicInfo dynamicInfo : list) {
@@ -1082,16 +1160,16 @@
dynamicInfo.setDesc(shareMoneyDesc);
}
}
-
+
// 闇�瑕佹洿鏂颁俊鎭紱
needUpdate = true;
}
-
+
// 鏃犳晥鏇存柊淇℃伅
if (!needUpdate) {
continue;
}
-
+
// 鏇存柊鍟嗗搧淇℃伅
dynamicInfo.setImgs(listPicture);
--
Gitblit v1.8.0