Selaa lähdekoodia

平台查询用户列表,根据name和mobile模糊匹配

wang-hai-cheng 4 vuotta sitten
vanhempi
commit
6c5668e802

+ 25 - 25
lift-system-service/src/main/java/cn/com/ty/lift/system/user/service/impl/UserService.java

@@ -11,7 +11,6 @@ import cn.com.ty.lift.system.user.service.*;
 import cn.com.ty.lift.system.utils.PasswordUtils;
 import cn.com.xwy.boot.web.dto.RestResponse;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import org.apache.commons.lang3.StringUtils;
@@ -22,10 +21,7 @@ import org.springframework.transaction.interceptor.TransactionAspectSupport;
 import javax.annotation.Resource;
 import javax.servlet.http.HttpSession;
 import java.time.LocalDateTime;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -107,10 +103,10 @@ public class UserService implements IUserService {
 
     @Override
     public RestResponse list(UserRequest userRequest) {
-        IPage userAccountPage = new Page<>(userRequest.getPageNum(), userRequest.getPageSize());
-        userAccountPage = userAccountService.page(userAccountPage, new QueryWrapper<UserAccount>()
+        IPage userInfoPage = new Page<>(userRequest.getPageNum(), userRequest.getPageSize());
+        userInfoPage = userInfoService.page(userInfoPage, new QueryWrapper<UserInfo>()
                 //通过用户名模糊查询
-                .like(StringUtils.isNotBlank(userRequest.getQueryCondition()), "account",
+                .like(StringUtils.isNotBlank(userRequest.getQueryCondition()), "name",
                         userRequest.getQueryCondition())
                 .or()
                 //通过用户手机号模糊查询
@@ -118,25 +114,29 @@ public class UserService implements IUserService {
                         userRequest.getQueryCondition())
                 .eq("delete_flag", ApiConstants.DELETE_NO)
         );
-        List<UserAccount> userAccountList = userAccountPage.getRecords();
-        if (userAccountList != null && userAccountList.size() > 0) {
-            List<Long> userIdList = ProjectUtils.getAttrList(userAccountList, "userId", null);
-            Map<Long, UserInfo> userIdToUserInfo = userInfoService.userIdToInfo(userIdList);
+        List<UserInfo> userInfos = userInfoPage.getRecords();
+        if (userInfos != null && userInfos.size() > 0) {
+            //获取用户id
+            List<Long> userIds = userInfos.stream().map(UserInfo::getUserId).collect(Collectors.toList());
+            //根据用户id查询用户账号
+            Collection<UserAccount> userAccounts = userAccountService.listByIds(userIds);
             List<UserResponse> userResponseList = new ArrayList<>(10);
-            if (userIdToUserInfo != null && userIdToUserInfo.size() > 0) {
-                userAccountList.forEach(userAccount -> {
-                    UserResponse userResponse = new UserResponse();
-                    UserInfo userInfo = userIdToUserInfo.get(userAccount.getUserId());
-                    userResponse.setUserId(userAccount.getUserId());
-                    userResponse.setName(userInfo.getName());
-                    userResponse.setMobile(userInfo.getMobile());
-                    userResponse.setCreateTime(userAccount.getCreateDate());
-                    userResponseList.add(userResponse);
-                });
-            }
-            userAccountPage.setRecords(userResponseList);
+            //用户账号list转map
+            Map<Long, LocalDateTime> userAccountMap = userAccounts.stream().
+                    collect(Collectors.toMap(UserAccount::getUserId, UserAccount::getCreateDate, (k1, k2) -> k1));
+            userInfos.forEach(userInfo -> {
+                UserResponse userResponse = new UserResponse();
+                userResponse.setUserId(userInfo.getUserId());
+                userResponse.setName(userInfo.getName());
+                userResponse.setMobile(userInfo.getMobile());
+                //获取账号创建时间,数据库已证实没有空数据
+                LocalDateTime createDate = userAccountMap.get(userInfo.getUserId());
+                userResponse.setCreateTime(createDate != null ? createDate : LocalDateTime.now());
+                userResponseList.add(userResponse);
+            });
+            userInfoPage.setRecords(userResponseList);
         }
-        return RestResponse.success(userAccountPage, "获取用户信息成功");
+        return RestResponse.success(userInfoPage, "获取用户信息成功");
     }
 
     @Override