浏览代码

Merge branch 'ppt_sort'

Roc 2 周之前
父节点
当前提交
1a88079670

+ 54 - 54
controllers/ppt_english.go

@@ -310,33 +310,33 @@ func (this *PptEnglishController) EditPpt() {
 		return
 	}
 
-	pptMap, err := ppt_english.GetPptMappingByPptId(req.PptId)
-	if err != nil {
-		br.Msg = `该PPT信息不存在, 保存失败`
-		br.ErrMsg = `该PPT信息不存在, 保存失败, Err` + err.Error()
-		br.IsSendEmail = false
-		return
-	}
-	pptMapList, err := ppt_english.GetPptMappingListByGroupIdDesc(pptMap.GroupId)
-	if err != nil {
-		br.ErrMsg = "PPT目录信息异常"
-		return
-	}
-	count, err := ppt_english.GetPptMappingCountByGroupPptId(pptMap.GroupPptId, this.SysUser.AdminId)
-	if err != nil {
-		br.Msg = "获取英文PPT和用户权限关系失败"
-		br.ErrMsg = "获取英文PPT和用户权限关系失败, Err:" + err.Error()
-		return
-	}
-	if !pptMap.IsMoved && len(pptMapList) > 1 && count > 0 {
-		// 如果没有人为移动位置, 默认将当前ppt置顶
-		err = ppt.MoveGroupPptEnglish(pptMap.GroupId, pptMap.GroupPptId, pptMapList[0].GroupPptId, 0, this.SysUser.AdminId)
-		if err != nil {
-			br.Msg = err.Error()
-			br.ErrMsg = "移动失败,Err:" + err.Error()
-			return
-		}
-	}
+	//pptMap, err := ppt_english.GetPptMappingByPptId(req.PptId)
+	//if err != nil {
+	//	br.Msg = `该PPT信息不存在, 保存失败`
+	//	br.ErrMsg = `该PPT信息不存在, 保存失败, Err` + err.Error()
+	//	br.IsSendEmail = false
+	//	return
+	//}
+	//pptMapList, err := ppt_english.GetPptMappingListByGroupIdDesc(pptMap.GroupId)
+	//if err != nil {
+	//	br.ErrMsg = "PPT目录信息异常"
+	//	return
+	//}
+	//count, err := ppt_english.GetPptMappingCountByGroupPptId(pptMap.GroupPptId, this.SysUser.AdminId)
+	//if err != nil {
+	//	br.Msg = "获取英文PPT和用户权限关系失败"
+	//	br.ErrMsg = "获取英文PPT和用户权限关系失败, Err:" + err.Error()
+	//	return
+	//}
+	//if !pptMap.IsMoved && len(pptMapList) > 1 && count > 0 {
+	//	// 如果没有人为移动位置, 默认将当前ppt置顶
+	//	err = ppt.MoveGroupPptEnglish(pptMap.GroupId, pptMap.GroupPptId, pptMapList[0].GroupPptId, 0, this.SysUser.AdminId)
+	//	if err != nil {
+	//		br.Msg = err.Error()
+	//		br.ErrMsg = "移动失败,Err:" + err.Error()
+	//		return
+	//	}
+	//}
 
 	// 日志记录
 	{
@@ -752,33 +752,33 @@ func (this *PptEnglishController) SaveLog() {
 	pptItem.PptPage = len(pageContent)
 	err = pptItem.Update([]string{"TemplateType", "BackgroundImg", "Title", "ReportType", "PptDate", "Content", "ModifyTime", "ppt_page"})
 
-	pptMap, err := ppt_english.GetPptMappingByPptId(req.PptId)
-	if err != nil {
-		br.Msg = `该PPT信息不存在, 保存失败`
-		br.ErrMsg = `该PPT信息不存在, 保存失败, Err` + err.Error()
-		br.IsSendEmail = false
-		return
-	}
-	pptMapList, err := ppt_english.GetPptMappingListByGroupIdDesc(pptMap.GroupId)
-	if err != nil {
-		br.ErrMsg = "PPT目录信息异常"
-		return
-	}
-	count, err := ppt_english.GetPptMappingCountByGroupPptId(pptMap.GroupPptId, this.SysUser.AdminId)
-	if err != nil {
-		br.Msg = "获取英文PPT和用户权限关系失败"
-		br.ErrMsg = "获取英文PPT和用户权限关系失败, Err:" + err.Error()
-		return
-	}
-	if !pptMap.IsMoved && len(pptMapList) > 1 && count > 0 {
-		// 如果没有人为移动位置, 且当前用户有权限, 默认将当前ppt置顶
-		err = ppt.MoveGroupPptEnglish(pptMap.GroupId, pptMap.GroupPptId, pptMapList[0].GroupPptId, 0, this.SysUser.AdminId)
-		if err != nil {
-			br.Msg = err.Error()
-			br.ErrMsg = "移动失败,Err:" + err.Error()
-			return
-		}
-	}
+	//pptMap, err := ppt_english.GetPptMappingByPptId(req.PptId)
+	//if err != nil {
+	//	br.Msg = `该PPT信息不存在, 保存失败`
+	//	br.ErrMsg = `该PPT信息不存在, 保存失败, Err` + err.Error()
+	//	br.IsSendEmail = false
+	//	return
+	//}
+	//pptMapList, err := ppt_english.GetPptMappingListByGroupIdDesc(pptMap.GroupId)
+	//if err != nil {
+	//	br.ErrMsg = "PPT目录信息异常"
+	//	return
+	//}
+	//count, err := ppt_english.GetPptMappingCountByGroupPptId(pptMap.GroupPptId, this.SysUser.AdminId)
+	//if err != nil {
+	//	br.Msg = "获取英文PPT和用户权限关系失败"
+	//	br.ErrMsg = "获取英文PPT和用户权限关系失败, Err:" + err.Error()
+	//	return
+	//}
+	//if !pptMap.IsMoved && len(pptMapList) > 1 && count > 0 {
+	//	// 如果没有人为移动位置, 且当前用户有权限, 默认将当前ppt置顶
+	//	err = ppt.MoveGroupPptEnglish(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 := &ppt_english.PptEnglishSaveLog{

+ 59 - 59
controllers/ppt_v2.go

@@ -310,33 +310,33 @@ 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
-	}
-	count, err := models.GetPptMappingByGroupPptCountId(pptMap.GroupPptId, this.SysUser.AdminId)
-	if err != nil {
-		br.Msg = "查询映射关系失败"
-		br.ErrMsg = "查询映射关系失败, 保存失败, Err:" + err.Error()
-		return
-	}
-	if !pptMap.IsMoved && len(pptMapList) > 1 && count > 0 {
-		// 如果没有人为移动位置, 默认将当前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
-		}
-	}
+	//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
+	//}
+	//count, err := models.GetPptMappingByGroupPptCountId(pptMap.GroupPptId, this.SysUser.AdminId)
+	//if err != nil {
+	//	br.Msg = "查询映射关系失败"
+	//	br.ErrMsg = "查询映射关系失败, 保存失败, Err:" + err.Error()
+	//	return
+	//}
+	//if !pptMap.IsMoved && len(pptMapList) > 1 && count > 0 {
+	//	// 如果没有人为移动位置, 默认将当前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
+	//	}
+	//}
 
 	// 日志记录
 	{
@@ -722,38 +722,38 @@ func (this *PptV2Controller) SaveLog() {
 	err = pptItem.Update([]string{"TemplateType", "BackgroundImg", "Title", "ReportType", "PptDate", "Content", "ModifyTime", "TitleSetting", "ppt_page"})
 
 	// 将更新后的PPT, 置顶
-	pptMap, err := models.GetPptMappingByPptId(int64(req.PptId))
-	if err != nil {
-		if utils.IsErrNoRow(err) {
-			br.Msg = `该PPT信息不存在, 保存失败`
-			br.ErrMsg = `该PPT信息不存在, 保存失败, Err` + err.Error()
-			br.IsSendEmail = false
-			return
-		}
-		br.Msg = "保存草稿失败"
-		br.ErrMsg = fmt.Sprintf("保存草稿失败, %v", err)
-		return
-	}
-	pptMapList, err := models.GetPptMappingListByGroupId(pptMap.GroupId)
-	if err != nil {
-		br.ErrMsg = "PPT目录信息异常"
-		return
-	}
-	count, err := models.GetPptMappingByGroupPptCountId(pptMap.GroupPptId, this.SysUser.AdminId)
-	if err != nil {
-		br.Msg = "查询映射关系失败"
-		br.ErrMsg = "查询映射关系失败, 保存失败, Err:" + err.Error()
-		return
-	}
-	if !pptMap.IsMoved && len(pptMapList) > 1 && count > 0 {
-		// 如果没有人为移动位置, 且当前用户有权限, 默认将当前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
-		}
-	}
+	//pptMap, err := models.GetPptMappingByPptId(int64(req.PptId))
+	//if err != nil {
+	//	if utils.IsErrNoRow(err) {
+	//		br.Msg = `该PPT信息不存在, 保存失败`
+	//		br.ErrMsg = `该PPT信息不存在, 保存失败, Err` + err.Error()
+	//		br.IsSendEmail = false
+	//		return
+	//	}
+	//	br.Msg = "保存草稿失败"
+	//	br.ErrMsg = fmt.Sprintf("保存草稿失败, %v", err)
+	//	return
+	//}
+	//pptMapList, err := models.GetPptMappingListByGroupId(pptMap.GroupId)
+	//if err != nil {
+	//	br.ErrMsg = "PPT目录信息异常"
+	//	return
+	//}
+	//count, err := models.GetPptMappingByGroupPptCountId(pptMap.GroupPptId, this.SysUser.AdminId)
+	//if err != nil {
+	//	br.Msg = "查询映射关系失败"
+	//	br.ErrMsg = "查询映射关系失败, 保存失败, Err:" + err.Error()
+	//	return
+	//}
+	//if !pptMap.IsMoved && len(pptMapList) > 1 && count > 0 {
+	//	// 如果没有人为移动位置, 且当前用户有权限, 默认将当前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{

+ 1 - 1
models/ppt_english/ppt_english_group_mapping.go

@@ -68,7 +68,7 @@ func GetPptMappingByPptId(pptId int64) (item *PptEnglishGroupMapping, err error)
 	return
 }
 
-// GetPptMappingListByGroupId 查询目录下,ppt列表, 降序排列
+// GetPptMappingListByGroupIdDesc 查询目录下,ppt列表, 降序排列
 func GetPptMappingListByGroupIdDesc(groupId int64) (list []*PptEnglishGroupMapping, err error) {
 	o := global.DbMap[utils.DbNameReport]
 	sql := `select group_ppt_id, group_id, ppt_id, ppt_sort, admin_id, admin_real_name, create_time from ppt_english_group_mapping where group_id=? order by ppt_sort desc, group_ppt_id desc `

+ 25 - 12
services/ppt/ppt_english_group.go

@@ -190,7 +190,7 @@ func CopyEnglishGroup(groupId int64, adminId int, adminRealName string) (err err
 		return
 	}
 	//查询该目录下面是否存在ppt,如果存在则批量复制ppt到新目录下
-	mappingList, err := ppt_english.GetPptMappingListByGroupId(groupId)
+	mappingList, err := ppt_english.GetPptMappingListByGroupIdDesc(groupId)
 	if err != nil {
 		err = errors.New("查询目录里的ppt列表出错:" + err.Error())
 		return
@@ -208,6 +208,11 @@ func CopyEnglishGroup(groupId int64, adminId int, adminRealName string) (err err
 		err = errors.New("查询ppt列表出错:" + err.Error())
 		return
 	}
+	pptMap := make(map[int]*ppt_english.PptEnglish)
+	for _, pptItem := range pptList {
+		pptMap[pptItem.PptId] = pptItem
+	}
+
 	pptNames, err := ppt_english.GetAllPptTitle()
 	if err != nil {
 		err = errors.New("查询ppt标题出错:" + err.Error())
@@ -215,24 +220,32 @@ func CopyEnglishGroup(groupId int64, adminId int, adminRealName string) (err err
 	}
 	//批量复制ppt,更新作者为当前账号,并返回新的pptID
 	newPptList := make([]*ppt_english.PptEnglish, 0)
-	for _, v := range pptList {
+	for _, mapping := range mappingList {
+		pptItem, ok := pptMap[int(mapping.PptId)]
+		// 不存在该ppt,那么就过滤
+		if !ok {
+			continue
+		}
+
 		tmp := &ppt_english.PptEnglish{
-			TemplateType:  v.TemplateType,
-			BackgroundImg: v.BackgroundImg,
-			Title:         generateCopyName(v.Title, 1, pptNames),
-			ReportType:    v.ReportType,
-			PptDate:       v.PptDate,
-			Content:       v.Content,
-			CoverContent:  v.CoverContent,
+			TemplateType:  pptItem.TemplateType,
+			BackgroundImg: pptItem.BackgroundImg,
+			Title:         generateCopyName(pptItem.Title, 1, pptNames),
+			ReportType:    pptItem.ReportType,
+			PptDate:       pptItem.PptDate,
+			Content:       pptItem.Content,
+			CoverContent:  pptItem.CoverContent,
 			CreateTime:    time.Now(),
 			ModifyTime:    time.Now(),
 			AdminId:       adminId,
 			AdminRealName: adminRealName,
-			TitleSetting:  v.TitleSetting,
+			TitleSetting:  pptItem.TitleSetting,
 		}
 		newPptList = append(newPptList, tmp)
 	}
-	if len(newPptList) > 0 {
+
+	pptNum := len(newPptList)
+	if pptNum > 0 {
 		err = ppt_english.AddPptEnglishMulti(newPptList)
 		if err != nil {
 			err = errors.New("复制目录里的ppt出错:" + err.Error())
@@ -246,7 +259,7 @@ func CopyEnglishGroup(groupId int64, adminId int, adminRealName string) (err err
 				PptId:         int64(v.PptId),
 				CreateTime:    time.Now(),
 				ModifyTime:    time.Now(),
-				PptSort:       float64(k + 1),
+				PptSort:       float64(pptNum - k),
 				AdminId:       adminId,
 				AdminRealName: adminRealName,
 			}

+ 28 - 16
services/ppt/ppt_group.go

@@ -374,6 +374,11 @@ func CopyGroup(groupId int64, adminId int, adminRealName string) (err error) {
 		err = errors.New("查询ppt列表出错:" + err.Error())
 		return
 	}
+	pptMap := make(map[int]*models.PptV2)
+	for _, pptItem := range pptList {
+		pptMap[pptItem.PptId] = pptItem
+	}
+
 	pptNames, err := models.GetAllPptTitle()
 	if err != nil {
 		err = errors.New("查询ppt标题出错:" + err.Error())
@@ -381,30 +386,37 @@ func CopyGroup(groupId int64, adminId int, adminRealName string) (err error) {
 	}
 	//批量复制ppt,更新作者为当前账号,并返回新的pptID
 	newPptList := make([]*models.PptV2, 0)
-	for _, v := range pptList {
-		if v.PptVersion != 2 { //只复制新版的ppt,旧版本的ppt忽略
+	for _, mapping := range mappingList {
+		pptItem, ok := pptMap[int(mapping.PptId)]
+		// 不存在该ppt,那么就过滤
+		if !ok {
+			continue
+		}
+
+		if pptItem.PptVersion != 2 { //只复制新版的ppt,旧版本的ppt忽略
 			continue
 		}
 		tmp := &models.PptV2{
-			TemplateType:  v.TemplateType,
-			BackgroundImg: v.BackgroundImg,
-			Title:         generateCopyName(v.Title, 1, pptNames),
-			ReportType:    v.ReportType,
-			PptDate:       v.PptDate,
-			Content:       v.Content,
-			CoverContent:  v.CoverContent,
-			PptUrl:        v.PptUrl,
-			PptxUrl:       v.PptxUrl,
+			TemplateType:  pptItem.TemplateType,
+			BackgroundImg: pptItem.BackgroundImg,
+			Title:         generateCopyName(pptItem.Title, 1, pptNames),
+			ReportType:    pptItem.ReportType,
+			PptDate:       pptItem.PptDate,
+			Content:       pptItem.Content,
+			CoverContent:  pptItem.CoverContent,
+			PptUrl:        pptItem.PptUrl,
+			PptxUrl:       pptItem.PptxUrl,
 			CreateTime:    time.Now(),
 			ModifyTime:    time.Now(),
 			AdminId:       adminId,
 			AdminRealName: adminRealName,
-			PptVersion:    v.PptVersion,
-			TitleSetting:  v.TitleSetting,
+			PptVersion:    pptItem.PptVersion,
+			TitleSetting:  pptItem.TitleSetting,
 		}
 		newPptList = append(newPptList, tmp)
 	}
-	if len(newPptList) > 0 {
+	pptNum := len(newPptList)
+	if pptNum > 0 {
 		err = models.AddPptV2Multi(newPptList)
 		if err != nil {
 			err = errors.New("复制目录里的ppt出错:" + err.Error())
@@ -412,7 +424,7 @@ func CopyGroup(groupId int64, adminId int, adminRealName string) (err error) {
 		}
 
 		newMappings := make([]*models.PptV2GroupMapping, 0)
-		for i, v := range newPptList {
+		for k, v := range newPptList {
 			tmp := &models.PptV2GroupMapping{
 				GroupId:       newGroupId,
 				PptId:         int64(v.PptId),
@@ -420,7 +432,7 @@ func CopyGroup(groupId int64, adminId int, adminRealName string) (err error) {
 				ModifyTime:    time.Now(),
 				AdminId:       adminId,
 				AdminRealName: adminRealName,
-				PptSort:       float64(i + 1),
+				PptSort:       float64(pptNum - k),
 			}
 			newMappings = append(newMappings, tmp)
 		}