package logic import ( . "bp.jydev.jianyu360.cn/SocialPlatform/knowledgeBase/rpc/knowledge/init" "bp.jydev.jianyu360.cn/SocialPlatform/knowledgeBase/rpc/knowledge/internal/service" "bp.jydev.jianyu360.cn/SocialPlatform/knowledgeBase/rpc/knowledge/internal/svc" "bp.jydev.jianyu360.cn/SocialPlatform/knowledgeBase/rpc/knowledge/knowledgeclient" "context" "github.com/zeromicro/go-zero/core/logx" ) type KnowledgeEditLogic struct { ctx context.Context svcCtx *svc.ServiceContext logx.Logger } func NewKnowledgeEditLogic(ctx context.Context, svcCtx *svc.ServiceContext) *KnowledgeEditLogic { return &KnowledgeEditLogic{ ctx: ctx, svcCtx: svcCtx, Logger: logx.WithContext(ctx), } } // KnowledgeEdit 知识编辑 func (l *KnowledgeEditLogic) KnowledgeEdit(in *knowledgeclient.KnowledgeEditReq) (*knowledgeclient.AddResponse, error) { result := &knowledgeclient.AddResponse{} k := service.KnowledgeService{} ok, msg, err := k.KnowledgeEdit(in, C.Segment) if !ok && err != nil { result.ErrorCode = -1 result.ErrorMsg = msg } else { result.ErrorCode = 0 result.ErrorMsg = msg } /*//获取问题分词 keywords := util.HttpDo(in.Question) if keywords == "" { keywords = in.Question } //通过entUserId获取创建人名称 req := &usercenter.EntUserReq{ EntId: in.EntId, EntUserId: in.EntUserId, AppId: in.AppId, } resp, err := entity.UserCenterLib.GetEntUserInfo(context.Background(), req) if err != nil { logx.Infof("查询用户中台创建人信息失败", in.EntId, in.EntUserId, "err:", err) return nil, err } createPerson := resp.Data.Name fool := Mysql.ExecTx("编辑问题、答案", func(tx *sql.Tx) bool { //修改答案 answerUpdate := map[string]interface{}{ "update_time": time.Now().Local().Format(util.Date_Full_Layout), "content": in.Answer, } ok1 := Mysql.UpdateByTx(tx, util.ANSWER, map[string]interface{}{"id": in.AnswerId}, answerUpdate) //修改问题 questionUpdate := map[string]interface{}{ "content": in.Question, "keywords": keywords, } ok2 := Mysql.UpdateByTx(tx, util.QUESTION, map[string]interface{}{"answer_id": in.AnswerId}, questionUpdate) return ok1 && ok2 }) if fool { query := `{"query":{"bool":{"must":[{"term":{"answerId":"` + strconv.Itoa(int(in.AnswerId)) + `"}}],"must_not":[],"should":[]}},"from":0,"size":10,"sort":[],"facets":{}}` //修改es数据 newKnowledge := map[string]interface{}{ "knowledgeId": in.KnowledgeId, "status": 1, "createTime": time.Now().Unix(), "createPerson": createPerson, "answer": in.Answer, "question": in.Question, "keywords": keywords, "answerId": in.AnswerId, "entId": in.EntId, } ok1 := elastic.Del(C.Es.Index, C.Es.Type, query) ok := elastic.Save(C.Es.Index, C.Es.Type, newKnowledge) if ok && ok1 { result.ErrorCode = 0 result.ErrorMsg = "修改问题成功" } else { result.ErrorCode = -1 result.ErrorMsg = "删除es问题失败" } } else { result.ErrorCode = -1 result.ErrorMsg = "修改mysql问题失败" }*/ return result, nil }