|
@@ -4,10 +4,16 @@ import (
|
|
|
"github.com/gin-gonic/gin"
|
|
|
"hongze/hongze_yb/controller/response"
|
|
|
"hongze/hongze_yb/models/response/my_chart"
|
|
|
- my_chart2 "hongze/hongze_yb/models/tables/my_chart"
|
|
|
+ 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"
|
|
|
+ myChartLogModel "hongze/hongze_yb/models/tables/my_chart_log"
|
|
|
"hongze/hongze_yb/services/chart"
|
|
|
"hongze/hongze_yb/services/user"
|
|
|
+ "hongze/hongze_yb/utils"
|
|
|
+ "io/ioutil"
|
|
|
"strconv"
|
|
|
+ "time"
|
|
|
)
|
|
|
|
|
|
// GetMyChartChassify 获取图表分类列表
|
|
@@ -111,7 +117,7 @@ func GetMyChartList(c *gin.Context) {
|
|
|
limit = 10
|
|
|
}
|
|
|
|
|
|
- list, err := my_chart2.GetMyChartListByCondition(condition, pars, page, limit)
|
|
|
+ list, err := myChartModel.GetMyChartListByCondition(condition, pars, page, limit)
|
|
|
if err != nil {
|
|
|
response.Fail("获取图库列表失败, Err:" + err.Error(), c)
|
|
|
return
|
|
@@ -120,6 +126,137 @@ func GetMyChartList(c *gin.Context) {
|
|
|
response.OkData("获取成功", list, c)
|
|
|
}
|
|
|
|
|
|
+// MoveMyChart 移动我的图表
|
|
|
+// @Tags 图库模块
|
|
|
+// @Summary 移动我的图表
|
|
|
+// @Description 移动我的图表
|
|
|
+// @Security ApiKeyAuth
|
|
|
+// @Param Authorization header string true "Bearer 31a165baebe6dec616b1f8f3207b4273"
|
|
|
+// @Accept json
|
|
|
+// @Product json
|
|
|
+// @Param data body myChartModel.MoveMyChartReq true "请求参数"
|
|
|
+// @Success 200 {string} string "操作成功"
|
|
|
+// @failure 400 {string} string "操作失败"
|
|
|
+// @Router /my_chart/moveMyChart [post]
|
|
|
func MoveMyChart(c *gin.Context) {
|
|
|
+ // 参数校验
|
|
|
+ var req myChartModel.MoveMyChartReq
|
|
|
+ if c.ShouldBind(&req) != nil {
|
|
|
+ response.Fail("参数异常", c)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if req.MyChartId == 0 {
|
|
|
+ response.Fail("图表ID有误", c)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if req.MyChartClassifyId == 0 {
|
|
|
+ response.Fail("图表分类ID有误", c)
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ // 操作权限校验
|
|
|
+ userInfo := user.GetInfoByClaims(c)
|
|
|
+ ok, adminInfo, err := user.GetAdminByUserInfo(userInfo)
|
|
|
+ if err != nil {
|
|
|
+ response.Fail("操作人信息有误", c)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if !ok {
|
|
|
+ response.Fail("非内部人员无权进行操作", c)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ adminId := int(adminInfo.AdminID)
|
|
|
+ myChassify, err := my_chart_classify.GetClassifyById(req.MyChartClassifyId)
|
|
|
+ if err != nil {
|
|
|
+ if err == utils.ErrNoRow {
|
|
|
+ response.Fail("该图表分类信息有误", c)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ response.Fail("获取图表信息失败", c)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if myChassify.AdminID != adminId {
|
|
|
+ response.Fail("无权移动该图表", c)
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ // 图表排序
|
|
|
+ step := float64(65536)
|
|
|
+ var newSort float64
|
|
|
+ if req.PrevMyChartId <= 0 {
|
|
|
+ firstMapItem, err := myChartClassifyMappingModel.GetMyChartSort(adminId, req.MyChartClassifyId, 0)
|
|
|
+ if err != nil {
|
|
|
+ response.Fail("获取图表排序失败4001", c)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if firstMapItem.Sort <= 0 {
|
|
|
+ firstSort := step / float64(2)
|
|
|
+ err = myChartClassifyMappingModel.MyChartMove(firstSort, adminId, firstMapItem.MyChartId, firstMapItem.MyChartClassifyId)
|
|
|
+ if err != nil {
|
|
|
+ response.Fail("移动失败", c)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ newSort = step / float64(4)
|
|
|
+ } else {
|
|
|
+ newSort = firstMapItem.Sort / float64(2)
|
|
|
+ }
|
|
|
+ } else if req.NextMyChartId <= 0 {
|
|
|
+ latestMapItem, err := myChartClassifyMappingModel.GetMyChartSort(adminId, req.MyChartClassifyId, 1)
|
|
|
+ if err != nil {
|
|
|
+ response.Fail("获取图表排序失败4002", c)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if latestMapItem.Sort <= 0 {
|
|
|
+ latestSort := step / float64(2)
|
|
|
+ err = myChartClassifyMappingModel.MyChartMove(latestSort, adminId, latestMapItem.MyChartId, latestMapItem.MyChartClassifyId)
|
|
|
+ if err != nil {
|
|
|
+ response.Fail("移动失败", c)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ newSort = step / float64(4)
|
|
|
+ } else {
|
|
|
+ newSort = latestMapItem.Sort + (step / float64(2)) - 1
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ preMapItem, err := myChartClassifyMappingModel.GetMyChartClassifyMapping(adminId, req.PrevMyChartId, req.MyChartClassifyId)
|
|
|
+ if err != nil {
|
|
|
+ response.Fail("获取上级图表关联信息失败", c)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ nextMapItem, err := myChartClassifyMappingModel.GetMyChartClassifyMapping(adminId, req.NextMyChartId, req.MyChartClassifyId)
|
|
|
+ if err != nil {
|
|
|
+ response.Fail("获取下级图表关联信息失败", c)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ newSort = (preMapItem.Sort + nextMapItem.Sort) / 2
|
|
|
+ }
|
|
|
+ if newSort >= 0 {
|
|
|
+ err = myChartClassifyMappingModel.MyChartMove(newSort, adminId, req.MyChartId, req.MyChartClassifyId)
|
|
|
+ if err != nil {
|
|
|
+ response.Fail("移动失败", c)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+ /*else {
|
|
|
+ utils.FileLog.Info("MyChartMove Sort=0:" + requestBodyStr)
|
|
|
+ }*/
|
|
|
+
|
|
|
+ // 新增操作日志
|
|
|
+ {
|
|
|
+ bodyBytes, _ := ioutil.ReadAll(c.Request.Body)
|
|
|
+ requestBodyStr := string(bodyBytes)
|
|
|
+
|
|
|
+ edbLog := new(myChartLogModel.MyChartLog)
|
|
|
+ edbLog.MyChartId = 0
|
|
|
+ edbLog.ChartInfoId = 0
|
|
|
+ edbLog.SysUserId = adminId
|
|
|
+ edbLog.SysUserRealName = adminInfo.RealName
|
|
|
+ edbLog.CreateTime = time.Now()
|
|
|
+ edbLog.Content = requestBodyStr
|
|
|
+ edbLog.Status = "移动我的图表"
|
|
|
+ edbLog.Method = c.Request.URL.String()
|
|
|
+ go edbLog.Create()
|
|
|
+ }
|
|
|
|
|
|
+ response.Ok("操作成功", c)
|
|
|
}
|