|
@@ -407,6 +407,29 @@ func (bk *BookMarkController) BookMarkList(sourceType string) {
|
|
|
})
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+func (bk *BookMarkController) ChartList() {
|
|
|
+ controllers.Wrap(&bk.BaseController, func() (result *controllers.WrapData, err error) {
|
|
|
+ result = bk.InitWrapData("分页查询收藏列表失败")
|
|
|
+ userInfo := bk.Data["user"].(user.User)
|
|
|
+ var list []userService.BookMarkChart
|
|
|
+ list, err = getAllChartList(userInfo.Id)
|
|
|
+ if err != nil {
|
|
|
+ err = exception.NewWithException(exception.GetBookMarkListFailed, err.Error())
|
|
|
+ bk.FailedResult("分页查询收藏列表失败", result)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ bookMarks := new(page.PageResult)
|
|
|
+ bookMarks.Data = list
|
|
|
+ bk.SuccessResult("分页查询收藏列表成功", bookMarks, result)
|
|
|
+ return
|
|
|
+
|
|
|
+ })
|
|
|
+}
|
|
|
+
|
|
|
func getReportList(info page.PageInfo, templateUserId int, sourceIds []int) (list []userService.BookMarkReport, err error) {
|
|
|
sourceIds, err = userService.GetBookMarkPageRangeBySourceType(templateUserId, info, Report, sourceIds)
|
|
|
if err != nil {
|
|
@@ -483,3 +506,37 @@ func getChartList(info page.PageInfo, templateUserId int) (list []userService.Bo
|
|
|
wg.Wait()
|
|
|
return
|
|
|
}
|
|
|
+
|
|
|
+func getAllChartList(templateUserId int) (list []userService.BookMarkChart, err error) {
|
|
|
+ sourceIds, err := userService.GetBookMarkListBySourceType(templateUserId, Chart)
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ list = make([]userService.BookMarkChart, len(sourceIds))
|
|
|
+
|
|
|
+ var wg sync.WaitGroup
|
|
|
+ wg.Add(len(sourceIds))
|
|
|
+
|
|
|
+ var mu sync.Mutex
|
|
|
+
|
|
|
+ for index, sourceId := range sourceIds {
|
|
|
+ go func(index int, id int) {
|
|
|
+ defer wg.Done()
|
|
|
+ var data chartService.ChartInfo
|
|
|
+ data, err = chartService.GetChartById(id)
|
|
|
+ chartInfo := ConvertToBookMarkChart(data)
|
|
|
+ if err != nil {
|
|
|
+ logger.Error("获取数据失败: %v", err)
|
|
|
+ }
|
|
|
+
|
|
|
+ mu.Lock()
|
|
|
+ list[index] = chartInfo
|
|
|
+ mu.Unlock()
|
|
|
+ }(index, sourceId)
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ wg.Wait()
|
|
|
+ return
|
|
|
+}
|