案例萃取,bug

This commit is contained in:
yang
2024-09-12 13:48:46 +08:00
parent 3890ad04b9
commit f2d6b0cce9
2 changed files with 21 additions and 6 deletions

View File

@@ -63,20 +63,23 @@ public class CasesRankDao extends BaseDao<CasesRank> {
}
public List<String> findPopularityOfMajor(Integer pageSize, LocalDateTime startTime, LocalDateTime endTime, Long majorId) {
public List<HashMap<String, Object>> findPopularityOfMajor(Integer pageSize, LocalDateTime startTime, LocalDateTime endTime, Long majorId) {
String sql =
"SELECT bcr.case_id\n" +
"SELECT bcr.case_id,bcr.rank\n" +
"FROM boe_cases_rank bcr\n" +
"JOIN boe_cases bc on bcr.case_id = bc.id\n" +
"WHERE bcr.deleted=0 AND bc.deleted=0 AND bcr.rise_rank_time BETWEEN ?1 and ?2 AND major_id=?3\n" +
"ORDER BY rank\n" +
"LIMIT ?4";
List<Object> listFields = this.sqlFindList(sql, startTime, endTime,majorId,pageSize);
List<Object[]> listFields = this.sqlFindList(sql, startTime, endTime,majorId,pageSize);
List<String> collect = listFields.stream().map(item -> {
return item.toString();
List<HashMap<String, Object>> collect = listFields.stream().map(item -> {
HashMap<String, Object> map = new HashMap<>();
map.put("caseId", item[0].toString());
map.put("rank", item[1].toString());
return map;
}).collect(Collectors.toList());
return collect;

View File

@@ -1260,7 +1260,11 @@ public class CasesServiceImpl implements ICasesService {
LocalDateTime startTime = month.withDayOfMonth(1);
LocalDateTime endTime = month.plusMonths(1).withDayOfMonth(1).withMinute(0);
List<String> caseIdList = casesRankDao.findPopularityOfMajor(pageSize, startTime, endTime,majorId);
List<HashMap<String, Object>> popularityOfMajor = casesRankDao.findPopularityOfMajor(pageSize, startTime, endTime, majorId);
List<String> caseIdList = popularityOfMajor.stream().map(map -> map.get("caseId").toString()).collect(Collectors.toList());
Map<Object, Integer> collect = popularityOfMajor.stream().collect(Collectors.toMap(map -> map.get("caseId").toString(), map -> Integer.valueOf(map.get("rank").toString())));
QueryBuilder query = QueryBuilder.from(Cases.class);
query.addFilter(FieldFilters.in("id",caseIdList));
query.addFilter(FieldFilters.eq("deleted",false));
@@ -1268,6 +1272,14 @@ public class CasesServiceImpl implements ICasesService {
List<Cases> casesList = casesDao.findList(query.builder());
casesList = caseListCommonHandle(casesList, accountId);
Collections.sort(casesList, new Comparator<Cases>() {
@Override
public int compare(Cases c1, Cases c2) {
Integer order1 = collect.get(c1.getId());
Integer order2 = collect.get(c2.getId());
return Integer.compare(order1, order2);
}
});
return casesList;
}