From 573c491b4a1ba60e12a5678a01c1546c0077c1ee Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期二, 30 七月 2019 09:07:42 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- fanli/src/main/java/com/yeshi/fanli/service/impl/dynamic/DynamicInfoServiceImpl.java | 706 ++++++++++++++++++++++++++++++++++------------------------ 1 files changed, 412 insertions(+), 294 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 fd0b0b6..be50150 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 @@ -18,8 +18,10 @@ import com.yeshi.fanli.dao.dynamic.DynamicInfoDao; import com.yeshi.fanli.dto.taobao.TaoBaoShopDTO; +import com.yeshi.fanli.entity.bus.activity.ActivityRuleUser; import com.yeshi.fanli.entity.bus.activity.ActivityUser; import com.yeshi.fanli.entity.bus.activity.RecommendActivity; +import com.yeshi.fanli.entity.bus.activity.RecommendActivityInviteInfo; import com.yeshi.fanli.entity.bus.activity.RecommendActivityTaoBaoGoods; import com.yeshi.fanli.entity.bus.clazz.GoodsClass; import com.yeshi.fanli.entity.dynamic.DynamicInfo; @@ -37,9 +39,11 @@ 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.TaoBaoGoodsUpdateService; 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.Constant; import com.yeshi.fanli.util.MoneyBigDecimalUtil; import com.yeshi.fanli.util.RedisManager; import com.yeshi.fanli.util.StringUtil; @@ -53,16 +57,16 @@ @Service public class DynamicInfoServiceImpl implements DynamicInfoService { - + @Resource(name = "taskExecutor") private TaskExecutor executor; - + @Resource private DynamicInfoDao dynamicInfoDao; @Resource private RedisManager redisManager; - + @Resource private DaTaoKeGoodsService daTaoKeGoodsService; @@ -74,47 +78,47 @@ @Resource private TaoBaoGoodsBriefService taoBaoGoodsBriefService; - + @Resource private HongBaoManageService hongBaoManageService; - + @Resource private TaoBaoShopService taoBaoShopService; - + @Resource private InviteMaterialService inviteMaterialService; - + @Resource private QrCodeService qrCodeService; - - + + @Resource + private TaoBaoGoodsUpdateService taoBaoGoodsUpdateService; + @Override public void insert(DynamicInfo record) { - dynamicInfoDao.insert(record); + dynamicInfoDao.insert(record); } - - + @Override public DynamicInfo getById(String id) { 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(); - - ActivityUser user=activityUserService.selectByPrimaryKey(1L); - + + ActivityUser user = activityUserService.selectByPrimaryKey(2L); + if (!StringUtil.isNullOrEmpty(content)) { - DynamicInfo dynamicTxt= new DynamicInfo(); + DynamicInfo dynamicTxt = new DynamicInfo(); dynamicTxt.setId(UUID.randomUUID().toString().replace("-", "")); dynamicTxt.setInviteMaterialId(materialId); dynamicTxt.setClassId(4L); @@ -125,9 +129,9 @@ 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)); @@ -138,22 +142,24 @@ buffer.append("鏃╁畨锝瀄n"); buffer.append("鎴戠殑閭�璇风爜锛氥�愰個璇风爜銆慭n"); buffer.append("璐墿鐪侀挶杩斿埄鍒窤pp锛氥�愰個璇烽摼鎺ャ��"); - - + + content = content.replaceAll("\\,", "\\锛�").replaceAll("\\.", "\\銆�").replaceAll("\\;", "\\锛�") + .replaceAll("\\!", "\\锛�").replaceAll("\\?", "\\锛�").replaceAll("\\:", "\\锛�"); + 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(); @@ -167,14 +173,14 @@ 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); @@ -184,7 +190,7 @@ List<GoodsPicture> listImg = new ArrayList<GoodsPicture>(); listImg.add(p2); dynamicPic.setImgs(listImg); - + dynamicInfoDao.insert(dynamicPic); } catch (Exception e) { try { @@ -198,7 +204,6 @@ inviteMaterialService.updateState(1, materialId); } - @Override public void insertShopInfo() { List<String> brandIdList = DaTaoKeApiUtil.getBrandIdList(); @@ -206,8 +211,7 @@ LogHelper.test("澶ф窐瀹㈠搧鐗宨d鑾峰彇澶辫触锛圖ynamicInfoService-insertShopInfo锛�"); return; } - - + Long classId = 3L; Long subclassId = 0L; List<DynamicInfo> listInfo = dynamicInfoDao.query(classId, subclassId); @@ -216,41 +220,40 @@ 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); @@ -262,17 +265,18 @@ 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)); + List<ActivityRuleUser> userList = activityUserService.listByRuleCode(ActivityRuleUser.RULE_HAODIAN, 1, 50); + dynamicVO.setUser(userList.get((int) (userList.size() * Math.random())).getActivityUser()); + dynamicVO.setCreateTime(DateUtil.reduceRandomMinute(new Date(), 8)); dynamicVO.setUpdateTime(new Date()); - + // 浠嬬粛鍐呭 ClientTextStyleVO row1 = new ClientTextStyleVO(); row1.setColor("#333333"); @@ -280,24 +284,25 @@ 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 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); @@ -305,16 +310,14 @@ 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 { @@ -322,7 +325,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 cid = Integer.parseInt(subclassId + ""); int count = 0; double random = Math.random(); if (random > 0.4) { @@ -349,12 +352,13 @@ // 鍒嗕韩濂栭噾 TaoBaoGoodsBrief taoBaoGoodsBrief = TaoBaoUtil.convert(daTaoKe); listGoods.add(taoBaoGoodsBrief); - - TaoBaoGoodsBriefExtra taoBaoGoodsBriefExtra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, proportion.toString(), null); + + TaoBaoGoodsBriefExtra taoBaoGoodsBriefExtra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, + proportion.toString(), null); if (!taoBaoGoodsBriefExtra.isCoupon()) { taoBaoGoodsBriefExtra.setState(1); } - + BigDecimal money = taoBaoGoodsBriefService.getShareGoodsUserHongBao(taoBaoGoodsBrief); shareMoney = MoneyBigDecimalUtil.add(shareMoney, money); // 鍟嗗搧鍥剧墖 @@ -362,7 +366,7 @@ taoBaoGoodsBriefExtra.setCouponInfo(null); GoodsPicture goodsPicture = getGoodsPicture(daTaoKe); goodsPicture.setGoods(taoBaoGoodsBriefExtra); - + listPicture.add(goodsPicture); } @@ -452,17 +456,24 @@ // 澶ф窐瀹㈡暟鎹� DaTaoKeDetail daTaoKe = daTaoKeGoodsService.getGoodsNotInList(subclassId, listId, 1).get(0); + try { + daTaoKe = DaTaoKeUtil.filterDaTaoKe(TaoKeApiUtil.searchGoodsDetail(daTaoKe.getGoodsId()), daTaoKe); + } catch (Exception e) { + + } + 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); + TaoBaoGoodsBriefExtra taoBaoGoodsBriefExtra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, + proportion.toString(), null); if (!taoBaoGoodsBriefExtra.isCoupon()) { taoBaoGoodsBriefExtra.setState(1); } taoBaoGoodsBriefExtra.setTkRate(taoBaoGoodsBrief.getTkRate()); - + // 鍒嗕韩濂栭噾 BigDecimal shareMoney = taoBaoGoodsBriefService.getShareGoodsUserHongBao(taoBaoGoodsBrief); ClientTextStyleVO shareMoneyDesc = new ClientTextStyleVO(); @@ -493,7 +504,7 @@ if (pic.equals(img)) { continue; } - + listimgs.add(img); GoodsPicture picture = new GoodsPicture(); picture.setH(100); @@ -502,7 +513,7 @@ listPicture.add(picture); } } - + taoBaoGoodsBriefExtra.setImgList(imgList); // 缁勭粐鍔ㄦ�佷俊鎭� @@ -513,12 +524,12 @@ dynamicInfo.setShareType(DynamicInfo.SHARE_TYPE_ONE); dynamicInfo.setShowType(DynamicInfo.SHOW_TYPE_TWO); dynamicInfo.setListGoodsBrief(listGoods); - + String desc = DaTaoKeUtil.getDesc(daTaoKe); if (!StringUtil.isNullOrEmpty(desc)) { int index = desc.lastIndexOf("\n"); String newDesc = desc.substring(index + 1); - if(StringUtil.isNullOrEmpty(newDesc)) { + if (StringUtil.isNullOrEmpty(newDesc)) { desc = desc.substring(0, index); } } @@ -577,7 +588,7 @@ goodsPicture.setW(100); goodsPicture.setUrl(TbImgUtil.getTBSize320Img(daTaoKe.getPic())); goodsPicture.setJumpDetail(jumpDetailV2Service.getByTypeCache("goodsdetail")); - + String goodsId = daTaoKe.getGoodsId().toString(); JSONObject item = new JSONObject(); item.put("id", goodsId); @@ -587,250 +598,174 @@ } @Override - public void updateShareCount(DynamicInfo record) { - dynamicInfoDao.updateShareCount(record); - } - - - @Override - public void insertInviteMaterial(String title, String picUrl, Long activityId, ActivityUser activityUser) { - - DynamicInfo existInfo = null; - if (activityId != null) { - existInfo = dynamicInfoDao.getByActivityId(activityId); - if (existInfo != null) { - dynamicInfoDao.deleteById(existInfo.getId()); - } - - if (!StringUtil.isNullOrEmpty(title)) { - title = title.replace("<p>", ""); - title = title.replace("</p>", ""); - } + public void insertInviteActivity(RecommendActivity activity) throws Exception { + + String title = activity.getTitle(); + + String picUrl = null; + List<String> imageList = activity.getImageList(); + if (imageList != null && imageList.size() > 0) { + picUrl = imageList.get(0); } - - DynamicInfo dynamicVO = new DynamicInfo(); + + if (StringUtil.isNullOrEmpty(title) || StringUtil.isNullOrEmpty(picUrl)) { + return; + } + + // 鍒ゆ柇鏄惁宸插瓨鍦� + String dynamicInfoId = null; + + Long activityId = activity.getId(); + DynamicInfo dynamicVO = dynamicInfoDao.getByActivityId(activityId); + if (dynamicVO == null) { + dynamicVO = new DynamicInfo(); + dynamicVO.setId(UUID.randomUUID().toString().replace("-", "")); + dynamicVO.setCreateTime(DateUtil.reduceRandomMinute(new Date(), 8)); + } else { + dynamicInfoId = dynamicVO.getId(); + } + + if (!StringUtil.isNullOrEmpty(title)) { + title = title.replaceAll("<p>", "").replaceAll("</p>", "").replaceAll("<br>", "\n"); + + int index = title.lastIndexOf("\n"); + String newDesc = title.substring(index + 1); + if (StringUtil.isNullOrEmpty(newDesc)) { + title = title.substring(0, index); + } + + title = title.replaceAll("\\,", "\\锛�").replaceAll("\\.", "\\銆�").replaceAll("\\;", "\\锛�") + .replaceAll("\\!", "\\锛�").replaceAll("\\?", "\\锛�").replaceAll("\\:", "\\锛�"); + } + dynamicVO.setId(UUID.randomUUID().toString().replace("-", "")); dynamicVO.setActivityId(activityId); 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(DateUtil.reduceRandomMinute(new Date(), 8)); + + Integer shareCount = activity.getShareCount(); + if (shareCount == null || shareCount <= 0) { dynamicVO.setShareCount(1000 + (int) (Math.random() * 8000)); + } else { + dynamicVO.setShareCount(shareCount); } - + + // 鍙戝竷鐢ㄦ埛 + ActivityUser activityUser = activity.getActivityUser(); if (activityUser == null) { - dynamicVO.setUser(activityUserService.listRand(1).get(0)); + dynamicVO.setUser(activityUserService.selectByPrimaryKey(2L)); } else { dynamicVO.setUser(activityUser); } - - + + // 浠嬬粛鍐呭 List<ClientTextStyleVO> listtitle = new ArrayList<ClientTextStyleVO>(); - - - List<GoodsPicture> listImg = new ArrayList<GoodsPicture>(); - if(StringUtil.isNullOrEmpty(picUrl)) { - dynamicVO.setImgs(listImg); - dynamicVO.setShowType(DynamicInfo.SHOW_TYPE_ZERO); - - // 浠嬬粛鍐呭 - SimpleDateFormat format = new SimpleDateFormat("MM鏈坉d鏃�"); - StringBuffer buffer = new StringBuffer(); - buffer.append("-------------------\n"); - buffer.append("浠婂ぉ : " + format.format(new Date())); - buffer.append(" "); - buffer.append(DateLunarUtil.getWeekd(new Date()) + "\n"); - buffer.append("鍚勪綅浜茬埍鐨勪綘"); - buffer.append(" "); - buffer.append("鏃╁畨锝瀄n"); - buffer.append("鎴戠殑閭�璇风爜锛氥�愰個璇风爜銆慭n"); - buffer.append("璐墿鐪侀挶杩斿埄鍒窤pp锛氥�愰個璇烽摼鎺ャ��"); - + if (!StringUtil.isNullOrEmpty(title)) { ClientTextStyleVO row1 = new ClientTextStyleVO(); row1.setColor("#333333"); - row1.setContent(title + "\n" + buffer.toString()); - + row1.setContent(title); listtitle.add(row1); - dynamicVO.setTitle(listtitle); - dynamicInfoDao.insert(dynamicVO); + } + + // 鍥剧墖 + List<GoodsPicture> listImg = new ArrayList<GoodsPicture>(); + if (StringUtil.isNullOrEmpty(picUrl)) { + dynamicVO.setShowType(DynamicInfo.SHOW_TYPE_ZERO); } else { - try { - dynamicVO.setTitle(listtitle); - dynamicVO.setShowType(DynamicInfo.SHOW_TYPE_ONE); - - // 鍥剧墖 - 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(); - } + dynamicVO.setShowType(DynamicInfo.SHOW_TYPE_ONE); + RecommendActivityInviteInfo inviteInfo = activity.getInviteInfo(); + + Integer pX = null; + Integer pY = null; + Integer size = null; + if (inviteInfo != null) { + pX = inviteInfo.getPx(); + pY = inviteInfo.getPy(); + size = inviteInfo.getSize(); } + + // 鍥剧墖 + String imgLink = qrCodeService.drawInviteQrCodeNew(picUrl, null, null, pX, pY, size, null); + GoodsPicture p2 = new GoodsPicture(); + p2.setW(100); + p2.setH(100); + p2.setUrl(imgLink); + p2.setUrlOriginal(picUrl); + p2.setPx(pX); + p2.setPy(pY); + p2.setSize(size); + + listImg.add(p2); } - - } - - - - @Override - public void removeByDate(Date createTime) { - dynamicInfoDao.removeByDate(createTime); - } - - - - /** - * 鏇存柊鍟嗗搧淇℃伅 - */ - public void updateGoodInfo(List<DynamicInfo> list) { - if (list == null || list.size() == 0) { - return; + + dynamicVO.setImgs(listImg); + dynamicVO.setTitle(listtitle); + + if (!StringUtil.isNullOrEmpty(dynamicInfoId)) { + dynamicInfoDao.deleteById(dynamicInfoId); } - - 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; - } - - // 鏄惁涓�涓皬鏃朵箣鍐呭凡鏇存柊 - 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) { - continue; - } - - Integer state = oldExtra.getState(); - if (state != null && state == 1) { - continue; - } - - try { - TaoBaoGoodsBrief goodsBrief = redisManager.getTaoBaoGoodsBrief(oldExtra.getAuctionId()); - TaoBaoGoodsBriefExtra newExtra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(goodsBrief, proportion.toString(), null); - - if (!newExtra.isCoupon()) { - newExtra.setState(1); - } - newExtra.setUpdatetime(new Date()); - newExtra.setTkRate(goodsBrief.getTkRate()); - goodsPicture.setGoods(newExtra); - - - // 鏇存柊鐑攢鍗曞搧鐨勫垎浜閲� 锛屽叾浣欎笉鍋氭洿鏂� - if (classId == 1) { - BigDecimal money = taoBaoGoodsBriefService.getShareGoodsUserHongBao(goodsBrief); - shareMoney = MoneyBigDecimalUtil.add(shareMoney, money); - } - - } catch (TaobaoGoodsDownException e) { - oldExtra.setState(1); - oldExtra.setCoupon(false); - oldExtra.setUpdatetime(new Date()); - goodsPicture.setGoods(oldExtra); - e.printStackTrace(); - } - } - - // 鏇存柊鐑攢鍗曞搧鐨勫垎浜閲� 锛屽叾浣欎笉鍋氭洿鏂� - if (classId == 1) { - ClientTextStyleVO shareMoneyDesc = new ClientTextStyleVO(); - shareMoneyDesc.setColor("#FFFFFF"); - shareMoneyDesc.setBottomColor("#E8AE48"); - shareMoneyDesc.setContent("棰勪及鍒嗕韩濂栭噾锛毬�" + shareMoney); - dynamicInfo.setDesc(shareMoneyDesc); - } - - dynamicInfo.setImgs(imgs); - dynamicInfo.setUpdateTime(new Date()); - dynamicInfoDao.updateGoodInfo(dynamicInfo); - } + + dynamicInfoDao.insert(dynamicVO); } - - - @Override - public void deleteActivity(Long activityId) { - DynamicInfo dynamicInfo = dynamicInfoDao.getByActivityId(activityId); - if (dynamicInfo != null) { - // 鍒犻櫎涔嬪墠鐨� - dynamicInfoDao.deleteById(dynamicInfo.getId()); - } - } - - @Override - public void saveActivityRecommend(RecommendActivity activity) { + public void insertActivityRecommend(RecommendActivity activity) { if (activity == null || activity.getGoodsList() == null) { return; } - + try { - DynamicInfo existInfo = dynamicInfoDao.getByActivityId(activity.getId()); - if (existInfo != null) { - dynamicInfoDao.deleteById(existInfo.getId()); + String dynamicInfoId = null; + DynamicInfo dynamicInfo = dynamicInfoDao.getByActivityId(activity.getId()); + if (dynamicInfo == null) { + dynamicInfo = new DynamicInfo(); + dynamicInfo.setId(UUID.randomUUID().toString().replace("-", "")); + dynamicInfo.setCreateTime(new Date()); + } else { + dynamicInfoId = dynamicInfo.getId(); } - - DynamicInfo dynamicInfo = new DynamicInfo(); - dynamicInfo.setId(UUID.randomUUID().toString().replace("-", "")); + dynamicInfo.setClassId(2L); dynamicInfo.setSubclassId(0L); dynamicInfo.setUser(activity.getActivityUser()); dynamicInfo.setActivityId(activity.getId()); - + dynamicInfo.setUpdateTime(new Date()); + + List<ClientTextStyleVO> listtitle = new ArrayList<ClientTextStyleVO>(); String title = activity.getTitle(); if (!StringUtil.isNullOrEmpty(title)) { - title = title.replace("<p>", ""); - title = title.replace("</p>", ""); - dynamicInfo.setTitle(convertIntroduce(title)); + title = title.replaceAll("<p>", ""); + title = title.replaceAll("</p>", ""); + title = title.replaceAll("<br>", "\n"); + + int index = title.lastIndexOf("\n"); + String newDesc = title.substring(index + 1); + if (StringUtil.isNullOrEmpty(newDesc)) { + title = title.substring(0, index); + } + + ClientTextStyleVO row1 = new ClientTextStyleVO(); + row1.setColor("#333333"); + row1.setContent(title); + listtitle.add(row1); } - - if (existInfo != null) { - dynamicInfo.setCreateTime(existInfo.getCreateTime()); - dynamicInfo.setShareCount(existInfo.getShareCount()); - } else { - dynamicInfo.setCreateTime(new Date()); - dynamicInfo.setUpdateTime(new Date()); + dynamicInfo.setTitle(listtitle); + + Integer shareCount = activity.getShareCount(); + if (shareCount == null || shareCount <= 0) { dynamicInfo.setShareCount(1000 + (int) (Math.random() * 8000)); + } else { + dynamicInfo.setShareCount(shareCount); + } + + // 鍙戝竷鐢ㄦ埛 + ActivityUser activityUser = activity.getActivityUser(); + if (activityUser == null) { + dynamicInfo.setUser(activityUserService.selectByPrimaryKey(2L)); + } else { + dynamicInfo.setUser(activityUser); } List<TaoBaoGoodsBrief> listGoods = new ArrayList<TaoBaoGoodsBrief>(); @@ -842,36 +777,38 @@ if (activity.getGoodsList() != null) { for (RecommendActivityTaoBaoGoods activityGoods : activity.getGoodsList()) { - + TaoBaoGoodsBrief taoBaoGoodsBrief = null; - TaoBaoGoodsBriefExtra taoBaoGoodsBriefExtra = null; + TaoBaoGoodsBriefExtra taoBaoGoodsBriefExtra = null; String auctionId = activityGoods.getAuctionId(); try { taoBaoGoodsBrief = redisManager.getTaoBaoGoodsBrief(Long.parseLong(auctionId)); - - taoBaoGoodsBriefExtra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, proportion.toString(), null); + + taoBaoGoodsBriefExtra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, + proportion.toString(), null); if (!taoBaoGoodsBriefExtra.isCoupon()) { taoBaoGoodsBriefExtra.setState(1); } - + BigDecimal money = taoBaoGoodsBriefService.getShareGoodsUserHongBao(taoBaoGoodsBrief); shareMoney = MoneyBigDecimalUtil.add(shareMoney, money); } catch (TaobaoGoodsDownException e) { - taoBaoGoodsBrief = activityGoods.getTaoBaoGoodsBrief(); - taoBaoGoodsBriefExtra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, proportion.toString(), null); - taoBaoGoodsBriefExtra.setState(1); - taoBaoGoodsBriefExtra.setCoupon(false); + taoBaoGoodsBrief = activityGoods.getTaoBaoGoodsBrief(); + taoBaoGoodsBriefExtra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, + proportion.toString(), null); + taoBaoGoodsBriefExtra.setState(1); + taoBaoGoodsBriefExtra.setCoupon(false); } listGoods.add(taoBaoGoodsBrief); - + // 鍟嗗搧鍥剧墖 taoBaoGoodsBriefExtra.setCouponInfo(null); taoBaoGoodsBriefExtra.setUpdatetime(new Date()); - + JSONObject item = new JSONObject(); item.put("id", auctionId); item.put("from", "dynamics"); - + GoodsPicture goodsPicture = new GoodsPicture(); goodsPicture.setH(100); goodsPicture.setW(100); @@ -879,13 +816,13 @@ goodsPicture.setJumpDetail(jumpDetailV2Service.getByTypeCache("goodsdetail")); goodsPicture.setParams(item.toString()); goodsPicture.setGoods(taoBaoGoodsBriefExtra); - + listPicture.add(goodsPicture); } } dynamicInfo.setImgs(listPicture); dynamicInfo.setListGoodsBrief(listGoods); - + ClientTextStyleVO shareMoneyDesc = new ClientTextStyleVO(); shareMoneyDesc.setColor("#FFFFFF"); shareMoneyDesc.setBottomColor("#E8AE48"); @@ -900,6 +837,10 @@ dynamicInfo.setShowType(DynamicInfo.SHOW_TYPE_THREE); dynamicInfo.setShareType(DynamicInfo.SHARE_TYPE_NINE); // 鍒嗕韩绫诲瀷9鍥� } + + if (!StringUtil.isNullOrEmpty(dynamicInfoId)) { + dynamicInfoDao.deleteById(dynamicInfoId); + } // 淇濆瓨淇℃伅 dynamicInfoDao.insert(dynamicInfo); @@ -911,9 +852,26 @@ } } } - - - + + @Override + public void deleteActivity(Long activityId) { + DynamicInfo dynamicInfo = dynamicInfoDao.getByActivityId(activityId); + if (dynamicInfo != null) { + // 鍒犻櫎涔嬪墠鐨� + dynamicInfoDao.deleteById(dynamicInfo.getId()); + } + } + + @Override + public void removeByDate(Date createTime) { + dynamicInfoDao.removeByDate(createTime); + } + + @Override + public void updateShareCount(DynamicInfo record) { + dynamicInfoDao.updateShareCount(record); + } + @Override @Cacheable(value = "dynamicCache", key = "'count-'+#cid+'-'+#subId") public long count(Long cid, Long subId) { @@ -924,7 +882,7 @@ @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 @@ -932,7 +890,167 @@ updateGoodInfo(list); } }); - + return list; } + + /** + * 鏇存柊鍟嗗搧淇℃伅 + */ + public void updateGoodInfo(List<DynamicInfo> list) { + + // 澶栫綉杩涜鏇存柊 + if (!Constant.IS_OUTNET) { + return; + } + + if (list == null || list.size() == 0) { + return; + } + + 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; + } + + // 鏄惁涓�涓皬鏃朵箣鍐呭凡鏇存柊 + 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; + } + } + + // 宸蹭笅鏋禝D + List<Long> listDown = new ArrayList<Long>(); + // 鍟嗗搧鍒楄〃 + List<TaoBaoGoodsBrief> listGoods = new ArrayList<TaoBaoGoodsBrief>(); + + for (GoodsPicture goodsPicture : imgs) { + TaoBaoGoodsBriefExtra oldExtra = goodsPicture.getGoods(); + if (oldExtra == null) { + continue; + } + + Integer state = oldExtra.getState(); + if (state != null && state == 1) { + continue; + } + + try { + TaoBaoGoodsBrief goodsBrief = redisManager.getTaoBaoGoodsBrief(oldExtra.getAuctionId()); + + // 鏇存柊鍟嗗搧淇℃伅 + try { + taoBaoGoodsUpdateService.updateTaoBaoGoods(goodsBrief); + } catch (Exception e) { + e.printStackTrace(); + } + + listGoods.add(goodsBrief); + + // 鏇存柊鐑攢鍗曞搧鐨勫垎浜閲� 锛屽叾浣欎笉鍋氭洿鏂� + if (classId == 1) { + BigDecimal shareMoney = taoBaoGoodsBriefService.getShareGoodsUserHongBao(goodsBrief); + ClientTextStyleVO shareMoneyDesc = new ClientTextStyleVO(); + shareMoneyDesc.setColor("#FFFFFF"); + shareMoneyDesc.setBottomColor("#E8AE48"); + shareMoneyDesc.setContent("棰勪及鍒嗕韩濂栭噾锛毬�" + shareMoney); + dynamicInfo.setDesc(shareMoneyDesc); + } + + TaoBaoGoodsBriefExtra newExtra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(goodsBrief, + proportion.toString(), null); + + if (!newExtra.isCoupon()) { + newExtra.setState(1); + } + newExtra.setUpdatetime(new Date()); + goodsPicture.setGoods(oldExtra); + + } catch (TaobaoGoodsDownException e) { + listDown.add(oldExtra.getAuctionId()); + + oldExtra.setState(1); + oldExtra.setCoupon(false); + oldExtra.setUpdatetime(new Date()); + goodsPicture.setGoods(oldExtra); + + // 鍟嗗搧鐪熷疄涓嬫灦 + goodsPicture.setGoodState(1); + + // 鏇存柊鐑攢鍗曞搧鐨勫垎浜閲� 锛屽叾浣欎笉鍋氭洿鏂� + if (classId == 1) { + ClientTextStyleVO shareMoneyDesc = new ClientTextStyleVO(); + shareMoneyDesc.setColor("#FFFFFF"); + shareMoneyDesc.setBottomColor("#E8AE48"); + shareMoneyDesc.setContent("棰勪及鍒嗕韩濂栭噾锛毬�" + new BigDecimal(0)); + dynamicInfo.setDesc(shareMoneyDesc); + } + e.printStackTrace(); + } + } + dynamicInfo.setImgs(imgs); + + // 鍟嗗搧宸蹭笅鏋� + List<TaoBaoGoodsBrief> listGoodsBrief = dynamicInfo.getListGoodsBrief(); + if (listGoodsBrief != null && listGoodsBrief.size() > 0) { + + if (listGoods.size() > 0) { + if (classId == 1) { + dynamicInfo.setListGoodsBrief(listGoods); + } else { + for (int i = 0; i < listGoodsBrief.size(); i++) { + TaoBaoGoodsBrief taoBaoGoodsBrief = listGoodsBrief.get(i); + Long auctionId = taoBaoGoodsBrief.getAuctionId(); + + boolean isadd = true; + for (TaoBaoGoodsBrief goods : listGoods) { + if (goods.getAuctionId().equals(auctionId) || goods.getAuctionId() == auctionId) { + isadd = false; + break; + } + } + + if (isadd) { + // 鍟嗗搧宸蹭笅鏋� 鍒欐坊鍔犲師鏉ュ晢鍝佷俊鎭� + if (listDown.size() > 0 && listDown.contains(taoBaoGoodsBrief.getAuctionId())) { + taoBaoGoodsBrief.setState(1); + } + listGoods.add(taoBaoGoodsBrief); + } + } + dynamicInfo.setListGoodsBrief(listGoods); + } + } else { + if (listDown.size() > 0) { + for (TaoBaoGoodsBrief taoBaoGoodsBrief : listGoodsBrief) { + if (listDown.contains(taoBaoGoodsBrief.getAuctionId())) { + taoBaoGoodsBrief.setState(1); + } + } + dynamicInfo.setListGoodsBrief(listGoodsBrief); + } + } + } + + dynamicInfo.setUpdateTime(new Date()); + dynamicInfoDao.updateGoodInfo(dynamicInfo); + } + } + } -- Gitblit v1.8.0