wesmiler 1 неделя назад
Родитель
Сommit
a185b064b2
2 измененных файлов с 28 добавлено и 2 удалено
  1. 20 1
      app/Services/Api/AccountService.php
  2. 8 1
      app/Services/Common/BalanceLogsService.php

+ 20 - 1
app/Services/Api/AccountService.php

@@ -90,13 +90,32 @@ class AccountService extends BaseService
         $userd = isset($params['user_id'])?$params['user_id']:0;
         return [
             'pageSize'=> $pageSize,
-            'count'=> $userd?BalanceLogModel::where(['user_id'=>$userd,'type'=>2,'receive_status'=>2])->count('id'):0,
+            'count'=> $this->getReceiveCount($userd),
             'total'=>isset($list['total'])? $list['total'] : 0,
             'list'=> isset($list['data'])? $list['data'] : []
         ];
     }
 
     /**
+     * @param $userId
+     * @return array|mixed
+     */
+    public function getReceiveCount($userId)
+    {
+        $cacheKey = "caches:accounts:receive_{$userId}";
+        $data = RedisService::get($cacheKey);
+        if($data){
+            return $data;
+        }
+
+        $data = BalanceLogModel::where(['user_id'=>$userId,'type'=>2])->where(function($query){
+            $query->whereNull('complete_at');
+        })->count('id');
+        RedisService::set($cacheKey, $data, rand(10,20));
+        return $data;
+    }
+
+    /**
      * 充值记录
      * @param $params
      * @param int $pageSize

+ 8 - 1
app/Services/Common/BalanceLogsService.php

@@ -9,6 +9,7 @@ use App\Models\AgentModel;
 use App\Models\StoreModel;
 use App\Services\BaseService;
 use App\Services\PaymentService;
+use App\Services\RedisService;
 use Illuminate\Support\Facades\DB;
 
 /**
@@ -345,6 +346,7 @@ class BalanceLogsService extends BaseService
                     $record->receive_status = 1; // 已收款
                     $record->pay_at = date('Y-m-d H:i:s');
                     $record->receive_at = date('Y-m-d H:i:s');
+                    $record->complete_at = date('Y-m-d H:i:s');
                     if (!empty($payImg)) {
                         $record->pay_img = $payImg;
                     }
@@ -357,15 +359,19 @@ class BalanceLogsService extends BaseService
                 }
             }
 
-            $record->save();
+
 
             // 如果是驳回且是提现,退回金额
             if ($status == 3 && $record->type == 2) {
+                $record->complete_at = date('Y-m-d H:i:s');
                 $this->refundBalance($record);
             }
 
+            $record->save();
+
             DB::commit();
 
+            RedisService::clear("caches:accounts:receive_".$record->user_id);
             return ['code' => 0, 'msg' => '审核成功'];
         } catch (\Exception $e) {
             DB::rollBack();
@@ -450,6 +456,7 @@ class BalanceLogsService extends BaseService
         }
 
         DB::commit();
+        RedisService::clear("caches:accounts:receive_{$orderUserId}");
         $this->error = '提现打款成功,请提醒用户确认收款';
         return ['id'=>$id,'money'=>$money,'result'=>$result];
     }