biz_object_service.go 2.5 KB

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