UserController.php 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  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. $userinfo = UserInfoModel::firstOrCreate([
  61. 'user_id' => $user->id,
  62. ]);
  63. $userinfo->avatar = $request->avatar;
  64. $userinfo->nickname = $request->nickname;
  65. $userinfo->birthday = $request->birthday;
  66. $userinfo->save();
  67. if($pid!=0){
  68. $user->pid = $pid;
  69. $user->save();
  70. }
  71. DB::commit();
  72. } catch (\Exception $e) {
  73. DB::rollBack();
  74. abort(403, '保存失败');
  75. }
  76. }
  77. }