From 739d4c2f64fcfd4ddcce6292978ad6aeb2c7bdc7 Mon Sep 17 00:00:00 2001
From: wlzboy <66905212@qq.com>
Date: 星期一, 26 一月 2026 23:00:13 +0800
Subject: [PATCH] feat: 优化医院搜索

---
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/HospDataController.java |   18 +++++++++++++-----
 1 files changed, 13 insertions(+), 5 deletions(-)

diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/HospDataController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/HospDataController.java
index 6b3cba6..d17147c 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/HospDataController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/HospDataController.java
@@ -36,6 +36,11 @@
 @RequestMapping("/system/hospital")
 public class HospDataController extends BaseController {
     
+    /**
+     * 鍖婚櫌鎼滅储鏈�浣庡尮閰嶅垎鏁伴槇鍊硷紙浣庝簬姝ゅ垎鏁扮殑缁撴灉灏嗚杩囨护锛�
+     */
+    private static final int MIN_MATCH_SCORE_THRESHOLD = 50;
+    
     @Autowired
     private HospDataMapper hospDataMapper;
 
@@ -345,17 +350,20 @@
                     districtNames
                 );
                             
-                // 鍙繚鐣欐湁鍖归厤鐨勫尰闄�
-                if (matchScore > 0) {
+                // 鍙繚鐣欏尮閰嶅垎鏁拌揪鍒伴槇鍊肩殑鍖婚櫌
+                if (matchScore >= MIN_MATCH_SCORE_THRESHOLD) {
                     matchResults.add(new HospitalMatchResult(hospital, matchScore));
                 }
             }
                         
             long matchTime = System.currentTimeMillis();
-            logger.info("鍖归厤璁$畻瀹屾垚锛屾壘鍒� {} 涓尮閰嶇殑鍖婚櫌锛岃�楁椂: {}ms", matchResults.size(), matchTime - matchStartTime);
+            logger.info("鍖归厤璁$畻瀹屾垚锛屾壘鍒� {} 涓尮閰嶇殑鍖婚櫌锛堝垎鏁�>={}}锛夛紝鑰楁椂: {}ms", 
+                matchResults.size(), MIN_MATCH_SCORE_THRESHOLD, matchTime - matchStartTime);
             
-            // 4. 鎸夊尮閰嶅垎鏁伴檷搴忔帓搴忥紙鍒嗘暟瓒婇珮鎺掑悕瓒婇潬鍓嶏級
-            matchResults.sort(Comparator.comparingInt(HospitalMatchResult::getMatchScore).reversed());
+            // 4. 鎸夊尮閰嶅垎鏁伴檷搴忔帓搴忥紝鍒嗘暟鐩稿悓鏃舵寜鍖婚櫌鍚嶇О闀垮害鍗囧簭鎺掑簭锛堝悕绉拌秺鐭秺闈犲墠锛�
+            matchResults.sort(Comparator
+                .comparingInt(HospitalMatchResult::getMatchScore).reversed()
+                .thenComparingInt(result -> result.getHospital().getHospName().length()));
             
             // 5. 闄愬埗杩斿洖鏁伴噺
             if (pageSize != null && pageSize > 0 && matchResults.size() > pageSize) {

--
Gitblit v1.9.1