package api import ( "net/http" "strconv" jwt "github.com/appleboy/gin-jwt/v2" "github.com/gin-gonic/gin" "go.uber.org/zap" "joylink.club/bj-rtsts-server/dto" "joylink.club/bj-rtsts-server/service" ) func InitProjectLinkRouter(api *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) { authed := api.Group("/v1/projectLink").Use(authMiddleware.MiddlewareFunc()) authed.GET("/info/:id", queryProjectLinkInfo) authed.GET("/trainSize/:id", queryProjectTrainSizeInfo) authed.POST("", saveProjectLinkInfo) } // 查询项目的所有关联信息 // // @Summary 查询项目的所有关联信息 // // @Security JwtAuth // // @Description 查询项目的所有关联信息 // @Tags 项目关联信息Api // @Accept json // @Produce json // @Param id path int true "项目ID" // @Success 200 {object} dto.ProjectLinkRspDto // @Failure 401 {object} dto.ErrorDto // @Failure 404 {object} dto.ErrorDto // @Failure 500 {object} dto.ErrorDto // @Router /api/v1/projectLink/info/:id [get] func queryProjectLinkInfo(c *gin.Context) { id, exist := c.Params.Get("id") if !exist { c.JSON(http.StatusBadRequest, "必要参数id不存在") return } zap.S().Debug("传入参数id为" + id) int64Id, _ := strconv.ParseInt(id, 10, 64) c.JSON(http.StatusOK, service.QueryProjectLinkInfo(int32(int64Id))) } // 查询项目的关联列车尺寸信息 // // @Summary 查询项目的关联列车尺寸信息 // // @Security JwtAuth // // @Description 查询项目的关联列车尺寸信息 // @Tags 项目关联信息Api // @Accept json // @Produce json // @Param id path int true "项目ID" // @Success 200 {object} dto.TrainSizeDto // @Failure 401 {object} dto.ErrorDto // @Failure 404 {object} dto.ErrorDto // @Failure 500 {object} dto.ErrorDto // @Router /api/v1/projectLink/trainSize/:id [get] func queryProjectTrainSizeInfo(c *gin.Context) { id, exist := c.Params.Get("id") if !exist { c.JSON(http.StatusBadRequest, "必要参数id不存在") return } zap.S().Debug("传入参数id为" + id) int64Id, _ := strconv.ParseInt(id, 10, 64) c.JSON(http.StatusOK, service.QueryTrainSizeByMapId(int32(int64Id))) } // 保存项目的所有关联信息 // // @Summary 保存项目的所有关联信息 // // @Security JwtAuth // // @Description 保存项目的所有关联信息 // @Tags 项目关联信息Api // @Accept json // @Produce json // @Param projectLinkReqDto query dto.ProjectLinkReqDto true "关联关系实体" // @Success 200 {object} bool // @Failure 401 {object} dto.ErrorDto // @Failure 404 {object} dto.ErrorDto // @Failure 500 {object} dto.ErrorDto // @Router /api/v1/projectLink [post] func saveProjectLinkInfo(c *gin.Context) { req := dto.ProjectLinkReqDto{} if err := c.ShouldBind(&req); err != nil { c.JSON(http.StatusBadRequest, "传入参数错误") return } zap.S().Debug("保存数据", req) service.UpdateProjectLink(&req) c.JSON(http.StatusOK, true) }