controller.template 5.5 KB

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