SystemController.go 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816
  1. package partial
  2. import (
  3. "fmt"
  4. "git.qianqiusoft.com/qianqiusoft/light-apiengine/entitys"
  5. "git.qianqiusoft.com/qianqiusoft/light-apiengine/models"
  6. sysmodel "git.qianqiusoft.com/qianqiusoft/light-apiengine/models"
  7. sysutils "git.qianqiusoft.com/qianqiusoft/light-apiengine/utils"
  8. "strconv"
  9. "time"
  10. )
  11. // _Sidebar
  12. // @Title _Sidebar
  13. // @Description 获取导航菜单
  14. // @Param user string false "用户id"
  15. // @Success 200 {object} Account
  16. // @Failure 403 :id is empty
  17. func System_Sidebar(c *entitys.CtrlContext) {
  18. fmt.Println(c.Db.DataSourceName())
  19. paramMap_i_t := map[string]interface{}{"sort": "name"}
  20. result, err := sysutils.TreeSearch(c.Db, "system", "sidebar", "sys_menu", paramMap_i_t)
  21. if err == nil {
  22. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", result})
  23. } else {
  24. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  25. }
  26. }
  27. // _GetMenuTree
  28. // @Title _GetMenuTree
  29. // @Description 获取系统菜单
  30. // @Param user string false "用户id"
  31. // @Success 200 {object} Account
  32. // @Failure 403 :id is empty
  33. func System_GetMenuTree(c *entitys.CtrlContext) {
  34. paramMap_i_t := map[string]interface{}{"sort": "name"}
  35. result, err := sysutils.TreeSearch(c.Db, "system", "get_menu_tree", "sys_menu", paramMap_i_t)
  36. if err == nil {
  37. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", result})
  38. } else {
  39. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  40. }
  41. }
  42. // _GetDomainTree
  43. // @Title _GetDomainTree
  44. // @Description 获取域树
  45. // @Success 200 {object} Account
  46. // @Failure 403 :id is empty
  47. func System_GetDomainTree(c *entitys.CtrlContext) {
  48. del_flag := c.Ctx.DefaultQuery("del_flag", "")
  49. paramMap_i_t := map[string]interface{}{"sort": "name", "del_flag": del_flag}
  50. result, err := sysutils.TreeSearch(c.Db, "system", "get_domain_tree", "sys_domain", paramMap_i_t)
  51. if err == nil {
  52. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", result})
  53. } else {
  54. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  55. }
  56. }
  57. // _FindUserPage
  58. // @Title _FindUserPage
  59. // @Description 获取用户分页数
  60. // @Success 200 {object} Account
  61. // @Failure 403 :id is empty
  62. func System_FindUserPage(c *entitys.CtrlContext) {
  63. page, _ := strconv.Atoi(c.Ctx.DefaultQuery("page", "1"))
  64. rows, _ := strconv.Atoi(c.Ctx.DefaultQuery("rows", "10"))
  65. name := c.Ctx.DefaultQuery("name", "")
  66. login_id := c.Ctx.DefaultQuery("login_id", "")
  67. paramMap_i_t := map[string]interface{}{"page": page, "rows": rows, "name": name, "login_id": login_id}
  68. result, err := sysutils.PageSearch(c.Db, "system", "find_user_page", "sys_user", paramMap_i_t)
  69. if err != nil {
  70. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", result})
  71. return
  72. }
  73. type Role struct {
  74. RoleName string `json:"role_name"`
  75. UserRole string `json:"user_role"`
  76. }
  77. //获取用户角色
  78. users := result.Content.([]map[string]interface{})
  79. for i, user := range users {
  80. roles := []Role{}
  81. err := c.Db.SqlMapClient("get_roles_by_user_id", user["id"]).Find(&roles)
  82. if err != nil {
  83. fmt.Println("----", err.Error())
  84. continue
  85. }
  86. users[i]["user_role"] = roles[0].UserRole
  87. users[i]["role_name"] = roles[0].RoleName
  88. }
  89. result.Content = users
  90. if err == nil {
  91. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", result})
  92. } else {
  93. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  94. }
  95. }
  96. // _GetOrgTree
  97. // @Title _GetOrgTree
  98. // @Description 获取组织架构树
  99. // @Success 200 {object} Account
  100. // @Failure 403 :id is empty
  101. func System_GetOrgTree(c *entitys.CtrlContext) {
  102. paramMap_i_t := map[string]interface{}{"sort": "name"}
  103. result, err := sysutils.TreeSearch(c.Db, "system", "get_org_tree", "sys_org", paramMap_i_t)
  104. if err == nil {
  105. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", result})
  106. } else {
  107. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  108. }
  109. }
  110. // _FindOrgPage
  111. // @Title _FindOrgPage
  112. // @Description 获取组织架构分页数
  113. // @Success 200 {object} Account
  114. // @Failure 403 :id is empty
  115. func System_FindOrgPage(c *entitys.CtrlContext) {
  116. page, _ := strconv.Atoi(c.Ctx.DefaultQuery("page", "1"))
  117. rows, _ := strconv.Atoi(c.Ctx.DefaultQuery("rows", "10"))
  118. name := c.Ctx.DefaultQuery("name", "")
  119. code := c.Ctx.DefaultQuery("code", "")
  120. cn_id := c.Ctx.DefaultQuery("cn_id", "")
  121. paramMap_i_t := map[string]interface{}{"page": page, "rows": rows, "name": name, "code": code, "cn_id": cn_id}
  122. result, err := sysutils.PageSearch(c.Db, "system", "find_org_page", "sys_org", paramMap_i_t)
  123. if err == nil {
  124. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", result})
  125. } else {
  126. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  127. }
  128. }
  129. // _AddUser
  130. // @Title _AddUser
  131. // @Description 添加用户
  132. // @Param login_id string false "登录ID"
  133. // @Param password string false "密码"
  134. // @Param org_id string false "组织ID"
  135. // @Param email string false "邮箱"
  136. // @Success 200 {object} Account
  137. // @Failure 403 :id is empty
  138. func System_AddUser(c *entitys.CtrlContext) {
  139. var user sysmodel.SysUser
  140. err := c.Ctx.BindJSON(&user)
  141. if err != nil {
  142. c.Ctx.JSON(200, sysmodel.SysReturn{500, err.Error(), nil})
  143. }
  144. fmt.Println(user.LoginId, "-----add user-----", user.Password, " --- ", user.OrgId)
  145. //查找login_id是否存在
  146. oldUser := new(sysmodel.SysUser)
  147. count, _ := c.Db.SQL("select * from sys_user").Where("login_id = ?", user.LoginId).Count(&oldUser)
  148. if count > 1 {
  149. if oldUser.DelFlag == 1 {
  150. oldUser.DelFlag = 0
  151. _, err := c.Db.Id("id").Cols("del_flag").Update(&oldUser)
  152. if err != nil {
  153. c.Ctx.JSON(200, sysmodel.SysReturn{500, "login_id exit, update err: " + err.Error(), nil})
  154. }
  155. return
  156. } else {
  157. c.Ctx.JSON(200, sysmodel.SysReturn{500, "login_id exit", nil})
  158. return
  159. }
  160. }
  161. user_id := c.Ctx.GetString("user_id")
  162. user.Id = sysutils.NewUUID()
  163. user.Name = user.LoginId
  164. user.CreateTime = time.Now()
  165. user.LastUpdateTime = time.Now().UnixNano()
  166. user.CreateBy = user_id
  167. user.LastUpdateBy = user_id
  168. user.DelFlag = 0
  169. user.Password = sysutils.HashPassword(user.Password, "")
  170. _, err = c.Db.Insert(&user)
  171. ret := __none_func_system__(user.LoginId, user.Password, user.OrgId, user.Email)
  172. if ret && err == nil {
  173. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  174. } else {
  175. c.Ctx.JSON(200, sysmodel.SysReturn{500, err.Error(), nil})
  176. }
  177. }
  178. // _DelUser
  179. // @Title _DelUser
  180. // @Description 删除用户
  181. // @Param id string false "用户ID"
  182. // @Success 200 {object} Account
  183. // @Failure 403 :id is empty
  184. func System_DelUser(c *entitys.CtrlContext) {
  185. type Param struct {
  186. Id string `json:"id"`
  187. }
  188. var params []Param
  189. c.Ctx.BindJSON(&params)
  190. ids := []string{}
  191. for _, param := range params {
  192. ids = append(ids, param.Id)
  193. }
  194. session := c.Db.NewSession()
  195. defer session.Close()
  196. _, err := c.Db.Table(new(models.SysUser)).In("id", ids).Update(map[string]interface{}{"del_flag": 1})
  197. if err != nil {
  198. session.Rollback()
  199. c.Ctx.JSON(200, sysmodel.SysReturn{500, err.Error(), nil})
  200. return
  201. }
  202. _, err = c.Db.Table(new(models.SysUserRole)).In("user_id", ids).Update(map[string]interface{}{"del_flag": 1})
  203. if err != nil {
  204. session.Rollback()
  205. c.Ctx.JSON(200, sysmodel.SysReturn{500, err.Error(), nil})
  206. return
  207. }
  208. session.Commit()
  209. ret := __none_func_system__()
  210. if ret {
  211. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  212. } else {
  213. c.Ctx.JSON(200, sysmodel.SysReturn{500, "", nil})
  214. }
  215. }
  216. // _UpdateUser
  217. // @Title _UpdateUser
  218. // @Description 修改用户
  219. // @Param login_id string false "登录ID"
  220. // @Param password string false "密码"
  221. // @Param org_id string false "组织ID"
  222. // @Param email string false "邮箱"
  223. // @Success 200 {object} Account
  224. // @Failure 403 :id is empty
  225. func System_UpdateUser(c *entitys.CtrlContext) {
  226. var user sysmodel.SysUser
  227. err := c.Ctx.BindJSON(&user)
  228. if err != nil {
  229. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  230. return
  231. }
  232. paramMap, _ := sysutils.BeanToMap(&user)
  233. _, err = c.Db.SqlMapClient("update_sys_user", paramMap).Execute()
  234. if err == nil {
  235. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  236. } else {
  237. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  238. }
  239. }
  240. // _AddRole
  241. // @Title _AddRole
  242. // @Description 添加角色
  243. // @Param name string false "角色名称"
  244. // @Param remark string false "备注"
  245. // @Success 200 {object} Account
  246. // @Failure 403 :id is empty
  247. func System_AddRole(c *entitys.CtrlContext) {
  248. var paramObj0 models.SysRole
  249. c.Ctx.BindJSON(&paramObj0)
  250. tk, _ := c.Ctx.Get("token")
  251. user := tk.(*entitys.Token)
  252. paramObj0.Id = sysutils.NewUUID()
  253. paramObj0.CreateBy = user.UserId
  254. paramObj0.LastUpdateBy = user.UserId
  255. paramObj0.CreateTime = time.Now()
  256. paramObj0.LastUpdateTime = time.Now().UnixNano()
  257. paramObj0.DelFlag = 0
  258. //_, err := c.LocalSqlMapClient("insert_sys_role", &paramObj0).Execute()
  259. paramMap, err := sysutils.BeanToMap(&paramObj0)
  260. _, err = c.Db.SqlMapClient("insert_sys_role", paramMap).Execute()
  261. if err == nil {
  262. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  263. } else {
  264. c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
  265. }
  266. }
  267. // _DelRole
  268. // @Title _DelRole
  269. // @Description 添加角色
  270. // @Param id string false "角色ID"
  271. // @Success 200 {object} Account
  272. // @Failure 403 :id is empty
  273. func System_DelRole(c *entitys.CtrlContext) {
  274. type Param struct {
  275. Id string `json:"id"`
  276. }
  277. var params []Param
  278. c.Ctx.BindJSON(&params)
  279. ids := []string{}
  280. for _, param := range params {
  281. ids = append(ids, param.Id)
  282. }
  283. _, err := c.Db.Table(new(models.SysRole)).In("id", ids).Update(map[string]interface{}{"del_flag": 1})
  284. if err == nil {
  285. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  286. } else {
  287. c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
  288. }
  289. }
  290. // _UpdateRole
  291. // @Title _UpdateRole
  292. // @Description 修改角色
  293. // @Param id string false "角色ID"
  294. // @Param name string false "角色名称"
  295. // @Param remark string false "备注"
  296. // @Success 200 {object} Account
  297. // @Failure 403 :id is empty
  298. func System_UpdateRole(c *entitys.CtrlContext) {
  299. id := c.Ctx.Query("id")
  300. name := c.Ctx.Query("name")
  301. remark := c.Ctx.Query("remark")
  302. ret := __none_func_system__(id, name, remark)
  303. if ret {
  304. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  305. } else {
  306. c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
  307. }
  308. }
  309. // _FindRolePage
  310. // @Title _FindRolePage
  311. // @Description 角色分页
  312. // @Param page false "分页参数"
  313. // @Success 200 {object} Account
  314. // @Failure 403 :id is empty
  315. func System_FindRolePage(c *entitys.CtrlContext) {
  316. page, _ := strconv.Atoi(c.Ctx.DefaultQuery("page", "1"))
  317. rows, _ := strconv.Atoi(c.Ctx.DefaultQuery("rows", "10"))
  318. paramMap_i_t := map[string]interface{}{"page": page, "rows": rows}
  319. result, err := sysutils.PageSearch(c.Db, "system", "find_role_page", "sys_role", paramMap_i_t)
  320. if err == nil {
  321. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", result})
  322. } else {
  323. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  324. }
  325. }
  326. // _FindMenuPage
  327. // @Title _FindMenuPage
  328. // @Description 获取角色分页数
  329. // @Success 200 {object} Account
  330. // @Failure 403 :id is empty
  331. func System_FindMenuPage(c *entitys.CtrlContext) {
  332. page, _ := strconv.Atoi(c.Ctx.DefaultQuery("page", "1"))
  333. rows, _ := strconv.Atoi(c.Ctx.DefaultQuery("rows", "10"))
  334. name := c.Ctx.DefaultQuery("name", "")
  335. code := c.Ctx.DefaultQuery("code", "")
  336. cn_id := c.Ctx.DefaultQuery("cn_id", "")
  337. _type := c.Ctx.DefaultQuery("type", "")
  338. type_op := c.Ctx.DefaultQuery("type_op", "")
  339. paramMap_i_t := map[string]interface{}{"page": page, "rows": rows, "type": _type, "type_op": type_op, "name": name, "code": code, "cn_id": cn_id}
  340. result, err := sysutils.PageSearch(c.Db, "system", "find_menu_page", "sys_menu", paramMap_i_t)
  341. if err == nil {
  342. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", result})
  343. } else {
  344. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  345. }
  346. }
  347. // _FindDomainPage
  348. // @Title _FindDomainPage
  349. // @Description 获取域分页数
  350. // @Success 200 {object} Account
  351. // @Failure 403 :id is empty
  352. func System_FindDomainPage(c *entitys.CtrlContext) {
  353. page, _ := strconv.Atoi(c.Ctx.DefaultQuery("page", "1"))
  354. rows, _ := strconv.Atoi(c.Ctx.DefaultQuery("rows", "10"))
  355. paramMap_i_t := map[string]interface{}{"page": page, "rows": rows}
  356. result, err := sysutils.PageSearch(c.Db, "system", "find_domain_page", "sys_domain", paramMap_i_t)
  357. if err == nil {
  358. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", result})
  359. } else {
  360. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  361. }
  362. }
  363. // _FindRoleMenu
  364. // @Title _FindRoleMenu
  365. // @Description 查找角色权限
  366. // @Param role_id string false "角色id"
  367. // @Success 200 {object} Account
  368. // @Failure 403 :id is empty
  369. func System_FindRoleMenu(c *entitys.CtrlContext) {
  370. role_id := c.Ctx.Query("role_id")
  371. ret := __none_func_system__(role_id)
  372. if ret {
  373. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  374. } else {
  375. c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
  376. }
  377. }
  378. // _SaveRoleMenu
  379. // @Title _SaveRoleMenu
  380. // @Description 保存角色权限
  381. // @Param role_menu string false "角色权限"
  382. // @Success 200 {object} Account
  383. // @Failure 403 :id is empty
  384. func System_SaveRoleMenu(c *entitys.CtrlContext) {
  385. var paramObj0 []models.SaveRoleMenu
  386. c.Ctx.BindJSON(&paramObj0)
  387. ret := __none_func_system__(paramObj0)
  388. if ret {
  389. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  390. } else {
  391. c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
  392. }
  393. }
  394. // _RoleAll
  395. // @Title _RoleAll
  396. // @Description 查找所有角色
  397. // @Success 200 {object} Account
  398. // @Failure 403 :id is empty
  399. func System_RoleAll(c *entitys.CtrlContext) {
  400. ret := __none_func_system__()
  401. if ret {
  402. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  403. } else {
  404. c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
  405. }
  406. }
  407. // _FindPermissions
  408. // @Title _FindPermissions
  409. // @Description 查找用户权限
  410. // @Success 200 {object} Account
  411. // @Failure 403 :id is empty
  412. func System_FindPermissions(c *entitys.CtrlContext) {
  413. ret := __none_func_system__()
  414. if ret {
  415. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  416. } else {
  417. c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
  418. }
  419. }
  420. // _AddMenu
  421. // @Title _AddMenu
  422. // @Description 添加菜单
  423. // @Param string false "菜单"
  424. // @Success 200 {object} Account
  425. // @Failure 403 :id is empty
  426. func System_AddMenu(c *entitys.CtrlContext) {
  427. var paramObj0 models.SysMenu
  428. c.Ctx.BindJSON(&paramObj0)
  429. tk, _ := c.Ctx.Get("token")
  430. user := tk.(*entitys.Token)
  431. paramObj0.Id = sysutils.NewUUID()
  432. paramObj0.CreateBy = user.UserId
  433. paramObj0.LastUpdateBy = user.UserId
  434. paramObj0.CreateTime = models.NowLocal()
  435. paramObj0.LastUpdateTime = time.Now().UnixNano()
  436. paramObj0.DelFlag = 0
  437. if paramObj0.Parent != "" {
  438. parentNodes := []sysmodel.SysMenu{}
  439. err := c.Db.SqlMapClient("one_sys_menu", paramObj0.Parent).Find(&parentNodes)
  440. if err != nil {
  441. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  442. return
  443. }
  444. paramObj0.Inheritance = fmt.Sprintf("|%s%s", paramObj0.Id, parentNodes[0].Inheritance)
  445. } else {
  446. paramObj0.Inheritance = fmt.Sprintf("|%s|", paramObj0.Id)
  447. }
  448. //_, err := c.LocalSqlMapClient("insert_sys_menu", &paramObj0).Execute()
  449. paramMap, err := sysutils.BeanToMap(&paramObj0)
  450. _, err = c.Db.SqlMapClient("insert_sys_menu", paramMap).Execute()
  451. if err == nil {
  452. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  453. } else {
  454. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  455. }
  456. }
  457. // _DelMenu
  458. // @Title _DelMenu
  459. // @Description 删除菜单
  460. // @Param id string false "菜单ID"
  461. // @Success 200 {object} Account
  462. // @Failure 403 :id is empty
  463. func System_DelMenu(c *entitys.CtrlContext) {
  464. type Param struct {
  465. Id string `json:"id"`
  466. }
  467. var params []Param
  468. c.Ctx.BindJSON(&params)
  469. ids := []string{}
  470. for _, param := range params {
  471. ids = append(ids, param.Id)
  472. }
  473. _, err := c.Db.Table(new(models.SysMenu)).In("id", ids).Update(map[string]interface{}{"del_flag": 1})
  474. if err == nil {
  475. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  476. } else {
  477. c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
  478. }
  479. }
  480. // _UpdateMenu
  481. // @Title _UpdateMenu
  482. // @Description 更新菜单
  483. // @Param string false "菜单"
  484. // @Success 200 {object} Account
  485. // @Failure 403 :id is empty
  486. func System_UpdateMenu(c *entitys.CtrlContext) {
  487. var paramObj0 models.SysMenu
  488. c.Ctx.BindJSON(&paramObj0)
  489. paramMap, err := sysutils.BeanToMap(&paramObj0)
  490. _, err = c.Db.SqlMapClient("update_sys_menu", paramMap).Execute()
  491. if err == nil {
  492. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  493. } else {
  494. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  495. }
  496. }
  497. // _AddOrg
  498. // @Title _AddOrg
  499. // @Description 添加组织
  500. // @Param name string false "组织名称"
  501. // @Param domain string false "域"
  502. // @Param parent string false "父ID"
  503. // @Success 200 {object} Account
  504. // @Failure 403 :id is empty
  505. func System_AddOrg(c *entitys.CtrlContext) {
  506. var paramObj0 models.SysOrg
  507. c.Ctx.BindJSON(&paramObj0)
  508. tk, _ := c.Ctx.Get("token")
  509. user := tk.(*entitys.Token)
  510. paramObj0.Id = sysutils.NewUUID()
  511. paramObj0.CreateBy = user.UserId
  512. paramObj0.LastUpdateBy = user.UserId
  513. paramObj0.CreateTime = time.Now()
  514. paramObj0.LastUpdateTime = time.Now().UnixNano()
  515. paramObj0.DelFlag = 0
  516. if paramObj0.Parent != "" {
  517. parentNodes := []sysmodel.SysOrg{}
  518. err := c.Db.SqlMapClient("one_sys_org", paramObj0.Parent).Find(&parentNodes)
  519. if err != nil {
  520. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  521. return
  522. }
  523. paramObj0.Inheritance = fmt.Sprintf("|%s%s", paramObj0.Id, parentNodes[0].Inheritance)
  524. } else {
  525. paramObj0.Inheritance = fmt.Sprintf("|%s|", paramObj0.Id)
  526. }
  527. //_, err := c.LocalSqlMapClient("insert_sys_org", &paramObj0).Execute()
  528. paramMap, err := sysutils.BeanToMap(&paramObj0)
  529. _, err = c.Db.SqlMapClient("insert_sys_org", paramMap).Execute()
  530. if err == nil {
  531. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  532. } else {
  533. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  534. }
  535. }
  536. // _DelOrg
  537. // @Title _DelOrg
  538. // @Description 删除组织
  539. // @Param id string array false "用户ID"
  540. // @Success 200 {object} Account
  541. // @Failure 403 :id is empty
  542. func System_DelOrg(c *entitys.CtrlContext) {
  543. id := c.Ctx.Query("id")
  544. ret := __none_func_system__(id)
  545. if ret {
  546. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  547. } else {
  548. c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
  549. }
  550. }
  551. // _UpdateOrg
  552. // @Title _UpdateOrg
  553. // @Description 修改组织
  554. // @Param name string false "组织名称"
  555. // @Param domain string false "域"
  556. // @Param parent string false "父ID"
  557. // @Success 200 {object} Account
  558. // @Failure 403 :id is empty
  559. func System_UpdateOrg(c *entitys.CtrlContext) {
  560. name := c.Ctx.Query("name")
  561. domain := c.Ctx.Query("domain")
  562. parent := c.Ctx.Query("parent")
  563. ret := __none_func_system__(name, domain, parent)
  564. if ret {
  565. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  566. } else {
  567. c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
  568. }
  569. }
  570. // _GetOrgByUserid
  571. // @Title _GetOrgByUserid
  572. // @Description 根据用户id获取用户组织
  573. // @Param user_id string false "用户id"
  574. // @Success 200 {object} Account
  575. // @Failure 403 :id is empty
  576. func System_GetOrgByUserid(c *entitys.CtrlContext) {
  577. user_id := c.Ctx.Query("user_id")
  578. var org sysmodel.SysOrg
  579. err := c.Db.SqlMapClient("get_org_by_userid", user_id).Find(&org)
  580. if err == nil {
  581. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", org})
  582. } else {
  583. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  584. }
  585. }
  586. // _AddDomain
  587. // @Title _AddDomain
  588. // @Description 添加域
  589. // @Param false "域"
  590. // @Success 200 {object} Account
  591. // @Failure 403 :id is empty
  592. func System_AddDomain(c *entitys.CtrlContext) {
  593. var paramObj0 models.SysDomain
  594. c.Ctx.BindJSON(&paramObj0)
  595. ////1、测试连接串
  596. //db, err := xorm.NewEngine("mysql", paramObj0.DataSource)
  597. //if err == nil {
  598. // //engine.initOrmEngine(db, "mysql")
  599. // //c.BusinessOrmEngine[v.Domain] = db
  600. //}
  601. tk, _ := c.Ctx.Get("token")
  602. user := tk.(*entitys.Token)
  603. paramObj0.Id = sysutils.NewUUID()
  604. paramObj0.CreateBy = user.UserId
  605. paramObj0.LastUpdateBy = user.UserId
  606. paramObj0.CreateTime = sysmodel.NowLocal()
  607. paramObj0.LastUpdateTime = time.Now().UnixNano()
  608. paramObj0.DelFlag = 0
  609. paramMap, err := sysutils.BeanToMap(&paramObj0)
  610. if err != nil {
  611. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  612. return
  613. }
  614. _, err = c.Db.SqlMapClient("insert_sys_domain", paramMap).Execute()
  615. if err == nil {
  616. //添加数据库基本用户权限数据
  617. ret := c.App.AddBusinessDb(paramObj0.Id, "admin@"+paramObj0.Domain, paramObj0.Domain, paramObj0.DataSource, true)
  618. if ret {
  619. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", paramObj0.Id})
  620. } else {
  621. c.Ctx.JSON(500, sysmodel.SysReturn{500, "数据库初始化错误。", nil})
  622. }
  623. } else {
  624. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  625. }
  626. }
  627. // _DelDomain
  628. // @Title _DelDomain
  629. // @Description 删除域
  630. // @Param id string false "域ID"
  631. // @Success 200 {object} Account
  632. // @Failure 403 :id is empty
  633. func System_DelDomain(c *entitys.CtrlContext) {
  634. type Param struct {
  635. Id string `json:"id"`
  636. }
  637. var params []Param
  638. c.Ctx.BindJSON(&params)
  639. ids := []string{}
  640. for _, param := range params {
  641. ids = append(ids, param.Id)
  642. }
  643. _, err := c.Db.Table(new(models.SysDomain)).In("id", ids).Update(map[string]interface{}{"del_flag": 1})
  644. if err != nil {
  645. c.Ctx.JSON(200, sysmodel.SysReturn{500, err.Error(), nil})
  646. return
  647. }
  648. ret := __none_func_system__()
  649. if ret {
  650. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  651. } else {
  652. c.Ctx.JSON(200, sysmodel.SysReturn{500, "", nil})
  653. }
  654. }
  655. // _UpdateDomain
  656. // @Title _UpdateDomain
  657. // @Description 修改域
  658. // @Param false "域"
  659. // @Success 200 {object} Account
  660. // @Failure 403 :id is empty
  661. func System_UpdateDomain(c *entitys.CtrlContext) {
  662. var paramObj0 models.SysDomain
  663. c.Ctx.BindJSON(&paramObj0)
  664. tk, _ := c.Ctx.Get("token")
  665. user := tk.(*entitys.Token)
  666. paramObj0.LastUpdateTime = time.Now().UnixNano()
  667. paramObj0.LastUpdateBy = user.UserId
  668. paramMap, err := sysutils.BeanToMap(&paramObj0)
  669. if err != nil {
  670. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  671. return
  672. }
  673. _, err = c.Db.SqlMapClient("update_sys_domain", paramMap).Execute()
  674. if err == nil {
  675. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  676. } else {
  677. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  678. }
  679. }
  680. // _AddDomainMenu
  681. // @Title _AddDomainMenu
  682. // @Description 域添加菜单
  683. // @Param false "添加域菜单bean"
  684. // @Success 200 {object} Account
  685. // @Failure 403 :id is empty
  686. func System_AddDomainMenu(c *entitys.CtrlContext) {
  687. var paramObj0 models.AddDomainMenu
  688. c.Ctx.BindJSON(&paramObj0)
  689. var domain sysmodel.SysDomain
  690. _, err := c.Db.SqlMapClient("", paramObj0.DomainId).Get(&domain)
  691. if err != nil {
  692. c.Ctx.JSON(500, sysmodel.SysReturn{500, "not find domain error: " + err.Error(), nil})
  693. return
  694. }
  695. _, err = c.App.GetBusinessDb(domain.Domain).Insert(paramObj0.Menus)
  696. if err != nil {
  697. c.Ctx.JSON(500, sysmodel.SysReturn{500, "Insert menu error: " + err.Error(), nil})
  698. return
  699. }
  700. ret := __none_func_system__(paramObj0)
  701. if ret {
  702. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  703. } else {
  704. c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
  705. }
  706. }
  707. func __none_func_system__(params ...interface{}) bool {
  708. return true
  709. }