| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306 | 
							- <?php
 
- namespace App\Task;
 
- use App\Model\Energy\EnergyPlatform;
 
- use App\Library\Log;
 
- use App\Service\RsaServices;
 
- use App\Model\Telegram\TelegramBotUser;
 
- class GetEnergyPlatformBalance
 
- {
 
-     public function execute()
 
-     { 
 
-         try {
 
-             $data = EnergyPlatform::from('energy_platform as a')
 
-                     ->leftJoin('telegram_bot as b','a.tg_notice_bot_rid','b.rid')
 
-                     ->where('a.status',0)
 
-                     ->select('a.*','b.bot_token')
 
-                     ->get();
 
-             
 
-             if($data->count() > 0){
 
-                 $rsa_services = new RsaServices();
 
-                 
 
-                 foreach ($data as $k => $v) {
 
-                     //neee.cc平台
 
-                     if($v['platform_name'] == 1){
 
-                         $header = [
 
-                             "Content-Type:application/json"
 
-                         ];
 
-                         
 
-                         $param = [
 
-                             "uid" => $v['platform_uid'],
 
-                             "time" => time()
 
-                         ];
 
-                         
 
-                 		ksort($param);
 
-                 		reset($param);
 
-                 		
 
-                 		$signstr = $rsa_services->privateDecrypt($v['platform_apikey']);
 
-                 	
 
-                 		foreach($param as $k1 => $v1){
 
-                 			if($k1 != "sign" && $k1 != "sign_type" && $v1!=''){
 
-                 				$signstr .= $k1.$v1;
 
-                 			}
 
-                 		}
 
-                 		
 
-                 		$sign = md5($signstr);
 
-                 		$param['sign'] = $sign;
 
-                         $balance_url = 'https://api.tronqq.com/openapi/v1/user/balance';
 
-                         $res = Get_Pay($balance_url,json_encode($param),$header);
 
-                         
 
-                         if(empty($res)){
 
-                             $this->log('energyplatformbalance',$v['rid'].'平台请求失败');
 
-                         }else{
 
-                             $res = json_decode($res,true);
 
-                             if($res['status'] == 200){
 
-                                 if(empty($res['data'])){
 
-                                     $this->log('energyplatformbalance',$v['rid'].'平台请求失败2:'.json_encode($res));
 
-                                 }else{
 
-                                     $balance = $res['data']['balance'];
 
-                                     $balance = $balance <= 0 ?0:$balance;
 
-                                     
 
-                                     $updatedata1['platform_balance'] = $balance;
 
-                                     //间隔10分钟通知一次
 
-                                     if($balance <= $v['alert_platform_balance'] && $v['alert_platform_balance'] > 0 && strtotime($v['last_alert_time']) + 600 <= strtotime(nowDate())){
 
-                                         $updatedata1['last_alert_time'] = nowDate();
 
-                                         
 
-                                         //余额通知管理员
 
-                                         if($v['tg_notice_obj'] && !empty($v['tg_notice_obj'])){
 
-                                             $replytext = "能量平台(neee.cc),余额不足,请立即前往平台充值!\n"
 
-                                                         ."能量平台ID:".$v['rid']."\n"
 
-                                                         ."平台用户UID:".$v['platform_uid']."\n"
 
-                                                         ."当前余额:".$balance."\n"
 
-                                                         ."告警金额:".$v['alert_platform_balance']."\n\n"
 
-                                                         ."不处理会一直告警通知!间隔10分钟告警一次";
 
-                                                         
 
-                                             $sendlist = explode(',',$v['tg_notice_obj']);
 
-                             
 
-                                             foreach ($sendlist as $x => $y) {
 
-                                                 $sendmessageurl = 'https://api.telegram.org/bot'.$v['bot_token'].'/sendMessage?chat_id='.$y.'&text='.urlencode($replytext).'&parse_mode=HTML';
 
-                                                 
 
-                                                 Get_Pay($sendmessageurl);
 
-                                             }
 
-                                         }
 
-                                     }
 
-                                     
 
-                                     EnergyPlatform::where('rid',$v['rid'])->update($updatedata1);
 
-                                 }
 
-                             }else{
 
-                                 $this->log('energyplatformbalance',$v['rid'].'平台请求失败3:'.json_encode($res));
 
-                             }
 
-                         }
 
-                     }
 
-                     
 
-                     //RentEnergysBot平台
 
-                     elseif($v['platform_name'] == 2){
 
-                         $signstr = $rsa_services->privateDecrypt($v['platform_apikey']);
 
-                         $balance_url = 'https://api.wallet.buzz?api=getBalance&apikey='.$signstr;
 
-                         $res = Get_Pay($balance_url);
 
-                         
 
-                         if(!isset($res) || $res === ""){
 
-                             $this->log('energyplatformbalance',$v['rid'].'平台请求失败1:');
 
-                         }else{
 
-                             $balance = $res <= 0 ?0:$res;
 
-                                     
 
-                             $updatedata2['platform_balance'] = $balance;
 
-                             
 
-                             if($balance <= $v['alert_platform_balance'] && $v['alert_platform_balance'] > 0 && strtotime($v['last_alert_time']) + 600 <= strtotime(nowDate())){
 
-                                 $updatedata2['last_alert_time'] = nowDate();
 
-                                 
 
-                                 //余额通知管理员
 
-                                 if($v['tg_notice_obj'] && !empty($v['tg_notice_obj'])){
 
-                                     $replytext = "能量平台(RentEnergysBot),余额不足,请立即前往平台充值!\n"
 
-                                                 ."能量平台ID:".$v['rid']."\n"
 
-                                                 ."平台用户UID:".$v['platform_uid']."\n"
 
-                                                 ."当前余额:".$balance."\n"
 
-                                                 ."告警金额:".$v['alert_platform_balance']."\n\n"
 
-                                                 ."不处理会一直告警通知!间隔10分钟告警一次";
 
-                                                 
 
-                                     $sendlist = explode(',',$v['tg_notice_obj']);
 
-                     
 
-                                     foreach ($sendlist as $x => $y) {
 
-                                         $sendmessageurl = 'https://api.telegram.org/bot'.$v['bot_token'].'/sendMessage?chat_id='.$y.'&text='.urlencode($replytext).'&parse_mode=HTML';
 
-                                         
 
-                                         Get_Pay($sendmessageurl);
 
-                                     }
 
-                                 }
 
-                             }
 
-                             
 
-                             EnergyPlatform::where('rid',$v['rid'])->update($updatedata2);
 
-                         }
 
-                     }
 
-                     
 
-                     //自己质押代理
 
-                     elseif($v['platform_name'] == 3 && mb_strlen($v['platform_uid']) == 34){
 
-                         $tronurl = 'https://api.trongrid.io/wallet/getaccountresource';
 
-                 
 
-                         $api_key = config('apikey.gridapikey');
 
-                         $apikeyrand = $api_key[array_rand($api_key)];
 
-                         
 
-                         $heders = [
 
-                             "TRON-PRO-API-KEY:".$apikeyrand
 
-                         ];
 
-                         
 
-                         $body = [
 
-                           "address" => $v['platform_uid'],
 
-                           "visible" => true
 
-                         ];
 
-                         
 
-                         $tronres = Get_Pay($tronurl,json_encode($body),$heders);
 
-                         if(empty($tronres)){
 
-                             $this->log('energyplatformbalance',$v['rid'].'平台请求失败1:');
 
-                         }else{
 
-                             $tronres = json_decode($tronres,true);
 
-                             if(isset($tronres['EnergyLimit'])){
 
-                                 $balance = $tronres['EnergyLimit'] - ($tronres['EnergyUsed'] ?? 0);
 
-                                 $updatedata3['platform_balance'] = $balance;
 
-                                 
 
-                                 if($balance <= $v['alert_platform_balance'] && $v['alert_platform_balance'] > 0 && strtotime($v['last_alert_time']) + 600 <= strtotime(nowDate())){
 
-                                     $updatedata3['last_alert_time'] = nowDate();
 
-                                     
 
-                                     //余额通知管理员
 
-                                     if($v['tg_notice_obj'] && !empty($v['tg_notice_obj'])){
 
-                                         $replytext = "能量平台(自己质押代理),能量不足,请立即质押!\n"
 
-                                                     ."能量平台ID:".$v['rid']."\n"
 
-                                                     ."质押钱包地址:".$v['platform_uid']."\n"
 
-                                                     ."当前能量剩余:".$balance."\n"
 
-                                                     ."告警能量值:".$v['alert_platform_balance']."\n\n"
 
-                                                     ."不处理会一直告警通知!间隔10分钟告警一次";
 
-                                                     
 
-                                         $sendlist = explode(',',$v['tg_notice_obj']);
 
-                         
 
-                                         foreach ($sendlist as $x => $y) {
 
-                                             $sendmessageurl = 'https://api.telegram.org/bot'.$v['bot_token'].'/sendMessage?chat_id='.$y.'&text='.urlencode($replytext).'&parse_mode=HTML';
 
-                                             
 
-                                             Get_Pay($sendmessageurl);
 
-                                         }
 
-                                     }
 
-                                 }
 
-                                 
 
-                                 EnergyPlatform::where('rid',$v['rid'])->update($updatedata3);
 
-                             }
 
-                         }
 
-                     }
 
-                     
 
-                     //trongas.io平台
 
-                     elseif($v['platform_name'] == 4){
 
-                         $param = [
 
-                             "username" => $v['platform_uid']
 
-                         ];
 
-                         $balance_url = 'https://trongas.io/api/userInfo';
 
-                         $res = Get_Pay($balance_url,$param);
 
-                         
 
-                         if(empty($res)){
 
-                             $this->log('energyplatformbalance',$v['rid'].'平台请求失败');
 
-                         }else{
 
-                             $res = json_decode($res,true);
 
-                             if($res['code'] == 10000){
 
-                                 if(empty($res['data'])){
 
-                                     $this->log('energyplatformbalance',$v['rid'].'平台请求失败2:'.json_encode($res));
 
-                                 }else{
 
-                                     $balance = $res['data']['balance'];
 
-                                     $balance = $balance <= 0 ?0:$balance;
 
-                                     
 
-                                     $updatedata4['platform_balance'] = $balance;
 
-                                     //间隔10分钟通知一次
 
-                                     if($balance <= $v['alert_platform_balance'] && $v['alert_platform_balance'] > 0 && strtotime($v['last_alert_time']) + 600 <= strtotime(nowDate())){
 
-                                         $updatedata4['last_alert_time'] = nowDate();
 
-                                         
 
-                                         //余额通知管理员
 
-                                         if($v['tg_notice_obj'] && !empty($v['tg_notice_obj'])){
 
-                                             $replytext = "能量平台(trongas.io),余额不足,请立即前往平台充值!\n"
 
-                                                         ."能量平台ID:".$v['rid']."\n"
 
-                                                         ."平台用户UID:".$v['platform_uid']."\n"
 
-                                                         ."当前余额:".$balance."\n"
 
-                                                         ."告警金额:".$v['alert_platform_balance']."\n\n"
 
-                                                         ."不处理会一直告警通知!间隔10分钟告警一次";
 
-                                                         
 
-                                             $sendlist = explode(',',$v['tg_notice_obj']);
 
-                             
 
-                                             foreach ($sendlist as $x => $y) {
 
-                                                 $sendmessageurl = 'https://api.telegram.org/bot'.$v['bot_token'].'/sendMessage?chat_id='.$y.'&text='.urlencode($replytext).'&parse_mode=HTML';
 
-                                                 
 
-                                                 Get_Pay($sendmessageurl);
 
-                                             }
 
-                                         }
 
-                                     }
 
-                                     
 
-                                     EnergyPlatform::where('rid',$v['rid'])->update($updatedata4);
 
-                                 }
 
-                             }else{
 
-                                 $this->log('energyplatformbalance',$v['rid'].'平台请求失败3:'.json_encode($res));
 
-                             }
 
-                         }
 
-                     }
 
-                     
 
-                     //机器人开发者代理
 
-                     elseif($v['platform_name'] == 5){
 
-                         $balance_url = env('THIRD_URL');
 
-                         if(!empty($balance_url)){
 
-                             $balance_url = $balance_url.'/api/thirdpart/balance?tg_uid='.$v['platform_uid'];
 
-                             $res = Get_Pay($balance_url);
 
-                             
 
-                             if(empty($res)){
 
-                                 $this->log('energyplatformbalance',$v['rid'].'平台请求失败');
 
-                             }else{
 
-                                 $res = json_decode($res,true);
 
-                                 if($res['code'] == 200){
 
-                                     if(empty($res['data'])){
 
-                                         $this->log('energyplatformbalance',$v['rid'].'平台请求失败2:'.json_encode($res));
 
-                                     }else{
 
-                                         $balance = $res['data']['trx_balance'];
 
-                                         $balance = $balance <= 0 ?0:$balance;
 
-                                         
 
-                                         $updatedata5['platform_balance'] = $balance;
 
-                                         //间隔10分钟通知一次
 
-                                         if($balance <= $v['alert_platform_balance'] && $v['alert_platform_balance'] > 0 && strtotime($v['last_alert_time']) + 600 <= strtotime(nowDate())){
 
-                                             $updatedata5['last_alert_time'] = nowDate();
 
-                                             
 
-                                             //余额通知管理员
 
-                                             if($v['tg_notice_obj'] && !empty($v['tg_notice_obj'])){
 
-                                                 $replytext = "能量平台(机器人开发者代理),余额不足,请立即联系客服充值!\n"
 
-                                                             ."能量平台ID:".$v['rid']."\n"
 
-                                                             ."平台用户UID:".$v['platform_uid']."\n"
 
-                                                             ."当前余额:".$balance."\n"
 
-                                                             ."告警金额:".$v['alert_platform_balance']."\n\n"
 
-                                                             ."不处理会一直告警通知!间隔10分钟告警一次";
 
-                                                             
 
-                                                 $sendlist = explode(',',$v['tg_notice_obj']);
 
-                                 
 
-                                                 foreach ($sendlist as $x => $y) {
 
-                                                     $sendmessageurl = 'https://api.telegram.org/bot'.$v['bot_token'].'/sendMessage?chat_id='.$y.'&text='.urlencode($replytext).'&parse_mode=HTML';
 
-                                                     
 
-                                                     Get_Pay($sendmessageurl);
 
-                                                 }
 
-                                             }
 
-                                         }
 
-                                         
 
-                                         EnergyPlatform::where('rid',$v['rid'])->update($updatedata5);
 
-                                     }
 
-                                 }else{
 
-                                     $this->log('energyplatformbalance',$v['rid'].'平台请求失败3:'.json_encode($res));
 
-                                 }
 
-                             }
 
-                         }
 
-                     }
 
-                 }
 
-             }
 
-             
 
-         }catch (\Exception $e){
 
-             $this->log('energyplatformbalance','----------任务执行报错,请联系管理员。报错原因:----------'.$e->getMessage());
 
-         }
 
-     }
 
-     /**
 
-      * 记入日志
 
-      * @param $log_title [日志路径]
 
-      * @param $message [内容,不支持数组]
 
-      * @param $remarks [备注]
 
-     */
 
-     protected function log($log_title,$message,$remarks='info'){
 
-         Log::get($remarks,$log_title)->info($message);
 
-     }
 
- }
 
 
  |