package system import ( "github.com/gin-gonic/gin" "go.uber.org/zap" "server/global" "server/model/common/request" "server/model/common/response" "server/model/system" request2 "server/model/system/request" "server/utils" ) type DeptApi struct{} func (a *DeptApi) GetDeptList(c *gin.Context) { var pageInfo request.PageInfo err := c.ShouldBindJSON(&pageInfo) if err != nil { response.FailWithMessage(err.Error(), c) return } err = utils.Verify(pageInfo, utils.PageInfoVerify) if err != nil { response.FailWithMessage(err.Error(), c) return } list, total, err := deptService.GetAppRootDept(pageInfo) if err != nil { global.GVA_LOG.Error("获取失败!", zap.Error(err)) response.FailWithMessage("获取失败", c) return } response.OkWithDetailed(response.PageResult{ List: list, Total: total, Page: pageInfo.Page, PageSize: pageInfo.PageSize, }, "获取成功", c) } // 创建部门 func (a *DeptApi) Establish(c *gin.Context) { var r request2.ReqDept err := c.ShouldBindJSON(&r) if err != nil { response.FailWithMessage(err.Error(), c) return } dept := &system.Dept{DeptName: r.DeptName, Responsible: r.Responsible, ParentId: r.ParentId, Phone: r.Phone, Remark: r.Remark} err = deptService.Establish(*dept) if err != nil { global.GVA_LOG.Error("新增失败!", zap.Error(err)) response.FailWithMessage(err.Error(), c) return } response.OkWithMessage("新增成功", c) } // 修改部门信息 func (a *DeptApi) SetDeptInfo(c *gin.Context) { var dept request2.ChangeDeptInfo err := c.ShouldBindJSON(&dept) if err != nil { response.FailWithMessage(err.Error(), c) return } err = utils.Verify(dept, utils.IdVerify) if err != nil { response.FailWithMessage(err.Error(), c) return } err = deptService.SetDeptInfo(system.Dept{ ID: dept.ID, DeptName: dept.DeptName, ParentId: dept.ParentId, Remark: dept.Remark, Responsible: dept.Responsible, Phone: dept.Phone, }) if err != nil { global.GVA_LOG.Error("设置失败!", zap.Error(err)) response.FailWithMessage("设置失败", c) return } response.OkWithMessage("设置成功", c) } // 删除部门 func (a *DeptApi) DeleteDept(c *gin.Context) { var reqId request.GetById err := c.ShouldBindJSON(&reqId) if err != nil { response.FailWithMessage(err.Error(), c) return } err = utils.Verify(reqId, utils.IdVerify) if err != nil { response.FailWithMessage(err.Error(), c) return } err = deptService.DeleteDept(reqId.ID) if err != nil { global.GVA_LOG.Error("删除失败!", zap.Error(err)) response.FailWithMessage(err.Error(), c) return } response.OkWithMessage("删除成功", c) } func (a *DeptApi) GetDepts(c *gin.Context) { depts, err := deptService.GetChildDepts() if err != nil { response.FailWithMessage(err.Error(), c) return } users, err := deptService.GetAllUsers() if err != nil { response.FailWithMessage(err.Error(), c) return } deptSysUsersMap := make(map[int][]system.SysUser) for _, user := range users { deptSysUsersMap[user.DeptId] = append(deptSysUsersMap[user.DeptId], user) } var deptSysUsers []system.Dept for _, dept := range depts { users := deptSysUsersMap[dept.ID] if users != nil { deptSysUsers = append(deptSysUsers, system.Dept{ ID: dept.ID, DeptName: dept.DeptName, Users: users, }) } } response.OkWithData(deptSysUsers, c) }