| package controller |
|
|
| import ( |
| "strconv" |
|
|
| "github.com/QuantumNous/new-api/common" |
| "github.com/QuantumNous/new-api/model" |
|
|
| "github.com/gin-gonic/gin" |
| ) |
|
|
| |
| 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) |
| } |
|
|
| |
| 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) |
| } |
|
|
| |
| 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) |
| } |
|
|
| |
| 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) |
| } |
|
|
| |
| 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) |
| } |
|
|
| |
| 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) |
| } |
|
|