User.php 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184
  1. <?php
  2. namespace App\Module\User\Logic;
  3. use App\Module\User\Enums\Status;
  4. use App\Module\User\Enums\Status2;
  5. use Illuminate\Pagination\LengthAwarePaginator;
  6. class User
  7. {
  8. /**
  9. * 用户列表
  10. *
  11. * @param $w
  12. * @param $page
  13. * @param $limit
  14. * @return LengthAwarePaginator
  15. */
  16. static public function list1($w, $page, $limit)
  17. {
  18. $q = \App\Module\User\Models\User::query()->with([
  19. 'hospital','hospital_auth','consumer'
  20. ]);
  21. if($w['only_consumer']??""){
  22. $q = $q->where('is_consumer','=',1);
  23. }
  24. if($w['username']??""){
  25. $q = $q->where('username','like',"%{$w['username']}%");
  26. }
  27. if($w['name']??""){
  28. $q = $q->where('name','like',"%{$w['name']}%");
  29. }
  30. if($w['phone']??""){
  31. $q = $q->where('phone','=',$w['phone']);
  32. }
  33. if($w['email']??""){
  34. $q = $q->where('phone','=',$w['email']);
  35. }
  36. if($w['user_id']??""){
  37. $q = $q->where('id','=',$w['user_id']);
  38. }
  39. return $q->paginate($limit, [ '*' ], '', $page);
  40. }
  41. /**
  42. * 获取单条信息
  43. *
  44. * @param $id
  45. * @return \App\Module\User\Models\User|null
  46. */
  47. static public function info($id)
  48. {
  49. $q = \App\Module\User\Models\User::query();
  50. $info = $q->find($id);
  51. return $info;
  52. }
  53. static public function infoinfo($id,$create = false)
  54. {
  55. $q = \App\Module\User\Models\UserInfo::query();
  56. $info = $q->find($id);
  57. if(!$info && $create){
  58. $info = self::infoCreate($id);
  59. }
  60. return $info;
  61. }
  62. /**
  63. * 信息创建
  64. * @param $user_id
  65. * @return \App\Module\User\Models\UserInfo
  66. */
  67. static public function infoCreate($user_id)
  68. {
  69. $info = self::info($user_id);
  70. $model = new \App\Module\User\Model\UserInfo();
  71. $model->user_id = $user_id;
  72. $model->status = Status::Hidden;
  73. $model->nickname = '用户**'.substr($info->username, -4);
  74. $model->avatar = '0';
  75. $model->google2fa_secret = '';
  76. $model->save();
  77. return $model;
  78. }
  79. /**
  80. * 编辑用户
  81. *
  82. * @param $id
  83. * @param $password
  84. * @return null
  85. */
  86. static public function edit($id, $password)
  87. {
  88. /**
  89. * @var \App\Module\User\Models\User $user
  90. */
  91. $user = \App\Module\User\Models\User::query()->find($id);
  92. if ($user) {
  93. $user->password = password_hash($password, PASSWORD_DEFAULT);
  94. $user->save();
  95. return $user;
  96. }
  97. return null;
  98. }
  99. /**
  100. * 删除
  101. *
  102. * @param $id
  103. * @return bool|null
  104. */
  105. static public function delete($id)
  106. {
  107. /**
  108. * @var \App\Module\User\Models\User $user
  109. */
  110. $user = \App\Module\User\Models\User::query()->find($id);
  111. if ($user) {
  112. return $user->delete();
  113. }
  114. return null;
  115. }
  116. /**
  117. * 批量删除
  118. *
  119. * @param $ids
  120. * @return true|null
  121. */
  122. static public function delete_batch($ids)
  123. {
  124. /**
  125. * @var \App\Module\User\Models\User $user
  126. */
  127. $users = \App\Module\User\Models\User::query()->findMany($ids);
  128. if ($users) {
  129. foreach ($users as $user){
  130. $user->delete();
  131. }
  132. return true;
  133. }
  134. return null;
  135. }
  136. /**
  137. * 编辑数据
  138. *
  139. * @param $id
  140. * @param $data
  141. * @return void
  142. */
  143. static public function edit_data($id,$data)
  144. {
  145. if(!$data){
  146. return [];
  147. }
  148. /**
  149. * @var \App\Module\User\Models\User $user
  150. */
  151. $user = \App\Module\User\Models\User::query()->find($id);
  152. foreach ($data as $k=> $m){
  153. $user->$k = $m;
  154. }
  155. $user->save();
  156. }
  157. }