package company import ( "github.com/beego/beego/v2/client/orm" "time" ) type ChartPermission struct { ChartPermissionId int `description:"权限id"` ChartPermissionName string `description:"权限名称(旧)"` PermissionName string `description:"权限名称"` Sort int `description:"排序"` Enabled int `description:"是否可用"` CreatedTime time.Time `description:"创建时间"` LastUpdatedTime time.Time `description:"最后更新时间"` TeleconferenceSort int `description:"电话会排序"` Remark string `description:"备注"` ClassifyName string `description:"分类"` PermissionType int `description:"1主观,2客观"` Checked bool `description:"选中状态"` } type PermissionSetItem struct { ChartPermissionId int `description:"权限id"` PermissionName string `description:"权限名称"` PermissionType int `description:"1主观,2客观"` Checked bool `description:"选中状态"` Child []*PermissionSetItem `description:"具体的主客观-方便前端的排版用的"` } type PermissionSetItemType struct { PermissionName string `description:"权限名称"` Checked bool `description:"选中状态"` CheckedMinate bool `description:"不确定状态"` NoClicking bool `description:"是否禁止点击"` Items []*PermissionLookItem } type PermissionSetList struct { ClassifyName string `description:"分类"` Items []*PermissionSetItem CheckList []int } type PermissionSetListType struct { ClassifyName string `description:"分类"` Items []*PermissionSetItemType CheckList []int } type PermissionSetResp struct { List []*PermissionSetList //ListUpgrade []*PermissionSetList `description:"升级权限列表"` ListType []*PermissionSetListType `description:"主观客观列表"` } type ChartPermissionFirst struct { ClassifyName string `description:"分类"` } func GetPermissionSetItems(productId int, classifyName string) (items []*PermissionSetItem, err error) { o := orm.NewOrm() sql := ` SELECT * FROM chart_permission WHERE enabled=1 AND product_id=? AND classify_name=? AND permission_type=0 ORDER BY sort ASC ` _, err = o.Raw(sql, productId, classifyName).QueryRows(&items) return } func GetPermissionSetItemsByType(productId int, classifyName string) (items []*PermissionSetItem, err error) { o := orm.NewOrm() sql := ` SELECT * FROM chart_permission WHERE enabled=1 AND product_id=? AND classify_name=? AND permission_type!=2 ORDER BY sort ASC ` _, err = o.Raw(sql, productId, classifyName).QueryRows(&items) return } func GetPermissionSetSandoItems(productId int, classifyName string) (items []*PermissionLookItem, err error) { o := orm.NewOrm() sql := ` SELECT * FROM chart_permission WHERE enabled=1 AND product_id=? AND classify_name=? ORDER BY sort ASC ` _, err = o.Raw(sql, productId, classifyName).QueryRows(&items) return } func GetPermissionSetItemsType(productId int, classifyName string) (items []*PermissionLookItem, err error) { o := orm.NewOrm() sql := ` SELECT * FROM chart_permission WHERE enabled=1 AND product_id=? AND classify_name=? AND permission_type!=0 ORDER BY sort ASC ` _, err = o.Raw(sql, productId, classifyName).QueryRows(&items) return } type CompanyReportPermission struct { CompanyReportPermissionId int64 `orm:"column(company_report_permission_id);pk"` CompanyId int ReportPermissionId int CreatedTime time.Time LastUpdatedTime time.Time ChartPermissionId int StartDate string `description:"权限开始日期"` EndDate string `description:"权限结束日期"` ProductId int `description:"产品id"` ProductName string `description:"产品名称"` CompanyContractId int `description:"合同id"` Status string `description:"'正式','试用','关闭'"` ModifyTime time.Time `description:"修改时间"` IsUpgrade int `description:"是否升级,1是,0否"` ExpensiveYx int `description:"权益研选: 0-3w; 1-5w"` } // 新增客户权限 func AddCompanyReportPermission(item *CompanyReportPermission) (err error) { o := orm.NewOrm() lastId, err := o.Insert(item) item.CompanyReportPermissionId = lastId return } func GetCompanyReportPermissionCount(companyId, productId int) (count int, err error) { o := orm.NewOrm() sql := `SELECT COUNT(1) AS count FROM company_report_permission WHERE company_id=? AND product_id=? ` err = o.Raw(sql, companyId, productId).QueryRow(&count) return } func DeleteCompanyReportPermission(companyId, productId int) (err error) { o := orm.NewOrm() sql := ` DELETE FROM company_report_permission WHERE company_id=? AND product_id=? ` _, err = o.Raw(sql, companyId, productId).Exec() return } type PermissionLookResp struct { List []*PermissionLookList ListRai []*PermissionLookList `description:"权益"` } type PermissionLookSandoResp struct { List []*PermissionLookList ListType []*PermissionSetListType `description:"主观客观列表"` } type PermissionLookList struct { ClassifyName string `description:"分类"` Items []*PermissionLookItem ItemsType []*PermissionSetItemType `description:"主观客观列表"` CheckList []int RaiMerge int `description:"权益-用于前端判断展示形式:1-全部合并 2-全部拆分"` } type PermissionLookItem struct { ChartPermissionId int `description:"权限id"` PermissionName string `description:"权限名称"` StartDate string `description:"权限开始日期"` EndDate string `description:"权限结束日期"` Status string `description:"'正式','试用','关闭'"` ExpireDay string `description:"到期天数"` ClassifyName string `description:"分类"` PermissionType int `description:"1主观,2客观"` PermissionTypeName string `description:"主观、客观"` Checked bool `description:"选中状态"` Remark string `description:"备注"` IsMerge bool `description:"是否合并行业, 给前端的标识, 暂时仅权益使用"` RaiBothHas bool `description:"权益-是否主客观都有"` IsUpgrade int `description:"是否升级,1是,0否"` Child []*PermissionLookItem `description:"子权限"` } func GetPermissionLookItems(productId int, classifyName string) (items []*PermissionLookItem, err error) { o := orm.NewOrm() sql := ` SELECT * FROM chart_permission WHERE enabled=1 AND product_id=? AND classify_name=? ORDER BY sort ASC ` _, err = o.Raw(sql, productId, classifyName).QueryRows(&items) return } func GetCompanyPermissionCheck(companyId, permissionId int) (count int, err error) { o := orm.NewOrm() sql := `SELECT COUNT(1) AS count FROM company_report_permission AS a WHERE a.company_id=? AND a.chart_permission_id=? ` err = o.Raw(sql, companyId, permissionId).QueryRow(&count) return } // GetCompanyPermission 根据客户id和品种id获取对应的数据 func GetCompanyPermission(companyId, permissionId int) (item *CompanyReportPermission, err error) { o := orm.NewOrm() sql := `SELECT * FROM company_report_permission AS a WHERE a.company_id=? AND a.chart_permission_id=? ` err = o.Raw(sql, companyId, permissionId).QueryRow(&item) return } func GetCompanyPermissionCheckItem(companyId, permissionId int) (item *PermissionLookItem, err error) { o := orm.NewOrm() sql := `SELECT * FROM company_report_permission AS a WHERE a.company_id=? AND a.chart_permission_id=? ` err = o.Raw(sql, companyId, permissionId).QueryRow(&item) return } // 通过主观ID获取对应的客观ID func GetPermissionIdById(permissionIds string) (allpermissionId string, err error) { sql := ` SELECT GROUP_CONCAT( DISTINCT chart_permission_id SEPARATOR ',' ) AS permission FROM chart_permission WHERE product_permission_name IN ( SELECT product_permission_name FROM chart_permission WHERE chart_permission_id IN ( ` + permissionIds + ` )) ` o := orm.NewOrm() err = o.Raw(sql).QueryRow(&allpermissionId) return } type PermissionVarietyResp struct { List []*PermissionVarietyList } type PermissionVarietyItem struct { ChartPermissionId int `description:"权限id"` ClassifyName string `orm:"column(permission_name)" description:"权限名称"` } type PermissionVarietyList struct { ChartPermissionId int `description:"父级id"` ClassifyName string `description:"分类"` Items []*PermissionVarietyItem } func GetPermissionVarietyItems(productId int, classifyName string) (items []*PermissionVarietyItem, err error) { o := orm.NewOrm() sql := ` SELECT * FROM chart_permission WHERE enabled=1 AND product_id=? AND classify_name=? GROUP BY permission_name ORDER BY sort ASC ` _, err = o.Raw(sql, productId, classifyName).QueryRows(&items) return } type PermissionCompany struct { CompanyId int } // //func GetCompanyListCompanyIdByPermissionIdStr(permissionStr string, permissionCount int) (items []*PermissionCompany, err error) { // o := orm.NewOrm() // sql := ` // SELECT company_id, COUNT(company_id) ks // FROM company_report_permission // WHERE report_permission_id IN (` + permissionStr + `) // // GROUP BY company_id // HAVING company_id IN // // (SELECT company_id // FROM company_report_permission // GROUP BY company_id // HAVING COUNT(company_id) = ?) // // AND COUNT(company_id) = ? //` // _, err = o.Raw(sql, permissionCount, permissionCount).QueryRows(&items) // return //} func GetCompanyListCompanyIdByPermissionIdStr(permissionStr string) (company_id string, err error) { o := orm.NewOrm() sql := ` SELECT GROUP_CONCAT(DISTINCT company_id) AS company_id FROM company_report_permission WHERE report_permission_id IN (?) #GROUP BY company_id ` err = o.Raw(sql, permissionStr).QueryRow(&company_id) return } func GetPermissionNameByPermissionIdStr(permissionStr string) (chart_permission_name string, err error) { o := orm.NewOrm() sql := `SELECT GROUP_CONCAT(DISTINCT chart_permission_name SEPARATOR ',') AS chart_permission_name FROM chart_permission WHERE chart_permission_id IN (` + permissionStr + `)` err = o.Raw(sql).QueryRow(&chart_permission_name) return } func GetPermissionIdsByPermissionNameStr(chartPermissionName string) (chart_permission_id string, err error) { o := orm.NewOrm() sql := `SELECT GROUP_CONCAT(DISTINCT chart_permission_id SEPARATOR ',') AS chart_permission_id FROM chart_permission WHERE chart_permission_name IN(` + chartPermissionName + `)` err = o.Raw(sql).QueryRow(&chart_permission_id) return } // 新增试用权限 type PermissionAddTryOutReq struct { CompanyId int `description:"客户id"` ChartPermissionId string `description:"权限id,多个用英文逗号隔开"` } // GetChartPermissionListById 根据权限id获取产品权限详情 func GetChartPermissionListById(chartPermissionId int) (item *ChartPermission, err error) { o := orm.NewOrm() sql := `SELECT * FROM chart_permission WHERE chart_permission_id =? ` err = o.Raw(sql, chartPermissionId).QueryRow(&item) return } func GetPermissionLookItemsSandO(permissionIds string) (items []*PermissionLookItem, err error) { o := orm.NewOrm() sql := ` SELECT * FROM chart_permission WHERE enabled=1 AND chart_permission_id IN (` + permissionIds + `) ORDER BY sort ASC ` _, err = o.Raw(sql).QueryRows(&items) return } func GetPermissionLookItemsSandOByName(permissionName string) (items []*PermissionLookItem, err error) { o := orm.NewOrm() sql := ` SELECT * FROM chart_permission WHERE enabled=1 AND product_id = 2 AND remark IN (` + permissionName + `) ORDER BY sort ASC ` _, err = o.Raw(sql).QueryRows(&items) return } func GetParentIdFromGroup(gid int) (items *int, err error) { o := orm.NewOrm() sql := `SELECT parent_id FROM sys_group WHERE group_id=? ` err = o.Raw(sql, gid).QueryRow(&items) return } func GetGroupIdsByParentId(gid int) (items []*string, err error) { o := orm.NewOrm() sql := `SELECT group_id FROM sys_group WHERE parent_id=? ` _, err = o.Raw(sql, gid).QueryRows(&items) return } func GetGroupNamesById(gid int) (items *string, err error) { o := orm.NewOrm() sql := `SELECT group_name FROM sys_group WHERE group_id=? ` err = o.Raw(sql, gid).QueryRow(&items) return }