|
|
@@ -31,19 +31,11 @@ trait GridHelperTrait
|
|
|
{
|
|
|
return $this->grid->column($idField, $label)->display(function ($userId) use ($usernameField) {
|
|
|
$username = $this->{$usernameField} ?? '';
|
|
|
- $avatar = $this->info ? ($this->info->avatar ?? '') : '';
|
|
|
- $nickname = $this->info ? ($this->info->nickname ?? '') : '';
|
|
|
-
|
|
|
- $avatarHtml = $avatar && $avatar !== '0' ? "<img src='{$avatar}' width='30' height='30' style='border-radius: 50%; margin-right: 5px;'>" : '';
|
|
|
|
|
|
return <<<HTML
|
|
|
- <div style="display: flex; align-items: center;">
|
|
|
- {$avatarHtml}
|
|
|
- <div>
|
|
|
- <div>ID: {$userId}</div>
|
|
|
- <div>用户名: {$username}</div>
|
|
|
- <div>昵称: {$nickname}</div>
|
|
|
- </div>
|
|
|
+ <div>
|
|
|
+ <div>ID: {$userId}</div>
|
|
|
+ <div>用户名: {$username}</div>
|
|
|
</div>
|
|
|
HTML;
|
|
|
});
|
|
|
@@ -60,27 +52,7 @@ trait GridHelperTrait
|
|
|
public function columnUserContact(string $label = '联系方式'): Column
|
|
|
{
|
|
|
return $this->grid->column('id', $label)->display(function ($userId) {
|
|
|
- // 获取用户手机号
|
|
|
- $phone = '';
|
|
|
- $userPhone = \App\Module\User\Models\UserPhone::where('user_id', $userId)
|
|
|
- ->where('status', \App\Module\User\Enums\PHONE_STATUS::BIND)
|
|
|
- ->first();
|
|
|
- if ($userPhone) {
|
|
|
- $phone = $userPhone->phone;
|
|
|
- }
|
|
|
-
|
|
|
- // 获取微信号
|
|
|
- $wxId = $this->info ? ($this->info->wx_id ?? '') : '';
|
|
|
-
|
|
|
- // 邮箱暂时没有单独的表,先留空
|
|
|
- $email = '';
|
|
|
-
|
|
|
- $phoneHtml = $phone ? "<div>手机: {$phone}</div>" : '';
|
|
|
- $emailHtml = $email ? "<div>邮箱: {$email}</div>" : '';
|
|
|
- $wxIdHtml = $wxId ? "<div>微信: {$wxId}</div>" : '';
|
|
|
-
|
|
|
- $result = $phoneHtml . $emailHtml . $wxIdHtml;
|
|
|
- return $result ?: '<span class="text-muted">无联系方式</span>';
|
|
|
+ return '<span class="text-muted">联系方式</span>';
|
|
|
});
|
|
|
}
|
|
|
|
|
|
@@ -118,26 +90,7 @@ trait GridHelperTrait
|
|
|
public function columnUserFunds(string $idField = 'id', string $label = '资金账户'): Column
|
|
|
{
|
|
|
return $this->grid->column($idField, $label)->display(function ($userId) {
|
|
|
- // 获取用户的资金账户
|
|
|
- $funds = \App\Module\Fund\Models\FundModel::where('user_id', $userId)->get();
|
|
|
-
|
|
|
- if ($funds->isEmpty()) {
|
|
|
- return '<span class="text-muted">无资金账户</span>';
|
|
|
- }
|
|
|
-
|
|
|
- $fundNames = \App\Module\Fund\Services\AccountService::getFundsDesc();
|
|
|
- $html = '<div style="max-height: 150px; overflow-y: auto;">';
|
|
|
-
|
|
|
- foreach ($funds as $fund) {
|
|
|
- $fundName = $fundNames[$fund->fund_id] ?? "未知类型({$fund->fund_id})";
|
|
|
- $balance = number_format($fund->balance / 100, 2);
|
|
|
- $html .= "<div><span class='badge badge-info'>{$fundName}</span>: {$balance}</div>";
|
|
|
- }
|
|
|
-
|
|
|
- $html .= '</div>';
|
|
|
- $html .= "<div><a href='" . admin_url("fund-accounts?user_id={$userId}") . "' class='text-primary'>查看详情</a></div>";
|
|
|
-
|
|
|
- return $html;
|
|
|
+ return '<span class="text-muted">资金账户</span>';
|
|
|
});
|
|
|
}
|
|
|
|
|
|
@@ -153,35 +106,7 @@ trait GridHelperTrait
|
|
|
public function columnUserItems(string $idField = 'id', string $label = '物品背包'): Column
|
|
|
{
|
|
|
return $this->grid->column($idField, $label)->display(function ($userId) {
|
|
|
- // 获取用户的物品(限制最多显示5个)
|
|
|
- $items = \App\Module\GameItems\Models\ItemUser::with('item')
|
|
|
- ->where('user_id', $userId)
|
|
|
- ->orderBy('quantity', 'desc')
|
|
|
- ->limit(5)
|
|
|
- ->get();
|
|
|
-
|
|
|
- if ($items->isEmpty()) {
|
|
|
- return '<span class="text-muted">无物品</span>';
|
|
|
- }
|
|
|
-
|
|
|
- $html = '<div style="max-height: 150px; overflow-y: auto;">';
|
|
|
-
|
|
|
- foreach ($items as $userItem) {
|
|
|
- $itemName = $userItem->item->name ?? "物品 {$userItem->item_id}";
|
|
|
- $quantity = $userItem->quantity;
|
|
|
- $html .= "<div><span class='badge badge-success'>{$itemName}</span> x {$quantity}</div>";
|
|
|
- }
|
|
|
-
|
|
|
- // 获取用户物品总数
|
|
|
- $totalCount = \App\Module\GameItems\Models\ItemUser::where('user_id', $userId)->count();
|
|
|
- if ($totalCount > 5) {
|
|
|
- $html .= "<div>... 共 {$totalCount} 种物品</div>";
|
|
|
- }
|
|
|
-
|
|
|
- $html .= '</div>';
|
|
|
- $html .= "<div><a href='" . admin_url("game-items-users?user_id={$userId}") . "' class='text-primary'>查看详情</a></div>";
|
|
|
-
|
|
|
- return $html;
|
|
|
+ return '<span class="text-muted">物品背包</span>';
|
|
|
});
|
|
|
}
|
|
|
|
|
|
@@ -197,44 +122,7 @@ trait GridHelperTrait
|
|
|
public function columnUserLands(string $idField = 'id', string $label = '土地信息'): Column
|
|
|
{
|
|
|
return $this->grid->column($idField, $label)->display(function ($userId) {
|
|
|
- // 获取用户的土地
|
|
|
- $lands = \App\Module\Farm\Models\FarmLand::where('user_id', $userId)->get();
|
|
|
-
|
|
|
- if ($lands->isEmpty()) {
|
|
|
- return '<span class="text-muted">无土地</span>';
|
|
|
- }
|
|
|
-
|
|
|
- // 获取土地状态统计
|
|
|
- $statusCounts = $lands->groupBy('status')->map->count();
|
|
|
-
|
|
|
- $statusMap = [
|
|
|
- \App\Module\Farm\Enums\LAND_STATUS::IDLE->value => '空闲',
|
|
|
- \App\Module\Farm\Enums\LAND_STATUS::PLANTING->value => '种植中',
|
|
|
- \App\Module\Farm\Enums\LAND_STATUS::DISASTER->value => '灾害',
|
|
|
- \App\Module\Farm\Enums\LAND_STATUS::HARVESTABLE->value => '可收获',
|
|
|
- \App\Module\Farm\Enums\LAND_STATUS::WITHERED->value => '枯萎'
|
|
|
- ];
|
|
|
-
|
|
|
- $html = '<div style="max-height: 150px; overflow-y: auto;">';
|
|
|
- $html .= "<div>总数: {$lands->count()} 块</div>";
|
|
|
-
|
|
|
- foreach ($statusCounts as $status => $count) {
|
|
|
- $statusName = $statusMap[$status] ?? "未知状态({$status})";
|
|
|
- $badgeClass = match($status) {
|
|
|
- \App\Module\Farm\Enums\LAND_STATUS::IDLE->value => 'secondary',
|
|
|
- \App\Module\Farm\Enums\LAND_STATUS::PLANTING->value => 'primary',
|
|
|
- \App\Module\Farm\Enums\LAND_STATUS::DISASTER->value => 'warning',
|
|
|
- \App\Module\Farm\Enums\LAND_STATUS::HARVESTABLE->value => 'success',
|
|
|
- \App\Module\Farm\Enums\LAND_STATUS::WITHERED->value => 'danger',
|
|
|
- default => 'info'
|
|
|
- };
|
|
|
- $html .= "<div><span class='badge badge-{$badgeClass}'>{$statusName}</span>: {$count} 块</div>";
|
|
|
- }
|
|
|
-
|
|
|
- $html .= '</div>';
|
|
|
- $html .= "<div><a href='" . admin_url("farm-lands?user_id={$userId}") . "' class='text-primary'>查看详情</a></div>";
|
|
|
-
|
|
|
- return $html;
|
|
|
+ return '<span class="text-muted">土地信息</span>';
|
|
|
});
|
|
|
}
|
|
|
|
|
|
@@ -250,34 +138,7 @@ trait GridHelperTrait
|
|
|
public function columnUserBuffs(string $idField = 'id', string $label = '神像加持'): Column
|
|
|
{
|
|
|
return $this->grid->column($idField, $label)->display(function ($userId) {
|
|
|
- // 获取用户的神像buff
|
|
|
- $buffs = \App\Module\Farm\Models\FarmGodBuff::where('user_id', $userId)
|
|
|
- ->where('expire_time', '>', now())
|
|
|
- ->get();
|
|
|
-
|
|
|
- if ($buffs->isEmpty()) {
|
|
|
- return '<span class="text-muted">无有效神像加持</span>';
|
|
|
- }
|
|
|
-
|
|
|
- $buffTypes = [
|
|
|
- \App\Module\Farm\Enums\BUFF_TYPE::HARVEST_GOD->value => '丰收之神',
|
|
|
- \App\Module\Farm\Enums\BUFF_TYPE::RAIN_GOD->value => '雨露之神',
|
|
|
- \App\Module\Farm\Enums\BUFF_TYPE::WEED_KILLER_GOD->value => '屠草之神',
|
|
|
- \App\Module\Farm\Enums\BUFF_TYPE::PEST_CLEANER_GOD->value => '拭虫之神'
|
|
|
- ];
|
|
|
-
|
|
|
- $html = '<div style="max-height: 150px; overflow-y: auto;">';
|
|
|
-
|
|
|
- foreach ($buffs as $buff) {
|
|
|
- $buffName = $buffTypes[$buff->buff_type] ?? "未知神像({$buff->buff_type})";
|
|
|
- $expireTime = $buff->expire_time->format('Y-m-d H:i:s');
|
|
|
- $html .= "<div><span class='badge badge-warning'>{$buffName}</span> 到期: {$expireTime}</div>";
|
|
|
- }
|
|
|
-
|
|
|
- $html .= '</div>';
|
|
|
- $html .= "<div><a href='" . admin_url("farm-god-buffs?user_id={$userId}") . "' class='text-primary'>查看详情</a></div>";
|
|
|
-
|
|
|
- return $html;
|
|
|
+ return '<span class="text-muted">神像加持</span>';
|
|
|
});
|
|
|
}
|
|
|
|