123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- <?php
- namespace App\Task;
- use App\Model\Telegram\FmsWalletTradeList;
- use App\Model\Telegram\FmsRechargeOrder;
- use App\Model\Telegram\TelegramBotUser;
- use App\Model\Telegram\TelegramBot;
- use App\Library\Log;
- class HandleRechargeOrder
- {
- public function execute()
- {
- try {
- //['1' => '待充值','7' => '金额无对应订单','8' => '充值中','9' => '充值成功','4' => '充值失败','2' => '人工禁止','3' => '找不到用户'];
- $data = FmsWalletTradeList::from('fms_wallet_trade_list as a')
- ->where('a.process_status',1)
- ->select('a.rid','a.transferfrom_address','a.amount','a.coin_name','a.tx_hash')
- ->limit(100)
- ->get();
- if($data->count() > 0){
- foreach ($data as $k => $v) {
- $time = nowDate();
-
- //匹配金额
- $res = FmsRechargeOrder::where('recharge_coin_name',$v->coin_name)->where('need_pay_price',$v->amount)->where('status',0)->first();
-
- if(empty($res)){
- $save_data = [];
- $save_data['process_status'] = 7; //金额无对应套餐
- $save_data['process_comments'] = '金额无对应套餐'; //处理备注
- $save_data['process_time'] = $time; //处理时间
- FmsWalletTradeList::where('rid',$v->rid)->update($save_data);
- continue;
- }
-
- //查找用户
- $botUser = TelegramBotUser::where('bot_rid',$res['bot_rid'])->where('tg_uid',$res['recharge_tg_uid'])->first();
-
- if(empty($botUser)){
- $save_data = [];
- $save_data['process_status'] = 3; //找不到用户
- $save_data['process_comments'] = '找不到用户'; //处理备注
- $save_data['process_time'] = $time; //处理时间
- FmsWalletTradeList::where('rid',$v->rid)->update($save_data);
- continue;
- }
-
- $save_data = [];
- $save_data['status'] = 1;
- $save_data['complete_time'] = $time;
- $save_data['tx_hash'] = $v->tx_hash;
- FmsRechargeOrder::where('rid',$res['rid'])->update($save_data);
-
- $save_data = [];
- $save_data['cash_trx'] = $botUser['cash_trx'] + ($v->coin_name == 'trx' ?$res['recharge_pay_price']:0);
- $save_data['cash_usdt'] = $botUser['cash_usdt'] + ($v->coin_name == 'usdt' ?$res['recharge_pay_price']:0);
- $save_data['total_recharge_trx'] = $botUser['total_recharge_trx'] + ($v->coin_name == 'trx' ?$res['recharge_pay_price']:0);
- $save_data['total_recharge_usdt'] = $botUser['total_recharge_usdt'] + ($v->coin_name == 'usdt' ?$res['recharge_pay_price']:0);
- TelegramBotUser::where('rid',$botUser['rid'])->update($save_data);
- $save_data = [];
- $save_data['process_status'] = 9; //充值成功
- $save_data['process_comments'] = '充值成功'; //处理备注
- $save_data['process_time'] = $time; //处理时间
- $save_data['recharge_order_rid'] = $res['rid'];
- FmsWalletTradeList::where('rid',$v->rid)->update($save_data);
-
- $bot = TelegramBot::where('rid',$res['bot_rid'])->first();
- if(!empty($bot)){
- $replytext = "✅您的充值订单已成功!\n"
- ."➖➖➖➖➖➖➖➖\n"
- ."<b>订单号:</b>".$v->rid."\n"
- ."<b>充值币种:</b>".$v->coin_name."\n"
- ."<b>充值金额:</b>".$res['recharge_pay_price']."\n";
-
- //通知用户
- $sendmessageurl = 'https://api.telegram.org/bot'.$bot['bot_token'].'/sendMessage?chat_id='.$res['recharge_tg_uid'].'&text='.urlencode($replytext).'&parse_mode=HTML';
-
- Get_Pay($sendmessageurl);
- }
- }
- }else{
- // $this->log('shanduibonus','----------没有数据----------');
- }
- }catch (\Exception $e){
- // $this->log('shanduibonus','----------任务执行报错,请联系管理员。报错原因:----------'.$e->getMessage());
- }
- }
- /**
- * 记入日志
- * @param $log_title [日志路径]
- * @param $message [内容,不支持数组]
- * @param $remarks [备注]
- */
- protected function log($log_title,$message,$remarks='info'){
- Log::get($remarks,$log_title)->info($message);
- }
- }
|