deploy: auto commit repo-root changes 2026-06-13 12:42:06

This commit is contained in:
hajimi
2026-06-13 12:42:06 +08:00
parent ed1733e49d
commit 127475e539
2 changed files with 92 additions and 2 deletions
+22 -2
View File
@@ -17,6 +17,7 @@ use app\adminapi\lists\BaseAdminDataLists;
use app\common\enum\user\UserTerminalEnum;
use app\common\lists\ListsExcelInterface;
use app\common\model\user\User;
use app\common\service\user\UserAccountTypeService;
/**
@@ -36,6 +37,9 @@ class UserLists extends BaseAdminDataLists implements ListsExcelInterface
public function setSearch(): array
{
$allowSearch = ['keyword', 'channel', 'create_time_start', 'create_time_end'];
if (($this->params['account_scope'] ?? '') === UserAccountTypeService::SCOPE_SYSTEM) {
$allowSearch = array_diff($allowSearch, ['channel']);
}
return array_intersect(array_keys($this->params), $allowSearch);
}
@@ -52,13 +56,15 @@ class UserLists extends BaseAdminDataLists implements ListsExcelInterface
public function lists(): array
{
$field = "id,sn,nickname,sex,avatar,account,mobile,channel,user_money,user_points,create_time";
$lists = User::withSearch($this->setSearch(), $this->params)
$lists = $this->buildQuery()
->limit($this->limitOffset, $this->limitLength)
->field($field)
->order('id desc')
->select()->toArray();
foreach ($lists as &$item) {
$accountType = UserAccountTypeService::resolveType($item);
$item = array_merge($item, $accountType);
$item['channel'] = UserTerminalEnum::getTermInalDesc($item['channel']);
}
@@ -74,7 +80,7 @@ class UserLists extends BaseAdminDataLists implements ListsExcelInterface
*/
public function count(): int
{
return User::withSearch($this->setSearch(), $this->params)->count();
return $this->buildQuery()->count();
}
@@ -103,9 +109,23 @@ class UserLists extends BaseAdminDataLists implements ListsExcelInterface
'nickname' => '用户昵称',
'account' => '账号',
'mobile' => '手机号码',
'account_scope_desc' => '账号归属',
'account_type_desc' => '账号类型',
'channel' => '注册来源',
'create_time' => '注册时间',
];
}
protected function buildQuery()
{
$query = User::withSearch($this->setSearch(), $this->params);
$accountScope = (string) ($this->params['account_scope'] ?? '');
if ($accountScope === UserAccountTypeService::SCOPE_REGISTERED) {
$query->whereIn('channel', UserAccountTypeService::registeredChannels());
} elseif ($accountScope === UserAccountTypeService::SCOPE_SYSTEM) {
$query->whereNotIn('channel', UserAccountTypeService::registeredChannels());
}
return $query;
}
}
@@ -0,0 +1,70 @@
<?php
namespace app\common\service\user;
use app\common\enum\user\UserTerminalEnum;
class UserAccountTypeService
{
public const SCOPE_REGISTERED = 'registered';
public const SCOPE_SYSTEM = 'system';
public const TYPE_REGISTERED = 'registered';
public const TYPE_COMMENT = 'comment';
public const TYPE_TRUMP = 'trump';
public const TYPE_LOTTERY = 'lottery';
public const TYPE_SYSTEM = 'system';
public static function registeredChannels(): array
{
return UserTerminalEnum::ALL_TERMINAL;
}
public static function isRegisteredAccount(array $user): bool
{
return in_array((int) ($user['channel'] ?? 0), self::registeredChannels(), true);
}
public static function isSystemAccount(array $user): bool
{
return !self::isRegisteredAccount($user);
}
public static function resolveType(array $user): array
{
$account = trim((string) ($user['account'] ?? ''));
$lowerAccount = strtolower($account);
if (self::isRegisteredAccount($user)) {
return [
'account_scope' => self::SCOPE_REGISTERED,
'account_scope_desc' => '自注册账号',
'account_type' => self::TYPE_REGISTERED,
'account_type_desc' => '自注册账号',
'is_system_account' => 0,
];
}
if (str_starts_with($account, 'ai_comment_')) {
$type = self::TYPE_COMMENT;
$desc = '评论账号';
} elseif ($account === 'realDonaldTrump' || str_contains($lowerAccount, 'trump') || str_contains($lowerAccount, 'truth')) {
$type = self::TYPE_TRUMP;
$desc = '特朗普特殊账号';
} elseif (str_contains($lowerAccount, 'lottery')) {
$type = self::TYPE_LOTTERY;
$desc = '彩票账号';
} else {
$type = self::TYPE_SYSTEM;
$desc = '系统账号';
}
return [
'account_scope' => self::SCOPE_SYSTEM,
'account_scope_desc' => '系统账号',
'account_type' => $type,
'account_type_desc' => $desc,
'is_system_account' => 1,
];
}
}