You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

70 lines
1.9 KiB

package echomeet
import (
"yunyan/comm"
"yunyan/pb"
"yunyan/utils"
"fmt"
)
// @Summary 处理Echomeet异步通知 [内部RPC]
// @Description 接收由HTTP回调网关转发来的已验证的支付通知,并处理业务逻辑
// @Tags Echomeet
// @Accept json
// @Produce json
// @Security BearerAuth
// @Param notify body pb.EchomeetCallbackReq true "回调参数"
// @Success 200 {object} comm.HttpResult "处理结果"
// @Router /api/home/echomeet_backcall [post]
func (this *apiComp) BackCall(session comm.IUserSession, req *pb.EchomeetCallbackReq) (resp []byte, errdata *pb.ErrorData) {
var (
id uint64
model *pb.DBEchoMeetRecord
err error
)
id = utils.StringToUInt64(req.CallbackData)
model, err = this.module.model.getrecord(id)
if err != nil {
errdata = &pb.ErrorData{
Code: pb.ErrorCode_DBError,
Message: err.Error(),
}
return
}
if req.Code != 20000000 {
model.State = pb.DBEchoMeetRecordState_TranscribeFail
this.module.model.saverecord(model)
resp = []byte(utils.ToString(map[string]string{
"code": "SUCCESS",
"message": "成功",
}))
return
}
personnels := make(map[string]struct{})
contexts := make([]*pb.ContextStruct, 0)
for _, v := range req.Result.Utterances {
contexts = append(contexts, &pb.ContextStruct{
Meetingid: model.Id,
Content: v.Text,
Starttime: v.StartTime,
Endtime: v.EndTime,
Speaker: fmt.Sprintf("Speaker_%s", v.Additions.Speaker),
})
personnels[v.Additions.Speaker] = struct{}{}
}
model.Personnel = ""
for k, _ := range personnels {
model.Personnel += fmt.Sprintf("[%s] ", fmt.Sprintf("Speaker_%s", k))
}
model.Original = utils.ToString(contexts)
model.State = pb.DBEchoMeetRecordState_AwaitSummarizing
this.module.tasks.TranslateProcess(model, contexts)
this.module.model.saverecord(model)
this.module.tasks.SubmitAITask(model)
resp = []byte(utils.ToString(map[string]string{
"code": "SUCCESS",
"message": "成功",
}))
return
}