|
@@ -2,6 +2,9 @@ package resourceChannel
|
|
|
|
|
|
import (
|
|
import (
|
|
"encoding/json"
|
|
"encoding/json"
|
|
|
|
+ "github.com/bilibili/gengine/builder"
|
|
|
|
+ gengineContext "github.com/bilibili/gengine/context"
|
|
|
|
+ "github.com/bilibili/gengine/engine"
|
|
"github.com/go-redis/redis"
|
|
"github.com/go-redis/redis"
|
|
"golang.org/x/net/context"
|
|
"golang.org/x/net/context"
|
|
"strconv"
|
|
"strconv"
|
|
@@ -11,9 +14,9 @@ import (
|
|
|
|
|
|
func redisCli() *redis.Client {
|
|
func redisCli() *redis.Client {
|
|
client := redis.NewClient(&redis.Options{
|
|
client := redis.NewClient(&redis.Options{
|
|
- Addr: coo.RedisHost, // Redis地址
|
|
|
|
- Password: "", // Redis密码,默认为空
|
|
|
|
- DB: 1, // 使用哪个数据库,默认为0
|
|
|
|
|
|
+ Addr: "192.168.204.180:3377", // Redis地址
|
|
|
|
+ Password: "", // Redis密码,默认为空
|
|
|
|
+ DB: 1, // 使用哪个数据库,默认为0
|
|
})
|
|
})
|
|
_, cancel := context.WithTimeout(context.Background(), 500*time.Millisecond)
|
|
_, cancel := context.WithTimeout(context.Background(), 500*time.Millisecond)
|
|
defer cancel()
|
|
defer cancel()
|
|
@@ -48,142 +51,189 @@ type ChannelCategory struct {
|
|
Category int
|
|
Category int
|
|
}
|
|
}
|
|
|
|
|
|
-// GetChatChannel 会话渠道归因处理
|
|
|
|
-func GetChatChannel(chat SemJsChatRecord) ChannelCategory {
|
|
|
|
- channel := 7
|
|
|
|
- category := 126
|
|
|
|
- if strings.Contains(chat.ChatURL, "pages") && strings.Split(strings.Split(chat.ChatURL, "?")[1], "=")[0] == "miniapp" {
|
|
|
|
- appType := strings.Split(strings.Split(strings.Split(chat.ChatURL, "?")[1], "=")[1], "_")[1]
|
|
|
|
|
|
+// AssessmentAnalysisRule 表单解析
|
|
|
|
+func (a ResourceAssessment) AssessmentAnalysisRule(assessment *ResourceAssessment) {
|
|
|
|
+ // 获取神策URL(不包含utm)
|
|
|
|
+ cc, _ := redisCli().Get("website:" + assessment.GrUserId).Result()
|
|
|
|
+ var websiteUrl SensorsData
|
|
|
|
+ json.Unmarshal([]byte(cc), &websiteUrl)
|
|
|
|
+ // 获取神策url(包含utm)
|
|
|
|
+ cc1, _ := redisCli().Get("sensors:" + assessment.GrUserId).Result()
|
|
|
|
+ var utmUrl SensorsData
|
|
|
|
+ json.Unmarshal([]byte(cc1), &utmUrl)
|
|
|
|
+ // 到梦解析
|
|
|
|
+ if !strings.Contains(assessment.URL, "utm") && !strings.Contains(assessment.ChatURL, "utm") && !strings.Contains(assessment.ReferPageURL, "utm") && (strings.Contains(assessment.ReferPageURL, "daomeng") || strings.Contains(assessment.ChatURL, "daomeng")) {
|
|
|
|
+ println("解析到梦")
|
|
|
|
+ assessment.Channel = 38
|
|
|
|
+ assessment.Category = 201
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ // 网课解析
|
|
|
|
+ if assessment.DataType == 1 {
|
|
|
|
+ println("解析网课")
|
|
|
|
+ assessment.Channel = 26
|
|
|
|
+ assessment.Category = 121
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ // 小程序解析
|
|
|
|
+ if strings.Contains(assessment.ChatURL, "pages") && strings.Split(strings.Split(assessment.ChatURL, "?")[1], "=")[0] == "miniapp" {
|
|
|
|
+ println("解析小程序")
|
|
|
|
+ appType := strings.Split(strings.Split(strings.Split(assessment.ChatURL, "?")[1], "=")[1], "_")[1]
|
|
if appType == "baidu" {
|
|
if appType == "baidu" {
|
|
- channel = 1
|
|
|
|
- category = 30
|
|
|
|
|
|
+ assessment.Channel = 1
|
|
|
|
+ assessment.Category = 30
|
|
} else if appType == "wechat" {
|
|
} else if appType == "wechat" {
|
|
- channel = 8
|
|
|
|
- category = 32
|
|
|
|
- }
|
|
|
|
- } else if !strings.Contains(chat.ReferPage, "utm") && !strings.Contains(chat.ChatURL, "utm") && (strings.Contains(chat.ReferPage, "daomeng") || strings.Contains(chat.ChatURL, "daomeng")) {
|
|
|
|
- channel = 38
|
|
|
|
- category = 201
|
|
|
|
- } else if chat.ChannleID == 5 || chat.ChannleID == 7 && !strings.Contains(chat.ReferPage, "utm") && !strings.Contains(chat.ChatURL, "utm") {
|
|
|
|
- // redis获取渠道信息
|
|
|
|
- key := "sensors:" + chat.GrUserID
|
|
|
|
- cc, _ := redisCli().Get(key).Result()
|
|
|
|
- var sensors SensorsData
|
|
|
|
- json.Unmarshal([]byte(cc), &sensors)
|
|
|
|
- if sensors.Channel > 0 {
|
|
|
|
- channel = sensors.Channel
|
|
|
|
- category = sensors.Category
|
|
|
|
- } else if sensors.Url == "https://www.jjl.cn/" || sensors.Url == "https://m.jjl.cn/" {
|
|
|
|
- channel = 7
|
|
|
|
- category = 126
|
|
|
|
- } else {
|
|
|
|
- channel = 5
|
|
|
|
- category = 11
|
|
|
|
- }
|
|
|
|
- } else {
|
|
|
|
- if strings.Contains(strings.ToLower(chat.ChatURL), "link") {
|
|
|
|
- println(chat.ChatURL)
|
|
|
|
- channelIDString := strings.Split(strings.Split(chat.ChatURL, "link")[1], "_")[1]
|
|
|
|
- categoryIDString := strings.Split(strings.Split(chat.ChatURL, "link")[1], "_")[2]
|
|
|
|
- channel, _ = strconv.Atoi(channelIDString)
|
|
|
|
- category, _ = strconv.Atoi(categoryIDString)
|
|
|
|
- } else if strings.Contains(strings.ToLower(chat.ReferPage), "link") {
|
|
|
|
- channelIDString := strings.Split(strings.Split(chat.ReferPage, "link")[1], "_")[1]
|
|
|
|
- categoryIDString := strings.Split(strings.Split(chat.ReferPage, "link")[1], "_")[2]
|
|
|
|
- channel, _ = strconv.Atoi(channelIDString)
|
|
|
|
- category, _ = strconv.Atoi(categoryIDString)
|
|
|
|
- } else if !strings.Contains(strings.ToLower(chat.ReferPage), "link") {
|
|
|
|
- channel = 7
|
|
|
|
- category = 126
|
|
|
|
|
|
+ assessment.Channel = 8
|
|
|
|
+ assessment.Category = 32
|
|
}
|
|
}
|
|
|
|
+ return
|
|
}
|
|
}
|
|
- var channelCategory ChannelCategory
|
|
|
|
- channelCategory.Channel = channel
|
|
|
|
- channelCategory.Category = category
|
|
|
|
- return channelCategory
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-// GetChannel 表单渠道归因处理
|
|
|
|
-func GetChannel(assessment ResourceAssessment) ChannelCategory {
|
|
|
|
- var channel int
|
|
|
|
- var category int
|
|
|
|
-
|
|
|
|
- if !strings.Contains(assessment.URL, "utm") && !strings.Contains(assessment.ChatURL, "utm") && !strings.Contains(assessment.ReferPageURL, "utm") && (strings.Contains(assessment.ReferPageURL, "daomeng") || strings.Contains(assessment.ChatURL, "daomeng")) {
|
|
|
|
- channel = 38
|
|
|
|
- category = 201
|
|
|
|
- } else if assessment.DataType == 1 {
|
|
|
|
- channel = 26
|
|
|
|
- category = 121
|
|
|
|
- } else if assessment.DataType == 5 || assessment.DataType == 7 {
|
|
|
|
- channel = assessment.Channel
|
|
|
|
- category = assessment.Category
|
|
|
|
- } else if assessment.DataType == 2 {
|
|
|
|
|
|
+ // URL解析
|
|
|
|
+ if strings.Contains(assessment.URL, "link") || strings.Contains(assessment.ReferPageURL, "link") || strings.Contains(assessment.ChatURL, "link") {
|
|
|
|
+ println("解析URL")
|
|
if strings.Contains(assessment.URL, "link") {
|
|
if strings.Contains(assessment.URL, "link") {
|
|
- channel, _ = strconv.Atoi(strings.Split(strings.Split(strings.Split(assessment.URL, "link")[1], "form")[0], "_")[1])
|
|
|
|
- category, _ = strconv.Atoi(strings.Split(strings.Split(strings.Split(assessment.URL, "link")[1], "form")[0], "_")[2])
|
|
|
|
|
|
+ assessment.Channel, _ = strconv.Atoi(strings.Split(strings.Split(strings.Split(assessment.URL, "link")[1], "form")[0], "_")[1])
|
|
|
|
+ assessment.Category, _ = strconv.Atoi(strings.Split(strings.Split(strings.Split(assessment.URL, "link")[1], "form")[0], "_")[2])
|
|
} else if strings.Contains(assessment.ReferPageURL, "link") {
|
|
} else if strings.Contains(assessment.ReferPageURL, "link") {
|
|
- channel, _ = strconv.Atoi(strings.Split(strings.Split(strings.Split(assessment.ReferPageURL, "link")[1], "form")[0], "_")[1])
|
|
|
|
- category, _ = strconv.Atoi(strings.Split(strings.Split(strings.Split(assessment.ReferPageURL, "link")[1], "form")[0], "_")[2])
|
|
|
|
|
|
+ assessment.Channel, _ = strconv.Atoi(strings.Split(strings.Split(strings.Split(assessment.ReferPageURL, "link")[1], "form")[0], "_")[1])
|
|
|
|
+ assessment.Category, _ = strconv.Atoi(strings.Split(strings.Split(strings.Split(assessment.ReferPageURL, "link")[1], "form")[0], "_")[2])
|
|
} else {
|
|
} else {
|
|
- channel = assessment.Channel
|
|
|
|
- category = assessment.Category
|
|
|
|
|
|
+ assessment.Channel, _ = strconv.Atoi(strings.Split(strings.Split(strings.Split(assessment.ChatURL, "link")[1], "form")[0], "_")[1])
|
|
|
|
+ assessment.Category, _ = strconv.Atoi(strings.Split(strings.Split(strings.Split(assessment.ChatURL, "link")[1], "form")[0], "_")[2])
|
|
}
|
|
}
|
|
- } else if assessment.DataType == 3 || ((assessment.Channel == 5 || assessment.Channel == 7) && assessment.ChatID != "") {
|
|
|
|
- if !strings.Contains(assessment.URL, "utm") && !strings.Contains(assessment.ChatURL, "utm") && !strings.Contains(assessment.ReferPageURL, "utm") {
|
|
|
|
- key := "sensors:" + assessment.GrUserId
|
|
|
|
- cc, _ := redisCli().Get(key).Result()
|
|
|
|
- var sensors SensorsData
|
|
|
|
- json.Unmarshal([]byte(cc), &sensors)
|
|
|
|
- if sensors.Channel > 0 {
|
|
|
|
- channel = sensors.Channel
|
|
|
|
- category = sensors.Category
|
|
|
|
- } else if sensors.Url == "https://www.jjl.cn/" || sensors.Url == "https://m.jjl.cn/" {
|
|
|
|
- channel = 7
|
|
|
|
- category = 126
|
|
|
|
- } else {
|
|
|
|
- channel = 5
|
|
|
|
- category = 11
|
|
|
|
- }
|
|
|
|
- } else {
|
|
|
|
- if !strings.Contains(assessment.URL, "https") {
|
|
|
|
- assessment.URL = "https://wx.com" + assessment.URL
|
|
|
|
- }
|
|
|
|
- if !strings.Contains(assessment.ReferPageURL, "https") {
|
|
|
|
- assessment.ReferPageURL = "https://wx.com" + assessment.ReferPageURL
|
|
|
|
- }
|
|
|
|
- if strings.Contains(assessment.URL, "link") {
|
|
|
|
- channel, _ = strconv.Atoi(strings.Split(strings.Split(strings.Split(assessment.URL, "link")[1], "form")[0], "_")[1])
|
|
|
|
- category, _ = strconv.Atoi(strings.Split(strings.Split(strings.Split(assessment.URL, "link")[1], "form")[0], "_")[2])
|
|
|
|
- } else if strings.Contains(assessment.ReferPageURL, "link") {
|
|
|
|
- channel, _ = strconv.Atoi(strings.Split(strings.Split(strings.Split(assessment.ReferPageURL, "link")[1], "form")[0], "_")[1])
|
|
|
|
- category, _ = strconv.Atoi(strings.Split(strings.Split(strings.Split(assessment.ReferPageURL, "link")[1], "form")[0], "_")[2])
|
|
|
|
- } else {
|
|
|
|
- channel = 7
|
|
|
|
- category = 126
|
|
|
|
- }
|
|
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ // 神策解析
|
|
|
|
+ if utmUrl.Url != "" && !strings.Contains(assessment.URL, "link") && !strings.Contains(assessment.ReferPageURL, "link") && !strings.Contains(assessment.ChatURL, "link") {
|
|
|
|
+ println("解析神策")
|
|
|
|
+ assessment.Channel = utmUrl.Channel
|
|
|
|
+ assessment.Category = utmUrl.Category
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ // 搜索引擎SEO,外链解析
|
|
|
|
+ if assessment.ReferPageURL != "" && !strings.Contains(assessment.ReferPageURL, "https://www.jjl.cn/") && !strings.Contains(assessment.ReferPageURL, "https://m.jjl.cn/") {
|
|
|
|
+ println("解析SEO")
|
|
|
|
+ assessment.Channel = 5
|
|
|
|
+ assessment.Category = 11
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ // 官网自然访问解析
|
|
|
|
+ if strings.Contains(assessment.URL, "https://www.jjl.cn/") || strings.Contains(assessment.URL, "https://m.jjl.cn/") ||
|
|
|
|
+ strings.Contains(assessment.ReferPageURL, "https://www.jjl.cn/") || strings.Contains(assessment.ReferPageURL, "https://m.jjl.cn/") ||
|
|
|
|
+ strings.Contains(assessment.ChatURL, "https://www.jjl.cn/") || strings.Contains(assessment.ChatURL, "https://m.jjl.cn/") ||
|
|
|
|
+ strings.Contains(utmUrl.Url, "https://www.jjl.cn/") || strings.Contains(utmUrl.Url, "https://m.jjl.cn/") {
|
|
|
|
+ println("解析官网")
|
|
|
|
+ assessment.Channel = 7
|
|
|
|
+ assessment.Category = 126
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ println("默认解析为SEO")
|
|
|
|
+ assessment.Channel = 5
|
|
|
|
+ assessment.Category = 11
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+// ChatAnalysisRule 表单解析规则
|
|
|
|
+func (c SemJsChatRecord) ChatAnalysisRule(chat *SemJsChatRecord) {
|
|
|
|
+ // 获取神策URL(不包含utm)
|
|
|
|
+ cc, _ := redisCli().Get("website:" + chat.GrUserID).Result()
|
|
|
|
+ var websiteUrl SensorsData
|
|
|
|
+ json.Unmarshal([]byte(cc), &websiteUrl)
|
|
|
|
+ // 获取神策url(包含utm)
|
|
|
|
+ cc1, _ := redisCli().Get("sensors:" + chat.GrUserID).Result()
|
|
|
|
+ var utmUrl SensorsData
|
|
|
|
+ json.Unmarshal([]byte(cc1), &utmUrl)
|
|
|
|
+ // 小程序解析
|
|
|
|
+ if strings.Contains(chat.ChatURL, "pages") && strings.Split(strings.Split(chat.ChatURL, "?")[1], "=")[0] == "miniapp" {
|
|
|
|
+ println("小程序解析")
|
|
|
|
+ appType := strings.Split(strings.Split(strings.Split(chat.ChatURL, "?")[1], "=")[1], "_")[1]
|
|
|
|
+ if appType == "baidu" {
|
|
|
|
+ chat.ChannleID = 1
|
|
|
|
+ chat.CategoryID = 30
|
|
|
|
+ } else if appType == "wechat" {
|
|
|
|
+ chat.ChannleID = 8
|
|
|
|
+ chat.CategoryID = 32
|
|
}
|
|
}
|
|
- } else if assessment.DataType == 4 {
|
|
|
|
- if strings.Contains(assessment.ChatURL, "link") {
|
|
|
|
- channel, _ = strconv.Atoi(strings.Split(strings.Split(strings.Split(assessment.ChatURL, "link")[1], "form")[0], "_")[1])
|
|
|
|
- category, _ = strconv.Atoi(strings.Split(strings.Split(strings.Split(assessment.ChatURL, "link")[1], "form")[0], "_")[2])
|
|
|
|
- } else if strings.Contains(assessment.ReferPageURL, "link") {
|
|
|
|
- channel, _ = strconv.Atoi(strings.Split(strings.Split(strings.Split(assessment.ReferPageURL, "link")[1], "form")[0], "_")[1])
|
|
|
|
- category, _ = strconv.Atoi(strings.Split(strings.Split(strings.Split(assessment.ReferPageURL, "link")[1], "form")[0], "_")[2])
|
|
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ // 到梦解析
|
|
|
|
+ if !strings.Contains(chat.ReferPage, "utm") && !strings.Contains(chat.ChatURL, "utm") && (strings.Contains(chat.ReferPage, "daomeng") || strings.Contains(chat.ChatURL, "daomeng")) {
|
|
|
|
+ println("到梦解析")
|
|
|
|
+ chat.ChannleID = 38
|
|
|
|
+ chat.CategoryID = 201
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ // URL解析
|
|
|
|
+ if strings.Contains(chat.ChatURL, "link") || strings.Contains(chat.ReferPage, "link") {
|
|
|
|
+ println("解析URL")
|
|
|
|
+ if strings.Contains(chat.ChatURL, "link") {
|
|
|
|
+ chat.ChannleID, _ = strconv.Atoi(strings.Split(strings.Split(strings.Split(chat.ChatURL, "link")[1], "form")[0], "_")[1])
|
|
|
|
+ chat.CategoryID, _ = strconv.Atoi(strings.Split(strings.Split(strings.Split(chat.ChatURL, "link")[1], "form")[0], "_")[2])
|
|
} else {
|
|
} else {
|
|
- channel = 7
|
|
|
|
- category = 126
|
|
|
|
|
|
+ chat.ChannleID, _ = strconv.Atoi(strings.Split(strings.Split(strings.Split(chat.ReferPage, "link")[1], "form")[0], "_")[1])
|
|
|
|
+ chat.ChannleID, _ = strconv.Atoi(strings.Split(strings.Split(strings.Split(chat.ReferPage, "link")[1], "form")[0], "_")[2])
|
|
}
|
|
}
|
|
|
|
+ return
|
|
}
|
|
}
|
|
- if channel == 0 {
|
|
|
|
- channel = 5
|
|
|
|
|
|
+ // 神策解析
|
|
|
|
+ if utmUrl.Url != "" && !strings.Contains(chat.ReferPage, "link") && !strings.Contains(chat.ChatURL, "link") {
|
|
|
|
+ println("解析神策")
|
|
|
|
+ chat.ChannleID = utmUrl.Channel
|
|
|
|
+ chat.CategoryID = utmUrl.Category
|
|
|
|
+ return
|
|
}
|
|
}
|
|
- if category == 0 {
|
|
|
|
- category = 11
|
|
|
|
|
|
+ // 搜索引擎SEO,外链解析
|
|
|
|
+ if chat.ReferPage != "" && !strings.Contains(chat.ReferPage, "https://www.jjl.cn/") && !strings.Contains(chat.ReferPage, "https://m.jjl.cn/") {
|
|
|
|
+ println("解析SEO")
|
|
|
|
+ chat.ChannleID = 5
|
|
|
|
+ chat.CategoryID = 11
|
|
|
|
+ return
|
|
}
|
|
}
|
|
- var channelCategory ChannelCategory
|
|
|
|
- channelCategory.Channel = channel
|
|
|
|
- channelCategory.Category = category
|
|
|
|
- return channelCategory
|
|
|
|
|
|
+ // 官网自然访问解析
|
|
|
|
+ if strings.Contains(chat.ReferPage, "https://www.jjl.cn/") || strings.Contains(chat.ReferPage, "https://m.jjl.cn/") ||
|
|
|
|
+ strings.Contains(chat.ChatURL, "https://www.jjl.cn/") || strings.Contains(chat.ChatURL, "https://m.jjl.cn/") ||
|
|
|
|
+ strings.Contains(utmUrl.Url, "https://www.jjl.cn/") || strings.Contains(utmUrl.Url, "https://m.jjl.cn/") {
|
|
|
|
+ println("解析官网")
|
|
|
|
+ chat.ChannleID = 7
|
|
|
|
+ chat.CategoryID = 126
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ println("默认解析为SEO")
|
|
|
|
+ chat.ChannleID = 5
|
|
|
|
+ chat.CategoryID = 11
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+const AssessmentAnalysisRule = `
|
|
|
|
+rule "AssessmentAnalysisRule" "表单解析" salience 1
|
|
|
|
+begin
|
|
|
|
+ assessment.AssessmentAnalysisRule(assessment)
|
|
|
|
+end`
|
|
|
|
+
|
|
|
|
+const ChatAnalysisRule = `
|
|
|
|
+rule "ChatAnalysisRule" "会话解析" salience 1
|
|
|
|
+begin
|
|
|
|
+ chat.ChatAnalysisRule(chat)
|
|
|
|
+end`
|
|
|
|
+
|
|
|
|
+// GetChannel 表单渠道归因处理
|
|
|
|
+func GetChannel(assessment ResourceAssessment) ChannelCategory {
|
|
|
|
+ dataContext := gengineContext.NewDataContext()
|
|
|
|
+ dataContext.Add("assessment", &assessment)
|
|
|
|
+ ruleBuilder := builder.NewRuleBuilder(dataContext)
|
|
|
|
+ ruleBuilder.BuildRuleFromString(AssessmentAnalysisRule)
|
|
|
|
+ engine := engine.NewGengine()
|
|
|
|
+ engine.Execute(ruleBuilder, true)
|
|
|
|
+ return ChannelCategory{assessment.Channel, assessment.Category}
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+// GetChatChannel 会话渠道归因处理
|
|
|
|
+func GetChatChannel(chat SemJsChatRecord) ChannelCategory {
|
|
|
|
+ dataContext := gengineContext.NewDataContext()
|
|
|
|
+ dataContext.Add("chat", &chat)
|
|
|
|
+ ruleBuilder := builder.NewRuleBuilder(dataContext)
|
|
|
|
+ ruleBuilder.BuildRuleFromString(ChatAnalysisRule)
|
|
|
|
+ engine := engine.NewGengine()
|
|
|
|
+ engine.Execute(ruleBuilder, true)
|
|
|
|
+ return ChannelCategory{chat.ChannleID, chat.CategoryID}
|
|
}
|
|
}
|
|
|
|
|
|
type SensorsData struct {
|
|
type SensorsData struct {
|
|
@@ -192,3 +242,22 @@ type SensorsData struct {
|
|
Category int `json:"category"`
|
|
Category int `json:"category"`
|
|
Url string `json:"url"`
|
|
Url string `json:"url"`
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+//func main() {
|
|
|
|
+// //var assessment []ResourceAssessment
|
|
|
|
+// //lib.GetDbInstance().Where("DATE(created_at) >= '2023-05-23' and id = 382346").Find(&assessment)
|
|
|
|
+// //for _, value := range assessment {
|
|
|
|
+// // cc := GetChannel(value)
|
|
|
|
+// // println(cc.Channel)
|
|
|
|
+// // println(cc.Category)
|
|
|
|
+// // println("END")
|
|
|
|
+// //}
|
|
|
|
+//
|
|
|
|
+// var chat []SemJsChatRecord
|
|
|
|
+// lib.GetDbInstance().Where("DATE(CREATE_TIME) >= '2023-01-01'").Find(&chat)
|
|
|
|
+// for _, value := range chat {
|
|
|
|
+// println(value.ChatID)
|
|
|
|
+// cc := GetChatChannel(value)
|
|
|
|
+// println(cc.Channel, cc.Category)
|
|
|
|
+// }
|
|
|
|
+//}
|