biz_object_oam_params_service.go 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. package service
  2. import (
  3. "errors"
  4. "xps/cache"
  5. "xps/datamodels"
  6. "xps/datasource"
  7. "xps/repositories"
  8. "xps/viewmodels"
  9. )
  10. type BizObjectOAMParamsService interface {
  11. GetList(m map[string]interface{}) ([]viewmodels.BizObjectOAMParamsInfo, error)
  12. GetById(bizId, objectId, oamId, paramsId int64) (*viewmodels.BizObjectOAMParamsInfo, error)
  13. Create(param *datamodels.BizObjectOAMParams) error
  14. Update(param *datamodels.BizObjectOAMParams) error
  15. Delete(m map[string]interface{}) error
  16. }
  17. type bizObjectOAMParamsService struct {
  18. oamRepo *repositories.BizObjectOAMRepo
  19. oamParamsRepo *repositories.BizObjectOAMParamsRepo
  20. }
  21. func NewBizObjectOAMParamsService() BizObjectOAMParamsService {
  22. return &bizObjectOAMParamsService{
  23. oamRepo: repositories.NewBizObjectOAMRepo(datasource.InstanceMaster()),
  24. oamParamsRepo: repositories.NewBizObjectOAMParamsRepo(datasource.InstanceMaster()),
  25. }
  26. }
  27. func (s *bizObjectOAMParamsService) GetList(m map[string]interface{}) ([]viewmodels.BizObjectOAMParamsInfo, error) {
  28. return s.oamParamsRepo.GetList(m)
  29. }
  30. func (s *bizObjectOAMParamsService) GetById(bizId, objectId, oamId, paramsId int64) (*viewmodels.BizObjectOAMParamsInfo, error) {
  31. return s.oamParamsRepo.GetById(bizId, objectId, oamId, paramsId)
  32. }
  33. func (s *bizObjectOAMParamsService) Create(param *datamodels.BizObjectOAMParams) error {
  34. paramsId := NewID()
  35. param.ParamsId = paramsId
  36. err1 := s.oamParamsRepo.Create(param)
  37. if err1 != nil {
  38. return err1
  39. }
  40. return s.CacheObjectOAMData(param.BizId, param.ObjectId, param.OamId)
  41. }
  42. func (s *bizObjectOAMParamsService) Update(param *datamodels.BizObjectOAMParams) error {
  43. err1 := s.oamParamsRepo.Update(param)
  44. if err1 != nil {
  45. return err1
  46. }
  47. return s.CacheObjectOAMData(param.BizId, param.ObjectId, param.OamId)
  48. }
  49. func (s *bizObjectOAMParamsService) Delete(m map[string]interface{}) error {
  50. err1 := s.oamParamsRepo.Delete(m)
  51. if err1 != nil {
  52. return err1
  53. }
  54. return nil
  55. }
  56. func (s *bizObjectOAMParamsService) CacheObjectOAMData(bizId, objectId, oamId int64) error {
  57. oam, err1 := s.oamRepo.GetById(bizId, objectId, oamId)
  58. if err1 != nil {
  59. return err1
  60. }
  61. oamParams, err2 := s.oamParamsRepo.GetListById(bizId, objectId, oamId)
  62. if err2 != nil {
  63. return err2
  64. }
  65. oamData := &viewmodels.BizObjectOAMData{
  66. BizId: oam.BizId,
  67. ObjectId: oam.ObjectId,
  68. OamId: oam.OamId,
  69. OamCode: oam.OamCode,
  70. OamType: oam.OamType,
  71. OamTitle: oam.OamTitle,
  72. OamParams: oamParams,
  73. }
  74. // 缓存数据
  75. err3 := cache.SetBizObjectOAMData(oam.ObjectCode, oam.OamCode, oamData)
  76. if err3 != nil {
  77. return errors.New("Redis缓存Model数据失败")
  78. }
  79. return nil
  80. }