案例萃取,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 = String sql =
"SELECT bcr.case_id\n" + "SELECT bcr.case_id,bcr.rank\n" +
"FROM boe_cases_rank bcr\n" + "FROM boe_cases_rank bcr\n" +
"JOIN boe_cases bc on bcr.case_id = bc.id\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" + "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" + "ORDER BY rank\n" +
"LIMIT ?4"; "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 -> { List<HashMap<String, Object>> collect = listFields.stream().map(item -> {
return item.toString(); HashMap<String, Object> map = new HashMap<>();
map.put("caseId", item[0].toString());
map.put("rank", item[1].toString());
return map;
}).collect(Collectors.toList()); }).collect(Collectors.toList());
return collect; return collect;

View File

@@ -1260,7 +1260,11 @@ public class CasesServiceImpl implements ICasesService {
LocalDateTime startTime = month.withDayOfMonth(1); LocalDateTime startTime = month.withDayOfMonth(1);
LocalDateTime endTime = month.plusMonths(1).withDayOfMonth(1).withMinute(0); 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); QueryBuilder query = QueryBuilder.from(Cases.class);
query.addFilter(FieldFilters.in("id",caseIdList)); query.addFilter(FieldFilters.in("id",caseIdList));
query.addFilter(FieldFilters.eq("deleted",false)); query.addFilter(FieldFilters.eq("deleted",false));
@@ -1268,6 +1272,14 @@ public class CasesServiceImpl implements ICasesService {
List<Cases> casesList = casesDao.findList(query.builder()); List<Cases> casesList = casesDao.findList(query.builder());
casesList = caseListCommonHandle(casesList, accountId); 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; return casesList;
} }