eta_permission.go 3.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. package eta
  2. import (
  3. logger "eta/eta_mini_ht_api/common/component/log"
  4. "eta/eta_mini_ht_api/models"
  5. )
  6. const (
  7. Columns = "chart_permission_id,permission_name,parent_id"
  8. SyncColumns = "chart_permission_id,permission_name,parent_id,sort"
  9. FirstPermissionsColumns = "DISTINCT parent_id"
  10. )
  11. // ChartPermission represents the structure of the chart_permission table.
  12. type ChartPermission struct {
  13. ChartPermissionID int `gorm:"primaryKey;autoIncrement;column:chart_permission_id;comment:主键"`
  14. PermissionName string `gorm:"size:50;default:'';column:permission_name;comment:权限名"`
  15. ParentID int `gorm:"size:11;default:0;column:parent_id;comment:父级权限id"`
  16. Sort int `gorm:"default:null"`
  17. }
  18. // TableName sets the insert table name for this struct type
  19. func (c *ChartPermission) TableName() string {
  20. return "chart_permission"
  21. }
  22. func GetChartPermissionList() (chartPermissionList []ChartPermission, err error) {
  23. db := models.ETA()
  24. err = db.Select(Columns).Where("product_id =? and enabled =?", 1, true).Order("parent_id asc").Order("sort asc").Find(&chartPermissionList).Error
  25. if err == nil && chartPermissionList == nil {
  26. chartPermissionList = []ChartPermission{}
  27. }
  28. return
  29. }
  30. func GetSyncPermissionList() (chartPermissionList []ChartPermission, err error) {
  31. db := models.ETA()
  32. err = db.Select(SyncColumns).Find(&chartPermissionList).Error
  33. if err == nil && chartPermissionList == nil {
  34. chartPermissionList = []ChartPermission{}
  35. }
  36. return
  37. }
  38. func GetPermissionNamesByClassifyID(ids []int) (chartPermissionNames []string, err error) {
  39. sql := "select chart_permission_id, permission_name from chart_permission WHERE chart_permission_id in ?"
  40. err = doSql(sql, &chartPermissionNames, ids)
  41. return
  42. }
  43. func GetPermissionNamesByPermissionIds(ids []int) (chartPermissionNames []string, err error) {
  44. sql := "select permission_name from chart_permission WHERE chart_permission_id in ?"
  45. err = doSql(sql, &chartPermissionNames, ids)
  46. return
  47. }
  48. func GetFirstPermissionsByClassifyID(classifyID int) (chartPermissionList []ChartPermission, err error) {
  49. sql := "select chart_permission_id, permission_name,parent_id from chart_permission WHERE chart_permission_id in( select DISTINCT cp.parent_id from chart_permission_search_key_word_mapping cpskwp left JOIN chart_permission cp on cp.chart_permission_id =cpskwp.chart_permission_id where cpskwp.classify_id=? order by cp.parent_id)"
  50. err = doSql(sql, &chartPermissionList, classifyID)
  51. return
  52. }
  53. func GetSecondPermissionsByClassifyID(classifyID int) (chartPermissionList []ChartPermission, err error) {
  54. sql := "select chart_permission_id, permission_name from chart_permission WHERE chart_permission_id in( select DISTINCT cpskwp.chart_permission_id from chart_permission_search_key_word_mapping cpskwp where cpskwp.classify_id=? order by cpskwp.chart_permission_id)"
  55. err = doSql(sql, &chartPermissionList, classifyID)
  56. return
  57. }
  58. func GetFirstPermissionsByIds(ids []int) (chartPermissionList []ChartPermission, err error) {
  59. sql := "select chart_permission_id, permission_name from chart_permission where chart_permission_id in (select parent_id from chart_permission WHERE chart_permission_id in ?)"
  60. err = doSql(sql, &chartPermissionList, ids)
  61. return
  62. }
  63. func GetPermissionIdByName(name string) (id int, err error) {
  64. sql := "select chart_permission_id from chart_permission where permission_name =? "
  65. err = doSql(sql, &id, name)
  66. return
  67. }
  68. func doSql(sql string, result interface{}, values ...interface{}) (err error) {
  69. db := models.ETA()
  70. err = db.Raw(sql, values...).Find(result).Error
  71. if err != nil {
  72. logger.Error("执行sql[%v]失败:%v", sql, err)
  73. }
  74. return
  75. }