field('supersign_token')->where($map)->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(); $data['money_all'] = $data['buy_num'] * $this->super_money; $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; $map['supersign_token'] = ['NEQ','']; $supersign_game = M('game', 'tab_')->field('id,game_name,supersign_token')->where($map)->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']; $game_supersign = M('game_supersign', 'tab_')->field('promote_id')->join('tab_user on tab_game_supersign.user_id = tab_user.id')->where(['game_id' => $v['id'], 'pay_status' => 1])->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'] += $this->super_money; }else { $arr['official_super_money'] += $this->super_money; } } $num['official_super_money'] += $arr['official_super_money']; $num['promote_super_money'] += $arr['promote_super_money']; $data[] = $arr; } $count = M('game', 'tab_')->where($map)->count(); $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]; } } $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')->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(); $super_money_all = $count * $this->super_money; $page = set_pagination($count, $row); $this->assign('_page', $page); $this->assign('data', $data); $this->assign('super_money', $this->super_money); $this->assign('super_money_all', $super_money_all); $this->display('superDetail'); } }