bi_dashboard.go 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757
  1. package controllers
  2. import (
  3. "encoding/json"
  4. "errors"
  5. "eta_gn/eta_api/models"
  6. "eta_gn/eta_api/models/bi_dashboard"
  7. "eta_gn/eta_api/models/system"
  8. "eta_gn/eta_api/utils"
  9. "fmt"
  10. "strconv"
  11. "strings"
  12. "time"
  13. )
  14. type BIDaShboardController struct {
  15. BaseAuthController
  16. }
  17. // GroupList
  18. // @Title 获取我的列表
  19. // @Description 获取我的列表接口
  20. // @Success 200 {object} models.RespGroupList
  21. // @router /my_list [get]
  22. func (this *BIDaShboardController) MyList() {
  23. br := new(models.BaseResponse).Init()
  24. defer func() {
  25. this.Data["json"] = br
  26. this.ServeJSON()
  27. }()
  28. // 获取我的看板列表
  29. privateCond := ` AND sys_admin_id = ? AND state IN (1,6) `
  30. privatePars := []interface{}{this.SysUser.AdminId}
  31. privateList, err := bi_dashboard.GetBiDashboardList(privateCond, privatePars)
  32. if err != nil {
  33. err = errors.New("我的看板列表查询出错:" + err.Error())
  34. return
  35. }
  36. br.Ret = 200
  37. br.Success = true
  38. br.Msg = "查询成功"
  39. br.Data = privateList
  40. return
  41. }
  42. // AddDashboard
  43. // @Title 新增看板
  44. // @Description 新增看板接口
  45. // @Param request body models.AddDashboardReq true "type json string"
  46. // @Success 200 Ret=200 新增成功
  47. // @router /add [post]
  48. func (this *BIDaShboardController) AddDashboard() {
  49. br := new(models.BaseResponse).Init()
  50. defer func() {
  51. this.Data["json"] = br
  52. this.ServeJSON()
  53. }()
  54. var req bi_dashboard.AddDashboardReq
  55. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  56. if err != nil {
  57. br.Msg = "参数解析异常!"
  58. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  59. return
  60. }
  61. if req.BiDashboardName == "" {
  62. br.Msg = "名称不能为空"
  63. return
  64. }
  65. item := &bi_dashboard.BiDashboard{
  66. //BiDashboardClassifyId: req.ClassifyId,
  67. BiDashboardName: req.BiDashboardName,
  68. SysAdminId: this.SysUser.AdminId,
  69. SysAdminName: this.SysUser.AdminName,
  70. //Sort: 0,
  71. CreateTime: time.Now(),
  72. ModifyTime: time.Now(),
  73. State: 1,
  74. }
  75. id, e := bi_dashboard.AddBiDashboard(item)
  76. if e != nil {
  77. err = e
  78. br.Msg = "新增失败"
  79. br.ErrMsg = "新增失败,Err:" + e.Error()
  80. return
  81. }
  82. detailList := make([]*bi_dashboard.BiDashboardDetail, 0)
  83. for i, v := range req.List {
  84. item := &bi_dashboard.BiDashboardDetail{
  85. BiDashboardId: int(id),
  86. Type: v.Type,
  87. UniqueCode: v.UniqueCode,
  88. Sort: i + 1,
  89. CreateTime: time.Now(),
  90. ModifyTime: time.Now(),
  91. }
  92. detailList = append(detailList, item)
  93. }
  94. err = bi_dashboard.AddBiDashboardDetailMulti(detailList)
  95. if err != nil {
  96. br.Msg = "新增详情失败"
  97. br.ErrMsg = "新增详情失败,Err:" + err.Error()
  98. return
  99. }
  100. br.Ret = 200
  101. br.Success = true
  102. br.Msg = "新增成功"
  103. //br.Data =
  104. }
  105. // EditPpt
  106. // @Title 编辑看板
  107. // @Description 编辑看板接口
  108. // @Param request body bi_dashboard.EditDashboardReq true "type json string"
  109. // @Success 200 Ret=200 编辑成功
  110. // @router /edit [post]
  111. func (this *BIDaShboardController) EditDashboard() {
  112. br := new(models.BaseResponse).Init()
  113. defer func() {
  114. this.Data["json"] = br
  115. this.ServeJSON()
  116. }()
  117. var req bi_dashboard.EditDashboardReq
  118. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  119. if err != nil {
  120. br.Msg = "参数解析异常!"
  121. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  122. return
  123. }
  124. if req.BiDashboardName == "" {
  125. br.Msg = "标题不能为空"
  126. return
  127. }
  128. item, err := bi_dashboard.GetDashboardById(req.BiDashboardId)
  129. if err != nil && !utils.IsErrNoRow(err) {
  130. br.Msg = "获取数据异常!"
  131. br.ErrMsg = "获取数据异常,Err:" + err.Error()
  132. return
  133. }
  134. // 判断权限
  135. if item.SysAdminId != this.SysUser.AdminId {
  136. br.Msg = `无权编辑`
  137. return
  138. }
  139. // 修改
  140. item.BiDashboardName = req.BiDashboardName
  141. item.ModifyTime = time.Now()
  142. err = bi_dashboard.EditDashboard(item)
  143. err = bi_dashboard.DeleteBiDashboardDetail(req.BiDashboardId)
  144. detailList := make([]*bi_dashboard.BiDashboardDetail, 0)
  145. for _, v := range req.List {
  146. item := &bi_dashboard.BiDashboardDetail{
  147. BiDashboardId: req.BiDashboardId,
  148. Type: v.Type,
  149. UniqueCode: v.UniqueCode,
  150. Sort: v.Sort,
  151. CreateTime: time.Now(),
  152. ModifyTime: time.Now(),
  153. }
  154. detailList = append(detailList, item)
  155. }
  156. err = bi_dashboard.AddBiDashboardDetailMulti(detailList)
  157. if err != nil {
  158. br.Msg = "新增详情失败"
  159. br.ErrMsg = "新增详情失败,Err:" + err.Error()
  160. return
  161. }
  162. br.Ret = 200
  163. br.Success = true
  164. br.Msg = "编辑成功"
  165. br.IsAddLog = true
  166. }
  167. // DeleteDashboard
  168. // @Title 删除看板
  169. // @Description 删除看板接口
  170. // @Param request body bi_dashboard.DelDashboardReq true "type json string"
  171. // @Success 200 Ret=200 删除成功
  172. // @router /delete [post]
  173. func (this *BIDaShboardController) DeleteDashboard() {
  174. br := new(models.BaseResponse).Init()
  175. defer func() {
  176. this.Data["json"] = br
  177. this.ServeJSON()
  178. }()
  179. var req bi_dashboard.DelDashboardReq
  180. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  181. if err != nil {
  182. br.Msg = "参数解析异常!"
  183. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  184. return
  185. }
  186. if req.BiDashboardId <= 0 {
  187. br.Msg = "参数错误"
  188. return
  189. }
  190. item, err := bi_dashboard.GetDashboardById(req.BiDashboardId)
  191. if err != nil && !utils.IsErrNoRow(err) {
  192. br.Msg = "获取数据异常!"
  193. br.ErrMsg = "获取数据异常,Err:" + err.Error()
  194. return
  195. }
  196. if item.SysAdminId != this.SysUser.AdminId {
  197. br.Msg = "无权删除"
  198. return
  199. }
  200. err = bi_dashboard.DelDashboard(req.BiDashboardId)
  201. if err != nil {
  202. br.Msg = "删除失败"
  203. br.ErrMsg = "删除失败,Err:" + err.Error()
  204. return
  205. }
  206. err = bi_dashboard.DelDashboard(req.BiDashboardId)
  207. if err != nil {
  208. br.Msg = "删除失败"
  209. br.ErrMsg = "删除失败,Err:" + err.Error()
  210. return
  211. }
  212. br.Ret = 200
  213. br.Success = true
  214. br.IsAddLog = true
  215. br.Msg = "删除成功"
  216. }
  217. // DetailDashboard
  218. // @Title 获取看板详情
  219. // @Description 获取看板详情接口
  220. // @Param PptId query int true "PptId"
  221. // @Success 200 {object} models.PptV2
  222. // @router /detail [get]
  223. func (this *BIDaShboardController) DetailDashboard() {
  224. br := new(models.BaseResponse).Init()
  225. defer func() {
  226. if br.ErrMsg == "" {
  227. br.IsSendEmail = false
  228. }
  229. this.Data["json"] = br
  230. this.ServeJSON()
  231. }()
  232. sysUser := this.SysUser
  233. if sysUser == nil {
  234. br.Msg = "请登录"
  235. br.ErrMsg = "请登录,SysUser Is Empty"
  236. br.Ret = 408
  237. return
  238. }
  239. dashboardId, _ := this.GetInt("DashboardId")
  240. dashboardItem, err := bi_dashboard.GetDashboardById(dashboardId)
  241. if err != nil {
  242. err = errors.New("我的看板列表查询出错:" + err.Error())
  243. br.Msg = "我的看板列表查询出错"
  244. br.ErrMsg = err.Error()
  245. return
  246. }
  247. detailList, err := bi_dashboard.GetBiDashboardDetailById(dashboardId)
  248. if err != nil {
  249. br.Msg = "详情获取失败"
  250. br.ErrMsg = "详情获取失败,Err:" + err.Error()
  251. return
  252. }
  253. resp := new(bi_dashboard.DashboardDetailResp)
  254. resp.BiDashboard = dashboardItem
  255. resp.List = detailList
  256. br.Ret = 200
  257. br.Success = true
  258. br.Msg = "获取成功"
  259. br.Data = resp
  260. }
  261. // MoveDashboard
  262. // @Title 移动看板详情
  263. // @Description 移动看板详情接口
  264. // @Param request body bi_dashboard.MoveDashboardDetailReq true "type json string"
  265. // @Success 200 Ret=200 移动成功
  266. // @router /detail/move [post]
  267. func (this *BIDaShboardController) MoveDashboard() {
  268. br := new(models.BaseResponse).Init()
  269. defer func() {
  270. this.Data["json"] = br
  271. this.ServeJSON()
  272. }()
  273. var req bi_dashboard.MoveDashboardDetailReq
  274. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  275. if err != nil {
  276. br.Msg = "参数解析异常!"
  277. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  278. return
  279. }
  280. if req.BiDashboardId <= 0 {
  281. br.Msg = "参数错误"
  282. return
  283. }
  284. if req.BiDashboardDetailId == req.OtherDetailId || req.BiDashboardDetailId <= 0 || req.OtherDetailId <= 0 {
  285. br.Msg = "看板Id有误"
  286. return
  287. }
  288. if req.Sort < 0 || req.OtherSort < 0 || req.Sort == req.OtherSort {
  289. br.Msg = "排序有误"
  290. return
  291. }
  292. item, err := bi_dashboard.GetDashboardById(req.BiDashboardId)
  293. if err != nil && !utils.IsErrNoRow(err) {
  294. br.Msg = "获取数据异常!"
  295. br.ErrMsg = "获取数据异常,Err:" + err.Error()
  296. return
  297. }
  298. // 判断权限
  299. if item.SysAdminId != this.SysUser.AdminId {
  300. br.Msg = `无权移动`
  301. return
  302. }
  303. // 修改
  304. detailItem := &bi_dashboard.BiDashboardDetail{
  305. BiDashboardDetailId: req.BiDashboardDetailId,
  306. Sort: req.OtherSort,
  307. ModifyTime: time.Now(),
  308. }
  309. err = bi_dashboard.EditBiDashboardDetail(detailItem)
  310. if err != nil {
  311. br.Msg = "编辑详情失败"
  312. br.ErrMsg = "编辑详情失败,Err:" + err.Error()
  313. return
  314. }
  315. otherItem := &bi_dashboard.BiDashboardDetail{
  316. BiDashboardDetailId: req.OtherDetailId,
  317. Sort: req.Sort,
  318. ModifyTime: time.Now(),
  319. }
  320. err = bi_dashboard.EditBiDashboardDetail(otherItem)
  321. if err != nil {
  322. br.Msg = "编辑详情失败"
  323. br.ErrMsg = "编辑详情失败,Err:" + err.Error()
  324. return
  325. }
  326. br.Ret = 200
  327. br.Success = true
  328. br.Msg = "编辑成功"
  329. br.IsAddLog = true
  330. }
  331. // ShareList
  332. // @Title 获取共享列表
  333. // @Description 获取共享列表接口
  334. // @Success 200 {object} models.RespGroupList
  335. // @router /share_list [get]
  336. func (this *BIDaShboardController) ShareList() {
  337. br := new(models.BaseResponse).Init()
  338. defer func() {
  339. this.Data["json"] = br
  340. this.ServeJSON()
  341. }()
  342. //myPptList := make([]*bi_dashboard.BiDashboard, 0)
  343. //otherPptList := make([]*bi_dashboard.BiDashboard, 0)
  344. grantList := bi_dashboard.RespGroupList{}
  345. // 获取我的看板列表
  346. ShareCond := ` AND sys_admin_id = ? AND state IN (1,6) `
  347. SharePars := []interface{}{this.SysUser.AdminId}
  348. ShareList, err := bi_dashboard.GetBiDashboardList(ShareCond, SharePars)
  349. if err != nil {
  350. err = errors.New("我的看板列表查询出错:" + err.Error())
  351. br.ErrMsg = err.Error()
  352. br.Msg = "查询失败"
  353. return
  354. }
  355. grantList.MyList = ShareList
  356. //dashboardMap := make(map[int]*bi_dashboard.BiDashboard)
  357. adminIdList := make([]int, 0) //需要查询的创建人admin_id列表集合
  358. adminIdMap := make(map[int]int) //需要查询的创建人admin_id集合,用来去重的,避免重复id
  359. grantDashboardList, err := bi_dashboard.GetAllGrantList(this.SysUser.AdminId)
  360. if err != nil {
  361. err = errors.New("我的看板列表查询出错:" + err.Error())
  362. br.ErrMsg = err.Error()
  363. br.Msg = "查询失败"
  364. return
  365. }
  366. publicAdminIdList := make([]int, 0)
  367. publicDashboardListMap := make(map[int][]*bi_dashboard.BiDashboard)
  368. for _, v := range grantDashboardList {
  369. publicDashboardList, ok := publicDashboardListMap[v.SysAdminId]
  370. if !ok {
  371. publicDashboardList = make([]*bi_dashboard.BiDashboard, 0)
  372. publicAdminIdList = append(publicAdminIdList, v.SysAdminId)
  373. if _, ok := adminIdMap[v.SysAdminId]; !ok {
  374. adminIdList = append(adminIdList, v.SysAdminId) //需要查询的创建人admin_id列表集合
  375. adminIdMap[v.SysAdminId] = v.SysAdminId //需要查询的创建人admin_id集合,用来去重的,避免重复id
  376. }
  377. }
  378. tmp := &bi_dashboard.BiDashboard{
  379. BiDashboardId: v.BiDashboardId,
  380. BiDashboardName: v.BiDashboardName,
  381. CreateTime: v.CreateTime,
  382. ModifyTime: v.ModifyTime,
  383. Sort: v.Sort,
  384. State: v.State,
  385. SysAdminId: v.SysAdminId,
  386. SysAdminName: v.SysAdminName,
  387. }
  388. publicDashboardList = append(publicDashboardList, tmp)
  389. publicDashboardListMap[v.SysAdminId] = publicDashboardList
  390. }
  391. // 创建人信息
  392. systemAdminMap := make(map[int]*system.Admin)
  393. systemAdminList, err := system.GetAdminListByIdList(adminIdList)
  394. if err != nil {
  395. return
  396. }
  397. for _, v := range systemAdminList {
  398. systemAdminMap[v.AdminId] = v
  399. }
  400. for _, v := range publicAdminIdList {
  401. systemAdmin, ok := systemAdminMap[v]
  402. if !ok {
  403. continue
  404. }
  405. // 看板 列表信息
  406. respGroupNameListItemList, ok := publicDashboardListMap[v]
  407. if !ok {
  408. respGroupNameListItemList = make([]*bi_dashboard.BiDashboard, 0)
  409. }
  410. // ppt 分组信息
  411. tmpRespGroupListItem := &bi_dashboard.RespOtherGroupListItem{
  412. GroupId: int64(systemAdmin.AdminId),
  413. GroupName: systemAdmin.RealName,
  414. AdminId: systemAdmin.AdminId,
  415. DashboardList: respGroupNameListItemList,
  416. }
  417. grantList.OtherList = append(grantList.OtherList, tmpRespGroupListItem)
  418. }
  419. //if len(dashboradIds) > 0 {
  420. // // 通过dashboradIds列表字段获取所有的看板信息
  421. // dashboradList, tmpErr := bi_dashboard.GetDashboradByIds(dashboradIds)
  422. // if tmpErr != nil {
  423. // err = errors.New("查询dashborad详情出错:" + err.Error())
  424. // br.Msg = "查询dashborad详情出错"
  425. // br.ErrMsg = err.Error()
  426. // return
  427. // }
  428. // for _, v := range dashboradList {
  429. // dashboardMap[v.BiDashboardId] = v
  430. // }
  431. //}
  432. br.Ret = 200
  433. br.Success = true
  434. br.Msg = "查询成功"
  435. br.Data = grantList
  436. return
  437. }
  438. // PublicList
  439. // @Title 获取公共列表
  440. // @Description 获取公共列表接口
  441. // @Success 200 {object} models.RespGroupList
  442. // @router /public_list [get]
  443. func (this *BIDaShboardController) PublicList() {
  444. br := new(models.BaseResponse).Init()
  445. defer func() {
  446. this.Data["json"] = br
  447. this.ServeJSON()
  448. }()
  449. grantList := bi_dashboard.RespGroupList{}
  450. // 获取公共看板列表
  451. publicCond := ` AND state = 6 `
  452. publicPars := []interface{}{this.SysUser.AdminId}
  453. publicList, err := bi_dashboard.GetBiDashboardList(publicCond, publicPars)
  454. if err != nil {
  455. err = errors.New("我的看板列表查询出错:" + err.Error())
  456. return
  457. }
  458. //dashboardMap := make(map[int]*bi_dashboard.BiDashboard)
  459. adminIdList := make([]int, 0) //需要查询的创建人admin_id列表集合
  460. adminIdMap := make(map[int]int) //需要查询的创建人admin_id集合,用来去重的,避免重复id
  461. publicAdminIdList := make([]int, 0)
  462. publicDashboardListMap := make(map[int][]*bi_dashboard.BiDashboard)
  463. for _, v := range publicList {
  464. publicDashboardList, ok := publicDashboardListMap[v.SysAdminId]
  465. if !ok {
  466. publicDashboardList = make([]*bi_dashboard.BiDashboard, 0)
  467. publicAdminIdList = append(publicAdminIdList, v.SysAdminId)
  468. if _, ok := adminIdMap[v.SysAdminId]; !ok {
  469. adminIdList = append(adminIdList, v.SysAdminId) //需要查询的创建人admin_id列表集合
  470. adminIdMap[v.SysAdminId] = v.SysAdminId //需要查询的创建人admin_id集合,用来去重的,避免重复id
  471. }
  472. }
  473. tmp := &bi_dashboard.BiDashboard{
  474. BiDashboardId: v.BiDashboardId,
  475. BiDashboardName: v.BiDashboardName,
  476. CreateTime: v.CreateTime,
  477. ModifyTime: v.ModifyTime,
  478. Sort: v.Sort,
  479. State: v.State,
  480. SysAdminId: v.SysAdminId,
  481. SysAdminName: v.SysAdminName,
  482. }
  483. publicDashboardList = append(publicDashboardList, tmp)
  484. publicDashboardListMap[v.SysAdminId] = publicDashboardList
  485. }
  486. // 创建人信息
  487. systemAdminMap := make(map[int]*system.Admin)
  488. systemAdminList, err := system.GetAdminListByIdList(adminIdList)
  489. if err != nil {
  490. return
  491. }
  492. for _, v := range systemAdminList {
  493. systemAdminMap[v.AdminId] = v
  494. }
  495. for _, v := range publicAdminIdList {
  496. systemAdmin, ok := systemAdminMap[v]
  497. if !ok {
  498. continue
  499. }
  500. // 看板 列表信息
  501. respGroupNameListItemList, ok := publicDashboardListMap[v]
  502. if !ok {
  503. respGroupNameListItemList = make([]*bi_dashboard.BiDashboard, 0)
  504. }
  505. // ppt 分组信息
  506. tmpRespGroupListItem := &bi_dashboard.RespOtherGroupListItem{
  507. GroupId: int64(systemAdmin.AdminId),
  508. GroupName: systemAdmin.RealName,
  509. AdminId: systemAdmin.AdminId,
  510. DashboardList: respGroupNameListItemList,
  511. }
  512. grantList.OtherList = append(grantList.OtherList, tmpRespGroupListItem)
  513. }
  514. br.Ret = 200
  515. br.Success = true
  516. br.Msg = "查询成功"
  517. br.Data = publicList
  518. return
  519. }
  520. // AddDashboardClassify
  521. // @Title 新增看板分类
  522. // @Description 新增看板分类接口
  523. // @Param request body bi_dashboard.AddDashboardClassifyReq true "type json string"
  524. // @Success 200 Ret=200 新增成功
  525. // @router /classify/add [post]
  526. func (this *BIDaShboardController) AddDashboardClassify() {
  527. br := new(models.BaseResponse).Init()
  528. defer func() {
  529. this.Data["json"] = br
  530. this.ServeJSON()
  531. }()
  532. var req bi_dashboard.AddDashboardClassifyReq
  533. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  534. if err != nil {
  535. br.Msg = "参数解析异常!"
  536. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  537. return
  538. }
  539. if req.ClassifyName == "" {
  540. br.Msg = "名称不能为空"
  541. return
  542. }
  543. maxSort, err := bi_dashboard.GetBiDashboardClassifyMaxSort()
  544. if err != nil {
  545. br.Msg = "获取最大排序值失败"
  546. br.ErrMsg = "获取最大排序值失败,Err:" + err.Error()
  547. return
  548. }
  549. item := &bi_dashboard.BiDashboardClassify{
  550. BiDashboardClassifyName: req.ClassifyName,
  551. Sort: maxSort + 1,
  552. CreateTime: time.Now(),
  553. ModifyTime: time.Now(),
  554. }
  555. _, e := bi_dashboard.AddBiDashboardClassify(item)
  556. if e != nil {
  557. err = e
  558. br.Msg = "新增失败"
  559. br.ErrMsg = "新增失败,Err:" + e.Error()
  560. return
  561. }
  562. br.Ret = 200
  563. br.Success = true
  564. br.Msg = "新增成功"
  565. //br.Data =
  566. }
  567. // EditDashboardClassify
  568. // @Title 编辑看板分类
  569. // @Description 编辑看板分类接口
  570. // @Param request body bi_dashboard.EditDashboardReq true "type json string"
  571. // @Success 200 Ret=200 编辑成功
  572. // @router /classify/edit [post]
  573. func (this *BIDaShboardController) EditDashboardClassify() {
  574. br := new(models.BaseResponse).Init()
  575. defer func() {
  576. this.Data["json"] = br
  577. this.ServeJSON()
  578. }()
  579. var req bi_dashboard.EditDashboardClassifyReq
  580. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  581. if err != nil {
  582. br.Msg = "参数解析异常!"
  583. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  584. return
  585. }
  586. if req.ClassifyName == "" {
  587. br.Msg = "标题不能为空"
  588. return
  589. }
  590. if req.BiDashboardClassifyId <= 0 {
  591. br.Msg = "参数有误"
  592. br.ErrMsg = fmt.Sprintf("参数有误, BiDashboardClassifyId: %d", req.BiDashboardClassifyId)
  593. return
  594. }
  595. item, err := bi_dashboard.GetBiDashboardClassifyById(req.BiDashboardClassifyId)
  596. if err != nil && !utils.IsErrNoRow(err) {
  597. br.Msg = "获取数据异常!"
  598. br.ErrMsg = "获取数据异常,Err:" + err.Error()
  599. return
  600. }
  601. // 修改
  602. item.BiDashboardClassifyName = req.ClassifyName
  603. item.ModifyTime = time.Now()
  604. err = bi_dashboard.EditDashboardClassify(item)
  605. if err != nil {
  606. br.Msg = "编辑失败"
  607. br.ErrMsg = "编辑失败,Err:" + err.Error()
  608. return
  609. }
  610. br.Ret = 200
  611. br.Success = true
  612. br.Msg = "编辑成功"
  613. br.IsAddLog = true
  614. }
  615. // Grant
  616. // @Title 分配ppt权限
  617. // @Description 分配ppt权限接口
  618. // @Param request body models.GrantPptReq true "type json string"
  619. // @Success 200 Ret=200 分配成功
  620. // @router /grant [post]
  621. func (this *BIDaShboardController) Grant() {
  622. br := new(models.BaseResponse).Init()
  623. defer func() {
  624. this.Data["json"] = br
  625. this.ServeJSON()
  626. }()
  627. var req bi_dashboard.GrantDashboardReq
  628. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  629. if err != nil {
  630. br.Msg = "参数解析异常!"
  631. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  632. return
  633. }
  634. if req.AdminIdStr == "" {
  635. br.Msg = "参数错误"
  636. return
  637. }
  638. if req.BiDashboardId <= 0 {
  639. br.Msg = "参数错误"
  640. return
  641. }
  642. dashboardItem, err := bi_dashboard.GetDashboardById(req.BiDashboardId)
  643. if err != nil {
  644. err = errors.New("我的看板列表查询出错:" + err.Error())
  645. br.Msg = "我的看板列表查询出错"
  646. br.ErrMsg = err.Error()
  647. return
  648. }
  649. if dashboardItem.SysAdminId != this.SysUser.AdminId {
  650. br.Msg = "无权配置"
  651. return
  652. }
  653. list := make([]*bi_dashboard.BiDashboardGrant, 0)
  654. grantAdminIdStrList := strings.Split(req.AdminIdStr, ",")
  655. lenGrantAdminIdStrList := len(grantAdminIdStrList) //指定用户的人数
  656. for _, v := range grantAdminIdStrList {
  657. grantAdminId, tmpErr := strconv.Atoi(v)
  658. if tmpErr != nil {
  659. br.Msg = "参数有误"
  660. br.ErrMsg = fmt.Sprintf("参数有误,Err:%s", tmpErr.Error())
  661. return
  662. }
  663. //如果只选择了自己作为指定的人,那么就提示他报错。如果多人,那么就过滤自己
  664. if grantAdminId == this.SysUser.AdminId {
  665. if lenGrantAdminIdStrList == 1 {
  666. br.Msg = "不能指定自己为权限用户"
  667. br.ErrMsg = fmt.Sprintf("参数有误,Err:%s", tmpErr.Error())
  668. return
  669. }
  670. continue
  671. }
  672. tmpV := &bi_dashboard.BiDashboardGrant{
  673. BiDashboardId: req.BiDashboardId,
  674. GrantAdminId: grantAdminId,
  675. CreateTime: time.Time{},
  676. }
  677. list = append(list, tmpV)
  678. }
  679. if len(list) <= 0 {
  680. br.Msg = "参数有误"
  681. br.ErrMsg = fmt.Sprintf("参数有误,Err:%s", "指定用户为空")
  682. return
  683. }
  684. err = bi_dashboard.MultiAddDashboardGrant(req.BiDashboardId, list)
  685. if err != nil {
  686. br.Msg = "分配失败"
  687. br.ErrMsg = fmt.Sprintf("分配失败,Err:%s", err.Error())
  688. return
  689. }
  690. br.Ret = 200
  691. br.Success = true
  692. br.IsAddLog = true
  693. br.Msg = "分配成功"
  694. }