|
@@ -23,13 +23,13 @@ import org.springframework.transaction.annotation.Transactional;
|
|
import cn.com.qmth.stmms.biz.common.BaseQueryService;
|
|
import cn.com.qmth.stmms.biz.common.BaseQueryService;
|
|
import cn.com.qmth.stmms.biz.exam.model.ExamSubject;
|
|
import cn.com.qmth.stmms.biz.exam.model.ExamSubject;
|
|
import cn.com.qmth.stmms.biz.exam.model.Marker;
|
|
import cn.com.qmth.stmms.biz.exam.model.Marker;
|
|
-import cn.com.qmth.stmms.biz.exam.service.TagInfoService;
|
|
|
|
import cn.com.qmth.stmms.biz.mark.dao.MarkLibraryDao;
|
|
import cn.com.qmth.stmms.biz.mark.dao.MarkLibraryDao;
|
|
import cn.com.qmth.stmms.biz.mark.model.MarkLibrary;
|
|
import cn.com.qmth.stmms.biz.mark.model.MarkLibrary;
|
|
import cn.com.qmth.stmms.biz.mark.query.MarkLibrarySearchQuery;
|
|
import cn.com.qmth.stmms.biz.mark.query.MarkLibrarySearchQuery;
|
|
import cn.com.qmth.stmms.biz.mark.service.MarkLibraryService;
|
|
import cn.com.qmth.stmms.biz.mark.service.MarkLibraryService;
|
|
import cn.com.qmth.stmms.biz.mark.service.MarkSpecialTagService;
|
|
import cn.com.qmth.stmms.biz.mark.service.MarkSpecialTagService;
|
|
import cn.com.qmth.stmms.biz.mark.service.MarkTrackService;
|
|
import cn.com.qmth.stmms.biz.mark.service.MarkTrackService;
|
|
|
|
+import cn.com.qmth.stmms.biz.mark.service.TagInfoService;
|
|
import cn.com.qmth.stmms.common.enums.LibraryStatus;
|
|
import cn.com.qmth.stmms.common.enums.LibraryStatus;
|
|
|
|
|
|
@Service
|
|
@Service
|
|
@@ -40,10 +40,10 @@ public class MarkLibraryServiceImpl extends BaseQueryService<MarkLibrary> implem
|
|
|
|
|
|
@Autowired
|
|
@Autowired
|
|
private MarkTrackService trackService;
|
|
private MarkTrackService trackService;
|
|
-
|
|
|
|
|
|
+
|
|
@Autowired
|
|
@Autowired
|
|
private MarkSpecialTagService specialTagService;
|
|
private MarkSpecialTagService specialTagService;
|
|
-
|
|
|
|
|
|
+
|
|
@Autowired
|
|
@Autowired
|
|
private TagInfoService tagInfoService;
|
|
private TagInfoService tagInfoService;
|
|
|
|
|
|
@@ -115,7 +115,7 @@ public class MarkLibraryServiceImpl extends BaseQueryService<MarkLibrary> implem
|
|
trackService.deleteByExamIdAndSubjectCode(subject.getExamId(), subject.getCode());
|
|
trackService.deleteByExamIdAndSubjectCode(subject.getExamId(), subject.getCode());
|
|
specialTagService.deleteByExamAndSubject(subject.getExamId(), subject.getCode());
|
|
specialTagService.deleteByExamAndSubject(subject.getExamId(), subject.getCode());
|
|
tagInfoService.deleteByExamAndSubject(subject.getExamId(), subject.getCode());
|
|
tagInfoService.deleteByExamAndSubject(subject.getExamId(), subject.getCode());
|
|
-
|
|
|
|
|
|
+
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
@@ -227,11 +227,11 @@ public class MarkLibraryServiceImpl extends BaseQueryService<MarkLibrary> implem
|
|
if (query.getTagId() > 0) {
|
|
if (query.getTagId() > 0) {
|
|
predicates.add(cb.like(root.get("tags").as(String.class), "%" + query.getTagId() + "%"));
|
|
predicates.add(cb.like(root.get("tags").as(String.class), "%" + query.getTagId() + "%"));
|
|
}
|
|
}
|
|
- if (query.getMarkerScore()!=null ) {
|
|
|
|
|
|
+ if (query.getMarkerScore() != null) {
|
|
predicates.add(cb.equal(root.get("markerScore"), query.getMarkerScore()));
|
|
predicates.add(cb.equal(root.get("markerScore"), query.getMarkerScore()));
|
|
}
|
|
}
|
|
- return predicates.isEmpty() ? cb.conjunction()
|
|
|
|
- : cb.and(predicates.toArray(new Predicate[predicates.size()]));
|
|
|
|
|
|
+ return predicates.isEmpty() ? cb.conjunction() : cb.and(predicates.toArray(new Predicate[predicates
|
|
|
|
+ .size()]));
|
|
}
|
|
}
|
|
};
|
|
};
|
|
}
|
|
}
|
|
@@ -284,9 +284,9 @@ public class MarkLibraryServiceImpl extends BaseQueryService<MarkLibrary> implem
|
|
if (query.getStatus() != null) {
|
|
if (query.getStatus() != null) {
|
|
predicates.add(cb.equal(root.get("status").as(LibraryStatus.class), query.getStatus()));
|
|
predicates.add(cb.equal(root.get("status").as(LibraryStatus.class), query.getStatus()));
|
|
}
|
|
}
|
|
- cQuery.groupBy(root.get("markerId"),root.get("subjectCode"));
|
|
|
|
- return predicates.isEmpty() ? cb.conjunction()
|
|
|
|
- : cb.and(predicates.toArray(new Predicate[predicates.size()]));
|
|
|
|
|
|
+ cQuery.groupBy(root.get("markerId"), root.get("subjectCode"));
|
|
|
|
+ return predicates.isEmpty() ? cb.conjunction() : cb.and(predicates.toArray(new Predicate[predicates
|
|
|
|
+ .size()]));
|
|
}
|
|
}
|
|
};
|
|
};
|
|
}
|
|
}
|
|
@@ -318,8 +318,44 @@ public class MarkLibraryServiceImpl extends BaseQueryService<MarkLibrary> implem
|
|
}
|
|
}
|
|
sql.append(" limit ").append(pageNumber).append(",").append(query.getPageSize());
|
|
sql.append(" limit ").append(pageNumber).append(",").append(query.getPageSize());
|
|
Query q = em.createNativeQuery(sql.toString(), MarkLibrary.class);
|
|
Query q = em.createNativeQuery(sql.toString(), MarkLibrary.class);
|
|
- Page<MarkLibrary> page = new PageImpl<>(q.getResultList(),
|
|
|
|
- new PageRequest(query.getPageNumber() - 1, query.getPageSize()), totalCount);
|
|
|
|
|
|
+ Page<MarkLibrary> page = new PageImpl<>(q.getResultList(), new PageRequest(query.getPageNumber() - 1,
|
|
|
|
+ query.getPageSize()), totalCount);
|
|
|
|
+ fillResult(page, query);
|
|
|
|
+ return query;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @SuppressWarnings("unchecked")
|
|
|
|
+ @Override
|
|
|
|
+ public MarkLibrarySearchQuery findByTagId(MarkLibrarySearchQuery query) {
|
|
|
|
+ StringBuffer sql = new StringBuffer(
|
|
|
|
+ "SELECT m.* FROM m_library m left join m_tag_info t ON m.id=t.library_id WHERE 1=1");
|
|
|
|
+ if (query.getExamId() > 0) {
|
|
|
|
+ sql.append(" and m.exam_id = ").append(query.getExamId());
|
|
|
|
+ }
|
|
|
|
+ if (StringUtils.isNotBlank(query.getSubjectCode())) {
|
|
|
|
+ sql.append(" and m.subject_code = '").append(query.getSubjectCode()).append("'");
|
|
|
|
+ }
|
|
|
|
+ if (query.getCampusId() > 0) {
|
|
|
|
+ sql.append(" and m.campus_id = ").append(query.getCampusId());
|
|
|
|
+ }
|
|
|
|
+ if (query.getStudentId() != null) {
|
|
|
|
+ sql.append(" and m.student_id = ").append(query.getStudentId());
|
|
|
|
+ }
|
|
|
|
+ if (query.getTagId() == 0) {
|
|
|
|
+ sql.append(" and t.id is not null ");
|
|
|
|
+ } else {
|
|
|
|
+ sql.append(" and m.tags like '").append(query.getTagId()).append("'");
|
|
|
|
+ }
|
|
|
|
+ Query qCount = em.createNativeQuery(sql.toString(), MarkLibrary.class);
|
|
|
|
+ int totalCount = qCount.getResultList().size();
|
|
|
|
+ int pageNumber = query.getPageNumber() - 1;
|
|
|
|
+ if (pageNumber > 0) {
|
|
|
|
+ pageNumber = pageNumber * query.getPageSize();
|
|
|
|
+ }
|
|
|
|
+ sql.append(" limit ").append(pageNumber).append(",").append(query.getPageSize());
|
|
|
|
+ Query q = em.createNativeQuery(sql.toString(), MarkLibrary.class);
|
|
|
|
+ Page<MarkLibrary> page = new PageImpl<>(q.getResultList(), new PageRequest(query.getPageNumber() - 1,
|
|
|
|
+ query.getPageSize()), totalCount);
|
|
fillResult(page, query);
|
|
fillResult(page, query);
|
|
return query;
|
|
return query;
|
|
}
|
|
}
|