| | |
| | | // ... 原有逻辑 ... |
| | | int maxConcurrentUsers = searchTaskRequest.getConfig() != null ? |
| | | searchTaskRequest.getConfig().getMax_concurrent_users() : 3; |
| | | List<List<UserDto>> userBatches = splitUsersIntoBatches(searchTaskRequest.getUsers(), maxConcurrentUsers, keywordId); |
| | | List<List<UserDto>> userBatches = splitUsersIntoBatches(searchTaskRequest.getUsers(), maxConcurrentUsers, keywordId,searchTaskRequest.getIs_first()); |
| | | |
| | | |
| | | // 创建批次队列并存入全局映射 |
| | |
| | | // .then(); |
| | | // } |
| | | |
| | | private List<List<UserDto>> splitUsersIntoBatches(List<UserDto> users, int batchSize,Integer keywordId) { |
| | | private List<List<UserDto>> splitUsersIntoBatches(List<UserDto> users, int batchSize,Integer keywordId,Boolean isFirst) { |
| | | |
| | | Keyword keyword = keywordService.getById(keywordId); |
| | | if (null==keyword.getNum()){ |
| | | keyword.setNum(0); |
| | | if (isFirst){ |
| | | keyword.setNum(1); |
| | | }else { |
| | | keyword.setNum(keyword.getNum()+1); |
| | | } |
| | | keyword.setNum(keyword.getNum()+1); |
| | | keywordService.updateById(keyword); |
| | | |
| | | List<List<UserDto>> batches = new ArrayList<>(); |
| | |
| | | keywordTask.setStatus("pending"); |
| | | keywordTaskService.updateById(keywordTask); |
| | | } |
| | | //将提问词列表的状态转为pending |
| | | for (String questionName : batchRequest.getQuestions()) { |
| | | questionService.update(new LambdaUpdateWrapper<Question>().eq(Question::getKeyword_id, keyword.getKeyword_id()).eq(Question::getQuestion,questionName).set(Question::getStatus, "pending")); |
| | | |
| | | } |
| | | // KeywordTask taskToUpdate = keywordTaskService.getOne(new LambdaQueryWrapper<KeywordTask>() |
| | | // .eq(KeywordTask::getKeyword_id, keyword.getKeyword_id()) |
| | | // .eq(KeywordTask::getTask_id, null)); // 确保 task_id 为 null 的任务 |