修复响应完成时间未设置的问题

This commit is contained in:
白茶清欢 2024-08-17 20:21:34 +08:00
parent ce8feaa98b
commit 195e391235

View File

@ -54,12 +54,11 @@ func Success(ctx *gin.Context, data any) {
func Send(ctx *gin.Context, code any, httpCode int, data any) {
// 设置请求是否成功的标识
ctx.Set(define.GetHttpHandleConfig().RequestIsSuccessField, fmt.Sprintf("%v", code) == fmt.Sprintf("%v", successBusinessCode))
finishRequestTime := time.Now().UnixMilli()
ctx.Set(define.GetHttpHandleConfig().FinishRequestTimeField, finishRequestTime)
if ctx.GetBool(hasSendResponseFlag) {
// 已经发送过数据, 后面在发送数据, 不执行
return
}
finishRequestTime := time.Now().UnixMilli()
// 设置数据已发送的标识
defer ctx.Set(hasSendResponseFlag, true)
responseConfig := define.GetHttpHandleConfig()
@ -68,7 +67,7 @@ func Send(ctx *gin.Context, code any, httpCode int, data any) {
responseConfig.ResponseMessageField: exception.GetMessage(code),
responseConfig.ResponseTraceIDField: ctx.GetString(responseConfig.ResponseTraceIDField),
responseConfig.ResponseDataField: data,
responseConfig.HandleRequestCostField: finishRequestTime - ctx.GetTime(responseConfig.StartRequestTimeField).UnixMilli(),
responseConfig.HandleRequestCostField: finishRequestTime - ctx.GetInt64(responseConfig.StartRequestTimeField),
}
// 记录完成时间
ctx.Set(responseConfig.FinishRequestTimeField, finishRequestTime)