119 lines
4.4 KiB
C#
119 lines
4.4 KiB
C#
using Newtonsoft.Json;
|
|
using System;
|
|
using System.Linq;
|
|
|
|
namespace BLL
|
|
{
|
|
/// <summary>
|
|
/// 天气记录
|
|
/// </summary>
|
|
public class WeatherService
|
|
{
|
|
public static Model.SGGLDB db = Funs.DB;
|
|
|
|
/// <summary>
|
|
/// 根据主键获取SGGLDB
|
|
/// </summary>
|
|
/// <param name="weatherId"></param>
|
|
/// <returns></returns>
|
|
public static Model.Weather GetWeatherByDateAndCity(DateTime date, string city)
|
|
{
|
|
return Funs.DB.Weather.FirstOrDefault(e => e.Date == date && e.City == city);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 添加天气
|
|
/// </summary>
|
|
/// <param name="weather"></param>
|
|
public static void AddWeather(Model.Weather weather)
|
|
{
|
|
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
|
|
{
|
|
Model.Weather newWeather = new Model.Weather
|
|
{
|
|
WeatherId = weather.WeatherId,
|
|
City = weather.City,
|
|
Date = weather.Date,
|
|
WeatherRef = weather.WeatherRef,
|
|
CurrTem = weather.CurrTem,
|
|
AllTem = weather.AllTem
|
|
};
|
|
db.Weather.InsertOnSubmit(newWeather);
|
|
db.SubmitChanges();
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 根据主键删除天气
|
|
/// </summary>
|
|
/// <param name="weatherId"></param>
|
|
public static void DeleteWeatherById(string weatherId)
|
|
{
|
|
Model.SGGLDB db = Funs.DB;
|
|
Model.Weather weather = db.Weather.FirstOrDefault(e => e.WeatherId == weatherId);
|
|
if (weather != null)
|
|
{
|
|
db.Weather.DeleteOnSubmit(weather);
|
|
db.SubmitChanges();
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public static Model.Weather GetWeather(string projectId)
|
|
{
|
|
try
|
|
{
|
|
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
|
|
{
|
|
Model.Weather getWeather = new Model.Weather();
|
|
string appkey = "7416f4dd68c9352e02be31b12f15d74f"; //配置您申请的appkey
|
|
var project = ProjectService.GetProjectByProjectId(projectId);
|
|
string city = "天津";
|
|
if (project != null && !string.IsNullOrEmpty(project.City))
|
|
{
|
|
city = project.City;
|
|
}
|
|
if (!string.IsNullOrEmpty(city))
|
|
{
|
|
getWeather = GetWeatherByDateAndCity(DateTime.Now.Date, city);
|
|
if (getWeather == null) //未生成天气记录
|
|
{
|
|
string result = BLL.CommonService.CreateGetHttpResponse("http://apis.juhe.cn/simpleWeather/query?city=" + city + "&key=" + appkey);
|
|
var j2 = JsonConvert.DeserializeObject<dynamic>(result);
|
|
if (j2.reason == "查询成功!")
|
|
{
|
|
getWeather = new Model.Weather
|
|
{
|
|
WeatherId = SQLHelper.GetNewID(),
|
|
City = city,
|
|
Date = DateTime.Now.Date,
|
|
WeatherRef = j2.result.realtime.info,
|
|
CurrTem = j2.result.realtime.temperature,
|
|
AllTem = j2.result.future[0].temperature,
|
|
Humidity = j2.result.realtime.humidity,
|
|
Wid = j2.result.realtime.wid,
|
|
Direct = j2.result.realtime.direct,
|
|
Power = j2.result.realtime.power,
|
|
Aqi = j2.result.realtime.aqi,
|
|
ProjectId = projectId,
|
|
};
|
|
db.Weather.InsertOnSubmit(getWeather);
|
|
db.SubmitChanges();
|
|
}
|
|
}
|
|
}
|
|
|
|
return getWeather;
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
ErrLogInfo.WriteLog("获取天气异常。", ex);
|
|
return null;
|
|
}
|
|
}
|
|
}
|
|
}
|