biz_object_service.go 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  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. CacheBizObject(bizId, objectId int64) error
  18. }
  19. type bizObjectService struct {
  20. bizObjectRepo *repositories.BizObjectRepo
  21. bizObjectAttrRepo *repositories.BizObjectAttrRepo
  22. }
  23. func NewBizObjectService() BizObjectService {
  24. return &bizObjectService{
  25. bizObjectRepo: repositories.NewBizObjectRepo(datasource.InstanceMaster()),
  26. bizObjectAttrRepo: repositories.NewBizObjectAttrRepo(datasource.InstanceMaster()),
  27. }
  28. }
  29. func (s *bizObjectService) GetList(m map[string]interface{}) ([]viewmodels.BizObjectInfo, error) {
  30. return s.bizObjectRepo.GetList(m)
  31. }
  32. func (s *bizObjectService) GetPage(m map[string]interface{}) (*viewmodels.PageResult, error) {
  33. return s.bizObjectRepo.GetPage(m)
  34. }
  35. func (s *bizObjectService) GetById(bizId, objectId int64) (*viewmodels.BizObjectInfo, error) {
  36. return s.bizObjectRepo.GetById(bizId, objectId)
  37. }
  38. func (s *bizObjectService) Create(o *datamodels.BizObject) error {
  39. o.ObjectId = NewID()
  40. err := s.bizObjectRepo.Create(o)
  41. if err != nil {
  42. return err
  43. }
  44. bizId := o.BizId
  45. objectId := o.ObjectId
  46. return s.CacheBizObject(bizId, objectId)
  47. }
  48. func (s *bizObjectService) Update(o *datamodels.BizObject) error {
  49. err := s.bizObjectRepo.Update(o)
  50. if err != nil {
  51. return err
  52. }
  53. bizId := o.BizId
  54. objectId := o.ObjectId
  55. return s.CacheBizObject(bizId, objectId)
  56. }
  57. func (s *bizObjectService) Delete(m map[string]interface{}) error {
  58. bizId := m["bizId"].(int64)
  59. objectId := m["objectId"].(int64)
  60. err := s.bizObjectRepo.Delete(m)
  61. if err != nil {
  62. return err
  63. }
  64. return s.bizObjectAttrRepo.DeleteByObjectId(bizId, objectId)
  65. }
  66. func (s *bizObjectService) CacheBizObject(bizId, objectId int64) error {
  67. o, err1 := s.bizObjectRepo.GetById(bizId, objectId)
  68. if err1 != nil {
  69. return err1
  70. }
  71. err3 := cache.SetBizObject(o.ObjectCode, o)
  72. if err3 != nil {
  73. return errors.New("Redis缓存Biz Object数据失败")
  74. }
  75. return nil
  76. }