fix: 修正搜索时间范围传入ISO8601字符串导致MySQL查询出错,并优化nil切片len检查(S1009) (#2027)
* fix: 修正搜索时间范围传入ISO8601字符串导致MySQL查询出错,并优化nil切片len检查(S1009) (#2026) * fix:时间范围修改接受参数 --------- Co-authored-by: hang666 <44329474+hang666@users.noreply.github.com>
This commit is contained in:
@@ -15,14 +15,14 @@ package request
|
|||||||
import (
|
import (
|
||||||
{{- if not .OnlyTemplate }}
|
{{- if not .OnlyTemplate }}
|
||||||
"{{.Module}}/model/common/request"
|
"{{.Module}}/model/common/request"
|
||||||
{{ if .HasSearchTimer}}"time"{{ end }}
|
{{ if or .HasSearchTimer .GvaModel }}"time"{{ end }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
)
|
)
|
||||||
|
|
||||||
type {{.StructName}}Search struct{
|
type {{.StructName}}Search struct{
|
||||||
{{- if not .OnlyTemplate}}
|
{{- if not .OnlyTemplate}}
|
||||||
{{- if .GvaModel }}
|
{{- if .GvaModel }}
|
||||||
CreatedAtRange []string `json:"createdAtRange" form:"createdAtRange[]"`
|
CreatedAtRange []time.Time `json:"createdAtRange" form:"createdAtRange[]"`
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- range .Fields}}
|
{{- range .Fields}}
|
||||||
{{- if ne .FieldSearchType ""}}
|
{{- if ne .FieldSearchType ""}}
|
||||||
|
@@ -148,7 +148,7 @@ func ({{.Abbreviation}}Service *{{.StructName}}Service)Get{{.StructName}}InfoLis
|
|||||||
var {{.Abbreviation}}s []{{.Package}}.{{.StructName}}
|
var {{.Abbreviation}}s []{{.Package}}.{{.StructName}}
|
||||||
// 如果有条件搜索 下方会自动创建搜索语句
|
// 如果有条件搜索 下方会自动创建搜索语句
|
||||||
{{- if .GvaModel }}
|
{{- 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])
|
db = db.Where("created_at BETWEEN ? AND ?", info.CreatedAtRange[0], info.CreatedAtRange[1])
|
||||||
}
|
}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
@@ -14,14 +14,14 @@ package request
|
|||||||
{{- if not .OnlyTemplate}}
|
{{- if not .OnlyTemplate}}
|
||||||
import (
|
import (
|
||||||
"{{.Module}}/model/common/request"
|
"{{.Module}}/model/common/request"
|
||||||
{{ if .HasSearchTimer}}"time"{{ end }}
|
{{ if or .HasSearchTimer .GvaModel }}"time"{{ end }}
|
||||||
)
|
)
|
||||||
{{- end}}
|
{{- end}}
|
||||||
type {{.StructName}}Search struct{
|
type {{.StructName}}Search struct{
|
||||||
{{- if not .OnlyTemplate}}
|
{{- if not .OnlyTemplate}}
|
||||||
|
|
||||||
{{- if .GvaModel }}
|
{{- if .GvaModel }}
|
||||||
CreatedAtRange []string `json:"createdAtRange" form:"createdAtRange[]"`
|
CreatedAtRange []time.Time `json:"createdAtRange" form:"createdAtRange[]"`
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- range .Fields}}
|
{{- range .Fields}}
|
||||||
{{- if ne .FieldSearchType ""}}
|
{{- if ne .FieldSearchType ""}}
|
||||||
|
@@ -155,7 +155,7 @@ func (s *{{.Abbreviation}}) Get{{.StructName}}InfoList(ctx context.Context, info
|
|||||||
var {{.Abbreviation}}s []model.{{.StructName}}
|
var {{.Abbreviation}}s []model.{{.StructName}}
|
||||||
// 如果有条件搜索 下方会自动创建搜索语句
|
// 如果有条件搜索 下方会自动创建搜索语句
|
||||||
{{- if .GvaModel }}
|
{{- 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])
|
db = db.Where("created_at BETWEEN ? AND ?", info.CreatedAtRange[0], info.CreatedAtRange[1])
|
||||||
}
|
}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
@@ -137,7 +137,7 @@ func GenerateSearchConditions(fields []*systemReq.AutoCodeField) string {
|
|||||||
} else if field.FieldSearchType == "BETWEEN" || field.FieldSearchType == "NOT BETWEEN" {
|
} else if field.FieldSearchType == "BETWEEN" || field.FieldSearchType == "NOT BETWEEN" {
|
||||||
if field.FieldType == "time.Time" {
|
if field.FieldType == "time.Time" {
|
||||||
condition = fmt.Sprintf(`
|
condition = fmt.Sprintf(`
|
||||||
if info.%sRange != nil && len(info.%sRange) == 2 {
|
if len(info.%sRange) == 2 {
|
||||||
db = db.Where("%s %s ? AND ? ", info.%sRange[0], info.%sRange[1])
|
db = db.Where("%s %s ? AND ? ", info.%sRange[0], info.%sRange[1])
|
||||||
}`,
|
}`,
|
||||||
field.FieldName, field.FieldName, field.ColumnName, field.FieldSearchType, field.FieldName, field.FieldName)
|
field.FieldName, field.FieldName, field.ColumnName, field.FieldSearchType, field.FieldName, field.FieldName)
|
||||||
@@ -677,7 +677,7 @@ func GenerateSearchField(field systemReq.AutoCodeField) string {
|
|||||||
// 生成范围搜索字段
|
// 生成范围搜索字段
|
||||||
// time 的情况
|
// time 的情况
|
||||||
if field.FieldType == "time.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)
|
field.FieldName, field.FieldJson, field.FieldJson)
|
||||||
} else {
|
} else {
|
||||||
startField := fmt.Sprintf("Start%s *%s `json:\"start%s\" form:\"start%s\"`",
|
startField := fmt.Sprintf("Start%s *%s `json:\"start%s\" form:\"start%s\"`",
|
||||||
|
Reference in New Issue
Block a user