dengsixing 10 meses atrás
pai
commit
14def153c9

+ 17 - 3
src/main/java/com/fdkankan/jp/xspace/service/impl/ScenePlusServiceImpl.java

@@ -1,6 +1,7 @@
 package com.fdkankan.jp.xspace.service.impl;
 
 import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.collection.CollUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fdkankan.jp.xspace.common.PageInfo;
@@ -11,12 +12,13 @@ import com.fdkankan.jp.xspace.mapper.IScenePlusMapper;
 import com.fdkankan.jp.xspace.service.IScenePlusService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fdkankan.jp.xspace.service.IUserRoleService;
+import com.fdkankan.jp.xspace.service.IUserService;
 import com.fdkankan.jp.xspace.vo.SceneVO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import java.util.List;
-import java.util.Set;
+import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -31,6 +33,8 @@ public class ScenePlusServiceImpl extends ServiceImpl<IScenePlusMapper, ScenePlu
 
     @Autowired
     private IUserRoleService userRoleService;
+    @Autowired
+    private IUserService userService;
 
     @Override
     public PageInfo pageSgMesh(SceneDTO param, User user) {
@@ -48,9 +52,19 @@ public class ScenePlusServiceImpl extends ServiceImpl<IScenePlusMapper, ScenePlu
         }
 
         Page<ScenePlus> page = this.baseMapper.pageSgMesh(new Page<>(param.getPageNum(), param.getPageSize()), param);
+        Set<Long> userIds = page.getRecords().stream().filter(v -> Objects.nonNull(v.getUserId())).map(ScenePlus::getUserId).collect(Collectors.toSet());
+        Map<Long, String> userNameMap = new HashMap<>();
+        if(CollUtil.isNotEmpty(userIds)){
+            List<User> users = userService.listByIds(userIds);
+            users.stream().forEach(v->{
+                userNameMap.put(v.getId(), v.getUserName());
+            });
+        }
         List<SceneVO> sceneVOList = BeanUtil.copyToList(page.getRecords(), SceneVO.class);
         sceneVOList.stream().forEach(v->{
-            v.setUserName(user.getUserName());
+            if(Objects.nonNull(v.getUserId()) && userNameMap.get(v.getUserId()) != null){
+                v.setUserName(userNameMap.get(v.getUserId()));
+            }
             if(!roleIds.contains(5L)){
                 if(!v.getUserId().equals(user.getId())){
                     v.setPermitSync(0);