query($search_sql); if( $result == false ) { return false; } $order_list = $result->fetchAll(PDO::FETCH_ASSOC); $result->closeCursor(); $result=$pdo->query($count_sql); if( $result == false ) { $total_num = count($order_list); } else { $count_list = $result->fetchAll(PDO::FETCH_ASSOC); $total_num = $count_list[0]["total_num"]; $result->closeCursor(); } $result=$pdo->query($count_sql2); if( $result == false ) { $status_count = array( "status_all" => 0,"145" => 0, "146" => 0, "147" => 0, "148" => 0 ); } else { $status_count = array( "status_all" => $total_num, "145" => 0, "146" => 0, "147" => 0, "148" => 0 ); $count_list2 = $result->fetchAll(PDO::FETCH_ASSOC); $all_count = 0; foreach( $count_list2 as $count_info ) { $status_count[$count_info["order_status"]] = $count_info["total_num"]; $all_count += $count_info["total_num"]; } $status_count["status_all"] = $all_count; $result->closeCursor(); } $result = $pdo->query($sum_sql); if($result == false ){ return false; }else{ $sum_gmv_list = $result->fetchAll(PDO::FETCH_ASSOC); $total_gmv = $sum_gmv_list[0]["total_gmv"]; $result->closeCursor(); } $result = $pdo->query($count_people_sql); if($result == false){ return false; }else{ $sum_people_list = $result->fetchAll(PDO::FETCH_ASSOC); $total_people = $sum_people_list[0]["total_people"]; $result->closeCursor(); } $return_array = array(); $return_array["total_num"] = $total_num; $return_array["order_list"] = $order_list; $return_array["status_count"] = $status_count; $return_array["total_gmv"] = $total_gmv; $return_array["total_people"] = $total_people; return $return_array; } function get_export_order_list( $pdo, $search_param ) { $select_sql = create_export_sql( $search_param ); $result=$pdo->query($select_sql); if( $result == false ) { return false; } $order_list = $result->fetchAll(PDO::FETCH_ASSOC); return $order_list; } function create_search_sql( $search_param ) { $base_where = get_base_where(); $select_column = get_select_column(); $extra_sql = get_where_sql( $search_param ); $extra_sql2 = get_where_sql( $search_param, false ); $limit_sql = get_limit_sql( $search_param ); $search_sql = " SELECT ".$select_column. " FROM order_main as om ". " LEFT JOIN opera_line as line ON om.parent_prod_id = line.line_id ". " WHERE ".$base_where.$extra_sql. " GROUP BY om.parent_order_id ORDER BY om.create_time DESC ".$limit_sql; $count_sql = " SELECT count(distinct om.parent_order_id) as total_num ". " FROM order_main as om ". " LEFT JOIN opera_line as line ON om.parent_prod_id = line.line_id ". " WHERE ".$base_where.$extra_sql; $count_sql2 = " SELECT order_status,count(distinct om.parent_order_id) as total_num ". " FROM order_main as om ". " LEFT JOIN opera_line as line ON om.parent_prod_id = line.line_id ". " WHERE ".$base_where.$extra_sql2. " GROUP BY om.order_status "; $sum_sql = "SELECT SUM(om.order_price) as total_gmv". " FROM order_main as om ". " LEFT JOIN opera_line as line ON om.parent_prod_id = line.line_id ". " WHERE ".$base_where.$extra_sql; $count_people_sql = " SELECT count(*) as total_people ". " FROM order_main as om ". " LEFT JOIN opera_line as line ON om.parent_prod_id = line.line_id ". " WHERE ".$base_where.$extra_sql."AND PARENT_ORDER_ID <> 0"; return array( $search_sql, $count_sql, $count_sql2 ,$sum_sql , $count_people_sql); } function create_export_sql( $search_param ) { $base_where = get_base_where(); $select_column = get_export_column(); $extra_sql = get_where_sql( $search_param ); $search_sql = " SELECT ".$select_column. " FROM order_main as om ". " LEFT JOIN opera_line as line ON om.parent_prod_id = line.line_id ". " LEFT JOIN run_bus as r ON om.run_id = r.run_id and om.run_bus_order_id = r.bus_order_id and r.cancel_flag = 0 ". " LEFT JOIN order_pay_detail e on e.pay_main_id = om.order_pay_main_id and e.cancel_flag = 0 ". " WHERE ".$base_where.$extra_sql. " GROUP BY om.parent_order_id ORDER BY om.create_time DESC "; return $search_sql; } function get_select_column() { $select_column = " om.parent_order_id as M_ID, om.create_time as create_time, om.outside_sale_org_id as org_id,line.line_code,om.parent_prod_name as line,om.order_pay_main_id,om.principal_id as run_duty_id,". " om.prod_start_station_area_name as start_area,om.prod_end_station_area_name as end_area,om.prod_start_station_res_name as start_station,". " om.prod_end_station_res_name as end_station,om.prod_start_station_res_id as start_station_id,om.prod_end_station_res_id as end_station_id,". " concat(om.prod_start_station_date,' ',om.prod_start_station_time) as travel_time,om.prod_name as prod_name,om.run_bus_order_id as bus_order_id,". " om.parent_order_id as parent_orderNo,om.customer_name as contacts,om.customer_mobile as tel,om.customer_memo as remark,om.customer_address as customer_address,om.customer_id_no as idNo,". " om.order_status as order_status,om.order_pay_status as pay_status,om.outside_order_no as outside_order_no,om.run_id as run_id,om.prod_start_station_area_id as start_area_id,". " om.prod_end_station_area_id as end_area_id,om.order_book_status as book_status,om.order_title_id as order_title_id,line.line_type as bus_type,SUM(om.order_price) as order_price,". " count(om.order_id) as count,om.agent_level,om.source_main_corp_id,om.sub_channel_id,om.sub_channel_no, ". "(select GROUP_CONCAT(concat(cus_name,'*',cus_id_no)) from order_customer_info where order_parent_id =om.parent_order_id) as passenger_info"; return $select_column; } function get_export_column() { $select_column = " om.create_user_id,om.parent_order_id as M_ID, om.create_time as create_time, om.outside_sale_org_id as org_id,line.line_code,om.parent_prod_name as line,om.order_pay_main_id,om.principal_id as run_duty_id,". " om.prod_start_station_area_name as start_area,om.prod_end_station_area_name as end_area,om.prod_start_station_res_name as start_station,om.customer_address,". " om.prod_end_station_res_name as end_station,om.prod_start_station_res_id as start_station_id,om.prod_end_station_res_id as end_station_id,om.if_gift,". " concat(om.prod_start_station_date,' ',om.prod_start_station_time) as travel_time,om.prod_name as prod_name,om.run_bus_order_id as bus_order_id,". " om.parent_order_id as parent_orderNo,om.customer_name as contacts,om.customer_mobile as tel,om.customer_memo as remark,om.customer_id_no as idNo,". " om.order_status as order_status,om.order_pay_status as pay_status,om.outside_order_no as outside_order_no,om.run_id as run_id,om.prod_start_station_area_id as start_area_id,". " om.prod_end_station_area_id as end_area_id,om.order_book_status as book_status,om.order_title_id as order_title_id,line.line_type as bus_type,om.order_price as order_price,SUM(om.order_price) as gmv,". " count(om.order_id) as count, SUM(om.base_price) as base_price, SUM(om.total_commission) as total_commission, om.run_date,om.prod_start_station_time,". " r.send_bus_res_id,r.send_bus_no,r.send_driver_name, r.send_driver_mobile,e.pay_type_id_1 as pay_type,om.run_time as bus_run_time,om.agent_level,om.source_main_corp_id,om.sub_channel_id,om.sub_channel_no,". "(select GROUP_CONCAT(concat(cus_name,'*',cus_id_no)) from order_customer_info where order_parent_id =om.parent_order_id) as passenger_info"; return $select_column; } function get_base_where() { $base_where = " om.order_prod_type = 82 AND om.cancel_flag=0 AND om.parent_order_id > 0 "; return $base_where; } function get_where_sql( $search_param, $ignor_status = true ) { $where_array = array(); if( isset($search_param['starttime']) && strlen($search_param['starttime']) > 0 ) { $where_array[] = (isset($search_param['timelimit']) && $search_param['timelimit'] == "下单时间" ) ? " om.create_time >= '{$search_param['starttime']} 00:00:00' " : " om.run_date >= '{$search_param['starttime']}' "; } if( isset($search_param['endtime']) && strlen($search_param['endtime']) > 0 ) { $where_array[] = (isset($search_param['timelimit']) && $search_param['timelimit'] == "下单时间" ) ? " om.create_time <= '{$search_param['endtime']} 23:59:59' " : " om.run_date <= '{$search_param['endtime']}' "; } if( isset($search_param['ordersource']) && $search_param['ordersource'] > 0 ) { $where_array[] = " om.outside_sale_org_id = {$search_param['ordersource']} "; } if( isset($search_param['orderstatus']) && $search_param['orderstatus'] > 0 && $ignor_status == true ) { $where_array[] = " om.order_status = {$search_param['orderstatus']} "; } if( isset($search_param['paystatus']) && $search_param['paystatus'] > 0 ) { $where_array[] = " om.order_pay_status = {$search_param['paystatus']} "; } if( isset($search_param['bus_type']) && $search_param['bus_type'] > 0 ) { $where_array[] = " line.line_type = {$search_param['bus_type']} "; } if( isset($search_param['line']) && strlen($search_param['line']) > 0 ) { $where_array[] = " ( om.parent_prod_name like \"%%{$search_param['line']}%%\" OR line.line_code like \"%%{$search_param['line']}%%\" ) "; } if( isset($search_param['start_area']) && strlen($search_param['start_area']) > 0 ) { $where_array[] = " om.prod_start_station_area_name like \"%%{$search_param['start_area']}%%\" "; } if( isset($search_param['end_area']) && strlen($search_param['end_area']) > 0 ) { $where_array[] = " om.prod_end_station_area_name like \"%%{$search_param['end_area']}%%\" "; } if( isset($search_param['moresearch']) && strlen($search_param['moresearch']) > 0 ) { $where_array[] = " ( om.outside_order_no like \"%%{$search_param['moresearch']}%%\" OR om.parent_order_id like \"%%{$search_param['moresearch']}%%\" OR om.outside_sale_org_id like \"%%{$search_param['moresearch']}%%\" OR om.customer_name like \"%%{$search_param['moresearch']}%%\" OR om.customer_mobile like \"%%{$search_param['moresearch']}%%\" ) "; } if( isset($search_param['run_time']) && strlen($search_param['run_time']) > 0 ) { $where_array[] = " om.run_time = '{$search_param['run_time']}' "; } if( isset($search_param['search_bus_no']) && strlen($search_param['search_bus_no']) > 0 ) { $where_array[] = " om.run_bus_order_id = {$search_param['search_bus_no']} "; } if( isset($search_param['main_corp_id']) && $search_param['main_corp_id'] > 0 ) { $where_array[] = " om.main_corp_id = {$search_param['main_corp_id']} "; } if( isset($search_param['run_duty']) && $search_param['run_duty'] >= 0 ) { $where_array[] = " om.principal_id = {$search_param['run_duty']} "; } return count($where_array) > 0 ? " AND ".implode( " AND ", $where_array ) : ""; } function get_limit_sql( $search_param ) { $currpage = isset($search_param['currpage']) ? (empty($search_param['currpage']) ? 1 : $search_param['currpage']) : 1; $pagesize = isset($search_param['pagesize']) ? (empty($search_param['pagesize']) ? 10 : $search_param['pagesize']) : 10; $start_index = ($currpage-1)*$pagesize; $limit_sql = " LIMIT {$start_index}, {$pagesize}"; return $limit_sql; }