datacollect/mytask/tasks_1004.py
2019-08-21 19:41:24 +08:00

101 lines
4.3 KiB
Python

# -*- coding: utf-8 -*-
from mytask.tga import GetFromTga
import logging
import json
log = logging.getLogger(__name__)
class TGA_event(GetFromTga):
def event_tap(self):
items = {'mainrankbtn': '登录界面:排行榜点击次数', 'mainshareitembtn': '登录界面:分享得道具点击次数', 'mainvsbtn': '登录界面:好友对战点击次数',
'gamerankbtn': '游戏界面:排行榜点击次数', 'settingbtn': '游戏界面:设置点击次数', 'clickitembtn|1': '锤子点击次数',
'clickitembtn|0': '贪吃娃点击次数', 'useskill': '小女孩点击次数', 'playrebornbtn': '复活继续点击次数',
'playagainbtn': '再玩一局点击次数', }
for item in items.keys():
if len(item.split("|")) == 2:
sql = f"""SELECT
count(1)
from
v_event_{self.suffix}
where
gameid='{self.gameid}'
and "channel"='{self.channelid}'
and "$part_event"='event_11_31'
and "button_name"='{item.split("|")[0]}'
and cast(json_extract(button_param,'$.itemid') as int) = {item.split("|")[1]}
and "$part_date"='{self.date}'"""
else:
sql = f"""SELECT
count(1)
from
v_event_{self.suffix}
where
gameid='{self.gameid}'
and "channel"='{self.channelid}'
and "$part_event"='event_11_31'
and "button_name"='{item}'
and "$part_date"='{self.date}'"""
try:
out = self.tga.get_data(sql)
temp = {}
temp['name'] = items[item]
temp['num'] = out[0][0]
self.write_tga_files(temp)
except Exception:
log.error("get data from tga failed!", exc_info=True)
def event_tap_new(self):
items = {'mainrankbtn': '登录界面:排行榜点击次数', 'mainshareitembtn': '登录界面:分享得道具点击次数', 'mainvsbtn': '登录界面:好友对战点击次数',
'gamerankbtn': '游戏界面:排行榜点击次数', 'settingbtn': '游戏界面:设置点击次数', 'clickitembtn|1': '锤子点击次数',
'clickitembtn|0': '贪吃娃点击次数', 'useskill': '小女孩点击次数', 'playrebornbtn': '复活继续点击次数',
'playagainbtn': '再玩一局点击次数', }
for item in items.keys():
if len(item.split("|")) == 2:
sql = f"""SELECT
count(1)
from
v_event_{self.suffix}
where
gameid='{self.gameid}'
and "channel"='{self.channelid}'
and "$part_event"='event_11_31'
and "button_name"='{item.split("|")[0]}'
and cast(json_extract(button_param,'$.itemid') as int) = {item.split("|")[1]}
and "$part_date"='{self.date}' and account_register_date BETWEEN timestamp'{self.date} 00:00:00'
and timestamp'{self.date} 23:59:59'"""
else:
sql = f"""SELECT
count(1)
from
v_event_{self.suffix}
where
gameid='{self.gameid}'
and "channel"='{self.channelid}'
and "$part_event"='event_11_31'
and "button_name"='{item}'
and "$part_date"='{self.date}'
and account_register_date BETWEEN timestamp'{self.date} 00:00:00'
and timestamp'{self.date} 23:59:59'"""
try:
out = self.tga.get_data(sql)
temp={}
temp['name']=items[item]
temp['num']=out[0][0]
self.write_tga_files(temp)
except Exception:
log.error("get data from tga failed!", exc_info=True)
def run_event_tap_1004(kwargs):
mytga = TGA_event(**kwargs)
mytga.event_tap()
def run_event_tap_new_1004(kwargs):
mytga = TGA_event(**kwargs)
mytga.event_tap_new()