112 lines
3.2 KiB
PHP
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;
|
|
}
|
|
|
|
}
|