1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- package main
- import (
- "fmt"
- "github.com/tealeg/xlsx"
- "mongodb"
- "qfw/util"
- "sort"
- )
- var (
- Sysconfig map[string]interface{}
- Mgo *mongodb.MongodbSim
- Dbname, DbColl string
- Fields map[string]interface{}
- FieldsArr []string
- JYHref = "https://www.jianyu360.cn/article/content/"
- )
- func init() {
- util.ReadConfig(&Sysconfig)
- Mgo = &mongodb.MongodbSim{
- MongodbAddr: Sysconfig["mongodb"].(string),
- Size: util.IntAllDef(Sysconfig["dbsize"], 5),
- DbName: Sysconfig["dbname"].(string),
- }
- Mgo.InitPool()
- Dbname = Sysconfig["dbname"].(string)
- DbColl = Sysconfig["dbcoll"].(string)
- Fields = Sysconfig["fields"].(map[string]interface{})
- for k := range Fields {
- FieldsArr = append(FieldsArr, k)
- }
- sort.Strings(FieldsArr)
- }
- func main() {
- sess := Mgo.GetMgoConn()
- defer Mgo.DestoryMongoConn(sess)
- file := xlsx.NewFile()
- sheet, err := file.AddSheet("sheet1")
- if err != nil {
- panic(err)
- }
- row := sheet.AddRow()
- for _, v := range FieldsArr {
- row.AddCell().SetValue(Fields[v])
- }
- //q := map[string]interface{}{"_id": mongodb.StringTOBsonId("594fef0e61a0721f156e9bc3")}
- query := sess.DB(Dbname).C(DbColl).Find(nil).Select(nil).Iter()
- count := 0
- for tmp := make(map[string]interface{}); query.Next(&tmp); count++ {
- if count%500 == 0 {
- util.Debug("current ---", count)
- }
- row := sheet.AddRow()
- for _, v := range FieldsArr {
- if v == "jyhref1" {
- if util.ObjToString(tmp["bidstatus"]) == "中标" || util.ObjToString(tmp["bidstatus"]) == "成交" ||
- util.ObjToString(tmp["bidstatus"]) == "合同" {
- list := util.ObjArrToStringArr(tmp["ids"].([]interface{}))
- id := list[len(list)-1]
- row.AddCell().SetValue(fmt.Sprintf(JYHref+"%s.html", util.CommonEncodeArticle("content", id)))
- } else {
- row.AddCell().SetValue("")
- }
- } else if v == "jyhref2" {
- if util.ObjToString(tmp["bidtype"]) == "招标" || util.ObjToString(tmp["bidtype"]) == "单一" {
- list := util.ObjArrToStringArr(tmp["ids"].([]interface{}))
- id := list[0]
- row.AddCell().SetValue(fmt.Sprintf(JYHref+"%s.html", util.CommonEncodeArticle("content", id)))
- } else {
- row.AddCell().SetValue("")
- }
- } else {
- row.AddCell().SetValue(tmp[v])
- }
- }
- }
- util.Debug("over ---", count)
- fname := fmt.Sprintf("./项目导出%s.xlsx", util.NowFormat(util.DATEFORMAT))
- err = file.Save(fname)
- if err != nil {
- panic(err)
- }
- }
|