package api import ( "log/slog" "net/http" "strconv" jwt "github.com/appleboy/gin-jwt/v2" "github.com/gin-gonic/gin" "joylink.club/bj-rtsts-server/dto" "joylink.club/bj-rtsts-server/middleware" "joylink.club/bj-rtsts-server/service" "joylink.club/bj-rtsts-server/sys_error" ) func InitProjectLinkRouter(api *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) { authed := api.Group("/v1/projectLink").Use(authMiddleware.MiddlewareFunc(), middleware.PermissMiddleware) authed.GET("/info/:id", queryProjectLinkInfo) 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 { panic(sys_error.New("查询失败,缺少id")) } slog.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 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 { panic(sys_error.New("保持失败,参数格式化错误", err)) } service.UpdateProjectLink(&req) c.JSON(http.StatusOK, true) }