github.com/easysoft/zendata@v0.0.0-20240513203326-705bd5a7fd67/internal/server/repo/text.go (about) 1 package serverRepo 2 3 import ( 4 consts "github.com/easysoft/zendata/internal/pkg/const" 5 "github.com/easysoft/zendata/internal/pkg/model" 6 "gorm.io/gorm" 7 ) 8 9 type TextRepo struct { 10 DB *gorm.DB `inject:""` 11 } 12 13 func (r *TextRepo) ListAll() (models []*model.ZdText) { 14 r.DB.Select("id,title,referName,fileName,folder,path,updatedAt").Find(&models) 15 return 16 } 17 18 func (r *TextRepo) List(keywords string, page int) (models []*model.ZdText, total int, err error) { 19 query := r.DB.Select("id,title,referName,fileName,folder,path").Order("id ASC") 20 if keywords != "" { 21 query = query.Where("title LIKE ?", "%"+keywords+"%") 22 } 23 if page > 0 { 24 query = query.Offset((page - 1) * consts.PageSize).Limit(consts.PageSize) 25 } 26 27 err = query.Find(&models).Error 28 29 var total64 int64 30 err = r.DB.Model(&model.ZdText{}).Count(&total64).Error 31 total = int(total64) 32 33 return 34 } 35 36 func (r *TextRepo) Get(id uint) (model model.ZdText, err error) { 37 err = r.DB.Where("id=?", id).First(&model).Error 38 return 39 } 40 41 func (r *TextRepo) Create(model *model.ZdText) (err error) { 42 err = r.DB.Create(model).Error 43 return 44 } 45 func (r *TextRepo) Update(model *model.ZdText) (err error) { 46 err = r.DB.Save(model).Error 47 return 48 } 49 50 func (r *TextRepo) Remove(id uint) (err error) { 51 model := model.ZdText{} 52 model.ID = id 53 err = r.DB.Delete(model).Error 54 55 return 56 } 57 58 func NewTextRepo(db *gorm.DB) *TextRepo { 59 return &TextRepo{DB: db} 60 }