github.com/easysoft/zendata@v0.0.0-20240513203326-705bd5a7fd67/internal/server/repo/config.go (about)

     1  package serverRepo
     2  
     3  import (
     4  	consts "github.com/easysoft/zendata/internal/pkg/const"
     5  	"github.com/easysoft/zendata/internal/pkg/domain"
     6  	"github.com/easysoft/zendata/internal/pkg/model"
     7  	"gorm.io/gorm"
     8  )
     9  
    10  type ConfigRepo struct {
    11  	DB *gorm.DB `inject:""`
    12  }
    13  
    14  func (r *ConfigRepo) ListAll() (models []*model.ZdConfig) {
    15  	r.DB.Select("id,title,referName,fileName,folder,path,updatedAt").Find(&models)
    16  	return
    17  }
    18  
    19  func (r *ConfigRepo) List(keywords string, page int) (models []*model.ZdConfig, total int, err error) {
    20  	query := r.DB.Select("id,title,referName,fileName,folder,path").Order("id ASC")
    21  	if keywords != "" {
    22  		query = query.Where("title LIKE ?", "%"+keywords+"%")
    23  	}
    24  	if page > 0 {
    25  		query = query.Offset((page - 1) * consts.PageSize).Limit(consts.PageSize)
    26  	}
    27  
    28  	err = query.Find(&models).Error
    29  
    30  	var total64 int64
    31  	err = r.DB.Model(&model.ZdConfig{}).Count(&total64).Error
    32  	total = int(total64)
    33  
    34  	return
    35  }
    36  
    37  func (r *ConfigRepo) Get(id uint) (model model.ZdConfig, err error) {
    38  	err = r.DB.Where("id=?", id).First(&model).Error
    39  	return
    40  }
    41  
    42  func (r *ConfigRepo) Create(model *model.ZdConfig) (err error) {
    43  	err = r.DB.Create(model).Error
    44  	return
    45  }
    46  func (r *ConfigRepo) Update(model *model.ZdConfig) (err error) {
    47  	err = r.DB.Save(model).Error
    48  	return
    49  }
    50  
    51  func (r *ConfigRepo) Remove(id uint) (err error) {
    52  	model := model.ZdConfig{}
    53  	model.ID = id
    54  	err = r.DB.Delete(model).Error
    55  
    56  	return
    57  }
    58  
    59  func (r *ConfigRepo) UpdateYaml(po model.ZdConfig) (err error) {
    60  	err = r.DB.Model(&model.ZdConfig{}).Where("id=?", po.ID).Update("yaml", po.Yaml).Error
    61  	return
    62  }
    63  
    64  func (r *ConfigRepo) GenConfigRes(config model.ZdConfig, res *domain.ResConfig) {
    65  	res.Title = config.Title
    66  	res.Desc = config.Desc
    67  	res.Prefix = config.Prefix
    68  	res.Postfix = config.Postfix
    69  	res.Loop = config.Loop
    70  	res.Loopfix = config.Loopfix
    71  	res.Format = config.Format
    72  
    73  	res.Range = config.Range
    74  }
    75  
    76  func (r *ConfigRepo) UpdateConfigRange(rang string, id uint) (err error) {
    77  	err = r.DB.Model(&model.ZdConfig{}).Where("id=?", id).Update("range", rang).Error
    78  
    79  	return
    80  }
    81  
    82  func NewConfigRepo(db *gorm.DB) *ConfigRepo {
    83  	return &ConfigRepo{DB: db}
    84  }