提交受众推送的修改

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 java.util.List;
@Data
public class CaseVo {
@@ -27,6 +25,7 @@ public class CaseVo {
private Boolean excellent;
private String authorName;
}

View File

@@ -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()));
}

View File

@@ -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);

View File

@@ -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检查是否已有发布了

View File

@@ -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<UserGroupItem> items = ugroupDao.findList("groupId", task.getGroupId());
if(items.size()>0) {
// List<UserGroupItem> items = ugroupDao.findList("groupId", task.getGroupId());
// 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()));
//这里应该是单独的线程去处理
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<UserGroupItem> items = ugroupDao.findList("groupId", task.getGroupId());
@@ -122,6 +153,7 @@ public class ExamUserTaskServiceImpl implements IExamUserTaskService{
//调用用户服务的接口,在启用下面的代码前,需要
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()));
@@ -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;
}