From d5f80c24adbef34f8e66cedb46a72a6395134445 Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期二, 14 五月 2024 15:09:28 +0800
Subject: [PATCH] 题目练习
---
src/main/java/com/mindskip/xzs/service/QuestionService.java | 8 +
src/main/java/com/mindskip/xzs/repository/QuestionMapper.java | 4
src/main/resources/mapper/QuestionMapper.xml | 19 +++
src/main/java/com/mindskip/xzs/controller/student/QuestionController.java | 10 ++
src/main/java/com/mindskip/xzs/domain/SelfPractice.java | 7 -
src/main/java/com/mindskip/xzs/domain/vo/SubjectQuestionVO.java | 31 ++++++
src/main/java/com/mindskip/xzs/domain/enums/PracticeQuestionTypeEnum.java | 44 ++++++++
src/main/java/com/mindskip/xzs/domain/vo/SelfPracticeVO.java | 10 -
src/main/java/com/mindskip/xzs/service/impl/QuestionServiceImpl.java | 37 +++++++
src/main/resources/mapper/SubjectMapper.xml | 4
src/main/java/com/mindskip/xzs/domain/vo/QuestionContentVO.java | 3
src/main/java/com/mindskip/xzs/service/impl/SelfPracticeServiceImpl.java | 50 ++++++---
src/main/java/com/mindskip/xzs/repository/SubjectMapper.java | 2
src/main/resources/mapper/SelfPracticeMapper.xml | 10 -
src/main/resources/mapper/QuestionSubjectMapper.xml | 32 ++++++
src/main/java/com/mindskip/xzs/repository/QuestionSubjectMapper.java | 9 +
16 files changed, 245 insertions(+), 35 deletions(-)
diff --git a/src/main/java/com/mindskip/xzs/controller/student/QuestionController.java b/src/main/java/com/mindskip/xzs/controller/student/QuestionController.java
index 250c05a..97171b3 100644
--- a/src/main/java/com/mindskip/xzs/controller/student/QuestionController.java
+++ b/src/main/java/com/mindskip/xzs/controller/student/QuestionController.java
@@ -38,4 +38,14 @@
return RestResponse.ok(vm);
}
+ @GetMapping("/{id}")
+ public RestResponse getById(@PathVariable("id") Integer id) {
+ return questionService.selectContentById(id);
+ }
+
+ @GetMapping("/answer/{id}")
+ public RestResponse getAnswer(@PathVariable("id") Integer id) {
+ return questionService.getAnswer(id);
+ }
+
}
diff --git a/src/main/java/com/mindskip/xzs/domain/SelfPractice.java b/src/main/java/com/mindskip/xzs/domain/SelfPractice.java
index a7fda38..8c991f8 100644
--- a/src/main/java/com/mindskip/xzs/domain/SelfPractice.java
+++ b/src/main/java/com/mindskip/xzs/domain/SelfPractice.java
@@ -21,9 +21,6 @@
/** 澶囨敞 */
private String remark;
- /** 棰樼洰鏁伴噺 */
- private Integer questionNum;
-
/** 缁冧範绫诲瀷 */
private String practiceType;
@@ -42,7 +39,7 @@
/** 宸插仛棰樻暟 */
private Integer doNum;
- /** 棰樼洰ID JSON */
- private String questionIds;
+ /** 棰樼洰绫诲瀷 */
+ private String questionType;
}
diff --git a/src/main/java/com/mindskip/xzs/domain/enums/PracticeQuestionTypeEnum.java b/src/main/java/com/mindskip/xzs/domain/enums/PracticeQuestionTypeEnum.java
new file mode 100644
index 0000000..c18d5fb
--- /dev/null
+++ b/src/main/java/com/mindskip/xzs/domain/enums/PracticeQuestionTypeEnum.java
@@ -0,0 +1,44 @@
+package com.mindskip.xzs.domain.enums;
+
+import lombok.Getter;
+
+/**
+ * @author锛歺p
+ * @date锛�2024/5/14 9:16
+ */
+@Getter
+public enum PracticeQuestionTypeEnum {
+
+ ALL("all", -99,"涓嶉檺绫诲瀷"),
+ SINGLE("single", 1,"鍗曢��"),
+ MULTIPLE("multiple", 2,"澶氶��"),
+ JUDGE("judge", 3,"鍒ゆ柇"),
+ ;
+
+
+ private final String value;
+ /** 棰樼洰琛ㄤ腑鐨勫�� */
+ private final Integer dataBaseValue;
+ private final String desc;
+
+ PracticeQuestionTypeEnum(String value, Integer dataBaseValue, String desc) {
+ this.value = value;
+ this.dataBaseValue = dataBaseValue;
+ this.desc = desc;
+ }
+
+ /**
+ * 鏍规嵁鍊艰幏鍙栨暟鎹簱鍊�
+ *
+ * @param value
+ * @return
+ */
+ public static Integer getDataBaseValueByValue(String value) {
+ for (PracticeQuestionTypeEnum practiceQuestionTypeEnum : PracticeQuestionTypeEnum.values()) {
+ if (practiceQuestionTypeEnum.getValue().equals(value)) {
+ return practiceQuestionTypeEnum.dataBaseValue;
+ }
+ }
+ return -1;
+ }
+}
diff --git a/src/main/java/com/mindskip/xzs/domain/vo/QuestionContentVO.java b/src/main/java/com/mindskip/xzs/domain/vo/QuestionContentVO.java
index c77409c..8628093 100644
--- a/src/main/java/com/mindskip/xzs/domain/vo/QuestionContentVO.java
+++ b/src/main/java/com/mindskip/xzs/domain/vo/QuestionContentVO.java
@@ -17,6 +17,9 @@
/** 瑙f瀽 */
private String analyze;
+ /** 绛旀 */
+ private String correct;
+
/** 閫夐」 */
private List<OptionItem> questionItemObjects;
diff --git a/src/main/java/com/mindskip/xzs/domain/vo/SelfPracticeVO.java b/src/main/java/com/mindskip/xzs/domain/vo/SelfPracticeVO.java
index ea47da3..79ca623 100644
--- a/src/main/java/com/mindskip/xzs/domain/vo/SelfPracticeVO.java
+++ b/src/main/java/com/mindskip/xzs/domain/vo/SelfPracticeVO.java
@@ -37,6 +37,10 @@
@NotBlank(message = "璇烽�夋嫨缁冧範绫诲瀷")
private String practiceType;
+ /** 棰樺瀷 */
+ @NotBlank(message = "璇烽�夋嫨缁冧範棰樺瀷")
+ private String questionType;
+
/** 鍒涘缓鏃堕棿 */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
@@ -50,12 +54,6 @@
/** 鍋氶鎬绘暟 */
private Integer totalQuestionNum;
-
- /** 棰樼洰鎬绘暟 */
- @NotBlank(message = "棰樼洰鏁伴噺涓嶈兘涓虹┖")
- private Integer questionNum;
-
- private String questionIds;
private Integer pageSize = 10;
diff --git a/src/main/java/com/mindskip/xzs/domain/vo/SubjectQuestionVO.java b/src/main/java/com/mindskip/xzs/domain/vo/SubjectQuestionVO.java
new file mode 100644
index 0000000..a7b7936
--- /dev/null
+++ b/src/main/java/com/mindskip/xzs/domain/vo/SubjectQuestionVO.java
@@ -0,0 +1,31 @@
+package com.mindskip.xzs.domain.vo;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author锛歺p
+ * @date锛�2024/5/14 9:50
+ */
+@Data
+public class SubjectQuestionVO {
+
+ private Integer subjectId;
+
+ private String subjectName;
+
+ private List<Integer> questionIds;
+
+
+ @Data
+ public static class QuestionPractice {
+
+ private Integer questionId;
+
+ /** 鏄惁鍋氳繃锛�0娌℃湁 1鍋氫簡 */
+ private Integer doIt;
+
+ }
+
+}
diff --git a/src/main/java/com/mindskip/xzs/repository/QuestionMapper.java b/src/main/java/com/mindskip/xzs/repository/QuestionMapper.java
index ff26145..bd70910 100644
--- a/src/main/java/com/mindskip/xzs/repository/QuestionMapper.java
+++ b/src/main/java/com/mindskip/xzs/repository/QuestionMapper.java
@@ -31,4 +31,8 @@
List<QuestionImportVO> export(@Param("query") QuestionExportVO query);
List<QuestionPageStudentResponseVM> selectQuestion(QuestionPageStudentRequestVM model);
+
+ QuestionVO selectContentById(Integer id);
+
+ String getAnswer(Integer id);
}
diff --git a/src/main/java/com/mindskip/xzs/repository/QuestionSubjectMapper.java b/src/main/java/com/mindskip/xzs/repository/QuestionSubjectMapper.java
index bdb4835..771188c 100644
--- a/src/main/java/com/mindskip/xzs/repository/QuestionSubjectMapper.java
+++ b/src/main/java/com/mindskip/xzs/repository/QuestionSubjectMapper.java
@@ -36,4 +36,13 @@
/** 闅忔満棰樼洰 */
List<QuestionVO> getRandomQuestionId(@Param("subjectIds") List<Integer> subjectIds, @Param("questionNum") Integer questionNum);
+
+ /** 鏌ヨ棰樼洰ID锛屾牴鎹鐩甶ds */
+ List<Integer> questionsBySubjectIds(@Param("subjectIds") List<Integer> subjectIds);
+
+ /** 鏌ヨ棰樼洰ID鏍规嵁璇剧洰id */
+ List<Integer> questionsBySubjectId(Integer subjectId);
+
+ /** 鏍规嵁璇剧洰鍜岄鍨嬫煡璇㈤鐩甀D */
+ List<Integer> questionsBySubjectIdAndQuestionType(@Param("subjectId") Integer subjectId, @Param("questionType") Integer questionType);
}
diff --git a/src/main/java/com/mindskip/xzs/repository/SubjectMapper.java b/src/main/java/com/mindskip/xzs/repository/SubjectMapper.java
index 7ea63e0..d72b316 100644
--- a/src/main/java/com/mindskip/xzs/repository/SubjectMapper.java
+++ b/src/main/java/com/mindskip/xzs/repository/SubjectMapper.java
@@ -23,4 +23,6 @@
List<Subject> selectByIds(@Param("ids") Integer[] ids);
List<String> selectSubjectName(@Param("ids") List<Integer> ids);
+
+ String selectSubjectNameById(Integer id);
}
diff --git a/src/main/java/com/mindskip/xzs/service/QuestionService.java b/src/main/java/com/mindskip/xzs/service/QuestionService.java
index 63465ca..b1318c4 100644
--- a/src/main/java/com/mindskip/xzs/service/QuestionService.java
+++ b/src/main/java/com/mindskip/xzs/service/QuestionService.java
@@ -1,10 +1,12 @@
package com.mindskip.xzs.service;
import com.github.pagehelper.PageInfo;
+import com.mindskip.xzs.base.RestResponse;
import com.mindskip.xzs.domain.Question;
import com.mindskip.xzs.viewmodel.admin.question.ExamQuestionVO;
import com.mindskip.xzs.viewmodel.admin.question.QuestionEditRequestVM;
import com.mindskip.xzs.viewmodel.admin.question.QuestionPageRequestVM;
+import com.mindskip.xzs.viewmodel.student.question.answer.QuestionAnswerVO;
import com.mindskip.xzs.viewmodel.student.question.answer.QuestionPageStudentRequestVM;
import com.mindskip.xzs.viewmodel.student.question.answer.QuestionPageStudentResponseVM;
import com.mindskip.xzs.vo.QuestionExportVO;
@@ -43,4 +45,10 @@
List<QuestionImportVO> export(QuestionExportVO query);
PageInfo<QuestionPageStudentResponseVM> selectQuestion(QuestionPageStudentRequestVM model);
+
+ /** 鏌ュ嚭棰樼洰涓讳綋鍐呭 */
+ RestResponse selectContentById(Integer id);
+
+ /** 鑾峰彇棰樼洰绛旀銆佽В鏋� */
+ RestResponse getAnswer(Integer id);
}
diff --git a/src/main/java/com/mindskip/xzs/service/impl/QuestionServiceImpl.java b/src/main/java/com/mindskip/xzs/service/impl/QuestionServiceImpl.java
index ff336aa..8ff5b7e 100644
--- a/src/main/java/com/mindskip/xzs/service/impl/QuestionServiceImpl.java
+++ b/src/main/java/com/mindskip/xzs/service/impl/QuestionServiceImpl.java
@@ -1,5 +1,7 @@
package com.mindskip.xzs.service.impl;
+import com.alibaba.fastjson.JSON;
+import com.mindskip.xzs.base.RestResponse;
import com.mindskip.xzs.domain.QuestionSubject;
import com.mindskip.xzs.domain.other.KeyValue;
import com.mindskip.xzs.domain.Question;
@@ -8,6 +10,8 @@
import com.mindskip.xzs.domain.enums.QuestionTypeEnum;
import com.mindskip.xzs.domain.question.QuestionItemObject;
import com.mindskip.xzs.domain.question.QuestionObject;
+import com.mindskip.xzs.domain.vo.QuestionContentVO;
+import com.mindskip.xzs.domain.vo.QuestionVO;
import com.mindskip.xzs.repository.QuestionMapper;
import com.mindskip.xzs.repository.SubjectMapper;
import com.mindskip.xzs.service.QuestionService;
@@ -30,10 +34,12 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.StringUtils;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
+import java.util.Objects;
import java.util.stream.Collectors;
@Service
@@ -265,4 +271,35 @@
).collect(Collectors.toList())
);
}
+
+ @Override
+ public RestResponse selectContentById(Integer id) {
+ QuestionVO vo = questionMapper.selectContentById(id);
+ jsonQuestion(vo);
+ return RestResponse.ok(vo);
+ }
+
+ @Override
+ public RestResponse getAnswer(Integer id) {
+ String content = questionMapper.getAnswer(id);
+ if (StringUtils.hasText(content)) {
+ QuestionContentVO vo = JSON.parseObject(content, QuestionContentVO.class);
+ vo.setQuestionItemObjects(null);
+ vo.setTitleContent(null);
+ return RestResponse.ok(vo);
+ }
+ return RestResponse.ok(null);
+ }
+
+ /**
+ * 澶勭悊棰樼洰鍐呭JSON
+ *
+ * @param vo
+ */
+ public void jsonQuestion(QuestionVO vo) {
+ if (StringUtils.hasText(vo.getContentJson())) {
+ QuestionContentVO questionContent = JSON.parseObject(vo.getContentJson(), QuestionContentVO.class);
+ vo.setContent(questionContent);
+ }
+ }
}
diff --git a/src/main/java/com/mindskip/xzs/service/impl/SelfPracticeServiceImpl.java b/src/main/java/com/mindskip/xzs/service/impl/SelfPracticeServiceImpl.java
index e7305d3..09cac23 100644
--- a/src/main/java/com/mindskip/xzs/service/impl/SelfPracticeServiceImpl.java
+++ b/src/main/java/com/mindskip/xzs/service/impl/SelfPracticeServiceImpl.java
@@ -9,9 +9,13 @@
import com.mindskip.xzs.domain.ExamPaperAnswer;
import com.mindskip.xzs.domain.Question;
import com.mindskip.xzs.domain.SelfPractice;
+import com.mindskip.xzs.domain.enums.PracticeQuestionTypeEnum;
+import com.mindskip.xzs.domain.enums.PracticeTypeEnum;
+import com.mindskip.xzs.domain.enums.QuestionTypeEnum;
import com.mindskip.xzs.domain.vo.QuestionContentVO;
import com.mindskip.xzs.domain.vo.QuestionVO;
import com.mindskip.xzs.domain.vo.SelfPracticeVO;
+import com.mindskip.xzs.domain.vo.SubjectQuestionVO;
import com.mindskip.xzs.repository.QuestionMapper;
import com.mindskip.xzs.repository.QuestionSubjectMapper;
import com.mindskip.xzs.repository.SelfPracticeMapper;
@@ -23,6 +27,7 @@
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
+import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Objects;
@@ -87,26 +92,35 @@
if (Objects.isNull(en)) {
throw new RuntimeException("缁冧範涓嶅瓨鍦�");
}
- if (StringUtils.hasText(en.getQuestionIds())) {
- // 鐢熸垚浜嗛鐩氨鐩存帴鏌�
- List<Integer> questionIdList = JSON.parseArray(en.getQuestionIds(), Integer.class);
- List<QuestionVO> vos = questionMapper.getVoByIds(questionIdList);
- jsonQuestion(vos);
- return RestResponse.ok(vos);
- } else {
- // 娌$敓鎴愯繃灏遍殢鏈虹敓鎴愰鐩�
- List<Integer> subjectIds = JSON.parseArray(en.getSubjects(), Integer.class);
- Integer totalQuestionNum = questionSubjectMapper.countQuestionNum(subjectIds);
- if (totalQuestionNum < en.getQuestionNum()) {
- throw new RuntimeException("浣犳墍閫夌殑璇剧洰棰樼洰鏁伴噺涓嶈冻");
+ List<Integer> subjectIds = JSON.parseArray(en.getSubjects(), Integer.class);
+ if (PracticeTypeEnum.ORDERED.getValue().equals(en.getPracticeType())) {
+ List<SubjectQuestionVO> list = new ArrayList<>(2);
+ // 椤哄簭鍋氶锛屾妸閫夋嫨鐨勯搴撶殑棰�(id)鍏ㄩ儴鏌ュ嚭鏉ワ紝鍓嶇鏈変釜搴忓彿闈㈡澘锛岀偣鍑诲摢閬撻鍋氬摢閬�
+ for (Integer subjectId : subjectIds) {
+ String subjectName = subjectMapper.selectSubjectNameById(subjectId);
+ // todo鏍规嵁鍋氶璁板綍鏌ヨ鍋氭病鍋氳繃
+ List<Integer> questionIds = new ArrayList<>();
+ if (PracticeQuestionTypeEnum.ALL.getValue().equals(en.getQuestionType())) {
+ questionIds = questionSubjectMapper.questionsBySubjectId(subjectId);
+ } else {
+ questionIds = questionSubjectMapper.questionsBySubjectIdAndQuestionType(subjectId, PracticeQuestionTypeEnum.getDataBaseValueByValue(en.getQuestionType()));
+ }
+ SubjectQuestionVO subjectQuestionVO = new SubjectQuestionVO();
+ subjectQuestionVO.setSubjectId(subjectId);
+ subjectQuestionVO.setSubjectName(subjectName);
+ subjectQuestionVO.setQuestionIds(questionIds);
+ list.add(subjectQuestionVO);
}
- // 鏌ヨ鍑鸿鐩笅闅忔満鐨勮瀹氭暟閲忛鐩�
- List<QuestionVO> questionVOList = questionSubjectMapper.getRandomQuestionId(subjectIds, en.getQuestionNum());
- List<Integer> ids = questionVOList.stream().map(QuestionVO::getId).collect(Collectors.toList());
- selfPracticeMapper.setQuestionIds(en.getId(), JSON.toJSONString(ids));
- jsonQuestion(questionVOList);
- return RestResponse.ok(questionVOList);
+ return RestResponse.ok(list);
+ } else if (PracticeTypeEnum.RANDOM.getValue().equals(en.getPracticeType())) {
+ // 闅忔満缁冧範锛屾槸涓�閬撻涓�閬撻缁冧範
+ List<QuestionVO> one = questionSubjectMapper.getRandomQuestionId(subjectIds, 1);
+ if (one.size() < 1) {
+ throw new RuntimeException("娌℃湁鎵惧埌棰樼洰锛屽彲鑳芥墍閫夎鐩寘鍚鐩笉瓒�");
+ }
+ return RestResponse.ok(one.get(0));
}
+ return RestResponse.ok();
}
@Override
diff --git a/src/main/resources/mapper/QuestionMapper.xml b/src/main/resources/mapper/QuestionMapper.xml
index b5d066c..7cdd3b5 100644
--- a/src/main/resources/mapper/QuestionMapper.xml
+++ b/src/main/resources/mapper/QuestionMapper.xml
@@ -312,4 +312,23 @@
order by a.create_time
</select>
+ <select id="selectContentById" resultType="com.mindskip.xzs.domain.vo.QuestionVO">
+ SELECT
+ tq.id,
+ tq.question_type as questionType,
+ tq.difficult,
+ ttc.content as contentJson
+ FROM
+ t_question tq
+ INNER JOIN t_text_content ttc ON tq.info_text_content_id = ttc.id AND tq.id = #{id}
+ </select>
+
+ <select id="getAnswer" resultType="string">
+ SELECT
+ ttc.content
+ FROM
+ t_question tq
+ INNER JOIN t_text_content ttc ON tq.info_text_content_id = ttc.id AND tq.id = #{id} AND tq.deleted = 0
+ </select>
+
</mapper>
diff --git a/src/main/resources/mapper/QuestionSubjectMapper.xml b/src/main/resources/mapper/QuestionSubjectMapper.xml
index 90ac102..1b05d52 100644
--- a/src/main/resources/mapper/QuestionSubjectMapper.xml
+++ b/src/main/resources/mapper/QuestionSubjectMapper.xml
@@ -79,4 +79,36 @@
RAND() LIMIT #{questionNum}
</select>
+ <select id="questionsBySubjectIds" resultType="integer">
+ SELECT
+ question_id
+ FROM
+ t_question_subject
+ <where>
+ subject_id IN <foreach collection="subjectIds" open="(" separator="," close=")" item="subjectId">#{subjectId}</foreach>
+ </where>
+ ORDER BY
+ id DESC
+ </select>
+
+ <select id="questionsBySubjectId" resultType="integer">
+ SELECT
+ tqs.question_id
+ FROM
+ t_question_subject tqs
+ INNER JOIN t_question tq ON tqs.question_id = tq.id AND tqs.subject_id = #{subjectId}
+ ORDER BY
+ tqs.id DESC
+ </select>
+
+ <select id="questionsBySubjectIdAndQuestionType" resultType="integer">
+ SELECT
+ tqs.question_id
+ FROM
+ t_question_subject tqs
+ INNER JOIN t_question tq ON tqs.question_id = tq.id AND tqs.subject_id = #{subjectId} AND tq.question_type = #{questionType}
+ ORDER BY
+ tqs.id DESC
+ </select>
+
</mapper>
diff --git a/src/main/resources/mapper/SelfPracticeMapper.xml b/src/main/resources/mapper/SelfPracticeMapper.xml
index a713dd3..1b02250 100644
--- a/src/main/resources/mapper/SelfPracticeMapper.xml
+++ b/src/main/resources/mapper/SelfPracticeMapper.xml
@@ -5,9 +5,9 @@
<insert id="add" keyColumn="id" useGeneratedKeys="true" parameterType="com.mindskip.xzs.domain.SelfPractice">
INSERT INTO
- t_self_practice(user_id, remark, subjects, practice_type, create_time, update_time, question_num, deleted)
+ t_self_practice(user_id, remark, subjects, practice_type, create_time, update_time, question_type, deleted)
VALUE
- (#{userId}, #{remark}, #{subjects}, #{practiceType}, #{createTime}, #{updateTime}, #{questionNum}, #{deleted})
+ (#{userId}, #{remark}, #{subjects}, #{practiceType}, #{createTime}, #{updateTime}, #{questionType}, #{deleted})
</insert>
<select id="page" resultType="com.mindskip.xzs.domain.vo.SelfPracticeVO">
@@ -19,8 +19,7 @@
practice_type as practiceType,
create_time createTime,
update_time as updateTime,
- question_num as questionNum,
- question_ids as questionIds
+ question_type as questionType
FROM
t_self_practice
<where>
@@ -48,8 +47,7 @@
practice_type as practiceType,
create_time createTime,
update_time as updateTime,
- question_num as questionNum,
- question_ids as questionIds
+ question_type as questionType
FROM
t_self_practice
WHERE
diff --git a/src/main/resources/mapper/SubjectMapper.xml b/src/main/resources/mapper/SubjectMapper.xml
index 965f9c1..e7a6bcd 100644
--- a/src/main/resources/mapper/SubjectMapper.xml
+++ b/src/main/resources/mapper/SubjectMapper.xml
@@ -178,5 +178,9 @@
id IN <foreach collection="ids" open="(" separator="," close=")" item="id">#{id}</foreach>
</select>
+ <select id="selectSubjectNameById" resultType="string">
+ SELECT name FROM t_subject WHERE id = #{id} AND deleted = 0
+ </select>
+
</mapper>
--
Gitblit v1.8.0