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

70 lines
2.3 KiB
PHP

<?php
namespace App\Endpoint\Api\Http\Controllers\Dealer;
use App\Actions\Dealer\CalculateNotCompletedPurchaseAmount;
use App\Actions\Dealer\CalculatePurchaseAmountOfCurrentPeriod;
use App\Endpoint\Api\Http\Controllers\Controller;
use App\Endpoint\Api\Http\Resources\Dealer\DealerResource;
use App\Endpoint\Api\Http\Resources\Dealer\UserInfoResource;
use Illuminate\Http\Request;
class UserController extends Controller
{
/**
* 个人信息
*
* @param \Illuminate\Http\Request $request
* @param \App\Actions\Dealer\CalculateNotCompletedPurchaseAmount $calculateNotCompletedPurchaseAmount
* @param \App\Actions\Dealer\CalculatePurchaseAmountOfCurrentPeriod $calculatePurchaseAmountOfCurrentPeriod
* @return \Illuminate\Http\JsonResponse
*/
public function show(
Request $request,
CalculateNotCompletedPurchaseAmount $calculateNotCompletedPurchaseAmount,
CalculatePurchaseAmountOfCurrentPeriod $calculatePurchaseAmountOfCurrentPeriod
) {
$user = $request->user();
$dealerResource = DealerResource::make($user->dealer)->toArray($request);
$dealerResource['total_purchase_amount'] = bcadd(
$calculateNotCompletedPurchaseAmount->handle($user->dealer),
$calculatePurchaseAmountOfCurrentPeriod->handle($user->dealer),
2
);
return response()->json([
'id' => $user->id,
'phone' => $user->phone,
'dealer'=> $dealerResource,
'dealer_wallet' => $user->dealerWallet?->balance,
'user_info' => UserInfoResource::make($user->userInfo),
'has_password' => (bool) $user->wallet?->password,
]);
}
public function updatePayInfo(Request $request)
{
$input = $request->validate([
'pay_info' => ['bail', 'required', 'array'],
]);
$request->user()->dealer->update([
'pay_info'=>$input['pay_info'],
]);
return response()->noContent();
}
public function changeSaleStatus(Request $request)
{
$input = $request->validate([
'is_sale' => ['bail', 'required', 'boolean'],
]);
$request->user()->dealer->update([
'is_sale'=>!$input['is_sale'],
]);
return response()->noContent();
}
}