提交受众推送的修改

This commit is contained in:
daihh
2023-02-20 10:55:27 +08:00
parent 50b5831c80
commit c02eae3694
5 changed files with 55 additions and 16 deletions

View File

@@ -2,8 +2,6 @@ package com.xboe.module.boecase.dto;
import lombok.Data; import lombok.Data;
import java.util.List;
@Data @Data
public class CaseVo { public class CaseVo {
@@ -27,6 +25,7 @@ public class CaseVo {
private Boolean excellent; private Boolean excellent;
private String authorName;
} }

View File

@@ -208,6 +208,9 @@ public class CasesServiceImpl implements ICasesService {
if(StringUtils.isNotBlank(caseVo.getKeyWord())){ if(StringUtils.isNotBlank(caseVo.getKeyWord())){
query.addFilter(FieldFilters.like("title", LikeMatchMode.ANYWHERE, 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) { if(caseVo.getIsTop()!=null) {
query.addFilter(FieldFilters.eq("isTop",caseVo.getIsTop())); query.addFilter(FieldFilters.eq("isTop",caseVo.getIsTop()));
} }

View File

@@ -67,13 +67,16 @@ public class ExamTaskApi extends ApiBaseController {
ExamUserTask hasTask=service.findByTestIdAndGroupId(task.getTestId(),task.getGroupId()); ExamUserTask hasTask=service.findByTestIdAndGroupId(task.getTestId(),task.getGroupId());
try { try {
int num=0;
if(hasTask!=null) { if(hasTask!=null) {
//return badRequest("此受众已推送过了,不能重复推送"); //return badRequest("此受众已推送过了,不能重复推送");
service.rePushTask(task); num=service.rePushTask(task);
}else { }else {
service.addTask(task); num=service.addTask(task);
}
if(num==0) {
return error("推送失败,未找到受众人员","请检查日志");
} }
return success(true); return success(true);
} catch (Exception e) { } catch (Exception e) {
log.error("推送考试错误",e); log.error("推送考试错误",e);

View File

@@ -11,13 +11,13 @@ public interface IExamUserTaskService {
* 推送 * 推送
* @param task * @param task
*/ */
void addTask(ExamTestDto task); int addTask(ExamTestDto task);
/** /**
* 再次推送同一个任务 * 再次推送同一个任务
* @param task * @param task
*/ */
void rePushTask(ExamTestDto task); int rePushTask(ExamTestDto task);
/** /**
* 通过试卷id检查是否已有发布了 * 通过试卷id检查是否已有发布了

View File

@@ -48,7 +48,7 @@ public class ExamUserTaskServiceImpl implements IExamUserTaskService{
@Override @Override
@Transactional @Transactional
public void addTask(ExamTestDto task) { public int addTask(ExamTestDto task) {
//添加推送记录 //添加推送记录
ExamUserTask examUserTask = new ExamUserTask(); ExamUserTask examUserTask = new ExamUserTask();
examUserTask.setTestId(task.getTestId()); examUserTask.setTestId(task.getTestId());
@@ -61,38 +61,69 @@ public class ExamUserTaskServiceImpl implements IExamUserTaskService{
// 下面的代码应该调用rePushTask // 下面的代码应该调用rePushTask
//执行推送,当前因为是固定人,所以这里直接添加处理,按受众添加到每个人中 //执行推送,当前因为是固定人,所以这里直接添加处理,按受众添加到每个人中
//查询受众的信息 //查询受众的信息
List<UserGroupItem> items = ugroupDao.findList("groupId", task.getGroupId()); // List<UserGroupItem> items = ugroupDao.findList("groupId", task.getGroupId());
if(items.size()>0) { // int num=0;
// if(items.size()>0) {
// //防止加入两条的问题,应该是先查询,再添加
// Map<String,Object> 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<AudienceUser> sudienceUsers=outSideService.getUsersByAudienceId(task.getGroupId());
int num=0;
if(sudienceUsers.size()>0) {
//防止加入两条的问题,应该是先查询,再添加 //防止加入两条的问题,应该是先查询,再添加
Map<String,Object> amap= aloneExamDao.findMap("aid", "name",FieldFilters.eq("testId", task.getTestId())); Map<String,Object> amap= aloneExamDao.findMap("aid", "name",FieldFilters.eq("testId", task.getTestId()));
//这里应该是单独的线程去处理 //这里应该是单独的线程去处理
for(UserGroupItem item :items) { for(AudienceUser item :sudienceUsers) {
if(amap.containsKey(item.getAid())) { if(amap.containsKey(item.getId())) {
continue; continue;
} }
//检查是否存在 //检查是否存在
AloneExam aloneExam = new AloneExam(); AloneExam aloneExam = new AloneExam();
aloneExam.setAid(item.getAid()); aloneExam.setAid(item.getId());
aloneExam.setTestId(task.getTestId()); aloneExam.setTestId(task.getTestId());
aloneExam.setTestName(task.getTestName()); aloneExam.setTestName(task.getTestName());
aloneExam.setName(item.getName()); aloneExam.setName(item.getName());
aloneExam.setUcode(item.getUserNo()); aloneExam.setUcode(item.getCode());
aloneExam.setTestDuration(task.getDuration()); aloneExam.setTestDuration(task.getDuration());
aloneExam.setTaskTime(LocalDateTime.now()); aloneExam.setTaskTime(LocalDateTime.now());
aloneExam.setStartTime(task.getStartTime()); aloneExam.setStartTime(task.getStartTime());
aloneExam.setStatus(AloneExamAnswer.STATUS_NONE);//未考试过 aloneExam.setStatus(AloneExamAnswer.STATUS_NONE);//未考试过
aloneExam.setScore(0f); aloneExam.setScore(0f);
aloneExamDao.save(aloneExam); aloneExamDao.save(aloneExam);
num++;
} }
} }
//examUserTask.setStatus(ExamUserTask.STATUS_FINISH); //examUserTask.setStatus(ExamUserTask.STATUS_FINISH);
//dao.update(examUserTask); //dao.update(examUserTask);
return num;
} }
@Override @Override
@Transactional @Transactional
public void rePushTask(ExamTestDto task) { public int rePushTask(ExamTestDto task) {
//执行推送,当前因为是固定人,所以这里直接添加处理,按受众添加到每个人中 //执行推送,当前因为是固定人,所以这里直接添加处理,按受众添加到每个人中
//查询受众的信息2022、11、30 这个的返回需要从接口获取人员信息,然后推送 //查询受众的信息2022、11、30 这个的返回需要从接口获取人员信息,然后推送
// List<UserGroupItem> items = ugroupDao.findList("groupId", task.getGroupId()); // List<UserGroupItem> items = ugroupDao.findList("groupId", task.getGroupId());
@@ -122,6 +153,7 @@ public class ExamUserTaskServiceImpl implements IExamUserTaskService{
//调用用户服务的接口,在启用下面的代码前,需要 //调用用户服务的接口,在启用下面的代码前,需要
List<AudienceUser> sudienceUsers=outSideService.getUsersByAudienceId(task.getGroupId()); List<AudienceUser> sudienceUsers=outSideService.getUsersByAudienceId(task.getGroupId());
int num=0;
if(sudienceUsers.size()>0) { if(sudienceUsers.size()>0) {
//防止加入两条的问题,应该是先查询,再添加 //防止加入两条的问题,应该是先查询,再添加
Map<String,Object> amap= aloneExamDao.findMap("aid", "name",FieldFilters.eq("testId", task.getTestId())); Map<String,Object> 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.setStatus(AloneExamAnswer.STATUS_NONE);//未考试过
aloneExam.setScore(0f); aloneExam.setScore(0f);
aloneExamDao.save(aloneExam); aloneExamDao.save(aloneExam);
num++;
} }
} }
// examUserTask.setStatus(ExamUserTask.STATUS_FINISH); // examUserTask.setStatus(ExamUserTask.STATUS_FINISH);
// dao.update(examUserTask); // dao.update(examUserTask);
return num;
} }