├── LICENSE ├── README-EN.md ├── README.md ├── docs ├── .gitignore ├── docs │ ├── .vuepress │ │ ├── config.js │ │ └── public │ │ │ ├── 00a0438a576d43edbab676b829a38922.png │ │ │ ├── 00cd359b634e4483a33f26b10c32e4f6.png │ │ │ ├── 04264e545b034296b5a9f130b85dc985.png │ │ │ ├── 0ee61f329e094592b0a0cff55d12b404.png │ │ │ ├── 1e9fa6d4f446425c9213adb2027c77b0.png │ │ │ ├── 20210509233845230.png │ │ │ ├── 20210513134216723.png │ │ │ ├── 20210513142826730.png │ │ │ ├── 20210523221321418.png │ │ │ ├── 20210523222914722 (1).png │ │ │ ├── 20210523222914722.png │ │ │ ├── 20210523223042100 (1).png │ │ │ ├── 20210523223042100.png │ │ │ ├── 20210609213021223.png │ │ │ ├── 20210614144409579.png │ │ │ ├── 20210614144542595.png │ │ │ ├── 2a8354a553d547d786e37d41050d3b95.png │ │ │ ├── 2c05e44f5a464381b9a357aff37b0086.png │ │ │ ├── 2f502aac27ed406f9b0bb3385879b148 (1).png │ │ │ ├── 2f502aac27ed406f9b0bb3385879b148.png │ │ │ ├── 338bf9db257844a1b32a4ff54c6528f6.png │ │ │ ├── 407ad16361f34b44a282b07af68825e0.png │ │ │ ├── 4dfdcb2461c742f1b3717a8a27c3598a.png │ │ │ ├── 50026bde6dd64cd5929b38f8ecc6e72e.png │ │ │ ├── 513e7e37f52f48518c2fa1bf14eeea99.png │ │ │ ├── 5304425397f249808b7ea0ea2a0153cc (1).png │ │ │ ├── 5304425397f249808b7ea0ea2a0153cc.png │ │ │ ├── 58ac74824fcf4963810beea7ba1203b9.png │ │ │ ├── 6272d213a07746f8a10a791105a45385.png │ │ │ ├── 66820e0888064a64b7f091ea60cb64b5.png │ │ │ ├── 67f6262854bb44efa70c374f1f156166.png │ │ │ ├── 6af22926b39149bd8a1314d60b3deb00.png │ │ │ ├── 6b0404229b894d01aa98ee43bbb4d034.png │ │ │ ├── 6fcdb9f6895043498cb9d4bbadeb0a5b.png │ │ │ ├── 7409e6b5def6438385ddd59589afeb83.png │ │ │ ├── 750af961bd6f4e53be21037944d092ff.png │ │ │ ├── 7988504326c843ef94e937a2b4f32f03.png │ │ │ ├── 7d3e99dbc6fe4739a0720fcc019b2b6e.png │ │ │ ├── 85647edc236f41ca8b9ab5b8088a7ec1.png │ │ │ ├── 8646fc212b5c47e9b35e60634cfc8d6a.png │ │ │ ├── 8f2c0007609d41258683dd99bb79a5b4.png │ │ │ ├── 8f8258babd3f43f78802144e7ecf18fe.png │ │ │ ├── 971566eeac674d388b9f5d6064286e14.png │ │ │ ├── 9a936ad86ff2439a9e1188c286cfd751.png │ │ │ ├── 9b9674c0f30a441bb200a32756f24d2c.png │ │ │ ├── 9f01f31f11f849f998530ee967befee8.png │ │ │ ├── 9f872dc1974f45c389e084f0e31a5217.png │ │ │ ├── a1a83ff01be84406954537e2ab78d999.png │ │ │ ├── ad4851c069674b30af08f187363906c4.png │ │ │ ├── b2e1edf697494ed68c760beb63b782bf.png │ │ │ ├── b366a6a628984995b57a49c565a2ec47.png │ │ │ ├── c1b462bbc01b433e9fc8cd4a641077e8.png │ │ │ ├── c50140e3b73d482d82ca6f13f47aa080.png │ │ │ ├── c50314e739ff4c38b6fbd41b9db674dc.png │ │ │ ├── c7b3648217af4899bedf7f7d804968ba.png │ │ │ ├── da52c1fe08e34be6be79fbe5c2b758d2.png │ │ │ ├── default_judge.png │ │ │ ├── e279d10f27034767aba7a6fe81c605af.png │ │ │ ├── e6f17df56f26488c895944713a80e9ed.png │ │ │ ├── ecdd9ce03251440d9204bc728ef4d66b.png │ │ │ ├── f059e38d31c44906b35ad4ff0d488013.png │ │ │ ├── f4f4a8bbe15e4ef1aa766524eaa6fbeb.png │ │ │ ├── f6792ddc05f34527bdf744fa4d6d5c88.png │ │ │ ├── f7207bbef5f64aa5b313de27615a48c7.png │ │ │ ├── favicon.ico │ │ │ ├── fb85cffa62e04b2cac3f40af3b5ac0d7.png │ │ │ ├── fe1cf4b8c0174933b8ffc8f17a486b53.png │ │ │ ├── interactive_judge.png │ │ │ ├── judge_dispatch.png │ │ │ ├── logo.png │ │ │ ├── nacos_pwd.png │ │ │ ├── remote_judge.png │ │ │ ├── sandbox_error.webp │ │ │ ├── scrollBoard_create.png │ │ │ ├── scrollBoard_show.png │ │ │ ├── scrollBoard_start.png │ │ │ ├── setting_init.png │ │ │ ├── setting_switch.png │ │ │ ├── spj_judge.png │ │ │ ├── startup_error.png │ │ │ ├── sys_architecture.png │ │ │ └── wxpay.png │ ├── README.md │ ├── deploy │ │ ├── docker.md │ │ ├── env.md │ │ ├── faq.md │ │ ├── how-to-backup.md │ │ ├── multi-judgeserver.md │ │ ├── open-https.md │ │ ├── setting.md │ │ └── update.md │ ├── develop │ │ ├── backend.md │ │ ├── db.md │ │ ├── judge_dispatcher.md │ │ └── sandbox.md │ ├── introducition │ │ ├── README.md │ │ └── architecture.md │ ├── monomer │ │ ├── backend.md │ │ ├── frontend.md │ │ ├── judgeserver.md │ │ ├── mysql-checker.md │ │ ├── mysql.md │ │ ├── nacos.md │ │ ├── redis.md │ │ └── rsync.md │ └── use │ │ ├── admin-user.md │ │ ├── cancel-judge.md │ │ ├── close-free-cdn.md │ │ ├── contest.md │ │ ├── custom-difficulty.md │ │ ├── discussion-admin.md │ │ ├── group.md │ │ ├── import-problem.md │ │ ├── import-user.md │ │ ├── judge-case-mode.md │ │ ├── judge-mode.md │ │ ├── notice-announcement.md │ │ ├── scroll-board.md │ │ ├── testcase.md │ │ ├── training.md │ │ └── update-fe.md ├── package-lock.json ├── package.json └── yarn.lock ├── hoj-scrollBoard ├── README.md ├── bootstrap │ ├── css │ │ ├── bootstrap-theme.css │ │ ├── bootstrap-theme.css.map │ │ ├── bootstrap-theme.min.css │ │ ├── bootstrap.css │ │ ├── bootstrap.css.map │ │ └── bootstrap.min.css │ ├── fonts │ │ ├── glyphicons-halflings-regular.eot │ │ ├── glyphicons-halflings-regular.svg │ │ ├── glyphicons-halflings-regular.ttf │ │ ├── glyphicons-halflings-regular.woff │ │ └── glyphicons-halflings-regular.woff2 │ └── js │ │ ├── bootstrap.js │ │ ├── bootstrap.min.js │ │ └── npm.js ├── css │ ├── loading.css │ └── scrollboard.css ├── index.html └── js │ ├── jquery.min.js │ └── scrollboard.js ├── hoj-springboot ├── .gitignore ├── DataBackup │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ ├── com │ │ │ │ └── alibaba │ │ │ │ │ └── druid │ │ │ │ │ └── pool │ │ │ │ │ └── DruidAbstractDataSource.java │ │ │ └── top │ │ │ │ └── hcode │ │ │ │ └── hoj │ │ │ │ ├── DataBackupApplication.java │ │ │ │ ├── advice │ │ │ │ └── GlobalExceptionAdvice.java │ │ │ │ ├── annotation │ │ │ │ ├── AnonApi.java │ │ │ │ ├── HOJAccess.java │ │ │ │ └── HOJAccessEnum.java │ │ │ │ ├── common │ │ │ │ ├── exception │ │ │ │ │ ├── StatusAccessDeniedException.java │ │ │ │ │ ├── StatusFailException.java │ │ │ │ │ ├── StatusForbiddenException.java │ │ │ │ │ ├── StatusNotFoundException.java │ │ │ │ │ └── StatusSystemErrorException.java │ │ │ │ └── result │ │ │ │ │ ├── CommonResult.java │ │ │ │ │ └── ResultStatus.java │ │ │ │ ├── config │ │ │ │ ├── AsyncTaskConfig.java │ │ │ │ ├── CheckLanguageConfig.java │ │ │ │ ├── DataSourceConfigure.java │ │ │ │ ├── DruidConfigure.java │ │ │ │ ├── JedisPoolConfigure.java │ │ │ │ ├── JudgeAsyncTaskConfig.java │ │ │ │ ├── MyMetaObjectConfig.java │ │ │ │ ├── MybatisPlusConfig.java │ │ │ │ ├── NacosSwitchConfig.java │ │ │ │ ├── RedisAutoConfig.java │ │ │ │ ├── RedisConfig.java │ │ │ │ ├── RestTemplateConfig.java │ │ │ │ ├── ShiroConfig.java │ │ │ │ ├── StartupRunner.java │ │ │ │ ├── SwaggerConfig.java │ │ │ │ ├── SwitchConfig.java │ │ │ │ ├── TomcatConfig.java │ │ │ │ ├── WebConfig.java │ │ │ │ └── WebMvcConfig.java │ │ │ │ ├── controller │ │ │ │ ├── admin │ │ │ │ │ ├── AdminAccountController.java │ │ │ │ │ ├── AdminContestController.java │ │ │ │ │ ├── AdminDiscussionController.java │ │ │ │ │ ├── AdminGroupProblemController.java │ │ │ │ │ ├── AdminJudgeController.java │ │ │ │ │ ├── AdminProblemController.java │ │ │ │ │ ├── AdminTagController.java │ │ │ │ │ ├── AdminTrainingCategoryController.java │ │ │ │ │ ├── AdminTrainingController.java │ │ │ │ │ ├── AdminUserController.java │ │ │ │ │ ├── AnnouncementController.java │ │ │ │ │ ├── ConfigController.java │ │ │ │ │ ├── DashboardController.java │ │ │ │ │ └── SwitchController.java │ │ │ │ ├── file │ │ │ │ │ ├── ContestFileController.java │ │ │ │ │ ├── ImageController.java │ │ │ │ │ ├── ImportFpsProblemController.java │ │ │ │ │ ├── ImportHydroProblemController.java │ │ │ │ │ ├── ImportQDUOJProblemController.java │ │ │ │ │ ├── MarkDownFileController.java │ │ │ │ │ ├── ProblemFileController.java │ │ │ │ │ ├── TestCaseController.java │ │ │ │ │ └── UserFileController.java │ │ │ │ ├── group │ │ │ │ │ ├── GroupAnnouncementController.java │ │ │ │ │ ├── GroupContestController.java │ │ │ │ │ ├── GroupController.java │ │ │ │ │ ├── GroupDiscussionController.java │ │ │ │ │ ├── GroupMemberController.java │ │ │ │ │ ├── GroupProblemController.java │ │ │ │ │ ├── GroupRankController.java │ │ │ │ │ └── GroupTrainingController.java │ │ │ │ ├── msg │ │ │ │ │ ├── AdminNoticeController.java │ │ │ │ │ ├── NoticeController.java │ │ │ │ │ └── UserMessageController.java │ │ │ │ └── oj │ │ │ │ │ ├── AccountController.java │ │ │ │ │ ├── CommentController.java │ │ │ │ │ ├── CommonController.java │ │ │ │ │ ├── ContestAdminController.java │ │ │ │ │ ├── ContestController.java │ │ │ │ │ ├── ContestScoreboardController.java │ │ │ │ │ ├── ContestScrollBoardController.java │ │ │ │ │ ├── DiscussionController.java │ │ │ │ │ ├── HomeController.java │ │ │ │ │ ├── JudgeController.java │ │ │ │ │ ├── PassportController.java │ │ │ │ │ ├── ProblemController.java │ │ │ │ │ ├── RankController.java │ │ │ │ │ └── TrainingController.java │ │ │ │ ├── crawler │ │ │ │ ├── language │ │ │ │ │ ├── AtCoderLanguageStrategy.java │ │ │ │ │ ├── LanguageContext.java │ │ │ │ │ ├── LanguageStrategy.java │ │ │ │ │ └── SPOJLanguageStrategy.java │ │ │ │ └── problem │ │ │ │ │ ├── AtCoderProblemStrategy.java │ │ │ │ │ ├── CFProblemStrategy.java │ │ │ │ │ ├── GYMProblemStrategy.java │ │ │ │ │ ├── HDUProblemStrategy.java │ │ │ │ │ ├── LibreProblemStrategy.java │ │ │ │ │ ├── POJProblemStrategy.java │ │ │ │ │ ├── ProblemContext.java │ │ │ │ │ ├── ProblemStrategy.java │ │ │ │ │ └── SPOJProblemStrategy.java │ │ │ │ ├── dao │ │ │ │ ├── common │ │ │ │ │ ├── AnnouncementEntityService.java │ │ │ │ │ ├── FileEntityService.java │ │ │ │ │ └── impl │ │ │ │ │ │ ├── AnnouncementEntityServiceImpl.java │ │ │ │ │ │ └── FileEntityEntityServiceImpl.java │ │ │ │ ├── contest │ │ │ │ │ ├── ContestAnnouncementEntityService.java │ │ │ │ │ ├── ContestEntityService.java │ │ │ │ │ ├── ContestExplanationEntityService.java │ │ │ │ │ ├── ContestPrintEntityService.java │ │ │ │ │ ├── ContestProblemEntityService.java │ │ │ │ │ ├── ContestRecordEntityService.java │ │ │ │ │ ├── ContestRegisterEntityService.java │ │ │ │ │ ├── ContestScoreEntityService.java │ │ │ │ │ └── impl │ │ │ │ │ │ ├── ContestAnnouncementEntityServiceImpl.java │ │ │ │ │ │ ├── ContestEntityServiceImpl.java │ │ │ │ │ │ ├── ContestExplanationEntityServiceImpl.java │ │ │ │ │ │ ├── ContestPrintEntityServiceImpl.java │ │ │ │ │ │ ├── ContestProblemEntityServiceImpl.java │ │ │ │ │ │ ├── ContestRecordEntityServiceImpl.java │ │ │ │ │ │ ├── ContestRegisterEntityServiceImpl.java │ │ │ │ │ │ └── ContestScoreEntityServiceImpl.java │ │ │ │ ├── discussion │ │ │ │ │ ├── CommentEntityService.java │ │ │ │ │ ├── CommentLikeEntityService.java │ │ │ │ │ ├── DiscussionEntityService.java │ │ │ │ │ ├── DiscussionLikeEntityService.java │ │ │ │ │ ├── DiscussionReportEntityService.java │ │ │ │ │ ├── ReplyEntityService.java │ │ │ │ │ └── impl │ │ │ │ │ │ ├── CommentEntityServiceImpl.java │ │ │ │ │ │ ├── CommentLikeEntityServiceImpl.java │ │ │ │ │ │ ├── DiscussionEntityServiceImpl.java │ │ │ │ │ │ ├── DiscussionLikeEntityServiceImpl.java │ │ │ │ │ │ ├── DiscussionReportEntityServiceImpl.java │ │ │ │ │ │ └── ReplyEntityServiceImpl.java │ │ │ │ ├── group │ │ │ │ │ ├── GroupAnnouncementEntityService.java │ │ │ │ │ ├── GroupContestEntityService.java │ │ │ │ │ ├── GroupDiscussionEntityService.java │ │ │ │ │ ├── GroupEntityService.java │ │ │ │ │ ├── GroupMemberEntityService.java │ │ │ │ │ ├── GroupProblemEntityService.java │ │ │ │ │ ├── GroupTrainingEntityService.java │ │ │ │ │ └── impl │ │ │ │ │ │ ├── GroupAnnouncementEntityServiceImpl.java │ │ │ │ │ │ ├── GroupContestEntityServiceImpl.java │ │ │ │ │ │ ├── GroupDiscussionEntityServiceImpl.java │ │ │ │ │ │ ├── GroupEntityServiceImpl.java │ │ │ │ │ │ ├── GroupMemberEntityServiceImpl.java │ │ │ │ │ │ ├── GroupProblemEntityServiceImpl.java │ │ │ │ │ │ └── GroupTrainingEntityServiceImpl.java │ │ │ │ ├── judge │ │ │ │ │ ├── JudgeCaseEntityService.java │ │ │ │ │ ├── JudgeEntityService.java │ │ │ │ │ ├── JudgeServerEntityService.java │ │ │ │ │ ├── RemoteJudgeAccountEntityService.java │ │ │ │ │ └── impl │ │ │ │ │ │ ├── JudgeCaseEntityServiceImpl.java │ │ │ │ │ │ ├── JudgeEntityServiceImpl.java │ │ │ │ │ │ ├── JudgeServerEntityServiceImpl.java │ │ │ │ │ │ └── RemoteJudgeAccountEntityServiceImpl.java │ │ │ │ ├── msg │ │ │ │ │ ├── AdminSysNoticeEntityService.java │ │ │ │ │ ├── MsgRemindEntityService.java │ │ │ │ │ ├── UserSysNoticeEntityService.java │ │ │ │ │ └── impl │ │ │ │ │ │ ├── AdminSysNoticeEntityServiceImpl.java │ │ │ │ │ │ ├── MsgRemindEntityServiceImpl.java │ │ │ │ │ │ └── UserSysNoticeEntityServiceImpl.java │ │ │ │ ├── problem │ │ │ │ │ ├── CategoryEntityService.java │ │ │ │ │ ├── CodeTemplateEntityService.java │ │ │ │ │ ├── LanguageEntityService.java │ │ │ │ │ ├── ProblemCaseEntityService.java │ │ │ │ │ ├── ProblemCountEntityService.java │ │ │ │ │ ├── ProblemEntityService.java │ │ │ │ │ ├── ProblemLanguageEntityService.java │ │ │ │ │ ├── ProblemTagEntityService.java │ │ │ │ │ ├── TagClassificationEntityService.java │ │ │ │ │ ├── TagEntityService.java │ │ │ │ │ └── impl │ │ │ │ │ │ ├── CategoryEntityServiceImpl.java │ │ │ │ │ │ ├── CodeTemplateEntityServiceImpl.java │ │ │ │ │ │ ├── LanguageEntityServiceImpl.java │ │ │ │ │ │ ├── ProblemCaseEntityServiceImpl.java │ │ │ │ │ │ ├── ProblemCountServiceImpl.java │ │ │ │ │ │ ├── ProblemEntityServiceImpl.java │ │ │ │ │ │ ├── ProblemLanguageEntityServiceImpl.java │ │ │ │ │ │ ├── ProblemTagEntityServiceImpl.java │ │ │ │ │ │ ├── TagClassificationEntityServiceImpl.java │ │ │ │ │ │ └── TagEntityServiceImpl.java │ │ │ │ ├── training │ │ │ │ │ ├── MappingTrainingCategoryEntityService.java │ │ │ │ │ ├── TrainingCategoryEntityService.java │ │ │ │ │ ├── TrainingEntityService.java │ │ │ │ │ ├── TrainingProblemEntityService.java │ │ │ │ │ ├── TrainingRecordEntityService.java │ │ │ │ │ ├── TrainingRegisterEntityService.java │ │ │ │ │ └── impl │ │ │ │ │ │ ├── MappingTrainingCategoryEntityServiceImpl.java │ │ │ │ │ │ ├── TrainingCategoryEntityServiceImpl.java │ │ │ │ │ │ ├── TrainingEntityServiceImpl.java │ │ │ │ │ │ ├── TrainingProblemEntityServiceImpl.java │ │ │ │ │ │ ├── TrainingRecordEntityServiceImpl.java │ │ │ │ │ │ └── TrainingRegisterEntityServiceImpl.java │ │ │ │ └── user │ │ │ │ │ ├── AuthEntityService.java │ │ │ │ │ ├── RoleAuthEntityService.java │ │ │ │ │ ├── RoleEntityService.java │ │ │ │ │ ├── SessionEntityService.java │ │ │ │ │ ├── UserAcproblemEntityService.java │ │ │ │ │ ├── UserInfoEntityService.java │ │ │ │ │ ├── UserRecordEntityService.java │ │ │ │ │ ├── UserRoleEntityService.java │ │ │ │ │ └── impl │ │ │ │ │ ├── AuthEntityServiceImpl.java │ │ │ │ │ ├── RoleAuthEntityServiceImpl.java │ │ │ │ │ ├── RoleEntityServiceImpl.java │ │ │ │ │ ├── SessionEntityServiceImpl.java │ │ │ │ │ ├── UserAcproblemEntityServiceImpl.java │ │ │ │ │ ├── UserInfoEntityServiceImpl.java │ │ │ │ │ ├── UserRecordEntityServiceImpl.java │ │ │ │ │ └── UserRoleEntityServiceImpl.java │ │ │ │ ├── exception │ │ │ │ ├── AccessException.java │ │ │ │ └── ProblemIDRepeatException.java │ │ │ │ ├── interceptor │ │ │ │ └── AccessInterceptor.java │ │ │ │ ├── judge │ │ │ │ ├── AbstractReceiver.java │ │ │ │ ├── ChooseUtils.java │ │ │ │ ├── Dispatcher.java │ │ │ │ ├── remote │ │ │ │ │ ├── RemoteJudgeDispatcher.java │ │ │ │ │ └── RemoteJudgeReceiver.java │ │ │ │ └── self │ │ │ │ │ ├── JudgeDispatcher.java │ │ │ │ │ └── JudgeReceiver.java │ │ │ │ ├── manager │ │ │ │ ├── admin │ │ │ │ │ ├── account │ │ │ │ │ │ └── AdminAccountManager.java │ │ │ │ │ ├── announcement │ │ │ │ │ │ └── AdminAnnouncementManager.java │ │ │ │ │ ├── contest │ │ │ │ │ │ ├── AdminContestAnnouncementManager.java │ │ │ │ │ │ ├── AdminContestManager.java │ │ │ │ │ │ └── AdminContestProblemManager.java │ │ │ │ │ ├── discussion │ │ │ │ │ │ └── AdminDiscussionManager.java │ │ │ │ │ ├── problem │ │ │ │ │ │ ├── AdminGroupProblemManager.java │ │ │ │ │ │ ├── AdminProblemManager.java │ │ │ │ │ │ └── RemoteProblemManager.java │ │ │ │ │ ├── rejudge │ │ │ │ │ │ └── RejudgeManager.java │ │ │ │ │ ├── system │ │ │ │ │ │ ├── ConfigManager.java │ │ │ │ │ │ └── DashboardManager.java │ │ │ │ │ ├── tag │ │ │ │ │ │ └── AdminTagManager.java │ │ │ │ │ ├── training │ │ │ │ │ │ ├── AdminTrainingCategoryManager.java │ │ │ │ │ │ ├── AdminTrainingManager.java │ │ │ │ │ │ ├── AdminTrainingProblemManager.java │ │ │ │ │ │ └── AdminTrainingRecordManager.java │ │ │ │ │ └── user │ │ │ │ │ │ └── AdminUserManager.java │ │ │ │ ├── email │ │ │ │ │ └── EmailManager.java │ │ │ │ ├── file │ │ │ │ │ ├── ContestFileManager.java │ │ │ │ │ ├── ImageManager.java │ │ │ │ │ ├── ImportFpsProblemManager.java │ │ │ │ │ ├── ImportHydroProblemManager.java │ │ │ │ │ ├── ImportQDUOJProblemManager.java │ │ │ │ │ ├── MarkDownFileManager.java │ │ │ │ │ ├── ProblemFileManager.java │ │ │ │ │ ├── TestCaseManager.java │ │ │ │ │ └── UserFileManager.java │ │ │ │ ├── group │ │ │ │ │ ├── GroupManager.java │ │ │ │ │ ├── GroupRankManager.java │ │ │ │ │ ├── announcement │ │ │ │ │ │ └── GroupAnnouncementManager.java │ │ │ │ │ ├── contest │ │ │ │ │ │ ├── GroupContestAnnouncementManager.java │ │ │ │ │ │ ├── GroupContestManager.java │ │ │ │ │ │ └── GroupContestProblemManager.java │ │ │ │ │ ├── discussion │ │ │ │ │ │ └── GroupDiscussionManager.java │ │ │ │ │ ├── member │ │ │ │ │ │ └── GroupMemberManager.java │ │ │ │ │ ├── problem │ │ │ │ │ │ └── GroupProblemManager.java │ │ │ │ │ └── training │ │ │ │ │ │ ├── GroupTrainingManager.java │ │ │ │ │ │ └── GroupTrainingProblemManager.java │ │ │ │ ├── msg │ │ │ │ │ ├── AdminNoticeManager.java │ │ │ │ │ ├── NoticeManager.java │ │ │ │ │ └── UserMessageManager.java │ │ │ │ └── oj │ │ │ │ │ ├── AccountManager.java │ │ │ │ │ ├── BeforeDispatchInitManager.java │ │ │ │ │ ├── CommentManager.java │ │ │ │ │ ├── CommonManager.java │ │ │ │ │ ├── ContestAdminManager.java │ │ │ │ │ ├── ContestCalculateRankManager.java │ │ │ │ │ ├── ContestManager.java │ │ │ │ │ ├── ContestRankManager.java │ │ │ │ │ ├── ContestScoreboardManager.java │ │ │ │ │ ├── ContestScrollBoardManager.java │ │ │ │ │ ├── DiscussionManager.java │ │ │ │ │ ├── HomeManager.java │ │ │ │ │ ├── JudgeManager.java │ │ │ │ │ ├── PassportManager.java │ │ │ │ │ ├── ProblemManager.java │ │ │ │ │ ├── RankManager.java │ │ │ │ │ └── TrainingManager.java │ │ │ │ ├── mapper │ │ │ │ ├── AdminSysNoticeMapper.java │ │ │ │ ├── AnnouncementMapper.java │ │ │ │ ├── AuthMapper.java │ │ │ │ ├── CategoryMapper.java │ │ │ │ ├── CodeTemplateMapper.java │ │ │ │ ├── CommentLikeMapper.java │ │ │ │ ├── CommentMapper.java │ │ │ │ ├── ContestAnnouncementMapper.java │ │ │ │ ├── ContestExplanationMapper.java │ │ │ │ ├── ContestMapper.java │ │ │ │ ├── ContestPrintMapper.java │ │ │ │ ├── ContestProblemMapper.java │ │ │ │ ├── ContestRecordMapper.java │ │ │ │ ├── ContestRegisterMapper.java │ │ │ │ ├── ContestScoreMapper.java │ │ │ │ ├── DiscussionLikeMapper.java │ │ │ │ ├── DiscussionMapper.java │ │ │ │ ├── DiscussionReportMapper.java │ │ │ │ ├── FileMapper.java │ │ │ │ ├── GroupAnnouncementMapper.java │ │ │ │ ├── GroupContestMapper.java │ │ │ │ ├── GroupDiscussionMapper.java │ │ │ │ ├── GroupMapper.java │ │ │ │ ├── GroupMemberMapper.java │ │ │ │ ├── GroupProblemMapper.java │ │ │ │ ├── GroupTrainingMapper.java │ │ │ │ ├── JudgeCaseMapper.java │ │ │ │ ├── JudgeMapper.java │ │ │ │ ├── JudgeServerMapper.java │ │ │ │ ├── LanguageMapper.java │ │ │ │ ├── MappingTrainingCategoryMapper.java │ │ │ │ ├── MsgRemindMapper.java │ │ │ │ ├── ProblemCaseMapper.java │ │ │ │ ├── ProblemCountMapper.java │ │ │ │ ├── ProblemLanguageMapper.java │ │ │ │ ├── ProblemMapper.java │ │ │ │ ├── ProblemTagMapper.java │ │ │ │ ├── RemoteJudgeAccountMapper.java │ │ │ │ ├── ReplyMapper.java │ │ │ │ ├── RoleAuthMapper.java │ │ │ │ ├── RoleMapper.java │ │ │ │ ├── SessionMapper.java │ │ │ │ ├── TagClassificationMapper.java │ │ │ │ ├── TagMapper.java │ │ │ │ ├── TrainingCategoryMapper.java │ │ │ │ ├── TrainingMapper.java │ │ │ │ ├── TrainingProblemMapper.java │ │ │ │ ├── TrainingRecordMapper.java │ │ │ │ ├── TrainingRegisterMapper.java │ │ │ │ ├── UserAcproblemMapper.java │ │ │ │ ├── UserInfoMapper.java │ │ │ │ ├── UserRecordMapper.java │ │ │ │ ├── UserRoleMapper.java │ │ │ │ ├── UserSysNoticeMapper.java │ │ │ │ └── xml │ │ │ │ │ ├── AdminSysNoticeMapper.xml │ │ │ │ │ ├── AnnouncementMapper.xml │ │ │ │ │ ├── CommentMapper.xml │ │ │ │ │ ├── ContestExplanationMapper.xml │ │ │ │ │ ├── ContestMapper.xml │ │ │ │ │ ├── ContestProblemMapper.xml │ │ │ │ │ ├── ContestRecordMapper.xml │ │ │ │ │ ├── ContestRegisterMapper.xml │ │ │ │ │ ├── ContestScoreMapper.xml │ │ │ │ │ ├── DiscussionMapper.xml │ │ │ │ │ ├── DiscussionReportMapper.xml │ │ │ │ │ ├── GroupAnnouncementMapper.xml │ │ │ │ │ ├── GroupContestMapper.xml │ │ │ │ │ ├── GroupDiscussionMapper.xml │ │ │ │ │ ├── GroupMapper.xml │ │ │ │ │ ├── GroupMemberMapper.xml │ │ │ │ │ ├── GroupProblemMapper.xml │ │ │ │ │ ├── GroupTrainingMapper.xml │ │ │ │ │ ├── JudgeMapper.xml │ │ │ │ │ ├── MsgRemindMapper.xml │ │ │ │ │ ├── ProblemCountMapper.xml │ │ │ │ │ ├── ProblemMapper.xml │ │ │ │ │ ├── ReplyMapper.xml │ │ │ │ │ ├── RoleAuthMapper.xml │ │ │ │ │ ├── RoleMapper.xml │ │ │ │ │ ├── SessionMapper.xml │ │ │ │ │ ├── TagMapper.xml │ │ │ │ │ ├── TrainingCategoryMapper.xml │ │ │ │ │ ├── TrainingMapper.xml │ │ │ │ │ ├── TrainingProblemMapper.xml │ │ │ │ │ ├── TrainingRecordMapper.xml │ │ │ │ │ ├── UserAcproblemMapper.xml │ │ │ │ │ ├── UserInfoMapper.xml │ │ │ │ │ ├── UserRecordMapper.xml │ │ │ │ │ ├── UserRoleMapper.xml │ │ │ │ │ └── UserSysNoticeMapper.xml │ │ │ │ ├── pojo │ │ │ │ ├── bo │ │ │ │ │ ├── EmailRuleBO.java │ │ │ │ │ ├── HydroConfigYamlBO.java │ │ │ │ │ └── Pair_.java │ │ │ │ ├── dto │ │ │ │ │ ├── AdminEditUserDTO.java │ │ │ │ │ ├── AnnouncementDTO.java │ │ │ │ │ ├── ApplyResetPasswordDTO.java │ │ │ │ │ ├── ChangeEmailDTO.java │ │ │ │ │ ├── ChangeGroupProblemProgressDTO.java │ │ │ │ │ ├── ChangePasswordDTO.java │ │ │ │ │ ├── CheckACDTO.java │ │ │ │ │ ├── CheckUsernameOrEmailDTO.java │ │ │ │ │ ├── ContestPrintDTO.java │ │ │ │ │ ├── ContestProblemDTO.java │ │ │ │ │ ├── ContestRankDTO.java │ │ │ │ │ ├── DBAndRedisConfigDTO.java │ │ │ │ │ ├── EmailConfigDTO.java │ │ │ │ │ ├── LastAcceptedCodeVO.java │ │ │ │ │ ├── LoginDTO.java │ │ │ │ │ ├── PidListDTO.java │ │ │ │ │ ├── ProblemDTO.java │ │ │ │ │ ├── QDOJProblemDTO.java │ │ │ │ │ ├── RegisterContestDTO.java │ │ │ │ │ ├── RegisterDTO.java │ │ │ │ │ ├── RegisterTrainingDTO.java │ │ │ │ │ ├── ReplyDTO.java │ │ │ │ │ ├── ResetPasswordDTO.java │ │ │ │ │ ├── SubmitIdListDTO.java │ │ │ │ │ ├── SubmitJudgeDTO.java │ │ │ │ │ ├── SwitchConfigDTO.java │ │ │ │ │ ├── TestEmailDTO.java │ │ │ │ │ ├── TestJudgeDTO.java │ │ │ │ │ ├── TrainingDTO.java │ │ │ │ │ ├── TrainingProblemDTO.java │ │ │ │ │ ├── UserReadContestAnnouncementDTO.java │ │ │ │ │ └── WebConfigDTO.java │ │ │ │ └── vo │ │ │ │ │ ├── ACMContestRankVO.java │ │ │ │ │ ├── ACMRankVO.java │ │ │ │ │ ├── AccessVO.java │ │ │ │ │ ├── AdminContestVO.java │ │ │ │ │ ├── AdminSysNoticeVO.java │ │ │ │ │ ├── AnnouncementVO.java │ │ │ │ │ ├── CaptchaVO.java │ │ │ │ │ ├── ChangeAccountVO.java │ │ │ │ │ ├── CheckUsernameOrEmailVO.java │ │ │ │ │ ├── CommentListVO.java │ │ │ │ │ ├── CommentVO.java │ │ │ │ │ ├── ConfigVO.java │ │ │ │ │ ├── ContestAwardConfigVO.java │ │ │ │ │ ├── ContestOutsideInfoVO.java │ │ │ │ │ ├── ContestProblemVO.java │ │ │ │ │ ├── ContestRecordVO.java │ │ │ │ │ ├── ContestRegisterCountVO.java │ │ │ │ │ ├── ContestScrollBoardInfoVO.java │ │ │ │ │ ├── ContestScrollBoardSubmissionVO.java │ │ │ │ │ ├── ContestVO.java │ │ │ │ │ ├── DiscussionReportVO.java │ │ │ │ │ ├── DiscussionVO.java │ │ │ │ │ ├── ExcelUserVO.java │ │ │ │ │ ├── GroupMemberVO.java │ │ │ │ │ ├── GroupVO.java │ │ │ │ │ ├── ImportProblemVO.java │ │ │ │ │ ├── JudgeCaseVO.java │ │ │ │ │ ├── JudgeVO.java │ │ │ │ │ ├── OIContestRankVO.java │ │ │ │ │ ├── OIRankVO.java │ │ │ │ │ ├── ProblemCountVO.java │ │ │ │ │ ├── ProblemFullScreenListVO.java │ │ │ │ │ ├── ProblemInfoVO.java │ │ │ │ │ ├── ProblemTagVO.java │ │ │ │ │ ├── ProblemVO.java │ │ │ │ │ ├── RandomProblemVO.java │ │ │ │ │ ├── RecentUpdatedProblemVO.java │ │ │ │ │ ├── RegisterCodeVO.java │ │ │ │ │ ├── ReplyVO.java │ │ │ │ │ ├── RoleAuthsVO.java │ │ │ │ │ ├── SubTaskJudgeCaseVO.java │ │ │ │ │ ├── SubmissionInfoVO.java │ │ │ │ │ ├── SubmissionStatisticsVO.java │ │ │ │ │ ├── SysMsgVO.java │ │ │ │ │ ├── TestJudgeVO.java │ │ │ │ │ ├── TrainingRankVO.java │ │ │ │ │ ├── TrainingRecordVO.java │ │ │ │ │ ├── TrainingVO.java │ │ │ │ │ ├── UserAuthInfoVO.java │ │ │ │ │ ├── UserCalendarHeatmapVO.java │ │ │ │ │ ├── UserHomeProblemVO.java │ │ │ │ │ ├── UserHomeVO.java │ │ │ │ │ ├── UserInfoVO.java │ │ │ │ │ ├── UserMsgVO.java │ │ │ │ │ ├── UserRolesVO.java │ │ │ │ │ └── UserUnreadMsgCountVO.java │ │ │ │ ├── schedule │ │ │ │ ├── ScheduleService.java │ │ │ │ └── ScheduleServiceImpl.java │ │ │ │ ├── service │ │ │ │ ├── admin │ │ │ │ │ ├── account │ │ │ │ │ │ ├── AdminAccountService.java │ │ │ │ │ │ └── impl │ │ │ │ │ │ │ └── AdminAccountServiceImpl.java │ │ │ │ │ ├── announcement │ │ │ │ │ │ ├── AdminAnnouncementService.java │ │ │ │ │ │ └── impl │ │ │ │ │ │ │ └── AdminAnnouncementServiceImpl.java │ │ │ │ │ ├── contest │ │ │ │ │ │ ├── AdminContestAnnouncementService.java │ │ │ │ │ │ ├── AdminContestProblemService.java │ │ │ │ │ │ ├── AdminContestService.java │ │ │ │ │ │ └── impl │ │ │ │ │ │ │ ├── AdminContestAnnouncementServiceImpl.java │ │ │ │ │ │ │ ├── AdminContestProblemServiceImpl.java │ │ │ │ │ │ │ └── AdminContestServiceImpl.java │ │ │ │ │ ├── discussion │ │ │ │ │ │ ├── AdminDiscussionService.java │ │ │ │ │ │ └── impl │ │ │ │ │ │ │ └── AdminDiscussionServiceImpl.java │ │ │ │ │ ├── problem │ │ │ │ │ │ ├── AdminGroupProblemService.java │ │ │ │ │ │ ├── AdminProblemService.java │ │ │ │ │ │ └── impl │ │ │ │ │ │ │ ├── AdminGroupProblemServiceImpl.java │ │ │ │ │ │ │ └── AdminProblemServiceImpl.java │ │ │ │ │ ├── rejudge │ │ │ │ │ │ ├── RejudgeService.java │ │ │ │ │ │ └── impl │ │ │ │ │ │ │ └── RejudgeServiceImpl.java │ │ │ │ │ ├── system │ │ │ │ │ │ ├── ConfigService.java │ │ │ │ │ │ ├── DashboardService.java │ │ │ │ │ │ └── impl │ │ │ │ │ │ │ ├── ConfigServiceImpl.java │ │ │ │ │ │ │ └── DashboardServiceImpl.java │ │ │ │ │ ├── tag │ │ │ │ │ │ ├── AdminTagService.java │ │ │ │ │ │ └── impl │ │ │ │ │ │ │ └── AdminTagServiceImpl.java │ │ │ │ │ ├── training │ │ │ │ │ │ ├── AdminTrainingCategoryService.java │ │ │ │ │ │ ├── AdminTrainingProblemService.java │ │ │ │ │ │ ├── AdminTrainingService.java │ │ │ │ │ │ └── impl │ │ │ │ │ │ │ ├── AdminTrainingCategoryServiceImpl.java │ │ │ │ │ │ │ ├── AdminTrainingProblemServiceImpl.java │ │ │ │ │ │ │ └── AdminTrainingServiceImpl.java │ │ │ │ │ └── user │ │ │ │ │ │ ├── AdminUserService.java │ │ │ │ │ │ └── impl │ │ │ │ │ │ └── AdminUserServiceImpl.java │ │ │ │ ├── file │ │ │ │ │ ├── ContestFileService.java │ │ │ │ │ ├── ImageService.java │ │ │ │ │ ├── ImportFpsProblemService.java │ │ │ │ │ ├── ImportHydroProblemService.java │ │ │ │ │ ├── ImportQDUOJProblemService.java │ │ │ │ │ ├── MarkDownFileService.java │ │ │ │ │ ├── ProblemFileService.java │ │ │ │ │ ├── TestCaseService.java │ │ │ │ │ ├── UserFileService.java │ │ │ │ │ └── impl │ │ │ │ │ │ ├── ContestFileServiceImpl.java │ │ │ │ │ │ ├── ImageServiceImpl.java │ │ │ │ │ │ ├── ImportFpsProblemServiceImpl.java │ │ │ │ │ │ ├── ImportHydroProblemServiceImpl.java │ │ │ │ │ │ ├── ImportQDUOJProblemServiceImpl.java │ │ │ │ │ │ ├── MarkDownFileServiceImpl.java │ │ │ │ │ │ ├── ProblemFileServiceImpl.java │ │ │ │ │ │ ├── TestCaseServiceImpl.java │ │ │ │ │ │ └── UserFileServiceImpl.java │ │ │ │ ├── group │ │ │ │ │ ├── GroupRankService.java │ │ │ │ │ ├── GroupService.java │ │ │ │ │ ├── announcement │ │ │ │ │ │ ├── GroupAnnouncementService.java │ │ │ │ │ │ └── impl │ │ │ │ │ │ │ └── GroupAnnouncementServiceImpl.java │ │ │ │ │ ├── contest │ │ │ │ │ │ ├── GroupContestAnnouncementService.java │ │ │ │ │ │ ├── GroupContestProblemService.java │ │ │ │ │ │ ├── GroupContestService.java │ │ │ │ │ │ └── impl │ │ │ │ │ │ │ ├── GroupContestAnnouncementServiceImpl.java │ │ │ │ │ │ │ ├── GroupContestProblemServiceImpl.java │ │ │ │ │ │ │ └── GroupContestServiceImpl.java │ │ │ │ │ ├── discussion │ │ │ │ │ │ ├── GroupDiscussionService.java │ │ │ │ │ │ └── impl │ │ │ │ │ │ │ └── GroupDiscussionServiceImpl.java │ │ │ │ │ ├── impl │ │ │ │ │ │ ├── GroupRankServiceImpl.java │ │ │ │ │ │ └── GroupServiceImpl.java │ │ │ │ │ ├── member │ │ │ │ │ │ ├── GroupMemberService.java │ │ │ │ │ │ └── impl │ │ │ │ │ │ │ └── GroupMemberServiceImpl.java │ │ │ │ │ ├── problem │ │ │ │ │ │ ├── GroupProblemService.java │ │ │ │ │ │ └── impl │ │ │ │ │ │ │ └── GroupProblemServiceImpl.java │ │ │ │ │ └── training │ │ │ │ │ │ ├── GroupTrainingProblemService.java │ │ │ │ │ │ ├── GroupTrainingService.java │ │ │ │ │ │ └── impl │ │ │ │ │ │ ├── GroupTrainingProblemServiceImpl.java │ │ │ │ │ │ └── GroupTrainingServiceImpl.java │ │ │ │ ├── msg │ │ │ │ │ ├── AdminNoticeService.java │ │ │ │ │ ├── NoticeService.java │ │ │ │ │ ├── UserMessageService.java │ │ │ │ │ └── impl │ │ │ │ │ │ ├── AdminNoticeServiceImpl.java │ │ │ │ │ │ ├── NoticeServiceImpl.java │ │ │ │ │ │ └── UserMessageServiceImpl.java │ │ │ │ └── oj │ │ │ │ │ ├── AccountService.java │ │ │ │ │ ├── CommentService.java │ │ │ │ │ ├── CommonService.java │ │ │ │ │ ├── ContestAdminService.java │ │ │ │ │ ├── ContestScoreboardService.java │ │ │ │ │ ├── ContestScrollBoardService.java │ │ │ │ │ ├── ContestService.java │ │ │ │ │ ├── DiscussionService.java │ │ │ │ │ ├── HomeService.java │ │ │ │ │ ├── JudgeService.java │ │ │ │ │ ├── PassportService.java │ │ │ │ │ ├── ProblemService.java │ │ │ │ │ ├── RankService.java │ │ │ │ │ ├── TrainingService.java │ │ │ │ │ └── impl │ │ │ │ │ ├── AccountServiceImpl.java │ │ │ │ │ ├── CommentServiceImpl.java │ │ │ │ │ ├── CommonServiceImpl.java │ │ │ │ │ ├── ContestAdminServiceImpl.java │ │ │ │ │ ├── ContestScoreboardServiceImpl.java │ │ │ │ │ ├── ContestScrollBoardServiceImpl.java │ │ │ │ │ ├── ContestServiceImpl.java │ │ │ │ │ ├── DiscussionServiceImpl.java │ │ │ │ │ ├── HomeServiceImpl.java │ │ │ │ │ ├── JudgeServiceImpl.java │ │ │ │ │ ├── PassportServiceImpl.java │ │ │ │ │ ├── ProblemServiceImpl.java │ │ │ │ │ ├── RankServiceImpl.java │ │ │ │ │ └── TrainingServiceImpl.java │ │ │ │ ├── shiro │ │ │ │ ├── AccountProfile.java │ │ │ │ ├── AccountRealm.java │ │ │ │ ├── JwtFilter.java │ │ │ │ ├── JwtToken.java │ │ │ │ ├── ShiroCache.java │ │ │ │ ├── ShiroCacheManager.java │ │ │ │ └── ShiroConstant.java │ │ │ │ ├── utils │ │ │ │ ├── CodeForcesUtils.java │ │ │ │ ├── ConfigUtils.java │ │ │ │ ├── Constants.java │ │ │ │ ├── IpUtils.java │ │ │ │ ├── JsoupUtils.java │ │ │ │ ├── JwtUtils.java │ │ │ │ ├── RedisUtils.java │ │ │ │ ├── ServiceContextUtils.java │ │ │ │ └── ShiroUtils.java │ │ │ │ └── validator │ │ │ │ ├── AccessValidator.java │ │ │ │ ├── CommonValidator.java │ │ │ │ ├── ContestValidator.java │ │ │ │ ├── GroupValidator.java │ │ │ │ ├── JudgeValidator.java │ │ │ │ ├── ProblemValidator.java │ │ │ │ └── TrainingValidator.java │ │ └── resources │ │ │ ├── CodeForcesAES.js │ │ │ ├── application-dev.yml │ │ │ ├── application-prod.yml │ │ │ ├── application.yml │ │ │ ├── banner.txt │ │ │ ├── bootstrap.yml │ │ │ ├── email-rule.yml │ │ │ ├── logback-spring.xml │ │ │ └── templates │ │ │ ├── emailTemplate_changeEmailCode.html │ │ │ ├── emailTemplate_registerCode.html │ │ │ ├── emailTemplate_resetPassword.html │ │ │ └── emailTemplate_testEmail.html │ │ └── test │ │ └── java │ │ └── top │ │ └── hcode │ │ └── hoj │ │ └── DataBackupApplicationTests.java ├── JudgeServer │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ ├── com │ │ │ │ └── alibaba │ │ │ │ │ └── druid │ │ │ │ │ └── pool │ │ │ │ │ └── DruidAbstractDataSource.java │ │ │ └── top │ │ │ │ └── hcode │ │ │ │ └── hoj │ │ │ │ ├── JudgeServerApplication.java │ │ │ │ ├── common │ │ │ │ ├── CommonResult.java │ │ │ │ ├── ResultStatus.java │ │ │ │ └── exception │ │ │ │ │ ├── CompileError.java │ │ │ │ │ ├── RuntimeError.java │ │ │ │ │ ├── SubmitError.java │ │ │ │ │ └── SystemError.java │ │ │ │ ├── config │ │ │ │ ├── AsyncTaskConfig.java │ │ │ │ ├── DruidConfig.java │ │ │ │ ├── MyMetaObjectConfig.java │ │ │ │ ├── MybatisPlusConfig.java │ │ │ │ ├── NacosConfig.java │ │ │ │ ├── RestTemplateConfig.java │ │ │ │ ├── StartupRunner.java │ │ │ │ └── SwaggerConfig.java │ │ │ │ ├── controller │ │ │ │ ├── JudgeController.java │ │ │ │ └── SystemConfigController.java │ │ │ │ ├── dao │ │ │ │ ├── ContestEntityService.java │ │ │ │ ├── ContestRecordEntityService.java │ │ │ │ ├── JudgeCaseEntityService.java │ │ │ │ ├── JudgeEntityService.java │ │ │ │ ├── JudgeServerEntityService.java │ │ │ │ ├── ProblemCaseEntityService.java │ │ │ │ ├── ProblemCountEntityService.java │ │ │ │ ├── ProblemEntityService.java │ │ │ │ ├── RemoteJudgeAccountEntityService.java │ │ │ │ ├── UserAcproblemEntityService.java │ │ │ │ ├── UserRecordEntityService.java │ │ │ │ └── impl │ │ │ │ │ ├── ContestEntityServiceImpl.java │ │ │ │ │ ├── ContestRecordEntityServiceImpl.java │ │ │ │ │ ├── JudgeCaseEntityServiceImpl.java │ │ │ │ │ ├── JudgeEntityServiceImpl.java │ │ │ │ │ ├── JudgeServerEntityServiceImpl.java │ │ │ │ │ ├── ProblemCaseEntityServiceImpl.java │ │ │ │ │ ├── ProblemCountEntityServiceImpl.java │ │ │ │ │ ├── ProblemEntityServiceImpl.java │ │ │ │ │ ├── RemoteJudgeAccountEntityServiceImpl.java │ │ │ │ │ ├── UserAcproblemEntityServiceImpl.java │ │ │ │ │ └── UserRecordEntityServiceImpl.java │ │ │ │ ├── judge │ │ │ │ ├── AbstractJudge.java │ │ │ │ ├── Compiler.java │ │ │ │ ├── JudgeContext.java │ │ │ │ ├── JudgeRun.java │ │ │ │ ├── JudgeStrategy.java │ │ │ │ ├── LanguageConfigLoader.java │ │ │ │ ├── ProblemTestCaseUtils.java │ │ │ │ ├── SandboxRun.java │ │ │ │ ├── entity │ │ │ │ │ ├── JudgeDTO.java │ │ │ │ │ ├── JudgeGlobalDTO.java │ │ │ │ │ ├── LanguageConfig.java │ │ │ │ │ ├── Pair_.java │ │ │ │ │ └── SandBoxRes.java │ │ │ │ └── task │ │ │ │ │ ├── DefaultJudge.java │ │ │ │ │ ├── InteractiveJudge.java │ │ │ │ │ ├── SpecialJudge.java │ │ │ │ │ └── TestJudge.java │ │ │ │ ├── mapper │ │ │ │ ├── ContestMapper.java │ │ │ │ ├── ContestRecordMapper.java │ │ │ │ ├── JudgeCaseMapper.java │ │ │ │ ├── JudgeMapper.java │ │ │ │ ├── JudgeServerMapper.java │ │ │ │ ├── ProblemCaseMapper.java │ │ │ │ ├── ProblemCountMapper.java │ │ │ │ ├── ProblemMapper.java │ │ │ │ ├── RemoteJudgeAccountMapper.java │ │ │ │ ├── UserAcproblemMapper.java │ │ │ │ ├── UserRecordMapper.java │ │ │ │ └── xml │ │ │ │ │ ├── JudgeCaseMapper.xml │ │ │ │ │ └── JudgeMapper.xml │ │ │ │ ├── remoteJudge │ │ │ │ ├── RemoteJudgeContext.java │ │ │ │ ├── RemoteJudgeGetResult.java │ │ │ │ ├── RemoteJudgeToSubmit.java │ │ │ │ ├── entity │ │ │ │ │ ├── RemoteJudgeDTO.java │ │ │ │ │ └── RemoteJudgeRes.java │ │ │ │ └── task │ │ │ │ │ ├── Impl │ │ │ │ │ ├── AtCoderJudge.java │ │ │ │ │ ├── CodeForcesJudge.java │ │ │ │ │ ├── GYMJudge.java │ │ │ │ │ ├── HDUJudge.java │ │ │ │ │ ├── LibreJudge.java │ │ │ │ │ ├── POJJudge.java │ │ │ │ │ └── SPOJJudge.java │ │ │ │ │ ├── RemoteJudgeFactory.java │ │ │ │ │ └── RemoteJudgeStrategy.java │ │ │ │ ├── service │ │ │ │ ├── JudgeService.java │ │ │ │ ├── RemoteJudgeService.java │ │ │ │ ├── SystemConfigService.java │ │ │ │ └── impl │ │ │ │ │ ├── JudgeServiceImpl.java │ │ │ │ │ ├── RemoteJudgeServiceImpl.java │ │ │ │ │ └── SystemConfigServiceImpl.java │ │ │ │ └── util │ │ │ │ ├── CodeForcesUtils.java │ │ │ │ ├── Constants.java │ │ │ │ ├── IpUtils.java │ │ │ │ ├── JsoupUtils.java │ │ │ │ ├── JudgeUtils.java │ │ │ │ └── ThreadPoolUtils.java │ │ └── resources │ │ │ ├── CodeForcesAES.js │ │ │ ├── application.yml │ │ │ ├── banner.txt │ │ │ ├── bootstrap.yml │ │ │ ├── language.yml │ │ │ └── logback-spring.xml │ │ └── test │ │ └── java │ │ └── top │ │ └── hcode │ │ └── hoj │ │ ├── JudgeServerApplicationTests.java │ │ └── remoteJudge │ │ ├── task │ │ └── Impl │ │ │ ├── AtcoderJudgeTest.java │ │ │ ├── CodeForcesJudgeTest.java │ │ │ └── HDUJudgeTest.java │ │ └── test.html ├── api │ ├── pom.xml │ └── src │ │ └── main │ │ └── java │ │ └── top │ │ └── hcode │ │ └── hoj │ │ └── pojo │ │ ├── dto │ │ ├── CompileDTO.java │ │ ├── TestJudgeReq.java │ │ ├── TestJudgeRes.java │ │ └── ToJudgeDTO.java │ │ └── entity │ │ ├── common │ │ ├── Announcement.java │ │ └── File.java │ │ ├── contest │ │ ├── Contest.java │ │ ├── ContestAnnouncement.java │ │ ├── ContestExplanation.java │ │ ├── ContestPrint.java │ │ ├── ContestProblem.java │ │ ├── ContestRecord.java │ │ ├── ContestRegister.java │ │ └── ContestScore.java │ │ ├── discussion │ │ ├── Comment.java │ │ ├── CommentLike.java │ │ ├── Discussion.java │ │ ├── DiscussionLike.java │ │ ├── DiscussionReport.java │ │ └── Reply.java │ │ ├── group │ │ ├── Group.java │ │ └── GroupMember.java │ │ ├── judge │ │ ├── Judge.java │ │ ├── JudgeCase.java │ │ ├── JudgeServer.java │ │ └── RemoteJudgeAccount.java │ │ ├── msg │ │ ├── AdminSysNotice.java │ │ ├── MsgRemind.java │ │ └── UserSysNotice.java │ │ ├── problem │ │ ├── Category.java │ │ ├── CodeTemplate.java │ │ ├── Language.java │ │ ├── Problem.java │ │ ├── ProblemCase.java │ │ ├── ProblemCount.java │ │ ├── ProblemLanguage.java │ │ ├── ProblemTag.java │ │ ├── Tag.java │ │ └── TagClassification.java │ │ ├── training │ │ ├── MappingTrainingCategory.java │ │ ├── Training.java │ │ ├── TrainingCategory.java │ │ ├── TrainingProblem.java │ │ ├── TrainingRecord.java │ │ └── TrainingRegister.java │ │ └── user │ │ ├── Auth.java │ │ ├── Role.java │ │ ├── RoleAuth.java │ │ ├── Session.java │ │ ├── UserAcproblem.java │ │ ├── UserInfo.java │ │ ├── UserRecord.java │ │ └── UserRole.java └── pom.xml ├── hoj-vue ├── .gitignore ├── README.md ├── babel.config.js ├── package-lock.json ├── package.json ├── public │ ├── favicon.ico │ └── index.html ├── src │ ├── App.vue │ ├── assets │ │ ├── acm.jpg │ │ ├── atcoder-logo.png │ │ ├── backstage.png │ │ ├── codeforces-logo.png │ │ ├── default.jpg │ │ ├── gym-logo.png │ │ ├── hdu-logo.png │ │ ├── home1.jfif │ │ ├── home2.jpeg │ │ ├── icon.png │ │ ├── libre-logo.png │ │ ├── logo.png │ │ ├── oi.jpg │ │ ├── pdf-logo.svg │ │ ├── poj-logo.png │ │ └── spoj-logo.png │ ├── common │ │ ├── api.js │ │ ├── codeblock.js │ │ ├── constants.js │ │ ├── filters.js │ │ ├── highlight.js │ │ ├── katex.js │ │ ├── logo.js │ │ ├── message.js │ │ ├── storage.js │ │ ├── time.js │ │ └── utils.js │ ├── components │ │ ├── admin │ │ │ ├── Accordion.vue │ │ │ ├── AddExtraFile.vue │ │ │ ├── AddPublicProblem.vue │ │ │ ├── CodeMirror.vue │ │ │ ├── Editor.vue │ │ │ ├── KatexEditor.vue │ │ │ ├── RemoteJudgeAccount.vue │ │ │ └── infoCard.vue │ │ └── oj │ │ │ ├── comment │ │ │ ├── comment.vue │ │ │ └── emoji.json │ │ │ ├── common │ │ │ ├── Announcements.vue │ │ │ ├── CodeMirror.vue │ │ │ ├── Highlight.vue │ │ │ ├── JudgeCase.vue │ │ │ ├── Login.vue │ │ │ ├── Markdown.vue │ │ │ ├── Marquee.vue │ │ │ ├── NavBar.vue │ │ │ ├── Pagination.vue │ │ │ ├── ProblemHorizontalMenu.vue │ │ │ ├── RankBox.vue │ │ │ ├── Register.vue │ │ │ └── ResetPassword.vue │ │ │ ├── contest │ │ │ └── ContestListAttention.vue │ │ │ ├── group │ │ │ ├── AddGroupProblem.vue │ │ │ ├── AddPublicProblem.vue │ │ │ ├── Announcement.vue │ │ │ ├── AnnouncementList.vue │ │ │ ├── Contest.vue │ │ │ ├── ContestList.vue │ │ │ ├── DiscussionList.vue │ │ │ ├── MemberList.vue │ │ │ ├── Problem.vue │ │ │ ├── ProblemList.vue │ │ │ ├── Training.vue │ │ │ ├── TrainingList.vue │ │ │ └── TrainingProblemList.vue │ │ │ ├── home │ │ │ └── SubmissionStatistic.vue │ │ │ ├── msg │ │ │ └── msgSvg.vue │ │ │ └── setting │ │ │ ├── Account.vue │ │ │ └── UserInfo.vue │ ├── i18n │ │ ├── admin │ │ │ ├── en-US.js │ │ │ └── zh-CN.js │ │ ├── index.js │ │ └── oj │ │ │ ├── en-US.js │ │ │ └── zh-CN.js │ ├── main.js │ ├── router │ │ ├── adminRoutes.js │ │ ├── index.js │ │ └── ojRoutes.js │ ├── store │ │ ├── contest.js │ │ ├── group.js │ │ ├── index.js │ │ ├── training.js │ │ └── user.js │ └── views │ │ ├── 404.vue │ │ ├── admin │ │ ├── Dashboard.vue │ │ ├── Home.vue │ │ ├── Login.vue │ │ ├── contest │ │ │ ├── Contest.vue │ │ │ └── ContestList.vue │ │ ├── discussion │ │ │ └── Discussion.vue │ │ ├── general │ │ │ ├── Announcement.vue │ │ │ ├── SysNotice.vue │ │ │ ├── SysSwitch.vue │ │ │ ├── SystemConfig.vue │ │ │ └── User.vue │ │ ├── problem │ │ │ ├── GroupProblemList.vue │ │ │ ├── ImportAndExport.vue │ │ │ ├── Problem.vue │ │ │ ├── ProblemList.vue │ │ │ └── Tag.vue │ │ └── training │ │ │ ├── Category.vue │ │ │ ├── Training.vue │ │ │ ├── TrainingList.vue │ │ │ └── TrainingProblemList.vue │ │ └── oj │ │ ├── Home.vue │ │ ├── about │ │ ├── Developer.vue │ │ └── Introduction.vue │ │ ├── contest │ │ ├── ContestDetails.vue │ │ ├── ContestList.vue │ │ ├── children │ │ │ ├── ACMContestRank.vue │ │ │ ├── ACMInfoAdmin.vue │ │ │ ├── ContestAdminPrint.vue │ │ │ ├── ContestComment.vue │ │ │ ├── ContestPrint.vue │ │ │ ├── ContestProblemList.vue │ │ │ ├── ContestRank.vue │ │ │ ├── ContestRejudgeAdmin.vue │ │ │ ├── OIContestRank.vue │ │ │ ├── ScrollBoard.vue │ │ │ └── contestRankMixin.js │ │ └── outside │ │ │ ├── ACMScoreBoard.vue │ │ │ ├── OIScoreBoard.vue │ │ │ └── scoreBoardMixin.js │ │ ├── discussion │ │ ├── discussion.vue │ │ └── discussionList.vue │ │ ├── group │ │ ├── GroupDetails.vue │ │ ├── GroupList.vue │ │ └── children │ │ │ ├── GroupAnnouncementList.vue │ │ │ ├── GroupContestList.vue │ │ │ ├── GroupDiscussionList.vue │ │ │ ├── GroupMemberList.vue │ │ │ ├── GroupProblemList.vue │ │ │ ├── GroupRank.vue │ │ │ ├── GroupSetting.vue │ │ │ └── GroupTrainingList.vue │ │ ├── message │ │ ├── SysMsg.vue │ │ ├── UserMsg.vue │ │ └── message.vue │ │ ├── problem │ │ ├── Problem.vue │ │ ├── ProblemList.vue │ │ └── chartData.js │ │ ├── rank │ │ ├── ACMRank.vue │ │ └── OIRank.vue │ │ ├── status │ │ ├── SubmissionDetails.vue │ │ └── SubmissionList.vue │ │ ├── training │ │ ├── TrainingDetails.vue │ │ ├── TrainingList.vue │ │ ├── TrainingProblemList.vue │ │ └── TrainingRank.vue │ │ └── user │ │ ├── Logout.vue │ │ ├── SetNewPassword.vue │ │ ├── Setting.vue │ │ └── UserHome.vue └── vue.config.js ├── logo.png ├── sandbox ├── README.md ├── Sandbox-amd64-v1.8.0 └── Sandbox-arm64-v1.8.0 └── sqlAndsetting ├── README.md ├── hoj-update.sql ├── hoj.sql └── nacos.sql /docs/.gitignore: -------------------------------------------------------------------------------- 1 | yarn-error.log 2 | node_modules 3 | docs/.vuepress/dist 4 | -------------------------------------------------------------------------------- /docs/docs/.vuepress/public/00a0438a576d43edbab676b829a38922.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HimitZH/HOJ/2a3b8fa844b066df7568a588f2681c7eebebd51d/docs/docs/.vuepress/public/00a0438a576d43edbab676b829a38922.png -------------------------------------------------------------------------------- /docs/docs/.vuepress/public/00cd359b634e4483a33f26b10c32e4f6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HimitZH/HOJ/2a3b8fa844b066df7568a588f2681c7eebebd51d/docs/docs/.vuepress/public/00cd359b634e4483a33f26b10c32e4f6.png -------------------------------------------------------------------------------- /docs/docs/.vuepress/public/04264e545b034296b5a9f130b85dc985.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HimitZH/HOJ/2a3b8fa844b066df7568a588f2681c7eebebd51d/docs/docs/.vuepress/public/04264e545b034296b5a9f130b85dc985.png -------------------------------------------------------------------------------- /docs/docs/.vuepress/public/0ee61f329e094592b0a0cff55d12b404.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HimitZH/HOJ/2a3b8fa844b066df7568a588f2681c7eebebd51d/docs/docs/.vuepress/public/0ee61f329e094592b0a0cff55d12b404.png -------------------------------------------------------------------------------- /docs/docs/.vuepress/public/1e9fa6d4f446425c9213adb2027c77b0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HimitZH/HOJ/2a3b8fa844b066df7568a588f2681c7eebebd51d/docs/docs/.vuepress/public/1e9fa6d4f446425c9213adb2027c77b0.png -------------------------------------------------------------------------------- /docs/docs/.vuepress/public/20210509233845230.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HimitZH/HOJ/2a3b8fa844b066df7568a588f2681c7eebebd51d/docs/docs/.vuepress/public/20210509233845230.png -------------------------------------------------------------------------------- /docs/docs/.vuepress/public/20210513134216723.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HimitZH/HOJ/2a3b8fa844b066df7568a588f2681c7eebebd51d/docs/docs/.vuepress/public/20210513134216723.png -------------------------------------------------------------------------------- /docs/docs/.vuepress/public/20210513142826730.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HimitZH/HOJ/2a3b8fa844b066df7568a588f2681c7eebebd51d/docs/docs/.vuepress/public/20210513142826730.png -------------------------------------------------------------------------------- /docs/docs/.vuepress/public/20210523221321418.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HimitZH/HOJ/2a3b8fa844b066df7568a588f2681c7eebebd51d/docs/docs/.vuepress/public/20210523221321418.png -------------------------------------------------------------------------------- /docs/docs/.vuepress/public/20210523222914722 (1).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HimitZH/HOJ/2a3b8fa844b066df7568a588f2681c7eebebd51d/docs/docs/.vuepress/public/20210523222914722 (1).png -------------------------------------------------------------------------------- /docs/docs/.vuepress/public/20210523222914722.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HimitZH/HOJ/2a3b8fa844b066df7568a588f2681c7eebebd51d/docs/docs/.vuepress/public/20210523222914722.png -------------------------------------------------------------------------------- /docs/docs/.vuepress/public/20210523223042100 (1).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HimitZH/HOJ/2a3b8fa844b066df7568a588f2681c7eebebd51d/docs/docs/.vuepress/public/20210523223042100 (1).png -------------------------------------------------------------------------------- /docs/docs/.vuepress/public/20210523223042100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HimitZH/HOJ/2a3b8fa844b066df7568a588f2681c7eebebd51d/docs/docs/.vuepress/public/20210523223042100.png -------------------------------------------------------------------------------- /docs/docs/.vuepress/public/20210609213021223.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HimitZH/HOJ/2a3b8fa844b066df7568a588f2681c7eebebd51d/docs/docs/.vuepress/public/20210609213021223.png -------------------------------------------------------------------------------- /docs/docs/.vuepress/public/20210614144409579.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HimitZH/HOJ/2a3b8fa844b066df7568a588f2681c7eebebd51d/docs/docs/.vuepress/public/20210614144409579.png -------------------------------------------------------------------------------- /docs/docs/.vuepress/public/20210614144542595.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HimitZH/HOJ/2a3b8fa844b066df7568a588f2681c7eebebd51d/docs/docs/.vuepress/public/20210614144542595.png -------------------------------------------------------------------------------- /docs/docs/.vuepress/public/2a8354a553d547d786e37d41050d3b95.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HimitZH/HOJ/2a3b8fa844b066df7568a588f2681c7eebebd51d/docs/docs/.vuepress/public/2a8354a553d547d786e37d41050d3b95.png -------------------------------------------------------------------------------- /docs/docs/.vuepress/public/2c05e44f5a464381b9a357aff37b0086.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HimitZH/HOJ/2a3b8fa844b066df7568a588f2681c7eebebd51d/docs/docs/.vuepress/public/2c05e44f5a464381b9a357aff37b0086.png -------------------------------------------------------------------------------- /docs/docs/.vuepress/public/2f502aac27ed406f9b0bb3385879b148 (1).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HimitZH/HOJ/2a3b8fa844b066df7568a588f2681c7eebebd51d/docs/docs/.vuepress/public/2f502aac27ed406f9b0bb3385879b148 (1).png -------------------------------------------------------------------------------- /docs/docs/.vuepress/public/2f502aac27ed406f9b0bb3385879b148.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HimitZH/HOJ/2a3b8fa844b066df7568a588f2681c7eebebd51d/docs/docs/.vuepress/public/2f502aac27ed406f9b0bb3385879b148.png -------------------------------------------------------------------------------- /docs/docs/.vuepress/public/338bf9db257844a1b32a4ff54c6528f6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HimitZH/HOJ/2a3b8fa844b066df7568a588f2681c7eebebd51d/docs/docs/.vuepress/public/338bf9db257844a1b32a4ff54c6528f6.png -------------------------------------------------------------------------------- /docs/docs/.vuepress/public/407ad16361f34b44a282b07af68825e0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HimitZH/HOJ/2a3b8fa844b066df7568a588f2681c7eebebd51d/docs/docs/.vuepress/public/407ad16361f34b44a282b07af68825e0.png -------------------------------------------------------------------------------- /docs/docs/.vuepress/public/4dfdcb2461c742f1b3717a8a27c3598a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HimitZH/HOJ/2a3b8fa844b066df7568a588f2681c7eebebd51d/docs/docs/.vuepress/public/4dfdcb2461c742f1b3717a8a27c3598a.png -------------------------------------------------------------------------------- /docs/docs/.vuepress/public/50026bde6dd64cd5929b38f8ecc6e72e.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HimitZH/HOJ/2a3b8fa844b066df7568a588f2681c7eebebd51d/docs/docs/.vuepress/public/50026bde6dd64cd5929b38f8ecc6e72e.png -------------------------------------------------------------------------------- /docs/docs/.vuepress/public/513e7e37f52f48518c2fa1bf14eeea99.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HimitZH/HOJ/2a3b8fa844b066df7568a588f2681c7eebebd51d/docs/docs/.vuepress/public/513e7e37f52f48518c2fa1bf14eeea99.png -------------------------------------------------------------------------------- /docs/docs/.vuepress/public/5304425397f249808b7ea0ea2a0153cc (1).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HimitZH/HOJ/2a3b8fa844b066df7568a588f2681c7eebebd51d/docs/docs/.vuepress/public/5304425397f249808b7ea0ea2a0153cc (1).png -------------------------------------------------------------------------------- /docs/docs/.vuepress/public/5304425397f249808b7ea0ea2a0153cc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HimitZH/HOJ/2a3b8fa844b066df7568a588f2681c7eebebd51d/docs/docs/.vuepress/public/5304425397f249808b7ea0ea2a0153cc.png -------------------------------------------------------------------------------- /docs/docs/.vuepress/public/58ac74824fcf4963810beea7ba1203b9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HimitZH/HOJ/2a3b8fa844b066df7568a588f2681c7eebebd51d/docs/docs/.vuepress/public/58ac74824fcf4963810beea7ba1203b9.png -------------------------------------------------------------------------------- /docs/docs/.vuepress/public/6272d213a07746f8a10a791105a45385.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HimitZH/HOJ/2a3b8fa844b066df7568a588f2681c7eebebd51d/docs/docs/.vuepress/public/6272d213a07746f8a10a791105a45385.png -------------------------------------------------------------------------------- /docs/docs/.vuepress/public/66820e0888064a64b7f091ea60cb64b5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HimitZH/HOJ/2a3b8fa844b066df7568a588f2681c7eebebd51d/docs/docs/.vuepress/public/66820e0888064a64b7f091ea60cb64b5.png -------------------------------------------------------------------------------- /docs/docs/.vuepress/public/67f6262854bb44efa70c374f1f156166.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HimitZH/HOJ/2a3b8fa844b066df7568a588f2681c7eebebd51d/docs/docs/.vuepress/public/67f6262854bb44efa70c374f1f156166.png -------------------------------------------------------------------------------- /docs/docs/.vuepress/public/6af22926b39149bd8a1314d60b3deb00.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HimitZH/HOJ/2a3b8fa844b066df7568a588f2681c7eebebd51d/docs/docs/.vuepress/public/6af22926b39149bd8a1314d60b3deb00.png -------------------------------------------------------------------------------- /docs/docs/.vuepress/public/6b0404229b894d01aa98ee43bbb4d034.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HimitZH/HOJ/2a3b8fa844b066df7568a588f2681c7eebebd51d/docs/docs/.vuepress/public/6b0404229b894d01aa98ee43bbb4d034.png -------------------------------------------------------------------------------- /docs/docs/.vuepress/public/6fcdb9f6895043498cb9d4bbadeb0a5b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HimitZH/HOJ/2a3b8fa844b066df7568a588f2681c7eebebd51d/docs/docs/.vuepress/public/6fcdb9f6895043498cb9d4bbadeb0a5b.png -------------------------------------------------------------------------------- /docs/docs/.vuepress/public/7409e6b5def6438385ddd59589afeb83.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HimitZH/HOJ/2a3b8fa844b066df7568a588f2681c7eebebd51d/docs/docs/.vuepress/public/7409e6b5def6438385ddd59589afeb83.png -------------------------------------------------------------------------------- /docs/docs/.vuepress/public/750af961bd6f4e53be21037944d092ff.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HimitZH/HOJ/2a3b8fa844b066df7568a588f2681c7eebebd51d/docs/docs/.vuepress/public/750af961bd6f4e53be21037944d092ff.png -------------------------------------------------------------------------------- /docs/docs/.vuepress/public/7988504326c843ef94e937a2b4f32f03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HimitZH/HOJ/2a3b8fa844b066df7568a588f2681c7eebebd51d/docs/docs/.vuepress/public/7988504326c843ef94e937a2b4f32f03.png -------------------------------------------------------------------------------- /docs/docs/.vuepress/public/7d3e99dbc6fe4739a0720fcc019b2b6e.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HimitZH/HOJ/2a3b8fa844b066df7568a588f2681c7eebebd51d/docs/docs/.vuepress/public/7d3e99dbc6fe4739a0720fcc019b2b6e.png -------------------------------------------------------------------------------- /docs/docs/.vuepress/public/85647edc236f41ca8b9ab5b8088a7ec1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HimitZH/HOJ/2a3b8fa844b066df7568a588f2681c7eebebd51d/docs/docs/.vuepress/public/85647edc236f41ca8b9ab5b8088a7ec1.png -------------------------------------------------------------------------------- /docs/docs/.vuepress/public/8646fc212b5c47e9b35e60634cfc8d6a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HimitZH/HOJ/2a3b8fa844b066df7568a588f2681c7eebebd51d/docs/docs/.vuepress/public/8646fc212b5c47e9b35e60634cfc8d6a.png -------------------------------------------------------------------------------- /docs/docs/.vuepress/public/8f2c0007609d41258683dd99bb79a5b4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HimitZH/HOJ/2a3b8fa844b066df7568a588f2681c7eebebd51d/docs/docs/.vuepress/public/8f2c0007609d41258683dd99bb79a5b4.png -------------------------------------------------------------------------------- /docs/docs/.vuepress/public/8f8258babd3f43f78802144e7ecf18fe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HimitZH/HOJ/2a3b8fa844b066df7568a588f2681c7eebebd51d/docs/docs/.vuepress/public/8f8258babd3f43f78802144e7ecf18fe.png -------------------------------------------------------------------------------- /docs/docs/.vuepress/public/971566eeac674d388b9f5d6064286e14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HimitZH/HOJ/2a3b8fa844b066df7568a588f2681c7eebebd51d/docs/docs/.vuepress/public/971566eeac674d388b9f5d6064286e14.png -------------------------------------------------------------------------------- /docs/docs/.vuepress/public/9a936ad86ff2439a9e1188c286cfd751.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HimitZH/HOJ/2a3b8fa844b066df7568a588f2681c7eebebd51d/docs/docs/.vuepress/public/9a936ad86ff2439a9e1188c286cfd751.png -------------------------------------------------------------------------------- /docs/docs/.vuepress/public/9b9674c0f30a441bb200a32756f24d2c.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HimitZH/HOJ/2a3b8fa844b066df7568a588f2681c7eebebd51d/docs/docs/.vuepress/public/9b9674c0f30a441bb200a32756f24d2c.png -------------------------------------------------------------------------------- /docs/docs/.vuepress/public/9f01f31f11f849f998530ee967befee8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HimitZH/HOJ/2a3b8fa844b066df7568a588f2681c7eebebd51d/docs/docs/.vuepress/public/9f01f31f11f849f998530ee967befee8.png -------------------------------------------------------------------------------- /docs/docs/.vuepress/public/9f872dc1974f45c389e084f0e31a5217.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HimitZH/HOJ/2a3b8fa844b066df7568a588f2681c7eebebd51d/docs/docs/.vuepress/public/9f872dc1974f45c389e084f0e31a5217.png -------------------------------------------------------------------------------- /docs/docs/.vuepress/public/a1a83ff01be84406954537e2ab78d999.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HimitZH/HOJ/2a3b8fa844b066df7568a588f2681c7eebebd51d/docs/docs/.vuepress/public/a1a83ff01be84406954537e2ab78d999.png -------------------------------------------------------------------------------- /docs/docs/.vuepress/public/ad4851c069674b30af08f187363906c4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HimitZH/HOJ/2a3b8fa844b066df7568a588f2681c7eebebd51d/docs/docs/.vuepress/public/ad4851c069674b30af08f187363906c4.png -------------------------------------------------------------------------------- /docs/docs/.vuepress/public/b2e1edf697494ed68c760beb63b782bf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HimitZH/HOJ/2a3b8fa844b066df7568a588f2681c7eebebd51d/docs/docs/.vuepress/public/b2e1edf697494ed68c760beb63b782bf.png -------------------------------------------------------------------------------- /docs/docs/.vuepress/public/b366a6a628984995b57a49c565a2ec47.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HimitZH/HOJ/2a3b8fa844b066df7568a588f2681c7eebebd51d/docs/docs/.vuepress/public/b366a6a628984995b57a49c565a2ec47.png -------------------------------------------------------------------------------- /docs/docs/.vuepress/public/c1b462bbc01b433e9fc8cd4a641077e8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HimitZH/HOJ/2a3b8fa844b066df7568a588f2681c7eebebd51d/docs/docs/.vuepress/public/c1b462bbc01b433e9fc8cd4a641077e8.png -------------------------------------------------------------------------------- /docs/docs/.vuepress/public/c50140e3b73d482d82ca6f13f47aa080.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HimitZH/HOJ/2a3b8fa844b066df7568a588f2681c7eebebd51d/docs/docs/.vuepress/public/c50140e3b73d482d82ca6f13f47aa080.png -------------------------------------------------------------------------------- /docs/docs/.vuepress/public/c50314e739ff4c38b6fbd41b9db674dc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HimitZH/HOJ/2a3b8fa844b066df7568a588f2681c7eebebd51d/docs/docs/.vuepress/public/c50314e739ff4c38b6fbd41b9db674dc.png -------------------------------------------------------------------------------- /docs/docs/.vuepress/public/c7b3648217af4899bedf7f7d804968ba.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HimitZH/HOJ/2a3b8fa844b066df7568a588f2681c7eebebd51d/docs/docs/.vuepress/public/c7b3648217af4899bedf7f7d804968ba.png -------------------------------------------------------------------------------- /docs/docs/.vuepress/public/da52c1fe08e34be6be79fbe5c2b758d2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HimitZH/HOJ/2a3b8fa844b066df7568a588f2681c7eebebd51d/docs/docs/.vuepress/public/da52c1fe08e34be6be79fbe5c2b758d2.png -------------------------------------------------------------------------------- /docs/docs/.vuepress/public/default_judge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HimitZH/HOJ/2a3b8fa844b066df7568a588f2681c7eebebd51d/docs/docs/.vuepress/public/default_judge.png -------------------------------------------------------------------------------- /docs/docs/.vuepress/public/e279d10f27034767aba7a6fe81c605af.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HimitZH/HOJ/2a3b8fa844b066df7568a588f2681c7eebebd51d/docs/docs/.vuepress/public/e279d10f27034767aba7a6fe81c605af.png -------------------------------------------------------------------------------- /docs/docs/.vuepress/public/e6f17df56f26488c895944713a80e9ed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HimitZH/HOJ/2a3b8fa844b066df7568a588f2681c7eebebd51d/docs/docs/.vuepress/public/e6f17df56f26488c895944713a80e9ed.png -------------------------------------------------------------------------------- /docs/docs/.vuepress/public/ecdd9ce03251440d9204bc728ef4d66b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HimitZH/HOJ/2a3b8fa844b066df7568a588f2681c7eebebd51d/docs/docs/.vuepress/public/ecdd9ce03251440d9204bc728ef4d66b.png -------------------------------------------------------------------------------- /docs/docs/.vuepress/public/f059e38d31c44906b35ad4ff0d488013.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HimitZH/HOJ/2a3b8fa844b066df7568a588f2681c7eebebd51d/docs/docs/.vuepress/public/f059e38d31c44906b35ad4ff0d488013.png -------------------------------------------------------------------------------- /docs/docs/.vuepress/public/f4f4a8bbe15e4ef1aa766524eaa6fbeb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HimitZH/HOJ/2a3b8fa844b066df7568a588f2681c7eebebd51d/docs/docs/.vuepress/public/f4f4a8bbe15e4ef1aa766524eaa6fbeb.png -------------------------------------------------------------------------------- /docs/docs/.vuepress/public/f6792ddc05f34527bdf744fa4d6d5c88.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HimitZH/HOJ/2a3b8fa844b066df7568a588f2681c7eebebd51d/docs/docs/.vuepress/public/f6792ddc05f34527bdf744fa4d6d5c88.png -------------------------------------------------------------------------------- /docs/docs/.vuepress/public/f7207bbef5f64aa5b313de27615a48c7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HimitZH/HOJ/2a3b8fa844b066df7568a588f2681c7eebebd51d/docs/docs/.vuepress/public/f7207bbef5f64aa5b313de27615a48c7.png -------------------------------------------------------------------------------- /docs/docs/.vuepress/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HimitZH/HOJ/2a3b8fa844b066df7568a588f2681c7eebebd51d/docs/docs/.vuepress/public/favicon.ico -------------------------------------------------------------------------------- /docs/docs/.vuepress/public/fb85cffa62e04b2cac3f40af3b5ac0d7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HimitZH/HOJ/2a3b8fa844b066df7568a588f2681c7eebebd51d/docs/docs/.vuepress/public/fb85cffa62e04b2cac3f40af3b5ac0d7.png -------------------------------------------------------------------------------- /docs/docs/.vuepress/public/fe1cf4b8c0174933b8ffc8f17a486b53.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HimitZH/HOJ/2a3b8fa844b066df7568a588f2681c7eebebd51d/docs/docs/.vuepress/public/fe1cf4b8c0174933b8ffc8f17a486b53.png -------------------------------------------------------------------------------- /docs/docs/.vuepress/public/interactive_judge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HimitZH/HOJ/2a3b8fa844b066df7568a588f2681c7eebebd51d/docs/docs/.vuepress/public/interactive_judge.png -------------------------------------------------------------------------------- /docs/docs/.vuepress/public/judge_dispatch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HimitZH/HOJ/2a3b8fa844b066df7568a588f2681c7eebebd51d/docs/docs/.vuepress/public/judge_dispatch.png -------------------------------------------------------------------------------- /docs/docs/.vuepress/public/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HimitZH/HOJ/2a3b8fa844b066df7568a588f2681c7eebebd51d/docs/docs/.vuepress/public/logo.png -------------------------------------------------------------------------------- /docs/docs/.vuepress/public/nacos_pwd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HimitZH/HOJ/2a3b8fa844b066df7568a588f2681c7eebebd51d/docs/docs/.vuepress/public/nacos_pwd.png -------------------------------------------------------------------------------- /docs/docs/.vuepress/public/remote_judge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HimitZH/HOJ/2a3b8fa844b066df7568a588f2681c7eebebd51d/docs/docs/.vuepress/public/remote_judge.png -------------------------------------------------------------------------------- /docs/docs/.vuepress/public/sandbox_error.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HimitZH/HOJ/2a3b8fa844b066df7568a588f2681c7eebebd51d/docs/docs/.vuepress/public/sandbox_error.webp -------------------------------------------------------------------------------- /docs/docs/.vuepress/public/scrollBoard_create.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HimitZH/HOJ/2a3b8fa844b066df7568a588f2681c7eebebd51d/docs/docs/.vuepress/public/scrollBoard_create.png -------------------------------------------------------------------------------- /docs/docs/.vuepress/public/scrollBoard_show.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HimitZH/HOJ/2a3b8fa844b066df7568a588f2681c7eebebd51d/docs/docs/.vuepress/public/scrollBoard_show.png -------------------------------------------------------------------------------- /docs/docs/.vuepress/public/scrollBoard_start.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HimitZH/HOJ/2a3b8fa844b066df7568a588f2681c7eebebd51d/docs/docs/.vuepress/public/scrollBoard_start.png -------------------------------------------------------------------------------- /docs/docs/.vuepress/public/setting_init.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HimitZH/HOJ/2a3b8fa844b066df7568a588f2681c7eebebd51d/docs/docs/.vuepress/public/setting_init.png -------------------------------------------------------------------------------- /docs/docs/.vuepress/public/setting_switch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HimitZH/HOJ/2a3b8fa844b066df7568a588f2681c7eebebd51d/docs/docs/.vuepress/public/setting_switch.png -------------------------------------------------------------------------------- /docs/docs/.vuepress/public/spj_judge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HimitZH/HOJ/2a3b8fa844b066df7568a588f2681c7eebebd51d/docs/docs/.vuepress/public/spj_judge.png -------------------------------------------------------------------------------- /docs/docs/.vuepress/public/startup_error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HimitZH/HOJ/2a3b8fa844b066df7568a588f2681c7eebebd51d/docs/docs/.vuepress/public/startup_error.png -------------------------------------------------------------------------------- /docs/docs/.vuepress/public/sys_architecture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HimitZH/HOJ/2a3b8fa844b066df7568a588f2681c7eebebd51d/docs/docs/.vuepress/public/sys_architecture.png -------------------------------------------------------------------------------- /docs/docs/.vuepress/public/wxpay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HimitZH/HOJ/2a3b8fa844b066df7568a588f2681c7eebebd51d/docs/docs/.vuepress/public/wxpay.png -------------------------------------------------------------------------------- /docs/docs/develop/backend.md: -------------------------------------------------------------------------------- 1 | # 后端开发文档 2 | 3 | ## 一、技术&项目结构介绍 4 | 5 | 待续...... 6 | 7 | ## 二、环境准备 8 | 9 | 待续...... 10 | 11 | ## 三、本地启动 12 | 13 | 待续...... -------------------------------------------------------------------------------- /docs/docs/monomer/nacos.md: -------------------------------------------------------------------------------- 1 | # 单体部署④——Nacos部署 2 | 3 | ## docker部署 4 | 5 | ```shell 6 | docker run -d \ 7 | -e JVM_XMS=384m \ 8 | -e JVM_XMX=384m \ 9 | -e JVM_XMN=192m \ 10 | -e MODE=standalone \ 11 | -e SPRING_DATASOURCE_PLATFORM=mysql \ 12 | -e MYSQL_SERVICE_HOST=mysql_host \ 13 | -e MYSQL_SERVICE_PORT=mysql_port \ 14 | -e MYSQL_SERVICE_USER=root \ 15 | -e MYSQL_SERVICE_PASSWORD="mysql_root_password" \ 16 | -e MYSQL_SERVICE_DB_NAME=nacos \ 17 | --env NACOS_AUTH_ENABLE=true \ 18 | -p 8848:8848 \ 19 | --name nacos \ 20 | --restart=always \ 21 | nacos/nacos-server:1.4.2 22 | ``` 23 | 24 | ## 常规部署 25 | 26 | 请自行百度下载修改配置 -------------------------------------------------------------------------------- /docs/docs/monomer/redis.md: -------------------------------------------------------------------------------- 1 | # 单体部署③——Redis部署 2 | 3 | ## docker部署 4 | 5 | ```shell 6 | docker run -d --name redis -p 6379:6379 \ 7 | -v $PWD/hoj/data/redis/data:/data \ 8 | --restart="always" \ 9 | redis \ 10 | --requirepass "redis_password" 11 | ``` 12 | 13 | ## 常规部署 14 | 15 | 请自行百度。。 -------------------------------------------------------------------------------- /docs/docs/use/cancel-judge.md: -------------------------------------------------------------------------------- 1 | # 取消评测 2 | 3 | :::info 4 | 5 | ​ **适用**:只有**超级管理员**拥有该权限。 6 | 7 | ​ **功能**:可以取消所有提交,包括普通提交和比赛提交。 8 | 9 | ​ **注意**:普通提交被取消评测为**Cancelled**状态,则该提交不纳入排行榜计分,比赛提交被取消,则同样比赛排行榜不计该提交的得分。 10 | 11 | ::: 12 | 13 | ### 1. 操作方式 14 | 15 | 点击评测列表中的每个提交的状态,即可选择 **修改评测** 或 **取消评测** 16 | 17 | ![取消评测](/e279d10f27034767aba7a6fe81c605af.png) 18 | 19 | 20 | 21 | ### 2. 取消评测 22 | 23 | 1. 点击确认**取消评测**后,该提交会被标记为取消(**Cancelled**)的状态 24 | 25 | ![取消评测](/c1b462bbc01b433e9fc8cd4a641077e8.png) 26 | 27 | 2. 同时会有"人工评测"的标记,标致着被修改了,在"评测源"一栏会写明由某用户名进行人工评测。 28 | 29 | ![取消评测](/1e9fa6d4f446425c9213adb2027c77b0.png) 30 | 31 | ### 3. 修改评测结果 32 | 33 | 点击提交的状态,选择 **修改评测** 即可修改该提交的结果状态。 34 | 35 | - **ACM题目**的提交可以修改最终状态值,同时也会有"人工评测"的标记。 36 | 37 | ![ACM题目修改评测](/c50314e739ff4c38b6fbd41b9db674dc.png) 38 | 39 | 40 | 41 | - **OI题目**的提交可以修改最终状态值和得分,同时也会有"人工评测"的标记。 42 | 43 | ![OI题目修改评测](/fb85cffa62e04b2cac3f40af3b5ac0d7.png) -------------------------------------------------------------------------------- /docs/docs/use/discussion-admin.md: -------------------------------------------------------------------------------- 1 | # 评论管理 2 | 3 | ![评论管理](/6fcdb9f6895043498cb9d4bbadeb0a5b.png) 4 | 5 | 6 | :::tip 7 | - 后台管理员可以查看所有的讨论帖,并且可以选择是否置顶,是否正常显示,删除,查看等 8 | - 后台管理员可以查看对应讨论帖的举报内容 9 | ::: 10 | 11 | ![在这里插入图片描述](/20210523221321418.png) 12 | 13 | -------------------------------------------------------------------------------- /docs/docs/use/import-user.md: -------------------------------------------------------------------------------- 1 | ## 导入用户 2 | 3 | ![在这里插入图片描述](/338bf9db257844a1b32a4ff54c6528f6.png) 4 | 5 | 6 | 7 | **要求如下:** 8 | 9 | :::tip 10 | 1. 用户数据导入仅支持csv格式的用户数据。 11 | 2. 共七列数据:用户名和密码不能为空,邮箱、真实姓名、性别、昵称和学校可选填,否则该行数据可能导入失败。 12 | 3. 第一行不必写(“用户名”,“密码”,“邮箱”,"真实姓名",“性别”,“昵称”,“学校”)这7个列名 13 | 4. 性别为男请使用“male”或“0”,女请使用“female”或“1”,不填默认为“secrecy”。 14 | 5. 请导入保存为UTF-8编码的文件,否则中文可能会乱码。 15 | ::: 16 | -------------------------------------------------------------------------------- /docs/docs/use/notice-announcement.md: -------------------------------------------------------------------------------- 1 | # 通知和公告发布 2 | 3 | :::tip 4 | 1. 通知和公告都仅有超级管理员可操作 5 | 2. 通知是系统消息通知,每个小时推送一次到用户的站内消息系统 6 | ::: 7 | 8 | ![在这里插入图片描述](/b2e1edf697494ed68c760beb63b782bf.png) 9 | 10 | 11 | 12 | ![在这里插入图片描述](/fe1cf4b8c0174933b8ffc8f17a486b53.png) -------------------------------------------------------------------------------- /docs/docs/use/scroll-board.md: -------------------------------------------------------------------------------- 1 | # 比赛滚榜 2 | 3 | :::tip 4 | 5 | - 仅支持**ACM赛制**的比赛的榜单可以进行滚榜 6 | - 比赛结束后方可进行滚榜 7 | - 比赛需配置开启封榜 8 | 9 | ::: 10 | 11 | ### 1. 创建或修改比赛 12 | 13 | 配置比赛为**ACM赛制**,同时点击开启封榜,配置封榜时长,同时建议设置**比赛完后继续封榜**,避免榜单赛后自动刷新,但却还未滚榜! 14 | 15 | ![创建或修改比赛](/scrollBoard_create.png) 16 | 17 | ### 2. 进入比赛 18 | 19 | 进入比赛后,点击导航栏的滚榜,确定比赛的金银铜牌的数量是否正确,然后点击**开始滚榜**跳转到滚榜界面。 20 | 21 | ![进入比赛](/scrollBoard_start.png) 22 | 23 | 24 | 25 | ### 3. 滚榜演示 26 | 27 | 进入到滚榜页面后,逐渐按下**回车键**则开始滚榜! 28 | 29 | ![滚榜演示](/scrollBoard_show.png) -------------------------------------------------------------------------------- /docs/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "hoj docs", 3 | "version": "1.0.0", 4 | "description": "An open source online judge system base on SpringBoot, Springcloud Alibaba and Vue.js !", 5 | "main": "index.js", 6 | "license": "MIT", 7 | "devDependencies": { 8 | "@vuepress/plugin-active-header-links": "^1.5.2", 9 | "@vuepress/plugin-back-to-top": "^1.5.2", 10 | "@vuepress/plugin-register-components": "^1.5.2", 11 | "vuepress": "^1.9.7", 12 | "vuepress-plugin-nprogress": "^1.1.8", 13 | "vuepress-plugin-smooth-scroll": "^0.0.10", 14 | "vuepress-plugin-zooming": "^1.1.8", 15 | "vuepress-theme-hope": "^1.14.3" 16 | }, 17 | "scripts": { 18 | "dev": "vuepress dev docs", 19 | "build": "vuepress build docs" 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /hoj-scrollBoard/README.md: -------------------------------------------------------------------------------- 1 | # ScrollBoard.js 2 | 3 | Powered by [qinshaoxuan/ScrollBoard.js](https://github.com/qinshaoxuan/ScrollBoard.js),Modified By [Himit_ZH](https://github.com/HimitZH) 4 | -------------------------------------------------------------------------------- /hoj-scrollBoard/bootstrap/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HimitZH/HOJ/2a3b8fa844b066df7568a588f2681c7eebebd51d/hoj-scrollBoard/bootstrap/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /hoj-scrollBoard/bootstrap/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HimitZH/HOJ/2a3b8fa844b066df7568a588f2681c7eebebd51d/hoj-scrollBoard/bootstrap/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /hoj-scrollBoard/bootstrap/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HimitZH/HOJ/2a3b8fa844b066df7568a588f2681c7eebebd51d/hoj-scrollBoard/bootstrap/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /hoj-scrollBoard/bootstrap/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HimitZH/HOJ/2a3b8fa844b066df7568a588f2681c7eebebd51d/hoj-scrollBoard/bootstrap/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /hoj-scrollBoard/bootstrap/js/npm.js: -------------------------------------------------------------------------------- 1 | // This file is autogenerated via the `commonjs` Grunt task. You can require() this file in a CommonJS environment. 2 | require('../../js/transition.js') 3 | require('../../js/alert.js') 4 | require('../../js/button.js') 5 | require('../../js/carousel.js') 6 | require('../../js/collapse.js') 7 | require('../../js/dropdown.js') 8 | require('../../js/modal.js') 9 | require('../../js/tooltip.js') 10 | require('../../js/popover.js') 11 | require('../../js/scrollspy.js') 12 | require('../../js/tab.js') 13 | require('../../js/affix.js') -------------------------------------------------------------------------------- /hoj-springboot/.gitignore: -------------------------------------------------------------------------------- 1 | *.classpath 2 | 3 | # Package Files 4 | *.jar 5 | *.war 6 | *.ear 7 | *.log 8 | *.iml 9 | 10 | .DS_Store 11 | node_modules 12 | dist/ 13 | target/ 14 | out/ 15 | .idea/ 16 | .classpath 17 | .project 18 | 19 | # local env files 20 | .env.local 21 | .env.*.local 22 | 23 | # Log files 24 | npm-debug.log* 25 | yarn-debug.log* 26 | yarn-error.log* 27 | pnpm-debug.log* 28 | 29 | # Editor directories and files 30 | .idea 31 | .vscode 32 | *.suo 33 | *.ntvs* 34 | *.njsproj 35 | *.sln 36 | *.sw? 37 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/annotation/AnonApi.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.annotation; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | import java.lang.annotation.Target; 7 | 8 | /** 9 | * @Author Himit_ZH 10 | * @Date 2022/10/27 11 | * controller的方法或类标记了该注解,则说明对应接口是开放接口,无需登录认证 12 | */ 13 | @Target({ElementType.TYPE, ElementType.METHOD}) 14 | @Retention(RetentionPolicy.RUNTIME) 15 | public @interface AnonApi { 16 | } -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/annotation/HOJAccess.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.annotation; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | import java.lang.annotation.Target; 7 | 8 | /** 9 | * @Author Himit_ZH 10 | * @Date 2022/5/9 11 | */ 12 | @Target({ElementType.TYPE, ElementType.METHOD}) 13 | @Retention(RetentionPolicy.RUNTIME) 14 | public @interface HOJAccess { 15 | HOJAccessEnum[] value() default {}; 16 | } 17 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/annotation/HOJAccessEnum.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.annotation; 2 | 3 | /** 4 | * @Author Himit_ZH 5 | * @Date 2022/5/9 6 | */ 7 | public enum HOJAccessEnum { 8 | /** 9 | * 公共讨论区 10 | */ 11 | PUBLIC_DISCUSSION, 12 | 13 | /** 14 | * 团队讨论区 15 | */ 16 | GROUP_DISCUSSION, 17 | 18 | /** 19 | * 比赛评论 20 | */ 21 | CONTEST_COMMENT, 22 | 23 | /** 24 | * 公共评测 25 | */ 26 | PUBLIC_JUDGE, 27 | 28 | /** 29 | * 团队评测 30 | */ 31 | GROUP_JUDGE, 32 | 33 | /** 34 | * 比赛评测 35 | */ 36 | CONTEST_JUDGE, 37 | 38 | /** 39 | * 隐藏非比赛提交详情的代码 40 | */ 41 | HIDE_NON_CONTEST_SUBMISSION_CODE 42 | } 43 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/common/exception/StatusFailException.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.common.exception; 2 | 3 | /** 4 | * @Author: Himit_ZH 5 | * @Date: 2022/3/9 10:27 6 | * @Description: 7 | */ 8 | public class StatusFailException extends Exception{ 9 | public StatusFailException() { 10 | } 11 | 12 | public StatusFailException(String message) { 13 | super(message); 14 | } 15 | 16 | public StatusFailException(String message, Throwable cause) { 17 | super(message, cause); 18 | } 19 | 20 | public StatusFailException(Throwable cause) { 21 | super(cause); 22 | } 23 | 24 | public StatusFailException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) { 25 | super(message, cause, enableSuppression, writableStackTrace); 26 | } 27 | } -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/common/exception/StatusForbiddenException.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.common.exception; 2 | 3 | /** 4 | * @Author: Himit_ZH 5 | * @Date: 2022/3/9 10:29 6 | * @Description: 7 | */ 8 | public class StatusForbiddenException extends Exception{ 9 | 10 | public StatusForbiddenException() { 11 | } 12 | 13 | public StatusForbiddenException(String message) { 14 | super(message); 15 | } 16 | 17 | public StatusForbiddenException(String message, Throwable cause) { 18 | super(message, cause); 19 | } 20 | 21 | public StatusForbiddenException(Throwable cause) { 22 | super(cause); 23 | } 24 | 25 | public StatusForbiddenException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) { 26 | super(message, cause, enableSuppression, writableStackTrace); 27 | } 28 | } -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/common/exception/StatusNotFoundException.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.common.exception; 2 | 3 | /** 4 | * @Author: Himit_ZH 5 | * @Date: 2022/3/9 10:30 6 | * @Description: 7 | */ 8 | public class StatusNotFoundException extends Exception{ 9 | 10 | public StatusNotFoundException() { 11 | } 12 | 13 | public StatusNotFoundException(String message) { 14 | super(message); 15 | } 16 | 17 | public StatusNotFoundException(String message, Throwable cause) { 18 | super(message, cause); 19 | } 20 | 21 | public StatusNotFoundException(Throwable cause) { 22 | super(cause); 23 | } 24 | 25 | public StatusNotFoundException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) { 26 | super(message, cause, enableSuppression, writableStackTrace); 27 | } 28 | } -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/common/result/ResultStatus.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.common.result; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Getter; 5 | 6 | /** 7 | * @Author: Himit_ZH 8 | * @Date: 2022/3/9 15:17 9 | * @Description: 10 | */ 11 | @Getter 12 | @AllArgsConstructor 13 | public enum ResultStatus { 14 | 15 | SUCCESS(200,"成功"), 16 | 17 | FAIL(400,"失败"), 18 | 19 | ACCESS_DENIED(401,"访问受限"), 20 | 21 | FORBIDDEN(403,"拒绝访问"), 22 | 23 | NOT_FOUND(404,"数据不存在"), 24 | 25 | SYSTEM_ERROR(500,"系统错误"); 26 | 27 | 28 | private int status; 29 | 30 | private String description; 31 | } -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/config/CheckLanguageConfig.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.config; 2 | 3 | import lombok.Data; 4 | import org.springframework.boot.context.properties.ConfigurationProperties; 5 | import org.springframework.context.annotation.Configuration; 6 | import top.hcode.hoj.pojo.entity.problem.Language; 7 | 8 | import java.util.List; 9 | 10 | /** 11 | * @Author Himit_ZH 12 | * @Date 2023/7/8 13 | */ 14 | @Configuration 15 | @ConfigurationProperties(prefix = "check-language-config") 16 | @Data 17 | public class CheckLanguageConfig { 18 | 19 | private List list; 20 | 21 | @Override 22 | public String toString() { 23 | return "AntPoolConfigList{" + 24 | "list=" + list + 25 | '}'; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/config/DataSourceConfigure.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.config; 2 | 3 | import lombok.Data; 4 | import org.springframework.boot.context.properties.ConfigurationProperties; 5 | import org.springframework.cloud.context.config.annotation.RefreshScope; 6 | import org.springframework.stereotype.Component; 7 | 8 | /** 9 | * @Author Himit_ZH 10 | * @Date 2022/6/15 11 | */ 12 | @Component 13 | @RefreshScope 14 | @ConfigurationProperties(prefix = "hoj.db") 15 | @Data 16 | public class DataSourceConfigure { 17 | 18 | private String username; 19 | 20 | private String password; 21 | 22 | private String host; 23 | 24 | private Integer port; 25 | 26 | private String name; 27 | } 28 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/config/JedisPoolConfigure.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.config; 2 | 3 | import lombok.Data; 4 | import org.springframework.boot.context.properties.ConfigurationProperties; 5 | import org.springframework.cloud.context.config.annotation.RefreshScope; 6 | import org.springframework.stereotype.Component; 7 | 8 | /** 9 | * @Author Himit_ZH 10 | * @Date 2022/6/15 11 | */ 12 | @Component 13 | @RefreshScope 14 | @ConfigurationProperties(prefix = "hoj.redis") 15 | @Data 16 | public class JedisPoolConfigure { 17 | private String host; 18 | 19 | private Integer port; 20 | 21 | private String password; 22 | } 23 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/common/AnnouncementEntityService.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.dao.common; 2 | 3 | import com.baomidou.mybatisplus.core.metadata.IPage; 4 | import top.hcode.hoj.pojo.entity.common.Announcement; 5 | import com.baomidou.mybatisplus.extension.service.IService; 6 | import top.hcode.hoj.pojo.vo.AnnouncementVO; 7 | 8 | /** 9 | *

10 | * 服务类 11 | *

12 | * 13 | * @author Himit_ZH 14 | * @since 2020-10-23 15 | */ 16 | public interface AnnouncementEntityService extends IService { 17 | 18 | IPage getAnnouncementList(int limit, int currentPage, Boolean notAdmin); 19 | 20 | IPage getContestAnnouncement(Long cid, Boolean notAdmin, int limit, int currentPage); 21 | } 22 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/contest/ContestAnnouncementEntityService.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.dao.contest; 2 | 3 | 4 | import com.baomidou.mybatisplus.extension.service.IService; 5 | import top.hcode.hoj.pojo.entity.contest.ContestAnnouncement; 6 | 7 | public interface ContestAnnouncementEntityService extends IService { 8 | } 9 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/contest/ContestEntityService.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.dao.contest; 2 | 3 | import com.baomidou.mybatisplus.core.metadata.IPage; 4 | import top.hcode.hoj.pojo.vo.ContestVO; 5 | import top.hcode.hoj.pojo.entity.contest.Contest; 6 | import com.baomidou.mybatisplus.extension.service.IService; 7 | 8 | import java.util.List; 9 | 10 | /** 11 | *

12 | * 服务类 13 | *

14 | * 15 | * @author Himit_ZH 16 | * @since 2020-10-23 17 | */ 18 | public interface ContestEntityService extends IService { 19 | 20 | List getWithinNext14DaysContests(); 21 | 22 | IPage getContestList(Integer limit, Integer currentPage, Integer type, Integer status, String keyword); 23 | 24 | ContestVO getContestInfoById(long cid); 25 | } 26 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/contest/ContestExplanationEntityService.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.dao.contest; 2 | 3 | import top.hcode.hoj.pojo.entity.contest.ContestExplanation; 4 | import com.baomidou.mybatisplus.extension.service.IService; 5 | 6 | /** 7 | *

8 | * 服务类 9 | *

10 | * 11 | * @author Himit_ZH 12 | * @since 2020-10-23 13 | */ 14 | public interface ContestExplanationEntityService extends IService { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/contest/ContestPrintEntityService.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.dao.contest; 2 | 3 | import com.baomidou.mybatisplus.extension.service.IService; 4 | import top.hcode.hoj.pojo.entity.contest.ContestPrint; 5 | 6 | /** 7 | * @Author: Himit_ZH 8 | * @Date: 2021/9/19 21:05 9 | * @Description: 10 | */ 11 | public interface ContestPrintEntityService extends IService { 12 | } -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/contest/ContestRegisterEntityService.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.dao.contest; 2 | 3 | import top.hcode.hoj.pojo.entity.contest.ContestRegister; 4 | import com.baomidou.mybatisplus.extension.service.IService; 5 | 6 | /** 7 | *

8 | * 服务类 9 | *

10 | * 11 | * @author Himit_ZH 12 | * @since 2020-10-23 13 | */ 14 | public interface ContestRegisterEntityService extends IService { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/contest/ContestScoreEntityService.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.dao.contest; 2 | 3 | import top.hcode.hoj.pojo.entity.contest.ContestScore; 4 | import com.baomidou.mybatisplus.extension.service.IService; 5 | 6 | /** 7 | *

8 | * 服务类 9 | *

10 | * 11 | * @author Himit_ZH 12 | * @since 2020-10-23 13 | */ 14 | public interface ContestScoreEntityService extends IService { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/contest/impl/ContestAnnouncementEntityServiceImpl.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.dao.contest.impl; 2 | 3 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 4 | import org.springframework.stereotype.Service; 5 | import top.hcode.hoj.mapper.ContestAnnouncementMapper; 6 | import top.hcode.hoj.pojo.entity.contest.ContestAnnouncement; 7 | import top.hcode.hoj.dao.contest.ContestAnnouncementEntityService; 8 | 9 | /** 10 | * @Author: Himit_ZH 11 | * @Date: 2020/12/21 22:59 12 | * @Description: 13 | */ 14 | @Service 15 | public class ContestAnnouncementEntityServiceImpl extends ServiceImpl implements ContestAnnouncementEntityService { 16 | } -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/contest/impl/ContestExplanationEntityServiceImpl.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.dao.contest.impl; 2 | 3 | import top.hcode.hoj.pojo.entity.contest.ContestExplanation; 4 | import top.hcode.hoj.mapper.ContestExplanationMapper; 5 | import top.hcode.hoj.dao.contest.ContestExplanationEntityService; 6 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 7 | import org.springframework.stereotype.Service; 8 | 9 | /** 10 | *

11 | * 服务实现类 12 | *

13 | * 14 | * @author Himit_ZH 15 | * @since 2020-10-23 16 | */ 17 | @Service 18 | public class ContestExplanationEntityServiceImpl extends ServiceImpl implements ContestExplanationEntityService { 19 | 20 | } 21 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/contest/impl/ContestPrintEntityServiceImpl.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.dao.contest.impl; 2 | 3 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 4 | import org.springframework.stereotype.Service; 5 | 6 | import top.hcode.hoj.mapper.ContestPrintMapper; 7 | import top.hcode.hoj.pojo.entity.contest.ContestPrint; 8 | import top.hcode.hoj.dao.contest.ContestPrintEntityService; 9 | 10 | /** 11 | * @Author: Himit_ZH 12 | * @Date: 2021/9/19 21:05 13 | * @Description: 14 | */ 15 | @Service 16 | public class ContestPrintEntityServiceImpl extends ServiceImpl implements ContestPrintEntityService { 17 | } -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/contest/impl/ContestRegisterEntityServiceImpl.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.dao.contest.impl; 2 | 3 | import top.hcode.hoj.pojo.entity.contest.ContestRegister; 4 | import top.hcode.hoj.mapper.ContestRegisterMapper; 5 | import top.hcode.hoj.dao.contest.ContestRegisterEntityService; 6 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 7 | import org.springframework.stereotype.Service; 8 | 9 | /** 10 | *

11 | * 服务实现类 12 | *

13 | * 14 | * @author Himit_ZH 15 | * @since 2020-10-23 16 | */ 17 | @Service 18 | public class ContestRegisterEntityServiceImpl extends ServiceImpl implements ContestRegisterEntityService { 19 | 20 | } 21 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/contest/impl/ContestScoreEntityServiceImpl.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.dao.contest.impl; 2 | 3 | import top.hcode.hoj.pojo.entity.contest.ContestScore; 4 | import top.hcode.hoj.mapper.ContestScoreMapper; 5 | import top.hcode.hoj.dao.contest.ContestScoreEntityService; 6 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 7 | import org.springframework.stereotype.Service; 8 | 9 | /** 10 | *

11 | * 服务实现类 12 | *

13 | * 14 | * @author Himit_ZH 15 | * @since 2020-10-23 16 | */ 17 | @Service 18 | public class ContestScoreEntityServiceImpl extends ServiceImpl implements ContestScoreEntityService { 19 | 20 | } 21 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/discussion/CommentEntityService.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.dao.discussion; 2 | 3 | import com.baomidou.mybatisplus.core.metadata.IPage; 4 | import top.hcode.hoj.pojo.entity.discussion.Comment; 5 | import com.baomidou.mybatisplus.extension.service.IService; 6 | import top.hcode.hoj.pojo.vo.CommentVO; 7 | 8 | /** 9 | *

10 | * 服务类 11 | *

12 | * 13 | * @author Himit_ZH 14 | * @since 2020-10-23 15 | */ 16 | public interface CommentEntityService extends IService { 17 | 18 | IPage getCommentList(int limit, int currentPage, Long cid, Integer did, Boolean isRoot, String uid); 19 | 20 | void updateCommentMsg(String recipientId, String senderId, String content, Integer discussionId, Long gid); 21 | 22 | void updateCommentLikeMsg(String recipientId, String senderId, Integer sourceId, String sourceType); 23 | } 24 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/discussion/CommentLikeEntityService.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.dao.discussion; 2 | 3 | import com.baomidou.mybatisplus.extension.service.IService; 4 | import top.hcode.hoj.pojo.entity.discussion.CommentLike; 5 | 6 | 7 | public interface CommentLikeEntityService extends IService { 8 | } 9 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/discussion/DiscussionEntityService.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.dao.discussion; 2 | 3 | import com.baomidou.mybatisplus.extension.service.IService; 4 | 5 | import top.hcode.hoj.pojo.entity.discussion.Discussion; 6 | import top.hcode.hoj.pojo.vo.DiscussionVO; 7 | 8 | public interface DiscussionEntityService extends IService { 9 | 10 | DiscussionVO getDiscussion(Integer did, String uid); 11 | 12 | void updatePostLikeMsg(String recipientId, String senderId, Integer discussionId, Long gid); 13 | } 14 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/discussion/DiscussionLikeEntityService.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.dao.discussion; 2 | 3 | import com.baomidou.mybatisplus.extension.service.IService; 4 | import top.hcode.hoj.pojo.entity.discussion.DiscussionLike; 5 | 6 | public interface DiscussionLikeEntityService extends IService { 7 | } 8 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/discussion/DiscussionReportEntityService.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.dao.discussion; 2 | 3 | 4 | import com.baomidou.mybatisplus.core.metadata.IPage; 5 | import com.baomidou.mybatisplus.extension.service.IService; 6 | import top.hcode.hoj.pojo.entity.discussion.DiscussionReport; 7 | import top.hcode.hoj.pojo.vo.DiscussionReportVO; 8 | 9 | public interface DiscussionReportEntityService extends IService { 10 | 11 | IPage getDiscussionReportList(Integer limit, Integer currentPage); 12 | } 13 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/discussion/ReplyEntityService.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.dao.discussion; 2 | 3 | import com.baomidou.mybatisplus.extension.service.IService; 4 | import top.hcode.hoj.pojo.entity.discussion.Reply; 5 | import top.hcode.hoj.pojo.vo.ReplyVO; 6 | 7 | import java.util.List; 8 | 9 | /** 10 | * @Author: Himit_ZH 11 | * @Date: 2021/5/5 22:08 12 | * @Description: 13 | */ 14 | public interface ReplyEntityService extends IService { 15 | 16 | public List getAllReplyByCommentId(Long cid, String uid, Boolean isRoot, Integer commentId); 17 | 18 | public void updateReplyMsg(Integer sourceId, String sourceType, String content, 19 | Integer quoteId, String quoteType, String recipientId,String senderId); 20 | } -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/discussion/impl/CommentLikeEntityServiceImpl.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.dao.discussion.impl; 2 | 3 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 4 | import org.springframework.stereotype.Service; 5 | import top.hcode.hoj.mapper.CommentLikeMapper; 6 | import top.hcode.hoj.pojo.entity.discussion.CommentLike; 7 | import top.hcode.hoj.dao.discussion.CommentLikeEntityService; 8 | 9 | 10 | /** 11 | * @Author: Himit_ZH 12 | * @Date: 2021/5/4 22:31 13 | * @Description: 14 | */ 15 | @Service 16 | public class CommentLikeEntityServiceImpl extends ServiceImpl implements CommentLikeEntityService { 17 | } -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/discussion/impl/DiscussionLikeEntityServiceImpl.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.dao.discussion.impl; 2 | 3 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 4 | import org.springframework.stereotype.Service; 5 | import top.hcode.hoj.mapper.DiscussionLikeMapper; 6 | import top.hcode.hoj.pojo.entity.discussion.DiscussionLike; 7 | import top.hcode.hoj.dao.discussion.DiscussionLikeEntityService; 8 | 9 | /** 10 | * @Author: Himit_ZH 11 | * @Date: 2021/5/4 22:31 12 | * @Description: 13 | */ 14 | @Service 15 | public class DiscussionLikeEntityServiceImpl extends ServiceImpl implements DiscussionLikeEntityService { 16 | } -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/group/GroupAnnouncementEntityService.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.dao.group; 2 | 3 | import top.hcode.hoj.pojo.entity.common.Announcement; 4 | import top.hcode.hoj.pojo.vo.AnnouncementVO; 5 | import com.baomidou.mybatisplus.core.metadata.IPage; 6 | import com.baomidou.mybatisplus.extension.service.IService; 7 | 8 | /** 9 | * @Author: LengYun 10 | * @Date: 2022/3/11 13:36 11 | * @Description: 12 | */ 13 | public interface GroupAnnouncementEntityService extends IService { 14 | 15 | IPage getAnnouncementList(int limit, int currentPage, Long gid); 16 | 17 | IPage getAdminAnnouncementList(int limit, int currentPage, Long gid); 18 | 19 | } 20 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/group/GroupContestEntityService.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.dao.group; 2 | 3 | import top.hcode.hoj.pojo.entity.contest.Contest; 4 | import top.hcode.hoj.pojo.vo.ContestVO; 5 | import com.baomidou.mybatisplus.core.metadata.IPage; 6 | import com.baomidou.mybatisplus.extension.service.IService; 7 | 8 | /** 9 | * @Author: LengYun 10 | * @Date: 2022/3/11 13:36 11 | * @Description: 12 | */ 13 | public interface GroupContestEntityService extends IService { 14 | 15 | IPage getContestList(int limit, int currentPage, Long gid); 16 | 17 | IPage getAdminContestList(int limit, int currentPage, Long gid); 18 | 19 | } 20 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/group/GroupDiscussionEntityService.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.dao.group; 2 | 3 | import top.hcode.hoj.pojo.entity.discussion.Discussion; 4 | import com.baomidou.mybatisplus.core.metadata.IPage; 5 | import com.baomidou.mybatisplus.extension.service.IService; 6 | 7 | /** 8 | * @Author: LengYun 9 | * @Date: 2022/3/11 13:36 10 | * @Description: 11 | */ 12 | public interface GroupDiscussionEntityService extends IService { 13 | } 14 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/group/GroupEntityService.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.dao.group; 2 | 3 | import top.hcode.hoj.pojo.entity.group.Group; 4 | import top.hcode.hoj.pojo.vo.GroupVO; 5 | import com.baomidou.mybatisplus.core.metadata.IPage; 6 | import com.baomidou.mybatisplus.extension.service.IService; 7 | 8 | /** 9 | * @Author: LengYun 10 | * @Date: 2022/3/11 13:36 11 | * @Description: 12 | */ 13 | public interface GroupEntityService extends IService { 14 | IPage getGroupList(int limit, 15 | int currentPage, 16 | String keyword, 17 | Integer auth, 18 | String uid, 19 | Boolean onlyMine, 20 | Boolean isRoot); 21 | } 22 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/group/GroupProblemEntityService.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.dao.group; 2 | 3 | import top.hcode.hoj.pojo.entity.problem.Problem; 4 | import top.hcode.hoj.pojo.vo.ProblemVO; 5 | import com.baomidou.mybatisplus.core.metadata.IPage; 6 | import com.baomidou.mybatisplus.extension.service.IService; 7 | 8 | /** 9 | * @Author: LengYun 10 | * @Date: 2022/3/11 13:36 11 | * @Description: 12 | */ 13 | public interface GroupProblemEntityService extends IService { 14 | 15 | IPage getProblemList(int limit, int currentPage, Long gid); 16 | 17 | IPage getAdminProblemList(int limit, int currentPage, Long gid); 18 | 19 | } 20 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/group/GroupTrainingEntityService.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.dao.group; 2 | 3 | import top.hcode.hoj.pojo.entity.training.Training; 4 | import top.hcode.hoj.pojo.vo.TrainingVO; 5 | import com.baomidou.mybatisplus.core.metadata.IPage; 6 | import com.baomidou.mybatisplus.extension.service.IService; 7 | 8 | /** 9 | * @Author: LengYun 10 | * @Date: 2022/3/11 13:36 11 | * @Description: 12 | */ 13 | public interface GroupTrainingEntityService extends IService { 14 | 15 | IPage getTrainingList(int limit, int currentPage, Long gid); 16 | 17 | IPage getAdminTrainingList(int limit, int currentPage, Long gid); 18 | 19 | } 20 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/group/impl/GroupDiscussionEntityServiceImpl.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.dao.group.impl; 2 | 3 | import top.hcode.hoj.dao.group.GroupDiscussionEntityService; 4 | import top.hcode.hoj.mapper.GroupDiscussionMapper; 5 | import top.hcode.hoj.pojo.entity.discussion.Discussion; 6 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 7 | import org.springframework.stereotype.Service; 8 | 9 | /** 10 | * @Author: LengYun 11 | * @Date: 2022/3/11 13:36 12 | * @Description: 13 | */ 14 | @Service 15 | public class GroupDiscussionEntityServiceImpl extends ServiceImpl implements GroupDiscussionEntityService { 16 | } 17 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/judge/JudgeCaseEntityService.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.dao.judge; 2 | 3 | import top.hcode.hoj.pojo.entity.judge.JudgeCase; 4 | import com.baomidou.mybatisplus.extension.service.IService; 5 | 6 | /** 7 | *

8 | * 服务类 9 | *

10 | * 11 | * @author Himit_ZH 12 | * @since 2020-10-23 13 | */ 14 | public interface JudgeCaseEntityService extends IService { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/judge/JudgeServerEntityService.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.dao.judge; 2 | 3 | import com.baomidou.mybatisplus.extension.service.IService; 4 | 5 | import top.hcode.hoj.pojo.entity.judge.JudgeServer; 6 | 7 | public interface JudgeServerEntityService extends IService { 8 | 9 | } 10 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/judge/RemoteJudgeAccountEntityService.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.dao.judge; 2 | 3 | import com.baomidou.mybatisplus.extension.service.IService; 4 | import top.hcode.hoj.pojo.entity.judge.RemoteJudgeAccount; 5 | 6 | public interface RemoteJudgeAccountEntityService extends IService { 7 | } 8 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/judge/impl/JudgeCaseEntityServiceImpl.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.dao.judge.impl; 2 | 3 | import top.hcode.hoj.pojo.entity.judge.JudgeCase; 4 | import top.hcode.hoj.mapper.JudgeCaseMapper; 5 | import top.hcode.hoj.dao.judge.JudgeCaseEntityService; 6 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 7 | import org.springframework.stereotype.Service; 8 | 9 | /** 10 | *

11 | * 服务实现类 12 | *

13 | * 14 | * @author Himit_ZH 15 | * @since 2020-10-23 16 | */ 17 | @Service 18 | public class JudgeCaseEntityServiceImpl extends ServiceImpl implements JudgeCaseEntityService { 19 | 20 | } 21 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/judge/impl/JudgeServerEntityServiceImpl.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.dao.judge.impl; 2 | 3 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 4 | import org.springframework.stereotype.Service; 5 | 6 | import top.hcode.hoj.mapper.JudgeServerMapper; 7 | 8 | import top.hcode.hoj.pojo.entity.judge.JudgeServer; 9 | import top.hcode.hoj.dao.judge.JudgeServerEntityService; 10 | 11 | /** 12 | * @Author: Himit_ZH 13 | * @Date: 2021/4/15 11:27 14 | * @Description: 15 | */ 16 | @Service 17 | public class JudgeServerEntityServiceImpl extends ServiceImpl implements JudgeServerEntityService { 18 | 19 | } -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/judge/impl/RemoteJudgeAccountEntityServiceImpl.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.dao.judge.impl; 2 | 3 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 4 | import org.springframework.stereotype.Service; 5 | import top.hcode.hoj.mapper.RemoteJudgeAccountMapper; 6 | import top.hcode.hoj.pojo.entity.judge.RemoteJudgeAccount; 7 | import top.hcode.hoj.dao.judge.RemoteJudgeAccountEntityService; 8 | 9 | 10 | /** 11 | * @Author: Himit_ZH 12 | * @Date: 2021/5/18 17:46 13 | * @Description: 14 | */ 15 | @Service 16 | public class RemoteJudgeAccountEntityServiceImpl extends ServiceImpl implements RemoteJudgeAccountEntityService { 17 | } -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/msg/AdminSysNoticeEntityService.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.dao.msg; 2 | 3 | import com.baomidou.mybatisplus.core.metadata.IPage; 4 | import com.baomidou.mybatisplus.extension.service.IService; 5 | import top.hcode.hoj.pojo.entity.msg.AdminSysNotice; 6 | import top.hcode.hoj.pojo.vo.AdminSysNoticeVO; 7 | 8 | 9 | /** 10 | * @Author: Himit_ZH 11 | * @Date: 2021/10/1 20:33 12 | * @Description: 13 | */ 14 | public interface AdminSysNoticeEntityService extends IService { 15 | 16 | public IPage getSysNotice(int limit, int currentPage, String type); 17 | 18 | } -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/msg/MsgRemindEntityService.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.dao.msg; 2 | 3 | import com.baomidou.mybatisplus.core.metadata.IPage; 4 | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; 5 | import com.baomidou.mybatisplus.extension.service.IService; 6 | import top.hcode.hoj.pojo.entity.msg.MsgRemind; 7 | import top.hcode.hoj.pojo.vo.UserMsgVO; 8 | import top.hcode.hoj.pojo.vo.UserUnreadMsgCountVO; 9 | 10 | 11 | /** 12 | * @Author: Himit_ZH 13 | * @Date: 2021/10/1 20:32 14 | * @Description: 15 | */ 16 | public interface MsgRemindEntityService extends IService { 17 | 18 | UserUnreadMsgCountVO getUserUnreadMsgCount(String uid); 19 | 20 | IPage getUserMsg(Page page, String uid, String action); 21 | } -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/msg/UserSysNoticeEntityService.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.dao.msg; 2 | 3 | import com.baomidou.mybatisplus.core.metadata.IPage; 4 | import com.baomidou.mybatisplus.extension.service.IService; 5 | import top.hcode.hoj.pojo.entity.msg.UserSysNotice; 6 | import top.hcode.hoj.pojo.vo.SysMsgVO; 7 | 8 | public interface UserSysNoticeEntityService extends IService { 9 | 10 | IPage getSysNotice(int limit, int currentPage, String uid); 11 | 12 | IPage getMineNotice(int limit, int currentPage, String uid); 13 | } -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/problem/CategoryEntityService.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.dao.problem; 2 | 3 | import com.baomidou.mybatisplus.extension.service.IService; 4 | import top.hcode.hoj.pojo.entity.problem.Category; 5 | 6 | 7 | public interface CategoryEntityService extends IService { 8 | } 9 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/problem/CodeTemplateEntityService.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.dao.problem; 2 | 3 | import com.baomidou.mybatisplus.extension.service.IService; 4 | import top.hcode.hoj.pojo.entity.problem.CodeTemplate; 5 | 6 | public interface CodeTemplateEntityService extends IService { 7 | } 8 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/problem/LanguageEntityService.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.dao.problem; 2 | 3 | import com.baomidou.mybatisplus.extension.service.IService; 4 | import top.hcode.hoj.pojo.entity.problem.Language; 5 | 6 | public interface LanguageEntityService extends IService { 7 | } 8 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/problem/ProblemCaseEntityService.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.dao.problem; 2 | 3 | import com.baomidou.mybatisplus.extension.service.IService; 4 | import top.hcode.hoj.pojo.entity.problem.ProblemCase; 5 | 6 | /** 7 | * @Author: Himit_ZH 8 | * @Date: 2020/12/14 19:58 9 | * @Description: 10 | */ 11 | public interface ProblemCaseEntityService extends IService { 12 | } -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/problem/ProblemCountEntityService.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.dao.problem; 2 | 3 | import top.hcode.hoj.pojo.entity.problem.ProblemCount; 4 | import com.baomidou.mybatisplus.extension.service.IService; 5 | 6 | /** 7 | *

8 | * 服务类 9 | *

10 | * 11 | * @author Himit_ZH 12 | * @since 2020-10-23 13 | */ 14 | public interface ProblemCountEntityService extends IService { 15 | ProblemCount getContestProblemCount(Long pid, Long cpid, Long cid); 16 | } 17 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/problem/ProblemLanguageEntityService.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.dao.problem; 2 | 3 | import com.baomidou.mybatisplus.extension.service.IService; 4 | import top.hcode.hoj.pojo.entity.problem.ProblemLanguage; 5 | 6 | /** 7 | * @Author: Himit_ZH 8 | * @Date: 2020/12/13 00:03 9 | * @Description: 10 | */ 11 | public interface ProblemLanguageEntityService extends IService { 12 | } -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/problem/ProblemTagEntityService.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.dao.problem; 2 | 3 | import com.baomidou.mybatisplus.extension.service.IService; 4 | import top.hcode.hoj.pojo.entity.problem.ProblemTag; 5 | 6 | public interface ProblemTagEntityService extends IService { 7 | } 8 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/problem/TagClassificationEntityService.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.dao.problem; 2 | 3 | import com.baomidou.mybatisplus.extension.service.IService; 4 | import top.hcode.hoj.pojo.entity.problem.TagClassification; 5 | 6 | /** 7 | * @Author Himit_ZH 8 | * @Date 2022/8/3 9 | */ 10 | public interface TagClassificationEntityService extends IService { 11 | } 12 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/problem/TagEntityService.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.dao.problem; 2 | 3 | import top.hcode.hoj.pojo.entity.problem.Tag; 4 | import com.baomidou.mybatisplus.extension.service.IService; 5 | 6 | /** 7 | *

8 | * 服务类 9 | *

10 | * 11 | * @author Himit_ZH 12 | * @since 2020-10-23 13 | */ 14 | public interface TagEntityService extends IService { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/problem/impl/CategoryEntityServiceImpl.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.dao.problem.impl; 2 | 3 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 4 | import org.springframework.stereotype.Service; 5 | import top.hcode.hoj.mapper.CategoryMapper; 6 | import top.hcode.hoj.pojo.entity.problem.Category; 7 | import top.hcode.hoj.dao.problem.CategoryEntityService; 8 | 9 | /** 10 | * @Author: Himit_ZH 11 | * @Date: 2021/5/4 22:30 12 | * @Description: 13 | */ 14 | @Service 15 | public class CategoryEntityServiceImpl extends ServiceImpl implements CategoryEntityService { 16 | } -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/problem/impl/CodeTemplateEntityServiceImpl.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.dao.problem.impl; 2 | 3 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 4 | import org.springframework.stereotype.Service; 5 | import top.hcode.hoj.mapper.CodeTemplateMapper; 6 | import top.hcode.hoj.pojo.entity.problem.CodeTemplate; 7 | import top.hcode.hoj.dao.problem.CodeTemplateEntityService; 8 | 9 | /** 10 | * @Author: Himit_ZH 11 | * @Date: 2021/4/24 10:27 12 | * @Description: 13 | */ 14 | @Service 15 | public class CodeTemplateEntityServiceImpl extends ServiceImpl implements CodeTemplateEntityService { 16 | } -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/problem/impl/LanguageEntityServiceImpl.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.dao.problem.impl; 2 | 3 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 4 | import org.springframework.stereotype.Service; 5 | import top.hcode.hoj.mapper.LanguageMapper; 6 | import top.hcode.hoj.pojo.entity.problem.Language; 7 | import top.hcode.hoj.dao.problem.LanguageEntityService; 8 | 9 | /** 10 | * @Author: Himit_ZH 11 | * @Date: 2020/12/12 23:23 12 | * @Description: 13 | */ 14 | @Service 15 | public class LanguageEntityServiceImpl extends ServiceImpl implements LanguageEntityService { 16 | } -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/problem/impl/ProblemCaseEntityServiceImpl.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.dao.problem.impl; 2 | 3 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 4 | import org.springframework.stereotype.Service; 5 | import top.hcode.hoj.mapper.ProblemCaseMapper; 6 | import top.hcode.hoj.pojo.entity.problem.ProblemCase; 7 | import top.hcode.hoj.dao.problem.ProblemCaseEntityService; 8 | 9 | /** 10 | * @Author: Himit_ZH 11 | * @Date: 2020/12/14 19:59 12 | * @Description: 13 | */ 14 | @Service 15 | public class ProblemCaseEntityServiceImpl extends ServiceImpl implements ProblemCaseEntityService { 16 | } -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/problem/impl/ProblemLanguageEntityServiceImpl.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.dao.problem.impl; 2 | 3 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 4 | import org.springframework.stereotype.Service; 5 | import top.hcode.hoj.mapper.ProblemLanguageMapper; 6 | import top.hcode.hoj.pojo.entity.problem.ProblemLanguage; 7 | import top.hcode.hoj.dao.problem.ProblemLanguageEntityService; 8 | 9 | /** 10 | * @Author: Himit_ZH 11 | * @Date: 2020/12/13 00:04 12 | * @Description: 13 | */ 14 | @Service 15 | public class ProblemLanguageEntityServiceImpl extends ServiceImpl implements ProblemLanguageEntityService { 16 | } -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/problem/impl/ProblemTagEntityServiceImpl.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.dao.problem.impl; 2 | 3 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 4 | import org.springframework.stereotype.Service; 5 | import top.hcode.hoj.mapper.ProblemTagMapper; 6 | import top.hcode.hoj.pojo.entity.problem.ProblemTag; 7 | import top.hcode.hoj.dao.problem.ProblemTagEntityService; 8 | 9 | /** 10 | * @Author: Himit_ZH 11 | * @Date: 2020/12/13 23:22 12 | * @Description: 13 | */ 14 | @Service 15 | public class ProblemTagEntityServiceImpl extends ServiceImpl implements ProblemTagEntityService { 16 | } -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/problem/impl/TagClassificationEntityServiceImpl.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.dao.problem.impl; 2 | 3 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 4 | import org.springframework.stereotype.Service; 5 | import top.hcode.hoj.dao.problem.TagClassificationEntityService; 6 | import top.hcode.hoj.mapper.TagClassificationMapper; 7 | import top.hcode.hoj.pojo.entity.problem.TagClassification; 8 | 9 | /** 10 | * @Author Himit_ZH 11 | * @Date 2022/8/3 12 | */ 13 | @Service 14 | public class TagClassificationEntityServiceImpl extends ServiceImpl implements TagClassificationEntityService { 15 | } 16 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/problem/impl/TagEntityServiceImpl.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.dao.problem.impl; 2 | 3 | import top.hcode.hoj.pojo.entity.problem.Tag; 4 | import top.hcode.hoj.mapper.TagMapper; 5 | import top.hcode.hoj.dao.problem.TagEntityService; 6 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 7 | import org.springframework.stereotype.Service; 8 | 9 | /** 10 | *

11 | * 服务实现类 12 | *

13 | * 14 | * @author Himit_ZH 15 | * @since 2020-10-23 16 | */ 17 | @Service 18 | public class TagEntityServiceImpl extends ServiceImpl implements TagEntityService { 19 | 20 | } 21 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/training/MappingTrainingCategoryEntityService.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.dao.training; 2 | 3 | import com.baomidou.mybatisplus.extension.service.IService; 4 | import top.hcode.hoj.pojo.entity.training.MappingTrainingCategory; 5 | 6 | public interface MappingTrainingCategoryEntityService extends IService { 7 | } 8 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/training/TrainingCategoryEntityService.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.dao.training; 2 | 3 | import com.baomidou.mybatisplus.extension.service.IService; 4 | import top.hcode.hoj.pojo.entity.training.TrainingCategory; 5 | 6 | public interface TrainingCategoryEntityService extends IService { 7 | 8 | public TrainingCategory getTrainingCategoryByTrainingId(Long tid); 9 | } 10 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/training/TrainingEntityService.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.dao.training; 2 | 3 | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; 4 | import com.baomidou.mybatisplus.extension.service.IService; 5 | import top.hcode.hoj.pojo.entity.training.Training; 6 | import top.hcode.hoj.pojo.vo.TrainingVO; 7 | 8 | public interface TrainingEntityService extends IService { 9 | 10 | public Page getTrainingList(int limit, 11 | int currentPage, 12 | Long categoryId, 13 | String auth, 14 | String keyword, 15 | String currentUid); 16 | 17 | } 18 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/training/TrainingRecordEntityService.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.dao.training; 2 | 3 | import com.baomidou.mybatisplus.extension.service.IService; 4 | import top.hcode.hoj.pojo.entity.training.TrainingRecord; 5 | import top.hcode.hoj.pojo.vo.TrainingRecordVO; 6 | 7 | import java.util.List; 8 | 9 | 10 | /** 11 | * @Author: Himit_ZH 12 | * @Date: 2021/11/21 23:38 13 | * @Description: 14 | */ 15 | public interface TrainingRecordEntityService extends IService { 16 | 17 | public List getTrainingRecord(Long tid); 18 | 19 | } -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/training/TrainingRegisterEntityService.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.dao.training; 2 | 3 | import com.baomidou.mybatisplus.extension.service.IService; 4 | import top.hcode.hoj.pojo.entity.training.TrainingRegister; 5 | import java.util.List; 6 | 7 | public interface TrainingRegisterEntityService extends IService { 8 | 9 | 10 | public List getAlreadyRegisterUidList(Long tid); 11 | 12 | } 13 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/training/impl/MappingTrainingCategoryEntityServiceImpl.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.dao.training.impl; 2 | 3 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 4 | import org.springframework.stereotype.Service; 5 | import top.hcode.hoj.mapper.MappingTrainingCategoryMapper; 6 | import top.hcode.hoj.pojo.entity.training.MappingTrainingCategory; 7 | import top.hcode.hoj.dao.training.MappingTrainingCategoryEntityService; 8 | 9 | /** 10 | * @Author: Himit_ZH 11 | * @Date: 2022/3/9 19:53 12 | * @Description: 13 | */ 14 | @Service 15 | public class MappingTrainingCategoryEntityServiceImpl extends ServiceImpl implements MappingTrainingCategoryEntityService { 16 | } -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/user/AuthEntityService.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.dao.user; 2 | 3 | import top.hcode.hoj.pojo.entity.user.Auth; 4 | import com.baomidou.mybatisplus.extension.service.IService; 5 | 6 | /** 7 | *

8 | * 服务类 9 | *

10 | * 11 | * @author Himit_ZH 12 | * @since 2020-10-23 13 | */ 14 | public interface AuthEntityService extends IService { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/user/RoleAuthEntityService.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.dao.user; 2 | 3 | import top.hcode.hoj.pojo.entity.user.RoleAuth; 4 | import com.baomidou.mybatisplus.extension.service.IService; 5 | 6 | /** 7 | *

8 | * 服务类 9 | *

10 | * 11 | * @author Himit_ZH 12 | * @since 2020-10-23 13 | */ 14 | public interface RoleAuthEntityService extends IService { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/user/RoleEntityService.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.dao.user; 2 | 3 | import top.hcode.hoj.pojo.entity.user.Role; 4 | import com.baomidou.mybatisplus.extension.service.IService; 5 | 6 | /** 7 | *

8 | * 服务类 9 | *

10 | * 11 | * @author Himit_ZH 12 | * @since 2020-10-23 13 | */ 14 | public interface RoleEntityService extends IService { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/user/SessionEntityService.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.dao.user; 2 | 3 | import com.baomidou.mybatisplus.extension.service.IService; 4 | import top.hcode.hoj.pojo.entity.user.Session; 5 | 6 | public interface SessionEntityService extends IService { 7 | 8 | public void checkRemoteLogin(String uid); 9 | 10 | } 11 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/user/UserAcproblemEntityService.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.dao.user; 2 | 3 | import com.baomidou.mybatisplus.extension.service.IService; 4 | import top.hcode.hoj.pojo.entity.user.UserAcproblem; 5 | 6 | /** 7 | *

8 | * 服务类 9 | *

10 | * 11 | * @author Himit_ZH 12 | * @since 2020-10-23 13 | */ 14 | public interface UserAcproblemEntityService extends IService { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/user/UserInfoEntityService.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.dao.user; 2 | 3 | import top.hcode.hoj.pojo.dto.RegisterDTO; 4 | import com.baomidou.mybatisplus.extension.service.IService; 5 | import top.hcode.hoj.pojo.entity.user.UserInfo; 6 | 7 | import java.util.List; 8 | 9 | /** 10 | *

11 | * 服务类 12 | *

13 | * 14 | * @author Himit_ZH 15 | * @since 2020-10-23 16 | */ 17 | public interface UserInfoEntityService extends IService { 18 | 19 | public Boolean addUser(RegisterDTO registerDto); 20 | 21 | public List getSuperAdminUidList(); 22 | 23 | public List getProblemAdminUidList(); 24 | } 25 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/user/impl/AuthEntityServiceImpl.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.dao.user.impl; 2 | 3 | import top.hcode.hoj.pojo.entity.user.Auth; 4 | import top.hcode.hoj.mapper.AuthMapper; 5 | import top.hcode.hoj.dao.user.AuthEntityService; 6 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 7 | import org.springframework.stereotype.Service; 8 | 9 | /** 10 | *

11 | * 服务实现类 12 | *

13 | * 14 | * @author Himit_ZH 15 | * @since 2020-10-23 16 | */ 17 | @Service 18 | public class AuthEntityServiceImpl extends ServiceImpl implements AuthEntityService { 19 | 20 | } 21 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/user/impl/RoleAuthEntityServiceImpl.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.dao.user.impl; 2 | 3 | import top.hcode.hoj.pojo.entity.user.RoleAuth; 4 | import top.hcode.hoj.mapper.RoleAuthMapper; 5 | import top.hcode.hoj.dao.user.RoleAuthEntityService; 6 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 7 | import org.springframework.stereotype.Service; 8 | 9 | /** 10 | *

11 | * 服务实现类 12 | *

13 | * 14 | * @author Himit_ZH 15 | * @since 2020-10-23 16 | */ 17 | @Service 18 | public class RoleAuthEntityServiceImpl extends ServiceImpl implements RoleAuthEntityService { 19 | 20 | } 21 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/user/impl/RoleEntityServiceImpl.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.dao.user.impl; 2 | 3 | import top.hcode.hoj.pojo.entity.user.Role; 4 | import top.hcode.hoj.mapper.RoleMapper; 5 | import top.hcode.hoj.dao.user.RoleEntityService; 6 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 7 | import org.springframework.stereotype.Service; 8 | 9 | /** 10 | *

11 | * 服务实现类 12 | *

13 | * 14 | * @author Himit_ZH 15 | * @since 2020-10-23 16 | */ 17 | @Service 18 | public class RoleEntityServiceImpl extends ServiceImpl implements RoleEntityService { 19 | 20 | } 21 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/user/impl/UserAcproblemEntityServiceImpl.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.dao.user.impl; 2 | 3 | 4 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 5 | import top.hcode.hoj.mapper.UserAcproblemMapper; 6 | import top.hcode.hoj.pojo.entity.user.UserAcproblem; 7 | import top.hcode.hoj.dao.user.UserAcproblemEntityService; 8 | 9 | import org.springframework.stereotype.Service; 10 | 11 | /** 12 | *

13 | * 服务实现类 14 | *

15 | * 16 | * @author Himit_ZH 17 | * @since 2020-10-23 18 | */ 19 | @Service 20 | public class UserAcproblemEntityServiceImpl extends ServiceImpl implements UserAcproblemEntityService { 21 | 22 | } 23 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/exception/AccessException.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.exception; 2 | 3 | /** 4 | * @Author Himit_ZH 5 | * @Date 2022/5/9 6 | */ 7 | public class AccessException extends Exception{ 8 | public AccessException() { 9 | super(); 10 | } 11 | 12 | public AccessException(String message) { 13 | super(message); 14 | } 15 | 16 | public AccessException(String message, Throwable cause) { 17 | super(message, cause); 18 | } 19 | 20 | public AccessException(Throwable cause) { 21 | super(cause); 22 | } 23 | 24 | protected AccessException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) { 25 | super(message, cause, enableSuppression, writableStackTrace); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/exception/ProblemIDRepeatException.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.exception; 2 | 3 | /** 4 | * @Author Himit_ZH 5 | * @Date 2022/9/3 6 | */ 7 | public class ProblemIDRepeatException extends RuntimeException{ 8 | public ProblemIDRepeatException() { 9 | super(); 10 | } 11 | 12 | public ProblemIDRepeatException(String message) { 13 | super(message); 14 | } 15 | 16 | public ProblemIDRepeatException(String message, Throwable cause) { 17 | super(message, cause); 18 | } 19 | 20 | public ProblemIDRepeatException(Throwable cause) { 21 | super(cause); 22 | } 23 | 24 | protected ProblemIDRepeatException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) { 25 | super(message, cause, enableSuppression, writableStackTrace); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/judge/AbstractReceiver.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.judge; 2 | 3 | /** 4 | * @Author: Himit_ZH 5 | * @Date: 2021/12/22 12:40 6 | * @Description: 7 | */ 8 | 9 | public abstract class AbstractReceiver { 10 | 11 | public void handleWaitingTask(String... queues) { 12 | for (String queue : queues) { 13 | String taskStr = getTaskByRedis(queue); 14 | if (taskStr != null) { 15 | handleJudgeMsg(taskStr, queue); 16 | } 17 | } 18 | } 19 | 20 | public abstract String getTaskByRedis(String queue); 21 | 22 | public abstract void handleJudgeMsg(String taskStr, String queueName); 23 | 24 | } -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/AdminSysNoticeMapper.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.mapper; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import com.baomidou.mybatisplus.core.metadata.IPage; 5 | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; 6 | import org.apache.ibatis.annotations.Mapper; 7 | import org.apache.ibatis.annotations.Param; 8 | import org.springframework.stereotype.Repository; 9 | import top.hcode.hoj.pojo.entity.msg.AdminSysNotice; 10 | import top.hcode.hoj.pojo.vo.AdminSysNoticeVO; 11 | 12 | @Mapper 13 | @Repository 14 | public interface AdminSysNoticeMapper extends BaseMapper { 15 | IPage getAdminSysNotice(Page page, @Param("type") String type); 16 | } 17 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/AuthMapper.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.mapper; 2 | 3 | import top.hcode.hoj.pojo.entity.user.Auth; 4 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 5 | 6 | /** 7 | *

8 | * Mapper 接口 9 | *

10 | * 11 | * @author Himit_ZH 12 | * @since 2020-10-23 13 | */ 14 | public interface AuthMapper extends BaseMapper { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/CategoryMapper.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.mapper; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import org.apache.ibatis.annotations.Mapper; 5 | import org.springframework.stereotype.Repository; 6 | import top.hcode.hoj.pojo.entity.problem.Category; 7 | 8 | @Mapper 9 | @Repository 10 | public interface CategoryMapper extends BaseMapper { 11 | } 12 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/CodeTemplateMapper.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.mapper; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import org.apache.ibatis.annotations.Mapper; 5 | import org.springframework.stereotype.Repository; 6 | import top.hcode.hoj.pojo.entity.problem.CodeTemplate; 7 | 8 | 9 | @Mapper 10 | @Repository 11 | public interface CodeTemplateMapper extends BaseMapper { 12 | } 13 | 14 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/CommentLikeMapper.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.mapper; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import org.apache.ibatis.annotations.Mapper; 5 | import org.springframework.stereotype.Repository; 6 | import top.hcode.hoj.pojo.entity.discussion.CommentLike; 7 | 8 | 9 | @Mapper 10 | @Repository 11 | public interface CommentLikeMapper extends BaseMapper { 12 | } 13 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/ContestAnnouncementMapper.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.mapper; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import org.apache.ibatis.annotations.Mapper; 5 | import org.springframework.stereotype.Repository; 6 | import top.hcode.hoj.pojo.entity.contest.ContestAnnouncement; 7 | 8 | @Mapper 9 | @Repository 10 | public interface ContestAnnouncementMapper extends BaseMapper { 11 | } 12 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/ContestExplanationMapper.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.mapper; 2 | 3 | import top.hcode.hoj.pojo.entity.contest.ContestExplanation; 4 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 5 | 6 | /** 7 | *

8 | * Mapper 接口 9 | *

10 | * 11 | * @author Himit_ZH 12 | * @since 2020-10-23 13 | */ 14 | public interface ContestExplanationMapper extends BaseMapper { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/ContestPrintMapper.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.mapper; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import org.apache.ibatis.annotations.Mapper; 5 | import org.springframework.stereotype.Repository; 6 | import top.hcode.hoj.pojo.entity.contest.ContestPrint; 7 | 8 | /** 9 | * @Author: Himit_ZH 10 | * @Date: 2021/9/19 21:04 11 | * @Description: 12 | */ 13 | @Mapper 14 | @Repository 15 | public interface ContestPrintMapper extends BaseMapper { 16 | } -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/ContestRegisterMapper.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.mapper; 2 | 3 | import org.apache.ibatis.annotations.Mapper; 4 | import org.springframework.stereotype.Repository; 5 | import top.hcode.hoj.pojo.entity.contest.ContestRegister; 6 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 7 | 8 | /** 9 | *

10 | * Mapper 接口 11 | *

12 | * 13 | * @author Himit_ZH 14 | * @since 2020-10-23 15 | */ 16 | @Mapper 17 | @Repository 18 | public interface ContestRegisterMapper extends BaseMapper { 19 | 20 | } 21 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/ContestScoreMapper.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.mapper; 2 | 3 | import top.hcode.hoj.pojo.entity.contest.ContestScore; 4 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 5 | 6 | /** 7 | *

8 | * Mapper 接口 9 | *

10 | * 11 | * @author Himit_ZH 12 | * @since 2020-10-23 13 | */ 14 | public interface ContestScoreMapper extends BaseMapper { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/DiscussionLikeMapper.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.mapper; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import org.apache.ibatis.annotations.Mapper; 5 | import org.springframework.stereotype.Repository; 6 | import top.hcode.hoj.pojo.entity.discussion.DiscussionLike; 7 | 8 | 9 | @Mapper 10 | @Repository 11 | public interface DiscussionLikeMapper extends BaseMapper { 12 | } 13 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/DiscussionMapper.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.mapper; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import org.apache.ibatis.annotations.Mapper; 5 | import org.apache.ibatis.annotations.Param; 6 | import org.springframework.stereotype.Repository; 7 | import top.hcode.hoj.pojo.entity.discussion.Discussion; 8 | import top.hcode.hoj.pojo.vo.DiscussionVO; 9 | 10 | 11 | @Mapper 12 | @Repository 13 | public interface DiscussionMapper extends BaseMapper { 14 | DiscussionVO getDiscussion(@Param("did") Integer did, @Param("uid") String uid); 15 | } 16 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/DiscussionReportMapper.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.mapper; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import com.baomidou.mybatisplus.core.metadata.IPage; 5 | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; 6 | import org.apache.ibatis.annotations.Mapper; 7 | import org.springframework.stereotype.Repository; 8 | import top.hcode.hoj.pojo.entity.discussion.DiscussionReport; 9 | import top.hcode.hoj.pojo.vo.DiscussionReportVO; 10 | 11 | @Mapper 12 | @Repository 13 | public interface DiscussionReportMapper extends BaseMapper { 14 | 15 | IPage getDiscussionReportList(Page page); 16 | } 17 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/GroupContestMapper.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.mapper; 2 | 3 | import top.hcode.hoj.pojo.entity.contest.Contest; 4 | import top.hcode.hoj.pojo.vo.ContestVO; 5 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 6 | import com.baomidou.mybatisplus.core.metadata.IPage; 7 | import org.apache.ibatis.annotations.Mapper; 8 | import org.apache.ibatis.annotations.Param; 9 | import org.springframework.stereotype.Repository; 10 | 11 | import java.util.List; 12 | 13 | /** 14 | * @Author: LengYun 15 | * @Date: 2022/3/11 13:36 16 | * @Description: 17 | */ 18 | @Mapper 19 | @Repository 20 | public interface GroupContestMapper extends BaseMapper { 21 | 22 | List getContestList(IPage iPage, @Param("gid") Long gid); 23 | 24 | List getAdminContestList(IPage iPage, @Param("gid") Long gid); 25 | 26 | } 27 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/GroupDiscussionMapper.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.mapper; 2 | 3 | import top.hcode.hoj.pojo.entity.discussion.Discussion; 4 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 5 | import org.apache.ibatis.annotations.Mapper; 6 | import org.springframework.stereotype.Repository; 7 | 8 | /** 9 | * @Author: LengYun 10 | * @Date: 2022/3/11 13:36 11 | * @Description: 12 | */ 13 | @Mapper 14 | @Repository 15 | public interface GroupDiscussionMapper extends BaseMapper { 16 | 17 | } 18 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/GroupProblemMapper.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.mapper; 2 | 3 | import top.hcode.hoj.pojo.entity.problem.Problem; 4 | import top.hcode.hoj.pojo.vo.ProblemVO; 5 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 6 | import com.baomidou.mybatisplus.core.metadata.IPage; 7 | import org.apache.ibatis.annotations.Mapper; 8 | import org.apache.ibatis.annotations.Param; 9 | import org.springframework.stereotype.Repository; 10 | 11 | import java.util.List; 12 | 13 | /** 14 | * @Author: LengYun 15 | * @Date: 2022/3/11 13:36 16 | * @Description: 17 | */ 18 | @Mapper 19 | @Repository 20 | public interface GroupProblemMapper extends BaseMapper { 21 | 22 | List getProblemList(IPage iPage, @Param("gid") Long gid); 23 | 24 | List getAdminProblemList(IPage iPage, @Param("gid") Long gid); 25 | } 26 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/GroupTrainingMapper.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.mapper; 2 | 3 | import top.hcode.hoj.pojo.entity.training.Training; 4 | import top.hcode.hoj.pojo.vo.TrainingVO; 5 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 6 | import com.baomidou.mybatisplus.core.metadata.IPage; 7 | import org.apache.ibatis.annotations.Mapper; 8 | import org.apache.ibatis.annotations.Param; 9 | import org.springframework.stereotype.Repository; 10 | 11 | import java.util.List; 12 | 13 | /** 14 | * @Author: LengYun 15 | * @Date: 2022/3/11 13:36 16 | * @Description: 17 | */ 18 | @Mapper 19 | @Repository 20 | public interface GroupTrainingMapper extends BaseMapper { 21 | 22 | List getTrainingList(IPage iPage, @Param("gid") Long gid); 23 | 24 | List getAdminTrainingList(IPage iPage, @Param("gid") Long gid); 25 | 26 | } 27 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/JudgeCaseMapper.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.mapper; 2 | 3 | import org.apache.ibatis.annotations.Mapper; 4 | import org.springframework.stereotype.Repository; 5 | import top.hcode.hoj.pojo.entity.judge.JudgeCase; 6 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 7 | 8 | /** 9 | *

10 | * Mapper 接口 11 | *

12 | * 13 | * @author Himit_ZH 14 | * @since 2020-10-23 15 | */ 16 | @Mapper 17 | @Repository 18 | public interface JudgeCaseMapper extends BaseMapper { 19 | 20 | } 21 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/JudgeServerMapper.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.mapper; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import org.apache.ibatis.annotations.Mapper; 5 | import org.springframework.stereotype.Repository; 6 | import top.hcode.hoj.pojo.entity.judge.JudgeServer; 7 | 8 | 9 | @Mapper 10 | @Repository 11 | public interface JudgeServerMapper extends BaseMapper { 12 | 13 | } 14 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/LanguageMapper.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.mapper; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import org.apache.ibatis.annotations.Mapper; 5 | import org.springframework.stereotype.Repository; 6 | import top.hcode.hoj.pojo.entity.problem.Language; 7 | 8 | @Mapper 9 | @Repository 10 | public interface LanguageMapper extends BaseMapper { 11 | } 12 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/MappingTrainingCategoryMapper.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.mapper; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import org.apache.ibatis.annotations.Mapper; 5 | import org.springframework.stereotype.Repository; 6 | import top.hcode.hoj.pojo.entity.training.MappingTrainingCategory; 7 | 8 | @Mapper 9 | @Repository 10 | public interface MappingTrainingCategoryMapper extends BaseMapper { 11 | } 12 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/ProblemCaseMapper.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.mapper; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import org.apache.ibatis.annotations.Mapper; 5 | import org.springframework.stereotype.Repository; 6 | import top.hcode.hoj.pojo.entity.problem.ProblemCase; 7 | 8 | /** 9 | * @Author: Himit_ZH 10 | * @Date: 2020/12/14 19:57 11 | * @Description: 12 | */ 13 | @Mapper 14 | @Repository 15 | public interface ProblemCaseMapper extends BaseMapper { 16 | } -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/ProblemCountMapper.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.mapper; 2 | 3 | import org.apache.ibatis.annotations.Mapper; 4 | import org.apache.ibatis.annotations.Param; 5 | import org.springframework.stereotype.Repository; 6 | import top.hcode.hoj.pojo.entity.problem.ProblemCount; 7 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 8 | 9 | /** 10 | *

11 | * Mapper 接口 12 | *

13 | * 14 | * @author Himit_ZH 15 | * @since 2020-10-23 16 | */ 17 | @Mapper 18 | @Repository 19 | public interface ProblemCountMapper extends BaseMapper { 20 | ProblemCount getContestProblemCount(@Param("pid") Long pid, @Param("cpid") Long cpid, @Param("cid") Long cid); 21 | } 22 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/ProblemLanguageMapper.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.mapper; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import org.apache.ibatis.annotations.Mapper; 5 | import org.springframework.stereotype.Repository; 6 | import top.hcode.hoj.pojo.entity.problem.ProblemLanguage; 7 | 8 | @Mapper 9 | @Repository 10 | public interface ProblemLanguageMapper extends BaseMapper { 11 | } 12 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/ProblemTagMapper.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.mapper; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import org.apache.ibatis.annotations.Mapper; 5 | import org.springframework.stereotype.Repository; 6 | import top.hcode.hoj.pojo.entity.problem.ProblemTag; 7 | 8 | @Mapper 9 | @Repository 10 | public interface ProblemTagMapper extends BaseMapper { 11 | } 12 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/ReplyMapper.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.mapper; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import org.apache.ibatis.annotations.Mapper; 5 | import org.apache.ibatis.annotations.Param; 6 | import org.springframework.stereotype.Repository; 7 | import top.hcode.hoj.pojo.entity.discussion.Reply; 8 | import top.hcode.hoj.pojo.vo.ReplyVO; 9 | 10 | import java.util.List; 11 | 12 | /** 13 | * @Author: Himit_ZH 14 | * @Date: 2021/5/5 22:07 15 | * @Description: 16 | */ 17 | 18 | @Mapper 19 | @Repository 20 | public interface ReplyMapper extends BaseMapper { 21 | 22 | public List getAllReplyByCommentId(@Param("commentId") Integer commentId, 23 | @Param("myAndAdminUidList") List myAndAdminUidList); 24 | } -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/RoleAuthMapper.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.mapper; 2 | 3 | import org.apache.ibatis.annotations.Mapper; 4 | import org.apache.ibatis.annotations.Param; 5 | import org.springframework.stereotype.Repository; 6 | import top.hcode.hoj.pojo.entity.user.RoleAuth; 7 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 8 | import top.hcode.hoj.pojo.vo.RoleAuthsVO; 9 | 10 | 11 | /** 12 | *

13 | * Mapper 接口 14 | *

15 | * 16 | * @author Himit_ZH 17 | * @since 2020-10-23 18 | */ 19 | @Mapper 20 | @Repository 21 | public interface RoleAuthMapper extends BaseMapper { 22 | RoleAuthsVO getRoleAuths(@Param("rid") long rid); 23 | } 24 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/RoleMapper.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.mapper; 2 | 3 | import org.apache.ibatis.annotations.Mapper; 4 | import org.springframework.stereotype.Repository; 5 | import top.hcode.hoj.pojo.entity.user.Role; 6 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 7 | 8 | /** 9 | *

10 | * Mapper 接口 11 | *

12 | * 13 | * @author Himit_ZH 14 | * @since 2020-10-23 15 | */ 16 | @Mapper 17 | @Repository 18 | public interface RoleMapper extends BaseMapper { 19 | 20 | } 21 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/SessionMapper.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.mapper; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import org.apache.ibatis.annotations.Mapper; 5 | import org.springframework.stereotype.Repository; 6 | import top.hcode.hoj.pojo.entity.user.Session; 7 | 8 | @Mapper 9 | @Repository 10 | public interface SessionMapper extends BaseMapper { 11 | 12 | } 13 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/TagClassificationMapper.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.mapper; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import org.apache.ibatis.annotations.Mapper; 5 | import org.springframework.stereotype.Repository; 6 | import top.hcode.hoj.pojo.entity.problem.TagClassification; 7 | 8 | /** 9 | * @Author Himit_ZH 10 | * @Date 2022/8/3 11 | */ 12 | @Mapper 13 | @Repository 14 | public interface TagClassificationMapper extends BaseMapper { 15 | } 16 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/TagMapper.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.mapper; 2 | 3 | import org.apache.ibatis.annotations.Mapper; 4 | import org.springframework.stereotype.Repository; 5 | import top.hcode.hoj.pojo.entity.problem.Tag; 6 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 7 | 8 | /** 9 | *

10 | * Mapper 接口 11 | *

12 | * 13 | * @author Himit_ZH 14 | * @since 2020-10-23 15 | */ 16 | @Mapper 17 | @Repository 18 | public interface TagMapper extends BaseMapper { 19 | 20 | } 21 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/TrainingCategoryMapper.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.mapper; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import org.apache.ibatis.annotations.Mapper; 5 | import org.apache.ibatis.annotations.Param; 6 | import org.springframework.stereotype.Repository; 7 | import top.hcode.hoj.pojo.entity.training.TrainingCategory; 8 | 9 | @Mapper 10 | @Repository 11 | public interface TrainingCategoryMapper extends BaseMapper { 12 | 13 | public TrainingCategory getTrainingCategoryByTrainingId(@Param("tid") Long tid); 14 | } 15 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/TrainingRecordMapper.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.mapper; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import org.apache.ibatis.annotations.Mapper; 5 | import org.apache.ibatis.annotations.Param; 6 | import org.springframework.stereotype.Repository; 7 | import top.hcode.hoj.pojo.entity.training.TrainingRecord; 8 | import top.hcode.hoj.pojo.vo.TrainingRecordVO; 9 | 10 | import java.util.List; 11 | 12 | /** 13 | * @Author: Himit_ZH 14 | * @Date: 2021/11/21 14:27 15 | * @Description: 16 | */ 17 | 18 | @Mapper 19 | @Repository 20 | public interface TrainingRecordMapper extends BaseMapper { 21 | 22 | public List getTrainingRecord(@Param("tid") Long tid); 23 | } -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/TrainingRegisterMapper.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.mapper; 2 | 3 | 4 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 5 | import org.apache.ibatis.annotations.Mapper; 6 | import org.springframework.stereotype.Repository; 7 | import top.hcode.hoj.pojo.entity.training.TrainingRegister; 8 | 9 | @Mapper 10 | @Repository 11 | public interface TrainingRegisterMapper extends BaseMapper { 12 | } 13 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/UserAcproblemMapper.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.mapper; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import org.apache.ibatis.annotations.Mapper; 5 | import org.springframework.stereotype.Repository; 6 | import top.hcode.hoj.pojo.entity.user.UserAcproblem; 7 | 8 | 9 | /** 10 | *

11 | * Mapper 接口 12 | *

13 | * 14 | * @author Himit_ZH 15 | * @since 2020-10-23 16 | */ 17 | @Mapper 18 | @Repository 19 | public interface UserAcproblemMapper extends BaseMapper { 20 | 21 | } 22 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/UserInfoMapper.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.mapper; 2 | 3 | import org.apache.ibatis.annotations.Mapper; 4 | import org.springframework.stereotype.Repository; 5 | import top.hcode.hoj.pojo.dto.RegisterDTO; 6 | import top.hcode.hoj.pojo.entity.user.UserInfo; 7 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 8 | 9 | import java.util.List; 10 | 11 | 12 | /** 13 | *

14 | * Mapper 接口 15 | *

16 | * 17 | * @author Himit_ZH 18 | * @since 2020-10-23 19 | */ 20 | @Mapper 21 | @Repository 22 | public interface UserInfoMapper extends BaseMapper { 23 | int addUser(RegisterDTO registerDto); 24 | 25 | List getSuperAdminUidList(); 26 | 27 | List getProblemAdminUidList(); 28 | } 29 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/UserSysNoticeMapper.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.mapper; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import com.baomidou.mybatisplus.core.metadata.IPage; 5 | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; 6 | import org.apache.ibatis.annotations.Mapper; 7 | import org.apache.ibatis.annotations.Param; 8 | import org.springframework.stereotype.Repository; 9 | import top.hcode.hoj.pojo.entity.msg.UserSysNotice; 10 | import top.hcode.hoj.pojo.vo.SysMsgVO; 11 | 12 | 13 | @Mapper 14 | @Repository 15 | public interface UserSysNoticeMapper extends BaseMapper { 16 | 17 | IPage getSysOrMineNotice(Page page, @Param("uid") String uid, @Param("type") String type); 18 | } 19 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/ContestExplanationMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/ContestRegisterMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/ContestScoreMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/GroupDiscussionMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/RoleMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/SessionMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/TagMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/TrainingCategoryMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 8 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/TrainingRecordMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 14 | 15 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/UserAcproblemMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/UserInfoMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | insert into user_info(uuid,username,password,email) values ( 6 | #{uuid}, #{username},#{password},#{email} 7 | ) 8 | 9 | 12 | 13 | 16 | 17 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/AdminEditUserDTO.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.pojo.dto; 2 | 3 | import lombok.Data; 4 | 5 | import javax.validation.constraints.NotBlank; 6 | 7 | /** 8 | * @Author: Himit_ZH 9 | * @Date: 2022/3/9 21:09 10 | * @Description: 11 | */ 12 | @Data 13 | public class AdminEditUserDTO { 14 | 15 | @NotBlank(message = "username不能为空") 16 | private String username; 17 | 18 | @NotBlank(message = "uid不能为空") 19 | private String uid; 20 | 21 | private String realname; 22 | 23 | private String email; 24 | 25 | private String password; 26 | 27 | private Integer type; 28 | 29 | private Integer status; 30 | 31 | private Boolean setNewPwd; 32 | 33 | private String titleName; 34 | 35 | private String titleColor; 36 | } -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/AnnouncementDTO.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.pojo.dto; 2 | 3 | import lombok.Data; 4 | import top.hcode.hoj.pojo.entity.common.Announcement; 5 | 6 | import javax.validation.constraints.NotBlank; 7 | 8 | /** 9 | * @Author: Himit_ZH 10 | * @Date: 2020/12/21 22:55 11 | * @Description: 12 | */ 13 | @Data 14 | public class AnnouncementDTO { 15 | @NotBlank(message = "比赛id不能为空") 16 | private Long cid; 17 | 18 | private Announcement announcement; 19 | } -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/ApplyResetPasswordDTO.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.pojo.dto; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | * @Author: Himit_ZH 7 | * @Date: 2022/3/11 17:26 8 | * @Description: 9 | */ 10 | @Data 11 | public class ApplyResetPasswordDTO { 12 | 13 | private String captcha; 14 | 15 | private String captchaKey; 16 | 17 | private String email; 18 | } -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/ChangeEmailDTO.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.pojo.dto; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | * @Author: Himit_ZH 7 | * @Date: 2022/3/11 18:05 8 | * @Description: 9 | */ 10 | @Data 11 | public class ChangeEmailDTO { 12 | 13 | private String password; 14 | 15 | private String newEmail; 16 | 17 | private String code; 18 | } -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/ChangeGroupProblemProgressDTO.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.pojo.dto; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | * @Author Himit_ZH 7 | * @Date 2022/4/13 8 | */ 9 | @Data 10 | public class ChangeGroupProblemProgressDTO { 11 | 12 | /** 13 | * 题目id 14 | */ 15 | private Long pid; 16 | 17 | /** 18 | * 1为申请中,2为申请通过,3为申请拒绝 19 | */ 20 | private Integer progress; 21 | } 22 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/ChangePasswordDTO.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.pojo.dto; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | * @Author: Himit_ZH 7 | * @Date: 2022/3/11 18:06 8 | * @Description: 9 | */ 10 | @Data 11 | public class ChangePasswordDTO { 12 | 13 | private String oldPassword; 14 | 15 | private String newPassword; 16 | } -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/CheckACDTO.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.pojo.dto; 2 | 3 | import lombok.Data; 4 | 5 | import javax.validation.constraints.NotBlank; 6 | 7 | /** 8 | * @Author: Himit_ZH 9 | * @Date: 2021/1/17 19:13 10 | * @Description: 11 | */ 12 | @Data 13 | public class CheckACDTO { 14 | 15 | @NotBlank(message = "比赛记录id不能为空") 16 | private Long id; 17 | 18 | @NotBlank(message = "比赛id不能为空") 19 | private Long cid; 20 | 21 | @NotBlank(message = "是否确认不能为空") 22 | private Boolean checked; 23 | } -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/CheckUsernameOrEmailDTO.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.pojo.dto; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | * @Author: Himit_ZH 7 | * @Date: 2022/3/11 18:15 8 | * @Description: 9 | */ 10 | @Data 11 | public class CheckUsernameOrEmailDTO { 12 | 13 | private String email; 14 | 15 | private String username; 16 | } -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/ContestPrintDTO.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.pojo.dto; 2 | 3 | import lombok.Data; 4 | 5 | import javax.validation.constraints.NotBlank; 6 | 7 | /** 8 | * @Author: Himit_ZH 9 | * @Date: 2021/9/20 13:00 10 | * @Description: 11 | */ 12 | @Data 13 | public class ContestPrintDTO { 14 | 15 | @NotBlank(message = "比赛id不能为空") 16 | private Long cid; 17 | 18 | @NotBlank(message = "打印内容不能为空") 19 | private String content; 20 | } -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/ContestProblemDTO.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.pojo.dto; 2 | 3 | import lombok.Data; 4 | 5 | import javax.validation.constraints.NotBlank; 6 | 7 | /** 8 | * @Author: Himit_ZH 9 | * @Date: 2022/3/9 11:10 10 | * @Description: 11 | */ 12 | @Data 13 | public class ContestProblemDTO { 14 | 15 | @NotBlank(message = "题目id不能为空") 16 | private Long pid; 17 | 18 | @NotBlank(message = "比赛id不能为空") 19 | private Long cid; 20 | 21 | @NotBlank(message = "题目在比赛中的展示id不能为空") 22 | private String displayId; 23 | } -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/LastAcceptedCodeVO.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.pojo.dto; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | * @Author Himit_ZH 7 | * @Date 2022/10/22 8 | */ 9 | @Data 10 | public class LastAcceptedCodeVO { 11 | 12 | private Long submitId; 13 | 14 | private String code; 15 | 16 | private String language; 17 | } 18 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/LoginDTO.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.pojo.dto; 2 | 3 | import lombok.Data; 4 | 5 | import javax.validation.constraints.NotBlank; 6 | import java.io.Serializable; 7 | 8 | /** 9 | * @Author: Himit_ZH 10 | * @Date: 2020/7/20 00:23 11 | * @Description: 登录数据实体类 12 | */ 13 | @Data 14 | public class LoginDTO implements Serializable { 15 | @NotBlank(message = "用户名不能为空") 16 | private String username; 17 | 18 | @NotBlank(message = "密码不能为空") 19 | private String password; 20 | } -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/PidListDTO.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.pojo.dto; 2 | 3 | import lombok.Data; 4 | import lombok.experimental.Accessors; 5 | 6 | import javax.validation.constraints.NotEmpty; 7 | import javax.validation.constraints.NotNull; 8 | import java.util.List; 9 | 10 | /** 11 | * @Author: Himit_ZH 12 | * @Date: 2020/12/28 22:33 13 | * @Description: 主要是获取前端题目列表页查询用户对应题目提交详情 14 | */ 15 | @Data 16 | @Accessors(chain = true) 17 | public class PidListDTO { 18 | @NotEmpty(message = "查询的题目id列表不能为空") 19 | private List pidList; 20 | 21 | @NotNull(message = "是否为比赛题目提交判断不能为空") 22 | private Boolean isContestProblemList; 23 | 24 | /** 25 | * 是否包含比赛结束后的提交统计 26 | */ 27 | private Boolean containsEnd; 28 | 29 | private Long cid; 30 | 31 | private Long gid; 32 | } -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/ProblemDTO.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.pojo.dto; 2 | 3 | import lombok.Data; 4 | import lombok.experimental.Accessors; 5 | import top.hcode.hoj.pojo.entity.problem.*; 6 | 7 | import java.util.List; 8 | 9 | 10 | /** 11 | * @Author: Himit_ZH 12 | * @Date: 2020/12/14 22:30 13 | * @Description: 14 | */ 15 | @Data 16 | @Accessors(chain = true) 17 | public class ProblemDTO { 18 | 19 | private Problem problem; 20 | 21 | private List samples; 22 | 23 | private Boolean isUploadTestCase; 24 | 25 | private String uploadTestcaseDir; 26 | 27 | private String judgeMode; 28 | 29 | private Boolean changeModeCode; 30 | 31 | private Boolean changeJudgeCaseMode; 32 | 33 | private List languages; 34 | 35 | private List tags; 36 | 37 | private List codeTemplates; 38 | 39 | } -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/RegisterContestDTO.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.pojo.dto; 2 | 3 | import lombok.Data; 4 | 5 | import javax.validation.constraints.NotBlank; 6 | 7 | /** 8 | * @Author: Himit_ZH 9 | * @Date: 2022/3/12 14:37 10 | * @Description: 11 | */ 12 | @Data 13 | public class RegisterContestDTO { 14 | 15 | @NotBlank(message = "cid不能为空") 16 | private Long cid; 17 | 18 | @NotBlank(message = "password不能为空") 19 | private String password; 20 | } -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/RegisterTrainingDTO.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.pojo.dto; 2 | 3 | import lombok.Data; 4 | 5 | import javax.validation.constraints.NotBlank; 6 | 7 | /** 8 | * @Author: Himit_ZH 9 | * @Date: 2022/3/10 17:55 10 | * @Description: 11 | */ 12 | @Data 13 | public class RegisterTrainingDTO { 14 | 15 | @NotBlank(message = "tid不能为空") 16 | private Long tid; 17 | 18 | @NotBlank(message = "password不能为空") 19 | private String password; 20 | } -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/ReplyDTO.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.pojo.dto; 2 | 3 | import lombok.Data; 4 | import lombok.experimental.Accessors; 5 | import top.hcode.hoj.pojo.entity.discussion.Reply; 6 | 7 | /** 8 | * @Author: Himit_ZH 9 | * @Date: 2021/6/24 17:00 10 | * @Description: 11 | */ 12 | @Data 13 | @Accessors(chain = true) 14 | public class ReplyDTO { 15 | 16 | private Reply reply; 17 | 18 | private Integer did; 19 | 20 | private Integer quoteId; 21 | 22 | private String quoteType; 23 | } -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/ResetPasswordDTO.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.pojo.dto; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | * @Author: Himit_ZH 7 | * @Date: 2022/3/11 17:32 8 | * @Description: 9 | */ 10 | 11 | @Data 12 | public class ResetPasswordDTO { 13 | 14 | private String username; 15 | 16 | private String password; 17 | 18 | private String code; 19 | } -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/SubmitIdListDTO.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.pojo.dto; 2 | 3 | import lombok.Data; 4 | 5 | import javax.validation.constraints.NotEmpty; 6 | import java.util.List; 7 | 8 | /** 9 | * @Author: Himit_ZH 10 | * @Date: 2021/1/3 16:50 11 | * @Description: 12 | */ 13 | @Data 14 | public class SubmitIdListDTO { 15 | @NotEmpty(message = "查询的提交id列表不能为空") 16 | private List submitIds; 17 | 18 | private Long cid; 19 | } -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/SubmitJudgeDTO.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.pojo.dto; 2 | ; 3 | import lombok.Data; 4 | import lombok.experimental.Accessors; 5 | 6 | import javax.validation.constraints.NotBlank; 7 | 8 | /** 9 | * @Author: Himit_ZH 10 | * @Date: 2020/10/30 11:03 11 | * @Description: 用户代码提交类 12 | */ 13 | @Data 14 | @Accessors(chain = true) 15 | public class SubmitJudgeDTO { 16 | @NotBlank(message = "题目id不能为空") 17 | private String pid; 18 | 19 | @NotBlank(message = "代码语言选择不能为空") 20 | private String language; 21 | 22 | @NotBlank(message = "提交的代码不能为空") 23 | private String code; 24 | 25 | @NotBlank(message = "提交的比赛id所属不能为空,若并非比赛提交,请设置为0") 26 | private Long cid; 27 | 28 | private Long tid; 29 | 30 | private Long gid; 31 | 32 | private Boolean isRemote; 33 | 34 | } -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/TestEmailDTO.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.pojo.dto; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | * @Author: Himit_ZH 7 | * @Date: 2022/4/7 11:02 8 | * @Description: 9 | */ 10 | @Data 11 | public class TestEmailDTO { 12 | /** 13 | * 发送的测试邮箱 14 | */ 15 | private String email; 16 | } -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/TrainingDTO.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.pojo.dto; 2 | 3 | import lombok.Data; 4 | import lombok.experimental.Accessors; 5 | import top.hcode.hoj.pojo.entity.training.Training; 6 | import top.hcode.hoj.pojo.entity.training.TrainingCategory; 7 | 8 | /** 9 | * @Author: Himit_ZH 10 | * @Date: 2021/11/22 21:49 11 | * @Description: 后台管理训练的传输类 12 | */ 13 | @Data 14 | @Accessors(chain = true) 15 | public class TrainingDTO { 16 | 17 | private Training training; 18 | 19 | private TrainingCategory trainingCategory; 20 | } -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/TrainingProblemDTO.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.pojo.dto; 2 | 3 | import lombok.Data; 4 | 5 | import javax.validation.constraints.NotBlank; 6 | 7 | /** 8 | * @Author: Himit_ZH 9 | * @Date: 2022/3/9 11:10 10 | * @Description: 11 | */ 12 | @Data 13 | public class TrainingProblemDTO { 14 | 15 | @NotBlank(message = "题目id不能为空") 16 | private Long pid; 17 | 18 | @NotBlank(message = "训练id不能为空") 19 | private Long tid; 20 | 21 | @NotBlank(message = "题目在训练中的展示id不能为空") 22 | private String displayId; 23 | } -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/UserReadContestAnnouncementDTO.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.pojo.dto; 2 | 3 | import lombok.Data; 4 | 5 | import java.util.List; 6 | 7 | /** 8 | * @Author: Himit_ZH 9 | * @Date: 2021/7/17 15:31 10 | * @Description: 11 | */ 12 | 13 | @Data 14 | public class UserReadContestAnnouncementDTO { 15 | 16 | private Long cid; 17 | 18 | private List readAnnouncementList; 19 | } -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/AccessVO.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.pojo.vo; 2 | 3 | import io.swagger.annotations.ApiModelProperty; 4 | import lombok.Data; 5 | 6 | /** 7 | * @Author: Himit_ZH 8 | * @Date: 2022/3/10 17:51 9 | * @Description: 10 | */ 11 | @Data 12 | public class AccessVO { 13 | 14 | @ApiModelProperty(value = "是否有进入比赛或训练的权限") 15 | private Boolean access; 16 | } -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/CaptchaVO.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.pojo.vo; 2 | 3 | import io.swagger.annotations.ApiModelProperty; 4 | import lombok.Data; 5 | 6 | /** 7 | * @Author: Himit_ZH 8 | * @Date: 2022/3/11 16:37 9 | * @Description: 10 | */ 11 | @Data 12 | public class CaptchaVO { 13 | 14 | @ApiModelProperty(value = "验证码图片的base64") 15 | private String img; 16 | 17 | @ApiModelProperty(value = "验证码key") 18 | private String captchaKey; 19 | } -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/ChangeAccountVO.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.pojo.vo; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | * @Author: Himit_ZH 7 | * @Date: 2022/3/11 17:58 8 | * @Description: 9 | */ 10 | @Data 11 | public class ChangeAccountVO { 12 | 13 | private Integer code; 14 | 15 | private String msg; 16 | 17 | private UserInfoVO userInfo; 18 | } -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/CheckUsernameOrEmailVO.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.pojo.vo; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | * @Author: Himit_ZH 7 | * @Date: 2022/3/11 18:15 8 | * @Description: 9 | */ 10 | @Data 11 | public class CheckUsernameOrEmailVO { 12 | 13 | private Boolean email; 14 | 15 | private Boolean username; 16 | } -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/CommentListVO.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.pojo.vo; 2 | 3 | import com.baomidou.mybatisplus.core.metadata.IPage; 4 | import lombok.Data; 5 | 6 | import java.util.HashMap; 7 | 8 | /** 9 | * @Author: Himit_ZH 10 | * @Date: 2022/3/11 16:12 11 | * @Description: 12 | */ 13 | @Data 14 | public class CommentListVO { 15 | 16 | private IPage commentList; 17 | 18 | private HashMap commentLikeMap; 19 | } -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/ContestAwardConfigVO.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.pojo.vo; 2 | 3 | import io.swagger.annotations.ApiModel; 4 | import io.swagger.annotations.ApiModelProperty; 5 | import lombok.Data; 6 | 7 | /** 8 | * @Author Himit_ZH 9 | * @Date 2022/10/2 10 | */ 11 | @ApiModel(value="比赛奖项配置", description="") 12 | @Data 13 | public class ContestAwardConfigVO { 14 | 15 | @ApiModelProperty(value = "优先级") 16 | private Integer priority; 17 | 18 | @ApiModelProperty(value = "奖项名称") 19 | private String name; 20 | 21 | @ApiModelProperty(value = "背景颜色") 22 | private String background; 23 | 24 | @ApiModelProperty(value = "文本颜色") 25 | private String color; 26 | 27 | @ApiModelProperty(value = "数量") 28 | private Integer num; 29 | 30 | } 31 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/ContestOutsideInfoVO.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.pojo.vo; 2 | 3 | import io.swagger.annotations.ApiModel; 4 | import io.swagger.annotations.ApiModelProperty; 5 | import lombok.Data; 6 | import top.hcode.hoj.pojo.entity.contest.ContestProblem; 7 | 8 | import java.util.List; 9 | 10 | /** 11 | * @Author: Himit_ZH 12 | * @Date: 2021/12/8 12:32 13 | * @Description: 14 | */ 15 | @ApiModel(value = "赛外排行榜所需的比赛信息,同时包括题目题号、气球颜色", description = "") 16 | @Data 17 | public class ContestOutsideInfoVO { 18 | 19 | @ApiModelProperty(value = "比赛信息") 20 | private ContestVO contest; 21 | 22 | @ApiModelProperty(value = "比赛题目信息列表") 23 | private List problemList; 24 | } -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/ContestRegisterCountVO.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.pojo.vo; 2 | 3 | import io.swagger.annotations.ApiModel; 4 | import io.swagger.annotations.ApiModelProperty; 5 | import lombok.Data; 6 | 7 | import java.io.Serializable; 8 | 9 | /** 10 | * @Author: Himit_ZH 11 | * @Date: 2022/2/7 20:28 12 | * @Description: 13 | */ 14 | @Data 15 | @ApiModel(value="比赛报名统计", description="") 16 | public class ContestRegisterCountVO implements Serializable { 17 | 18 | @ApiModelProperty(value = "比赛id") 19 | private Long cid; 20 | 21 | @ApiModelProperty(value = "比赛报名人数") 22 | private Integer count; 23 | } -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/ExcelUserVO.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.pojo.vo; 2 | 3 | import com.alibaba.excel.annotation.ExcelProperty; 4 | import com.alibaba.excel.annotation.write.style.ColumnWidth; 5 | import lombok.Data; 6 | import lombok.experimental.Accessors; 7 | 8 | /** 9 | * @Author: Himit_ZH 10 | * @Date: 2020/12/10 16:33 11 | * @Description: 12 | */ 13 | @Data 14 | @Accessors(chain = true) 15 | @ColumnWidth(25) 16 | public class ExcelUserVO { 17 | @ExcelProperty(value = "用户名",index = 0) 18 | private String username; 19 | 20 | @ExcelProperty(value = "密码",index = 1) 21 | private String password; 22 | } -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/JudgeCaseVO.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.pojo.vo; 2 | 3 | import lombok.Data; 4 | import top.hcode.hoj.pojo.entity.judge.JudgeCase; 5 | 6 | import java.util.List; 7 | 8 | /** 9 | * @Author Himit_ZH 10 | * @Date 2022/8/28 11 | */ 12 | @Data 13 | public class JudgeCaseVO { 14 | 15 | /** 16 | * 当judgeCaseMode为default时 17 | */ 18 | private List judgeCaseList; 19 | 20 | /** 21 | * 当judgeCaseMode为subtask_lowest,subtask_average时 22 | */ 23 | private List subTaskJudgeCaseVoList; 24 | 25 | /** 26 | * default,subtask_lowest,subtask_average 27 | */ 28 | private String judgeCaseMode; 29 | } 30 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/ProblemFullScreenListVO.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.pojo.vo; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | * @Author Himit_ZH 7 | * @Date 2022/11/6 8 | */ 9 | @Data 10 | public class ProblemFullScreenListVO { 11 | 12 | private Long pid; 13 | 14 | private String problemId; 15 | 16 | private String title; 17 | 18 | private Integer status; 19 | 20 | private Integer score; 21 | } 22 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/ProblemTagVO.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.pojo.vo; 2 | 3 | import lombok.Data; 4 | import top.hcode.hoj.pojo.entity.problem.Tag; 5 | import top.hcode.hoj.pojo.entity.problem.TagClassification; 6 | 7 | import java.io.Serializable; 8 | import java.util.List; 9 | 10 | /** 11 | * @Author Himit_ZH 12 | * @Date 2022/8/3 13 | */ 14 | @Data 15 | public class ProblemTagVO implements Serializable { 16 | /** 17 | * 标签分类 18 | */ 19 | private TagClassification classification; 20 | 21 | /** 22 | * 标签列表 23 | */ 24 | private List tagList; 25 | 26 | } 27 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/RandomProblemVO.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.pojo.vo; 2 | 3 | import io.swagger.annotations.ApiModelProperty; 4 | import lombok.Data; 5 | 6 | /** 7 | * @Author: Himit_ZH 8 | * @Date: 2022/3/11 10:55 9 | * @Description: 10 | */ 11 | @Data 12 | public class RandomProblemVO { 13 | 14 | @ApiModelProperty(value = "题目id") 15 | private String problemId; 16 | } -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/RecentUpdatedProblemVO.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.pojo.vo; 2 | 3 | import io.swagger.annotations.ApiModelProperty; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | 7 | import java.util.Date; 8 | 9 | /** 10 | * @Author Himit_ZH 11 | * @Date 2022/10/19 12 | */ 13 | @Data 14 | @Builder 15 | public class RecentUpdatedProblemVO { 16 | 17 | @ApiModelProperty(value = "主键id") 18 | private Long id; 19 | 20 | @ApiModelProperty(value = "题目的自定义ID 例如(HOJ-1000)") 21 | private String problemId; 22 | 23 | @ApiModelProperty(value = "题目") 24 | private String title; 25 | 26 | @ApiModelProperty(value = "0为ACM,1为OI") 27 | private Integer type; 28 | 29 | @ApiModelProperty(value = "创建时间") 30 | private Date gmtCreate; 31 | 32 | @ApiModelProperty(value = "最近更新时间") 33 | private Date gmtModified; 34 | } 35 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/RegisterCodeVO.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.pojo.vo; 2 | 3 | import io.swagger.annotations.ApiModelProperty; 4 | import lombok.Data; 5 | 6 | /** 7 | * @Author: Himit_ZH 8 | * @Date: 2022/3/11 17:08 9 | * @Description: 10 | */ 11 | @Data 12 | public class RegisterCodeVO { 13 | 14 | @ApiModelProperty(value = "邮箱") 15 | private String email; 16 | 17 | @ApiModelProperty(value = "注册邮件有效时间,单位秒") 18 | private Integer expire; 19 | } -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/SubmissionInfoVO.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.pojo.vo; 2 | 3 | import io.swagger.annotations.ApiModelProperty; 4 | import lombok.Data; 5 | import top.hcode.hoj.pojo.entity.judge.Judge; 6 | 7 | /** 8 | * @Author: Himit_ZH 9 | * @Date: 2022/3/11 11:38 10 | * @Description: 11 | */ 12 | @Data 13 | public class SubmissionInfoVO { 14 | 15 | @ApiModelProperty(value = "提交详情") 16 | private Judge submission; 17 | 18 | @ApiModelProperty(value = "提交者是否可以分享该代码") 19 | private Boolean codeShare; 20 | } -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/SubmissionStatisticsVO.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.pojo.vo; 2 | 3 | import io.swagger.annotations.ApiModelProperty; 4 | import lombok.Data; 5 | 6 | import java.util.List; 7 | 8 | /** 9 | * @Author Himit_ZH 10 | * @Date 2022/10/15 11 | */ 12 | @Data 13 | public class SubmissionStatisticsVO { 14 | 15 | @ApiModelProperty(value = "最近七天日期格式 mm-dd,升序") 16 | private List dateStrList; 17 | 18 | @ApiModelProperty(value = "最近七天每天AC数量") 19 | private List acCountList; 20 | 21 | @ApiModelProperty(value = "最近七天每天提交数量") 22 | private List totalCountList; 23 | } 24 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/UserAuthInfoVO.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.pojo.vo; 2 | 3 | import io.swagger.annotations.ApiModelProperty; 4 | import lombok.Data; 5 | 6 | import java.util.List; 7 | 8 | /** 9 | * @Author Himit_ZH 10 | * @Date 2022/12/4 11 | */ 12 | @Data 13 | public class UserAuthInfoVO { 14 | 15 | @ApiModelProperty(value = "角色列表") 16 | private List roles; 17 | 18 | @ApiModelProperty(value = "权限列表") 19 | private List permissions; 20 | } 21 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/UserCalendarHeatmapVO.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.pojo.vo; 2 | 3 | import io.swagger.annotations.ApiModel; 4 | import io.swagger.annotations.ApiModelProperty; 5 | import lombok.Data; 6 | 7 | import java.io.Serializable; 8 | import java.util.HashMap; 9 | import java.util.List; 10 | 11 | /** 12 | * @Author Himit_ZH 13 | * @Date 2022/5/26 14 | */ 15 | @Data 16 | @ApiModel(value="用户主页的提交热力图数据类UserCalendarHeatmapVo", description="") 17 | public class UserCalendarHeatmapVO implements Serializable { 18 | 19 | @ApiModelProperty(value = "结尾日期 例如 2022-02-02") 20 | private String endDate; 21 | 22 | @ApiModelProperty(value = "日期对应的提交次数数据列表") 23 | private List> dataList; 24 | } 25 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/UserHomeProblemVO.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.pojo.vo; 2 | 3 | import io.swagger.annotations.ApiModelProperty; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | 7 | /** 8 | * @Author Himit_ZH 9 | * @Date 2022/10/19 10 | */ 11 | @Data 12 | @Builder 13 | public class UserHomeProblemVO { 14 | 15 | @ApiModelProperty(value = "主键id") 16 | private Long id; 17 | 18 | @ApiModelProperty(value = "题目的自定义ID 例如(HOJ-1000)") 19 | private String problemId; 20 | 21 | @ApiModelProperty(value = "题目难度") 22 | private Integer difficulty; 23 | } 24 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/schedule/ScheduleService.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.schedule; 2 | 3 | public interface ScheduleService { 4 | void deleteAvatar(); 5 | 6 | void deleteTestCase(); 7 | 8 | void deleteContestPrintText(); 9 | 10 | void getOjContestsList(); 11 | 12 | void getCodeforcesRating(); 13 | 14 | void deleteUserSession(); 15 | 16 | void syncNoticeToRecentHalfYearUser(); 17 | 18 | void check20MPendingSubmission(); 19 | 20 | void checkUnHandleGroupProblemApplyProgress(); 21 | } 22 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/account/AdminAccountService.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.service.admin.account; 2 | 3 | 4 | import top.hcode.hoj.common.result.CommonResult; 5 | import top.hcode.hoj.pojo.dto.LoginDTO; 6 | import top.hcode.hoj.pojo.vo.UserInfoVO; 7 | 8 | /** 9 | * @Author: Himit_ZH 10 | * @Date: 2022/3/9 10:10 11 | * @Description: 12 | */ 13 | public interface AdminAccountService { 14 | 15 | public CommonResult login(LoginDTO loginDto); 16 | 17 | public CommonResult logout(); 18 | } -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/announcement/AdminAnnouncementService.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.service.admin.announcement; 2 | 3 | import com.baomidou.mybatisplus.core.metadata.IPage; 4 | import top.hcode.hoj.common.result.CommonResult; 5 | import top.hcode.hoj.pojo.entity.common.Announcement; 6 | import top.hcode.hoj.pojo.vo.AnnouncementVO; 7 | 8 | /** 9 | * @Author: Himit_ZH 10 | * @Date: 2022/3/9 22:11 11 | * @Description: 12 | */ 13 | public interface AdminAnnouncementService { 14 | 15 | public CommonResult> getAnnouncementList(Integer limit, Integer currentPage); 16 | 17 | public CommonResult deleteAnnouncement(Long aid); 18 | 19 | public CommonResult addAnnouncement(Announcement announcement); 20 | 21 | public CommonResult updateAnnouncement(Announcement announcement); 22 | } -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/contest/AdminContestAnnouncementService.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.service.admin.contest; 2 | 3 | 4 | import com.baomidou.mybatisplus.core.metadata.IPage; 5 | import top.hcode.hoj.common.result.CommonResult; 6 | import top.hcode.hoj.pojo.dto.AnnouncementDTO; 7 | import top.hcode.hoj.pojo.vo.AnnouncementVO; 8 | 9 | 10 | public interface AdminContestAnnouncementService { 11 | 12 | public CommonResult> getAnnouncementList(Integer limit, Integer currentPage, Long cid); 13 | 14 | public CommonResult deleteAnnouncement(Long aid); 15 | 16 | public CommonResult addAnnouncement(AnnouncementDTO announcementDto); 17 | 18 | public CommonResult updateAnnouncement(AnnouncementDTO announcementDto); 19 | } 20 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/problem/AdminGroupProblemService.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.service.admin.problem; 2 | 3 | import com.baomidou.mybatisplus.core.metadata.IPage; 4 | import top.hcode.hoj.common.result.CommonResult; 5 | import top.hcode.hoj.pojo.dto.ChangeGroupProblemProgressDTO; 6 | import top.hcode.hoj.pojo.entity.problem.Problem; 7 | 8 | /** 9 | * @Author Himit_ZH 10 | * @Date 2022/4/13 11 | */ 12 | public interface AdminGroupProblemService { 13 | 14 | public CommonResult> getProblemList(Integer currentPage, Integer limit, String keyword, Long gid); 15 | 16 | public CommonResult changeProgress(ChangeGroupProblemProgressDTO changeGroupProblemProgressDto); 17 | } 18 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/rejudge/RejudgeService.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.service.admin.rejudge; 2 | 3 | import top.hcode.hoj.common.result.CommonResult; 4 | import top.hcode.hoj.pojo.entity.judge.Judge; 5 | 6 | public interface RejudgeService { 7 | 8 | CommonResult rejudge(Long submitId); 9 | 10 | CommonResult rejudgeContestProblem(Long cid, Long pid); 11 | 12 | CommonResult manualJudge(Long submitId, Integer status, Integer score); 13 | 14 | CommonResult cancelJudge(Long submitId); 15 | } 16 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/system/DashboardService.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.service.admin.system; 2 | 3 | import top.hcode.hoj.common.result.CommonResult; 4 | import top.hcode.hoj.pojo.entity.user.Session; 5 | 6 | import java.util.Map; 7 | 8 | /** 9 | * @Author: Himit_ZH 10 | * @Date: 2022/3/9 22:19 11 | * @Description: 12 | */ 13 | public interface DashboardService { 14 | 15 | public CommonResult getRecentSession(); 16 | 17 | public CommonResult> getDashboardInfo(); 18 | } -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/training/AdminTrainingCategoryService.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.service.admin.training; 2 | 3 | import top.hcode.hoj.common.result.CommonResult; 4 | import top.hcode.hoj.pojo.entity.training.TrainingCategory; 5 | 6 | /** 7 | * @Author: Himit_ZH 8 | * @Date: 2022/3/9 19:38 9 | * @Description: 10 | */ 11 | public interface AdminTrainingCategoryService { 12 | 13 | public CommonResult addTrainingCategory(TrainingCategory trainingCategory); 14 | 15 | public CommonResult updateTrainingCategory(TrainingCategory trainingCategory); 16 | 17 | public CommonResult deleteTrainingCategory(Long cid); 18 | } -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/file/ImageService.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.service.file; 2 | 3 | import org.springframework.web.multipart.MultipartFile; 4 | import top.hcode.hoj.common.result.CommonResult; 5 | import top.hcode.hoj.pojo.entity.group.Group; 6 | 7 | import java.util.Map; 8 | 9 | public interface ImageService { 10 | 11 | public CommonResult> uploadAvatar(MultipartFile image); 12 | 13 | public CommonResult uploadGroupAvatar(MultipartFile image, Long gid); 14 | 15 | public CommonResult> uploadCarouselImg(MultipartFile image); 16 | } 17 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/file/ImportFpsProblemService.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.service.file; 2 | 3 | import org.springframework.web.multipart.MultipartFile; 4 | import top.hcode.hoj.common.result.CommonResult; 5 | 6 | /** 7 | * @Author: Himit_ZH 8 | * @Date: 2022/3/10 15:32 9 | * @Description: 10 | */ 11 | public interface ImportFpsProblemService { 12 | 13 | public CommonResult importFPSProblem(MultipartFile file); 14 | } -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/file/ImportHydroProblemService.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.service.file; 2 | 3 | import org.springframework.web.multipart.MultipartFile; 4 | import top.hcode.hoj.common.result.CommonResult; 5 | 6 | /** 7 | * @Author Himit_ZH 8 | * @Date 2022/10/16 9 | */ 10 | public interface ImportHydroProblemService { 11 | 12 | public CommonResult importHydroProblem(MultipartFile file); 13 | } 14 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/file/ImportQDUOJProblemService.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.service.file; 2 | 3 | import org.springframework.web.multipart.MultipartFile; 4 | import top.hcode.hoj.common.result.CommonResult; 5 | 6 | public interface ImportQDUOJProblemService { 7 | 8 | public CommonResult importQDOJProblem(MultipartFile file); 9 | } 10 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/file/MarkDownFileService.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.service.file; 2 | 3 | import org.springframework.web.multipart.MultipartFile; 4 | import top.hcode.hoj.common.result.CommonResult; 5 | 6 | import java.util.Map; 7 | 8 | public interface MarkDownFileService { 9 | 10 | public CommonResult> uploadMDImg(MultipartFile image, Long gid); 11 | 12 | public CommonResult deleteMDImg(Long fileId); 13 | 14 | public CommonResult> uploadMd(MultipartFile file, Long gid); 15 | } 16 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/file/ProblemFileService.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.service.file; 2 | 3 | import org.springframework.web.multipart.MultipartFile; 4 | import top.hcode.hoj.common.result.CommonResult; 5 | 6 | import javax.servlet.http.HttpServletResponse; 7 | import java.util.List; 8 | 9 | public interface ProblemFileService { 10 | 11 | public CommonResult importProblem(MultipartFile file); 12 | 13 | public void exportProblem(List pidList, HttpServletResponse response); 14 | } 15 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/file/TestCaseService.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.service.file; 2 | 3 | import top.hcode.hoj.common.exception.StatusForbiddenException; 4 | import org.springframework.web.multipart.MultipartFile; 5 | import top.hcode.hoj.common.exception.StatusFailException; 6 | import top.hcode.hoj.common.result.CommonResult; 7 | 8 | import javax.servlet.http.HttpServletResponse; 9 | import java.util.Map; 10 | 11 | /** 12 | * @Author: Himit_ZH 13 | * @Date: 2022/3/10 15:08 14 | * @Description: 15 | */ 16 | public interface TestCaseService { 17 | 18 | public CommonResult> uploadTestcaseZip(MultipartFile file, Long gid, String mode); 19 | 20 | public void downloadTestcase(Long pid, HttpServletResponse response) throws StatusFailException, StatusForbiddenException; 21 | } -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/file/UserFileService.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.service.file; 2 | 3 | import javax.servlet.http.HttpServletResponse; 4 | import java.io.IOException; 5 | 6 | public interface UserFileService { 7 | 8 | public void generateUserExcel(String key, HttpServletResponse response) throws IOException; 9 | } 10 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/file/impl/UserFileServiceImpl.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.service.file.impl; 2 | 3 | import org.springframework.stereotype.Service; 4 | import top.hcode.hoj.manager.file.UserFileManager; 5 | import top.hcode.hoj.service.file.UserFileService; 6 | 7 | import javax.annotation.Resource; 8 | import javax.servlet.http.HttpServletResponse; 9 | import java.io.IOException; 10 | 11 | /** 12 | * @Author: Himit_ZH 13 | * @Date: 2022/3/10 15:04 14 | * @Description: 15 | */ 16 | @Service 17 | public class UserFileServiceImpl implements UserFileService { 18 | 19 | @Resource 20 | private UserFileManager userFileManager; 21 | 22 | 23 | @Override 24 | public void generateUserExcel(String key, HttpServletResponse response) throws IOException { 25 | userFileManager.generateUserExcel(key, response); 26 | } 27 | } -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/group/GroupRankService.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.service.group; 2 | 3 | import com.baomidou.mybatisplus.core.metadata.IPage; 4 | import top.hcode.hoj.common.result.CommonResult; 5 | import top.hcode.hoj.pojo.vo.OIRankVO; 6 | 7 | public interface GroupRankService { 8 | 9 | public CommonResult> getGroupRankList(Integer limit, 10 | Integer currentPage, 11 | String searchUser, 12 | Integer type, 13 | Long gid); 14 | } 15 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/msg/AdminNoticeService.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.service.msg; 2 | 3 | import com.baomidou.mybatisplus.core.metadata.IPage; 4 | import top.hcode.hoj.common.result.CommonResult; 5 | import top.hcode.hoj.pojo.entity.msg.AdminSysNotice; 6 | import top.hcode.hoj.pojo.vo.AdminSysNoticeVO; 7 | 8 | public interface AdminNoticeService { 9 | 10 | public CommonResult> getSysNotice(Integer limit, Integer currentPage, String type); 11 | 12 | public CommonResult addSysNotice(AdminSysNotice adminSysNotice); 13 | 14 | public CommonResult deleteSysNotice(Long id); 15 | 16 | public CommonResult updateSysNotice(AdminSysNotice adminSysNotice); 17 | } 18 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/msg/NoticeService.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.service.msg; 2 | 3 | import com.baomidou.mybatisplus.core.metadata.IPage; 4 | import top.hcode.hoj.common.result.CommonResult; 5 | import top.hcode.hoj.pojo.vo.SysMsgVO; 6 | 7 | public interface NoticeService { 8 | 9 | public CommonResult> getSysNotice(Integer limit, Integer currentPage); 10 | 11 | public CommonResult> getMineNotice(Integer limit, Integer currentPage); 12 | } 13 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/msg/UserMessageService.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.service.msg; 2 | 3 | import com.baomidou.mybatisplus.core.metadata.IPage; 4 | import top.hcode.hoj.common.result.CommonResult; 5 | import top.hcode.hoj.pojo.vo.UserMsgVO; 6 | import top.hcode.hoj.pojo.vo.UserUnreadMsgCountVO; 7 | 8 | public interface UserMessageService { 9 | 10 | public CommonResult getUnreadMsgCount(); 11 | 12 | public CommonResult cleanMsg(String type, Long id); 13 | 14 | public CommonResult> getCommentMsg(Integer limit, Integer currentPage); 15 | 16 | public CommonResult> getReplyMsg(Integer limit, Integer currentPage); 17 | 18 | public CommonResult> getLikeMsg(Integer limit, Integer currentPage); 19 | 20 | } 21 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/oj/ContestAdminService.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.service.oj; 2 | 3 | import com.baomidou.mybatisplus.core.metadata.IPage; 4 | import top.hcode.hoj.common.result.CommonResult; 5 | import top.hcode.hoj.pojo.dto.CheckACDTO; 6 | import top.hcode.hoj.pojo.entity.contest.ContestPrint; 7 | import top.hcode.hoj.pojo.entity.contest.ContestRecord; 8 | 9 | public interface ContestAdminService { 10 | 11 | public CommonResult> getContestACInfo(Long cid, Integer currentPage, Integer limit); 12 | 13 | public CommonResult checkContestACInfo(CheckACDTO checkACDto); 14 | 15 | public CommonResult> getContestPrint(Long cid, Integer currentPage, Integer limit); 16 | 17 | public CommonResult checkContestPrintStatus(Long id, Long cid); 18 | } 19 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/oj/ContestScoreboardService.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.service.oj; 2 | 3 | import com.baomidou.mybatisplus.core.metadata.IPage; 4 | import top.hcode.hoj.common.result.CommonResult; 5 | import top.hcode.hoj.pojo.dto.ContestRankDTO; 6 | import top.hcode.hoj.pojo.vo.ContestOutsideInfoVO; 7 | 8 | /** 9 | * @Author: Himit_ZH 10 | * @Date: 2022/3/11 22:18 11 | * @Description: 12 | */ 13 | public interface ContestScoreboardService { 14 | 15 | public CommonResult getContestOutsideInfo(Long cid); 16 | 17 | public CommonResult getContestOutsideScoreboard(ContestRankDTO contestRankDto); 18 | 19 | } -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/oj/ContestScrollBoardService.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.service.oj; 2 | 3 | import top.hcode.hoj.common.result.CommonResult; 4 | import top.hcode.hoj.pojo.vo.ContestScrollBoardInfoVO; 5 | import top.hcode.hoj.pojo.vo.ContestScrollBoardSubmissionVO; 6 | 7 | import java.util.List; 8 | 9 | /** 10 | * @Author Himit_ZH 11 | * @Date 2022/10/3 12 | */ 13 | public interface ContestScrollBoardService { 14 | 15 | public CommonResult getContestScrollBoardInfo(Long cid); 16 | 17 | public CommonResult> getContestScrollBoardSubmission(Long cid, Boolean removeStar); 18 | } 19 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/oj/RankService.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.service.oj; 2 | 3 | import com.baomidou.mybatisplus.core.metadata.IPage; 4 | import top.hcode.hoj.common.result.CommonResult; 5 | 6 | public interface RankService { 7 | 8 | public CommonResult getRankList(Integer limit, Integer currentPage, String searchUser, Integer type); 9 | } 10 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/shiro/JwtToken.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.shiro; 2 | 3 | import org.apache.shiro.authc.AuthenticationToken; 4 | 5 | /** 6 | * @Author: Himit_ZH 7 | * @Date: 2020/7/19 22:58 8 | * @Description: 9 | */ 10 | public class JwtToken implements AuthenticationToken { 11 | 12 | private String token; 13 | 14 | public JwtToken(String token) { 15 | this.token = token; 16 | } 17 | 18 | @Override 19 | public Object getPrincipal() { 20 | return token; 21 | } 22 | 23 | @Override 24 | public Object getCredentials() { 25 | return token; 26 | } 27 | } -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/shiro/ShiroCacheManager.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.shiro; 2 | 3 | import lombok.Data; 4 | import org.apache.shiro.cache.Cache; 5 | import org.apache.shiro.cache.CacheException; 6 | import org.apache.shiro.cache.CacheManager; 7 | import top.hcode.hoj.utils.RedisUtils; 8 | 9 | /** 10 | * @Author Himit_ZH 11 | * @Date 2022/10/27 12 | */ 13 | @Data 14 | public class ShiroCacheManager implements CacheManager { 15 | 16 | private long cacheLive; // cache存活时间 秒 17 | 18 | private String cacheKeyPrefix; // cache前缀 19 | 20 | private RedisUtils redisUtils; // redis工具类 21 | 22 | @Override 23 | public Cache getCache(String s) throws CacheException { 24 | return new ShiroCache(cacheLive, cacheKeyPrefix, redisUtils); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/shiro/ShiroConstant.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.shiro; 2 | 3 | /** 4 | * @Author Himit_ZH 5 | * @Date 2022/10/27 6 | */ 7 | public class ShiroConstant { 8 | 9 | public final static String SHIRO_TOKEN_KEY = "shiro:token-key:uid:"; 10 | 11 | public final static String SHIRO_TOKEN_REFRESH = "shiro:token-refresh:uid:"; 12 | 13 | public final static String SHIRO_AUTHORIZATION_CACHE = "shiro:authorization:uid:"; 14 | 15 | public final static String SHIRO_TOKEN_LOCK = "shiro:token-lock:uid:"; 16 | } 17 | -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/utils/ShiroUtils.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.utils; 2 | 3 | import org.apache.shiro.SecurityUtils; 4 | import top.hcode.hoj.shiro.AccountProfile; 5 | 6 | 7 | /** 8 | * @Author: Himit_ZH 9 | * @Date: 2020/7/20 14:13 10 | * @Description: 11 | */ 12 | public class ShiroUtils { 13 | 14 | private ShiroUtils() { 15 | } 16 | 17 | public static AccountProfile getProfile(){ 18 | return (AccountProfile) SecurityUtils.getSubject().getPrincipal(); 19 | } 20 | 21 | } -------------------------------------------------------------------------------- /hoj-springboot/DataBackup/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | mybatis-plus: 2 | mapper-locations: classpath*:top/hcode/hoj/mapper/xml/**Mapper.xml 3 | type-aliases-package: top.hcode.hoj.pojo.entity 4 | configuration: 5 | cache-enabled: true 6 | # 关闭打印 mybatis-plus 的 LOGO 7 | global-config: 8 | banner: false 9 | 10 | # 消费者将要去访问的微服务名称(注册成功进入nacos的微服务提供者) 11 | service-url: 12 | name: hoj-judgeserver # 服务名 13 | 14 | # 需要更新的语言配置(更新language表), 必须填写oj、name、isSpj来唯一定位 15 | check-language-config: 16 | list: 17 | - oj: ME 18 | name: PyPy3 19 | isSpj: false 20 | description: PyPy 3.9.17 (7.3.12) 21 | - oj: ME 22 | name: PyPy 23 | isSpj: false 24 | description: PyPy 2.7.18 (7.3.9) 25 | - oj: ME 26 | name: PHP 27 | isSpj: false 28 | description: PHP 7.2.24 29 | -------------------------------------------------------------------------------- /hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/common/ResultStatus.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.common; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Getter; 5 | 6 | /** 7 | * @Author: Himit_ZH 8 | * @Date: 2022/3/9 15:17 9 | * @Description: 10 | */ 11 | @Getter 12 | @AllArgsConstructor 13 | public enum ResultStatus { 14 | 15 | SUCCESS(200,"成功"), 16 | 17 | FAIL(400,"失败"), 18 | 19 | ACCESS_DENIED(401,"访问受限"), 20 | 21 | FORBIDDEN(403,"拒绝访问"), 22 | 23 | NOT_FOUND(404,"数据不存在"), 24 | 25 | SYSTEM_ERROR(500,"系统错误"); 26 | 27 | 28 | private int status; 29 | 30 | private String description; 31 | } -------------------------------------------------------------------------------- /hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/common/exception/CompileError.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.common.exception; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | * @Author: Himit_ZH 7 | * @Date: 2021/1/31 00:16 8 | * @Description: 9 | */ 10 | @Data 11 | public class CompileError extends Exception { 12 | private String message; 13 | private String stdout; 14 | private String stderr; 15 | 16 | public CompileError(String message, String stdout, String stderr) { 17 | super(message); 18 | this.message = message; 19 | this.stdout = stdout; 20 | this.stderr = stderr; 21 | } 22 | } -------------------------------------------------------------------------------- /hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/common/exception/RuntimeError.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.common.exception; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | * @Author: Himit_ZH 7 | * @Date: 2021/1/31 00:16 8 | * @Description: 9 | */ 10 | @Data 11 | public class RuntimeError extends Exception { 12 | private String message; 13 | private String stdout; 14 | private String stderr; 15 | 16 | public RuntimeError(String message, String stdout, String stderr) { 17 | super(message); 18 | this.message = message; 19 | this.stdout = stdout; 20 | this.stderr = stderr; 21 | } 22 | } -------------------------------------------------------------------------------- /hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/common/exception/SubmitError.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.common.exception; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | * @Author: Himit_ZH 7 | * @Date: 2021/4/16 13:52 8 | * @Description: 9 | */ 10 | @Data 11 | public class SubmitError extends Exception { 12 | private String message; 13 | private String stdout; 14 | private String stderr; 15 | 16 | public SubmitError(String message, String stdout, String stderr) { 17 | super(message); 18 | this.message = message; 19 | this.stdout = stdout; 20 | this.stderr = stderr; 21 | } 22 | } -------------------------------------------------------------------------------- /hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/common/exception/SystemError.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.common.exception; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | * @Author: Himit_ZH 7 | * @Date: 2021/1/31 00:17 8 | * @Description: 9 | */ 10 | @Data 11 | public class SystemError extends Exception { 12 | private String message; 13 | private String stdout; 14 | private String stderr; 15 | 16 | public SystemError(String message, String stdout, String stderr) { 17 | super(message + " " + stderr); 18 | this.message = message; 19 | this.stdout = stdout; 20 | this.stderr = stderr; 21 | } 22 | 23 | } -------------------------------------------------------------------------------- /hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/controller/SystemConfigController.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.controller; 2 | 3 | import org.springframework.beans.factory.annotation.Autowired; 4 | import org.springframework.web.bind.annotation.RequestMapping; 5 | import org.springframework.web.bind.annotation.RestController; 6 | import top.hcode.hoj.service.SystemConfigService; 7 | 8 | import java.util.HashMap; 9 | 10 | /** 11 | * @Author: Himit_ZH 12 | * @Date: 2020/12/3 20:12 13 | * @Description: 14 | */ 15 | @RestController 16 | public class SystemConfigController { 17 | 18 | @Autowired 19 | private SystemConfigService systemConfigService; 20 | 21 | @RequestMapping("/get-sys-config") 22 | public HashMap getSystemConfig(){ 23 | return systemConfigService.getSystemConfig(); 24 | } 25 | } -------------------------------------------------------------------------------- /hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/dao/ContestEntityService.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.dao; 2 | 3 | 4 | import com.baomidou.mybatisplus.extension.service.IService; 5 | import top.hcode.hoj.pojo.entity.contest.Contest; 6 | 7 | /** 8 | *

9 | * 服务类 10 | *

11 | * 12 | * @author Himit_ZH 13 | * @since 2020-10-23 14 | */ 15 | public interface ContestEntityService extends IService { 16 | 17 | } 18 | -------------------------------------------------------------------------------- /hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/dao/ContestRecordEntityService.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.dao; 2 | 3 | import com.baomidou.mybatisplus.extension.service.IService; 4 | import top.hcode.hoj.pojo.entity.contest.ContestRecord; 5 | 6 | /** 7 | *

8 | * 服务类 9 | *

10 | * 11 | * @author Himit_ZH 12 | * @since 2020-10-23 13 | */ 14 | public interface ContestRecordEntityService extends IService { 15 | void updateContestRecord(Integer score, Integer status, Long submitId, Integer useTime); 16 | } 17 | -------------------------------------------------------------------------------- /hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/dao/JudgeCaseEntityService.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.dao; 2 | 3 | import com.baomidou.mybatisplus.extension.service.IService; 4 | import top.hcode.hoj.pojo.entity.judge.JudgeCase; 5 | 6 | /** 7 | *

8 | * 服务类 9 | *

10 | * 11 | * @author Himit_ZH 12 | * @since 2020-10-23 13 | */ 14 | public interface JudgeCaseEntityService extends IService { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/dao/JudgeEntityService.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.dao; 2 | 3 | import com.baomidou.mybatisplus.extension.service.IService; 4 | import top.hcode.hoj.pojo.entity.judge.Judge; 5 | 6 | 7 | /** 8 | *

9 | * 服务类 10 | *

11 | * 12 | * @author Himit_ZH 13 | * @since 2020-10-23 14 | */ 15 | public interface JudgeEntityService extends IService { 16 | 17 | } 18 | -------------------------------------------------------------------------------- /hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/dao/JudgeServerEntityService.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.dao; 2 | 3 | import com.baomidou.mybatisplus.extension.service.IService; 4 | import top.hcode.hoj.pojo.entity.judge.JudgeServer; 5 | 6 | import java.util.HashMap; 7 | 8 | public interface JudgeServerEntityService extends IService { 9 | 10 | public HashMap getJudgeServerInfo(); 11 | } 12 | -------------------------------------------------------------------------------- /hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/dao/ProblemCaseEntityService.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.dao; 2 | 3 | import com.baomidou.mybatisplus.extension.service.IService; 4 | import top.hcode.hoj.pojo.entity.problem.ProblemCase; 5 | 6 | /** 7 | * @Author: Himit_ZH 8 | * @Date: 2020/12/14 19:58 9 | * @Description: 10 | */ 11 | public interface ProblemCaseEntityService extends IService { 12 | } -------------------------------------------------------------------------------- /hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/dao/ProblemCountEntityService.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.dao; 2 | 3 | import com.baomidou.mybatisplus.extension.service.IService; 4 | import top.hcode.hoj.pojo.entity.problem.ProblemCount; 5 | 6 | /** 7 | *

8 | * 服务类 9 | *

10 | * 11 | * @author Himit_ZH 12 | * @since 2020-10-23 13 | */ 14 | public interface ProblemCountEntityService extends IService { 15 | 16 | void updateCount(int status, Long pid); 17 | 18 | } 19 | -------------------------------------------------------------------------------- /hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/dao/ProblemEntityService.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.dao; 2 | 3 | import com.baomidou.mybatisplus.extension.service.IService; 4 | import top.hcode.hoj.pojo.entity.problem.Problem; 5 | 6 | 7 | /** 8 | *

9 | * 服务类 10 | *

11 | * 12 | * @author Himit_ZH 13 | * @since 2020-10-23 14 | */ 15 | 16 | public interface ProblemEntityService extends IService { 17 | 18 | } 19 | -------------------------------------------------------------------------------- /hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/dao/RemoteJudgeAccountEntityService.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.dao; 2 | 3 | import com.baomidou.mybatisplus.extension.service.IService; 4 | import top.hcode.hoj.pojo.entity.judge.RemoteJudgeAccount; 5 | 6 | public interface RemoteJudgeAccountEntityService extends IService { 7 | } 8 | -------------------------------------------------------------------------------- /hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/dao/UserAcproblemEntityService.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.dao; 2 | 3 | import com.baomidou.mybatisplus.extension.service.IService; 4 | import top.hcode.hoj.pojo.entity.user.UserAcproblem; 5 | 6 | /** 7 | *

8 | * 服务类 9 | *

10 | * 11 | * @author Himit_ZH 12 | * @since 2020-10-23 13 | */ 14 | public interface UserAcproblemEntityService extends IService { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/dao/UserRecordEntityService.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.dao; 2 | 3 | 4 | import com.baomidou.mybatisplus.extension.service.IService; 5 | import top.hcode.hoj.pojo.entity.user.UserRecord; 6 | 7 | 8 | /** 9 | *

10 | * 服务类 11 | *

12 | * 13 | * @author Himit_ZH 14 | * @since 2020-10-23 15 | */ 16 | public interface UserRecordEntityService extends IService { 17 | void updateRecord(String uid, Long submitId, Long pid, Integer score); 18 | } 19 | -------------------------------------------------------------------------------- /hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/dao/impl/ContestEntityServiceImpl.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.dao.impl; 2 | 3 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 4 | import org.springframework.stereotype.Service;; 5 | import top.hcode.hoj.mapper.ContestMapper; 6 | 7 | import top.hcode.hoj.pojo.entity.contest.Contest; 8 | import top.hcode.hoj.dao.ContestEntityService; 9 | 10 | /** 11 | *

12 | * 服务实现类 13 | *

14 | * 15 | * @author Himit_ZH 16 | * @since 2020-10-23 17 | */ 18 | @Service 19 | public class ContestEntityServiceImpl extends ServiceImpl implements ContestEntityService { 20 | 21 | } 22 | -------------------------------------------------------------------------------- /hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/dao/impl/JudgeCaseEntityServiceImpl.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.dao.impl; 2 | 3 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 4 | import org.springframework.stereotype.Service; 5 | import top.hcode.hoj.mapper.JudgeCaseMapper; 6 | import top.hcode.hoj.pojo.entity.judge.JudgeCase; 7 | import top.hcode.hoj.dao.JudgeCaseEntityService; 8 | 9 | /** 10 | *

11 | * 服务实现类 12 | *

13 | * 14 | * @author Himit_ZH 15 | * @since 2020-10-23 16 | */ 17 | @Service 18 | public class JudgeCaseEntityServiceImpl extends ServiceImpl implements JudgeCaseEntityService { 19 | 20 | } 21 | -------------------------------------------------------------------------------- /hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/dao/impl/JudgeEntityServiceImpl.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.dao.impl; 2 | 3 | 4 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 5 | import org.springframework.stereotype.Service; 6 | import top.hcode.hoj.mapper.JudgeMapper; 7 | import top.hcode.hoj.pojo.entity.judge.Judge; 8 | import top.hcode.hoj.dao.JudgeEntityService; 9 | 10 | /** 11 | *

12 | * 服务实现类 13 | *

14 | * 15 | * @author Himit_ZH 16 | * @since 2020-10-23 17 | */ 18 | @Service 19 | public class JudgeEntityServiceImpl extends ServiceImpl implements JudgeEntityService { 20 | 21 | } 22 | -------------------------------------------------------------------------------- /hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/dao/impl/ProblemCaseEntityServiceImpl.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.dao.impl; 2 | 3 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 4 | import org.springframework.stereotype.Service; 5 | import top.hcode.hoj.mapper.ProblemCaseMapper; 6 | import top.hcode.hoj.pojo.entity.problem.ProblemCase; 7 | import top.hcode.hoj.dao.ProblemCaseEntityService; 8 | 9 | /** 10 | * @Author: Himit_ZH 11 | * @Date: 2020/12/14 19:59 12 | * @Description: 13 | */ 14 | @Service 15 | public class ProblemCaseEntityServiceImpl extends ServiceImpl implements ProblemCaseEntityService { 16 | } -------------------------------------------------------------------------------- /hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/dao/impl/ProblemEntityServiceImpl.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.dao.impl; 2 | 3 | 4 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 5 | import org.springframework.stereotype.Service; 6 | import top.hcode.hoj.mapper.ProblemMapper; 7 | import top.hcode.hoj.pojo.entity.problem.Problem; 8 | import top.hcode.hoj.dao.ProblemEntityService; 9 | 10 | /** 11 | *

12 | * 服务实现类 13 | *

14 | * 15 | * @author Himit_ZH 16 | * @since 2020-10-23 17 | */ 18 | @Service 19 | public class ProblemEntityServiceImpl extends ServiceImpl implements ProblemEntityService { 20 | 21 | } 22 | -------------------------------------------------------------------------------- /hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/dao/impl/RemoteJudgeAccountEntityServiceImpl.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.dao.impl; 2 | 3 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 4 | import org.springframework.stereotype.Service; 5 | import top.hcode.hoj.mapper.RemoteJudgeAccountMapper; 6 | import top.hcode.hoj.pojo.entity.judge.RemoteJudgeAccount; 7 | import top.hcode.hoj.dao.RemoteJudgeAccountEntityService; 8 | 9 | 10 | /** 11 | * @Author: Himit_ZH 12 | * @Date: 2021/5/18 17:46 13 | * @Description: 14 | */ 15 | @Service 16 | public class RemoteJudgeAccountEntityServiceImpl extends ServiceImpl implements RemoteJudgeAccountEntityService { 17 | } -------------------------------------------------------------------------------- /hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/dao/impl/UserAcproblemEntityServiceImpl.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.dao.impl; 2 | 3 | 4 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 5 | import org.springframework.stereotype.Service; 6 | import top.hcode.hoj.mapper.UserAcproblemMapper; 7 | import top.hcode.hoj.pojo.entity.user.UserAcproblem; 8 | import top.hcode.hoj.dao.UserAcproblemEntityService; 9 | 10 | /** 11 | *

12 | * 服务实现类 13 | *

14 | * 15 | * @author Himit_ZH 16 | * @since 2020-10-23 17 | */ 18 | @Service 19 | public class UserAcproblemEntityServiceImpl extends ServiceImpl implements UserAcproblemEntityService { 20 | 21 | } 22 | -------------------------------------------------------------------------------- /hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/mapper/ContestMapper.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.mapper; 2 | 3 | 4 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 5 | import org.apache.ibatis.annotations.Mapper; 6 | import org.springframework.stereotype.Repository; 7 | import top.hcode.hoj.pojo.entity.contest.Contest; 8 | 9 | /** 10 | *

11 | * Mapper 接口 12 | *

13 | * 14 | * @author Himit_ZH 15 | * @since 2020-10-23 16 | */ 17 | @Mapper 18 | @Repository 19 | public interface ContestMapper extends BaseMapper { 20 | 21 | } 22 | -------------------------------------------------------------------------------- /hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/mapper/ContestRecordMapper.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.mapper; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import org.apache.ibatis.annotations.Mapper; 5 | import org.springframework.stereotype.Repository; 6 | import top.hcode.hoj.pojo.entity.contest.ContestRecord; 7 | 8 | 9 | /** 10 | *

11 | * Mapper 接口 12 | *

13 | * 14 | * @author Himit_ZH 15 | * @since 2020-10-23 16 | */ 17 | @Mapper 18 | @Repository 19 | public interface ContestRecordMapper extends BaseMapper { 20 | 21 | } 22 | -------------------------------------------------------------------------------- /hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/mapper/JudgeCaseMapper.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.mapper; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import org.apache.ibatis.annotations.Mapper; 5 | import org.springframework.stereotype.Repository; 6 | import top.hcode.hoj.pojo.entity.judge.JudgeCase; 7 | 8 | /** 9 | *

10 | * Mapper 接口 11 | *

12 | * 13 | * @author Himit_ZH 14 | * @since 2020-10-23 15 | */ 16 | @Mapper 17 | @Repository 18 | public interface JudgeCaseMapper extends BaseMapper { 19 | 20 | } 21 | -------------------------------------------------------------------------------- /hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/mapper/JudgeMapper.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.mapper; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import org.apache.ibatis.annotations.Mapper; 5 | import org.springframework.stereotype.Repository; 6 | import top.hcode.hoj.pojo.entity.judge.Judge; 7 | 8 | 9 | /** 10 | *

11 | * Mapper 接口 12 | *

13 | * 14 | * @author Himit_ZH 15 | * @since 2020-10-23 16 | */ 17 | @Mapper 18 | @Repository 19 | public interface JudgeMapper extends BaseMapper { 20 | 21 | } 22 | -------------------------------------------------------------------------------- /hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/mapper/JudgeServerMapper.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.mapper; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import org.apache.ibatis.annotations.Mapper; 5 | import org.springframework.stereotype.Repository; 6 | import top.hcode.hoj.pojo.entity.judge.JudgeServer; 7 | 8 | @Mapper 9 | @Repository 10 | public interface JudgeServerMapper extends BaseMapper { 11 | } 12 | -------------------------------------------------------------------------------- /hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/mapper/ProblemCaseMapper.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.mapper; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import org.apache.ibatis.annotations.Mapper; 5 | import org.springframework.stereotype.Repository; 6 | import top.hcode.hoj.pojo.entity.problem.ProblemCase; 7 | 8 | /** 9 | * @Author: Himit_ZH 10 | * @Date: 2020/12/14 19:57 11 | * @Description: 12 | */ 13 | @Mapper 14 | @Repository 15 | public interface ProblemCaseMapper extends BaseMapper { 16 | } -------------------------------------------------------------------------------- /hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/mapper/ProblemCountMapper.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.mapper; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import org.apache.ibatis.annotations.Mapper; 5 | import org.springframework.stereotype.Repository; 6 | import top.hcode.hoj.pojo.entity.problem.ProblemCount; 7 | 8 | /** 9 | *

10 | * Mapper 接口 11 | *

12 | * 13 | * @author Himit_ZH 14 | * @since 2020-10-23 15 | */ 16 | @Mapper 17 | @Repository 18 | public interface ProblemCountMapper extends BaseMapper { 19 | 20 | } 21 | -------------------------------------------------------------------------------- /hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/mapper/ProblemMapper.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.mapper; 2 | 3 | 4 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 5 | import org.apache.ibatis.annotations.Mapper; 6 | import org.springframework.stereotype.Repository; 7 | import top.hcode.hoj.pojo.entity.problem.Problem; 8 | 9 | /** 10 | *

11 | * Mapper 接口 12 | *

13 | * 14 | * @author Himit_ZH 15 | * @since 2020-10-23 16 | */ 17 | @Mapper 18 | @Repository 19 | public interface ProblemMapper extends BaseMapper { 20 | 21 | } 22 | -------------------------------------------------------------------------------- /hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/mapper/RemoteJudgeAccountMapper.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.mapper; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import org.apache.ibatis.annotations.Mapper; 5 | import org.springframework.stereotype.Repository; 6 | import top.hcode.hoj.pojo.entity.judge.RemoteJudgeAccount; 7 | 8 | @Mapper 9 | @Repository 10 | public interface RemoteJudgeAccountMapper extends BaseMapper { 11 | } 12 | -------------------------------------------------------------------------------- /hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/mapper/UserAcproblemMapper.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.mapper; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import org.apache.ibatis.annotations.Mapper; 5 | import org.springframework.stereotype.Repository; 6 | import top.hcode.hoj.pojo.entity.user.UserAcproblem; 7 | 8 | 9 | /** 10 | *

11 | * Mapper 接口 12 | *

13 | * 14 | * @author Himit_ZH 15 | * @since 2020-10-23 16 | */ 17 | @Mapper 18 | @Repository 19 | public interface UserAcproblemMapper extends BaseMapper { 20 | 21 | } 22 | -------------------------------------------------------------------------------- /hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/mapper/UserRecordMapper.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.mapper; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import org.apache.ibatis.annotations.Mapper; 5 | import org.springframework.stereotype.Repository; 6 | import top.hcode.hoj.pojo.entity.user.UserRecord; 7 | 8 | 9 | /** 10 | *

11 | * Mapper 接口 12 | *

13 | * 14 | * @author Himit_ZH 15 | * @since 2020-10-23 16 | */ 17 | @Mapper 18 | @Repository 19 | public interface UserRecordMapper extends BaseMapper { 20 | 21 | } 22 | -------------------------------------------------------------------------------- /hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/mapper/xml/JudgeCaseMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/mapper/xml/JudgeMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/remoteJudge/entity/RemoteJudgeRes.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.remoteJudge.entity; 2 | 3 | import lombok.Builder; 4 | import lombok.Data; 5 | import lombok.EqualsAndHashCode; 6 | import lombok.experimental.Accessors; 7 | import top.hcode.hoj.pojo.entity.judge.JudgeCase; 8 | 9 | import java.io.Serializable; 10 | import java.util.List; 11 | 12 | /** 13 | * @Author: Himit_ZH 14 | * @Date: 2022/1/29 11:25 15 | * @Description: 16 | */ 17 | @Data 18 | @EqualsAndHashCode(callSuper = false) 19 | @Accessors(chain = true) 20 | @Builder 21 | public class RemoteJudgeRes implements Serializable { 22 | private static final long serialVersionUID = 999L; 23 | 24 | private Integer status; 25 | 26 | private Integer time; 27 | 28 | private Integer memory; 29 | 30 | private String errorInfo; 31 | 32 | private List judgeCaseList; 33 | } -------------------------------------------------------------------------------- /hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/remoteJudge/task/RemoteJudgeStrategy.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.remoteJudge.task; 2 | 3 | import lombok.Getter; 4 | import lombok.Setter; 5 | import top.hcode.hoj.remoteJudge.entity.RemoteJudgeDTO; 6 | import top.hcode.hoj.remoteJudge.entity.RemoteJudgeRes; 7 | 8 | 9 | /** 10 | * 远程评测抽象类 11 | */ 12 | public abstract class RemoteJudgeStrategy { 13 | 14 | @Setter 15 | @Getter 16 | private RemoteJudgeDTO remoteJudgeDTO; 17 | 18 | public abstract void submit(); 19 | 20 | public abstract RemoteJudgeRes result(); 21 | 22 | public abstract void login(); 23 | 24 | public abstract String getLanguage(String language); 25 | 26 | } 27 | -------------------------------------------------------------------------------- /hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/service/JudgeService.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.service; 2 | 3 | import top.hcode.hoj.common.exception.SystemError; 4 | import top.hcode.hoj.pojo.dto.TestJudgeReq; 5 | import top.hcode.hoj.pojo.dto.TestJudgeRes; 6 | import top.hcode.hoj.pojo.entity.judge.Judge; 7 | import top.hcode.hoj.pojo.dto.ToJudgeDTO; 8 | 9 | import java.util.HashMap; 10 | 11 | public interface JudgeService { 12 | 13 | public void judge(Judge judge); 14 | 15 | public TestJudgeRes testJudge(TestJudgeReq testJudgeReq); 16 | 17 | public void remoteJudge(ToJudgeDTO toJudgeDTO); 18 | 19 | public Boolean compileSpj(String code, Long pid, String spjLanguage, HashMap extraFiles) throws SystemError; 20 | 21 | public Boolean compileInteractive(String code, Long pid, String interactiveLanguage, HashMap extraFiles) throws SystemError; 22 | 23 | } 24 | -------------------------------------------------------------------------------- /hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/service/RemoteJudgeService.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.service; 2 | 3 | public interface RemoteJudgeService { 4 | 5 | public void changeAccountStatus(String remoteJudge, String username); 6 | 7 | public void changeServerSubmitCFStatus(String ip, Integer port); 8 | } 9 | -------------------------------------------------------------------------------- /hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/service/SystemConfigService.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.service; 2 | 3 | import java.util.HashMap; 4 | 5 | public interface SystemConfigService { 6 | public HashMap getSystemConfig(); 7 | } 8 | -------------------------------------------------------------------------------- /hoj-springboot/JudgeServer/src/test/java/top/hcode/hoj/JudgeServerApplicationTests.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj; 2 | 3 | import org.springframework.boot.test.context.SpringBootTest; 4 | 5 | 6 | @SpringBootTest 7 | public class JudgeServerApplicationTests { 8 | 9 | } 10 | -------------------------------------------------------------------------------- /hoj-springboot/JudgeServer/src/test/java/top/hcode/hoj/remoteJudge/task/Impl/CodeForcesJudgeTest.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.remoteJudge.task.Impl; 2 | 3 | import cn.hutool.core.map.MapUtil; 4 | import org.jsoup.Connection; 5 | import org.junit.jupiter.api.Test; 6 | import top.hcode.hoj.util.JsoupUtils; 7 | 8 | import java.util.HashMap; 9 | import java.util.Map; 10 | 11 | import static org.junit.jupiter.api.Assertions.*; 12 | 13 | class CodeForcesJudgeTest { 14 | 15 | @Test 16 | void submit() { 17 | } 18 | 19 | @Test 20 | void result() { 21 | } 22 | 23 | @Test 24 | void getLoginCookie() throws Exception { 25 | 26 | } 27 | 28 | @Test 29 | void getLanguage() { 30 | } 31 | 32 | @Test 33 | void getTokens() { 34 | } 35 | } -------------------------------------------------------------------------------- /hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/dto/CompileDTO.java: -------------------------------------------------------------------------------- 1 | package top.hcode.hoj.pojo.dto; 2 | 3 | import lombok.Data; 4 | 5 | import java.io.Serializable; 6 | import java.util.HashMap; 7 | 8 | 9 | /** 10 | * @Author: Himit_ZH 11 | * @Date: 2021/2/6 14:42 12 | * @Description: 13 | */ 14 | @Data 15 | public class CompileDTO implements Serializable { 16 | 17 | private static final long serialVersionUID = 333L; 18 | 19 | /** 20 | * 编译的源代码 21 | */ 22 | private String code; 23 | 24 | /** 25 | * 编译的源代码相关的题目id 26 | */ 27 | private Long pid; 28 | 29 | /** 30 | * 编译的源代码所选语言 31 | */ 32 | private String language; 33 | 34 | /** 35 | * 调用判题机的凭证 36 | */ 37 | private String token; 38 | 39 | /** 40 | * 编译所需的额外文件,key:文件名,value:文件内容 41 | */ 42 | private HashMap extraFiles; 43 | } -------------------------------------------------------------------------------- /hoj-vue/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | /dist 4 | 5 | 6 | # local env files 7 | .env.local 8 | .env.*.local 9 | 10 | # Log files 11 | npm-debug.log* 12 | yarn-debug.log* 13 | yarn-error.log* 14 | pnpm-debug.log* 15 | 16 | # Editor directories and files 17 | .idea 18 | .vscode 19 | *.suo 20 | *.ntvs* 21 | *.njsproj 22 | *.sln 23 | *.sw? 24 | -------------------------------------------------------------------------------- /hoj-vue/README.md: -------------------------------------------------------------------------------- 1 | # hoj-vue-pc 2 | 3 | ## Development Environment Requirements 4 | 5 | We recommend using Node.js version 14.21.3. 6 | 7 | If you wish to not disrupt your existing development environment, you can download precompiled binaries of Node.js and temporarily modify your environment variables to use this version. 8 | 9 | [Download Precompiled Binaries](https://nodejs.org/en/download/prebuilt-binaries) 10 | 11 | ## Project setup 12 | ``` 13 | npm install 14 | ``` 15 | 16 | ### Compiles and hot-reloads for development 17 | ``` 18 | npm run serve 19 | ``` 20 | 21 | ### Compiles and minifies for production 22 | ``` 23 | npm run build 24 | ``` 25 | 26 | ### Customize configuration 27 | See [Configuration Reference](https://cli.vuejs.org/config/). 28 | -------------------------------------------------------------------------------- /hoj-vue/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | presets: [ 3 | '@vue/cli-plugin-babel/preset' 4 | ] 5 | } 6 | -------------------------------------------------------------------------------- /hoj-vue/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HimitZH/HOJ/2a3b8fa844b066df7568a588f2681c7eebebd51d/hoj-vue/public/favicon.ico -------------------------------------------------------------------------------- /hoj-vue/src/assets/acm.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HimitZH/HOJ/2a3b8fa844b066df7568a588f2681c7eebebd51d/hoj-vue/src/assets/acm.jpg -------------------------------------------------------------------------------- /hoj-vue/src/assets/atcoder-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HimitZH/HOJ/2a3b8fa844b066df7568a588f2681c7eebebd51d/hoj-vue/src/assets/atcoder-logo.png -------------------------------------------------------------------------------- /hoj-vue/src/assets/backstage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HimitZH/HOJ/2a3b8fa844b066df7568a588f2681c7eebebd51d/hoj-vue/src/assets/backstage.png -------------------------------------------------------------------------------- /hoj-vue/src/assets/codeforces-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HimitZH/HOJ/2a3b8fa844b066df7568a588f2681c7eebebd51d/hoj-vue/src/assets/codeforces-logo.png -------------------------------------------------------------------------------- /hoj-vue/src/assets/default.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HimitZH/HOJ/2a3b8fa844b066df7568a588f2681c7eebebd51d/hoj-vue/src/assets/default.jpg -------------------------------------------------------------------------------- /hoj-vue/src/assets/gym-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HimitZH/HOJ/2a3b8fa844b066df7568a588f2681c7eebebd51d/hoj-vue/src/assets/gym-logo.png -------------------------------------------------------------------------------- /hoj-vue/src/assets/hdu-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HimitZH/HOJ/2a3b8fa844b066df7568a588f2681c7eebebd51d/hoj-vue/src/assets/hdu-logo.png -------------------------------------------------------------------------------- /hoj-vue/src/assets/home1.jfif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HimitZH/HOJ/2a3b8fa844b066df7568a588f2681c7eebebd51d/hoj-vue/src/assets/home1.jfif -------------------------------------------------------------------------------- /hoj-vue/src/assets/home2.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HimitZH/HOJ/2a3b8fa844b066df7568a588f2681c7eebebd51d/hoj-vue/src/assets/home2.jpeg -------------------------------------------------------------------------------- /hoj-vue/src/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HimitZH/HOJ/2a3b8fa844b066df7568a588f2681c7eebebd51d/hoj-vue/src/assets/icon.png -------------------------------------------------------------------------------- /hoj-vue/src/assets/libre-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HimitZH/HOJ/2a3b8fa844b066df7568a588f2681c7eebebd51d/hoj-vue/src/assets/libre-logo.png -------------------------------------------------------------------------------- /hoj-vue/src/assets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HimitZH/HOJ/2a3b8fa844b066df7568a588f2681c7eebebd51d/hoj-vue/src/assets/logo.png -------------------------------------------------------------------------------- /hoj-vue/src/assets/oi.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HimitZH/HOJ/2a3b8fa844b066df7568a588f2681c7eebebd51d/hoj-vue/src/assets/oi.jpg -------------------------------------------------------------------------------- /hoj-vue/src/assets/poj-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HimitZH/HOJ/2a3b8fa844b066df7568a588f2681c7eebebd51d/hoj-vue/src/assets/poj-logo.png -------------------------------------------------------------------------------- /hoj-vue/src/assets/spoj-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HimitZH/HOJ/2a3b8fa844b066df7568a588f2681c7eebebd51d/hoj-vue/src/assets/spoj-logo.png -------------------------------------------------------------------------------- /hoj-vue/src/common/highlight.js: -------------------------------------------------------------------------------- 1 | import hljs from 'highlight.js' 2 | import 'highlight.js/styles/atom-one-light.css' 3 | 4 | export default { 5 | install (Vue, options) { 6 | Vue.directive('highlight', { 7 | deep: true, 8 | bind: function (el, binding) { 9 | Array.from(el.querySelectorAll('pre code')).forEach((target) => { 10 | if (binding.value) { 11 | target.textContent = binding.value 12 | } 13 | hljs.highlightBlock(target) 14 | }) 15 | }, 16 | componentUpdated: function (el, binding) { 17 | Array.from(el.querySelectorAll('pre code')).forEach((target) => { 18 | if (binding.value) { 19 | target.textContent = binding.value 20 | } 21 | hljs.highlightBlock(target) 22 | }) 23 | } 24 | }) 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /hoj-vue/src/common/logo.js: -------------------------------------------------------------------------------- 1 | export const LOGO = 2 | " _ _ _____ ____ _____ ______ \n"+ 3 | " | | | |/ ____/ __ \| __ \| ____| \n"+ 4 | " | |__| | | | | | | | | | |__ \n"+ 5 | " | __ | | | | | | | | | __| \n"+ 6 | " | | | | |___| |__| | |__| | |____ \n"+ 7 | " |_| |_|\_____\____/|_____/|______| \n"+ 8 | " Hcode Online Judge(HOJ)"+"\n"+ 9 | " @Author Himit_ZH"+"\n"+ 10 | " @Last Update 20241013"+"\n"+ 11 | " QQ Group: 598587305"+"\n"+ 12 | " ->Github<- https://www.github.com/HimitZH/HOJ"+"\n"+ 13 | " ->Gitee<- https://gitee.com/himitzh0730/hoj"; 14 | 15 | export const MOTTO = 16 | " Welcome to Use HOJ, Dream in Code!"; -------------------------------------------------------------------------------- /hoj-vue/src/common/storage.js: -------------------------------------------------------------------------------- 1 | const localStorage = window.localStorage 2 | 3 | export default { 4 | name: 'storage', 5 | 6 | /** 7 | * save value(Object) to key 8 | * @param {string} key 键 9 | * @param {Object} value 值 10 | */ 11 | set (key, value) { 12 | localStorage.setItem(key, JSON.stringify(value)) 13 | }, 14 | 15 | /** 16 | * get value(Object) by key 17 | * @param {string} key 键 18 | * @return {Object} 19 | */ 20 | get (key) { 21 | return JSON.parse(localStorage.getItem(key)) || null 22 | }, 23 | 24 | /** 25 | * remove key from localStorage 26 | * @param {string} key 键 27 | */ 28 | remove (key) { 29 | localStorage.removeItem(key) 30 | }, 31 | /** 32 | * clear all 33 | */ 34 | clear () { 35 | localStorage.clear() 36 | }, 37 | } 38 | -------------------------------------------------------------------------------- /hoj-vue/src/components/oj/msg/msgSvg.vue: -------------------------------------------------------------------------------- 1 | 12 | 13 | 24 | -------------------------------------------------------------------------------- /hoj-vue/src/views/oj/contest/children/ContestComment.vue: -------------------------------------------------------------------------------- 1 | 4 | 13 | -------------------------------------------------------------------------------- /hoj-vue/src/views/oj/user/Logout.vue: -------------------------------------------------------------------------------- 1 | 3 | 4 | 18 | -------------------------------------------------------------------------------- /logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HimitZH/HOJ/2a3b8fa844b066df7568a588f2681c7eebebd51d/logo.png -------------------------------------------------------------------------------- /sandbox/README.md: -------------------------------------------------------------------------------- 1 | # Sandbox 2 | 3 | 这是安全沙盒 Linux amd64版本可执行文件,基于go-judge项目构成,具体使用请看[HOJ文档](https://docs.hdoi.cn/develop/sandbox),或者看原项目:[https://github.com/criyle/go-judge](https://github.com/criyle/go-judge) -------------------------------------------------------------------------------- /sandbox/Sandbox-amd64-v1.8.0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HimitZH/HOJ/2a3b8fa844b066df7568a588f2681c7eebebd51d/sandbox/Sandbox-amd64-v1.8.0 -------------------------------------------------------------------------------- /sandbox/Sandbox-arm64-v1.8.0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HimitZH/HOJ/2a3b8fa844b066df7568a588f2681c7eebebd51d/sandbox/Sandbox-arm64-v1.8.0 -------------------------------------------------------------------------------- /sqlAndsetting/README.md: -------------------------------------------------------------------------------- 1 | > 这是HOJ数据库的创建文件、数据库数据文件、服务配置文件 --------------------------------------------------------------------------------