Forráskód Böngészése

feat:新增添加报告章节接口

Roc 10 hónapja
szülő
commit
ef8fafcda8

+ 44 - 45
controllers/report_chapter.go

@@ -47,7 +47,7 @@ func (this *ReportController) AddChapter() {
 	}
 
 	// 获取报告详情
-	reportInfo, err := models.GetReportById(req.ReportId)
+	reportInfo, err := models.GetReportByReportId(req.ReportId)
 	if err != nil {
 		br.Msg = "报告信息有误"
 		br.ErrMsg = "报告信息有误, Err: " + err.Error()
@@ -59,34 +59,34 @@ func (this *ReportController) AddChapter() {
 		return
 	}
 
-	newContent := req.Content
-	// 更新章节及指标
-	contentSub := ""
-	if req.Content != "" {
-		e := utils.ContentXssCheck(req.Content)
-		if e != nil {
-			br.Msg = "存在非法标签"
-			br.ErrMsg = "存在非法标签, Err: " + e.Error()
-			return
-		}
-		contentClean, e := services.FilterReportContentBr(req.Content)
-		if e != nil {
-			br.Msg = "内容去除前后空格失败"
-			br.ErrMsg = "内容去除前后空格失败, Err: " + e.Error()
-			return
-		}
-		req.Content = contentClean
-
-		contentSub, err = services.GetReportContentSub(req.Content)
-		if err != nil {
-			br.Msg = "内容分段解析失败"
-			br.ErrMsg = "编辑报告章节-解析 ContentSub 失败, Err: " + err.Error()
-			return
-		}
-	}
-	if req.Content == "" {
-		req.Content = newContent
-	}
+	//newContent := req.Content
+	//// 更新章节及指标
+	//contentSub := ""
+	//if req.Content != "" {
+	//	e := utils.ContentXssCheck(req.Content)
+	//	if e != nil {
+	//		br.Msg = "存在非法标签"
+	//		br.ErrMsg = "存在非法标签, Err: " + e.Error()
+	//		return
+	//	}
+	//	contentClean, e := services.FilterReportContentBr(req.Content)
+	//	if e != nil {
+	//		br.Msg = "内容去除前后空格失败"
+	//		br.ErrMsg = "内容去除前后空格失败, Err: " + e.Error()
+	//		return
+	//	}
+	//	req.Content = contentClean
+	//
+	//	contentSub, err = services.GetReportContentSub(req.Content)
+	//	if err != nil {
+	//		br.Msg = "内容分段解析失败"
+	//		br.ErrMsg = "编辑报告章节-解析 ContentSub 失败, Err: " + err.Error()
+	//		return
+	//	}
+	//}
+	//if req.Content == "" {
+	//	req.Content = newContent
+	//}
 
 	reportChapterInfo := new(models.ReportChapter)
 	reportChapterInfo.ReportId = reportInfo.Id
@@ -95,11 +95,12 @@ func (this *ReportController) AddChapter() {
 
 	reportChapterInfo.Title = req.Title
 	reportChapterInfo.AddType = 1
-	reportChapterInfo.Author = req.Author
-	reportChapterInfo.Content = html.EscapeString(req.Content)
-	reportChapterInfo.ContentSub = html.EscapeString(contentSub)
+	//reportChapterInfo.Author = req.Author
+	//reportChapterInfo.Content = html.EscapeString(req.Content)
+	//reportChapterInfo.ContentSub = html.EscapeString(contentSub)
 	reportChapterInfo.IsEdit = 1
-	reportChapterInfo.CreateTime = req.CreateTime
+	//reportChapterInfo.CreateTime = req.CreateTime
+	reportChapterInfo.CreateTime = reportInfo.CreateTime
 	reportChapterInfo.VideoKind = 1
 
 	reportChapterInfo.ClassifyIdSecond = reportInfo.ClassifyIdSecond
@@ -109,23 +110,21 @@ func (this *ReportController) AddChapter() {
 	reportChapterInfo.LastModifyAdminId = sysUser.AdminId
 	reportChapterInfo.LastModifyAdminName = sysUser.RealName
 	reportChapterInfo.ContentModifyTime = time.Now()
-	reportChapterInfo.ContentStruct = html.EscapeString(req.ContentStruct)
-	reportChapterInfo.CanvasColor = req.CanvasColor
-	reportChapterInfo.HeadResourceId = req.HeadResourceId
-	reportChapterInfo.EndResourceId = req.EndResourceId
+	//reportChapterInfo.ContentStruct = html.EscapeString(req.ContentStruct)
+	//reportChapterInfo.CanvasColor = req.CanvasColor
+	//reportChapterInfo.HeadResourceId = req.HeadResourceId
+	//reportChapterInfo.EndResourceId = req.EndResourceId
 
-	err = reportChapterInfo.Add()
+	err, errMsg := services.AddChapterBaseInfoAndPermission(reportInfo, reportChapterInfo, req.PermissionIdList, req.AdminIdList)
 	if err != nil {
-		br.Msg = "新增失败"
-		br.ErrMsg = "报告章节内容保存失败, Err: " + err.Error()
+		br.Msg = "保存失败"
+		if errMsg != "" {
+			br.Msg = errMsg
+		}
+		br.ErrMsg = "保存失败,Err:" + err.Error()
 		return
 	}
 
-	// 备份关键数据
-	chapters := make([]*models.ReportChapter, 0)
-	chapters = append(chapters, reportChapterInfo)
-	go services.SaveReportLogs(nil, chapters, sysUser.AdminId, sysUser.RealName)
-
 	br.Ret = 200
 	br.Success = true
 	br.Msg = "保存成功"

+ 4 - 14
models/report_chapter.go

@@ -118,20 +118,10 @@ func GetPublishedChapterListByReportId(reportId int) (list []*ReportChapter, err
 // AddReportChapterReq
 // @Description: 新增报告章节请求体
 type AddReportChapterReq struct {
-	ReportId   int    `description:"报告ID"`
-	Title      string `description:"标题"`
-	Author     string `description:"作者"`
-	Content    string `description:"内容"`
-	CreateTime string `description:"发布时间"`
-
-	// 以下是智能研报相关
-	ContentStruct  string `description:"内容组件"`
-	HeadImg        string `description:"报告头图地址"`
-	EndImg         string `description:"报告尾图地址"`
-	CanvasColor    string `description:"画布颜色"`
-	NeedSplice     int    `description:"是否拼接版头版位的标记,主要是为了兼容历史报告。0-不需要 1-需要"`
-	HeadResourceId int    `description:"版头资源ID"`
-	EndResourceId  int    `description:"版尾资源ID"`
+	ReportId         int    `description:"报告ID"`
+	Title            string `description:"标题"`
+	PermissionIdList []int  `description:"报告关联的品种权限"`
+	AdminIdList      []int  `description:"授权的编辑人id列表"`
 }
 
 // EditReportChapterReq 编辑报告章节请求体

+ 54 - 0
models/report_v2.go

@@ -130,6 +130,60 @@ func EditReportAndPermission(reportInfo *Report, updateCols []string, addReportG
 	return
 }
 
+// AddChapterBaseInfoAndPermission
+// @Description: 新增报告章节的基础信息、授权用户权限
+// @author: Roc
+// @datetime 2024-06-11 15:33:50
+// @param reportChapterInfo *ReportChapter
+// @param addReportChapterGrantList []*report.ReportChapterGrant
+// @param addChapterPermissionMap []*report.ReportChapterPermissionMapping
+// @return err error
+func AddChapterBaseInfoAndPermission(reportChapterInfo *ReportChapter, addReportChapterGrantList []*report.ReportChapterGrant, addChapterPermissionMap []*report.ReportChapterPermissionMapping) (err error) {
+	o := orm.NewOrmUsingDB("rddp")
+	to, err := o.Begin()
+	if err != nil {
+		return
+	}
+	defer func() {
+		if err != nil {
+			_ = to.Rollback()
+		} else {
+			_ = to.Commit()
+		}
+	}()
+
+	lastId, err := to.Insert(reportChapterInfo)
+	if err != nil {
+		return
+	}
+	reportChapterInfo.ReportChapterId = int(lastId)
+
+	// 新增报告章节授权用户
+	if len(addReportChapterGrantList) > 0 {
+		for k, _ := range addReportChapterGrantList {
+			addReportChapterGrantList[k].ReportChapterId = reportChapterInfo.ReportChapterId
+		}
+		_, err = to.InsertMulti(500, addReportChapterGrantList)
+		if err != nil {
+			return
+		}
+	}
+
+	// 新增报告章节的品种配置
+	if len(addChapterPermissionMap) > 0 {
+		for k, _ := range addChapterPermissionMap {
+			addChapterPermissionMap[k].ReportChapterId = reportChapterInfo.ReportChapterId
+		}
+
+		_, err = to.InsertMulti(500, addChapterPermissionMap)
+		if err != nil {
+			return
+		}
+	}
+
+	return
+}
+
 // EditChapterBaseInfoAndPermission
 // @Description: 修改报告章节的基础信息、授权用户权限、品种权限
 // @author: Roc

+ 9 - 9
routers/commentsRouter.go

@@ -7783,15 +7783,6 @@ func init() {
             Filters: nil,
             Params: nil})
 
-    beego.GlobalControllerRouter["eta/eta_api/controllers:ReportController"] = append(beego.GlobalControllerRouter["eta/eta_api/controllers:ReportController"],
-        beego.ControllerComments{
-            Method: "AddDayWeekChapter",
-            Router: `/addChapter`,
-            AllowHTTPMethods: []string{"post"},
-            MethodParams: param.Make(),
-            Filters: nil,
-            Params: nil})
-
     beego.GlobalControllerRouter["eta/eta_api/controllers:ReportController"] = append(beego.GlobalControllerRouter["eta/eta_api/controllers:ReportController"],
         beego.ControllerComments{
             Method: "CancelApprove",
@@ -7819,6 +7810,15 @@ func init() {
             Filters: nil,
             Params: nil})
 
+    beego.GlobalControllerRouter["eta/eta_api/controllers:ReportController"] = append(beego.GlobalControllerRouter["eta/eta_api/controllers:ReportController"],
+        beego.ControllerComments{
+            Method: "AddChapter",
+            Router: `/chapter/add`,
+            AllowHTTPMethods: []string{"post"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
     beego.GlobalControllerRouter["eta/eta_api/controllers:ReportController"] = append(beego.GlobalControllerRouter["eta/eta_api/controllers:ReportController"],
         beego.ControllerComments{
             Method: "EditChapterBaseInfoAndPermission",

+ 49 - 0
services/report_v2.go

@@ -493,6 +493,55 @@ func getAddChapter(reportInfo *models.Report, minClassifyId, inheritReportId int
 	return
 }
 
+// AddChapterBaseInfoAndPermission
+// @Description:  添加章节基本信息及权限
+// @author: Roc
+// @datetime 2024-06-11 15:35:23
+// @param reportInfo *models.Report
+// @param reportChapterInfo *models.ReportChapter
+// @param permissionIdList []int
+// @param adminIdList []int
+// @return err error
+// @return errMsg string
+func AddChapterBaseInfoAndPermission(reportInfo *models.Report, reportChapterInfo *models.ReportChapter, permissionIdList []int, adminIdList []int) (err error, errMsg string) {
+	errMsg = "新增失败"
+
+	if reportInfo.State == 2 {
+		errMsg = "该报告已发布,不允许编辑"
+		err = errors.New(errMsg)
+		return
+	}
+
+	// 需要添加的报告章节授权数据
+	addChapterAdminList := make([]*report.ReportChapterGrant, 0)
+	for _, adminId := range adminIdList {
+		//新增授权
+		addChapterAdminList = append(addChapterAdminList, &report.ReportChapterGrant{
+			//GrantId:         0,
+			//ReportChapterId: reportChapterInfo.ReportChapterId,
+			AdminId:    adminId,
+			CreateTime: time.Now(),
+		})
+	}
+
+	// 需要添加的报告章节品种权限数据
+	addChapterPermissionList := make([]*report.ReportChapterPermissionMapping, 0)
+	// 品种权限
+	for _, permissionId := range permissionIdList {
+		// 如果不存在,那么就新增品种权限配置
+		addChapterPermissionList = append(addChapterPermissionList, &report.ReportChapterPermissionMapping{
+			//ReportChapterPermissionMappingId:         0,
+			//ReportChapterId:   reportChapterInfo.ReportChapterId,
+			ChartPermissionId: permissionId,
+			CreateTime:        time.Now(),
+		})
+	}
+
+	err = models.AddChapterBaseInfoAndPermission(reportChapterInfo, addChapterAdminList, addChapterPermissionList)
+
+	return
+}
+
 // EditChapterBaseInfoAndPermission
 // @Description: 修改报告章节的基础信息、授权用户权限、品种权限
 // @author: Roc