Преглед изворни кода

feat:三一重工接口调整

zhangxinlei1996 пре 4 месеци
родитељ
комит
c7e54389a3
1 измењених фајлова са 126 додато и 0 уклоњено
  1. 126 0
      customerdata/src/util.go

+ 126 - 0
customerdata/src/util.go

@@ -911,6 +911,10 @@ func AssembelSave(tmp map[string]interface{}, IsSearchHosp, IsSearchEnps bool, a
 		}
 		tmp["industry"] = buyerclass
 	}
+	//三一重工
+	if appid == "jyGy5XQAEEAgRbTUNPKyRU" {
+		Optimization(tmp)
+	}
 	tmp["datasource"] = "增量匹配"
 	if dataSave != "" {
 		rdata := MgoSave.Save(dataSave, tmp)
@@ -1495,3 +1499,125 @@ func GetWinnerStyle(s_winner string, v map[string]interface{}) {
 		v["winner_style"] = ""
 	}
 }
+
+/*
+href_zb 第一条招标地址
+competitor 竞对友商
+manaCustomer 直管客户
+publishtime_zb 第一条招标发布时间
+isOptimization 是否优选 :优选规则:招标都非优选,结果数据有项目标识且与当前标讯ID不一致则为优选
+*/
+func Optimization(tmp map[string]interface{}) {
+	buyer := qu.ObjToString(tmp["buyer"])
+	s_winner := qu.ObjToString(tmp["s_winner"])
+	if buyer != "" {
+		tmp["manaCustomer"] = get50Partner(buyer)
+	}
+	if s_winner != "" {
+		tmp["competitor"] = get50Partner(s_winner)
+	}
+	bid := qu.ObjToString(tmp["id"])
+	pid := qu.ObjToString(tmp["projectId"])
+	subtype := qu.ObjToString(tmp["subtype"])
+
+	subtypeMap := map[string]bool{
+		"中标": true,
+		"合同": true,
+		"成交": true,
+		"单一": true,
+	}
+	tmp["isOptimization"] = 0
+	//中标数据需要找,招标地址,招标发布时间
+	if subtypeMap[subtype] {
+		if bid != pid {
+			tmp["isOptimization"] = 1
+		}
+		query := `{"query": {"bool": {"must": [{"term": {"ids": "%s"}}],"must_not": [],"should": []}}}`
+		querys := fmt.Sprintf(query, pid)
+		data := Es.Get("projectset", "projectset", querys)
+		if data != nil && len(*data) > 0 {
+			//内部字段
+			for _, v := range *data {
+				if list, ok := v["list"].([]interface{}); ok {
+					for _, l := range list {
+						if vs, oks := l.(map[string]interface{}); oks {
+							toptype := qu.ObjToString(vs["toptype"])
+							if toptype == "招标" {
+								infoid := qu.ObjToString(vs["infoid"])
+								publishtime := qu.Int64All(vs["publishtime"])
+								href := qu.ObjToString(vs["href"])
+								budget := qu.Float64All(vs["budget"])
+
+								tmp["infoid_zb"] = infoid
+								tmp["href_zb"] = href
+								tmp["budget_zb"] = budget
+								tmp["publishtime_zb"] = publishtime
+								break
+							}
+
+						}
+					}
+				}
+			}
+		}
+	}
+}
+
+// getParentsByPartner 获取母公司
+func getParentsByPartner(companyId string) (res []map[string]interface{}) {
+	q := map[string]interface{}{"company_id": companyId}
+	info, _ := MgoEnps.Find("company_partner", q, nil, nil)
+	return info
+}
+
+func get50Partner(name string) string {
+	if name == "" {
+		return ""
+	}
+	pname := ""
+
+	for _, vname := range strings.Split(name, ",") {
+		cdata, _ := MgoEnps.Find("company_base", map[string]interface{}{
+			"company_name": vname,
+		}, nil, nil)
+
+		companyId := ""
+		if cdata != nil && len(cdata) > 0 {
+			for _, v := range cdata {
+				use_flag := qu.IntAll(v["use_flag"])
+				if use_flag != 0 {
+					continue
+				}
+				companyId = qu.ObjToString(v["company_id"])
+			}
+		}
+		if companyId != "" {
+			pdata := getParentsByPartner(companyId)
+
+			for _, v := range pdata {
+				stock_proportion := qu.Float64All(v["stock_proportion"])
+				//, "use_flag": 0, "is_history": 0
+				if qu.IntAll(v["use_flag"]) != 0 {
+					continue
+				}
+				if qu.IntAll(v["is_history"]) != 0 {
+					continue
+				}
+				if stock_proportion > 0.5 {
+					pname += qu.ObjToString(v["company_name"]) + ","
+				}
+			}
+		}
+	}
+
+	return RemoveLastComma(pname)
+
+}
+
+// RemoveLastComma 如果字符串的最后一个字符是逗号,则移除它。
+func RemoveLastComma(str string) string {
+	if strings.HasSuffix(str, ",") {
+		return str[:len(str)-1]
+	}
+	return str
+}