From 051cad1c7a32d5a210cc4c93ad990200507d769e Mon Sep 17 00:00:00 2001 From: Milky0217 Date: Fri, 26 Sep 2025 16:11:42 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9C=A8weather=5Fdata=E7=9A=84struct=20?= =?UTF-8?q?=E4=B8=AD=E7=9A=84id=E5=AD=97=E6=AE=B5=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E4=BA=86skip=E7=9A=84=E6=96=B9=E6=B3=95=EF=BC=8C=E4=BD=BF?= =?UTF-8?q?=E5=89=8D=E7=AB=AF=E5=8F=AF=E4=BB=A5=E6=AD=A3=E5=B8=B8=E4=BD=BF?= =?UTF-8?q?=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/models.rs | 47 +++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 39 insertions(+), 8 deletions(-) diff --git a/src/models.rs b/src/models.rs index 2faf4a7..f741df2 100644 --- a/src/models.rs +++ b/src/models.rs @@ -3,7 +3,7 @@ use serde::{Deserialize, Serialize}; use sqlx::FromRow; // 定义JWT载荷结构体 -#[derive(Debug, Serialize, Deserialize)] +#[derive(Debug, Serialize, Deserialize, Clone)] pub struct Claims { // 标准字段:过期时间(必须) pub exp: i64, // 时间戳(秒) @@ -29,11 +29,6 @@ pub struct WeChatApiResponse { pub errmsg: Option, } -#[derive(Debug, Serialize)] -pub struct OpenIdResponse { - pub openid: String, -} - #[derive(Debug, Serialize)] pub struct ErrorResponse { pub error: String, @@ -41,98 +36,134 @@ pub struct ErrorResponse { pub errmsg: Option, } -// 天气数据结构体(已有) -#[derive(Debug, Deserialize, Serialize)] +// 天气数据结构体(修改后) +#[derive(Debug, Deserialize, Serialize, FromRow)] // 添加 FromRow 派生 pub struct WeatherData { + // 添加 id 字段(数据库中应该有这个主键) + #[serde(skip_deserializing)] // 1. 反序列化时忽略该字段; + #[sqlx(rename = "id")] // 数据库表的 id 列(自增主键),查询映射时使用 + pub id: i32, + #[serde(rename = "areaType")] + #[sqlx(rename = "areatype")] // 数据库列名是小写下划线式 pub area_type: String, #[serde(rename = "assignmentnumber")] + #[sqlx(rename = "assignmentnumber")] pub assignment_number: String, #[serde(rename = "atmosphericStability")] + #[sqlx(rename = "atmosphericstability")] pub atmospheric_stability: String, #[serde(rename = "averageWindDirection")] + #[sqlx(rename = "averagewinddirection")] pub average_wind_direction: f64, #[serde(rename = "averageWindSpeed")] + #[sqlx(rename = "averagewindspeed")] pub average_wind_speed: f64, #[serde(rename = "calculatedwindspeed")] + #[sqlx(rename = "calculatedwindspeed")] pub calculated_wind_speed: f64, #[serde(rename = "cloudIndex")] + #[sqlx(rename = "cloudindex")] pub cloud_index: String, #[serde(rename = "convertedWindSpeed")] + #[sqlx(rename = "convertedwindspeed")] pub converted_wind_speed: f64, pub date: NaiveDate, #[serde(rename = "daySinceJanFirst")] + #[sqlx(rename = "daysincejanfirst")] pub day_since_jan_first: i32, #[serde(rename = "hasMeasuredWindSpeed")] + #[sqlx(rename = "hasmeasuredwindspeed")] pub has_measured_wind_speed: bool, + #[serde(rename = "hours")] + #[sqlx(rename = "hour")] // 数据库中是 hour 字段 pub hours: i32, #[serde(rename = "inspectiontype")] + #[sqlx(rename = "inspectiontype")] pub inspection_type: String, pub latitude: f64, pub longitude: f64, #[serde(rename = "lowCloudiness")] + #[sqlx(rename = "lowcloudiness")] pub low_cloudiness: String, #[serde(rename = "measuredWindSpeed")] + #[sqlx(rename = "measuredwindspeed")] pub measured_wind_speed: f64, #[serde(rename = "measurementHeight")] + #[sqlx(rename = "measurementheight")] pub measurement_height: f64, + #[serde(rename = "min")] + #[sqlx(rename = "min")] pub min: i32, + pub openid: String, #[serde(rename = "overallCloudiness")] + #[sqlx(rename = "overallcloudiness")] pub overall_cloudiness: String, #[serde(rename = "overallSuitability")] + #[sqlx(rename = "overallsuitability")] pub overall_suitability: String, #[serde(rename = "pointWindSpeed")] + #[sqlx(rename = "pointwindspeed")] pub point_wind_speed: f64, #[serde(rename = "solarDeclination")] + #[sqlx(rename = "solardeclination")] pub solar_declination: f64, #[serde(rename = "solarRadiationLevel")] + #[sqlx(rename = "solarradiationlevel")] pub solar_radiation_level: f64, #[serde(rename = "suitabilityDegree")] + #[sqlx(rename = "suitabilitydegree")] pub suitability_degree: String, #[serde(rename = "sunAltitude")] + #[sqlx(rename = "sunaltitude")] pub sun_altitude: f64, pub theta: f64, pub title: String, #[serde(rename = "windDirection")] + #[sqlx(rename = "winddirection")] pub wind_direction: Vec, #[serde(rename = "windDirectionStandardDeviation")] + #[sqlx(rename = "winddirectionstandarddeviation")] pub wind_direction_standard_deviation: f64, #[serde(rename = "windDirectionSuitability")] + #[sqlx(rename = "winddirectionsuitability")] pub wind_direction_suitability: String, #[serde(rename = "windSpeed")] + #[sqlx(rename = "windspeed")] pub wind_speed: Vec, #[serde(rename = "windSpeedSuitability")] + #[sqlx(rename = "windspeedsuitability")] pub wind_speed_suitability: String, }