package cases import ( "errors" "spaceofcheng/services/models/cases" "spaceofcheng/services/models/model" "spaceofcheng/services/service" "spaceofcheng/services/utils" ) // GetCaseArea 获取案场区域 func (s *CaseServ) GetCaseArea(caseids string, page int, pageSize int) (map[string]interface{}, error) { if pageSize == 0 { pageSize = service.PAGENUM } if page == 0 { page = 1 } areas, err := s.dao.GetCaseArea(caseids, page, pageSize) if err != nil { utils.LogError("获取案场区域失败: " + err.Error()) return nil, errors.New("获取案场区域失败") } total, err := s.dao.GetCaseAreaCount(caseids) if err != nil { utils.LogError("获取案场区域失败: " + err.Error()) return nil, errors.New("获取案场区域失败") } return map[string]interface{}{ "list": areas, "pagesize": pageSize, "pagenum": total, "page": page, }, err } // GetCaseAreaByID 根据区域ID获取区域 func (s *CaseServ) GetCaseAreaByID(areaid string) (*model.SysCaseArea, error) { areas, err := s.dao.GetCaseAreaByID(areaid) return areas, err } // SaveCaseArea 保存区域 func (s *CaseServ) SaveCaseArea(area model.SysCaseArea) (*model.SysCaseArea, error) { var err error if area.AreaName == "" { return nil, utils.LogError("区域名称不能为空!") } if area.AreaId == "" { _, err = s.dao.AddCaseArea(&area) } else { err = s.dao.UpdateCaseArea(area) } if err != nil { utils.LogError("保存案场区域失败: " + err.Error()) return nil, errors.New("保存案场区域失败") } return &area, err } // DelCaseArea 删除区域 func (s *CaseServ) DelCaseArea(areaid string) error { areas, err := s.dao.GetCaseTableByAreaID(areaid) if err != nil { utils.LogError("获取区域失败: " + err.Error()) return errors.New("获取区域失败") } if len(areas) > 0 { return errors.New("区域下存在桌位信息,不允许删除!") } err = s.dao.DelCaseArea(areaid) if err != nil { utils.LogError("删除案场区域失败: " + err.Error()) return errors.New("删除案场区域失败") } return nil } // GetAreaByCase 根据案场获取区域信息 func (s *CaseServ) GetAreaByCase(caseid string) ([]cases.AreaInfo, error) { areas, err := s.dao.GetCaseAreaByCase(caseid) if err != nil { utils.LogError("获取案场区域失败: " + err.Error()) return nil, errors.New("获取案场区域失败") } for index, area := range areas { tables, err := s.dao.GetCaseTableByAreaID(area.AreaId) if err != nil { utils.LogError("获取案场区域失败: " + err.Error()) return nil, errors.New("获取案场区域失败") } areas[index].Tables = tables } return areas, nil }