在weather_data的struct 中的id字段添加了skip的方法,使前端可以正常使用

This commit is contained in:
2025-09-26 16:11:42 +08:00
parent 03bbd845c7
commit 051cad1c7a

View File

@@ -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<String>,
}
#[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<String>,
}
// 天气数据结构体(已有
#[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<f64>,
#[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<f64>,
#[serde(rename = "windSpeedSuitability")]
#[sqlx(rename = "windspeedsuitability")]
pub wind_speed_suitability: String,
}