sys_org.go 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253
  1. package apis
  2. import (
  3. "IotAdmin/app/system/models"
  4. "IotAdmin/common/permission"
  5. "IotAdmin/core/sdk/api"
  6. "IotAdmin/core/sdk/pkg"
  7. "IotAdmin/core/sdk/pkg/jwt-auth/user"
  8. _ "IotAdmin/core/sdk/pkg/response"
  9. "github.com/gin-gonic/gin"
  10. "github.com/gin-gonic/gin/binding"
  11. "IotAdmin/app/system/service"
  12. "IotAdmin/app/system/service/dto"
  13. )
  14. type SysOrgApi struct {
  15. api.Api
  16. }
  17. // GetPage
  18. // @Summary 分页部门列表数据
  19. // @Description 分页列表
  20. // @Tags 部门
  21. // @Param orgName query string false "orgName"
  22. // @Param orgId query string false "orgId"
  23. // @Param position query string false "position"
  24. // @Success 200 {object} response.Response "{"code": 200, "data": [...]}"
  25. // @Router /api/sys-org [get]
  26. // @Security Bearer
  27. func (e SysOrgApi) GetPage(c *gin.Context) {
  28. s := service.SysOrgService{}
  29. req := dto.SysOrgGetPageReq{}
  30. err := e.MakeContext(c).
  31. MakeOrm().
  32. Bind(&req).
  33. MakeService(&s.Service).
  34. Errors
  35. if err != nil {
  36. e.Logger.Error(err)
  37. e.Error(500, err, err.Error())
  38. return
  39. }
  40. p := permission.GetPermissionFromContext(c)
  41. list := make([]models.SysOrg, 0)
  42. list, err = s.SetOrgPage(&req, p)
  43. if err != nil {
  44. e.Error(500, err, "查询失败")
  45. return
  46. }
  47. e.OK(list, "查询成功")
  48. }
  49. // Get
  50. // @Summary 获取部门数据
  51. // @Description 获取JSON
  52. // @Tags 部门
  53. // @Param orgId path string false "orgId"
  54. // @Success 200 {object} response.Response "{"code": 200, "data": [...]}"
  55. // @Router /api/sys-org/{id} [get]
  56. // @Security Bearer
  57. func (e SysOrgApi) Get(c *gin.Context) {
  58. s := service.SysOrgService{}
  59. req := dto.SysOrgGetReq{}
  60. err := e.MakeContext(c).
  61. MakeOrm().
  62. Bind(&req, binding.JSON, nil).
  63. MakeService(&s.Service).
  64. Errors
  65. if err != nil {
  66. e.Logger.Error(err)
  67. e.Error(500, err, err.Error())
  68. return
  69. }
  70. var object models.SysOrg
  71. err = s.Get(&req, &object)
  72. if err != nil {
  73. e.Error(500, err, "查询失败")
  74. return
  75. }
  76. e.OK(object, "查询成功")
  77. }
  78. // Insert 添加部门
  79. // @Summary 添加部门
  80. // @Description 获取JSON
  81. // @Tags 部门
  82. // @Accept application/json
  83. // @Product application/json
  84. // @Param data body dto.SysOrgInsertReq true "data"
  85. // @Success 200 {string} string "{"code": 200, "message": "添加成功"}"
  86. // @Success 200 {string} string "{"code": -1, "message": "添加失败"}"
  87. // @Router /api/sys-org [post]
  88. // @Security Bearer
  89. func (e SysOrgApi) Insert(c *gin.Context) {
  90. s := service.SysOrgService{}
  91. req := dto.SysOrgInsertReq{}
  92. err := e.MakeContext(c).
  93. MakeOrm().
  94. Bind(&req, binding.JSON).
  95. MakeService(&s.Service).
  96. Errors
  97. if err != nil {
  98. e.Logger.Error(err)
  99. e.Error(500, err, err.Error())
  100. return
  101. }
  102. // 设置创建人
  103. req.SetCreateBy(user.GetUserId(c))
  104. err = s.Insert(&req)
  105. if err != nil {
  106. e.Error(500, err, "创建失败")
  107. return
  108. }
  109. e.OK(req.GetId(), "创建成功")
  110. }
  111. // Update
  112. // @Summary 修改部门
  113. // @Description 获取JSON
  114. // @Tags 部门
  115. // @Accept application/json
  116. // @Product application/json
  117. // @Param id path int true "id"
  118. // @Param data body dto.SysOrgUpdateReq true "body"
  119. // @Success 200 {string} string "{"code": 200, "message": "添加成功"}"
  120. // @Success 200 {string} string "{"code": -1, "message": "添加失败"}"
  121. // @Router /api/sys-org/{id} [put]
  122. // @Security Bearer
  123. func (e SysOrgApi) Update(c *gin.Context) {
  124. s := service.SysOrgService{}
  125. req := dto.SysOrgUpdateReq{}
  126. err := e.MakeContext(c).
  127. MakeOrm().
  128. Bind(&req).
  129. MakeService(&s.Service).
  130. Errors
  131. if err != nil {
  132. e.Logger.Error(err)
  133. e.Error(500, err, err.Error())
  134. return
  135. }
  136. req.SetUpdateBy(user.GetUserId(c))
  137. err = s.Update(&req)
  138. if err != nil {
  139. e.Error(500, err, err.Error())
  140. return
  141. }
  142. e.OK(req.GetId(), "更新成功")
  143. }
  144. // Delete
  145. // @Summary 删除部门
  146. // @Description 删除数据
  147. // @Tags 部门
  148. // @Param data body dto.SysOrgDeleteReq true "body"
  149. // @Success 200 {string} string "{"code": 200, "message": "删除成功"}"
  150. // @Success 200 {string} string "{"code": -1, "message": "删除失败"}"
  151. // @Router /api/sys-org [delete]
  152. // @Security Bearer
  153. func (e SysOrgApi) Delete(c *gin.Context) {
  154. s := service.SysOrgService{}
  155. req := dto.SysOrgDeleteReq{}
  156. err := e.MakeContext(c).
  157. MakeOrm().
  158. Bind(&req, binding.JSON, nil).
  159. MakeService(&s.Service).
  160. Errors
  161. if err != nil {
  162. e.Logger.Error(err)
  163. e.Error(500, err, err.Error())
  164. return
  165. }
  166. err = s.Remove(&req)
  167. if err != nil {
  168. e.Error(500, err, "删除失败")
  169. return
  170. }
  171. e.OK(req.GetId(), "删除成功")
  172. }
  173. // Get2Tree 部门树
  174. // @Summary 部门树
  175. // @Description 左侧部门树
  176. // @Tags 系統接口/部门
  177. // @Param data body dto.SysOrgDeleteReq true "body"
  178. // @Success 200 {string} string "{"code": 200, "data": []}"
  179. // @Router /api/sys/org-tree/{id} [get]
  180. // @Security Bearer
  181. func (e SysOrgApi) Get2Tree(c *gin.Context) {
  182. s := service.SysOrgService{}
  183. req := dto.SysOrgGetReq{}
  184. err := e.MakeContext(c).MakeOrm().Bind(&req).MakeService(&s.Service).Errors
  185. if err != nil {
  186. e.Logger.Error(err)
  187. e.Error(500, err, err.Error())
  188. return
  189. }
  190. p := permission.GetPermissionFromContext(c)
  191. list := make([]dto.OrgLabel, 0)
  192. list, err = s.SetOrgTree(&req, p)
  193. if err != nil {
  194. e.Error(500, err, "查询失败")
  195. return
  196. }
  197. e.OK(list, "")
  198. }
  199. // GetOrgTreeRoleSelect 根据角色查询部门树 TODO: 此接口需要调整不应该将list和选中放在一起
  200. // @Summary 部门下拉树
  201. // @Description 根据角色查询部门树
  202. // @Tags 系統接口/部门
  203. // @Param data body dto.SysOrgDeleteReq true "body"
  204. // @Success 200 {string} string "{"code": 200, "data": []}"
  205. // @Router /api/sys/role-org-tree-select/{roleId} [get]
  206. // @Security Bearer
  207. func (e SysOrgApi) GetOrgTreeRoleSelect(c *gin.Context) {
  208. s := service.SysOrgService{}
  209. err := e.MakeContext(c).
  210. MakeOrm().
  211. MakeService(&s.Service).
  212. Errors
  213. if err != nil {
  214. e.Logger.Error(err)
  215. e.Error(500, err, err.Error())
  216. return
  217. }
  218. //数据权限检查
  219. p := permission.GetPermissionFromContext(c)
  220. id, err := pkg.StringToInt(c.Param("roleId"))
  221. result, err := s.SetOrgLabel(p)
  222. if err != nil {
  223. e.Error(500, err, err.Error())
  224. return
  225. }
  226. menuIds := make([]int, 0)
  227. if id != 0 {
  228. menuIds, err = s.GetWithRoleId(id)
  229. if err != nil {
  230. e.Error(500, err, err.Error())
  231. return
  232. }
  233. }
  234. e.OK(gin.H{
  235. "orgs": result,
  236. "checkedKeys": menuIds,
  237. }, "")
  238. }