knowledgelistlogic.go 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. package logic
  2. import (
  3. quitl "app.yhyue.com/moapp/jybase/common"
  4. "context"
  5. "github.com/zeromicro/go-zero/core/logx"
  6. . "knowledgeBase/rpc/knowledge/init"
  7. "knowledgeBase/rpc/knowledge/internal/svc"
  8. "knowledgeBase/rpc/knowledge/knowledgeclient"
  9. "knowledgeBase/rpc/knowledge/util"
  10. )
  11. type KnowledgeListLogic struct {
  12. ctx context.Context
  13. svcCtx *svc.ServiceContext
  14. logx.Logger
  15. }
  16. func NewKnowledgeListLogic(ctx context.Context, svcCtx *svc.ServiceContext) *KnowledgeListLogic {
  17. return &KnowledgeListLogic{
  18. ctx: ctx,
  19. svcCtx: svcCtx,
  20. Logger: logx.WithContext(ctx),
  21. }
  22. }
  23. // KnowledgeList 知识列表
  24. func (l *KnowledgeListLogic) KnowledgeList(in *knowledgeclient.ListRequest) (*knowledgeclient.ListResponse, error) {
  25. // todo: add your logic here and delete this line
  26. result := &knowledgeclient.ListResponse{}
  27. var knowledgeList []*knowledgeclient.KnowledgeEntity
  28. //列表数据
  29. sql := "SELECT b.content as answer,c.content as question,b.id FROM " + util.KNOWLEDGE +
  30. " a LEFT JOIN " + util.ANSWER + " b ON a.id = b.knowledge_id LEFT JOIN " + util.QUESTION +
  31. " c ON b.id = c.answer_id WHERE b.`status` =1 and a.tenant_id=? limit ?,?"
  32. datalist := Mysql.SelectBySql(sql, in.TenantId, in.PageIndex, in.PageSize)
  33. if datalist != nil && *datalist != nil && len(*datalist) > 0 {
  34. for _, value := range *datalist {
  35. knowledge := knowledgeclient.KnowledgeEntity{}
  36. knowledge.Answer = quitl.ObjToString(value["answer"])
  37. knowledge.Question = quitl.ObjToString(value["question"])
  38. knowledge.AnswerId = quitl.Int64All(value["id"])
  39. knowledgeList = append(knowledgeList, &knowledge)
  40. }
  41. }
  42. result.ErrorCode = 0
  43. result.Data = knowledgeList
  44. return result, nil
  45. }