/** * 产品类别比例 */ public function categoryRatio() { // 查询添加的产品 $Product = D('Product'); $map['addtime'] = [['gt', $this->month_start], ['lt', $this->month_end]]; $field = ['itemid', 'catid']; $sel_product_list = $Product->where($map)->field($field)->select(); foreach ($sel_product_list as $k => $v) { $x = Tools::str2arr($v['catid']); $sel_product_list[$k]['catid'] = $x[0]; } // 分类hash $this->getCateHash(); // 产品分类详情 $sel_cat_info = Tools::groupBy($sel_product_list, 'catid'); foreach ($sel_cat_info as $k => $v) { unset($sel_cat_info[$k]); if ($this->all_cate_hash[$k]) { $sel_cat_info[$k]['catid'] = $k; $sel_cat_info[$k]['catname'] = $this->all_cate_hash[$k]; $sel_cat_info[$k]['count'] = count($v); } } sort($sel_cat_info); // 数据重组 $legend_data = Tools::arr2str(Tools::getCols($sel_cat_info, 'catname', true)); foreach ($sel_cat_info as $k => $v) { $series_data[] = "{value:" . $v['count'] . ", name:'" . $v['catname'] . "'}"; } $series_data = Tools::arr2str($series_data); // 注入显示 $this->assign(['legend_data' => $legend_data, 'series_data' => $series_data]); $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(); }
/** * 终端注册饼形图 */ public function memberRegAppChart() { $Member = D('Member'); $field = ['userid', 'comefrom']; /* * pc注册的数量 */ $map['comefrom'] = 'web'; $sel_AppChart_list = $Member->where($map)->field($field)->select(); $cat_group = Tools::groupBy($sel_AppChart_list, 'userid'); foreach ($cat_group as $k => $v) { $x_pc[$k]['userid'] = $v[0]['userid']; $x_pc[$k]['count'] = count($v); } sort($x_pc); /* * 手机注册的数量 */ $map['comefrom'] = 'touch'; $sel_AppChart_list = $Member->where($map)->field($field)->select(); $cat_group = Tools::groupBy($sel_AppChart_list, 'userid'); foreach ($cat_group as $k => $v) { $x_mobel[$k]['userid'] = $v[0]['userid']; $x_mobel[$k]['count'] = count($v); } sort($x_mobel); //重组数据 $appChart_pc = get_arr_k_amount($x_pc, 'count'); $appChart_mobel = get_arr_k_amount($x_mobel, 'count'); //注入显示 $this->assign(['appChart_pc' => $appChart_pc, 'appChart_mobel' => $appChart_mobel]); $this->display(); }