request; if ($retuest->isAjax) { if ($retuest->isGet) { $params = Yii::$app->request->get(); $res = Yii::$app->services->validate->validate($params, [ [['begin_date','end_date','type'],'safe'] ]); $params = AddonsAlbumStatistics::exceptNullVal($params); if ($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage()); $begin_date = Yii::$app->request->get('begin_date') ?: date('Y-m-d'); $end_date = Yii::$app->request->get('end_date') ?: date('Y-m-d',strtotime('+1 day')); $begin_time = strtotime($begin_date . ' 00:00:00'); $end_time = strtotime($end_date . ' 23:59:59'); //时间长度判断 $days = round((strtotime($end_date) - strtotime($begin_date))/3600/24); if($days > 30){ return $this->error('查询时间范围不得大于30天'); } $where[] = ['=', 'mall_id', $this->mall_id]; $where[] = ['between', 'created_at', $begin_time,$end_time]; $order = 'id'; $params = array('where' => $where, 'order'=>$order); if(!$params['type']){ //柱状图数据 $list['stat'] = AddonsAlbumDateStatistics::lists($params, true); //页面分析(20页) $album_params['with'] = ['statistics']; $album_params['where'] = [['status' => StatusEnum::ENABLED,'mall_id' => $this->mall_id]]; $album_params['select'] = 'id,title,goods_count'; $album_params['order'] = 'id desc'; $album_params['limit'] = 10; $list['album'] = AddonsAlbum::listPage($album_params, false,true); if($list['album']['list']){ foreach ($list['album']['list'] as $k => $v){ $stop_time = AddonsAlbumStatistics::sec2Time($v['statistics']['stop_time']); $list['album']['list'][$k]['statistics']['stop_time'] = $stop_time?$stop_time:0; $list['album']['list'][$k]['statistics']['shares_count'] = $v['statistics']['shares_count']?$v['statistics']['shares_count']:0; $list['album']['list'][$k]['statistics']['shares_count'] = $v['statistics']['shares_count']?$v['statistics']['shares_count']:0; $list['album']['list'][$k]['statistics']['visit_count'] = $v['statistics']['visit_count']?$v['statistics']['visit_count']:0; $list['album']['list'][$k]['statistics']['views_count'] = $v['statistics']['views_count']?$v['statistics']['views_count']:0; $list['album']['list'][$k]['statistics']['order_count'] = $v['statistics']['order_count']?$v['statistics']['order_count']:0; $list['album']['list'][$k]['statistics']['goods_amount'] = $v['statistics']['goods_amount']?$v['statistics']['goods_amount']:0; $list['album']['list'][$k]['statistics']['pay_count'] = $v['statistics']['pay_count']?$v['statistics']['pay_count']:0; } } } //会员数据 $params['with'] = ['album','user']; $params['group'] = 'user_id,album_id'; $params['order'] = 'stay_time desc'; $params['limit'] = 10; $params['select'] = 'album_id,id,album_page_id,mall_id,user_id,begin_time,end_time,sum(stay_time) as stay_time,date,created_at,count(id) as page_num'; $list['user'] = AddonsAlbumVisit::listPage($params); if($list['user']['list']){ foreach ($list['user']['list'] as $k => $v){ $extra_where = []; $extra_where[] = ['=', 'mall_id', $this->mall_id]; $extra_where[] = ['between', 'created_at', $begin_time,$end_time]; $extra_where[] = ['=', 'album_id', $v['album_id']]; $extra_where[] = ['=', 'user_id', $v['user_id']]; $amount = AddonsAlbumOrder::getOne($extra_where,true,'','','sum(amount) as pay_money'); $list['user']['list'][$k]['amount'] = $amount['pay_money']??0; $share_time = AddonsAlbumPageShare::getOne($extra_where,true,'','','count(*) as share_time'); $list['user']['list'][$k]['share_time'] = $share_time['share_time']; $list['user']['list'][$k]['stay_time'] = AddonsAlbumStatistics::sec2Time($v['stay_time']); } } $this->success('获取成功', $list); } } else { return $this->render($this->action->id); } } public function actionAlbum(){ $request = Yii::$app->request; if ($request->isGet) { $params = Yii::$app->request->get(); $res = Yii::$app->services->validate->validate($params, [ [['page',],'safe'] ]); $params = AddonsAlbumStatistics::exceptNullVal($params); if ($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage()); //页面分析(20页) $album_params['with'] = ['statistics']; $album_params['where'] = [['status' => StatusEnum::ENABLED,'mall_id' => $this->mall_id]]; $album_params['select'] = 'id,title,goods_count'; $album_params['order'] = 'id desc'; $album_params['limit'] = 10; $list['album'] = AddonsAlbum::listPage($album_params, false,true); if($list['album']['list']){ foreach ($list['album']['list'] as $k => $v){ $stop_time = AddonsAlbumStatistics::sec2Time($v['statistics']['stop_time']); $list['album']['list'][$k]['statistics']['stop_time'] = $stop_time?$stop_time:0; $list['album']['list'][$k]['statistics']['shares_count'] = $v['statistics']['shares_count']?$v['statistics']['shares_count']:0; $list['album']['list'][$k]['statistics']['shares_count'] = $v['statistics']['shares_count']?$v['statistics']['shares_count']:0; $list['album']['list'][$k]['statistics']['visit_count'] = $v['statistics']['visit_count']?$v['statistics']['visit_count']:0; $list['album']['list'][$k]['statistics']['views_count'] = $v['statistics']['views_count']?$v['statistics']['views_count']:0; $list['album']['list'][$k]['statistics']['order_count'] = $v['statistics']['order_count']?$v['statistics']['order_count']:0; $list['album']['list'][$k]['statistics']['goods_amount'] = $v['statistics']['goods_amount']?$v['statistics']['goods_amount']:0; $list['album']['list'][$k]['statistics']['pay_count'] = $v['statistics']['pay_count']?$v['statistics']['pay_count']:0; } } $this->success('获取成功', $list); } } /** * 编辑 * @Author: ltm * @DateTime: 2021/12/13 0021 18:29 * @Copyright: copyright (c) 2021 广东七件事集团 * @return mixed|string|void */ public function actionStatistics() { try { $request = Yii::$app->request; if ($request->isAjax) { //提交内容 if ($request->isPost) { $params = Yii::$app->request->post(); $res = Yii::$app->services->validate->validate($params, [ [['id',],'required'] ]); $params = AddonsAlbumStatistics::exceptNullVal($params); if ($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage()); $where[] = ['=', 'mall_id', $this->mall_id]; $where[] = ['=', 'album_id', $params['id']]; $detail = AddonsAlbumStatistics::getOne($where,true); if($detail['visit_count']>1){ $time_data = $detail['stop_time']/$detail['visit_count']; }else{ $time_data = $detail['stop_time']; } $detail['stop_time'] = AddonsAlbumStatistics::sec2Time($time_data); $detail['created_at'] ? $detail['created_at'] = date("Y-m-d",$detail['created_at']):''; $goods_where[] = ['=', 'album_id', $params['id']]; $goods_where[] = ['=', 'mall_id', $this->mall_id]; $goods_where[] = ['<>', 'status', StatusEnum::DELETE]; $conf = ['where'=> $goods_where,'with'=> ['goods']]; $detail['goods'] = AddonsAlbumGoodsVisit::lists($conf,true); if ($res === false) throw new Exception(AddonsAlbum::getStaticError()); return $this->success('操作成功',$detail); } } } catch (\Exception $e) { return $this->error($e->getMessage(), []); } } }