|
@@ -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 {
|