biz_object_service.go 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  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 BizObjectService interface {
  11. GetList(m map[string]interface{}) ([]viewmodels.BizObjectInfo, error)
  12. GetPage(m map[string]interface{}) (*viewmodels.PageResult, error)
  13. GetById(bizId, objectId int64) (*viewmodels.BizObjectInfo, error)
  14. Create(d *datamodels.BizObject) error
  15. Update(d *datamodels.BizObject) error
  16. Delete(m map[string]interface{}) error
  17. GetObjectDataById(bizId, objectId int64) (*viewmodels.BizObjectDataInfo, error)
  18. CacheBizObject(bizId, objectId int64) error
  19. }
  20. type bizObjectService struct {
  21. bizObjectRepo *repositories.BizObjectRepo
  22. bizObjectAttrRepo *repositories.BizObjectAttrRepo
  23. }
  24. func NewBizObjectService() BizObjectService {
  25. return &bizObjectService{
  26. bizObjectRepo: repositories.NewBizObjectRepo(datasource.InstanceMaster()),
  27. bizObjectAttrRepo: repositories.NewBizObjectAttrRepo(datasource.InstanceMaster()),
  28. }
  29. }
  30. func (s *bizObjectService) GetList(m map[string]interface{}) ([]viewmodels.BizObjectInfo, error) {
  31. return s.bizObjectRepo.GetList(m)
  32. }
  33. func (s *bizObjectService) GetPage(m map[string]interface{}) (*viewmodels.PageResult, error) {
  34. return s.bizObjectRepo.GetPage(m)
  35. }
  36. func (s *bizObjectService) GetById(bizId, objectId int64) (*viewmodels.BizObjectInfo, error) {
  37. return s.bizObjectRepo.GetById(bizId, objectId)
  38. }
  39. func (s *bizObjectService) Create(o *datamodels.BizObject) error {
  40. o.ObjectId = NewID()
  41. err := s.bizObjectRepo.Create(o)
  42. if err != nil {
  43. return err
  44. }
  45. bizId := o.BizId
  46. objectId := o.ObjectId
  47. return s.CacheBizObject(bizId, objectId)
  48. }
  49. func (s *bizObjectService) Update(o *datamodels.BizObject) error {
  50. err := s.bizObjectRepo.Update(o)
  51. if err != nil {
  52. return err
  53. }
  54. bizId := o.BizId
  55. objectId := o.ObjectId
  56. return s.CacheBizObject(bizId, objectId)
  57. }
  58. func (s *bizObjectService) Delete(m map[string]interface{}) error {
  59. bizId := m["bizId"].(int64)
  60. objectId := m["objectId"].(int64)
  61. err := s.bizObjectRepo.Delete(m)
  62. if err != nil {
  63. return err
  64. }
  65. return s.bizObjectAttrRepo.DeleteByObjectId(bizId, objectId)
  66. }
  67. func (s *bizObjectService) GetObjectDataById(bizId, objectId int64) (*viewmodels.BizObjectDataInfo, error) {
  68. objectInfo, err := s.bizObjectRepo.GetById(bizId, objectId)
  69. if err != nil {
  70. return nil, err
  71. }
  72. attrs, err := s.bizObjectAttrRepo.GetListById(bizId, objectId)
  73. if err != nil {
  74. return nil, err
  75. }
  76. objectDataInfo := &viewmodels.BizObjectDataInfo{
  77. BizId: objectInfo.BizId,
  78. ObjectId: objectInfo.ObjectId,
  79. ObjectType: objectInfo.ObjectType,
  80. ObjectTitle: objectInfo.ObjectTitle,
  81. ObjectCode: objectInfo.ObjectCode,
  82. Comment: objectInfo.Comment,
  83. IsFixed: objectInfo.IsFixed,
  84. Attrs: attrs,
  85. }
  86. return objectDataInfo, nil
  87. }
  88. func (s *bizObjectService) CacheBizObject(bizId, objectId int64) error {
  89. o, err1 := s.bizObjectRepo.GetById(bizId, objectId)
  90. if err1 != nil {
  91. return err1
  92. }
  93. err3 := cache.SetBizObject(o.ObjectCode, o)
  94. if err3 != nil {
  95. return errors.New("Redis缓存Biz Object数据失败")
  96. }
  97. return nil
  98. }