strtotime($end_date)){ return []; } if($allsum){ $uvpv_info = WapVisitStatService::getSitePvAndUv($distribution_channel_id,$from,null,null); }else{ $uvpv_info = WapVisitStatService::getSitePvAndUv($distribution_channel_id,$from,$start_date,$end_date); } $pv = $uvpv_info['pv']; $uv = $uvpv_info['uv']; $order_num_sql_format = 'select count(*) as count from orders where distribution_channel_id =%s and from_type ="%s" and created_at BETWEEN "%s" and "%s"'; $success_order_num_sql_format = 'select count(*) as count,ifnull(sum(price),0) as sum,count(DISTINCT uid) as user_num from orders where distribution_channel_id =%s and from_type ="%s" and created_at BETWEEN "%s" and "%s" and status = "PAID"'; $second_pay_order_num_sql_format = 'select count(*) as count from orders a where distribution_channel_id =%s and from_type ="%s" and created_at BETWEEN "%s" and "%s" and status = "PAID" and exists (select uid from orders b WHERE created_at <="%s" and b.uid=a.uid and status = "PAID" limit 1)'; $order_num_sql = sprintf($order_num_sql_format,$distribution_channel_id,$from,$origin_start_time,$end_date); if($allsum){ $success_order_num_sql = sprintf($success_order_num_sql_format,$distribution_channel_id,$from,'2018-04-17 18:09:35',date('Y-m-d H:i:s')); }else{ $success_order_num_sql = sprintf($success_order_num_sql_format,$distribution_channel_id,$from,$origin_start_time,$end_date); } $second_pay_order_num_sql = sprintf($second_pay_order_num_sql_format,$distribution_channel_id,$from,$origin_start_time,$end_date,$origin_start_time); $order_num_info = DB::select($order_num_sql); $success_order_info = DB::select($success_order_num_sql); $second_pay_info = DB::select($second_pay_order_num_sql); $order_count = $order_num_info[0]->count; $success_order_count = $success_order_info[0]->count; $success_order_sum = $success_order_info[0]->sum; $user_num = $success_order_info[0]->user_num; $second_pay_count = $second_pay_info[0]->count; return compact('uv','order_count','success_order_count','success_order_sum','second_pay_count','pv','user_num'); } }