package model import ( "aps_crm/pkg/mysqlx" "gorm.io/gorm" "time" ) type ( SalesRefund struct { Id int `json:"id" gorm:"column:id;primary_key;AUTO_INCREMENT"` ClientId int `json:"clientId" gorm:"column:client_id;type:int;comment:客户id"` Number string `json:"number" gorm:"column:number;type:varchar(255);comment:退款单号"` MemberId int `json:"memberId" gorm:"column:member_id;type:int;comment:负责人id"` RefundDate time.Time `json:"refundDate" gorm:"column:refund_date;type:datetime;comment:退款日期"` RefundMethod string `json:"refundMethod" gorm:"column:refund_method;type:varchar(255);comment:退款方式"` AccountId int `json:"accountId" gorm:"column:account_id;type:int;comment:账户"` IsInvoice int `json:"isInvoice" gorm:"column:is_invoice;type:int;comment:是否开票"` Reason string `json:"reason" gorm:"column:reason;type:varchar(255);comment:退款原因"` Products []Product `json:"products" gorm:"many2many:salesRefund_product;"` gorm.Model `json:"-"` } SalesRefundSearch struct { SalesRefund Orm *gorm.DB } ) func (SalesRefund) TableName() string { return "sales_refund" } func NewSalesRefundSearch() *SalesRefundSearch { return &SalesRefundSearch{ Orm: mysqlx.GetDB(), } } func (slf *SalesRefundSearch) build() *gorm.DB { var db = slf.Orm.Model(&SalesRefund{}) if slf.Id != 0 { db = db.Where("id = ?", slf.Id) } return db } func (slf *SalesRefundSearch) Create(record *SalesRefund) error { var db = slf.build() return db.Create(record).Error } func (slf *SalesRefundSearch) Delete() error { var db = slf.build() return db.Delete(&SalesRefund{}).Error } func (slf *SalesRefundSearch) Update(record *SalesRefund) error { var db = slf.build() return db.Updates(record).Error } func (slf *SalesRefundSearch) Find() (*SalesRefund, error) { var db = slf.build() var record = new(SalesRefund) err := db.First(record).Error return record, err } func (slf *SalesRefundSearch) FindAll() ([]*SalesRefund, error) { var db = slf.build() var records = make([]*SalesRefund, 0) err := db.Preload("Products").Find(&records).Error return records, err } func (slf *SalesRefundSearch) SetId(id int) *SalesRefundSearch { slf.Id = id return slf }