| | |
| | | // Dict 词典 |
| | | Dict struct { |
| | | gorm.Model |
| | | DictType constvar.DictType `gorm:"index;type:tinyint(3);not null;comment:字典类型"` //字典类型 |
| | | Number string `gorm:"type:varchar(255);not null;comment:编号" json:"number"` //编号 |
| | | Name string `gorm:"type:varchar(255);not null;comment:名称" json:"name"` //名称 |
| | | Remark string `gorm:"type:varchar(255);not null;comment:备注" json:"remark"` //备注 |
| | | DictType *constvar.DictType `gorm:"index;type:tinyint(3);not null;comment:字典类型"` //字典类型 |
| | | Number string `gorm:"type:varchar(255);not null;comment:编号" json:"number"` //编号 |
| | | Name string `gorm:"type:varchar(255);not null;comment:名称" json:"name"` //名称 |
| | | Remark string `gorm:"type:varchar(255);not null;comment:备注" json:"remark"` //备注 |
| | | } |
| | | |
| | | DictSearch struct { |
| | | Dict |
| | | Order string |
| | | PageNum int |
| | | PageSize int |
| | | Orm *gorm.DB |
| | | Order string |
| | | PageNum int |
| | | PageSize int |
| | | Orm *gorm.DB |
| | | Keyword string |
| | | DictTypes []constvar.DictType |
| | | } |
| | | ) |
| | | |
| | | func (slf *Dict) TableName() string { |
| | | return "dict" |
| | | return "silk_dict" |
| | | } |
| | | |
| | | func NewDictSearch() *DictSearch { |
| | |
| | | return slf |
| | | } |
| | | |
| | | func (slf *DictSearch) SetDictType(dt constvar.DictType) *DictSearch { |
| | | func (slf *DictSearch) SetKeyword(keyword string) *DictSearch { |
| | | slf.Keyword = keyword |
| | | return slf |
| | | } |
| | | |
| | | func (slf *DictSearch) SetDictType(dt *constvar.DictType) *DictSearch { |
| | | slf.DictType = dt |
| | | return slf |
| | | } |
| | | |
| | | func (slf *DictSearch) SetDictTypes(dts []constvar.DictType) *DictSearch { |
| | | slf.DictTypes = dts |
| | | return slf |
| | | } |
| | | |
| | |
| | | db = db.Where("number = ?", slf.Number) |
| | | } |
| | | |
| | | if slf.DictType != 0 { |
| | | if slf.DictType != nil { |
| | | db = db.Where("dict_type = ?", slf.DictType) |
| | | } |
| | | |
| | | if slf.Name != "" { |
| | | db = db.Where("name = ?", slf.Name) |
| | | } |
| | | |
| | | if slf.Keyword != "" { |
| | | kw := "%" + slf.Keyword + "%" |
| | | db = db.Where("name like ? or number like ?", kw, kw) |
| | | } |
| | | |
| | | if len(slf.DictTypes) > 0 { |
| | | db = db.Where("dict_type in (?)", slf.DictTypes) |
| | | } |
| | | |
| | | return db |
| | |
| | | records = make([]*Dict, 0) |
| | | db = slf.build() |
| | | ) |
| | | |
| | | 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, fmt.Errorf("find records err: %v", err) |
| | | } |