feat: 检查路径参数是否包含模型字段并相应地导入字段包
This commit is contained in:
@@ -27,6 +27,7 @@ func buildRenderData(opts RenderBuildOpts) (RenderData, error) {
|
|||||||
|
|
||||||
imports := []string{}
|
imports := []string{}
|
||||||
controllers := []string{}
|
controllers := []string{}
|
||||||
|
hasModelParams := false
|
||||||
|
|
||||||
for _, route := range opts.Routes {
|
for _, route := range opts.Routes {
|
||||||
imports = append(imports, route.Imports...)
|
imports = append(imports, route.Imports...)
|
||||||
@@ -46,6 +47,14 @@ func buildRenderData(opts RenderBuildOpts) (RenderData, error) {
|
|||||||
return tok, true
|
return tok, true
|
||||||
})
|
})
|
||||||
|
|
||||||
|
// Check if any parameter has model field specified
|
||||||
|
for _, param := range action.Params {
|
||||||
|
if param.Model != "" && param.Position == PositionPath {
|
||||||
|
hasModelParams = true
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
rd.Routes[route.Name] = append(rd.Routes[route.Name], Router{
|
rd.Routes[route.Name] = append(rd.Routes[route.Name], Router{
|
||||||
Method: strcase.ToCamel(action.Method),
|
Method: strcase.ToCamel(action.Method),
|
||||||
Route: action.Route,
|
Route: action.Route,
|
||||||
@@ -57,6 +66,11 @@ func buildRenderData(opts RenderBuildOpts) (RenderData, error) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Add field package import if there are model parameters
|
||||||
|
if hasModelParams {
|
||||||
|
imports = append(imports, `"go.ipao.vip/gen/field"`)
|
||||||
|
}
|
||||||
|
|
||||||
// de-dup and sort imports/controllers for stable output
|
// de-dup and sort imports/controllers for stable output
|
||||||
rd.Imports = lo.Uniq(imports)
|
rd.Imports = lo.Uniq(imports)
|
||||||
sort.Strings(rd.Imports)
|
sort.Strings(rd.Imports)
|
||||||
|
|||||||
Reference in New Issue
Block a user