From 3609da6301ccbf826a5d80174f337412fe756319 Mon Sep 17 00:00:00 2001 From: zhaoxiang <756958008@qq.com> Date: Sun, 11 Feb 2018 00:35:28 +0800 Subject: [PATCH] =?UTF-8?q?modified=20=E8=8E=B7=E5=8F=96=E5=BD=93=E5=89=8D?= =?UTF-8?q?=E7=BB=84=E7=9A=84=E7=94=A8=E6=88=B7=EF=BC=8C=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E6=9D=A1=E4=BB=B6=E6=9F=A5=E8=AF=A2=E5=88=86=E9=A1=B5=E5=BC=82?= =?UTF-8?q?=E5=B8=B8BUG?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/admin/controller/Auth.php | 5 +- application/admin/controller/User.php | 71 +++++++++++++++++++++++---- application/adminRoute.php | 4 ++ 3 files changed, 68 insertions(+), 12 deletions(-) diff --git a/application/admin/controller/Auth.php b/application/admin/controller/Auth.php index 36943e2..64bd80e 100644 --- a/application/admin/controller/Auth.php +++ b/application/admin/controller/Auth.php @@ -35,9 +35,8 @@ class Auth extends Base { $where['status'] = $status; } - $listModel = (new ApiAuthGroup())->where($where)->order('id', 'DESC'); - $listInfo = $listModel->limit($start, $limit)->select(); - $count = $listModel->count(); + $listInfo = (new ApiAuthGroup())->where($where)->order('id', 'DESC')->limit($start, $limit)->select(); + $count = (new ApiAuthGroup())->where($where)->count(); $listInfo = $this->buildArrFromObj($listInfo); return $this->buildSuccess([ diff --git a/application/admin/controller/User.php b/application/admin/controller/User.php index 5059ca2..30114a2 100644 --- a/application/admin/controller/User.php +++ b/application/admin/controller/User.php @@ -47,10 +47,8 @@ class User extends Base { } } - $listModel = (new ApiUser())->where($where)->order('regTime', 'DESC'); - $listInfo = $listModel->limit($start, $limit)->select(); - $count = $listModel->count(); - + $listInfo = (new ApiUser())->where($where)->order('regTime', 'DESC')->limit($start, $limit)->select(); + $count = (new ApiUser())->where($where)->count(); $listInfo = $this->buildArrFromObj($listInfo); $idArr = array_column($listInfo, 'id'); @@ -114,6 +112,52 @@ class User extends Base { } } + /** + * 获取当前组的全部用户 + * @author zhaoxiang + * @return array + * @throws \think\db\exception\DataNotFoundException + * @throws \think\db\exception\ModelNotFoundException + * @throws \think\exception\DbException + */ + public function getUsers() { + $limit = $this->request->get('size', config('apiAdmin.ADMIN_LIST_DEFAULT')); + $start = $limit * ($this->request->get('page', 1) - 1); + $gid = $this->request->get('gid', 0); + if (!$gid) { + return $this->buildFailed(ReturnCode::PARAM_INVALID, '非法操作'); + } + + $listInfo = (new ApiAuthGroupAccess())->where(['groupId' => ['like', "%{$gid}%"]])->select(); + $listInfo = $this->buildArrFromObj($listInfo); + $uidArr = array_column($listInfo, 'uid'); + + $userInfo = (new ApiUser())->whereIn('id', $uidArr)->order('regTime', 'DESC')->limit($start, $limit)->select(); + $count = (new ApiUser())->whereIn('id', $uidArr)->count(); + $userInfo = $this->buildArrFromObj($userInfo); + + $userData = ApiUserData::all(function($query) use ($uidArr) { + $query->whereIn('uid', $uidArr); + }); + $userData = $this->buildArrFromObj($userData); + $userData = $this->buildArrByNewKey($userData, 'uid'); + $this->debug($userData); + + foreach ($userInfo as $key => $value) { + if (isset($userData[$value['id']])) { + $userInfo[$key]['lastLoginIp'] = long2ip($userData[$value['id']]['lastLoginIp']); + $userInfo[$key]['loginTimes'] = $userData[$value['id']]['loginTimes']; + $userInfo[$key]['lastLoginTime'] = date('Y-m-d H:i:s', $userData[$value['id']]['lastLoginTime']); + } + $userInfo[$key]['regIp'] = long2ip($userInfo[$key]['regIp']); + } + + return $this->buildSuccess([ + 'list' => $userInfo, + 'count' => $count + ]); + } + /** * 用户状态编辑 * @return array @@ -137,6 +181,7 @@ class User extends Base { * 编辑用户 * @author zhaoxiang * @return array + * @throws \think\exception\DbException */ public function edit() { $groups = ''; @@ -156,11 +201,19 @@ class User extends Base { if ($res === false) { return $this->buildFailed(ReturnCode::DB_SAVE_ERROR, '操作失败'); } else { - ApiAuthGroupAccess::update([ - 'groupId' => $groups - ], [ - 'uid' => $res->id, - ]); + $has = ApiAuthGroupAccess::get(['uid' => $postData['id']]); + if($has){ + ApiAuthGroupAccess::update([ + 'groupId' => $groups + ], [ + 'uid' => $postData['id'], + ]); + }else{ + ApiAuthGroupAccess::create([ + 'uid' => $postData['id'], + 'groupId' => $groups + ]); + } return $this->buildSuccess([]); } diff --git a/application/adminRoute.php b/application/adminRoute.php index 26c65d5..5921819 100644 --- a/application/adminRoute.php +++ b/application/adminRoute.php @@ -35,6 +35,10 @@ return [ 'admin/User/index', ['method' => 'get', 'after_behavior' => $afterBehavior] ], + 'User/getUsers' => [ + 'admin/User/getUsers', + ['method' => 'get', 'after_behavior' => $afterBehavior] + ], 'User/changeStatus' => [ 'admin/User/changeStatus', ['method' => 'get', 'after_behavior' => $afterBehavior]