|
@@ -1,10 +1,13 @@
|
|
|
package cn.iselab.mooctest.site.web.logic.impl;
|
|
package cn.iselab.mooctest.site.web.logic.impl;
|
|
|
|
|
|
|
|
import cn.iselab.mooctest.site.models.Competition;
|
|
import cn.iselab.mooctest.site.models.Competition;
|
|
|
|
|
+import cn.iselab.mooctest.site.models.Competition2Task;
|
|
|
import cn.iselab.mooctest.site.models.Qualification;
|
|
import cn.iselab.mooctest.site.models.Qualification;
|
|
|
import cn.iselab.mooctest.site.service.CompetitionService;
|
|
import cn.iselab.mooctest.site.service.CompetitionService;
|
|
|
|
|
+import cn.iselab.mooctest.site.service.TaskService;
|
|
|
import cn.iselab.mooctest.site.web.data.CompetitionVO;
|
|
import cn.iselab.mooctest.site.web.data.CompetitionVO;
|
|
|
import cn.iselab.mooctest.site.web.data.wrapper.CompetitionVOWrapper;
|
|
import cn.iselab.mooctest.site.web.data.wrapper.CompetitionVOWrapper;
|
|
|
|
|
+import cn.iselab.mooctest.site.web.exception.HttpBadRequestException;
|
|
|
import cn.iselab.mooctest.site.web.logic.CompetitionLogic;
|
|
import cn.iselab.mooctest.site.web.logic.CompetitionLogic;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
@@ -22,6 +25,9 @@ public class CompetitionLogicImpl implements CompetitionLogic{
|
|
|
CompetitionService competitionService;
|
|
CompetitionService competitionService;
|
|
|
@Autowired
|
|
@Autowired
|
|
|
CompetitionVOWrapper competitionVOWrapper;
|
|
CompetitionVOWrapper competitionVOWrapper;
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ TaskService taskService;
|
|
|
|
|
+
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
public List<CompetitionVO> getCompetitionList(Long userId) {
|
|
public List<CompetitionVO> getCompetitionList(Long userId) {
|
|
@@ -40,4 +46,33 @@ public class CompetitionLogicImpl implements CompetitionLogic{
|
|
|
qualification.setStatus(competition.getStatus());
|
|
qualification.setStatus(competition.getStatus());
|
|
|
return competitionService.createQualification(qualification);
|
|
return competitionService.createQualification(qualification);
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public CompetitionVO createCompetition(CompetitionVO competitionVO) {
|
|
|
|
|
+ if(competitionVO.getId() != null) {
|
|
|
|
|
+ throw new HttpBadRequestException("Invalid competition");
|
|
|
|
|
+ }
|
|
|
|
|
+ Competition competition = competitionService.createOrUpdateCompetition(competitionVOWrapper.unwrap(competitionVO));
|
|
|
|
|
+ return competitionVOWrapper.wrap(competition);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public CompetitionVO updateCompetition(CompetitionVO competitionVO) {
|
|
|
|
|
+ if(competitionVO.getId() == null) {
|
|
|
|
|
+ throw new HttpBadRequestException("Invalid competition");
|
|
|
|
|
+ }
|
|
|
|
|
+ Competition competition = competitionService.createOrUpdateCompetition(competitionVOWrapper.unwrap(competitionVO));
|
|
|
|
|
+ return competitionVOWrapper.wrap(competition);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public Competition2Task addTask2Competition(Long competitionId, Long taskId, Integer index, boolean ifForce) {
|
|
|
|
|
+ if(competitionService.getCompetiton(competitionId) == null || taskService.getTask(taskId) == null) {
|
|
|
|
|
+ throw new HttpBadRequestException("Invalid competition or task");
|
|
|
|
|
+ }
|
|
|
|
|
+ if(!ifForce && competitionService.getCompetition2TaskbyCompetitionIdAndIndex(competitionId, index) != null ) {
|
|
|
|
|
+ throw new HttpBadRequestException("the index of competition has been set");
|
|
|
|
|
+ }
|
|
|
|
|
+ return competitionService.addTask2Competition(competitionId, taskId, index);
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|