project.go 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  1. package admin
  2. import (
  3. "encoding/json"
  4. "github.com/gin-gonic/gin"
  5. "server/dao"
  6. "server/model/common/request"
  7. "server/model/common/response"
  8. "strconv"
  9. )
  10. type ProjectApi struct{}
  11. func (pa *ProjectApi) QueryProjectList(c *gin.Context) {
  12. var search request.SearchProject
  13. err := c.ShouldBindJSON(&search)
  14. if err != nil {
  15. response.FailWithMessage(err.Error(), c)
  16. return
  17. }
  18. list, total, err := projectService.QueryProjectList(search)
  19. response.OkWithDetailed(response.PageResult{
  20. List: list,
  21. Total: total,
  22. Page: search.PageInfo.Page,
  23. PageSize: search.PageInfo.PageSize,
  24. }, "获取成功", c)
  25. }
  26. func (pa *ProjectApi) QueryProjectByCode(c *gin.Context) {
  27. code := c.Param("code")
  28. if code == "" {
  29. response.FailWithMessage("编号不能为空", c)
  30. return
  31. }
  32. project, err := projectService.QueryProjectByCode(code)
  33. if err != nil {
  34. response.FailWithMessage(err.Error(), c)
  35. return
  36. }
  37. response.OkWithData(project, c)
  38. }
  39. func (pa *ProjectApi) CreateProject(c *gin.Context) {
  40. //var project dao.Project
  41. //err := c.ShouldBindJSON(&project)
  42. //if err != nil {
  43. // response.FailWithMessage(err.Error(), c)
  44. // return
  45. //}
  46. form, err := c.MultipartForm()
  47. files := form.File["file"]
  48. if err != nil {
  49. response.FailWithMessage("失败", c)
  50. return
  51. }
  52. projectJson := c.PostForm("project")
  53. var project dao.Project
  54. err = json.Unmarshal([]byte(projectJson), &project)
  55. if err != nil {
  56. response.FailWithMessage("JSON失败", c)
  57. return
  58. }
  59. for _, file := range files {
  60. dst := file.Filename
  61. projectFile := dao.ProjectFile{
  62. Name: dst,
  63. Path: "./uploads/file/" + dst,
  64. }
  65. project.Files = append(project.Files, projectFile)
  66. // gin 简单做了封装,拷贝了文件流
  67. if err := c.SaveUploadedFile(file, "./uploads/file/"+dst); err != nil {
  68. response.FailWithMessage("上传失败", c)
  69. return
  70. }
  71. }
  72. err = projectService.CreateProject(project)
  73. if err != nil {
  74. response.FailWithMessage(err.Error(), c)
  75. return
  76. }
  77. response.OkWithMessage("创建成功", c)
  78. }
  79. func (pa *ProjectApi) CreateProjectFile(c *gin.Context) {
  80. var projectFile dao.ProjectFile
  81. err := c.ShouldBindJSON(&projectFile)
  82. if err != nil {
  83. response.FailWithMessage(err.Error(), c)
  84. return
  85. }
  86. err = projectService.CreateProjectFile(projectFile)
  87. if err != nil {
  88. response.FailWithMessage(err.Error(), c)
  89. return
  90. }
  91. response.OkWithMessage("创建成功", c)
  92. }
  93. func (pa *ProjectApi) UpdateProject(c *gin.Context) {
  94. var project dao.Project
  95. err := c.ShouldBindJSON(&project)
  96. if err != nil {
  97. response.FailWithMessage(err.Error(), c)
  98. return
  99. }
  100. err = projectService.UpdateProject(project)
  101. if err != nil {
  102. response.FailWithMessage(err.Error(), c)
  103. return
  104. }
  105. response.OkWithMessage("更新成功", c)
  106. }
  107. func (pa *ProjectApi) DeleteProject(c *gin.Context) {
  108. code := c.Param("code")
  109. if code == "" {
  110. response.FailWithMessage("编号不能为空", c)
  111. return
  112. }
  113. err := projectService.DeleteProject(code)
  114. if err != nil {
  115. response.FailWithMessage(err.Error(), c)
  116. return
  117. }
  118. response.OkWithMessage("删除成功", c)
  119. }
  120. func (pa *ProjectApi) DeleteProjectFile(c *gin.Context) {
  121. id := c.Param("id")
  122. i, err := strconv.Atoi(id)
  123. if err != nil {
  124. response.FailWithMessage(err.Error(), c)
  125. return
  126. }
  127. err = projectService.DeleteProjectFile(uint(i))
  128. if err != nil {
  129. response.FailWithMessage(err.Error(), c)
  130. return
  131. }
  132. response.OkWithMessage("删除成功", c)
  133. }