diff --git a/src/main/java/com/syjiaer/clinic/server/common/util/DebugUtil.java b/src/main/java/com/syjiaer/clinic/server/common/util/DebugUtil.java index 99fb197..032abae 100644 --- a/src/main/java/com/syjiaer/clinic/server/common/util/DebugUtil.java +++ b/src/main/java/com/syjiaer/clinic/server/common/util/DebugUtil.java @@ -11,10 +11,12 @@ public class DebugUtil { } // 标记结束点并返回执行时间(秒,保留三位小数) - public static String end() { + public static void printTime(String message) { long endTime = System.nanoTime(); double duration = (endTime - startTime) / 1_000_000_000.0; // 转换为秒 - return String.format("%.3f", duration); + String result = String.format("%s: %.3f", message, duration); + out(result); + startTime=System.nanoTime(); } public static void out(Object object){ if(object==null){ diff --git a/src/main/java/com/syjiaer/clinic/server/service/social/SocialDirectoryService.java b/src/main/java/com/syjiaer/clinic/server/service/social/SocialDirectoryService.java index dcf83b4..bc15e8a 100644 --- a/src/main/java/com/syjiaer/clinic/server/service/social/SocialDirectoryService.java +++ b/src/main/java/com/syjiaer/clinic/server/service/social/SocialDirectoryService.java @@ -243,29 +243,29 @@ public class SocialDirectoryService extends BaseService { */ public Page search(String keyword, List typeList, int pageNum, int pageSize) { + DebugUtil.start(); + //mongodb分页 + Query query = new Query(); + query.addCriteria(Criteria.where("type").in(typeList)); - - QueryWrapper codeqw = new QueryWrapper<>(); - if (typeList.size() == 1) { - codeqw.eq("type", typeList.get(0)); - } else { - codeqw.in("type", typeList); + if (!keyword.trim().isEmpty()) { + query.addCriteria(new Criteria().orOperator( + Criteria.where("code").regex(keyword, "i"), + Criteria.where("name").regex(keyword, "i") +// Criteria.where("keyword").regex(keyword, "i"), +// Criteria.where("producer").regex(keyword, "i") + )); } - - //模糊搜索 - if (keyword != null && !keyword.trim().isEmpty()) { - codeqw.and(wrapper -> - wrapper.like("name", keyword).or().like("code", keyword).or().like("keyword", keyword) - ); + long count = mongoTemplate.count(query, SocialDirectoryMongodb.class, "social_directory"); + DebugUtil.printTime("查询数量耗时:"); + query.skip((long) (pageNum - 1) * pageSize).limit(pageSize); + List mongodbList = mongoTemplate.find(query, SocialDirectoryMongodb.class, "social_directory"); + List codeList = new ArrayList<>(); + for (SocialDirectoryMongodb mongodb : mongodbList) { + codeList.add(mongodb.getCode()); } - // 执行查询 - -// return success(SelectPage(queryWrapper, page, size, iSocialDirectoryService)); - codeqw.select("code"); - long count = socialDirectoryMapper.selectCount(codeqw); - codeqw.last("LIMIT " + pageSize + " OFFSET " + (pageNum - 1) * pageSize); - List codeList = socialDirectoryMapper.selectObjs(codeqw); + DebugUtil.printTime("mongodb查询结束"); if (codeList.isEmpty()) { Page empty_result = new Page<>(); empty_result.setList(new ArrayList<>()); @@ -280,7 +280,7 @@ public class SocialDirectoryService extends BaseService { List socialDirectoryUpinfoList = socialDirectoryUpinfoMapper.selectList(queryWrapper); List socialDirectoryLimitList = socialDirectoryLimitMapper.selectList(queryWrapper); List socialDirectorySelfList = socialDirectorySelfMapper.selectList(queryWrapper); - + DebugUtil.printTime("查询数据库结束"); Map stringSocialDirectoryUpinfoMap = socialDirectoryUpinfoList.stream() .collect(Collectors.toMap(SocialDirectoryUpinfo::getCode, socialDirectoryUpinfo -> socialDirectoryUpinfo));