wesmiler 2 недель назад
Родитель
Сommit
0fe796e63f
1 измененных файлов с 18 добавлено и 3 удалено
  1. 18 3
      app/Services/Common/MemberService.php

+ 18 - 3
app/Services/Common/MemberService.php

@@ -65,9 +65,10 @@ class MemberService extends BaseService
             $where['member.status'] = $status;
         }
 
-        $query = $this->model->with(['parent'])
+        $query = $this->model->with(['parent','point'])
             ->from('member')
             ->leftJoin('member as b','b.id','=','member.parent_id')
+            ->leftJoin('member as c','c.id','=','member.point_id')
             ->where($where)
             ->where(function ($query) use ($params) {
                 $keyword = isset($params['keyword']) ? $params['keyword'] : '';
@@ -93,15 +94,28 @@ class MemberService extends BaseService
                 if (!empty($parent)) {
                     $query->where(function ($q) use ($parent) {
                         $q->where('b.nickname', 'like', "%{$parent}%")
-                            ->orWhere('b.realname', 'like', "%{$parent}%");
+                            ->orWhere('b.mobile', 'like', "%{$parent}%");
                     });
                 }
 
+                // 推荐节点
+                $pointId = intval($params['point_id']) ?? 0;
+                if ($pointId>0) {
+                    $query->where('member.point_id', $pointId);
+                }
 
+                // 节点上级
+                $point = isset($params['point']) ? trim($params['point']) : '';
+                if (!empty($point)) {
+                    $query->where(function ($q) use ($point) {
+                        $q->where('c.nickname', 'like', "%{$point}%")
+                            ->orWhere('c.mobile', 'like', "%{$point}%");
+                    });
+                }
 
             })
             ->select(['member.*'])
-            ->withCount(['invites'])
+            ->withCount(['invites','points'])
             ->orderBy('member.create_time', 'desc')
             ->orderBy('member.id', 'desc');
         $list = $query->paginate($pageSize > 0 ? $pageSize : 9999999);
@@ -115,6 +129,7 @@ class MemberService extends BaseService
                 $item['login_time_text'] = $item['login_time'] ? datetime($item['login_time'],'Y-m-d H:i:s') : '-';
                 $item['status_text'] = $item['status'] == 1 ? '正常' : '冻结';
                 $item['invites_count'] = $item['invites_count']?$item['invites_count']:0;
+                $item['points_count'] = $item['points_count']?$item['points_count']:0;
             }
         }