|
@@ -1,8 +1,11 @@
|
|
package userAnalysis
|
|
package userAnalysis
|
|
|
|
|
|
import (
|
|
import (
|
|
|
|
+ "context"
|
|
|
|
+ "fmt"
|
|
"github.com/gogf/gf/v2/frame/g"
|
|
"github.com/gogf/gf/v2/frame/g"
|
|
"github.com/gogf/gf/v2/util/gconv"
|
|
"github.com/gogf/gf/v2/util/gconv"
|
|
|
|
+ "strings"
|
|
)
|
|
)
|
|
|
|
|
|
type (
|
|
type (
|
|
@@ -21,6 +24,19 @@ type (
|
|
}
|
|
}
|
|
)
|
|
)
|
|
|
|
|
|
|
|
+func (ar *AnalysisRes) Save(ctx context.Context) {
|
|
|
|
+ list := make([]string, 0, len(ar.Data))
|
|
|
|
+ for id, ok := range ar.Data {
|
|
|
|
+ if !ok {
|
|
|
|
+ continue
|
|
|
|
+ }
|
|
|
|
+ list = append(list, fmt.Sprintf("toUInt64(%d)", id))
|
|
|
|
+ }
|
|
|
|
+ if _, err := g.DB().Exec(ctx, fmt.Sprintf(`ALTER TABLE dwd_d_tag UPDATE bitobj = bitmapBuild([%v]) WHERE code = %v;`, strings.Join(list, ","), ar.Code)); err != nil {
|
|
|
|
+ g.Log().Errorf(ctx, "更新标签%s异常 %v", ar.Code, err)
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
func NewManager() *UserAnalysis {
|
|
func NewManager() *UserAnalysis {
|
|
return &UserAnalysis{
|
|
return &UserAnalysis{
|
|
UserMapping: map[string]BaseUserId{},
|
|
UserMapping: map[string]BaseUserId{},
|