60 lines
2.0 KiB
PHP
60 lines
2.0 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\DealerFansResource;
|
|
use App\Helpers\Paginator as PaginatorHelper;
|
|
use App\Models\Dealer;
|
|
use Illuminate\Http\Request;
|
|
|
|
class FansController extends Controller
|
|
{
|
|
/**
|
|
* 统计当前信息
|
|
*
|
|
* @param Request $request
|
|
* @param CalculateNotCompletedPurchaseAmount $calculateNotCompletedPurchaseAmount
|
|
* @param CalculatePurchaseAmountOfCurrentPeriod $calculatePurchaseAmountOfCurrentPeriod
|
|
*/
|
|
public function statistics(
|
|
Request $request,
|
|
CalculateNotCompletedPurchaseAmount $calculateNotCompletedPurchaseAmount,
|
|
CalculatePurchaseAmountOfCurrentPeriod $calculatePurchaseAmountOfCurrentPeriod
|
|
) {
|
|
$user = $request->user();
|
|
|
|
return response()->json([
|
|
'fans_num'=> $user->fans()->count(),
|
|
// 未完成的业绩
|
|
'not_completed_purchase_amount' => $calculateNotCompletedPurchaseAmount->handle($user->dealer),
|
|
'total_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),
|
|
]);
|
|
}
|
|
}
|