|
- <?php
-
- function get_order_list( $pdo, $search_param ) {
- $sql_array = create_search_sql( $search_param );
- $search_sql = $sql_array[0];
- $count_sql = $sql_array[1];
- $count_sql2 = $sql_array[2];
- $sum_sql = $sql_array[3];
- $count_people_sql = $sql_array[4];
- $result=$pdo->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;
- }
|