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

  1. package models
  2. import (
  3. "lapp_-wy/db"
  4. "lapp_-wy/utils"
  5. "errors"
  6. "xorm.io/core"
  7. )
  8. type SubjectCategory struct {
  9. Cid int `json:"cid" xorm:"not null pk INT(11)"`
  10. SubjectCategoryid string `json:"subject_categoryid" xorm:"not null pk comment('问题类别ID') VARCHAR(20)"`
  11. Descr string `json:"descr" xorm:"not null comment('类别描述') VARCHAR(60)"`
  12. CatparaS1 string `json:"catpara_s1" xorm:"default 'NULL' comment('类别参数1') VARCHAR(100)"`
  13. CatparaS2 string `json:"catpara_s2" xorm:"default 'NULL' comment('类别参数2') VARCHAR(100)"`
  14. CatparaI1 int `json:"catpara_i1" xorm:"default NULL comment('类别参数1') INT(11)"`
  15. CatparaI2 int `json:"catpara_i2" xorm:"default NULL comment('类别参数2') INT(11)"`
  16. Createtime string `json:"createtime" xorm:"default 'NULL' comment('创建时间') VARCHAR(40)"`
  17. Lastmodifytime string `json:"lastmodifytime" xorm:"default 'NULL' comment('最近更新时间') VARCHAR(40)"`
  18. Lastmodifyby string `json:"lastmodifyby" xorm:"default 'NULL' comment('修改人员') VARCHAR(40)"`
  19. }
  20. func (t *SubjectCategory) TableName() string {
  21. return "subject_category"
  22. }
  23. // 清除string字段的右侧空格
  24. func (t *SubjectCategory) Clipped() {
  25. utils.TrimStruct(t, *t)
  26. }
  27. //增
  28. func (t *SubjectCategory) Add() error {
  29. e := db.MasterEngine()
  30. countrole := new(SubjectCategory)
  31. affw, err := e.Table("subject_category").ID(core.PK{t.Cid, t.SubjectCategoryid}).Count(countrole)
  32. if err != nil {
  33. return err
  34. }
  35. if affw > 0 {
  36. return errors.New("数据已经存在!")
  37. }
  38. _, err = e.Table("subject_category").Insert(t)
  39. if err != nil {
  40. return err
  41. }
  42. return nil
  43. }
  44. //删
  45. func (t *SubjectCategory) Del() bool {
  46. e := db.MasterEngine()
  47. _, err := e.ID(core.PK{t.Cid, t.SubjectCategoryid}).Delete(&SubjectCategory{})
  48. if err != nil {
  49. return false
  50. }
  51. return true
  52. }
  53. //改
  54. func (t *SubjectCategory) Update() bool {
  55. e := db.MasterEngine()
  56. _, err := e.ID(core.PK{t.Cid, t.SubjectCategoryid}).Update(t)
  57. if err != nil {
  58. return false
  59. }
  60. return true
  61. }
  62. //查
  63. func (t *SubjectCategory) SelectOne() (SubjectCategory, error) {
  64. e := db.MasterEngine()
  65. var data SubjectCategory
  66. _, err := e.ID(core.PK{t.Cid, t.SubjectCategoryid}).Get(&data)
  67. if err != nil {
  68. return data, err
  69. }
  70. return data, nil
  71. }
  72. //分页
  73. func (t *SubjectCategory) GetPage(pageSize int, pageIndex int) ([]SubjectCategory, int, error) {
  74. data := make([]SubjectCategory, 0)
  75. e := db.MasterEngine()
  76. query := e.Table("subject_category").Where("cid = ? ", t.Cid)
  77. table := e.Table("subject_category").Where("cid = ? ", t.Cid)
  78. if !utils.ValueIsEmpty(t.SubjectCategoryid) {
  79. query = query.And("subject_categoryid = ?", t.SubjectCategoryid)
  80. table = table.And("subject_categoryid = ?", t.SubjectCategoryid)
  81. }
  82. Offset := (pageIndex - 1) * pageSize
  83. err := query.Limit(pageSize, Offset).Desc("createtime").Find(&data)
  84. pcount := new(SubjectCategory)
  85. count, err := table.Count(pcount)
  86. if err != nil {
  87. return data, 0, err
  88. }
  89. return data, int(count), nil
  90. }
  91. //类型集合
  92. func (t *SubjectCategory) SelectArr() (data []SubjectCategory, err error) {
  93. e := db.MasterEngine()
  94. err = e.Table(t.TableName()).Select("subject_categoryid,descr").Where("cid = ?", t.Cid).Find(&data)
  95. if err != nil {
  96. return nil, err
  97. }
  98. return data, nil
  99. }