|
|
@@ -6,6 +6,8 @@ use App\Module\Game\AdminControllers\Actions\DuplicateRewardGroupAction;
|
|
|
use App\Module\Game\Enums\REWARD_TYPE;
|
|
|
use App\Module\Game\Models\GameRewardItem;
|
|
|
use App\Module\Game\Repositorys\GameRewardGroupRepository;
|
|
|
+use App\Module\GameItems\Models\Item;
|
|
|
+use App\Module\Fund\Models\FundCurrencyModel;
|
|
|
use Dcat\Admin\Form;
|
|
|
use Dcat\Admin\Grid;
|
|
|
use Dcat\Admin\Show;
|
|
|
@@ -88,16 +90,17 @@ class GameRewardGroupController extends AdminController
|
|
|
return '无奖励项';
|
|
|
}
|
|
|
|
|
|
- $headers = ['ID', '奖励类型', '目标ID', '参数1', '参数2', '数量', '权重', '必中'];
|
|
|
+ $headers = ['ID', '奖励类型', '奖励内容', '数量', '权重', '必中'];
|
|
|
$rows = [];
|
|
|
|
|
|
foreach ($items as $item) {
|
|
|
+ // 根据奖励类型获取实际内容
|
|
|
+ $rewardContent = $this->getRewardContent($item);
|
|
|
+
|
|
|
$rows[] = [
|
|
|
$item->id,
|
|
|
REWARD_TYPE::getName($item->reward_type),
|
|
|
- $item->target_id,
|
|
|
- $item->param1,
|
|
|
- $item->param2,
|
|
|
+ $rewardContent,
|
|
|
$item->quantity,
|
|
|
$item->weight,
|
|
|
$item->is_guaranteed ? '是' : '否'
|
|
|
@@ -132,6 +135,83 @@ class GameRewardGroupController extends AdminController
|
|
|
});
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 根据奖励项获取实际内容描述
|
|
|
+ *
|
|
|
+ * @param GameRewardItem $item 奖励项
|
|
|
+ * @return string 奖励内容描述
|
|
|
+ */
|
|
|
+ protected function getRewardContent(GameRewardItem $item): string
|
|
|
+ {
|
|
|
+ switch ($item->reward_type) {
|
|
|
+ case REWARD_TYPE::ITEM->value:
|
|
|
+ // 物品奖励
|
|
|
+ try {
|
|
|
+ $gameItem = Item::find($item->target_id);
|
|
|
+ if ($gameItem) {
|
|
|
+ $content = "<strong>{$gameItem->name}</strong> (ID: {$item->target_id})";
|
|
|
+
|
|
|
+ // 添加参数说明
|
|
|
+ $params = [];
|
|
|
+ if ($item->param1 > 0) {
|
|
|
+ $params[] = "品质: {$item->param1}";
|
|
|
+ }
|
|
|
+ if ($item->param2 > 0) {
|
|
|
+ $params[] = "绑定: {$item->param2}";
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!empty($params)) {
|
|
|
+ $content .= "<br><small>" . implode(', ', $params) . "</small>";
|
|
|
+ }
|
|
|
+
|
|
|
+ return $content;
|
|
|
+ }
|
|
|
+ } catch (\Exception $e) {
|
|
|
+ // 忽略异常,返回默认内容
|
|
|
+ }
|
|
|
+ return "物品 (ID: {$item->target_id})";
|
|
|
+
|
|
|
+ case REWARD_TYPE::CURRENCY->value:
|
|
|
+ // 货币奖励
|
|
|
+ try {
|
|
|
+ $currency = FundCurrencyModel::find($item->target_id);
|
|
|
+ if ($currency) {
|
|
|
+ $content = "<strong>{$currency->name}</strong> (ID: {$item->target_id})";
|
|
|
+
|
|
|
+ // 添加参数说明
|
|
|
+ $params = [];
|
|
|
+ if ($item->param1 > 0) {
|
|
|
+ $params[] = "来源: {$item->param1}";
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!empty($params)) {
|
|
|
+ $content .= "<br><small>" . implode(', ', $params) . "</small>";
|
|
|
+ }
|
|
|
+
|
|
|
+ return $content;
|
|
|
+ }
|
|
|
+ } catch (\Exception $e) {
|
|
|
+ // 忽略异常,返回默认内容
|
|
|
+ }
|
|
|
+ return "货币 (ID: {$item->target_id})";
|
|
|
+
|
|
|
+ case REWARD_TYPE::PET_EXP->value:
|
|
|
+ // 宠物经验奖励
|
|
|
+ return "宠物经验 (宠物ID: {$item->target_id})";
|
|
|
+
|
|
|
+ case REWARD_TYPE::PET_ENERGY->value:
|
|
|
+ // 宠物体力奖励
|
|
|
+ return "宠物体力 (宠物ID: {$item->target_id})";
|
|
|
+
|
|
|
+ case REWARD_TYPE::OTHER->value:
|
|
|
+ // 其他奖励
|
|
|
+ return "其他奖励 (ID: {$item->target_id})";
|
|
|
+
|
|
|
+ default:
|
|
|
+ return "未知奖励类型 (ID: {$item->target_id})";
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 创建表单
|
|
|
*
|