48 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
		
		
			
		
	
	
			48 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
|  | package service | ||
|  | 
 | ||
|  | import ( | ||
|  | 	"context" | ||
|  | 	"errors" | ||
|  | 	"hm-server/app/main/model" | ||
|  | ) | ||
|  | 
 | ||
|  | type DictService struct { | ||
|  | 	adminDictTypeModel model.AdminDictTypeModel | ||
|  | 	adminDictDataModel model.AdminDictDataModel | ||
|  | } | ||
|  | 
 | ||
|  | func NewDictService(adminDictTypeModel model.AdminDictTypeModel, adminDictDataModel model.AdminDictDataModel) *DictService { | ||
|  | 	return &DictService{adminDictTypeModel: adminDictTypeModel, adminDictDataModel: adminDictDataModel} | ||
|  | } | ||
|  | func (s *DictService) GetDictLabel(ctx context.Context, dictType string, dictValue int64) (string, error) { | ||
|  | 	dictTypeModel, err := s.adminDictTypeModel.FindOneByDictType(ctx, dictType) | ||
|  | 	if err != nil { | ||
|  | 		return "", err | ||
|  | 	} | ||
|  | 	if dictTypeModel.Status != 1 { | ||
|  | 		return "", errors.New("字典类型未启用") | ||
|  | 	} | ||
|  | 	dictData, err := s.adminDictDataModel.FindOneByDictTypeDictValue(ctx, dictTypeModel.DictType, dictValue) | ||
|  | 	if err != nil { | ||
|  | 		return "", err | ||
|  | 	} | ||
|  | 	if dictData.Status != 1 { | ||
|  | 		return "", errors.New("字典数据未启用") | ||
|  | 	} | ||
|  | 	return dictData.DictLabel, nil | ||
|  | } | ||
|  | func (s *DictService) GetDictValue(ctx context.Context, dictType string, dictLabel string) (int64, error) { | ||
|  | 	dictTypeModel, err := s.adminDictTypeModel.FindOneByDictType(ctx, dictType) | ||
|  | 	if err != nil { | ||
|  | 		return 0, err | ||
|  | 	} | ||
|  | 	if dictTypeModel.Status != 1 { | ||
|  | 		return 0, errors.New("字典类型未启用") | ||
|  | 	} | ||
|  | 	dictData, err := s.adminDictDataModel.FindOneByDictTypeDictLabel(ctx, dictTypeModel.DictType, dictLabel) | ||
|  | 	if err != nil { | ||
|  | 		return 0, err | ||
|  | 	} | ||
|  | 	return dictData.DictValue, nil | ||
|  | } |