sys_role.go 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768
  1. package controllers
  2. import (
  3. "encoding/json"
  4. "eta/eta_api/models"
  5. "eta/eta_api/models/system"
  6. "eta/eta_api/services"
  7. "eta/eta_api/utils"
  8. "fmt"
  9. "strconv"
  10. "strings"
  11. "time"
  12. "github.com/rdlucklib/rdluck_tools/paging"
  13. )
  14. type SysRoleController struct {
  15. BaseAuthController
  16. }
  17. // @Title 新增角色
  18. // @Description 新增角色接口
  19. // @Param request body system.SysRoleAddReq true "type json string"
  20. // @Success 200 新增成功
  21. // @router /role/add [post]
  22. func (this *SysRoleController) Add() {
  23. br := new(models.BaseResponse).Init()
  24. defer func() {
  25. this.Data["json"] = br
  26. this.ServeJSON()
  27. }()
  28. var req system.SysRoleAddReq
  29. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  30. if err != nil {
  31. br.Msg = "参数解析异常!"
  32. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  33. return
  34. }
  35. if req.RoleName == "" {
  36. br.Msg = "角色名称不能为空"
  37. return
  38. }
  39. count, err := system.GetSysRoleCount(req.RoleName)
  40. if err != nil && err.Error() != utils.ErrNoRow() {
  41. br.Msg = "获取数据失败"
  42. br.ErrMsg = "获取数据失败,Err:" + err.Error()
  43. return
  44. }
  45. if count > 0 {
  46. br.Msg = "角色已存在,请重新输入"
  47. return
  48. }
  49. item := new(system.SysRole)
  50. item.RoleName = req.RoleName
  51. item.RoleType = req.RoleType
  52. item.RoleTypeCode = services.GetRoleTypeCode(req.RoleType)
  53. item.CreateTime = time.Now()
  54. item.ModifyTime = time.Now()
  55. roleId, err := system.AddSysRole(item)
  56. if err != nil {
  57. br.Msg = "新增失败"
  58. br.ErrMsg = "新增失败,Err:" + err.Error()
  59. return
  60. }
  61. // 同步角色缓存
  62. if utils.BusinessCode == utils.BusinessCodeRelease {
  63. var syncData system.SyncRoleData
  64. syncData.Source = utils.SOURCE_ETA_FLAG
  65. syncData.RoleId = int(roleId)
  66. _ = utils.Rc.LPush(utils.CACHE_SYNC_ROLE, syncData)
  67. }
  68. br.Ret = 200
  69. br.Success = true
  70. br.Msg = "新增成功"
  71. }
  72. // @Title 修改角色
  73. // @Description 修改角色接口
  74. // @Param request body system.SysRoleEditReq true "type json string"
  75. // @Success 200 修改成功
  76. // @router /role/edit [post]
  77. func (this *SysRoleController) Edit() {
  78. br := new(models.BaseResponse).Init()
  79. defer func() {
  80. this.Data["json"] = br
  81. this.ServeJSON()
  82. }()
  83. var req system.SysRoleEditReq
  84. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  85. if err != nil {
  86. br.Msg = "参数解析异常!"
  87. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  88. return
  89. }
  90. if req.RoleId <= 0 {
  91. br.Msg = "参数错误"
  92. br.ErrMsg = "参数错误,GroupId 小于等于0 "
  93. return
  94. }
  95. if req.RoleName == "" {
  96. br.Msg = "分组名称不能为空"
  97. return
  98. }
  99. item, e := system.GetSysRoleById(req.RoleId)
  100. if e != nil {
  101. if e.Error() != utils.ErrNoRow() {
  102. br.Msg = "操作失败"
  103. br.ErrMsg = "获取角色失败, Err: " + e.Error()
  104. return
  105. }
  106. br.Msg = "角色不存在, 请刷新页面"
  107. return
  108. }
  109. // 不允许编辑admin用户
  110. if item.RoleName == "admin" {
  111. br.Msg = "admin用户不可编辑"
  112. br.ErrMsg = "admin用户不可编辑"
  113. return
  114. }
  115. exists, e := system.GetSysRoleByName(req.RoleName)
  116. if e != nil && e.Error() != utils.ErrNoRow() {
  117. br.Msg = "操作失败"
  118. br.ErrMsg = "获取重名角色失败, Err: " + e.Error()
  119. return
  120. }
  121. if exists != nil && exists.RoleId != item.RoleId {
  122. br.Msg = "名称已存在,请重新输入"
  123. return
  124. }
  125. roleTypeCode := services.GetRoleTypeCode(req.RoleType)
  126. e = system.ModifySysRole(req.RoleName, req.RoleType, roleTypeCode, req.RoleId)
  127. if e != nil {
  128. br.Msg = "操作失败"
  129. br.ErrMsg = "更新角色信息失败, Err: " + e.Error()
  130. return
  131. }
  132. // 同步角色缓存
  133. if utils.BusinessCode == utils.BusinessCodeRelease {
  134. var syncData system.SyncRoleData
  135. syncData.Source = utils.SOURCE_ETA_FLAG
  136. syncData.RoleId = item.RoleId
  137. _ = utils.Rc.LPush(utils.CACHE_SYNC_ROLE, syncData)
  138. }
  139. br.Ret = 200
  140. br.Success = true
  141. br.IsAddLog = true
  142. br.Msg = "修改成功"
  143. }
  144. // @Title 删除角色
  145. // @Description 删除角色接口
  146. // @Param request body system.SysRoleDeleteReq true "type json string"
  147. // @Success 200 删除成功
  148. // @router /role/delete [post]
  149. func (this *SysRoleController) Delete() {
  150. br := new(models.BaseResponse).Init()
  151. defer func() {
  152. this.Data["json"] = br
  153. this.ServeJSON()
  154. }()
  155. var req system.SysRoleDeleteReq
  156. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  157. if err != nil {
  158. br.Msg = "参数解析异常!"
  159. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  160. return
  161. }
  162. if req.RoleId <= 0 {
  163. br.Msg = "参数错误"
  164. br.ErrMsg = "参数错误,GroupId 小于等于0 "
  165. return
  166. }
  167. role, e := system.GetSysRoleById(req.RoleId)
  168. if e != nil {
  169. if err.Error() == utils.ErrNoRow() {
  170. br.Msg = "角色不存在, 请刷新页面"
  171. return
  172. }
  173. br.Msg = "删除失败"
  174. br.ErrMsg = "获取角色信息失败, Err: " + e.Error()
  175. return
  176. }
  177. if role.RoleName == "admin" {
  178. br.Msg = "删除失败"
  179. br.ErrMsg = "admin用户不可删除"
  180. return
  181. }
  182. err = system.DeleteSysRole(req.RoleId)
  183. if err != nil {
  184. br.Msg = "删除失败"
  185. br.ErrMsg = "删除失败,Err:" + err.Error()
  186. return
  187. }
  188. // 同步角色缓存
  189. if utils.BusinessCode == utils.BusinessCodeRelease {
  190. var syncData system.SyncRoleData
  191. syncData.Source = utils.SOURCE_ETA_FLAG
  192. syncData.RoleId = role.RoleId
  193. _ = utils.Rc.LPush(utils.CACHE_SYNC_ROLE, syncData)
  194. }
  195. br.Ret = 200
  196. br.Success = true
  197. br.IsAddLog = true
  198. br.Msg = "删除成功"
  199. }
  200. // @Title 获取角色列表
  201. // @Description 获取角色列表接口
  202. // @Param PageSize query int true "每页数据条数"
  203. // @Param CurrentIndex query int true "当前页页码,从1开始"
  204. // @Param KeyWord query string true "搜索关键词"
  205. // @Success 200 {object} system.SysRoleListResp
  206. // @router /role/list [get]
  207. func (this *SysRoleController) ListSysRole() {
  208. br := new(models.BaseResponse).Init()
  209. defer func() {
  210. this.Data["json"] = br
  211. this.ServeJSON()
  212. }()
  213. sysUser := this.SysUser
  214. if sysUser == nil {
  215. br.Msg = "请登录"
  216. br.ErrMsg = "请登录,SysUser Is Empty"
  217. return
  218. }
  219. pageSize, _ := this.GetInt("PageSize")
  220. currentIndex, _ := this.GetInt("CurrentIndex")
  221. keyWord := this.GetString("KeyWord")
  222. var startSize int
  223. if pageSize <= 0 {
  224. pageSize = utils.PageSize20
  225. }
  226. if currentIndex <= 0 {
  227. currentIndex = 1
  228. }
  229. startSize = utils.StartIndex(currentIndex, pageSize)
  230. var condition string
  231. var pars []interface{}
  232. if keyWord != "" {
  233. condition += ` AND role_name LIKE '%` + keyWord + `%' `
  234. }
  235. total, err := system.GetSysRoleListCount(condition, pars)
  236. if err != nil {
  237. br.Msg = "获取失败"
  238. br.ErrMsg = "获取失败,Err:" + err.Error()
  239. return
  240. }
  241. list, err := system.GetSysRoleList(condition, pars, startSize, pageSize)
  242. if err != nil {
  243. br.Msg = "获取失败"
  244. br.ErrMsg = "获取失败,Err:" + err.Error()
  245. return
  246. }
  247. page := paging.GetPaging(currentIndex, pageSize, total)
  248. resp := new(system.SysRoleListResp)
  249. resp.List = list
  250. resp.Paging = page
  251. br.Ret = 200
  252. br.Success = true
  253. br.Msg = "获取成功"
  254. br.Data = resp
  255. }
  256. // SysRoleMenusList
  257. // @Title 角色设置权限-菜单列表-CRM14.1弃用
  258. // @Description 角色设置权限-菜单列表
  259. // @Param RoleId query int true "角色Id"
  260. // @Success 200 {object} system.SysRoleListResp
  261. // @router /role/menu/list [get]
  262. func (this *SysRoleController) SysRoleMenusList() {
  263. br := new(models.BaseResponse).Init()
  264. defer func() {
  265. this.Data["json"] = br
  266. this.ServeJSON()
  267. }()
  268. roleId, err := this.GetInt("RoleId")
  269. if err != nil {
  270. br.Msg = "获取角色失败"
  271. br.ErrMsg = "获取角色失败,Err:" + err.Error()
  272. return
  273. }
  274. fmt.Println("roleId", roleId)
  275. list := make([]*system.RoleMenuList, 0)
  276. sysUser := this.SysUser
  277. if sysUser == nil {
  278. br.Msg = "请登录"
  279. br.ErrMsg = "请登录,SysUser Is Empty"
  280. return
  281. }
  282. list, err = system.GetRoleMenuList()
  283. if err != nil {
  284. br.Msg = "获取失败"
  285. br.ErrMsg = "获取失败,Err:" + err.Error()
  286. return
  287. }
  288. lenList := len(list)
  289. for i := 0; i < lenList; i++ {
  290. item := list[i]
  291. child, err := system.GetRoleMenuByParentId(item.MenuId)
  292. if err != nil {
  293. br.Msg = "获取失败"
  294. br.ErrMsg = "获取子菜单数据失败,Err:" + err.Error()
  295. return
  296. }
  297. list[i].Child = child
  298. checkList := make([]int, 0)
  299. if roleId > 0 {
  300. checkItem, err := system.GetCheckListRoleMenu(roleId, item.MenuId)
  301. if err != nil {
  302. br.Msg = "获取失败"
  303. br.ErrMsg = "获取选择数据失败,Err:" + err.Error()
  304. return
  305. }
  306. for _, v := range checkItem {
  307. checkList = append(checkList, v.MenuId)
  308. }
  309. }
  310. list[i].CheckList = checkList
  311. }
  312. resp := new(system.RoleMenuListResp)
  313. resp.List = list
  314. br.Ret = 200
  315. br.Success = true
  316. br.Msg = "获取成功"
  317. br.Data = resp
  318. }
  319. // SysRoleMenusAdd
  320. // @Title 角色设置权限-CRM14.1弃用
  321. // @Description 角色设置权限
  322. // @Param request body system.RoleMenusAddReq true "type json string"
  323. // @Success 200 {object} system.SysRoleListResp
  324. // @router /role/menu/add [post]
  325. func (this *SysRoleController) SysRoleMenusAdd() {
  326. br := new(models.BaseResponse).Init()
  327. defer func() {
  328. this.Data["json"] = br
  329. this.ServeJSON()
  330. }()
  331. var req system.RoleMenusAddReq
  332. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  333. if err != nil {
  334. br.Msg = "参数解析异常!"
  335. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  336. return
  337. }
  338. roleId := req.RoleId
  339. if roleId <= 0 {
  340. br.Msg = "参数错误"
  341. br.ErrMsg = "参数错误,RoleId 小于等于0 "
  342. return
  343. }
  344. if req.MenuIdStr == "" {
  345. br.Msg = "请选择菜单"
  346. br.ErrMsg = "请选择菜单,MenuIdStr IS Empty "
  347. return
  348. }
  349. sysUser := this.SysUser
  350. if sysUser == nil {
  351. br.Msg = "请登录"
  352. br.ErrMsg = "请登录,SysUser Is Empty"
  353. return
  354. }
  355. err = system.DeleteRoleMenuByRoleId(roleId)
  356. if err != nil {
  357. br.Msg = "设置失败"
  358. br.ErrMsg = "清空原有设置失败,Err:" + err.Error()
  359. return
  360. }
  361. menuArr := strings.Split(req.MenuIdStr, ",")
  362. for _, v := range menuArr {
  363. menuId, err := strconv.Atoi(v)
  364. if err != nil {
  365. br.Msg = "设置失败"
  366. br.ErrMsg = "menuId 解析失败,Err:" + err.Error()
  367. return
  368. }
  369. item := new(system.SysRoleMenu)
  370. item.RoleId = roleId
  371. item.MenuId = menuId
  372. _, err = system.AddSysRoleMenu(item)
  373. if err != nil {
  374. br.Msg = "设置失败"
  375. br.ErrMsg = "新增设置失败,Err:" + err.Error()
  376. return
  377. }
  378. }
  379. if req.MenuButtonIdStr != "" {
  380. err = system.DeleteSysRoleButton(roleId)
  381. if err != nil {
  382. br.Msg = "设置失败"
  383. br.ErrMsg = "删除已设置数据失败,Err:" + err.Error()
  384. return
  385. }
  386. buttonMap := make(map[string]string)
  387. buttonArr := strings.Split(req.MenuButtonIdStr, ",")
  388. for _, v := range buttonArr {
  389. if _, ok := buttonMap[v]; !ok {
  390. buttonId, err := strconv.Atoi(v)
  391. count, err := system.GetSysRoleButtonCount(roleId, buttonId)
  392. if err != nil {
  393. br.Msg = "判断设置失败存在失败"
  394. br.ErrMsg = "判断设置失败存在失败,Err:" + err.Error()
  395. return
  396. }
  397. if count <= 0 {
  398. button := new(system.SysRoleButton)
  399. button.RoleId = roleId
  400. button.MenuButtonId = buttonId
  401. button.CreateTime = time.Now()
  402. _, err = system.AddSysRoleButton(button)
  403. if err != nil {
  404. br.Msg = "设置失败"
  405. br.ErrMsg = "按钮权限设置失败,Err:" + err.Error()
  406. return
  407. }
  408. }
  409. }
  410. buttonMap[v] = v
  411. }
  412. } else {
  413. err = system.DeleteSysRoleButton(roleId)
  414. if err != nil {
  415. br.Msg = "设置失败"
  416. br.ErrMsg = "删除已设置数据失败,Err:" + err.Error()
  417. return
  418. }
  419. }
  420. br.Ret = 200
  421. br.Success = true
  422. br.IsAddLog = true
  423. br.Msg = "设置成功"
  424. }
  425. // @Title 获取所有角色
  426. // @Description 获取所有角色
  427. // @Success 200 {object} system.SysRoleListResp
  428. // @router /role/all [get]
  429. func (this *SysRoleController) AllSysRole() {
  430. br := new(models.BaseResponse).Init()
  431. defer func() {
  432. this.Data["json"] = br
  433. this.ServeJSON()
  434. }()
  435. sysUser := this.SysUser
  436. if sysUser == nil {
  437. br.Msg = "请登录"
  438. br.ErrMsg = "请登录,SysUser Is Empty"
  439. return
  440. }
  441. levelFlag := false
  442. roleLevel := this.GetString("RoleLevel")
  443. if roleLevel != "" {
  444. levelFlag = true
  445. }
  446. list, err := system.GetSysRoleAll(levelFlag)
  447. if err != nil {
  448. br.Msg = "获取失败"
  449. br.ErrMsg = "获取失败,Err:" + err.Error()
  450. return
  451. }
  452. resp := new(system.SysRoleAllResp)
  453. resp.List = list
  454. br.Ret = 200
  455. br.Success = true
  456. br.Msg = "获取成功"
  457. br.Data = resp
  458. }
  459. // SysRoleMenuAuthList
  460. // @Title 角色设置权限-菜单列表
  461. // @Description 角色设置权限-菜单列表
  462. // @Param RoleId query int true "角色Id"
  463. // @Success 200 {object} system.SysRoleListResp
  464. // @router /role/menu/auth_list [get]
  465. func (this *SysRoleController) SysRoleMenuAuthList() {
  466. br := new(models.BaseResponse).Init()
  467. defer func() {
  468. if br.ErrMsg == "" {
  469. br.IsSendEmail = false
  470. }
  471. this.Data["json"] = br
  472. this.ServeJSON()
  473. }()
  474. sysUser := this.SysUser
  475. if sysUser == nil {
  476. br.Msg = "请登录"
  477. br.ErrMsg = "请登录,SysUser Is Empty"
  478. return
  479. }
  480. resp := new(system.SysMenuListResp)
  481. resp.ChoiceList = make([]int, 0)
  482. resp.HalfChoiceList = make([]int, 0)
  483. resp.List = make([]*system.SysMenuItem, 0)
  484. // 角色勾选的权限
  485. roleId, _ := this.GetInt("RoleId", 0)
  486. if roleId > 0 {
  487. relates, e := system.GetSysRoleMenuByRoleId(roleId)
  488. if e != nil {
  489. br.Msg = "获取失败"
  490. br.ErrMsg = "获取角色关联菜单失败, Err: " + e.Error()
  491. return
  492. }
  493. for _, r := range relates {
  494. if r.Type == 1 {
  495. resp.HalfChoiceList = append(resp.HalfChoiceList, r.MenuId)
  496. continue
  497. }
  498. resp.ChoiceList = append(resp.ChoiceList, r.MenuId)
  499. }
  500. }
  501. sysRole, err := system.GetSysRoleById(roleId)
  502. if err == nil {
  503. if sysRole.RoleName == "admin" {
  504. br.Ret = 200
  505. br.Success = true
  506. br.Msg = "获取成功"
  507. return
  508. }
  509. }
  510. order := `sort ASC, create_time DESC, menu_id DESC`
  511. list, e := system.GetSysMenuItemsByCondition(` AND hidden = 0`, make([]interface{}, 0), []string{}, order)
  512. if e != nil {
  513. br.Msg = "获取失败"
  514. br.ErrMsg = "获取菜单列表失败, Err: " + e.Error()
  515. return
  516. }
  517. items := make([]*system.SysMenuItem, 0)
  518. for _, v := range list {
  519. t := &system.SysMenuItem{
  520. MenuId: v.MenuId,
  521. ParentId: v.ParentId,
  522. Name: v.Name,
  523. Sort: v.Sort,
  524. Path: v.Path,
  525. IconPath: v.IconPath,
  526. Component: v.Component,
  527. Hidden: v.Hidden,
  528. MenuType: v.MenuType,
  529. ButtonCode: v.ButtonCode,
  530. Children: make([]*system.SysMenuItem, 0),
  531. }
  532. items = append(items, t)
  533. }
  534. // 递归返回树形结构
  535. items = services.GetMenuTreeRecursive(items, 0)
  536. resp.List = items
  537. br.Data = resp
  538. br.Ret = 200
  539. br.Success = true
  540. br.Msg = "获取成功"
  541. }
  542. // SysRoleMenuAuthSave
  543. // @Title 角色设置权限-保存
  544. // @Description 角色设置权限-保存
  545. // @Param request body RoleMenusSaveReq true "type json string"
  546. // @Success 200 {object} system.SysRoleListResp
  547. // @router /role/menu/auth_save [post]
  548. func (this *SysRoleController) SysRoleMenuAuthSave() {
  549. br := new(models.BaseResponse).Init()
  550. defer func() {
  551. if br.ErrMsg == "" {
  552. br.IsSendEmail = false
  553. }
  554. this.Data["json"] = br
  555. this.ServeJSON()
  556. }()
  557. sysUser := this.SysUser
  558. if sysUser == nil {
  559. br.Msg = "请登录"
  560. br.ErrMsg = "请登录,SysUser Is Empty"
  561. br.Ret = 408
  562. return
  563. }
  564. type RoleMenusSaveReq struct {
  565. RoleId int `description:"角色ID"`
  566. MenuIds []int `description:"菜单IDs"`
  567. HalfMenuIds []int `description:"半选菜单IDs-仅供前端回显用的"`
  568. }
  569. var req RoleMenusSaveReq
  570. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  571. if err != nil {
  572. br.Msg = "参数解析异常!"
  573. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  574. return
  575. }
  576. if req.RoleId <= 0 {
  577. br.Msg = "参数有误"
  578. return
  579. }
  580. if len(req.MenuIds) == 0 {
  581. br.Msg = "请选择菜单"
  582. return
  583. }
  584. items := make([]*system.SysRoleMenu, 0)
  585. for _, v := range req.MenuIds {
  586. t := new(system.SysRoleMenu)
  587. t.MenuId = v
  588. t.RoleId = req.RoleId
  589. items = append(items, t)
  590. }
  591. for _, v := range req.HalfMenuIds {
  592. t := new(system.SysRoleMenu)
  593. t.MenuId = v
  594. t.Type = 1
  595. t.RoleId = req.RoleId
  596. items = append(items, t)
  597. }
  598. if e := system.CreateMultiSysRoleMenu(req.RoleId, items); e != nil {
  599. br.Msg = "保存失败"
  600. br.ErrMsg = "保存角色菜单权限失败, Err: " + e.Error()
  601. return
  602. }
  603. br.Ret = 200
  604. br.Success = true
  605. br.Msg = "设置成功"
  606. }
  607. // ButtonList
  608. // @Title 角色-按钮权限列表
  609. // @Description 角色-按钮权限列表
  610. // @Param RoleId query int true "角色Id"
  611. // @Success 200 {object} system.SysRoleListResp
  612. // @router /role/menu/buttons [get]
  613. func (this *SysRoleController) ButtonList() {
  614. br := new(models.BaseResponse).Init()
  615. defer func() {
  616. if br.ErrMsg == "" {
  617. br.IsSendEmail = false
  618. }
  619. this.Data["json"] = br
  620. this.ServeJSON()
  621. }()
  622. sysUser := this.SysUser
  623. if sysUser == nil {
  624. br.Msg = "请登录"
  625. br.ErrMsg = "请登录,SysUser Is Empty"
  626. br.Ret = 408
  627. return
  628. }
  629. roleId := sysUser.RoleId
  630. list, e := system.GetMenuButtonsByRoleId(roleId)
  631. if e != nil {
  632. br.Msg = "获取失败"
  633. br.ErrMsg = "获取角色按钮权限失败, Err: " + e.Error()
  634. return
  635. }
  636. buttonList := make([]*system.SysMenuButtonResp, 0)
  637. for _, v := range list {
  638. tmp := new(system.SysMenuButtonResp)
  639. tmp.MenuId = v.MenuId
  640. tmp.ParentId = v.ParentId
  641. tmp.MenuType = v.MenuType
  642. tmp.Name = v.Name
  643. tmp.ButtonCode = v.ButtonCode
  644. buttonList = append(buttonList, tmp)
  645. }
  646. br.Data = buttonList
  647. br.Ret = 200
  648. br.Success = true
  649. br.Msg = "获取成功"
  650. }
  651. // SystemConfig
  652. // @Title 系统配置列表
  653. // @Description 系统配置列表
  654. // @Success 200 {object} []system.BusinessConf
  655. // @router /config [get]
  656. func (this *SysRoleController) SystemConfig() {
  657. br := new(models.BaseResponse).Init()
  658. defer func() {
  659. if br.ErrMsg == "" {
  660. br.IsSendEmail = false
  661. }
  662. this.Data["json"] = br
  663. this.ServeJSON()
  664. }()
  665. sysUser := this.SysUser
  666. if sysUser == nil {
  667. br.Msg = "请登录"
  668. br.ErrMsg = "请登录,SysUser Is Empty"
  669. br.Ret = 408
  670. return
  671. }
  672. list := make([]system.BusinessConf, 0)
  673. // 获取基础配置, 若未配置则直接返回
  674. conf, e := models.GetBusinessConf()
  675. if e != nil {
  676. br.Msg = "获取失败"
  677. br.ErrMsg = "获取基础配置失败, Err: " + e.Error()
  678. return
  679. }
  680. list = append(list, system.BusinessConf{
  681. ConfKey: "ReportViewUrl",
  682. ConfVal: conf["ReportViewUrl"],
  683. }, system.BusinessConf{
  684. ConfKey: "ChartViewUrl",
  685. ConfVal: conf["ChartViewUrl"],
  686. }, system.BusinessConf{
  687. ConfKey: "LoginUrl",
  688. ConfVal: conf["LoginUrl"],
  689. })
  690. osc := system.BusinessConf{
  691. ConfKey: "ObjectStorageClient",
  692. ConfVal: utils.ObjectStorageClient,
  693. }
  694. if osc.ConfVal == "" {
  695. osc.ConfVal = "oss"
  696. }
  697. // ppt上传走后端配置
  698. pptUpload := system.BusinessConf{
  699. ConfKey: "PptUpdateApi",
  700. ConfVal: utils.PptUpdateApi,
  701. }
  702. list = append(list, osc, pptUpload)
  703. // 获取审批流设置
  704. //confKey := "approval_flow"
  705. //confTmp, e := company.GetConfigDetailByCode(confKey)
  706. //if e != nil {
  707. // br.Msg = "获取审批流配置失败"
  708. // br.ErrMsg = "获取审批流配置失败, Err: " + e.Error()
  709. // return
  710. //}
  711. //list = append(list, system.BusinessConf{
  712. // ConfKey: "ApprovalFlow",
  713. // ConfVal: confTmp.ConfigValue,
  714. //})
  715. br.Data = list
  716. br.Ret = 200
  717. br.Success = true
  718. br.Msg = "获取成功"
  719. }