获取/设置 个人资料
parent
42718e72ff
commit
2ac4887268
|
|
@ -0,0 +1,77 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Endpoint\Api\Http\Controllers\Account;
|
||||||
|
|
||||||
|
use App\Endpoint\Api\Http\Controllers\Controller;
|
||||||
|
use App\Endpoint\Api\Http\Resources\UserInfoResource;
|
||||||
|
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([
|
||||||
|
'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),
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,25 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Endpoint\Api\Http\Resources;
|
||||||
|
|
||||||
|
use Illuminate\Http\Resources\Json\JsonResource;
|
||||||
|
|
||||||
|
class UserInfoResource extends JsonResource
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Transform the resource into an array.
|
||||||
|
*
|
||||||
|
* @param \Illuminate\Http\Request $request
|
||||||
|
* @return array|\Illuminate\Contracts\Support\Arrayable|\JsonSerializable
|
||||||
|
*/
|
||||||
|
public function toArray($request)
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'nickname' => (string) $this->nickname,
|
||||||
|
'avatar' => (string) $this->avatar,
|
||||||
|
'gender' => (string) $this->gender,
|
||||||
|
'birthday' => (string) $this->birthday?->toDateString(),
|
||||||
|
'code' => (string) $this->code,
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
use App\Endpoint\Api\Http\Controllers\Account\UserController;
|
||||||
use App\Endpoint\Api\Http\Controllers\AdController;
|
use App\Endpoint\Api\Http\Controllers\AdController;
|
||||||
use App\Endpoint\Api\Http\Controllers\Auth\LoginController;
|
use App\Endpoint\Api\Http\Controllers\Auth\LoginController;
|
||||||
use App\Endpoint\Api\Http\Controllers\Auth\LogoutController;
|
use App\Endpoint\Api\Http\Controllers\Auth\LogoutController;
|
||||||
|
|
@ -42,6 +43,10 @@ Route::group([
|
||||||
Route::get('product/products/{product}', [ProductSkuController::class, 'show']);
|
Route::get('product/products/{product}', [ProductSkuController::class, 'show']);
|
||||||
|
|
||||||
Route::middleware(['auth:api'])->group(function () {
|
Route::middleware(['auth:api'])->group(function () {
|
||||||
|
// 我的信息
|
||||||
|
Route::get('me', [UserController::class, 'show']);
|
||||||
|
Route::put('me', [UserController::class, 'update']);
|
||||||
|
|
||||||
// 收藏商品
|
// 收藏商品
|
||||||
Route::post('product/products/{product}/collect', [ProductSkuController::class, 'collect']);
|
Route::post('product/products/{product}/collect', [ProductSkuController::class, 'collect']);
|
||||||
// 取消商品收藏
|
// 取消商品收藏
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue