|
@@ -80,19 +80,19 @@ func TaskWinner(mapinfo *map[string]interface{}) {
|
|
|
if pwinper, ok4 := vvv["winnerperson"].(string); ok4 && pwinper != "" {
|
|
|
ptmp := make(map[string]interface{})
|
|
|
ptmp["p_id"] = mgoId + "_pkg_" + i
|
|
|
- ptmp["_id"] = bson.NewObjectId()
|
|
|
+ ptmp["_id"] = bson.NewObjectId().Hex()
|
|
|
ptmp["winner"] = winner
|
|
|
ptmp["winnerperson"] = pwinper
|
|
|
if pkgtel, ok6 := vvv["winnertel"].(string); ok6 {
|
|
|
ptmp["winnertel"] = pkgtel
|
|
|
}
|
|
|
- if tmp["topscopeclass"]!=nil{
|
|
|
+ if tmp["topscopeclass"] != nil {
|
|
|
ptmp["topscopeclass"] = tmp["topscopeclass"]
|
|
|
}
|
|
|
//分包里中标单位和企业名一样
|
|
|
if pwinner == winner {
|
|
|
tmps = append(tmps, ptmp)
|
|
|
- }else if conn.Exists(pwinner).Val() > 0 {
|
|
|
+ } else if conn.Exists(pwinner).Val() > 0 {
|
|
|
//分包里中标单位和企业名不一样,存量里匹配上了
|
|
|
bytes, _ := conn.Get(pwinner).Bytes()
|
|
|
cltmps := make([]map[string]interface{}, 0)
|
|
@@ -131,7 +131,7 @@ func TaskWinner(mapinfo *map[string]interface{}) {
|
|
|
log.Println(err)
|
|
|
}
|
|
|
}
|
|
|
- log.Println("存量 winner mongo遍历完成:",num)
|
|
|
+ log.Println("存量 winner mongo遍历完成:", num)
|
|
|
SourceClient.DestoryMongoConn(SourceClientcc)
|
|
|
//遍历redis
|
|
|
if scan := conn.Scan(0, "", 100); scan.Err() != nil {
|
|
@@ -374,7 +374,7 @@ func Add(overid string, tmp map[string]interface{}) string {
|
|
|
}
|
|
|
//分包处理
|
|
|
if tmp["package"] != nil {
|
|
|
- PackageDealWith(oldTmp, tmp, winner)
|
|
|
+ PackageDealWith(tmp, tmpConTopscopeclass, overid)
|
|
|
}
|
|
|
(*oldTmp)["contact"] = contactMaps
|
|
|
//mongo更新
|
|
@@ -660,7 +660,7 @@ func TimedTaskWinner() {
|
|
|
}
|
|
|
//判断分包
|
|
|
if tmp["package"] != nil {
|
|
|
- PackageDealWith(&savetmp, tmp, errwinner)
|
|
|
+ PackageDealWith(tmp,tmpclass, tmpId)
|
|
|
}
|
|
|
//tmps = append(tmps, savetmp)
|
|
|
savetmp["comeintime"] = time.Now().Unix()
|
|
@@ -698,12 +698,29 @@ func TimedTaskWinner() {
|
|
|
}
|
|
|
|
|
|
//分包处理
|
|
|
-func PackageDealWith(contactMap *map[string]interface{}, tmp map[string]interface{}, comName string) []interface{} {
|
|
|
+func PackageDealWith(tmp map[string]interface{}, tmpclass []string,pkgid string) {
|
|
|
util.Catch()
|
|
|
- //if v, ok := tmp["package"].(map[string]interface{}); ok {
|
|
|
- //for i, pv := range v {
|
|
|
- // log.Println(i, pv)
|
|
|
- //}
|
|
|
- //}
|
|
|
- return nil
|
|
|
+ if v, ok := tmp["package"].(map[string]interface{}); ok {
|
|
|
+ for i, pv := range v {
|
|
|
+ if ppv, ok2 := pv.(map[string]interface{}); ok2 {
|
|
|
+ pkgwinner, ok3 := ppv["winner"].(string)
|
|
|
+ if !ok3 || utf8.RuneCountInString(pkgwinner) < 4 {
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ //创建中标单位放入临时表
|
|
|
+ vvv := make(map[string]interface{})
|
|
|
+ vvv["winner"] = pkgwinner
|
|
|
+ vvv["topscopeclass"] = tmpclass
|
|
|
+ vvv["pkg_id"] =pkgid+"_"+i
|
|
|
+ if winnerperson, ok := tmp["winnerperson"].(string); ok && winnerperson != "" &&
|
|
|
+ !Reg_xing.MatchString(winnerperson) && Reg_person.MatchString(winnerperson) {
|
|
|
+ vvv["winnerperson"] = winnerperson
|
|
|
+ if winnertel, ok := tmp["winnertel"].(string); ok && !Reg_xing.MatchString(winnertel) && Reg_tel.MatchString(winnertel) {
|
|
|
+ vvv["winnertel"] = winnertel
|
|
|
+ }
|
|
|
+ }
|
|
|
+ FClient.Save(Config["mgo_qyk_c_w_new"],vvv)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|