@@ -34,14 +34,24 @@ type PageResult struct {
34
34
35
35
func (h * HttpResult ) SearchByIncludes (column string , values []any ) * HttpResult {
36
36
// 再处理url查询
37
- query := facades .Orm ().Query ()
38
- h .Query = func (q orm.Query ) orm.Query {
39
- //处理日期时间
40
- // 先处理过滤条件
41
- q = q .Where (column + " in ?" , values ).(orm.Query )
42
- return q
43
- }(query )
44
- return h
37
+ if h .Query != nil {
38
+ h .Query = func (q orm.Query ) orm.Query {
39
+ //处理日期时间
40
+ // 先处理过滤条件
41
+ q = q .Where (column + " in ?" , values ).(orm.Query )
42
+ return q
43
+ }(h .Query )
44
+ return h
45
+ } else {
46
+ query := facades .Orm ().Query ()
47
+ h .Query = func (q orm.Query ) orm.Query {
48
+ //处理日期时间
49
+ // 先处理过滤条件
50
+ q = q .Where (column + " in ?" , values ).(orm.Query )
51
+ return q
52
+ }(query )
53
+ return h
54
+ }
45
55
}
46
56
47
57
// SearchByParams
@@ -50,45 +60,84 @@ func (h *HttpResult) SearchByParams(params map[string]string, conditionMap map[s
50
60
for _ , except := range excepts {
51
61
delete (params , except )
52
62
}
53
- query := facades .Orm ().Query ()
54
-
55
- // 再处理url查询
56
- h .Query = func (q orm.Query ) orm.Query {
57
- //处理日期时间
58
- // 先处理过滤条件
59
- for key , val := range conditionMap {
60
- q = q .Where (key + " = ?" , val ).(orm.Query )
61
- }
62
- for key , value := range params {
63
- //如果key包含了[]符号
64
-
65
- if strings .Contains (key , "[]" ) || value == "" || key == "pageSize" || key == "total" || key == "currentPage" || key == "sort" || key == "order" {
66
- continue
67
- } else {
68
- q = q .Where (gorm .Expr (key + " LIKE ?" , "%" + value + "%" ))
63
+ if h .Query != nil {
64
+ query := facades .Orm ().Query ()
65
+ // 再处理url查询
66
+ h .Query = func (q orm.Query ) orm.Query {
67
+ //处理日期时间
68
+ // 先处理过滤条件
69
+ for key , val := range conditionMap {
70
+ q = q .Where (key + " = ?" , val ).(orm.Query )
69
71
}
70
- //则表示是日期时间范围
71
- /**
72
- created_at[]: 2024-10-21 00:00:00
73
- created_at[]: 2024-10-21 23:59:59
74
- */
75
- if strings .Contains (key , "[]" ) {
76
- key = strings .Replace (key , "[]" , "" , - 1 )
77
- if value == "" {
72
+ for key , value := range params {
73
+ //如果key包含了[]符号
74
+
75
+ if strings .Contains (key , "[]" ) || value == "" || key == "pageSize" || key == "total" || key == "currentPage" || key == "sort" || key == "order" {
78
76
continue
79
- }
80
- //按照,拆分value
81
- ranges := strings .Split (value , "," )
82
- if len (ranges ) == 2 {
83
- q = q .Where (key + " BETWEEN ? AND ?" , ranges [0 ], ranges [1 ])
84
77
} else {
78
+ q = q .Where (gorm .Expr (key + " LIKE ?" , "%" + value + "%" ))
79
+ }
80
+ //则表示是日期时间范围
81
+ /**
82
+ created_at[]: 2024-10-21 00:00:00
83
+ created_at[]: 2024-10-21 23:59:59
84
+ */
85
+ if strings .Contains (key , "[]" ) {
86
+ key = strings .Replace (key , "[]" , "" , - 1 )
87
+ if value == "" {
88
+ continue
89
+ }
90
+ //按照,拆分value
91
+ ranges := strings .Split (value , "," )
92
+ if len (ranges ) == 2 {
93
+ q = q .Where (key + " BETWEEN ? AND ?" , ranges [0 ], ranges [1 ])
94
+ } else {
95
+ continue
96
+ }
97
+ }
98
+ }
99
+
100
+ return q
101
+ }(query )
102
+ } else {
103
+ h .Query = func (q orm.Query ) orm.Query {
104
+ //处理日期时间
105
+ // 先处理过滤条件
106
+ for key , val := range conditionMap {
107
+ q = q .Where (key + " = ?" , val ).(orm.Query )
108
+ }
109
+ for key , value := range params {
110
+ //如果key包含了[]符号
111
+
112
+ if strings .Contains (key , "[]" ) || value == "" || key == "pageSize" || key == "total" || key == "currentPage" || key == "sort" || key == "order" {
85
113
continue
114
+ } else {
115
+ q = q .Where (gorm .Expr (key + " LIKE ?" , "%" + value + "%" ))
116
+ }
117
+ //则表示是日期时间范围
118
+ /**
119
+ created_at[]: 2024-10-21 00:00:00
120
+ created_at[]: 2024-10-21 23:59:59
121
+ */
122
+ if strings .Contains (key , "[]" ) {
123
+ key = strings .Replace (key , "[]" , "" , - 1 )
124
+ if value == "" {
125
+ continue
126
+ }
127
+ //按照,拆分value
128
+ ranges := strings .Split (value , "," )
129
+ if len (ranges ) == 2 {
130
+ q = q .Where (key + " BETWEEN ? AND ?" , ranges [0 ], ranges [1 ])
131
+ } else {
132
+ continue
133
+ }
86
134
}
87
135
}
88
- }
89
136
90
- return q
91
- }(query )
137
+ return q
138
+ }(h .Query )
139
+ }
140
+
92
141
return h
93
142
}
94
143
0 commit comments