fix: 调整响应文案类型
This commit is contained in:
parent
8e74c434ae
commit
20de73adde
|
|
@ -144,21 +144,6 @@ func (s *CallbackService) handleDingTalkCallback(c *fiber.Ctx, env Envelope) err
|
|||
ctx := c.Context()
|
||||
|
||||
switch env.Action {
|
||||
// bug/优化完成回调
|
||||
case ActionBugOptimizationSubmitDone:
|
||||
// 业务处理
|
||||
msg, businessErr := s.handleBugOptimizationSubmitDone(ctx, env.Data)
|
||||
if businessErr != nil {
|
||||
return businessErr
|
||||
}
|
||||
|
||||
// 发送日志
|
||||
s.sendStreamLog(sessionID, msg)
|
||||
|
||||
// 删除映射
|
||||
s.botTool.DelTaskMapping(env.TaskID)
|
||||
|
||||
return c.JSON(fiber.Map{"code": 0, "message": "ok"})
|
||||
case ActionBugOptimizationSubmitUpdate:
|
||||
// 业务处理
|
||||
msg, businessErr := s.handleBugOptimizationSubmitUpdate(ctx, env.Data)
|
||||
|
|
@ -168,41 +153,26 @@ func (s *CallbackService) handleDingTalkCallback(c *fiber.Ctx, env Envelope) err
|
|||
|
||||
s.sendStreamLog(sessionID, msg)
|
||||
|
||||
return c.JSON(fiber.Map{"code": 0, "message": "ok"})
|
||||
case ActionBugOptimizationSubmitDone:
|
||||
// 业务处理
|
||||
msg, businessErr := s.handleBugOptimizationSubmitDone(ctx, env.Data)
|
||||
if businessErr != nil {
|
||||
return businessErr
|
||||
}
|
||||
|
||||
// 发送日志
|
||||
s.sendStreamTxt(sessionID, msg)
|
||||
|
||||
// 删除映射
|
||||
s.botTool.DelTaskMapping(env.TaskID)
|
||||
|
||||
return c.JSON(fiber.Map{"code": 0, "message": "ok"})
|
||||
default:
|
||||
return errorcode.ParamErr("unknown action: %s", env.Action)
|
||||
}
|
||||
}
|
||||
|
||||
// handleBugOptimizationSubmitDone 处理 bug 优化提交完成回调
|
||||
func (s *CallbackService) handleBugOptimizationSubmitDone(ctx context.Context, taskData json.RawMessage) (string, *errorcode.BusinessErr) {
|
||||
var data BugOptimizationSubmitDoneData
|
||||
if err := json.Unmarshal(taskData, &data); err != nil {
|
||||
return "", errorcode.ParamErr("invalid data type: %v", err)
|
||||
}
|
||||
|
||||
if len(data.Receivers) == 0 {
|
||||
return "", errorcode.ParamErr("empty receivers")
|
||||
}
|
||||
// 构建接收者
|
||||
receivers := s.getDingtalkReceivers(ctx, data.Receivers)
|
||||
if receivers == "" {
|
||||
return "", errorcode.ParamErr("invalid receivers")
|
||||
}
|
||||
|
||||
// 构建跳转链接
|
||||
var detailPage string
|
||||
if data.DetailPage != "" {
|
||||
detailPage = util.BuildJumpLink(data.DetailPage, "去查看")
|
||||
}
|
||||
|
||||
msg := data.Msg
|
||||
msg = util.ReplacePlaceholder(msg, "receivers", receivers)
|
||||
msg = util.ReplacePlaceholder(msg, "detail_page", util.EscapeJSONString(detailPage))
|
||||
|
||||
return msg, nil
|
||||
}
|
||||
|
||||
// getDingtalkReceivers 解析接收者字符串为 DingTalk 用户 ID 列表
|
||||
func (s *CallbackService) getDingtalkReceivers(ctx context.Context, receiverIds []string) string {
|
||||
var receiverNames []string
|
||||
|
|
@ -233,6 +203,17 @@ func (s *CallbackService) sendStreamLog(sessionID string, content string) {
|
|||
s.gateway.SendToUid(sessionID, streamLogBytes)
|
||||
}
|
||||
|
||||
// sendStreamTxt 发送流式文本
|
||||
func (s *CallbackService) sendStreamTxt(sessionID string, content string) {
|
||||
streamLog := entitys.Response{
|
||||
Index: constants.BotToolsBugOptimizationSubmit,
|
||||
Content: content,
|
||||
Type: entitys.ResponseText,
|
||||
}
|
||||
streamLogBytes := pkg.JsonByteIgonErr(streamLog)
|
||||
s.gateway.SendToUid(sessionID, streamLogBytes)
|
||||
}
|
||||
|
||||
// handleBugOptimizationSubmitUpdate 处理 bug 优化提交更新回调
|
||||
func (s *CallbackService) handleBugOptimizationSubmitUpdate(ctx context.Context, taskData json.RawMessage) (string, *errorcode.BusinessErr) {
|
||||
var data BugOptimizationSubmitUpdateData
|
||||
|
|
@ -278,3 +259,32 @@ func (s *CallbackService) handleBugOptimizationSubmitUpdate(ctx context.Context,
|
|||
|
||||
return "问题记录即将完成", nil
|
||||
}
|
||||
|
||||
// handleBugOptimizationSubmitDone 处理 bug 优化提交完成回调
|
||||
func (s *CallbackService) handleBugOptimizationSubmitDone(ctx context.Context, taskData json.RawMessage) (string, *errorcode.BusinessErr) {
|
||||
var data BugOptimizationSubmitDoneData
|
||||
if err := json.Unmarshal(taskData, &data); err != nil {
|
||||
return "", errorcode.ParamErr("invalid data type: %v", err)
|
||||
}
|
||||
|
||||
if len(data.Receivers) == 0 {
|
||||
return "", errorcode.ParamErr("empty receivers")
|
||||
}
|
||||
// 构建接收者
|
||||
receivers := s.getDingtalkReceivers(ctx, data.Receivers)
|
||||
if receivers == "" {
|
||||
return "", errorcode.ParamErr("invalid receivers")
|
||||
}
|
||||
|
||||
// 构建跳转链接
|
||||
var detailPage string
|
||||
if data.DetailPage != "" {
|
||||
detailPage = util.BuildJumpLink(data.DetailPage, "去查看")
|
||||
}
|
||||
|
||||
msg := data.Msg
|
||||
msg = util.ReplacePlaceholder(msg, "receivers", receivers)
|
||||
msg = util.ReplacePlaceholder(msg, "detail_page", util.EscapeJSONString(detailPage))
|
||||
|
||||
return msg, nil
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue