From fb4d7df51924d6d5b64b03dd5e5a4dca5f897910 Mon Sep 17 00:00:00 2001 From: keqingmoe Date: Mon, 30 Dec 2024 22:23:23 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E7=94=A8=E6=88=B7=E8=AE=B0?= =?UTF-8?q?=E5=BD=95=E5=8A=9F=E8=83=BD=EF=BC=8C=E5=9C=A8=E9=97=AE=E9=A2=98?= =?UTF-8?q?=E6=A3=80=E6=9F=A5=E4=B8=AD=E8=AE=B0=E5=BD=95=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E7=AD=94=E6=A1=88=EF=BC=8C=E4=BC=98=E5=8C=96=E7=AD=94=E9=A2=98?= =?UTF-8?q?=E5=8F=8D=E9=A6=88=E6=9C=BA=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/study/problems.c | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/src/server/study/problems.c b/src/server/study/problems.c index a180284..58d3880 100644 --- a/src/server/study/problems.c +++ b/src/server/study/problems.c @@ -1,4 +1,5 @@ #include "db/problems.h" +#include "db/records.h" #include "jwt/jwt.h" #include "server/response.h" #include "server/study.h" @@ -176,7 +177,7 @@ static void impl_modify(mg_connection* conn, problem_form_t* form) res_200(conn, "success to modify the problem"); } -static void impl_check(mg_connection* conn, problem_form_t* form) +static void impl_check(mg_connection* conn, problem_form_t* form, const char* user_id) { if (!form->has_id) { res_need_xxx(conn, "problem id"); @@ -198,9 +199,15 @@ static void impl_check(mg_connection* conn, problem_form_t* form) int flag = check_answer(form->id, form->answer, &result); if (!flag) { + add_record_uke(user_id, form->id, form->answer); res_500(conn, "fail to check the answer"); return; } + if (result) { + add_record_ac(user_id, form->id, form->answer); + } else { + add_record_wa(user_id, form->id, form->answer); + } res_check_answer(conn, result); } @@ -276,17 +283,14 @@ int problems_handler(mg_connection* conn, void* cbdata) impl_modify(conn, &form); } } else if (!strcmp(form.action, "check")) { - impl_check(conn, &form); + impl_check(conn, &form, user_id); } else if (!strcmp(form.action, "all")) { - if (result == 2) { - res_permission_denied(conn); - } else { - impl_all(conn, &form); - } + impl_all(conn, &form); } else { res_bad_action(conn); } } + free(user_id); } problem_form_dtor(&form);