model_service.go 2.7 KB

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