PackageStatisticsService.php 912 B

12345678910111213141516171819202122232425262728
  1. <?php
  2. namespace App\Services;
  3. use App\Package;
  4. use App\Services\common\QueryService;
  5. use Illuminate\Support\Facades\DB;
  6. Class PackageStatisticsService
  7. {
  8. private function conditionQuery(array $params){
  9. $query = Package::query()->with(['owner','logistic'])->select(DB::raw('owner_id,logistic_id,COUNT(logistic_id) AS count'))->whereNotNull('owner_id');
  10. $columnQueryRules=[
  11. 'date_start' => ['alias' => 'created_at','startDate' => " 00:00:00"],
  12. 'date_end' => ['alias' => 'created_at','endDate' => " 23:59:59"],
  13. 'logistic_id' => ['multi' => ','],
  14. 'owner_id' => ['multi' => ','],
  15. ];
  16. $query = $query->groupBy(['owner_id','logistic_id']);
  17. return app(QueryService::class)->query($params,$query,$columnQueryRules);
  18. }
  19. public function get(array $params){
  20. return $this->conditionQuery($params)->get();
  21. }
  22. }