赛思维服务调研
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

112 lines
2.8 KiB

  1. package models
  2. import (
  3. "SSW_WebPlatform/db"
  4. "SSW_WebPlatform/utils"
  5. "errors"
  6. "xorm.io/core"
  7. )
  8. type Buildingtab struct {
  9. Cid int `json:"cid" xorm:"not null pk INT(4)"`
  10. Buildingid string `json:"buildingid" xorm:"not null pk VARCHAR(100)"`
  11. Descr string `json:"descr" xorm:"VARCHAR(255)"`
  12. Address string `json:"address" xorm:"VARCHAR(255)"`
  13. Constructionarea float64 `json:"constructionarea" xorm:"DECIMAL(10,2)"`
  14. Totalhouseholds int `json:"totalhouseholds" xorm:"INT(4)"`
  15. Propertytypeid string `json:"propertytypeid" xorm:"VARCHAR(100)"`
  16. Createtime string `json:"createtime" xorm:"VARCHAR(14)"`
  17. Lastmodifytime string `json:"lastmodifytime" xorm:"VARCHAR(14)"`
  18. Lastmodifyby string `json:"lastmodifyby" xorm:"VARCHAR(40)"`
  19. }
  20. func (t *Buildingtab) TableName() string {
  21. return "buildingtab"
  22. }
  23. // 清除string字段的右侧空格
  24. func (t *Buildingtab) Clipped() {
  25. utils.TrimStruct(t, *t)
  26. }
  27. //增
  28. func (t *Buildingtab) Add() error {
  29. e := db.MasterEngine()
  30. countrole := new(Buildingtab)
  31. affw, err := e.Table("buildingtab").ID(core.PK{t.Cid, t.Buildingid}).Count(countrole)
  32. if err != nil {
  33. return err
  34. }
  35. if affw > 0 {
  36. return errors.New("数据已经存在!")
  37. }
  38. _, err = e.Table("buildingtab").Insert(t)
  39. if err != nil {
  40. return err
  41. }
  42. return nil
  43. }
  44. //删
  45. func (t *Buildingtab) Del() bool {
  46. e := db.MasterEngine()
  47. _, err := e.ID(core.PK{t.Cid, t.Buildingid}).Delete(&Buildingtab{})
  48. if err != nil {
  49. return false
  50. }
  51. return true
  52. }
  53. //改
  54. func (t *Buildingtab) Update() bool {
  55. e := db.MasterEngine()
  56. _, err := e.ID(core.PK{t.Cid, t.Buildingid}).Update(t)
  57. if err != nil {
  58. return false
  59. }
  60. return true
  61. }
  62. //查
  63. func (t *Buildingtab) SelectOne() (Buildingtab, error) {
  64. e := db.MasterEngine()
  65. var data Buildingtab
  66. _, err := e.ID(core.PK{t.Cid, t.Buildingid}).Get(&data)
  67. if err != nil {
  68. return data, err
  69. }
  70. return data, nil
  71. }
  72. //分页
  73. func (t *Buildingtab) GetPage(pageSize int, pageIndex int) ([]Buildingtab, int, error) {
  74. data := make([]Buildingtab, 0)
  75. e := db.MasterEngine()
  76. query := e.Table("buildingtab").Where("cid = ? ", t.Cid)
  77. table := e.Table("buildingtab").Where("cid = ? ", t.Cid)
  78. if !utils.ValueIsEmpty(t.Descr) {
  79. descr := "%" + t.Descr + "%"
  80. query = query.And("descr like ?", descr)
  81. table = query.And("descr like ?", descr)
  82. }
  83. Offset := (pageIndex - 1) * pageSize
  84. err := query.Limit(pageSize,Offset).Desc("createtime").Find(&data)
  85. pcount := new(Buildingtab)
  86. count, err := table.Count(pcount)
  87. if err != nil {
  88. return data, 0, err
  89. }
  90. return data, int(count), nil
  91. }
  92. //查询所有
  93. func (t *Buildingtab) SelectAll() ([]*Buildingtab, error) {
  94. e := db.MasterEngine()
  95. data := make([]*Buildingtab, 0)
  96. err := e.Where("cid = ?", t.Cid).Find(&data)
  97. if err != nil {
  98. return data, err
  99. }
  100. return data, nil
  101. }