|
@@ -12,11 +12,11 @@ import (
|
|
|
"time"
|
|
|
)
|
|
|
|
|
|
-func AdvancedProject(userid string) (map[string]interface{}, error) {
|
|
|
+func AdvancedProject(userid, keyWord string, types int) map[string]interface{} {
|
|
|
mae := new(MarketAnalysisEntity)
|
|
|
- if !mae.KeyWordFormat(userid) {
|
|
|
+ if !mae.KeyWordFormat(userid, keyWord, types) {
|
|
|
log.Printf("关键词格式化化失败 userid:%s", userid)
|
|
|
- return nil, nil
|
|
|
+ return nil
|
|
|
}
|
|
|
mae.Types = 2
|
|
|
mae.FormatParam.SubType = []string{"拟建", "采购意向"}
|
|
@@ -26,7 +26,7 @@ func AdvancedProject(userid string) (map[string]interface{}, error) {
|
|
|
log.Println("超前项目es查询:", finalSql)
|
|
|
res, _, data := public.GetAggs("bidding", "bidding", finalSql)
|
|
|
if res == nil || len(res) == 0 || data == nil || len(data) == 0 {
|
|
|
- return nil, nil
|
|
|
+ return nil
|
|
|
}
|
|
|
var thisRow SuperProjects
|
|
|
for name, object := range res {
|
|
@@ -56,7 +56,7 @@ func AdvancedProject(userid string) (map[string]interface{}, error) {
|
|
|
redisData = append(redisData, _d)
|
|
|
}
|
|
|
if len(redisData) == 0 {
|
|
|
- return nil, nil
|
|
|
+ return nil
|
|
|
}
|
|
|
resData := make([]map[string]interface{}, len(data))
|
|
|
for i, v := range data {
|
|
@@ -70,14 +70,68 @@ func AdvancedProject(userid string) (map[string]interface{}, error) {
|
|
|
return map[string]interface{}{
|
|
|
"projectTop2": resData,
|
|
|
"subTypeCount": redisData,
|
|
|
- }, nil
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
-func (mae *MarketAnalysisEntity) KeyWordFormat(userid string) (ret bool) {
|
|
|
+func (mae *MarketAnalysisEntity) KeyWordFormat(userid, keyWord string, types int) (ret bool) {
|
|
|
var (
|
|
|
arrMap []map[string]interface{}
|
|
|
aItems []interface{}
|
|
|
)
|
|
|
+ switch mae.Types {
|
|
|
+ case 1: //分析报告
|
|
|
+ //获取订阅词
|
|
|
+ aItems, ret = Subscription(userid)
|
|
|
+ //无订阅词且未搜索页面 查询搜索词
|
|
|
+ if !ret && types == 1 {
|
|
|
+ arrs := strings.Split(redis.GetStr("other", "s_"+userid), ",")
|
|
|
+ if len(arrs) > 3 {
|
|
|
+ arrs = arrs[:3]
|
|
|
+ }
|
|
|
+ if len(arrs) > 0 {
|
|
|
+ ret = true
|
|
|
+ for _, v := range arrs {
|
|
|
+ arrMap = append(arrMap, map[string]interface{}{"from": 1, "appendkey": nil, "key": processKeyword(v), "notkey": nil, "updatetime": time.Now().Unix()})
|
|
|
+ }
|
|
|
+ item := map[string]interface{}{
|
|
|
+ "a_key": arrMap,
|
|
|
+ "s_item": "未分类",
|
|
|
+ "updatetime": time.Now().Unix(),
|
|
|
+ }
|
|
|
+ aItems = append(aItems, item)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ case 2: //超前项目
|
|
|
+ if keyWord != "" { //搜索页面超前项目
|
|
|
+ ret = true
|
|
|
+ for _, v := range strings.Split(keyWord, ",") {
|
|
|
+ arrMap = append(arrMap, map[string]interface{}{"from": 1, "appendkey": nil, "key": processKeyword(v), "notkey": nil, "updatetime": time.Now().Unix()})
|
|
|
+ }
|
|
|
+ item := map[string]interface{}{
|
|
|
+ "a_key": arrMap,
|
|
|
+ "s_item": "未分类",
|
|
|
+ "updatetime": time.Now().Unix(),
|
|
|
+ }
|
|
|
+ aItems = append(aItems, item)
|
|
|
+ } else { //没有关键词 订阅页面超前项目
|
|
|
+ //未传搜索词按照关键词匹配
|
|
|
+ aItems, ret = Subscription(userid)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if ret {
|
|
|
+ //匹配到关键词 进行格式化处理
|
|
|
+ dataType, _ := json.Marshal(aItems)
|
|
|
+ key := string(dataType)
|
|
|
+ if err := json.Unmarshal([]byte(key), &mae.FormatParam.KeysItems); err != nil {
|
|
|
+ log.Println("关键词格式化失败", aItems)
|
|
|
+ return false
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+func Subscription(userid string) (aItems []interface{}, ret bool) {
|
|
|
+ var arrMap []map[string]interface{}
|
|
|
//未传搜索词按照关键词匹配
|
|
|
data, ok := public.MQFW.FindById("user", userid, `{"o_jy":1,"o_vipjy":1,"o_member_jy":1,"i_vip_status":1,"i_member_status":1,"s_phone":1,"s_m_phone":1}`)
|
|
|
if ok && data != nil && len(*data) > 0 {
|
|
@@ -111,38 +165,8 @@ func (mae *MarketAnalysisEntity) KeyWordFormat(userid string) (ret bool) {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- if !ret {
|
|
|
- //传搜索次按照搜索词匹配
|
|
|
- arrs := strings.Split(redis.GetStr("other", "s_"+userid), ",")
|
|
|
- if len(arrs) > 3 {
|
|
|
- arrs = arrs[:3]
|
|
|
- }
|
|
|
- if len(arrs) > 0 {
|
|
|
- ret = true
|
|
|
- for _, v := range arrs {
|
|
|
- arrMap = append(arrMap, map[string]interface{}{"from": 1, "appendkey": nil, "key": processKeyword(v), "notkey": nil, "updatetime": time.Now().Unix()})
|
|
|
- }
|
|
|
- item := map[string]interface{}{
|
|
|
- "a_key": arrMap,
|
|
|
- "s_item": "未分类",
|
|
|
- "updatetime": time.Now().Unix(),
|
|
|
- }
|
|
|
- aItems = append(aItems, item)
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- if ret {
|
|
|
- //匹配到关键词 进行格式化处理
|
|
|
- dataType, _ := json.Marshal(aItems)
|
|
|
- key := string(dataType)
|
|
|
- if err := json.Unmarshal([]byte(key), &mae.FormatParam.KeysItems); err != nil {
|
|
|
- log.Println("关键词格式化失败", aItems)
|
|
|
- return false
|
|
|
- }
|
|
|
- }
|
|
|
return
|
|
|
}
|
|
|
-
|
|
|
func Items(aItems []interface{}) bool {
|
|
|
if aItems != nil && len(aItems) > 0 {
|
|
|
for _, v := range aItems {
|