package service import ( "errors" "xps/cache" "xps/datamodel" "xps/datasource" "xps/repositories" "xps/viewmodel" ) type BizObjectOAMParamsService interface { GetList(m map[string]interface{}) ([]viewmodel.BizObjectOAMParamsInfo, error) GetById(bizId, objectId, oamId, paramId int64) (*viewmodel.BizObjectOAMParamsInfo, error) Create(param *datamodel.BizObjectOAMParams) error Update(param *datamodel.BizObjectOAMParams) error Delete(m map[string]interface{}) error CacheObjectOAMParams(bizId, objectId, oamId int64) error } type bizObjectOAMParamsService struct { oamRepo *repositories.BizObjectOAMRepo oamParamsRepo *repositories.BizObjectOAMParamsRepo } func NewBizObjectOAMParamsService() BizObjectOAMParamsService { return &bizObjectOAMParamsService{ oamRepo: repositories.NewBizObjectOAMRepo(datasource.InstanceMaster()), oamParamsRepo: repositories.NewBizObjectOAMParamsRepo(datasource.InstanceMaster()), } } func (s *bizObjectOAMParamsService) GetList(m map[string]interface{}) ([]viewmodel.BizObjectOAMParamsInfo, error) { return s.oamParamsRepo.GetList(m) } func (s *bizObjectOAMParamsService) GetById(bizId, objectId, oamId, paramId int64) (*viewmodel.BizObjectOAMParamsInfo, error) { return s.oamParamsRepo.GetById(bizId, objectId, oamId, paramId) } func (s *bizObjectOAMParamsService) Create(param *datamodel.BizObjectOAMParams) error { paramId := NewID() param.ParamId = paramId err1 := s.oamParamsRepo.Create(param) if err1 != nil { return err1 } bizId := param.BizId objectId := param.ObjectId oamId := param.OamId return s.CacheObjectOAMParams(bizId, objectId, oamId) } func (s *bizObjectOAMParamsService) Update(param *datamodel.BizObjectOAMParams) error { err1 := s.oamParamsRepo.Update(param) if err1 != nil { return err1 } bizId := param.BizId objectId := param.ObjectId oamId := param.OamId return s.CacheObjectOAMParams(bizId, objectId, oamId) } func (s *bizObjectOAMParamsService) Delete(m map[string]interface{}) error { err1 := s.oamParamsRepo.Delete(m) if err1 != nil { return err1 } return nil } func (s *bizObjectOAMParamsService) CacheObjectOAMParams(bizId, objectId, oamId int64) error { dataList, err1 := s.oamParamsRepo.GetListById(bizId, objectId, oamId) if err1 != nil { return err1 } if len(dataList) <= 0 { return nil } objectCode := dataList[0].ObjectCode oamCode := dataList[0].OamCode // 缓存数据 err3 := cache.SetBizObjectOAMParams(objectCode, oamCode, dataList) if err3 != nil { return errors.New("Redis缓存Model数据失败") } return nil }