field('id,game_name,supersign_token')->where(['supersign_token' => ['NEQ','']])->select(); $supersign_token = array_column($supersign_game, 'supersign_token'); $authorization_all_num = 0; foreach($supersign_token as $k => $v) { $authorization_all_num += count($this->game_supersign_num($v)); } $where['pay_status'] = 1; $data['buy_num'] = M('game_supersign', 'tab_')->where($where)->count(); $pay_price = M('game_supersign', 'tab_')->field('sum(pay_price) as pay_price')->where($where)->select(); $data['money_all'] = $pay_price[0]['pay_price'] == '' ? 0 : $pay_price[0]['pay_price']; $data['authorization_all_num'] = $authorization_all_num; $this->assign('data', $data); $this->display('index'); } public function lists($p = 1,$row = 10) { $page = $p ? $p : 1; $row = $row ? $row : 10; $params = I('get.'); if(isset($params['timestart']) && isset($params['timeend'])) { $startTime = strtotime($params['timestart']); $endTime = strtotime($params['timeend']) + 86399; $map['pay_time'] = array('BETWEEN', [$startTime, $endTime]); } if(isset($params['game_id'])) { $map['tab_game.id'] = $params['game_id']; } $map['supersign_token'] = ['NEQ','']; $supersign_game = M('game', 'tab_')->field('tab_game.id,tab_game.game_name,tab_game.supersign_token')->join('tab_game_supersign on tab_game_supersign.game_id = tab_game.id')->where($map)->group('tab_game.id')->page($page,$row)->select(); $data = []; $num['authorization'] = 0; $num['pay_num'] = 0; $num['promote_super_money'] = 0; $num['official_super_money'] = 0; foreach($supersign_game as $k => $v) { $arr['game_name'] = $v['game_name']; $arr['authorization_num'] = count($this->game_supersign_num($v['supersign_token'])); $num['authorization'] += $arr['authorization_num']; if(isset($params['timestart']) && isset($params['timeend'])) { $startTime = strtotime($params['timestart']); $endTime = strtotime($params['timeend']) + 86399; $where['pay_time'] = array('BETWEEN', [$startTime, $endTime]); } $where['game_id'] = $v['id']; $where['pay_status'] = 1; $game_supersign = M('game_supersign', 'tab_')->field('promote_id,pay_price')->join('tab_user on tab_game_supersign.user_id = tab_user.id')->where($where)->select(); $arr['pay_game_supersign'] = count($game_supersign); $num['pay_num'] += $arr['pay_game_supersign']; $arr['promote_super_money'] = 0; $arr['official_super_money'] = 0; foreach($game_supersign as $key => $val) { if($val['promote_id'] != 0) { $arr['promote_super_money'] += $val['pay_price']; }else { $arr['official_super_money'] += $val['pay_price']; } } $num['official_super_money'] += $arr['official_super_money']; $num['promote_super_money'] += $arr['promote_super_money']; $data[] = $arr; } $count = count(M('game', 'tab_')->field('tab_game.id,tab_game.game_name,tab_game.supersign_token')->join('tab_game_supersign on tab_game_supersign.game_id = tab_game.id')->where($map)->group('tab_game.id')->select()); $page = set_pagination($count, $row); $this->assign('_page', $page); $this->assign('data', $data); $this->assign('num', $num); $this->display('lists'); } private function game_supersign_num($token) { $re_data = []; $arr['token'] = $token; $arr['limit'] = 2000; for ($i = 1;$i > 0;$i++) { if($i != 1) { $pop = array_pop($data); $arr['lastid'] = $pop['id']; } $curl_re = json_decode(curl_post($this->ticketList_url,$arr),true); if($curl_re['errno'] == 0) { $data = $curl_re['data']['list']; $re_data = array_merge($re_data,$data); } else { break; } if(count($data) != $arr['limit']) { break; } } return $re_data; } public function superDetail($p = 1,$row = 10) { $page = $p ? $p : 1; $row = $row ? $row : 10; $params = I('get.'); $map['tab_game_supersign.pay_status'] = 1; if (isset($params['order_id'])) { $map['tab_game_supersign.order_id'] = $params['order_id']; } if (isset($params['account'])) { $map['tab_user.account'] = $params['account']; } if (isset($params['promote_id'])) { $promoteId = $params['promote_id']; if ($promoteId == 0) { $map['promote_id'] = 0; } else { $promoteMap['chain'] = ['like', "%/$promoteId/%"]; $promoteIds = M('Promote', 'tab_')->where($promoteMap)->getField('id', true); $promoteIds[] = $promoteId; $map['tab_user.promote_id'] = ['in', $promoteIds]; } } if(isset($params['timestart']) && isset($params['timeend'])) { $startTime = strtotime($params['timestart']); $endTime = strtotime($params['timeend']) + 86399; $map['tab_game_supersign.pay_time'] = array('BETWEEN', [$startTime, $endTime]); } if(isset($params['game_id'])) { $map['tab_game_supersign.game_id'] = $params['game_id']; } $data = M('game_supersign', 'tab_')->field('tab_game_supersign.id,tab_game_supersign.order_id,tab_user.account,tab_user.promote_account,tab_user.device_number,tab_game.game_name,tab_game_supersign.pay_time,tab_game_supersign.pay_price')->join('tab_user on tab_game_supersign.user_id = tab_user.id')->join('tab_game on tab_game_supersign.game_id = tab_game.id')->where($map)->page($page,$row)->order('id DESC')->select(); $count = M('game_supersign', 'tab_')->field('tab_game_supersign.order_id,tab_user.account,tab_user.promote_account,tab_user.device_number,tab_game.game_name,tab_game_supersign.pay_time')->join('tab_user on tab_game_supersign.user_id = tab_user.id')->join('tab_game on tab_game_supersign.game_id = tab_game.id')->where($map)->count(); $page = set_pagination($count, $row); $this->assign('_page', $page); $this->assign('data', $data); $this->assign('super_money_all', $super_money_all); $this->display('superDetail'); } }