public function memberYear() { $Member = D("Member"); $year_solt = get_year_solt($this->year_start, $this->year_end); $map['status'] = ['in', '2,3,4']; foreach ($year_solt as $k => $v) { $map['regtime'] = [['gt', $v['start']['ts']], ['lt', $v['end']['ts']]]; $x = $Member->field('userid')->where($map)->select(); $member_year_data[$k]['year_name'] = date("Y", $v['start']['ts']); $member_year_data[$k]['count'] = count($x); } $xAxis_data = Tools::arr2str(Tools::getCols($member_year_data, 'year_name', true)); $series_data_information = Tools::arr2str(Tools::getCols($member_year_data, 'count')); $this->assign(['xAxis_data' => $xAxis_data, 'series_data_information' => $series_data_information]); $this->display(); }
/** * 公用查询时间 */ private function getRange() { if (I('day_start') && I('day_end')) { $this->day_start = strtotime(I('day_start') . " 00:00:00"); $this->day_end = strtotime(I('day_end') . " 23:59:59"); } else { $this->day_start = strtotime('-1 week'); $this->day_end = time(); } $this->day_solt = get_day_solt($this->day_start, $this->day_end); $this->assign(['day_start' => $this->day_start, 'day_end' => $this->day_end]); $this->mapDayRange = [['gt', $this->day_start], ['lt', $this->day_end]]; if (I('month_start') && I('month_end')) { $this->month_start = strtotime(I('month_start') . "-01 00:00:00"); $this->month_end = strtotime(I('month_end') . "-01 23:59:59"); } else { $this->month_start = strtotime($this->now_Y . "-01-01 00:00:00"); $this->month_end = time(); } $this->month_solt = get_month_solt($this->month_start, $this->month_end); $this->assign(['month_start' => $this->month_start, 'month_end' => $this->month_end]); $this->mapMonthRange = [['gt', $this->month_start], ['lt', $this->month_end]]; if (I('year_start') && I('year_end')) { $this->year_start = strtotime(I('year_start') . "-01-01 00:00:00"); $this->year_end = strtotime(I('year_end') . "-12-31 23:59:59"); } else { $this->year_start = strtotime($this->now_Y - 1 . "-01-01 00:00:00"); $this->year_end = time(); } $this->year_solt = get_year_solt($this->year_start, $this->year_end); $this->assign(['year_start' => $this->year_start, 'year_end' => $this->year_end]); $this->mapYearRange = [['gt', $this->year_start], ['lt', $this->year_end]]; }
/** * 月付款同期对比 * @author wodrow */ public function sameMouthAnnually() { $Trade = D('Trade'); $map['paytime'] = $this->mapYearRange; $map['status'] = ['in', '2,3,4']; $trades = $Trade->where($map)->field("paytime,amount")->select(); for ($i = 1; $i <= 12; $i++) { $xAxis[] = $i; } $xAxis_data = "'" . implode("','", $xAxis) . "'"; $year_solt = get_year_solt($this->year_start, $this->year_end); foreach ($year_solt as $k => $v) { $legend[] = $v['start']['year']; } $legend_data = "'" . implode("','", $legend) . "'"; foreach ($year_solt as $k => $v) { foreach ($xAxis as $k1 => $v1) { foreach ($trades as $k2 => $v2) { if (date("m", $v2['paytime']) == $v1) { if ($v2['paytime'] > $v['start']['ts'] && $v2['paytime'] < $v['end']['ts']) { $same_year_trades[$v['start']['year']][$v1]['mouth_name'] = $v1; $same_year_trades[$v['start']['year']][$v1]['mouth_trades'][] = $v2; } } } } } foreach ($same_year_trades as $k => $v) { unset($x); foreach ($v as $k1 => $v1) { $same_year_trades[$k][$k1]['mouth_amount'] = get_arr_k_amount($v1['mouth_trades'], 'amount'); $x[$k1] = $same_year_trades[$k][$k1]['mouth_amount']; unset($same_year_trades[$k][$k1]); } foreach ($xAxis as $k2 => $v2) { if (!$x[$v2]) { $x[$v2] = ''; } } ksort($x); $same_year_trades[$k]['year_data'] = "'" . implode("','", $x) . "'"; } $this->assign(['xAxis' => $xAxis, 'xAxis_data' => $xAxis_data, 'legend' => $legend, 'legend_data' => $legend_data, 'same_year_trades' => $same_year_trades]); $this->display(); }