复制'; /** * 处理请求 * * @param Request $request * @return \Dcat\Admin\Actions\Response */ public function handle(Request $request) { // 获取当前行ID $id = $this->getKey(); // 查找原奖励项 $originalItem = GameRewardItem::find($id); if (!$originalItem) { return $this->response()->error('奖励项不存在'); } // 开启事务 DB::beginTransaction(); try { // 创建新奖励项 $newItem = new GameRewardItem(); $newItem->group_id = $originalItem->group_id; $newItem->reward_type = $originalItem->reward_type; $newItem->target_id = $originalItem->target_id; $newItem->param1 = $originalItem->param1; $newItem->param2 = $originalItem->param2; $newItem->quantity = $originalItem->quantity; $newItem->min_quantity = $originalItem->min_quantity; $newItem->max_quantity = $originalItem->max_quantity; $newItem->weight = $originalItem->weight; $newItem->probability = $originalItem->probability; $newItem->is_guaranteed = $originalItem->is_guaranteed; $newItem->extra_data = $originalItem->extra_data; $newItem->save(); DB::commit(); return $this->response() ->success("复制成功 [ID: {$newItem->id}]") ->refresh(); } catch (\Exception $e) { DB::rollBack(); return $this->response()->error('复制失败: ' . $e->getMessage()); } } /** * 确认信息 * * @return array */ public function confirm() { return ['确定要复制这个奖励项吗?', '复制操作将在同一奖励组中创建一个新的奖励项记录']; } }