package handler import ( "ego/internal/service" "ego/pkg/logger" "github.com/gin-gonic/gin" "go.uber.org/zap" ) // SysDeployFileHandler 部署文件处理器 type SysDeployFileHandler struct { deployFileService *service.SysDeployFileService } // NewSysDeployFileHandler 构建部署文件处理器 func NewSysDeployFileHandler(deployFileService *service.SysDeployFileService) *SysDeployFileHandler { return &SysDeployFileHandler{ deployFileService: deployFileService, } } // Create 创建部署文件记录 // @Summary 创建部署文件记录 // @Description 创建新的部署文件记录 // @Tags 部署文件管理 // @Accept json // @Produce json // @Param deployFile body model.SysDeployFile true "部署文件信息" // @Success 200 {object} serializer.Response // @Router /deploy-files [post] func (h *SysDeployFileHandler) Create(c *gin.Context) { logger.Info(c, "创建部署文件记录") c.JSON(200, h.deployFileService.Create(c)) } // GetByID 根据ID获取部署文件记录 // @Summary 获取部署文件记录 // @Description 根据ID获取部署文件记录详情 // @Tags 部署文件管理 // @Accept json // @Produce json // @Param id path string true "文件ID" // @Success 200 {object} serializer.Response // @Router /deploy-files/{id} [get] func (h *SysDeployFileHandler) GetByID(c *gin.Context) { logger.Info(c, "获取部署文件记录", zap.String("id", c.Param("id"))) c.JSON(200, h.deployFileService.GetByID(c)) } // UpdateByID 根据ID更新部署文件记录 // @Summary 更新部署文件记录 // @Description 根据ID更新部署文件记录 // @Tags 部署文件管理 // @Accept json // @Produce json // @Param id path string true "文件ID" // @Param deployFile body model.SysDeployFile true "部署文件信息" // @Success 200 {object} serializer.Response // @Router /deploy-files/{id} [put] func (h *SysDeployFileHandler) UpdateByID(c *gin.Context) { logger.Info(c, "更新部署文件记录", zap.String("id", c.Param("id"))) c.JSON(200, h.deployFileService.UpdateByID(c)) } // DeleteByID 根据ID删除部署文件记录 // @Summary 删除部署文件记录 // @Description 根据ID删除部署文件记录 // @Tags 部署文件管理 // @Accept json // @Produce json // @Param id path string true "文件ID" // @Success 200 {object} serializer.Response // @Router /deploy-files/{id} [delete] func (h *SysDeployFileHandler) DeleteByID(c *gin.Context) { logger.Info(c, "删除部署文件记录", zap.String("id", c.Param("id"))) c.JSON(200, h.deployFileService.DeleteByID(c)) } // GetByCondition 条件查询部署文件记录 // @Summary 条件查询部署文件记录 // @Description 根据条件分页查询部署文件记录 // @Tags 部署文件管理 // @Accept json // @Produce json // @Param params query types.Params true "查询参数" // @Success 200 {object} serializer.Response // @Router /deploy-files [get] func (h *SysDeployFileHandler) GetByCondition(c *gin.Context) { logger.Info(c, "条件查询部署文件记录") c.JSON(200, h.deployFileService.GetByCondition(c)) } // GetByParentID 根据项目ID获取文件列表 // @Summary 获取项目文件列表 // @Description 根据项目ID获取关联的文件列表 // @Tags 部署文件管理 // @Accept json // @Produce json // @Param parentId path string true "项目ID" // @Success 200 {object} serializer.Response // @Router /deploy-files/parent/{parentId} [get] func (h *SysDeployFileHandler) GetByParentID(c *gin.Context) { logger.Info(c, "根据项目ID获取文件列表", zap.String("parentId", c.Param("parentId"))) c.JSON(200, h.deployFileService.GetByParentID(c)) } // SetActiveFile 设置活跃文件 // @Summary 设置活跃文件 // @Description 将指定文件设置为使用中状态,其他文件设为未使用状态 // @Tags 部署文件管理 // @Accept json // @Produce json // @Param id path string true "文件ID" // @Success 200 {object} serializer.Response // @Router /deploy-files/{id}/active [put] func (h *SysDeployFileHandler) SetActiveFile(c *gin.Context) { logger.Info(c, "设置活跃文件", zap.String("id", c.Param("id"))) c.JSON(200, h.deployFileService.SetActiveFile(c)) }