biz_object_attr_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 BizObjectAttrService interface {
  12. GetList(m map[string]interface{}) ([]viewmodel.BizObjectAttrInfo, error)
  13. GetPage(m map[string]interface{}) (*base.PageResult, error)
  14. GetById(bizId, objectId, attrId int64) (*viewmodel.BizObjectAttrInfo, error)
  15. GetListById(bizId, objectId int64) ([]viewmodel.BizObjectAttrInfo, error)
  16. Create(d *datamodel.BizObjectAttr) error
  17. Update(d *datamodel.BizObjectAttr) error
  18. Delete(m map[string]interface{}) error
  19. CacheBizObjectAttrs(bizId, objectId int64) error
  20. }
  21. type bizObjectAttrService struct {
  22. repo *repository.BizObjectAttrRepo
  23. }
  24. func NewBizObjectAttrService() BizObjectAttrService {
  25. return &bizObjectAttrService{
  26. repo: repository.NewBizObjectAttrRepo(datasource.InstanceMaster()),
  27. }
  28. }
  29. func (s *bizObjectAttrService) GetListById(bizId, objectId int64) ([]viewmodel.BizObjectAttrInfo, error) {
  30. return s.repo.GetListById(bizId, objectId)
  31. }
  32. func (s *bizObjectAttrService) GetList(m map[string]interface{}) ([]viewmodel.BizObjectAttrInfo, error) {
  33. return s.repo.GetList(m)
  34. }
  35. func (s *bizObjectAttrService) GetPage(m map[string]interface{}) (*base.PageResult, error) {
  36. return s.repo.GetPage(m)
  37. }
  38. func (s *bizObjectAttrService) GetById(bizId, objectId, attrId int64) (*viewmodel.BizObjectAttrInfo, error) {
  39. return s.repo.GetById(bizId, objectId, attrId)
  40. }
  41. func (s *bizObjectAttrService) Create(attr *datamodel.BizObjectAttr) error {
  42. attr.AttrId = NewID()
  43. err := s.repo.Create(attr)
  44. if err != nil {
  45. return nil
  46. }
  47. bizId := attr.BizId
  48. objectId := attr.ObjectId
  49. return s.CacheBizObjectAttrs(bizId, objectId)
  50. }
  51. func (s *bizObjectAttrService) Update(attr *datamodel.BizObjectAttr) error {
  52. err := s.repo.Update(attr)
  53. if err != nil {
  54. return nil
  55. }
  56. bizId := attr.BizId
  57. objectId := attr.ObjectId
  58. return s.CacheBizObjectAttrs(bizId, objectId)
  59. }
  60. func (s *bizObjectAttrService) Delete(m map[string]interface{}) error {
  61. return s.repo.Delete(m)
  62. }
  63. func (s *bizObjectAttrService) CacheBizObjectAttrs(bizId, objectId int64) error {
  64. attrList, err1 := s.repo.GetListById(bizId, objectId)
  65. if err1 != nil {
  66. return err1
  67. }
  68. if len(attrList) <= 0 {
  69. return errors.New("biz Object Attrs Not Exist")
  70. }
  71. objectCode := attrList[0].ObjectCode
  72. err2 := cache.SetBizObjectAttrs(objectCode, attrList)
  73. if err2 != nil {
  74. return errors.New("Redis缓存Model数据失败")
  75. }
  76. return nil
  77. }