作者 yangfu

fix:check table row duplicate

@@ -119,6 +119,14 @@ func NewFormulaSelectCondition(c domain.ConditionExpr) FormulaSelectCondition { @@ -119,6 +119,14 @@ func NewFormulaSelectCondition(c domain.ConditionExpr) FormulaSelectCondition {
119 ConditionLeftField: NewFormulaField(c.FieldLeft, true), 119 ConditionLeftField: NewFormulaField(c.FieldLeft, true),
120 ConditionRightField: NewFormulaField(c.FieldRight), 120 ConditionRightField: NewFormulaField(c.FieldRight),
121 } 121 }
  122 + if c.OperatorSymbol == "=" && strings.ToLower(c.FieldRight.ExprSql) == "null" {
  123 + res.ConditionOperator = " is "
  124 + res.ConditionRightField.ConditionExpression = " null "
  125 + }
  126 + if c.OperatorSymbol == "!=" && strings.ToLower(c.FieldRight.ExprSql) == "null" {
  127 + res.ConditionOperator = "is not"
  128 + res.ConditionRightField.ConditionExpression = "null"
  129 + }
122 return res 130 return res
123 } 131 }
124 132
@@ -477,36 +477,6 @@ func (ptr *QuerySetService) CreateOrUpdateQuerySetTable(ctx *domain.Context, que @@ -477,36 +477,6 @@ func (ptr *QuerySetService) CreateOrUpdateQuerySetTable(ctx *domain.Context, que
477 if err = ptr.validDependentCircle(ctx, querySet, queryComponents); err != nil { 477 if err = ptr.validDependentCircle(ctx, querySet, queryComponents); err != nil {
478 return nil, err 478 return nil, err
479 } 479 }
480 - //var validTables = make([]*domain.Table, 0)  
481 - //if len(dependencyTables) > 0 {  
482 - // _, tables, err := tableRepository.Find(map[string]interface{}{"context": ctx, "tableIds": dependencyTables})  
483 - // if err != nil {  
484 - // return nil, err  
485 - // }  
486 - // tableMap := make(map[int]*domain.Table)  
487 - // for i := range tables {  
488 - // tableMap[tables[i].TableId] = tables[i]  
489 - // }  
490 - // for _, c := range queryComponents {  
491 - // if t, ok := tableMap[c.MasterTable.TableId]; ok {  
492 - // c.MasterTable = domain.NewQueryComponentTable(t)  
493 - // }  
494 - // }  
495 - // for _, t := range validTables {  
496 - // if t.TableType == domain.SchemaTable.ToString() || t.TableType == domain.SubProcessTable.ToString() {  
497 - // validTables = append(validTables, t)  
498 - // }  
499 - // }  
500 - //}  
501 - //  
502 - //// 循环依赖判断  
503 - //tableDependencyService, _ := NewTableDependencyService(ptr.transactionContext)  
504 - //if len(validTables) > 0 {  
505 - // tree := tableDependencyService.TableDependTree(validTables, querySet.QuerySetInfo.BindTableId)  
506 - // if tableDependencyService.Detect(ctx, tree.EdgesArray()) {  
507 - // return nil, NewCircleDependError(tableDependencyService.CircleTable(), querySet)  
508 - // }  
509 - //}  
510 480
511 table.TableInfo.ApplyOnModule = domain.ModuleAll 481 table.TableInfo.ApplyOnModule = domain.ModuleAll
512 table.TableInfo.DependencyTables = dependencyTables 482 table.TableInfo.DependencyTables = dependencyTables
@@ -45,7 +45,6 @@ func (ptr *AddTableStructService) AddTableStruct(ctx *domain.Context, parentTabl @@ -45,7 +45,6 @@ func (ptr *AddTableStructService) AddTableStruct(ctx *domain.Context, parentTabl
45 table.DataFields = dataFields 45 table.DataFields = dataFields
46 table.ManualFields = manualFields 46 table.ManualFields = manualFields
47 table.ParentId = parentTableId 47 table.ParentId = parentTableId
48 - //table.SQLName = mainTable.SQLName // 主表名跟分表名相同  
49 reserves, deletes, adds := domain.FieldsChange(table.Fields(false), fields) 48 reserves, deletes, adds := domain.FieldsChange(table.Fields(false), fields)
50 49
51 if err = domain.ValidFields(fields); err != nil { 50 if err = domain.ValidFields(fields); err != nil {