'直推奖', 2=>'均富池', 3=>'见点奖', 4=>'dao池', 5=>'技术奖', 6=>'托底池', 7=>'推荐奖', ]; private function __construct() { } /** * 创建对象 * @return ContractServer */ static function creatServer() { if (empty(self::$server)) { self::$server = new ContractServer(); } return self::$server; } /** * 报单信息检测 * @param BlockItems $blockItem */ function broadcastDetection(BlockItems $blockItem){ //检测报单信息 $contract=Contract::where('hash',$blockItem->{'hash'})->first(); if($contract){ if($contract->{'status'}!=1){ ErrorRecord::create([ 'm_id' => 0, 'msg' => '合约状态从异常', 'data' => json_encode($contract) ]); $this->addContractLog($contract,'合约状态异常,程序终止清分,记录扫快信息',$blockItem); }else{ $ret = TronRPC::CreationTron()->getTransaction($contract->{'hash'}); if (!empty($ret['ret'][0]['contractRet']) && $ret['ret'][0]['contractRet'] == 'SUCCESS') { //检测交易信息 if($contract->{'type'}==1){ //初始合约 //生成双轨关系 $member=Member::where('id',$contract->{'m_id'})->select(['id','recom_id'])->first(); JobServer::creatServer()->creatBothJob($member->{'id'},$member->{'recom_id'}); //报单拆分 $this->oneSettle($contract); }else{ //复投合约 $this->twoSettle($contract); } } else { ErrorRecord::create([ 'm_id' => $contract->{'m_id'}, 'msg' => '交易失败', 'data' => json_encode($contract) ]); } } }else{ ErrorRecord::create([ 'm_id' => 0, 'msg' => '合约信息不存在,扫快信息:', 'data' => json_encode($blockItem) ]); } } /** * 合约日志记录 * @param Contract $contract * @param $msg * @param array $data */ function addContractLog(Contract $contract,$msg,$data=[]){ ContractLog::create([ 'contract_id'=> $contract->{'id'}, 'm_id'=> $contract->{'m_id'}, 'msg'=> $msg, 'contract_data'=> json_encode($contract), 'data'=> json_encode($data), ]); } }