post.go 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
  1. package models
  2. import (
  3. orm "device-manage/common/global"
  4. "device-manage/tools"
  5. )
  6. type Post struct {
  7. PostId int `gorm:"primary_key;AUTO_INCREMENT" json:"postId"` //岗位编号
  8. PostName string `gorm:"size:128;" json:"postName"` //岗位名称
  9. PostCode string `gorm:"size:128;" json:"postCode"` //岗位代码
  10. Sort int `gorm:"" json:"sort"` //岗位排序
  11. Status string `gorm:"size:4;" json:"status"` //状态
  12. Remark string `gorm:"size:255;" json:"remark"` //描述
  13. CreateBy string `gorm:"size:128;" json:"createBy"`
  14. UpdateBy string `gorm:"size:128;" json:"updateBy"`
  15. BaseModel
  16. DataScope string `gorm:"-" json:"dataScope"`
  17. Params string `gorm:"-" json:"params"`
  18. }
  19. func (Post) TableName() string {
  20. return "sys_post"
  21. }
  22. func (e *Post) Create() (Post, error) {
  23. var doc Post
  24. result := orm.Eloquent.Table(e.TableName()).Create(&e)
  25. if result.Error != nil {
  26. err := result.Error
  27. return doc, err
  28. }
  29. doc = *e
  30. return doc, nil
  31. }
  32. func (e *Post) Get() (Post, error) {
  33. var doc Post
  34. table := orm.Eloquent.Table(e.TableName())
  35. if e.PostId != 0 {
  36. table = table.Where("post_id = ?", e.PostId)
  37. }
  38. if e.PostName != "" {
  39. table = table.Where("post_name = ?", e.PostName)
  40. }
  41. if e.PostCode != "" {
  42. table = table.Where("post_code = ?", e.PostCode)
  43. }
  44. if e.Status != "" {
  45. table = table.Where("status = ?", e.Status)
  46. }
  47. if err := table.First(&doc).Error; err != nil {
  48. return doc, err
  49. }
  50. return doc, nil
  51. }
  52. func (e *Post) GetList() ([]Post, error) {
  53. var doc []Post
  54. table := orm.Eloquent.Table(e.TableName())
  55. if e.PostId != 0 {
  56. table = table.Where("post_id = ?", e.PostId)
  57. }
  58. if e.PostName != "" {
  59. table = table.Where("post_name = ?", e.PostName)
  60. }
  61. if e.PostCode != "" {
  62. table = table.Where("post_code = ?", e.PostCode)
  63. }
  64. if e.Status != "" {
  65. table = table.Where("status = ?", e.Status)
  66. }
  67. if err := table.Find(&doc).Error; err != nil {
  68. return doc, err
  69. }
  70. return doc, nil
  71. }
  72. func (e *Post) GetPage(pageSize int, pageIndex int) ([]Post, int, error) {
  73. var doc []Post
  74. table := orm.Eloquent.Table(e.TableName())
  75. if e.PostId != 0 {
  76. table = table.Where("post_id = ?", e.PostId)
  77. }
  78. if e.PostName != "" {
  79. table = table.Where("post_name = ?", e.PostName)
  80. }
  81. if e.PostCode != "" {
  82. table = table.Where("post_code = ?", e.PostCode)
  83. }
  84. if e.Status != "" {
  85. table = table.Where("status = ?", e.Status)
  86. }
  87. // 数据权限控制
  88. dataPermission := new(DataPermission)
  89. dataPermission.UserId, _ = tools.StringToInt(e.DataScope)
  90. table, err := dataPermission.GetDataScope("sys_post", table)
  91. if err != nil {
  92. return nil, 0, err
  93. }
  94. var count int64
  95. if err := table.Order("sort").Offset((pageIndex - 1) * pageSize).Limit(pageSize).Find(&doc).Offset(-1).Limit(-1).Count(&count).Error; err != nil {
  96. return nil, 0, err
  97. }
  98. //table.Where("`deleted_at` IS NULL").Count(&count)
  99. return doc, int(count), nil
  100. }
  101. func (e *Post) Update(id int) (update Post, err error) {
  102. if err = orm.Eloquent.Table(e.TableName()).First(&update, id).Error; err != nil {
  103. return
  104. }
  105. //参数1:是要修改的数据
  106. //参数2:是修改的数据
  107. if err = orm.Eloquent.Table(e.TableName()).Model(&update).Updates(&e).Error; err != nil {
  108. return
  109. }
  110. return
  111. }
  112. func (e *Post) Delete(id int) (success bool, err error) {
  113. if err = orm.Eloquent.Table(e.TableName()).Where("post_id = ?", id).Delete(&Post{}).Error; err != nil {
  114. success = false
  115. return
  116. }
  117. success = true
  118. return
  119. }
  120. func (e *Post) BatchDelete(id []int) (Result bool, err error) {
  121. if err = orm.Eloquent.Table(e.TableName()).Where("post_id in (?)", id).Delete(&Post{}).Error; err != nil {
  122. return
  123. }
  124. Result = true
  125. return
  126. }