liujiandao
2024-04-23 9e864a183115ba2420797a8bda661187b1069e00
models/dict.go
@@ -11,23 +11,25 @@
   // 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 {
@@ -64,8 +66,18 @@
   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
}
@@ -84,12 +96,21 @@
      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
@@ -209,10 +230,6 @@
      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)
   }