|
@@ -1,5 +1,7 @@
|
|
|
package cn.iselab.mooctest.site.web.logic.impl;
|
|
package cn.iselab.mooctest.site.web.logic.impl;
|
|
|
|
|
|
|
|
|
|
+import cn.afterturn.easypoi.excel.ExcelExportUtil;
|
|
|
|
|
+import cn.afterturn.easypoi.excel.entity.ExportParams;
|
|
|
import cn.iselab.mooctest.site.models.*;
|
|
import cn.iselab.mooctest.site.models.*;
|
|
|
import cn.iselab.mooctest.site.models.instancePermission.TaskPermission;
|
|
import cn.iselab.mooctest.site.models.instancePermission.TaskPermission;
|
|
|
import cn.iselab.mooctest.site.service.*;
|
|
import cn.iselab.mooctest.site.service.*;
|
|
@@ -18,7 +20,7 @@ import cn.iselab.mooctest.site.web.exception.HttpBadRequestException;
|
|
|
import cn.iselab.mooctest.site.web.exception.HttpNotFoundException;
|
|
import cn.iselab.mooctest.site.web.exception.HttpNotFoundException;
|
|
|
import cn.iselab.mooctest.site.web.logic.BaseLogic;
|
|
import cn.iselab.mooctest.site.web.logic.BaseLogic;
|
|
|
import cn.iselab.mooctest.site.web.logic.ExamLogic;
|
|
import cn.iselab.mooctest.site.web.logic.ExamLogic;
|
|
|
-import org.apache.shiro.SecurityUtils;
|
|
|
|
|
|
|
+import org.apache.poi.ss.usermodel.Workbook;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.core.convert.converter.Converter;
|
|
import org.springframework.core.convert.converter.Converter;
|
|
|
import org.springframework.data.domain.Page;
|
|
import org.springframework.data.domain.Page;
|
|
@@ -26,6 +28,9 @@ import org.springframework.data.domain.PageRequest;
|
|
|
import org.springframework.data.domain.Pageable;
|
|
import org.springframework.data.domain.Pageable;
|
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
|
|
|
|
+import javax.servlet.http.HttpServletResponse;
|
|
|
|
|
+import java.io.IOException;
|
|
|
|
|
+import java.net.URLEncoder;
|
|
|
import java.util.Date;
|
|
import java.util.Date;
|
|
|
import java.util.List;
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
import java.util.Map;
|
|
@@ -77,6 +82,9 @@ public class ExamLogicImpl extends BaseLogic implements ExamLogic {
|
|
|
ScoreVOWrapper scoreVOWrapper;
|
|
ScoreVOWrapper scoreVOWrapper;
|
|
|
|
|
|
|
|
@Autowired
|
|
@Autowired
|
|
|
|
|
+ AssignedTask2UserInfoService assignedTask2UserInfoService;
|
|
|
|
|
+
|
|
|
|
|
+ @Autowired
|
|
|
private Task2AssistantManagerService task2AssistantManagerService;
|
|
private Task2AssistantManagerService task2AssistantManagerService;
|
|
|
|
|
|
|
|
@Autowired
|
|
@Autowired
|
|
@@ -187,11 +195,11 @@ public class ExamLogicImpl extends BaseLogic implements ExamLogic {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
- public Page<AssignedTaskVO> getAssignedTasks(Long examId,Boolean needFilter, Pageable pageable) {
|
|
|
|
|
|
|
+ public Page<AssignedTaskVO> getAssignedTasks(Long examId, Boolean needFilter, Pageable pageable) {
|
|
|
Page<AssignedTask> assignedTasks;
|
|
Page<AssignedTask> assignedTasks;
|
|
|
- if(needFilter){
|
|
|
|
|
|
|
+ if (needFilter) {
|
|
|
assignedTasks = assignedTaskService.getContestMentorAssignedTaskPage(examId, pageable);
|
|
assignedTasks = assignedTaskService.getContestMentorAssignedTaskPage(examId, pageable);
|
|
|
- }else{
|
|
|
|
|
|
|
+ } else {
|
|
|
assignedTasks = assignedTaskService.getAssignedTaskPage(examId, pageable);
|
|
assignedTasks = assignedTaskService.getAssignedTaskPage(examId, pageable);
|
|
|
}
|
|
}
|
|
|
List<Long> userIds = assignedTasks.getContent().stream().map(AssignedTask::getParticipantId).
|
|
List<Long> userIds = assignedTasks.getContent().stream().map(AssignedTask::getParticipantId).
|
|
@@ -248,10 +256,10 @@ public class ExamLogicImpl extends BaseLogic implements ExamLogic {
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
public boolean checkTaskViewPermission(Long userId, Long taskId) throws Exception {
|
|
public boolean checkTaskViewPermission(Long userId, Long taskId) throws Exception {
|
|
|
- List<TaskPermission> taskPermissions = taskPermissionService.getByUserIdAndInstanceId(userId,taskId);
|
|
|
|
|
- if(taskPermissions.size() != 0) {
|
|
|
|
|
|
|
+ List<TaskPermission> taskPermissions = taskPermissionService.getByUserIdAndInstanceId(userId, taskId);
|
|
|
|
|
+ if (taskPermissions.size() != 0) {
|
|
|
return true;
|
|
return true;
|
|
|
- }else if(examService.getExamByIdAndParticipantIdIfPermited(taskId,userId)!=null){
|
|
|
|
|
|
|
+ } else if (examService.getExamByIdAndParticipantIdIfPermited(taskId, userId) != null) {
|
|
|
return true;
|
|
return true;
|
|
|
}
|
|
}
|
|
|
return false;
|
|
return false;
|
|
@@ -284,5 +292,25 @@ public class ExamLogicImpl extends BaseLogic implements ExamLogic {
|
|
|
examSchedulerService.clearAllSchedulers();
|
|
examSchedulerService.clearAllSchedulers();
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-
|
|
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public void exportExcelByExamId(HttpServletResponse response, Long examId) throws Exception {
|
|
|
|
|
+ response.setHeader("content-Type", "application/vnd.ms-excel");
|
|
|
|
|
+ // 下载文件的默认名称
|
|
|
|
|
+ try {
|
|
|
|
|
+ response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode("IptvAccountList", "UTF-8") + ".xls");
|
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
|
+ // TODO Auto-generated catch block
|
|
|
|
|
+ e.printStackTrace();
|
|
|
|
|
+ }
|
|
|
|
|
+ //编码
|
|
|
|
|
+ response.setCharacterEncoding("UTF-8");
|
|
|
|
|
+ List<AssignedTask2UserInfo> list = assignedTask2UserInfoService.getAssignedTaskUserInfoByExamId(examId);
|
|
|
|
|
+ Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams(), AssignedTask2UserInfo.class, list);
|
|
|
|
|
+ try {
|
|
|
|
|
+ workbook.write(response.getOutputStream());
|
|
|
|
|
+ } catch (IOException e) {
|
|
|
|
|
+ // TODO Auto-generated catch block
|
|
|
|
|
+ e.printStackTrace();
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|