Browse Source

1. 增加注释

2. 将parameter
3. save
4. 缩写规范
main
cobb 3 years ago
parent
commit
bfe18e90e6
  1. 2
      dist/index.html
  2. 0
      dist/static/css/app.8c5894f8.css
  3. 1
      dist/static/js/app.4735cde0.js
  4. 1
      dist/static/js/app.5c229434.js
  5. 0
      dist/static/js/chunk-vendors.c95e6567.js
  6. 13
      json-gen.code-workspace
  7. 145
      src/components/HelloWorld.vue

2
dist/index.html

@ -1 +1 @@
<!DOCTYPE html><html lang=""><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><title>json-gen</title><link href="static/css/app.d40fc157.css" rel="preload" as="style"><link href="static/css/chunk-vendors.f41a1f9e.css" rel="preload" as="style"><link href="static/js/app.5c229434.js" rel="preload" as="script"><link href="static/js/chunk-vendors.dbe154a8.js" rel="preload" as="script"><link href="static/css/chunk-vendors.f41a1f9e.css" rel="stylesheet"><link href="static/css/app.d40fc157.css" rel="stylesheet"></head><body><noscript><strong>We're sorry but json-gen doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div><script src="static/js/chunk-vendors.dbe154a8.js"></script><script src="static/js/app.5c229434.js"></script></body></html>
<!DOCTYPE html><html lang=""><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><title>json-gen</title><link href="static/css/app.8c5894f8.css" rel="preload" as="style"><link href="static/css/chunk-vendors.f41a1f9e.css" rel="preload" as="style"><link href="static/js/app.4735cde0.js" rel="preload" as="script"><link href="static/js/chunk-vendors.c95e6567.js" rel="preload" as="script"><link href="static/css/chunk-vendors.f41a1f9e.css" rel="stylesheet"><link href="static/css/app.8c5894f8.css" rel="stylesheet"></head><body><noscript><strong>We're sorry but json-gen doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div><script src="static/js/chunk-vendors.c95e6567.js"></script><script src="static/js/app.4735cde0.js"></script></body></html>

dist/static/css/app.d40fc157.css → dist/static/css/app.8c5894f8.css

1
dist/static/js/app.4735cde0.js
File diff suppressed because it is too large
View File

1
dist/static/js/app.5c229434.js
File diff suppressed because it is too large
View File

dist/static/js/chunk-vendors.dbe154a8.js → dist/static/js/chunk-vendors.c95e6567.js

13
json-gen.code-workspace

@ -0,0 +1,13 @@
{
"folders": [
{
"path": "."
},
{
"path": "..\\entertainment-golang"
}
],
"settings": {
"makefile.extensionOutputFolder": "./.vscode"
}
}

145
src/components/HelloWorld.vue

@ -316,6 +316,7 @@ export default {
${tableName}Service *service.${tableName}Service ${tableName}Service *service.${tableName}Service
} }
// Create${tableName} ${tableName}
func (l *${tableName}Api) Create${tableName}(c *gin.Context) { func (l *${tableName}Api) Create${tableName}(c *gin.Context) {
req := &model.${tableName}{} req := &model.${tableName}{}
if err := ginplus.ParseJSON(c, req); err != nil { if err := ginplus.ParseJSON(c, req); err != nil {
@ -330,6 +331,7 @@ export default {
ginplus.ResOK(c) ginplus.ResOK(c)
} }
// Get${tableName}One ${tableName}
func (l *${tableName}Api) Get${tableName}One(c *gin.Context) { func (l *${tableName}Api) Get${tableName}One(c *gin.Context) {
req := &schema.IDResult{} req := &schema.IDResult{}
if err := ginplus.ParseQuery(c, req); err != nil { if err := ginplus.ParseQuery(c, req); err != nil {
@ -344,6 +346,7 @@ export default {
ginplus.ResSuccess(c, resp) ginplus.ResSuccess(c, resp)
} }
// List${tableName} ${tableName}
func (l *${tableName}Api) List${tableName}(c *gin.Context) { func (l *${tableName}Api) List${tableName}(c *gin.Context) {
req := &model.${tableName}ReqParams{} req := &model.${tableName}ReqParams{}
if err := ginplus.ParseQuery(c, req); err != nil { if err := ginplus.ParseQuery(c, req); err != nil {
@ -356,15 +359,19 @@ export default {
return return
} }
if req.Export { if req.Export {
f, _ := excelize.Excelize(resp,
f, err := excelize.Excelize(resp,
excelize.ColumnFilter("create_time", excelize.FilterTimestamp), excelize.ColumnFilter("create_time", excelize.FilterTimestamp),
) )
if err != nil {
return ginplus.ResError(c, err)
}
ginplus.ResExcel(c, f, "导出信息列表") ginplus.ResExcel(c, f, "导出信息列表")
return return
} }
ginplus.ResPage(c, resp) ginplus.ResPage(c, resp)
} }
// Delete${tableName} ${tableName}
func (l *${tableName}Api) Delete${tableName}(c *gin.Context) { func (l *${tableName}Api) Delete${tableName}(c *gin.Context) {
var req schema.IDResult var req schema.IDResult
if err := ginplus.ParseQuery(c, &req); err != nil { if err := ginplus.ParseQuery(c, &req); err != nil {
@ -410,6 +417,7 @@ export default {
${tableName} *model.${tableName}Repo ${tableName} *model.${tableName}Repo
} }
// Get${tableName}List ${tableName}
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} var l []*model.${tableName}
cnt, err := a.${tableName}.Q().Filter(req).List(ctx, &l) cnt, err := a.${tableName}.Q().Filter(req).List(ctx, &l)
@ -426,6 +434,7 @@ export default {
return pagination, nil return pagination, nil
} }
// Get${tableName} ${tableName}
func (a *${tableName}Service) Get${tableName}One(ctx context.Context, ${primaryLower} int64) (interface{}, error) { func (a *${tableName}Service) Get${tableName}One(ctx context.Context, ${primaryLower} int64) (interface{}, error) {
var o model.${tableName} var o model.${tableName}
err := a.${tableName}.Q().${primary}(${primaryLower}).One(ctx, &o) err := a.${tableName}.Q().${primary}(${primaryLower}).One(ctx, &o)
@ -435,6 +444,7 @@ export default {
return o, nil return o, nil
} }
// Del${tableName} ${tableName}
func (a *${tableName}Service) Del${tableName}(ctx context.Context, ${primaryLower} int64) error { func (a *${tableName}Service) Del${tableName}(ctx context.Context, ${primaryLower} int64) error {
var o model.${tableName} var o model.${tableName}
err := a.${tableName}.Q().${primary}(${primaryLower}).One(ctx, &o) err := a.${tableName}.Q().${primary}(${primaryLower}).One(ctx, &o)
@ -444,6 +454,7 @@ export default {
return a.${tableName}.Delete(ctx, o.${primary}) return a.${tableName}.Delete(ctx, o.${primary})
} }
// Create${tableName} ${tableName}
func (a *${tableName}Service) Create${tableName}(ctx context.Context, r *model.${tableName}) error { func (a *${tableName}Service) Create${tableName}(ctx context.Context, r *model.${tableName}) error {
if r.${primary} == 0 { if r.${primary} == 0 {
_, err := a.${tableName}.Create(ctx, r) _, err := a.${tableName}.Create(ctx, r)
@ -502,44 +513,69 @@ export default {
} }
// GetTableName get sql table name. // GetTableName get sql table name.
func (obj *${tableName}Repo) TableName() string {
func (repo *${tableName}Repo) TableName() string {
return "${v.title}" return "${v.title}"
} }
func (obj *${tableName}Repo) PreTableName(s string) string {
// PreTableName
func (repo *${tableName}Repo) PreTableName(s string) string {
b := strings.Builder{} b := strings.Builder{}
b.WriteString(obj.TableName())
b.WriteString(repo.TableName())
b.WriteString(".") b.WriteString(".")
b.WriteString(s) b.WriteString(s)
return b.String() return b.String()
} }
// Delete By ID // Delete By ID
func (obj *${tableName}Repo) Delete(ctx context.Context, ${primaryLower} int64) error {
err := obj.DB.WithContext(ctx).Delete(&${tableName}{}, ${primaryLower}).Error
func (repo *${tableName}Repo) Delete(ctx context.Context, ${primaryLower} int64) error {
err := repo.DB.WithContext(ctx).Delete(&${tableName}{}, ${primaryLower}).Error
return err return err
} }
// CacheKey${primary} CacheKey generate by ids // CacheKey${primary} CacheKey generate by ids
func (obj *${tableName}Repo) CacheKey${primary}(${primaryLower} int64) string {
return strings.Join([]string{obj.TableName(), "${primaryLower}", utils.AsString(${primaryLower})}, "_")
func (repo *${tableName}Repo) CacheKey${primary}(${primaryLower} int64) string {
return strings.Join([]string{repo.TableName(), "${primaryLower}", utils.AsString(${primaryLower})}, "_")
} }
// Updates // Updates
func (obj *${tableName}Repo) Updates(ctx context.Context, input *${tableName}, q *${tableNameLower}Q) error {
func (repo *${tableName}Repo) Updates(ctx context.Context, input *${tableName}, q *${tableNameLower}Q) error {
Q := q.Query(ctx) Q := q.Query(ctx)
key := "" key := ""
if k, _ := Q.InstanceGet("cache_key"); k != nil { if k, _ := Q.InstanceGet("cache_key"); k != nil {
key = utils.AsString(k) key = utils.AsString(k)
} }
return obj.Cache.Exec(ctx, key, func(ctx context.Context) error {
return repo.Cache.Exec(ctx, key, func(ctx context.Context) error {
return Q.Updates(*input).Error return Q.Updates(*input).Error
}) })
} }
// Save Updates
func (repo *${tableName}Repo) Save(ctx context.Context, input *${tableName}, q *${tableNameLower}Q) error {
Q := q.Query(ctx)
key := ""
if k, _ := Q.InstanceGet("cache_key"); k != nil {
key = utils.AsString(k)
}
return repo.Cache.Exec(ctx, key, func(ctx context.Context) error {
return Q.Save(*input).Error
})
}
// updateColumn
func (repo *${tableName}Repo) updateColumn(ctx context.Context, column string, value interface{}, q *${tableNameLower}Q) error {
Q := q.Query(ctx)
key := ""
if k, _ := Q.InstanceGet("cache_key"); k != nil {
key = utils.AsString(k)
}
return repo.Cache.Exec(ctx, key, func(ctx context.Context) error {
return Q.UpdateColumn(column, value).Error
})
}
// Create // Create
func (obj *${tableName}Repo) Create(ctx context.Context, input *${tableName}) (*${tableName}, error) {
if err := obj.DB.WithContext(ctx).Create(input).Error; err != nil {
func (repo *${tableName}Repo) Create(ctx context.Context, input *${tableName}) (*${tableName}, error) {
if err := repo.DB.WithContext(ctx).Create(input).Error; err != nil {
return nil, err return nil, err
} }
return input, nil return input, nil
@ -551,31 +587,31 @@ export default {
opts []GormOptionFunc opts []GormOptionFunc
} }
func (obj *${tableName}Repo) Q() *${tableNameLower}Q {
func (repo *${tableName}Repo) Q() *${tableNameLower}Q {
q := &${tableNameLower}Q{ q := &${tableNameLower}Q{
Repo: obj,
Repo: repo,
} }
q.BaseModelFunc = obj.PreTableName
q.BaseModelFunc = repo.PreTableName
return q return q
} }
// List // List
func (obj *${tableNameLower}Q) List(ctx context.Context, value interface{}) (int64, error) {
func (q *${tableNameLower}Q) List(ctx context.Context, value interface{}) (int64, error) {
var cnt int64 var cnt int64
err := obj.Query(ctx).Order("${primaryLower} desc").Find(value).Offset(-1).Count(&cnt).Error
err := q.Query(ctx).Order("${primaryLower} desc").Find(value).Offset(-1).Count(&cnt).Error
return cnt, err return cnt, err
} }
//One //One
func (obj *${tableNameLower}Q) One(ctx context.Context, value interface{}) error {
Q := obj.Query(ctx)
func (q *${tableNameLower}Q) One(ctx context.Context, value interface{}) error {
Q := q.Query(ctx)
cache_key := "" cache_key := ""
// //
if k, _ := Q.InstanceGet("cache_key"); len(obj.opts) == 1 && k != nil {
if k, _ := Q.InstanceGet("cache_key"); len(q.opts) == 1 && k != nil {
cache_key = utils.AsString(k) cache_key = utils.AsString(k)
Q = Q.Select("*") Q = Q.Select("*")
} }
return obj.Repo.Cache.Query(ctx, cache_key, value, func(ctx context.Context) error {
return q.Repo.Cache.Query(ctx, cache_key, value, func(ctx context.Context) error {
err := Q.First(value).Error err := Q.First(value).Error
if errors.Is(err, gorm.ErrRecordNotFound) { if errors.Is(err, gorm.ErrRecordNotFound) {
return errors.ErrIdCanNotFound return errors.ErrIdCanNotFound
@ -584,17 +620,18 @@ export default {
}) })
} }
func (obj *${tableNameLower}Q) Query(ctx context.Context) *gorm.DB {
db := obj.Repo.DB.WithContext(ctx).Model(&${tableName}{})
for _, f := range obj.opts {
// Query
func (q *${tableNameLower}Q) Query(ctx context.Context) *gorm.DB {
db := q.Repo.DB.WithContext(ctx).Model(&${tableName}{})
for _, f := range q.opts {
db = f(db) db = f(db)
} }
return db return db
} }
func (obj *${tableNameLower}Q) where(key string, value interface{}) {
obj.opts = append(obj.opts, func(db *gorm.DB) *gorm.DB {
db = db.Where(obj.Repo.PreTableName(key), value)
func (q *${tableNameLower}Q) where(key string, value interface{}) {
q.opts = append(q.opts, func(db *gorm.DB) *gorm.DB {
db = db.Where(q.Repo.PreTableName(key), value)
return db return db
}) })
} }
@ -605,19 +642,18 @@ export default {
func (p *${tableName}ReqParams) GetExport() bool { return p.Export } func (p *${tableName}ReqParams) GetExport() bool { return p.Export }
type ${tableName}ReqParams struct { type ${tableName}ReqParams struct {
Query *${tableName}Params \`json:"query,omitempty" form:"inner_query"\`
Export bool \`json:"export,omitempty" form:"export"\` Export bool \`json:"export,omitempty" form:"export"\`
ForQuery string \`json:"export,omitempty" form:"query"\`
Query string \`json:"query,omitempty" form:"query"\`
Fields []string \`json:"fields,omitempty" form:"fields"\` Fields []string \`json:"fields,omitempty" form:"fields"\`
PageNum int \`json:"pageNum,omitempty" form:"pageNum"\` PageNum int \`json:"pageNum,omitempty" form:"pageNum"\`
PageSize int \`json:"pageSize,omitempty" form:"pageSize"\` PageSize int \`json:"pageSize,omitempty" form:"pageSize"\`
}
type ${tableName}Params struct {\n`;
`;
var center = ``; var center = ``;
var paramstail = `}`; var paramstail = `}`;
var optCommon = ``; var optCommon = ``;
var filterHeader = ` var filterHeader = `
// Filter
func (opt *${tableNameLower}Q) Filter(para *${tableName}ReqParams) *${tableNameLower}Q { func (opt *${tableNameLower}Q) Filter(para *${tableName}ReqParams) *${tableNameLower}Q {
if para != nil { if para != nil {
if para.Export { if para.Export {
@ -626,10 +662,9 @@ export default {
} }
opt.opts = append(opt.opts, opt.Select(para.Fields...)) 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 = ``; var filtercenter = ``;
var filtertail = `}}
var filtertail = `}
return opt}`; return opt}`;
Object.keys(properties).forEach(function (key) { Object.keys(properties).forEach(function (key) {
@ -659,8 +694,8 @@ export default {
`; `;
var f = ` var f = `
func (g ${tableKey}) ${value}() bool { return g == ${tableKey}${value} } \n func (g ${tableKey}) ${value}() bool { return g == ${tableKey}${value} } \n
func (obj *${tableName}Repo) ${value}(ctx context.Context, id int64) error {
return obj.Updates(ctx, &${tableName}{${skey}: ${tableKey}${value}}, obj.Q().${primary}(id))
func (repo *${tableName}Repo) ${value}(ctx context.Context, id int64) error {
return repo.updateColumn(ctx, "${key}", ${tableKey}${value}, repo.Q().${primary}(id))
} \n } \n
`; `;
enumcenter += s; enumcenter += s;
@ -681,7 +716,7 @@ export default {
} }
`; `;
optCommon += ` optCommon += `
func (obj *${tableNameLower}Q) ${skey}Interval(interval []interface{}) *${tableNameLower}Q {
func (q *${tableNameLower}Q) ${skey}Interval(interval []interface{}) *${tableNameLower}Q {
fn := func(db *gorm.DB) *gorm.DB { fn := func(db *gorm.DB) *gorm.DB {
db = db.Clauses( db = db.Clauses(
TimeStampDate{ TimeStampDate{
@ -690,8 +725,8 @@ export default {
}) })
return db return db
} }
obj.opts = append(obj.opts, fn)
return obj
q.opts = append(q.opts, fn)
return q
} }
\n \n
`; `;
@ -705,14 +740,14 @@ export default {
center += `${skey}In []${type} \`json:"${caseKey}|in,omitempty" form:"${caseKey}|in"\`\n`; center += `${skey}In []${type} \`json:"${caseKey}|in,omitempty" form:"${caseKey}|in"\`\n`;
} }
filtercenter += ` filtercenter += `
if len(para.Query.${skey}In) > 0 {
opt.${skey}In(para.Query.${skey}In...)
if len(para.${skey}In) > 0 {
opt.${skey}In(para.${skey}In...)
} }
`; `;
optCommon += ` optCommon += `
func (obj *${tableNameLower}Q) ${skey}In(${skey}s ...${type}) *${tableNameLower}Q {
obj.where("${key} in (?)", ${skey}s)
return obj
func (q *${tableNameLower}Q) ${skey}In(${skey}s ...${type}) *${tableNameLower}Q {
q.where("${key} in (?)", ${skey}s)
return q
} }
\n \n
`; `;
@ -726,22 +761,22 @@ export default {
} }
if (type == "string") { if (type == "string") {
filtercenter += ` filtercenter += `
if para.Query.${skey} != "" {
opt.${skey}(para.Query.${skey})
if para.${skey} != "" {
opt.${skey}(para.${skey})
} }
`; `;
} else if (key !== "id") { } else if (key !== "id") {
// idListID // idListID
filtercenter += ` filtercenter += `
if para.Query.${skey} != 0 {
opt.${skey}(para.Query.${skey})
if para.${skey} != 0 {
opt.${skey}(para.${skey})
} }
`; `;
} }
optCommon += ` optCommon += `
func (obj *${tableNameLower}Q) ${skey}(${skey} ${type}) *${tableNameLower}Q {
obj.where("${key} = ?", ${skey})
return obj
func (q *${tableNameLower}Q) ${skey}(${skey} ${type}) *${tableNameLower}Q {
q.where("${key} = ?", ${skey})
return q
} }
\n \n
`; `;
@ -752,14 +787,14 @@ export default {
center += `${skey}Like ${type} \`json:"${caseKey}|like,omitempty" form:"${caseKey}|like"\`\n`; center += `${skey}Like ${type} \`json:"${caseKey}|like,omitempty" form:"${caseKey}|like"\`\n`;
} }
filtercenter += ` filtercenter += `
if para.Query.${skey}Like != "" {
opt.${skey}Like(para.Query.${skey}Like)
if para.${skey}Like != "" {
opt.${skey}Like(para.${skey}Like)
} }
`; `;
optCommon += ` optCommon += `
func (obj *${tableNameLower}Q) ${skey}Like(${skey} ${type}) *${tableNameLower}Q {
obj.where("${key} like ?", "%"+${skey}+"%")
return obj
func (q *${tableNameLower}Q) ${skey}Like(${skey} ${type}) *${tableNameLower}Q {
q.where("${key} like ?", "%"+${skey}+"%")
return q
} }
\n \n
`; `;

Loading…
Cancel
Save