package service import ( "xps/datamodel" "xps/datasource" "xps/repositories" "xps/viewmodel" ) type BizService interface { GetList(m map[string]interface{}) ([]viewmodel.BizInfo, error) GetTreeData() ([]viewmodel.BizTreeInfo, error) GetPage(m map[string]interface{}) (*viewmodel.PageResult, error) GetById(bizId int64) (*viewmodel.BizInfo, error) Create(d *datamodel.Biz) error Update(d *datamodel.Biz) error Delete(m map[string]interface{}) error } type bizService struct { bizRepo *repositories.BizRepo bizObjectRepo *repositories.BizObjectRepo } func NewBizService() BizService { return &bizService{ bizRepo: repositories.NewBizRepo(datasource.InstanceMaster()), bizObjectRepo: repositories.NewBizObjectRepo(datasource.InstanceMaster()), } } func (s *bizService) GetTreeData() ([]viewmodel.BizTreeInfo, error) { bizArr, err1 := s.bizRepo.GetAll() if err1 != nil { return nil, err1 } bizObjectArr, err2 := s.bizObjectRepo.GetAll() if err2 != nil { return nil, err2 } bizDataArr := make([]viewmodel.BizTreeInfo, 0) for _, biz := range bizArr { bizData := viewmodel.BizTreeInfo{} bizId := biz.BizId treeNodes := make([]viewmodel.BizTreeNodeInfo, 0) for _, object := range bizObjectArr { if object.BizId == bizId { treeNode := viewmodel.BizTreeNodeInfo{ Label: object.ObjectTitle, Value: object.ObjectId, IsLeaf: 1, ObjectId: object.ObjectId, ObjectType: object.ObjectType, ObjectTitle: object.ObjectTitle, ObjectCode: object.ObjectCode, IsFixed: object.IsFixed, Comment: object.Comment, } treeNodes = append(treeNodes, treeNode) } } bizData.Label = biz.BizTitle bizData.Value = bizId bizData.IsLeaf = 0 bizData.BizId = bizId bizData.BizTitle = biz.BizTitle bizData.BizDesc = biz.BizDesc bizData.Children = treeNodes bizDataArr = append(bizDataArr, bizData) } return bizDataArr, nil } func (s *bizService) GetList(m map[string]interface{}) ([]viewmodel.BizInfo, error) { return s.bizRepo.GetList(m) } func (s *bizService) GetPage(m map[string]interface{}) (*viewmodel.PageResult, error) { return s.bizRepo.GetPage(m) } func (s *bizService) GetById(bizId int64) (*viewmodel.BizInfo, error) { return s.bizRepo.GetById(bizId) } func (s *bizService) Create(m *datamodel.Biz) error { m.BizId = NewID() return s.bizRepo.Create(m) } func (s *bizService) Update(m *datamodel.Biz) error { return s.bizRepo.Update(m) } func (s *bizService) Delete(m map[string]interface{}) error { return s.bizRepo.Delete(m) }