| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- <?php
- namespace App\Module\Game\AdminControllers\Actions;
- use App\Module\Game\Models\GameConsumeItem;
- use Dcat\Admin\Grid\RowAction;
- use Illuminate\Http\Request;
- use Illuminate\Support\Facades\DB;
- /**
- * 复制消耗项行操作
- */
- class DuplicateConsumeItemAction extends RowAction
- {
- /**
- * 按钮标题
- *
- * @var string
- */
- protected $title = '<i class="fa fa-copy"></i> 复制';
- /**
- * 处理请求
- *
- * @param Request $request
- * @return \Dcat\Admin\Actions\Response
- */
- public function handle(Request $request)
- {
- // 获取当前行ID
- $id = $this->getKey();
-
- // 查找原消耗项
- $originalItem = GameConsumeItem::find($id);
- if (!$originalItem) {
- return $this->response()->error('消耗项不存在');
- }
-
- // 开启事务
- DB::beginTransaction();
-
- try {
- // 创建新消耗项
- $newItem = new GameConsumeItem();
- $newItem->group_id = $originalItem->group_id;
- $newItem->consume_type = $originalItem->consume_type;
- $newItem->target_id = $originalItem->target_id;
- $newItem->param1 = $originalItem->param1;
- $newItem->param2 = $originalItem->param2;
- $newItem->quantity = $originalItem->quantity;
- $newItem->extra_data = $originalItem->extra_data;
- $newItem->save();
-
- DB::commit();
-
- return $this->response()
- ->success('复制成功')
- ->refresh();
- } catch (\Exception $e) {
- DB::rollBack();
- return $this->response()->error('复制失败: ' . $e->getMessage());
- }
- }
-
- /**
- * 确认信息
- *
- * @return string
- */
- public function confirm()
- {
- return '确定要复制这个消耗项吗?';
- }
- }
|