|
@@ -10,6 +10,7 @@ import (
|
|
|
"hongze/hongze_yb/models/tables/company_product"
|
|
|
"hongze/hongze_yb/models/tables/yb_config"
|
|
|
"hongze/hongze_yb/models/tables/yb_my_chart"
|
|
|
+ "hongze/hongze_yb/models/tables/yb_my_chart_classify"
|
|
|
"hongze/hongze_yb/services"
|
|
|
userService "hongze/hongze_yb/services/user"
|
|
|
"hongze/hongze_yb/utils"
|
|
@@ -377,3 +378,133 @@ func (this *MyChartController) IsCollect(c *gin.Context) {
|
|
|
}
|
|
|
response.OkData("获取成功", isCollect, c)
|
|
|
}
|
|
|
+
|
|
|
+// Locate 图表在列表中的定位
|
|
|
+func (this *MyChartController) Locate(c *gin.Context) {
|
|
|
+ userInfo := userService.GetInfoByClaims(c)
|
|
|
+ userId := int(userInfo.UserID)
|
|
|
+ var req request.MyChartCollectLocateReq
|
|
|
+ if c.Bind(&req) != nil {
|
|
|
+ response.Fail("参数有误", c)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ cond := `user_id = ?`
|
|
|
+ pars := make([]interface{}, 0)
|
|
|
+ pars = append(pars, userId)
|
|
|
+ if req.ClassifyId > 0 {
|
|
|
+ cond += ` AND my_chart_classify_id > 0`
|
|
|
+ }
|
|
|
+
|
|
|
+ ob := new(yb_my_chart.YbMyChart)
|
|
|
+ list, e := ob.List(cond, pars)
|
|
|
+ if e != nil {
|
|
|
+ response.FailMsg("获取失败", "获取用户图表列表失败, Err:"+e.Error(), c)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ charts := make([]*responseModel.MyChartLocateItem, 0)
|
|
|
+ if len(list) == 0 {
|
|
|
+ response.OkData("获取成功", charts, c)
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ // 如果是分类下的图表, 则优先分类排序, 其次分类图表排序
|
|
|
+ if req.ClassifyId > 0 {
|
|
|
+ classifyCond := `user_id = ?`
|
|
|
+ classifyPars := make([]interface{}, 0)
|
|
|
+ classifyPars = append(classifyPars, userId)
|
|
|
+ classifyOB := new(yb_my_chart_classify.YbMyChartClassify)
|
|
|
+ classies, e := classifyOB.List(classifyCond, classifyPars)
|
|
|
+ if e != nil {
|
|
|
+ response.FailMsg("获取失败", "获取用户图表分类失败, Err: "+e.Error(), c)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ for _, cl := range classies {
|
|
|
+ for _, ch := range list {
|
|
|
+ if ch.MyChartClassifyID != cl.MyChartClassifyID {
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ v := new(responseModel.MyChartLocateItem)
|
|
|
+ v.MyChartID = ch.MyChartID
|
|
|
+ v.MyChartClassifyID = ch.MyChartClassifyID
|
|
|
+ v.ChartInfoID = ch.ChartInfoID
|
|
|
+ v.ChartName = ch.ChartName
|
|
|
+ v.UniqueCode = ch.UniqueCode
|
|
|
+ charts = append(charts, v)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ total := len(charts)
|
|
|
+ if total > 0 {
|
|
|
+ last := total - 1
|
|
|
+ for k, v := range charts {
|
|
|
+ // 首图-首图无上一张
|
|
|
+ if k == 0 {
|
|
|
+ if (k + 1) <= last {
|
|
|
+ v.NextChartInfoID = charts[k+1].ChartInfoID
|
|
|
+ }
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ // 尾图-尾图无下一张
|
|
|
+ if k == last {
|
|
|
+ if (k - 1) >= 0 {
|
|
|
+ v.PrevChartInfoID = charts[k-1].ChartInfoID
|
|
|
+ }
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ // 中间
|
|
|
+ if (k - 1) >= 0 {
|
|
|
+ v.PrevChartInfoID = charts[k-1].ChartInfoID
|
|
|
+ }
|
|
|
+ if (k + 1) <= last {
|
|
|
+ v.NextChartInfoID = charts[k+1].ChartInfoID
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ response.OkData("获取成功", charts, c)
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ // 非分类列表
|
|
|
+ if req.ClassifyId == 0 {
|
|
|
+ for _, ch := range list {
|
|
|
+ v := new(responseModel.MyChartLocateItem)
|
|
|
+ v.MyChartID = ch.MyChartID
|
|
|
+ v.MyChartClassifyID = ch.MyChartClassifyID
|
|
|
+ v.ChartInfoID = ch.ChartInfoID
|
|
|
+ v.ChartName = ch.ChartName
|
|
|
+ v.UniqueCode = ch.UniqueCode
|
|
|
+ charts = append(charts, v)
|
|
|
+ }
|
|
|
+ total := len(charts)
|
|
|
+ if total > 0 {
|
|
|
+ last := total - 1
|
|
|
+ for k, v := range charts {
|
|
|
+ // 首图-首图的上一张为尾图
|
|
|
+ if k == 0 {
|
|
|
+ if last > 0 {
|
|
|
+ v.PrevChartInfoID = charts[last].ChartInfoID
|
|
|
+ }
|
|
|
+ if (k + 1) <= last {
|
|
|
+ v.NextChartInfoID = charts[k+1].ChartInfoID
|
|
|
+ }
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ // 尾图-尾图的下一张为首图
|
|
|
+ if k == last {
|
|
|
+ if (k - 1) >= 0 {
|
|
|
+ v.PrevChartInfoID = charts[k-1].ChartInfoID
|
|
|
+ }
|
|
|
+ v.NextChartInfoID = charts[0].ChartInfoID
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ // 中间
|
|
|
+ if (k - 1) >= 0 {
|
|
|
+ v.PrevChartInfoID = charts[k-1].ChartInfoID
|
|
|
+ }
|
|
|
+ if (k + 1) <= last {
|
|
|
+ v.NextChartInfoID = charts[k+1].ChartInfoID
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ response.OkData("获取成功", charts, c)
|
|
|
+}
|