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

60 lines
1.9 KiB
PHP

<?php
namespace App\Endpoint\Api\Http\Controllers\Dealer;
use App\Actions\Dealer\CalculatePurchaseAmountOfCurrentPeriod;
use App\Actions\Dealer\CalculateUnsettledPurchaseAmount;
use App\Endpoint\Api\Http\Controllers\Controller;
use App\Endpoint\Api\Http\Resources\Dealer\DealerFansResource;
use App\Helpers\Paginator as PaginatorHelper;
use App\Models\Dealer;
use Illuminate\Http\Request;
class FansController extends Controller
{
/**
* 统计当前信息
*
* @param Request $request
* @param CalculateUnsettledPurchaseAmount $calculateUnsettledPurchaseAmount
* @param CalculatePurchaseAmountOfCurrentPeriod $calculatePurchaseAmountOfCurrentPeriod
*/
public function statistics(
Request $request,
CalculateUnsettledPurchaseAmount $calculateUnsettledPurchaseAmount,
CalculatePurchaseAmountOfCurrentPeriod $calculatePurchaseAmountOfCurrentPeriod
) {
$user = $request->user();
return response()->json([
'fans_num'=> $user->fans()->count(),
// 未完成的业绩
'unsettled_purchase_amount' => $calculateUnsettledPurchaseAmount->handle($user->dealer),
'current_period_purchase_amount'=> $calculatePurchaseAmountOfCurrentPeriod->handle($user->dealer),
]);
}
public function index(Request $request)
{
$perPage = PaginatorHelper::resolvePerPage('per_page', 20, 50);
$fans = $request->user()->fans()
->with(['userInfo', 'dealer'])
->latest('id')
->simplePaginate($perPage);
return DealerFansResource::collection($fans);
}
public function show(
$id,
CalculatePurchaseAmountOfCurrentPeriod $calculatePurchaseAmountOfCurrentPeriod
) {
$dealer = Dealer::where('user_id', $id)->firstOrFail();
return response()->json([
'total_purchase_amount' => $calculatePurchaseAmountOfCurrentPeriod->handle($dealer),
]);
}
}