admin
2021-05-08 56481656c7de11cdca69c1a7dd69db176ffd9ecd
华为屏蔽金币任务中的看海量视频,新增广告平台概率控制
4个文件已修改
73 ■■■■■ 已修改文件
src/main/java/com/yeshi/buwan/controller/api/GoldCornController.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/controller/api/VideoPlayController.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/controller/parser/ConfigParser.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/job/AdJob.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/controller/api/GoldCornController.java
@@ -14,9 +14,12 @@
import com.yeshi.buwan.domain.goldcorn.GoldCornTaskActionDetail;
import com.yeshi.buwan.domain.jump.JumpDetail;
import com.yeshi.buwan.domain.jump.JumpTypeEnum;
import com.yeshi.buwan.domain.system.DetailSystem;
import com.yeshi.buwan.domain.system.DetailSystemConfig;
import com.yeshi.buwan.dto.goldcorn.SignInGoldCornDateData;
import com.yeshi.buwan.exception.goldcorn.SignInException;
import com.yeshi.buwan.exception.user.LoginUserException;
import com.yeshi.buwan.service.imp.DetailSystemConfigService;
import com.yeshi.buwan.service.inter.goldcorn.GoldCornTaskActionDetailService;
import com.yeshi.buwan.service.inter.goldcorn.SignInService;
import com.yeshi.buwan.service.inter.system.SystemConfigService;
@@ -28,6 +31,7 @@
import com.yeshi.buwan.vo.goldcorn.GoldCornTaskVO;
import com.yeshi.buwan.vo.goldcorn.SignInInfoVO;
import net.sf.json.JSONObject;
import org.apache.solr.common.params.ConfigSetParams;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
@@ -55,6 +59,9 @@
    @Resource
    private GoldCornTaskActionDetailService goldCornTaskActionDetailService;
    @Resource
    private DetailSystemConfigService configService;
    /**
@@ -209,7 +216,7 @@
        voList.add(new GoldCornCouponVideoVO("https://r1.ykimg.com/058400005F2BA59B6AEB660E907A2B99?x-oss-process=image/resize,w_290/interlace,1/quality,Q_80", jumpDetail, params.toString().replace("\"", "\\" + "\"")));
        voList.add(new GoldCornCouponVideoVO("https://r1.ykimg.com/052700005DC9247B1B769182B50A8C21?x-oss-process=image/resize,w_290/interlace,1/quality,Q_80", jumpDetail, params.toString().replace("\"", "\\" + "\"")));
//        if (voList.size() < 3)
            voList.clear();
        voList.clear();
        JSONObject data = new JSONObject();
        data.put("list", new Gson().toJson(voList));
        data.put("count", voList.size());
@@ -223,7 +230,28 @@
        List<GoldCornTaskVO> voList = new ArrayList<>();
        try {
            //登录
            List<GoldCornGetSource> list = goldCornManager.listGetCornSource(1, 20);
            List<GoldCornGetSource> list1 = goldCornManager.listGetCornSource(1, 20);
            List<GoldCornGetSource> list = new ArrayList<>();
            list.addAll(list1);
            //删除华为渠道的看激励视频任务
            if (acceptData.getChannel().equalsIgnoreCase("huawei")) {
                if (list != null && list.size() > 0)
                    for (int i = 0; i < list.size(); i++) {
                        if (list.get(i).getSourceCode().equalsIgnoreCase(CodeCornGetSourceType.watchRewardAd.name())) {
                            //华为是否正在上线
                            DetailSystemConfig onLiningVersionInfo = configService.getConfigByKey("ad_hw_online_version_info", new DetailSystem("44"), 1);
                            JSONObject onLiningVersionInfoJson = JSONObject.fromObject(onLiningVersionInfo.getValue());
                            int onLiningVersionCode = onLiningVersionInfoJson.optInt("versionCode");
                            if (acceptData.getVersion() >= onLiningVersionCode) {
                                list.remove(i);
                                break;
                            }
                        }
                    }
            }
            List<String> sourceCodes = new ArrayList<>();
            for (GoldCornGetSource source : list) {
src/main/java/com/yeshi/buwan/controller/api/VideoPlayController.java
@@ -278,6 +278,8 @@
        data.put("vipVideo", isVIPVideo);
        data.put("bought", isBought);
        data.put("canBuy", canBuy);
        data.put("showInterstitialAd", true);
        data.put("showPreVideoAd", false);
        if (pptvSeries != null)
            data.put("title", pptvSeries.getName());
        if (record != null) {
src/main/java/com/yeshi/buwan/controller/parser/ConfigParser.java
@@ -2,7 +2,9 @@
import java.io.PrintWriter;
import java.lang.reflect.Type;
import java.math.BigDecimal;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
@@ -67,10 +69,35 @@
            // 默认为应用宝
            channel = "qq";
        }
        adConfig = new Gson().fromJson(jsonObject.optJSONObject(channel).toString(), ADConfig.class);
        JSONObject channelAd = jsonObject.optJSONObject(channel);
        adConfig = new Gson().fromJson(channelAd.toString(), ADConfig.class);
        if (version >= adConfig.getVersion()) {
            adConfig = null;
        }
        //格式如下:
        //{"typeProperties":{"csj":{"weight":1,"pid":"123123"},"gdt":{"weight":1,"pid":"123123"}}}
        if (adConfig != null && channelAd.optJSONObject("typeProbability") != null) {
            JSONObject properties = channelAd.optJSONObject("typeProbability");
            BigDecimal total = new BigDecimal(0);
            for (Iterator<String> its = properties.keys(); its.hasNext(); ) {
                String k = its.next();
                total = total.add(new BigDecimal(properties.optJSONObject(k).optString("weight")));
            }
            BigDecimal random = total.multiply(new BigDecimal(Math.random()));
            total = new BigDecimal(0);
            for (Iterator<String> its = properties.keys(); its.hasNext(); ) {
                String k = its.next();
                total = total.add(new BigDecimal(properties.optJSONObject(k).optString("weight")));
                if (random.compareTo(total) < 0) {
                    adConfig.setPid(properties.optJSONObject(k).optString("pid"));
                    adConfig.setType(k);
                    break;
                }
            }
        }
        return adConfig;
    }
@@ -294,6 +321,8 @@
        public void setPid(String pid) {
            this.pid = pid;
        }
    }
}
src/main/java/com/yeshi/buwan/job/AdJob.java
@@ -109,6 +109,14 @@
        config = configService.getConfigByKey("ad_video_search", detailSystem, version);
        updateVersionConfig(channel, config, version);
        //热启动开屏
        config = configService.getConfigByKey("ad_splash_hot_start", detailSystem, version);
        updateVersionConfig(channel, config, version);
        //PPTV视频免广告权益
        config = configService.getConfigByKey("pptv_no_ad_reward", detailSystem, version);
        updateVersionConfig(channel, config, version);
        //删除缓存
        ehCacheManager.clearCacheByCacheName("configCache");
    }