admin
2025-02-20 f537abe9f3646c739beaf15076246a2f71a347e9
src/main/java/com/yeshi/buwan/util/JuHe/VideoResourceUtil.java
@@ -1,123 +1,96 @@
package com.yeshi.buwan.util.JuHe;
import java.util.ArrayList;
import java.util.List;
import javax.annotation.Resource;
import com.yeshi.buwan.domain.system.DetailSystem;
import com.yeshi.buwan.service.imp.DetailSystemConfigService;
import com.yeshi.buwan.service.inter.video.VideoResourcePlayVersionMapService;
import com.yeshi.buwan.service.inter.video.VideoResourceVersionMapService;
import com.yeshi.buwan.util.Constant;
import com.yeshi.buwan.util.config.SystemConfigUtil;
import com.yeshi.buwan.videos.funtv.FunTVUtil;
import net.sf.json.JSONObject;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Component;
import com.yeshi.buwan.dao.VideoResourceDao;
import com.yeshi.buwan.domain.VideoResource;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
@Component
public class VideoResourceUtil {
   @Resource
   private VideoResourceDao videoResourceDao;
    @Resource
    private VideoResourceVersionMapService videoResourceVersionMapService;
   public VideoResourceDao getVideoResourceDao() {
      return videoResourceDao;
   }
    @Resource
    private VideoResourcePlayVersionMapService videoResourcePlayVersionMapService;
   public void setVideoResourceDao(VideoResourceDao videoResourceDao) {
      this.videoResourceDao = videoResourceDao;
   }
    @Resource
    private DetailSystemConfigService detailSystemConfigService;
   @Cacheable(value = "homeCache", key = "'getAvailableResourceIds'+'-'+#platform+'-'+#versionCode")
   public List<Long> getAvailableResourceIds(String platform, int versionCode) {
    @Cacheable(value = "homeCache", key = "'getAvailableResourceIds-'+'-'+#detailSystem.id+'-'+#versionCode+'-'+#channel")
    public List<Long> getAvailableResourceIds(DetailSystem detailSystem, int versionCode,String channel) {
        List<String> ridList = videoResourceVersionMapService.listResourceId(detailSystem.getId(), versionCode,channel.toLowerCase());
//        if (detailSystem.getId().equalsIgnoreCase("43") && versionCode > 83) {
//            ridList = new ArrayList<>();
////            ridList.add("19");
////            ridList.add("24");
//            ridList.add("25");
//        }
        ridList.remove(25+"");
        ridList.remove(28+"");
        if(Constant.IS_HAVE_FIRST_ONLINE) {
            ridList.add(FunTVUtil.RESOURCE_ID + "");
            //是否是首次上线
            String firstOnLineValue =  detailSystemConfigService.getConfigValueByKey("first_online_versions",detailSystem.getId(), versionCode);
            if( SystemConfigUtil.isFirstOnLine(firstOnLineValue, channel, versionCode)){
                // 首次上线要打开风行
                ridList.add(FunTVUtil.RESOURCE_ID+"");
            }
        }
        //韩剧上线的时候需要打开
//        if(detailSystem.getId().equalsIgnoreCase("51")){
//            ridList.add("28");
//        }
      List<VideoResource> resourceList = videoResourceDao.list("from VideoResource");
      List<Long> list = new ArrayList<Long>();
      if ("android".equalsIgnoreCase(platform)) {// Android
         if (versionCode < 30) {
            for (VideoResource vr : resourceList) {
               if (vr.getName().contains("爱奇艺") || vr.getName().contains("搜狐")) {
                  list.add(Long.parseLong(vr.getId()));
               }
            }
         } else if (versionCode < 38) {
            for (VideoResource vr : resourceList) {
               if (vr.getName().contains("爱奇艺") || vr.getName().contains("搜狐")) {
                  list.add(Long.parseLong(vr.getId()));
               }
            }
         } else if (versionCode < 43) {
            for (VideoResource vr : resourceList) {
               if (vr.getName().contains("爱奇艺")
                     || vr.getName().contains(
                           "搜狐") /* || vr.getName().contains("PPTV") */
                     || vr.getName().contains("腾讯")) {
                  list.add(Long.parseLong(vr.getId()));
               }
            }
         } else {
            for (VideoResource vr : resourceList) {
               if (vr.getName().contains("爱奇艺")
                     || vr.getName().contains(
                           "搜狐") /* || vr.getName().contains("PPTV") */
                     || vr.getName().contains("腾讯") || vr.getName().contains("乐视")
                     || vr.getName().contains("AcFun")|| vr.getName().contains("风行")){
                  list.add(Long.parseLong(vr.getId()));
               }
            }
         }
//        ridList.clear();
//        ridList.add("13");
//        ridList.add("22");
      } else if ("ios".equalsIgnoreCase(platform)) {
         if (versionCode < 14) {
            for (VideoResource vr : resourceList) {
               if (vr.getName().contains("爱奇艺") || vr.getName().contains("搜狐") || vr.getName().contains("风行")) {
                  list.add(Long.parseLong(vr.getId()));
               }
            }
         } else if (versionCode < 16) {
            for (VideoResource vr : resourceList) {
               if (vr.getName().contains("爱奇艺") || vr.getName().contains("搜狐") || vr.getName().contains("风行")) {
                  list.add(Long.parseLong(vr.getId()));
               }
            }
         } else if (versionCode < 18) {
            for (VideoResource vr : resourceList) {
               if (vr.getName().contains("爱奇艺")
                     || vr.getName().contains(
                           "搜狐")/* || vr.getName().contains("PPTV") */
                     || vr.getName().contains("腾讯") || vr.getName().contains("风行")) {
                  list.add(Long.parseLong(vr.getId()));
               }
            }
         } else if (versionCode < 50) {
            for (VideoResource vr : resourceList) {
               if (vr.getName().contains("爱奇艺")
                     || vr.getName().contains(
                           "搜狐") /* || vr.getName().contains("PPTV") */
                     || vr.getName().contains("腾讯") || vr.getName().contains("乐视")
                     ) {//|| vr.getName().contains("风行")
                  list.add(Long.parseLong(vr.getId()));
               }
            }
         } else {
            for (VideoResource vr : resourceList) {
               if (vr.getName().contains("爱奇艺")
                     || vr.getName().contains(
                           "搜狐") /* || vr.getName().contains("PPTV") */
                     || vr.getName().contains("腾讯") || vr.getName().contains("乐视")
                     || vr.getName().contains("AcFun")|| vr.getName().contains("风行"))//|| vr.getName().contains("风行")
                  list.add(Long.parseLong(vr.getId()));
            }
         }
        List<Long> ids = new ArrayList<>();
        if (ridList != null) {
            for (String id : ridList) {
                ids.add(Long.parseLong(id));
            }
        }
      } else {
         for (VideoResource vr : resourceList) {
            if (vr.getName().contains("爱奇艺") || vr.getName().contains("搜狐") || vr.getName().contains("腾讯")
                  || vr.getName().contains("乐视")
                  || vr.getName().contains("AcFun")|| vr.getName().contains("风行")) {//
                                             // || vr.getName().contains("风行")
               list.add(Long.parseLong(vr.getId()));
            }
         }
      }
      return list;
   }
        return ids;
    }
    @Cacheable(value = "homeCache", key = "'getAvailablePlayResourceIds-'+'-'+#detailSystem.id+'-'+#versionCode+'-'+#channel")
    public List<Long> getAvailablePlayResourceIds(DetailSystem detailSystem, int versionCode,String channel) {
        List<String> ridList = videoResourcePlayVersionMapService.listResourceId(detailSystem.getId(), versionCode,channel.toLowerCase());
        // 韩剧上线需要打开注释
//        if(detailSystem.getId().equalsIgnoreCase("51")){
//            ridList.add("28");
//        }
        // 首次上线要打开风行
        if(Constant.IS_HAVE_FIRST_ONLINE) {
            ridList.add(FunTVUtil.RESOURCE_ID + "");
            String firstOnLineValue = detailSystemConfigService.getConfigValueByKey("first_online_versions", detailSystem.getId(), versionCode);
            if (SystemConfigUtil.isFirstOnLine(firstOnLineValue, channel, versionCode)) {
                ridList.add(FunTVUtil.RESOURCE_ID + "");
            }
        }
        List<Long> ids = new ArrayList<>();
        if (ridList != null) {
            for (String id : ridList) {
                ids.add(Long.parseLong(id));
            }
        }
        return ids;
    }
}