123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704 |
- package company
- import (
- "fmt"
- "github.com/beego/beego/v2/client/orm"
- "hongze/hz_crm_api/utils"
- "strings"
- "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:"选中状态"`
- ParentId int `description:"父级权限id"`
- IsPublic int `description:"是否是公有权限1:公有权限,0私有权限"`
- }
- type PermissionSetItem struct {
- ChartPermissionId int `description:"权限id"`
- PermissionName string `description:"权限名称"`
- PermissionType int `description:"1主观,2客观"`
- ParentId int `description:"父级权限id"`
- IsPublic int `description:"是否是公有权限1:公有权限,0私有权限"`
- 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 {
- ChartPermissionId int `description:"权限id"`
- 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 parent_id>0 AND permission_type=0 ORDER BY sort ASC `
- _, err = o.Raw(sql, productId, classifyName).QueryRows(&items)
- return
- }
- func GetPermissionByProductId(productId int) (items []*PermissionSetItem, err error) {
- o := orm.NewOrm()
- sql := ` SELECT * FROM chart_permission WHERE enabled=1 AND product_id=? AND permission_type=0 ORDER BY sort ASC `
- _, err = o.Raw(sql, productId).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 parent_id>0 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=? AND parent_id>0 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 ,2: 10W"`
- }
- // 新增客户权限
- 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否"`
- ExpensiveYx int `description:"权益研选: 0-3w; 1-5w ,2: 10W"`
- Points float64 `description:"研选扣点包点数"`
- ParentId int `description:"父级权限id"`
- IsPublic int `description:"是否是公有权限1:公有权限,0私有权限"`
- Child []*PermissionLookItem `description:"子权限"`
- }
- // todo 确认是否需要删除
- 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=? AND parent_id > 0 ORDER BY sort ASC `
- _, err = o.Raw(sql, productId, classifyName).QueryRows(&items)
- return
- }
- func GetPermissionLookItemsByProductId(productId int) (items []*PermissionLookItem, err error) {
- o := orm.NewOrm()
- sql := ` SELECT * FROM chart_permission WHERE enabled=1 AND product_id=? ORDER BY sort ASC `
- _, err = o.Raw(sql, productId).QueryRows(&items)
- return
- }
- func GetPermissionLookItemsByParentId(productId int, parentId int) (items []*PermissionLookItem, err error) {
- o := orm.NewOrm()
- sql := ` SELECT * FROM chart_permission WHERE enabled=1 AND product_id=? AND parent_id=? ORDER BY sort ASC `
- _, err = o.Raw(sql, productId, parentId).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
- parent_id > 0 and
- 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
- }
- // 通过主观ID获取对应的客观ID
- func GetCompanyPermissionIdById(companyId int) (allpermissionId string, err error) {
- sql := `SELECT
- GROUP_CONCAT( DISTINCT chart_permission_id SEPARATOR ',' ) AS permission
- FROM
- company_report_permission AS a
- WHERE
- a.company_id = ?
- AND product_id = 2`
- o := orm.NewOrm()
- err = o.Raw(sql, companyId).QueryRow(&allpermissionId)
- return
- }
- type ContractPermissionList struct {
- ClassifyName string `description:"分类"`
- Items []*PermissionLookItem
- CheckList []int
- CheckAll bool
- }
- func GetCompanyIdStr(permissionStr string) (company_id_str string, err error) {
- o := orm.NewOrm()
- sql := `SELECT GROUP_CONCAT(DISTINCT company_id SEPARATOR ',') AS company_id_str
- FROM company_report_permission AS a
- WHERE a.chart_permission_id IN( ` + permissionStr + `) `
- err = o.Raw(sql).QueryRow(&company_id_str)
- return
- }
- type PermissionVarietyResp struct {
- List []*PermissionVarietyList
- }
- type PermissionVarietyItem struct {
- ChartPermissionId int `description:"权限id"`
- ParentId int `description:"父级权限id"`
- ClassifyName string `orm:"column(permission_name)" description:"权限名称"`
- }
- type PermissionVarietyList struct {
- ChartPermissionId int `description:"父级id"`
- ClassifyName string `description:"分类"`
- Items []*PermissionVarietyItem
- }
- // todo 删除品种列表
- 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=? AND parent_id > 0 GROUP BY permission_name ORDER BY sort ASC `
- _, err = o.Raw(sql, productId, classifyName).QueryRows(&items)
- return
- }
- func GetPermissionVarietyItemsByProductId(productId int) (items []*PermissionVarietyItem, err error) {
- o := orm.NewOrm()
- sql := ` SELECT * FROM chart_permission WHERE enabled=1 AND product_id=? and parent_id > 0 GROUP BY permission_name ORDER BY sort ASC `
- _, err = o.Raw(sql, productId).QueryRows(&items)
- return
- }
- func GetCompanyReportPermission(companyId, productId int) (items []*CompanyReportPermission, err error) {
- o := orm.NewOrm()
- sql := `SELECT * FROM company_report_permission WHERE company_id=? AND product_id=? `
- _, err = o.Raw(sql, companyId, productId).QueryRows(&items)
- return
- }
- func GetCompanyReportPermissionByStatus(companyId, productId int, status string) (items []*CompanyReportPermission, err error) {
- o := orm.NewOrm()
- sql := `SELECT * FROM company_report_permission WHERE company_id=? AND product_id=? AND status = ? `
- _, err = o.Raw(sql, companyId, productId, status).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,多个用英文逗号隔开"`
- }
- func FixPermissionStatus(companyId, productId int, startDate, endDate, status string) (err error) {
- o := orm.NewOrm()
- sql := `UPDATE company_report_permission SET start_date=?,end_date=?,status=?,modify_time=NOW() WHERE company_id=? AND product_id=? AND status IS NULL `
- _, err = o.Raw(sql, startDate, endDate, status, companyId, productId).Exec()
- return
- }
- func GetPermissionLookItemsExt(productId string, classifyName string) (items []*PermissionLookItem, err error) {
- o := orm.NewOrm()
- sql := ` SELECT * FROM chart_permission WHERE enabled=1 AND product_id IN(` + productId + `) AND classify_name=? AND parent_id > 0 ORDER BY sort ASC `
- _, err = o.Raw(sql, classifyName).QueryRows(&items)
- return
- }
- func GetPermissionLookItemsExtByParentId(productId string, parentId int) (items []*PermissionLookItem, err error) {
- o := orm.NewOrm()
- sql := ` SELECT * FROM chart_permission WHERE enabled=1 AND product_id IN(` + productId + `) AND parent_id=? ORDER BY sort ASC `
- _, err = o.Raw(sql, parentId).QueryRows(&items)
- return
- }
- // 客户授权产品结构体(包含产品名称)
- type CompanyReportPermissionAndName struct {
- CompanyReportPermissionId int `description:"客户授权产品id"`
- 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"`
- PermissionName string `description:"客户授权产品的名称"`
- ClassifyName string `description:"客户授权产品的分类名称"`
- Status string `description:"'正式','试用','关闭'"`
- ModifyTime time.Time `description:"修改时间"`
- }
- // 根据企业用户id字符串集合
- func GetCompanyReportPermissionListByCompanyIds(companyIds string) (items []*CompanyReportPermissionAndName, err error) {
- o := orm.NewOrm()
- sql := `SELECT a.*,b.permission_name,b.classify_name FROM company_report_permission a left join chart_permission b on a.chart_permission_id=b.chart_permission_id WHERE a.company_id in (` + companyIds + `)`
- _, err = o.Raw(sql).QueryRows(&items)
- return
- }
- // 根据企业用户id和产品id获取所有正式的权限
- func GetCompanyReportPermissionListByProductId(companyId, productId int) (items []*CompanyReportPermissionAndName, err error) {
- o := orm.NewOrm()
- sql := `SELECT a.*,b.permission_name,b.classify_name FROM company_report_permission a left join chart_permission b on a.chart_permission_id=b.chart_permission_id WHERE a.company_id = ? and a.product_id=? and a.status="正式"`
- _, err = o.Raw(sql, companyId, productId).QueryRows(&items)
- return
- }
- // GetChartPermissionListByIds 根据权限id集合获取所有的权限列表
- func GetChartPermissionListByIds(chartPermissionIds []int) (list []*ChartPermission, err error) {
- o := orm.NewOrm()
- //o.Using("rddp")
- //sNums:= make([],len(nums))
- idStrList := make([]string, len(chartPermissionIds))
- for key, id := range chartPermissionIds {
- idStrList[key] = fmt.Sprint(id)
- }
- idStr := strings.Join(idStrList, ",")
- sql := `SELECT * FROM chart_permission WHERE chart_permission_id in (` + idStr + `) `
- _, err = o.Raw(sql).QueryRows(&list)
- return
- }
- // 根据企业用户id和产品id获取所有正式的权限
- func GetCompanyProductReportPermissionList(companyId, productId int) (items []*CompanyReportPermissionAndName, err error) {
- o := orm.NewOrm()
- sql := `SELECT a.*,b.permission_name,b.classify_name FROM company_report_permission a left join chart_permission b on a.chart_permission_id=b.chart_permission_id WHERE a.company_id = ? and a.product_id=? `
- _, err = o.Raw(sql, companyId, productId).QueryRows(&items)
- return
- }
- // 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 + `) AND parent_id > 0 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
- }
- // GetChartPermissionFirst 获取排序后的权限分类
- func GetChartPermissionFirst() (list []*ChartPermissionFirst, err error) {
- o := orm.NewOrm()
- sql := ` SELECT chart_permission_id, classify_name FROM chart_permission where enabled =1 and product_id=1 and parent_id=0 ORDER BY sort ASC `
- _, err = o.Raw(sql).QueryRows(&list)
- return
- }
- // GetCompanyReportPermissionUpgrade 获取升级的权限类型
- func GetCompanyReportPermissionUpgrade(companyId, productId int) (items []*CompanyReportPermission, err error) {
- o := orm.NewOrm()
- sql := `SELECT
- re.*
- FROM
- company_report_permission as re
- INNER JOIN chart_permission as c ON c.chart_permission_id = re.chart_permission_id
- WHERE
- re.company_id = ?
- AND re.product_id = ?
- AND re.is_upgrade = 1
- AND c.permission_type = 1
- AND STATUS = '正式' `
- _, err = o.Raw(sql, companyId, productId).QueryRows(&items)
- return
- }
- // GetCompanyPermissionNameCheck 通过名称判断客户是否开了某一类型的权限
- func GetCompanyPermissionNameCheck(companyId, productId int, permissionName string) (count int, err error) {
- o := orm.NewOrm()
- sql := `SELECT
- COUNT( 1 ) AS count
- FROM
- company_report_permission AS a
- INNER JOIN chart_permission as c ON c.chart_permission_id = a.chart_permission_id
- WHERE
- a.company_id = ?
- AND a.STATUS = '正式'
- AND a.product_id = ?
- AND c.chart_permission_name = ? `
- err = o.Raw(sql, companyId, productId, permissionName).QueryRow(&count)
- return
- }
- // GetCompanyReportPermissionUpgradeByChartPermissionId 通过行业权限获取具备该行业升级权限的公司
- func GetCompanyReportPermissionUpgradeByChartPermissionId(chartPermissionId int) (items []*CompanyReportPermission, err error) {
- o := orm.NewOrm()
- sql := `SELECT
- company_id
- FROM
- company_report_permission AS p
- WHERE
- 1 = 1
- AND p.is_upgrade = 1
- AND p.chart_permission_id = ?
- AND p.STATUS = '正式'
- OR (
- p.STATUS = '永续'
- AND p.chart_permission_id = ?
- )`
- _, err = o.Raw(sql, chartPermissionId, chartPermissionId).QueryRows(&items)
- return
- }
- func GetPermissionNameByPermissionIds(permissionIds []int) (names []string, err error) {
- if len(permissionIds) == 0 {
- return
- }
- o := orm.NewOrm()
- sql := `SELECT
- DISTINCT chart_permission_name
- FROM
- chart_permission
- WHERE
- chart_permission_id IN (` + utils.GetOrmInReplace(len(permissionIds)) + `)`
- _, err = o.Raw(sql, permissionIds).QueryRows(&names)
- return
- }
- func GetPermissionIdsByPermissionNames(names []string) (ids []int, err error) {
- if len(names) == 0 {
- return
- }
- o := orm.NewOrm()
- sql := `SELECT
- DISTINCT chart_permission_id
- FROM
- chart_permission
- WHERE
- chart_permission_name IN (` + utils.GetOrmInReplace(len(names)) + `) AND parent_id > 0 `
- _, err = o.Raw(sql, names).QueryRows(&ids)
- return
- }
- // GetCompanyIdsStrByReportPermissionIds 根据有效阅读权限IDs获取客户IDs
- func GetCompanyIdsStrByReportPermissionIds(permissionIds []int) (companyIds []int, err error) {
- if len(permissionIds) == 0 {
- return
- }
- o := orm.NewOrm()
- sql := `SELECT
- DISTINCT company_id
- FROM
- company_report_permission
- WHERE
- report_permission_id IN (` + utils.GetOrmInReplace(len(permissionIds)) + `) AND (DATE(NOW()) BETWEEN start_date AND end_date) AND status IN ('试用', '正式', '永续')`
- _, err = o.Raw(sql, permissionIds).QueryRows(&companyIds)
- return
- }
- // GetCompanyIdsStrByContractPermissionIds 根据合同权限IDs获取客户IDs
- func GetCompanyIdsStrByContractPermissionIds(permissionIds []int) (companyIds []int, err error) {
- if len(permissionIds) == 0 {
- return
- }
- o := orm.NewOrm()
- sql := `SELECT
- DISTINCT company_id
- FROM
- company_contract_permission
- WHERE
- chart_permission_id IN (` + utils.GetOrmInReplace(len(permissionIds)) + `) AND (DATE(NOW()) BETWEEN start_date AND end_date)`
- _, err = o.Raw(sql, permissionIds).QueryRows(&companyIds)
- return
- }
- // CompanyListPermissionIds 客户列表权限IDs
- type CompanyListPermissionIds struct {
- CompanyId int `description:"客户ID"`
- ChartPermissionIds string `description:"权限IDs"`
- }
- // GetContractPermissionIdsByCompanyIds 根据客户ID获取合同权限IDs
- func GetContractPermissionIdsByCompanyIds(companyIds []int) (items []*CompanyListPermissionIds, err error) {
- if len(companyIds) == 0 {
- return
- }
- o := orm.NewOrm()
- sql := `SELECT
- company_id,
- GROUP_CONCAT(
- DISTINCT chart_permission_id
- ) AS chart_permission_ids
- FROM
- company_contract_permission
- WHERE
- (DATE(NOW()) BETWEEN start_date AND end_date) AND company_id IN (` + utils.GetOrmInReplace(len(companyIds)) + `)`
- sql += `GROUP BY company_id`
- _, err = o.Raw(sql, companyIds).QueryRows(&items)
- return
- }
- // GetReportPermissionIdsByCompanyIds 根据客户ID获取有效阅读权限IDs
- func GetReportPermissionIdsByCompanyIds(companyIds []int) (items []*CompanyListPermissionIds, err error) {
- if len(companyIds) == 0 {
- return
- }
- o := orm.NewOrm()
- sql := `SELECT
- company_id,
- GROUP_CONCAT(
- DISTINCT chart_permission_id
- ) AS chart_permission_ids
- FROM
- company_report_permission
- WHERE
- (DATE(NOW()) BETWEEN start_date AND end_date) AND status IN ('试用', '正式', '永续') AND company_id IN (` + utils.GetOrmInReplace(len(companyIds)) + `)`
- sql += `GROUP BY company_id`
- _, err = o.Raw(sql, companyIds).QueryRows(&items)
- return
- }
- // GetCompanyReportPermissionByCompanyIdAndProductId 获取权限类型
- func GetCompanyReportPermissionByCompanyIdAndProductId(companyId, productId int) (items []*CompanyReportPermission, err error) {
- o := orm.NewOrm()
- sql := `SELECT
- re.*
- FROM
- company_report_permission as re
- INNER JOIN chart_permission as c ON c.chart_permission_id = re.chart_permission_id
- WHERE
- re.company_id = ?
- AND re.product_id = ?
- AND STATUS = '正式' `
- _, err = o.Raw(sql, companyId, productId).QueryRows(&items)
- return
- }
- // 列表
- func GetCompanyReportPermissionList(condition string, pars []interface{}, startSize, pageSize int) (items []*CompanyReportPermission, err error) {
- o := orm.NewOrm()
- sql := `SELECT * FROM company_report_permission WHERE 1= 1 `
- if condition != "" {
- sql += condition
- }
- if startSize+pageSize > 0 {
- sql += ` LIMIT ?,? `
- _, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
- } else {
- _, err = o.Raw(sql, pars).QueryRows(&items)
- }
- return
- }
|