wesmiler před 2 roky
rodič
revize
513d143205
1 změnil soubory, kde provedl 18 přidání a 18 odebrání
  1. 18 18
      app/Services/Api/MemberService.php

+ 18 - 18
app/Services/Api/MemberService.php

@@ -14,28 +14,19 @@ namespace App\Services\Api;
 use App\Helpers\Jwt;
 use App\Models\AccountLogModel;
 use App\Models\BalanceLogModel;
-use App\Models\BonusLogModel;
-use App\Models\CityModel;
 use App\Models\LiveModel;
-use App\Models\MechanicModel;
 use App\Models\MemberBankModel;
-use App\Models\MemberCollectModel;
 use App\Models\MemberModel;
-use App\Models\MerchantClerkModel;
 use App\Models\MerchantModel;
-use App\Models\OrderModel;
-use App\Models\VideoCollectModel;
 use App\Models\VideoModel;
 use App\Services\BaseService;
 use App\Services\CityService;
 use App\Services\ConfigService;
 use App\Services\EmailService;
-use App\Services\PushService;
 use App\Services\RedisService;
 use App\Services\SmsService;
 use App\Services\ToolService;
 use App\Services\UdunpayService;
-use App\Services\ZegoService;
 use Illuminate\Support\Facades\DB;
 use phpQrcode\QRcode;
 
@@ -222,14 +213,15 @@ class MemberService extends BaseService
     }
 
     /**
-     * 获取分销用户数量
+     * 获取团队用户数量
      * @param $userId 当前用户ID
-     * @param int $level 层级:1-一级分销用户,2-二级分销用户
+     * @param int $type 层级:1-直推,2-团队
+     * @param int $isPoint 节点:1-滑落推荐,0-直接推荐
      * @return array|mixed
      */
-    public function getTeamsUserCountByLevel($userId, $level = 1)
+    public function getUserCountByType($userId, $type = 1, $isPoint=0)
     {
-        $cacheKey = "caches:members:bonusUser:count_{$userId}_{$level}";
+        $cacheKey = "caches:teams:count_{$userId}_{$type}_{$isPoint}";
         $data = RedisService::get($cacheKey);
         if ($data) {
             return $data;
@@ -237,11 +229,19 @@ class MemberService extends BaseService
 
         $where = ['status' => 1, 'mark' => 1];
         $data = $this->model->where($where)
-            ->where(function ($query) use ($level, $userId) {
-                if ($level == 1) {
-                    $query->where('parent_id', $userId);
-                }  else if($level == 2){
-                    $query->whereIn('parent_id', MemberModel::where(['parent_id'=> $userId,'status'=>1,'mark'=>1])->pluck('id'));
+            ->where(function ($query) use ($type, $isPoint, $userId) {
+                if($isPoint){
+                    if ($type == 1) {
+                        $query->where('point_id', $userId);
+                    }  else if($type == 2){
+                        $query->whereRaw('FIND_IN_SET(?,points)', $userId);
+                    }
+                }else{
+                    if ($type == 1) {
+                        $query->where('parent_id', $userId);
+                    }  else if($type == 2){
+                        $query->whereRaw('FIND_IN_SET(?,parents)', $userId);
+                    }
                 }
             })->count('id');