fuc/src/Services/Tg/Hook/Mod/User.php
2025-04-21 14:45:02 +08:00

112 lines
3.2 KiB
PHP

<?php
//declare(strict_types=1);
namespace App\Services\Tg\Hook\Mod;
use App\Services\Tg\ReportUser as ServiceTgReportUser;
use App\Models\User as ModelUser;
//use App\Services\DB;
use App\Utils\Tools;
use App\Services\CountUser as ServiceCountUser;
final class User
{
public function Find($aParam)
{
// list(, $iUserId) = explode(" ", $sText, 2);
$iUserId = $aParam['aArg'][1];
$oUser = ModelUser::find($iUserId);
if ($oUser) {
$aUser = $oUser->toArray();
unset($aUser['pass']);
unset($aUser['passwd']);
unset($aUser['uuid']);
unset($aUser['method']);
unset($aUser['is_admin']);
unset($aUser['theme']);
unset($aUser['ga_token']);
unset($aUser['ga_enable']);
unset($aUser['api_token']);
unset($aUser['is_dark_mode']);
unset($aUser['locale']);
$aUser['transfer_today'] = Tools::flowToGB($aUser['transfer_today']).'GB';
$aUser['transfer_total'] = Tools::flowToGB($aUser['transfer_total']).'GB';
$aUser['transfer_enable'] = Tools::flowToGB($aUser['transfer_enable']).'GB';
$aUser['last_use_time'] = date('Y-m-d H:i:s', $aUser['last_use_time']);
} else {
$aUser = ["not have id" => $iUserId];
}
$sMsg = json_encode($aUser, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);
return $sMsg;
}
public function Report($aParam)
{
// @list(, $sOption1, $sOption2, $sOption3) = explode("_", $sText, 4);
@$sOption1 = $aParam['aOption'][1];
@$sOption2 = $aParam['aOption'][2];
@$sOption3 = $aParam['aOption'][3];
@$sOption4 = $aParam['aOption'][4];
$sMsg = '?';
if ($sOption1 == 'day') {
$sMsg = (new ServiceTgReportUser())->ByDay($sOption2);
}
if ($sOption1 == 'date') {
$sMsg = (new ServiceTgReportUser())->ByDate($sOption2, $sOption3);
}
return $sMsg;
}
public function CountReg($aParam)
{
@$sOption1 = $aParam['aOption'][1] ?? 'day';
@$sOption2 = $aParam['aOption'][2] ?? 0;
@$sOption3 = $aParam['aOption'][3];
@$sOption4 = $aParam['aOption'][4];
$sMsg = '?';
if ($sOption1 == 'day') {
$r = (new ServiceCountUser())->RegByDay($sOption2);
}
if ($sOption1 == 'date') {
$r = (new ServiceCountUser())->RegByDate($sOption2, $sOption3);
}
$sTop = "\n\n--注册统计--------------------";
$sMsg = '';
$iTotalCount = 0;
foreach ($r as $row) {
$sMsg .= "\n\n";
$sMsg .= $row['from'].":".$row['count'];
$iTotalCount += $row['count'] ?? 0;
}
$sTotal = "\n\n总数:".$iTotalCount;
$sTotal .= "\n\n---------------------------";
$sFoot = "\n\n---------------------------";
return $sTop.$sTotal.$sMsg.$sFoot;
}
}