38 lines
		
	
	
		
			866 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			38 lines
		
	
	
		
			866 B
		
	
	
	
		
			Go
		
	
	
	
	
	
| // Package util ...
 | |
| //
 | |
| // Description : util ...
 | |
| //
 | |
| // Author : go_developer@163.com<白茶清欢>
 | |
| //
 | |
| // Date : 2025-08-09 13:10
 | |
| package util
 | |
| 
 | |
| import (
 | |
| 	"context"
 | |
| 	"fmt"
 | |
| 
 | |
| 	"git.zhangdeman.cn/zhangdeman/consts"
 | |
| 	"github.com/gin-gonic/gin"
 | |
| )
 | |
| 
 | |
| // GinCtxToContext gin.Cotext 转换为 context.Context
 | |
| func GinCtxToContext(ctx *gin.Context) context.Context {
 | |
| 	if nil == ctx {
 | |
| 		return context.Background()
 | |
| 	}
 | |
| 	newGinContext := ctx.Copy()
 | |
| 	// 复制gin request 基本数据
 | |
| 	requestData := map[string]any{
 | |
| 		consts.GinContextField: ctx,
 | |
| 	}
 | |
| 	for k, v := range newGinContext.Keys {
 | |
| 		requestData[fmt.Sprintf("%v", k)] = v
 | |
| 	}
 | |
| 	if nil != ctx.Request {
 | |
| 		requestData[consts.GinRequestURIField] = ctx.Request.URL.Path
 | |
| 		requestData[consts.GinRequestMethodField] = ctx.Request.Method
 | |
| 	}
 | |
| 
 | |
| 	return context.WithValue(context.Background(), consts.GinContextDataField, requestData)
 | |
| }
 |