UserService.php 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: Administrator
  5. * Date: 22/04/26
  6. * Time: 14:41
  7. */
  8. namespace App\Services\Api;
  9. use App\Models\User;
  10. class UserService
  11. {
  12. /**
  13. * 模型
  14. *
  15. * @var object
  16. *
  17. */
  18. private $Model;
  19. /**
  20. * 初始化
  21. * @access public
  22. */
  23. public function __construct()
  24. {
  25. if( ! $this->Model) $this->Model = new User;
  26. }
  27. public function search(array $search,array $where = [],array $orderby=['id'=>'desc'],$pagesize=10)
  28. {
  29. //查询
  30. $currentQuery = $this->Model;
  31. if(isset($search['keyword']) && ! empty($search['keyword'])) {
  32. $keywords = '%' . $search['keyword'] . '%';
  33. $currentQuery = $currentQuery->where(function ($query) use ($keywords) {
  34. $query->where('id' , 'like', $keywords)
  35. ->orwhere('nickname', 'like', $keywords)
  36. ->orwhere('password', 'like', $keywords)
  37. ->orwhere('email', 'like', $keywords)
  38. ->orwhere('mobile', 'like', $keywords);
  39. });
  40. }
  41. //条件
  42. if($where && is_array($where)){
  43. foreach ($where as $field => $value){
  44. $currentQuery = $currentQuery->where($field, $value);
  45. }
  46. }
  47. //排序
  48. if($orderby && is_array($orderby)){
  49. foreach ($orderby as $field => $value){
  50. $currentQuery = $currentQuery->orderBy($field, $value);
  51. }
  52. }
  53. $currentQuery = $currentQuery->paginate($pagesize);
  54. $currentQuery->makeHidden('password','deleted_at');
  55. return $currentQuery;
  56. }
  57. //查询用户信息
  58. public function show($id) {
  59. return $this->Model->findOrFail($id);
  60. }
  61. /**
  62. * 添加
  63. * @param unknown $data
  64. */
  65. public function create($data)
  66. {
  67. return $this->Model->create($data);
  68. }
  69. /**
  70. * 更新
  71. * @param unknown $id
  72. * @param unknown $data
  73. */
  74. public function update($id,$data)
  75. {
  76. $obj = $this->Model->findOrFail($id);
  77. if(!$obj) {
  78. return false;
  79. }
  80. $ok = $obj->update($data);
  81. return $ok;
  82. }
  83. /**
  84. * 更新状态
  85. */
  86. public function updateStatus($id,$status) {
  87. $data = $this->Model->findOrFail($id);
  88. $data->status = $status;
  89. return $data->save();
  90. }
  91. /**
  92. * 删除
  93. * @param unknown $id
  94. */
  95. public function destroy($id)
  96. {
  97. $data = $this->Model->findOrFail($id);
  98. $data->deleted_at = date('Y-m-d H:i:s');
  99. return $data->save();
  100. }
  101. //获取用户信息(需要更多信息的话在这里追加)
  102. public static function getUserInfoById($id)
  103. {
  104. $info = User::query()->where('id', $id)->whereNull('deleted_at')->first();
  105. $info->makeHidden(['updated_at', 'deleted_at']);
  106. $info = !empty($info) ? $info->toArray() : [];
  107. return $info;
  108. }
  109. //通过手机号查用户
  110. public static function checkUserByMobile($mobile)
  111. {
  112. $user = User::where('mobile', $mobile)->whereNull('deleted_at')->first();
  113. if ($user) {
  114. return true;
  115. }
  116. return false;
  117. }
  118. //通过邮箱查找用户
  119. public static function checkUserByEmail($email)
  120. {
  121. $user = User::where('email', $email)->whereNull('deleted_at')->first();
  122. if ($user) {
  123. return true;
  124. }
  125. return false;
  126. }
  127. //收藏数+1
  128. public static function collectNumInc($userId)
  129. {
  130. User::query()->where('id', $userId)->increment('collect_num');
  131. }
  132. //收藏数-1
  133. public static function collectNumDec($userId)
  134. {
  135. User::query()->where('id', $userId)->decrement('collect_num');
  136. }
  137. }