|
@@ -17,7 +17,6 @@ import org.springframework.transaction.annotation.Transactional;
|
|
|
import cn.com.qmth.stmms.biz.common.BaseQueryService;
|
|
|
import cn.com.qmth.stmms.biz.exam.dao.ExamQuestionDao;
|
|
|
import cn.com.qmth.stmms.biz.exam.model.ExamQuestion;
|
|
|
-import cn.com.qmth.stmms.biz.exam.model.QuestionPK;
|
|
|
import cn.com.qmth.stmms.biz.exam.service.ExamQuestionService;
|
|
|
import cn.com.qmth.stmms.biz.exam.service.query.ExamQuestionSearchQuery;
|
|
|
|
|
@@ -30,118 +29,54 @@ public class ExamQuestionServiceImpl extends BaseQueryService<ExamQuestion> impl
|
|
|
@Transactional
|
|
|
@Override
|
|
|
public ExamQuestion save(ExamQuestion question) {
|
|
|
- return questionDao.saveAndFlush(question);
|
|
|
+ return questionDao.save(question);
|
|
|
}
|
|
|
|
|
|
@Transactional
|
|
|
@Override
|
|
|
- public void updateMainTitle(int examId, String subjectCode, boolean objective, int mainNumber, String mainTitle) {
|
|
|
+ public void updateMainTitle(Integer examId, String subjectCode, boolean objective, Integer mainNumber,
|
|
|
+ String mainTitle) {
|
|
|
questionDao.updateMainTitleByExamIdAndSubjectCodeAndObjectiveAndMainNumber(examId, subjectCode, objective,
|
|
|
mainNumber, mainTitle);
|
|
|
}
|
|
|
|
|
|
@Transactional
|
|
|
@Override
|
|
|
- public void deleteByExam(int examId) {
|
|
|
- questionDao.deleteByExamId(examId);
|
|
|
- }
|
|
|
-
|
|
|
- @Transactional
|
|
|
- @Override
|
|
|
- public void deleteByExamAndSubject(int examId, String subjectCode) {
|
|
|
- questionDao.deleteByExamIdAndSubjectCode(examId, subjectCode);
|
|
|
- }
|
|
|
-
|
|
|
- @Transactional
|
|
|
- @Override
|
|
|
- public void deleteByExamAndSubjectAndObjective(int examId, String subjectCode, boolean objective) {
|
|
|
+ public void deleteByExamAndSubjectAndObjective(Integer examId, String subjectCode, boolean objective) {
|
|
|
questionDao.deleteByExamIdAndSubjectCodeAndObjective(examId, subjectCode, objective);
|
|
|
}
|
|
|
|
|
|
@Transactional
|
|
|
@Override
|
|
|
- public void deleteByExamAndSubjectAndPaperTypeAndObjective(int examId, String subjectCode, String paperType,
|
|
|
- boolean objective) {
|
|
|
- questionDao.deleteByExamIdAndSubjectCodeAndPaperTypeAndObjective(examId, subjectCode, paperType, objective);
|
|
|
- }
|
|
|
-
|
|
|
- @Transactional
|
|
|
- @Override
|
|
|
- public void deleteByExamAndSubjectAndPaperTypeAndObjectiveAndMainNumber(int examId, String subjectCode,
|
|
|
- String paperType, boolean objective, int mainNumber) {
|
|
|
- questionDao.deleteByExamIdAndSubjectCodeAndPaperTypeAndObjectiveAndMainNumber(examId, subjectCode, paperType,
|
|
|
- objective, mainNumber);
|
|
|
+ public void deleteByExamAndSubjectAndObjectiveAndMainNumber(Integer examId, String subjectCode, boolean objective,
|
|
|
+ Integer mainNumber) {
|
|
|
+ questionDao.deleteByExamIdAndSubjectCodeAndObjectiveAndMainNumber(examId, subjectCode, objective, mainNumber);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public ExamQuestion findOne(int examId, String subjectCode, String paperType, boolean objective, int mainNumber,
|
|
|
- int subNumber) {
|
|
|
- QuestionPK pk = new QuestionPK();
|
|
|
- pk.setExamId(examId);
|
|
|
- pk.setSubjectCode(subjectCode);
|
|
|
- pk.setPaperType(paperType);
|
|
|
- pk.setMainNumber(mainNumber);
|
|
|
- pk.setSubNumber(subNumber);
|
|
|
- pk.setObjective(objective);
|
|
|
- return questionDao.findOne(pk);
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public List<ExamQuestion> findByExamAndSubjectAndObjective(int examId, String subjectCode, boolean objective) {
|
|
|
+ public List<ExamQuestion> findByExamAndSubjectAndObjective(Integer examId, String subjectCode, boolean objective) {
|
|
|
return questionDao.findByExamIdAndSubjectCodeAndObjective(examId, subjectCode, objective);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public List<ExamQuestion> findByExamAndSubjectAndPaperTypeAndObjective(int examId, String subjectCode,
|
|
|
- String paperType, boolean objective) {
|
|
|
- return questionDao.findByExamIdAndSubjectCodeAndPaperTypeAndObjective(examId, subjectCode, paperType,
|
|
|
- objective);
|
|
|
+ public List<ExamQuestion> findByExamAndSubjectAndObjectiveAndPaperType(Integer examId, String subjectCode,
|
|
|
+ boolean objective, String paperType) {
|
|
|
+ return questionDao.findByExamIdAndSubjectCodeAndObjectiveAndPaperType(examId, subjectCode, objective,
|
|
|
+ paperType);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public List<ExamQuestion> findByExamAndSubjectAndObjectiveAndMainNumber(int examId, String subjectCode,
|
|
|
- boolean objective, int mainNumber) {
|
|
|
+ public List<ExamQuestion> findByExamAndSubjectAndObjectiveAndMainNumber(Integer examId, String subjectCode,
|
|
|
+ boolean objective, Integer mainNumber) {
|
|
|
return questionDao.findByExamIdAndSubjectCodeAndObjectiveAndMainNumber(examId, subjectCode, objective,
|
|
|
mainNumber);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public List<ExamQuestion> findByExamAndSubjectAndPaperTypeAndObjectiveAndMainNumber(int examId, String subjectCode,
|
|
|
- String paperType, boolean objective, int mainNumber) {
|
|
|
- return questionDao.findByExamIdAndSubjectCodeAndPaperTypeAndObjectiveAndMainNumber(examId, subjectCode,
|
|
|
- paperType, objective, mainNumber);
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public long countByExamAndSubject(int examId, String subjectCode) {
|
|
|
- ExamQuestionSearchQuery query = new ExamQuestionSearchQuery();
|
|
|
- query.setExamId(examId);
|
|
|
- query.setSubjectCode(subjectCode);
|
|
|
- return countByQuery(query);
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public long countByExamAndSubjectAndPaperTypeAndObjective(int examId, String subjectCode, String paperType,
|
|
|
- boolean objective) {
|
|
|
- ExamQuestionSearchQuery query = new ExamQuestionSearchQuery();
|
|
|
- query.setExamId(examId);
|
|
|
- query.setSubjectCode(subjectCode);
|
|
|
- query.setPaperType(paperType);
|
|
|
- query.setObjective(objective);
|
|
|
- return countByQuery(query);
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public double sumScoreByExamAndSubjectAndPaperTypeAndObjective(int examId, String subjectCode, String paperType,
|
|
|
- boolean objective) {
|
|
|
- long count = countByExamAndSubjectAndPaperTypeAndObjective(examId, subjectCode, paperType, objective);
|
|
|
- if (count > 0) {
|
|
|
- Double score = questionDao.sumScoreByExamIdAndSubjectCodeAndPaperTypeAndObjective(examId, subjectCode,
|
|
|
- paperType, objective);
|
|
|
- return score != null ? score.doubleValue() : 0;
|
|
|
- } else {
|
|
|
- return 0;
|
|
|
- }
|
|
|
+ public List<ExamQuestion> findByExamAndSubjectAndObjectiveAndPaperTypeAndMainNumber(Integer examId,
|
|
|
+ String subjectCode, boolean objective, String paperType, Integer mainNumber) {
|
|
|
+ return questionDao.findByExamIdAndSubjectCodeAndObjectiveAndPaperTypeAndMainNumber(examId, subjectCode,
|
|
|
+ objective, paperType, mainNumber);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -164,17 +99,19 @@ public class ExamQuestionServiceImpl extends BaseQueryService<ExamQuestion> impl
|
|
|
public Predicate toPredicate(Root<ExamQuestion> root, CriteriaQuery<?> cQuery, CriteriaBuilder cb) {
|
|
|
|
|
|
List<Predicate> predicates = new LinkedList<Predicate>();
|
|
|
- if (query.getExamId() > 0) {
|
|
|
- predicates.add(cb.equal(root.get("pk").get("examId"), query.getExamId()));
|
|
|
+ if (query.getExamId() != null) {
|
|
|
+ predicates.add(cb.equal(root.get("examId"), query.getExamId()));
|
|
|
}
|
|
|
if (query.getSubjectCode() != null) {
|
|
|
- predicates.add(cb.equal(root.get("pk").get("subjectCode"), query.getSubjectCode()));
|
|
|
+ predicates.add(cb.equal(root.get("subjectCode"), query.getSubjectCode()));
|
|
|
}
|
|
|
if (query.getPaperType() != null) {
|
|
|
- predicates.add(cb.equal(root.get("pk").get("paperType"), query.getPaperType()));
|
|
|
+ predicates.add(cb.equal(root.get("paperType"), query.getPaperType()));
|
|
|
+ } else if (query.getNullPaperType() != null && query.getNullPaperType().booleanValue()) {
|
|
|
+ predicates.add(cb.isNull(root.get("paperType")));
|
|
|
}
|
|
|
if (query.getObjective() != null) {
|
|
|
- predicates.add(cb.equal(root.get("pk").get("objective"), query.getObjective()));
|
|
|
+ predicates.add(cb.equal(root.get("objective"), query.getObjective()));
|
|
|
}
|
|
|
if (query.getTotalCountGt() != null) {
|
|
|
predicates.add(cb.gt(root.get("totalCount").as(Integer.class), query.getTotalCountGt()));
|