diff --git a/app/Actions/Dealer/CalculateManageSubsidiesOfCurrentPeriod.php b/app/Actions/Dealer/CalculateManageSubsidiesOfCurrentPeriod.php new file mode 100644 index 00000000..4a9e2894 --- /dev/null +++ b/app/Actions/Dealer/CalculateManageSubsidiesOfCurrentPeriod.php @@ -0,0 +1,28 @@ +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'); + } +} diff --git a/app/Actions/Dealer/CalculateNotCompletedManageSubsidies.php b/app/Actions/Dealer/CalculateNotCompletedManageSubsidies.php new file mode 100644 index 00000000..93448d8c --- /dev/null +++ b/app/Actions/Dealer/CalculateNotCompletedManageSubsidies.php @@ -0,0 +1,18 @@ +where('user_id', $dealer->user_id)->sum('total_amount'); + } +} diff --git a/app/Endpoint/Api/Http/Controllers/Dealer/UserController.php b/app/Endpoint/Api/Http/Controllers/Dealer/UserController.php index ec1e0ed0..88a8c3aa 100644 --- a/app/Endpoint/Api/Http/Controllers/Dealer/UserController.php +++ b/app/Endpoint/Api/Http/Controllers/Dealer/UserController.php @@ -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), diff --git a/app/Models/Dealer.php b/app/Models/Dealer.php index ab28fd7b..58f2cc0c 100644 --- a/app/Models/Dealer.php +++ b/app/Models/Dealer.php @@ -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'); - } - /** * 确认此经销商是否是金牌经销商 *