xiaogang 3 年之前
父节点
当前提交
054b1ab5c8
共有 2 个文件被更改,包括 72 次插入0 次删除
  1. 71 0
      app/Http/Controllers/Api/UserController.php
  2. 1 0
      routes/api.php

+ 71 - 0
app/Http/Controllers/Api/UserController.php

@@ -32,6 +32,77 @@ class UserController extends Controller
         $this->userService = new UserService();
         $this->userService = new UserService();
     }
     }
 
 
+    /**
+     *  设置账户
+     */
+    public function setaccount(Request $request){
+        $validator = Validator::make($request->all(), [
+            'password' => 'required|string',
+            'sex' => 'required',
+            'nickname' => 'required|between:2,10',
+            'birthday' => 'required',
+            'avatar' => 'required',
+        ],[
+            'password.required'=>"密码必须",
+            'sex.required'=>"性别必须",
+            'nickname.required'=>"昵称不能为空",
+            'nickname.between'=>"昵称长度必须在2~10之间",
+            'birthday.required'=>"生日不能为空",
+            'avatar.required'=>"头像不能为空",
+        ]);
+        if ($validator->fails()) {
+            return $this->response()->errorForbidden($validator->messages()->first());
+        }
+        $user = auth('api')->user();
+
+        DB::beginTransaction();
+        try {
+            $user->password = $request->password;
+            $user->sex = $request->sex;
+
+            if($request->sex==2 && empty($request->video)){
+                throw new Exception("请上传视频");
+            }
+            if(UserInfoModel::query()->leftJoin('users','users_info.user_id','=','users.id')
+                ->where(['users_info.nickname'=>$request->nickname,'users.is_distory'=>0])
+                ->where('users_info.user_id', '!=' , $user->id)->first()){
+                throw new Exception("昵称已被使用");
+            }
+            //邀请码设置
+            $pid = 0;
+            if(isset($request->ycode) && $request->ycode!=""){
+                if(!$puser = User::where(['ycode'=>$request->ycode])->first()){
+                    throw new Exception("邀请码不存在");
+                }
+                $pid = $puser->id;
+                //赠送会员天数
+                UserInviteLog::query()->create([
+                    'user_id'=>$pid,
+                    'invite_id'=>$user->id,
+                    'day'=>1,
+                    'status'=>0,
+                ]);
+            }
+            UserInfoModel::query()->where('user_id',$user->id)->update([
+                'avatar' =>$request->avatar,
+                'nickname' =>htmlspecialchars($request->nickname),
+                'birthday' =>$request->birthday,
+                'video' => !empty($request->video)?json_encode(['url'=>$request->video,'thumb'=>$request->thumb??""]) :[],
+            ]);
+            if($pid!=0){
+                $user->pid = $pid;
+            }
+            $user->save();
+            DB::commit();
+        }catch (\Exception $exception){
+            DB::rollBack();
+            return $this->response()->errorForbidden($exception->getMessage());
+        }
+    }
+
+
+
+
     /**
     /**
      * 设置密码
      * 设置密码
      */
      */

+ 1 - 0
routes/api.php

@@ -132,6 +132,7 @@ $api->version('v1', [
             $api->get('/get_hobby', 'UserController@get_hobby')->name('user.get_hobby');
             $api->get('/get_hobby', 'UserController@get_hobby')->name('user.get_hobby');
             $api->post('/set_hobby', 'UserController@set_hobby')->name('user.set_hobby');
             $api->post('/set_hobby', 'UserController@set_hobby')->name('user.set_hobby');
             $api->post('/edit_hobby', 'UserController@edit_hobby')->name('user.edit_hobby');
             $api->post('/edit_hobby', 'UserController@edit_hobby')->name('user.edit_hobby');
+            $api->post('/setaccount', 'UserController@setaccount')->name('user.setaccount');
 
 
         });
         });