|
@@ -7,7 +7,10 @@ import (
|
|
"go.mongodb.org/mongo-driver/bson/primitive"
|
|
"go.mongodb.org/mongo-driver/bson/primitive"
|
|
"os"
|
|
"os"
|
|
qu "qfw/util"
|
|
qu "qfw/util"
|
|
|
|
+ "regexp"
|
|
|
|
+ "strings"
|
|
"time"
|
|
"time"
|
|
|
|
+ "unicode/utf8"
|
|
)
|
|
)
|
|
|
|
|
|
var (
|
|
var (
|
|
@@ -17,10 +20,25 @@ var (
|
|
f_4 = xlsx.NewFile()
|
|
f_4 = xlsx.NewFile()
|
|
f_5 = xlsx.NewFile()
|
|
f_5 = xlsx.NewFile()
|
|
sheet_1 ,sheet_2,sheet_3,sheet_4,sheet_5 *xlsx.Sheet
|
|
sheet_1 ,sheet_2,sheet_3,sheet_4,sheet_5 *xlsx.Sheet
|
|
|
|
+ x_name_1,x_name_2,x_name_3,x_name_4,x_name_5 string
|
|
|
|
+ x_tag_1,x_tag_2,x_tag_3,x_tag_4,x_tag_5 string
|
|
)
|
|
)
|
|
|
|
|
|
|
|
|
|
func initBidata() {
|
|
func initBidata() {
|
|
|
|
+
|
|
|
|
+ x_name_1 = "招标信息"
|
|
|
|
+ x_name_2 = "中标信息"
|
|
|
|
+ x_name_3 = "招标项目"
|
|
|
|
+ x_name_4 = "开标公示"
|
|
|
|
+ x_name_5 = "评标公示"
|
|
|
|
+ x_tag_1 = ""
|
|
|
|
+ x_tag_2 = ""
|
|
|
|
+ x_tag_3 = ""
|
|
|
|
+ x_tag_4 = ""
|
|
|
|
+ x_tag_5 = ""
|
|
|
|
+
|
|
|
|
+
|
|
os.Remove("招标信息.xlsx")
|
|
os.Remove("招标信息.xlsx")
|
|
os.Remove("中标信息.xlsx")
|
|
os.Remove("中标信息.xlsx")
|
|
os.Remove("招标项目.xlsx")
|
|
os.Remove("招标项目.xlsx")
|
|
@@ -54,12 +72,19 @@ func initBidata() {
|
|
for _,v := range bid_tagText[4]{
|
|
for _,v := range bid_tagText[4]{
|
|
row_5.AddCell().Value = v
|
|
row_5.AddCell().Value = v
|
|
}
|
|
}
|
|
|
|
+}
|
|
|
|
|
|
-
|
|
|
|
- log.Debug("测试保存数据...")
|
|
|
|
|
|
+func isToLongNewFile(num int) (bool,string) {
|
|
|
|
+ //暂定500000 -间隔
|
|
|
|
+ index := 100000
|
|
|
|
+ if num/index > 0 {
|
|
|
|
+ return true,fmt.Sprintf("_%d",num/index)
|
|
|
|
+ }
|
|
|
|
+ return false,""
|
|
}
|
|
}
|
|
|
|
|
|
func exportBidata() {
|
|
func exportBidata() {
|
|
|
|
+ log.Debug("导出~标讯信息表...")
|
|
sess := bid_mgo.GetMgoConn()
|
|
sess := bid_mgo.GetMgoConn()
|
|
defer bid_mgo.DestoryMongoConn(sess)
|
|
defer bid_mgo.DestoryMongoConn(sess)
|
|
q,total := map[string]interface{}{
|
|
q,total := map[string]interface{}{
|
|
@@ -69,47 +94,129 @@ func exportBidata() {
|
|
},
|
|
},
|
|
},0
|
|
},0
|
|
num_1,num_2,num_3,num_4:=0,0,0,0
|
|
num_1,num_2,num_3,num_4:=0,0,0,0
|
|
- it := sess.DB(bid_mgo.DbName).C(bid_coll).Find(&q).Sort("_id").Iter()
|
|
|
|
|
|
+ it := sess.DB(bid_mgo.DbName).C(bid_coll).Find(&q).Iter()
|
|
for tmp := make(map[string]interface{}); it.Next(&tmp);total++{
|
|
for tmp := make(map[string]interface{}); it.Next(&tmp);total++{
|
|
if total%10000==0 {
|
|
if total%10000==0 {
|
|
log.Debug("curent index ",total,num_1,num_2,num_3,num_4)
|
|
log.Debug("curent index ",total,num_1,num_2,num_3,num_4)
|
|
|
|
+ //f_1.Save(x_name_1+x_tag_1+".xlsx")
|
|
|
|
+ //f_2.Save(x_name_2+x_tag_2+".xlsx")
|
|
|
|
+ //f_3.Save(x_name_3+x_tag_3+".xlsx")
|
|
|
|
+ f_4.Save(x_name_4+x_tag_4+".xlsx")
|
|
|
|
+
|
|
|
|
+ //b_1,tag_1 := isToLongNewFile(num_1)
|
|
|
|
+ //if b_1 && !strings.Contains(x_tag_1,tag_1) {
|
|
|
|
+ // x_tag_1 = tag_1
|
|
|
|
+ // f_1 = xlsx.NewFile()
|
|
|
|
+ // sheet_1, _= f_1.AddSheet("招标信息")
|
|
|
|
+ // row_1:= sheet_1.AddRow()
|
|
|
|
+ // for _,v := range bid_tagText[0]{
|
|
|
|
+ // row_1.AddCell().Value = v
|
|
|
|
+ // }
|
|
|
|
+ //}
|
|
|
|
+ //
|
|
|
|
+ //b_2,tag_2 := isToLongNewFile(num_2)
|
|
|
|
+ //if b_2 && !strings.Contains(x_tag_2,tag_2) {
|
|
|
|
+ // x_tag_2 = tag_2
|
|
|
|
+ // f_2 = xlsx.NewFile()
|
|
|
|
+ // sheet_2, _= f_2.AddSheet("中标信息")
|
|
|
|
+ // row_2:= sheet_2.AddRow()
|
|
|
|
+ // for _,v := range bid_tagText[1]{
|
|
|
|
+ // row_2.AddCell().Value = v
|
|
|
|
+ // }
|
|
|
|
+ //
|
|
|
|
+ //
|
|
|
|
+ //}
|
|
|
|
+ //
|
|
|
|
+ //b_3,tag_3 := isToLongNewFile(num_3)
|
|
|
|
+ //if b_3 && !strings.Contains(x_tag_3,tag_3) {
|
|
|
|
+ // x_tag_3 = tag_3
|
|
|
|
+ // f_3 = xlsx.NewFile()
|
|
|
|
+ // sheet_3, _= f_3.AddSheet("招标项目")
|
|
|
|
+ // row_3:= sheet_3.AddRow()
|
|
|
|
+ // for _,v := range bid_tagText[2]{
|
|
|
|
+ // row_3.AddCell().Value = v
|
|
|
|
+ // }
|
|
|
|
+ //}
|
|
|
|
+
|
|
|
|
+ b_4,tag_4 := isToLongNewFile(num_4)
|
|
|
|
+ if b_4 && !strings.Contains(x_tag_4,tag_4) {
|
|
|
|
+ x_tag_4 = tag_4
|
|
|
|
+ f_4 = xlsx.NewFile()
|
|
|
|
+ sheet_4, _= f_4.AddSheet("评标公示")
|
|
|
|
+ row_4:= sheet_4.AddRow()
|
|
|
|
+ for _,v := range bid_tagText[3]{
|
|
|
|
+ row_4.AddCell().Value = v
|
|
|
|
+ }
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
+ spidercode := qu.ObjToString(tmp["spidercode"])
|
|
extracttype := qu.IntAll(tmp["extracttype"])
|
|
extracttype := qu.IntAll(tmp["extracttype"])
|
|
- if extracttype==-1 {
|
|
|
|
|
|
+ //subtype := qu.ObjToString(tmp["subtype"])
|
|
|
|
+ //toptype := qu.ObjToString(tmp["toptype"])
|
|
|
|
+ site := qu.ObjToString(tmp["site"])
|
|
|
|
+ if extracttype==-1&&site!="中国政府采购网"&&site!="中国招标投标公共服务平台"{
|
|
tmp = make(map[string]interface{})
|
|
tmp = make(map[string]interface{})
|
|
continue
|
|
continue
|
|
}
|
|
}
|
|
- //逻辑处理
|
|
|
|
- subtype := qu.ObjToString(tmp["subtype"])
|
|
|
|
- toptype := qu.ObjToString(tmp["toptype"])
|
|
|
|
- spidercode := qu.ObjToString(tmp["spidercode"])
|
|
|
|
- if toptype=="招标" {
|
|
|
|
- num_1++
|
|
|
|
- data_1 := dealWithZhaoBiao(tmp,num_1)
|
|
|
|
- row_1:= sheet_1.AddRow()
|
|
|
|
- for _,v := range data_1{
|
|
|
|
- row_1.AddCell().Value = v
|
|
|
|
- }
|
|
|
|
|
|
+ if kb_spicode[spidercode]=="" {
|
|
|
|
+ tmp = make(map[string]interface{})
|
|
|
|
+ continue
|
|
}
|
|
}
|
|
- if subtype == "中标" || subtype == "成交" || subtype == "合同" {
|
|
|
|
- num_2++
|
|
|
|
- data_2 := dealWithZhongBiao(tmp,num_2)
|
|
|
|
- row_2:= sheet_2.AddRow()
|
|
|
|
- for _,v := range data_2{
|
|
|
|
- row_2.AddCell().Value = v
|
|
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ topscopeclass := []string{}
|
|
|
|
+ if t_class, ok := tmp["topscopeclass"].(primitive.A); ok {
|
|
|
|
+ topscopeclass = qu.ObjArrToStringArr(t_class)
|
|
|
|
+ }else {
|
|
|
|
+ if t_class, ok := tmp["topscopeclass"].([]interface{}); ok {
|
|
|
|
+ topscopeclass = qu.ObjArrToStringArr(t_class)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- if xm_spicode[spidercode]!="" {
|
|
|
|
- num_3++
|
|
|
|
- data_3 := dealWithXiangMu(tmp,num_3)
|
|
|
|
- row_3:= sheet_3.AddRow()
|
|
|
|
- for _,v := range data_3{
|
|
|
|
- row_3.AddCell().Value = v
|
|
|
|
|
|
+ topscope := ""
|
|
|
|
+ for k,v := range topscopeclass{
|
|
|
|
+ length := utf8.RuneCountInString(v)
|
|
|
|
+ new_v := string([]rune(v)[0:length-1])
|
|
|
|
+ if k==0 {
|
|
|
|
+ topscope = new_v
|
|
|
|
+ }else {
|
|
|
|
+ if! strings.Contains(topscope,new_v) {
|
|
|
|
+ topscope = topscope+","+new_v
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ //if toptype=="招标" {
|
|
|
|
+ // num_1++
|
|
|
|
+ // data_1 := dealWithZhaoBiao(tmp,num_1,topscope)
|
|
|
|
+ // row_1:= sheet_1.AddRow()
|
|
|
|
+ // for _,v := range data_1{
|
|
|
|
+ // row_1.AddCell().Value = v
|
|
|
|
+ // }
|
|
|
|
+ //}
|
|
|
|
+ //
|
|
|
|
+ //
|
|
|
|
+ //if subtype == "中标" || subtype == "成交" || subtype == "合同" {
|
|
|
|
+ // num_2++
|
|
|
|
+ // data_2 := dealWithZhongBiao(tmp,num_2,topscope)
|
|
|
|
+ // row_2:= sheet_2.AddRow()
|
|
|
|
+ // for _,v := range data_2{
|
|
|
|
+ // row_2.AddCell().Value = v
|
|
|
|
+ // }
|
|
|
|
+ //}
|
|
|
|
+ //if xm_spicode[spidercode]!="" {
|
|
|
|
+ // num_3++
|
|
|
|
+ // data_3 := dealWithXiangMu(tmp,num_3,topscope)
|
|
|
|
+ // row_3:= sheet_3.AddRow()
|
|
|
|
+ // for _,v := range data_3{
|
|
|
|
+ // row_3.AddCell().Value = v
|
|
|
|
+ // }
|
|
|
|
+ //}
|
|
if kb_spicode[spidercode]!=""{
|
|
if kb_spicode[spidercode]!=""{
|
|
num_4++
|
|
num_4++
|
|
- data_4 := dealWithKaiBiao(tmp,num_4)
|
|
|
|
|
|
+ data_4 := dealWithKaiBiao(tmp,num_4,topscope)
|
|
row_4:= sheet_4.AddRow()
|
|
row_4:= sheet_4.AddRow()
|
|
for _,v := range data_4{
|
|
for _,v := range data_4{
|
|
row_4.AddCell().Value = v
|
|
row_4.AddCell().Value = v
|
|
@@ -118,19 +225,20 @@ func exportBidata() {
|
|
tmp = make(map[string]interface{})
|
|
tmp = make(map[string]interface{})
|
|
}
|
|
}
|
|
|
|
|
|
- log.Debug("is over bid ~",total,"~",num_1,num_2,num_3,num_4)
|
|
|
|
|
|
|
|
|
|
+ log.Debug("is over bidding ",total,num_1,num_2,num_3,num_4)
|
|
|
|
|
|
if total>0 {
|
|
if total>0 {
|
|
- f_1.Save("招标信息.xlsx")
|
|
|
|
- f_2.Save("中标信息.xlsx")
|
|
|
|
- f_3.Save("招标项目.xlsx")
|
|
|
|
- f_4.Save("开标公示.xlsx")
|
|
|
|
|
|
+ //f_1.Save(x_name_1+x_tag_1+".xlsx")
|
|
|
|
+ //f_2.Save(x_name_2+x_tag_2+".xlsx")
|
|
|
|
+ //f_3.Save(x_name_3+x_tag_3+".xlsx")
|
|
|
|
+ f_4.Save(x_name_4+x_tag_4+".xlsx")
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
//导出抽取数据-评标相关
|
|
//导出抽取数据-评标相关
|
|
func exportExtdata() {
|
|
func exportExtdata() {
|
|
|
|
+ log.Debug("导出~评标信息表...")
|
|
sess := ext_mgo.GetMgoConn()
|
|
sess := ext_mgo.GetMgoConn()
|
|
defer ext_mgo.DestoryMongoConn(sess)
|
|
defer ext_mgo.DestoryMongoConn(sess)
|
|
q,total := map[string]interface{}{
|
|
q,total := map[string]interface{}{
|
|
@@ -140,10 +248,22 @@ func exportExtdata() {
|
|
},
|
|
},
|
|
},0
|
|
},0
|
|
num_5:=0
|
|
num_5:=0
|
|
- it := sess.DB(ext_mgo.DbName).C(ext_coll).Find(&q).Sort("_id").Iter()
|
|
|
|
|
|
+ it := sess.DB(ext_mgo.DbName).C(ext_coll).Find(&q).Iter()
|
|
for tmp := make(map[string]interface{}); it.Next(&tmp);total++{
|
|
for tmp := make(map[string]interface{}); it.Next(&tmp);total++{
|
|
- if total%10000==0 {
|
|
|
|
- log.Debug("curent index ",total,num_5)
|
|
|
|
|
|
+ if total%1000==0 {
|
|
|
|
+ log.Debug("curent index ", total, num_5)
|
|
|
|
+ f_5.Save(x_name_5 + x_tag_5 + ".xlsx")
|
|
|
|
+
|
|
|
|
+ b_5, tag_5 := isToLongNewFile(num_5)
|
|
|
|
+ if b_5 && !strings.Contains(x_tag_5, tag_5) {
|
|
|
|
+ x_tag_5 = tag_5
|
|
|
|
+ f_5 = xlsx.NewFile()
|
|
|
|
+ sheet_5, _ = f_5.AddSheet("招标信息")
|
|
|
|
+ row_5 := sheet_5.AddRow()
|
|
|
|
+ for _, v := range bid_tagText[4] {
|
|
|
|
+ row_5.AddCell().Value = v
|
|
|
|
+ }
|
|
|
|
+ }
|
|
}
|
|
}
|
|
extracttype := qu.IntAll(tmp["extracttype"])
|
|
extracttype := qu.IntAll(tmp["extracttype"])
|
|
if extracttype==-1 {
|
|
if extracttype==-1 {
|
|
@@ -159,6 +279,29 @@ func exportExtdata() {
|
|
winnerorder = qu.ObjArrToMapArr(w_order)
|
|
winnerorder = qu.ObjArrToMapArr(w_order)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ topscopeclass := []string{}
|
|
|
|
+ if t_class, ok := tmp["topscopeclass"].(primitive.A); ok {
|
|
|
|
+ topscopeclass = qu.ObjArrToStringArr(t_class)
|
|
|
|
+ }else {
|
|
|
|
+ if t_class, ok := tmp["topscopeclass"].([]interface{}); ok {
|
|
|
|
+ topscopeclass = qu.ObjArrToStringArr(t_class)
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ topscope := ""
|
|
|
|
+ for k,v := range topscopeclass{
|
|
|
|
+ length := utf8.RuneCountInString(v)
|
|
|
|
+ new_v := string([]rune(v)[0:length-1])
|
|
|
|
+ if k==0 {
|
|
|
|
+ topscope = new_v
|
|
|
|
+ }else {
|
|
|
|
+ if! strings.Contains(topscope,new_v) {
|
|
|
|
+ topscope = topscope+","+new_v
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
if pb_spicode[spidercode]!=""||len(winnerorder)>0{
|
|
if pb_spicode[spidercode]!=""||len(winnerorder)>0{
|
|
num_5++
|
|
num_5++
|
|
winners:=""
|
|
winners:=""
|
|
@@ -177,7 +320,7 @@ func exportExtdata() {
|
|
if winners=="" {
|
|
if winners=="" {
|
|
winners = qu.ObjToString(tmp["s_winner"])
|
|
winners = qu.ObjToString(tmp["s_winner"])
|
|
}
|
|
}
|
|
- data_5 := dealWithPingBiao(tmp,num_5,winners)
|
|
|
|
|
|
+ data_5 := dealWithPingBiao(tmp,num_5,winners,topscope)
|
|
row_5:= sheet_5.AddRow()
|
|
row_5:= sheet_5.AddRow()
|
|
for _,v := range data_5{
|
|
for _,v := range data_5{
|
|
row_5.AddCell().Value = v
|
|
row_5.AddCell().Value = v
|
|
@@ -191,7 +334,7 @@ func exportExtdata() {
|
|
log.Debug("is over ext ~",total,num_5)
|
|
log.Debug("is over ext ~",total,num_5)
|
|
|
|
|
|
if total>0 {
|
|
if total>0 {
|
|
- f_5.Save("评标公示.xlsx")
|
|
|
|
|
|
+ f_5.Save(x_name_5 + x_tag_5 + ".xlsx")
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@@ -200,21 +343,20 @@ func exportExtdata() {
|
|
|
|
|
|
|
|
|
|
//招标信息
|
|
//招标信息
|
|
-func dealWithZhaoBiao(tmp map[string]interface{},index int)[]string {
|
|
|
|
|
|
+func dealWithZhaoBiao(tmp map[string]interface{},index int,topscope string)[]string {
|
|
dataArr := []string{}
|
|
dataArr := []string{}
|
|
- spidercode := qu.ObjToString(tmp["spidercode"])
|
|
|
|
dataArr = append(dataArr,fmt.Sprintf("%d",index))
|
|
dataArr = append(dataArr,fmt.Sprintf("%d",index))
|
|
dataArr = append(dataArr,qu.ObjToString(tmp["site"]))
|
|
dataArr = append(dataArr,qu.ObjToString(tmp["site"]))
|
|
dataArr = append(dataArr,qu.ObjToString(tmp["projectname"]))
|
|
dataArr = append(dataArr,qu.ObjToString(tmp["projectname"]))
|
|
dataArr = append(dataArr,qu.ObjToString(tmp["area"]))
|
|
dataArr = append(dataArr,qu.ObjToString(tmp["area"]))
|
|
dataArr = append(dataArr,qu.ObjToString(tmp["city"]))
|
|
dataArr = append(dataArr,qu.ObjToString(tmp["city"]))
|
|
dataArr = append(dataArr,qu.ObjToString(tmp["district"]))
|
|
dataArr = append(dataArr,qu.ObjToString(tmp["district"]))
|
|
- if jp_spicode[spidercode]!="" {
|
|
|
|
- dataArr = append(dataArr,"剑鱼发布")
|
|
|
|
- }else {
|
|
|
|
- dataArr = append(dataArr,"")
|
|
|
|
- }
|
|
|
|
- dataArr = append(dataArr,qu.ObjToString(tmp["buyerclass"]))
|
|
|
|
|
|
+ dataArr = append(dataArr,"")
|
|
|
|
+
|
|
|
|
+ dataArr = append(dataArr,topscope)
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
publishtime := qu.Int64All(tmp["publishtime"])
|
|
publishtime := qu.Int64All(tmp["publishtime"])
|
|
if publishtime>0 {
|
|
if publishtime>0 {
|
|
dataArr = append(dataArr,time.Unix(publishtime, 0).Format(timeLayout))
|
|
dataArr = append(dataArr,time.Unix(publishtime, 0).Format(timeLayout))
|
|
@@ -249,27 +391,22 @@ func dealWithZhaoBiao(tmp map[string]interface{},index int)[]string {
|
|
}
|
|
}
|
|
|
|
|
|
dataArr = append(dataArr,qu.ObjToString(tmp["href"]))
|
|
dataArr = append(dataArr,qu.ObjToString(tmp["href"]))
|
|
- dataArr = append(dataArr,qu.ObjToString(tmp["detail"]))
|
|
|
|
|
|
+ dataArr = append(dataArr,trimHtml(qu.ObjToString(tmp["detail"])))
|
|
|
|
|
|
return dataArr
|
|
return dataArr
|
|
}
|
|
}
|
|
|
|
|
|
//中标信息
|
|
//中标信息
|
|
-func dealWithZhongBiao(tmp map[string]interface{},index int)[]string {
|
|
|
|
|
|
+func dealWithZhongBiao(tmp map[string]interface{},index int,topscope string)[]string {
|
|
dataArr := []string{}
|
|
dataArr := []string{}
|
|
- spidercode := qu.ObjToString(tmp["spidercode"])
|
|
|
|
dataArr = append(dataArr,fmt.Sprintf("%d",index))
|
|
dataArr = append(dataArr,fmt.Sprintf("%d",index))
|
|
dataArr = append(dataArr,qu.ObjToString(tmp["site"]))
|
|
dataArr = append(dataArr,qu.ObjToString(tmp["site"]))
|
|
dataArr = append(dataArr,qu.ObjToString(tmp["projectname"]))
|
|
dataArr = append(dataArr,qu.ObjToString(tmp["projectname"]))
|
|
dataArr = append(dataArr,qu.ObjToString(tmp["area"]))
|
|
dataArr = append(dataArr,qu.ObjToString(tmp["area"]))
|
|
dataArr = append(dataArr,qu.ObjToString(tmp["city"]))
|
|
dataArr = append(dataArr,qu.ObjToString(tmp["city"]))
|
|
dataArr = append(dataArr,qu.ObjToString(tmp["district"]))
|
|
dataArr = append(dataArr,qu.ObjToString(tmp["district"]))
|
|
- if jp_spicode[spidercode]!="" {
|
|
|
|
- dataArr = append(dataArr,"剑鱼发布")
|
|
|
|
- }else {
|
|
|
|
- dataArr = append(dataArr,"")
|
|
|
|
- }
|
|
|
|
- dataArr = append(dataArr,qu.ObjToString(tmp["buyerclass"]))
|
|
|
|
|
|
+ dataArr = append(dataArr,"")
|
|
|
|
+ dataArr = append(dataArr,topscope)
|
|
|
|
|
|
publishtime := qu.Int64All(tmp["publishtime"])
|
|
publishtime := qu.Int64All(tmp["publishtime"])
|
|
if publishtime>0 {
|
|
if publishtime>0 {
|
|
@@ -300,28 +437,29 @@ func dealWithZhongBiao(tmp map[string]interface{},index int)[]string {
|
|
dataArr = append(dataArr,qu.ObjToString(tmp["buyerperson"]))
|
|
dataArr = append(dataArr,qu.ObjToString(tmp["buyerperson"]))
|
|
dataArr = append(dataArr,qu.ObjToString(tmp["buyertel"]))
|
|
dataArr = append(dataArr,qu.ObjToString(tmp["buyertel"]))
|
|
dataArr = append(dataArr,qu.ObjToString(tmp["href"]))
|
|
dataArr = append(dataArr,qu.ObjToString(tmp["href"]))
|
|
- dataArr = append(dataArr,qu.ObjToString(tmp["detail"]))
|
|
|
|
|
|
+ dataArr = append(dataArr,trimHtml(qu.ObjToString(tmp["detail"])))
|
|
|
|
|
|
return dataArr
|
|
return dataArr
|
|
}
|
|
}
|
|
|
|
|
|
//项目信息
|
|
//项目信息
|
|
-func dealWithXiangMu(tmp map[string]interface{},index int)[]string {
|
|
|
|
|
|
+func dealWithXiangMu(tmp map[string]interface{},index int,topscope string)[]string {
|
|
dataArr := []string{}
|
|
dataArr := []string{}
|
|
- spidercode := qu.ObjToString(tmp["spidercode"])
|
|
|
|
dataArr = append(dataArr,fmt.Sprintf("%d",index))
|
|
dataArr = append(dataArr,fmt.Sprintf("%d",index))
|
|
dataArr = append(dataArr,qu.ObjToString(tmp["site"]))
|
|
dataArr = append(dataArr,qu.ObjToString(tmp["site"]))
|
|
dataArr = append(dataArr,qu.ObjToString(tmp["projectname"]))
|
|
dataArr = append(dataArr,qu.ObjToString(tmp["projectname"]))
|
|
- dataArr = append(dataArr,qu.ObjToString(tmp["buyerclass"]))
|
|
|
|
|
|
+ dataArr = append(dataArr,topscope)
|
|
dataArr = append(dataArr,qu.ObjToString(tmp["area"]))
|
|
dataArr = append(dataArr,qu.ObjToString(tmp["area"]))
|
|
dataArr = append(dataArr,qu.ObjToString(tmp["city"]))
|
|
dataArr = append(dataArr,qu.ObjToString(tmp["city"]))
|
|
dataArr = append(dataArr,qu.ObjToString(tmp["district"]))
|
|
dataArr = append(dataArr,qu.ObjToString(tmp["district"]))
|
|
- if jp_spicode[spidercode]!="" {
|
|
|
|
- dataArr = append(dataArr,"剑鱼发布")
|
|
|
|
|
|
+ dataArr = append(dataArr,"")
|
|
|
|
+ publishtime := qu.Int64All(tmp["publishtime"])
|
|
|
|
+ if publishtime>0 { //招标项目建立时间
|
|
|
|
+ dataArr = append(dataArr,time.Unix(publishtime, 0).Format(timeLayout))
|
|
}else {
|
|
}else {
|
|
dataArr = append(dataArr,"")
|
|
dataArr = append(dataArr,"")
|
|
}
|
|
}
|
|
- dataArr = append(dataArr,"")//招标项目建立时间
|
|
|
|
|
|
+
|
|
agency := qu.ObjToString(tmp["agency"])
|
|
agency := qu.ObjToString(tmp["agency"])
|
|
if agency!="" {
|
|
if agency!="" {
|
|
qy_data := qy_mgo.FindOne(qy_coll, map[string]interface{}{
|
|
qy_data := qy_mgo.FindOne(qy_coll, map[string]interface{}{
|
|
@@ -329,7 +467,7 @@ func dealWithXiangMu(tmp map[string]interface{},index int)[]string {
|
|
})
|
|
})
|
|
dataArr = append(dataArr,qu.ObjToString(qy_data["credit_no"]))//招标代理机构代码
|
|
dataArr = append(dataArr,qu.ObjToString(qy_data["credit_no"]))//招标代理机构代码
|
|
}else {
|
|
}else {
|
|
- dataArr = append(dataArr)//招标代理机构代码
|
|
|
|
|
|
+ dataArr = append(dataArr,"")//招标代理机构代码
|
|
}
|
|
}
|
|
dataArr = append(dataArr,agency)
|
|
dataArr = append(dataArr,agency)
|
|
dataArr = append(dataArr,qu.ObjToString(tmp["buyer"]))
|
|
dataArr = append(dataArr,qu.ObjToString(tmp["buyer"]))
|
|
@@ -345,21 +483,21 @@ func dealWithXiangMu(tmp map[string]interface{},index int)[]string {
|
|
}
|
|
}
|
|
|
|
|
|
//开标信息
|
|
//开标信息
|
|
-func dealWithKaiBiao(tmp map[string]interface{},index int)[]string {
|
|
|
|
|
|
+func dealWithKaiBiao(tmp map[string]interface{},index int,topscope string)[]string {
|
|
dataArr := []string{}
|
|
dataArr := []string{}
|
|
- spidercode := qu.ObjToString(tmp["spidercode"])
|
|
|
|
dataArr = append(dataArr,fmt.Sprintf("%d",index))
|
|
dataArr = append(dataArr,fmt.Sprintf("%d",index))
|
|
dataArr = append(dataArr,qu.ObjToString(tmp["site"]))
|
|
dataArr = append(dataArr,qu.ObjToString(tmp["site"]))
|
|
- dataArr = append(dataArr,qu.ObjToString(tmp["projectname"]))
|
|
|
|
- dataArr = append(dataArr,qu.ObjToString(tmp["buyerclass"]))
|
|
|
|
|
|
+ projectname := qu.ObjToString(tmp["projectname"])
|
|
|
|
+ if projectname != "" {
|
|
|
|
+ dataArr = append(dataArr,qu.ObjToString(tmp["projectname"]))
|
|
|
|
+ }else {
|
|
|
|
+ dataArr = append(dataArr,qu.ObjToString(tmp["title"]))
|
|
|
|
+ }
|
|
|
|
+ dataArr = append(dataArr,topscope)
|
|
dataArr = append(dataArr,qu.ObjToString(tmp["area"]))
|
|
dataArr = append(dataArr,qu.ObjToString(tmp["area"]))
|
|
dataArr = append(dataArr,qu.ObjToString(tmp["city"]))
|
|
dataArr = append(dataArr,qu.ObjToString(tmp["city"]))
|
|
dataArr = append(dataArr,qu.ObjToString(tmp["district"]))
|
|
dataArr = append(dataArr,qu.ObjToString(tmp["district"]))
|
|
- if jp_spicode[spidercode]!="" {
|
|
|
|
- dataArr = append(dataArr,"剑鱼发布")
|
|
|
|
- }else {
|
|
|
|
- dataArr = append(dataArr,"")
|
|
|
|
- }
|
|
|
|
|
|
+ dataArr = append(dataArr,"")
|
|
bidopentime := qu.Int64All(tmp["bidopentime"])
|
|
bidopentime := qu.Int64All(tmp["bidopentime"])
|
|
if bidopentime>0 {
|
|
if bidopentime>0 {
|
|
dataArr = append(dataArr,time.Unix(bidopentime, 0).Format(timeLayout))
|
|
dataArr = append(dataArr,time.Unix(bidopentime, 0).Format(timeLayout))
|
|
@@ -370,21 +508,16 @@ func dealWithKaiBiao(tmp map[string]interface{},index int)[]string {
|
|
}
|
|
}
|
|
|
|
|
|
//评标信息
|
|
//评标信息
|
|
-func dealWithPingBiao(tmp map[string]interface{},index int,winners string)[]string {
|
|
|
|
|
|
+func dealWithPingBiao(tmp map[string]interface{},index int,winners string,topscope string)[]string {
|
|
dataArr := []string{}
|
|
dataArr := []string{}
|
|
- spidercode := qu.ObjToString(tmp["spidercode"])
|
|
|
|
dataArr = append(dataArr,fmt.Sprintf("%d",index))
|
|
dataArr = append(dataArr,fmt.Sprintf("%d",index))
|
|
dataArr = append(dataArr,qu.ObjToString(tmp["site"]))
|
|
dataArr = append(dataArr,qu.ObjToString(tmp["site"]))
|
|
dataArr = append(dataArr,qu.ObjToString(tmp["projectname"]))
|
|
dataArr = append(dataArr,qu.ObjToString(tmp["projectname"]))
|
|
- dataArr = append(dataArr,qu.ObjToString(tmp["buyerclass"]))
|
|
|
|
|
|
+ dataArr = append(dataArr,topscope)
|
|
dataArr = append(dataArr,qu.ObjToString(tmp["area"]))
|
|
dataArr = append(dataArr,qu.ObjToString(tmp["area"]))
|
|
dataArr = append(dataArr,qu.ObjToString(tmp["city"]))
|
|
dataArr = append(dataArr,qu.ObjToString(tmp["city"]))
|
|
dataArr = append(dataArr,qu.ObjToString(tmp["district"]))
|
|
dataArr = append(dataArr,qu.ObjToString(tmp["district"]))
|
|
- if jp_spicode[spidercode]!="" {
|
|
|
|
- dataArr = append(dataArr,"剑鱼发布")
|
|
|
|
- }else {
|
|
|
|
- dataArr = append(dataArr,"")
|
|
|
|
- }
|
|
|
|
|
|
+ dataArr = append(dataArr,"")
|
|
publishtime := qu.Int64All(tmp["publishtime"])
|
|
publishtime := qu.Int64All(tmp["publishtime"])
|
|
if publishtime>0 {
|
|
if publishtime>0 {
|
|
dataArr = append(dataArr,time.Unix(publishtime, 0).Format(timeLayout))
|
|
dataArr = append(dataArr,time.Unix(publishtime, 0).Format(timeLayout))
|
|
@@ -396,3 +529,23 @@ func dealWithPingBiao(tmp map[string]interface{},index int,winners string)[]stri
|
|
return dataArr
|
|
return dataArr
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+func trimHtml(src string) string {
|
|
|
|
+ //将HTML标签全转换成小写
|
|
|
|
+ re, _ := regexp.Compile("\\<[\\S\\s]+?\\>")
|
|
|
|
+ src = re.ReplaceAllStringFunc(src, strings.ToLower)
|
|
|
|
+ //去除STYLE
|
|
|
|
+ re, _ = regexp.Compile("\\<style[\\S\\s]+?\\</style\\>")
|
|
|
|
+ src = re.ReplaceAllString(src, "")
|
|
|
|
+ //去除SCRIPT
|
|
|
|
+ re, _ = regexp.Compile("\\<script[\\S\\s]+?\\</script\\>")
|
|
|
|
+ src = re.ReplaceAllString(src, "")
|
|
|
|
+ //去除所有尖括号内的HTML代码,并换成换行符
|
|
|
|
+ re, _ = regexp.Compile("\\<[\\S\\s]+?\\>")
|
|
|
|
+ src = re.ReplaceAllString(src, "\n")
|
|
|
|
+ //去除连续的换行符
|
|
|
|
+ re, _ = regexp.Compile("\\s{2,}")
|
|
|
|
+ src = re.ReplaceAllString(src, "\n")
|
|
|
|
+ return strings.TrimSpace(src)
|
|
|
|
+}
|