diff --git a/public/tests/hook.php b/public/tests/hook.php index bd14d752..fffe4a1e 100644 --- a/public/tests/hook.php +++ b/public/tests/hook.php @@ -35,7 +35,7 @@ $oHttp->aData = [ 'type' => 'private' ], 'date' => 1610000000, - 'text' => 'reply 2' + 'text' => '/nodeOption_server_112 sssasasd' ] ]; diff --git a/src/Command/Cron.php b/src/Command/Cron.php index 1e273d62..09859420 100755 --- a/src/Command/Cron.php +++ b/src/Command/Cron.php @@ -63,6 +63,9 @@ EOL; // 每日清除前一天残留TgStep $jobs->clearTgStep(); + + // 每日统计报表 + $jobs->visitorCount(); if (Config::obtain('enable_detect_inactive_user')) { $jobs->detectInactiveUser(); diff --git a/src/Controllers/FrontController.php b/src/Controllers/FrontController.php index 8ec29a0f..5fcabcf3 100755 --- a/src/Controllers/FrontController.php +++ b/src/Controllers/FrontController.php @@ -13,6 +13,7 @@ use App\Services\Auth as AuthService; use App\Models\Product; use App\Models\Config; use App\Models\UserCoupon; +use App\Services\TomTool\VisitorCount; final class FrontController extends BaseController { @@ -22,12 +23,13 @@ final class FrontController extends BaseController public function index(ServerRequest $request, Response $response, array $args): ResponseInterface { - $sAffCode = $this->antiXss->xss_clean($args['code']); - - if ($sAffCode) { + if (@$args['code']) { + $sAffCode = $this->antiXss->xss_clean($args['code']); setcookie('affCode', $sAffCode, (time() + (86400 * 1)), "/"); } + VisitorCount::From(); + $user = AuthService::getUser(); $taocan = (new Product())->where('status', '1') diff --git a/src/Controllers/TestController.php b/src/Controllers/TestController.php index 04824c7d..6ccbb2b6 100755 --- a/src/Controllers/TestController.php +++ b/src/Controllers/TestController.php @@ -28,7 +28,7 @@ final class TestController extends BaseController { $jobs = new CronService(); - $jobs->clearTgStep(); + $jobs->visitorCount(); exit; } diff --git a/src/Models/CountVisitor.php b/src/Models/CountVisitor.php new file mode 100755 index 00000000..2db9fafa --- /dev/null +++ b/src/Models/CountVisitor.php @@ -0,0 +1,15 @@ +delete(); } + + public static function visitorCount(): void + { + $oVisitor = Visitor::select('from', DB::raw('count(*) as count')) + ->groupBy('from') + ->get(); + + foreach ($oVisitor as $row) { + + $oCountVisitor = new CountVisitor(); + $oCountVisitor->from = $row->from; + $oCountVisitor->count = $row->count; + $oCountVisitor->date = date('Y-m-d', strtotime('-1 day')); + $oCountVisitor->save(); + + } + + Visitor::truncate(); + + // tg报表 + $aCountVisitor = CountVisitor::where('date', date('Y-m-d', strtotime('-1 day')))->get()->toArray(); + + $sTgReport = ''; + foreach ($aCountVisitor as $row) { + + $sTgReport .= $row["from"].":".$row["count"]."\n"; + + } + + (new Telegram())->send(0, $sTgReport); + + } public static function detectInactiveUser(): void { diff --git a/src/Services/TomTool/VisitorCount.php b/src/Services/TomTool/VisitorCount.php new file mode 100755 index 00000000..1bd9ce9a --- /dev/null +++ b/src/Services/TomTool/VisitorCount.php @@ -0,0 +1,37 @@ +date = date("Y-m-d"); + $oVisitorFrom->from = $_SERVER['HTTP_REFERER']; + $oVisitorFrom->save(); + + } else { + + $oVisitorFrom = new Visitor(); + $oVisitorFrom->date = date("Y-m-d"); + $oVisitorFrom->from = "直接"; + $oVisitorFrom->save(); + + } + + } + +}