sys_auto_code.go 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  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. err := service.CreateTemp(a)
  23. if a.AutoCreateApiToSql {
  24. apiList := [5]model.SysApi{
  25. {
  26. Path: "/" + a.Abbreviation + "/" + "create" + a.StructName,
  27. Description: "新增" + a.StructName,
  28. ApiGroup: a.Abbreviation,
  29. Method: "POST",
  30. },
  31. {
  32. Path: "/" + a.Abbreviation + "/" + "delete" + a.StructName,
  33. Description: "删除" + a.StructName,
  34. ApiGroup: a.Abbreviation,
  35. Method: "DELETE",
  36. },
  37. {
  38. Path: "/" + a.Abbreviation + "/" + "update" + a.StructName,
  39. Description: "更新" + a.StructName,
  40. ApiGroup: a.Abbreviation,
  41. Method: "POST",
  42. },
  43. {
  44. Path: "/" + a.Abbreviation + "/" + "find" + a.StructName,
  45. Description: "根据ID获取" + a.StructName,
  46. ApiGroup: a.Abbreviation,
  47. Method: "GET",
  48. },
  49. {
  50. Path: "/" + a.Abbreviation + "/" + "get" + a.StructName + "List",
  51. Description: "获取" + a.StructName + "列表",
  52. ApiGroup: a.StructName,
  53. Method: "GET",
  54. },
  55. }
  56. for _, v := range apiList {
  57. errC := service.CreateApi(v)
  58. if errC != nil {
  59. c.Writer.Header().Add("success", "false")
  60. c.Writer.Header().Add("msg", url.QueryEscape(fmt.Sprintf("自动化创建失败,%v,请自行清空垃圾数据", errC)))
  61. return
  62. }
  63. }
  64. }
  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. }