gistfile1.txt =%s $3=%s %s){print $3,$4,$5,$6,$7,$8,$9}else{}}'EOT; $cmd = sprintf($cmd,$param['begin_time'],$param['end_time'],$where_str); $data = exec_cmd($cmd,$param);// var_dump($res,$data); $log = array(); foreach($data['data'] as $k=
=%s && $3<=%s %s){print $3,$4,$5,$6,$7,$8,$9}else{}}' EOT; $cmd = sprintf($cmd,$param['begin_time'],$param['end_time'],$where_str); $data = exec_cmd($cmd,$param); // var_dump($res,$data); $log = array(); foreach($data['data'] as $k=>$v){ //1495075246 1124 4 21001 s1 10970 192.168.77.8 //登录时间,角色id,角色等级,平台id,区服id,战力,登录ip, $login_log_arr = explode(" ",$v); $log[] = array( 'stime'=>$login_log_arr[0], 'playerid'=>$login_log_arr[1], 'level'=>$login_log_arr[2], 'agent_id'=>$login_log_arr[3], 'server_id'=>$login_log_arr[4], 'power'=>$login_log_arr[5], 'ip'=>$login_log_arr[6], ); } ajax_return($data['total'],$data['per_page'],$data['total_page'],$data['page'],$log); } /** * 获取登出日志 * @param $param */ //http://qijuelog.menle.local/index.php?a=get_game_login_log&server_id=1&begin_time=1990-01-01 function get_game_login_out_log($param){ //登录时间,角色id,角色等级,平台id,区服id,战力,登录ip, /* * per_page * page * begin_time $3 end_time $3 role_id $4 server_id $5 */ $where = array(); if(isset($param['playerid']) && $param['playerid']){ $where[] = "$4=={$param['playerid']}"; } $where_str = ""; if(!empty($where)){ $where_str = " && ".implode(" && ",$where); } $cmd = <<=%s && $3<=%s %s){print $3,$4,$5,$6,$7,$8,$9,$10}else{}}' EOT; $cmd = sprintf($cmd,$param['begin_time'],$param['end_time'],$where_str); $data = exec_cmd($cmd,$param); $log = array(); foreach($data['data'] as $k=>$v){ //1495075246 1124 4 21001 s1 10970 192.168.77.8 //登录时间,角色id,角色等级,平台id,区服id,战力,登录ip, $login_log_arr = explode(" ",$v); $log[] = array( 'stime'=>$login_log_arr[0], 'playerid'=>$login_log_arr[1], 'level'=>$login_log_arr[2], 'agent_id'=>$login_log_arr[3], 'server_id'=>$login_log_arr[4], 'power'=>$login_log_arr[5], 'leave'=>$login_log_arr[6], 'ip'=>$login_log_arr[7], ); } ajax_return($data['total'],$data['per_page'],$data['total_page'],$data['page'],$log); } //http://qijuelog.menle.local/index.php?a=get_game_levelup_log&server_id=1&begin_time=1990-01-01 /** * * 查询等级变化日志 * @param $param */ function get_game_levelup_log($param){ //时间 角色id,战力,当前等级,平台id,区服id /* * per_page * page * begin_time $3 end_time $3 role_id $4 */ $where = array(); if(isset($param['playerid']) && $param['playerid']){ $where[] = "$4=={$param['playerid']}"; } $where_str = ""; if(!empty($where)){ $where_str = " && ".implode(" && ",$where); } $cmd = << =%s && $3<=%s %s){print $3,$4,$5,$6,$7,$8,$9}else{}}' EOT; $cmd = sprintf($cmd,$param['begin_time'],$param['end_time'],$where_str); // echo $cmd; $data = exec_cmd($cmd,$param); $login_log = array(); foreach($data['data'] as $k=>$v){ //1495075246 1124 4 21001 s1 10970 192.168.77.8 //时间 角色id,战力,当前等级,平台id,区服id $login_log_arr = explode(" ",$v); $login_log[] = array( 'stime'=>$login_log_arr[0], 'playerid'=>$login_log_arr[1], 'power'=>$login_log_arr[2], 'level'=>$login_log_arr[3], 'agent_id'=>$login_log_arr[4], 'server_id'=>$login_log_arr[5], ); } ajax_return($data['total'],$data['per_page'],$data['total_page'],$data['page'],$login_log); } /** * 获取道具变化记录表 * @param $param */ //http://qijuelog.menle.local/index.php?a=get_game_itemchange_log&server_id=1&begin_time=1990-01-01 function get_game_itemchange_log($param){ //$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14 //时间,类型(1装备,2饰品,3宝石...),道具id(装备id,饰品id,宝石id等),角色id,角色等级,平台id,区服id,战力,是否绑定,变化类型(0获取/1消耗),数量,来源 /* * per_page * page * begin_time $3 end_time $3 playerid $4 type $5 */ //$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14 //时间,类型(1装备,2饰品,3宝石...),道具id(装备id,饰品id,宝石id等),角色id,角色等级,平台id,区服id,战力,是否绑定,变化类型(0获取/1消耗),数量,来源 //props_type,id,playerid,level,agent_id,server_id,power,bing,type,amount,way //搜索 角色id 变化类型 $where = array(); if(isset($param['playerid']) && $param['playerid']){ $where[] = "$4=={$param['playerid']}"; } if(isset($param['type']) && !empty($param['type'])){ $where[] = "$12=={$param['type']}"; } $where_str = ""; if(!empty($where)){ $where_str = " && ".implode(" && ",$where); } $cmd = << =%s && $3<=%s %s){print $3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14}else{}}' EOT; $cmd = sprintf($cmd,$param['begin_time'],$param['end_time'],$where_str); $data = exec_cmd($cmd,$param); $log = array(); /*格式化数据*/ foreach($data['data'] as $k=>$v){ //1495075246 1124 4 21001 s1 10970 192.168.77.8 //时间 角色id,战力,当前等级,平台id,区服id $log_arr = explode(" ",$v); $log[] = array( 'stime'=>$log_arr[0], 'props_type'=>$log_arr[1], 'id'=>$log_arr[2], 'playerid'=>$log_arr[3], 'level'=>$log_arr[4], 'agent_id'=>$log_arr[5], 'server_id'=>$log_arr[6], 'power'=>$log_arr[7], 'bing'=>$log_arr[8], 'type'=>$log_arr[9], 'amount'=>$log_arr[10], 'way'=>$log_arr[11], ); } ajax_return($data['total'],$data['per_page'],$data['total_page'],$data['page'],$log); } /** * 获取货币变化记录 * @param $param */ //http://qijuelog.menle.local/index.php?a=get_game_coinchange_log&server_id=1&begin_time=1990-01-01 function get_game_coinchange_log($param){ /* * 货币记录 * 时间,货币类型,类型(0:获得,1:消耗),元宝数量(消耗或者获得的),身上剩余元宝数,角色id,战力,角色等级,平台id,区服id ,途径(消费在什么地方或者从哪里获得),消耗货币购买的道具ID,购买的数量 * * 货币类型$4 角色id:$8 途径(消费类型)$13 */ $where = array(); if(isset($param['playerid']) && $param['playerid']){ $where[] = "$8=={$param['playerid']}"; } if(isset($param['currency_type']) && !empty($param['currency_type'])){ $where[] = "$4=={$param['currency_type']}"; } if(isset($param['way']) && !empty($param['way'])){ $where[] = "$13== \"{$param['way']}\""; } $where_str = ""; if(!empty($where)){ $where_str = " && ".implode(" && ",$where); } $cmd = << =%s && $3<=%s %s){print $3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15}else{}}' EOT; $cmd = sprintf($cmd,$param['begin_time'],$param['end_time'],$where_str); $data = exec_cmd($cmd,$param); $log = array(); /*格式化数据*/ foreach($data['data'] as $k=>$v){ $log_arr = explode(" ",$v); if(count($log_arr)==11){ $log[] = array( 'stime'=>$log_arr[0], 'currency_type'=>$log_arr[1], 'type'=>$log_arr[2], 'amount'=>$log_arr[3], 'h_amount'=>$log_arr[4], 'playerid'=>$log_arr[5], 'server_id'=>$log_arr[6], 'power'=>$log_arr[7], 'level'=>$log_arr[8], 'agent_id'=>$log_arr[9], 'way'=>$log_arr[10], ); }else{ $log[] = array( 'stime'=>$log_arr[0], 'currency_type'=>$log_arr[1], 'type'=>$log_arr[2], 'amount'=>$log_arr[3], 'h_amount'=>$log_arr[4], 'playerid'=>$log_arr[5], 'server_id'=>$log_arr[6], 'power'=>$log_arr[7], 'level'=>$log_arr[8], 'agent_id'=>$log_arr[9], 'way'=>$log_arr[10], 'item_num'=>$log_arr[11], 'item_id'=>$log_arr[12], ); } } ajax_return($data['total'],$data['per_page'],$data['total_page'],$data['page'],$log); } /** * 获取副本日志 * @param $param */ //http://qijuelog.menle.local/index.php?a=get_game_copy_log&server_id=1&begin_time=1990-01-01 function get_game_copy_log($param){ /* * 货币记录 * 时间,货币类型,类型(0:获得,1:消耗),元宝数量(消耗或者获得的),身上剩余元宝数,角色id,战力,角色等级,平台id,区服id ,途径(消费在什么地方或者从哪里获得),消耗货币购买的道具ID,购买的数量 * * 货币类型$4 角色id:$8 途径(消费类型)$13 */ $where = array(); if(isset($param['playerid']) && $param['playerid']){ $where[] = "$4=={$param['playerid']}"; } $where_str = ""; if(!empty($where)){ $where_str = " && ".implode(" && ",$where); } $cmd = << =%s && $3<=%s %s){print $3,$4,$5,$6,$7}else{}}' EOT; $cmd = sprintf($cmd,$param['begin_time'],$param['end_time'],$where_str); $data = exec_cmd($cmd,$param); $log = array(); /*格式化数据*/ foreach($data['data'] as $k=>$v){ $log_arr = explode(" ",$v); $log[] = array( 'stime'=>$log_arr[0], 'playerid'=>$log_arr[1], 'agent_id'=>$log_arr[2], 'server_id'=>$log_arr[3], 'reason'=>$log_arr[4], ); } ajax_return($data['total'],$data['per_page'],$data['total_page'],$data['page'],$log); } /** * 获取元宝变化记录 * @param $param */ //http://qijuelog.menle.local/index.php?a=get_game_coinchange_log&server_id=1&begin_time=1990-01-01 function get_game_goldchange_log($param){ /* * 货币记录 * 时间,货币类型,类型(0:获得,1:消耗),元宝数量(消耗或者获得的),身上剩余元宝数,角色id,战力,角色等级,平台id,区服id ,途径(消费在什么地方或者从哪里获得),消耗货币购买的道具ID,购买的数量 * * 货币类型$4 角色id:$8 途径(消费类型)$13 */ $where = array(); if(isset($param['playerid']) && $param['playerid']){ $where[] = "$7=={$param['playerid']}"; } if(isset($param['type']) && !empty($param['type'])){ $where[] = "$4=={$param['type']}"; } if(isset($param['way']) && !empty($param['way'])){ $where[] = "$14== \"{$param['way']}\""; } $where_str = ""; if(!empty($where)){ $where_str = " && ".implode(" && ",$where); } $cmd = << =%s && $3<=%s %s){print $3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14}else{}}' EOT; $cmd = sprintf($cmd,$param['begin_time'],$param['end_time'],$where_str); $data['data'] = exec_cmd($cmd,$param); $log = array(); /*格式化数据*/ foreach($data['data'] as $k=>$v){ $log_arr = explode(" ",$v); $log[] = array( 'stime'=>$log_arr[0], 'type'=>$log_arr[1], 'amount'=>$log_arr[2], 'h_amount'=>$log_arr[3], 'playerid'=>$log_arr[4], 'power'=>$log_arr[5], 'level'=>$log_arr[6], 'agent_id'=>$log_arr[7], 'server_id'=>$log_arr[8], 'item_num'=>$log_arr[9], 'item_id'=>$log_arr[10], 'way'=>$log_arr[11], ); } ajax_return($data['total'],$data['per_page'],$data['total_page'],$data['page'],$log); } //http://qijuelog.menle.local/index.php?a=get_game_login_log_date&server_id=1&begin_time=1990-01-01 /** *每日/每销售登录统计 * @param $param */ function get_game_login_log_date($param){ /* * per_page * page * begin_time $3 end_time $3 playerid $4 server_id $5 */ $where = array(); if(isset($param['playerid']) && $param['playerid']){ $where[] = "$4=={$param['playerid']}"; } if(isset($param['agent_id']) && !empty($param['agent_id'])){ $where[] = "$6=={$param['agent_id']}"; } $where_str = ""; if(!empty($where)){ $where_str = " && ".implode(" && ",$where); } $cmd = << =%s && $3<=%s %s) EOT; ##每天 登录数 $cmd_login_num = << =%s && $3<=%s %s){s[$4] =$4 }}END{for(i in s){print i}}' EOT; $cmd = sprintf($cmd,$param['begin_time'],$param['end_time'],$where_str); $data = exec_cmd($cmd,$param); ajax_return($data['total'],$data['per_page'],$data['total_page'],$data['page'],$data['data']); } /** * 统计在线时间长 * @param $param */ function get_game_logout_log_playerid_sum_leave($param){ $where = array(); if(isset($param['playerid']) && $param['playerid']){ $where[] = "$4=={$param['playerid']}"; } if(isset($param['agent_id']) && !empty($param['agent_id'])){ $where[] = "$6=={$param['agent_id']}"; } $where_str = ""; if(!empty($where)){ $where_str = " && ".implode(" && ",$where); } $cmd = << =%s && $3<=%s %s) s[$4]+=$9 }END{for(i in s ){print i,s[i]}}' EOT; $cmd = sprintf($cmd,$param['begin_time'],$param['end_time'],$where_str); $data = exec_cmd($cmd,$param); foreach($data['data'] as $k=>$v){ $player_leave = explode(" ",$v); $log[] = array( 'player_id'=>$player_leave[0], 'leave'=>$player_leave[1] ); } ajax_return($data['total'],$data['per_page'],$data['total_page'],$data['page'],$log); } /** * 统计时长流失 * @param $param */ function get_game_logout_log_playerid_sum_leave_loss($param){ $where = array(); if(isset($param['playerid']) && $param['playerid']){ $where[] = "$4=={$param['playerid']}"; } if(isset($param['agent_id']) && !empty($param['agent_id'])){ $where[] = "$6=={$param['agent_id']}"; } $where_str = ""; if(!empty($where)){ $where_str = " && ".implode(" && ",$where); } $cmd = << =%s && $3<=%s %s) s[$4]+=$9 }END{for(i in s ){print i,s[i],$3}}' EOT; $cmd = sprintf($cmd,$param['begin_time'],$param['end_time'],$where_str); $data = exec_cmd($cmd,$param); foreach($data['data'] as $k=>$v){ $player_leave = explode(" ",$v); $log[] = array( 'player_id'=>$player_leave[0], 'leave'=>$player_leave[1] ); } ajax_return($data['total'],$data['per_page'],$data['total_page'],$data['page'],$log); } /** * 绑元统计 */ function get_game_coinchange_log_sum_amount($param){ $where = array(); if(isset($param['playerid']) && $param['playerid']){ $where[] = "$7=={$param['playerid']}"; } if(isset($param['type']) && !empty($param['type'])){ $where[] = "$4=={$param['type']}"; } if(isset($param['way']) && !empty($param['way'])){ $where[] = "$14== \"{$param['way']}\""; } $where_str = ""; if(!empty($where)){ $where_str = " && ".implode(" && ",$where); } $cmd = << =%s && $3<=%s %s)s[$13] +=$6}END{for(i in s){print i,s[i],$3}} ' EOT; $cmd = sprintf($cmd,$param['begin_time'],$param['end_time'],$where_str); $data = exec_cmd($cmd,$param); foreach($data['data'] as $k=>$v){ $player_leave = explode(" ",$v); $log[] = array( 'player_id'=>$player_leave[0], 'leave'=>$player_leave[1], 'stime'=>$player_leave[2], ); } ajax_return($data['total'],$data['per_page'],$data['total_page'],$data['page'],$log); } /*** * 执行shell 并返回结果 * @param $cmd * @param $param * @return array */ function exec_cmd($cmd,$param){ exec($cmd,$res); if($_GET['debug']){ echo $cmd; } $res = array_reverse($res); $total = count($res); $total_page = ceil($total/$param['per_page']); $offset = $param['page']-1; $data = array_slice($res,$offset,$param['per_page']); $res = array( 'total'=>$total, 'per_page'=>$param['per_page'], 'total_page'=>$total_page, 'page'=>$param['page'], 'data'=>$data, ); return $res; } /** * 返回数据 * @param $per_page * @param $total_page * @param $page * @param $data */ function ajax_return($total,$per_page,$total_page,$page,$data){ if(!empty($data)){ $response = array( 'status'=>0, 'msg'=>'', 'data'=>array( 'total'=>$total, 'per_page'=>$per_page, 'total_page'=>$total_page, 'page'=>$page, 'list'=>$data ), ); }else{ $response = array( 'status'=>-1, 'msg'=>'没有数据' ); } echo json_encode($response,JSON_UNESCAPED_UNICODE); }