eta_permission.go 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  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. FirstPermissionsColumns = "DISTINCT parent_id"
  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. }
  16. // TableName sets the insert table name for this struct type
  17. func (c *ChartPermission) TableName() string {
  18. return "chart_permission"
  19. }
  20. func GetChartPermissionList() (chartPermissionList []ChartPermission, err error) {
  21. db := models.ETA()
  22. err = db.Select(Columns).Where("product_id =? and enabled =?", 1, true).Order("parent_id asc").Order("sort asc").Find(&chartPermissionList).Error
  23. if err == nil && chartPermissionList == nil {
  24. chartPermissionList = []ChartPermission{}
  25. }
  26. return
  27. }
  28. func GetPermissionNamesByClassifyID(ids []int) (chartPermissionNames []string, err error) {
  29. sql := "select chart_permission_id, permission_name from chart_permission WHERE chart_permission_id in ?"
  30. err = doSql(sql, &chartPermissionNames, ids)
  31. return
  32. }
  33. func GetPermissionNamesByPermissionIds(ids []int) (chartPermissionNames []string, err error) {
  34. sql := "select chart_permission_id, permission_name from chart_permission WHERE chart_permission_id in ?"
  35. err = doSql(sql, &chartPermissionNames, ids)
  36. return
  37. }
  38. func GetFirstPermissionsByClassifyID(classifyID int) (chartPermissionList []ChartPermission, err error) {
  39. 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)"
  40. err = doSql(sql, &chartPermissionList, classifyID)
  41. return
  42. }
  43. func GetSecondPermissionsByClassifyID(classifyID int) (chartPermissionList []ChartPermission, err error) {
  44. 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)"
  45. err = doSql(sql, &chartPermissionList, classifyID)
  46. return
  47. }
  48. func GetFirstPermissionsByIds(ids []int) (chartPermissionList []ChartPermission, err error) {
  49. 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 ?)"
  50. err = doSql(sql, &chartPermissionList, ids)
  51. return
  52. }
  53. func doSql(sql string, result interface{}, values ...interface{}) (err error) {
  54. db := models.ETA()
  55. err = db.Raw(sql, values...).Find(result).Error
  56. if err != nil {
  57. logger.Error("执行sql[%v]失败:%v", sql, err)
  58. }
  59. return
  60. }