chart_permission.go 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. package models
  2. import (
  3. "eta/eta_mini_bridge/utils"
  4. "fmt"
  5. "strings"
  6. "time"
  7. "github.com/beego/beego/v2/client/orm"
  8. )
  9. type ChartPermission struct {
  10. ChartPermissionId int `orm:"column(chart_permission_id);pk" description:"问题ID"`
  11. ChartPermissionName string `description:"名称"`
  12. PermissionName string `description:"权限名"`
  13. Sort int `description:"排序"`
  14. Enabled int `description:"是否可用"`
  15. CreatedTime time.Time `description:"创建时间"`
  16. LastUpdatedTime time.Time `description:"更新时间"`
  17. TeleconferenceSort int `description:"电话会类型排序"`
  18. Remark string `description:"备注"`
  19. ClassifyName string `description:"分类名称"`
  20. ProductName string `description:"产品名称" `
  21. ProductId int `description:"产品ID"`
  22. ImageURL string `orm:"column(image_url);" description:"图片地址"`
  23. ShowType int `description:"1:查研观向小程序展示"`
  24. IsOther int `description:"是否是其他,用于查研观向小程序后台展示"`
  25. IsReport int `description:"是否是报告,用于查研观向小程序前台报告展示"`
  26. CygxAuth int `description:"是否是权限,用于查研观向小程序前台权限校验"`
  27. PermissionType int `description:"1主观,2客观"`
  28. YbImgUrl string `description:"研报小程序报告列表icon"`
  29. ProductPermissionName string `description:"种类权限名称"`
  30. PriceDrivenState int `description:"品种价格驱动开启状态 0-关闭 1-开启"`
  31. ImageUrlM string `description:"图片地址(查研观向移动端)"`
  32. ParentId int `description:"父级权限id"`
  33. IsPublic int `description:"是否是公有权限1:公有权限,0私有权限"`
  34. }
  35. // GetChildChartPermissionListById 获取品种权限列表
  36. func GetChartPermissionList() (items []*ChartPermission, err error) {
  37. o := orm.NewOrmUsingDB("rddp")
  38. sql := `SELECT * FROM chart_permission WHERE enabled=1 ORDER BY sort ASC`
  39. _, err = o.Raw(sql).QueryRows(&items)
  40. return
  41. }
  42. // GetChildChartPermissionListById 获取品种权限列表
  43. func GetChildChartPermissionListById(chartPermissionId int) (items []*ChartPermission, err error) {
  44. o := orm.NewOrmUsingDB("rddp")
  45. sql := `SELECT * FROM chart_permission WHERE enabled=1 AND parent_id=? ORDER BY sort ASC`
  46. _, err = o.Raw(sql, chartPermissionId).QueryRows(&items)
  47. return
  48. }
  49. // GetChartPermissionListById 获取品种权限列表
  50. func GetChartPermissionIdsByIds(chartPermissionIds []string) (items []*ChartPermission, err error) {
  51. o := orm.NewOrmUsingDB("rddp")
  52. sql := `SELECT chart_permission_id FROM chart_permission WHERE enabled=1 `
  53. if len(chartPermissionIds) > 0 {
  54. sql += fmt.Sprintf(" AND chart_permission_id IN (%s) ", strings.Join(chartPermissionIds, ","))
  55. }
  56. sql += ` ORDER BY sort ASC `
  57. _, err = o.Raw(sql).QueryRows(&items)
  58. return
  59. }
  60. // GetChildChartPermissionListById 获取品种权限列表
  61. func GetChildChartPermissionIdsById(chartPermissionId int) (items []string, err error) {
  62. o := orm.NewOrmUsingDB("rddp")
  63. sql := `SELECT chart_permission_id FROM chart_permission WHERE enabled=1 AND parent_id=? ORDER BY sort ASC`
  64. _, err = o.Raw(sql, chartPermissionId).QueryRows(&items)
  65. return
  66. }
  67. // GetDefaultChartPermissionCount 获取默认的权限数目
  68. func GetDefaultChartPermissionCount(productId int) (count int, err error) {
  69. sql := ` select count(1) COUNT from chart_permission where product_id=?`
  70. o := orm.NewOrm()
  71. err = o.Raw(sql, productId).QueryRow(&count)
  72. return
  73. }
  74. func GetDefaultChartPermissionCountByCache(productId int) (maxPermissionCount int, err error) {
  75. maxPermissionCountKey := fmt.Sprint(`hongze_api:max_permission_count:product_id:`, productId)
  76. maxPermissionCount, err = utils.Rc.RedisInt(maxPermissionCountKey)
  77. if err != nil || maxPermissionCount <= 0 {
  78. maxPermissionCount, err = GetDefaultChartPermissionCount(productId)
  79. if err != nil {
  80. return
  81. }
  82. utils.Rc.SetNX(maxPermissionCountKey, maxPermissionCount, time.Second*3600)
  83. }
  84. //ficc需要移除策略的权限
  85. if productId == 1 {
  86. maxPermissionCount = maxPermissionCount - 1
  87. }
  88. return
  89. }