在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; use sqlx::FromRow;
// 定义JWT载荷结构体 // 定义JWT载荷结构体
#[derive(Debug, Serialize, Deserialize)] #[derive(Debug, Serialize, Deserialize, Clone)]
pub struct Claims { pub struct Claims {
// 标准字段:过期时间(必须) // 标准字段:过期时间(必须)
pub exp: i64, // 时间戳(秒) pub exp: i64, // 时间戳(秒)
@@ -29,11 +29,6 @@ pub struct WeChatApiResponse {
pub errmsg: Option<String>, pub errmsg: Option<String>,
} }
#[derive(Debug, Serialize)]
pub struct OpenIdResponse {
pub openid: String,
}
#[derive(Debug, Serialize)] #[derive(Debug, Serialize)]
pub struct ErrorResponse { pub struct ErrorResponse {
pub error: String, pub error: String,
@@ -41,98 +36,134 @@ pub struct ErrorResponse {
pub errmsg: Option<String>, pub errmsg: Option<String>,
} }
// 天气数据结构体(已有 // 天气数据结构体(修改后
#[derive(Debug, Deserialize, Serialize)] #[derive(Debug, Deserialize, Serialize, FromRow)] // 添加 FromRow 派生
pub struct WeatherData { pub struct WeatherData {
// 添加 id 字段(数据库中应该有这个主键)
#[serde(skip_deserializing)] // 1. 反序列化时忽略该字段;
#[sqlx(rename = "id")] // 数据库表的 id 列(自增主键),查询映射时使用
pub id: i32,
#[serde(rename = "areaType")] #[serde(rename = "areaType")]
#[sqlx(rename = "areatype")] // 数据库列名是小写下划线式
pub area_type: String, pub area_type: String,
#[serde(rename = "assignmentnumber")] #[serde(rename = "assignmentnumber")]
#[sqlx(rename = "assignmentnumber")]
pub assignment_number: String, pub assignment_number: String,
#[serde(rename = "atmosphericStability")] #[serde(rename = "atmosphericStability")]
#[sqlx(rename = "atmosphericstability")]
pub atmospheric_stability: String, pub atmospheric_stability: String,
#[serde(rename = "averageWindDirection")] #[serde(rename = "averageWindDirection")]
#[sqlx(rename = "averagewinddirection")]
pub average_wind_direction: f64, pub average_wind_direction: f64,
#[serde(rename = "averageWindSpeed")] #[serde(rename = "averageWindSpeed")]
#[sqlx(rename = "averagewindspeed")]
pub average_wind_speed: f64, pub average_wind_speed: f64,
#[serde(rename = "calculatedwindspeed")] #[serde(rename = "calculatedwindspeed")]
#[sqlx(rename = "calculatedwindspeed")]
pub calculated_wind_speed: f64, pub calculated_wind_speed: f64,
#[serde(rename = "cloudIndex")] #[serde(rename = "cloudIndex")]
#[sqlx(rename = "cloudindex")]
pub cloud_index: String, pub cloud_index: String,
#[serde(rename = "convertedWindSpeed")] #[serde(rename = "convertedWindSpeed")]
#[sqlx(rename = "convertedwindspeed")]
pub converted_wind_speed: f64, pub converted_wind_speed: f64,
pub date: NaiveDate, pub date: NaiveDate,
#[serde(rename = "daySinceJanFirst")] #[serde(rename = "daySinceJanFirst")]
#[sqlx(rename = "daysincejanfirst")]
pub day_since_jan_first: i32, pub day_since_jan_first: i32,
#[serde(rename = "hasMeasuredWindSpeed")] #[serde(rename = "hasMeasuredWindSpeed")]
#[sqlx(rename = "hasmeasuredwindspeed")]
pub has_measured_wind_speed: bool, pub has_measured_wind_speed: bool,
#[serde(rename = "hours")]
#[sqlx(rename = "hour")] // 数据库中是 hour 字段
pub hours: i32, pub hours: i32,
#[serde(rename = "inspectiontype")] #[serde(rename = "inspectiontype")]
#[sqlx(rename = "inspectiontype")]
pub inspection_type: String, pub inspection_type: String,
pub latitude: f64, pub latitude: f64,
pub longitude: f64, pub longitude: f64,
#[serde(rename = "lowCloudiness")] #[serde(rename = "lowCloudiness")]
#[sqlx(rename = "lowcloudiness")]
pub low_cloudiness: String, pub low_cloudiness: String,
#[serde(rename = "measuredWindSpeed")] #[serde(rename = "measuredWindSpeed")]
#[sqlx(rename = "measuredwindspeed")]
pub measured_wind_speed: f64, pub measured_wind_speed: f64,
#[serde(rename = "measurementHeight")] #[serde(rename = "measurementHeight")]
#[sqlx(rename = "measurementheight")]
pub measurement_height: f64, pub measurement_height: f64,
#[serde(rename = "min")]
#[sqlx(rename = "min")]
pub min: i32, pub min: i32,
pub openid: String, pub openid: String,
#[serde(rename = "overallCloudiness")] #[serde(rename = "overallCloudiness")]
#[sqlx(rename = "overallcloudiness")]
pub overall_cloudiness: String, pub overall_cloudiness: String,
#[serde(rename = "overallSuitability")] #[serde(rename = "overallSuitability")]
#[sqlx(rename = "overallsuitability")]
pub overall_suitability: String, pub overall_suitability: String,
#[serde(rename = "pointWindSpeed")] #[serde(rename = "pointWindSpeed")]
#[sqlx(rename = "pointwindspeed")]
pub point_wind_speed: f64, pub point_wind_speed: f64,
#[serde(rename = "solarDeclination")] #[serde(rename = "solarDeclination")]
#[sqlx(rename = "solardeclination")]
pub solar_declination: f64, pub solar_declination: f64,
#[serde(rename = "solarRadiationLevel")] #[serde(rename = "solarRadiationLevel")]
#[sqlx(rename = "solarradiationlevel")]
pub solar_radiation_level: f64, pub solar_radiation_level: f64,
#[serde(rename = "suitabilityDegree")] #[serde(rename = "suitabilityDegree")]
#[sqlx(rename = "suitabilitydegree")]
pub suitability_degree: String, pub suitability_degree: String,
#[serde(rename = "sunAltitude")] #[serde(rename = "sunAltitude")]
#[sqlx(rename = "sunaltitude")]
pub sun_altitude: f64, pub sun_altitude: f64,
pub theta: f64, pub theta: f64,
pub title: String, pub title: String,
#[serde(rename = "windDirection")] #[serde(rename = "windDirection")]
#[sqlx(rename = "winddirection")]
pub wind_direction: Vec<f64>, pub wind_direction: Vec<f64>,
#[serde(rename = "windDirectionStandardDeviation")] #[serde(rename = "windDirectionStandardDeviation")]
#[sqlx(rename = "winddirectionstandarddeviation")]
pub wind_direction_standard_deviation: f64, pub wind_direction_standard_deviation: f64,
#[serde(rename = "windDirectionSuitability")] #[serde(rename = "windDirectionSuitability")]
#[sqlx(rename = "winddirectionsuitability")]
pub wind_direction_suitability: String, pub wind_direction_suitability: String,
#[serde(rename = "windSpeed")] #[serde(rename = "windSpeed")]
#[sqlx(rename = "windspeed")]
pub wind_speed: Vec<f64>, pub wind_speed: Vec<f64>,
#[serde(rename = "windSpeedSuitability")] #[serde(rename = "windSpeedSuitability")]
#[sqlx(rename = "windspeedsuitability")]
pub wind_speed_suitability: String, pub wind_speed_suitability: String,
} }