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