|
@@ -10,20 +10,20 @@ import (
|
|
|
)
|
|
|
|
|
|
const (
|
|
|
- logical_operator_normal = 0 // 正常运算标签
|
|
|
- logical_operator_not = 1 // 非运算标签
|
|
|
- tag_operator_and = 1 // 且
|
|
|
- tag_operator_or = 2 // 或
|
|
|
- Tabledwd_d_tag = "pub_tags.dwd_d_tag" // 标签用户表 todo 后边调整
|
|
|
- Tabledwd_mgo_position = "pub_tags.dwd_mgo_position" // base_user_id 对应的mgoid
|
|
|
- FullUserTagSql = `SELECT groupBitmapAndState(bitobj) as userIds from pub_tags.dwd_d_tag ddt WHERE ddt.id=2017`
|
|
|
- andSql = `SELECT groupBitmapAndState(bitobj) as userIds from pub_tags.dwd_d_tag ddt WHERE ddt.id in (%s) `
|
|
|
- orSql = `SELECT groupBitmapOrState(bitobj) as userIds from pub_tags.dwd_d_tag ddt WHERE ddt.id in (%s) `
|
|
|
- hasAllSql = ` bitmapHasAll( ddut.bitobj,bitmapBuild(%s)) `
|
|
|
- hasAnySql = ` bitmapHasAny( ddut.bitobj,bitmapBuild(%s)) `
|
|
|
- notHasAllSql = ` not bitmapHasAll( ddut.bitobj,bitmapBuild(%s)) `
|
|
|
- notHasAnySql = ` not bitmapHasAny( ddut.bitobj,bitmapBuild(%s)) `
|
|
|
- countUserSql = `SELECT
|
|
|
+ logicalOperatorNormal = 0 // 正常运算标签
|
|
|
+ logicalOperatorNot = 1 // 非运算标签
|
|
|
+ tagOperatorAnd = 1 // 且
|
|
|
+ tagOperatorOr = 2 // 或
|
|
|
+ Tabledwd_d_tag = "pub_tags.dwd_d_tag" // 标签用户表 todo 后边调整
|
|
|
+ Tabledwd_mgo_position = "pub_tags.dwd_mgo_position" // base_user_id 对应的mgoid
|
|
|
+ FullUserTagSql = `SELECT groupBitmapAndState(bitobj) as userIds from pub_tags.dwd_d_tag ddt WHERE ddt.id=2017`
|
|
|
+ andSql = `SELECT groupBitmapAndState(bitobj) as userIds from pub_tags.dwd_d_tag ddt WHERE ddt.id in (%s) `
|
|
|
+ orSql = `SELECT groupBitmapOrState(bitobj) as userIds from pub_tags.dwd_d_tag ddt WHERE ddt.id in (%s) `
|
|
|
+ hasAllSql = ` bitmapHasAll( ddut.bitobj,bitmapBuild(%s)) `
|
|
|
+ hasAnySql = ` bitmapHasAny( ddut.bitobj,bitmapBuild(%s)) `
|
|
|
+ notHasAllSql = ` not bitmapHasAll( ddut.bitobj,bitmapBuild(%s)) `
|
|
|
+ notHasAnySql = ` not bitmapHasAny( ddut.bitobj,bitmapBuild(%s)) `
|
|
|
+ countUserSql = `SELECT
|
|
|
COUNT(1) as count
|
|
|
FROM
|
|
|
pub_tags.dwd_d_user_tag ddut
|
|
@@ -96,9 +96,9 @@ func (u *UserIdConstructor) InitTagList() bool {
|
|
|
}
|
|
|
// 追加
|
|
|
switch logicalOperator {
|
|
|
- case logical_operator_normal:
|
|
|
+ case logicalOperatorNormal:
|
|
|
groupMap[groupId].NormalTag = append(groupMap[groupId].NormalTag, tagId)
|
|
|
- case logical_operator_not:
|
|
|
+ case logicalOperatorNot:
|
|
|
groupMap[groupId].NotTag = append(groupMap[groupId].NotTag, tagId)
|
|
|
}
|
|
|
}
|
|
@@ -119,7 +119,7 @@ func (u *UserIdConstructor) toBaseQuerySQL() string {
|
|
|
normalTagSQL, notTagSQL := "", ""
|
|
|
tagSql := ""
|
|
|
switch groupTag.TagOperator {
|
|
|
- case tag_operator_and:
|
|
|
+ case tagOperatorAnd:
|
|
|
if len(groupTag.NormalTag) > 0 { // 正常标签
|
|
|
normalTagList := []string{}
|
|
|
for j := 0; j < len(groupTag.NormalTag); j++ {
|
|
@@ -145,7 +145,7 @@ func (u *UserIdConstructor) toBaseQuerySQL() string {
|
|
|
tagSql = fmt.Sprintf("SELECT bitmapAndnot((%s),(%s)) as userIds", FullUserTagSql, notTagSQL)
|
|
|
}
|
|
|
|
|
|
- case tag_operator_or:
|
|
|
+ case tagOperatorOr:
|
|
|
if len(groupTag.NormalTag) > 0 { // 正常标签
|
|
|
normalTagList := []string{}
|
|
|
for j := 0; j < len(groupTag.NormalTag); j++ {
|
|
@@ -210,7 +210,7 @@ func (u *UserIdConstructor) toCountUserSQL(userId string) string {
|
|
|
normalTagSQL, notTagSQL := "", ""
|
|
|
tagSql := ""
|
|
|
switch groupTag.TagOperator {
|
|
|
- case tag_operator_and:
|
|
|
+ case tagOperatorAnd:
|
|
|
if len(groupTag.NormalTag) > 0 { // 正常标签
|
|
|
normalTagList := []string{}
|
|
|
for j := 0; j < len(groupTag.NormalTag); j++ {
|
|
@@ -236,7 +236,7 @@ func (u *UserIdConstructor) toCountUserSQL(userId string) string {
|
|
|
tagSql = fmt.Sprintf("(%s)", notTagSQL)
|
|
|
}
|
|
|
|
|
|
- case tag_operator_or:
|
|
|
+ case tagOperatorOr:
|
|
|
if len(groupTag.NormalTag) > 0 { // 正常标签
|
|
|
normalTagList := []string{}
|
|
|
for j := 0; j < len(groupTag.NormalTag); j++ {
|