作者 Administrator

合并分支 'dev' 到 'master'

Dev



查看合并请求 !2
@@ -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"` // 组件说明开关