use actix_web::{get, web, HttpResponse, Responder}; use sqlx::postgres::PgPool; const HTML_TEMPLATE: &str = r#" 小明计算助手

🌤 小明计算助手

环境监测领域的专业计算工具,快速判定大气稳定度等级,判断无组织排放监测适宜性

功能介绍

☀️

太阳高度角

自动计算太阳倾角与高度角

☁️

云量计算

云量指数与太阳辐射等级

💨

风速风向

地面风速推算与风向适宜度

📊

稳定度判定

输出 A-F 稳定度等级与建议

📋

数据管理

保存、查看、导出检测记录

💳

会员服务

无限存储,随时续费

服务状态

{status_icon} {status_text} 📦 v{version} 🗄️ 数据库: {database}

访问方式

请在微信中搜索「小明计算助手」小程序,或扫描下方二维码打开。

微信小程序二维码

本页面为后端服务状态页,小程序功能请通过微信客户端访问。

"#; #[get("/")] pub async fn root(pool: web::Data) -> impl Responder { let (status_class, status_icon, status_text, database) = match sqlx::query("SELECT 1") .fetch_one(pool.get_ref()) .await { Ok(_) => ("status-ok", "✅", "服务正常", "已连接"), Err(_) => ("status-error", "❌", "服务异常", "未连接"), }; let html = HTML_TEMPLATE .replace("{status_class}", status_class) .replace("{status_icon}", status_icon) .replace("{status_text}", status_text) .replace("{database}", database) .replace("{version}", env!("CARGO_PKG_VERSION")); HttpResponse::Ok() .content_type("text/html; charset=utf-8") .body(html) }