浏览代码

Merge branch 'dev/v3.1.19_fu' of jianyu/salesLeads into feature/v3.1.19

fuwencai 1 年之前
父节点
当前提交
a41f340198
共有 2 个文件被更改,包括 89 次插入10 次删除
  1. 74 10
      src/service/action/info.go
  2. 15 0
      src/test/p562.http

+ 74 - 10
src/service/action/info.go

@@ -679,6 +679,7 @@ func (i *Info) AppNewUerSales() {
 			//return entity.NewResultSales{Error_code: -1, Error_msg: Error_msg_1002}
 			//---跳过--- 且没有任何信息
 		}
+		areas := ""
 		var userSales bool
 		for k, v := range infoMap {
 			ik := qu.InterfaceToStr(k)
@@ -687,6 +688,10 @@ func (i *Info) AppNewUerSales() {
 				//break
 				if len(strings.Split(ik, "##")) > 1 {
 					p := strings.Split(ik, "##")[0]
+					p1 := strings.Split(ik, "##")[1]
+					if p == "area" && p1 != "other" {
+						areas = fmt.Sprintf("%s,%v", areas, v)
+					}
 					if infoMap[p] != nil {
 						infoMap[p] = fmt.Sprintf("%s,%v", infoMap[p], v)
 					} else {
@@ -711,31 +716,58 @@ func (i *Info) AppNewUerSales() {
 			infoMap["client"] = i.Header("user-agent")
 			infoMap["createtime"] = tm
 			infoMap["source"] = "app_xzcyh"
-			keyWords := qu.InterfaceToStr(infoMap["keyword"])
+			products := qu.InterfaceToStr(infoMap["product"])
+			area := processArea(areas)
 			//data, ok := 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}`)
 			data := jy.GetBigVipUserBaseMsg(i.Session(), *Middleground)
 			if data != nil {
 				if qu.InterfaceToStr(infoMap["phone"]) == "" {
 					infoMap["phone"] = data.Data.Free.Phone
 				}
-				if keyWords != "" {
-					keyWord := strings.Split(keyWords, ",")
+				if products != "" {
+					keyWord := strings.Split(products, ",")
+					//
+					key := []string{}
+					for i := 0; i < len(keyWord); i++ {
+						tmp := processKeyword(keyWord[i])
+						if tmp != nil && len(tmp) > 0 {
+							key = append(key, tmp...)
+						}
+						if len(key) >= 10 {
+							key = key[:10] // 只取前10个关键词 多余的不要
+							break
+						}
+					}
 					infoMap["keyword"] = keyWord
-					oJy := jy.GetSubScribeInfo(i.Session(), MQFW, "f", "10000")      //免费用户关键词
+					oJy := jy.GetSubScribeInfo(i.Session(), MQFW, "", "10000")       //免费用户关键词
 					vipJy := jy.GetSubScribeInfo(i.Session(), MQFW, "v", "10000")    //超级订阅关键词
 					memberJy := jy.GetSubScribeInfo(i.Session(), MQFW, "m", "10000") //大会员关键词
 					if data.Data.Member.Status > 0 {
 						types = "o_member_jy"
-						Items(*memberJy, m, keyWord, types)
+						if memberJy == nil {
+							memberJy = &map[string]interface{}{}
+						}
+						SetArea(*memberJy, m, area, types)
+						Items(*memberJy, m, key, types)
 					} else if data.Data.Vip.Status > 0 {
-						types = "o_member_jy"
-						Items(*vipJy, m, keyWord, types)
+						types = "o_vip_jy"
+						if vipJy == nil {
+							vipJy = &map[string]interface{}{}
+						}
+						SetArea(*memberJy, m, area, types)
+						Items(*vipJy, m, key, types)
 					} else {
 						types = "o_jy"
 						if oJy == nil || len(*oJy) == 0 {
+							oJy = &map[string]interface{}{}
+						}
+						o_area, areaB := (*oJy)["o_area"].(map[string]interface{})
+						a_key, keyB := (*oJy)["a_key"].([]interface{})
+
+						if !keyB || a_key == nil || len(a_key) == 0 {
 							//不存在关键词 填充
 							var arryMap []map[string]interface{}
-							for _, v := range keyWord {
+							for _, v := range key {
 								arryMap = append(arryMap, map[string]interface{}{"from": 1, "appendkey": nil, "key": processKeyword(v), "notkey": nil, "updatetime": time.Now().Unix()})
 							}
 							(*oJy)["a_key"] = arryMap
@@ -750,10 +782,16 @@ func (i *Info) AppNewUerSales() {
 								(*oJy)["s_item"] = "未分类"
 							}
 							m["o_jy"] = (*oJy)
-						} //普通用户存在设置的关键词
+						}
+						if !areaB || len(o_area) <= 0 {
+							(*oJy)["o_area"] = map[string]interface{}{
+								"北京": []interface{}{}}
+							m[types] = (*oJy)
+						}
+
 					}
 					go SetLog(userId, types)
-					if len(keyWord) > 0 {
+					if len(m) > 0 {
 						jy.Publish(Mgo_Log, Sysconfig.Nsq, Sysconfig.NsqTopic, "task", qu.ObjToString(i.GetSession("mgoUserId")), jy.Jywx_node1, map[string]interface{}{
 							"code":       1015, //首次订阅
 							"types":      "subscribeKeyWords",
@@ -801,6 +839,24 @@ func (i *Info) AppNewUerSales() {
 	i.ServeJson(r)
 }
 
+/*
+(2)如业务区域为全国,订阅区域按照“北京”同步;
+(3)如业务区域选择了多个,则随机将其中1个区域同步至“订阅区域”内。
+*/
+func processArea(areaStr string) (area string) {
+	areaStrList := strings.Split(areaStr, ",")
+	for i := 0; i < len(areaStrList); i++ {
+		if areaStrList[i] != "" && areaStrList[i] != "全国" {
+			area = areaStrList[i]
+			return
+		}
+	}
+	if area == "" {
+		area = "北京"
+	}
+	return
+}
+
 // SetLog 订阅设置记录
 func SetLog(userid, types string) {
 	if data := Compatible.Select(userid, `{"o_vipjy":1,"o_member_jy":1,"o_jy":1}`); len(*data) > 0 && data != nil {
@@ -868,6 +924,14 @@ func Items(jy, m map[string]interface{}, keyWord []string, types string) {
 		m[types] = jy
 	}
 }
+func SetArea(jy, m map[string]interface{}, area, types string) {
+	o_area, ok := jy["o_area"].(map[string]interface{})
+	if !ok || len(o_area) <= 0 {
+		jy["o_area"] = map[string]interface{}{
+			"北京": []interface{}{}}
+		m[types] = jy
+	}
+}
 
 // 保存入库之前,处理订阅的关键词
 func processKeyword(keyword string) []string {

+ 15 - 0
src/test/p562.http

@@ -0,0 +1,15 @@
+### 设置兴趣爱好页面
+POST http://127.0.0.1:8881/salesLeads/appNewUerSales
+Content-Type: application/json
+Cookie: SESSIONID=03f5361aa84b35052acb152a6ad90b7c2ae5e468
+
+{
+  "company": "不不不不不不",
+  "position": "总监",
+  "product##other": "键盘 耳机 水杯",
+  "area##other": "郑州市",
+  "area##business": "全国,北京,广州,山东,河南,浙江,江苏,陕西,上海,四川,湖北",
+  "product##product": "家具/家装,福利品,机械设备",
+  "product##service": "软件开发,培训咨询",
+  "product##engineering": "装修施工,结构建材"
+}