From 8fee151ffae0c3818694b7318583814bf92663e2 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期五, 27 八月 2021 18:52:28 +0800 Subject: [PATCH] 聚合视频资源包调整,接入韩迷 --- src/main/java/com/yeshi/buwan/service/imp/ad/DeviceAdStrategyServiceImpl.java | 55 +++++++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 43 insertions(+), 12 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 02fb9d1..2076f5a 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 @@ -3,14 +3,15 @@ import com.yeshi.buwan.dao.ad.DeviceAdStrategyDao; import com.yeshi.buwan.domain.VideoInfo; import com.yeshi.buwan.domain.ad.DeviceAdStrategy; +import com.yeshi.buwan.service.imp.DetailSystemConfigService; 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 net.sf.json.JSONObject; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -31,6 +32,9 @@ @Resource private RedisManager redisManager; + @Resource + private DetailSystemConfigService detailSystemConfigService; + private DeviceAdStrategy init(String id, String deviceId, String detailSystemId) { DeviceAdStrategy strategy = new DeviceAdStrategy(); strategy.setId(id); @@ -46,17 +50,44 @@ return strategy; } + /** + * 鍔犺浇骞垮憡鏉冮噸 + * + * @param videoAdInfo + * @param detailSystemId + * @param version + * @param channel + */ + private VideoDetailVO.VideoAdInfo loadAdWeight(VideoDetailVO.VideoAdInfo videoAdInfo, String detailSystemId, int version, String channel) { + String value = detailSystemConfigService.getConfigValueByKey("video_detail_full_video_version_channel_type", detailSystemId, version); + if (StringUtil.isNullOrEmpty(value)) { + return videoAdInfo; + } + + JSONObject json = JSONObject.fromObject(value); + if (json.optJSONObject(channel) == null) { + json = json.optJSONObject("qq"); + } else { + json = json.optJSONObject(channel); + } + if (json != null) { + videoAdInfo.setFullVideoWeight(json.optInt("fullvideo")); + videoAdInfo.setInterstitialWeight(json.optInt("interstitial")); + } + return videoAdInfo; + } + @Override - public VideoDetailVO.VideoAdInfo getVideoDetailAdStrategy(String deviceId, String detailSystemId, String loginUid) { + public VideoDetailVO.VideoAdInfo getVideoDetailAdStrategy(String deviceId, String detailSystemId, int version, String channel, String loginUid) { if (StringUtil.isNullOrEmpty(deviceId) || StringUtil.isNullOrEmpty(detailSystemId)) { - return new VideoDetailVO.VideoAdInfo(true, true); + return loadAdWeight(new VideoDetailVO.VideoAdInfo(true, true), detailSystemId, version, channel); } //璧癡IP鍒ゅ畾閫昏緫 if (!StringUtil.isNullOrEmpty(loginUid)) { if (vipService.isVIP(loginUid)) { //VIP涓嶅睍绀鸿棰戝墠璐村拰鍏ㄥ睆 - return new VideoDetailVO.VideoAdInfo(false, false); + return loadAdWeight(new VideoDetailVO.VideoAdInfo(false, false), detailSystemId, version, channel); } } @@ -66,7 +97,7 @@ strategy = init(id, deviceId, detailSystemId); } long now = System.currentTimeMillis(); - return new VideoDetailVO.VideoAdInfo(strategy.getDetailPVAExpireTime() < now, strategy.getDetailFSAExpireTime() < now); + return loadAdWeight(new VideoDetailVO.VideoAdInfo(strategy.getDetailPVAExpireTime() < now, strategy.getDetailFSAExpireTime() < now), detailSystemId, version, channel); } @@ -77,10 +108,10 @@ * @param detailSystemId * @return */ - public VideoDetailVO.VideoAdInfo getVideoDetailShortVideoAdStrategy(String deviceId, String detailSystemId) { + public VideoDetailVO.VideoAdInfo getVideoDetailShortVideoAdStrategy(String deviceId, String detailSystemId, int version, String channel) { if (StringUtil.isNullOrEmpty(deviceId) || StringUtil.isNullOrEmpty(detailSystemId)) { - return new VideoDetailVO.VideoAdInfo(true, true); + return loadAdWeight(new VideoDetailVO.VideoAdInfo(true, true), detailSystemId, version, channel); } String id = DeviceAdStrategy.createId(deviceId, detailSystemId); DeviceAdStrategy strategy = deviceAdStrategyDao.get(id); @@ -97,20 +128,20 @@ } long now = System.currentTimeMillis(); - return new VideoDetailVO.VideoAdInfo(strategy.getDetailShortVideoPVAExpireTime() < now, strategy.getDetailShortVideoFSAExpireTime() < now); + return loadAdWeight(new VideoDetailVO.VideoAdInfo(strategy.getDetailShortVideoPVAExpireTime() < now, strategy.getDetailShortVideoFSAExpireTime() < now), detailSystemId, version, channel); } @Override - public VideoDetailVO.VideoAdInfo getVideoDetailAdStrategy(String deviceId, String detailSystemId, String loginUid, String videoId, String from) { + public VideoDetailVO.VideoAdInfo getVideoDetailAdStrategy(String deviceId, String detailSystemId, int version, String channel, String loginUid, String videoId, String from) { - VideoDetailVO.VideoAdInfo videoAdInfo = getVideoDetailAdStrategy(deviceId, detailSystemId, loginUid); + VideoDetailVO.VideoAdInfo videoAdInfo = getVideoDetailAdStrategy(deviceId, detailSystemId, version, channel, loginUid); //浠嶢PP棣栭〉鎺ㄨ崘鑰屾潵,骞朵笖鏈夊叏灞忚闋诲唬鍛� if (videoAdInfo.isFullVideo() && "recommend".equalsIgnoreCase(from)) { //鏄惁涓�4澶у垎绫� VideoInfo videoInfo = videoInfoService.getVideoInfoCache(videoId); //闄ゆ鐗囧涓嶅睍绀哄叏灞忚棰戝箍鍛� if (videoInfo != null && videoInfo.getContentType() != null && videoInfo.getContentType() != 1) { - VideoDetailVO.VideoAdInfo shortVideo = getVideoDetailShortVideoAdStrategy(deviceId, detailSystemId); + VideoDetailVO.VideoAdInfo shortVideo = getVideoDetailShortVideoAdStrategy(deviceId, detailSystemId, version, channel); videoAdInfo.setFullVideo(videoAdInfo.isFullVideo() && shortVideo.isFullVideo()); } } @@ -171,7 +202,7 @@ //璁板綍褰撳墠鐪婸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); + 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); -- Gitblit v1.8.0