修改持久化实体类
This commit is contained in:
parent
5afea94458
commit
518d9190e1
1
Cargo.lock
generated
1
Cargo.lock
generated
@ -2498,6 +2498,7 @@ dependencies = [
|
||||
"pin-project-lite",
|
||||
"tower-layer",
|
||||
"tower-service",
|
||||
"tracing",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
@ -9,7 +9,7 @@ edition = "2021"
|
||||
axum = { workspace = true }
|
||||
tokio = { workspace = true }
|
||||
tracing = { workspace = true }
|
||||
tower-http = { workspace = true }
|
||||
tower-http = { workspace = true, features = ["trace"] }
|
||||
validator = { workspace = true }
|
||||
axum-extra = { workspace = true }
|
||||
|
||||
|
@ -5,6 +5,7 @@ use validator::Validate;
|
||||
use domain::dto::feedback::FeedbackAdd;
|
||||
use domain::dto::pageable::PageParams;
|
||||
use domain::entities::feedback;
|
||||
use domain::entities::feedback::Feedback;
|
||||
use library::resp::pageable::Pageable;
|
||||
use library::resp::rejection::IRejection;
|
||||
use library::resp::response::{ResErr, ResOK, ResResult};
|
||||
@ -24,6 +25,6 @@ pub async fn add_feedback(
|
||||
/// 获取反馈信息列表
|
||||
pub async fn get_feedback_list_by_page(
|
||||
Query(page_params): Query<PageParams>
|
||||
) -> ResResult<ResOK<Pageable<feedback::Model>>> {
|
||||
) -> ResResult<ResOK<Pageable<Feedback>>> {
|
||||
service::feedback::get_feedback_list_by_page(page_params.page, page_params.page_size).await
|
||||
}
|
@ -4,7 +4,7 @@ use validator::Validate;
|
||||
#[derive(Debug, Validate, Deserialize, Serialize)]
|
||||
pub struct FeedbackAdd {
|
||||
#[validate(required(message = "用户ID不能为空"))]
|
||||
pub user_id: Option<u64>,
|
||||
pub user_id: Option<i64>,
|
||||
#[validate(required, length(min = 1, message = "反馈内容不能为空"))]
|
||||
pub content: Option<String>
|
||||
}
|
@ -2,6 +2,6 @@ use serde::Deserialize;
|
||||
|
||||
#[derive(Deserialize)]
|
||||
pub struct PageParams {
|
||||
pub page: u64,
|
||||
pub page_size: u64,
|
||||
pub page: i64,
|
||||
pub page_size: i64,
|
||||
}
|
@ -1,21 +1,23 @@
|
||||
use chrono::{NaiveDateTime, Utc};
|
||||
use chrono::{FixedOffset, NaiveDateTime, NaiveTime, Utc};
|
||||
use serde::{Deserialize, Serialize};
|
||||
use sqlx::{FromRow, PgPool};
|
||||
use sqlx::postgres::types::PgTimeTz;
|
||||
use sqlx::types::chrono::{self, DateTime};
|
||||
use crate::db_result::CountResult;
|
||||
|
||||
#[derive(Debug, Clone, FromRow, serde::Serialize)]
|
||||
#[derive(Debug, Clone, Deserialize, Default, Serialize)]
|
||||
pub struct Feedback {
|
||||
pub id: u64,
|
||||
pub user_id: u64,
|
||||
pub id: i64,
|
||||
pub user_id: i64,
|
||||
pub content: String,
|
||||
pub created_at: NaiveDateTime,
|
||||
}
|
||||
|
||||
impl Feedback {
|
||||
pub async fn search_feedback(page: u64, page_size: u64, db_pool: &PgPool) -> Result<Vec<Feedback>, sqlx::Error> {
|
||||
pub async fn search_feedback(page: i64, page_size: i64, db_pool: &PgPool) -> Result<Vec<Feedback>, sqlx::Error> {
|
||||
sqlx::query_as!(
|
||||
Feedback,
|
||||
r#"select id, user_id, content, created_at from feedback limit ? offset ?"#,
|
||||
r#"select id, user_id, content, created_at from feedback limit $1 offset $2"#,
|
||||
page_size, page
|
||||
).fetch_all(db_pool).await
|
||||
}
|
||||
@ -28,17 +30,17 @@ impl Feedback {
|
||||
}
|
||||
|
||||
pub async fn add_feedback(feedback: &mut Feedback, db_pool: &PgPool) -> Result<Feedback, sqlx::Error> {
|
||||
feedback.created_at = Utc::now().naive_utc();
|
||||
feedback.created_at = NaiveDateTime::default();
|
||||
sqlx::query_as!(
|
||||
Feedback,
|
||||
r#"insert into feedback
|
||||
(user_id, content, created_at)
|
||||
values
|
||||
(?, ?, ?) returning *
|
||||
($1, $2, $3) returning *
|
||||
"#,
|
||||
feedback.user_id,
|
||||
feedback.content,
|
||||
feedback.created_at
|
||||
).execute(db_pool)
|
||||
).fetch_one(db_pool).await
|
||||
}
|
||||
}
|
@ -3,9 +3,9 @@ use sqlx::{FromRow, PgPool, QueryBuilder};
|
||||
use sqlx::types::chrono::{self, DateTime};
|
||||
use library::db;
|
||||
|
||||
#[derive(Debug, Clone, FromRow, serde::Serialize)]
|
||||
#[derive(Debug, Clone, Default)]
|
||||
pub struct PlayerInfo {
|
||||
pub id: u64,
|
||||
pub id: i64,
|
||||
pub username: String,
|
||||
pub email: String,
|
||||
pub platform_id: String,
|
||||
@ -18,7 +18,7 @@ impl PlayerInfo {
|
||||
pub async fn find_by_platform_id(platform_id: &str, db_pool: &PgPool) -> Result<PlayerInfo, sqlx::Error> {
|
||||
sqlx::query_as!(
|
||||
PlayerInfo,
|
||||
r#"select * from player_info where platform_id = ?"#,
|
||||
r#"select * from player_info where platform_id = $1"#,
|
||||
platform_id
|
||||
)
|
||||
.fetch_one(db_pool)
|
||||
@ -33,13 +33,13 @@ impl PlayerInfo {
|
||||
insert into player_info
|
||||
(username, email, platform_id, user_type, country_code, created_at)
|
||||
values
|
||||
(?, ?, ?, ?, ?, ?) returning *"#,
|
||||
($1, $2, $3, $4, $5, $6) returning *"#,
|
||||
player_info.username,
|
||||
player_info.email,
|
||||
player_info.platform_id,
|
||||
player_info.user_type,
|
||||
player_info.country_code,
|
||||
player_info.created_at,
|
||||
).execute(db_pool)
|
||||
).fetch_one(db_pool).await
|
||||
}
|
||||
}
|
@ -8,7 +8,7 @@ use library::resp::pageable::Pageable;
|
||||
use library::resp::response::{ResOK, ResResult};
|
||||
|
||||
/// 获取反馈信息列表
|
||||
pub async fn get_feedback_list_by_page(page: u64, page_size: u64) -> ResResult<ResOK<Pageable<Feedback>>> {
|
||||
pub async fn get_feedback_list_by_page(page: i64, page_size: i64) -> ResResult<ResOK<Pageable<Feedback>>> {
|
||||
let feedback_list = Feedback::search_feedback(page, page_size, db!()).await.ok();
|
||||
if feedback_list.is_none() {
|
||||
tracing::error!("反馈信息为空");
|
||||
@ -38,7 +38,7 @@ pub async fn add_feedback(req: FeedbackAdd) -> ResResult<ResOK<()>> {
|
||||
..Default::default()
|
||||
}, db!()).await {
|
||||
Ok(feedback) => {
|
||||
tracing::info!("添加反馈成功: {}", feedback)
|
||||
tracing::info!("添加反馈成功: {:?}", feedback)
|
||||
}
|
||||
Err(err) => {
|
||||
tracing::error!(error = ?err, "添加反馈信息失败");
|
||||
|
@ -1,3 +1,4 @@
|
||||
use std::ptr::null;
|
||||
use sqlx::Error;
|
||||
use domain::entities::player_info;
|
||||
use domain::dto::player_info::PlayerInfoRegister;
|
||||
@ -15,7 +16,7 @@ pub async fn register(req: PlayerInfoRegister) -> ResResult<ResOK<()>> {
|
||||
return Err(ErrSystem(None));
|
||||
}
|
||||
Ok(v) => {
|
||||
if v > 0 {
|
||||
if v.id > 0 {
|
||||
return Err(ErrPerm(Some("用户已存在".to_string())));
|
||||
}
|
||||
}
|
||||
@ -34,7 +35,7 @@ pub async fn register(req: PlayerInfoRegister) -> ResResult<ResOK<()>> {
|
||||
}, db!()
|
||||
).await {
|
||||
Ok(player_info) => {
|
||||
tracing::info!("添加账户成功: {}", player_info)
|
||||
tracing::info!("添加账户成功: {:?}", player_info)
|
||||
}
|
||||
Err(err) => {
|
||||
tracing::error!(error = ?err, "添加账号失败");
|
||||
|
Loading…
Reference in New Issue
Block a user