UserController.php 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. <?php
  2. namespace App\Http\Controllers\Api;
  3. use App\Models\User;
  4. use App\Models\UserInfoModel;
  5. use Illuminate\Http\Request;
  6. use Illuminate\Support\Facades\DB;
  7. use Illuminate\Support\Facades\Validator;
  8. class UserController extends Controller
  9. {
  10. /**
  11. * 选择性别
  12. */
  13. public function checksex(Request $request){
  14. $user = auth('api')->user();
  15. $validator = Validator::make($request->all(), [
  16. 'sex' => 'required'
  17. ], [
  18. 'mobile.required'=>"性别必须",
  19. ]);
  20. if ($validator->fails()) {
  21. return $this->response()->errorForbidden($validator->messages()->first());
  22. }
  23. $user->sex = $request->sex;
  24. if (!$user->save()) {
  25. return $this->response->errorForbidden('设置性别失败');
  26. }
  27. return $this->response->noContent();
  28. }
  29. /**
  30. * 设置资料
  31. */
  32. public function setinfo(Request $request){
  33. $user = auth('api')->user();
  34. $validator = Validator::make($request->all(), [
  35. 'nickname' => 'required|between:2,8',
  36. 'birthday' => 'required',
  37. 'avatar' => 'required',
  38. ], [
  39. 'nickname.required'=>"昵称不能为空",
  40. 'nickname.between'=>"昵称长度必须在2~8之间",
  41. 'birthday.required'=>"生日不能为空",
  42. 'avatar.required'=>"头像不能为空",
  43. ]);
  44. if ($validator->fails()) {
  45. return $this->response()->errorForbidden($validator->messages()->first());
  46. }
  47. if(UserInfoModel::where(['nickname'=>$request->nickname])->where('user_id', '!=' , $user->id)->first()){
  48. return $this->response->errorForbidden('昵称已被使用');
  49. }
  50. //邀请码设置
  51. $pid = 0;
  52. if(isset($request->ycode) && $request->ycode!=""){
  53. if(!$puser = User::where(['ycode'=>$request->ycode])->first()){
  54. return $this->response->errorForbidden("邀请码不存在");
  55. }
  56. $pid = $puser->id;
  57. }
  58. DB::beginTransaction();
  59. try {
  60. UserInfoModel::firstOrCreate([
  61. 'user_id' => $user->id,
  62. 'avatar' =>$request->avatar,
  63. 'nickname' =>$request->nickname,
  64. 'birthday' =>$request->birthday,
  65. ]);
  66. if($pid!=0){
  67. $user->pid = $pid;
  68. $user->save();
  69. }
  70. DB::commit();
  71. } catch (\Exception $e) {
  72. DB::rollBack();
  73. return $this->response->errorForbidden($e->getMessage());
  74. }
  75. return $this->response->noContent();
  76. }
  77. }