github.com/easysoft/zendata@v0.0.0-20240513203326-705bd5a7fd67/internal/pkg/service/res-ranges.go (about)

     1  package service
     2  
     3  import (
     4  	"github.com/easysoft/zendata/internal/pkg/domain"
     5  	"github.com/jinzhu/copier"
     6  )
     7  
     8  type ResRangesService struct {
     9  	ResService   *ResService   `inject:""`
    10  	FieldService *FieldService `inject:""`
    11  }
    12  
    13  func (s *ResRangesService) GetResFromRanges(ranges domain.ResRanges) map[string][]interface{} {
    14  	groupedValue := map[string][]interface{}{}
    15  
    16  	for group, expression := range ranges.Ranges {
    17  		fieldFromRanges := s.ConvertRangesToField(ranges, expression)
    18  
    19  		s.FieldService.Generate(&fieldFromRanges, true)
    20  
    21  		groupedValue[group] = fieldFromRanges.Values
    22  	}
    23  
    24  	return groupedValue
    25  }
    26  
    27  func (s *ResRangesService) ConvertRangesToField(ranges domain.ResRanges, expression string) (field domain.DefField) {
    28  	field.Note = "ConvertedFromRanges"
    29  
    30  	copier.Copy(&field, ranges)
    31  	field.Range = expression
    32  
    33  	return field
    34  }