50 lines
2.1 KiB
PHP
50 lines
2.1 KiB
PHP
<?php
|
|
|
|
namespace App\Endpoint\Api\Http\Controllers\Dealer;
|
|
|
|
use App\Endpoint\Api\Http\Controllers\Controller;
|
|
use App\Endpoint\Api\Http\Resources\Dealer\DealerManageSubsidyLogResource;
|
|
use App\Helpers\Paginator;
|
|
use App\Models\DealerManageSubsidyLog;
|
|
use Illuminate\Http\Request;
|
|
|
|
class ManageSubsidyLogController extends Controller
|
|
{
|
|
/**
|
|
* 管理津贴列表
|
|
*
|
|
* @param \Illuminate\Http\Request $request
|
|
* @return \Illuminate\Http\JsonResponse
|
|
*/
|
|
public function index(Request $request)
|
|
{
|
|
$isComplted = (bool) $request->input('is_completed');
|
|
|
|
$perPage = Paginator::resolvePerPage('per_page', 20, 50);
|
|
|
|
$manageSubsidyLogs = DealerManageSubsidyLog::with(['product', 'order.user'])
|
|
->when($isComplted, function ($query) {
|
|
$tz = now();
|
|
|
|
if ($tz->day >= 20) {
|
|
// 结算当月20号开始的管理津贴
|
|
$startAt = $tz->copy()->setDay(20)->startOfDay();
|
|
} elseif ($tz->day >= 5) {
|
|
// 结算当月5号开始的管理津贴
|
|
$startAt = $tz->copy()->setDay(5)->startOfDay();
|
|
} else {
|
|
// 结算上月20号开始的管理津贴
|
|
$startAt = $tz->copy()->subMonthNoOverflow()->setDay(20)->startOfDay();
|
|
}
|
|
|
|
$query->where('order_completed_at', '>=', $startAt)->latest('order_completed_at');
|
|
}, function ($query) {
|
|
$query->whereNull('order_completed_at')->latest('id');
|
|
})
|
|
->where('user_id', $request->user()->id)
|
|
->simplePaginate($perPage);
|
|
|
|
return DealerManageSubsidyLogResource::collection($manageSubsidyLogs);
|
|
}
|
|
}
|