|
|
@@ -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()
|