| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126 |
- <?php
- namespace App\Http\Controllers\Canvas;
- use App\Libs\ApiResponse;
- use App\Services\Canvas\CanvasService;
- use Illuminate\Http\Request;
- use Illuminate\Routing\Controller as BaseController;
- /**
- * 画布模式控制器
- *
- * 画布:独立工作台,节点可复用全局资产库(mp_products)或动漫分集
- * (主体/场景/道具列表),节点之间无方向多对多关联。
- */
- class CanvasController extends BaseController
- {
- use ApiResponse;
- protected $CanvasService;
- public function __construct(CanvasService $CanvasService)
- {
- $this->CanvasService = $CanvasService;
- }
- // 画布列表
- public function canvasList(Request $request)
- {
- $data = $request->all();
- $result = $this->CanvasService->canvasList($data);
- return $this->success($result);
- }
- // 创建画布
- public function createCanvas(Request $request)
- {
- $data = $request->all();
- $result = $this->CanvasService->createCanvas($data);
- return $this->success($result);
- }
- // 保存画布完整文档;revision 冲突返回 409 和服务端当前 revision
- public function editCanvas(Request $request)
- {
- $data = $request->all();
- $result = $this->CanvasService->editCanvas($data);
- if (isset($result['revision_conflict']) && $result['revision_conflict']) {
- return response()->json([
- 'msg' => '画布已被其他会话修改,请拉取最新版本',
- 'code' => 409,
- 'data' => [
- 'canvas_id' => $result['canvas_id'],
- 'revision' => $result['revision']
- ]
- ], 409)->setEncodingOptions(JSON_UNESCAPED_UNICODE);
- }
- return $this->success($result);
- }
- // 删除画布
- public function delCanvas(Request $request)
- {
- $data = $request->all();
- $result = $this->CanvasService->delCanvas($data);
- return $this->success($result);
- }
- // 画布详情(画布信息 + 全部节点 + 全部关联)
- public function canvasDetail(Request $request)
- {
- $data = $request->all();
- $result = $this->CanvasService->canvasDetail($data);
- return $this->success($result);
- }
- // 保存节点(创建/更新,分镜节点同步分镜数据)
- public function saveNode(Request $request)
- {
- $data = $request->all();
- $result = $this->CanvasService->saveNode($data);
- return $this->success($result);
- }
- // 节点详情
- public function nodeInfo(Request $request)
- {
- $data = $request->all();
- $result = $this->CanvasService->nodeInfo($data);
- return $this->success($result);
- }
- // 删除节点
- public function delNode(Request $request)
- {
- $data = $request->all();
- $result = $this->CanvasService->delNode($data);
- return $this->success($result);
- }
- // 获取节点关联
- public function nodeRels(Request $request)
- {
- $data = $request->all();
- $result = $this->CanvasService->nodeRels($data);
- return $this->success($result);
- }
- // 保存节点关联(整体替换)
- public function saveRels(Request $request)
- {
- $data = $request->all();
- $result = $this->CanvasService->saveRels($data);
- return $this->success($result);
- }
- // 画布关系图(全部节点 + 全部关联)
- public function graph(Request $request)
- {
- $data = $request->all();
- $result = $this->CanvasService->graph($data);
- return $this->success($result);
- }
- }
|