sys_role.go 17 KB

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