package service import ( "errors" "xps/cache" "xps/datamodels" "xps/datasource" "xps/repositories" "xps/viewmodels" ) type BizObjectOAMParamsService interface { GetList(m map[string]interface{}) ([]viewmodels.BizObjectOAMParamsInfo, error) GetById(bizId, objectId, oamId, paramsId int64) (*viewmodels.BizObjectOAMParamsInfo, error) Create(param *datamodels.BizObjectOAMParams) error Update(param *datamodels.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{}) ([]viewmodels.BizObjectOAMParamsInfo, error) { return s.oamParamsRepo.GetList(m) } func (s *bizObjectOAMParamsService) GetById(bizId, objectId, oamId, paramsId int64) (*viewmodels.BizObjectOAMParamsInfo, error) { return s.oamParamsRepo.GetById(bizId, objectId, oamId, paramsId) } func (s *bizObjectOAMParamsService) Create(param *datamodels.BizObjectOAMParams) error { paramsId := NewID() param.ParamsId = paramsId err1 := s.oamParamsRepo.Create(param) if err1 != nil { return err1 } return s.CacheObjectOAMParams(param.BizId, param.ObjectId, param.OamId) } func (s *bizObjectOAMParamsService) Update(param *datamodels.BizObjectOAMParams) error { err1 := s.oamParamsRepo.Update(param) if err1 != nil { return err1 } return s.CacheObjectOAMParams(param.BizId, param.ObjectId, param.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 { params, err1 := s.oamParamsRepo.GetListById(bizId, objectId, oamId) if err1 != nil { return err1 } if len(params) <= 0 { return nil } objectCode := params[0].ObjectCode oamCode := params[0].OamCode // 缓存数据 err3 := cache.SetBizObjectOAMParams(objectCode, oamCode, params) if err3 != nil { return errors.New("Redis缓存Model数据失败") } return nil }