Spaces:
Build error
Build error
| package controller | |
| import ( | |
| "strconv" | |
| "one-api/common" | |
| "one-api/model" | |
| "github.com/gin-gonic/gin" | |
| ) | |
| // GetAllVendors 获取供应商列表(分页) | |
| func GetAllVendors(c *gin.Context) { | |
| pageInfo := common.GetPageQuery(c) | |
| vendors, err := model.GetAllVendors(pageInfo.GetStartIdx(), pageInfo.GetPageSize()) | |
| if err != nil { | |
| common.ApiError(c, err) | |
| return | |
| } | |
| var total int64 | |
| model.DB.Model(&model.Vendor{}).Count(&total) | |
| pageInfo.SetTotal(int(total)) | |
| pageInfo.SetItems(vendors) | |
| common.ApiSuccess(c, pageInfo) | |
| } | |
| // SearchVendors 搜索供应商 | |
| func SearchVendors(c *gin.Context) { | |
| keyword := c.Query("keyword") | |
| pageInfo := common.GetPageQuery(c) | |
| vendors, total, err := model.SearchVendors(keyword, pageInfo.GetStartIdx(), pageInfo.GetPageSize()) | |
| if err != nil { | |
| common.ApiError(c, err) | |
| return | |
| } | |
| pageInfo.SetTotal(int(total)) | |
| pageInfo.SetItems(vendors) | |
| common.ApiSuccess(c, pageInfo) | |
| } | |
| // GetVendorMeta 根据 ID 获取供应商 | |
| func GetVendorMeta(c *gin.Context) { | |
| idStr := c.Param("id") | |
| id, err := strconv.Atoi(idStr) | |
| if err != nil { | |
| common.ApiError(c, err) | |
| return | |
| } | |
| v, err := model.GetVendorByID(id) | |
| if err != nil { | |
| common.ApiError(c, err) | |
| return | |
| } | |
| common.ApiSuccess(c, v) | |
| } | |
| // CreateVendorMeta 新建供应商 | |
| func CreateVendorMeta(c *gin.Context) { | |
| var v model.Vendor | |
| if err := c.ShouldBindJSON(&v); err != nil { | |
| common.ApiError(c, err) | |
| return | |
| } | |
| if v.Name == "" { | |
| common.ApiErrorMsg(c, "供应商名称不能为空") | |
| return | |
| } | |
| // 创建前先检查名称 | |
| if dup, err := model.IsVendorNameDuplicated(0, v.Name); err != nil { | |
| common.ApiError(c, err) | |
| return | |
| } else if dup { | |
| common.ApiErrorMsg(c, "供应商名称已存在") | |
| return | |
| } | |
| if err := v.Insert(); err != nil { | |
| common.ApiError(c, err) | |
| return | |
| } | |
| common.ApiSuccess(c, &v) | |
| } | |
| // UpdateVendorMeta 更新供应商 | |
| func UpdateVendorMeta(c *gin.Context) { | |
| var v model.Vendor | |
| if err := c.ShouldBindJSON(&v); err != nil { | |
| common.ApiError(c, err) | |
| return | |
| } | |
| if v.Id == 0 { | |
| common.ApiErrorMsg(c, "缺少供应商 ID") | |
| return | |
| } | |
| // 名称冲突检查 | |
| if dup, err := model.IsVendorNameDuplicated(v.Id, v.Name); err != nil { | |
| common.ApiError(c, err) | |
| return | |
| } else if dup { | |
| common.ApiErrorMsg(c, "供应商名称已存在") | |
| return | |
| } | |
| if err := v.Update(); err != nil { | |
| common.ApiError(c, err) | |
| return | |
| } | |
| common.ApiSuccess(c, &v) | |
| } | |
| // DeleteVendorMeta 删除供应商 | |
| func DeleteVendorMeta(c *gin.Context) { | |
| idStr := c.Param("id") | |
| id, err := strconv.Atoi(idStr) | |
| if err != nil { | |
| common.ApiError(c, err) | |
| return | |
| } | |
| if err := model.DB.Delete(&model.Vendor{}, id).Error; err != nil { | |
| common.ApiError(c, err) | |
| return | |
| } | |
| common.ApiSuccess(c, nil) | |
| } | |