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();
 }