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