diff --git a/.env b/.env index edd77db..5bae2fd 100644 --- a/.env +++ b/.env @@ -1,3 +1,2 @@ DATABASE_URL=mysql://root:archlinux0311@localhost:3306/likeadmin -#UPLOAD_PATH=/var/www/uploads/caszl UPLOAD_PATH="/Volumes/iMac Doc/likeadmin-java" diff --git a/caszl-front-rs b/caszl-front-rs new file mode 100755 index 0000000..96c9b1d Binary files /dev/null and b/caszl-front-rs differ diff --git a/src/entity/la_article.rs b/src/entity/la_article.rs index 242f190..9022b33 100644 --- a/src/entity/la_article.rs +++ b/src/entity/la_article.rs @@ -29,11 +29,11 @@ pub struct Model { #[derive(Copy, Clone, Debug, EnumIter, DeriveRelation)] pub enum Relation { #[sea_orm( - belongs_to = "super::la_article_category::Entity", - from = "Column::Cid", - to = "super::la_article_category::Column::Id", + belongs_to = "super::la_article_category::Entity", + from = "Column::Cid", + to = "super::la_article_category::Column::Id" )] - LaArticleCategory + LaArticleCategory, } impl Related for Entity { diff --git a/src/entity/la_article_category.rs b/src/entity/la_article_category.rs index 26eb888..933ed1b 100644 --- a/src/entity/la_article_category.rs +++ b/src/entity/la_article_category.rs @@ -19,7 +19,7 @@ pub struct Model { #[derive(Copy, Clone, Debug, EnumIter, DeriveRelation)] pub enum Relation { #[sea_orm(has_many = "super::la_article::Entity")] - LaArticle + LaArticle, } impl Related for Entity { diff --git a/src/main.rs b/src/main.rs index 3c77d6d..4effed2 100644 --- a/src/main.rs +++ b/src/main.rs @@ -22,7 +22,10 @@ async fn main() { let db_conn = Database::connect(&db_url).await.expect("数据库链接失败"); - let app_state = AppState { db_conn, upload_path }; + let app_state = AppState { + db_conn, + upload_path, + }; let app = routes::create_routes(Arc::new(app_state)); Server::bind(&"0.0.0.0:3000".parse().unwrap()) diff --git a/src/routes.rs b/src/routes.rs index 4033f16..92ba5c5 100644 --- a/src/routes.rs +++ b/src/routes.rs @@ -10,7 +10,7 @@ pub fn create_routes(app_state: Arc) -> IntoMakeService { .nest( "/api", Router::new() - .nest_service("/uploads",ServeDir::new(&app_state.upload_path)) + .nest_service("/uploads", ServeDir::new(&app_state.upload_path)) .nest("/article", Router::new().route("/list", get(article_list))) .nest( "/pc", diff --git a/src/service/artile.rs b/src/service/artile.rs index 75bc05f..da44cfd 100644 --- a/src/service/artile.rs +++ b/src/service/artile.rs @@ -11,7 +11,6 @@ use axum::Json; use chrono::{TimeZone, Utc}; use sea_orm::{ColumnTrait, EntityTrait, PaginatorTrait, QueryFilter, QueryOrder, QueryTrait}; - pub struct ArticleService { pub state: Arc, } @@ -33,13 +32,9 @@ impl ArticleService { let articles_selection = la_article::Entity::find() .filter(la_article::Column::IsDelete.ne(1)) .filter(la_article::Column::IsShow.ne(0)) - .apply_if(Some(params.cid), |mut query, v| { - match v { - Some(cid) => { - query.filter(la_article::Column::Cid.eq(cid)) - } - None => { query } - } + .apply_if(Some(params.cid), |mut query, v| match v { + Some(cid) => query.filter(la_article::Column::Cid.eq(cid)), + None => query, }); let count = match articles_selection.clone().count(&self.state.db_conn).await { Ok(total) => total, @@ -79,7 +74,11 @@ impl ArticleService { let article_item = ArticleListItem { id: article.id, title: article.title, - image: Some(article.image), + image: Option::from(if article.image != "" { + format!("/uploads/{}", article.image) + } else { + String::from("") + }), intro: Some(article.intro), visit: article.visit, collect: false, @@ -127,7 +126,8 @@ impl ArticleService { } }; - match la_article::Entity::find_by_id(id).find_also_related(la_article_category::Entity) + match la_article::Entity::find_by_id(id) + .find_also_related(la_article_category::Entity) .filter(la_article::Column::IsDelete.eq(0)) .filter(la_article::Column::IsShow.eq(1)) .one(&self.state.db_conn) @@ -148,7 +148,7 @@ impl ArticleService { id: article.id, title: article.title, }), - _ => None + _ => None, }; let next_result = la_article::Entity::find() .filter(la_article::Column::IsDelete.eq(0)) @@ -163,19 +163,23 @@ impl ArticleService { id: article.id, title: article.title, }), - _ => None + _ => None, }; let article_detail = ArticleDetail { id: article.id, cid: Option::from(article.cid), category: match category { Some(category) => Some(category.name), - None => None + None => None, }, title: article.title, intro: Option::from(article.intro), summary: article.summary, - image: Option::from(article.image), + image: Option::from(if article.image != "" { + format!("/uploads/{}", article.image) + } else { + String::from("") + }), content: article.content, author: article.author, visit: article.visit, diff --git a/src/state/article.rs b/src/state/article.rs index d5b5725..2637bf7 100644 --- a/src/state/article.rs +++ b/src/state/article.rs @@ -1,5 +1,5 @@ use crate::service::artile::ArticleService; pub struct ArticleState { - pub article_service: ArticleService -} \ No newline at end of file + pub article_service: ArticleService, +}