/* * @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" "go.mod/web/viewmodels" ) type TreeApi struct { //框架-web应用上下文环境 Ctx iris.Context // 需要用的service 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) Delete() { // 获得需要删除数据 // api/tree/{id:int min(1)} //id := c.Ctx.Params().Get("id") id := c.Ctx.URLParam("id") // 获得该目录下所有的目录和标段 // treeData, err := c.ServiceTree.GetFolderAndBid(id) // if err != nil { // c.Ctx.JSON(iris.Map{ // "code": -1, // "msg": fmt.Sprintf("%s", err), // }) // return // } // fmt.Println(treeData) // 添加锁 // 删除目录以及标段 err := c.ServiceTree.DeleteFolderAndBid(id) if err != nil { c.Ctx.JSON(iris.Map{ "code": -1, "msg": fmt.Sprintf("%s", err), }) return } c.Ctx.JSON(iris.Map{ "code": 0, "msg": "删除成功", }) } // 移动文件夹 func (c *TreeApi) PostMove() { // 获得目录ID和移动目录ID ProjectAccountVM := viewmodels.ProjectAccount{} err := c.Ctx.ReadJSON(&ProjectAccountVM) if err != nil { c.Ctx.JSON(iris.Map{"code": -1, "msg": fmt.Sprintf("%s", err)}) return } id, err := utils.GetDecryptId(ProjectAccountVM.Id) if err != nil { c.Ctx.JSON(iris.Map{"code": -1, "msg": fmt.Sprintf("%s", err)}) return } moveId, err := utils.GetDecryptId(ProjectAccountVM.MoveId) if err != nil { c.Ctx.JSON(iris.Map{"code": -1, "msg": fmt.Sprintf("%s", err)}) return } // 移动目录 err = c.ServiceTree.Move(id, moveId) if err != nil { c.Ctx.JSON(iris.Map{ "code": -1, "msg": fmt.Sprintf("%s", err), }) return } c.Ctx.JSON(iris.Map{ "code": 0, "msg": "移动成功", }) }