Преглед на файлове

✨ feat(category): 添加获取分类的命令及相关服务模块

陈雪 преди 2 седмици
родител
ревизия
24f3a75aca

+ 14 - 0
src-tauri/src/commands/mod.rs

@@ -1 +1,15 @@
+use tauri::State;
 
+use crate::{AppState, CommandResult, models::menu_cate, service::category::Category};
+
+#[tauri::command]
+pub async fn get_category(app_state: State<'_, AppState>) -> CommandResult<menu_cate::Model> {
+    let category = Category::new(app_state.conn.clone());
+    let categories = category.get_category_commodity().await;
+    match categories {
+        Ok(Some(categories)) => Ok(categories),
+        Err(e) => Err(format!("请求分类失败{:?}", e)),
+        _ => Err(format!("没有分类")),
+    }
+    // Ok("111".into())
+}

+ 2 - 0
src-tauri/src/lib.rs

@@ -7,6 +7,7 @@ use std::fs::{self, File};
 use std::sync::Arc;
 use tauri::{AppHandle, Manager, path::BaseDirectory};
 
+type CommandResult<T> = Result<T, String>;
 // 添加 AppState 结构体
 #[derive(Default)]
 pub struct AppState {
@@ -38,6 +39,7 @@ pub fn run() {
                 Ok(())
             })
         })
+        .invoke_handler(tauri::generate_handler![commands::get_category])
         .plugin(tauri_plugin_os::init())
         .plugin(tauri_plugin_single_instance::init(|app, _args, _cwd| {
             let _ = show_window(app);

+ 2 - 1
src-tauri/src/models/menu_cate.rs

@@ -1,8 +1,9 @@
 //! `SeaORM` Entity, @generated by sea-orm-codegen 1.1.0
 
 use sea_orm::entity::prelude::*;
+use serde::Serialize;
 
-#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq)]
+#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq, Serialize)]
 #[sea_orm(table_name = "menu_cate")]
 pub struct Model {
     #[sea_orm(primary_key)]

+ 4 - 4
src-tauri/src/models/prelude.rs

@@ -1,7 +1,7 @@
 //! `SeaORM` Entity, @generated by sea-orm-codegen 1.1.0
 
 pub use super::menu_cate::Entity as MenuCate;
-pub use super::menu_commodity::Entity as MenuCommodity;
-pub use super::menu_sku::Entity as MenuSku;
-pub use super::menu_sku_spec::Entity as MenuSkuSpec;
-pub use super::menu_spec::Entity as MenuSpec;
+// pub use super::menu_commodity::Entity as MenuCommodity;
+// pub use super::menu_sku::Entity as MenuSku;
+// pub use super::menu_sku_spec::Entity as MenuSkuSpec;
+// pub use super::menu_spec::Entity as MenuSpec;

+ 20 - 0
src-tauri/src/service/category.rs

@@ -0,0 +1,20 @@
+use std::sync::Arc;
+
+use sea_orm::{DatabaseConnection, EntityTrait};
+
+use crate::models::{menu_cate, prelude::MenuCate};
+
+pub struct Category {
+    conn: Arc<DatabaseConnection>,
+}
+
+impl Category {
+    pub fn new(conn: Arc<DatabaseConnection>) -> Self {
+        return Self { conn };
+    }
+    pub async fn get_category_commodity(&self) -> anyhow::Result<Option<menu_cate::Model>> {
+        let categories: Option<menu_cate::Model> = MenuCate::find().one(&*self.conn).await?;
+
+        Ok(categories)
+    }
+}

+ 1 - 0
src-tauri/src/service/mod.rs

@@ -0,0 +1 @@
+pub(crate) mod category;