From ecc7ce5412b06e058c3a954640b83497e5a262a7 Mon Sep 17 00:00:00 2001
From: liu <liujiatong112@163.com>
Date: Fri, 3 Nov 2023 13:21:26 +0800
Subject: [PATCH] =?UTF-8?q?=E8=AF=8A=E6=96=AD=E6=B5=81=E7=A8=8B=E6=8F=90?=
 =?UTF-8?q?=E4=BA=A4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../AskTemplateQuestionLibraryMapper.xml      | 24 ++++++++++---------
 .../service/impl/AskServiceImpl.java          | 14 +++++++++++
 2 files changed, 27 insertions(+), 11 deletions(-)

diff --git a/virtual-patient-model/src/main/resources/mapper/AskTemplateQuestionLibraryMapper.xml b/virtual-patient-model/src/main/resources/mapper/AskTemplateQuestionLibraryMapper.xml
index 3cbee9db..ca9fd436 100644
--- a/virtual-patient-model/src/main/resources/mapper/AskTemplateQuestionLibraryMapper.xml
+++ b/virtual-patient-model/src/main/resources/mapper/AskTemplateQuestionLibraryMapper.xml
@@ -5,20 +5,22 @@
 <mapper namespace="com.supervision.mapper.AskTemplateQuestionLibraryMapper">
 
     <resultMap id="BaseResultMap" type="com.supervision.model.AskTemplateQuestionLibrary">
-            <id property="id" column="id" jdbcType="VARCHAR"/>
-            <result property="code" column="code" jdbcType="VARCHAR"/>
-            <result property="description" column="description" jdbcType="VARCHAR"/>
-            <result property="question" column="question" jdbcType="ARRAY"
-                    typeHandler="com.supervision.handler.StringListTypeHandler"/>
-            <result property="defaultAnswer" column="default_answer" jdbcType="OTHER"/>
-            <result property="createUserId" column="create_user_id" jdbcType="VARCHAR"/>
-            <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
-            <result property="updateUserId" column="update_user_id" jdbcType="VARCHAR"/>
-            <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
+        <id property="id" column="id" jdbcType="VARCHAR"/>
+        <result property="code" column="code" jdbcType="VARCHAR"/>
+        <result property="description" column="description" jdbcType="VARCHAR"/>
+        <result property="question" column="question" jdbcType="ARRAY"
+                typeHandler="com.supervision.handler.StringListTypeHandler"/>
+        <result property="defaultAnswer" column="default_answer" jdbcType="ARRAY"
+                typeHandler="com.supervision.handler.StringListTypeHandler"/>
+        <result property="createUserId" column="create_user_id" jdbcType="VARCHAR"/>
+        <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
+        <result property="updateUserId" column="update_user_id" jdbcType="VARCHAR"/>
+        <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
     </resultMap>
 
     <sql id="Base_Column_List">
-        id,code,description,
+        id
+        ,code,description,
         question,default_answer,create_user_id,
         create_time,update_user_id,update_time
     </sql>
diff --git a/virtual-patient-web/src/main/java/com/supervision/service/impl/AskServiceImpl.java b/virtual-patient-web/src/main/java/com/supervision/service/impl/AskServiceImpl.java
index 22d6aad7..47453d8f 100644
--- a/virtual-patient-web/src/main/java/com/supervision/service/impl/AskServiceImpl.java
+++ b/virtual-patient-web/src/main/java/com/supervision/service/impl/AskServiceImpl.java
@@ -92,6 +92,20 @@ public class AskServiceImpl implements AskService {
             if (ObjectUtil.isEmpty(library)) {
                 HumanUtil.textDriven("您好,我没有听懂您说什么", roomId);
             } else {
+                // 首先看看default里面是不是存在,如果存在,就从default里面去找
+                if (CollUtil.isNotEmpty(library.getDefaultAnswer())) {
+                    String resText = library.getDefaultAnswer().get(RandomUtil.randomInt(0, library.getDefaultAnswer().size()));
+                    HumanUtil.textDriven(resText, roomId);
+                    // 保存记录
+                    DiagnosisQaRecord record = new DiagnosisQaRecord();
+                    record.setProcessId(talkReqVO.getProcessId());
+                    // 注意,这里如果有默认回答,回答的结果是默认结果ID
+                    record.setQuestionAnswerId(library.getId());
+                    record.setQuestion(talkReqVO.getText());
+                    record.setAnswer(resText);
+                    record.setCreateUserId(UserUtil.getUser().getId());
+                    record.insert();
+                }
                 AskPatientAnswer askPatientAnswer = askPatientAnswerService.lambdaQuery().eq(AskPatientAnswer::getPatientId, process.getPatientId())
                         .eq(AskPatientAnswer::getLibraryQuestionId, library.getId()).last("limit 1").one();
                 if (ObjectUtil.isEmpty(askPatientAnswer) || CollUtil.isEmpty(askPatientAnswer.getAnswer())) {