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  }