|
@@ -9,6 +9,8 @@ import (
|
|
|
qutil "qfw/util"
|
|
|
"qfw/util/redis"
|
|
|
"time"
|
|
|
+
|
|
|
+ "go.mongodb.org/mongo-driver/bson"
|
|
|
)
|
|
|
|
|
|
type SelectC struct {
|
|
@@ -20,6 +22,37 @@ type SelectC struct {
|
|
|
PCOR string
|
|
|
}
|
|
|
|
|
|
+//移除我的潜在对手
|
|
|
+func (this *Analysis) RMyRivals() {
|
|
|
+ defer qutil.Catch()
|
|
|
+ var regMap = Result{
|
|
|
+ Data: []map[string]interface{}{},
|
|
|
+ Error_code: Error_code,
|
|
|
+ Error_msg: "",
|
|
|
+ }
|
|
|
+ if this.Method() == METHOD {
|
|
|
+ entName := this.GetString("entName")
|
|
|
+ userId, _ := this.GetSession("userId").(string)
|
|
|
+ if entName != "" {
|
|
|
+ ok := db.Mgo.Update(C_Member, `{"userid":"`+userId+`"}`, bson.M{
|
|
|
+ "$push": bson.M{
|
|
|
+ "outMyRivals": entName,
|
|
|
+ },
|
|
|
+ }, false, false)
|
|
|
+ regMap.Data = map[string]interface{}{
|
|
|
+ "success": ok,
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ regMap.Error_code = Error_code_1002
|
|
|
+ regMap.Error_msg = Error_msg_1002
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ regMap.Error_code = Error_code_1005
|
|
|
+ regMap.Error_msg = Error_msg_1005
|
|
|
+ }
|
|
|
+ this.ServeJson(regMap)
|
|
|
+}
|
|
|
+
|
|
|
//潜在客户
|
|
|
func (this *Analysis) CsORRsList() {
|
|
|
defer qutil.Catch()
|
|
@@ -79,8 +112,10 @@ func (this *Analysis) CsORRsList() {
|
|
|
} //查库获得大会员用户的行业信息
|
|
|
entInfo, ok := db.Mgo.FindOneByField(C_Member, `{"userid":"`+userId+`"}`, `{"entname":1,"industry":1}`)
|
|
|
if ok && entInfo != nil {
|
|
|
- entName = (*entInfo)["entname"].(string)
|
|
|
- if len(industry) == 0 {
|
|
|
+ if (*entInfo)["entname"] != nil {
|
|
|
+ entName = (*entInfo)["entname"].(string)
|
|
|
+ }
|
|
|
+ if len(industry) == 0 && (*entInfo)["industry"] != nil {
|
|
|
industry = qutil.ObjArrToStringArr((*entInfo)["industry"].([]interface{})) //行业
|
|
|
}
|
|
|
}
|
|
@@ -151,7 +186,8 @@ func getPRivals(userId string, potRivQ string) []PTComs {
|
|
|
var regMap = []PTComs{}
|
|
|
//我关注的企业
|
|
|
MyFollowEnts := getMyFollowEnts(userId)
|
|
|
- log.Println(MyFollowEnts)
|
|
|
+ //非我的潜在竞争对手
|
|
|
+ OutLMyRivals := gerOutLMyRivals(userId)
|
|
|
aggs, _ := GetAggs(P_INDEX, P_TYPE, potRivQ)
|
|
|
if aggs != nil {
|
|
|
if aggsMap_g, ok := aggs.Children("group_field"); ok {
|
|
@@ -160,7 +196,7 @@ func getPRivals(userId string, potRivQ string) []PTComs {
|
|
|
if len(bs) > 0 {
|
|
|
json.Unmarshal(bs, &aggsMap)
|
|
|
if len(aggsMap) > 0 {
|
|
|
- regMap = analysisData(aggsMap, MyFollowEnts)
|
|
|
+ regMap = analysisData(aggsMap, MyFollowEnts, OutLMyRivals)
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -168,6 +204,18 @@ func getPRivals(userId string, potRivQ string) []PTComs {
|
|
|
return regMap
|
|
|
}
|
|
|
|
|
|
+//非我的潜在竞争对手
|
|
|
+func gerOutLMyRivals(userId string) map[string]interface{} {
|
|
|
+ var OutLMyRivals = map[string]interface{}{}
|
|
|
+ entData, ok := db.Mgo.FindOne(C_Member, `{"userid":"`+userId+`"}`)
|
|
|
+ if ok && entData != nil && (*entData)["outMyRivals"] != nil {
|
|
|
+ for _, v := range qutil.ObjArrToStringArr((*entData)["outMyRivals"].([]interface{})) {
|
|
|
+ OutLMyRivals[v] = true
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return OutLMyRivals
|
|
|
+}
|
|
|
+
|
|
|
//获取我关注的企业
|
|
|
func getMyFollowEnts(userId string) map[string]interface{} {
|
|
|
var MyEntInfo = map[string]interface{}{}
|
|
@@ -195,7 +243,7 @@ func getPCostomers(userId, entName string, potComQ string) []PTComs {
|
|
|
if len(bs) > 0 {
|
|
|
json.Unmarshal(bs, &aggsMap)
|
|
|
if len(aggsMap) > 0 {
|
|
|
- regMap = analysisData(aggsMap, MyCustomers)
|
|
|
+ regMap = analysisData(aggsMap, MyCustomers, nil)
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -246,13 +294,17 @@ type PTComs struct {
|
|
|
}
|
|
|
|
|
|
//
|
|
|
-func analysisData(res []map[string]interface{}, mycs map[string]interface{}) []PTComs {
|
|
|
+func analysisData(res []map[string]interface{}, mycs map[string]interface{}, omyr map[string]interface{}) []PTComs {
|
|
|
var ADRes = new([]PTComs)
|
|
|
for _, v := range res {
|
|
|
var ptcs = new(PTComs)
|
|
|
var buyer_val = qutil.ObjToString(v["key"]) //采购单位
|
|
|
- //排除我的客户
|
|
|
- if mycs[buyer_val] != nil {
|
|
|
+ //排除我的客户 和 我的企业情报数据
|
|
|
+ if mycs != nil && mycs[buyer_val] != nil {
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ //排除移除的我的潜在竞争对手
|
|
|
+ if omyr != nil && omyr[buyer_val] != nil {
|
|
|
continue
|
|
|
}
|
|
|
var budget_val = qutil.ObjToMap(v["count"]) //预算总金额
|