use of com.zzkun.model.Contest in project ACManager by kun368.
the class RatingServiceTest method generateRating.
@Test
public void generateRating() throws Exception {
Contest contest = trainingService.getContest(135);
List<Contest> contestList = new ArrayList<>();
contestList.add(contest);
List<RatingRecord> list = ratingService.generateRating(contestList, RatingRecord.Scope.Global, 1, RatingRecord.Type.Personal, 1.0);
System.out.println(list);
Collections.sort(list, (o1, o2) -> {
Rating rating1 = new Rating(o1.getMean(), o1.getStandardDeviation());
Rating rating2 = new Rating(o2.getMean(), o2.getStandardDeviation());
return Double.compare(rating2.getConservativeRating(), rating1.getConservativeRating());
});
for (RatingRecord record : list) {
Rating rating = new Rating(record.getMean(), record.getStandardDeviation());
System.out.println(record.getIdentifier() + ": " + rating.getMean() + "\t " + rating.getStandardDeviation() + "\t " + rating.getConservativeRating());
}
}
use of com.zzkun.model.Contest in project ACManager by kun368.
the class ContestController method importContest.
@RequestMapping("/importContest")
public String importContest(@RequestParam Integer contestId, @RequestParam String contestName, @RequestParam String contestType, @RequestParam String stTime, @RequestParam String edTime, @RequestParam String source, @RequestParam String sourceDetail, @RequestParam String sourceUrl, @RequestParam(required = false, defaultValue = "") String myConfig, @RequestParam String vjContest, @RequestParam(required = false, defaultValue = "false") Boolean realContest, @RequestParam Integer stageId, @SessionAttribute User user, RedirectAttributes redirectAttributes) {
logger.info("导入/修改比赛。。。");
logger.info("contestId = [" + contestId + "], contestName = [" + contestName + "], contestType = [" + contestType + "], stTime = [" + stTime + "], edTime = [" + edTime + "], source = [" + source + "], sourceDetail = [" + sourceDetail + "], sourceUrl = [" + sourceUrl + "], myConfig = [" + myConfig + "], vjContest = [" + vjContest + "], user = [" + user + "], stageId = [" + stageId + "]");
try {
Contest contest = trainingService.parseVj(contestName, contestType, stTime, edTime, source, sourceDetail, sourceUrl, myConfig, vjContest, realContest, user, stageId);
logger.info("比赛ID:{}", contestId);
if (contestId == -1) {
trainingService.saveContest(contest);
redirectAttributes.addFlashAttribute("tip", "添加成功!");
} else {
Contest pre = trainingService.getContest(contestId);
logger.info("修改比赛:原:{}", pre);
contest.setId(contestId);
contest.setAddTime(pre.getAddTime());
contest.setAddUid(pre.getAddUid());
contest.setStage(pre.getStage());
logger.info("修改比赛:现:{}", contest);
trainingService.saveContest(contest);
redirectAttributes.addFlashAttribute("tip", "修改成功!");
}
return "redirect:/training/stage/" + stageId;
} catch (IOException e) {
e.printStackTrace();
}
redirectAttributes.addFlashAttribute("tip", "添加失败!");
return "redirect:/training/stage/" + stageId;
}
use of com.zzkun.model.Contest in project ACManager by kun368.
the class ContestController method showScore.
@RequestMapping("/showScore/{id}")
public String showScore(@PathVariable Integer id, @RequestParam(required = false, defaultValue = "0") Integer calcType, Model model) {
Contest contest = trainingService.getContest(id);
RankCalculator calculator = new RankCalculator(contest, calcType);
model.addAttribute("contest", contest);
model.addAttribute("ranks", contest.getRanks());
model.addAttribute("sum", calculator.getTeamScore());
model.addAttribute("pre", calculator.getPreTScore());
model.addAttribute("myrank", calculator.getTeamRank());
return "ranklist_score";
}
use of com.zzkun.model.Contest in project ACManager by kun368.
the class ContestController method modify1.
@RequestMapping("/modify/{contestId}")
public String modify1(Model model, @PathVariable Integer contestId, @SessionAttribute Integer stageId, @SessionAttribute(required = false) User user, RedirectAttributes redirectAttributes) {
if (user == null || !user.isAdmin()) {
redirectAttributes.addFlashAttribute("tip", "没有权限!");
return "redirect:/training/stage/" + stageId;
}
Contest contest = trainingService.getContest(contestId);
model.addAttribute("contestId", contestId);
model.addAttribute("preContest", contest);
model.addAttribute("stageId", stageId);
return "importComp";
}
use of com.zzkun.model.Contest in project ACManager by kun368.
the class TrainingApi method list.
@RequestMapping(value = "/{trainingId}/list", method = RequestMethod.GET, produces = "text/html;charset=UTF-8")
public String list(@PathVariable Integer trainingId) {
Training training = trainingService.getTrainingById(trainingId);
if (training == null)
return "";
List<Stage> stageList = training.getStageList();
JSONObject object = new JSONObject(true);
object.put("id", training.getId());
object.put("name", training.getName());
object.put("startDate", training.getStartDate());
object.put("endDate", training.getEndDate());
object.put("addTime", training.getAddTime());
JSONArray stageArray = new JSONArray();
object.put("stageList", stageArray);
for (Stage stage : stageList) {
JSONObject stageObject = new JSONObject(true);
stageObject.put("id", stage.getId());
stageObject.put("name", stage.getName());
stageObject.put("startDate", stage.getStartDate());
stageObject.put("endDate", stage.getEndDate());
JSONArray contestIdArray = new JSONArray();
stageObject.put("contestIdList", contestIdArray);
for (Contest contest : stage.getContestList()) contestIdArray.add(contest.getId());
stageArray.add(stageObject);
}
return object.toJSONString();
}
Aggregations