优化实时语音对话组件,处理异常

This commit is contained in:
RockYang 2024-10-23 18:04:09 +08:00
parent ad6e2dd370
commit 1fe1e40a43
4 changed files with 79 additions and 70 deletions

View File

@ -143,65 +143,67 @@ func (h *ConfigHandler) GetLicense(c *gin.Context) {
// FixData 修复数据 // FixData 修复数据
func (h *ConfigHandler) FixData(c *gin.Context) { func (h *ConfigHandler) FixData(c *gin.Context) {
var fixed bool resp.ERROR(c, "当前升级版本没有数据需要修正!")
version := "data_fix_4.1.4" return
err := h.levelDB.Get(version, &fixed) //var fixed bool
if err == nil || fixed { //version := "data_fix_4.1.4"
resp.ERROR(c, "当前版本数据修复已完成,请不要重复执行操作") //err := h.levelDB.Get(version, &fixed)
return //if err == nil || fixed {
} // resp.ERROR(c, "当前版本数据修复已完成,请不要重复执行操作")
tx := h.DB.Begin() // return
var users []model.User //}
err = tx.Find(&users).Error //tx := h.DB.Begin()
if err != nil { //var users []model.User
resp.ERROR(c, err.Error()) //err = tx.Find(&users).Error
return //if err != nil {
} // resp.ERROR(c, err.Error())
for _, user := range users { // return
if user.Email != "" || user.Mobile != "" { //}
continue //for _, user := range users {
} // if user.Email != "" || user.Mobile != "" {
if utils.IsValidEmail(user.Username) { // continue
user.Email = user.Username // }
} else if utils.IsValidMobile(user.Username) { // if utils.IsValidEmail(user.Username) {
user.Mobile = user.Username // user.Email = user.Username
} // } else if utils.IsValidMobile(user.Username) {
err = tx.Save(&user).Error // user.Mobile = user.Username
if err != nil { // }
resp.ERROR(c, err.Error()) // err = tx.Save(&user).Error
tx.Rollback() // if err != nil {
return // resp.ERROR(c, err.Error())
} // tx.Rollback()
} // return
// }
var orders []model.Order //}
err = h.DB.Find(&orders).Error //
if err != nil { //var orders []model.Order
resp.ERROR(c, err.Error()) //err = h.DB.Find(&orders).Error
return //if err != nil {
} // resp.ERROR(c, err.Error())
for _, order := range orders { // return
if order.PayWay == "支付宝" { //}
order.PayWay = "alipay" //for _, order := range orders {
order.PayType = "alipay" // if order.PayWay == "支付宝" {
} else if order.PayWay == "微信支付" { // order.PayWay = "alipay"
order.PayWay = "wechat" // order.PayType = "alipay"
order.PayType = "wxpay" // } else if order.PayWay == "微信支付" {
} else if order.PayWay == "hupi" { // order.PayWay = "wechat"
order.PayType = "wxpay" // order.PayType = "wxpay"
} // } else if order.PayWay == "hupi" {
err = tx.Save(&order).Error // order.PayType = "wxpay"
if err != nil { // }
resp.ERROR(c, err.Error()) // err = tx.Save(&order).Error
tx.Rollback() // if err != nil {
return // resp.ERROR(c, err.Error())
} // tx.Rollback()
} // return
tx.Commit() // }
err = h.levelDB.Put(version, true) //}
if err != nil { //tx.Commit()
resp.ERROR(c, err.Error()) //err = h.levelDB.Put(version, true)
return //if err != nil {
} // resp.ERROR(c, err.Error())
resp.SUCCESS(c) // return
//}
//resp.SUCCESS(c)
} }

View File

@ -305,19 +305,22 @@ onUnmounted(() => {
const hangUp = async () => { const hangUp = async () => {
try { try {
isConnected.value = false isConnected.value = false
//
if (backgroundAudio.value?.currentTime) {
backgroundAudio.value?.pause()
backgroundAudio.value.currentTime = 0
}
// //
client.value.disconnect() client.value.reset()
// //
await wavRecorder.value.end() await wavRecorder.value.end()
await wavStreamPlayer.value.interrupt() await wavStreamPlayer.value.interrupt()
// } catch (e) {
backgroundAudio.value?.pause() console.error(e)
backgroundAudio.value.currentTime = 0 } finally {
// //
hangUpAudio.value?.play() hangUpAudio.value?.play()
emits('close') emits('close')
} catch (e) {
console.error(e)
} }
}; };

View File

@ -902,6 +902,10 @@ const showConversationDialog = ref(false)
const conversationRef = ref(null) const conversationRef = ref(null)
const dialogHeight = ref(window.innerHeight - 75); const dialogHeight = ref(window.innerHeight - 75);
const realtimeChat = () => { const realtimeChat = () => {
if (!isLogin.value) {
store.setShowLoginDialog(true)
return
}
showConversationDialog.value = true; showConversationDialog.value = true;
nextTick(() => { nextTick(() => {
conversationRef.value.connect() conversationRef.value.connect()

View File

@ -403,11 +403,11 @@
<el-tab-pane label="修复数据" name="fixData"> <el-tab-pane label="修复数据" name="fixData">
<div class="container"> <div class="container">
<p class="text">有些版本升级的时候更新了数据库的结构比如字段名字改了需要把之前的字段的值转移到其他字段这些无法通过简单的 SQL 语句可以实现的需要手动写程序修正数据</p> <!-- <p class="text">有些版本升级的时候更新了数据库的结构比如字段名字改了需要把之前的字段的值转移到其他字段这些无法通过简单的 SQL 语句可以实现的需要手动写程序修正数据</p>-->
<p class="text">当前版本 v4.1.4 需要修正用户数据增加了 mobile email 字段需要把之前用手机号或者邮箱注册的用户的 username 字段数据初始化到 mobile 或者 email 字段另外需要把订单的支付渠道从名字称修正为 key</p> <!-- <p class="text">当前版本 v4.1.4 需要修正用户数据增加了 mobile email 字段需要把之前用手机号或者邮箱注册的用户的 username 字段数据初始化到 mobile 或者 email 字段另外需要把订单的支付渠道从名字称修正为 key</p>-->
<el-text type="danger">请注意在修复数据前请先备份好数据库以免数据丢失</el-text> <!-- <el-text type="danger">请注意在修复数据前请先备份好数据库以免数据丢失</el-text>-->
<p><el-button type="primary" @click="fixData">立即修复</el-button></p> <p><el-button type="primary" @click="fixData">立即修复</el-button></p>
</div> </div>