tree_api.go 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  1. /*
  2. * @description:
  3. * @Author: CP
  4. * @Date: 2020-09-17 17:50:50
  5. * @FilePath: \construction_management\web\api\tree_api.go
  6. */
  7. package api
  8. import (
  9. "fmt"
  10. "strconv"
  11. "github.com/kataras/iris/v12"
  12. "go.mod/services"
  13. "go.mod/web/utils"
  14. )
  15. type TreeApi struct {
  16. //框架-web应用上下文环境
  17. Ctx iris.Context
  18. // 需要用的service
  19. ServiceTree services.TreeService
  20. }
  21. // 获得项目目录结构
  22. func (c *TreeApi) Get() {
  23. // 获得项目ID
  24. projectIdInt, err := utils.GetProjectId(c.Ctx)
  25. if err != nil {
  26. c.Ctx.JSON(iris.Map{
  27. "code": -1,
  28. "msg": err,
  29. })
  30. return
  31. }
  32. // 获得层级文件夹
  33. FolderData := c.ServiceTree.GetAllProject(projectIdInt)
  34. c.Ctx.JSON(iris.Map{
  35. "code": 0,
  36. "msg": "",
  37. "data": FolderData,
  38. })
  39. }
  40. // 添加树结构
  41. func (c *TreeApi) PostCreate() {
  42. ErrMsg := ""
  43. // 验证内容
  44. FolderData, err := c.ServiceTree.ValidRule(c.Ctx)
  45. if err != nil {
  46. ErrMsg = utils.FormValidError(err)
  47. c.Ctx.JSON(iris.Map{
  48. "code": -1,
  49. "msg": ErrMsg,
  50. })
  51. return
  52. } else {
  53. // 获得项目ID
  54. projectIdInt, err := utils.GetProjectId(c.Ctx)
  55. if err != nil {
  56. c.Ctx.JSON(iris.Map{
  57. "code": -1,
  58. "msg": fmt.Sprintf("%s", err),
  59. })
  60. return
  61. }
  62. FolderData.ProjectId = strconv.Itoa(projectIdInt)
  63. // 新增文件夹
  64. err = c.ServiceTree.Create(FolderData)
  65. if err != nil {
  66. c.Ctx.JSON(iris.Map{
  67. "code": 3,
  68. "msg": fmt.Sprintf("%s", err),
  69. })
  70. return
  71. }
  72. c.Ctx.JSON(iris.Map{
  73. "code": 0,
  74. "msg": "新增成功",
  75. })
  76. }
  77. }
  78. // 文件夹重命名
  79. func (c *TreeApi) PostRename() {
  80. ErrMsg := ""
  81. // 验证内容
  82. FolderData, err := c.ServiceTree.ValidRule(c.Ctx)
  83. if err != nil {
  84. ErrMsg = utils.FormValidError(err)
  85. c.Ctx.JSON(iris.Map{
  86. "code": -1,
  87. "msg": ErrMsg,
  88. })
  89. return
  90. } else {
  91. // 重命名
  92. err = c.ServiceTree.Rename(FolderData)
  93. if err != nil {
  94. c.Ctx.JSON(iris.Map{
  95. "code": 3,
  96. "msg": fmt.Sprintf("%s", err),
  97. })
  98. return
  99. }
  100. c.Ctx.JSON(iris.Map{
  101. "code": 0,
  102. "msg": "重命名成功",
  103. })
  104. }
  105. }
  106. // 删除目录,需要删除树结构下的目录以及叶子
  107. func (c *TreeApi) Delete() {
  108. // 获得需要删除数据
  109. // api/tree/{id:int min(1)}
  110. //id := c.Ctx.Params().Get("id")
  111. id := c.Ctx.URLParam("id")
  112. // 获得该目录下所有的目录和标段
  113. // treeData, err := c.ServiceTree.GetFolderAndBid(id)
  114. // if err != nil {
  115. // c.Ctx.JSON(iris.Map{
  116. // "code": -1,
  117. // "msg": fmt.Sprintf("%s", err),
  118. // })
  119. // return
  120. // }
  121. // fmt.Println(treeData)
  122. // 添加锁
  123. // 删除目录以及标段
  124. err := c.ServiceTree.DeleteFolderAndBid(id)
  125. if err != nil {
  126. c.Ctx.JSON(iris.Map{
  127. "code": -1,
  128. "msg": fmt.Sprintf("%s", err),
  129. })
  130. return
  131. }
  132. c.Ctx.JSON(iris.Map{
  133. "code": 0,
  134. "msg": "删除成功",
  135. })
  136. }