app_dept.go 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. package system
  2. import (
  3. "errors"
  4. "gorm.io/gorm"
  5. "server/global"
  6. "server/model/common/request"
  7. "server/model/system"
  8. )
  9. type DeptService struct{}
  10. // 获取部门列表
  11. func (appDeptService *DeptService) GetAppRootDept(info request.PageInfo) (list interface{}, total int64, err error) {
  12. limit := info.PageSize
  13. offset := info.PageSize * (info.Page - 1)
  14. db := global.GVA_DB.Model(&system.Dept{})
  15. var rootDept []system.Dept
  16. err = db.
  17. Where("parent_id = ?", 0).
  18. Where("is_deleted", 0).Count(&total).Error
  19. if err != nil {
  20. return
  21. }
  22. db.Limit(limit).Offset(offset).
  23. Where("is_deleted", 0).
  24. Where("parent_id = ?", 0).Find(&rootDept)
  25. for i, dept := range rootDept {
  26. var childDepts []system.Dept
  27. global.GVA_DB.Table("dept").Select("*").
  28. Where("is_deleted", 0).Where("parent_id = ?", dept.ID).Scan(&childDepts)
  29. rootDept[i].Children = childDepts
  30. }
  31. return rootDept, total, err
  32. }
  33. func (appDeptService *DeptService) Establish(d system.Dept) (err error) {
  34. err = global.GVA_DB.Create(&d).Error
  35. return err
  36. }
  37. // 设置部门信息
  38. func (appDeptService *DeptService) SetDeptInfo(req system.Dept) error {
  39. return global.GVA_DB.Model(&system.Dept{}).
  40. Select("dept_name", "parent_id", "remark", "responsible", "phone").
  41. Where("id=?", req.ID).
  42. Updates(map[string]interface{}{
  43. "dept_name": req.DeptName,
  44. "parent_id": req.ParentId,
  45. "remark": req.Remark,
  46. "responsible": req.Responsible,
  47. "phone": req.Phone,
  48. }).Error
  49. }
  50. // 删除部门
  51. func (DeptService *DeptService) DeleteDept(id int) error {
  52. var users []system.SysUser
  53. if !errors.Is(global.GVA_DB.Model(&system.SysUser{}).Debug().Where("dept_id = ?", id).First(&users).Error, gorm.ErrRecordNotFound) { // 判断部门下是否存在用户
  54. return errors.New("该部门存在用户,删除失败!")
  55. }
  56. err := global.GVA_DB.Model(&system.Dept{}).
  57. Where("id=?", id).
  58. Updates(map[string]interface{}{"is_deleted": "1"}).Error
  59. return err
  60. }
  61. func (DeptService *DeptService) GetChildDepts() (depts []system.Dept, err error) {
  62. err = global.GVA_DB.Model(&system.Dept{}).Where("parent_id != ? and is_deleted = 0", 0).Find(&depts).Error
  63. return depts, err
  64. }
  65. func (DeptService *DeptService) GetAllUsers() (users []system.SysUser, err error) {
  66. err = global.GVA_DB.Model(&system.SysUser{}).Find(&users).Error
  67. return users, err
  68. }
  69. func (DeptService *DeptService) GetDeptsUsers(depts []int) (users []system.SysUser, err error) {
  70. err = global.GVA_DB.Model(&system.SysUser{}).Where("dept_id IN (?)", depts).Find(&users).Error
  71. return users, err
  72. }