area.go 2.6KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  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. // GetCaseAreaCount 获取案场区域总数
  11. func (m *CaseDAO) GetCaseAreaCount(caseids string) (int, error) {
  12. var areas []model.SysCaseArea
  13. dao := m.db.Where("status>" + strconv.Itoa(models.STATUS_DEL)).And("case_id in ('" + strings.Replace(caseids, ",", "','", -1) + "')")
  14. err := dao.Find(&areas)
  15. return len(areas), err
  16. }
  17. // GetCaseArea 根据案场获取案场区域
  18. func (m *CaseDAO) GetCaseArea(caseids string, page int, pageSize int) ([]model.SysCaseArea, error) {
  19. var areas []model.SysCaseArea
  20. dao := m.db.Where("status>" + strconv.Itoa(models.STATUS_DEL)).And("case_id in ('" + strings.Replace(caseids, ",", "','", -1) + "')")
  21. err := dao.Limit(pageSize, (page-1)*pageSize).Find(&areas)
  22. return areas, err
  23. }
  24. // AreaInfo 案场区域
  25. type AreaInfo struct {
  26. model.SysCaseArea `xorm:"extends"`
  27. Tables []model.SysCaseTable
  28. }
  29. // GetCaseAreaByCase 根据案场获取案场区域
  30. func (m *CaseDAO) GetCaseAreaByCase(caseid string) ([]AreaInfo, error) {
  31. var areas []AreaInfo
  32. sql := "select * from sys_case_area where status > ? and case_id = ? order by `order`"
  33. err := m.db.Sql(sql, models.STATUS_DEL, caseid).Find(&areas)
  34. return areas, err
  35. }
  36. // GetCaseAreaByID 根据ID获取案场区域
  37. func (m *CaseDAO) GetCaseAreaByID(specid string) (*model.SysCaseArea, error) {
  38. var areas []model.SysCaseArea
  39. err := m.db.Where("status>"+strconv.Itoa(models.STATUS_DEL)).And("area_id=?", specid).Find(&areas)
  40. if err != nil {
  41. return nil, err
  42. }
  43. if len(areas) > 0 {
  44. return &areas[0], nil
  45. }
  46. return nil, nil
  47. }
  48. // AddCaseArea 新增案场区域
  49. func (m *CaseDAO) AddCaseArea(area *model.SysCaseArea) (*model.SysCaseArea, error) {
  50. area.AreaId = utils.GetGUID()
  51. area.Status = models.STATUS_NORMAL
  52. area.CreateDate = time.Now()
  53. user := m.ctx.Get("user").(model.SysUser)
  54. area.CreateUser = user.UserId
  55. _, err := m.db.Insert(area)
  56. return area, err
  57. }
  58. // UpdateCaseArea 修改案场区域
  59. func (m *CaseDAO) UpdateCaseArea(area model.SysCaseArea) error {
  60. var cols = []string{
  61. "area_name",
  62. "area_icon",
  63. "area_icon_white",
  64. "order",
  65. "case_id",
  66. }
  67. _, err := m.db.Cols(cols...).Where("area_id=?", area.AreaId).Update(area)
  68. return err
  69. }
  70. // DelCaseArea 刪除案场区域
  71. func (m *CaseDAO) DelCaseArea(areaid string) error {
  72. var area = model.SysCaseArea{
  73. AreaId: areaid,
  74. Status: models.STATUS_DEL,
  75. }
  76. var cols = []string{
  77. "status",
  78. }
  79. _, err := m.db.Cols(cols...).Where("area_id=?", area.AreaId).Update(area)
  80. return err
  81. }