BimController.php 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. <?php
  2. namespace App\Http\Controllers\API;
  3. use App\Http\Controllers\Controller;
  4. use App\Http\Resources\API\BimCombineResource;
  5. use App\Libraries\BIM\Glendale\Glendale;
  6. use App\Models\BimCombine;
  7. use App\Models\Library;
  8. use Illuminate\Http\Request;
  9. use Illuminate\Support\Facades\Auth;
  10. class BimController extends Controller
  11. {
  12. //模型多视图信息
  13. public function multipleViews(Request $request, Glendale $glendale)
  14. {
  15. $lightweightName = $request->input('lightweight_name', '');
  16. $data = $glendale->getModel3DViews($lightweightName);
  17. return $this->successData($data);
  18. }
  19. // 模型合并保存
  20. public function combine(Request $request)
  21. {
  22. $inputArr = $this->validate($request, [
  23. 'name' => 'required',
  24. 'library_id' => 'required',
  25. 'data' => 'required|array',
  26. 'data.*.bim_file_id' => 'required',
  27. 'data.*.offset' => 'required',
  28. 'data.*.rotate' => 'required',
  29. ]);
  30. $library = Library::query()->allowed()->findOrFail((int)$inputArr['library_id']);
  31. $bimCombine = BimCombine::create([
  32. 'company_id' => Auth::user()->company_id,
  33. 'created_by' => Auth::id(),
  34. 'library_id' => $library->id,
  35. 'name' => $inputArr['name'],
  36. 'data' => $inputArr['data']
  37. ]);
  38. return new BimCombineResource($bimCombine);
  39. }
  40. //合模列表接口
  41. public function combinedList()
  42. {
  43. $bimCombines = BimCombine::query()
  44. ->allowed()
  45. ->latest('id')->paginate();
  46. return BimCombineResource::collection($bimCombines);
  47. }
  48. }