Files
PandaX/resource/template/go/api.template
2021-12-31 17:35:43 +08:00

188 lines
5.6 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
// ==========================================================================
// GFast自动生成控制器相关代码只生成一次按需修改,再次生成不会覆盖.
// 生成日期:{{.table.CreateTime}}
// 生成路径: {{.table.PackageName}}/api/{{.table.BusinessName}}.go
// 生成人:{{.table.FunctionAuthor}}
// ==========================================================================
////
{{$structName := .table.BusinessName | CaseCamelLower}}
package api
{{$hasGStr:=false}}
{{$gjsonTag:=false}}
{{$libTag:=false}}
{{range $index,$column:=.table.Columns}}
{{if eq $column.HtmlType "checkbox"}}
{{$hasGStr = true}}
{{else if eq $column.HtmlType "images" "file" "files"}}
{{$gjsonTag = true}}
{{$libTag = true}}
{{end}}
{{end}}
import (
{{if ne $.table.ModuleName "system"}}
sysApi "gfast/app/system/api"
{{end}}
{{if $libTag}}
"gfast/library"
{{end}}
"{{.table.PackageName}}/dao"
"{{.table.PackageName}}/service"
"github.com/gogf/gf/frame/g"
"github.com/gogf/gf/net/ghttp"
"github.com/gogf/gf/util/gvalid"
{{if $hasGStr}}
"github.com/gogf/gf/text/gstr"
{{end}}
{{if $gjsonTag}}
"github.com/gogf/gf/encoding/gjson"
{{end}}
)
type {{$structName}} struct {
{{if ne $.table.ModuleName "system"}}
sysApi.SystemBase
{{else}}
SystemBase
{{end}}
}
var {{.table.ClassName}} = new({{$structName}})
// List 列表
func (c *{{$structName}}) List(r *ghttp.Request) {
var req *dao.{{.table.ClassName}}SearchReq
//获取参数
if err := r.Parse(&req); err != nil {
c.FailJsonExit(r, err.(gvalid.Error).FirstString())
}
req.Ctx = r.GetCtx()
total, page, list, err := service.{{.table.ClassName}}.GetList(req)
if err != nil {
c.FailJsonExit(r, err.Error())
}
result := g.Map{
"currentPage": page,
"total": total,
"list": list,
}
c.SusJsonExit(r, result)
}
// Add 添加
func (c *{{$structName}}) Add(r *ghttp.Request) {
var req *dao.{{.table.ClassName}}AddReq
//获取参数
if err := r.Parse(&req); err != nil {
c.FailJsonExit(r, err.(gvalid.Error).FirstString())
}
{{range $index,$column:= .table.Columns}}
{{if eq $column.ColumnName "created_by"}}
req.CreatedBy = c.GetCurrentUser(r.GetCtx()).GetUserId()
{{end}}
{{if eq $column.HtmlType "checkbox"}}
{{$column.HtmlField}} := r.GetStrings("{{$column.HtmlField}}")
if len({{$column.HtmlField}})>0{
req.{{$column.GoField}} = gstr.Join({{$column.HtmlField}},",")
}else{
req.{{$column.GoField}} = ""
}
{{else if eq $column.HtmlType "images" "file" "files"}}
up{{$column.GoField}}:=gjson.New(req.{{$column.GoField}})
for _,obj:=range up{{$column.GoField}}.Array(){
mp := obj.(g.MapStrAny)
var err error
mp["url"],err = library.GetFilesPath(mp["url"].(string))
if err!=nil{
c.FailJsonExit(r, err.Error())
}
}
req.{{$column.GoField}} = up{{$column.GoField}}.MustToJsonString()
{{end}}
{{end}}
err := service.{{.table.ClassName}}.Add(r.GetCtx(),req)
if err != nil {
c.FailJsonExit(r, err.Error())
}
c.SusJsonExit(r, "添加成功")
}
// Get 获取
func (c *{{$structName}}) Get(r *ghttp.Request) {
id := r.Get{{$.table.PkColumn.GoType | CaseCamel}}("id")
info, err := service.{{.table.ClassName}}.GetInfoById(r.GetCtx(),id)
if err != nil {
c.FailJsonExit(r, err.Error())
}
c.SusJsonExit(r, info)
}
// Edit 修改
func (c *{{$structName}}) Edit(r *ghttp.Request) {
var req *dao.{{.table.ClassName}}EditReq
//获取参数
if err := r.Parse(&req); err != nil {
c.FailJsonExit(r, err.(gvalid.Error).FirstString())
}
{{range $index,$column:= .table.Columns}}
{{if eq $column.ColumnName "updated_by"}}
req.UpdatedBy = c.GetCurrentUser(r.GetCtx()).GetUserId() //获取登陆用户id
{{end}}
{{if eq $column.HtmlType "checkbox"}}
{{$column.HtmlField}} := r.GetStrings("{{$column.HtmlField}}")
if len({{$column.HtmlField}})>0{
req.{{$column.GoField}} = gstr.Join({{$column.HtmlField}},",")
}else{
req.{{$column.GoField}} = ""
}
{{else if eq $column.HtmlType "images" "file" "files"}}
up{{$column.GoField}}:=gjson.New(req.{{$column.GoField}})
for _,obj:=range up{{$column.GoField}}.Array(){
mp := obj.(g.MapStrAny)
var err error
mp["url"],err = library.GetFilesPath(mp["url"].(string))
if err!=nil{
c.FailJsonExit(r, err.Error())
}
}
req.{{$column.GoField}} = up{{$column.GoField}}.MustToJsonString()
{{end}}
{{end}}
err := service.{{.table.ClassName}}.Edit(r.GetCtx(),req)
if err != nil {
c.FailJsonExit(r, err.Error())
}
c.SusJsonExit(r, "修改成功")
}
// Delete 删除
func (c *{{$structName}}) Delete(r *ghttp.Request) {
ids := r.GetInts("ids")
err := service.{{.table.ClassName}}.DeleteByIds(r.GetCtx(),ids)
if err != nil {
c.FailJsonExit(r, err.Error())
}
c.SusJsonExit(r, "删除成功")
}
{{range $index,$column:= .table.Columns}}
{{if and (HasSuffix $column.ColumnName "status") (eq $column.IsList "1") }}
// Change{{$column.GoField}} 修改状态
func (c *{{$structName}}) Change{{$column.GoField}}(r *ghttp.Request){
var req *dao.{{$.table.ClassName}}{{$column.GoField}}Req
//获取参数
if err := r.Parse(&req); err != nil {
c.FailJsonExit(r, err.(gvalid.Error).FirstString())
}
if err := service.{{$.table.ClassName}}.Change{{$column.GoField}}(r.GetCtx(),req); err != nil {
c.FailJsonExit(r, err.Error())
} else {
c.SusJsonExit(r, "状态设置成功")
}
}
{{end}}
{{end}}