admin
2024-09-05 8631bb49abe5dfed233bc579a228c578232f8079
src/main/java/com/yeshi/buwan/util/JuHe/VideoResourceUtil.java
@@ -1,108 +1,95 @@
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;
    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) {
        List<VideoResource> resourceList = videoResourceDao.list("from VideoResource");
        List<Long> list = new ArrayList<>();
        if ("android".equalsIgnoreCase(platform)) {// Android
            for (VideoResource vr : resourceList) {
                String resourceName = vr.getName();
                if (resourceName.indexOf("爱奇艺") > -1) {
                    list.add(Long.parseLong(vr.getId()));
                } else if (resourceName.indexOf("腾讯") > -1)
                    list.add(Long.parseLong(vr.getId()));
                else if (resourceName.indexOf("搜狐") > -1)
                    list.add(Long.parseLong(vr.getId()));
                else if (resourceName.indexOf("AcFun") > -1)
                    list.add(Long.parseLong(vr.getId()));
                else if (resourceName.indexOf("风行") > -1)
                    list.add(Long.parseLong(vr.getId()));
                else if (resourceName.indexOf("PPTV") > -1) {
                    //3.8.7以后的Android支持
                    if (versionCode >= 105) {
                        list.add(Long.parseLong(vr.getId()));
                    }
                }
            }
        } 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()));
                }
            }
        } 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()));
                }
    @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+"");
            }
        }
        return list;
        //韩剧上线的时候需要打开
//        if(detailSystem.getId().equalsIgnoreCase("51")){
//            ridList.add("28");
//        }
//        ridList.clear();
//        ridList.add("13");
//        ridList.add("22");
        List<Long> ids = new ArrayList<>();
        if (ridList != null) {
            for (String id : ridList) {
                ids.add(Long.parseLong(id));
            }
        }
        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;
    }