User.php 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. <?php
  2. namespace app\admin\controller;
  3. use app\BaseController;
  4. use app\admin\model\User as UserModel;
  5. use Exception;
  6. class User extends BaseController
  7. {
  8. /**
  9. * @api {get} /user/list 用户列表
  10. */
  11. function list()
  12. {
  13. try {
  14. $params = $this->request->param();
  15. $page = $params['page'] ?? 1;
  16. $limit = $params['limit'] ?? 15;
  17. $user_id = $params['user_id'] ?? '';
  18. $name = $params['name'] ?? '';
  19. $role = $params['role'] ?? 0;
  20. $query = new UserModel();
  21. if ($role == 0) {
  22. $query = $query->where('role', 0);
  23. } else {
  24. $query = $query->where('role', 3);
  25. }
  26. if (!empty($user_id)) {
  27. $query = $query->where('user_id', $user_id);
  28. }
  29. if (!empty($name)) {
  30. $query = $query->where(function ($query) use ($name) {
  31. $query->where('account', 'like', "%{$name}%")
  32. ->whereOr('phone', 'like', "%{$name}%")
  33. ->whereOr('realname', 'like', "%{$name}%");
  34. });
  35. }
  36. $count = $query->count();
  37. $list = $query->order('last_login_time','desc')
  38. ->limit($limit)
  39. ->page($page)
  40. ->select();
  41. foreach($list as &$item) {
  42. $item['last_login_time'] = date('Y-m-d H:i:s', $item['last_login_time']);
  43. $item['offline_time'] = $item['offline_time'] ? date('Y-m-d H:i:s', $item['offline_time']) : '';
  44. }
  45. } catch (Exception $e) {
  46. return $this->error($e->getMessage());
  47. }
  48. return $this->success(['count' => $count, 'list' => $list]);
  49. }
  50. //设置用户状态
  51. public function setStatus()
  52. {
  53. $user_id = (int)$this->request->param('user_id');
  54. $user = UserModel::where('user_id', $user_id)->find();
  55. if (!$user) {
  56. return $this->error('用户不存在');
  57. }
  58. $user->status = $user->status == 0 ? 1 : 0;
  59. $user->save();
  60. return $this->success($user);
  61. }
  62. }