diff --git a/weather/conf/app.conf b/weather/conf/app.conf index c7f64ce..38716c7 100755 --- a/weather/conf/app.conf +++ b/weather/conf/app.conf @@ -2,7 +2,7 @@ appname = weather ServerName = "beego" #runmode = dev runmode = prod -httpport = 8082 +httpport = 8084 #mysqluser = "root" #mysqlpass = "Skyinno251," #mysqlurls = "192.168.5.21:3306" @@ -15,7 +15,8 @@ httpport = 8082 SessionName = "beegosessionID" syncFrequency = "0 */10 * * * *" -syncFrequencyWeather = "0 16 * * * *" +# syncFrequencyWeather = "0 16 * * * *" +syncFrequencyWeather = "*/10 * * * * *" mysqluser = "root" diff --git a/weather/models/NmcProvince.go b/weather/models/NmcProvince.go index 8cf5a0d..55dde6a 100644 --- a/weather/models/NmcProvince.go +++ b/weather/models/NmcProvince.go @@ -17,10 +17,22 @@ func init() { orm.RegisterModel(new(NmcProvince)) } +func NmcProvinceAdd(item *NmcProvince) (int64, error) { + return orm.NewOrm().Insert(item) +} + +func GetNmcProvince(item *NmcProvince) bool { + var nmcProvinceTemp NmcProvince + o := orm.NewOrm() + err := o.QueryTable(new(NmcProvince)).Filter("code", item.Code).One(&nmcProvinceTemp) + if err == nil { + return true + } + return false +} func GetNmcProvinceList() []*NmcProvince { items := make([]*NmcProvince, 0) orm.NewOrm().QueryTable(new(NmcCity)).All(&items) return items } - diff --git a/weather/service/HttpWeatherService.go b/weather/service/HttpWeatherService.go index 12ba13a..4b8a6d4 100755 --- a/weather/service/HttpWeatherService.go +++ b/weather/service/HttpWeatherService.go @@ -1,6 +1,7 @@ package service import ( + "encoding/json" "fmt" "github.com/astaxie/beego/httplib" "strconv" @@ -13,6 +14,36 @@ type HttpWeatherService struct { } func SyncNmcCityAndNmcProvince() { + timeUnix := time.Now().Unix() + s := strconv.FormatInt(timeUnix, 10) + url := "http://www.nmc.cn/rest/province/all?_=" + s + "000" + //http://www.nmc.cn/rest/province/all?_=1741052160653 + //http://www.nmc.cn/rest/province/all?_=1741052160653 + fmt.Println(url) + req := httplib.Get(url) + provinceListJson, err := req.String() + if err != nil { + fmt.Println(err) + } + fmt.Println(provinceListJson) + + var provinces []models.NmcProvince + json.Unmarshal([]byte(provinceListJson), &provinces) + //fmt.Println(provinces) + //fmt.Println(len(provinces)) + + for _, item := range provinces { + if models.GetNmcProvince(&item) { + //存在 + fmt.Println("存在") + } else { + //不存在 + models.NmcProvinceAdd(&item) + fmt.Println("不存在,插入数据库") + //http://www.nmc.cn/rest/province/ASX?_=1741055184606 + //“http://www.nmc.cn/rest/province/" + code + "?_=" + String.valueOf(System.currentTimeMillis()); + } + } } @@ -20,7 +51,7 @@ func (s *HttpWeatherService) GetNmcNowWeather() { citys := models.GetNmcCityList() fmt.Println(citys) fmt.Println(len(citys)) - if len(citys)==0 { + if len(citys) == 0 { SyncNmcCityAndNmcProvince() } var wg sync.WaitGroup @@ -45,8 +76,8 @@ func (s *HttpWeatherService) GetNmcNowWeather() { nmcNowWeather.Weather = str nmcNowWeather.Code = item.Code nmcNowWeather.WeatherDate = now.Format("2006-01-02") - id,errInsert := models.AddNmcNowWeather(nmcNowWeather) - if errInsert!=nil { + id, errInsert := models.AddNmcNowWeather(nmcNowWeather) + if errInsert != nil { println(errInsert.Error()) } fmt.Println(id) diff --git a/weather/weather b/weather/weather index 5b16bd8..5fcc098 100755 Binary files a/weather/weather and b/weather/weather differ