/* * 自动创建每日一练。 * @see com.examw.test.service.library.IExercisesDailyService#autoDailyPapers() */ @Override public void addAutoDailyPapers() { if (logger.isDebugEnabled()) logger.debug("自动创建每日一练..."); List<Subject> subjects = this.subjectDao.findSubjects( new SubjectInfo() { private static final long serialVersionUID = 1L; @Override public String getSort() { return "code"; } @Override public String getOrder() { return "desc"; } }); if (subjects == null || subjects.size() == 0) return; for (final Subject subject : subjects) { if (subject == null) continue; try { if (logger.isDebugEnabled()) logger.debug(String.format("准备开始创建科目[%1$s,%2$s]", subject.getId(), subject.getName())); long total = this.itemDao.total( new ItemInfo() { private static final long serialVersionUID = 1L; @Override public String getSubjectId() { return subject.getId(); } @Override public String getAreaId() { if (subject.getAreas() != null && subject.getAreas().size() > 0) { StringBuilder builder = new StringBuilder(); for (Area area : subject.getAreas()) { if (area == null) continue; builder.append(",").append(area.getId()); } if (builder.length() > 0) return builder.substring(1); } return null; } }); if (total < ((this.avgStructureItemsCount == null || this.avgStructureItemsCount < 0) ? avg_structure_items_count : this.avgStructureItemsCount)) { if (logger.isDebugEnabled()) logger.debug( String.format( "科目[%1$s,%2$s]下试题量[%3$d]太小!", subject.getId(), subject.getName(), total)); continue; } this.addPaper(subject); } catch (Exception e) { logger.error( String.format( "创建科目[%1$s,%2$s]每日一练时,发生异常:%3$s", subject.getId(), subject.getName(), e.getMessage()), e); e.printStackTrace(); } } }