From 9c2489c0c360c8dda36d3cbe1dba79222096b2dd Mon Sep 17 00:00:00 2001 From: wangpengfei <274878379@qq.com> Date: 星期一, 07 八月 2023 10:16:39 +0800 Subject: [PATCH] Merge branch 'master' into fly --- model/faq.go | 135 +++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 135 insertions(+), 0 deletions(-) diff --git a/model/faq.go b/model/faq.go new file mode 100644 index 0000000..115e1d6 --- /dev/null +++ b/model/faq.go @@ -0,0 +1,135 @@ +package model + +import ( + "aps_crm/constvar" + "aps_crm/pkg/mysqlx" + "errors" + "fmt" + "gorm.io/gorm" +) + +type ( + // Faq 甯歌闂 + Faq struct { + Id int `json:"id" gorm:"column:id;primary_key;AUTO_INCREMENT"` + Name string `json:"name" gorm:"column:name"` + } + + // FaqSearch 甯歌闂鎼滅储鏉′欢 + FaqSearch struct { + Faq + Orm *gorm.DB + QueryClass constvar.FaqQueryClass + KeywordType constvar.FaqKeywordType + Keyword string + PageNum int + PageSize int + } +) + +func (Faq) TableName() string { + return "faq" +} + +func NewFaqSearch() *FaqSearch { + return &FaqSearch{ + Orm: mysqlx.GetDB(), + } +} + +func (slf *FaqSearch) build() *gorm.DB { + var db = slf.Orm.Model(&Faq{}) + if slf.Id != 0 { + db = db.Where("id = ?", slf.Id) + } + + return db +} + +func (slf *FaqSearch) Create(record *Faq) error { + var db = slf.build() + return db.Create(record).Error +} + +func (slf *FaqSearch) CreateBatch(records []*Faq) error { + var db = slf.build() + return db.Create(records).Error +} + +func (slf *FaqSearch) Delete() error { + var db = slf.build() + return db.Delete(&Faq{}).Error +} + +func (slf *FaqSearch) Update(record *Faq) error { + var db = slf.build() + return db.Updates(record).Error +} + +func (slf *FaqSearch) FindAll() ([]*Faq, error) { + var db = slf.build() + var record = make([]*Faq, 0) + err := db.Find(&record).Error + return record, err +} + +func (slf *FaqSearch) SetId(id int) *FaqSearch { + slf.Id = id + return slf +} + +func (slf *FaqSearch) First() (*Faq, error) { + var db = slf.build() + var record = new(Faq) + err := db.First(record).Error + return record, err +} + +func (slf *FaqSearch) Updates(values interface{}) error { + var db = slf.build() + return db.Updates(values).Error +} + +func (slf *FaqSearch) Save(record *Faq) error { + if record.Id == 0 { + return errors.New("id涓虹┖") + } + var db = slf.build() + + if err := db.Save(record).Error; err != nil { + return fmt.Errorf("save err: %v, record: %+v", err, record) + } + + return nil +} + +func (slf *FaqSearch) Find() ([]*Faq, int64, error) { + var db = slf.build() + var records = make([]*Faq, 0) + var total int64 + if err := db.Count(&total).Error; err != nil { + return records, total, err + } + if slf.PageNum > 0 && slf.PageSize > 0 { + db = db.Limit(slf.PageSize).Offset((slf.PageNum - 1) * slf.PageSize) + } + + err := db.Find(&records).Error + return records, total, err +} + +// InitDefaultData 鍒濆鍖栨暟鎹� +func (slf *FaqSearch) InitDefaultData() error { + var ( + db = slf.Orm.Table(slf.TableName()) + total int64 = 0 + ) + if err := db.Count(&total).Error; err != nil { + return err + } + if total != 0 { + return nil + } + records := []*Faq{} + return slf.CreateBatch(records) +} -- Gitblit v1.8.0