Commit 3210f86b by chenxianqi

update

parent a46f1cc2
......@@ -5,6 +5,9 @@ httpport = 8080
copyrequestbody = true
viewspath = "public"
# grpc port
grpc_port = 8028
# 用于本地服务静态资源地址
static_host = "http://localhost:8080"
......
......@@ -178,3 +178,9 @@ func (c *KnowledgeBaseController) List() {
c.JSON(configs.ResponseSucess, "success", &knowledgePaginationDto)
}
// Total platforms Total
func (c *KnowledgeBaseController) Total() {
res := c.KnowledgeBaseRepository.GetKnowledgeBasePlatformsTotal()
c.JSON(configs.ResponseSucess, "success", &res)
}
......@@ -10,6 +10,7 @@ import (
"net"
"strconv"
"github.com/astaxie/beego"
"github.com/astaxie/beego/logs"
grpc "google.golang.org/grpc"
"google.golang.org/grpc/reflection"
......@@ -94,7 +95,8 @@ func (s *kefuServer) GetKnowledgeBaseWithTitleAndPlatform(ctx context.Context, i
// Run run grpc server
func Run() {
lis, err := net.Listen("tcp", ":8028")
grpcPort, _ := beego.AppConfig.Int("grpc_port")
lis, err := net.Listen("tcp", ":"+strconv.Itoa(grpcPort))
if err != nil {
logs.Info("grpc server failed: %v", err)
}
......
......@@ -5,6 +5,7 @@ type KnowledgePaginationDto struct {
PageSize int `json:"page_size"`
PageOn int `json:"page_on"`
Keyword string `json:"keyword"`
Platform int64 `json:"platform"`
Total int64 `json:"total"`
List interface{} `json:"list"`
}
......@@ -55,6 +55,7 @@ func init() {
beego.NSBefore(filters.FilterToken),
beego.NSRouter("/?:id", &controllers.KnowledgeBaseController{}),
beego.NSRouter("/list", &controllers.KnowledgeBaseController{}, "post:List"),
beego.NSRouter("/total", &controllers.KnowledgeBaseController{}, "get:Total"),
),
// home
......
......@@ -18,6 +18,7 @@ type KnowledgeBaseRepositoryInterface interface {
Delete(id int64) (int64, error)
SearchKnowledgeTitles(request models.KnowledgeBaseTitleRequestDto) []models.KnowledgeBaseTitleDto
GetKnowledgeBaseWithTitleAndPlatform(title string, platform int64) *models.KnowledgeBase
GetKnowledgeBasePlatformsTotal() []orm.Params
}
// KnowledgeBaseRepository struct
......@@ -114,7 +115,13 @@ func (r *KnowledgeBaseRepository) GetKnowledgeBases(request *models.KnowledgePag
// query
var lists []models.KnowledgeBase
if _, err := r.q.OrderBy("-create_at").Limit(request.PageSize).Offset((request.PageOn - 1) * request.PageSize).All(&lists); err != nil {
like := " "
k := request.Keyword
if k != "" {
like = ("sub_title LIKE '%" + k + "%' OR title LIKE '%" + k + "%' OR content LIKE '%" + k + "%' AND")
}
total, err := r.o.Raw("SELECT * FROM knowledge_base WHERE "+like+" `platform` = ? ORDER BY create_at DESC LIMIT ? OFFSET ?", request.Platform, request.PageSize, (request.PageOn-1)*request.PageSize).QueryRows(&lists)
if err != nil {
logs.Warn("GetKnowledgeBases get one KnowledgeBases------------", err)
return nil, err
}
......@@ -126,7 +133,6 @@ func (r *KnowledgeBaseRepository) GetKnowledgeBases(request *models.KnowledgePag
request.PageSize = MaxPageSize
}
total, _ := r.q.Count()
for index := range lists {
lists[index].SubTitle = strings.Trim(lists[index].SubTitle, "|")
}
......@@ -166,3 +172,14 @@ func (r *KnowledgeBaseRepository) Delete(id int64) (int64, error) {
}
return index, err
}
// GetKnowledgeBasePlatformsTotal get Group count
func (r *KnowledgeBaseRepository) GetKnowledgeBasePlatformsTotal() []orm.Params {
var maps []orm.Params
_, err := r.o.Raw("select P.id,p.title,IFNULL(k.count,0) as count FROM platform p LEFT JOIN (SELECT platform,COUNT(*) AS count FROM `knowledge_base` GROUP BY platform) k ON k.platform = p.id").Values(&maps)
if err != nil {
logs.Warn("GetKnowledgeBasePlatformsTotal get Group count------------", err)
return []orm.Params{}
}
return maps
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment