/** * 获取收支趋势月度统计表 * * @param unknown $userId * @param unknown $accountId * @param unknown $billTypeId * @param unknown $billTypeFlag * @param unknown $year * @param unknown $month */ public function getTrendStatisticMonth($userId, $accountId, $billTypeId, $billTypeFlag, $year, $month) { $params = array('userId' => $userId, 'accountId' => $accountId, 'billTypeId' => $billTypeId, 'billTypeFlag' => $billTypeFlag, 'year' => $year, 'month' => $month); $rows = $this->getDAO()->select(PbsStatisticSQL::$SQL_STATISTIC_TREND_MONTH, $params); $table = null; if ($rows != null) { // 无数据的月份,填充0 $table = array(); $monthDays = get_month_days((int) $year, (int) $month); for ($i = 1; $i <= $monthDays; $i++) { $table[] = array('day' => $i, 'total_sum' => 0.0); } foreach ($rows as $row) { $day = (int) $row['day'] - 1; $table[$day]['total_sum'] = (double) $row['total_sum']; } } return $table; }
function calculate_month_work($month, $year = null) { $work = 0; $days = array(); $all = array(); $holidays = array(array(1), array(), array(24), array(2, 5, 6), array(1, 25), array(20), array(9), array(17), array(), array(12), array(), array(8, 25)); $year = $year ? $year : date('Y'); $month_total = get_month_days($month, $year); for ($d = 1; $d <= $month_total; $d++) { $all[] = $d; if (!in_array($d, $holidays[$month - 1])) { $time = mktime(0, 0, 0, $month, $d, $year); $w = date('w', $time); if ($w > 0 && $w < 6) { $days[] = $d; $work++; } } } return array($work, $days, $all); }
/** * 获取收支趋势统计 */ function get_trend_statistic() { $userId = (int) $_SESSION['userId']; $accountId = is_empty($_REQUEST['accountId']) ? null : (int) $_REQUEST['accountId']; $billTypeId = is_empty($_REQUEST['billTypeId']) ? null : (int) $_REQUEST['billTypeId']; $billTypeFlag = is_empty($_REQUEST['billTypeFlag']) ? null : (int) $_REQUEST['billTypeFlag']; $year = $_REQUEST['year']; $month = is_empty($_REQUEST['month']) ? null : $_REQUEST['month']; $code = '0'; $statisticService = new StatisticService(); $chart = null; $rows = array(); $valueLabelArray = null; if ($month === null) { //年度统计 if ($billTypeId === null && $billTypeFlag === null) { $rows[] = $statisticService->getTrendStatisticYear($userId, $accountId, $billTypeId, 1, $year); $rows[] = $statisticService->getTrendStatisticYear($userId, $accountId, $billTypeId, 0, $year); $valueLabelArray[] = '收入'; $valueLabelArray[] = '支出'; } else { $rows[] = $statisticService->getTrendStatisticYear($userId, $accountId, $billTypeId, $billTypeFlag, $year); $valueLabelArray[] = ''; } if ($rows != null) { global $CHART_MONTH_ARRAY; $chart = get_bar_chart_array($rows, $CHART_MONTH_ARRAY, $valueLabelArray, 'total_sum'); } } else { //月度统计 if ($billTypeId === null && $billTypeFlag === null) { $rows[] = $statisticService->getTrendStatisticMonth($userId, $accountId, $billTypeId, 1, $year, $month); $rows[] = $statisticService->getTrendStatisticMonth($userId, $accountId, $billTypeId, 0, $year, $month); $valueLabelArray[] = '收入'; $valueLabelArray[] = '支出'; } else { $rows[] = $statisticService->getTrendStatisticMonth($userId, $accountId, $billTypeId, $billTypeFlag, $year, $month); $valueLabelArray[] = ''; } if ($rows != null) { $monthDays = get_month_days((int) $year, (int) $month); for ($i = 1; $i <= $monthDays; $i++) { $dayArray[] = $i; } $chart = get_bar_chart_array($rows, $dayArray, $valueLabelArray, 'total_sum'); } } $output = array('retCode' => $code, 'trendChart' => $chart); echo get_json($output); }