123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- <?php
- declare (strict_types=1);
- namespace app\store\model\analysis;
- use app\common\model\analysis\AnalysisDailyVisit as AnalysisDailyVisitModel;
- use app\common\service\MpWxService;
- /**
- * 每日访问趋势模型
- * Class AnalysisDailyVisit
- * @package app\common\model\analysis
- */
- class AnalysisDailyVisit extends AnalysisDailyVisitModel
- {
- /**
- * 批量写入每日行为数据
- * 发布上线时,只需执行一次
- */
- public static function addInitVisit()
- {
- $begin_date = '20211001'; // 生成初始数据开始时间,建议时间为:小程序上线时间
- $end_date = date('Ymd', strtotime('-1 days')); // 生成初始数据结束时间,建议时间为:昨天
- $date_arr = period_date(strtotime($begin_date), strtotime($end_date), 'Ymd');
- $res = [];
- foreach ($date_arr as $date) {
- $res[] = self::visit($date);
- }
- // 写入数据
- return AnalysisDailyVisit::insertAll($res);
- }
- /**
- * 写入每日行为数据
- * 定时任务每日执行一次,生成昨日数据
- */
- public static function addVisit()
- {
- $date = date('Ymd', strtotime('-1 days'));
- $data = self::visit($date);
- // dd($data);
- // 移除数据
- self::where('start_time', '>=', strtotime($date))
- ->where('end_time', '<', strtotime($date)+ 86400)->delete();
- // 写入数据
- return AnalysisDailyVisit::insert($data);
- }
- /**
- * 获取单日数据概览及访问趋势数据
- *
- * @param $date
- * @return array
- */
- public static function visit($date)
- {
- $summary = self::getSummary($date); // 每日数据概览
- $visitTrend = self::getVisitTrend($date);// 每日访问趋势
- $data = array_merge($summary, $visitTrend);
- $data['create_time'] = time();
- $data['update_time'] = time();
- $data['start_time'] = strtotime($data['ref_date']); // 开始时间 00:00:00
- $data['end_time'] = strtotime($data['ref_date']) + 86400 - 1; // 结束时间 23:59:59
- return $data;
- }
- /**
- * 获取用户访问小程序数据日趋势
- * 限定查询1天数据
- *
- * @param $date
- * @return array|mixed
- */
- private static function getVisitTrend($date)
- {
- $params['begin_date'] = $date;
- $params['end_date'] = $date;
- $data = MpWxService::doAnalysisAction('getweanalysisappiddailyvisittrend', $params);
- $data = $data['list'][0] ?? [];
- return $data;
- }
- /**
- * 获取用户访问小程序数据概况
- * 限定查询1天数据
- *
- * @param $date
- * @return array|mixed
- */
- private static function getSummary($date)
- {
- $params['begin_date'] = $date;
- $params['end_date'] = $date;
- $data = MpWxService::doAnalysisAction('getweanalysisappiddailysummarytrend', $params);
- $data = $data['list'][0] ?? [];
- return $data;
- }
- }
|