From 36fb20bf5f00b567c276a8a1c6c789f003b9a466 Mon Sep 17 00:00:00 2001 From: cobb Date: Thu, 28 Jul 2022 16:58:01 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dmodel=E7=94=9F=E6=88=90?= =?UTF-8?q?=E5=B8=A6=E6=9C=89=E5=89=8D=E7=BC=80=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main.go | 6 +++-- src/components/HelloWorld.vue | 47 +++++++++++++++++++---------------- 2 files changed, 30 insertions(+), 23 deletions(-) diff --git a/main.go b/main.go index 1432166..f4e46b0 100644 --- a/main.go +++ b/main.go @@ -513,8 +513,9 @@ func main() { r.Use(Cors()) r.POST("/sql", func(c *gin.Context) { var req struct { - Content string `json:"content"` - Camel bool `json:"camel"` + Content string `json:"content"` + Camel bool `json:"camel"` + TablePrefix string `json:"table_prefix"` // 去除表前缀 } err := c.BindJSON(&req) if err != nil { @@ -525,6 +526,7 @@ func main() { opts = append(opts, WithGormType()) opts = append(opts, WithJsonTag()) opts = append(opts, WithZhTag()) + opts = append(opts, WithTablePrefix(req.TablePrefix)) if req.Camel { opts = append(opts, WithCamel()) } diff --git a/src/components/HelloWorld.vue b/src/components/HelloWorld.vue index 6cdc80a..74a89ba 100644 --- a/src/components/HelloWorld.vue +++ b/src/components/HelloWorld.vue @@ -107,9 +107,12 @@ function lowerCase(str) { function rmPrefix(str) { if (str.indexOf("_") > -1) { var n = str.indexOf("_"); - return str.slice(n + 1, str.length); + return { + prefix: str.slice(0, n + 1), + suffix: str.slice(n + 1, str.length), + }; } - return str; + return { prefix: "", suffix: str }; } function typeMap(str) { @@ -225,7 +228,7 @@ export default { this.schemaKey = Date.now(); }, handleRouteOutput(v) { - const title = rmPrefix(v.title); + const title = rmPrefix(v.title).suffix; const tableName = toCamelCase(title); const lowTableName = title; const Output = ` @@ -240,7 +243,7 @@ export default { return Output; }, handleJsApi(v) { - const title = rmPrefix(v.title); + const title = rmPrefix(v.title).suffix; const tableName = toCamelCase(title); const lowTableName = title; const Output = ` @@ -289,7 +292,7 @@ export default { return Output; }, handleApiOutput(v) { - const title = rmPrefix(v.title); + const title = rmPrefix(v.title).suffix; const tableName = toCamelCase(title); const apiOutput = ` package api @@ -378,7 +381,7 @@ export default { return apiOutput; }, handleServiceOutput(v) { - const title = rmPrefix(v.title); + const title = rmPrefix(v.title).suffix; const tableName = toCamelCase(title); const properties = v.properties; var primary = ``; @@ -400,20 +403,20 @@ export default { "encoding/json" "github.com/google/wire" - ) + ) var ${tableName}ServiceSet = wire.NewSet(wire.Struct(new(${tableName}Service), "*")) - + type ${tableName}Service struct { ${tableName} *model.${tableName}Repo } - - func (a *${tableName}Service) Get${tableName}List(ctx context.Context, req *model.${tableName}ReqParams) (*schema.PaginationResult, error) { + + func (a *${tableName}Service) Get${tableName}List(ctx context.Context, req *model.${tableName}ReqParams) (*schema.PaginationResult, error) { var l []*model.${tableName} cnt, err := a.${tableName}.Q().Filter(req).List(ctx, &l) if err != nil { return nil, errors.WithStack(err) } - + pagination := &schema.PaginationResult{ Count: cnt, List: l, @@ -455,7 +458,7 @@ export default { `; return serviceOutput; }, - getMyStruct() { + getMyStruct(tablePrefix) { var oReq = new XMLHttpRequest(); oReq.open("POST", "/sql", false); // 同步请求 oReq.setRequestHeader("Content-type", "application/json"); @@ -464,17 +467,19 @@ export default { JSON.stringify({ content: this.sqlinput, camel: !this.isUnderScoreCase, + table_prefix: tablePrefix, }) ); //发送数据需要自定义,这里发送的是JSON结构 var result = oReq.responseText; //响应结果 return result; }, handleModelOutput(v) { - var struct = this.getMyStruct(); + const tablePrefix = rmPrefix(v.title).prefix; + var struct = this.getMyStruct(tablePrefix); console.log("struct", struct); const requires = v.required; const properties = v.properties; - const title = rmPrefix(v.title); + const title = rmPrefix(v.title).suffix; const tableName = toCamelCase(title); const tableNameLower = lowerCase(tableName); var primary = ``; @@ -619,7 +624,7 @@ export default { para.PageSize = 10000 } opt.opts = append(opt.opts, opt.Select(para.Fields...)) - opt.opts = append(opt.opts, opt.Pagination(para)) + opt.opts = append(opt.opts, opt.Pagination(para)) if para.Query != nil { `; var filtercenter = ``; @@ -639,7 +644,7 @@ export default { const enumlist = o.enum; const enumdesc = o.enumDesc; var enumbegin = ` - type ${tableKey} ${type} + type ${tableKey} ${type} const ( `; var enumcenter = ``; @@ -664,7 +669,7 @@ export default { if (key.indexOf("_time") > -1) { center += `${skey}Interval []interface{} \`json:"${key}|interval,omitempty"\`\n`; - filtercenter += ` + filtercenter += ` if len(para.Query.${skey}Interval) > 0 { opt.${skey}Interval(para.Query.${skey}Interval) } @@ -689,7 +694,7 @@ export default { // id过滤掉,不能生成,List里面可以查询ID会有风险 if (key.indexOf("_id") > -1) { center += `${skey}In []${type} \`json:"${key}|in,omitempty"\`\n`; - filtercenter += ` + filtercenter += ` if len(para.Query.${skey}In) > 0 { opt.${skey}In(para.Query.${skey}In...) } @@ -706,14 +711,14 @@ export default { if (requires.indexOf(key) > -1) { center += `${skey} ${type} \`json:"${key},omitempty"\`\n`; if (type == "string") { - filtercenter += ` + filtercenter += ` if para.Query.${skey} != "" { opt.${skey}(para.Query.${skey}) } `; } else if (key !== "id") { // id过滤掉,不能生成,List里面可以查询ID会有风险 - filtercenter += ` + filtercenter += ` if para.Query.${skey} != 0 { opt.${skey}(para.Query.${skey}) } @@ -728,7 +733,7 @@ export default { `; if (type == "string") { center += `${skey}Like ${type} \`json:"${key}|like,omitempty"\`\n`; - filtercenter += ` + filtercenter += ` if para.Query.${skey}Like != "" { opt.${skey}Like(para.Query.${skey}Like) }