Преглед изворни кода

fix:多人协作的报告报告,有编辑权限的用户发布或撤销了报告,都要变更该报告的最后一次更新人

Roc пре 8 месеци
родитељ
комит
cce2dc73b1

+ 3 - 2
controllers/report.go

@@ -12,6 +12,7 @@ import (
 	"github.com/h2non/filetype"
 	"github.com/tealeg/xlsx"
 	"html"
+	"io"
 	"io/ioutil"
 	"os"
 	"path"
@@ -512,7 +513,7 @@ func (this *ReportUploadCommonController) UploadImg() {
 	defer f.Close() //关闭上传文件
 
 	// 不依赖于文件扩展名检查文件格式
-	fileData, e := ioutil.ReadAll(f)
+	fileData, e := io.ReadAll(f)
 	if e != nil {
 		err = fmt.Errorf("读取文件失败, Err: %s", e.Error())
 		return
@@ -1710,7 +1711,7 @@ func (this *ReportController) PublishDayWeekReport() {
 		return
 	}
 
-	tips, err, errMsg := services.PublishChapterReport(reportInfo, "")
+	tips, err, errMsg := services.PublishChapterReport(reportInfo, "", sysUser)
 	if err != nil {
 		br.Msg = errMsg
 		br.ErrMsg = "发布晨/周报失败, Err: " + err.Error()

+ 30 - 11
controllers/report_chapter.go

@@ -10,7 +10,6 @@ import (
 	"fmt"
 	"github.com/kgiannakakis/mp3duration/src/mp3duration"
 	"html"
-	"io/ioutil"
 	"os"
 	"path"
 	"strconv"
@@ -200,6 +199,11 @@ func (this *ReportController) EditChapterBaseInfoAndPermission() {
 		return
 	}
 
+	// 报告的最后编辑人
+	reportInfo.LastModifyAdminId = sysUser.AdminId
+	reportInfo.LastModifyAdminName = sysUser.RealName
+	reportInfo.ModifyTime = time.Now()
+
 	err, errMsg := services.EditChapterBaseInfoAndPermission(reportInfo, reportChapterInfo, req.Title, req.PermissionIdList, req.AdminIdList)
 	if err != nil {
 		br.Msg = "保存失败"
@@ -309,6 +313,10 @@ func (this *ReportController) EditDayWeekChapter() {
 		br.ErrMsg = "该报告已发布,不允许编辑"
 		return
 	}
+	// 报告的最后编辑人
+	reportInfo.LastModifyAdminId = sysUser.AdminId
+	reportInfo.LastModifyAdminName = sysUser.RealName
+	reportInfo.ModifyTime = time.Now()
 
 	reqTickerList := req.TickerList
 	// 更新章节及指标
@@ -368,7 +376,7 @@ func (this *ReportController) EditDayWeekChapter() {
 			})
 		}
 	}
-	err = models.UpdateChapterAndTicker(reportChapterInfo, updateCols, tickerList)
+	err = models.UpdateChapterAndTicker(reportInfo, reportChapterInfo, updateCols, tickerList)
 	if err != nil {
 		br.Msg = "保存失败"
 		br.ErrMsg = "报告章节内容保存失败, Err: " + err.Error()
@@ -1070,9 +1078,9 @@ func (this *ReportController) VoiceUpload() {
 	}
 	randStr := utils.GetRandStringNoSpecialChar(28)
 	fileName := randStr + ext
-	fpath := uploadDir + "/" + fileName
+	fPath := uploadDir + "/" + fileName
 	defer f.Close() //关闭上传文件
-	err = this.SaveToFile("file", fpath)
+	err = this.SaveToFile("file", fPath)
 	if err != nil {
 		br.Msg = "文件上传失败"
 		br.ErrMsg = "文件上传失败,Err:" + err.Error()
@@ -1082,14 +1090,14 @@ func (this *ReportController) VoiceUpload() {
 	resourceUrl := ``
 	//上传到阿里云 和 minio
 	//if utils.ObjectStorageClient == "minio" {
-	//	resourceUrl, err = services.UploadAudioToMinIo(fileName, fpath)
+	//	resourceUrl, err = services.UploadAudioToMinIo(fileName, fPath)
 	//	if err != nil {
 	//		br.Msg = "文件上传失败"
 	//		br.ErrMsg = "文件上传失败,Err:" + err.Error()
 	//		return
 	//	}
 	//} else {
-	//	resourceUrl, err = services.UploadAudioAliyun(fileName, fpath)
+	//	resourceUrl, err = services.UploadAudioAliyun(fileName, fPath)
 	//	if err != nil {
 	//		br.Msg = "文件上传失败"
 	//		br.ErrMsg = "文件上传失败,Err:" + err.Error()
@@ -1102,7 +1110,7 @@ func (this *ReportController) VoiceUpload() {
 		br.ErrMsg = "初始化OSS服务失败"
 		return
 	}
-	resourceUrl, err = ossClient.UploadFile(fileName, fpath, "")
+	resourceUrl, err = ossClient.UploadFile(fileName, fPath, "")
 	if err != nil {
 		br.Msg = "文件上传失败"
 		br.ErrMsg = "文件上传失败,Err:" + err.Error()
@@ -1110,7 +1118,7 @@ func (this *ReportController) VoiceUpload() {
 	}
 
 	defer func() {
-		os.Remove(fpath)
+		os.Remove(fPath)
 	}()
 	item := new(models.Resource)
 	item.ResourceUrl = resourceUrl
@@ -1124,9 +1132,9 @@ func (this *ReportController) VoiceUpload() {
 	}
 
 	var playSeconds float64
-	playSeconds, err = mp3duration.Calculate(fpath)
+	playSeconds, err = mp3duration.Calculate(fPath)
 	if playSeconds <= 0 {
-		playSeconds, err = utils.GetVideoPlaySeconds(fpath)
+		playSeconds, err = utils.GetVideoPlaySeconds(fPath)
 		if err != nil {
 			br.Msg = "获取音频时间失败"
 			br.ErrMsg = "获取音频时间失败,Err:" + err.Error()
@@ -1134,7 +1142,7 @@ func (this *ReportController) VoiceUpload() {
 		}
 	}
 
-	fileBody, err := ioutil.ReadFile(fpath)
+	fileBody, err := os.ReadFile(fPath)
 	videoSize := len(fileBody)
 	sizeFloat := (float64(videoSize) / float64(1024)) / float64(1024)
 	sizeStr := utils.SubFloatToFloatStr(sizeFloat, 2)
@@ -1274,6 +1282,17 @@ func (this *ReportController) PublishDayWeekReportChapter() {
 		publishTime = time.Now()
 	}
 
+	// 更新报告的最后编辑人
+	reportInfo.LastModifyAdminId = sysUser.AdminId
+	reportInfo.LastModifyAdminName = sysUser.RealName
+	reportInfo.ModifyTime = time.Now()
+	err = reportInfo.UpdateReport([]string{"LastModifyAdminId", "LastModifyAdminName", "ModifyTime"})
+	if err != nil {
+		br.Msg = "发布失败"
+		br.ErrMsg = "报告最后编辑人保存失败, Err: " + err.Error()
+		return
+	}
+
 	// 更新章节信息
 	chapterInfo.IsEdit = 1
 	chapterInfo.PublishState = 2

+ 6 - 6
controllers/report_v2.go

@@ -178,7 +178,7 @@ func (this *ReportController) ListReport() {
 		oldAndNewReportIdMap := make(map[int]int) // 旧报告和新报告的id对应关系
 		for i := 0; i < listLen; i++ {
 			reportIdArr = append(reportIdArr, strconv.Itoa(list[i].Id))
-			if list[i].OldReportId > 0 {
+			if list[i].OldReportId > 0 && list[i].ReportLayout == 1 {
 				syncReportIdArr = append(syncReportIdArr, strconv.Itoa(list[i].OldReportId))
 				oldAndNewReportIdMap[list[i].OldReportId] = list[i].Id
 			}
@@ -688,7 +688,7 @@ func (this *ReportController) SaveReportContent() {
 	}
 
 	// 获取报告详情
-	reportInfo, _ := models.GetReportByReportId(int(req.ReportId))
+	reportInfo, _ := models.GetReportByReportId(req.ReportId)
 	if reportInfo != nil && reportInfo.State == 2 {
 		br.Msg = "该报告已发布,不允许编辑"
 		br.ErrMsg = "该报告已发布,不允许编辑"
@@ -697,7 +697,7 @@ func (this *ReportController) SaveReportContent() {
 
 	// 标记更新中
 	{
-		markStatus, err := services.UpdateReportEditMark(int(req.ReportId), 0, sysUser.AdminId, 1, sysUser.RealName, this.Lang)
+		markStatus, err := services.UpdateReportEditMark(req.ReportId, 0, sysUser.AdminId, 1, sysUser.RealName, this.Lang)
 		if err != nil {
 			br.Msg = err.Error()
 			return
@@ -1189,13 +1189,13 @@ func (this *ReportController) PublishReport() {
 	br.Msg = "发布成功"
 }
 
-// PublishCancleReport
+// PublishCancelReport
 // @Title 取消发布报告接口
 // @Description 取消发布报告
 // @Param	request	body models.PublishCancelReq true "type json string"
 // @Success 200 Ret=200 取消发布成功
 // @router /publish/cancle [post]
-func (this *ReportController) PublishCancleReport() {
+func (this *ReportController) PublishCancelReport() {
 	br := new(models.BaseResponse).Init()
 	defer func() {
 		this.Data["json"] = br
@@ -1232,7 +1232,7 @@ func (this *ReportController) PublishCancleReport() {
 		return
 	}
 
-	err = models.PublishCancelReport(req.ReportIds, state, publishTimeNullFlag)
+	err = models.PublishCancelReport(req.ReportIds, state, publishTimeNullFlag, this.SysUser.AdminId, this.SysUser.RealName)
 	if err != nil {
 		br.Msg = "取消发布失败"
 		br.ErrMsg = "取消发布失败,Err:" + err.Error()

+ 10 - 10
models/report.go

@@ -297,15 +297,15 @@ func PublishReport(reportIds []int) (err error) {
 }
 
 // PublishCancelReport 取消发布报告
-func PublishCancelReport(reportId, state int, publishTimeNullFlag bool) (err error) {
+func PublishCancelReport(reportId, state int, publishTimeNullFlag bool, lastModifyAdminId int, lastModifyAdminName string) (err error) {
 	o := orm.NewOrmUsingDB("rddp")
 	var sql string
 	if publishTimeNullFlag {
-		sql = ` UPDATE report SET state=?, publish_time=null, pre_publish_time=null, pre_msg_send=0 WHERE id =?`
+		sql = ` UPDATE report SET state=?, publish_time=null, pre_publish_time=null, pre_msg_send=0,last_modify_admin_id=?,last_modify_admin_name=?,modify_time = NOW() WHERE id =?`
 	} else {
-		sql = ` UPDATE report SET state=?, pre_publish_time=null, pre_msg_send=0 WHERE id =?`
+		sql = ` UPDATE report SET state=?, pre_publish_time=null, pre_msg_send=0,last_modify_admin_id=?,last_modify_admin_name=?,modify_time = NOW() WHERE id =?`
 	}
-	_, err = o.Raw(sql, state, reportId).Exec()
+	_, err = o.Raw(sql, state, reportId, lastModifyAdminId, lastModifyAdminName).Exec()
 	return
 }
 
@@ -947,18 +947,18 @@ SELECT DISTINCT report_id FROM report_chapter WHERE publish_state = 2 AND (video
 }
 
 // PublishReportById 发布报告
-func PublishReportById(reportId int, publishTime time.Time) (err error) {
+func PublishReportById(reportId int, publishTime time.Time, lastModifyAdminId int, lastModifyAdminName string) (err error) {
 	o := orm.NewOrmUsingDB("rddp")
-	sql := `UPDATE report SET state = 2, publish_time = ?, pre_publish_time=null, pre_msg_send=0, modify_time = NOW() WHERE id = ? `
-	_, err = o.Raw(sql, publishTime, reportId).Exec()
+	sql := `UPDATE report SET state = 2, publish_time = ?, pre_publish_time=null, pre_msg_send=0, modify_time = NOW(),last_modify_admin_id=?,last_modify_admin_name=? WHERE id = ? `
+	_, err = o.Raw(sql, publishTime, lastModifyAdminId, lastModifyAdminName, reportId).Exec()
 	return
 }
 
 // ResetReportById 重置报告状态
-func ResetReportById(reportId, state int) (err error) {
+func ResetReportById(reportId, state int, lastModifyAdminId int, lastModifyAdminName string) (err error) {
 	o := orm.NewOrmUsingDB("rddp")
-	sql := `UPDATE report SET state = ?, pre_publish_time = null, pre_msg_send = 0, modify_time = NOW() WHERE id = ?`
-	_, err = o.Raw(sql, state, reportId).Exec()
+	sql := `UPDATE report SET state = ?, pre_publish_time = null, pre_msg_send = 0, modify_time = NOW(),last_modify_admin_id=?,last_modify_admin_name=? WHERE id = ?`
+	_, err = o.Raw(sql, state, lastModifyAdminId, lastModifyAdminName, reportId).Exec()
 	return
 }
 

+ 5 - 1
models/report_chapter.go

@@ -248,7 +248,11 @@ type EditChapterTrendTagReq struct {
 }
 
 // UpdateChapterAndTicker 更新章节及ticker
-func UpdateChapterAndTicker(chapterInfo *ReportChapter, updateCols []string, tickerList []*ReportChapterTicker) (err error) {
+func UpdateChapterAndTicker(reportInfo *Report, chapterInfo *ReportChapter, updateCols []string, tickerList []*ReportChapterTicker) (err error) {
+	// 更新报告的最近编辑人信息
+	if err = reportInfo.UpdateReport([]string{"LastModifyAdminId", "LastModifyAdminName", "ModifyTime"}); err != nil {
+		return
+	}
 	// 更新章节
 	if err = chapterInfo.UpdateChapter(updateCols); err != nil {
 		return

+ 9 - 1
models/report_v2.go

@@ -208,7 +208,7 @@ func AddChapterBaseInfoAndPermission(reportChapterInfo *ReportChapter, addReport
 // @param delReportChapterGrantIdList []int
 // @param delChapterPermissionMappingIdList []int
 // @return err error
-func EditChapterBaseInfoAndPermission(reportChapterInfo *ReportChapter, updateCols []string, addReportChapterGrantList []*report.ReportChapterGrant, addChapterPermissionMap []*report.ReportChapterPermissionMapping, delReportChapterGrantIdList, delChapterPermissionMappingIdList []int) (err error) {
+func EditChapterBaseInfoAndPermission(reportInfo *Report, reportChapterInfo *ReportChapter, updateCols []string, addReportChapterGrantList []*report.ReportChapterGrant, addChapterPermissionMap []*report.ReportChapterPermissionMapping, delReportChapterGrantIdList, delChapterPermissionMappingIdList []int) (err error) {
 	o := orm.NewOrmUsingDB("rddp")
 	to, err := o.Begin()
 	if err != nil {
@@ -222,6 +222,14 @@ func EditChapterBaseInfoAndPermission(reportChapterInfo *ReportChapter, updateCo
 		}
 	}()
 
+	// 变更报告的最后编辑人信息
+	{
+		_, err = to.Update(reportInfo, "LastModifyAdminId", "LastModifyAdminName", "ModifyTime")
+		if err != nil {
+			return
+		}
+	}
+
 	// 变更报告章节信息
 	if len(updateCols) > 0 {
 		_, err = to.Update(reportChapterInfo, updateCols...)

+ 35 - 35
services/report.go

@@ -88,41 +88,41 @@ func UpdateChaptersVideo(ids []int) (err error) {
 }
 
 // PublishTodayDayReport 发布今日晨报
-func PublishTodayDayReport() (err error) {
-	nowTime := time.Now()
-	startTime := time.Date(nowTime.Year(), nowTime.Month(), nowTime.Day(), 0, 0, 0, 0, time.Local)
-	endTime := time.Date(nowTime.Year(), nowTime.Month(), nowTime.Day(), 23, 59, 59, 0, time.Local)
-	todayReport, err := models.GetUnPublishDayReport(startTime, endTime)
-	if err != nil {
-		if err.Error() == utils.ErrNoRow() { //如果是找不到待发送的晨报,那么需要将err置空
-			err = nil
-		}
-		return
-	}
-	if todayReport != nil {
-		if _, tmpErr, _ := PublishChapterReport(todayReport, ""); tmpErr != nil {
-			err = tmpErr
-			return
-		}
-		// 定时发布的晨报自动推送客群
-		reportDetail, tmpErr := models.GetReportById(todayReport.Id)
-		if tmpErr != nil {
-			err = tmpErr
-			return
-		}
-		// 推送模板消息
-		if tmpErr = SendMiniProgramReportWxMsg(todayReport.Id); tmpErr != nil {
-			err = tmpErr
-			return
-		}
-		if tmpErr = models.ModifyReportThsMsgIsSend(reportDetail); tmpErr != nil {
-			err = tmpErr
-			return
-		}
-	}
-
-	return
-}
+//func PublishTodayDayReport() (err error) {
+//	nowTime := time.Now()
+//	startTime := time.Date(nowTime.Year(), nowTime.Month(), nowTime.Day(), 0, 0, 0, 0, time.Local)
+//	endTime := time.Date(nowTime.Year(), nowTime.Month(), nowTime.Day(), 23, 59, 59, 0, time.Local)
+//	todayReport, err := models.GetUnPublishDayReport(startTime, endTime)
+//	if err != nil {
+//		if err.Error() == utils.ErrNoRow() { //如果是找不到待发送的晨报,那么需要将err置空
+//			err = nil
+//		}
+//		return
+//	}
+//	if todayReport != nil {
+//		if _, tmpErr, _ := PublishChapterReport(todayReport, "", nil); tmpErr != nil {
+//			err = tmpErr
+//			return
+//		}
+//		// 定时发布的晨报自动推送客群
+//		reportDetail, tmpErr := models.GetReportById(todayReport.Id)
+//		if tmpErr != nil {
+//			err = tmpErr
+//			return
+//		}
+//		// 推送模板消息
+//		if tmpErr = SendMiniProgramReportWxMsg(todayReport.Id); tmpErr != nil {
+//			err = tmpErr
+//			return
+//		}
+//		if tmpErr = models.ModifyReportThsMsgIsSend(reportDetail); tmpErr != nil {
+//			err = tmpErr
+//			return
+//		}
+//	}
+//
+//	return
+//}
 
 // UpdateReportEs 更新报告/章节Es
 func UpdateReportEs(reportId int, publishState int) (err error) {

+ 10 - 8
services/report_v2.go

@@ -819,7 +819,7 @@ func EditChapterBaseInfoAndPermission(reportInfo *models.Report, reportChapterIn
 		}
 	}
 
-	err = models.EditChapterBaseInfoAndPermission(reportChapterInfo, updateCols, addChapterAdminList, addChapterPermissionList, delReportChapterGrantIdList, delChapterPermissionMappingIdList)
+	err = models.EditChapterBaseInfoAndPermission(reportInfo, reportChapterInfo, updateCols, addChapterAdminList, addChapterPermissionList, delReportChapterGrantIdList, delChapterPermissionMappingIdList)
 
 	return
 }
@@ -1059,7 +1059,7 @@ func PublishReport(reportId int, reportUrl string, sysUser *system.Admin) (tips
 
 	// 章节类型的报告(原来的晨周报)
 	if reportInfo.HasChapter == 1 {
-		tips, tmpErr, errMsg = PublishChapterReport(reportInfo, reportUrl)
+		tips, tmpErr, errMsg = PublishChapterReport(reportInfo, reportUrl, sysUser)
 		if tmpErr != nil {
 			err = errors.New("晨周报发布失败, Err:" + tmpErr.Error() + ", report_id:" + strconv.Itoa(reportId))
 		}
@@ -1083,7 +1083,7 @@ func PublishReport(reportId int, reportUrl string, sysUser *system.Admin) (tips
 
 	if state == models.ReportStatePublished {
 		// 发布报告
-		if tmpErr = models.PublishReportById(reportId, publishTime); tmpErr != nil {
+		if tmpErr = models.PublishReportById(reportId, publishTime, sysUser.AdminId, sysUser.RealName); tmpErr != nil {
 			err = errors.New("报告发布失败, Err:" + tmpErr.Error() + ", report_id:" + strconv.Itoa(reportId))
 			return
 		}
@@ -1097,7 +1097,7 @@ func PublishReport(reportId int, reportUrl string, sysUser *system.Admin) (tips
 		}()
 	} else {
 		// 从无审批切换为有审批, 状态重置
-		if e = models.ResetReportById(reportId, state); e != nil {
+		if e = models.ResetReportById(reportId, state, sysUser.AdminId, sysUser.RealName); e != nil {
 			errMsg = "操作失败"
 			err = fmt.Errorf("重置报告状态失败, Err: %s, ReportId: %d", e.Error(), reportId)
 			return
@@ -1142,7 +1142,7 @@ func PublishReport(reportId int, reportUrl string, sysUser *system.Admin) (tips
 // @return tips string
 // @return err error
 // @return errMsg string
-func PublishChapterReport(reportInfo *models.Report, reportUrl string) (tips string, err error, errMsg string) {
+func PublishChapterReport(reportInfo *models.Report, reportUrl string, sysUser *system.Admin) (tips string, err error, errMsg string) {
 	reportId := reportInfo.Id
 	if reportInfo.State == 2 {
 		return
@@ -1188,7 +1188,7 @@ func PublishChapterReport(reportInfo *models.Report, reportUrl string) (tips str
 	// 如果状态不是已发布,那么就重置状态
 	if state != models.ReportStatePublished {
 		// 从无审批切换为有审批, 状态重置
-		if e = models.ResetReportById(reportId, state); e != nil {
+		if e = models.ResetReportById(reportId, state, sysUser.AdminId, sysUser.RealName); e != nil {
 			//errMsg = "操作失败"
 			err = fmt.Errorf("重置报告状态失败, Err: %s, ReportId: %d", e.Error(), reportId)
 			return
@@ -1198,10 +1198,12 @@ func PublishChapterReport(reportInfo *models.Report, reportUrl string) (tips str
 
 	// 需发布整期
 	updateCols := make([]string, 0)
-	updateCols = append(updateCols, "Title", "State", "ModifyTime")
+	reportInfo.LastModifyAdminId = sysUser.AdminId
+	reportInfo.LastModifyAdminName = sysUser.RealName
+	updateCols = append(updateCols, "LastModifyAdminId", "LastModifyAdminName", "Title", "State", "ModifyTime")
 
 	// 发布后标题调整
-	//title := report.Title
+	//title := reportInfo.Title
 	//title = strings.ReplaceAll(title, "【弘则FICC晨报】", "")
 	//title = strings.ReplaceAll(title, "【弘则FICC周报】", "")
 	//if title == "" {

+ 21 - 22
services/task.go

@@ -2,7 +2,6 @@ package services
 
 import (
 	"eta/eta_api/models"
-	"eta/eta_api/services/alarm_msg"
 	"eta/eta_api/services/data"
 	"eta/eta_api/utils"
 	"fmt"
@@ -51,27 +50,27 @@ func Task() {
 	fmt.Println("task end")
 }
 
-// 每日发布晨报
-func AutoPublishDayReport() {
-	defer func() {
-		if err := recover(); err != nil {
-			fmt.Println("[AutoPublishDayReport]", err)
-		}
-	}()
-
-	// 每日8:42发布晨报
-	ticker := time.Tick(50 * time.Second)
-	for range ticker {
-		nowTime := time.Now()
-		clock := nowTime.Format("1504")
-		if clock == "0842" {
-			if err := PublishTodayDayReport(); err != nil {
-				go alarm_msg.SendAlarmMsg(fmt.Sprint("每日晨报自动发送 AutoPublishDayReport ERR:", err), 3)
-				//utils.SendEmail(utils.APPNAME+" "+utils.RunMode+" 失败提醒", fmt.Sprint("AutoPublishDayReport ERR:", err), utils.EmailSendToUsers)
-			}
-		}
-	}
-}
+//// 每日发布晨报
+//func AutoPublishDayReport() {
+//	defer func() {
+//		if err := recover(); err != nil {
+//			fmt.Println("[AutoPublishDayReport]", err)
+//		}
+//	}()
+//
+//	// 每日8:42发布晨报
+//	ticker := time.Tick(50 * time.Second)
+//	for range ticker {
+//		nowTime := time.Now()
+//		clock := nowTime.Format("1504")
+//		if clock == "0842" {
+//			if err := PublishTodayDayReport(); err != nil {
+//				go alarm_msg.SendAlarmMsg(fmt.Sprint("每日晨报自动发送 AutoPublishDayReport ERR:", err), 3)
+//				//utils.SendEmail(utils.APPNAME+" "+utils.RunMode+" 失败提醒", fmt.Sprint("AutoPublishDayReport ERR:", err), utils.EmailSendToUsers)
+//			}
+//		}
+//	}
+//}
 
 // ImportManualDataRefresh 导入手工数据后的刷新
 func ImportManualDataRefresh() {