| | |
| | | PageNum int |
| | | PageSize int |
| | | Orm *gorm.DB |
| | | Keyword string |
| | | IDs []uint |
| | | } |
| | | ) |
| | | |
| | |
| | | } |
| | | |
| | | func (slf *Attribute) BeforeCreate(tx *gorm.DB) (err error) { |
| | | if len(slf.SelectValues) != 0 { |
| | | bts, err := json.Marshal(slf.SelectValues) |
| | | if err != nil { |
| | | return err |
| | | } |
| | | slf.SelectValue = string(bts) |
| | | } |
| | | return nil |
| | | } |
| | | |
| | | func (slf *Attribute) BeforeUpdate(tx *gorm.DB) (err error) { |
| | | if len(slf.SelectValues) != 0 { |
| | | bts, err := json.Marshal(slf.SelectValues) |
| | | if err != nil { |
| | |
| | | slf.ID = id |
| | | return slf |
| | | } |
| | | |
| | | func (slf *AttributeSearch) SetIDs(ids []uint) *AttributeSearch { |
| | | slf.IDs = ids |
| | | return slf |
| | | } |
| | | func (slf *AttributeSearch) SetName(name string) *AttributeSearch { |
| | | slf.Name = name |
| | | return slf |
| | | } |
| | | func (slf *AttributeSearch) SetEntityType(entityType EntityType) *AttributeSearch { |
| | | slf.EntityType = entityType |
| | | return slf |
| | | } |
| | | |
| | |
| | | if slf.ID != 0 { |
| | | db = db.Where("id = ?", slf.ID) |
| | | } |
| | | |
| | | if len(slf.IDs) != 0 { |
| | | db = db.Where("id in ?", slf.IDs) |
| | | } |
| | | if slf.Order != "" { |
| | | db = db.Order(slf.Order) |
| | | } |
| | | if slf.EntityType != 0 { |
| | | db = db.Where("entity_type = ?", slf.EntityType) |
| | | } |
| | | |
| | | if slf.Name != "" { |
| | | db = db.Where("name = ?", slf.Name) |
| | | } |
| | | if slf.Keyword != "" { |
| | | db = db.Where("id like ? or data_type like ? ", fmt.Sprintf("%%%v%%", slf.Keyword), fmt.Sprintf("%%%v%%", slf.Keyword)) |
| | | } |
| | | |
| | | return db |
| | | } |