get('key'); if($checkKey != $key){ return showJson(1003, false); } $page = RedisService::get("caches:wallet:rechargePage"); $page = $page? $page : 1; $members = MemberService::make()->getCatchMember($page, 500); if(empty($members)){ RedisService::set("caches:wallet:rechargePage", 1, 600); return showJson(1019, false); } $count = 0; $failedCount = 0; foreach ($members as $v){ $result = UsdtWalletService::make()->getTrc20RechargeLog($v['id'], $v['trc_address']); if($result){ $count++; RedisService::set("caches:wallet:catchRecharge:{$v['id']}_result", $result, 600); }else{ $failedCount++; $error = lang(UsdtWalletService::make()->getError()); RedisService::set("caches:wallet:catchRecharge:{$v['id']}_result", $error, 600); } } RedisService::set("caches:wallet:rechargePage", $page+1, 600); if($count>0){ return showJson(1020, true,['success'=> $count,'fail'=> $failedCount]); }else{ return showJson(1021, false); } } /** * 监听处理提币(转账-出账) * @return array|mixed */ public function catchTrcTransfer() { $key = md5('OTC'); $checkKey = request()->get('key'); if($checkKey != $key){ return showJson(1003, false); } $page = RedisService::get("caches:wallet:transferPage"); $page = $page? $page : 1; $members = MemberService::make()->getCatchMember($page, 500); if(empty($members)){ RedisService::set("caches:wallet:transferPage", 1, 600); return showJson(1019, false); } $count = 0; $failedCount = 0; foreach ($members as $v){ $result = UsdtWalletService::make()->getTrc20TransferLogByUser($v['id'], $v['trc_address']); if($result){ $count++; RedisService::set("caches:wallet:catchTransfer:{$v['id']}_result", $result, 600); }else{ $failedCount++; $error = lang(UsdtWalletService::make()->getError()); RedisService::set("caches:wallet:catchTransfer:{$v['id']}_result", $error, 600); } } RedisService::set("caches:wallet:transferPage", $page+1, 600); if($count>0){ return showJson(1020, true,['success'=> $count,'fail'=> $failedCount]); }else{ return showJson(1021, false); } } /** * 监听平台TRC出账钱包交易记录(提币回调确认完成交易) * @return array|mixed */ public function catchTrcTransferByOtc() { $key = md5('OTC'); $checkKey = request()->get('key'); if($checkKey != $key){ return showJson(1003, false); } // 出账手续费钱包 $otcOutAddress = ConfigService::make()->getConfigByCode('trc_out_address'); if(empty($otcOutAddress)){ return showJson(2210, false); } $cacheKey = "caches:wallets:listen:trc_{$otcOutAddress}"; if(RedisService::get($cacheKey.'_lock')){ return showJson(1025, false); } $result = UsdtWalletService::make()->getTrc20TransferLogByOtc($otcOutAddress, 500); RedisService::set($cacheKey.'_lock', 1, rand(5, 10)); if($result){ RedisService::set($cacheKey, $result, 3600); return showJson(1020, true,['success'=> count($result)]); }else{ return showJson(1021, false); } } /** * 监听平台ERC出账钱包交易记录(提币回调确认完成交易) * @return array|mixed */ public function catchErcTransferByOtc() { $key = md5('OTC'); $checkKey = request()->get('key'); if($checkKey != $key){ return showJson(1003, false); } // 出账手续费钱包 $otcOutAddress = ConfigService::make()->getConfigByCode('trc_out_address'); if(empty($otcOutAddress)){ return showJson(2210, false); } $cacheKey = "caches:wallets:listen:erc_{$otcOutAddress}"; if(RedisService::get($cacheKey.'_lock')){ return showJson(1025, false); } $result = UsdtWalletService::make()->getErc20TransferLogByOtc($otcOutAddress, 500); RedisService::set($cacheKey.'_lock', 1, rand(5, 10)); if($result){ RedisService::set($cacheKey, $result, 3600); return showJson(1020, true,['success'=> count($result)]); }else{ return showJson(1021, false); } } /** * 自动归集TRC总钱包 * @return array * @throws \Tron\Exceptions\TransactionException * @throws \Tron\Exceptions\TronErrorException */ public function catchTrcTruggerByOtc() { $key = md5('OTC'); $checkKey = request()->get('key'); if($checkKey != $key){ return showJson(1003, false); } if($result = UsdtWalletService::make()->usdtTrcTrigger()){ return showJson(1002, true, $result); }else{ return showJson(UsdtWalletService::make()->getError(), false); } } /** * 自动归集ERC总钱包 * @return array * @throws \Tron\Exceptions\TransactionException * @throws \Tron\Exceptions\TronErrorException */ public function catchErcTruggerByOtc() { $key = md5('OTC'); $checkKey = request()->get('key'); if($checkKey != $key){ return showJson(1003, false); } if($result = UsdtWalletService::make()->usdtErcTrigger()){ return showJson(1002, true, $result); }else{ return showJson(UsdtWalletService::make()->getError(), false); } } /** * 自动取消派单订单任务 * @return array|mixed */ public function catchTradeOrderCancel() { $key = md5('OTC'); $checkKey = request()->get('key'); if ($checkKey != $key) { return showJson(1003, false); } if($result = TradeOrderService::make()->catchInvalidOrder()){ return showJson(1002, true, $result); }else{ return showJson(TradeOrderService::make()->getError(), false); } } /** * 自动取消派单订单任务 * @return array|mixed */ public function catchAdvertOrderCancel() { $key = md5('OTC'); $checkKey = request()->get('key'); if ($checkKey != $key) { return showJson(1003, false); } if($result = AdvertOrderService::make()->catchInvalidOrder()){ return showJson(1002, true, $result); }else{ return showJson(AdvertOrderService::make()->getError(), false); } } }