package controller import ( "strconv" "github.com/QuantumNous/new-api/common" "github.com/QuantumNous/new-api/model" "github.com/gin-gonic/gin" ) // GetPrefillGroups 获取预填组列表,可通过 ?type=xxx 过滤 func GetPrefillGroups(c *gin.Context) { groupType := c.Query("type") groups, err := model.GetAllPrefillGroups(groupType) if err != nil { common.ApiError(c, err) return } common.ApiSuccess(c, groups) } // CreatePrefillGroup 创建新的预填组 func CreatePrefillGroup(c *gin.Context) { var g model.PrefillGroup if err := c.ShouldBindJSON(&g); err != nil { common.ApiError(c, err) return } if g.Name == "" || g.Type == "" { common.ApiErrorMsg(c, "组名称和类型不能为空") return } // 创建前检查名称 if dup, err := model.IsPrefillGroupNameDuplicated(0, g.Name); err != nil { common.ApiError(c, err) return } else if dup { common.ApiErrorMsg(c, "组名称已存在") return } if err := g.Insert(); err != nil { common.ApiError(c, err) return } common.ApiSuccess(c, &g) } // UpdatePrefillGroup 更新预填组 func UpdatePrefillGroup(c *gin.Context) { var g model.PrefillGroup if err := c.ShouldBindJSON(&g); err != nil { common.ApiError(c, err) return } if g.Id == 0 { common.ApiErrorMsg(c, "缺少组 ID") return } // 名称冲突检查 if dup, err := model.IsPrefillGroupNameDuplicated(g.Id, g.Name); err != nil { common.ApiError(c, err) return } else if dup { common.ApiErrorMsg(c, "组名称已存在") return } if err := g.Update(); err != nil { common.ApiError(c, err) return } common.ApiSuccess(c, &g) } // DeletePrefillGroup 删除预填组 func DeletePrefillGroup(c *gin.Context) { idStr := c.Param("id") id, err := strconv.Atoi(idStr) if err != nil { common.ApiError(c, err) return } if err := model.DeletePrefillGroupByID(id); err != nil { common.ApiError(c, err) return } common.ApiSuccess(c, nil) }