123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133 |
- package models
- import (
- "fmt"
- "strings"
- "time"
- "github.com/beego/beego/v2/client/orm"
- )
- type PermissionClassifyMapping struct {
- Id int `orm:"column(id);pk" description:"ID" json:"id"`
- PermissionId int ` description:"品种ID" json:"permissionId"`
- ClassifyId int `description:"分类ID" json:"classifyName"`
- CreatedTime time.Time `description:"创建时间" json:"createdTime"`
- UpdatedTime time.Time `description:"更新时间" json:"UpdatedTime"`
- }
- type ChartPermission struct {
- ChartPermissionId int `orm:"column(chart_permission_id);pk" description:"问题ID" json:"chart_permission_id"`
- ChartPermissionName string `description:"名称" json:"chart_permission_name"`
- PermissionName string `description:"权限名" json:"permission_name"`
- Sort int `description:"排序" json:"sort"`
- Enabled int `description:"是否可用" json:"enabled"`
- CreatedTime time.Time `description:"创建时间" json:"created_time"`
- LastUpdatedTime time.Time `description:"更新时间" json:"last_updated_time"`
- TeleconferenceSort int `description:"电话会类型排序" json:"teleconference_sort"`
- Remark string `description:"备注" json:"remark"`
- ClassifyName string `description:"分类名称" json:"classify_name"`
- ProductName string `description:"产品名称" json:"product_name"`
- ProductId int `description:"产品ID" json:"product_id"`
- ImageURL string `orm:"column(image_url);" description:"图片地址" json:"image_url"`
- ShowType int `description:"1:查研观向小程序展示" json:"show_type"`
- IsOther int `description:"是否是其他,用于查研观向小程序后台展示" json:"is_other"`
- IsReport int `description:"是否是报告,用于查研观向小程序前台报告展示" json:"is_report"`
- CygxAuth int `description:"是否是权限,用于查研观向小程序前台权限校验" json:"cygx_auth"`
- PermissionType int `description:"1主观,2客观" json:"permission_type"`
- YbImgUrl string `description:"研报小程序报告列表icon" json:"yb_img_url"`
- ProductPermissionName string `description:"种类权限名称" json:"product_permission_name"`
- PriceDrivenState int `description:"品种价格驱动开启状态 0-关闭 1-开启" json:"price_driven_state"`
- ImageUrlM string `description:"图片地址(查研观向移动端)" json:"image_url_m"`
- ParentId int `description:"父级权限id" json:"parent_id"`
- IsPublic int `description:"是否是公有权限1:公有权限,0私有权限" json:"is_public"`
- }
- type ChartPermissionList struct {
- ChartPermissionId int `orm:"column(chart_permission_id);pk" description:"问题ID" json:"chart_permission_id"`
- ChartPermissionName string `description:"名称" json:"chart_permission_name"`
- PermissionName string `description:"权限名" json:"permission_name"`
- Sort int `description:"排序" json:"sort"`
- Enabled int `description:"是否可用" json:"enabled"`
- CreatedTime time.Time `description:"创建时间" json:"created_time"`
- LastUpdatedTime time.Time `description:"更新时间" json:"last_updated_time"`
- TeleconferenceSort int `description:"电话会类型排序" json:"teleconference_sort"`
- Remark string `description:"备注" json:"remark"`
- ClassifyName string `description:"分类名称" json:"classify_name"`
- ProductName string `description:"产品名称" json:"product_name"`
- ProductId int `description:"产品ID" json:"product_id"`
- ImageURL string `orm:"column(image_url);" description:"图片地址" json:"image_url"`
- ShowType int `description:"1:查研观向小程序展示" json:"show_type"`
- IsOther int `description:"是否是其他,用于查研观向小程序后台展示" json:"is_other"`
- IsReport int `description:"是否是报告,用于查研观向小程序前台报告展示" json:"is_report"`
- CygxAuth int `description:"是否是权限,用于查研观向小程序前台权限校验" json:"cygx_auth"`
- PermissionType int `description:"1主观,2客观" json:"permission_type"`
- YbImgUrl string `description:"研报小程序报告列表icon" json:"yb_img_url"`
- ProductPermissionName string `description:"种类权限名称" json:"product_permission_name"`
- PriceDrivenState int `description:"品种价格驱动开启状态 0-关闭 1-开启" json:"price_driven_state"`
- ImageUrlM string `description:"图片地址(查研观向移动端)" json:"image_url_m"`
- ParentId int `description:"父级权限id" json:"parent_id"`
- IsPublic int `description:"是否是公有权限1:公有权限,0私有权限" json:"is_public"`
- Child []*ChartPermissionList `description:"子权限"`
- }
- // ChartPermissionSearchKeyWordMapping 表示 chart_permission_search_key_word_mapping 表的结构
- type ChartPermissionSearchKeyWordMapping struct {
- ChartPermissionID int `gorm:"column:chart_permission_id"` // chart_permission_id 字段
- ClassifyID int `gorm:"column:classify_id"` // classify_id 字段
- }
- type ChartPermissionView struct {
- ParentName string `description:"父权限名称" json:"parent_name"`
- PermissionName string `description:"权限名" json:"permission_name"`
- }
- type ChartPermissionListTree struct {
- ChartPermissionId int `description:"权限ID"`
- PermissionName string `description:"权限名"`
- ParentId int `description:"父权限ID"`
- IsPublic int `description:"是否是公有权限"`
- PublicChild []*ChartPermissionListTree `description:"公有权限"`
- PrivateChild []*ChartPermissionListTree `description:"私有权限"`
- }
- func GetChartPermissionListByIds(chartPermissionIds []int) (items []*ChartPermissionView, err error) {
- o := orm.NewOrmUsingDB("rddp")
- sql := `SELECT c.permission_name AS permission_name, lc.permission_name AS parent_name FROM chart_permission c
- LEFT JOIN chart_permission lc
- ON c.parent_id=lc.chart_permission_id
- WHERE c.chart_permission_id in (%s)
- `
- // 构建 IN 子句的占位符
- placeholders := make([]string, len(chartPermissionIds))
- args := make([]interface{}, len(chartPermissionIds))
- for i, id := range chartPermissionIds {
- placeholders[i] = "?"
- args[i] = id
- }
- sql = fmt.Sprintf(sql, strings.Join(placeholders, ","))
- _, err = o.Raw(sql, chartPermissionIds).QueryRows(&items)
- return
- }
- func GetByPermissionIdsByClassifyId(classify int) (permissionIds []int, err error) {
- o := orm.NewOrm()
- sql := "select distinct permission_id from permission_classify_mapping where classify_id =?"
- _, err = o.Raw(sql, classify).QueryRows(&permissionIds)
- return
- }
- func GetPermissionNameById(id int) (items string, err error) {
- o := orm.NewOrm()
- sql := `SELECT name FROM permissions WHERE permission_id=?`
- err = o.Raw(sql, id).QueryRow(&items)
- return
- }
- func GetClassifyIdsByPermissionIds(condition string, pars []interface{}) (classifyIds []int, err error) {
- o := orm.NewOrm()
- sql := "select distinct classify_id from permission_classify_mapping where 1=1 "
- if condition != "" {
- sql += condition
- }
- _, err = o.Raw(sql, pars).QueryRows(&classifyIds)
- return
- }
|