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 (
|
||||
{{- 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 ""}}
|
||||
|
@@ -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 }}
|
||||
|
@@ -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 ""}}
|
||||
|
@@ -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 }}
|
||||
|
@@ -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\"`",
|
||||
|
Reference in New Issue
Block a user