作者 Administrator

合并分支 'dev' 到 'master'

Dev



查看合并请求 !2
... ... @@ -2,13 +2,14 @@ package table
import (
"context"
"gitlab.fjmaimaimai.com/allied-creation/sumifcc-bchart/cmd/chart-server/interanl/pkg/gateway/bytelib"
"gitlab.fjmaimaimai.com/allied-creation/sumifcc-bchart/pkg/xerr"
"github.com/zeromicro/go-zero/core/logx"
"gitlab.fjmaimaimai.com/allied-creation/sumifcc-bchart/cmd/chart-server/api/internal/svc"
"gitlab.fjmaimaimai.com/allied-creation/sumifcc-bchart/cmd/chart-server/api/internal/types"
"github.com/zeromicro/go-zero/core/logx"
"gitlab.fjmaimaimai.com/allied-creation/sumifcc-bchart/cmd/chart-server/interanl/pkg/gateway/bytelib"
"gitlab.fjmaimaimai.com/allied-creation/sumifcc-bchart/pkg/xerr"
"sort"
"strconv"
"strings"
)
type SearchTableDataLogic struct {
... ... @@ -48,6 +49,47 @@ func (l *SearchTableDataLogic) SearchTableData(req *types.SearchTableDataRequest
if err != nil {
return resp, xerr.NewErr(err)
}
//排序
orderField := ""
orderBy := ""
fieldType := "string"
for _, item := range req.Condition {
if item.Order != "" {
orderField = item.FieldName
orderBy = item.Order
break
}
}
for _, item := range response.Fields {
if orderField == item.SQLName {
fieldType = item.SQLType
}
}
fieldType = strings.ToLower(fieldType)
if orderField != "" && orderBy != "" {
sort.Slice(response.Grid.List, func(i, j int) bool {
if _, ok := response.Grid.List[i][orderField]; ok {
if _, ok := response.Grid.List[j][orderField]; ok {
if fieldType == "bigint" || fieldType == "int" || fieldType == "float" {
idata, _ := strconv.ParseFloat(response.Grid.List[i][orderField], 64)
jdata, _ := strconv.ParseFloat(response.Grid.List[j][orderField], 64)
if strings.ToLower(orderBy) == "asc" {
return idata < jdata
} else {
return idata > jdata
}
} else {
if strings.ToLower(orderBy) == "asc" {
return response.Grid.List[i][orderField] < response.Grid.List[j][orderField]
} else {
return response.Grid.List[i][orderField] > response.Grid.List[j][orderField]
}
}
}
}
return true
})
}
resp = map[string]interface{}{
"objectId": response.ObjectId,
"fields": removeIdField(response.Fields),
... ...
... ... @@ -58,14 +58,16 @@ func newWhere(conditions []*types.Condition) *bytelib.TableQueryWhere {
//if order == "" {
// order = "ASC"
//}
where.Conditions = append(where.Conditions, &bytelib.TableQueryCondition{
Field: &bytelib.Field{
Name: c.FieldName,
},
Like: c.Like,
In: c.In,
//Order: order,
})
if c.Like != "" || len(c.In) > 0 {
where.Conditions = append(where.Conditions, &bytelib.TableQueryCondition{
Field: &bytelib.Field{
Name: c.FieldName,
},
Like: c.Like,
In: c.In,
//Order: order,
})
}
}
return where
}
... ...
... ... @@ -118,24 +118,53 @@ type ChartProperty struct {
type Other struct {
Quarter *Quarter `json:"quarter,optional,omitempty"` // 四分图
Divider *Divider `json:"divider,optional,omitempty"` // 分割线
Rank *Rank `json:"rank,optional,omitempty"` // 排名图
}
type Quarter struct {
XAxisLabel string `json:"xAxisLabel"` // x轴标签名
XAxisFirstLabel string `json:"xAxisFirstLabel"` // 签名1
XAxisSecondLabel string `json:"xAxisSecondLabel"` // 签名2
YAxisLabel string `json:"yAxisLabel"` // y轴标签名
YAxisFirstLabel string `json:"yAxisFirstLabel"` // y标签1
YAxisSecondLabel string `json:"yAxisSecondLabel"` // y标签2
Area string `json:"area"` // 图形面积
AreaColor bool `json:"areaColor"` // 颜色
SeriesList []QuarterSeries `json:"seriesList"` // 图形系列
XAxisLabel string `json:"xAxisLabel"` // x轴标签名
XAxisFirstLabel string `json:"xAxisFirstLabel"` // 签名1
XAxisSecondLabel string `json:"xAxisSecondLabel"` // 签名2
XAxisFirstColor string `json:"xAxisFirstColor,optional,omitempty"` // x轴标签1默认颜色
XAxisSecondColor string `json:"xAxisSecondColor,optional,omitempty"` // x轴标签2默认颜色
YAxisLabel string `json:"yAxisLabel"` // y轴标签名
YAxisFirstLabel string `json:"yAxisFirstLabel"` // y标签1
YAxisSecondLabel string `json:"yAxisSecondLabel"` // y标签2
YAxisFirstColor string `json:"yAxisFirstColor,optional,omitempty"` // y轴标签1默认颜色
YAxisSecondColor string `json:"yAxisSecondColor,optional,omitempty"` // y轴标签2默认颜色
Area string `json:"area"` // 图形面积
AreaColor bool `json:"areaColor"` // 颜色
SeriesList []QuarterSeries `json:"seriesList"` // 图形系列
TableSwitch bool `json:"tableSwitch"` // 是否展示记录型表格
}
type QuarterSeries struct {
SeriesValue string `json:"seriesValue"`
}
type Divider struct {
SelectedIdx string `json:"selectedIdx,optional,omitempty"` // 选择的分割线样式
TextSwitch bool `json:"textSwitch,optional,omitempty"` // 是否展示组件文本
Text string `json:"text"` // 组件文本内容
}
type Rank struct {
FirstLine []RankLine `json:"firstLine,optional,omitempty"` // 第一名设置
SecondLine []RankLine `json:"secondLine,optional,omitempty"` // 第二名设置
SortBySwitch bool `json:"sortBySwitch,optional,omitempty"` // 排序开关
SortBySeries string `json:"sortBySeries,optional,omitempty"` // 排序依据
SortByArrow string `json:"sortByArrow,optional,omitempty"` // 排序方向 1-降序 2-升序
}
type RankLine struct {
SeriesValue string `json:"seriesValue"` // 排名图序列值
LabelSwitch bool `json:"labelSwitch"` // 标签开关
Label string `json:"label"` // 标签
ArrowSwitch bool `json:"arrowSwitch"` // 箭头开关
Unit string `json:"unit"` // 单位
}
type Title struct {
TitleSwitch bool `json:"titleSwitch,optional"` // 组件标题开关
IntroduceSwitch bool `json:"introduceSwitch,optional"` // 组件说明开关
... ...
... ... @@ -28,23 +28,52 @@ type ChartProperty struct {
}
type Other struct {
Quarter *Quarter `json:"quarter,optional,omitempty"` // 四分图
Divider *Divider `json:"divider,optional,omitempty"` // 分割线
Rank *Rank `json:"rank,optional,omitempty"` // 排名图
}
type Quarter struct {
XAxisLabel string `json:"xAxisLabel"` // x轴标签名
XAxisFirstLabel string `json:"xAxisFirstLabel"` // 签名1
XAxisSecondLabel string `json:"xAxisSecondLabel"` // 签名2
YAxisLabel string `json:"yAxisLabel"` // y轴标签名
YAxisFirstLabel string `json:"yAxisFirstLabel"` // y标签1
YAxisSecondLabel string `json:"yAxisSecondLabel"` // y标签2
Area string `json:"area"` // 图形面积
AreaColor bool `json:"areaColor"` // 颜色
SeriesList []QuarterSeries `json:"seriesList"` // 图形系列
XAxisLabel string `json:"xAxisLabel"` // x轴标签名
XAxisFirstLabel string `json:"xAxisFirstLabel"` // 签名1
XAxisSecondLabel string `json:"xAxisSecondLabel"` // 签名2
XAxisFirstColor string `json:"xAxisFirstColor,optional,omitempty"` // x轴标签1默认颜色
XAxisSecondColor string `json:"xAxisSecondColor,optional,omitempty"` // x轴标签2默认颜色
YAxisLabel string `json:"yAxisLabel"` // y轴标签名
YAxisFirstLabel string `json:"yAxisFirstLabel"` // y标签1
YAxisSecondLabel string `json:"yAxisSecondLabel"` // y标签2
YAxisFirstColor string `json:"yAxisFirstColor,optional,omitempty"` // y轴标签1默认颜色
YAxisSecondColor string `json:"yAxisSecondColor,optional,omitempty"` // y轴标签2默认颜色
Area string `json:"area"` // 图形面积
AreaColor bool `json:"areaColor"` // 颜色
SeriesList []QuarterSeries `json:"seriesList"` // 图形系列
TableSwitch bool `json:"tableSwitch"` // 是否展示记录型表格
}
type QuarterSeries struct {
SeriesValue string `json:"seriesValue"`
}
type Divider struct {
SelectedIdx string `json:"selectedIdx,optional,omitempty"` // 选择的分割线样式
TextSwitch bool `json:"textSwitch,optional,omitempty"` // 是否展示组件文本
Text string `json:"text"` // 组件文本内容
}
type Rank struct {
FirstLine []RankLine `json:"firstLine,optional,omitempty"` // 第一名设置
SecondLine []RankLine `json:"secondLine,optional,omitempty"` // 第二名设置
SortBySwitch bool `json:"sortBySwitch,optional,omitempty"` // 排序开关
SortBySeries string `json:"sortBySeries,optional,omitempty"` // 排序依据
SortByArrow string `json:"sortByArrow,optional,omitempty"` // 排序方向 1-降序 2-升序
}
type RankLine struct {
SeriesValue string `json:"seriesValue"` // 排名图序列值
LabelSwitch bool `json:"labelSwitch"` // 标签开关
Label string `json:"label"` // 标签
ArrowSwitch bool `json:"arrowSwitch"` // 箭头开关
Unit string `json:"unit"` // 单位
}
type Title struct {
TitleSwitch bool `json:"titleSwitch,optional"` // 组件标题开关
IntroduceSwitch bool `json:"introduceSwitch,optional"` // 组件说明开关
... ...
... ... @@ -7,7 +7,7 @@ import (
func (gateway *ByteMetadataService) TableDataPreview(ctx context.Context, request *TableDataPreviewRequest) (TablePreviewResponse, error) {
var result TablePreviewResponse
if err := gateway.Do(ctx, "/data/table-preview", http.MethodPost, request, &result); err != nil {
if err := gateway.Do(ctx, "/api/tables/table-preview", http.MethodPost, request, &result); err != nil {
return result, err
}
return result, nil
... ...
... ... @@ -7,7 +7,7 @@ import (
func (gateway *ByteMetadataService) TableFieldOptionalValues(ctx context.Context, request *TableFieldOptionalValuesRequest) (TableFieldOptionalValuesResponse, error) {
var result TableFieldOptionalValuesResponse
if err := gateway.Do(ctx, "/data/field-optional-values", http.MethodPost, request, &result); err != nil {
if err := gateway.Do(ctx, "/api/tables/field-optional-values", http.MethodPost, request, &result); err != nil {
return result, err
}
return result, nil
... ...
... ... @@ -7,7 +7,7 @@ import (
func (gateway *ByteMetadataService) TableInfo(ctx context.Context, request *TableInfoRequest) (TableInfoResponse, error) {
var result TableInfoResponse
if err := gateway.Do(ctx, "/data/tables/:tableId", http.MethodGet, request, &result); err != nil {
if err := gateway.Do(ctx, "/api/tables/tables/:tableId", http.MethodGet, request, &result); err != nil {
return result, err
}
return result, nil
... ...
... ... @@ -7,7 +7,7 @@ import (
func (gateway *ByteMetadataService) ObjectTableSearch(ctx context.Context, request ObjectTableSearchRequest) (ObjectTableSearchResponse, error) {
result := ObjectTableSearchResponse{}
if err := gateway.Do(ctx, "/data/table-object-search", http.MethodPost, request, &result); err != nil {
if err := gateway.Do(ctx, "/api/tables/table-object-search", http.MethodPost, request, &result); err != nil {
return result, err
}
return result, nil
... ...
... ... @@ -157,21 +157,47 @@ type (
}
Other {
Quarter *Quarter `json:"quarter,optional,omitempty"` // 四分图
Divider *Divider `json:"divider,optional,omitempty"` // 分割线
Rank *Rank `json:"rank,optional,omitempty"` // 排名图
}
Quarter {
XAxisLabel string `json:"xAxisLabel"` // x轴标签名
XAxisFirstLabel string `json:"xAxisFirstLabel"` // 签名1
XAxisSecondLabel string `json:"xAxisSecondLabel"` // 签名2
YAxisLabel string `json:"yAxisLabel"` // y轴标签名
YAxisFirstLabel string `json:"yAxisFirstLabel"` // y标签1
YAxisSecondLabel string `json:"yAxisSecondLabel"` // y标签2
Area string `json:"area"` // 图形面积
AreaColor bool `json:"areaColor"` // 颜色
SeriesList []QuarterSeries `json:"seriesList"` // 图形系列
XAxisLabel string `json:"xAxisLabel"` // x轴标签名
XAxisFirstLabel string `json:"xAxisFirstLabel"` // 签名1
XAxisSecondLabel string `json:"xAxisSecondLabel"` // 签名2
XAxisFirstColor string `json:"xAxisFirstColor,optional,omitempty"` // x轴标签1默认颜色
XAxisSecondColor string `json:"xAxisSecondColor,optional,omitempty"` // x轴标签2默认颜色
YAxisLabel string `json:"yAxisLabel"` // y轴标签名
YAxisFirstLabel string `json:"yAxisFirstLabel"` // y标签1
YAxisSecondLabel string `json:"yAxisSecondLabel"` // y标签2
YAxisFirstColor string `json:"yAxisFirstColor,optional,omitempty"` // y轴标签1默认颜色
YAxisSecondColor string `json:"yAxisSecondColor,optional,omitempty"` // y轴标签2默认颜色
Area string `json:"area"` // 图形面积
AreaColor bool `json:"areaColor"` // 颜色
SeriesList []QuarterSeries `json:"seriesList"` // 图形系列
TableSwitch bool `json:"tableSwitch"` // 是否展示记录型表格
}
QuarterSeries {
SeriesValue string `json:"seriesValue"`
}
Divider {
SelectedIdx string `json:"selectedIdx,optional,omitempty"` // 选择的分割线样式
TextSwitch bool `json:"textSwitch,optional,omitempty"` // 是否展示组件文本
Text string `json:"text"` // 组件文本内容
}
Rank {
FirstLine []RankLine `json:"firstLine,optional,omitempty"` // 第一名设置
SecondLine []RankLine `json:"secondLine,optional,omitempty"` // 第二名设置
SortBySwitch bool `json:"sortBySwitch,optional,omitempty"` // 排序开关
SortBySeries string `json:"sortBySeries,optional,omitempty"` // 排序依据
SortByArrow string `json:"sortByArrow,optional,omitempty"` // 排序方向 1-降序 2-升序
}
RankLine {
SeriesValue string `json:"seriesValue"` // 排名图序列值
LabelSwitch bool `json:"labelSwitch"` // 标签开关
Label string `json:"label"` // 标签
ArrowSwitch bool `json:"arrowSwitch"` // 箭头开关
Unit string `json:"unit"` // 单位
}
Title {
TitleSwitch bool `json:"titleSwitch,optional"` // 组件标题开关
IntroduceSwitch bool `json:"introduceSwitch,optional"` // 组件说明开关
... ...