diff --git a/app/Http/Controllers/Api/Account/StoreMasterCommissionController.php b/app/Http/Controllers/Api/Account/StoreMasterCommissionController.php new file mode 100644 index 0000000..eda3da4 --- /dev/null +++ b/app/Http/Controllers/Api/Account/StoreMasterCommissionController.php @@ -0,0 +1,24 @@ +user(); + + $storeMasterCommissions = $user->storeMasterCommissions() + ->onlyApproved() + ->orderBy(DB::raw("STR_TO_DATE(month, '%Y-%m')"), 'DESC') + ->simplePaginate($request->query('per_page', 20)); + + return StoreMasterCommissionResource::collection($storeMasterCommissions); + } +} diff --git a/app/Http/Resources/StoreMasterCommissionResource.php b/app/Http/Resources/StoreMasterCommissionResource.php new file mode 100644 index 0000000..57321e7 --- /dev/null +++ b/app/Http/Resources/StoreMasterCommissionResource.php @@ -0,0 +1,26 @@ + + */ + public function toArray(Request $request): array + { + return [ + 'id' => $this->id, + 'month' => $this->month, + 'commission' => $this->commission, + 'daily_expenses' => $this->daily_expenses, + 'employee_expenses' => $this->employee_expenses, + 'other_expenses' => $this->other_expenses, + ]; + } +} diff --git a/app/Models/Employee.php b/app/Models/Employee.php index d2f457a..623394d 100644 --- a/app/Models/Employee.php +++ b/app/Models/Employee.php @@ -13,7 +13,6 @@ use Illuminate\Database\Eloquent\Model; use Laravel\Sanctum\HasApiTokens; use Slowlyo\OwlAdmin\Models\AdminUser; use App\Enums\UserRole; -use Illuminate\Support\Str; /** * 员工 @@ -77,6 +76,14 @@ class Employee extends Model implements AuthenticatableContract return $this->hasMany(EmployeeSign::class, 'employee_id'); } + /** + * 店长佣金提成 + */ + public function storeMasterCommissions() + { + return $this->hasMany(StoreMasterCommission::class, 'store_master_id'); + } + // 管理的门店(店长) // public function masterStore() // { diff --git a/app/Models/StoreMasterCommission.php b/app/Models/StoreMasterCommission.php index 7e09580..c549580 100644 --- a/app/Models/StoreMasterCommission.php +++ b/app/Models/StoreMasterCommission.php @@ -2,9 +2,11 @@ namespace App\Models; +use App\Enums\CheckStatus; use App\Traits\HasCheckable; use App\Traits\HasDateTimeFormatter; use EloquentFilter\Filterable; +use Illuminate\Database\Eloquent\Builder; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Relations\BelongsTo; @@ -23,6 +25,14 @@ class StoreMasterCommission extends Model 'other_expenses', ]; + /** + * 仅查询审核通过的店长佣金提成 + */ + public function scopeOnlyApproved(Builder $query): void + { + $query->whereRelation('workflow', 'check_status', '=', CheckStatus::Success); + } + public function store() { return $this->belongsTo(Store::class, 'store_id'); diff --git a/routes/api.php b/routes/api.php index af64cab..118572f 100644 --- a/routes/api.php +++ b/routes/api.php @@ -1,5 +1,6 @@