2022-01-26 16:40:50 +08:00
|
|
|
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
|
|
|
|
}
|
|
|
|
|
2022-04-10 23:22:35 +08:00
|
|
|
sql, args, err := db.
|
|
|
|
SqlBuilder.
|
|
|
|
Select("user_list").
|
|
|
|
From("user_group").
|
|
|
|
Where(db.Eq{"appid": appid, "id": ids}).
|
|
|
|
ToSql()
|
2022-01-26 16:40:50 +08:00
|
|
|
|
|
|
|
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
|
|
|
|
}
|