sys_auto_code.go 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. package v1
  2. import (
  3. "fmt"
  4. "gin-vue-admin/global/response"
  5. "gin-vue-admin/model"
  6. "gin-vue-admin/service"
  7. "github.com/gin-gonic/gin"
  8. "net/url"
  9. "os"
  10. )
  11. // @Tags SysApi
  12. // @Summary 自动代码模板
  13. // @Security ApiKeyAuth
  14. // @accept application/json
  15. // @Produce application/json
  16. // @Param data body model.AutoCodeStruct true "创建自动代码"
  17. // @Success 200 {string} string "{"success":true,"data":{},"msg":"创建成功"}"
  18. // @Router /autoCode/createTemp [post]
  19. func CreateTemp(c *gin.Context) {
  20. var a model.AutoCodeStruct
  21. _ = c.ShouldBindJSON(&a)
  22. if a.AutoCreateApiToSql {
  23. apiList := [5]model.SysApi{
  24. {
  25. Path: "/" + a.Abbreviation + "/" + "create" + a.StructName,
  26. Description: "新增" + a.StructName,
  27. ApiGroup: a.Abbreviation,
  28. Method: "POST",
  29. },
  30. {
  31. Path: "/" + a.Abbreviation + "/" + "delete" + a.StructName,
  32. Description: "删除" + a.StructName,
  33. ApiGroup: a.Abbreviation,
  34. Method: "DELETE",
  35. },
  36. {
  37. Path: "/" + a.Abbreviation + "/" + "update" + a.StructName,
  38. Description: "更新" + a.StructName,
  39. ApiGroup: a.Abbreviation,
  40. Method: "PUT",
  41. },
  42. {
  43. Path: "/" + a.Abbreviation + "/" + "find" + a.StructName,
  44. Description: "根据ID获取" + a.StructName,
  45. ApiGroup: a.Abbreviation,
  46. Method: "GET",
  47. },
  48. {
  49. Path: "/" + a.Abbreviation + "/" + "get" + a.StructName + "List",
  50. Description: "获取" + a.StructName + "列表",
  51. ApiGroup: a.Abbreviation,
  52. Method: "GET",
  53. },
  54. }
  55. for _, v := range apiList {
  56. errC := service.CreateApi(v)
  57. if errC != nil {
  58. c.Writer.Header().Add("success", "false")
  59. c.Writer.Header().Add("msg", url.QueryEscape(fmt.Sprintf("自动化创建失败,%v,请自行清空垃圾数据", errC)))
  60. return
  61. }
  62. }
  63. }
  64. err := service.CreateTemp(a)
  65. if err != nil {
  66. response.FailWithMessage(fmt.Sprintf("创建失败,%v", err), c)
  67. os.Remove("./ginvueadmin.zip")
  68. } else {
  69. c.Writer.Header().Add("Content-Disposition", fmt.Sprintf("attachment; filename=%s", "ginvueadmin.zip")) //fmt.Sprintf("attachment; filename=%s", filename)对下载的文件重命名
  70. c.Writer.Header().Add("Content-Type", "application/json")
  71. c.Writer.Header().Add("success", "true")
  72. c.File("./ginvueadmin.zip")
  73. os.Remove("./ginvueadmin.zip")
  74. }
  75. }