Browse Source

add:观点库设置公共

zqbao 4 months ago
parent
commit
e940e9fe8b

+ 39 - 0
controllers/knowledge/resource.go

@@ -1186,3 +1186,42 @@ func (this *ResourceController) TemplateDownload() {
 	br.Success = true
 	br.Msg = "下载成功"
 }
+
+// Public
+// @Title 设置知识库事件公开接口
+// @Description 设置知识库事件公开接口
+// @Param	request	body knowledge.AddReq true "type json string"
+// @Success 200 {object} knowledge.AddResp
+// @router /resource/public [post]
+func (this *ResourceController) Public() {
+	br := new(models.BaseResponse).Init()
+	defer func() {
+		this.Data["json"] = br
+		this.ServeJSON()
+	}()
+	sysUser := this.SysUser
+	if sysUser == nil {
+		br.Msg = "请重新登录"
+		return
+	}
+	var req knowledge.PublicReq
+	if e := json.Unmarshal(this.Ctx.Input.RequestBody, &req); e != nil {
+		br.Msg = "参数解析失败"
+		br.ErrMsg = "参数解析失败,Err:" + e.Error()
+		return
+	}
+
+	msg, err := knowledgeServ.SetKnowledgeResourcePublic(req.KnowledgeResourceId)
+	if err != nil {
+		if msg == "" {
+			msg = "设置失败"
+		}
+		br.Msg = msg
+		br.ErrMsg = "设置失败,Err:" + err.Error()
+		return
+	}
+
+	br.Msg = "设置成功"
+	br.Ret = 200
+	br.Success = true
+}

+ 18 - 1
models/knowledge/knowledge_resource.go

@@ -22,6 +22,19 @@ const (
 	KnowledgeResourceTypeOpinion = 4
 )
 
+const (
+	// 未发布
+	KnowledgeResourceStateUnpublished = iota
+	// 已发布
+	KnowledgeResourceStatePublished
+	// 待审核
+	KnowledgeResourceStatePending
+	// 已驳回
+	KnowledgeResourceStateRejected
+	// 已通过
+	KnowledgeResourceStatePassed
+)
+
 type KnowledgeResource struct {
 	KnowledgeResourceId int        `gorm:"column:knowledge_resource_id;;primaryKey;autoIncrement"`
 	ResourceType        int        `gorm:"column:resource_type;"`
@@ -29,7 +42,7 @@ type KnowledgeResource struct {
 	Title               string     `gorm:"column:title;"`
 	CreateTime          time.Time  `gorm:"column:create_time" description:"创建时间"`
 	ModifyTime          time.Time  `gorm:"column:modify_time;autoUpdateTime" description:"修改时间"`
-	State               int        `gorm:"column:state" description:"0:未发布;1:已发布;"`
+	State               int        `gorm:"column:state" description:"状态:0:未发布;1:已发布;2:待审核;3:已驳回;4:已通过"`
 	Content             string     `gorm:"column:content"`
 	ResourceCode        string     `gorm:"column:resource_code"`
 	AdminId             int        `gorm:"column:admin_id" description:"创建者账号"`
@@ -143,6 +156,10 @@ type AddResp struct {
 	ResourceCode        string `description:"事件code"`
 }
 
+type PublicReq struct {
+	KnowledgeResourceId int `description:"事件id"`
+}
+
 func (m *KnowledgeResource) Add(item *KnowledgeResource) (err error) {
 	err = global.DmSQL["rddp"].Create(item).Error
 	return

+ 9 - 0
routers/commentsRouter.go

@@ -5083,6 +5083,15 @@ func init() {
             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: "Public",
+            Router: `/resource/public`,
+            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: "SaveReportContent",

+ 51 - 3
services/knowledge/resource.go

@@ -6,13 +6,15 @@ import (
 	"eta_gn/eta_api/models/system"
 	"eta_gn/eta_api/services"
 	"eta_gn/eta_api/services/alarm_msg"
+	"eta_gn/eta_api/services/knowledge_approve"
 	"eta_gn/eta_api/utils"
 	"fmt"
-	"github.com/tealeg/xlsx"
 	"html"
 	"strconv"
 	"strings"
 	"time"
+
+	"github.com/tealeg/xlsx"
 )
 
 func AddResource(req *knowledge.AddReq, sysUser *system.Admin) (item *knowledge.KnowledgeResource, err error, errMsg string) {
@@ -116,7 +118,7 @@ func AddResource(req *knowledge.AddReq, sysUser *system.Admin) (item *knowledge.
 	item.SourceFrom = req.SourceFrom
 	item.ResourceType = req.ResourceType
 	item.Title = req.Title
-	item.State = 1
+	item.State = knowledge.KnowledgeResourceStateUnpublished
 	item.Content = html.EscapeString(req.Content)
 	timestamp := strconv.FormatInt(time.Now().UnixNano(), 10)
 	item.ResourceCode = utils.MD5(utils.CHART_PREFIX + "_" + timestamp)
@@ -1023,7 +1025,7 @@ func addExcelResource(req *knowledge.AddReq, sysUser *system.Admin) (err error,
 	item.SourceFrom = req.SourceFrom
 	item.ResourceType = req.ResourceType
 	item.Title = req.Title
-	item.State = 1
+	item.State = knowledge.KnowledgeResourceStateUnpublished
 	item.Content = html.EscapeString(req.Content)
 	timestamp := strconv.FormatInt(time.Now().UnixNano(), 10)
 	item.ResourceCode = utils.MD5(utils.CHART_PREFIX + "_" + timestamp)
@@ -1053,3 +1055,49 @@ func addExcelResource(req *knowledge.AddReq, sysUser *system.Admin) (err error,
 	//todo 是否需要保存到es中
 	return
 }
+
+func SetKnowledgeResourcePublic(knowledgeId int) (errMsg string, err error) {
+	obj := new(knowledge.KnowledgeResource)
+	obj, err = obj.GetById(knowledgeId)
+	if err != nil {
+		if utils.IsErrNoRow(err) {
+			errMsg = "资源不存在"
+			return
+		}
+		errMsg = "获取资源失败"
+		err = fmt.Errorf("获取资源失败,Err:%v", err.Error())
+		return
+	}
+	if !(obj.State == knowledge.KnowledgeResourceStateUnpublished || obj.State == knowledge.KnowledgeResourceStateRejected) {
+		errMsg = "不能重复设置公共"
+		err = fmt.Errorf("不能重复设置公共")
+		return
+	}
+	if obj.ResourceType != knowledge.KnowledgeResourceTypeOpinion {
+		errMsg = "非法操作"
+		err = fmt.Errorf("非法操作")
+		return
+	}
+
+	ok, err := knowledge_approve.CheckKnowledgeOpenApprove(obj.ClassifyId)
+	if err != nil {
+		errMsg = "分类校验失败"
+		err = fmt.Errorf("分类校验失败,Err:%v", err)
+		return
+	}
+	if !ok {
+		errMsg = "分类未开启审批流"
+		err = fmt.Errorf("分类未开启审批流")
+		return
+	}
+
+	obj.State = knowledge.KnowledgeResourceStatePending
+	obj.ModifyTime = time.Now()
+	err = obj.Update([]string{"state", "modify_time"})
+	if err != nil {
+		errMsg = "设置失败"
+		err = fmt.Errorf("设置失败,Err:" + err.Error())
+		return
+	}
+	return
+}