UserService.php 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. <?php
  2. /**
  3. * @Name
  4. * @Description
  5. * @Author 刘学玺
  6. * @Date 2024/8/23 10:20
  7. */
  8. namespace App\Http\Services\Backend\Server\System;
  9. use App\Http\Services\Service;
  10. use App\Models\System\User;
  11. class UserService extends Service
  12. {
  13. //"deptId": 100,
  14. //"deptName": "芋道源码",
  15. //"postIds": [],
  16. protected array $selectColumn = ['id', 'username', 'nickname', 'remark', 'email', 'mobile', 'sex', 'avatar', 'status', 'login_ip as loginIp', 'login_date as loginDate'];
  17. protected array $appendColumn = ['created_at as createTime'];
  18. public function getUserList($params): array
  19. {
  20. $user = User::query();
  21. isset($params['username']) && filled($params['username']) && $user->whereLike('username', "%{$params['username']}%");
  22. isset($params['mobile']) && filled($params['mobile']) && $user->whereLike('mobile', "%{$params['mobile']}%");
  23. isset($params['status']) && filled($params['status']) && $user->where('status', $params['status']);
  24. !empty($params['createTime']) && $user->whereBetween('created_at', $params['createTime']);
  25. $rolePage = $user->select([...$this->selectColumn, ...$this->appendColumn])->paginate($params['pageSize'], ['*'], 'page', $params['pageNo']);
  26. return ['list' => $rolePage->items(), 'total' => $rolePage->total()];
  27. }
  28. public function getUser(int $id)
  29. {
  30. $user = User::query()->select($this->selectColumn)->find($id);
  31. return $user;
  32. }
  33. public function createUser(array $data)
  34. {
  35. $user = self::toModel($data, User::class);
  36. return $user->create($user->getAttributes())->id;
  37. }
  38. public function updateUser(array $data, int $id): void
  39. {
  40. $user = self::toModel($data, User::class);
  41. $user->where('id', $id)->update($user->getAttributes());
  42. }
  43. public function setStatus($data): void
  44. {
  45. $user = User::query()->find($data['id']);
  46. $user->status = $data['status'];
  47. $user->save();
  48. }
  49. public static function getUserByUsername($username)
  50. {
  51. return User::query()->where('username', $username)->first();
  52. }
  53. public static function isPasswordMatch($password, $matchPassword)
  54. {
  55. }
  56. }