public function mouthSoltPayment() { $Trade = D('Trade'); $mouth_solt = get_month_solt($this->month_start, $this->month_end); $map['status'] = ['in', '2,3,4']; foreach ($mouth_solt as $k => $v) { $map['paytime'] = [['gt', $v['start']['ts']], ['lt', $v['end']['ts']]]; $mouth_solt_trades[$k]['mouth_solt'] = $v; $mouth_solt_trades[$k]['trades'] = $Trade->field('itemid,amount')->where($map)->select(); $mouth_solt_trades[$k]['mouth_name'] = date("Y-m", $v['start']['ts']); $mouth_solt_trades[$k]['trade_amount'] = get_arr_k_amount($mouth_solt_trades[$k]['trades'], 'amount'); unset($mouth_solt_trades[$k]['trades']); } $xAxis_data = Tools::arr2str(Tools::getCols($mouth_solt_trades, 'mouth_name', true)); $mouth_data = Tools::arr2str(Tools::getCols($mouth_solt_trades, 'trade_amount')); $this->assign(['xAxis_data' => $xAxis_data, 'mouth_data' => $mouth_data]); $this->display(); }
/** * 价格区间分布图(销量 产品数量 交易额 订单总数) */ public function price_range_information() { $map['status'] = 3; $map['price'] = ['gt', 0]; $Product = D('Product'); $Trade = D('Trade'); $products = $Product->where($map)->field(['itemid', 'price'])->select(); $trades = $Trade->where(['status' => ['in', [2, 3, 4]]])->field(['itemid', 'p_id', 'price', 'total', 'amount'])->select(); // 订单 foreach ($this->price_range as $k => $v) { $price_range_data[$k] = $v; // 产品数量 $product_ids = $this->getPriceRangeProductIDs($products, $v); $price_range_data[$k]['product_count'] = count($product_ids); $sel_trades = $this->getPriceRangeTrades($trades, $v); // 订单总数 $price_range_data[$k]['trade_count'] = count($sel_trades); // 销量 $price_range_data[$k]['trade_total'] = get_arr_k_amount($sel_trades, 'total'); // 交易额 $price_range_data[$k]['trade_amount'] = get_arr_k_amount($sel_trades, 'amount'); } // 数据重组 /*$xAxis_data = "'产品数量','订单总数','销量','交易额'"; $legend_data = Tools::getCols($this->price_range,'range_name',true); foreach($price_range_data as $k => $v){ $sel_trades[] = "{name:'".$v['range_name']."',type:'bar',data:[".$v['product_count'].",".$v['trade_count'].",".$v['trade_total'].",".$v['trade_amount']."]}"; } $series = Tools::arr2str($sel_trades); $this->assign(['legend_data'=>$legend_data,'xAxis_data'=>$xAxis_data,'series'=>$series]);*/ $legend_data = ['产品数量', '订单总数', '销量', '交易额']; $xAxis_data = Tools::arr2str(Tools::getCols($this->price_range, 'range_name', true)); $series['product_count'] = Tools::arr2str(Tools::getCols($price_range_data, 'product_count')); $series['trade_count'] = Tools::arr2str(Tools::getCols($price_range_data, 'trade_count')); $series['trade_total'] = Tools::arr2str(Tools::getCols($price_range_data, 'trade_total')); $series['trade_amount'] = Tools::arr2str(Tools::getCols($price_range_data, 'trade_amount')); // 注入显示 $this->assign(['legend_data' => $legend_data, 'xAxis_data' => $xAxis_data, 'series' => $series]); $this->display(); }
/** * 三个栏目下的文章类别比例图 (以顶级分类为单位进行区分) (三个饼形图) */ public function classesInformation() { $this->getCateHash(); // 查询资讯 $Information = D('Information'); $field = ['itemid', 'catid']; $sel_information_list = $Information->where()->field($field)->select(); $cat_group = Tools::groupBy($sel_information_list, 'catid'); foreach ($cat_group as $k => $v) { $x[$k]['catid'] = $v[0]['catid']; $x[$k]['catname'] = $this->all_information_hash[$v[0]['catid']]; $x[$k]['count'] = count($v); } sort($x); // 查询虫害资讯 $Pests = D('Pests'); $field = ['itemid', 'catid']; $map['catid'] = ['in', [6086, 6324, 6087, 6088, 6318, 6319, 6092, 6093, 6096, 14408]]; $sel_pests_list = $Pests->where($map)->field($field)->select(); $cat_group = Tools::groupBy($sel_pests_list, 'catid'); foreach ($cat_group as $k => $v) { $x_pests[$k]['catid'] = $v[0]['catid']; $x_pests[$k]['catname'] = $this->all_information_hash[$v[0]['catid']]; $x_pests[$k]['count'] = count($v); } sort($x_pests); // 查询中毒资讯 $Poisoning = D('Poisoning'); $field = ['itemid', 'catid']; $map['catid'] = ['in', [12749, 12750, 12751, 12752, 12753, 12776]]; $sel_poisoning_list = $Poisoning->where($map)->field($field)->select(); $cat_group = Tools::groupBy($sel_poisoning_list, 'catid'); foreach ($cat_group as $k => $v) { $x_poisoning[$k]['catid'] = $v[0]['catid']; $x_poisoning[$k]['catname'] = $this->all_information_hash[$v[0]['catid']]; $x_poisoning[$k]['count'] = count($v); } sort($x_poisoning); //重组资讯数据 $legend_data_inforamtion = Tools::arr2str(Tools::getCols($x, 'catname', true)); foreach ($x as $k => $v) { $series_data_inforamtion[] = "{value:" . $v['count'] . ", name:'" . $v['catname'] . "'}"; } $series_data_inforamtion = Tools::arr2str($series_data_inforamtion); //重组病虫害数据 $legend_data_pests = Tools::arr2str(Tools::getCols($x_pests, 'catname', true)); foreach ($x_pests as $k => $v) { $series_data_pests[] = "{value:" . $v['count'] . ", name:'" . $v['catname'] . "'}"; } $series_data_pests = Tools::arr2str($series_data_pests); //重组农药中毒资讯数据 $legend_data_poisoning = Tools::arr2str(Tools::getCols($x_poisoning, 'catname', true)); foreach ($x_poisoning as $k => $v) { $series_data_poisoning[] = "{value:" . $v['count'] . ", name:'" . $v['catname'] . "'}"; } $series_data_poisoning = Tools::arr2str($series_data_poisoning); //注入显示 $this->assign(['legend_data_information' => $legend_data_inforamtion, 'series_data_information' => $series_data_inforamtion, 'legend_data_pests' => $legend_data_pests, 'series_data_pests' => $series_data_pests, 'legend_data_poisoning' => $legend_data_poisoning, 'series_data_poisoning' => $series_data_poisoning]); $this->display(); }
protected function getAreaChildIds($area_id) { $Area = D('Area'); $x = $Area->where(['parentid' => $area_id])->field("areaid")->select(); return Tools::getCols($x, 'areaid'); }
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(); }
/** * 合作商提成月走势图 * @author Edwin <*****@*****.**> */ public function partnerTrend() { $Agent = D('Partner'); $map['status'] = ['in', '2,3,4']; //查询数据 $month_start = strtotime('September 2013'); $month_solt = get_month_solt($month_start, $this->month_end); foreach ($month_solt as $k => $v) { $map['addtime'] = [['gt', $v['start']['ts']], ['lt', $v['end']['ts']]]; $mouth_solt_partner[$k]['mouth_solt'] = $v; $x = $Agent->field('money')->where($map)->select(); $mouth_solt_partner[$k]['mouth_name'] = date("Y-m", $v['start']['ts']); $mouth_solt_partner[$k]['partner_sum'] = get_arr_k_amount($x, 'money'); } //重组数据_月资讯数据 $xAxis_data = Tools::arr2str(Tools::getCols($mouth_solt_partner, 'mouth_name', true)); $series_data = Tools::arr2str(Tools::getCols($mouth_solt_partner, 'partner_sum')); //注入显示 $this->assign(['xAxis_data' => $xAxis_data, 'series_data' => $series_data]); $this->assign(['month_start' => $month_start]); $this->display(); }