SysAppController.go 9.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329
  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. user_id := c.Ctx.GetString("user_id")
  81. if paramObj0.Parent != "" {
  82. parentNodes := []sysmodel.SysAppFun{}
  83. err := c.Db.SqlMapClient("select_parent_app_fun", paramObj0.Parent).Find(&parentNodes)
  84. if err != nil {
  85. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  86. return
  87. }
  88. paramObj0.Inheritance = fmt.Sprintf("|%s%s", paramObj0.Id, parentNodes[0].Inheritance)
  89. } else {
  90. paramObj0.Inheritance = fmt.Sprintf("|%s|", paramObj0.Id)
  91. }
  92. paramObj0.LastUpdateBy = user_id
  93. paramObj0.LastUpdateTime = time.Now().UnixNano()
  94. paramMap, err := sysutils.BeanToMap(&paramObj0)
  95. _, err = c.Db.SqlMapClient("update_sys_app_fun", paramMap).Execute()
  96. if err == nil {
  97. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  98. } else {
  99. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  100. }
  101. }
  102. // _FindAppFunPage
  103. // @Title _FindAppFunPage
  104. // @Description 分页获取APP功能
  105. // @Success 200 {object} Account
  106. // @Failure 403 :id is empty
  107. func SysApp_FindAppFunPage(c *entitys.CtrlContext) {
  108. page, _ := strconv.Atoi(c.Ctx.DefaultQuery("page", "1"))
  109. rows, _ := strconv.Atoi(c.Ctx.DefaultQuery("rows", "10"))
  110. name := c.Ctx.DefaultQuery("name", "")
  111. code := c.Ctx.DefaultQuery("code", "")
  112. cn_id := c.Ctx.DefaultQuery("cn_id", "")
  113. hidden := c.Ctx.DefaultQuery("hidden", "")
  114. paramMap_i_t := map[string]interface{}{"page": page, "rows": rows, "name": name, "code": code, "cn_id": cn_id, "hidden": hidden}
  115. result, err := sysutils.PageSearch(c.Db, "sys_app", "find_app_fun_page", "sys_app_fun", paramMap_i_t)
  116. if err == nil {
  117. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", result})
  118. } else {
  119. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  120. }
  121. }
  122. // _GetAppFunTree
  123. // @Title _GetAppFunTree
  124. // @Description 获取APP功能树
  125. // @Success 200 {object} Account
  126. // @Failure 403 :id is empty
  127. func SysApp_GetAppFunTree(c *entitys.CtrlContext) {
  128. code := c.Ctx.DefaultQuery("code", "")
  129. paramMap_i_t := map[string]interface{}{"sort": "name", "code": code}
  130. result, err := sysutils.TreeSearch(c.Db, "sys_app", "get_app_fun_tree", "sys_app_fun", paramMap_i_t)
  131. if err == nil {
  132. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", result})
  133. } else {
  134. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  135. }
  136. }
  137. // _AddRoleAppFun
  138. // @Title _AddRoleAppFun
  139. // @Description 添加角色APP功能
  140. // @Param string false "功能"
  141. // @Success 200 {object} Account
  142. // @Failure 403 :id is empty
  143. func SysApp_AddRoleAppFun(c *entitys.CtrlContext) {
  144. user_id := c.Ctx.GetString("user_id")
  145. var paramObj0 struct {
  146. AppFunIds []string `json:"app_fun_ids"`
  147. RoleId string `json:"role_id"`
  148. }
  149. c.Ctx.BindJSON(&paramObj0)
  150. session := c.Db.NewSession()
  151. defer session.Close()
  152. session.Begin()
  153. _, err := session.SqlMapClient("del_role_app_fun", paramObj0.RoleId).Execute()
  154. if err != nil {
  155. session.Rollback()
  156. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  157. return
  158. }
  159. var roleAppFuns []*sysmodel.SysRoleAppFun
  160. for _, menu := range paramObj0.AppFunIds {
  161. roleAppFun := &sysmodel.SysRoleAppFun{}
  162. roleAppFun.Id = sysutils.NewUUID()
  163. roleAppFun.AppFunId = menu
  164. roleAppFun.RoleId = paramObj0.RoleId
  165. roleAppFun.CreateBy = user_id
  166. roleAppFun.CreateTime = sysmodel.NowLocal()
  167. roleAppFuns = append(roleAppFuns, roleAppFun)
  168. }
  169. _, err = session.InsertMulti(&roleAppFuns)
  170. if err != nil {
  171. session.Rollback()
  172. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  173. return
  174. }
  175. session.Commit()
  176. ret := __none_func_system__(paramObj0)
  177. if ret {
  178. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  179. } else {
  180. c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
  181. }
  182. }
  183. // _DelRoleAppFun
  184. // @Title _DelRoleAppFun
  185. // @Description 删除角色APP功能
  186. // @Param id string false "APP功能ID"
  187. // @Success 200 {object} Account
  188. // @Failure 403 :id is empty
  189. func SysApp_DelRoleAppFun(c *entitys.CtrlContext) {
  190. id := c.Ctx.Query("id")
  191. ret := __none_func_sys_app__(id)
  192. if ret {
  193. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  194. } else {
  195. c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
  196. }
  197. }
  198. // _UpdateRoleAppFun
  199. // @Title _UpdateRoleAppFun
  200. // @Description 更新角色APP功能
  201. // @Param string false "功能"
  202. // @Success 200 {object} Account
  203. // @Failure 403 :id is empty
  204. func SysApp_UpdateRoleAppFun(c *entitys.CtrlContext) {
  205. var paramObj0 models.SysRoleAppFun
  206. c.Ctx.BindJSON(&paramObj0)
  207. ret := __none_func_sys_app__(paramObj0)
  208. if ret {
  209. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  210. } else {
  211. c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
  212. }
  213. }
  214. // _GetRoleAppFunTree
  215. // @Title _GetRoleAppFunTree
  216. // @Description 获取角色APP功能
  217. // @Param role_id string false "角色id"
  218. // @Success 200 {object} Account
  219. // @Failure 403 :id is empty
  220. func SysApp_GetRoleAppFun(c *entitys.CtrlContext) {
  221. role_id := c.Ctx.Query("role_id")
  222. paramMap := map[string]interface{}{"user_id": "", "sort": "name", "hidden": 0}
  223. sysTree, err := sysutils.TreeSearch(c.Db, "sys_app", "get_app_fun_tree", "sys_app_fun", paramMap)
  224. if err != nil {
  225. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  226. return
  227. }
  228. paramMap2 := map[string]interface{}{"role_id": role_id}
  229. roleAppFun, err := c.Db.SqlMapClient("get_role_app_fun_tree", &paramMap2).Query().List()
  230. if err != nil {
  231. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  232. return
  233. }
  234. roleTree, err := sysutils.BuildTree("", roleAppFun)
  235. ret := __none_func_system__(role_id)
  236. if ret {
  237. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", map[string]interface{}{"sys_tree": sysTree, "role_tree": roleTree}})
  238. } else {
  239. c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
  240. }
  241. }
  242. // _FindRoleAppFunPage
  243. // @Title _FindRoleAppFunPage
  244. // @Description 分页获取角色APP功能
  245. // @Success 200 {object} Account
  246. // @Failure 403 :id is empty
  247. func SysApp_FindRoleAppFunPage(c *entitys.CtrlContext) {
  248. page, _ := strconv.Atoi(c.Ctx.DefaultQuery("page", "1"))
  249. rows, _ := strconv.Atoi(c.Ctx.DefaultQuery("rows", "10"))
  250. paramMap_i_t := map[string]interface{}{"page": page, "rows": rows}
  251. result, err := sysutils.PageSearch(c.Db, "sys_app", "find_role_app_fun_page", "sys_role_app_fun", paramMap_i_t)
  252. if err == nil {
  253. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", result})
  254. } else {
  255. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  256. }
  257. }
  258. // _GetRoleAppFunTree
  259. // @Title _GetRoleAppFunTree
  260. // @Description 获取角色APP功能树
  261. // @Success 200 {object} Account
  262. // @Failure 403 :id is empty
  263. func SysApp_GetRoleAppFunTree(c *entitys.CtrlContext) {
  264. user_id := c.Ctx.GetString("user_id")
  265. code := c.Ctx.DefaultQuery("code", "")
  266. paramMap_i_t := map[string]interface{}{"sort": "name", "user_id": user_id, "code": code}
  267. result, err := sysutils.TreeSearch(c.Db, "sys_app", "get_role_app_fun_tree", "sys_role_app_fun", paramMap_i_t)
  268. if err == nil {
  269. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", result})
  270. } else {
  271. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  272. }
  273. }
  274. func __none_func_sys_app__(params ...interface{}) bool {
  275. return true
  276. }