管理津贴包含未结算的
parent
aada984dce
commit
332191e648
|
|
@ -0,0 +1,28 @@
|
|||
<?php
|
||||
|
||||
namespace App\Actions\Dealer;
|
||||
|
||||
use App\Models\Dealer;
|
||||
use App\Models\DealerManageSubsidyLog;
|
||||
|
||||
class CalculateManageSubsidiesOfCurrentPeriod
|
||||
{
|
||||
/**
|
||||
* @param \App\Models\Dealer $dealer
|
||||
* @return string
|
||||
*/
|
||||
public function handle(Dealer $dealer): string
|
||||
{
|
||||
$tz = now();
|
||||
|
||||
if ($tz->day >= 20) {
|
||||
$startAt = $tz->copy()->setDay(20)->startOfDay();
|
||||
} elseif ($tz->day >= 5) {
|
||||
$startAt = $tz->copy()->setDay(5)->startOfDay();
|
||||
} else {
|
||||
$startAt = $tz->copy()->subMonthNoOverflow()->setDay(20)->startOfDay();
|
||||
}
|
||||
|
||||
return DealerManageSubsidyLog::where('order_completed_at', '>=', $startAt)->where('user_id', $dealer->user_id)->sum('total_amount');
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
<?php
|
||||
|
||||
namespace App\Actions\Dealer;
|
||||
|
||||
use App\Models\Dealer;
|
||||
use App\Models\DealerManageSubsidyLog;
|
||||
|
||||
class CalculateNotCompletedManageSubsidies
|
||||
{
|
||||
/**
|
||||
* @param \App\Models\Dealer $dealer
|
||||
* @return string
|
||||
*/
|
||||
public function handle(Dealer $dealer): string
|
||||
{
|
||||
return DealerManageSubsidyLog::whereNull('order_completed_at')->where('user_id', $dealer->user_id)->sum('total_amount');
|
||||
}
|
||||
}
|
||||
|
|
@ -2,6 +2,8 @@
|
|||
|
||||
namespace App\Endpoint\Api\Http\Controllers\Dealer;
|
||||
|
||||
use App\Actions\Dealer\CalculateManageSubsidiesOfCurrentPeriod;
|
||||
use App\Actions\Dealer\CalculateNotCompletedManageSubsidies;
|
||||
use App\Actions\Dealer\CalculateNotCompletedPurchaseAmount;
|
||||
use App\Actions\Dealer\CalculatePurchaseAmountOfCurrentPeriod;
|
||||
use App\Endpoint\Api\Http\Controllers\Controller;
|
||||
|
|
@ -15,18 +17,29 @@ class UserController extends Controller
|
|||
* 个人信息
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param \App\Actions\Dealer\CalculateNotCompletedManageSubsidies $calculateNotCompletedManageSubsidies
|
||||
* @param \App\Actions\Dealer\CalculateManageSubsidiesOfCurrentPeriod $calculateManageSubsidiesOfCurrentPeriod
|
||||
* @param \App\Actions\Dealer\CalculateNotCompletedPurchaseAmount $calculateNotCompletedPurchaseAmount
|
||||
* @param \App\Actions\Dealer\CalculatePurchaseAmountOfCurrentPeriod $calculatePurchaseAmountOfCurrentPeriod
|
||||
* @return \Illuminate\Http\JsonResponse
|
||||
*/
|
||||
public function show(
|
||||
Request $request,
|
||||
CalculateNotCompletedManageSubsidies $calculateNotCompletedManageSubsidies,
|
||||
CalculateManageSubsidiesOfCurrentPeriod $calculateManageSubsidiesOfCurrentPeriod,
|
||||
CalculateNotCompletedPurchaseAmount $calculateNotCompletedPurchaseAmount,
|
||||
CalculatePurchaseAmountOfCurrentPeriod $calculatePurchaseAmountOfCurrentPeriod
|
||||
) {
|
||||
$user = $request->user();
|
||||
|
||||
$user->dealer->setRelation('userInfo', $user->userInfo);
|
||||
|
||||
$dealerResource = DealerResource::make($user->dealer)->toArray($request);
|
||||
$dealerResource['guanli_values'] = bcadd(
|
||||
$calculateNotCompletedManageSubsidies->handle($user->dealer),
|
||||
$calculateManageSubsidiesOfCurrentPeriod->handle($user->dealer),
|
||||
2
|
||||
);
|
||||
$dealerResource['total_purchase_amount'] = bcadd(
|
||||
$calculateNotCompletedPurchaseAmount->handle($user->dealer),
|
||||
$calculatePurchaseAmountOfCurrentPeriod->handle($user->dealer),
|
||||
|
|
|
|||
|
|
@ -94,31 +94,6 @@ class Dealer extends Model
|
|||
return $this->lvl->text();
|
||||
}
|
||||
|
||||
/**
|
||||
* 实时管理津贴
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function getCalculateTotalAmountAttribute()
|
||||
{
|
||||
$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();
|
||||
}
|
||||
|
||||
return DealerManageSubsidyLog::where(
|
||||
'user_id', $this->user_id
|
||||
)->where('order_completed_at', '>=', $startAt)->sum('total_amount');
|
||||
}
|
||||
|
||||
/**
|
||||
* 确认此经销商是否是金牌经销商
|
||||
*
|
||||
|
|
|
|||
Loading…
Reference in New Issue