소스 검색

MOD: get userList by emails

zhangxin 7 년 전
부모
커밋
40ea5e9a62

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

@@ -82,6 +82,11 @@ public class UserRPC implements UserService {
 
     @Override
     public List<UserDTO> findAll(List<Long> list) {
-        return userLogic.getUserList(list);
+        return userLogic.findAll(list);
+    }
+
+    @Override
+    public List<UserDTO> findByEmails(List<String> list) {
+        return userLogic.findByEmails(list);
     }
 }

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

@@ -27,6 +27,8 @@ public interface UserService {
 
     List<User> findByFuzzyNameOrEmail(String keyword);
 
-    List<User> findAll(String userIds);
+    List<User> findAll(List<Long> userIds);
+
+    List<User> findAllByEmails(List<String> emails);
 }
 

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

@@ -6,6 +6,7 @@ import cn.iselab.mooctest.user.service.UserService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -69,7 +70,20 @@ public class UserServiceImpl implements UserService {
     }
 
     @Override
-    public List<User> findAll(String userIds) {
-        return userMapper.findAll(userIds);
+    public List<User> findAll(List<Long> userIds) {
+        List<User> users = new ArrayList<>();
+        for (Long id : userIds) {
+            users.add(userMapper.findById(id));
+        }
+        return users;
+    }
+
+    @Override
+    public List<User> findAllByEmails(List<String> emails) {
+        List<User> users = new ArrayList<>();
+        for (String s : emails) {
+            users.add(userMapper.findByEmail(s));
+        }
+        return users;
     }
 }

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

@@ -28,6 +28,8 @@ public interface UserLogic {
 
     List<UserDTO> getUserByFuzzyNameOrEmail(UserDTO userDTO);
 
-    List<UserDTO> getUserList(List<Long> userIds);
+    List<UserDTO> findAll(List<Long> userIds);
+
+    List<UserDTO> findByEmails(List<String> emails);
 
 }

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

@@ -139,12 +139,18 @@ public class UserLogicImpl extends BaseLogic implements UserLogic {
     }
 
     @Override
-    public List<UserDTO> getUserList(List<Long> userIds) {
+    public List<UserDTO> findAll(List<Long> userIds) {
         if (userIds.size() < 1) {
             throw new HttpBadRequestException("userId length <1");
         }
-        String userIdList = userIds.toString();
-        String list = userIdList.substring(1, userIdList.length() - 1);
-        return userWrapper.wrap(userService.findAll(list));
+        return userWrapper.wrap(userService.findAll(userIds));
+    }
+
+    @Override
+    public List<UserDTO> findByEmails(List<String> emails) {
+        if (emails.size() < 1) {
+            throw new HttpBadRequestException("emails length <1");
+        }
+        return userWrapper.wrap(userService.findAllByEmails(emails));
     }
 }