|
@@ -13,11 +13,12 @@ import (
|
|
|
|
|
|
var (
|
|
|
sysconfig map[string]interface{} //配置文件
|
|
|
- save_mgo,qy_mgo,jp_mgo,st_mgo *MongodbSim //mongodb操作对象
|
|
|
+ save_mgo,qy_mgo,jp_mgo,st_mgo *MongodbSim //mongodb操作对象
|
|
|
qy_c_name,jp_c_name,st_c_name string
|
|
|
es_index_st,es_type_st string
|
|
|
save_other_name,save_site_name string
|
|
|
xlsx_name string
|
|
|
+ infoSiteArr []string
|
|
|
)
|
|
|
|
|
|
func initMgo() {
|
|
@@ -69,30 +70,21 @@ func initMgo() {
|
|
|
xlsx_name = qu.ObjToString(sysconfig["xlsx_name"])
|
|
|
}
|
|
|
|
|
|
-
|
|
|
func init() {
|
|
|
//加载配置文件
|
|
|
qu.ReadConfig(&sysconfig)
|
|
|
initMgo()
|
|
|
}
|
|
|
|
|
|
-func mainT() {
|
|
|
-
|
|
|
+func main() {
|
|
|
go taskTime()
|
|
|
- time.Sleep(99999 * time.Hour)
|
|
|
|
|
|
-}
|
|
|
-
|
|
|
-//测试使用
|
|
|
-func main() {
|
|
|
+ time.Sleep(99999 * time.Hour)
|
|
|
|
|
|
- dealWithOtherData()
|
|
|
}
|
|
|
|
|
|
func taskTime() {
|
|
|
|
|
|
-
|
|
|
-
|
|
|
log.Println("部署定时任务")
|
|
|
c := cron.New()
|
|
|
|
|
@@ -111,48 +103,57 @@ func dealWithOtherData() {
|
|
|
|
|
|
log.Println("开始统计相关数据...")
|
|
|
|
|
|
- start := int(time.Now().Unix())
|
|
|
- data :=dealWithJPData()//站点数据
|
|
|
- qy_date,qy_total := dealWithQYData()//企业数据
|
|
|
+ //先获取-待统计-动态站点
|
|
|
+ tmp ,tmp_err := save_mgo.Find("z_site_spider", map[string]interface{}{},nil,nil)
|
|
|
+ if tmp_err==nil && tmp!=nil && len(tmp)>0 {
|
|
|
+ for _,v :=range tmp {
|
|
|
+ infoSiteArr = append(infoSiteArr,qu.ObjToString(v["site"]))
|
|
|
+ }
|
|
|
+ log.Println("目标站点:",len(infoSiteArr))
|
|
|
+ }
|
|
|
|
|
|
+ start := int(time.Now().Unix())
|
|
|
+ st_data :=dealWithJPData()//站点数据
|
|
|
+ qy_date,qy_num := dealWithQYData()//企业数据
|
|
|
comeintime :=qu.Int64All(time.Now().Unix())
|
|
|
save_mgo.Save(save_other_name, map[string]interface{}{
|
|
|
"name":"企业",
|
|
|
- "num":qu.IntAll(qy_total),
|
|
|
+ "num":qu.IntAll(qy_num),
|
|
|
"comeintime":comeintime,
|
|
|
"date":qy_date,
|
|
|
})
|
|
|
|
|
|
save_mgo.Save(save_other_name, map[string]interface{}{
|
|
|
"name":"站点",
|
|
|
- "num":qu.IntAll(data["total"]),
|
|
|
+ "num":qu.IntAll(st_data["num"]),
|
|
|
"comeintime":comeintime,
|
|
|
- "date":qu.ObjToString(data["date"]),
|
|
|
- "data":data["data"],
|
|
|
+ "date":qu.ObjToString(st_data["date"]),
|
|
|
+ "data":st_data["data"],
|
|
|
})
|
|
|
|
|
|
|
|
|
+
|
|
|
//获取前两天数据
|
|
|
- qy_arr ,st_arr:= make([]map[string]string,0),make([]map[string]interface{},0)
|
|
|
+ qy_arr := make([]map[string]string,0)
|
|
|
now:=time.Now() //当前天
|
|
|
- curtime:= time.Date(now.Year(), now.Month(), now.Day()-2, 0, 0, 0, 0, time.Local).Unix()
|
|
|
- before_date :=qu.FormatDateByInt64(&curtime, qu.DATEFORMAT)
|
|
|
+ cur_time:= time.Date(now.Year(), now.Month(), now.Day(), 0, 0, 0, 0, time.Local).Unix()
|
|
|
+ before_time := cur_time-86400*2
|
|
|
+ before_date :=qu.FormatDateByInt64(&before_time, qu.DATEFORMAT)
|
|
|
//企业数据
|
|
|
before_qy_data :=save_mgo.FindOne(save_other_name, map[string]interface{}{
|
|
|
"name":"企业",
|
|
|
"date":before_date,
|
|
|
})
|
|
|
+ qy_arr = append(qy_arr, map[string]string{
|
|
|
+ "date":qy_date,
|
|
|
+ "num":qy_num,
|
|
|
+ })
|
|
|
if before_qy_data!=nil && len(before_qy_data)>2 {
|
|
|
qy_arr = append(qy_arr, map[string]string{
|
|
|
"date":qu.ObjToString(before_qy_data["date"]),
|
|
|
"num":fmt.Sprintf("%d",before_qy_data["num"]),
|
|
|
})
|
|
|
}
|
|
|
- qy_arr = append(qy_arr, map[string]string{
|
|
|
- "date":qy_date,
|
|
|
- "num":qy_total,
|
|
|
- })
|
|
|
-
|
|
|
|
|
|
|
|
|
//站点数据
|
|
@@ -160,63 +161,53 @@ func dealWithOtherData() {
|
|
|
"name":"站点",
|
|
|
"date":before_date,
|
|
|
})
|
|
|
- if before_st_data!=nil && len(before_st_data)>2 {
|
|
|
- st_arr = append(st_arr, map[string]interface{}{
|
|
|
- "date":qu.ObjToString(before_st_data["date"]),
|
|
|
- "total":fmt.Sprintf("%d",before_st_data["num"]),
|
|
|
- "data":before_st_data["data"],
|
|
|
- })
|
|
|
- }
|
|
|
|
|
|
- st_arr = append(st_arr, map[string]interface{}{
|
|
|
- "date":qu.ObjToString(data["date"]),
|
|
|
- "total":fmt.Sprintf("%d",data["total"]),
|
|
|
- "data":data["data"],
|
|
|
- })
|
|
|
|
|
|
- //写excle
|
|
|
- os.Remove("统计.xlsx")
|
|
|
+ os.Remove("统计.xlsx") //写excle
|
|
|
f :=xlsx.NewFile()
|
|
|
sheet, _ := f.AddSheet("统计")
|
|
|
|
|
|
- //第一行先写标题
|
|
|
+ //企业数据
|
|
|
row := sheet.AddRow()
|
|
|
row.AddCell().Value = "企业分类/日期"
|
|
|
- row.AddCell().Value = "总数量"
|
|
|
+ row.AddCell().Value = "数量"
|
|
|
for _,tmp := range qy_arr {
|
|
|
row = sheet.AddRow()
|
|
|
row.AddCell().SetString(tmp["date"])
|
|
|
row.AddCell().SetString(tmp["num"])
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+ //站点相关数据
|
|
|
sheet.AddRow()
|
|
|
row = sheet.AddRow()
|
|
|
row.AddCell().Value = "站点分类/日期"
|
|
|
- row.AddCell().Value = "总数量"
|
|
|
- row.AddCell().Value = "站点名称"
|
|
|
- row.AddCell().Value = "站点数量"
|
|
|
- for _, v:= range st_arr {
|
|
|
- tmp := *qu.ObjToMap(v)
|
|
|
+ row.AddCell().SetString(qu.ObjToString(st_data["date"]))
|
|
|
+ row.AddCell().SetString(qu.ObjToString(before_st_data["date"]))
|
|
|
+
|
|
|
+
|
|
|
+ data_1 := *qu.ObjToMap(st_data["data"])
|
|
|
+ data_2 := *qu.ObjToMap(before_st_data["data"])
|
|
|
+
|
|
|
+ for _,key := range infoSiteArr {
|
|
|
row = sheet.AddRow()
|
|
|
- row.AddCell().SetString(qu.ObjToString(tmp["date"]))
|
|
|
- row.AddCell().SetString(qu.ObjToString(tmp["total"]))
|
|
|
-
|
|
|
- data := *qu.ObjToMap(tmp["data"])
|
|
|
- if data!=nil {
|
|
|
- for k,v := range data {
|
|
|
- row.AddCell().SetString(k)
|
|
|
- row.AddCell().SetString(fmt.Sprintf("%d",v))
|
|
|
- row = sheet.AddRow()
|
|
|
- row.AddCell().Value = ""
|
|
|
- row.AddCell().Value = ""
|
|
|
- }
|
|
|
- }
|
|
|
+ row.AddCell().SetString(key)
|
|
|
+ row.AddCell().SetString(fmt.Sprintf("%d",qu.Int64All(data_1[key])))
|
|
|
+ row.AddCell().SetString(fmt.Sprintf("%d",qu.Int64All(data_2[key])))
|
|
|
}
|
|
|
+ row = sheet.AddRow()
|
|
|
+ row.AddCell().Value = "总计"
|
|
|
+ row.AddCell().SetString(fmt.Sprintf("%d",qu.Int64All(st_data["num"])))
|
|
|
+ row.AddCell().SetString(fmt.Sprintf("%d",qu.Int64All(before_st_data["num"])))
|
|
|
|
|
|
err := f.Save(xlsx_name)
|
|
|
if err != nil {
|
|
|
log.Println("保存xlsx失败:", err)
|
|
|
+ }else {
|
|
|
+ log.Println("保存xlsx成功:", err)
|
|
|
}
|
|
|
|
|
|
+
|
|
|
sendErrMailSmtp("统计-站点-企业","详情请查阅附件")
|
|
|
|
|
|
log.Println("定时处理完毕...",int(time.Now().Unix())-start,"秒")
|