=0){ $where['o.cluster_id'] = $clusterId; } $printType = isset($params['print_type'])? intval($params['print_type']) : 0; if($printType){ $where['o.print_type'] = $printType; } $deviceId = isset($params['device_id'])? intval($params['device_id']) : 0; if($deviceId){ $where['o.device_id'] = $deviceId; } $deviceCode = isset($params['device_code'])? trim($params['device_code']) : ''; if($deviceCode){ $where['o.device_code'] = $deviceCode; } $keyword = isset($params['keyword'])? $params['keyword'] : ''; if($keyword){ $where['u.mobile|u.user_nickname'] = ['like',"%{$keyword}%"]; } $order = $order? $order : 'created_at desc'; $field = $field? $field : 'o.id,o.user_id,o.order_sn,o.cluster_id,o.print_type,o.type,o.cluster_nums,o.status,o.cluster_status,o.created_at,u.user_nickname,u.avatar,d.name as device_name'; $orderConfig = config('config.order'); $closeTime = isset($orderConfig['closeTime'])? intval($orderConfig['closeTime']) : 30; $dataList = \think\Db::name('orders')->alias('o') ->join('user u','u.id=o.user_id','left') ->join('user s','s.id=o.shop_uid','left') ->join('devices d','d.id=o.device_id','left') ->where($where) ->where('o.status','in', $status) ->where('o.cluster_status','in', [0,1]) // ->where('o.created_at','egt', date('Y-m-d H:i:s',time() - $closeTime*60)) ->where(function($query) use($params){ $limitClusterUser = config('print.limitClusterUser'); $uid = isset($params['uid'])? intval($params['uid']) : 0; if($limitClusterUser && $uid){ return $query->where('user_id','neq', $uid); } }) ->field($field) ->paginate($pageSize) ->each(function($item, $k) use($closeTime){ $clusterNums = isset($item['cluster_nums'])? $item['cluster_nums'] : 0; $clusterId = isset($item['id'])? $item['id'] : 0; $type = isset($item['type'])? $item['type'] : 0; $nickname = isset($item['user_nickname'])? $item['user_nickname'] : ''; if($nickname){ $item['user_nickname'] = preg_match("/^[0-9]+$/", $nickname)? formatName($nickname) : $nickname; } if($clusterNums && $type == 2){ $hasClusterNums = db('orders') ->where(['type'=> 2, 'cluster_id'=> $clusterId,'status'=>2]) ->count('id'); $item['remain_cluster_nums'] = max(0,$clusterNums-($hasClusterNums+1)); } return $item; }); return $dataList; } }