package services import ( "time" "server/models" "github.com/beego/beego/v2/client/orm" ) // ListSuppliers 获取供应商列表(可选租户过滤、关键词搜索、状态筛选、分页) func ListSuppliers(tenantId, keyword, status string, page, pageSize int) (list []*models.Supplier, total int64, err error) { o := orm.NewOrm() qs := o.QueryTable(new(models.Supplier)).Filter("delete_time__isnull", true) if tenantId != "" { qs = qs.Filter("tenant_id", tenantId) } if keyword != "" { cond := orm.NewCondition() cond1 := cond.Or("supplier_name__icontains", keyword). Or("contact_person__icontains", keyword). Or("contact_phone__icontains", keyword) qs = qs.SetCond(cond1) } if status != "" { qs = qs.Filter("status", status) } total, err = qs.Count() if err != nil { return } if page <= 0 { page = 1 } if pageSize <= 0 { pageSize = 10 } offset := (page - 1) * pageSize _, err = qs.OrderBy("-create_time").Limit(pageSize, offset).All(&list) return } // GetSupplier 通过ID获取供应商 func GetSupplier(id string) (*models.Supplier, error) { o := orm.NewOrm() m := models.Supplier{Id: id} if err := o.Read(&m); err != nil { return nil, err } return &m, nil } // CreateSupplier 新增供应商 func CreateSupplier(m *models.Supplier) error { o := orm.NewOrm() _, err := o.Insert(m) return err } // UpdateSupplier 更新供应商(全量更新) func UpdateSupplier(m *models.Supplier, cols ...string) error { o := orm.NewOrm() if len(cols) == 0 { _, err := o.Update(m) return err } _, err := o.Update(m, cols...) return err } // SoftDeleteSupplier 软删除供应商 func SoftDeleteSupplier(id string) error { o := orm.NewOrm() now := time.Now() m := models.Supplier{Id: id, DeleteTime: &now} _, err := o.Update(&m, "delete_time") return err }