model_object_attr_service.go 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  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 ModelObjectAttrService interface {
  11. GetList(m map[string]interface{}) ([]viewmodels.ModelObjectAttrInfo, error)
  12. GetPage(m map[string]interface{}) (*viewmodels.PageResult, error)
  13. GetById(modelId, objectId, attrId int64) (*viewmodels.ModelObjectAttrInfo, error)
  14. GetListById(modelId, objectId int64) ([]viewmodels.ModelObjectAttrInfo, error)
  15. Create(d *datamodels.ModelObjectAttr) error
  16. Update(d *datamodels.ModelObjectAttr) error
  17. Delete(m map[string]interface{}) error
  18. }
  19. type modelObjectAttrService struct {
  20. repo *repositories.ModelObjectAttrRepo
  21. }
  22. func NewModelObjectAttrService() ModelObjectAttrService {
  23. return &modelObjectAttrService{
  24. repo: repositories.NewModelObjectAttrRepo(datasource.InstanceMaster()),
  25. }
  26. }
  27. func (s *modelObjectAttrService) GetList(m map[string]interface{}) ([]viewmodels.ModelObjectAttrInfo, error) {
  28. return s.repo.GetList(m)
  29. }
  30. func (s *modelObjectAttrService) GetPage(m map[string]interface{}) (*viewmodels.PageResult, error) {
  31. return s.repo.GetPage(m)
  32. }
  33. func (s *modelObjectAttrService) GetById(modelId, objectId, attrId int64) (*viewmodels.ModelObjectAttrInfo, error) {
  34. return s.repo.GetById(modelId, objectId, attrId)
  35. }
  36. func (s *modelObjectAttrService) GetListById(modelId, objectId int64) ([]viewmodels.ModelObjectAttrInfo, error) {
  37. return s.repo.GetListById(modelId, objectId)
  38. }
  39. func (s *modelObjectAttrService) Create(ObjectAttr *datamodels.ModelObjectAttr) error {
  40. ObjectAttr.AttrId = NewID()
  41. return s.repo.Create(ObjectAttr)
  42. }
  43. func (s *modelObjectAttrService) Update(ObjectAttr *datamodels.ModelObjectAttr) error {
  44. return s.repo.Update(ObjectAttr)
  45. }
  46. func (s *modelObjectAttrService) Delete(m map[string]interface{}) error {
  47. return s.repo.Delete(m)
  48. }
  49. func (s *modelObjectAttrService) CacheModelObjectAttrs(modelId, objectId int64) error {
  50. attrList, err1 := s.repo.GetListById(modelId, objectId)
  51. if err1 != nil {
  52. return err1
  53. }
  54. if len(attrList) <= 0 {
  55. return errors.New("biz Object Attrs Not Exist")
  56. }
  57. objectCode := attrList[0].ObjectCode
  58. err2 := cache.SetModelObjectAttrs(objectCode, attrList)
  59. if err2 != nil {
  60. return errors.New("Redis缓存Model数据失败")
  61. }
  62. return nil
  63. }