package service import ( "errors" "xps/cache" "xps/datamodels" "xps/datasource" "xps/repositories" "xps/viewmodels" ) type ModelObjectOAMService interface { GetList(m map[string]interface{}) ([]viewmodels.ModelObjectOAMInfo, error) GetListById(modelId, objectId int64) ([]viewmodels.ModelObjectOAMInfo, error) GetById(modelId, objectId, oamId int64) (*viewmodels.ModelObjectOAMInfo, error) Create(d *datamodels.ModelObjectOAM) error Update(d *datamodels.ModelObjectOAM) error Delete(m map[string]interface{}) error CacheBizObjectOAM(modelId, objectId, oamId int64) error } type modelObjectOAMService struct { repo *repositories.ModelObjectOAMRepo } func NewModelObjectOAMService() ModelObjectOAMService { return &modelObjectOAMService{ repo: repositories.NewModelObjectOAMRepo(datasource.InstanceMaster()), } } func (s *modelObjectOAMService) GetList(m map[string]interface{}) ([]viewmodels.ModelObjectOAMInfo, error) { return s.repo.GetList(m) } func (s *modelObjectOAMService) GetListById(modelId, objectId int64) ([]viewmodels.ModelObjectOAMInfo, error) { return s.repo.GetListById(modelId, objectId) } func (s *modelObjectOAMService) GetById(modelId, objectId, oamId int64) (*viewmodels.ModelObjectOAMInfo, error) { return s.repo.GetById(modelId, objectId, oamId) } func (s *modelObjectOAMService) Create(o *datamodels.ModelObjectOAM) error { oamId := NewID() o.OamId = oamId err := s.repo.Create(o) if err != nil { return err } modelId := o.ModelId objectId := o.ObjectId return s.CacheBizObjectOAM(modelId, objectId, oamId) } func (s *modelObjectOAMService) Update(o *datamodels.ModelObjectOAM) error { err := s.repo.Update(o) if err != nil { return err } modelId := o.ModelId objectId := o.ObjectId oamId := o.OamId return s.CacheBizObjectOAM(modelId, objectId, oamId) } func (s *modelObjectOAMService) Delete(m map[string]interface{}) error { return s.repo.Delete(m) } func (s *modelObjectOAMService) CacheBizObjectOAM(modelId, objectId, oamId int64) error { oam, err1 := s.repo.GetById(modelId, objectId, oamId) if err1 != nil { return err1 } err3 := cache.SetModelObjectOAM(oam.ObjectCode, oam.OamCode, oam) if err3 != nil { return errors.New("Redis缓存Model数据失败") } return nil }