| 12345678910111213141516171819202122232425262728293031323334353637 |
- <?php
- declare(strict_types=1);
- namespace plugin\saiadmin\app\model\water;
- final class WaterOrder extends WaterModel
- {
- protected $table = 'sa_water_order';
- public function commissions()
- {
- return $this->hasMany(WaterCommission::class, 'order_id');
- }
- /** Demo identification follows the persisted seed reference/package naming convention. */
- public function scopeFinanceSource(\Illuminate\Database\Eloquent\Builder $query,string $source): \Illuminate\Database\Eloquent\Builder
- {
- if ($source==='demo') return $query->where(function ($q) {
- $q->where('o.reference','like','TEST-%')->orWhere('o.package_name','like','%测试%');
- });
- if ($source==='regular') return $query->where('o.reference','not like','TEST-%')->where('o.package_name','not like','%测试%');
- return $query;
- }
- public function scopeFinancePeriod(\Illuminate\Database\Eloquent\Builder $query,string $start,string $end): \Illuminate\Database\Eloquent\Builder
- {
- return $query->alias('o')->whereBetween('o.created_at',[$start,$end]);
- }
- public function scopeFinanceDetails(\Illuminate\Database\Eloquent\Builder $query,string $keyword): \Illuminate\Database\Eloquent\Builder
- {
- $query->leftJoin('sa_water_enterprise as e','e.id','=','o.enterprise_id')
- ->selectRaw("o.id,o.reference,o.enterprise_id,o.package_name,o.buckets,o.amount_cents,o.created_at,e.name AS enterprise_name,
- CASE WHEN o.reference LIKE 'TEST-%' OR o.package_name LIKE '%测试%' THEN 1 ELSE 0 END AS is_demo");
- if ($keyword!=='') $query->matching('o.reference|o.package_name|e.name','%'.$keyword.'%');
- return $query;
- }
- }
|