UserController.php 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  1. <?php
  2. namespace App\Http\Controllers\V1;
  3. use App\Models\User;
  4. use App\Models\UserFeedback;
  5. use App\Services\Api\SortService;
  6. use Illuminate\Http\Request;
  7. use Illuminate\Support\Facades\Validator;
  8. class UserController extends Controller
  9. {
  10. public function __construct()
  11. {
  12. $this->user = auth('api')->user();
  13. $this->userId = $this->user ? $this->user->id : 0;
  14. //如果用户被删除,会自动退出登录
  15. if (!empty($this->user->deleted_at)) {
  16. $this->user->online = 0;
  17. $this->user->save();
  18. auth('api')->logout();
  19. }
  20. }
  21. //问题反馈
  22. public function feedback(Request $request)
  23. {
  24. $content = $request->input('content');
  25. $file_url = $request->input('file_url', '');
  26. $validator = Validator::make($request->all(), [
  27. 'content' => 'required|min:2|max:200',
  28. ]);
  29. if($validator->fails()){
  30. return $this->error($validator->errors()->first());
  31. }
  32. $feedback = new UserFeedback();
  33. $feedback->user_id = $this->userId;
  34. $feedback->content = $content;
  35. $feedback->file = !empty($file_url) ? json_encode($file_url) : '';
  36. $feedback->save();
  37. return $this->success();
  38. }
  39. //按照首字母进行分组排序,类似手机通讯录(注意:get()后面直接 ->toArray()在数据为空的时候导致报错)
  40. public function groupByInitial(Request $request)
  41. {
  42. $keyword = $request->input('keyword', '');
  43. $list = User::query()
  44. ->select('id', 'name', 'avatar')
  45. ->when($keyword, function ($query, $keyword){
  46. $query->where('name', 'like', '%'.$keyword.'%');
  47. })
  48. ->whereNotNull('name')
  49. ->whereNull('deleted_at')
  50. ->get();
  51. if($list->isNotEmpty()){
  52. $list = $list->toArray();
  53. $list = SortService::getResultList($list);
  54. }else{
  55. $list = [];
  56. }
  57. return $this->success($list);
  58. }
  59. public function info()
  60. {
  61. $user = auth('api')->user();
  62. $user = User::with(['info'])->where('id', $user->id)->first();
  63. return $this->success($user);
  64. }
  65. public function update(Request $request)
  66. {
  67. $req = $request->all();
  68. $app = $this->getByteDanceFactory();
  69. $user = auth('api')->user();
  70. $decryptedData = $app->decryptData($user->remember_token, $req['iv'], $req['encryptedData']);
  71. $user = User::with(['info'])->where('id', $user->id)->first();
  72. if (isset($decryptedData['nickName'])) {
  73. $user->nickname = $decryptedData['nickName'];
  74. $user->avatar = $decryptedData['avatarUrl'];
  75. }else{
  76. $user->mobile = $decryptedData['phoneNumber'];
  77. }
  78. $user->save();
  79. return $this->success($user);
  80. }
  81. // h5 绑定
  82. public function h5Bind()
  83. {
  84. }
  85. // h5 解绑
  86. public function h5ReBind()
  87. {
  88. }
  89. // 微信小程序 绑定
  90. public function miniProgramBind()
  91. {
  92. }
  93. // 微信小程序 解绑
  94. public function miniProgramReBind()
  95. {
  96. }
  97. // 手机号 绑定
  98. public function smsBind()
  99. {
  100. }
  101. // 手机号 解绑
  102. public function smsReBind()
  103. {
  104. }
  105. }