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

84 lines
3.1 KiB
PHP

<?php
namespace App\Endpoint\Api\Http\Controllers\Dealer;
use App\Actions\Dealer\CalculateManageSubsidiesOfCurrentPeriod;
use App\Actions\Dealer\CalculatePurchaseAmountOfCurrentPeriod;
use App\Actions\Dealer\CalculateUnsettledManageSubsidies;
use App\Actions\Dealer\CalculateUnsettledPurchaseAmount;
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\CalculateUnsettledManageSubsidies $calculateNotCompletedManageSubsidies
* @param \App\Actions\Dealer\CalculateManageSubsidiesOfCurrentPeriod $calculateManageSubsidiesOfCurrentPeriod
* @param \App\Actions\Dealer\CalculateUnsettledPurchaseAmount $calculateNotCompletedPurchaseAmount
* @param \App\Actions\Dealer\CalculatePurchaseAmountOfCurrentPeriod $calculatePurchaseAmountOfCurrentPeriod
* @return \Illuminate\Http\JsonResponse
*/
public function show(
Request $request,
CalculateUnsettledManageSubsidies $calculateUnsettledManageSubsidies,
CalculateManageSubsidiesOfCurrentPeriod $calculateManageSubsidiesOfCurrentPeriod,
CalculateUnsettledPurchaseAmount $calculateUnsettledPurchaseAmount,
CalculatePurchaseAmountOfCurrentPeriod $calculatePurchaseAmountOfCurrentPeriod
) {
$user = $request->user();
$user->dealer->setRelation('userInfo', $user->userInfo);
$dealerResource = DealerResource::make($user->dealer)->toArray($request);
$dealerResource['guanli_values'] = bcadd(
$calculateUnsettledManageSubsidies->handle($user->dealer),
$calculateManageSubsidiesOfCurrentPeriod->handle($user->dealer),
2
);
$dealerResource['archived_purchase_amount'] = $user->dealer->archived_purchase_amount;
$dealerResource['total_purchase_amount'] = bcadd(
$calculateUnsettledPurchaseAmount->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();
}
}