|
@@ -1,14 +1,17 @@
|
1
|
1
|
package main
|
2
|
2
|
|
3
|
3
|
import (
|
|
4
|
+ "encoding/json"
|
4
|
5
|
"fmt"
|
5
|
6
|
"github.com/gin-gonic/gin"
|
|
7
|
+ "hash"
|
6
|
8
|
"math/rand"
|
7
|
9
|
"miads/adslib"
|
8
|
10
|
"miads/adslib/addata"
|
9
|
11
|
"miads/adslib/ads_checker"
|
10
|
12
|
"miads/adslib/city"
|
11
|
13
|
"miads/adslib/device"
|
|
14
|
+ "miads/adslib/encrypt"
|
12
|
15
|
"miads/adslib/graylog"
|
13
|
16
|
"miads/adslib/ip2region"
|
14
|
17
|
"miads/adslib/redis_data"
|
|
@@ -19,7 +22,13 @@ import (
|
19
|
22
|
"time"
|
20
|
23
|
)
|
21
|
24
|
|
22
|
|
-var DECRYPT_KEY = "%videoopen%!@#$%"
|
|
25
|
+var SECERET_KEY = "%videoopen%!@#$%"
|
|
26
|
+
|
|
27
|
+type Response struct {
|
|
28
|
+ Result int `json:"result"`
|
|
29
|
+ Msg string`json:"msg"`
|
|
30
|
+ AdsResult string`json:"ads_result"`
|
|
31
|
+}
|
23
|
32
|
|
24
|
33
|
func adsHandler(c *gin.Context) {
|
25
|
34
|
c.Header("Content-Type", "application/json")
|
|
@@ -353,8 +362,9 @@ func adsHandler(c *gin.Context) {
|
353
|
362
|
adData, xiaomiResponse, xiaomiRspAction, adDataNum, err = addata.GetAdsInfos(&dspInfo, advertiser)
|
354
|
363
|
}
|
355
|
364
|
|
356
|
|
- //can_mix_flag = 1
|
357
|
|
- //xiaomi_response_flag = 0
|
|
365
|
+ canMixFlag := 0
|
|
366
|
+ xiaomiResponseFlag := 0
|
|
367
|
+ response := Response{}
|
358
|
368
|
if adData != nil && len(adData.TargetAddition) > 1 {
|
359
|
369
|
realTarget := ""
|
360
|
370
|
if adData.Target != ""{
|
|
@@ -412,101 +422,113 @@ func adsHandler(c *gin.Context) {
|
412
|
422
|
serverActionResponse["server_video_timer"]=1
|
413
|
423
|
}
|
414
|
424
|
}
|
415
|
|
- //response_report_flag = 1
|
416
|
425
|
|
417
|
426
|
// 增加跟随订单
|
418
|
|
- if len(adData.TargetAddition) == 2 && server_action_response["server_video_finish"] == 1 && (dspInfo.ReqSource == "kuxin" or dspInfo.ReqSource == "zhiku") {
|
419
|
|
- //from thirds import tt_thirds
|
420
|
|
- //ads_item_new =yield tt_thirds.combine_order_by(ads_item_new,dsp_info)
|
|
427
|
+ if len(adData.TargetAddition) == 2 && serverActionResponse["server_video_finish"] == 1 && (dspInfo.ReqSource == "kuxin" || dspInfo.ReqSource == "zhiku") {
|
|
428
|
+ adData, err = addata.CombineOrderBy(adData, advertiser, &dspInfo)
|
|
429
|
+ if err != nil {
|
|
430
|
+ return err
|
|
431
|
+ }
|
421
|
432
|
}
|
|
433
|
+
|
422
|
434
|
//# 检查最后是否有click
|
423
|
435
|
//last_target_addition_infos = ads_item_new.get('target_addition',[])
|
424
|
|
- //for last_target_addition_info in last_target_addition_infos:
|
425
|
|
- //if last_target_addition_info['type']=="CLICK":
|
426
|
|
- //can_mix_flag = 0
|
427
|
|
- //break
|
428
|
|
- //if last_target_addition_info['type']=="VIDEO_TIMER":
|
429
|
|
- //can_mix_flag = 0
|
430
|
|
- //break
|
431
|
|
- //if new_ads_flag==0:
|
432
|
|
- //response.update(ads_item_new)
|
433
|
|
- //else:
|
434
|
|
- //encrypt_ads_item = self.prpcrypt_tools.to_encrypt_content(json.dumps(ads_item_new))
|
435
|
|
- //response['ads_result']=encrypt_ads_item
|
436
|
|
- //hour = int(time.strftime("%H",time.localtime(time.time())))
|
437
|
|
- //if (hour>=0 and hour<=23) and replace_flag==1:
|
438
|
|
- //random_num = abs(hash(ads_imei))%(10 ** 4)
|
439
|
|
- //if random_num<3000:
|
440
|
|
- //response_report_flag = 1
|
441
|
|
- //else:
|
442
|
|
- //response_report_flag = 0
|
443
|
|
- //if response_report_flag==1:
|
444
|
|
- //try:
|
445
|
|
- //add_beanstalk_response.BeanstalkHandle().add_ads_response_info(md5_imei,ads_ip,web.utf8(province),web.utf8(city),ads_item_new,dsp_city_code,req_source,real_imei,xiaomi_response,xiaomi_action,server_action_response,dsp_info.request_id,xiaomi_ads_data_num)
|
446
|
|
- //except:
|
447
|
|
- //log.send_try_except()
|
|
436
|
+ for _, targetAddition := range adData.TargetAddition {
|
|
437
|
+ if targetAddition.Type =="CLICK" || targetAddition.Type == "VIDEO_TIMER" {
|
|
438
|
+ canMixFlag = 0
|
|
439
|
+ break
|
|
440
|
+ }
|
|
441
|
+ }
|
|
442
|
+
|
|
443
|
+ if request.NewAdsFlag==0 {
|
|
444
|
+ //response.update(ads_item_new)
|
|
445
|
+ } else {
|
|
446
|
+ jsonBytes, err := json.Marshal(*adData)
|
|
447
|
+ if err != nil {
|
|
448
|
+ return err
|
|
449
|
+ }
|
|
450
|
+ encryptData, _ := encrypt.Encrypt(jsonBytes, []byte(SECERET_KEY))
|
|
451
|
+ response.AdsResult = encryptData
|
|
452
|
+ }
|
|
453
|
+
|
|
454
|
+ hour, _ := strconv.Atoi(time.Now().Format("01"))
|
|
455
|
+ if 0 <= hour && hour <=23 && replaceFlag ==1 {
|
|
456
|
+ randomNum := utils.Hash(imei) % 10000
|
|
457
|
+ if randomNum < 3000 {
|
|
458
|
+ //add_beanstalk_response.BeanstalkHandle().add_ads_response_info(md5_imei,ads_ip,web.utf8(province),web.utf8(city),ads_item_new,dsp_city_code,req_source,real_imei,xiaomi_response,xiaomi_action,server_action_response,dsp_info.request_id,xiaomi_ads_data_num)
|
|
459
|
+ }
|
|
460
|
+ }
|
|
461
|
+ }
|
|
462
|
+ if canMixFlag==1 {
|
|
463
|
+ response.Result = 2
|
|
464
|
+ response.Msg = "no ads"
|
|
465
|
+ if xiaomiResponseFlag==1 {
|
|
466
|
+ response.Result = 0
|
|
467
|
+ response.Msg = "ok"
|
|
468
|
+ }
|
|
469
|
+ // 增加打底广告
|
|
470
|
+ if (dspInfo.ReqSource == "kuxin" || dspInfo.ReqSource == "zhiku") && !needCotrol ==1 && !isBlackImei {
|
|
471
|
+ shortMessage := "kong"
|
|
472
|
+ // 先跑定投
|
|
473
|
+ customAdData, err := addata.GetCustomAdsInfos(&dspInfo, advertiser, 0, 0, xiaomiResponseFlag)
|
|
474
|
+ if err != nil {
|
|
475
|
+ return err
|
|
476
|
+ }
|
|
477
|
+ // 定投没有就跑其他的
|
|
478
|
+ if customAdData == nil {
|
|
479
|
+ customAdData, err = addata.GetCustomAdsInfos(&dspInfo, advertiser, 0, 1, xiaomiResponseFlag)
|
|
480
|
+ if err != nil {
|
|
481
|
+ return err
|
|
482
|
+ }
|
|
483
|
+ }
|
|
484
|
+ device.SetAdsTagLog(advertiser, dspInfo.ReqSource,"ADS_ZIYOU_GET", cityCode) // 广告获取成功
|
|
485
|
+ if customAdData != nil {
|
|
486
|
+ shortMessage = "ads_tt_thirds"
|
|
487
|
+ }
|
|
488
|
+ if customAdData != nil && customAdData.OrderName == "mh_dsp" && xiaomiResponseFlag==0 {
|
|
489
|
+ //redis_device.set_ads_tag_log(advertiser,req_source,'ADS_ZIYOU_MH',dsp_city_code) # 广告获取成功
|
|
490
|
+ //#如果是外部dsp,走这个逻辑
|
|
491
|
+ //from thirds import xiaomi_extra
|
|
492
|
+ //extra_item,ads_item = yield xiaomi_extra.get_ads_infos(dsp_info)
|
|
493
|
+ //short_message = "ads_vast_response"
|
|
494
|
+ }
|
|
495
|
+ //if extra_item and extra_item['order_name']=="xiaodu_dsp" and xiaomi_response_flag==0:
|
|
496
|
+ //redis_device.set_ads_tag_log(advertiser,req_source,'ADS_ZIYOU_XIAODU',dsp_city_code) # 广告获取成功
|
|
497
|
+ //from thirds import xiaodu
|
|
498
|
+ //extra_item,_ = yield xiaodu.get_ads_infos(dsp_info)
|
|
499
|
+ //short_message = "ads_xiaodu_response"
|
|
500
|
+ //if extra_item is not None and short_message in ['ads_xiaodu_response','ads_vast_response','ads_tt_thirds']:
|
|
501
|
+ //response_data_report = {}
|
|
502
|
+ //response_data_report['ip'] = ads_ip
|
|
503
|
+ //response_data_report['short_message'] = short_message
|
|
504
|
+ //response_data_report['req_source'] = req_source
|
|
505
|
+ //response_data_report['response_vast'] = json.dumps(extra_item)
|
|
506
|
+ //response_data_report['order_name']=order_name
|
|
507
|
+ //response_data_report['advertiser']=advertiser
|
|
508
|
+ //log.send_to_graylog_tornado(gelf_data=response_data_report)
|
|
509
|
+ //if short_message=="ads_tt_thirds":
|
|
510
|
+ //from thirds import thirds_mix_xiaomi
|
|
511
|
+ //extra_item = thirds_mix_xiaomi.mix_last_infos(extra_item,response)
|
|
512
|
+ //if (extra_item) != None:
|
|
513
|
+ //redis_device.set_ads_tag_log(advertiser,req_source,'ADS_ZIYOU_HAVE',dsp_city_code) # 广告获取成功
|
|
514
|
+ //if req_source in ['zhiku']:
|
|
515
|
+ //response['result']=0
|
|
516
|
+ //response['msg']='ok'
|
|
517
|
+ //response['ads_result']= self.prpcrypt_tools.to_encrypt_content(json.dumps(extra_item))
|
|
518
|
+ //self.report_graylog(json.dumps(extra_item))
|
|
519
|
+ //self.write(json.dumps(response))
|
|
520
|
+ //self.finish()
|
|
521
|
+ //return
|
|
522
|
+ //else:
|
|
523
|
+ //extra_item['result']=0
|
|
524
|
+ //extra_item['msg']="ok"
|
|
525
|
+ //json_response = json.dumps(extra_item)
|
|
526
|
+ //self.report_graylog(json_response)
|
|
527
|
+ //self.write(json_response)
|
|
528
|
+ //self.finish()
|
|
529
|
+ //return
|
|
530
|
+ }
|
448
|
531
|
}
|
449
|
|
- //if can_mix_flag==1:
|
450
|
|
- //response['result'] = 2
|
451
|
|
- //response['msg'] = 'no ads'
|
452
|
|
- //if xiaomi_response_flag==1:
|
453
|
|
- //response['result'] = 0
|
454
|
|
- //response['msg'] = 'ok'
|
455
|
|
- //#增加打底广告
|
456
|
|
- //if req_source in ['kuxin','zhiku'] and freq_contro_flag==1 and device_black_flag==0:
|
457
|
|
- //short_message = "kong"
|
458
|
|
- //## 先跑定投
|
459
|
|
- //from thirds import tt_thirds
|
460
|
|
- //ads_item,extra_item = yield tt_thirds.get_ads_infos(dsp_info,fix_flag=0,xiaomi_has_flag=xiaomi_response_flag)
|
461
|
|
- //## 定投没有就跑其他的
|
462
|
|
- //if not extra_item:
|
463
|
|
- //from thirds import tt_thirds
|
464
|
|
- //ads_item,extra_item = yield tt_thirds.get_ads_infos(dsp_info,fix_flag=1,xiaomi_has_flag=xiaomi_response_flag)
|
465
|
|
- //redis_device.set_ads_tag_log(advertiser,req_source,'ADS_ZIYOU_GET',dsp_city_code) # 广告获取成功
|
466
|
|
- //if extra_item:
|
467
|
|
- //short_message = "ads_tt_thirds"
|
468
|
|
- //order_name = extra_item['order_name']
|
469
|
|
- //if extra_item and extra_item['order_name'] == 'mh_dsp' and xiaomi_response_flag==0:
|
470
|
|
- //redis_device.set_ads_tag_log(advertiser,req_source,'ADS_ZIYOU_MH',dsp_city_code) # 广告获取成功
|
471
|
|
- //#如果是外部dsp,走这个逻辑
|
472
|
|
- //from thirds import xiaomi_extra
|
473
|
|
- //extra_item,ads_item = yield xiaomi_extra.get_ads_infos(dsp_info)
|
474
|
|
- //short_message = "ads_vast_response"
|
475
|
|
- //if extra_item and extra_item['order_name']=="xiaodu_dsp" and xiaomi_response_flag==0:
|
476
|
|
- //redis_device.set_ads_tag_log(advertiser,req_source,'ADS_ZIYOU_XIAODU',dsp_city_code) # 广告获取成功
|
477
|
|
- //from thirds import xiaodu
|
478
|
|
- //extra_item,_ = yield xiaodu.get_ads_infos(dsp_info)
|
479
|
|
- //short_message = "ads_xiaodu_response"
|
480
|
|
- //if extra_item is not None and short_message in ['ads_xiaodu_response','ads_vast_response','ads_tt_thirds']:
|
481
|
|
- //response_data_report = {}
|
482
|
|
- //response_data_report['ip'] = ads_ip
|
483
|
|
- //response_data_report['short_message'] = short_message
|
484
|
|
- //response_data_report['req_source'] = req_source
|
485
|
|
- //response_data_report['response_vast'] = json.dumps(extra_item)
|
486
|
|
- //response_data_report['order_name']=order_name
|
487
|
|
- //response_data_report['advertiser']=advertiser
|
488
|
|
- //log.send_to_graylog_tornado(gelf_data=response_data_report)
|
489
|
|
- //if short_message=="ads_tt_thirds":
|
490
|
|
- //from thirds import thirds_mix_xiaomi
|
491
|
|
- //extra_item = thirds_mix_xiaomi.mix_last_infos(extra_item,response)
|
492
|
|
- //if (extra_item) != None:
|
493
|
|
- //redis_device.set_ads_tag_log(advertiser,req_source,'ADS_ZIYOU_HAVE',dsp_city_code) # 广告获取成功
|
494
|
|
- //if req_source in ['zhiku']:
|
495
|
|
- //response['result']=0
|
496
|
|
- //response['msg']='ok'
|
497
|
|
- //response['ads_result']= self.prpcrypt_tools.to_encrypt_content(json.dumps(extra_item))
|
498
|
|
- //self.report_graylog(json.dumps(extra_item))
|
499
|
|
- //self.write(json.dumps(response))
|
500
|
|
- //self.finish()
|
501
|
|
- //return
|
502
|
|
- //else:
|
503
|
|
- //extra_item['result']=0
|
504
|
|
- //extra_item['msg']="ok"
|
505
|
|
- //json_response = json.dumps(extra_item)
|
506
|
|
- //self.report_graylog(json_response)
|
507
|
|
- //self.write(json_response)
|
508
|
|
- //self.finish()
|
509
|
|
- //return
|
510
|
532
|
//redis_tools.set_ads_real_request_num(advertiser)
|
511
|
533
|
//json_response = json.dumps(response)
|
512
|
534
|
//try:
|