SystemController.go 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188
  1. package controllers
  2. import (
  3. sysmodel "git.qianqiusoft.com/qianqiusoft/light-apiengine/models"
  4. "fmt"
  5. )
  6. //https://www.kancloud.cn/xormplus/xorm/167077
  7. // _Login
  8. // @Title _Login
  9. // @Description 用户登录
  10. // @Param logininfo false "登录信息"
  11. // @Success 200 {object} sysmodel.Account
  12. // @Failure 403 :id is empty
  13. func System_Login(c *SystemController) {
  14. var logininfo sysmodel.LoginInfo
  15. c.Ctx.BindJSON(&logininfo)
  16. __none_func_system__(logininfo)
  17. fmt.Println(logininfo)
  18. var user sysmodel.SysUser
  19. ret, err:=c.Db.SQL(sysmodel.SqlUserLogin, logininfo.Account).Get(&user)
  20. if ret && err ==nil{
  21. //TODO check password
  22. data:=sysmodel.LoginReturnInfo{user.Id,user.LoginId,user.Id}
  23. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", data})
  24. }else {
  25. //fmt.Println(err.Error())
  26. c.Ctx.JSON(200, sysmodel.SysReturn{400, "username or passowrd incorrect!", nil})
  27. }
  28. }
  29. // _Logout
  30. // @Title _Logout
  31. // @Description 用户退出
  32. // @Success 200 {object} sysmodel.Account
  33. // @Failure 403 :id is empty
  34. func System_Logout(c *SystemController) {
  35. ret := __none_func_system__()
  36. if ret {
  37. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  38. }else{
  39. c.Ctx.JSON(200, sysmodel.SysReturn{500, "", nil})
  40. }
  41. }
  42. // _GetMenuTree
  43. // @Title _GetMenuTree
  44. // @Description 获取系统菜单
  45. // @Param user string false "用户id"
  46. // @Success 200 {object} sysmodel.Account
  47. // @Failure 403 :id is empty
  48. func System_GetMenuTree(c *SystemController) {
  49. user := c.Ctx.Param(":user")
  50. ret := __none_func_system__(user)
  51. var menus []sysmodel.SysMenuTree
  52. c.Db.SQL(sysmodel.Selectall_sys_menu).Find(&menus)
  53. var menutree []sysmodel.SysMenuTree
  54. finChildrenMenu( &menus, "", nil, &menutree)
  55. for i:=0;i<len(menutree);i++{
  56. finChildrenMenu( &menus, menutree[i].Id, &menutree[i], &menutree)
  57. }
  58. if ret{
  59. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", menutree})
  60. }
  61. }
  62. // _GetOrgTree
  63. // @Title _GetOrgTree
  64. // @Description 获取组织架构树
  65. // @Success 200 {object} sysmodel.Account
  66. // @Failure 403 :id is empty
  67. func System_GetOrgTree(c *SystemController) {
  68. ret := __none_func_system__()
  69. var orgs []sysmodel.SysOrgTree
  70. c.Db.SQL(sysmodel.Selectall_sys_org).Find(&orgs)
  71. var orgtree []sysmodel.SysOrgTree
  72. finChildrenOrg( &orgs, "", nil, &orgtree)
  73. for i:=0;i<len(orgtree);i++{
  74. finChildrenOrg( &orgs, orgtree[i].Id, &orgtree[i], &orgtree)
  75. }
  76. if ret {
  77. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", orgtree})
  78. }else{
  79. c.Ctx.JSON(200, sysmodel.SysReturn{500, "", nil})
  80. }
  81. }
  82. func finChildrenOrg(menus *[]sysmodel.SysOrgTree, parent string, parent_menu* sysmodel.SysOrgTree, menutree *[]sysmodel.SysOrgTree) {
  83. for _,m:= range *menus{
  84. if m.Parent == parent {
  85. if parent_menu == nil{
  86. *menutree = append(*menutree, m)
  87. //finChildrenMenu(menus, m.Id, menutree[len(*menutree)-1], menutree)
  88. }else {
  89. parent_menu.Children = append(parent_menu.Children,m)
  90. finChildrenOrg(menus, m.Id, &parent_menu.Children[len(parent_menu.Children)-1], menutree)
  91. }
  92. }
  93. }
  94. }
  95. func finChildrenMenu(menus *[]sysmodel.SysMenuTree, parent string, parent_menu* sysmodel.SysMenuTree, menutree *[]sysmodel.SysMenuTree) {
  96. for _,m:= range *menus{
  97. if m.Parent == parent {
  98. if parent_menu == nil{
  99. *menutree = append(*menutree, m)
  100. //finChildrenMenu(menus, m.Id, menutree[len(*menutree)-1], menutree)
  101. }else {
  102. parent_menu.Children = append(parent_menu.Children,m)
  103. finChildrenMenu(menus, m.Id, &parent_menu.Children[len(parent_menu.Children)-1], menutree)
  104. }
  105. }
  106. }
  107. }
  108. // _FindUserPage
  109. // @Title _FindUserPage
  110. // @Description 获取用户分布数据
  111. // @Param page false "分页参数"
  112. // @Success 200 {object} sysmodel.Account
  113. // @Failure 403 :id is empty
  114. func System_FindUserPage(c *SystemController) {
  115. var getpageinfo sysmodel.GetPageInfo
  116. c.Ctx.BindJSON(&getpageinfo)
  117. __none_func_system__(getpageinfo)
  118. fmt.Println(getpageinfo)
  119. page := sysmodel.SysUserPageInfo{}
  120. var users []sysmodel.SysUser
  121. err := c.Db.SQL(sysmodel.Selectall_sys_user).Limit(getpageinfo.PageSize, (getpageinfo.PageNum -1)*getpageinfo.PageSize).Find(&users)
  122. page.Content = users
  123. page.PageSize = getpageinfo.PageSize
  124. page.PageNum = getpageinfo.PageNum
  125. page.TotalSize = 1
  126. if err==nil{
  127. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", page})
  128. }else {
  129. fmt.Println(err.Error())
  130. c.Ctx.JSON(200, sysmodel.SysReturn{500, "", nil})
  131. }
  132. }
  133. // _FindPermissions
  134. // @Title _FindPermissions
  135. // @Description 查找用户的菜单权限标识集合
  136. // @Param user string false "用户id"
  137. // @Success 200 {object} sysmodel.Account
  138. // @Failure 403 :id is empty
  139. func System_FindPermissions(c *SystemController) {
  140. user := c.Ctx.Param(":user")
  141. ret := __none_func_system__(user)
  142. if ret {
  143. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  144. }else{
  145. c.Ctx.JSON(200, sysmodel.SysReturn{500, "", nil})
  146. }
  147. }
  148. // _AddPermission
  149. // @Title _AddPermission
  150. // @Description 查找用户的菜单权限标识集合
  151. // @Param user string false "用户id"
  152. // @Success 200 {object} sysmodel.Account
  153. // @Failure 403 :id is empty
  154. func System_AddPermission(c *SystemController) {
  155. user := c.Ctx.Param(":user")
  156. ret := __none_func_system__(user)
  157. if ret {
  158. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  159. }else{
  160. c.Ctx.JSON(200, sysmodel.SysReturn{500, "", nil})
  161. }
  162. }
  163. func __none_func_system__(params ... interface{}) bool{
  164. return true
  165. }