瀏覽代碼

来源列表

xyxie 6 月之前
父節點
當前提交
29adb1a74b

+ 33 - 24
controllers/knowledge_classify.go → controllers/knowledge/classify.go

@@ -1,15 +1,17 @@
-package controllers
+package knowledge
 
 import (
 	"encoding/json"
+	"eta_gn/eta_api/controllers"
 	"eta_gn/eta_api/models"
 	"eta_gn/eta_api/models/knowledge"
 	knowledgeServ "eta_gn/eta_api/services/knowledge"
+	"eta_gn/eta_api/utils"
 )
 
 // 分类
-type KnowledgeClassifyController struct {
-	BaseAuthController
+type ClassifyController struct {
+	controllers.BaseAuthController
 }
 
 // @Title 新增分类接口
@@ -17,7 +19,7 @@ type KnowledgeClassifyController struct {
 // @Param	request	body knowledge.ClassifyAddReq true "type json string"
 // @Success 200 新增成功
 // @router /classify/add [post]
-func (this *KnowledgeClassifyController) Add() {
+func (this *ClassifyController) Add() {
 	br := new(models.BaseResponse).Init()
 	defer func() {
 		this.Data["json"] = br
@@ -59,7 +61,7 @@ func (this *KnowledgeClassifyController) Add() {
 // @Param   ClassifyId   query   int  true       "分类ID"
 // @Success 200 {object} knowledge.CheckDeleteClassifyResp
 // @router /classify/checkDelete [get]
-func (this *KnowledgeClassifyController) CheckDeleteClassify() {
+func (this *ClassifyController) CheckDeleteClassify() {
 	br := new(models.BaseResponse).Init()
 	defer func() {
 		this.Data["json"] = br
@@ -70,6 +72,8 @@ func (this *KnowledgeClassifyController) CheckDeleteClassify() {
 		br.Msg = "参数错误"
 		return
 	}
+	resourceType, _ := this.GetInt("ResourceType")
+
 	knowledgeObj := new(knowledge.KnowledgeClassify)
 	classify, err := knowledgeObj.GetClassifyById(classifyId)
 	if err != nil {
@@ -77,6 +81,10 @@ func (this *KnowledgeClassifyController) CheckDeleteClassify() {
 		br.ErrMsg = "获取信息失败,Err:" + err.Error()
 		return
 	}
+	if classify.ResourceType != resourceType {
+		br.Msg = "分类类型错误"
+		return
+	}
 	resp := new(knowledge.CheckDeleteClassifyResp)
 	if classify == nil {
 		br.Msg = "分类不存在"
@@ -90,7 +98,7 @@ func (this *KnowledgeClassifyController) CheckDeleteClassify() {
 
 	//判断分类是否关联了报告
 	if classify.ParentId > 0 {
-		count, err := knowledgeObj.GetReportCountByClassifyId(classifyId)
+		count, err := knowledgeObj.GetResourceCountByClassifyId(classifyId)
 		if err != nil {
 			br.Msg = "获取信息失败"
 			br.ErrMsg = "获取信息失败,Err:" + err.Error()
@@ -151,7 +159,7 @@ func (this *KnowledgeClassifyController) CheckDeleteClassify() {
 // @Param	request	body knowledge.DeleteClassifyReq true "type json string"
 // @Success 200 Ret=200,删除成功
 // @router /classify/delete [post]
-func (this *KnowledgeClassifyController) Delete() {
+func (this *ClassifyController) Delete() {
 	br := new(models.BaseResponse).Init()
 	defer func() {
 		this.Data["json"] = br
@@ -175,14 +183,19 @@ func (this *KnowledgeClassifyController) Delete() {
 	knowledgeObj := new(knowledge.KnowledgeClassify)
 	item, err := knowledgeObj.GetClassifyById(req.ClassifyId)
 	if err != nil {
+		if utils.IsErrNoRow(err) {
+			br.Msg = "分类不存在"
+			return
+		}
 		br.Msg = "获取信息失败"
 		br.ErrMsg = "获取信息失败,Err:" + err.Error()
 		return
 	}
-	if item == nil {
-		br.Msg = "分类不存在"
+	if item.ResourceType != req.ResourceType {
+		br.Msg = "资源类型不匹配"
 		return
 	}
+
 	err = knowledgeObj.Delete(req.ClassifyId)
 	if err != nil {
 		br.Msg = "删除失败"
@@ -206,7 +219,7 @@ func (this *KnowledgeClassifyController) Delete() {
 // @Param	request	body knowledge.EditClassifyReq true "type json string"
 // @Success 200 Ret=200,修改成功
 // @router /classify/edit [post]
-func (this *KnowledgeClassifyController) Edit() {
+func (this *ClassifyController) Edit() {
 	br := new(models.BaseResponse).Init()
 	defer func() {
 		this.Data["json"] = br
@@ -230,7 +243,7 @@ func (this *KnowledgeClassifyController) Edit() {
 	}
 
 	// 修改分类
-	err, errMsg, isSentEmail := knowledgeServ.EditKnowledgeClassify(req.ClassifyId, req.ParentId, req.ClassifyName)
+	err, errMsg, isSentEmail := knowledgeServ.EditKnowledgeClassify(req.ClassifyId, req.ParentId, req.ClassifyName, req.ResourceType)
 	if err != nil {
 		br.Msg = "修改失败"
 		if errMsg != "" {
@@ -251,14 +264,15 @@ func (this *KnowledgeClassifyController) Edit() {
 // @Description 获取父级分类
 // @Success 200 {object} knowledge.Classify
 // @router /classify/parent [get]
-func (this *KnowledgeClassifyController) ParentClassify() {
+func (this *ClassifyController) ParentClassify() {
 	br := new(models.BaseResponse).Init()
 	defer func() {
 		this.Data["json"] = br
 		this.ServeJSON()
 	}()
+	resourceType, _ := this.GetInt("ResourceType")
 	knowledgeObj := new(knowledge.KnowledgeClassify)
-	items, err := knowledgeObj.GetAllClassify()
+	items, err := knowledgeObj.GetAllClassify(resourceType)
 	if err != nil {
 		br.Msg = "获取失败"
 		br.ErrMsg = "获取失败,Err:" + err.Error()
@@ -297,7 +311,7 @@ func (this *KnowledgeClassifyController) ParentClassify() {
 // @Param	request	body knowledge.FindByIdClassifyReq true "type json string"
 // @Success 200 {object} knowledge.Classify
 // @router /classify/findById [get]
-func (this *KnowledgeClassifyController) FindByIdClassify() {
+func (this *ClassifyController) FindByIdClassify() {
 	br := new(models.BaseResponse).Init()
 	defer func() {
 		this.Data["json"] = br
@@ -330,22 +344,17 @@ func (this *KnowledgeClassifyController) FindByIdClassify() {
 // @Param   HideDayWeek   query   int  false       "是否隐藏晨周报"
 // @Success 200 {object} knowledge.Classify
 // @router /classify/list [get]
-func (this *KnowledgeClassifyController) ListClassify() {
+func (this *ClassifyController) ListClassify() {
 	br := new(models.BaseResponse).Init()
 	defer func() {
 		this.Data["json"] = br
 		this.ServeJSON()
 	}()
 
-	keyWord := this.GetString("KeyWord")
-	reqEnabled, _ := this.GetInt("Enabled", -1)
-
-	enabled := -1
-	if reqEnabled == 1 {
-		enabled = reqEnabled
-	}
+	keyWord := this.GetString("Keyword")
+	resourceType, _ := this.GetInt("ResourceType", 0)
 	knowledgeObj := new(knowledge.KnowledgeClassify)
-	list, err := knowledgeObj.GetClassifyListByKeyword(keyWord, enabled)
+	list, err := knowledgeObj.GetClassifyListByKeyword(keyWord, resourceType)
 	if err != nil {
 		br.Msg = "获取失败"
 		br.ErrMsg = "获取失败,Err:" + err.Error()
@@ -416,7 +425,7 @@ func (this *KnowledgeClassifyController) ListClassify() {
 // @Param	request	body knowledge.ClassifyMoveReq true "type json string"
 // @Success 200 新增成功
 // @router /classify/move [post]
-func (this *KnowledgeClassifyController) Move() {
+func (this *ClassifyController) Move() {
 	br := new(models.BaseResponse).Init()
 	defer func() {
 		this.Data["json"] = br

+ 104 - 78
controllers/knowledge_resource.go → controllers/knowledge/resource.go

@@ -1,7 +1,8 @@
-package controllers
+package knowledge
 
 import (
 	"encoding/json"
+	"eta_gn/eta_api/controllers"
 	"eta_gn/eta_api/models"
 	"eta_gn/eta_api/models/knowledge"
 	"eta_gn/eta_api/services"
@@ -20,8 +21,8 @@ import (
 )
 
 // 分类
-type KnowledgeResourceController struct {
-	BaseAuthController
+type ResourceController struct {
+	controllers.BaseAuthController
 }
 
 // ListReport
@@ -42,7 +43,7 @@ type KnowledgeResourceController struct {
 // @Param   FilterReportType   query   string  true       "筛选事件类型,1:公共研报,2:共享研报,3:我的研报"
 // @Success 200 {object} knowledge.KnowledgeResourceListResp
 // @router /resource/list [get]
-func (this *KnowledgeResourceController) List() {
+func (this *ResourceController) List() {
 	br := new(models.BaseResponse).Init()
 	defer func() {
 		this.Data["json"] = br
@@ -58,6 +59,7 @@ func (this *KnowledgeResourceController) List() {
 	tagIds := this.GetString("TagIds")
 
 	keyWord := this.GetString("Keyword")
+	resourceType, _ := this.GetInt("ResourceType")
 
 	var startSize int
 	if pageSize <= 0 {
@@ -71,6 +73,9 @@ func (this *KnowledgeResourceController) List() {
 	var condition string
 	var pars []interface{}
 
+	condition += ` AND resource_type = ? `
+	pars = append(pars, resourceType)
+
 	if keyWord != "" {
 		condition += ` AND (title LIKE ?) `
 		pars = utils.GetLikeKeywordPars(pars, keyWord, 2)
@@ -132,7 +137,7 @@ func (this *KnowledgeResourceController) List() {
 		classifyIdsArr = append(classifyIdsArr, v.ClassifyId)
 	}
 	// 获取分类列表
-	classifyList, err := knowledge.GetFullClassifyListByIdList(classifyIdsArr)
+	classifyList, err := knowledge.GetFullClassifyListByIdList(classifyIdsArr, resourceType)
 	if err != nil {
 		br.Msg = "获取失败"
 		br.ErrMsg = "获取失败,Err:" + err.Error()
@@ -157,7 +162,7 @@ func (this *KnowledgeResourceController) List() {
 	}
 	// 获取标签列表
 	tagObj := new(knowledge.KnowledgeTag)
-	tagList, err := tagObj.GetListByIdList(tagIdsArr)
+	tagList, err := tagObj.GetListByIdList(tagIdsArr, resourceType)
 	if err != nil {
 		br.Msg = "获取失败"
 		br.ErrMsg = "获取失败,Err:" + err.Error()
@@ -170,9 +175,15 @@ func (this *KnowledgeResourceController) List() {
 		var startTime, endTime string
 		if v.StartTime != nil && !v.StartTime.IsZero() {
 			startTime = v.StartTime.In(time.Local).Format(utils.FormatDateTime)
+			if resourceType == knowledge.KnowledgeResourceTypeOpinion || resourceType == knowledge.KnowledgeResourceTypeKnow {
+				startTime = v.StartTime.In(time.Local).Format(utils.FormatDate)
+			}
 		}
 		if v.EndTime != nil && !v.EndTime.IsZero() {
 			endTime = v.EndTime.In(time.Local).Format(utils.FormatDateTime)
+			if resourceType == knowledge.KnowledgeResourceTypeOpinion || resourceType == knowledge.KnowledgeResourceTypeKnow {
+				endTime = v.EndTime.In(time.Local).Format(utils.FormatDate)
+			}
 		}
 		modifyTime := v.ModifyTime.In(time.Local).Format(utils.FormatDateTime)
 		createTime := v.CreateTime.In(time.Local).Format(utils.FormatDateTime)
@@ -232,7 +243,7 @@ func (this *KnowledgeResourceController) List() {
 // @Param	request	body knowledge.AddReq true "type json string"
 // @Success 200 {object} knowledge.AddResp
 // @router /resource/add [post]
-func (this *KnowledgeResourceController) Add() {
+func (this *ResourceController) Add() {
 	br := new(models.BaseResponse).Init()
 	defer func() {
 		this.Data["json"] = br
@@ -297,7 +308,7 @@ func (this *KnowledgeResourceController) Add() {
 // @Param	request	body knowledge.EditReq true "type json string"
 // @Success 200 {object} knowledge.EditResp
 // @router /resource/edit [post]
-func (this *KnowledgeResourceController) Edit() {
+func (this *ResourceController) Edit() {
 	br := new(models.BaseResponse).Init()
 	defer func() {
 		this.Data["json"] = br
@@ -367,6 +378,10 @@ func (this *KnowledgeResourceController) Edit() {
 		br.ErrMsg = "获取事件失败, Err: " + e.Error()
 		return
 	}
+	if resourceInfo.ResourceType != req.ResourceType {
+		br.Msg = "事件类型错误"
+		return
+	}
 
 	// 编辑事件信息
 	err, errMsg := knowledgeServ.EditResource(resourceInfo, req, sysUser)
@@ -394,7 +409,7 @@ func (this *KnowledgeResourceController) Edit() {
 // @Param	request	body knowledge.KnowledgeResourceDetailReq true "type json string"
 // @Success 200 {object} knowledge.KnowledgeResource
 // @router /resource/detail [get]
-func (this *KnowledgeResourceController) Detail() {
+func (this *ResourceController) Detail() {
 	br := new(models.BaseResponse).Init()
 	defer func() {
 		this.Data["json"] = br
@@ -449,7 +464,7 @@ func (this *KnowledgeResourceController) Detail() {
 // @Param	request	body knowledge.SaveReportContent true "type json string"
 // @Success 200 {object} knowledge.KnowledgeResourceAuthorResp
 // @router /resource/saveContent [post]
-func (this *KnowledgeResourceController) SaveReportContent() {
+func (this *ResourceController) SaveReportContent() {
 	br := new(models.BaseResponse).Init()
 	br.IsSendEmail = false
 	defer func() {
@@ -566,7 +581,7 @@ func (this *KnowledgeResourceController) SaveReportContent() {
 // @Param	request	body knowledge.KnowledgeResourceDetailReq true "type json string"
 // @Success 200 {object} knowledge.KnowledgeResource
 // @router /resource/detail/base [get]
-func (this *KnowledgeResourceController) BaseDetail() {
+func (this *ResourceController) BaseDetail() {
 	br := new(models.BaseResponse).Init()
 	defer func() {
 		this.Data["json"] = br
@@ -706,7 +721,7 @@ func (this *KnowledgeResourceController) BaseDetail() {
 // @Param	request	body knowledge.DeleteReq true "type json string"
 // @Success 200 Ret=200 删除成功
 // @router /resource/delete [post]
-func (this *KnowledgeResourceController) Delete() {
+func (this *ResourceController) Delete() {
 	br := new(models.BaseResponse).Init()
 	defer func() {
 		this.Data["json"] = br
@@ -725,7 +740,19 @@ func (this *KnowledgeResourceController) Delete() {
 		return
 	}
 	resourceObj := new(knowledge.KnowledgeResource)
-	if err = resourceObj.Delete(req.KnowledgeResourceId); err != nil {
+	item, err := resourceObj.GetById(req.KnowledgeResourceId)
+	if err != nil {
+		if utils.IsErrNoRow(err) {
+			br.Msg = "事件不存在"
+			br.ErrMsg = "事件不存在"
+			return
+		}
+	}
+	if item.ResourceType != req.ResourceType {
+		br.Msg = "事件类型不匹配"
+		return
+	}
+	if err = item.Delete(req.KnowledgeResourceId); err != nil {
 		br.Msg = "删除失败"
 		br.ErrMsg = "删除事件失败, Err: " + err.Error()
 		return
@@ -742,7 +769,7 @@ func (this *KnowledgeResourceController) Delete() {
 // @Param   EntryFile   query   file  true       "文件"
 // @Success 200 Ret=200 录入成功
 // @router /resource/import_add [post]
-func (c *KnowledgeResourceController) ImportData() {
+func (c *ResourceController) ImportData() {
 	br := new(models.BaseResponse).Init()
 	defer func() {
 		c.Data["json"] = br
@@ -805,7 +832,7 @@ func (c *KnowledgeResourceController) ImportData() {
 // @Description 下载失败列表
 // @Success 200 {object} models.EdbdataClassifyResp
 // @router /resource/download_fail [get]
-func (this *KnowledgeResourceController) ImportFailListDownload() {
+func (this *ResourceController) ImportFailListDownload() {
 	br := new(models.BaseResponse).Init()
 	defer func() {
 		this.Data["json"] = br
@@ -829,36 +856,69 @@ func (this *KnowledgeResourceController) ImportFailListDownload() {
 	if this.Lang == utils.EnLangVersion {
 		SheetName = "Import Fail List"
 	}
+
 	sheet, err := xlsxFile.AddSheet(SheetName)
-	headRow := sheet.AddRow()
-	headRow.AddCell().SetValue("开始日期")
-	headRow.AddCell().SetValue("开始时间")
-	headRow.AddCell().SetValue("结束日期")
-	headRow.AddCell().SetValue("结束时间")
-	headRow.AddCell().SetValue("标题")
-	headRow.AddCell().SetValue("正文")
-	headRow.AddCell().SetValue("来源")
-	headRow.AddCell().SetValue("一级分类")
-	headRow.AddCell().SetValue("二级分类")
-	headRow.AddCell().SetValue("三级分类")
-	headRow.AddCell().SetValue("标签")
-	headRow.AddCell().SetValue("备注")
+	if err != nil {
+		br.Msg = "获取sheet失败"
+		br.Msg = "获取sheet失败,Err:" + err.Error()
+		return
+	}
+	if resourceType == knowledge.KnowledgeResourceTypeEvent || resourceType == knowledge.KnowledgeResourceTypePolicy {
+		headRow := sheet.AddRow()
+		headRow.AddCell().SetValue("开始日期")
+		headRow.AddCell().SetValue("开始时间")
+		headRow.AddCell().SetValue("结束日期")
+		headRow.AddCell().SetValue("结束时间")
+		headRow.AddCell().SetValue("标题")
+		headRow.AddCell().SetValue("正文")
+		headRow.AddCell().SetValue("来源")
+		headRow.AddCell().SetValue("一级分类")
+		headRow.AddCell().SetValue("二级分类")
+		headRow.AddCell().SetValue("三级分类")
+		headRow.AddCell().SetValue("标签")
+		headRow.AddCell().SetValue("备注")
 
-	for _, v := range item {
-		row := sheet.AddRow()
-		row.AddCell().SetValue(v.StartDate)
-		row.AddCell().SetValue(v.StartTime)
-		row.AddCell().SetValue(v.EndDate)
-		row.AddCell().SetValue(v.EndTime)
-		row.AddCell().SetValue(v.Title)
-		row.AddCell().SetValue(v.Content)
-		row.AddCell().SetValue(v.SourceFrom)
-		row.AddCell().SetValue(v.ClassifyFirst)
-		row.AddCell().SetValue(v.ClassifySecond)
-		row.AddCell().SetValue(v.ClassifyThird)
-		row.AddCell().SetValue(v.Tag)
-		row.AddCell().SetValue(v.Remark)
+		for _, v := range item {
+			row := sheet.AddRow()
+			row.AddCell().SetValue(v.StartDate)
+			row.AddCell().SetValue(v.StartTime)
+			row.AddCell().SetValue(v.EndDate)
+			row.AddCell().SetValue(v.EndTime)
+			row.AddCell().SetValue(v.Title)
+			row.AddCell().SetValue(v.Content)
+			row.AddCell().SetValue(v.SourceFrom)
+			row.AddCell().SetValue(v.ClassifyFirst)
+			row.AddCell().SetValue(v.ClassifySecond)
+			row.AddCell().SetValue(v.ClassifyThird)
+			row.AddCell().SetValue(v.Tag)
+			row.AddCell().SetValue(v.Remark)
+		}
+	} else {
+		headRow := sheet.AddRow()
+		headRow.AddCell().SetValue("时间")
+		headRow.AddCell().SetValue("标题")
+		headRow.AddCell().SetValue("正文")
+		headRow.AddCell().SetValue("来源")
+		headRow.AddCell().SetValue("一级分类")
+		headRow.AddCell().SetValue("二级分类")
+		headRow.AddCell().SetValue("三级分类")
+		headRow.AddCell().SetValue("标签")
+		headRow.AddCell().SetValue("备注")
+
+		for _, v := range item {
+			row := sheet.AddRow()
+			row.AddCell().SetValue(v.StartDate)
+			row.AddCell().SetValue(v.Title)
+			row.AddCell().SetValue(v.Content)
+			row.AddCell().SetValue(v.SourceFrom)
+			row.AddCell().SetValue(v.ClassifyFirst)
+			row.AddCell().SetValue(v.ClassifySecond)
+			row.AddCell().SetValue(v.ClassifyThird)
+			row.AddCell().SetValue(v.Tag)
+			row.AddCell().SetValue(v.Remark)
+		}
 	}
+
 	fileName := time.Now().Format(utils.FormatDateTimeUnSpace) + ".xlsx"
 	savePath := "./static/" + fileName
 	err = xlsxFile.Save(savePath)
@@ -885,7 +945,7 @@ func (this *KnowledgeResourceController) ImportFailListDownload() {
 // @Param   File	query  file  true  "文件"
 // @Success 200 Ret=200 操作成功
 // @router /resource/upload [post]
-func (this *KnowledgeResourceController) ResourceUpload() {
+func (this *ResourceController) ResourceUpload() {
 	br := new(models.BaseResponse).Init()
 	defer func() {
 		if br.ErrMsg == "" {
@@ -974,41 +1034,7 @@ func (this *KnowledgeResourceController) ResourceUpload() {
 // @Description 获取所有来源
 // @Success 200 {object} models.EdbdataClassifyResp
 // @router /resource/source_from [get]
-func (this *KnowledgeResourceController) GetSourceFrom() {
-	br := new(models.BaseResponse).Init()
-	defer func() {
-		this.Data["json"] = br
-		this.ServeJSON()
-	}()
-	sysUser := this.SysUser
-	if sysUser == nil {
-		br.Msg = "请重新登录"
-		return
-	}
-	resourceType, _ := this.GetInt("ResourceType")
-	keyword := this.GetString("Keyword")
-	resourceObj := new(knowledge.KnowledgeResource)
-	list, err := resourceObj.GetSourceFrom(keyword, resourceType)
-	if err != nil {
-		br.Msg = "获取数据失败"
-		br.Msg = "获取数据失败,Err:" + err.Error()
-		return
-	}
-	resp := new(knowledge.GetSourceFromResp)
-	resp.List = list
-
-	br.Ret = 200
-	br.Success = true
-	br.Msg = "获取成功"
-	br.Data = resp
-}
-
-// GetAdminList
-// @Title 获取所有来源
-// @Description 获取所有来源
-// @Success 200 {object} models.EdbdataClassifyResp
-// @router /resource/admins [get]
-func (this *KnowledgeResourceController) GetAdminList() {
+func (this *ResourceController) GetSourceFrom() {
 	br := new(models.BaseResponse).Init()
 	defer func() {
 		this.Data["json"] = br

+ 22 - 24
controllers/knowledge_tag.go → controllers/knowledge/tag.go

@@ -1,15 +1,17 @@
-package controllers
+package knowledge
 
 import (
 	"encoding/json"
+	"eta_gn/eta_api/controllers"
 	"eta_gn/eta_api/models"
 	"eta_gn/eta_api/models/knowledge"
 	knowledgeServ "eta_gn/eta_api/services/knowledge"
+	"eta_gn/eta_api/utils"
 )
 
 // 标签
-type KnowledgeTagController struct {
-	BaseAuthController
+type TagController struct {
+	controllers.BaseAuthController
 }
 
 // @Title 新增标签接口
@@ -17,7 +19,7 @@ type KnowledgeTagController struct {
 // @Param	request	body knowledge.TagAddReq true "type json string"
 // @Success 200 新增成功
 // @router /tag/add [post]
-func (this *KnowledgeTagController) Add() {
+func (this *TagController) Add() {
 	br := new(models.BaseResponse).Init()
 	defer func() {
 		this.Data["json"] = br
@@ -58,7 +60,7 @@ func (this *KnowledgeTagController) Add() {
 // @Param	request	body knowledge.DeleteTagReq true "type json string"
 // @Success 200 Ret=200,删除成功
 // @router /tag/delete [post]
-func (this *KnowledgeTagController) Delete() {
+func (this *TagController) Delete() {
 	br := new(models.BaseResponse).Init()
 	defer func() {
 		this.Data["json"] = br
@@ -67,15 +69,15 @@ func (this *KnowledgeTagController) Delete() {
 	var req knowledge.DeleteTagReq
 	err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
 	if err != nil {
+		if utils.IsErrNoRow(err) {
+			br.Msg = "标签不存在"
+			return
+		}
 		br.Msg = "参数解析异常!"
 		br.ErrMsg = "参数解析失败,Err:" + err.Error()
 		return
 	}
-	if req.TagId <= 0 {
-		br.Msg = "参数错误"
-		return
-	}
-	//todo 是否需要删除接口
+	//todo 删除标签时,是否需要检测,标签下是否有事件
 	/*br.Msg = "报告标签不允许删除"
 	br.IsSendEmail = false
 	return*/
@@ -97,12 +99,6 @@ func (this *KnowledgeTagController) Delete() {
 		return
 	}
 
-	// 被删除是二级标签且关联电话会时, 同步FICC活动标签
-	//if item.ParentId > 0 && item.RelateTel == 1 {
-	//	go func() {
-	//		_ = yb.SyncTagAndFiccActivityType()
-	//	}()
-	//}
 	br.Ret = 200
 	br.Success = true
 	br.Msg = "删除成功"
@@ -113,7 +109,7 @@ func (this *KnowledgeTagController) Delete() {
 // @Param	request	body knowledge.EditTagReq true "type json string"
 // @Success 200 Ret=200,修改成功
 // @router /tag/edit [post]
-func (this *KnowledgeTagController) Edit() {
+func (this *TagController) Edit() {
 	br := new(models.BaseResponse).Init()
 	defer func() {
 		this.Data["json"] = br
@@ -122,15 +118,15 @@ func (this *KnowledgeTagController) Edit() {
 	var req knowledge.EditTagReq
 	err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
 	if err != nil {
+		if utils.IsErrNoRow(err) {
+			br.Msg = "标签不存在"
+			return
+		}
 		br.Msg = "参数解析异常!"
 		br.ErrMsg = "参数解析失败,Err:" + err.Error()
 		return
 	}
 
-	if req.TagId <= 0 {
-		br.Msg = "参数错误"
-		return
-	}
 	if req.TagName == "" {
 		br.Msg = "标签名称不可为空"
 		return
@@ -160,7 +156,7 @@ func (this *KnowledgeTagController) Edit() {
 // @Param   HideDayWeek   query   int  false       "是否隐藏晨周报"
 // @Success 200 {object} knowledge.Tag
 // @router /tag/list [get]
-func (this *KnowledgeTagController) ListTag() {
+func (this *TagController) ListTag() {
 	br := new(models.BaseResponse).Init()
 	defer func() {
 		this.Data["json"] = br
@@ -168,8 +164,10 @@ func (this *KnowledgeTagController) ListTag() {
 	}()
 
 	keyWord := this.GetString("Keyword")
+	resourceType, _ := this.GetInt("ResourceType")
 	knowledgeObj := new(knowledge.KnowledgeTag)
-	list, err := knowledgeObj.GetTagListByKeyword(keyWord)
+
+	list, err := knowledgeObj.GetTagListByKeyword(keyWord, resourceType)
 	if err != nil {
 		br.Msg = "获取失败"
 		br.ErrMsg = "获取失败,Err:" + err.Error()
@@ -190,7 +188,7 @@ func (this *KnowledgeTagController) ListTag() {
 // @Param	request	body knowledge.TagMoveReq true "type json string"
 // @Success 200 新增成功
 // @router /tag/move [post]
-func (this *KnowledgeTagController) Move() {
+func (this *TagController) Move() {
 	br := new(models.BaseResponse).Init()
 	defer func() {
 		this.Data["json"] = br

+ 15 - 60
models/knowledge/knowledge_classify.go

@@ -4,7 +4,6 @@ import (
 	"eta_gn/eta_api/global"
 	"eta_gn/eta_api/utils"
 	"fmt"
-	"github.com/rdlucklib/rdluck_tools/paging"
 	"time"
 )
 
@@ -47,7 +46,7 @@ func (k *KnowledgeClassify) Add(item *KnowledgeClassify) (err error) {
 	return
 }
 
-func (k *KnowledgeClassify) GetReportCountByClassifyId(classifyId int) (count int, err error) {
+func (k *KnowledgeClassify) GetResourceCountByClassifyId(classifyId int) (count int, err error) {
 	sql := `SELECT COUNT(1) as num FROM knowledge_resource WHERE classify_id=? `
 	err = global.DmSQL["rddp"].Raw(sql, classifyId).First(&count).Error
 	return
@@ -92,15 +91,6 @@ type KnowledgeClassifyListResp struct {
 	List []*KnowledgeClassifyItem
 }
 
-type ClassifyPermissionListResp struct {
-	List   []*KnowledgeClassifyItem
-	Paging *paging.PagingItem `description:"分页数据"`
-}
-
-type CheckDeleteClassifyReq struct {
-	ClassifyId int `description:"分类ID"`
-}
-
 type CheckDeleteClassifyResp struct {
 	Code int    `description:"编码:0:检测成功,可进行删除,1:分类不存在,2:该分类有关联报告,不允许删除,3:二级分类有关联报告,不允许删除,4:该分类下有关联分类,是否确认全部删除"`
 	Msg  string `description:"描述信息"`
@@ -113,7 +103,8 @@ type ClassifyAddReq struct {
 }
 
 type DeleteClassifyReq struct {
-	ClassifyId int `description:"分类ID"`
+	ClassifyId   int `description:"分类ID"`
+	ResourceType int `description:"分类类型:0事件库,1政策库,2观点库,3知识库"`
 }
 
 type EditClassifyReq struct {
@@ -132,18 +123,10 @@ type EditClassifyPermissionReq struct {
 }
 
 // GetAllClassify 获取所有分类
-func (k *KnowledgeClassify) GetAllClassify() (list []*KnowledgeClassify, err error) {
-	sql := ` SELECT * FROM %s `
+func (k *KnowledgeClassify) GetAllClassify(resourceType int) (list []*KnowledgeClassify, err error) {
+	sql := ` SELECT * FROM %s where resource_type=?`
 	sql = fmt.Sprintf(sql, k.TableName())
-	err = global.DmSQL["rddp"].Raw(sql).Find(&list).Error
-	return
-}
-
-// GetClassifyByKeyword 名称获取分类
-func (k *KnowledgeClassify) GetClassifyByKeyword(keyword string) (item *KnowledgeClassify, err error) {
-	sql := ` SELECT * FROM %s WHERE classify_name = ? LIMIT 1 `
-	sql = fmt.Sprintf(sql, k.TableName())
-	err = global.DmSQL["rddp"].Raw(sql, keyword).Find(&item).Error
+	err = global.DmSQL["rddp"].Raw(sql, resourceType).Find(&list).Error
 	return
 }
 
@@ -162,31 +145,6 @@ type SimpleClassifyList struct {
 	Child        []*SimpleClassifyList
 }
 
-// GetClassifyByCondition 获取分类列表
-func (k *KnowledgeClassify) GetClassifyByCondition(condition, orderRule string, pars []interface{}) (items []*SimpleClassifyList, err error) {
-
-	sql := `SELECT * FROM %s WHERE 1 = 1 `
-	if condition != `` {
-		sql += condition
-	}
-	order := `sort ASC, create_time ASC`
-	if orderRule != `` {
-		order = orderRule
-	}
-	sql += ` ORDER BY ` + order
-	sql = fmt.Sprintf(sql, k.TableName())
-
-	err = global.DmSQL["rddp"].Raw(sql, pars...).Find(&items).Error
-	return
-}
-
-// RelateTelSecClassifyWithPermissions 关联了电话会的二级分类及权限
-type RelateTelSecClassifyWithPermissions struct {
-	Id                 int    `description:"分类ID"`
-	ClassifyName       string `description:"分类名称"`
-	ChartPermissionIds string `description:"权限IDs"`
-}
-
 // UpdateClassifySortByParentId 根据父类id更新排序
 func (k *KnowledgeClassify) UpdateClassifySortByParentId(parentId, permissionId, nowSort int, updateSort string, resourceType int) (err error) {
 
@@ -257,15 +215,12 @@ func (k *KnowledgeClassify) GetCountClassifyChildByParentId(parentId int) (total
 // @param enabled int
 // @return items []*KnowledgeClassifyList
 // @return err error
-func (k *KnowledgeClassify) GetClassifyListByKeyword(keyWord string, enabled int) (items []*KnowledgeClassifyItem, err error) {
+func (k *KnowledgeClassify) GetClassifyListByKeyword(keyWord string, resourceType int) (items []*KnowledgeClassifyItem, err error) {
 	sql := ``
 	pars := make([]interface{}, 0)
 
-	sql = `SELECT * FROM %s WHERE 1=1 `
-	if enabled == 1 {
-		sql += ` AND enabled = 1 `
-	}
-
+	sql = `SELECT * FROM %s WHERE resource_type=? `
+	pars = append(pars, resourceType)
 	if keyWord != `` {
 		sql += ` AND classify_name LIKE ? `
 		pars = utils.GetLikeKeywordPars(pars, keyWord, 1)
@@ -302,7 +257,7 @@ type KnowledgeFullClassify struct {
 	RootName   string `gorm:"column:root_name"`
 }
 
-func GetFullClassifyListByIdList(classifyIdList []int) (items []*KnowledgeFullClassify, err error) {
+func GetFullClassifyListByIdList(classifyIdList []int, resourceType int) (items []*KnowledgeFullClassify, err error) {
 	num := len(classifyIdList)
 	if num <= 0 {
 		return
@@ -310,12 +265,12 @@ func GetFullClassifyListByIdList(classifyIdList []int) (items []*KnowledgeFullCl
 	sql := `SELECT kc1.*, kc2.classify_name AS parent_name, kc3.classify_name AS root_name  
 FROM knowledge_classify kc1  
 LEFT JOIN knowledge_classify kc2 ON kc1.parent_id = kc2.classify_id
-LEFT JOIN knowledge_classify kc3 ON kc2.parent_id = kc3.classify_id WHERE kc1.classify_id IN (?) `
-	err = global.DmSQL["rddp"].Raw(sql, classifyIdList).Find(&items).Error
+LEFT JOIN knowledge_classify kc3 ON kc2.parent_id = kc3.classify_id WHERE kc1.classify_id IN (?) and kc1.resource_type=?`
+	err = global.DmSQL["rddp"].Raw(sql, classifyIdList, resourceType).Find(&items).Error
 	return
 }
 
-func GetFullClassifyListByName(classifyNames []string) (items []*KnowledgeFullClassify, err error) {
+func GetFullClassifyListByName(classifyNames []string, resourceType int) (items []*KnowledgeFullClassify, err error) {
 	num := len(classifyNames)
 	if num <= 0 {
 		return
@@ -323,7 +278,7 @@ func GetFullClassifyListByName(classifyNames []string) (items []*KnowledgeFullCl
 	sql := `SELECT kc1.*, kc2.classify_name AS parent_name, kc3.classify_name AS root_name  
 FROM knowledge_classify kc1  
 LEFT JOIN knowledge_classify kc2 ON kc1.parent_id = kc2.classify_id
-LEFT JOIN knowledge_classify kc3 ON kc2.parent_id = kc3.classify_id WHERE kc1.classify_name in (?)`
-	err = global.DmSQL["rddp"].Raw(sql, classifyNames).Find(&items).Error
+LEFT JOIN knowledge_classify kc3 ON kc2.parent_id = kc3.classify_id WHERE kc1.classify_name in (?) and kc1.resource_type=? `
+	err = global.DmSQL["rddp"].Raw(sql, classifyNames, resourceType).Find(&items).Error
 	return
 }

+ 6 - 6
models/knowledge/knowledge_import_fail.go

@@ -13,7 +13,7 @@ type KnowledgeImportFail struct {
 	Title          string    `gorm:"column:title;"`
 	Content        string    `gorm:"column:content"`
 	SourceFrom     string    `gorm:"column:source_from"`
-	Tag            int       `gorm:"column:tag"`
+	Tag            string    `gorm:"column:tag"`
 	ClassifyFirst  string    `gorm:"column:classify_first;"`
 	ClassifySecond string    `gorm:"column:classify_second;"`
 	ClassifyThird  string    `gorm:"column:classify_third;"`
@@ -40,13 +40,13 @@ func (m *KnowledgeImportFail) MultiAdd(items []*KnowledgeImportFail) (err error)
 	return err
 }
 
-func (m *KnowledgeImportFail) Delete(userId int) (err error) {
-	sql := fmt.Sprintf(`delete from %s where sys_user_id=?`, m.TableName())
-	err = global.DmSQL["rddp"].Exec(sql, userId).Error
+func (m *KnowledgeImportFail) Delete(userId, resourceType int) (err error) {
+	sql := fmt.Sprintf(`delete from %s where sys_user_id=? and resource_type=?`, m.TableName())
+	err = global.DmSQL["rddp"].Exec(sql, userId, resourceType).Error
 	return err
 }
 func (m *KnowledgeImportFail) GetListBySysUserId(sysUserId, resourceType int) (items []*KnowledgeImportFail, err error) {
-	sql := fmt.Sprintf(` SELECT * FROM %s WHERE sys_user_id=? `, m.TableName())
-	err = global.DmSQL["edb"].Raw(sql, sysUserId, resourceType).Find(&items).Error
+	sql := fmt.Sprintf(` SELECT * FROM %s WHERE sys_user_id=? and resource_type=? `, m.TableName())
+	err = global.DmSQL["rddp"].Raw(sql, sysUserId, resourceType).Find(&items).Error
 	return
 }

+ 4 - 149
models/knowledge/knowledge_resource.go

@@ -5,8 +5,6 @@ import (
 	"eta_gn/eta_api/utils"
 	"fmt"
 	"github.com/rdlucklib/rdluck_tools/paging"
-	"gorm.io/gorm"
-	"strings"
 	"time"
 )
 
@@ -81,14 +79,11 @@ type KnowledgeResourceListResp struct {
 }
 
 func GetKnowledgeResourceList(condition string, pars []interface{}, startSize, pageSize int) (items []*KnowledgeResource, err error) {
-
 	sql := `SELECT * FROM knowledge_resource WHERE 1=1  `
 	if condition != "" {
 		sql += condition
 	}
-	// 排序:1:未发布;2:已发布;3-待提交;4-待审批;5-已驳回;6-已通过
 	sql += `ORDER BY modify_time DESC LIMIT ?,?`
-	//_, err = o.Raw(sql, pars...).QueryRows(&items)
 	pars = append(pars, startSize)
 	pars = append(pars, pageSize)
 	err = global.DmSQL["rddp"].Raw(sql, pars...).Find(&items).Error
@@ -96,12 +91,10 @@ func GetKnowledgeResourceList(condition string, pars []interface{}, startSize, p
 }
 
 func GetKnowledgeResourceListCount(condition string, pars []interface{}) (count int, err error) {
-	//oRddp := orm.NewOrmUsingDB("rddp")
 	sql := `SELECT COUNT(1) AS count  FROM knowledge_resource WHERE 1=1 `
 	if condition != "" {
 		sql += condition
 	}
-	//err = oRddp.Raw(sql, pars).QueryRow(&count)
 	err = global.DmSQL["rddp"].Raw(sql, pars...).Scan(&count).Error
 	return
 }
@@ -109,7 +102,6 @@ func GetKnowledgeResourceListCount(condition string, pars []interface{}) (count
 func (m *KnowledgeResource) Delete(knowledgeResourceIds int) (err error) {
 
 	sql := ` DELETE FROM knowledge_resource WHERE knowledge_resource_id =? `
-	//_, err = o.Raw(sql, knowledgeResourceIds).Exec()
 	err = global.DmSQL["rddp"].Exec(sql, knowledgeResourceIds).Error
 	return
 }
@@ -117,32 +109,20 @@ func (m *KnowledgeResource) Delete(knowledgeResourceIds int) (err error) {
 func (m *KnowledgeResource) GetById(knowledgeResourceId int) (item *KnowledgeResource, err error) {
 
 	sql := `SELECT * FROM knowledge_resource WHERE knowledge_resource_id =?`
-	//err = o.Raw(sql, knowledgeResourceId).QueryRow(&item)
 	err = global.DmSQL["rddp"].Raw(sql, knowledgeResourceId).First(&item).Error
 	return
 }
 
-// GetSimpleKnowledgeResourceByIds 根据事件ID查询事件基本信息
-func GetSimpleKnowledgeResourceByIds(knowledgeResourceIds []int) (list []*KnowledgeResource, err error) {
-	if len(knowledgeResourceIds) == 0 {
-		return
-	}
-
-	sql := `SELECT id, title, resource_code FROM knowledge_resource WHERE knowledge_resource_id IN (` + utils.GetOrmInReplace(len(knowledgeResourceIds)) + `)`
-	//_, err = o.Raw(sql, knowledgeResourceIds).QueryRows(&list)
-	err = global.DmSQL["rddp"].Raw(sql, knowledgeResourceIds).Find(&list).Error
-	return
-}
-
 type DeleteReq struct {
 	KnowledgeResourceId int `description:"事件id"`
+	ResourceType        int
 }
 
 type AddReq struct {
 	ResourceType int    `gorm:"column:resource_type;"`
 	ClassifyId   int    `gorm:"column:classify_id"`
 	Title        string `gorm:"column:title;"`
-	State        int    `gorm:"column:state" description:"1:未发布;2:已发布;3-待提交;4-待审批;5-已驳回;6-已通过"`
+	State        int    `gorm:"column:state" description:"0:未发布;1:已发布"`
 	Content      string `gorm:"column:content"`
 	SourceFrom   string `gorm:"column:source_from"`
 	TagId        int    `gorm:"column:tag_id;default:0;NOT NULL"`
@@ -176,30 +156,6 @@ type EditResp struct {
 	ResourceCode        string `description:"事件code"`
 }
 
-type ReportDetailReq struct {
-	KnowledgeResourceId int `description:"事件id"`
-}
-
-type ClassifyIdDetailReq struct {
-	ClassifyIdFirst  int `description:"事件一级分类id"`
-	ClassifyIdSecond int `description:"事件二级分类id"`
-}
-
-func GetReportDetailByClassifyId(classifyIdFirst, classifyIdSecond int) (item *KnowledgeResource, err error) {
-
-	sql := ` SELECT * FROM knowledge_resource WHERE 1=1 `
-	if classifyIdSecond > 0 {
-		sql = sql + ` AND classify_id_second=?   ORDER BY stage DESC LIMIT 1`
-		//err = o.Raw(sql, classifyIdSecond).QueryRow(&item)
-		err = global.DmSQL["rddp"].Raw(sql, classifyIdSecond).First(&item).Error
-	} else {
-		sql = sql + ` AND classify_id_first=?   ORDER BY stage DESC LIMIT 1`
-		//err = o.Raw(sql, classifyIdFirst).QueryRow(&item)
-		err = global.DmSQL["rddp"].Raw(sql, classifyIdFirst).First(&item).Error
-	}
-	return
-}
-
 type SaveReportContent struct {
 	Content             string `description:"内容"`
 	KnowledgeResourceId int    `description:"事件id"`
@@ -227,12 +183,6 @@ type SaveReportContentResp struct {
 	KnowledgeResourceId int `description:"事件id"`
 }
 
-func ModifyResourceCode(knowledgeResourceId int64, resourceCode string) (err error) {
-	sql := `UPDATE knowledge_resource SET resource_code=? WHERE knowledge_resource_id =? `
-	err = global.DmSQL["rddp"].Exec(sql, resourceCode, knowledgeResourceId).Error
-	return
-}
-
 // SaveDayWeekReportReq 新增晨报周报请求体
 type SaveDayWeekReportReq struct {
 	KnowledgeResourceId int    `description:"事件ID"`
@@ -242,52 +192,11 @@ type SaveDayWeekReportReq struct {
 	CreateTime          string `description:"创建时间"`
 }
 
-// UpdateReport 更新事件
 func (m *KnowledgeResource) Update(cols []string) (err error) {
-
-	//_, err = o.Update(reportInfo, cols...)
 	err = global.DmSQL["rddp"].Select(cols).Updates(m).Error
 	return
 }
 
-type ElasticReportDetail struct {
-	gorm.Model
-	KnowledgeResourceId int `gorm:"column:knowledge_resource_id;index" description:"事件ID"`
-
-	Title        string `gorm:"column:title" description:"标题"`
-	Abstract     string `gorm:"column:abstract" description:"摘要"`
-	BodyContent  string `gorm:"column:body_content" description:"内容"`
-	ClassifyId   int    `gorm:"column:classify_id" description:"最小单元的分类ID"`
-	ClassifyName string `gorm:"column:classify_name" description:"最小单元的分类名称"`
-}
-
-// UpdateReportSecondClassifyNameByClassifyId 更新事件分类名称字段
-func UpdateReportSecondClassifyNameByClassifyId(classifyId int, classifyName string) (err error) {
-
-	sql := " UPDATE knowledge_resource SET classify_name_second = ? WHERE classify_id_second = ? "
-	//_, err = o.Raw(sql, classifyName, classifyId).Exec()
-	err = global.DmSQL["rddp"].Exec(sql, classifyName, classifyId).Error
-	return
-}
-
-// UpdateReportFirstClassifyNameByClassifyId 更新事件分类一级名称字段
-func UpdateReportFirstClassifyNameByClassifyId(classifyId int, classifyName string) (err error) {
-
-	sql := " UPDATE knowledge_resource SET classify_name_first = ? WHERE classify_id_first = ? "
-	//_, err = o.Raw(sql, classifyName, classifyId).Exec()
-	err = global.DmSQL["rddp"].Exec(sql, classifyName, classifyId).Error
-	return
-}
-
-// UpdateReportThirdClassifyNameByClassifyId 更新事件的三级分类名称字段
-func UpdateReportThirdClassifyNameByClassifyId(classifyId int, classifyName string) (err error) {
-
-	sql := " UPDATE knowledge_resource SET classify_name_third = ? WHERE classify_id_third = ? "
-	//_, err = o.Raw(sql, classifyName, classifyId).Exec()
-	err = global.DmSQL["rddp"].Exec(sql, classifyName, classifyId).Error
-	return
-}
-
 // MarkEditReport 标记编辑英文研报的请求数据
 type MarkEditReport struct {
 	KnowledgeResourceId int `description:"研报id"`
@@ -307,71 +216,17 @@ type MarkReportItem struct {
 	ReportClassifyNameFirst string
 }
 
-// GetReportByCondition 获取事件
-func GetReportByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string, isPage bool, startSize, pageSize int) (items []*KnowledgeResource, err error) {
-
-	fields := `*`
-	if len(fieldArr) > 0 {
-		fields = strings.Join(fieldArr, ",")
-	}
-	sql := `SELECT ` + fields + ` FROM knowledge_resource WHERE 1=1 `
-	sql += condition
-	order := ` ORDER BY modify_time DESC`
-	if orderRule != `` {
-		order = orderRule
-	}
-	sql += order
-	if isPage {
-		sql += ` LIMIT ?,?`
-		//_, err = o.Raw(sql, pars...).QueryRows(&items)
-		err = global.DmSQL["rddp"].Raw(sql, pars...).Find(&items).Error
-	} else {
-		//_, err = o.Raw(sql, pars).QueryRows(&items)
-		err = global.DmSQL["rddp"].Raw(sql, pars...).Find(&items).Error
-	}
-	return
-}
-
-// SetPrePublishReportById 设置定时发布
-func SetPrePublishReportById(knowledgeResourceId int, prePublishTime string, preMsgSend int) (err error) {
-
-	sql := `UPDATE knowledge_resource SET pre_publish_time=?, pre_msg_send=? WHERE knowledge_resource_id = ? and state = 1 `
-	//_, err = o.Raw(sql, prePublishTime, preMsgSend, knowledgeResourceId).Exec()
-	err = global.DmSQL["rddp"].Exec(sql, prePublishTime, preMsgSend, knowledgeResourceId).Error
-	return
-}
-
-// UpdateReportsStateBySecondIds 批量更新二级分类事件状态
-func UpdateReportsStateBySecondIds(oldState, newState int, secondIds []int) (err error) {
-	if len(secondIds) <= 0 {
-		return
-	}
-
-	// (有审批流的)未发布->待提交
-	sql := fmt.Sprintf(`UPDATE knowledge_resource SET state = ?, pre_publish_time = NULL WHERE state = ? AND classify_id_second IN (%s)`, utils.GetOrmInReplace(len(secondIds)))
-	//_, err = o.Raw(sql, newState, oldState, secondIds).Exec()
-	err = global.DmSQL["rddp"].Exec(sql, newState, oldState, secondIds).Error
-	if err != nil {
-		return
-	}
-	// (无审批流的)待提交->未发布
-	sql = fmt.Sprintf(`UPDATE knowledge_resource SET state = ?, pre_publish_time = NULL WHERE state = ? AND classify_id_second NOT IN (%s)`, utils.GetOrmInReplace(len(secondIds)))
-	//_, err = o.Raw(sql, oldState, newState, secondIds).Exec()
-	err = global.DmSQL["rddp"].Exec(sql, oldState, newState, secondIds).Error
-	return
-}
-
 func (m *KnowledgeResource) AddMulti(items []*KnowledgeResource) (err error) {
 	err = global.DmSQL["rddp"].CreateInBatches(items, utils.MultiAddNum).Error
 	return
 }
 
-func (m *KnowledgeResource) GetSourceFrom(keyword string, resource_type int) (items []string, err error) {
+func (m *KnowledgeResource) GetSourceFrom(keyword string, resourceType int) (items []string, err error) {
 	sql := fmt.Sprintf(`SELECT distinct source_from FROM %s WHERE 1=1 and resource_type=? `, m.TableName())
 	if keyword != `` {
 		sql += ` AND source_from LIKE '%` + keyword + `%'`
 	}
-	err = global.DmSQL["rddp"].Raw(sql, resource_type).Scan(&items).Error
+	err = global.DmSQL["rddp"].Raw(sql, resourceType).Scan(&items).Error
 	return
 }
 

+ 18 - 77
models/knowledge/knowledge_tag.go

@@ -43,15 +43,6 @@ func (m *KnowledgeTag) Add(item *KnowledgeTag) (err error) {
 	return
 }
 
-func (m *KnowledgeTag) GetTagSubCountByTagId(tagId int) (count int, err error) {
-
-	sql := `SELECT COUNT(1) as num FROM %s AS a
-        INNER JOIN knowledge_resource AS b ON a.tag_id=b.tag_id
-        WHERE a.parent_id=? `
-	err = global.DmSQL["rddp"].Raw(sql, tagId).First(&count).Error
-	return
-}
-
 // 删除分类
 func (m *KnowledgeTag) Delete(tagId int) (err error) {
 	sql := fmt.Sprintf(`DELETE FROM %s WHERE tag_id =? `, m.TableName())
@@ -77,7 +68,8 @@ type TagAddReq struct {
 }
 
 type DeleteTagReq struct {
-	TagId int `description:"分类ID"`
+	TagId        int `description:"分类ID"`
+	ResourceType int `description:"分类类型:0事件库,1政策库,2观点库,3知识库"`
 }
 
 type EditTagReq struct {
@@ -96,19 +88,9 @@ type EditTagPermissionReq struct {
 }
 
 // GetAllTag 获取所有分类
-func (m *KnowledgeTag) GetAllTag() (list []*KnowledgeTag, err error) {
-	//o := orm.NewOrmUsingDB("rddp")
-	//sql := ` SELECT * FROM Tag `
-	//_, err = o.Raw(sql).QueryRows(&list)
-	sql := fmt.Sprintf(` SELECT * FROM %s `, m.TableName())
-	err = global.DmSQL["rddp"].Raw(sql).Find(&list).Error
-	return
-}
-
-// GetTagByKeyword 名称获取分类
-func (m *KnowledgeTag) GetTagByKeyword(keyword string) (item *KnowledgeTag, err error) {
-	sql := ` SELECT * FROM %s WHERE tag_name = ? LIMIT 1 `
-	err = global.DmSQL["rddp"].Raw(sql, keyword).Find(&item).Error
+func (m *KnowledgeTag) GetAllTag(resourceType int) (list []*KnowledgeTag, err error) {
+	sql := fmt.Sprintf(` SELECT * FROM %s where resource_type=?`, m.TableName())
+	err = global.DmSQL["rddp"].Raw(sql, resourceType).Find(&list).Error
 	return
 }
 
@@ -144,15 +126,8 @@ func (m *KnowledgeTag) GetTagByCondition(condition, orderRule string, pars []int
 	return
 }
 
-// RelateTelSecTagWithPermissions 关联了电话会的二级分类及权限
-type RelateTelSecTagWithPermissions struct {
-	Id                 int    `description:"分类ID"`
-	TagName            string `description:"分类名称"`
-	ChartPermissionIds string `description:"权限IDs"`
-}
-
-// UpdateTagSortByParentId 根据父类id更新排序
-func (m *KnowledgeTag) UpdateTagSortByParentId(permissionId, nowSort int, updateSort string, resourceType int) (err error) {
+// UpdateTagSort 根据父类id更新排序
+func (m *KnowledgeTag) UpdateTagSort(permissionId, nowSort int, updateSort string, resourceType int) (err error) {
 
 	sql := ` update %s set sort = ` + updateSort + ` WHERE resource_type=? AND sort > ? `
 	if permissionId > 0 {
@@ -163,14 +138,6 @@ func (m *KnowledgeTag) UpdateTagSortByParentId(permissionId, nowSort int, update
 	return
 }
 
-// GetMaxSortByParentId 获取最大的排序值
-func (m *KnowledgeTag) GetMaxSortByParentId(parentId int) (maxSort int, err error) {
-	sql := `SELECT COALESCE(MAX(sort),0) AS sort FROM %s WHERE parent_id = ? `
-	sql = fmt.Sprintf(sql, m.TableName())
-	err = global.DmSQL["rddp"].Raw(sql, parentId).Scan(&maxSort).Error
-	return
-}
-
 // GetMaxSort 获取最大的排序值
 func (m *KnowledgeTag) GetMaxSort() (maxSort int, err error) {
 	sql := `SELECT COALESCE(MAX(sort),0) AS sort FROM %s`
@@ -179,7 +146,7 @@ func (m *KnowledgeTag) GetMaxSort() (maxSort int, err error) {
 	return
 }
 
-// GetFirstTagByParentId 获取当前父级分类下,且排序数相同 的排序第一条的数据
+// GetFirstTag 获取当前父级分类下,且排序数相同 的排序第一条的数据
 func (m *KnowledgeTag) GetFirstTag() (item *KnowledgeTag, err error) {
 	sql := `SELECT * FROM %s order by sort asc, tag_id asc limit 1`
 	sql = fmt.Sprintf(sql, m.TableName())
@@ -188,43 +155,17 @@ func (m *KnowledgeTag) GetFirstTag() (item *KnowledgeTag, err error) {
 }
 
 type TagMoveReq struct {
-	TagId     int `description:"分类ID"`
-	PrevTagId int `description:"上一个兄弟节点分类id"`
-	NextTagId int `description:"下一个兄弟节点分类id"`
-}
-
-type TagSetEnabledReq struct {
-	TagId   int `description:"分类ID"`
-	Enabled int `description:"是否可用,1可用,0禁用"`
-}
-
-// GetCountTagChildByParentId
-// @Description: 获取父级分类下子分类数量
-// @author: Roc
-// @datetime 2024-06-17 10:58:46
-// @param parentId int
-// @return total int
-// @return err error
-func (m *KnowledgeTag) GetCountTagChildByParentId(parentId int) (total int, err error) {
-	sql := fmt.Sprintf(`SELECT count(1) AS total FROM %s WHERE parent_id = ? `, m.TableName())
-	err = global.DmSQL["rddp"].Raw(sql, parentId).Scan(&total).Error
-	return
+	TagId        int `description:"分类ID"`
+	PrevTagId    int `description:"上一个兄弟节点分类id"`
+	NextTagId    int `description:"下一个兄弟节点分类id"`
+	ResourceType int `description:"分类类型:0事件库,1政策库,2观点库,3知识库"`
 }
 
-// GetTagListByKeyword
-// @Description: 获取分类列表
-// @author: Roc
-// @datetime 2024-06-19 09:49:33
-// @param keyWord string
-// @param enabled int
-// @return items []*KnowledgeTagList
-// @return err error
-func (m *KnowledgeTag) GetTagListByKeyword(keyWord string) (items []*KnowledgeTagItem, err error) {
+func (m *KnowledgeTag) GetTagListByKeyword(keyWord string, resourceType int) (items []*KnowledgeTagItem, err error) {
 	sql := ``
 	pars := make([]interface{}, 0)
-
-	sql = `SELECT * FROM %s WHERE 1=1 `
-
+	sql = `SELECT * FROM %s WHERE resource_type=? `
+	pars = append(pars, resourceType)
 	if keyWord != `` {
 		sql += ` AND tag_name LIKE ? `
 		pars = utils.GetLikeKeywordPars(pars, keyWord, 1)
@@ -236,12 +177,12 @@ func (m *KnowledgeTag) GetTagListByKeyword(keyWord string) (items []*KnowledgeTa
 	return
 }
 
-func (m *KnowledgeTag) GetListByIdList(tagIdList []int) (items []*KnowledgeTag, err error) {
+func (m *KnowledgeTag) GetListByIdList(tagIdList []int, resourceType int) (items []*KnowledgeTag, err error) {
 	num := len(tagIdList)
 	if num <= 0 {
 		return
 	}
-	sql := fmt.Sprintf(`SELECT * FROM %s WHERE tag_id IN (?)`, m.TableName())
-	err = global.DmSQL["rddp"].Raw(sql, tagIdList).Find(&items).Error
+	sql := fmt.Sprintf(`SELECT * FROM %s WHERE resource_type=? AND tag_id IN (?)`, m.TableName())
+	err = global.DmSQL["rddp"].Raw(sql, resourceType, tagIdList).Find(&items).Error
 	return
 }

+ 216 - 225
routers/commentsRouter.go

@@ -7189,6 +7189,222 @@ func init() {
             Filters: nil,
             Params: nil})
 
+    beego.GlobalControllerRouter["eta_gn/eta_api/controllers/knowledge:ClassifyController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers/knowledge:ClassifyController"],
+        beego.ControllerComments{
+            Method: "Add",
+            Router: `/classify/add`,
+            AllowHTTPMethods: []string{"post"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
+    beego.GlobalControllerRouter["eta_gn/eta_api/controllers/knowledge:ClassifyController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers/knowledge:ClassifyController"],
+        beego.ControllerComments{
+            Method: "CheckDeleteClassify",
+            Router: `/classify/checkDelete`,
+            AllowHTTPMethods: []string{"get"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
+    beego.GlobalControllerRouter["eta_gn/eta_api/controllers/knowledge:ClassifyController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers/knowledge:ClassifyController"],
+        beego.ControllerComments{
+            Method: "Delete",
+            Router: `/classify/delete`,
+            AllowHTTPMethods: []string{"post"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
+    beego.GlobalControllerRouter["eta_gn/eta_api/controllers/knowledge:ClassifyController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers/knowledge:ClassifyController"],
+        beego.ControllerComments{
+            Method: "Edit",
+            Router: `/classify/edit`,
+            AllowHTTPMethods: []string{"post"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
+    beego.GlobalControllerRouter["eta_gn/eta_api/controllers/knowledge:ClassifyController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers/knowledge:ClassifyController"],
+        beego.ControllerComments{
+            Method: "FindByIdClassify",
+            Router: `/classify/findById`,
+            AllowHTTPMethods: []string{"get"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
+    beego.GlobalControllerRouter["eta_gn/eta_api/controllers/knowledge:ClassifyController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers/knowledge:ClassifyController"],
+        beego.ControllerComments{
+            Method: "ListClassify",
+            Router: `/classify/list`,
+            AllowHTTPMethods: []string{"get"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
+    beego.GlobalControllerRouter["eta_gn/eta_api/controllers/knowledge:ClassifyController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers/knowledge:ClassifyController"],
+        beego.ControllerComments{
+            Method: "Move",
+            Router: `/classify/move`,
+            AllowHTTPMethods: []string{"post"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
+    beego.GlobalControllerRouter["eta_gn/eta_api/controllers/knowledge:ClassifyController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers/knowledge:ClassifyController"],
+        beego.ControllerComments{
+            Method: "ParentClassify",
+            Router: `/classify/parent`,
+            AllowHTTPMethods: []string{"get"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
+    beego.GlobalControllerRouter["eta_gn/eta_api/controllers/knowledge:ResourceController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers/knowledge:ResourceController"],
+        beego.ControllerComments{
+            Method: "Add",
+            Router: `/resource/add`,
+            AllowHTTPMethods: []string{"post"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
+    beego.GlobalControllerRouter["eta_gn/eta_api/controllers/knowledge:ResourceController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers/knowledge:ResourceController"],
+        beego.ControllerComments{
+            Method: "Delete",
+            Router: `/resource/delete`,
+            AllowHTTPMethods: []string{"post"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
+    beego.GlobalControllerRouter["eta_gn/eta_api/controllers/knowledge:ResourceController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers/knowledge:ResourceController"],
+        beego.ControllerComments{
+            Method: "Detail",
+            Router: `/resource/detail`,
+            AllowHTTPMethods: []string{"get"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
+    beego.GlobalControllerRouter["eta_gn/eta_api/controllers/knowledge:ResourceController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers/knowledge:ResourceController"],
+        beego.ControllerComments{
+            Method: "BaseDetail",
+            Router: `/resource/detail/base`,
+            AllowHTTPMethods: []string{"get"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
+    beego.GlobalControllerRouter["eta_gn/eta_api/controllers/knowledge:ResourceController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers/knowledge:ResourceController"],
+        beego.ControllerComments{
+            Method: "ImportFailListDownload",
+            Router: `/resource/download_fail`,
+            AllowHTTPMethods: []string{"get"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
+    beego.GlobalControllerRouter["eta_gn/eta_api/controllers/knowledge:ResourceController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers/knowledge:ResourceController"],
+        beego.ControllerComments{
+            Method: "Edit",
+            Router: `/resource/edit`,
+            AllowHTTPMethods: []string{"post"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
+    beego.GlobalControllerRouter["eta_gn/eta_api/controllers/knowledge:ResourceController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers/knowledge:ResourceController"],
+        beego.ControllerComments{
+            Method: "ImportData",
+            Router: `/resource/import_add`,
+            AllowHTTPMethods: []string{"post"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
+    beego.GlobalControllerRouter["eta_gn/eta_api/controllers/knowledge:ResourceController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers/knowledge:ResourceController"],
+        beego.ControllerComments{
+            Method: "List",
+            Router: `/resource/list`,
+            AllowHTTPMethods: []string{"get"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
+    beego.GlobalControllerRouter["eta_gn/eta_api/controllers/knowledge:ResourceController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers/knowledge:ResourceController"],
+        beego.ControllerComments{
+            Method: "SaveReportContent",
+            Router: `/resource/saveContent`,
+            AllowHTTPMethods: []string{"post"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
+    beego.GlobalControllerRouter["eta_gn/eta_api/controllers/knowledge:ResourceController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers/knowledge:ResourceController"],
+        beego.ControllerComments{
+            Method: "GetSourceFrom",
+            Router: `/resource/source_from`,
+            AllowHTTPMethods: []string{"get"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
+    beego.GlobalControllerRouter["eta_gn/eta_api/controllers/knowledge:ResourceController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers/knowledge:ResourceController"],
+        beego.ControllerComments{
+            Method: "ResourceUpload",
+            Router: `/resource/upload`,
+            AllowHTTPMethods: []string{"post"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
+    beego.GlobalControllerRouter["eta_gn/eta_api/controllers/knowledge:TagController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers/knowledge:TagController"],
+        beego.ControllerComments{
+            Method: "Add",
+            Router: `/tag/add`,
+            AllowHTTPMethods: []string{"post"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
+    beego.GlobalControllerRouter["eta_gn/eta_api/controllers/knowledge:TagController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers/knowledge:TagController"],
+        beego.ControllerComments{
+            Method: "Delete",
+            Router: `/tag/delete`,
+            AllowHTTPMethods: []string{"post"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
+    beego.GlobalControllerRouter["eta_gn/eta_api/controllers/knowledge:TagController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers/knowledge:TagController"],
+        beego.ControllerComments{
+            Method: "Edit",
+            Router: `/tag/edit`,
+            AllowHTTPMethods: []string{"post"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
+    beego.GlobalControllerRouter["eta_gn/eta_api/controllers/knowledge:TagController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers/knowledge:TagController"],
+        beego.ControllerComments{
+            Method: "ListTag",
+            Router: `/tag/list`,
+            AllowHTTPMethods: []string{"get"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
+    beego.GlobalControllerRouter["eta_gn/eta_api/controllers/knowledge:TagController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers/knowledge:TagController"],
+        beego.ControllerComments{
+            Method: "Move",
+            Router: `/tag/move`,
+            AllowHTTPMethods: []string{"post"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
     beego.GlobalControllerRouter["eta_gn/eta_api/controllers/report_approve:ReportApproveController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers/report_approve:ReportApproveController"],
         beego.ControllerComments{
             Method: "Approve",
@@ -8701,231 +8917,6 @@ func init() {
             Filters: nil,
             Params: nil})
 
-    beego.GlobalControllerRouter["eta_gn/eta_api/controllers:KnowledgeClassifyController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers:KnowledgeClassifyController"],
-        beego.ControllerComments{
-            Method: "Add",
-            Router: `/classify/add`,
-            AllowHTTPMethods: []string{"post"},
-            MethodParams: param.Make(),
-            Filters: nil,
-            Params: nil})
-
-    beego.GlobalControllerRouter["eta_gn/eta_api/controllers:KnowledgeClassifyController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers:KnowledgeClassifyController"],
-        beego.ControllerComments{
-            Method: "CheckDeleteClassify",
-            Router: `/classify/checkDelete`,
-            AllowHTTPMethods: []string{"get"},
-            MethodParams: param.Make(),
-            Filters: nil,
-            Params: nil})
-
-    beego.GlobalControllerRouter["eta_gn/eta_api/controllers:KnowledgeClassifyController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers:KnowledgeClassifyController"],
-        beego.ControllerComments{
-            Method: "Delete",
-            Router: `/classify/delete`,
-            AllowHTTPMethods: []string{"post"},
-            MethodParams: param.Make(),
-            Filters: nil,
-            Params: nil})
-
-    beego.GlobalControllerRouter["eta_gn/eta_api/controllers:KnowledgeClassifyController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers:KnowledgeClassifyController"],
-        beego.ControllerComments{
-            Method: "Edit",
-            Router: `/classify/edit`,
-            AllowHTTPMethods: []string{"post"},
-            MethodParams: param.Make(),
-            Filters: nil,
-            Params: nil})
-
-    beego.GlobalControllerRouter["eta_gn/eta_api/controllers:KnowledgeClassifyController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers:KnowledgeClassifyController"],
-        beego.ControllerComments{
-            Method: "FindByIdClassify",
-            Router: `/classify/findById`,
-            AllowHTTPMethods: []string{"get"},
-            MethodParams: param.Make(),
-            Filters: nil,
-            Params: nil})
-
-    beego.GlobalControllerRouter["eta_gn/eta_api/controllers:KnowledgeClassifyController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers:KnowledgeClassifyController"],
-        beego.ControllerComments{
-            Method: "ListClassify",
-            Router: `/classify/list`,
-            AllowHTTPMethods: []string{"get"},
-            MethodParams: param.Make(),
-            Filters: nil,
-            Params: nil})
-
-    beego.GlobalControllerRouter["eta_gn/eta_api/controllers:KnowledgeClassifyController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers:KnowledgeClassifyController"],
-        beego.ControllerComments{
-            Method: "Move",
-            Router: `/classify/move`,
-            AllowHTTPMethods: []string{"post"},
-            MethodParams: param.Make(),
-            Filters: nil,
-            Params: nil})
-
-    beego.GlobalControllerRouter["eta_gn/eta_api/controllers:KnowledgeClassifyController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers:KnowledgeClassifyController"],
-        beego.ControllerComments{
-            Method: "ParentClassify",
-            Router: `/classify/parent`,
-            AllowHTTPMethods: []string{"get"},
-            MethodParams: param.Make(),
-            Filters: nil,
-            Params: nil})
-
-    beego.GlobalControllerRouter["eta_gn/eta_api/controllers:KnowledgeResourceController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers:KnowledgeResourceController"],
-        beego.ControllerComments{
-            Method: "Add",
-            Router: `/resource/add`,
-            AllowHTTPMethods: []string{"post"},
-            MethodParams: param.Make(),
-            Filters: nil,
-            Params: nil})
-
-    beego.GlobalControllerRouter["eta_gn/eta_api/controllers:KnowledgeResourceController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers:KnowledgeResourceController"],
-        beego.ControllerComments{
-            Method: "GetAdminList",
-            Router: `/resource/admins`,
-            AllowHTTPMethods: []string{"get"},
-            MethodParams: param.Make(),
-            Filters: nil,
-            Params: nil})
-
-    beego.GlobalControllerRouter["eta_gn/eta_api/controllers:KnowledgeResourceController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers:KnowledgeResourceController"],
-        beego.ControllerComments{
-            Method: "Delete",
-            Router: `/resource/delete`,
-            AllowHTTPMethods: []string{"post"},
-            MethodParams: param.Make(),
-            Filters: nil,
-            Params: nil})
-
-    beego.GlobalControllerRouter["eta_gn/eta_api/controllers:KnowledgeResourceController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers:KnowledgeResourceController"],
-        beego.ControllerComments{
-            Method: "Detail",
-            Router: `/resource/detail`,
-            AllowHTTPMethods: []string{"get"},
-            MethodParams: param.Make(),
-            Filters: nil,
-            Params: nil})
-
-    beego.GlobalControllerRouter["eta_gn/eta_api/controllers:KnowledgeResourceController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers:KnowledgeResourceController"],
-        beego.ControllerComments{
-            Method: "BaseDetail",
-            Router: `/resource/detail/base`,
-            AllowHTTPMethods: []string{"get"},
-            MethodParams: param.Make(),
-            Filters: nil,
-            Params: nil})
-
-    beego.GlobalControllerRouter["eta_gn/eta_api/controllers:KnowledgeResourceController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers:KnowledgeResourceController"],
-        beego.ControllerComments{
-            Method: "ImportFailListDownload",
-            Router: `/resource/download_fail`,
-            AllowHTTPMethods: []string{"get"},
-            MethodParams: param.Make(),
-            Filters: nil,
-            Params: nil})
-
-    beego.GlobalControllerRouter["eta_gn/eta_api/controllers:KnowledgeResourceController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers:KnowledgeResourceController"],
-        beego.ControllerComments{
-            Method: "Edit",
-            Router: `/resource/edit`,
-            AllowHTTPMethods: []string{"post"},
-            MethodParams: param.Make(),
-            Filters: nil,
-            Params: nil})
-
-    beego.GlobalControllerRouter["eta_gn/eta_api/controllers:KnowledgeResourceController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers:KnowledgeResourceController"],
-        beego.ControllerComments{
-            Method: "ImportData",
-            Router: `/resource/import_add`,
-            AllowHTTPMethods: []string{"post"},
-            MethodParams: param.Make(),
-            Filters: nil,
-            Params: nil})
-
-    beego.GlobalControllerRouter["eta_gn/eta_api/controllers:KnowledgeResourceController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers:KnowledgeResourceController"],
-        beego.ControllerComments{
-            Method: "List",
-            Router: `/resource/list`,
-            AllowHTTPMethods: []string{"get"},
-            MethodParams: param.Make(),
-            Filters: nil,
-            Params: nil})
-
-    beego.GlobalControllerRouter["eta_gn/eta_api/controllers:KnowledgeResourceController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers:KnowledgeResourceController"],
-        beego.ControllerComments{
-            Method: "SaveReportContent",
-            Router: `/resource/saveContent`,
-            AllowHTTPMethods: []string{"post"},
-            MethodParams: param.Make(),
-            Filters: nil,
-            Params: nil})
-
-    beego.GlobalControllerRouter["eta_gn/eta_api/controllers:KnowledgeResourceController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers:KnowledgeResourceController"],
-        beego.ControllerComments{
-            Method: "GetSourceFrom",
-            Router: `/resource/source_from`,
-            AllowHTTPMethods: []string{"get"},
-            MethodParams: param.Make(),
-            Filters: nil,
-            Params: nil})
-
-    beego.GlobalControllerRouter["eta_gn/eta_api/controllers:KnowledgeResourceController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers:KnowledgeResourceController"],
-        beego.ControllerComments{
-            Method: "ResourceUpload",
-            Router: `/resource/upload`,
-            AllowHTTPMethods: []string{"post"},
-            MethodParams: param.Make(),
-            Filters: nil,
-            Params: nil})
-
-    beego.GlobalControllerRouter["eta_gn/eta_api/controllers:KnowledgeTagController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers:KnowledgeTagController"],
-        beego.ControllerComments{
-            Method: "Add",
-            Router: `/tag/add`,
-            AllowHTTPMethods: []string{"post"},
-            MethodParams: param.Make(),
-            Filters: nil,
-            Params: nil})
-
-    beego.GlobalControllerRouter["eta_gn/eta_api/controllers:KnowledgeTagController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers:KnowledgeTagController"],
-        beego.ControllerComments{
-            Method: "Delete",
-            Router: `/tag/delete`,
-            AllowHTTPMethods: []string{"post"},
-            MethodParams: param.Make(),
-            Filters: nil,
-            Params: nil})
-
-    beego.GlobalControllerRouter["eta_gn/eta_api/controllers:KnowledgeTagController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers:KnowledgeTagController"],
-        beego.ControllerComments{
-            Method: "Edit",
-            Router: `/tag/edit`,
-            AllowHTTPMethods: []string{"post"},
-            MethodParams: param.Make(),
-            Filters: nil,
-            Params: nil})
-
-    beego.GlobalControllerRouter["eta_gn/eta_api/controllers:KnowledgeTagController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers:KnowledgeTagController"],
-        beego.ControllerComments{
-            Method: "ListTag",
-            Router: `/tag/list`,
-            AllowHTTPMethods: []string{"get"},
-            MethodParams: param.Make(),
-            Filters: nil,
-            Params: nil})
-
-    beego.GlobalControllerRouter["eta_gn/eta_api/controllers:KnowledgeTagController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers:KnowledgeTagController"],
-        beego.ControllerComments{
-            Method: "Move",
-            Router: `/tag/move`,
-            AllowHTTPMethods: []string{"post"},
-            MethodParams: param.Make(),
-            Filters: nil,
-            Params: nil})
-
     beego.GlobalControllerRouter["eta_gn/eta_api/controllers:MeetingProbabilitiesController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers:MeetingProbabilitiesController"],
         beego.ControllerComments{
             Method: "Detail",

+ 4 - 3
routers/router.go

@@ -26,6 +26,7 @@ import (
 	"eta_gn/eta_api/controllers/english_report"
 	"eta_gn/eta_api/controllers/eta_trial"
 	"eta_gn/eta_api/controllers/fe_calendar"
+	"eta_gn/eta_api/controllers/knowledge"
 	"eta_gn/eta_api/controllers/report_approve"
 	"eta_gn/eta_api/controllers/roadshow"
 	"eta_gn/eta_api/controllers/sandbox"
@@ -396,9 +397,9 @@ func init() {
 		),
 		web.NSNamespace("/knowledge",
 			web.NSInclude(
-				&controllers.KnowledgeClassifyController{},
-				&controllers.KnowledgeResourceController{},
-				&controllers.KnowledgeTagController{},
+				&knowledge.ClassifyController{},
+				&knowledge.ResourceController{},
+				&knowledge.TagController{},
 			),
 		),
 		web.NSNamespace("/bi_dashborad",

+ 7 - 1
services/knowledge/classify.go

@@ -344,7 +344,7 @@ func moveResourceByAddClassify(parentClassifyInfo, currClassifyInfo *knowledge.K
 	return
 }
 
-func EditKnowledgeClassify(classifyId, parentId int, classifyName string) (err error, errMsg string, isSendEmail bool) {
+func EditKnowledgeClassify(classifyId, parentId int, classifyName string, resourceType int) (err error, errMsg string, isSendEmail bool) {
 	isSendEmail = true
 	errMsg = `修改失败`
 	knowledgeObj := new(knowledge.KnowledgeClassify)
@@ -357,6 +357,12 @@ func EditKnowledgeClassify(classifyId, parentId int, classifyName string) (err e
 		}
 		return
 	}
+	if item.ResourceType != resourceType {
+		errMsg = "分类类型错误"
+		err = errors.New("分类类型错误")
+		return
+	}
+
 	if (parentId == 0 && item.ParentId > 0) || (parentId > 0 && item.ParentId == 0) {
 		err = errors.New("不允许修改分类层级")
 		errMsg = "不允许修改分类层级"

+ 226 - 37
services/knowledge/resource.go

@@ -20,19 +20,31 @@ func AddResource(req *knowledge.AddReq, sysUser *system.Admin) (item *knowledge.
 	var startTime time.Time
 	var endTime time.Time
 	if req.StartTime != "" {
-		startTime, err = time.ParseInLocation(utils.FormatDateTime, req.StartTime, time.Local)
-		if err != nil { // 如果时间格式不正确,则返回错误信息
-			errMsg = "开始时间格式不正确"
-			err = fmt.Errorf("开始时间格式不正确,Err:" + err.Error())
-			return
+		if req.ResourceType == knowledge.KnowledgeResourceTypeEvent || req.ResourceType == knowledge.KnowledgeResourceTypePolicy {
+			startTime, err = time.ParseInLocation(utils.FormatDateTime, req.StartTime, time.Local)
+			if err != nil { // 如果时间格式不正确,则返回错误信息
+				errMsg = "开始时间格式不正确"
+				err = fmt.Errorf("开始时间格式不正确,Err:" + err.Error())
+				return
+			}
+		} else {
+			startTime, err = time.ParseInLocation(utils.FormatDate, req.StartTime, time.Local)
+			if err != nil { // 如果时间格式不正确,则返回错误信息
+				errMsg = "开始时间格式不正确"
+				err = fmt.Errorf("开始时间格式不正确,Err:" + err.Error())
+				return
+			}
 		}
+
 	}
 	if req.EndTime != "" {
-		endTime, err = time.ParseInLocation(utils.FormatDateTime, req.EndTime, time.Local)
-		if err != nil { // 如果时间格式不正确,则返回错误信息
-			errMsg = "结束时间格式不正确"
-			err = fmt.Errorf("结束时间格式不正确,Err:" + err.Error())
-			return
+		if req.ResourceType == knowledge.KnowledgeResourceTypeEvent || req.ResourceType == knowledge.KnowledgeResourceTypePolicy {
+			endTime, err = time.ParseInLocation(utils.FormatDateTime, req.EndTime, time.Local)
+			if err != nil { // 如果时间格式不正确,则返回错误信息
+				errMsg = "结束时间格式不正确"
+				err = fmt.Errorf("结束时间格式不正确,Err:" + err.Error())
+				return
+			}
 		}
 	}
 	isFile := 0
@@ -132,19 +144,31 @@ func EditResource(resourceInfo *knowledge.KnowledgeResource, req knowledge.EditR
 	var startTime time.Time
 	var endTime time.Time
 	if req.StartTime != "" {
-		startTime, err = time.ParseInLocation(utils.FormatDateTime, req.StartTime, time.Local)
-		if err != nil { // 如果时间格式不正确,则返回错误信息
-			errMsg = "开始时间格式不正确"
-			err = fmt.Errorf("开始时间格式不正确,Err:" + err.Error())
-			return
+		if req.ResourceType == knowledge.KnowledgeResourceTypeEvent || req.ResourceType == knowledge.KnowledgeResourceTypePolicy {
+			startTime, err = time.ParseInLocation(utils.FormatDateTime, req.StartTime, time.Local)
+			if err != nil { // 如果时间格式不正确,则返回错误信息
+				errMsg = "开始时间格式不正确"
+				err = fmt.Errorf("开始时间格式不正确,Err:" + err.Error())
+				return
+			}
+		} else {
+			startTime, err = time.ParseInLocation(utils.FormatDate, req.StartTime, time.Local)
+			if err != nil { // 如果时间格式不正确,则返回错误信息
+				errMsg = "开始时间格式不正确"
+				err = fmt.Errorf("开始时间格式不正确,Err:" + err.Error())
+				return
+			}
 		}
+
 	}
 	if req.EndTime != "" {
-		endTime, err = time.ParseInLocation(utils.FormatDateTime, req.EndTime, time.Local)
-		if err != nil { // 如果时间格式不正确,则返回错误信息
-			errMsg = "结束时间格式不正确"
-			err = fmt.Errorf("结束时间格式不正确,Err:" + err.Error())
-			return
+		if req.ResourceType == knowledge.KnowledgeResourceTypeEvent || req.ResourceType == knowledge.KnowledgeResourceTypePolicy {
+			endTime, err = time.ParseInLocation(utils.FormatDateTime, req.EndTime, time.Local)
+			if err != nil { // 如果时间格式不正确,则返回错误信息
+				errMsg = "结束时间格式不正确"
+				err = fmt.Errorf("结束时间格式不正确,Err:" + err.Error())
+				return
+			}
 		}
 	}
 	if resourceInfo.IsFile == 0 {
@@ -314,7 +338,12 @@ func ImportResourceData(path string, resourceType int, sysUser *system.Admin) (s
 			err = errors.New(errMsg)
 			return
 		}
-		tmpIndexDataList, tmpFailDataList, err, errMsg = getDataByTemplateEvent(sheet, sysUser.AdminId, templateType)
+		if resourceType == knowledge.KnowledgeResourceTypeEvent || resourceType == knowledge.KnowledgeResourceTypePolicy {
+			tmpIndexDataList, tmpFailDataList, err, errMsg = getDataByTemplateEvent(sheet, sysUser.AdminId, templateType)
+		} else {
+			tmpIndexDataList, tmpFailDataList, err, errMsg = getDataByTemplatePoint(sheet, sysUser.AdminId, templateType)
+		}
+
 		if err != nil {
 			return
 		}
@@ -346,7 +375,7 @@ func ImportResourceData(path string, resourceType int, sysUser *system.Admin) (s
 		}
 	}
 	fmt.Println(classifyNames)
-	classifyList, err := knowledge.GetFullClassifyListByName(classifyNames)
+	classifyList, err := knowledge.GetFullClassifyListByName(classifyNames, resourceType)
 	if err != nil {
 		err = fmt.Errorf("获取分类数据失败 Err: %s", err.Error())
 		errMsg = "获取分类数据失败"
@@ -360,7 +389,7 @@ func ImportResourceData(path string, resourceType int, sysUser *system.Admin) (s
 	// todo 获取所有tag
 	tagNameMap := make(map[string]int)
 	// todo 获取所有tag
-	tagList, err := tagObj.GetAllTag()
+	tagList, err := tagObj.GetAllTag(resourceType)
 	for _, v := range tagList {
 		tagNameMap[v.TagName] = v.TagId
 	}
@@ -416,10 +445,16 @@ func ImportResourceData(path string, resourceType int, sysUser *system.Admin) (s
 		req.TagId = tagId
 		req.ResourceType = resourceType
 		if v.StartDate != "" {
-			req.StartTime = fmt.Sprintf("%s %s", v.StartDate, v.StartTime)
+			if resourceType == knowledge.KnowledgeResourceTypeEvent || resourceType == knowledge.KnowledgeResourceTypePolicy {
+				req.StartTime = fmt.Sprintf("%s %s", v.StartDate, v.StartTime)
+			} else {
+				req.StartTime = v.StartDate
+			}
 		}
 		if v.EndDate != "" {
-			req.EndTime = fmt.Sprintf("%s %s", v.EndDate, v.EndTime)
+			if resourceType == knowledge.KnowledgeResourceTypeEvent || resourceType == knowledge.KnowledgeResourceTypePolicy {
+				req.EndTime = fmt.Sprintf("%s %s", v.EndDate, v.EndTime)
+			}
 		}
 		tmpErr, msg := addExcelResource(req, sysUser)
 		if tmpErr != nil {
@@ -452,13 +487,12 @@ func ImportResourceData(path string, resourceType int, sysUser *system.Admin) (s
 	if failCount > 0 {
 		failObj := new(knowledge.KnowledgeImportFail)
 		//先删除导入失败记录
-		_ = failObj.Delete(sysUser.AdminId)
+		_ = failObj.Delete(sysUser.AdminId, resourceType)
 
 		// 批量添加导入失败记录
 		err = failObj.MultiAdd(failDataList)
 		if err != nil {
 			go alarm_msg.SendAlarmMsg("导入数据 新增失败记录失败,Err:"+err.Error(), 3)
-			//go utils.SendEmail(utils.APPNAME+"失败提醒", "导入数据 新增失败记录失败:Err:"+err.Error(), utils.EmailSendToUsers)
 		}
 
 		{
@@ -745,6 +779,149 @@ func getDataByTemplateEvent(sheet *xlsx.Sheet, sysUserId, resourceType int) (ind
 	return
 }
 
+// getDataByTemplatePoint
+func getDataByTemplatePoint(sheet *xlsx.Sheet, sysUserId, resourceType int) (indexDataList []knowledge.ResourceImportData, failDataList []*knowledge.KnowledgeImportFail, err error, errMsg string) {
+	fmt.Println("sheet name: ", sheet.Name)
+	indexDataList = make([]knowledge.ResourceImportData, 0)
+	failDataList = make([]*knowledge.KnowledgeImportFail, 0)
+
+	//遍历行读取
+	maxRow := sheet.MaxRow
+	fmt.Println("maxRow:", maxRow)
+
+	// 表头信息
+	if maxRow <= 3 {
+		errMsg = "模板异常1"
+		err = errors.New(errMsg)
+		return
+	}
+
+	// 表头校验
+	{
+		headerRow := sheet.Row(1)
+		cells := headerRow.Cells
+		fmt.Println("cells:", len(cells))
+		if len(cells) < 8 {
+			errMsg = "导入文件异常,请下载最新导入模板文件"
+			err = errors.New(errMsg)
+			return
+		}
+		// 循环打印每个单元格
+		for k, v := range cells {
+			fmt.Println("第", k, "个单元格", v.Value)
+		}
+		templateFail := false
+		if cells[0].Value != "时间" {
+			templateFail = true
+		}
+		if cells[1].Value != "标题" {
+			templateFail = true
+		}
+		if cells[2].Value != "正文" {
+			templateFail = true
+		}
+		if cells[3].Value != "来源" {
+			templateFail = true
+		}
+		if cells[4].Value != "一级分类" {
+			templateFail = true
+		}
+		if cells[5].Value != "二级分类" {
+			templateFail = true
+		}
+		if cells[6].Value != "三级分类" {
+			templateFail = true
+		}
+		if cells[7].Value != "标签" {
+			templateFail = true
+		}
+
+		if templateFail {
+			fmt.Println("头部信息校验失败")
+			errMsg = "导入文件异常,请下载最新导入模板文件"
+			err = errors.New(errMsg)
+			return
+		}
+	}
+
+	for i := 2; i < maxRow; i++ {
+		row := sheet.Row(i)
+		cells := row.Cells
+		lenCell := len(cells)
+		for k, v := range cells {
+			fmt.Println("数据第行", i, "第", k, "个单元格", v.Value)
+		}
+		// 过滤空白行
+		if lenCell <= 0 {
+			continue
+		}
+		fmt.Println("lenCell:", lenCell)
+		if lenCell < 8 {
+			if cells[0].Value == `` {
+				continue
+			}
+			errMsg = "导入文件异常,请下载最新导入模板文件"
+			err = errors.New(errMsg)
+			return
+		}
+		startDate := strings.TrimSpace(cells[0].Value) //开始时间
+		startDateO := startDate
+		title := strings.TrimSpace(cells[1].Value)         //标题
+		content := strings.TrimSpace(cells[2].Value)       //正文
+		sourceFrom := strings.TrimSpace(cells[3].Value)    //来源
+		classifyName1 := strings.TrimSpace(cells[4].Value) //一级分类
+		classifyName2 := strings.TrimSpace(cells[5].Value) //二级分类
+		classifyName3 := strings.TrimSpace(cells[6].Value) //三级分类
+		tag := strings.TrimSpace(cells[7].Value)           //标签
+
+		if title == "" || content == "" || sourceFrom == "" || classifyName1 == "" { //过滤空白行
+			continue
+		}
+
+		// 校验日期格式
+		if startDate != "" {
+			// 判断9:09:14日期格式是否正确
+			// 判断是否是数字
+			_, tmpErr := strconv.Atoi(startDate)
+			if tmpErr == nil {
+				startDate = utils.ExcelDateToDate(startDate).Format(utils.FormatDate)
+				fmt.Println(startDate)
+			} else {
+				startDate, tmpErr = getExcelDate(startDate)
+				if tmpErr != nil {
+					failDataList = append(failDataList, &knowledge.KnowledgeImportFail{
+						//Id:           0,
+						Title:          title,
+						Content:        content,
+						SourceFrom:     sourceFrom,
+						ClassifyFirst:  classifyName1,
+						ClassifySecond: classifyName2,
+						ClassifyThird:  classifyName3,
+						ResourceType:   resourceType,
+						StartDate:      startDateO,
+						Remark:         "日期格式异常",
+						SysUserId:      strconv.Itoa(sysUserId),
+						CreateTime:     time.Now(),
+					})
+					continue
+				}
+			}
+		}
+		resourceItem := knowledge.ResourceImportData{
+			Title:              title,
+			StartDate:          startDate,
+			Content:            content,
+			Tag:                tag,
+			SourceFrom:         sourceFrom,
+			ClassifyFirstName:  classifyName1,
+			ClassifySecondName: classifyName2,
+			ClassifyThirdName:  classifyName3,
+		}
+		indexDataList = append(indexDataList, resourceItem)
+	}
+	return
+}
+
 func getExcelDate(createDate string) (newCreateDate string, err error) {
 	if strings.Contains(createDate, "-") {
 		//如果是带有 - 的普通日期格式文本
@@ -777,19 +954,31 @@ func addExcelResource(req *knowledge.AddReq, sysUser *system.Admin) (err error,
 	var startTime time.Time
 	var endTime time.Time
 	if req.StartTime != "" {
-		startTime, err = time.ParseInLocation(utils.FormatDateTime, req.StartTime, time.Local)
-		if err != nil { // 如果时间格式不正确,则返回错误信息
-			errMsg = "开始时间格式不正确"
-			err = fmt.Errorf("开始时间格式不正确,Err:" + err.Error())
-			return
+		if req.ResourceType == knowledge.KnowledgeResourceTypeEvent || req.ResourceType == knowledge.KnowledgeResourceTypePolicy {
+			startTime, err = time.ParseInLocation(utils.FormatDateTime, req.StartTime, time.Local)
+			if err != nil { // 如果时间格式不正确,则返回错误信息
+				errMsg = "开始时间格式不正确"
+				err = fmt.Errorf("开始时间格式不正确,Err:" + err.Error())
+				return
+			}
+		} else {
+			startTime, err = time.ParseInLocation(utils.FormatDate, req.StartTime, time.Local)
+			if err != nil { // 如果时间格式不正确,则返回错误信息
+				errMsg = "开始时间格式不正确"
+				err = fmt.Errorf("开始时间格式不正确,Err:" + err.Error())
+				return
+			}
 		}
+
 	}
 	if req.EndTime != "" {
-		endTime, err = time.ParseInLocation(utils.FormatDateTime, req.EndTime, time.Local)
-		if err != nil { // 如果时间格式不正确,则返回错误信息
-			errMsg = "结束时间格式不正确"
-			err = fmt.Errorf("结束时间格式不正确,Err:" + err.Error())
-			return
+		if req.ResourceType == knowledge.KnowledgeResourceTypeEvent || req.ResourceType == knowledge.KnowledgeResourceTypePolicy {
+			endTime, err = time.ParseInLocation(utils.FormatDateTime, req.EndTime, time.Local)
+			if err != nil { // 如果时间格式不正确,则返回错误信息
+				errMsg = "结束时间格式不正确"
+				err = fmt.Errorf("结束时间格式不正确,Err:" + err.Error())
+				return
+			}
 		}
 	}
 	item := new(knowledge.KnowledgeResource)

+ 27 - 18
services/knowledge/tag.go

@@ -17,7 +17,7 @@ func MoveKnowledgeTag(req knowledge.TagMoveReq) (err error, errMsg string) {
 
 	//如果有传入 上一个兄弟节点标签id
 	var (
-		TagInfo *knowledge.KnowledgeTag
+		tagInfo *knowledge.KnowledgeTag
 		prevTag *knowledge.KnowledgeTag
 		nextTag *knowledge.KnowledgeTag
 
@@ -26,7 +26,7 @@ func MoveKnowledgeTag(req knowledge.TagMoveReq) (err error, errMsg string) {
 	)
 
 	// 移动对象为标签, 判断权限
-	TagInfo, err = knowledgeObj.GetTagById(TagId)
+	tagInfo, err = knowledgeObj.GetTagById(TagId)
 	if err != nil {
 		if utils.IsErrNoRow(err) {
 			errMsg = "标签不存在, 请刷新页面"
@@ -36,11 +36,16 @@ func MoveKnowledgeTag(req knowledge.TagMoveReq) (err error, errMsg string) {
 		errMsg = "移动失败"
 		err = fmt.Errorf("获取标签信息失败,Err:" + err.Error())
 		return
-	} else if TagInfo.TagId == 0 {
+	} else if tagInfo.TagId == 0 {
 		errMsg = "标签不存在, 请刷新页面"
 		err = fmt.Errorf("获取标签信息失败,Err:" + err.Error())
 		return
 	}
+	if tagInfo.ResourceType != req.ResourceType {
+		errMsg = "标签类型不匹配"
+		err = errors.New(errMsg)
+		return
+	}
 	if prevTagId > 0 {
 		prevTag, err = knowledgeObj.GetTagById(prevTagId)
 		if err != nil {
@@ -72,12 +77,12 @@ func MoveKnowledgeTag(req knowledge.TagMoveReq) (err error, errMsg string) {
 		nextSort = nextTag.Sort
 	}
 
-	err, errMsg = moveKnowledgeTag(TagInfo, prevTag, nextTag, prevSort, nextSort, TagInfo.ResourceType)
+	err, errMsg = moveKnowledgeTag(tagInfo, prevTag, nextTag, prevSort, nextSort, tagInfo.ResourceType)
 	return
 }
 
 // moveKnowledgeTag 移动标签
-func moveKnowledgeTag(TagInfo, prevTag, nextTag *knowledge.KnowledgeTag, prevSort, nextSort, resourceType int) (err error, errMsg string) {
+func moveKnowledgeTag(tagInfo, prevTag, nextTag *knowledge.KnowledgeTag, prevSort, nextSort, resourceType int) (err error, errMsg string) {
 	knowledgeObj := new(knowledge.KnowledgeTag)
 	updateCol := make([]string, 0)
 
@@ -86,15 +91,15 @@ func moveKnowledgeTag(TagInfo, prevTag, nextTag *knowledge.KnowledgeTag, prevSor
 		if nextSort > 0 {
 			//下一个兄弟节点
 			//如果上一个兄弟与下一个兄弟的排序权重是一致的,那么需要将下一个兄弟(以及下个兄弟的同样排序权重)的排序权重+2,自己变成上一个兄弟的排序权重+1
-			if prevSort == nextSort || prevSort == TagInfo.Sort {
+			if prevSort == nextSort || prevSort == tagInfo.Sort {
 				//变更兄弟节点的排序
 				updateSortStr := `sort + 2`
 
 				//变更标签
 				if prevTag != nil {
-					_ = knowledgeObj.UpdateTagSortByParentId(prevTag.TagId, prevTag.Sort, updateSortStr, resourceType)
+					_ = knowledgeObj.UpdateTagSort(prevTag.TagId, prevTag.Sort, updateSortStr, resourceType)
 				} else {
-					_ = knowledgeObj.UpdateTagSortByParentId(0, prevSort, updateSortStr, resourceType)
+					_ = knowledgeObj.UpdateTagSort(0, prevSort, updateSortStr, resourceType)
 				}
 
 			} else {
@@ -105,17 +110,17 @@ func moveKnowledgeTag(TagInfo, prevTag, nextTag *knowledge.KnowledgeTag, prevSor
 
 					//变更标签
 					if prevTag != nil {
-						_ = knowledgeObj.UpdateTagSortByParentId(prevTag.TagId, prevSort, updateSortStr, resourceType)
+						_ = knowledgeObj.UpdateTagSort(prevTag.TagId, prevSort, updateSortStr, resourceType)
 					} else {
-						_ = knowledgeObj.UpdateTagSortByParentId(0, prevSort, updateSortStr, resourceType)
+						_ = knowledgeObj.UpdateTagSort(0, prevSort, updateSortStr, resourceType)
 					}
 
 				}
 			}
 		}
 
-		TagInfo.Sort = prevSort + 1
-		TagInfo.ModifyTime = time.Now()
+		tagInfo.Sort = prevSort + 1
+		tagInfo.ModifyTime = time.Now()
 		updateCol = append(updateCol, "Sort", "ModifyTime")
 	} else {
 		// 拖动到父级标签的第一位
@@ -129,17 +134,17 @@ func moveKnowledgeTag(TagInfo, prevTag, nextTag *knowledge.KnowledgeTag, prevSor
 		//如果该标签下存在其他标签,且第一个其他标签的排序等于0,那么需要调整排序
 		if firstPermission != nil && firstPermission.TagId != 0 && firstPermission.Sort == 0 {
 			updateSortStr := ` sort + 1 `
-			_ = knowledgeObj.UpdateTagSortByParentId(firstPermission.TagId-1, 0, updateSortStr, resourceType)
+			_ = knowledgeObj.UpdateTagSort(firstPermission.TagId-1, 0, updateSortStr, resourceType)
 		}
 
-		TagInfo.Sort = 0 //那就是排在第一位
-		TagInfo.ModifyTime = time.Now()
+		tagInfo.Sort = 0 //那就是排在第一位
+		tagInfo.ModifyTime = time.Now()
 		updateCol = append(updateCol, "Sort", "ModifyTime")
 	}
 
 	//更新
 	if len(updateCol) > 0 {
-		err = TagInfo.Update(updateCol)
+		err = tagInfo.Update(updateCol)
 		if err != nil {
 			errMsg = "移动失败"
 			err = fmt.Errorf("修改失败,Err:" + err.Error())
@@ -202,7 +207,7 @@ func AddKnowledgeTag(TagName string, resourceType int) (err error, errMsg string
 	return
 }
 
-func EditKnowledgeTag(TagId, parentId int, TagName string) (err error, errMsg string, isSendEmail bool) {
+func EditKnowledgeTag(TagId, resourceType int, TagName string) (err error, errMsg string, isSendEmail bool) {
 	isSendEmail = true
 	errMsg = `修改失败`
 	knowledgeObj := new(knowledge.KnowledgeTag)
@@ -215,7 +220,11 @@ func EditKnowledgeTag(TagId, parentId int, TagName string) (err error, errMsg st
 		}
 		return
 	}
-
+	if resourceType != item.ResourceType {
+		errMsg = "标签类型不匹配"
+		err = errors.New("标签类型不匹配")
+		return
+	}
 	//originName := item.TagName
 
 	// 重名校验