|
@@ -55,83 +55,68 @@ class MemberService extends BaseService
|
|
|
public function getList()
|
|
public function getList()
|
|
|
{
|
|
{
|
|
|
$params = request()->all();
|
|
$params = request()->all();
|
|
|
-
|
|
|
|
|
- $page = $params['page'] ?? 1;
|
|
|
|
|
- $limit = $params['limit'] ?? 20;
|
|
|
|
|
- $status = $params['status'] ?? '';
|
|
|
|
|
- $keyword = $params['keyword'] ?? '';
|
|
|
|
|
- $mobile = $params['mobile'] ?? '';
|
|
|
|
|
- $parent = $params['parent'] ?? '';
|
|
|
|
|
- $userType = $params['user_type'] ?? 1;
|
|
|
|
|
- $parentId = $params['parent_id'] ?? '';
|
|
|
|
|
-
|
|
|
|
|
- $query = $this->model->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('a.status', $status);
|
|
|
|
|
|
|
+ $pageSize = $params['limit'] ?? 20;
|
|
|
|
|
+ $where = ['a.mark' => 1];
|
|
|
|
|
+ $status = isset($params['status']) ? $params['status'] : 0;
|
|
|
|
|
+ if ($status > 0) {
|
|
|
|
|
+ $where['a.status'] = $status;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- // 用户类型筛选
|
|
|
|
|
- if ($userType !== '') {
|
|
|
|
|
- $query->where('a.user_type', $userType);
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ $query = $this->model->from('member as a')
|
|
|
|
|
+ ->leftJoin('member as b','b.id','=','a.parent_id')
|
|
|
|
|
+ ->where($where)
|
|
|
|
|
+ ->where(function ($query) use ($params) {
|
|
|
|
|
+ $keyword = isset($params['keyword']) ? $params['keyword'] : '';
|
|
|
|
|
+ if ($keyword) {
|
|
|
|
|
+ $query->where('a.nickname', 'like', "%{$keyword}%")->orWhere('a.realname', 'like', "%{$keyword}%");
|
|
|
|
|
+ }
|
|
|
|
|
+ })
|
|
|
|
|
+ ->where(function ($query) use ($params) {
|
|
|
|
|
+ $mobile = isset($params['mobile']) ? trim($params['mobile']) : '';
|
|
|
|
|
+ if ($mobile) {
|
|
|
|
|
+ $query->where('a.mobile', 'like', "%{$mobile}%");
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
- // 推荐人ID
|
|
|
|
|
- if ($parentId !== '') {
|
|
|
|
|
- $query->where('a.parent_id', $parentId);
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ // 推荐人ID
|
|
|
|
|
+ $parentId = intval($params['parent_id']) ?? 0;
|
|
|
|
|
+ if ($parentId>0) {
|
|
|
|
|
+ $query->where('a.parent_id', $parentId);
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
- // 手机号搜索
|
|
|
|
|
- if (!empty($mobile)) {
|
|
|
|
|
- $query->where('a.mobile', 'like', "%{$mobile}%");
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ $parent = isset($params['parent']) ? trim($params['parent']) : '';
|
|
|
|
|
+ if (!empty($parent)) {
|
|
|
|
|
+ $query->where(function ($q) use ($parent) {
|
|
|
|
|
+ $q->where('b.nickname', 'like', "%{$parent}%")
|
|
|
|
|
+ ->orWhere('b.realname', 'like', "%{$parent}%");
|
|
|
|
|
+ });
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
- // 关键词搜索(昵称/姓名)
|
|
|
|
|
- if (!empty($keyword)) {
|
|
|
|
|
- $query->where(function ($q) use ($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}%");
|
|
|
|
|
- });
|
|
|
|
|
- }
|
|
|
|
|
|
|
|
|
|
- $model = clone $query;
|
|
|
|
|
- $total = $model->count('a.id');
|
|
|
|
|
- $list = $query->withCount(['invites'])
|
|
|
|
|
|
|
+ })
|
|
|
|
|
+ ->select(['a.*'])
|
|
|
|
|
+ ->withCount(['invites'])
|
|
|
->orderBy('a.create_time', 'desc')
|
|
->orderBy('a.create_time', 'desc')
|
|
|
- ->orderBy('a.id', 'desc')
|
|
|
|
|
- ->offset(($page - 1) * $limit)
|
|
|
|
|
- ->limit($limit)
|
|
|
|
|
- ->get()
|
|
|
|
|
- ->toArray();
|
|
|
|
|
-
|
|
|
|
|
- // 格式化数据
|
|
|
|
|
- foreach ($list as &$item) {
|
|
|
|
|
- $item['avatar'] = $item['avatar'] ? get_image_url($item['avatar']) : '';
|
|
|
|
|
- $item['balance'] = number_format($item['balance'], 2, '.', '');
|
|
|
|
|
- $item['create_time_text'] = date('Y-m-d H:i:s', (int)$item['create_time']);
|
|
|
|
|
- $item['login_time_text'] = $item['login_time'] ? date('Y-m-d H:i:s', (int)$item['login_time']) : '-';
|
|
|
|
|
- $item['gender_text'] = ['', '男', '女', '未知'][$item['gender']] ?? '未知';
|
|
|
|
|
- $item['status_text'] = $item['status'] == 1 ? '正常' : '冻结';
|
|
|
|
|
- $item['user_type_text'] = $item['user_type'] == 1 ? '用户' : '其他';
|
|
|
|
|
- $item['invites_count'] = $item['invites_count']?$item['invites_count']:0;
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ ->orderBy('a.id', 'desc');
|
|
|
|
|
+ $list = $query->paginate($pageSize > 0 ? $pageSize : 9999999);
|
|
|
|
|
+ $list = $list ? $list->toArray() : [];
|
|
|
|
|
|
|
|
|
|
+ if ($list) {
|
|
|
|
|
+ foreach ($list['data'] as &$item) {
|
|
|
|
|
+ $item['avatar'] = $item['avatar'] ? get_image_url($item['avatar']) : '';
|
|
|
|
|
+ $item['balance'] = number_format($item['balance'], 2, '.', '');
|
|
|
|
|
+ $item['create_time_text'] = date('Y-m-d H:i:s', (int)$item['create_time']);
|
|
|
|
|
+ $item['login_time_text'] = $item['login_time'] ? date('Y-m-d H:i:s', (int)$item['login_time']) : '-';
|
|
|
|
|
+ $item['status_text'] = $item['status'] == 1 ? '正常' : '冻结';
|
|
|
|
|
+ $item['invites_count'] = $item['invites_count']?$item['invites_count']:0;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
return [
|
|
return [
|
|
|
'code' => 0,
|
|
'code' => 0,
|
|
|
'msg' => '获取成功',
|
|
'msg' => '获取成功',
|
|
|
- 'data' => $list,
|
|
|
|
|
- 'count' => $total
|
|
|
|
|
|
|
+ 'data' => isset($list['data'])?$list['data']:[],
|
|
|
|
|
+ 'count' => isset($list['total'])?$list['total']:0
|
|
|
];
|
|
];
|
|
|
}
|
|
}
|
|
|
|
|
|