41 lines
965 B
Go
41 lines
965 B
Go
![]() |
package utils
|
||
|
|
||
|
import (
|
||
|
"github.com/1340691923/xwl_bi/engine/db"
|
||
|
"github.com/1340691923/xwl_bi/model"
|
||
|
"github.com/1340691923/xwl_bi/platform-basic-libs/util"
|
||
|
"github.com/Masterminds/squirrel"
|
||
|
"strings"
|
||
|
)
|
||
|
|
||
|
func GetUserGroupSqlAndArgs(ids []int, appid int) (SQL string, Args []interface{}, err error) {
|
||
|
if len(ids) == 0 {
|
||
|
return " and ( 1 = 1 ) ", nil, err
|
||
|
}
|
||
|
|
||
|
sql, args, err := db.SqlBuilder.Select("user_list").From("user_group").Where(db.Eq{"appid": appid, "id": ids}).ToSql()
|
||
|
|
||
|
var userGroupList []model.UserGroup
|
||
|
|
||
|
err = db.Sqlx.Select(&userGroupList, sql, args...)
|
||
|
|
||
|
if err != nil {
|
||
|
return "", nil, err
|
||
|
}
|
||
|
|
||
|
or := squirrel.Or{}
|
||
|
|
||
|
for index := range userGroupList {
|
||
|
idStr, err := util.GzipUnCompress(userGroupList[index].UserList)
|
||
|
if err != nil {
|
||
|
return "", nil, err
|
||
|
}
|
||
|
id := strings.Split(idStr, ",")
|
||
|
or = append(or, db.Eq{"xwl_distinct_id": [][]string{id}})
|
||
|
}
|
||
|
|
||
|
SQL, Args, err = or.ToSql()
|
||
|
SQL = " and " + SQL
|
||
|
return SQL, Args, err
|
||
|
}
|