From 12b97dda577cfe80583abbe1d44b416bd77c289a Mon Sep 17 00:00:00 2001 From: YSY Date: Sat, 2 Nov 2024 16:07:12 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=E8=A7=84=E8=8C=83DAO=E5=92=8CEntity?= =?UTF-8?q?=E5=91=BD=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../kotlin/cn/kzoj/app/plugins/Security.kt | 4 ++-- .../kotlin/cn/kzoj/app/routes/JudgeRoutes.kt | 2 +- .../kotlin/cn/kzoj/app/routes/ProblemRoutes.kt | 6 +++--- .../kotlin/cn/kzoj/app/routes/UserRoutes.kt | 6 +++--- .../{ProblemDAO.kt => ProblemEntity.kt} | 4 ++-- ...{ProblemCaseDAO.kt => ProblemCaseEntity.kt} | 4 ++-- .../user/{UserInfoDAO.kt => UserInfoEntity.kt} | 4 ++-- .../dto/{entity => }/gojudge/GoJudgeRequest.kt | 2 +- .../dto/{entity => }/gojudge/GoJudgeResult.kt | 2 +- .../dto/{entity => }/judge/CodeLanguage.kt | 2 +- .../dto/{entity => }/judge/JudgeRequest.kt | 2 +- .../kzoj/dto/{entity => }/judge/JudgeResult.kt | 2 +- .../kzoj/dto/{entity => }/judge/JudgeStatus.kt | 2 +- .../dto/{entity => }/judge/SubmitReceipt.kt | 2 +- .../dto/{entity => }/judge/SubmitRequest.kt | 2 +- .../kzoj/dto/{entity => }/problem/Problem.kt | 2 +- .../{entity => }/problemcase/ProblemCase.kt | 2 +- .../cn/kzoj/dto/{entity => }/user/User.kt | 2 +- .../dto/{entity => }/user/UserAuthority.kt | 2 +- .../kzoj/dto/{entity => }/user/UserSession.kt | 2 +- .../kotlin/cn/kzoj/judge/JudgeDispatcher.kt | 12 ++++++------ .../main/kotlin/cn/kzoj/judge/SandboxRun.kt | 9 +++++++-- .../cn/kzoj/persistence/ProblemCaseService.kt | 6 +++--- .../cn/kzoj/persistence/ProblemService.kt | 18 +++++++++--------- .../kotlin/cn/kzoj/persistence/UserService.kt | 16 ++++++++-------- .../{ProblemDAO.kt => ProblemEntity.kt} | 10 +++++----- ...{ProblemCaseDAO.kt => ProblemCaseEntity.kt} | 8 ++++---- .../user/{UserDAO.kt => UserEntity.kt} | 10 +++++----- .../persistence/database/user/UserTable.kt | 2 +- 29 files changed, 76 insertions(+), 71 deletions(-) rename dbConvertor/src/main/kotlin/cn/kzoj/dbConvertor/hojData/problem/{ProblemDAO.kt => ProblemEntity.kt} (94%) rename dbConvertor/src/main/kotlin/cn/kzoj/dbConvertor/hojData/problemcase/{ProblemCaseDAO.kt => ProblemCaseEntity.kt} (82%) rename dbConvertor/src/main/kotlin/cn/kzoj/dbConvertor/hojData/user/{UserInfoDAO.kt => UserInfoEntity.kt} (89%) rename dto/src/main/kotlin/cn/kzoj/dto/{entity => }/gojudge/GoJudgeRequest.kt (99%) rename dto/src/main/kotlin/cn/kzoj/dto/{entity => }/gojudge/GoJudgeResult.kt (98%) rename dto/src/main/kotlin/cn/kzoj/dto/{entity => }/judge/CodeLanguage.kt (88%) rename dto/src/main/kotlin/cn/kzoj/dto/{entity => }/judge/JudgeRequest.kt (86%) rename dto/src/main/kotlin/cn/kzoj/dto/{entity => }/judge/JudgeResult.kt (89%) rename dto/src/main/kotlin/cn/kzoj/dto/{entity => }/judge/JudgeStatus.kt (90%) rename dto/src/main/kotlin/cn/kzoj/dto/{entity => }/judge/SubmitReceipt.kt (83%) rename dto/src/main/kotlin/cn/kzoj/dto/{entity => }/judge/SubmitRequest.kt (84%) rename dto/src/main/kotlin/cn/kzoj/dto/{entity => }/problem/Problem.kt (97%) rename dto/src/main/kotlin/cn/kzoj/dto/{entity => }/problemcase/ProblemCase.kt (82%) rename dto/src/main/kotlin/cn/kzoj/dto/{entity => }/user/User.kt (95%) rename dto/src/main/kotlin/cn/kzoj/dto/{entity => }/user/UserAuthority.kt (85%) rename dto/src/main/kotlin/cn/kzoj/dto/{entity => }/user/UserSession.kt (84%) rename persistence/src/main/kotlin/cn/kzoj/persistence/database/problem/{ProblemDAO.kt => ProblemEntity.kt} (89%) rename persistence/src/main/kotlin/cn/kzoj/persistence/database/problemcase/{ProblemCaseDAO.kt => ProblemCaseEntity.kt} (71%) rename persistence/src/main/kotlin/cn/kzoj/persistence/database/user/{UserDAO.kt => UserEntity.kt} (88%) diff --git a/app/src/main/kotlin/cn/kzoj/app/plugins/Security.kt b/app/src/main/kotlin/cn/kzoj/app/plugins/Security.kt index 8e8c7fd..0510503 100644 --- a/app/src/main/kotlin/cn/kzoj/app/plugins/Security.kt +++ b/app/src/main/kotlin/cn/kzoj/app/plugins/Security.kt @@ -3,8 +3,8 @@ package cn.kzoj.app.plugins import cn.kzoj.persistence.UserService import cn.kzoj.dto.exception.user.UserAccountValidateException import cn.kzoj.dto.exception.user.UserAuthorityException -import cn.kzoj.dto.entity.user.UserAuthority -import cn.kzoj.dto.entity.user.UserSession +import cn.kzoj.dto.user.UserAuthority +import cn.kzoj.dto.user.UserSession import io.ktor.server.application.Application import io.ktor.server.application.install import io.ktor.server.auth.Authentication diff --git a/app/src/main/kotlin/cn/kzoj/app/routes/JudgeRoutes.kt b/app/src/main/kotlin/cn/kzoj/app/routes/JudgeRoutes.kt index 615b97f..abbb33b 100644 --- a/app/src/main/kotlin/cn/kzoj/app/routes/JudgeRoutes.kt +++ b/app/src/main/kotlin/cn/kzoj/app/routes/JudgeRoutes.kt @@ -1,7 +1,7 @@ package cn.kzoj.app.routes import cn.kzoj.judge.JudgeDispatcher -import cn.kzoj.dto.entity.judge.SubmitRequest +import cn.kzoj.dto.judge.SubmitRequest import io.ktor.server.application.Application import io.ktor.server.auth.authenticate import io.ktor.server.request.receive diff --git a/app/src/main/kotlin/cn/kzoj/app/routes/ProblemRoutes.kt b/app/src/main/kotlin/cn/kzoj/app/routes/ProblemRoutes.kt index 012a311..9c2e2d8 100644 --- a/app/src/main/kotlin/cn/kzoj/app/routes/ProblemRoutes.kt +++ b/app/src/main/kotlin/cn/kzoj/app/routes/ProblemRoutes.kt @@ -4,9 +4,9 @@ import cn.kzoj.persistence.ProblemService import cn.kzoj.dto.exception.problem.ProblemIdNotIntException import cn.kzoj.dto.exception.problem.ProblemPageIndexNotPositiveIntException import cn.kzoj.dto.exception.user.UserAuthorityException -import cn.kzoj.dto.entity.problem.Problem -import cn.kzoj.dto.entity.user.UserAuthority -import cn.kzoj.dto.entity.user.UserSession +import cn.kzoj.dto.problem.Problem +import cn.kzoj.dto.user.UserAuthority +import cn.kzoj.dto.user.UserSession import io.ktor.http.HttpStatusCode import io.ktor.server.application.* import io.ktor.server.auth.authenticate diff --git a/app/src/main/kotlin/cn/kzoj/app/routes/UserRoutes.kt b/app/src/main/kotlin/cn/kzoj/app/routes/UserRoutes.kt index b167dd8..938cb1d 100644 --- a/app/src/main/kotlin/cn/kzoj/app/routes/UserRoutes.kt +++ b/app/src/main/kotlin/cn/kzoj/app/routes/UserRoutes.kt @@ -2,9 +2,9 @@ package cn.kzoj.app.routes import cn.kzoj.persistence.UserService import cn.kzoj.dto.exception.user.UserAuthorityException -import cn.kzoj.dto.entity.user.User -import cn.kzoj.dto.entity.user.UserAuthority -import cn.kzoj.dto.entity.user.UserSession +import cn.kzoj.dto.user.User +import cn.kzoj.dto.user.UserAuthority +import cn.kzoj.dto.user.UserSession import io.ktor.http.HttpStatusCode import io.ktor.server.application.* import io.ktor.server.auth.UserIdPrincipal diff --git a/dbConvertor/src/main/kotlin/cn/kzoj/dbConvertor/hojData/problem/ProblemDAO.kt b/dbConvertor/src/main/kotlin/cn/kzoj/dbConvertor/hojData/problem/ProblemEntity.kt similarity index 94% rename from dbConvertor/src/main/kotlin/cn/kzoj/dbConvertor/hojData/problem/ProblemDAO.kt rename to dbConvertor/src/main/kotlin/cn/kzoj/dbConvertor/hojData/problem/ProblemEntity.kt index 7eef901..341904b 100644 --- a/dbConvertor/src/main/kotlin/cn/kzoj/dbConvertor/hojData/problem/ProblemDAO.kt +++ b/dbConvertor/src/main/kotlin/cn/kzoj/dbConvertor/hojData/problem/ProblemEntity.kt @@ -5,8 +5,8 @@ import org.jetbrains.exposed.dao.IntEntityClass import org.jetbrains.exposed.dao.id.EntityID @Suppress("Unused") -class ProblemDAO(id: EntityID) : IntEntity(id) { - companion object: IntEntityClass(ProblemTable) +class ProblemEntity(id: EntityID) : IntEntity(id) { + companion object: IntEntityClass(ProblemTable) var problemId by ProblemTable.problemId var title by ProblemTable.title diff --git a/dbConvertor/src/main/kotlin/cn/kzoj/dbConvertor/hojData/problemcase/ProblemCaseDAO.kt b/dbConvertor/src/main/kotlin/cn/kzoj/dbConvertor/hojData/problemcase/ProblemCaseEntity.kt similarity index 82% rename from dbConvertor/src/main/kotlin/cn/kzoj/dbConvertor/hojData/problemcase/ProblemCaseDAO.kt rename to dbConvertor/src/main/kotlin/cn/kzoj/dbConvertor/hojData/problemcase/ProblemCaseEntity.kt index 2ef02a5..2f2eba6 100644 --- a/dbConvertor/src/main/kotlin/cn/kzoj/dbConvertor/hojData/problemcase/ProblemCaseDAO.kt +++ b/dbConvertor/src/main/kotlin/cn/kzoj/dbConvertor/hojData/problemcase/ProblemCaseEntity.kt @@ -5,8 +5,8 @@ import org.jetbrains.exposed.dao.IntEntityClass import org.jetbrains.exposed.dao.id.EntityID @Suppress("unused") -class ProblemCaseDAO(id: EntityID) : IntEntity(id) { - companion object: IntEntityClass(ProblemCaseTable) +class ProblemCaseEntity(id: EntityID) : IntEntity(id) { + companion object: IntEntityClass(ProblemCaseTable) var pid by ProblemCaseTable.pid var input by ProblemCaseTable.input diff --git a/dbConvertor/src/main/kotlin/cn/kzoj/dbConvertor/hojData/user/UserInfoDAO.kt b/dbConvertor/src/main/kotlin/cn/kzoj/dbConvertor/hojData/user/UserInfoEntity.kt similarity index 89% rename from dbConvertor/src/main/kotlin/cn/kzoj/dbConvertor/hojData/user/UserInfoDAO.kt rename to dbConvertor/src/main/kotlin/cn/kzoj/dbConvertor/hojData/user/UserInfoEntity.kt index c3a8df4..dc0e8f9 100644 --- a/dbConvertor/src/main/kotlin/cn/kzoj/dbConvertor/hojData/user/UserInfoDAO.kt +++ b/dbConvertor/src/main/kotlin/cn/kzoj/dbConvertor/hojData/user/UserInfoEntity.kt @@ -5,8 +5,8 @@ import org.jetbrains.exposed.dao.EntityClass import org.jetbrains.exposed.dao.id.EntityID @Suppress("unused") -class UserInfoDAO(uuid: EntityID) : Entity(uuid) { - companion object: EntityClass(UserInfoTable) +class UserInfoEntity(uuid: EntityID) : Entity(uuid) { + companion object: EntityClass(UserInfoTable) var username by UserInfoTable.username var password by UserInfoTable.password diff --git a/dto/src/main/kotlin/cn/kzoj/dto/entity/gojudge/GoJudgeRequest.kt b/dto/src/main/kotlin/cn/kzoj/dto/gojudge/GoJudgeRequest.kt similarity index 99% rename from dto/src/main/kotlin/cn/kzoj/dto/entity/gojudge/GoJudgeRequest.kt rename to dto/src/main/kotlin/cn/kzoj/dto/gojudge/GoJudgeRequest.kt index a610654..d7d3d33 100644 --- a/dto/src/main/kotlin/cn/kzoj/dto/entity/gojudge/GoJudgeRequest.kt +++ b/dto/src/main/kotlin/cn/kzoj/dto/gojudge/GoJudgeRequest.kt @@ -1,4 +1,4 @@ -package cn.kzoj.dto.entity.gojudge +package cn.kzoj.dto.gojudge import kotlinx.serialization.Serializable diff --git a/dto/src/main/kotlin/cn/kzoj/dto/entity/gojudge/GoJudgeResult.kt b/dto/src/main/kotlin/cn/kzoj/dto/gojudge/GoJudgeResult.kt similarity index 98% rename from dto/src/main/kotlin/cn/kzoj/dto/entity/gojudge/GoJudgeResult.kt rename to dto/src/main/kotlin/cn/kzoj/dto/gojudge/GoJudgeResult.kt index c2ba257..702d541 100644 --- a/dto/src/main/kotlin/cn/kzoj/dto/entity/gojudge/GoJudgeResult.kt +++ b/dto/src/main/kotlin/cn/kzoj/dto/gojudge/GoJudgeResult.kt @@ -1,4 +1,4 @@ -package cn.kzoj.dto.entity.gojudge +package cn.kzoj.dto.gojudge import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable diff --git a/dto/src/main/kotlin/cn/kzoj/dto/entity/judge/CodeLanguage.kt b/dto/src/main/kotlin/cn/kzoj/dto/judge/CodeLanguage.kt similarity index 88% rename from dto/src/main/kotlin/cn/kzoj/dto/entity/judge/CodeLanguage.kt rename to dto/src/main/kotlin/cn/kzoj/dto/judge/CodeLanguage.kt index dba924e..454d43c 100644 --- a/dto/src/main/kotlin/cn/kzoj/dto/entity/judge/CodeLanguage.kt +++ b/dto/src/main/kotlin/cn/kzoj/dto/judge/CodeLanguage.kt @@ -1,4 +1,4 @@ -package cn.kzoj.dto.entity.judge +package cn.kzoj.dto.judge import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable diff --git a/dto/src/main/kotlin/cn/kzoj/dto/entity/judge/JudgeRequest.kt b/dto/src/main/kotlin/cn/kzoj/dto/judge/JudgeRequest.kt similarity index 86% rename from dto/src/main/kotlin/cn/kzoj/dto/entity/judge/JudgeRequest.kt rename to dto/src/main/kotlin/cn/kzoj/dto/judge/JudgeRequest.kt index ef61b4d..00f99ea 100644 --- a/dto/src/main/kotlin/cn/kzoj/dto/entity/judge/JudgeRequest.kt +++ b/dto/src/main/kotlin/cn/kzoj/dto/judge/JudgeRequest.kt @@ -1,4 +1,4 @@ -package cn.kzoj.dto.entity.judge +package cn.kzoj.dto.judge import kotlinx.datetime.Instant import kotlinx.serialization.Serializable diff --git a/dto/src/main/kotlin/cn/kzoj/dto/entity/judge/JudgeResult.kt b/dto/src/main/kotlin/cn/kzoj/dto/judge/JudgeResult.kt similarity index 89% rename from dto/src/main/kotlin/cn/kzoj/dto/entity/judge/JudgeResult.kt rename to dto/src/main/kotlin/cn/kzoj/dto/judge/JudgeResult.kt index 312d8ff..fc8e825 100644 --- a/dto/src/main/kotlin/cn/kzoj/dto/entity/judge/JudgeResult.kt +++ b/dto/src/main/kotlin/cn/kzoj/dto/judge/JudgeResult.kt @@ -1,4 +1,4 @@ -package cn.kzoj.dto.entity.judge +package cn.kzoj.dto.judge import kotlinx.datetime.Instant import kotlinx.serialization.Serializable diff --git a/dto/src/main/kotlin/cn/kzoj/dto/entity/judge/JudgeStatus.kt b/dto/src/main/kotlin/cn/kzoj/dto/judge/JudgeStatus.kt similarity index 90% rename from dto/src/main/kotlin/cn/kzoj/dto/entity/judge/JudgeStatus.kt rename to dto/src/main/kotlin/cn/kzoj/dto/judge/JudgeStatus.kt index bcf3928..a928c12 100644 --- a/dto/src/main/kotlin/cn/kzoj/dto/entity/judge/JudgeStatus.kt +++ b/dto/src/main/kotlin/cn/kzoj/dto/judge/JudgeStatus.kt @@ -1,4 +1,4 @@ -package cn.kzoj.dto.entity.judge +package cn.kzoj.dto.judge import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable diff --git a/dto/src/main/kotlin/cn/kzoj/dto/entity/judge/SubmitReceipt.kt b/dto/src/main/kotlin/cn/kzoj/dto/judge/SubmitReceipt.kt similarity index 83% rename from dto/src/main/kotlin/cn/kzoj/dto/entity/judge/SubmitReceipt.kt rename to dto/src/main/kotlin/cn/kzoj/dto/judge/SubmitReceipt.kt index f967404..c8254dc 100644 --- a/dto/src/main/kotlin/cn/kzoj/dto/entity/judge/SubmitReceipt.kt +++ b/dto/src/main/kotlin/cn/kzoj/dto/judge/SubmitReceipt.kt @@ -1,4 +1,4 @@ -package cn.kzoj.dto.entity.judge +package cn.kzoj.dto.judge import kotlinx.serialization.Serializable diff --git a/dto/src/main/kotlin/cn/kzoj/dto/entity/judge/SubmitRequest.kt b/dto/src/main/kotlin/cn/kzoj/dto/judge/SubmitRequest.kt similarity index 84% rename from dto/src/main/kotlin/cn/kzoj/dto/entity/judge/SubmitRequest.kt rename to dto/src/main/kotlin/cn/kzoj/dto/judge/SubmitRequest.kt index 7208aad..830c764 100644 --- a/dto/src/main/kotlin/cn/kzoj/dto/entity/judge/SubmitRequest.kt +++ b/dto/src/main/kotlin/cn/kzoj/dto/judge/SubmitRequest.kt @@ -1,4 +1,4 @@ -package cn.kzoj.dto.entity.judge +package cn.kzoj.dto.judge import kotlinx.serialization.Serializable diff --git a/dto/src/main/kotlin/cn/kzoj/dto/entity/problem/Problem.kt b/dto/src/main/kotlin/cn/kzoj/dto/problem/Problem.kt similarity index 97% rename from dto/src/main/kotlin/cn/kzoj/dto/entity/problem/Problem.kt rename to dto/src/main/kotlin/cn/kzoj/dto/problem/Problem.kt index 69c351b..15d5773 100644 --- a/dto/src/main/kotlin/cn/kzoj/dto/entity/problem/Problem.kt +++ b/dto/src/main/kotlin/cn/kzoj/dto/problem/Problem.kt @@ -1,4 +1,4 @@ -package cn.kzoj.dto.entity.problem +package cn.kzoj.dto.problem import kotlinx.datetime.Clock import kotlinx.datetime.Instant diff --git a/dto/src/main/kotlin/cn/kzoj/dto/entity/problemcase/ProblemCase.kt b/dto/src/main/kotlin/cn/kzoj/dto/problemcase/ProblemCase.kt similarity index 82% rename from dto/src/main/kotlin/cn/kzoj/dto/entity/problemcase/ProblemCase.kt rename to dto/src/main/kotlin/cn/kzoj/dto/problemcase/ProblemCase.kt index cf41bc3..8f95289 100644 --- a/dto/src/main/kotlin/cn/kzoj/dto/entity/problemcase/ProblemCase.kt +++ b/dto/src/main/kotlin/cn/kzoj/dto/problemcase/ProblemCase.kt @@ -1,4 +1,4 @@ -package cn.kzoj.dto.entity.problemcase +package cn.kzoj.dto.problemcase import kotlinx.serialization.Serializable diff --git a/dto/src/main/kotlin/cn/kzoj/dto/entity/user/User.kt b/dto/src/main/kotlin/cn/kzoj/dto/user/User.kt similarity index 95% rename from dto/src/main/kotlin/cn/kzoj/dto/entity/user/User.kt rename to dto/src/main/kotlin/cn/kzoj/dto/user/User.kt index ba6365e..df7c34e 100644 --- a/dto/src/main/kotlin/cn/kzoj/dto/entity/user/User.kt +++ b/dto/src/main/kotlin/cn/kzoj/dto/user/User.kt @@ -1,4 +1,4 @@ -package cn.kzoj.dto.entity.user +package cn.kzoj.dto.user import kotlinx.datetime.Instant import kotlinx.serialization.Serializable diff --git a/dto/src/main/kotlin/cn/kzoj/dto/entity/user/UserAuthority.kt b/dto/src/main/kotlin/cn/kzoj/dto/user/UserAuthority.kt similarity index 85% rename from dto/src/main/kotlin/cn/kzoj/dto/entity/user/UserAuthority.kt rename to dto/src/main/kotlin/cn/kzoj/dto/user/UserAuthority.kt index 136eb09..ce677e3 100644 --- a/dto/src/main/kotlin/cn/kzoj/dto/entity/user/UserAuthority.kt +++ b/dto/src/main/kotlin/cn/kzoj/dto/user/UserAuthority.kt @@ -1,4 +1,4 @@ -package cn.kzoj.dto.entity.user +package cn.kzoj.dto.user import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable diff --git a/dto/src/main/kotlin/cn/kzoj/dto/entity/user/UserSession.kt b/dto/src/main/kotlin/cn/kzoj/dto/user/UserSession.kt similarity index 84% rename from dto/src/main/kotlin/cn/kzoj/dto/entity/user/UserSession.kt rename to dto/src/main/kotlin/cn/kzoj/dto/user/UserSession.kt index 43bb58f..7547615 100644 --- a/dto/src/main/kotlin/cn/kzoj/dto/entity/user/UserSession.kt +++ b/dto/src/main/kotlin/cn/kzoj/dto/user/UserSession.kt @@ -1,4 +1,4 @@ -package cn.kzoj.dto.entity.user +package cn.kzoj.dto.user import kotlinx.serialization.Serializable diff --git a/judge/src/main/kotlin/cn/kzoj/judge/JudgeDispatcher.kt b/judge/src/main/kotlin/cn/kzoj/judge/JudgeDispatcher.kt index 66a31e6..92b4291 100644 --- a/judge/src/main/kotlin/cn/kzoj/judge/JudgeDispatcher.kt +++ b/judge/src/main/kotlin/cn/kzoj/judge/JudgeDispatcher.kt @@ -1,12 +1,12 @@ package cn.kzoj.judge -import cn.kzoj.dto.entity.judge.JudgeStatus +import cn.kzoj.dto.judge.JudgeStatus import cn.kzoj.persistence.ProblemCaseService -import cn.kzoj.dto.entity.judge.JudgeRequest -import cn.kzoj.dto.entity.judge.SubmitRequest -import cn.kzoj.dto.entity.judge.JudgeResult -import cn.kzoj.dto.entity.problemcase.ProblemCase -import cn.kzoj.dto.entity.judge.SubmitReceipt +import cn.kzoj.dto.judge.JudgeRequest +import cn.kzoj.dto.judge.SubmitRequest +import cn.kzoj.dto.judge.JudgeResult +import cn.kzoj.dto.problemcase.ProblemCase +import cn.kzoj.dto.judge.SubmitReceipt import cn.kzoj.dto.exception.judge.JudgeIdNotFoundException import io.ktor.util.logging.KtorSimpleLogger import kotlinx.coroutines.delay diff --git a/judge/src/main/kotlin/cn/kzoj/judge/SandboxRun.kt b/judge/src/main/kotlin/cn/kzoj/judge/SandboxRun.kt index da385ec..7f78402 100644 --- a/judge/src/main/kotlin/cn/kzoj/judge/SandboxRun.kt +++ b/judge/src/main/kotlin/cn/kzoj/judge/SandboxRun.kt @@ -2,8 +2,13 @@ package cn.kzoj.judge import cn.kzoj.common.sandbox.LanguageConfig import cn.kzoj.common.sandbox.SandboxConfig -import cn.kzoj.dto.entity.gojudge.* -import cn.kzoj.dto.entity.judge.JudgeRequest +import cn.kzoj.dto.gojudge.CopyIn +import cn.kzoj.dto.gojudge.File +import cn.kzoj.dto.gojudge.GoJudgeCommand +import cn.kzoj.dto.gojudge.GoJudgeRequest +import cn.kzoj.dto.gojudge.GoJudgeResult +import cn.kzoj.dto.gojudge.Status +import cn.kzoj.dto.judge.JudgeRequest import io.ktor.client.* import io.ktor.client.call.* import io.ktor.client.plugins.contentnegotiation.* diff --git a/persistence/src/main/kotlin/cn/kzoj/persistence/ProblemCaseService.kt b/persistence/src/main/kotlin/cn/kzoj/persistence/ProblemCaseService.kt index 01d9b19..ebbc1b7 100644 --- a/persistence/src/main/kotlin/cn/kzoj/persistence/ProblemCaseService.kt +++ b/persistence/src/main/kotlin/cn/kzoj/persistence/ProblemCaseService.kt @@ -1,7 +1,7 @@ package cn.kzoj.persistence -import cn.kzoj.dto.entity.problemcase.ProblemCase -import cn.kzoj.persistence.database.problemcase.ProblemCaseDAO +import cn.kzoj.dto.problemcase.ProblemCase +import cn.kzoj.persistence.database.problemcase.ProblemCaseEntity import cn.kzoj.persistence.database.problemcase.ProblemCaseTable import cn.kzoj.persistence.database.problemcase.expose import cn.kzoj.persistence.minio.problemcase.getProblemCaseObject @@ -16,7 +16,7 @@ class ProblemCaseService( ) { suspend fun getProblemCaseList(problemId: Int): List = newSuspendedTransaction(context=Dispatchers.Default, db=database) { - ProblemCaseDAO.find { ProblemCaseTable.problemId eq problemId }.toList().let { + ProblemCaseEntity.find { ProblemCaseTable.problemId eq problemId }.toList().let { val problemCaseArrayList: ArrayList = arrayListOf() it.forEach { problemCaseArrayList.add(it.expose()) } problemCaseArrayList.toList() diff --git a/persistence/src/main/kotlin/cn/kzoj/persistence/ProblemService.kt b/persistence/src/main/kotlin/cn/kzoj/persistence/ProblemService.kt index d74ab61..486cab4 100644 --- a/persistence/src/main/kotlin/cn/kzoj/persistence/ProblemService.kt +++ b/persistence/src/main/kotlin/cn/kzoj/persistence/ProblemService.kt @@ -3,8 +3,8 @@ package cn.kzoj.persistence import cn.kzoj.dto.exception.problem.ProblemIdNotFoundException import cn.kzoj.dto.exception.problem.ProblemPageIndexOutOfRangeException import cn.kzoj.dto.exception.problem.ProblemTitleNotFoundException -import cn.kzoj.dto.entity.problem.Problem -import cn.kzoj.persistence.database.problem.ProblemDAO +import cn.kzoj.dto.problem.Problem +import cn.kzoj.persistence.database.problem.ProblemEntity import cn.kzoj.persistence.database.problem.ProblemTable import cn.kzoj.persistence.database.problem.expose import kotlinx.coroutines.Dispatchers @@ -17,7 +17,7 @@ class ProblemService( ) { suspend fun createProblem(newProblem: Problem): Int = newSuspendedTransaction(context=Dispatchers.Default, db=database) { - ProblemDAO.new { + ProblemEntity.new { title = newProblem.title author = newProblem.author createdByUser = newProblem.createdByUser @@ -40,7 +40,7 @@ class ProblemService( suspend fun deleteProblem(id: Int) { newSuspendedTransaction(context = Dispatchers.Default, db = database) { - ProblemDAO.findById(id).let { + ProblemEntity.findById(id).let { if (it == null) { throw ProblemIdNotFoundException() } @@ -53,7 +53,7 @@ class ProblemService( @Suppress("DuplicatedCode") suspend fun updateProblem(newProblem: Problem) { newSuspendedTransaction(context=Dispatchers.Default, db=database) { - ProblemDAO.findByIdAndUpdate(newProblem.id!!) { + ProblemEntity.findByIdAndUpdate(newProblem.id!!) { it.title = newProblem.title it.author = newProblem.author it.description = newProblem.description @@ -79,7 +79,7 @@ class ProblemService( suspend fun queryProblemById(id: Int): Problem = newSuspendedTransaction(context=Dispatchers.Default, db=database) { - ProblemDAO.findById(id).let { + ProblemEntity.findById(id).let { if (it == null) { throw ProblemIdNotFoundException() } @@ -90,7 +90,7 @@ class ProblemService( suspend fun queryProblemByTitle(title: String): List = newSuspendedTransaction(context=Dispatchers.Default, db=database) { - ProblemDAO.find { ProblemTable.title like "%$title%" }.also { + ProblemEntity.find { ProblemTable.title like "%$title%" }.also { if (it.empty()) { throw ProblemTitleNotFoundException() } @@ -99,13 +99,13 @@ class ProblemService( suspend fun queryProblemTotality(): Long = newSuspendedTransaction(context=Dispatchers.Default, db=database) { - ProblemDAO.all().count() + ProblemEntity.all().count() } // TODO: 增加orderedBy参数及对应功能 suspend fun queryProblemByPage(pageIndex: Int, pageSize: Int = 20, isAscending: Boolean = true): List = newSuspendedTransaction(context=Dispatchers.Default, db=database) { - ProblemDAO.all().run { + ProblemEntity.all().run { if (isAscending) { sortedBy { it.id } } else { diff --git a/persistence/src/main/kotlin/cn/kzoj/persistence/UserService.kt b/persistence/src/main/kotlin/cn/kzoj/persistence/UserService.kt index 71c4c54..d1cc556 100644 --- a/persistence/src/main/kotlin/cn/kzoj/persistence/UserService.kt +++ b/persistence/src/main/kotlin/cn/kzoj/persistence/UserService.kt @@ -3,8 +3,8 @@ package cn.kzoj.persistence import cn.kzoj.dto.exception.user.UserIdNotFoundException import cn.kzoj.dto.exception.user.UsernameDuplicatedException import cn.kzoj.dto.exception.user.UsernameNotFoundException -import cn.kzoj.dto.entity.user.User -import cn.kzoj.persistence.database.user.UserDAO +import cn.kzoj.dto.user.User +import cn.kzoj.persistence.database.user.UserEntity import cn.kzoj.persistence.database.user.UserTable import cn.kzoj.persistence.database.user.expose import cn.kzoj.persistence.database.user.exposeWithoutPasswd @@ -32,7 +32,7 @@ class UserService( suspend fun createUser(newUser: User) = try { newSuspendedTransaction(context = Dispatchers.Default, db = database) { - UserDAO.new { + UserEntity.new { username = newUser.username encryptedPassword = newUser.plainPassword!! // TODO:加密 school = newUser.school @@ -59,7 +59,7 @@ class UserService( */ suspend fun queryUserByUUID(uuid: String): User = newSuspendedTransaction(context=Dispatchers.Default, db=database) { - UserDAO.findById(UUID.fromString(uuid)).let { + UserEntity.findById(UUID.fromString(uuid)).let { if (it == null) { throw UserIdNotFoundException() } @@ -75,7 +75,7 @@ class UserService( suspend fun updateUser(newUser: User) { try { newSuspendedTransaction(context=Dispatchers.Default, db=database) { - UserDAO.findByIdAndUpdate(UUID.fromString(newUser.uuid)) { + UserEntity.findByIdAndUpdate(UUID.fromString(newUser.uuid)) { it.username = newUser.username it.encryptedPassword = newUser.plainPassword!! // TODO:加密 it.school = newUser.school @@ -98,7 +98,7 @@ class UserService( */ suspend fun deleteUser(userId: String) { newSuspendedTransaction(context=Dispatchers.Default, db=database) { - UserDAO.findById(UUID.fromString(userId)).let { + UserEntity.findById(UUID.fromString(userId)).let { if (it == null) { throw UserIdNotFoundException() } @@ -113,7 +113,7 @@ class UserService( */ suspend fun validate(username: String, password: String): String? = newSuspendedTransaction(context=Dispatchers.Default, db=database) { - UserDAO.find { + UserEntity.find { UserTable.username eq username }.let { if (it.empty()) { @@ -144,7 +144,7 @@ class UserService( avatarFileInputStream.close() newSuspendedTransaction(context=Dispatchers.Default, db=database) { - UserDAO.findByIdAndUpdate(UUID.fromString(userId)) { + UserEntity.findByIdAndUpdate(UUID.fromString(userId)) { it.avatarHashIndex = avatarHashIndex } } diff --git a/persistence/src/main/kotlin/cn/kzoj/persistence/database/problem/ProblemDAO.kt b/persistence/src/main/kotlin/cn/kzoj/persistence/database/problem/ProblemEntity.kt similarity index 89% rename from persistence/src/main/kotlin/cn/kzoj/persistence/database/problem/ProblemDAO.kt rename to persistence/src/main/kotlin/cn/kzoj/persistence/database/problem/ProblemEntity.kt index f434b9d..bc58732 100644 --- a/persistence/src/main/kotlin/cn/kzoj/persistence/database/problem/ProblemDAO.kt +++ b/persistence/src/main/kotlin/cn/kzoj/persistence/database/problem/ProblemEntity.kt @@ -1,12 +1,12 @@ package cn.kzoj.persistence.database.problem -import cn.kzoj.dto.entity.problem.Problem +import cn.kzoj.dto.problem.Problem import org.jetbrains.exposed.dao.IntEntity import org.jetbrains.exposed.dao.IntEntityClass import org.jetbrains.exposed.dao.id.EntityID -class ProblemDAO(id: EntityID) : IntEntity(id) { - companion object: IntEntityClass(ProblemTable) +class ProblemEntity(id: EntityID) : IntEntity(id) { + companion object: IntEntityClass(ProblemTable) var title by ProblemTable.title var author by ProblemTable.author @@ -27,7 +27,7 @@ class ProblemDAO(id: EntityID) : IntEntity(id) { var utcLastModified by ProblemTable.utcLastModified } -fun ProblemDAO.expose(): Problem = +fun ProblemEntity.expose(): Problem = Problem( id = this.id.value, title = this.title, @@ -49,7 +49,7 @@ fun ProblemDAO.expose(): Problem = utcLastModified = this.utcLastModified, ) -fun List.expose(): List = +fun List.expose(): List = let { val problemArrayList: ArrayList = arrayListOf() it.forEach { problemArrayList.add(it.expose()) } diff --git a/persistence/src/main/kotlin/cn/kzoj/persistence/database/problemcase/ProblemCaseDAO.kt b/persistence/src/main/kotlin/cn/kzoj/persistence/database/problemcase/ProblemCaseEntity.kt similarity index 71% rename from persistence/src/main/kotlin/cn/kzoj/persistence/database/problemcase/ProblemCaseDAO.kt rename to persistence/src/main/kotlin/cn/kzoj/persistence/database/problemcase/ProblemCaseEntity.kt index e97c2fd..2011177 100644 --- a/persistence/src/main/kotlin/cn/kzoj/persistence/database/problemcase/ProblemCaseDAO.kt +++ b/persistence/src/main/kotlin/cn/kzoj/persistence/database/problemcase/ProblemCaseEntity.kt @@ -1,12 +1,12 @@ package cn.kzoj.persistence.database.problemcase -import cn.kzoj.dto.entity.problemcase.ProblemCase +import cn.kzoj.dto.problemcase.ProblemCase import org.jetbrains.exposed.dao.IntEntity import org.jetbrains.exposed.dao.IntEntityClass import org.jetbrains.exposed.dao.id.EntityID -class ProblemCaseDAO(id: EntityID) : IntEntity(id) { - companion object: IntEntityClass(ProblemCaseTable) +class ProblemCaseEntity(id: EntityID) : IntEntity(id) { + companion object: IntEntityClass(ProblemCaseTable) var problemId by ProblemCaseTable.problemId var caseInFile by ProblemCaseTable.caseInFile @@ -14,7 +14,7 @@ class ProblemCaseDAO(id: EntityID) : IntEntity(id) { var score by ProblemCaseTable.score } -fun ProblemCaseDAO.expose(): ProblemCase = +fun ProblemCaseEntity.expose(): ProblemCase = ProblemCase( problemId = this.problemId, caseInFile = this.caseInFile, diff --git a/persistence/src/main/kotlin/cn/kzoj/persistence/database/user/UserDAO.kt b/persistence/src/main/kotlin/cn/kzoj/persistence/database/user/UserEntity.kt similarity index 88% rename from persistence/src/main/kotlin/cn/kzoj/persistence/database/user/UserDAO.kt rename to persistence/src/main/kotlin/cn/kzoj/persistence/database/user/UserEntity.kt index 545fd9c..e5778f0 100644 --- a/persistence/src/main/kotlin/cn/kzoj/persistence/database/user/UserDAO.kt +++ b/persistence/src/main/kotlin/cn/kzoj/persistence/database/user/UserEntity.kt @@ -1,13 +1,13 @@ package cn.kzoj.persistence.database.user -import cn.kzoj.dto.entity.user.User +import cn.kzoj.dto.user.User import org.jetbrains.exposed.dao.UUIDEntity import org.jetbrains.exposed.dao.UUIDEntityClass import org.jetbrains.exposed.dao.id.EntityID import java.util.UUID -class UserDAO(uuid: EntityID) : UUIDEntity(uuid) { - companion object: UUIDEntityClass(UserTable) +class UserEntity(uuid: EntityID) : UUIDEntity(uuid) { + companion object: UUIDEntityClass(UserTable) var username by UserTable.username var encryptedPassword by UserTable.encryptedPassword @@ -23,7 +23,7 @@ class UserDAO(uuid: EntityID) : UUIDEntity(uuid) { var utcUpdated by UserTable.utcUpdated } -fun UserDAO.expose(): User = +fun UserEntity.expose(): User = User( uuid = this.id.value.toString(), username = this.username, @@ -39,7 +39,7 @@ fun UserDAO.expose(): User = utcUpdated = this.utcUpdated ) -fun UserDAO.exposeWithoutPasswd(): User = +fun UserEntity.exposeWithoutPasswd(): User = User( uuid = this.id.value.toString(), username = this.username, diff --git a/persistence/src/main/kotlin/cn/kzoj/persistence/database/user/UserTable.kt b/persistence/src/main/kotlin/cn/kzoj/persistence/database/user/UserTable.kt index a231173..956c6d6 100644 --- a/persistence/src/main/kotlin/cn/kzoj/persistence/database/user/UserTable.kt +++ b/persistence/src/main/kotlin/cn/kzoj/persistence/database/user/UserTable.kt @@ -1,6 +1,6 @@ package cn.kzoj.persistence.database.user -import cn.kzoj.dto.entity.user.UserAuthority +import cn.kzoj.dto.user.UserAuthority import kotlinx.datetime.Instant import org.jetbrains.exposed.dao.id.UUIDTable import org.jetbrains.exposed.sql.Column