正在显示
4 个修改的文件
包含
79 行增加
和
8 行删除
@@ -188,11 +188,13 @@ func ValueToType(value string, sqlType string) (interface{}, error) { | @@ -188,11 +188,13 @@ func ValueToType(value string, sqlType string) (interface{}, error) { | ||
188 | if err != nil { | 188 | if err != nil { |
189 | err = fmt.Errorf("[%v]不是有效的日期类型", value) | 189 | err = fmt.Errorf("[%v]不是有效的日期类型", value) |
190 | } | 190 | } |
191 | + toTypeVal = value | ||
191 | case Datetime.ToString(): | 192 | case Datetime.ToString(): |
192 | toTypeVal, err = xtime.Parse(value) | 193 | toTypeVal, err = xtime.Parse(value) |
193 | if err != nil { | 194 | if err != nil { |
194 | err = fmt.Errorf("[%v]不是有效的时间类型", value) | 195 | err = fmt.Errorf("[%v]不是有效的时间类型", value) |
195 | } | 196 | } |
197 | + toTypeVal = value | ||
196 | default: | 198 | default: |
197 | return nil, fmt.Errorf("unknow sql type :%v", sqlType) | 199 | return nil, fmt.Errorf("unknow sql type :%v", sqlType) |
198 | } | 200 | } |
@@ -156,10 +156,6 @@ func (c Condition) InArgs(args interface{}) string { | @@ -156,10 +156,6 @@ func (c Condition) InArgs(args interface{}) string { | ||
156 | func (c Condition) Arg(args interface{}) string { | 156 | func (c Condition) Arg(args interface{}) string { |
157 | bytes := make([]byte, 0) | 157 | bytes := make([]byte, 0) |
158 | v := reflect.ValueOf(args) | 158 | v := reflect.ValueOf(args) |
159 | - if v.Kind() == reflect.Int || v.Kind() == reflect.Int64 || v.Kind() == reflect.Float64 { | ||
160 | - bytes = append(bytes, []byte(AssertString(args))...) | ||
161 | - return string(bytes) | ||
162 | - } | ||
163 | bytes = appendValue(bytes, v) | 159 | bytes = appendValue(bytes, v) |
164 | return string(bytes) | 160 | return string(bytes) |
165 | } | 161 | } |
@@ -192,10 +188,10 @@ func appendValue(b []byte, v reflect.Value) []byte { | @@ -192,10 +188,10 @@ func appendValue(b []byte, v reflect.Value) []byte { | ||
192 | return append(b, "NULL"...) | 188 | return append(b, "NULL"...) |
193 | } | 189 | } |
194 | if v.Kind() == reflect.Int || v.Kind() == reflect.Int64 || v.Kind() == reflect.Float64 { | 190 | if v.Kind() == reflect.Int || v.Kind() == reflect.Int64 || v.Kind() == reflect.Float64 { |
195 | - return append(b, []byte(v.String())...) | 191 | + return append(b, []byte(AssertString(v.Interface()))...) |
196 | } | 192 | } |
197 | b = append(b, []byte("'")...) | 193 | b = append(b, []byte("'")...) |
198 | - b = append(b, []byte(v.String())...) | 194 | + b = append(b, []byte(AssertString(v.Interface()))...) |
199 | b = append(b, []byte("'")...) | 195 | b = append(b, []byte("'")...) |
200 | return b | 196 | return b |
201 | } | 197 | } |
@@ -221,7 +217,6 @@ func WrapQueryFuncWithDB(db *gorm.DB) func(QueryOptions) (*sql.Rows, error) { | @@ -221,7 +217,6 @@ func WrapQueryFuncWithDB(db *gorm.DB) func(QueryOptions) (*sql.Rows, error) { | ||
221 | } | 217 | } |
222 | if params.Context != nil { | 218 | if params.Context != nil { |
223 | query.Where(fmt.Sprintf("context->>'companyId'='%v'", params.Context.CompanyId)) | 219 | query.Where(fmt.Sprintf("context->>'companyId'='%v'", params.Context.CompanyId)) |
224 | - //query.Where("context->>'companyId'='?'", params.Context.CompanyId) | ||
225 | } | 220 | } |
226 | rows, err := query.Rows() | 221 | rows, err := query.Rows() |
227 | if err != nil { | 222 | if err != nil { |
@@ -269,7 +264,6 @@ func WrapQueryCountWithDB(params QueryOptions, db *gorm.DB) func() (int64, error | @@ -269,7 +264,6 @@ func WrapQueryCountWithDB(params QueryOptions, db *gorm.DB) func() (int64, error | ||
269 | queryWithoutLimitOffset(query, params) | 264 | queryWithoutLimitOffset(query, params) |
270 | if params.Context != nil { | 265 | if params.Context != nil { |
271 | query.Where(fmt.Sprintf("context->>'companyId'='%v'", params.Context.CompanyId)) | 266 | query.Where(fmt.Sprintf("context->>'companyId'='%v'", params.Context.CompanyId)) |
272 | - //query.Where("context->>'companyId'='?'", params.Context.CompanyId) | ||
273 | } | 267 | } |
274 | query.Count(&total) | 268 | query.Count(&total) |
275 | return total, query.Error | 269 | return total, query.Error |
pkg/infrastructure/starrocks/query_test.go
0 → 100644
1 | +package starrocks | ||
2 | + | ||
3 | +import ( | ||
4 | + "github.com/stretchr/testify/assert" | ||
5 | + "testing" | ||
6 | + "time" | ||
7 | +) | ||
8 | + | ||
9 | +func TestInArgs(t *testing.T) { | ||
10 | + now := time.Date(2000, 1, 1, 0, 0, 0, 0, time.Local) | ||
11 | + var table = []struct { | ||
12 | + args []interface{} | ||
13 | + want string | ||
14 | + }{ | ||
15 | + { | ||
16 | + args: []interface{}{1, 0, 2, 4}, | ||
17 | + want: "(1,0,2,4)", | ||
18 | + }, | ||
19 | + { | ||
20 | + args: []interface{}{1.0, 0, 2.1, 4.0}, | ||
21 | + want: "(1,0,2.1,4)", | ||
22 | + }, | ||
23 | + { | ||
24 | + args: []interface{}{"1", "0", "2", "4"}, | ||
25 | + want: "('1','0','2','4')", | ||
26 | + }, | ||
27 | + { | ||
28 | + args: []interface{}{now, now}, | ||
29 | + want: "('2000-01-01 00:00:00','2000-01-01 00:00:00')", | ||
30 | + }, | ||
31 | + } | ||
32 | + c := &Condition{} | ||
33 | + for _, input := range table { | ||
34 | + got := c.InArgs(input.args) | ||
35 | + assert.Equal(t, input.want, got) | ||
36 | + } | ||
37 | +} | ||
38 | +func TestArg(t *testing.T) { | ||
39 | + now := time.Date(2000, 1, 1, 0, 0, 0, 0, time.Local) | ||
40 | + var table = []struct { | ||
41 | + args []interface{} | ||
42 | + want string | ||
43 | + }{ | ||
44 | + { | ||
45 | + args: []interface{}{1, 0, 2, 4}, | ||
46 | + want: "1", | ||
47 | + }, | ||
48 | + { | ||
49 | + args: []interface{}{1.0, 0, 2.1, 4.0}, | ||
50 | + want: "1", | ||
51 | + }, | ||
52 | + { | ||
53 | + args: []interface{}{"1", "0", "2", "4"}, | ||
54 | + want: "'1'", | ||
55 | + }, | ||
56 | + { | ||
57 | + args: []interface{}{now, now}, | ||
58 | + want: "'2000-01-01 00:00:00'", | ||
59 | + }, | ||
60 | + } | ||
61 | + c := &Condition{} | ||
62 | + for _, input := range table { | ||
63 | + got := c.Arg(input.args[0]) | ||
64 | + assert.Equal(t, input.want, got) | ||
65 | + } | ||
66 | +} |
1 | package utils | 1 | package utils |
2 | 2 | ||
3 | import ( | 3 | import ( |
4 | + "fmt" | ||
4 | "github.com/beego/beego/v2/core/config" | 5 | "github.com/beego/beego/v2/core/config" |
5 | "github.com/beego/beego/v2/server/web" | 6 | "github.com/beego/beego/v2/server/web" |
6 | "os" | 7 | "os" |
@@ -86,6 +87,14 @@ func (c BeegoAppConfigurator) DefaultFloat(key string, defaultVal float64) float | @@ -86,6 +87,14 @@ func (c BeegoAppConfigurator) DefaultFloat(key string, defaultVal float64) float | ||
86 | } | 87 | } |
87 | 88 | ||
88 | func NewConfig(adapterName, filename string) Configurator { | 89 | func NewConfig(adapterName, filename string) Configurator { |
90 | + if _, err := os.Stat(filename); err != nil { | ||
91 | + fmt.Println(err.Error()) | ||
92 | + config, err := config.NewConfigData(adapterName, []byte{}) | ||
93 | + if err != nil { | ||
94 | + panic(err) | ||
95 | + } | ||
96 | + return config | ||
97 | + } | ||
89 | config, err := config.NewConfig(adapterName, filename) | 98 | config, err := config.NewConfig(adapterName, filename) |
90 | if err != nil { | 99 | if err != nil { |
91 | panic(err) | 100 | panic(err) |
-
请 注册 或 登录 后发表评论