/* * @description: * @Author: CP * @Date: 2020-09-17 17:50:50 * @FilePath: \construction_management\web\api\tree_api.go */ package api import ( "fmt" "strconv" "github.com/kataras/iris/v12" "go.mod/services" "go.mod/web/utils" ) type TreeApi struct { //框架-web应用上下文环境 Ctx iris.Context // 需要用的service ServiceProject services.ProjectService ServiceTree services.TreeService } // 获得项目目录结构 func (c *TreeApi) Get() { // 获得项目ID projectIdInt, err := utils.GetProjectId(c.Ctx) if err != nil { c.Ctx.JSON(iris.Map{ "code": -1, "msg": err, }) return } // 获得层级文件夹 FolderData := c.ServiceTree.GetAllProject(projectIdInt) c.Ctx.JSON(iris.Map{ "code": 0, "msg": "", "data": FolderData, }) } // 添加树结构 func (c *TreeApi) PostCreate() { ErrMsg := "" // 验证内容 FolderData, err := c.ServiceTree.ValidRule(c.Ctx) if err != nil { ErrMsg = utils.FormValidError(err) c.Ctx.JSON(iris.Map{ "code": -1, "msg": ErrMsg, }) return } else { // 获得项目ID projectIdInt, err := utils.GetProjectId(c.Ctx) if err != nil { c.Ctx.JSON(iris.Map{ "code": -1, "msg": fmt.Sprintf("%s", err), }) return } FolderData.ProjectId = strconv.Itoa(projectIdInt) // 新增文件夹 err = c.ServiceTree.Create(FolderData) if err != nil { c.Ctx.JSON(iris.Map{ "code": 3, "msg": fmt.Sprintf("%s", err), }) return } c.Ctx.JSON(iris.Map{ "code": 0, "msg": "新增成功", }) } } // 文件夹重命名 func (c *TreeApi) PostRename() { ErrMsg := "" // 验证内容 FolderData, err := c.ServiceTree.ValidRule(c.Ctx) if err != nil { ErrMsg = utils.FormValidError(err) c.Ctx.JSON(iris.Map{ "code": -1, "msg": ErrMsg, }) return } else { // 新增文件夹 err = c.ServiceTree.Rename(FolderData) if err != nil { c.Ctx.JSON(iris.Map{ "code": 3, "msg": fmt.Sprintf("%s", err), }) return } c.Ctx.JSON(iris.Map{ "code": 0, "msg": "重命名成功", }) } } // 删除目录,需要删除树结构下的目录以及叶子 func (c *TreeApi) DeleteDelete() { // 获得需要删除数据 // 逻辑删除 // 加入删除任务堆栈,定时任务删除 }