|
@@ -2,12 +2,10 @@ package cn.iselab.mooctest.site.service.impl;
|
|
|
|
|
|
import cn.iselab.mooctest.site.common.event.EventUtil;
|
|
|
import cn.iselab.mooctest.site.common.event.UpdateContestMentorEvent;
|
|
|
-import cn.iselab.mooctest.site.dao.AddOns2QualificationDao;
|
|
|
-import cn.iselab.mooctest.site.dao.Competition2ExamDao;
|
|
|
-import cn.iselab.mooctest.site.dao.CompetitionDao;
|
|
|
-import cn.iselab.mooctest.site.dao.QualificationDao;
|
|
|
+import cn.iselab.mooctest.site.dao.*;
|
|
|
import cn.iselab.mooctest.site.models.*;
|
|
|
import cn.iselab.mooctest.site.service.CompetitionService;
|
|
|
+import cn.iselab.mooctest.site.web.data.AddonsVO;
|
|
|
import org.apache.commons.collections.IteratorUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
@@ -33,6 +31,8 @@ public class CompetitionServiceImpl implements CompetitionService {
|
|
|
AddOns2QualificationDao addOns2QualificationDao;
|
|
|
@Autowired
|
|
|
EventUtil eventUtil;
|
|
|
+ @Autowired
|
|
|
+ UserDao userDao;
|
|
|
|
|
|
@Override
|
|
|
public List<Competition> getActiveCompetitions() {
|
|
@@ -164,7 +164,6 @@ public class CompetitionServiceImpl implements CompetitionService {
|
|
|
competition2ExamDao.save(result);
|
|
|
return result;
|
|
|
}
|
|
|
-
|
|
|
@Override
|
|
|
public Competition2Exam getCompetition2TaskbyCompetitionIdAndIndex(Long competitionId, Integer index) {
|
|
|
return competition2ExamDao.findByCompetitionIdAndIndex(competitionId, index);
|
|
@@ -181,5 +180,40 @@ public class CompetitionServiceImpl implements CompetitionService {
|
|
|
return result;
|
|
|
|
|
|
}
|
|
|
+ @Override
|
|
|
+ public boolean checkAddons(List<AddonsVO> addonsList, Long qualificationId, Integer type) {
|
|
|
+ //获取当前队伍比赛信息
|
|
|
+ Qualification qualification = qualificationDao.findOne(qualificationId);
|
|
|
+ //获取所有参加当前比赛的队伍
|
|
|
+ List<Qualification> qualifications = qualificationDao.findByCompetitionIdAndStatus(qualification.getCompetitionId(), qualification.getStatus());
|
|
|
+ //查看队员是否为其他队的队员
|
|
|
+ for (Qualification temp : qualifications) {
|
|
|
+ if (!temp.getId().equals(qualificationId)) {
|
|
|
+ //获取当前所有参赛队伍的成员信息并与新增队员信息比较
|
|
|
+ List<AddOns2Qualification> addOns2Qualification = addOns2QualificationDao.findByQualificationId(temp.getId());
|
|
|
+ for (AddOns2Qualification addons : addOns2Qualification) {
|
|
|
+ for (AddonsVO currAddons : addonsList) {
|
|
|
+ //如果信息已存在则返回错误
|
|
|
+ if (currAddons.getEmail().equals(addons.getEmail())) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //查看队员是否是其他队的队长
|
|
|
+ for (AddonsVO addonsVO : addonsList) {
|
|
|
+ User user = userDao.findByEmail(addonsVO.getEmail());
|
|
|
+ if (null != user) {
|
|
|
+ for (Qualification temp : qualifications) {
|
|
|
+ if (temp.getUserId().equals(user.getId())) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //默认返回
|
|
|
+ return true;
|
|
|
+ }
|
|
|
|
|
|
}
|