管理津贴包含未结算的
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;
|
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\CalculateNotCompletedPurchaseAmount;
|
||||||
use App\Actions\Dealer\CalculatePurchaseAmountOfCurrentPeriod;
|
use App\Actions\Dealer\CalculatePurchaseAmountOfCurrentPeriod;
|
||||||
use App\Endpoint\Api\Http\Controllers\Controller;
|
use App\Endpoint\Api\Http\Controllers\Controller;
|
||||||
|
|
@ -15,18 +17,29 @@ class UserController extends Controller
|
||||||
* 个人信息
|
* 个人信息
|
||||||
*
|
*
|
||||||
* @param \Illuminate\Http\Request $request
|
* @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\CalculateNotCompletedPurchaseAmount $calculateNotCompletedPurchaseAmount
|
||||||
* @param \App\Actions\Dealer\CalculatePurchaseAmountOfCurrentPeriod $calculatePurchaseAmountOfCurrentPeriod
|
* @param \App\Actions\Dealer\CalculatePurchaseAmountOfCurrentPeriod $calculatePurchaseAmountOfCurrentPeriod
|
||||||
* @return \Illuminate\Http\JsonResponse
|
* @return \Illuminate\Http\JsonResponse
|
||||||
*/
|
*/
|
||||||
public function show(
|
public function show(
|
||||||
Request $request,
|
Request $request,
|
||||||
|
CalculateNotCompletedManageSubsidies $calculateNotCompletedManageSubsidies,
|
||||||
|
CalculateManageSubsidiesOfCurrentPeriod $calculateManageSubsidiesOfCurrentPeriod,
|
||||||
CalculateNotCompletedPurchaseAmount $calculateNotCompletedPurchaseAmount,
|
CalculateNotCompletedPurchaseAmount $calculateNotCompletedPurchaseAmount,
|
||||||
CalculatePurchaseAmountOfCurrentPeriod $calculatePurchaseAmountOfCurrentPeriod
|
CalculatePurchaseAmountOfCurrentPeriod $calculatePurchaseAmountOfCurrentPeriod
|
||||||
) {
|
) {
|
||||||
$user = $request->user();
|
$user = $request->user();
|
||||||
|
|
||||||
|
$user->dealer->setRelation('userInfo', $user->userInfo);
|
||||||
|
|
||||||
$dealerResource = DealerResource::make($user->dealer)->toArray($request);
|
$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(
|
$dealerResource['total_purchase_amount'] = bcadd(
|
||||||
$calculateNotCompletedPurchaseAmount->handle($user->dealer),
|
$calculateNotCompletedPurchaseAmount->handle($user->dealer),
|
||||||
$calculatePurchaseAmountOfCurrentPeriod->handle($user->dealer),
|
$calculatePurchaseAmountOfCurrentPeriod->handle($user->dealer),
|
||||||
|
|
|
||||||
|
|
@ -94,31 +94,6 @@ class Dealer extends Model
|
||||||
return $this->lvl->text();
|
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