|
@@ -447,7 +447,7 @@ func MergeField(str1, str2 string) string {
|
|
|
}
|
|
|
|
|
|
//补充信息并保存
|
|
|
-func AssembelSave(tmp map[string]interface{}, IsSearchHosp, IsSearchEnps bool, historyId, appid string) bool {
|
|
|
+func AssembelSave(tmp map[string]interface{}, IsSearchHosp, IsSearchEnps bool, historyId, appid string, isDup int) {
|
|
|
if IsSearchHosp { //医院信息
|
|
|
SearchHospInfo(tmp)
|
|
|
}
|
|
@@ -465,12 +465,12 @@ func AssembelSave(tmp map[string]interface{}, IsSearchHosp, IsSearchEnps bool, h
|
|
|
tmp["bidopentime"] = qu.Int64All(bidopentime)
|
|
|
}
|
|
|
//
|
|
|
+ isOk := true
|
|
|
if ProjectAppidMap[appid] {
|
|
|
projectId := GetProjectId(id)
|
|
|
if projectId != "" {
|
|
|
projectIds := strings.Split(projectId, ",")
|
|
|
tmp["projectId"] = projectId
|
|
|
- isOk := true
|
|
|
for _, v := range projectIds {
|
|
|
if _, ok := projectIdMap.Load(v); ok {
|
|
|
isOk = false
|
|
@@ -480,12 +480,23 @@ func AssembelSave(tmp map[string]interface{}, IsSearchHosp, IsSearchEnps bool, h
|
|
|
}
|
|
|
if !isOk {
|
|
|
MgoSave.Save(SaveCollProject, tmp)
|
|
|
- return false
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- MgoSaveCache <- tmp
|
|
|
- return true
|
|
|
+ if isDup == 1 {
|
|
|
+ ok := checkBidId(appid, id)
|
|
|
+ if !ok {
|
|
|
+ isOk = false
|
|
|
+ tmp["chongfu"] = id
|
|
|
+ MgoSave.Save(SaveCollbid, tmp)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if isOk {
|
|
|
+ MgoSaveCache <- tmp
|
|
|
+ xlsxArr = append(xlsxArr, tmp)
|
|
|
+ xlsxCount++
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
//查询第三方医院等级信息和招标客户的社会征信代码
|
|
@@ -582,11 +593,13 @@ func SaveMgo() {
|
|
|
log.Println("Mgo Save...")
|
|
|
arru := make([]map[string]interface{}, 500)
|
|
|
indexu := 0
|
|
|
+ counts := 0
|
|
|
for {
|
|
|
select {
|
|
|
case v := <-MgoSaveCache:
|
|
|
arru[indexu] = v
|
|
|
indexu++
|
|
|
+ counts++
|
|
|
if indexu == 500 {
|
|
|
SP <- true
|
|
|
go func(arru []map[string]interface{}) {
|
|
@@ -791,79 +804,6 @@ func SkipData(tmp map[string]interface{}) bool {
|
|
|
return false
|
|
|
}
|
|
|
|
|
|
-//生成xlsx
|
|
|
-// func GetXlsxs(mMap []map[string]interface{}, fn, email string) {
|
|
|
-// //信息
|
|
|
-// var err error
|
|
|
-// //样式
|
|
|
-// fx := xlsx.NewFile()
|
|
|
-// style := xlsx.NewStyle()
|
|
|
-// border := *xlsx.NewBorder("thin", "thin", "thin", "thin")
|
|
|
-// style.Border = border
|
|
|
-// style.Font.Size = 14
|
|
|
-// style.Alignment.Vertical = "center"
|
|
|
-// style.ApplyBorder = true
|
|
|
-// //
|
|
|
-// styleHead := xlsx.NewStyle()
|
|
|
-// styleHead.Font.Bold = true
|
|
|
-// styleHead.Font.Size = 18
|
|
|
-// styleHead.Border = border
|
|
|
-// styleHead.ApplyBorder = true
|
|
|
-
|
|
|
-// sheet1, err := fx.AddSheet("Sheet")
|
|
|
-// if err != nil {
|
|
|
-// log.Println("Err", err.Error())
|
|
|
-// }
|
|
|
-// head := sheet1.AddRow()
|
|
|
-// fields := []string{"title", "href", "detail", "publishtime", "matchkey", "area", "city", "district", "buyer", "buyerperson", "buyertel", "s_winner", "legal_person", "company_phone", "bidamount", "rank", "purchasing", "company_address", "capital", "establish_date", "business_scope", "stock_name", "buyer_credit_no", "winner_credit_no", "id"}
|
|
|
-// // for r, _ := range FielsArr {
|
|
|
-// // fields = append(fields, r)
|
|
|
-// // }
|
|
|
-
|
|
|
-// for _, t := range fields {
|
|
|
-// if FielsArr[t] != nil {
|
|
|
-// cell := head.AddCell()
|
|
|
-// cell.SetValue(FielsArr[t])
|
|
|
-// cell.SetStyle(styleHead)
|
|
|
-// }
|
|
|
-// }
|
|
|
-
|
|
|
-// for _, v := range mMap {
|
|
|
-// row := sheet1.AddRow()
|
|
|
-// for _, t := range fields {
|
|
|
-// cell := row.AddCell()
|
|
|
-// cell.SetStyle(style)
|
|
|
-// if v[t] != nil {
|
|
|
-// cell.SetValue(v[t])
|
|
|
-// }
|
|
|
-// }
|
|
|
-// }
|
|
|
-
|
|
|
-// //生文件
|
|
|
-// t := strconv.FormatInt(time.Now().Unix(), 10)
|
|
|
-// dir := "./web/res/xlsx/" + t + "/"
|
|
|
-// if b, _ := PathExists(dir); !b {
|
|
|
-// err1 := os.MkdirAll(dir, os.ModePerm)
|
|
|
-// if err1 != nil {
|
|
|
-// log.Println("mkdir err", dir)
|
|
|
-// }
|
|
|
-// }
|
|
|
-// fname := t + ".xlsx"
|
|
|
-// err = fx.Save(dir + fname)
|
|
|
-// if err != nil {
|
|
|
-// log.Println("xls error", fname)
|
|
|
-// } else {
|
|
|
-// for i := 0; i < len(Gmails); i++ {
|
|
|
-// gmail := Gmails[i]
|
|
|
-// status := mail.GSendMail_q("剑鱼标讯", email, "", "", fn, "", dir+fname, fname, gmail)
|
|
|
-// if status {
|
|
|
-// log.Println("send mail success", fname, email)
|
|
|
-// break
|
|
|
-// }
|
|
|
-// }
|
|
|
-// }
|
|
|
-// }
|
|
|
-
|
|
|
func GetXlsxs(mMap []map[string]interface{}, fn, email, id string) {
|
|
|
if id != "" {
|
|
|
query := bson.M{
|
|
@@ -953,9 +893,9 @@ func GetXlsxs(mMap []map[string]interface{}, fn, email, id string) {
|
|
|
xf.Sheets = xf.Sheets[1:2]
|
|
|
} else {
|
|
|
sh := xf.Sheets[2]
|
|
|
- for i, v := range mMap {
|
|
|
+ for _, v := range mMap {
|
|
|
row := sh.AddRow()
|
|
|
- row.AddCell().SetInt(i + 1)
|
|
|
+ // row.AddCell().SetInt(i + 1)
|
|
|
row.AddCell().SetValue(v["matchkey"])
|
|
|
row.AddCell().SetValue(v["area"])
|
|
|
row.AddCell().SetValue(v["city"])
|
|
@@ -969,26 +909,27 @@ func GetXlsxs(mMap []map[string]interface{}, fn, email, id string) {
|
|
|
}
|
|
|
row.AddCell().SetValue(v["href"])
|
|
|
if v["bidamount"] != nil {
|
|
|
- row.AddCell().SetFloat(qu.Float64All(v["bidamount"]) / 10000)
|
|
|
+ row.AddCell().SetFloat(qu.Float64All(v["bidamount"]))
|
|
|
} else {
|
|
|
row.AddCell()
|
|
|
}
|
|
|
+ row.AddCell().SetValue(v["purchasing"])
|
|
|
row.AddCell().SetValue(v["buyer"])
|
|
|
row.AddCell().SetValue(v["buyerperson"])
|
|
|
row.AddCell().SetValue(v["buyertel"])
|
|
|
+ row.AddCell().SetValue(v["buyer_credit_no"])
|
|
|
+ row.AddCell().SetValue(v["rank"])
|
|
|
row.AddCell().SetValue(v["s_winner"])
|
|
|
row.AddCell().SetValue(v["legal_person"])
|
|
|
row.AddCell().SetValue(v["company_phone"])
|
|
|
+ row.AddCell().SetValue(v["winner_credit_no"])
|
|
|
row.AddCell().SetValue(v["company_address"])
|
|
|
- row.AddCell().SetValue(v["rank"])
|
|
|
- row.AddCell().SetValue(v["purchasing"])
|
|
|
row.AddCell().SetValue(v["capital"])
|
|
|
row.AddCell().SetValue(v["establish_date"])
|
|
|
row.AddCell().SetValue(v["business_scope"])
|
|
|
row.AddCell().SetValue(v["stock_name"])
|
|
|
- row.AddCell().SetValue(v["buyer_credit_no"])
|
|
|
- row.AddCell().SetValue(v["winner_credit_no"])
|
|
|
- row.AddCell().SetValue(v["id"])
|
|
|
+ ids := SE.EncodeString(qu.ObjToString(v["id"]))
|
|
|
+ row.AddCell().SetValue(ids)
|
|
|
}
|
|
|
xf.Sheets = xf.Sheets[2:3]
|
|
|
}
|
|
@@ -1039,7 +980,6 @@ func GetProjectId(id string) string {
|
|
|
if data != nil && *data != nil && len(*data) > 0 {
|
|
|
for _, v := range *data {
|
|
|
projectIdArr = append(projectIdArr, qu.ObjToString(v["_id"]))
|
|
|
-
|
|
|
}
|
|
|
projectId = strings.Join(projectIdArr, ",")
|
|
|
log.Println("projectId", projectId)
|
|
@@ -1071,3 +1011,18 @@ func InitProjectId(appid string) {
|
|
|
thisData = map[string]interface{}{}
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+func checkBidId(appid, id string) bool {
|
|
|
+ isOk := true
|
|
|
+ userMailData, ok := Mgo.FindOne(SaveUserMail, bson.M{"appid": appid, "id": id})
|
|
|
+ if ok && userMailData != nil && *userMailData != nil {
|
|
|
+ log.Println("用户 ", appid, " 在 ", SaveUserMail, " 中找到重复公告id ", id)
|
|
|
+ isOk = false
|
|
|
+ }
|
|
|
+ userHistoryData, oks := Mgo.FindOne(SaveColl, bson.M{"appid": appid, "id": id})
|
|
|
+ if oks && userHistoryData != nil && *userHistoryData != nil {
|
|
|
+ log.Println("用户 ", appid, " 在 ", SaveColl, " 中找到重复公告id ", id)
|
|
|
+ isOk = false
|
|
|
+ }
|
|
|
+ return isOk
|
|
|
+}
|