system.php 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
  4. // +----------------------------------------------------------------------
  5. // | Copyright (c) 2016~2026 https://www.crmeb.com All rights reserved.
  6. // +----------------------------------------------------------------------
  7. // | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
  8. // +----------------------------------------------------------------------
  9. // | Author: CRMEB Team <admin@crmeb.com>
  10. // +----------------------------------------------------------------------
  11. use think\facade\Route;
  12. /**
  13. * 维护 相关路由
  14. */
  15. Route::group('system', function () {
  16. /** 存储配置 */
  17. Route::group(function () {
  18. //云存储列表
  19. Route::get('config/storage/save_type/:type', 'v1.setting.SystemStorage/uploadType')->name('SystemStorageUploadType')->option(['real_name' => '选择存储方式']);
  20. //云存储列表
  21. Route::get('config/storage', 'v1.setting.SystemStorage/index')->name('SystemStorageIndex')->option(['real_name' => '云存储列表']);
  22. //获取云存储创建表单
  23. Route::get('config/storage/create/:type', 'v1.setting.SystemStorage/create')->name('SystemStorageCreate')->option(['real_name' => '获取云存储创建表单']);
  24. //获取云存储配置表单
  25. Route::get('config/storage/form/:type', 'v1.setting.SystemStorage/getConfigForm')->name('getConfigForm')->option(['real_name' => '获取云存储配置表单']);
  26. //获取云存储配置
  27. Route::get('config/storage/config', 'v1.setting.SystemStorage/getConfig')->name('SystemStorageConfig')->option(['real_name' => '获取云存储配置']);
  28. //保存云存储配置
  29. Route::post('config/storage/config', 'v1.setting.SystemStorage/saveConfig')->name('SystemStorageSaveConfig')->option(['real_name' => '保存云存储配置']);
  30. //同步云存储列表
  31. Route::put('config/storage/synch/:type', 'v1.setting.SystemStorage/synch')->name('SystemStorageSynch')->option(['real_name' => '同步云存储列表']);
  32. //获取修改云存储域名表单
  33. Route::get('config/storage/domain/:id', 'v1.setting.SystemStorage/getUpdateDomainForm')->name('getUpdateDomainForm')->option(['real_name' => '获取修改云存储域名表单']);
  34. //修改云存储域名
  35. Route::post('config/storage/domain/:id', 'v1.setting.SystemStorage/updateDomain')->name('updateDomain')->option(['real_name' => '修改云存储域名']);
  36. //保存云存储数据
  37. Route::post('config/storage/:type', 'v1.setting.SystemStorage/save')->name('SystemStorageSave')->option(['real_name' => '保存云存储数据']);
  38. //删除云存储
  39. Route::delete('config/storage/:id', 'v1.setting.SystemStorage/delete')->name('SystemStorageDelete')->option(['real_name' => '删除云存储']);
  40. //修改云存储状态
  41. Route::put('config/storage/status/:id', 'v1.setting.SystemStorage/status')->name('SystemStorageStatus')->option(['real_name' => '修改云存储状态']);
  42. })->option(['parent' => 'system', 'cate_name' => '存储配置']);
  43. /** 系统日志 */
  44. Route::group(function () {
  45. //系统日志
  46. Route::get('log', 'v1.system.SystemLog/index')->name('SystemLog')->option(['real_name' => '系统日志']);
  47. //系统日志管理员搜索条件
  48. Route::get('log/search_admin', 'v1.system.SystemLog/search_admin')->option(['real_name' => '系统日志管理员搜索条件']);
  49. //文件校验
  50. Route::get('file', 'v1.system.SystemFile/index')->name('SystemFile')->option(['real_name' => '文件校验']);
  51. })->option(['parent' => 'system', 'cate_name' => '系统日志']);
  52. /** 数据备份 */
  53. Route::group(function () {
  54. //数据所有表
  55. Route::get('backup', 'v1.system.SystemDatabackup/index')->option(['real_name' => '数据库所有表']);
  56. //数据备份详情
  57. Route::get('backup/read', 'v1.system.SystemDatabackup/read')->option(['real_name' => '数据备份详情']);
  58. //更新数据表或者表字段备注
  59. Route::post('database/update_mark', 'v1.system.SystemDatabackup/updateMark')->option(['real_name' => '更新数据表或者表字段备注']);
  60. //数据备份 优化表
  61. Route::put('backup/optimize', 'v1.system.SystemDatabackup/optimize')->option(['real_name' => '数据备份优化表']);
  62. //数据备份 修复表
  63. Route::put('backup/repair', 'v1.system.SystemDatabackup/repair')->option(['real_name' => '数据备份修复表']);
  64. //数据备份 备份表
  65. Route::put('backup/backup', 'v1.system.SystemDatabackup/backup')->option(['real_name' => '数据备份备份表']);
  66. //备份记录
  67. Route::get('backup/file_list', 'v1.system.SystemDatabackup/fileList')->option(['real_name' => '数据库备份记录']);
  68. //删除备份记录
  69. Route::delete('backup/del_file', 'v1.system.SystemDatabackup/delFile')->option(['real_name' => '删除数据库备份记录']);
  70. //导入备份记录表
  71. Route::post('backup/import', 'v1.system.SystemDatabackup/import')->option(['real_name' => '导入数据库备份记录']);
  72. //下载备份记录表
  73. //Route::get('backup/download', 'v1.system.SystemDatabackup/downloadFile');
  74. })->option(['parent' => 'system', 'cate_name' => '数据备份']);
  75. /** 数据清除 */
  76. Route::group(function () {
  77. //清除用户数据
  78. Route::get('clear/:type', 'v1.system.SystemClearData/index')->option(['real_name' => '清除用户数据']);
  79. //清除缓存
  80. Route::get('refresh_cache/cache', 'v1.system.Clear/refresh_cache')->option(['real_name' => '清除系统缓存']);
  81. //清除日志
  82. Route::get('refresh_cache/log', 'v1.system.Clear/delete_log')->option(['real_name' => '清除系统日志']);
  83. //域名替换接口
  84. Route::post('replace_site_url', 'v1.system.SystemClearData/replaceSiteUrl')->option(['real_name' => '域名替换']);
  85. //获取APP版本列表
  86. Route::get('version_list', 'v1.system.AppVersion/list')->option(['real_name' => '获取APP版本列表']);
  87. //添加版本信息
  88. Route::get('version_crate/:id', 'v1.system.AppVersion/crate')->option(['real_name' => '添加版本']);
  89. //添加版本信息
  90. Route::post('version_save', 'v1.system.AppVersion/save')->option(['real_name' => '保存版本']);
  91. //删除版本信息
  92. Route::delete('version_del/:id', 'v1.system.AppVersion/del')->option(['real_name' => '删除版本']);
  93. })->option(['parent' => 'system', 'cate_name' => '数据清除']);
  94. /** 在线升级 */
  95. Route::group(function () {
  96. //升级状态
  97. Route::get('upgrade_status', 'UpgradeController/upgradeStatus')->option(['real_name' => '升级状态']);
  98. //升级包列表
  99. Route::get('upgrade/list', 'UpgradeController/upgradeList')->option(['real_name' => '升级包列表']);
  100. //可升级包列表
  101. Route::get('upgradeable/list', 'UpgradeController/upgradeableList')->option(['real_name' => '可升级包列表']);
  102. //升级协议
  103. Route::get('upgrade/agreement', 'UpgradeController/agreement')->option(['real_name' => '升级协议']);
  104. //升级记录
  105. Route::get('upgrade_log/list', 'UpgradeController/upgradeLogList')->option(['real_name' => '升级记录']);
  106. //检测文件
  107. Route::get('upgrade/check_file', 'UpgradeController/checkFile')->option(['real_name' => '检测文件']);
  108. //重新执行
  109. Route::get('upgrade/reExecute', 'UpgradeController/reExecute')->option(['real_name' => '重新执行']);
  110. //升级包下载
  111. Route::post('package_download/:package_key', 'UpgradeController/packageDownload')->option(['real_name' => '升级包下载']);
  112. //升级包下载进度
  113. Route::get('upgrade_download/progress', 'UpgradeController/downloadProgress')->option(['real_name' => '升级包下载进度']);
  114. //升级进度
  115. Route::get('upgrade_progress', 'UpgradeController/progress')->option(['real_name' => '升级进度']);
  116. //导出备份项目
  117. Route::get('upgrade_export/:id/:type', 'UpgradeController/export')->option(['real_name' => '导出备份']);
  118. // 跨版本升级接口
  119. //获取跨版本升级概览
  120. Route::get('cross_version/overview', 'UpgradeController/crossVersionOverview')->option(['real_name' => '跨版本升级概览']);
  121. //获取待升级版本列表
  122. Route::get('cross_version/pending', 'UpgradeController/pendingVersions')->option(['real_name' => '待升级版本列表']);
  123. //获取待执行的升级SQL
  124. Route::get('cross_version/pending_sql', 'UpgradeController/pendingUpgradeSql')->option(['real_name' => '待执行SQL列表']);
  125. //执行跨版本升级(单步)
  126. Route::post('cross_version/execute', 'UpgradeController/executeCrossVersionUpgrade')->option(['real_name' => '执行跨版本升级']);
  127. //一键执行全部跨版本升级
  128. Route::post('cross_version/execute_all', 'UpgradeController/executeAllCrossVersionUpgrade')->option(['real_name' => '一键升级']);
  129. //检查是否需要跨版本升级
  130. Route::get('cross_version/check', 'UpgradeController/checkCrossVersionUpgrade')->option(['real_name' => '检查跨版本升级']);
  131. //获取备份状态
  132. Route::get('cross_version/backup_status', 'UpgradeController/backupStatus')->option(['real_name' => '备份状态']);
  133. //获取升级进度
  134. Route::get('cross_version/progress', 'UpgradeController/upgradeProgress')->option(['real_name' => '升级进度']);
  135. //获取可回退的版本列表
  136. Route::get('rollback/versions', 'UpgradeController/rollbackVersions')->option(['real_name' => '可回退版本列表']);
  137. //执行版本回退
  138. Route::post('rollback/execute', 'UpgradeController/executeRollback')->option(['real_name' => '执行版本回退']);
  139. })->option(['parent' => 'system', 'cate_name' => '在线升级']);
  140. /** 定时任务 */
  141. Route::group(function () {
  142. //定时任务列表
  143. Route::get('crontab/list', 'v1.system.SystemCrontab/getTimerList')->option(['real_name' => '定时任务列表']);
  144. //定时任务类型
  145. Route::get('crontab/mark', 'v1.system.SystemCrontab/getMarkList')->option(['real_name' => '定时任务类型']);
  146. //定时任务详情
  147. Route::get('crontab/info/:id', 'v1.system.SystemCrontab/getTimerInfo')->option(['real_name' => '定时任务详情']);
  148. //定时任务添加编辑
  149. Route::post('crontab/save', 'v1.system.SystemCrontab/saveTimer')->option(['real_name' => '定时任务添加编辑']);
  150. //删除定时任务
  151. Route::delete('crontab/del/:id', 'v1.system.SystemCrontab/delTimer')->option(['real_name' => '删除定时任务']);
  152. //定时任务是否开启开关
  153. Route::get('crontab/set_open/:id/:is_open', 'v1.system.SystemCrontab/setTimerStatus')->option(['real_name' => '定时任务是否开启开关']);
  154. })->option(['parent' => 'system', 'cate_name' => '定时任务']);
  155. /** 自定事件 */
  156. Route::group(function () {
  157. //定时任务列表
  158. Route::get('event/list', 'v1.system.SystemEvent/getEventList')->option(['real_name' => '自定事件列表']);
  159. //定时任务类型
  160. Route::get('event/mark', 'v1.system.SystemEvent/getMarkList')->option(['real_name' => '自定事件类型']);
  161. //定时任务详情
  162. Route::get('event/info/:id', 'v1.system.SystemEvent/getEventInfo')->option(['real_name' => '自定事件详情']);
  163. //定时任务添加编辑
  164. Route::post('event/save', 'v1.system.SystemEvent/saveEvent')->option(['real_name' => '自定事件添加编辑']);
  165. //删除定时任务
  166. Route::delete('event/del/:id', 'v1.system.SystemEvent/delEvent')->option(['real_name' => '删除自定事件']);
  167. //定时任务是否开启开关
  168. Route::get('event/set_open/:id/:is_open', 'v1.system.SystemEvent/setEventStatus')->option(['real_name' => '自定事件是否开启开关']);
  169. })->option(['parent' => 'system', 'cate_name' => '自定事件']);
  170. /** 系统路由 */
  171. Route::group(function () {
  172. //同步路由接口
  173. Route::get('route/sync_route/[:appName]', 'v1.setting.SystemRoute/syncRoute')->option(['real_name' => '同步路由']);
  174. //获取路由tree行数据
  175. Route::get('route/tree', 'v1.setting.SystemRoute/tree')->option(['real_name' => '获取路由tree']);
  176. //权限路由
  177. Route::delete('route/:id', 'v1.setting.SystemRoute/delete')->option(['real_name' => '删除路由权限']);
  178. //查看路由权限
  179. Route::get('route/:id', 'v1.setting.SystemRoute/read')->option(['real_name' => '查看路由权限']);
  180. //保存路由权限
  181. Route::post('route/:id', 'v1.setting.SystemRoute/save')->option(['real_name' => '保存路由权限']);
  182. //路由分类
  183. Route::resource('route_cate', 'v1.setting.SystemRouteCate')->except(['read'])->option([
  184. 'real_name' => [
  185. 'index' => '获取路由分类列表',
  186. 'create' => '获取创建路由分类表单',
  187. 'save' => '保存路由分类',
  188. 'edit' => '获取修改路由分类表单',
  189. 'update' => '修改路由分类',
  190. 'delete' => '删除路由分类'
  191. ],
  192. ]);
  193. })->option(['parent' => 'system', 'cate_name' => '系统路由']);
  194. /** 代码生成 */
  195. Route::group(function () {
  196. //保存CRUD修改的文件
  197. Route::post('crud/save_file/:id', 'v1.setting.SystemCrud/savefile')->option(['real_name' => '保存CRUD修改的文件']);
  198. //获取CRUD配置
  199. Route::get('crud/config/:tableName', 'v1.setting.SystemCrud/getRouteList')->option(['real_name' => '获取CRUD配置']);
  200. //下载生成的文件
  201. Route::get('crud/download/:id', 'v1.setting.SystemCrud/download')->option(['real_name' => '下载生成的文件']);
  202. //获取CRUD列表
  203. Route::get('crud/column_type', 'v1.setting.SystemCrud/columnType')->option(['real_name' => '获取CRUD列表']);
  204. //获取菜单TREE形数据
  205. Route::get('crud/menus', 'v1.setting.SystemCrud/getMenus')->option(['real_name' => '获取菜单TREE形数据']);
  206. //获取CRUD文件存放
  207. Route::post('crud/file_path', 'v1.setting.SystemCrud/getFilePath')->option(['real_name' => '获取CRUD文件存放']);
  208. //获取数据字典列表
  209. Route::get('crud/data_dictionary_list', 'v1.setting.SystemCrud/dataDictionaryList')->option(['real_name' => '获取数据字典列表']);
  210. //获取数据字典添加修改表单
  211. Route::get('crud/data_dictionary_list/create/:id', 'v1.setting.SystemCrud/dataDictionaryListCreate')->option(['real_name' => '获取数据字典添加修改表单']);
  212. //保存数据字典
  213. Route::post('crud/data_dictionary_list/save/:id', 'v1.setting.SystemCrud/dataDictionaryListSave')->option(['real_name' => '保存数据字典']);
  214. //删除数据字典
  215. Route::delete('crud/data_dictionary_list/del/:id', 'v1.setting.SystemCrud/dataDictionaryListDel')->option(['real_name' => '删除数据字典']);
  216. //查看数据字典内容列表
  217. Route::get('crud/data_dictionary/info_list/:cid', 'v1.setting.SystemCrud/dataDictionaryInfoList')->option(['real_name' => '查看数据字典内容列表']);
  218. //查看数据字典内容添加修改表单
  219. Route::get('crud/data_dictionary/info_create/:cid/:id/:pid', 'v1.setting.SystemCrud/dataDictionaryInfoCreate')->option(['real_name' => '查看数据字典内容添加修改表单']);
  220. //修改或者保存字典数据内容
  221. Route::post('crud/data_dictionary/info_save/:cid/:id', 'v1.setting.SystemCrud/dataDictionaryInfoSave')->option(['real_name' => '修改或者保存字典数据内容']);
  222. //删除数据字典内容
  223. Route::delete('crud/data_dictionary/info_del/:id', 'v1.setting.SystemCrud/dataDictionaryInfoDel')->option(['real_name' => '删除数据字典内容']);
  224. //获取数据字典列表
  225. Route::get('crud/data_dictionary', 'v1.setting.SystemCrud/getDataDictionary')->option(['real_name' => '获取数据字典列表']);
  226. //查看数据字典
  227. Route::get('crud/data_dictionary/:id', 'v1.setting.SystemCrud/getDataDictionaryOne')->option(['real_name' => '查看数据字典']);
  228. //修改或者保存字典数据
  229. Route::post('crud/data_dictionary/[:id]', 'v1.setting.SystemCrud/saveDataDictionary')->option(['real_name' => '修改或者保存字典数据']);
  230. //删除数据字典
  231. Route::delete('crud/data_dictionary/:id', 'v1.setting.SystemCrud/deleteDataDictionary')->option(['real_name' => '删除数据字典']);
  232. //获取可以进行关联的表名
  233. Route::get('crud/association_table', 'v1.setting.SystemCrud/getAssociationTable')->option(['real_name' => '获取可以进行关联的表名']);
  234. //获取表的详细信息
  235. Route::get('crud/association_table/:tableName', 'v1.setting.SystemCrud/getAssociationTableInfo')->option(['real_name' => '获取表的详细信息']);
  236. //删除CRUD
  237. Route::delete('crud/:id', 'v1.setting.SystemCrud/delete')->option(['real_name' => '删除CRUD']);
  238. //查看CRUD
  239. Route::get('crud/:id', 'v1.setting.SystemCrud/read')->option(['real_name' => '查看CRUD']);
  240. //获取CRUD列表
  241. Route::get('crud', 'v1.setting.SystemCrud/index')->option(['real_name' => '获取CRUD列表']);
  242. //保存生成CRUD
  243. Route::post('crud', 'v1.setting.SystemCrud/save')->option(['real_name' => '保存生成CRUD']);
  244. })->option(['parent' => 'system', 'cate_name' => '代码生成']);
  245. /** 小票打印 */
  246. Route::group(function () {
  247. Route::get('ticket/list', 'v1.system.SystemTicket/ticketList')->option(['real_name' => '小票打印列表']);
  248. Route::get('ticket/form/:id', 'v1.system.SystemTicket/ticketForm')->option(['real_name' => '添加修改小票打印表单']);
  249. Route::post('ticket/save/:id', 'v1.system.SystemTicket/ticketSave')->option(['real_name' => '添加修改小票打印']);
  250. Route::post('ticket/set_status/:id/:status', 'v1.system.SystemTicket/ticketSetStatus')->option(['real_name' => '修改小票打印状态']);
  251. Route::delete('ticket/del/:id', 'v1.system.SystemTicket/ticketDel')->option(['real_name' => '删除小票打印']);
  252. Route::get('ticket/content/:id', 'v1.system.SystemTicket/ticketContent')->option(['real_name' => '获取小票打印详情']);
  253. Route::post('ticket/save_content/:id', 'v1.system.SystemTicket/ticketContentSave')->option(['real_name' => '保存小票打印详情']);
  254. })->option(['parent' => 'system', 'cate_name' => '小票打印']);
  255. /** 文件管理 */
  256. Route::group(function () {
  257. //文件管理登录
  258. Route::post('file/login', 'v1.system.SystemFile/login')->option(['real_name' => '文件管理登录']);
  259. //执行写入app、crmeb这两个文件夹的所有文件的md5值写入数据库
  260. Route::get('write_md5', 'v1.system.SystemFile/writeMd5')->option(['real_name' => '执行写入md5值']);
  261. })->option(['parent' => 'system', 'cate_name' => '文件管理']);
  262. })->middleware([
  263. \app\http\middleware\AllowOriginMiddleware::class,
  264. \app\adminapi\middleware\AdminAuthTokenMiddleware::class,
  265. \app\adminapi\middleware\AdminCheckRoleMiddleware::class,
  266. \app\adminapi\middleware\AdminLogMiddleware::class
  267. ])->option(['mark' => 'system', 'mark_name' => '系统维护']);
  268. Route::group('system', function () {
  269. //打开目录
  270. Route::get('file/opendir', 'v1.system.SystemFile/opendir')->option(['real_name' => '打开目录']);
  271. //读取文件
  272. Route::get('file/openfile', 'v1.system.SystemFile/openfile')->option(['real_name' => '读取文件']);
  273. //保存文件
  274. Route::post('file/savefile', 'v1.system.SystemFile/savefile')->option(['real_name' => '保存文件']);
  275. //创建文件夹
  276. Route::get('file/createFolder', 'v1.system.SystemFile/createFolder')->option(['real_name' => '创建文件夹']);
  277. //创建文件
  278. Route::get('file/createFile', 'v1.system.SystemFile/createFile')->option(['real_name' => '创建文件']);
  279. //删除文件夹或者文件
  280. Route::get('file/delFolder', 'v1.system.SystemFile/delFolder')->option(['real_name' => '删除文件夹']);
  281. //重命名文件
  282. Route::get('file/rename', 'v1.system.SystemFile/rename')->option(['real_name' => '重命名文件夹']);
  283. //目录文件备注表单
  284. Route::get('file/mark', 'v1.system.SystemFile/fileMark')->option(['real_name' => '目录文件备注表单']);
  285. //目录文件备注保存
  286. Route::post('file/mark/save', 'v1.system.SystemFile/fileMarkSave')->option(['real_name' => '目录文件备注保存']);
  287. })->middleware([
  288. \app\http\middleware\AllowOriginMiddleware::class,
  289. \app\adminapi\middleware\AdminAuthTokenMiddleware::class,
  290. \app\adminapi\middleware\AdminCheckRoleMiddleware::class,
  291. \app\adminapi\middleware\AdminEditorTokenMiddleware::class,
  292. \app\adminapi\middleware\AdminLogMiddleware::class
  293. ])->option(['mark' => 'system_file', 'mark_name' => '文件管理']);