Browse Source

MOD: fuzzy search by username

zhangxin 7 years ago
parent
commit
e0fa628e94

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

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

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

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

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

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

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

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

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

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

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

@@ -38,7 +38,7 @@ public class UserLogicImpl extends BaseLogic implements UserLogic {
             return null;
         }
         UserDTO dto = userWrapper.wrap(user);
-        setIntegral(dto,user);
+        setIntegral(dto, user);
         return dto;
     }
 
@@ -49,7 +49,7 @@ public class UserLogicImpl extends BaseLogic implements UserLogic {
             return null;
         }
         UserDTO dto = userWrapper.wrap(user);
-        setIntegral(dto,user);
+        setIntegral(dto, user);
         return dto;
     }
 
@@ -60,7 +60,7 @@ public class UserLogicImpl extends BaseLogic implements UserLogic {
             return null;
         }
         UserDTO dto = userWrapper.wrap(user);
-        setIntegral(dto,user);
+        setIntegral(dto, user);
         return dto;
     }
 
@@ -99,8 +99,8 @@ public class UserLogicImpl extends BaseLogic implements UserLogic {
         return userWrapper.wrap(user);
     }
 
-    private void setIntegral(UserDTO dto,User user){
-        UserIntegral integral=integralService.findByUserId(user.getId());
+    private void setIntegral(UserDTO dto, User user) {
+        UserIntegral integral = integralService.findByUserId(user.getId());
         if (integral == null) {
             UserIntegral integral1 = new UserIntegral();
             integral1.setEnabled(true);
@@ -109,15 +109,20 @@ public class UserLogicImpl extends BaseLogic implements UserLogic {
             integral1.setCreateTime(new Timestamp(System.currentTimeMillis()));
             integralService.saveIntegral(integral1);
             dto.setIntegral(integral1.getTotal());
-        }else {
+        } else {
             dto.setIntegral(integral.getTotal());
         }
     }
 
     @Override
-    public List<UserDTO> getUserByFuzzyName(UserDTO userDTO) {
-        List<User> users = userService.findByFuzzyName(userDTO.getName());
-        return userWrapper.wrap(users);
+    public List<UserDTO> getUserByFuzzySearch(UserDTO userDTO) {
+        String username;
+        if (userDTO.getEmail() != null) {
+            username = userDTO.getEmail();
+        } else
+            username = userDTO.getName();
 
+        List<User> users = userService.findByFuzzySearch(username);
+        return userWrapper.wrap(users);
     }
 }