|
@@ -5,12 +5,13 @@ import (
|
|
|
"eta_gn/eta_report/utils"
|
|
|
"html"
|
|
|
"strconv"
|
|
|
+ "strings"
|
|
|
"time"
|
|
|
)
|
|
|
|
|
|
func ReportKnowledgeResourceAdd(title string, fileUrl string, adminId int, adminRealName string) (msg string, err error) {
|
|
|
classifyObj := new(models.KnowledgeClassify)
|
|
|
- classifyObj, err = classifyObj.GetClassifyByNameAndType("日常报告", models.KnowledgeResourceTypeReport)
|
|
|
+ classifyObj, err = classifyObj.GetClassifyByNameAndType("日常报告", models.KnowledgeResourceTypeReport, 0)
|
|
|
if err != nil {
|
|
|
if utils.IsErrNoRow(err) {
|
|
|
msg = "分类不存在,请检查知识资源-报告库中是否存在-市场研究报告/内部报告/日常报告分类"
|
|
@@ -46,15 +47,72 @@ func ReportKnowledgeResourceAdd(title string, fileUrl string, adminId int, admin
|
|
|
return
|
|
|
}
|
|
|
|
|
|
-// ViewPointSave 知识资源观点库保存
|
|
|
-func ViewPointSave(req *models.ReportViewPointReq) (msg string, err error) {
|
|
|
- classifyId, err := KnowledgeResourceClassifyCheckAndSave(req.Category, models.KnowledgeResourceTypeOpinion)
|
|
|
+func ReportKnowledgeResourceClassifyCheckAndSave(reportClassifyId int) (classifyId int, err error) {
|
|
|
+ classifyObj := new(models.Classify)
|
|
|
+ classifyObj, err = classifyObj.GetItemById(reportClassifyId)
|
|
|
+ if err != nil {
|
|
|
+ if !utils.IsErrNoRow(err) {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+ levelPath := classifyObj.LevelPath
|
|
|
+ classifyIdStrs := strings.Split(levelPath, ",")
|
|
|
+ classifyIds := make([]int, 0, len(classifyIdStrs))
|
|
|
+ for _, classifyIdStr := range classifyIdStrs {
|
|
|
+ classifyId, _ := strconv.Atoi(classifyIdStr)
|
|
|
+ classifyIds = append(classifyIds, classifyId)
|
|
|
+ }
|
|
|
+ classifyList, err := classifyObj.GetItemsByIds(classifyIds)
|
|
|
if err != nil {
|
|
|
- msg = "观点保存失败"
|
|
|
return
|
|
|
}
|
|
|
+ knowledgeClassifyObj := new(models.KnowledgeClassify)
|
|
|
+ var parentId int
|
|
|
+ for i, classify := range classifyList {
|
|
|
+ knowledgeClassifyObj, err = knowledgeClassifyObj.GetClassifyByNameAndType(classify.ClassifyName, models.KnowledgeResourceTypeReport, parentId)
|
|
|
+ if err != nil {
|
|
|
+ if !utils.IsErrNoRow(err) {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ for j := i; j < len(classifyList); j++ {
|
|
|
+ tmp := &models.KnowledgeClassify{
|
|
|
+ ClassifyName: classifyList[j].ClassifyName,
|
|
|
+ Sort: 1,
|
|
|
+ ParentId: parentId,
|
|
|
+ CreateTime: time.Now(),
|
|
|
+ ModifyTime: time.Now(),
|
|
|
+ Enabled: 1,
|
|
|
+ Level: classifyList[j].Level,
|
|
|
+ ResourceType: models.KnowledgeResourceTypeReport,
|
|
|
+ }
|
|
|
+ err = tmp.Create()
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ parentId = tmp.ClassifyId
|
|
|
+ }
|
|
|
+ classifyId = parentId
|
|
|
+ return
|
|
|
+ }
|
|
|
+ parentId = knowledgeClassifyObj.ClassifyId
|
|
|
+ }
|
|
|
+ classifyId = parentId
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+// ViewPointSave 知识资源观点库保存
|
|
|
+func ViewPointSave(outId, adminId int, adminRealName, title, content, sourceFrom, classifyName string, classifyId int, startTime *time.Time) (msg string, err error) {
|
|
|
+ if classifyId <= 0 {
|
|
|
+ tmpClassifyId, er := ViewPointKnowledgeResourceClassifyCheckAndSave(classifyName, models.KnowledgeResourceTypeOpinion)
|
|
|
+ if er != nil {
|
|
|
+ msg = "观点保存失败"
|
|
|
+ err = er
|
|
|
+ return
|
|
|
+ }
|
|
|
+ classifyId = tmpClassifyId
|
|
|
+ }
|
|
|
obj := new(models.KnowledgeResource)
|
|
|
- knowledgeResource, err := obj.GetKnowledgeResourceByOutId(req.Id)
|
|
|
+ knowledgeResource, err := obj.GetKnowledgeResourceByOutId(outId)
|
|
|
if err != nil {
|
|
|
if !utils.IsErrNoRow(err) {
|
|
|
msg = "观点保存失败"
|
|
@@ -64,18 +122,23 @@ func ViewPointSave(req *models.ReportViewPointReq) (msg string, err error) {
|
|
|
err = nil
|
|
|
obj.ResourceType = models.KnowledgeResourceTypeOpinion
|
|
|
obj.ClassifyId = classifyId
|
|
|
- obj.Title = req.Title
|
|
|
+ obj.Title = title
|
|
|
obj.CreateTime = time.Now()
|
|
|
obj.ModifyTime = time.Now()
|
|
|
obj.State = models.KnowledgeResourceStateApproved
|
|
|
- obj.Content = html.EscapeString(req.Content)
|
|
|
+ obj.Content = html.EscapeString(content)
|
|
|
timestamp := strconv.FormatInt(time.Now().UnixNano(), 10)
|
|
|
obj.ResourceCode = utils.MD5(utils.CHART_PREFIX + "_" + timestamp)
|
|
|
- obj.AdminRealName = "无"
|
|
|
- obj.SourceFrom = req.DataSource
|
|
|
- obj.StartTime = req.DataDate
|
|
|
+ obj.AdminId = adminId
|
|
|
+ if adminRealName == "" || obj.AdminId == 0 {
|
|
|
+ obj.AdminRealName = "无"
|
|
|
+ } else {
|
|
|
+ obj.AdminRealName = adminRealName
|
|
|
+ }
|
|
|
+ obj.SourceFrom = sourceFrom
|
|
|
+ obj.StartTime = startTime
|
|
|
obj.IsFile = 0
|
|
|
- obj.OutId = req.Id
|
|
|
+ obj.OutId = outId
|
|
|
err = obj.Create()
|
|
|
if err != nil {
|
|
|
msg = "观点保存失败"
|
|
@@ -85,20 +148,20 @@ func ViewPointSave(req *models.ReportViewPointReq) (msg string, err error) {
|
|
|
|
|
|
// 更新知识资源库的状态
|
|
|
var updateCols []string
|
|
|
- if knowledgeResource.Title != req.Title {
|
|
|
- knowledgeResource.Title = req.Title
|
|
|
+ if knowledgeResource.Title != title {
|
|
|
+ knowledgeResource.Title = title
|
|
|
updateCols = append(updateCols, "title")
|
|
|
}
|
|
|
- if knowledgeResource.Content != req.Content {
|
|
|
- knowledgeResource.Content = req.Content
|
|
|
+ if knowledgeResource.Content != content {
|
|
|
+ knowledgeResource.Content = content
|
|
|
updateCols = append(updateCols, "content")
|
|
|
}
|
|
|
- if !knowledgeResource.StartTime.Equal(*req.DataDate) {
|
|
|
- knowledgeResource.StartTime = req.DataDate
|
|
|
+ if !knowledgeResource.StartTime.Equal(*startTime) {
|
|
|
+ knowledgeResource.StartTime = startTime
|
|
|
updateCols = append(updateCols, "start_time")
|
|
|
}
|
|
|
- if knowledgeResource.SourceFrom != req.DataSource {
|
|
|
- knowledgeResource.SourceFrom = req.DataSource
|
|
|
+ if knowledgeResource.SourceFrom != sourceFrom {
|
|
|
+ knowledgeResource.SourceFrom = sourceFrom
|
|
|
updateCols = append(updateCols, "source_from")
|
|
|
}
|
|
|
|
|
@@ -114,9 +177,9 @@ func ViewPointSave(req *models.ReportViewPointReq) (msg string, err error) {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
-func KnowledgeResourceClassifyCheckAndSave(classifyName string, resourceType int) (classifyId int, err error) {
|
|
|
+func ViewPointKnowledgeResourceClassifyCheckAndSave(classifyName string, resourceType int) (classifyId int, err error) {
|
|
|
obj := new(models.KnowledgeClassify)
|
|
|
- obj, err = obj.GetClassifyByNameAndType(classifyName, resourceType)
|
|
|
+ obj, err = obj.GetClassifyByNameAndType(classifyName, resourceType, 0)
|
|
|
if err != nil {
|
|
|
if !utils.IsErrNoRow(err) {
|
|
|
return
|