From d3f6fb7f512973965d736793a2b04ba0d962f810 Mon Sep 17 00:00:00 2001 From: hujunpeng Date: Tue, 11 Mar 2025 17:38:17 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E9=A2=98=E5=BA=93=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E5=92=8C=E8=AF=95=E5=8D=B7=E7=AE=A1=E7=90=86=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ccic/safeliab/entity/PaperQuestion.java | 5 ++ .../ccic/safeliab/dao/ExamPaperMapper.java | 15 +++- .../safeliab/dao/PaperQuestionMapper.java | 24 +++++++ .../safeliab/service/ExamPaperService.java | 30 ++++---- .../service/ExamPaperServiceImpl.java | 70 +++++++++++++++---- .../service/PaperQuestionService.java | 34 +++++++++ .../service/PaperQuestionServiceImpl.java | 51 ++++++++++++++ .../safeliab/service/QuestionServiceImpl.java | 3 +- .../com/ccic/safeliab/vo/InsExamPaperVO.java | 4 ++ .../safeliab/web/ExamPaperController.java | 60 +++++++++------- .../ccic/safeliab/web/QuestionController.java | 9 --- .../resources/mappers/ExamPaperMapper.xml | 56 +++++++++++---- .../resources/mappers/PaperQuestionMapper.xml | 8 +++ 13 files changed, 287 insertions(+), 82 deletions(-) create mode 100644 ccic-exam/src/main/java/com/ccic/safeliab/dao/PaperQuestionMapper.java create mode 100644 ccic-exam/src/main/java/com/ccic/safeliab/service/PaperQuestionService.java create mode 100644 ccic-exam/src/main/java/com/ccic/safeliab/service/PaperQuestionServiceImpl.java create mode 100644 ccic-exam/src/main/resources/mappers/PaperQuestionMapper.xml diff --git a/ccic-entity/src/main/java/com/ccic/safeliab/entity/PaperQuestion.java b/ccic-entity/src/main/java/com/ccic/safeliab/entity/PaperQuestion.java index 7de3670..4102b49 100644 --- a/ccic-entity/src/main/java/com/ccic/safeliab/entity/PaperQuestion.java +++ b/ccic-entity/src/main/java/com/ccic/safeliab/entity/PaperQuestion.java @@ -40,4 +40,9 @@ public class PaperQuestion extends BaseEntity implements Serializable { * 题目 ID,外键关联题库管理表(ex_question_categories.id) */ private Long questionId; + + /** + * 题目编号 + */ + private Integer questionNumber; } \ No newline at end of file diff --git a/ccic-exam/src/main/java/com/ccic/safeliab/dao/ExamPaperMapper.java b/ccic-exam/src/main/java/com/ccic/safeliab/dao/ExamPaperMapper.java index b9a8943..3d5424f 100644 --- a/ccic-exam/src/main/java/com/ccic/safeliab/dao/ExamPaperMapper.java +++ b/ccic-exam/src/main/java/com/ccic/safeliab/dao/ExamPaperMapper.java @@ -43,13 +43,21 @@ public interface ExamPaperMapper extends BaseMapper { @Param("paperName") String paperName); /** - * 查询当题目详情 + * 试卷详情 * - * @param id 监管行业 - * @return 题目详情 + * @param id ID + * @return 试卷详情 */ ExamPapers getDetail(@Param("id") Long id); + /** + * 试卷详情(试题) + * + * @param id ID + * @return 试卷详情 + */ + List getQuestions(@Param("id") Long id); + /** * 随机获取题目 * @@ -60,4 +68,5 @@ public interface ExamPaperMapper extends BaseMapper { List getRandomQuestions( @Param("industryId") Long industryId, @Param("questionCount") Integer questionCount); + } diff --git a/ccic-exam/src/main/java/com/ccic/safeliab/dao/PaperQuestionMapper.java b/ccic-exam/src/main/java/com/ccic/safeliab/dao/PaperQuestionMapper.java new file mode 100644 index 0000000..d8079d2 --- /dev/null +++ b/ccic-exam/src/main/java/com/ccic/safeliab/dao/PaperQuestionMapper.java @@ -0,0 +1,24 @@ +package com.ccic.safeliab.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.ccic.safeliab.entity.PaperQuestion; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +/** + * Mapper 接口 + * + * @author Chill + */ +@Mapper +public interface PaperQuestionMapper extends BaseMapper { + + /** + * 删除试卷的所有试题 + * + * @param id 试卷id + * @return 删除件数 + */ + boolean deletePaperALlQuestion(@Param("id") Long id); + +} diff --git a/ccic-exam/src/main/java/com/ccic/safeliab/service/ExamPaperService.java b/ccic-exam/src/main/java/com/ccic/safeliab/service/ExamPaperService.java index 9cdd0dd..cf11f25 100644 --- a/ccic-exam/src/main/java/com/ccic/safeliab/service/ExamPaperService.java +++ b/ccic-exam/src/main/java/com/ccic/safeliab/service/ExamPaperService.java @@ -49,26 +49,12 @@ public interface ExamPaperService extends BaseService { */ boolean batchUpdatePaperStatus(List vos); - /** - * 添加试题 - * @param vo 试题 VO 列表 - * @return 添加是否成功 - */ - int add(List vo); - - /** - * 修改试题 - * @param vo 试题 VO 列表 - * @return 添加是否成功 - */ - boolean update(InsExamPaperVO vo); - /** * 获取试卷列表 * @param id 题目ID * @return 题目详情 */ - ExamPapers getDetail(String id); + Map getDetail(String id); /** * 随机获取题目 @@ -76,4 +62,18 @@ public interface ExamPaperService extends BaseService { * @return 试卷列表 */ List getRandomQuestions(ExamPapers entity); + + /** + * 添加试卷 + * @param vo 试卷 + * @return 添加是否成功 + */ + ExamPapers add(InsExamPaperVO vo); + + /** + * 修改试题 + * @param vo 试题 VO 列表 + * @return 添加是否成功 + */ + ExamPapers update(InsExamPaperVO vo); } diff --git a/ccic-exam/src/main/java/com/ccic/safeliab/service/ExamPaperServiceImpl.java b/ccic-exam/src/main/java/com/ccic/safeliab/service/ExamPaperServiceImpl.java index f84320d..a35ba51 100644 --- a/ccic-exam/src/main/java/com/ccic/safeliab/service/ExamPaperServiceImpl.java +++ b/ccic-exam/src/main/java/com/ccic/safeliab/service/ExamPaperServiceImpl.java @@ -4,6 +4,7 @@ import com.ccic.safeliab.dao.ExamPaperMapper; import com.ccic.safeliab.entity.*; import com.ccic.safeliab.support.BaseServiceImpl; import com.ccic.safeliab.vo.InsExamPaperVO; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -13,8 +14,12 @@ import java.util.List; import java.util.Map; @Service +@Transactional public class ExamPaperServiceImpl extends BaseServiceImpl implements ExamPaperService { + @Autowired + private PaperQuestionService paperQuestionService; + @Override public Map getList(int page,int num, ExamPapers entity) { int offset = (page - 1) * num; @@ -35,18 +40,33 @@ public class ExamPaperServiceImpl extends BaseServiceImpl ids = new ArrayList<>(); ids.add(id); - return deleteLogic(ids); + flag = deleteLogic(ids); + + if(flag){ + flag = paperQuestionService.delete(id); + } + return flag; } @Override public boolean deleteExamPaperListByIds(List ids) { - return deleteLogic(ids); + boolean flag = false; + flag = deleteLogic(ids); + if(flag){ + for(Long id : ids){ + flag = paperQuestionService.delete(id); + if(!flag){ + break; + } + } + } + return flag; } @Override - @Transactional public boolean updatePaperStatus(InsExamPaperVO vo) { ExamPapers entity = baseMapper.getDetail(vo.getId()); if(vo.getPaperStatus()==0){ @@ -58,7 +78,6 @@ public class ExamPaperServiceImpl extends BaseServiceImpl vos) { boolean flag = false; for(InsExamPaperVO vo : vos){ @@ -68,22 +87,49 @@ public class ExamPaperServiceImpl extends BaseServiceImpl vo) { - return 0; + public Map getDetail(String id){ + Map map = new HashMap<>(); + ExamPapers head = baseMapper.getDetail(Long.valueOf(id)); + List detail = baseMapper.getQuestions(Long.valueOf(id)); + map.put("head", head); + map.put("data", detail); + return map; } @Override - public boolean update(InsExamPaperVO vo) { - return true; + public List getRandomQuestions(ExamPapers entity) { + return baseMapper.getRandomQuestions(entity.getIndustryId(), entity.getQuestionCount()); } @Override - public ExamPapers getDetail(String id){ - return baseMapper.getDetail(Long.valueOf(id)); + public ExamPapers add(InsExamPaperVO vo){ + // 试卷 + ExamPapers examPapers = new ExamPapers(); + examPapers.setPaperName(vo.getPaperName()); + examPapers.setIndustryId(vo.getIndustryId()); + examPapers.setQuestionCount(vo.getQuestionCount()); + examPapers.setTotalScore(vo.getTotalScore()); + examPapers.setExamDuration(vo.getExamDuration()); + examPapers.setDurationType(vo.getDurationType()); + examPapers.setPaperContent(vo.getPaperContent()); + examPapers.setPaperStatus(1); + save(examPapers); + return examPapers; } @Override - public List getRandomQuestions(ExamPapers entity) { - return baseMapper.getRandomQuestions(entity.getIndustryId(), entity.getQuestionCount()); + public ExamPapers update(InsExamPaperVO vo) { + // 试卷 + ExamPapers examPapers = new ExamPapers(); + examPapers.setId(vo.getId()); + examPapers.setPaperName(vo.getPaperName()); + examPapers.setIndustryId(vo.getIndustryId()); + examPapers.setQuestionCount(vo.getQuestionCount()); + examPapers.setTotalScore(vo.getTotalScore()); + examPapers.setExamDuration(vo.getExamDuration()); + examPapers.setDurationType(vo.getDurationType()); + examPapers.setPaperContent(vo.getPaperContent()); + updateById(examPapers); + return examPapers; } } diff --git a/ccic-exam/src/main/java/com/ccic/safeliab/service/PaperQuestionService.java b/ccic-exam/src/main/java/com/ccic/safeliab/service/PaperQuestionService.java new file mode 100644 index 0000000..d55fced --- /dev/null +++ b/ccic-exam/src/main/java/com/ccic/safeliab/service/PaperQuestionService.java @@ -0,0 +1,34 @@ +package com.ccic.safeliab.service; + +import com.ccic.safeliab.entity.PaperQuestion; +import com.ccic.safeliab.support.BaseService; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +public interface PaperQuestionService extends BaseService { + + /** + * 添加试卷试题关系 + * @param paperID 试卷ID + * @param QuestionIds 题目ID集合 + * @return 添加是否成功 + */ + int add(Long paperID, List QuestionIds); + + /** + * 删除试卷试题关系 + * @param paperID 试卷ID + * @return 添加是否成功 + */ + boolean delete(Long paperID); + + /** + * 更新试卷试题关系 + * @param paperID 试卷ID + * @param QuestionIds 题目ID集合 + * @return 添加是否成功 + */ + int update(Long paperID, List QuestionIds); +} diff --git a/ccic-exam/src/main/java/com/ccic/safeliab/service/PaperQuestionServiceImpl.java b/ccic-exam/src/main/java/com/ccic/safeliab/service/PaperQuestionServiceImpl.java new file mode 100644 index 0000000..c236332 --- /dev/null +++ b/ccic-exam/src/main/java/com/ccic/safeliab/service/PaperQuestionServiceImpl.java @@ -0,0 +1,51 @@ +package com.ccic.safeliab.service; + +import com.ccic.safeliab.dao.PaperQuestionMapper; +import com.ccic.safeliab.entity.*; +import com.ccic.safeliab.support.BaseServiceImpl; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +@Service +@Transactional +public class PaperQuestionServiceImpl extends BaseServiceImpl implements PaperQuestionService { + + @Override + public int add(Long paperID, List QuestionIds){ + int number = 0; + for(String QuestionId : QuestionIds){ + number++; + PaperQuestion paperQuestion = new PaperQuestion(); + paperQuestion.setPaperId(paperID); + paperQuestion.setQuestionId(Long.valueOf(QuestionId)); + paperQuestion.setQuestionNumber(number); + save(paperQuestion); + + } + + return number; + } + + @Override + public boolean delete(Long paperID){ + return baseMapper.deletePaperALlQuestion(paperID); + } + + @Override + public int update(Long paperID, List QuestionIds){ + baseMapper.deletePaperALlQuestion(paperID); + int number = 0; + for(String QuestionId : QuestionIds){ + number++; + PaperQuestion paperQuestion = new PaperQuestion(); + paperQuestion.setPaperId(paperID); + paperQuestion.setQuestionId(Long.valueOf(QuestionId)); + paperQuestion.setQuestionNumber(number); + save(paperQuestion); + + } + return number; + } +} 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 b28f2be..35c3150 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 @@ -13,6 +13,7 @@ import java.util.List; import java.util.Map; @Service +@Transactional public class QuestionServiceImpl extends BaseServiceImpl implements QuestionService { @Override @@ -48,7 +49,6 @@ public class QuestionServiceImpl extends BaseServiceImpl vo) { int count =0; for(InsQuestionVO item :vo){ @@ -59,7 +59,6 @@ public class QuestionServiceImpl extends BaseServiceImpl questionIds; } diff --git a/ccic-exam/src/main/java/com/ccic/safeliab/web/ExamPaperController.java b/ccic-exam/src/main/java/com/ccic/safeliab/web/ExamPaperController.java index a25bac1..f6e5ec3 100644 --- a/ccic-exam/src/main/java/com/ccic/safeliab/web/ExamPaperController.java +++ b/ccic-exam/src/main/java/com/ccic/safeliab/web/ExamPaperController.java @@ -3,6 +3,7 @@ package com.ccic.safeliab.web; import com.ccic.safeliab.entity.ExamPapers; import com.ccic.safeliab.entity.QuestionCategories; import com.ccic.safeliab.service.ExamPaperService; +import com.ccic.safeliab.service.PaperQuestionService; import com.ccic.safeliab.util.R; import com.ccic.safeliab.vo.InsExamPaperVO; import org.springframework.beans.factory.annotation.Autowired; @@ -18,6 +19,9 @@ public class ExamPaperController { @Autowired private ExamPaperService examPaperService; + @Autowired + private PaperQuestionService paperQuestionService; + /** * 获取试卷 * @param vo 试卷对象(VO) @@ -37,8 +41,8 @@ public class ExamPaperController { */ @GetMapping("/delete") public R delete(String id) { - boolean resultFlg = examPaperService.deleteExamPaperById(Long.valueOf((id))); - return R.ok().data(resultFlg); + boolean flag = examPaperService.deleteExamPaperById(Long.valueOf((id))); + return R.ok().data(flag); } /** @@ -46,8 +50,8 @@ public class ExamPaperController { */ @PostMapping("/deleteList") public R deleteList(@RequestBody List ids) { - boolean resultFlg = examPaperService.deleteExamPaperListByIds(ids); - return R.ok().data(resultFlg); + boolean flag = examPaperService.deleteExamPaperListByIds(ids); + return R.ok().data(flag); } /** @@ -69,41 +73,43 @@ public class ExamPaperController { } /** - * 添加试卷 + * 随机获取试题 + * @param vo 题库对象(VO) + * @return 查询结果 */ - @PostMapping("/add") - public R add(@RequestBody List vo) { - return R.ok().data(examPaperService.add(vo)); + @PostMapping("/getRandomQuestions") + public R getRandomQuestions(@RequestBody InsExamPaperVO vo) { + ExamPapers entity = new ExamPapers(); + entity.setIndustryId(vo.getIndustryId()); + entity.setQuestionCount(vo.getQuestionCount()); + List data = examPaperService.getRandomQuestions(entity); + return R.ok().data(data); } /** - * 修改试卷 + * 试卷详情 */ - @PostMapping("/update") - public R add(@RequestBody InsExamPaperVO vo) { - return R.ok().data(examPaperService.update(vo)); + @GetMapping("/getDetail") + public R getDetail(String id) { + Map data = examPaperService.getDetail(id); + return R.ok().data(data); } /** - * 题目详情 + * 添加试卷 */ - @GetMapping("/getDetail") - public R getDetail(String id) { - ExamPapers data = examPaperService.getDetail(id); - return R.ok().data(data); + @PostMapping("/add") + public R add(@RequestBody InsExamPaperVO vo) { + ExamPapers examPapers = examPaperService.add(vo); + return R.ok().data(paperQuestionService.add(examPapers.getId(), vo.getQuestionIds())); } /** - * 随机获取试题 - * @param vo 题库对象(VO) - * @return 查询结果 + * 修改试卷 */ - @PostMapping("/getRandomQuestions") - public R getRandomQuestions(@RequestBody InsExamPaperVO vo) { - ExamPapers entity = new ExamPapers(); - entity.setIndustryId(vo.getIndustryId()); - entity.setQuestionCount(vo.getQuestionCount()); - List data = examPaperService.getRandomQuestions(entity); - return R.ok().data(data); + @PostMapping("/update") + public R update(@RequestBody InsExamPaperVO vo) { + ExamPapers examPapers =examPaperService.update(vo); + return R.ok().data(paperQuestionService.update(examPapers.getId(), vo.getQuestionIds())); } } 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 0a4aaee..d1a8973 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 @@ -67,15 +67,6 @@ public class QuestionController { return R.ok().data(questionService.update(vo)); } - /** - * 更新试题 - */ - @GetMapping("/update") - public boolean update(@RequestParam InsQuestionVO vo) { -// return questionService.updateQuestion(add); - return true; - } - /** * 行业查询 * @return 行业 diff --git a/ccic-exam/src/main/resources/mappers/ExamPaperMapper.xml b/ccic-exam/src/main/resources/mappers/ExamPaperMapper.xml index 904929d..879b20e 100644 --- a/ccic-exam/src/main/resources/mappers/ExamPaperMapper.xml +++ b/ccic-exam/src/main/resources/mappers/ExamPaperMapper.xml @@ -60,6 +60,25 @@ + - SELECT - id, - question_types, - industry_id, - service_type_id, - question_content, - answer, - options - FROM ex_question_categories + qc.id + , qc.question_types + , qc.industry_id + , qc.service_type_id + , qc.question_content + , qc.answer + , qc.options + FROM + ex_exam_papers ep + inner join ex_paper_questions pq + on pq.paper_id = ep.id + and pq.is_deleted = 0 + inner join ex_question_categories qc + on qc.id = pq.question_id + and qc.is_deleted = 0 - is_deleted = '0' - - AND industry_id = #{industryId} + ep.is_deleted = '0' + + AND ep.id = #{id} - ORDER BY RANDOM() - LIMIT #{questionCount}; + + DELETE FROM ex_paper_questions + WHERE paper_id = #{id} + diff --git a/ccic-exam/src/main/resources/mappers/PaperQuestionMapper.xml b/ccic-exam/src/main/resources/mappers/PaperQuestionMapper.xml new file mode 100644 index 0000000..cca45ba --- /dev/null +++ b/ccic-exam/src/main/resources/mappers/PaperQuestionMapper.xml @@ -0,0 +1,8 @@ + + + + + DELETE FROM ex_paper_questions + WHERE paper_id = #{id} + + From 81dc6135770d5496eb1ad67daea0960dbe97ee3f Mon Sep 17 00:00:00 2001 From: hujunpeng Date: Wed, 12 Mar 2025 17:32:43 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E9=A2=98=E5=BA=93=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E5=92=8C=E8=AF=95=E5=8D=B7=E7=AE=A1=E7=90=86=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ccic/safeliab/dao/QuestionMapper.java | 14 ++--- .../safeliab/service/QuestionService.java | 34 +++++------- .../safeliab/service/QuestionServiceImpl.java | 53 +++++++------------ .../com/ccic/safeliab/vo/InsQuestionVO.java | 20 ++++--- .../ccic/safeliab/web/QuestionController.java | 31 +++++------ .../main/resources/mappers/QuestionMapper.xml | 2 +- 6 files changed, 63 insertions(+), 91 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 d853c09..f27e16b 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 @@ -23,13 +23,13 @@ public interface QuestionMapper extends BaseMapper { QuestionCategories selectQuestionById(Integer questionId); /** - * 查询当前页数据 + * 查询试题 * * @param industryId 监管行业 * @param serviceTypeId 服务类型 * @param questionContent 题干条件 * @param offset 偏移量 - * @param num 每页显示的记录数 + * @param num 每页数量 * @return 当前页数据 */ List getList( @@ -40,7 +40,7 @@ public interface QuestionMapper extends BaseMapper { @Param("num") int num); /** - * 查询总数量 + * 查询试题总数量 * * @param industryId 监管行业 * @param serviceTypeId 服务类型 @@ -60,10 +60,10 @@ public interface QuestionMapper extends BaseMapper { List getIndustry(); /** - * 查询当题目详情 + * 题目详情 * - * @param id 监管行业 - * @return 题目详情 + * @param id 试题ID + * @return 试题详情 */ - QuestionCategories getDetail(@Param("id") Long id); + QuestionCategories getQuestionDetail(@Param("id") Long id); } 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 fcf89ff..e119ad2 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 @@ -11,29 +11,22 @@ import java.util.Map; @Service public interface QuestionService extends BaseService { + /** - * 获取题库列表 + * 查询试题 * @param page 页码 - * @param num 每页数量 - * @param entity 题库表 - * @return 题库列表 + * @param num 数量 + * @param entity 题库entity + * @return 查询结果 */ Map getList(int page, int num, QuestionCategories entity); - - /** - * 根据主键删除题库记录 - * @param id 题库记录的主键 - * @return 删除操作是否成功 - */ - boolean deleteQuestionById(Long id); - /** - * 根据主键批量删除题库记录 - * @param ids 题库记录的主键列表 - * @return 删除操作是否成功 + * 删除试题 + * @param ids 试题ID + * @return 删除结果 */ - boolean deleteQuestionListByIds(List ids); + boolean delQuestion(List ids); /** * 添加试题 @@ -56,9 +49,10 @@ public interface QuestionService extends BaseService { List getDictionary(); /** - * 获取题库列表 - * @param id 题目ID - * @return 题目详情 + * 题目详情 + * + * @param id 试题ID + * @return 试题详情 */ - QuestionCategories getDetail(String id); + QuestionCategories getQuestionDetail(String id); } 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 35c3150..925869e 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 @@ -7,7 +7,6 @@ import com.ccic.safeliab.vo.InsQuestionVO; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -37,14 +36,7 @@ public class QuestionServiceImpl extends BaseServiceImpl ids = new ArrayList<>(); - ids.add(id); - return deleteLogic(ids); - } - - @Override - public boolean deleteQuestionListByIds(List ids) { + public boolean delQuestion(List ids) { return deleteLogic(ids); } @@ -69,45 +61,36 @@ public class QuestionServiceImpl extends BaseServiceImpl ids) { - boolean resultFlg = questionService.deleteQuestionListByIds(ids); - return R.ok().data(resultFlg); + boolean flag = questionService.delQuestion(ids); + if(flag){ + return R.ok(); + }else{ + return R.error(); + } } /** @@ -82,7 +79,7 @@ public class QuestionController { */ @GetMapping("/getDetail") public R getDetail(String id) { - QuestionCategories data = questionService.getDetail(id); + QuestionCategories data = questionService.getQuestionDetail(id); return R.ok().data(data); } } diff --git a/ccic-exam/src/main/resources/mappers/QuestionMapper.xml b/ccic-exam/src/main/resources/mappers/QuestionMapper.xml index 7c64868..31bae1e 100644 --- a/ccic-exam/src/main/resources/mappers/QuestionMapper.xml +++ b/ccic-exam/src/main/resources/mappers/QuestionMapper.xml @@ -68,7 +68,7 @@ from tbl_industry where status = 1 - SELECT id, question_types, From 59624a3f32570ba5db7feb0d497936aa94a29d4c Mon Sep 17 00:00:00 2001 From: hujunpeng Date: Thu, 13 Mar 2025 17:46:21 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E9=A2=98=E5=BA=93=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E5=92=8C=E8=AF=95=E5=8D=B7=E7=AE=A1=E7=90=86=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ccic/safeliab/dao/QuestionMapper.java | 35 +++++------ .../safeliab/service/QuestionService.java | 37 +++++++----- .../safeliab/service/QuestionServiceImpl.java | 47 +++++++++------ .../ccic/safeliab/web/QuestionController.java | 60 ++++++++++++------- .../main/resources/mappers/QuestionMapper.xml | 41 +++++++------ 5 files changed, 127 insertions(+), 93 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 f27e16b..3f404b4 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 @@ -9,11 +9,6 @@ import org.apache.ibatis.annotations.Param; import java.util.List; -/** - * Mapper 接口 - * - * @author Chill - */ @Mapper public interface QuestionMapper extends BaseMapper { @@ -25,11 +20,11 @@ public interface QuestionMapper extends BaseMapper { /** * 查询试题 * - * @param industryId 监管行业 - * @param serviceTypeId 服务类型 + * @param industryId 监管行业 + * @param serviceTypeId 服务类型 * @param questionContent 题干条件 - * @param offset 偏移量 - * @param num 每页数量 + * @param offset 偏移量 + * @param num 每页数量 * @return 当前页数据 */ List getList( @@ -37,33 +32,35 @@ public interface QuestionMapper extends BaseMapper { @Param("serviceTypeId") Long serviceTypeId, @Param("questionContent") String questionContent, @Param("offset") int offset, - @Param("num") int num); + @Param("num") int num + ); /** - * 查询试题总数量 + * 查询试题数量 * - * @param industryId 监管行业 - * @param serviceTypeId 服务类型 + * @param industryId 监管行业 + * @param serviceTypeId 服务类型 * @param questionContent 题干条件 - * @return 总数量 + * @return 试题数量 */ int getListSize( @Param("industryId") Long industryId, @Param("serviceTypeId") Long serviceTypeId, - @Param("questionContent") String questionContent); + @Param("questionContent") String questionContent + ); /** - * 获取行业 + * 获取字典数据 * - * @return 行业 + * @return 字典数据 */ List getIndustry(); /** - * 题目详情 + * 获取试题详情 * * @param id 试题ID * @return 试题详情 */ QuestionCategories getQuestionDetail(@Param("id") Long id); -} +} \ No newline at end of file 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 e119ad2..025d940 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 @@ -14,8 +14,9 @@ public interface QuestionService extends BaseService { /** * 查询试题 - * @param page 页码 - * @param num 数量 + * + * @param page 页码 + * @param num 数量 * @param entity 题库entity * @return 查询结果 */ @@ -23,6 +24,7 @@ public interface QuestionService extends BaseService { /** * 删除试题 + * * @param ids 试题ID * @return 删除结果 */ @@ -30,29 +32,32 @@ public interface QuestionService extends BaseService { /** * 添加试题 - * @param vo 试题 VO 列表 - * @return 添加是否成功 + * + * @param vo 试题vo + * @return 添加结果 */ - int add(List vo); + boolean addQuestion(List vo); /** * 修改试题 - * @param vo 试题 VO 列表 - * @return 添加是否成功 - */ - boolean update(InsQuestionVO vo); - - /** - * 获取行业 - * @return 行业 + * + * @param vo 试题vo + * @return 修改结果 */ - List getDictionary(); + boolean editQuestion(InsQuestionVO vo); /** - * 题目详情 + * 获取试题详情 * * @param id 试题ID * @return 试题详情 */ QuestionCategories getQuestionDetail(String id); -} + + /** + * 监管行业字典 + * + * @return 字典数据 + */ + List findDictionary(); +} \ No newline at end of file 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 925869e..68af13a 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 @@ -16,22 +16,27 @@ import java.util.Map; public class QuestionServiceImpl extends BaseServiceImpl implements QuestionService { @Override - public Map getList(int page,int num, QuestionCategories entity) { + public Map getList(int page, int num, QuestionCategories entity) { int offset = (page - 1) * num; Map map = new HashMap<>(); + List data = baseMapper.getList( entity.getIndustryId(), entity.getServiceTypeId(), entity.getQuestionContent(), offset, - num); + num + ); - int total = baseMapper.getListSize( + int total = baseMapper.getListSize( entity.getIndustryId(), entity.getServiceTypeId(), - entity.getQuestionContent()); + entity.getQuestionContent() + ); + map.put("data", data); map.put("total", total); + return map; } @@ -41,56 +46,60 @@ public class QuestionServiceImpl extends BaseServiceImpl vo) { - int count =0; - for(InsQuestionVO item :vo){ + public boolean addQuestion(List vo) { + int count = 0; + for (InsQuestionVO item : vo) { save(convertToEntity(item)); - count ++; + count++; } - return count; + return count > 0; } @Override - public boolean update(InsQuestionVO vo) { + public boolean editQuestion(InsQuestionVO vo) { return updateById(convertToEntity(vo)); } @Override - public List getDictionary() { - return baseMapper.getIndustry(); + public QuestionCategories getQuestionDetail(String id) { + return baseMapper.getQuestionDetail(Long.valueOf(id)); } @Override - public QuestionCategories getQuestionDetail(String id){ - return baseMapper.getQuestionDetail(Long.valueOf(id)); + public List findDictionary() { + return baseMapper.getIndustry(); } /** - * 将VO转换为实体类 + * 将VO转换为Entity */ private QuestionCategories convertToEntity(InsQuestionVO vo) { QuestionCategories entity = new QuestionCategories(); + entity.setId(vo.getId()); entity.setQuestionTypes(vo.getQuestionTypes()); entity.setIndustryId(vo.getIndustryId()); entity.setServiceTypeId(vo.getServiceTypeId()); entity.setQuestionContent(vo.getQuestionContent()); entity.setAnswer(vo.getAnswer()); + StringBuilder optionsBuilder = new StringBuilder(); if (vo.getOptionA()!= null) { optionsBuilder.append("A:").append(vo.getOptionA()).append(","); } - if (vo.getOptionB() != null) { + if (vo.getOptionB()!= null) { optionsBuilder.append("B:").append(vo.getOptionB()).append(","); } - if (vo.getOptionC() != null) { + if (vo.getOptionC()!= null) { optionsBuilder.append("C:").append(vo.getOptionC()).append(","); } - if (vo.getOptionD() != null) { + if (vo.getOptionD()!= null) { optionsBuilder.append("D:").append(vo.getOptionD()); } + String options = optionsBuilder.toString(); entity.setOptions(options); + return entity; } -} +} \ No newline at end of file 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 d07da76..79ec603 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 @@ -24,7 +24,7 @@ public class QuestionController { * @return 查询结果 */ @PostMapping("/getList") - public R list(@RequestBody InsQuestionVO vo) { + public R getList(@RequestBody InsQuestionVO vo) { QuestionCategories entity = new QuestionCategories(); entity.setIndustryId(vo.getIndustryId()); entity.setServiceTypeId(vo.getServiceTypeId()); @@ -39,47 +39,63 @@ public class QuestionController { * @return 删除结果 */ @PostMapping("/delQuestion") - public R deleteList(@RequestBody List ids) { + public R delQuestion(@RequestBody List ids) { boolean flag = questionService.delQuestion(ids); - if(flag){ + if (flag) { return R.ok(); - }else{ + } else { return R.error(); } } /** * 添加试题 + * @param vo 试题vo + * @return 添加结果 */ - @PostMapping("/add") - public R add(@RequestBody List vo) { - return R.ok().data(questionService.add(vo)); + @PostMapping("/addQuestion") + public R addQuestion(@RequestBody List vo) { + boolean flag = questionService.addQuestion(vo); + if (flag) { + return R.ok(); + } else { + return R.error(); + } } /** * 修改试题 + * @param vo 试题vo + * @return 修改结果 */ - @PostMapping("/update") - public R add(@RequestBody InsQuestionVO vo) { - return R.ok().data(questionService.update(vo)); + @PostMapping("/editQuestion") + public R editQuestion(@RequestBody InsQuestionVO vo) { + boolean flag = questionService.editQuestion(vo); + if (flag) { + return R.ok(); + } else { + return R.error(); + } } /** - * 行业查询 - * @return 行业 + * 获取试题详情 + * @param id 试题ID + * @return 试题详情 */ - @GetMapping("/findIndustry") - public R findIndustry() { - List tree = questionService.getDictionary(); - return R.ok().data(tree); + @GetMapping("/getQuestionDetail") + public R getQuestionDetail(String id) { + QuestionCategories data = questionService.getQuestionDetail(id); + return R.ok().data(data); } /** - * 题目详情 + * 查询字典数据 + * @return 字典数据 */ - @GetMapping("/getDetail") - public R getDetail(String id) { - QuestionCategories data = questionService.getQuestionDetail(id); - return R.ok().data(data); + @GetMapping("/findIndustry") + public R findIndustry() { + List tree = questionService.findDictionary(); + return R.ok().data(tree); } -} +} \ No newline at end of file diff --git a/ccic-exam/src/main/resources/mappers/QuestionMapper.xml b/ccic-exam/src/main/resources/mappers/QuestionMapper.xml index 31bae1e..fe8bb98 100644 --- a/ccic-exam/src/main/resources/mappers/QuestionMapper.xml +++ b/ccic-exam/src/main/resources/mappers/QuestionMapper.xml @@ -1,22 +1,25 @@ + - - + + + - - - - - - - - - + + + + + + + + + + + + + - + + \ No newline at end of file