From d28bed1a1275131a5ca37f7da37961e2b518ac07 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期一, 26 八月 2019 13:44:00 +0800 Subject: [PATCH] 淘礼金创建异常处理 --- fanli/src/main/java/com/yeshi/fanli/service/impl/dynamic/DynamicInfoServiceImpl.java | 106 +++++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 78 insertions(+), 28 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 59636a0..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; @@ -479,23 +482,23 @@ } catch (Exception e) { } - + TaoBaoGoodsBrief taoBaoGoodsBrief = TaoBaoUtil.convert(daTaoKe); BigDecimal proportion = hongBaoManageService.getFanLiRate(); - TaoBaoGoodsBriefExtra goodsExtra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, - proportion.toString(), null); - + TaoBaoGoodsBriefExtra goodsExtra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, proportion.toString(), + null); + if (!goodsExtra.isCoupon() || (goodsExtra.getState() != null && goodsExtra.getState() == 1)) { - return addSuccess; // 宸蹭笅鏋� 銆佹棤鍒� 涓嶅姞鍏� + return addSuccess; // 宸蹭笅鏋� 銆佹棤鍒� 涓嶅姞鍏� } - + List<TaoBaoGoodsBrief> listGoods = new ArrayList<TaoBaoGoodsBrief>(); listGoods.add(taoBaoGoodsBrief); - + goodsExtra.setTkRate(taoBaoGoodsBrief.getTkRate()); goodsExtra.setUpdatetime(new Date()); goodsExtra.setCouponInfo(null); - + GoodsPicture goodsPicture = getGoodsPicture(daTaoKe); goodsPicture.setGoods(goodsExtra); // 鍟嗗搧鍒楄〃 @@ -527,7 +530,7 @@ } } goodsExtra.setImgList(imgList); - + // 鍒嗕韩濂栭噾 BigDecimal shareMoney = taoBaoGoodsBriefService.getShareGoodsUserHongBao(taoBaoGoodsBrief); ClientTextStyleVO shareMoneyDesc = new ClientTextStyleVO(); @@ -556,7 +559,7 @@ // 淇濆瓨淇℃伅 dynamicInfoDao.insert(dynamicInfo); - + addSuccess = true; return addSuccess; } @@ -915,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") 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); @@ -933,7 +971,7 @@ e.printStackTrace(); continue; } - + // 搴楅摵淇℃伅 TaoBaoShop shop = dynamicNew.getShop(); if (shop != null) { @@ -952,17 +990,19 @@ } 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; } - + + taoBaoGoodsUpdateList.add(goods); + GoodsPicture goodsNew = new GoodsPicture(); try { PropertyUtils.copyProperties(goodsNew, goodsPicture); @@ -970,19 +1010,28 @@ e.printStackTrace(); continue; } - - GoodsDetailVO detailVO = GoodsDetailVOFactory.convertTaoBaoGoodsBriefExtra(goods, fanLiRate, shareRate); + + // 杩囨护鍒镐俊鎭笌璧勯噾淇℃伅 + 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) { goodsNew.setJumpDetail(jumpDetailV2); } } - + imgsNew.add(goodsNew); } dynamicNew.setImgs(imgsNew); @@ -990,7 +1039,7 @@ listNew.add(dynamicNew); } } - + // 鏇存柊鍟嗗搧淇℃伅 executor.execute(new Runnable() { @Override @@ -998,9 +1047,10 @@ updateGoodInfo(list); } }); + + taoBaoGoodsUpdateService.addUpdateQueueAsync(taoBaoGoodsUpdateList); return listNew; } - /** * 鏇存柊鍟嗗搧淇℃伅 @@ -1013,7 +1063,7 @@ if (list == null || list.size() == 0) { return; } - + try { BigDecimal proportion = hongBaoManageService.getFanLiRate(); for (DynamicInfo dynamicInfo : list) { @@ -1110,16 +1160,16 @@ dynamicInfo.setDesc(shareMoneyDesc); } } - + // 闇�瑕佹洿鏂颁俊鎭紱 needUpdate = true; } - + // 鏃犳晥鏇存柊淇℃伅 if (!needUpdate) { continue; } - + // 鏇存柊鍟嗗搧淇℃伅 dynamicInfo.setImgs(listPicture); -- Gitblit v1.8.0