Przeglądaj źródła

增加单元测试

renjiaojiao 3 lat temu
rodzic
commit
7b5c7a9e8a

+ 2 - 2
rpc/knowledge/internal/logic/knowledgeaddlogic.go

@@ -32,8 +32,8 @@ type Question struct {
 func (l *KnowledgeAddLogic) KnowledgeAdd(in *knowledgeclient.AddRequest) (*knowledgeclient.AddResponse, error) {
 	result := &knowledgeclient.AddResponse{}
 	k := service.KnowledgeService{}
-	ok, msg, err := k.KnowledgeAdd(in, C.Segment)
-	if !ok && err != nil {
+	ok, msg := k.KnowledgeAdd(in, C.Segment)
+	if !ok {
 		result.ErrorCode = -1
 		result.ErrorMsg = msg
 	} else {

+ 3 - 3
rpc/knowledge/internal/logic/knowledgedellogic.go

@@ -27,13 +27,13 @@ func (l *KnowledgeDelLogic) KnowledgeDel(in *knowledgeclient.KnowledgeDelReq) (*
 	// todo: add your logic here and delete this line
 	result := &knowledgeclient.AddResponse{}
 	k := service.KnowledgeService{}
-	ok, msg := k.KnowledgeDel(in.AnswerId)
+	ok := k.KnowledgeDel(in.AnswerId)
 	if ok {
 		result.ErrorCode = 0
-		result.ErrorMsg = msg
+		result.ErrorMsg = "删除成功"
 	} else {
 		result.ErrorCode = -1
-		result.ErrorMsg = msg
+		result.ErrorMsg = "删除失败"
 	}
 	return result, nil
 }

+ 4 - 65
rpc/knowledge/internal/logic/knowledgeeditlogic.go

@@ -28,74 +28,13 @@ func (l *KnowledgeEditLogic) KnowledgeEdit(in *knowledgeclient.KnowledgeEditReq)
 
 	result := &knowledgeclient.AddResponse{}
 	k := service.KnowledgeService{}
-	ok, msg, err := k.KnowledgeEdit(in, C.Segment)
-	if !ok && err != nil {
+	ok := k.KnowledgeEdit(in, C.Segment)
+	if !ok {
 		result.ErrorCode = -1
-		result.ErrorMsg = msg
+		result.ErrorMsg = "修改失败"
 	} else {
 		result.ErrorCode = 0
-		result.ErrorMsg = msg
+		result.ErrorMsg = "修改成功"
 	}
-	/*//获取问题分词
-	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
 }

+ 20 - 42
rpc/knowledge/internal/service/knowledgeService.go

@@ -10,7 +10,6 @@ import (
 	"bp.jydev.jianyu360.cn/SocialPlatform/knowledgeBase/rpc/knowledge/util"
 	"context"
 	"database/sql"
-	"errors"
 	"github.com/zeromicro/go-zero/core/logx"
 	"log"
 	"strconv"
@@ -24,7 +23,7 @@ var (
 	Type  = "smart"
 )
 
-func (k *KnowledgeService) KnowledgeAdd(param *knowledgeclient.AddRequest, segment string) (bool, string, error) {
+func (k *KnowledgeService) KnowledgeAdd(param *knowledgeclient.AddRequest, segment string) (bool, string) {
 	//先查找知识库Id
 	query := map[string]interface{}{"status": 1, "appid": param.AppId, "ent_id": param.EntId}
 	datalist := Mysql.Find(util.KNOWLEDGE, query, "id", "", -1, -1)
@@ -48,9 +47,9 @@ func (k *KnowledgeService) KnowledgeAdd(param *knowledgeclient.AddRequest, segme
 			AppId:     param.AppId,
 		}
 		resp, err := UserCenterLib.GetEntUserInfo(context.Background(), req)
-		if err != nil {
+		if resp.ErrorCode != 0 {
 			logx.Info("查询用户中台创建人信息失败", param.EntId, param.EntUserId, "err:", err)
-			return false, "查询用户中台创建人信息失败", err
+			return false, "查询用户中台创建人信息失败"
 		}
 		createPerson := resp.Data.Name
 		var answerId int64
@@ -89,20 +88,15 @@ func (k *KnowledgeService) KnowledgeAdd(param *knowledgeclient.AddRequest, segme
 				"entId":        param.EntId,
 			}
 			b := elastic.Save(Index, Type, knowledge)
-			if b {
-				return true, "插入es成功", nil
-			} else {
-				return false, "插入es出错", errors.New("插入es出错")
-			}
-		} else {
-			return false, "插入mysql出错", errors.New("插入mysql出错")
+			return b, ""
 		}
-	} else {
-		return false, "租户不存在", errors.New("租户不存在")
+		return fool, "插入mysql出错"
 	}
+	return false, "租户不存在"
 }
 
-func (k *KnowledgeService) KnowledgeEdit(param *knowledgeclient.KnowledgeEditReq, segment string) (ok bool, msg string, err error) {
+func (k *KnowledgeService) KnowledgeEdit(param *knowledgeclient.KnowledgeEditReq, segment string) (ok bool) {
+	ok = false
 	//获取问题分词
 	keywords := ""
 	keywordsArr := util.HanlpGetNormalWords(param.Question, segment)
@@ -121,11 +115,10 @@ func (k *KnowledgeService) KnowledgeEdit(param *knowledgeclient.KnowledgeEditReq
 		EntUserId: param.EntUserId,
 		AppId:     param.AppId,
 	}
-	resp := &usercenter.EntUserResp{}
-	resp, err = UserCenterLib.GetEntUserInfo(context.Background(), req)
-	if err != nil {
+	resp, err := UserCenterLib.GetEntUserInfo(context.Background(), req)
+	if resp.ErrorCode != 0 {
 		logx.Info("查询用户中台创建人信息失败", param.EntId, param.EntUserId, "err:", err)
-		return false, "查询用户中台创建人信息失败", err
+		return ok
 	}
 	createPerson := resp.Data.Name
 	fool := Mysql.ExecTx("编辑问题、答案", func(tx *sql.Tx) bool {
@@ -159,21 +152,10 @@ func (k *KnowledgeService) KnowledgeEdit(param *knowledgeclient.KnowledgeEditReq
 			"entId":        param.EntId,
 		}
 		ok1 := elastic.Del(Index, Type, query)
-		ok := elastic.Save(Index, Type, newKnowledge)
-		if ok && ok1 {
-			ok = true
-			msg = "修改问题成功"
-		} else {
-			ok = false
-			err = errors.New("删除es问题失败")
-			msg = "删除es问题失败"
-		}
-	} else {
-		ok = false
-		err = errors.New("修改mysql问题失败")
-		msg = "修改mysql问题失败"
+		ok2 := elastic.Save(Index, Type, newKnowledge)
+		return ok1 && ok2
 	}
-	return
+	return ok
 }
 
 func (k *KnowledgeService) KnowledgeList(param *knowledgeclient.ListRequest) *knowledgeclient.ListData {
@@ -223,7 +205,8 @@ func (k *KnowledgeService) KnowledgeInfo(answerId int64) (data *knowledgeclient.
 	return nil, false
 }
 
-func (k *KnowledgeService) KnowledgeDel(answerId int64) (ok bool, msg string) {
+func (k *KnowledgeService) KnowledgeDel(answerId int64) (ok bool) {
+	ok = false
 	//修改答案
 	answerUpdate := map[string]interface{}{
 		"update_time": time.Now().Local().Format(util.Date_Full_Layout),
@@ -234,14 +217,9 @@ func (k *KnowledgeService) KnowledgeDel(answerId int64) (ok bool, msg string) {
 	if fool {
 		//删除es数据
 		query := `{"query":{"bool":{"must":[{"term":{"answerId":"` + strconv.Itoa(int(answerId)) + `"}}],"must_not":[],"should":[]}},"from":0,"size":10,"sort":[],"facets":{}}`
-		ok := elastic.Del(Index, Type, query)
-		if ok {
-			return true, "删除成功"
-		} else {
-			return false, "删除es问题失败"
-		}
+		ok = elastic.Del(Index, Type, query)
 	}
-	return false, "删除mysql问题失败"
+	return ok
 }
 
 func (k *KnowledgeService) FindAnswer(param *knowledgeclient.FindAnswerReq, addr, index, segment string) *knowledgeclient.Question {
@@ -269,7 +247,7 @@ func (k *KnowledgeService) RecommendAnswer(param *knowledgeclient.FindAnswerReq,
 	)
 	//根据问题进行分词
 	keywordsArr := util.HanlpGetNormalWords(param.Question, segment)
-	log.Println("keywordsArr", keywordsArr)
+	logx.Info("keywordsArr", keywordsArr)
 	if len(keywordsArr) != 0 {
 		for _, val := range keywordsArr {
 			keyWords += val + " "
@@ -278,7 +256,7 @@ func (k *KnowledgeService) RecommendAnswer(param *knowledgeclient.FindAnswerReq,
 	if keyWords == "" {
 		keyWords = param.Question
 	}
-	log.Println("问题分词关键字2:", keyWords)
+	log.Println("entId:", SE.Decode4Hex(param.RobotEntId))
 	var query = util.DSL4SearchByKwsOrid(keyWords, SE.Decode4Hex(param.RobotEntId))
 	res := elastic.GetAllByNgram(Index, Type, query, "", "", searchField, 0, 3, 0, false)
 	log.Println("推荐3个答案:", res)

+ 169 - 27
rpc/knowledge/internal/service/knowledgeService_test.go

@@ -56,8 +56,21 @@ func TestKnowledgeService_FindAnswer(t *testing.T) {
 			args: args{
 				param: &knowledgeclient.FindAnswerReq{
 					Type:       1,
-					Question:   "超级订阅为什么购买不了",
-					RobotEntId: "14929",
+					Question:   "订阅购买",
+					RobotEntId: "455b495c5c",
+				},
+				addr:    "http://192.168.3.204:1500",
+				index:   "smart_new",
+				segment: "http://192.168.3.204:9070/api/segment",
+			},
+		},
+		{
+			name: "根据问题查询答案",
+			args: args{
+				param: &knowledgeclient.FindAnswerReq{
+					Type:       1,
+					Question:   "大会员怎么收费",
+					RobotEntId: "455b495c5c",
 				},
 				addr:    "http://192.168.3.204:1500",
 				index:   "smart_new",
@@ -70,7 +83,7 @@ func TestKnowledgeService_FindAnswer(t *testing.T) {
 				param: &knowledgeclient.FindAnswerReq{
 					Type:       2,
 					Question:   "超级订阅为什么购买不了",
-					RobotEntId: "14929",
+					RobotEntId: "455b495c5c",
 				},
 				addr:    "http://192.168.3.204:1500",
 				index:   "smart_new",
@@ -83,7 +96,7 @@ func TestKnowledgeService_FindAnswer(t *testing.T) {
 				param: &knowledgeclient.FindAnswerReq{
 					Type:       1,
 					Question:   "我",
-					RobotEntId: "14929",
+					RobotEntId: "455b495c5c",
 				},
 				addr:    "http://192.168.3.204:1500",
 				index:   "smart_new",
@@ -141,15 +154,70 @@ func TestKnowledgeService_KnowledgeAdd(t *testing.T) {
 			want:  true,
 			want1: "插入es成功",
 		},
+		{
+			name: "知识添加",
+			args: args{
+				param: &knowledgeclient.AddRequest{
+					Question:  "我",
+					Answer:    "答案",
+					AppId:     "10000",
+					EntUserId: 4315,
+					EntId:     14929,
+				},
+				segment: "http://192.168.3.204:9070/api/segment",
+			},
+			want:  true,
+			want1: "插入es成功",
+		},
+		{
+			name: "知识添加",
+			args: args{
+				param: &knowledgeclient.AddRequest{
+					Question:  "我",
+					Answer:    "答案",
+					AppId:     "10000",
+					EntUserId: 4315,
+					EntId:     14920,
+				},
+				segment: "http://192.168.3.204:9070/api/segment",
+			},
+			want:  false,
+			want1: "插入es成功",
+		},
+		{
+			name: "知识添加",
+			args: args{
+				param: &knowledgeclient.AddRequest{
+					Question: "任姣姣测试的测添加问题",
+					Answer:   "答案",
+					AppId:    "10000",
+					EntId:    14929,
+				},
+				segment: "http://192.168.3.204:9070/api/segment",
+			},
+			want:  true,
+			want1: "插入es成功",
+		},
+		{
+			name: "知识添加",
+			args: args{
+				param: &knowledgeclient.AddRequest{
+					Question:  "拓普公司发展二十年,步入全新的发展阶段,随着数字化的发展,客户对于数字化转型的认知也不断提升,甲方对乙方的要求也发生了变化,只有真正解决问题的信息化,只有真正实现降本、提质、增效,才能真正实现数字化转型带来的治理能力的提升。拓普就是真正解决问题的公司!我们坚持“实体创新,数字倍增”的产品战略,提供走进用户、研究业务、解决问题、达成目标的数字化转型方案和产品,这种新型现代智能服务业态,才是符合当今时代要求的。新时代是新的机遇,也带来新的挑战。公司在二十多年的发展的同时,也积累了许多问题,我们要敢于直面问题并解决问题,这样才能抓住机遇、重装上阵、御风而行、高速发展。过去两年的公司改革并没有触及问题的核心,所以并没解决实质的问题。2022年公司开始痛定思痛直面问题,刀刃向内深度改革,解决影响公司发展的基层因素。2022年的拓普,就是中国发展历史的1992年,要拿出92年中国改革的决心和勇气,我们才有可能赢!这个过程中有质疑、不解和各种评判是正常的,只要我们把公司和集体利益放在第一位,把个人利益同步到公司利益上,做公司和集体利益的维护者,我们就能同心同德共赴拓普美好未来。",
+					Answer:    "答案",
+					AppId:     "10000",
+					EntUserId: 4315,
+					EntId:     14929,
+				},
+				segment: "http://192.168.3.204:9070/api/segment",
+			},
+			want:  true,
+			want1: "插入es成功",
+		},
 	}
 	for _, tt := range tests {
 		t.Run(tt.name, func(t *testing.T) {
 			k := &KnowledgeService{}
-			got, got1, err := k.KnowledgeAdd(tt.args.param, tt.args.segment)
-			if (err != nil) != tt.wantErr {
-				t.Errorf("KnowledgeAdd() error = %v, wantErr %v", err, tt.wantErr)
-				return
-			}
+			got, got1 := k.KnowledgeAdd(tt.args.param, tt.args.segment)
 			if got != tt.want {
 				t.Errorf("KnowledgeAdd() got = %v, want %v", got, tt.want)
 			}
@@ -176,17 +244,21 @@ func TestKnowledgeService_KnowledgeDel(t *testing.T) {
 				answerId: 30192,
 			},
 		},
+		{
+			name: "删除知识",
+			args: args{
+				answerId: 0,
+			},
+			wantOk: false,
+		},
 	}
 	for _, tt := range tests {
 		t.Run(tt.name, func(t *testing.T) {
 			k := &KnowledgeService{}
-			gotOk, gotMsg := k.KnowledgeDel(tt.args.answerId)
+			gotOk := k.KnowledgeDel(tt.args.answerId)
 			if gotOk != tt.wantOk {
 				t.Errorf("KnowledgeDel() gotOk = %v, want %v", gotOk, tt.wantOk)
 			}
-			if gotMsg != tt.wantMsg {
-				t.Errorf("KnowledgeDel() gotMsg = %v, want %v", gotMsg, tt.wantMsg)
-			}
 		})
 	}
 }
@@ -203,14 +275,73 @@ func TestKnowledgeService_KnowledgeEdit(t *testing.T) {
 		wantMsg string
 		wantErr bool
 	}{
+		{
+			name: "知识编辑",
+			args: args{
+				param: &knowledgeclient.KnowledgeEditReq{
+					Question:    "任姣姣的编辑知识问题",
+					Answer:      "答案",
+					AnswerId:    30210,
+					KnowledgeId: 30005,
+					EntId:       14929,
+					EntUserId:   4315,
+					AppId:       "10000",
+				},
+				segment: "http://192.168.3.204:9070/api/segment",
+			},
+		},
 		{
 			name: "知识编辑",
 			args: args{
 				param: &knowledgeclient.KnowledgeEditReq{
 					Question:    "",
-					Answer:      "",
-					AnswerId:    0,
-					KnowledgeId: 0,
+					Answer:      "答案",
+					AnswerId:    30211,
+					KnowledgeId: 30005,
+					EntId:       14929,
+					EntUserId:   4315,
+					AppId:       "10000",
+				},
+				segment: "http://192.168.3.204:9070/api/segment",
+			},
+		},
+		{
+			name: "知识编辑",
+			args: args{
+				param: &knowledgeclient.KnowledgeEditReq{
+					Question:    "任姣姣的编辑知识问题",
+					Answer:      "答案",
+					AnswerId:    123,
+					KnowledgeId: 30005,
+					EntId:       14929,
+					EntUserId:   4315,
+					AppId:       "10000",
+				},
+				segment: "http://192.168.3.204:9070/api/segment",
+			},
+		},
+		{
+			name: "知识编辑",
+			args: args{
+				param: &knowledgeclient.KnowledgeEditReq{
+					Question:    "任姣姣的编辑知识问题",
+					Answer:      "答案",
+					AnswerId:    30210,
+					KnowledgeId: 30005,
+					EntId:       14929,
+					AppId:       "10000",
+				},
+				segment: "http://192.168.3.204:9070/api/segment",
+			},
+		},
+		{
+			name: "知识编辑",
+			args: args{
+				param: &knowledgeclient.KnowledgeEditReq{
+					Question:    "拓普公司发展二十年,步入全新的发展阶段,随着数字化的发展,客户对于数字化转型的认知也不断提升,甲方对乙方的要求也发生了变化,只有真正解决问题的信息化,只有真正实现降本、提质、增效,才能真正实现数字化转型带来的治理能力的提升。拓普就是真正解决问题的公司!我们坚持“实体创新,数字倍增”的产品战略,提供走进用户、研究业务、解决问题、达成目标的数字化转型方案和产品,这种新型现代智能服务业态,才是符合当今时代要求的。新时代是新的机遇,也带来新的挑战。公司在二十多年的发展的同时,也积累了许多问题,我们要敢于直面问题并解决问题,这样才能抓住机遇、重装上阵、御风而行、高速发展。过去两年的公司改革并没有触及问题的核心,所以并没解决实质的问题。2022年公司开始痛定思痛直面问题,刀刃向内深度改革,解决影响公司发展的基层因素。2022年的拓普,就是中国发展历史的1992年,要拿出92年中国改革的决心和勇气,我们才有可能赢!这个过程中有质疑、不解和各种评判是正常的,只要我们把公司和集体利益放在第一位,把个人利益同步到公司利益上,做公司和集体利益的维护者,我们就能同心同德共赴拓普美好未来。",
+					Answer:      "答案",
+					AnswerId:    30210,
+					KnowledgeId: 30005,
 					EntId:       14929,
 					EntUserId:   4315,
 					AppId:       "10000",
@@ -222,17 +353,10 @@ func TestKnowledgeService_KnowledgeEdit(t *testing.T) {
 	for _, tt := range tests {
 		t.Run(tt.name, func(t *testing.T) {
 			k := &KnowledgeService{}
-			gotOk, gotMsg, err := k.KnowledgeEdit(tt.args.param, tt.args.segment)
-			if (err != nil) != tt.wantErr {
-				t.Errorf("KnowledgeEdit() error = %v, wantErr %v", err, tt.wantErr)
-				return
-			}
+			gotOk := k.KnowledgeEdit(tt.args.param, tt.args.segment)
 			if gotOk != tt.wantOk {
 				t.Errorf("KnowledgeEdit() gotOk = %v, want %v", gotOk, tt.wantOk)
 			}
-			if gotMsg != tt.wantMsg {
-				t.Errorf("KnowledgeEdit() gotMsg = %v, want %v", gotMsg, tt.wantMsg)
-			}
 		})
 	}
 }
@@ -254,6 +378,13 @@ func TestKnowledgeService_KnowledgeInfo(t *testing.T) {
 			},
 			wantOk: true,
 		},
+		{
+			name: "知识详情",
+			args: args{
+				answerId: 1,
+			},
+			wantOk: true,
+		},
 	}
 	for _, tt := range tests {
 		t.Run(tt.name, func(t *testing.T) {
@@ -314,8 +445,8 @@ func TestKnowledgeService_RecommendAnswer(t *testing.T) {
 			args: args{
 				param: &knowledgeclient.FindAnswerReq{
 					Type:       1,
-					Question:   "任姣姣测试添加问题",
-					RobotEntId: "14929",
+					Question:   "订阅购买",
+					RobotEntId: "455b495c5c",
 				},
 				segment: "http://192.168.3.204:9070/api/segment",
 			},
@@ -326,7 +457,18 @@ func TestKnowledgeService_RecommendAnswer(t *testing.T) {
 				param: &knowledgeclient.FindAnswerReq{
 					Type:       1,
 					Question:   "我的",
-					RobotEntId: "14929",
+					RobotEntId: "455b495c5c",
+				},
+				segment: "http://192.168.3.204:9070/api/segment",
+			},
+		},
+		{
+			name: "根据问题查询答案",
+			args: args{
+				param: &knowledgeclient.FindAnswerReq{
+					Type:       1,
+					Question:   "大会员怎么收费",
+					RobotEntId: "455b495c5c",
 				},
 				segment: "http://192.168.3.204:9070/api/segment",
 			},