合并分支 'dev' 到 'master'
Dev 查看合并请求 !2
正在显示
9 个修改的文件
包含
137 行增加
和
9 行删除
@@ -2,13 +2,14 @@ package table | @@ -2,13 +2,14 @@ package table | ||
2 | 2 | ||
3 | import ( | 3 | import ( |
4 | "context" | 4 | "context" |
5 | - "gitlab.fjmaimaimai.com/allied-creation/sumifcc-bchart/cmd/chart-server/interanl/pkg/gateway/bytelib" | ||
6 | - "gitlab.fjmaimaimai.com/allied-creation/sumifcc-bchart/pkg/xerr" | ||
7 | - | 5 | + "github.com/zeromicro/go-zero/core/logx" |
8 | "gitlab.fjmaimaimai.com/allied-creation/sumifcc-bchart/cmd/chart-server/api/internal/svc" | 6 | "gitlab.fjmaimaimai.com/allied-creation/sumifcc-bchart/cmd/chart-server/api/internal/svc" |
9 | "gitlab.fjmaimaimai.com/allied-creation/sumifcc-bchart/cmd/chart-server/api/internal/types" | 7 | "gitlab.fjmaimaimai.com/allied-creation/sumifcc-bchart/cmd/chart-server/api/internal/types" |
10 | - | ||
11 | - "github.com/zeromicro/go-zero/core/logx" | 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" | ||
10 | + "sort" | ||
11 | + "strconv" | ||
12 | + "strings" | ||
12 | ) | 13 | ) |
13 | 14 | ||
14 | type SearchTableDataLogic struct { | 15 | type SearchTableDataLogic struct { |
@@ -48,6 +49,47 @@ func (l *SearchTableDataLogic) SearchTableData(req *types.SearchTableDataRequest | @@ -48,6 +49,47 @@ func (l *SearchTableDataLogic) SearchTableData(req *types.SearchTableDataRequest | ||
48 | if err != nil { | 49 | if err != nil { |
49 | return resp, xerr.NewErr(err) | 50 | return resp, xerr.NewErr(err) |
50 | } | 51 | } |
52 | + //排序 | ||
53 | + orderField := "" | ||
54 | + orderBy := "" | ||
55 | + fieldType := "string" | ||
56 | + for _, item := range req.Condition { | ||
57 | + if item.Order != "" { | ||
58 | + orderField = item.FieldName | ||
59 | + orderBy = item.Order | ||
60 | + break | ||
61 | + } | ||
62 | + } | ||
63 | + for _, item := range response.Fields { | ||
64 | + if orderField == item.SQLName { | ||
65 | + fieldType = item.SQLType | ||
66 | + } | ||
67 | + } | ||
68 | + fieldType = strings.ToLower(fieldType) | ||
69 | + if orderField != "" && orderBy != "" { | ||
70 | + sort.Slice(response.Grid.List, func(i, j int) bool { | ||
71 | + if _, ok := response.Grid.List[i][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 { | ||
82 | + if strings.ToLower(orderBy) == "asc" { | ||
83 | + return response.Grid.List[i][orderField] < response.Grid.List[j][orderField] | ||
84 | + } else { | ||
85 | + return response.Grid.List[i][orderField] > response.Grid.List[j][orderField] | ||
86 | + } | ||
87 | + } | ||
88 | + } | ||
89 | + } | ||
90 | + return true | ||
91 | + }) | ||
92 | + } | ||
51 | resp = map[string]interface{}{ | 93 | resp = map[string]interface{}{ |
52 | "objectId": response.ObjectId, | 94 | "objectId": response.ObjectId, |
53 | "fields": removeIdField(response.Fields), | 95 | "fields": removeIdField(response.Fields), |
@@ -58,6 +58,7 @@ func newWhere(conditions []*types.Condition) *bytelib.TableQueryWhere { | @@ -58,6 +58,7 @@ func newWhere(conditions []*types.Condition) *bytelib.TableQueryWhere { | ||
58 | //if order == "" { | 58 | //if order == "" { |
59 | // order = "ASC" | 59 | // order = "ASC" |
60 | //} | 60 | //} |
61 | + if c.Like != "" || len(c.In) > 0 { | ||
61 | where.Conditions = append(where.Conditions, &bytelib.TableQueryCondition{ | 62 | where.Conditions = append(where.Conditions, &bytelib.TableQueryCondition{ |
62 | Field: &bytelib.Field{ | 63 | Field: &bytelib.Field{ |
63 | Name: c.FieldName, | 64 | Name: c.FieldName, |
@@ -67,5 +68,6 @@ func newWhere(conditions []*types.Condition) *bytelib.TableQueryWhere { | @@ -67,5 +68,6 @@ func newWhere(conditions []*types.Condition) *bytelib.TableQueryWhere { | ||
67 | //Order: order, | 68 | //Order: order, |
68 | }) | 69 | }) |
69 | } | 70 | } |
71 | + } | ||
70 | return where | 72 | return where |
71 | } | 73 | } |
@@ -118,24 +118,53 @@ type ChartProperty struct { | @@ -118,24 +118,53 @@ type ChartProperty struct { | ||
118 | 118 | ||
119 | type Other struct { | 119 | type Other struct { |
120 | Quarter *Quarter `json:"quarter,optional,omitempty"` // 四分图 | 120 | Quarter *Quarter `json:"quarter,optional,omitempty"` // 四分图 |
121 | + Divider *Divider `json:"divider,optional,omitempty"` // 分割线 | ||
122 | + Rank *Rank `json:"rank,optional,omitempty"` // 排名图 | ||
121 | } | 123 | } |
122 | 124 | ||
123 | type Quarter struct { | 125 | type Quarter struct { |
124 | XAxisLabel string `json:"xAxisLabel"` // x轴标签名 | 126 | XAxisLabel string `json:"xAxisLabel"` // x轴标签名 |
125 | XAxisFirstLabel string `json:"xAxisFirstLabel"` // 签名1 | 127 | XAxisFirstLabel string `json:"xAxisFirstLabel"` // 签名1 |
126 | XAxisSecondLabel string `json:"xAxisSecondLabel"` // 签名2 | 128 | XAxisSecondLabel string `json:"xAxisSecondLabel"` // 签名2 |
129 | + XAxisFirstColor string `json:"xAxisFirstColor,optional,omitempty"` // x轴标签1默认颜色 | ||
130 | + XAxisSecondColor string `json:"xAxisSecondColor,optional,omitempty"` // x轴标签2默认颜色 | ||
127 | YAxisLabel string `json:"yAxisLabel"` // y轴标签名 | 131 | YAxisLabel string `json:"yAxisLabel"` // y轴标签名 |
128 | YAxisFirstLabel string `json:"yAxisFirstLabel"` // y标签1 | 132 | YAxisFirstLabel string `json:"yAxisFirstLabel"` // y标签1 |
129 | YAxisSecondLabel string `json:"yAxisSecondLabel"` // y标签2 | 133 | YAxisSecondLabel string `json:"yAxisSecondLabel"` // y标签2 |
134 | + YAxisFirstColor string `json:"yAxisFirstColor,optional,omitempty"` // y轴标签1默认颜色 | ||
135 | + YAxisSecondColor string `json:"yAxisSecondColor,optional,omitempty"` // y轴标签2默认颜色 | ||
130 | Area string `json:"area"` // 图形面积 | 136 | Area string `json:"area"` // 图形面积 |
131 | AreaColor bool `json:"areaColor"` // 颜色 | 137 | AreaColor bool `json:"areaColor"` // 颜色 |
132 | SeriesList []QuarterSeries `json:"seriesList"` // 图形系列 | 138 | SeriesList []QuarterSeries `json:"seriesList"` // 图形系列 |
139 | + TableSwitch bool `json:"tableSwitch"` // 是否展示记录型表格 | ||
133 | } | 140 | } |
134 | 141 | ||
135 | type QuarterSeries struct { | 142 | type QuarterSeries struct { |
136 | SeriesValue string `json:"seriesValue"` | 143 | SeriesValue string `json:"seriesValue"` |
137 | } | 144 | } |
138 | 145 | ||
146 | +type Divider struct { | ||
147 | + SelectedIdx string `json:"selectedIdx,optional,omitempty"` // 选择的分割线样式 | ||
148 | + TextSwitch bool `json:"textSwitch,optional,omitempty"` // 是否展示组件文本 | ||
149 | + Text string `json:"text"` // 组件文本内容 | ||
150 | +} | ||
151 | + | ||
152 | +type Rank struct { | ||
153 | + FirstLine []RankLine `json:"firstLine,optional,omitempty"` // 第一名设置 | ||
154 | + SecondLine []RankLine `json:"secondLine,optional,omitempty"` // 第二名设置 | ||
155 | + SortBySwitch bool `json:"sortBySwitch,optional,omitempty"` // 排序开关 | ||
156 | + SortBySeries string `json:"sortBySeries,optional,omitempty"` // 排序依据 | ||
157 | + SortByArrow string `json:"sortByArrow,optional,omitempty"` // 排序方向 1-降序 2-升序 | ||
158 | +} | ||
159 | + | ||
160 | +type RankLine struct { | ||
161 | + SeriesValue string `json:"seriesValue"` // 排名图序列值 | ||
162 | + LabelSwitch bool `json:"labelSwitch"` // 标签开关 | ||
163 | + Label string `json:"label"` // 标签 | ||
164 | + ArrowSwitch bool `json:"arrowSwitch"` // 箭头开关 | ||
165 | + Unit string `json:"unit"` // 单位 | ||
166 | +} | ||
167 | + | ||
139 | type Title struct { | 168 | type Title struct { |
140 | TitleSwitch bool `json:"titleSwitch,optional"` // 组件标题开关 | 169 | TitleSwitch bool `json:"titleSwitch,optional"` // 组件标题开关 |
141 | IntroduceSwitch bool `json:"introduceSwitch,optional"` // 组件说明开关 | 170 | IntroduceSwitch bool `json:"introduceSwitch,optional"` // 组件说明开关 |
@@ -28,23 +28,52 @@ type ChartProperty struct { | @@ -28,23 +28,52 @@ type ChartProperty struct { | ||
28 | } | 28 | } |
29 | type Other struct { | 29 | type Other struct { |
30 | Quarter *Quarter `json:"quarter,optional,omitempty"` // 四分图 | 30 | Quarter *Quarter `json:"quarter,optional,omitempty"` // 四分图 |
31 | + Divider *Divider `json:"divider,optional,omitempty"` // 分割线 | ||
32 | + Rank *Rank `json:"rank,optional,omitempty"` // 排名图 | ||
31 | } | 33 | } |
32 | type Quarter struct { | 34 | type Quarter struct { |
33 | XAxisLabel string `json:"xAxisLabel"` // x轴标签名 | 35 | XAxisLabel string `json:"xAxisLabel"` // x轴标签名 |
34 | XAxisFirstLabel string `json:"xAxisFirstLabel"` // 签名1 | 36 | XAxisFirstLabel string `json:"xAxisFirstLabel"` // 签名1 |
35 | XAxisSecondLabel string `json:"xAxisSecondLabel"` // 签名2 | 37 | XAxisSecondLabel string `json:"xAxisSecondLabel"` // 签名2 |
38 | + XAxisFirstColor string `json:"xAxisFirstColor,optional,omitempty"` // x轴标签1默认颜色 | ||
39 | + XAxisSecondColor string `json:"xAxisSecondColor,optional,omitempty"` // x轴标签2默认颜色 | ||
36 | YAxisLabel string `json:"yAxisLabel"` // y轴标签名 | 40 | YAxisLabel string `json:"yAxisLabel"` // y轴标签名 |
37 | YAxisFirstLabel string `json:"yAxisFirstLabel"` // y标签1 | 41 | YAxisFirstLabel string `json:"yAxisFirstLabel"` // y标签1 |
38 | YAxisSecondLabel string `json:"yAxisSecondLabel"` // y标签2 | 42 | YAxisSecondLabel string `json:"yAxisSecondLabel"` // y标签2 |
43 | + YAxisFirstColor string `json:"yAxisFirstColor,optional,omitempty"` // y轴标签1默认颜色 | ||
44 | + YAxisSecondColor string `json:"yAxisSecondColor,optional,omitempty"` // y轴标签2默认颜色 | ||
39 | Area string `json:"area"` // 图形面积 | 45 | Area string `json:"area"` // 图形面积 |
40 | AreaColor bool `json:"areaColor"` // 颜色 | 46 | AreaColor bool `json:"areaColor"` // 颜色 |
41 | SeriesList []QuarterSeries `json:"seriesList"` // 图形系列 | 47 | SeriesList []QuarterSeries `json:"seriesList"` // 图形系列 |
48 | + TableSwitch bool `json:"tableSwitch"` // 是否展示记录型表格 | ||
42 | } | 49 | } |
43 | 50 | ||
44 | type QuarterSeries struct { | 51 | type QuarterSeries struct { |
45 | SeriesValue string `json:"seriesValue"` | 52 | SeriesValue string `json:"seriesValue"` |
46 | } | 53 | } |
47 | 54 | ||
55 | +type Divider struct { | ||
56 | + SelectedIdx string `json:"selectedIdx,optional,omitempty"` // 选择的分割线样式 | ||
57 | + TextSwitch bool `json:"textSwitch,optional,omitempty"` // 是否展示组件文本 | ||
58 | + Text string `json:"text"` // 组件文本内容 | ||
59 | +} | ||
60 | + | ||
61 | +type Rank struct { | ||
62 | + FirstLine []RankLine `json:"firstLine,optional,omitempty"` // 第一名设置 | ||
63 | + SecondLine []RankLine `json:"secondLine,optional,omitempty"` // 第二名设置 | ||
64 | + SortBySwitch bool `json:"sortBySwitch,optional,omitempty"` // 排序开关 | ||
65 | + SortBySeries string `json:"sortBySeries,optional,omitempty"` // 排序依据 | ||
66 | + SortByArrow string `json:"sortByArrow,optional,omitempty"` // 排序方向 1-降序 2-升序 | ||
67 | +} | ||
68 | + | ||
69 | +type RankLine struct { | ||
70 | + SeriesValue string `json:"seriesValue"` // 排名图序列值 | ||
71 | + LabelSwitch bool `json:"labelSwitch"` // 标签开关 | ||
72 | + Label string `json:"label"` // 标签 | ||
73 | + ArrowSwitch bool `json:"arrowSwitch"` // 箭头开关 | ||
74 | + Unit string `json:"unit"` // 单位 | ||
75 | +} | ||
76 | + | ||
48 | type Title struct { | 77 | type Title struct { |
49 | TitleSwitch bool `json:"titleSwitch,optional"` // 组件标题开关 | 78 | TitleSwitch bool `json:"titleSwitch,optional"` // 组件标题开关 |
50 | IntroduceSwitch bool `json:"introduceSwitch,optional"` // 组件说明开关 | 79 | IntroduceSwitch bool `json:"introduceSwitch,optional"` // 组件说明开关 |
@@ -7,7 +7,7 @@ import ( | @@ -7,7 +7,7 @@ import ( | ||
7 | 7 | ||
8 | func (gateway *ByteMetadataService) TableDataPreview(ctx context.Context, request *TableDataPreviewRequest) (TablePreviewResponse, error) { | 8 | func (gateway *ByteMetadataService) TableDataPreview(ctx context.Context, request *TableDataPreviewRequest) (TablePreviewResponse, error) { |
9 | var result TablePreviewResponse | 9 | var result TablePreviewResponse |
10 | - if err := gateway.Do(ctx, "/data/table-preview", http.MethodPost, request, &result); err != nil { | 10 | + if err := gateway.Do(ctx, "/api/tables/table-preview", http.MethodPost, request, &result); err != nil { |
11 | return result, err | 11 | return result, err |
12 | } | 12 | } |
13 | return result, nil | 13 | return result, nil |
@@ -7,7 +7,7 @@ import ( | @@ -7,7 +7,7 @@ import ( | ||
7 | 7 | ||
8 | func (gateway *ByteMetadataService) TableFieldOptionalValues(ctx context.Context, request *TableFieldOptionalValuesRequest) (TableFieldOptionalValuesResponse, error) { | 8 | func (gateway *ByteMetadataService) TableFieldOptionalValues(ctx context.Context, request *TableFieldOptionalValuesRequest) (TableFieldOptionalValuesResponse, error) { |
9 | var result TableFieldOptionalValuesResponse | 9 | var result TableFieldOptionalValuesResponse |
10 | - if err := gateway.Do(ctx, "/data/field-optional-values", http.MethodPost, request, &result); err != nil { | 10 | + if err := gateway.Do(ctx, "/api/tables/field-optional-values", http.MethodPost, request, &result); err != nil { |
11 | return result, err | 11 | return result, err |
12 | } | 12 | } |
13 | return result, nil | 13 | return result, nil |
@@ -7,7 +7,7 @@ import ( | @@ -7,7 +7,7 @@ import ( | ||
7 | 7 | ||
8 | func (gateway *ByteMetadataService) TableInfo(ctx context.Context, request *TableInfoRequest) (TableInfoResponse, error) { | 8 | func (gateway *ByteMetadataService) TableInfo(ctx context.Context, request *TableInfoRequest) (TableInfoResponse, error) { |
9 | var result TableInfoResponse | 9 | var result TableInfoResponse |
10 | - if err := gateway.Do(ctx, "/data/tables/:tableId", http.MethodGet, request, &result); err != nil { | 10 | + if err := gateway.Do(ctx, "/api/tables/tables/:tableId", http.MethodGet, request, &result); err != nil { |
11 | return result, err | 11 | return result, err |
12 | } | 12 | } |
13 | return result, nil | 13 | return result, nil |
@@ -7,7 +7,7 @@ import ( | @@ -7,7 +7,7 @@ import ( | ||
7 | 7 | ||
8 | func (gateway *ByteMetadataService) ObjectTableSearch(ctx context.Context, request ObjectTableSearchRequest) (ObjectTableSearchResponse, error) { | 8 | func (gateway *ByteMetadataService) ObjectTableSearch(ctx context.Context, request ObjectTableSearchRequest) (ObjectTableSearchResponse, error) { |
9 | result := ObjectTableSearchResponse{} | 9 | result := ObjectTableSearchResponse{} |
10 | - if err := gateway.Do(ctx, "/data/table-object-search", http.MethodPost, request, &result); err != nil { | 10 | + if err := gateway.Do(ctx, "/api/tables/table-object-search", http.MethodPost, request, &result); err != nil { |
11 | return result, err | 11 | return result, err |
12 | } | 12 | } |
13 | return result, nil | 13 | return result, nil |
@@ -157,21 +157,47 @@ type ( | @@ -157,21 +157,47 @@ type ( | ||
157 | } | 157 | } |
158 | Other { | 158 | Other { |
159 | Quarter *Quarter `json:"quarter,optional,omitempty"` // 四分图 | 159 | Quarter *Quarter `json:"quarter,optional,omitempty"` // 四分图 |
160 | + Divider *Divider `json:"divider,optional,omitempty"` // 分割线 | ||
161 | + Rank *Rank `json:"rank,optional,omitempty"` // 排名图 | ||
160 | } | 162 | } |
161 | Quarter { | 163 | Quarter { |
162 | XAxisLabel string `json:"xAxisLabel"` // x轴标签名 | 164 | XAxisLabel string `json:"xAxisLabel"` // x轴标签名 |
163 | XAxisFirstLabel string `json:"xAxisFirstLabel"` // 签名1 | 165 | XAxisFirstLabel string `json:"xAxisFirstLabel"` // 签名1 |
164 | XAxisSecondLabel string `json:"xAxisSecondLabel"` // 签名2 | 166 | XAxisSecondLabel string `json:"xAxisSecondLabel"` // 签名2 |
167 | + XAxisFirstColor string `json:"xAxisFirstColor,optional,omitempty"` // x轴标签1默认颜色 | ||
168 | + XAxisSecondColor string `json:"xAxisSecondColor,optional,omitempty"` // x轴标签2默认颜色 | ||
165 | YAxisLabel string `json:"yAxisLabel"` // y轴标签名 | 169 | YAxisLabel string `json:"yAxisLabel"` // y轴标签名 |
166 | YAxisFirstLabel string `json:"yAxisFirstLabel"` // y标签1 | 170 | YAxisFirstLabel string `json:"yAxisFirstLabel"` // y标签1 |
167 | YAxisSecondLabel string `json:"yAxisSecondLabel"` // y标签2 | 171 | YAxisSecondLabel string `json:"yAxisSecondLabel"` // y标签2 |
172 | + YAxisFirstColor string `json:"yAxisFirstColor,optional,omitempty"` // y轴标签1默认颜色 | ||
173 | + YAxisSecondColor string `json:"yAxisSecondColor,optional,omitempty"` // y轴标签2默认颜色 | ||
168 | Area string `json:"area"` // 图形面积 | 174 | Area string `json:"area"` // 图形面积 |
169 | AreaColor bool `json:"areaColor"` // 颜色 | 175 | AreaColor bool `json:"areaColor"` // 颜色 |
170 | SeriesList []QuarterSeries `json:"seriesList"` // 图形系列 | 176 | SeriesList []QuarterSeries `json:"seriesList"` // 图形系列 |
177 | + TableSwitch bool `json:"tableSwitch"` // 是否展示记录型表格 | ||
171 | } | 178 | } |
172 | QuarterSeries { | 179 | QuarterSeries { |
173 | SeriesValue string `json:"seriesValue"` | 180 | SeriesValue string `json:"seriesValue"` |
174 | } | 181 | } |
182 | + Divider { | ||
183 | + SelectedIdx string `json:"selectedIdx,optional,omitempty"` // 选择的分割线样式 | ||
184 | + TextSwitch bool `json:"textSwitch,optional,omitempty"` // 是否展示组件文本 | ||
185 | + Text string `json:"text"` // 组件文本内容 | ||
186 | + } | ||
187 | + Rank { | ||
188 | + FirstLine []RankLine `json:"firstLine,optional,omitempty"` // 第一名设置 | ||
189 | + SecondLine []RankLine `json:"secondLine,optional,omitempty"` // 第二名设置 | ||
190 | + SortBySwitch bool `json:"sortBySwitch,optional,omitempty"` // 排序开关 | ||
191 | + SortBySeries string `json:"sortBySeries,optional,omitempty"` // 排序依据 | ||
192 | + SortByArrow string `json:"sortByArrow,optional,omitempty"` // 排序方向 1-降序 2-升序 | ||
193 | + } | ||
194 | + RankLine { | ||
195 | + SeriesValue string `json:"seriesValue"` // 排名图序列值 | ||
196 | + LabelSwitch bool `json:"labelSwitch"` // 标签开关 | ||
197 | + Label string `json:"label"` // 标签 | ||
198 | + ArrowSwitch bool `json:"arrowSwitch"` // 箭头开关 | ||
199 | + Unit string `json:"unit"` // 单位 | ||
200 | + } | ||
175 | Title { | 201 | Title { |
176 | TitleSwitch bool `json:"titleSwitch,optional"` // 组件标题开关 | 202 | TitleSwitch bool `json:"titleSwitch,optional"` // 组件标题开关 |
177 | IntroduceSwitch bool `json:"introduceSwitch,optional"` // 组件说明开关 | 203 | IntroduceSwitch bool `json:"introduceSwitch,optional"` // 组件说明开关 |
-
请 注册 或 登录 后发表评论