|
@@ -3,12 +3,23 @@ package gen
|
|
import (
|
|
import (
|
|
"strings"
|
|
"strings"
|
|
|
|
|
|
|
|
+ "github.com/tal-tech/go-zero/core/collection"
|
|
"github.com/tal-tech/go-zero/tools/goctl/model/sql/template"
|
|
"github.com/tal-tech/go-zero/tools/goctl/model/sql/template"
|
|
"github.com/tal-tech/go-zero/tools/goctl/util"
|
|
"github.com/tal-tech/go-zero/tools/goctl/util"
|
|
"github.com/tal-tech/go-zero/tools/goctl/util/stringx"
|
|
"github.com/tal-tech/go-zero/tools/goctl/util/stringx"
|
|
)
|
|
)
|
|
|
|
|
|
func genInsert(table Table, withCache bool) (string, error) {
|
|
func genInsert(table Table, withCache bool) (string, error) {
|
|
|
|
+ keySet := collection.NewSet()
|
|
|
|
+ keyVariableSet := collection.NewSet()
|
|
|
|
+ for fieldName, key := range table.CacheKey {
|
|
|
|
+ if fieldName == table.PrimaryKey.Name.Source() {
|
|
|
|
+ continue
|
|
|
|
+ }
|
|
|
|
+ keySet.AddStr(key.DataKeyExpression)
|
|
|
|
+ keyVariableSet.AddStr(key.Variable)
|
|
|
|
+ }
|
|
|
|
+
|
|
expressions := make([]string, 0)
|
|
expressions := make([]string, 0)
|
|
expressionValues := make([]string, 0)
|
|
expressionValues := make([]string, 0)
|
|
for _, filed := range table.Fields {
|
|
for _, filed := range table.Fields {
|
|
@@ -27,10 +38,13 @@ func genInsert(table Table, withCache bool) (string, error) {
|
|
Parse(template.Insert).
|
|
Parse(template.Insert).
|
|
Execute(map[string]interface{}{
|
|
Execute(map[string]interface{}{
|
|
"withCache": withCache,
|
|
"withCache": withCache,
|
|
|
|
+ "containsIndexCache": table.ContainsUniqueKey,
|
|
"upperStartCamelObject": camel,
|
|
"upperStartCamelObject": camel,
|
|
"lowerStartCamelObject": stringx.From(camel).UnTitle(),
|
|
"lowerStartCamelObject": stringx.From(camel).UnTitle(),
|
|
"expression": strings.Join(expressions, ", "),
|
|
"expression": strings.Join(expressions, ", "),
|
|
"expressionValues": strings.Join(expressionValues, ", "),
|
|
"expressionValues": strings.Join(expressionValues, ", "),
|
|
|
|
+ "keys": strings.Join(keySet.KeysStr(), "\n"),
|
|
|
|
+ "keyValues": strings.Join(keyVariableSet.KeysStr(), ", "),
|
|
})
|
|
})
|
|
if err != nil {
|
|
if err != nil {
|
|
return "", err
|
|
return "", err
|