model_service.go 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. package service
  2. import (
  3. "xps/datamodels"
  4. "xps/datasource"
  5. "xps/repositories"
  6. "xps/viewmodels"
  7. )
  8. type ModelService interface {
  9. GetList(m map[string]interface{}) ([]viewmodels.ModelInfo, error)
  10. GetTreeData() ([]viewmodels.ModelDataInfo, error)
  11. GetPage(m map[string]interface{}) (*viewmodels.PageResult, error)
  12. GetById(modelId int64) (*viewmodels.ModelInfo, error)
  13. Create(d *datamodels.Model) error
  14. Update(d *datamodels.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{}) ([]viewmodels.ModelInfo, error) {
  28. return s.modelRepo.GetList(m)
  29. }
  30. func (s *modelService) GetTreeData() ([]viewmodels.ModelDataInfo, 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([]viewmodels.ModelDataInfo, 0)
  40. for _, model := range modelArr {
  41. modelData := viewmodels.ModelDataInfo{}
  42. modelId := model.ModelId
  43. objects := make([]viewmodels.ModelObjectInfo, 0)
  44. for _, object := range objectArr {
  45. if object.ModelId == modelId {
  46. objects = append(objects, object)
  47. }
  48. }
  49. modelData.ModelId = modelId
  50. modelData.ModelTitle = model.ModelTitle
  51. modelData.ModelDesc = model.ModelDesc
  52. modelData.Objects = objects
  53. modelDataArr = append(modelDataArr, modelData)
  54. }
  55. return modelDataArr, nil
  56. }
  57. func (s *modelService) GetPage(m map[string]interface{}) (*viewmodels.PageResult, error) {
  58. return s.modelRepo.GetPage(m)
  59. }
  60. func (s *modelService) GetById(modelId int64) (*viewmodels.ModelInfo, error) {
  61. return s.modelRepo.GetById(modelId)
  62. }
  63. func (s *modelService) Create(m *datamodels.Model) error {
  64. m.ModelId = NewID()
  65. return s.modelRepo.Create(m)
  66. }
  67. func (s *modelService) Update(m *datamodels.Model) error {
  68. return s.modelRepo.Update(m)
  69. }
  70. func (s *modelService) Delete(m map[string]interface{}) error {
  71. return s.modelRepo.Delete(m)
  72. }