knowledgelistlogic.go 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. package logic
  2. import (
  3. cm "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. "log"
  11. )
  12. type KnowledgeListLogic struct {
  13. ctx context.Context
  14. svcCtx *svc.ServiceContext
  15. logx.Logger
  16. }
  17. func NewKnowledgeListLogic(ctx context.Context, svcCtx *svc.ServiceContext) *KnowledgeListLogic {
  18. return &KnowledgeListLogic{
  19. ctx: ctx,
  20. svcCtx: svcCtx,
  21. Logger: logx.WithContext(ctx),
  22. }
  23. }
  24. // KnowledgeList 知识列表
  25. func (l *KnowledgeListLogic) KnowledgeList(in *knowledgeclient.ListRequest) (*knowledgeclient.ListResponse, error) {
  26. // todo: add your logic here and delete this line
  27. result := &knowledgeclient.ListResponse{}
  28. var knowledgeList knowledgeclient.ListData
  29. var data []*knowledgeclient.KnowledgeEntity
  30. countSql := "SELECT COUNT(b.id) FROM " + util.KNOWLEDGE +
  31. " a LEFT JOIN " + util.ANSWER + " b ON a.id = b.knowledge_id LEFT JOIN " + util.QUESTION +
  32. " c ON b.id = c.answer_id WHERE b.`status` =1 and a.ent_id=?"
  33. count := Mysql.CountBySql(countSql, in.EntId)
  34. log.Println("总数:", count)
  35. if count > 0 {
  36. //列表数据
  37. sql := "SELECT b.content as answer,c.content as question,b.id,b.knowledge_id FROM " + util.KNOWLEDGE +
  38. " a LEFT JOIN " + util.ANSWER + " b ON a.id = b.knowledge_id LEFT JOIN " + util.QUESTION +
  39. " c ON b.id = c.answer_id WHERE b.`status` =1 and a.ent_id=? order by b.update_time desc limit ?,?"
  40. log.Println(sql, in.EntId, (in.PageIndex-1)*in.PageSize, in.PageSize)
  41. datalist := Mysql.SelectBySql(sql, in.EntId, (in.PageIndex-1)*in.PageSize, in.PageSize)
  42. if datalist != nil && *datalist != nil && len(*datalist) > 0 {
  43. for _, value := range *datalist {
  44. knowledge := knowledgeclient.KnowledgeEntity{}
  45. knowledge.Answer = cm.ObjToString(value["answer"])
  46. knowledge.Question = cm.ObjToString(value["question"])
  47. knowledge.AnswerId = cm.Int64All(value["id"])
  48. knowledge.KnowledgeId = cm.Int64All(value["knowledge_id"])
  49. data = append(data, &knowledge)
  50. }
  51. }
  52. //log.Println("数据:", data)
  53. knowledgeList.Total = count
  54. knowledgeList.Data = data
  55. }
  56. result.ErrorCode = 0
  57. result.Data = &knowledgeList
  58. return result, nil
  59. }