AdminRepositoryEloquent.php 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. <?php
  2. namespace App\Repositories\Eloquent\Base;
  3. use App\Contracts\Repositories\Base\AdminRepository;
  4. use App\Repositories\Models\Base\Admin;
  5. use App\Repositories\Presenters\Base\AdminPresenter;
  6. use App\Repositories\Validators\Base\AdminValidator;
  7. use Illuminate\Support\Facades\Hash;
  8. use Prettus\Repository\Criteria\RequestCriteria;
  9. use Prettus\Repository\Eloquent\BaseRepository;
  10. class AdminRepositoryEloquent extends BaseRepository implements AdminRepository
  11. {
  12. protected $fieldSearchable = [
  13. // 'name' => 'like', Default Condition "="
  14. ];
  15. /**
  16. * Specify Model class name.
  17. *
  18. * @return string
  19. */
  20. public function model()
  21. {
  22. return Admin::class;
  23. }
  24. /**
  25. * Boot up the repository, pushing criteria.
  26. *
  27. * @throws \Prettus\Repository\Exceptions\RepositoryException
  28. */
  29. public function boot()
  30. {
  31. $this->pushCriteria(app(RequestCriteria::class));
  32. }
  33. /**
  34. * @return mixed
  35. */
  36. public function searchAdminsByPage()
  37. {
  38. return $this->paginate(request('per_page', 15));
  39. }
  40. /**
  41. * @param $id
  42. *
  43. * @return mixed
  44. */
  45. public function searchAdminBy($id)
  46. {
  47. return $this->find($id);
  48. }
  49. /**
  50. * 更新用户登录地址
  51. * @param $admin_id
  52. * @param $ip
  53. * @return \Illuminate\Contracts\Pagination\LengthAwarePaginator|\Illuminate\Support\Collection|mixed
  54. * @throws \Prettus\Validator\Exceptions\ValidatorException
  55. */
  56. public function updateLoginInfo($admin_id, $ip)
  57. {
  58. $this->validator = null;
  59. return $this->update([
  60. 'last_login_time' => date('Y-m-d H:i:s'),
  61. 'last_login_ip' => $ip,
  62. ], $admin_id);
  63. }
  64. /**
  65. * 验证密码是否正确
  66. * @param $id
  67. * @param $password
  68. * @return mixed
  69. */
  70. public function byIdConfirmPassword($id, $password)
  71. {
  72. $user_password = $this->where('id', $id)->value('password');
  73. return Hash::check(base64_decode($password), $user_password);
  74. }
  75. }