|
|
@@ -38,12 +38,20 @@ class GameRewardGroupController extends AdminController
|
|
|
protected function grid()
|
|
|
{
|
|
|
return Grid::make(new GameRewardGroupRepository(), function (Grid $grid) {
|
|
|
+ // 预加载奖励项关联数据
|
|
|
+ $grid->model()->with('rewardItems');
|
|
|
$grid->column('id', 'ID')->sortable();
|
|
|
$grid->column('name', '名称');
|
|
|
$grid->column('code', '编码');
|
|
|
$grid->column('description', '描述')->limit(30);
|
|
|
- $grid->column('is_random', '随机发放')->switch();
|
|
|
+ $grid->column('is_random', '随机发放')->bool(['否', '是']);
|
|
|
$grid->column('random_count', '随机数量');
|
|
|
+
|
|
|
+ // 奖励详情列
|
|
|
+ $grid->column('reward_details', '奖励详情')->display(function () {
|
|
|
+ return $this->formatRewardDetails();
|
|
|
+ })->width(300);
|
|
|
+
|
|
|
$grid->column('created_at', '创建时间');
|
|
|
$grid->column('updated_at', '更新时间');
|
|
|
|
|
|
@@ -76,9 +84,7 @@ class GameRewardGroupController extends AdminController
|
|
|
$show->field('name', '名称');
|
|
|
$show->field('code', '编码');
|
|
|
$show->field('description', '描述');
|
|
|
- $show->field('is_random', '随机发放')->as(function ($value) {
|
|
|
- return $value ? '是' : '否';
|
|
|
- });
|
|
|
+ $show->field('is_random', '随机发放')->using([0 => '否', 1 => '是']);
|
|
|
$show->field('random_count', '随机数量');
|
|
|
$show->field('created_at', '创建时间');
|
|
|
$show->field('updated_at', '更新时间');
|
|
|
@@ -86,60 +92,34 @@ class GameRewardGroupController extends AdminController
|
|
|
// 显示奖励项
|
|
|
$show->divider();
|
|
|
|
|
|
- // 保存控制器实例的引用,以便在闭包中使用
|
|
|
- $controller = $this;
|
|
|
-
|
|
|
- $show->field('奖励项')->unescape()->as(function () use ($controller) {
|
|
|
- $items = GameRewardItem::where('group_id', $this->getKey())->get();
|
|
|
- if ($items->isEmpty()) {
|
|
|
- return '无奖励项';
|
|
|
- }
|
|
|
-
|
|
|
- $headers = ['ID', '奖励类型', '奖励内容', '数量', '权重', '必中'];
|
|
|
- $rows = [];
|
|
|
-
|
|
|
- foreach ($items as $item) {
|
|
|
- // 根据奖励类型获取实际内容,使用控制器实例调用方法
|
|
|
- $rewardContent = $controller->getRewardContent($item);
|
|
|
-
|
|
|
- $rows[] = [
|
|
|
- $item->id,
|
|
|
- REWARD_TYPE::getName($item->reward_type),
|
|
|
- $rewardContent,
|
|
|
- $item->quantity,
|
|
|
- $item->weight,
|
|
|
- $item->is_guaranteed ? '是' : '否'
|
|
|
- ];
|
|
|
- }
|
|
|
-
|
|
|
- // 创建HTML表格
|
|
|
- $html = '<div class="table-responsive"><table class="table table-bordered">';
|
|
|
-
|
|
|
- // 添加表头
|
|
|
- $html .= '<thead><tr>';
|
|
|
- foreach ($headers as $header) {
|
|
|
- $html .= "<th>{$header}</th>";
|
|
|
- }
|
|
|
- $html .= '</tr></thead>';
|
|
|
-
|
|
|
- // 添加表体
|
|
|
- $html .= '<tbody>';
|
|
|
- foreach ($rows as $row) {
|
|
|
- $html .= '<tr>';
|
|
|
- foreach ($row as $cell) {
|
|
|
- $html .= "<td>{$cell}</td>";
|
|
|
- }
|
|
|
- $html .= '</tr>';
|
|
|
- }
|
|
|
- $html .= '</tbody>';
|
|
|
-
|
|
|
- $html .= '</table></div>';
|
|
|
-
|
|
|
- return $html;
|
|
|
- });
|
|
|
+ $show->field('奖励项', '奖励项')->value('暂时移除,等修复错误后再添加');
|
|
|
});
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 获取奖励类型名称
|
|
|
+ *
|
|
|
+ * @param int $rewardType 奖励类型
|
|
|
+ * @return string 奖励类型名称
|
|
|
+ */
|
|
|
+ public function getRewardTypeName(int $rewardType): string
|
|
|
+ {
|
|
|
+ switch ($rewardType) {
|
|
|
+ case REWARD_TYPE::ITEM->value:
|
|
|
+ return '物品';
|
|
|
+ case REWARD_TYPE::CURRENCY->value:
|
|
|
+ return '货币';
|
|
|
+ case REWARD_TYPE::PET_EXP->value:
|
|
|
+ return '宠物经验';
|
|
|
+ case REWARD_TYPE::PET_ENERGY->value:
|
|
|
+ return '宠物体力';
|
|
|
+ case REWARD_TYPE::OTHER->value:
|
|
|
+ return '其他';
|
|
|
+ default:
|
|
|
+ return '未知';
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 根据奖励项获取实际内容描述
|
|
|
*
|