From d2b9cd104d49a44808d3baca6f04c2cc08bbbb79 Mon Sep 17 00:00:00 2001 From: vine_liutk <961510893@qq.com> Date: Wed, 19 Jan 2022 10:54:31 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=BF=9B=E8=B4=A7=E8=A1=A5?= =?UTF-8?q?=E8=B4=B4=E8=AF=A6=E6=83=85=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/Auth/LogoutController.php | 2 ++ .../Controllers/Dealer/EarningController.php | 2 +- .../Dealer/DealerEarningResource.php | 2 ++ .../DealerEarningSubsidyLogResource.php | 23 ++++++++++++++ app/Models/Dealer.php | 30 +++++++++++++++++++ app/Models/DealerEarning.php | 18 +++++++++++ 6 files changed, 76 insertions(+), 1 deletion(-) create mode 100644 app/Endpoint/Api/Http/Resources/Dealer/DealerEarningSubsidyLogResource.php diff --git a/app/Endpoint/Api/Http/Controllers/Auth/LogoutController.php b/app/Endpoint/Api/Http/Controllers/Auth/LogoutController.php index 464970da..0ffdc575 100644 --- a/app/Endpoint/Api/Http/Controllers/Auth/LogoutController.php +++ b/app/Endpoint/Api/Http/Controllers/Auth/LogoutController.php @@ -29,6 +29,8 @@ class LogoutController extends Controller 'm_cid'=>null, ]); break; + case Device::DEALER: + break; default: //解绑用户商城端cid $user->cid->update([ diff --git a/app/Endpoint/Api/Http/Controllers/Dealer/EarningController.php b/app/Endpoint/Api/Http/Controllers/Dealer/EarningController.php index 09168216..e2e4163a 100644 --- a/app/Endpoint/Api/Http/Controllers/Dealer/EarningController.php +++ b/app/Endpoint/Api/Http/Controllers/Dealer/EarningController.php @@ -50,7 +50,7 @@ class EarningController extends Controller */ public function show($id, Request $request) { - $earning = $request->user()->dealerEarnings()->findOrFail($id); + $earning = $request->user()->dealerEarnings()->with('earningable')->findOrFail($id); return DealerEarningResource::make($earning); } diff --git a/app/Endpoint/Api/Http/Resources/Dealer/DealerEarningResource.php b/app/Endpoint/Api/Http/Resources/Dealer/DealerEarningResource.php index 1508d961..837e9922 100644 --- a/app/Endpoint/Api/Http/Resources/Dealer/DealerEarningResource.php +++ b/app/Endpoint/Api/Http/Resources/Dealer/DealerEarningResource.php @@ -14,6 +14,7 @@ class DealerEarningResource extends JsonResource */ public function toArray($request) { + $purchaseSubsidyLogs = $this->getPurchaseSubsidyLogs(); return [ 'id' => $this->id, 'type' => $this->type_name, @@ -29,6 +30,7 @@ class DealerEarningResource extends JsonResource 'pay_image' => $this->pay_image, 'pay_at' => $this->pay_at?->toDateTimeString(), 'is_payer' => $this->payer_id ? ($this->payer_id == $request->user()->id) : false, + 'purchase_subsidy_logs' => $purchaseSubsidyLogs ? DealerEarningSubsidyLogResource::collection($purchaseSubsidyLogs) : null, ]; } } diff --git a/app/Endpoint/Api/Http/Resources/Dealer/DealerEarningSubsidyLogResource.php b/app/Endpoint/Api/Http/Resources/Dealer/DealerEarningSubsidyLogResource.php new file mode 100644 index 00000000..2feb303e --- /dev/null +++ b/app/Endpoint/Api/Http/Resources/Dealer/DealerEarningSubsidyLogResource.php @@ -0,0 +1,23 @@ + $this->changeAmount, + 'remark' => $this->remark, + // 'settle_at' + ]; + } +} diff --git a/app/Models/Dealer.php b/app/Models/Dealer.php index 7a6728d6..f1402002 100644 --- a/app/Models/Dealer.php +++ b/app/Models/Dealer.php @@ -76,6 +76,36 @@ class Dealer extends Model return $this->lvl->text(); } + /** + * 统计经销商进货补贴实时的【基数业绩】 + * + * @return void + */ + public function getSalePriceAttribute() + { + $tz = now(); + + $tz = now(); + + if ($tz->day >= 20) { + // 结算当月5号-19号的管理津贴 + $startAt = $tz->copy()->setDay(5)->startOfDay(); + $endAt = $tz->copy()->setDay(19)->endOfDay(); + } elseif ($tz->day >= 5) { + // 结算上月20号-到当月4号的管理津贴 + $startAt = $tz->copy()->subMonthNoOverflow()->set('day', 20)->startOfDay(); + $endAt = $tz->copy()->set('day', 4)->endOfDay(); + } else { + // 结算上月5号-到19号的管理津贴 + $startAt = $tz->copy()->subMonthNoOverflow()->setDay(5)->startOfDay(); + $endAt = $startAt->copy()->setDay(19)->endOfDay(); + } + + return DealerPurchaseLog::query()->whereBetween('order_completed_at', [$startAt, $endAt]) + ->where('path', 'like', "{$this->userInfo->full_path}%") + ->sum('total_amount'); + } + /** * 确认此经销商是否是金牌经销商 * diff --git a/app/Models/DealerEarning.php b/app/Models/DealerEarning.php index 6347bb18..616076ca 100644 --- a/app/Models/DealerEarning.php +++ b/app/Models/DealerEarning.php @@ -54,6 +54,11 @@ class DealerEarning extends Model return $this->belongsTo(User::class, 'payer_id'); } + public function earningable() + { + return $this->morphTo(); + } + /** * 待打款 * @@ -160,4 +165,17 @@ class DealerEarning extends Model } return $payInfo ?: null; } + + /** + * 获取进货补贴的日志 + * + * @return void + */ + public function getPurchaseSubsidyLogs() + { + if ($this->earningable_type == (new DealerPurchaseSubsidy())->getMorphClass()) { + return $this->earningable?->logs; + } + return null; + } }