616 lines
26 KiB
Plaintext
616 lines
26 KiB
Plaintext
// ==========================================================================
|
|
// GFast自动生成logic操作代码。
|
|
// 生成日期:{{date "Y-m-d H:i:s"}}
|
|
// 生成路径: {{.table.PackageName}}/logic/{{.table.TableName}}.go
|
|
// 生成人:{{.table.FunctionAuthor}}
|
|
// desc:{{.table.FunctionName}}
|
|
// company:云南奇讯科技有限公司
|
|
// ==========================================================================
|
|
////
|
|
|
|
{{$structName := .table.BusinessName | CaseCamelLower}}
|
|
|
|
package {{$structName}}
|
|
////
|
|
{{$gjson:=false}}
|
|
{{$libUtils:=false}}
|
|
{{$usedSystemModule:=false}}
|
|
{{$gstr:=false}}
|
|
{{$hasLinkTable:=false}}
|
|
{{$useCommonService:=false}}
|
|
{{range $index, $column := .table.Columns}}
|
|
{{if eq $column.HtmlType "images" "file" "files"}}
|
|
{{$libUtils = true}}
|
|
{{end}}
|
|
{{if and (eq $column.HtmlField "createdBy" "updatedBy" "deletedBy" "deptId") (ne $.table.ModuleName "system")}}
|
|
{{$usedSystemModule = true}}
|
|
{{end}}
|
|
{{if eq $column.HtmlType "selects" "checkbox"}}
|
|
{{range $ti, $linkedTable := $.table.LinkedTables}}
|
|
{{if eq $column.LinkTableClass $linkedTable.ClassName}}
|
|
{{$gstr = true}}
|
|
{{$hasLinkTable = true}}
|
|
{{end}}
|
|
{{end}}
|
|
{{end}}
|
|
{{end}}
|
|
{{if and .table.UseSnowId (not .table.IsPkInsertable)}}
|
|
{{$useCommonService = true}}
|
|
{{end}}
|
|
|
|
import (
|
|
"context"
|
|
"github.com/gogf/gf/v2/frame/g"
|
|
{{if .table.ExcelImp}}
|
|
"errors"
|
|
"github.com/gogf/gf/v2/net/ghttp"
|
|
"github.com/gogf/gf/v2/database/gdb"
|
|
"github.com/xuri/excelize/v2"
|
|
{{end}}
|
|
{{if $gstr}}
|
|
"github.com/gogf/gf/v2/text/gstr"
|
|
{{end}}
|
|
{{if or .table.HasConversion (eq .table.TplCategory "tree")}}
|
|
"github.com/gogf/gf/v2/util/gconv"
|
|
{{end}}
|
|
{{if $useCommonService}}
|
|
commonService "{{.goModName}}/internal/app/common/service"
|
|
{{end}}
|
|
"{{.goModName}}/{{.table.PackageName}}/dao"
|
|
"{{.goModName}}/{{.table.PackageName}}/model"
|
|
"{{.goModName}}/{{.table.PackageName}}/model/do"
|
|
"{{.goModName}}/{{.table.PackageName}}/service"
|
|
{{if ne .table.TplCategory "tree"}}
|
|
"{{.goModName}}/internal/app/system/consts"
|
|
{{end}}
|
|
{{if $usedSystemModule}}
|
|
systemService "{{.goModName}}/internal/app/system/service"
|
|
{{end}}
|
|
{{if or (eq .table.TplCategory "tree") $libUtils}}
|
|
"{{.goModName}}/library/libUtils"
|
|
{{end}}
|
|
"{{.goModName}}/library/liberr"
|
|
|
|
|
|
{{/*去重处理-导入关联表依赖包*/}}
|
|
{{$hasMethods:=newArray}}
|
|
{{range $index,$column:= .table.LinkedTables}}
|
|
{{if ne $column.TableName ""}}
|
|
{{if not (inArray $hasMethods (concat "list" $column.ClassName))}}
|
|
{{$hasMethods = append $hasMethods (concat "list" $column.ClassName)}}
|
|
{{/*关联{{$column.LinkTableName}}表选项*/}}
|
|
{{if ne $column.PackageName $.table.PackageName}}
|
|
linked{{$column.ClassName}}Dao "{{$.goModName}}/{{$column.PackageName}}/dao"
|
|
{{end}}
|
|
{{end}}
|
|
{{end}}
|
|
{{end}}
|
|
)
|
|
|
|
|
|
{{$pk:=""}}
|
|
{{$pkGoField:=""}}
|
|
|
|
{{$createdAt:=""}}
|
|
{{$createdAtGoField:=""}}
|
|
|
|
{{range $index, $column := .table.Columns}}
|
|
{{if $column.IsPk}}
|
|
{{$pk = $column.ColumnName}}
|
|
{{$pkGoField = $column.GoField}}
|
|
{{end}}
|
|
{{if eq $column.ColumnName "created_at"}}
|
|
{{$createdAt = $column.ColumnName}}
|
|
{{$createdAtGoField = $column.GoField}}
|
|
{{end}}
|
|
{{end}}
|
|
////
|
|
func init() {
|
|
service.Register{{.table.ClassName}}(New())
|
|
}
|
|
////
|
|
func New() service.I{{.table.ClassName}} {
|
|
return &s{{.table.ClassName}}{}
|
|
}
|
|
////
|
|
type s{{.table.ClassName}} struct{}
|
|
////
|
|
func (s *s{{.table.ClassName}})List(ctx context.Context, req *model.{{.table.ClassName}}SearchReq) (listRes *model.{{.table.ClassName}}SearchRes, err error){
|
|
listRes = new(model.{{.table.ClassName}}SearchRes)
|
|
err = g.Try(ctx, func(ctx context.Context) {
|
|
m := dao.{{.table.ClassName}}.Ctx(ctx).WithAll()
|
|
{{range $index, $column := .table.QueryColumns}}
|
|
{{if eq $column.QueryType "LIKE"}}
|
|
if req.{{$column.GoField}} != "" {
|
|
m = m.Where(dao.{{$.table.ClassName}}.Columns().{{$column.GoField}}+" like ?", "%"+req.{{$column.GoField}}+"%")
|
|
}
|
|
{{else if eq $column.QueryType "EQ"}}
|
|
{{if eq $column.GoType "string"}}
|
|
if req.{{$column.GoField}} != "" {
|
|
m = m.Where(dao.{{$.table.ClassName}}.Columns().{{$column.GoField}}+" = ?", {{if ne $column.FieldConversion ""}}{{$column.FieldConversion}}({{end}}req.{{$column.GoField}}{{if ne $column.FieldConversion ""}}){{end}})
|
|
}
|
|
{{else if eq $column.GoType "Time"}}
|
|
{{if eq $column.ColumnName "created_at"}}
|
|
if len(req.DateRange) != 0 {
|
|
m = m.Where(dao.{{$.table.ClassName}}.Columns().{{$column.GoField}}+" >=? AND "+dao.{{$.table.ClassName}}.Columns().{{$column.GoField}}+" <=?", req.DateRange[0], req.DateRange[1])
|
|
}
|
|
{{else}}
|
|
if req.{{$column.GoField}} != "" {
|
|
m = m.Where(dao.{{$.table.ClassName}}.Columns().{{$column.GoField}}+" = ?", {{if ne $column.FieldConversion ""}}{{$column.FieldConversion}}({{end}}req.{{$column.GoField}}{{if ne $column.FieldConversion ""}}){{end}})
|
|
}
|
|
{{end}}
|
|
{{else if or (eq $column.GoType "int") (eq $column.GoType "int64") (eq $column.GoType "uint") (eq $column.GoType "uint64") (eq $column.GoType "bool")}}
|
|
if req.{{$column.GoField}} != "" {
|
|
m = m.Where(dao.{{$.table.ClassName}}.Columns().{{$column.GoField}}+" = ?", {{if ne $column.FieldConversion ""}}{{$column.FieldConversion}}({{end}}req.{{$column.GoField}}{{if ne $column.FieldConversion ""}}){{end}})
|
|
}
|
|
{{end}}
|
|
{{else if eq $column.QueryType "BETWEEN" }}
|
|
if req.{{$column.GoField}} != nil && len(req.{{$column.GoField}}) > 0 {
|
|
if req.{{$column.GoField}}[0] != "" {
|
|
m = m.Where(dao.{{$.table.ClassName}}.Columns().{{$column.GoField}}+" >= ?", {{if ne $column.FieldConversion ""}}{{$column.FieldConversion}}({{end}}req.{{$column.GoField}}[0]{{if ne $column.FieldConversion ""}}){{end}})
|
|
}
|
|
if len(req.{{$column.GoField}}) > 1 && req.{{$column.GoField}}[1] != "" {
|
|
m = m.Where(dao.{{$.table.ClassName}}.Columns().{{$column.GoField}}+" < ?", {{if ne $column.FieldConversion ""}}{{$column.FieldConversion}}({{end}}req.{{$column.GoField}}[1]{{if ne $column.FieldConversion ""}}){{end}})
|
|
}
|
|
}
|
|
{{end}}
|
|
{{end}}
|
|
{{if ne .table.TplCategory "tree"}}
|
|
listRes.Total, err = m.Count()
|
|
liberr.ErrIsNil(ctx, err, "获取总行数失败")
|
|
if req.PageNum == 0 {
|
|
req.PageNum = 1
|
|
}
|
|
listRes.CurrentPage = req.PageNum
|
|
if req.PageSize == 0 {
|
|
req.PageSize = consts.PageSize
|
|
}
|
|
order:= "{{.table.SortColumn}} {{.table.SortType}}"
|
|
if req.OrderBy!=""{
|
|
order = req.OrderBy
|
|
}
|
|
var res []*model.{{.table.ClassName}}ListRes
|
|
err = m.Page(req.PageNum, req.PageSize).Order(order).Scan(&res)
|
|
{{else}}
|
|
order:= "{{.table.SortColumn}} {{.table.SortType}}"
|
|
if req.OrderBy!=""{
|
|
order = req.OrderBy
|
|
}
|
|
var res []*model.{{.table.ClassName}}ListRes
|
|
err = m.Order(order).Scan(&res)
|
|
{{end}}
|
|
liberr.ErrIsNil(ctx, err, "获取数据失败")
|
|
listRes.List = make([]*model.{{.table.ClassName}}ListRes,len(res))
|
|
for k,v:=range res{
|
|
{{range $index, $column := .table.Columns}}
|
|
{{if eq $column.HtmlType "selects" "checkbox" "treeSelects"}}
|
|
{{range $ti, $linkedTable := $.table.LinkedTables}}
|
|
{{if eq $column.LinkTableClass $linkedTable.ClassName}}
|
|
err = g.Model("{{$linkedTable.TableName}}").
|
|
Fields(model.Linked{{$.table.ClassName}}{{$linkedTable.ClassName}}{}).
|
|
Where("{{$column.LinkLabelId}}", gstr.Split(v.{{$column.GoField}}, ",")).
|
|
Scan(&v.Linked{{$column.GoField}})
|
|
liberr.ErrIsNil(ctx, err)
|
|
{{end}}
|
|
{{end}}
|
|
{{end}}
|
|
{{end}}
|
|
listRes.List[k] = &model.{{.table.ClassName}}ListRes{
|
|
{{if eq .table.TplCategory "tree"}}
|
|
{{range $index, $column := .table.Columns}}
|
|
{{if or (eq $column.HtmlField $.table.TreeCode) (eq $column.HtmlField $.table.TreeParentCode) (eq $column.HtmlField $.table.TreeName) }}
|
|
{{$column.GoField}} : v.{{$column.GoField}},
|
|
{{end}}
|
|
{{if and $column.IsList (eq $column.HtmlField "createdBy")}}
|
|
CreatedUser:v.CreatedUser,
|
|
{{end}}
|
|
{{if and $column.IsList (eq $column.HtmlField "deptId")}}
|
|
{{if $usedSystemModule}}
|
|
DeptInfo:systemService.SysDept().GetByDept(ctx, v.DeptId),
|
|
{{else}}
|
|
DeptInfo:service.SysDept().GetByDept(ctx, v.DeptId),
|
|
{{end}}
|
|
{{end}}
|
|
{{if and $column.IsList (eq $column.HtmlField "UpdatedBy")}}
|
|
UpdatedUser:v.UpdatedUser,
|
|
{{end}}
|
|
{{end}}
|
|
{{range $index, $column := .table.Columns}}
|
|
{{if and $column.IsList (ne $column.HtmlField $.table.TreeCode) (ne $column.HtmlField $.table.TreeParentCode) (ne $column.HtmlField $.table.TreeName) }}
|
|
{{if eq $column.HtmlType "images" "file" "files"}}
|
|
{{$column.GoField}} : v.{{$column.GoField}},
|
|
{{else}}
|
|
{{$column.GoField}} : v.{{$column.GoField}},
|
|
{{range $ti, $linkedTable := $.table.LinkedTables}}
|
|
{{if eq $column.LinkTableClass $linkedTable.ClassName}}
|
|
Linked{{$column.GoField}}:v.Linked{{$column.GoField}},
|
|
{{end}}
|
|
{{end}}
|
|
{{end}}
|
|
{{end}}
|
|
{{end}}
|
|
{{else}}
|
|
{{if not .table.IsPkListable}}
|
|
{{.table.PkColumn.GoField}} : v.{{.table.PkColumn.GoField}},
|
|
{{end}}
|
|
{{range $index, $column := .table.ListColumns}}
|
|
{{if and $column.IsList (eq $column.HtmlField "createdBy")}}
|
|
CreatedUser:v.CreatedUser,
|
|
{{end}}
|
|
{{if and $column.IsList (eq $column.HtmlField "deptId")}}
|
|
{{if $usedSystemModule}}
|
|
DeptInfo:systemService.SysDept().GetByDept(ctx, v.DeptId),
|
|
{{else}}
|
|
DeptInfo:service.SysDept().GetByDept(ctx, v.DeptId),
|
|
{{end}}
|
|
{{end}}
|
|
{{if and $column.IsList (eq $column.HtmlField "UpdatedBy")}}
|
|
UpdatedUser:v.UpdatedUser,
|
|
{{end}}
|
|
{{if eq $column.HtmlType "images" "file" "files"}}
|
|
{{$column.GoField}} : v.{{$column.GoField}},
|
|
{{else}}
|
|
{{$column.GoField}} : v.{{$column.GoField}},
|
|
{{range $ti, $linkedTable := $.table.LinkedTables}}
|
|
{{if eq $column.LinkTableClass $linkedTable.ClassName}}
|
|
Linked{{$column.GoField}}:v.Linked{{$column.GoField}},
|
|
{{end}}
|
|
{{end}}
|
|
{{end}}
|
|
{{end}}
|
|
{{end}}
|
|
}
|
|
}
|
|
})
|
|
return
|
|
}
|
|
|
|
{{if .table.ExcelPort }}
|
|
////
|
|
func (s *s{{.table.ClassName}})GetExportData(ctx context.Context, req *model.{{.table.ClassName}}SearchReq) (listRes []*model.{{.table.ClassName}}InfoRes, err error){
|
|
err = g.Try(ctx, func(ctx context.Context) {
|
|
m := dao.{{.table.ClassName}}.Ctx(ctx).WithAll()
|
|
{{range $index, $column := .table.QueryColumns}}
|
|
{{if eq $column.QueryType "LIKE"}}
|
|
if req.{{$column.GoField}} != "" {
|
|
m = m.Where(dao.{{$.table.ClassName}}.Columns().{{$column.GoField}}+" like ?", "%"+req.{{$column.GoField}}+"%")
|
|
}
|
|
{{else if eq $column.QueryType "EQ"}}
|
|
{{if eq $column.GoType "string"}}
|
|
if req.{{$column.GoField}} != "" {
|
|
m = m.Where(dao.{{$.table.ClassName}}.Columns().{{$column.GoField}}+" = ?", {{if ne $column.FieldConversion ""}}{{$column.FieldConversion}}({{end}}req.{{$column.GoField}}{{if ne $column.FieldConversion ""}}){{end}})
|
|
}
|
|
{{else if eq $column.GoType "Time"}}
|
|
{{if eq $column.ColumnName "created_at"}}
|
|
if len(req.DateRange) != 0 {
|
|
m = m.Where(dao.{{$.table.ClassName}}.Columns().{{$column.GoField}}+" >=? AND "+dao.{{$.table.ClassName}}.Columns().{{$column.GoField}}+" <=?", req.DateRange[0], req.DateRange[1])
|
|
}
|
|
{{else}}
|
|
if req.{{$column.GoField}} != "" {
|
|
m = m.Where(dao.{{$.table.ClassName}}.Columns().{{$column.GoField}}+" = ?", {{if ne $column.FieldConversion ""}}{{$column.FieldConversion}}({{end}}req.{{$column.GoField}}{{if ne $column.FieldConversion ""}}){{end}})
|
|
}
|
|
{{end}}
|
|
{{else if or (eq $column.GoType "int") (eq $column.GoType "int64") (eq $column.GoType "uint") (eq $column.GoType "uint64") (eq $column.GoType "bool")}}
|
|
if req.{{$column.GoField}} != "" {
|
|
m = m.Where(dao.{{$.table.ClassName}}.Columns().{{$column.GoField}}+" = ?", {{if ne $column.FieldConversion ""}}{{$column.FieldConversion}}({{end}}req.{{$column.GoField}}{{if ne $column.FieldConversion ""}}){{end}})
|
|
}
|
|
{{end}}
|
|
{{else if eq $column.QueryType "BETWEEN" }}
|
|
if req.{{$column.GoField}} != nil && len(req.{{$column.GoField}}) > 0 {
|
|
if req.{{$column.GoField}}[0] != "" {
|
|
m = m.Where(dao.{{$.table.ClassName}}.Columns().{{$column.GoField}}+" >= ?", {{if ne $column.FieldConversion ""}}{{$column.FieldConversion}}({{end}}req.{{$column.GoField}}[0]{{if ne $column.FieldConversion ""}}){{end}})
|
|
}
|
|
if len(req.{{$column.GoField}}) > 1 && req.{{$column.GoField}}[1] != "" {
|
|
m = m.Where(dao.{{$.table.ClassName}}.Columns().{{$column.GoField}}+" < ?", {{if ne $column.FieldConversion ""}}{{$column.FieldConversion}}({{end}}req.{{$column.GoField}}[1]{{if ne $column.FieldConversion ""}}){{end}})
|
|
}
|
|
}
|
|
{{end}}
|
|
{{end}}
|
|
if req.PageNum == 0 {
|
|
req.PageNum = 1
|
|
}
|
|
if req.PageSize == 0 {
|
|
req.PageSize = consts.PageSize
|
|
}
|
|
order:= "{{.table.SortColumn}} {{.table.SortType}}"
|
|
if req.OrderBy!=""{
|
|
order = req.OrderBy
|
|
}
|
|
err = m.Page(req.PageNum, req.PageSize).Order(order).Scan(&listRes)
|
|
liberr.ErrIsNil(ctx, err, "获取数据失败")
|
|
{{if $hasLinkTable}}
|
|
for _,v:=range listRes{
|
|
{{range $index, $column := .table.Columns}}
|
|
{{if eq $column.HtmlType "selects" "checkbox" "treeSelects"}}
|
|
{{range $ti, $linkedTable := $.table.LinkedTables}}
|
|
{{if eq $column.LinkTableClass $linkedTable.ClassName}}
|
|
err = g.Model("{{$linkedTable.TableName}}").
|
|
Fields(model.Linked{{$.table.ClassName}}{{$linkedTable.ClassName}}{}).
|
|
Where("{{$column.LinkLabelId}}", gstr.Split(v.{{$column.GoField}}, ",")).
|
|
Scan(&v.Linked{{$column.GoField}})
|
|
liberr.ErrIsNil(ctx, err)
|
|
{{end}}
|
|
{{end}}
|
|
{{end}}
|
|
{{end}}
|
|
}
|
|
{{end}}
|
|
})
|
|
return
|
|
}
|
|
{{end}}
|
|
|
|
{{if .table.ExcelImp}}
|
|
////
|
|
func(s *s{{.table.ClassName}})Import(ctx context.Context,file *ghttp.UploadFile)(err error){
|
|
if file == nil {
|
|
err = errors.New("请上传数据文件")
|
|
return
|
|
}
|
|
var data []do.{{.table.ClassName}}
|
|
err = g.Try(ctx, func(ctx context.Context) {
|
|
f,err:=file.Open()
|
|
liberr.ErrIsNil(ctx,err)
|
|
defer f.Close()
|
|
exFile,err := excelize.OpenReader(f)
|
|
liberr.ErrIsNil(ctx,err)
|
|
defer exFile.Close()
|
|
rows, err := exFile.GetRows("Sheet1")
|
|
liberr.ErrIsNil(ctx,err)
|
|
if len(rows)==0{
|
|
liberr.ErrIsNil(ctx,errors.New("表格内容不能为空"))
|
|
}
|
|
d:=make([]interface{}, len(rows[0]))
|
|
data=make([]do.{{.table.ClassName}},len(rows)-1)
|
|
|
|
for k,v:=range rows{
|
|
if k==0{
|
|
continue
|
|
}
|
|
for kv,vv:=range v{
|
|
d[kv] = vv
|
|
}
|
|
{{if $.table.UseSnowId}}
|
|
var {{$.table.PkColumn.HtmlField}} uint64
|
|
{{$.table.PkColumn.HtmlField}}, err = commonService.SnowID().GenID()
|
|
liberr.ErrIsNil(ctx, err)
|
|
{{end}}
|
|
data[k-1] = do.{{.table.ClassName}}{
|
|
{{$i:=0}}
|
|
{{range $index, $column := .table.Columns}}
|
|
{{$add:=false}}
|
|
{{if and $column.IsPk $.table.IsPkInsertable}}
|
|
{{$.table.PkColumn.GoField}}:d[{{$i}}],
|
|
{{$add = true}}
|
|
{{else if and $column.IsPk $.table.UseSnowId}}
|
|
{{$.table.PkColumn.GoField}}:{{$.table.PkColumn.HtmlField}},
|
|
{{else if and (ne $column.IsPk true) (ne $column.HtmlType "imagefile") (ne $column.HtmlType "images") (ne $column.HtmlType "file") (ne $column.HtmlType "files")}}
|
|
{{$add = true}}
|
|
{{if eq $column.GoType "int" "uint" "int64" "uint64" "bool" }}
|
|
{{$column.GoField}}:gconv.Int64(d[{{$i}}]),
|
|
{{else if eq $column.GoType "float64"}}
|
|
{{$column.GoField}}:gconv.Float64(d[{{$i}}]),
|
|
{{else if eq $column.GoType "Time"}}
|
|
{{$column.GoField}}:gconv.GTime(d[{{$i}}]),
|
|
{{else}}
|
|
{{$column.GoField}}:d[{{$i}}],
|
|
{{end}}
|
|
{{end}}
|
|
{{if $add}}
|
|
{{$i = plus $i 1}}
|
|
{{end}}
|
|
{{end}}
|
|
}
|
|
}
|
|
if len(data)>0{
|
|
err = g.DB().Transaction(ctx, func(ctx context.Context, tx gdb.TX) error {
|
|
_,err = dao.{{.table.ClassName}}.Ctx(ctx).Batch(500).Insert(data)
|
|
return err
|
|
})
|
|
liberr.ErrIsNil(ctx,err)
|
|
}
|
|
})
|
|
return
|
|
}
|
|
{{end}}
|
|
|
|
////
|
|
{{if gt (len .table.LinkedTables) 0}}
|
|
// LinkedDataSearch 相关连表查询数据
|
|
func(s *s{{.table.ClassName}}) Linked{{$.table.ClassName}}DataSearch(ctx context.Context) (res *model.Linked{{$.table.ClassName}}DataSearchRes, err error) {
|
|
res = new(model.Linked{{$.table.ClassName}}DataSearchRes)
|
|
{{/*去重处理-导入关联表依赖包*/}}
|
|
{{$hasMethods3:=newArray}}
|
|
{{range $index,$column:= .table.LinkedTables}}
|
|
{{if ne $column.TableName ""}}
|
|
{{if not (inArray $hasMethods3 (concat "list" $column.ClassName))}}
|
|
{{$hasMethods3 = append $hasMethods3 (concat "list" $column.ClassName)}}
|
|
{{/*关联{{$column.LinkTableName}}表选项*/}}
|
|
res.Linked{{$.table.ClassName}}{{$column.ClassName}}, err = s.List{{$.table.ClassName}}{{$column.ClassName}}(ctx)
|
|
liberr.ErrIsNil(ctx,err,"获取关联表信息失败")
|
|
{{end}}
|
|
{{end}}
|
|
{{end}}
|
|
return
|
|
}
|
|
{{end}}
|
|
|
|
////
|
|
func (s *s{{.table.ClassName}})GetBy{{$pkGoField}}(ctx context.Context, {{$.table.PkColumn.HtmlField}} {{$.table.PkColumn.GoType}}) (res *model.{{.table.ClassName}}InfoRes,err error){
|
|
err =g.Try(ctx, func(ctx context.Context){
|
|
err = dao.{{.table.ClassName}}.Ctx(ctx).WithAll().Where(dao.{{.table.ClassName}}.Columns().{{$pkGoField}}, {{$.table.PkColumn.HtmlField}}).Scan(&res)
|
|
liberr.ErrIsNil(ctx,err,"获取信息失败")
|
|
{{if $.table.HasDeptId}}
|
|
if res!=nil{
|
|
{{if $usedSystemModule}}
|
|
res.DeptInfo = systemService.SysDept().GetByDept(ctx, res.DeptId)
|
|
{{else}}
|
|
res.DeptInfo = service.SysDept().GetByDept(ctx, res.DeptId)
|
|
{{end}}
|
|
}
|
|
{{end}}
|
|
{{range $index, $column := .table.Columns}}
|
|
{{if eq $column.HtmlType "selects" "checkbox" "treeSelects"}}
|
|
{{range $ti, $linkedTable := $.table.LinkedTables}}
|
|
{{if eq $column.LinkTableClass $linkedTable.ClassName}}
|
|
err = g.Model("{{$linkedTable.TableName}}").
|
|
Fields(model.Linked{{$.table.ClassName}}{{$linkedTable.ClassName}}{}).
|
|
Where("{{$column.LinkLabelId}}", gstr.Split(res.{{$column.GoField}}, ",")).
|
|
Scan(&res.Linked{{$column.GoField}})
|
|
liberr.ErrIsNil(ctx, err)
|
|
{{end}}
|
|
{{end}}
|
|
{{end}}
|
|
{{end}}
|
|
})
|
|
return
|
|
}
|
|
////
|
|
func (s *s{{.table.ClassName}})Add(ctx context.Context, req *model.{{.table.ClassName}}AddReq) (err error){
|
|
err = g.Try(ctx, func(ctx context.Context) {
|
|
{{if and .table.UseSnowId (not .table.IsPkInsertable)}}
|
|
var {{.table.PkColumn.HtmlField}} uint64
|
|
{{.table.PkColumn.HtmlField}}, err = commonService.SnowID().GenID()
|
|
liberr.ErrIsNil(ctx, err)
|
|
{{end}}
|
|
{{range $index, $column := .table.EditColumns}}
|
|
{{if eq $column.HtmlType "checkbox" "selects" "treeSelects"}}
|
|
{{$column.HtmlField}} := ""
|
|
req.{{$column.GoField}}.FilterEmpty()
|
|
if !req.{{$column.GoField}}.IsEmpty(){
|
|
{{$column.HtmlField}}=req.{{$column.GoField}}.Join(",")
|
|
}
|
|
{{else if eq $column.HtmlType "images" "file" "files"}}
|
|
for _,obj:=range req.{{$column.GoField}}{
|
|
obj.Url,err = libUtils.GetFilesPath(ctx,obj.Url)
|
|
liberr.ErrIsNil(ctx, err)
|
|
}
|
|
{{end}}
|
|
{{end}}
|
|
_, err = dao.{{.table.ClassName}}.Ctx(ctx).Insert(do.{{.table.ClassName}}{
|
|
{{if .table.IsPkInsertable}}
|
|
{{.table.PkColumn.GoField}}:req.{{.table.PkColumn.GoField}},
|
|
{{else if .table.UseSnowId}}
|
|
{{.table.PkColumn.GoField}}:{{.table.PkColumn.HtmlField}},
|
|
{{end}}
|
|
{{range $index, $column := .table.EditColumns}}
|
|
{{if eq $column.HtmlType "checkbox" "selects" "treeSelects"}}
|
|
{{$column.GoField}}:{{$column.HtmlField}},
|
|
{{else}}
|
|
{{$column.GoField}}:req.{{$column.GoField}},
|
|
{{end}}
|
|
{{end}}
|
|
{{if .table.HasCreatedBy}}
|
|
{{if $usedSystemModule}}
|
|
CreatedBy:systemService.Context().GetUserId(ctx),
|
|
{{else}}
|
|
CreatedBy:service.Context().GetUserId(ctx),
|
|
{{end}}
|
|
{{end}}
|
|
{{if .table.HasDeptId}}
|
|
{{if $usedSystemModule}}
|
|
DeptId:systemService.Context().GetDeptId(ctx),
|
|
{{else}}
|
|
DeptId:service.Context().GetDeptId(ctx),
|
|
{{end}}
|
|
{{end}}
|
|
})
|
|
liberr.ErrIsNil(ctx, err, "添加失败")
|
|
})
|
|
return
|
|
}
|
|
////
|
|
func (s *s{{.table.ClassName}})Edit(ctx context.Context, req *model.{{.table.ClassName}}EditReq) (err error){
|
|
err = g.Try(ctx, func(ctx context.Context) {
|
|
{{range $index, $column := .table.EditColumns}}
|
|
{{if eq $column.HtmlType "checkbox" "selects" "treeSelects"}}
|
|
{{$column.HtmlField}} := ""
|
|
req.{{$column.GoField}}.FilterEmpty()
|
|
if !req.{{$column.GoField}}.IsEmpty(){
|
|
{{$column.HtmlField}}=req.{{$column.GoField}}.Join(",")
|
|
}
|
|
{{else if eq $column.HtmlType "images" "file" "files"}}
|
|
for _,obj:=range req.{{$column.GoField}}{
|
|
obj.Url,err = libUtils.GetFilesPath(ctx,obj.Url)
|
|
liberr.ErrIsNil(ctx, err)
|
|
}
|
|
{{end}}
|
|
{{end}}
|
|
_, err = dao.{{.table.ClassName}}.Ctx(ctx).WherePri(req.{{.table.PkColumn.GoField}}).Update(do.{{.table.ClassName}}{
|
|
{{range $index, $column := .table.EditColumns}}
|
|
{{if eq $column.HtmlType "checkbox" "selects" "treeSelects"}}
|
|
{{$column.GoField}}:{{$column.HtmlField}},
|
|
{{else}}
|
|
{{$column.GoField}}:req.{{$column.GoField}},
|
|
{{end}}
|
|
{{end}}
|
|
{{if .table.HasUpdatedBy}}
|
|
{{if $usedSystemModule}}
|
|
UpdatedBy:systemService.Context().GetUserId(ctx),
|
|
{{else}}
|
|
UpdatedBy:service.Context().GetUserId(ctx),
|
|
{{end}}
|
|
{{end}}
|
|
})
|
|
liberr.ErrIsNil(ctx, err, "修改失败")
|
|
})
|
|
return
|
|
}
|
|
////
|
|
func (s *s{{.table.ClassName}})Delete(ctx context.Context, {{$.table.PkColumn.HtmlField}}s []{{$.table.PkColumn.GoType}}) (err error){
|
|
err = g.Try(ctx,func(ctx context.Context){
|
|
{{if eq .table.TplCategory "tree"}}
|
|
{{$.table.PkColumn.HtmlField}}s, err = s.GetChildrenIds(ctx,{{$.table.PkColumn.HtmlField}}s)
|
|
liberr.ErrIsNil(ctx,err)
|
|
{{end}}
|
|
_, err = dao.{{.table.ClassName}}.Ctx(ctx).Delete(dao.{{.table.ClassName}}.Columns().{{$pkGoField}}+" in (?)", {{$.table.PkColumn.HtmlField}}s)
|
|
liberr.ErrIsNil(ctx,err,"删除失败")
|
|
})
|
|
return
|
|
}
|
|
|
|
////
|
|
{{if eq .table.TplCategory "tree"}}
|
|
// GetChildrenIds 通过ID获取子级ID
|
|
func (s *s{{.table.ClassName}})GetChildrenIds(ctx context.Context,ids []{{$.table.PkColumn.GoType}}) (returnIds []{{$.table.PkColumn.GoType}},err error) {
|
|
err = g.Try(ctx,func(ctx context.Context){
|
|
//获取所有
|
|
var all *model.{{.table.ClassName}}SearchRes
|
|
all, err = s.List(ctx, &model.{{.table.ClassName}}SearchReq{})
|
|
liberr.ErrIsNil(ctx,err)
|
|
list := make(g.List, len(all.List))
|
|
for k, info := range all.List {
|
|
list[k] = gconv.Map(info)
|
|
}
|
|
for _, id := range ids {
|
|
returnIds = append(returnIds,id)
|
|
children := libUtils.FindSonByParentId(list, id, "{{.table.TreeParentCode}}", "{{.table.TreeCode}}")
|
|
for _, cid := range children {
|
|
returnIds = append(returnIds, cid["{{.table.TreeCode}}"].({{$.table.PkColumn.GoType}}))
|
|
}
|
|
}
|
|
})
|
|
return
|
|
}
|
|
{{end}}
|
|
|
|
{{/*去重处理-导入关联表依赖包*/}}
|
|
{{$hasMethods2:=newArray}}
|
|
{{range $index,$column:= .table.LinkedTables}}
|
|
{{if ne $column.TableName ""}}
|
|
{{if not (inArray $hasMethods2 (concat "list" $column.ClassName))}}
|
|
{{$hasMethods2 = append $hasMethods2 (concat "list" $column.ClassName)}}
|
|
{{/*关联{{$column.LinkTableName}}表选项*/}}
|
|
func (s *s{{$.table.ClassName}}) List{{$.table.ClassName}}{{$column.ClassName}}(ctx context.Context)(linked{{$.table.ClassName}}{{$column.ClassName}} []*model.Linked{{$.table.ClassName}}{{$column.ClassName}},err error){
|
|
err = g.Try(ctx,func(ctx context.Context){
|
|
err = {{if ne $column.PackageName $.table.PackageName}}linked{{$column.ClassName}}Dao{{else}}dao{{end}}.{{$column.ClassName}}.
|
|
Ctx(ctx).
|
|
Fields(model.Linked{{$.table.ClassName}}{{$column.ClassName}}{}).Scan(&linked{{$.table.ClassName}}{{$column.ClassName}})
|
|
liberr.ErrIsNil(ctx,err)
|
|
})
|
|
return
|
|
}
|
|
////
|
|
{{end}}
|
|
{{end}}
|
|
{{end}} |