|
|
@@ -15,14 +15,15 @@ Class QueryService
|
|
|
* @param Request $request
|
|
|
* @param object $query
|
|
|
* @param array $columnQueryRules
|
|
|
+ * @param string $tableName
|
|
|
* @return object
|
|
|
*/
|
|
|
- public function query(Request $request,$query,array $columnQueryRules)
|
|
|
+ public function query(Request $request,$query,array $columnQueryRules,$tableName = null)
|
|
|
{
|
|
|
foreach ($request->input() as $param => $value){
|
|
|
if ($param === 'paginate' || $param === 'page')continue;
|
|
|
if (!$value || isset($columnQueryRules[$param]))continue;
|
|
|
- $query = $query->where($param,$value);
|
|
|
+ $query = $query->where($tableName.$param,$value);
|
|
|
}
|
|
|
//rules: alias timeLimit startDate endDate like
|
|
|
foreach ($columnQueryRules as $param => $rules){
|
|
|
@@ -37,32 +38,32 @@ Class QueryService
|
|
|
if ($rule === 'timeLimit'){
|
|
|
$today=Carbon::now()->subDays($value);
|
|
|
$queryTemp=clone $query;
|
|
|
- $queryTemp=$queryTemp->where($column,'like','%'.$request->input($param).'%')
|
|
|
- ->where('created_at','>',$today->format('Y-m-d'));
|
|
|
+ $queryTemp=$queryTemp->where($tableName.$column,'like','%'.$request->input($param).'%')
|
|
|
+ ->where($tableName.'created_at','>',$today->format('Y-m-d'));
|
|
|
if($queryTemp->count()==0 || $queryTemp->first()[$column]==$request->input($param)){
|
|
|
- $query=$query->where($column,$request->input($param));
|
|
|
+ $query=$query->where($tableName.$column,$request->input($param));
|
|
|
}else{
|
|
|
- $query=$query->where($column,'like','%'.$request->input($param).'%')
|
|
|
- ->where('created_at','>',$today->format('Y-m-d'));
|
|
|
+ $query=$query->where($tableName.$column,'like','%'.$request->input($param).'%')
|
|
|
+ ->where($tableName.'created_at','>',$today->format('Y-m-d'));
|
|
|
}
|
|
|
$isExecute = true;
|
|
|
}
|
|
|
if ($rule === 'startDate'){
|
|
|
$startDate = $request->input($param).$value;
|
|
|
- $query = $query->where($column,'>=',$startDate);
|
|
|
+ $query = $query->where($tableName.$column,'>=',$startDate);
|
|
|
$isExecute = true;
|
|
|
}
|
|
|
if ($rule === 'endDate'){
|
|
|
$endDate = $request->input($param).$value;
|
|
|
- $query = $query->where($column,'<=',$endDate);
|
|
|
+ $query = $query->where($tableName.$column,'<=',$endDate);
|
|
|
$isExecute = true;
|
|
|
}
|
|
|
if ($rule === 'like'){
|
|
|
- $query = $query->where($column,'like','%'.$request->input($param).'%');
|
|
|
+ $query = $query->where($tableName.$column,'like','%'.$request->input($param).'%');
|
|
|
$isExecute = true;
|
|
|
}
|
|
|
}
|
|
|
- if (!$isExecute) $query = $query->where($column,$request->input($param));
|
|
|
+ if (!$isExecute) $query = $query->where($tableName.$column,$request->input($param));
|
|
|
}
|
|
|
return $query;
|
|
|
}
|