biz_object_mapping_service.go 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. package service
  2. import (
  3. "errors"
  4. "xps/cmd/cache"
  5. "xps/cmd/datasource"
  6. "xps/pkg/base"
  7. "xps/pkg/biz/datamodel"
  8. "xps/pkg/biz/repository"
  9. "xps/pkg/biz/viewmodel"
  10. )
  11. type BizObjectMappingService interface {
  12. GetList(m map[string]interface{}) ([]viewmodel.BizObjectMappingInfo, error)
  13. GetPage(m map[string]interface{}) (*base.PageResult, error)
  14. GetById(bizId, objectId, mappingId int64) (*viewmodel.BizObjectMappingInfo, error)
  15. GetListById(bizId, objectId int64) ([]viewmodel.BizObjectMappingInfo, error)
  16. Create(d *datamodel.BizObjectMapping) error
  17. Update(d *datamodel.BizObjectMapping) error
  18. Delete(m map[string]interface{}) error
  19. CacheBizObjectMapping(bizId, objectId int64) error
  20. }
  21. type bizObjectMappingService struct {
  22. repo *repository.BizObjectMappingRepo
  23. }
  24. func NewBizObjectMappingService() BizObjectMappingService {
  25. return &bizObjectMappingService{
  26. repo: repository.NewBizObjectMappingRepo(datasource.InstanceMaster()),
  27. }
  28. }
  29. func (s *bizObjectMappingService) GetList(m map[string]interface{}) ([]viewmodel.BizObjectMappingInfo, error) {
  30. return s.repo.GetList(m)
  31. }
  32. func (s *bizObjectMappingService) GetListById(bizId, objectId int64) ([]viewmodel.BizObjectMappingInfo, error) {
  33. return s.repo.GetListById(bizId, objectId)
  34. }
  35. func (s *bizObjectMappingService) GetPage(m map[string]interface{}) (*base.PageResult, error) {
  36. return s.repo.GetPage(m)
  37. }
  38. func (s *bizObjectMappingService) GetById(bizId, objectId, attrId int64) (*viewmodel.BizObjectMappingInfo, error) {
  39. return s.repo.GetById(bizId, objectId, attrId)
  40. }
  41. func (s *bizObjectMappingService) Create(m *datamodel.BizObjectMapping) error {
  42. m.MappingId = NewID()
  43. err := s.repo.Create(m)
  44. if err != nil {
  45. return nil
  46. }
  47. bizId := m.BizId
  48. objectId := m.ObjectId
  49. return s.CacheBizObjectMapping(bizId, objectId)
  50. }
  51. func (s *bizObjectMappingService) Update(m *datamodel.BizObjectMapping) error {
  52. err := s.repo.Update(m)
  53. if err != nil {
  54. return nil
  55. }
  56. bizId := m.BizId
  57. objectId := m.ObjectId
  58. return s.CacheBizObjectMapping(bizId, objectId)
  59. }
  60. func (s *bizObjectMappingService) Delete(m map[string]interface{}) error {
  61. return s.repo.Delete(m)
  62. }
  63. func (s *bizObjectMappingService) CacheBizObjectMapping(bizId, objectId int64) error {
  64. mappingList, err1 := s.repo.GetListById(bizId, objectId)
  65. if err1 != nil {
  66. return err1
  67. }
  68. if len(mappingList) <= 0 {
  69. return errors.New("biz Object Mapping Not Exist")
  70. }
  71. objectCode := mappingList[0].ObjectCode
  72. err2 := cache.SetBizObjectMapping(objectCode, mappingList)
  73. if err2 != nil {
  74. return errors.New("Redis缓存Model数据失败")
  75. }
  76. return nil
  77. }