| 
					
				 | 
			
			
				@@ -25,104 +25,165 @@ public class VideoAdThompsonScorerV2 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private AlgorithmRedisHelper redisHelper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     // redis:cid_action:{$cid} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    private String redisCreativeStatisticsPrefix="redis:cid_action:"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    //redis:vid_cid_action:{$vid}_{$cid} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    private String redisVideoCreativeStatisticsPrefix="redis:vid_cid_action:"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private String redisCreativeStatisticsPrefix = "redis:cid_action:"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // redis:vid_cid_action:{$vid}_{$cid} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private String redisVideoCreativeStatisticsPrefix = "redis:vid_cid_action:"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private String rediCidActionKeyV1 = "redis:cid_action_v1:"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private String rediCidVidActionKeyV1 = "redis:vid_cid_action_v1:"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    private Map<String,Double> exp663Param=new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    private Map<String,Double> exp664Param=new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    private Map<String,Double> exp665Param=new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    private Map<String,Double> exp666Param=new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    private Map<String,Double> exp669Param=new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    private Map<String,Double> exp670Param=new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    Random random=new Random(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    Gson gson=new Gson(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    public List<AdRankItem> thompsonScorerByExp663(ScoreParam param, List<AdPlatformCreativeDTO> adIdList){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        List<AdRankItem> result=new LinkedList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        String jsonStr; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        CreativeStatistic statistic = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        List<String> redisKey=new LinkedList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        adIdList.forEach(creativeDTO -> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            redisKey.add(redisCreativeStatisticsPrefix+creativeDTO.getCreativeId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        List<String> values=redisHelper.getValues(redisKey); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        double score=0d; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        int i=0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        for(AdPlatformCreativeDTO dto:adIdList){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            AdRankItem item=new AdRankItem(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            item.setVideoId(param.getVideoId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            item.setCpa(dto.getCpa()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            item.setAdId(dto.getCreativeId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private Map<String, Double> exp663Param = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private Map<String, Double> exp664Param = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private Map<String, Double> exp665Param = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private Map<String, Double> exp666Param = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private Map<String, Double> exp669Param = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private Map<String, Double> exp670Param = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    Random random = new Random(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    Gson gson = new Gson(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // public List<AdRankItem> thompsonScorerByExp663(ScoreParam param, List<AdPlatformCreativeDTO> adIdList) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //     List<AdRankItem> result = new LinkedList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //     String jsonStr; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //     CreativeStatistic statistic = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //     List<String> redisKey = new LinkedList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //     adIdList.forEach(creativeDTO -> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //         redisKey.add(redisCreativeStatisticsPrefix + creativeDTO.getCreativeId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //     }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //     List<String> values = redisHelper.getValues(redisKey); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //     double score = 0d; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //     int i = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //     for (AdPlatformCreativeDTO dto : adIdList) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //         AdRankItem item = new AdRankItem(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //         item.setVideoId(param.getVideoId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //         item.setCpa(dto.getCpa()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //         item.setAdId(dto.getCreativeId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //         try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //             jsonStr = values.get(i); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //             if (jsonStr == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //                 score = exp663Param.getOrDefault("randomMin", 0.000001) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //                         + (random.nextDouble() * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //                         (exp663Param.getOrDefault("randomMax", 0.00001) - exp663Param.getOrDefault("randomMin", 0.000001))); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //             } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //                 statistic = gson.fromJson(jsonStr, CreativeStatistic.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //                 score = (exp663Param.getOrDefault("alpha", 1d) + Long.parseLong(statistic.getOrder())) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //                         / (exp663Param.getOrDefault("beta", 10000d) + Long.parseLong(statistic.getExp())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //             double s1 = score; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //             score = score * dto.getCpa() * dto.getBid1() * dto.getBid2(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //             Map<String, Object> ext = this.extMap(statistic, "663", dto.getCpa(), null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //                     exp663Param.getOrDefault("alpha", 1d), exp663Param.getOrDefault("beta", 10000d), null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //             ext.put("s1", s1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //             item.setExt(ext); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //             item.setScore(score); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //             item.setScore_type(663); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //         } catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //             log.error("svc=thompsonScorerByExp663 {}", gson.toJson(e.getStackTrace())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //         result.add(item); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //         i++; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //     Collections.sort(result); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //     return result; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public List<AdRankItem> thompsonScorerByExp663(ScoreParam param, List<AdPlatformCreativeDTO> adIdList) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<AdRankItem> result = new LinkedList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Map<Long, CreativeStatistic> creativeStatisticsMap = this.batchFindCreativeRedisCache(redisCreativeStatisticsPrefix, adIdList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        double alpha = exp663Param.getOrDefault("alpha", 0d); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        double beta = exp663Param.getOrDefault("beta", 0d); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        for (AdPlatformCreativeDTO dto : adIdList) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // 日志上报扩展参数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Map<String, Object> ext = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            double score = 0.0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                jsonStr=values.get(i); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if(jsonStr==null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    score = exp663Param.getOrDefault("randomMin",0.000001) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            + (random.nextDouble() * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            (exp663Param.getOrDefault("randomMax",0.00001 ) - exp663Param.getOrDefault("randomMin",0.000001 ))); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    statistic =gson.fromJson(jsonStr,CreativeStatistic.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    score = (exp663Param.getOrDefault("alpha",1d)+Long.parseLong(statistic.getOrder())) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            / (exp663Param.getOrDefault("beta",10000d)+Long.parseLong(statistic.getExp())) ; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                CreativeStatistic cidStatistics = creativeStatisticsMap.getOrDefault(dto.getCreativeId(), new CreativeStatistic()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                double order; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                double exp; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                order = cidStatistics.parseOrderToDouble(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                exp = cidStatistics.parseExpToDouble(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                double s1 = 0.0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                double a = order + alpha; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                double b = exp + beta; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (a != 0 && b != 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    s1 = a / b; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                double s1 = score; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                score=score*dto.getCpa()*dto.getBid1()*dto.getBid2(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                Map<String, Object> ext = this.extMap(statistic, "663", dto.getCpa(), null, exp663Param.getOrDefault("alpha", 1d), exp663Param.getOrDefault("beta", 10000d), null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                score = s1 * dto.getCpa() * dto.getBid1() * dto.getBid2(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ext.put("a", alpha); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ext.put("b", beta); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ext.put("order", order); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ext.put("exp", exp); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 ext.put("s1", s1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                item.setExt(ext); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                item.setScore(score); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                item.setScore_type(663); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            }catch (Exception e){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                log.error("svc=thompsonScorerByExp663 {}",gson.toJson(e.getStackTrace())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ext.put("bid1", dto.getBid1()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ext.put("bid2", dto.getBid2()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ext.put("pairOrSingle", "single"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ext.put("cidStatistic", JSON.toJSONString(cidStatistics)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ext.put("cpa", dto.getCpa()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ext.put("abCode", 663); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                log.error("svc=663exp, error: ", e); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            AdRankItem item = new AdRankItem(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            item.setCpa(dto.getCpa()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            item.setAdId(dto.getCreativeId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            item.setScore(score); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            item.setExt(ext); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            item.setVideoId(param.getVideoId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            item.setScore_type(663); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             result.add(item); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            i++; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        Collections.sort(result); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        result.sort(equalsRandomComparator()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return result; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    public List<AdRankItem> thompsonScorerByExp664(ScoreParam param,List<AdPlatformCreativeDTO> adIdList){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        List<AdRankItem> result=new LinkedList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public List<AdRankItem> thompsonScorerByExp664(ScoreParam param, List<AdPlatformCreativeDTO> adIdList) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<AdRankItem> result = new LinkedList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         String jsonStr; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        CreativeStatistic statistic=null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        List<String> redisKey=new LinkedList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        CreativeStatistic statistic = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<String> redisKey = new LinkedList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         adIdList.forEach(creativeDTO -> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            redisKey.add(redisVideoCreativeStatisticsPrefix+param.getVideoId()+"_"+creativeDTO.getCreativeId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            redisKey.add(redisVideoCreativeStatisticsPrefix + param.getVideoId() + "_" + creativeDTO.getCreativeId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        List<String> values=redisHelper.getValues(redisKey); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        int i=0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        double score=0d; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        for(AdPlatformCreativeDTO dto:adIdList){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            AdRankItem item=new AdRankItem(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<String> values = redisHelper.getValues(redisKey); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        int i = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        double score = 0d; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        for (AdPlatformCreativeDTO dto : adIdList) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            AdRankItem item = new AdRankItem(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             item.setVideoId(param.getVideoId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             item.setCpa(dto.getCpa()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             item.setAdId(dto.getCreativeId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                jsonStr=values.get(i); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if(jsonStr==null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    score = exp664Param.getOrDefault("randomMin",0.000001) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                jsonStr = values.get(i); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (jsonStr == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    score = exp664Param.getOrDefault("randomMin", 0.000001) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             + (random.nextDouble() * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            (exp664Param.getOrDefault("randomMax",0.00001 ) - exp664Param.getOrDefault("randomMin",0.000001 ))); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    statistic =gson.fromJson(jsonStr,CreativeStatistic.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    score = (exp664Param.getOrDefault("alpha",1d)+Long.parseLong(statistic.getOrder())) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            / (exp664Param.getOrDefault("beta",10000d)+Long.parseLong(statistic.getExp())) ; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            (exp664Param.getOrDefault("randomMax", 0.00001) - exp664Param.getOrDefault("randomMin", 0.000001))); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    statistic = gson.fromJson(jsonStr, CreativeStatistic.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    score = (exp664Param.getOrDefault("alpha", 1d) + Long.parseLong(statistic.getOrder())) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            / (exp664Param.getOrDefault("beta", 10000d) + Long.parseLong(statistic.getExp())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 double s1 = score; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                score=score*dto.getCpa()*dto.getBid1()*dto.getBid2(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                score = score * dto.getCpa() * dto.getBid1() * dto.getBid2(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 item.setScore(score); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                Map<String, Object> ext = this.extMap(statistic, "664", dto.getCpa(), null, exp663Param.getOrDefault("alpha", 1d), exp663Param.getOrDefault("beta", 10000d), null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                Map<String, Object> ext = this.extMap(statistic, "664", dto.getCpa(), null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        exp664Param.getOrDefault("alpha", 1d), exp664Param.getOrDefault("beta", 10000d), null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 ext.put("s1", s1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 item.setExt(ext); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 item.setScore_type(664); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            }catch (Exception e){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                log.error("svc=thompsonScorerByExp664 {}",gson.toJson(e.getStackTrace())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                log.error("svc=thompsonScorerByExp664 {}", gson.toJson(e.getStackTrace())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             result.add(item); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             i++; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -131,42 +192,44 @@ public class VideoAdThompsonScorerV2 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         Collections.sort(result); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return result; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    public List<AdRankItem> thompsonScorerByExp665(ScoreParam param,List<AdPlatformCreativeDTO> adIdList){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        List<AdRankItem> result=new LinkedList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public List<AdRankItem> thompsonScorerByExp665(ScoreParam param, List<AdPlatformCreativeDTO> adIdList) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<AdRankItem> result = new LinkedList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         String jsonStr; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         CreativeStatistic statistic = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        List<String> redisKey=new LinkedList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<String> redisKey = new LinkedList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         adIdList.forEach(creativeDTO -> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            redisKey.add(redisCreativeStatisticsPrefix+creativeDTO.getCreativeId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            redisKey.add(redisCreativeStatisticsPrefix + creativeDTO.getCreativeId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //view/sum(view) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        List<String> values=redisHelper.getValues(redisKey); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        int i=0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        double score=0d; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        for(AdPlatformCreativeDTO dto:adIdList){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            AdRankItem item=new AdRankItem(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // view/sum(view) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<String> values = redisHelper.getValues(redisKey); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        int i = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        double score = 0d; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        for (AdPlatformCreativeDTO dto : adIdList) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            AdRankItem item = new AdRankItem(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             item.setVideoId(param.getVideoId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             item.setCpa(dto.getCpa()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             item.setAdId(dto.getCreativeId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                jsonStr=values.get(i); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if(jsonStr==null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    score = betaSampler(exp665Param.getOrDefault("alpha",1d),exp665Param.getOrDefault("beta",100000d)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    statistic =gson.fromJson(jsonStr,CreativeStatistic.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    score = betaSampler(exp665Param.getOrDefault("alpha",1d)+Long.parseLong(statistic.getOrder()) , 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            (exp665Param.getOrDefault("beta",100000d)+Long.parseLong(statistic.getExp())))/ (1+exp665Param.getOrDefault("beta_k",9d)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                jsonStr = values.get(i); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (jsonStr == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    score = betaSampler(exp665Param.getOrDefault("alpha", 1d), exp665Param.getOrDefault("beta", 100000d)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    statistic = gson.fromJson(jsonStr, CreativeStatistic.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    score = betaSampler(exp665Param.getOrDefault("alpha", 1d) + Long.parseLong(statistic.getOrder()), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            (exp665Param.getOrDefault("beta", 100000d) + Long.parseLong(statistic.getExp()))) / (1 + exp665Param.getOrDefault("beta_k", 9d)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 double s1 = score; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                score=score*dto.getCpa()*dto.getBid1()*dto.getBid2(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                score = score * dto.getCpa() * dto.getBid1() * dto.getBid2(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 item.setScore(score); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 item.setScore_type(665); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                Map<String, Object> ext = this.extMap(statistic, "665", dto.getCpa(), null, exp663Param.getOrDefault("alpha", 1d), exp663Param.getOrDefault("beta", 10000d), null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                Map<String, Object> ext = this.extMap(statistic, "665", dto.getCpa(), null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        exp665Param.getOrDefault("alpha", 1d), exp665Param.getOrDefault("beta", 10000d), null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 ext.put("s1", s1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 item.setExt(ext); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            }catch (Exception e){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                log.error("svc=thompsonScorerByExp665 {}",gson.toJson(e.getStackTrace())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                log.error("svc=thompsonScorerByExp665 {}", gson.toJson(e.getStackTrace())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             result.add(item); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             i++; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -175,69 +238,142 @@ public class VideoAdThompsonScorerV2 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         Collections.sort(result); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return result; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    public List<AdRankItem> thompsonScorerByExp666(ScoreParam param,List<AdPlatformCreativeDTO> adIdList){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        List<AdRankItem> result=new LinkedList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        String jsonStr; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        CreativeStatistic statistic = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // public List<AdRankItem> thompsonScorerByExp666(ScoreParam param,List<AdPlatformCreativeDTO> adIdList){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //     List<AdRankItem> result=new LinkedList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //     String jsonStr; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //     CreativeStatistic statistic = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //     List<String> redisKey=new LinkedList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //     adIdList.forEach(creativeDTO -> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //         redisKey.add(redisCreativeStatisticsPrefix+creativeDTO.getCreativeId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //     }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //     List<String> values=redisHelper.getValues(redisKey); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //     List<String> combineKeys=new LinkedList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //     adIdList.forEach(creativeDTO -> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //         combineKeys.add(redisVideoCreativeStatisticsPrefix+param.getVideoId()+"_"+creativeDTO.getCreativeId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //     }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //     List<String> combineValues=redisHelper.getValues(combineKeys); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //     int i=0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //     double score=0d; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //     for(AdPlatformCreativeDTO dto:adIdList){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //         String statisticType = "vid+cid"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //         AdRankItem item=new AdRankItem(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //         item.setVideoId(param.getVideoId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //         item.setCpa(dto.getCpa()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //         item.setAdId(dto.getCreativeId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //         try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //             jsonStr=combineValues.get(i); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //             if(jsonStr==null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //                 jsonStr=values.get(i); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //                 if(jsonStr==null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //                     statisticType = ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //                     score = betaSampler(exp666Param.getOrDefault("alpha",1d),exp666Param.getOrDefault("beta",100000d)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //                 }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //                     statisticType = "cid"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //                     statistic =gson.fromJson(jsonStr,CreativeStatistic.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //                     score = betaSampler(exp666Param.getOrDefault("alpha",1d)+Long.parseLong(statistic.getOrder()) , 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //                             (exp666Param.getOrDefault("beta",100000d)+Long.parseLong(statistic.getExp()))/(1+exp666Param.getOrDefault("beta_k",9d))) ; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //             }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //                 statistic =gson.fromJson(jsonStr,CreativeStatistic.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //                 if(Double.parseDouble(statistic.getExp())>exp666Param.getOrDefault("viewThreshold",5000d)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //                     score = betaSampler(exp666Param.getOrDefault("alpha",1d)+Long.parseLong(statistic.getOrder()) , 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //                             (exp666Param.getOrDefault("beta",100000d)+Long.parseLong(statistic.getExp()))/(1+exp666Param.getOrDefault("beta_k",9d))) ; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //                 } else if( values.get(i)!=null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //                     statistic =gson.fromJson(values.get(i),CreativeStatistic.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //                     score = betaSampler(exp666Param.getOrDefault("alpha",1d)+Long.parseLong(statistic.getOrder()) , 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //                             (exp666Param.getOrDefault("beta",100000d)+Long.parseLong(statistic.getExp()))/(1+exp666Param.getOrDefault("beta_k",9d))) ; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //                 }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //                     score = betaSampler(exp666Param.getOrDefault("alpha",1d),exp666Param.getOrDefault("beta",100000d)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //             double s1 = score; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //             score=score*dto.getCpa()*dto.getBid1()*dto.getBid2(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //             item.setScore(score); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //             item.setScore_type(666); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //             Map<String, Object> ext = this.extMap(statistic, "666", dto.getCpa(), exp666Param.getOrDefault("viewThreshold",5000d), exp663Param.getOrDefault("alpha", 1d), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //                     exp663Param.getOrDefault("beta", 10000d), exp666Param.getOrDefault("beta_k",9d)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //             ext.put("s1", s1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //             ext.put("group_field", statisticType); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //             item.setExt(ext); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //         }catch (Exception e){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //             log.error("svc=thompsonScorerByExp666 {}",gson.toJson(e.getStackTrace())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //         result.add(item); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //         i++; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //     Collections.sort(result); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //     return result; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public List<AdRankItem> thompsonScorerByExp666(ScoreParam param, List<AdPlatformCreativeDTO> adIdList) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<AdRankItem> result = new LinkedList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Map<Long, CreativeStatistic> creativeStatisticsMap = this.batchFindCreativeRedisCache(redisCreativeStatisticsPrefix, adIdList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Map<Long, CreativeStatistic> videoCreativeStatisticsMap = this.batchFindCreativeRedisCache(redisVideoCreativeStatisticsPrefix + param.getVideoId() + "_", adIdList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        double alpha = exp666Param.getOrDefault("alpha", 0d); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        double beta = exp666Param.getOrDefault("beta", 0d); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        double betaK = exp666Param.getOrDefault("beta_k", 0d) + 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        double viewThreshold = exp666Param.getOrDefault("viewThreshold", 7000d); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        List<String> redisKey=new LinkedList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        adIdList.forEach(creativeDTO -> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            redisKey.add(redisCreativeStatisticsPrefix+creativeDTO.getCreativeId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        List<String> values=redisHelper.getValues(redisKey); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        List<String> combineKeys=new LinkedList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        adIdList.forEach(creativeDTO -> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            combineKeys.add(redisVideoCreativeStatisticsPrefix+param.getVideoId()+"_"+creativeDTO.getCreativeId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        List<String> combineValues=redisHelper.getValues(combineKeys); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        int i=0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        double score=0d; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        for(AdPlatformCreativeDTO dto:adIdList){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            AdRankItem item=new AdRankItem(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            item.setVideoId(param.getVideoId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            item.setCpa(dto.getCpa()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            item.setAdId(dto.getCreativeId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        for (AdPlatformCreativeDTO dto : adIdList) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Long cid = dto.getCreativeId(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            String pairOrSingle; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            double order; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            double exp; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            CreativeStatistic vidCidStatistics = videoCreativeStatisticsMap.getOrDefault(cid, new CreativeStatistic()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            CreativeStatistic cidStatistics = creativeStatisticsMap.getOrDefault(cid, new CreativeStatistic()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // 日志上报扩展参数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Map<String, Object> ext = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            double score = 0.0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                jsonStr=combineValues.get(i); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if(jsonStr==null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    jsonStr=values.get(i); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    if(jsonStr==null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        score = betaSampler(exp666Param.getOrDefault("alpha",1d),exp666Param.getOrDefault("beta",100000d)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        statistic =gson.fromJson(jsonStr,CreativeStatistic.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        score = betaSampler(exp666Param.getOrDefault("alpha",1d)+Long.parseLong(statistic.getOrder()) , 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                (exp666Param.getOrDefault("beta",100000d)+Long.parseLong(statistic.getExp()))/(1+exp666Param.getOrDefault("beta_k",9d))) ; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    statistic =gson.fromJson(jsonStr,CreativeStatistic.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    if(Double.parseDouble(statistic.getExp())>exp666Param.getOrDefault("viewThreshold",5000d)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        score = betaSampler(exp666Param.getOrDefault("alpha",1d)+Long.parseLong(statistic.getOrder()) , 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                (exp666Param.getOrDefault("beta",100000d)+Long.parseLong(statistic.getExp()))/(1+exp666Param.getOrDefault("beta_k",9d))) ; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    } else if( values.get(i)!=null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        statistic =gson.fromJson(values.get(i),CreativeStatistic.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        score = betaSampler(exp666Param.getOrDefault("alpha",1d)+Long.parseLong(statistic.getOrder()) , 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                (exp666Param.getOrDefault("beta",100000d)+Long.parseLong(statistic.getExp()))/(1+exp666Param.getOrDefault("beta_k",9d))) ; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        score = betaSampler(exp666Param.getOrDefault("alpha",1d),exp666Param.getOrDefault("beta",100000d)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (vidCidStatistics.parseExpToDouble() >= viewThreshold) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    pairOrSingle = "pair"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    order = vidCidStatistics.parseOrderToDouble(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    exp = vidCidStatistics.parseExpToDouble(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    pairOrSingle = "single"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    order = cidStatistics.parseOrderToDouble(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    exp = cidStatistics.parseExpToDouble(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                double s1 = score; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                score=score*dto.getCpa()*dto.getBid1()*dto.getBid2(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                item.setScore(score); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                item.setScore_type(666); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                Map<String, Object> ext = this.extMap(statistic, "666", dto.getCpa(), exp666Param.getOrDefault("viewThreshold",5000d), exp663Param.getOrDefault("alpha", 1d), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        exp663Param.getOrDefault("beta", 10000d), exp666Param.getOrDefault("beta_k",9d)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                ext.put("s1", s1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                item.setExt(ext); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                double s1 = this.betaSampler((alpha + order), ((beta + exp) / betaK)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                score = s1 * dto.getCpa() * dto.getBid1() * dto.getBid2(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            }catch (Exception e){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                log.error("svc=thompsonScorerByExp666 {}",gson.toJson(e.getStackTrace())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ext.put("a", alpha); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ext.put("b", beta); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ext.put("bk", betaK); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ext.put("order", order); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ext.put("exp", exp); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ext.put("s1", s1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ext.put("bid1", dto.getBid1()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ext.put("bid2", dto.getBid2()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ext.put("viewThreshold", viewThreshold); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ext.put("pairOrSingle", pairOrSingle); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ext.put("cidStatistic", JSON.toJSONString(cidStatistics)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ext.put("vidCidStatistic", JSON.toJSONString(vidCidStatistics)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ext.put("cpa", dto.getCpa()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ext.put("abCode", 666); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                log.error("svc=666exp, error: ", e); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            AdRankItem item = new AdRankItem(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            item.setCpa(dto.getCpa()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            item.setAdId(dto.getCreativeId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            item.setScore(score); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            item.setExt(ext); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            item.setVideoId(param.getVideoId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            item.setScore_type(666); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             result.add(item); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            i++; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        Collections.sort(result); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        result.sort(equalsRandomComparator()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return result; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -248,7 +384,7 @@ public class VideoAdThompsonScorerV2 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         Double videoCreativeExpSum = this.sumCreativeStatisticExp(videoCreativeStatisticsMap.values()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         List<AdRankItem> result = new ArrayList<>(adIdList.size()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        this.calcScore(result, adIdList,1d, creativeExpSum, videoCreativeExpSum, creativeStatisticsMap, videoCreativeStatisticsMap, exp669Param); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.calcScore(result, adIdList, 1d, creativeExpSum, videoCreativeExpSum, creativeStatisticsMap, videoCreativeStatisticsMap, exp669Param); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         result.sort(equalsRandomComparator()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         for (AdRankItem adRankItem : result) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -273,7 +409,7 @@ public class VideoAdThompsonScorerV2 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         for (AdRankItem adRankItem : result) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             adRankItem.setVideoId(param.getVideoId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             adRankItem.setScore_type(670); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (MapUtils.isNotEmpty(adRankItem.getExt())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (MapUtils.isNotEmpty(adRankItem.getExt())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 adRankItem.getExt().put("abCode", 670); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -281,7 +417,7 @@ public class VideoAdThompsonScorerV2 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return result; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    private void calcScore(List<AdRankItem> result, List<AdPlatformCreativeDTO> adIdList,Double alpha, Double cidBeta, Double vidCidBeta, Map<Long, CreativeStatistic> cidMap, Map<Long, CreativeStatistic> vidCidMap, Map<String, Double> expParam) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private void calcScore(List<AdRankItem> result, List<AdPlatformCreativeDTO> adIdList, Double alpha, Double cidBeta, Double vidCidBeta, Map<Long, CreativeStatistic> cidMap, Map<Long, CreativeStatistic> vidCidMap, Map<String, Double> expParam) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         for (AdPlatformCreativeDTO dto : adIdList) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             CreativeStatistic cidStatistic = cidMap.getOrDefault(dto.getCreativeId(), new CreativeStatistic()); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -308,7 +444,7 @@ public class VideoAdThompsonScorerV2 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             ext.put("vidCidStatistic", JSON.toJSONString(vidCidStatistic)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             ext.put("cpa", dto.getCpa()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            log.info("svc=699And670Score, score: {}, param: {}", score, JSON.toJSONString(expParam)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            log.info("svc=699And670Score, score: {}, param: {}", score, JSON.toJSONString(ext)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             AdRankItem item = new AdRankItem(); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -347,9 +483,6 @@ public class VideoAdThompsonScorerV2 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         double order = creativeStatistic.parseOrderToDouble() + alpha; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         double exp = creativeStatistic.parseExpToDouble() + beta; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (order == 0 || exp == 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            return 0.0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         log.info("calcThompsonScore.order: {}, exp: {}", order, exp); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return this.betaSampler(order, exp); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -395,7 +528,7 @@ public class VideoAdThompsonScorerV2 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return map; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    class CreativeStatistic{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    class CreativeStatistic { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         private String exp; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         private String click; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -416,7 +549,7 @@ public class VideoAdThompsonScorerV2 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return exp; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        public Double parseExpToDouble() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        public double parseExpToDouble() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (StringUtils.isBlank(exp)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 return 0.0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -434,8 +567,8 @@ public class VideoAdThompsonScorerV2 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return click; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        public Double parseClickToDouble(){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (StringUtils.isBlank(click)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        public double parseClickToDouble() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (StringUtils.isBlank(click)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 return 0.0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return Double.parseDouble(click); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -452,8 +585,8 @@ public class VideoAdThompsonScorerV2 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return order; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        public Double parseOrderToDouble(){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (StringUtils.isBlank(order)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        public double parseOrderToDouble() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (StringUtils.isBlank(order)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 return 0.0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return Double.parseDouble(order); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -470,40 +603,49 @@ public class VideoAdThompsonScorerV2 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return cpa; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        public Double parseCpaToDouble() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        public double parseCpaToDouble() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (StringUtils.isBlank(cpa)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 return 0.0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return Double.parseDouble(cpa); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     double betaSampler(double alpha, double beta) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (alpha == 0 || beta == 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return 0.0d; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         BetaDistribution betaSample = new BetaDistribution(alpha, beta); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return betaSample.sample(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Value("${ad.engine.new.thompson.exp.V2.663:{\"randomMin\":0.000001,\"randomMax\":0.00001,\"alpha\":1,\"beta\":10000}}") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    public void setExp663Param(String str){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        this.exp663Param=gson.fromJson(str,Map.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public void setExp663Param(String str) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.exp663Param = gson.fromJson(str, Map.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Value("${ad.engine.new.thompson.exp.V2.664:{}}") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    public void setExp664Param(String str){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        this.exp663Param=gson.fromJson(str,Map.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public void setExp664Param(String str) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.exp664Param = gson.fromJson(str, Map.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Value("${ad.engine.new.thompson.exp.V2.665:{}}") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    public void setExp665Param(String str){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        this.exp663Param=gson.fromJson(str,Map.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public void setExp665Param(String str) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.exp665Param = gson.fromJson(str, Map.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Value("${ad.engine.new.thompson.exp.V2.666:{}}") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    public void setExp666Param(String str){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        this.exp663Param=gson.fromJson(str,Map.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public void setExp666Param(String str) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.exp666Param = gson.fromJson(str, Map.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Value("${ad.engine.new.thompson.exp.V2.669:{}}") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    public void setExp669Param(String str){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        this.exp669Param=gson.fromJson(str,Map.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public void setExp669Param(String str) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.exp669Param = gson.fromJson(str, Map.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Value("${ad.engine.new.thompson.exp.V2.670:{}}") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    public void setExp670Param(String str){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        this.exp670Param=gson.fromJson(str,Map.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public void setExp670Param(String str) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.exp670Param = gson.fromJson(str, Map.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 |