diff --git a/get_weather.go b/get_weather.go index 55295d2..80260a8 100644 --- a/get_weather.go +++ b/get_weather.go @@ -77,6 +77,7 @@ var iconurl = conf.ICONURL // 获取天气 func get_weather() { + result, _ := http.Get("https://api.caiyunapp.com/v2/TAkhjf8d1nlSlspN/113.960256,22.541454/realtime.json") body, _ := ioutil.ReadAll(result.Body) log.Println(string(body)) @@ -103,54 +104,55 @@ func get_weather() { case "HAZE": icon = iconurl + "HAZE.png" } - insert_db(data, icon) + log.Println("icon:", icon) + // insert_db(data, icon) } -func insert_db(data Weather, icon string) { - stmt, _ := db.Prepare(`INSERT INTO weather ( - skycon, - icon_url, - o3, - co, - so2, - no2, - temperature, - humidity, - pm25, - pm10, - cloudrate, - aqi, - dswrf, - visibility, - ultraviolet_desc, - pres, - precipitation_nearest_distance, - precipitation_nearest_intensity, - precipitation_local_intensity, - comfort_desc, - wind_direction, - wind_speed) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)`) - stmt.Exec( - data.RESULT.SKYCON, - icon, - data.RESULT.O3, - data.RESULT.CO, - data.RESULT.SO2, - data.RESULT.NO2, - data.RESULT.TEMPERATURE, - data.RESULT.HUMIDITY, - data.RESULT.PM25, - data.RESULT.PM10, - data.RESULT.CLOUDRATE, - data.RESULT.AQI, - data.RESULT.DSWRF, - data.RESULT.VISIBILITY, - data.RESULT.ULTRAVIOLET.DESC, - data.RESULT.PRES, - data.RESULT.PERCIPITATION.NEAREST.DISTANCE, - data.RESULT.PERCIPITATION.NEAREST.INTENSITY, - data.RESULT.PERCIPITATION.LOCAL.INTENSITY, - data.RESULT.COMFORT.DESC, - data.RESULT.WIND.DIRECTION, - data.RESULT.WIND.SPEED) -} +// func insert_db(data Weather, icon string) { +// stmt, _ := db.Prepare(`INSERT INTO weather ( +// skycon, +// icon_url, +// o3, +// co, +// so2, +// no2, +// temperature, +// humidity, +// pm25, +// pm10, +// cloudrate, +// aqi, +// dswrf, +// visibility, +// ultraviolet_desc, +// pres, +// precipitation_nearest_distance, +// precipitation_nearest_intensity, +// precipitation_local_intensity, +// comfort_desc, +// wind_direction, +// wind_speed) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)`) +// stmt.Exec( +// data.RESULT.SKYCON, +// icon, +// data.RESULT.O3, +// data.RESULT.CO, +// data.RESULT.SO2, +// data.RESULT.NO2, +// data.RESULT.TEMPERATURE, +// data.RESULT.HUMIDITY, +// data.RESULT.PM25, +// data.RESULT.PM10, +// data.RESULT.CLOUDRATE, +// data.RESULT.AQI, +// data.RESULT.DSWRF, +// data.RESULT.VISIBILITY, +// data.RESULT.ULTRAVIOLET.DESC, +// data.RESULT.PRES, +// data.RESULT.PERCIPITATION.NEAREST.DISTANCE, +// data.RESULT.PERCIPITATION.NEAREST.INTENSITY, +// data.RESULT.PERCIPITATION.LOCAL.INTENSITY, +// data.RESULT.COMFORT.DESC, +// data.RESULT.WIND.DIRECTION, +// data.RESULT.WIND.SPEED) +// } diff --git a/loadconfig.go b/loadconfig.go index 44564ec..49c04a4 100644 --- a/loadconfig.go +++ b/loadconfig.go @@ -6,7 +6,7 @@ import ( "log" "os" - _ "github.com/mattn/go-sqlite3" + // _ "github.com/mattn/go-sqlite3" // "strconv" "math/rand" @@ -207,7 +207,7 @@ func init() { DEVICEDATAS.Unlock() - go dbdata_init() + // go dbdata_init() } @@ -216,47 +216,45 @@ var traffic_data Traffic var satisfaction_data Satisfaction // 初始化评价数据和人流量数据 -func dbdata_init() { - rows, err := db.Query("SELECT good, bad FROM satisfaction order by id DESC limit 1") - if err != nil { - good = 1 - bad = 0 +// func dbdata_init() { +// rows, err := db.Query("SELECT good, bad FROM satisfaction order by id DESC limit 1") +// if err != nil { +// good = 1 +// bad = 0 - } else { - rows.Next() - rows.Scan(&good, &bad) - rows.Close() - } - //在原本没有db文件的情况下调用 会报错 - // rows.Close() - rows, err = db.Query("SELECT traffic FROM traffic t where datetime(t.create_time) > datetime('now','start of day','-1 day') order by id DESC limit 1 ") - if err != nil { - traffic_data.TRAFFIC = 0 - } else { - rows.Next() - rows.Scan(&traffic_data.TRAFFIC) - rows.Close() - } - //在原本没有db文件的情况下调用 会报错 - // rows.Close() -} +// } else { +// rows.Next() +// rows.Scan(&good, &bad) +// rows.Close() +// } +// //在原本没有db文件的情况下调用 会报错 +// // rows.Close() +// rows, err = db.Query("SELECT traffic FROM traffic t where datetime(t.create_time) > datetime('now','start of day','-1 day') order by id DESC limit 1 ") +// if err != nil { +// traffic_data.TRAFFIC = 0 +// } else { +// rows.Next() +// rows.Scan(&traffic_data.TRAFFIC) +// rows.Close() +// } +// } // 定时更新评价数据和人流数据 -func savedata_cron() { - T := time.Now().Format("2006-01-02") - stmt, err := db.Prepare("UPDATE satisfaction set good=?, bad=? ,create_time=? where id=(SELECT max(id) FROM satisfaction)") - check(err) - stmt.Exec(&good, &bad, &T) - stmt, err = db.Prepare("UPDATE traffic set traffic=?, create_time=? where id=(SELECT max(id) FROM traffic)") - check(err) - stmt.Exec(&traffic_data.TRAFFIC, &T) -} +// func savedata_cron() { +// T := time.Now().Format("2006-01-02") +// stmt, err := db.Prepare("UPDATE satisfaction set good=?, bad=? ,create_time=? where id=(SELECT max(id) FROM satisfaction)") +// check(err) +// stmt.Exec(&good, &bad, &T) +// stmt, err = db.Prepare("UPDATE traffic set traffic=?, create_time=? where id=(SELECT max(id) FROM traffic)") +// check(err) +// stmt.Exec(&traffic_data.TRAFFIC, &T) +// } // 每天0点插入一条数据 //TODO 刚好有人流量数据 -func insertdata() { - T := time.Now().Format("2006-01-02") - stmt, _ := db.Prepare(`INSERT INTO traffic (traffic, create_time) values (?, ?)`) - stmt.Exec(&traffic_data.TRAFFIC, &T) - traffic_data.TRAFFIC = 0 -} +// func insertdata() { +// T := time.Now().Format("2006-01-02") +// stmt, _ := db.Prepare(`INSERT INTO traffic (traffic, create_time) values (?, ?)`) +// stmt.Exec(&traffic_data.TRAFFIC, &T) +// traffic_data.TRAFFIC = 0 +// } diff --git a/main.go b/main.go index 487f2a4..e99dbb0 100644 --- a/main.go +++ b/main.go @@ -98,6 +98,8 @@ func main() { } }) + go ClearLog() + c.AddFunc("0, *, *, *, *, *", func() { ClearLog() }) @@ -114,8 +116,8 @@ func main() { } }) - c.AddFunc("0, */10, *, *, *, *", savedata_cron) - c.AddFunc("0, 0, 0, *, *, *", insertdata) + // c.AddFunc("0, */10, *, *, *, *", savedata_cron) + // c.AddFunc("0, 0, 0, *, *, *", insertdata) c.AddFunc("0, 0, *, *, *, *", get_weather) //定时更新today字段,当前日期 c.AddFunc("0, *, *, *, *, *", func() { @@ -161,7 +163,7 @@ func check(err error) { } func GetAllFile(pathname string) error { - // log.Println("begin for folder ", pathname) + log.Println("begin for folder ", pathname) rd, err := ioutil.ReadDir(pathname) sep := string(os.PathSeparator) @@ -193,7 +195,7 @@ func GetAllFile(pathname string) error { } } - GetAllFile(pathname + fi.Name() + sep) + GetAllFile(pathname + sep + fi.Name() + sep) } else { //RECORD_LOG_RETENTION_TIME conf // var duration = nowtime.Sub(loraNode.(LoraNode).TIME).Seconds() @@ -215,6 +217,7 @@ func GetAllFile(pathname string) error { } func ClearLog() { + folder := conf.RECORD_LOG_PATH log.Println("logfile task begin ", folder) if folder != "" && conf.RECORD_LOG_RETENTION_TIME > 0 { diff --git a/router.go b/router.go index b9b05f9..bb90dc0 100644 --- a/router.go +++ b/router.go @@ -24,7 +24,7 @@ func gw_router() { router.Use(cors.Default()) v1 := router.Group("/api/v1") { - v1.GET("/weather", gw_weather_api) + // v1.GET("/weather", gw_weather_api) v1.POST("/renliu", get_renliu_api) v1.POST("/feedback", get_pj_api) v1.GET("/totalWater", sb_api) @@ -929,48 +929,48 @@ type WEATHER struct { } // 获取天气情况api -func gw_weather_api(c *gin.Context) { - DEVICEDATAS.RLock() - rows, _ := db.Query("SELECT skycon, icon_url, o3, co, so2, no2, temperature, humidity, pm25, pm10, cloudrate, aqi, dswrf, visibility, ultraviolet_desc, pres, comfort_desc, wind_direction, wind_speed FROM weather order by id DESC limit 1") - var data WEATHER - rows.Next() - rows.Scan( - &data.SKYCON, - &data.ICON_URL, - &data.O3, - &data.CO, - &data.SO2, - &data.NO2, - &data.TEMPERATURE, - &data.HUMIDITY, - &data.PM25, - &data.PM10, - &data.CLOUDRATE, - &data.AQI, - &data.DSWRF, - &data.VISIBILITY, - &data.ULTRAVIOLET_DESC, - &data.PRES, - &data.COMFORT_DESC, - &data.WIND_DIRECTION, - &data.WIND_SPEED) - rows.Close() - var sum float32 - var toinitdata float32 = 0.0 - var data_buf = make(map[string]interface{}) - for _, i := range conf.DEVICES_LIST { - if i[2] == "yunhorn_kq_c_v1" { - sum++ - for k, j := range DEVICEDATAS.DATA[i[2]+"_"+i[3]].DATA { - if j != nil { - data_buf[k] = toinitdata - data_buf[k] = (data_buf[k].(float32) + j.(float32)) / sum - } - } - } - } - data.TEMPERATURE_INDOOR = data_buf["温度"] - data.HUMIDITY_INDOOR = data_buf["湿度"] - DEVICEDATAS.RUnlock() - c.JSON(http.StatusOK, gin.H{"status": http.StatusOK, "data": data}) -} +// func gw_weather_api(c *gin.Context) { +// DEVICEDATAS.RLock() +// rows, _ := db.Query("SELECT skycon, icon_url, o3, co, so2, no2, temperature, humidity, pm25, pm10, cloudrate, aqi, dswrf, visibility, ultraviolet_desc, pres, comfort_desc, wind_direction, wind_speed FROM weather order by id DESC limit 1") +// var data WEATHER +// rows.Next() +// rows.Scan( +// &data.SKYCON, +// &data.ICON_URL, +// &data.O3, +// &data.CO, +// &data.SO2, +// &data.NO2, +// &data.TEMPERATURE, +// &data.HUMIDITY, +// &data.PM25, +// &data.PM10, +// &data.CLOUDRATE, +// &data.AQI, +// &data.DSWRF, +// &data.VISIBILITY, +// &data.ULTRAVIOLET_DESC, +// &data.PRES, +// &data.COMFORT_DESC, +// &data.WIND_DIRECTION, +// &data.WIND_SPEED) +// rows.Close() +// var sum float32 +// var toinitdata float32 = 0.0 +// var data_buf = make(map[string]interface{}) +// for _, i := range conf.DEVICES_LIST { +// if i[2] == "yunhorn_kq_c_v1" { +// sum++ +// for k, j := range DEVICEDATAS.DATA[i[2]+"_"+i[3]].DATA { +// if j != nil { +// data_buf[k] = toinitdata +// data_buf[k] = (data_buf[k].(float32) + j.(float32)) / sum +// } +// } +// } +// } +// data.TEMPERATURE_INDOOR = data_buf["温度"] +// data.HUMIDITY_INDOOR = data_buf["湿度"] +// DEVICEDATAS.RUnlock() +// c.JSON(http.StatusOK, gin.H{"status": http.StatusOK, "data": data}) +// }