refactor(消息管理): 机器人返回用户名称

This commit is contained in:
guoyuqi 2023-10-24 15:42:46 +08:00 committed by 刘瑞斌
parent 769be9b934
commit 66762de503
2 changed files with 31 additions and 9 deletions

View File

@ -10,6 +10,9 @@ import io.metersphere.project.mapper.ProjectRobotMapper;
import io.metersphere.sdk.exception.MSException;
import io.metersphere.sdk.util.BeanUtils;
import io.metersphere.sdk.util.Translator;
import io.metersphere.system.domain.User;
import io.metersphere.system.domain.UserExample;
import io.metersphere.system.mapper.UserMapper;
import io.metersphere.system.uid.IDGenerator;
import jakarta.annotation.Resource;
import org.apache.commons.collections.CollectionUtils;
@ -18,7 +21,11 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import java.util.stream.Stream;
@Service
@Transactional
@ -33,6 +40,9 @@ public class ProjectRobotService {
@Resource
private MessageTaskBlobMapper messageTaskBlobMapper;
@Resource
private UserMapper userMapper;
public void add(ProjectRobot projectRobot) {
projectRobot.setId(IDGenerator.nextStr());
projectRobot.setEnable(projectRobot.getEnable());
@ -87,11 +97,7 @@ public class ProjectRobotService {
public void enable(String id, String updateUser, Long updateTime) {
ProjectRobot projectRobot = checkRobotExist(id);
if (projectRobot.getEnable()) {
projectRobot.setEnable(false);
} else {
projectRobot.setEnable(true);
}
projectRobot.setEnable(!projectRobot.getEnable());
projectRobot.setCreateUser(null);
projectRobot.setCreateTime(null);
projectRobot.setUpdateUser(updateUser);
@ -106,8 +112,9 @@ public class ProjectRobotService {
criteria.andProjectIdEqualTo(projectId);
projectExample.setOrderByClause("create_time desc");
List<ProjectRobot> projectRobots = robotMapper.selectByExample(projectExample);
Integer inSiteIndex = 0;
Integer mailIndex = 0;
Map<String, String> userMap = getUserMap(projectRobots);
int inSiteIndex = 0;
int mailIndex = 0;
for (int i = 0; i < projectRobots.size(); i++) {
ProjectRobot projectRobot = projectRobots.get(i);
if (StringUtils.equalsIgnoreCase(projectRobot.getPlatform(), ProjectRobotPlatform.IN_SITE.toString())) {
@ -120,6 +127,12 @@ public class ProjectRobotService {
projectRobot.setDescription(Translator.get(projectRobot.getDescription()));
projectRobot.setName(Translator.get(projectRobot.getName()));
}
if (userMap.get(projectRobot.getCreateUser())!=null) {
projectRobot.setCreateUser(userMap.get(projectRobot.getCreateUser()));
}
if (userMap.get(projectRobot.getUpdateUser())!=null) {
projectRobot.setUpdateUser(userMap.get(projectRobot.getUpdateUser()));
}
}
if (projectRobots.size()>0 && inSiteIndex != 0) {
Collections.swap(projectRobots, inSiteIndex, 0);
@ -130,6 +143,17 @@ public class ProjectRobotService {
return projectRobots;
}
private Map<String, String> getUserMap(List<ProjectRobot> projectRobots) {
List<String> userIds = projectRobots.stream().flatMap(projectRobot -> Stream.of(projectRobot.getCreateUser(), projectRobot.getUpdateUser())).distinct().toList();;
if (CollectionUtils.isEmpty(userIds)) {
return new HashMap<>();
}
UserExample userExample = new UserExample();
userExample.createCriteria().andIdIn(userIds);
List<User> users = userMapper.selectByExample(userExample);
return users.stream().collect(Collectors.toMap(User::getId, User::getName));
}
public ProjectRobotDTO getDetail(String robotId) {
ProjectRobot projectRobotInDB = checkRobotExist(robotId);
ProjectRobotDTO projectRobotDTO = new ProjectRobotDTO();

View File

@ -346,7 +346,6 @@ public class ProjectRobotControllerTests extends BaseTest {
@Order(20)
void getListSuccessNoKeyword() throws Exception {
List<ProjectRobot> projectRobots = getList("test_project");
System.out.println(projectRobots);
Assertions.assertTrue(projectRobots.size() > 0);
}
@ -580,7 +579,6 @@ public class ProjectRobotControllerTests extends BaseTest {
SqlSessionUtils.closeSqlSession(sqlSession, sqlSessionFactory);
List<MessageTaskDTO> testProject1 = getMessageList(projectId);
Assertions.assertTrue(testProject1.size()>0);
System.out.println(testProject1);
}
private List<MessageTaskDTO> getMessageList(String projectId) throws Exception {