正在显示
1 个修改的文件
包含
18 行增加
和
0 行删除
| @@ -8,6 +8,7 @@ import ( | @@ -8,6 +8,7 @@ import ( | ||
| 8 | "gitlab.fjmaimaimai.com/allied-creation/sumifcc-bchart/cmd/chart-server/interanl/pkg/gateway/bytelib" | 8 | "gitlab.fjmaimaimai.com/allied-creation/sumifcc-bchart/cmd/chart-server/interanl/pkg/gateway/bytelib" |
| 9 | "gitlab.fjmaimaimai.com/allied-creation/sumifcc-bchart/pkg/xerr" | 9 | "gitlab.fjmaimaimai.com/allied-creation/sumifcc-bchart/pkg/xerr" |
| 10 | "sort" | 10 | "sort" |
| 11 | + "strconv" | ||
| 11 | "strings" | 12 | "strings" |
| 12 | ) | 13 | ) |
| 13 | 14 | ||
| @@ -51,6 +52,7 @@ func (l *SearchTableDataLogic) SearchTableData(req *types.SearchTableDataRequest | @@ -51,6 +52,7 @@ func (l *SearchTableDataLogic) SearchTableData(req *types.SearchTableDataRequest | ||
| 51 | //排序 | 52 | //排序 |
| 52 | orderField := "" | 53 | orderField := "" |
| 53 | orderBy := "" | 54 | orderBy := "" |
| 55 | + fieldType := "string" | ||
| 54 | for _, item := range req.Condition { | 56 | for _, item := range req.Condition { |
| 55 | if item.Order != "" { | 57 | if item.Order != "" { |
| 56 | orderField = item.FieldName | 58 | orderField = item.FieldName |
| @@ -58,10 +60,25 @@ func (l *SearchTableDataLogic) SearchTableData(req *types.SearchTableDataRequest | @@ -58,10 +60,25 @@ func (l *SearchTableDataLogic) SearchTableData(req *types.SearchTableDataRequest | ||
| 58 | break | 60 | break |
| 59 | } | 61 | } |
| 60 | } | 62 | } |
| 63 | + for _, item := range response.Fields { | ||
| 64 | + if orderField == item.SQLName { | ||
| 65 | + fieldType = item.SQLType | ||
| 66 | + } | ||
| 67 | + } | ||
| 68 | + fieldType = strings.ToLower(fieldType) | ||
| 61 | if orderField != "" && orderBy != "" { | 69 | if orderField != "" && orderBy != "" { |
| 62 | sort.Slice(response.Grid.List, func(i, j int) bool { | 70 | sort.Slice(response.Grid.List, func(i, j int) bool { |
| 63 | if _, ok := response.Grid.List[i][orderField]; ok { | 71 | if _, ok := response.Grid.List[i][orderField]; ok { |
| 64 | if _, ok := response.Grid.List[j][orderField]; ok { | 72 | if _, ok := response.Grid.List[j][orderField]; ok { |
| 73 | + if fieldType == "bigint" || fieldType == "int" || fieldType == "float" { | ||
| 74 | + idata, _ := strconv.ParseFloat(response.Grid.List[i][orderField], 64) | ||
| 75 | + jdata, _ := strconv.ParseFloat(response.Grid.List[j][orderField], 64) | ||
| 76 | + if strings.ToLower(orderBy) == "asc" { | ||
| 77 | + return idata < jdata | ||
| 78 | + } else { | ||
| 79 | + return idata > jdata | ||
| 80 | + } | ||
| 81 | + } else { | ||
| 65 | if strings.ToLower(orderBy) == "asc" { | 82 | if strings.ToLower(orderBy) == "asc" { |
| 66 | return response.Grid.List[i][orderField] < response.Grid.List[j][orderField] | 83 | return response.Grid.List[i][orderField] < response.Grid.List[j][orderField] |
| 67 | } else { | 84 | } else { |
| @@ -69,6 +86,7 @@ func (l *SearchTableDataLogic) SearchTableData(req *types.SearchTableDataRequest | @@ -69,6 +86,7 @@ func (l *SearchTableDataLogic) SearchTableData(req *types.SearchTableDataRequest | ||
| 69 | } | 86 | } |
| 70 | } | 87 | } |
| 71 | } | 88 | } |
| 89 | + } | ||
| 72 | return true | 90 | return true |
| 73 | }) | 91 | }) |
| 74 | } | 92 | } |
-
请 注册 或 登录 后发表评论