沈阳玫苑物业管理后端
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.

109 lines
3.1 KiB

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