From d71ee3f3989dcf6848a4f40341111a2fd973f3ad Mon Sep 17 00:00:00 2001 From: yujian <yujian@123.com> Date: 星期一, 20 五月 2019 09:23:58 +0800 Subject: [PATCH] 动态分享修改 + 商品详情店铺链接 --- fanli/src/main/java/com/yeshi/fanli/service/impl/dynamic/DynamicInfoServiceImpl.java | 160 ++++++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 133 insertions(+), 27 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..8ae41b1 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,5 +1,6 @@ package com.yeshi.fanli.service.impl.dynamic; +import java.io.IOException; import java.math.BigDecimal; import java.util.ArrayList; import java.util.Date; @@ -10,6 +11,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; @@ -20,6 +22,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 +32,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 +79,13 @@ @Resource private TaoBaoShopService taoBaoShopService; + @Resource + private InviteMaterialService inviteMaterialService; + + @Resource + private QrCodeService qrCodeService; + + @Override public void insert(DynamicInfo record) { dynamicInfoDao.insert(record); @@ -93,6 +105,7 @@ 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) { @@ -136,6 +149,8 @@ // 缁勭粐鍔ㄦ�佷俊鎭� DynamicInfo dynamicInfo = getDynamicInfo(daTaoKeDetail, classId, subclassId); + // 鍙戝竷鐢ㄦ埛 + dynamicInfo.setUser(activityUserService.getRandomByDaTaoKeCid(cid)); dynamicInfo.setImgs(listPicture); ClientTextStyleVO shareMoneyDesc = new ClientTextStyleVO(); @@ -255,7 +270,8 @@ // 缁勭粐鍔ㄦ�佷俊鎭� DynamicInfo dynamicInfo = getDynamicInfo(daTaoKe, classId, subclassId); - + // 鍙戝竷鐢ㄦ埛 + dynamicInfo.setUser(activityUserService.getRandomByDaTaoKeCid(daTaoKe.getCid())); dynamicInfo.setImgs(listPicture); dynamicInfo.setDesc(shareMoneyDesc); dynamicInfo.setShareType(DynamicInfo.SHARE_TYPE_ONE); @@ -279,12 +295,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))); @@ -375,14 +389,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)); @@ -487,7 +502,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(), 8)); + dynamicVO.setUpdateTime(new Date()); // 浠嬬粛鍐呭 ClientTextStyleVO row1 = new ClientTextStyleVO(); @@ -546,13 +562,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 +600,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 +610,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 +626,8 @@ } } - if (shareMoney != null) { + // 鏇存柊鐑攢鍗曞搧鐨勫垎浜閲� 锛屽叾浣欎笉鍋氭洿鏂� + if (classId == 1) { ClientTextStyleVO shareMoneyDesc = new ClientTextStyleVO(); shareMoneyDesc.setColor("#FFFFFF"); shareMoneyDesc.setBottomColor("#E8AE48"); @@ -604,9 +635,9 @@ dynamicInfo.setDesc(shareMoneyDesc); } - if (isupdate) { - dynamicInfoDao.updateGoodInfo(dynamicInfo); - } + dynamicInfo.setImgs(imgs); + dynamicInfo.setUpdateTime(new Date()); + dynamicInfoDao.updateGoodInfo(dynamicInfo); } } @@ -653,6 +684,7 @@ dynamicInfo.setShareCount(existInfo.getShareCount()); } else { dynamicInfo.setCreateTime(new Date()); + dynamicInfo.setUpdateTime(new Date()); dynamicInfo.setShareCount(1000 + (int) (Math.random() * 8000)); } @@ -727,5 +759,79 @@ e.printStackTrace(); } } - + + + @Override + public void insertTimeInvite() { + InviteMaterial inviteMaterial = inviteMaterialService.getInviteMaterial(); + if (inviteMaterial == null) { + return; + } + 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(new Date()); + dynamicTxt.setUpdateTime(new Date()); + + ClientTextStyleVO row1 = new ClientTextStyleVO(); + row1.setColor("#333333"); + row1.setContent(content); + 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(new Date()); + dynamicPic.setUpdateTime(new 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); + List<GoodsPicture> listImg = new ArrayList<GoodsPicture>(); + listImg.add(p2); + dynamicPic.setImgs(listImg); + + dynamicInfoDao.insert(dynamicPic); + } catch (IOException e) { + e.printStackTrace(); + } + } + // 鏇存柊绱犳潗鐘舵�� + inviteMaterialService.updateState(1, materialId); + } } -- Gitblit v1.8.0