From 3c64adaa06104e9b0fe537154fed1f241b6d188b Mon Sep 17 00:00:00 2001 From: hujunpeng Date: Wed, 26 Mar 2025 11:27:06 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A2=98=E5=BA=93=E5=88=97=E8=A1=A8=E4=BA=8C?= =?UTF-8?q?=E6=AC=A1=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ccic/safeliab/dao/QuestionMapper.java | 8 +++++ .../safeliab/service/QuestionService.java | 2 +- .../safeliab/service/QuestionServiceImpl.java | 24 +++++++++++++-- .../ccic/safeliab/web/QuestionController.java | 8 ++--- .../main/resources/mappers/QuestionMapper.xml | 30 +++++++++++++++---- 5 files changed, 58 insertions(+), 14 deletions(-) diff --git a/ccic-exam/src/main/java/com/ccic/safeliab/dao/QuestionMapper.java b/ccic-exam/src/main/java/com/ccic/safeliab/dao/QuestionMapper.java index 22a8849..1f15997 100644 --- a/ccic-exam/src/main/java/com/ccic/safeliab/dao/QuestionMapper.java +++ b/ccic-exam/src/main/java/com/ccic/safeliab/dao/QuestionMapper.java @@ -72,4 +72,12 @@ public interface QuestionMapper extends BaseMapper { */ List getListByPaperId(@Param("paperId") Long id); + /** + * 查询试题是否被引用 + * + * @param ids 试题ID + * @return 查询结果 + */ + int getQuestiongInExamSize(@Param("ids") List ids); + } diff --git a/ccic-exam/src/main/java/com/ccic/safeliab/service/QuestionService.java b/ccic-exam/src/main/java/com/ccic/safeliab/service/QuestionService.java index 025d940..e20349c 100644 --- a/ccic-exam/src/main/java/com/ccic/safeliab/service/QuestionService.java +++ b/ccic-exam/src/main/java/com/ccic/safeliab/service/QuestionService.java @@ -28,7 +28,7 @@ public interface QuestionService extends BaseService { * @param ids 试题ID * @return 删除结果 */ - boolean delQuestion(List ids); + Map delQuestion(List ids); /** * 添加试题 diff --git a/ccic-exam/src/main/java/com/ccic/safeliab/service/QuestionServiceImpl.java b/ccic-exam/src/main/java/com/ccic/safeliab/service/QuestionServiceImpl.java index 636b66b..6496ab8 100644 --- a/ccic-exam/src/main/java/com/ccic/safeliab/service/QuestionServiceImpl.java +++ b/ccic-exam/src/main/java/com/ccic/safeliab/service/QuestionServiceImpl.java @@ -41,8 +41,28 @@ public class QuestionServiceImpl extends BaseServiceImpl ids) { - return deleteLogic(ids); + public Map delQuestion(List ids) { + Map map = new HashMap<>(); + int size = baseMapper.getQuestiongInExamSize(ids); + if( size > 0 ) + { + map.put("success", "error"); + if (ids.size() > 1){ + map.put("message", "选中的试题中有" + size + "个已被引用,需删除引用的考试后方可删除"); + }else{ + map.put("message", "该试题已被引用,需删除引用的考试后方可删除"); + } + return map; + } + boolean deleteResult = deleteLogic(ids); + if (deleteResult) { + map.put("success", "true"); + map.put("message", "试题删除成功"); + } else { + map.put("success", "false"); + map.put("message", "试题删除失败"); + } + return map; } @Override diff --git a/ccic-exam/src/main/java/com/ccic/safeliab/web/QuestionController.java b/ccic-exam/src/main/java/com/ccic/safeliab/web/QuestionController.java index 7d4f413..f571866 100644 --- a/ccic-exam/src/main/java/com/ccic/safeliab/web/QuestionController.java +++ b/ccic-exam/src/main/java/com/ccic/safeliab/web/QuestionController.java @@ -41,12 +41,8 @@ public class QuestionController { */ @PostMapping("/delQuestion") public R delQuestion(@RequestBody List ids) { - boolean flag = questionService.delQuestion(ids); - if (flag) { - return R.ok(); - } else { - return R.error(); - } + Map map = questionService.delQuestion(ids); + return R.ok().data(map); } /** diff --git a/ccic-exam/src/main/resources/mappers/QuestionMapper.xml b/ccic-exam/src/main/resources/mappers/QuestionMapper.xml index 4a38553..032d36d 100644 --- a/ccic-exam/src/main/resources/mappers/QuestionMapper.xml +++ b/ccic-exam/src/main/resources/mappers/QuestionMapper.xml @@ -45,7 +45,7 @@ FROM ex_question_categories - is_deleted = '0' + is_deleted = 0 AND industry_id = #{industryId} @@ -68,7 +68,7 @@ FROM ex_question_categories - is_deleted = '0' + is_deleted = 0 AND industry_id = #{industryId} @@ -105,7 +105,7 @@ FROM ex_question_categories - is_deleted = '0' + is_deleted = 0 AND id = #{id} @@ -124,13 +124,33 @@ a.status, b.question_number FROM ex_question_categories a - LEFT JOIN ex_paper_questions b ON b.question_id = a.id AND b.is_deleted = '0' + LEFT JOIN ex_paper_questions b ON b.question_id = a.id AND b.is_deleted = 0 - a.is_deleted = '0' + a.is_deleted = 0 AND b.paper_id = #{paperId} ORDER BY b.question_number asc + \ No newline at end of file