no message

This commit is contained in:
hellcat 2025-04-26 19:01:05 +08:00
parent 81cd2e8387
commit d8df166f55
2 changed files with 93 additions and 23 deletions

View File

@ -313,16 +313,18 @@ final class Cron
foreach ($paidUsers as $user) { foreach ($paidUsers as $user) {
if (strtotime($user->class_expire) < time()) { if (strtotime($user->class_expire) < time()) {
$text = '你好,系统发现你的账号等级已经过期了。'; $text = '您好,系统发现您的套餐已经过期了。';
$reset_traffic = $_ENV['class_expire_reset_traffic']; $reset_traffic = $_ENV['class_expire_reset_traffic'];
if ($reset_traffic >= 0) { if ($reset_traffic >= 0) {
$user->transfer_enable = Tools::toGB($reset_traffic); $user->transfer_enable = Tools::toGB($reset_traffic);
$text .= '流量已经被重置为' . $reset_traffic . 'GB。'; $text .= '已转为免费体验帐户,赠送' . $reset_traffic . 'GB体验流量。';
} }
// todo 反水
try { try {
Notification::notifyUser($user, $_ENV['appName'] . '-你的账号等级已经过期了', $text); Notification::notifyUser($user, $_ENV['appName'] . '-您的套餐已经过期', $text);
} catch (GuzzleException|ClientExceptionInterface|TelegramSDKException $e) { } catch (GuzzleException|ClientExceptionInterface|TelegramSDKException $e) {
echo $e->getMessage() . PHP_EOL; echo $e->getMessage() . PHP_EOL;
} }
@ -333,6 +335,33 @@ final class Cron
$user->class = 0; $user->class = 0;
$user->save(); $user->save();
} }
//// 流量到期处理
// 这里只重置付费用户不重置免费用户。那么假如免费用户领了60g流量他就真的能用到没。付费用户则会连带套餐一起重置掉。
// 应该问题不大,赠送流量有关时,区分免费付费用户,对付费大方(陷阱),对免费抠门。
// 其实压根就不叠加,套餐流量直接覆盖免费流量。
// 再者,免费流量
// 总之,免费流量就是零头,无所谓重置的。
$ud = $user->u + $user->d;
if ($ud >= $user->transfer_enable && $user->class > 0) {
$sText = "你好,系统发现您的流量已用完,已转为免费体验帐户,可用每日签到获取免费流量。";
try {
Notification::notifyUser($user, $_ENV['appName'] . '-您的流量已用完', $sText);
} catch (GuzzleException|ClientExceptionInterface|TelegramSDKException $e) {
echo $e->getMessage() . PHP_EOL;
}
$user->u = 0;
$user->d = 0;
$user->transfer_today = 0;
$user->class = 0;
$user->save();
}
//// end
} }
echo Tools::toDateTime(time()) . ' 付费用户过期检测完成' . PHP_EOL; echo Tools::toDateTime(time()) . ' 付费用户过期检测完成' . PHP_EOL;

View File

@ -9,20 +9,10 @@ use App\Models\User as ModelUser;
use App\Utils\Tools; use App\Utils\Tools;
use App\Services\CountUser as ServiceCountUser; use App\Services\CountUser as ServiceCountUser;
final class User final class User extends Base
{ {
private function format($aUser)
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['pass']);
unset($aUser['passwd']); unset($aUser['passwd']);
unset($aUser['uuid']); unset($aUser['uuid']);
@ -42,6 +32,57 @@ final class User
$aUser['d'] = Tools::flowToGB($aUser['d']).'GB'; $aUser['d'] = Tools::flowToGB($aUser['d']).'GB';
$aUser['ud'] = $aUser['u'] + $aUser['d']; $aUser['ud'] = $aUser['u'] + $aUser['d'];
$aUser['last_use_time'] = date('Y-m-d H:i:s', $aUser['last_use_time']); $aUser['last_use_time'] = date('Y-m-d H:i:s', $aUser['last_use_time']);
return $aUser;
}
public function Limit($aParam)
{
// $sField = $aParam['aOption'][1];
$iLimit = $aParam['aArg'][1] ?? 5; // 默认五条
$aUser = ModelUser::where("class", '>', 0)->orderBy("id", "desc")->limit($iLimit)->get()->toArray();
foreach ($aUser as $row) {
$sMsg = json_encode($row, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);
$this->oTGHttp->sendToTG($sMsg);
}
$this->oHttp::response(200, 'ok');
}
public function Find($aParam)
{
// list(, $iUserId) = explode(" ", $sText, 2);
$iUserId = $aParam['aArg'][1];
$oUser = ModelUser::find($iUserId);
if ($oUser) {
$aUser = $oUser->toArray();
$aUser = $this->format($aUser);
// 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['u'] = Tools::flowToGB($aUser['u']).'GB';
// $aUser['d'] = Tools::flowToGB($aUser['d']).'GB';
// $aUser['ud'] = $aUser['u'] + $aUser['d'];
// $aUser['last_use_time'] = date('Y-m-d H:i:s', $aUser['last_use_time']);
} else { } else {
$aUser = ["not have id" => $iUserId]; $aUser = ["not have id" => $iUserId];
} }