1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. package cases
  2. import (
  3. "errors"
  4. "spaceofcheng/services/models/cases"
  5. "spaceofcheng/services/models/model"
  6. "spaceofcheng/services/service"
  7. "spaceofcheng/services/utils"
  8. )
  9. // GetCaseArea 获取案场区域
  10. func (s *CaseServ) GetCaseArea(caseids string, page int, pageSize int) (map[string]interface{}, error) {
  11. if pageSize == 0 {
  12. pageSize = service.PAGENUM
  13. }
  14. if page == 0 {
  15. page = 1
  16. }
  17. areas, err := s.dao.GetCaseArea(caseids, page, pageSize)
  18. if err != nil {
  19. utils.LogError("获取案场区域失败: " + err.Error())
  20. return nil, errors.New("获取案场区域失败")
  21. }
  22. total, err := s.dao.GetCaseAreaCount(caseids)
  23. if err != nil {
  24. utils.LogError("获取案场区域失败: " + err.Error())
  25. return nil, errors.New("获取案场区域失败")
  26. }
  27. return map[string]interface{}{
  28. "list": areas,
  29. "pagesize": pageSize,
  30. "pagenum": total,
  31. "page": page,
  32. }, err
  33. }
  34. // GetCaseAreaByID 根据区域ID获取区域
  35. func (s *CaseServ) GetCaseAreaByID(areaid string) (*model.SysCaseArea, error) {
  36. areas, err := s.dao.GetCaseAreaByID(areaid)
  37. return areas, err
  38. }
  39. // SaveCaseArea 保存区域
  40. func (s *CaseServ) SaveCaseArea(area model.SysCaseArea) (*model.SysCaseArea, error) {
  41. var err error
  42. if area.AreaName == "" {
  43. return nil, utils.LogError("区域名称不能为空!")
  44. }
  45. if area.AreaId == "" {
  46. _, err = s.dao.AddCaseArea(&area)
  47. } else {
  48. err = s.dao.UpdateCaseArea(area)
  49. }
  50. if err != nil {
  51. utils.LogError("保存案场区域失败: " + err.Error())
  52. return nil, errors.New("保存案场区域失败")
  53. }
  54. return &area, err
  55. }
  56. // DelCaseArea 删除区域
  57. func (s *CaseServ) DelCaseArea(areaid string) error {
  58. areas, err := s.dao.GetCaseTableByAreaID(areaid)
  59. if err != nil {
  60. utils.LogError("获取区域失败: " + err.Error())
  61. return errors.New("获取区域失败")
  62. }
  63. if len(areas) > 0 {
  64. return errors.New("区域下存在桌位信息,不允许删除!")
  65. }
  66. err = s.dao.DelCaseArea(areaid)
  67. if err != nil {
  68. utils.LogError("删除案场区域失败: " + err.Error())
  69. return errors.New("删除案场区域失败")
  70. }
  71. return nil
  72. }
  73. // GetAreaByCase 根据案场获取区域信息
  74. func (s *CaseServ) GetAreaByCase(caseid string) ([]cases.AreaInfo, error) {
  75. areas, err := s.dao.GetCaseAreaByCase(caseid)
  76. if err != nil {
  77. utils.LogError("获取案场区域失败: " + err.Error())
  78. return nil, errors.New("获取案场区域失败")
  79. }
  80. for index, area := range areas {
  81. tables, err := s.dao.GetCaseTableByAreaID(area.AreaId)
  82. if err != nil {
  83. utils.LogError("获取案场区域失败: " + err.Error())
  84. return nil, errors.New("获取案场区域失败")
  85. }
  86. areas[index].Tables = tables
  87. }
  88. return areas, nil
  89. }