xiatian 1 anno fa
parent
commit
0247035155

+ 24 - 0
src/main/java/cn/com/qmth/am/controller/AdminController.java

@@ -141,6 +141,30 @@ public class AdminController {
 			}
 		}
 	}
+	
+	@ApiOperation(value = "删除数据")
+	@RequestMapping(value = "clear", method = RequestMethod.GET)
+	public String clear(@RequestParam Long examId,@RequestParam(required = false) String subjectCode) {
+		boolean lock1 = concurrentService.getReadWriteLock(LockType.AI_MARKING.name()).writeLock().tryLock();
+		if(!lock1) {
+			return "删除失败,有任务正在处理,请稍后 再试";
+		}
+		boolean lock2 = concurrentService.getReadWriteLock(LockType.OCR.name()).writeLock().tryLock();
+		if(!lock2) {
+			return "删除失败,有任务正在处理,请稍后 再试";
+		}
+		try {
+			studentService.clear(examId, subjectCode);
+			return "删除成功";
+		} finally {
+			if (lock2) {
+				concurrentService.getReadWriteLock(LockType.OCR.name()).writeLock().unlock();
+			}
+			if (lock1) {
+				concurrentService.getReadWriteLock(LockType.AI_MARKING.name()).writeLock().unlock();
+			}
+		}
+	}
 
 	private void returnJson(String body, HttpServletResponse response) {
 		response.setContentType("application/json;charset=utf-8");

+ 2 - 0
src/main/java/cn/com/qmth/am/service/QuestionService.java

@@ -18,4 +18,6 @@ public interface QuestionService  extends IService<QuestionEntity> {
 	public ImportResult disposeFile(InputStream inputStream);
 
 	List<QuestionEntity> findByExamId(Long examId);
+
+	void removeBy(Long examId, String subjectCode);
 }

+ 2 - 0
src/main/java/cn/com/qmth/am/service/StudentService.java

@@ -38,5 +38,7 @@ public interface StudentService  extends IService<StudentEntity> {
 
 	void reset(Long examId, String subjectCode);
 
+	void clear(Long examId, String subjectCode);
+
 
 }

+ 12 - 0
src/main/java/cn/com/qmth/am/service/impl/QuestionServiceImpl.java

@@ -398,4 +398,16 @@ public class QuestionServiceImpl extends ServiceImpl<QuestionDao, QuestionEntity
 		return this.list(wrapper);
 	}
 
+	@Transactional
+	@Override
+	public void removeBy(Long examId, String subjectCode) {
+		QueryWrapper<QuestionEntity> wrapper = new QueryWrapper<>();
+		LambdaQueryWrapper<QuestionEntity> lw = wrapper.lambda();
+		if(subjectCode!=null) {
+			lw.eq(QuestionEntity::getSubjectCode, subjectCode);
+		}
+		lw.eq(QuestionEntity::getExamId, examId);
+		this.remove(wrapper);
+	}
+
 }

+ 17 - 0
src/main/java/cn/com/qmth/am/service/impl/StudentServiceImpl.java

@@ -42,6 +42,7 @@ import cn.com.qmth.am.entity.StudentEntity;
 import cn.com.qmth.am.entity.StudentScoreEntity;
 import cn.com.qmth.am.enums.DataStatus;
 import cn.com.qmth.am.enums.ImportFileName;
+import cn.com.qmth.am.service.QuestionService;
 import cn.com.qmth.am.service.StudentScoreService;
 import cn.com.qmth.am.service.StudentService;
 
@@ -55,6 +56,8 @@ public class StudentServiceImpl extends ServiceImpl<StudentDao, StudentEntity> i
 	private StudentService studentService;
 	@Autowired
 	private StudentScoreService studentScoreService;
+	@Autowired
+	private QuestionService questionService;
 
 	@Override
 	public void importStudent() {
@@ -352,4 +355,18 @@ public class StudentServiceImpl extends ServiceImpl<StudentDao, StudentEntity> i
 		lw.eq(StudentEntity::getExamId, examId);
 		this.update(wrapper);
 	}
+
+	@Transactional
+	@Override
+	public void clear(Long examId, String subjectCode) {
+		studentScoreService.removeBy(examId,subjectCode);
+		questionService.removeBy(examId,subjectCode);
+		QueryWrapper<StudentEntity> wrapper = new QueryWrapper<>();
+		LambdaQueryWrapper<StudentEntity> lw = wrapper.lambda();
+		if(subjectCode!=null) {
+			lw.eq(StudentEntity::getSubjectCode, subjectCode);
+		}
+		lw.eq(StudentEntity::getExamId, examId);
+		this.remove(wrapper);
+	}
 }