controller.template 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188
  1. // ==========================================================================
  2. // GFast自动生成控制器相关代码,只生成一次,按需修改,再次生成不会覆盖.
  3. // 生成日期:{{.table.CreateTime}}
  4. // 生成路径: {{.table.PackageName}}/api/{{.table.BusinessName}}.go
  5. // 生成人:{{.table.FunctionAuthor}}
  6. // ==========================================================================
  7. ////
  8. {{$structName := .table.BusinessName | CaseCamelLower}}
  9. package api
  10. {{$hasGStr:=false}}
  11. {{$gjsonTag:=false}}
  12. {{$libTag:=false}}
  13. {{range $index,$column:=.table.Columns}}
  14. {{if eq $column.HtmlType "checkbox"}}
  15. {{$hasGStr = true}}
  16. {{else if eq $column.HtmlType "images" "file" "files"}}
  17. {{$gjsonTag = true}}
  18. {{$libTag = true}}
  19. {{end}}
  20. {{end}}
  21. import (
  22. {{if ne $.table.ModuleName "system"}}
  23. sysApi "gfast/app/system/api"
  24. {{end}}
  25. {{if $libTag}}
  26. "gfast/library"
  27. {{end}}
  28. "{{.table.PackageName}}/dao"
  29. "{{.table.PackageName}}/service"
  30. "github.com/gogf/gf/frame/g"
  31. "github.com/gogf/gf/net/ghttp"
  32. "github.com/gogf/gf/util/gvalid"
  33. {{if $hasGStr}}
  34. "github.com/gogf/gf/text/gstr"
  35. {{end}}
  36. {{if $gjsonTag}}
  37. "github.com/gogf/gf/encoding/gjson"
  38. {{end}}
  39. )
  40. type {{$structName}} struct {
  41. {{if ne $.table.ModuleName "system"}}
  42. sysApi.SystemBase
  43. {{else}}
  44. SystemBase
  45. {{end}}
  46. }
  47. var {{.table.ClassName}} = new({{$structName}})
  48. // List 列表
  49. func (c *{{$structName}}) List(r *ghttp.Request) {
  50. var req *dao.{{.table.ClassName}}SearchReq
  51. //获取参数
  52. if err := r.Parse(&req); err != nil {
  53. c.FailJsonExit(r, err.(gvalid.Error).FirstString())
  54. }
  55. req.Ctx = r.GetCtx()
  56. total, page, list, err := service.{{.table.ClassName}}.GetList(req)
  57. if err != nil {
  58. c.FailJsonExit(r, err.Error())
  59. }
  60. result := g.Map{
  61. "currentPage": page,
  62. "total": total,
  63. "list": list,
  64. }
  65. c.SusJsonExit(r, result)
  66. }
  67. // Add 添加
  68. func (c *{{$structName}}) Add(r *ghttp.Request) {
  69. var req *dao.{{.table.ClassName}}AddReq
  70. //获取参数
  71. if err := r.Parse(&req); err != nil {
  72. c.FailJsonExit(r, err.(gvalid.Error).FirstString())
  73. }
  74. {{range $index,$column:= .table.Columns}}
  75. {{if eq $column.ColumnName "created_by"}}
  76. req.CreatedBy = c.GetCurrentUser(r.GetCtx()).GetUserId()
  77. {{end}}
  78. {{if eq $column.HtmlType "checkbox"}}
  79. {{$column.HtmlField}} := r.GetStrings("{{$column.HtmlField}}")
  80. if len({{$column.HtmlField}})>0{
  81. req.{{$column.GoField}} = gstr.Join({{$column.HtmlField}},",")
  82. }else{
  83. req.{{$column.GoField}} = ""
  84. }
  85. {{else if eq $column.HtmlType "images" "file" "files"}}
  86. up{{$column.GoField}}:=gjson.New(req.{{$column.GoField}})
  87. for _,obj:=range up{{$column.GoField}}.Array(){
  88. mp := obj.(g.MapStrAny)
  89. var err error
  90. mp["url"],err = library.GetFilesPath(mp["url"].(string))
  91. if err!=nil{
  92. c.FailJsonExit(r, err.Error())
  93. }
  94. }
  95. req.{{$column.GoField}} = up{{$column.GoField}}.MustToJsonString()
  96. {{end}}
  97. {{end}}
  98. err := service.{{.table.ClassName}}.Add(r.GetCtx(),req)
  99. if err != nil {
  100. c.FailJsonExit(r, err.Error())
  101. }
  102. c.SusJsonExit(r, "添加成功")
  103. }
  104. // Get 获取
  105. func (c *{{$structName}}) Get(r *ghttp.Request) {
  106. id := r.Get{{$.table.PkColumn.GoType | CaseCamel}}("id")
  107. info, err := service.{{.table.ClassName}}.GetInfoById(r.GetCtx(),id)
  108. if err != nil {
  109. c.FailJsonExit(r, err.Error())
  110. }
  111. c.SusJsonExit(r, info)
  112. }
  113. // Edit 修改
  114. func (c *{{$structName}}) Edit(r *ghttp.Request) {
  115. var req *dao.{{.table.ClassName}}EditReq
  116. //获取参数
  117. if err := r.Parse(&req); err != nil {
  118. c.FailJsonExit(r, err.(gvalid.Error).FirstString())
  119. }
  120. {{range $index,$column:= .table.Columns}}
  121. {{if eq $column.ColumnName "updated_by"}}
  122. req.UpdatedBy = c.GetCurrentUser(r.GetCtx()).GetUserId() //获取登陆用户id
  123. {{end}}
  124. {{if eq $column.HtmlType "checkbox"}}
  125. {{$column.HtmlField}} := r.GetStrings("{{$column.HtmlField}}")
  126. if len({{$column.HtmlField}})>0{
  127. req.{{$column.GoField}} = gstr.Join({{$column.HtmlField}},",")
  128. }else{
  129. req.{{$column.GoField}} = ""
  130. }
  131. {{else if eq $column.HtmlType "images" "file" "files"}}
  132. up{{$column.GoField}}:=gjson.New(req.{{$column.GoField}})
  133. for _,obj:=range up{{$column.GoField}}.Array(){
  134. mp := obj.(g.MapStrAny)
  135. var err error
  136. mp["url"],err = library.GetFilesPath(mp["url"].(string))
  137. if err!=nil{
  138. c.FailJsonExit(r, err.Error())
  139. }
  140. }
  141. req.{{$column.GoField}} = up{{$column.GoField}}.MustToJsonString()
  142. {{end}}
  143. {{end}}
  144. err := service.{{.table.ClassName}}.Edit(r.GetCtx(),req)
  145. if err != nil {
  146. c.FailJsonExit(r, err.Error())
  147. }
  148. c.SusJsonExit(r, "修改成功")
  149. }
  150. // Delete 删除
  151. func (c *{{$structName}}) Delete(r *ghttp.Request) {
  152. ids := r.GetInts("ids")
  153. err := service.{{.table.ClassName}}.DeleteByIds(r.GetCtx(),ids)
  154. if err != nil {
  155. c.FailJsonExit(r, err.Error())
  156. }
  157. c.SusJsonExit(r, "删除成功")
  158. }
  159. {{range $index,$column:= .table.Columns}}
  160. {{if and (HasSuffix $column.ColumnName "status") (eq $column.IsList "1") }}
  161. // Change{{$column.GoField}} 修改状态
  162. func (c *{{$structName}}) Change{{$column.GoField}}(r *ghttp.Request){
  163. var req *dao.{{$.table.ClassName}}{{$column.GoField}}Req
  164. //获取参数
  165. if err := r.Parse(&req); err != nil {
  166. c.FailJsonExit(r, err.(gvalid.Error).FirstString())
  167. }
  168. if err := service.{{$.table.ClassName}}.Change{{$column.GoField}}(r.GetCtx(),req); err != nil {
  169. c.FailJsonExit(r, err.Error())
  170. } else {
  171. c.SusJsonExit(r, "状态设置成功")
  172. }
  173. }
  174. {{end}}
  175. {{end}}