|
|
@@ -4,6 +4,7 @@ namespace biz\stat\services;
|
|
|
|
|
|
use biz\base\services\BaseService;
|
|
|
use biz\merchant\services\MerchantAssetService;
|
|
|
+use biz\stat\classes\StatViewClass;
|
|
|
use biz\stat\classes\StatVisitClass;
|
|
|
use Yii;
|
|
|
use common\components\stringUtil;
|
|
|
@@ -23,14 +24,14 @@ class StatVisitService extends BaseService
|
|
|
Yii::$app->redis->executeCommand('INCRBY', [$wholeSiteView, 1]);//记录当天访问人数
|
|
|
//收集访问客数
|
|
|
$ip = Yii::$app->request->userIP;
|
|
|
- $wholeSiteIp = StatVisitClass::getKeyName($merchantId, 'whole_site_visit');
|
|
|
- $exists = Yii::$app->redis->executeCommand('SISMEMBER', [$wholeSiteIp, $ip]);
|
|
|
- if (!empty($exists)) {
|
|
|
- return;
|
|
|
+ $wholeSiteVisit = StatVisitClass::getKeyName($merchantId, 'whole_site_visit');
|
|
|
+ $exists = Yii::$app->redis->executeCommand('SISMEMBER', [$wholeSiteVisit, $ip]);
|
|
|
+ if (empty($exists)) {
|
|
|
+ //记录当天的IP
|
|
|
+ Yii::$app->redis->executeCommand('SADD', [$wholeSiteVisit, $ip]);
|
|
|
}
|
|
|
- Yii::$app->redis->executeCommand('SADD', [$wholeSiteIp, $ip]);//记录当天的IP
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
/**
|
|
|
* 将昨天的保存入库
|
|
|
*/
|
|
|
@@ -43,17 +44,28 @@ class StatVisitService extends BaseService
|
|
|
return [];
|
|
|
}
|
|
|
$wholeSiteView = StatVisitClass::getKeyName($merchantId, 'whole_site_view', $yesTime);
|
|
|
- $num = Yii::$app->redis->executeCommand('GET', [$wholeSiteView]);//记录当天访问网站人数
|
|
|
+ //获取访问次数
|
|
|
+ $viewNum = Yii::$app->redis->executeCommand('GET', [$wholeSiteView]);
|
|
|
+
|
|
|
+ //获取访问客户数
|
|
|
+ $wholeSiteVisit = StatVisitClass::getKeyName($merchantId, 'whole_site_visit', $yesTime);
|
|
|
+ $visitNum = Yii::$app->redis->executeCommand('SCARD', [$wholeSiteVisit]);
|
|
|
+
|
|
|
$asset = MerchantAssetService::getByMerchantId($merchantId);
|
|
|
$totalVisit = $asset['totalVisit'];
|
|
|
- $totalVisit = stringUtil::calcAdd($totalVisit, $num);
|
|
|
- $data = ['time' => $yesTime, 'totalNum' => $totalVisit, 'riseNum' => $num, 'merchantId' => $merchantId, 'createTime' => date("Y-m-d H:i:s")];
|
|
|
- //保存每天的访问量
|
|
|
- $saveData = self::add($data);
|
|
|
+ $totalView = $asset['totalView'];
|
|
|
+ $totalVisit = stringUtil::calcAdd($totalVisit, $visitNum);
|
|
|
+ $totalView = stringUtil::calcAdd($totalView, $viewNum);
|
|
|
+ //保存访客数
|
|
|
+ $data = ['time' => $yesTime, 'totalNum' => $totalVisit, 'riseNum' => $visitNum, 'merchantId' => $merchantId, 'createTime' => date("Y-m-d H:i:s")];
|
|
|
+ self::add($data);
|
|
|
+ //保存访问量
|
|
|
+ $data = ['time' => $yesTime, 'totalNum' => $totalView, 'riseNum' => $viewNum, 'merchantId' => $merchantId, 'addTime' => time()];
|
|
|
+ StatViewClass::add($data);
|
|
|
+
|
|
|
//保存累计访问量
|
|
|
- MerchantAssetService::updateByCondition(['merchantId' => $merchantId], ['totalView' => $totalVisit]);
|
|
|
+ MerchantAssetService::updateByCondition(['merchantId' => $merchantId], ['totalView' => $totalView, 'totalVisit' => $totalVisit]);
|
|
|
self::clearYesNum($merchantId);
|
|
|
- return $saveData;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -62,26 +74,31 @@ class StatVisitService extends BaseService
|
|
|
public static function clearYesNum($merchantId)
|
|
|
{
|
|
|
$yesTime = date("Ymd", strtotime("-1 day"));
|
|
|
- //访问量
|
|
|
+ //访问量清零
|
|
|
$wholeSiteView = StatVisitClass::getKeyName($merchantId, 'whole_site_view', $yesTime);
|
|
|
Yii::$app->redis->executeCommand('DEL', [$wholeSiteView]);
|
|
|
- //访问IP量
|
|
|
- $wholeSiteIp = StatVisitClass::getKeyName($merchantId, 'whole_site_ip', $yesTime);
|
|
|
- Yii::$app->redis->executeCommand('DEL', [$wholeSiteIp]);
|
|
|
+ //访客数清零
|
|
|
+ $wholeSiteVisit = StatVisitClass::getKeyName($merchantId, 'whole_site_visit', $yesTime);
|
|
|
+ Yii::$app->redis->executeCommand('DEL', [$wholeSiteVisit]);
|
|
|
}
|
|
|
|
|
|
- /**
|
|
|
- * 获取今天整站的访问量
|
|
|
- */
|
|
|
- public static function getTodayNum($merchantId)
|
|
|
+ //获取今天的访问量
|
|
|
+ public static function getTodayViewNum($merchantId)
|
|
|
{
|
|
|
$wholeSiteView = StatVisitClass::getKeyName($merchantId, 'whole_site_view');
|
|
|
- //记录当天访问网站人数
|
|
|
$nowNum = Yii::$app->redis->executeCommand('GET', [$wholeSiteView]);
|
|
|
$nowNum = !empty($nowNum) ? $nowNum : 0;
|
|
|
return $nowNum;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
+ //获取今天的访客数 shish 2020.2.2
|
|
|
+ public static function getTodayVisitNum($merchantId)
|
|
|
+ {
|
|
|
+ $wholeSiteVisit = StatVisitClass::getKeyName($merchantId, 'whole_site_visit');
|
|
|
+ $num = Yii::$app->redis->executeCommand('SCARD', [$wholeSiteVisit]);
|
|
|
+ return !empty($num) ? $num : 0;
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 总访问量
|
|
|
*/
|
|
|
@@ -104,13 +121,13 @@ class StatVisitService extends BaseService
|
|
|
echo "\n开始创建昨天的访问量…\n";
|
|
|
for ($i = 0; $i < $count; $i++) {
|
|
|
$ip = stringUtil::randIP();
|
|
|
- $wholeSiteIp = StatVisitClass::getKeyName($merchantId, 'whole_site_ip', $yesTime);
|
|
|
- $exists = Yii::$app->redis->executeCommand('SISMEMBER', [$wholeSiteIp, $ip]);
|
|
|
+ $wholeSiteVisit = StatVisitClass::getKeyName($merchantId, 'whole_site_visit', $yesTime);
|
|
|
+ $exists = Yii::$app->redis->executeCommand('SISMEMBER', [$wholeSiteVisit, $ip]);
|
|
|
if (!empty($exists)) {
|
|
|
return;
|
|
|
}
|
|
|
- echo $wholeSiteIp . "\n";
|
|
|
- Yii::$app->redis->executeCommand('SADD', [$wholeSiteIp, $ip]);//记录访问过网站的IP
|
|
|
+ echo $wholeSiteVisit . "\n";
|
|
|
+ Yii::$app->redis->executeCommand('SADD', [$wholeSiteVisit, $ip]);//记录访问过网站的IP
|
|
|
$wholeSiteView = StatVisitClass::getKeyName($merchantId, 'whole_site_view', $yesTime);
|
|
|
Yii::$app->redis->executeCommand('INCRBY', [$wholeSiteView, 1]);//记录访问网站人数
|
|
|
}
|
|
|
@@ -128,12 +145,12 @@ class StatVisitService extends BaseService
|
|
|
$yesterdayVisitNum = Yii::$app->redis->executeCommand('GET', [$wholeSiteView]);
|
|
|
echo '<pre>';
|
|
|
echo '昨天的访问总量:' . $yesterdayVisitNum . '<br />';
|
|
|
- $wholeSiteIp = StatVisitClass::getKeyName($merchantId, 'whole_site_ip', $yesTime);
|
|
|
- echo 'ipList的Key:' . $wholeSiteIp . '<br />';
|
|
|
- $list = Yii::$app->redis->executeCommand('SMEMBERS', [$wholeSiteIp]);
|
|
|
+ $wholeSiteVisit = StatVisitClass::getKeyName($merchantId, 'whole_site_visit', $yesTime);
|
|
|
+ echo 'ipList的Key:' . $wholeSiteVisit . '<br />';
|
|
|
+ $list = Yii::$app->redis->executeCommand('SMEMBERS', [$wholeSiteVisit]);
|
|
|
echo 'ipList:<br />';
|
|
|
print_r($list);
|
|
|
- $num = Yii::$app->redis->executeCommand('SCARD', [$wholeSiteIp]);
|
|
|
+ $num = Yii::$app->redis->executeCommand('SCARD', [$wholeSiteVisit]);
|
|
|
echo 'ipList里的访问数量统计:' . $num;
|
|
|
}
|
|
|
|