From cabd7ea097afefc5c20aee71aa537207dd30a64f Mon Sep 17 00:00:00 2001 From: zrll_ <46812903+zrll12@users.noreply.github.com> Date: Sun, 25 Aug 2024 18:59:50 +0800 Subject: [PATCH] feat: add completed to get judge --- src/controller/judge/start.rs | 4 +++- src/model/judge.rs | 7 +++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/controller/judge/start.rs b/src/controller/judge/start.rs index b660fda..80a8b8c 100644 --- a/src/controller/judge/start.rs +++ b/src/controller/judge/start.rs @@ -17,12 +17,13 @@ use crate::model::judge::{get_judge_result}; pub async fn auto_judge(Query(query): Query, AdminTokenInfo(admin): AdminTokenInfo) -> Result { info!("Admin {} is judging answer {}", admin.id, query.answer); - let (scores, user, full) = get_judge_result(query.answer, admin.id).await?; + let (scores, user, full, completed) = get_judge_result(query.answer, admin.id).await?; let response = JudgeResponse { full, user, scores, + completed }; Ok(serde_json::to_string(&response).unwrap()) @@ -38,4 +39,5 @@ pub struct JudgeResponse { pub full: i32, pub user: i32, pub scores: HashMap, + pub completed: bool, } \ No newline at end of file diff --git a/src/model/judge.rs b/src/model/judge.rs index 7e3ebf5..9599412 100644 --- a/src/model/judge.rs +++ b/src/model/judge.rs @@ -10,9 +10,8 @@ use sea_orm::{ActiveModelTrait, ColumnTrait, NotSet}; use sea_orm::{EntityTrait, QueryFilter}; use std::collections::HashMap; use uuid::Uuid; -use crate::model::question::ConditionType::Not; -pub async fn get_judge_result(answer: i32, judge: i64) -> Result<(HashMap, i32, i32), ErrorMessage> { +pub async fn get_judge_result(answer: i32, judge: i64) -> Result<(HashMap, i32, i32, bool), ErrorMessage> { let score = score::Entity::find() .filter(score::Column::Id.eq(answer)) .one(&*DATABASE) @@ -22,12 +21,12 @@ pub async fn get_judge_result(answer: i32, judge: i64) -> Result<(HashMap = serde_json::from_value(res.scores).unwrap(); - return Ok((score, res.user_score, res.full_score)); + return Ok((score, res.user_score, res.full_score, res.completed)); } let result = auto_judge(answer, judge).await?; - Ok(result) + Ok((result.0, result.1, result.2, false)) } async fn auto_judge(answer: i32, judge: i64) -> Result<(HashMap, i32, i32), ErrorMessage> {