wesmiler 4 месяцев назад
Родитель
Сommit
6fc0c727de
1 измененных файлов с 25 добавлено и 13 удалено
  1. 25 13
      app/Services/Common/MemberService.php

+ 25 - 13
app/Services/Common/MemberService.php

@@ -61,42 +61,54 @@ class MemberService extends BaseService
         $status = $params['status'] ?? '';
         $keyword = $params['keyword'] ?? '';
         $mobile = $params['mobile'] ?? '';
-        $userType = $params['user_type'] ?? '';
-        $memberLevel = $params['member_level'] ?? '';
+        $parent = $params['parent'] ?? '';
+        $userType = $params['user_type'] ?? 1;
+        $parentId = $params['parent_id'] ?? '';
 
-        $query = MemberModel::with(['parent','account'])->where('mark', 1);
+        $query = MemberModel::with(['parent','account'])->from('member as a')
+            ->leftJoin('member as b','b.id','=','a.parent_id')
+            ->where('a.mark', 1);
 
         // 状态筛选
         if ($status !== '' && $status != 0) {
-            $query->where('status', $status);
+            $query->where('a.status', $status);
         }
 
         // 用户类型筛选
         if ($userType !== '') {
-            $query->where('user_type', $userType);
+            $query->where('a.user_type', $userType);
         }
 
-        // 会员等级筛选
-        if ($memberLevel !== '') {
-            $query->where('member_level', $memberLevel);
+        // 推荐人ID
+        if ($parentId !== '') {
+            $query->where('a.parent_id', $parentId);
         }
 
         // 手机号搜索
         if (!empty($mobile)) {
-            $query->where('mobile', 'like', "%{$mobile}%");
+            $query->where('a.mobile', 'like', "%{$mobile}%");
         }
 
         // 关键词搜索(昵称/姓名)
         if (!empty($keyword)) {
             $query->where(function ($q) use ($keyword) {
-                $q->where('nickname', 'like', "%{$keyword}%")
-                    ->orWhere('realname', 'like', "%{$keyword}%");
+                $q->where('a.nickname', 'like', "%{$keyword}%")
+                    ->orWhere('a.realname', 'like', "%{$keyword}%");
+            });
+        }
+
+        // 推荐人搜索
+        if (!empty($parent)) {
+            $query->where(function ($q) use ($parent) {
+                $q->where('b`.nickname', 'like', "%{$parent}%")
+                    ->orWhere('b.realname', 'like', "%{$parent}%");
             });
         }
 
         $total = $query->count();
-        $list = $query->withCount(['invites'])->orderBy('create_time', 'desc')
-            ->orderBy('id', 'desc')
+        $list = $query->withCount(['invites'])
+            ->orderBy('a.create_time', 'desc')
+            ->orderBy('a.id', 'desc')
             ->offset(($page - 1) * $limit)
             ->limit($limit)
             ->get()