edb_info_no_permission_admin.go 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164
  1. package data_manage
  2. import (
  3. "eta/eta_api/global"
  4. "eta/eta_api/utils"
  5. "time"
  6. )
  7. // EdbInfoNoPermissionAdmin 指标不可见用户配置表
  8. type EdbInfoNoPermissionAdmin struct {
  9. Id int `orm:"column(id);pk" gorm:"primaryKey"`
  10. EdbInfoId int `orm:"column(edb_info_id);"`
  11. AdminId int `orm:"column(admin_id);"`
  12. CreateTime time.Time
  13. }
  14. func AddEdbInfoNoPermissionAdmin(item *EdbInfoNoPermissionAdmin) (lastId int64, err error) {
  15. o := global.DbMap[utils.DbNameIndex]
  16. err = o.Create(item).Error
  17. lastId = int64(item.Id)
  18. return
  19. }
  20. // GetAllListByEdbInfoId 根据指标id获取所有的配置
  21. func (item EdbInfoNoPermissionAdmin) GetAllListByEdbInfoId(edbInfoId int) (items []*EdbInfoNoPermissionAdmin, err error) {
  22. o := global.DbMap[utils.DbNameIndex]
  23. sql := `SELECT * FROM edb_info_no_permission_admin WHERE edb_info_id = ? ORDER BY create_time desc`
  24. err = o.Raw(sql, edbInfoId).Find(&items).Error
  25. return
  26. }
  27. // GetAllListByAdminId 根据用户id获取该用户的所有配置
  28. func (item EdbInfoNoPermissionAdmin) GetAllListByAdminId(adminId int) (items []*EdbInfoNoPermissionAdmin, err error) {
  29. o := global.DbMap[utils.DbNameIndex]
  30. sql := `SELECT * FROM edb_info_no_permission_admin WHERE admin_id = ? ORDER BY create_time desc`
  31. err = o.Raw(sql, adminId).Find(&items).Error
  32. return
  33. }
  34. // GetByEdbInfoIdAndAdminId 根据用户id和指标id获取配置
  35. func (item EdbInfoNoPermissionAdmin) GetByEdbInfoIdAndAdminId(adminId, edbInfoId int) (info *EdbInfoNoPermissionAdmin, err error) {
  36. o := global.DbMap[utils.DbNameIndex]
  37. sql := `SELECT * FROM edb_info_no_permission_admin WHERE admin_id = ? AND edb_info_id = ? ORDER BY create_time desc`
  38. err = o.Raw(sql, adminId, edbInfoId).First(&info).Error
  39. return
  40. }
  41. // DeleteAllByEdbInfoId 根据指标id删除所有的配置
  42. func (item EdbInfoNoPermissionAdmin) DeleteAllByEdbInfoId(edbInfoId int) (err error) {
  43. o := global.DbMap[utils.DbNameIndex]
  44. sql := `DELETE FROM edb_info_no_permission_admin WHERE edb_info_id = ? `
  45. err = o.Exec(sql, edbInfoId).Error
  46. return
  47. }
  48. // DeleteByEdbInfoIdAndAdminId 根据指标id和用户id删除配置
  49. func (item EdbInfoNoPermissionAdmin) DeleteByEdbInfoIdAndAdminId(edbInfoId, adminId int) (err error) {
  50. o := global.DbMap[utils.DbNameIndex]
  51. sql := `DELETE FROM edb_info_no_permission_admin WHERE edb_info_id = ? AND admin_id = ? `
  52. err = o.Exec(sql, edbInfoId, adminId).Error
  53. return
  54. }
  55. // ModifyByEdbInfoId 根据指标id和用户ID列表 重新配置
  56. func (item EdbInfoNoPermissionAdmin) ModifyByEdbInfoId(edbInfoId int, adminIdList []int) (err error) {
  57. to := global.DbMap[utils.DbNameIndex].Begin()
  58. if to.Error != nil {
  59. return to.Error
  60. }
  61. defer func() {
  62. if err != nil {
  63. _ = to.Rollback()
  64. } else {
  65. _ = to.Commit()
  66. }
  67. }()
  68. sql := `DELETE FROM edb_info_no_permission_admin WHERE edb_info_id = ? `
  69. err = to.Exec(sql, edbInfoId).Error
  70. if err != nil {
  71. return
  72. }
  73. insertArr := make([]*EdbInfoNoPermissionAdmin, 0)
  74. for _, adminId := range adminIdList {
  75. insertArr = append(insertArr, &EdbInfoNoPermissionAdmin{
  76. //Id: 0,
  77. EdbInfoId: edbInfoId,
  78. AdminId: adminId,
  79. CreateTime: time.Now(),
  80. })
  81. }
  82. if len(insertArr) > 0 {
  83. err = to.CreateInBatches(insertArr, utils.MultiAddNum).Error
  84. }
  85. return
  86. }
  87. // AddByEdbInfoId 根据指标id和用户ID列表 添加配置
  88. func (item EdbInfoNoPermissionAdmin) AddByEdbInfoId(edbInfoId int, adminIdList []int) (err error) {
  89. to := global.DbMap[utils.DbNameIndex].Begin()
  90. if to.Error != nil {
  91. return to.Error
  92. }
  93. defer func() {
  94. if err != nil {
  95. _ = to.Rollback()
  96. } else {
  97. _ = to.Commit()
  98. }
  99. }()
  100. var items []*EdbInfoNoPermissionAdmin
  101. sql := `SELECT * FROM edb_info_no_permission_admin WHERE edb_info_id = ? ORDER BY create_time desc`
  102. err = to.Raw(sql, edbInfoId).Find(&items).Error
  103. if err != nil {
  104. return
  105. }
  106. hasMap := make(map[int]int)
  107. for _, v := range items {
  108. hasMap[v.AdminId] = v.EdbInfoId
  109. }
  110. insertArr := make([]*EdbInfoNoPermissionAdmin, 0)
  111. for _, adminId := range adminIdList {
  112. if _, ok := hasMap[adminId]; !ok {
  113. insertArr = append(insertArr, &EdbInfoNoPermissionAdmin{
  114. //Id: 0,
  115. EdbInfoId: edbInfoId,
  116. AdminId: adminId,
  117. CreateTime: time.Now(),
  118. })
  119. }
  120. }
  121. if len(insertArr) > 0 {
  122. err = to.CreateInBatches(insertArr, utils.MultiAddNum).Error
  123. }
  124. return
  125. }
  126. type NoPermissionChart struct {
  127. AdminId int
  128. ChartInfoId int
  129. }
  130. // GetAllChartListByAdminId 根据用户id获取该用户的所有配置
  131. func (item EdbInfoNoPermissionAdmin) GetAllChartListByAdminId(adminId int) (items []*NoPermissionChart, err error) {
  132. o := global.DbMap[utils.DbNameIndex]
  133. sql := `SELECT a.admin_id,b.chart_info_id FROM edb_info_no_permission_admin AS a
  134. JOIN chart_edb_mapping AS b ON a.edb_info_id=b. edb_info_id
  135. WHERE a.admin_id = ? ORDER BY a.create_time desc `
  136. err = o.Raw(sql, adminId).Find(&items).Error
  137. return
  138. }
  139. // GetChartByEdbInfoIdAndAdminId 根据用户id和指标id获取配置
  140. func (item EdbInfoNoPermissionAdmin) GetChartByEdbInfoIdAndAdminId(adminId, edbInfoId int) (info *NoPermissionChart, err error) {
  141. o := global.DbMap[utils.DbNameIndex]
  142. sql := `SELECT a.admin_id,b.chart_info_id FROM edb_info_no_permission_admin AS a
  143. JOIN chart_edb_mapping AS b ON a.edb_info_id=b. edb_info_id
  144. WHERE a.admin_id = ? AND a.edb_info_id = ? ORDER BY a.create_time desc`
  145. err = o.Raw(sql, adminId, edbInfoId).First(&info).Error
  146. return
  147. }