my_chart.go 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576
  1. package chart
  2. import (
  3. "fmt"
  4. "github.com/gin-gonic/gin"
  5. "hongze/hongze_yb/controller/response"
  6. "hongze/hongze_yb/models/response/my_chart"
  7. chartInfoModel "hongze/hongze_yb/models/tables/chart_info"
  8. myChartModel "hongze/hongze_yb/models/tables/my_chart"
  9. "hongze/hongze_yb/models/tables/my_chart_classify"
  10. myChartClassifyMappingModel "hongze/hongze_yb/models/tables/my_chart_classify_mapping"
  11. myChartLogModel "hongze/hongze_yb/models/tables/my_chart_log"
  12. "hongze/hongze_yb/services/chart"
  13. "hongze/hongze_yb/services/user"
  14. "hongze/hongze_yb/utils"
  15. "io/ioutil"
  16. "strconv"
  17. "time"
  18. )
  19. // GetMyChartChassify 获取图表分类列表
  20. // @Tags 图库模块
  21. // @Summary 获取图表分类
  22. // @Description 获取图表分类列表
  23. // @Security ApiKeyAuth
  24. // @Param Authorization header string true "Bearer 31a165baebe6dec616b1f8f3207b4273"
  25. // @Accept json
  26. // @Product json
  27. // @Param Keywords query string false "分类名称关键词"
  28. // @Success 200 {object} my_chart.MyChartClassifyListResp
  29. // @failure 400 {string} string "分类列表获取失败"
  30. // @Router /chart/getChartChassify [get]
  31. func GetMyChartChassify(c *gin.Context) {
  32. userInfo := user.GetInfoByClaims(c)
  33. publicCondition := make(map[string]interface{})
  34. privateCondition := make(map[string]interface{})
  35. reqKeywords := c.DefaultQuery("Keywords", "")
  36. if reqKeywords != "" {
  37. publicCondition["my_chart_classify_name like"] = "%" + reqKeywords + "%"
  38. privateCondition["my_chart_classify_name like"] = "%" + reqKeywords + "%"
  39. }
  40. publicClassify, privateClassify, err := chart.GetUserChartClassifyListByCondition(userInfo, publicCondition, privateCondition)
  41. if err != nil {
  42. response.Fail("获取图表分类失败, Err:" + err.Error(), c)
  43. return
  44. }
  45. respData := &my_chart.MyChartClassifyListResp {
  46. PublicClassify: publicClassify,
  47. PrivateClassify: privateClassify,
  48. }
  49. response.OkData("获取成功", respData, c)
  50. }
  51. // GetMyChartList 获取图表列表
  52. // @Tags 图库模块
  53. // @Summary 获取图表列表
  54. // @Description 获取图表列表
  55. // @Security ApiKeyAuth
  56. // @Param Authorization header string true "Bearer 31a165baebe6dec616b1f8f3207b4273"
  57. // @Accept json
  58. // @Product json
  59. // @Param Keywords query string false "图表名称关键词"
  60. // @Param ClassifyId query string false "图表分类ID"
  61. // @Param Page query int false "当前页页码,从1开始"
  62. // @Param Limit query int false "每页数据量"
  63. // @Success 200 {object} []my_chart.MyChartList
  64. // @failure 400 {string} string "图库列表获取失败"
  65. // @Router /chart/getChartList [get]
  66. func GetMyChartList(c *gin.Context) {
  67. userInfo := user.GetInfoByClaims(c)
  68. // 筛选
  69. var condition string
  70. var pars []interface{}
  71. reqKeywords := c.DefaultQuery("Keywords", "")
  72. reqClassifyId := c.DefaultQuery("ClassifyId", "")
  73. if reqClassifyId == "" && reqKeywords == "" {
  74. // 默认展示第一个最小分类下的图表
  75. publicCondition := make(map[string]interface{})
  76. privateCondition := make(map[string]interface{})
  77. publicClassify, privateClassify, err := chart.GetUserChartClassifyListByCondition(userInfo, publicCondition, privateCondition)
  78. if err != nil {
  79. response.FailMsg("获取失败", "获取图表分类信息失败, Err:" + err.Error(), c)
  80. return
  81. }
  82. // 内部员工默认取自己的第一个分类
  83. classifyId := 0
  84. if len(privateClassify) > 0 {
  85. classifyId = privateClassify[0].MyChartClassifyId
  86. } else {
  87. if len(publicClassify) > 0 {
  88. classifyId = publicClassify[0].MyChartClassifyId
  89. }
  90. }
  91. condition += " AND d.my_chart_classify_id = ?"
  92. pars = append(pars, classifyId)
  93. } else if reqKeywords != "" {
  94. // 关键词
  95. condition += " AND b.chart_name LIKE ?"
  96. pars = append(pars, "%" + reqKeywords + "%")
  97. } else {
  98. // 指定分类
  99. condition += " AND d.my_chart_classify_id = ?"
  100. pars = append(pars, reqClassifyId)
  101. }
  102. // 分页
  103. page, _ := strconv.Atoi(c.Query("Page"))
  104. limit, _ := strconv.Atoi(c.Query("Limit"))
  105. if page == 0 {
  106. page = 1
  107. }
  108. if limit == 0 {
  109. limit = 10
  110. }
  111. list, err := myChartModel.GetMyChartListByCondition(condition, pars, page, limit)
  112. if err != nil {
  113. response.FailMsg("获取失败", "获取图库列表失败, Err:" + err.Error(), c)
  114. return
  115. }
  116. response.OkData("获取成功", list, c)
  117. }
  118. // MoveMyChart 移动我的图表
  119. // @Tags 图库模块
  120. // @Summary 移动我的图表
  121. // @Description 移动我的图表
  122. // @Security ApiKeyAuth
  123. // @Param Authorization header string true "Bearer 31a165baebe6dec616b1f8f3207b4273"
  124. // @Accept json
  125. // @Product json
  126. // @Param data body myChartModel.MoveMyChartReq true "请求参数"
  127. // @Success 200 {string} string "操作成功"
  128. // @failure 400 {string} string "操作失败"
  129. // @Router /my_chart/moveMyChart [post]
  130. func MoveMyChart(c *gin.Context) {
  131. // 参数校验
  132. var req myChartModel.MoveMyChartReq
  133. if c.ShouldBind(&req) != nil {
  134. response.Fail("参数异常", c)
  135. return
  136. }
  137. if req.MyChartId == 0 {
  138. response.Fail("图表ID有误", c)
  139. return
  140. }
  141. if req.MyChartClassifyId == 0 {
  142. response.Fail("图表分类ID有误", c)
  143. return
  144. }
  145. // 操作权限校验
  146. userInfo := user.GetInfoByClaims(c)
  147. ok, adminInfo, err := user.GetAdminByUserInfo(userInfo)
  148. if err != nil {
  149. response.Fail("操作人信息有误", c)
  150. return
  151. }
  152. if !ok {
  153. response.Fail("非内部人员无权进行操作", c)
  154. return
  155. }
  156. adminId := int(adminInfo.AdminID)
  157. myChassify, err := my_chart_classify.GetClassifyById(req.MyChartClassifyId)
  158. if err != nil {
  159. if err == utils.ErrNoRow {
  160. response.FailMsg("操作失败", "图表分类信息有误, Err:" + err.Error(), c)
  161. return
  162. }
  163. response.FailMsg("操作失败", "获取图表分类信息失败, Err:" + err.Error(), c)
  164. return
  165. }
  166. if myChassify.AdminID != adminId {
  167. response.Fail("无权移动该图表", c)
  168. return
  169. }
  170. // 图表排序
  171. step := float64(65536)
  172. var newSort float64
  173. if req.PrevMyChartId <= 0 {
  174. firstMapItem, err := myChartClassifyMappingModel.GetMyChartSort(adminId, req.MyChartClassifyId, 0)
  175. if err != nil {
  176. response.FailMsg("操作失败", "获取图表排序失败4001, Err:" + err.Error(), c)
  177. return
  178. }
  179. if firstMapItem.Sort <= 0 {
  180. firstSort := step / float64(2)
  181. err = myChartClassifyMappingModel.MyChartMove(firstSort, adminId, firstMapItem.MyChartId, firstMapItem.MyChartClassifyId)
  182. if err != nil {
  183. response.FailMsg("操作失败", "移动失败4001, Err:" + err.Error(), c)
  184. return
  185. }
  186. newSort = step / float64(4)
  187. } else {
  188. newSort = firstMapItem.Sort / float64(2)
  189. }
  190. } else if req.NextMyChartId <= 0 {
  191. latestMapItem, err := myChartClassifyMappingModel.GetMyChartSort(adminId, req.MyChartClassifyId, 1)
  192. if err != nil {
  193. response.FailMsg("操作失败", "获取图表排序失败4002, Err:" + err.Error(), c)
  194. return
  195. }
  196. if latestMapItem.Sort <= 0 {
  197. latestSort := step / float64(2)
  198. err = myChartClassifyMappingModel.MyChartMove(latestSort, adminId, latestMapItem.MyChartId, latestMapItem.MyChartClassifyId)
  199. if err != nil {
  200. response.FailMsg("操作失败", "移动失败4002, Err:" + err.Error(), c)
  201. return
  202. }
  203. newSort = step / float64(4)
  204. } else {
  205. newSort = latestMapItem.Sort + (step / float64(2)) - 1
  206. }
  207. } else {
  208. preMapItem, err := myChartClassifyMappingModel.GetMyChartClassifyMapping(adminId, req.PrevMyChartId, req.MyChartClassifyId)
  209. if err != nil {
  210. response.FailMsg("操作失败", "获取上级图表关联信息失败, Err:" + err.Error(), c)
  211. return
  212. }
  213. nextMapItem, err := myChartClassifyMappingModel.GetMyChartClassifyMapping(adminId, req.NextMyChartId, req.MyChartClassifyId)
  214. if err != nil {
  215. response.FailMsg("操作失败", "获取下级图表关联信息失败, Err:" + err.Error(), c)
  216. return
  217. }
  218. newSort = (preMapItem.Sort + nextMapItem.Sort) / 2
  219. }
  220. if newSort >= 0 {
  221. err = myChartClassifyMappingModel.MyChartMove(newSort, adminId, req.MyChartId, req.MyChartClassifyId)
  222. if err != nil {
  223. response.FailMsg("操作失败", "移动失败4003, Err:" + err.Error(), c)
  224. return
  225. }
  226. }
  227. // 新增操作日志
  228. {
  229. bodyBytes, _ := ioutil.ReadAll(c.Request.Body)
  230. requestBodyStr := string(bodyBytes)
  231. edbLog := new(myChartLogModel.MyChartLog)
  232. edbLog.MyChartId = 0
  233. edbLog.ChartInfoId = 0
  234. edbLog.SysUserId = adminId
  235. edbLog.SysUserRealName = adminInfo.RealName
  236. edbLog.CreateTime = time.Now()
  237. edbLog.Content = requestBodyStr
  238. edbLog.Status = "移动我的图表"
  239. edbLog.Method = c.Request.URL.String()
  240. go edbLog.Create()
  241. }
  242. response.Ok("操作成功", c)
  243. }
  244. // MoveMyChart 移动我的图表分类
  245. // @Tags 图库模块
  246. // @Summary 移动我的图表分类
  247. // @Description 移动我的图表分类
  248. // @Security ApiKeyAuth
  249. // @Param Authorization header string true "Bearer 31a165baebe6dec616b1f8f3207b4273"
  250. // @Accept json
  251. // @Product json
  252. // @Param data body myChartModel.MoveMyChartClassifyReq true "请求参数"
  253. // @Success 200 {string} string "操作成功"
  254. // @failure 400 {string} string "操作失败"
  255. // @Router /my_chart/moveMyChartClassify [post]
  256. func MoveMyChartClassify(c *gin.Context) {
  257. // 参数校验
  258. var req myChartModel.MoveMyChartClassifyReq
  259. if c.ShouldBind(&req) != nil {
  260. response.Fail("参数异常", c)
  261. return
  262. }
  263. if req.MyChartClassifyId == 0 {
  264. response.Fail("图表分类ID有误", c)
  265. return
  266. }
  267. // 操作权限校验
  268. userInfo := user.GetInfoByClaims(c)
  269. ok, adminInfo, err := user.GetAdminByUserInfo(userInfo)
  270. if err != nil {
  271. response.Fail("操作人信息有误", c)
  272. return
  273. }
  274. if !ok {
  275. response.Fail("非内部人员无权进行操作", c)
  276. return
  277. }
  278. adminId := int(adminInfo.AdminID)
  279. myChassify, err := my_chart_classify.GetClassifyById(req.MyChartClassifyId)
  280. if err != nil {
  281. if err == utils.ErrNoRow {
  282. response.FailMsg("操作失败", "该图表分类信息有误, Err:", c)
  283. return
  284. }
  285. response.FailMsg("操作失败", "获取图表信息失败" + err.Error(), c)
  286. return
  287. }
  288. if myChassify.AdminID != adminId {
  289. response.Fail("无权移动该图表", c)
  290. return
  291. }
  292. // 移动分类
  293. updateCol := make([]string, 0)
  294. if req.PrevClassifyId > 0 {
  295. prevClassify, err := my_chart_classify.GetClassifyByIdAndAdminId(adminId, req.PrevClassifyId)
  296. if err != nil {
  297. response.FailMsg("操作失败", "移动失败, 获取上一个兄弟节点分类信息失败, Err:" + err.Error(), c)
  298. return
  299. }
  300. // 如果是移动在两个兄弟节点之间
  301. if req.NextClassifyId > 0 {
  302. // 下一个兄弟节点
  303. nextClassify, err := my_chart_classify.GetClassifyByIdAndAdminId(adminId, req.NextClassifyId)
  304. if err != nil {
  305. response.FailMsg("操作失败", "移动失败, 获取下一个兄弟节点分类信息失败, Err:" + err.Error(), c)
  306. return
  307. }
  308. // 如果上一个兄弟与下一个兄弟的排序权重是一致的,那么需要将下一个兄弟(以及下个兄弟的同样排序权重)的排序权重+2,自己变成上一个兄弟的排序权重+1
  309. if prevClassify.Sort == nextClassify.Sort || prevClassify.Sort == myChassify.Sort {
  310. // 变更兄弟节点的排序
  311. updateSortStr := `sort + 2`
  312. _ = my_chart_classify.UpdateMyChartClassifySortByClassifyId(adminId, prevClassify.MyChartClassifyId, prevClassify.Sort, updateSortStr)
  313. } else {
  314. // 如果下一个兄弟的排序权重正好是上个兄弟节点的下一层,那么需要再加一层了
  315. if nextClassify.Sort-prevClassify.Sort == 1 {
  316. // 变更兄弟节点的排序
  317. updateSortStr := `sort + 1`
  318. _ = my_chart_classify.UpdateMyChartClassifySortByClassifyId(adminId, 0, prevClassify.Sort, updateSortStr)
  319. }
  320. }
  321. }
  322. myChassify.Sort = prevClassify.Sort + 1
  323. myChassify.ModifyTime = time.Now()
  324. updateCol = append(updateCol, "Sort", "ModifyTime")
  325. } else {
  326. firstClassify, err := my_chart_classify.GetFirstClassifyByAdminId(adminId)
  327. if err != nil && err != utils.ErrNoRow {
  328. response.FailMsg("操作失败", "移动失败, 获取获取当前账号下的排序第一条的分类信息失败, Err:" + err.Error(), c)
  329. return
  330. }
  331. //如果该分类下存在其他分类,且第一个其他分类的排序等于0,那么需要调整排序
  332. if firstClassify != nil && firstClassify.Sort == 0 {
  333. updateSortStr := ` sort + 1 `
  334. _ = my_chart_classify.UpdateMyChartClassifySortByClassifyId(adminId, firstClassify.MyChartClassifyId-1, 0, updateSortStr)
  335. }
  336. myChassify.Sort = 0 //那就是排在第一位
  337. myChassify.ModifyTime = time.Now()
  338. updateCol = append(updateCol, "Sort", "ModifyTime")
  339. }
  340. // 更新
  341. if len(updateCol) > 0 {
  342. err = my_chart_classify.UpdateClassifySort(adminId, myChassify.MyChartClassifyId, myChassify.Sort, myChassify.ModifyTime)
  343. if err != nil {
  344. response.FailMsg("操作失败", "更新图表分类排序失败, Err:" + err.Error(), c)
  345. return
  346. }
  347. }
  348. //新增操作日志
  349. {
  350. bodyBytes, _ := ioutil.ReadAll(c.Request.Body)
  351. requestBodyStr := string(bodyBytes)
  352. edbLog := new(myChartLogModel.MyChartLog)
  353. edbLog.MyChartId = 0
  354. edbLog.ChartInfoId = 0
  355. edbLog.SysUserId = adminId
  356. edbLog.SysUserRealName = adminInfo.RealName
  357. edbLog.CreateTime = time.Now()
  358. edbLog.Content = requestBodyStr
  359. edbLog.Status = "移动分类"
  360. edbLog.Method = c.Request.URL.String()
  361. go edbLog.Create()
  362. }
  363. response.Ok("操作成功", c)
  364. }
  365. // GetChartBeforeAndNext 获取当前图表上一张及下一张信息
  366. // @Tags 图库模块
  367. // @Summary 获取当前图表上一张及下一张信息
  368. // @Description 获取当前图表上一张及下一张信息
  369. // @Security ApiKeyAuth
  370. // @Param Authorization header string true "Bearer 31a165baebe6dec616b1f8f3207b4273"
  371. // @Accept json
  372. // @Product json
  373. // @Param MyChartId query string false "我的图表ID"
  374. // @Param MyChartClassifyId query string false "我的图表分类ID"
  375. // @Success 200 {object} chartInfoModel.ChartBeforeNext
  376. // @failure 400 {string} string "获取失败"
  377. // @Router /my_chart/getChartBeforeAndNext [get]
  378. func GetChartBeforeAndNext(c *gin.Context) {
  379. // 参数校验
  380. reqMyChartId := c.DefaultQuery("MyChartId", "")
  381. if reqMyChartId == "" {
  382. response.Fail("参数有误:图表ID", c)
  383. return
  384. }
  385. myChartId, _ := strconv.Atoi(reqMyChartId)
  386. myChartClassifyId := c.DefaultQuery("MyChartClassifyId", "")
  387. if myChartClassifyId == "" {
  388. response.Fail("参数有误:图表分类ID", c)
  389. return
  390. }
  391. //myChartClassifyId, _ := strconv.Atoi(reqMyChartClasifyId)
  392. myChartInfo, err := myChartModel.GetMyChartById(myChartId, myChartClassifyId)
  393. if err != nil {
  394. if err == utils.ErrNoRow {
  395. response.Fail("图表已被删除,请刷新当前页面", c)
  396. return
  397. }
  398. response.FailMsg("获取失败", "获取我的图表信息失败, Err:" + err.Error(), c)
  399. return
  400. }
  401. // 1.获取当前图表所在分类的所有图表信息
  402. //myChartClassifyId := myChartInfo.MyChartClassifyId
  403. myChartList, err := myChartClassifyMappingModel.GetMyChartSortInfoList(myChartClassifyId, 2)
  404. // 找出当前图表前一张及后一张,当前图为最前一张或最后一张时需要取其他分类的图
  405. var currentIndex int
  406. lastIndex := len(myChartList) - 1
  407. for index, item := range myChartList {
  408. if myChartInfo.MyChartId == item.MyChartId {
  409. currentIndex = index
  410. break
  411. }
  412. }
  413. var beforeChart, afterChart *myChartClassifyMappingModel.MyChartSortInfo
  414. beforeIndex := currentIndex - 1
  415. fmt.Println("currentIndex:", currentIndex)
  416. fmt.Println("beforeIndex:", beforeIndex)
  417. if beforeIndex >= 0 {
  418. // 存在同分类上一张
  419. beforeChart = myChartList[beforeIndex]
  420. }
  421. afterIndex := currentIndex + 1
  422. if afterIndex <= lastIndex {
  423. // 存在同分类下一张
  424. afterChart = myChartList[afterIndex]
  425. }
  426. // 检索其他分类
  427. if beforeIndex < 0 || afterIndex > lastIndex {
  428. // 获取当前用户有权限查看的图表分类
  429. userInfo := user.GetInfoByClaims(c)
  430. publicCondition := make(map[string]interface{})
  431. privateCondition := make(map[string]interface{})
  432. publicClassify, privateClassify, err := chart.GetUserChartClassifyListByCondition(userInfo, publicCondition, privateCondition)
  433. if err != nil {
  434. response.FailMsg("获取失败", "获取图表分类失败, Err:" + err.Error(), c)
  435. return
  436. }
  437. // 合并公共及私有分类并去重
  438. var classifyList []*my_chart_classify.MyChartClassify
  439. var myChartClassifyIds []int
  440. for i := 0; i < len(publicClassify); i++ {
  441. exist := false
  442. for _, cid := range myChartClassifyIds{
  443. if publicClassify[i].MyChartClassifyId == cid {
  444. exist = true
  445. break
  446. }
  447. }
  448. if exist {
  449. continue
  450. } else {
  451. classifyList = append(classifyList, publicClassify[i])
  452. }
  453. }
  454. for i := 0; i < len(privateClassify); i++ {
  455. exist := false
  456. for _, cid := range myChartClassifyIds{
  457. if privateClassify[i].MyChartClassifyId == cid {
  458. exist = true
  459. break
  460. }
  461. }
  462. if exist {
  463. continue
  464. } else {
  465. classifyList = append(classifyList, privateClassify[i])
  466. }
  467. }
  468. // 获取当前图表分类在所有分类中的位置
  469. var currentClassifyIndex int
  470. for indexClassify, itemClassify := range classifyList {
  471. //fmt.Println("classifyList:", *itemClassify)
  472. //fmt.Println("classifyList-myChartClassifyId:", myChartClassifyId)
  473. fmt.Println("classifyList-MyChartClassifyId:", itemClassify.MyChartClassifyId)
  474. itemClassifyId := strconv.Itoa(itemClassify.MyChartClassifyId)
  475. //if strings.Contains(myChartClassifyId, itemClassifyId) {
  476. if myChartClassifyId == itemClassifyId {
  477. currentClassifyIndex = indexClassify
  478. break
  479. }
  480. }
  481. lastClassifyIndex := len(classifyList) - 1
  482. // 若图表为分类第一张,则取上一个分类最后一张作为上一张返回
  483. fmt.Println("currentClassifyIndex:", currentClassifyIndex)
  484. beforeClassifyIndex := currentClassifyIndex - 1
  485. fmt.Println("len-classifyList", len(classifyList))
  486. if beforeIndex < 0 && len(classifyList) > 0 && beforeClassifyIndex >= 0 {
  487. fmt.Println("获取上一个分类图表--start")
  488. beforeClassifyIdStr := strconv.Itoa(classifyList[beforeClassifyIndex].MyChartClassifyId)
  489. beforeClassifyChartList, tempErr := myChartClassifyMappingModel.GetMyChartSortInfoList(beforeClassifyIdStr, 1)
  490. if tempErr != nil {
  491. response.FailMsg("获取失败", "获取上一个分类图表信息失败, Err:" + tempErr.Error(), c)
  492. return
  493. }
  494. if len(beforeClassifyChartList) > 0 {
  495. beforeChart = beforeClassifyChartList[0]
  496. }
  497. }
  498. // 若图表为分类最后一张,则取下一个分类第一张作为下一张返回
  499. afterClassifyIndex := currentClassifyIndex + 1
  500. if afterIndex > lastIndex && len(classifyList) > 0 && afterClassifyIndex <= lastClassifyIndex {
  501. afterClassifyIdStr := strconv.Itoa(classifyList[afterClassifyIndex].MyChartClassifyId)
  502. afterClassifyChartList, tempErr := myChartClassifyMappingModel.GetMyChartSortInfoList(afterClassifyIdStr, 2)
  503. if tempErr != nil {
  504. response.FailMsg("获取失败", "获取下一个分类图表信息失败, Err:" + tempErr.Error(), c)
  505. return
  506. }
  507. if len(afterClassifyChartList) > 0 {
  508. afterChart = afterClassifyChartList[0]
  509. }
  510. }
  511. }
  512. var beforeResp, afterResp chartInfoModel.ChartSortInfo
  513. if beforeChart != nil {
  514. beforeResp.MyChartId = beforeChart.MyChartId
  515. beforeResp.MyChartClassifyId = beforeChart.MyChartClassifyId
  516. beforeResp.MyChartClassifyName = beforeChart.MyChartClassifyName
  517. beforeResp.Sort = int(beforeChart.Sort)
  518. beforeResp.UniqueCode = beforeChart.UniqueCode
  519. beforeResp.ChartInfoId = beforeChart.ChartInfoId
  520. if beforeIndex < 0 {
  521. beforeResp.Switch = 1
  522. }
  523. }
  524. if afterChart != nil {
  525. afterResp.MyChartId = afterChart.MyChartId
  526. afterResp.MyChartClassifyId = afterChart.MyChartClassifyId
  527. afterResp.MyChartClassifyName = afterChart.MyChartClassifyName
  528. afterResp.Sort = int(afterChart.Sort)
  529. afterResp.UniqueCode = afterChart.UniqueCode
  530. afterResp.ChartInfoId = afterChart.ChartInfoId
  531. if afterIndex > lastIndex {
  532. afterResp.Switch = 1
  533. }
  534. }
  535. resp := chartInfoModel.ChartBeforeNext{
  536. PrevChart: beforeResp,
  537. NextChart: afterResp,
  538. }
  539. response.OkData("获取成功", resp, c)
  540. }