123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. package cases
  2. import (
  3. "spaceofcheng/services/models"
  4. "spaceofcheng/services/models/model"
  5. "spaceofcheng/services/utils"
  6. "strconv"
  7. "strings"
  8. "time"
  9. )
  10. // GetCaseTableCount 获取桌位总数
  11. func (m *CaseDAO) GetCaseTableCount(caseids string) (int, error) {
  12. var tables []CaseTableInfo
  13. sql := `select a.*,b.area_name,c.case_name from sys_case_table a
  14. inner join sys_case_area b on a.area_id=b.area_id
  15. inner join sys_case c on a.case_id=c.case_id
  16. where a.status>` + strconv.Itoa(models.STATUS_DEL) + ` and b.status>` + strconv.Itoa(models.STATUS_DEL) +
  17. ` and c.status>` + strconv.Itoa(models.STATUS_DEL) + ` and a.case_id in ('` +
  18. strings.Replace(caseids, ",", "','", -1) + `')`
  19. err := m.db.Sql(sql).Find(&tables)
  20. return len(tables), err
  21. }
  22. // CaseTableInfo 案场桌位
  23. type CaseTableInfo struct {
  24. model.SysCaseTable `xorm:"extends"`
  25. AreaName string
  26. CaseName string
  27. }
  28. // GetCaseTable 根据案场获取桌位
  29. func (m *CaseDAO) GetCaseTable(caseids string, page int, pageSize int) ([]CaseTableInfo, error) {
  30. var tables []CaseTableInfo
  31. sql := `select a.*,b.area_name,c.case_name from sys_case_table a
  32. inner join sys_case_area b on a.area_id=b.area_id
  33. inner join sys_case c on a.case_id=c.case_id
  34. where a.status>` + strconv.Itoa(models.STATUS_DEL) + ` and b.status>` + strconv.Itoa(models.STATUS_DEL) +
  35. ` and c.status>` + strconv.Itoa(models.STATUS_DEL) + ` and a.case_id in ('` +
  36. strings.Replace(caseids, ",", "','", -1) + `') order by create_date desc limit ` + strconv.Itoa((page-1)*pageSize) + `, ` + strconv.Itoa(pageSize)
  37. err := m.db.Sql(sql).Find(&tables)
  38. return tables, err
  39. }
  40. // GetCaseTableByAreaID 根据区域ID获取桌位信息
  41. func (m *CaseDAO) GetCaseTableByAreaID(areaid string) ([]model.SysCaseTable, error) {
  42. var tables []model.SysCaseTable
  43. err := m.db.Where("status>"+strconv.Itoa(models.STATUS_DEL)).And("area_id=?", areaid).Asc("order").Find(&tables)
  44. return tables, err
  45. }
  46. // GetCaseTableByID 根据ID获取桌位
  47. func (m *CaseDAO) GetCaseTableByID(tableid string) (*model.SysCaseTable, error) {
  48. var tables []model.SysCaseTable
  49. err := m.db.Where("status>"+strconv.Itoa(models.STATUS_DEL)).And("table_id=?", tableid).Find(&tables)
  50. if err != nil {
  51. return nil, err
  52. }
  53. if len(tables) > 0 {
  54. return &tables[0], nil
  55. }
  56. return nil, nil
  57. }
  58. // AddCaseTable 新增桌位
  59. func (m *CaseDAO) AddCaseTable(area *model.SysCaseTable) (*model.SysCaseTable, error) {
  60. area.TableId = utils.GetGUID()
  61. area.Status = models.STATUS_NORMAL
  62. area.CreateDate = time.Now()
  63. user := m.ctx.Get("user").(model.SysUser)
  64. area.CreateUser = user.UserId
  65. _, err := m.db.Insert(area)
  66. return area, err
  67. }
  68. // UpdateCaseTable 修改桌位
  69. func (m *CaseDAO) UpdateCaseTable(area model.SysCaseTable) error {
  70. var cols = []string{
  71. "table_no",
  72. "order",
  73. "remark",
  74. "case_id",
  75. "area_id",
  76. }
  77. _, err := m.db.Cols(cols...).Where("table_id=?", area.TableId).Update(area)
  78. return err
  79. }
  80. // DelCaseTable 刪除桌位
  81. func (m *CaseDAO) DelCaseTable(tableid string) error {
  82. var area = model.SysCaseTable{
  83. TableId: tableid,
  84. Status: models.STATUS_DEL,
  85. }
  86. var cols = []string{
  87. "status",
  88. }
  89. _, err := m.db.Cols(cols...).Where("table_id=?", area.TableId).Update(area)
  90. return err
  91. }