未完成的进货业绩
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;
|
namespace App\Actions\Dealer;
|
||||||
|
|
||||||
use App\Models\Dealer;
|
use App\Models\Dealer;
|
||||||
use Illuminate\Support\Carbon;
|
|
||||||
use Illuminate\Support\Facades\Cache;
|
|
||||||
|
|
||||||
class CalculatePurchaseAmountOfCurrentPeriod
|
class CalculatePurchaseAmountOfCurrentPeriod
|
||||||
{
|
{
|
||||||
|
|
@ -31,17 +29,6 @@ class CalculatePurchaseAmountOfCurrentPeriod
|
||||||
$startAt = $tz->copy()->subMonthNoOverflow()->setDay(20)->startOfDay();
|
$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);
|
||||||
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';
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@
|
||||||
|
|
||||||
namespace App\Endpoint\Api\Http\Controllers\Dealer;
|
namespace App\Endpoint\Api\Http\Controllers\Dealer;
|
||||||
|
|
||||||
|
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;
|
||||||
use App\Endpoint\Api\Http\Resources\Dealer\DealerFansResource;
|
use App\Endpoint\Api\Http\Resources\Dealer\DealerFansResource;
|
||||||
|
|
@ -15,17 +16,20 @@ class FansController extends Controller
|
||||||
* 统计当前信息
|
* 统计当前信息
|
||||||
*
|
*
|
||||||
* @param Request $request
|
* @param Request $request
|
||||||
|
* @param CalculateNotCompletedPurchaseAmount $calculateNotCompletedPurchaseAmount
|
||||||
* @param CalculatePurchaseAmountOfCurrentPeriod $calculatePurchaseAmountOfCurrentPeriod
|
* @param CalculatePurchaseAmountOfCurrentPeriod $calculatePurchaseAmountOfCurrentPeriod
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
public function statistics(
|
public function statistics(
|
||||||
Request $request,
|
Request $request,
|
||||||
|
CalculateNotCompletedPurchaseAmount $calculateNotCompletedPurchaseAmount,
|
||||||
CalculatePurchaseAmountOfCurrentPeriod $calculatePurchaseAmountOfCurrentPeriod
|
CalculatePurchaseAmountOfCurrentPeriod $calculatePurchaseAmountOfCurrentPeriod
|
||||||
) {
|
) {
|
||||||
$user = $request->user();
|
$user = $request->user();
|
||||||
|
|
||||||
return response()->json([
|
return response()->json([
|
||||||
'fans_num'=> $user->fans()->count(),
|
'fans_num'=> $user->fans()->count(),
|
||||||
|
// 未完成的业绩
|
||||||
|
'not_completed_purchase_amount' => $calculateNotCompletedPurchaseAmount->handle($user->dealer),
|
||||||
'total_purchase_amount'=> $calculatePurchaseAmountOfCurrentPeriod->handle($user->dealer),
|
'total_purchase_amount'=> $calculatePurchaseAmountOfCurrentPeriod->handle($user->dealer),
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@
|
||||||
|
|
||||||
namespace App\Endpoint\Api\Http\Controllers\Dealer;
|
namespace App\Endpoint\Api\Http\Controllers\Dealer;
|
||||||
|
|
||||||
|
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;
|
||||||
use App\Endpoint\Api\Http\Resources\Dealer\DealerResource;
|
use App\Endpoint\Api\Http\Resources\Dealer\DealerResource;
|
||||||
|
|
@ -14,22 +15,28 @@ class UserController extends Controller
|
||||||
* 个人信息
|
* 个人信息
|
||||||
*
|
*
|
||||||
* @param \Illuminate\Http\Request $request
|
* @param \Illuminate\Http\Request $request
|
||||||
|
* @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,
|
||||||
|
CalculateNotCompletedPurchaseAmount $calculateNotCompletedPurchaseAmount,
|
||||||
CalculatePurchaseAmountOfCurrentPeriod $calculatePurchaseAmountOfCurrentPeriod
|
CalculatePurchaseAmountOfCurrentPeriod $calculatePurchaseAmountOfCurrentPeriod
|
||||||
) {
|
) {
|
||||||
$user = $request->user();
|
$user = $request->user();
|
||||||
|
|
||||||
$dealer = DealerResource::make($user->dealer)->toArray($request);
|
$dealerResource = DealerResource::make($user->dealer)->toArray($request);
|
||||||
$dealer['current_purchase_amount'] = $calculatePurchaseAmountOfCurrentPeriod->handle($user->dealer);
|
$dealerResource['total_purchase_amount'] = bcadd(
|
||||||
|
$calculateNotCompletedPurchaseAmount->handle($user->dealer),
|
||||||
|
$calculatePurchaseAmountOfCurrentPeriod->handle($user->dealer),
|
||||||
|
2
|
||||||
|
);
|
||||||
|
|
||||||
return response()->json([
|
return response()->json([
|
||||||
'id' => $user->id,
|
'id' => $user->id,
|
||||||
'phone' => $user->phone,
|
'phone' => $user->phone,
|
||||||
'dealer'=> $dealer,
|
'dealer'=> $dealerResource,
|
||||||
'dealer_wallet' => $user->dealerWallet?->balance,
|
'dealer_wallet' => $user->dealerWallet?->balance,
|
||||||
'user_info' => UserInfoResource::make($user->userInfo),
|
'user_info' => UserInfoResource::make($user->userInfo),
|
||||||
'has_password' => (bool) $user->wallet?->password,
|
'has_password' => (bool) $user->wallet?->password,
|
||||||
|
|
|
||||||
|
|
@ -23,7 +23,6 @@ class DealerResource extends JsonResource
|
||||||
'team_sales_value' => $this->team_sales_value, // 团队业绩
|
'team_sales_value' => $this->team_sales_value, // 团队业绩
|
||||||
'pay_info'=>$this->pay_info ?: null,
|
'pay_info'=>$this->pay_info ?: null,
|
||||||
'can_withdraw'=> $this->canWithdraw(),
|
'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 App\Enums\DealerLvl;
|
||||||
use Dcat\Admin\Traits\HasDateTimeFormatter;
|
use Dcat\Admin\Traits\HasDateTimeFormatter;
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
use Illuminate\Support\Facades\Cache;
|
|
||||||
|
|
||||||
class Dealer extends Model
|
class Dealer extends Model
|
||||||
{
|
{
|
||||||
|
|
@ -95,18 +94,6 @@ class Dealer extends Model
|
||||||
return $this->lvl->text();
|
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