浏览代码

包联系人、联系电话抽取

Jianghan 5 年之前
父节点
当前提交
529e5f6996
共有 2 个文件被更改,包括 31 次插入2 次删除
  1. 4 2
      src/jy/extract/extpackage.go
  2. 27 0
      src/jy/extract/extract.go

+ 4 - 2
src/jy/extract/extpackage.go

@@ -148,8 +148,10 @@ func PackageDetail(j *ju.Job, e *ExtractTask, isSite bool, codeSite string) {
 					sonJobResult["origin"] = pkg.Origin
 					sonJobResult["text"] = pkg.Text
 					sonJobResult["name"] = pkg.Name
-					sonJobResult["winnertel"] = pkg.WinnerTel
-					sonJobResult["winnerperson"] = pkg.WinnerPerson
+					if pkg.WinnerPerson != "" {
+						sonJobResult["winnertel"] = pkg.WinnerTel
+						sonJobResult["winnerperson"] = pkg.WinnerPerson
+					}
 					if pkg.IsTrueBudget{
 						sonJobResult["budget"] = pkg.Budget
 					}

+ 27 - 0
src/jy/extract/extract.go

@@ -930,6 +930,19 @@ func ExtRuleCoreByPkgReg(j *ju.Job, in *RegLuaInfo, e *ExtractTask) {
 				if in.Field == "projectname" && vbpkg.Name != "" {
 					continue
 				}
+				if in.Field == "winnerperson" {
+					if vbpkg.Winner == "" || len(vbpkg.Winner) < 4 {
+						continue
+					}
+					if !strings.Contains(vbpkg.Text, vbpkg.Winner) {
+						continue
+					}
+				}
+				if in.Field == "winnertel" {
+					if vbpkg.WinnerPerson == "" {
+						continue
+					}
+				}
 				//处理正负数修正
 				ptmp := strings.Split(in.RuleText, "#")
 				sign := 0
@@ -1031,6 +1044,16 @@ func ExtRuleCoreByPkgReg(j *ju.Job, in *RegLuaInfo, e *ExtractTask) {
 									j.BlockPackage[k].Name = rep[in.Field+"_"+fmt.Sprint(i)]
 									break
 								}
+							} else if in.Field == "winnerperson" {
+								if j.BlockPackage[k].WinnerPerson == "" {
+									j.BlockPackage[k].WinnerPerson = rep[in.Field+"_"+fmt.Sprint(i)]
+									break
+								}
+							} else if in.Field == "winnertel" {
+								if j.BlockPackage[k].WinnerTel == "" && j.BlockPackage[k].Winner != "" && j.BlockPackage[k].WinnerPerson != "" {
+									j.BlockPackage[k].WinnerTel = rep[in.Field+"_"+fmt.Sprint(i)]
+									break
+								}
 							}
 						}
 					}
@@ -1480,6 +1503,10 @@ func ExtRegBackPkg(j *ju.Job, in *RegLuaInfo) {
 			j.BlockPackage[k].Text = in.RegPreBac.Reg.ReplaceAllString(v.Text, in.RegPreBac.Replace)
 		} else if in.Field == "projectname" {
 			j.BlockPackage[k].Name = in.RegPreBac.Reg.ReplaceAllString(v.Name, in.RegPreBac.Replace)
+		} else if in.Field == "winnerperson" {
+			j.BlockPackage[k].WinnerPerson = in.RegPreBac.Reg.ReplaceAllString(v.WinnerPerson, in.RegPreBac.Replace)
+		} else if in.Field == "winnertel" {
+			j.BlockPackage[k].WinnerTel = in.RegPreBac.Reg.ReplaceAllString(v.WinnerTel, in.RegPreBac.Replace)
 		}
 	}
 }