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