| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- <?php
- namespace App\Services;
- use App\OrderIssue;
- use App\OrderIssueProcessLog;
- use App\Services\common\QueryService;
- use App\User;
- use Illuminate\Support\Facades\Auth;
- Class OrderIssueWorkLoadService
- {
- public function getQuery(array $queryParam){
- $user = Auth::user();
- $owner_ids = $user ? $user->getPermittingOwnerIdsAttribute() : [];
- $query = OrderIssue::with(['log.user'=>function($query) use (&$queryParam){
- if($queryParam['create_user_id'] ?? false){
- $query->where('type','创建')->where('user_id',$queryParam['create_user_id']);
- }
- if($queryParam['end_user_id'] ?? false){
- $query->where('type','完结')->where('user_id',$queryParam['end_user_id']);
- }
- },'order'])->whereHas('order',function($query) use (&$queryParam,$owner_ids) {
- if($queryParam['client_no'] ?? false){
- $query->whereHas('client_no',$queryParam['client_no']);
- }
- if($queryParam['owner_id'] ?? false && in_array($queryParam['owner_id'],$owner_ids)){
- $query->whereHas('owner_id',$queryParam['owner_id']);
- }else{
- $query->whereIn('owner_id',$owner_ids);
- }
- });
- unset($queryParam['create_user_id'],$queryParam['end_user_id'],$queryParam['client_no'],$queryParam['owner_id']);
- $columnQueryRules = [
- 'create_start' => ['alias' => 'created_at', 'startDate' => ' 00:00:00'],
- 'create_end' => ['alias' => 'created_at', 'endDate' => ' 23:59:59'],
- 'order_issue_id'=>['alias'=>'id']
- ];
- $query = app(QueryService::class)->query($queryParam, $query, $columnQueryRules);
- return $query;
- }
- public function paginate(array $params){
- return $this->getQuery($params)->paginate($params['paginate'] ?? 50);
- }
- public function getUsers(){
- $arr = OrderIssueProcessLog::all()->groupBy('user_id');
- $user_ids = array_keys($arr->toArray());
- return User::whereIn('id',$user_ids)->get();
- }
- }
|