app_dept.go 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. package system
  2. import (
  3. "github.com/gin-gonic/gin"
  4. "go.uber.org/zap"
  5. "server/global"
  6. "server/model/common/request"
  7. "server/model/common/response"
  8. "server/model/system"
  9. request2 "server/model/system/request"
  10. "server/utils"
  11. )
  12. type DeptApi struct{}
  13. func (a *DeptApi) GetDeptList(c *gin.Context) {
  14. var pageInfo request.PageInfo
  15. err := c.ShouldBindJSON(&pageInfo)
  16. if err != nil {
  17. response.FailWithMessage(err.Error(), c)
  18. return
  19. }
  20. err = utils.Verify(pageInfo, utils.PageInfoVerify)
  21. if err != nil {
  22. response.FailWithMessage(err.Error(), c)
  23. return
  24. }
  25. list, total, err := deptService.GetAppRootDept(pageInfo)
  26. if err != nil {
  27. global.GVA_LOG.Error("获取失败!", zap.Error(err))
  28. response.FailWithMessage("获取失败", c)
  29. return
  30. }
  31. response.OkWithDetailed(response.PageResult{
  32. List: list,
  33. Total: total,
  34. Page: pageInfo.Page,
  35. PageSize: pageInfo.PageSize,
  36. }, "获取成功", c)
  37. }
  38. // 创建部门
  39. func (a *DeptApi) Establish(c *gin.Context) {
  40. var r request2.ReqDept
  41. err := c.ShouldBindJSON(&r)
  42. if err != nil {
  43. response.FailWithMessage(err.Error(), c)
  44. return
  45. }
  46. dept := &system.Dept{DeptName: r.DeptName, Responsible: r.Responsible, ParentId: r.ParentId, Phone: r.Phone, Remark: r.Remark}
  47. err = deptService.Establish(*dept)
  48. if err != nil {
  49. global.GVA_LOG.Error("新增失败!", zap.Error(err))
  50. response.FailWithMessage(err.Error(), c)
  51. return
  52. }
  53. response.OkWithMessage("新增成功", c)
  54. }
  55. // 修改部门信息
  56. func (a *DeptApi) SetDeptInfo(c *gin.Context) {
  57. var dept request2.ChangeDeptInfo
  58. err := c.ShouldBindJSON(&dept)
  59. if err != nil {
  60. response.FailWithMessage(err.Error(), c)
  61. return
  62. }
  63. err = utils.Verify(dept, utils.IdVerify)
  64. if err != nil {
  65. response.FailWithMessage(err.Error(), c)
  66. return
  67. }
  68. err = deptService.SetDeptInfo(system.Dept{
  69. ID: dept.ID,
  70. DeptName: dept.DeptName,
  71. ParentId: dept.ParentId,
  72. Remark: dept.Remark,
  73. Responsible: dept.Responsible,
  74. Phone: dept.Phone,
  75. })
  76. if err != nil {
  77. global.GVA_LOG.Error("设置失败!", zap.Error(err))
  78. response.FailWithMessage("设置失败", c)
  79. return
  80. }
  81. response.OkWithMessage("设置成功", c)
  82. }
  83. // 删除部门
  84. func (a *DeptApi) DeleteDept(c *gin.Context) {
  85. var reqId request.GetById
  86. err := c.ShouldBindJSON(&reqId)
  87. if err != nil {
  88. response.FailWithMessage(err.Error(), c)
  89. return
  90. }
  91. err = utils.Verify(reqId, utils.IdVerify)
  92. if err != nil {
  93. response.FailWithMessage(err.Error(), c)
  94. return
  95. }
  96. err = deptService.DeleteDept(reqId.ID)
  97. if err != nil {
  98. global.GVA_LOG.Error("删除失败!", zap.Error(err))
  99. response.FailWithMessage(err.Error(), c)
  100. return
  101. }
  102. response.OkWithMessage("删除成功", c)
  103. }
  104. func (a *DeptApi) GetDepts(c *gin.Context) {
  105. depts, err := deptService.GetChildDepts()
  106. if err != nil {
  107. response.FailWithMessage(err.Error(), c)
  108. return
  109. }
  110. users, err := deptService.GetAllUsers()
  111. if err != nil {
  112. response.FailWithMessage(err.Error(), c)
  113. return
  114. }
  115. deptSysUsersMap := make(map[int][]system.SysUser)
  116. for _, user := range users {
  117. deptSysUsersMap[user.DeptId] = append(deptSysUsersMap[user.DeptId], user)
  118. }
  119. var deptSysUsers []system.Dept
  120. for _, dept := range depts {
  121. users := deptSysUsersMap[dept.ID]
  122. if users != nil {
  123. deptSysUsers = append(deptSysUsers, system.Dept{
  124. ID: dept.ID,
  125. DeptName: dept.DeptName,
  126. Users: users,
  127. })
  128. }
  129. }
  130. response.OkWithData(deptSysUsers, c)
  131. }