Skip to content

Commit f8e2eda

Browse files
committed
update:更改audioPath返回到实体中自动映射
1 parent 9672208 commit f8e2eda

File tree

4 files changed

+25
-24
lines changed

4 files changed

+25
-24
lines changed

src/main/java/com/xiaozhi/controller/MessageController.java

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
import com.xiaozhi.common.web.PageFilter;
66
import com.xiaozhi.dialogue.llm.ChatService;
77
import com.xiaozhi.entity.SysMessage;
8-
import com.xiaozhi.service.SysDeviceService;
98
import com.xiaozhi.service.SysMessageService;
109
import com.xiaozhi.utils.CmsUtils;
1110
import jakarta.annotation.Resource;
@@ -28,9 +27,6 @@ public class MessageController extends BaseController {
2827
@Resource
2928
private SysMessageService sysMessageService;
3029

31-
@Resource
32-
private SysDeviceService deviceService;
33-
3430
@Resource
3531
private ChatService chatService;
3632

src/main/java/com/xiaozhi/entity/Base.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ public class Base implements java.io.Serializable {
1717
* 创建日期
1818
*/
1919
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
20-
private Date createTime;
20+
protected Date createTime;
2121

2222
/**
2323
* 用户ID

src/main/java/com/xiaozhi/entity/SysMessage.java

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
package com.xiaozhi.entity;
22

3+
import com.xiaozhi.utils.AudioUtils;
4+
5+
import java.nio.file.Paths;
6+
import java.text.SimpleDateFormat;
7+
38
/**
49
* 聊天记录表
510
*
@@ -36,9 +41,7 @@ public class SysMessage extends Base {
3641

3742
/**
3843
* 语音文件路径
39-
* @deprecated 改为路径约定,而非实际存储音频文件的路径字符串。后续版本不再支持此字段。
4044
*/
41-
@Deprecated
4245
private String audioPath;
4346

4447
/**
@@ -97,7 +100,20 @@ public SysMessage setMessage(String message) {
97100
}
98101

99102
public String getAudioPath() {
100-
return audioPath;
103+
if (this.deviceId == null) {
104+
return audioPath; // 分页会先进行一次处理,但是获取的为count(0),没有实际字段会报错,这里直接返回
105+
}
106+
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HHmmss");
107+
String formattedTime = sdf.format(createTime);
108+
109+
String fileName = formattedTime + "-" + sender + ".wav";
110+
111+
return Paths.get(
112+
AudioUtils.AUDIO_PATH,
113+
deviceId.replace(":", "-"),
114+
String.valueOf(roleId),
115+
fileName
116+
).toString();
101117
}
102118

103119
public SysMessage setAudioPath(String audioPath) {

src/main/java/com/xiaozhi/mapper/MessageMapper.xml

Lines changed: 5 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,11 @@
33
<mapper namespace="com.xiaozhi.dao.MessageMapper">
44

55
<sql id="messageSql">
6-
sys_message.messageId, sys_message.message, sys_message.sender, sys_message.roleId, sys_message.state, sys_message.createTime, sys_message.messageType
6+
sys_message.messageId, sys_message.deviceId, sys_message.message, sys_message.sender, sys_message.roleId, sys_message.state, sys_message.createTime, sys_message.messageType
77
</sql>
88

99
<sql id="deviceSql">
10-
sys_device.deviceId, sys_device.deviceName, sys_device.userId
10+
sys_device.deviceName, sys_device.userId
1111
</sql>
1212

1313
<sql id="roleSql">
@@ -18,18 +18,7 @@
1818
SELECT
1919
<include refid="messageSql"></include>,
2020
<include refid="deviceSql"></include>,
21-
<include refid="roleSql"></include>,
22-
CONCAT(
23-
'audio/',
24-
REPLACE(sys_device.deviceId, ':', '-'),
25-
'/',
26-
sys_message.roleId,
27-
'/',
28-
DATE_FORMAT(sys_message.createTime, '%Y-%m-%dT%H%i%s'),
29-
'-',
30-
sys_message.sender,
31-
'.wav'
32-
) AS audioPath
21+
<include refid="roleSql"></include>
3322
FROM
3423
sys_message
3524
LEFT JOIN sys_device ON sys_message.deviceId = sys_device.deviceId
@@ -56,8 +45,8 @@
5645
</select>
5746

5847
<insert id="add" parameterType="com.xiaozhi.entity.SysMessage">
59-
INSERT INTO sys_message ( deviceId, sessionId, sender, roleId, message, audioPath, messageType ,createTime)
60-
SELECT #{deviceId}, #{sessionId}, #{sender}, #{roleId}, #{message}, #{audioPath}, #{messageType},#{createTime,jdbcType=TIMESTAMP}
48+
INSERT INTO sys_message ( deviceId, sessionId, sender, roleId, message, messageType ,createTime)
49+
SELECT #{deviceId}, #{sessionId}, #{sender}, #{roleId}, #{message}, #{messageType},#{createTime,jdbcType=TIMESTAMP}
6150
</insert>
6251

6352
<update id="delete" parameterType="com.xiaozhi.entity.SysMessage">

0 commit comments

Comments
 (0)