|
|
@@ -2,6 +2,7 @@
|
|
|
|
|
|
namespace App\Module\Game\AdminControllers;
|
|
|
|
|
|
+use App\Module\Game\Enums\REWARD_SOURCE_TYPE;
|
|
|
use App\Module\Game\Models\UserLog;
|
|
|
use App\Module\Game\Services\UserLogService;
|
|
|
use Dcat\Admin\Form;
|
|
|
@@ -42,20 +43,41 @@ class UserLogController extends AdminController
|
|
|
->help('用户操作的详细描述');
|
|
|
|
|
|
$grid->column('source_type', '来源类型')
|
|
|
- ->using([
|
|
|
- 'fund' => '资金',
|
|
|
- 'item' => '物品',
|
|
|
- 'farm' => '农场',
|
|
|
- 'pet' => '宠物',
|
|
|
- 'system' => '系统',
|
|
|
- ])
|
|
|
- ->label([
|
|
|
- 'fund' => 'success',
|
|
|
- 'item' => 'primary',
|
|
|
- 'farm' => 'warning',
|
|
|
- 'pet' => 'info',
|
|
|
- 'system' => 'default',
|
|
|
- ]);
|
|
|
+ ->display(function ($value) {
|
|
|
+ if (!$value) {
|
|
|
+ return '<span class="label label-default">未知</span>';
|
|
|
+ }
|
|
|
+
|
|
|
+ // 使用枚举获取名称和信息
|
|
|
+ if (REWARD_SOURCE_TYPE::isValid($value)) {
|
|
|
+ $info = REWARD_SOURCE_TYPE::getTypeInfo($value);
|
|
|
+ $name = $info['name'];
|
|
|
+ $icon = $info['icon'];
|
|
|
+ $category = $info['category'];
|
|
|
+
|
|
|
+ // 根据分类设置标签颜色
|
|
|
+ $labelColors = [
|
|
|
+ 'gameplay' => 'primary',
|
|
|
+ 'event' => 'warning',
|
|
|
+ 'daily' => 'info',
|
|
|
+ 'achievement' => 'success',
|
|
|
+ 'progression' => 'success',
|
|
|
+ 'farm' => 'warning',
|
|
|
+ 'social' => 'info',
|
|
|
+ 'shop' => 'primary',
|
|
|
+ 'promotion' => 'danger',
|
|
|
+ 'competition' => 'success',
|
|
|
+ 'special' => 'warning',
|
|
|
+ 'system' => 'default',
|
|
|
+ 'unknown' => 'default'
|
|
|
+ ];
|
|
|
+
|
|
|
+ $color = $labelColors[$category] ?? 'default';
|
|
|
+ return "<span class=\"label label-{$color}\" title=\"{$info['description']}\">{$icon} {$name}</span>";
|
|
|
+ }
|
|
|
+
|
|
|
+ return "<span class=\"label label-default\">{$value}</span>";
|
|
|
+ });
|
|
|
|
|
|
$grid->column('source_id', '来源ID');
|
|
|
|
|
|
@@ -87,14 +109,17 @@ class UserLogController extends AdminController
|
|
|
$grid->filter(function (Grid\Filter $filter) {
|
|
|
$filter->equal('user_id', '用户ID');
|
|
|
$filter->like('message', '日志消息');
|
|
|
+
|
|
|
+ // 使用枚举生成来源类型选项
|
|
|
+ $sourceTypeOptions = [];
|
|
|
+ foreach (REWARD_SOURCE_TYPE::cases() as $case) {
|
|
|
+ $info = REWARD_SOURCE_TYPE::getTypeInfo($case->value);
|
|
|
+ $sourceTypeOptions[$case->value] = $info['icon'] . ' ' . $info['name'];
|
|
|
+ }
|
|
|
+
|
|
|
$filter->equal('source_type', '来源类型')
|
|
|
- ->select([
|
|
|
- 'fund' => '资金',
|
|
|
- 'item' => '物品',
|
|
|
- 'farm' => '农场',
|
|
|
- 'pet' => '宠物',
|
|
|
- 'system' => '系统',
|
|
|
- ]);
|
|
|
+ ->select($sourceTypeOptions);
|
|
|
+
|
|
|
$filter->between('created_at', '创建时间')->datetime();
|
|
|
});
|
|
|
|
|
|
@@ -141,13 +166,18 @@ class UserLogController extends AdminController
|
|
|
->unescape();
|
|
|
|
|
|
$show->field('source_type', '来源类型')
|
|
|
- ->using([
|
|
|
- 'fund' => '资金',
|
|
|
- 'item' => '物品',
|
|
|
- 'farm' => '农场',
|
|
|
- 'pet' => '宠物',
|
|
|
- 'system' => '系统',
|
|
|
- ]);
|
|
|
+ ->as(function ($value) {
|
|
|
+ if (!$value) {
|
|
|
+ return '未知';
|
|
|
+ }
|
|
|
+
|
|
|
+ if (REWARD_SOURCE_TYPE::isValid($value)) {
|
|
|
+ $info = REWARD_SOURCE_TYPE::getTypeInfo($value);
|
|
|
+ return $info['icon'] . ' ' . $info['name'] . ' (' . $info['description'] . ')';
|
|
|
+ }
|
|
|
+
|
|
|
+ return $value;
|
|
|
+ });
|
|
|
|
|
|
$show->field('source_id', '来源ID');
|
|
|
|
|
|
@@ -180,15 +210,16 @@ class UserLogController extends AdminController
|
|
|
->rows(3)
|
|
|
->help('用户操作的详细描述');
|
|
|
|
|
|
+ // 使用枚举生成来源类型选项
|
|
|
+ $sourceTypeOptions = [];
|
|
|
+ foreach (REWARD_SOURCE_TYPE::cases() as $case) {
|
|
|
+ $info = REWARD_SOURCE_TYPE::getTypeInfo($case->value);
|
|
|
+ $sourceTypeOptions[$case->value] = $info['icon'] . ' ' . $info['name'];
|
|
|
+ }
|
|
|
+
|
|
|
$form->select('source_type', '来源类型')
|
|
|
- ->options([
|
|
|
- 'fund' => '资金',
|
|
|
- 'item' => '物品',
|
|
|
- 'farm' => '农场',
|
|
|
- 'pet' => '宠物',
|
|
|
- 'system' => '系统',
|
|
|
- ])
|
|
|
- ->help('日志来源的模块类型');
|
|
|
+ ->options($sourceTypeOptions)
|
|
|
+ ->help('日志来源的模块类型,使用标准化的奖励来源枚举');
|
|
|
|
|
|
$form->number('source_id', '来源ID')
|
|
|
->help('关联的业务记录ID');
|