|
@@ -4,6 +4,7 @@ import (
|
|
|
"github.com/gin-gonic/gin"
|
|
|
"hongze/hongze_yb/controller/response"
|
|
|
"hongze/hongze_yb/models/response/my_chart"
|
|
|
+ chartInfoModel "hongze/hongze_yb/models/tables/chart_info"
|
|
|
myChartModel "hongze/hongze_yb/models/tables/my_chart"
|
|
|
"hongze/hongze_yb/models/tables/my_chart_classify"
|
|
|
myChartClassifyMappingModel "hongze/hongze_yb/models/tables/my_chart_classify_mapping"
|
|
@@ -13,6 +14,7 @@ import (
|
|
|
"hongze/hongze_yb/utils"
|
|
|
"io/ioutil"
|
|
|
"strconv"
|
|
|
+ "strings"
|
|
|
"time"
|
|
|
)
|
|
|
|
|
@@ -387,4 +389,171 @@ func MoveMyChartClassify(c *gin.Context) {
|
|
|
}
|
|
|
|
|
|
response.Ok("操作成功", c)
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+func GetChartBeforeAndNext(c *gin.Context) {
|
|
|
+
|
|
|
+ reqMyChartId := c.DefaultQuery("MyChartId", "")
|
|
|
+ if reqMyChartId == "" {
|
|
|
+ response.Fail("参数有误:我的图表ID", c)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ myChartId, _ := strconv.Atoi(reqMyChartId)
|
|
|
+ myChartInfo, err := myChartModel.GetMyChartById(myChartId)
|
|
|
+ if err != nil {
|
|
|
+ if err == utils.ErrNoRow {
|
|
|
+ response.Fail("图表已被删除,请刷新当前页面", c)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ response.FailMsg("获取失败", "获取我的图表信息失败, Err:" + err.Error(), c)
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ myChartClassifyId := myChartInfo.MyChartClassifyId
|
|
|
+ myChartList, err := myChartClassifyMappingModel.GetMyChartSortInfoList(myChartClassifyId, 2)
|
|
|
+
|
|
|
+ var currentIndex int
|
|
|
+ lastIndex := len(myChartList) - 1
|
|
|
+ for index, item := range myChartList {
|
|
|
+ if myChartInfo.MyChartId == item.MyChartId {
|
|
|
+ currentIndex = index
|
|
|
+ break
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ var beforeChart, afterChart *myChartClassifyMappingModel.MyChartSortInfo
|
|
|
+ beforeIndex := currentIndex - 1
|
|
|
+ if beforeIndex >= 0 {
|
|
|
+
|
|
|
+ beforeChart = myChartList[beforeIndex]
|
|
|
+ }
|
|
|
+ afterIndex := currentIndex + 1
|
|
|
+ if afterIndex <= lastIndex {
|
|
|
+
|
|
|
+ afterChart = myChartList[afterIndex]
|
|
|
+ }
|
|
|
+
|
|
|
+ if beforeIndex < 0 || afterIndex > lastIndex {
|
|
|
+
|
|
|
+ userInfo := user.GetInfoByClaims(c)
|
|
|
+ publicCondition := make(map[string]interface{})
|
|
|
+ privateCondition := make(map[string]interface{})
|
|
|
+ publicClassify, privateClassify, err := chart.GetUserChartClassifyListByCondition(userInfo, publicCondition, privateCondition)
|
|
|
+ if err != nil {
|
|
|
+ response.FailMsg("获取失败", "获取图表分类失败, Err:" + err.Error(), c)
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ var classifyList []*my_chart_classify.MyChartClassify
|
|
|
+ var myChartClassifyIds []int
|
|
|
+ for i := 0; i < len(publicClassify); i++ {
|
|
|
+ exist := false
|
|
|
+ for _, cid := range myChartClassifyIds{
|
|
|
+ if publicClassify[i].MyChartClassifyId == cid {
|
|
|
+ exist = true
|
|
|
+ break
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if exist {
|
|
|
+ continue
|
|
|
+ } else {
|
|
|
+ classifyList = append(classifyList, publicClassify[i])
|
|
|
+ }
|
|
|
+ }
|
|
|
+ for i := 0; i < len(privateClassify); i++ {
|
|
|
+ exist := false
|
|
|
+ for _, cid := range myChartClassifyIds{
|
|
|
+ if privateClassify[i].MyChartClassifyId == cid {
|
|
|
+ exist = true
|
|
|
+ break
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if exist {
|
|
|
+ continue
|
|
|
+ } else {
|
|
|
+ classifyList = append(classifyList, privateClassify[i])
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ var currentClassifyIndex int
|
|
|
+ for indexClassify, itemClassify := range classifyList {
|
|
|
+ itemClassifyId := strconv.Itoa(itemClassify.MyChartClassifyId)
|
|
|
+ if strings.Contains(myChartInfo.MyChartClassifyId, itemClassifyId) {
|
|
|
+ currentClassifyIndex = indexClassify
|
|
|
+ break
|
|
|
+ }
|
|
|
+ }
|
|
|
+ lastClassifyIndex := len(classifyList) - 1
|
|
|
+
|
|
|
+
|
|
|
+ beforeClassifyIndex := currentClassifyIndex - 1
|
|
|
+ if beforeIndex < 0 && len(classifyList) > 0 && beforeClassifyIndex >= 0 {
|
|
|
+ beforeClassifyIdStr := strconv.Itoa(classifyList[beforeClassifyIndex].MyChartClassifyId)
|
|
|
+ beforeClassifyChartList, tempErr := myChartClassifyMappingModel.GetMyChartSortInfoList(beforeClassifyIdStr, 1)
|
|
|
+ if tempErr != nil {
|
|
|
+ response.FailMsg("获取失败", "获取上一个分类图表信息失败, Err:" + tempErr.Error(), c)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if len(beforeClassifyChartList) > 0 {
|
|
|
+ beforeChart = beforeClassifyChartList[0]
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ afterClassifyIndex := currentClassifyIndex + 1
|
|
|
+ if afterIndex > lastIndex && len(classifyList) > 0 && afterClassifyIndex <= lastClassifyIndex {
|
|
|
+ afterClassifyIdStr := strconv.Itoa(classifyList[afterClassifyIndex].MyChartClassifyId)
|
|
|
+ afterClassifyChartList, tempErr := myChartClassifyMappingModel.GetMyChartSortInfoList(afterClassifyIdStr, 2)
|
|
|
+ if tempErr != nil {
|
|
|
+ response.FailMsg("获取失败", "获取下一个分类图表信息失败, Err:" + tempErr.Error(), c)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if len(afterClassifyChartList) > 0 {
|
|
|
+ afterChart = afterClassifyChartList[0]
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ var beforeResp, afterResp chartInfoModel.ChartSortInfo
|
|
|
+ if beforeChart != nil {
|
|
|
+ beforeResp.MyChartId = beforeChart.MyChartId
|
|
|
+ beforeResp.MyChartClassifyId = beforeChart.MyChartClassifyId
|
|
|
+ beforeResp.MyChartClassifyName = beforeChart.MyChartClassifyName
|
|
|
+ beforeResp.Sort = int(beforeChart.Sort)
|
|
|
+ beforeResp.UniqueCode = beforeChart.UniqueCode
|
|
|
+ beforeResp.ChartInfoId = beforeChart.ChartInfoId
|
|
|
+ if beforeIndex < 0 {
|
|
|
+ beforeResp.Switch = 1
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if afterChart != nil {
|
|
|
+ afterResp.MyChartId = afterChart.MyChartId
|
|
|
+ afterResp.MyChartClassifyId = afterChart.MyChartClassifyId
|
|
|
+ afterResp.MyChartClassifyName = afterChart.MyChartClassifyName
|
|
|
+ afterResp.Sort = int(afterChart.Sort)
|
|
|
+ afterResp.UniqueCode = afterChart.UniqueCode
|
|
|
+ afterResp.ChartInfoId = afterChart.ChartInfoId
|
|
|
+ if afterIndex > lastIndex {
|
|
|
+ afterResp.Switch = 1
|
|
|
+ }
|
|
|
+ }
|
|
|
+ resp := chartInfoModel.ChartBeforeNext{
|
|
|
+ PrevChart: beforeResp,
|
|
|
+ NextChart: afterResp,
|
|
|
+ }
|
|
|
+
|
|
|
+ response.OkData("获取成功", resp, c)
|
|
|
}
|