You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

40 lines
1.0 KiB
Go

package crontask
import (
"autogo/cli"
"autogo/dbsql"
"autogo/models"
"fmt"
)
func CheckIOSDevices() {
m := cli.GetIOSDevices()
db, err := dbsql.GetConn(dbsql.DSN)
if err != nil {
fmt.Println("[Crontab] 数据库连接失败")
return
}
defer dbsql.Close(db)
var list []models.Device
db.Model(models.Device{}).Where("platform = ? AND is_del = 0", "ios").Find(&list)
for _, v := range list {
if vv, ok := m[v.Udid]; ok {
if vv.Status != "online" && v.Status != vv.Status {
db.Model(models.Device{}).Where("udid = ?", v.Udid).Update("status", vv.Status)
fmt.Println("[Crontab]", v.Udid, "连接状态异常:", v.Status)
} else if v.Status == "offline" && vv.Status == "online" {
db.Model(models.Device{}).Where("udid = ?", v.Udid).Update("status", "online")
fmt.Println("[Crontab]", v.Udid, "已连接")
}
} else {
if v.Status == "online" || v.Status == "busy" {
db.Model(models.Device{}).Where("udid = ?", v.Udid).Update("status", "offline")
fmt.Println("[Crontab]", v.Udid, "已离线")
}
}
}
}