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 }