未完成的进货业绩
parent
661c9739a7
commit
aada984dce
|
|
@ -0,0 +1,22 @@
|
|||
<?php
|
||||
|
||||
namespace App\Actions\Dealer;
|
||||
|
||||
use App\Models\Dealer;
|
||||
use App\Models\DealerPurchaseLog;
|
||||
|
||||
class CalculateNotCompletedPurchaseAmount
|
||||
{
|
||||
/**
|
||||
* 计算经销商的未完成的进货业绩
|
||||
*
|
||||
* @param \App\Models\Dealer $dealer
|
||||
* @return string
|
||||
*/
|
||||
public function handle(Dealer $dealer): string
|
||||
{
|
||||
return DealerPurchaseLog::whereNull('order_completed_at')
|
||||
->where('path', 'like', "{$dealer->userInfo->full_path}%")
|
||||
->sum('total_amount');
|
||||
}
|
||||
}
|
||||
|
|
@ -3,8 +3,6 @@
|
|||
namespace App\Actions\Dealer;
|
||||
|
||||
use App\Models\Dealer;
|
||||
use Illuminate\Support\Carbon;
|
||||
use Illuminate\Support\Facades\Cache;
|
||||
|
||||
class CalculatePurchaseAmountOfCurrentPeriod
|
||||
{
|
||||
|
|
@ -31,17 +29,6 @@ class CalculatePurchaseAmountOfCurrentPeriod
|
|||
$startAt = $tz->copy()->subMonthNoOverflow()->setDay(20)->startOfDay();
|
||||
}
|
||||
|
||||
return Cache::remember($this->prefix($startAt).':'.$dealer->user_id, 600, function () use ($dealer, $startAt) {
|
||||
return bcdiv($this->calculatePurchaseAmount->handle($dealer, $startAt), '1', 2);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* @param \Illuminate\Support\Carbon $tz
|
||||
* @return string
|
||||
*/
|
||||
protected function prefix(Carbon $tz): string
|
||||
{
|
||||
return $tz->rawFormat('ymd').'_dealer_purchase_amount';
|
||||
return bcdiv($this->calculatePurchaseAmount->handle($dealer, $startAt), '1', 2);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@
|
|||
|
||||
namespace App\Endpoint\Api\Http\Controllers\Dealer;
|
||||
|
||||
use App\Actions\Dealer\CalculateNotCompletedPurchaseAmount;
|
||||
use App\Actions\Dealer\CalculatePurchaseAmountOfCurrentPeriod;
|
||||
use App\Endpoint\Api\Http\Controllers\Controller;
|
||||
use App\Endpoint\Api\Http\Resources\Dealer\DealerFansResource;
|
||||
|
|
@ -15,17 +16,20 @@ class FansController extends Controller
|
|||
* 统计当前信息
|
||||
*
|
||||
* @param Request $request
|
||||
* @param CalculateNotCompletedPurchaseAmount $calculateNotCompletedPurchaseAmount
|
||||
* @param CalculatePurchaseAmountOfCurrentPeriod $calculatePurchaseAmountOfCurrentPeriod
|
||||
*
|
||||
*/
|
||||
public function statistics(
|
||||
Request $request,
|
||||
CalculateNotCompletedPurchaseAmount $calculateNotCompletedPurchaseAmount,
|
||||
CalculatePurchaseAmountOfCurrentPeriod $calculatePurchaseAmountOfCurrentPeriod
|
||||
) {
|
||||
$user = $request->user();
|
||||
|
||||
return response()->json([
|
||||
'fans_num'=> $user->fans()->count(),
|
||||
// 未完成的业绩
|
||||
'not_completed_purchase_amount' => $calculateNotCompletedPurchaseAmount->handle($user->dealer),
|
||||
'total_purchase_amount'=> $calculatePurchaseAmountOfCurrentPeriod->handle($user->dealer),
|
||||
]);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@
|
|||
|
||||
namespace App\Endpoint\Api\Http\Controllers\Dealer;
|
||||
|
||||
use App\Actions\Dealer\CalculateNotCompletedPurchaseAmount;
|
||||
use App\Actions\Dealer\CalculatePurchaseAmountOfCurrentPeriod;
|
||||
use App\Endpoint\Api\Http\Controllers\Controller;
|
||||
use App\Endpoint\Api\Http\Resources\Dealer\DealerResource;
|
||||
|
|
@ -14,22 +15,28 @@ class UserController extends Controller
|
|||
* 个人信息
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param \App\Actions\Dealer\CalculateNotCompletedPurchaseAmount $calculateNotCompletedPurchaseAmount
|
||||
* @param \App\Actions\Dealer\CalculatePurchaseAmountOfCurrentPeriod $calculatePurchaseAmountOfCurrentPeriod
|
||||
* @return \Illuminate\Http\JsonResponse
|
||||
*/
|
||||
public function show(
|
||||
Request $request,
|
||||
CalculateNotCompletedPurchaseAmount $calculateNotCompletedPurchaseAmount,
|
||||
CalculatePurchaseAmountOfCurrentPeriod $calculatePurchaseAmountOfCurrentPeriod
|
||||
) {
|
||||
$user = $request->user();
|
||||
|
||||
$dealer = DealerResource::make($user->dealer)->toArray($request);
|
||||
$dealer['current_purchase_amount'] = $calculatePurchaseAmountOfCurrentPeriod->handle($user->dealer);
|
||||
$dealerResource = DealerResource::make($user->dealer)->toArray($request);
|
||||
$dealerResource['total_purchase_amount'] = bcadd(
|
||||
$calculateNotCompletedPurchaseAmount->handle($user->dealer),
|
||||
$calculatePurchaseAmountOfCurrentPeriod->handle($user->dealer),
|
||||
2
|
||||
);
|
||||
|
||||
return response()->json([
|
||||
'id' => $user->id,
|
||||
'phone' => $user->phone,
|
||||
'dealer'=> $dealer,
|
||||
'dealer'=> $dealerResource,
|
||||
'dealer_wallet' => $user->dealerWallet?->balance,
|
||||
'user_info' => UserInfoResource::make($user->userInfo),
|
||||
'has_password' => (bool) $user->wallet?->password,
|
||||
|
|
|
|||
|
|
@ -23,7 +23,6 @@ class DealerResource extends JsonResource
|
|||
'team_sales_value' => $this->team_sales_value, // 团队业绩
|
||||
'pay_info'=>$this->pay_info ?: null,
|
||||
'can_withdraw'=> $this->canWithdraw(),
|
||||
'total_purchase_amount'=> bcdiv($this->total_purchase_amount, '1', 2), // 总进货业绩
|
||||
];
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,7 +6,6 @@ use App\Casts\JsonArray;
|
|||
use App\Enums\DealerLvl;
|
||||
use Dcat\Admin\Traits\HasDateTimeFormatter;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Support\Facades\Cache;
|
||||
|
||||
class Dealer extends Model
|
||||
{
|
||||
|
|
@ -95,18 +94,6 @@ class Dealer extends Model
|
|||
return $this->lvl->text();
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取已结算的进货业绩
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getTotalPurchaseAmountAttribute()
|
||||
{
|
||||
return Cache::remember('dealer_total_purchase_amount:'.$this->user_id, 3600, function () {
|
||||
return $this->purchaseSubsidies()->sum('total_purchase_amount');
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 实时管理津贴
|
||||
*
|
||||
|
|
|
|||
Loading…
Reference in New Issue