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()
|
ctx := c.Context()
|
||||||
|
|
||||||
switch env.Action {
|
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:
|
case ActionBugOptimizationSubmitUpdate:
|
||||||
// 业务处理
|
// 业务处理
|
||||||
msg, businessErr := s.handleBugOptimizationSubmitUpdate(ctx, env.Data)
|
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)
|
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"})
|
return c.JSON(fiber.Map{"code": 0, "message": "ok"})
|
||||||
default:
|
default:
|
||||||
return errorcode.ParamErr("unknown action: %s", env.Action)
|
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 列表
|
// getDingtalkReceivers 解析接收者字符串为 DingTalk 用户 ID 列表
|
||||||
func (s *CallbackService) getDingtalkReceivers(ctx context.Context, receiverIds []string) string {
|
func (s *CallbackService) getDingtalkReceivers(ctx context.Context, receiverIds []string) string {
|
||||||
var receiverNames []string
|
var receiverNames []string
|
||||||
|
|
@ -233,6 +203,17 @@ func (s *CallbackService) sendStreamLog(sessionID string, content string) {
|
||||||
s.gateway.SendToUid(sessionID, streamLogBytes)
|
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 优化提交更新回调
|
// handleBugOptimizationSubmitUpdate 处理 bug 优化提交更新回调
|
||||||
func (s *CallbackService) handleBugOptimizationSubmitUpdate(ctx context.Context, taskData json.RawMessage) (string, *errorcode.BusinessErr) {
|
func (s *CallbackService) handleBugOptimizationSubmitUpdate(ctx context.Context, taskData json.RawMessage) (string, *errorcode.BusinessErr) {
|
||||||
var data BugOptimizationSubmitUpdateData
|
var data BugOptimizationSubmitUpdateData
|
||||||
|
|
@ -278,3 +259,32 @@ func (s *CallbackService) handleBugOptimizationSubmitUpdate(ctx context.Context,
|
||||||
|
|
||||||
return "问题记录即将完成", nil
|
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