router.go 9.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270
  1. package router
  2. import (
  3. "device-manage/app/admin/apis/business"
  4. "device-manage/app/admin/middleware"
  5. "device-manage/pkg/jwtauth"
  6. jwt "device-manage/pkg/jwtauth"
  7. "github.com/gin-gonic/gin"
  8. _ "github.com/gin-gonic/gin"
  9. )
  10. var (
  11. routerNoCheckRole = make([]func(*gin.RouterGroup), 0)
  12. routerCheckRole = make([]func(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware), 0)
  13. )
  14. // 路由示例
  15. func InitBusinessRouter(r *gin.Engine, authMiddleware *jwt.GinJWTMiddleware) *gin.Engine {
  16. // 无需认证的路由
  17. businessNoCheckRoleRouter(r)
  18. // 需要认证的路由
  19. businessCheckRoleRouter(r, authMiddleware)
  20. return r
  21. }
  22. // 无需认证的路由示例
  23. func businessNoCheckRoleRouter(r *gin.Engine) {
  24. // 可根据业务需求来设置接口版本
  25. v1 := r.Group("/api/v1")
  26. // 空接口防止v1定义无使用报错
  27. v1.GET("/nilcheckrole", nil)
  28. for _, f := range routerNoCheckRole {
  29. f(v1)
  30. }
  31. // {{无需认证路由自动补充在此处请勿删除}}
  32. registerSysFileInfoRouter(v1)
  33. registerSysFileDirRouter(v1)
  34. }
  35. // 需要认证的路由示例
  36. func businessCheckRoleRouter(r *gin.Engine, authMiddleware *jwtauth.GinJWTMiddleware) {
  37. // 可根据业务需求来设置接口版本
  38. v1 := r.Group("/api/v1")
  39. // 空接口防止v1定义无使用报错
  40. //v1.GET("/checkrole", nil)
  41. /*for _, f := range routerCheckRole {
  42. f(v1, authMiddleware)
  43. }
  44. */
  45. // {{认证路由自动补充在此处请勿删除}}
  46. //registerSysContentRouter(v1, authMiddleware)
  47. registerBusinessPageRouter(v1, authMiddleware)
  48. registerSysCategoryRouter(v1, authMiddleware)
  49. registerDeviceListRouter(v1, authMiddleware)
  50. registerDeviceMonitorRouter(v1, authMiddleware)
  51. registerDeviceLogRouter(v1, authMiddleware)
  52. registerDownloadDeviceLogRouter(v1, authMiddleware)
  53. registerApplicationRouter(v1, authMiddleware)
  54. registerAppPublishRouter(v1, authMiddleware)
  55. registerAppDeviceRouter(v1, authMiddleware)
  56. registerAppGroupRouter(v1, authMiddleware)
  57. registerUpgradeFileRouter(v1, authMiddleware)
  58. registerUpgradeFileDownloadRouter(v1, authMiddleware)
  59. registerGroupRouter(v1, authMiddleware)
  60. registerVideoRouter(v1, authMiddleware)
  61. registerMediaVisitRouter(v1, authMiddleware)
  62. registerPlayMenuRouter(v1, authMiddleware)
  63. registerPlayItemRouter(v1, authMiddleware)
  64. registerPlayAttrisRouter(v1, authMiddleware)
  65. registerMediaPublishMangeRouter(v1, authMiddleware)
  66. registerDevicesUsualRouter(v1, authMiddleware)
  67. registerUpgradeRecordRouter(v1, authMiddleware)
  68. }
  69. func registerBusinessPageRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) {
  70. sysuser := v1.Group("").Use(authMiddleware.MiddlewareFunc()).Use(middleware.AuthCheckRole())
  71. {
  72. sysuser.POST("/devicelist", business.GetDeviceList)
  73. sysuser.POST("/recordlist", business.GetUpgradeRecordList)
  74. sysuser.POST("/monitorlist", business.GetMonitorList)
  75. sysuser.POST("/loglist", business.GetLogList)
  76. sysuser.POST("/applicationlist", business.GetApplicationList)
  77. sysuser.POST("/upgradefilelist", business.GetUpgradeFileList)
  78. sysuser.GET("/videolist", business.GetVideoList)
  79. sysuser.POST("/grouplist", business.GetGroupList)
  80. sysuser.POST("/app/device/bindlist", business.GetAppDeviceBindedList)
  81. sysuser.POST("/app/device/unbindlist", business.GetAppDeviceUnBindedList)
  82. sysuser.POST("/app/group/bindlist", business.GetAppGroupBindedList)
  83. sysuser.POST("/app/group/unbindlist", business.GetAppGroupUnBindedList)
  84. }
  85. }
  86. func registerDeviceListRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) {
  87. sysuser := v1.Group("/device/list").Use(authMiddleware.MiddlewareFunc()).Use(middleware.AuthCheckRole())
  88. {
  89. sysuser.POST("", business.InsertDevice)
  90. sysuser.POST("/statistics", business.GetDeviceStatistics)
  91. sysuser.POST("/import", business.ImportDevice)
  92. sysuser.GET("/:deviceId", business.GetDevice)
  93. sysuser.DELETE("/:deviceId", business.DeleteDevice)
  94. sysuser.PUT("", business.UpdateDevice)
  95. }
  96. }
  97. func registerDeviceMonitorRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) {
  98. sysuser := v1.Group("/device/monitor").Use(authMiddleware.MiddlewareFunc()).Use(middleware.AuthCheckRole())
  99. {
  100. sysuser.GET("/log/:deviceId", business.GetDeviceLog)
  101. sysuser.POST("/reboot/:deviceId", business.RebootDevice)
  102. }
  103. }
  104. func registerDeviceLogRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) {
  105. sysuser := v1.Group("/device/log").Use(authMiddleware.MiddlewareFunc()).Use(middleware.AuthCheckRole())
  106. {
  107. sysuser.POST("/list", business.GetSingleDeviceLogList)
  108. sysuser.DELETE("/:logId", business.DeleteDeviceLog)
  109. }
  110. }
  111. func registerDownloadDeviceLogRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) {
  112. sysuser := v1.Group("/device/log")
  113. {
  114. sysuser.GET("/download", business.DownloadDeviceLog)
  115. }
  116. }
  117. func registerApplicationRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) {
  118. sysuser := v1.Group("/app/application").Use(authMiddleware.MiddlewareFunc()).Use(middleware.AuthCheckRole())
  119. {
  120. sysuser.POST("", business.InsertApplication)
  121. sysuser.GET("/:appId", business.GetApplication)
  122. sysuser.PUT("", business.UpdateApplication)
  123. sysuser.DELETE("/:appId", business.DeleteApplication)
  124. }
  125. }
  126. func registerAppPublishRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) {
  127. sysuser := v1.Group("/app/publish").Use(authMiddleware.MiddlewareFunc()).Use(middleware.AuthCheckRole())
  128. {
  129. sysuser.POST("/device", business.PublishApp2Devices)
  130. sysuser.POST("/group", business.PublishApp2Groups)
  131. }
  132. }
  133. func registerAppDeviceRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) {
  134. sysuser := v1.Group("/app/device").Use(authMiddleware.MiddlewareFunc()).Use(middleware.AuthCheckRole())
  135. {
  136. sysuser.POST("/bind", business.InsertAppDeviceBinded)
  137. sysuser.DELETE("/unbind/:bindId", business.DeleteAppDeviceBinded)
  138. }
  139. }
  140. func registerAppGroupRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) {
  141. sysuser := v1.Group("/app/group").Use(authMiddleware.MiddlewareFunc()).Use(middleware.AuthCheckRole())
  142. {
  143. sysuser.POST("/bind", business.InsertAppGroupBinded)
  144. sysuser.DELETE("/unbind/:bindId", business.DeleteAppGroupBinded)
  145. }
  146. }
  147. func registerUpgradeFileRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) {
  148. sysuser := v1.Group("/app/upgradefile").Use(authMiddleware.MiddlewareFunc()).Use(middleware.AuthCheckRole())
  149. {
  150. sysuser.GET("/:upgradefileId", business.GetVersion)
  151. //sysuser.POST("/download/:upgradefileId", business.DownloadUpgradeFile)
  152. sysuser.POST("/upload", business.UploadUpgradeFile)
  153. sysuser.PUT("", business.UpdateUpgradeFile)
  154. sysuser.DELETE("/:upgradefileId", business.DeleteUpgradeFile)
  155. }
  156. }
  157. func registerUpgradeFileDownloadRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) {
  158. r := v1.Group("/app/upgradefile/download")
  159. {
  160. r.GET("", business.DownloadUpgradeFile)
  161. }
  162. }
  163. func registerGroupRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) {
  164. sysuser := v1.Group("/group/manage").Use(authMiddleware.MiddlewareFunc()).Use(middleware.AuthCheckRole())
  165. {
  166. sysuser.GET("/:groupId", business.GetGroup)
  167. sysuser.POST("", business.InsertGroup)
  168. sysuser.PUT("", business.UpdateGroup)
  169. sysuser.DELETE("/:groupId", business.DeleteGroup)
  170. }
  171. }
  172. func registerVideoRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) {
  173. sysuser := v1.Group("/media/video").Use(authMiddleware.MiddlewareFunc()).Use(middleware.AuthCheckRole())
  174. {
  175. //download and get video info api
  176. sysuser.GET("/:videoId", business.GetVideoHandler)
  177. sysuser.POST("/upload", business.UploadVideo)
  178. sysuser.POST("/upload/form", business.UploadVideoFormInfo)
  179. sysuser.PUT("", business.UpdateVideo)
  180. sysuser.DELETE("/:videoId", business.DeleteVideo)
  181. }
  182. }
  183. func registerMediaVisitRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) {
  184. r := v1.Group("/media/visit")
  185. {
  186. r.GET("/cover/:id", business.VideoCover)
  187. r.GET("/video/:id", business.PlayVideo)
  188. r.GET("/picture/:id", business.Picture)
  189. }
  190. }
  191. func registerPlayMenuRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) {
  192. r := v1.Group("/media/menu").Use(authMiddleware.MiddlewareFunc()).Use(middleware.AuthCheckRole())
  193. {
  194. r.GET("", business.GetPlayMenuList)
  195. r.POST("", business.AddPlayMenu)
  196. r.DELETE("/:id", business.DeletePlayMenu)
  197. r.PUT("", business.UpdatePlayMenu)
  198. }
  199. }
  200. func registerPlayItemRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) {
  201. r := v1.Group("/media/item").Use(authMiddleware.MiddlewareFunc()).Use(middleware.AuthCheckRole())
  202. {
  203. r.GET("/:menuId", business.GetPlayItemList)
  204. r.POST("", business.AddPlayItemVideo)
  205. r.DELETE("/:id", business.DeletePlayItem)
  206. }
  207. }
  208. func registerPlayAttrisRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) {
  209. r := v1.Group("/media/attri").Use(authMiddleware.MiddlewareFunc()).Use(middleware.AuthCheckRole())
  210. {
  211. r.GET("/:menuid", business.GetPlayAttris)
  212. r.PUT("", business.UpdatePlayAttris)
  213. }
  214. }
  215. func registerMediaPublishMangeRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) {
  216. r := v1.Group("/media/publish").Use(authMiddleware.MiddlewareFunc()).Use(middleware.AuthCheckRole())
  217. {
  218. r.POST("/:devids", business.PublishMedia2Devices)
  219. }
  220. }
  221. //设备接口专用路由,去掉角色检验,直接能够调用.
  222. func registerDevicesUsualRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) {
  223. r := v1.Group("/device/usual")
  224. {
  225. r.GET("/upgradefile/download", business.DeviceDownloadUpgradeFile)
  226. r.POST("/log/upload", business.DeviceUploadLog)
  227. }
  228. }
  229. func registerUpgradeRecordRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) {
  230. r := v1.Group("/device/record").Use(authMiddleware.MiddlewareFunc()).Use(middleware.AuthCheckRole())
  231. {
  232. r.DELETE("/:recordId", business.DeleteUpgradeRecord)
  233. }
  234. }