将数据库修改到本地配置文件,修复工单没创建成功依旧会写入数据库的问题

This commit is contained in:
Yakumo Hokori
2026-02-24 16:00:43 +08:00
parent 5e03e76177
commit 1b36901a70
2048 changed files with 41630 additions and 40 deletions

View File

@@ -1,3 +1,5 @@
mod config;
use std::sync::Mutex;
use lazy_static::lazy_static;
use tokio_postgres::{NoTls, Error};
@@ -8,6 +10,12 @@ use tms_service;
use std::time::Duration;
use tokio::time::sleep;
/// 获取数据库连接字符串,从配置文件读取
fn get_database_url() -> Result<String, String> {
let cfg = config::Config::load()?;
Ok(cfg.database_url)
}
lazy_static! {
static ref COOKIE_STORAGE: Mutex<Option<String>> = Mutex::new(None);
static ref USERNAME_STORAGE: Mutex<Option<String>> = Mutex::new(None);
@@ -81,8 +89,8 @@ async fn login(username: String, password: String) -> Result<LoginResult, String
}
// If API login is successful, proceed with database operations
let db_url = "postgres://tmstools:521707@honulla.com:5432/tmstools";
let (mut client, connection) = match tokio_postgres::connect(db_url, NoTls).await {
let db_url = get_database_url()?;
let (mut client, connection) = match tokio_postgres::connect(&db_url, NoTls).await {
Ok(res) => res,
Err(e) => return Err(format!("数据库连接失败: {}", e)),
};
@@ -169,8 +177,8 @@ async fn get_dashboard_username() -> Result<String, String> {
#[tauri::command]
async fn get_workorders(range: String) -> Result<WorkOrderResponse, String> {
let username = USERNAME_STORAGE.lock().unwrap().clone().ok_or("用户未登录".to_string())?;
let db_url = "postgres://tmstools:521707@honulla.com:5432/tmstools";
let (mut client, connection) = tokio_postgres::connect(db_url, NoTls)
let db_url = get_database_url()?;
let (mut client, connection) = tokio_postgres::connect(&db_url, NoTls)
.await
.map_err(|e| format!("数据库连接失败: {}", e))?;
@@ -232,8 +240,8 @@ async fn create_ticket_command(n2p: String, massage_q: String, wx: Option<String
#[tauri::command]
async fn insert_workorder(code: String, n2n: String, q: String, a: String) -> Result<(), String> {
let username = USERNAME_STORAGE.lock().unwrap().clone().ok_or("用户未登录".to_string())?;
let db_url = "postgres://tmstools:521707@honulla.com:5432/tmstools";
let (mut client, connection) = tokio_postgres::connect(db_url, NoTls)
let db_url = get_database_url()?;
let (mut client, connection) = tokio_postgres::connect(&db_url, NoTls)
.await
.map_err(|e| format!("数据库连接失败: {}", e))?;
@@ -259,8 +267,8 @@ async fn insert_workorder(code: String, n2n: String, q: String, a: String) -> Re
#[tauri::command]
async fn feedback_workorder(gdid: String) -> Result<(), String> {
let username = USERNAME_STORAGE.lock().unwrap().clone().ok_or("用户未登录".to_string())?;
let db_url = "postgres://tmstools:521707@honulla.com:5432/tmstools";
let (mut client, connection) = tokio_postgres::connect(db_url, NoTls)
let db_url = get_database_url()?;
let (mut client, connection) = tokio_postgres::connect(&db_url, NoTls)
.await
.map_err(|e| format!("数据库连接失败: {}", e))?;
@@ -299,8 +307,8 @@ async fn feedback_workorder(gdid: String) -> Result<(), String> {
async fn feedback_today_workorders() -> Result<String, String> {
let username = USERNAME_STORAGE.lock().unwrap().clone().ok_or("用户未登录".to_string())?;
let cookie = COOKIE_STORAGE.lock().unwrap().clone().ok_or("未找到登录Cookie")?;
let db_url = "postgres://tmstools:521707@honulla.com:5432/tmstools";
let (mut client, connection) = tokio_postgres::connect(db_url, NoTls)
let db_url = get_database_url()?;
let (mut client, connection) = tokio_postgres::connect(&db_url, NoTls)
.await
.map_err(|e| format!("数据库连接失败: {}", e))?;
@@ -353,8 +361,8 @@ async fn feedback_today_workorders() -> Result<String, String> {
async fn feedback_selected_workorders(gdids: Vec<String>) -> Result<String, String> {
let username = USERNAME_STORAGE.lock().unwrap().clone().ok_or("用户未登录".to_string())?;
let cookie = COOKIE_STORAGE.lock().unwrap().clone().ok_or("未找到登录Cookie")?;
let db_url = "postgres://tmstools:521707@honulla.com:5432/tmstools";
let (mut client, connection) = tokio_postgres::connect(db_url, NoTls)
let db_url = get_database_url()?;
let (mut client, connection) = tokio_postgres::connect(&db_url, NoTls)
.await
.map_err(|e| format!("数据库连接失败: {}", e))?;
@@ -405,8 +413,8 @@ async fn close_workorder(gdid: String) -> Result<(), String> {
// Step 2: If remote close is successful, update the local database
let username = USERNAME_STORAGE.lock().unwrap().clone().ok_or("用户未登录".to_string())?;
let db_url = "postgres://tmstools:521707@honulla.com:5432/tmstools";
let (mut client, connection) = tokio_postgres::connect(db_url, NoTls)
let db_url = get_database_url()?;
let (mut client, connection) = tokio_postgres::connect(&db_url, NoTls)
.await
.map_err(|e| format!("数据库连接失败: {}", e))?;
@@ -433,8 +441,8 @@ async fn close_workorder(gdid: String) -> Result<(), String> {
async fn close_today_workorders() -> Result<String, String> {
let username = USERNAME_STORAGE.lock().unwrap().clone().ok_or("用户未登录".to_string())?;
let cookie = COOKIE_STORAGE.lock().unwrap().clone().ok_or("未找到登录Cookie")?;
let db_url = "postgres://tmstools:521707@honulla.com:5432/tmstools";
let (mut client, connection) = tokio_postgres::connect(db_url, NoTls)
let db_url = get_database_url()?;
let (mut client, connection) = tokio_postgres::connect(&db_url, NoTls)
.await
.map_err(|e| format!("数据库连接失败: {}", e))?;
@@ -478,8 +486,8 @@ async fn close_today_workorders() -> Result<String, String> {
async fn close_selected_workorders(gdids: Vec<String>) -> Result<String, String> {
let username = USERNAME_STORAGE.lock().unwrap().clone().ok_or("用户未登录".to_string())?;
let cookie = COOKIE_STORAGE.lock().unwrap().clone().ok_or("未找到登录Cookie")?;
let db_url = "postgres://tmstools:521707@honulla.com:5432/tmstools";
let (mut client, connection) = tokio_postgres::connect(db_url, NoTls)
let db_url = get_database_url()?;
let (mut client, connection) = tokio_postgres::connect(&db_url, NoTls)
.await
.map_err(|e| format!("数据库连接失败: {}", e))?;
@@ -512,8 +520,8 @@ async fn close_selected_workorders(gdids: Vec<String>) -> Result<String, String>
async fn feedback_and_close_today_workorders() -> Result<String, String> {
let username = USERNAME_STORAGE.lock().unwrap().clone().ok_or("用户未登录".to_string())?;
let cookie = COOKIE_STORAGE.lock().unwrap().clone().ok_or("未找到登录Cookie")?;
let db_url = "postgres://tmstools:521707@honulla.com:5432/tmstools";
let (mut client, connection) = tokio_postgres::connect(db_url, NoTls)
let db_url = get_database_url()?;
let (mut client, connection) = tokio_postgres::connect(&db_url, NoTls)
.await
.map_err(|e| format!("数据库连接失败: {}", e))?;