Parcourir la source

充值不到账

doge il y a 1 jour
Parent
commit
afb08ec4a4

+ 2 - 1
app/Http/Controllers/admin/Sync.php

@@ -21,8 +21,9 @@ class Sync extends Controller
 
     public function recharge()
     {
+        $synced = RechargeService::syncAllUsdtRechargeRecords();
         RechargeService::syncRechargeStay();
-        return $this->success();
+        return $this->success(['synced' => $synced]);
     }
 
 

+ 3 - 0
app/Services/CollectService.php

@@ -53,6 +53,9 @@ class CollectService extends BaseService
         if(isset($search['to_address']) && !empty($search['to_address'])){
             $where[] = ['to_address', '=', $search['to_address']];
         }
+        if(isset($search['from_address']) && !empty($search['from_address'])){
+            $where[] = ['from_address', '=', $search['from_address']];
+        }
         if(isset($search['id']) && !empty($search['id'])){
             $where[] = ['id', '=', $search['id']];
         }

+ 31 - 4
app/Services/RechargeService.php

@@ -132,15 +132,22 @@ class RechargeService extends BaseService
      * @param {*} $memberId
      * @return {*}
      */
-    public static function syncUsdtRechargeRecords($memberId)
+    public static function syncUsdtRechargeRecords($memberId, $walletInfo = null)
     {
-        $walletInfo = WalletService::findOne(['member_id' => $memberId]);
+        $walletInfo = $walletInfo ?: WalletService::findOne(['member_id' => $memberId, 'coin' => 'USDT']);
+        if (empty($walletInfo) || empty($walletInfo->address)) {
+            return 0;
+        }
+
         $data = TronHelper::getTrc20UsdtRecharges($walletInfo->address);
+        if (empty($data)) {
+            return 0;
+        }
 
         foreach ($data as $k => $v) {
-            $v['member_id'] = $memberId;
+            $v['member_id'] = $walletInfo->member_id ?: $memberId;
             $v['net'] = $walletInfo->net;
-            $V['type'] = static::$MODEL::TYPE_AUTO;
+            $v['type'] = static::$MODEL::TYPE_AUTO;
             $v['created_at'] = now();
             $v['updated_at'] = now();
             $data[$k] = $v;
@@ -150,6 +157,26 @@ class RechargeService extends BaseService
         return $result;
     }
 
+    /**
+     * @description: 同步所有USDT钱包的新充值记录
+     * @return int
+     */
+    public static function syncAllUsdtRechargeRecords()
+    {
+        $wallets = WalletService::findAll(['coin' => 'USDT']);
+        $total = 0;
+
+        foreach ($wallets as $walletInfo) {
+            if (empty($walletInfo->member_id) || empty($walletInfo->address)) {
+                continue;
+            }
+
+            $total += self::syncUsdtRechargeRecords($walletInfo->member_id, $walletInfo);
+        }
+
+        return $total;
+    }
+
     /**
      * @description: 充值确认
      * @param {*} $txid