api.php 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314
  1. <?php
  2. use Illuminate\Http\Request;
  3. use Illuminate\Support\Facades\Route;
  4. use App\Http\Controllers\API;
  5. /*
  6. |--------------------------------------------------------------------------
  7. | API Routes
  8. |--------------------------------------------------------------------------
  9. |
  10. | Here is where you can register API routes for your application. These
  11. | routes are loaded by the RouteServiceProvider and all of them will
  12. | be assigned to the "api" middleware group. Make something great!
  13. |
  14. */
  15. Route::post("/login", [API\AuthController::class, "login"]);
  16. Route::post("/send-forget-password-email", [API\AuthController::class, "sendForgetPasswordEmail"]);
  17. Route::post("/reset-password", [API\AuthController::class, "resetPassword"]);
  18. //Route::post("register/company-user", [API\UserController::class, "registerCompanyUser"]);
  19. Route::post("register/company", [API\CompanyController::class, "registerCompany"]);
  20. Route::post("company-file-upload", [API\FileController::class, "companyUpload"]);
  21. //暂时为免登录
  22. Route::post("model-upload", [API\FileController::class, "modelUpload"])->name("file.modelUpload");
  23. Route::get("file/download/{uuid}/share-file", [API\FileController::class, "downloadShareFile"])
  24. ->name("file.download-share-file");
  25. // Route::get("test/test", [API\TestController::class, "test"]);//测试用预留
  26. Route::post("glendale/callback", [API\GlendaleController::class, "callback"])->name('glendale.callback');
  27. Route::post("glendale/sync-callback", [API\GlendaleController::class, "syncCallback"])->name('glendale.sync-callback');
  28. Route::post("bim/preview-image", [API\BimController::class, "setPreviewImage"]);
  29. Route::middleware(['auth:sanctum','account.limit'])->group(function () {
  30. //公共权限
  31. Route::post("/logout", [API\AuthController::class, "logout"]);
  32. Route::get("user/details", [API\UserController::class, 'details']);
  33. Route::get("user-items", [API\UserController::class, 'publicSearch']);
  34. Route::get("asset-tree",[API\AssetController::class, 'tree']);
  35. Route::get("asset/{asset_id}/report",[API\AssetController::class, 'report']);
  36. Route::get("asset-items",[API\AssetController::class, "publicSearch"]);
  37. Route::get("asset-group-items",[API\AssetGroupController::class, "publicSearch"]);
  38. Route::get("requirement-group-items",[API\RequirementGroupController::class, "publicSearch"]);
  39. Route::get("requirement-items",[API\RequirementController::class, "publicSearch"]);
  40. Route::get("role-items",[API\RoleController::class, "publicSearch"]);
  41. Route::get("project-by-asset",[API\ProjectController::class, "byAsset"]);
  42. Route::get("project-items",[API\ProjectController::class, "publicSearch"]);
  43. Route::get("project/{project}/project-requirement-items",[API\ProjectController::class, "publicSearchRequirement"]);
  44. Route::get("project/{project}/project-team-items", [API\TeamMemberController::class, "publicSearch"]);
  45. Route::get("task-items",[API\TaskController::class, "publicSearch"]);
  46. Route::get("project-tree",[API\ProjectController::class, 'tree']);
  47. Route::get("plan-by-assets", [API\PlanController::class, "byAssets"]);
  48. Route::get("notification", [API\NotificationController::class, "index"]);
  49. Route::get("notification/unread", [API\NotificationController::class, "unread"]);
  50. Route::post("notification/mark-as-read", [API\NotificationController::class, "markAsRead"]);
  51. Route::get("naming-rule-enabled", [API\NameRuleController::class, "enabled"]);
  52. Route::get("container-report", [API\ContainerController::class, "containerReport"]);
  53. Route::get("library", [API\LibraryController::class, "index"]);
  54. Route::get('container', [API\ContainerController::class, "index"]);
  55. Route::get("action/{object_type}/history/{object_id}", [API\ActionController::class, "history"]);
  56. Route::get("company-items", [API\CompanyController::class, "publicSearch"]);
  57. Route::get("department-items", [API\DepartmentController::class, "publicSearch"]);
  58. Route::get("container-linkage/{library_id}", [API\ContainerController::class, "linkage"]);
  59. Route::get("folder-open", [API\FolderController::class, "open"]);
  60. Route::get("folder-tree/{object_type}/{object_id}", [API\FolderController::class, "tree"]);
  61. Route::get("file/{object_type}/{object_id}", [API\FileController::class, "byObject"]);
  62. Route::get("folder/file-version-tree/{object_type}/{object_id}", [API\FolderController::class, "versionFileTreeByObject"]);
  63. Route::get("project-asset-tree/{project_id}", [API\ProjectController::class, "projectAssetTree"]);
  64. Route::get("project-requirementGroups-tree/{asset_id}", [API\ProjectController::class, "projectRequirementGroupsTree"]);
  65. Route::get("project/{project}/not-link-asset-requirement", [API\ProjectController::class, "notLinkAssetRequirement"]);
  66. Route::get("library-linkage/{type}", [API\LibraryController::class, "linkage"]);
  67. Route::get("project/{project}/latest-dynamic", [API\ProjectController::class, "latestDynamic"]);
  68. Route::get("file-upload-progress/{request_id}", [API\FileController::class, "uploadProgress"]);
  69. Route::get('plan/{plan_id}/not-link-asset-requirement',[API\PlanController::class, "notLinkAssetRequirement"]);
  70. Route::get("department-user-index",[API\DepartmentController::class,"departmentUserIndex"]);
  71. Route::get("all-last-dynamic",[API\ActionController::class,"lastDynamic"]);
  72. Route::get("approval-items",[API\ApprovalController::class, "publicSearch"]);
  73. Route::post("file-cos-token",[API\FileController::class, "getCOSToken"])->name('file.cos.token');
  74. Route::post("naming-rule/{name_rule}/parse", [API\NameRuleController::class, "parse"]);
  75. // Allow access only to admin role
  76. Route::middleware(['permission', 'role.super-admin', 'system.operation-log'])->group(function () {
  77. // Route::apiResource("company", API\CompanyController::class)->only([
  78. // 'store','destroy','show'
  79. // ]);
  80. // Route::patch("user/userInfo/{user_id}",[API\UserController::class, 'updateUserInfo'])->name('user.updateUserInfo');
  81. // Route::post("company/action",[API\CompanyController::class,"action"])->name("company.action");
  82. Route::get('system-operation-log', [API\SystemOperationLogController::class, 'index'])->name("system-operation-log.index");
  83. });
  84. Route::middleware(['permission', 'system.operation-log'])->group(function() {
  85. Route::apiResources([
  86. 'asset-group' => API\AssetGroupController::class,
  87. 'asset' => API\AssetController::class,
  88. 'requirement-group' => API\RequirementGroupController::class,
  89. 'requirement' => API\RequirementController::class,
  90. 'project' => API\ProjectController::class,
  91. 'plan' => API\PlanController::class,
  92. 'roles' => API\RoleController::class,
  93. 'custom-field' => API\CustomFieldController::class,
  94. 'naming-rule' => API\NameRuleController::class,
  95. 'task' => API\TaskController::class,
  96. // 'library' => API\LibraryController::class,
  97. 'department' => API\DepartmentController::class,
  98. 'user' => API\UserController::class,
  99. // 'container' => API\ContainerController::class,
  100. 'approval-flow' => API\ApprovalFlowController::class,
  101. 'approval' => API\ApprovalController::class,
  102. ]);
  103. Route::apiResource("company", API\CompanyController::class)->only([
  104. 'index', 'show', 'update','store','destroy'
  105. ]);
  106. Route::post("company/action",[API\CompanyController::class,"action"])->name("company.action");
  107. Route::post ("department/userList", [API\DepartmentController::class, 'userList'])->name("department.userList");
  108. Route::post ("company/structure", [API\CompanyController::class, 'structure'])->name("company.structure");
  109. Route::post ("department/structure", [API\DepartmentController::class, 'structure'])->name("department.structure");
  110. Route::apiResource("library", API\LibraryController::class)->only([
  111. 'store','update','destroy','show'
  112. ]);
  113. Route::apiResource("container", API\ContainerController::class)->only([
  114. 'store','update','destroy','show'
  115. ]);
  116. Route::get("config", [API\ConfigController::class, "index"])->name("config.index");
  117. Route::post("config-setting", [API\ConfigController::class, "setting"])->name("config.setting");
  118. Route::get("config/message-notification-setting", [API\ConfigController::class, "messageNotificationSetting"])
  119. ->name("config.message-notification-setting");
  120. Route::post("config/message-notification-setting", [API\ConfigController::class, "storeMessageNotificationSetting"])
  121. ->name("config.store-message-notification-setting");
  122. Route::get("permission", [API\PermissionController::class, 'groupPermissions'])->name("permission.group-permission");
  123. Route::get("permission/menu", [API\PermissionController::class, 'menuPermissions'])->name("permission.menu");
  124. Route::get("role/{role}/permission", [API\RoleController::class, "permissions"])->name("role.permissions");
  125. Route::put("role/{role}/assign-permission", [API\RoleController::class, "assignPermissions"])->name("role.assign-permissions");
  126. Route::put("role/{role}/assign-menus-permission", [API\RoleController::class, "assignMenusPermissions"])->name("role.assign-menus-permissions");
  127. Route::put("user/{user}/assign-role", [API\UserController::class, "assignRole"])->name("user.assign-role");
  128. Route::get("role/{role}/menus", [API\RoleController::class, "menus"])->name("role.menus");
  129. Route::post("approval/{approval}/action", [API\ApprovalController::class, 'action'])->name("approval.action");
  130. Route::patch("approval-cancel", [API\ApprovalController::class, 'cancel'])->name("approval.cancel");
  131. Route::post("approval/{approval}/copy-container-file", [API\ApprovalController::class, "copyContainerFile"])
  132. ->name("approval.copy-container-file");
  133. Route::get("asset/{asset}/dynamic", [API\AssetController::class, "dynamic"])->name("asset.dynamic");
  134. Route::patch("requirement/{requirement_id}/close",[API\RequirementController::class, 'close'])->name('requirement.close');
  135. Route::patch("requirement/{requirement_id}/start",[API\RequirementController::class, 'start'])->name('requirement.start');
  136. //Route::get("requirement/{asset_id}/asset", [API\RequirementController::class, "byAsset"])->name("requirement.byAsset");
  137. Route::patch("requirement/{plan_id}/plan", [API\RequirementController::class, "linkPlan"])->name("requirement.linkPlan");
  138. Route::patch("requirement/plan/unlink", [API\RequirementController::class, "unlinkPlan"])->name("requirement.unlinkPlan");
  139. Route::get("requirement-export", [API\RequirementController::class, "export"])->name("requirement.export");
  140. Route::post("requirement-import", [API\RequirementController::class, "import"])->name("requirement.import");
  141. Route::get("project/{project}/dynamic", [API\ProjectController::class, "dynamic"])->name("project.dynamic");
  142. Route::get("project/{project}/kanban", [API\ProjectController::class, "kanban"])->name("project.kanban");
  143. Route::get("project/{project}/group-view", [API\ProjectController::class, "groupView"])->name("project.group-view");
  144. Route::get("project/{project}/export-group-view", [API\ProjectController::class, "exportGroupView"])->name("project.export-group-view");
  145. Route::get("project/{project}/gantt", [API\ProjectController::class, "gantt"])->name("project.gantt");
  146. Route::get("project/gantt/export", [API\ProjectController::class, "ganttExport"])->name("project.gantt-export");
  147. Route::get("project/{project}/print-kanban", [API\ProjectController::class, "printKanban"])->name("project.print-kanban");
  148. Route::get("project/kanban/export", [API\ProjectController::class, "kanbanExport"])->name("project.kanban-export");
  149. Route::patch("project/{project}/closed", [API\ProjectController::class, "closed"])->name("project.closed");
  150. Route::patch("project/{project}/start", [API\ProjectController::class, "start"])->name("project.start");
  151. Route::patch("project/{project}/pause", [API\ProjectController::class, "pause"])->name("project.pause");
  152. Route::patch("project/{project}/done", [API\ProjectController::class, "done"])->name("project.done");
  153. Route::patch("project/{project}/postpone", [API\ProjectController::class, "postpone"])
  154. ->name("project.postpone");
  155. Route::patch("project/{project}/link-requirement", [API\ProjectController::class, "linkRequirement"])
  156. ->name("project.link-requirement");
  157. Route::patch("project/{project}/unlink-requirement", [API\ProjectController::class, "unlinkRequirement"])
  158. ->name("project.unlink-requirement");
  159. Route::patch("project/{project}/link-requirement-by-plan", [API\ProjectController::class, "linkRequirementByPlan"])
  160. ->name("project.link-requirement-by-plan");
  161. Route::patch("project/{project_id}/update-link-assets", [API\ProjectController::class, "updateLinkAssets"])
  162. ->name("project.update-link-assets");
  163. Route::get("project/{project}/plan", [API\ProjectController::class, "plan"])
  164. ->name("project.plan"); //项目关联计划
  165. Route::get("project/{project}/requirement", [API\ProjectController::class, "requirement"])
  166. ->name("project.requirement"); //项目需求
  167. Route::get("project-4s", [API\ProjectController::class, "project4s"])
  168. ->name("project.4s");
  169. Route::get("project-iot", [API\ProjectController::class, "iot"])
  170. ->name("project.iot");
  171. Route::get("project-iot/{siteName}/{deviceNumber}", [API\ProjectController::class, "fetchDeviceObjects"])
  172. ->name("project.fetchDeviceObjects");
  173. Route::get("project-iot/objects-values/{siteName}/{dataKey}", [API\ProjectController::class, "fetchObjectsValueMulti"])
  174. ->name("project.fetchObjectsValueMulti");
  175. // Route::get("project/{project}/not-link-asset-requirement", [API\ProjectController::class, "notLinkAssetRequirement"])
  176. // ->name("project.not-link-asset-requirement"); //项目未关联的资产需求
  177. Route::patch("task/{task}/closed", [API\TaskController::class, "closed"])->name("task.closed");
  178. Route::patch("task/{task}/start", [API\TaskController::class, "start"])->name("task.start");
  179. Route::patch("task/{task}/pause", [API\TaskController::class, "pause"])->name("task.pause");
  180. Route::patch("task/{task}/done", [API\TaskController::class, "done"])->name("task.done");
  181. Route::patch("task/{task}/cancel", [API\TaskController::class, "cancel"])->name("task.cancel");
  182. Route::patch("task/{task}/wait", [API\TaskController::class, "wait"])->name("task.wait");
  183. Route::post("task-batch-create", [API\TaskController::class, "batchStore"])->name("task.batch-store");
  184. Route::patch("task/{task}/assign", [API\TaskController::class, "assign"])->name("task.assign");
  185. Route::post("task/{task}/container", [API\TaskController::class, "linkContainer"])->name("task.link-container");
  186. Route::delete("task-container/{task_container}", [API\TaskController::class, "unlinkContainer"])->name("task.unlink-container");
  187. Route::get("task/{task}/container-to-be-linked", [API\TaskController::class, "containerToBeLinked"])->name("task.container-to-be-linked");
  188. Route::get("task-export", [API\TaskController::class, "export"])->name("task.export");
  189. Route::post("task-import", [API\TaskController::class, "import"])->name("task.import");
  190. Route::post("user/user-batch-create", [API\UserController::class, "batchStore"])->name("user.batch-create");
  191. Route::put("user/status/{status}", [API\UserController::class, "status"])->name("user.status");
  192. //Route::patch("user/update-info", [API\UserController::class, "updateInfo"])->name("user.updateInfo");
  193. Route::get("custom-field-group", [API\CustomFieldController::class, "groups"])->name("custom-field.groups");
  194. Route::get("custom-field-group/naming-rule", [API\CustomFieldController::class, "nameRuleGroups"])->name("custom-field.nameRuleGroups");
  195. Route::post("naming-rule/{naming_rule}/combination", [API\NameRuleController::class, "combinationSetting"])
  196. ->name("naming-rule.combination-setting");
  197. Route::get("naming-rule/{naming_rule}/combination/show", [API\NameRuleController::class, "combinationShow"])
  198. ->name("naming-rule.combination-show");
  199. Route::post("naming-rule/{name_rule}/autoname", [API\NameRuleController::class, "autoname"])
  200. ->name("name-rule.autoname");
  201. Route::get("naming-rule/export/custom", [API\NameRuleController::class, "exportCustom"])
  202. ->name("name-rule.export-custom");
  203. Route::post("naming-rule/import/custom", [API\NameRuleController::class, "importCustom"])
  204. ->name("name-rule.import-custom");
  205. Route::get("team-member/{project}", [API\TeamMemberController::class, "members"])->name("team-member.list");
  206. Route::delete("team-member/{team_member}", [API\TeamMemberController::class, "destroy"])->name("team-member.destroy");
  207. Route::post("team-member/{project}/manage", [API\TeamMemberController::class, "manageMembers"])->name("team-member.manage-members");
  208. Route::post("folder", [API\FolderController::class, "store"])->name("folder.store");
  209. Route::get("folder/{folder}", [API\FolderController::class, "show"])->name("folder.show");
  210. Route::patch("folder/{folder}", [API\FolderController::class, "update"])->name("folder.update");
  211. Route::delete("folder/{folder}", [API\FolderController::class, "destroy"])->name("folder.destroy");
  212. // Route::get("folder-open", [API\FolderController::class, "open"])->name("folder.open");
  213. // Route::get("folder/file-version-tree/{object_type}/{object_id}", [API\FolderController::class, "versionFileTreeByObject"])
  214. // ->name("folder.file-version-tree-by-object");
  215. Route::patch("folder/{folder}/change-name", [API\FolderController::class, "changeName"])->name("folder.change-name");
  216. Route::get("folder/search/folder-file", [API\FolderController::class, "search"])->name("folder.search-folder-file");
  217. Route::post("requirement/batch", [API\RequirementController::class, "batchStore"])->name("requirement.batchStore");
  218. //Route::get("requirement-by-assets", [API\RequirementController::class, "byAssets"])->name("requirement.by-assets");
  219. //Route::get("project-tree/{project_id}", [API\ProjectController::class, "treeIndex"])->name("project.project-tree");
  220. // Route::get("project-asset-tree/{project_id}", [API\ProjectController::class, "projectAssetTree"])->name("project.project-asset-tree");
  221. // Route::get("project-requirementGroups-tree/{asset_id}", [API\ProjectController::class, "projectRequirementGroupsTree"])->name("project.project-requirementGroups-tree");
  222. Route::get("project-link-requirements-group/{project_id}",[API\ProjectController::class, "requirementsLinkGroup"])->name("project.link-requirements-group");
  223. Route::post("action/{object_type}/comment/{object_id}", [API\ActionController::class, "comment"])->name("action.comment");
  224. Route::patch("action/{action}/comment", [API\ActionController::class, "updateComment"])->name("action.update-comment");
  225. Route::post("file-upload", [API\FileController::class, "upload"])->name("file.upload");
  226. // Route::get("file/{object_type}/{object_id}", [API\FileController::class, "byObject"])->name("file.by-object");
  227. Route::post("file/{file}/download", [API\FileController::class, "download"])->name("file.download");
  228. Route::post("file/download-zip", [API\FileController::class, "downloadZip"])->name("file.download-zip");
  229. Route::get("file/download-all-latest/{object_type}/{object_id}", [API\FileController::class, "downloadAllLatest"])
  230. ->name("file.download-all-latest");
  231. Route::patch("file/{file}/change-name", [API\FileController::class, "changeName"])->name("file.change-name");
  232. Route::delete("file/{file}/destroy", [API\FileController::class, "destroy"])->name("file.destroy");
  233. Route::post("file/keep-directory-upload", [API\FileController::class, "keepDirectoryUpload"])->name("file.keep-directory-upload");
  234. Route::delete("file/{file}/hide", [API\FileController::class, "hide"])->name("file.hide");
  235. Route::get("file-bim-view/{file}", [API\FileController::class, "bimView"])->name("file.bim-view");
  236. Route::get("file/models", [API\FileController::class, "models"])->name("file.models");
  237. Route::get("file/model-history", [API\FileController::class, "modelHistory"])->name("file.model-history");
  238. Route::get("file/{fileId}", [API\FileController::class, "detail"])->name("file.detail");
  239. Route::apiResource("file", API\FileController::class)->only([
  240. 'update'
  241. ]);
  242. Route::get("bim/multiple-views", [API\BimController::class, "multipleViews"])->name("bim.multiple-views");
  243. Route::post('bim/combine', [API\BimController::class, "combine"])->name("bim.combine");
  244. Route::put('bim/combine/{combineId}', [API\BimController::class, "combineUpdate"])->name("bim.combine-update");
  245. Route::get('bim/combined-list', [API\BimController::class, "combinedList"])->name("bim.combined-list");
  246. Route::delete('bim/combine/{combineId}', action: [API\BimController::class, "combineDelete"])->name("bim.combine-delete");
  247. Route::get("bim/comparison", [API\BimController::class, "getComparison"])->name("bim.comparison");
  248. Route::get("container-attachments", [API\ContainerController::class, "attachments"])->name("container.attachments");
  249. Route::post("share-file", [API\ShareFileController::class, "store"])->name("share-file.store");
  250. Route::delete("share-file/{share_file}", [API\ShareFileController::class, "destroy"])
  251. ->name("share-file.destroy");
  252. Route::get("share-file/{object_type}/{object_id}", [API\ShareFileController::class, "byObject"])
  253. ->name("share-file.by-object");
  254. });
  255. });