bi_dashboard.go 34 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317
  1. package controllers
  2. import (
  3. "encoding/json"
  4. "errors"
  5. "eta/eta_api/models"
  6. "eta/eta_api/models/bi_dashboard"
  7. "eta/eta_api/models/system"
  8. "eta/eta_api/services"
  9. "eta/eta_api/utils"
  10. "fmt"
  11. "strconv"
  12. "strings"
  13. "time"
  14. )
  15. type BIDaShboardController struct {
  16. BaseAuthController
  17. }
  18. // GroupList
  19. // @Title 获取我的列表
  20. // @Description 获取我的列表接口
  21. // @Success 200 {object} models.RespGroupList
  22. // @router /my_list [get]
  23. func (this *BIDaShboardController) MyList() {
  24. br := new(models.BaseResponse).Init()
  25. defer func() {
  26. this.Data["json"] = br
  27. this.ServeJSON()
  28. }()
  29. // 获取我的看板列表
  30. privateCond := ` AND sys_admin_id = ? `
  31. privatePars := []interface{}{this.SysUser.AdminId}
  32. privateList, err := bi_dashboard.GetBiDashboardList(privateCond, privatePars)
  33. if err != nil {
  34. err = errors.New("我的看板列表查询出错:" + err.Error())
  35. return
  36. }
  37. br.Ret = 200
  38. br.Success = true
  39. br.Msg = "查询成功"
  40. br.Data = privateList
  41. return
  42. }
  43. // AddDashboard
  44. // @Title 新增看板
  45. // @Description 新增看板接口
  46. // @Param request body models.AddDashboardReq true "type json string"
  47. // @Success 200 Ret=200 新增成功
  48. // @router /add [post]
  49. func (this *BIDaShboardController) AddDashboard() {
  50. br := new(models.BaseResponse).Init()
  51. defer func() {
  52. this.Data["json"] = br
  53. this.ServeJSON()
  54. }()
  55. var req bi_dashboard.AddDashboardReq
  56. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  57. if err != nil {
  58. br.Msg = "参数解析异常!"
  59. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  60. return
  61. }
  62. if req.BiDashboardName == "" {
  63. br.Msg = "名称不能为空"
  64. return
  65. }
  66. nameItem, err := bi_dashboard.GetDashboardByName(req.BiDashboardName, this.SysUser.AdminId)
  67. if err != nil && !utils.IsErrNoRow(err) {
  68. br.Msg = "查询失败"
  69. br.ErrMsg = "查询失败,Err:" + err.Error()
  70. return
  71. }
  72. if nameItem != nil && nameItem.BiDashboardId > 0 {
  73. br.Msg = "名称重复"
  74. return
  75. }
  76. item := &bi_dashboard.BiDashboard{
  77. //BiDashboardClassifyId: req.ClassifyId,
  78. BiDashboardName: req.BiDashboardName,
  79. SysAdminId: this.SysUser.AdminId,
  80. SysAdminName: this.SysUser.RealName,
  81. //Sort: 0,
  82. CreateTime: time.Now(),
  83. ModifyTime: time.Now(),
  84. State: 1,
  85. }
  86. id, e := bi_dashboard.AddBiDashboard(item)
  87. if e != nil {
  88. err = e
  89. br.Msg = "新增失败"
  90. br.ErrMsg = "新增失败,Err:" + e.Error()
  91. return
  92. }
  93. detailList := make([]*bi_dashboard.BiDashboardDetail, 0)
  94. for i, v := range req.List {
  95. item := &bi_dashboard.BiDashboardDetail{
  96. BiDashboardId: int(id),
  97. Type: v.Type,
  98. UniqueCode: v.UniqueCode,
  99. Conf: v.Conf,
  100. Sort: i + 1,
  101. CreateTime: time.Now(),
  102. ModifyTime: time.Now(),
  103. }
  104. detailList = append(detailList, item)
  105. }
  106. err = bi_dashboard.AddBiDashboardDetailMulti(detailList)
  107. if err != nil {
  108. br.Msg = "新增详情失败"
  109. br.ErrMsg = "新增详情失败,Err:" + err.Error()
  110. return
  111. }
  112. br.Ret = 200
  113. br.Success = true
  114. br.Msg = "新增成功"
  115. //br.Data =
  116. }
  117. // EditPpt
  118. // @Title 编辑看板
  119. // @Description 编辑看板接口
  120. // @Param request body bi_dashboard.EditDashboardReq true "type json string"
  121. // @Success 200 Ret=200 编辑成功
  122. // @router /edit [post]
  123. func (this *BIDaShboardController) EditDashboard() {
  124. br := new(models.BaseResponse).Init()
  125. defer func() {
  126. this.Data["json"] = br
  127. this.ServeJSON()
  128. }()
  129. var req bi_dashboard.EditDashboardReq
  130. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  131. if err != nil {
  132. br.Msg = "参数解析异常!"
  133. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  134. return
  135. }
  136. if req.BiDashboardName == "" {
  137. br.Msg = "标题不能为空"
  138. return
  139. }
  140. item, err := bi_dashboard.GetDashboardById(req.BiDashboardId)
  141. if err != nil {
  142. br.Msg = "获取数据异常!"
  143. br.ErrMsg = "获取数据异常,Err:" + err.Error()
  144. return
  145. }
  146. // 修改
  147. item.BiDashboardName = req.BiDashboardName
  148. item.ModifyTime = time.Now()
  149. err = bi_dashboard.EditDashboard(item)
  150. if err != nil {
  151. br.Msg = "编辑失败"
  152. br.ErrMsg = "编辑失败,Err:" + err.Error()
  153. return
  154. }
  155. err = bi_dashboard.DeleteBiDashboardDetail(req.BiDashboardId)
  156. if err != nil {
  157. br.Msg = "删除详情失败"
  158. br.ErrMsg = "删除详情失败,Err:" + err.Error()
  159. return
  160. }
  161. detailList := make([]*bi_dashboard.BiDashboardDetail, 0)
  162. for _, v := range req.List {
  163. item := &bi_dashboard.BiDashboardDetail{
  164. BiDashboardId: req.BiDashboardId,
  165. Type: v.Type,
  166. UniqueCode: v.UniqueCode,
  167. Conf: v.Conf,
  168. Sort: v.Sort,
  169. CreateTime: time.Now(),
  170. ModifyTime: time.Now(),
  171. }
  172. detailList = append(detailList, item)
  173. }
  174. err = bi_dashboard.AddBiDashboardDetailMulti(detailList)
  175. if err != nil {
  176. br.Msg = "新增详情失败"
  177. br.ErrMsg = "新增详情失败,Err:" + err.Error()
  178. return
  179. }
  180. br.Ret = 200
  181. br.Success = true
  182. br.Msg = "编辑成功"
  183. br.IsAddLog = true
  184. }
  185. // DeleteDashboard
  186. // @Title 删除看板
  187. // @Description 删除看板接口
  188. // @Param request body bi_dashboard.DelDashboardReq true "type json string"
  189. // @Success 200 Ret=200 删除成功
  190. // @router /delete [post]
  191. func (this *BIDaShboardController) DeleteDashboard() {
  192. br := new(models.BaseResponse).Init()
  193. defer func() {
  194. this.Data["json"] = br
  195. this.ServeJSON()
  196. }()
  197. var req bi_dashboard.DelDashboardReq
  198. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  199. if err != nil {
  200. br.Msg = "参数解析异常!"
  201. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  202. return
  203. }
  204. if req.BiDashboardId <= 0 {
  205. br.Msg = "参数错误"
  206. return
  207. }
  208. item, err := bi_dashboard.GetDashboardById(req.BiDashboardId)
  209. if err != nil {
  210. br.Msg = "获取数据异常!"
  211. br.ErrMsg = "获取数据异常,Err:" + err.Error()
  212. return
  213. }
  214. if item.SysAdminId != this.SysUser.AdminId {
  215. br.Msg = "无权删除"
  216. return
  217. }
  218. err = bi_dashboard.DelDashboard(req.BiDashboardId)
  219. if err != nil {
  220. br.Msg = "删除失败"
  221. br.ErrMsg = "删除失败,Err:" + err.Error()
  222. return
  223. }
  224. //如果该看板存在共享记录,则删除共享
  225. err = bi_dashboard.DeleteDashboardGrant(req.BiDashboardId)
  226. if err != nil {
  227. br.Msg = "删除失败"
  228. br.ErrMsg = "删除失败,Err:" + err.Error()
  229. return
  230. }
  231. br.Ret = 200
  232. br.Success = true
  233. br.IsAddLog = true
  234. br.Msg = "删除成功"
  235. }
  236. // DeleteDashboard
  237. // @Title 删除看板详情
  238. // @Description 删除看板详情接口
  239. // @Param request body bi_dashboard.DelDashboardDetailReq true "type json string"
  240. // @Success 200 Ret=200 删除成功
  241. // @router /detail/delete [post]
  242. func (this *BIDaShboardController) DeleteDashboardDetail() {
  243. br := new(models.BaseResponse).Init()
  244. defer func() {
  245. this.Data["json"] = br
  246. this.ServeJSON()
  247. }()
  248. var req bi_dashboard.DelDashboardDetailReq
  249. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  250. if err != nil {
  251. br.Msg = "参数解析异常!"
  252. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  253. return
  254. }
  255. if req.BiDashboardDetailId <= 0 {
  256. br.Msg = "参数错误"
  257. return
  258. }
  259. err = bi_dashboard.DeleteBiDashboardDetailByDetailId(req.BiDashboardDetailId)
  260. if err != nil {
  261. br.Msg = "删除失败"
  262. br.ErrMsg = "删除失败,Err:" + err.Error()
  263. return
  264. }
  265. br.Ret = 200
  266. br.Success = true
  267. br.IsAddLog = true
  268. br.Msg = "删除成功"
  269. }
  270. // DetailDashboard
  271. // @Title 获取看板详情
  272. // @Description 获取看板详情接口
  273. // @Param PptId query int true "PptId"
  274. // @Success 200 {object} models.PptV2
  275. // @router /detail [get]
  276. func (this *BIDaShboardController) DetailDashboard() {
  277. br := new(models.BaseResponse).Init()
  278. defer func() {
  279. if br.ErrMsg == "" {
  280. br.IsSendEmail = false
  281. }
  282. this.Data["json"] = br
  283. this.ServeJSON()
  284. }()
  285. sysUser := this.SysUser
  286. if sysUser == nil {
  287. br.Msg = "请登录"
  288. br.ErrMsg = "请登录,SysUser Is Empty"
  289. br.Ret = 408
  290. return
  291. }
  292. dashboardId, _ := this.GetInt("DashboardId")
  293. resp := new(bi_dashboard.DashboardDetailResp)
  294. dashboardItem, err := bi_dashboard.GetDashboardById(dashboardId)
  295. if err != nil {
  296. err = errors.New("我的看板列表查询出错:" + err.Error())
  297. br.Msg = "我的看板列表查询出错"
  298. br.ErrMsg = err.Error()
  299. return
  300. }
  301. grantInfoList, err := bi_dashboard.GetDashboardGrantInfo(dashboardId)
  302. if err != nil {
  303. br.Msg = "信息获取失败"
  304. br.ErrMsg = "共享信息获取失败,Err:" + err.Error()
  305. return
  306. }
  307. if len(grantInfoList) > 0 {
  308. resp.IsGrant = 1
  309. }
  310. detailList, err := bi_dashboard.GetBiDashboardDetailById(dashboardId)
  311. if err != nil {
  312. br.Msg = "详情获取失败"
  313. br.ErrMsg = "详情获取失败,Err:" + err.Error()
  314. return
  315. }
  316. editor, e := services.UpdateBiDashboardEditing(dashboardId, 0, sysUser.AdminId, sysUser.RealName)
  317. if e != nil {
  318. br.Msg = "编辑状态更新失败"
  319. br.ErrMsg = "编辑状态更新失败,Err:" + e.Error()
  320. return
  321. }
  322. resp.Editor = editor
  323. resp.BiDashboard = dashboardItem
  324. resp.List = detailList
  325. br.Ret = 200
  326. br.Success = true
  327. br.Msg = "获取成功"
  328. br.Data = resp
  329. }
  330. // MoveDashboard
  331. // @Title 移动看板详情
  332. // @Description 移动看板详情接口
  333. // @Param request body bi_dashboard.MoveDashboardDetailReq true "type json string"
  334. // @Success 200 Ret=200 移动成功
  335. // @router /detail/move [post]
  336. func (this *BIDaShboardController) MoveDashboard() {
  337. br := new(models.BaseResponse).Init()
  338. defer func() {
  339. this.Data["json"] = br
  340. this.ServeJSON()
  341. }()
  342. var req bi_dashboard.MoveDashboardDetailReq
  343. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  344. if err != nil {
  345. br.Msg = "参数解析异常!"
  346. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  347. return
  348. }
  349. if req.BiDashboardId <= 0 {
  350. br.Msg = "参数错误"
  351. return
  352. }
  353. if req.BiDashboardDetailId == req.OtherDetailId || req.BiDashboardDetailId <= 0 || req.OtherDetailId <= 0 {
  354. br.Msg = "看板Id有误"
  355. return
  356. }
  357. if req.Sort < 0 || req.OtherSort < 0 || req.Sort == req.OtherSort {
  358. br.Msg = "排序有误"
  359. return
  360. }
  361. item, err := bi_dashboard.GetDashboardById(req.BiDashboardId)
  362. if err != nil {
  363. br.Msg = "获取数据异常!"
  364. br.ErrMsg = "获取数据异常,Err:" + err.Error()
  365. return
  366. }
  367. // 判断权限
  368. if item.SysAdminId != this.SysUser.AdminId {
  369. br.Msg = `无权移动`
  370. return
  371. }
  372. // 修改
  373. detailItem := &bi_dashboard.BiDashboardDetail{
  374. BiDashboardDetailId: req.BiDashboardDetailId,
  375. Sort: req.OtherSort,
  376. ModifyTime: time.Now(),
  377. }
  378. err = bi_dashboard.EditBiDashboardDetail(detailItem)
  379. if err != nil {
  380. br.Msg = "编辑详情失败"
  381. br.ErrMsg = "编辑详情失败,Err:" + err.Error()
  382. return
  383. }
  384. otherItem := &bi_dashboard.BiDashboardDetail{
  385. BiDashboardDetailId: req.OtherDetailId,
  386. Sort: req.Sort,
  387. ModifyTime: time.Now(),
  388. }
  389. err = bi_dashboard.EditBiDashboardDetail(otherItem)
  390. if err != nil {
  391. br.Msg = "编辑详情失败"
  392. br.ErrMsg = "编辑详情失败,Err:" + err.Error()
  393. return
  394. }
  395. br.Ret = 200
  396. br.Success = true
  397. br.Msg = "编辑成功"
  398. br.IsAddLog = true
  399. }
  400. // ShareList
  401. // @Title 获取共享列表
  402. // @Description 获取共享列表接口
  403. // @Success 200 {object} models.RespGroupList
  404. // @router /share_list [get]
  405. func (this *BIDaShboardController) ShareList() {
  406. br := new(models.BaseResponse).Init()
  407. defer func() {
  408. this.Data["json"] = br
  409. this.ServeJSON()
  410. }()
  411. //myPptList := make([]*bi_dashboard.BiDashboard, 0)
  412. //otherPptList := make([]*bi_dashboard.BiDashboard, 0)
  413. grantList := bi_dashboard.RespGroupList{}
  414. // 获取我的看板列表
  415. ShareList, err := bi_dashboard.GetAllMyShareList(this.SysUser.AdminId)
  416. if err != nil {
  417. err = errors.New("我的看板列表查询出错:" + err.Error())
  418. br.ErrMsg = err.Error()
  419. br.Msg = "查询失败"
  420. return
  421. }
  422. grantList.MyList = ShareList
  423. //dashboardMap := make(map[int]*bi_dashboard.BiDashboard)
  424. adminIdList := make([]int, 0) //需要查询的创建人admin_id列表集合
  425. adminIdMap := make(map[int]int) //需要查询的创建人admin_id集合,用来去重的,避免重复id
  426. grantDashboardList, err := bi_dashboard.GetAllGrantList(this.SysUser.AdminId)
  427. if err != nil {
  428. err = errors.New("我的看板列表查询出错:" + err.Error())
  429. br.ErrMsg = err.Error()
  430. br.Msg = "查询失败"
  431. return
  432. }
  433. publicAdminIdList := make([]int, 0)
  434. publicDashboardListMap := make(map[int][]*bi_dashboard.BiDashboard)
  435. for _, v := range grantDashboardList {
  436. publicDashboardList, ok := publicDashboardListMap[v.SysAdminId]
  437. if !ok {
  438. publicDashboardList = make([]*bi_dashboard.BiDashboard, 0)
  439. publicAdminIdList = append(publicAdminIdList, v.SysAdminId)
  440. if _, ok := adminIdMap[v.SysAdminId]; !ok {
  441. adminIdList = append(adminIdList, v.SysAdminId) //需要查询的创建人admin_id列表集合
  442. adminIdMap[v.SysAdminId] = v.SysAdminId //需要查询的创建人admin_id集合,用来去重的,避免重复id
  443. }
  444. }
  445. tmp := &bi_dashboard.BiDashboard{
  446. BiDashboardId: v.BiDashboardId,
  447. BiDashboardName: v.BiDashboardName,
  448. CreateTime: v.CreateTime,
  449. ModifyTime: v.ModifyTime,
  450. Sort: v.Sort,
  451. State: v.State,
  452. SysAdminId: v.SysAdminId,
  453. SysAdminName: v.SysAdminName,
  454. }
  455. publicDashboardList = append(publicDashboardList, tmp)
  456. publicDashboardListMap[v.SysAdminId] = publicDashboardList
  457. }
  458. // 创建人信息
  459. systemAdminMap := make(map[int]*system.Admin)
  460. systemAdminList, err := system.GetAdminListByIdList(adminIdList)
  461. if err != nil {
  462. return
  463. }
  464. for _, v := range systemAdminList {
  465. systemAdminMap[v.AdminId] = v
  466. }
  467. for _, v := range publicAdminIdList {
  468. systemAdmin, ok := systemAdminMap[v]
  469. if !ok {
  470. continue
  471. }
  472. // 看板 列表信息
  473. respGroupNameListItemList, ok := publicDashboardListMap[v]
  474. if !ok {
  475. respGroupNameListItemList = make([]*bi_dashboard.BiDashboard, 0)
  476. }
  477. // ppt 分组信息
  478. tmpRespGroupListItem := &bi_dashboard.RespOtherGroupListItem{
  479. GroupId: int64(systemAdmin.AdminId),
  480. GroupName: systemAdmin.RealName,
  481. AdminId: systemAdmin.AdminId,
  482. DashboardList: respGroupNameListItemList,
  483. }
  484. grantList.OtherList = append(grantList.OtherList, tmpRespGroupListItem)
  485. }
  486. //if len(dashboradIds) > 0 {
  487. // // 通过dashboradIds列表字段获取所有的看板信息
  488. // dashboradList, tmpErr := bi_dashboard.GetDashboradByIds(dashboradIds)
  489. // if tmpErr != nil {
  490. // err = errors.New("查询dashborad详情出错:" + err.Error())
  491. // br.Msg = "查询dashborad详情出错"
  492. // br.ErrMsg = err.Error()
  493. // return
  494. // }
  495. // for _, v := range dashboradList {
  496. // dashboardMap[v.BiDashboardId] = v
  497. // }
  498. //}
  499. br.Ret = 200
  500. br.Success = true
  501. br.Msg = "查询成功"
  502. br.Data = grantList
  503. return
  504. }
  505. // PublicList
  506. // @Title 获取公共列表
  507. // @Description 获取公共列表接口
  508. // @Success 200 {object} models.RespGroupList
  509. // @router /public_list [get]
  510. func (this *BIDaShboardController) PublicList() {
  511. br := new(models.BaseResponse).Init()
  512. defer func() {
  513. this.Data["json"] = br
  514. this.ServeJSON()
  515. }()
  516. resp := make([]*bi_dashboard.RespPublicGroupListItem, 0)
  517. // 获取公共看板列表
  518. publicCond := ` AND state = 6 `
  519. publicPars := make([]interface{}, 0)
  520. publicList, err := bi_dashboard.GetBiDashboardList(publicCond, publicPars)
  521. if err != nil {
  522. err = errors.New("我的看板列表查询出错:" + err.Error())
  523. return
  524. }
  525. //dashboardMap := make(map[int]*bi_dashboard.BiDashboard)
  526. adminIdList := make([]int, 0) //需要查询的创建人admin_id列表集合
  527. adminIdMap := make(map[int]int) //需要查询的创建人admin_id集合,用来去重的,避免重复id
  528. publicAdminIdList := make([]int, 0)
  529. publicDashboardListMap := make(map[int][]*bi_dashboard.BiDashboard)
  530. publicDashboardClassifyIdMap := make(map[int]int)
  531. for _, v := range publicList {
  532. publicDashboardList, ok := publicDashboardListMap[v.SysAdminId]
  533. if !ok {
  534. publicDashboardList = make([]*bi_dashboard.BiDashboard, 0)
  535. publicAdminIdList = append(publicAdminIdList, v.SysAdminId)
  536. if _, ok := adminIdMap[v.SysAdminId]; !ok {
  537. adminIdList = append(adminIdList, v.SysAdminId) //需要查询的创建人admin_id列表集合
  538. adminIdMap[v.SysAdminId] = v.SysAdminId //需要查询的创建人admin_id集合,用来去重的,避免重复id
  539. }
  540. }
  541. tmp := &bi_dashboard.BiDashboard{
  542. BiDashboardId: v.BiDashboardId,
  543. BiDashboardClassifyId: v.BiDashboardClassifyId,
  544. BiDashboardName: v.BiDashboardName,
  545. CreateTime: v.CreateTime,
  546. ModifyTime: v.ModifyTime,
  547. Sort: v.Sort,
  548. State: v.State,
  549. SysAdminId: v.SysAdminId,
  550. SysAdminName: v.SysAdminName,
  551. }
  552. publicDashboardList = append(publicDashboardList, tmp)
  553. publicDashboardListMap[v.SysAdminId] = publicDashboardList
  554. publicDashboardClassifyIdMap[v.BiDashboardClassifyId] = v.BiDashboardClassifyId
  555. }
  556. // 创建人信息
  557. systemAdminMap := make(map[int]*system.Admin)
  558. systemAdminList, err := system.GetAdminListByIdList(adminIdList)
  559. if err != nil {
  560. return
  561. }
  562. for _, v := range systemAdminList {
  563. systemAdminMap[v.AdminId] = v
  564. }
  565. for _, v := range adminIdList {
  566. systemAdmin, ok := systemAdminMap[v]
  567. if !ok {
  568. continue
  569. }
  570. // 看板 列表信息
  571. respGroupNameListItemList, ok := publicDashboardListMap[v]
  572. if !ok {
  573. respGroupNameListItemList = make([]*bi_dashboard.BiDashboard, 0)
  574. }
  575. // ppt 分组信息
  576. tmpRespGroupListItem := &bi_dashboard.RespPublicGroupListItem{
  577. GroupId: int64(systemAdmin.AdminId),
  578. GroupName: systemAdmin.RealName,
  579. AdminId: systemAdmin.AdminId,
  580. DashboardList: make([]*bi_dashboard.BiDashboard, 0),
  581. }
  582. for _, vv := range respGroupNameListItemList {
  583. tmpRespGroupListItem.DashboardList = append(tmpRespGroupListItem.DashboardList, vv)
  584. }
  585. resp = append(resp, tmpRespGroupListItem)
  586. }
  587. br.Ret = 200
  588. br.Success = true
  589. br.Msg = "查询成功"
  590. br.Data = resp
  591. return
  592. }
  593. // AddDashboardClassify
  594. // @Title 新增看板分类
  595. // @Description 新增看板分类接口
  596. // @Param request body bi_dashboard.AddDashboardClassifyReq true "type json string"
  597. // @Success 200 Ret=200 新增成功
  598. // @router /classify/add [post]
  599. func (this *BIDaShboardController) AddDashboardClassify() {
  600. br := new(models.BaseResponse).Init()
  601. defer func() {
  602. this.Data["json"] = br
  603. this.ServeJSON()
  604. }()
  605. var req bi_dashboard.AddDashboardClassifyReq
  606. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  607. if err != nil {
  608. br.Msg = "参数解析异常!"
  609. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  610. return
  611. }
  612. if req.ClassifyName == "" {
  613. br.Msg = "名称不能为空"
  614. return
  615. }
  616. maxSort, err := bi_dashboard.GetBiDashboardClassifyMaxSort()
  617. if err != nil {
  618. br.Msg = "获取最大排序值失败"
  619. br.ErrMsg = "获取最大排序值失败,Err:" + err.Error()
  620. return
  621. }
  622. count, err := bi_dashboard.GetBiDashboardClassifyByName(req.ClassifyName)
  623. if err != nil {
  624. br.Msg = "获取分类名称失败"
  625. br.ErrMsg = "获取分类名称失败,Err:" + err.Error()
  626. return
  627. }
  628. if count > 0 {
  629. br.Msg = "分类名称已存在"
  630. return
  631. }
  632. item := &bi_dashboard.BiDashboardClassify{
  633. BiDashboardClassifyName: req.ClassifyName,
  634. Sort: maxSort + 1,
  635. CreateTime: time.Now(),
  636. ModifyTime: time.Now(),
  637. }
  638. _, e := bi_dashboard.AddBiDashboardClassify(item)
  639. if e != nil {
  640. err = e
  641. br.Msg = "新增失败"
  642. br.ErrMsg = "新增失败,Err:" + e.Error()
  643. return
  644. }
  645. br.Ret = 200
  646. br.Success = true
  647. br.Msg = "新增成功"
  648. //br.Data =
  649. }
  650. // EditDashboardClassify
  651. // @Title 编辑看板分类
  652. // @Description 编辑看板分类接口
  653. // @Param request body bi_dashboard.EditDashboardReq true "type json string"
  654. // @Success 200 Ret=200 编辑成功
  655. // @router /classify/edit [post]
  656. func (this *BIDaShboardController) EditDashboardClassify() {
  657. br := new(models.BaseResponse).Init()
  658. defer func() {
  659. this.Data["json"] = br
  660. this.ServeJSON()
  661. }()
  662. var req bi_dashboard.EditDashboardClassifyReq
  663. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  664. if err != nil {
  665. br.Msg = "参数解析异常!"
  666. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  667. return
  668. }
  669. if req.ClassifyName == "" {
  670. br.Msg = "标题不能为空"
  671. return
  672. }
  673. if req.BiDashboardClassifyId <= 0 {
  674. br.Msg = "参数有误"
  675. br.ErrMsg = fmt.Sprintf("参数有误, BiDashboardClassifyId: %d", req.BiDashboardClassifyId)
  676. return
  677. }
  678. item, err := bi_dashboard.GetBiDashboardClassifyById(req.BiDashboardClassifyId)
  679. if err != nil && !utils.IsErrNoRow(err) {
  680. br.Msg = "获取数据异常!"
  681. br.ErrMsg = "获取数据异常,Err:" + err.Error()
  682. return
  683. }
  684. // 修改
  685. item.BiDashboardClassifyName = req.ClassifyName
  686. item.ModifyTime = time.Now()
  687. err = bi_dashboard.EditDashboardClassify(item)
  688. if err != nil {
  689. br.Msg = "编辑失败"
  690. br.ErrMsg = "编辑失败,Err:" + err.Error()
  691. return
  692. }
  693. br.Ret = 200
  694. br.Success = true
  695. br.Msg = "编辑成功"
  696. br.IsAddLog = true
  697. }
  698. // Grant
  699. // @Title 分配看板权限
  700. // @Description 分配看板权限接口
  701. // @Param request body models.GrantPptReq true "type json string"
  702. // @Success 200 Ret=200 分配成功
  703. // @router /grant [post]
  704. func (this *BIDaShboardController) Grant() {
  705. br := new(models.BaseResponse).Init()
  706. defer func() {
  707. this.Data["json"] = br
  708. this.ServeJSON()
  709. }()
  710. var req bi_dashboard.GrantDashboardReq
  711. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  712. if err != nil {
  713. br.Msg = "参数解析异常!"
  714. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  715. return
  716. }
  717. if req.AdminIdStr == "" {
  718. br.Msg = "参数错误"
  719. return
  720. }
  721. if req.BiDashboardId <= 0 {
  722. br.Msg = "参数错误"
  723. return
  724. }
  725. dashboardItem, err := bi_dashboard.GetDashboardById(req.BiDashboardId)
  726. if err != nil {
  727. err = errors.New("我的看板列表查询出错:" + err.Error())
  728. br.Msg = "我的看板列表查询出错"
  729. br.ErrMsg = err.Error()
  730. return
  731. }
  732. if dashboardItem.SysAdminId != this.SysUser.AdminId {
  733. br.Msg = "无权配置"
  734. return
  735. }
  736. list := make([]*bi_dashboard.BiDashboardGrant, 0)
  737. grantAdminIdStrList := strings.Split(req.AdminIdStr, ",")
  738. lenGrantAdminIdStrList := len(grantAdminIdStrList) //指定用户的人数
  739. for _, v := range grantAdminIdStrList {
  740. grantAdminId, tmpErr := strconv.Atoi(v)
  741. if tmpErr != nil {
  742. br.Msg = "参数有误"
  743. br.ErrMsg = fmt.Sprintf("参数有误,Err:%s", tmpErr.Error())
  744. return
  745. }
  746. //如果只选择了自己作为指定的人,那么就提示他报错。如果多人,那么就过滤自己
  747. if grantAdminId == this.SysUser.AdminId {
  748. if lenGrantAdminIdStrList == 1 {
  749. br.Msg = "不能指定自己为权限用户"
  750. br.ErrMsg = fmt.Sprintf("参数有误,Err:%s", tmpErr.Error())
  751. return
  752. }
  753. continue
  754. }
  755. tmpV := &bi_dashboard.BiDashboardGrant{
  756. BiDashboardId: req.BiDashboardId,
  757. GrantAdminId: grantAdminId,
  758. CreateTime: time.Now(),
  759. }
  760. list = append(list, tmpV)
  761. }
  762. if len(list) <= 0 {
  763. br.Msg = "参数有误"
  764. br.ErrMsg = fmt.Sprintf("参数有误,Err:%s", "指定用户为空")
  765. return
  766. }
  767. err = bi_dashboard.MultiAddDashboardGrant(req.BiDashboardId, list)
  768. if err != nil {
  769. br.Msg = "分配失败"
  770. br.ErrMsg = fmt.Sprintf("分配失败,Err:%s", err.Error())
  771. return
  772. }
  773. br.Ret = 200
  774. br.Success = true
  775. br.IsAddLog = true
  776. br.Msg = "分配成功"
  777. }
  778. // Public
  779. // @Title
  780. // @Description 设置公共看板
  781. // @Param request body models.GrantPptReq true "type json string"
  782. // @Success 200 Ret=200 分配成功
  783. // @router /public [post]
  784. func (this *BIDaShboardController) Public() {
  785. br := new(models.BaseResponse).Init()
  786. defer func() {
  787. this.Data["json"] = br
  788. this.ServeJSON()
  789. }()
  790. var req bi_dashboard.PublicDashboardReq
  791. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  792. if err != nil {
  793. br.Msg = "参数解析异常!"
  794. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  795. return
  796. }
  797. item, err := bi_dashboard.GetDashboardById(req.BiDashboardId)
  798. if err != nil {
  799. br.Msg = "获取数据异常!"
  800. br.ErrMsg = "获取数据异常,Err:" + err.Error()
  801. return
  802. }
  803. item.State = 6
  804. err = bi_dashboard.EditDashboard(item)
  805. if err != nil {
  806. br.Msg = "编辑失败"
  807. br.ErrMsg = "编辑失败,Err:" + err.Error()
  808. return
  809. }
  810. br.Ret = 200
  811. br.Success = true
  812. br.IsAddLog = true
  813. br.Msg = "分配成功"
  814. }
  815. // GroupList
  816. // @Title 获取分类列表
  817. // @Description 获取分类列表接口
  818. // @Success 200 {object} models.RespGroupList
  819. // @router /classify/list [get]
  820. func (this *BIDaShboardController) ClassifyList() {
  821. br := new(models.BaseResponse).Init()
  822. defer func() {
  823. this.Data["json"] = br
  824. this.ServeJSON()
  825. }()
  826. classifyList, err := bi_dashboard.GetBiDashboardClassifyAllList()
  827. if err != nil {
  828. br.Msg = "查询失败"
  829. br.ErrMsg = "查询失败,Err:" + err.Error()
  830. return
  831. }
  832. br.Ret = 200
  833. br.Success = true
  834. br.Msg = "查询成功"
  835. br.Data = classifyList
  836. return
  837. }
  838. // CancelGrant
  839. // @Title 取消分配看板权限
  840. // @Description 取消分配看板权限
  841. // @Param request body bi_dashboard.DelDashboardReq true "type json string"
  842. // @Success 200 Ret=200 分配成功
  843. // @router /grant/cancel [post]
  844. func (this *BIDaShboardController) CancelGrant() {
  845. br := new(models.BaseResponse).Init()
  846. defer func() {
  847. this.Data["json"] = br
  848. this.ServeJSON()
  849. }()
  850. var req bi_dashboard.DelDashboardReq
  851. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  852. if err != nil {
  853. br.Msg = "参数解析异常!"
  854. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  855. return
  856. }
  857. if req.BiDashboardId <= 0 {
  858. br.Msg = "参数错误"
  859. return
  860. }
  861. item, err := bi_dashboard.GetDashboardById(req.BiDashboardId)
  862. if err != nil {
  863. br.Msg = "数据不存在"
  864. br.ErrMsg = "数据不存在,Err:" + err.Error()
  865. return
  866. }
  867. if item.SysAdminId != this.SysUser.AdminId {
  868. br.Msg = "无权配置"
  869. return
  870. }
  871. // 分配
  872. err = bi_dashboard.DeleteDashboardGrant(req.BiDashboardId)
  873. if err != nil {
  874. br.Msg = "取消失败"
  875. br.ErrMsg = "取消失败,Err:" + err.Error()
  876. return
  877. }
  878. br.Ret = 200
  879. br.Success = true
  880. br.IsAddLog = true
  881. br.Msg = "取消成功"
  882. }
  883. // GrantInfo
  884. // @Title 获取分配ppt权限详情
  885. // @Description 获取分配ppt权限详情接口
  886. // @Param BiDashboardId query int true "看板的id"
  887. // @Success 200 {object} models.GrantInfoResp
  888. // @router /grant/info [get]
  889. func (this *BIDaShboardController) GrantInfo() {
  890. br := new(models.BaseResponse).Init()
  891. defer func() {
  892. this.Data["json"] = br
  893. this.ServeJSON()
  894. }()
  895. biDashboardId, _ := this.GetInt("BiDashboardId")
  896. if biDashboardId <= 0 {
  897. br.Msg = "参数错误"
  898. return
  899. }
  900. item, err := bi_dashboard.GetDashboardById(biDashboardId)
  901. if err != nil {
  902. br.Msg = "数据不存在"
  903. br.ErrMsg = "数据不存在,Err:" + err.Error()
  904. return
  905. }
  906. if item.SysAdminId != this.SysUser.AdminId {
  907. br.Msg = "无权配置"
  908. return
  909. }
  910. grantInfoList, err := bi_dashboard.GetDashboardGrantInfo(biDashboardId)
  911. if err != nil {
  912. br.Msg = "信息获取失败"
  913. br.ErrMsg = "信息获取失败,Err:" + err.Error()
  914. return
  915. }
  916. if len(grantInfoList) <= 0 {
  917. br.Msg = "未配置"
  918. br.IsSendEmail = false
  919. br.Success = true
  920. br.Ret = 200
  921. return
  922. }
  923. var adminIdStr string
  924. adminIdsList := make([]string, 0)
  925. for _, v := range grantInfoList {
  926. adminIdsList = append(adminIdsList, strconv.Itoa(int(v.GrantAdminId)))
  927. }
  928. adminIdStr = strings.Join(adminIdsList, ",")
  929. br.Ret = 200
  930. br.Success = true
  931. br.Data = adminIdStr
  932. br.Msg = "查询成功"
  933. }
  934. // Public
  935. // @Title
  936. // @Description 撤销公共看板
  937. // @Param request body models.GrantPptReq true "type json string"
  938. // @Success 200 Ret=200 分配成功
  939. // @router /public/cancel [post]
  940. func (this *BIDaShboardController) PublicCancel() {
  941. br := new(models.BaseResponse).Init()
  942. defer func() {
  943. this.Data["json"] = br
  944. this.ServeJSON()
  945. }()
  946. var req bi_dashboard.DelDashboardReq
  947. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  948. if err != nil {
  949. br.Msg = "参数解析异常!"
  950. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  951. return
  952. }
  953. item, err := bi_dashboard.GetDashboardById(req.BiDashboardId)
  954. if err != nil && !utils.IsErrNoRow(err) {
  955. br.Msg = "获取数据异常!"
  956. br.ErrMsg = "获取数据异常,Err:" + err.Error()
  957. return
  958. }
  959. item.State = 1
  960. err = bi_dashboard.EditDashboard(item)
  961. if err != nil {
  962. br.Msg = "编辑失败"
  963. br.ErrMsg = "编辑失败,Err:" + err.Error()
  964. return
  965. }
  966. br.Ret = 200
  967. br.Success = true
  968. br.IsAddLog = true
  969. br.Msg = "撤销成功"
  970. }
  971. // GroupList
  972. // @Title 获取我的首页看板
  973. // @Description 获取我的首页看板接口
  974. // @Success 200 {object} models.RespGroupList
  975. // @router /home_page [get]
  976. func (this *BIDaShboardController) HomePage() {
  977. br := new(models.BaseResponse).Init()
  978. defer func() {
  979. this.Data["json"] = br
  980. this.ServeJSON()
  981. }()
  982. item, err := bi_dashboard.GetBiDashboardHomePageById(this.SysUser.AdminId)
  983. if err != nil && !utils.IsErrNoRow(err) {
  984. br.Msg = "数据不存在"
  985. br.ErrMsg = "数据不存在,Err:" + err.Error()
  986. return
  987. }
  988. publicCond := ` AND state = 6 AND bi_dashboard_classify_id > 0 `
  989. publicPars := []interface{}{this.SysUser.AdminId}
  990. publicList, err := bi_dashboard.GetBiDashboardList(publicCond, publicPars)
  991. if err != nil {
  992. err = errors.New("我的看板列表查询出错:" + err.Error())
  993. return
  994. }
  995. if item.BiDashboardHomePageId == 0 && len(publicList) > 0 {
  996. item = &bi_dashboard.BiDashboardHomePage{
  997. AdminId: publicList[0].SysAdminId,
  998. BiDashboardId: publicList[0].BiDashboardId,
  999. FromType: 3,
  1000. }
  1001. }
  1002. if item.BiDashboardId == 0 {
  1003. item = nil
  1004. }
  1005. br.Ret = 200
  1006. br.Success = true
  1007. br.Msg = "查询成功"
  1008. br.Data = item
  1009. return
  1010. }
  1011. // GroupList
  1012. // @Title 保存我的看板首页
  1013. // @Description保存我的看板首页接口
  1014. // @Success 200 {object} models.RespGroupList
  1015. // @router /home_page/save [post]
  1016. func (this *BIDaShboardController) HomePageSave() {
  1017. br := new(models.BaseResponse).Init()
  1018. defer func() {
  1019. this.Data["json"] = br
  1020. this.ServeJSON()
  1021. }()
  1022. var req bi_dashboard.SaveHomePageReq
  1023. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  1024. if err != nil {
  1025. br.Msg = "参数解析异常!"
  1026. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  1027. return
  1028. }
  1029. if req.BiDashboardId <= 0 {
  1030. br.Msg = "参数错误"
  1031. return
  1032. }
  1033. item, err := bi_dashboard.GetBiDashboardHomePageById(this.SysUser.AdminId)
  1034. if err != nil && !utils.IsErrNoRow(err) {
  1035. br.Msg = "首页看板查询失败"
  1036. br.ErrMsg = "首页看板查询失败,Err:" + err.Error()
  1037. return
  1038. }
  1039. homePageItem := &bi_dashboard.BiDashboardHomePage{
  1040. BiDashboardId: req.BiDashboardId,
  1041. AdminId: this.SysUser.AdminId,
  1042. CreateTime: time.Now(),
  1043. ModifyTime: time.Now(),
  1044. FromType: req.FromType,
  1045. }
  1046. if item.BiDashboardHomePageId > 0 {
  1047. homePageItem.BiDashboardHomePageId = item.BiDashboardHomePageId
  1048. }
  1049. err = bi_dashboard.SaveBiDashboardHomePage(homePageItem)
  1050. if err != nil {
  1051. br.Msg = "保存失败"
  1052. br.ErrMsg = "保存失败,Err:" + err.Error()
  1053. return
  1054. }
  1055. br.Ret = 200
  1056. br.Success = true
  1057. br.Msg = "保存成功"
  1058. return
  1059. }
  1060. // Editing
  1061. // @Title 标记/查询编辑状态
  1062. // @Description 标记/查询编辑状态
  1063. // @Param request body models.PPTEditingReq true "type json string"
  1064. // @Success 200 Ret=200 操作成功
  1065. // @router /editing [post]
  1066. func (this *BIDaShboardController) Editing() {
  1067. br := new(models.BaseResponse).Init()
  1068. defer func() {
  1069. if br.ErrMsg == "" {
  1070. br.IsSendEmail = false
  1071. }
  1072. this.Data["json"] = br
  1073. this.ServeJSON()
  1074. }()
  1075. sysUser := this.SysUser
  1076. if sysUser == nil {
  1077. br.Msg = "请登录"
  1078. br.ErrMsg = "请登录,SysUser Is Empty"
  1079. br.Ret = 408
  1080. return
  1081. }
  1082. var req bi_dashboard.BiDashboardEditingReq
  1083. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  1084. if err != nil {
  1085. br.Msg = "参数解析异常!"
  1086. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  1087. return
  1088. }
  1089. if req.BiDashboardId <= 0 {
  1090. br.Msg = "参数有误"
  1091. return
  1092. }
  1093. if req.Status < 0 {
  1094. br.Msg = "标记状态异常"
  1095. return
  1096. }
  1097. editor, e := services.UpdateBiDashboardEditing(req.BiDashboardId, req.Status, sysUser.AdminId, sysUser.RealName)
  1098. if e != nil {
  1099. br.Msg = "操作失败"
  1100. br.ErrMsg = "更新编辑状态失败, err: " + e.Error()
  1101. return
  1102. }
  1103. br.Data = editor
  1104. br.Ret = 200
  1105. br.Success = true
  1106. br.Msg = "操作成功"
  1107. }
  1108. // GroupList
  1109. // @Title 获取我拥有的图库表格菜单权限
  1110. // @Description 获取我拥有的图库表格菜单权限接口
  1111. // @Success 200 {object} models.RespGroupList
  1112. // @router /chart_excel_permission [get]
  1113. func (this *BIDaShboardController) ChartExcelPermission() {
  1114. br := new(models.BaseResponse).Init()
  1115. defer func() {
  1116. this.Data["json"] = br
  1117. this.ServeJSON()
  1118. }()
  1119. sysUser := this.SysUser
  1120. if sysUser == nil {
  1121. br.Msg = "请登录"
  1122. br.ErrMsg = "请登录,SysUser Is Empty"
  1123. br.Ret = 408
  1124. return
  1125. }
  1126. roleId := sysUser.RoleId
  1127. //roleId=1
  1128. if roleId <= 0 {
  1129. br.Msg = "参数错误"
  1130. return
  1131. }
  1132. roleIds := strconv.Itoa(roleId)
  1133. //查询账号绑定的其他角色
  1134. otherRoles, err := system.GetRoleIdsByAdminId(sysUser.AdminId)
  1135. if err != nil {
  1136. br.Msg = "获取其他角色失败"
  1137. br.ErrMsg = "获取其他角色失败,Err:" + err.Error()
  1138. return
  1139. }
  1140. if len(otherRoles) > 0 {
  1141. for _, v := range otherRoles {
  1142. roleIds += "," + strconv.Itoa(v.RoleId)
  1143. }
  1144. }
  1145. groupId := 0
  1146. if utils.RunMode == "release" {
  1147. groupId = 37
  1148. } else {
  1149. groupId = 61
  1150. }
  1151. //共享客户组下的用户
  1152. shareSellerMap := make(map[int]bool, 0)
  1153. subAdmins, err := system.GetAdminByGroupId(groupId)
  1154. if err != nil && !utils.IsErrNoRow(err) {
  1155. br.Msg = "获取销售失败"
  1156. br.ErrMsg = "获取销售失败,Err:" + err.Error()
  1157. return
  1158. }
  1159. for _, admin := range subAdmins {
  1160. shareSellerMap[admin.AdminId] = true
  1161. }
  1162. list, err := system.GetMenuByRoleIds(roleIds)
  1163. if err != nil {
  1164. br.Msg = "获取失败"
  1165. br.ErrMsg = "获取失败,Err:" + err.Error()
  1166. return
  1167. }
  1168. lenList := len(list)
  1169. menuList := make([]*system.SysMenuSimple, 0)
  1170. chartExcelTypes, e := models.GetBusinessConfByKey("ChartExcelType")
  1171. if e != nil {
  1172. br.Msg = "获取失败"
  1173. br.ErrMsg = "获取商家配置失败, Err: " + e.Error()
  1174. return
  1175. }
  1176. types := strings.Split(chartExcelTypes.ConfVal, ",")
  1177. typeMap := map[string]bool{}
  1178. for _, v := range types {
  1179. typeMap[v] = true
  1180. }
  1181. for i := 0; i < lenList; i++ {
  1182. item := list[i]
  1183. if !typeMap[item.LevelPath] && !typeMap[item.Path] {
  1184. continue
  1185. }
  1186. newItem := &system.SysMenuSimple{
  1187. MenuId: item.MenuId,
  1188. ParentId: item.ParentId,
  1189. Name: item.Name,
  1190. Sort: item.Sort,
  1191. Path: item.Path,
  1192. NameEn: item.NameEn,
  1193. }
  1194. if item.IsLevel == 1 {
  1195. newItem.Path = item.LevelPath
  1196. }
  1197. menuList = append(menuList, newItem)
  1198. }
  1199. br.Ret = 200
  1200. br.Success = true
  1201. br.Msg = "查询成功"
  1202. br.Data = menuList
  1203. return
  1204. }