浏览代码

报告编辑锁时长

hsun 4 月之前
父节点
当前提交
554f37f6da
共有 4 个文件被更改,包括 37 次插入35 次删除
  1. 31 31
      models/report.go
  2. 2 2
      services/ppt.go
  3. 2 2
      services/report.go
  4. 2 0
      utils/constants.go

+ 31 - 31
models/report.go

@@ -303,37 +303,35 @@ func DeleteReport(reportIds int) (err error) {
 }
 
 type ReportDetail struct {
-	Id                 int    `gorm:"column:id;primary_key;autoIncrement" description:"报告Id"`
-	AddType            int    `gorm:"column:add_type" description:"新增方式:1:新增报告,2:继承报告"`
-	ClassifyIdFirst    int    `gorm:"column:classify_id_first" description:"一级分类id"`
-	ClassifyNameFirst  string `gorm:"column:classify_name_first" description:"一级分类名称"`
-	ClassifyIdSecond   int    `gorm:"column:classify_id_second" description:"二级分类id"`
-	ClassifyNameSecond string `gorm:"column:classify_name_second" description:"二级分类名称"`
-	Title              string `gorm:"column:title" description:"标题"`
-	Abstract           string `gorm:"column:abstract" description:"摘要"`
-	Author             string `gorm:"column:author" description:"作者"`
-	Frequency          string `gorm:"column:frequency" description:"频度"`
-	CreateTime         string `gorm:"column:create_time" description:"创建时间"`
-	ModifyTime         string `gorm:"column:modify_time" description:"修改时间"`
-	State              int    `gorm:"column:state" description:"1:未发布,2:已发布"`
-	PublishTime        string `gorm:"column:publish_time" description:"发布时间"`
-	PrePublishTime     string `gorm:"column:pre_publish_time" description:"预发布时间"`
-	Stage              int    `gorm:"column:stage" description:"期数"`
-	MsgIsSend          int    `gorm:"column:msg_is_send" description:"消息是否已发送,0:否,1:是"`
-	PreMsgSend         int    `gorm:"column:pre_msg_send" description:"定时发布成功后是否立即推送模版消息:0否,1是"`
-	Content            string `gorm:"column:content" description:"内容"`
-	VideoUrl           string `gorm:"column:video_url" description:"音频文件URL"`
-	VideoName          string `gorm:"column:video_name" description:"音频文件名称"`
-	VideoPlaySeconds   string `gorm:"column:video_play_seconds" description:"音频播放时长"`
-	ContentSub         string `gorm:"column:content_sub" description:"内容前两个章节"`
-	ThsMsgIsSend       int    `gorm:"column:ths_msg_is_send" description:"客户群消息是否已发送,0:否,1:是"`
-	HasChapter         int    `gorm:"column:has_chapter" description:"是否有章节 0-否 1-是"`
-	ChapterType        string `gorm:"column:chapter_type" description:"章节类型 day-晨报 week-周报"`
-	AdminId            int    `gorm:"column:admin_id" description:"创建者账号"`
-	AdminRealName      string `gorm:"column:admin_real_name" description:"创建者姓名"`
-	ReportCode         string `gorm:"column:report_code" description:"报告唯一编码"`
-
-	// eta1.8.3(研报改版)相关内容
+	Id                  int    `gorm:"column:id;primary_key;autoIncrement" description:"报告Id"`
+	AddType             int    `gorm:"column:add_type" description:"新增方式:1:新增报告,2:继承报告"`
+	ClassifyIdFirst     int    `gorm:"column:classify_id_first" description:"一级分类id"`
+	ClassifyNameFirst   string `gorm:"column:classify_name_first" description:"一级分类名称"`
+	ClassifyIdSecond    int    `gorm:"column:classify_id_second" description:"二级分类id"`
+	ClassifyNameSecond  string `gorm:"column:classify_name_second" description:"二级分类名称"`
+	Title               string `gorm:"column:title" description:"标题"`
+	Abstract            string `gorm:"column:abstract" description:"摘要"`
+	Author              string `gorm:"column:author" description:"作者"`
+	Frequency           string `gorm:"column:frequency" description:"频度"`
+	CreateTime          string `gorm:"column:create_time" description:"创建时间"`
+	ModifyTime          string `gorm:"column:modify_time" description:"修改时间"`
+	State               int    `gorm:"column:state" description:"1:未发布,2:已发布"`
+	PublishTime         string `gorm:"column:publish_time" description:"发布时间"`
+	PrePublishTime      string `gorm:"column:pre_publish_time" description:"预发布时间"`
+	Stage               int    `gorm:"column:stage" description:"期数"`
+	MsgIsSend           int    `gorm:"column:msg_is_send" description:"消息是否已发送,0:否,1:是"`
+	PreMsgSend          int    `gorm:"column:pre_msg_send" description:"定时发布成功后是否立即推送模版消息:0否,1是"`
+	Content             string `gorm:"column:content" description:"内容"`
+	VideoUrl            string `gorm:"column:video_url" description:"音频文件URL"`
+	VideoName           string `gorm:"column:video_name" description:"音频文件名称"`
+	VideoPlaySeconds    string `gorm:"column:video_play_seconds" description:"音频播放时长"`
+	ContentSub          string `gorm:"column:content_sub" description:"内容前两个章节"`
+	ThsMsgIsSend        int    `gorm:"column:ths_msg_is_send" description:"客户群消息是否已发送,0:否,1:是"`
+	HasChapter          int    `gorm:"column:has_chapter" description:"是否有章节 0-否 1-是"`
+	ChapterType         string `gorm:"column:chapter_type" description:"章节类型 day-晨报 week-周报"`
+	AdminId             int    `gorm:"column:admin_id" description:"创建者账号"`
+	AdminRealName       string `gorm:"column:admin_real_name" description:"创建者姓名"`
+	ReportCode          string `gorm:"column:report_code" description:"报告唯一编码"`
 	ContentStruct       string `gorm:"column:content_struct" description:"内容组件"`
 	LastModifyAdminId   int    `gorm:"column:last_modify_admin_id" description:"最后更新人ID"`
 	LastModifyAdminName string `gorm:"column:last_modify_admin_name" description:"最后更新人姓名"`
@@ -354,6 +352,8 @@ type ReportDetail struct {
 	ReportLayout        int8   `gorm:"column:report_layout" description:"报告布局,1:常规布局,2:智能布局。默认:1"`
 	IsPublicPublish     int8   `gorm:"column:is_public_publish" description:"是否公开发布,1:是,2:否"`
 	ReportCreateTime    string `gorm:"column:report_create_time" description:"报告时间创建时间"`
+	ReportSource        int    `gorm:"column:report_source" description:"报告来源:1-系统内;2-智力共享"`
+	OutReportId         string `gorm:"column:out_report_id" description:"外部报告ID(或编码)"`
 }
 
 func GetReportById(reportId int) (item *ReportDetail, err error) {

+ 2 - 2
services/ppt.go

@@ -364,7 +364,7 @@ func UpdatePptEditing(pptId, status, userId int, userName string, isEn bool) (re
 			ret.Editor = userName
 			ret.Tips = fmt.Sprintf("当前%s正在编辑PPT", userName)
 			b, _ := json.Marshal(ret)
-			utils.Rc.SetNX(cacheKey, string(b), 3*time.Minute)
+			utils.Rc.SetNX(cacheKey, string(b), utils.ReportPptEditingWait*time.Second)
 			return
 		}
 
@@ -373,7 +373,7 @@ func UpdatePptEditing(pptId, status, userId int, userName string, isEn bool) (re
 			// 编辑用户与当前用户不一致, 返回编辑用户, 一致则更新缓存
 			if userId == editor.AdminId {
 				b, _ := json.Marshal(editor)
-				utils.Rc.Do("SETEX", cacheKey, int64(180), string(b))
+				utils.Rc.Do("SETEX", cacheKey, int64(utils.ReportPptEditingWait), string(b))
 			}
 			ret = editor
 			return

+ 2 - 2
services/report.go

@@ -818,9 +818,9 @@ func UpdateReportEditMark(reportId, reportChapterId, nowUserId, status int, nowU
 			return
 		}
 		if opUserId > 0 {
-			utils.Rc.Do("SETEX", key, int64(60), string(bt)) //3分钟缓存
+			utils.Rc.Do("SETEX", key, int64(utils.ReportPptEditingWait), string(bt)) //3分钟缓存
 		} else {
-			utils.Rc.SetNX(key, string(bt), time.Second*60*1) //3分钟缓存
+			utils.Rc.SetNX(key, string(bt), utils.ReportPptEditingWait*time.Second) //3分钟缓存
 		}
 	} else if status == 3 {
 		//完成编辑,开始清除编辑缓存

+ 2 - 0
utils/constants.go

@@ -485,3 +485,5 @@ const (
 	ReportWriteTypeSingle = 1 // 报告协作方式-个人
 	ReportWriteTypeGroup  = 2 // 报告协作方式-多人
 )
+
+const ReportPptEditingWait = 30 // 报告/PPT编辑退出后其他人的等待时长(单位:s)