|
@@ -4,6 +4,7 @@ import (
|
|
|
"encoding/json"
|
|
|
"eta_gn/eta_report/models"
|
|
|
"eta_gn/eta_report/services"
|
|
|
+ "eta_gn/eta_report/services/knowledge"
|
|
|
"eta_gn/eta_report/utils"
|
|
|
"fmt"
|
|
|
"strconv"
|
|
@@ -140,6 +141,7 @@ func (this *ReportOpenController) ReportCreate() {
|
|
|
br.Msg = "请输入课题结束时间"
|
|
|
return
|
|
|
}
|
|
|
+ req.Abstract = strings.TrimSpace(req.Abstract)
|
|
|
topicTime, e := time.ParseInLocation(utils.FormatDateTime, req.EndTime, time.Local)
|
|
|
if e != nil {
|
|
|
br.Msg = "课题结束时间格式有误"
|
|
@@ -188,7 +190,7 @@ func (this *ReportOpenController) ReportCreate() {
|
|
|
// 研报类型
|
|
|
var reportId int
|
|
|
if classify.ClassifyType == utils.ReportTypeDefault {
|
|
|
- reportId, e = services.CreateReport(req.ReportId, req.ClassifyId, req.Title, topicTime, req.Creator, req.Authors)
|
|
|
+ reportId, e = services.CreateReport(req.ReportId, req.ClassifyId, req.Title, req.Abstract, topicTime, req.Creator, req.Authors)
|
|
|
if e != nil {
|
|
|
br.Msg = "操作失败"
|
|
|
br.ErrMsg = fmt.Sprintf("新增报告失败, %v", e)
|
|
@@ -198,7 +200,7 @@ func (this *ReportOpenController) ReportCreate() {
|
|
|
|
|
|
// PPT类型
|
|
|
if classify.ClassifyType == utils.ReportTypePPT {
|
|
|
- reportId, e = services.CreatePptReport(req.ReportId, req.ClassifyId, req.Title, topicTime, req.Creator, req.Authors)
|
|
|
+ reportId, e = services.CreatePptReport(req.ReportId, req.ClassifyId, req.Title, req.Abstract, topicTime, req.Creator, req.Authors)
|
|
|
if e != nil {
|
|
|
br.Msg = "操作失败"
|
|
|
br.ErrMsg = fmt.Sprintf("新增PPT报告失败, %v", e)
|
|
@@ -242,6 +244,7 @@ func (this *ReportOpenController) ReportModify() {
|
|
|
br.ErrMsg = fmt.Sprintf("智力共享报告ID有误, %d", req.ReportId)
|
|
|
return
|
|
|
}
|
|
|
+ req.Abstract = strings.TrimSpace(req.Abstract)
|
|
|
req.Title = strings.TrimSpace(req.Title)
|
|
|
if req.Title == "" {
|
|
|
br.Msg = "请输入报告标题"
|
|
@@ -270,7 +273,7 @@ func (this *ReportOpenController) ReportModify() {
|
|
|
br.Msg = "报告已发布,不可编辑"
|
|
|
return
|
|
|
}
|
|
|
- if e = services.EditReport(reportExist, req.Title, topicTime, req.Authors); e != nil {
|
|
|
+ if e = services.EditReport(reportExist, req.Title, req.Abstract, topicTime, req.Authors); e != nil {
|
|
|
br.Msg = "操作失败"
|
|
|
br.ErrMsg = fmt.Sprintf("编辑报告失败, %v", e)
|
|
|
return
|
|
@@ -283,7 +286,7 @@ func (this *ReportOpenController) ReportModify() {
|
|
|
br.Msg = "报告已发布,不可编辑"
|
|
|
return
|
|
|
}
|
|
|
- if e = services.EditPptReport(pptExist, req.Title, topicTime, req.Authors); e != nil {
|
|
|
+ if e = services.EditPptReport(pptExist, req.Title, req.Abstract, topicTime, req.Authors); e != nil {
|
|
|
br.Msg = "操作失败"
|
|
|
br.ErrMsg = fmt.Sprintf("编辑PPT报告失败, %v", e)
|
|
|
return
|
|
@@ -396,6 +399,42 @@ func (this *ReportOpenController) ReportApprove() {
|
|
|
br.ErrMsg = fmt.Sprintf("更新报告状态失败, %v", e)
|
|
|
return
|
|
|
}
|
|
|
+ if req.ApproveType == 1 {
|
|
|
+ // 审批通过,将PPT或研报加入报告库中
|
|
|
+ go func() {
|
|
|
+ msg, err := knowledge.ReportKnowledgeResourceAdd(v.Title, []string{v.DetailPdfUrl}, v.AdminId, v.AdminRealName, "市场研究报告/内部报告/日常报告", "市场信息研究所", time.Now())
|
|
|
+ if err != nil {
|
|
|
+ utils.FileLog.Error(fmt.Sprintf("ReportKnowledgeResourceAdd-报告知识资源库添加失败,reportId:%d,msg:%s,err: %v", v.Id, msg, err))
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }()
|
|
|
+ go func() {
|
|
|
+ // 审批通过,将摘要加入知识资源库观点中
|
|
|
+ var classifyId int
|
|
|
+ if v.ClassifyIdThird > 0 {
|
|
|
+ classifyId = v.ClassifyIdThird
|
|
|
+ } else if v.ClassifyIdSecond > 0 {
|
|
|
+ classifyId = v.ClassifyIdSecond
|
|
|
+ } else {
|
|
|
+ classifyId = v.ClassifyIdFirst
|
|
|
+ }
|
|
|
+ v.Abstract = strings.TrimSpace(v.Abstract)
|
|
|
+ if v.Abstract == "" {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ classifyId, err := knowledge.ReportKnowledgeResourceClassifyCheckAndSave(classifyId)
|
|
|
+ if err != nil {
|
|
|
+ utils.FileLog.Error(fmt.Sprintf("ReportKnowledgeResourceClassifyCheckAndSave-报告分类保存失败,reportId:%d,classifyId:%d,err: %v", v.Id, classifyId, err))
|
|
|
+ return
|
|
|
+ }
|
|
|
+ msg, err := knowledge.ViewPointSave(0, v.AdminId, v.AdminRealName, v.Title, v.Abstract, "市场信息研究所", "", classifyId, &v.ApproveTime)
|
|
|
+ if err != nil {
|
|
|
+ utils.FileLog.Error(fmt.Sprintf("ViewPointSave-报告摘要知识资源库添加失败,reportId:%d,msg:%s,err: %v", v.Id, msg, err))
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }()
|
|
|
+ }
|
|
|
+
|
|
|
if req.ApproveType == 3 || req.ApproveType == 4 {
|
|
|
// 撤回/提审暂不发消息
|
|
|
continue
|
|
@@ -478,6 +517,35 @@ func (this *ReportOpenController) ReportApprove() {
|
|
|
br.ErrMsg = fmt.Sprintf("更新报告状态失败, %v", e)
|
|
|
return
|
|
|
}
|
|
|
+
|
|
|
+ if req.ApproveType == 1 {
|
|
|
+ // 审批通过,将PPT或研报加入报告库中
|
|
|
+ go func() {
|
|
|
+ msg, err := knowledge.ReportKnowledgeResourceAdd(v.Title, []string{v.PptxUrl}, v.AdminId, v.AdminRealName, "市场研究报告/内部报告/日常报告", "市场信息研究所", time.Now())
|
|
|
+ if err != nil {
|
|
|
+ utils.FileLog.Error(fmt.Sprintf("ReportKnowledgeResourceAdd-PPT知识资源报告库添加失败,pptId:%d,msg:%s,err: %v", v.PptId, msg, err))
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }()
|
|
|
+ go func() {
|
|
|
+ // 审批通过,将摘要加入知识资源库观点中
|
|
|
+ v.Abstract = strings.TrimSpace(v.Abstract)
|
|
|
+ if v.Abstract == "" {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ classifyId, err := knowledge.ReportKnowledgeResourceClassifyCheckAndSave(v.ClassifyId)
|
|
|
+ if err != nil {
|
|
|
+ utils.FileLog.Error(fmt.Sprintf("ReportKnowledgeResourceClassifyCheckAndSave-PPT分类保存失败,pptId:%d,classifyId:%d,err: %v", v.PptId, v.ClassifyId, err))
|
|
|
+ return
|
|
|
+ }
|
|
|
+ msg, err := knowledge.ViewPointSave(0, v.AdminId, v.AdminRealName, v.Title, v.Abstract, "市场信息研究所", "", classifyId, &v.ApproveTime)
|
|
|
+ if err != nil {
|
|
|
+ utils.FileLog.Error(fmt.Sprintf("ViewPointSave-ppt摘要知识库添加失败,pptId:%d,msg:%s,err: %v", v.PptId, msg, err))
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }()
|
|
|
+ }
|
|
|
+
|
|
|
if req.ApproveType == 3 || req.ApproveType == 4 {
|
|
|
// 撤回/提审暂不发消息
|
|
|
continue
|
|
@@ -611,3 +679,170 @@ func (this *ReportOpenController) ReportRemove() {
|
|
|
br.Success = true
|
|
|
br.Msg = "操作成功"
|
|
|
}
|
|
|
+
|
|
|
+// ViewPointSave
|
|
|
+// @Title 观点保存
|
|
|
+// @Description 观点保存
|
|
|
+// @Param request body models.ReportViewPointReq true "type json string"
|
|
|
+// @Success 200 string "操作成功"
|
|
|
+// @router /viewpoint/save [post]
|
|
|
+func (this *ReportOpenController) ViewPointSave() {
|
|
|
+ br := new(models.BaseResponse).Init()
|
|
|
+ defer func() {
|
|
|
+ if br.ErrMsg == "" {
|
|
|
+ br.IsSendEmail = false
|
|
|
+ }
|
|
|
+ this.Data["json"] = br
|
|
|
+ this.ServeJSON()
|
|
|
+ }()
|
|
|
+ var req *models.ReportViewPointSaveReq
|
|
|
+ if e := json.Unmarshal(this.Ctx.Input.RequestBody, &req); e != nil {
|
|
|
+ br.Msg = "参数解析异常"
|
|
|
+ br.ErrMsg = fmt.Sprintf("参数解析失败,%v", e)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ req.Content = strings.TrimSpace(req.Content)
|
|
|
+ req.Title = strings.TrimSpace(req.Title)
|
|
|
+ req.Category = strings.TrimSpace(req.Category)
|
|
|
+ if req.Title == "" {
|
|
|
+ br.Msg = "观点标题不能为空"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if req.Content == "" {
|
|
|
+ br.Msg = "观点内容不能为空"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if req.Category == "" {
|
|
|
+ br.Msg = "观点分类不能为空"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if req.DataDate == "" {
|
|
|
+ br.Msg = "观点日期不能为空"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ dataDate, err := time.ParseInLocation(utils.FormatDateTime, req.DataDate, time.Local)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "观点日期格式不正确"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ msg, err := knowledge.ViewPointSave(req.Id, 0, "", req.Title, req.Content, req.DataSource, req.Category, 0, &dataDate)
|
|
|
+ if err != nil {
|
|
|
+ if msg == "" {
|
|
|
+ msg = "保存观点失败"
|
|
|
+ }
|
|
|
+ br.Msg = msg
|
|
|
+ br.ErrMsg = fmt.Sprintf("保存观点失败, %v", err)
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ br.Msg = "保存观点成功"
|
|
|
+ br.Success = true
|
|
|
+ br.Ret = 200
|
|
|
+}
|
|
|
+
|
|
|
+// @Title 观点删除
|
|
|
+// @Description 观点删除
|
|
|
+// @Param request body models.ReportViewPointReq true "type json string"
|
|
|
+// @Success 200 string "操作成功"
|
|
|
+// @router /viewpoint/delete [post]
|
|
|
+func (this *ReportOpenController) ViewPointDelete() {
|
|
|
+ br := new(models.BaseResponse).Init()
|
|
|
+ defer func() {
|
|
|
+ if br.ErrMsg == "" {
|
|
|
+ br.IsSendEmail = false
|
|
|
+ }
|
|
|
+ this.Data["json"] = br
|
|
|
+ this.ServeJSON()
|
|
|
+ }()
|
|
|
+ var req *models.ReportViewPointDeleteRep
|
|
|
+ if e := json.Unmarshal(this.Ctx.Input.RequestBody, &req); e != nil {
|
|
|
+ br.Msg = "参数解析异常"
|
|
|
+ br.ErrMsg = fmt.Sprintf("参数解析失败,%v", e)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if req.Id == nil {
|
|
|
+ br.Msg = "观点ID不能为空"
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ obj := new(models.KnowledgeResource)
|
|
|
+ obj, err := obj.GetKnowledgeResourceByOutId(*req.Id)
|
|
|
+ if err != nil {
|
|
|
+ if utils.IsErrNoRow(err) {
|
|
|
+ br.Msg = "观点不存在"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ br.Msg = "删除观点失败"
|
|
|
+ br.ErrMsg = fmt.Sprintf("删除观点失败, %v", err)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ obj.IsDelete = 1
|
|
|
+ if err = obj.Update([]string{"IsDelete"}); err != nil {
|
|
|
+ br.Msg = "删除观点失败"
|
|
|
+ br.ErrMsg = fmt.Sprintf("删除观点失败, %v", err)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ updateMap := map[string]interface{}{
|
|
|
+ "IsDelete": "1",
|
|
|
+ }
|
|
|
+ err = knowledge.UpdateEsKnowledgeResource(obj.KnowledgeResourceId, updateMap)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "删除观点失败"
|
|
|
+ br.ErrMsg = fmt.Sprintf("es删除观点失败, %v", err)
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ br.Msg = "删除观点成功"
|
|
|
+ br.Success = true
|
|
|
+ br.Ret = 200
|
|
|
+}
|
|
|
+
|
|
|
+// @Title 知识资源报告库上传
|
|
|
+// @Description 知识资源报告库上传
|
|
|
+// @Param request body string/int true/false "Description"
|
|
|
+// @Success 200 string "操作成功"
|
|
|
+// @router /report/knowledge/upload [post]
|
|
|
+func (this *ReportOpenController) ReportKnowledgeUpload() {
|
|
|
+ br := new(models.BaseResponse).Init()
|
|
|
+ defer func() {
|
|
|
+ if br.ErrMsg == "" {
|
|
|
+ br.IsSendEmail = false
|
|
|
+ }
|
|
|
+ this.Data["json"] = br
|
|
|
+ this.ServeJSON()
|
|
|
+ }()
|
|
|
+
|
|
|
+ var req models.ReportKnowledgeUploadRep
|
|
|
+ if e := this.BindForm(&req); e != nil {
|
|
|
+ br.Msg = "参数解析异常"
|
|
|
+ br.ErrMsg = fmt.Sprintf("参数解析失败,%v", e)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ pushTime, err := time.Parse(utils.FormatDateTime, req.PushTime)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "发布时间格式不正确"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ fileUrls, msg, err := knowledge.UploadFormFile(this.Ctx.Request.MultipartForm.File)
|
|
|
+ if err != nil {
|
|
|
+ if msg == "" {
|
|
|
+ msg = "上传失败"
|
|
|
+ }
|
|
|
+ br.Msg = msg
|
|
|
+ br.ErrMsg = fmt.Sprintf("上传失败, %v", err)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ msg, err = knowledge.ReportKnowledgeResourceAdd(req.Title, fileUrls, 0, "", req.ClassifyPath, req.Source, pushTime)
|
|
|
+ if err != nil {
|
|
|
+ if msg == "" {
|
|
|
+ msg = "保存失败"
|
|
|
+ }
|
|
|
+ br.Msg = msg
|
|
|
+ br.ErrMsg = fmt.Sprintf("保存失败, %v", err)
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ br.Ret = 200
|
|
|
+ br.Msg = "上传成功"
|
|
|
+ br.Success = true
|
|
|
+}
|