Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

<select id="selectByCondition"
resultType="com.achobeta.domain.Feetback.model.entity.MistakeQuestionEntity">
select m.id, question_content, update_time , subject, k.knowledge_desc, is_calculate_err, is_careless, is_time_shortage, is_unfamiliar, other_reason
select m.question_id as id, question_content, update_time , subject, k.knowledge_desc, is_calculate_err, is_careless, is_time_shortage, is_unfamiliar, other_reason
from MistakeQuestion m join knowledgePoint k on m.knowledge_point_id = k.knowledge_point_id
<where>
m.user_id = #{userId}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,4 +18,6 @@ public interface IMistakeRepository {
MistakeQuestionDTO getValue(String s);

void remove(String s);

String findKnowledgeNameById(String questionId);
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import com.achobeta.api.dto.MistakeQuestionDTO;
import com.achobeta.api.dto.QuestionResponseDTO;
import jakarta.validation.constraints.NotNull;
import org.springframework.http.codec.ServerSentEvent;
import reactor.core.publisher.Flux;

Expand All @@ -15,4 +16,5 @@ public interface IQuestionService {

Flux<ServerSentEvent<String>> aiJudge(String userId, String questionId, String answer);

String getQuestionKnowledge(@NotNull String questionId);
}
Original file line number Diff line number Diff line change
Expand Up @@ -175,6 +175,11 @@ public Flux<ServerSentEvent<String>> aiJudge(String userId, String questionId, S

}

@Override
public String getQuestionKnowledge(String questionId) {
return mistakeRepository.findKnowledgeNameById(questionId);
}

private void autoRecord(String userId, String questionId, String answer, String correctAnswer) {
// 错误则异步录入错题,不阻塞主线程
if (!correctAnswer.equalsIgnoreCase(answer.trim())) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -64,5 +64,10 @@ public void remove(String s) {
redis.remove(s);
}

@Override
public String findKnowledgeNameById(String questionId) {
return mistakeQuestionMapper.findKnowledgeNameById(questionId);
}


}
Original file line number Diff line number Diff line change
Expand Up @@ -18,4 +18,7 @@ public interface IMistakeQuestionMapper {

@Select("SELECT subject, knowledge_point_id AS knowledgeId FROM MistakeQuestion WHERE question_id = #{mistakeQuestionId}")
MistakeKnowledgePO findSubjectAndKnowledgeIdById(String mistakeQuestionId);

@Select("SELECT knowledge_point_name AS knowledgeName FROM KnowledgePoint WHERE knowledge_point_id = #{knowledgeId}")
String findKnowledgeNameById(String questionId);
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,14 @@
import com.achobeta.types.Response;
import com.achobeta.types.annotation.GlobalInterception;
import com.achobeta.types.common.UserContext;
import com.achobeta.types.enums.GlobalServiceStatusCode;
import com.achobeta.types.exception.AppException;
import jakarta.validation.constraints.NotNull;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.codec.ServerSentEvent;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
Expand Down Expand Up @@ -92,5 +94,24 @@ public Response recordMistakeQuestion(@NotNull String questionId) {
}
}

/**
* 调用接口回显题目所属知识点
*/
@GlobalInterception
@GetMapping("/{question_id}/knowledge")
public Response<String> getQuestionKnowledge(@NotNull String questionId) {
String userId = UserContext.getUserId();
String questionKnowledge = null;
try {
log.info("用户 {} 获取题目所属知识点,题目id: {}", userId, questionId);
questionKnowledge = questionService.getQuestionKnowledge(questionId);

}catch (Exception e) {
log.error("用户 {} 获取题目所属知识点失败,题目id: {}", userId, questionId, e);
return Response.CUSTOMIZE_ERROR(GlobalServiceStatusCode.GET_KNOWLEDGE_POINT_DESC_FAIL);
}
return Response.SYSTEM_SUCCESS(questionKnowledge);
}


}
Loading