From 9b4bf99c1a30f3a7c2bdd6faba7589ff4f7e48e5 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期三, 22 五月 2019 10:28:31 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- fanli/src/main/java/com/yeshi/fanli/service/impl/dynamic/DynamicInfoServiceImpl.java | 541 ++++++++++++++++++++++++++++++++++++----------------- 1 files changed, 362 insertions(+), 179 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..9797aa5 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,6 +1,7 @@ package com.yeshi.fanli.service.impl.dynamic; import java.math.BigDecimal; +import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -8,8 +9,11 @@ import javax.annotation.Resource; +import org.springframework.cache.annotation.Cacheable; import org.springframework.core.task.TaskExecutor; import org.springframework.stereotype.Service; +import org.yeshi.utils.DateLunarUtil; +import org.yeshi.utils.DateUtil; import org.yeshi.utils.taobao.TbImgUtil; import com.yeshi.fanli.dao.dynamic.DynamicInfoDao; @@ -20,6 +24,7 @@ import com.yeshi.fanli.entity.bus.clazz.GoodsClass; import com.yeshi.fanli.entity.dynamic.DynamicInfo; import com.yeshi.fanli.entity.dynamic.GoodsPicture; +import com.yeshi.fanli.entity.dynamic.InviteMaterial; import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief; import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBriefExtra; import com.yeshi.fanli.entity.taobao.TaoBaoShop; @@ -29,10 +34,12 @@ import com.yeshi.fanli.service.inter.activity.ActivityUserService; import com.yeshi.fanli.service.inter.common.JumpDetailV2Service; import com.yeshi.fanli.service.inter.dynamic.DynamicInfoService; +import com.yeshi.fanli.service.inter.dynamic.InviteMaterialService; import com.yeshi.fanli.service.inter.goods.TaoBaoGoodsBriefService; import com.yeshi.fanli.service.inter.hongbao.HongBaoManageService; import com.yeshi.fanli.service.inter.taobao.TaoBaoShopService; import com.yeshi.fanli.service.inter.taobao.dataoke.DaTaoKeGoodsService; +import com.yeshi.fanli.service.inter.user.QrCodeService; import com.yeshi.fanli.util.MoneyBigDecimalUtil; import com.yeshi.fanli.util.RedisManager; import com.yeshi.fanli.util.StringUtil; @@ -74,6 +81,13 @@ @Resource private TaoBaoShopService taoBaoShopService; + @Resource + private InviteMaterialService inviteMaterialService; + + @Resource + private QrCodeService qrCodeService; + + @Override public void insert(DynamicInfo record) { dynamicInfoDao.insert(record); @@ -85,7 +99,220 @@ return dynamicInfoDao.getById(id); } + + @Override + public void insertTimeInvite() { + InviteMaterial inviteMaterial = inviteMaterialService.getInviteMaterial(); + if (inviteMaterial == null) { + return; + } + + Date date = new Date(); + String materialId = inviteMaterial.getId(); + String content = inviteMaterial.getText(); + + if (!StringUtil.isNullOrEmpty(content)) { + DynamicInfo dynamicTxt= new DynamicInfo(); + dynamicTxt.setId(UUID.randomUUID().toString().replace("-", "")); + dynamicTxt.setInviteMaterialId(materialId); + dynamicTxt.setClassId(4L); + dynamicTxt.setSubclassId(0L); + dynamicTxt.setShowType(DynamicInfo.SHOW_TYPE_ZERO); + dynamicTxt.setShareType(DynamicInfo.SHARE_TYPE_INVITE); + dynamicTxt.setUser(activityUserService.listRand(1).get(0)); + dynamicTxt.setShareCount(1000 + (int) (Math.random() * 8000)); + dynamicTxt.setCreateTime(date); + dynamicTxt.setUpdateTime(date); + + SimpleDateFormat format = new SimpleDateFormat("MM鏈坉d鏃�"); + + StringBuffer buffer = new StringBuffer(); + buffer.append("------------------------------------------\n"); + buffer.append("浠婂ぉ : " + format.format(date)); + buffer.append(" "); + buffer.append(DateLunarUtil.getWeekd(date) + "\n"); + buffer.append("鍚勪綅浜茬埍鐨勪綘"); + buffer.append(" "); + buffer.append("鏃╁畨锝瀄n"); + buffer.append("鎴戠殑閭�璇风爜锛氥�愰個璇风爜銆慭n"); + buffer.append("璐墿鐪侀挶杩斿埄鍒窤pp锛氥�愰個璇烽摼鎺ャ��"); + + + ClientTextStyleVO row1 = new ClientTextStyleVO(); + row1.setColor("#333333"); + row1.setContent(content + "\n" + buffer.toString()); + List<ClientTextStyleVO> listtitle = new ArrayList<ClientTextStyleVO>(); + listtitle.add(row1); + dynamicTxt.setTitle(listtitle); + + // 绌烘暟鎹� + List<GoodsPicture> listImg = new ArrayList<GoodsPicture>(); + dynamicTxt.setImgs(listImg); + + dynamicInfoDao.insert(dynamicTxt); + } + + String picture = inviteMaterial.getPicture(); + if (!StringUtil.isNullOrEmpty(picture)) { + DynamicInfo dynamicPic = new DynamicInfo(); + dynamicPic.setId(UUID.randomUUID().toString().replace("-", "")); + dynamicPic.setInviteMaterialId(materialId); + dynamicPic.setClassId(4L); + dynamicPic.setSubclassId(0L); + dynamicPic.setShowType(DynamicInfo.SHOW_TYPE_ONE); + dynamicPic.setShareType(DynamicInfo.SHARE_TYPE_INVITE); + dynamicPic.setUser(activityUserService.listRand(1).get(0)); + dynamicPic.setShareCount(1000 + (int) (Math.random() * 8000)); + dynamicPic.setCreateTime(date); + dynamicPic.setUpdateTime(date); + + try { + // 鐢诲浘 + String url = qrCodeService.drawInviteToGreet(picture, null, null, null, content, new Date()); + + List<ClientTextStyleVO> listtitle = new ArrayList<ClientTextStyleVO>(); + dynamicPic.setTitle(listtitle); + + GoodsPicture p2 = new GoodsPicture(); + p2.setW(100); + p2.setH(100); + p2.setUrl(url); + p2.setUrlOriginal(picture); + p2.setTitleOriginal(content); + List<GoodsPicture> listImg = new ArrayList<GoodsPicture>(); + listImg.add(p2); + dynamicPic.setImgs(listImg); + + dynamicInfoDao.insert(dynamicPic); + } catch (Exception e) { + try { + LogHelper.errorDetailInfo(e); + } catch (Exception e1) { + e1.printStackTrace(); + } + } + } + // 鏇存柊绱犳潗鐘舵�� + inviteMaterialService.updateState(1, materialId); + } + + @Override + public void insertShopInfo() { + List<String> brandIdList = DaTaoKeApiUtil.getBrandIdList(); + if (brandIdList == null || brandIdList.size() == 0) { + LogHelper.test("澶ф窐瀹㈠搧鐗宨d鑾峰彇澶辫触锛圖ynamicInfoService-insertShopInfo锛�"); + return; + } + + + Long classId = 3L; + Long subclassId = 0L; + List<DynamicInfo> listInfo = dynamicInfoDao.query(classId, subclassId); + + // 娓呯悊宸插瓨鍦ㄥ搧鐗� + if (listInfo != null && listInfo.size() > 0) { + for (int i = 0; i < brandIdList.size(); i++) { + String brandId = brandIdList.get(i); + + for (int j = 0; j < listInfo.size(); j++) { + String id = listInfo.get(j).getId(); + if (brandId.equals(id)) { + brandIdList.remove(brandId); + i--; + + listInfo.remove(listInfo.get(j)); + j--; + } + } + } + } + + if (brandIdList == null || brandIdList.size() == 0) { + LogHelper.test("澶ф窐瀹㈠搧鐗屽凡鍏ㄩ儴鐖彇锛圖ynamicInfoService-insertShopInfo锛�"); + return; + } + + int index = (int) (Math.random() * brandIdList.size()); + String brandId = brandIdList.get(index); + + TaoBaoShopDTO dynamicShopInfo = DaTaoKeApiUtil.getDynamicShopInfo(brandId); + if (dynamicShopInfo == null) { + LogHelper.test("澶ф窐瀹㈠搧鐗屼俊鎭埇鍙栧け璐ワ紙DynamicInfoService-insertShopInfo锛�"); + return; + } + + + List<TaoBaoGoodsBrief> listGoods = dynamicShopInfo.getListGoods(); + if (listGoods == null || listGoods.size() == 0) { + LogHelper.test("澶ф窐瀹㈠搧鐗屽晢鍝佷俊鎭埇鍙栧け璐ワ紙DynamicInfoService-insertShopInfo锛�"); + return; + } + + Long sellerId = dynamicShopInfo.getSellerId(); + TaoBaoGoodsBrief taoBaoGoodsBrief = listGoods.get(0); + TaoBaoShop taoBaoShop = taoBaoShopService.getTaoBaoShop(taoBaoGoodsBrief.getAuctionId(), sellerId); + if (taoBaoShop == null) { + LogHelper.test("搴楅摵璇︽儏淇℃伅鑾峰彇澶辫触锛圖ynamicInfoService-insertShopInfo锛�"); + return; + } + String shopLink = taoBaoShop.getShopLink(); + if (StringUtil.isNullOrEmpty(shopLink)) { + taoBaoShop.setShopLink(TaoBaoUtil.getShopLink(taoBaoShop.getId())); + } + + DynamicInfo dynamicVO = new DynamicInfo(); + dynamicVO.setId(brandId); + dynamicVO.setClassId(classId); + dynamicVO.setSubclassId(subclassId); + dynamicVO.setShowType(DynamicInfo.SHOW_TYPE_TWO); + dynamicVO.setShop(taoBaoShop); + dynamicVO.setUser(activityUserService.listRand(1).get(0)); + dynamicVO.setCreateTime(DateUtil.reduceRandomMinute(new Date(), 8)); + dynamicVO.setUpdateTime(new Date()); + + // 浠嬬粛鍐呭 + ClientTextStyleVO row1 = new ClientTextStyleVO(); + row1.setColor("#333333"); + row1.setContent(dynamicShopInfo.getBrandDes()); + List<ClientTextStyleVO> listTitle = new ArrayList<ClientTextStyleVO>(); + listTitle.add(row1); + dynamicVO.setTitle(listTitle); + + // 鍟嗗搧淇℃伅 + List<GoodsPicture> listPicture = new ArrayList<GoodsPicture>(); + for (TaoBaoGoodsBrief goodsBrief : listGoods) { + BigDecimal proportion = hongBaoManageService.getFanLiRate(); + TaoBaoGoodsBriefExtra taoBaoGoodsBriefExtra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(goodsBrief, proportion.toString(), null); + taoBaoGoodsBriefExtra.setCouponInfo(null); + taoBaoGoodsBriefExtra.setUpdatetime(new Date()); + + if (!taoBaoGoodsBriefExtra.isCoupon()) { + taoBaoGoodsBriefExtra.setState(1); + } + + String goodsId = goodsBrief.getAuctionId().toString(); + JSONObject item = new JSONObject(); + item.put("id", goodsId); + item.put("from", "dynamics"); + + GoodsPicture goodsPicture = new GoodsPicture(); + goodsPicture.setH(100); + goodsPicture.setW(100); + goodsPicture.setUrl(TbImgUtil.getTBSize320Img(goodsBrief.getPictUrl())); + goodsPicture.setJumpDetail(jumpDetailV2Service.getByTypeCache("goodsdetail")); + goodsPicture.setParams(item.toString()); + goodsPicture.setGoods(taoBaoGoodsBriefExtra); + + listPicture.add(goodsPicture); + } + dynamicVO.setImgs(listPicture); + + dynamicInfoDao.insert(dynamicVO); + } + + + @Override public void insertTimeRecommend() { try { @@ -93,9 +320,10 @@ List<GoodsClass> list = DaTaoKeUtil.goodsClasses; int index = (int) (Math.random() * list.size()); Long subclassId = list.get(index).getId(); + int cid = Integer.parseInt(subclassId +""); int count = 0; double random = Math.random(); - if (random > 0.5) { + if (random > 0.4) { count = 9; } else { count = 4; @@ -136,6 +364,10 @@ // 缁勭粐鍔ㄦ�佷俊鎭� DynamicInfo dynamicInfo = getDynamicInfo(daTaoKeDetail, classId, subclassId); + // 鏃犲唴瀹� + dynamicInfo.setTitle(new ArrayList<ClientTextStyleVO>()); + // 鍙戝竷鐢ㄦ埛 + dynamicInfo.setUser(activityUserService.getRandomByDaTaoKeCid(cid)); dynamicInfo.setImgs(listPicture); ClientTextStyleVO shareMoneyDesc = new ClientTextStyleVO(); @@ -156,7 +388,11 @@ dynamicInfoDao.insert(dynamicInfo); } catch (Exception e) { - e.printStackTrace(); + try { + LogHelper.errorDetailInfo(e); + } catch (Exception e1) { + e1.printStackTrace(); + } } } @@ -167,7 +403,11 @@ try { saveHotSale(classId, 0L); } catch (Exception e) { - e.printStackTrace(); + try { + LogHelper.errorDetailInfo(e); + } catch (Exception e1) { + e1.printStackTrace(); + } } // 鐑攢鍗曞搧鐨勫垎绫� @@ -176,7 +416,11 @@ try { saveHotSale(classId, goodsClass.getId()); } catch (Exception e) { - e.printStackTrace(); + try { + LogHelper.errorDetailInfo(e); + } catch (Exception e1) { + e1.printStackTrace(); + } } } } @@ -255,11 +499,21 @@ // 缁勭粐鍔ㄦ�佷俊鎭� DynamicInfo dynamicInfo = getDynamicInfo(daTaoKe, classId, subclassId); - + dynamicInfo.setUser(activityUserService.getRandomByDaTaoKeCid(daTaoKe.getCid())); dynamicInfo.setImgs(listPicture); dynamicInfo.setDesc(shareMoneyDesc); dynamicInfo.setShareType(DynamicInfo.SHARE_TYPE_ONE); dynamicInfo.setShowType(DynamicInfo.SHOW_TYPE_TWO); + + String desc = DaTaoKeUtil.getDesc(daTaoKe); + if (!StringUtil.isNullOrEmpty(desc)) { + int index = desc.lastIndexOf("\n"); + String newDesc = desc.substring(index + 1); + if(StringUtil.isNullOrEmpty(newDesc)) { + desc = desc.substring(0, index); + } + } + dynamicInfo.setTitle(convertIntroduce(desc)); // 淇濆瓨淇℃伅 dynamicInfoDao.insert(dynamicInfo); @@ -279,14 +533,10 @@ dynamicInfo.setClassId(classId); dynamicInfo.setSubclassId(subclassId); dynamicInfo.setDaTaoKeId(daTaoKe.getId()); - dynamicInfo.setCreateTime(new Date()); - + dynamicInfo.setCreateTime(DateUtil.reduceRandomMinute(new Date(), 8)); + dynamicInfo.setUpdateTime(new Date()); // 闅忔満鍒嗕韩娆℃暟 dynamicInfo.setShareCount(1000 + (int) (Math.random() * 8000)); - // 闅忔満鍒嗗竷鐢ㄦ埛 - dynamicInfo.setUser(activityUserService.listRand(1).get(0)); - // 鍐呭 - dynamicInfo.setTitle(convertIntroduce(DaTaoKeUtil.getDesc(daTaoKe))); return dynamicInfo; } @@ -328,26 +578,6 @@ } @Override - public long count(Long cid, Long subId) { - return dynamicInfoDao.count(cid, subId); - } - - @Override - public List<DynamicInfo> query(int start, int count, Long cid, Long subId) { - List<DynamicInfo> list = dynamicInfoDao.query(start, count, cid, subId); - - // 鏇存柊鍟嗗搧淇℃伅 - executor.execute(new Runnable() { - @Override - public void run() { - updateGoodInfo(list); - } - }); - - return list; - } - - @Override public void updateShareCount(DynamicInfo record) { dynamicInfoDao.updateShareCount(record); } @@ -375,14 +605,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(), 8)); dynamicVO.setShareCount(1000 + (int) (Math.random() * 8000)); } - if (activityUser == null) { dynamicVO.setUser(activityUserService.listRand(1).get(0)); @@ -391,143 +622,50 @@ } - // 浠嬬粛鍐呭 - ClientTextStyleVO row1 = new ClientTextStyleVO(); - row1.setColor("#333333"); - row1.setContent(title); List<ClientTextStyleVO> listtitle = new ArrayList<ClientTextStyleVO>(); - listtitle.add(row1); - dynamicVO.setTitle(listtitle); + List<GoodsPicture> listImg = new ArrayList<GoodsPicture>(); - if(!StringUtil.isNullOrEmpty(picUrl)) { - GoodsPicture p2 = new GoodsPicture(); - p2.setW(100); - p2.setH(100); - p2.setUrl(picUrl); - listImg.add(p2); - dynamicVO.setShowType(DynamicInfo.SHOW_TYPE_ONE); - } else { + if(StringUtil.isNullOrEmpty(picUrl)) { + dynamicVO.setImgs(listImg); dynamicVO.setShowType(DynamicInfo.SHOW_TYPE_ZERO); - } - - dynamicVO.setImgs(listImg); - dynamicInfoDao.insert(dynamicVO); - } - - - @Override - public void insertShopInfo() { - List<String> brandIdList = DaTaoKeApiUtil.getBrandIdList(); - if (brandIdList == null || brandIdList.size() == 0) { - LogHelper.test("澶ф窐瀹㈠搧鐗宨d鑾峰彇澶辫触锛圖ynamicInfoService-insertShopInfo锛�"); - return; - } - - - Long classId = 3L; - Long subclassId = 0L; - List<DynamicInfo> listInfo = dynamicInfoDao.query(classId, subclassId); - - // 娓呯悊宸插瓨鍦ㄥ搧鐗� - if (listInfo != null && listInfo.size() > 0) { - for (int i = 0; i < brandIdList.size(); i++) { - String brandId = brandIdList.get(i); + + // 浠嬬粛鍐呭 + ClientTextStyleVO row1 = new ClientTextStyleVO(); + row1.setColor("#333333"); + row1.setContent(title); + listtitle.add(row1); + dynamicVO.setTitle(listtitle); + dynamicInfoDao.insert(dynamicVO); + } else { + try { + dynamicVO.setTitle(listtitle); + dynamicVO.setShowType(DynamicInfo.SHOW_TYPE_ONE); - for (int j = 0; j < listInfo.size(); j++) { - String id = listInfo.get(j).getId(); - if (brandId.equals(id)) { - brandIdList.remove(brandId); - i--; - - listInfo.remove(listInfo.get(j)); - j--; - } + // 鍥剧墖 + String imgLink = qrCodeService.drawInviteQrCodeNew(picUrl , null, null, null); + GoodsPicture p2 = new GoodsPicture(); + p2.setW(100); + p2.setH(100); + p2.setUrl(imgLink); + p2.setUrlOriginal(picUrl); + listImg.add(p2); + dynamicVO.setImgs(listImg); + + + dynamicInfoDao.insert(dynamicVO); + } catch (Exception e) { + try { + LogHelper.errorDetailInfo(e); + } catch (Exception e1) { + e1.printStackTrace(); } } } - if (brandIdList == null || brandIdList.size() == 0) { - LogHelper.test("澶ф窐瀹㈠搧鐗屽凡鍏ㄩ儴鐖彇锛圖ynamicInfoService-insertShopInfo锛�"); - return; - } - - int index = (int) (Math.random() * brandIdList.size()); - String brandId = brandIdList.get(index); - - TaoBaoShopDTO dynamicShopInfo = DaTaoKeApiUtil.getDynamicShopInfo(brandId); - if (dynamicShopInfo == null) { - LogHelper.test("澶ф窐瀹㈠搧鐗屼俊鎭埇鍙栧け璐ワ紙DynamicInfoService-insertShopInfo锛�"); - return; - } - - - List<TaoBaoGoodsBrief> listGoods = dynamicShopInfo.getListGoods(); - if (listGoods == null || listGoods.size() == 0) { - LogHelper.test("澶ф窐瀹㈠搧鐗屽晢鍝佷俊鎭埇鍙栧け璐ワ紙DynamicInfoService-insertShopInfo锛�"); - return; - } - - Long sellerId = dynamicShopInfo.getSellerId(); - TaoBaoGoodsBrief taoBaoGoodsBrief = listGoods.get(0); - TaoBaoShop taoBaoShop = taoBaoShopService.getTaoBaoShop(taoBaoGoodsBrief.getAuctionId(), sellerId); - if (taoBaoShop == null) { - LogHelper.test("搴楅摵璇︽儏淇℃伅鑾峰彇澶辫触锛圖ynamicInfoService-insertShopInfo锛�"); - return; - } - String shopLink = taoBaoShop.getShopLink(); - if (StringUtil.isNullOrEmpty(shopLink)) { - taoBaoShop.setShopLink(TaoBaoUtil.getShopLink(taoBaoShop.getId())); - } - - DynamicInfo dynamicVO = new DynamicInfo(); - dynamicVO.setId(brandId); - dynamicVO.setClassId(classId); - dynamicVO.setSubclassId(subclassId); - dynamicVO.setShowType(DynamicInfo.SHOW_TYPE_TWO); - dynamicVO.setShop(taoBaoShop); - dynamicVO.setUser(activityUserService.listRand(1).get(0)); - dynamicVO.setCreateTime(new Date()); - - // 浠嬬粛鍐呭 - ClientTextStyleVO row1 = new ClientTextStyleVO(); - row1.setColor("#333333"); - row1.setContent(dynamicShopInfo.getBrandDes()); - List<ClientTextStyleVO> listTitle = new ArrayList<ClientTextStyleVO>(); - listTitle.add(row1); - dynamicVO.setTitle(listTitle); - - // 鍟嗗搧淇℃伅 - List<GoodsPicture> listPicture = new ArrayList<GoodsPicture>(); - for (TaoBaoGoodsBrief goodsBrief : listGoods) { - BigDecimal proportion = hongBaoManageService.getFanLiRate(); - TaoBaoGoodsBriefExtra taoBaoGoodsBriefExtra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(goodsBrief, proportion.toString(), null); - taoBaoGoodsBriefExtra.setCouponInfo(null); - taoBaoGoodsBriefExtra.setUpdatetime(new Date()); - - if (!taoBaoGoodsBriefExtra.isCoupon()) { - taoBaoGoodsBriefExtra.setState(1); - } - - String goodsId = goodsBrief.getAuctionId().toString(); - JSONObject item = new JSONObject(); - item.put("id", goodsId); - item.put("from", "dynamics"); - - GoodsPicture goodsPicture = new GoodsPicture(); - goodsPicture.setH(100); - goodsPicture.setW(100); - goodsPicture.setUrl(TbImgUtil.getTBSize320Img(goodsBrief.getPictUrl())); - goodsPicture.setJumpDetail(jumpDetailV2Service.getByTypeCache("goodsdetail")); - goodsPicture.setParams(item.toString()); - goodsPicture.setGoods(taoBaoGoodsBriefExtra); - - listPicture.add(goodsPicture); - } - dynamicVO.setImgs(listPicture); - - dynamicInfoDao.insert(dynamicVO); } + + @Override public void removeByDate(Date createTime) { @@ -546,13 +684,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 +722,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 +732,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 +748,8 @@ } } - if (shareMoney != null) { + // 鏇存柊鐑攢鍗曞搧鐨勫垎浜閲� 锛屽叾浣欎笉鍋氭洿鏂� + if (classId == 1) { ClientTextStyleVO shareMoneyDesc = new ClientTextStyleVO(); shareMoneyDesc.setColor("#FFFFFF"); shareMoneyDesc.setBottomColor("#E8AE48"); @@ -604,9 +757,9 @@ dynamicInfo.setDesc(shareMoneyDesc); } - if (isupdate) { - dynamicInfoDao.updateGoodInfo(dynamicInfo); - } + dynamicInfo.setImgs(imgs); + dynamicInfo.setUpdateTime(new Date()); + dynamicInfoDao.updateGoodInfo(dynamicInfo); } } @@ -653,6 +806,7 @@ dynamicInfo.setShareCount(existInfo.getShareCount()); } else { dynamicInfo.setCreateTime(new Date()); + dynamicInfo.setUpdateTime(new Date()); dynamicInfo.setShareCount(1000 + (int) (Math.random() * 8000)); } @@ -724,8 +878,37 @@ dynamicInfoDao.insert(dynamicInfo); } catch (Exception e) { - e.printStackTrace(); + try { + LogHelper.errorDetailInfo(e); + } catch (Exception e1) { + e1.printStackTrace(); + } } } + + + + + + @Override + @Cacheable(value = "dynamicCache", key = "'count-'+#cid+'-'+#subId") + public long count(Long cid, Long subId) { + return dynamicInfoDao.count(cid, subId); + } + @Override + @Cacheable(value = "dynamicCache", key = "'query-'+#start+'-'+#count+'-'+#cid+'-'+#subId") + public List<DynamicInfo> query(int start, int count, Long cid, Long subId) { + List<DynamicInfo> list = dynamicInfoDao.query(start, count, cid, subId); + + // 鏇存柊鍟嗗搧淇℃伅 + executor.execute(new Runnable() { + @Override + public void run() { + updateGoodInfo(list); + } + }); + + return list; + } } -- Gitblit v1.8.0