| 123456789101112131415161718192021222324252627282930313233343536373839 |
- <?php
- namespace App\Services;
- use App\OrderPackage;
- use App\Services\common\QueryService;
- use Illuminate\Database\Eloquent\Builder;
- use Illuminate\Support\Facades\Auth;
- use Illuminate\Support\Facades\DB;
- Class PackageStatisticsService
- {
- /**
- * @param array $params
- * @return Builder
- */
- private function conditionQuery(array $params){
- $ownerIds = Auth::user()->getPermittingOwnerIdsAttribute();
- $query = DB::table('order_packages')->select(DB::raw('COUNT(*) AS count'))
- ->whereIn('owner_id',$ownerIds)
- ->whereNotNull('logistic_id')
- ->leftJoin('orders','order_packages.order_id','orders.id')
- ->selectRaw('owner_id,logistic_id');
- $columnQueryRules=[
- 'date_start' => ['alias' => 'created_at','startDate' => " 00:00:00"],
- 'date_end' => ['alias' => 'created_at','endDate' => " 23:59:59"],
- 'logistic_id' => ['multi' => ','],
- 'owner_id' => ['multi' => ','],
- ];
- $query = $query->groupBy('owner_id','logistic_id');
- return app(QueryService::class)->query($params,$query,$columnQueryRules);
- }
- public function get(array $params){
- return $this->conditionQuery($params)->get();
- }
- }
|