getGame($where); $json = json_decode($set_obj->extend, true); $this->agent_username = $set_obj->agent_name; $this->agent_pincode = $set_obj->agent_pwd; $this->api_url1 = $json['host1'];//api1 $this->api_url2 = $json['host2'] ?? '';//api2 $this->paly_host1 = $json['host3'] ?? '';//play1 $this->paly_host2 = $json['host4'] ?? '';//play2 $this->callbackurl = $json['callbackurl'] ?? '';//返回地址 $this->game_type = $set_obj->game_type; $this->user_prefix = $set_obj->user_prefix; $this->agent_host = $set_obj->agent_url; $this->actype = 1; } //获取投注记录 public function getbetlist(){ $limit = Request::has ('limit') ? Request::get ('limit') : 10; $page = Request::has ('page') ? Request::get ('page') : 1; $start_time = Request::has ('start_time') ? Request::get ('start_time') : ''; $end_time = Request::has ('end_time') ? Request::get ('end_time') : ''; $mggame = new \App\Models\Mggame_betting_ogrbv(); $where[] = array('GameEndTime','>=',strtotime($start_time.' 00:00:00')); $where[] = array('GameEndTime','<',strtotime($end_time.' 23:59:59')); $data = $mggame->getlist($where,$limit); foreach($data['data'] as $key => $val) { $data['data'][$key]['GameEndTime'] = date('Y-m-d H:i:s', $val['GameEndTime']); } return \App\Lib\DataTable\DataTable::init ()->toJson ($data['data'], $data['total']); } //更新流水 public function updatebetlist(){ $limit = Request::has ('limit') ? Request::get ('limit') : 1000; $page = Request::has ('page') ? Request::get ('page') : 1; $start_time = Request::has ('start_time') ? Request::get ('start_time') : date('Y-m-d'); $end_time = Request::has ('end_time') ? Request::get ('end_time') : date('Y-m-d'); $res = array(); $this->IsAuthenticate(); $id=$this->GetBetInfoDetails($start_time,$end_time,$limit); if(!empty($id)){ $res = $this->GetReportResult($id,$page); if($res['code'] == 0){ $indata = []; $indatatwo = []; foreach ($res['data'] as $key => $value) { //获取本站用户名 $loainfo = \App\Models\Oggame_user::select('lo_name')->where('rp_name',$value['AccountNumber'])->where('game_type','mggame')->first(); if(!$loainfo || empty($loainfo->lo_name))return -50630201302; //获取本站用户ID $aid = \App\Models\Account::select('identity')->where('account',$loainfo->lo_name)->first(); if(!$aid || empty($aid->identity))return -50630200302; $mginfo = \App\Models\Mggame_betting_ogrbv::where(['AccountNumber'=>$value['AccountNumber'],'GameEndTime'=>strtotime($value['Date'])])->first(); if(empty($mginfo)){ $indata[$key] = array( 'RowId' => md5(json_encode($value)), 'AccountNumber' => $value['AccountNumber'], 'Income' => $value['Income'], 'Payout' => $value['Payout'], 'WinAmount' => $value['WinAmount'], 'LoseAmount' => $value['LoseAmount'], 'ModuleId' => $value['ModuleId'], 'ClientId' => $value['ClientId'], 'DisplayGameCategory' => $value['GameType'], 'GameEndTime' => strtotime($value['Date']), 'account_identity'=>$aid->identity, 'account_name'=>$loainfo->lo_name, 'winloseamount'=>floatval($value['WinAmount'])+floatval($value['LoseAmount']) ); }else{ $indatatwo = array( 'RowId' => md5(json_encode($value)), 'AccountNumber' => $value['AccountNumber'], 'Income' => $value['Income'], 'Payout' => $value['Payout'], 'WinAmount' => $value['WinAmount'], 'LoseAmount' => $value['LoseAmount'], 'ModuleId' => $value['ModuleId'], 'ClientId' => $value['ClientId'], 'DisplayGameCategory' => $value['GameType'], 'GameEndTime' => strtotime($value['Date']), 'account_identity'=>$aid->identity, 'account_name'=>$loainfo->lo_name, 'winloseamount'=>floatval($value['WinAmount'])+floatval($value['LoseAmount']) ); $restt = \App\Models\Mggame_betting_ogrbv::where('id',$mginfo->id)->update($indatatwo); } } } if(!empty($indata)){ $res = \App\Models\Mggame_betting_ogrbv::insert($indata); if($res<0)return -50630200402; } } return 1; } /** * get SessionGUID * * Authenticates the agent by login name and password. * The SessionGUID which retrieved via this method should be used in all other methods in theHeader * * @param $agentname * @param $pincode */ public function IsAuthenticate(){ $client = new SoapClient($this->api_url1.'?wsdl', array('compression' => SOAP_COMPRESSION_ACCEPT | SOAP_COMPRESSION_GZIP)); $result = $client->IsAuthenticate( array( 'loginName' => $this->agent_username, 'pinCode' =>$this->agent_pincode ) ); if ($result->IsAuthenticateResult->ErrorCode == 0) { $this->SessionGUID = $result->IsAuthenticateResult->SessionGUID; } return $result; } //获取投注详情id public function GetBetInfoDetails($s_time='',$e_time='',$limit){ $client = new SoapClient($this->api_url1.'?wsdl', array('compression' => SOAP_COMPRESSION_ACCEPT | SOAP_COMPRESSION_GZIP)); $starttime = date("Y-m-d\TH:i:s",strtotime($s_time)) ?? date("Y-m-d\TH:i:s",strtotime("-1 day")); $endtime = date("Y-m-d\TH:i:s",strtotime($e_time)) ?? date("Y-m-d\TH:i:s"); $data = [ 'dateFrom' => $starttime, 'dateTo' => $endtime, 'maxNumRowsPage' => $limit, ]; $xml = ' ' . $this->SessionGUID . ' ' . $_SERVER['REMOTE_ADDR'] . ' '; $xmlvar = new SoapVar($xml, XSD_ANYXML); $header = new SoapHeader($this->api_url1, 'AgentSession', $xmlvar); $client->__setSoapHeaders($header); $result = $client->GetBetInfoDetails($data); $res=$result->GetBetInfoDetailsResult; return $res; } //获取投注列表 public function GetReportResult($id,$page){ $client = new SoapClient($this->api_url1.'?wsdl', array('compression' => SOAP_COMPRESSION_ACCEPT | SOAP_COMPRESSION_GZIP)); $data = [ 'id' => $id, 'nPage' => $page ]; $xml = ' ' . $this->SessionGUID . ' ' . $_SERVER['REMOTE_ADDR'] . ' '; $xmlvar = new SoapVar($xml, XSD_ANYXML); $header = new SoapHeader($this->api_url1, 'AgentSession', $xmlvar); $client->__setSoapHeaders($header); $result = $client->GetReportResult($data); $res=$result->GetReportResultResult; if($res->ErrorCode ==0){ $json = json_decode(json_encode(simplexml_load_string($res->CurrentPageData->any)),TRUE); $da['code'] = 0; if(empty($json)){ $da['data'] = []; }else{ $da['data'] = $json['NewDataSet']['Table']; } $paging = json_decode(json_encode($res->Paging),TRUE); $da['count'] = count($da['data']); $da['extras'] =[]; $da['msg'] =''; } return $da; } }