feat: add project work orders

This commit is contained in:
Frudrax Cheng
2026-06-04 10:25:57 +08:00
parent bd40e4afdc
commit 93506639e3
5 changed files with 1045 additions and 0 deletions
+23
View File
@@ -112,4 +112,27 @@ func SetupAPIRoutes(r *gin.RouterGroup) {
aftersalesRoutes.POST("/:serialNumber/force-close", middleware.JWTAuthMiddleware(), middleware.AdminMiddleware(), aftersalesController.ForceClose)
aftersalesRoutes.DELETE("/:serialNumber", middleware.JWTAuthMiddleware(), middleware.AdminMiddleware(), aftersalesController.Delete)
}
// 项目工单路由
projectOrdersController := controllers.NewProjectOrdersController()
projectOrdersRoutes := r.Group("/project-orders")
{
// 公开(无需登录)
projectOrdersRoutes.GET("/:serialNumber/query", projectOrdersController.PublicQuery)
projectOrdersRoutes.POST("/:serialNumber/site-images", projectOrdersController.UploadSiteImages)
projectOrdersRoutes.POST("/:serialNumber/complete", projectOrdersController.EngineerComplete)
// 技术员 + 管理员
projectOrdersRoutes.POST("", middleware.JWTAuthMiddleware(), middleware.TechnicianMiddleware(), projectOrdersController.Create)
projectOrdersRoutes.GET("", middleware.JWTAuthMiddleware(), middleware.TechnicianMiddleware(), projectOrdersController.FindAll)
projectOrdersRoutes.GET("/:serialNumber", middleware.JWTAuthMiddleware(), middleware.TechnicianMiddleware(), projectOrdersController.FindOne)
projectOrdersRoutes.PATCH("/:serialNumber", middleware.JWTAuthMiddleware(), middleware.TechnicianMiddleware(), projectOrdersController.Update)
projectOrdersRoutes.POST("/:serialNumber/qrcode", middleware.JWTAuthMiddleware(), middleware.TechnicianMiddleware(), projectOrdersController.GenerateQRCode)
projectOrdersRoutes.POST("/:serialNumber/submit", middleware.JWTAuthMiddleware(), middleware.TechnicianMiddleware(), projectOrdersController.SubmitCompletion)
// 仅管理员
projectOrdersRoutes.POST("/:serialNumber/reassign", middleware.JWTAuthMiddleware(), middleware.AdminMiddleware(), projectOrdersController.Reassign)
projectOrdersRoutes.POST("/:serialNumber/force-close", middleware.JWTAuthMiddleware(), middleware.AdminMiddleware(), projectOrdersController.ForceClose)
projectOrdersRoutes.DELETE("/:serialNumber", middleware.JWTAuthMiddleware(), middleware.AdminMiddleware(), projectOrdersController.Delete)
}
}