model_service.go 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. package service
  2. import (
  3. "xps/cmd/datasource"
  4. "xps/pkg/common"
  5. "xps/pkg/model/datamodel"
  6. "xps/pkg/model/repository"
  7. "xps/pkg/model/viewmodel"
  8. )
  9. type ModelService interface {
  10. GetList(m map[string]interface{}) ([]viewmodel.ModelInfo, error)
  11. GetTreeData() ([]viewmodel.ModelTreeInfo, error)
  12. GetPage(m map[string]interface{}) (*common.PageResult, error)
  13. GetById(modelId int64) (*viewmodel.ModelInfo, error)
  14. Create(d *datamodel.Model) error
  15. Update(d *datamodel.Model) error
  16. Delete(m map[string]interface{}) error
  17. }
  18. type modelService struct {
  19. modelRepo *repository.ModelRepo
  20. objectRepo *repository.ModelObjectRepo
  21. }
  22. func NewModelService() ModelService {
  23. return &modelService {
  24. modelRepo: repository.NewModelRepo(datasource.InstanceMaster()),
  25. objectRepo: repository.NewModelObjectRepo(datasource.InstanceMaster()),
  26. }
  27. }
  28. func (s *modelService) GetList(m map[string]interface{}) ([]viewmodel.ModelInfo, error) {
  29. return s.modelRepo.GetList(m)
  30. }
  31. func (s *modelService) GetTreeData() ([]viewmodel.ModelTreeInfo, error) {
  32. modelArr, err1 := s.modelRepo.GetAll()
  33. if err1 != nil {
  34. return nil, err1
  35. }
  36. objectArr, err2 := s.objectRepo.GetAll()
  37. if err2 != nil {
  38. return nil, err2
  39. }
  40. modelDataArr := make([]viewmodel.ModelTreeInfo, 0)
  41. for _, model := range modelArr {
  42. modelTreeData := viewmodel.ModelTreeInfo{}
  43. modelId := model.ModelId
  44. children := make([]viewmodel.ModelTreeNodeInfo, 0)
  45. for _, object := range objectArr {
  46. if object.ModelId == modelId {
  47. treeNode := viewmodel.ModelTreeNodeInfo{
  48. Label: object.ObjectTitle,
  49. Value: object.ObjectId,
  50. ObjectId: object.ObjectId,
  51. ObjectType: object.ObjectType,
  52. ObjectTitle: object.ObjectTitle,
  53. ObjectCode: object.ObjectCode,
  54. IsFixed: object.IsFixed,
  55. IsLeaf: 1,
  56. Comment: object.Comment,
  57. }
  58. children = append(children, treeNode)
  59. }
  60. }
  61. modelTreeData.Label = model.ModelTitle
  62. modelTreeData.Value = model.ModelId
  63. modelTreeData.IsLeaf = 0
  64. modelTreeData.ModelId = modelId
  65. modelTreeData.ModelTitle = model.ModelTitle
  66. modelTreeData.ModelDesc = model.ModelDesc
  67. modelTreeData.Children = children
  68. modelDataArr = append(modelDataArr, modelTreeData)
  69. }
  70. return modelDataArr, nil
  71. }
  72. func (s *modelService) GetPage(m map[string]interface{}) (*common.PageResult, error) {
  73. return s.modelRepo.GetPage(m)
  74. }
  75. func (s *modelService) GetById(modelId int64) (*viewmodel.ModelInfo, error) {
  76. return s.modelRepo.GetById(modelId)
  77. }
  78. func (s *modelService) Create(m *datamodel.Model) error {
  79. m.ModelId = NewID()
  80. return s.modelRepo.Create(m)
  81. }
  82. func (s *modelService) Update(m *datamodel.Model) error {
  83. return s.modelRepo.Update(m)
  84. }
  85. func (s *modelService) Delete(m map[string]interface{}) error {
  86. return s.modelRepo.Delete(m)
  87. }