MODEL('statis'); $CompanyorderM = $this->MODEL('companyorder'); $PackM = $this->MODEL('pack'); if(isset($_GET['radio_time'])){ $this->yunset('radio_time', $_GET['radio_time']); } //查询报表数据 $time_begin = isset($_GET['time_begin']) ? $_GET['time_begin'] : date('Y-m-d 00:00:00', strtotime('-30 day')); $time_end = isset($_GET['time_end']) ? $_GET['time_end'] :date('Y-m-d H:i:s'); $this->yunset('defaultTimeBegin', $time_begin); $this->yunset('defaultTimeEnd', $time_end); $isAllTime = isset($_GET['isAllTime']) ? $_GET['isAllTime'] : 0; //查询30条内的信息,展示到页面第一屏 if($isAllTime != 1){ $timeBegin = strtotime($time_begin); }else{ $timeBegin = strtotime(date('Y-m-d 00:00:00', strtotime('-30 year'))); } $timeEnd = strtotime($time_end); list($in, $out, $net_income) = $StatisM->getStatisTotal($timeBegin, $timeEnd, ''); $data [] = array('time' => '近30', 'in' => $in, 'out' => $out, 'net_income' => $net_income); $this->yunset('data', $data); //如果不是查询全部数据,组织查询的开始、结束时间 if($isAllTime != 1){ $timeBegin = strtotime($time_begin); $timeEnd = strtotime($time_end); $dateBegin = date('Y-m-d', $timeBegin); $dateEnd = date('Y-m-d', $timeEnd); $title = "收支统计 - {$dateBegin}~{$dateEnd}"; }else{ $title = "收支统计 - 全部数据"; } //收支总计 查询:in毛收入,out支出/提现,net_income净收入 $names = array();//横坐标名称(时间日期) $values = array();//纵坐标的值 $dataGroupNames = array();//柱行代表数据的名称 //毛收入 $comwhere['order_state'] = 2; if($isAllTime != 1){ $comwhere['order_time'][] = array('>=', $timeBegin); $comwhere['order_time'][] = array('<=', $timeEnd,'AND'); } $comwhere['groupby'] = 'date'; $comwhere['orderby'] = array('date,asc'); $comfield = "sum(order_price) as `num`, from_unixtime(order_time,'%Y-%m-%d') as `date`"; $row = $CompanyorderM->getList($comwhere,array('field'=>$comfield)); $totalIn = 0;//收入总计 if(count($row) < 1){ $in = array('names' => array(), 'values' => array()); }else{ $inNames = array(); $inValues = array(); foreach($row as $r){ $inNames [] = $r['date']; $inValues [] = $r['num']; $totalIn += $r['num']; } $in = array('names' => $inNames, 'values' => $inValues); } //支出/提现 $memwhere['order_state'] = 1; if($isAllTime != 1){ $memwhere['time'][] = array('>=', $timeBegin); $memwhere['time'][] = array('<=', $timeEnd,'AND'); } $memwhere['groupby'] = 'date'; $memwhere['orderby'] = 'date'; $memfield = "sum(order_price) as num, from_unixtime(`time`,'%Y-%m-%d') as `date`"; $mrow = $PackM->getList($memwhere,array('field'=>$memfield)); $totalOut = 0; if(count($mrow) < 1){ $out = array('names' => array(), 'values' => array()); } else{ $outNames = array(); $outValues = array(); foreach($mrow as $r){ $outNames [] = $r['date']; $outValues [] = $r['num']; $totalOut += $r['num']; } $out = array('names' => $outNames, 'values' => $outValues); } //净收入 综合names、values $names = array_merge($in['names'], $out['names']); $names = array_unique($names); usort($names,'t_sort'); $inValues = array(); $outValues = array(); $inK = 0; $outK = 0; foreach($names as $n){ if(in_array($n, $in['names'])){ $inValues [] = $in['values'][$inK]; $inK ++; }else{ $inValues [] = 0; } if(in_array($n, $out['names'])){ $outValues [] = $out['values'][$outK]; $outK ++; }else{ $outValues [] = 0; } $netIncomeValues [] = end($inValues) - end($outValues); } $in['values'] = $inValues; $out['values'] = $outValues; $dataGroupNames [] = '毛收入'; $dataGroupNames [] = '支出/提现'; $dataGroupNames [] = '净收入'; $values[] = array('name' => '毛收入','type' => $this->chartType,'data' => $in['values']); $values[] = array('name' => '支出/提现','type' => $this->chartType,'data' => $out['values']); $values[] = array('name' => '净收入','type' => $this->chartType,'data' => $netIncomeValues); $data = array('title' => $title,'names' => $names, 'values' => $values, 'dataGroupNames' => $dataGroupNames); $this->yunset($data); $this->yunset(array('totalIn'=> $totalIn, 'totalOut' => $totalOut, 'totalNetIncome' => $totalIn - $totalOut)); $this->yuntpl(array('admin/statis')); } } ?>