From 403ed72427bf91a8cdd5dcbd188dd417ec8b7623 Mon Sep 17 00:00:00 2001 From: yujian <yujian@123.com> Date: 星期三, 15 五月 2019 10:47:40 +0800 Subject: [PATCH] 动态商品更新优化 --- fanli/src/main/java/com/yeshi/fanli/service/impl/dynamic/DynamicInfoServiceImpl.java | 66 +++++++++++++++++++++------------ 1 files changed, 42 insertions(+), 24 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 f656e57..63944ca 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 @@ -10,6 +10,7 @@ import org.springframework.core.task.TaskExecutor; import org.springframework.stereotype.Service; +import org.yeshi.utils.DateUtil; import org.yeshi.utils.taobao.TbImgUtil; import com.yeshi.fanli.dao.dynamic.DynamicInfoDao; @@ -279,8 +280,8 @@ dynamicInfo.setClassId(classId); dynamicInfo.setSubclassId(subclassId); dynamicInfo.setDaTaoKeId(daTaoKe.getId()); - dynamicInfo.setCreateTime(new Date()); - + dynamicInfo.setCreateTime(DateUtil.reduceRandomMinute(new Date())); + dynamicInfo.setUpdateTime(new Date()); // 闅忔満鍒嗕韩娆℃暟 dynamicInfo.setShareCount(1000 + (int) (Math.random() * 8000)); // 闅忔満鍒嗗竷鐢ㄦ埛 @@ -375,14 +376,15 @@ dynamicVO.setClassId(4L); dynamicVO.setSubclassId(0L); dynamicVO.setShareType(DynamicInfo.SHARE_TYPE_INVITE); + dynamicVO.setUpdateTime(new Date()); + if (existInfo != null) { dynamicVO.setCreateTime(existInfo.getCreateTime()); dynamicVO.setShareCount(existInfo.getShareCount()); } else { - dynamicVO.setCreateTime(new Date()); + dynamicVO.setCreateTime(DateUtil.reduceRandomMinute(new Date())); dynamicVO.setShareCount(1000 + (int) (Math.random() * 8000)); } - if (activityUser == null) { dynamicVO.setUser(activityUserService.listRand(1).get(0)); @@ -487,7 +489,8 @@ dynamicVO.setShowType(DynamicInfo.SHOW_TYPE_TWO); dynamicVO.setShop(taoBaoShop); dynamicVO.setUser(activityUserService.listRand(1).get(0)); - dynamicVO.setCreateTime(new Date()); + dynamicVO.setCreateTime(DateUtil.reduceRandomMinute(new Date())); + dynamicVO.setUpdateTime(new Date()); // 浠嬬粛鍐呭 ClientTextStyleVO row1 = new ClientTextStyleVO(); @@ -546,13 +549,33 @@ BigDecimal proportion = hongBaoManageService.getFanLiRate(); for (DynamicInfo dynamicInfo: list) { + // 閭�璇锋暟鎹笉鍋氭洿鏂� + long classId = dynamicInfo.getClassId(); + if (classId == 4) { + break; + } + + // 鏇存柊鍟嗗搧淇℃伅 List<GoodsPicture> imgs = dynamicInfo.getImgs(); if (imgs == null || imgs.size() == 0) { continue; } - boolean isupdate = false; - BigDecimal shareMoney = null; + // 鏄惁涓�涓皬鏃朵箣鍐呭凡鏇存柊 + Date updateTime = dynamicInfo.getUpdateTime(); + if (updateTime != null) { + long nd = 1000 * 24 * 60 * 60;// 涓�澶╃殑姣鏁� + long nh = 1000 * 60 * 60;// 涓�灏忔椂鐨勬绉掓暟 + long diff = System.currentTimeMillis() - updateTime.getTime(); + long day = diff / nd;// 璁$畻宸灏戝ぉ + long hour = diff % nd / nh + day * 24;// 璁$畻宸灏戝皬鏃� + if (hour < 1) { + continue; + } + } + + // 鏇存柊 + BigDecimal shareMoney = new BigDecimal(0); for (GoodsPicture goodsPicture: imgs) { TaoBaoGoodsBriefExtra oldExtra = goodsPicture.getGoods(); if (oldExtra == null) { @@ -564,16 +587,6 @@ continue; } - long nd = 1000 * 24 * 60 * 60;// 涓�澶╃殑姣鏁� - long nh = 1000 * 60 * 60;// 涓�灏忔椂鐨勬绉掓暟 - long diff = System.currentTimeMillis() - oldExtra.getUpdatetime().getTime(); - long day = diff / nd;// 璁$畻宸灏戝ぉ - long hour = diff % nd / nh + day * 24;// 璁$畻宸灏戝皬鏃� - if (hour < 1) { - continue; - } - - isupdate = true; try { TaoBaoGoodsBrief goodsBrief = redisManager.getTaoBaoGoodsBrief(oldExtra.getAuctionId()); TaoBaoGoodsBriefExtra newExtra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(goodsBrief, proportion.toString(), null); @@ -584,8 +597,12 @@ newExtra.setUpdatetime(new Date()); goodsPicture.setGoods(newExtra); - BigDecimal money = taoBaoGoodsBriefService.getShareGoodsUserHongBao(goodsBrief); - shareMoney = MoneyBigDecimalUtil.add(shareMoney, money); + + // 鏇存柊鐑攢鍗曞搧鐨勫垎浜閲� 锛屽叾浣欎笉鍋氭洿鏂� + if (classId == 1) { + BigDecimal money = taoBaoGoodsBriefService.getShareGoodsUserHongBao(goodsBrief); + shareMoney = MoneyBigDecimalUtil.add(shareMoney, money); + } } catch (TaobaoGoodsDownException e) { oldExtra.setState(1); @@ -596,7 +613,8 @@ } } - if (shareMoney != null) { + // 鏇存柊鐑攢鍗曞搧鐨勫垎浜閲� 锛屽叾浣欎笉鍋氭洿鏂� + if (classId == 1) { ClientTextStyleVO shareMoneyDesc = new ClientTextStyleVO(); shareMoneyDesc.setColor("#FFFFFF"); shareMoneyDesc.setBottomColor("#E8AE48"); @@ -604,9 +622,9 @@ dynamicInfo.setDesc(shareMoneyDesc); } - if (isupdate) { - dynamicInfoDao.updateGoodInfo(dynamicInfo); - } + dynamicInfo.setImgs(imgs); + dynamicInfo.setUpdateTime(new Date()); + dynamicInfoDao.updateGoodInfo(dynamicInfo); } } @@ -653,6 +671,7 @@ dynamicInfo.setShareCount(existInfo.getShareCount()); } else { dynamicInfo.setCreateTime(new Date()); + dynamicInfo.setUpdateTime(new Date()); dynamicInfo.setShareCount(1000 + (int) (Math.random() * 8000)); } @@ -727,5 +746,4 @@ e.printStackTrace(); } } - } -- Gitblit v1.8.0