def write_behavior_attend(self, date_pair, stat_base, sheet_name): new_sheet = self.xls_writer.new_sheet(sheet_name, self.wbk) new_sheet.col(0).width = 256 * 20 line_num = [0] res_dict = self.get_behavior_attend([0, 0], date_pair, stat_base) write_standard_form(res_dict, new_sheet, line_num, self.style) line_num[0] += 1 res_dict = self.get_behavior_attend([1, 3], date_pair, stat_base) write_standard_form(res_dict, new_sheet, line_num, self.style) line_num[0] += 1 res_dict = self.get_behavior_attend([4, 8], date_pair, stat_base) write_standard_form(res_dict, new_sheet, line_num, self.style) line_num[0] += 1 res_dict = self.get_behavior_attend([9, 12], date_pair, stat_base) write_standard_form(res_dict, new_sheet, line_num, self.style) line_num[0] += 1 res_dict = self.get_behavior_attend([13, 15], date_pair, stat_base) write_standard_form(res_dict, new_sheet, line_num, self.style) line_num[0] += 1 pass
def execute(self, uid_list, start_date, end_date, *cycle): file_name = ConfParameters.ConfParameters( ).save_path + 'Periodic_Vip_' + start_date + '-' + end_date + '.xls' if len(cycle) > 0: [res_dict_money, res_dict_vip] = self.get_periodic_vip(uid_list, start_date, end_date, cycle[0]) else: [res_dict_money, res_dict_vip] = self.get_periodic_vip(uid_list, start_date, end_date) msg = '*周期:' + str(str(self.cycle)) + '天' new_sheet = self.xls_writer.new_sheet('周期付费计算表-按实际付费金额', self.wbk) new_sheet.col(0).width = 256 * 20 line_num = [0] write_standard_form(res_dict_money, new_sheet, line_num, self.style) self.xls_writer.insert_xls([msg], new_sheet, line_num) new_sheet1 = self.xls_writer.new_sheet('周期付费计算表-按折算VIP', self.wbk) new_sheet1.col(0).width = 256 * 20 line_num1 = [0] write_standard_form(res_dict_vip, new_sheet1, line_num1, self.style) self.xls_writer.insert_xls([msg], new_sheet1, line_num1) self.wbk.save(file_name) self.db.close()
def write_ship_info(self): res_dict = get_ship_info(self.input_dict) new_sheet = self.xls_writer.new_sheet('阵容信息', self.wbk) new_sheet.col(0).width = 256 * 20 new_sheet.col(1).width = 256 * 20 line_num = [0] write_standard_form(res_dict, new_sheet, line_num, self.style)
def write_module_time(self): res_dict = get_module_time_cost(self.input_dict) new_sheet = self.xls_writer.new_sheet('模块时长', self.wbk) new_sheet.col(0).width = 256 * 20 new_sheet.col(1).width = 256 * 20 line_num = [0] write_standard_form(res_dict, new_sheet, line_num, self.style)
def __general_report(self): res_dict = general_report(self.input_dict) if res_dict is not None: new_sheet = self.xls_writer.new_sheet('概览', self.wbk) new_sheet.col(0).width = 256 * 20 line_num = [0] write_standard_form(res_dict, new_sheet, line_num, self.style) pass
def __user_guidance(self): res_dict = user_guidance(self.input_dict, 6, self.reg_stat_base) # print(res_dict) if res_dict is not None: new_sheet = self.xls_writer.new_sheet('新用户等级与通过率', self.wbk) new_sheet.col(0).width = 256 * 20 line_num = [0] write_standard_form(res_dict, new_sheet, line_num, self.style)
def write_item_buy(self): res_raw = get_item_buy(self.input_dict) new_sheet = self.xls_writer.new_sheet('商品购买', self.wbk) new_sheet.col(0).width = 256 * 20 new_sheet.col(1).width = 256 * 20 new_sheet.col(2).width = 256 * 20 line_num = [0] write_standard_form(res_raw, new_sheet, line_num, self.style)
def __event_login(self): res_dict = event_login(self.input_dict, self.reg_stat_base) # print(res_dict) if res_dict is not None: new_sheet = self.xls_writer.new_sheet('启动加载项', self.wbk) new_sheet.col(0).width = 256 * 20 line_num = [0] write_standard_form(res_dict, new_sheet, line_num, self.style)
def write_behavior_attend(self): [res_raw, res_ratio] = get_module_attend_rate(self.input_dict) new_sheet = self.xls_writer.new_sheet('各玩法参与度', self.wbk) new_sheet.col(0).width = 256 * 20 new_sheet.col(1).width = 256 * 20 line_num = [0] write_standard_form(res_raw, new_sheet, line_num, self.style) line_num[0] += 1 write_standard_form(res_ratio, new_sheet, line_num, self.style)
def write_tech_info(self): res_dict = tech_people(self.input_dict) new_sheet = self.xls_writer.new_sheet('最大日期科技人数', self.wbk) new_sheet.col(0).width = 256 * 20 new_sheet.col(1).width = 256 * 20 line_num = [0] write_standard_form(res_dict, new_sheet, line_num, self.style) line_num[0] += 1 res_dict = tech_avglevel(self.input_dict) write_standard_form(res_dict, new_sheet, line_num, self.style)
def write_shopexchange(self): shopidlist = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15] new_sheet = self.xls_writer.new_sheet('商场购买', self.wbk) new_sheet.col(0).width = 256 * 20 new_sheet.col(1).width = 256 * 20 line_num = [0] for i in shopidlist: res_dict = shop_exchange(self.input_dict, i) write_standard_form(res_dict, new_sheet, line_num, self.style) line_num[0] += 1
def __online_time(self): res_dict_list = online_time(self.input_dict, self.act_stat_base, self.pay_base, self.current_rate, *self.levellist) if res_dict_list is not None: new_sheet = self.xls_writer.new_sheet('人均在线时长', self.wbk) new_sheet.col(0).width = 256 * 20 line_num = [0] for i in res_dict_list: write_standard_form(i, new_sheet, line_num, self.style) line_num[0] += 2
def execute(start_date, end_date): log = LogQuery(start_date, end_date) files = log.event_file_str() # by time # cmd = 'grep -h -s \'context:0-battleError_\' ' + files + '|grep -v \'chanel:1077\'|awk -F \',\' \'{OFS=\" \";print $1,$4}\'|awk -F \' \' \'{OFS=\",\";print substr($2,1,4),$3}\'|awk -F \',\' \'{sum[$1\",\"$2]=sum[$1\",\"$2]+1} END {OFS=\",\";for(i in sum)print i,sum[i]}\'' # by date # cmd = 'grep -h -s \'context:0-battleError_\' ' + files + '|grep -v \'chanel:1077\'|awk -F \',\' \'{OFS=\" \";print $1,$4}\'|awk -F \' \' \'{OFS=\",\";print $1,$3}\'|awk -F \',\' \'{sum[$1\",\"$2]=sum[$1\",\"$2]+1} END {OFS=\",\";for(i in sum)print i,sum[i]}\'' # xianfeng only cmd = 'grep -h -s \'context:0-battleError_\' ' + files + '|grep \'chanel:1077\'|awk -F \',\' \'{OFS=\" \";print $1,$4}\'|awk -F \' \' \'{OFS=\",\";print $1,$3}\'|awk -F \',\' \'{sum[$1\",\"$2]=sum[$1\",\"$2]+1} END {OFS=\",\";for(i in sum)print i,sum[i]}\'' print(cmd) result = log.cmd_compute(cmd) time_list = list() error_type = list() data_dict = dict() for line in result: line = line.strip() array = line.split(',') time0 = array[0] error = array[1] count = int(array[2]) if time0 not in time_list: time_list.append(time0) if error not in error_type: error_type.append(error) if error not in data_dict.keys(): data_dict[error] = dict() data_dict[error][time0] = count time_list = sorted(time_list) error_type = sorted(error_type) print('time_list:' + str(len(time_list))) print('error_type:' + str(len(error_type))) res_data_raw = dict() res_data_raw['data_dict'] = data_dict res_data_raw['X_list'] = time_list res_data_raw['Y_list'] = error_type res_data_raw['default_value'] = 0 res_data_raw['head_name'] = 'BATTLE_ERROR' res_data_raw['note'] = '*时时战斗报错,统计时间:' + start_date + '-' + end_date file_name = ConfParameters( ).save_path + 'BATTLE_ERROR_' + start_date + '-' + end_date + '.xls' wbk = xlwt.Workbook() xls_writer = EasyXls() style = xlwt.XFStyle() style.borders = xls_writer.borders new_sheet = xls_writer.new_sheet('BATTLE_ERROR', wbk) new_sheet.col(0).width = 256 * 20 line_num = [0] write_standard_form(res_data_raw, new_sheet, line_num, style) wbk.save(file_name)
def write_diamond_cost(self): res_dict = get_diamond_times(self.input_dict) new_sheet = self.xls_writer.new_sheet('钻石消耗', self.wbk) new_sheet.col(0).width = 256 * 20 new_sheet.col(1).width = 256 * 20 line_num = [0] res_dict = get_diamond_people(self.input_dict) write_standard_form(res_dict, new_sheet, line_num, self.style) line_num[0] += 1 # res_dict = get_diamond_times(self.input_dict) # write_standard_form(res_dict, new_sheet, line_num, self.style) line_num[0] += 1 res_dict = get_diamond_cost(self.input_dict) write_standard_form(res_dict, new_sheet, line_num, self.style)
def write_xls(self): sheet_name = '日本_等级差异' new_sheet = self.xls_writer.new_sheet(sheet_name, self.wbk) new_sheet.col(0).width = 256 * 20 line_num = [0] res_dict = self.get_battle_info('level', self.stat_jp, sheet_name) write_standard_form(res_dict, new_sheet, line_num, self.style) sheet_name = '日本_VIP差异' new_sheet = self.xls_writer.new_sheet(sheet_name, self.wbk) new_sheet.col(0).width = 256 * 20 line_num = [0] res_dict = self.get_battle_info('vip_level', self.stat_jp, sheet_name) write_standard_form(res_dict, new_sheet, line_num, self.style) sheet_name = '台湾_等级差异' new_sheet = self.xls_writer.new_sheet(sheet_name, self.wbk) new_sheet.col(0).width = 256 * 20 line_num = [0] res_dict = self.get_battle_info('level', self.stat_tw, sheet_name) write_standard_form(res_dict, new_sheet, line_num, self.style) sheet_name = '台湾_VIP差异' new_sheet = self.xls_writer.new_sheet(sheet_name, self.wbk) new_sheet.col(0).width = 256 * 20 line_num = [0] res_dict = self.get_battle_info('vip_level', self.stat_tw, sheet_name) write_standard_form(res_dict, new_sheet, line_num, self.style)
def run_xls(self, date_list, res_dict_list_old, res_dict_list_new): new_sheet = self.xls_writer.new_sheet( str(date_list[0]) + '期', self.wbk) new_sheet.col(0).width = 256 * 20 new_sheet.col(1).width = 256 * 20 line_num = [0] #增加写入情况 for i in range(len(res_dict_list_old)): write_standard_form(res_dict_list_old[i], new_sheet, line_num, self.style) line_num[0] += 2 for i in range(len(res_dict_list_new)): write_standard_form(res_dict_list_new[i], new_sheet, line_num, self.style) line_num[0] += 2
def write_vip_level(self): self.input_dict['channel_list'] = ['112003'] res_dict = vip_level(self.input_dict) new_sheet = self.xls_writer.new_sheet('最大日期VIP等级信息-112003', self.wbk) new_sheet.col(0).width = 256 * 20 line_num = [0] write_standard_form(res_dict, new_sheet, line_num, self.style) self.input_dict['channel_list'] = ['212003'] res_dict = vip_level(self.input_dict) new_sheet = self.xls_writer.new_sheet('最大日期VIP等级信息-212003', self.wbk) new_sheet.col(0).width = 256 * 20 line_num = [0] write_standard_form(res_dict, new_sheet, line_num, self.style) self.input_dict['channel_list'] = []
def write_dailydiscount(self): res_dict = everyday_buy_people(self.input_dict) new_sheet = self.xls_writer.new_sheet('每日折扣', self.wbk) new_sheet.col(0).width = 256 * 20 new_sheet.col(1).width = 256 * 20 line_num = [0] # write_standard_form(res_dict1, new_sheet, line_num, self.style) # line_num[0] += 1 # res_dict2 = everyday_buy(self.input_dict, 2) # write_standard_form(res_dict2, new_sheet, line_num, self.style) # line_num[0] += 1 # res_dict3 = everyday_buy(self.input_dict, 3) # write_standard_form(res_dict3, new_sheet, line_num, self.style) # line_num[0] += 1 # res_dict4 = everyday_active(self.input_dict) # write_standard_form(res_dict4, new_sheet, line_num, self.style) write_standard_form(res_dict, new_sheet, line_num, self.style) line_num[0] += 1 res_dict = everyday_buy_times(self.input_dict) write_standard_form(res_dict, new_sheet, line_num, self.style)
def __life_time(self): [ res_dict, res_dict_remain, res_dict_remain_ratio, res_dict_lost, res_dict_lost_life ] = life_time_compute(self.input_dict, self.levellist) new_sheet = self.xls_writer.new_sheet('用户生命周期', self.wbk) new_sheet.col(0).width = 256 * 20 line_num = [0] write_standard_form(res_dict, new_sheet, line_num, self.style) line_num[0] += 2 write_standard_form(res_dict_remain, new_sheet, line_num, self.style) line_num[0] += 2 write_standard_form(res_dict_remain_ratio, new_sheet, line_num, self.style) line_num[0] += 2 write_standard_form(res_dict_lost, new_sheet, line_num, self.style) line_num[0] += 2 write_standard_form(res_dict_lost_life, new_sheet, line_num, self.style) line_num[0] += 2
def run_xls(self,date_list,res_dict_list1,res_dict_list2,res_dict_list3,res_dict_list4,str1): new_sheet = self.xls_writer.new_sheet(str(date_list[0])+'期'+str1, self.wbk) new_sheet.col(0).width = 256 * 20 new_sheet.col(1).width = 256 * 20 line_num = [0] #增加写入情况 for i in range(len(res_dict_list1)): write_standard_form(res_dict_list1[i],new_sheet,line_num,self.style) line_num[0]+=2 for i in range(len(res_dict_list2)): write_standard_form(res_dict_list2[i],new_sheet,line_num,self.style) line_num[0]+=2 for i in range(len(res_dict_list3)): write_standard_form(res_dict_list3[i],new_sheet,line_num,self.style) line_num[0]+=2 for i in range(len(res_dict_list4)): write_standard_form(res_dict_list4[i],new_sheet,line_num,self.style) line_num[0]+=2
def write_buy_oil(self): res_dict = buy_oil_people(self.input_dict) new_sheet = self.xls_writer.new_sheet('原油购买', self.wbk) new_sheet.col(0).width = 256 * 20 line_num = [0] write_standard_form(res_dict, new_sheet, line_num, self.style) line_num[0] += 1 res_dict = buy_oil_times(self.input_dict) write_standard_form(res_dict, new_sheet, line_num, self.style) line_num[0] += 1 res_dict = buy_oil_diamond(self.input_dict) write_standard_form(res_dict, new_sheet, line_num, self.style)
def __pay_motivation(self): res_dict, res_pay_users, res_pay_money = pay_motivation( self.input_dict, self.levellist) if res_dict is not None: new_sheet = self.xls_writer.new_sheet('付费激励', self.wbk) new_sheet.col(0).width = 256 * 20 line_num = [0] write_standard_form(res_dict, new_sheet, line_num, self.style) line_num[0] = line_num[0] + 2 write_standard_form(res_pay_users, new_sheet, line_num, self.style) line_num[0] = line_num[0] + 2 write_standard_form(res_pay_money, new_sheet, line_num, self.style) pass