From 010ef2a907e66efd4702443c06cdd18f8a7ffa5b Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期三, 30 十月 2024 14:08:53 +0800
Subject: [PATCH] IP归属地查询接口集成

---
 src/main/java/com/yeshi/buwan/service/imp/ad/DeviceAdStrategyServiceImpl.java |   87 +++++++++++++++++++++++++++++++++++++------
 1 files changed, 75 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..37dd429 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,18 @@
 import com.yeshi.buwan.dao.ad.DeviceAdStrategyDao;
 import com.yeshi.buwan.domain.VideoInfo;
 import com.yeshi.buwan.domain.ad.DeviceAdStrategy;
+import com.yeshi.buwan.domain.system.DetailSystem;
+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.user.UserDPContentWatchStatisticService;
 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.AcceptData;
 import com.yeshi.buwan.vo.video.VideoDetailVO;
+import net.sf.json.JSONObject;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
@@ -31,6 +35,12 @@
     @Resource
     private RedisManager redisManager;
 
+    @Resource
+    private DetailSystemConfigService detailSystemConfigService;
+
+    @Resource
+    private UserDPContentWatchStatisticService userDPContentWatchStatisticService;
+
     private DeviceAdStrategy init(String id, String deviceId, String detailSystemId) {
         DeviceAdStrategy strategy = new DeviceAdStrategy();
         strategy.setId(id);
@@ -46,17 +56,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 +103,7 @@
             strategy = init(id, deviceId, detailSystemId);
         }
         long now = System.currentTimeMillis();
-        return new VideoDetailVO.VideoAdInfo(strategy.getDetailPVAExpireTime() < now, strategy.getDetailFSAExpireTime() < now);
+        return filterData(loadAdWeight(new VideoDetailVO.VideoAdInfo(strategy.getDetailPVAExpireTime() < now, strategy.getDetailFSAExpireTime() < now), detailSystemId, version, channel), detailSystemId, deviceId);
     }
 
 
@@ -77,10 +114,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,25 +134,45 @@
         }
 
         long now = System.currentTimeMillis();
-        return new VideoDetailVO.VideoAdInfo(strategy.getDetailShortVideoPVAExpireTime() < now, strategy.getDetailShortVideoFSAExpireTime() < now);
+        return filterData(loadAdWeight(new VideoDetailVO.VideoAdInfo(strategy.getDetailShortVideoPVAExpireTime() < now, strategy.getDetailShortVideoFSAExpireTime() < now), detailSystemId, version, channel), detailSystemId, deviceId);
     }
 
     @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());
+            }
+        }
+
+
+        return filterData(videoAdInfo, detailSystemId, deviceId);
+    }
+
+
+    private VideoDetailVO.VideoAdInfo filterData(VideoDetailVO.VideoAdInfo videoAdInfo, String detailSystemId, String deviceId) {
+        DetailSystem ds = new DetailSystem();
+        ds.setId(detailSystemId);
+        if (videoAdInfo != null) {
+            AcceptData acceptData = new AcceptData();
+            acceptData.setUtdId(deviceId);
+            acceptData.setDetailSystem(ds);
+            boolean isDPUser = userDPContentWatchStatisticService.isDPUser(acceptData);
+            if (isDPUser) {
+                videoAdInfo.setFullVideo(false);
+                videoAdInfo.setPlayVideo(false);
             }
         }
         return videoAdInfo;
     }
+
 
     @Override
     public void setVideoDetailAdStrategy(String deviceId, String detailSystemId, Long fsaExpireTime, Long pvaExpireTime) {
@@ -171,7 +228,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);
@@ -182,4 +239,10 @@
         }
 
     }
+
+    @Override
+    public void setFSAShowTomorrow(String deviceId, String detailSystemId) {
+        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