From c02eae36946f9286121c1dd96a9fd7b95efaec32 Mon Sep 17 00:00:00 2001 From: daihh Date: Mon, 20 Feb 2023 10:55:27 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E5=8F=97=E4=BC=97=E6=8E=A8?= =?UTF-8?q?=E9=80=81=E7=9A=84=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/xboe/module/boecase/dto/CaseVo.java | 3 +- .../service/impl/CasesServiceImpl.java | 3 ++ .../com/xboe/module/exam/api/ExamTaskApi.java | 9 ++-- .../exam/service/IExamUserTaskService.java | 4 +- .../service/impl/ExamUserTaskServiceImpl.java | 52 +++++++++++++++---- 5 files changed, 55 insertions(+), 16 deletions(-) diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/dto/CaseVo.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/dto/CaseVo.java index e447ee5c..9f134e64 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/dto/CaseVo.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/dto/CaseVo.java @@ -2,8 +2,6 @@ package com.xboe.module.boecase.dto; import lombok.Data; -import java.util.List; - @Data public class CaseVo { @@ -27,6 +25,7 @@ public class CaseVo { private Boolean excellent; + private String authorName; } diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesServiceImpl.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesServiceImpl.java index 1a21da5f..b56c4e1c 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesServiceImpl.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesServiceImpl.java @@ -208,6 +208,9 @@ public class CasesServiceImpl implements ICasesService { if(StringUtils.isNotBlank(caseVo.getKeyWord())){ query.addFilter(FieldFilters.like("title", LikeMatchMode.ANYWHERE, caseVo.getKeyWord())); } + if(StringUtils.isNotBlank(caseVo.getAuthorName())){ + query.addFilter(FieldFilters.like("authorName", LikeMatchMode.ANYWHERE, caseVo.getAuthorName())); + } if(caseVo.getIsTop()!=null) { query.addFilter(FieldFilters.eq("isTop",caseVo.getIsTop())); } diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/exam/api/ExamTaskApi.java b/servers/boe-server-all/src/main/java/com/xboe/module/exam/api/ExamTaskApi.java index ed0f8011..4ddb036f 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/exam/api/ExamTaskApi.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/exam/api/ExamTaskApi.java @@ -67,13 +67,16 @@ public class ExamTaskApi extends ApiBaseController { ExamUserTask hasTask=service.findByTestIdAndGroupId(task.getTestId(),task.getGroupId()); try { + int num=0; if(hasTask!=null) { //return badRequest("此受众已推送过了,不能重复推送"); - service.rePushTask(task); + num=service.rePushTask(task); }else { - service.addTask(task); + num=service.addTask(task); + } + if(num==0) { + return error("推送失败,未找到受众人员","请检查日志"); } - return success(true); } catch (Exception e) { log.error("推送考试错误",e); diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/exam/service/IExamUserTaskService.java b/servers/boe-server-all/src/main/java/com/xboe/module/exam/service/IExamUserTaskService.java index 08789553..456bb930 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/exam/service/IExamUserTaskService.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/exam/service/IExamUserTaskService.java @@ -11,13 +11,13 @@ public interface IExamUserTaskService { * 推送 * @param task */ - void addTask(ExamTestDto task); + int addTask(ExamTestDto task); /** * 再次推送同一个任务 * @param task */ - void rePushTask(ExamTestDto task); + int rePushTask(ExamTestDto task); /** * 通过试卷id检查是否已有发布了 diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/exam/service/impl/ExamUserTaskServiceImpl.java b/servers/boe-server-all/src/main/java/com/xboe/module/exam/service/impl/ExamUserTaskServiceImpl.java index 6d39da06..a59980b6 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/exam/service/impl/ExamUserTaskServiceImpl.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/exam/service/impl/ExamUserTaskServiceImpl.java @@ -48,7 +48,7 @@ public class ExamUserTaskServiceImpl implements IExamUserTaskService{ @Override @Transactional - public void addTask(ExamTestDto task) { + public int addTask(ExamTestDto task) { //添加推送记录 ExamUserTask examUserTask = new ExamUserTask(); examUserTask.setTestId(task.getTestId()); @@ -61,38 +61,69 @@ public class ExamUserTaskServiceImpl implements IExamUserTaskService{ // 下面的代码应该调用rePushTask //执行推送,当前因为是固定人,所以这里直接添加处理,按受众添加到每个人中 //查询受众的信息 - List items = ugroupDao.findList("groupId", task.getGroupId()); - if(items.size()>0) { +// List items = ugroupDao.findList("groupId", task.getGroupId()); +// int num=0; +// if(items.size()>0) { +// //防止加入两条的问题,应该是先查询,再添加 +// Map amap= aloneExamDao.findMap("aid", "name",FieldFilters.eq("testId", task.getTestId())); +// //这里应该是单独的线程去处理 +// for(UserGroupItem item :items) { +// if(amap.containsKey(item.getAid())) { +// continue; +// } +// //检查是否存在 +// AloneExam aloneExam = new AloneExam(); +// aloneExam.setAid(item.getAid()); +// aloneExam.setTestId(task.getTestId()); +// aloneExam.setTestName(task.getTestName()); +// aloneExam.setName(item.getName()); +// aloneExam.setUcode(item.getUserNo()); +// aloneExam.setTestDuration(task.getDuration()); +// aloneExam.setTaskTime(LocalDateTime.now()); +// aloneExam.setStartTime(task.getStartTime()); +// aloneExam.setStatus(AloneExamAnswer.STATUS_NONE);//未考试过 +// aloneExam.setScore(0f); +// aloneExamDao.save(aloneExam); +// num++; +// } +// } + + //调用用户服务的接口,在启用下面的代码前,需要 + List sudienceUsers=outSideService.getUsersByAudienceId(task.getGroupId()); + int num=0; + if(sudienceUsers.size()>0) { //防止加入两条的问题,应该是先查询,再添加 Map amap= aloneExamDao.findMap("aid", "name",FieldFilters.eq("testId", task.getTestId())); //这里应该是单独的线程去处理 - for(UserGroupItem item :items) { - if(amap.containsKey(item.getAid())) { + for(AudienceUser item :sudienceUsers) { + if(amap.containsKey(item.getId())) { continue; } //检查是否存在 AloneExam aloneExam = new AloneExam(); - aloneExam.setAid(item.getAid()); + aloneExam.setAid(item.getId()); aloneExam.setTestId(task.getTestId()); aloneExam.setTestName(task.getTestName()); aloneExam.setName(item.getName()); - aloneExam.setUcode(item.getUserNo()); + aloneExam.setUcode(item.getCode()); aloneExam.setTestDuration(task.getDuration()); aloneExam.setTaskTime(LocalDateTime.now()); aloneExam.setStartTime(task.getStartTime()); aloneExam.setStatus(AloneExamAnswer.STATUS_NONE);//未考试过 aloneExam.setScore(0f); aloneExamDao.save(aloneExam); + num++; } } + //examUserTask.setStatus(ExamUserTask.STATUS_FINISH); //dao.update(examUserTask); - + return num; } @Override @Transactional - public void rePushTask(ExamTestDto task) { + public int rePushTask(ExamTestDto task) { //执行推送,当前因为是固定人,所以这里直接添加处理,按受众添加到每个人中 //查询受众的信息,2022、11、30 这个的返回需要从接口获取人员信息,然后推送 // List items = ugroupDao.findList("groupId", task.getGroupId()); @@ -122,6 +153,7 @@ public class ExamUserTaskServiceImpl implements IExamUserTaskService{ //调用用户服务的接口,在启用下面的代码前,需要 List sudienceUsers=outSideService.getUsersByAudienceId(task.getGroupId()); + int num=0; if(sudienceUsers.size()>0) { //防止加入两条的问题,应该是先查询,再添加 Map amap= aloneExamDao.findMap("aid", "name",FieldFilters.eq("testId", task.getTestId())); @@ -143,11 +175,13 @@ public class ExamUserTaskServiceImpl implements IExamUserTaskService{ aloneExam.setStatus(AloneExamAnswer.STATUS_NONE);//未考试过 aloneExam.setScore(0f); aloneExamDao.save(aloneExam); + num++; } } // examUserTask.setStatus(ExamUserTask.STATUS_FINISH); // dao.update(examUserTask); + return num; }