github.com/easysoft/zendata@v0.0.0-20240513203326-705bd5a7fd67/internal/server/repo/ranges.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 RangesRepo struct {
    11  	DB *gorm.DB `inject:""`
    12  }
    13  
    14  func (r *RangesRepo) ListAll() (models []*model.ZdRanges) {
    15  	r.DB.Select("id,title,referName,fileName,folder,path,updatedAt").Find(&models)
    16  	return
    17  }
    18  
    19  func (r *RangesRepo) List(keywords string, page int) (models []*model.ZdRanges, 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.ZdRanges{}).Count(&total64).Error
    32  	total = int(total64)
    33  
    34  	return
    35  }
    36  
    37  func (r *RangesRepo) Get(id uint) (ranges model.ZdRanges, err error) {
    38  	err = r.DB.Where("id=?", id).First(&ranges).Error
    39  	return
    40  }
    41  
    42  func (r *RangesRepo) Create(ranges *model.ZdRanges) (err error) {
    43  	err = r.DB.Create(ranges).Error
    44  	return
    45  }
    46  func (r *RangesRepo) Update(ranges *model.ZdRanges) (err error) {
    47  	err = r.DB.Save(ranges).Error
    48  	return
    49  }
    50  
    51  func (r *RangesRepo) Remove(id uint) (err error) {
    52  	ranges := model.ZdRanges{}
    53  	ranges.ID = id
    54  
    55  	err = r.DB.Delete(ranges).Error
    56  	err = r.DB.Where("rangesID = ?", id).Delete(&model.ZdRangesItem{}).Error
    57  
    58  	return
    59  }
    60  
    61  func (r *RangesRepo) GetItems(rangesId int) (items []*model.ZdRangesItem, err error) {
    62  	err = r.DB.Where("rangesId=?", rangesId).Find(&items).Error
    63  	return
    64  }
    65  func (r *RangesRepo) GetItem(itemId uint) (item model.ZdRangesItem, err error) {
    66  	err = r.DB.Where("id=?", itemId).First(&item).Error
    67  	return
    68  }
    69  func (r *RangesRepo) SaveItem(item *model.ZdRangesItem) (err error) {
    70  	err = r.DB.Save(item).Error
    71  	return
    72  }
    73  func (r *RangesRepo) RemoveItem(id uint) (err error) {
    74  	item := model.ZdRangesItem{}
    75  	item.ID = id
    76  	err = r.DB.Delete(item).Error
    77  	return
    78  }
    79  func (r *RangesRepo) GetMaxOrder(rangesId int) (ord int) {
    80  	var preChild model.ZdField
    81  	err := r.DB.
    82  		Where("rangesID=?", rangesId).
    83  		Order("ord DESC").Limit(1).
    84  		First(&preChild).Error
    85  
    86  	if err != nil {
    87  		ord = 1
    88  	}
    89  	ord = preChild.Ord + 1
    90  
    91  	return
    92  }
    93  
    94  func (r *RangesRepo) UpdateYaml(po model.ZdRanges) (err error) {
    95  	err = r.DB.Model(&model.ZdRanges{}).Where("id=?", po.ID).Update("yaml", po.Yaml).Error
    96  	return
    97  }
    98  
    99  func (r *RangesRepo) GenRangesRes(ranges model.ZdRanges, res *domain.ResRanges) {
   100  	res.Title = ranges.Title
   101  	res.Desc = ranges.Desc
   102  }
   103  
   104  func (r *RangesRepo) UpdateItemRange(rang string, id uint) (err error) {
   105  	err = r.DB.Model(&model.ZdRangesItem{}).Where("id=?", id).Update("value", rang).Error
   106  
   107  	return
   108  }
   109  
   110  func NewRangesRepo(db *gorm.DB) *RangesRepo {
   111  	return &RangesRepo{DB: db}
   112  }