public function getData(Request $request,SellValidate $validate,Query $query){
$input=$request->input();
$verify=$validate->check($input);
if($verify){
$user = auth()->user();
// DB::enableQueryLog();
$sql= [];
$sql1= [];
$sql2= [];
if(isset($input['start_time']) && $input['start_time']){
$sql[] = ['a.time','>=',strtotime($input['start_time'])];
$sql1[] = ['c.time','>=',strtotime($input['start_time'])];
$sql2[] = ['r.time','>=',strtotime($input['start_time'])];
}
if(isset($input['end_time']) && $input['end_time']){
$sql[] = ['a.time','<=',strtotime($input['end_time'])];
$sql1[] = ['c.time','<=',strtotime($input['end_time'])];
$sql2[] = ['r.time','<=',strtotime($input['end_time'])];
}
$sql[] = ['a.user','=',$user->id];
$sql1[] = ['c.user','=',$user->id];
$sql2[] = ['r.user','=',$user->id];
$sql[] = ['a.examine','=',1];
$sql[] = ['a.customer','=',$input['customer']];
$sql[] = ['b.type','=','sell'];
$sql1[] = ['c.examine','=',1];
$sql1[] = ['c.customer','=',$input['customer']];
$sql1[] = ['d.type','=','sre'];
$sql2[] = ['r.examine','=',1];
$sql2[] = ['r.customer','=',$input['customer']];
$sql2[] = ['s.type','=','exchange'];
$xk = DB::table('sells as a')
->leftJoin('records as b','a.id','=','b.form')
->leftJoin('users as m','a.user','=','m.id')
->where($sql)
->select('a.id','a.number','a.time','a.amount','a.total','a.user','a.examine','a.type','a.data','b.time as btime','b.info','m.name');
$query = DB::table('sres as c')
->leftJoin('records as d','c.id','=','d.form')
->leftJoin('users as n','c.user','=','n.id')
->where($sql1)
->select('c.id','c.number','c.time','c.amount','c.total','c.user','c.examine','c.type','c.data','d.time as dtime','d.info','n.name');
// ->unionAll($xk);
$query2 = DB::table('exchanges as r')
->leftJoin('records as s','r.id','=','s.form')
->leftJoin('users as t','r.user','=','t.id')
->where($sql2)
->select('r.id','r.number','r.time','r.amount','r.total','r.user','r.examine','r.type','r.data','s.time as stime','s.info','t.name')
->unionAll($xk)->unionAll($query);
$querySql = $query2->toSql();
// dd($querySql);
$list= DB::table(DB::raw("($querySql) as w"))->mergeBindings($query2)
/*->orderBy('created_at','desc')*/->simplePaginate($input['size']);
return $list;
}
}