6
0
Fork 0
jiqu-library-server/app/Endpoint/Api/Http/Controllers/Account/UserController.php

83 lines
2.2 KiB
PHP

<?php
namespace App\Endpoint\Api\Http\Controllers\Account;
use App\Endpoint\Api\Http\Controllers\Controller;
use App\Endpoint\Api\Http\Resources\UserBalanceResource;
use App\Endpoint\Api\Http\Resources\UserInfoResource;
use App\Endpoint\Api\Http\Resources\UserWalletResource;
use App\Models\UserInfo;
use Illuminate\Http\Request;
use Illuminate\Validation\Rule;
class UserController extends Controller
{
/**
* 获取个人资料
*
* @param Request $request
* @return \Illuminate\Http\JsonResponse
*/
public function show(Request $request)
{
$user = $request->user();
return response()->json([
'id' => $user->id,
'phone' => $user->phone,
'user_info' => UserInfoResource::make($user->userInfo),
]);
}
/**
* 设置个人资料
*
* @param Request $request
* @return \Illuminate\Http\JsonResponse
*/
public function update(Request $request)
{
$request->validate([
'nickname' => ['bail', 'filled', 'string', 'max:10'],
'avatar' => ['bail', 'filled', 'string'],
'gender' => [
'bail',
'filled',
Rule::in([
UserInfo::GENDER_UNKNOWN,
UserInfo::GENDER_MALE,
UserInfo::GENDER_FEMALE,
]),
],
'birthday' => ['bail', 'filled', 'date:Y-m-d'],
]);
$user = $request->user();
if ($request->has('nickname')) {
$user->userInfo->nickname = $request->input('nickname');
}
if ($request->has('avatar')) {
$user->userInfo->avatar = $request->input('avatar');
}
if ($request->has('gender')) {
$user->userInfo->gender = $request->input('gender');
}
if ($request->has('birthday')) {
$user->userInfo->birthday = $request->input('birthday');
}
$user->userInfo->save();
return response()->json([
'phone' => $user->phone,
'user_info' => UserInfoResource::make($user->userInfo),
'is_vip' => $user->isVip(),
'wallet' => UserWalletResource::make($user->wallet),
]);
}
}