Sfoglia il codice sorgente

mod: 修改ppt展示的排序逻辑

zqbao 10 mesi fa
parent
commit
6d02883092
3 ha cambiato i file con 68 aggiunte e 4 eliminazioni
  1. 47 1
      controllers/ppt_v2.go
  2. 8 0
      controllers/ppt_v2_group.go
  3. 13 3
      models/ppt_v2_group_mapping.go

+ 47 - 1
controllers/ppt_v2.go

@@ -9,7 +9,6 @@ import (
 	"eta/eta_api/services/ppt"
 	"eta/eta_api/utils"
 	"fmt"
-	"github.com/rdlucklib/rdluck_tools/paging"
 	_ "image/gif"
 	_ "image/jpeg"
 	_ "image/png"
@@ -18,6 +17,8 @@ import (
 	"strconv"
 	"strings"
 	"time"
+
+	"github.com/rdlucklib/rdluck_tools/paging"
 )
 
 // PptV2Controller 新版ppt模块
@@ -276,6 +277,28 @@ func (this *PptV2Controller) EditPpt() {
 		return
 	}
 
+	pptMap, err := models.GetPptMappingByPptId(req.PptId)
+	if err != nil {
+		br.Msg = `该PPT信息不存在, 保存失败`
+		br.ErrMsg = `该PPT信息不存在, 保存失败, Err` + err.Error()
+		br.IsSendEmail = false
+		return
+	}
+	pptMapList, err := models.GetPptMappingListByGroupId(pptMap.GroupId)
+	if err != nil {
+		br.ErrMsg = "PPT目录信息异常"
+		return
+	}
+	if !pptMap.IsMoved && len(pptMapList) > 1 {
+		// 如果没有人为移动位置, 默认将当前ppt置顶
+		err = ppt.MoveGroupPpt(pptMap.GroupId, pptMap.GroupPptId, pptMapList[0].GroupPptId, 0, this.SysUser.AdminId)
+		if err != nil {
+			br.Msg = err.Error()
+			br.ErrMsg = "移动失败,Err:" + err.Error()
+			return
+		}
+	}
+
 	// 日志记录
 	{
 		logInfo := &models.PptV2SaveLog{
@@ -469,6 +492,29 @@ func (this *PptV2Controller) Publish() {
 		br.ErrMsg = "发布失败,Err:" + err.Error()
 		return
 	}
+
+	pptMap, err := models.GetPptMappingByPptId(int64(req.PptId))
+	if err != nil {
+		br.Msg = `该PPT信息不存在, 保存失败`
+		br.ErrMsg = `该PPT信息不存在, 保存失败, Err` + err.Error()
+		br.IsSendEmail = false
+		return
+	}
+	pptMapList, err := models.GetPptMappingListByGroupId(pptMap.GroupId)
+	if err != nil {
+		br.ErrMsg = "PPT目录信息异常"
+		return
+	}
+	if !pptMap.IsMoved && len(pptMapList) > 1 {
+		// 如果没有人为移动位置, 默认将当前ppt置顶
+		err = ppt.MoveGroupPpt(pptMap.GroupId, pptMap.GroupPptId, pptMapList[0].GroupPptId, 0, this.SysUser.AdminId)
+		if err != nil {
+			br.Msg = err.Error()
+			br.ErrMsg = "移动失败,Err:" + err.Error()
+			return
+		}
+	}
+
 	//添加发布记录
 	{
 		record := new(models.PptV2PublishRecord)

+ 8 - 0
controllers/ppt_v2_group.go

@@ -308,6 +308,14 @@ func (this *PptV2GroupController) MoveGroupPpt() {
 		br.Msg = err.Error()
 		return
 	}
+	mappingInfo := &models.PptV2GroupMapping{}
+	mappingInfo.GroupPptId = req.GroupPptId
+	mappingInfo.IsMoved = true
+	err = mappingInfo.Update([]string{"is_moved"})
+	if err != nil {
+		br.Msg = err.Error()
+		return
+	}
 	br.Ret = 200
 	br.Success = true
 	br.Msg = "移动成功"

+ 13 - 3
models/ppt_v2_group_mapping.go

@@ -1,8 +1,9 @@
 package models
 
 import (
-	"github.com/beego/beego/v2/client/orm"
 	"time"
+
+	"github.com/beego/beego/v2/client/orm"
 )
 
 // ppt目录和ppt 映射表
@@ -16,6 +17,7 @@ type PptV2GroupMapping struct {
 	AdminId         int       `description:"移动ppt到该目录的系统用户id"`
 	AdminRealName   string    `description:"系统用户名称"`
 	ChildGroupPptId int64     `description:"设置共享后的新映射ID"`
+	IsMoved         bool      `description:"true表示改PPT被人为移动过"`
 }
 
 // AddPptGroupMapping 新增目录和ppt的映射关系
@@ -36,7 +38,7 @@ func GetPptMappingCountByGroupId(groupId int64) (total int64, err error) {
 // GetPptMappingListByGroupId 查询目录下,ppt列表
 func GetPptMappingListByGroupId(groupId int64) (list []*PptV2GroupMapping, err error) {
 	o := orm.NewOrmUsingDB("rddp")
-	sql := `select group_ppt_id, group_id, ppt_id, ppt_sort, admin_id, admin_real_name, create_time from ppt_v2_group_mapping where group_id=? order by ppt_sort asc, group_ppt_id asc `
+	sql := `select group_ppt_id, group_id, ppt_id, ppt_sort, admin_id, admin_real_name, create_time from ppt_v2_group_mapping where group_id=? order by ppt_sort desc, group_ppt_id desc `
 	_, err = o.Raw(sql, groupId).QueryRows(&list)
 	return
 }
@@ -46,7 +48,7 @@ func GetPptMappingListByGroupIds(groupIds []int64) (list []*PptV2GroupMapping, e
 	_, err = orm.NewOrmUsingDB("rddp").
 		QueryTable("ppt_v2_group_mapping").
 		Filter("group_id__in", groupIds).
-		OrderBy("-ppt_sort", "group_ppt_id").
+		OrderBy("-ppt_sort", "-group_ppt_id").
 		All(&list)
 
 	return
@@ -60,6 +62,14 @@ func GetPptMappingByGroupPptId(groupPptId int64, adminId int) (item *PptV2GroupM
 	return
 }
 
+// GetPptMappingByPptId 查询根据ppt_Id, 查询当前目录下的所有映射关系
+func GetPptMappingByPptId(pptId int64) (item *PptV2GroupMapping, err error) {
+	o := orm.NewOrmUsingDB("rddp")
+	sql := ` select * from ppt_v2_group_mapping where ppt_id=? `
+	err = o.Raw(sql, pptId).QueryRow(&item)
+	return
+}
+
 // Update 更新ppt目录映射的基本信息
 func (item *PptV2GroupMapping) Update(cols []string) (err error) {
 	o := orm.NewOrmUsingDB("rddp")