41 lines
965 B
Go
Raw Normal View History

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
}
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
}