From b731b9df789eeced8721ffa94f0c8e6f20f926c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?PiexlMax=28=E5=A5=87=E6=B7=BC?= <165128580+pixelmaxQm@users.noreply.github.com> Date: Sat, 17 May 2025 15:41:37 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E6=AD=A3=E6=90=9C=E7=B4=A2?= =?UTF-8?q?=E6=97=B6=E9=97=B4=E8=8C=83=E5=9B=B4=E4=BC=A0=E5=85=A5ISO8601?= =?UTF-8?q?=E5=AD=97=E7=AC=A6=E4=B8=B2=E5=AF=BC=E8=87=B4MySQL=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E5=87=BA=E9=94=99=EF=BC=8C=E5=B9=B6=E4=BC=98=E5=8C=96?= =?UTF-8?q?nil=E5=88=87=E7=89=87len=E6=A3=80=E6=9F=A5=EF=BC=88S1009?= =?UTF-8?q?=EF=BC=89=20(#2027)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix: 修正搜索时间范围传入ISO8601字符串导致MySQL查询出错,并优化nil切片len检查(S1009) (#2026) * fix:时间范围修改接受参数 --------- Co-authored-by: hang666 <44329474+hang666@users.noreply.github.com> --- .../resource/package/server/model/request/request.go.tpl | 4 ++-- server/resource/package/server/service/service.go.tpl | 2 +- .../resource/plugin/server/model/request/request.go.tpl | 4 ++-- server/resource/plugin/server/service/service.go.tpl | 2 +- server/utils/autocode/template_funcs.go | 8 ++++---- 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/server/resource/package/server/model/request/request.go.tpl b/server/resource/package/server/model/request/request.go.tpl index 31990320..f8749f33 100644 --- a/server/resource/package/server/model/request/request.go.tpl +++ b/server/resource/package/server/model/request/request.go.tpl @@ -15,14 +15,14 @@ package request import ( {{- if not .OnlyTemplate }} "{{.Module}}/model/common/request" - {{ if .HasSearchTimer}}"time"{{ end }} + {{ if or .HasSearchTimer .GvaModel }}"time"{{ end }} {{- end }} ) type {{.StructName}}Search struct{ {{- if not .OnlyTemplate}} {{- if .GvaModel }} - CreatedAtRange []string `json:"createdAtRange" form:"createdAtRange[]"` + CreatedAtRange []time.Time `json:"createdAtRange" form:"createdAtRange[]"` {{- end }} {{- range .Fields}} {{- if ne .FieldSearchType ""}} diff --git a/server/resource/package/server/service/service.go.tpl b/server/resource/package/server/service/service.go.tpl index 077b3b21..6a199268 100644 --- a/server/resource/package/server/service/service.go.tpl +++ b/server/resource/package/server/service/service.go.tpl @@ -148,7 +148,7 @@ func ({{.Abbreviation}}Service *{{.StructName}}Service)Get{{.StructName}}InfoLis var {{.Abbreviation}}s []{{.Package}}.{{.StructName}} // 如果有条件搜索 下方会自动创建搜索语句 {{- if .GvaModel }} - if info.CreatedAtRange !=nil && len(info.CreatedAtRange) == 2 { + if len(info.CreatedAtRange) == 2 { db = db.Where("created_at BETWEEN ? AND ?", info.CreatedAtRange[0], info.CreatedAtRange[1]) } {{- end }} diff --git a/server/resource/plugin/server/model/request/request.go.tpl b/server/resource/plugin/server/model/request/request.go.tpl index 094b8bda..60cf677a 100644 --- a/server/resource/plugin/server/model/request/request.go.tpl +++ b/server/resource/plugin/server/model/request/request.go.tpl @@ -14,14 +14,14 @@ package request {{- if not .OnlyTemplate}} import ( "{{.Module}}/model/common/request" - {{ if .HasSearchTimer}}"time"{{ end }} + {{ if or .HasSearchTimer .GvaModel }}"time"{{ end }} ) {{- end}} type {{.StructName}}Search struct{ {{- if not .OnlyTemplate}} {{- if .GvaModel }} - CreatedAtRange []string `json:"createdAtRange" form:"createdAtRange[]"` + CreatedAtRange []time.Time `json:"createdAtRange" form:"createdAtRange[]"` {{- end }} {{- range .Fields}} {{- if ne .FieldSearchType ""}} diff --git a/server/resource/plugin/server/service/service.go.tpl b/server/resource/plugin/server/service/service.go.tpl index 5cfd0360..4bdcea30 100644 --- a/server/resource/plugin/server/service/service.go.tpl +++ b/server/resource/plugin/server/service/service.go.tpl @@ -155,7 +155,7 @@ func (s *{{.Abbreviation}}) Get{{.StructName}}InfoList(ctx context.Context, info var {{.Abbreviation}}s []model.{{.StructName}} // 如果有条件搜索 下方会自动创建搜索语句 {{- if .GvaModel }} - if info.CreatedAtRange !=nil && len(info.CreatedAtRange) == 2 { + if len(info.CreatedAtRange) == 2 { db = db.Where("created_at BETWEEN ? AND ?", info.CreatedAtRange[0], info.CreatedAtRange[1]) } {{- end }} diff --git a/server/utils/autocode/template_funcs.go b/server/utils/autocode/template_funcs.go index 31dd5603..1503a2a4 100644 --- a/server/utils/autocode/template_funcs.go +++ b/server/utils/autocode/template_funcs.go @@ -137,9 +137,9 @@ func GenerateSearchConditions(fields []*systemReq.AutoCodeField) string { } else if field.FieldSearchType == "BETWEEN" || field.FieldSearchType == "NOT BETWEEN" { if field.FieldType == "time.Time" { condition = fmt.Sprintf(` - if info.%sRange != nil && len(info.%sRange) == 2 { - db = db.Where("%s %s ? AND ? ", info.%sRange[0], info.%sRange[1]) - }`, + if len(info.%sRange) == 2 { + db = db.Where("%s %s ? AND ? ", info.%sRange[0], info.%sRange[1]) + }`, field.FieldName, field.FieldName, field.ColumnName, field.FieldSearchType, field.FieldName, field.FieldName) } else { condition = fmt.Sprintf(` @@ -677,7 +677,7 @@ func GenerateSearchField(field systemReq.AutoCodeField) string { // 生成范围搜索字段 // time 的情况 if field.FieldType == "time.Time" { - result = fmt.Sprintf("%sRange []string `json:\"%sRange\" form:\"%sRange[]\"`", + result = fmt.Sprintf("%sRange []time.Time `json:\"%sRange\" form:\"%sRange[]\"`", field.FieldName, field.FieldJson, field.FieldJson) } else { startField := fmt.Sprintf("Start%s *%s `json:\"start%s\" form:\"start%s\"`",