Browse Source

MOD: user fuzzy search

zhangxin 7 years ago
parent
commit
c19273b995

+ 1 - 1
mooctest-user-server/pom.xml

@@ -24,7 +24,7 @@
         <dependency>
             <groupId>cn.iselab.mooctest</groupId>
             <artifactId>user-dubbo-api</artifactId>
-            <version>1.0.15</version>
+            <version>1.0.16</version>
         </dependency>
         <dependency>
             <groupId>org.mybatis.spring.boot</groupId>

+ 5 - 2
mooctest-user-server/src/main/java/cn/iselab/mooctest/user/mapper/UserMapper.java

@@ -46,6 +46,9 @@ public interface UserMapper {
     @Update("UPDATE user SET availability=#{availability} WHERE id=#{id}")
     void updateAvailability(User user);
 
-    @Select("SELECT * FROM user WHERE name or email LIKE concat('%',#{username},'%')")
-    List<User> findByFuzzyUsername(String username);
+    @Select("SELECT * FROM user WHERE name LIKE concat('%',#{username},'%')")
+    List<User> findByFuzzyName(String name);
+
+    @Select("SELECT * FROM user WHERE email LIKE concat('%',#{username},'%')")
+    List<User> findByFuzzyEmail(String email);
 }

+ 7 - 2
mooctest-user-server/src/main/java/cn/iselab/mooctest/user/rpc/UserRPC.java

@@ -51,7 +51,12 @@ public class UserRPC implements UserService {
     }
 
     @Override
-    public List<UserDTO> getUserByFuzzySearch(UserDTO userDTO) {
-        return userLogic.getUserByFuzzySearch(userDTO);
+    public List<UserDTO> getUserByFuzzyName(UserDTO userDTO) {
+        return userLogic.getUserByFuzzyName(userDTO);
+    }
+
+    @Override
+    public List<UserDTO> getUserByFuzzyEmail(UserDTO userDTO) {
+        return userLogic.getUserByFuzzyEmail(userDTO);
     }
 }

+ 4 - 2
mooctest-user-server/src/main/java/cn/iselab/mooctest/user/service/UserService.java

@@ -21,6 +21,8 @@ public interface UserService {
 
     User update(User user);
 
-    List<User> findByFuzzySearch(String username);
-} 
+    List<User> findByFuzzyName(String name);
+
+    List<User> findByFuzzyEmail(String email);
+}
 

+ 7 - 2
mooctest-user-server/src/main/java/cn/iselab/mooctest/user/service/impl/UserServiceImpl.java

@@ -54,7 +54,12 @@ public class UserServiceImpl implements UserService {
     }
 
     @Override
-    public List<User> findByFuzzySearch(String username) {
-        return userMapper.findByFuzzyUsername(username);
+    public List<User> findByFuzzyName(String name) {
+        return userMapper.findByFuzzyName(name);
+    }
+
+    @Override
+    public List<User> findByFuzzyEmail(String email) {
+        return userMapper.findByFuzzyEmail(email);
     }
 }

+ 3 - 1
mooctest-user-server/src/main/java/cn/iselab/mooctest/user/web/logic/UserLogic.java

@@ -22,5 +22,7 @@ public interface UserLogic {
 
     UserDTO updateUser(UserDTO userDTO);
 
-    List<UserDTO> getUserByFuzzySearch(UserDTO userDTO);
+    List<UserDTO> getUserByFuzzyName(UserDTO userDTO);
+
+    List<UserDTO> getUserByFuzzyEmail(UserDTO userDTO);
 }

+ 7 - 7
mooctest-user-server/src/main/java/cn/iselab/mooctest/user/web/logic/impl/UserLogicImpl.java

@@ -115,14 +115,14 @@ public class UserLogicImpl extends BaseLogic implements UserLogic {
     }
 
     @Override
-    public List<UserDTO> getUserByFuzzySearch(UserDTO userDTO) {
-        String username;
-        if (userDTO.getEmail() != null) {
-            username = userDTO.getEmail();
-        } else
-            username = userDTO.getName();
+    public List<UserDTO> getUserByFuzzyName(UserDTO userDTO) {
+        List<User> users = userService.findByFuzzyName(userDTO.getName());
+        return userWrapper.wrap(users);
+    }
 
-        List<User> users = userService.findByFuzzySearch(username);
+    @Override
+    public List<UserDTO> getUserByFuzzyEmail(UserDTO userDTO) {
+        List<User> users = userService.findByFuzzyEmail(userDTO.getEmail());
         return userWrapper.wrap(users);
     }
 }