Browse Source

修复model生成带有前缀的问题

main
cobb 3 years ago
parent
commit
36fb20bf5f
  1. 6
      main.go
  2. 47
      src/components/HelloWorld.vue

6
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())
}

47
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 {
// idListID
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") {
// idListID
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)
}

Loading…
Cancel
Save