package models import ( "fmt" "gorm.io/gorm" "wms/pkg/mysqlx" ) type ( // LogisticCompany 物流公司 //todo 与aps共用,修改字段要同步修改aps LogisticCompany struct { BaseModelString Name string `gorm:"unique;type:varchar(191);not null;comment:名称" json:"name"` // 月结账号 MonthlyAccount string `gorm:"type:varchar(191);comment:月结账号" json:"monthly_account"` // 联系人 Contact string `gorm:"type:varchar(191);comment:联系人" json:"contact"` // 联系电话 ContactPhone string `gorm:"type:varchar(191);comment:联系电话" json:"contact_phone"` // 隐藏 Hidden bool `gorm:"type:tinyint(1);comment:是否隐藏" json:"hidden"` } LogisticCompanySearch struct { LogisticCompany Order string PageNum int PageSize int Orm *gorm.DB } ) func (slf LogisticCompany) TableName() string { return "logistic_company" } func NewLogisticCompanySearch() *LogisticCompanySearch { return &LogisticCompanySearch{Orm: mysqlx.GetDB()} } func (slf *LogisticCompanySearch) SetOrm(tx *gorm.DB) *LogisticCompanySearch { slf.Orm = tx return slf } func (slf *LogisticCompanySearch) SetPage(page, size int) *LogisticCompanySearch { slf.PageNum, slf.PageSize = page, size return slf } func (slf *LogisticCompanySearch) SetOrder(order string) *LogisticCompanySearch { slf.Order = order return slf } func (slf *LogisticCompanySearch) SetID(id string) *LogisticCompanySearch { slf.ID = id return slf } func (slf *LogisticCompanySearch) SetName(name string) *LogisticCompanySearch { slf.Name = name return slf } func (slf *LogisticCompanySearch) SetKeyword(keyword string) *LogisticCompanySearch { slf.Name = keyword return slf } func (slf *LogisticCompanySearch) build() *gorm.DB { var db = slf.Orm.Table(slf.TableName()) if slf.ID != "" { db = db.Where("id = ?", slf.ID) } if slf.Name != "" { db = db.Where("name like ?", "%"+slf.Name+"%") } if slf.Order != "" { db = db.Order(slf.Order) } if slf.PageNum > 0 && slf.PageSize > 0 { db = db.Offset((slf.PageNum - 1) * slf.PageSize).Limit(slf.PageSize) } return db } func (slf *LogisticCompanySearch) CreateBatch(data []LogisticCompany) error { var db = slf.build() if err := db.Create(&data).Error; err != nil { return err } return nil } func (slf *LogisticCompanySearch) Create(record *LogisticCompany) error { var db = slf.build() if err := db.Create(record).Error; err != nil { return err } return nil } func (slf *LogisticCompanySearch) Save(record *LogisticCompany) error { var db = slf.build() if err := db.Save(record).Error; err != nil { return err } return nil } func (slf *LogisticCompanySearch) Delete() error { var db = slf.build() if err := db.Delete(slf).Error; err != nil { return err } return nil } func (slf *LogisticCompanySearch) Find() ([]LogisticCompany, int64, error) { var db = slf.build() var records []LogisticCompany var total int64 if err := db.Count(&total).Error; err != nil { return nil, 0, err } if slf.PageNum*slf.PageSize > 0 { db = db.Offset((slf.PageNum - 1) * slf.PageSize).Limit(slf.PageSize) } if err := db.Find(&records).Error; err != nil { return records, total, fmt.Errorf("find records err: %v", err) } return records, total, nil } func (slf *LogisticCompanySearch) FindNotTotal() ([]LogisticCompany, error) { var db = slf.build() var records []LogisticCompany if err := db.Find(&records).Error; err != nil { return records, fmt.Errorf("find records err: %v", err) } return records, nil }