From 42fa17d6209d10cbe4774388d0ff3fcf3329eb5a Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期三, 16 六月 2021 13:53:17 +0800
Subject: [PATCH] zookeeper地址修改
---
src/main/java/com/yeshi/buwan/service/imp/ad/DeviceAdStrategyServiceImpl.java | 91 ++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 89 insertions(+), 2 deletions(-)
diff --git a/src/main/java/com/yeshi/buwan/service/imp/ad/DeviceAdStrategyServiceImpl.java b/src/main/java/com/yeshi/buwan/service/imp/ad/DeviceAdStrategyServiceImpl.java
index e01a02a..02fb9d1 100644
--- a/src/main/java/com/yeshi/buwan/service/imp/ad/DeviceAdStrategyServiceImpl.java
+++ b/src/main/java/com/yeshi/buwan/service/imp/ad/DeviceAdStrategyServiceImpl.java
@@ -6,7 +6,9 @@
import com.yeshi.buwan.service.imp.VideoInfoService;
import com.yeshi.buwan.service.inter.ad.DeviceAdStrategyService;
import com.yeshi.buwan.service.inter.vip.VIPService;
+import com.yeshi.buwan.util.RedisManager;
import com.yeshi.buwan.util.StringUtil;
+import com.yeshi.buwan.util.TimeUtil;
import com.yeshi.buwan.util.video.VideoConstant;
import com.yeshi.buwan.vo.video.VideoDetailVO;
import org.springframework.stereotype.Service;
@@ -26,6 +28,9 @@
@Resource
private VideoInfoService videoInfoService;
+ @Resource
+ private RedisManager redisManager;
+
private DeviceAdStrategy init(String id, String deviceId, String detailSystemId) {
DeviceAdStrategy strategy = new DeviceAdStrategy();
strategy.setId(id);
@@ -34,6 +39,9 @@
strategy.setCreateTime(new Date());
strategy.setDetailFSAExpireTime(DeviceAdStrategy.ALWAYS_DISPLAY);
strategy.setDetailPVAExpireTime(DeviceAdStrategy.ALWAYS_DISPLAY);
+
+ strategy.setDetailShortVideoFSAExpireTime(DeviceAdStrategy.ALWAYS_DISPLAY);
+ strategy.setDetailShortVideoPVAExpireTime(DeviceAdStrategy.ALWAYS_DISPLAY);
deviceAdStrategyDao.save(strategy);
return strategy;
}
@@ -61,6 +69,37 @@
return new VideoDetailVO.VideoAdInfo(strategy.getDetailPVAExpireTime() < now, strategy.getDetailFSAExpireTime() < now);
}
+
+ /**
+ * 鑾峰彇灏忚棰戝箍鍛婂睍绀虹瓥鐣�
+ *
+ * @param deviceId
+ * @param detailSystemId
+ * @return
+ */
+ public VideoDetailVO.VideoAdInfo getVideoDetailShortVideoAdStrategy(String deviceId, String detailSystemId) {
+
+ if (StringUtil.isNullOrEmpty(deviceId) || StringUtil.isNullOrEmpty(detailSystemId)) {
+ return new VideoDetailVO.VideoAdInfo(true, true);
+ }
+ String id = DeviceAdStrategy.createId(deviceId, detailSystemId);
+ DeviceAdStrategy strategy = deviceAdStrategyDao.get(id);
+ if (strategy == null) {
+ strategy = init(id, deviceId, detailSystemId);
+ }
+
+ if (strategy.getDetailShortVideoPVAExpireTime() == null) {
+ strategy.setDetailShortVideoPVAExpireTime(DeviceAdStrategy.ALWAYS_DISPLAY);
+ }
+
+ if (strategy.getDetailShortVideoFSAExpireTime() == null) {
+ strategy.setDetailShortVideoFSAExpireTime(DeviceAdStrategy.ALWAYS_DISPLAY);
+ }
+
+ long now = System.currentTimeMillis();
+ return new VideoDetailVO.VideoAdInfo(strategy.getDetailShortVideoPVAExpireTime() < now, strategy.getDetailShortVideoFSAExpireTime() < now);
+ }
+
@Override
public VideoDetailVO.VideoAdInfo getVideoDetailAdStrategy(String deviceId, String detailSystemId, String loginUid, String videoId, String from) {
@@ -69,9 +108,10 @@
if (videoAdInfo.isFullVideo() && "recommend".equalsIgnoreCase(from)) {
//鏄惁涓�4澶у垎绫�
VideoInfo videoInfo = videoInfoService.getVideoInfoCache(videoId);
- //闄ゅ紑鍥涘ぇ鍒嗙被澶栦笉灞曠ず鍏ㄥ睆瑙嗛骞垮憡
+ //闄ゆ鐗囧涓嶅睍绀哄叏灞忚棰戝箍鍛�
if (videoInfo != null && videoInfo.getContentType() != null && videoInfo.getContentType() != 1) {
- videoAdInfo.setFullVideo(false);
+ VideoDetailVO.VideoAdInfo shortVideo = getVideoDetailShortVideoAdStrategy(deviceId, detailSystemId);
+ videoAdInfo.setFullVideo(videoAdInfo.isFullVideo() && shortVideo.isFullVideo());
}
}
return videoAdInfo;
@@ -95,4 +135,51 @@
update.setDetailPVAExpireTime(pvaExpireTime);
deviceAdStrategyDao.updateSelective(update);
}
+
+ @Override
+ public void setShortVideoAdStrategy(String deviceId, String detailSystemId, String videoId, String from, Long fsaExpireTime, Long pvaExpireTime) {
+ //鍙湁棣栭〉鎺ㄨ崘灏忚棰戞墠璁剧疆
+ if (!"recommend".equalsIgnoreCase(from))
+ return;
+
+ if (StringUtil.isNullOrEmpty(deviceId) || StringUtil.isNullOrEmpty(detailSystemId)) {
+ return;
+ }
+
+
+ VideoInfo videoInfo = videoInfoService.getVideoInfoCache(videoId);
+ //闄ゆ鐗囧涓嶅睍绀哄叏灞忚棰戝箍鍛�
+ if (videoInfo != null && videoInfo.getContentType() != null && videoInfo.getContentType() != 1) {
+
+ String id = DeviceAdStrategy.createId(deviceId, detailSystemId);
+ DeviceAdStrategy strategy = deviceAdStrategyDao.get(id);
+ if (strategy == null) {
+ init(id, deviceId, detailSystemId);
+ }
+ DeviceAdStrategy update = new DeviceAdStrategy();
+ update.setId(id);
+ if (fsaExpireTime != null)
+ update.setDetailShortVideoFSAExpireTime(fsaExpireTime);
+ if (pvaExpireTime != null)
+ update.setDetailShortVideoPVAExpireTime(pvaExpireTime);
+ deviceAdStrategyDao.updateSelective(update);
+ }
+ }
+
+ @Override
+ public void watchPPTVVideo(String deviceId, String detailSystemId) {
+ //璁板綍褰撳墠鐪婸P鐨勬鏁�
+ String id = DeviceAdStrategy.createId(deviceId, detailSystemId);
+ String ppDayCount = "pptv-watch-count-" + id;
+ int timeS = (int) ((TimeUtil.convertGernalTime(TimeUtil.getGernalTime(System.currentTimeMillis() + 1000 * 60 * 60 * 24L, "yyyyMMdd"), "yyyyMMdd")-System.currentTimeMillis()) / 1000);
+ redisManager.increase(ppDayCount, 1);
+ redisManager.expire(ppDayCount, timeS);
+ String countStr = redisManager.getCommonString(ppDayCount);
+
+ if (!StringUtil.isNullOrEmpty(countStr) && Integer.parseInt(countStr) >= 2) {
+ long showTime = TimeUtil.convertGernalTime(TimeUtil.getGernalTime(System.currentTimeMillis() + 1000 * 60 * 60 * 24L, "yyyy-MM-dd"), "yyyy-MM-dd");
+ setVideoDetailAdStrategy(deviceId, detailSystemId, showTime, null);
+ }
+
+ }
}
--
Gitblit v1.8.0