Browse Source

bug修复

master
luogw 1 month ago
parent
commit
311d39f14c
  1. 3
      src/main/java/com/project/appeal/domain/service/Impl/SearchAppealDomainServiceImpl.java
  2. 30
      src/main/java/com/project/task/domain/service/impl/SaveOrUpdateTaskDomainServiceImpl.java
  3. 16
      src/main/java/com/project/task/domain/service/impl/SearchTaskDomainServiceImpl.java
  4. 2
      src/main/resources/application-test.yml

3
src/main/java/com/project/appeal/domain/service/Impl/SearchAppealDomainServiceImpl.java

@ -44,6 +44,8 @@ public class SearchAppealDomainServiceImpl implements SearchAppealDomainService
@Autowired @Autowired
private ProductLineMapper productLineMapper; private ProductLineMapper productLineMapper;
private static final String KEY_VALUE_PATTERN = "\\{([^}]*)\\}\\:\\{([^}]*)\\}";
@Override @Override
public Result<PageResult<AppealDTO>> list(AppealParam appealParam) { public Result<PageResult<AppealDTO>> list(AppealParam appealParam) {
QueryWrapper<AppealEntity> appealEntityQueryWrapper = new QueryWrapper<>(); QueryWrapper<AppealEntity> appealEntityQueryWrapper = new QueryWrapper<>();
@ -145,6 +147,7 @@ public class SearchAppealDomainServiceImpl implements SearchAppealDomainService
.filter(kpId -> kpIdToEntityMap.containsKey(kpId)) .filter(kpId -> kpIdToEntityMap.containsKey(kpId))
.map(kpId -> kpIdToEntityMap.get(kpId).getContent()) .map(kpId -> kpIdToEntityMap.get(kpId).getContent())
.filter(StringUtils::isNotBlank) .filter(StringUtils::isNotBlank)
.map(content -> content.replaceAll(KEY_VALUE_PATTERN, "$1:$2"))
.collect(Collectors.joining(",")); .collect(Collectors.joining(","));
appealDTO.setKpContentsStr(kpContentStr); appealDTO.setKpContentsStr(kpContentStr);

30
src/main/java/com/project/task/domain/service/impl/SaveOrUpdateTaskDomainServiceImpl.java

@ -8,8 +8,10 @@ import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.project.base.domain.exception.BusinessErrorException; import com.project.base.domain.exception.BusinessErrorException;
import com.project.base.domain.result.Result; import com.project.base.domain.result.Result;
import com.project.ding.domain.dto.UserDTO;
import com.project.ding.domain.entity.UserEntity; import com.project.ding.domain.entity.UserEntity;
import com.project.ding.domain.service.UserBaseService; import com.project.ding.domain.service.UserBaseService;
import com.project.ding.utils.DingUtil;
import com.project.information.domain.dto.KnowledgePointStatisticsDTO; import com.project.information.domain.dto.KnowledgePointStatisticsDTO;
import com.project.information.domain.entity.ProductLineEntity; import com.project.information.domain.entity.ProductLineEntity;
import com.project.information.domain.service.GetStatisticsKnowledgePointDomainService; import com.project.information.domain.service.GetStatisticsKnowledgePointDomainService;
@ -47,6 +49,9 @@ public class SaveOrUpdateTaskDomainServiceImpl implements SaveOrUpdateTaskDomain
@Autowired @Autowired
private TaskBaseService taskBaseService; private TaskBaseService taskBaseService;
@Autowired
private DingUtil dingUtil;
@Autowired @Autowired
private UserBaseService userBaseService; private UserBaseService userBaseService;
@ -114,7 +119,16 @@ public class SaveOrUpdateTaskDomainServiceImpl implements SaveOrUpdateTaskDomain
.stream() .stream()
.collect(Collectors.toMap(UserEntity::getId, UserEntity::getName)); .collect(Collectors.toMap(UserEntity::getId, UserEntity::getName));
for (String userId : dto.getParticipantUserIdList()) { // 处理用户ID在系统中不存在的情况
List<String> nonExistentUserIds = participantUserIdList.stream()
.filter(userId -> !userMap.containsKey(userId))
.collect(Collectors.toList());
if (!nonExistentUserIds.isEmpty()) {
//查询钉钉用户信息
dingGetUserInfo(nonExistentUserIds,userMap);
}
for (String userId : participantUserIdList) {
TaskUserEntity taskUserEntity = new TaskUserEntity(); TaskUserEntity taskUserEntity = new TaskUserEntity();
taskUserEntity.setTaskId(saveEntity.getId()); taskUserEntity.setTaskId(saveEntity.getId());
taskUserEntity.setUserId(userId); taskUserEntity.setUserId(userId);
@ -125,6 +139,20 @@ public class SaveOrUpdateTaskDomainServiceImpl implements SaveOrUpdateTaskDomain
return Result.success(saveEntity.toDTO(TaskDTO::new)); return Result.success(saveEntity.toDTO(TaskDTO::new));
} }
private void dingGetUserInfo(List<String> nonExistentUserIds, Map<String, String> userMap) {
for (String nonExistentUserId : nonExistentUserIds) {
UserDTO user = dingUtil.getUserById(nonExistentUserId);
if (Objects.nonNull(user)) {
userMap.put(user.getId(), user.getName());
// 同步到本地数据库
UserEntity userEntity = user.toEntity(UserEntity::new);
userBaseService.saveOrUpdate(userEntity);
} else {
throw new BusinessErrorException("用户ID " + nonExistentUserId + " 在系统中不存在,且无法从钉钉获取到用户信息,请核实后重试");
}
}
}
private void checkDTO(TaskDTO dto) throws Exception { private void checkDTO(TaskDTO dto) throws Exception {
if (StrUtil.isBlank(dto.getName())) { if (StrUtil.isBlank(dto.getName())) {
throw new BusinessErrorException("考试任务名称不能为空"); throw new BusinessErrorException("考试任务名称不能为空");

16
src/main/java/com/project/task/domain/service/impl/SearchTaskDomainServiceImpl.java

@ -8,6 +8,8 @@ import com.project.base.domain.result.PageResult;
import com.project.base.domain.result.Result; import com.project.base.domain.result.Result;
import com.project.base.domain.utils.PageConverter; import com.project.base.domain.utils.PageConverter;
import com.project.ding.domain.dto.UserDTO; import com.project.ding.domain.dto.UserDTO;
import com.project.information.domain.entity.ProductLineEntity;
import com.project.information.domain.service.ProductLineBaseService;
import com.project.task.domain.dto.TaskDTO; import com.project.task.domain.dto.TaskDTO;
import com.project.task.domain.entity.TaskEntity; import com.project.task.domain.entity.TaskEntity;
import com.project.task.domain.entity.TaskUserEntity; import com.project.task.domain.entity.TaskUserEntity;
@ -31,6 +33,9 @@ public class SearchTaskDomainServiceImpl implements SearchTaskDomainService {
private TaskMapper taskMapper; private TaskMapper taskMapper;
@Autowired @Autowired
private TaskUserBaseService taskUserBaseService; private TaskUserBaseService taskUserBaseService;
@Autowired
private ProductLineBaseService productLineBaseService;
@Override @Override
public Result<PageResult<TaskDTO>> search(TaskParam param) throws Exception { public Result<PageResult<TaskDTO>> search(TaskParam param) throws Exception {
LambdaQueryWrapper<TaskEntity> queryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<TaskEntity> queryWrapper = new LambdaQueryWrapper<>();
@ -78,6 +83,17 @@ public class SearchTaskDomainServiceImpl implements SearchTaskDomainService {
userDTO.setName(taskUserEntity.getUserName()); userDTO.setName(taskUserEntity.getUserName());
return userDTO; return userDTO;
}).toList(); }).toList();
//获取子产品线名称
String subLineName = productLineBaseService.lambdaQuery()
.eq(ProductLineEntity::getId , dto.getSubLineId())
.select(ProductLineEntity::getName)
.oneOpt()
.map(ProductLineEntity::getName)
.orElse("");
dto.setSubLineName(subLineName);
dto.setParticipantUserDTOList(participantUserDTOList); dto.setParticipantUserDTOList(participantUserDTOList);
dto.setParticipantUserIdList(participantUserDTOList.stream().map(UserDTO::getId).toList()); dto.setParticipantUserIdList(participantUserDTOList.stream().map(UserDTO::getId).toList());
dto.setTotalQuestionNum(dto.getSingleChoiceNum() + dto.getMultipleChoiceNum() + dto.getTrueFalseNum()); dto.setTotalQuestionNum(dto.getSingleChoiceNum() + dto.getMultipleChoiceNum() + dto.getTrueFalseNum());

2
src/main/resources/application-test.yml

@ -48,7 +48,7 @@ spring:
generator: generator:
write-numbers-as-strings: true write-numbers-as-strings: true
minio: minio:
endpoint: ${MINIO_ENDPOINT:http://8.129.84.155:9000} endpoint: ${MINIO_ENDPOINT:http://localhost:9000}
accessKey: ${MINIO_ASSESSKEY:DTKYZDZM1i31XOvd24SP} accessKey: ${MINIO_ASSESSKEY:DTKYZDZM1i31XOvd24SP}
secretKey: ${MINIO_SECRETKEY:PnfLPcJbvaUboZIwYZAADPB0pDtPZgbi0QiLSs3C} secretKey: ${MINIO_SECRETKEY:PnfLPcJbvaUboZIwYZAADPB0pDtPZgbi0QiLSs3C}
bucket: ${MINIO_BUCKET:ai-evaluator} bucket: ${MINIO_BUCKET:ai-evaluator}

Loading…
Cancel
Save