api.go.tpl 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202
  1. package {{.Package}}
  2. import (
  3. "github.com/flipped-aurora/gin-vue-admin/server/global"
  4. "github.com/flipped-aurora/gin-vue-admin/server/model/{{.Package}}"
  5. {{.Package}}Req "github.com/flipped-aurora/gin-vue-admin/server/model/{{.Package}}/request"
  6. "github.com/flipped-aurora/gin-vue-admin/server/model/common/response"
  7. "github.com/flipped-aurora/gin-vue-admin/server/service"
  8. "github.com/gin-gonic/gin"
  9. "go.uber.org/zap"
  10. {{- if .AutoCreateResource}}
  11. "github.com/flipped-aurora/gin-vue-admin/server/utils"
  12. {{- end }}
  13. )
  14. type {{.StructName}}Api struct {
  15. }
  16. var {{.Abbreviation}}Service = service.ServiceGroupApp.{{.PackageT}}ServiceGroup.{{.StructName}}Service
  17. // Create{{.StructName}} 创建{{.Description}}
  18. // @Tags {{.StructName}}
  19. // @Summary 创建{{.Description}}
  20. // @Security ApiKeyAuth
  21. // @accept application/json
  22. // @Produce application/json
  23. // @Param data body {{.Package}}.{{.StructName}} true "创建{{.Description}}"
  24. // @Success 200 {string} string "{"success":true,"data":{},"msg":"创建成功"}"
  25. // @Router /{{.Abbreviation}}/create{{.StructName}} [post]
  26. func ({{.Abbreviation}}Api *{{.StructName}}Api) Create{{.StructName}}(c *gin.Context) {
  27. var {{.Abbreviation}} {{.Package}}.{{.StructName}}
  28. err := c.ShouldBindJSON(&{{.Abbreviation}})
  29. if err != nil {
  30. response.FailWithMessage(err.Error(), c)
  31. return
  32. }
  33. {{- if .AutoCreateResource }}
  34. {{.Abbreviation}}.CreatedBy = utils.GetUserID(c)
  35. {{- end }}
  36. if err := {{.Abbreviation}}Service.Create{{.StructName}}(&{{.Abbreviation}}); err != nil {
  37. global.GVA_LOG.Error("创建失败!", zap.Error(err))
  38. response.FailWithMessage("创建失败", c)
  39. } else {
  40. response.OkWithMessage("创建成功", c)
  41. }
  42. }
  43. // Delete{{.StructName}} 删除{{.Description}}
  44. // @Tags {{.StructName}}
  45. // @Summary 删除{{.Description}}
  46. // @Security ApiKeyAuth
  47. // @accept application/json
  48. // @Produce application/json
  49. // @Param data body {{.Package}}.{{.StructName}} true "删除{{.Description}}"
  50. // @Success 200 {string} string "{"success":true,"data":{},"msg":"删除成功"}"
  51. // @Router /{{.Abbreviation}}/delete{{.StructName}} [delete]
  52. func ({{.Abbreviation}}Api *{{.StructName}}Api) Delete{{.StructName}}(c *gin.Context) {
  53. {{.PrimaryField.FieldJson}} := c.Query("{{.PrimaryField.FieldJson}}")
  54. {{- if .AutoCreateResource }}
  55. userID := utils.GetUserID(c)
  56. {{- end }}
  57. if err := {{.Abbreviation}}Service.Delete{{.StructName}}({{.PrimaryField.FieldJson}} {{- if .AutoCreateResource -}},userID{{- end -}}); err != nil {
  58. global.GVA_LOG.Error("删除失败!", zap.Error(err))
  59. response.FailWithMessage("删除失败", c)
  60. } else {
  61. response.OkWithMessage("删除成功", c)
  62. }
  63. }
  64. // Delete{{.StructName}}ByIds 批量删除{{.Description}}
  65. // @Tags {{.StructName}}
  66. // @Summary 批量删除{{.Description}}
  67. // @Security ApiKeyAuth
  68. // @accept application/json
  69. // @Produce application/json
  70. // @Success 200 {string} string "{"success":true,"data":{},"msg":"批量删除成功"}"
  71. // @Router /{{.Abbreviation}}/delete{{.StructName}}ByIds [delete]
  72. func ({{.Abbreviation}}Api *{{.StructName}}Api) Delete{{.StructName}}ByIds(c *gin.Context) {
  73. {{.PrimaryField.FieldJson}}s := c.QueryArray("{{.PrimaryField.FieldJson}}s[]")
  74. {{- if .AutoCreateResource }}
  75. userID := utils.GetUserID(c)
  76. {{- end }}
  77. if err := {{.Abbreviation}}Service.Delete{{.StructName}}ByIds({{.PrimaryField.FieldJson}}s{{- if .AutoCreateResource }},userID{{- end }}); err != nil {
  78. global.GVA_LOG.Error("批量删除失败!", zap.Error(err))
  79. response.FailWithMessage("批量删除失败", c)
  80. } else {
  81. response.OkWithMessage("批量删除成功", c)
  82. }
  83. }
  84. // Update{{.StructName}} 更新{{.Description}}
  85. // @Tags {{.StructName}}
  86. // @Summary 更新{{.Description}}
  87. // @Security ApiKeyAuth
  88. // @accept application/json
  89. // @Produce application/json
  90. // @Param data body {{.Package}}.{{.StructName}} true "更新{{.Description}}"
  91. // @Success 200 {string} string "{"success":true,"data":{},"msg":"更新成功"}"
  92. // @Router /{{.Abbreviation}}/update{{.StructName}} [put]
  93. func ({{.Abbreviation}}Api *{{.StructName}}Api) Update{{.StructName}}(c *gin.Context) {
  94. var {{.Abbreviation}} {{.Package}}.{{.StructName}}
  95. err := c.ShouldBindJSON(&{{.Abbreviation}})
  96. if err != nil {
  97. response.FailWithMessage(err.Error(), c)
  98. return
  99. }
  100. {{- if .AutoCreateResource }}
  101. {{.Abbreviation}}.UpdatedBy = utils.GetUserID(c)
  102. {{- end }}
  103. if err := {{.Abbreviation}}Service.Update{{.StructName}}({{.Abbreviation}}); err != nil {
  104. global.GVA_LOG.Error("更新失败!", zap.Error(err))
  105. response.FailWithMessage("更新失败", c)
  106. } else {
  107. response.OkWithMessage("更新成功", c)
  108. }
  109. }
  110. // Find{{.StructName}} 用id查询{{.Description}}
  111. // @Tags {{.StructName}}
  112. // @Summary 用id查询{{.Description}}
  113. // @Security ApiKeyAuth
  114. // @accept application/json
  115. // @Produce application/json
  116. // @Param data query {{.Package}}.{{.StructName}} true "用id查询{{.Description}}"
  117. // @Success 200 {string} string "{"success":true,"data":{},"msg":"查询成功"}"
  118. // @Router /{{.Abbreviation}}/find{{.StructName}} [get]
  119. func ({{.Abbreviation}}Api *{{.StructName}}Api) Find{{.StructName}}(c *gin.Context) {
  120. {{.PrimaryField.FieldJson}} := c.Query("{{.PrimaryField.FieldJson}}")
  121. if re{{.Abbreviation}}, err := {{.Abbreviation}}Service.Get{{.StructName}}({{.PrimaryField.FieldJson}}); err != nil {
  122. global.GVA_LOG.Error("查询失败!", zap.Error(err))
  123. response.FailWithMessage("查询失败", c)
  124. } else {
  125. response.OkWithData(gin.H{"re{{.Abbreviation}}": re{{.Abbreviation}}}, c)
  126. }
  127. }
  128. // Get{{.StructName}}List 分页获取{{.Description}}列表
  129. // @Tags {{.StructName}}
  130. // @Summary 分页获取{{.Description}}列表
  131. // @Security ApiKeyAuth
  132. // @accept application/json
  133. // @Produce application/json
  134. // @Param data query {{.Package}}Req.{{.StructName}}Search true "分页获取{{.Description}}列表"
  135. // @Success 200 {string} string "{"success":true,"data":{},"msg":"获取成功"}"
  136. // @Router /{{.Abbreviation}}/get{{.StructName}}List [get]
  137. func ({{.Abbreviation}}Api *{{.StructName}}Api) Get{{.StructName}}List(c *gin.Context) {
  138. var pageInfo {{.Package}}Req.{{.StructName}}Search
  139. err := c.ShouldBindQuery(&pageInfo)
  140. if err != nil {
  141. response.FailWithMessage(err.Error(), c)
  142. return
  143. }
  144. if list, total, err := {{.Abbreviation}}Service.Get{{.StructName}}InfoList(pageInfo); err != nil {
  145. global.GVA_LOG.Error("获取失败!", zap.Error(err))
  146. response.FailWithMessage("获取失败", c)
  147. } else {
  148. response.OkWithDetailed(response.PageResult{
  149. List: list,
  150. Total: total,
  151. Page: pageInfo.Page,
  152. PageSize: pageInfo.PageSize,
  153. }, "获取成功", c)
  154. }
  155. }
  156. {{- if .HasDataSource }}
  157. // Get{{.StructName}}DataSource 获取{{.StructName}}的数据源
  158. // @Tags {{.StructName}}
  159. // @Summary 获取{{.StructName}}的数据源
  160. // @accept application/json
  161. // @Produce application/json
  162. // @Success 200 {string} string "{"success":true,"data":{},"msg":"获取成功"}"
  163. // @Router /{{.Abbreviation}}/get{{.StructName}}DataSource [get]
  164. func ({{.Abbreviation}}Api *{{.StructName}}Api) Get{{.StructName}}DataSource(c *gin.Context) {
  165. // 此接口为获取数据源定义的数据
  166. if dataSource, err := {{.Abbreviation}}Service.Get{{.StructName}}DataSource(); err != nil {
  167. global.GVA_LOG.Error("查询失败!", zap.Error(err))
  168. response.FailWithMessage("查询失败", c)
  169. } else {
  170. response.OkWithData(dataSource, c)
  171. }
  172. }
  173. {{- end }}
  174. // Get{{.StructName}}Public 不需要鉴权的{{.Description}}接口
  175. // @Tags {{.StructName}}
  176. // @Summary 不需要鉴权的{{.Description}}接口
  177. // @accept application/json
  178. // @Produce application/json
  179. // @Param data query {{.Package}}Req.{{.StructName}}Search true "分页获取{{.Description}}列表"
  180. // @Success 200 {string} string "{"success":true,"data":{},"msg":"获取成功"}"
  181. // @Router /{{.Abbreviation}}/get{{.StructName}}List [get]
  182. func ({{.Abbreviation}}Api *{{.StructName}}Api) Get{{.StructName}}Public(c *gin.Context) {
  183. // 此接口不需要鉴权
  184. // 示例为返回了一个固定的消息接口,一般本接口用于C端服务,需要自己实现业务逻辑
  185. response.OkWithDetailed(gin.H{
  186. "info": "不需要鉴权的{{.Description}}接口信息",
  187. }, "获取成功", c)
  188. }