sys_department.go 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273
  1. package controllers
  2. import (
  3. "encoding/json"
  4. "eta/eta_mini_crm/models"
  5. "eta/eta_mini_crm/models/request"
  6. "eta/eta_mini_crm/models/response"
  7. "eta/eta_mini_crm/services"
  8. "github.com/beego/beego/v2/client/orm"
  9. )
  10. type SysDepartmentController struct {
  11. BaseAuthController
  12. }
  13. // List
  14. // @Title 获取部门列表
  15. // @Description 获取部门列表接口
  16. // @Success 200 {object} system.SysDepartmentListResp
  17. // @router /list [get]
  18. func (this *SysDepartmentController) List() {
  19. br := new(models.BaseResponse).Init()
  20. defer func() {
  21. this.Data["json"] = br
  22. this.ServeJSON()
  23. }()
  24. departmentList, err := models.GetSysDepartmentList()
  25. if err != nil {
  26. br.Msg = "获取部门列表失败"
  27. br.ErrMsg = "获取部门列表失败,Err" + err.Error()
  28. return
  29. }
  30. list := services.GetSysDepartmentTree(departmentList, 0)
  31. resp := new(response.SysDepartmentListResp)
  32. resp.List = list
  33. br.Ret = 200
  34. br.Success = true
  35. br.Msg = "获取成功"
  36. br.Data = resp
  37. }
  38. // Add
  39. // @Title 新增部门
  40. // @Description 新增部门接口
  41. // @Param request body system.SysDepartmentAddReq true "type json string"
  42. // @Success 200 新增成功
  43. // @router /add [post]
  44. func (this *SysDepartmentController) Add() {
  45. br := new(models.BaseResponse).Init()
  46. defer func() {
  47. this.Data["json"] = br
  48. this.ServeJSON()
  49. }()
  50. var req request.SysDepartmentAddReq
  51. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  52. if err != nil {
  53. br.Msg = "参数解析异常!"
  54. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  55. return
  56. }
  57. if len(req.SysDepartmentNames) <= 0 {
  58. br.Msg = "部门名称不能为空"
  59. return
  60. }
  61. // 这里实际没有传多个部门,不知道为啥要这么写...=_=!
  62. for _, dep := range req.SysDepartmentNames {
  63. count, err := models.GetSysDepartmentCountByParentId(req.SysDepartmentId, dep)
  64. if err != nil {
  65. br.Msg = "获取数据失败"
  66. br.ErrMsg = "获取数据失败,Err:" + err.Error()
  67. return
  68. }
  69. if count > 0 {
  70. br.Msg = "部门名称已存在"
  71. return
  72. }
  73. sysDepartment := &models.SysDepartment{}
  74. sysDepartment.SysDepartmentName = dep
  75. sysDepartment.Level = req.Level
  76. sysDepartment.ParentId = req.SysDepartmentId
  77. err = sysDepartment.Add()
  78. if err != nil {
  79. br.Msg = "新增失败"
  80. br.ErrMsg = "新增失败,Err:" + err.Error()
  81. return
  82. }
  83. }
  84. br.Ret = 200
  85. br.Success = true
  86. br.Msg = "新增成功"
  87. }
  88. // Edit
  89. // @Title 编辑部门
  90. // @Description 编辑部门接口
  91. // @Param request body request.SysDepartmentEditReq true "type json string"
  92. // @Success 200 编辑成功
  93. // @router /edit [post]
  94. func (this *SysDepartmentController) Edit() {
  95. br := new(models.BaseResponse).Init()
  96. defer func() {
  97. this.Data["json"] = br
  98. this.ServeJSON()
  99. }()
  100. var req request.SysDepartmentEditReq
  101. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  102. if err != nil {
  103. br.Msg = "参数解析异常!"
  104. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  105. return
  106. }
  107. if req.SysDepartmentId <= 0 {
  108. br.Msg = "参数错误"
  109. br.ErrMsg = "参数错误,SysDepartmentId 小于等于0 "
  110. return
  111. }
  112. if req.SysDepartmentName == "" {
  113. br.Msg = "名称不能为空"
  114. return
  115. }
  116. count, err := models.GetSysDepartmentCountById(req.SysDepartmentId)
  117. if err != nil && err != orm.ErrNoRows {
  118. br.Msg = "获取数据失败"
  119. br.ErrMsg = "获取数据失败,Err:" + err.Error()
  120. return
  121. }
  122. if count <= 0 {
  123. br.Msg = "分组不存在,请刷新重试"
  124. return
  125. }
  126. oldSysDepartment, err := models.GetSysDepartmentById(req.SysDepartmentId)
  127. if err != nil && err != orm.ErrNoRows {
  128. br.Msg = "获取数据失败"
  129. br.ErrMsg = "获取数据失败,Err:" + err.Error()
  130. return
  131. }
  132. //if oldSysDepartment.SysDepartmentName == "营业部" {
  133. // br.Msg = "营业部不能编辑"
  134. // return
  135. //}
  136. newSysDepartment, err := models.GetSysDepartmentByName(req.SysDepartmentName)
  137. if err != nil && err != orm.ErrNoRows {
  138. br.Msg = "获取数据失败"
  139. br.ErrMsg = "获取数据失败,Err:" + err.Error()
  140. return
  141. }
  142. if newSysDepartment != nil && newSysDepartment.SysDepartmentId != oldSysDepartment.SysDepartmentId {
  143. br.Msg = "分组名称已存在,请重新输入"
  144. return
  145. }
  146. sysDepartment := &models.SysDepartment{}
  147. sysDepartment.SysDepartmentId = req.SysDepartmentId
  148. sysDepartment.SysDepartmentName = req.SysDepartmentName
  149. err = models.SaveSysDepartmentName(sysDepartment)
  150. if err != nil {
  151. br.Msg = "编辑失败"
  152. br.Msg = "编辑失败,系统错误,Err:" + err.Error()
  153. return
  154. }
  155. br.Ret = 200
  156. br.Success = true
  157. br.Msg = "编辑成功"
  158. }
  159. // Delete
  160. // @Title 删除分组
  161. // @Description 删除分组接口
  162. // @Param request body request.SysDepartmentDeleteReq true "type json string"
  163. // @Success 200 删除成功
  164. // @router /delete [post]
  165. func (this *SysDepartmentController) Delete() {
  166. br := new(models.BaseResponse).Init()
  167. defer func() {
  168. this.Data["json"] = br
  169. this.ServeJSON()
  170. }()
  171. var req request.SysDepartmentDeleteReq
  172. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  173. if err != nil {
  174. br.Msg = "参数解析异常!"
  175. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  176. return
  177. }
  178. if req.SysDepartmentId <= 0 {
  179. br.Msg = "参数错误"
  180. br.ErrMsg = "参数错误,SysDepartmentId 小于等于0 "
  181. return
  182. }
  183. if req.Level <= 0 {
  184. br.Msg = "参数错误"
  185. br.ErrMsg = "参数错误,Level 小于等于0 "
  186. return
  187. }
  188. msg, err := services.DeleteSysDepartmentById(req.SysDepartmentId, req.Level)
  189. if err != nil {
  190. if msg != "" {
  191. br.Msg = msg
  192. } else {
  193. br.Msg = "删除失败"
  194. }
  195. br.ErrMsg = "删除失败,系统异常,Err:" + err.Error()
  196. return
  197. }
  198. if msg != "" {
  199. br.Msg = msg
  200. return
  201. }
  202. br.Ret = 200
  203. br.Msg = "删除成功"
  204. br.Success = true
  205. }
  206. // SetSort
  207. // @Title 分组排序
  208. // @Description 分组排序
  209. // @Param request body request.SysDepartmentSortReq true "type json string"
  210. // @Success 200 修改成功
  211. // @router /set_sort [post]
  212. func (this *SysDepartmentController) SetSort() {
  213. br := new(models.BaseResponse).Init()
  214. defer func() {
  215. if br.ErrMsg == "" {
  216. br.IsSendEmail = false
  217. }
  218. this.Data["json"] = br
  219. this.ServeJSON()
  220. }()
  221. var req request.SysDepartmentSortReq
  222. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  223. if err != nil {
  224. br.Msg = "参数解析异常!"
  225. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  226. return
  227. }
  228. // 一级排序
  229. if len(req.DepartmentIds1) > 0 {
  230. err = models.UpdateDepartmentSortByIds(req.DepartmentIds1)
  231. if err != nil {
  232. br.Msg = "操作失败"
  233. br.ErrMsg = "批量更新部门排序失败, Err: " + err.Error()
  234. return
  235. }
  236. }
  237. // 二级级排序
  238. if len(req.DepartmentIds2) > 0 {
  239. err = models.UpdateDepartmentSortByIds(req.DepartmentIds2)
  240. if err != nil {
  241. br.Msg = "操作失败"
  242. br.ErrMsg = "批量更新部门排序失败, Err: " + err.Error()
  243. return
  244. }
  245. }
  246. // 三级级排序
  247. if len(req.DepartmentIds3) > 0 {
  248. err = models.UpdateDepartmentSortByIds(req.DepartmentIds3)
  249. if err != nil {
  250. br.Msg = "操作失败"
  251. br.ErrMsg = "批量更新部门排序失败, Err: " + err.Error()
  252. return
  253. }
  254. }
  255. br.Ret = 200
  256. br.Success = true
  257. br.Msg = "操作成功"
  258. }