github.com/easysoft/zendata@v0.0.0-20240513203326-705bd5a7fd67/internal/server/repo/def.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 DefRepo struct {
    11  	DB *gorm.DB `inject:""`
    12  }
    13  
    14  func (r *DefRepo) ListAll() (models []*model.ZdDef) {
    15  	r.DB.Select("id,title,folder,path,referName,updatedAt").Find(&models)
    16  	return
    17  }
    18  
    19  func (r *DefRepo) List(keywords string, page int) (models []*model.ZdDef, total int, err error) {
    20  	query := r.DB.Select("id,title,folder,path,referName").Order("id ASC").Where("isMock = false")
    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.ZdDef{}).Count(&total64).Error
    32  	total = int(total64)
    33  
    34  	return
    35  }
    36  
    37  func (r *DefRepo) Get(id uint) (def model.ZdDef, err error) {
    38  	err = r.DB.Where("id=?", id).First(&def).Error
    39  
    40  	return
    41  }
    42  
    43  func (r *DefRepo) Create(def *model.ZdDef) (err error) {
    44  	err = r.DB.Create(def).Error
    45  
    46  	return
    47  }
    48  
    49  func (r *DefRepo) Update(def *model.ZdDef) (err error) {
    50  	err = r.DB.Save(def).Error
    51  
    52  	return
    53  }
    54  
    55  func (r *DefRepo) Remove(id uint) (err error) {
    56  	var def model.ZdDef
    57  	def.ID = id
    58  
    59  	err = r.DB.Delete(&def).Error
    60  	err = r.DB.Where("defID = ?", id).Delete(&model.ZdField{}).Error
    61  
    62  	return
    63  }
    64  
    65  func (r *DefRepo) UpdateYaml(po model.ZdDef) (err error) {
    66  	err = r.DB.Model(&model.ZdDef{}).Where("id=?", po.ID).Update("yaml", po.Yaml).Error
    67  	return
    68  }
    69  
    70  func (r *DefRepo) GenDef(def model.ZdDef, data *domain.DefData) {
    71  	data.Title = def.Title
    72  	data.Desc = def.Desc
    73  	data.Type = def.Type
    74  	if data.Type == consts.ResTypeText {
    75  		data.Type = ""
    76  	}
    77  }
    78  
    79  func NewDefRepo(db *gorm.DB) *DefRepo {
    80  	return &DefRepo{DB: db}
    81  }