去除sqllite3依赖
This commit is contained in:
parent
68ad6e1fee
commit
4c9068c191
100
get_weather.go
100
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)
|
||||
// }
|
||||
|
|
|
@ -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
|
||||
// }
|
||||
|
|
11
main.go
11
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 {
|
||||
|
|
92
router.go
92
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})
|
||||
// }
|
||||
|
|
Loading…
Reference in New Issue