chart_permission.go 4.2 KB

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