正在显示
18 个修改的文件
包含
130 行增加
和
23 行删除
| @@ -36,7 +36,7 @@ func (tableEventService *TableEventService) DigitalPlatformEventSubscribe(ctx *d | @@ -36,7 +36,7 @@ func (tableEventService *TableEventService) DigitalPlatformEventSubscribe(ctx *d | ||
| 36 | data := cmd.EventTable | 36 | data := cmd.EventTable |
| 37 | tableId := 0 | 37 | tableId := 0 |
| 38 | switch data.Type { | 38 | switch data.Type { |
| 39 | - case domain.TableDataImportEvent, domain.TableDataEditEvent, domain.TableDeleteEvent: | 39 | + case domain.TableDataImportEvent, domain.TableDataEditEvent, domain.TableDeleteEvent, domain.TableStructEditEvent: |
| 40 | tableId = data.Table.TableId | 40 | tableId = data.Table.TableId |
| 41 | case domain.QuerySetUpdateEvent, domain.QuerySetUpdateRenameEvent: | 41 | case domain.QuerySetUpdateEvent, domain.QuerySetUpdateRenameEvent: |
| 42 | tableId = data.QuerySet.QuerySetInfo.BindTableId | 42 | tableId = data.QuerySet.QuerySetInfo.BindTableId |
| @@ -102,7 +102,7 @@ func (tableEventService *TableEventService) DigitalPlatformEventSubscribe(ctx *d | @@ -102,7 +102,7 @@ func (tableEventService *TableEventService) DigitalPlatformEventSubscribe(ctx *d | ||
| 102 | 102 | ||
| 103 | querySetRepository, _, _ := factory.FastPgQuerySet(transactionContext, 0) | 103 | querySetRepository, _, _ := factory.FastPgQuerySet(transactionContext, 0) |
| 104 | var mapTableQuerySet = make(map[int]*domain.QuerySet) | 104 | var mapTableQuerySet = make(map[int]*domain.QuerySet) |
| 105 | - if len(tree) > 0 && cmd.EventTable.QuerySet != nil { | 105 | + if len(tree) > 0 { // && cmd.EventTable.QuerySet != nil |
| 106 | _, querySets, _ := querySetRepository.Find(map[string]interface{}{ | 106 | _, querySets, _ := querySetRepository.Find(map[string]interface{}{ |
| 107 | "types": []string{domain.SchemaTable.ToString(), domain.CalculateItem.ToString(), domain.CalculateSet.ToString()}, | 107 | "types": []string{domain.SchemaTable.ToString(), domain.CalculateItem.ToString(), domain.CalculateSet.ToString()}, |
| 108 | "bindTableIds": tree, | 108 | "bindTableIds": tree, |
| @@ -37,7 +37,7 @@ func (tableEventService *TableEventService) Handler(ctx *domain.Context, cmd *co | @@ -37,7 +37,7 @@ func (tableEventService *TableEventService) Handler(ctx *domain.Context, cmd *co | ||
| 37 | data := cmd.EventTable | 37 | data := cmd.EventTable |
| 38 | tableId := 0 | 38 | tableId := 0 |
| 39 | switch data.Type { | 39 | switch data.Type { |
| 40 | - case domain.TableDataImportEvent, domain.TableDataEditEvent, domain.TableDeleteEvent: | 40 | + case domain.TableDataImportEvent, domain.TableDataEditEvent, domain.TableDeleteEvent, domain.TableStructEditEvent: |
| 41 | tableId = data.Table.TableId | 41 | tableId = data.Table.TableId |
| 42 | case domain.QuerySetUpdateEvent: | 42 | case domain.QuerySetUpdateEvent: |
| 43 | tableId = data.QuerySet.QuerySetInfo.BindTableId | 43 | tableId = data.QuerySet.QuerySetInfo.BindTableId |
| @@ -92,7 +92,7 @@ func (tableEventService *TableEventService) HandlerTableAffectedMarkToConflictSt | @@ -92,7 +92,7 @@ func (tableEventService *TableEventService) HandlerTableAffectedMarkToConflictSt | ||
| 92 | data := cmd.EventTable | 92 | data := cmd.EventTable |
| 93 | tableId := 0 | 93 | tableId := 0 |
| 94 | switch data.Type { | 94 | switch data.Type { |
| 95 | - case domain.TableDataEditEvent: | 95 | + case domain.TableStructEditEvent, domain.TableDeleteEvent: |
| 96 | tableId = data.Table.TableId | 96 | tableId = data.Table.TableId |
| 97 | case domain.QuerySetUpdateEvent, domain.QuerySetUpdateRenameEvent: | 97 | case domain.QuerySetUpdateEvent, domain.QuerySetUpdateRenameEvent: |
| 98 | tableId = data.QuerySet.QuerySetInfo.BindTableId | 98 | tableId = data.QuerySet.QuerySetInfo.BindTableId |
| @@ -25,7 +25,15 @@ type FileDto struct { | @@ -25,7 +25,15 @@ type FileDto struct { | ||
| 25 | // 表ID | 25 | // 表ID |
| 26 | TableId int `json:"tableId"` | 26 | TableId int `json:"tableId"` |
| 27 | // 允许表生成标识 1:允许生成分表 0:不允许 | 27 | // 允许表生成标识 1:允许生成分表 0:不允许 |
| 28 | - AllowTableGenerateFlag int `json:"allowTableGenerateFlag"` | 28 | + AllowTableGenerateFlag int `json:"-"` |
| 29 | + // 允许表处理标识 1:允许 0:不允许 | ||
| 30 | + AllowTableProcessFlag int `json:"-"` | ||
| 31 | + // 允许表导出标识 1:允许 0:不允许 | ||
| 32 | + AllowTableExportFlag int `json:"-"` | ||
| 33 | + // 标志位 1:可校验 2:可分表生成 4:导出 | ||
| 34 | + Flag int `json:"-"` | ||
| 35 | + // 标志位 1:可校验 2:可分表生成 4:导出 | ||
| 36 | + Flags []int `json:"flags"` | ||
| 29 | } | 37 | } |
| 30 | 38 | ||
| 31 | func (d *FileDto) Load(f *domain.File) *FileDto { | 39 | func (d *FileDto) Load(f *domain.File) *FileDto { |
| @@ -40,13 +48,40 @@ func (d *FileDto) Load(f *domain.File) *FileDto { | @@ -40,13 +48,40 @@ func (d *FileDto) Load(f *domain.File) *FileDto { | ||
| 40 | d.Time = xtime.New(f.UpdatedAt).Local().Format("2006-01-02 15:04:05") | 48 | d.Time = xtime.New(f.UpdatedAt).Local().Format("2006-01-02 15:04:05") |
| 41 | d.HeaderRow = domain.GetHeaderRow(f.FileInfo.HeaderRow) | 49 | d.HeaderRow = domain.GetHeaderRow(f.FileInfo.HeaderRow) |
| 42 | d.AppKey = f.AppKey | 50 | d.AppKey = f.AppKey |
| 51 | + //d.AllowTableProcessFlag = 1 | ||
| 52 | + //d.AllowTableExportFlag = 1 | ||
| 53 | + d.AddFlag(5) // 默认可以 校验、导出 | ||
| 43 | if len(f.AppKey) > 0 && f.FileInfo.TableId > 0 { | 54 | if len(f.AppKey) > 0 && f.FileInfo.TableId > 0 { |
| 44 | d.TableId = f.FileInfo.TableId | 55 | d.TableId = f.FileInfo.TableId |
| 45 | - d.AllowTableGenerateFlag = 1 | 56 | + //d.AllowTableGenerateFlag = 1 |
| 57 | + d.AddFlag(2) // 可分表生成 | ||
| 58 | + d.RemoveFlag(1) // 不可校验 | ||
| 59 | + //d.RemoveFlag(4) // 不可校验 | ||
| 60 | + //d.AllowTableProcessFlag = 0 | ||
| 61 | + //d.AllowTableExportFlag = 0 | ||
| 62 | + } | ||
| 63 | + for i := 1; i <= 4; i = i << 1 { | ||
| 64 | + if i&d.Flag == i { | ||
| 65 | + d.Flags = append(d.Flags, i) | ||
| 66 | + } | ||
| 46 | } | 67 | } |
| 47 | return d | 68 | return d |
| 48 | } | 69 | } |
| 49 | 70 | ||
| 71 | +func (d *FileDto) AddFlag(flag int) { | ||
| 72 | + if d.Flag&flag == flag { | ||
| 73 | + return | ||
| 74 | + } | ||
| 75 | + d.Flag |= flag | ||
| 76 | +} | ||
| 77 | + | ||
| 78 | +func (d *FileDto) RemoveFlag(flag int) { | ||
| 79 | + if d.Flag&flag != flag { | ||
| 80 | + return | ||
| 81 | + } | ||
| 82 | + d.Flag ^= flag | ||
| 83 | +} | ||
| 84 | + | ||
| 50 | type AppDto struct { | 85 | type AppDto struct { |
| 51 | AppId int64 `json:"appId"` | 86 | AppId int64 `json:"appId"` |
| 52 | AppKey string `json:"appKey"` | 87 | AppKey string `json:"appKey"` |
| @@ -15,7 +15,7 @@ type CreateQuerySetCommand struct { | @@ -15,7 +15,7 @@ type CreateQuerySetCommand struct { | ||
| 15 | // 标识 | 15 | // 标识 |
| 16 | Flag string `cname:"标识" json:"flag" valid:"Required"` | 16 | Flag string `cname:"标识" json:"flag" valid:"Required"` |
| 17 | // 名称 | 17 | // 名称 |
| 18 | - Name string `cname:"名称" json:"name" valid:"Required"` | 18 | + Name string `cname:"名称" json:"name"` |
| 19 | // 父级ID | 19 | // 父级ID |
| 20 | ParentId int `cname:"父级ID" json:"parentId,omitempty"` | 20 | ParentId int `cname:"父级ID" json:"parentId,omitempty"` |
| 21 | } | 21 | } |
| @@ -98,8 +98,10 @@ func (querySetService *QuerySetService) CreateQuerySet(ctx *domain.Context, crea | @@ -98,8 +98,10 @@ func (querySetService *QuerySetService) CreateQuerySet(ctx *domain.Context, crea | ||
| 98 | Name: createQuerySetCommand.Name, | 98 | Name: createQuerySetCommand.Name, |
| 99 | ParentId: createQuerySetCommand.ParentId, | 99 | ParentId: createQuerySetCommand.ParentId, |
| 100 | } | 100 | } |
| 101 | - | ||
| 102 | svr, _ := factory.FastQuerySetServices(transactionContext) | 101 | svr, _ := factory.FastQuerySetServices(transactionContext) |
| 102 | + if len(createQuerySetCommand.Name) == 0 { | ||
| 103 | + createQuerySetCommand.Name = fmt.Sprintf("%s%s", domain.EnumsDescription(domain.ObjectTypeMap, createQuerySetCommand.Type), utils.Krand(5, utils.KC_RAND_KIND_NUM)) | ||
| 104 | + } | ||
| 103 | var querySet *domain.QuerySet | 105 | var querySet *domain.QuerySet |
| 104 | if querySet, err = svr.Create(ctx, newQuerySet); err != nil { | 106 | if querySet, err = svr.Create(ctx, newQuerySet); err != nil { |
| 105 | return nil, factory.FastError(err) | 107 | return nil, factory.FastError(err) |
| @@ -35,7 +35,7 @@ func (d *TableDto) Load(m *domain.Table) *TableDto { | @@ -35,7 +35,7 @@ func (d *TableDto) Load(m *domain.Table) *TableDto { | ||
| 35 | d.Modules = make([]int, 0) | 35 | d.Modules = make([]int, 0) |
| 36 | if m.TableInfo != nil { | 36 | if m.TableInfo != nil { |
| 37 | //d.Module = m.TableInfo.ApplyOnModule | 37 | //d.Module = m.TableInfo.ApplyOnModule |
| 38 | - for i := 1; i <= 3; i++ { | 38 | + for i := 1; i <= 4; i++ { |
| 39 | if m.TableInfo.ApplyOnModule&(1<<(i-1)) > 0 { | 39 | if m.TableInfo.ApplyOnModule&(1<<(i-1)) > 0 { |
| 40 | d.Modules = append(d.Modules, 1<<(i-1)) | 40 | d.Modules = append(d.Modules, 1<<(i-1)) |
| 41 | } | 41 | } |
| @@ -24,7 +24,7 @@ type SearchTableQuery struct { | @@ -24,7 +24,7 @@ type SearchTableQuery struct { | ||
| 24 | // 返回结构信息 | 24 | // 返回结构信息 |
| 25 | ReturnDetailStructInfo bool `cname:"返回具体的结构信息 默认不返回" json:"returnDetailStructInfo"` | 25 | ReturnDetailStructInfo bool `cname:"返回具体的结构信息 默认不返回" json:"returnDetailStructInfo"` |
| 26 | // 排除分组项,只返回一级列表;默认 false 不排除,连分组也返回 | 26 | // 排除分组项,只返回一级列表;默认 false 不排除,连分组也返回 |
| 27 | - ReturnGroupItem bool `cname:"排除分组" json:"returnGroupItem"` | 27 | + ReturnGroupItem *bool `cname:"排除分组" json:"returnGroupItem"` |
| 28 | // 排除指定表 | 28 | // 排除指定表 |
| 29 | ExcludeTables []int `cname:"排除指定表" json:"excludeTables"` | 29 | ExcludeTables []int `cname:"排除指定表" json:"excludeTables"` |
| 30 | Context *domain.Context | 30 | Context *domain.Context |
| 1 | package service | 1 | package service |
| 2 | 2 | ||
| 3 | import ( | 3 | import ( |
| 4 | - "fmt" | ||
| 5 | "github.com/linmadan/egglib-go/core/application" | 4 | "github.com/linmadan/egglib-go/core/application" |
| 6 | "gitlab.fjmaimaimai.com/allied-creation/character-library-metadata-bastion/pkg/application/factory" | 5 | "gitlab.fjmaimaimai.com/allied-creation/character-library-metadata-bastion/pkg/application/factory" |
| 7 | "gitlab.fjmaimaimai.com/allied-creation/character-library-metadata-bastion/pkg/application/table/dto" | 6 | "gitlab.fjmaimaimai.com/allied-creation/character-library-metadata-bastion/pkg/application/table/dto" |
| @@ -56,7 +55,7 @@ func (tableService *TableService) TableObjectSearch(searchQuery *query.SearchTab | @@ -56,7 +55,7 @@ func (tableService *TableService) TableObjectSearch(searchQuery *query.SearchTab | ||
| 56 | querySetMapById = make(map[int]*domain.QuerySet) | 55 | querySetMapById = make(map[int]*domain.QuerySet) |
| 57 | querySetMapByTableId = make(map[int]*domain.QuerySet) | 56 | querySetMapByTableId = make(map[int]*domain.QuerySet) |
| 58 | ) | 57 | ) |
| 59 | - if searchQuery.ReturnGroupItem { | 58 | + if searchQuery.ReturnGroupItem != nil && *searchQuery.ReturnGroupItem { |
| 60 | for _, qs := range querySets { | 59 | for _, qs := range querySets { |
| 61 | querySetMapById[qs.QuerySetId] = qs | 60 | querySetMapById[qs.QuerySetId] = qs |
| 62 | } | 61 | } |
| @@ -84,6 +83,10 @@ func (tableService *TableService) TableObjectSearch(searchQuery *query.SearchTab | @@ -84,6 +83,10 @@ func (tableService *TableService) TableObjectSearch(searchQuery *query.SearchTab | ||
| 84 | if filterTableByFilterRule(t, searchQuery) { | 83 | if filterTableByFilterRule(t, searchQuery) { |
| 85 | continue | 84 | continue |
| 86 | } | 85 | } |
| 86 | + // 默认关闭的都不返回(拆解、计算) | ||
| 87 | + if t.Status == domain.StatusOff { | ||
| 88 | + continue | ||
| 89 | + } | ||
| 87 | if !domain.TableType(t.TableType).TableIsSplitByGroup() { | 90 | if !domain.TableType(t.TableType).TableIsSplitByGroup() { |
| 88 | response = append(response, t) | 91 | response = append(response, t) |
| 89 | continue | 92 | continue |
| @@ -121,9 +124,10 @@ func (tableService *TableService) TableObjectSearch(searchQuery *query.SearchTab | @@ -121,9 +124,10 @@ func (tableService *TableService) TableObjectSearch(searchQuery *query.SearchTab | ||
| 121 | sort.Slice(response, func(i, j int) bool { | 124 | sort.Slice(response, func(i, j int) bool { |
| 122 | item1 := response[i] | 125 | item1 := response[i] |
| 123 | item2 := response[j] | 126 | item2 := response[j] |
| 124 | - k1 := fmt.Sprintf("%v-%v-%v", item1.TableType, item1.ParentId, item1.Id) | ||
| 125 | - k2 := fmt.Sprintf("%v-%v-%v", item2.TableType, item2.ParentId, item2.Id) | ||
| 126 | - return k1 < k2 | 127 | + //k1 := fmt.Sprintf("%v-%v-%v", item1.TableType, item1.ParentId, item1.Id) |
| 128 | + //k2 := fmt.Sprintf("%v-%v-%v", item2.TableType, item2.ParentId, item2.Id) | ||
| 129 | + //return k1 < k2 | ||
| 130 | + return item1.Id < item2.Id | ||
| 127 | }) | 131 | }) |
| 128 | return map[string]interface{}{ | 132 | return map[string]interface{}{ |
| 129 | "count": len(response), | 133 | "count": len(response), |
| @@ -540,8 +540,9 @@ const ( | @@ -540,8 +540,9 @@ const ( | ||
| 540 | ) | 540 | ) |
| 541 | 541 | ||
| 542 | const ( | 542 | const ( |
| 543 | - ModuleAll = ModuleDigitalCenter | ModuleQuerySetCenter | ModuleCalculateCenter | 543 | + ModuleAll = ModuleDigitalCenter | ModuleQuerySetCenter | ModuleCalculateCenter | ModuleChartTemplate |
| 544 | ModuleDigitalCenter = 1 | 544 | ModuleDigitalCenter = 1 |
| 545 | ModuleQuerySetCenter = 2 | 545 | ModuleQuerySetCenter = 2 |
| 546 | ModuleCalculateCenter = 4 | 546 | ModuleCalculateCenter = 4 |
| 547 | + ModuleChartTemplate = 8 | ||
| 547 | ) | 548 | ) |
| @@ -10,6 +10,7 @@ func (et EventType) ToString() string { | @@ -10,6 +10,7 @@ func (et EventType) ToString() string { | ||
| 10 | 10 | ||
| 11 | const ( | 11 | const ( |
| 12 | TableDataEditEvent EventType = "table.data.edit" | 12 | TableDataEditEvent EventType = "table.data.edit" |
| 13 | + TableStructEditEvent EventType = "table.struct.edit" | ||
| 13 | TableDataImportEvent EventType = "table.data.import" | 14 | TableDataImportEvent EventType = "table.data.import" |
| 14 | TableDeleteEvent EventType = "table.delete" | 15 | TableDeleteEvent EventType = "table.delete" |
| 15 | QuerySetUpdateEvent EventType = "table.query.set.update" | 16 | QuerySetUpdateEvent EventType = "table.query.set.update" |
| @@ -50,6 +50,13 @@ type LayoutCellData struct { | @@ -50,6 +50,13 @@ type LayoutCellData struct { | ||
| 50 | 50 | ||
| 51 | func (l *LayoutRuleItem) LayoutCells() []*LayoutCell { | 51 | func (l *LayoutRuleItem) LayoutCells() []*LayoutCell { |
| 52 | var cells = make([]*LayoutCell, 0) | 52 | var cells = make([]*LayoutCell, 0) |
| 53 | + // 排序 | ||
| 54 | + sort.SliceStable(l.Cells, func(i, j int) bool { | ||
| 55 | + if l.Cells[i].Position.X == l.Cells[j].Position.X { | ||
| 56 | + return l.Cells[i].Position.Y < l.Cells[j].Position.Y | ||
| 57 | + } | ||
| 58 | + return l.Cells[i].Position.X < l.Cells[j].Position.X | ||
| 59 | + }) | ||
| 53 | for _, item := range l.Cells { | 60 | for _, item := range l.Cells { |
| 54 | item.X = item.Position.X | 61 | item.X = item.Position.X |
| 55 | item.Y = item.Position.Y | 62 | item.Y = item.Position.Y |
| 1 | package domain | 1 | package domain |
| 2 | 2 | ||
| 3 | type TableInfo struct { | 3 | type TableInfo struct { |
| 4 | - // 应用于模块 1:数控中心 2:拆解模块 4:计算模块 | 4 | + // 应用于模块 1:数控中心 2:拆解模块 4:计算模块 8:图表模板 |
| 5 | ApplyOnModule int `json:"module"` | 5 | ApplyOnModule int `json:"module"` |
| 6 | // 依赖关联的表 | 6 | // 依赖关联的表 |
| 7 | DependencyTables []int `json:"dependencyTables"` | 7 | DependencyTables []int `json:"dependencyTables"` |
| @@ -43,14 +43,16 @@ func (ptr *QuerySetService) Create(ctx *domain.Context, qs *domain.QuerySet) (*d | @@ -43,14 +43,16 @@ func (ptr *QuerySetService) Create(ctx *domain.Context, qs *domain.QuerySet) (*d | ||
| 43 | Name: qs.Name, | 43 | Name: qs.Name, |
| 44 | ParentId: qs.ParentId, | 44 | ParentId: qs.ParentId, |
| 45 | PinName: pinFull(qs.Name), | 45 | PinName: pinFull(qs.Name), |
| 46 | - Status: domain.StatusOn, | 46 | + Status: domain.StatusOff, |
| 47 | QuerySetInfo: &domain.QuerySetInfo{}, | 47 | QuerySetInfo: &domain.QuerySetInfo{}, |
| 48 | QueryComponents: make([]*domain.QueryComponent, 0), | 48 | QueryComponents: make([]*domain.QueryComponent, 0), |
| 49 | CreatedAt: time.Now(), | 49 | CreatedAt: time.Now(), |
| 50 | UpdatedAt: time.Now(), | 50 | UpdatedAt: time.Now(), |
| 51 | Context: ctx, | 51 | Context: ctx, |
| 52 | } | 52 | } |
| 53 | - | 53 | + if qs.Flag == domain.FlagGroup { |
| 54 | + newQuerySet.Status = domain.StatusOn | ||
| 55 | + } | ||
| 54 | querySetRepository, err := repository.NewQuerySetRepository(ptr.transactionContext) | 56 | querySetRepository, err := repository.NewQuerySetRepository(ptr.transactionContext) |
| 55 | // check parent | 57 | // check parent |
| 56 | options := map[string]interface{}{ | 58 | options := map[string]interface{}{ |
| @@ -1039,7 +1041,7 @@ func copyQuerySet(qs *domain.QuerySet, t string, groupId int, name string) *doma | @@ -1039,7 +1041,7 @@ func copyQuerySet(qs *domain.QuerySet, t string, groupId int, name string) *doma | ||
| 1039 | Name: name, | 1041 | Name: name, |
| 1040 | PinName: pinFull(name), | 1042 | PinName: pinFull(name), |
| 1041 | ParentId: groupId, | 1043 | ParentId: groupId, |
| 1042 | - Status: qs.Status, | 1044 | + Status: domain.StatusOff, |
| 1043 | QuerySetInfo: qs.QuerySetInfo, | 1045 | QuerySetInfo: qs.QuerySetInfo, |
| 1044 | QueryComponents: qs.QueryComponents, | 1046 | QueryComponents: qs.QueryComponents, |
| 1045 | Sort: 0, | 1047 | Sort: 0, |
| @@ -303,7 +303,9 @@ func DataLayout(res *domain.DataTable, cells []*domain.LayoutCell) (*domain.Data | @@ -303,7 +303,9 @@ func DataLayout(res *domain.DataTable, cells []*domain.LayoutCell) (*domain.Data | ||
| 303 | dt.processed = append(dt.processed, cell) | 303 | dt.processed = append(dt.processed, cell) |
| 304 | dt.LastCell = cell | 304 | dt.LastCell = cell |
| 305 | } | 305 | } |
| 306 | - dt.Shrink() | 306 | + if err := dt.Shrink(); err != nil { |
| 307 | + return nil, err | ||
| 308 | + } | ||
| 307 | return dt.DataTable, nil | 309 | return dt.DataTable, nil |
| 308 | } | 310 | } |
| 309 | 311 | ||
| @@ -419,7 +421,7 @@ func (d *DataLayoutDataTable) BlockData(cells *domain.LayoutCell) ([]string, int | @@ -419,7 +421,7 @@ func (d *DataLayoutDataTable) BlockData(cells *domain.LayoutCell) ([]string, int | ||
| 419 | return values, len(values) | 421 | return values, len(values) |
| 420 | } | 422 | } |
| 421 | 423 | ||
| 422 | -func (d *DataLayoutDataTable) Shrink() { | 424 | +func (d *DataLayoutDataTable) Shrink() error { |
| 423 | x := d.PointEnd.X - d.PointBegin.X | 425 | x := d.PointEnd.X - d.PointBegin.X |
| 424 | y := d.PointEnd.Y - d.PointBegin.Y | 426 | y := d.PointEnd.Y - d.PointBegin.Y |
| 425 | data := make([][]string, x+1) | 427 | data := make([][]string, x+1) |
| @@ -443,6 +445,26 @@ func (d *DataLayoutDataTable) Shrink() { | @@ -443,6 +445,26 @@ func (d *DataLayoutDataTable) Shrink() { | ||
| 443 | SQLType: domain.String.ToString(), | 445 | SQLType: domain.String.ToString(), |
| 444 | }) | 446 | }) |
| 445 | } | 447 | } |
| 448 | + // 默认计算集第一行作为标题 | ||
| 449 | + //if len(data) >= 1 { | ||
| 450 | + // d.DataTable.Data = data[1:] | ||
| 451 | + // columnMap := collection.NewSet() | ||
| 452 | + // for i := 0; i < len(data[0]); i++ { | ||
| 453 | + // if len(data[0][i]) == 0 { | ||
| 454 | + // return fmt.Errorf("计算集标题第%d列不能为空", i+1) | ||
| 455 | + // } | ||
| 456 | + // if columnMap.Contains(data[0][i]) { | ||
| 457 | + // return fmt.Errorf("计算集第%d列重复:%v", i+1, data[0][i]) | ||
| 458 | + // } | ||
| 459 | + // columnMap.Add(data[0][i]) | ||
| 460 | + // d.DataTable.Fields = append(d.DataTable.Fields, &domain.Field{ | ||
| 461 | + // Name: data[0][i], | ||
| 462 | + // SQLName: fmt.Sprintf("col%d", i), | ||
| 463 | + // SQLType: domain.String.ToString(), | ||
| 464 | + // }) | ||
| 465 | + // } | ||
| 466 | + //} | ||
| 467 | + return nil | ||
| 446 | } | 468 | } |
| 447 | 469 | ||
| 448 | func (d *DataLayoutDataTable) Expand(cell *domain.LayoutCell, length int) error { | 470 | func (d *DataLayoutDataTable) Expand(cell *domain.LayoutCell, length int) error { |
| @@ -66,7 +66,7 @@ func (ptr *UpdateTableStructService) UpdateTableStruct(ctx *domain.Context, tabl | @@ -66,7 +66,7 @@ func (ptr *UpdateTableStructService) UpdateTableStruct(ctx *domain.Context, tabl | ||
| 66 | } | 66 | } |
| 67 | } | 67 | } |
| 68 | defer func() { | 68 | defer func() { |
| 69 | - AsyncEvent(domain.NewEventTable(ctx, domain.TableDataEditEvent).WithTable(table)) | 69 | + AsyncEvent(domain.NewEventTable(ctx, domain.TableStructEditEvent).WithTable(table)) |
| 70 | }() | 70 | }() |
| 71 | // 日志 | 71 | // 日志 |
| 72 | if err = FastLog(ptr.transactionContext, domain.CommonLog, table.TableId, &SubTableEditLog{ | 72 | if err = FastLog(ptr.transactionContext, domain.CommonLog, table.TableId, &SubTableEditLog{ |
pkg/infrastructure/utils/krand.go
0 → 100644
| 1 | +package utils | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "math/rand" | ||
| 5 | + "time" | ||
| 6 | +) | ||
| 7 | + | ||
| 8 | +const ( | ||
| 9 | + KC_RAND_KIND_NUM = 0 // 纯数字 | ||
| 10 | + KC_RAND_KIND_LOWER = 1 // 小写字母 | ||
| 11 | + KC_RAND_KIND_UPPER = 2 // 大写字母 | ||
| 12 | + KC_RAND_KIND_ALL = 3 // 数字、大小写字母 | ||
| 13 | +) | ||
| 14 | + | ||
| 15 | +// 随机字符串 | ||
| 16 | +func Krand(size int, kind int) string { | ||
| 17 | + ikind, kinds, result := kind, [][]int{[]int{10, 48}, []int{26, 97}, []int{26, 65}}, make([]byte, size) | ||
| 18 | + is_all := kind > 2 || kind < 0 | ||
| 19 | + rand.Seed(time.Now().UnixNano()) | ||
| 20 | + for i := 0; i < size; i++ { | ||
| 21 | + if is_all { // random ikind | ||
| 22 | + ikind = rand.Intn(3) | ||
| 23 | + } | ||
| 24 | + scope, base := kinds[ikind][0], kinds[ikind][1] | ||
| 25 | + result[i] = uint8(base + rand.Intn(scope)) | ||
| 26 | + } | ||
| 27 | + return string(result) | ||
| 28 | +} |
| @@ -156,6 +156,10 @@ func (controller *TableController) TableObjectSearch() { | @@ -156,6 +156,10 @@ func (controller *TableController) TableObjectSearch() { | ||
| 156 | tableService := service.NewTableService(nil) | 156 | tableService := service.NewTableService(nil) |
| 157 | cmd := &query.SearchTableQuery{} | 157 | cmd := &query.SearchTableQuery{} |
| 158 | Must(controller.Unmarshal(cmd)) | 158 | Must(controller.Unmarshal(cmd)) |
| 159 | + defaultReturnGroup := true | ||
| 160 | + if cmd.ReturnGroupItem == nil { | ||
| 161 | + cmd.ReturnGroupItem = &defaultReturnGroup | ||
| 162 | + } | ||
| 159 | cmd.Context = ParseContext(controller.BaseController) | 163 | cmd.Context = ParseContext(controller.BaseController) |
| 160 | data, err := tableService.TableObjectSearch(cmd) | 164 | data, err := tableService.TableObjectSearch(cmd) |
| 161 | controller.Response(data, err) | 165 | controller.Response(data, err) |
| @@ -11,6 +11,7 @@ func Start() { | @@ -11,6 +11,7 @@ func Start() { | ||
| 11 | 11 | ||
| 12 | func RegisterEvent() { | 12 | func RegisterEvent() { |
| 13 | event.On(domain.TableDataEditEvent.ToString(), event.ListenerFunc(tableDataChangeHandler), event.High) | 13 | event.On(domain.TableDataEditEvent.ToString(), event.ListenerFunc(tableDataChangeHandler), event.High) |
| 14 | + event.On(domain.TableStructEditEvent.ToString(), event.ListenerFunc(tableDataChangeHandler), event.High) | ||
| 14 | event.On(domain.TableDataImportEvent.ToString(), event.ListenerFunc(tableDataChangeHandler), event.High) | 15 | event.On(domain.TableDataImportEvent.ToString(), event.ListenerFunc(tableDataChangeHandler), event.High) |
| 15 | event.On(domain.TableDeleteEvent.ToString(), event.ListenerFunc(tableDataChangeHandler), event.High) | 16 | event.On(domain.TableDeleteEvent.ToString(), event.ListenerFunc(tableDataChangeHandler), event.High) |
| 16 | event.On(domain.QuerySetUpdateEvent.ToString(), event.ListenerFunc(tableDataChangeHandler), event.High) | 17 | event.On(domain.QuerySetUpdateEvent.ToString(), event.ListenerFunc(tableDataChangeHandler), event.High) |
-
请 注册 或 登录 后发表评论