SystemController.go 22 KB

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