题库管理和试卷管理代码提交

main
hujunpeng 4 months ago
parent d3f6fb7f51
commit 81dc613577
  1. 14
      ccic-exam/src/main/java/com/ccic/safeliab/dao/QuestionMapper.java
  2. 34
      ccic-exam/src/main/java/com/ccic/safeliab/service/QuestionService.java
  3. 53
      ccic-exam/src/main/java/com/ccic/safeliab/service/QuestionServiceImpl.java
  4. 20
      ccic-exam/src/main/java/com/ccic/safeliab/vo/InsQuestionVO.java
  5. 31
      ccic-exam/src/main/java/com/ccic/safeliab/web/QuestionController.java
  6. 2
      ccic-exam/src/main/resources/mappers/QuestionMapper.xml

@ -23,13 +23,13 @@ public interface QuestionMapper extends BaseMapper<QuestionCategories> {
QuestionCategories selectQuestionById(Integer questionId); QuestionCategories selectQuestionById(Integer questionId);
/** /**
* 查询当前页数据 * 查询试题
* *
* @param industryId 监管行业 * @param industryId 监管行业
* @param serviceTypeId 服务类型 * @param serviceTypeId 服务类型
* @param questionContent 题干条件 * @param questionContent 题干条件
* @param offset 偏移量 * @param offset 偏移量
* @param num 每页显示的记录 * @param num 每页数
* @return 当前页数据 * @return 当前页数据
*/ */
List<QuestionCategories> getList( List<QuestionCategories> getList(
@ -40,7 +40,7 @@ public interface QuestionMapper extends BaseMapper<QuestionCategories> {
@Param("num") int num); @Param("num") int num);
/** /**
* 查询总数量 * 查询试题总数量
* *
* @param industryId 监管行业 * @param industryId 监管行业
* @param serviceTypeId 服务类型 * @param serviceTypeId 服务类型
@ -60,10 +60,10 @@ public interface QuestionMapper extends BaseMapper<QuestionCategories> {
List<Industry> getIndustry(); List<Industry> getIndustry();
/** /**
* 查询当题目详情 * 题目详情
* *
* @param id 监管行业 * @param id 试题ID
* @return 详情 * @return 题详情
*/ */
QuestionCategories getDetail(@Param("id") Long id); QuestionCategories getQuestionDetail(@Param("id") Long id);
} }

@ -11,29 +11,22 @@ import java.util.Map;
@Service @Service
public interface QuestionService extends BaseService<QuestionCategories> { public interface QuestionService extends BaseService<QuestionCategories> {
/** /**
* 获取题库列表 * 查询试题
* @param page 页码 * @param page 页码
* @param num 每页数量 * @param num 数量
* @param entity 题库 * @param entity 题库entity
* @return 题库列表 * @return 查询结果
*/ */
Map<String, Object> getList(int page, int num, QuestionCategories entity); Map<String, Object> getList(int page, int num, QuestionCategories entity);
/**
* 根据主键删除题库记录
* @param id 题库记录的主键
* @return 删除操作是否成功
*/
boolean deleteQuestionById(Long id);
/** /**
* 根据主键批量删除题库记录 * 删除试题
* @param ids 题库记录的主键列表 * @param ids 试题ID
* @return 删除操作是否成功 * @return 删除结果
*/ */
boolean deleteQuestionListByIds(List<Long> ids); boolean delQuestion(List<Long> ids);
/** /**
* 添加试题 * 添加试题
@ -56,9 +49,10 @@ public interface QuestionService extends BaseService<QuestionCategories> {
List<Industry> getDictionary(); List<Industry> getDictionary();
/** /**
* 获取题库列表 * 题目详情
* @param id 题目ID *
* @return 题目详情 * @param id 试题ID
* @return 试题详情
*/ */
QuestionCategories getDetail(String id); QuestionCategories getQuestionDetail(String id);
} }

@ -7,7 +7,6 @@ import com.ccic.safeliab.vo.InsQuestionVO;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -37,14 +36,7 @@ public class QuestionServiceImpl extends BaseServiceImpl<QuestionMapper, Questio
} }
@Override @Override
public boolean deleteQuestionById(Long id) { public boolean delQuestion(List<Long> ids) {
List<Long> ids = new ArrayList<>();
ids.add(id);
return deleteLogic(ids);
}
@Override
public boolean deleteQuestionListByIds(List<Long> ids) {
return deleteLogic(ids); return deleteLogic(ids);
} }
@ -69,45 +61,36 @@ public class QuestionServiceImpl extends BaseServiceImpl<QuestionMapper, Questio
} }
@Override @Override
public QuestionCategories getDetail(String id){ public QuestionCategories getQuestionDetail(String id){
return baseMapper.getDetail(Long.valueOf(id)); return baseMapper.getQuestionDetail(Long.valueOf(id));
} }
/** /**
* VO 转换为实体类 * 将VO转换为实体类
* @param vo 试题 VO
* @return 试题实体类
*/ */
private QuestionCategories convertToEntity(InsQuestionVO vo) { private QuestionCategories convertToEntity(InsQuestionVO vo) {
QuestionCategories entity = new QuestionCategories(); QuestionCategories entity = new QuestionCategories();
// 赋值从父类继承的属性
entity.setId(vo.getId()); entity.setId(vo.getId());
entity.setQuestionTypes(vo.getQuestionTypes()); entity.setQuestionTypes(vo.getQuestionTypes());
entity.setIndustryId(vo.getIndustryId()); entity.setIndustryId(vo.getIndustryId());
entity.setServiceTypeId(vo.getServiceTypeId()); entity.setServiceTypeId(vo.getServiceTypeId());
entity.setQuestionContent(vo.getQuestionContent()); entity.setQuestionContent(vo.getQuestionContent());
entity.setAnswer(vo.getAnswer()); entity.setAnswer(vo.getAnswer());
StringBuilder optionsBuilder = new StringBuilder();
// 处理答题选项,拼接成字符串 if (vo.getOptionA()!= null) {
InsQuestionVO.AnswerOptions answerOptions = vo.getAnswerOptions(); optionsBuilder.append("A:").append(vo.getOptionA()).append(",");
if (answerOptions != null) { }
StringBuilder optionsBuilder = new StringBuilder(); if (vo.getOptionB() != null) {
if (answerOptions.A != null) { optionsBuilder.append("B:").append(vo.getOptionB()).append(",");
optionsBuilder.append("A:").append(answerOptions.A).append(","); }
} if (vo.getOptionC() != null) {
if (answerOptions.B != null) { optionsBuilder.append("C:").append(vo.getOptionC()).append(",");
optionsBuilder.append("B:").append(answerOptions.B).append(","); }
} if (vo.getOptionD() != null) {
if (answerOptions.C != null) { optionsBuilder.append("D:").append(vo.getOptionD());
optionsBuilder.append("C:").append(answerOptions.C).append(",");
}
if (answerOptions.D != null) {
optionsBuilder.append("D:").append(answerOptions.D);
}
String options = optionsBuilder.toString();
entity.setOptions(options);
} }
String options = optionsBuilder.toString();
entity.setOptions(options);
return entity; return entity;
} }
} }

@ -5,8 +5,7 @@ import lombok.Getter;
import lombok.Setter; import lombok.Setter;
/** /**
* 值对象VO用于在不同层之间传递题目相关数据 * vo 试题vo
* 该类的属性与数据库中题目表的字段相对应以满足数据传输需求
*/ */
@Getter @Getter
@Setter @Setter
@ -15,15 +14,14 @@ public class InsQuestionVO extends QuestionCategories {
private int num; private int num;
// 页码 // 页码
private int page; private int page;
// 答案 // 答案A
AnswerOptions answerOptions; public String optionA;
// 答案B
public static class AnswerOptions { public String optionB;
public String A; // 答案C
public String B; public String optionC;
public String C; // 答案D
public String D; public String optionD;
}
} }

@ -19,11 +19,11 @@ public class QuestionController {
private QuestionService questionService; private QuestionService questionService;
/** /**
* 获取题库 * 查询试题
* @param vo 题库对象VO * @param vo 试题vo
* @return 查询结果 * @return 查询结果
*/ */
@PostMapping("/list") @PostMapping("/getList")
public R list(@RequestBody InsQuestionVO vo) { public R list(@RequestBody InsQuestionVO vo) {
QuestionCategories entity = new QuestionCategories(); QuestionCategories entity = new QuestionCategories();
entity.setIndustryId(vo.getIndustryId()); entity.setIndustryId(vo.getIndustryId());
@ -34,21 +34,18 @@ public class QuestionController {
} }
/** /**
* 删除单个试题 * 删除试题
* @param ids 试题ID
* @return 删除结果
*/ */
@GetMapping("/delete") @PostMapping("/delQuestion")
public R delete(String id) {
boolean resultFlg = questionService.deleteQuestionById(Long.valueOf((id)));
return R.ok().data(resultFlg);
}
/**
* 删除多个试题
*/
@PostMapping("/deleteList")
public R deleteList(@RequestBody List<Long> ids) { public R deleteList(@RequestBody List<Long> ids) {
boolean resultFlg = questionService.deleteQuestionListByIds(ids); boolean flag = questionService.delQuestion(ids);
return R.ok().data(resultFlg); if(flag){
return R.ok();
}else{
return R.error();
}
} }
/** /**
@ -82,7 +79,7 @@ public class QuestionController {
*/ */
@GetMapping("/getDetail") @GetMapping("/getDetail")
public R getDetail(String id) { public R getDetail(String id) {
QuestionCategories data = questionService.getDetail(id); QuestionCategories data = questionService.getQuestionDetail(id);
return R.ok().data(data); return R.ok().data(data);
} }
} }

@ -68,7 +68,7 @@
from tbl_industry from tbl_industry
where status = 1 where status = 1
</select> </select>
<select id="getDetail" resultMap="QuestionCategoriesResultMap"> <select id="getQuestionDetail" resultMap="QuestionCategoriesResultMap">
SELECT SELECT
id, id,
question_types, question_types,

Loading…
Cancel
Save