sys_department.go 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152
  1. package system
  2. import (
  3. "eta/eta_api/global"
  4. "eta/eta_api/utils"
  5. "time"
  6. )
  7. type SysDepartmentAddReq struct {
  8. DepartmentName string `description:"部门名称"`
  9. }
  10. type SysDepartment struct {
  11. DepartmentId int `orm:"column(department_id);pk" gorm:"primaryKey" description:"部门Id"`
  12. DepartmentName string `description:"部门名称"`
  13. Sort int `description:"排序"`
  14. CreateTime time.Time `description:"创建时间"`
  15. }
  16. func GetSysDepartmentCount(departmentName string) (count int, err error) {
  17. sql := `SELECT COUNT(1) AS count FROM sys_department WHERE department_name=? `
  18. o := global.DbMap[utils.DbNameMaster]
  19. err = o.Raw(sql, departmentName).Scan(&count).Error
  20. return
  21. }
  22. func AddSysDepartment(item *SysDepartment) (lastId int64, err error) {
  23. o := global.DbMap[utils.DbNameMaster]
  24. err = o.Create(item).Error
  25. if err != nil {
  26. return
  27. }
  28. lastId = int64(item.DepartmentId)
  29. return
  30. }
  31. type SysDepartmentEditReq struct {
  32. DepartmentId int `description:"部门Id"`
  33. DepartmentName string `description:"部门名称"`
  34. }
  35. func GetSysDepartmentById(departmentId int) (item *SysDepartment, err error) {
  36. sql := `SELECT * FROM sys_department WHERE department_id=? `
  37. o := global.DbMap[utils.DbNameMaster]
  38. err = o.Raw(sql, departmentId).First(&item).Error
  39. return
  40. }
  41. func GetSysDepartmentByName(departmentName string) (item *SysDepartment, err error) {
  42. sql := `SELECT * FROM sys_department WHERE department_name=? `
  43. o := global.DbMap[utils.DbNameMaster]
  44. err = o.Raw(sql, departmentName).First(&item).Error
  45. return
  46. }
  47. func ModifySysDepartment(departmentName string, departmentId int) (err error) {
  48. o := global.DbMap[utils.DbNameMaster]
  49. to := o.Begin()
  50. defer func() {
  51. if err != nil {
  52. _ = to.Rollback()
  53. } else {
  54. _ = to.Commit()
  55. }
  56. }()
  57. sql := `UPDATE sys_department SET department_name=? WHERE department_id=? `
  58. err = to.Exec(sql, departmentName, departmentId).Error
  59. if err != nil {
  60. return
  61. }
  62. sql = `UPDATE admin SET department_name=? WHERE department_id=? `
  63. sql = utils.ReplaceDriverKeywords("", sql)
  64. err = to.Exec(sql, departmentName, departmentId).Error
  65. return
  66. }
  67. type SysDepartmentDeleteReq struct {
  68. DepartmentId int `description:"部门Id"`
  69. }
  70. func DeleteSysDepartment(departmentId int) (err error) {
  71. sql := `DELETE FROM sys_department WHERE department_id=? `
  72. o := global.DbMap[utils.DbNameMaster]
  73. err = o.Exec(sql, departmentId).Error
  74. return
  75. }
  76. type SysDepartmentList struct {
  77. DepartmentId int `orm:"column(department_id);pk" gorm:"primaryKey" description:"部门Id"`
  78. DepartmentName string `description:"部门名称"`
  79. CreateTime time.Time `description:"创建时间"`
  80. Child []*SysGroupList `description:"分组" gorm:"-"`
  81. IsDepartment bool `description:"true:部门,false:分组"`
  82. }
  83. func GetDepartmentList() (items []*SysDepartmentList, err error) {
  84. o := global.DbMap[utils.DbNameMaster]
  85. sql := `SELECT * FROM sys_department ORDER BY sort ASC, create_time ASC `
  86. err = o.Raw(sql).Find(&items).Error
  87. return
  88. }
  89. // GetDepartmentListByIds 根据部门id集合获取部门列表信息
  90. func GetDepartmentListByIds(departmentIds string) (items []*SysDepartmentList, err error) {
  91. o := global.DbMap[utils.DbNameMaster]
  92. sql := `SELECT * FROM sys_department where 1 = 1 `
  93. if departmentIds != "" {
  94. sql += `and department_id in(` + departmentIds + `) `
  95. }
  96. sql += ` ORDER BY sort ASC, create_time ASC `
  97. err = o.Raw(sql).Find(&items).Error
  98. return
  99. }
  100. type SysDepartmentListResp struct {
  101. List []*SysDepartmentList
  102. }
  103. func GetSysDepartmentAll() (item []*SysDepartment, err error) {
  104. sql := `SELECT * FROM sys_department ORDER BY sort ASC, department_id ASC `
  105. o := global.DbMap[utils.DbNameMaster]
  106. err = o.Raw(sql).Find(&item).Error
  107. return
  108. }
  109. type DepartmentSort struct {
  110. DepartmentId int
  111. Sort int
  112. }
  113. func MultiUpdateDepartmentSort(items []*DepartmentSort) (err error) {
  114. if len(items) == 0 {
  115. return
  116. }
  117. o := global.DbMap[utils.DbNameMaster]
  118. sql := "UPDATE sys_department SET sort = ? WHERE department_id = ?"
  119. for _, v := range items {
  120. err = o.Exec(sql, v.Sort, v.DepartmentId).Error
  121. if err != nil {
  122. return
  123. }
  124. }
  125. return
  126. }
  127. // DepartmentUserTree 部门用户树
  128. type DepartmentUserTree struct {
  129. NodeId int `description:"节点ID"`
  130. NodeType int `description:"节点类型:1-部门;2-分组;3-用户"`
  131. NodeName string `description:"节点名称"`
  132. Children []*DepartmentUserTree `description:"子节点" gorm:"-"`
  133. }