SysAppController.go 9.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330
  1. package partial
  2. import (
  3. "fmt"
  4. "git.qianqiusoft.com/qianqiusoft/light-apiengine/entitys"
  5. "time"
  6. //sysmodel "git.qianqiusoft.com/qianqiusoft/light-apiengine/models"
  7. "git.qianqiusoft.com/qianqiusoft/light-apiengine/models"
  8. sysmodel "git.qianqiusoft.com/qianqiusoft/light-apiengine/models"
  9. sysutils "git.qianqiusoft.com/qianqiusoft/light-apiengine/utils"
  10. "strconv"
  11. //__import_packages__
  12. )
  13. // _AddAppFun
  14. // @Title _AddAppFun
  15. // @Description 添加APP功能
  16. // @Param string false "功能"
  17. // @Success 200 {object} Account
  18. // @Failure 403 :id is empty
  19. func SysApp_AddAppFun(c *entitys.CtrlContext) {
  20. var paramObj0 models.SysAppFun
  21. c.Ctx.BindJSON(&paramObj0)
  22. user_id := c.Ctx.GetString("user_id")
  23. paramObj0.Id = sysutils.NewUUID()
  24. paramObj0.CreateBy = user_id
  25. paramObj0.LastUpdateBy = user_id
  26. paramObj0.CreateTime = models.NowLocal()
  27. paramObj0.LastUpdateTime = time.Now().UnixNano()
  28. paramObj0.DelFlag = 0
  29. if paramObj0.Parent != "" {
  30. parentNodes := []sysmodel.SysAppFun{}
  31. err := c.Db.SqlMapClient("select_parent_app_fun", paramObj0.Parent).Find(&parentNodes)
  32. if err != nil {
  33. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  34. return
  35. }
  36. paramObj0.Inheritance = fmt.Sprintf("|%s%s", paramObj0.Id, parentNodes[0].Inheritance)
  37. } else {
  38. paramObj0.Inheritance = fmt.Sprintf("|%s|", paramObj0.Id)
  39. }
  40. paramMap, err := sysutils.BeanToMap(&paramObj0)
  41. _, err = c.Db.SqlMapClient("insert_sys_app_fun", paramMap).Execute()
  42. if err == nil {
  43. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  44. } else {
  45. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  46. }
  47. }
  48. // _DelAppFun
  49. // @Title _DelAppFun
  50. // @Description 删除app功能
  51. // @Param id string false "APP功能ID"
  52. // @Success 200 {object} Account
  53. // @Failure 403 :id is empty
  54. func SysApp_DelAppFun(c *entitys.CtrlContext) {
  55. type Param struct {
  56. Id string `json:"id"`
  57. }
  58. var params []Param
  59. c.Ctx.BindJSON(&params)
  60. ids := []string{}
  61. for _, param := range params {
  62. ids = append(ids, param.Id)
  63. }
  64. _, err := c.Db.Table(new(models.SysAppFun)).In("id", ids).Update(map[string]interface{}{"del_flag": 1})
  65. if err == nil {
  66. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  67. } else {
  68. c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
  69. }
  70. }
  71. // _UpdateAppFun
  72. // @Title _UpdateAppFun
  73. // @Description 更新APP功能
  74. // @Param string false "功能"
  75. // @Success 200 {object} Account
  76. // @Failure 403 :id is empty
  77. func SysApp_UpdateAppFun(c *entitys.CtrlContext) {
  78. var paramObj0 models.SysAppFun
  79. c.Ctx.BindJSON(&paramObj0)
  80. tk, _ := c.Ctx.Get("token")
  81. user := tk.(*entitys.Token)
  82. if paramObj0.Parent != "" {
  83. parentNodes := []sysmodel.SysAppFun{}
  84. err := c.Db.SqlMapClient("select_parent_app_fun", paramObj0.Parent).Find(&parentNodes)
  85. if err != nil {
  86. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  87. return
  88. }
  89. paramObj0.Inheritance = fmt.Sprintf("|%s%s", paramObj0.Id, parentNodes[0].Inheritance)
  90. } else {
  91. paramObj0.Inheritance = fmt.Sprintf("|%s|", paramObj0.Id)
  92. }
  93. paramObj0.LastUpdateBy = user.UserId
  94. paramObj0.LastUpdateTime = time.Now().UnixNano()
  95. paramMap, err := sysutils.BeanToMap(&paramObj0)
  96. _, err = c.Db.SqlMapClient("update_sys_app_fun", paramMap).Execute()
  97. if err == nil {
  98. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  99. } else {
  100. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  101. }
  102. }
  103. // _FindAppFunPage
  104. // @Title _FindAppFunPage
  105. // @Description 分页获取APP功能
  106. // @Success 200 {object} Account
  107. // @Failure 403 :id is empty
  108. func SysApp_FindAppFunPage(c *entitys.CtrlContext) {
  109. page, _ := strconv.Atoi(c.Ctx.DefaultQuery("page", "1"))
  110. rows, _ := strconv.Atoi(c.Ctx.DefaultQuery("rows", "10"))
  111. name := c.Ctx.DefaultQuery("name", "")
  112. code := c.Ctx.DefaultQuery("code", "")
  113. cn_id := c.Ctx.DefaultQuery("cn_id", "")
  114. hidden := c.Ctx.DefaultQuery("hidden", "")
  115. paramMap_i_t := map[string]interface{}{"page": page, "rows": rows, "name": name, "code": code, "cn_id": cn_id, "hidden": hidden}
  116. result, err := sysutils.PageSearch(c.Db, "sys_app", "find_app_fun_page", "sys_app_fun", paramMap_i_t)
  117. if err == nil {
  118. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", result})
  119. } else {
  120. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  121. }
  122. }
  123. // _GetAppFunTree
  124. // @Title _GetAppFunTree
  125. // @Description 获取APP功能树
  126. // @Success 200 {object} Account
  127. // @Failure 403 :id is empty
  128. func SysApp_GetAppFunTree(c *entitys.CtrlContext) {
  129. code := c.Ctx.DefaultQuery("code", "")
  130. paramMap_i_t := map[string]interface{}{"sort": "name", "code": code}
  131. result, err := sysutils.TreeSearch(c.Db, "sys_app", "get_app_fun_tree", "sys_app_fun", paramMap_i_t)
  132. if err == nil {
  133. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", result})
  134. } else {
  135. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  136. }
  137. }
  138. // _AddRoleAppFun
  139. // @Title _AddRoleAppFun
  140. // @Description 添加角色APP功能
  141. // @Param string false "功能"
  142. // @Success 200 {object} Account
  143. // @Failure 403 :id is empty
  144. func SysApp_AddRoleAppFun(c *entitys.CtrlContext) {
  145. user_id := c.Ctx.GetString("user_id")
  146. var paramObj0 struct {
  147. AppFunIds []string `json:"app_fun_ids"`
  148. RoleId string `json:"role_id"`
  149. }
  150. c.Ctx.BindJSON(&paramObj0)
  151. session := c.Db.NewSession()
  152. defer session.Close()
  153. session.Begin()
  154. _, err := session.SqlMapClient("del_role_app_fun", paramObj0.RoleId).Execute()
  155. if err != nil {
  156. session.Rollback()
  157. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  158. return
  159. }
  160. var roleAppFuns []*sysmodel.SysRoleAppFun
  161. for _, menu := range paramObj0.AppFunIds {
  162. roleAppFun := &sysmodel.SysRoleAppFun{}
  163. roleAppFun.Id = sysutils.NewUUID()
  164. roleAppFun.AppFunId = menu
  165. roleAppFun.RoleId = paramObj0.RoleId
  166. roleAppFun.CreateBy = user_id
  167. roleAppFun.CreateTime = sysmodel.NowLocal()
  168. roleAppFuns = append(roleAppFuns, roleAppFun)
  169. }
  170. _, err = session.InsertMulti(&roleAppFuns)
  171. if err != nil {
  172. session.Rollback()
  173. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  174. return
  175. }
  176. session.Commit()
  177. ret := __none_func_system__(paramObj0)
  178. if ret {
  179. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  180. } else {
  181. c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
  182. }
  183. }
  184. // _DelRoleAppFun
  185. // @Title _DelRoleAppFun
  186. // @Description 删除角色APP功能
  187. // @Param id string false "APP功能ID"
  188. // @Success 200 {object} Account
  189. // @Failure 403 :id is empty
  190. func SysApp_DelRoleAppFun(c *entitys.CtrlContext) {
  191. id := c.Ctx.Query("id")
  192. ret := __none_func_sys_app__(id)
  193. if ret {
  194. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  195. } else {
  196. c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
  197. }
  198. }
  199. // _UpdateRoleAppFun
  200. // @Title _UpdateRoleAppFun
  201. // @Description 更新角色APP功能
  202. // @Param string false "功能"
  203. // @Success 200 {object} Account
  204. // @Failure 403 :id is empty
  205. func SysApp_UpdateRoleAppFun(c *entitys.CtrlContext) {
  206. var paramObj0 models.SysRoleAppFun
  207. c.Ctx.BindJSON(&paramObj0)
  208. ret := __none_func_sys_app__(paramObj0)
  209. if ret {
  210. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  211. } else {
  212. c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
  213. }
  214. }
  215. // _GetRoleAppFunTree
  216. // @Title _GetRoleAppFunTree
  217. // @Description 获取角色APP功能
  218. // @Param role_id string false "角色id"
  219. // @Success 200 {object} Account
  220. // @Failure 403 :id is empty
  221. func SysApp_GetRoleAppFun(c *entitys.CtrlContext) {
  222. role_id := c.Ctx.Query("role_id")
  223. paramMap := map[string]interface{}{"user_id": "", "sort": "name", "hidden": 0}
  224. sysTree, err := sysutils.TreeSearch(c.Db, "sys_app", "get_app_fun_tree", "sys_app_fun", paramMap)
  225. if err != nil {
  226. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  227. return
  228. }
  229. paramMap2 := map[string]interface{}{"role_id": role_id}
  230. roleAppFun, err := c.Db.SqlMapClient("get_role_app_fun_tree", &paramMap2).Query().List()
  231. if err != nil {
  232. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  233. return
  234. }
  235. roleTree, err := sysutils.BuildTree("", roleAppFun)
  236. ret := __none_func_system__(role_id)
  237. if ret {
  238. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", map[string]interface{}{"sys_tree": sysTree, "role_tree": roleTree}})
  239. } else {
  240. c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
  241. }
  242. }
  243. // _FindRoleAppFunPage
  244. // @Title _FindRoleAppFunPage
  245. // @Description 分页获取角色APP功能
  246. // @Success 200 {object} Account
  247. // @Failure 403 :id is empty
  248. func SysApp_FindRoleAppFunPage(c *entitys.CtrlContext) {
  249. page, _ := strconv.Atoi(c.Ctx.DefaultQuery("page", "1"))
  250. rows, _ := strconv.Atoi(c.Ctx.DefaultQuery("rows", "10"))
  251. paramMap_i_t := map[string]interface{}{"page": page, "rows": rows}
  252. result, err := sysutils.PageSearch(c.Db, "sys_app", "find_role_app_fun_page", "sys_role_app_fun", paramMap_i_t)
  253. if err == nil {
  254. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", result})
  255. } else {
  256. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  257. }
  258. }
  259. // _GetRoleAppFunTree
  260. // @Title _GetRoleAppFunTree
  261. // @Description 获取角色APP功能树
  262. // @Success 200 {object} Account
  263. // @Failure 403 :id is empty
  264. func SysApp_GetRoleAppFunTree(c *entitys.CtrlContext) {
  265. user_id := c.Ctx.GetString("user_id")
  266. code := c.Ctx.DefaultQuery("code", "")
  267. paramMap_i_t := map[string]interface{}{"sort": "name", "user_id": user_id, "code": code}
  268. result, err := sysutils.TreeSearch(c.Db, "sys_app", "get_role_app_fun_tree", "sys_role_app_fun", paramMap_i_t)
  269. if err == nil {
  270. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", result})
  271. } else {
  272. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  273. }
  274. }
  275. func __none_func_sys_app__(params ...interface{}) bool {
  276. return true
  277. }