package models import ( "fmt" orm "go-admin/common/global" "go-admin/logger" "gorm.io/gorm" ) type Supplier struct { Model Number string `json:"number" gorm:"index"` //编号 Name string `json:"name"` //供应商名称 Contact string `json:"contact"` //联系人 Tel string `json:"tel"` //手机号 Province string `json:"province"` //省 City string `json:"city"` //市 Area string `json:"area"` //区 Address string `json:"address"` //详细地址 AccountHolder string `json:"account_holder"` //开户人 OpeningBank string `json:"opening_bank"` //开户银行 BankAccount string `json:"bank_account"` //银行账号 PaymentCycle uint32 `json:"payment_cycle"` //支付周期 TaxNumber string `json:"tax_number"` //税号 Landline string `json:"landline"` //固定电话 Email string `json:"email"` //邮件 CompanyWebsite string `json:"company_website"` //网站 } func (s *Supplier) TableName() string { return "erp_supplier" } func (s *Supplier) BeforeCreate(tx *gorm.DB) error { if s.Number == "" { var partnerCount int64 err := tx.Table(s.TableName()).Unscoped().Count(&partnerCount).Error if err != nil { logger.Error("get supplier count failed", err, s) return err } s.Number = fmt.Sprintf("%03d", partnerCount) } return nil } type GetSupplierRequest struct { Name string //供应商名称 Number string //供应商编号 } func GetSupplier(req GetSupplierRequest) ([]*Supplier, error) { var list []*Supplier m := orm.Eloquent.Model(Supplier{}) if req.Name != "" { m = m.Where("name = ?", req.Number) } if req.Number != "" { m = m.Where("number = ?", req.Number) } err := m. Order("created_at desc"). Find(&list). Error if err != nil { logger.Error("GetSupplierByPartner err:", err) return nil, err } return list, nil }